diff --git a/.github/scripts/declare_maintained_contracts.py b/.github/scripts/declare_maintained_contracts.py new file mode 100644 index 00000000..62264a3a --- /dev/null +++ b/.github/scripts/declare_maintained_contracts.py @@ -0,0 +1,78 @@ +import asyncio +import os +from enum import Enum +from pathlib import Path + +import dotenv +from starknet_py.net.account.account import Account +from starknet_py.net.full_node_client import FullNodeClient +from starknet_py.net.models import StarknetChainId +from starknet_py.net.signer.stark_curve_signer import KeyPair + +from garaga.hints.io import to_int +from garaga.starknet.cli.smart_contract_project import SmartContractProject + +dotenv.load_dotenv(".secrets") + + +class Network(Enum): + SEPOLIA = "sepolia" + MAINNET = "mainnet" + + def to_starknet_chain_id(self): + if self == Network.SEPOLIA: + return StarknetChainId.SEPOLIA + elif self == Network.MAINNET: + return StarknetChainId.MAINNET + else: + raise ValueError(f"Unknown network: {self}") + + +class Fee(Enum): + ETH = "eth" + STRK = "strk" + + +def get_account(network: Network): + rpc_url = os.getenv(f"{network.value.upper()}_RPC_URL") + account_address = os.getenv(f"{network.value.upper()}_ACCOUNT_ADDRESS") + account_private_key = os.getenv(f"{network.value.upper()}_ACCOUNT_PRIVATE_KEY") + + client = FullNodeClient(node_url=rpc_url) + account = Account( + address=account_address, + client=client, + key_pair=KeyPair.from_private_key(to_int(account_private_key)), + chain=network.to_starknet_chain_id(), + ) + return account + + +async def declare_contract_from_path(path: Path, network: Network, fee: Fee): + contract = SmartContractProject(smart_contract_folder=path) + account = get_account(network) + await contract.declare_class_hash(account=account, fee=fee.value) + + +async def declare_contract_from_path_both_networks(path: Path, fee: Fee): + await declare_contract_from_path(path, Network.SEPOLIA, fee) + await declare_contract_from_path(path, Network.MAINNET, fee) + + +if __name__ == "__main__": + asyncio.run( + declare_contract_from_path_both_networks( + Path("src/contracts/universal_ecip"), Fee.STRK + ) + ) + asyncio.run( + declare_contract_from_path_both_networks( + Path("src/contracts/drand_quicknet"), Fee.STRK + ) + ) + + asyncio.run( + declare_contract_from_path_both_networks( + Path("src/contracts/risc0_verifier_bn254"), Fee.STRK + ) + ) diff --git a/.github/scripts/verify_contracts.py b/.github/scripts/verify_contracts.py new file mode 100644 index 00000000..7978c272 --- /dev/null +++ b/.github/scripts/verify_contracts.py @@ -0,0 +1,70 @@ +import ast +import asyncio +import sys +from enum import Enum +from pathlib import Path + +from starknet_py.net.full_node_client import FullNodeClient + +import garaga.hints.io as io +from garaga.starknet.cli.smart_contract_project import SmartContractProject + + +class Network(Enum): + SEPOLIA = "sepolia" + MAINNET = "mainnet" + + +def get_class_hash_from_generator(): + try: + with open( + "hydra/garaga/starknet/groth16_contract_generator/generator.py", "r" + ) as f: + tree = ast.parse(f.read()) + for node in ast.walk(tree): + if isinstance(node, ast.Assign) and len(node.targets) == 1: + if getattr(node.targets[0], "id", None) == "ECIP_OPS_CLASS_HASH": + return hex(node.value.value) + raise ValueError("ECIP_OPS_CLASS_HASH not found in generator.py") + except Exception as e: + print(f"Error parsing generator.py: {str(e)}", file=sys.stderr) + sys.exit(1) + + +async def verify_network(network: Network, class_hash: str): + class_hash = io.to_hex_str(class_hash) + print(f"\nVerifying class hash {class_hash} on {network.value}...") + client = FullNodeClient(f"https://free-rpc.nethermind.io/{network.value}-juno") + try: + result = await client.get_class_by_hash(class_hash) + if not result: + print(f"Error: Contract not declared on {network.value}", file=sys.stderr) + sys.exit(1) + print(f"✓ Contract verified on {network.value}") + except Exception as e: + print(f"Error checking {network.value}: {str(e)}", file=sys.stderr) + sys.exit(1) + + +async def verify_ecip_contract(): + class_hash = get_class_hash_from_generator() + print(f"Verifying ECIP contract using class hash: {class_hash}") + + await verify_network(Network.SEPOLIA, class_hash) + await verify_network(Network.MAINNET, class_hash) + + print("\n✓ Contract verified on both networks") + + +async def verify_contract_from_path(path: Path): + contract = SmartContractProject(smart_contract_folder=path) + class_hash = contract.get_sierra_class_hash() + print(f"Verifying contract {path} with class hash {io.to_hex_str(class_hash)}") + await verify_network(Network.SEPOLIA, class_hash) + await verify_network(Network.MAINNET, class_hash) + + +if __name__ == "__main__": + asyncio.run(verify_ecip_contract()) + asyncio.run(verify_contract_from_path(Path("src/contracts/drand_quicknet"))) + asyncio.run(verify_contract_from_path(Path("src/contracts/risc0_verifier_bn254"))) diff --git a/.github/workflows/cairo.yml b/.github/workflows/cairo.yml index 11c461c8..dd841196 100644 --- a/.github/workflows/cairo.yml +++ b/.github/workflows/cairo.yml @@ -27,7 +27,7 @@ jobs: - uses: actions/checkout@v3 - uses: software-mansion/setup-scarb@v1 with: - scarb-version: "2.8.2" + scarb-version: "2.9.1" - run: scarb fmt --check working-directory: src/ - run: cd src/ && scarb test diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index db99719b..c130e0e9 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -38,7 +38,7 @@ jobs: - name: Setup Scarb uses: software-mansion/setup-scarb@v1 with: - scarb-version: "2.8.2" + scarb-version: "2.9.1" - name: Install dependencies run: make setup diff --git a/.github/workflows/hydra.yml b/.github/workflows/hydra.yml index 5e1c0149..b2f1f178 100644 --- a/.github/workflows/hydra.yml +++ b/.github/workflows/hydra.yml @@ -54,7 +54,7 @@ jobs: - name: Set up Scarb uses: software-mansion/setup-scarb@v1 with: - scarb-version: "2.8.2" + scarb-version: "2.9.1" - name: Run make rewrite and check for unstaged changes run: | source venv/bin/activate diff --git a/.github/workflows/maturin.yml b/.github/workflows/maturin.yml index 58ccc17b..f9dc23d1 100644 --- a/.github/workflows/maturin.yml +++ b/.github/workflows/maturin.yml @@ -1,10 +1,4 @@ -# This file is autogenerated by maturin v1.7.0 -# To update, run -# -# maturin generate-ci github -# name: CI - on: push: branches: @@ -40,7 +34,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: - python-version: 3.x + python-version: "3.10.x" - name: Build wheels uses: PyO3/maturin-action@v1 with: @@ -71,7 +65,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: - python-version: 3.x + python-version: "3.10.x" - name: Build wheels uses: PyO3/maturin-action@v1 with: @@ -98,7 +92,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: - python-version: 3.x + python-version: 3.10.x architecture: ${{ matrix.platform.target }} - name: Build wheels uses: PyO3/maturin-action@v1 @@ -117,7 +111,7 @@ jobs: strategy: matrix: platform: - - runner: macos-12 + - runner: macos-14 target: x86_64 - runner: macos-14 target: aarch64 @@ -125,8 +119,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: - # Workaround to ensure python 3.10 is available on x86_64 - python-version: ${{ matrix.platform.target == 'x86_64' && '3.10' || '3.x' }} + python-version: "3.10.x" - name: Build wheels uses: PyO3/maturin-action@v1 with: @@ -157,10 +150,29 @@ jobs: release: name: Release runs-on: ubuntu-latest - # Note this will only run when a new tag is pushed - if: "startsWith(github.ref, 'refs/tags/')" + if: "startsWith(github.ref, 'refs/tags/')" # Only run on tag pushes needs: [linux, musllinux, windows, macos, sdist] steps: + - uses: actions/checkout@v4 + - name: Set up Rust + uses: actions-rs/toolchain@v1 + with: + toolchain: stable + override: true + profile: minimal + components: rustfmt + + - uses: software-mansion/setup-scarb@v1 + with: + scarb-version: "2.9.1" + - name: Set up Python 3.10 + uses: actions/setup-python@v5 + with: + python-version: "3.10.x" + - name: Install dependencies + run: make setup + - name: Verify Contract Declaration + run: source venv/bin/activate && python .github/scripts/verify_contracts.py - uses: actions/download-artifact@v4 - name: Publish to PyPI uses: PyO3/maturin-action@v1 diff --git a/.github/workflows/wasm.yml b/.github/workflows/wasm.yml index 8e420c48..d95044d5 100644 --- a/.github/workflows/wasm.yml +++ b/.github/workflows/wasm.yml @@ -76,10 +76,29 @@ jobs: release: name: Release runs-on: ubuntu-latest - # Note this will only run when a new tag is pushed - if: "startsWith(github.ref, 'refs/tags/')" + if: "startsWith(github.ref, 'refs/tags/')" # Only run on tag pushes needs: [build, test, test-integration] steps: + - uses: actions/checkout@v4 + - name: Set up Rust + uses: actions-rs/toolchain@v1 + with: + toolchain: stable + override: true + profile: minimal + components: rustfmt + + - uses: software-mansion/setup-scarb@v1 + with: + scarb-version: "2.9.1" + - name: Set up Python 3.10.14 + uses: actions/setup-python@v5 + with: + python-version: 3.10.14 + - name: Install dependencies + run: make setup + - name: Verify Contract Declaration + run: source venv/bin/activate && python .github/scripts/verify_contracts.py - uses: actions/setup-node@v4 with: node-version: 'lts/*' @@ -90,7 +109,6 @@ jobs: name: npm-package - name: Publish to npm run: | - npm login npm publish --access=public *.tgz env: NODE_AUTH_TOKEN: ${{ secrets.NPM_API_TOKEN }} diff --git a/README.md b/README.md index 2bee203b..133ed84d 100644 --- a/README.md +++ b/README.md @@ -35,10 +35,7 @@ Garaga currently supports: - Scalar & Multi-scalar multiplication for any Weirstrass curve, including BN254, BLS12_381, SECP256/R1, and ED25519. You can add the one you need by specifying the curve parameters. - Pairing operations for BN254 and BLS12_381. - Groth16 smart contract verifiers generators for BN254 and BLS12_381. - -Following supported schemes will be -- BLS signatures contract generators. -- Plonk based SNARKs verifier, especially Noir. +- Noir smart contract verifiers generators for ultra keccak honk flavour. ## Architecture overview @@ -62,9 +59,9 @@ Currently, only Groth16 on BN254 and BLS12_381 is supported with automatic suppo 6. Run the `garaga declare` command in your terminal to declare the smart contract on Starknet and obtain its class hash. Note that this is an expensive operation. 7. Run the `garaga deploy` command in your terminal using the class hash obtained in the previous step to get the contract address. -7. Run the `garaga verify-onchain` command in your terminal using the contract address, the verification key, the proof and the public inputs to verify the proof against the SNARK verifier contract. +8. Run the `garaga verify-onchain` command in your terminal using the contract address, the verification key, the proof and the public inputs to verify the proof against the SNARK verifier contract. -For more details, please refer to the [documentation](https://felt.gitbook.io/garaga/). +For more details, please refer to the [documentation](https://garaga.gitbook.io/garaga/). ## Developer setup @@ -74,7 +71,7 @@ To get started with Garaga, you'll need to have some tools and dependencies inst Ensure you have the following installed: - [Python 3.10](https://www.python.org/downloads/) - /!\ Make sure `python3.10` is a valid command in your terminal. The core language used for development. Make sure you have the correct dependencies installed (in particular, GMP) for the `fastecdsa` python package. See [here](https://pypi.org/project/fastecdsa/#installing) for linux and [here](https://github.com/AntonKueltz/fastecdsa/issues/74) for macos. -- [Scarb 2.8.2](https://docs.swmansion.com/scarb/download.html) - The Cairo package manager. Comes with Cairo inside. Requires [Rust](https://www.rust-lang.org/tools/install). +- [Scarb 2.9.1](https://docs.swmansion.com/scarb/download.html) - The Cairo package manager. Comes with Cairo inside. Requires [Rust](https://www.rust-lang.org/tools/install). ##### Optionally : diff --git a/docs/gitbook/deploy-your-snark-verifier-on-starknet/groth16/generate-and-deploy-your-verifier-contract.md b/docs/gitbook/deploy-your-snark-verifier-on-starknet/groth16/generate-and-deploy-your-verifier-contract.md index 3b53702e..736ff5e1 100644 --- a/docs/gitbook/deploy-your-snark-verifier-on-starknet/groth16/generate-and-deploy-your-verifier-contract.md +++ b/docs/gitbook/deploy-your-snark-verifier-on-starknet/groth16/generate-and-deploy-your-verifier-contract.md @@ -122,14 +122,14 @@ garaga Once your verifying key is ready, you can use the following command : ``` -garaga gen --system groth16 --vk vk.json +garaga gen --system groth16 --vk vk.json ``` You should see an output like this : ```bash -(venv) :~/garaga-flow garaga gen --system groth16 --vk vk_bls.json -Please enter the name of your project. Press enter for default name. [my_project]: +(venv) :~/garaga-flow garaga gen --system groth16 --vk vk_bls.json +Please enter the name of your project. Press enter for default name. [my_project]: Detected curve: CurveID.BLS12_381 ⠧ Generating Smart Contract project for ProofSystem.Groth16 using vk_bls.json... Done! @@ -301,18 +301,18 @@ MAINNET_ACCOUNT_ADDRESS=0x4 ``` {% endcode %} -Then, you can run the command `garaga declare-project`, which will build the contract and declare it to Starknet. If the class hash is already deployed, it will return it as well. Declaring the contract involves sending all its bytecode and it is quite an expensive operation. Make sure you dapp is properly tested before! +Then, you can run the command `garaga declare`, which will build the contract and declare it to Starknet. If the class hash is already deployed, it will return it as well. Declaring the contract involves sending all its bytecode and it is quite an expensive operation. Make sure you dapp is properly tested before! ```bash - Usage: garaga declare-project [OPTIONS] - - Declare your smart contract to Starknet. Obtain its class hash and a explorer link. - + Usage: garaga declare [OPTIONS] + + Declare your smart contract to Starknet. Obtain its class hash and a explorer link. + ╭─ Options ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ --project-path DIRECTORY Path to the Cairo project holding the Scarb.toml file to declare │ -│ [default: /home/felt/PycharmProjects/garaga-flow/my_project/] │ +│ [default: /home/felt/garaga-flow/my_project/] │ │ --env-file FILE Path to the environment file │ -│ [default: /home/felt/PycharmProjects/garaga-flow/my_project/.secrets] │ +│ [default: /home/felt/garaga-flow/my_project/.secrets] │ │ --network [sepolia|mainnet] Starknet network [default: sepolia] │ │ --fee TEXT Fee token type [eth, strk] [default: eth] │ │ --help -h Show this message and exit. │ @@ -320,22 +320,22 @@ Then, you can run the command `garaga declare-project`, which will build the con ``` ```bash -garaga declare-project --project-path my-project/ --env-file .secrets --network sepolia --fee strk +garaga declare --project-path my_project/ --env-file .secrets --network sepolia --fee strk ``` This command will return the class hash, used in the next step.\ \ -Finally, to deploy the contract, a use `garaga deploy-project` : +Finally, to deploy the contract, a use `garaga deploy` : ```bash - Usage: garaga deploy-project [OPTIONS] - - Deploy an instance of a smart contract class hash to Starknet. Obtain its address, the available endpoints and a explorer link. - + Usage: garaga deploy [OPTIONS] + + Deploy an instance of a smart contract class hash to Starknet. Obtain its address, the available endpoints and a explorer link. + ╭─ Options ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ * --class-hash TEXT Contract class hash to deploy. Can be decimal or hex string [default: None] [required] │ │ --env-file FILE Path to the environment file containing rpc, address, private_key │ -│ [default: /home/felt/PycharmProjects/garaga-flow/my_project/.secrets] │ +│ [default: /home/felt/garaga-flow/my_project/.secrets] │ │ --network [sepolia|mainnet] Starknet network [default: sepolia] │ │ --fee TEXT Fee token type [eth, strk] [default: strk] │ │ --help -h Show this message and exit. │ diff --git a/docs/gitbook/deploy-your-snark-verifier-on-starknet/groth16/generating-calldata-from-a-proof-and-using-your-deployed-contract.md b/docs/gitbook/deploy-your-snark-verifier-on-starknet/groth16/generating-calldata-from-a-proof-and-using-your-deployed-contract.md index 15b04604..6d708048 100644 --- a/docs/gitbook/deploy-your-snark-verifier-on-starknet/groth16/generating-calldata-from-a-proof-and-using-your-deployed-contract.md +++ b/docs/gitbook/deploy-your-snark-verifier-on-starknet/groth16/generating-calldata-from-a-proof-and-using-your-deployed-contract.md @@ -18,10 +18,10 @@ The Garaga CLI takes care of converting your proof to the correct calldata and c To do this, use the garaga `verify-onchain` command. ```bash - Usage: garaga verify-onchain [OPTIONS] - - Invoke a SNARK verifier on Starknet given a contract address, a proof and a verification key. - + Usage: garaga verify-onchain [OPTIONS] + + Invoke a SNARK verifier on Starknet given a contract address, a proof and a verification key. + ╭─ Options ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ * --system [groth16] Proof system [default: None] [required] │ │ * --contract-address TEXT Starknet contract address [default: None] [required] │ @@ -73,7 +73,7 @@ The command should look like this: {% code overflow="wrap" %} ``` -garaga verify-onchain --system groth16 --address 0x1234... --vk vk.json --proof proof.json --public-inputs public.json --env-file .secrets --network sepolia +garaga verify-onchain --system groth16 --contract-address 0x1234... --vk vk.json --proof proof.json --public-inputs public.json --env-file .secrets --network sepolia ``` {% endcode %} diff --git a/docs/gitbook/installation/developer-setup.md b/docs/gitbook/installation/developer-setup.md index 4904407f..7c220f49 100644 --- a/docs/gitbook/installation/developer-setup.md +++ b/docs/gitbook/installation/developer-setup.md @@ -7,7 +7,7 @@ icon: wrench To work with Garaga, you need the following dependencies : * Python 3.10. The command `python3.10` should be available and working in your terminal. -* [Scarb](https://docs.swmansion.com/scarb/download.html) v2.8.2. +* [Scarb](https://docs.swmansion.com/scarb/download.html) v2.9.1. * [Rust](https://www.rust-lang.org/tools/install) Simply clone the [repository](https://github.com/keep-starknet-strange/garaga) : diff --git a/hydra/garaga/algebra.py b/hydra/garaga/algebra.py index c82e2c5e..252c63f6 100644 --- a/hydra/garaga/algebra.py +++ b/hydra/garaga/algebra.py @@ -145,6 +145,8 @@ def __rtruediv__(self, left: PyFelt | int) -> PyFelt: return self.__inv__().__mul__(left) def is_quad_residue(self) -> bool: + if self.value == 0: + return True return legendre_symbol(self.value, self.p) == 1 def sqrt(self, min_root: bool = True) -> PyFelt: @@ -390,6 +392,8 @@ class ModuloCircuitElement: emulated_felt: PyFelt offset: int + __repr__ = lambda self: f"ModuloCircuitElement({hex(self.value)}, {self.offset})" + @property def value(self) -> int: return self.emulated_felt.value @@ -1043,12 +1047,16 @@ def degrees_infos(self) -> dict[str, dict[str, int]]: "b": self.b.degrees_infos(), } - def validate_degrees(self, msm_size: int) -> bool: + def validate_degrees(self, msm_size: int, batched: bool = True) -> bool: degrees = self.degrees_infos() - assert degrees["a"]["numerator"] <= msm_size + 1 - assert degrees["a"]["denominator"] <= msm_size + 2 - assert degrees["b"]["numerator"] <= msm_size + 2 - assert degrees["b"]["denominator"] <= msm_size + 5 + if batched: + extra = 2 + else: + extra = 0 + assert degrees["a"]["numerator"] <= msm_size + 1 + extra + assert degrees["a"]["denominator"] <= msm_size + 2 + extra + assert degrees["b"]["numerator"] <= msm_size + 2 + extra + assert degrees["b"]["denominator"] <= msm_size + 5 + extra return True def print_as_sage_poly(self, var: str = "x", as_hex: bool = False) -> str: diff --git a/hydra/garaga/definitions.py b/hydra/garaga/definitions.py index a567c444..87bdb9d4 100644 --- a/hydra/garaga/definitions.py +++ b/hydra/garaga/definitions.py @@ -25,15 +25,19 @@ SECP256K1_ID = 2 SECP256R1_ID = 3 ED25519_ID = 4 +GRUMPKIN_ID = 5 class ProofSystem(Enum): Groth16 = "groth16" + UltraKeccakHonk = "ultra_keccak_honk" @property def supported_curves(self) -> set[int]: if self == ProofSystem.Groth16: return {BN254_ID, BLS12_381_ID} + if self == ProofSystem.UltraKeccakHonk: + return {BN254_ID} return set() @@ -43,6 +47,7 @@ class CurveID(Enum): SECP256K1 = 2 SECP256R1 = 3 ED25519 = 4 + GRUMPKIN = 5 @staticmethod def from_str(s: str) -> "CurveID": @@ -428,6 +433,19 @@ def bit(value, index): Gy=0x6666666666666666666666666666666666666666666666666666666666666658, swu_params=None, ), + GRUMPKIN_ID: WeierstrassCurve( + cairo_zero_namespace_name="grumpkin", + id=GRUMPKIN_ID, + p=0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001, + n=0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD47, + h=1, + a=0, + b=-17 % 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001, + fp_generator=5, + Gx=0x1, + Gy=0x2CF135E7506A45D632D270D45F1181294833FC48D823F272C, + swu_params=None, + ), } @@ -550,6 +568,9 @@ class G1Point: curve_id: CurveID iso_point: bool = False + def __repr__(self) -> str: + return f"G1Point({hex(self.x)}, {hex(self.y)}) on {self.curve_id.value}" + def __str__(self) -> str: return f"G1Point({self.x}, {self.y}) on curve {self.curve_id}" @@ -831,6 +852,17 @@ def __neg__(self) -> "G1Point": self.iso_point, ) + def to_pyfelt_list(self) -> list[PyFelt]: + field = get_base_field(self.curve_id.value) + return [field(self.x), field(self.y)] + + def serialize_to_cairo(self, name: str, raw: bool = False) -> str: + import garaga.modulo_circuit_structs as structs + + return structs.G1PointCircuit(name=name, elmts=self.to_pyfelt_list()).serialize( + raw + ) + @dataclass(frozen=True) class G2Point: @@ -842,12 +874,15 @@ class G2Point: y: tuple[int, int] curve_id: CurveID + def __repr__(self): + return f"G2Point({hex(self.x[0])}, {hex(self.x[1])}, {hex(self.y[0])}, {hex(self.y[1])}, {self.curve_id})" + def __post_init__(self): assert isinstance(CURVES[self.curve_id.value], PairingCurve) if self.is_infinity(): return if not self.is_on_curve(): - raise ValueError("G2 Point is not on the curve") + raise ValueError(f"G2 Point is not on the curve {self.curve_id}") @staticmethod def infinity(curve_id: CurveID) -> "G2Point": @@ -956,6 +991,17 @@ def msm(points: list["G2Point"], scalars: list[int]) -> "G2Point": scalar_mul = functools.reduce(lambda acc, p: acc.add(p), muls) return scalar_mul + def to_pyfelt_list(self) -> list[PyFelt]: + field = get_base_field(self.curve_id.value) + return [field(x) for x in self.x + self.y] + + def serialize_to_cairo(self, name: str, raw: bool = False) -> str: + import garaga.modulo_circuit_structs as structs + + return structs.G2PointCircuit(name=name, elmts=self.to_pyfelt_list()).serialize( + raw + ) + @dataclass(slots=True) class G1G2Pair: @@ -1205,5 +1251,35 @@ def replace_consecutive_zeros(lst): return result +def recode_naf_bits(lst): + result = [] + i = 0 + while i < len(lst): + if i < len(lst) - 1 and lst[i] == 0 and (lst[i + 1] == 1 or lst[i + 1] == -1): + # "01" or "0-1" + if lst[i + 1] == 1: + result.append(3) # Replace "01" with 3 + else: + result.append(4) # Replace "0-1" with 4 + i += 2 + elif i < len(lst) - 1 and (lst[i] == 1 or lst[i] == -1) and lst[i + 1] == 0: + # "10" or "-10" + if lst[i] == 1: + result.append(1) # Replace 10 with 6 + else: + result.append(2) # Replace -10 with 7 + i += 2 + elif i < len(lst) - 1 and lst[i] == 0 and lst[i + 1] == 0: + result.append(0) # Replace consecutive zeros with 0 + i += 2 + else: + raise ValueError(f"Unexpected bit sequence at index {i}") + return result + + if __name__ == "__main__": - pass + r = recode_naf_bits(jy00(6 * 0x44E992B44A6909F1 + 2)[2:]) + print(r, len(r)) + + # bls = [int(x) for x in bin(0xD201000000010000)[2:]][2:] + # recode_naf_bits(bls) diff --git a/hydra/garaga/drand/client.py b/hydra/garaga/drand/client.py index 8582b433..a46a885a 100644 --- a/hydra/garaga/drand/client.py +++ b/hydra/garaga/drand/client.py @@ -111,10 +111,10 @@ def deserialize_bls_point(s_string: bytes) -> Union[G1Point, G2Point]: if len(s_string) == 48: # G1 point (compressed) field = get_base_field(CurveID.BLS12_381) y2 = field(x**3 + 4) - y = y2.sqrt() - Y_bit = y.value & 1 - if S_bit != Y_bit: - y = -y + if S_bit == 1: + y = y2.sqrt(min_root=False) + else: + y = y2.sqrt(min_root=True) return G1Point(x, y.value, CurveID.BLS12_381) elif len(s_string) == 96: # G2 point (compressed) field = get_base_field(CurveID.BLS12_381, Fp2) @@ -282,4 +282,4 @@ def print_all_chain_info() -> dict[DrandNetwork, NetworkInfo]: def generate_precomputed_lines_code(precomputed_lines: StructArray) -> str: return f"pub const precomputed_lines: [G2Line; {len(precomputed_lines)//4}] = {precomputed_lines.serialize(raw=True, const=True)};" - print(generate_precomputed_lines_code(precomputed_lines)) + # print(generate_precomputed_lines_code(precomputed_lines)) diff --git a/hydra/garaga/drand/tlock.py b/hydra/garaga/drand/tlock.py new file mode 100644 index 00000000..18b3f635 --- /dev/null +++ b/hydra/garaga/drand/tlock.py @@ -0,0 +1,226 @@ +import hashlib +import secrets +from dataclasses import dataclass + +from garaga.definitions import CURVES, CurveID, G1G2Pair, G1Point, G2Point +from garaga.drand.client import DrandNetwork, digest_func +from garaga.hints.tower_backup import E12 +from garaga.signature import hash_to_curve + + +@dataclass +class CipherText: + U: G2Point + V: bytes + W: bytes + + def __post_init__(self): + assert len(self.V) == len(self.W) == 16 + + def serialize_to_cairo(self): + code = f"""CipherText {{ + U: {self.U.serialize_to_cairo(name="U", raw=True)}, + V: [{', '.join(f'0x{b:02x}' for b in self.V)}], + W: [{', '.join(f'0x{b:02x}' for b in self.W)}], + }} + """ + return code + + +def encrypt_for_round( + drand_public_key: G2Point, round: int, message: bytes, debug: bool = False +) -> CipherText: + assert len(message) == 16, f"Message should be 16 bytes: {len(message)}" + + msg_at_round = digest_func(round) + # print(f"msg_at_round list of ints: {list(msg_at_round)}") + pt_at_round = hash_to_curve(msg_at_round, CurveID.BLS12_381) + + gid: E12 = G1G2Pair.pair([G1G2Pair(p=pt_at_round, q=drand_public_key)]) + + if debug: + # Use a fixed sigma for debugging: + sigma = b"0000000000000000" + else: + sigma: bytes = secrets.token_bytes(16) + + assert len(sigma) == 16 + + hasher = hashlib.sha256() + hasher.update(b"IBE-H3") + hasher.update(sigma) + hasher.update(message) + r = int.from_bytes(expand_message_drand(hasher.digest(), 32), "little") + # print(f"r list of ints: {r}") + r = r % CURVES[CurveID.BLS12_381.value].n + + # U = r * G2 + U = G2Point.get_nG(CurveID.BLS12_381, r) + + # print(f"U: {U}") + # V = sigma XOR H (rGid) + rGid: E12 = gid**r + + # print(f"rGid: {rGid.value_coeffs}") + + rgid_serialized = rGid.serialize() + # Print bytes as hex strings: + # print(f"rGid hex : {rgid_serialized.hex()}") + # print(f"rGid serialized: {list(rgid_serialized)} len: {len(rgid_serialized)}") + rgid_hash = hashlib.sha256() + rgid_hash.update(b"IBE-H2") + rgid_hash.update(rgid_serialized) + rgid_hash = rgid_hash.digest() + # Take first 16 bytes only : + rgid_hash = rgid_hash[:16] + # print(f"rgid_hash hex: {rgid_hash.hex()}") + + V = bytes([a ^ b for a, b in zip(sigma, rgid_hash)]) + # print(f"V hex: {V.hex()}") + + # 6. Compute W = M XOR H(sigma) + W = bytes([a ^ b for a, b in zip(message, rgid_hash)]) + sigma_hash = hashlib.sha256() + sigma_hash.update(b"IBE-H4") + sigma_hash.update(sigma) + sigma_hash = sigma_hash.digest()[:16] # First 16 bytes only + # print(f"sigma_hash hex: {sigma_hash.hex()}") + W = bytes([a ^ b for a, b in zip(message, sigma_hash)]) + # print(f"W hex: {W.hex()}") + + return CipherText(U, V, W) + + +def decrypt_at_round(signature_at_round: G1Point, c: CipherText): + # 1. Compute sigma = V XOR H2(e(rP,Sig)) + + r_gid: E12 = G1G2Pair.pair([G1G2Pair(p=signature_at_round, q=c.U)]) + # for i, v in enumerate(r_gid.value_coeffs): + # print(f"rgid_{i}: {io.int_to_u384(v, as_hex=False)}") + r_gid_serialized = r_gid.serialize() + rgid_hash = hashlib.sha256() + + pre_image = bytearray(b"IBE-H2") + pre_image.extend(r_gid_serialized) + rgid_hash.update(pre_image) + + # for i in range(0, len(pre_image), 4): + # print(f"pre_image[{i}:{i+4}]: {pre_image[i:i+4].hex()}") + + rgid_hash = rgid_hash.digest() + + rgid_hash = rgid_hash[:16] # First 16 bytes only + + sigma = bytes([a ^ b for a, b in zip(c.V, rgid_hash)]) + + # print(f"sigma hex: {sigma.hex()}") + + # 2. Compute Msg = W XOR H4(sigma) + sigma_hash = hashlib.sha256() + sigma_hash.update(b"IBE-H4") + sigma_hash.update(sigma) + sigma_hash = sigma_hash.digest()[:16] # First 16 bytes only + + message = bytes([a ^ b for a, b in zip(c.W, sigma_hash)]) + # print(f"message utf-8: {message.decode('utf-8')}") + + # 3. Check U = G^r + + rh = hashlib.sha256() + rh.update(b"IBE-H3") + rh.update(sigma) + rh.update(message) + rh = rh.digest() + rh = expand_message_drand(rh, 32) + + r = int.from_bytes(rh, "little") + r = r % CURVES[CurveID.BLS12_381.value].n + U = G2Point.get_nG(CurveID.BLS12_381, r) + assert U == c.U + return message + + +def expand_message_drand(msg: bytes, buf_size: int) -> bytes: + BITS_TO_MASK_FOR_BLS12381 = 1 + order = CURVES[CurveID.BLS12_381.value].n + for i in range(1, 65536): # u16::MAX is 65535 + # Hash iteratively: H(i || msg) + h = hashlib.sha256() + pre_image = bytearray(i.to_bytes(2, byteorder="little")) + pre_image.extend(msg) + h.update(pre_image) + hash_result = bytearray(h.digest()) + # Mask the first byte + hash_result[0] >>= BITS_TO_MASK_FOR_BLS12381 + + reversed_hash = hash_result[::-1] + + scalar = int.from_bytes(reversed_hash, "little") % order + if scalar != 0: + return reversed_hash[:buf_size] + + raise ValueError( + "You are insanely unlucky and should have been hit by a meteor before now" + ) + + +def write_cairo1_test(msg: bytes, round: int, network: DrandNetwork): + chain_infos = print_all_chain_info() + chain = chain_infos[network] + master = chain.public_key + ciphertext: CipherText = encrypt_for_round(master, round, msg, debug=True) + + signature_at_round = get_randomness(chain.hash, round).signature_point + _ = decrypt_at_round(signature_at_round, ciphertext) + + comment_with_params_used = f""" + // msg: {msg} + // round: {round} + // network: {network} + """ + code = f""" + #[test] + fn test_decrypt_at_round() {{ + {comment_with_params_used} + {signature_at_round.serialize_to_cairo(name="signature_at_round")} + let ciph = {ciphertext.serialize_to_cairo()}; + let msg_decrypted = decrypt_at_round(signature_at_round, ciph); + assert(msg_decrypted.span() == [{', '.join(f'0x{b:02x}' for b in msg)}].span(), 'wrong msg'); + }} + """ + return code + + +if __name__ == "__main__": + from garaga.drand.client import DrandNetwork, get_randomness, print_all_chain_info + + # chain_infos = print_all_chain_info() + network = DrandNetwork.quicknet + # chain = chain_infos[network] + + # master = chain.public_key + + round = 128 + + msg = b"hello\x00\x00\x00\x00\x00\x00\x00\x00abc" + # ciph = encrypt_for_round(master, round, msg) + + # # print(f"CipherText: {ciph}") + + # # print(f"V : {list(ciph.V)}") + # # print(f"W : {list(ciph.W)}") + + # chain = chain_infos[network] + # beacon = get_randomness(chain.hash, round) + # signature_at_round = beacon.signature_point + + # print(f"signature_at_round: {signature_at_round}") + # msg_decrypted = decrypt_at_round(signature_at_round, ciph) + # assert msg_decrypted == msg + + # print(f"msg utf-8: {msg.decode('utf-8')}") + # print(f"msg_decrypted utf-8: {msg_decrypted.decode('utf-8')}") + + code = write_cairo1_test(msg, round, network) + + print(code) diff --git a/hydra/garaga/extension_field_modulo_circuit.py b/hydra/garaga/extension_field_modulo_circuit.py index 8cecf86a..825ed249 100644 --- a/hydra/garaga/extension_field_modulo_circuit.py +++ b/hydra/garaga/extension_field_modulo_circuit.py @@ -76,9 +76,13 @@ def __init__( init_hash: int = None, hash_input: bool = True, compilation_mode: int = 0, + generic_circuit: bool = False, ) -> None: super().__init__( - name=name, curve_id=curve_id, compilation_mode=compilation_mode + name=name, + curve_id=curve_id, + compilation_mode=compilation_mode, + generic_circuit=generic_circuit, ) self.class_name = "ExtensionFieldModuloCircuit" self.extension_degree = extension_degree diff --git a/hydra/garaga/hints/ecip.py b/hydra/garaga/hints/ecip.py index bc1926d6..1699559a 100644 --- a/hydra/garaga/hints/ecip.py +++ b/hydra/garaga/hints/ecip.py @@ -661,6 +661,32 @@ def print_ff(ff: FF): return string +def n_points_from_n_coeffs(n_coeffs: int, batched: bool) -> int: + if batched: + extra = 4 * 2 + else: + extra = 0 + + # n_coeffs = 10 + 4n_points => 4n_points = n_coeffs - 10 + assert n_coeffs >= 10 + extra + assert (n_coeffs - 10 - extra) % 4 == 0 + return (n_coeffs - 10 - extra) // 4 + + +def n_coeffs_from_n_points(n_points: int, batched: bool) -> tuple[int, int, int, int]: + if batched: + extra = 2 + else: + extra = 0 + + return ( + 1 + n_points + extra, + 1 + n_points + 1 + extra, + 1 + n_points + 1 + extra, + 1 + n_points + 4 + extra, + ) + + if __name__ == "__main__": import random diff --git a/hydra/garaga/hints/io.py b/hydra/garaga/hints/io.py index 2fc7167d..29670001 100644 --- a/hydra/garaga/hints/io.py +++ b/hydra/garaga/hints/io.py @@ -135,10 +135,19 @@ def int_to_u256(x: int | PyFelt) -> str: return f"u256{{low:{hex(limbs[0])}, high:{hex(limbs[1])}}}" +def int_to_u128(x: int | PyFelt) -> str: + assert 0 <= x < 2**128, f"Value {x} is too large to fit in a u128" + return hex(x) + + def int_array_to_u256_array(x: list[int] | list[PyFelt]) -> str: return f"array![{', '.join([int_to_u256(i) for i in x])}]" +def int_array_to_u128_array(x: list[int] | list[PyFelt]) -> str: + return f"array![{', '.join([int_to_u128(i) for i in x])}]" + + def int_array_to_u384_array(x: list[int] | list[PyFelt], const=False) -> str: if const: return f"[{', '.join([int_to_u384(i) for i in x])}]" @@ -288,7 +297,7 @@ def fill_uint256(x: int, ids: object): def padd_function_felt( - f: FunctionFelt, n: int, py_felt: bool = False + f: FunctionFelt, n: int, py_felt: bool = False, batched: bool = False ) -> tuple[list[int], list[int], list[int], list[int]]: a_num = f.a.numerator.get_coeffs() if py_felt else f.a.numerator.get_value_coeffs() a_den = ( @@ -298,15 +307,23 @@ def padd_function_felt( b_den = ( f.b.denominator.get_coeffs() if py_felt else f.b.denominator.get_value_coeffs() ) - assert len(a_num) <= n + 1 - assert len(a_den) <= n + 2 - assert len(b_num) <= n + 2 - assert len(b_den) <= n + 5 + assert len(a_num) <= n + 1 + ( + 2 if batched else 0 + ), f"a_num has {len(a_num)} limbs, expected at most {n + 1 + (2 if batched else 0)}" + assert len(a_den) <= n + 2 + ( + 2 if batched else 0 + ), f"a_den has {len(a_den)} limbs, expected at most {n + 2 + (2 if batched else 0)}" + assert len(b_num) <= n + 2 + ( + 2 if batched else 0 + ), f"b_num has {len(b_num)} limbs, expected at most {n + 2 + (2 if batched else 0)}" + assert len(b_den) <= n + 5 + ( + 2 if batched else 0 + ), f"b_den has {len(b_den)} limbs, expected at most {n + 5 + (2 if batched else 0)}" zero = [f.a.numerator.field.zero()] if py_felt else [0] - a_num = a_num + zero * (n + 1 - len(a_num)) - a_den = a_den + zero * (n + 2 - len(a_den)) - b_num = b_num + zero * (n + 2 - len(b_num)) - b_den = b_den + zero * (n + 5 - len(b_den)) + a_num = a_num + zero * (n + 1 + (2 if batched else 0) - len(a_num)) + a_den = a_den + zero * (n + 2 + (2 if batched else 0) - len(a_den)) + b_num = b_num + zero * (n + 2 + (2 if batched else 0) - len(b_num)) + b_den = b_den + zero * (n + 5 + (2 if batched else 0) - len(b_den)) return (a_num, a_den, b_num, b_den) diff --git a/hydra/garaga/hints/tower_backup.py b/hydra/garaga/hints/tower_backup.py index 4893e397..6199f1ab 100644 --- a/hydra/garaga/hints/tower_backup.py +++ b/hydra/garaga/hints/tower_backup.py @@ -414,6 +414,9 @@ def __mul__(self, other): z0 = c + b return E12([z0, z1], self.curve_id) + def conjugate(self): + return E12([self.c0, -self.c1], self.curve_id) + def square(self): c0 = self.c0 - self.c1 c3 = -(self.c1.mul_by_non_residue()) + self.c0 @@ -472,6 +475,16 @@ def __pow__(self, p: int): return result + def serialize(self) -> bytes: + # Implement serialization like ark-ff: + serialized = bytearray() + bit_size = CURVES[self.curve_id].p.bit_length() + byte_size = (bit_size + 7) // 8 + for c in self.value_coeffs[::-1]: + serialized.extend(c.to_bytes(byte_size, byteorder="big")) + + return bytes(serialized) + def get_tower_object(x: list[PyFelt], curve_id: int, extension_degree: int): if extension_degree == 2: diff --git a/hydra/garaga/modulo_circuit.py b/hydra/garaga/modulo_circuit.py index baecbb87..48886c65 100644 --- a/hydra/garaga/modulo_circuit.py +++ b/hydra/garaga/modulo_circuit.py @@ -6,7 +6,7 @@ from garaga.definitions import BASE, CURVES, N_LIMBS, STARK, CurveID, get_sparsity from garaga.hints.extf_mul import nondeterministic_extension_field_div from garaga.hints.io import bigint_split -from garaga.modulo_circuit_structs import Cairo1SerializableStruct +from garaga.modulo_circuit_structs import Cairo1SerializableStruct, u384 BATCH_SIZE = 1 # Batch Size, only used in cairo 0 mode. @@ -341,6 +341,7 @@ def __init__( self.compilation_mode = compilation_mode self.exact_output_refs_needed = None self.input_structs: list[Cairo1SerializableStruct] = [] + self.do_not_inline = False @property def values_offset(self) -> int: @@ -379,7 +380,7 @@ def is_empty_circuit(self) -> bool: def write_element( self, - elmt: PyFelt, + elmt: PyFelt | int, write_source: WriteOps = WriteOps.INPUT, instruction: ModuloCircuitInstruction | None = None, ) -> ModuloCircuitElement: @@ -387,7 +388,11 @@ def write_element( Register an emulated field element to the circuit given its value and the write source. Returns a ModuloCircuitElement representing the written element with its offset as identifier. """ - assert isinstance(elmt, PyFelt), f"Expected PyFelt, got {type(elmt)}" + assert isinstance(elmt, PyFelt) or isinstance( + elmt, int + ), f"Expected PyFelt or int, got {type(elmt)}" + if isinstance(elmt, int): + elmt = self.field(elmt) value_offset = self.values_segment.write_to_segment( ValueSegmentItem( elmt, @@ -417,7 +422,7 @@ def write_struct( if all_pyfelt: self.input_structs.append(struct) - if len(struct) == 1: + if len(struct) == 1 and isinstance(struct, u384): return self.write_element(struct.elmts[0], write_source) else: return self.write_elements(struct.elmts, write_source) @@ -431,7 +436,10 @@ def write_struct( return result def write_elements( - self, elmts: list[PyFelt], operation: WriteOps, sparsity: list[int] = None + self, + elmts: list[PyFelt], + operation: WriteOps = WriteOps.INPUT, + sparsity: list[int] = None, ) -> list[ModuloCircuitElement]: if sparsity is not None: assert len(sparsity) == len( @@ -508,6 +516,24 @@ def add( a.emulated_felt + b.emulated_felt, WriteOps.BUILTIN, instruction ) + def sum(self, args: list[ModuloCircuitElement], comment: str | None = None): + if not args: + raise ValueError("The 'args' list cannot be empty.") + assert all(isinstance(elmt, ModuloCircuitElement) for elmt in args) + result = args[0] + for elmt in args[1:]: + result = self.add(result, elmt, comment) + return result + + def product(self, args: list[ModuloCircuitElement], comment: str | None = None): + if not args: + raise ValueError("The 'args' list cannot be empty.") + assert all(isinstance(elmt, ModuloCircuitElement) for elmt in args) + result = args[0] + for elmt in args[1:]: + result = self.mul(result, elmt, comment) + return result + def double(self, a: ModuloCircuitElement) -> ModuloCircuitElement: return self.add(a, a) @@ -523,7 +549,7 @@ def mul( return self.set_or_get_constant(0) assert isinstance(a, ModuloCircuitElement) and isinstance( b, ModuloCircuitElement - ), f"Expected ModuloElement, got {type(a)}, {a} and {type(b)}, {b}" + ), f"Expected ModuloElement, got lhs {type(a)}, {a} and rhs {type(b)}, {b}" instruction = ModuloCircuitInstruction( ModBuiltinOps.MUL, a.offset, b.offset, self.values_offset, comment ) @@ -629,6 +655,32 @@ def fp2_mul(self, X: list[ModuloCircuitElement], Y: list[ModuloCircuitElement]): ), ] + def fp2_mul_by_non_residue(self, X: list[ModuloCircuitElement]): + assert len(X) == 2 and all(isinstance(x, ModuloCircuitElement) for x in X) + if self.curve_id == 1: + # Non residue (1,1) + # (a0 + i*a1) * (1 + i) + a_tmp = self.add(X[0], X[1]) + a = self.add(a_tmp, a_tmp) + b = X[0] + z_a0 = self.sub(b, X[1]) + z_a1 = self.sub(self.sub(a, b), X[1]) + return [z_a0, z_a1] + elif self.curve_id == 0: + # Non residue (9, 1) + # (a0 + i*a1) * (9 + i) + a_tmp = self.add(X[0], X[1]) + a = self.mul(a_tmp, self.set_or_get_constant(10)) + b = self.mul(X[0], self.set_or_get_constant(9)) + z_a0 = self.sub(b, X[1]) + z_a1 = self.sub(self.sub(a, b), X[1]) + return [z_a0, z_a1] + + else: + raise ValueError( + f"Unsupported curve id for fp2 mul by non residue: {self.curve_id}" + ) + def fp2_square(self, X: list[ModuloCircuitElement]): # Assumes the irreducible poly is X^2 + 1. # x² = (x0 + i x1)² = (x0² - x1²) + 2 * i * x0 * x1 = (x0+x1)(x0-x1) + i * 2 * x0 * x1. @@ -639,6 +691,16 @@ def fp2_square(self, X: list[ModuloCircuitElement]): self.double(self.mul(X[0], X[1])), ] + def fp2_inv(self, X: list[ModuloCircuitElement]): + assert len(X) == 2 and all(isinstance(x, ModuloCircuitElement) for x in X) + t0 = self.mul(X[0], X[0], comment="Fp2 Inv start") + t1 = self.mul(X[1], X[1]) + t0 = self.add(t0, t1) + t1 = self.inv(t0) + inv0 = self.mul(X[0], t1, comment="Fp2 Inv real part end") + inv1 = self.neg(self.mul(X[1], t1), comment="Fp2 Inv imag part end") + return [inv0, inv1] + def fp2_div(self, X: list[ModuloCircuitElement], Y: list[ModuloCircuitElement]): assert len(X) == len(Y) == 2 and all( isinstance(x, ModuloCircuitElement) and isinstance(y, ModuloCircuitElement) @@ -659,13 +721,8 @@ def fp2_div(self, X: list[ModuloCircuitElement], Y: list[ModuloCircuitElement]): return x_over_y elif self.compilation_mode == 1: # Todo : consider passing as calldata if possible. - t0 = self.mul(Y[0], Y[0], comment="Fp2 Div x/y start : Fp2 Inv y start") - t1 = self.mul(Y[1], Y[1]) - t0 = self.add(t0, t1) - t1 = self.inv(t0) - inv0 = self.mul(Y[0], t1, comment="Fp2 Inv y real part end") - inv1 = self.neg(self.mul(Y[1], t1), comment="Fp2 Inv y imag part end") - return self.fp2_mul(X, [inv0, inv1]) + inv = self.fp2_inv(Y) + return self.fp2_mul(X, inv) def sub_and_assert( self, @@ -795,14 +852,14 @@ def extend_struct_output(self, struct: Cairo1SerializableStruct): def print_value_segment(self): self.values_segment.print() - def compile_circuit(self, function_name: str = None): + def compile_circuit(self, function_name: str = None, pub: bool = True): if self.is_empty_circuit(): return "", "" self.values_segment = self.values_segment.non_interactive_transform() if self.compilation_mode == 0: return self.compile_circuit_cairo_zero(function_name), None elif self.compilation_mode == 1: - return self.compile_circuit_cairo_1(function_name) + return self.compile_circuit_cairo_1(function_name, pub) def compile_circuit_cairo_zero( self, @@ -1030,6 +1087,7 @@ def write_cairo1_circuit(self, offset_to_reference_map: dict[int, str]) -> str: def compile_circuit_cairo_1( self, function_name: str = None, + pub: bool = False, ) -> str: """ Defines the Cairo 1 function code for the compiled circuit. @@ -1065,10 +1123,14 @@ def compile_circuit_cairo_1( else: signature_input = "mut input: Array" + if pub: + prefix = "pub " + else: + prefix = "" if self.generic_circuit: - code = f"#[inline(always)]\nfn {function_name}({signature_input}, curve_index:usize)->{signature_output} {{\n" + code = f"#[inline(always)]\n{prefix}fn {function_name}({signature_input}, curve_index:usize)->{signature_output} {{\n" else: - code = f"#[inline(always)]\nfn {function_name}({signature_input})->{signature_output} {{\n" + code = f"#[inline(always)]\n{prefix}fn {function_name}({signature_input})->{signature_output} {{\n" # Define the input for the circuit. code, offset_to_reference_map, start_index = self.write_cairo1_input_stack( @@ -1113,9 +1175,7 @@ def compile_circuit_cairo_1( """ else: code += """ - let modulus = get_p(curve_index); - let modulus = TryInto::<_, CircuitModulus>::try_into([modulus.limb0, modulus.limb1, modulus.limb2, modulus.limb3]) - .unwrap(); + let modulus = get_modulus(curve_index); """ code += f""" @@ -1143,7 +1203,7 @@ def compile_circuit_cairo_1( ) else: struct_code_with_counter = ( - struct_code + f" // in{acc_len} - in{acc_len+len(struct)-1}" + struct_code + f" // in{acc_len} - in{acc_len+len(struct)-1}\n" ) acc_len += len(struct) code += struct_code_with_counter + "\n" diff --git a/hydra/garaga/modulo_circuit_structs.py b/hydra/garaga/modulo_circuit_structs.py index 6c9097c2..b0e7268c 100644 --- a/hydra/garaga/modulo_circuit_structs.py +++ b/hydra/garaga/modulo_circuit_structs.py @@ -22,6 +22,7 @@ class CairoOption(Enum): SOME = 0 NONE = 1 + VOID = 2 # Special case to serialize nothing at all. @dataclass(slots=True) @@ -177,9 +178,12 @@ def struct_name(self) -> str: return "Span<" + self.elmts[0].struct_name + ">" def dump_to_circuit_input(self) -> str: - code = "" - for struct in self.elmts: - code += struct.dump_to_circuit_input() + code = f"let mut {self.name} = {self.name};\n" + code += f"for val in {self.name} {{\n" + + self.elmts[0].name = "*val" + code += self.elmts[0].dump_to_circuit_input() + code += "};\n" return code def __len__(self) -> int: @@ -217,6 +221,8 @@ def _serialize_to_calldata(self, option: CairoOption = None) -> list[int]: elif option == CairoOption.NONE: cd.append(1) return cd + elif option == CairoOption.VOID: + return cd else: raise ValueError(f"Invalid option: {option}") @@ -315,6 +321,43 @@ def __len__(self) -> int: return 1 +class u256Span(Cairo1SerializableStruct): + @property + def struct_name(self) -> str: + return "Span" + + def serialize(self, raw: bool = False) -> str: + raw_struct = f"{io.int_array_to_u256_array(self.elmts)}.span()" + if raw: + return raw_struct + else: + return f"let {self.name}:{self.struct_name} = {raw_struct};\n" + + def _serialize_to_calldata(self) -> list[int]: + return io.bigint_split_array( + self.elmts, n_limbs=2, base=2**128, prepend_length=True + ) + + def dump_to_circuit_input(self) -> str: + code = f""" + let mut {self.name} = {self.name}; + while let Option::Some(val) = {self.name}.pop_front() {{ + circuit_inputs = circuit_inputs.next_u256(*val); + }};""" + return code + + def extract_from_circuit_output( + self, offset_to_reference_map: dict[int, str] + ) -> str: + raise NotImplementedError + + def __len__(self) -> int: + if self.elmts is not None: + return len(self.elmts) + else: + return None + + class u128(Cairo1SerializableStruct): def serialize(self, raw: bool = False) -> str: assert len(self.elmts) == 1 @@ -346,6 +389,43 @@ def __len__(self) -> int: return 1 +class u128Span(Cairo1SerializableStruct): + @property + def struct_name(self) -> str: + return "Span" + + def serialize(self, raw: bool = False) -> str: + raw_struct = f"{io.int_array_to_u128_array(self.elmts)}.span()" + if raw: + return raw_struct + else: + return f"let {self.name}:{self.struct_name} = {raw_struct};\n" + + def _serialize_to_calldata(self) -> list[int]: + return io.bigint_split_array( + self.elmts, n_limbs=1, base=2**128, prepend_length=True + ) + + def dump_to_circuit_input(self) -> str: + code = f""" + let mut {self.name} = {self.name}; + while let Option::Some(val) = {self.name}.pop_front() {{ + circuit_inputs = circuit_inputs.next_u128(*val); + }};""" + return code + + def extract_from_circuit_output( + self, offset_to_reference_map: dict[int, str] + ) -> str: + raise NotImplementedError + + def __len__(self) -> int: + if self.elmts is not None: + return len(self.elmts) + else: + return None + + class Tuple(Cairo1SerializableStruct): elmts: list[Cairo1SerializableStruct] @@ -377,7 +457,17 @@ def extract_from_circuit_output( raise NotImplementedError def dump_to_circuit_input(self) -> str: - raise NotImplementedError + code = "" + # Need to unpack the tuple : + code = f"let ({','.join([self.members_names[i] for i in range(len(self.elmts))])}) = {self.name};\n" + # Now call dump_to_circuit_input for each member + # Names must correspond to the members names + for i, elmt in enumerate(self.elmts): + assert ( + elmt.name == self.members_names[i] + ), f"Tuple member {i} has name {elmt.name} instead of {self.members_names[i]}" + code += elmt.dump_to_circuit_input() + return code def __len__(self) -> int: return sum(len(elmt) for elmt in self.elmts) @@ -402,7 +492,9 @@ def extract_from_circuit_output( raise NotImplementedError def dump_to_circuit_input(self) -> str: - raise NotImplementedError + code = f"let {self.name}_384:u384 = {self.name}.into();\n" + code += f"circuit_inputs = circuit_inputs.next_2({self.name}_384);\n" + return code def __len__(self) -> int: if self.elmts is not None: @@ -465,8 +557,7 @@ def dump_to_circuit_input(self) -> str: let mut {self.name} = {self.name}; while let Option::Some(val) = {self.name}.pop_front() {{ circuit_inputs = circuit_inputs.{next_fn}(val); - }}; - """ + }};""" return code def __len__(self) -> int: @@ -503,10 +594,10 @@ def struct_name(self) -> str: @staticmethod def from_FunctionFelt( - name: str, f: FunctionFelt, msm_size: int + name: str, f: FunctionFelt, msm_size: int, batched: bool = False ) -> "FunctionFeltCircuit": _a_num, _a_den, _b_num, _b_den = io.padd_function_felt( - f, msm_size, py_felt=True + f, msm_size, py_felt=True, batched=batched ) return FunctionFeltCircuit( name=name, @@ -954,6 +1045,74 @@ def __len__(self) -> int: return 12 +class E12T(Cairo1SerializableStruct): + def __init__(self, name: str, elmts: list[ModuloCircuitElement]): + super().__init__(name, elmts) + self.members_names = ( + "c0b0a0", + "c0b0a1", + "c0b1a0", + "c0b1a1", + "c0b2a0", + "c0b2a1", + "c1b0a0", + "c1b0a1", + "c1b1a0", + "c1b1a1", + "c1b2a0", + "c1b2a1", + ) + + def extract_from_circuit_output( + self, offset_to_reference_map: dict[int, str] + ) -> str: + assert len(self.elmts) == 12 + code = ( + f"let {self.name}:{self.__class__.__name__} = {self.__class__.__name__}{{\n" + ) + for i, elmt in enumerate(self.elmts): + code += f"{self.members_names[i]}:outputs.get_output({offset_to_reference_map[elmt.offset]}),\n" + code += "};" + return code + + def serialize(self, raw: bool = False, is_option: bool = False) -> str: + if self.elmts is None: + raw_struct = "Option::None" + if raw: + return raw_struct + else: + return f"let {self.name}:Option<{self.__class__.__name__}> = {raw_struct};\n" + else: + assert len(self.elmts) == 12 + + raw_struct = ( + f"{self.__class__.__name__}{{" + + f"{','.join([f'{self.members_names[i]}: {int_to_u384(self.elmts[i].value)}' for i in range(len(self))])}}}" + ) + if is_option: + raw_struct = f"Option::Some({raw_struct})" + if raw: + return raw_struct + else: + return f"let {self.name} = {raw_struct};\n" + + def _serialize_to_calldata(self) -> list[int]: + return io.bigint_split_array(self.elmts, n_limbs=4, prepend_length=False) + + def dump_to_circuit_input(self) -> str: + code = "" + for i in range(len(self)): + code += f"circuit_inputs = circuit_inputs.next_2({self.name}.{self.members_names[i]});\n" + return code + + def __len__(self) -> int: + if self.elmts is not None: + assert len(self.elmts) == 12 + return 12 + else: + return 12 + + class E12DMulQuotient(Cairo1SerializableStruct): def extract_from_circuit_output( self, offset_to_reference_map: dict[int, str] diff --git a/hydra/garaga/precompiled_circuits/all_circuits.py b/hydra/garaga/precompiled_circuits/all_circuits.py index 27832e64..53f8e12b 100644 --- a/hydra/garaga/precompiled_circuits/all_circuits.py +++ b/hydra/garaga/precompiled_circuits/all_circuits.py @@ -1,4 +1,5 @@ from enum import Enum +from pathlib import Path from garaga.definitions import CurveID from garaga.precompiled_circuits.compilable_circuits.base import ( @@ -13,6 +14,8 @@ FixedG2MPCheckBit0, FixedG2MPCheckBit00, FixedG2MPCheckBit1, + FixedG2MPCheckBit01, + FixedG2MPCheckBit10, FixedG2MPCheckFinalizeBN, FixedG2MPCheckInitBit, FP12MulAssertOne, @@ -20,11 +23,30 @@ MPCheckPrepareLambdaRootEvaluations, MPCheckPreparePairs, ) +from garaga.precompiled_circuits.compilable_circuits.cairo1_tower_pairing import ( + E12TCyclotomicSquareCircuit, + E12TCyclotomicSquareCompressedCircuit, + E12TDecompressKarabinaPtIICircuit, + E12TDecompressKarabinaPtINZCircuit, + E12TDecompressKarabinaPtIZCircuit, + E12TFrobeniusCircuit, + E12TFrobeniusCubeCircuit, + E12TFrobeniusSquareCircuit, + E12TInverseCircuit, + E12TMulCircuit, + FP6NegCircuit, + TowerMillerBit0, + TowerMillerBit1, + TowerMillerFinalizeBN, + TowerMillerInitBit, +) from garaga.precompiled_circuits.compilable_circuits.common_cairo_fustat_circuits import ( AccumulateEvalPointChallengeSignedCircuit, AccumulateFunctionChallengeDuplCircuit, AddECPointCircuit, + AddECPointsG2Circuit, DoubleECPointCircuit, + DoubleECPointG2AEq0Circuit, DummyCircuit, EvalFunctionChallengeDuplCircuit, FinalizeFunctionChallengeDuplCircuit, @@ -38,6 +60,8 @@ from garaga.precompiled_circuits.compilable_circuits.isogeny import ApplyIsogenyCircuit from garaga.starknet.cli.utils import create_directory +STARKNET_DIR = Path(__file__).parent.parent / "starknet" + class CircuitID(Enum): DUMMY = int.from_bytes(b"dummy", "big") @@ -71,6 +95,8 @@ class CircuitID(Enum): MP_CHECK_BIT0_LOOP = int.from_bytes(b"mp_check_bit0_loop", "big") MP_CHECK_BIT00_LOOP = int.from_bytes(b"mp_check_bit00_loop", "big") MP_CHECK_BIT1_LOOP = int.from_bytes(b"mp_check_bit1_loop", "big") + MP_CHECK_BIT01_LOOP = int.from_bytes(b"mp_check_bit01_loop", "big") + MP_CHECK_BIT10_LOOP = int.from_bytes(b"mp_check_bit10_loop", "big") MP_CHECK_PREPARE_PAIRS = int.from_bytes(b"mp_check_prepare_pairs", "big") MP_CHECK_PREPARE_LAMBDA_ROOT = int.from_bytes( b"mp_check_prepare_lambda_root", "big" @@ -81,6 +107,36 @@ class CircuitID(Enum): FP12_MUL_ASSERT_ONE = int.from_bytes(b"fp12_mul_assert_one", "big") EVAL_E12D = int.from_bytes(b"eval_e12d", "big") APPLY_ISOGENY = int.from_bytes(b"apply_isogeny", "big") + HONK_SUMCHECK_CIRCUIT = int.from_bytes(b"honk_sumcheck_circuit", "big") + HONK_PREPARE_SCALARS_CIRCUIT = int.from_bytes( + b"honk_prepare_scalars_circuit", "big" + ) + TOWER_MILLER_BIT0 = int.from_bytes(b"tower_miller_bit0", "big") + TOWER_MILLER_BIT1 = int.from_bytes(b"tower_miller_bit1", "big") + TOWER_MILLER_INIT_BIT = int.from_bytes(b"tower_miller_init_bit", "big") + TOWER_MILLER_FINALIZE_BN = int.from_bytes(b"tower_miller_finalize_bn", "big") + E12T_MUL = int.from_bytes(b"e12t_mul", "big") + E12T_CYCLOTOMIC_SQUARE = int.from_bytes(b"e12t_cyclotomic_square", "big") + E12T_FROBENIUS_SQUARE = int.from_bytes(b"e12t_frobenius_square", "big") + FP6_NEG = int.from_bytes(b"fp6_neg", "big") + E12T_INVERSE = int.from_bytes(b"e12t_inverse", "big") + E12T_FROBENIUS = int.from_bytes(b"e12t_frobenius", "big") + E12T_FROBENIUS_CUBE = int.from_bytes(b"e12t_frobenius_cube", "big") + E12T_CYCLOTOMIC_SQUARE_COMPRESSED = int.from_bytes( + b"e12t_cyclotomic_square_compressed", "big" + ) + E12T_DECOMPRESS_KARABINA_PT_INZ = int.from_bytes( + b"e12t_decompress_karabina_pt_inz", "big" + ) + E12T_DECOMPRESS_KARABINA_PT_IZ = int.from_bytes( + b"e12t_decompress_karabina_pt_iz", "big" + ) + E12T_DECOMPRESS_KARABINA_PT_II = int.from_bytes( + b"e12t_decompress_karabina_pt_ii", "big" + ) + ADD_EC_POINT_G2 = int.from_bytes(b"add_ec_point_g2", "big") + DOUBLE_EC_POINT_G2 = int.from_bytes(b"double_ec_point_g2", "big") + FULL_ECIP_BATCHED = int.from_bytes(b"full_ecip__batched", "big") ALL_CAIRO_CIRCUITS = { @@ -117,12 +173,15 @@ class CircuitID(Enum): }, CircuitID.EVAL_FUNCTION_CHALLENGE_DUPL: { "class": EvalFunctionChallengeDuplCircuit, - "params": [{"n_points": k} for k in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]], + "params": [ + {"n_points": k, "batched": True} for k in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] + ] + + [{"n_points": k, "batched": False} for k in [1, 2]], "filename": "ec", }, CircuitID.INIT_FUNCTION_CHALLENGE_DUPL: { "class": InitFunctionChallengeDuplCircuit, - "params": [{"n_points": k} for k in [11]], + "params": [{"n_points": k, "batched": True} for k in [11]], "filename": "ec", }, CircuitID.ACC_FUNCTION_CHALLENGE_DUPL: { @@ -145,6 +204,16 @@ class CircuitID(Enum): "params": None, "filename": "ec", }, + CircuitID.ADD_EC_POINT_G2: { + "class": AddECPointsG2Circuit, + "params": None, + "filename": "ec", + }, + CircuitID.DOUBLE_EC_POINT_G2: { + "class": DoubleECPointG2AEq0Circuit, + "params": None, + "filename": "ec", + }, CircuitID.MP_CHECK_BIT0_LOOP: { "class": FixedG2MPCheckBit0, "params": [ @@ -152,7 +221,7 @@ class CircuitID(Enum): {"n_pairs": 3, "n_fixed_g2": 2}, # Groth16 ], "filename": "multi_pairing_check", - "curve_ids": [CurveID.BN254, CurveID.BLS12_381], + "curve_ids": [CurveID.BLS12_381], }, CircuitID.MP_CHECK_BIT00_LOOP: { "class": FixedG2MPCheckBit00, @@ -170,7 +239,25 @@ class CircuitID(Enum): {"n_pairs": 3, "n_fixed_g2": 2}, # Groth16 ], "filename": "multi_pairing_check", - "curve_ids": [CurveID.BN254, CurveID.BLS12_381], + "curve_ids": [CurveID.BLS12_381], + }, + CircuitID.MP_CHECK_BIT01_LOOP: { + "class": FixedG2MPCheckBit01, + "params": [ + {"n_pairs": 2, "n_fixed_g2": 2}, # BLS SIG / KZG Verif + {"n_pairs": 3, "n_fixed_g2": 2}, # Groth16 + ], + "filename": "multi_pairing_check", + "curve_ids": [CurveID.BN254], + }, + CircuitID.MP_CHECK_BIT10_LOOP: { + "class": FixedG2MPCheckBit10, + "params": [ + {"n_pairs": 2, "n_fixed_g2": 2}, # BLS SIG / KZG Verif + {"n_pairs": 3, "n_fixed_g2": 2}, # Groth16 + ], + "filename": "multi_pairing_check", + "curve_ids": [CurveID.BN254], }, CircuitID.MP_CHECK_PREPARE_PAIRS: { "class": MPCheckPreparePairs, @@ -226,6 +313,132 @@ class CircuitID(Enum): "filename": "isogeny", "curve_ids": [CurveID.BLS12_381], }, + CircuitID.TOWER_MILLER_BIT0: { + "class": TowerMillerBit0, + "params": [{"n_pairs": k} for k in [1]], + "filename": "tower_circuits", + "curve_ids": [CurveID.BN254, CurveID.BLS12_381], + }, + CircuitID.TOWER_MILLER_BIT1: { + "class": TowerMillerBit1, + "params": [{"n_pairs": k} for k in [1]], + "filename": "tower_circuits", + "curve_ids": [CurveID.BN254, CurveID.BLS12_381], + }, + CircuitID.TOWER_MILLER_INIT_BIT: { + "class": TowerMillerInitBit, + "params": [{"n_pairs": k} for k in [1]], + "filename": "tower_circuits", + "curve_ids": [CurveID.BLS12_381], + }, + CircuitID.TOWER_MILLER_FINALIZE_BN: { + "class": TowerMillerFinalizeBN, + "params": None, + "filename": "tower_circuits", + "curve_ids": [CurveID.BN254], + }, + CircuitID.E12T_MUL: { + "class": E12TMulCircuit, + "params": None, + "filename": "tower_circuits", + "curve_ids": [CurveID.BN254, CurveID.BLS12_381], + }, + CircuitID.E12T_CYCLOTOMIC_SQUARE: { + "class": E12TCyclotomicSquareCircuit, + "params": None, + "filename": "tower_circuits", + "curve_ids": [CurveID.BN254, CurveID.BLS12_381], + }, + CircuitID.E12T_FROBENIUS_SQUARE: { + "class": E12TFrobeniusSquareCircuit, + "params": None, + "filename": "tower_circuits", + "curve_ids": [CurveID.BN254, CurveID.BLS12_381], + }, + CircuitID.FP6_NEG: { + "class": FP6NegCircuit, + "params": None, + "filename": "tower_circuits", + "curve_ids": [CurveID.BN254, CurveID.BLS12_381], + }, + CircuitID.E12T_INVERSE: { + "class": E12TInverseCircuit, + "params": None, + "filename": "tower_circuits", + "curve_ids": [CurveID.BN254, CurveID.BLS12_381], + }, + CircuitID.E12T_FROBENIUS: { + "class": E12TFrobeniusCircuit, + "params": None, + "filename": "tower_circuits", + "curve_ids": [CurveID.BN254, CurveID.BLS12_381], + }, + CircuitID.E12T_FROBENIUS_CUBE: { + "class": E12TFrobeniusCubeCircuit, + "params": None, + "filename": "tower_circuits", + "curve_ids": [CurveID.BN254, CurveID.BLS12_381], + }, + CircuitID.E12T_CYCLOTOMIC_SQUARE_COMPRESSED: { + "class": E12TCyclotomicSquareCompressedCircuit, + "params": None, + "filename": "tower_circuits", + "curve_ids": [CurveID.BLS12_381], + }, + CircuitID.E12T_DECOMPRESS_KARABINA_PT_INZ: { + "class": E12TDecompressKarabinaPtINZCircuit, + "params": None, + "filename": "tower_circuits", + "curve_ids": [CurveID.BLS12_381], + }, + CircuitID.E12T_DECOMPRESS_KARABINA_PT_IZ: { + "class": E12TDecompressKarabinaPtIZCircuit, + "params": None, + "filename": "tower_circuits", + "curve_ids": [CurveID.BLS12_381], + }, + CircuitID.E12T_DECOMPRESS_KARABINA_PT_II: { + "class": E12TDecompressKarabinaPtIICircuit, + "params": None, + "filename": "tower_circuits", + "curve_ids": [CurveID.BLS12_381], + }, + # CircuitID.HONK_SUMCHECK_CIRCUIT: { + # "class": SumCheckCircuit, + # "params": [ + # { + # "vk": HonkVk.from_bytes( + # open( + # f"{STARKNET_DIR}/honk_contract_generator/examples/vk_ultra_keccak.bin", + # "rb", + # ).read() + # ) + # } + # ], + # "filename": "honk_circuits", + # "curve_ids": [CurveID.GRUMPKIN], + # }, + # CircuitID.HONK_PREPARE_SCALARS_CIRCUIT: { + # "class": PrepareScalarsCircuit, + # "params": [ + # { + # "vk": HonkVk.from_bytes( + # open( + # f"{STARKNET_DIR}/honk_contract_generator/examples/vk_ultra_keccak.bin", + # "rb", + # ).read() + # ) + # } + # ], + # "filename": "honk_circuits", + # "curve_ids": [CurveID.GRUMPKIN], + # }, + # CircuitID.FULL_ECIP_BATCHED: { + # "class": FullECIPCircuitBatched, + # "params": [{"n_points": k} for k in [1]], + # "filename": "ec_batched", + # "curve_ids": [CurveID.BN254], + # }, } @@ -264,13 +477,57 @@ def initialize_compilation( ) -def write_headers(files: dict[str, open], compilation_mode: int) -> None: +def write_headers( + files: dict[str, open], + compilation_mode: int, + output_sizes_exceeding_limit: dict[str, set[int]], + file_curve_ids: dict[str, set[CurveID]], +) -> None: """ - Write the header to the files. + Write the header to the files. Add a specific header if max output length exceeds the limit. """ - HEADER = compilation_mode_to_file_header(compilation_mode) - for file in files.values(): - file.write(HEADER) + + for filename, curve_ids in file_curve_ids.items(): + HEADER = compilation_mode_to_file_header(compilation_mode, curve_ids) + files[filename].write(HEADER) + + TEMPLATE = """ +impl CircuitDefinition{num_outputs}< + {elements} +> of core::circuit::CircuitDefinition< + ( + {ce_elements} + ) +> {{ + type CircuitType = + core::circuit::Circuit< + ({elements_tuple},) + >; +}} +impl MyDrp_{num_outputs}< + {elements} +> of Drop< + ( + {ce_elements} + ) +>; +""" + + for filename, file in files.items(): + + # Then write the template for each unique output size exceeding the limit + for num_outputs in sorted(output_sizes_exceeding_limit[filename]): + elements = ", ".join(f"E{i}" for i in range(num_outputs)) + ce_elements = ", ".join(f"CE" for i in range(num_outputs)) + elements_tuple = ", ".join(f"E{i}" for i in range(num_outputs)) + file.write( + TEMPLATE.format( + num_outputs=num_outputs, + elements=elements, + ce_elements=ce_elements, + elements_tuple=elements_tuple, + ) + ) def compile_circuits( @@ -279,6 +536,8 @@ def compile_circuits( codes: dict[str, set[str]], cairo1_full_function_names: dict[str, set[str]], cairo1_tests_functions: dict[str, set[str]], + output_sizes_exceeding_limit: dict[str, set[int]], + limit: int, ) -> None: """ Compile the circuits and write them to the files. @@ -296,6 +555,14 @@ def compile_circuits( filename_key, ) codes[filename_key].update(compiled_circuits) + for circuit_instance in circuit_instances: + output_length = len(circuit_instance.circuit.output) + if ( + output_length > limit + and circuit_instance.circuit.exact_output_refs_needed is None + ): + output_sizes_exceeding_limit[filename_key].add(output_length) + if compilation_mode == 1: cairo1_full_function_names[filename_key].update(full_function_names) generate_cairo1_tests( @@ -380,14 +647,26 @@ def main( filenames_used, codes, cairo1_tests_functions, cairo1_full_function_names, files = ( initialize_compilation(PRECOMPILED_CIRCUITS_DIR, CIRCUITS_TO_COMPILE) ) - write_headers(files, compilation_mode) + file_curve_ids = {filename: set() for filename in filenames_used} + + # Populate file_curve_ids with curve IDs + for circuit_info in CIRCUITS_TO_COMPILE.values(): + filename = circuit_info["filename"] + curve_ids = circuit_info.get("curve_ids", [CurveID.BN254, CurveID.BLS12_381]) + file_curve_ids[filename].update(curve_ids) + + output_sizes_exceeding_limit = {filename: set() for filename in filenames_used} + limit = 16 compile_circuits( CIRCUITS_TO_COMPILE, compilation_mode, codes, cairo1_full_function_names, cairo1_tests_functions, + output_sizes_exceeding_limit, + limit, ) + write_headers(files, compilation_mode, output_sizes_exceeding_limit, file_curve_ids) write_compiled_circuits( files, codes, diff --git a/hydra/garaga/precompiled_circuits/compilable_circuits/base.py b/hydra/garaga/precompiled_circuits/compilable_circuits/base.py index 95c2d2e3..47585b5a 100644 --- a/hydra/garaga/precompiled_circuits/compilable_circuits/base.py +++ b/hydra/garaga/precompiled_circuits/compilable_circuits/base.py @@ -105,7 +105,7 @@ def __init__( self.init_hash = init_hash -def compilation_mode_to_file_header(mode: int) -> str: +def compilation_mode_to_file_header(mode: int, curve_ids: set[CurveID]) -> str: if mode == 0: return """ from starkware.cairo.common.registers import get_fp_and_pc, get_label_location @@ -113,19 +113,23 @@ def compilation_mode_to_file_header(mode: int) -> str: from definitions import bn, bls """ elif mode == 1: - return """ -use core::circuit::{ - RangeCheck96, AddMod, MulMod, u384, u96, CircuitElement, CircuitInput, circuit_add, circuit_sub, + moduluses = [ + f"get_{curve_id.name}_modulus" + for curve_id in sorted(curve_ids, key=lambda x: x.name) + ] + return f""" +use core::circuit::{{ + RangeCheck96, AddMod, MulMod, u384, u96, circuit_add, circuit_sub, circuit_mul, circuit_inverse, EvalCircuitResult, EvalCircuitTrait, CircuitOutputsTrait, CircuitModulus, AddInputResultTrait, CircuitInputs, CircuitDefinition, CircuitData, CircuitInputAccumulator -}; +}}; use garaga::core::circuit::AddInputResultTrait2; use core::circuit::CircuitElement as CE; use core::circuit::CircuitInput as CI; -use garaga::definitions::{get_a, get_b, get_p, get_g, get_min_one, G1Point, G2Point, E12D, u288, E12DMulQuotient, G1G2Pair, BNProcessedPair, BLSProcessedPair, MillerLoopResultScalingFactor, G2Line, get_BLS12_381_modulus,get_BN254_modulus}; -use garaga::ec_ops::{SlopeInterceptOutput, FunctionFeltEvaluations, FunctionFelt}; -use core::option::Option;\n +use garaga::definitions::{{get_a, get_b, get_modulus, get_g, get_min_one, G1Point, G2Point, E12D, u288, E12DMulQuotient, G1G2Pair, BNProcessedPair, BLSProcessedPair, MillerLoopResultScalingFactor, G2Line, E12T, {', '.join(moduluses)}}}; +use garaga::ec_ops::{{SlopeInterceptOutput, FunctionFeltEvaluations, FunctionFelt}}; +use core::option::Option; """ diff --git a/hydra/garaga/precompiled_circuits/compilable_circuits/cairo1_mpcheck_circuits.py b/hydra/garaga/precompiled_circuits/compilable_circuits/cairo1_mpcheck_circuits.py index 51fc33c0..2f99f3e8 100644 --- a/hydra/garaga/precompiled_circuits/compilable_circuits/cairo1_mpcheck_circuits.py +++ b/hydra/garaga/precompiled_circuits/compilable_circuits/cairo1_mpcheck_circuits.py @@ -120,7 +120,7 @@ def input_map( def _base_input_map(self, bit_type: str) -> dict: """ - Base input map for the bit 0, 1, and 00 cases. + Base input map for the bit 0, 1, 00, 01, and 10 cases. """ input_map = {} @@ -128,9 +128,15 @@ def _base_input_map(self, bit_type: str) -> dict: for k in range(self.n_fixed_g2): input_map[f"yInv_{k}"] = u384 input_map[f"xNegOverY_{k}"] = u384 - input_map[f"G2_line_{k}"] = G2Line - if bit_type == "1": - input_map[f"Q_or_Q_neg_line{k}"] = G2Line + input_map[f"G2_line_dbl_{k}"] = G2Line + if bit_type in ("1"): + input_map[f"G2_line_add_{k}"] = G2Line + if bit_type == "10": + input_map[f"G2_line_add_1_{k}"] = G2Line + input_map[f"G2_line_dbl_0_{k}"] = G2Line + if bit_type == "01": + input_map[f"G2_line_dbl_1{k}"] = G2Line + input_map[f"G2_line_add_1{k}"] = G2Line if bit_type == "00": input_map[f"G2_line_2nd_0_{k}"] = G2Line @@ -138,7 +144,7 @@ def _base_input_map(self, bit_type: str) -> dict: input_map[f"yInv_{k}"] = u384 input_map[f"xNegOverY_{k}"] = u384 input_map[f"Q_{k}"] = G2PointCircuit - if bit_type == "1": + if bit_type in ("1", "01", "10"): input_map[f"Q_or_Q_neg_{k}"] = G2PointCircuit # Add common inputs @@ -147,7 +153,7 @@ def _base_input_map(self, bit_type: str) -> dict: input_map["f_i_plus_one_of_z"] = u384 # Add bit-specific inputs - if bit_type == "1": + if bit_type in ("1", "01", "10"): input_map["c_or_cinv_of_z"] = u384 input_map["z"] = u384 @@ -235,12 +241,15 @@ def _execute_circuit_logic(self, circuit, vars) -> ModuloCircuit: Implement the circuit logic using the processed input variables. """ - def _execute_circuit_bit_logic_base(self, circuit, vars, bit_type): + def _execute_circuit_bit_logic_base(self, circuit: ModuloCircuit, vars, bit_type): n_pairs = self.n_pairs assert n_pairs >= 2, f"n_pairs must be >= 2, got {n_pairs}" current_points, q_or_q_neg_points = parse_precomputed_g1_consts_and_g2_points( - circuit, vars, n_pairs, bit_1=(bit_type == "1") + circuit, + vars, + n_pairs, + bit_1=(bit_type == "1" or bit_type == "01" or bit_type == "10"), ) circuit.create_lines_z_powers(vars["z"]) @@ -256,8 +265,12 @@ def _execute_circuit_bit_logic_base(self, circuit, vars, bit_type): circuit, current_points, q_or_q_neg_points, sum_i_prod_k_P, bit_type ) - if bit_type == "1": + if bit_type in ("1", "01"): sum_i_prod_k_P = circuit.mul(sum_i_prod_k_P, vars["c_or_cinv_of_z"]) + elif bit_type == "10": + sum_i_prod_k_P = circuit.mul( + sum_i_prod_k_P, circuit.square(vars["c_or_cinv_of_z"]) + ) f_i_plus_one_of_z = vars["f_i_plus_one_of_z"] new_lhs = circuit.mul( @@ -304,6 +317,55 @@ def _process_points( ) new_new_points.append(T) return new_new_points, sum_i_prod_k_P + elif bit_type == "01": + for k in range(self.n_pairs): + T, l1 = circuit.double_step(current_points[k], k) + sum_i_prod_k_P = self._multiply_line_evaluations( + circuit, sum_i_prod_k_P, [l1], k + ) + new_points.append(T) + + sum_i_prod_k_P = circuit.mul( + sum_i_prod_k_P, + sum_i_prod_k_P, + "Compute (f^2 * Π(i,k) (line_i,k(z))) ^ 2 = f^4 * (Π(i,k) (line_i,k(z)))^2", + ) + + new_new_points = [] + for k in range(self.n_pairs): + T, l1, l2 = circuit.double_and_add_step( + new_points[k], q_or_q_neg_points[k], k + ) + sum_i_prod_k_P = self._multiply_line_evaluations( + circuit, sum_i_prod_k_P, [l1, l2], k + ) + new_new_points.append(T) + + return new_new_points, sum_i_prod_k_P + + elif bit_type == "10": + for k in range(self.n_pairs): + T, l1, l2 = circuit.double_and_add_step( + current_points[k], q_or_q_neg_points[k], k + ) + sum_i_prod_k_P = self._multiply_line_evaluations( + circuit, sum_i_prod_k_P, [l1, l2], k + ) + new_points.append(T) + + sum_i_prod_k_P = circuit.mul( + sum_i_prod_k_P, + sum_i_prod_k_P, + "Compute (f^2 * Π(i,k) (line_i,k(z))) ^ 2 = f^4 * (Π(i,k) (line_i,k(z)))^2", + ) + new_new_points = [] + for k in range(self.n_pairs): + T, l1 = circuit.double_step(new_points[k], k) + sum_i_prod_k_P = self._multiply_line_evaluations( + circuit, sum_i_prod_k_P, [l1], k + ) + new_new_points.append(T) + return new_new_points, sum_i_prod_k_P elif bit_type == "0": for k in range(self.n_pairs): T, l1 = circuit.double_step(current_points[k], k) @@ -320,9 +382,18 @@ def _process_points( circuit, sum_i_prod_k_P, [l1, l2], k ) new_points.append(T) + + else: + raise ValueError(f"Invalid bit type: {bit_type}") return new_points, sum_i_prod_k_P - def _multiply_line_evaluations(self, circuit, sum_i_prod_k_P, lines, k): + def _multiply_line_evaluations( + self, + circuit: multi_pairing_check.MultiPairingCheckCircuit, + sum_i_prod_k_P, + lines, + k, + ): for i, l in enumerate(lines): sum_i_prod_k_P = circuit.mul( sum_i_prod_k_P, @@ -358,17 +429,27 @@ def _extend_output(self, circuit, new_points, lhs_i_plus_one, ci_plus_one): circuit.extend_struct_output(u384(name="ci_plus_one", elmts=[ci_plus_one])) -class FixedG2MPCheckBit0(BaseFixedG2PointsMPCheck): +class FixedG2MPCheckBitBase(BaseFixedG2PointsMPCheck): + """Base class for bit checking circuits with default parameters.""" + + BIT_TYPE = None # Override in subclasses + DEFAULT_PAIRS = 3 + DEFAULT_FIXED_G2 = 2 + def __init__( self, curve_id: int, - n_pairs: int, - n_fixed_g2: int, + n_pairs: int = None, + n_fixed_g2: int = None, auto_run: bool = True, compilation_mode: int = 1, ): + assert compilation_mode == 1, "Compilation mode 1 is required for this circuit" + n_pairs = n_pairs if n_pairs is not None else self.DEFAULT_PAIRS + n_fixed_g2 = n_fixed_g2 if n_fixed_g2 is not None else self.DEFAULT_FIXED_G2 + super().__init__( - name=f"mp_check_bit0_{n_pairs}P_{n_fixed_g2}F", + name=f"mp_check_bit{self.BIT_TYPE}_{n_pairs}P_{n_fixed_g2}F", curve_id=curve_id, n_pairs=n_pairs, n_fixed_g2=n_fixed_g2, @@ -378,63 +459,30 @@ def __init__( @property def input_map(self): - return self._base_input_map("0") + return self._base_input_map(self.BIT_TYPE) def _execute_circuit_logic(self, circuit, vars) -> ModuloCircuit: - return self._execute_circuit_bit_logic_base(circuit, vars, "0") + return self._execute_circuit_bit_logic_base(circuit, vars, self.BIT_TYPE) -class FixedG2MPCheckBit00(BaseFixedG2PointsMPCheck): - def __init__( - self, - curve_id: int, - auto_run: bool = True, - compilation_mode: int = 1, - n_pairs: int = 3, - n_fixed_g2: int = 2, - ): - super().__init__( - name=f"mp_check_bit00_{n_pairs}P_{n_fixed_g2}F", - curve_id=curve_id, - n_pairs=n_pairs, - n_fixed_g2=n_fixed_g2, - auto_run=auto_run, - compilation_mode=compilation_mode, - ) +class FixedG2MPCheckBit0(FixedG2MPCheckBitBase): + BIT_TYPE = "0" - @property - def input_map(self): - return self._base_input_map("00") - def _execute_circuit_logic(self, circuit, vars) -> ModuloCircuit: - return self._execute_circuit_bit_logic_base(circuit, vars, "00") +class FixedG2MPCheckBit00(FixedG2MPCheckBitBase): + BIT_TYPE = "00" -class FixedG2MPCheckBit1(BaseFixedG2PointsMPCheck): - def __init__( - self, - curve_id: int, - auto_run: bool = True, - n_pairs: int = 3, - n_fixed_g2: int = 2, - compilation_mode: int = 1, - ): - assert compilation_mode == 1, "Compilation mode 1 is required for this circuit" - super().__init__( - name=f"mp_check_bit1_{n_pairs}P_{n_fixed_g2}F", - curve_id=curve_id, - n_pairs=n_pairs, - n_fixed_g2=n_fixed_g2, - auto_run=auto_run, - compilation_mode=compilation_mode, - ) +class FixedG2MPCheckBit1(FixedG2MPCheckBitBase): + BIT_TYPE = "1" - @property - def input_map(self): - return self._base_input_map("1") - def _execute_circuit_logic(self, circuit, vars) -> ModuloCircuit: - return self._execute_circuit_bit_logic_base(circuit, vars, "1") +class FixedG2MPCheckBit01(FixedG2MPCheckBitBase): + BIT_TYPE = "01" + + +class FixedG2MPCheckBit10(FixedG2MPCheckBitBase): + BIT_TYPE = "10" class FixedG2MPCheckInitBit(BaseFixedG2PointsMPCheck): diff --git a/hydra/garaga/precompiled_circuits/compilable_circuits/cairo1_tower_pairing.py b/hydra/garaga/precompiled_circuits/compilable_circuits/cairo1_tower_pairing.py new file mode 100644 index 00000000..15303b17 --- /dev/null +++ b/hydra/garaga/precompiled_circuits/compilable_circuits/cairo1_tower_pairing.py @@ -0,0 +1,955 @@ +from abc import ABC, abstractmethod +from typing import Dict, List, Optional, Tuple, Type, Union + +import garaga.modulo_circuit_structs as structs +from garaga.definitions import BLS12_381_ID +from garaga.extension_field_modulo_circuit import ModuloCircuit, PyFelt +from garaga.modulo_circuit_structs import ( + Cairo1SerializableStruct, + G2Line, + G2PointCircuit, + u384, + u384Array, +) +from garaga.precompiled_circuits.compilable_circuits.base import ( + BaseEXTFCircuit, + BaseModuloCircuit, +) +from garaga.precompiled_circuits.miller_tower import MillerTowerCircuit + + +def split_4_sized_object_into_tuple_of_2_size( + input: Union[List[PyFelt], Tuple[PyFelt, PyFelt, PyFelt, PyFelt]] +) -> Optional[Tuple[List[PyFelt], List[PyFelt]]]: + if input is None: + return None + assert len(input) == 4, f"Expected input of length 4, got {len(input)}" + return (list(input[0:2]), list(input[2:4])) + + +def parse_precomputed_g1_consts_and_g2_points( + circuit: MillerTowerCircuit, + vars: dict, + n_pairs: int, + bit_1: bool = False, +) -> list[tuple[list[PyFelt], list[PyFelt]]]: + current_points = [] + q_or_q_neg_points = [] if bit_1 else None + for i in range(n_pairs): + circuit.yInv.append(vars[f"yInv_{i}"]) + circuit.xNegOverY.append(vars[f"xNegOverY_{i}"]) + current_points.append( + split_4_sized_object_into_tuple_of_2_size(vars.get(f"Q_{i}", None)) + ) # Return empty list if not present + if bit_1: + q_or_q_neg_points.append( + split_4_sized_object_into_tuple_of_2_size( + vars.get(f"Q_or_Q_neg_{i}", None) + ) # Return empty list if not present + ) + + return current_points, q_or_q_neg_points + + +class BaseTowerMillerLoop(BaseEXTFCircuit, ABC): + def __init__( + self, + name, + curve_id, + auto_run=True, + compilation_mode=1, + n_pairs: int = 1, + ): + assert compilation_mode == 1, "Compilation mode 1 is required for this circuit" + self.n_pairs = n_pairs + super().__init__( + name=name, + curve_id=curve_id, + auto_run=auto_run, + compilation_mode=compilation_mode, + ) + self.generic_over_curve = True + + def _initialize_circuit(self): + return MillerTowerCircuit( + self.name, + self.curve_id, + n_pairs=self.n_pairs, + compilation_mode=self.compilation_mode, + ) + + @property + @abstractmethod + def input_map( + self, + ) -> Dict[ + str, + Union[ + Type[Cairo1SerializableStruct], Tuple[Type[Cairo1SerializableStruct], int] + ], + ]: + """ + Define the input map for the circuit in a dict. + The key will be the name of the input variable, also used in the signature of the compiled Cairo code. + The value will be either a Cairo1SerializableStruct type (which defines the struct in the Cairo code), + or a tuple of the type and its size (for Array-like types). + The reason behind this is that each Cairo1SerializableStruct defines the __len__ method, but for the + array-like structs we need to specify the size in advance. + """ + + def _base_input_map(self, bit_type: str) -> dict: + """ + Base input map for the bit 0 and 1 + """ + input_map = {} + + for k in range(self.n_pairs): + input_map[f"yInv_{k}"] = u384 + input_map[f"xNegOverY_{k}"] = u384 + input_map[f"Q_{k}"] = G2PointCircuit + if bit_type == "1": + input_map[f"Q_or_Q_neg_{k}"] = G2PointCircuit + + # Add common inputs + input_map["M_i"] = structs.E12T + + return input_map + + def _process_input(self, circuit: MillerTowerCircuit, input: list[PyFelt]) -> dict: + """ + Method responsible for deserializing the input list of elements into the variables in the input map, + and writing them to the circuit. + The input list is expected to be in the same order as the input map. + Since we use Python 3.10, the input map dict is ordered. + Returns a vars dict with the same keys as the input map, but with the values being the instances of the structs, + each struct holding ModuloCircuitElement(s). + """ + vars = {} + for name, struct_info in self.input_map.items(): + if isinstance(struct_info, tuple) and struct_info[0] == u384Array: + # Handle u384Array with specified size + struct_type, size = struct_info + vars[name] = circuit.write_struct( + struct_type(name, elmts=[input.pop(0) for _ in range(size)]) + ) + elif struct_info == G2Line: + # Internally appended to the precomputed_lines flattened list + circuit.precomputed_lines.extend( + circuit.write_struct( + G2Line(name, elmts=[input.pop(0) for _ in range(4)]) + ) + ) + else: + struct_type = struct_info + # For other types, create a temporary instance to get its length + temp_instance = struct_type( + name, None + ) # Temporary instance with a dummy element + size = len(temp_instance) + if size == 1: + vars[name] = circuit.write_struct( + struct_type(name, elmts=[input.pop(0)]) + ) + else: + # Convert to tuple so that it is Hashable + vars[name] = tuple( + circuit.write_struct( + struct_type(name, elmts=[input.pop(0) for _ in range(size)]) + ) + ) + assert len(input) == 0, f"Expected input of length 0, got {len(input)}" + # Create the precomputed lines generator + circuit._precomputed_lines_generator = ( + circuit._create_precomputed_lines_generator() + ) + return vars + + def build_input(self) -> list[PyFelt]: + """ + Extends the base method of BaseModuloCircuit, by reading the input map and returning a list of random elements of the total expected size. + """ + total_elements = 0 + for name, struct_info in self.input_map.items(): + if isinstance(struct_info, tuple): + # Array-like case + _, size = struct_info + total_elements += size + else: + # For other structs, create a temporary instance to get its length + temp_instance = struct_info(name, None) + total_elements += len(temp_instance) + + return [self.field.random() for _ in range(total_elements)] + + def _run_circuit_inner(self, input: list[PyFelt]) -> ModuloCircuit: + circuit = self._initialize_circuit() + + vars = self._process_input(circuit, input) + return self._execute_circuit_logic(circuit, vars) + + @abstractmethod + def _execute_circuit_logic(self, circuit, vars) -> ModuloCircuit: + """ + Implement the circuit logic using the processed input variables. + """ + + def _execute_circuit_bit_logic_base( + self, circuit: MillerTowerCircuit, vars, bit_type + ): + n_pairs = self.n_pairs + assert n_pairs >= 1, f"n_pairs must be >= 1, got {n_pairs}" + + current_points, q_or_q_neg_points = parse_precomputed_g1_consts_and_g2_points( + circuit, vars, n_pairs, bit_1=(bit_type == "1") + ) + + Mi_sq = circuit.fp12_square(vars["M_i"]) + + new_points, Mi_plus_one = self._process_points( + circuit, current_points, q_or_q_neg_points, Mi_sq, bit_type + ) + + self._extend_output(circuit, new_points, Mi_plus_one) + + return circuit + + def _process_points( + self, + circuit: MillerTowerCircuit, + current_points, + q_or_q_neg_points, + sum_i_prod_k_P, + bit_type, + ): + new_points = [] + if bit_type == "0": + for k in range(self.n_pairs): + T, (lineR0, lineR1) = circuit._double(current_points[k], k) + line = circuit.eval_tower_line( + lineR0 + lineR1, circuit.yInv[k], circuit.xNegOverY[k] + ) + sum_i_prod_k_P = self._multiply_line_evaluations( + circuit, sum_i_prod_k_P, [line], k + ) + new_points.append(T) + elif bit_type == "1": + for k in range(self.n_pairs): + # T, l1, l2 = circuit.double_and_add_step( + # current_points[k], q_or_q_neg_points[k], k + # ) + T, (line1R0, line1R1), (line2R0, line2R1) = circuit._double_and_add( + current_points[k], q_or_q_neg_points[k], k + ) + line1 = circuit.eval_tower_line( + line1R0 + line1R1, circuit.yInv[k], circuit.xNegOverY[k] + ) + line2 = circuit.eval_tower_line( + line2R0 + line2R1, circuit.yInv[k], circuit.xNegOverY[k] + ) + sum_i_prod_k_P = self._multiply_line_evaluations( + circuit, sum_i_prod_k_P, [line1, line2], k + ) + new_points.append(T) + + return new_points, sum_i_prod_k_P + + def _multiply_line_evaluations( + self, + circuit: MillerTowerCircuit, + sum_i_prod_k_P, + lines, + k, + ): + for i, l in enumerate(lines): + sum_i_prod_k_P = circuit.mul_by_line_tower(sum_i_prod_k_P, l) + return sum_i_prod_k_P + + def _extend_output(self, circuit: ModuloCircuit, new_points, Mi_plus_one): + circuit.exact_output_refs_needed = [] + for i, point in enumerate(new_points): + sum_coords = circuit.sum( + [point[0][0], point[0][1], point[1][0], point[1][1]] + ) + circuit.exact_output_refs_needed.append(sum_coords) + + circuit.extend_struct_output( + G2PointCircuit( + name=f"Q{i}", + elmts=[ + point[0][0], + point[0][1], + point[1][0], + point[1][1], + ], + ) + ) + + circuit.extend_struct_output( + structs.E12T(name="Mi_plus_one", elmts=Mi_plus_one) + ) + circuit.exact_output_refs_needed.extend(Mi_plus_one) + + +class TowerMillerBit0(BaseTowerMillerLoop): + def __init__( + self, + curve_id: int, + n_pairs: int, + auto_run: bool = True, + compilation_mode: int = 1, + ): + super().__init__( + name=f"tower_miller_bit0_{n_pairs}P", + curve_id=curve_id, + n_pairs=n_pairs, + auto_run=auto_run, + compilation_mode=compilation_mode, + ) + + @property + def input_map(self): + return self._base_input_map("0") + + def _execute_circuit_logic(self, circuit, vars) -> ModuloCircuit: + return self._execute_circuit_bit_logic_base(circuit, vars, "0") + + +class TowerMillerBit1(BaseTowerMillerLoop): + def __init__( + self, + curve_id: int, + auto_run: bool = True, + n_pairs: int = 1, + compilation_mode: int = 1, + ): + assert compilation_mode == 1, "Compilation mode 1 is required for this circuit" + super().__init__( + name=f"tower_miller_bit1_{n_pairs}P", + curve_id=curve_id, + n_pairs=n_pairs, + auto_run=auto_run, + compilation_mode=compilation_mode, + ) + + @property + def input_map(self): + return self._base_input_map("1") + + def _execute_circuit_logic(self, circuit, vars) -> ModuloCircuit: + return self._execute_circuit_bit_logic_base(circuit, vars, "1") + + +class TowerMillerInitBit(BaseTowerMillerLoop): + def __init__( + self, + curve_id: int, + auto_run: bool = True, + compilation_mode: int = 1, + n_pairs: int = 3, + ): + super().__init__( + name=f"tower_miller_init_bit_{n_pairs}P", + curve_id=curve_id, + n_pairs=n_pairs, + auto_run=auto_run, + compilation_mode=compilation_mode, + ) + + @property + def input_map(self): + if self.curve_id == BLS12_381_ID: + input_map = {} + for k in range(self.n_pairs): + input_map[f"yInv_{k}"] = u384 + input_map[f"xNegOverY_{k}"] = u384 + input_map[f"Q_{k}"] = G2PointCircuit + return input_map + else: + raise NotImplementedError(f"Curve {self.curve_id} not implemented") + + def _execute_circuit_logic( + self, circuit: MillerTowerCircuit, vars + ) -> ModuloCircuit: + n_pairs = self.n_pairs + assert n_pairs == 1, f"Only implemented for 1 pair for now, got {n_pairs}" + + current_points, q_or_q_neg_points = parse_precomputed_g1_consts_and_g2_points( + circuit, vars, n_pairs, bit_1=False + ) + + new_points = [] + for k in range(self.n_pairs): + T, (line1R0, line1R1), (line2R0, line2R1) = circuit._triple( + current_points[k], k + ) + + line1 = circuit.eval_tower_line( + line1R0 + line1R1, circuit.yInv[k], circuit.xNegOverY[k] + ) + line2 = circuit.eval_tower_line( + line2R0 + line2R1, circuit.yInv[k], circuit.xNegOverY[k] + ) + # result.C0.B0 = prodLines[0] + # result.C0.B1 = prodLines[1] + # result.C0.B2 = prodLines[2] + # result.C1.B1 = prodLines[3] + # result.C1.B2 = prodLines[4] + ll = circuit.mul_line_by_line_tower(line1, line2) + + new_points.append(T) + + for i, point in enumerate(new_points): + circuit.extend_struct_output( + G2PointCircuit( + name=f"Q{i}", + elmts=[ + point[0][0], + point[0][1], + point[1][0], + point[1][1], + ], + ) + ) + + circuit.extend_struct_output(structs.u384(name="c0b0a0", elmts=[ll[0]])) + circuit.extend_struct_output(structs.u384(name="c0b0a1", elmts=[ll[1]])) + circuit.extend_struct_output(structs.u384(name="c0b1a0", elmts=[ll[2]])) + circuit.extend_struct_output(structs.u384(name="c0b1a1", elmts=[ll[3]])) + circuit.extend_struct_output(structs.u384(name="c0b2a0", elmts=[ll[4]])) + circuit.extend_struct_output(structs.u384(name="c0b2a1", elmts=[ll[5]])) + circuit.extend_struct_output(structs.u384(name="c1b1a0", elmts=[ll[6]])) + circuit.extend_struct_output(structs.u384(name="c1b1a1", elmts=[ll[7]])) + circuit.extend_struct_output(structs.u384(name="c1b2a0", elmts=[ll[8]])) + circuit.extend_struct_output(structs.u384(name="c1b2a1", elmts=[ll[9]])) + + return circuit + + +class TowerMillerFinalizeBN(BaseTowerMillerLoop): + def __init__( + self, + curve_id: int, + auto_run: bool = True, + n_pairs: int = 1, + compilation_mode: int = 1, + ): + + super().__init__( + name=f"tower_miller_finalize_bn_{n_pairs}P", + curve_id=curve_id, + n_pairs=n_pairs, + auto_run=auto_run, + compilation_mode=compilation_mode, + ) + + @property + def input_map(self): + if self.curve_id == BLS12_381_ID: + return {} + input_map = {} + + for i in range(self.n_pairs): + input_map[f"original_Q{i}"] = G2PointCircuit + input_map[f"yInv_{i}"] = u384 + input_map[f"xNegOverY_{i}"] = u384 + input_map[f"Q_{i}"] = G2PointCircuit + + input_map["Mi"] = structs.E12T + + return input_map + + def _execute_circuit_logic(self, circuit: MillerTowerCircuit, vars): + if self.curve_id == BLS12_381_ID: + return circuit + + n_pairs = self.n_pairs + current_points = [] + for k in range(n_pairs): + circuit.Q.append( + split_4_sized_object_into_tuple_of_2_size( + vars.get(f"original_Q{k}", None) + ) + ) + circuit.yInv.append(vars[f"yInv_{k}"]) + circuit.xNegOverY.append(vars[f"xNegOverY_{k}"]) + current_points.append( + split_4_sized_object_into_tuple_of_2_size(vars.get(f"Q_{k}", None)) + ) + + Mi = vars["Mi"] + + lines = circuit._bn254_finalize_step(current_points) + + for l in lines: + ((l1r0, l1r1), (l2r0, l2r1)) = l + + l1_eval = circuit.eval_tower_line( + l1r0 + l1r1, circuit.yInv[k], circuit.xNegOverY[k] + ) + l2_eval = circuit.eval_tower_line( + l2r0 + l2r1, circuit.yInv[k], circuit.xNegOverY[k] + ) + + ll = circuit.mul_line_by_line_tower(l1_eval, l2_eval) + + ll_full = ll + [ + circuit.set_or_get_constant(0), + circuit.set_or_get_constant(0), + ] + + Mi = circuit.fp12_mul(Mi, ll_full) + + circuit.extend_struct_output(structs.E12T("Mi", elmts=Mi)) + return circuit + + +class E12TMulCircuit(BaseEXTFCircuit): + def __init__( + self, + curve_id: int, + auto_run: bool = True, + init_hash: int = None, + compilation_mode: int = 0, + ): + super().__init__("e12t_mul", curve_id, auto_run, init_hash, compilation_mode) + + def build_input(self) -> list[PyFelt]: + input = [] + input.extend([self.field.random() for _ in range(12)]) # X + input.extend([self.field.random() for _ in range(12)]) # Y + + return input + + def _run_circuit_inner(self, input: list[PyFelt]) -> MillerTowerCircuit: + circuit = MillerTowerCircuit(self.name, self.curve_id, n_pairs=None) + X = circuit.write_struct( + structs.E12T("X", elmts=[input.pop(0) for _ in range(12)]) + ) + Y = circuit.write_struct( + structs.E12T("Y", elmts=[input.pop(0) for _ in range(12)]) + ) + res = circuit.fp12_mul(X, Y) + circuit.extend_struct_output(structs.E12T("res", elmts=res)) + + return circuit + + +class FP6NegCircuit(BaseModuloCircuit): + def __init__( + self, + curve_id: int, + auto_run: bool = True, + compilation_mode: int = 1, + ): + super().__init__("fp6_neg", curve_id, auto_run, compilation_mode) + + def build_input(self) -> list[PyFelt]: + input = [] + input.extend([self.field.random() for _ in range(6)]) + + return input + + def _run_circuit_inner(self, input: list[PyFelt]) -> ModuloCircuit: + circuit = ModuloCircuit( + self.name, + self.curve_id, + generic_circuit=True, + compilation_mode=self.compilation_mode, + ) + + fp6 = [ + circuit.write_struct(structs.u384(name="b0a0", elmts=[input.pop(0)])), + circuit.write_struct(structs.u384(name="b0a1", elmts=[input.pop(0)])), + circuit.write_struct(structs.u384(name="b1a0", elmts=[input.pop(0)])), + circuit.write_struct(structs.u384(name="b1a1", elmts=[input.pop(0)])), + circuit.write_struct(structs.u384(name="b2a0", elmts=[input.pop(0)])), + circuit.write_struct(structs.u384(name="b2a1", elmts=[input.pop(0)])), + ] + + res = [circuit.neg(fp6[i]) for i in range(6)] + + circuit.extend_struct_output(structs.u384(name="r0", elmts=[res[0]])) + circuit.extend_struct_output(structs.u384(name="r1", elmts=[res[1]])) + circuit.extend_struct_output(structs.u384(name="r2", elmts=[res[2]])) + circuit.extend_struct_output(structs.u384(name="r3", elmts=[res[3]])) + circuit.extend_struct_output(structs.u384(name="r4", elmts=[res[4]])) + circuit.extend_struct_output(structs.u384(name="r5", elmts=[res[5]])) + + return circuit + + +class E12TInverseCircuit(BaseEXTFCircuit): + def __init__( + self, + curve_id: int, + auto_run: bool = True, + init_hash: int = None, + compilation_mode: int = 0, + ): + super().__init__( + "e12t_inverse", curve_id, auto_run, init_hash, compilation_mode + ) + + def build_input(self) -> list[PyFelt]: + input = [] + input.extend([self.field.random() for _ in range(12)]) # M + + return input + + def _run_circuit_inner(self, input: list[PyFelt]) -> ModuloCircuit: + circuit = MillerTowerCircuit(self.name, self.curve_id, n_pairs=None) + M = circuit.write_struct( + structs.E12T("M", elmts=[input.pop(0) for _ in range(12)]) + ) + res = circuit.fp12_inverse(M) + circuit.extend_struct_output(structs.E12T("res", elmts=res)) + + return circuit + + +class E12TFrobeniusCircuit(BaseEXTFCircuit): + def __init__( + self, + curve_id: int, + auto_run: bool = True, + init_hash: int = None, + compilation_mode: int = 1, + ): + super().__init__( + "e12t_frobenius", curve_id, auto_run, init_hash, compilation_mode + ) + + def build_input(self) -> list[PyFelt]: + input = [] + input.extend([self.field.random() for _ in range(12)]) # M + + return input + + def _run_circuit_inner(self, input: list[PyFelt]) -> ModuloCircuit: + circuit = MillerTowerCircuit(self.name, self.curve_id, n_pairs=None) + M = circuit.write_struct( + structs.E12T("M", elmts=[input.pop(0) for _ in range(12)]) + ) + res = circuit.fp12_frob(M) + circuit.extend_struct_output(structs.E12T("res", elmts=res)) + + return circuit + + +class E12TFrobeniusSquareCircuit(BaseEXTFCircuit): + def __init__( + self, + curve_id: int, + auto_run: bool = True, + init_hash: int = None, + compilation_mode: int = 0, + ): + super().__init__( + "e12t_frobenius_square", curve_id, auto_run, init_hash, compilation_mode + ) + + def build_input(self) -> list[PyFelt]: + input = [] + input.extend([self.field.random() for _ in range(12)]) # M + + return input + + def _run_circuit_inner(self, input: list[PyFelt]) -> ModuloCircuit: + circuit = MillerTowerCircuit(self.name, self.curve_id, n_pairs=None) + M = circuit.write_struct( + structs.E12T("M", elmts=[input.pop(0) for _ in range(12)]) + ) + res = circuit.fp12_frob_square(M) + circuit.extend_struct_output(structs.E12T("res", elmts=res)) + + return circuit + + +class E12TFrobeniusCubeCircuit(BaseEXTFCircuit): + def __init__( + self, + curve_id: int, + auto_run: bool = True, + init_hash: int = None, + compilation_mode: int = 0, + ): + super().__init__( + "e12t_frobenius_cube", curve_id, auto_run, init_hash, compilation_mode + ) + + def build_input(self) -> list[PyFelt]: + input = [] + input.extend([self.field.random() for _ in range(12)]) # M + + return input + + def _run_circuit_inner(self, input: list[PyFelt]) -> ModuloCircuit: + circuit = MillerTowerCircuit(self.name, self.curve_id, n_pairs=None) + M = circuit.write_struct( + structs.E12T("M", elmts=[input.pop(0) for _ in range(12)]) + ) + res = circuit.fp12_frob_cube(M) + circuit.extend_struct_output(structs.E12T("res", elmts=res)) + + return circuit + + +class E12TCyclotomicSquareCircuit(BaseEXTFCircuit): + def __init__( + self, + curve_id: int, + auto_run: bool = True, + init_hash: int = None, + compilation_mode: int = 0, + ): + super().__init__( + "e12t_cyclotomic_square", curve_id, auto_run, init_hash, compilation_mode + ) + + def build_input(self) -> list[PyFelt]: + input = [] + input.extend([self.field.random() for _ in range(12)]) # M + + return input + + def _run_circuit_inner(self, input: list[PyFelt]) -> ModuloCircuit: + circuit = MillerTowerCircuit(self.name, self.curve_id, n_pairs=None) + M = circuit.write_struct( + structs.E12T("M", elmts=[input.pop(0) for _ in range(12)]) + ) + res = circuit.fp12_cyclotomic_square(M) + circuit.extend_struct_output(structs.E12T("res", elmts=res)) + + return circuit + + +class E12TCyclotomicSquareCompressedCircuit(BaseEXTFCircuit): + def __init__( + self, + curve_id: int, + auto_run: bool = True, + init_hash: int = None, + compilation_mode: int = 0, + ): + super().__init__( + "e12t_cyclo_square_compressed", + curve_id, + auto_run, + init_hash, + compilation_mode, + ) + + def build_input(self) -> list[PyFelt]: + input = [] + input.extend([self.field.random() for _ in range(8)]) + + return input + + def _run_circuit_inner(self, input: list[PyFelt]) -> ModuloCircuit: + circuit = MillerTowerCircuit(self.name, self.curve_id, n_pairs=None) + xc0b1a0 = circuit.write_struct( + structs.u384(name="xc0b1a0", elmts=[input.pop(0)]) + ) + xc0b1a1 = circuit.write_struct( + structs.u384(name="xc0b1a1", elmts=[input.pop(0)]) + ) + xc0b2a0 = circuit.write_struct( + structs.u384(name="xc0b2a0", elmts=[input.pop(0)]) + ) + xc0b2a1 = circuit.write_struct( + structs.u384(name="xc0b2a1", elmts=[input.pop(0)]) + ) + xc1b0a0 = circuit.write_struct( + structs.u384(name="xc1b0a0", elmts=[input.pop(0)]) + ) + xc1b0a1 = circuit.write_struct( + structs.u384(name="xc1b0a1", elmts=[input.pop(0)]) + ) + xc1b2a0 = circuit.write_struct( + structs.u384(name="xc1b2a0", elmts=[input.pop(0)]) + ) + xc1b2a1 = circuit.write_struct( + structs.u384(name="xc1b2a1", elmts=[input.pop(0)]) + ) + res = circuit.fp12_cyclotomic_square_compressed( + [xc0b1a0, xc0b1a1], + [xc0b2a0, xc0b2a1], + [xc1b0a0, xc1b0a1], + [xc1b2a0, xc1b2a1], + ) + assert len(res) == 8 + circuit.extend_struct_output(structs.u384(name="xc0b1a0", elmts=[res[0]])) + circuit.extend_struct_output(structs.u384(name="xc0b1a1", elmts=[res[1]])) + circuit.extend_struct_output(structs.u384(name="xc0b2a0", elmts=[res[2]])) + circuit.extend_struct_output(structs.u384(name="xc0b2a1", elmts=[res[3]])) + circuit.extend_struct_output(structs.u384(name="xc1b0a0", elmts=[res[4]])) + circuit.extend_struct_output(structs.u384(name="xc1b0a1", elmts=[res[5]])) + circuit.extend_struct_output(structs.u384(name="xc1b2a0", elmts=[res[6]])) + circuit.extend_struct_output(structs.u384(name="xc1b2a1", elmts=[res[7]])) + + return circuit + + +class E12TDecompressKarabinaPtIZCircuit(BaseEXTFCircuit): + def __init__( + self, + curve_id: int, + auto_run: bool = True, + init_hash: int = None, + compilation_mode: int = 0, + ): + super().__init__( + "e12t_decomp_karabina_I_Z", curve_id, auto_run, init_hash, compilation_mode + ) + + def build_input(self) -> list[PyFelt]: + input = [] + input.extend([self.field.random() for _ in range(4)]) + + return input + + def _run_circuit_inner(self, input: list[PyFelt]) -> ModuloCircuit: + circuit = MillerTowerCircuit(self.name, self.curve_id, n_pairs=None) + xc0b1a0 = circuit.write_struct( + structs.u384(name="xc0b1a0", elmts=[input.pop(0)]) + ) + xc0b1a1 = circuit.write_struct( + structs.u384(name="xc0b1a1", elmts=[input.pop(0)]) + ) + xc1b2a0 = circuit.write_struct( + structs.u384(name="xc1b2a0", elmts=[input.pop(0)]) + ) + xc1b2a1 = circuit.write_struct( + structs.u384(name="xc1b2a1", elmts=[input.pop(0)]) + ) + res = circuit.fp12_decompress_karabina_pt_I_c1b2_Z( + [xc0b1a0, xc0b1a1], [xc1b2a0, xc1b2a1] + ) + circuit.extend_struct_output(structs.u384(name="res0", elmts=[res[0]])) + circuit.extend_struct_output(structs.u384(name="res1", elmts=[res[1]])) + + return circuit + + +class E12TDecompressKarabinaPtINZCircuit(BaseEXTFCircuit): + def __init__( + self, + curve_id: int, + auto_run: bool = True, + init_hash: int = None, + compilation_mode: int = 0, + ): + super().__init__( + "e12t_decomp_karabina_I_NZ", curve_id, auto_run, init_hash, compilation_mode + ) + + def build_input(self) -> list[PyFelt]: + input = [] + input.extend([self.field.random() for _ in range(8)]) + + return input + + def _run_circuit_inner(self, input: list[PyFelt]) -> ModuloCircuit: + circuit = MillerTowerCircuit(self.name, self.curve_id, n_pairs=None) + xc0b1a0 = circuit.write_struct( + structs.u384(name="xc0b1a0", elmts=[input.pop(0)]) + ) + xc0b1a1 = circuit.write_struct( + structs.u384(name="xc0b1a1", elmts=[input.pop(0)]) + ) + xc0b2a0 = circuit.write_struct( + structs.u384(name="xc0b2a0", elmts=[input.pop(0)]) + ) + xc0b2a1 = circuit.write_struct( + structs.u384(name="xc0b2a1", elmts=[input.pop(0)]) + ) + xc1b0a0 = circuit.write_struct( + structs.u384(name="xc1b0a0", elmts=[input.pop(0)]) + ) + xc1b0a1 = circuit.write_struct( + structs.u384(name="xc1b0a1", elmts=[input.pop(0)]) + ) + xc1b2a0 = circuit.write_struct( + structs.u384(name="xc1b2a0", elmts=[input.pop(0)]) + ) + xc1b2a1 = circuit.write_struct( + structs.u384(name="xc1b2a1", elmts=[input.pop(0)]) + ) + + t0, t1 = circuit.fp12_decompress_karabina_pt_I_c1b2_NZ( + [xc0b1a0, xc0b1a1], + [xc0b2a0, xc0b2a1], + [xc1b0a0, xc1b0a1], + [xc1b2a0, xc1b2a1], + ) + circuit.extend_struct_output(structs.u384(name="t0a0", elmts=[t0[0]])) + circuit.extend_struct_output(structs.u384(name="t0a1", elmts=[t0[1]])) + circuit.extend_struct_output(structs.u384(name="t1a0", elmts=[t1[0]])) + circuit.extend_struct_output(structs.u384(name="t1a1", elmts=[t1[1]])) + + return circuit + + +class E12TDecompressKarabinaPtIICircuit(BaseEXTFCircuit): + def __init__( + self, + curve_id: int, + auto_run: bool = True, + init_hash: int = None, + compilation_mode: int = 0, + ): + super().__init__( + "e12t_decomp_karabina_II", curve_id, auto_run, init_hash, compilation_mode + ) + + def build_input(self) -> list[PyFelt]: + input = [] + input.extend([self.field.random() for _ in range(12)]) + + return input + + def _run_circuit_inner(self, input: list[PyFelt]) -> ModuloCircuit: + circuit = MillerTowerCircuit(self.name, self.curve_id, n_pairs=None) + t0a0 = circuit.write_struct(structs.u384(name="t0a0", elmts=[input.pop(0)])) + t0a1 = circuit.write_struct(structs.u384(name="t0a1", elmts=[input.pop(0)])) + t1a0 = circuit.write_struct(structs.u384(name="t1a0", elmts=[input.pop(0)])) + t1a1 = circuit.write_struct(structs.u384(name="t1a1", elmts=[input.pop(0)])) + xc0b1a0 = circuit.write_struct( + structs.u384(name="xc0b1a0", elmts=[input.pop(0)]) + ) + xc0b1a1 = circuit.write_struct( + structs.u384(name="xc0b1a1", elmts=[input.pop(0)]) + ) + xc0b2a0 = circuit.write_struct( + structs.u384(name="xc0b2a0", elmts=[input.pop(0)]) + ) + xc0b2a1 = circuit.write_struct( + structs.u384(name="xc0b2a1", elmts=[input.pop(0)]) + ) + xc1b0a0 = circuit.write_struct( + structs.u384(name="xc1b0a0", elmts=[input.pop(0)]) + ) + xc1b0a1 = circuit.write_struct( + structs.u384(name="xc1b0a1", elmts=[input.pop(0)]) + ) + xc1b2a0 = circuit.write_struct( + structs.u384(name="xc1b2a0", elmts=[input.pop(0)]) + ) + xc1b2a1 = circuit.write_struct( + structs.u384(name="xc1b2a1", elmts=[input.pop(0)]) + ) + + zc0b0, zc1b1 = circuit.fp12_decompress_karabina_pt_II( + [t0a0, t0a1], + [t1a0, t1a1], + [xc0b1a0, xc0b1a1], + [xc0b2a0, xc0b2a1], + [xc1b0a0, xc1b0a1], + [xc1b2a0, xc1b2a1], + ) + circuit.extend_struct_output(structs.u384(name="zc0b0a0", elmts=[zc0b0[0]])) + circuit.extend_struct_output(structs.u384(name="zc0b0a1", elmts=[zc0b0[1]])) + circuit.extend_struct_output(structs.u384(name="zc1b1a0", elmts=[zc1b1[0]])) + circuit.extend_struct_output(structs.u384(name="zc1b1a1", elmts=[zc1b1[1]])) + + return circuit diff --git a/hydra/garaga/precompiled_circuits/compilable_circuits/common_cairo_fustat_circuits.py b/hydra/garaga/precompiled_circuits/compilable_circuits/common_cairo_fustat_circuits.py index deb8b737..3e15bb88 100644 --- a/hydra/garaga/precompiled_circuits/compilable_circuits/common_cairo_fustat_circuits.py +++ b/hydra/garaga/precompiled_circuits/compilable_circuits/common_cairo_fustat_circuits.py @@ -1,9 +1,14 @@ from random import randint +import garaga.hints.io as io import garaga.modulo_circuit_structs as structs from garaga.definitions import CURVES, CurveID, G1Point, G2Point from garaga.hints import neg_3 -from garaga.hints.ecip import slope_intercept +from garaga.hints.ecip import ( + n_coeffs_from_n_points, + n_points_from_n_coeffs, + slope_intercept, +) from garaga.modulo_circuit import WriteOps from garaga.modulo_circuit_structs import G1PointCircuit, G2PointCircuit, u384 from garaga.precompiled_circuits.compilable_circuits.base import ( @@ -11,7 +16,12 @@ ModuloCircuit, PyFelt, ) -from garaga.precompiled_circuits.ec import BasicEC, ECIPCircuits, IsOnCurveCircuit +from garaga.precompiled_circuits.ec import ( + BasicEC, + BasicECG2, + ECIPCircuits, + IsOnCurveCircuit, +) class DummyCircuit(BaseModuloCircuit): @@ -168,6 +178,81 @@ def _run_circuit_inner(self, input: list[PyFelt]) -> ModuloCircuit: return circuit +class AddECPointsG2Circuit(BaseModuloCircuit): + def __init__(self, curve_id: int, auto_run: bool = True, compilation_mode: int = 0): + super().__init__( + name="add_ec_points_g2", + curve_id=curve_id, + auto_run=auto_run, + compilation_mode=compilation_mode, + ) + + def build_input(self) -> list[PyFelt]: + input = [] + P = G2Point.gen_random_point(CurveID(self.curve_id)) + Q = G2Point.gen_random_point(CurveID(self.curve_id)) + input.append(self.field(P.x[0])) + input.append(self.field(P.x[1])) + input.append(self.field(P.y[0])) + input.append(self.field(P.y[1])) + input.append(self.field(Q.x[0])) + input.append(self.field(Q.x[1])) + input.append(self.field(Q.y[0])) + input.append(self.field(Q.y[1])) + return input + + def _run_circuit_inner(self, input: list[PyFelt]) -> ModuloCircuit: + circuit = BasicECG2( + self.name, self.curve_id, compilation_mode=self.compilation_mode + ) + px0, px1, py0, py1 = circuit.write_struct( + G2PointCircuit("p", input[0:4]), WriteOps.INPUT + ) + qx0, qx1, qy0, qy1 = circuit.write_struct( + G2PointCircuit("q", input[4:8]), WriteOps.INPUT + ) + + (nx0, nx1), (ny0, ny1) = circuit.add_points( + ((px0, px1), (py0, py1)), ((qx0, qx1), (qy0, qy1)) + ) + circuit.extend_struct_output(G2PointCircuit("result", [nx0, nx1, ny0, ny1])) + + return circuit + + +class DoubleECPointG2AEq0Circuit(BaseModuloCircuit): + def __init__(self, curve_id: int, auto_run: bool = True, compilation_mode: int = 0): + super().__init__( + name="double_ec_point_g2_a_eq_0", + curve_id=curve_id, + auto_run=auto_run, + compilation_mode=compilation_mode, + ) + + def build_input(self) -> list[PyFelt]: + input = [] + P = G2Point.gen_random_point(CurveID(self.curve_id)) + input.append(self.field(P.x[0])) + input.append(self.field(P.x[1])) + input.append(self.field(P.y[0])) + input.append(self.field(P.y[1])) + + return input + + def _run_circuit_inner(self, input: list[PyFelt]) -> ModuloCircuit: + circuit = BasicECG2( + self.name, self.curve_id, compilation_mode=self.compilation_mode + ) + px0, px1, py0, py1 = circuit.write_struct( + G2PointCircuit("p", input[0:4]), WriteOps.INPUT + ) + + (nx0, nx1), (ny0, ny1) = circuit.double_point_a_eq_0(((px0, px1), (py0, py1))) + circuit.extend_struct_output(G2PointCircuit("result", [nx0, nx1, ny0, ny1])) + + return circuit + + class SlopeInterceptSamePointCircuit(BaseModuloCircuit): def __init__( self, curve_id: int, auto_run: bool = True, compilation_mode: int = 0 @@ -318,26 +403,19 @@ def __init__( n_points: int = 1, auto_run: bool = True, compilation_mode: int = 0, + batched: bool = False, + generic_circuit: bool = True, ) -> None: self.n_points = n_points + self.batched = batched + self.generic_circuit = generic_circuit super().__init__( - name=f"eval_fn_challenge_dupl_{n_points}P", + name=f"eval_fn_challenge_dupl_{n_points}P" + ("_rlc" if batched else ""), curve_id=curve_id, auto_run=auto_run, compilation_mode=compilation_mode, ) - @staticmethod - def _n_coeffs_from_n_points(n_points: int) -> tuple[int, int, int, int]: - return (1 + n_points, 1 + n_points + 1, 1 + n_points + 1, 1 + n_points + 4) - - @staticmethod - def _n_points_from_n_coeffs(n_coeffs: int) -> int: - # n_coeffs = 10 + 4n_points => 4n_points = n_coeffs - 10 - assert n_coeffs >= 10 - assert (n_coeffs - 10) % 4 == 0 - return (n_coeffs - 10) // 4 - def build_input(self) -> list[PyFelt]: input = [] circuit = SlopeInterceptSamePointCircuit(self.curve_id, auto_run=False) @@ -346,14 +424,17 @@ def build_input(self) -> list[PyFelt]: [xA, _yA, _A] ).output input.extend([xA0.felt, _yA.felt, xA2.felt, yA2.felt, coeff0.felt, coeff2.felt]) - n_coeffs = self._n_coeffs_from_n_points(self.n_points) + n_coeffs = n_coeffs_from_n_points(self.n_points, self.batched) for _ in range(sum(n_coeffs)): input.append(self.field(randint(0, CURVES[self.curve_id].p - 1))) return input def _run_circuit_inner(self, input: list[PyFelt]) -> ModuloCircuit: circuit = ECIPCircuits( - self.name, self.curve_id, compilation_mode=self.compilation_mode + self.name, + self.curve_id, + compilation_mode=self.compilation_mode, + generic_circuit=self.generic_circuit, ) xA0, yA0 = circuit.write_struct( @@ -374,14 +455,14 @@ def split_list(input_list, lengths): start_idx += length return result - n_points = self._n_points_from_n_coeffs(len(all_coeffs)) + n_points = n_points_from_n_coeffs(len(all_coeffs), self.batched) _log_div_a_num, _log_div_a_den, _log_div_b_num, _log_div_b_den = split_list( - all_coeffs, self._n_coeffs_from_n_points(n_points) + all_coeffs, n_coeffs_from_n_points(n_points, self.batched) ) log_div_a_num, log_div_a_den, log_div_b_num, log_div_b_den = ( circuit.write_struct( structs.FunctionFeltCircuit( - name="SumDlogDiv", + name="SumDlogDiv" + ("Batched" if self.batched else ""), elmts=[ structs.u384Span("log_div_a_num", _log_div_a_num), structs.u384Span("log_div_a_den", _log_div_a_den), @@ -414,31 +495,22 @@ def __init__( curve_id: int, n_points: int = 1, auto_run: bool = True, + batched: bool = False, compilation_mode: int = 0, ) -> None: self.n_points = n_points + self.batched = batched super().__init__( - name=f"init_fn_challenge_dupl_{n_points}P", + name=f"init_fn_challenge_dupl_{n_points}P" + ("_rlc" if batched else ""), curve_id=curve_id, auto_run=auto_run, compilation_mode=compilation_mode, ) - @staticmethod - def _n_coeffs_from_n_points(n_points: int) -> tuple[int, int, int, int]: - return (1 + n_points, 1 + n_points + 1, 1 + n_points + 1, 1 + n_points + 4) - - @staticmethod - def _n_points_from_n_coeffs(n_coeffs: int) -> int: - # n_coeffs = 10 + 4n_points => 4n_points = n_coeffs - 10 - assert n_coeffs >= 10 - assert (n_coeffs - 10) % 4 == 0 - return (n_coeffs - 10) // 4 - def build_input(self) -> list[PyFelt]: input = [] input.extend([self.field.random(), self.field.random()]) # xA0, xA2 - n_coeffs = self._n_coeffs_from_n_points(self.n_points) + n_coeffs = n_coeffs_from_n_points(self.n_points, self.batched) for _ in range(sum(n_coeffs)): input.append(self.field(randint(0, CURVES[self.curve_id].p - 1))) return input @@ -459,9 +531,9 @@ def split_list(input_list, lengths): start_idx += length return result - n_points = self._n_points_from_n_coeffs(len(all_coeffs)) + n_points = n_points_from_n_coeffs(len(all_coeffs), self.batched) _log_div_a_num, _log_div_a_den, _log_div_b_num, _log_div_b_den = split_list( - all_coeffs, self._n_coeffs_from_n_points(n_points) + all_coeffs, n_coeffs_from_n_points(n_points, self.batched) ) log_div_a_num, log_div_a_den, log_div_b_num, log_div_b_den = ( @@ -685,3 +757,275 @@ def _run_circuit_inner(self, input: list[PyFelt]) -> ModuloCircuit: circuit.extend_struct_output(G1PointCircuit("r", [xR, yR])) return circuit + + +class FullECIPCircuitBatched(BaseModuloCircuit): + def __init__( + self, + curve_id: int, + n_points: int = 1, + auto_run: bool = True, + compilation_mode: int = 0, + ) -> None: + self.n_points = n_points + super().__init__( + name=f"full_ecip_{n_points}P", + curve_id=curve_id, + auto_run=auto_run, + compilation_mode=compilation_mode, + ) + + @staticmethod + def _n_coeffs_from_n_points(n_points: int) -> tuple[int, int, int, int]: + return ( + 1 + n_points + 2, + 1 + n_points + 1 + 2, + 1 + n_points + 1 + 2, + 1 + n_points + 4 + 2, + ) + + @staticmethod + def _n_points_from_n_coeffs(n_coeffs: int) -> int: + # n_coeffs = 18 + 4n_points => 4n_points = n_coeffs - 18 + assert n_coeffs >= 18 + 4 + assert (n_coeffs - 18) % 4 == 0 + return (n_coeffs - 18) // 4 + + def build_input(self) -> list[PyFelt]: + input = [] + n_coeffs = self._n_coeffs_from_n_points(self.n_points) + + # RLCSumDlogDiv + for _ in range(sum(n_coeffs)): + input.append(self.field.random()) + + for _ in range(self.n_points): + input.append(self.field.random()) # x + input.append(self.field.random()) # y + input.append(self.field.random()) # ep_low + input.append(self.field.random()) # en_low + input.append(self.field.random()) # sp_low + input.append(self.field.random()) # sn_low + input.append(self.field.random()) # ep_high + input.append(self.field.random()) # en_high + input.append(self.field.random()) # sp_high + input.append(self.field.random()) # sn_high + + # Q_low/high/high_shifted + A0 + for i in range(4): + input.append(self.field.random()) # x + input.append(self.field.random()) # y + + input.append(self.field(CURVES[self.curve_id].a)) # A_weirstrass + input.append(self.field.random()) # base_rlc. + + return input + + def _run_circuit_inner(self, input: list[PyFelt]) -> ModuloCircuit: + circuit = ECIPCircuits( + self.name, self.curve_id, compilation_mode=self.compilation_mode + ) + n_coeffs = self._n_coeffs_from_n_points(self.n_points) + ff_coeffs = input[: sum(n_coeffs)] + + all_points = input[sum(n_coeffs) :] + + def split_list(input_list, lengths): + start_idx, result = 0, [] + for length in lengths: + result.append(input_list[start_idx : start_idx + length]) + start_idx += length + return result + + points = [] + ep_lows = [] + en_lows = [] + sp_lows = [] + sn_lows = [] + ep_highs = [] + en_highs = [] + sp_highs = [] + sn_highs = [] + for i in range(self.n_points): + points.append( + circuit.write_struct( + G1PointCircuit(f"p_{i}", all_points[i * 8 : i * 8 + 2]), + ) + ) + ep_lows.append(all_points[i * 8 + 3]) + en_lows.append(all_points[i * 8 + 4]) + sp_lows.append(all_points[i * 8 + 5]) + sn_lows.append(all_points[i * 8 + 6]) + ep_highs.append(all_points[i * 8 + 7]) + en_highs.append(all_points[i * 8 + 8]) + sp_highs.append(all_points[i * 8 + 9]) + sn_highs.append(all_points[i * 8 + 10]) + + epns_low = circuit.write_struct( + structs.StructSpan( + "epns_low", + [ + structs.Tuple( + f"epn_{i}", + elmts=[ + structs.u384("ep", [ep_lows[i]]), + structs.u384("en", [en_lows[i]]), + structs.u384("sp", [sp_lows[i]]), + structs.u384("sn", [sn_lows[i]]), + ], + ) + for i in range(self.n_points) + ], + ) + ) + + print(f"epns_low: {epns_low} (n_points: {self.n_points})") + + epns_high = circuit.write_struct( + structs.StructSpan( + "epns_high", + [ + structs.Tuple( + f"epn_{i}", + elmts=[ + structs.u384("ep", [ep_highs[i]]), + structs.u384("en", [en_highs[i]]), + structs.u384("sp", [sp_highs[i]]), + structs.u384("sn", [sn_highs[i]]), + ], + ) + for i in range(self.n_points) + ], + ) + ) + + rest_points = all_points[self.n_points * 8 :] + q_low = circuit.write_struct( + structs.G1PointCircuit("q_low", elmts=rest_points[0:2]) + ) + q_high = circuit.write_struct( + structs.G1PointCircuit("q_high", elmts=rest_points[2:4]) + ) + + q_high_shifted = circuit.write_struct( + structs.G1PointCircuit("q_high_shifted", elmts=rest_points[4:6]), + ) + a0 = circuit.write_struct(structs.G1PointCircuit("a0", elmts=rest_points[6:8])) + + A_weirstrass = circuit.write_struct( + structs.u384("A_weirstrass", elmts=[rest_points[8]]) + ) + base_rlc = circuit.write_struct( + structs.u384("base_rlc", elmts=[rest_points[9]]) + ) + + m_A0, b_A0, xA0, yA0, xA2, yA2, coeff0, coeff2 = ( + circuit._slope_intercept_same_point(a0, A_weirstrass) + ) + + def get_log_div_coeffs(circuit, ff_coeffs): + _log_div_a_num, _log_div_a_den, _log_div_b_num, _log_div_b_den = split_list( + ff_coeffs, self._n_coeffs_from_n_points(self.n_points) + ) + log_div_a_num, log_div_a_den, log_div_b_num, log_div_b_den = ( + circuit.write_struct( + structs.FunctionFeltCircuit( + name="SumDlogDiv", + elmts=[ + structs.u384Span("log_div_a_num", _log_div_a_num), + structs.u384Span("log_div_a_den", _log_div_a_den), + structs.u384Span("log_dsumiv_b_num", _log_div_b_num), + structs.u384Span("log_div_b_den", _log_div_b_den), + ], + ), + WriteOps.INPUT, + ) + ) + + return log_div_a_num, log_div_a_den, log_div_b_num, log_div_b_den + + log_div_a_num_low, log_div_a_den_low, log_div_b_num_low, log_div_b_den_low = ( + get_log_div_coeffs(circuit, ff_coeffs) + ) + + lhs = circuit._eval_function_challenge_dupl( + (xA0, yA0), + (xA2, yA2), + coeff0, + coeff2, + log_div_a_num_low, + log_div_a_den_low, + log_div_b_num_low, + log_div_b_den_low, + ) + + def compute_base_rhs(circuit: ECIPCircuits, points, epns, m_A0, b_A0, xA0): + acc = circuit.set_or_get_constant(0) + for pt, _epns in zip(points, epns): + _epns = io.flatten(_epns) + print(f"epns: {_epns}") + print(f"epns[0]: {_epns[0]}") + print(f"epns[1]: {_epns[1]}") + print(f"epns[2]: {_epns[2]}") + print(f"epns[3]: {_epns[3]}") + acc = circuit._accumulate_eval_point_challenge_signed_same_point( + eval_accumulator=acc, + slope_intercept=(m_A0, b_A0), + xA=xA0, + P=pt, + ep=_epns[0], + en=_epns[1], + sign_ep=_epns[2], + sign_en=_epns[3], + ) + return acc + + base_rhs_low = compute_base_rhs(circuit, points, epns_low, m_A0, b_A0, xA0) + rhs_low = circuit._RHS_finalize_acc( + base_rhs_low, (m_A0, b_A0), xA0, (q_low[0], q_low[1]) + ) + + base_rhs_high = compute_base_rhs(circuit, points, epns_high, m_A0, b_A0, xA0) + rhs_high = circuit._RHS_finalize_acc( + base_rhs_high, (m_A0, b_A0), xA0, (q_high[0], q_high[1]) + ) + base_rhs_high_shifted = compute_base_rhs( + circuit, + [q_high_shifted], + [ + [ + circuit.set_or_get_constant(5279154705627724249993186093248666011), + circuit.set_or_get_constant( + 345561521626566187713367793525016877467 + ), + circuit.set_or_get_constant(-1), + circuit.set_or_get_constant(-1), + ] + ], + m_A0, + b_A0, + xA0, + ) + rhs_high_shifted = circuit._RHS_finalize_acc( + base_rhs_high_shifted, + (m_A0, b_A0), + xA0, + (q_high_shifted[0], q_high_shifted[1]), + ) + + c0 = base_rlc + c1 = circuit.mul(c0, c0) + c2 = circuit.mul(c1, c0) + + rhs = circuit.sum( + [ + circuit.mul(rhs_low, c0), + circuit.mul(rhs_high, c1), + circuit.mul(rhs_high_shifted, c2), + ] + ) + + final_check = circuit.sub(lhs, rhs) + circuit.extend_struct_output(u384("final_check", [final_check])) + + return circuit diff --git a/hydra/garaga/precompiled_circuits/compilable_circuits/ultra_honk.py b/hydra/garaga/precompiled_circuits/compilable_circuits/ultra_honk.py new file mode 100644 index 00000000..48398a05 --- /dev/null +++ b/hydra/garaga/precompiled_circuits/compilable_circuits/ultra_honk.py @@ -0,0 +1,337 @@ +from abc import abstractmethod +from typing import Dict, Tuple, Type, Union + +import garaga.modulo_circuit_structs as structs +import garaga.precompiled_circuits.honk as hk +from garaga.definitions import CurveID +from garaga.modulo_circuit import ModuloCircuitElement +from garaga.modulo_circuit_structs import u384 +from garaga.precompiled_circuits.compilable_circuits.base import ( + BaseModuloCircuit, + ModuloCircuit, + PyFelt, +) +from garaga.precompiled_circuits.honk import HonkVerifierCircuits, HonkVk, Wire + + +class BaseUltraHonkCircuit(BaseModuloCircuit): + def __init__( + self, + name: str, + log_n: int, + curve_id: CurveID.GRUMPKIN.value, + auto_run: bool = True, + compilation_mode: int = 1, + ) -> None: + self.log_n = log_n + super().__init__( + name=name, + curve_id=curve_id, + auto_run=auto_run, + compilation_mode=compilation_mode, + ) + + def _initialize_circuit(self) -> HonkVerifierCircuits: + return HonkVerifierCircuits( + name=self.name, + log_n=self.log_n, + curve_id=self.curve_id, + ) + + def _process_input( + self, circuit: HonkVerifierCircuits, input: list[PyFelt] + ) -> dict: + """ + Method responsible for deserializing the input list of elements into the variables in the input map, + and writing them to the circuit. + The input list is expected to be in the same order as the input map. + Since we use Python 3.10, the input map dict is ordered. + Returns a vars dict with the same keys as the input map, but with the values being the instances of the structs, + each struct holding ModuloCircuitElement(s). + """ + vars = {} + for name, struct_info in self.input_map.items(): + if name == "sumcheck_evaluations": + # Edge case, TABLE_SHIFTS are not used. Replace with mocked non part of circuit values. + struct_type, size = struct_info + assert size == len(Wire) - len(Wire.unused_indexes()) + elements = circuit.write_struct( + struct_type(name, elmts=[input.pop(0) for _ in range(size)]) + ) + elements = Wire.insert_unused_indexes_with_nones(elements) + assert len(elements) == len(Wire) + vars[name] = elements + + elif isinstance(struct_info, tuple) and struct_info[0] in [ + structs.u256Span, + structs.u384Array, + structs.u128Span, + ]: + # Handle u384Array with specified size + struct_type, size = struct_info + vars[name] = circuit.write_struct( + struct_type(name, elmts=[input.pop(0) for _ in range(size)]) + ) + + else: + struct_type = struct_info + # For other types, create a temporary instance to get its length + temp_instance = struct_type( + name, None + ) # Temporary instance with a dummy element + size = len(temp_instance) + if size == 1: + vars[name] = circuit.write_struct( + struct_type(name, elmts=[input.pop(0)]) + ) + else: + # Convert to tuple so that it is Hashable + vars[name] = tuple( + circuit.write_struct( + struct_type(name, elmts=[input.pop(0) for _ in range(size)]) + ) + ) + assert len(input) == 0, f"Expected input of length 0, got {len(input)}" + + return vars + + @property + @abstractmethod + def input_map( + self, + ) -> Dict[ + str, + Union[ + Type[structs.Cairo1SerializableStruct], + Tuple[Type[structs.Cairo1SerializableStruct], int], + ], + ]: + """ + Define the input map for the circuit in a dict. + The key will be the name of the input variable, also used in the signature of the compiled Cairo code. + The value will be either a Cairo1SerializableStruct type (which defines the struct in the Cairo code), + or a tuple of the type and its size (for Array-like types). + The reason behind this is that each Cairo1SerializableStruct defines the __len__ method, but for the + array-like structs we need to specify the size in advance. + """ + + def build_input(self) -> list[PyFelt]: + """ + Extends the base method of BaseModuloCircuit, by reading the input map and returning a list of random elements of the total expected size. + """ + total_elements = 0 + for name, struct_info in self.input_map.items(): + if isinstance(struct_info, tuple): + # Array-like case + _, size = struct_info + total_elements += size + else: + # For other structs, create a temporary instance to get its length + temp_instance = struct_info(name, None) + total_elements += len(temp_instance) + + # print(f"Total elements: {total_elements}") + return [self.field.random() for _ in range(total_elements)] + + def _run_circuit_inner(self, input: list[PyFelt]) -> ModuloCircuit: + circuit = self._initialize_circuit() + + vars = self._process_input(circuit, input) + return self._execute_circuit_logic(circuit, vars) + + @abstractmethod + def _execute_circuit_logic(self, circuit, vars) -> ModuloCircuit: + """ + Implement the circuit logic using the processed input variables. + """ + + +class SumCheckCircuit(BaseUltraHonkCircuit): + def __init__( + self, + vk: HonkVk, + curve_id: int = CurveID.GRUMPKIN.value, + auto_run: bool = True, + compilation_mode: int = 1, + ) -> None: + name = f"honk_sumcheck_size_{vk.log_circuit_size}_pub_{vk.public_inputs_size}" + self.vk = vk + + super().__init__( + name, vk.log_circuit_size, curve_id, auto_run, compilation_mode + ) + + @property + def input_map(self) -> dict: + imap = {} + + imap["p_public_inputs"] = (structs.u256Span, self.vk.public_inputs_size) + imap["p_public_inputs_offset"] = structs.u384 + + imap["sumcheck_univariates_flat"] = ( + structs.u256Span, + self.vk.log_circuit_size * hk.BATCHED_RELATION_PARTIAL_LENGTH, + ) + + imap["sumcheck_evaluations"] = ( + structs.u256Span, + hk.NUMBER_OF_ENTITIES - len(Wire.unused_indexes()), + ) + + imap["tp_sum_check_u_challenges"] = ( + structs.u128Span, + self.vk.log_circuit_size, + ) + imap["tp_gate_challenges"] = ( + structs.u128Span, + self.vk.log_circuit_size, + ) + imap["tp_eta_1"] = structs.u384 + imap["tp_eta_2"] = structs.u384 + imap["tp_eta_3"] = structs.u384 + imap["tp_beta"] = structs.u384 + imap["tp_gamma"] = structs.u384 + imap["tp_base_rlc"] = structs.u384 + imap["tp_alphas"] = (structs.u128Span, hk.NUMBER_OF_ALPHAS) + return imap + + def _execute_circuit_logic( + self, circuit: HonkVerifierCircuits, vars: dict + ) -> ModuloCircuit: + + tp_delta = circuit.compute_public_input_delta( + vars["p_public_inputs"], + vars["tp_beta"], + vars["tp_gamma"], + self.vk.circuit_size, + vars["p_public_inputs_offset"], + ) + + sumcheck_univariates_flat = vars["sumcheck_univariates_flat"] + sumcheck_univariates = [] + for i in range(self.vk.log_circuit_size): + sumcheck_univariates.append( + sumcheck_univariates_flat[ + i + * hk.BATCHED_RELATION_PARTIAL_LENGTH : (i + 1) + * hk.BATCHED_RELATION_PARTIAL_LENGTH + ] + ) + + assert len(sumcheck_univariates) == self.vk.log_circuit_size + assert len(sumcheck_univariates[0]) == hk.BATCHED_RELATION_PARTIAL_LENGTH + + assert len(vars["sumcheck_evaluations"]) == len(Wire) + + check_rlc, check = circuit.verify_sum_check( + sumcheck_univariates, + vars["sumcheck_evaluations"], + vars["tp_beta"], + vars["tp_gamma"], + tp_delta, + vars["tp_eta_1"], + vars["tp_eta_2"], + vars["tp_eta_3"], + vars["tp_sum_check_u_challenges"], + vars["tp_gate_challenges"], + vars["tp_alphas"], + self.vk.log_circuit_size, + vars["tp_base_rlc"], + ) + + assert type(check_rlc) == ModuloCircuitElement + assert type(check) == ModuloCircuitElement + + circuit.extend_struct_output(u384("check_rlc", elmts=[check_rlc])) + circuit.extend_struct_output(u384("check", elmts=[check])) + return circuit + + +class PrepareScalarsCircuit(BaseUltraHonkCircuit): + def __init__( + self, + vk: HonkVk, + curve_id: int = CurveID.GRUMPKIN.value, + auto_run: bool = True, + compilation_mode: int = 1, + ) -> None: + name = f"honk_prep_msm_scalars_size_{vk.log_circuit_size}" + self.vk = vk + self.scalar_indexes = [] + super().__init__( + name, vk.log_circuit_size, curve_id, auto_run, compilation_mode + ) + + @property + def input_map(self) -> dict: + imap = {} + + imap["p_sumcheck_evaluations"] = (structs.u256Span, hk.NUMBER_OF_ENTITIES) + imap["p_gemini_a_evaluations"] = (structs.u256Span, self.vk.log_circuit_size) + imap["tp_gemini_r"] = structs.u384 + imap["tp_rho"] = structs.u384 + imap["tp_shplonk_z"] = structs.u384 + imap["tp_shplonk_nu"] = structs.u384 + imap["tp_sum_check_u_challenges"] = ( + structs.u128Span, + self.vk.log_circuit_size, + ) + + return imap + + def _execute_circuit_logic( + self, circuit: HonkVerifierCircuits, vars: dict + ) -> ModuloCircuit: + + assert len(vars["p_sumcheck_evaluations"]) == len(Wire) + + scalars = circuit.compute_shplemini_msm_scalars( + vars["p_sumcheck_evaluations"], + vars["p_gemini_a_evaluations"], + vars["tp_gemini_r"], + vars["tp_rho"], + vars["tp_shplonk_z"], + vars["tp_shplonk_nu"], + vars["tp_sum_check_u_challenges"], + ) + + # Get the ranges for each section + start_dummy = hk.NUMBER_OF_ENTITIES + self.vk.log_circuit_size + end_dummy = hk.NUMBER_OF_ENTITIES + hk.CONST_PROOF_SIZE_LOG_N + + # Verify zeros in dummy section + assert all( + s.value == 0 for s in scalars[start_dummy:end_dummy] + ), "Expected all dummy round scalars to be 0" + + # Keep everything except dummy section + scalars_no_dummy = scalars[:start_dummy] + scalars[end_dummy:] + + # Remove the first element (== 1) and last element (tp_shplonk_z) + scalars_filtered = scalars_no_dummy[1:-1] + + scalars_filtered_no_nones = [ + scalar for scalar in scalars_filtered if scalar is not None + ] + + sum_scalars = circuit.sum(scalars_filtered_no_nones) + + # For each filtered scalar, find its original index by matching offset + self.scalar_indexes = [] + for scalar in scalars_filtered_no_nones: + original_index = next( + i + for i, orig_scalar in enumerate(scalars) + if orig_scalar is not None and orig_scalar.offset == scalar.offset + ) + self.scalar_indexes.append(original_index) + circuit.extend_struct_output( + u384(f"scalar_{original_index}", elmts=[scalar]) + ) + + self.msm_len = len(scalars_filtered_no_nones) + 1 + + circuit.extend_struct_output(u384("sum_scalars", elmts=[sum_scalars])) + circuit.exact_output_refs_needed = [sum_scalars] + + return circuit diff --git a/hydra/garaga/precompiled_circuits/ec.py b/hydra/garaga/precompiled_circuits/ec.py index 674234a0..74b8f179 100644 --- a/hydra/garaga/precompiled_circuits/ec.py +++ b/hydra/garaga/precompiled_circuits/ec.py @@ -2,6 +2,7 @@ from garaga.definitions import CURVES from garaga.extension_field_modulo_circuit import ( + ExtensionFieldModuloCircuit, ModuloCircuit, ModuloCircuitElement, PyFelt, @@ -140,11 +141,17 @@ def _derive_point_from_x( class ECIPCircuits(ModuloCircuit): - def __init__(self, name: str, curve_id: int, compilation_mode: int = 0): + def __init__( + self, + name: str, + curve_id: int, + compilation_mode: int = 0, + generic_circuit: bool = True, + ): super().__init__( name=name, curve_id=curve_id, - generic_circuit=True, + generic_circuit=generic_circuit, compilation_mode=compilation_mode, ) self.curve = CURVES[curve_id] @@ -214,6 +221,12 @@ def _accumulate_eval_point_challenge_signed_same_point( sign_ep: ModuloCircuitElement, sign_en: ModuloCircuitElement, ) -> ModuloCircuitElement: + assert isinstance(ep, ModuloCircuitElement) and isinstance( + en, ModuloCircuitElement + ) + assert isinstance(sign_ep, ModuloCircuitElement) and isinstance( + sign_en, ModuloCircuitElement + ) m, b = slope_intercept xP, yP = P num = self.sub(xA, xP) @@ -544,7 +557,7 @@ def double_point( slope = self._compute_doubling_slope(P, A) slope_sqr = self.mul(slope, slope) nx = self.sub(self.sub(slope_sqr, xP), xP) - ny = self.sub(yP, self.mul(slope, self.sub(xP, nx))) + ny = self.sub(self.mul(slope, self.sub(xP, nx)), yP) return (nx, ny) def scalar_mul_2_pow_k( @@ -593,3 +606,69 @@ def _is_on_curve_G2_weirstrass( x3_ax_b = [self.add(x3[0], ax_b[0]), self.add(x3[1], ax_b[1])] return y2, x3_ax_b + + +class BasicECG2(ExtensionFieldModuloCircuit): + def __init__(self, name: str, curve_id: int, compilation_mode: int = 0): + super().__init__( + name=name, + curve_id=curve_id, + extension_degree=2, + generic_circuit=True, + compilation_mode=compilation_mode, + ) + self.curve = CURVES[curve_id] + + def _compute_adding_slope( + self, + P: tuple[ + tuple[ModuloCircuitElement, ModuloCircuitElement], + tuple[ModuloCircuitElement, ModuloCircuitElement], + ], + Q: tuple[ + tuple[ModuloCircuitElement, ModuloCircuitElement], + tuple[ModuloCircuitElement, ModuloCircuitElement], + ], + ): + xP, yP = P + xQ, yQ = Q + slope = self.fp2_div(self.extf_sub(yP, yQ), self.extf_sub(xP, xQ)) + return slope + + def _compute_doubling_slope_a_eq_0( + self, + P: tuple[ModuloCircuitElement, ModuloCircuitElement], + ): + + xP, yP = P + # Compute doubling slope m = (3x^2 + A) / 2y + three = self.set_or_get_constant(self.field(3)) + + m_num = self.extf_scalar_mul(self.fp2_square(xP), three) + m_den = self.extf_add(yP, yP) + m = self.fp2_div(m_num, m_den) + return m + + def add_points( + self, + P: tuple[ModuloCircuitElement, ModuloCircuitElement], + Q: tuple[ModuloCircuitElement, ModuloCircuitElement], + ) -> tuple[ModuloCircuitElement, ModuloCircuitElement]: + xP, yP = P + xQ, yQ = Q + slope = self._compute_adding_slope(P, Q) + slope_sqr = self.fp2_square(slope) + nx = self.extf_sub(self.extf_sub(slope_sqr, xP), xQ) + ny = self.extf_sub(self.fp2_mul(slope, self.extf_sub(xP, nx)), yP) + return (nx, ny) + + def double_point_a_eq_0( + self, + P: tuple[ModuloCircuitElement, ModuloCircuitElement], + ) -> tuple[ModuloCircuitElement, ModuloCircuitElement]: + xP, yP = P + slope = self._compute_doubling_slope_a_eq_0(P) + slope_sqr = self.fp2_square(slope) + nx = self.extf_sub(self.extf_sub(slope_sqr, xP), xP) + ny = self.extf_sub(self.fp2_mul(slope, self.extf_sub(xP, nx)), yP) + return (nx, ny) diff --git a/hydra/garaga/precompiled_circuits/honk.py b/hydra/garaga/precompiled_circuits/honk.py index bd54f7d4..33faa893 100644 --- a/hydra/garaga/precompiled_circuits/honk.py +++ b/hydra/garaga/precompiled_circuits/honk.py @@ -1,1686 +1,1912 @@ -import binascii -import json -import os -from dataclasses import dataclass -from enum import Enum +import copy +import math +from dataclasses import dataclass, fields +from enum import Enum, auto + +import sha3 + +import garaga.hints.io as io +import garaga.modulo_circuit_structs as structs +from garaga.definitions import CURVES, CurveID, G1Point, G2Point +from garaga.extension_field_modulo_circuit import ModuloCircuit, ModuloCircuitElement + +NUMBER_OF_SUBRELATIONS = 26 +NUMBER_OF_ALPHAS = NUMBER_OF_SUBRELATIONS - 1 +NUMBER_OF_ENTITIES = 44 +BATCHED_RELATION_PARTIAL_LENGTH = 8 +CONST_PROOF_SIZE_LOG_N = 28 +NUMBER_UNSHIFTED = 35 +NUMBER_TO_BE_SHIFTED = 9 + + +MAX_LOG_N = 23 # 2^23 = 8388608 + + +G1_PROOF_POINT_SHIFT = 2**136 + +G2_POINT_KZG_1 = G2Point.get_nG(CurveID.BN254, 1) +G2_POINT_KZG_2 = G2Point( + x=( + 0x0118C4D5B837BCC2BC89B5B398B5974E9F5944073B32078B7E231FEC938883B0, + 0x260E01B251F6F1C7E7FF4E580791DEE8EA51D87A358E038B4EFE30FAC09383C1, + ), + y=( + 0x22FEBDA3C0C0632A56475B4214E5615E11E6DD3F96E6CEA2854A87D4DACC5E55, + 0x04FC6369F7110FE3D25156C1BB9A72859CF2A04641F99BA4EE413C80DA6A5FE4, + ), + curve_id=CurveID.BN254, +) + + +@dataclass +class HonkProof: + circuit_size: int + public_inputs_size: int + public_inputs_offset: int + public_inputs: list[int] + w1: G1Point + w2: G1Point + w3: G1Point + w4: G1Point + z_perm: G1Point + lookup_read_counts: G1Point + lookup_read_tags: G1Point + lookup_inverses: G1Point + sumcheck_univariates: list[list[int]] + sumcheck_evaluations: list[int] + gemini_fold_comms: list[G1Point] + gemini_a_evaluations: list[int] + shplonk_q: G1Point + kzg_quotient: G1Point + + @property + def log_circuit_size(self) -> int: + return int(math.log2(self.circuit_size)) + + def __post_init__(self): + assert len(self.sumcheck_univariates) == CONST_PROOF_SIZE_LOG_N + assert all( + len(univariate) == BATCHED_RELATION_PARTIAL_LENGTH + for univariate in self.sumcheck_univariates + ) + assert len(self.sumcheck_evaluations) == NUMBER_OF_ENTITIES + assert len(self.gemini_fold_comms) == CONST_PROOF_SIZE_LOG_N - 1 + assert len(self.gemini_a_evaluations) == CONST_PROOF_SIZE_LOG_N + + @classmethod + def from_bytes(cls, bytes: bytes) -> "HonkProof": + n_elements = int.from_bytes(bytes[:4], "big") + assert len(bytes[4:]) % 32 == 0 + elements = [ + int.from_bytes(bytes[i : i + 32], "big") for i in range(4, len(bytes), 32) + ] + assert len(elements) == n_elements + + circuit_size = elements[0] + public_inputs_size = elements[1] + public_inputs_offset = elements[2] + + assert circuit_size <= 2**MAX_LOG_N + + public_inputs = [] + cursor = 3 + for i in range(public_inputs_size): + public_inputs.append(elements[cursor + i]) + + cursor += public_inputs_size + + def parse_g1_proof_point(i: int) -> G1Point: + return G1Point( + x=elements[i] + G1_PROOF_POINT_SHIFT * elements[i + 1], + y=elements[i + 2] + G1_PROOF_POINT_SHIFT * elements[i + 3], + curve_id=CurveID.BN254, + ) + + G1_PROOF_POINT_SIZE = 4 + + w1 = parse_g1_proof_point(cursor) + w2 = parse_g1_proof_point(cursor + G1_PROOF_POINT_SIZE) + w3 = parse_g1_proof_point(cursor + 2 * G1_PROOF_POINT_SIZE) + + lookup_read_counts = parse_g1_proof_point(cursor + 3 * G1_PROOF_POINT_SIZE) + lookup_read_tags = parse_g1_proof_point(cursor + 4 * G1_PROOF_POINT_SIZE) + w4 = parse_g1_proof_point(cursor + 5 * G1_PROOF_POINT_SIZE) + lookup_inverses = parse_g1_proof_point(cursor + 6 * G1_PROOF_POINT_SIZE) + z_perm = parse_g1_proof_point(cursor + 7 * G1_PROOF_POINT_SIZE) + + cursor += 8 * G1_PROOF_POINT_SIZE + + # Parse sumcheck univariates. + sumcheck_univariates = [] + for i in range(CONST_PROOF_SIZE_LOG_N): + sumcheck_univariates.append( + [ + elements[cursor + i * BATCHED_RELATION_PARTIAL_LENGTH + j] + for j in range(BATCHED_RELATION_PARTIAL_LENGTH) + ] + ) + cursor += BATCHED_RELATION_PARTIAL_LENGTH * CONST_PROOF_SIZE_LOG_N + + # Parse sumcheck_evaluations + sumcheck_evaluations = elements[cursor : cursor + NUMBER_OF_ENTITIES] + + cursor += NUMBER_OF_ENTITIES + + # Parse gemini fold comms + gemini_fold_comms = [ + parse_g1_proof_point(cursor + i * G1_PROOF_POINT_SIZE) + for i in range(CONST_PROOF_SIZE_LOG_N - 1) + ] + + cursor += (CONST_PROOF_SIZE_LOG_N - 1) * G1_PROOF_POINT_SIZE + + # Parse gemini a evaluations + gemini_a_evaluations = elements[cursor : cursor + CONST_PROOF_SIZE_LOG_N] + + cursor += CONST_PROOF_SIZE_LOG_N + + shplonk_q = parse_g1_proof_point(cursor) + kzg_quotient = parse_g1_proof_point(cursor + G1_PROOF_POINT_SIZE) + + cursor += 2 * G1_PROOF_POINT_SIZE + + assert cursor == len(elements) + + return HonkProof( + circuit_size=circuit_size, + public_inputs_size=public_inputs_size, + public_inputs_offset=public_inputs_offset, + public_inputs=public_inputs, + w1=w1, + w2=w2, + w3=w3, + w4=w4, + z_perm=z_perm, + lookup_read_counts=lookup_read_counts, + lookup_read_tags=lookup_read_tags, + lookup_inverses=lookup_inverses, + sumcheck_univariates=sumcheck_univariates, + sumcheck_evaluations=sumcheck_evaluations, + gemini_fold_comms=gemini_fold_comms, + gemini_a_evaluations=gemini_a_evaluations, + shplonk_q=shplonk_q, + kzg_quotient=kzg_quotient, + ) + + def to_circuit_elements(self, circuit: ModuloCircuit) -> "HonkProof": + """Convert everything to ModuloCircuitElements given a circuit.""" + return HonkProof( + circuit_size=self.circuit_size, + public_inputs_size=self.public_inputs_size, + public_inputs_offset=circuit.write_element(self.public_inputs_offset), + public_inputs=circuit.write_elements(self.public_inputs), + w1=circuit.write_struct(structs.G1PointCircuit.from_G1Point("w1", self.w1)), + w2=circuit.write_struct(structs.G1PointCircuit.from_G1Point("w2", self.w2)), + w3=circuit.write_struct(structs.G1PointCircuit.from_G1Point("w3", self.w3)), + w4=circuit.write_struct(structs.G1PointCircuit.from_G1Point("w4", self.w4)), + z_perm=circuit.write_struct( + structs.G1PointCircuit.from_G1Point("z_perm", self.z_perm) + ), + lookup_read_counts=circuit.write_struct( + structs.G1PointCircuit.from_G1Point( + "lookup_read_counts", self.lookup_read_counts + ) + ), + lookup_read_tags=circuit.write_struct( + structs.G1PointCircuit.from_G1Point( + "lookup_read_tags", self.lookup_read_tags + ) + ), + lookup_inverses=circuit.write_struct( + structs.G1PointCircuit.from_G1Point( + "lookup_inverses", self.lookup_inverses + ) + ), + sumcheck_univariates=[ + circuit.write_elements(univariate) + for univariate in self.sumcheck_univariates + ], + sumcheck_evaluations=circuit.write_elements(self.sumcheck_evaluations), + gemini_fold_comms=[ + circuit.write_struct( + structs.G1PointCircuit.from_G1Point(f"gemini_fold_comm_{i}", comm) + ) + for i, comm in enumerate(self.gemini_fold_comms) + ], + gemini_a_evaluations=circuit.write_elements(self.gemini_a_evaluations), + shplonk_q=circuit.write_struct( + structs.G1PointCircuit.from_G1Point("shplonk_q", self.shplonk_q) + ), + kzg_quotient=circuit.write_struct( + structs.G1PointCircuit.from_G1Point("kzg_quotient", self.kzg_quotient) + ), + ) -from web3 import Web3 + def to_cairo(self) -> str: + def g1_to_g1point256(g1_point: G1Point) -> str: + return f"G1Point256{{x: {hex(g1_point.x)}, y: {hex(g1_point.y)}}}" + + def format_array(elements: list, span: bool = False) -> str: + """Helper function to format arrays with custom element formatting""" + formatted_elements = [hex(el) for el in elements] + arr = f"array![{', '.join(formatted_elements)}]" + if span: + return f"{arr}.span()" + return arr + + code = f"HonkProof {{\n" + code += f"circuit_size: {self.circuit_size},\n" + code += f"public_inputs_size: {self.public_inputs_size},\n" + code += f"public_inputs_offset: {self.public_inputs_offset},\n" + code += f"public_inputs: {format_array(self.public_inputs, span=True)},\n" + code += f"w1: {g1_to_g1point256(self.w1)},\n" + code += f"w2: {g1_to_g1point256(self.w2)},\n" + code += f"w3: {g1_to_g1point256(self.w3)},\n" + code += f"w4: {g1_to_g1point256(self.w4)},\n" + code += f"z_perm: {g1_to_g1point256(self.z_perm)},\n" + code += f"lookup_read_counts: {g1_to_g1point256(self.lookup_read_counts)},\n" + code += f"lookup_read_tags: {g1_to_g1point256(self.lookup_read_tags)},\n" + code += f"lookup_inverses: {g1_to_g1point256(self.lookup_inverses)},\n" + + # Flatten sumcheck_univariates array + code += f"sumcheck_univariates: {format_array(io.flatten(self.sumcheck_univariates)[:self.log_circuit_size * BATCHED_RELATION_PARTIAL_LENGTH], span=True)},\n" + + code += f"sumcheck_evaluations: {format_array(self.sumcheck_evaluations, span=True)},\n" + code += f"gemini_fold_comms: array![{', '.join(g1_to_g1point256(comm) for comm in self.gemini_fold_comms[:self.log_circuit_size - 1])}].span(),\n" + code += f"gemini_a_evaluations: {format_array(self.gemini_a_evaluations[:self.log_circuit_size], span=True)},\n" + code += f"shplonk_q: {g1_to_g1point256(self.shplonk_q)},\n" + code += f"kzg_quotient: {g1_to_g1point256(self.kzg_quotient)},\n" + code += "};" + return code + + def serialize_to_calldata(self) -> list[int]: + def serialize_G1Point256(g1_point: G1Point) -> list[int]: + xl, xh = io.split_128(g1_point.x) + yl, yh = io.split_128(g1_point.y) + return [xl, xh, yl, yh] + + cd = [] + cd.append(self.circuit_size) + cd.append(self.public_inputs_size) + cd.append(self.public_inputs_offset) + cd.extend( + io.bigint_split_array( + x=self.public_inputs, n_limbs=2, base=2**128, prepend_length=True + ) + ) + cd.extend(serialize_G1Point256(self.w1)) + cd.extend(serialize_G1Point256(self.w2)) + cd.extend(serialize_G1Point256(self.w3)) + cd.extend(serialize_G1Point256(self.w4)) + cd.extend(serialize_G1Point256(self.z_perm)) + cd.extend(serialize_G1Point256(self.lookup_read_counts)) + cd.extend(serialize_G1Point256(self.lookup_read_tags)) + cd.extend(serialize_G1Point256(self.lookup_inverses)) + cd.extend( + io.bigint_split_array( + x=io.flatten(self.sumcheck_univariates)[ + : BATCHED_RELATION_PARTIAL_LENGTH * self.log_circuit_size + ], # The rest is 0. + n_limbs=2, + base=2**128, + prepend_length=True, + ) + ) -from garaga.algebra import PyFelt -from garaga.definitions import CURVES, CurveID, G1G2Pair + cd.extend( + io.bigint_split_array( + x=self.sumcheck_evaluations, n_limbs=2, base=2**128, prepend_length=True + ) + ) -## uint256/bytes32 conversion + cd.append(self.log_circuit_size - 1) + for pt in self.gemini_fold_comms[ + : self.log_circuit_size - 1 + ]: # The rest is G(1, 2) + cd.extend(serialize_G1Point256(pt)) + + cd.extend( + io.bigint_split_array( + x=self.gemini_a_evaluations[: self.log_circuit_size], + n_limbs=2, + base=2**128, + prepend_length=True, + ) + ) + cd.extend(serialize_G1Point256(self.shplonk_q)) + cd.extend(serialize_G1Point256(self.kzg_quotient)) + + return cd -# Converts 32-bytes to 256-bit integer (big endian) -def b2n(b: bytes) -> int: - assert len(b) == 32 - return int.from_bytes(b, "big") +@dataclass +class HonkVk: + name: str + circuit_size: int + log_circuit_size: int + public_inputs_size: int + public_inputs_offset: int + qm: G1Point + qc: G1Point + ql: G1Point + qr: G1Point + qo: G1Point + q4: G1Point + qArith: G1Point + qDeltaRange: G1Point + qElliptic: G1Point + qAux: G1Point + qLookup: G1Point + qPoseidon2External: G1Point + qPoseidon2Internal: G1Point + s1: G1Point + s2: G1Point + s3: G1Point + s4: G1Point + id1: G1Point + id2: G1Point + id3: G1Point + id4: G1Point + t1: G1Point + t2: G1Point + t3: G1Point + t4: G1Point + lagrange_first: G1Point + lagrange_last: G1Point + + def __repr__(self) -> str: + # Print all fields line by line : + return "\n".join( + f"{field.name}: {getattr(self, field.name).__repr__()}" + for field in fields(self) + ) + # def __str__(self) -> str: + # return self.__repr__() + + @classmethod + def from_bytes(cls, bytes: bytes) -> "HonkVk": + circuit_size = int.from_bytes(bytes[0:8], "big") + log_circuit_size = int.from_bytes(bytes[8:16], "big") + public_inputs_size = int.from_bytes(bytes[16:24], "big") + public_inputs_offset = int.from_bytes(bytes[24:32], "big") + + cursor = 32 + + rest = bytes[cursor:] + assert len(rest) % 32 == 0 + + # print(f"circuit_size: {circuit_size}") + # print(f"log_circuit_size: {log_circuit_size}") + # print(f"public_inputs_size: {public_inputs_size}") + + # Get all fields that are G1Points from the dataclass + g1_fields = [ + field.name + for field in fields(cls) + if field.type == G1Point and field.name != "name" + ] + + # print(f"g1_fields: {g1_fields}") + + # Parse all G1Points into a dictionary + points = {} + for field_name in g1_fields: + x = int.from_bytes(bytes[cursor : cursor + 32], "big") + y = int.from_bytes(bytes[cursor + 32 : cursor + 64], "big") + points[field_name] = G1Point(x=x, y=y, curve_id=CurveID.BN254) + cursor += 64 + # print(f"points: {points}") + # Create instance with all parsed values + return cls( + name="", + circuit_size=circuit_size, + log_circuit_size=log_circuit_size, + public_inputs_size=public_inputs_size, + public_inputs_offset=public_inputs_offset, + **points, + ) -# Converts 256-bit integer to 32-bytes (big endian) -def n2b(n: int) -> bytes: - assert 0 <= n and n < (1 << 256) - return n.to_bytes(32, "big") + def serialize_to_cairo(self, name: str = "vk") -> str: + code = f"pub const {name}: HonkVk = HonkVk {{\n" + code += f"circuit_size: {self.circuit_size},\n" + code += f"log_circuit_size: {self.log_circuit_size},\n" + code += f"public_inputs_size: {self.public_inputs_size},\n" + code += f"public_inputs_offset: {self.public_inputs_offset},\n" + + g1_points = [ + field.name + for field in fields(self) + if field.type == G1Point and field.name != "name" + ] + for field_name in g1_points: + code += f"{field_name}: {getattr(self, field_name).serialize_to_cairo(name=field_name, raw=True)},\n" + code += "};" + return code + + def to_circuit_elements(self, circuit: ModuloCircuit) -> "HonkVk": + return HonkVk( + name=self.name, + circuit_size=self.circuit_size, + log_circuit_size=self.log_circuit_size, + public_inputs_size=self.public_inputs_size, + public_inputs_offset=circuit.write_element(self.public_inputs_offset), + **{ + field.name: circuit.write_struct( + structs.G1PointCircuit.from_G1Point( + field.name, getattr(self, field.name) + ) + ) + for field in fields(self) + if field.type == G1Point and field.name != "name" + }, + ) -## abi encoding +class Sha3Transcript: + def __init__(self): + self.hasher = sha3.keccak_256() + + def digest_reset(self) -> bytes: + res = self.hasher.digest() + res_int = int.from_bytes(res, "big") + res_mod = res_int % CURVES[CurveID.GRUMPKIN.value].p + res_bytes = res_mod.to_bytes(32, "big") + + self.hasher = sha3.keccak_256() + return res_bytes + + def update(self, data: bytes): + self.hasher.update(data) + + +@dataclass +class HonkTranscript: + eta: int | ModuloCircuitElement + etaTwo: int | ModuloCircuitElement + etaThree: int | ModuloCircuitElement + beta: int | ModuloCircuitElement + gamma: int | ModuloCircuitElement + alphas: list[int | ModuloCircuitElement] + gate_challenges: list[int | ModuloCircuitElement] + sum_check_u_challenges: list[ModuloCircuitElement] + rho: int | ModuloCircuitElement + gemini_r: int | ModuloCircuitElement + shplonk_nu: int | ModuloCircuitElement + shplonk_z: int | ModuloCircuitElement + public_inputs_delta: int | None = None # Derived. + + def __post_init__(self): + assert len(self.alphas) == NUMBER_OF_ALPHAS + assert len(self.gate_challenges) == CONST_PROOF_SIZE_LOG_N + assert len(self.sum_check_u_challenges) == CONST_PROOF_SIZE_LOG_N + self.hasher = sha3.keccak_256() + + @classmethod + def from_proof(cls, proof: HonkProof) -> "HonkTranscript": + def g1_to_g1_proof_point(g1_proof_point: G1Point) -> tuple[int, int, int, int]: + x_high, x_low = divmod(g1_proof_point.x, G1_PROOF_POINT_SHIFT) + y_high, y_low = divmod(g1_proof_point.y, G1_PROOF_POINT_SHIFT) + return (x_low, x_high, y_low, y_high) + + def split_challenge(ch: bytes) -> tuple[int, int]: + ch_int = int.from_bytes(ch, "big") + high_128, low_128 = divmod(ch_int, 2**128) + return (low_128, high_128) + + # Round 0 : circuit_size, public_inputs_size, public_input_offset, [public_inputs], w1, w2, w3 + FR = CURVES[CurveID.GRUMPKIN.value].p + + hasher = Sha3Transcript() + + hasher.update(int.to_bytes(proof.circuit_size, 32, "big")) + hasher.update(int.to_bytes(proof.public_inputs_size, 32, "big")) + hasher.update(int.to_bytes(proof.public_inputs_offset, 32, "big")) + + for pub_input in proof.public_inputs: + hasher.update(int.to_bytes(pub_input, 32, "big")) + + for g1_proof_point in [proof.w1, proof.w2, proof.w3]: + # print(f"g1_proof_point: {g1_proof_point.__repr__()}") + x0, x1, y0, y1 = g1_to_g1_proof_point(g1_proof_point) + hasher.update(int.to_bytes(x0, 32, "big")) + hasher.update(int.to_bytes(x1, 32, "big")) + hasher.update(int.to_bytes(y0, 32, "big")) + hasher.update(int.to_bytes(y1, 32, "big")) + + ch0 = hasher.digest_reset() + + eta, eta_two = split_challenge(ch0) + + hasher.update(ch0) + ch0 = hasher.digest_reset() + eta_three, _ = split_challenge(ch0) + + # print(f"eta: {hex(eta)}") + # print(f"eta_two: {hex(eta_two)}") + # print(f"eta_three: {hex(eta_three)}") + # Round 1 : ch0, lookup_read_counts, lookup_read_tags, w4 + + hasher.update(ch0) + + for g1_proof_point in [ + proof.lookup_read_counts, + proof.lookup_read_tags, + proof.w4, + ]: + x0, x1, y0, y1 = g1_to_g1_proof_point(g1_proof_point) + hasher.update(int.to_bytes(x0, 32, "big")) + hasher.update(int.to_bytes(x1, 32, "big")) + hasher.update(int.to_bytes(y0, 32, "big")) + hasher.update(int.to_bytes(y1, 32, "big")) + + ch1 = hasher.digest_reset() + beta, gamma = split_challenge(ch1) + + # Round 2: ch1, lookup_inverses, z_perm + + hasher.update(ch1) + + for g1_proof_point in [proof.lookup_inverses, proof.z_perm]: + x0, x1, y0, y1 = g1_to_g1_proof_point(g1_proof_point) + hasher.update(int.to_bytes(x0, 32, "big")) + hasher.update(int.to_bytes(x1, 32, "big")) + hasher.update(int.to_bytes(y0, 32, "big")) + hasher.update(int.to_bytes(y1, 32, "big")) + + ch2 = hasher.digest_reset() + + alphas = [None] * NUMBER_OF_ALPHAS + alphas[0], alphas[1] = split_challenge(ch2) + + for i in range(1, NUMBER_OF_ALPHAS // 2): + hasher.update(ch2) + ch2 = hasher.digest_reset() + alphas[i * 2], alphas[i * 2 + 1] = split_challenge(ch2) + + if NUMBER_OF_ALPHAS % 2 == 1: + hasher.update(ch2) + ch2 = hasher.digest_reset() + alphas[-1], _ = split_challenge(ch2) + + # Round 3: Gate Challenges : + ch3 = ch2 + gate_challenges = [None] * CONST_PROOF_SIZE_LOG_N + for i in range(CONST_PROOF_SIZE_LOG_N): + hasher.update(ch3) + ch3 = hasher.digest_reset() + gate_challenges[i], _ = split_challenge(ch3) + + # print(f"gate_challenges: {[hex(x) for x in gate_challenges]}") + # print(f"len(gate_challenges): {len(gate_challenges)}") + # Round 4: Sumcheck u challenges + ch4 = ch3 + sum_check_u_challenges = [None] * CONST_PROOF_SIZE_LOG_N + + # print(f"len(sumcheck_univariates): {len(proof.sumcheck_univariates)}") + # print( + # f"len(proof.sumcheck_univariates[0]): {len(proof.sumcheck_univariates[0])}" + # ) + + for i in range(CONST_PROOF_SIZE_LOG_N): + # Create array of univariate challenges starting with previous challenge + univariate_chal = [ch4] + + # Add the sumcheck univariates for this round + for j in range(BATCHED_RELATION_PARTIAL_LENGTH): + univariate_chal.append( + int.to_bytes(proof.sumcheck_univariates[i][j], 32, "big") + ) + + # Update hasher with all univariate challenges + for chal in univariate_chal: + hasher.update(chal) + + # Get next challenge + ch4 = hasher.digest_reset() + + # Split challenge to get sumcheck challenge + sum_check_u_challenges[i], _ = split_challenge(ch4) + + # print(f"sum_check_u_challenges: {[hex(x) for x in sum_check_u_challenges]}") + # print(f"len(sum_check_u_challenges): {len(sum_check_u_challenges)}") + + # Rho challenge : + hasher.update(ch4) + for i in range(NUMBER_OF_ENTITIES): + hasher.update(int.to_bytes(proof.sumcheck_evaluations[i], 32, "big")) + + c5 = hasher.digest_reset() + rho, _ = split_challenge(c5) + + # print(f"rho: {hex(rho)}") + + # Gemini R : + hasher.update(c5) + for i in range(CONST_PROOF_SIZE_LOG_N - 1): + x0, x1, y0, y1 = g1_to_g1_proof_point(proof.gemini_fold_comms[i]) + hasher.update(int.to_bytes(x0, 32, "big")) + hasher.update(int.to_bytes(x1, 32, "big")) + hasher.update(int.to_bytes(y0, 32, "big")) + hasher.update(int.to_bytes(y1, 32, "big")) + + c6 = hasher.digest_reset() + gemini_r, _ = split_challenge(c6) + + # print(f"gemini_r: {hex(gemini_r)}") + + # Shplonk Nu : + hasher.update(c6) + for i in range(CONST_PROOF_SIZE_LOG_N): + hasher.update(int.to_bytes(proof.gemini_a_evaluations[i], 32, "big")) + + c7 = hasher.digest_reset() + shplonk_nu, _ = split_challenge(c7) + + # print(f"shplonk_nu: {hex(shplonk_nu)}") + + # Shplonk Z : + hasher.update(c7) + x0, x1, y0, y1 = g1_to_g1_proof_point(proof.shplonk_q) + hasher.update(int.to_bytes(x0, 32, "big")) + hasher.update(int.to_bytes(x1, 32, "big")) + hasher.update(int.to_bytes(y0, 32, "big")) + hasher.update(int.to_bytes(y1, 32, "big")) + + c8 = hasher.digest_reset() + shplonk_z, _ = split_challenge(c8) + + # print(f"shplonk_z: {hex(shplonk_z)}") + + return cls( + eta=eta, + etaTwo=eta_two, + etaThree=eta_three, + beta=beta, + gamma=gamma, + alphas=alphas, + gate_challenges=gate_challenges, + sum_check_u_challenges=sum_check_u_challenges, + rho=rho, + gemini_r=gemini_r, + shplonk_nu=shplonk_nu, + shplonk_z=shplonk_z, + public_inputs_delta=None, + ) + def to_circuit_elements(self, circuit: ModuloCircuit) -> "HonkTranscript": + return HonkTranscript( + eta=circuit.write_element(self.eta), + etaTwo=circuit.write_element(self.etaTwo), + etaThree=circuit.write_element(self.etaThree), + beta=circuit.write_element(self.beta), + gamma=circuit.write_element(self.gamma), + alphas=circuit.write_elements(self.alphas), + gate_challenges=circuit.write_elements(self.gate_challenges), + sum_check_u_challenges=circuit.write_elements(self.sum_check_u_challenges), + rho=circuit.write_element(self.rho), + gemini_r=circuit.write_element(self.gemini_r), + shplonk_nu=circuit.write_element(self.shplonk_nu), + shplonk_z=circuit.write_element(self.shplonk_z), + public_inputs_delta=None, + ) -def abi_encode_packed(data: list[int]) -> bytes: - return b"".join(map(n2b, data)) + def to_cairo(self) -> str: + code = "HonkTranscript{\n" + code += f" eta: {hex(self.eta)},\n" + code += f" eta_two: {hex(self.etaTwo)},\n" + code += f" eta_three: {hex(self.etaThree)},\n" + code += f" beta: {hex(self.beta)},\n" + code += f" gamma: {hex(self.gamma)},\n" + code += ( + f" alphas:array![{', '.join([hex(alpha) for alpha in self.alphas])}],\n" + ) + code += f" gate_challenges:array![{', '.join([hex(gate_challenge) for gate_challenge in self.gate_challenges])}],\n" + code += f" sum_check_u_challenges:array![{', '.join([hex(sum_check_u_challenge) for sum_check_u_challenge in self.sum_check_u_challenges])}],\n" + code += f" rho: {hex(self.rho)},\n" + code += f" gemini_r: {hex(self.gemini_r)},\n" + code += f" shplonk_nu: {hex(self.shplonk_nu)},\n" + code += f" shplonk_z: {hex(self.shplonk_z)},\n" + code += "}" + return code + + +class HonkVerifierCircuits(ModuloCircuit): + def __init__( + self, + name: str, + log_n: int, + curve_id: int = CurveID.GRUMPKIN.value, + compilation_mode: int = 1, + ): + super().__init__( + name=name, + curve_id=curve_id, + compilation_mode=compilation_mode, + ) + self.log_n = log_n + + def verify_sanity( + self, proof: HonkProof, transcript: HonkTranscript, vk: HonkVk + ) -> bool: + + transcript.public_inputs_delta = self.compute_public_input_delta( + proof.public_inputs, + transcript.beta, + transcript.gamma, + proof.circuit_size, + transcript.public_inputs_offset, + ) + rlc, check = self.verify_sum_check( + proof.sumcheck_univariates, transcript, proof.circuit_size, transcript.beta + ) -## hashing + # check_spl = self.verify_shplemini(proof, vk, transcript) + + assert rlc.value == 0 + assert check.value == 0 + + def prepare_shplemini_msm( + self, proof: HonkProof, vk: HonkVk, transcript: HonkTranscript + ) -> ModuloCircuitElement: + pass + + def compute_public_input_delta( + self, + public_inputs: list[ModuloCircuitElement], + beta: ModuloCircuitElement, + gamma: ModuloCircuitElement, + domain_size: int, + offset: ModuloCircuitElement, + ) -> ModuloCircuitElement: + """ + # cpp/src/barretenberg/plonk_honk_shared/library/grand_product_delta.hpp + # Specific for the # of public inputs. + # Parameters: + # - public_inputs : x₀, ..., xₘ₋₁ public inputs to the circuit + # - beta: Random linear-combination term to combine both (wʲ, IDʲ) and (wʲ, σʲ) + # - gamma: Schwartz-Zippel random evaluation to ensure ∏ᵢ (γ + Sᵢ) = ∏ᵢ (γ + Tᵢ) + # - domain_size: Total number of rows required for the circuit (power of 2) + # - offset: Extent to which public inputs are offset from the 0th index in the wire polynomials, + # for example, due to inclusion of a leading zero row or Goblin style ECC op gates + # at the top of the execution trace. + # Returns: ModuloCircuitElement representing the public input Δ + # Note: + # - domain_size : part of vk. + # - offset : proof pub input offset + """ + assert len(public_inputs) > 0 + num = self.set_or_get_constant(1) + den = self.set_or_get_constant(1) + + num_acc = self.add( + gamma, + self.mul(beta, self.add(self.set_or_get_constant(domain_size), offset)), + ) + den_acc = self.sub( + gamma, + self.mul(beta, self.add(offset, self.set_or_get_constant(1))), + ) + for i, pub_input in enumerate(public_inputs): + num = self.mul(num, self.add(num_acc, pub_input)) + den = self.mul(den, self.add(den_acc, pub_input)) + + # skip last round (unused otherwise) + if i != len(public_inputs) - 1: + num_acc = self.add(num_acc, beta) + den_acc = self.sub(den_acc, beta) + + return self.div(num, den) + + def verify_sum_check( + self, + sumcheck_univariates: list[list[ModuloCircuitElement]], + sumcheck_evaluations: list[ModuloCircuitElement], + beta: ModuloCircuitElement, + gamma: ModuloCircuitElement, + public_inputs_delta: ModuloCircuitElement, + eta: ModuloCircuitElement, + eta_two: ModuloCircuitElement, + eta_three: ModuloCircuitElement, + sum_check_u_challenges: list[ModuloCircuitElement], + gate_challenges: list[ModuloCircuitElement], + alphas: list[ModuloCircuitElement], + log_n: int, + base_rlc: ModuloCircuitElement, + ) -> ModuloCircuitElement: + """ + We will add an extra challenge base_rlc to do a Sumcheck RLC since + Cairo1 doesn't support assert_eq inside circuits (unlike Cairo0). + """ + + pow_partial_evaluation = self.set_or_get_constant(1) + round_target = self.set_or_get_constant(0) + check_rlc = self.set_or_get_constant(0) + + rlc_coeff = base_rlc + for i, round in enumerate(range(log_n)): + round_univariate: list[ModuloCircuitElement] = sumcheck_univariates[round] + total_sum = self.add(round_univariate[0], round_univariate[1]) + check_rlc = self.add( + check_rlc, self.mul(self.sub(total_sum, round_target), rlc_coeff) + ) + # Skip at the last round + if i != log_n - 1: + rlc_coeff = self.mul(rlc_coeff, base_rlc) + + round_challenge = sum_check_u_challenges[round] + round_target = self.compute_next_target_sum( + round_univariate, round_challenge + ) + pow_partial_evaluation = self.partially_evaluate_pow( + gate_challenges, + pow_partial_evaluation, + round_challenge, + round, + ) + # Last Round + evaluations = self.accumulate_relation_evaluations( + sumcheck_evaluations, + beta, + gamma, + public_inputs_delta, + eta, + eta_two, + eta_three, + pow_partial_evaluation, + ) -def keccak256(b: bytes) -> bytes: - return Web3.keccak(b) + assert ( + len(evaluations) == NUMBER_OF_SUBRELATIONS + ), f"Expected {NUMBER_OF_SUBRELATIONS}, got {len(evaluations)}" + assert len(alphas) == NUMBER_OF_ALPHAS + grand_honk_relation_sum = evaluations[0] + for i, evaluation in enumerate(evaluations[1:]): + grand_honk_relation_sum = self.add( + grand_honk_relation_sum, + self.mul(evaluation, alphas[i]), + ) -## bn256 + check = self.sub(grand_honk_relation_sum, round_target) + return check_rlc, check -def bn256_add(p1: tuple[int, int], p2: tuple[int, int]) -> tuple[int, int]: - from garaga.definitions import G1Point # shadowed locally + def compute_next_target_sum( + self, + round_univariate: list[ModuloCircuitElement], + challenge: ModuloCircuitElement, + ) -> ModuloCircuitElement: - a = G1Point(p1[0], p1[1], CurveID.BN254) - b = G1Point(p2[0], p2[1], CurveID.BN254) - c = a.add(b) - return (c.x, c.y) + BARYCENTRIC_LAGRANGE_DENOMINATORS = [ + self.set_or_get_constant( + 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593EFFFEC51 + ), + self.set_or_get_constant( + 0x00000000000000000000000000000000000000000000000000000000000002D0 + ), + self.set_or_get_constant( + 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593EFFFFF11 + ), + self.set_or_get_constant( + 0x0000000000000000000000000000000000000000000000000000000000000090 + ), + self.set_or_get_constant( + 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593EFFFFF71 + ), + self.set_or_get_constant( + 0x00000000000000000000000000000000000000000000000000000000000000F0 + ), + self.set_or_get_constant( + 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593EFFFFD31 + ), + self.set_or_get_constant( + 0x00000000000000000000000000000000000000000000000000000000000013B0 + ), + ] + + assert len(BARYCENTRIC_LAGRANGE_DENOMINATORS) == BATCHED_RELATION_PARTIAL_LENGTH + + BARYCENTRIC_DOMAIN = [ + self.set_or_get_constant(i) for i in range(BATCHED_RELATION_PARTIAL_LENGTH) + ] + + numerator = self.set_or_get_constant(1) + target_sum = self.set_or_get_constant(0) + + for i in range(BATCHED_RELATION_PARTIAL_LENGTH): + # Update numerator + numerator = self.mul( + numerator, self.sub(challenge, self.set_or_get_constant(i)) + ) + + # Calculate inverse of the denominator + inv = self.inv( + self.mul( + BARYCENTRIC_LAGRANGE_DENOMINATORS[i], + self.sub(challenge, BARYCENTRIC_DOMAIN[i]), + ) + ) + + # Calculate term and update target_sum + term = round_univariate[i] + term = self.mul(term, inv) + target_sum = self.add(target_sum, term) + + # Scale the sum by the value of B(x) + target_sum = self.mul(target_sum, numerator) + + return target_sum + + def partially_evaluate_pow( + self, + gate_challenges: list[ModuloCircuitElement], + current_evaluation: ModuloCircuitElement, + challenge: ModuloCircuitElement, + round: int, + ) -> ModuloCircuitElement: + """ + Univariate evaluation of the monomial ((1-X_l) + X_l.B_l) at the challenge point X_l=u_l + """ + univariate_eval = self.add( + self.set_or_get_constant(1), + self.mul( + challenge, self.sub(gate_challenges[round], self.set_or_get_constant(1)) + ), + ) + new_evaluation = self.mul(current_evaluation, univariate_eval) + return new_evaluation -def bn256_scalar_mul(p1: tuple[int, int], scalar: int) -> tuple[int, int]: - from garaga.definitions import G1Point # shadowed locally + def accumulate_relation_evaluations( + self, + sumcheck_evaluations: list[list[ModuloCircuitElement]], + beta: ModuloCircuitElement, + gamma: ModuloCircuitElement, + public_inputs_delta: ModuloCircuitElement, + eta: ModuloCircuitElement, + eta_two: ModuloCircuitElement, + eta_three: ModuloCircuitElement, + pow_partial_evaluation: ModuloCircuitElement, + ) -> list[ModuloCircuitElement]: - a = G1Point(p1[0], p1[1], CurveID.BN254) - b = a.scalar_mul(scalar) - return (b.x, b.y) + domain_separator = pow_partial_evaluation + assert len(sumcheck_evaluations) == len( + Wire + ), f"Expected {len(Wire)}, got {len(sumcheck_evaluations)}" -def bn256_pairing( - p1_list: list[tuple[int, int]], p2_list: list[tuple[int, int, int, int]] -) -> bool: - from garaga.definitions import G1Point, G2Point # shadowed locally + evaluations = [self.set_or_get_constant(0)] * NUMBER_OF_SUBRELATIONS - assert len(p1_list) == len(p2_list) - data = [] - for i in range(len(p1_list)): - p1 = p1_list[i] - p2 = p2_list[i] - a = G1Point(p1[0], p1[1], CurveID.BN254) - # important: fp2 coordinates of the G2 points need to be inverted - b = G2Point((p2[1], p2[0]), (p2[3], p2[2]), CurveID.BN254) - data.append(G1G2Pair(a, b)) - result = G1G2Pair.pair(data).value_coeffs - success = result[0] == 1 and all(value == 0 for value in result[1:]) - return success + evaluations = self.accumulate_arithmetic_relation( + sumcheck_evaluations, evaluations, pow_partial_evaluation + ) + evaluations = self.accumulate_permutation_relation( + sumcheck_evaluations, + evaluations, + beta, + gamma, + public_inputs_delta, + domain_separator, + ) + evaluations = self.accumulate_log_derivative_lookup_relation( + sumcheck_evaluations, + evaluations, + gamma, + eta, + eta_two, + eta_three, + domain_separator, + ) + evaluations = self.accumulate_delta_range_relation( + sumcheck_evaluations, evaluations, domain_separator + ) + evaluations = self.accumulate_elliptic_relation( + sumcheck_evaluations, evaluations, domain_separator + ) + evaluations = self.accumulate_auxillary_relation( + sumcheck_evaluations, + evaluations, + eta, + eta_two, + eta_three, + domain_separator, + ) -## honk verifier + evaluations = self.accumulate_poseidon_external_relation( + sumcheck_evaluations, evaluations, domain_separator + ) -## Fr.sol + evaluations = self.accumulate_poseidon_internal_relation( + sumcheck_evaluations, evaluations, domain_separator + ) + return evaluations + + def accumulate_arithmetic_relation( + self, + purported_evaluations: list[ModuloCircuitElement], + evaluations: list[ModuloCircuitElement], + domain_separator: ModuloCircuitElement, + ) -> ModuloCircuitElement: + + p = purported_evaluations + q_arith = p[Wire.Q_ARITH] + # Relation 0 + + neg_half = self.set_or_get_constant(self.field(-2).__inv__()) + + accum = self.product( + [ + self.sub(q_arith, self.set_or_get_constant(3)), + p[Wire.Q_M], + p[Wire.W_R], + p[Wire.W_L], + neg_half, + ] + ) + accum = self.sum( + [ + accum, + self.mul(p[Wire.Q_L], p[Wire.W_L]), + self.mul(p[Wire.Q_R], p[Wire.W_R]), + self.mul(p[Wire.Q_O], p[Wire.W_O]), + self.mul(p[Wire.Q_4], p[Wire.W_4]), + p[Wire.Q_C], + ] + ) + accum = self.add( + accum, + self.mul(self.sub(q_arith, self.set_or_get_constant(1)), p[Wire.W_4_SHIFT]), + ) + accum = self.product([accum, q_arith, domain_separator]) + + evaluations[0] = accum + + # Relation 1 + accum = self.sum([p[Wire.W_L], p[Wire.W_4], p[Wire.Q_M]]) + accum = self.sub(accum, p[Wire.W_L_SHIFT]) + accum = self.mul(accum, self.sub(q_arith, self.set_or_get_constant(2))) + accum = self.mul(accum, self.sub(q_arith, self.set_or_get_constant(1))) + accum = self.mul(accum, q_arith) + accum = self.mul(accum, domain_separator) + + evaluations[1] = accum + + return evaluations + + def accumulate_permutation_relation( + self, + purported_evaluations: list[ModuloCircuitElement], + evaluations: list[ModuloCircuitElement], + beta: ModuloCircuitElement, + gamma: ModuloCircuitElement, + public_inputs_delta: ModuloCircuitElement, + domain_separator: ModuloCircuitElement, + ) -> list[ModuloCircuitElement]: + p = purported_evaluations + + # Grand Product Numerator + n = self.sum([p[Wire.W_L], self.mul(p[Wire.ID_1], beta), gamma]) + n = self.mul(n, self.sum([p[Wire.W_R], self.mul(p[Wire.ID_2], beta), gamma])) + n = self.mul(n, self.sum([p[Wire.W_O], self.mul(p[Wire.ID_3], beta), gamma])) + n = self.mul(n, self.sum([p[Wire.W_4], self.mul(p[Wire.ID_4], beta), gamma])) + + # Grand Product Denominator + d = self.sum([p[Wire.W_L], self.mul(p[Wire.SIGMA_1], beta), gamma]) + d = self.mul(d, self.sum([p[Wire.W_R], self.mul(p[Wire.SIGMA_2], beta), gamma])) + d = self.mul(d, self.sum([p[Wire.W_O], self.mul(p[Wire.SIGMA_3], beta), gamma])) + d = self.mul(d, self.sum([p[Wire.W_4], self.mul(p[Wire.SIGMA_4], beta), gamma])) + + acc = self.mul(n, self.add(p[Wire.Z_PERM], p[Wire.LAGRANGE_FIRST])) + acc = self.sub( + acc, + self.mul( + d, + self.add( + p[Wire.Z_PERM_SHIFT], + self.mul(p[Wire.LAGRANGE_LAST], public_inputs_delta), + ), + ), + ) + evaluations[2] = self.mul(acc, domain_separator) -def Fr(value: int) -> PyFelt: - return PyFelt(value=value % P, p=P) + evaluations[3] = self.product( + [p[Wire.LAGRANGE_LAST], p[Wire.Z_PERM_SHIFT], domain_separator] + ) + return evaluations + + def accumulate_log_derivative_lookup_relation( + self, + purported_evaluations: list[ModuloCircuitElement], + evaluations: list[ModuloCircuitElement], + gamma: ModuloCircuitElement, + eta: ModuloCircuitElement, + eta_two: ModuloCircuitElement, + eta_three: ModuloCircuitElement, + domain_separator: ModuloCircuitElement, + ) -> list[ModuloCircuitElement]: + p = purported_evaluations + write_term = self.sum( + [ + p[Wire.TABLE_1], + gamma, + self.mul(p[Wire.TABLE_2], eta), + self.mul(p[Wire.TABLE_3], eta_two), + self.mul(p[Wire.TABLE_4], eta_three), + ] + ) -def Fr_from(value: bytes) -> PyFelt: - return Fr(b2n(value)) + derived_entry_1 = self.sum( + [p[Wire.W_L], gamma, self.mul(p[Wire.Q_R], p[Wire.W_L_SHIFT])] + ) + derived_entry_2 = self.add( + p[Wire.W_R], self.mul(p[Wire.Q_M], p[Wire.W_R_SHIFT]) + ) + derived_entry_3 = self.add( + p[Wire.W_O], self.mul(p[Wire.Q_C], p[Wire.W_O_SHIFT]) + ) + read_term = self.sum( + [ + derived_entry_1, + self.mul(derived_entry_2, eta), + self.mul(derived_entry_3, eta_two), + self.mul(p[Wire.Q_O], eta_three), + ] + ) + read_inverse = self.mul(p[Wire.LOOKUP_INVERSES], write_term) + write_inverse = self.mul(p[Wire.LOOKUP_INVERSES], read_term) -def Fr_invert(value: PyFelt) -> PyFelt: - return value.__inv__() + inverse_exists_xor = self.sub( + self.add(p[Wire.LOOKUP_READ_TAGS], p[Wire.Q_LOOKUP]), + self.mul(p[Wire.LOOKUP_READ_TAGS], p[Wire.Q_LOOKUP]), + ) + accumulator_none = self.product( + [read_term, write_term, p[Wire.LOOKUP_INVERSES]] + ) + accumulator_none = self.sub(accumulator_none, inverse_exists_xor) + accumulator_none = self.mul(accumulator_none, domain_separator) -## HonkTypes.sol + accumulator_one = self.mul(p[Wire.Q_LOOKUP], read_inverse) + accumulator_one = self.sub( + accumulator_one, self.mul(p[Wire.LOOKUP_READ_COUNTS], write_inverse) + ) -# Temp only set here for testing, logn will be templated -LOG_N: int = 0x0000000000000000000000000000000000000000000000000000000000000010 + evaluations[4] = accumulator_none + evaluations[5] = accumulator_one + + return evaluations + + def accumulate_delta_range_relation( + self, + purported_evaluations: list[ModuloCircuitElement], + evaluations: list[ModuloCircuitElement], + domain_separator: ModuloCircuitElement, + ) -> list[ModuloCircuitElement]: + + p = purported_evaluations + delta_1 = self.sub(p[Wire.W_R], p[Wire.W_L]) + delta_2 = self.sub(p[Wire.W_O], p[Wire.W_R]) + delta_3 = self.sub(p[Wire.W_4], p[Wire.W_O]) + delta_4 = self.sub(p[Wire.W_L_SHIFT], p[Wire.W_4]) + + # Contributions 6 - 7 - 8 - 9. + for i, delta in enumerate([delta_1, delta_2, delta_3, delta_4]): + evaluations[6 + i] = self.product( + [ + delta, + self.add(delta, self.set_or_get_constant(-1)), + self.add(delta, self.set_or_get_constant(-2)), + self.add(delta, self.set_or_get_constant(-3)), + p[Wire.Q_RANGE], + domain_separator, + ] + ) + return evaluations + + def accumulate_elliptic_relation( + self, + purported_evaluations: list[ModuloCircuitElement], + evaluations: list[ModuloCircuitElement], + domain_separator: ModuloCircuitElement, + ): + p = purported_evaluations + # TODO : Do not use arithmetic circuit + # Split in two and use Q_is_double as if-else condition in Cairo. + + x1 = p[Wire.W_R] + y1 = p[Wire.W_O] + x2 = p[Wire.W_L_SHIFT] + y2 = p[Wire.W_4_SHIFT] + y3 = p[Wire.W_O_SHIFT] + x3 = p[Wire.W_R_SHIFT] + q_sign = p[Wire.Q_L] + q_is_double = p[Wire.Q_M] + + x_diff = self.sub(x2, x1) + y1_sqr = self.mul(y1, y1) + + y2_sqr = self.mul(y2, y2) + y1y2 = self.product([y1, y2, q_sign]) + x_add_identity = self.sum([x3, x2, x1]) + x_add_identity = self.product([x_add_identity, x_diff, x_diff]) + x_add_identity = self.sub(x_add_identity, y2_sqr) + x_add_identity = self.sub(x_add_identity, y1_sqr) + x_add_identity = self.add(x_add_identity, y1y2) + x_add_identity = self.add(x_add_identity, y1y2) + + q_is_add = self.sub(self.set_or_get_constant(1), q_is_double) + + # Point addition, x-coordinate check + evaluations[10] = self.product( + [ + x_add_identity, + domain_separator, + p[Wire.Q_ELLIPTIC], + q_is_add, + ] + ) -NUMBER_OF_SUBRELATIONS: int = 18 -BATCHED_RELATION_PARTIAL_LENGTH: int = 7 -NUMBER_OF_ENTITIES: int = 43 -NUMBER_OF_ALPHAS: int = 17 + # Point addition, y-coordinate check + y1_plus_y3 = self.add(y1, y3) + y_diff = self.sub(self.mul(y2, q_sign), y1) + y_add_identity = self.add( + self.mul(y1_plus_y3, x_diff), + self.mul(self.sub(x3, x1), y_diff), + ) + evaluations[11] = self.product( + [ + y_add_identity, + domain_separator, + p[Wire.Q_ELLIPTIC], + q_is_add, + ] + ) -# Prime field order -Q: int = CURVES[CurveID.BN254.value].p # EC group order -P: int = CURVES[CurveID.BN254.value].n # Prime field order + # Point doubling, x-coordinate check + GRUMPKIN_CURVE_B_PARAMETER_NEGATED = self.set_or_get_constant(17) # - (- 17) + x_pow_4 = self.mul(self.add(y1_sqr, GRUMPKIN_CURVE_B_PARAMETER_NEGATED), x1) + y1_sqr_mul_4 = self.add(y1_sqr, y1_sqr) + y1_sqr_mul_4 = self.add(y1_sqr_mul_4, y1_sqr_mul_4) -class WIRE(Enum): - Q_C = 0 - Q_L = 1 - Q_R = 2 - Q_O = 3 - Q_4 = 4 - Q_M = 5 - Q_ARITH = 6 - Q_SORT = 7 - Q_ELLIPTIC = 8 - Q_AUX = 9 - Q_LOOKUP = 10 - SIGMA_1 = 11 - SIGMA_2 = 12 - SIGMA_3 = 13 - SIGMA_4 = 14 - ID_1 = 15 - ID_2 = 16 - ID_3 = 17 - ID_4 = 18 - TABLE_1 = 19 - TABLE_2 = 20 - TABLE_3 = 21 - TABLE_4 = 22 - LAGRANGE_FIRST = 23 - LAGRANGE_LAST = 24 - W_L = 25 - W_R = 26 - W_O = 27 - W_4 = 28 - SORTED_ACCUM = 29 - Z_PERM = 30 - Z_LOOKUP = 31 - TABLE_1_SHIFT = 32 - TABLE_2_SHIFT = 33 - TABLE_3_SHIFT = 34 - TABLE_4_SHIFT = 35 - W_L_SHIFT = 36 - W_R_SHIFT = 37 - W_O_SHIFT = 38 - W_4_SHIFT = 39 - SORTED_ACCUM_SHIFT = 40 - Z_PERM_SHIFT = 41 - Z_LOOKUP_SHIFT = 42 - - -@dataclass(slots=True, frozen=True) -class G1Point: - x: int - y: int - - -@dataclass(slots=True, frozen=True) -class G1ProofPoint: - x_0: int - x_1: int - y_0: int - y_1: int - - -@dataclass(slots=True, frozen=True) -class HonkVerificationKey: - # Misc Params - circuitSize: int - logCircuitSize: int - publicInputsSize: int - # Selectors - qm: G1Point - qc: G1Point - ql: G1Point - qr: G1Point - qo: G1Point - q4: G1Point - qArith: G1Point # Arithmetic widget - qSort: G1Point # Gen perm sort - qAux: G1Point # Auxillary - qElliptic: G1Point # Auxillary - qLookup: G1Point # Lookup - # Copy cnstraints - s1: G1Point - s2: G1Point - s3: G1Point - s4: G1Point - # Copy identity - id1: G1Point - id2: G1Point - id3: G1Point - id4: G1Point - # Precomputed lookup table - t1: G1Point - t2: G1Point - t3: G1Point - t4: G1Point - # Fixed first and last - lagrangeFirst: G1Point - lagrangeLast: G1Point + x1_pow_4_mul_9 = self.mul(x_pow_4, self.set_or_get_constant(9)) + x_double_identity = self.sub( + self.mul(self.sum([x3, x1, x1]), y1_sqr_mul_4), x1_pow_4_mul_9 + ) -@dataclass(slots=True, frozen=True) -class HonkProof: - circuitSize: int - publicInputsSize: int - publicInputsOffset: int - # Free wires - w1: G1ProofPoint - w2: G1ProofPoint - w3: G1ProofPoint - w4: G1ProofPoint - # Lookup helpers - classic plookup - sortedAccum: G1ProofPoint - zPerm: G1ProofPoint - zLookup: G1ProofPoint - # Sumcheck - sumcheckUnivariates: list[list[PyFelt]] # [BATCHED_RELATION_PARTIAL_LENGTH][LOG_N] - sumcheckEvaluations: list[PyFelt] # [NUMBER_OF_ENTITIES] - # Zero morph - zmCqs: list[G1ProofPoint] # [LOG_N] - zmCq: G1ProofPoint - zmPi: G1ProofPoint + evaluations[10] = self.add( + evaluations[10], + self.product( + [x_double_identity, domain_separator, p[Wire.Q_ELLIPTIC], q_is_double] + ), + ) + # Point doubling, y-coordinate check -## utils.sol + x1_sqr_mul_3 = self.mul(self.sum([x1, x1, x1]), x1) + y_double_identity = self.sub( + self.mul(x1_sqr_mul_3, self.sub(x1, x3)), + self.mul(self.add(y1, y1), self.add(y1, y3)), + ) + evaluations[11] = self.add( + evaluations[11], + self.product( + [y_double_identity, domain_separator, p[Wire.Q_ELLIPTIC], q_is_double] + ), + ) -def convertProofPoint(point: G1ProofPoint) -> G1Point: - return G1Point(x=point.x_0 | (point.x_1 << 136), y=point.y_0 | (point.y_1 << 136)) + return evaluations + + def accumulate_auxillary_relation( + self, + purported_evaluations: list[ModuloCircuitElement], + evaluations: list[ModuloCircuitElement], + eta: ModuloCircuitElement, + eta_two: ModuloCircuitElement, + eta_three: ModuloCircuitElement, + domain_separator: ModuloCircuitElement, + ): + p = purported_evaluations + limb_size = self.set_or_get_constant(2**68) + sub_limb_shift = self.set_or_get_constant(2**14) + + limb_subproduct = self.add( + self.mul(p[Wire.W_L], p[Wire.W_R_SHIFT]), + self.mul(p[Wire.W_L_SHIFT], p[Wire.W_R]), + ) + non_native_field_gate_2 = self.sub( + self.add( + self.mul(p[Wire.W_L], p[Wire.W_4]), + self.mul(p[Wire.W_R], p[Wire.W_O]), + ), + p[Wire.W_O_SHIFT], + ) + non_native_field_gate_2 = self.mul(non_native_field_gate_2, limb_size) + non_native_field_gate_2 = self.sub(non_native_field_gate_2, p[Wire.W_4_SHIFT]) + non_native_field_gate_2 = self.add(non_native_field_gate_2, limb_subproduct) + non_native_field_gate_2 = self.mul(non_native_field_gate_2, p[Wire.Q_4]) + + limb_subproduct = self.mul(limb_subproduct, limb_size) + limb_subproduct = self.add( + limb_subproduct, + self.mul(p[Wire.W_L_SHIFT], p[Wire.W_R_SHIFT]), + ) -def ecMul(point: G1Point, scalar: PyFelt) -> G1Point: - (x, y) = bn256_scalar_mul((point.x, point.y), scalar.value) - return G1Point(x=x, y=y) + non_native_field_gate_1 = limb_subproduct + non_native_field_gate_1 = self.sub( + non_native_field_gate_1, + self.add(p[Wire.W_O], p[Wire.W_4]), + ) + non_native_field_gate_1 = self.mul(non_native_field_gate_1, p[Wire.Q_O]) + non_native_field_gate_3 = limb_subproduct + non_native_field_gate_3 = self.add(non_native_field_gate_3, p[Wire.W_4]) + non_native_field_gate_3 = self.sub( + non_native_field_gate_3, + self.add(p[Wire.W_O_SHIFT], p[Wire.W_4_SHIFT]), + ) + non_native_field_gate_3 = self.mul(non_native_field_gate_3, p[Wire.Q_M]) -def ecAdd(point0: G1Point, point1: G1Point) -> G1Point: - (x, y) = bn256_add((point0.x, point0.y), (point1.x, point1.y)) - return G1Point(x=x, y=y) + non_native_field_identity = self.sum( + [non_native_field_gate_1, non_native_field_gate_2, non_native_field_gate_3] + ) + non_native_field_identity = self.mul(non_native_field_identity, p[Wire.Q_R]) + + limb_accumulator_1 = self.mul(p[Wire.W_R_SHIFT], sub_limb_shift) + limb_accumulator_1 = self.add(limb_accumulator_1, p[Wire.W_L_SHIFT]) + limb_accumulator_1 = self.mul(limb_accumulator_1, sub_limb_shift) + limb_accumulator_1 = self.add(limb_accumulator_1, p[Wire.W_O]) + limb_accumulator_1 = self.mul(limb_accumulator_1, sub_limb_shift) + limb_accumulator_1 = self.add(limb_accumulator_1, p[Wire.W_R]) + limb_accumulator_1 = self.mul(limb_accumulator_1, sub_limb_shift) + limb_accumulator_1 = self.add(limb_accumulator_1, p[Wire.W_L]) + limb_accumulator_1 = self.sub(limb_accumulator_1, p[Wire.W_4]) + limb_accumulator_1 = self.mul(limb_accumulator_1, p[Wire.Q_4]) + + limb_accumulator_2 = self.mul(p[Wire.W_O_SHIFT], sub_limb_shift) + limb_accumulator_2 = self.add(limb_accumulator_2, p[Wire.W_R_SHIFT]) + limb_accumulator_2 = self.mul(limb_accumulator_2, sub_limb_shift) + limb_accumulator_2 = self.add(limb_accumulator_2, p[Wire.W_L_SHIFT]) + limb_accumulator_2 = self.mul(limb_accumulator_2, sub_limb_shift) + limb_accumulator_2 = self.add(limb_accumulator_2, p[Wire.W_4]) + limb_accumulator_2 = self.mul(limb_accumulator_2, sub_limb_shift) + limb_accumulator_2 = self.add(limb_accumulator_2, p[Wire.W_O]) + limb_accumulator_2 = self.sub(limb_accumulator_2, p[Wire.W_4_SHIFT]) + limb_accumulator_2 = self.mul(limb_accumulator_2, p[Wire.Q_M]) + + # Fr limb_accumulator_identity = ap.limb_accumulator_1 + ap.limb_accumulator_2; + # limb_accumulator_identity = limb_accumulator_identity * wire(p, WIRE.Q_O); // deg 3 + + limb_accumulator_identity = self.add(limb_accumulator_1, limb_accumulator_2) + limb_accumulator_identity = self.mul(limb_accumulator_identity, p[Wire.Q_O]) + + memory_record_check = self.sum( + [ + self.mul(p[Wire.W_O], eta_three), + self.mul(p[Wire.W_R], eta_two), + self.mul(p[Wire.W_L], eta), + ] + ) + memory_record_check = self.add(memory_record_check, p[Wire.Q_C]) + partial_record_check = copy.deepcopy(memory_record_check) + memory_record_check = self.sub(memory_record_check, p[Wire.W_4]) + + index_delta = self.sub(p[Wire.W_L_SHIFT], p[Wire.W_L]) + record_delta = self.sub(p[Wire.W_4_SHIFT], p[Wire.W_4]) + index_is_monotonically_increasing = self.sub( + self.mul(index_delta, index_delta), index_delta + ) + adjacent_values_match_if_adjacent_indices_match = self.mul( + self.add( + self.neg(index_delta), + self.set_or_get_constant(1), + ), + record_delta, + ) -def ecNeg(point: G1Point) -> G1Point: - return G1Point(x=point.x, y=(Q - point.y) % Q) + q_l_qr = self.mul(p[Wire.Q_L], p[Wire.Q_R]) + common_product = self.product([q_l_qr, p[Wire.Q_AUX], domain_separator]) + evaluations[13] = self.mul( + adjacent_values_match_if_adjacent_indices_match, common_product + ) -def ecSub(point0: G1Point, point1: G1Point) -> G1Point: - return ecAdd(point0, ecNeg(point1)) + evaluations[14] = self.mul(index_is_monotonically_increasing, common_product) + ROM_consistency_check_identity = self.mul(memory_record_check, q_l_qr) -## EcdsaHonkVerificationKey.sol + access_type = self.sub(p[Wire.W_4], partial_record_check) + access_check = self.sub(self.mul(access_type, access_type), access_type) + next_gate_access_type = self.sum( + [ + self.mul(p[Wire.W_O_SHIFT], eta_three), + self.mul(p[Wire.W_R_SHIFT], eta_two), + self.mul(p[Wire.W_L_SHIFT], eta), + ] + ) + next_gate_access_type = self.sub(p[Wire.W_4_SHIFT], next_gate_access_type) -N: int = 0x0000000000000000000000000000000000000000000000000000000000010000 -NUMBER_OF_PUBLIC_INPUTS: int = ( - 0x0000000000000000000000000000000000000000000000000000000000000006 -) + value_delta = self.sub(p[Wire.W_O_SHIFT], p[Wire.W_O]) + adjacent_values_match_if_adjacent_indices_match_and_next_access_is_a_read_operation = self.mul( + self.add(self.neg(index_delta), self.set_or_get_constant(1)), + self.mul( + value_delta, + self.add(self.neg(next_gate_access_type), self.set_or_get_constant(1)), + ), + ) -def loadVerificationKey() -> HonkVerificationKey: - return HonkVerificationKey( - circuitSize=0x0000000000000000000000000000000000000000000000000000000000010000, - logCircuitSize=0x0000000000000000000000000000000000000000000000000000000000000010, - publicInputsSize=0x0000000000000000000000000000000000000000000000000000000000000006, - ql=G1Point( - x=0x2AA1E5D9538920238FBD3438B27E069C1EDB9C2807E75C5CCB78102D502717A5, - y=0x2C2CEE219FA2DCFC815CF63A3F6519C8EF3A048BB668FCE2136EF09A3F1ED12E, - ), - qr=G1Point( - x=0x001E152CC12C0B54DC2D3BD1D7D017BF7491477D42620B73A0440AADE3618C2E, - y=0x2315ED9F374367C436DD9C6F429813FAC22057DE80F4C3370FA123D5F78AEF2E, - ), - qo=G1Point( - x=0x1E03C43F995F5A063F6D9A629585B91A77A49190E6A76DB92FA1B679EBBBB694, - y=0x062C61A0E3454D8ED5DD8198C1DB15612ED49C28685EFE35A353F9C44E0C42FD, - ), - q4=G1Point( - x=0x1C919D8B75B3D41E260EFF3B817F7A5A1BCD1387B8C5269B7F7CD7610F687A1A, - y=0x266DFB8160F9492AE89282D7301A6252A5FC86B785A055959A85559FA7FE313B, - ), - qm=G1Point( - x=0x22B152101522EA0DEC8AFD61C48B2A406EABC0D39B46016AF995A0D1B3260A16, - y=0x22A67ABA4DA604029085DB563B8C5F60CA0F9B4F12E7E845EB308B38D323D282, - ), - qc=G1Point( - x=0x0847B07BB1B03ED20243D7B8ABF78300F7065713FB9F3753DFDCCA3D25244507, - y=0x07FF6FD445F7381B12A90A300E97CAABB6FC23935C9EA235E4A837FDF341DE40, - ), - qArith=G1Point( - x=0x01E6B4DB22F35DD68007F699E1543653F270632F143D7E4164C6DCC4852540D3, - y=0x25D7DE890F88C904B900AE61E3D6EBA8C2601793E0EF05EB25222CEAC9C79AE6, - ), - qSort=G1Point( - x=0x0276B7BE1FD261EFF8381E6E8FFDB3725940AF81118DF85D7D8C608A4C90B298, - y=0x19E04B6E50057551BC37FAC5761C75B624913895785B28B8394543CE0E2AF753, - ), - qElliptic=G1Point( - x=0x246D59A16C1352A8873E7F8A58B87BCCFD189FC78D27F956F026236FC7D16162, - y=0x156D472D90596472EB771C56F370E92CBC22282D7C7A01F7057C1D3EA70C92F2, - ), - qAux=G1Point( - x=0x048D8152D6204D873A42E7E86EDCA5A880ECFB96C18B2294098019DE390755B2, - y=0x2D36E390F7FEDE4CD8FC187EE4ED1B39F59CA26DE94E6F5CA9813DFE4A786381, - ), - qLookup=G1Point( - x=0x1E7E7CCAD6262D34FC92F0CC0ABA7F07427B97099FD6B3C21EB0BB5AE781E9B2, - y=0x25A590063AB4AC8254CAC9A4FAA08BB921038BB3B3F87FAA0E04B9470E197BE5, - ), - s1=G1Point( - x=0x2A471E6E6E9AA115123375F50BAFDD03F799672C26E577E1BEB7F903DE2B96C6, - y=0x28989BB0E1F9A69BDE57D64557A24BEAB02921B2CC9DE388D9963825705B6FAE, - ), - s2=G1Point( - x=0x15C2A00E86AE04173083E75E79B479290879258C68143447FE20418C3E322D15, - y=0x181DE2E886B42DAA1F3349DA50775ABD7FC4E467D8B026D20118E046CC31DF2B, - ), - s3=G1Point( - x=0x2B4610081743E2C3E199358F8CDD959399B8210873E0F173BFEDE3E191A76372, - y=0x0269F731FC4BA4DF8B824A794D39692452E911450C261BD7C0EE421A187F3D70, - ), - s4=G1Point( - x=0x2599EF03B93CFA8E3DFC50A671F95AEED1FD6BCC137DDD18E8408F2B46C8A074, - y=0x304CB90DBBE026323E92FE385F2E2EC108C524CBB7BB0F858429AF8EC9B80EA1, - ), - t1=G1Point( - x=0x1DDC9EF86584375E5998D9F6FC16A4E646DC315AB86B477ABC2F18A723DC24F6, - y=0x03A3B132CA6590C4FFDF35E1ACD932DA680A4247A55C88DD2284AF78CB047906, - ), - t2=G1Point( - x=0x1E4CDE3E410660193BACDF1DB498FFB6BF1618C4D7B355415858D7D996E8BD03, - y=0x18D7F0300F961521EAD0CB3C81A2A43A2DEA0FDCB17BD772AEF6C7B908BE4273, - ), - t3=G1Point( - x=0x0E77F28B07AF551FEA1AD81B304FD41013850E8B3539309C20BB2FA115289642, - y=0x15F92FDE2F0D7A77C27DAEB397336220FFC07B99F710980253E84F8AE94AFD4D, - ), - t4=G1Point( - x=0x2285EA4116CA00B673B2DAADF596052B6D9BA6D231A4BEA8AF5A3C0F28C44AA4, - y=0x076BF1E1F682BADEBFCA083E25D808E8DAE96372631C0721A7EE238C333A862A, - ), - id1=G1Point( - x=0x24EC1E72FBAF9EE95DBC8A2ABFBF8858799576FB9B8F5E7E63D8E0B1DA32E692, - y=0x28B7122F8E5A7397BF78E8BF8731A285F89516D3627C2C6B4C170B30B82FAAF3, - ), - id2=G1Point( - x=0x206857EF4F7CC72A455C9C61A74FDAD900A581F85A3001ABAC02E6F9BDD57243, - y=0x1F3F454B77A5F607614B625059F2EE804AF5C5B65BEED4C61B48FA1BFCF1A819, - ), - id3=G1Point( - x=0x0946AF4969C7508BE03D0216CAF93913DC178FE870C8C2C80958B3C492F383E2, - y=0x0E1B3D5BF9B9152109D937399F9963626F38734734ECE5F71D49F986A8FE2C1B, - ), - id4=G1Point( - x=0x195028EFCA7E54F5CC0B50BEA74815F18C572A6B1EA833E885E0AF3E5F0701FD, - y=0x100E2DA82D3E2C3157F190DB75110B11F18C317945577F865EF830860921D737, - ), - lagrangeFirst=G1Point( - x=0x0000000000000000000000000000000000000000000000000000000000000001, - y=0x0000000000000000000000000000000000000000000000000000000000000002, - ), - lagrangeLast=G1Point( - x=0x28BF8C9EEAE6946902EE08351768A3E4F67D812E6465F55F16BF69FAD16CF46D, - y=0x12DAB1C326B33EA63EC6651324077C0EA2CB0DDFAFD63FB8F9FBCC70BD53D7E0, - ), - ) + next_gate_access_type_is_boolean = self.sub( + self.mul(next_gate_access_type, next_gate_access_type), + next_gate_access_type, + ) + common_product = self.product( + [p[Wire.Q_ARITH], p[Wire.Q_AUX], domain_separator] + ) -## Transcript.sol - - -@dataclass(slots=True) -class Transcript: - eta: PyFelt - beta: PyFelt - gamma: PyFelt - alphas: list[PyFelt] # [NUMBER_OF_ALPHAS] - gateChallenges: list[PyFelt] # [LOG_N] - sumCheckUChallenges: list[PyFelt] # [LOG_N] - rho: PyFelt - # Zero morph - zmX: PyFelt - zmY: PyFelt - zmZ: PyFelt - zmQuotient: PyFelt - # Derived - publicInputsDelta: PyFelt - lookupGrandProductDelta: PyFelt - - -def generateTranscript(proof: HonkProof, publicInputs: list[int]) -> Transcript: - eta = generateEtaChallenge(proof, publicInputs) - (beta, gamma) = generateBetaAndGammaChallenges(eta, proof) - alphas = generateAlphaChallenges(gamma, proof) - gateChallenges = generateGateChallenges(alphas[NUMBER_OF_ALPHAS - 1]) - sumCheckUChallenges = generateSumcheckChallenges(proof, gateChallenges[LOG_N - 1]) - rho = generateRhoChallenge(proof, sumCheckUChallenges[LOG_N - 1]) - zmY = generateZMYChallenge(rho, proof) - (zmX, zmZ) = generateZMXZChallenges(zmY, proof) - return Transcript( - eta=eta, - beta=beta, - gamma=gamma, - alphas=alphas, - gateChallenges=gateChallenges, - sumCheckUChallenges=sumCheckUChallenges, - rho=rho, - zmX=zmX, - zmY=zmY, - zmZ=zmZ, - zmQuotient=Fr(0), - publicInputsDelta=Fr(0), - lookupGrandProductDelta=Fr(0), - ) + evaluations[15] = self.mul( + adjacent_values_match_if_adjacent_indices_match_and_next_access_is_a_read_operation, + common_product, + ) + evaluations[16] = self.mul(index_is_monotonically_increasing, common_product) + evaluations[17] = self.mul(next_gate_access_type_is_boolean, common_product) -def generateEtaChallenge(proof: HonkProof, publicInputs: list[int]) -> PyFelt: - # TODO(md): the 12 here will need to be halved when we fix the transcript to not be over field elements - round0: list[int] = (3 + NUMBER_OF_PUBLIC_INPUTS + 12) * [0] - round0[0] = proof.circuitSize - round0[1] = proof.publicInputsSize - round0[2] = proof.publicInputsOffset - for i in range(NUMBER_OF_PUBLIC_INPUTS): - round0[3 + i] = publicInputs[i] - # Create the first challenge - # Note: w4 is added to the challenge later on - # TODO: UPDATE ALL VALUES IN HERE - round0[3 + NUMBER_OF_PUBLIC_INPUTS] = proof.w1.x_0 - round0[3 + NUMBER_OF_PUBLIC_INPUTS + 1] = proof.w1.x_1 - round0[3 + NUMBER_OF_PUBLIC_INPUTS + 2] = proof.w1.y_0 - round0[3 + NUMBER_OF_PUBLIC_INPUTS + 3] = proof.w1.y_1 - round0[3 + NUMBER_OF_PUBLIC_INPUTS + 4] = proof.w2.x_0 - round0[3 + NUMBER_OF_PUBLIC_INPUTS + 5] = proof.w2.x_1 - round0[3 + NUMBER_OF_PUBLIC_INPUTS + 6] = proof.w2.y_0 - round0[3 + NUMBER_OF_PUBLIC_INPUTS + 7] = proof.w2.y_1 - round0[3 + NUMBER_OF_PUBLIC_INPUTS + 8] = proof.w3.x_0 - round0[3 + NUMBER_OF_PUBLIC_INPUTS + 9] = proof.w3.x_1 - round0[3 + NUMBER_OF_PUBLIC_INPUTS + 10] = proof.w3.y_0 - round0[3 + NUMBER_OF_PUBLIC_INPUTS + 11] = proof.w3.y_1 - eta = Fr_from(keccak256(abi_encode_packed(round0))) - return eta - - -def generateBetaAndGammaChallenges( - previousChallenge: PyFelt, proof: HonkProof -) -> tuple[PyFelt, PyFelt]: - # TODO(md): adjust round size when the proof points are generated correctly - 5 - round1: list[int] = (9) * [0] - round1[0] = previousChallenge.value - round1[1] = proof.sortedAccum.x_0 - round1[2] = proof.sortedAccum.x_1 - round1[3] = proof.sortedAccum.y_0 - round1[4] = proof.sortedAccum.y_1 - round1[5] = proof.w4.x_0 - round1[6] = proof.w4.x_1 - round1[7] = proof.w4.y_0 - round1[8] = proof.w4.y_1 - beta = Fr_from(keccak256(abi_encode_packed(round1))) - gamma = Fr_from(keccak256(abi_encode_packed([beta.value]))) - return (beta, gamma) - - -# Alpha challenges non-linearise the gate contributions -def generateAlphaChallenges( - previousChallenge: PyFelt, proof: HonkProof -) -> list[PyFelt]: - # Generate the original sumcheck alpha 0 by hashing zPerm and zLookup - # TODO(md): 5 post correct proof size fix - alphas: list[PyFelt] = (NUMBER_OF_ALPHAS) * [Fr(0)] - alpha0: list[int] = (9) * [0] - alpha0[0] = previousChallenge.value - alpha0[1] = proof.zPerm.x_0 - alpha0[2] = proof.zPerm.x_1 - alpha0[3] = proof.zPerm.y_0 - alpha0[4] = proof.zPerm.y_1 - alpha0[5] = proof.zLookup.x_0 - alpha0[6] = proof.zLookup.x_1 - alpha0[7] = proof.zLookup.y_0 - alpha0[8] = proof.zLookup.y_1 - prevChallenge = Fr_from(keccak256(abi_encode_packed(alpha0))) - alphas[0] = prevChallenge - for i in range(1, NUMBER_OF_ALPHAS): - prevChallenge = Fr_from(keccak256(abi_encode_packed([prevChallenge.value]))) - alphas[i] = prevChallenge - return alphas - - -def generateGateChallenges(previousChallenge: PyFelt) -> list[PyFelt]: # [LOG_N] - gateChallenges: list[PyFelt] = (LOG_N) * [Fr(0)] - for i in range(LOG_N): - previousChallenge = Fr_from( - keccak256(abi_encode_packed([previousChallenge.value])) - ) - gateChallenges[i] = previousChallenge - return gateChallenges - - -def generateSumcheckChallenges( - proof: HonkProof, prevChallenge: PyFelt -) -> list[PyFelt]: # [LOG_N] - sumcheckChallenges: list[PyFelt] = (LOG_N) * [Fr(0)] - for i in range(LOG_N): - univariateChal: list[int] = (BATCHED_RELATION_PARTIAL_LENGTH + 1) * [0] - univariateChal[0] = prevChallenge.value - for j in range(BATCHED_RELATION_PARTIAL_LENGTH): - univariateChal[j + 1] = proof.sumcheckUnivariates[i][j].value - sumcheckChallenges[i] = Fr_from(keccak256(abi_encode_packed(univariateChal))) - prevChallenge = sumcheckChallenges[i] - return sumcheckChallenges - - -def generateRhoChallenge(proof: HonkProof, prevChallenge: PyFelt) -> PyFelt: - rhoChallengeElements: list[int] = (NUMBER_OF_ENTITIES + 1) * [0] - rhoChallengeElements[0] = prevChallenge.value - for i in range(NUMBER_OF_ENTITIES): - rhoChallengeElements[i + 1] = proof.sumcheckEvaluations[i].value - rho = Fr_from(keccak256(abi_encode_packed(rhoChallengeElements))) - return rho - - -def generateZMYChallenge(previousChallenge: PyFelt, proof: HonkProof) -> PyFelt: - zmY: list[int] = (LOG_N * 4 + 1) * [0] - zmY[0] = previousChallenge.value - for i in range(LOG_N): - zmY[1 + i * 4] = proof.zmCqs[i].x_0 - zmY[2 + i * 4] = proof.zmCqs[i].x_1 - zmY[3 + i * 4] = proof.zmCqs[i].y_0 - zmY[4 + i * 4] = proof.zmCqs[i].y_1 - zeromorphY = Fr_from(keccak256(abi_encode_packed(zmY))) - return zeromorphY - - -def generateZMXZChallenges( - previousChallenge: PyFelt, proof: HonkProof -) -> tuple[PyFelt, PyFelt]: - buf: list[int] = (4 + 1) * [0] - buf[0] = previousChallenge.value - buf[1] = proof.zmCq.x_0 - buf[2] = proof.zmCq.x_1 - buf[3] = proof.zmCq.y_0 - buf[4] = proof.zmCq.y_1 - zeromorphX = Fr_from(keccak256(abi_encode_packed(buf))) - zeromorphZ = Fr_from(keccak256(abi_encode_packed([zeromorphX.value]))) - return (zeromorphX, zeromorphZ) - - -## EcdsaHonkVerifier.sol - -GRUMPKIN_CURVE_B_PARAMETER_NEGATED: PyFelt = Fr(17) # -(-17) - - -def verify(proof: bytes, publicInputs: list[int]) -> bool: - vk = loadVerificationKey() - p = loadProof(proof) - if vk.publicInputsSize != len(publicInputs): - raise ValueError("PublicInputsLengthWrong") - # Generate the fiat shamir challenges for the whole protocol - t = generateTranscript(p, publicInputs) - # Compute the public input delta - t.publicInputsDelta = computePublicInputDelta( - publicInputs, t.beta, t.gamma, vk.circuitSize, p.publicInputsOffset - ) - t.lookupGrandProductDelta = computeLookupGrandProductDelta( - t.beta, t.gamma, vk.circuitSize - ) - # Sumcheck - sumcheckVerified = verifySumcheck(p, t) - if not sumcheckVerified: - raise ValueError("SumcheckFailed") - # Zeromorph - zeromorphVerified = verifyZeroMorph(p, vk, t) - if not zeromorphVerified: - raise ValueError("ZeromorphFailed") - return ( - sumcheckVerified and zeromorphVerified - ) # Boolean condition not required - nice for vanity :) - - -# TODO: mod q proof points -# TODO: Preprocess all of the memory locations -# TODO: Adjust proof point serde away from poseidon forced field elements -def loadProof(proof: bytes) -> HonkProof: - # Metadata - circuitSize = b2n(proof[0x00:0x20]) - publicInputsSize = b2n(proof[0x20:0x40]) - publicInputsOffset = b2n(proof[0x40:0x60]) - # Commitments - w1 = G1ProofPoint( - x_0=b2n(proof[0x60:0x80]), - x_1=b2n(proof[0x80:0xA0]), - y_0=b2n(proof[0xA0:0xC0]), - y_1=b2n(proof[0xC0:0xE0]), - ) - w2 = G1ProofPoint( - x_0=b2n(proof[0xE0:0x100]), - x_1=b2n(proof[0x100:0x120]), - y_0=b2n(proof[0x120:0x140]), - y_1=b2n(proof[0x140:0x160]), - ) - w3 = G1ProofPoint( - x_0=b2n(proof[0x160:0x180]), - x_1=b2n(proof[0x180:0x1A0]), - y_0=b2n(proof[0x1A0:0x1C0]), - y_1=b2n(proof[0x1C0:0x1E0]), - ) - # Lookup / Permutation Helper Commitments - sortedAccum = G1ProofPoint( - x_0=b2n(proof[0x1E0:0x200]), - x_1=b2n(proof[0x200:0x220]), - y_0=b2n(proof[0x220:0x240]), - y_1=b2n(proof[0x240:0x260]), - ) - w4 = G1ProofPoint( - x_0=b2n(proof[0x260:0x280]), - x_1=b2n(proof[0x280:0x2A0]), - y_0=b2n(proof[0x2A0:0x2C0]), - y_1=b2n(proof[0x2C0:0x2E0]), - ) - zPerm = G1ProofPoint( - x_0=b2n(proof[0x2E0:0x300]), - x_1=b2n(proof[0x300:0x320]), - y_0=b2n(proof[0x320:0x340]), - y_1=b2n(proof[0x340:0x360]), - ) - zLookup = G1ProofPoint( - x_0=b2n(proof[0x360:0x380]), - x_1=b2n(proof[0x380:0x3A0]), - y_0=b2n(proof[0x3A0:0x3C0]), - y_1=b2n(proof[0x3C0:0x3E0]), - ) - # TEMP the boundary of what has already been read - boundary = 0x3E0 - # Sumcheck univariates - # TODO: in this case we know what log_n is - so we hard code it, we would want this to be included in - # a cpp template for different circuit sizes - sumcheckUnivariates: list[list[PyFelt]] = (LOG_N) * [ - (BATCHED_RELATION_PARTIAL_LENGTH) * [Fr(0)] - ] - for i in range(LOG_N): - sumcheckUnivariates[i] = (BATCHED_RELATION_PARTIAL_LENGTH) * [Fr(0)] - # The loop boundary of i, this will shift forward on each evaluation - loop_boundary = boundary + (i * 0x20 * BATCHED_RELATION_PARTIAL_LENGTH) - for j in range(BATCHED_RELATION_PARTIAL_LENGTH): - start = loop_boundary + (j * 0x20) - end = start + 0x20 - sumcheckUnivariates[i][j] = Fr_from(proof[start:end]) - boundary = boundary + (LOG_N * BATCHED_RELATION_PARTIAL_LENGTH * 0x20) - # Sumcheck evaluations - sumcheckEvaluations: list[PyFelt] = (NUMBER_OF_ENTITIES) * [Fr(0)] - for i in range(NUMBER_OF_ENTITIES): - start = boundary + (i * 0x20) - end = start + 0x20 - sumcheckEvaluations[i] = Fr_from(proof[start:end]) - boundary = boundary + (NUMBER_OF_ENTITIES * 0x20) - # Zero morph Commitments - zmCqs: list[G1ProofPoint] = (LOG_N) * [G1ProofPoint(x_0=0, x_1=0, y_0=0, y_1=0)] - for i in range(LOG_N): - # Explicitly stating the x0, x1, y0, y1 start and end boundaries to make the calldata slicing bearable - xStart = boundary + (i * 0x80) - xEnd = xStart + 0x20 - x1Start = xEnd - x1End = x1Start + 0x20 - yStart = x1End - yEnd = yStart + 0x20 - y1Start = yEnd - y1End = y1Start + 0x20 - zmCqs[i] = G1ProofPoint( - x_0=b2n(proof[xStart:xEnd]), - x_1=b2n(proof[x1Start:x1End]), - y_0=b2n(proof[yStart:yEnd]), - y_1=b2n(proof[y1Start:y1End]), - ) - boundary = boundary + (LOG_N * 0x80) - zmCq = G1ProofPoint( - x_0=b2n(proof[boundary : boundary + 0x20]), - x_1=b2n(proof[boundary + 0x20 : boundary + 0x40]), - y_0=b2n(proof[boundary + 0x40 : boundary + 0x60]), - y_1=b2n(proof[boundary + 0x60 : boundary + 0x80]), - ) - zmPi = G1ProofPoint( - x_0=b2n(proof[boundary + 0x80 : boundary + 0xA0]), - x_1=b2n(proof[boundary + 0xA0 : boundary + 0xC0]), - y_0=b2n(proof[boundary + 0xC0 : boundary + 0xE0]), - y_1=b2n(proof[boundary + 0xE0 : boundary + 0x100]), - ) - return HonkProof( - circuitSize=circuitSize, - publicInputsSize=publicInputsSize, - publicInputsOffset=publicInputsOffset, - w1=w1, - w2=w2, - w3=w3, - sortedAccum=sortedAccum, - w4=w4, - zPerm=zPerm, - zLookup=zLookup, - sumcheckUnivariates=sumcheckUnivariates, - sumcheckEvaluations=sumcheckEvaluations, - zmCqs=zmCqs, - zmCq=zmCq, - zmPi=zmPi, - ) + RAM_consistency_check_identity = self.mul(access_check, p[Wire.Q_ARITH]) + timestamp_delta = self.sub(p[Wire.W_R_SHIFT], p[Wire.W_R]) + RAM_timestamp_check_identity = self.sub( + self.mul( + self.add(self.neg(index_delta), self.set_or_get_constant(1)), + timestamp_delta, + ), + p[Wire.W_O], + ) -def computePublicInputDelta( - publicInputs: list[int], beta: PyFelt, gamma: PyFelt, domainSize: int, offset: int -) -> PyFelt: - numerator = Fr(1) - denominator = Fr(1) - numeratorAcc = gamma + (beta * Fr(domainSize + offset)) - denominatorAcc = gamma - (beta * Fr(offset + 1)) - for publicInput in publicInputs: - pubInput = Fr(publicInput) - numerator = numerator * (numeratorAcc + pubInput) - denominator = denominator * (denominatorAcc + pubInput) - numeratorAcc = numeratorAcc + beta - denominatorAcc = denominatorAcc - beta - # Fr delta = numerator / denominator; // TOOO: batch invert later? - publicInputDelta = numerator / denominator - return publicInputDelta - - -# Incorportate the original plookup construction into honk -def computeLookupGrandProductDelta( - beta: PyFelt, gamma: PyFelt, domainSize: int -) -> PyFelt: - gammaByOnePlusBeta = gamma * (beta + 1) - # TODO: dont like using ^ for exponent - might just make a function - lookupGrandProductDelta = gammaByOnePlusBeta**domainSize - return lookupGrandProductDelta - - -ROUND_TARGET: int = 0 - - -def verifySumcheck(proof: HonkProof, tp: Transcript) -> bool: - roundTarget = Fr(0) - powPartialEvaluation = Fr(1) - # We perform sumcheck reductions over log n rounds ( the multivariate degree ) - for rnd in range(LOG_N): - roundUnivariate = proof.sumcheckUnivariates[rnd] - valid = checkSum(roundUnivariate, roundTarget) - if not valid: - return False - roundChallenge = tp.sumCheckUChallenges[rnd] - # Update the round target for the next rounf - roundTarget = computeNextTargetSum(roundUnivariate, roundChallenge) - powPartialEvaluation = partiallyEvaluatePOW( - tp, powPartialEvaluation, roundChallenge, rnd - ) - # Last round - grandHonkRelationSum = accumulateRelationEvaluations( - proof, tp, powPartialEvaluation - ) - verified = grandHonkRelationSum == roundTarget - return verified - - -def checkSum(roundUnivariate: list[PyFelt], roundTarget: PyFelt) -> bool: - totalSum = roundUnivariate[0] + roundUnivariate[1] - checked = totalSum == roundTarget - return checked - - -# Return the new target sum for the next sumcheck round -def computeNextTargetSum( - roundUnivariates: list[PyFelt], roundChallenge: PyFelt -) -> PyFelt: - # TODO: inline - BARYCENTRIC_LAGRANGE_DENOMINATORS: list[PyFelt] = [ - Fr(0x00000000000000000000000000000000000000000000000000000000000002D0), - Fr(0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593EFFFFF89), - Fr(0x0000000000000000000000000000000000000000000000000000000000000030), - Fr(0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593EFFFFFDD), - Fr(0x0000000000000000000000000000000000000000000000000000000000000030), - Fr(0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593EFFFFF89), - Fr(0x00000000000000000000000000000000000000000000000000000000000002D0), - ] - BARYCENTRIC_DOMAIN: list[PyFelt] = [ - Fr(0x00), - Fr(0x01), - Fr(0x02), - Fr(0x03), - Fr(0x04), - Fr(0x05), - Fr(0x06), - ] - # To compute the next target sum, we evaluate the given univariate at a point u (challenge). - # Performing Barycentric evaluations - # Compute B(x) - numeratorValue = Fr(1) - for i in range(BATCHED_RELATION_PARTIAL_LENGTH): - numeratorValue = numeratorValue * (roundChallenge - Fr(i)) - # Calculate domain size N of inverses -- TODO: montgomery's trick - denominatorInverses: list[PyFelt] = (BATCHED_RELATION_PARTIAL_LENGTH) * [Fr(0)] - for i in range(BATCHED_RELATION_PARTIAL_LENGTH): - inv = BARYCENTRIC_LAGRANGE_DENOMINATORS[i] - inv = inv * (roundChallenge - BARYCENTRIC_DOMAIN[i]) - inv = Fr_invert(inv) - denominatorInverses[i] = inv - targetSum = Fr(0) - for i in range(BATCHED_RELATION_PARTIAL_LENGTH): - term = roundUnivariates[i] - term = term * denominatorInverses[i] - targetSum = targetSum + term - # Scale the sum by the value of B(x) - targetSum = targetSum * numeratorValue - return targetSum - - -# Univariate evaluation of the monomial ((1-X_l) + X_l.B_l) at the challenge point X_l=u_l -def partiallyEvaluatePOW( - tp: Transcript, currentEvaluation: PyFelt, roundChallenge: PyFelt, rnd: int -) -> PyFelt: - univariateEval = Fr(1) + (roundChallenge * (tp.gateChallenges[rnd] - 1)) - newEvaluation = currentEvaluation * univariateEval - return newEvaluation - - -# Calculate the contributions of each relation to the expected value of the full honk relation -# -# For each relation, we use the purported values ( the ones provided by the prover ) of the multivariates to -# calculate a contribution to the purported value of the full Honk relation. -# These are stored in the evaluations part of the proof object. -# We add these together, with the appropiate scaling factor ( the alphas calculated in challenges ) -# This value is checked against the final value of the target total sum - et voila! -def accumulateRelationEvaluations( - proof: HonkProof, tp: Transcript, powPartialEval: PyFelt -) -> PyFelt: - purportedEvaluations = proof.sumcheckEvaluations - evaluations: list[PyFelt] = (NUMBER_OF_SUBRELATIONS) * [Fr(0)] - # Accumulate all 6 custom gates - each with varying number of subrelations - # TODO: annotate how many subrealtions each has - accumulateArithmeticRelation(purportedEvaluations, evaluations, powPartialEval) - accumulatePermutationRelation(purportedEvaluations, tp, evaluations, powPartialEval) - accumulateLookupRelation(purportedEvaluations, tp, evaluations, powPartialEval) - accumulateGenPermRelation(purportedEvaluations, evaluations, powPartialEval) - accumulateEllipticRelation(purportedEvaluations, evaluations, powPartialEval) - accumulateAuxillaryRelation(purportedEvaluations, tp, evaluations, powPartialEval) - # Apply alpha challenges to challenge evaluations - # Returns grand honk realtion evaluation - accumulator = scaleAndBatchSubrelations(evaluations, tp.alphas) - return accumulator - - -# WIRE -# -# Wire is an aesthetic helper function that is used to index by enum into proof.sumcheckEvaluations, it avoids -# the relation checking code being cluttered with uint256 type casting, which is often a different colour in code -# editors, and thus is noisy. -def wire(p: list[PyFelt], wire: WIRE) -> PyFelt: - return p[wire.value] - - -# Ultra Arithmetic Relation -def accumulateArithmeticRelation( - p: list[PyFelt], evals: list[PyFelt], powPartialEval: PyFelt -): - # Relation 0 - q_arith = wire(p, WIRE.Q_ARITH) - neg_half = Fr(0) - Fr_invert(Fr(2)) - accum = ( - (q_arith - 3) - * (wire(p, WIRE.Q_M) * wire(p, WIRE.W_R) * wire(p, WIRE.W_L)) - * neg_half - ) - accum = ( - accum - + (wire(p, WIRE.Q_L) * wire(p, WIRE.W_L)) - + (wire(p, WIRE.Q_R) * wire(p, WIRE.W_R)) - + (wire(p, WIRE.Q_O) * wire(p, WIRE.W_O)) - + (wire(p, WIRE.Q_4) * wire(p, WIRE.W_4)) - + wire(p, WIRE.Q_C) - ) - accum = accum + (q_arith - 1) * wire(p, WIRE.W_4_SHIFT) - accum = accum * q_arith - accum = accum * powPartialEval - evals[0] = accum - # Relation 1 - accum = ( - wire(p, WIRE.W_L) - + wire(p, WIRE.W_4) - - wire(p, WIRE.W_L_SHIFT) - + wire(p, WIRE.Q_M) - ) - accum = accum * (q_arith - 2) - accum = accum * (q_arith - 1) - accum = accum * q_arith - accum = accum * powPartialEval - evals[1] = accum - - -def accumulatePermutationRelation( - p: list[PyFelt], tp: Transcript, evals: list[PyFelt], domainSep: PyFelt -): - num = wire(p, WIRE.W_L) + wire(p, WIRE.ID_1) * tp.beta + tp.gamma - num = num * (wire(p, WIRE.W_R) + wire(p, WIRE.ID_2) * tp.beta + tp.gamma) - num = num * (wire(p, WIRE.W_O) + wire(p, WIRE.ID_3) * tp.beta + tp.gamma) - num = num * (wire(p, WIRE.W_4) + wire(p, WIRE.ID_4) * tp.beta + tp.gamma) - grand_product_numerator = num - den = wire(p, WIRE.W_L) + wire(p, WIRE.SIGMA_1) * tp.beta + tp.gamma - den = den * (wire(p, WIRE.W_R) + wire(p, WIRE.SIGMA_2) * tp.beta + tp.gamma) - den = den * (wire(p, WIRE.W_O) + wire(p, WIRE.SIGMA_3) * tp.beta + tp.gamma) - den = den * (wire(p, WIRE.W_4) + wire(p, WIRE.SIGMA_4) * tp.beta + tp.gamma) - grand_product_denominator = den - # Contribution 2 - acc = ( - wire(p, WIRE.Z_PERM) + wire(p, WIRE.LAGRANGE_FIRST) - ) * grand_product_numerator - acc = acc - ( - ( - wire(p, WIRE.Z_PERM_SHIFT) - + (wire(p, WIRE.LAGRANGE_LAST) * tp.publicInputsDelta) - ) - * grand_product_denominator - ) - acc = acc * domainSep - evals[2] = acc - # Contribution 3 - acc = (wire(p, WIRE.LAGRANGE_LAST) * wire(p, WIRE.Z_PERM_SHIFT)) * domainSep - evals[3] = acc - - -# Lookup parameters have been yoinked into memory to avoid stack too deep -@dataclass(slots=True) -class LookupParams: - eta_sqr: PyFelt - eta_cube: PyFelt - one_plus_beta: PyFelt - gamma_by_one_plus_beta: PyFelt - wire_accum: PyFelt - table_accum: PyFelt - table_accum_shift: PyFelt - - -def accumulateLookupRelation( - p: list[PyFelt], tp: Transcript, evals: list[PyFelt], domainSep: PyFelt -): - lp = LookupParams( - eta_sqr=Fr(0), - eta_cube=Fr(0), - one_plus_beta=Fr(0), - gamma_by_one_plus_beta=Fr(0), - wire_accum=Fr(0), - table_accum=Fr(0), - table_accum_shift=Fr(0), - ) - # TODO: note, eta square and eta cubed domain seperators will be replaced with further challenges in the future to reduce the - # algebraic degree of the lookup relations - lp.eta_sqr = tp.eta * tp.eta - lp.eta_cube = lp.eta_sqr * tp.eta - lp.one_plus_beta = tp.beta + 1 - lp.gamma_by_one_plus_beta = tp.gamma * lp.one_plus_beta - # (wire(p,WIRE.W_L)] + q_2*wire(p,WIRE.W_1_SHIFT)]) + η(wire(p,WIRE.W_R)] + q_m*wire(p,WIRE.W_2_SHIFT)]) + η²(wire(p,WIRE.W_O)] + q_c*wire(p,WIRE.W_3_SHIFT)]) + η³q_index. - # deg 2 or 4 - wire_accum = wire(p, WIRE.W_L) + wire(p, WIRE.Q_R) * wire(p, WIRE.W_L_SHIFT) - wire_accum = ( - wire_accum - + (wire(p, WIRE.W_R) + wire(p, WIRE.Q_M) * wire(p, WIRE.W_R_SHIFT)) * tp.eta - ) - wire_accum = ( - wire_accum - + (wire(p, WIRE.W_O) + wire(p, WIRE.Q_C) * wire(p, WIRE.W_O_SHIFT)) * lp.eta_sqr - ) - wire_accum = wire_accum + wire(p, WIRE.Q_O) * lp.eta_cube - lp.wire_accum = wire_accum - # t_1 + ηt_2 + η²t_3 + η³t_4 - # deg 1 or 4 - table_accum = wire(p, WIRE.TABLE_1) + wire(p, WIRE.TABLE_2) * tp.eta - table_accum = table_accum + wire(p, WIRE.TABLE_3) * lp.eta_sqr - table_accum = table_accum + wire(p, WIRE.TABLE_4) * lp.eta_cube - lp.table_accum = table_accum - # t_1_shift + ηt_2_shift + η²t_3_shift + η³t_4_shift - # deg 4 - lp.table_accum_shift = ( - wire(p, WIRE.TABLE_1_SHIFT) - + wire(p, WIRE.TABLE_2_SHIFT) * tp.eta - + wire(p, WIRE.TABLE_3_SHIFT) * lp.eta_sqr - + wire(p, WIRE.TABLE_4_SHIFT) * lp.eta_cube - ) - acc = wire(p, WIRE.Q_LOOKUP) * lp.wire_accum + tp.gamma - acc = acc * ( - lp.table_accum + lp.table_accum_shift * tp.beta + lp.gamma_by_one_plus_beta - ) - acc = acc * lp.one_plus_beta - grand_product_numerator = acc - acc = ( - wire(p, WIRE.SORTED_ACCUM) - + wire(p, WIRE.SORTED_ACCUM_SHIFT) * tp.beta - + lp.gamma_by_one_plus_beta - ) - grand_product_denominator = acc - # Contribution 4 - acc = grand_product_numerator * ( - wire(p, WIRE.Z_LOOKUP) + wire(p, WIRE.LAGRANGE_FIRST) - ) - grand_product_denominator * ( - wire(p, WIRE.Z_LOOKUP_SHIFT) - + wire(p, WIRE.LAGRANGE_LAST) * tp.lookupGrandProductDelta - ) - acc = acc * domainSep - evals[4] = acc - # Contribution 5 - acc = wire(p, WIRE.LAGRANGE_LAST) * wire(p, WIRE.Z_LOOKUP_SHIFT) * domainSep - evals[5] = acc - - -def accumulateGenPermRelation(p: list[PyFelt], evals: list[PyFelt], domainSep: PyFelt): - minus_one = Fr(0) - 1 - minus_two = Fr(0) - 2 - minus_three = Fr(0) - 3 - # Compute wire differences - delta_1 = wire(p, WIRE.W_R) - wire(p, WIRE.W_L) - delta_2 = wire(p, WIRE.W_O) - wire(p, WIRE.W_R) - delta_3 = wire(p, WIRE.W_4) - wire(p, WIRE.W_O) - delta_4 = wire(p, WIRE.W_L_SHIFT) - wire(p, WIRE.W_4) - # Contribution 6 - acc = delta_1 - acc = acc * (delta_1 + minus_one) - acc = acc * (delta_1 + minus_two) - acc = acc * (delta_1 + minus_three) - acc = acc * wire(p, WIRE.Q_SORT) - acc = acc * domainSep - evals[6] = acc - # Contribution 7 - acc = delta_2 - acc = acc * (delta_2 + minus_one) - acc = acc * (delta_2 + minus_two) - acc = acc * (delta_2 + minus_three) - acc = acc * wire(p, WIRE.Q_SORT) - acc = acc * domainSep - evals[7] = acc - # Contribution 8 - acc = delta_3 - acc = acc * (delta_3 + minus_one) - acc = acc * (delta_3 + minus_two) - acc = acc * (delta_3 + minus_three) - acc = acc * wire(p, WIRE.Q_SORT) - acc = acc * domainSep - evals[8] = acc - # Contribution 9 - acc = delta_4 - acc = acc * (delta_4 + minus_one) - acc = acc * (delta_4 + minus_two) - acc = acc * (delta_4 + minus_three) - acc = acc * wire(p, WIRE.Q_SORT) - acc = acc * domainSep - evals[9] = acc - - -@dataclass(slots=True) -class EllipticParams: - # Points - x_1: PyFelt - y_1: PyFelt - x_2: PyFelt - y_2: PyFelt - y_3: PyFelt - x_3: PyFelt - # push accumulators into memory - x_double_identity: PyFelt - - -def accumulateEllipticRelation(p: list[PyFelt], evals: list[PyFelt], domainSep: PyFelt): - ep = EllipticParams( - x_1=Fr(0), - y_1=Fr(0), - x_2=Fr(0), - y_2=Fr(0), - y_3=Fr(0), - x_3=Fr(0), - x_double_identity=Fr(0), - ) - ep.x_1 = wire(p, WIRE.W_R) - ep.y_1 = wire(p, WIRE.W_O) - ep.x_2 = wire(p, WIRE.W_L_SHIFT) - ep.y_2 = wire(p, WIRE.W_4_SHIFT) - ep.y_3 = wire(p, WIRE.W_O_SHIFT) - ep.x_3 = wire(p, WIRE.W_R_SHIFT) - q_sign = wire(p, WIRE.Q_L) - q_is_double = wire(p, WIRE.Q_M) - # Contribution 10 point addition, x-coordinate check - # q_elliptic * (x3 + x2 + x1)(x2 - x1)(x2 - x1) - y2^2 - y1^2 + 2(y2y1)*q_sign = 0 - x_diff = ep.x_2 - ep.x_1 - y1_sqr = ep.y_1 * ep.y_1 - # Move to top - partialEval = domainSep - y2_sqr = ep.y_2 * ep.y_2 - y1y2 = ep.y_1 * ep.y_2 * q_sign - x_add_identity = ep.x_3 + ep.x_2 + ep.x_1 - x_add_identity = x_add_identity * x_diff * x_diff - x_add_identity = x_add_identity - y2_sqr - y1_sqr + y1y2 + y1y2 - evals[10] = ( - x_add_identity * partialEval * wire(p, WIRE.Q_ELLIPTIC) * (Fr(1) - q_is_double) - ) - # Contribution 11 point addition, x-coordinate check - # q_elliptic * (q_sign * y1 + y3)(x2 - x1) + (x3 - x1)(y2 - q_sign * y1) = 0 - y1_plus_y3 = ep.y_1 + ep.y_3 - y_diff = ep.y_2 * q_sign - ep.y_1 - y_add_identity = y1_plus_y3 * x_diff + (ep.x_3 - ep.x_1) * y_diff - evals[11] = ( - y_add_identity * domainSep * wire(p, WIRE.Q_ELLIPTIC) * (Fr(1) - q_is_double) - ) - # Contribution 10 point doubling, x-coordinate check - # (x3 + x1 + x1) (4y1*y1) - 9 * x1 * x1 * x1 * x1 = 0 - # N.B. we're using the equivalence x1*x1*x1 === y1*y1 - curve_b to reduce degree by 1 - x_pow_4 = (y1_sqr + GRUMPKIN_CURVE_B_PARAMETER_NEGATED) * ep.x_1 - y1_sqr_mul_4 = y1_sqr + y1_sqr - y1_sqr_mul_4 = y1_sqr_mul_4 + y1_sqr_mul_4 - x1_pow_4_mul_9 = x_pow_4 * 9 - # NOTE: pushed into memory (stack >:'( ) - ep.x_double_identity = (ep.x_3 + ep.x_1 + ep.x_1) * y1_sqr_mul_4 - x1_pow_4_mul_9 - acc = ep.x_double_identity * domainSep * wire(p, WIRE.Q_ELLIPTIC) * q_is_double - evals[10] = evals[10] + acc - # Contribution 11 point doubling, y-coordinate check - # (y1 + y1) (2y1) - (3 * x1 * x1)(x1 - x3) = 0 - x1_sqr_mul_3 = (ep.x_1 + ep.x_1 + ep.x_1) * ep.x_1 - y_double_identity = x1_sqr_mul_3 * (ep.x_1 - ep.x_3) - (ep.y_1 + ep.y_1) * ( - ep.y_1 + ep.y_3 - ) - evals[11] = ( - evals[11] - + y_double_identity * domainSep * wire(p, WIRE.Q_ELLIPTIC) * q_is_double - ) + memory_identity = ROM_consistency_check_identity + memory_identity = self.add( + memory_identity, + self.product([RAM_timestamp_check_identity, p[Wire.Q_4], p[Wire.Q_L]]), + ) + memory_identity = self.add( + memory_identity, + self.product([memory_record_check, p[Wire.Q_M], p[Wire.Q_L]]), + ) + memory_identity = self.add(memory_identity, RAM_consistency_check_identity) + auxiliary_identity = self.sum( + [memory_identity, non_native_field_identity, limb_accumulator_identity] + ) -# Constants for the auxiliary relation -LIMB_SIZE: PyFelt = Fr(1 << 68) -SUBLIMB_SHIFT: PyFelt = Fr(1 << 14) -MINUS_ONE: PyFelt = Fr(P - 1) - - -# Parameters used within the Auxiliary Relation -# A struct is used to work around stack too deep. This relation has alot of variables -@dataclass(slots=True) -class AuxParams: - limb_subproduct: PyFelt - non_native_field_gate_1: PyFelt - non_native_field_gate_2: PyFelt - non_native_field_gate_3: PyFelt - limb_accumulator_1: PyFelt - limb_accumulator_2: PyFelt - memory_record_check: PyFelt - partial_record_check: PyFelt - next_gate_access_type: PyFelt - record_delta: PyFelt - index_delta: PyFelt - adjacent_values_match_if_adjacent_indices_match: PyFelt - adjacent_values_match_if_adjacent_indices_match_and_next_access_is_a_read_operation: ( - PyFelt - ) - access_check: PyFelt - next_gate_access_type_is_boolean: PyFelt - ROM_consistency_check_identity: PyFelt - RAM_consistency_check_identity: PyFelt - timestamp_delta: PyFelt - RAM_timestamp_check_identity: PyFelt - memory_identity: PyFelt - index_is_monotonically_increasing: PyFelt - auxiliary_identity: PyFelt - - -def accumulateAuxillaryRelation( - p: list[PyFelt], tp: Transcript, evals: list[PyFelt], domainSep: PyFelt -): - ap = AuxParams( - limb_subproduct=Fr(0), - non_native_field_gate_1=Fr(0), - non_native_field_gate_2=Fr(0), - non_native_field_gate_3=Fr(0), - limb_accumulator_1=Fr(0), - limb_accumulator_2=Fr(0), - memory_record_check=Fr(0), - partial_record_check=Fr(0), - next_gate_access_type=Fr(0), - record_delta=Fr(0), - index_delta=Fr(0), - adjacent_values_match_if_adjacent_indices_match=Fr(0), - adjacent_values_match_if_adjacent_indices_match_and_next_access_is_a_read_operation=Fr( - 0 - ), - access_check=Fr(0), - next_gate_access_type_is_boolean=Fr(0), - ROM_consistency_check_identity=Fr(0), - RAM_consistency_check_identity=Fr(0), - timestamp_delta=Fr(0), - RAM_timestamp_check_identity=Fr(0), - memory_identity=Fr(0), - index_is_monotonically_increasing=Fr(0), - auxiliary_identity=Fr(0), - ) - # Contribution 12 - # Non native field arithmetic gate 2 - # deg 4 - # _ _ - # / _ _ _ 14 \ - # q_2 . q_4 | (w_1 . w_2) + (w_1 . w_2) + (w_1 . w_4 + w_2 . w_3 - w_3) . 2 - w_3 - w_4 | - # \_ _/ - ap.limb_subproduct = wire(p, WIRE.W_L) * wire(p, WIRE.W_R_SHIFT) + wire( - p, WIRE.W_L_SHIFT - ) * wire(p, WIRE.W_R) - ap.non_native_field_gate_2 = ( - wire(p, WIRE.W_L) * wire(p, WIRE.W_4) - + wire(p, WIRE.W_R) * wire(p, WIRE.W_O) - - wire(p, WIRE.W_O_SHIFT) - ) - ap.non_native_field_gate_2 = ap.non_native_field_gate_2 * LIMB_SIZE - ap.non_native_field_gate_2 = ap.non_native_field_gate_2 - wire(p, WIRE.W_4_SHIFT) - ap.non_native_field_gate_2 = ap.non_native_field_gate_2 + ap.limb_subproduct - ap.non_native_field_gate_2 = ap.non_native_field_gate_2 * wire(p, WIRE.Q_4) - ap.limb_subproduct = ap.limb_subproduct * LIMB_SIZE - ap.limb_subproduct = ap.limb_subproduct + ( - wire(p, WIRE.W_L_SHIFT) * wire(p, WIRE.W_R_SHIFT) - ) - ap.non_native_field_gate_1 = ap.limb_subproduct - ap.non_native_field_gate_1 = ap.non_native_field_gate_1 - ( - wire(p, WIRE.W_O) + wire(p, WIRE.W_4) - ) - ap.non_native_field_gate_1 = ap.non_native_field_gate_1 * wire(p, WIRE.Q_O) - ap.non_native_field_gate_3 = ap.limb_subproduct - ap.non_native_field_gate_3 = ap.non_native_field_gate_3 + wire(p, WIRE.W_4) - ap.non_native_field_gate_3 = ap.non_native_field_gate_3 - ( - wire(p, WIRE.W_O_SHIFT) + wire(p, WIRE.W_4_SHIFT) - ) - ap.non_native_field_gate_3 = ap.non_native_field_gate_3 * wire(p, WIRE.Q_M) - non_native_field_identity = ( - ap.non_native_field_gate_1 - + ap.non_native_field_gate_2 - + ap.non_native_field_gate_3 - ) - non_native_field_identity = non_native_field_identity * wire(p, WIRE.Q_R) - # ((((w2' * 2^14 + w1') * 2^14 + w3) * 2^14 + w2) * 2^14 + w1 - w4) * qm - # deg 2 - ap.limb_accumulator_1 = wire(p, WIRE.W_R_SHIFT) * SUBLIMB_SHIFT - ap.limb_accumulator_1 = ap.limb_accumulator_1 + wire(p, WIRE.W_L_SHIFT) - ap.limb_accumulator_1 = ap.limb_accumulator_1 * SUBLIMB_SHIFT - ap.limb_accumulator_1 = ap.limb_accumulator_1 + wire(p, WIRE.W_O) - ap.limb_accumulator_1 = ap.limb_accumulator_1 * SUBLIMB_SHIFT - ap.limb_accumulator_1 = ap.limb_accumulator_1 + wire(p, WIRE.W_R) - ap.limb_accumulator_1 = ap.limb_accumulator_1 * SUBLIMB_SHIFT - ap.limb_accumulator_1 = ap.limb_accumulator_1 + wire(p, WIRE.W_L) - ap.limb_accumulator_1 = ap.limb_accumulator_1 - wire(p, WIRE.W_4) - ap.limb_accumulator_1 = ap.limb_accumulator_1 * wire(p, WIRE.Q_4) - # ((((w3' * 2^14 + w2') * 2^14 + w1') * 2^14 + w4) * 2^14 + w3 - w4') * qm - # deg 2 - ap.limb_accumulator_2 = wire(p, WIRE.W_O_SHIFT) * SUBLIMB_SHIFT - ap.limb_accumulator_2 = ap.limb_accumulator_2 + wire(p, WIRE.W_R_SHIFT) - ap.limb_accumulator_2 = ap.limb_accumulator_2 * SUBLIMB_SHIFT - ap.limb_accumulator_2 = ap.limb_accumulator_2 + wire(p, WIRE.W_L_SHIFT) - ap.limb_accumulator_2 = ap.limb_accumulator_2 * SUBLIMB_SHIFT - ap.limb_accumulator_2 = ap.limb_accumulator_2 + wire(p, WIRE.W_4) - ap.limb_accumulator_2 = ap.limb_accumulator_2 * SUBLIMB_SHIFT - ap.limb_accumulator_2 = ap.limb_accumulator_2 + wire(p, WIRE.W_O) - ap.limb_accumulator_2 = ap.limb_accumulator_2 - wire(p, WIRE.W_4_SHIFT) - ap.limb_accumulator_2 = ap.limb_accumulator_2 * wire(p, WIRE.Q_M) - limb_accumulator_identity = ap.limb_accumulator_1 + ap.limb_accumulator_2 - limb_accumulator_identity = limb_accumulator_identity * wire(p, WIRE.Q_O) # deg 3 - # MEMORY - # - # A RAM memory record contains a tuple of the following fields: - # * i: `index` of memory cell being accessed - # * t: `timestamp` of memory cell being accessed (used for RAM, set to 0 for ROM) - # * v: `value` of memory cell being accessed - # * a: `access` type of record. read: 0 = read, 1 = write - # * r: `record` of memory cell. record = access + index * eta + timestamp * eta^2 + value * eta^3 - # - # A ROM memory record contains a tuple of the following fields: - # * i: `index` of memory cell being accessed - # * v: `value1` of memory cell being accessed (ROM tables can store up to 2 values per index) - # * v2:`value2` of memory cell being accessed (ROM tables can store up to 2 values per index) - # * r: `record` of memory cell. record = index * eta + value2 * eta^2 + value1 * eta^3 - # - # When performing a read/write access, the values of i, t, v, v2, a, r are stored in the following wires + - # selectors, depending on whether the gate is a RAM read/write or a ROM read - # - # | gate type | i | v2/t | v | a | r | - # | --------- | -- | ----- | -- | -- | -- | - # | ROM | w1 | w2 | w3 | -- | w4 | - # | RAM | w1 | w2 | w3 | qc | w4 | - # - # (for accesses where `index` is a circuit constant, it is assumed the circuit will apply a copy constraint on - # `w2` to fix its value) - # - # Memory Record Check - # Partial degree: 1 - # Total degree: 4 - # - # A ROM/ROM access gate can be evaluated with the identity: - # - # qc + w1 \eta + w2 \eta^2 + w3 \eta^3 - w4 = 0 - # - # For ROM gates, qc = 0 - ap.memory_record_check = wire(p, WIRE.W_O) * tp.eta - ap.memory_record_check = ap.memory_record_check + wire(p, WIRE.W_R) - ap.memory_record_check = ap.memory_record_check * tp.eta - ap.memory_record_check = ap.memory_record_check + wire(p, WIRE.W_L) - ap.memory_record_check = ap.memory_record_check * tp.eta - ap.memory_record_check = ap.memory_record_check + wire(p, WIRE.Q_C) - ap.partial_record_check = ( - ap.memory_record_check - ) # used in RAM consistency check; deg 1 or 4 - ap.memory_record_check = ap.memory_record_check - wire(p, WIRE.W_4) - # Contribution 13 & 14 - # ROM Consistency Check - # Partial degree: 1 - # Total degree: 4 - # - # For every ROM read, a set equivalence check is applied between the record witnesses, and a second set of - # records that are sorted. - # - # We apply the following checks for the sorted records: - # - # 1. w1, w2, w3 correctly map to 'index', 'v1, 'v2' for a given record value at w4 - # 2. index values for adjacent records are monotonically increasing - # 3. if, at gate i, index_i == index_{i + 1}, then value1_i == value1_{i + 1} and value2_i == value2_{i + 1} - ap.index_delta = wire(p, WIRE.W_L_SHIFT) - wire(p, WIRE.W_L) - ap.record_delta = wire(p, WIRE.W_4_SHIFT) - wire(p, WIRE.W_4) - ap.index_is_monotonically_increasing = ( - ap.index_delta * ap.index_delta - ap.index_delta - ) # deg 2 - ap.adjacent_values_match_if_adjacent_indices_match = ( - ap.index_delta * MINUS_ONE + 1 - ) * ap.record_delta # deg 2 - evals[13] = ( - ap.adjacent_values_match_if_adjacent_indices_match - * (wire(p, WIRE.Q_L) * wire(p, WIRE.Q_R)) - * (wire(p, WIRE.Q_AUX) * domainSep) - ) # deg 5 - evals[14] = ( - ap.index_is_monotonically_increasing - * (wire(p, WIRE.Q_L) * wire(p, WIRE.Q_R)) - * (wire(p, WIRE.Q_AUX) * domainSep) - ) # deg 5 - ap.ROM_consistency_check_identity = ap.memory_record_check * ( - wire(p, WIRE.Q_L) * wire(p, WIRE.Q_R) - ) # deg 3 or 7 - # Contributions 15,16,17 - # RAM Consistency Check - # - # The 'access' type of the record is extracted with the expression `w_4 - ap.partial_record_check` - # (i.e. for an honest Prover `w1 * eta + w2 * eta^2 + w3 * eta^3 - w4 = access`. - # This is validated by requiring `access` to be boolean - # - # For two adjacent entries in the sorted list if _both_ - # A) index values match - # B) adjacent access value is 0 (i.e. next gate is a READ) - # then - # C) both values must match. - # The gate boolean check is - # (A && B) => C === !(A && B) || C === !A || !B || C - # - # N.B. it is the responsibility of the circuit writer to ensure that every RAM cell is initialized - # with a WRITE operation. - access_type = ( - wire(p, WIRE.W_4) - ap.partial_record_check - ) # will be 0 or 1 for honest Prover; deg 1 or 4 - ap.access_check = ( - access_type * access_type - access_type - ) # check value is 0 or 1; deg 2 or 8 - # TODO(https://github.com/AztecProtocol/barretenberg/issues/757): If we sorted in - # reverse order we could re-use `ap.partial_record_check` 1 - ((w3' * eta + w2') * eta + w1') * eta - # deg 1 or 4 - ap.next_gate_access_type = wire(p, WIRE.W_O_SHIFT) * tp.eta - ap.next_gate_access_type = ap.next_gate_access_type + wire(p, WIRE.W_R_SHIFT) - ap.next_gate_access_type = ap.next_gate_access_type * tp.eta - ap.next_gate_access_type = ap.next_gate_access_type + wire(p, WIRE.W_L_SHIFT) - ap.next_gate_access_type = ap.next_gate_access_type * tp.eta - ap.next_gate_access_type = wire(p, WIRE.W_4_SHIFT) - ap.next_gate_access_type - value_delta = wire(p, WIRE.W_O_SHIFT) - wire(p, WIRE.W_O) - ap.adjacent_values_match_if_adjacent_indices_match_and_next_access_is_a_read_operation = ( - (ap.index_delta * MINUS_ONE + 1) - * value_delta - * (ap.next_gate_access_type * MINUS_ONE + 1) - ) # deg 3 or 6 - # We can't apply the RAM consistency check identity on the final entry in the sorted list (the wires in the - # next gate would make the identity fail). We need to validate that its 'access type' bool is correct. Can't - # do with an arithmetic gate because of the `eta` factors. We need to check that the *next* gate's access - # type is correct, to cover this edge case - # deg 2 or 4 - ap.next_gate_access_type_is_boolean = ( - ap.next_gate_access_type * ap.next_gate_access_type - ap.next_gate_access_type - ) - # Putting it all together... - evals[15] = ( - ap.adjacent_values_match_if_adjacent_indices_match_and_next_access_is_a_read_operation - * wire(p, WIRE.Q_ARITH) - * (wire(p, WIRE.Q_AUX) * domainSep) - ) # deg 5 or 8 - evals[16] = ( - ap.index_is_monotonically_increasing - * wire(p, WIRE.Q_ARITH) - * (wire(p, WIRE.Q_AUX) * domainSep) - ) # deg 4 - evals[17] = ( - ap.next_gate_access_type_is_boolean - * wire(p, WIRE.Q_ARITH) - * (wire(p, WIRE.Q_AUX) * domainSep) - ) # deg 4 or 6 - ap.RAM_consistency_check_identity = ap.access_check * wire( - p, WIRE.Q_ARITH - ) # deg 3 or 9 - # RAM Timestamp Consistency Check - # - # | w1 | w2 | w3 | w4 | - # | index | timestamp | timestamp_check | -- | - # - # Let delta_index = index_{i + 1} - index_{i} - # - # Iff delta_index == 0, timestamp_check = timestamp_{i + 1} - timestamp_i - # Else timestamp_check = 0 - ap.timestamp_delta = wire(p, WIRE.W_R_SHIFT) - wire(p, WIRE.W_R) - ap.RAM_timestamp_check_identity = ( - ap.index_delta * MINUS_ONE + 1 - ) * ap.timestamp_delta - wire( - p, WIRE.W_O - ) # deg 3 - # Complete Contribution 12 - # The complete RAM/ROM memory identity - # Partial degree: - ap.memory_identity = ap.ROM_consistency_check_identity # deg 3 or 6 - ap.memory_identity = ap.memory_identity + ap.RAM_timestamp_check_identity * ( - wire(p, WIRE.Q_4) * wire(p, WIRE.Q_L) - ) # deg 4 - ap.memory_identity = ap.memory_identity + ap.memory_record_check * ( - wire(p, WIRE.Q_M) * wire(p, WIRE.Q_L) - ) # deg 3 or 6 - ap.memory_identity = ( - ap.memory_identity + ap.RAM_consistency_check_identity - ) # deg 3 or 9 - # (deg 3 or 9) + (deg 4) + (deg 3) - ap.auxiliary_identity = ( - ap.memory_identity + non_native_field_identity + limb_accumulator_identity - ) - ap.auxiliary_identity = ap.auxiliary_identity * ( - wire(p, WIRE.Q_AUX) * domainSep - ) # deg 4 or 10 - evals[12] = ap.auxiliary_identity - - -def scaleAndBatchSubrelations( - evaluations: list[PyFelt], subrelationChallenges: list[PyFelt] -) -> PyFelt: - accumulator = evaluations[0] - for i in range(1, NUMBER_OF_SUBRELATIONS): - accumulator = accumulator + evaluations[i] * subrelationChallenges[i - 1] - return accumulator - - -def verifyZeroMorph(proof: HonkProof, vk: HonkVerificationKey, tp: Transcript) -> bool: - # Construct batched evaluation v = sum_{i=0}^{m-1}\rho^i*f_i(u) + sum_{i=0}^{l-1}\rho^{m+i}*h_i(u) - batchedEval = Fr(0) - batchedScalar = Fr(1) - # We linearly combine all evaluations (unshifted first, then shifted) - # TODO: Odd ordering is a workaround work out why cpp has odd ordering over entities - batchedEval = batchedEval + proof.sumcheckEvaluations[5] * batchedScalar - batchedScalar = batchedScalar * tp.rho - for i in range(5): - batchedEval = batchedEval + proof.sumcheckEvaluations[i] * batchedScalar - batchedScalar = batchedScalar * tp.rho - for i in range(6, NUMBER_OF_ENTITIES): - batchedEval = batchedEval + proof.sumcheckEvaluations[i] * batchedScalar - batchedScalar = batchedScalar * tp.rho - # Get k commitments - c_zeta = computeCZeta(proof, tp) - c_zeta_x = computeCZetaX(proof, vk, tp, batchedEval) - c_zeta_Z = ecAdd(c_zeta, ecMul(c_zeta_x, tp.zmZ)) - # KZG pairing accumulator - # TODO: concerned that this is zero - it is multiplied by a point later on - evaluation = Fr(0) - verified = zkgReduceVerify(proof, tp, evaluation, c_zeta_Z) - return verified - - -# Compute commitment to lifted degree quotient identity -def computeCZeta(proof: HonkProof, tp: Transcript) -> G1Point: - scalars: list[PyFelt] = (LOG_N + 1) * [Fr(0)] - commitments: list[G1ProofPoint] = (LOG_N + 1) * [ - G1ProofPoint(x_0=0, x_1=0, y_0=0, y_1=0) - ] - # Initial contribution - commitments[0] = proof.zmCq - scalars[0] = Fr(1) - # TODO: optimize pow operations here ? batch mulable - for k in range(LOG_N): - degree = Fr((1 << k) - 1) - scalar = tp.zmY**k - scalar = scalar * tp.zmX ** ((1 << LOG_N) - degree.value - 1) - scalar = scalar * MINUS_ONE - scalars[k + 1] = scalar - commitments[k + 1] = proof.zmCqs[k] - # Convert all commitments for batch mul - comms = convertPoints(commitments) - return batchMul(comms, scalars) - - -@dataclass(slots=True) -class CZetaXParams: - phi_numerator: PyFelt - phi_n_x: PyFelt - rho_pow: PyFelt - phi_1: PyFelt - phi_2: PyFelt - x_pow_2k: PyFelt - x_pow_2kp1: PyFelt - - -def computeCZetaX( - proof: HonkProof, vk: HonkVerificationKey, tp: Transcript, batchedEval: PyFelt -) -> G1Point: - scalars: list[PyFelt] = (NUMBER_OF_ENTITIES + LOG_N + 1) * [Fr(0)] - commitments: list[G1Point] = (NUMBER_OF_ENTITIES + LOG_N + 1) * [G1Point(x=0, y=0)] - cp = CZetaXParams( - phi_numerator=Fr(0), - phi_n_x=Fr(0), - rho_pow=Fr(0), - phi_1=Fr(0), - phi_2=Fr(0), - x_pow_2k=Fr(0), - x_pow_2kp1=Fr(0), - ) - # Phi_n(x) = (x^N - 1) / (x - 1) - cp.phi_numerator = tp.zmX ** (1 << LOG_N) - 1 - cp.phi_n_x = cp.phi_numerator / (tp.zmX - 1) - # Add contribution: -v * x * \Phi_n(x) * [1]_1 - # Add base - scalars[0] = MINUS_ONE * batchedEval * tp.zmX * cp.phi_n_x - commitments[0] = G1Point(x=1, y=2) # One - # f - Add all unshifted commitments - # g - Add add to be shifted commitments - # f commitments are accumulated at (zm_x * r) - cp.rho_pow = Fr(1) - for i in range(1, 33): - scalars[i] = tp.zmX * cp.rho_pow - cp.rho_pow = cp.rho_pow * tp.rho - # g commitments are accumulated at r - for i in range(33, NUMBER_OF_ENTITIES + 1): - scalars[i] = cp.rho_pow - cp.rho_pow = cp.rho_pow * tp.rho - # TODO: dont accumulate these into the comms array, just accumulate directly - commitments[1] = vk.qm - commitments[2] = vk.qc - commitments[3] = vk.ql - commitments[4] = vk.qr - commitments[5] = vk.qo - commitments[6] = vk.q4 - commitments[7] = vk.qArith - commitments[8] = vk.qSort - commitments[9] = vk.qElliptic - commitments[10] = vk.qAux - commitments[11] = vk.qLookup - commitments[12] = vk.s1 - commitments[13] = vk.s2 - commitments[14] = vk.s3 - commitments[15] = vk.s4 - commitments[16] = vk.id1 - commitments[17] = vk.id2 - commitments[18] = vk.id3 - commitments[19] = vk.id4 - commitments[20] = vk.t1 - commitments[21] = vk.t2 - commitments[22] = vk.t3 - commitments[23] = vk.t4 - commitments[24] = vk.lagrangeFirst - commitments[25] = vk.lagrangeLast - # Accumulate proof points - commitments[26] = convertProofPoint(proof.w1) - commitments[27] = convertProofPoint(proof.w2) - commitments[28] = convertProofPoint(proof.w3) - commitments[29] = convertProofPoint(proof.w4) - commitments[30] = convertProofPoint(proof.sortedAccum) - commitments[31] = convertProofPoint(proof.zPerm) - commitments[32] = convertProofPoint(proof.zLookup) - # to be Shifted - commitments[33] = vk.t1 - commitments[34] = vk.t2 - commitments[35] = vk.t3 - commitments[36] = vk.t4 - commitments[37] = convertProofPoint(proof.w1) - commitments[38] = convertProofPoint(proof.w2) - commitments[39] = convertProofPoint(proof.w3) - commitments[40] = convertProofPoint(proof.w4) - commitments[41] = convertProofPoint(proof.sortedAccum) - commitments[42] = convertProofPoint(proof.zPerm) - commitments[43] = convertProofPoint(proof.zLookup) - # Add scalar contributions - # Add contributions: scalar * [q_k], k = 0,...,log_N, where - # scalar = -x * (x^{2^k} * \Phi_{n-k-1}(x^{2^{k+1}}) - u_k * \Phi_{n-k}(x^{2^k})) - cp.x_pow_2k = tp.zmX - cp.x_pow_2kp1 = tp.zmX * tp.zmX - for k in range(LOG_N): - cp.phi_1 = cp.phi_numerator / (cp.x_pow_2kp1 - 1) - cp.phi_2 = cp.phi_numerator / (cp.x_pow_2k - 1) - scalar = cp.x_pow_2k * cp.phi_1 - scalar = scalar - (tp.sumCheckUChallenges[k] * cp.phi_2) - scalar = scalar * tp.zmX - scalar = scalar * MINUS_ONE - scalars[NUMBER_OF_ENTITIES + 1 + k] = scalar - commitments[NUMBER_OF_ENTITIES + 1 + k] = convertProofPoint(proof.zmCqs[k]) - cp.x_pow_2k = cp.x_pow_2kp1 - cp.x_pow_2kp1 = cp.x_pow_2kp1 * cp.x_pow_2kp1 - return batchMul2(commitments, scalars) - - -# Scalar Mul and acumulate into total -def batchMul(base: list[G1Point], scalars: list[PyFelt]) -> G1Point: - result = ecMul(base[0], scalars[0]) - for i in range(1, LOG_N + 1): - result = ecAdd(result, ecMul(base[i], scalars[i])) - return result - - -# This implementation is the same as above with different constants -def batchMul2(base: list[G1Point], scalars: list[PyFelt]) -> G1Point: - result = ecMul(base[0], scalars[0]) - for i in range(1, NUMBER_OF_ENTITIES + LOG_N + 1): - result = ecAdd(result, ecMul(base[i], scalars[i])) - return result - - -def zkgReduceVerify( - proof: HonkProof, tp: Transcript, evaluation: PyFelt, commitment: G1Point -) -> bool: - quotient_commitment = convertProofPoint(proof.zmPi) - ONE = G1Point(x=1, y=2) - P0 = commitment - P0 = ecAdd(P0, ecMul(quotient_commitment, tp.zmX)) - evalAsPoint = ecMul(ONE, evaluation) - P0 = ecSub(P0, evalAsPoint) - P1 = ecNeg(quotient_commitment) - # Perform pairing check - return pairing(P0, P1) - - -def pairing(rhs: G1Point, lhs: G1Point) -> bool: - return bn256_pairing( - [ - (rhs.x, rhs.y), - (lhs.x, lhs.y), - ], - [ - # Fixed G1 point - ( - 0x198E9393920D483A7260BFB731FB5D25F1AA493335A9E71297E485B7AEF312C2, - 0x1800DEEF121F1E76426A00665E5C4479674322D4F75EDADD46DEBD5CD992F6ED, - 0x090689D0585FF075EC9E99AD690C3395BC4B313370B38EF355ACDADCD122975B, - 0x12C85EA5DB8C6DEB4AAB71808DCB408FE3D1E7690C43D37B4CE6CC0166FA7DAA, + auxiliary_identity = self.product( + [auxiliary_identity, p[Wire.Q_AUX], domain_separator] + ) + evaluations[12] = auxiliary_identity + + return evaluations + + def accumulate_poseidon_external_relation( + self, + purported_evaluations: list[ModuloCircuitElement], + evaluations: list[ModuloCircuitElement], + domain_separator: ModuloCircuitElement, + ) -> list[ModuloCircuitElement]: + + p = purported_evaluations + + s1 = self.add(p[Wire.W_L], p[Wire.Q_L]) + s2 = self.add(p[Wire.W_R], p[Wire.Q_R]) + s3 = self.add(p[Wire.W_O], p[Wire.Q_O]) + s4 = self.add(p[Wire.W_4], p[Wire.Q_4]) + + u1 = self.pow5(s1) + u2 = self.pow5(s2) + u3 = self.pow5(s3) + u4 = self.pow5(s4) + + t0 = self.add(u1, u2) + t1 = self.add(u3, u4) + t2 = self.add(self.add(u2, u2), t1) + t3 = self.add(self.add(u4, u4), t0) + + v4 = self.add(t1, t1) + v4 = self.add(self.add(v4, v4), t3) + + v2 = self.add(t0, t0) + v2 = self.add(self.add(v2, v2), t2) + + v1 = self.add(t3, v2) + v3 = self.add(t2, v4) + + q_pos_by_scaling = self.mul(p[Wire.Q_POSEIDON2_EXTERNAL], domain_separator) + + evaluations[18] = self.mul(q_pos_by_scaling, self.sub(v1, p[Wire.W_L_SHIFT])) + evaluations[19] = self.mul(q_pos_by_scaling, self.sub(v2, p[Wire.W_R_SHIFT])) + evaluations[20] = self.mul(q_pos_by_scaling, self.sub(v3, p[Wire.W_O_SHIFT])) + evaluations[21] = self.mul(q_pos_by_scaling, self.sub(v4, p[Wire.W_4_SHIFT])) + + return evaluations + + def pow5(self, x: ModuloCircuitElement) -> ModuloCircuitElement: + x2 = self.mul(x, x) + x4 = self.mul(x2, x2) + return self.mul(x4, x) + + def accumulate_poseidon_internal_relation( + self, + purported_evaluations: list[ModuloCircuitElement], + evaluations: list[ModuloCircuitElement], + domain_separator: ModuloCircuitElement, + ) -> list[ModuloCircuitElement]: + + p = purported_evaluations + INTERNAL_MATRIX_DIAGONAL = [ + self.set_or_get_constant( + 0x10DC6E9C006EA38B04B1E03B4BD9490C0D03F98929CA1D7FB56821FD19D3B6E7 ), - # G1 point from VK - ( - 0x260E01B251F6F1C7E7FF4E580791DEE8EA51D87A358E038B4EFE30FAC09383C1, - 0x0118C4D5B837BCC2BC89B5B398B5974E9F5944073B32078B7E231FEC938883B0, - 0x04FC6369F7110FE3D25156C1BB9A72859CF2A04641F99BA4EE413C80DA6A5FE4, - 0x22FEBDA3C0C0632A56475B4214E5615E11E6DD3F96E6CEA2854A87D4DACC5E55, + self.set_or_get_constant( + 0x0C28145B6A44DF3E0149B3D0A30B3BB599DF9756D4DD9B84A86B38CFB45A740B ), - ], - ) + self.set_or_get_constant( + 0x00544B8338791518B2C7645A50392798B21F75BB60E3596170067D00141CAC15 + ), + self.set_or_get_constant( + 0x222C01175718386F2E2E82EB122789E352E105A3B8FA852613BC534433EE428B + ), + ] + + s1 = self.add(p[Wire.W_L], p[Wire.Q_L]) + + u1 = self.pow5(s1) + u2 = p[Wire.W_R] + u3 = p[Wire.W_O] + u4 = p[Wire.W_4] + + u_sum = self.sum([u1, u2, u3, u4]) + + q_pos_by_scaling = self.mul(p[Wire.Q_POSEIDON2_INTERNAL], domain_separator) + + v1 = self.add(self.mul(u1, INTERNAL_MATRIX_DIAGONAL[0]), u_sum) + evaluations[22] = self.mul(q_pos_by_scaling, self.sub(v1, p[Wire.W_L_SHIFT])) + + v2 = self.add(self.mul(u2, INTERNAL_MATRIX_DIAGONAL[1]), u_sum) + evaluations[23] = self.mul(q_pos_by_scaling, self.sub(v2, p[Wire.W_R_SHIFT])) + + v3 = self.add(self.mul(u3, INTERNAL_MATRIX_DIAGONAL[2]), u_sum) + evaluations[24] = self.mul(q_pos_by_scaling, self.sub(v3, p[Wire.W_O_SHIFT])) + + v4 = self.add(self.mul(u4, INTERNAL_MATRIX_DIAGONAL[3]), u_sum) + evaluations[25] = self.mul(q_pos_by_scaling, self.sub(v4, p[Wire.W_4_SHIFT])) + + return evaluations + + def compute_shplemini_msm_scalars( + self, + p_sumcheck_evaluations: list[ + ModuloCircuitElement + ], # Full evaluations, not replaced. + p_gemini_a_evaluations: list[ModuloCircuitElement], + tp_gemini_r: ModuloCircuitElement, + tp_rho: ModuloCircuitElement, + tp_shplonk_z: ModuloCircuitElement, + tp_shplonk_nu: ModuloCircuitElement, + tp_sumcheck_u_challenges: list[ModuloCircuitElement], + ) -> list[ModuloCircuitElement]: + assert all(isinstance(i, ModuloCircuitElement) for i in p_sumcheck_evaluations) + # function computeSquares(Fr r) internal pure returns (Fr[CONST_PROOF_SIZE_LOG_N] memory squares) { + # squares[0] = r; + # for (uint256 i = 1; i < CONST_PROOF_SIZE_LOG_N; ++i) { + # squares[i] = squares[i - 1].sqr(); + # } + # } + powers_of_evaluations_challenge = [tp_gemini_r] + for i in range(1, self.log_n): + powers_of_evaluations_challenge.append( + self.mul( + powers_of_evaluations_challenge[i - 1], + powers_of_evaluations_challenge[i - 1], + ) + ) + + scalars = [self.set_or_get_constant(0)] * ( + NUMBER_OF_ENTITIES + CONST_PROOF_SIZE_LOG_N + 2 + ) + + # computeInvertedGeminiDenominators + inverse_vanishing_evals = [None] * (CONST_PROOF_SIZE_LOG_N + 1) + inverse_vanishing_evals[0] = self.inv( + self.sub(tp_shplonk_z, powers_of_evaluations_challenge[0]) + ) + for i in range(self.log_n): + inverse_vanishing_evals[i + 1] = self.inv( + self.add(tp_shplonk_z, powers_of_evaluations_challenge[i]) + ) + assert len(inverse_vanishing_evals) == CONST_PROOF_SIZE_LOG_N + 1 + + # mem.unshiftedScalar = inverse_vanishing_evals[0] + (tp.shplonkNu * inverse_vanishing_evals[1]); + # mem.shiftedScalar = + # tp.geminiR.invert() * (inverse_vanishing_evals[0] - (tp.shplonkNu * inverse_vanishing_evals[1])); + + unshifted_scalar = self.neg( + self.add( + inverse_vanishing_evals[0], + self.mul(tp_shplonk_nu, inverse_vanishing_evals[1]), + ) + ) -def convertPoints(commitments: list[G1ProofPoint]) -> list[G1Point]: - converted: list[G1Point] = (LOG_N + 1) * [G1Point(x=0, y=0)] - for i in range(LOG_N + 1): - converted[i] = convertProofPoint(commitments[i]) - return converted + shifted_scalar = self.neg( + self.mul( + self.inv(tp_gemini_r), + self.sub( + inverse_vanishing_evals[0], + self.mul(tp_shplonk_nu, inverse_vanishing_evals[1]), + ), + ) + ) + scalars[0] = self.set_or_get_constant(1) + + batching_challenge = self.set_or_get_constant(1) + batched_evaluation = self.set_or_get_constant(0) + + for i in range(1, NUMBER_UNSHIFTED + 1): + scalars[i] = self.mul(unshifted_scalar, batching_challenge) + batched_evaluation = self.add( + batched_evaluation, + self.mul(p_sumcheck_evaluations[i - 1], batching_challenge), + ) + batching_challenge = self.mul(batching_challenge, tp_rho) + + for i in range(NUMBER_UNSHIFTED + 1, NUMBER_OF_ENTITIES + 1): + scalars[i] = self.mul(shifted_scalar, batching_challenge) + batched_evaluation = self.add( + batched_evaluation, + self.mul(p_sumcheck_evaluations[i - 1], batching_challenge), + ) + # skip last round: + if i < NUMBER_OF_ENTITIES: + batching_challenge = self.mul(batching_challenge, tp_rho) + + constant_term_accumulator = self.set_or_get_constant(0) + batching_challenge = self.square(tp_shplonk_nu) + + for i in range(CONST_PROOF_SIZE_LOG_N - 1): + dummy_round = i >= (self.log_n - 1) + + scaling_factor = self.set_or_get_constant(0) + if not dummy_round: + scaling_factor = self.mul( + batching_challenge, inverse_vanishing_evals[i + 2] + ) + scalars[NUMBER_OF_ENTITIES + i + 1] = self.neg(scaling_factor) + constant_term_accumulator = self.add( + constant_term_accumulator, + self.mul(scaling_factor, p_gemini_a_evaluations[i + 1]), + ) + else: + # print( + # f"dummy round {i}, index {NUMBER_OF_ENTITIES + i + 1} is set to 0" + # ) + pass + + # skip last round: + if i < self.log_n - 2: + batching_challenge = self.mul(batching_challenge, tp_shplonk_nu) + + # computeGeminiBatchedUnivariateEvaluation + def compute_gemini_batched_univariate_evaluation( + tp_sumcheck_u_challenges, + batched_eval_accumulator, + gemini_evaluations, + gemini_eval_challenge_powers, + ): + for i in range(self.log_n, 0, -1): + challenge_power = gemini_eval_challenge_powers[i - 1] + u = tp_sumcheck_u_challenges[i - 1] + eval_neg = gemini_evaluations[i - 1] + + # (challengePower * batchedEvalAccumulator * Fr.wrap(2)) - evalNeg * (challengePower * (Fr.wrap(1) - u) - u)) + # (challengePower * (Fr.wrap(1) - u) + term = self.mul( + challenge_power, self.sub(self.set_or_get_constant(1), u) + ) + + batched_eval_round_acc = self.sub( + self.double(self.mul(challenge_power, batched_eval_accumulator)), + self.mul(eval_neg, self.sub(term, u)), + ) + + # (challengePower * (Fr.wrap(1) - u) + u).invert() + den = self.add(term, u) + + batched_eval_round_acc = self.mul(batched_eval_round_acc, self.inv(den)) + batched_eval_accumulator = batched_eval_round_acc + + return batched_eval_accumulator + + a_0_pos = compute_gemini_batched_univariate_evaluation( + tp_sumcheck_u_challenges, + batched_evaluation, + p_gemini_a_evaluations, + powers_of_evaluations_challenge, + ) -def test(name: str) -> None: - folder = os.path.dirname(os.path.abspath(__file__)) - with open(folder + "/honk_tests/" + name + ".json", "r") as f: - record = json.load(f) - proof = binascii.unhexlify(record["proof"]) - publicInputs = [int(publicInput, 16) for publicInput in record["publicInputs"]] - success = verify(proof, publicInputs) - print(name + "=" + ("true" if success else "false")) + # mem.constantTermAccumulator = mem.constantTermAccumulator + (a_0_pos * inverse_vanishing_evals[0]); + # mem.constantTermAccumulator = + # mem.constantTermAccumulator + (proof.geminiAEvaluations[0] * tp.shplonkNu * inverse_vanishing_evals[1]); + constant_term_accumulator = self.add( + constant_term_accumulator, + self.mul(a_0_pos, inverse_vanishing_evals[0]), + ) -def main() -> None: - test("testFuzzProof") - test("testValidProof") + constant_term_accumulator = self.add( + constant_term_accumulator, + self.product( + [ + p_gemini_a_evaluations[0], + tp_shplonk_nu, + inverse_vanishing_evals[1], + ] + ), + ) + + scalars[NUMBER_OF_ENTITIES + CONST_PROOF_SIZE_LOG_N] = constant_term_accumulator + scalars[NUMBER_OF_ENTITIES + CONST_PROOF_SIZE_LOG_N + 1] = tp_shplonk_z + + # vk.t1 : 22 + 36 + # vk.t2 : 23 + 37 + # vk.t3 : 24 + 38 + # vk.t4 : 25 + 39 + + # proof.w1 : 28 + 40 + # proof.w2 : 29 + 41 + # proof.w3 : 30 + 42 + # proof.w4 : 31 + 43 + + scalars[22] = self.add(scalars[22], scalars[36]) + scalars[23] = self.add(scalars[23], scalars[37]) + scalars[24] = self.add(scalars[24], scalars[38]) + scalars[25] = self.add(scalars[25], scalars[39]) + + scalars[28] = self.add(scalars[28], scalars[40]) + scalars[29] = self.add(scalars[29], scalars[41]) + scalars[30] = self.add(scalars[30], scalars[42]) + scalars[31] = self.add(scalars[31], scalars[43]) + + scalars[36] = None + scalars[37] = None + scalars[38] = None + scalars[39] = None + scalars[40] = None + scalars[41] = None + scalars[42] = None + scalars[43] = None + + return scalars + + +class AutoValueEnum(Enum): + def __new__(cls, value): + obj = object.__new__(cls) + obj._value_ = value + return obj + + def __int__(self): + return self._value_ + + def __index__(self): + return self._value_ + + +class Wire(AutoValueEnum): + Q_M = 0 # Start at 0 for array indexing + Q_C = auto() + Q_L = auto() + Q_R = auto() + Q_O = auto() + Q_4 = auto() + Q_ARITH = auto() + Q_RANGE = auto() + Q_ELLIPTIC = auto() + Q_AUX = auto() + Q_LOOKUP = auto() + Q_POSEIDON2_EXTERNAL = auto() + Q_POSEIDON2_INTERNAL = auto() + SIGMA_1 = auto() + SIGMA_2 = auto() + SIGMA_3 = auto() + SIGMA_4 = auto() + ID_1 = auto() + ID_2 = auto() + ID_3 = auto() + ID_4 = auto() + TABLE_1 = auto() + TABLE_2 = auto() + TABLE_3 = auto() + TABLE_4 = auto() + LAGRANGE_FIRST = auto() + LAGRANGE_LAST = auto() + W_L = auto() + W_R = auto() + W_O = auto() + W_4 = auto() + Z_PERM = auto() + LOOKUP_INVERSES = auto() + LOOKUP_READ_COUNTS = auto() + LOOKUP_READ_TAGS = auto() + TABLE_1_SHIFT = auto() + TABLE_2_SHIFT = auto() + TABLE_3_SHIFT = auto() + TABLE_4_SHIFT = auto() + W_L_SHIFT = auto() + W_R_SHIFT = auto() + W_O_SHIFT = auto() + W_4_SHIFT = auto() + Z_PERM_SHIFT = auto() + + @staticmethod + def unused_indexes(): + return [ + Wire.TABLE_1_SHIFT.value, + Wire.TABLE_2_SHIFT.value, + Wire.TABLE_3_SHIFT.value, + Wire.TABLE_4_SHIFT.value, + ] + + @staticmethod + def insert_unused_indexes_with_nones(array: list) -> list: + assert len(array) == len(Wire) - len(Wire.unused_indexes()) + for i in Wire.unused_indexes(): + array.insert(i, None) + for i in Wire.unused_indexes(): + assert array[i] is None + assert len(array) == len(Wire) + + return array + + @staticmethod + def replace_unused_indexes_with_nones(array: list) -> list: + for i in Wire.unused_indexes(): + array[i] = None + return array + + @staticmethod + def remove_unused_indexes(array: list) -> list: + for i in Wire.unused_indexes(): + array.pop(i) + return array if __name__ == "__main__": - main() + proof = HonkProof.from_bytes( + open( + "hydra/garaga/starknet/honk_contract_generator/examples/proof_ultra_keccak.bin", + "rb", + ).read() + ) + print(proof.to_cairo()) + print(f"\n\n") + + tp = HonkTranscript.from_proof(proof) + print(f"\n\n") + print(tp.to_cairo()) + + print(f"\n\n") + + print(Wire.unused_indexes()) + + print(tp) diff --git a/hydra/garaga/precompiled_circuits/honk_tests/testFuzzProof.json b/hydra/garaga/precompiled_circuits/honk_tests/testFuzzProof.json deleted file mode 100644 index 5b65246b..00000000 --- a/hydra/garaga/precompiled_circuits/honk_tests/testFuzzProof.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "proof": "000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000930e8cd9cc37409f9478b34a515e87cfa700000000000000000000000000000000002a70d0a1ef44aab1ff73eae945b5f5000000000000000000000000000000e3eee723c475530b32c4bc54b70d39720f00000000000000000000000000000000002086c94ba736a8341c6049601177370000000000000000000000000000005bcb4c5f3b46c48df7697f740a2669b5970000000000000000000000000000000000066bad3dae1c5316cb44627cd584ea000000000000000000000000000000a65da5189335da0eddf112d054a7b9217e000000000000000000000000000000000010c13e229db083194f19fd715eab9a000000000000000000000000000000b04d2da60e27575287968c96080cfdc0e600000000000000000000000000000000000c541e64e0dd48c94fc1384858d1860000000000000000000000000000003f1b186c2508ad14f79286d23453bd0cd6000000000000000000000000000000000004dc489e4998efa67896ca75839a50000000000000000000000000000000c53e52f2a2bb100890d65cae15f63e37d0000000000000000000000000000000000008ff0f4bb7d565c5a88edbf4ebf2c900000000000000000000000000000040a8934d2219fc6f4f7bfcf84c57e82222000000000000000000000000000000000005e437126b69170c2adca5aed6f41c0000000000000000000000000000001aee932423c0d48d6a366f5025f2c5ef940000000000000000000000000000000000076682d3b3174eb6e154f7a3053cc2000000000000000000000000000000747d71d4525a3f4afa6187961c8dd35b4800000000000000000000000000000000001208f6bb879f955d1c795f0f1b0f1a00000000000000000000000000000032e718c55f5f196da3ff503cb6f62c650200000000000000000000000000000000000eb33fc00c3c05582e7f7f5991cae7000000000000000000000000000000cb5ce0db515f8a2b351d5db9a8ec3ed68c0000000000000000000000000000000000024e5426bde55d75e1d72068c67bf50000000000000000000000000000004c436540afbca8d42caa2297fd354a6f8e000000000000000000000000000000000019fc9a43ae4b70e7f456e433ad43660000000000000000000000000000002715d33e617fa42c5c5c529727515fde0d000000000000000000000000000000000016bc84c1d3183c881ae04b8c99629e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002fff62a2d9817295af01c21e31d540d0bee96541ca1bb261845f1d3154d2b171a61329dbdfaa6782c697a0205a0356195aa297d43ccf2057defaab4b8dd6c2b1691db1179fb664c862c60f2a3f926a53b0a49c65686aab62932c0d320335de00c8095523cee861a63a6e03d10825eb08f99ccc8e50c4279be5e910493dc2d120c363485ea161e964699d71ebe77e96b72ddbd946fd85487d6f32a96b05e016e266a9cc6f1bea89e176c88bc1ad5e440492a9819457a3996efbcb59f1286e9dd182c7e8b06222383b48af36652105abb03b1037e1dfdd64d04282c9cc1e9fd6e0edfb9d04cebfdb0a1aac2a8ea6c51d24bdecc73ef35c8529f59c2825a99418d28044efeda29a72bd8584c800fe9fa8f1217c8efe092f72e95fe66c366aa82f716bcaf0bcbef29d8f3a71b80f84a84d33c9ece592c2dd0ceb14ffbc4f8e53ab4102820d62acd045b43fa7a0010142a0ee73e54d2225d03109641763725d8467315b798c630fad6e86c30366e8ece849dc58c36b69846d542c3b5c9a9ccaec0c6104b4fc01ee8418c2aa749c2a40c4d2476c596a9032e0c8fa4e5499db0d19d5f0abcac502552f6da70b4302ec9c792c930f20b8b4311193b506cc53e5e6cac2021fee6336352283401839fb8e562d3551e645ec5d81238edd917a040477742a9063944ae2d256cfa461250af3378f5efddbecb06edb7cdebe75d9bb101f9c8741c39b3465fe36922bd2dc8e2fc0e0ed14d05f0c963e9ea2a5af56252aba5e5ad0cee497af639a3b2faedb4111c37ced9b0c317a37b5f24d89731b338bf9eaa80130a20af16f52a921923638df2ae775b17a20b43189bf1254a8b57bb329ce0b72aff5dd1d56dd829a8fe060842fb88322ef6727d1eda2c18b9982e4750cd2a011fe9469e1b5cd15d5fd15442002331d0a8098ccfa30fe280e8139e93524cdba21b36c7c3ffc48dc4e27187bf19f8f672ee61e65d39c84cad3d38a266666fbdfe1104769219820b790a530ffc01dbaae9e3b74742118a3f182f736f01392eb18313428991204afaabde71c9ffa9c2c0573c0b0824ae26e5f0704cd9a14c7927a025c3c8bcf6f24e0564c19a15389bb68699ba9656ff867c9507cde3a41cdedcf6095605d73cb232a0f790d404c1c0f28c1d38f63a4fc7f7e67f1ef4b931cf0e2e25f84770c9ab77ea2cd45b4548752970ce75591de1e4a26da49c0342eb6bd64b250fa248a424b4dc892d4de568335181eb889ee7a9830b56dd0f2b5b07ccc3fe1db5b890bea81b497ae50b078caa9244b5e8e35bd4f71422030dd7951a0d3f5f262e367682c37c5f67c473159684ca74a8dba4a238ec7ee979facb97e2c20099302324d52a41dbe96372c110051671e89526c436ee8c84573483c22f40abf2c91e818d1747f2a698e086e5449b559f1f15e132b9b0b534c11de51346a2baacb12bed628e0e2aaf85ed2364ed60faa3215acc612b723220e7453c202410975e1013cbbf962d1b9f22e1c324c76ad136dfd234d6553d155406f05302375dc890c80294d6c3707bbb118f24093938e16b89de9a05965f9a790643fe6cba85e5ec6a17baee79b6b5d11236b50102c2ed5123268f9d9f861f7ed52087744858cc33e0159869f61de1e0b6b9aaeb3f3985370ef97b59569d521c102c350280faccfb5d2176d8f4b28e188d03d54f9ed2bdda2e1ead5a41f27c40438d391a78cb2e34c6239eaff6698160a9a1a0e4e5ca606b800a272ec1e405d7c58608b7e017f347ed057f2f02d31b4b8ccc9a3d500c41c7498051a6fd152cd192f376f9b1fa25f6bd1492c73961081924ed6cad0585cd81913af0984b05afeebfa571698850079db812da3a1122d73a7798bd4f3f4ca4d4f3c3ea2fb7e83298c40efcf5a21d5299dc0b07b9d0a912751899e1bdbaa379710875fa0f11f9307ed54bd19ef0464a2471008e1dda613dd65e2af425fa9a3537d9822edc00bae46a3b8f47b92a09e822912c681ffca4f9a79d7977bdd1c01a0b8bdcf69b2a0b9add2e10164e2140764dd21e9395591b4604450c638e98b832b04c03713605639bc170223032cbb381ffd12ceb2307f4982d04824e2ba27a83054ff8bc09e94b218afdbd97b2aa3548e6ee07c51433cb4c1a529443896a3998eb9ff0d52248862e11a5509d57645cf7af4c1f13c9036499fb230fc4e5ab12ff3a12008b9032b598956d135d0a82d15da9b50e822297dcd1678fc7516fbd9ae3071d5e8150943a93da6fc4ce48bb578b61b22b29de61a25770520a0c477ec723846941a78ff2676b6bd131cccd441605a9631059c41ba0b0a7f7d60511dfbbc853ab53864d6cf35989de1a8f340a4fe2b9de04330d1370c5d77bd2ec5f47f47f68b34d9b0578f69dbd7669b620e0d05769ce18433573341b6eecd4ace50e9335241dff0c26f4e502bf66e6f4378146e4d0b6282ab1541e0a979518cf1daf8ab326d0f61ebc7eba7bd8a47bdf966c1e3480d429270df9f57f4c7bad916f2bc939b398ecc2e9f6ef904e09489c8e76d96cd0241762a653ff6a11e445fe8a0a2de5193a4fa5e2821e10a4ff30702700d437667f19f2e1fdd99a14ef4d1ce531f4492f945fbab9593d9ff057df99e81300141fd21e7c31438644c9db8cca6db797e902056efd7352a224c76510fea9b8e87aaedb096aaf9c04f8bccf4ba9abe06cba40b183634386512898077975e83a04aea99b302f56620eb231df5f919d41ef08e564d008e59d7b47292830e999d1c74dda0e175488ae8ffba1819c208852bb08dfea2618b0605ec20db33255fa51115cc81f1268905de571de0cada10003b58fe3069bcc61dc2f398c820329813e739c66f20aef3ac2a5f98cdaba41f52e4781682526cc42ed315ffa4481bde25e0b22b9310512ed0fd996e13afde2746be8307315dc458b24ab98c16bbcf6059f20761c801e2e976bd7d00fe0b9c2d518502f5f31be196390b4e038664ab2285a385fa270099e9334de3aa975922f73136dd6904677fb3cc247b466cf3ac235f79b3a79e81eeb46aa9d83a6a21bec84933e76112b0c97e06689343a4f941ba42d59f6007816f4d8f585ddb2eb1a53f278b4880a100f6bc740840d90182ff97f034de9d4e814d2a9c4c5f6554540f24d737827a17368b80166f4c33ed52b2cbc2ea634ba2c21cb238074e7d4c741a01b7a745931945dbab4d404880492d945c382171847e0232b4dba1fcf8b584da342d6ccf59f66d2acc1d87540a9659fead6b4b53c8d3928a925a86b408b84559b6087558f7b6ee1f75df0e777bac28c11af4e0907b5e11324908735c94f97ba2c282106c8420786060fdafc05b34689f3940f70204f21079e036fcb38dbdf9df88072c584796cbc0fa163192b4312703d408e340c1fbe2215b264eb8f599cac36d77f759bc86e046707867cc427b6f7d03b1016fb4fd50488ec8c37f979b95e42d4f6572c81686a648dea5ed447f8748479a99f0ab46515970e33340884c7f486039a8013506323f4117f2299fc269c68222daaafaa320fad448a26d63e2c4db45d9b59a113f6a3ab48dd97c0397f6e65b9686d03a1900e2b6462370506ad74edf36050e91c623f9af71943ecf81e50fcc81af2c158f02bc2ef4f89e99823941c335ea7eb024a6110ad023eb22dfdb4624bf885a2c645023181b9a1ed3dc436953da1f328d5e65138d34d8cfe6aa5cae17f20f6f7584314469df440840bb698bfe03f47bb00f682a70c30c176e910023eabca8c7d48ab288c4a04700d89e737d1bb7ef27e1b0f1c9e4e5b9637612c9d4d44d9fbbc5fc52b0c643cc6d18f45da96e9d8bcd3598efb7dbd842c9251b1072dcccbfc9b9d69137ab66a6e2ed917754f8f2fad8b1c8f9b9c7a7db983093084642f183e2f3cf80966267723ab287e9e3db39bfdcc1ede6df25189bc0634195eeba513e10955900acd9a3d6101e2e3f8bf0fe4ae18d10af6a8b65d4a94e109fc948ea9f33b5bf627a8d308708deddbcf8e19d2a99b75c30dd91e09665decf73103b10af5736e060a5369c9cc247ab60b329c0340615fc9027a791191d7db43c582babdc4e2c7eb04db67349182b69083ebfe5bf3ab24a7c7b1ba7e8ad00b020868ccea8b35b7aa2967e4a9a72839fc09e91365e62fb2b2164200811dafbd14235bfc8f5c6294952c4aece72d3147a7c678f51430ff84f1ff80e4701944f1db1124414d4df8e9731827255c46dd0451126d570d886ffeeaedfed0645b2591b1571d78151ea1c2cc15e8451663c6f548db835ea0fb25e0d8f07ede4ffdc2e6dc0e485b1e5c87bf0401dfc2a5f55575fdd9d177e82190d4e2350bf600532cc5b9039bbb5b2fc7d4b929314979d4f21143cb1da8efaa5207169b3470ef81f297fccc6195da9df9e0530a8a729c51f6a60888f08276b6d4899ac82471c06ece58b22ec300c0a8c6c65206ea863e5a26e32ba446a45b081ecdcc266119d494c15f7691204d6672922b321ce8fc5310efb14fed3f48c797804c535632a50d4d41c9cb91c049837d0a494d24856e61182de600c306bd47559f4969614b4cb8c1243906aa2e2859bd3f6f9113b42adb321afab88d650a3dd7c4d5f9fdec85820e10599578a0b93d9cc3320618aa34153d029d407c72a88418f8a4980435cfd09ec1ea8eb2308afc875ad98a288ce1620659ef32d04d8b8226d5edd9ccee533e4dab5b7fc8946826ea76f74609df782c2b36d3f62d87b79df9c52aaf73790ea92df3a95a3787c43518e5d6d628b90d19546eddda41e0b37d55fcc640d02542cf139a2869917902166ffd55f00c20dc137dd8595cca893d4274d5e112f49870c2e5edcea1f047e61c9c01fcaa01500d48fb8df1b42abf41767b6f5b1358c496b5334f510c0306ae44019b166e103f433c2b497b801d4867078dded6b6312c771b1686547edf4fa5e8b4c259c51029588d8870ac9de4c2aa881829472941dd6f748d0b8a2733f5403c68151e61257e008bae63bfcde199dc8d04745306bdfcd7313b62a81f55d05916b0a2ddcf1dfea7708a6c2ac423bae40e901789fc7a00f13ef630b568f6f438e93c80ec590a9623dbf0dc4a59107867321cf6028da48d2a1b8b8ce146a9b34e4040e075353018456c33556e6b15ea04755f93e821da00f54fd37c3a27da9f514747b46908223dfde45d878d1d234888cb5dff21e1f993eceeb95f000860eb26b312c17ea51875e8dfadc4b36e325fe109cbddc9dc9825d261e498095fd8b027c7016dee5a28a59a610464da5565f5de104dc1924122d65fe4403090009ef1850447acde890298996bb76096b3aca93f11884e09de1fd7c455ba58777c57f3d90a766d683727e4d44a72f18f7a18fbafc3a2e548c0679a946c0ab32ce5575959a6f03556f81e84e448ece53c6c4f2e89389677b3c747a6de65a7d1780ded5a33de621167be2eb1b557fdd399ab8e9e140f33e49292526e551631016b15b78217ed649417462d631ae48962daf934be2f9662f23f2b635fcd38896bb069109e7482ec58529a11ae13e123ff62ad23fe5c1f57fb6056332268ddfc92bf0ddbe866d1655e477f1e7de8986b9524c111450af6b5973f8266d3bf5c8f305f58d281d825c6220ce01f5465d22b5477deb432e18f2f38faeba10285e32d4b78e4147e63202f1fac7011d47e3b12879a6c279e1c1098c754f55bfab7bc62dae46684b6a687a5cba5b6177fee864ec90922d7312e841a3c4cfbe679c9f0c13e8f73d1c04ff8ad185a8504f16dfad9fc2c9d7e3ec36dc2a2780faa0233084de03967ba961de95bb4a76f0323c9e797fbde4dcfcc076123203da8cf76e10568dcb60076e41dc2f98395a80986e1c51f8f12a95e8ca5eafe6274f022c6dc7fb6ff6bef3fa3ca26fc373b2c2e23370b9e471d0dbeda48c3aa494fd06d615d519b4e74a709bd9e71ddb0f61702ba5cea858f9a2f8b6d1b7e590fdf9c802ba8c901cd27d3be34fbf701e2213002413a9d7cd5ea6260c3337a3fe68753f482655618a6afdcc6aa76e8b3f56b60020036a00f75a1032b18c8e1387a8fa385e858c0d4f2d8a3bd21b54d9fe576e6064276eb111cc169a99be6f71bd2c3fd062c4fc9eba4d86185618525b4cff1292777240e4ca983b74e31a0a7d5d7978949f18bd268bdc4de13469d5c070be2b50cb6318bb3628a12e83b20aecdc79fc077e47614bac15e6af94d31e7691f602018f452e218d59acae8057474f6eb1b3ab5af68cd1e66377cc845c81c1d10256f24aaea9aa2c7cc71653637e6dfc7d8995b923a2bf50953868f6611bd4858b874078ad122dab424a0de7e45839a9e1e09315e80317b7ecc7cf1436c9c341d281c08cd8e6a714603929bbea038e9d67efb1279d84d5f1b94d4e22f8ea28d9844e423f1110bc4ac3bc39b28ab69e5218e8521728813fb80432aba85b53bdf26630115614189d5446f46fbcc6eedeb77d7a892d8f528c48f08e6d97593bd6e1c7d8626fb4541eea1b2d5c3f5c65c102ae1b6f9d4bdeed27ec0cdf7596416925f6af711510795224a9dc84948dfb874a2cf729ebba6249e3205674010017df4c50d96176c4530e8f339f2748a74b8e69918fc8e234a6d2f226816ebe3267a3a77ee590171ce1680d7876fbbbf6dd5c67cca3f43a32b46331a1fac9687d6bb6e1f682a0fad236f637257d19c5305c42cf9ce55ee2474191595eddc83582b4f06a4666a1568f641a922d3eb7074a34d414fb535e87c5dd531f05ce5bfc10303215d21730bcd00e806e8a6fb535d37289e68b6c597fba64f3c64a075032bd338e3de8fd9295a7abdc136adc4a6bdb00d0f650e2746b722bd799475562a116f3309f216fb2131999c09ec9d14e2ef1e5a18cb180690249ab811cf312cefaf9bd37c14cd6c2407ecfe21f11ac55566241a9ef46f2db870c6c76a013fe3016e502a87d8953b000000000000000000000000000000e5e598b90cb5c97a26f3c7bad76ff314c7000000000000000000000000000000000009bccf721cfc342b748b44f21cb7380000000000000000000000000000005a8094aa336c12a10ddbf8568f2143f83500000000000000000000000000000000000063294f032633d2e606381e702a010000000000000000000000000000009dff4d5a9ebb0cad0e3299d0bd33ab6f75000000000000000000000000000000000016006ffe9c0e6d97fb50289d69b0ab000000000000000000000000000000fdeb599354c7158434a9fb6182c07c6eb90000000000000000000000000000000000078bb3813008bfceddb54256b3bac30000000000000000000000000000004f3c56d534eb5ebfc9f0062cfca1e1abd60000000000000000000000000000000000218cae3b294f4a6dbc5d4b1618b59f0000000000000000000000000000005dc36b8146711a61e4de032ebe032f396d0000000000000000000000000000000000110df7d1cff4d9514a958f9559d25400000000000000000000000000000024a79beca9d8f7ec426c2cc1270ec887fa00000000000000000000000000000000000f5999fd4ce76b195ba8117148319a000000000000000000000000000000bd8ff5eccc237f224f2482197ad6daa75100000000000000000000000000000000001b949db09f8493993d23fb0df6c7b2000000000000000000000000000000a4806ddb9db709d01b10e63e31ccdefce8000000000000000000000000000000000028c0b4920a470139f3b76345c18e82000000000000000000000000000000b2bd0459f6c0e318ca2398beb4dc8935da00000000000000000000000000000000001e860c2b25dea00cd4681313e140bd000000000000000000000000000000e1d180bc8a7e668e7ddb2e377052e56a2e000000000000000000000000000000000016a22310417082b2a9ddcd8b1d034f0000000000000000000000000000002049e23d9c9e69a58090bafed92397c0d800000000000000000000000000000000002980d0716c659a253102739581c2eb000000000000000000000000000000e799a38a04abac3a9a332d2a9e910504590000000000000000000000000000000000125b50016f1b14594a3419de574b0500000000000000000000000000000059fee45427a41f5c7405e8766bcca7a4c6000000000000000000000000000000000029af165275e11679e5e20ef37d507b000000000000000000000000000000970ca40e211f6542c572d622e28ecdac4f00000000000000000000000000000000001373071df56d72a6993d96cbaa5a1d000000000000000000000000000000a70aa404a92d08db6ac37728962085f31300000000000000000000000000000000001acc5bf492f9a312515fa199711d880000000000000000000000000000007385f800b2fffcaaa79d078c1a6e8dfe7f000000000000000000000000000000000013f90d19db0ae133c1ab9bc5d28e0400000000000000000000000000000076792bfee150a593b95c10f58e6fcce998000000000000000000000000000000000004e98a4c4f1c09a130bd4ad3ddb6780000000000000000000000000000001f8924c0bb39dbc9d91bb0346644e2e1110000000000000000000000000000000000048b5b3821e861c1cb0c68da7d36ab0000000000000000000000000000006741b859f7afe4929fe548c3fce739d1e6000000000000000000000000000000000009839f6b7f69f1d20352968afa0bef00000000000000000000000000000033bf1ee151acd01229a70a03dd105c6f5a0000000000000000000000000000000000027b5be527c8c7203d7b408123d75d00000000000000000000000000000070212f0ff55596d1f6bd0a4cf4819405d9000000000000000000000000000000000012f70265d29b0419514ca4749402dc0000000000000000000000000000007db23b3d056df3c35feb4d201375d63ad3000000000000000000000000000000000008da8cd797d1648904e572d76651b2000000000000000000000000000000e7d7985485cd3ca58f911e61fb05c21e2a000000000000000000000000000000000025b8d04643be7f69747184a21b14310000000000000000000000000000003b0b761afeba83e8772bdb4530fcf033b00000000000000000000000000000000000238eda3380132052983af26736f696000000000000000000000000000000c4db548817b4a4d7c9eb65be1c09cbf55a00000000000000000000000000000000002531a37ea626fef08a2daca14c9227000000000000000000000000000000301b240413779fcbf9d70da990ce7b46bc00000000000000000000000000000000000c936bbab1426bd5c8db5e49fd67c9000000000000000000000000000000389d11f26ce0e2b6a43d99ea8f0cf45f1f000000000000000000000000000000000017660ba46c96734b8587ea279cc3f60000000000000000000000000000003c42cbceb5aba0a248eeece13eb6c2b67b000000000000000000000000000000000013166501f817c3161b7b0fe0f2febf0000000000000000000000000000009c81b1f3b2fdcd960ca2be0842f40b2226000000000000000000000000000000000028dca10b25e7a3b603e38d338ad0e3000000000000000000000000000000219187d6e3eae7fae429d7206dc2516e1700000000000000000000000000000000000bb5173f6f31c50460d65fcc0e930f000000000000000000000000000000d1aadb1390bcba9067888e84c1d1fafeda00000000000000000000000000000000002833a74e4e73bfd41574c8f20e5a20000000000000000000000000000000eafef8fb3c07388f587745b64bc61f47a200000000000000000000000000000000000b995b99a868999dde16428de5b21d00000000000000000000000000000053286824cf9b8b6d16455a09e1d937fb03000000000000000000000000000000000003ae4b3579e16df2c087fec0a30068000000000000000000000000000000d299939467aa051777b5712a78bd9d0eab0000000000000000000000000000000000142db5a681fe8e276f48087f5d0410000000000000000000000000000000803168540f74d2802542dd8a89c5703e15000000000000000000000000000000000014b78c08af520b5fb16c11ccf31d79", - "publicInputs": [ - "0000000000000000000000000000000000000000000000000000000000000067", - "000000000000000000000000000000000000000000000000000000000000006f", - "0000000000000000000000000000000000000000000000000000000000000062", - "000000000000000000000000000000000000000000000000000000000000006c", - "0000000000000000000000000000000000000000000000000000000000000069", - "000000000000000000000000000000000000000000000000000000000000006e" - ] -} diff --git a/hydra/garaga/precompiled_circuits/honk_tests/testValidProof.json b/hydra/garaga/precompiled_circuits/honk_tests/testValidProof.json deleted file mode 100644 index f8ff754f..00000000 --- a/hydra/garaga/precompiled_circuits/honk_tests/testValidProof.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "proof": "0000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000003a2396529fb3e4fd2b5c3382de69a271da00000000000000000000000000000000002a2fb2b61c003f6422406f1d41da27000000000000000000000000000000dbdf1b6281920bd95e8a1331383dcd20d5000000000000000000000000000000000003dbbe1e9bcadb63fed21b2c359d0f0000000000000000000000000000002f5bfd21f8b0b65f7a09e58c2e8f22eed6000000000000000000000000000000000029e45b4ce200d96b0c5bc9d883a83b0000000000000000000000000000006ab5663e860520248a373b29918e2af131000000000000000000000000000000000015f20604ac6b7a62072d15eca5e8930000000000000000000000000000006fa758e03e07667b58c5958830e8439d9d000000000000000000000000000000000028ccdb2bc53e35cd3aeed859a64dc90000000000000000000000000000000692e74c3f353798c2fb749b9f586d63e7000000000000000000000000000000000000cf49e13a61d3e7ab794678ce88df00000000000000000000000000000043284a2156a24ef9c227874bca09984b4000000000000000000000000000000000000516fea98f59f0c2bc524851a199b900000000000000000000000000000083e7a39dc48d0fedfaf984b998fdc4b560000000000000000000000000000000000005b74b084aacbf625c076bcac5b5f60000000000000000000000000000003e1cf3d5e610da49a48d1d2203798771ca00000000000000000000000000000000000b52cf4f72044aa08377b045f2b917000000000000000000000000000000ed46c362500bd166e95e1998e873523bb20000000000000000000000000000000000098031df81ba826bdf14ca298f32a10000000000000000000000000000004ed7ecec4a91471f5d884bee27cd320d2b0000000000000000000000000000000000038710ed8919df70c29552dfd01000000000000000000000000000000000ddbc7c890590090069cb7f4ed1cc28696300000000000000000000000000000000002136195261cc3bcec1141e45134e760000000000000000000000000000009848c97ba6ae2f6b7d2ff7cc085f845b4100000000000000000000000000000000000cdc3390bc110b0d1970771ab55fc1000000000000000000000000000000832c6e9d6153ef184f33630c30ce63511b00000000000000000000000000000000001f43bb54b0ad4da511950777b2c3c6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e096ab5a982db9bbe95437d83c069a34712759fc08d50b47a23b3acbfab76892c918f321f4b0dc820899aa445a3ddd42a0ac1e7eedc04b51cab3e1db71d199a08265f75a7e4f70f2fd69e5ade24fb73f93bd80e0435e63ba3b8f90c1a8b4c301a87b5d59b504fd2e9074f1f562db4b9121c4ea7db29d73eff621c5a6ca4b90510a5988a9b8acc0bc222d6a6b7b116ab87c60c15648b586baf746d5315cd94120d10624399181a1407a41fc7c08b2fd7c9dc2c576259198d596271430fd08bdf27a527e4a659d70eb7797363703439842d49fbed93267174028b6c236dac4ccd2553033726ef4f6773a33cc690dd405cb7006c198cc743f8853b71aa0f38ed541a0a0fc0ef9a4a673fea537340e26b3acb5e6b3771f04c28fd3fff622e1e19c02fa6027e475875d8e34d1bcd254406ff0c93a6b8b49d00f0975d283c60ed961b1a502fa019a37b79428651a930585143d4d0a34797aefea2531c241f38b7b33a253526ad27dd88b9d9f0aedf09588bdbcbaf4a73e96087f9098580750633374f18f91c64b67854a244cfe2911199e47473e8657ceb981dfc1d2c39b72a42cde121c0e813f43e6e07f1b12fab331c1aa4a39323c96cab4f1d5dcd8bbed85ed03b228630d6d0fc0a861cbe3a2b1c7465719ac6e0021b6aa2f5751f61f835fffae725a9ecf931766b78db0686b3763a2ef86fa6975b91af92aeaa5cf3610898223a054ddfad9cb89dfa123f0e8a4d754206e12179d56595079643a58d96d69eb5292f7d60210e3ed59da3ef66880373a522f9af58839e32d86bb55ed6c0c3722a5b2c1dcb034cecce0048124c67284a6f4879361aa4f24c6015a53b2fe254a4940d1841a6b1d9ee271c3d4d1ae5e9c8fb573ce48214d7f5445eb794b6f6a6ef62690eba4d26f75718ed30b0837ca04596780142beba2b28c284ddb9b9308b7598190a9f7559478bf31cc65115444f586027781105f09ddf0e44a5431e2815dee28f2dc91a95e1e55f87f86115ff40405b6edab1cd0fbb52d780d545e4982049a88c2cc74839a3ff1087a5d3929e60a4f5f2d6daf2ff4cbfde8870785e6fe0ca9144234f662fb5ead3d180a285b6d2d65118a5dee87edb7f2ae6c3070f0f48d305862a5ee2fa025123a3d1ec918033dfab15c8754443ef68d8ad018bf82e7b957d332d05ccb453f14b7d93ef77ad94966e276715774f7dc77e202aee3034b3a0158b02ddaed0e96032896aba6b80b85b82938ae022b29c87d7e14cb4addd5c590af83006786d1804134e671c0bdd43a9f24dd19eaa4e92f2c63fd45ba1a07f52c4b811644adc70bbe32a99d68dfa8d91b0c024cced825eb97a3f6cedb485400bef082a5d2cb4201c23d041483dce467fe9624750ce49b2dc6392237769ffcc9b44041567bd517db2c338157d613d65b043a7a5b63d7b3766e119294d0235ad965864240fbfad2621fe5879d35773bd42fb652299b740b70a0a29e293ec7e6e1a57d202c3a53e6633ebc9789c21187cf50465bc64d93083aab9e68f03f5df3ed04c87212e51af120dee2ea047f038a1c68cf0fd08ef22ed92eb3e2bd829f718a47a130be8ec764c541a552d54c90745ffda94a85f94a64446617b9fa09459f0279625176052a77e2d4f8fb2c5633c406c119a784c330d045a9366e089f69fb97944d51715fc044aa94b2e3488a6292e946673ff6bd83879e6573d2def6eaf13ea68531e1dcda1e3810d5286c7235f36629621cb0460b65b7978d0930afe361a5c62ad08478d19232299545b90add286a27ce2830bb42c6ef7d6e6a0c02bef3f60ade32d456450f4dbf8af4826e060ec380f6a7494d039678bb2f1f7b53205836dfa3f2194a74aa95a01a0b8d78d69d286775152d489493c14b0741f42c5db666743741a81a856648c53d11ddbc166e8c8ae39a4b465ea92e8f89b7bb74aea4edf572809102d9418fba0e97345101cb548f6eabbcfad5120ba55b67016b07e599a06670b2d256cbcad2fffc698c448b9b9945a7276a63b199b9ee14577ce8b97db3911108b49b60769de23c69932c3e64def6f9222f3229dcc5a931c2deaf5a89a61541578e2cfddee86dc094f475c37e0e75d2b653a59e440fb88a1be2836bd56e6311a12b616aa482144a9a59d197eee8f07f3dc5fbc03de6ea2d97077fe1e2f88311f2b5f66ae8dfe0c04da41fb4d825b0b4b1797fb0a67d466603d734df87f35eb02a15f49403ffff4b0e07709ea207d7c87b54427f85a859a2d0e2b791efb4e3b173812be4ffadbd0d5d6f4563bd9c356d31e3b3300f78b754481d24cd3c8128809a9f3060f06688c16143f78849c642d6c430d4318cca0e56b60f47fbec5d54a1ba9f03126714727d70715eac4c5e9f456f6547165e66feced579f46a177d1ec28e56abc3fd0ed60eba2093900c126b792aac55899737d757e5a8a241f580ce4185ffca272d3fabfafb490e29728d15ef8497456b697d474386529855d89b8b0267eb02a4432aa7285346f73441306cd9e38f57f1e06ad4c503fa4d8f772dcf5135a7011a312e8ebbcca78d55931ba63057ace6ed5a88f636f89b0179b0bd7d5302677156b2f479cc898a840f0294b3496a13bb931cd44907c6aca32e7e6df3911b6ed87b6d8f11adbae0f41a73d28ea5eaa2026f82654c847f75ce7c776ab03116c454a025a599bff173ea7b9644778d51c9f7a0614c9675db79f0188d080f518ea4f10529fe0ef1348e56cd5a4bf8233d22d0e1bb7d576a1fd4433655517170eb967ccfb4fe5c365559053e2ac43617315546f40e1fabe2f91e36e1a2dd7d4217d3dcf29bd430755b149154a2dcea5ff61d8e401dbc70b4782a15ee360bf130d85f85b663acffb6056cc0e2eefe1fe192aa5ccbcd28afd359d86892925207c16c38f19b4f6771a99bf7a38126e65a12ae0353b5b63e526407150ceb17513212980897901a499c648e76f84f6d352f052301b10bd9f9b4d58977fcbdb37e6142f0d6f3431782c8007d8d5276cb7f3631abad85684643a81d36504773907bf64165393918e62eb622a4fe1438d9bf71f566346d023d94a060c585a4b280bc9a522ab31f1a6b12060fe3386cd955ff50f15bd84bdd8873c83d17614899d198fab0e2e8f217330932b501bacd288e7374013b4500ff3fcd5cc1d13adf9d556427f010f225af2b48e9e7f826c134f45ce460bc3887b3f96c07f6435c35b505085b11e4bc6e1edcf30faa45ddd4682eb0685d9f1b6a77d4b9b1406e421d9484e112b1945406c7ded1f9aae9836a4c3b89b3fc902933c3d891222e87c69ba0a72614515814b74b5235ad22883258681606a5990c39d4263a278d831725ae3105a9ab60256fba8c78aec97cbddd8818a21b9d9ea54366804aec21b53c56dfb09808ad3121c99396d10941f4379fee9cf500e29b6fa8c1ec0c9ec05556a815a6a9f6c9d2bbcb74bda4404171475a2186cbb11b6a42777733cefaaa0552cd17a9818b1e1303344c50e00ee9dc60c43c5a059dfbc9300adf4ea0e2348d62b7340ac64c89126de0b01cb9e6d8c9a96d00213e35f0f8c9844f1868f04c25ef09f40d9dc73d102c6442a6ab3763738bfac4b30060eefa07a8ef008bf4eb0f9832e30bb4407452d81c494b8e6614798199be9b27820f9b271cadee645d2987c9c1f0920e2e2a803e3571b38e0014b9125f069d32d105ba70fe3fc18e2539e218ff1a5635eb93702170da16708d6f558ed9d8216527751e531076edbdc11d60e3d0c6a4eafb54e0d7e26ad1777cc07921637d5c803be296f5ffa847d8ecc3982b51bfee1fee4eb164502125d75bc557f742de0e9d58d8cc8e76df44020f7133a79eb7ed89e11fb2aab4e12d370f506654f47347f688cb5489bbb32fed18dbc831086c350faae2902bb6f2558073076aca6342cc6ef76022935aa1ec2b08bad03036b5c6599adf22948cb0fe177f5bf8c89487d34858cea9a7934778f12d624b39453afb1638d4a03ce13ba050893db1d0d078b8cf3b3d0a916d395bf7fb2b0df037c00c2f6755c277806807807b63a4044638dee645d73b2e0116b66abe4e614c84b17008efb3c140127e4ea80bed86d8c64a2a8150cdb4e5b74107098620747ca5f2c8ff472fd1aa68819e85f1d7196e60e3115e7e73c4689be26ef583872d81b0a871f337dd106107a5bb5d3664ec857415944508b8884fc5178583cf104d01f763cccab330a2aeab77474fe28587526535a90bac6e95bf1d0fb4534b7f5eebf5afe1d3482bd07c34cbebb32cafa441858b69efbc62a5a8658dec92b8df808491e82d2e599bc2d6700bad24310548d9c5dabdc82c9ea31682659e3aee7eb6db1ca9db992d6f52998f953f3c4663ef92fa0f31fe683d1c9bc966c2062eb1cdd3db143a5d10ea82922e6f477f2fad83c732d11b4519029cb9095aa85c0a4e55def74bc6adfaf6f0b3991801cb7a0ebff89ad65388acc0e9b76d3ce0dc22b2e94c7507473c04d8f252214c8abc206219adc9652bd08c857937969e013e41e9e113f593dcd9f0f6f2ee1d2e60192f219d895f57d4fd4d3d91d3e1e3b26bb5f6286ce467a39e1ce26072725a7b3267feff0218f441148aa79d9cf194e41c2a46a473fa475d0b2cd6026825e727e2ac87f22bc713328e99b6b30aad2fab4a0134d6e651bb6fe524c5405d6754dae074b86b2cc02bf5bde44b783ee1178f0f1f72d4b56d2ab64aa85d703c6ed327056b7671b0e02a19e0e528b64a5b79384169d20e90b67a50585c029108babad1c2c630451db20334b9dbadef6d5616902988dd83c812c9592250826095982f8cc367ab73fa964f77d21bfa6dfaaf5127fef0f4c043a7e219c3b6f8c1d42538b3969bb86f8abf0a36e4693b20238520012ee241daa66f8dfc6b82c5a13825e6da74cbac928a3197a29691bab0144141fdd4d586a3af5d9c2f76ae0e82899907a86b429e4f5f4d36a8944f269936948434f25d41e62991f228a76d4af0579258eb040f8c47ec4def56d206af237d1d5bd9f25353427128289919f430f0ae2753a68bc300afe75de171c69de22460f787cc9cb8dab1f50fc37cf4c87841b6bdae7c8dfc0f3bb0c979f592cee94025954eb108cdbf0e6925d69bf22818f2c92b5efb22ff31a6a969ba7973a614a5ad36e126ebb7ddc1358062e02f7fb510ee8fc5c770e613f9d4a723d41aab5ef1ced3b3be4ad3178d2147b0fd3cd5a2501ec986138b04ef92dc137e2147dda69987bae41afa8e65e07a94e926b41c8310f0e19137e4a5606a8ae0b39b71072661eb23fd38f52b71527fc6ae78c800ec8050799e05c8595012c355daba291c856804b771e3598ab2f9e59ccd3dd872ce72d9af73221912f52f1c0ea11124463d55b21904c23b9b2fb57149bfba4b623ea1b15cc4d0fe81af83b9c6fc4b2b9b6a16f546dd118aa0f4d7f839bb723c8edb62e4fd0b52822ee4142eb7e1d5cc4f35649704a1c59ced2fd857a32aca8fab9272b5fdd3762b03f3aa1cb120cafb8cf1e41bff95dc262a7f6edb4ddbc263430bf0888038019c89d8936bc2577a1566724f3d2db6bf5502656777368f4fab6d76a0cea4d1e2b0bb3fe6988036f5e6f9b6966280d4456d0ee494f3003e8093d0ff52dc9f14a0bff8d47c85a69529920843fd7cbc7730cf4e37073b83bde5ce4f5702561dabda9d2ecfd4eb6498a21aabf7e6bfa9b4e142dbc87b9a9c2554b63a6241299764382f654a842c5491d2775074dc335308bf97aa273b7b9c9ebe906b501016f92f6672a65f9342e56dbc1c7a704f0c68cc405e41a243a7870c601135048029c39170249f40167673cdfb3b1a3a7d190e828841d814b6a01d170f6ac936c2b576ba386ab7f553f9041f32ad87d9c2e4a49455480d96d5a70da7cf44092482ba979adad5b93a28c84ffa4d1873066b552d6041a118df955860d15e07f91132bf1ae7a6f25011868144404e0e4e81f75d295f468f3a8bd9fc3d8f88f0d6bee0c138d14e1fdcc9bb72070684210ac4258c13f19056292b040e1e3c03a8b7d752a60c553817d6aa20fd4bfd62f00bd9eefab41aba9aafa5faa1f8c5c7013d07824c92d5586d42af87370e043379fbce42c8c90f27dcb8251ea9863d8d63d760d10f773fb2847bf6653dc48005a2983af855cd1386396e8940e07daf0ffc2253c2239eb47743abeaa5ce152b39dbae63e1366f68ac57e24247ac3b230201e557d18a170d2c7cb12602227555b702750af467f1c1bcc197f621ea061274023614b2557d1c4e456097e75fb5af9b165fe15984167c756db8960007dcdb16ed6de7407579b64a422d4e7a7182e171f264dc5eae15092064ff1735f3ef5940b89cc122700a9441a3a351114edf45409a0670bb7204793a2fd3be2683b2522f499348c182bcfb45fd28206a85e4a6f46ec637f5e213eeac3a381a7d94f769769d161931aebcb06605056a850384f534169128c3ea3730ac8cb81fb042216733259522e26edb38b11c2ec1a1c557bce2ab0a809a438639999e2b6b8eec10eb2527625bf075b64f69675791363e5ccd84708899f72eec7145454c71c7b405f32f6090cab2251018b620f56f281318f2b0208f29a57e875aa98eef368d2736a3f0c7e26ea0823c63541ceb15986d99c92fb9072f793395810aa681e6c3fe3b1a938f827fe24d898937bc5c1e1a0ff5876f63353dea251cb1203311a9ad4d4a924b441f7ef0056308148f300d151953b78fa73ac850dd56f9fdfcaf3ce86b8f59b738a6a8b260a1e62fe47f60e18990f8dc305ca585150405c81a60d17e8490ca1708949bf16851f5e46de92dcb0bddb074b6daf8bbee6dbd11665edb20510059b3de43785204310f7eaf39730817c62d470f2084418d9bddf3b3959e8d9fe32fb4166771b01da535830f47e82565e6c93116413d749821c8027d19f49e339c6420ed2d9f2000000000000000000000000000000cc1de21351c5e883f56ed2cabd16d4045400000000000000000000000000000000000fddd4884ab7c0834e73deb309c9490000000000000000000000000000003014fd0c8234a80e0bd5f67792dfe226620000000000000000000000000000000000120846272377c63d5133faebb9555a0000000000000000000000000000007c6a72d163db3e5674d7fec145be2dc1ce000000000000000000000000000000000022e805de7e535957cb4b27020ddb09000000000000000000000000000000c0cc06ad40747f0454e3d46e9b124ca0c6000000000000000000000000000000000005c05e9b323489d1e23489e46694a9000000000000000000000000000000460b53b98a98c37392c8c6303d09082246000000000000000000000000000000000003eaed4885dcc4c2ec3c3996acb97c000000000000000000000000000000f379de3b4176c3b8666ebb1959b7986e8d000000000000000000000000000000000006e246638715f5fabfa6e6bb958e4a00000000000000000000000000000062b7d646633c301f2f7ff83754630fcbf40000000000000000000000000000000000246aae9fed66b1cdfcaca4559c110e000000000000000000000000000000fde21bf287f339bf60de78a8d927d7ae6f0000000000000000000000000000000000234e6d202e0e796d4b77aa57b0b155000000000000000000000000000000ef37c21b707a2e3b32fa4f0e1c9852c4c500000000000000000000000000000000000aea9fdc289f367c0b55a69d2e0dc6000000000000000000000000000000866333b5c1a8344a298931995a694d2b6700000000000000000000000000000000001f6c8579614235072bfae2634cd21400000000000000000000000000000066a1722eca83fdf3eed73f64f0378a09b8000000000000000000000000000000000003463b1b2f2332483c491f9ef866f500000000000000000000000000000096f6d617536e18faf4a667f0c0aa47155c000000000000000000000000000000000006e27e4e5b181236b2517c88274f8b000000000000000000000000000000e693bb470422e43de7bb3aa4d9630b15d700000000000000000000000000000000001f547afd9e83b0342584965798433c0000000000000000000000000000006ff73dc2cdeba56048df093fe17595b90a00000000000000000000000000000000001802c32722537c487502ccf651bd2d000000000000000000000000000000f19ea6e3a4b52dcd3b244e6be39e231c1b00000000000000000000000000000000002ea64c65fe63b404e46cf63e33400900000000000000000000000000000077b4ee9c3b22aad46af3295f8ccc6bc72c00000000000000000000000000000000001727bfdbcaf55e0357c5d9d4239338000000000000000000000000000000925dd705eb2ad43dda4c28c0ef97f65c5400000000000000000000000000000000001920f0170efd7a100ca53a80981a6700000000000000000000000000000026721453a8ea57b9f3ffbba8996d38f224000000000000000000000000000000000027531b7dd249718455725f26350db300000000000000000000000000000092f0291701f01cd9fc47fd8cccb9d0edf400000000000000000000000000000000001d7108b1c4e0021c1c553173a342f200000000000000000000000000000086f188a8fdd685ceded977aca9e78a2e2a000000000000000000000000000000000025fbf6129bf61afb7203cb3e01dfe20000000000000000000000000000000d318b44118a7ec800cce7bcc8bf8ea99a000000000000000000000000000000000000c1495b9957295d8f8e1cc9ff9c550000000000000000000000000000001f98c33ab0f8daec6e7a2024ce51247ba700000000000000000000000000000000001104215414a8f5aaea4b8944a3c79f000000000000000000000000000000a2206a14ddd38117927d15f5a5cc2c75a4000000000000000000000000000000000008ca7a94e6f0b1d832e0a777c3a28f00000000000000000000000000000050cb7f4d0c2f19e446969a28eda9de375900000000000000000000000000000000001abc687da65fd543100ff4ab914ef70000000000000000000000000000008a77e7e047a66eccaf5b0de45e0315fbd4000000000000000000000000000000000006befaf117e7c5d64b2f8a25cffb3a00000000000000000000000000000097c80290582bf65d35565bd501722d56b8000000000000000000000000000000000012de28578605d4c90c0319d2c7d1860000000000000000000000000000009ab95d1e960c36c40c69dd5d67ceb0218600000000000000000000000000000000000966f0df3a95de91468284a5308c2b0000000000000000000000000000000ce34b479503a421d5196e4632eb1c5bf30000000000000000000000000000000000067f5cf9e3c78c979846bb3eed12430000000000000000000000000000004347f81fc40bc1925254c15bf5e3238ab2000000000000000000000000000000000029dd7dbc1aabf6ddff5e49e02fe1330000000000000000000000000000004fbffeaf56b53dedd76aec685fd1d9a5c100000000000000000000000000000000001f6f0dbd6e8676d4ee2c3cc6f6008d000000000000000000000000000000761ae2c0471bfb89985019b3d929768fd1000000000000000000000000000000000021c696ef992647b40c0f1cf27b1a8800000000000000000000000000000025c55b77af64c6dc4e4d30cb91a529714000000000000000000000000000000000002ca60d8ddca21dfcae5baa540bbcaa000000000000000000000000000000f87f17807efb1f8a95afd5a45e9999ffc5000000000000000000000000000000000014cc661a61a7a6328b9df8d950812e0000000000000000000000000000006a2be08c362a476a1a5b122f1e10e985a400000000000000000000000000000000001f9f9b8fd48e92a4fe394e1b07913300000000000000000000000000000083be9e2e48398f8e20b178a03e205883a1000000000000000000000000000000000009ad4fcdbccaaaea503504010983c8000000000000000000000000000000cf593fa66a2285f094f2a6029bb9f1b3da00000000000000000000000000000000001d8b98b7e522d8027911a24528f139", - "publicInputs": [ - "0000000000000000000000000000000000000000000000000000000000000067", - "000000000000000000000000000000000000000000000000000000000000006f", - "0000000000000000000000000000000000000000000000000000000000000062", - "000000000000000000000000000000000000000000000000000000000000006c", - "0000000000000000000000000000000000000000000000000000000000000069", - "000000000000000000000000000000000000000000000000000000000000006e" - ] -} diff --git a/hydra/garaga/precompiled_circuits/miller_tower.py b/hydra/garaga/precompiled_circuits/miller_tower.py new file mode 100644 index 00000000..a94a5dca --- /dev/null +++ b/hydra/garaga/precompiled_circuits/miller_tower.py @@ -0,0 +1,620 @@ +from typing import Iterator + +from garaga.definitions import BLS12_381_ID, BN254_ID, CURVES +from garaga.extension_field_modulo_circuit import ModuloCircuitElement +from garaga.precompiled_circuits.multi_miller_loop import MultiMillerLoopCircuit + + +def tower_line_function_sparsity(curve_id: int) -> list[int]: + match curve_id: + case 0: + return [2, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0] + case 1: + return [1, 1, 1, 1, 0, 0, 0, 0, 2, 0, 0, 0] + case _: + raise ValueError(f"Invalid curve ID: {curve_id}") + + +class MillerTowerCircuit(MultiMillerLoopCircuit): + def __init__( + self, + name: str, + curve_id: int, + n_pairs: int, + compilation_mode: int = 1, + ): + super().__init__( + name=name, + curve_id=curve_id, + n_pairs=n_pairs, + compilation_mode=compilation_mode, + ) + + def eval_tower_line(self, line: Iterator[ModuloCircuitElement], yInv, xNegOverY): + assert len(line) == 4 + # Input is R0 = slope, R1 = intercept + r0 = [line[0], line[1]] + r1 = [line[2], line[3]] + if self.curve_id == BN254_ID: + return [ + self.mul(r0[0], xNegOverY), + self.mul(r0[1], xNegOverY), + self.mul(r1[0], yInv), + self.mul(r1[1], yInv), + ] + elif self.curve_id == BLS12_381_ID: + return [ + self.mul(r1[0], yInv), + self.mul(r1[1], yInv), + self.mul(r0[0], xNegOverY), + self.mul(r0[1], xNegOverY), + ] + else: + raise NotImplementedError + + def mul_by_line_tower( + self, + tower_fp12: list[ModuloCircuitElement], + line_evaluated: list[ModuloCircuitElement], + ): + assert len(tower_fp12) == 12 + assert ( + len(line_evaluated) == 4 + ), f"Expected 4 elements, got {len(line_evaluated)}" + c0_fp6, c1_fp6 = tower_fp12[0:6], tower_fp12[6:12] + # c0_b0, c0_b1, c0_b2 = c0[0:2], c0[2:4], c0[4:6] + # c1_b0, c1_b1, c1_b2 = c1[0:2], c1[2:4], c1[4:6] + + # MulBy34. multiplication by sparse element (1,0,0,c3,c4,0) + if self.curve_id == 0: + a = c0_fp6 + b = c1_fp6 + c3, c4 = line_evaluated[0:2], line_evaluated[2:4] + b = self._fp6_by_01(b, c3, c4) + + d0 = self.extf_add( + [self.set_or_get_constant(1), self.set_or_get_constant(0)], c3 + ) + d = self.extf_add(c0_fp6, c1_fp6) + d = self._fp6_by_01(d, d0, c4) + + z_c1 = self.extf_add(self.extf_neg(self.extf_add(a, b)), d) + z_c0 = self.extf_add(self.fp6_mul_by_non_residue(b), a) + + return z_c0 + z_c1 + elif self.curve_id == 1: + # Mul By 01 + # // MulBy01 multiplication by sparse element (c0, c1, 0, 0, 1) + # func (z *E12) MulBy01(c0, c1 *E2) *E12 { + + # var a, b E6 + # var d E2 + + # a.Set(&z.C0) + # a.MulBy01(c0, c1) + + # b.MulByNonResidue(&z.C1) + # d.SetOne().Add(c1, &d) + + # z.C1.Add(&z.C1, &z.C0) + # z.C1.MulBy01(c0, &d) + # z.C1.Sub(&z.C1, &a) + # z.C1.Sub(&z.C1, &b) + # z.C0.MulByNonResidue(&b) + # z.C0.Add(&z.C0, &a) + + # return z + # } + c0, c1 = line_evaluated[0:2], line_evaluated[2:4] + + a = c0_fp6 + a = self._fp6_by_01(a, c0, c1) + b = self.fp6_mul_by_non_residue(c1_fp6) + + d = [self.add(self.set_or_get_constant(1), c1[0]), c1[1]] + + z_c1 = self.extf_add(c1_fp6, c0_fp6) + z_c1 = self._fp6_by_01(z_c1, c0, d) + z_c1 = self.extf_sub(z_c1, a) + z_c1 = self.extf_sub(z_c1, b) + + z_c0 = self.fp6_mul_by_non_residue(b) + z_c0 = self.extf_add(z_c0, a) + return z_c0 + z_c1 + + def mul_by_line_line_tower(self, tower_fp12, line_line): + assert len(tower_fp12) == 12 + assert len(line_line) == 10 + c0_fp6, c1_fp6 = tower_fp12[0:6], tower_fp12[6:12] + + def mul_line_by_line_tower(self, l1, l2): + assert len(l1) == 4 + assert len(l2) == 4 + if self.curve_id == 0: + d3, d4 = l1[0:2], l1[2:4] + c3, c4 = l2[0:2], l2[2:4] + + x3 = self.fp2_mul(c3, d3) + x4 = self.fp2_mul(c4, d4) + x04 = self.extf_add(c4, d4) + x03 = self.extf_add(c3, d3) + tmp = self.extf_add(c3, c4) + x34 = self.extf_sub( + self.extf_sub(self.fp2_mul(self.extf_add(d3, d4), tmp), x3), x4 + ) + z00 = self.fp2_mul_by_non_residue(x4) + z00 = [self.add(z00[0], self.set_or_get_constant(1)), z00[1]] + + return z00 + x3 + x34 + x03 + x04 + if self.curve_id == 1: + + c0, c1 = l2[0:2], l2[2:4] + d0, d1 = l1[0:2], l1[2:4] + + x0 = self.fp2_mul(c0, d0) + x1 = self.fp2_mul(c1, d1) + + x04 = self.extf_add(d0, c0) + tmp = self.extf_add(c0, c1) + x01 = self.extf_sub( + self.extf_sub(self.fp2_mul(self.extf_add(d0, d1), tmp), x0), x1 + ) + x14 = self.extf_add(d1, c1) + z00 = self.fp2_mul_by_non_residue( + [self.set_or_get_constant(1), self.set_or_get_constant(0)] + ) + z00 = self.extf_add(z00, x0) + + # C0B0 + C0B1 + C0B2 + C1B1 + C1B2 + return z00 + x01 + x1 + x04 + x14 + + def _fp6_by_01(self, e6: list[ModuloCircuitElement], c0, c1): + assert len(e6) == 6 + assert len(c0) == 2 + assert len(c1) == 2 + b0, b1, b2 = e6[0:2], e6[2:4], e6[4:6] + a = self.fp2_mul(b0, c0) + b = self.fp2_mul(b1, c1) + tmp = self.extf_add(b1, b2) + t0 = self.fp2_mul(c1, tmp) + t0 = self.extf_sub(t0, b) + t0 = self.fp2_mul_by_non_residue(t0) + t0 = self.extf_add(t0, a) + + tmp = self.extf_add(b0, b2) + t2 = self.fp2_mul(c0, tmp) + t2 = self.extf_sub(t2, a) + t2 = self.extf_add(t2, b) + + t1 = self.extf_add(c0, c1) + tmp = self.extf_add(b0, b1) + t1 = self.fp2_mul(t1, tmp) + t1 = self.extf_sub(t1, a) + t1 = self.extf_sub(t1, b) + + b0 = t0 + b1 = t1 + b2 = t2 + # flatten lists: + return b0 + b1 + b2 + + def fp6_mul_by_non_residue(self, a: list[ModuloCircuitElement]): + assert len(a) == 6 + a = list(a) + b0, b1, b2 = a[0:2], a[2:4], a[4:6] + return self.fp2_mul_by_non_residue(b2) + b0 + b1 + + def fp12_square(self, a: list[ModuloCircuitElement]): + assert len(a) == 12 + + xc0, xc1 = a[0:6], a[6:12] + c0 = self.extf_sub(xc0, xc1) + c3 = self.extf_add(xc0, self.extf_neg(self.fp6_mul_by_non_residue(xc1))) + c2 = self.fp6_mul(xc0, xc1) + c0 = self.extf_add(self.fp6_mul(c0, c3), c2) + z_c1 = self.extf_add(c2, c2) + z_c0 = self.extf_add(c0, self.fp6_mul_by_non_residue(c2)) + + return z_c0 + z_c1 + + def fp12_mul(self, x: list[ModuloCircuitElement], y: list[ModuloCircuitElement]): + assert len(x) == 12 + assert len(y) == 12 + + x_c0, x_c1 = x[0:6], x[6:12] + y_c0, y_c1 = y[0:6], y[6:12] + + a = self.extf_add(x_c0, x_c1) + b = self.extf_add(y_c0, y_c1) + a = self.fp6_mul(a, b) + b = self.fp6_mul(x_c0, y_c0) + c = self.fp6_mul(x_c1, y_c1) + z_c1 = self.extf_sub(a, b) + z_c1 = self.extf_sub(z_c1, c) + z_c0 = self.fp6_mul_by_non_residue(c) + z_c0 = self.extf_add(z_c0, b) + + return z_c0 + z_c1 + + def fp6_mul(self, a: list[ModuloCircuitElement], b: list[ModuloCircuitElement]): + assert len(a) == 6 + assert len(b) == 6 + + xb0, xb1, xb2 = a[0:2], a[2:4], a[4:6] + yb0, yb1, yb2 = b[0:2], b[2:4], b[4:6] + + t0 = self.fp2_mul(xb0, yb0) + t1 = self.fp2_mul(xb1, yb1) + t2 = self.fp2_mul(xb2, yb2) + + c0 = self.extf_add(xb1, xb2) + tmp = self.extf_add(yb1, yb2) + + c0 = self.extf_add( + self.fp2_mul_by_non_residue( + self.extf_sub(self.extf_sub(self.fp2_mul(c0, tmp), t1), t2) + ), + t0, + ) + + c1 = self.extf_add(xb0, xb1) + tmp = self.extf_add(yb0, yb1) + c1 = self.extf_sub(self.extf_sub(self.fp2_mul(c1, tmp), t0), t1) + tmp = self.fp2_mul_by_non_residue(t2) + c1 = self.extf_add(c1, tmp) + + tmp = self.extf_add(xb0, xb2) + c2 = self.extf_add( + self.extf_sub( + self.extf_sub(self.fp2_mul(self.extf_add(yb0, yb2), tmp), t0), t2 + ), + t1, + ) + + return c0 + c1 + c2 + + def fp12_inverse(self, a: list[ModuloCircuitElement]): + + assert len(a) == 12 + + xc0, xc1 = a[0:6], a[6:12] + + t0 = self.fp6_square(xc0) + t1 = self.fp6_square(xc1) + tmp = self.fp6_mul_by_non_residue(t1) + t0 = self.extf_sub(t0, tmp) + t1 = self.fp6_inverse(t0) + z_c0 = self.fp6_mul(xc0, t1) + z_c1 = self.fp6_mul(xc1, t1) + z_c1 = self.extf_neg(z_c1) + + return z_c0 + z_c1 + + def fp6_inverse(self, a: list[ModuloCircuitElement]): + assert len(a) == 6 + # func (z *E6) Inverse(x *E6) *E6 { + # // Algorithm 17 from https://eprint.iacr.org/2010/354.pdf + # // step 9 is wrong in the paper it's t1-t4 + # var t0, t1, t2, t3, t4, t5, t6, c0, c1, c2, d1, d2 E2 + # t0.Square(&x.B0) + # t1.Square(&x.B1) + # t2.Square(&x.B2) + # t3.Mul(&x.B0, &x.B1) + # t4.Mul(&x.B0, &x.B2) + # t5.Mul(&x.B1, &x.B2) + # c0.MulByNonResidue(&t5).Neg(&c0).Add(&c0, &t0) + # c1.MulByNonResidue(&t2).Sub(&c1, &t3) + # c2.Sub(&t1, &t4) + # t6.Mul(&x.B0, &c0) + # d1.Mul(&x.B2, &c1) + # d2.Mul(&x.B1, &c2) + # d1.Add(&d1, &d2).MulByNonResidue(&d1) + # t6.Add(&t6, &d1) + # t6.Inverse(&t6) + # z.B0.Mul(&c0, &t6) + # z.B1.Mul(&c1, &t6) + # z.B2.Mul(&c2, &t6) + xb0, xb1, xb2 = a[0:2], a[2:4], a[4:6] + t0 = self.fp2_square(xb0) + t1 = self.fp2_square(xb1) + t2 = self.fp2_square(xb2) + + t3 = self.fp2_mul(xb0, xb1) + t4 = self.fp2_mul(xb0, xb2) + t5 = self.fp2_mul(xb1, xb2) + c0 = self.extf_add(self.extf_neg(self.fp2_mul_by_non_residue(t5)), t0) + c1 = self.extf_sub(self.fp2_mul_by_non_residue(t2), t3) + c2 = self.extf_sub(t1, t4) + + t6 = self.fp2_mul(xb0, c0) + d1 = self.fp2_mul(xb2, c1) + d2 = self.fp2_mul(xb1, c2) + d1 = self.fp2_mul_by_non_residue(self.extf_add(d1, d2)) + t6 = self.extf_add(t6, d1) + t6 = self.fp2_inv(t6) + zb0 = self.fp2_mul(c0, t6) + zb1 = self.fp2_mul(c1, t6) + zb2 = self.fp2_mul(c2, t6) + + return zb0 + zb1 + zb2 + + def fp6_square(self, a: list[ModuloCircuitElement]): + assert len(a) == 6 + + xb0, xb1, xb2 = a[0:2], a[2:4], a[4:6] + c4 = self.fp2_mul(xb0, xb1) + c4 = self.extf_add(c4, c4) + c5 = self.fp2_square(xb2) + c1 = self.extf_add(self.fp2_mul_by_non_residue(c5), c4) + c2 = self.extf_sub(c4, c5) + c3 = self.fp2_square(xb0) + c4 = self.extf_add(self.extf_sub(xb0, xb1), xb2) + c5 = self.fp2_mul(xb1, xb2) + c5 = self.extf_add(c5, c5) + + c4 = self.fp2_square(c4) + c0 = self.extf_add(self.fp2_mul_by_non_residue(c5), c3) + zb2 = self.extf_sub(self.extf_add(self.extf_add(c2, c4), c5), c3) + zb0 = c0 + zb1 = c1 + + return zb0 + zb1 + zb2 + + def fp12_conjugate(self, a: list[ModuloCircuitElement]): + assert len(a) == 12 + + raise NotImplementedError("Not implemented") + + def fp12_cyclotomic_square(self, a: list[ModuloCircuitElement]): + assert len(a) == 12 + + xc0, xc1 = a[0:6], a[6:12] + xc0b0 = xc0[0:2] + xc0b1 = xc0[2:4] + xc0b2 = xc0[4:6] + xc1b0 = xc1[0:2] + xc1b1 = xc1[2:4] + xc1b2 = xc1[4:6] + + t0 = self.fp2_square(xc1b1) + t1 = self.fp2_square(xc0b0) + t6 = self.extf_add(xc1b1, xc0b0) + t6 = self.fp2_square(t6) + t6 = self.extf_sub(t6, t0) + t6 = self.extf_sub(t6, t1) + t2 = self.fp2_square(xc0b2) + t3 = self.fp2_square(xc1b0) + t7 = self.extf_add(xc0b2, xc1b0) + t7 = self.fp2_square(t7) + t7 = self.extf_sub(t7, t2) + t7 = self.extf_sub(t7, t3) + + t4 = self.fp2_square(xc1b2) + t5 = self.fp2_square(xc0b1) + t8 = self.extf_add(xc1b2, xc0b1) + t8 = self.fp2_square(t8) + t8 = self.extf_sub(t8, t4) + t8 = self.extf_sub(t8, t5) + t8 = self.fp2_mul_by_non_residue(t8) + + t0 = self.fp2_mul_by_non_residue(t0) + t0 = self.extf_add(t0, t1) + t2 = self.fp2_mul_by_non_residue(t2) + t2 = self.extf_add(t2, t3) + t4 = self.fp2_mul_by_non_residue(t4) + t4 = self.extf_add(t4, t5) + + zc0b0 = self.extf_sub(t0, xc0b0) + zc0b0 = self.extf_add(zc0b0, zc0b0) + zc0b0 = self.extf_add(zc0b0, t0) + + zc0b1 = self.extf_sub(t2, xc0b1) + zc0b1 = self.extf_add(zc0b1, zc0b1) + zc0b1 = self.extf_add(zc0b1, t2) + + zc0b2 = self.extf_sub(t4, xc0b2) + zc0b2 = self.extf_add(zc0b2, zc0b2) + zc0b2 = self.extf_add(zc0b2, t4) + + zc1b0 = self.extf_add(t8, xc1b0) + zc1b0 = self.extf_add(zc1b0, zc1b0) + zc1b0 = self.extf_add(zc1b0, t8) + + zc1b1 = self.extf_add(t6, xc1b1) + zc1b1 = self.extf_add(zc1b1, zc1b1) + zc1b1 = self.extf_add(zc1b1, t6) + + zc1b2 = self.extf_add(t7, xc1b2) + zc1b2 = self.extf_add(zc1b2, zc1b2) + zc1b2 = self.extf_add(zc1b2, t7) + + return zc0b0 + zc0b1 + zc0b2 + zc1b0 + zc1b1 + zc1b2 + + def fp2_conjugate(self, a: list[ModuloCircuitElement]): + assert len(a) == 2 + return [a[0], self.neg(a[1])] + + def mul_by_non_residue_k_power_n( + self, x: list[ModuloCircuitElement], k: int, n: int + ): + from garaga.hints.tower_backup import E2 + + assert len(x) == 2 + curve = CURVES[self.curve_id] + non_residue = E2(curve.nr_a0, curve.nr_a1, curve.p) + # nr^(n*(p^k-1)/6) + res: E2 = non_residue ** ((n * (curve.p**k - 1) // 6)) + if res.a1 != 0: + factor = [ + self.set_or_get_constant(res.a0), + self.set_or_get_constant(res.a1), + ] + return self.fp2_mul(factor, x) + else: + factor = self.set_or_get_constant(res.a0) + return [self.mul(factor, x[0]), self.mul(factor, x[1])] + + def fp12_frob(self, a: list[ModuloCircuitElement]): + assert len(a) == 12 + + c0b0 = self.fp2_conjugate(a[0:2]) + c0b0[0] = self.add( + c0b0[0], self.set_or_get_constant(0) + ) # Input cannot be output. # TODO: Make a manual circuit or something better. + c0b1 = self.fp2_conjugate(a[2:4]) + c0b2 = self.fp2_conjugate(a[4:6]) + c1b0 = self.fp2_conjugate(a[6:8]) + c1b1 = self.fp2_conjugate(a[8:10]) + c1b2 = self.fp2_conjugate(a[10:12]) + + c0b1 = self.mul_by_non_residue_k_power_n(c0b1, 1, 2) + c0b2 = self.mul_by_non_residue_k_power_n(c0b2, 1, 4) + c1b0 = self.mul_by_non_residue_k_power_n(c1b0, 1, 1) + c1b1 = self.mul_by_non_residue_k_power_n(c1b1, 1, 3) + c1b2 = self.mul_by_non_residue_k_power_n(c1b2, 1, 5) + + return c0b0 + c0b1 + c0b2 + c1b0 + c1b1 + c1b2 + + def fp12_frob_square(self, a: list[ModuloCircuitElement]): + assert len(a) == 12 + c0b0 = [ + self.add(a[0], self.set_or_get_constant(0)), + self.add(a[1], self.set_or_get_constant(0)), + ] # Input cannot be output. # TODO: Make a manual circuit or something better. + c0b1 = self.mul_by_non_residue_k_power_n(a[2:4], 2, 2) + c0b2 = self.mul_by_non_residue_k_power_n(a[4:6], 2, 4) + c1b0 = self.mul_by_non_residue_k_power_n(a[6:8], 2, 1) + c1b1 = self.mul_by_non_residue_k_power_n(a[8:10], 2, 3) + c1b2 = self.mul_by_non_residue_k_power_n(a[10:12], 2, 5) + + return c0b0 + c0b1 + c0b2 + c1b0 + c1b1 + c1b2 + + def fp12_frob_cube(self, a: list[ModuloCircuitElement]): + assert len(a) == 12 + + c0b0 = self.fp2_conjugate(a[0:2]) + c0b0[0] = self.add( + c0b0[0], self.set_or_get_constant(0) + ) # Input cannot be output. # TODO: Make a manual circuit or something better. + c0b1 = self.fp2_conjugate(a[2:4]) + c0b2 = self.fp2_conjugate(a[4:6]) + c1b0 = self.fp2_conjugate(a[6:8]) + c1b1 = self.fp2_conjugate(a[8:10]) + c1b2 = self.fp2_conjugate(a[10:12]) + + c0b1 = self.mul_by_non_residue_k_power_n(c0b1, 3, 2) + c0b2 = self.mul_by_non_residue_k_power_n(c0b2, 3, 4) + c1b0 = self.mul_by_non_residue_k_power_n(c1b0, 3, 1) + c1b1 = self.mul_by_non_residue_k_power_n(c1b1, 3, 3) + c1b2 = self.mul_by_non_residue_k_power_n(c1b2, 3, 5) + + return c0b0 + c0b1 + c0b2 + c1b0 + c1b1 + c1b2 + + def fp12_cyclotomic_square_compressed( + self, + xc0b1: list[ModuloCircuitElement], + xc0b2: list[ModuloCircuitElement], + xc1b0: list[ModuloCircuitElement], + xc1b2: list[ModuloCircuitElement], + ): + assert len(xc0b1) == len(xc0b2) == len(xc1b0) == len(xc1b2) == 2 + + t0 = self.fp2_square(xc0b1) + t1 = self.fp2_square(xc1b2) + t5 = self.extf_add(xc0b1, xc1b2) + t2 = self.fp2_square(t5) + + t3 = self.extf_add(t0, t1) + t5 = self.extf_sub(t2, t3) + + t6 = self.extf_add(xc1b0, xc0b2) + t3 = self.fp2_square(t6) + t2 = self.fp2_square(xc1b0) + + t6 = self.fp2_mul_by_non_residue(t5) + t5 = self.extf_add(t6, xc1b0) + t5 = self.extf_add(t5, t5) + + zc1b0 = self.extf_add(t5, t6) + + t4 = self.fp2_mul_by_non_residue(t1) + t5 = self.extf_add(t0, t4) + t6 = self.extf_sub(t5, xc0b2) + + t1 = self.fp2_square(xc0b2) + t6 = self.extf_add(t6, t6) + zc0b2 = self.extf_add(t6, t5) + + t4 = self.fp2_mul_by_non_residue(t1) + t5 = self.extf_add(t2, t4) + t6 = self.extf_sub(t5, xc0b1) + t6 = self.extf_add(t6, t6) + zc0b1 = self.extf_add(t6, t5) + + t0 = self.extf_add(t2, t1) + t5 = self.extf_sub(t3, t0) + t6 = self.extf_add(t5, xc1b2) + t6 = self.extf_add(t6, t6) + zc1b2 = self.extf_add(t5, t6) + + return zc0b1 + zc0b2 + zc1b0 + zc1b2 + + def fp12_decompress_karabina_pt_I_c1b2_Z(self, xc0b1, xc1b2): + + assert len(xc0b1) == len(xc1b2) == 2 + + t0 = self.fp2_mul(xc0b1, xc1b2) + t0 = self.extf_add(t0, t0) + + # t1 = xc0b2 + + return t0 + + def fp12_decompress_karabina_pt_I_c1b2_NZ( + self, + xc0b1: list[ModuloCircuitElement], + xc0b2: list[ModuloCircuitElement], + xc1b0: list[ModuloCircuitElement], + xc1b2: list[ModuloCircuitElement], + ): + assert len(xc0b1) == len(xc0b2) == len(xc1b0) == len(xc1b2) == 2 + + t0 = self.fp2_square(xc0b1) + t1 = self.extf_sub(t0, xc0b2) + t1 = self.extf_add(t1, t1) + t1 = self.extf_add(t1, t0) + + t2 = self.fp2_square(xc1b2) + t0 = self.extf_add(self.fp2_mul_by_non_residue(t2), t1) + t1 = self.extf_add(xc1b0, xc1b0) + t1 = self.extf_add(t1, t1) + + return t0, t1 + + def fp12_decompress_karabina_pt_II( + self, + t0: list[ModuloCircuitElement], + t1: list[ModuloCircuitElement], + xc0b1: list[ModuloCircuitElement], + xc0b2: list[ModuloCircuitElement], + xc1b0: list[ModuloCircuitElement], + xc1b2: list[ModuloCircuitElement], + ): + assert len(t0) == len(t1) == 2 + assert len(xc0b1) == len(xc0b2) == len(xc1b0) == len(xc1b2) == 2 + + zc1b1 = self.fp2_div(t0, t1) + + t1 = self.fp2_mul(xc0b2, xc0b1) + t2 = self.extf_sub(self.fp2_square(zc1b1), t1) + t2 = self.extf_add(t2, t2) + t2 = self.extf_sub(t2, t1) + t1 = self.fp2_mul(xc1b0, xc1b2) + t2 = self.extf_add(t2, t1) + zc0b0 = self.fp2_mul_by_non_residue(t2) + zc0b0 = [ + self.add(zc0b0[0], self.set_or_get_constant(1)), + zc0b0[1], + ] + + return zc0b0, zc1b1 diff --git a/hydra/garaga/precompiled_circuits/multi_miller_loop.py b/hydra/garaga/precompiled_circuits/multi_miller_loop.py index c4bd0425..9afd1d65 100644 --- a/hydra/garaga/precompiled_circuits/multi_miller_loop.py +++ b/hydra/garaga/precompiled_circuits/multi_miller_loop.py @@ -28,6 +28,7 @@ def __init__( compilation_mode: int = 0, precompute_lines: bool = False, n_points_precomputed_lines: int = None, + tower_mode: bool = False, ): super().__init__( name=name, diff --git a/hydra/garaga/precompiled_circuits/multi_pairing_check.py b/hydra/garaga/precompiled_circuits/multi_pairing_check.py index e3623aa1..7c3f8c16 100644 --- a/hydra/garaga/precompiled_circuits/multi_pairing_check.py +++ b/hydra/garaga/precompiled_circuits/multi_pairing_check.py @@ -88,10 +88,23 @@ def get_max_Q_degree(curve_id: int, n_pairs: int) -> int: raise NotImplementedError(f"Curve {curve_id} not implemented") f_degree = 11 - lamda_root_degree = 11 - # Largest Q happens in bit_00 case where we do (f*f* Π_n_pairs(line)^2 * Π_n_pairs(line) + lambda_root_degree = 11 + + if curve_id == CurveID.BN254.value: + # Largest degree happen in bit_10 case where we do (f*f*C * Π_n_pairs(line)^2 * Π_n_pairs(line)) + max_q_degree = ( + 4 * f_degree + + 2 * lambda_root_degree + + 4 * line_degree * n_pairs + + line_degree * n_pairs + - 12 + ) + else: + # Largest Q happens in bit_00 case where we do (f*f* Π_n_pairs(line)^2 * Π_n_pairs(line) + max_q_degree = ( + 4 * f_degree + 2 * line_degree * n_pairs + line_degree * n_pairs - 12 + ) - max_q_degree = 4 * f_degree + 2 * line_degree * n_pairs + line_degree * n_pairs - 12 return max_q_degree @@ -215,6 +228,81 @@ def bit_00_case( ) return new_f, new_new_points + def bit_01_case( + self, + f: list[ModuloCircuitElement], + points: list[tuple[list[ModuloCircuitElement], list[ModuloCircuitElement]]], + Q_selects: list[tuple[list[ModuloCircuitElement], list[ModuloCircuitElement]]], + c_or_c_inv: list[ModuloCircuitElement], + n_pairs: int, + ): + + assert len(points) == n_pairs + new_lines = [] + new_points = [] + for k in range(n_pairs): + T, l1 = self.double_step(points[k], k) + new_lines.append(l1) + new_lines.append(l1) # Double since it's going to be squared + new_points.append(T) + + new_new_points = [] + new_new_lines = [] + + for k in range(n_pairs): + T, l1, l2 = self.double_and_add_step(new_points[k], Q_selects[k], k) + new_new_lines.append(l1) + new_new_lines.append(l2) + new_new_points.append(T) + + # (f^2 * Π_(new_lines))^2 * Π_new_new_lines = f^4 * Π_new_lines^2 * Π_new_new_lines + new_f = self.extf_mul( + [f, f, f, f, *new_lines, *new_new_lines, c_or_c_inv], + 12, + Ps_sparsities=[None] * 4 + + [self.line_sparsity] * n_pairs * 2 + + [self.line_sparsity] * n_pairs * 2 + + [None], + ) + return new_f, new_new_points + + def bit_10_case( + self, + f: list[ModuloCircuitElement], + points: list[tuple[list[ModuloCircuitElement], list[ModuloCircuitElement]]], + Q_selects: list[tuple[list[ModuloCircuitElement], list[ModuloCircuitElement]]], + c_or_c_inv: list[ModuloCircuitElement], + n_pairs: int, + ): + assert len(points) == n_pairs + new_lines = [] + new_points = [] + for k in range(n_pairs): + T, l1, l2 = self.double_and_add_step(points[k], Q_selects[k], k) + new_lines.append(l1) + new_lines.append(l1) # Double since it's going to be squared + new_lines.append(l2) + new_lines.append(l2) # Double since it's going to be squared + new_points.append(T) + + new_new_points = [] + new_new_lines = [] + + for k in range(n_pairs): + T, l1 = self.double_step(new_points[k], k) + new_new_lines.append(l1) + new_new_points.append(T) + + new_f = self.extf_mul( + [f, f, f, f, c_or_c_inv, c_or_c_inv, *new_lines, *new_new_lines], + 12, + Ps_sparsities=[None] * 4 + + [None, None] + + [self.line_sparsity] * n_pairs * 4 + + [self.line_sparsity] * n_pairs, + ) + return new_f, new_new_points + def bit_1_init_case( self, f: list[ModuloCircuitElement], @@ -326,23 +414,52 @@ def multi_pairing_check( i = start_index - 1 while i >= 0: - if self.loop_counter[i] == 0: - if i > 0 and self.loop_counter[i - 1] == 0: - # Two consecutive bits are 0, call bit_00_case - f, Qs = self.bit_00_case(f, Qs, n_pairs) - i -= 1 # Skip the next bit since it's already processed + if self.loop_counter[i] == 0: # First bit is 0 + if i > 0: # Check next bit if it exists + next_bit = self.loop_counter[i - 1] + if next_bit == 0: + # 00 case + f, Qs = self.bit_00_case(f, Qs, n_pairs) + i -= 1 # Skip next bit + elif next_bit in (1, -1) and self.curve_id == CurveID.BN254.value: + # 01 or 0(-1) case + Q_selects = [ + self.Q[k] if next_bit == 1 else self.Qneg[k] + for k in range(n_pairs) + ] + c_or_c_inv = c_inv if next_bit == 1 else c + f, Qs = self.bit_01_case(f, Qs, Q_selects, c_or_c_inv, n_pairs) + i -= 1 # Skip next bit + else: + # Single 0 (BLS only) + f, Qs = self.bit_0_case(f, Qs, n_pairs) else: - # Single bit 0, call bit_0_case + # Single 0 at the end f, Qs = self.bit_0_case(f, Qs, n_pairs) - elif self.loop_counter[i] == 1 or self.loop_counter[i] == -1: - # Choose Q or -Q depending on the bit for the addition. + + elif self.loop_counter[i] in (1, -1): # First bit is ±1 + # Calculate Q_selects and c_or_c_inv based on the si Q_selects = [ self.Q[k] if self.loop_counter[i] == 1 else self.Qneg[k] for k in range(n_pairs) ] - # Want to multiply by 1/c if bit is positive, by c if bit is negative. c_or_c_inv = c_inv if self.loop_counter[i] == 1 else c - f, Qs = self.bit_1_case(f, Qs, Q_selects, n_pairs, c_or_c_inv) + + if ( + i > 0 + and self.loop_counter[i - 1] == 0 + and self.curve_id == CurveID.BN254.value + ): + # 10 or (-1)0 case + f, Qs = self.bit_10_case(f, Qs, Q_selects, c_or_c_inv, n_pairs) + i -= 1 # Skip next bit + elif i == 0 or self.curve_id == CurveID.BLS12_381.value: + # Single ±1 at the end + f, Qs = self.bit_1_case(f, Qs, Q_selects, n_pairs, c_or_c_inv) + else: + raise NotImplementedError( + f"Bit {self.loop_counter[i]} not implemented" + ) else: raise NotImplementedError(f"Bit {self.loop_counter[i]} not implemented") i -= 1 diff --git a/hydra/garaga/starknet/cli/declare.py b/hydra/garaga/starknet/cli/declare.py index 2bd0d753..d4de5a0c 100644 --- a/hydra/garaga/starknet/cli/declare.py +++ b/hydra/garaga/starknet/cli/declare.py @@ -18,7 +18,7 @@ app = typer.Typer() -def declare_project( +def declare( project_path: Annotated[ Path, typer.Option( diff --git a/hydra/garaga/starknet/cli/deploy.py b/hydra/garaga/starknet/cli/deploy.py index 4f89cb48..ccd2eb31 100644 --- a/hydra/garaga/starknet/cli/deploy.py +++ b/hydra/garaga/starknet/cli/deploy.py @@ -18,7 +18,7 @@ app = typer.Typer() -def deploy_project( +def deploy( class_hash: Annotated[ str, typer.Option( @@ -81,6 +81,7 @@ def deploy_project( auto_estimate=True, salt=1, cairo_version=1, + abi=[], ) ) elif fee.lower() == "strk": diff --git a/hydra/garaga/starknet/cli/gen.py b/hydra/garaga/starknet/cli/gen.py index 02f90bde..77d2da62 100644 --- a/hydra/garaga/starknet/cli/gen.py +++ b/hydra/garaga/starknet/cli/gen.py @@ -10,9 +10,9 @@ from garaga.starknet.cli.utils import complete_proof_system from garaga.starknet.groth16_contract_generator.generator import ( ECIP_OPS_CLASS_HASH, - Groth16VerifyingKey, gen_groth16_verifier, ) +from garaga.starknet.honk_contract_generator.generator_honk import gen_honk_verifier def gen( @@ -23,7 +23,7 @@ def gen( vk: Annotated[ Path, typer.Option( - help="Path to the verification key JSON file", + help="Path to the verification key file. Expects a JSON for groth16, binary format for Honk.", file_okay=True, dir_okay=False, exists=True, @@ -43,11 +43,6 @@ def gen( Generate a Cairo verifier for a given proof system. Automatically detects the curve from the verification key. """ - verifying_key = Groth16VerifyingKey.from_json(vk) - print( - f"[bold cyan]Detected curve: [bold yellow]{verifying_key.curve_id}[/bold yellow][/bold cyan]" - ) - cwd = Path.cwd() with Progress( SpinnerColumn(), @@ -58,13 +53,24 @@ def gen( f"[bold cyan]Generating Smart Contract project for [bold yellow]{system}[/bold yellow] using [bold yellow]{Path(vk).name}[/bold yellow]...[/bold cyan]", total=None, ) - gen_groth16_verifier( - vk=verifying_key, - output_folder_path=cwd, - output_folder_name=project_name, - ecip_class_hash=ECIP_OPS_CLASS_HASH, - cli_mode=True, - ) + match system: + case ProofSystem.Groth16: + gen_groth16_verifier( + vk=vk, + output_folder_path=cwd, + output_folder_name=project_name, + ecip_class_hash=ECIP_OPS_CLASS_HASH, + cli_mode=True, + ) + case ProofSystem.UltraKeccakHonk: + gen_honk_verifier( + vk=vk, + output_folder_path=cwd, + output_folder_name=project_name, + cli_mode=True, + ) + case _: + raise ValueError(f"Unsupported proof system: {system}") print("[bold green]Done![/bold green]") print("[bold cyan]Smart Contract project created:[/bold cyan]") @@ -82,5 +88,5 @@ def generate_tree(path: Path, tree: Tree) -> None: print(root) print( - "[bold]You can now modify the [bold yellow]groth16_verifier.cairo[/bold yellow] file to adapt the verifier to your use case.[/bold]" + f"[bold]You can now test the main endpoint of the verifier using a proof and `garaga calldata` command.[/bold]" ) diff --git a/hydra/garaga/starknet/cli/smart_contract_project.py b/hydra/garaga/starknet/cli/smart_contract_project.py index b79dc37f..3e39c56e 100644 --- a/hydra/garaga/starknet/cli/smart_contract_project.py +++ b/hydra/garaga/starknet/cli/smart_contract_project.py @@ -28,6 +28,13 @@ class EmptyContract(Exception): import rich +# Add at module level +@lru_cache(maxsize=32) +def _get_cached_artifacts(folder: Path) -> tuple[str, str]: + """Module level cache for scarb build artifacts""" + return get_sierra_casm_artifacts(folder) + + @dataclass class SmartContractProject: smart_contract_folder: Path # The folder which holds Scarb.toml. @@ -35,12 +42,11 @@ class SmartContractProject: def __hash__(self) -> int: return hash(self.smart_contract_folder) - @lru_cache(maxsize=1) def get_contract_artifacts(self) -> tuple[str, str]: """ Returns the sierra and casm artifacts for the contract (uses scarb to build the contract folder) """ - return get_sierra_casm_artifacts(self.smart_contract_folder) + return _get_cached_artifacts(self.smart_contract_folder) @lru_cache(maxsize=1) def get_casm_class_hash(self) -> int: @@ -69,38 +75,40 @@ def get_abi(self) -> str: sierra_artifact, _ = self.get_contract_artifacts() return create_sierra_compiled_contract(sierra_artifact).parsed_abi - async def declare_class_hash(self, account: Account, fee="eth") -> int | None: - """Returns class hash and abi""" + async def _check_class_exists(self, account: Account, class_hash: int) -> bool: + """Helper method to check if class exists""" + try: + await account.client.get_class_by_hash(class_hash) + return True + except starknet_py.net.client_errors.ClientError as e: + if e.code == 28: # Class hash not found + return False + raise e + async def declare_class_hash(self, account: Account, fee="eth") -> tuple[int, str]: + """Returns class hash and abi""" rich.print( f"[bold cyan]Contract project: {self.smart_contract_folder}[/bold cyan]" ) - sierra, casm = self.get_contract_artifacts() + # Get artifacts once + sierra, casm = self.get_contract_artifacts() if sierra is None or casm is None: raise EmptyContract + # Use cached properties that don't trigger new builds class_hash = self.get_sierra_class_hash() abi = self.get_abi() - try: - _ = await account.client.get_class_by_hash(class_hash) + if await self._check_class_exists(account, class_hash): rich.print( f"[bold cyan]Contract class for {self.smart_contract_folder} already exists: {hex(class_hash)}[/bold cyan]" ) return class_hash, abi - except starknet_py.net.client_errors.ClientError as e: - if e.code == 28: - rich.print( - f"[bold cyan]class hash for {self.smart_contract_folder} not found - deploying[/bold cyan]" - ) - else: - raise e - except Exception as e: - rich.print( - f"[bold red]Unexpected error during contract parsing: {type(e).__name__}: {e}[/bold red]" - ) - raise e + + rich.print( + f"[bold cyan]class hash for {self.smart_contract_folder} not found - deploying[/bold cyan]" + ) try: if "eth" in fee.lower(): diff --git a/hydra/garaga/starknet/cli/starknet_cli.py b/hydra/garaga/starknet/cli/starknet_cli.py index 7ec3e0e8..11196805 100644 --- a/hydra/garaga/starknet/cli/starknet_cli.py +++ b/hydra/garaga/starknet/cli/starknet_cli.py @@ -1,9 +1,9 @@ import typer -from garaga.starknet.cli.declare import declare_project -from garaga.starknet.cli.deploy import deploy_project +from garaga.starknet.cli.declare import declare +from garaga.starknet.cli.deploy import deploy from garaga.starknet.cli.gen import gen -from garaga.starknet.cli.verify import verify_onchain +from garaga.starknet.cli.verify import calldata, verify_onchain app = typer.Typer( no_args_is_help=True, # Show help when no arguments are provided @@ -11,9 +11,10 @@ ) app.command(no_args_is_help=True)(gen) -app.command(no_args_is_help=True)(declare_project) -app.command(no_args_is_help=True)(deploy_project) +app.command(no_args_is_help=True)(declare) +app.command(no_args_is_help=True)(deploy) app.command(no_args_is_help=True)(verify_onchain) +app.command(no_args_is_help=True)(calldata) if __name__ == "__main__": diff --git a/hydra/garaga/starknet/cli/verify.py b/hydra/garaga/starknet/cli/verify.py index a17d6c18..8624f4b9 100644 --- a/hydra/garaga/starknet/cli/verify.py +++ b/hydra/garaga/starknet/cli/verify.py @@ -1,4 +1,5 @@ import asyncio +from enum import Enum from pathlib import Path from typing import Annotated @@ -8,6 +9,7 @@ from starknet_py.contract import ( ContractFunction, InvokeResult, + PreparedFunctionInvokeV1, PreparedFunctionInvokeV3, ) @@ -15,6 +17,7 @@ from garaga.hints.io import to_int from garaga.starknet.cli.utils import ( Network, + complete_fee, complete_proof_system, get_contract_iff_exists, load_account, @@ -28,6 +31,11 @@ Groth16VerifyingKey, find_item_from_key_patterns, ) +from garaga.starknet.honk_contract_generator.calldata import ( + HonkProof, + HonkVk, + get_ultra_keccak_honk_calldata_from_vk_and_proof, +) app = typer.Typer() @@ -96,21 +104,25 @@ def verify_onchain( case_sensitive=False, ), ] = Network.SEPOLIA.value, + fee: Annotated[ + str, + typer.Option( + help="Fee token type [eth, strk]", + case_sensitive=False, + autocompletion=complete_fee, + ), + ] = "eth", ): """Invoke a SNARK verifier on Starknet given a contract address, a proof and a verification key.""" - vk_obj = Groth16VerifyingKey.from_json(vk) - proof_obj = Groth16Proof.from_json(proof, public_inputs) load_dotenv(env_file) account = load_account(network) contract = get_contract_iff_exists(account, to_int(contract_address)) - if endpoint == "": - endpoint = f"verify_{system.value}_proof_{vk_obj.curve_id.name.lower()}" try: function_call: ContractFunction = find_item_from_key_patterns( - contract.functions, [endpoint] + contract.functions, ["verify"] ) except ValueError: rich.print( @@ -123,20 +135,30 @@ def verify_onchain( if public_inputs == "": public_inputs = None - calldata = groth16_calldata_from_vk_and_proof( - vk=vk_obj, - proof=proof_obj, - ) - prepare_invoke = PreparedFunctionInvokeV3( - to_addr=function_call.contract_data.address, - calldata=calldata, - selector=function_call.get_selector(function_call.name), - l1_resource_bounds=None, - _contract_data=function_call.contract_data, - _client=function_call.client, - _account=function_call.account, - _payload_transformer=function_call._payload_transformer, - ) + calldata = get_calldata_generic(system, vk, proof, public_inputs) + + if "eth" in fee.lower(): + prepare_invoke = PreparedFunctionInvokeV1( + to_addr=function_call.contract_data.address, + calldata=calldata, + selector=function_call.get_selector(function_call.name), + max_fee=None, + _contract_data=function_call.contract_data, + _client=function_call.client, + _account=function_call.account, + _payload_transformer=function_call._payload_transformer, + ) + elif "strk" in fee.lower(): + prepare_invoke = PreparedFunctionInvokeV3( + to_addr=function_call.contract_data.address, + calldata=calldata, + selector=function_call.get_selector(function_call.name), + l1_resource_bounds=None, + _contract_data=function_call.contract_data, + _client=function_call.client, + _account=function_call.account, + _payload_transformer=function_call._payload_transformer, + ) invoke_result: InvokeResult = asyncio.run(prepare_invoke.invoke(auto_estimate=True)) @@ -146,3 +168,78 @@ def verify_onchain( rich.print( f"[bold green]Check it out on[/bold green] {voyager_link_tx(network, invoke_result.hash)}" ) + + +class CalldataFormat(str, Enum): + starkli = "starkli" + array = "array" + + +def get_calldata_generic( + system: ProofSystem, vk: Path, proof: Path, public_inputs: Path | None +) -> list[int]: + match system: + case ProofSystem.Groth16: + vk_obj = Groth16VerifyingKey.from_json(vk) + proof_obj = Groth16Proof.from_json(proof, public_inputs) + return groth16_calldata_from_vk_and_proof(vk, proof) + case ProofSystem.UltraKeccakHonk: + vk_obj = HonkVk.from_bytes(open(vk, "rb").read()) + proof_obj = HonkProof.from_bytes(open(proof, "rb").read()) + return get_ultra_keccak_honk_calldata_from_vk_and_proof(vk_obj, proof_obj) + case _: + raise ValueError(f"Proof system {system} not supported") + + +def calldata( + system: Annotated[ + ProofSystem, + typer.Option(help="Proof system", autocompletion=complete_proof_system), + ], + vk: Annotated[ + Path, + typer.Option( + help="Path to the verification key file", + file_okay=True, + dir_okay=False, + exists=True, + autocompletion=lambda: [], + ), + ], + proof: Annotated[ + Path, + typer.Option( + help="Path to the proof file", + file_okay=True, + dir_okay=False, + exists=True, + autocompletion=lambda: [], + ), + ], + public_inputs: Annotated[ + Path, + typer.Option( + help="Path to the public inputs file. Optional, only used for Groth16 when pub inputs are not in the json proof (ex: SnarkJS)", + file_okay=True, + dir_okay=False, + exists=True, + autocompletion=lambda: [], + ), + ] = None, + format: Annotated[ + CalldataFormat, + typer.Option( + help="Format", + case_sensitive=False, + show_choices=True, + ), + ] = CalldataFormat.starkli, +): + """Generate Starknet verifier calldata given a proof and a verification key.""" + + calldata = get_calldata_generic(system, vk, proof, public_inputs) + + if format == CalldataFormat.starkli: + print(" ".join([str(x) for x in calldata])) + elif format == CalldataFormat.array: + print(calldata[1:]) diff --git a/hydra/garaga/starknet/groth16_contract_generator/calldata.py b/hydra/garaga/starknet/groth16_contract_generator/calldata.py index e8c252a0..2d4c01d3 100644 --- a/hydra/garaga/starknet/groth16_contract_generator/calldata.py +++ b/hydra/garaga/starknet/groth16_contract_generator/calldata.py @@ -7,11 +7,9 @@ from garaga.starknet.tests_and_calldata_generators.mpcheck import MPCheckCalldataBuilder from garaga.starknet.tests_and_calldata_generators.msm import MSMCalldataBuilder -garaga_rs.get_groth16_calldata - def groth16_calldata_from_vk_and_proof( - vk: Groth16VerifyingKey, proof: Groth16Proof, use_rust: bool = True + vk: Groth16VerifyingKey, proof: Groth16Proof, use_rust: bool = False ) -> list[int]: if use_rust: return _groth16_calldata_from_vk_and_proof_rust(vk, proof) @@ -45,13 +43,13 @@ def groth16_calldata_from_vk_and_proof( curve_id=vk.curve_id, points=[vk.ic[3], vk.ic[4]], scalars=[proof.public_inputs[2], proof.public_inputs[3]], + risc0_mode=True, ) calldata.extend( msm.serialize_to_calldata( include_digits_decomposition=True, include_points_and_scalars=False, serialize_as_pure_felt252_array=True, - risc0_mode=True, ) ) else: @@ -66,7 +64,6 @@ def groth16_calldata_from_vk_and_proof( include_digits_decomposition=True, include_points_and_scalars=False, serialize_as_pure_felt252_array=True, - risc0_mode=False, ) ) diff --git a/hydra/garaga/starknet/groth16_contract_generator/examples/proof_risc0.json b/hydra/garaga/starknet/groth16_contract_generator/examples/proof_risc0.json index a5880420..0bb8bfdb 100644 --- a/hydra/garaga/starknet/groth16_contract_generator/examples/proof_risc0.json +++ b/hydra/garaga/starknet/groth16_contract_generator/examples/proof_risc0.json @@ -1,5 +1,5 @@ { - "seal": "0x50bd1769096d29a4e342d93785757cde64ef07c09f317481f0ee9274f14281dc501c1b2e036ee070b7bd75b4f0253f7349afaa4074d73f77b09de60dd82d3fbeba8cc4a10dab619b389ed53ddfc3113e055729ff430a82f57d7edc24821e782653b9f1ba00558126e75bcb392a9a58d45af8489f4441d77e91d10c11dcea70c33c93f3ba03dab52a25735bb04f2526ec7289c1ee8912f921c4f5d380a5f906782f60044a0d44d7005528e1821e458e7bf108777452b2327ba1998710aa62e1e106858a302c0fe02760c5fda0000e039d263b2cc918eb2539da008bbbe7007f767d45d22d18f589ab466da35e0d0bfc300af4b0bc941a9897a863b48a2deb5f057c2f512c", - "image_id": "0xd01c15afa768a05b213a9e5fcdcc5724a2947e00098c7ec34ccbe2946bbc0013", + "seal": "0xc101b42b25016dc12080c5100a9841f324669460144c96d23619bb9e828e3a192c80ecfd1140eb491e6ba0b4b81afb4ff447e32cb9be3cecf003dc14959d680ae60dc11e040b0a98edd1abab11587de8a32f0095c37c7e43c03d7e5a709e0807c9c53a39127863b8b8ab606ee7527f4d1ff30a497b9c5c716b27946b68aad4408b6ab4d52bba359168a56baabe40a0da71463ccbeccab13c67e2029feb661b9e582cd1902fed2fbba2aa46f12326baf8e2b3bc85a413b25fed59692c4db8f6c3368bdbba2e0a48d161ea889d685b4ac1bd82c8ae190d35e656fd42d1086b362ad521acd22a62b65806ae08d4ca6ad0d6665bf8f4c9bd84717dc200adcd24e0cada3a621c", + "image_id": "0x01ebed7f56116d9fdbae4a81c29c07daf43b17a1d5e4dd6eb0e971d689ccf88a", "journal": "0x6a75737420612073696d706c652072656365697074" } diff --git a/hydra/garaga/starknet/groth16_contract_generator/generator.py b/hydra/garaga/starknet/groth16_contract_generator/generator.py index 29031279..6090ac3a 100644 --- a/hydra/garaga/starknet/groth16_contract_generator/generator.py +++ b/hydra/garaga/starknet/groth16_contract_generator/generator.py @@ -8,7 +8,7 @@ from garaga.starknet.cli.utils import create_directory, get_package_version from garaga.starknet.groth16_contract_generator.parsing_utils import Groth16VerifyingKey -ECIP_OPS_CLASS_HASH = 0x2672F1F079CCBAFE1BE4A20A76421B509FCFB406CBF6818563ED812EDAEB3A3 +ECIP_OPS_CLASS_HASH = 0x684D2756A4440C190A5FE54E367C0ABE33AEFA75084DEC2FFFC791B620C80E3 def precompute_lines_from_vk(vk: Groth16VerifyingKey) -> StructArray: @@ -63,9 +63,9 @@ def gen_groth16_verifier( #[starknet::interface] trait IGroth16Verifier{curve_id.name} {{ fn verify_groth16_proof_{curve_id.name.lower()}( - ref self: TContractState, + self: @TContractState, full_proof_with_hints: Span, - ) -> bool; + ) -> Option>; }} #[starknet::contract] @@ -73,12 +73,12 @@ def gen_groth16_verifier( use starknet::SyscallResultTrait; use garaga::definitions::{{G1Point, G1G2Pair}}; use garaga::groth16::{{multi_pairing_check_{curve_id.name.lower()}_3P_2F_with_extra_miller_loop_result}}; - use garaga::ec_ops::{{G1PointTrait, G2PointTrait, ec_safe_add}}; + use garaga::ec_ops::{{G1PointTrait, ec_safe_add}}; + use garaga::ec_ops_g2::{{G2PointTrait}}; use garaga::utils::calldata::{{deserialize_full_proof_with_hints_{curve_id.name.lower()}}}; use super::{{N_PUBLIC_INPUTS, vk, ic, precomputed_lines}}; const ECIP_OPS_CLASS_HASH: felt252 = {hex(ecip_class_hash)}; - use starknet::ContractAddress; #[storage] struct Storage {{}} @@ -86,11 +86,13 @@ def gen_groth16_verifier( #[abi(embed_v0)] impl IGroth16Verifier{curve_id.name} of super::IGroth16Verifier{curve_id.name} {{ fn verify_groth16_proof_{curve_id.name.lower()}( - ref self: ContractState, + self: @ContractState, full_proof_with_hints: Span, - ) -> bool {{ + ) -> Option> {{ // DO NOT EDIT THIS FUNCTION UNLESS YOU KNOW WHAT YOU ARE DOING. - // ONLY EDIT THE process_public_inputs FUNCTION BELOW. + // This function returns an Option for the public inputs if the proof is valid. + // If the proof is invalid, the execution will either fail or return None. + // Read the documentation to learn how to generate the full_proof_with_hints array given a proof and a verifying key. let fph = deserialize_full_proof_with_hints_{curve_id.name.lower()}(full_proof_with_hints); let groth16_proof = fph.groth16_proof; let mpcheck_hint = fph.mpcheck_hint; @@ -140,24 +142,12 @@ def gen_groth16_verifier( small_Q ); if check == true {{ - self - .process_public_inputs( - starknet::get_caller_address(), groth16_proof.public_inputs - ); - return true; + return Option::Some(groth16_proof.public_inputs); }} else {{ - return false; + return Option::None; }} }} }} - #[generate_trait] - impl InternalFunctions of InternalFunctionsTrait {{ - fn process_public_inputs( - ref self: ContractState, user: ContractAddress, public_inputs: Span, - ) {{ // Process the public inputs with respect to the caller address (user). - // Update the storage, emit events, call other contracts, etc. - }} - }} }} @@ -168,7 +158,7 @@ def gen_groth16_verifier( create_directory(src_dir) with open(os.path.join(output_folder_path, ".tools-versions"), "w") as f: - f.write("scarb 2.8.2\n") + f.write("scarb 2.9.1\n") with open(os.path.join(src_dir, "groth16_verifier_constants.cairo"), "w") as f: f.write(constants_code) @@ -208,11 +198,14 @@ def get_scarb_toml_file(package_name: str, cli_mode: bool): [dependencies] garaga = {{ {dep} }} -starknet = "2.8.2" +starknet = "2.9.1" [cairo] sierra-replace-ids = false +[dev-dependencies] +cairo_test = "2.9.1" + [[target.starknet-contract]] casm = true casm-add-pythonic-hints = true diff --git a/hydra/garaga/starknet/groth16_contract_generator/generator_risc0.py b/hydra/garaga/starknet/groth16_contract_generator/generator_risc0.py index 01b099eb..7df4cd4e 100644 --- a/hydra/garaga/starknet/groth16_contract_generator/generator_risc0.py +++ b/hydra/garaga/starknet/groth16_contract_generator/generator_risc0.py @@ -60,9 +60,9 @@ def gen_risc0_groth16_verifier( #[starknet::interface] trait IRisc0Groth16Verifier{curve_id.name} {{ fn verify_groth16_proof_{curve_id.name.lower()}( - ref self: TContractState, + self: @TContractState, full_proof_with_hints: Span, - ) -> bool; + ) -> Option>; }} #[starknet::contract] @@ -70,13 +70,13 @@ def gen_risc0_groth16_verifier( use starknet::SyscallResultTrait; use garaga::definitions::{{G1Point, G1G2Pair}}; use garaga::groth16::{{multi_pairing_check_{curve_id.name.lower()}_3P_2F_with_extra_miller_loop_result}}; - use garaga::ec_ops::{{G1PointTrait, G2PointTrait, ec_safe_add}}; + use garaga::ec_ops::{{G1PointTrait, ec_safe_add}}; + use garaga::ec_ops_g2::{{G2PointTrait}}; use garaga::utils::risc0::{{compute_receipt_claim, journal_sha256}}; use garaga::utils::calldata::deserialize_full_proof_with_hints_risc0; use super::{{N_FREE_PUBLIC_INPUTS, vk, ic, precomputed_lines, T}}; const ECIP_OPS_CLASS_HASH: felt252 = {hex(ecip_class_hash)}; - use starknet::ContractAddress; #[storage] struct Storage {{}} @@ -84,11 +84,14 @@ def gen_risc0_groth16_verifier( #[abi(embed_v0)] impl IRisc0Groth16Verifier{curve_id.name} of super::IRisc0Groth16Verifier{curve_id.name} {{ fn verify_groth16_proof_{curve_id.name.lower()}( - ref self: ContractState, + self: @ContractState, full_proof_with_hints: Span, - ) -> bool {{ + ) -> Option> {{ // DO NOT EDIT THIS FUNCTION UNLESS YOU KNOW WHAT YOU ARE DOING. - // ONLY EDIT THE process_public_inputs FUNCTION BELOW. + // This function returns an Option for the public inputs if the proof is valid. + // If the proof is invalid, the execution will either fail or return None. + // Read the documentation to learn how to generate the full_proof_with_hints array given a proof and a verifying key. + let fph = deserialize_full_proof_with_hints_risc0(full_proof_with_hints); let groth16_proof = fph.groth16_proof; @@ -143,24 +146,13 @@ def gen_risc0_groth16_verifier( small_Q ); if check == true {{ - self.process_public_inputs(starknet::get_caller_address(), journal); - return true; + return Option::Some(journal); }} else {{ - return false; + return Option::None; }} }} }} - #[generate_trait] - impl InternalFunctions of InternalFunctionsTrait {{ - fn process_public_inputs( - ref self: ContractState, user: ContractAddress, public_inputs: Span, - ) {{ // Process the public inputs with respect to the caller address (user). - // Update the storage, emit events, call other contracts, etc. - }} - }} }} - - """ create_directory(output_folder_path) diff --git a/hydra/garaga/starknet/groth16_contract_generator/parsing_utils.py b/hydra/garaga/starknet/groth16_contract_generator/parsing_utils.py index 956f14de..56099ef2 100644 --- a/hydra/garaga/starknet/groth16_contract_generator/parsing_utils.py +++ b/hydra/garaga/starknet/groth16_contract_generator/parsing_utils.py @@ -18,9 +18,9 @@ from garaga.precompiled_circuits.multi_miller_loop import MultiMillerLoopCircuit # https://github.com/risc0/risc0-ethereum/blob/main/contracts/src/groth16/ControlID.sol -RISC0_CONTROL_ROOT = 0x8B6DCF11D463AC455361B41FB3ED053FEBB817491BDEA00FDB340E45013B852E +RISC0_CONTROL_ROOT = 0x8CDAD9242664BE3112ABA377C5425A4DF735EB1C6966472B561D2855932C0469 RISC0_BN254_CONTROL_ID = ( - 0x05A022E1DB38457FB510BC347B30EB8F8CF3EDA95587653D0EAC19E1F10D164E + 0x04446E66D300EB7FB45C9726BB53C793DDA407A62E9601618BB43C5C14657AC0 ) diff --git a/hydra/garaga/starknet/honk_contract_generator/calldata.py b/hydra/garaga/starknet/honk_contract_generator/calldata.py new file mode 100644 index 00000000..e7edebc0 --- /dev/null +++ b/hydra/garaga/starknet/honk_contract_generator/calldata.py @@ -0,0 +1,127 @@ +from garaga.definitions import G1G2Pair +from garaga.precompiled_circuits.honk import ( + CONST_PROOF_SIZE_LOG_N, + G2_POINT_KZG_1, + G2_POINT_KZG_2, + NUMBER_OF_ENTITIES, + CurveID, + G1Point, + HonkProof, + HonkTranscript, + HonkVerifierCircuits, + HonkVk, + ModuloCircuitElement, +) +from garaga.starknet.tests_and_calldata_generators.mpcheck import MPCheckCalldataBuilder +from garaga.starknet.tests_and_calldata_generators.msm import MSMCalldataBuilder + + +def extract_msm_scalars(scalars: list[ModuloCircuitElement], log_n: int) -> list[int]: + assert len(scalars) == NUMBER_OF_ENTITIES + CONST_PROOF_SIZE_LOG_N + 2 + + start_dummy = NUMBER_OF_ENTITIES + log_n + end_dummy = NUMBER_OF_ENTITIES + CONST_PROOF_SIZE_LOG_N + + scalars_no_dummy = scalars[:start_dummy] + scalars[end_dummy:] + + scalars_filtered = scalars_no_dummy[1:] + scalars_filtered_no_nones = [ + scalar for scalar in scalars_filtered if scalar is not None + ] + return [s.value for s in scalars_filtered_no_nones] + + +def get_ultra_keccak_honk_calldata_from_vk_and_proof( + vk: HonkVk, proof: HonkProof +) -> list[int]: + tp = HonkTranscript.from_proof(proof) + + circuit = HonkVerifierCircuits(name="test", log_n=vk.log_circuit_size) + + vk_circuit = vk.to_circuit_elements(circuit) + proof_circuit = proof.to_circuit_elements(circuit) + tp = tp.to_circuit_elements(circuit) + + scalars = circuit.compute_shplemini_msm_scalars( + proof_circuit.sumcheck_evaluations, + proof_circuit.gemini_a_evaluations, + tp.gemini_r, + tp.rho, + tp.shplonk_z, + tp.shplonk_nu, + tp.sum_check_u_challenges, + ) + + scalars_msm = extract_msm_scalars(scalars, vk.log_circuit_size) + + points = [ + vk.qm, # 1 + vk.qc, # 2 + vk.ql, # 3 + vk.qr, # 4 + vk.qo, # 5 + vk.q4, # 6 + vk.qArith, # 7 + vk.qDeltaRange, # 8 + vk.qElliptic, # 9 + vk.qAux, # 10 + vk.qLookup, # 11 + vk.qPoseidon2External, # 12 + vk.qPoseidon2Internal, # 13 + vk.s1, # 14 + vk.s2, # 15 + vk.s3, # 16 + vk.s4, # 17 + vk.id1, # 18 + vk.id2, # 19 + vk.id3, # 20 + vk.id4, # 21 + vk.t1, # 22 + vk.t2, # 23 + vk.t3, # 24 + vk.t4, # 25 + vk.lagrange_first, # 26 + vk.lagrange_last, # 27 + proof.w1, # 28 + proof.w2, # 29 + proof.w3, # 30 + proof.w4, # 31 + proof.z_perm, # 32 + proof.lookup_inverses, # 33 + proof.lookup_read_counts, # 34 + proof.lookup_read_tags, # 35 + proof.z_perm, # 44 + ] + points.extend(proof.gemini_fold_comms[: vk.log_circuit_size - 1]) + points.append(G1Point.get_nG(CurveID.BN254, 1)) + points.append(proof.kzg_quotient) + + msm_builder = MSMCalldataBuilder( + CurveID.BN254, points=points, scalars=scalars_msm, risc0_mode=False + ) + + P_0 = G1Point.msm(points=points, scalars=scalars_msm).add(proof.shplonk_q) + P_1 = -proof.kzg_quotient + + pairs = [G1G2Pair(P_0, G2_POINT_KZG_1), G1G2Pair(P_1, G2_POINT_KZG_2)] + + mpc_builder = MPCheckCalldataBuilder( + curve_id=CurveID.BN254, pairs=pairs, n_fixed_g2=2, public_pair=None + ) + cd = [] + cd.extend(proof.serialize_to_calldata()) + cd.extend( + msm_builder.serialize_to_calldata( + include_points_and_scalars=False, + serialize_as_pure_felt252_array=False, + include_digits_decomposition=None, + ) + ) + cd.extend(mpc_builder.serialize_to_calldata()) + + res = [len(cd)] + cd + + # print(f"HONK CALLDATA: {res}") + # print(f"HONK CALLDATA LENGTH: {len(res)}") + + return res diff --git a/hydra/garaga/starknet/honk_contract_generator/examples/proof_ultra_keccak.bin b/hydra/garaga/starknet/honk_contract_generator/examples/proof_ultra_keccak.bin new file mode 100644 index 00000000..27d5db24 Binary files /dev/null and b/hydra/garaga/starknet/honk_contract_generator/examples/proof_ultra_keccak.bin differ diff --git a/hydra/garaga/starknet/honk_contract_generator/examples/vk_ultra_keccak.bin b/hydra/garaga/starknet/honk_contract_generator/examples/vk_ultra_keccak.bin new file mode 100644 index 00000000..716d11c6 Binary files /dev/null and b/hydra/garaga/starknet/honk_contract_generator/examples/vk_ultra_keccak.bin differ diff --git a/hydra/garaga/starknet/honk_contract_generator/generator_honk.py b/hydra/garaga/starknet/honk_contract_generator/generator_honk.py new file mode 100644 index 00000000..b888ba6c --- /dev/null +++ b/hydra/garaga/starknet/honk_contract_generator/generator_honk.py @@ -0,0 +1,458 @@ +import os +import subprocess +from pathlib import Path + +from garaga.definitions import CurveID +from garaga.modulo_circuit_structs import G2Line, StructArray +from garaga.precompiled_circuits.compilable_circuits.common_cairo_fustat_circuits import ( + EvalFunctionChallengeDuplCircuit, +) +from garaga.precompiled_circuits.compilable_circuits.ultra_honk import ( + PrepareScalarsCircuit, + SumCheckCircuit, +) +from garaga.precompiled_circuits.honk import G2_POINT_KZG_1, G2_POINT_KZG_2, HonkVk +from garaga.precompiled_circuits.multi_miller_loop import precompute_lines +from garaga.starknet.cli.utils import create_directory +from garaga.starknet.groth16_contract_generator.generator import get_scarb_toml_file + + +def precompute_lines_honk() -> StructArray: + + # Precompute lines for fixed G2 points + lines = precompute_lines([G2_POINT_KZG_1, G2_POINT_KZG_2]) + precomputed_lines = StructArray( + name="lines", + elmts=[ + G2Line(name=f"line{i}", elmts=lines[i : i + 4]) + for i in range(0, len(lines), 4) + ], + ) + + return precomputed_lines + + +def gen_honk_circuits_code(vk: HonkVk) -> str: + """ + Generate the code for the sumcheck circuit. + """ + header = """ +use core::circuit::{ + u384, circuit_add, circuit_sub, circuit_mul, circuit_inverse, + EvalCircuitTrait, CircuitOutputsTrait, CircuitInputs, +}; +use garaga::core::circuit::AddInputResultTrait2; +use garaga::ec_ops::FunctionFelt; +use core::circuit::CircuitElement as CE; +use core::circuit::CircuitInput as CI; +use garaga::definitions::{G1Point, get_GRUMPKIN_modulus, get_BN254_modulus}; +use core::option::Option;\n +""" + code = header + sumcheck_circuit = SumCheckCircuit(vk) + sumcheck_function_name = f"{CurveID.GRUMPKIN.name}_{sumcheck_circuit.name.upper()}" + sumcheck_code, sumcheck_function_name = sumcheck_circuit.circuit.compile_circuit( + function_name=sumcheck_function_name, pub=True + ) + + prepare_scalars_circuit = PrepareScalarsCircuit(vk) + scalar_indexes = prepare_scalars_circuit.scalar_indexes + msm_len = prepare_scalars_circuit.msm_len + prepare_scalars_function_name = ( + f"{CurveID.GRUMPKIN.name}_{prepare_scalars_circuit.name.upper()}" + ) + + prepare_scalars_code, prepare_scalars_function_name = ( + prepare_scalars_circuit.circuit.compile_circuit( + function_name=prepare_scalars_function_name, pub=True + ) + ) + code += sumcheck_code + prepare_scalars_code + + lhs_ecip_circuit = EvalFunctionChallengeDuplCircuit( + CurveID.BN254.value, + n_points=msm_len, + batched=True, + generic_circuit=False, + compilation_mode=1, + ) + lhs_ecip_function_name = f"{CurveID.BN254.name}_{lhs_ecip_circuit.name.upper()}" + lhs_ecip_code, lhs_ecip_function_name = lhs_ecip_circuit.circuit.compile_circuit( + function_name=lhs_ecip_function_name, pub=True + ) + code += lhs_ecip_code + return ( + code, + sumcheck_function_name, + prepare_scalars_function_name, + scalar_indexes, + lhs_ecip_function_name, + msm_len, + ) + + +def gen_msm_code(vk: HonkVk) -> str: + code = """ + + """ + return code + + +def gen_honk_verifier( + vk: str | Path | HonkVk | bytes, + output_folder_path: str, + output_folder_name: str, + cli_mode: bool = False, +) -> str: + if isinstance(vk, (Path, str)): + vk = HonkVk.from_bytes(open(vk, "rb").read()) + elif isinstance(vk, bytes): + vk = HonkVk.from_bytes(vk) + else: + assert isinstance( + vk, HonkVk + ), f"Invalid type for vk: {type(vk)}. Should be str, Path, HonkVk or bytes." + + curve_id = CurveID.GRUMPKIN + + output_folder_path = os.path.join(output_folder_path, output_folder_name) + + precomputed_lines = precompute_lines_honk() + + constants_code = f""" + use garaga::definitions::{{G1Point, G2Line, u384, u288}}; + use garaga::utils::noir::HonkVk; + + {vk.serialize_to_cairo()}\n + pub const precomputed_lines: [G2Line; {len(precomputed_lines)//4}] = {precomputed_lines.serialize(raw=True, const=True)}; + """ + + ( + circuits_code, + sumcheck_function_name, + prepare_scalars_function_name, + scalar_indexes, + lhs_ecip_function_name, + msm_len, + ) = gen_honk_circuits_code(vk) + + scalars_tuple = ",\n ".join(f"scalar_{idx}" for idx in scalar_indexes) + scalars_tuple_into = ",\n ".join( + f"scalar_{idx}.try_into().unwrap()" for idx in scalar_indexes + ) + + contract_code = f""" +use super::honk_verifier_constants::{{vk, precomputed_lines}}; +use super::honk_verifier_circuits::{{{sumcheck_function_name}, {prepare_scalars_function_name}, {lhs_ecip_function_name}}}; + +#[starknet::interface] +trait IUltraKeccakHonkVerifier {{ + fn verify_ultra_keccak_honk_proof( + self: @TContractState, + full_proof_with_hints: Span, + ) -> Option>; +}} + +#[starknet::contract] +mod UltraKeccakHonkVerifier {{ + use garaga::definitions::{{G1Point, G1G2Pair, BN254_G1_GENERATOR, get_a, get_modulus}}; + use garaga::pairing_check::{{multi_pairing_check_bn254_2P_2F, MPCheckHintBN254}}; + use garaga::ec_ops::{{G1PointTrait, ec_safe_add,FunctionFeltTrait, DerivePointFromXHint, MSMHintBatched, compute_rhs_ecip, derive_ec_point_from_X, SlopeInterceptOutput}}; + use garaga::basic_field_ops::{{batch_3_mod_p}}; + use garaga::circuits::ec; + use garaga::utils::neg_3; + use super::{{vk, precomputed_lines, {sumcheck_function_name}, {prepare_scalars_function_name}, {lhs_ecip_function_name}}}; + use garaga::utils::noir::{{HonkProof, remove_unused_variables_sumcheck_evaluations, G2_POINT_KZG_1, G2_POINT_KZG_2}}; + use garaga::utils::noir::keccak_transcript::{{HonkTranscriptTrait, Point256IntoCircuitPoint, BATCHED_RELATION_PARTIAL_LENGTH}}; + use garaga::core::circuit::U64IntoU384; + use core::num::traits::Zero; + use core::poseidon::hades_permutation; + + #[storage] + struct Storage {{}} + + #[derive(Drop, Serde)] + struct FullProof {{ + proof: HonkProof, + msm_hint_batched: MSMHintBatched, + derive_point_from_x_hint: DerivePointFromXHint, + kzg_hint:MPCheckHintBN254, + }} + + #[abi(embed_v0)] + impl IUltraKeccakHonkVerifier of super::IUltraKeccakHonkVerifier {{ + fn verify_ultra_keccak_honk_proof( + self: @ContractState, + full_proof_with_hints: Span, + ) -> Option> {{ + // DO NOT EDIT THIS FUNCTION UNLESS YOU KNOW WHAT YOU ARE DOING. + // This function returns an Option for the public inputs if the proof is valid. + // If the proof is invalid, the execution will either fail or return None. + // Read the documentation to learn how to generate the full_proof_with_hints array given a proof and a verifying key. + let mut full_proof_with_hints = full_proof_with_hints; + let full_proof = Serde::::deserialize(ref full_proof_with_hints).expect('deserialization failed'); + // let mpcheck_hint = fph.mpcheck_hint; + // let msm_hint = fph.msm_hint; + + + let (transcript, base_rlc) = HonkTranscriptTrait::from_proof(full_proof.proof); + let log_n = vk.log_circuit_size; + let (sum_check_rlc, honk_check) = {sumcheck_function_name}( + p_public_inputs: full_proof.proof.public_inputs, + p_public_inputs_offset: full_proof.proof.public_inputs_offset.into(), + sumcheck_univariates_flat: full_proof.proof.sumcheck_univariates.slice(0, log_n * BATCHED_RELATION_PARTIAL_LENGTH), + sumcheck_evaluations: remove_unused_variables_sumcheck_evaluations( + full_proof.proof.sumcheck_evaluations + ), + tp_sum_check_u_challenges: transcript.sum_check_u_challenges.span().slice(0, log_n), + tp_gate_challenges: transcript.gate_challenges.span().slice(0, log_n), + tp_eta_1: transcript.eta.into(), + tp_eta_2: transcript.eta_two.into(), + tp_eta_3: transcript.eta_three.into(), + tp_beta: transcript.beta.into(), + tp_gamma: transcript.gamma.into(), + tp_base_rlc: base_rlc.into(), + tp_alphas: transcript.alphas.span(), + ); + + let ( + {scalars_tuple}, + _ + ) = + {prepare_scalars_function_name}( + p_sumcheck_evaluations: full_proof.proof.sumcheck_evaluations, + p_gemini_a_evaluations: full_proof.proof.gemini_a_evaluations, + tp_gemini_r: transcript.gemini_r.into(), + tp_rho: transcript.rho.into(), + tp_shplonk_z: transcript.shplonk_z.into(), + tp_shplonk_nu: transcript.shplonk_nu.into(), + tp_sum_check_u_challenges: transcript.sum_check_u_challenges.span().slice(0, log_n), + ); + + // Starts with 1 * shplonk_q, not included in msm. + + let mut _points: Array = array![vk.qm, + vk.qc, + vk.ql, + vk.qr, + vk.qo, + vk.q4, + vk.qArith, + vk.qDeltaRange, + vk.qElliptic, + vk.qAux, + vk.qLookup, + vk.qPoseidon2External, + vk.qPoseidon2Internal, + vk.s1, + vk.s2, + vk.s3, + vk.s4, + vk.id1, + vk.id2, + vk.id3, + vk.id4, + vk.t1, + vk.t2, + vk.t3, + vk.t4, + vk.lagrange_first, + vk.lagrange_last, + full_proof.proof.w1.into(), + full_proof.proof.w2.into(), + full_proof.proof.w3.into(), + full_proof.proof.w4.into(), + full_proof.proof.z_perm.into(), + full_proof.proof.lookup_inverses.into(), + full_proof.proof.lookup_read_counts.into(), + full_proof.proof.lookup_read_tags.into(), + full_proof.proof.z_perm.into(), + ]; + + for gem_comm in full_proof.proof.gemini_fold_comms {{ + _points.append((*gem_comm).into()); + }}; + _points.append(BN254_G1_GENERATOR); + _points.append(full_proof.proof.kzg_quotient.into()); + + let points = _points.span(); + + let scalars: Span = array![{scalars_tuple_into}, transcript.shplonk_z.into()].span(); + + full_proof.msm_hint_batched.SumDlogDivBatched.validate_degrees_batched({msm_len}); + + // HASHING: GET ECIP BASE RLC COEFF. + // TODO : RE-USE transcript to avoid re-hashing G1 POINTS. + let (s0, s1, s2): (felt252, felt252, felt252) = hades_permutation( + 'MSM_G1', 0, 1 + ); // Init Sponge state + let (s0, s1, s2) = hades_permutation( + s0 + 0.into(), s1 + {msm_len}.into(), s2 + ); // Include curve_index and msm size + + let mut s0 = s0; + let mut s1 = s1; + let mut s2 = s2; + + // Check input points are on curve and hash them at the same time. + + for point in points {{ + if !point.is_infinity() {{ + point.assert_on_curve(0); + }} + let (_s0, _s1, _s2) = point.update_hash_state(s0, s1, s2); + s0 = _s0; + s1 = _s1; + s2 = _s2; + }}; + + if !full_proof.msm_hint_batched.Q_low.is_infinity() {{ + full_proof.msm_hint_batched.Q_low.assert_on_curve(0); + }} + if !full_proof.msm_hint_batched.Q_high.is_infinity() {{ + full_proof.msm_hint_batched.Q_high.assert_on_curve(0); + }} + if !full_proof.msm_hint_batched.Q_high_shifted.is_infinity() {{ + full_proof.msm_hint_batched.Q_high_shifted.assert_on_curve(0); + }} + + // Hash result points + let (s0, s1, s2) = full_proof.msm_hint_batched.Q_low.update_hash_state(s0, s1, s2); + let (s0, s1, s2) = full_proof.msm_hint_batched.Q_high.update_hash_state(s0, s1, s2); + let (s0, s1, s2) = full_proof.msm_hint_batched.Q_high_shifted.update_hash_state(s0, s1, s2); + + // Hash scalars : + let mut s0 = s0; + let mut s1 = s1; + let mut s2 = s2; + for scalar in scalars {{ + let (_s0, _s1, _s2) = core::poseidon::hades_permutation( + s0 + (*scalar.low).into(), s1 + (*scalar.high).into(), s2 + ); + s0 = _s0; + s1 = _s1; + s2 = _s2; + }}; + + + let base_rlc_coeff = s1; + + let (s0, _, _) = full_proof.msm_hint_batched.SumDlogDivBatched.update_hash_state(s0, s1, s2); + + let random_point: G1Point = derive_ec_point_from_X( + s0, + full_proof.derive_point_from_x_hint.y_last_attempt, + full_proof.derive_point_from_x_hint.g_rhs_sqrt, + 0 + ); + + // Get slope, intercept and other constant from random point + let (mb): (SlopeInterceptOutput,) = ec::run_SLOPE_INTERCEPT_SAME_POINT_circuit( + random_point, get_a(0), 0 + ); + + // Get positive and negative multiplicities of low and high part of scalars + let (epns_low, epns_high) = neg_3::u256_array_to_low_high_epns( + scalars, Option::None + ); + + // Hardcoded epns for 2**128 + let epns_shifted: Array<(felt252, felt252, felt252, felt252)> = array![ + (5279154705627724249993186093248666011, 345561521626566187713367793525016877467, -1, -1) + ]; + + let (zk_ecip_batched_lhs) = {lhs_ecip_function_name}(A0:random_point, A2:G1Point{{x:mb.x_A2, y:mb.y_A2}}, coeff0:mb.coeff0, coeff2:mb.coeff2, SumDlogDivBatched:full_proof.msm_hint_batched.SumDlogDivBatched); + + let rhs_low = compute_rhs_ecip( + points, mb.m_A0, mb.b_A0, random_point.x, epns_low, full_proof.msm_hint_batched.Q_low, 0 + ); + let rhs_high = compute_rhs_ecip( + points, mb.m_A0, mb.b_A0, random_point.x, epns_high, full_proof.msm_hint_batched.Q_high, 0 + ); + let rhs_high_shifted = compute_rhs_ecip( + array![full_proof.msm_hint_batched.Q_high].span(), + mb.m_A0, + mb.b_A0, + random_point.x, + epns_shifted, + full_proof.msm_hint_batched.Q_high_shifted, + 0 + ); + + let mod_bn = get_modulus(0); + let zk_ecip_batched_rhs = batch_3_mod_p(rhs_low, rhs_high, rhs_high_shifted, base_rlc_coeff.into(), mod_bn); + + let ecip_check = zk_ecip_batched_lhs == zk_ecip_batched_rhs; + + + let P_1 = ec_safe_add(full_proof.msm_hint_batched.Q_low, full_proof.msm_hint_batched.Q_high_shifted, 0); + let P_1 = ec_safe_add(P_1, full_proof.proof.shplonk_q.into(), 0); + let P_2:G1Point = full_proof.proof.kzg_quotient.into(); + + // Perform the KZG pairing check. + let kzg_check = multi_pairing_check_bn254_2P_2F( + G1G2Pair {{ p: P_1, q: G2_POINT_KZG_1 }}, + G1G2Pair {{ p: P_2.negate(0), q: G2_POINT_KZG_2 }}, + precomputed_lines.span(), + full_proof.kzg_hint, + ); + + if sum_check_rlc.is_zero() && honk_check.is_zero() && ecip_check && kzg_check {{ + return Option::Some(full_proof.proof.public_inputs); + }} else {{ + return Option::None; + }} + }} + }} +}} + + + """ + + create_directory(output_folder_path) + src_dir = os.path.join(output_folder_path, "src") + create_directory(src_dir) + + with open(os.path.join(output_folder_path, ".tools-versions"), "w") as f: + f.write("scarb 2.9.1\n") + + with open(os.path.join(src_dir, "honk_verifier_constants.cairo"), "w") as f: + f.write(constants_code) + + with open(os.path.join(src_dir, "honk_verifier_circuits.cairo"), "w") as f: + f.write(circuits_code) + + with open(os.path.join(src_dir, "honk_verifier.cairo"), "w") as f: + f.write(contract_code) + + with open(os.path.join(output_folder_path, "Scarb.toml"), "w") as f: + f.write(get_scarb_toml_file(output_folder_name, cli_mode)) + + with open(os.path.join(src_dir, "lib.cairo"), "w") as f: + f.write( + """ +mod honk_verifier; +mod honk_verifier_constants; +mod honk_verifier_circuits; +""" + ) + subprocess.run(["scarb", "fmt"], check=True, cwd=output_folder_path) + return constants_code + + +if __name__ == "__main__": + + VK_PATH = ( + "hydra/garaga/starknet/honk_contract_generator/examples/vk_ultra_keccak.bin" + ) + VK_LARGE_PATH = ( + "hydra/garaga/starknet/honk_contract_generator/examples/vk_large.bin" + ) + CONTRACTS_FOLDER = "src/contracts/" # Do not change this + + FOLDER_NAME = ( + "noir_ultra_keccak_honk_example" # '_curve_id' is appended in the end. + ) + + gen_honk_verifier(VK_PATH, CONTRACTS_FOLDER, FOLDER_NAME) + # gen_honk_verifier(VK_LARGE_PATH, CONTRACTS_FOLDER, FOLDER_NAME + "_large") diff --git a/hydra/garaga/starknet/tests_and_calldata_generators/drand_calldata.py b/hydra/garaga/starknet/tests_and_calldata_generators/drand_calldata.py index dbac2947..17ecbfdd 100644 --- a/hydra/garaga/starknet/tests_and_calldata_generators/drand_calldata.py +++ b/hydra/garaga/starknet/tests_and_calldata_generators/drand_calldata.py @@ -24,26 +24,7 @@ def drand_round_to_calldata(round_number: int) -> list[int]: round = get_randomness(chain.hash, round_number) - ######################################## - # Temp fix before we figure out what the hell is wrong with G2 compress Deserialization sign. - check = ( - G1G2Pair.pair( - [ - G1G2Pair( - p=round.signature_point, q=G2Point.get_nG(CurveID.BLS12_381, 1) - ), - G1G2Pair(p=msg_point, q=-chain.public_key), - ], - curve_id=CurveID.BLS12_381, - ).value_coeffs - == [1] + [0] * 11 - ) - - if not check: - sig_pt = -round.signature_point - else: - sig_pt = round.signature_point - + sig_pt = round.signature_point ################### mpc_builder = MPCheckCalldataBuilder( curve_id=CurveID.BLS12_381, diff --git a/hydra/garaga/starknet/tests_and_calldata_generators/map_to_curve.py b/hydra/garaga/starknet/tests_and_calldata_generators/map_to_curve.py index 3d14c575..1448fc84 100644 --- a/hydra/garaga/starknet/tests_and_calldata_generators/map_to_curve.py +++ b/hydra/garaga/starknet/tests_and_calldata_generators/map_to_curve.py @@ -110,9 +110,9 @@ def build_hash_to_curve_hint(message: bytes) -> HashToCurveHint: # print(f"cofactor: {cofactor}, hex :{hex(cofactor)}") msm_builder = MSMCalldataBuilder( - curve_id=CurveID.BLS12_381, points=[sum_pt], scalars=[cofactor] + curve_id=CurveID.BLS12_381, points=[sum_pt], scalars=[cofactor], risc0_mode=True ) - msm_hint, derive_point_from_x_hint = msm_builder.build_msm_hints(risc0_mode=True) + msm_hint, derive_point_from_x_hint = msm_builder.build_msm_hints() return HashToCurveHint( f0_hint=f0_hint, diff --git a/hydra/garaga/starknet/tests_and_calldata_generators/msm.py b/hydra/garaga/starknet/tests_and_calldata_generators/msm.py index 9aa36591..1bab1259 100644 --- a/hydra/garaga/starknet/tests_and_calldata_generators/msm.py +++ b/hydra/garaga/starknet/tests_and_calldata_generators/msm.py @@ -15,6 +15,8 @@ class MSMCalldataBuilder: curve_id: CurveID points: list[G1Point] scalars: list[int] + risc0_mode: bool = False + transcript: CairoPoseidonTranscript = None def __post_init__(self): assert all( @@ -27,6 +29,16 @@ def __post_init__(self): 0 <= s <= CURVES[self.curve_id.value].n for s in self.scalars ), f"Scalars must be in [0, {self.curve_id.name}'s order] == [0, {CURVES[self.curve_id.value].n}]." + if self.risc0_mode: + assert all( + s < 2**128 for s in self.scalars + ), "Scalars must be in [0, 2^128) in risc0 mode." + + init_bytes = b"MSM_G1" if not self.risc0_mode else b"MSM_G1_U128" + self.transcript = CairoPoseidonTranscript( + init_hash=int.from_bytes(init_bytes, "big") + ) + def __hash__(self) -> int: return hash((self.curve_id, tuple(self.points), tuple(self.scalars))) @@ -56,66 +68,51 @@ def scalars_digits_decompositions(self): ], [neg_3_base_le(s) for s in scalars_high] return scalars_low_decompositions, scalars_high_decompositions - def _retrieve_random_x_coordinate( + def _hash_inputs_points_scalars_and_result_points( self, Q_low: G1Point, Q_high: G1Point, Q_high_shifted: G1Point, - SumDlogDivLow: FunctionFelt, - SumDlogDivHigh: FunctionFelt, - SumDlogDivHighShifted: FunctionFelt, - risc0_mode: bool = False, ): - init_bytes = b"MSM_G1" if not risc0_mode else b"MSM_G1_U128" - transcript = CairoPoseidonTranscript( - init_hash=int.from_bytes(init_bytes, "big") - ) - transcript.update_sponge_state(self.curve_id.value, self.msm_size) - - sum_dlog_divs = ( - [SumDlogDivLow, SumDlogDivHigh] if not risc0_mode else [SumDlogDivLow] - ) + self.transcript.update_sponge_state(self.curve_id.value, self.msm_size) + for point in self.points: + self.transcript.hash_element(self.field(point.x)) + self.transcript.hash_element(self.field(point.y)) - for SumDlogDiv in sum_dlog_divs: - _a_num, _a_den, _b_num, _b_den = io.padd_function_felt( - SumDlogDiv, self.msm_size, py_felt=True - ) - transcript.hash_limbs_multi(_a_num) - transcript.hash_limbs_multi(_a_den) - transcript.hash_limbs_multi(_b_num) - transcript.hash_limbs_multi(_b_den) - - if not risc0_mode: - for SumDlogDiv in [SumDlogDivHighShifted]: - _a_num, _a_den, _b_num, _b_den = io.padd_function_felt( - SumDlogDiv, 1, py_felt=True - ) - transcript.hash_limbs_multi(_a_num) - transcript.hash_limbs_multi(_a_den) - transcript.hash_limbs_multi(_b_num) - transcript.hash_limbs_multi(_b_den) + if self.risc0_mode: + results = [Q_low] + else: + results = [Q_low, Q_high, Q_high_shifted] - for point in self.points: - transcript.hash_element(self.field(point.x)) - transcript.hash_element(self.field(point.y)) - - results = [Q_low, Q_high, Q_high_shifted] if not risc0_mode else [Q_low] - if risc0_mode: - assert ( - Q_high.is_infinity() and Q_high_shifted.is_infinity() - ), "Q_high and Q_high_shifted must be infinity in risc0 mode" for result_point in results: - transcript.hash_element(self.field(result_point.x)) - transcript.hash_element(self.field(result_point.y)) + self.transcript.hash_element(self.field(result_point.x)) + self.transcript.hash_element(self.field(result_point.y)) - if not risc0_mode: - for scalar in self.scalars: - transcript.hash_u256(scalar) - else: - for scalar in self.scalars: - transcript.hash_u128(scalar) + for scalar in self.scalars: + if not self.risc0_mode: + self.transcript.hash_u256(scalar) + else: + self.transcript.hash_u128(scalar) + + return self.transcript.s1 - return transcript.s0 + def _retrieve_random_x_coordinate( + self, + sum_dlog_div_maybe_batched: FunctionFelt, + ): + + _a_num, _a_den, _b_num, _b_den = io.padd_function_felt( + sum_dlog_div_maybe_batched, + self.msm_size, + py_felt=True, + batched=not self.risc0_mode, + ) + self.transcript.hash_limbs_multi(_a_num) + self.transcript.hash_limbs_multi(_a_den) + self.transcript.hash_limbs_multi(_b_num) + self.transcript.hash_limbs_multi(_b_den) + + return self.transcript.s0 def build_derive_point_from_x_hint( self, random_x_coordinate: int @@ -131,27 +128,42 @@ def build_derive_point_from_x_hint( ) @lru_cache(maxsize=2) - def build_msm_hints( - self, risc0_mode: bool = False - ) -> tuple[structs.Struct, structs.Struct]: + def build_msm_hints(self) -> tuple[structs.Struct, structs.Struct]: """ Returns the MSMHint and the DerivePointFromXHint """ scalars_low, scalars_high = self.scalars_split() _Q_low, _SumDlogDivLow = ecip.zk_ecip_hint(self.points, scalars_low) + _SumDlogDivLow.validate_degrees( + msm_size=self.msm_size, batched=not self.risc0_mode + ) + _Q_high, _SumDlogDivHigh = ecip.zk_ecip_hint(self.points, scalars_high) + _SumDlogDivHigh.validate_degrees( + msm_size=self.msm_size, batched=not self.risc0_mode + ) + _Q_high_shifted, _SumDlogDivHighShifted = ecip.zk_ecip_hint([_Q_high], [2**128]) - _x_coordinate = self._retrieve_random_x_coordinate( + _SumDlogDivHighShifted.validate_degrees(msm_size=1, batched=not self.risc0_mode) + + self._hash_inputs_points_scalars_and_result_points( _Q_low, _Q_high, _Q_high_shifted, - _SumDlogDivLow, - _SumDlogDivHigh, - _SumDlogDivHighShifted, - risc0_mode, ) + if not self.risc0_mode: + rlc_coeff = self.transcript.s1 + sum_dlog_div_maybe_batched = ( + _SumDlogDivLow * rlc_coeff + + _SumDlogDivHigh * (rlc_coeff * rlc_coeff) + + _SumDlogDivHighShifted * (rlc_coeff * rlc_coeff * rlc_coeff) + ) + else: + sum_dlog_div_maybe_batched = _SumDlogDivLow + + _x_coordinate = self._retrieve_random_x_coordinate(sum_dlog_div_maybe_batched) derive_point_from_x_hint = self.build_derive_point_from_x_hint(_x_coordinate) ############################# @@ -180,7 +192,8 @@ def build_msm_hints( A0=_A0, ) ############################# - if not risc0_mode: + + if not self.risc0_mode: return ( structs.Struct( struct_name="MSMHint", @@ -192,19 +205,10 @@ def build_msm_hints( "Q_high_shifted", _Q_high_shifted ), structs.FunctionFeltCircuit.from_FunctionFelt( - name="SumDlogDivLow", - f=_SumDlogDivLow, + name="RLCSumDlogDiv", + f=sum_dlog_div_maybe_batched, msm_size=self.msm_size, - ), - structs.FunctionFeltCircuit.from_FunctionFelt( - name="SumDlogDivHigh", - f=_SumDlogDivHigh, - msm_size=self.msm_size, - ), - structs.FunctionFeltCircuit.from_FunctionFelt( - name="SumDlogDivHighShifted", - f=_SumDlogDivHighShifted, - msm_size=1, + batched=True, ), ], ), @@ -221,6 +225,7 @@ def build_msm_hints( name="SumDlogDiv", f=_SumDlogDivLow, msm_size=self.msm_size, + batched=False, ), ], ), @@ -228,7 +233,7 @@ def build_msm_hints( ) def _get_input_structs( - self, risc0_mode: bool = False + self, ) -> list[structs.Cairo1SerializableStruct]: """ Returns all the inputs used in the msm_g1 function : @@ -240,7 +245,7 @@ def _get_input_structs( derive_point_from_x_hint: DerivePointFromXHint, """ inputs = [] - if risc0_mode: + if self.risc0_mode: inputs.append( structs.StructSpan( name="scalars_digits_decompositions", @@ -299,8 +304,8 @@ def _get_input_structs( ], ) ) - inputs.append(self.build_msm_hints(risc0_mode)[0]) - inputs.append(self.build_msm_hints(risc0_mode)[1]) + inputs.append(self.build_msm_hints()[0]) # msm_hint + inputs.append(self.build_msm_hints()[1]) # derive_point_from_x_hint inputs.append( structs.StructSpan( name="points", @@ -310,7 +315,7 @@ def _get_input_structs( ], ) ) - if not risc0_mode: + if not self.risc0_mode: inputs.append( structs.StructSpan( name="scalars", @@ -332,7 +337,9 @@ def _get_input_structs( ) return inputs - def to_cairo_1_test(self, test_name: str = None): + def to_cairo_1_test( + self, test_name: str = None, include_digits_decomposition=False + ): print( f"Generating MSM test for {self.curve_id.name} with {len(self.scalars)} points" ) @@ -342,7 +349,11 @@ def to_cairo_1_test(self, test_name: str = None): input_code = "" for struct in inputs: if struct.name == "scalars_digits_decompositions": - input_code += struct.serialize(is_option=True) + if include_digits_decomposition: + input_code += struct.serialize(is_option=True) + else: + struct.elmts = None + input_code += struct.serialize() else: input_code += struct.serialize() @@ -364,7 +375,6 @@ def _serialize_to_calldata_rust( include_digits_decomposition=True, include_points_and_scalars=True, serialize_as_pure_felt252_array=False, - risc0_mode=False, ) -> list[int]: return garaga_rs.msm_calldata_builder( [value for point in self.points for value in [point.x, point.y]], @@ -373,7 +383,7 @@ def _serialize_to_calldata_rust( include_digits_decomposition, include_points_and_scalars, serialize_as_pure_felt252_array, - risc0_mode, + self.risc0_mode, ) def serialize_to_calldata( @@ -381,7 +391,6 @@ def serialize_to_calldata( include_digits_decomposition=True, include_points_and_scalars=True, serialize_as_pure_felt252_array=False, - risc0_mode=False, use_rust=False, ) -> list[int]: if use_rust: @@ -389,15 +398,17 @@ def serialize_to_calldata( include_digits_decomposition, include_points_and_scalars, serialize_as_pure_felt252_array, - risc0_mode, ) - inputs = self._get_input_structs(risc0_mode) - option = ( - structs.CairoOption.SOME - if include_digits_decomposition - else structs.CairoOption.NONE - ) + inputs = self._get_input_structs() + + match include_digits_decomposition: + case True: + option = structs.CairoOption.SOME + case False: + option = structs.CairoOption.NONE + case None: + option = structs.CairoOption.VOID call_data: list[int] = [] for e in inputs: diff --git a/hydra/garaga/starknet/tests_and_calldata_generators/test_writer.py b/hydra/garaga/starknet/tests_and_calldata_generators/test_writer.py index e7f62432..58f30e09 100644 --- a/hydra/garaga/starknet/tests_and_calldata_generators/test_writer.py +++ b/hydra/garaga/starknet/tests_and_calldata_generators/test_writer.py @@ -2,7 +2,15 @@ import random import subprocess -from garaga.definitions import CURVES, CurveID, G1Point +import garaga.modulo_circuit_structs as structs +from garaga.definitions import ( + CURVES, + CurveID, + G1G2Pair, + G1Point, + G2Point, + get_base_field, +) from garaga.precompiled_circuits.multi_pairing_check import get_pairing_check_input from garaga.starknet.cli.utils import create_directory from garaga.starknet.tests_and_calldata_generators.mpcheck import MPCheckCalldataBuilder @@ -54,9 +62,139 @@ def generate_msm_test_edge_cases(curve_id, n_points, seed): ) +def generate_tower_pairing_test(curve_id, n_pairs, seed): + random.seed(seed) + pairs: list[G1G2Pair] + if n_pairs == 1: + pairs = [ + G1G2Pair( + p=G1Point.get_nG(curve_id, 1), + q=G2Point.get_nG(curve_id, 1), + ) + ] + else: + pairs, _ = get_pairing_check_input( + curve_id=curve_id, n_pairs=n_pairs, return_pairs=True + ) + + res = G1G2Pair.pair(pairs, curve_id) + res = res.felt_coeffs + e12t = structs.E12T(name="expected_result", elmts=res) + i_s = list(range(n_pairs)) + code = f""" +#[test] +fn test_tower_pairing_{curve_id.name}_{n_pairs}P() {{ + let mut res:E12T = E12TOne::one(); +""" + for i, pair in enumerate(pairs): + code += f""" + {structs.G1PointCircuit.from_G1Point(f"p{i}", pair.p).serialize()} + p{i}.assert_on_curve({curve_id.value}); + {structs.G2PointCircuit.from_G2Point(f"q{i}", pair.q).serialize()} + q{i}.assert_on_curve({curve_id.value}); + let (tmp{i}) = miller_loop_{pair.p.curve_id.name.lower()}_tower(p{i}, q{i}); + let (res) = run_{pair.p.curve_id.name.upper()}_E12T_MUL_circuit(tmp{i}, res);""" + code += f""" + let final = final_exp_{curve_id.name.lower()}_tower(res); + assert_eq!(final, {e12t.serialize(raw=True)}); +}} +""" + return code + + +def generate_tower_final_exp_test(curve_id, seed): + from garaga.hints.tower_backup import E12 + + random.seed(seed) + field = get_base_field(curve_id) + elmts = [field.random() for _ in range(12)] + e12 = E12(elmts, curve_id.value) + e12t = structs.E12T(name="input", elmts=elmts) + cofactor = CURVES[curve_id.value].final_exp_cofactor + h = cofactor * (CURVES[curve_id.value].p ** 12 - 1) // CURVES[curve_id.value].n + expected = structs.E12T(name="expected", elmts=(e12**h).felt_coeffs) + code = f""" +#[test] +fn test_tower_final_exp_{curve_id.name}() {{ + {e12t.serialize()} + let res = final_exp_{curve_id.name.lower()}_tower(input); + assert_eq!(res, {expected.serialize(raw=True)}); +}} +""" + return code + + +def generate_expt_half_test(curve_id, seed): + from garaga.hints.tower_backup import E12 + + random.seed(seed) + field = get_base_field(curve_id) + elmts = [field.random() for _ in range(12)] + + e12 = E12(elmts, curve_id.value) + # Simulate easy part : + p = CURVES[curve_id.value].p + e12 = e12 ** ((p**6 - 1) * (p**2 + 1)) + e12t = structs.E12T(name="input", elmts=e12.felt_coeffs) + + h = 7566188111470821376 + + expected_tower = e12**h + assert expected_tower.conjugate() == expected_tower.__inv__() + expected = structs.E12T( + name="expected", elmts=expected_tower.conjugate().felt_coeffs + ) + code = f""" +#[test] +fn test_expt_half_{curve_id.name}() {{ + {e12t.serialize()} + let (res) = expt_half_{curve_id.name.lower()}_tower(input); + assert_eq!(res, {expected.serialize(raw=True)}); +}} +""" + return code + + def write_all_tests(): + create_directory(TESTS_DIR) random.seed(0) pairing_curve_ids = [CurveID.BN254, CurveID.BLS12_381] + + tower_pairing_test_header = """ +#[cfg(test)] +mod tower_pairing_tests { + use garaga::single_pairing_tower::{ + E12TOne, u384,G1Point, G2Point, E12T, miller_loop_bls12_381_tower, miller_loop_bn254_tower, final_exp_bls12_381_tower, final_exp_bn254_tower, expt_half_bls12_381_tower + }; + use garaga::ec_ops::{G1PointImpl}; + use garaga::ec_ops_g2::{G2PointImpl}; + use garaga::circuits::tower_circuits::{run_BN254_E12T_MUL_circuit, run_BLS12_381_E12T_MUL_circuit}; +""" + + with open(f"{TESTS_DIR}/tower_pairing_tests.cairo", "w") as f: + f.write(tower_pairing_test_header) + with concurrent.futures.ProcessPoolExecutor() as executor: + pairing_futures = [ + executor.submit(generate_tower_pairing_test, curve_id, n_pairs, 0) + for curve_id in pairing_curve_ids + for n_pairs in [1, 2, 3] + ] + final_exp_futures = [ + executor.submit(generate_tower_final_exp_test, curve_id, 0) + for curve_id in pairing_curve_ids + ] + expt_half_futures = [ + executor.submit(generate_expt_half_test, curve_id, 0) + for curve_id in [CurveID.BLS12_381] + ] + all_futures = pairing_futures + final_exp_futures + expt_half_futures + results = [future.result() for future in all_futures] + + for result in results: + f.write(result) + f.write("\n") + f.write("}") + subprocess.run(["scarb", "fmt"], check=True, cwd=f"{TESTS_DIR}") params = [(2, 2, False), (3, 2, True)] pairing_test_header = """ @@ -77,7 +215,6 @@ def write_all_tests(): multi_pairing_check_bls12_381_3P_2F_with_extra_miller_loop_result, }; """ - create_directory(TESTS_DIR) with open(f"{TESTS_DIR}/pairing_tests.cairo", "w") as f: f.write(pairing_test_header) with concurrent.futures.ProcessPoolExecutor() as executor: @@ -106,9 +243,10 @@ def write_all_tests(): CurveID.SECP256R1, CurveID.SECP256K1, CurveID.ED25519, + CurveID.GRUMPKIN, ] - msm_sizes = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] + msm_sizes = [1, 2, 3, 4, 10, 11, 12] msm_test_header = """ #[cfg(test)] diff --git a/pyproject.toml b/pyproject.toml index bc54bc35..828f50c4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,14 +4,16 @@ build-backend = "maturin" [project] name = "garaga" -version = "0.13.3" +version = "0.15.3" requires-python = ">=3.10,<3.11" dependencies = [ "fastecdsa", "sympy", "typer", "python-dotenv", - "starknet-py-unbroken==0.24.5" + "pysha3", + "starknet-py==0.24.3", + "requests", ] description = "State-of-the-art Elliptic Curve operations and SNARKS verification for Cairo & Starknet 🐺." diff --git a/src/.tool-versions b/src/.tool-versions index cc60fd62..3efd1f43 100644 --- a/src/.tool-versions +++ b/src/.tool-versions @@ -1 +1 @@ -scarb 2.8.2 +scarb 2.9.1 diff --git a/src/Scarb.toml b/src/Scarb.toml index 3673e6a6..95d7c36f 100644 --- a/src/Scarb.toml +++ b/src/Scarb.toml @@ -1,6 +1,7 @@ [package] name = "garaga" -version = "0.1.0" +version = "0.15.3" +edition = "2023_10" licence = "MIT" keywords = ["zk", "snarks", "curve", "pairing", "groth16", "plonk", "bls", "elliptic", "signature"] description = "State-of-the-art Elliptic Curve operations and SNARKS verification for Cairo & Starknet" @@ -12,10 +13,13 @@ repository = "https://github.com/keep-starknet-strange/garaga" [cairo] sierra-replace-ids = false +[features] +full = [] + [dependencies] [dev-dependencies] -cairo_test = "2.8.2" +cairo_test = "2.9.1" #snforge_std = { git = "https://github.com/foundry-rs/starknet-foundry.git", tag = "v0.30.0" } -#assert_macros = "2.8.2" +#assert_macros = "2.8." diff --git a/src/contracts/drand_quicknet/Scarb.toml b/src/contracts/drand_quicknet/Scarb.toml index 23acf04c..faa1a443 100644 --- a/src/contracts/drand_quicknet/Scarb.toml +++ b/src/contracts/drand_quicknet/Scarb.toml @@ -5,7 +5,7 @@ edition = "2024_07" [dependencies] garaga = { path = "../.." } -starknet = "2.8.2" +starknet = "2.9.1" [cairo] sierra-replace-ids = false diff --git a/src/contracts/drand_quicknet/src/drand_verifier.cairo b/src/contracts/drand_quicknet/src/drand_verifier.cairo index 181d9963..db01023f 100644 --- a/src/contracts/drand_quicknet/src/drand_verifier.cairo +++ b/src/contracts/drand_quicknet/src/drand_verifier.cairo @@ -3,7 +3,7 @@ use super::drand_verifier_constants::{G2_GEN, precomputed_lines}; #[starknet::interface] trait IDrandQuicknet { fn verify_round_and_get_randomness( - ref self: TContractState, full_proof_with_hints: Span, + self: @TContractState, full_proof_with_hints: Span, ) -> Option; } @@ -12,15 +12,12 @@ mod DrandQuicknet { // use starknet::SyscallResultTrait; use garaga::definitions::{G1Point, G1G2Pair}; use garaga::pairing_check::{multi_pairing_check_bls12_381_2P_2F, MPCheckHintBLS12_381}; - // use garaga::ec_ops::{G1PointTrait, G2PointTrait}; use garaga::utils::drand::{ - round_to_curve_bls12_381, DRAND_QUICKNET_PUBLIC_KEY, HashToCurveHint + round_to_curve_bls12_381, DRAND_QUICKNET_PUBLIC_KEY, HashToCurveHint, }; use super::{precomputed_lines, G2_GEN}; use garaga::utils::hashing::hash_G1Point; - // const ECIP_OPS_CLASS_HASH: felt252 = - // 0x7918f484291eb154e13d0e43ba6403e62dc1f5fbb3a191d868e2e37359f8713; // use starknet::ContractAddress; #[storage] @@ -36,11 +33,11 @@ mod DrandQuicknet { #[abi(embed_v0)] impl IDrandQuicknet of super::IDrandQuicknet { fn verify_round_and_get_randomness( - ref self: ContractState, mut full_proof_with_hints: Span, + self: @ContractState, mut full_proof_with_hints: Span, ) -> Option { let drand_hint: DrandHint = Serde::deserialize(ref full_proof_with_hints).unwrap(); let message = round_to_curve_bls12_381( - drand_hint.round_number, drand_hint.hash_to_curve_hint + drand_hint.round_number, drand_hint.hash_to_curve_hint, ); let check = multi_pairing_check_bls12_381_2P_2F( diff --git a/src/contracts/drand_quicknet/src/drand_verifier_constants.cairo b/src/contracts/drand_quicknet/src/drand_verifier_constants.cairo index 0013a5f8..924e471a 100644 --- a/src/contracts/drand_quicknet/src/drand_verifier_constants.cairo +++ b/src/contracts/drand_quicknet/src/drand_verifier_constants.cairo @@ -1,3571 +1,3568 @@ use garaga::definitions::{G2Line, G2Point, u384}; -pub const G2_GEN: G2Point = - G2Point { - x0: u384 { - limb0: 0xa805bbefd48056c8c121bdb8, - limb1: 0xb4510b647ae3d1770bac0326, - limb2: 0x2dc51051c6e47ad4fa403b02, - limb3: 0x24aa2b2f08f0a9126080527 - }, - x1: u384 { - limb0: 0x13945d57e5ac7d055d042b7e, - limb1: 0xb5da61bbdc7f5049334cf112, - limb2: 0x88274f65596bd0d09920b61a, - limb3: 0x13e02b6052719f607dacd3a0 - }, - y0: u384 { - limb0: 0x3baca289e193548608b82801, - limb1: 0x6d429a695160d12c923ac9cc, - limb2: 0xda2e351aadfd9baa8cbdd3a7, - limb3: 0xce5d527727d6e118cc9cdc6 - }, - y1: u384 { - limb0: 0x5cec1da1aaa9075ff05f79be, - limb1: 0x267492ab572e99ab3f370d27, - limb2: 0x2bc28b99cb3e287e85a763af, - limb3: 0x606c4a02ea734cc32acd2b0 - } - }; +pub const G2_GEN: G2Point = G2Point { + x0: u384 { + limb0: 0xa805bbefd48056c8c121bdb8, + limb1: 0xb4510b647ae3d1770bac0326, + limb2: 0x2dc51051c6e47ad4fa403b02, + limb3: 0x24aa2b2f08f0a9126080527, + }, + x1: u384 { + limb0: 0x13945d57e5ac7d055d042b7e, + limb1: 0xb5da61bbdc7f5049334cf112, + limb2: 0x88274f65596bd0d09920b61a, + limb3: 0x13e02b6052719f607dacd3a0, + }, + y0: u384 { + limb0: 0x3baca289e193548608b82801, + limb1: 0x6d429a695160d12c923ac9cc, + limb2: 0xda2e351aadfd9baa8cbdd3a7, + limb3: 0xce5d527727d6e118cc9cdc6, + }, + y1: u384 { + limb0: 0x5cec1da1aaa9075ff05f79be, + limb1: 0x267492ab572e99ab3f370d27, + limb2: 0x2bc28b99cb3e287e85a763af, + limb3: 0x606c4a02ea734cc32acd2b0, + }, +}; -pub const precomputed_lines: [ - G2Line - ; 136] = [ +pub const precomputed_lines: [G2Line; 136] = [ G2Line { r0a0: u384 { limb0: 0x36701a5831c9fb39250e2ea9, limb1: 0x26ad0ec05ad6440f1df034cf, limb2: 0x67cd27cf7598a85f81c23cd9, - limb3: 0x15a76ee3d8d1c3451005d560 + limb3: 0x15a76ee3d8d1c3451005d560, }, r0a1: u384 { limb0: 0x9009367bbf6e6aa19488df66, limb1: 0xce5cd2ccda4704dc0e4b92b6, limb2: 0xd7656829a6a71c42deb7dd, - limb3: 0x16d96e785c797fb5d6afcb14 + limb3: 0x16d96e785c797fb5d6afcb14, }, r1a0: u384 { limb0: 0x9d68b0bdf431a2f53189c109, limb1: 0x70e39167384e44fdaf716fa4, limb2: 0x3768099390a3f9d581d88280, - limb3: 0x4c208bdb300097927393e96 + limb3: 0x4c208bdb300097927393e96, }, r1a1: u384 { limb0: 0x68ab4b88cf058f147ba2cda9, limb1: 0xce3b4d4da03cbdac75933b54, limb2: 0x1be2f7e6eaa0f1474cb64c53, - limb3: 0x546ca700477f9c2f9def969 - } + limb3: 0x546ca700477f9c2f9def969, + }, }, G2Line { r0a0: u384 { limb0: 0x96e0f84058018a4538d64e8b, limb1: 0xdb7b84172cb1e68ddd09eb12, limb2: 0xcf3aaa45c2b370e810ea9361, - limb3: 0x14b92565b748c30f253912c6 + limb3: 0x14b92565b748c30f253912c6, }, r0a1: u384 { limb0: 0x9cdcddf4728a38086aebcd7, limb1: 0x7b8d9115b96656327dd79780, limb2: 0xbf914addbdcbe307142bf7cc, - limb3: 0x3c50d0829bdc305ff694cc9 + limb3: 0x3c50d0829bdc305ff694cc9, }, r1a0: u384 { limb0: 0xcc0dbe864e35231bdec2ef76, limb1: 0x4efa339ef551d8f751da95ba, limb2: 0xfde5910a13d5c428549ed3f5, - limb3: 0x105e4803f5b8472a138e00b + limb3: 0x105e4803f5b8472a138e00b, }, r1a1: u384 { limb0: 0x584879d210eb30bfd6518cf2, limb1: 0xa7c4af01b40d0e68243b050c, limb2: 0xade596dd94a41e4aedec2196, - limb3: 0x162a46f819eba8e3b9d215f9 - } + limb3: 0x162a46f819eba8e3b9d215f9, + }, }, G2Line { r0a0: u384 { limb0: 0xaa37b5f455262931a4a4b667, limb1: 0xd63d75f6f171228540731ca7, limb2: 0x1855073ef14fe67beee9ec53, - limb3: 0x703f29e5b69ff1dd1441781 + limb3: 0x703f29e5b69ff1dd1441781, }, r0a1: u384 { limb0: 0x310c4b87c8dca9036f6be0c0, limb1: 0x4b940b400d665d605ca8924b, limb2: 0x6d53ff2907765e3888b9709e, - limb3: 0x166de077ba25fe21aafb8d8 + limb3: 0x166de077ba25fe21aafb8d8, }, r1a0: u384 { limb0: 0xa28a55b43c534d6caa724f82, limb1: 0x5f55bbeb19616aec79892386, limb2: 0x3aacfc3b6bd889cf57af9e40, - limb3: 0x72ff7d1d3328dbb7c821e1 + limb3: 0x72ff7d1d3328dbb7c821e1, }, r1a1: u384 { limb0: 0xd5e91f70851719038228e756, limb1: 0xb4f970b567fc2d6738d65700, limb2: 0x8c886fe7294c08b41dc5dcbe, - limb3: 0x782b1bf6e81fef26d367768 - } + limb3: 0x782b1bf6e81fef26d367768, + }, }, G2Line { r0a0: u384 { limb0: 0x8d8ec958debf40520de5d867, limb1: 0x57bad55eb06d937414e80cc9, limb2: 0xcb178ebae0f48eb14ad4fba0, - limb3: 0x13aa75258cc1d54eb767a47e + limb3: 0x13aa75258cc1d54eb767a47e, }, r0a1: u384 { limb0: 0x7aec4216b9f9e33aa4f5af6, limb1: 0x607eabc6cb65b9f4b850a042, limb2: 0x1d93b61b06f4e64902410902, - limb3: 0x1860921bbe145ede9350b867 + limb3: 0x1860921bbe145ede9350b867, }, r1a0: u384 { limb0: 0xe104b73f6d12d90e3c339c6c, limb1: 0x27bab1ac67f3132355d4c1a0, limb2: 0x63ecc80d6bd96b3d592f63d9, - limb3: 0xdcb608c9ce643f854507b05 + limb3: 0xdcb608c9ce643f854507b05, }, r1a1: u384 { limb0: 0xe3895865374c9b06b8d02a7f, limb1: 0x8c09a76a05340ce642b99a1a, limb2: 0x4a4afdbe107c0182cfe2e6e7, - limb3: 0x1056de76a10fe55b2659ea44 - } + limb3: 0x1056de76a10fe55b2659ea44, + }, }, G2Line { r0a0: u384 { limb0: 0x6a72f085ee4e78bd4c2aef8e, limb1: 0xdec05cffe4a869aed2a64ee8, limb2: 0xd41aa908b1a833b94e768d2, - limb3: 0x56ceab5d5d994dee0ca07fc + limb3: 0x56ceab5d5d994dee0ca07fc, }, r0a1: u384 { limb0: 0xd23aad6cd3e84e398a4e7bc8, limb1: 0xb343a6878db6ec20bcac1275, limb2: 0x3111e14b674a67295a242cf3, - limb3: 0x39b596a976f556e5ea4016a + limb3: 0x39b596a976f556e5ea4016a, }, r1a0: u384 { limb0: 0x19fcdcac7feb1f0edbefdbf8, limb1: 0x71bc60f1a68459eb52df6a92, limb2: 0x2827dbba9d5d8516fb557dfb, - limb3: 0x4786cc02b147d13e701c1f5 + limb3: 0x4786cc02b147d13e701c1f5, }, r1a1: u384 { limb0: 0xcb7555c0db86510eb99cfadd, limb1: 0x43387d10f8329296e43e6610, limb2: 0xbf6789475132950c583823a, - limb3: 0x145f508c63c10d270e027b2b - } + limb3: 0x145f508c63c10d270e027b2b, + }, }, G2Line { r0a0: u384 { limb0: 0x411944418a1e44d0fbd8a4bd, limb1: 0xfa3933a100d5d920bb158196, limb2: 0xaf6096a850d10c6ee57b7d3f, - limb3: 0x7bc245f0c719ec216f4f7e7 + limb3: 0x7bc245f0c719ec216f4f7e7, }, r0a1: u384 { limb0: 0xd5f88a09ab7912a54504534a, limb1: 0x6c7b84068e05767f3ac72003, limb2: 0x2e783a6cd8933e5ce254ff56, - limb3: 0x648a93088ef22f73be5e1d5 + limb3: 0x648a93088ef22f73be5e1d5, }, r1a0: u384 { limb0: 0x72f4d88bd20cecc4c1d57b8f, limb1: 0x2164d957d0e784aca77a27b6, limb2: 0xe45f0a865306a8c7ccf8e465, - limb3: 0x182e7e79c81e19c5e6dba3b8 + limb3: 0x182e7e79c81e19c5e6dba3b8, }, r1a1: u384 { limb0: 0xf2b21292475b313a8591d232, limb1: 0x31975a79dd261ef9304ae69f, limb2: 0x3fca7e570497ea425d166e3f, - limb3: 0xb1e493cae679afa3aeeb48e - } + limb3: 0xb1e493cae679afa3aeeb48e, + }, }, G2Line { r0a0: u384 { limb0: 0x7bd212f8f60967471e995a8e, limb1: 0xec76fa31d0fd358f36ee756e, limb2: 0xa63e06c40964532a724817c3, - limb3: 0xd860767952ed2b694b64eea + limb3: 0xd860767952ed2b694b64eea, }, r0a1: u384 { limb0: 0xd18f8b1de21e64c50d3c6fc2, limb1: 0x456cec057d45521c48d0b547, limb2: 0x23fb8276293fac77c9a38c1b, - limb3: 0x1469d7cf50d58855fa523aa8 + limb3: 0x1469d7cf50d58855fa523aa8, }, r1a0: u384 { limb0: 0x52f1d22ea6bfc23435bf7e3b, limb1: 0x3e2d5122467bf39f2573a57b, limb2: 0x378db9e77f53b5b1e38981da, - limb3: 0x1015deb442db265529d8948 + limb3: 0x1015deb442db265529d8948, }, r1a1: u384 { limb0: 0x73c44618fb7917b2596bd460, limb1: 0x598ee13313073cf3232e1b37, limb2: 0xbd63e58ae4aa477bcd459ef2, - limb3: 0x272bfde06aa8302ab8c70d6 - } + limb3: 0x272bfde06aa8302ab8c70d6, + }, }, G2Line { r0a0: u384 { limb0: 0x84d7880d9c5ad98d07f1b961, limb1: 0xd5be4b6e58ad745353113073, limb2: 0x592ecc7534e44983a06d755c, - limb3: 0x15d60a0d6d8a2e4543194737 + limb3: 0x15d60a0d6d8a2e4543194737, }, r0a1: u384 { limb0: 0x9ba63990e4f1ea4875173006, limb1: 0xf84fa98d5f3742b3c571f427, limb2: 0xdd28189a4a2e3a70f78a170e, - limb3: 0x1ad5bc82425c66f655a75db + limb3: 0x1ad5bc82425c66f655a75db, }, r1a0: u384 { limb0: 0x49306522c22ca321950bf155, limb1: 0x369a747f27aa6472ebc5d290, limb2: 0x20d8977cbe5acf112574c70a, - limb3: 0xcdc103da1aac9ec5f855b64 + limb3: 0xcdc103da1aac9ec5f855b64, }, r1a1: u384 { limb0: 0x74517cbd651af3940075c057, limb1: 0x94d3802d81c93d69eb13518b, limb2: 0x76411c393dd03e5381661629, - limb3: 0x16e57b05faef24ef64868a07 - } + limb3: 0x16e57b05faef24ef64868a07, + }, }, G2Line { r0a0: u384 { limb0: 0x1a30592d98290c72cccd458b, limb1: 0x140a621ff20376f808a589fd, limb2: 0x49ba32b20969590620d93359, - limb3: 0x8505a11bd1aa7d53fffa788 + limb3: 0x8505a11bd1aa7d53fffa788, }, r0a1: u384 { limb0: 0xbedeeea8460644391170d35f, limb1: 0xcfc8f5f9f7606a79990e9242, limb2: 0x2747fe157739059a9b528ae0, - limb3: 0x13386caa378815cd519166ec + limb3: 0x13386caa378815cd519166ec, }, r1a0: u384 { limb0: 0x2adf79c700fc3a5a36c5ec26, limb1: 0x4f168c2853c5ec65b71b40ca, limb2: 0x7e0c13754f775e73a9419653, - limb3: 0x10616cc67745c7887ca4898e + limb3: 0x10616cc67745c7887ca4898e, }, r1a1: u384 { limb0: 0xde84fc636c0a8697ac4d8960, limb1: 0xdd66e4fac060783909cc83c4, limb2: 0x86edc8b2faa981346da2237c, - limb3: 0x11c912ed6ea0e8f7768ac884 - } + limb3: 0x11c912ed6ea0e8f7768ac884, + }, }, G2Line { r0a0: u384 { limb0: 0x6b6c23b2b461087f63e2fd50, limb1: 0x8454a8c69f81cfea8edb19ba, limb2: 0x2133ca31f8dd40f674513fd8, - limb3: 0x171663bdebf2ef26dc306e13 + limb3: 0x171663bdebf2ef26dc306e13, }, r0a1: u384 { limb0: 0x6b95f25b75fe9a8aa69ae917, limb1: 0x2f15c87206b024c108e4f4d4, limb2: 0xc4e3e65f02f2e19326083300, - limb3: 0x16172a9e775f111d4bf432bf + limb3: 0x16172a9e775f111d4bf432bf, }, r1a0: u384 { limb0: 0xc4289527cdf4e1662f27e1f9, limb1: 0x7f6c52aaea1458a5388d10eb, limb2: 0x4f6130d75d26097d0a4fa02a, - limb3: 0x16f8a911b684b408bbd72650 + limb3: 0x16f8a911b684b408bbd72650, }, r1a1: u384 { limb0: 0x648a1498ebbbd0e225db1ffc, limb1: 0xa36cfb4b46195b619bb220bf, limb2: 0xe327926a1726c7e5bb70bc97, - limb3: 0xfcef666ce7ecc2915258730 - } + limb3: 0xfcef666ce7ecc2915258730, + }, }, G2Line { r0a0: u384 { limb0: 0xb5abe92a46d0ff04a4205803, limb1: 0xdb760c98b7aad959e5dfc28d, limb2: 0xbea9b6e4adf41fa1060713ee, - limb3: 0x75707a467e7543c28370330 + limb3: 0x75707a467e7543c28370330, }, r0a1: u384 { limb0: 0x8b0715d2f6a16be8d5828197, limb1: 0x598a8a6da7ed2bcc091f594d, limb2: 0x18cfc9c1ee8960c06ff2c240, - limb3: 0x14061839f139644bb20e8647 + limb3: 0x14061839f139644bb20e8647, }, r1a0: u384 { limb0: 0xd529f0561fff46258f565dec, limb1: 0x80402f61ae7ce96272aff23b, limb2: 0x883367465c3a4bde2507377a, - limb3: 0x14fc234296369891318c6245 + limb3: 0x14fc234296369891318c6245, }, r1a1: u384 { limb0: 0x9fdc0242b4d20c44b72c8d49, limb1: 0x37e047238dd417acab9ea0c2, limb2: 0xc424c8845919fe27ac23e9, - limb3: 0x151e87d65d95c3b1cc9b1de6 - } + limb3: 0x151e87d65d95c3b1cc9b1de6, + }, }, G2Line { r0a0: u384 { limb0: 0xf5a9a8a9d8ecd9df033bb53b, limb1: 0x6f13c1f15ca3c43bd8dc862c, limb2: 0xaf9fffe39ed8b6f589e47e4f, - limb3: 0x1355d3f3bda0ba53c342406b + limb3: 0x1355d3f3bda0ba53c342406b, }, r0a1: u384 { limb0: 0x13c7baebedc25cd07fa0b8ea, limb1: 0x4e29e5e7fd865c69feb81131, limb2: 0xdcf94191f24d657ae6fc8c5c, - limb3: 0x162398b0a01eff8f7149ab6c + limb3: 0x162398b0a01eff8f7149ab6c, }, r1a0: u384 { limb0: 0x8cf50d2f7aa3da376e8317d5, limb1: 0x490a7502e8f6bc788f715c7a, limb2: 0xe6db018fa6b084ae40896c2b, - limb3: 0x184f93ce89fff4893629db4d + limb3: 0x184f93ce89fff4893629db4d, }, r1a1: u384 { limb0: 0x53e941ac4d20f05b66f3b0ec, limb1: 0x82b8a8efafffe40798a1d5da, limb2: 0xd08e35da426abf3dd1ce8bb, - limb3: 0xd49095a9c436bd86f9d4736 - } + limb3: 0xd49095a9c436bd86f9d4736, + }, }, G2Line { r0a0: u384 { limb0: 0x9bd8fa7a943e0e3a924e7492, limb1: 0xad948685eedfe9d3ac7315ff, limb2: 0x8148910d6004895792caa88d, - limb3: 0x1deabfaeb3374b50119ecb9 + limb3: 0x1deabfaeb3374b50119ecb9, }, r0a1: u384 { limb0: 0xfedf28954ae85d6e9f58c709, limb1: 0x7c01f5d8a4b9368fc9cbb8eb, limb2: 0xbe98bf07cbd25fe6f4ac154f, - limb3: 0x7c9b05e8adef4de506459f7 + limb3: 0x7c9b05e8adef4de506459f7, }, r1a0: u384 { limb0: 0x71812aeba8c33457117bfb0, limb1: 0xaf1a11b5a7571775ec17c1, limb2: 0x721e08542ff85e7037b2c02f, - limb3: 0x991d1db86230da71efb4475 + limb3: 0x991d1db86230da71efb4475, }, r1a1: u384 { limb0: 0x4122fa433f37c5e6888de07c, limb1: 0x144d977681671d8cd0854c34, limb2: 0x93981673fae1df08d18161aa, - limb3: 0x145eae6a49c250f2435d1ec8 - } + limb3: 0x145eae6a49c250f2435d1ec8, + }, }, G2Line { r0a0: u384 { limb0: 0x3ab208ad049d8dbf41ab2d8c, limb1: 0xe8d0eafc04fe7a37f53901c8, limb2: 0xbffd6b641b6f6961476d4a1b, - limb3: 0x16c1d585f68dee202ea9a988 + limb3: 0x16c1d585f68dee202ea9a988, }, r0a1: u384 { limb0: 0x3eba0d6e9e3751e7d1b4533f, limb1: 0x8e4692d56ab832e68469328a, limb2: 0x9d03908cf037ee8faf6dac32, - limb3: 0x2ef973d44d5dfe1f52b48e7 + limb3: 0x2ef973d44d5dfe1f52b48e7, }, r1a0: u384 { limb0: 0x6cd551023179a5ffe150ae4b, limb1: 0xd48575f40677168193ee4571, limb2: 0x81320f4ef3fa7936f5865695, - limb3: 0x37748234157e4931a4f54d7 + limb3: 0x37748234157e4931a4f54d7, }, r1a1: u384 { limb0: 0x73847e2fc69aee5b6a51756, limb1: 0x1cfd76b51ee2e57b733742b9, limb2: 0xe02551761eba32bebc8413bb, - limb3: 0x3136b909d615d39094ab565 - } + limb3: 0x3136b909d615d39094ab565, + }, }, G2Line { r0a0: u384 { limb0: 0xa8af53d78f2fa38c6e213a84, limb1: 0xc908fd45d36e147e8a3449ea, limb2: 0x9224181cd573d3836b141129, - limb3: 0x140090a04158ea562a90ed5 + limb3: 0x140090a04158ea562a90ed5, }, r0a1: u384 { limb0: 0x95e6526648a96a5a43488327, limb1: 0x5f5e4c24465495ee0dcb3055, limb2: 0x49f0985811804cda4142ca8c, - limb3: 0x9619ac570f151f7baaa7ae + limb3: 0x9619ac570f151f7baaa7ae, }, r1a0: u384 { limb0: 0xc2ef8275baa5e3b836a847d7, limb1: 0x9835333ce4136fda57f9c31e, limb2: 0x8392d675aba184475007124a, - limb3: 0x10f9170d8f4e3130ef5a354e + limb3: 0x10f9170d8f4e3130ef5a354e, }, r1a1: u384 { limb0: 0x4db131e9b2a50df6253da27e, limb1: 0x3210503344192c1a1d83234c, limb2: 0xb84a1ae100e6602d2a3eaa1d, - limb3: 0x146401ace26dcc76ec7cb805 - } + limb3: 0x146401ace26dcc76ec7cb805, + }, }, G2Line { r0a0: u384 { limb0: 0x9a29bb6c54b018b4ed75888b, limb1: 0x1437b2d93b1ecc564157059c, limb2: 0xf0add7baf8cfe1ddc30f0754, - limb3: 0x86553ec1cc3cc6a38436fbb + limb3: 0x86553ec1cc3cc6a38436fbb, }, r0a1: u384 { limb0: 0x516be99929795e7ae5112f30, limb1: 0xb182ffdb6110024a0018e3e7, limb2: 0x8e468869d60b7ae7fc6004bd, - limb3: 0x4916e8c2d5820861e32013a + limb3: 0x4916e8c2d5820861e32013a, }, r1a0: u384 { limb0: 0x78554bdd8568c0e9686a510e, limb1: 0x97bc0c8b458fe7d5dcf2264c, limb2: 0xfcc4906709b359120a9e0158, - limb3: 0x193f60f20d1cc7f2b1bf553c + limb3: 0x193f60f20d1cc7f2b1bf553c, }, r1a1: u384 { limb0: 0x2713699297ab49a2d9bf4f6d, limb1: 0xb396d1c4590471bf032b959c, limb2: 0x350113633de03c6e721c7597, - limb3: 0x79ef6c98d71e95eb13fae02 - } + limb3: 0x79ef6c98d71e95eb13fae02, + }, }, G2Line { r0a0: u384 { limb0: 0xb3bbccb4893a93d20a147b98, limb1: 0x5c46a12e68c1dcaf7d45545, limb2: 0xe1d3e9970b998f9ee1bfcc60, - limb3: 0xe0e611221166a37eaca4699 + limb3: 0xe0e611221166a37eaca4699, }, r0a1: u384 { limb0: 0x255f666baafad4929f87c34d, limb1: 0x1a1554e683a36d8c5359c91d, limb2: 0xb351c7146573abdf82d32baf, - limb3: 0x14bc0381e2ada56e42a08f14 + limb3: 0x14bc0381e2ada56e42a08f14, }, r1a0: u384 { limb0: 0x84b1b1e77e26467b905fa496, limb1: 0x28fdfc19e13b0752aba34749, limb2: 0xeee8045d6526734c1f95307d, - limb3: 0x1e4f12f75a3db50a60aa03e + limb3: 0x1e4f12f75a3db50a60aa03e, }, r1a1: u384 { limb0: 0xcd8114dc6e6775890632c756, limb1: 0x3c477ef68ef5ed0c85ca0a58, limb2: 0x706f9cac1acb2b71feb8358, - limb3: 0xeded7ab6bb655672cde9835 - } + limb3: 0xeded7ab6bb655672cde9835, + }, }, G2Line { r0a0: u384 { limb0: 0x6016ea652473b7f107a77710, limb1: 0xeb4242895460db86f361eac8, limb2: 0x5fe77df899b1ff5607b38de2, - limb3: 0x10efb35680805c93c2bab2ca + limb3: 0x10efb35680805c93c2bab2ca, }, r0a1: u384 { limb0: 0x9107262e5bb66980954e1a0f, limb1: 0x57ab274a8a9565abc99387cb, limb2: 0xbcd4f18d8a7e65b964541f5e, - limb3: 0xaf8d03faf1efb9183c00a2c + limb3: 0xaf8d03faf1efb9183c00a2c, }, r1a0: u384 { limb0: 0x751a66b007c730df74908a8, limb1: 0xf41cc4578874d56d020638c5, limb2: 0x5230861fde86bb685b68c62f, - limb3: 0xb5d973cfd5090cd49182b06 + limb3: 0xb5d973cfd5090cd49182b06, }, r1a1: u384 { limb0: 0x283597c889dd32a98401459a, limb1: 0xb44d0ac2827551860df4a510, limb2: 0x399fc7f05e1000db1a41c1a4, - limb3: 0xe3944c673891658df0e2ba3 - } + limb3: 0xe3944c673891658df0e2ba3, + }, }, G2Line { r0a0: u384 { limb0: 0x4396189ffbd89d01fe27fa5b, limb1: 0xe81217db1696daa3753ccd84, limb2: 0x55c6ad903c2a3e4b9f14a8da, - limb3: 0x15f5f0afe4eeb7545fb13eb0 + limb3: 0x15f5f0afe4eeb7545fb13eb0, }, r0a1: u384 { limb0: 0xd3da9931ffbf361f326b7282, limb1: 0xc9d2464eda778b0051c1027e, limb2: 0xb8f5f46e2bd5fc15d81b368a, - limb3: 0x1040f087e9a0b6633fa13692 + limb3: 0x1040f087e9a0b6633fa13692, }, r1a0: u384 { limb0: 0xf986f1a7ae6234649c858e8a, limb1: 0x4644ba4e2b6b06ac11907477, limb2: 0x95bcd96412c2b77c798589bf, - limb3: 0x122a0d20337a4865af008b55 + limb3: 0x122a0d20337a4865af008b55, }, r1a1: u384 { limb0: 0x201ad08d1e12f22740a2d61f, limb1: 0x4ec7ca2abf73f04dd4d3c1cc, limb2: 0xbe2da8c0b44af69f8c08bbe5, - limb3: 0x3bac9dd093b57980816b067 - } + limb3: 0x3bac9dd093b57980816b067, + }, }, G2Line { r0a0: u384 { limb0: 0xa91fa22e8afc80abea221520, limb1: 0x5bc71539a636bbf8ebbe74f6, limb2: 0x2922894d551b50829ba322fc, - limb3: 0x14e8b48d18e449e691aaf792 + limb3: 0x14e8b48d18e449e691aaf792, }, r0a1: u384 { limb0: 0xd260160df53ab2df298a0d4c, limb1: 0x854978d64707004860c8ebf6, limb2: 0x20a4348de1a9dd2d5347eb55, - limb3: 0x243d4a3903c17c3cc51c2e8 + limb3: 0x243d4a3903c17c3cc51c2e8, }, r1a0: u384 { limb0: 0xcd7b87ec09c28073ba10e0d1, limb1: 0xa5ab4f79373898318a3e146d, limb2: 0xe648aeb5fef1cf65d3fbd74b, - limb3: 0x2fa5e6b46df2191aabe0bef + limb3: 0x2fa5e6b46df2191aabe0bef, }, r1a1: u384 { limb0: 0x11b43fce26bc49795004ca02, limb1: 0x437fe31017f62de97ffc3e35, limb2: 0x97d41632c4cd7bb50f450ba6, - limb3: 0x9b7e59a28684bed532da137 - } + limb3: 0x9b7e59a28684bed532da137, + }, }, G2Line { r0a0: u384 { limb0: 0x4527a34a70ec377ccd63a5b2, limb1: 0x351c7771105a0a1096dd87f0, limb2: 0x57630dce3b4db45cbad696a6, - limb3: 0xf10733fed03fc5b7ae27fc4 + limb3: 0xf10733fed03fc5b7ae27fc4, }, r0a1: u384 { limb0: 0x53a208df401e3d6bf657857c, limb1: 0x306991a8af53fac94e1e9b52, limb2: 0x324634590aee6093dd239d9, - limb3: 0x855b8b1eedbf578f7498f37 + limb3: 0x855b8b1eedbf578f7498f37, }, r1a0: u384 { limb0: 0x71e5471ff515d0d4982815b6, limb1: 0x9a63281835ec15935519deca, limb2: 0x17a64faa9e7e4ab574a3f785, - limb3: 0x134b4a48f53fff9361e1952c + limb3: 0x134b4a48f53fff9361e1952c, }, r1a1: u384 { limb0: 0x56dc56f73bd268799b824fa3, limb1: 0x4180514d6004cf446a366719, limb2: 0x193a82567b226e738b11a0af, - limb3: 0x1498d7e7ad2a68346f7d2199 - } + limb3: 0x1498d7e7ad2a68346f7d2199, + }, }, G2Line { r0a0: u384 { limb0: 0x81e4894bdfaf54d49cb0c4d8, limb1: 0xeb9bf46cb3dcd89325b39d09, limb2: 0x5a8e743db320615a5a0c40cd, - limb3: 0x1850f244c5272718a19a040d + limb3: 0x1850f244c5272718a19a040d, }, r0a1: u384 { limb0: 0x857b482a44483bf0457331c7, limb1: 0xa67cfb7a4ea236dcedf6137a, limb2: 0x639d1a584ec879083798355d, - limb3: 0x14240af1c0466562ca4e24f5 + limb3: 0x14240af1c0466562ca4e24f5, }, r1a0: u384 { limb0: 0xb525edd6feb5970219a6995c, limb1: 0xb1205b041c3e38e20d2fe204, limb2: 0x8caed9ba4365ffbc1589b563, - limb3: 0xfdfce3b6d0c90f89ff5b6ff + limb3: 0xfdfce3b6d0c90f89ff5b6ff, }, r1a1: u384 { limb0: 0xf04c7ee058045bf0c52bcca9, limb1: 0x25da9c7e03f90300aa977fed, limb2: 0x5388457b2d4593b62df4c077, - limb3: 0x16cde52858fd178529b49d60 - } + limb3: 0x16cde52858fd178529b49d60, + }, }, G2Line { r0a0: u384 { limb0: 0x6c92af226aa27e2cbe8fae21, limb1: 0xbc299acce5e8da96b6b932d, limb2: 0xec46a86181ef1ff2f8317201, - limb3: 0x17900cb270764782b3eca3d2 + limb3: 0x17900cb270764782b3eca3d2, }, r0a1: u384 { limb0: 0x82358801a5440afa7826f03e, limb1: 0xd09104615d27b1dba405157c, limb2: 0xda33c37fe337917d32826e1b, - limb3: 0x1be7df7094ce56532653ce2 + limb3: 0x1be7df7094ce56532653ce2, }, r1a0: u384 { limb0: 0xd33c9c433bdeabd28a276748, limb1: 0x5dd445f6fe3bb3070cd0d395, limb2: 0x8b092b49f4fdf2a38337a44c, - limb3: 0x4e047a80a74764555b1ea3d + limb3: 0x4e047a80a74764555b1ea3d, }, r1a1: u384 { limb0: 0xd83bc84b011c607d97684972, limb1: 0x2b14aae22370badd22ec77ba, limb2: 0xd29b9c7b77c3f08055bb8a9, - limb3: 0x125b416bddff21db8d6f42ed - } + limb3: 0x125b416bddff21db8d6f42ed, + }, }, G2Line { r0a0: u384 { limb0: 0x1f7265a2588028a739940ca5, limb1: 0x1e3d7315d69b4f1540ef139b, limb2: 0xa239c997bf8c622c1716408, - limb3: 0xd9744d0ac86db4218e7e96d + limb3: 0xd9744d0ac86db4218e7e96d, }, r0a1: u384 { limb0: 0x90541dda73208a1d1eda111e, limb1: 0xd5a4dd2c69e927e6a84d8487, limb2: 0xbba86a67c752a3ce780b84ff, - limb3: 0x9a35294d76f0d15a59ad03e + limb3: 0x9a35294d76f0d15a59ad03e, }, r1a0: u384 { limb0: 0xaeae8c21bae747ea58e4eb2b, limb1: 0x22bee27e94b3df2f9e30496a, limb2: 0x3c490f390a6a3762549bdbf9, - limb3: 0x1777cd7c3048d009f9f72bea + limb3: 0x1777cd7c3048d009f9f72bea, }, r1a1: u384 { limb0: 0xec21f8b948e62cded22a7d58, limb1: 0xb8041010b7270992a963f6df, limb2: 0xbddd05cca8941058f062d094, - limb3: 0x10ad979954bdd8983ce4dfc2 - } + limb3: 0x10ad979954bdd8983ce4dfc2, + }, }, G2Line { r0a0: u384 { limb0: 0x6cf96397e7b79f2fc8c8275d, limb1: 0xfc7cd3706f331af3de61fabf, limb2: 0x78630a1ca624fae6d5770503, - limb3: 0x15ed1256df8e5e5ca95b56c8 + limb3: 0x15ed1256df8e5e5ca95b56c8, }, r0a1: u384 { limb0: 0xee76aa06cc2a711c9ed0f30e, limb1: 0xffa3eb442aaeb1342a8a3887, limb2: 0xcd5194bd83d804f9da8e5cda, - limb3: 0xf5886abb33616f07cfac605 + limb3: 0xf5886abb33616f07cfac605, }, r1a0: u384 { limb0: 0x3e0ff1e7d1f926d905c0e89f, limb1: 0x3fff1943b59d697a741845cd, limb2: 0x4e362d7df69aa3269ea5a418, - limb3: 0x13a520fad90f72497a67b697 + limb3: 0x13a520fad90f72497a67b697, }, r1a1: u384 { limb0: 0xce7bf1da23ccce53d8e13b8, limb1: 0x56957fccf1163143404a68dd, limb2: 0xd26ebbc9548a9897d0383b14, - limb3: 0x329392268b1afdd087dd27b - } + limb3: 0x329392268b1afdd087dd27b, + }, }, G2Line { r0a0: u384 { limb0: 0x8f61e98d8c6cfb102fc12599, limb1: 0x3b581910d31b036fd00d6cd, limb2: 0x960c67926f53a7c4400c36fe, - limb3: 0x1437622871bdaa8aa8f1620b + limb3: 0x1437622871bdaa8aa8f1620b, }, r0a1: u384 { limb0: 0xc06e7440dac5dc6345811f4c, limb1: 0xcfdd60e51cc453252af4fcc6, limb2: 0x756f2c0839d3582469c0b8c6, - limb3: 0x12d66e992019751bc4b8c1bb + limb3: 0x12d66e992019751bc4b8c1bb, }, r1a0: u384 { limb0: 0xb0f08516779af407c735061a, limb1: 0xaf9b916f38282785c75beb83, limb2: 0xb386d3a1dd1445469d29c602, - limb3: 0x24dbe829c015491a29896d1 + limb3: 0x24dbe829c015491a29896d1, }, r1a1: u384 { limb0: 0xac0f9105a6d03cc8551b7c70, limb1: 0x4f4b9b10e54191aae0271be0, limb2: 0x6bd62b1dce1efa964448250a, - limb3: 0x121963e40701951c40d3ccd2 - } + limb3: 0x121963e40701951c40d3ccd2, + }, }, G2Line { r0a0: u384 { limb0: 0x765ce308dd13ea9ec917f81d, limb1: 0x4c2cdefe8611811647fac337, limb2: 0x9e01fde22386755f816c125f, - limb3: 0x249a870907df1494e56fc21 + limb3: 0x249a870907df1494e56fc21, }, r0a1: u384 { limb0: 0xc3cd52b28123518842661348, limb1: 0x6678659f6f9ca9e64f594e30, limb2: 0xbdde01f23d77cc2219a64e1, - limb3: 0xa59546d0d9d0d18614e9879 + limb3: 0xa59546d0d9d0d18614e9879, }, r1a0: u384 { limb0: 0x7e7be141202ac55eb1d4a8b8, limb1: 0x22ee295a285099a1bdc85200, limb2: 0x7d274b729c40bb351c2bdd3c, - limb3: 0x105edf80625508ee7473afc3 + limb3: 0x105edf80625508ee7473afc3, }, r1a1: u384 { limb0: 0x8d19d95e92eb2f4d361b91e, limb1: 0xf6cc461a1b4bd0202cc3590b, limb2: 0x87ebac45146065b2dc8d4bde, - limb3: 0x1375f5a114849a9f8e0c3d37 - } + limb3: 0x1375f5a114849a9f8e0c3d37, + }, }, G2Line { r0a0: u384 { limb0: 0xf3f6022a346335909994d26b, limb1: 0xa2e674d9be45c130702c8393, limb2: 0xda934834c7f1f4550986c5, - limb3: 0x17170963f6200ba02d7f36db + limb3: 0x17170963f6200ba02d7f36db, }, r0a1: u384 { limb0: 0xc6bd88f8f5883c00bacb7319, limb1: 0x2865832a25d7695c70d60852, limb2: 0xd63579f3b9eb855ce78f80e0, - limb3: 0x16f67362c8cbffc3e300d83b + limb3: 0x16f67362c8cbffc3e300d83b, }, r1a0: u384 { limb0: 0xd5bef1e76085837868d52daa, limb1: 0xe17818fa8f87a1a29495c6f0, limb2: 0x33702bc5001cd8e3bab9709c, - limb3: 0x3ee9300c2e7d74b5e5774d + limb3: 0x3ee9300c2e7d74b5e5774d, }, r1a1: u384 { limb0: 0x79515359f6e9ac46c2da8b44, limb1: 0x8b1d7830cfb661bc910fe5b5, limb2: 0xa6f740bc62a497d501d49790, - limb3: 0x106645c420742d2fc191def9 - } + limb3: 0x106645c420742d2fc191def9, + }, }, G2Line { r0a0: u384 { limb0: 0x58f86bbd730aa1df76e95257, limb1: 0x3832640fbf5ff16fd5c86613, limb2: 0xaf56bfc4d589fd5479b90e9a, - limb3: 0x3ca74026cf32fba56ec4ff + limb3: 0x3ca74026cf32fba56ec4ff, }, r0a1: u384 { limb0: 0x577775e0ba37cd47da598900, limb1: 0xf402fb94e1c54fc0073a49b0, limb2: 0x2e06dce324741a7e96cd8fcc, - limb3: 0x16f491b5bd383da7e70c001 + limb3: 0x16f491b5bd383da7e70c001, }, r1a0: u384 { limb0: 0xf906737c542dde2e8b5d7bf7, limb1: 0x93d207424c8f01f866d09071, limb2: 0x7a8dc05cf5ae45304b21d8d, - limb3: 0x1d432a9b400dc09515479f5 + limb3: 0x1d432a9b400dc09515479f5, }, r1a1: u384 { limb0: 0x533a88fd57c73a7a668d47a8, limb1: 0x11cd23f02ff6e7610e1522a9, limb2: 0xbb9e0293df841db5d616e680, - limb3: 0x19f2811473fbfa9dddb16249 - } + limb3: 0x19f2811473fbfa9dddb16249, + }, }, G2Line { r0a0: u384 { limb0: 0xb84433d5bb94067c8083df37, limb1: 0x4a1c6dead6b06daaef49a331, limb2: 0xf045631520d7fcf91cd6d5bc, - limb3: 0x171679be9cc2fb7fca2ffb4b + limb3: 0x171679be9cc2fb7fca2ffb4b, }, r0a1: u384 { limb0: 0xbff0ab7bce5a89764c470c2b, limb1: 0x7c275c7485dd37e467e28e07, limb2: 0x976153708a70bd4353e49415, - limb3: 0x137b63810a42885e3d12973a + limb3: 0x137b63810a42885e3d12973a, }, r1a0: u384 { limb0: 0x33aaf9966841141dd4aeed0, limb1: 0xe937c580cfbd8a3936590a47, limb2: 0x7e2948f3ac9443871d29a3b0, - limb3: 0x17ae57245137f902685ea5f + limb3: 0x17ae57245137f902685ea5f, }, r1a1: u384 { limb0: 0xae14ce204d876228a369b45, limb1: 0x6e8aa97e94af3b53715ed047, limb2: 0x346c278c809a30daf1d01b7, - limb3: 0x22e054e6e6d8bf998a85e43 - } + limb3: 0x22e054e6e6d8bf998a85e43, + }, }, G2Line { r0a0: u384 { limb0: 0x453bf5d35812bbf0123c972a, limb1: 0x3a9bcdec2fe60921bf629abd, limb2: 0x8d4d0d00c4d2739ae3a0b176, - limb3: 0x9a76bae205af60fb63330d3 + limb3: 0x9a76bae205af60fb63330d3, }, r0a1: u384 { limb0: 0xa5e2fc320bd337a5e6bf6e59, limb1: 0x649bf53444907381a7d0f976, limb2: 0x57cfc1f1da9301aff5ef309c, - limb3: 0x79042a88c84c694ffd3fa12 + limb3: 0x79042a88c84c694ffd3fa12, }, r1a0: u384 { limb0: 0x8149e3cbfdcb7c4749e0ba73, limb1: 0x72f87f4ff2d25e09a5eae7db, limb2: 0x1d01fadf84a7202ce4489428, - limb3: 0x15652f54b134df28e3b93c7 + limb3: 0x15652f54b134df28e3b93c7, }, r1a1: u384 { limb0: 0xa1b43fd866b4d217c50e744a, limb1: 0xce197f05b592d754e8f84093, limb2: 0xbc7dc9245b7e2113d675abe4, - limb3: 0x2f8afc77fac6bc37b0c7667 - } + limb3: 0x2f8afc77fac6bc37b0c7667, + }, }, G2Line { r0a0: u384 { limb0: 0x5f799d84974b34b214204be7, limb1: 0x7e577069bef682a54f78cc32, limb2: 0x43803af2b35c7987d12eac96, - limb3: 0x3570c7ba557421c82cfaa6c + limb3: 0x3570c7ba557421c82cfaa6c, }, r0a1: u384 { limb0: 0x2aa9d33a1acddb979d7c2d2f, limb1: 0x2bb926928f20a965a10a6d22, limb2: 0x1d650b759bafd7750c78aa91, - limb3: 0xac21b07f22d3d31ceef607b + limb3: 0xac21b07f22d3d31ceef607b, }, r1a0: u384 { limb0: 0xa188a2df22f2cac6ae25fcff, limb1: 0x15f7af3ae3fe3ab80fcbf44b, limb2: 0x3cc65299b3a990d0b8f2dc21, - limb3: 0x720671ab41e616ac46a4d4 + limb3: 0x720671ab41e616ac46a4d4, }, r1a1: u384 { limb0: 0x8d5ce83450ecd58d21821d04, limb1: 0x600fb56fcdc4198005433d16, limb2: 0x60f583b87d52b7e7eae71b15, - limb3: 0xfb05f7038ebbb06ca53b3fd - } + limb3: 0xfb05f7038ebbb06ca53b3fd, + }, }, G2Line { r0a0: u384 { limb0: 0xa36890bfc74afe64e9f3840c, limb1: 0x8eeaf2f380047dfe3a21b11b, limb2: 0xeb84e8fad6b7625c837aa272, - limb3: 0x135ff64b4d73a3a2d0f886b2 + limb3: 0x135ff64b4d73a3a2d0f886b2, }, r0a1: u384 { limb0: 0x6fa3e40ac2853a97b01176dd, limb1: 0xcd16a519987e4aabf6bd8d1, limb2: 0xe4ee3c4f4c650fbfe5a0a370, - limb3: 0xcc7efdc19164223dbcb0b43 + limb3: 0xcc7efdc19164223dbcb0b43, }, r1a0: u384 { limb0: 0x9ed5597f7236b21674d039f4, limb1: 0x5cce2f4074bfb9593d07dcab, limb2: 0x1467dedd98c377f9f9b46e75, - limb3: 0x89f8ba7d879e18afda115ac + limb3: 0x89f8ba7d879e18afda115ac, }, r1a1: u384 { limb0: 0xce1eb5fb3e129849b7af9b61, limb1: 0xbb388e5edcc82d67d7e505d1, limb2: 0x37f0c598b86ce85a7ccc5e90, - limb3: 0xf3dfe35088599f2eeb97849 - } + limb3: 0xf3dfe35088599f2eeb97849, + }, }, G2Line { r0a0: u384 { limb0: 0xb1dad5dc4b347aa8cdea64f6, limb1: 0xcc2058c63fba33421acef87, limb2: 0x6671bbd574e8f23a8c33a473, - limb3: 0x173c0d3a77be26a04dc370a + limb3: 0x173c0d3a77be26a04dc370a, }, r0a1: u384 { limb0: 0x89c7ef66c7e6d4c7a5f1ee7b, limb1: 0xfa29a5dde6a8d29efb1b12b3, limb2: 0xc0f4a5b6342df0adc3da765b, - limb3: 0x154e74a84c92a5ff794fca30 + limb3: 0x154e74a84c92a5ff794fca30, }, r1a0: u384 { limb0: 0x3baf5745ddfc03d1be36473, limb1: 0x41fbbc02d24948d8a3c0efa1, limb2: 0xeba542193a176f39572880b7, - limb3: 0xba18efa42d34eea1333f2cd + limb3: 0xba18efa42d34eea1333f2cd, }, r1a1: u384 { limb0: 0x77fee73ea8d2cae877fc09bc, limb1: 0x4b28c7e9ba63b4a2a16dc3e3, limb2: 0x5ef0ade97bcf1bbd542b74c2, - limb3: 0x60c323e8930e93d6a8a8b53 - } + limb3: 0x60c323e8930e93d6a8a8b53, + }, }, G2Line { r0a0: u384 { limb0: 0xb9289920fc29c178a0728467, limb1: 0xf35e17ec8a43244f4e0efb63, limb2: 0xa46135ade487bf1a95a36590, - limb3: 0x4597ae1f4cfcdaacff3f6 + limb3: 0x4597ae1f4cfcdaacff3f6, }, r0a1: u384 { limb0: 0xe926fdfcdb55d8651b029bb7, limb1: 0x741390b7035f30b98e2dcd27, limb2: 0x697fa3901ef0c0d6f4f0693b, - limb3: 0xcc420802c358e2dedfc71d4 + limb3: 0xcc420802c358e2dedfc71d4, }, r1a0: u384 { limb0: 0x404a03b34791ba0f3fa9761, limb1: 0x50d30e7876bb541f3ef689f6, limb2: 0x7eca4b1c1a04fdc1c58f3065, - limb3: 0xa9e0b8c0194468d35c05fbd + limb3: 0xa9e0b8c0194468d35c05fbd, }, r1a1: u384 { limb0: 0xb370e739ea46b6699276bb50, limb1: 0x39805df77c609ca4cb80f044, limb2: 0x1f93a5fc91ea7ec7048f46d8, - limb3: 0x109841b0d6d23c644d831b58 - } + limb3: 0x109841b0d6d23c644d831b58, + }, }, G2Line { r0a0: u384 { limb0: 0x696c2443a8baa527eef5ec6e, limb1: 0x7c385a900f4614f62a38d2e7, limb2: 0xecef959f527ae42bb1b2a0ed, - limb3: 0x7fac72373dec09eeaf6db37 + limb3: 0x7fac72373dec09eeaf6db37, }, r0a1: u384 { limb0: 0xc84aa165d81984cbd1d40498, limb1: 0x7ef2f6d8a1b0b82a86a8aea1, limb2: 0x9f04cb828903af563a7ce955, - limb3: 0x1260f88b57dddd5bf01540db + limb3: 0x1260f88b57dddd5bf01540db, }, r1a0: u384 { limb0: 0x7d666c3a74212ecb676ee24e, limb1: 0x8ddff061953f45de2460c7ee, limb2: 0xb69a343af7532ec4af3c8894, - limb3: 0x213c5dddce502302ac58fec + limb3: 0x213c5dddce502302ac58fec, }, r1a1: u384 { limb0: 0x9b68c470206e0a6b23d993d7, limb1: 0x8e64f45ab3906177fca690b, limb2: 0x6b3ba9665c9e8cdb62669c9b, - limb3: 0x4535c1e41f9fe732b7c4780 - } + limb3: 0x4535c1e41f9fe732b7c4780, + }, }, G2Line { r0a0: u384 { limb0: 0x47796752c668f86cda3eea09, limb1: 0xabe85392bfe45c509b21188a, limb2: 0x17747fdbb10299befbd5f562, - limb3: 0x10f206ff106da3cd9621d6a7 + limb3: 0x10f206ff106da3cd9621d6a7, }, r0a1: u384 { limb0: 0x19e850771140dd110fd5f601, limb1: 0x49e65a215ab2cb29f8e19340, limb2: 0x7c583039a8252df0d94325d4, - limb3: 0xfdd46f3792b92d70b7938c8 + limb3: 0xfdd46f3792b92d70b7938c8, }, r1a0: u384 { limb0: 0x2973fb308f21f4591c6768bc, limb1: 0x7c10b3f79cbbfc0069738f2c, limb2: 0x227581522b2559c9557982fc, - limb3: 0x146f0ce0cb299800bb8186ed + limb3: 0x146f0ce0cb299800bb8186ed, }, r1a1: u384 { limb0: 0x7e45c08de7497185100c82e7, limb1: 0xf873456c3b1257743a548919, limb2: 0x4e414c1420aa0674960bf9f, - limb3: 0x12b9b73bea8424ee57b2038 - } + limb3: 0x12b9b73bea8424ee57b2038, + }, }, G2Line { r0a0: u384 { limb0: 0xf52c3a9e1924d9731f45159d, limb1: 0xb552aaa0c17ebf07b9461b81, limb2: 0x9e0e2d36095165665a56c844, - limb3: 0xdc948cfb597299725a35f46 + limb3: 0xdc948cfb597299725a35f46, }, r0a1: u384 { limb0: 0x37804446f6495b7f0eb8afe, limb1: 0x8290cde2fc690a09b1e27c3a, limb2: 0xac5737e20aed8460e392261b, - limb3: 0xcffa82f91cfb6f276a79a6 + limb3: 0xcffa82f91cfb6f276a79a6, }, r1a0: u384 { limb0: 0x13dd968a1b3c381b4b53e494, limb1: 0x231f8610c0c788da31f6a767, limb2: 0x1d90cef9842373ab0ed2113f, - limb3: 0xab763befb660bb27aeefea1 + limb3: 0xab763befb660bb27aeefea1, }, r1a1: u384 { limb0: 0xfb0924f8b0c0076931026ead, limb1: 0xc2303d081337f2117f9edd47, limb2: 0xbb530c1bf25042e905ef49b5, - limb3: 0x13cf2176e8c30a76d82031ff - } + limb3: 0x13cf2176e8c30a76d82031ff, + }, }, G2Line { r0a0: u384 { limb0: 0x14e4f467f4709129c1d6d6d7, limb1: 0x33e67ed9f2b5e1802523571, limb2: 0x3e76ea8acb143c96671cbc65, - limb3: 0x1137f470c8f7d00baa56e5c0 + limb3: 0x1137f470c8f7d00baa56e5c0, }, r0a1: u384 { limb0: 0xa2a95cfa92d0088ab1308e85, limb1: 0x85a5304db0b3422f71d7ac93, limb2: 0xbc8572953d8f42a55fe99700, - limb3: 0xf23701cea5719c6d8b0d3f3 + limb3: 0xf23701cea5719c6d8b0d3f3, }, r1a0: u384 { limb0: 0x380e418e3c32756e123587f9, limb1: 0x8a39d6b5872d774c57af0ba1, limb2: 0x11473256ad05f9eaac305647, - limb3: 0xa642f0b83f002f2b82a1d3f + limb3: 0xa642f0b83f002f2b82a1d3f, }, r1a1: u384 { limb0: 0xd5b5c903360b3614bde608b6, limb1: 0x407e2bf83df10c320c4ddafa, limb2: 0x3771cad615e4d7b5de69e962, - limb3: 0x105334af5850345d42c10c17 - } + limb3: 0x105334af5850345d42c10c17, + }, }, G2Line { r0a0: u384 { limb0: 0xcdb8e16f1b850432af115daf, limb1: 0x494ac8b75720d50e9d866f3a, limb2: 0xda7586ede3b806d6a6384fd, - limb3: 0xb859f60d04e4ff66fdfc85f + limb3: 0xb859f60d04e4ff66fdfc85f, }, r0a1: u384 { limb0: 0xe11de01127cbc1a326afb2b9, limb1: 0x6eebbbb38d51a71d3170ccd7, limb2: 0xd5cd24d22fecda4fe96bae46, - limb3: 0x101e2ac25b02edda9728dcd0 + limb3: 0x101e2ac25b02edda9728dcd0, }, r1a0: u384 { limb0: 0x71b27a86fd074f148f733377, limb1: 0x6ec32a4c65f5682adf1bb4da, limb2: 0xe8a268ef501888b89065c8ef, - limb3: 0x12f6fae4a11b2f7bae3b371a + limb3: 0x12f6fae4a11b2f7bae3b371a, }, r1a1: u384 { limb0: 0x925f04ea98dc22979ea69c0c, limb1: 0x7778ab2882af9fc10adda60f, limb2: 0x31b791ebfc10de4e0843db89, - limb3: 0x1884eaeeb4127c15465bd473 - } + limb3: 0x1884eaeeb4127c15465bd473, + }, }, G2Line { r0a0: u384 { limb0: 0xe8ab375f9e79671f77c33b38, limb1: 0x32c9317a9c538a1808d10350, limb2: 0x39b7c7695d2524211d5341f3, - limb3: 0x373d7203575fda92e7b4b02 + limb3: 0x373d7203575fda92e7b4b02, }, r0a1: u384 { limb0: 0x54a74ef22bb2c45a0f0992be, limb1: 0xe9d5746328bce07da2a04f41, limb2: 0xf657d148ed56fbf731787b28, - limb3: 0x7b03ee28e327f04166f5075 + limb3: 0x7b03ee28e327f04166f5075, }, r1a0: u384 { limb0: 0x754ae620f48dd7de6afcbb5b, limb1: 0x488b7b5de47bfe76c7d7f1ce, limb2: 0x5a2e05b269b38310ba8b4159, - limb3: 0x41965ba496910c39d2c8167 + limb3: 0x41965ba496910c39d2c8167, }, r1a1: u384 { limb0: 0xe544c97bb363e3619c50c630, limb1: 0x7fec53ec738123389016bbf, limb2: 0xb12f6ffb0998373cb04be875, - limb3: 0x4bf5cef5067781b9809ec64 - } + limb3: 0x4bf5cef5067781b9809ec64, + }, }, G2Line { r0a0: u384 { limb0: 0xee52fdd902c0488821edf979, limb1: 0x895d9ff17f5d04d1515dbb15, limb2: 0xda20231af600be908c9165c9, - limb3: 0xa88fa0e247a85049196ed0e + limb3: 0xa88fa0e247a85049196ed0e, }, r0a1: u384 { limb0: 0x1014f46d465b15781593a14d, limb1: 0xfde315a447ebeb1e31f0c737, limb2: 0xc264e73bcfcf21a95860cb90, - limb3: 0xa404fe10b300ee8062a4278 + limb3: 0xa404fe10b300ee8062a4278, }, r1a0: u384 { limb0: 0xde6e165032d17e0a1dd355b, limb1: 0x9ece35a48b0dac3133bcb2ed, limb2: 0x1dd3ea819651f9fffd805b91, - limb3: 0x2c3ab75a45f0062b01b25b5 + limb3: 0x2c3ab75a45f0062b01b25b5, }, r1a1: u384 { limb0: 0x1d435750c14e60fcffc44b18, limb1: 0x781f841326b5c6cd532ff483, limb2: 0x5bdc193e27d8e3050ed4a070, - limb3: 0x5865e1a9f5de7c0a57062e0 - } + limb3: 0x5865e1a9f5de7c0a57062e0, + }, }, G2Line { r0a0: u384 { limb0: 0x4d2b6e4cdcfd83a0692003b0, limb1: 0x41629374ff0d1ac17362c794, limb2: 0x18b16faf0521c1c5a11c3523, - limb3: 0x18b70eb629a79ff3f9834985 + limb3: 0x18b70eb629a79ff3f9834985, }, r0a1: u384 { limb0: 0xf6dd615a649c30b33d8b88ac, limb1: 0x526f609b923d7ba3b37b63c, limb2: 0x4289133e7279c670978cd569, - limb3: 0x11fa0abe9f21dc673b14d917 + limb3: 0x11fa0abe9f21dc673b14d917, }, r1a0: u384 { limb0: 0x7f14d726cf9a27a8c970bb68, limb1: 0xe380e6b07cde1eb0fffd95e6, limb2: 0x2c5722bd0e114b506bddd89a, - limb3: 0xd3fb948d9f8e2c898c1b3c + limb3: 0xd3fb948d9f8e2c898c1b3c, }, r1a1: u384 { limb0: 0x86aed9389c52f71bde01a5e0, limb1: 0x4c6baca3b4494d3a4a88343a, limb2: 0xe1083c4faf04588a29999bbc, - limb3: 0xcddd31531e910375fb212ff - } + limb3: 0xcddd31531e910375fb212ff, + }, }, G2Line { r0a0: u384 { limb0: 0x203fe85e2836c465e4db22af, limb1: 0xe308a1ed6dee139d030e8922, limb2: 0xc7908b59711d8544aa16934d, - limb3: 0xf2b561c5d125edf292a426b + limb3: 0xf2b561c5d125edf292a426b, }, r0a1: u384 { limb0: 0xdb11824ffa56d8b1596236ef, limb1: 0x2dba53ae227809d06646c213, limb2: 0xeb2f93a64e027c5e4973d8ae, - limb3: 0x70e748d64796b96d4704120 + limb3: 0x70e748d64796b96d4704120, }, r1a0: u384 { limb0: 0x651d82f84f2464b4da2dfaa5, limb1: 0x122eee1f6190b4da0deaaec, limb2: 0xa3f6869c83d36b0ad97eb0d3, - limb3: 0xc58ccf6806e87f189fcbb0a + limb3: 0xc58ccf6806e87f189fcbb0a, }, r1a1: u384 { limb0: 0x648157de5d81daa67c476971, limb1: 0x2845a24d3190c4fecbde2fa4, limb2: 0x72f924eac3a8d2c228a8b082, - limb3: 0x13673079ebcf601a5d5fae92 - } + limb3: 0x13673079ebcf601a5d5fae92, + }, }, G2Line { r0a0: u384 { limb0: 0x2d6310ed50636162786d1b75, limb1: 0x5cac54906e73bae3b4359998, limb2: 0xbd428c9c44f9a83980265ddd, - limb3: 0x2fc21e36ad4d0da0a00add9 + limb3: 0x2fc21e36ad4d0da0a00add9, }, r0a1: u384 { limb0: 0x80e8a4f63bb295c1f909c9f8, limb1: 0x76045a0b6f715c18ef69c37a, limb2: 0x8e2d6c8495568d22744ab3f3, - limb3: 0x2b70c4ecc512e5b7a263f20 + limb3: 0x2b70c4ecc512e5b7a263f20, }, r1a0: u384 { limb0: 0x74f73dffd0f8db5344a575d1, limb1: 0x8e6d3150c6b50fb0f30b8d42, limb2: 0x1caf7885c868849e8e700707, - limb3: 0x130fa43ef7b10a6b7c72a4af + limb3: 0x130fa43ef7b10a6b7c72a4af, }, r1a1: u384 { limb0: 0x1cd953b2a94a0b0460118689, limb1: 0x5c361d5ff78164edfe007331, limb2: 0x61315250d28c9b99d174dab6, - limb3: 0x252277581829378760d4033 - } + limb3: 0x252277581829378760d4033, + }, }, G2Line { r0a0: u384 { limb0: 0xf48b3d5c545dde843e9509d9, limb1: 0xec087b6dc32d167683bbc860, limb2: 0xecfa5e40ea40c9452bcaf0c9, - limb3: 0x1040fd02b48b11b85d471c89 + limb3: 0x1040fd02b48b11b85d471c89, }, r0a1: u384 { limb0: 0x4fcc4443458e23010506f346, limb1: 0x6c4848e26b5d994f5bc3e72e, limb2: 0xfe88288f9e882ff4e9a375b9, - limb3: 0x164597b0f78ad70a7b4bc1be + limb3: 0x164597b0f78ad70a7b4bc1be, }, r1a0: u384 { limb0: 0x755828105bc1eba4198f7dd7, limb1: 0x6eae5a58a81935ddf455bd6, limb2: 0x6240aac72233651a6dfb3db5, - limb3: 0xb4497d73d44dff355f96fc3 + limb3: 0xb4497d73d44dff355f96fc3, }, r1a1: u384 { limb0: 0xe9e516384450aed995eae178, limb1: 0xb13053f758b857a1479bef06, limb2: 0xb18ba337770920df12a72642, - limb3: 0x121a732dec2700ebe307b235 - } + limb3: 0x121a732dec2700ebe307b235, + }, }, G2Line { r0a0: u384 { limb0: 0xf313b674fee5c83040549617, limb1: 0x864b49b4b96dc11dcb31a6b2, limb2: 0x7afa88358fa085d4db1d9e6f, - limb3: 0x10b916005fc2476498beed41 + limb3: 0x10b916005fc2476498beed41, }, r0a1: u384 { limb0: 0xa5f1bacd2bc2f38d4e1a34d, limb1: 0x45d1d4d76b0b03b8d7da125b, limb2: 0x74a0ba0ae49290dd243bdc61, - limb3: 0x185827ff9e3c833ac46e1e16 + limb3: 0x185827ff9e3c833ac46e1e16, }, r1a0: u384 { limb0: 0xffae650825626bdffd8ed424, limb1: 0x126a57866536ac1d0b34b17b, limb2: 0x517ba3e3b50188d25dc23dc8, - limb3: 0x1276dc74f1b2a7173802ff0f + limb3: 0x1276dc74f1b2a7173802ff0f, }, r1a1: u384 { limb0: 0xa73951cadbaab9fe957c0fed, limb1: 0xa232a5178de78c8f681635e5, limb2: 0x30adf5deb8ee4da1fcc053b2, - limb3: 0xd840dfc0aae66492a176a2e - } + limb3: 0xd840dfc0aae66492a176a2e, + }, }, G2Line { r0a0: u384 { limb0: 0xbec850cf3cae0ae894430855, limb1: 0x471169ffbfc02b7ee8b53c48, limb2: 0xf24c8150520d1054b6fc8530, - limb3: 0x2627371854bd7fa799b809f + limb3: 0x2627371854bd7fa799b809f, }, r0a1: u384 { limb0: 0xbdc8b09d11fbd315b7aa7980, limb1: 0x2f2fcf7338f1747f606b3a25, limb2: 0x27fb2eb96b07297a58fabfe6, - limb3: 0x111b90bded70421c6543f89a + limb3: 0x111b90bded70421c6543f89a, }, r1a0: u384 { limb0: 0xfdb1c553460611b281b896a7, limb1: 0x9e417f1af210f3a016ad9c83, limb2: 0x5908b9614188572d05b39a67, - limb3: 0x16f5fc4c7d6ca25189a5da6 + limb3: 0x16f5fc4c7d6ca25189a5da6, }, r1a1: u384 { limb0: 0xf515c6bd1b302886cb3cb5fb, limb1: 0x6357aa94ce3eecae26fc87a3, limb2: 0x66f86efa4a89422f8fa42672, - limb3: 0x131a1613cd2ea3831b5cdcfe - } + limb3: 0x131a1613cd2ea3831b5cdcfe, + }, }, G2Line { r0a0: u384 { limb0: 0x3ce32e18da41a2016fbf41b1, limb1: 0xda3e0d01e0bbb52a301585cf, limb2: 0xaf508b2248a1fe6ffc5d18d0, - limb3: 0x1274aa625858db0bb675b3bf + limb3: 0x1274aa625858db0bb675b3bf, }, r0a1: u384 { limb0: 0x4cbc0be362614fff6f6d4898, limb1: 0xdf8603dfa938bc22d0aa98e, limb2: 0xaf3784151a3a1a7585c177cf, - limb3: 0xcd9b76612194b440cbd9c67 + limb3: 0xcd9b76612194b440cbd9c67, }, r1a0: u384 { limb0: 0x93de5b0d4ce155335ed8a6ff, limb1: 0x9dc6c21cddb15edd7f401cc4, limb2: 0x2601d5b08d144c3608181a8f, - limb3: 0x872d334a6e81b6937f7580f + limb3: 0x872d334a6e81b6937f7580f, }, r1a1: u384 { limb0: 0xa90ea56305b0b457ffd7dfd9, limb1: 0x3fd7486324393fe073a67746, limb2: 0x22aaac8be67217e0e49366ff, - limb3: 0xdc78f4f3c40b0984ec316e - } + limb3: 0xdc78f4f3c40b0984ec316e, + }, }, G2Line { r0a0: u384 { limb0: 0x32410e4bdcd6030081ee0117, limb1: 0x9711111255797439f6866cb6, limb2: 0x8a1650034dda2434eadb9c77, - limb3: 0x13f6a882a25deeaef4bbe62d + limb3: 0x13f6a882a25deeaef4bbe62d, }, r0a1: u384 { limb0: 0xcc47fc627ad939824b8320f1, limb1: 0x3f1cb2532c6db9d1abc737e4, limb2: 0x4883356c3277f2df6283a2ab, - limb3: 0x11e02397acfe9612a98a14f9 + limb3: 0x11e02397acfe9612a98a14f9, }, r1a0: u384 { limb0: 0x1588bd50c2f4f5c5ebbe62bd, limb1: 0x87a259e41ba48ccad1a07c48, limb2: 0xb22b4f666071523b8a172736, - limb3: 0x96f9baf300ca7342721fd8e + limb3: 0x96f9baf300ca7342721fd8e, }, r1a1: u384 { limb0: 0xf0c2d5fba2f156c3f26673ef, limb1: 0x71558132bb663713ad20817f, limb2: 0xb07619c97cbceccc4c0fb256, - limb3: 0x13ed85faec0618c507d395a1 - } + limb3: 0x13ed85faec0618c507d395a1, + }, }, G2Line { r0a0: u384 { limb0: 0x35a50965750c7716c237772d, limb1: 0xe96b0c22d39fbbbe7f55d6bc, limb2: 0x40864a9ec51fc3fceddf7498, - limb3: 0x232f7c41bf2d0ca9a4a6560 + limb3: 0x232f7c41bf2d0ca9a4a6560, }, r0a1: u384 { limb0: 0xebd5d6880bc93e525c5283bd, limb1: 0x911e6efcf7cc8f0983f3a122, limb2: 0xeb2d53ffa24eaa0527809305, - limb3: 0x126b7366a9ba4cdc1648b905 + limb3: 0x126b7366a9ba4cdc1648b905, }, r1a0: u384 { limb0: 0xd7789f5359bb3bd4b674719b, limb1: 0xecaa3bff242dc5a63ed57279, limb2: 0x85e8faaf82c119cc47bdfe4d, - limb3: 0x1042198c5b912b48953f03ee + limb3: 0x1042198c5b912b48953f03ee, }, r1a1: u384 { limb0: 0x52c926fe4d73775c8dcc54b9, limb1: 0x56410c723b730b245d2639ae, limb2: 0xe6b9bc3d2b2a15155d82e48f, - limb3: 0x11772d7a9fa0b3530a88bfa - } + limb3: 0x11772d7a9fa0b3530a88bfa, + }, }, G2Line { r0a0: u384 { limb0: 0x62a31df1dfbbec432d547277, limb1: 0xafbad67ab615bf2d350b1688, limb2: 0x1f5843187c62f057fcb3c202, - limb3: 0x2cd9ff07b37d472a54a7189 + limb3: 0x2cd9ff07b37d472a54a7189, }, r0a1: u384 { limb0: 0xfd689866343571218470d805, limb1: 0x94b9219861e6e367cfd9d27b, limb2: 0x5937c015c497d2c235302c66, - limb3: 0xfdf7276579ca6fa0076c8a9 + limb3: 0xfdf7276579ca6fa0076c8a9, }, r1a0: u384 { limb0: 0xcc39c0acfde5d2338853dbb6, limb1: 0x4d33a9fe71565a4342df96fd, limb2: 0xf1c085869a954cb4994a6d7a, - limb3: 0x993491756f5c241452a5dd8 + limb3: 0x993491756f5c241452a5dd8, }, r1a1: u384 { limb0: 0x59049f9dae7a7044e79531ad, limb1: 0x1b01d078a53d321ef18d7b49, limb2: 0x81acaa38fb3196010e594ce1, - limb3: 0x12c347a131f6b1191d4b563f - } + limb3: 0x12c347a131f6b1191d4b563f, + }, }, G2Line { r0a0: u384 { limb0: 0x90b1d3aaedd7ae3ae5ef62ec, limb1: 0x9c2237332a12d63f617991e0, limb2: 0x88f758a89df448c1dd45282d, - limb3: 0x3c52126f27d2dd758ab0770 + limb3: 0x3c52126f27d2dd758ab0770, }, r0a1: u384 { limb0: 0x8bf85f2a28b11ffbcc48f29d, limb1: 0xb79fc38b4398e2af5a4ac3f4, limb2: 0x877b0d7e053d12f91fa49c91, - limb3: 0x19ee364564c01cbdf0bd4257 + limb3: 0x19ee364564c01cbdf0bd4257, }, r1a0: u384 { limb0: 0xfbe824718174525ae3cbf681, limb1: 0xb434f93ab3f012e5c5fab625, limb2: 0xfaaa0bb2878017e90fb07ac6, - limb3: 0x616944a1484a78b2946360a + limb3: 0x616944a1484a78b2946360a, }, r1a1: u384 { limb0: 0x84c489abf936bfadd293c732, limb1: 0xaa7ca8e76a07f14d2a712245, limb2: 0xef338c44111cd8f2538f16e0, - limb3: 0x2f06c9cef716ae3e32a1bd1 - } + limb3: 0x2f06c9cef716ae3e32a1bd1, + }, }, G2Line { r0a0: u384 { limb0: 0xa31fe2909d2e70ef0eed8a97, limb1: 0x7cd66cae105a1a65a0469bb5, limb2: 0x57c0d04a99e4fdd24818d48d, - limb3: 0xf143a86d061937bfc43197a + limb3: 0xf143a86d061937bfc43197a, }, r0a1: u384 { limb0: 0xef3417fc2e604cb1afd28f22, limb1: 0xc03449a2171f0466673fe015, limb2: 0xb9e650989501677fe2bf4b6c, - limb3: 0x1a45a939634b50313d5b551 + limb3: 0x1a45a939634b50313d5b551, }, r1a0: u384 { limb0: 0xc7a854c7a9f5c64683ace9b0, limb1: 0xc0d2319347b83f932d66c058, limb2: 0x7a12cc7266442611728385d8, - limb3: 0xfc3c7544bdb8ce9030892a9 + limb3: 0xfc3c7544bdb8ce9030892a9, }, r1a1: u384 { limb0: 0x9adf18823ca540f0e6bf7f36, limb1: 0xa5a5ea82ecc4affdc735afce, limb2: 0x84c176ba131be177ad7d141b, - limb3: 0xbb932dd6da950ed35007f86 - } + limb3: 0xbb932dd6da950ed35007f86, + }, }, G2Line { r0a0: u384 { limb0: 0x49369971c3fc33245bb7b9cb, limb1: 0xce9896e5addb637375420be1, limb2: 0x7d4c97a8e9d64c41cf2dffa1, - limb3: 0x287b1e39767a3c2d102a825 + limb3: 0x287b1e39767a3c2d102a825, }, r0a1: u384 { limb0: 0x6f6e6c10c2da68b535025ac5, limb1: 0x9b6128f5e000427659557e1, limb2: 0xba4e1537236425a49e10a76b, - limb3: 0xdccc3a8b263abdc2c1112a2 + limb3: 0xdccc3a8b263abdc2c1112a2, }, r1a0: u384 { limb0: 0xf0f26fb9d99f34211c52ec21, limb1: 0xb091a74cf88bb5563ee29bd1, limb2: 0xb1a3c0e6479e60ec2bf5e312, - limb3: 0x6ea612bf02bd6df77f7af9a + limb3: 0x6ea612bf02bd6df77f7af9a, }, r1a1: u384 { limb0: 0x773745b51d209d3643ac70f3, limb1: 0xb837418d0188d5d41911d38c, limb2: 0xae750841ca68ec61dd2fac9a, - limb3: 0x9b4aec971d45aee69870aa6 - } + limb3: 0x9b4aec971d45aee69870aa6, + }, }, G2Line { r0a0: u384 { limb0: 0x34fc38759fef61effd88d5eb, limb1: 0x145b73bdd49f8b9841131ec5, limb2: 0x5b032e13495cad2de8fc511d, - limb3: 0x14a5c34da7fefd80bfd917bf + limb3: 0x14a5c34da7fefd80bfd917bf, }, r0a1: u384 { limb0: 0x7289910ae15b593b5d0fe9ef, limb1: 0x321eb1200e5c9d49765ad730, limb2: 0x7fbf84b5e04d1a87072209ff, - limb3: 0x120c78a1a8543136a69d721f + limb3: 0x120c78a1a8543136a69d721f, }, r1a0: u384 { limb0: 0x7b91d266ea9310fa2b902bf3, limb1: 0xc3c6f100aa36d1105c43d928, limb2: 0xcd92532364b0794355ab6fc5, - limb3: 0x3e83fd62b6b3aecc9dee3cb + limb3: 0x3e83fd62b6b3aecc9dee3cb, }, r1a1: u384 { limb0: 0xdbfa72bf64242d0e4130bab1, limb1: 0xbba2b4aa87acd80bda65c1ff, limb2: 0x53c0d1281064d6d42f3ca6e5, - limb3: 0x7538323c443e424ba2139a2 - } + limb3: 0x7538323c443e424ba2139a2, + }, }, G2Line { r0a0: u384 { limb0: 0x9658e94dff575b044fd12535, limb1: 0x9e633711f24267eeff96b84c, limb2: 0xd09be055097f3f4285b74b29, - limb3: 0xeba32ca0fdf04b16e700d02 + limb3: 0xeba32ca0fdf04b16e700d02, }, r0a1: u384 { limb0: 0xdac31a776bf2f2a7eb8d07b1, limb1: 0x99ff3b68fe53867aeee330e, limb2: 0xfc016b0e19f5a9dafe6150af, - limb3: 0x1853f7c388088cef95618ee7 + limb3: 0x1853f7c388088cef95618ee7, }, r1a0: u384 { limb0: 0x25afd3c9e43a6bd85d8f83da, limb1: 0x6636bcf8f7c4ffb03262b3ad, limb2: 0xfab2ea835f15ffa64289aee0, - limb3: 0x19a40512a2bc92b145d4a15f + limb3: 0x19a40512a2bc92b145d4a15f, }, r1a1: u384 { limb0: 0x457e5f8262a3fb1f68e2ee64, limb1: 0x2c8e29f8273ba32411548171, limb2: 0x6b7ec622d4cf5c7605c02c7f, - limb3: 0x16d592d1bda21aa16790c116 - } + limb3: 0x16d592d1bda21aa16790c116, + }, }, G2Line { r0a0: u384 { limb0: 0x418f88c2ec9095086a11212, limb1: 0x9bbb92abebe257d874d88812, limb2: 0xef0f443e07ba39689c54a875, - limb3: 0x15190f05d2854f4f23244780 + limb3: 0x15190f05d2854f4f23244780, }, r0a1: u384 { limb0: 0x73562c95a5ced7285783ea44, limb1: 0xebc6a876c7f862dd940990a4, limb2: 0x806ab610b9ba3826809481f9, - limb3: 0xd738e6b4748294d2ef71b46 + limb3: 0xd738e6b4748294d2ef71b46, }, r1a0: u384 { limb0: 0x2f88f9cb9b43366fca45401c, limb1: 0x981bc3797c4e9ed2343a8465, limb2: 0x10f951c9ceda971d01120a50, - limb3: 0x197593f4646346745cba98ce + limb3: 0x197593f4646346745cba98ce, }, r1a1: u384 { limb0: 0x6352dd6f1f276ebd12e36438, limb1: 0xbc94e96354513cd65cbb7831, limb2: 0x63f9809778a9e5a3a14bd9c6, - limb3: 0x12399967b752e1ae762754b4 - } + limb3: 0x12399967b752e1ae762754b4, + }, }, G2Line { r0a0: u384 { limb0: 0x1393c1940f25665663934fc8, limb1: 0xea7d0b2339e762ea1d7417bc, limb2: 0x38e8c939bcfc597914fa0bc4, - limb3: 0x10e5f821e745ef290f773399 + limb3: 0x10e5f821e745ef290f773399, }, r0a1: u384 { limb0: 0x3fb68057499c7406aa1ace48, limb1: 0x41257c93b17f3e38108e6f37, limb2: 0x6e97eb8687dab2a2a640c57f, - limb3: 0x14df29fafe098da44c7fd33 + limb3: 0x14df29fafe098da44c7fd33, }, r1a0: u384 { limb0: 0x59456b76c2b8257a9ee80887, limb1: 0xb92657cb2cd74cfb0e2e2af8, limb2: 0x74366a9ca17b733790bace94, - limb3: 0x18a62b6be3320f12ef9121ed + limb3: 0x18a62b6be3320f12ef9121ed, }, r1a1: u384 { limb0: 0xd05f8b04255c124be737ddfb, limb1: 0xcaf73bd136dd217b40f1b669, limb2: 0xda811888424a2ec800ca2f97, - limb3: 0x157c5205e1188acb79fbef71 - } + limb3: 0x157c5205e1188acb79fbef71, + }, }, G2Line { r0a0: u384 { limb0: 0x8b374dcb293da523769439f3, limb1: 0x2fa24f2a394fefc00be6551e, limb2: 0x5b56b235703e81f9581fb812, - limb3: 0xa510fba0090ee3f2da90e03 + limb3: 0xa510fba0090ee3f2da90e03, }, r0a1: u384 { limb0: 0x4c287e611b512a841d227d6c, limb1: 0xb311b662d2c9a4106ab64890, limb2: 0x3f74ad8a1056c7ee37f181a, - limb3: 0x387ccbb5fd44513ebd1364a + limb3: 0x387ccbb5fd44513ebd1364a, }, r1a0: u384 { limb0: 0x238250f751fe359ea48e6612, limb1: 0x48d78fe66c255cda27a7797a, limb2: 0x270135167f0b9910bbe997c5, - limb3: 0x13f053dabc35bea274b5dac0 + limb3: 0x13f053dabc35bea274b5dac0, }, r1a1: u384 { limb0: 0xb7350395e2c37b4d15be0abf, limb1: 0x578ec20dcde4919879af4f9, limb2: 0xebdad8f8ae78030cf33a9584, - limb3: 0x214f9275dbd80c3514f9cad - } + limb3: 0x214f9275dbd80c3514f9cad, + }, }, G2Line { r0a0: u384 { limb0: 0x54863ab6d50bc9ff4874b6e6, limb1: 0x937c0d4560eae2eee4b7ce1e, limb2: 0x337805ebca15d19f40277942, - limb3: 0x10ff70c91cbb8869a0659bf2 + limb3: 0x10ff70c91cbb8869a0659bf2, }, r0a1: u384 { limb0: 0x7b3cfe640c29faece9a85e53, limb1: 0xcddbe3decddda92adfd9039a, limb2: 0x42f145b0f85554ee195ae299, - limb3: 0x1951ff3142b9a208e5e69e59 + limb3: 0x1951ff3142b9a208e5e69e59, }, r1a0: u384 { limb0: 0x94a7ee20add6c18015e26733, limb1: 0xd0f2a6ab15fefff1caa7366a, limb2: 0x9c055a1d93c3f27e46d0b3da, - limb3: 0x60f554e35125b7f5d7aac8b + limb3: 0x60f554e35125b7f5d7aac8b, }, r1a1: u384 { limb0: 0xd92e5b001022ee7874cbebeb, limb1: 0x4aed0fd23b92aebc139f77db, limb2: 0xd2bca1fe5ad39a274c9dfeec, - limb3: 0xcfab0e5b8e8d7c7a8765b15 - } + limb3: 0xcfab0e5b8e8d7c7a8765b15, + }, }, G2Line { r0a0: u384 { limb0: 0x13f5a17e28b8aeda870323da, limb1: 0x337d2b7adfbf1364a8611853, limb2: 0xa8dd9b2b05f3350a8569d92c, - limb3: 0xddc998d17c49e6381aa6256 + limb3: 0xddc998d17c49e6381aa6256, }, r0a1: u384 { limb0: 0xde207fd9d271001c6efb9576, limb1: 0x6c856b0c104190652dfdd937, limb2: 0x80feca357961f12e69a3a05d, - limb3: 0x2595adff1024c23c63dec73 + limb3: 0x2595adff1024c23c63dec73, }, r1a0: u384 { limb0: 0xd7040b7ee5b45a1422495780, limb1: 0x13f3e065ea119be3775d97ed, limb2: 0xeecf7ac81f371c5e390f85ec, - limb3: 0x1047da85dc9dba631527134c + limb3: 0x1047da85dc9dba631527134c, }, r1a1: u384 { limb0: 0x7017211aee3c7150478d96ee, limb1: 0x8c7564a3a9ef6bfd96289765, limb2: 0x6df1f2b21ce6b08419e214c, - limb3: 0xa4e778d427042d100d7ae3e - } + limb3: 0xa4e778d427042d100d7ae3e, + }, }, G2Line { r0a0: u384 { limb0: 0x21805f763874894483dc214c, limb1: 0x2c02b4ccd505fbbb8d8bd064, limb2: 0xe32a1465866e01898f1f3b14, - limb3: 0x15d2f6b35415870ddc7054f2 + limb3: 0x15d2f6b35415870ddc7054f2, }, r0a1: u384 { limb0: 0xf6749d4bc9865ee9e261110a, limb1: 0x81c4e72fdd8802ef73ab15ef, limb2: 0xb89ca852d2ba8b3590cd5301, - limb3: 0x183abed5b2d1d128fa596426 + limb3: 0x183abed5b2d1d128fa596426, }, r1a0: u384 { limb0: 0xf71ebb04aab85e83aec862c0, limb1: 0xf473b3e5a56fd96d60f8a264, limb2: 0x3e4b66f8493911a4a00afa1e, - limb3: 0x12be1dc90541ee9c7cb4fa59 + limb3: 0x12be1dc90541ee9c7cb4fa59, }, r1a1: u384 { limb0: 0xba5f7a9ccd0748c2fa4e54c8, limb1: 0x1640f7800984bafe7fa1a76d, limb2: 0x48e76aab062b19911f92bcd, - limb3: 0x72cecd9e5c7c437cbbc1e4a - } + limb3: 0x72cecd9e5c7c437cbbc1e4a, + }, }, G2Line { r0a0: u384 { limb0: 0xdf166caff55624c628e9c39d, limb1: 0x375583a43ba61cf4f2aadb7, limb2: 0xf0d0784be04235e91497af3a, - limb3: 0x144cf709d68b63a9939bcd7f + limb3: 0x144cf709d68b63a9939bcd7f, }, r0a1: u384 { limb0: 0x9b47104ec1159ac61ff360a, limb1: 0xfa833b0d43df77cd013e21cb, limb2: 0xcad1fb67c8db4e6c39d8bd59, - limb3: 0x10e847c87beb83adb8a5feb + limb3: 0x10e847c87beb83adb8a5feb, }, r1a0: u384 { limb0: 0xb1fd17f45af8d452043abc61, limb1: 0xcae758a71dc8e5d49f433bca, limb2: 0xf97f2de839369b6c827e9eeb, - limb3: 0x2e3050a5cb33641e4b5f617 + limb3: 0x2e3050a5cb33641e4b5f617, }, r1a1: u384 { limb0: 0x71666e0e514a3e5352f26d8a, limb1: 0x46273d30eb76103fb756a8fe, limb2: 0x8bdb306ed674d669da0ac3b8, - limb3: 0xf6c2f57d5d282ff86ccd9a6 - } + limb3: 0xf6c2f57d5d282ff86ccd9a6, + }, }, G2Line { r0a0: u384 { limb0: 0x1f078a90be515d55a39025dd, limb1: 0xa69e73a9a0f2894ad32c28d8, limb2: 0x406d92af351a91a43b294110, - limb3: 0xab36c91eeeaabb24820b390 + limb3: 0xab36c91eeeaabb24820b390, }, r0a1: u384 { limb0: 0x873b5a72e8ea0e7d255b970a, limb1: 0xf64973cbec18695bfc945495, limb2: 0x533e34319846e866ad7ddd36, - limb3: 0x1029fa62305109a4d20176b9 + limb3: 0x1029fa62305109a4d20176b9, }, r1a0: u384 { limb0: 0x429cba0cb76b0c492577722a, limb1: 0x771bc089fee5e3632dbffa1a, limb2: 0xa7c64b6f38e532de16959d0d, - limb3: 0xf38b71fb4269dd2e038223a + limb3: 0xf38b71fb4269dd2e038223a, }, r1a1: u384 { limb0: 0xddc796c5033428b0b8111c4f, limb1: 0x60ad337fb316c52ef8de0b21, limb2: 0x951808daa18d3ec520bd6279, - limb3: 0x3455cf600b5f6c549f38f14 - } + limb3: 0x3455cf600b5f6c549f38f14, + }, }, G2Line { r0a0: u384 { limb0: 0x3c9e33deec176793b8c762c5, limb1: 0xcdd0e402436d39a6117033db, limb2: 0x30c585d12e787c8be912d406, - limb3: 0xf298f9a8c4459a08f210e47 + limb3: 0xf298f9a8c4459a08f210e47, }, r0a1: u384 { limb0: 0x170c6ad3a877e65fe91c69db, limb1: 0xa41f211a3763ffcdb9eb1e9b, limb2: 0xb84a114f23f1978d9ebd06a4, - limb3: 0x60bac8f5945907e791dfcda + limb3: 0x60bac8f5945907e791dfcda, }, r1a0: u384 { limb0: 0x354e5a1eec75069b04ac0541, limb1: 0x91be6e4159dcb28c19a4e3e2, limb2: 0xfd452118a540f6f88b01e089, - limb3: 0x12b2b6a5dda55d157e1f8b + limb3: 0x12b2b6a5dda55d157e1f8b, }, r1a1: u384 { limb0: 0xe47f5498f54067daeffa00b8, limb1: 0xbccfe6edd60b7ef921ce57a1, limb2: 0xd917099499398bfacccaba05, - limb3: 0xbb67b42bd655fa485081a90 - } + limb3: 0xbb67b42bd655fa485081a90, + }, }, G2Line { r0a0: u384 { limb0: 0x8deb02d48f2ee3be7ae899ed, limb1: 0x4b66f01a40c86e83fded6847, limb2: 0x9c08bb4fe0abcaefc921a40, - limb3: 0x8bda1d762c986632aeaca1e + limb3: 0x8bda1d762c986632aeaca1e, }, r0a1: u384 { limb0: 0x72be08cacb4795f5ddd8497f, limb1: 0xfaddee2a55b5154b35e26966, limb2: 0x7c67f5884f061f219cb8ff55, - limb3: 0x6d4fe75b0153bdec12dba82 + limb3: 0x6d4fe75b0153bdec12dba82, }, r1a0: u384 { limb0: 0xc235fffbfefdf8e9ef54d2bc, limb1: 0x6581ebd151a1e73c53b163cb, limb2: 0xf60ffd0dd3608c742fba7902, - limb3: 0xe9437af3be8b35cbae1f171 + limb3: 0xe9437af3be8b35cbae1f171, }, r1a1: u384 { limb0: 0xdb98cff46b3033365ae5b731, limb1: 0x19f3ec2adf9517d4533cdf7c, limb2: 0xa60fbca3376090bf8f17f4b9, - limb3: 0x169bff5211482ee5e64f50ae - } + limb3: 0x169bff5211482ee5e64f50ae, + }, }, G2Line { r0a0: u384 { limb0: 0x2dac7db08633bccae086b486, limb1: 0x89b8e12695d31ec21d7bc0f0, limb2: 0xb6b895ef82cd3e31f6f0cc3f, - limb3: 0x2785eedc1bcd70ba4ebd308 + limb3: 0x2785eedc1bcd70ba4ebd308, }, r0a1: u384 { limb0: 0x8a0217a58db8f5cb124445ec, limb1: 0xae392df0fd76493bd2ded923, limb2: 0x73881097a5c82a443ee9e130, - limb3: 0x145337977ac0a11a17f3345 + limb3: 0x145337977ac0a11a17f3345, }, r1a0: u384 { limb0: 0x82060ee8ae4f3cb6db6ad231, limb1: 0x90e8ec63f2e39f1218f21605, limb2: 0x4ff00df2e2cc6da42f40ca0b, - limb3: 0x96b5a0e4cf36d245f2a2213 + limb3: 0x96b5a0e4cf36d245f2a2213, }, r1a1: u384 { limb0: 0x183bfac0d6d302cda44cc090, limb1: 0xb8bab9cdf785cfc48b82cde3, limb2: 0x2b99c1ff7e44f0267431fbc2, - limb3: 0x9253c3d3a7875099bb7116b - } + limb3: 0x9253c3d3a7875099bb7116b, + }, }, G2Line { r0a0: u384 { limb0: 0x89eec90cedffb5559d9f7cd6, limb1: 0x838145c7842da8419fcaba0e, limb2: 0xa322ce58631513aed92ce0df, - limb3: 0x5a79df85b0a96adf6e2dab8 + limb3: 0x5a79df85b0a96adf6e2dab8, }, r0a1: u384 { limb0: 0xf36133a552f9211634fe2feb, limb1: 0x712f911d31ea73387b467687, limb2: 0xfb3d98acbbe375c161f9d2a8, - limb3: 0x11b7c924610a8268c34b8259 + limb3: 0x11b7c924610a8268c34b8259, }, r1a0: u384 { limb0: 0x50e7cae27aa8b11d0d2bfe43, limb1: 0xf88979ed0a59e7daa98895c9, limb2: 0xdf00ec512e87f5862a699c22, - limb3: 0xcad7fd28c40cc541a820fe4 + limb3: 0xcad7fd28c40cc541a820fe4, }, r1a1: u384 { limb0: 0x936b0157ffd80fabb32930f9, limb1: 0xc6bffa14bca99e467c671b75, limb2: 0x609410c23cb1d2ce4e5e9242, - limb3: 0x5aeec94c1d7d2fb257ce4f7 - } + limb3: 0x5aeec94c1d7d2fb257ce4f7, + }, }, G2Line { r0a0: u384 { limb0: 0xc41d067c71069998cf8843d1, limb1: 0xb14da36d1c97315bd61ba35, limb2: 0x8aa0d451828d59a5f72d09dd, - limb3: 0x6032c39bd848710bcb60e49 + limb3: 0x6032c39bd848710bcb60e49, }, r0a1: u384 { limb0: 0xed46bd973c771a1b363a7d4c, limb1: 0xf133793366e26684ef2f32b3, limb2: 0x12ff177280c137134c3f25c4, - limb3: 0x127cf801e7f2dd085ba1a751 + limb3: 0x127cf801e7f2dd085ba1a751, }, r1a0: u384 { limb0: 0xdc817a66a6c7d907bae27871, limb1: 0x7ba4fed3737fceac11ec899b, limb2: 0x90e031e803e3d6cbe2868427, - limb3: 0x12ea6c6e770758121970dfd + limb3: 0x12ea6c6e770758121970dfd, }, r1a1: u384 { limb0: 0x70cc7c1f3299456ae1e20184, limb1: 0xb40d30be5118767fa201dfec, limb2: 0xccc12af1cb317ea89224e94a, - limb3: 0xdab488f3ca14571f8255bf5 - } + limb3: 0xdab488f3ca14571f8255bf5, + }, }, G2Line { r0a0: u384 { limb0: 0xa05df784a5a683833d2e1464, limb1: 0x544aef13d7757e76ac4a6a2c, limb2: 0x337b308d7d37a5e715e2c6a7, - limb3: 0x1971f0b4a71e609b35922e78 + limb3: 0x1971f0b4a71e609b35922e78, }, r0a1: u384 { limb0: 0x9afd8643829c2749745e919d, limb1: 0x3fe5162dcc95efeedb645acb, limb2: 0x771a45a92c45f43bb070b7fd, - limb3: 0x503aa962b29d72a5d9f6cf2 + limb3: 0x503aa962b29d72a5d9f6cf2, }, r1a0: u384 { limb0: 0x8e80c44f884a20fe7070ea42, limb1: 0x78c55b9104f9b5b599cf0cf7, limb2: 0x6aa9312bbcf5dad8ca58d47c, - limb3: 0xa42156c0b189a8b23065b2c + limb3: 0xa42156c0b189a8b23065b2c, }, r1a1: u384 { limb0: 0x507ea5597266a41fa17c0e3e, limb1: 0x61ca6c9ff959cacbd2e0502f, limb2: 0xe921d3d10d8336d32c718050, - limb3: 0x15bd96df3160aaf601255ae2 - } + limb3: 0x15bd96df3160aaf601255ae2, + }, }, G2Line { r0a0: u384 { limb0: 0x5e4b2d8014672689adf74c5e, limb1: 0xa727aa7b0714aee11ce04e22, limb2: 0x2b8081578ba7e36449332477, - limb3: 0x136517c5cbf60d7fd893217d + limb3: 0x136517c5cbf60d7fd893217d, }, r0a1: u384 { limb0: 0x1e6b6dce21e6c8fbc8c3059, limb1: 0xd40eaed17a285915e6dd5328, limb2: 0x84bb3dc7596ffeecac6c017c, - limb3: 0xe145b9da771dcb825de00b8 + limb3: 0xe145b9da771dcb825de00b8, }, r1a0: u384 { limb0: 0x73b866053fe5eda748e0cabb, limb1: 0x402fac191721abee446bc895, limb2: 0x4b03c3a6b6268986ca81d9ac, - limb3: 0x6b4c9aac6eed89d9f0a6121 + limb3: 0x6b4c9aac6eed89d9f0a6121, }, r1a1: u384 { limb0: 0x2af39075f96b16e132587e7, limb1: 0x13bcad0b04e3dd70f7c5f56, limb2: 0xda8eba78634610f509f07778, - limb3: 0x110e70b034d243106e204662 - } + limb3: 0x110e70b034d243106e204662, + }, }, G2Line { r0a0: u384 { limb0: 0xbb42fc51b2f0d50a3d7a6796, limb1: 0xfcbc9d2df3136cbd1a372ac4, limb2: 0xea313e60d4b8240679b0175e, - limb3: 0x1657a4b33e1400ef6e296282 + limb3: 0x1657a4b33e1400ef6e296282, }, r0a1: u384 { limb0: 0xaf91b402ecc6cf1a742796cf, limb1: 0xab44b72c1fc2f89b5eaa0345, limb2: 0x9f6a20404576105e15a4930c, - limb3: 0x10992497f5f8bf4451121322 + limb3: 0x10992497f5f8bf4451121322, }, r1a0: u384 { limb0: 0xd9355bfe72d92c6a0950eafd, limb1: 0x89de0bfbfd06c9911cb2d6fb, limb2: 0xe2092d1e99ab65a7a33ba1cd, - limb3: 0x1c317a68eeef4d833e396de + limb3: 0x1c317a68eeef4d833e396de, }, r1a1: u384 { limb0: 0x631d3efa10e591b7ebcb8dbc, limb1: 0x6a4a0815d19cf339e4663ba9, limb2: 0xe2fb7d9878d26c7c97299a01, - limb3: 0x4c4dc455aad226b744ebdd4 - } + limb3: 0x4c4dc455aad226b744ebdd4, + }, }, G2Line { r0a0: u384 { limb0: 0x656bbea0391d35835dc24b51, limb1: 0x3d5a46760e1d5b5be2d560bb, limb2: 0x8ab4befe76903930bf03b6cc, - limb3: 0xde3dfb225e924a4e1dd60a6 + limb3: 0xde3dfb225e924a4e1dd60a6, }, r0a1: u384 { limb0: 0xbf76b6d5dcffe10f806efc9c, limb1: 0x89c3bf595b72110cd64c7807, limb2: 0xad1b9df71cca0f160ddb2c6a, - limb3: 0xe1ae8d30b5cac8a9a485f95 + limb3: 0xe1ae8d30b5cac8a9a485f95, }, r1a0: u384 { limb0: 0xfcef3581dc552b239364bb18, limb1: 0x1785b2ccd39c6ea191ba4ad7, limb2: 0xb26676ceebabd25d429a9122, - limb3: 0x20c29df3088771981853b6e + limb3: 0x20c29df3088771981853b6e, }, r1a1: u384 { limb0: 0xe1d699d9ac66a9464fbdc974, limb1: 0xd53858123c2581584cab83ef, limb2: 0x8e59c936d52fd331132acf92, - limb3: 0x42a7ceaf3c3cc116eb1a41a - } + limb3: 0x42a7ceaf3c3cc116eb1a41a, + }, }, G2Line { r0a0: u384 { limb0: 0xe51e461db9c85f42519fea6, limb1: 0x234a9695204bd44f55ea4de6, limb2: 0xc8d34c6b4580edfc55e023b1, - limb3: 0x16691c1bdf57ba041abb3d97 + limb3: 0x16691c1bdf57ba041abb3d97, }, r0a1: u384 { limb0: 0xa81022cb0b3b0c523ae71819, limb1: 0x47f7df16fff0877b21676607, limb2: 0xdee4fe1d3c64b3fedec56326, - limb3: 0xcfbf5ccb325675b1a3becef + limb3: 0xcfbf5ccb325675b1a3becef, }, r1a0: u384 { limb0: 0x6d42b9d9e765f92b0817551, limb1: 0x352adc09dd7760a5f4208a1e, limb2: 0x5397846e3fff77f500da6dbc, - limb3: 0xe26d685c4365e342109d0ba + limb3: 0xe26d685c4365e342109d0ba, }, r1a1: u384 { limb0: 0x9bc1051782d84793806d878b, limb1: 0x1642edf27f040ad57feb6f89, limb2: 0x11a5d3523a88580869d28ca2, - limb3: 0xd22ff50c5a9bd729115a889 - } + limb3: 0xd22ff50c5a9bd729115a889, + }, }, G2Line { r0a0: u384 { limb0: 0x1974fc785431be1e90b76cf1, limb1: 0x5523616ad31f45b5acbb41f0, limb2: 0x4db84aa19ed0d09fdfd72a39, - limb3: 0x4bee7a1546e6a96b8c65312 + limb3: 0x4bee7a1546e6a96b8c65312, }, r0a1: u384 { limb0: 0x1fff8fc0e33c70b81adce7d, limb1: 0x5503816c20ef23cb62024c84, limb2: 0x1d58103be6d430043405b3ef, - limb3: 0x107fb3faa9b9af026c550cd7 + limb3: 0x107fb3faa9b9af026c550cd7, }, r1a0: u384 { limb0: 0xed84d2bc957cddd0e6e4ad25, limb1: 0x1800d9d9c9bdeeb05cada676, limb2: 0x6bc88f0ada5bbcfb48988f0b, - limb3: 0x177faefe6e97b317f26d47c2 + limb3: 0x177faefe6e97b317f26d47c2, }, r1a1: u384 { limb0: 0xe487165be396059ee48112a2, limb1: 0x57fae5a95d9b810b370239e, limb2: 0x9959f70caa80a4c337de8fdf, - limb3: 0x744e597435d3317bd2d3cee - } + limb3: 0x744e597435d3317bd2d3cee, + }, }, G2Line { r0a0: u384 { limb0: 0x30d36077b6d0262e218111c1, limb1: 0xc74774ca1af660eaed4d8329, limb2: 0x6448cecfde912a7d2029dbc, - limb3: 0xe743528ce0c94e1a76f2f60 + limb3: 0xe743528ce0c94e1a76f2f60, }, r0a1: u384 { limb0: 0xe1f8a574cee0dad622d6fead, limb1: 0xcd681358d077b827cc148be2, limb2: 0xc8fb346621601764fa91b40a, - limb3: 0x133d21c52017365921207d63 + limb3: 0x133d21c52017365921207d63, }, r1a0: u384 { limb0: 0x5cb088f57e1e3f6a62571b37, limb1: 0x4089cdf0fb67a7b1d79838b3, limb2: 0x62401a2e57abb0652e0fee81, - limb3: 0xcc83c46ac38241e1c33aca2 + limb3: 0xcc83c46ac38241e1c33aca2, }, r1a1: u384 { limb0: 0xfd94f04ec006d63b4825ecfa, limb1: 0x96ef1f9240c32fdc393b81e2, limb2: 0x6d46c2685a1a1c50e84c8b24, - limb3: 0x1528bf72bee83f2c80884dd2 - } + limb3: 0x1528bf72bee83f2c80884dd2, + }, }, G2Line { r0a0: u384 { limb0: 0xf1675d98caa0e86774bc637, limb1: 0x601f3b88148d94ab340ad0d7, limb2: 0x38be976c910e6b1d767b2184, - limb3: 0x3e03977cdee4d24405e656d + limb3: 0x3e03977cdee4d24405e656d, }, r0a1: u384 { limb0: 0xe1a8086a67acf571c0af95cf, limb1: 0x1eda39e1440a2e311c78ae41, limb2: 0x3bacbf4628f20f0353dc2a71, - limb3: 0x12bbfc96114eb5f664d2f89c + limb3: 0x12bbfc96114eb5f664d2f89c, }, r1a0: u384 { limb0: 0x301cba8607d6747f45a6ac34, limb1: 0xe736ba1686c2c9873cf10893, limb2: 0xa0aa0fae3c9f8cab4f768c4, - limb3: 0x15a9608ffbe07f61ed31b819 + limb3: 0x15a9608ffbe07f61ed31b819, }, r1a1: u384 { limb0: 0x89bef3c7071d9d77cfc34894, limb1: 0xb492c854b864451bd42b6f8d, limb2: 0x90d08dba8607ae67e7ffe8f2, - limb3: 0x3df2c581fd145f7d0c76401 - } + limb3: 0x3df2c581fd145f7d0c76401, + }, }, G2Line { r0a0: u384 { limb0: 0x8f8bf2310745715d8e60675, limb1: 0xe7983befc104f7bd4886ad3a, limb2: 0xd6b5d3a93563b2103c29cec1, - limb3: 0x1902b1e10713c8d95829b014 + limb3: 0x1902b1e10713c8d95829b014, }, r0a1: u384 { limb0: 0x392c934ad398e9471a2a3e6f, limb1: 0xc81c0dc22eff61dca36ea27f, limb2: 0x4605027ef09f9b7d03fcc1c2, - limb3: 0x142c2105c569b0e7aee457f1 + limb3: 0x142c2105c569b0e7aee457f1, }, r1a0: u384 { limb0: 0x86fc12d4ddb34349e58e0713, limb1: 0x9a132e3db41060771e480d9f, limb2: 0x6e00f3b7a9cbdf6ba01f3694, - limb3: 0xf3f4843686de973131d67ee + limb3: 0xf3f4843686de973131d67ee, }, r1a1: u384 { limb0: 0xf7b6328930ed21138fcd8f92, limb1: 0x354fd9f9ec8f828426279c4c, limb2: 0x3df938a725947d029e1edf6f, - limb3: 0x1143440784148d84b5ae0952 - } + limb3: 0x1143440784148d84b5ae0952, + }, }, G2Line { r0a0: u384 { limb0: 0x186d09647ff0bba5d26ed28e, limb1: 0x623c8f44caa6f18538e106b2, limb2: 0x6ee87df7083a561d754b41d6, - limb3: 0x8a8a90d75fab6a61d0509a1 + limb3: 0x8a8a90d75fab6a61d0509a1, }, r0a1: u384 { limb0: 0x6adbd952167baf9618d42d4f, limb1: 0x321d82100a434b5583df9a0, limb2: 0x24f6e8a30ab01f51c1f581b1, - limb3: 0x3fbeeb4073b163b3a283631 + limb3: 0x3fbeeb4073b163b3a283631, }, r1a0: u384 { limb0: 0x3cbe311d6bab02eedeee8686, limb1: 0xa954bca129b7bbed1f638f3e, limb2: 0x256baa5a7b0901b1c39a2060, - limb3: 0xd44f3bb3b9ac2f6050e276 + limb3: 0xd44f3bb3b9ac2f6050e276, }, r1a1: u384 { limb0: 0xbc701985313f4fd60a02502a, limb1: 0x879d4ed1464b95cc93907b88, limb2: 0x95c12c7e24be41f785419bee, - limb3: 0x8e3562c02b89b593503d443 - } + limb3: 0x8e3562c02b89b593503d443, + }, }, G2Line { r0a0: u384 { limb0: 0x8acd42eff277e12a1c665cd8, limb1: 0xc8dd9dfb56ea54ca5c9d26e6, limb2: 0x803b24ff12a9cd7524a26b87, - limb3: 0x27b1b3c904791e3fa942dcd + limb3: 0x27b1b3c904791e3fa942dcd, }, r0a1: u384 { limb0: 0x7a880435688221e820d4164e, limb1: 0x9754d630e027f9217dd0fba6, limb2: 0xee6cbf6da2000115b0cca0d8, - limb3: 0x162f5c264c2d2728aaa1f652 + limb3: 0x162f5c264c2d2728aaa1f652, }, r1a0: u384 { limb0: 0x314a0d54f7db63dcd3d6c0e0, limb1: 0x793c614f53a688375ca369e8, limb2: 0x296c4ccd5f785e294abeb492, - limb3: 0x20d58632925a8df2d3d48bd + limb3: 0x20d58632925a8df2d3d48bd, }, r1a1: u384 { limb0: 0x82c581e26e2e612aceaca787, limb1: 0xe02d73cc25449c92dfd7f088, limb2: 0x732270a5ec065ff678b3666e, - limb3: 0x17e813008da019a1fab544c - } + limb3: 0x17e813008da019a1fab544c, + }, }, G2Line { r0a0: u384 { limb0: 0x272c29aa11aed8e43cc6141d, limb1: 0x71ace08186410aa341601ace, limb2: 0xb9a9aa2f3050b27084ffbc22, - limb3: 0xcbec164f80a90014457abc4 + limb3: 0xcbec164f80a90014457abc4, }, r0a1: u384 { limb0: 0x84565ab9fffcd0062808ee35, limb1: 0xef87eb1f3b09214ee1c6bcf7, limb2: 0x1ac3de549632346de8521585, - limb3: 0x302f3ebfd6939b7a5be7a5 + limb3: 0x302f3ebfd6939b7a5be7a5, }, r1a0: u384 { limb0: 0x9615b19b27deb1c37635e038, limb1: 0x71949c2c6bb3f43004b870d9, limb2: 0x1795921be995a5d68845a590, - limb3: 0x17c275a0f8dd134ff6e6ab1e + limb3: 0x17c275a0f8dd134ff6e6ab1e, }, r1a1: u384 { limb0: 0x8b1d7f267653c440de637b02, limb1: 0x3a5e2de261d557e994157f3c, limb2: 0x35f5a3781402a1227675829f, - limb3: 0x18c4e5eb81e38ada34f8ab67 - } + limb3: 0x18c4e5eb81e38ada34f8ab67, + }, }, G2Line { r0a0: u384 { limb0: 0x4a074239eac7dc93b8113ddd, limb1: 0x64192efc9a09299ad173b34e, limb2: 0x3e86b7943ceda2cc678e6719, - limb3: 0x13a3cf500109646aac4d69e3 + limb3: 0x13a3cf500109646aac4d69e3, }, r0a1: u384 { limb0: 0x89c20af4b5a694d4d6d9d45d, limb1: 0x76071bd0d45623a4cfe9647, limb2: 0xbaeda04445ec73fe1fd859d6, - limb3: 0x12f734fc3463dc7adb90dccb + limb3: 0x12f734fc3463dc7adb90dccb, }, r1a0: u384 { limb0: 0xa12928a1d5d6408853a05ae7, limb1: 0xa8fc3f1aa38f3d6554357b31, limb2: 0xbb5e7127cb9669d52daff069, - limb3: 0x525a9e909f39cb2e32cb71a + limb3: 0x525a9e909f39cb2e32cb71a, }, r1a1: u384 { limb0: 0x2bf733d3a23d1446da39720e, limb1: 0x69c363f32dc0ed3a22acc728, limb2: 0x3eb64a364ee2cb63222dc046, - limb3: 0x1e78c4855ad25e4e08ba1eb - } + limb3: 0x1e78c4855ad25e4e08ba1eb, + }, }, G2Line { r0a0: u384 { limb0: 0x7116c638544720919ba1141f, limb1: 0x38d3486b5a4d7d2b1cc7a81, limb2: 0x9b0ce563be273a4ed3481a1d, - limb3: 0x373ac3e05382518aa76323c + limb3: 0x373ac3e05382518aa76323c, }, r0a1: u384 { limb0: 0xf667b74f8f4e3f484c4ae08b, limb1: 0x2206d95b2b7a7ca7e2aecdc2, limb2: 0x64ca11d3eb4448d39f8e7009, - limb3: 0x2585d7ccdfb9e2246f24d05 + limb3: 0x2585d7ccdfb9e2246f24d05, }, r1a0: u384 { limb0: 0xf03edce3835efea888f2bd2a, limb1: 0x992d9468044e686d3d07216d, limb2: 0x98d781d756b874d0bd7a7451, - limb3: 0xe44d0964d322c8cb9cbcf18 + limb3: 0xe44d0964d322c8cb9cbcf18, }, r1a1: u384 { limb0: 0x6fc3182d07a38a7f0fca843b, limb1: 0x551df1a531a45713e9e8c1aa, limb2: 0xde4e92d1f38c48c0f9587009, - limb3: 0x1072fb6b01d871f8150e2fb1 - } + limb3: 0x1072fb6b01d871f8150e2fb1, + }, }, G2Line { r0a0: u384 { limb0: 0x1ed40e3c2cfcc055cd4958d6, limb1: 0xd1453a4587d6c2ca2341043e, limb2: 0xf79c2172e21b91ba79a5ea2d, - limb3: 0x65c82633f9d4d20c07f6ad4 + limb3: 0x65c82633f9d4d20c07f6ad4, }, r0a1: u384 { limb0: 0xc8398341fc07277f183c17d5, limb1: 0x86bc2e62775af5eae61d9aa, limb2: 0x403276e7635ed1cd34473d3d, - limb3: 0x18a18bd0be954bbff600c7c1 + limb3: 0x18a18bd0be954bbff600c7c1, }, r1a0: u384 { limb0: 0x8b17fbda26b7133b0600c51e, limb1: 0x48147de60df80344b55d8fb8, limb2: 0xa0e018e36cfa14e2a39e57fe, - limb3: 0x70aed2d475ad180844d7587 + limb3: 0x70aed2d475ad180844d7587, }, r1a1: u384 { limb0: 0xf1d8e65deba9a3605b50946b, limb1: 0x3677c5769dea1762e0a3a25d, limb2: 0x5d4399ba6a9742e8f2aa1928, - limb3: 0x2d57160d6c66d1e0c2f0c0 - } + limb3: 0x2d57160d6c66d1e0c2f0c0, + }, }, G2Line { r0a0: u384 { limb0: 0x8477b2ca00b2aeca6e32a3c2, limb1: 0xc6f29b461233bd0ebc643442, limb2: 0x84af7efb348b61e615b2333d, - limb3: 0x1533c0ad4f3bdc8c8d26cea4 + limb3: 0x1533c0ad4f3bdc8c8d26cea4, }, r0a1: u384 { limb0: 0xc1c642702f7caf535b06e0f2, limb1: 0xe5245d45b1adaa7c89f0db9c, limb2: 0xfdaf6276d41ae24845843a0a, - limb3: 0xb6f912c27d4179d1cb5e992 + limb3: 0xb6f912c27d4179d1cb5e992, }, r1a0: u384 { limb0: 0x7338a41d8d41ba28d96db37b, limb1: 0x51a10fe0cfd8c6d045839897, limb2: 0xdb73279246e7073586ebb14, - limb3: 0x180e0a6b2de7e0540e582783 + limb3: 0x180e0a6b2de7e0540e582783, }, r1a1: u384 { limb0: 0x4d8f0878c0af851ea8d0cff5, limb1: 0xe24443b84e3d452bac74c32f, limb2: 0x4e4f3f08f29048e7d791c0, - limb3: 0x107fba05f68214c93b0d00d3 - } + limb3: 0x107fba05f68214c93b0d00d3, + }, }, G2Line { r0a0: u384 { limb0: 0xe6882416d7bc0be138e4eeb2, limb1: 0x1ffc8c27a2046327376e250, limb2: 0xf96a7955cf8a3345e89477c1, - limb3: 0x31ae02e34d7d21957899dbe + limb3: 0x31ae02e34d7d21957899dbe, }, r0a1: u384 { limb0: 0x148232d34a8da37b7adc99a7, limb1: 0xd0a0095db108dfd24e92848f, limb2: 0x89fb49e1a36591a6b189f964, - limb3: 0x1900bee131450e7d7a914ea4 + limb3: 0x1900bee131450e7d7a914ea4, }, r1a0: u384 { limb0: 0x97018429f16d24bc1e7f8af0, limb1: 0x1f68aaf8291a6decfb708b43, limb2: 0x1f700e88b537bffef39907e4, - limb3: 0x9cb633f82c6e595f1785e5e + limb3: 0x9cb633f82c6e595f1785e5e, }, r1a1: u384 { limb0: 0xd8d9d3a12a0dd7b129ffda0, limb1: 0x7a94e9da792505fe4fbdb0da, limb2: 0xf16eaac379266d5a4210e839, - limb3: 0xc24197c1ceaa3dd3de58b21 - } + limb3: 0xc24197c1ceaa3dd3de58b21, + }, }, G2Line { r0a0: u384 { limb0: 0x3e3cc1b08d8d1fda723658bb, limb1: 0x1cf952b752fb9ef1e82f5094, limb2: 0xcd52c2cfed361eab29f2026, - limb3: 0x59d1335947ab746801c0537 + limb3: 0x59d1335947ab746801c0537, }, r0a1: u384 { limb0: 0x34f187a454a321b866885648, limb1: 0x26461aa4e35660f0dce08465, limb2: 0x7540c65dddc34d56adebea12, - limb3: 0x1417edadd46132f1155c1f + limb3: 0x1417edadd46132f1155c1f, }, r1a0: u384 { limb0: 0x716255bec8b8a867659f8ec1, limb1: 0x728375c8a3a566ce58f184ab, limb2: 0xf3c4e74ba75e0f526ebea027, - limb3: 0x130e1557b595456ac14c74b + limb3: 0x130e1557b595456ac14c74b, }, r1a1: u384 { limb0: 0x956347dad0355d5e6b5af3c4, limb1: 0xef43db3b9c396c251944db86, limb2: 0x6ee505074759d3fe9876542d, - limb3: 0x4097c38f547306cd4f3b276 - } + limb3: 0x4097c38f547306cd4f3b276, + }, }, G2Line { r0a0: u384 { limb0: 0x6231a3597b09b6d5fda5c712, limb1: 0x3f3bd12ca9ef48ef6199a7f4, limb2: 0x6883383b5a445ca79fc407ee, - limb3: 0x141accc8970ace156fe95a36 + limb3: 0x141accc8970ace156fe95a36, }, r0a1: u384 { limb0: 0xe0c805067330b20430c585c8, limb1: 0x8ff3e0c3028ea8f24ee6fb30, limb2: 0xa368fc9a21efabd91ace37d9, - limb3: 0x18b35a8fd65ba4cbd734a0ee + limb3: 0x18b35a8fd65ba4cbd734a0ee, }, r1a0: u384 { limb0: 0xf4e1f73d2ed7ccded6c419de, limb1: 0xf379cd28811f89aeea7aee67, limb2: 0x727c64c0e714ab6ea82391e8, - limb3: 0xf454aa00efef9460f382b49 + limb3: 0xf454aa00efef9460f382b49, }, r1a1: u384 { limb0: 0x952793660f1fe4300657022a, limb1: 0xe8fa6c2b1aa542384940d1ec, limb2: 0x5a1f19c729b4b225b1501e31, - limb3: 0xa5b1272b68436f9433d112f - } + limb3: 0xa5b1272b68436f9433d112f, + }, }, G2Line { r0a0: u384 { limb0: 0x990dd2f78bf76d63c8a1579d, limb1: 0x324c14f20ab56d3dc480653d, limb2: 0x21bbedea5a0b817b568c1995, - limb3: 0x127c86bb9f80d6468a5a0787 + limb3: 0x127c86bb9f80d6468a5a0787, }, r0a1: u384 { limb0: 0x5b66a3f1affc43619038b84d, limb1: 0xd61e9a91a30e1c4606116992, limb2: 0x8a3bb65c955e0ff1e2749335, - limb3: 0x18094793f6e93a6fbbe88c78 + limb3: 0x18094793f6e93a6fbbe88c78, }, r1a0: u384 { limb0: 0xf16deb47fddb712ce639140, limb1: 0x6ce4afbf91551ea8bf91543e, limb2: 0x1576ceb94ed691afe037a797, - limb3: 0x89f45701d0959ae8869f16 + limb3: 0x89f45701d0959ae8869f16, }, r1a1: u384 { limb0: 0xd1d903d8caaa0032b50eabbb, limb1: 0x4f16d1eedd24943ef87959c4, limb2: 0xc2729c35e8f641933cc2b080, - limb3: 0x12a0bc7d5fef85e9964e5dd - } + limb3: 0x12a0bc7d5fef85e9964e5dd, + }, }, G2Line { r0a0: u384 { limb0: 0x7ee6a5f3ce669de80b52ba42, limb1: 0xa7d66db543d3c6a626f79dea, limb2: 0x135c684f9ac0e0a34315e044, - limb3: 0xaaafef3c4298542248b3a58 + limb3: 0xaaafef3c4298542248b3a58, }, r0a1: u384 { limb0: 0xe0b267ea1f8e8dc2b83d62e, limb1: 0xabac56946f0699334fa765e6, limb2: 0xee0060a937926e9b6d6adb90, - limb3: 0x13d96385b510deff2f4d1d32 + limb3: 0x13d96385b510deff2f4d1d32, }, r1a0: u384 { limb0: 0x1271c3349afe8fbfd4d7ee54, limb1: 0xc4df31a1a0ae89c5728ee819, limb2: 0xa0de891b771af1ba8a67f8db, - limb3: 0xf69200f56879e50a92ecd6e + limb3: 0xf69200f56879e50a92ecd6e, }, r1a1: u384 { limb0: 0x3260bde1e37542b8b8465e10, limb1: 0x7c3420aa9e48318a6606ee07, limb2: 0x126b5e1ded963ffbb6adb4e2, - limb3: 0x18d1f7ae28741bb590bb39a6 - } + limb3: 0x18d1f7ae28741bb590bb39a6, + }, }, G2Line { r0a0: u384 { limb0: 0x269fe662be1952669b367916, limb1: 0x444dc78864cd61df2552517c, limb2: 0x28be12e26f4b32f0652ab84d, - limb3: 0x19a30428e98bf9b0a2c79ff7 + limb3: 0x19a30428e98bf9b0a2c79ff7, }, r0a1: u384 { limb0: 0x21df9689e2fe058639581b7d, limb1: 0x12a80b9a201864b6f46ebab1, limb2: 0xd09d200c1fe4354e796b9b48, - limb3: 0x6bec03fbfbca091da930b62 + limb3: 0x6bec03fbfbca091da930b62, }, r1a0: u384 { limb0: 0x28188947a47cf18c9d40e8da, limb1: 0x7bcabfacb5b01ab3628aaff2, limb2: 0x76a7b58adfbb924378e8220d, - limb3: 0x89da3830e68cf0f2c7a55ed + limb3: 0x89da3830e68cf0f2c7a55ed, }, r1a1: u384 { limb0: 0x16d6797ce84cbee04811bb4f, limb1: 0xeec191427178e5b1c9c7dbb2, limb2: 0xe59d267e616c978d17fd98d0, - limb3: 0xd301c0973bbf180e6fc4134 - } + limb3: 0xd301c0973bbf180e6fc4134, + }, }, G2Line { r0a0: u384 { limb0: 0x95db0469c00d953ee476c048, limb1: 0xa412df73ae5febbec296a5fb, limb2: 0x16b9fdec9340c8f3aefa561c, - limb3: 0xfc955cb99bde258d8760197 + limb3: 0xfc955cb99bde258d8760197, }, r0a1: u384 { limb0: 0x83c7d7a804031b10c844d0cb, limb1: 0xfb88180286d20648b40806c0, limb2: 0x31368cfad1bcb8ef19b9d382, - limb3: 0x8fd02881a5331dfb0922a3b + limb3: 0x8fd02881a5331dfb0922a3b, }, r1a0: u384 { limb0: 0x2513b777e720406cfba171f4, limb1: 0x9d9da48be5e4bae3bd3e8c84, limb2: 0x8d75547712fc62f6f651762d, - limb3: 0x5f0f52ede58374df52c0643 + limb3: 0x5f0f52ede58374df52c0643, }, r1a1: u384 { limb0: 0x13d6b4aa8d9a46d5720e1b74, limb1: 0x5b93ebf4000945ce87c9dcf1, limb2: 0xffe34203a0c826e972d857bd, - limb3: 0x1870c14dc5ad5a661156fd61 - } + limb3: 0x1870c14dc5ad5a661156fd61, + }, }, G2Line { r0a0: u384 { limb0: 0x13a8138427c111d431036213, limb1: 0xc177e00de5b7215a863e9c0, limb2: 0x97a203171990cbbb0e5ab2e5, - limb3: 0x8a0a3f26b8d3bcefb78c724 + limb3: 0x8a0a3f26b8d3bcefb78c724, }, r0a1: u384 { limb0: 0x9d1740ea8f388b69c175f646, limb1: 0xbf6f5d96d616051ae3572d4, limb2: 0x9bc542122a140e5461a88c52, - limb3: 0x510159112f2d409afcdecdf + limb3: 0x510159112f2d409afcdecdf, }, r1a0: u384 { limb0: 0xf6335307702c1329032a46bc, limb1: 0xf975ad40eedeac981c916520, limb2: 0xc367b7993d6243a4984974d2, - limb3: 0x54b5cdb776381cc145be730 + limb3: 0x54b5cdb776381cc145be730, }, r1a1: u384 { limb0: 0x29d26ba47472791689263678, limb1: 0x6f7b1f34b002954f5506eae0, limb2: 0x2f9ecd635cd4d5f6e7f08ab7, - limb3: 0xd547c2cb31b79da87b93b04 - } + limb3: 0xd547c2cb31b79da87b93b04, + }, }, G2Line { r0a0: u384 { limb0: 0x31f476324f857ca9daa71d3f, limb1: 0x5b64b681867d0f5505b9f139, limb2: 0xb89e509fc5decaef9cb221f1, - limb3: 0x5b8f08ef767ca4cf5f36622 + limb3: 0x5b8f08ef767ca4cf5f36622, }, r0a1: u384 { limb0: 0x8f44b24a23750c8f0fa6270d, limb1: 0x554f99004f5b1f2a21b02609, limb2: 0x3710c6daa7cac50a8ca6de8, - limb3: 0xa3b4aea7c32a8fc4d9a662b + limb3: 0xa3b4aea7c32a8fc4d9a662b, }, r1a0: u384 { limb0: 0x93f0fbf4c4d931c3a733902b, limb1: 0x3a038220fa2da3a7087689cd, limb2: 0x5bc677d1583979bda5797f17, - limb3: 0x11996e8759ccb1bda7042160 + limb3: 0x11996e8759ccb1bda7042160, }, r1a1: u384 { limb0: 0x1ee1d1db6f033786016fd46, limb1: 0x2d4942546551a7b5afb1ee11, limb2: 0x5c0b006bc71d7e27359f5f02, - limb3: 0x35c97a7e460075f4d915117 - } + limb3: 0x35c97a7e460075f4d915117, + }, }, G2Line { r0a0: u384 { limb0: 0x7a6d6eabfb0034d1a702f683, limb1: 0x7d0e2455c9a35664ebcfb47b, limb2: 0x32cbd0245fbdf1e7636a4217, - limb3: 0x19c09fc88eb1b1a3d18741a8 + limb3: 0x19c09fc88eb1b1a3d18741a8, }, r0a1: u384 { limb0: 0x533b4770f929349a30d265d1, limb1: 0x2a2bd55c9677f8858218607, limb2: 0xfdc3daccd568a7f098f996b7, - limb3: 0xda029aea876b619425b5a9b + limb3: 0xda029aea876b619425b5a9b, }, r1a0: u384 { limb0: 0xe5b827de5b5a8d55c3f84090, limb1: 0xd80c5371f403010197d4f105, limb2: 0xe577025df13d2871b00bc8dc, - limb3: 0x16414390859fdc9dba5dbd65 + limb3: 0x16414390859fdc9dba5dbd65, }, r1a1: u384 { limb0: 0xaa1076a6910862d36bbb1a19, limb1: 0xcd4b0a7e1356a4c6467e7843, limb2: 0x88f035fb25750a88b3937cc0, - limb3: 0x92167f2a0715c9e9d74c7a9 - } + limb3: 0x92167f2a0715c9e9d74c7a9, + }, }, G2Line { r0a0: u384 { limb0: 0x813cf8d46ec722731cb2e790, limb1: 0x3ae401e3a2c43950dd3e14a5, limb2: 0x7f1e2595a7bf3cb9644dc3a2, - limb3: 0x9a64184b516425353d3342b + limb3: 0x9a64184b516425353d3342b, }, r0a1: u384 { limb0: 0x1be4ad4c913b7f23ef8afc45, limb1: 0x4b9c5ee3da9ae172d5612c39, limb2: 0x362a12402d4cd3c50c5a5bc1, - limb3: 0xaf426e78303a8cf5a43520e + limb3: 0xaf426e78303a8cf5a43520e, }, r1a0: u384 { limb0: 0x1a1fbd631479e96bc85c9b39, limb1: 0x755e043e52470551dc47fa77, limb2: 0x2fd80441adcf386b79dfadce, - limb3: 0x15cdd2f908202480bb0f56fb + limb3: 0x15cdd2f908202480bb0f56fb, }, r1a1: u384 { limb0: 0x493a7937f956ab6960bb1a74, limb1: 0xec402c0b38b6cc4d5094363, limb2: 0x3d52461743a5dfe63d2e7a33, - limb3: 0x92150697852cb2d08c3521b - } + limb3: 0x92150697852cb2d08c3521b, + }, }, G2Line { r0a0: u384 { limb0: 0xb34c26f3f693dd84f80a2827, limb1: 0x3a5bad99a295b14daa58eaf3, limb2: 0x294c30f60635aa35b08a22d6, - limb3: 0x7b4843ff0c2694d4281b82b + limb3: 0x7b4843ff0c2694d4281b82b, }, r0a1: u384 { limb0: 0xf601429d3a9a15e87d6c6a9c, limb1: 0x9ad779f2762b9393eaba8c6e, limb2: 0x887c88bf51c15df955aac60, - limb3: 0x858d73304a934b9aae3be02 + limb3: 0x858d73304a934b9aae3be02, }, r1a0: u384 { limb0: 0xb8b2d232a5e28fd350087039, limb1: 0x72a42652def490cf16cc1d6d, limb2: 0x225b45d85fa199dffd69ffd0, - limb3: 0x11aab051de4d3b03d63fd9c6 + limb3: 0x11aab051de4d3b03d63fd9c6, }, r1a1: u384 { limb0: 0xe973e3abcfc1a8b46e3622d1, limb1: 0x1da2831de5c376f4315553ec, limb2: 0xbceaf398ecd71f612f704c01, - limb3: 0x3bdf213c9512ed9e6961848 - } + limb3: 0x3bdf213c9512ed9e6961848, + }, }, G2Line { r0a0: u384 { limb0: 0x3c31209a4897e0f66a542078, limb1: 0xaca6cfb5457ca1adc99138fe, limb2: 0x72bf4739ae7b1a8652c823a2, - limb3: 0xdd9144f8c45e6091a6714d7 + limb3: 0xdd9144f8c45e6091a6714d7, }, r0a1: u384 { limb0: 0xc8942e9d5abaeec4938f2308, limb1: 0x30ff4bdf679bd4a2b87fa34c, limb2: 0x21acf101ca7ff6cd9129e67a, - limb3: 0xda6ef8b0ede3a09d1a5c00b + limb3: 0xda6ef8b0ede3a09d1a5c00b, }, r1a0: u384 { limb0: 0x2c5038a7eeaa757c15d205e, limb1: 0xe9d28bbd2c18d52e1b9024f2, limb2: 0x959d4240dbbc46a2c5bbb5b, - limb3: 0x9cd8b42cb440fc77607b954 + limb3: 0x9cd8b42cb440fc77607b954, }, r1a1: u384 { limb0: 0xd35f7d36be1bf213c01aba98, limb1: 0x655bc51b43c6394245778244, limb2: 0xd626d74e22844c1a8e2cc950, - limb3: 0x28c4b291b492ca43266277d - } + limb3: 0x28c4b291b492ca43266277d, + }, }, G2Line { r0a0: u384 { limb0: 0xde11ef8702d534dcae97f4d1, limb1: 0xb7e1313492ee7c957d7c08b1, limb2: 0x94685a26959aaaf145f46c06, - limb3: 0xbd77d859d62dfada48bdca9 + limb3: 0xbd77d859d62dfada48bdca9, }, r0a1: u384 { limb0: 0xd50523e1ef354e160696adcb, limb1: 0x4ae2fa0fb50e711c936a065f, limb2: 0xaeb883cf2c5a9ad32ce94798, - limb3: 0x6cc3bf5598846ca25341da5 + limb3: 0x6cc3bf5598846ca25341da5, }, r1a0: u384 { limb0: 0xcc6dd0380e5398c3264b9bbc, limb1: 0xdfe3641a4969d3d49718e00e, limb2: 0xd7b59b3160334de5eacebeed, - limb3: 0x35c0cdaf5e759016dec572e + limb3: 0x35c0cdaf5e759016dec572e, }, r1a1: u384 { limb0: 0xc2d2dbc06bdb8ff543ebcea0, limb1: 0xea4c9e638f95e42cea458d85, limb2: 0x9aa2cb9c51ba076dd941d7c7, - limb3: 0x8052da2e0dd2dec3a95d9f2 - } + limb3: 0x8052da2e0dd2dec3a95d9f2, + }, }, G2Line { r0a0: u384 { limb0: 0xabb764ac8036eb503e39861f, limb1: 0x22e8fa738389a0378352e2d2, limb2: 0xab10fb803ca53103ce99fc28, - limb3: 0x831ad8b93ffed9245877b44 + limb3: 0x831ad8b93ffed9245877b44, }, r0a1: u384 { limb0: 0xf721e83ab0eb9fa28b5d9349, limb1: 0x71c18646ef565689efc545c0, limb2: 0x590ec1d6f3abfbdb3f9f8b0d, - limb3: 0x17707d0e47e7a1044a4fd9c6 + limb3: 0x17707d0e47e7a1044a4fd9c6, }, r1a0: u384 { limb0: 0x16d0a838f9b0fc16504dd27, limb1: 0x5ad87ce7ad12ae830368b776, limb2: 0x62490899b4f397e09c44152f, - limb3: 0x15528a389da1580f43d95ade + limb3: 0x15528a389da1580f43d95ade, }, r1a1: u384 { limb0: 0xa715dcbb03bc2faac9d64bc7, limb1: 0xbd9b3ab159baa441a3ff56ad, limb2: 0x257f876f487a6dab4fa17c81, - limb3: 0xecfcaeb005ca1b7f92bf862 - } + limb3: 0xecfcaeb005ca1b7f92bf862, + }, }, G2Line { r0a0: u384 { limb0: 0x84bef2ae28f4fb378ec1eeb6, limb1: 0x1189e835406150f7fbe047cd, limb2: 0x8d7fa056d5bff703455219b9, - limb3: 0x17b55cffc9c559918a9ffbca + limb3: 0x17b55cffc9c559918a9ffbca, }, r0a1: u384 { limb0: 0xbcd55d1a045238c11947faae, limb1: 0xfddd35b7f062ea97fa82612f, limb2: 0x73dbd0a4863e8634338c4c3, - limb3: 0xfd6b167fe3d1476b5da9dfe + limb3: 0xfd6b167fe3d1476b5da9dfe, }, r1a0: u384 { limb0: 0xbcf99cf3772f639491c9a228, limb1: 0x1f8ca8645ecbeb98bb9ff5ae, limb2: 0x82f62cc92f240ff8bc4fca5, - limb3: 0x6b4211c4d1b18ea0c5a5e4c + limb3: 0x6b4211c4d1b18ea0c5a5e4c, }, r1a1: u384 { limb0: 0xe60a226e7c7d83e720ce3f23, limb1: 0xe357a6f93412eb508cc034c3, limb2: 0x532ca9a4ca346dd2e0913328, - limb3: 0xae125a2c4b74ea5caf9317f - } + limb3: 0xae125a2c4b74ea5caf9317f, + }, }, G2Line { r0a0: u384 { limb0: 0x9ea0eee8a358bedf9bb306c6, limb1: 0x27cbc0c2d576ed81b376df3a, limb2: 0x284d8131858da400101172fe, - limb3: 0x6f01c5d4ccee41765be5896 + limb3: 0x6f01c5d4ccee41765be5896, }, r0a1: u384 { limb0: 0xc9cca6ba98560a0a14f61b11, limb1: 0xd4eef97cebdd8ef2a73732a, limb2: 0x64b605444de34fc8002b43cd, - limb3: 0x16cb65875e7c30e951cccd8 + limb3: 0x16cb65875e7c30e951cccd8, }, r1a0: u384 { limb0: 0x1202ef010c0cded8ddce59aa, limb1: 0x7268537e1c67cc008bb9ba6a, limb2: 0x34ab03d803da94a85a2a1f91, - limb3: 0xffbdd8dbe035b9aa6fa5cba + limb3: 0xffbdd8dbe035b9aa6fa5cba, }, r1a1: u384 { limb0: 0x624339d3f2fb4299150fea00, limb1: 0xf8999090b0c3b02d48cde0a1, limb2: 0xb9c9ee775d38075030edfed8, - limb3: 0x4962ca75250846083ca0a66 - } + limb3: 0x4962ca75250846083ca0a66, + }, }, G2Line { r0a0: u384 { limb0: 0x5a6db269a838098829edba6d, limb1: 0x67230edf9666dd5326fdd901, limb2: 0x4faf83c8878cbaa298052a07, - limb3: 0x112b346339b3c5902a46ac8 + limb3: 0x112b346339b3c5902a46ac8, }, r0a1: u384 { limb0: 0x21277b8157638b119fcc31e4, limb1: 0x58677ee1ee7f46f77ebafdd, limb2: 0xd954201344c8653340beaf5, - limb3: 0x1540de56dfb2f896102f649f + limb3: 0x1540de56dfb2f896102f649f, }, r1a0: u384 { limb0: 0x7542a639e101035b31163743, limb1: 0x16d5957af1c5d36ad26581ce, limb2: 0xa42f7046622fa8f1537fcbb9, - limb3: 0x3173bcc714029b198352b15 + limb3: 0x3173bcc714029b198352b15, }, r1a1: u384 { limb0: 0xb1d8c4b69f2dd6531b317ba0, limb1: 0xecfb946f37008a59694b6c1d, limb2: 0x45a75c06aee99914e7ea7797, - limb3: 0x5a1008ab79da1541477a2bd - } + limb3: 0x5a1008ab79da1541477a2bd, + }, }, G2Line { r0a0: u384 { limb0: 0x9c4a4d3c7bb2576aeac0337b, limb1: 0x8b9250b2bed82359a757e126, limb2: 0x2d7dd2e4d3d0945ac3d9cb88, - limb3: 0xa0bad126c265d46d51689b7 + limb3: 0xa0bad126c265d46d51689b7, }, r0a1: u384 { limb0: 0xf65a98dff64d2a0fc947454f, limb1: 0xa50259b7484098611c2cb9fd, limb2: 0x5a51b1c4671888accdca74af, - limb3: 0x133a4335f59c0259f1a3ff19 + limb3: 0x133a4335f59c0259f1a3ff19, }, r1a0: u384 { limb0: 0xdde88be699f516d731c68610, limb1: 0xce004ded1806688e8e7c458a, limb2: 0x932f3c1c8e56d4b9f19eb7e9, - limb3: 0x124f291f47d76455477102fe + limb3: 0x124f291f47d76455477102fe, }, r1a1: u384 { limb0: 0xa97c633609d63d754d4a2692, limb1: 0x3c5ba5df2f9bb1cdcfb55e97, limb2: 0x19aa69b7f4751e5e39459c7e, - limb3: 0x3f5780b2dcaccad745e1d15 - } + limb3: 0x3f5780b2dcaccad745e1d15, + }, }, G2Line { r0a0: u384 { limb0: 0x6b810adc509554ded3ef3b95, limb1: 0x95284597042e1ecd0726081e, limb2: 0x120e66352bbc0746f23c9af9, - limb3: 0x14407db8291afdcc6767f0d6 + limb3: 0x14407db8291afdcc6767f0d6, }, r0a1: u384 { limb0: 0x9736d40090182b75e8148929, limb1: 0x3b4a1acb2265372a95f14a8b, limb2: 0x688f573f43a95022122a84f8, - limb3: 0x6ee3cecdb39eeaa72352bea + limb3: 0x6ee3cecdb39eeaa72352bea, }, r1a0: u384 { limb0: 0x86a4ae1d79fed79fda04bb3e, limb1: 0xdbe8a4d79312a8b7bca3137, limb2: 0xb002871665722703632ca373, - limb3: 0x6dad85068365251a3070c46 + limb3: 0x6dad85068365251a3070c46, }, r1a1: u384 { limb0: 0xe811cc9a481723566332af5c, limb1: 0x5995536393d8252711fa1719, limb2: 0x4b8d398526d9d7803e5e35d0, - limb3: 0x9c613e006352ea575d7f10c - } + limb3: 0x9c613e006352ea575d7f10c, + }, }, G2Line { r0a0: u384 { limb0: 0xdd3830612c58d544327ca0f0, limb1: 0x1142cd575c788d8d19a24ba9, limb2: 0x45ea7f0421cb2dd4e5b4ed7b, - limb3: 0xfb69c6a2cbfc9dfb9b01427 + limb3: 0xfb69c6a2cbfc9dfb9b01427, }, r0a1: u384 { limb0: 0x875ab3c75d3a4e43d10b2503, limb1: 0xf7cee1313a095fe9e31b7072, limb2: 0xe85be88d689d67e6e9835268, - limb3: 0x10635d3a601f92ab21801ab8 + limb3: 0x10635d3a601f92ab21801ab8, }, r1a0: u384 { limb0: 0x9eb9ef4ae7e0f7713d97450c, limb1: 0x8dfc81038830750d79da8b26, limb2: 0xc17475937901d8cadba451ca, - limb3: 0x6f9f723841ae3e1a88c34f4 + limb3: 0x6f9f723841ae3e1a88c34f4, }, r1a1: u384 { limb0: 0x71e84e872166781dda7182bc, limb1: 0x9dde7059d6c002a7f762da96, limb2: 0x2b9353ca4892a788389ca0fd, - limb3: 0xd413552182113308d1bf463 - } + limb3: 0xd413552182113308d1bf463, + }, }, G2Line { r0a0: u384 { limb0: 0x44db5f922ec99665b26634e5, limb1: 0xac41b74d5483c597704eaaac, limb2: 0x550e72e8ac0309c515e3799, - limb3: 0x1952ab876a19a0773ce3962 + limb3: 0x1952ab876a19a0773ce3962, }, r0a1: u384 { limb0: 0xf574202e10923244624559cb, limb1: 0xc0f8318a3d481320d441ef0a, limb2: 0xde67bbfe352326e4915e12b3, - limb3: 0x961a1762c6fe08878fc48ab + limb3: 0x961a1762c6fe08878fc48ab, }, r1a0: u384 { limb0: 0xf69e2ab32451ecc443146d68, limb1: 0x2d1bd9f71192795f2433de38, limb2: 0x32cd169947d915590eceb231, - limb3: 0x5a7c915f44cbc571061b333 + limb3: 0x5a7c915f44cbc571061b333, }, r1a1: u384 { limb0: 0x448a7247da14616d79b68e7e, limb1: 0xec3301200e41cfe8a1eca52c, limb2: 0xdadc3af8cfa96ac54608c965, - limb3: 0x17fe1a7c7ee57b63cc748535 - } + limb3: 0x17fe1a7c7ee57b63cc748535, + }, }, G2Line { r0a0: u384 { limb0: 0xcc1f58585e1d7b5bd45c4c1f, limb1: 0x745110cbba12e028cd54150c, limb2: 0x2ce6cbed2508c5d828082677, - limb3: 0x28a36f542a28f6997a811fc + limb3: 0x28a36f542a28f6997a811fc, }, r0a1: u384 { limb0: 0x541d567dcc7fbea97520cd94, limb1: 0x65d407bf06f076619981fe2e, limb2: 0xd583e9bfd967becef21bf75f, - limb3: 0xac2c40f46751f043fe2833b + limb3: 0xac2c40f46751f043fe2833b, }, r1a0: u384 { limb0: 0x92c58aae975c98038f79305, limb1: 0x7d1ce0079826b8902c5d46d3, limb2: 0xf99d7ba5cb12513a32fb5eec, - limb3: 0x7cc8363ce478f6d8f184c26 + limb3: 0x7cc8363ce478f6d8f184c26, }, r1a1: u384 { limb0: 0x8397c406c8e69df7b1cea699, limb1: 0x4a543e21f4fd830fab085fcf, limb2: 0x25a94f2ddc7a920fd1361d5b, - limb3: 0x16a2f7057acf7d7df785557d - } + limb3: 0x16a2f7057acf7d7df785557d, + }, }, G2Line { r0a0: u384 { limb0: 0xd795ec8c32c9ebd1bf9f74d6, limb1: 0x7f585c54a0e235a718bb6927, limb2: 0xdbb23b0ee0a160580fc4c61d, - limb3: 0x18cc0bda792f81e333e2b374 + limb3: 0x18cc0bda792f81e333e2b374, }, r0a1: u384 { limb0: 0xc46a2a7c259ebd088ce10740, limb1: 0xe6a830b64d605c010a76076e, limb2: 0xb1a119cfe08d1632021fc196, - limb3: 0xb9b519b9c1bb0eb41e2ce4e + limb3: 0xb9b519b9c1bb0eb41e2ce4e, }, r1a0: u384 { limb0: 0x345bf7846f464a931457dfde, limb1: 0xc8fc5238edd2d7260a066bbf, limb2: 0x2523af32173eba316f128bd7, - limb3: 0x32a68698a38598bd123d251 + limb3: 0x32a68698a38598bd123d251, }, r1a1: u384 { limb0: 0x2224558439f158cbcf42da7c, limb1: 0x387b507d6f0320a9a2e44e6f, limb2: 0xb29b2f37752d24d3fed9a8ea, - limb3: 0x168e24551680276e33346c1b - } + limb3: 0x168e24551680276e33346c1b, + }, }, G2Line { r0a0: u384 { limb0: 0xf8c9e8b4405badfa94226735, limb1: 0xe35370c03766b0439ba9bc0c, limb2: 0xefd8d2d0063990aea5570748, - limb3: 0x125e8f976f7536a2e85ea3cf + limb3: 0x125e8f976f7536a2e85ea3cf, }, r0a1: u384 { limb0: 0x8f2d3d1bd687824c71ce27fa, limb1: 0xd5946aef2f36a4cb42aee9b, limb2: 0xce15918bb8dbd901b9685864, - limb3: 0xc0299d504b8b7bb5ff23b7f + limb3: 0xc0299d504b8b7bb5ff23b7f, }, r1a0: u384 { limb0: 0x9a63e8f36e7127f93b5fab1e, limb1: 0x52d9ab603e72bca7b8fc5284, limb2: 0x8f734c44e7ba040f4a30952b, - limb3: 0x1478222c63826742286f720 + limb3: 0x1478222c63826742286f720, }, r1a1: u384 { limb0: 0x57fd0e62234f512c20e97da2, limb1: 0x876dd44c8838d26ecfad71b0, limb2: 0x9c591e15eb6492035916a674, - limb3: 0x13830268b58006ff03775156 - } + limb3: 0x13830268b58006ff03775156, + }, }, G2Line { r0a0: u384 { limb0: 0xb2877a8ff989a065c386a33e, limb1: 0x13d2429550f4e9f72e2e2cec, limb2: 0xbcf8cd1b0cbec3511e153d8a, - limb3: 0xcd008fe35f202ded141f6f0 + limb3: 0xcd008fe35f202ded141f6f0, }, r0a1: u384 { limb0: 0xcc3d9d00a942a5ab992f4ac8, limb1: 0xf81023268498efbea7a1843f, limb2: 0x561d9f10a4eaf5e417d1ccda, - limb3: 0x10ab00007abd04f36507cb22 + limb3: 0x10ab00007abd04f36507cb22, }, r1a0: u384 { limb0: 0x9b8b1ab2cc4aee0c67d4c474, limb1: 0x9840dfe76cc0dc415191c5c, limb2: 0x91cbd5473dbc72261d57d8f6, - limb3: 0xd47a27fa79ac6ddfb973c4b + limb3: 0xd47a27fa79ac6ddfb973c4b, }, r1a1: u384 { limb0: 0x827056816dae6b0f4c06657b, limb1: 0x8112aa8d965353f81dd65054, limb2: 0x8c1382e0bed39f3950578dc3, - limb3: 0x135456e60f547393ecee80e - } + limb3: 0x135456e60f547393ecee80e, + }, }, G2Line { r0a0: u384 { limb0: 0x5863cf017f4f31c0054a3612, limb1: 0x5a1ef8d1d2c315dd8bc6212, limb2: 0xe33ed175b6d1a029dda7c9aa, - limb3: 0x182115eb42220d34f08e487d + limb3: 0x182115eb42220d34f08e487d, }, r0a1: u384 { limb0: 0xb90bfad204b39a3cbcac7b4, limb1: 0x73b8d9e10bc6022a0994e39a, limb2: 0x7f5daebc21a409de8913242d, - limb3: 0xfc2db9cb25d08faf7c832 + limb3: 0xfc2db9cb25d08faf7c832, }, r1a0: u384 { limb0: 0x26d0221ad0d5ae39d7d33a8, limb1: 0xbae8e0d584ccaa52aeab179, limb2: 0x59de453ae38340185debc29f, - limb3: 0xc5a021a1d3134aa31cb39ed + limb3: 0xc5a021a1d3134aa31cb39ed, }, r1a1: u384 { limb0: 0x7472a64d3fccc64229059166, limb1: 0x361a6711e93f12f3d1cb0320, limb2: 0x6bf192bb96314516f10b7449, - limb3: 0xcaf028327c4bc3f8af13387 - } + limb3: 0xcaf028327c4bc3f8af13387, + }, }, G2Line { r0a0: u384 { limb0: 0x9fbb07d0355fee63ff3debeb, limb1: 0x91896030dd9d9080099fb74, limb2: 0x26da14875766e45e86646226, - limb3: 0x107179b36f3ec30ed0344ffb + limb3: 0x107179b36f3ec30ed0344ffb, }, r0a1: u384 { limb0: 0x749309e43489bf57b329ac54, limb1: 0x88c5acfe2820fe65ec92ff05, limb2: 0xef5d77580008d71e56cfd7c2, - limb3: 0x8347995c6bfa9cbd21c0831 + limb3: 0x8347995c6bfa9cbd21c0831, }, r1a0: u384 { limb0: 0x3348804de4e8c0987c6280f3, limb1: 0xcfc8dd305e856fb4f80eda08, limb2: 0xb7eda62f28c44f9b55da9809, - limb3: 0x6c1e0756ca916fe6d0f1453 + limb3: 0x6c1e0756ca916fe6d0f1453, }, r1a1: u384 { limb0: 0xecb36186ff6abf0ccb74caa, limb1: 0xee68730c0709c13875980d99, limb2: 0xdfb34758f87146c601b8e8df, - limb3: 0x1179b833f2d1129d7dd26307 - } + limb3: 0x1179b833f2d1129d7dd26307, + }, }, G2Line { r0a0: u384 { limb0: 0xd53473f5ac7b5e99de412ea4, limb1: 0xf6c216059e7a2a6b1a09d23c, limb2: 0x5de59d8956f5a84da299063e, - limb3: 0x159ff2806d40ff15099d5204 + limb3: 0x159ff2806d40ff15099d5204, }, r0a1: u384 { limb0: 0xfdccb0d7c9716c23df3ced8f, limb1: 0x14e4ca22ebdbc559a20177, limb2: 0x5b60b25f325eb68e4cbd45d, - limb3: 0x69a7d5ac5a38cce584e0b0f + limb3: 0x69a7d5ac5a38cce584e0b0f, }, r1a0: u384 { limb0: 0x903bac45b703185c327d9669, limb1: 0xe524dad4130c677c5a3b0f31, limb2: 0x11518ec180b31fd2f516e8b1, - limb3: 0x29448dd80ce3c75c8b0d685 + limb3: 0x29448dd80ce3c75c8b0d685, }, r1a1: u384 { limb0: 0x134286c732f95142935a2a98, limb1: 0xc493200ca6cd119550bafdd3, limb2: 0x7008cba4cae32054d22edea4, - limb3: 0x15da5ffa50e36869f0f2ac43 - } + limb3: 0x15da5ffa50e36869f0f2ac43, + }, }, G2Line { r0a0: u384 { limb0: 0x699dddd0ce8eee874e7798d1, limb1: 0x5c3572d1a0e33576c5f95af6, limb2: 0x71a239e87768b6642c64c2d5, - limb3: 0x193a4a988589350e15df6be4 + limb3: 0x193a4a988589350e15df6be4, }, r0a1: u384 { limb0: 0xa05a3143096e2700aaf1ae18, limb1: 0xdaee1baed61a3dc26f6005fc, limb2: 0xed7d52756e553a1adfd2b266, - limb3: 0x1839757d13d8b73a5c23e083 + limb3: 0x1839757d13d8b73a5c23e083, }, r1a0: u384 { limb0: 0x94b6d2f8ced6ba40bea83ca, limb1: 0xfe22edaeb3c651a53c333676, limb2: 0xb7a1df3d2dcc34ad47dfbaf0, - limb3: 0x81b823ad97ad3e98bcb93c8 + limb3: 0x81b823ad97ad3e98bcb93c8, }, r1a1: u384 { limb0: 0xef6f0e083b916a69a01c63e9, limb1: 0x8aedc8c1d6429b10db98ac62, limb2: 0xe6834dcabb9dccf40dbf34db, - limb3: 0x15b856909992c27268ce5b40 - } + limb3: 0x15b856909992c27268ce5b40, + }, }, G2Line { r0a0: u384 { limb0: 0x5edf9450f71e9104f1c374e9, limb1: 0xcfd112580006deba5077fd8a, limb2: 0x289c80bcf75761bc030bda9d, - limb3: 0x142182d337d4bdd0a9dc0152 + limb3: 0x142182d337d4bdd0a9dc0152, }, r0a1: u384 { limb0: 0xe3f1affdcbbd3809a6881f8e, limb1: 0x55f40359611c687f96c91dbe, limb2: 0xb90435a9e7260873c34a0cd4, - limb3: 0x113f465ca312058e0cd541d6 + limb3: 0x113f465ca312058e0cd541d6, }, r1a0: u384 { limb0: 0x85f3a8c5d4928087f1ef8229, limb1: 0x62e48188da4d79f1a88f24ba, limb2: 0x58691c7e87e7ecb6e855a469, - limb3: 0x25bacfd7256f159ca3eb0e5 + limb3: 0x25bacfd7256f159ca3eb0e5, }, r1a1: u384 { limb0: 0xfc830160c50a4b17a2dde63b, limb1: 0x1bf46813a25e8e58ff928d53, limb2: 0xe63b74e85e2032c28808627d, - limb3: 0x9e218f143196d00fadb36c6 - } + limb3: 0x9e218f143196d00fadb36c6, + }, }, G2Line { r0a0: u384 { limb0: 0x4f15d4ea3546d4dd322abb1, limb1: 0x46cffe5c562a996207d85447, limb2: 0x127c1b2c8327db270f3fc752, - limb3: 0x5b1382a51a78623e84b171c + limb3: 0x5b1382a51a78623e84b171c, }, r0a1: u384 { limb0: 0x8dbc701d130e40ed21a9da2c, limb1: 0xadd725634588d75b24dd8c16, limb2: 0x80337504d4d5f8357c9b9979, - limb3: 0x9c23058c09980827954110a + limb3: 0x9c23058c09980827954110a, }, r1a0: u384 { limb0: 0xe1d3592b03a3a53ee550de4a, limb1: 0x34de8376defeb78769a53926, limb2: 0x4a37ac77bdc2eb742a373cf1, - limb3: 0x152f467c23ef37b4010839bf + limb3: 0x152f467c23ef37b4010839bf, }, r1a1: u384 { limb0: 0xcb4d3b94794186d8bfb77400, limb1: 0x7fd7599edba1d571d111a2d0, limb2: 0x3a0264b8ec2890555793b361, - limb3: 0x17f63a07328a47cdf24b7754 - } + limb3: 0x17f63a07328a47cdf24b7754, + }, }, G2Line { r0a0: u384 { limb0: 0x2639eca99f5b1f6e6d095faa, limb1: 0x7322d2c5cd33e33d6fd2e0ca, limb2: 0x1c7bca0054ff60c0db156676, - limb3: 0x10933118bcf1940615957a6c + limb3: 0x10933118bcf1940615957a6c, }, r0a1: u384 { limb0: 0x43e0d74cf14359d83cc60326, limb1: 0x3d49af8c8914a76283667614, limb2: 0xc090bf9a071c2af83528b361, - limb3: 0x14ef91f0b47d2bf1313ba159 + limb3: 0x14ef91f0b47d2bf1313ba159, }, r1a0: u384 { limb0: 0xe45466ca7f8b6f5920570127, limb1: 0x1554654b09b57871c2ba8a9b, limb2: 0xf66b8bb3a005585c18db86b0, - limb3: 0xd28c63f8635e2ca59c7dc45 + limb3: 0xd28c63f8635e2ca59c7dc45, }, r1a1: u384 { limb0: 0xdc559ff81728e932b3c79d12, limb1: 0xec4893ef0a2c9367a4d736d6, limb2: 0x8b0a21bcded904e222dbf14b, - limb3: 0x8c51553f23145b85ca33fbe - } + limb3: 0x8c51553f23145b85ca33fbe, + }, }, G2Line { r0a0: u384 { limb0: 0xf5058204afaec6f2464c5a13, limb1: 0x515da6bfc23ebf6f53f6b55b, limb2: 0xe97a11e04bb36b2059446a4c, - limb3: 0x12fc97a16defdc7adc7476f9 + limb3: 0x12fc97a16defdc7adc7476f9, }, r0a1: u384 { limb0: 0x980b9772f15c2485344735fc, limb1: 0xe64c7342b28e77acf36d03da, limb2: 0xefd0a557cd8909bc5c9e7baf, - limb3: 0xbee5b30e2c4af8e16809197 + limb3: 0xbee5b30e2c4af8e16809197, }, r1a0: u384 { limb0: 0x5fe61e5a5909262f7cad99ed, limb1: 0xccf8e0ad8f3dba3dbeb8ec43, limb2: 0x10378ef14243abc565883a1b, - limb3: 0x209e28d5551008fd8c913d6 + limb3: 0x209e28d5551008fd8c913d6, }, r1a1: u384 { limb0: 0x31bad5bcd6808dcb2e85caf, limb1: 0xd37414833b060119d1f174a3, limb2: 0xd4f73e90a51a3acc4ae687fd, - limb3: 0x18dc062c90db3cd1d20a7de1 - } + limb3: 0x18dc062c90db3cd1d20a7de1, + }, }, G2Line { r0a0: u384 { limb0: 0x7a3deb7872768f839060087e, limb1: 0xae5017af4c09ed67c5c2e525, limb2: 0xef2bbb3e118498031e2471f, - limb3: 0x5cf357e8473bba00386d238 + limb3: 0x5cf357e8473bba00386d238, }, r0a1: u384 { limb0: 0x3b373a0d0a649113f5c7b2fe, limb1: 0xa3913baa2c3f8f7499ac76a6, limb2: 0x425aed5972aa5f4b4d21ffc7, - limb3: 0x82938f41814229b1224b32b + limb3: 0x82938f41814229b1224b32b, }, r1a0: u384 { limb0: 0x5b130ec9295aaeb79868e7d6, limb1: 0xda6c9ffb04ff597a83b36114, limb2: 0xc09586dc17dbca59627bbce4, - limb3: 0xd8431f93c66d78cf5b81228 + limb3: 0xd8431f93c66d78cf5b81228, }, r1a1: u384 { limb0: 0xe35d56023ffa020c373e6d85, limb1: 0x22972df9b6181d6397c5ee58, limb2: 0x933a967160fc487717775d67, - limb3: 0x19c24474e43b997ab5364a65 - } + limb3: 0x19c24474e43b997ab5364a65, + }, }, G2Line { r0a0: u384 { limb0: 0x39d9f0ce211a75081a35cffc, limb1: 0xd3f3a394f77ca3a98e93c5df, limb2: 0x85eb00d07fe02bd29ac2a3c6, - limb3: 0xb7b0d2db2cffcae60d0ecf6 + limb3: 0xb7b0d2db2cffcae60d0ecf6, }, r0a1: u384 { limb0: 0x6117d9f54ded251ed87dcdbd, limb1: 0x1eb6b7f8ce40fd2cfe030d6a, limb2: 0xeed76c5b0d292777e93e9282, - limb3: 0xdcf9ee4e619ac48372a1fd5 + limb3: 0xdcf9ee4e619ac48372a1fd5, }, r1a0: u384 { limb0: 0xa9e439e749d4fc1bea4f893f, limb1: 0x3a33e93d4e73b675790a1df8, limb2: 0xdfc3e8f4f8f506c7c6669428, - limb3: 0x11adba6387d459f7f991ac32 + limb3: 0x11adba6387d459f7f991ac32, }, r1a1: u384 { limb0: 0x35efe895ea1509c6b6db31f1, limb1: 0xeba2f9e1733b61d399cbe43d, limb2: 0xe0ca6d0d6d5e4e234334bc4b, - limb3: 0x1641a68f159d661c924ca1ca - } + limb3: 0x1641a68f159d661c924ca1ca, + }, }, G2Line { r0a0: u384 { limb0: 0x6acbdd11b2e3bf3c4e9a8fc7, limb1: 0xa65c7c83d9e863106be2e6e, limb2: 0xba622ef466154b88c6206dc0, - limb3: 0x13847679c97ef8978b3f64c9 + limb3: 0x13847679c97ef8978b3f64c9, }, r0a1: u384 { limb0: 0xa29270a27fe8eff7ff52747, limb1: 0x1b86d1ea5e2cb0e565695293, limb2: 0x5d46595304e94133e1524dc4, - limb3: 0x5c65be3c6a8b37e95aaa472 + limb3: 0x5c65be3c6a8b37e95aaa472, }, r1a0: u384 { limb0: 0x4c113034a2b4e8c08494656, limb1: 0x113bdfa06dc6105f0cee337c, limb2: 0x5ab2297e7c609e4044c01f70, - limb3: 0xe5ba46e7903db0416c5e85d + limb3: 0xe5ba46e7903db0416c5e85d, }, r1a1: u384 { limb0: 0x1af25f25f85e2fe5769d4db0, limb1: 0xc25dd758f010619bdce139cb, limb2: 0x539682ada1e9af81af49cbb4, - limb3: 0x63c25d8d6ffab7a17da8252 - } + limb3: 0x63c25d8d6ffab7a17da8252, + }, }, G2Line { r0a0: u384 { limb0: 0x2afd7a503f72962b8035ef56, limb1: 0x741a2724c626c073fcb7cb01, limb2: 0xa954f9a9959cbbcf41765c4c, - limb3: 0xd255d019186fe50bbb4abdb + limb3: 0xd255d019186fe50bbb4abdb, }, r0a1: u384 { limb0: 0xe1247719764debd50fb297b1, limb1: 0x1c85bc8240e9013aa086e724, limb2: 0x2bac98861c64cbbfaf10dfe5, - limb3: 0x17887473079a17d6114873ff + limb3: 0x17887473079a17d6114873ff, }, r1a0: u384 { limb0: 0xb40da2a4cd71fa1185ef523a, limb1: 0xb9b730fd2eea88566c9d4152, limb2: 0x3c384a7436df1edb029d3aed, - limb3: 0x89d99706a83aba945d7b48a + limb3: 0x89d99706a83aba945d7b48a, }, r1a1: u384 { limb0: 0x6576e31328774ef164f99920, limb1: 0x3e722659df78ce6e6d049703, limb2: 0xc5d56c8d8e6603bf62c90b81, - limb3: 0xf58e0aa466c88aa025b6401 - } + limb3: 0xf58e0aa466c88aa025b6401, + }, }, G2Line { r0a0: u384 { limb0: 0xee48f089c7a4594a201092eb, limb1: 0xc9d8a7b7d87389e25b856b97, limb2: 0x74d54bf4748e38d3b2c782b3, - limb3: 0x78af2f8549231aa92bba1b3 + limb3: 0x78af2f8549231aa92bba1b3, }, r0a1: u384 { limb0: 0x61acc46ca422be84be4fee75, limb1: 0xf425406455688e07fe496eb2, limb2: 0x1151b627d67176b268c6b18b, - limb3: 0x157a7e87571314c4eeffcc64 + limb3: 0x157a7e87571314c4eeffcc64, }, r1a0: u384 { limb0: 0xd95d245c747804a8f3bd59ab, limb1: 0xb3c7108b5d8ce6d797a8ab29, limb2: 0x452fc047d47ec02830b1b9c1, - limb3: 0x12ea35020ddc17232447b57c + limb3: 0x12ea35020ddc17232447b57c, }, r1a1: u384 { limb0: 0xb027d5b2037b8170fb63b93a, limb1: 0xf317c06fee2a5ef8113fd9d3, limb2: 0xdd1a58fc8de1d70f065c435c, - limb3: 0x11d55ce218987319447cc925 - } + limb3: 0x11d55ce218987319447cc925, + }, }, G2Line { r0a0: u384 { limb0: 0xbda20eba312f5ae4b8188dd6, limb1: 0xed6b03a1b59cdf81e337466, limb2: 0x13f52774d5df8f2b53b3f9a3, - limb3: 0xa84369f18ef0ea7ea78978b + limb3: 0xa84369f18ef0ea7ea78978b, }, r0a1: u384 { limb0: 0xd89f88c20cdd1be266384948, limb1: 0xb260d5b59d68bd6ce061618b, limb2: 0xc706ec3e85485a7d5d2746c8, - limb3: 0x3610ae9e586990c2332a60b + limb3: 0x3610ae9e586990c2332a60b, }, r1a0: u384 { limb0: 0xaa640e2e801a15e4d8aa9343, limb1: 0xce786976554ab6ed66b66295, limb2: 0x1dbbe2c4c4a66f2fef9f4df, - limb3: 0x1599a1020ad879a8517215c8 + limb3: 0x1599a1020ad879a8517215c8, }, r1a1: u384 { limb0: 0x68f8ce25afd5a01fa9437698, limb1: 0xf218ff065be19aa212e05aa2, limb2: 0xa0d7125cba24d5c3b3426602, - limb3: 0x1f4d34e061c1928106f603 - } + limb3: 0x1f4d34e061c1928106f603, + }, }, G2Line { r0a0: u384 { limb0: 0x1b9ff207335fcb7b28f48654, limb1: 0xaa059fc26f53a4b15d861e5d, limb2: 0x7409e84a31ef57e217e3d45d, - limb3: 0x8f022244af0b719146e8cfb + limb3: 0x8f022244af0b719146e8cfb, }, r0a1: u384 { limb0: 0x1fa9d79eb0320e586c2d096a, limb1: 0x8fde2d5c9ef41c1612865896, limb2: 0xec88b9f86c99799b380ebac9, - limb3: 0x72c117c18b8dfa89321c27c + limb3: 0x72c117c18b8dfa89321c27c, }, r1a0: u384 { limb0: 0x4570eb295684cad19e7cfded, limb1: 0x2e204f8114c805f866cca868, limb2: 0xba0509fc0eea7cc65c8b3dee, - limb3: 0xc7c1e717bb7b078054d3851 + limb3: 0xc7c1e717bb7b078054d3851, }, r1a1: u384 { limb0: 0x25eb9fba51d76d2292c1e2bf, limb1: 0xa43de47dba6db4c3e5c3d8b8, limb2: 0x365ea08af8998db774b8b61e, - limb3: 0x6367ffd71d3c44095424fc7 - } + limb3: 0x6367ffd71d3c44095424fc7, + }, }, G2Line { r0a0: u384 { limb0: 0x2ad35ec942a6dc10be32da05, limb1: 0xb889a7f8c178610e41752e60, limb2: 0x130ac19123ef4bc5eff163aa, - limb3: 0xc1c8933b8eca116c8c32c9e + limb3: 0xc1c8933b8eca116c8c32c9e, }, r0a1: u384 { limb0: 0x9b46883056c4f426647a0d1f, limb1: 0x2bc81e6550613b15475cad1f, limb2: 0x5c12a15bc536b16c6c8b1118, - limb3: 0x1116e31db9a099b5941e7fe9 + limb3: 0x1116e31db9a099b5941e7fe9, }, r1a0: u384 { limb0: 0x1b8184a1d9bad5d268b10d3e, limb1: 0xc8196d57732ebf89f6ce1ee6, limb2: 0xd34c8b394f605c9bc52280cd, - limb3: 0x14b9a6056022227937d6c4ee + limb3: 0x14b9a6056022227937d6c4ee, }, r1a1: u384 { limb0: 0xbcbfa6c19991f2a6202faa84, limb1: 0xf3a30cde404074949784fb8a, limb2: 0x6bd69539f118c993bb469b75, - limb3: 0x3c8a54c44f16bc3e22144e4 - } + limb3: 0x3c8a54c44f16bc3e22144e4, + }, }, G2Line { r0a0: u384 { limb0: 0xd8934218abbe5eda42e0374, limb1: 0x4efa70797ab04d5777f18cae, limb2: 0x657bd72dc32622552c01c3a1, - limb3: 0x86675ec3781ecc255b9b8f + limb3: 0x86675ec3781ecc255b9b8f, }, r0a1: u384 { limb0: 0xdb3cdd784259d6f00a05188, limb1: 0x4d7d18f24dc5139d8829c6be, limb2: 0x9067fb6cb2810aa19e5e838d, - limb3: 0x99b7b955ea60c02306dd019 + limb3: 0x99b7b955ea60c02306dd019, }, r1a0: u384 { limb0: 0x9569e6a9a6dfc936dc66c37d, limb1: 0x8ce5600bf62265cce1600d14, limb2: 0xe437be1358f94ae1da7ba693, - limb3: 0x26001dbd81fb98024703f0a + limb3: 0x26001dbd81fb98024703f0a, }, r1a1: u384 { limb0: 0x38347efb475ef26461922ce8, limb1: 0x434f13930fd2a42336fc5a71, limb2: 0xa611a973d0bf99e3535651af, - limb3: 0xf623d241cf8d903d2d48305 - } + limb3: 0xf623d241cf8d903d2d48305, + }, }, G2Line { r0a0: u384 { limb0: 0x721021ae8a4f50730c3d67dc, limb1: 0x879473ae153c9a3634074832, limb2: 0x37c1a1dc9eb1835b698836b1, - limb3: 0x103fc06c9853a3f7112aab36 + limb3: 0x103fc06c9853a3f7112aab36, }, r0a1: u384 { limb0: 0xabcfe33c5665f550278d61b4, limb1: 0x9225061eb88a19059c6a5f6b, limb2: 0xfea771c15b736bb9dfd64611, - limb3: 0x115d2632ad3a29006e1392bf + limb3: 0x115d2632ad3a29006e1392bf, }, r1a0: u384 { limb0: 0x656457e64c7777c11b84156b, limb1: 0xead830ab7644411a1795ddf3, limb2: 0xbd12c37bb1cbd056fc94cd13, - limb3: 0x1698578bd5388b5de2eb808f + limb3: 0x1698578bd5388b5de2eb808f, }, r1a1: u384 { limb0: 0xa3f77a7e2e3af21dabc4871, limb1: 0x170f78723c727fb4bbc4b4a9, limb2: 0x7090ee848cbc35a8f11b2354, - limb3: 0xc8b6a3068cd96500af13493 - } + limb3: 0xc8b6a3068cd96500af13493, + }, }, G2Line { r0a0: u384 { limb0: 0x7464425eeb75a1d3a3486fba, limb1: 0xd4f0931c31459109811008d1, limb2: 0x5aac0cfc9b43343826136afb, - limb3: 0xf16056dd2e8b5f8240d4ac7 + limb3: 0xf16056dd2e8b5f8240d4ac7, }, r0a1: u384 { limb0: 0xee0993ef125a22747400b5ea, limb1: 0x438805278ea9e18b001cf7da, limb2: 0x11c5cbb3ae17332e06f5b415, - limb3: 0x134957b7abe963c5d074abc9 + limb3: 0x134957b7abe963c5d074abc9, }, r1a0: u384 { limb0: 0xacf8eb684fdd044dd83f813e, limb1: 0xcb5dae51f81a4969f0370c67, limb2: 0x491fc4a63ef64f17b8aa0d30, - limb3: 0x188b4199d41c95a7991f2d89 + limb3: 0x188b4199d41c95a7991f2d89, }, r1a1: u384 { limb0: 0x1f69582489be9a39cb94c326, limb1: 0xdfa20ef759cc430ed060c20b, limb2: 0xeab00aeca148c6a408bcd34a, - limb3: 0xd6a605bcb73c8061942fb57 - } + limb3: 0xd6a605bcb73c8061942fb57, + }, }, G2Line { r0a0: u384 { limb0: 0x6773468ba72e40777baeb8f0, limb1: 0x570d2473b46fc08824285612, limb2: 0xd6ad952f46006fb353d86e0b, - limb3: 0xa08d2c3726cf2aff2c088d6 + limb3: 0xa08d2c3726cf2aff2c088d6, }, r0a1: u384 { limb0: 0xa416cc264e8202431a4e991d, limb1: 0xf5a5787c840a815dfa522b31, limb2: 0xe711bc925aba1a74b7b4d4aa, - limb3: 0x868f9c19f9d55b3b7ccd898 + limb3: 0x868f9c19f9d55b3b7ccd898, }, r1a0: u384 { limb0: 0x7baf6a74c7f41953cea5e439, limb1: 0xcb2fed5cedcf58101434abc1, limb2: 0x7393a96a373c39a66a6c8834, - limb3: 0xb23fcd989611b241a4105b + limb3: 0xb23fcd989611b241a4105b, }, r1a1: u384 { limb0: 0x555b817d72aebd2464a2d59b, limb1: 0xe7fd327dcbec3232500cda76, limb2: 0x10b589891b97aaf0c7a54d85, - limb3: 0xbd9efb2a7eedeb7323cb190 - } + limb3: 0xbd9efb2a7eedeb7323cb190, + }, }, G2Line { r0a0: u384 { limb0: 0xed72eccb4e30eeaf3b992446, limb1: 0x14e0585cd696c72e9adb4736, limb2: 0x7df5eabb84672fab4d4a6e10, - limb3: 0x2d6c8112234d7f18ea478ea + limb3: 0x2d6c8112234d7f18ea478ea, }, r0a1: u384 { limb0: 0x95586dac212579b39f39df97, limb1: 0xff0488c63a739029f85aec22, limb2: 0x38ce286aeea4511ddcb23d59, - limb3: 0x444323d14c7a3549b9f6b27 + limb3: 0x444323d14c7a3549b9f6b27, }, r1a0: u384 { limb0: 0xac929d1bb6bfa0df5bd0b951, limb1: 0x9a5e39e018083d89aeeaee3d, limb2: 0xc84698d95675ba2c1b93662e, - limb3: 0xa82a23fd9338c15ba09139b + limb3: 0xa82a23fd9338c15ba09139b, }, r1a1: u384 { limb0: 0x8a89d4ebf46cc78b9a67add2, limb1: 0x1761e578b693547ecbf4817f, limb2: 0xbd9d23d081864a636a27dce, - limb3: 0x40d68a72ee4363db50d3c92 - } + limb3: 0x40d68a72ee4363db50d3c92, + }, }, G2Line { r0a0: u384 { limb0: 0x9cdba5cfbe0205d55df33685, limb1: 0x8a416e1681ead82ad2711fef, limb2: 0xd94faace2b1209807fbb9edd, - limb3: 0xd1755cae5ede1642897673f + limb3: 0xd1755cae5ede1642897673f, }, r0a1: u384 { limb0: 0x352a420344ca83dd4e252c7, limb1: 0xcbcde81ff301c244dc5e006, limb2: 0xa54df6ee2561e110ee674e3e, - limb3: 0x18ad276363a6d2c576fc7d75 + limb3: 0x18ad276363a6d2c576fc7d75, }, r1a0: u384 { limb0: 0x17901b259f213203281dfa4e, limb1: 0xdca6f358c344dba951e904f0, limb2: 0x68be1f2f4a49c00264212bb, - limb3: 0xf39b5af5b74e8e45b8940b + limb3: 0xf39b5af5b74e8e45b8940b, }, r1a1: u384 { limb0: 0xe2032cd4d375921e86fdc082, limb1: 0x90f0cda4fe6f4bedd1c3872d, limb2: 0x9236c612070666c5139ec1cf, - limb3: 0x16eecd9e2f41fc13c0b1678d - } + limb3: 0x16eecd9e2f41fc13c0b1678d, + }, }, G2Line { r0a0: u384 { limb0: 0xbdda2d3c31051f4071ae2945, limb1: 0xbc66726ddee31b37d058d7e5, limb2: 0x9f4eb741ac78b510ccf452ab, - limb3: 0x65fb0c0d47de8795557bd2f + limb3: 0x65fb0c0d47de8795557bd2f, }, r0a1: u384 { limb0: 0xb9c37518dd4a05df7a4d6dc1, limb1: 0xd4ee64da91ea67b8a4525b4, limb2: 0x73a813ffff40ee810a12214b, - limb3: 0x7f9fda3fa03c5295720441d + limb3: 0x7f9fda3fa03c5295720441d, }, r1a0: u384 { limb0: 0xaa6d391bd6b4113145484e4f, limb1: 0x86d3fa56727d8879496d1827, limb2: 0x71223351a13a9577646c0ec3, - limb3: 0x5c4513dff602b8ec227f711 + limb3: 0x5c4513dff602b8ec227f711, }, r1a1: u384 { limb0: 0xb9b127f0cbfc3172bba7a933, limb1: 0x10d730ec07d1e0f84c5c6c34, limb2: 0x693e354e2246bf96f3ebf563, - limb3: 0x1163f7e15fbd10f4086aad86 - } + limb3: 0x1163f7e15fbd10f4086aad86, + }, }, G2Line { r0a0: u384 { limb0: 0x95151ea18c775b54deb3d8d2, limb1: 0x12d5d14c1a1e5e441f80f7f0, limb2: 0x441e9ed1c76ca5b0a9a2c673, - limb3: 0x5ed345d22ce7a2820a566a6 + limb3: 0x5ed345d22ce7a2820a566a6, }, r0a1: u384 { limb0: 0x85f7fcc07f1acb58e2b2b71d, limb1: 0xf54880edf6b069d9be9739e7, limb2: 0xb25f1683eedccd9cddb2592e, - limb3: 0x1287330ba9caab2bef8676e5 + limb3: 0x1287330ba9caab2bef8676e5, }, r1a0: u384 { limb0: 0x418096781d6bdd8438f7d0fa, limb1: 0xde2b0883a520a29780fe7f9, limb2: 0x858acb343f8b338095664988, - limb3: 0x1213109d451b7b62be0e7837 + limb3: 0x1213109d451b7b62be0e7837, }, r1a1: u384 { limb0: 0x13c30921c6ad44eef236dc4e, limb1: 0x97d1525a1c3fa2dfe5f32aa7, limb2: 0x7071a595e981dc71b225c544, - limb3: 0x6f31cf2562cca8a820178ab - } + limb3: 0x6f31cf2562cca8a820178ab, + }, }, ]; diff --git a/src/contracts/groth16_example_bls12_381/.tools-versions b/src/contracts/groth16_example_bls12_381/.tools-versions index cc60fd62..3efd1f43 100644 --- a/src/contracts/groth16_example_bls12_381/.tools-versions +++ b/src/contracts/groth16_example_bls12_381/.tools-versions @@ -1 +1 @@ -scarb 2.8.2 +scarb 2.9.1 diff --git a/src/contracts/groth16_example_bls12_381/Scarb.toml b/src/contracts/groth16_example_bls12_381/Scarb.toml index b0d20fd5..78946c95 100644 --- a/src/contracts/groth16_example_bls12_381/Scarb.toml +++ b/src/contracts/groth16_example_bls12_381/Scarb.toml @@ -5,11 +5,14 @@ edition = "2024_07" [dependencies] garaga = { path = "../../" } -starknet = "2.8.2" +starknet = "2.9.1" [cairo] sierra-replace-ids = false +[dev-dependencies] +cairo_test = "2.9.1" + [[target.starknet-contract]] casm = true casm-add-pythonic-hints = true diff --git a/src/contracts/groth16_example_bls12_381/src/groth16_verifier.cairo b/src/contracts/groth16_example_bls12_381/src/groth16_verifier.cairo index 8db892d7..e71b19a8 100644 --- a/src/contracts/groth16_example_bls12_381/src/groth16_verifier.cairo +++ b/src/contracts/groth16_example_bls12_381/src/groth16_verifier.cairo @@ -3,8 +3,8 @@ use super::groth16_verifier_constants::{N_PUBLIC_INPUTS, vk, ic, precomputed_lin #[starknet::interface] trait IGroth16VerifierBLS12_381 { fn verify_groth16_proof_bls12_381( - ref self: TContractState, full_proof_with_hints: Span, - ) -> bool; + self: @TContractState, full_proof_with_hints: Span, + ) -> Option>; } #[starknet::contract] @@ -12,13 +12,13 @@ mod Groth16VerifierBLS12_381 { use starknet::SyscallResultTrait; use garaga::definitions::{G1Point, G1G2Pair}; use garaga::groth16::{multi_pairing_check_bls12_381_3P_2F_with_extra_miller_loop_result}; - use garaga::ec_ops::{G1PointTrait, G2PointTrait, ec_safe_add}; + use garaga::ec_ops::{G1PointTrait, ec_safe_add}; + use garaga::ec_ops_g2::{G2PointTrait}; use garaga::utils::calldata::{deserialize_full_proof_with_hints_bls12_381}; use super::{N_PUBLIC_INPUTS, vk, ic, precomputed_lines}; const ECIP_OPS_CLASS_HASH: felt252 = - 0x2672f1f079ccbafe1be4a20a76421b509fcfb406cbf6818563ed812edaeb3a3; - use starknet::ContractAddress; + 0x684d2756a4440c190a5fe54e367c0abe33aefa75084dec2fffc791b620c80e3; #[storage] struct Storage {} @@ -26,10 +26,13 @@ mod Groth16VerifierBLS12_381 { #[abi(embed_v0)] impl IGroth16VerifierBLS12_381 of super::IGroth16VerifierBLS12_381 { fn verify_groth16_proof_bls12_381( - ref self: ContractState, full_proof_with_hints: Span, - ) -> bool { + self: @ContractState, full_proof_with_hints: Span, + ) -> Option> { // DO NOT EDIT THIS FUNCTION UNLESS YOU KNOW WHAT YOU ARE DOING. - // ONLY EDIT THE process_public_inputs FUNCTION BELOW. + // This function returns an Option for the public inputs if the proof is valid. + // If the proof is invalid, the execution will either fail or return None. + // Read the documentation to learn how to generate the full_proof_with_hints array given + // a proof and a verifying key. let fph = deserialize_full_proof_with_hints_bls12_381(full_proof_with_hints); let groth16_proof = fph.groth16_proof; let mpcheck_hint = fph.mpcheck_hint; @@ -59,14 +62,14 @@ mod Groth16VerifierBLS12_381 { let mut _vx_x_serialized = core::starknet::syscalls::library_call_syscall( ECIP_OPS_CLASS_HASH.try_into().unwrap(), selector!("msm_g1"), - msm_calldata.span() + msm_calldata.span(), ) .unwrap_syscall(); ec_safe_add( - Serde::::deserialize(ref _vx_x_serialized).unwrap(), *ic.at(0), 1 + Serde::::deserialize(ref _vx_x_serialized).unwrap(), *ic.at(0), 1, ) - } + }, }; // Perform the pairing check. let check = multi_pairing_check_bls12_381_3P_2F_with_extra_miller_loop_result( @@ -76,26 +79,14 @@ mod Groth16VerifierBLS12_381 { vk.alpha_beta_miller_loop_result, precomputed_lines.span(), mpcheck_hint, - small_Q + small_Q, ); if check == true { - self - .process_public_inputs( - starknet::get_caller_address(), groth16_proof.public_inputs - ); - return true; + return Option::Some(groth16_proof.public_inputs); } else { - return false; + return Option::None; } } } - #[generate_trait] - impl InternalFunctions of InternalFunctionsTrait { - fn process_public_inputs( - ref self: ContractState, user: ContractAddress, public_inputs: Span, - ) { // Process the public inputs with respect to the caller address (user). - // Update the storage, emit events, call other contracts, etc. - } - } } diff --git a/src/contracts/groth16_example_bls12_381/src/groth16_verifier_constants.cairo b/src/contracts/groth16_example_bls12_381/src/groth16_verifier_constants.cairo index d44e2085..0bb6a2b8 100644 --- a/src/contracts/groth16_example_bls12_381/src/groth16_verifier_constants.cairo +++ b/src/contracts/groth16_example_bls12_381/src/groth16_verifier_constants.cairo @@ -4,3708 +4,3703 @@ use garaga::groth16::Groth16VerifyingKey; pub const N_PUBLIC_INPUTS: usize = 1; -pub const vk: Groth16VerifyingKey = - Groth16VerifyingKey { - alpha_beta_miller_loop_result: E12D { - w0: u384 { - limb0: 0x90d1a47263d9c179e9d6bab3, - limb1: 0xc8f52b7ac4908e42515e61a6, - limb2: 0x85c60896512fc21fc50ce238, - limb3: 0x15bb2157a1b9aab29d66c644 - }, - w1: u384 { - limb0: 0xb3e77acb0d776ee38973b578, - limb1: 0x7290c49d0303a7a719325387, - limb2: 0x3104f09f1439bbd9b6e47310, - limb3: 0x1794c7df23dbcfd21f7c96f5 - }, - w2: u384 { - limb0: 0xd0ccdf6e1de037c5f25dbd53, - limb1: 0x254a0c8d3849192e33a21665, - limb2: 0xcc0375e474dc85925319c5ad, - limb3: 0x59163bc09c3bb5cd5864b34 - }, - w3: u384 { - limb0: 0x42951c5be1c30dd1f90a8da3, - limb1: 0xffa3bb5d4cc66b3c5c927fe8, - limb2: 0xb2bef79be9fc2df478672961, - limb3: 0x13b08e1d6ece19818bc96ea9 - }, - w4: u384 { - limb0: 0x93fd3339f961a2b9c29235bc, - limb1: 0xf9bbad7b2c116dfe3ed68c7a, - limb2: 0xbd2f1d7614ffe6107af3312d, - limb3: 0x565882562afe825ad18d630 - }, - w5: u384 { - limb0: 0xf8e9d91fd573068e500fe8cb, - limb1: 0xc02aff1aead5aafc095b5d00, - limb2: 0xd46507dd50d8e1e3519eab6d, - limb3: 0x13644a50e3d92f7cb2062999 - }, - w6: u384 { - limb0: 0x79f2b3fe166cf2dd0d2edd42, - limb1: 0xee1d6de706ac7841d7ad70d1, - limb2: 0x8eab5234da247c344e074188, - limb3: 0x11a6213d5e5c30e24cbf89bc - }, - w7: u384 { - limb0: 0x2ce3e653f58dd851f1b19549, - limb1: 0x4718d317cb6aa672d98ec0d0, - limb2: 0x9ba7f0c53686e01b4ad95d5, - limb3: 0x675ea9600256572394eb514 - }, - w8: u384 { - limb0: 0x23db0a4c6695a271a863a4d0, - limb1: 0xd6db4129528086db9190b64e, - limb2: 0xd130bf6380241b158fecfd71, - limb3: 0xa849cb6abd26359866b2ec8 - }, - w9: u384 { - limb0: 0x60b534cf939afce26ebdf812, - limb1: 0x8c24d81eb0180ec2a6cf0f34, - limb2: 0x82a57803b293e76911f92c72, - limb3: 0xc18dabb70953283ac0831cb - }, - w10: u384 { - limb0: 0xf4e4997640a0e73c8ced7b36, - limb1: 0x81b60a120c6ac55184b13431, - limb2: 0x12a9b15b12fddd8e7a1c3fa3, - limb3: 0x6b3db04d04875ece12b9ff5 - }, - w11: u384 { - limb0: 0x12e51658ef6c7052999e66af, - limb1: 0x9549543304b8f59e1248a434, - limb2: 0x52afd8a6dd047073d383da00, - limb3: 0x4ded7b056b1316dac6713a6 - } - }, - gamma_g2: G2Point { - x0: u384 { - limb0: 0xaa65cdf007aef54c6f623dde, - limb1: 0x221d9fa6582f8ab41f299a1d, - limb2: 0xc274f8bcf99c710a010e41a0, - limb3: 0xdd0d7c6d60ac00708ff7db2 - }, - x1: u384 { - limb0: 0x734de87c275c5ff8648ec130, - limb1: 0xee8326798aab2bfea23775cc, - limb2: 0x451384c060e8865aff71dbef, - limb3: 0x604b708bc781ae38a361b93 - }, - y0: u384 { - limb0: 0xa6a2e609a74c6461dbb15b12, - limb1: 0x1b15cfdecac55c2f6881eaa3, - limb2: 0x1c77b46d0593da85473e42c4, - limb3: 0x1541ecff208d5a5cd2d55296 - }, - y1: u384 { - limb0: 0x699092f65f774234b7f31840, - limb1: 0x4c6c5689af7c6b120e3ab986, - limb2: 0x6b8b64d4ead6109ba5c739e4, - limb3: 0x108c95049535bcd1117cdbdf - } - }, - delta_g2: G2Point { - x0: u384 { - limb0: 0x6295df8b9ffbb9f638117fb4, - limb1: 0xd83ce7d5ca555ae1cc54e530, - limb2: 0xd0b71d6edfa740f665e34c84, - limb3: 0x18b219a74108de96a9519a60 - }, - x1: u384 { - limb0: 0x7e3c781dba158e67256dc98e, - limb1: 0xa144ffba7defff7d45169d6f, - limb2: 0x5f5d374324ad0e72809aeed, - limb3: 0xe3e7a8c90ba5b5e266fea71 - }, - y0: u384 { - limb0: 0x4573d43941a95edd7fc0b3c, - limb1: 0xa5afe44806a147a2c04a80ae, - limb2: 0x446f45ca171a1edf9abe76b8, - limb3: 0x11b12761f310cbe4ba3e1ded - }, - y1: u384 { - limb0: 0x1af32f6be0d4fbaaa3a16480, - limb1: 0x8a1e0e97cea1801e094fdc7, - limb2: 0x12fe3d86972bfca288dc7d9b, - limb3: 0x11ece09d0b6f1a1ea16238a5 - } - } - }; +pub const vk: Groth16VerifyingKey = Groth16VerifyingKey { + alpha_beta_miller_loop_result: E12D { + w0: u384 { + limb0: 0x90d1a47263d9c179e9d6bab3, + limb1: 0xc8f52b7ac4908e42515e61a6, + limb2: 0x85c60896512fc21fc50ce238, + limb3: 0x15bb2157a1b9aab29d66c644, + }, + w1: u384 { + limb0: 0xb3e77acb0d776ee38973b578, + limb1: 0x7290c49d0303a7a719325387, + limb2: 0x3104f09f1439bbd9b6e47310, + limb3: 0x1794c7df23dbcfd21f7c96f5, + }, + w2: u384 { + limb0: 0xd0ccdf6e1de037c5f25dbd53, + limb1: 0x254a0c8d3849192e33a21665, + limb2: 0xcc0375e474dc85925319c5ad, + limb3: 0x59163bc09c3bb5cd5864b34, + }, + w3: u384 { + limb0: 0x42951c5be1c30dd1f90a8da3, + limb1: 0xffa3bb5d4cc66b3c5c927fe8, + limb2: 0xb2bef79be9fc2df478672961, + limb3: 0x13b08e1d6ece19818bc96ea9, + }, + w4: u384 { + limb0: 0x93fd3339f961a2b9c29235bc, + limb1: 0xf9bbad7b2c116dfe3ed68c7a, + limb2: 0xbd2f1d7614ffe6107af3312d, + limb3: 0x565882562afe825ad18d630, + }, + w5: u384 { + limb0: 0xf8e9d91fd573068e500fe8cb, + limb1: 0xc02aff1aead5aafc095b5d00, + limb2: 0xd46507dd50d8e1e3519eab6d, + limb3: 0x13644a50e3d92f7cb2062999, + }, + w6: u384 { + limb0: 0x79f2b3fe166cf2dd0d2edd42, + limb1: 0xee1d6de706ac7841d7ad70d1, + limb2: 0x8eab5234da247c344e074188, + limb3: 0x11a6213d5e5c30e24cbf89bc, + }, + w7: u384 { + limb0: 0x2ce3e653f58dd851f1b19549, + limb1: 0x4718d317cb6aa672d98ec0d0, + limb2: 0x9ba7f0c53686e01b4ad95d5, + limb3: 0x675ea9600256572394eb514, + }, + w8: u384 { + limb0: 0x23db0a4c6695a271a863a4d0, + limb1: 0xd6db4129528086db9190b64e, + limb2: 0xd130bf6380241b158fecfd71, + limb3: 0xa849cb6abd26359866b2ec8, + }, + w9: u384 { + limb0: 0x60b534cf939afce26ebdf812, + limb1: 0x8c24d81eb0180ec2a6cf0f34, + limb2: 0x82a57803b293e76911f92c72, + limb3: 0xc18dabb70953283ac0831cb, + }, + w10: u384 { + limb0: 0xf4e4997640a0e73c8ced7b36, + limb1: 0x81b60a120c6ac55184b13431, + limb2: 0x12a9b15b12fddd8e7a1c3fa3, + limb3: 0x6b3db04d04875ece12b9ff5, + }, + w11: u384 { + limb0: 0x12e51658ef6c7052999e66af, + limb1: 0x9549543304b8f59e1248a434, + limb2: 0x52afd8a6dd047073d383da00, + limb3: 0x4ded7b056b1316dac6713a6, + }, + }, + gamma_g2: G2Point { + x0: u384 { + limb0: 0xaa65cdf007aef54c6f623dde, + limb1: 0x221d9fa6582f8ab41f299a1d, + limb2: 0xc274f8bcf99c710a010e41a0, + limb3: 0xdd0d7c6d60ac00708ff7db2, + }, + x1: u384 { + limb0: 0x734de87c275c5ff8648ec130, + limb1: 0xee8326798aab2bfea23775cc, + limb2: 0x451384c060e8865aff71dbef, + limb3: 0x604b708bc781ae38a361b93, + }, + y0: u384 { + limb0: 0xa6a2e609a74c6461dbb15b12, + limb1: 0x1b15cfdecac55c2f6881eaa3, + limb2: 0x1c77b46d0593da85473e42c4, + limb3: 0x1541ecff208d5a5cd2d55296, + }, + y1: u384 { + limb0: 0x699092f65f774234b7f31840, + limb1: 0x4c6c5689af7c6b120e3ab986, + limb2: 0x6b8b64d4ead6109ba5c739e4, + limb3: 0x108c95049535bcd1117cdbdf, + }, + }, + delta_g2: G2Point { + x0: u384 { + limb0: 0x6295df8b9ffbb9f638117fb4, + limb1: 0xd83ce7d5ca555ae1cc54e530, + limb2: 0xd0b71d6edfa740f665e34c84, + limb3: 0x18b219a74108de96a9519a60, + }, + x1: u384 { + limb0: 0x7e3c781dba158e67256dc98e, + limb1: 0xa144ffba7defff7d45169d6f, + limb2: 0x5f5d374324ad0e72809aeed, + limb3: 0xe3e7a8c90ba5b5e266fea71, + }, + y0: u384 { + limb0: 0x4573d43941a95edd7fc0b3c, + limb1: 0xa5afe44806a147a2c04a80ae, + limb2: 0x446f45ca171a1edf9abe76b8, + limb3: 0x11b12761f310cbe4ba3e1ded, + }, + y1: u384 { + limb0: 0x1af32f6be0d4fbaaa3a16480, + limb1: 0x8a1e0e97cea1801e094fdc7, + limb2: 0x12fe3d86972bfca288dc7d9b, + limb3: 0x11ece09d0b6f1a1ea16238a5, + }, + }, +}; -pub const ic: [ - G1Point - ; 2] = [ +pub const ic: [G1Point; 2] = [ G1Point { x: u384 { limb0: 0xaea925952b1d5dcc848e1107, limb1: 0x1d3926283f7823c830469f8d, limb2: 0x855a100cf099f5733048337, - limb3: 0x126fbe91d07c71cd11847edc + limb3: 0x126fbe91d07c71cd11847edc, }, y: u384 { limb0: 0xdffe1c953fd7a62db3ea0f7d, limb1: 0xe81081ed3027415c05028dc0, limb2: 0x8382ca23441bb4a34775829b, - limb3: 0x11d4302c0095dfb2bcb31a44 - } + limb3: 0x11d4302c0095dfb2bcb31a44, + }, }, G1Point { x: u384 { limb0: 0x46c87cd685c7c1d6fdcd1e9b, limb1: 0x2f62c85bb229d8c136b83c08, limb2: 0x5447e4279f17852eabd158fa, - limb3: 0x17eb504b7c7c4fcec2570d70 + limb3: 0x17eb504b7c7c4fcec2570d70, }, y: u384 { limb0: 0x1af88a58b9173f40990d461d, limb1: 0xed8dc9e752c0f5ec50f0bf39, limb2: 0x620cad3e73faf12d0844d15f, - limb3: 0x682ec2d49889aa39ae6f079 - } + limb3: 0x682ec2d49889aa39ae6f079, + }, }, ]; -pub const precomputed_lines: [ - G2Line - ; 136] = [ +pub const precomputed_lines: [G2Line; 136] = [ G2Line { r0a0: u384 { limb0: 0x306be1de1b04d2624e640455, limb1: 0xf2a2185fd41fca781bc97f37, limb2: 0x61bc1a3296c8468ccbfd0f00, - limb3: 0xe34ab79b1474233817e576e + limb3: 0xe34ab79b1474233817e576e, }, r0a1: u384 { limb0: 0xb2d501153392bd8774a608d8, limb1: 0x8bf8261f30c2770732ec1803, limb2: 0x54badbe21461d0daf83afabe, - limb3: 0xf07ba4034e02ff1891990ed + limb3: 0xf07ba4034e02ff1891990ed, }, r1a0: u384 { limb0: 0x32ea0796aef63117c6e0e6a1, limb1: 0xa45dad1f58021d08480cc168, limb2: 0xccdc578cc13456d86cd47734, - limb3: 0xfd13ef0a99a6b73d52ca7b9 + limb3: 0xfd13ef0a99a6b73d52ca7b9, }, r1a1: u384 { limb0: 0xb3a2e4a310abfbef796714, limb1: 0xa555ba99515a0a5e2d59908c, limb2: 0x165b6bdd81d359126278cb48, - limb3: 0xb4aa52b7c5b272cbf4fc038 - } + limb3: 0xb4aa52b7c5b272cbf4fc038, + }, }, G2Line { r0a0: u384 { limb0: 0x1b91ee6736aeabe4b5e40ccb, limb1: 0xd1e0bdffe69e623fa4977b7e, limb2: 0x3a38a366dca6ed3ac394edae, - limb3: 0x17d86f3a6eadac41e32f85b + limb3: 0x17d86f3a6eadac41e32f85b, }, r0a1: u384 { limb0: 0x85526a142f1b602083c8d0e9, limb1: 0x9de43cde6d77997ea6be8502, limb2: 0x26f9e86d04c4567b4ce35680, - limb3: 0x1426d177654bf0d7517048d4 + limb3: 0x1426d177654bf0d7517048d4, }, r1a0: u384 { limb0: 0x47561557466bbd16edc89e91, limb1: 0xa569496f4dc6bd96e4917912, limb2: 0x8b21592e524eb1bc65bda550, - limb3: 0x167eed299c6bd0497e52cbb8 + limb3: 0x167eed299c6bd0497e52cbb8, }, r1a1: u384 { limb0: 0xa40e65e562f01cc7e697d44e, limb1: 0xf7e3075bffcb46efc4c7de85, limb2: 0x4837f7e7cd36e2ed7747ed42, - limb3: 0x1401c25696479939c853129 - } + limb3: 0x1401c25696479939c853129, + }, }, G2Line { r0a0: u384 { limb0: 0xcf09df55ea243c0b5d27ea95, limb1: 0xa5c3c859310e651108ba35f9, limb2: 0xe22d5367257f2b7b07101881, - limb3: 0x146fecb4aca9ed26211e6a1c + limb3: 0x146fecb4aca9ed26211e6a1c, }, r0a1: u384 { limb0: 0xfb9b1aa00ba2314b499e9ad2, limb1: 0x25885d4aae86a2ee87249374, limb2: 0xebecd6bf5c617aba6840aa01, - limb3: 0x463f1553e899e2adf4279f9 + limb3: 0x463f1553e899e2adf4279f9, }, r1a0: u384 { limb0: 0x1aa0f311fb5027f4834da079, limb1: 0x7b26ff99d902997df1825c8c, limb2: 0xebc6228c9418dc5eebbf53b1, - limb3: 0xe10e27eb7e14d9257ef5dc5 + limb3: 0xe10e27eb7e14d9257ef5dc5, }, r1a1: u384 { limb0: 0xc89a8f1c1c6ae8707f8fa8fc, limb1: 0xb45e86fe1c988a090beb870d, limb2: 0x9b645529fd4c880478be7051, - limb3: 0x173c6c7f6fa56c3d1f1961b3 - } + limb3: 0x173c6c7f6fa56c3d1f1961b3, + }, }, G2Line { r0a0: u384 { limb0: 0xb58b9ab9d1892dd4c5543b36, limb1: 0xe3c36bb4c20608a534fd590b, limb2: 0xed0ee74781e598434a0b96ab, - limb3: 0x6b2aa02643ac8ef76d9b262 + limb3: 0x6b2aa02643ac8ef76d9b262, }, r0a1: u384 { limb0: 0x3a1fbee97340bbd138b8ebb4, limb1: 0xfc724611032db25419c64333, limb2: 0x7b496eddcf55a6c83d880e5b, - limb3: 0xdd344cd4cc6c1be8929497a + limb3: 0xdd344cd4cc6c1be8929497a, }, r1a0: u384 { limb0: 0xef38cfa96ccac703a2060cc1, limb1: 0x2f8106247ed8427f6104427, limb2: 0xa2e886264a53734039a28245, - limb3: 0xfd9424926115c1f549c9fe6 + limb3: 0xfd9424926115c1f549c9fe6, }, r1a1: u384 { limb0: 0xef853c4c4bccb3964c46149c, limb1: 0x739746bb23813b366d6900e, limb2: 0xd46eb42d09315fa477d9661, - limb3: 0x960e39d1824fac5873f1b4b - } + limb3: 0x960e39d1824fac5873f1b4b, + }, }, G2Line { r0a0: u384 { limb0: 0xd97632f4635a33f78fe45df, limb1: 0xfbd9de73e894c9578b619e6f, limb2: 0x8e3e139782eddc798cfe1cba, - limb3: 0x101554d44cb1579300498f0b + limb3: 0x101554d44cb1579300498f0b, }, r0a1: u384 { limb0: 0xe6071e81b13c82607e1504cd, limb1: 0xc90c09fd9d0de2ae2e3b1c7d, limb2: 0xf07085d896ccf916cd0d6c32, - limb3: 0x17aa6a97d1dfda923c027163 + limb3: 0x17aa6a97d1dfda923c027163, }, r1a0: u384 { limb0: 0x6442e11f77c962ca849d5ace, limb1: 0x3a02be748e349014afa5ee2b, limb2: 0x870d78ab0321516019929135, - limb3: 0xfc7e0bf5ac4481abd4e87c4 + limb3: 0xfc7e0bf5ac4481abd4e87c4, }, r1a1: u384 { limb0: 0xbe9a9a875effb23de3d91dd7, limb1: 0x1934ec3159b26c5ff788b5fb, limb2: 0xc82ebc003a434e6082ae9773, - limb3: 0xf843e21d950713837ba992e - } + limb3: 0xf843e21d950713837ba992e, + }, }, G2Line { r0a0: u384 { limb0: 0x28c8425627ed65eb0939cdb4, limb1: 0xc3c6c683bb2f36b229a6067e, limb2: 0x72b2a1af6f1ffa9a7b76ac8, - limb3: 0x1812bffcffe098c2f8a4d03a + limb3: 0x1812bffcffe098c2f8a4d03a, }, r0a1: u384 { limb0: 0x2f789c72473e628e0daf2579, limb1: 0x43800ef9d613d6c1609105a9, limb2: 0x4a05e73291a8d7f3a6057209, - limb3: 0x73a3adbbd19a0c5629c438c + limb3: 0x73a3adbbd19a0c5629c438c, }, r1a0: u384 { limb0: 0xa0991371dae811f65097016e, limb1: 0xa1d3e86721ce69bdd7b30b45, limb2: 0x47f1ab9108f30cc37319c5ec, - limb3: 0xd3ac356c647bbe338b60eae + limb3: 0xd3ac356c647bbe338b60eae, }, r1a1: u384 { limb0: 0x4dc00392cc0f98e602f32889, limb1: 0xe9f026915132182309858a36, limb2: 0xcb6091656a55b6d8dc590657, - limb3: 0xdad58900f4739152bbeb372 - } + limb3: 0xdad58900f4739152bbeb372, + }, }, G2Line { r0a0: u384 { limb0: 0xa0f3631679cfbb9b21ad0462, limb1: 0x6ee7debde007b92b4b149c44, limb2: 0x55a3e394518675f2e31137b5, - limb3: 0xd8a826fe9113b560da09907 + limb3: 0xd8a826fe9113b560da09907, }, r0a1: u384 { limb0: 0xed78588c893ceaa0f514558b, limb1: 0x79d83cf3b7023296ec92ba14, limb2: 0x9735f438b5a71d40b70bb0fa, - limb3: 0x15aef525c47e22ae57a7f8d5 + limb3: 0x15aef525c47e22ae57a7f8d5, }, r1a0: u384 { limb0: 0x84b45245e65ce740caff5e5b, limb1: 0xf67e131fa36599b6f341f185, limb2: 0x8788300d6901775782a0560a, - limb3: 0x77d9a7e661fdfc46bcf0a96 + limb3: 0x77d9a7e661fdfc46bcf0a96, }, r1a1: u384 { limb0: 0xf1c657418092ff3af9268ad, limb1: 0xfd859ddd59729868785858bf, limb2: 0x74b030a37e9b5229e33eea35, - limb3: 0x2ed25e75eafc63b15c99cd8 - } + limb3: 0x2ed25e75eafc63b15c99cd8, + }, }, G2Line { r0a0: u384 { limb0: 0x828e9d39e6c3882e1c541094, limb1: 0x3e866024d8c0d4511c1d7b04, limb2: 0x82f82c8987fbcd90a7db524e, - limb3: 0x115162baf491d6d2c3bb4408 + limb3: 0x115162baf491d6d2c3bb4408, }, r0a1: u384 { limb0: 0x73e00500dbadcb8f72a61794, limb1: 0x2b083cc45cb9b982df2826bb, limb2: 0x38a8b3bfefd4f705093941c9, - limb3: 0x1764d08b2b3f48e67da5fca7 + limb3: 0x1764d08b2b3f48e67da5fca7, }, r1a0: u384 { limb0: 0xb15b36df44312bd1bc6b43c0, limb1: 0x17d11b4de6c29aaee53b828, limb2: 0x4707b434920922fd8726a2ed, - limb3: 0x13aab19628ca9aaf0a115e66 + limb3: 0x13aab19628ca9aaf0a115e66, }, r1a1: u384 { limb0: 0x45545ee3518b4ad82e08a2e4, limb1: 0x545d12ab8020b0d72105759, limb2: 0x8a1520604f4038d8cfd87db4, - limb3: 0x13302bc366771eb73d10200f - } + limb3: 0x13302bc366771eb73d10200f, + }, }, G2Line { r0a0: u384 { limb0: 0x26347d93bfe0c7376637de2a, limb1: 0xa7b2d922d944d44736d75046, limb2: 0x96a8d04f3e2c39be23f934ba, - limb3: 0xf68430cc06e72e8cba83abb + limb3: 0xf68430cc06e72e8cba83abb, }, r0a1: u384 { limb0: 0xd00debef89a0244b8645b45d, limb1: 0xb820cb845456918f3639b0bb, limb2: 0xa32e6daab9f6beb0252d81c3, - limb3: 0x138d591ae6b61a704bbcd8d8 + limb3: 0x138d591ae6b61a704bbcd8d8, }, r1a0: u384 { limb0: 0xdc637c11d0dbeaf0a39536cc, limb1: 0x9660f9ee2827e0e6402067bf, limb2: 0xd91e4cc7d47e0fd9713272d9, - limb3: 0x10137873532e35eeec88970d + limb3: 0x10137873532e35eeec88970d, }, r1a1: u384 { limb0: 0xfcf221d220a35af03650e72d, limb1: 0x616ae54c91ce47ca60763953, limb2: 0xe626d0064ab09e7302b5be30, - limb3: 0x1816ead2f891bd024c2985cb - } + limb3: 0x1816ead2f891bd024c2985cb, + }, }, G2Line { r0a0: u384 { limb0: 0xfb87ceb75ed615c4c057d678, limb1: 0x6582cbf9525b9cefe7b9e804, limb2: 0x4f37e42b8dc3a2ee249e6e37, - limb3: 0xf4741cab21cf2769050b0fa + limb3: 0xf4741cab21cf2769050b0fa, }, r0a1: u384 { limb0: 0x924844c33852d2e23cac984a, limb1: 0xbc556fa45dd32211de3922f9, limb2: 0xb8366a587addf71a58498b14, - limb3: 0x13ea637b846fbb373c8f4611 + limb3: 0x13ea637b846fbb373c8f4611, }, r1a0: u384 { limb0: 0xefa45f0548590ffceb314941, limb1: 0xbf9b204a890c30857ba60551, limb2: 0xbdd3f88bd124ac7e0f0af016, - limb3: 0x8e95429352e72aba5211967 + limb3: 0x8e95429352e72aba5211967, }, r1a1: u384 { limb0: 0xf8c98157528a959ccac7cc4, limb1: 0x687cb79cd5a81fac75001ca4, limb2: 0x6b68eabcdc9b0ad00d66e086, - limb3: 0x140f2cace6f7cab25c97103e - } + limb3: 0x140f2cace6f7cab25c97103e, + }, }, G2Line { r0a0: u384 { limb0: 0xe7afbce45921cd7b77242135, limb1: 0x5718bd5dc545444c6b641c19, limb2: 0xf512a03bbea424d2672a39a3, - limb3: 0x8e393e621680c17993f7bae + limb3: 0x8e393e621680c17993f7bae, }, r0a1: u384 { limb0: 0x8ff19c6a2f49a711cf0739f9, limb1: 0xc3af1820b15abe02eca2754, limb2: 0x53766b612388a245d2d63ffe, - limb3: 0x381016961e0f7db87f0cce8 + limb3: 0x381016961e0f7db87f0cce8, }, r1a0: u384 { limb0: 0x4dda60bd25e6e1347768724b, limb1: 0x1d241291d2da9e52a786e440, limb2: 0xb10bcb7cb6ea42c8a80fa259, - limb3: 0x140182d624ca9103b00a1042 + limb3: 0x140182d624ca9103b00a1042, }, r1a1: u384 { limb0: 0xc434a31edad1a2430d152c8d, limb1: 0x7bbb7dbdcb98092bfc57c45b, limb2: 0xe5bfd09fb89c9cb9fc2930e8, - limb3: 0x149d591ee71b32836829acc5 - } + limb3: 0x149d591ee71b32836829acc5, + }, }, G2Line { r0a0: u384 { limb0: 0x6f857b2f9dbf0171c195a52d, limb1: 0x5813a24021c2b05113dd4a96, limb2: 0x2aff27dce98b343fd0f793de, - limb3: 0xf2e0145a43aeae640b6969d + limb3: 0xf2e0145a43aeae640b6969d, }, r0a1: u384 { limb0: 0x29ced55c68a2802ce2609172, limb1: 0x6338f9b36d931b4d67932b9b, limb2: 0x66025aa8eb27d423c0b5bfec, - limb3: 0x14fe5e46686326e1f055306 + limb3: 0x14fe5e46686326e1f055306, }, r1a0: u384 { limb0: 0xeb52118df562a61042721eca, limb1: 0xee5bdf330b411779cc2881e5, limb2: 0x8fc6336a288b05900b65ae97, - limb3: 0x517b226c178ce7caa260f92 + limb3: 0x517b226c178ce7caa260f92, }, r1a1: u384 { limb0: 0xe7e7b8db4db2afd3d18383fc, limb1: 0x82b7a186d747be7f434c662, limb2: 0x2a775ab75e722fd93a4da97, - limb3: 0xe496d7813827c9e5ffe551c - } + limb3: 0xe496d7813827c9e5ffe551c, + }, }, G2Line { r0a0: u384 { limb0: 0x627028a8bdee6000c0d845f6, limb1: 0xc9f98f9c37170503138c263e, limb2: 0x49fbcbcd10639a6d007e5879, - limb3: 0x131a7572031e8ed7a863b371 + limb3: 0x131a7572031e8ed7a863b371, }, r0a1: u384 { limb0: 0x7b5f18c205ca348475db5437, limb1: 0x16ca76de607e8ea438b21550, limb2: 0x35c5f60e8c2bd63e2a90fb2c, - limb3: 0x13bb76670abc068e45d475c0 + limb3: 0x13bb76670abc068e45d475c0, }, r1a0: u384 { limb0: 0x239305338201c7b0d260e948, limb1: 0x4cfc220680324a3e5e1fe68d, limb2: 0xb5b8357d92c82b48c50ab1b0, - limb3: 0xba4a4c1f10015ff907735c2 + limb3: 0xba4a4c1f10015ff907735c2, }, r1a1: u384 { limb0: 0x5c84bbc1fcf0837749364732, limb1: 0xc66eb6ada5392af863d295b3, limb2: 0x3fca6067b750d18086f41345, - limb3: 0x13fbb0a0f6400bfdad8a7193 - } + limb3: 0x13fbb0a0f6400bfdad8a7193, + }, }, G2Line { r0a0: u384 { limb0: 0x249c31d39a8ff1d65e22a789, limb1: 0x6f16f7224fa34e79712f9ff7, limb2: 0x9300f2ba5e2772169f274b95, - limb3: 0x150c43a0d3e436e65b20a4be + limb3: 0x150c43a0d3e436e65b20a4be, }, r0a1: u384 { limb0: 0xe3dfcea0f7070a52acf2f549, limb1: 0x4c4b0f06dc150efc46e57fe0, limb2: 0xcff73efac06c1fe6f9d4bfe2, - limb3: 0x143df5a491905251d79670d1 + limb3: 0x143df5a491905251d79670d1, }, r1a0: u384 { limb0: 0xe2f782ade4eb4d3d61c1ae2e, limb1: 0x374eac91af81a4be25d5698e, limb2: 0xbea5114dfebd79eb8078b0cd, - limb3: 0x3d61f08b0443e34c6871b + limb3: 0x3d61f08b0443e34c6871b, }, r1a1: u384 { limb0: 0xe4d40a02691978c7cd5b7c88, limb1: 0x4b39d5b3234be8097a93f261, limb2: 0x263fd7183a07705a066e4b0b, - limb3: 0x673d4ac4c490f4da1baad08 - } + limb3: 0x673d4ac4c490f4da1baad08, + }, }, G2Line { r0a0: u384 { limb0: 0x5acdc9c59c94e0d5705d33dc, limb1: 0xddeae8a3def58011f5fff627, limb2: 0x2a560574c9f7f1adf85ac330, - limb3: 0x986c2f3fe60390dc3490a7e + limb3: 0x986c2f3fe60390dc3490a7e, }, r0a1: u384 { limb0: 0x3ae8c5c7e6a5b36fbf54ed71, limb1: 0xfca9910fdf6379bb21489fd2, limb2: 0x931ca186c017ce347583a52d, - limb3: 0xa800d5ce754e490542d0a63 + limb3: 0xa800d5ce754e490542d0a63, }, r1a0: u384 { limb0: 0xc757e215e8a482b8d6c1830, limb1: 0x79cdb82276ca8c6d2c853c2a, limb2: 0xdf7e085f46fdd58884c07921, - limb3: 0x12c2a50751be2602b79ce60f + limb3: 0x12c2a50751be2602b79ce60f, }, r1a1: u384 { limb0: 0x4bdd9d25da5b740109e8ba82, limb1: 0x738b43414881a78559812a3, limb2: 0xc45a86a441289ba795f8c844, - limb3: 0xc17887e275b98353945d589 - } + limb3: 0xc17887e275b98353945d589, + }, }, G2Line { r0a0: u384 { limb0: 0x2f25c239eaac738b78124e52, limb1: 0x3b423b7770e03a4290134003, limb2: 0x4e7a673af5f9bb11fa69398a, - limb3: 0x5a6af6e0735f0cf58a65190 + limb3: 0x5a6af6e0735f0cf58a65190, }, r0a1: u384 { limb0: 0x5465b4df3f574f8ce75115cd, limb1: 0xbbaa17554362320ad4d7dbb7, limb2: 0x7801bed020c4eb0b06b8c3a5, - limb3: 0x55dab1ebabc42258823f990 + limb3: 0x55dab1ebabc42258823f990, }, r1a0: u384 { limb0: 0x168eff4cfe08a5d2480cd220, limb1: 0xfdfbc5d6539d58ae5fd2f3f0, limb2: 0x730c3716c3f8f093bc196396, - limb3: 0x11ec5e41f01d546dc82f14a9 + limb3: 0x11ec5e41f01d546dc82f14a9, }, r1a1: u384 { limb0: 0x23122e240cc2e876eb1177f4, limb1: 0x2ff2cb0192b8833c39a3f14, limb2: 0x8df40969fdcda1a427931ee3, - limb3: 0x10714f2f682bd1dd3f41759 - } + limb3: 0x10714f2f682bd1dd3f41759, + }, }, G2Line { r0a0: u384 { limb0: 0xeb732a6499363c67e23554a3, limb1: 0x4cdd42ecd8a52cdb6f9c934b, limb2: 0x67790eedc23de78c48c1386b, - limb3: 0x30d8024f42aed61c2d2748d + limb3: 0x30d8024f42aed61c2d2748d, }, r0a1: u384 { limb0: 0xfd6de8c461951483834d8358, limb1: 0x1871938e8ba214f3eb03688c, limb2: 0xf09f514cfb1eeede386e9108, - limb3: 0x1ae4fa7bbb288f14dcf1905 + limb3: 0x1ae4fa7bbb288f14dcf1905, }, r1a0: u384 { limb0: 0x7e5704e179ddff883226618, limb1: 0x944cd6a7ddc3abe547501924, limb2: 0x65f20918a39b3d50fd554db5, - limb3: 0xa5f6ffc447dd34c63d7c7ed + limb3: 0xa5f6ffc447dd34c63d7c7ed, }, r1a1: u384 { limb0: 0xa365a10339a32f4d93f34a24, limb1: 0xc7911352eea0cf23e726f314, limb2: 0xd28cf2c778e3550205e4ba3d, - limb3: 0x49718664bcc386426e22fe - } + limb3: 0x49718664bcc386426e22fe, + }, }, G2Line { r0a0: u384 { limb0: 0x9b4583c7c2eff06ad56a736a, limb1: 0x16aafa467cd25a5256429294, limb2: 0xa4c3b813887ac253e9bc4dd5, - limb3: 0x6eee2daf5b60dab9f5eb870 + limb3: 0x6eee2daf5b60dab9f5eb870, }, r0a1: u384 { limb0: 0x9444bf7e4bfe8944f3411b7e, limb1: 0xaba54fb4de33e741459d8419, limb2: 0xa2327c6e364f8783c0d5e1bb, - limb3: 0x838b6cadbc4926ff1e28231 + limb3: 0x838b6cadbc4926ff1e28231, }, r1a0: u384 { limb0: 0xc8b6a45166049617dcea7b54, limb1: 0x4ac49a392e6cf7439bc91ae1, limb2: 0xd74e10a7727f88165c078231, - limb3: 0x162f6576adad1b99778999fa + limb3: 0x162f6576adad1b99778999fa, }, r1a1: u384 { limb0: 0x75bd03c5dc8a6db2a547c786, limb1: 0x245ca34042521ea6d83ceda2, limb2: 0xcc92885b1570b94b70d80a05, - limb3: 0xb8b49d50bb600ad8d7ce9d0 - } + limb3: 0xb8b49d50bb600ad8d7ce9d0, + }, }, G2Line { r0a0: u384 { limb0: 0xe56c10fd708eba4c69c86be9, limb1: 0x47a28ca72cfe6f9c70ca8972, limb2: 0x6933ea5252a1c9ba1a14b029, - limb3: 0xad0112a4bbbe78974cf22f + limb3: 0xad0112a4bbbe78974cf22f, }, r0a1: u384 { limb0: 0xd79653f0250babd6c15550a3, limb1: 0x4fdd97d99b267a100baf5eab, limb2: 0x5dba0919fae69ccc77cc729a, - limb3: 0xfbfb0f0ef4a3dfc80f6b10 + limb3: 0xfbfb0f0ef4a3dfc80f6b10, }, r1a0: u384 { limb0: 0xdc11b768e081943936c71251, limb1: 0x8e402b0cf012643696d54eec, limb2: 0xe3a54b8bea8aa29cc92adfa3, - limb3: 0xda8bf357b7ecf5ee7e2935f + limb3: 0xda8bf357b7ecf5ee7e2935f, }, r1a1: u384 { limb0: 0xcef322bd8fd68dcf8292c80e, limb1: 0x8ae248af5d1c668e58fdcc5, limb2: 0x298acf2638b512874d35b32e, - limb3: 0x191d8257aa2319bc39753288 - } + limb3: 0x191d8257aa2319bc39753288, + }, }, G2Line { r0a0: u384 { limb0: 0xc83c67c05fbfeaefbbd5790a, limb1: 0x123a1cca4ede316a8294191e, limb2: 0x63fb9483204cb857d7463c, - limb3: 0x984ae3c2b6712fcebb6158b + limb3: 0x984ae3c2b6712fcebb6158b, }, r0a1: u384 { limb0: 0xb48a82e26de7b45ccf695c49, limb1: 0xfd69088e6325b4a59e2e3baf, limb2: 0xbc7a001c3fa6f52b1d25697e, - limb3: 0x4ff0e60086655cc572e1467 + limb3: 0x4ff0e60086655cc572e1467, }, r1a0: u384 { limb0: 0x3a0c2b22b46f25e18a89dd01, limb1: 0xa4fb3c83d574db22b6f0f2bd, limb2: 0x2a3bbdb8ad527267238eb4b5, - limb3: 0xc1632affc12f7ddc4fe9c05 + limb3: 0xc1632affc12f7ddc4fe9c05, }, r1a1: u384 { limb0: 0x7a6ccf0765a33ad6a4338e28, limb1: 0xb128bf3f00eadb3e353e99cb, limb2: 0x8345222b6d92f0e8ceffe694, - limb3: 0x13021a7c42029ef3b3a03b5b - } + limb3: 0x13021a7c42029ef3b3a03b5b, + }, }, G2Line { r0a0: u384 { limb0: 0x8b4b049da5868b96ec5ef16a, limb1: 0x8d5611c25dabe2e1e151b1a7, limb2: 0xddb71096536602ff67aef13e, - limb3: 0x195727ea0c31f99d279d2c66 + limb3: 0x195727ea0c31f99d279d2c66, }, r0a1: u384 { limb0: 0xd3e90be23a92f9b2796a042e, limb1: 0x85c1b8abb6a3db2341cbd934, limb2: 0x35f112e2a3bb74ebca814c9, - limb3: 0x11608b3602d92cd2961f734a + limb3: 0x11608b3602d92cd2961f734a, }, r1a0: u384 { limb0: 0x27ecf3c4fb84afd5ffe30e5, limb1: 0x7d3b6cadde4e3cfc2716482f, limb2: 0xf461db5c14254194af9677ad, - limb3: 0x74722715fddd1d8c8facb8e + limb3: 0x74722715fddd1d8c8facb8e, }, r1a1: u384 { limb0: 0xd794b12dc14b353bfc2efaef, limb1: 0x3ef7de5c1b936e7d05b5772c, limb2: 0x5109cd77e02b955f276af355, - limb3: 0x69e276dbbecd216f0aa3d6c - } + limb3: 0x69e276dbbecd216f0aa3d6c, + }, }, G2Line { r0a0: u384 { limb0: 0x10bc38abf4dda7f290877811, limb1: 0x90127c55e7589969a91be3ac, limb2: 0x29d96c2444ae7f01e263a0c3, - limb3: 0xf495e0c5443cde97f871315 + limb3: 0xf495e0c5443cde97f871315, }, r0a1: u384 { limb0: 0x6f2ac18b2680d1e8a605caa1, limb1: 0xb4a46aa677fb81fcbae9dbb9, limb2: 0x54e08bc2869b9a1d9a537c38, - limb3: 0x1465dd41a8a184fef79a2c1f + limb3: 0x1465dd41a8a184fef79a2c1f, }, r1a0: u384 { limb0: 0x9d53f734e25974abcfa47364, limb1: 0x9df11e087b97d3d542c984af, limb2: 0x25fab041d2456b22ec266690, - limb3: 0x495f3d7bdeb35ac71f1edb0 + limb3: 0x495f3d7bdeb35ac71f1edb0, }, r1a1: u384 { limb0: 0x887fd8b50e8827300a60f794, limb1: 0xfa5ba0761639eeb27f30bed9, limb2: 0x3fbae88761ebaedad5ddf541, - limb3: 0x55c11188a5ad9e22ab23b49 - } + limb3: 0x55c11188a5ad9e22ab23b49, + }, }, G2Line { r0a0: u384 { limb0: 0x7839770100e64978b29b5da1, limb1: 0xd1797b5709b5e941a25bd854, limb2: 0xe380c0aa684a2ef24741f60d, - limb3: 0xd793a27db3f49ebe18c4a1e + limb3: 0xd793a27db3f49ebe18c4a1e, }, r0a1: u384 { limb0: 0x559bdbe1d7eeb10a2746f1bd, limb1: 0xb9c58c75c214aab2bf45be6a, limb2: 0x9895443b8ceac7617274a4cc, - limb3: 0x8f43c50f9fe87ae296cfb2d + limb3: 0x8f43c50f9fe87ae296cfb2d, }, r1a0: u384 { limb0: 0xdda6f32b4b0b7b32d265129e, limb1: 0xe464575f3e1f24bb18636f8b, limb2: 0xb224edd6479be27e01119c05, - limb3: 0xca892cd7b21339a629ec82c + limb3: 0xca892cd7b21339a629ec82c, }, r1a1: u384 { limb0: 0xdf94aa2f2ba69324fb2ae4c5, limb1: 0x74d6e4984282ba272947e515, limb2: 0xad622ab52799cf8f5434661, - limb3: 0x14b019e003467d8befe14c7c - } + limb3: 0x14b019e003467d8befe14c7c, + }, }, G2Line { r0a0: u384 { limb0: 0xb969376bae3c9436802b382d, limb1: 0x4bb02af7cd7b5f2095de8558, limb2: 0x7e915e624ef6b238784c8ee9, - limb3: 0x5ad75d07fc6e51553e8446b + limb3: 0x5ad75d07fc6e51553e8446b, }, r0a1: u384 { limb0: 0xf2f3c721941407cd6fc65214, limb1: 0xf96f4682200bf90560f9d7d0, limb2: 0x6ff674edd3cdcebfbc6927c2, - limb3: 0x70b924a36d0d0d18d1f86c0 + limb3: 0x70b924a36d0d0d18d1f86c0, }, r1a0: u384 { limb0: 0xfa5f3d9bae88dd30a37e6ee7, limb1: 0x46acb9ec3468325eebed87f4, limb2: 0x996d6196a4f5ed86336dfe3a, - limb3: 0x15aa069b9cb15c0d9e13affd + limb3: 0x15aa069b9cb15c0d9e13affd, }, r1a1: u384 { limb0: 0xf57275082d3033d0931cd97e, limb1: 0xb5af04905693380e449363fc, limb2: 0x67cb680f814b147d1c0510c9, - limb3: 0x7960dff606f541c7946b9d - } + limb3: 0x7960dff606f541c7946b9d, + }, }, G2Line { r0a0: u384 { limb0: 0xc15b372196a4663350cd2b9, limb1: 0x2753dbf2d814a0dfa80e8275, limb2: 0xf3d176cfd4b31f6947d9bc88, - limb3: 0x17c0bb87847c506117e6cd23 + limb3: 0x17c0bb87847c506117e6cd23, }, r0a1: u384 { limb0: 0x76f4129f303039129cc79e0, limb1: 0x7eaf05f9708ca7853218d75, limb2: 0x590ed883b2ed7b5f645ff44c, - limb3: 0x1684dfe0af35fe16ba5ba930 + limb3: 0x1684dfe0af35fe16ba5ba930, }, r1a0: u384 { limb0: 0x277e726e10e54e13daa7f4b8, limb1: 0x1357f42678e08ea031bb2b12, limb2: 0xca1c568eabcf8afe53c814f7, - limb3: 0x19bc460f5cd30977d21d9739 + limb3: 0x19bc460f5cd30977d21d9739, }, r1a1: u384 { limb0: 0x33eb94313ab593654dbd54ee, limb1: 0x7c237036496ce5f8f11c17fe, limb2: 0xdfd944729987f793c15e4453, - limb3: 0xd63a6276a212ce9a1e58aa7 - } + limb3: 0xd63a6276a212ce9a1e58aa7, + }, }, G2Line { r0a0: u384 { limb0: 0xf20da79d7dfa037538abd816, limb1: 0x96c0beb5faf5af5df9b8ad6f, limb2: 0x3aa4377fa088a6cf85b99168, - limb3: 0x153bee48b03425e71179bfd3 + limb3: 0x153bee48b03425e71179bfd3, }, r0a1: u384 { limb0: 0xf5a3dc9e621f522295873202, limb1: 0xfd7f4a0f3fae36c0e07bcfb0, limb2: 0x91787b55b90027dfbba4dc47, - limb3: 0x602b94eac31f07e247331ce + limb3: 0x602b94eac31f07e247331ce, }, r1a0: u384 { limb0: 0x4d41921c8d757cb2e15c0d98, limb1: 0x3ae914662ef2442249290f10, limb2: 0xa1fb6f06697cc519f0bb38a7, - limb3: 0x2f6ddde5351135b578991f0 + limb3: 0x2f6ddde5351135b578991f0, }, r1a1: u384 { limb0: 0xc87d3c0bd12fb496ed8f5a54, limb1: 0xc3a104d91a2340a8f822da07, limb2: 0x56e3f922970841517593e69, - limb3: 0x92b551cd42df98975fce59a - } + limb3: 0x92b551cd42df98975fce59a, + }, }, G2Line { r0a0: u384 { limb0: 0xdb6c7a0774018772e50dafcc, limb1: 0xbde46cf045ab017eac2816e2, limb2: 0x824d39b935708d80ca98241c, - limb3: 0xbfabbb42779252feb5d25e5 + limb3: 0xbfabbb42779252feb5d25e5, }, r0a1: u384 { limb0: 0x788ab20840dee69cea429120, limb1: 0xa417d7d1b270d5611c01b727, limb2: 0x2b196689ca63e5a20e13badb, - limb3: 0x1091fc7332394b464cc2444c + limb3: 0x1091fc7332394b464cc2444c, }, r1a0: u384 { limb0: 0x2e9e2a6964ebf268df4932e5, limb1: 0x77632a4b8d6670e8867982ac, limb2: 0xa854b6cad13eb7b32654a369, - limb3: 0x47857d8ec55a7a26b65ed42 + limb3: 0x47857d8ec55a7a26b65ed42, }, r1a1: u384 { limb0: 0xe11be4ab63d3f43b4f493247, limb1: 0xdda4441c10bf9c3d1a7045a7, limb2: 0xaecbee2883c54e7a6ed845c9, - limb3: 0x184f1f4eb029266cab0f8a9d - } + limb3: 0x184f1f4eb029266cab0f8a9d, + }, }, G2Line { r0a0: u384 { limb0: 0xa89a525e63cee0c3dd6dcbdd, limb1: 0x260af65091e1b14cdfcd6a9b, limb2: 0x8674f3d64ab6a0dfa428a734, - limb3: 0xd83461b7d229a47477b452f + limb3: 0xd83461b7d229a47477b452f, }, r0a1: u384 { limb0: 0x4ea9d854c2d19cd6c91f75c6, limb1: 0x6faa63eeb0ea28a567141c51, limb2: 0xf32028bf055906e69704c788, - limb3: 0x161a2c2d45c521243105d3e + limb3: 0x161a2c2d45c521243105d3e, }, r1a0: u384 { limb0: 0xcc932dd5deb1d63753156319, limb1: 0x13f05a2fb2e964c1a8a2e28e, limb2: 0x5cfd3943f10bcad6ecc2ea6b, - limb3: 0x10a0f702fead13effc9e9f1c + limb3: 0x10a0f702fead13effc9e9f1c, }, r1a1: u384 { limb0: 0x856d3b6773cabc8ff27af841, limb1: 0xe7990cc9655a8869cc53dc7c, limb2: 0x3dc0945d12fc0d72f4ebd1af, - limb3: 0x18e7f2418d2abfce90cf506d - } + limb3: 0x18e7f2418d2abfce90cf506d, + }, }, G2Line { r0a0: u384 { limb0: 0xe99a02683b93ce550ef8951a, limb1: 0xa9abcbc9f1e57aac617d5a71, limb2: 0xfd2264b1427ae649f3a4e1ef, - limb3: 0x15ff7a8e11d9ae7d538a8b00 + limb3: 0x15ff7a8e11d9ae7d538a8b00, }, r0a1: u384 { limb0: 0x503500bd91432999dba8d5ce, limb1: 0xd95bddb364aa203f3840ebf3, limb2: 0x59e6dfc06d85fbf164cae37a, - limb3: 0x1382a254297b2a3c664514d1 + limb3: 0x1382a254297b2a3c664514d1, }, r1a0: u384 { limb0: 0x9097edb6dbf1b71a8c368587, limb1: 0x532fc71978fa4554bbfdd7ea, limb2: 0x5324ddb0fff76cdd1bef7534, - limb3: 0x43fed1dbcdad88e4eae01ee + limb3: 0x43fed1dbcdad88e4eae01ee, }, r1a1: u384 { limb0: 0xc635a4270f612344c7c2577c, limb1: 0xe4eb707545e699537d72d73e, limb2: 0x40574795e3c651067e4021ac, - limb3: 0x13dbaabb12a73c5d10348fda - } + limb3: 0x13dbaabb12a73c5d10348fda, + }, }, G2Line { r0a0: u384 { limb0: 0x1a2d52c61eb99a17a3be3cd9, limb1: 0x4eecc3591b88b7e445de86a3, limb2: 0xf4864a4ecffedb9825372e24, - limb3: 0x6f605dc4849a207692e010d + limb3: 0x6f605dc4849a207692e010d, }, r0a1: u384 { limb0: 0x3acd6290375e15bccbe5b23c, limb1: 0x36c7d38bd9a1a396291b0837, limb2: 0xc0dc84c282cca2fe3d70cc82, - limb3: 0x24caee93425f8b557dc23d6 + limb3: 0x24caee93425f8b557dc23d6, }, r1a0: u384 { limb0: 0x76300db4b9d505a255fff33f, limb1: 0x35af05b45d0477b7367e86c5, limb2: 0xde8815ffa8ad532cf68bd313, - limb3: 0x3054d735bb0c22331cee080 + limb3: 0x3054d735bb0c22331cee080, }, r1a1: u384 { limb0: 0xf5c2e1a9439c2a46aac504a0, limb1: 0xbb192ed1b6154a8a8759f705, limb2: 0x51314d3bdedfa5d487255b3b, - limb3: 0x4b2e182290ab34447644799 - } + limb3: 0x4b2e182290ab34447644799, + }, }, G2Line { r0a0: u384 { limb0: 0x1a96d93e90e2ff176753ab18, limb1: 0xade05825ee054ce9e6aa7652, limb2: 0xd6a9decd70aaa6b4963911ae, - limb3: 0xf299b64b98f8cbfef181bb9 + limb3: 0xf299b64b98f8cbfef181bb9, }, r0a1: u384 { limb0: 0x1f4b4e96e678e91f5136b57, limb1: 0x38f0a1243e66287b99527276, limb2: 0x35f3c0d6c73a9c5df947c52b, - limb3: 0xbd66bc9ceb8ca2f089cd853 + limb3: 0xbd66bc9ceb8ca2f089cd853, }, r1a0: u384 { limb0: 0x83d71050041829043e791eff, limb1: 0xc3e374927bd34a428d5e8b71, limb2: 0xba4af9bfd6eef2f2f46d4ac1, - limb3: 0x3f3eed8249fd695c1e30a35 + limb3: 0x3f3eed8249fd695c1e30a35, }, r1a1: u384 { limb0: 0x7a118b9c162bdc488e1987d8, limb1: 0x8d7006d37a064b13604cc87f, limb2: 0x9aa2b399b83e8ebe5e4485eb, - limb3: 0x9507e154475bf5fa909df2 - } + limb3: 0x9507e154475bf5fa909df2, + }, }, G2Line { r0a0: u384 { limb0: 0xaaad16d27f79a631ad790eef, limb1: 0xae1f9bbc2c4ec614b31501a5, limb2: 0x76c9cba7d0b6ea3af8908f54, - limb3: 0x8cb7a6a8e9114893f6644ff + limb3: 0x8cb7a6a8e9114893f6644ff, }, r0a1: u384 { limb0: 0xb29d1b611350cf14a1ff5b64, limb1: 0xc4447fdb999569b727058ef5, limb2: 0xfda61b5986ff6f5d9f152b51, - limb3: 0x23d1e1edcc9d6ebe666be7c + limb3: 0x23d1e1edcc9d6ebe666be7c, }, r1a0: u384 { limb0: 0x3d4f1112105d01b9b097a930, limb1: 0x1e91e032d07d86e09c81fc2c, limb2: 0xa3f3ef90b2cf32ff4d39187b, - limb3: 0xc7030a9f46cddfe8fbe6edb + limb3: 0xc7030a9f46cddfe8fbe6edb, }, r1a1: u384 { limb0: 0xd5d65ce0b325226fb72dc92b, limb1: 0x6e31b2b7f19c109c18fbd01b, limb2: 0xee8f8e11ae8ac7ab0576e625, - limb3: 0x365346e2cd8b13c2139031c - } + limb3: 0x365346e2cd8b13c2139031c, + }, }, G2Line { r0a0: u384 { limb0: 0x958c5cbc7b7c5871f23dfcf, limb1: 0x7854e164fda1398cfd8ea3a4, limb2: 0x75c6a007ac2a2dad8ae4fceb, - limb3: 0x1366af4f5f203de7130aac6b + limb3: 0x1366af4f5f203de7130aac6b, }, r0a1: u384 { limb0: 0x735cb088c084a95da948d7b6, limb1: 0xfb4720c591f19db6fa2d240d, limb2: 0x1c1e1ba0f8cb09e9c74012e0, - limb3: 0xebcb762ec15441bbe5e90f + limb3: 0xebcb762ec15441bbe5e90f, }, r1a0: u384 { limb0: 0xfa515cf322fa715c42dd2f41, limb1: 0xd5aa8484650615117c7b96a0, limb2: 0x6a6be8954ff02d512c49b618, - limb3: 0x192a8d310a23babfb03ce402 + limb3: 0x192a8d310a23babfb03ce402, }, r1a1: u384 { limb0: 0x422c26ea60eb07cc4e36501, limb1: 0x517f2958deb48911f0a19c1f, limb2: 0x89112f6559c627eb9b401955, - limb3: 0x132d0703aac38ddcd55e349f - } + limb3: 0x132d0703aac38ddcd55e349f, + }, }, G2Line { r0a0: u384 { limb0: 0x15699baf9687ab96747973ac, limb1: 0x45d8e4b0b8dd9546b5c2160e, limb2: 0x97ef45aa8fc2ea6973fb25f0, - limb3: 0xd22da827adc6fd4557cead9 + limb3: 0xd22da827adc6fd4557cead9, }, r0a1: u384 { limb0: 0x85e49ef128bb2219b1f07ac7, limb1: 0x295e9710438a530329d7e3b, limb2: 0xa3aa3e7050cc9d1b3bdcc481, - limb3: 0x95f4b12ee5a15214982e790 + limb3: 0x95f4b12ee5a15214982e790, }, r1a0: u384 { limb0: 0x8699fce7031397e3b1a37ca4, limb1: 0x43de46654e0285505fd46631, limb2: 0x801c0f81eb7d3e37e2800f96, - limb3: 0xf3b98ea40864c154194cf17 + limb3: 0xf3b98ea40864c154194cf17, }, r1a1: u384 { limb0: 0xf3890e04481b23922bebe93e, limb1: 0x5f4a9113311cf1fa14c46464, limb2: 0xc951bddb7ac353270c243e05, - limb3: 0x17fe34cd769864cf6eb82f26 - } + limb3: 0x17fe34cd769864cf6eb82f26, + }, }, G2Line { r0a0: u384 { limb0: 0x5b8ddb5ef759c26463a5c2d5, limb1: 0x23dfe2a291f1c6d3e701c5f1, limb2: 0xbde479c12792bc7c7ba6f007, - limb3: 0x53d3da343236190fbd3d670 + limb3: 0x53d3da343236190fbd3d670, }, r0a1: u384 { limb0: 0x2b975b85fccd8c75e7b35e71, limb1: 0xf35a56815cc0008976b199cf, limb2: 0x9db07692a2a10c279318a5e5, - limb3: 0xfefeb9821fedbb7a8d96405 + limb3: 0xfefeb9821fedbb7a8d96405, }, r1a0: u384 { limb0: 0x89123d390cc0b45334219d5c, limb1: 0x8580bdc8b5a9431143616a9f, limb2: 0x842a78eb06dea913f0ddc70b, - limb3: 0x14c94d04e4c3db61ccc9cb3e + limb3: 0x14c94d04e4c3db61ccc9cb3e, }, r1a1: u384 { limb0: 0xfb325786a902cd41972616cd, limb1: 0xaf06f0ef70a3d64f48f86731, limb2: 0xcfd0ca15c2b367e8c5e13162, - limb3: 0x2b733169837e8718b14ad9e - } + limb3: 0x2b733169837e8718b14ad9e, + }, }, G2Line { r0a0: u384 { limb0: 0x1060e79efcf4fe162043c999, limb1: 0xf9eb475ab49e172512cb8d8b, limb2: 0x2c62b0aa1a64b223b7de2573, - limb3: 0x1021b449fce423340b5d8bff + limb3: 0x1021b449fce423340b5d8bff, }, r0a1: u384 { limb0: 0x560013da8e110b1f16208fc7, limb1: 0xb19b49f510c03417ab3a3cc, limb2: 0x93468e27a99ea01b543b9de4, - limb3: 0xf5a062536c69ebccb457f7a + limb3: 0xf5a062536c69ebccb457f7a, }, r1a0: u384 { limb0: 0x7e8393bbf3cbe32958ca97d, limb1: 0x3bd384fe8c76515821397c19, limb2: 0x480d7ef46bbcd067589b513a, - limb3: 0x466d9efc0da462be4e956e7 + limb3: 0x466d9efc0da462be4e956e7, }, r1a1: u384 { limb0: 0xbb73b034d01cd3a7fdb30d5e, limb1: 0x710f1a8bee89f88df336c5b6, limb2: 0x4b51ff95ebc39c295bd392da, - limb3: 0x23be92062c2f86a8fe77642 - } + limb3: 0x23be92062c2f86a8fe77642, + }, }, G2Line { r0a0: u384 { limb0: 0x2c13a83b4df1f9225a2b6ac4, limb1: 0x853239dcc27a4a3006c48823, limb2: 0xb7c61b932f7131b1a9e9cfe9, - limb3: 0xc235c22bed928a49c57d91 + limb3: 0xc235c22bed928a49c57d91, }, r0a1: u384 { limb0: 0x2ad555d3488695aabbdc2bfa, limb1: 0x36aeaecc0bc432b07fdde898, limb2: 0xc181cebea90ec0398d441027, - limb3: 0x2e4624ac3edf8e0004356d2 + limb3: 0x2e4624ac3edf8e0004356d2, }, r1a0: u384 { limb0: 0x115f2c7dd57e1f443abdcb76, limb1: 0x2e6ce3e4e2decdc9746d55aa, limb2: 0xf0040696fee584095938d6c3, - limb3: 0x97772521a37efc5538534aa + limb3: 0x97772521a37efc5538534aa, }, r1a1: u384 { limb0: 0xe2910d7b44ed8f54620b8dd5, limb1: 0x9d8b8ef67190e2769539ee1f, limb2: 0xdeb8a208bbe43737d771940d, - limb3: 0x1919f1a600fb184dab5ad252 - } + limb3: 0x1919f1a600fb184dab5ad252, + }, }, G2Line { r0a0: u384 { limb0: 0x9d0d7048ae34c4d5fd999612, limb1: 0x3cf823d17229c90d32e33935, limb2: 0xe549cdf7a4a7ecc98e34136d, - limb3: 0xedebc96cb4b5187ae9eb3b1 + limb3: 0xedebc96cb4b5187ae9eb3b1, }, r0a1: u384 { limb0: 0x6fa66fc33a35822ad71cd240, limb1: 0x665c350e7ae9ad6ec24f19bc, limb2: 0xb442d0f327ec882e35df22bc, - limb3: 0x16252435446b7d36124af764 + limb3: 0x16252435446b7d36124af764, }, r1a0: u384 { limb0: 0x83640672a553a4cd021ba5b3, limb1: 0x44865aa1ee3d773c912611d2, limb2: 0x740ba61daae6eecae5e97813, - limb3: 0x83def394c91369300fe0c8b + limb3: 0x83def394c91369300fe0c8b, }, r1a1: u384 { limb0: 0x3df995f1c2ed04d80229d6b, limb1: 0xa51edc17429362d673cb1982, limb2: 0x5b44377d34824757730568f2, - limb3: 0xab03d8687d1f4d4a6ad051d - } + limb3: 0xab03d8687d1f4d4a6ad051d, + }, }, G2Line { r0a0: u384 { limb0: 0x6124886478f2cc18ac7a2e2b, limb1: 0xee512c975e35cedc82c7d7ac, limb2: 0xda37b3d1093cef0103927f42, - limb3: 0x59bf82d1ceccaf2aace94c + limb3: 0x59bf82d1ceccaf2aace94c, }, r0a1: u384 { limb0: 0x940fedecedd43793654043ca, limb1: 0xe942254619040c18fec28670, limb2: 0x1a38d414bae72d7c18228ee4, - limb3: 0x5a0cae960c221324c382272 + limb3: 0x5a0cae960c221324c382272, }, r1a0: u384 { limb0: 0x5243bdae31b236a6db41a014, limb1: 0x446200b5b60cf3a1f7ddecd0, limb2: 0x8199c68b061ab197ff4f291e, - limb3: 0x132024182ad8ed489493e7c1 + limb3: 0x132024182ad8ed489493e7c1, }, r1a1: u384 { limb0: 0x75b6b4b39dfd6310bbe2bbfe, limb1: 0xc24329c463cf2dce4a0f2b1e, limb2: 0x6351f8b4dd6b98d8dd08571f, - limb3: 0xb7e166947856100686caba7 - } + limb3: 0xb7e166947856100686caba7, + }, }, G2Line { r0a0: u384 { limb0: 0x272c89200c794cd147e788e0, limb1: 0x9fb565bb136cbb8045af5f87, limb2: 0x2069950ae2ba4f18fba1f9fc, - limb3: 0x177b5c95ff2830d6599abe46 + limb3: 0x177b5c95ff2830d6599abe46, }, r0a1: u384 { limb0: 0xe5c6a8868f65fdb92938a0df, limb1: 0xaf9e901c048eba76cc3ff87e, limb2: 0xbb4bca9f829983ebcf7b0bf7, - limb3: 0x10225e60b74938217982949d + limb3: 0x10225e60b74938217982949d, }, r1a0: u384 { limb0: 0x59223b55e73462497ab88909, limb1: 0xbf85c496ae8b9fda76002199, limb2: 0x62a031731b66c76791e92203, - limb3: 0x171879670265e69690032708 + limb3: 0x171879670265e69690032708, }, r1a1: u384 { limb0: 0x8cf19356fa7fde4256452335, limb1: 0x1b1278bec957e29ee831ae02, limb2: 0x5502af18627227d6b332cbc4, - limb3: 0xcdc76b668164420b81016aa - } + limb3: 0xcdc76b668164420b81016aa, + }, }, G2Line { r0a0: u384 { limb0: 0x98b10da09c71a6b94aad296e, limb1: 0x97a8da4b49e9fc2146de78cb, limb2: 0xa2100c253b27bc556c580b05, - limb3: 0xe1e69f673f88fb5aa0bc47c + limb3: 0xe1e69f673f88fb5aa0bc47c, }, r0a1: u384 { limb0: 0xeece167c5aa9aedda2c67b05, limb1: 0x91ffc99bde37b51ebb425d99, limb2: 0x6586a39a7d8e9fd43508c82c, - limb3: 0x199a9fb2588fc41c2870dc15 + limb3: 0x199a9fb2588fc41c2870dc15, }, r1a0: u384 { limb0: 0x69e49f06891dba8debf248eb, limb1: 0x6ed2813541abd5529f4e3c13, limb2: 0x38db1dcc2959a7e5e9a38356, - limb3: 0xe38a613edc814d28ff5c13b + limb3: 0xe38a613edc814d28ff5c13b, }, r1a1: u384 { limb0: 0x82a33409cbff8d789eed7d49, limb1: 0x25e41243c614be1b6527905, limb2: 0x9440ecdaa3e3636a114ebf8, - limb3: 0x188e41337ca6ebcbb51cfbaa - } + limb3: 0x188e41337ca6ebcbb51cfbaa, + }, }, G2Line { r0a0: u384 { limb0: 0x4fea2f2144c44633b936b99, limb1: 0xdfbe01d451c34a28a5d884ba, limb2: 0x6356b21e2e72b3a569637b53, - limb3: 0x17535b31f03f5fa8ce0bbf9e + limb3: 0x17535b31f03f5fa8ce0bbf9e, }, r0a1: u384 { limb0: 0xe0571a3149f69dca26a5436c, limb1: 0x403d0b7768cb8d00af7bcf12, limb2: 0x42f0dfba12b6b3254ec517f, - limb3: 0x19795ebfcb47ee3183979c02 + limb3: 0x19795ebfcb47ee3183979c02, }, r1a0: u384 { limb0: 0xf21e9a787a07fbeb68fdd736, limb1: 0xc934d940ba208f191ab26d3c, limb2: 0xaefc28a158eeec24acadaf8b, - limb3: 0x14403ea146584a7812452cd8 + limb3: 0x14403ea146584a7812452cd8, }, r1a1: u384 { limb0: 0xf2af0115631f55c3a44a5f54, limb1: 0xf9411911e95c09167f70d836, limb2: 0xd44bc506063a460a978a380e, - limb3: 0x180d8392357243d607d78851 - } + limb3: 0x180d8392357243d607d78851, + }, }, G2Line { r0a0: u384 { limb0: 0x9fdd8b5b697f5dd293e1a76b, limb1: 0xa96d6505267352e6f704935c, limb2: 0xe30162de2b8b9f5fba1bd4bb, - limb3: 0x8e28439fb40933f21df4125 + limb3: 0x8e28439fb40933f21df4125, }, r0a1: u384 { limb0: 0x9f09979d8fc693b5ed13014f, limb1: 0xff6e48f2f458df94eec90781, limb2: 0x19298b6ba3353dca1030a0ca, - limb3: 0x1516a205be895cc94ddf856f + limb3: 0x1516a205be895cc94ddf856f, }, r1a0: u384 { limb0: 0xc4059e6b093b22c8e1bde28, limb1: 0xb7225ce7a598e40389484960, limb2: 0x9681cc18d063610fa821bc03, - limb3: 0xb32e29276eeb86d761513e7 + limb3: 0xb32e29276eeb86d761513e7, }, r1a1: u384 { limb0: 0xabf2383d22bb76c149aa2ad7, limb1: 0xab677034d9b95445962984ac, limb2: 0x844d69ca653908adca99d46, - limb3: 0x1561b679e85c3aab327e6b35 - } + limb3: 0x1561b679e85c3aab327e6b35, + }, }, G2Line { r0a0: u384 { limb0: 0xc6b6d49d468231b1e43957ee, limb1: 0xb2dd14e7a0ef4f763a11ba9e, limb2: 0x607166185e56a158247fb57e, - limb3: 0xdaca26b0975b9b16f9dd8e0 + limb3: 0xdaca26b0975b9b16f9dd8e0, }, r0a1: u384 { limb0: 0x755e376bde1d6457dc11a98c, limb1: 0x461e42cfd40b3b4f720f2d6d, limb2: 0xcb98f9df907653951d3552e5, - limb3: 0x1622b7062c0ff1f549f2056c + limb3: 0x1622b7062c0ff1f549f2056c, }, r1a0: u384 { limb0: 0xddd74d89af8507950ad474c3, limb1: 0xa0d1d6eab751a63a4741aa67, limb2: 0x809864aa0756c0345ad8f95b, - limb3: 0x19ad2fb756ef19d153debbc3 + limb3: 0x19ad2fb756ef19d153debbc3, }, r1a1: u384 { limb0: 0xe4c04b7d418da7dc521db68c, limb1: 0xd68db67480f415c5c1f1540, limb2: 0xcc6c3f3571230f97af5fae46, - limb3: 0x6a3947541daa68ecc643fb2 - } + limb3: 0x6a3947541daa68ecc643fb2, + }, }, G2Line { r0a0: u384 { limb0: 0xadafaa267f908d69386af731, limb1: 0xde5cd6d7f9c76ebfd7ed1503, limb2: 0xb90709cac4c5e37885268f57, - limb3: 0x44c7cae9f5809069081870a + limb3: 0x44c7cae9f5809069081870a, }, r0a1: u384 { limb0: 0x8e2baef46b7310052faa7b62, limb1: 0x1d5ecd4dccacb207952f4c3d, limb2: 0x1c4abff0daf903bac4bea1e9, - limb3: 0xe17badea1b419cb261ca9c9 + limb3: 0xe17badea1b419cb261ca9c9, }, r1a0: u384 { limb0: 0xaa232a7c023966b88ef26311, limb1: 0x159b7596772d43113ef71fab, limb2: 0xb113647f7765b991d9915c2a, - limb3: 0x17e99f889166a2f7932cf383 + limb3: 0x17e99f889166a2f7932cf383, }, r1a1: u384 { limb0: 0x6f0711a2f3f758f1c7529ebc, limb1: 0x1af6895cfc3465f18ba190ce, limb2: 0xcf03b4526ccac420123fd885, - limb3: 0x16c791f98c5064fad5d87d11 - } + limb3: 0x16c791f98c5064fad5d87d11, + }, }, G2Line { r0a0: u384 { limb0: 0x95bc3acd1dbcd08d20f99a9a, limb1: 0x5e451756a929b6144bc485ba, limb2: 0xae9c055718137232e71b8e7f, - limb3: 0x1577307f04a2a6802d0de028 + limb3: 0x1577307f04a2a6802d0de028, }, r0a1: u384 { limb0: 0x5c8f20f421b04157a09f04c6, limb1: 0x210aa23e578f87e9bbd50108, limb2: 0xfa44a24dba5f661ffe0372c6, - limb3: 0xde501b7b4a7c497dbae0723 + limb3: 0xde501b7b4a7c497dbae0723, }, r1a0: u384 { limb0: 0x73ed700382051ae7b1db6bb6, limb1: 0xc50ddff17b0556bd5621aa3c, limb2: 0x122d0c116f51709bdba0a8fe, - limb3: 0x138c7cb7c73ceb6fd3b24232 + limb3: 0x138c7cb7c73ceb6fd3b24232, }, r1a1: u384 { limb0: 0x8cec31b5c5ea717895857b08, limb1: 0x7b5be6faf88ac2fb624b9489, limb2: 0x4cde2e36d0606a524b9afcac, - limb3: 0xfb04201af23031e937f87da - } + limb3: 0xfb04201af23031e937f87da, + }, }, G2Line { r0a0: u384 { limb0: 0x7eef546a9a54ed933283dc32, limb1: 0x2f958ff1bd33ae205359ba45, limb2: 0x4beda973ca3e41934d0945d1, - limb3: 0x16c93c9ac9718722abaea94f + limb3: 0x16c93c9ac9718722abaea94f, }, r0a1: u384 { limb0: 0x10b28f7ddeb274f228c31e62, limb1: 0x6223c0a397b6165eab1d4795, limb2: 0xde245ad6269a80313be23b84, - limb3: 0x14dad34f376675fa17159b1e + limb3: 0x14dad34f376675fa17159b1e, }, r1a0: u384 { limb0: 0x17c7c88c61161d6435c5daa5, limb1: 0xd0aac2f4bc18707213a80c1e, limb2: 0x492ae4a8c44b4a1791fecf07, - limb3: 0x9fde416d1ce1461b898b530 + limb3: 0x9fde416d1ce1461b898b530, }, r1a1: u384 { limb0: 0x5924e09aaff024aad86c2bb3, limb1: 0x45f116cb413b940c0c8ad68a, limb2: 0x3023488276dfbc1577893256, - limb3: 0xebcd32018261bf6cee2aa4e - } + limb3: 0xebcd32018261bf6cee2aa4e, + }, }, G2Line { r0a0: u384 { limb0: 0x1f72ae56a82c6deeffd5e12d, limb1: 0x42a8fe11f639f0f4769ca2de, limb2: 0xa839e74b5db0d4d96a9c09d2, - limb3: 0x21bb0fe1fde89edd58facdd + limb3: 0x21bb0fe1fde89edd58facdd, }, r0a1: u384 { limb0: 0x9a65ebb34b3cc95b6448d811, limb1: 0xa91267c18e68b973b7c7b595, limb2: 0x92ae1415b493a4822fce651c, - limb3: 0x5a83f6968dee7ca53037a22 + limb3: 0x5a83f6968dee7ca53037a22, }, r1a0: u384 { limb0: 0xae4501a657e9e2aa7fb385ce, limb1: 0xdff063e0d0c3db964661e8d2, limb2: 0xd96450190095ea74c7c47860, - limb3: 0x18c0ee838f14d716aef67921 + limb3: 0x18c0ee838f14d716aef67921, }, r1a1: u384 { limb0: 0xcc6fd08a5c7a625108edde7e, limb1: 0x4877444b75cfadc89c7cc80d, limb2: 0x78df79f08842728a8dfe9eef, - limb3: 0x179219c982b34ce20d260115 - } + limb3: 0x179219c982b34ce20d260115, + }, }, G2Line { r0a0: u384 { limb0: 0x29ad362978e21398eebf795f, limb1: 0x51fe78412ed406b6e706ff2b, limb2: 0x5397ad462a025210bb36aa2f, - limb3: 0xfe9afdf4aef4daac591fa2b + limb3: 0xfe9afdf4aef4daac591fa2b, }, r0a1: u384 { limb0: 0x516c76de17f0d6ea63f796b, limb1: 0xda055a6f42a65b6645b58a87, limb2: 0xfca5488873cbdeb4c734ba27, - limb3: 0x114d159710178f068e890c2c + limb3: 0x114d159710178f068e890c2c, }, r1a0: u384 { limb0: 0xb7d1c81e239246bc39e20d97, limb1: 0x1ab04e9938568f66fd85eb85, limb2: 0xf6d44deb3d0a82fd50819060, - limb3: 0x104438b881ec394d9fd92cab + limb3: 0x104438b881ec394d9fd92cab, }, r1a1: u384 { limb0: 0x80b68cc97de83bd32e36ddd4, limb1: 0xd5f6fa44b2df0779aa536193, limb2: 0xaf629ece4defcbce85510ab6, - limb3: 0x84b0d66102fdc2869a09a84 - } + limb3: 0x84b0d66102fdc2869a09a84, + }, }, G2Line { r0a0: u384 { limb0: 0xea8a49cc987d661291e12693, limb1: 0x59b450127a0d913626c58776, limb2: 0xe7f24df1ca086010b7d01105, - limb3: 0x867e8ea5e54d79ae2a6d00b + limb3: 0x867e8ea5e54d79ae2a6d00b, }, r0a1: u384 { limb0: 0xfd112f0bcf025150b41a701a, limb1: 0xbce62d6eb125fc95d7038ee6, limb2: 0x7db90f26f2784e7a8424f024, - limb3: 0x1397bf8e16134755bf1d3968 + limb3: 0x1397bf8e16134755bf1d3968, }, r1a0: u384 { limb0: 0x36038d3443ab41bd2af0e3b5, limb1: 0xba741669e71f7b571586f409, limb2: 0x4140f0716ba60a7d7a477004, - limb3: 0x16dbd6d7aea80193167b878 + limb3: 0x16dbd6d7aea80193167b878, }, r1a1: u384 { limb0: 0xc8dd57a935f217809eee1de0, limb1: 0x937aadaa4a4760805e491936, limb2: 0x24c3e76750bb6ac77ca7e209, - limb3: 0x30777905eb690b8538c4ac7 - } + limb3: 0x30777905eb690b8538c4ac7, + }, }, G2Line { r0a0: u384 { limb0: 0x902aac58eb96caaff71b582f, limb1: 0xf52a4771f65469ba56bc0662, limb2: 0x5895a8890090eab8c1f7b798, - limb3: 0x8a229ff1c75c7a484fd234 + limb3: 0x8a229ff1c75c7a484fd234, }, r0a1: u384 { limb0: 0xfa7ef9a4ab063b7afbf4d128, limb1: 0x9fb547747056804a9fa54cfc, limb2: 0xc5aac2c5077de8b2bd37f33f, - limb3: 0x18d0fc99a4822e514913d06e + limb3: 0x18d0fc99a4822e514913d06e, }, r1a0: u384 { limb0: 0x2762d0d600884766a5a5a464, limb1: 0x637c81f8258dc8da3a25faa2, limb2: 0x9a70667726b3d5fad2f61ddd, - limb3: 0x1632e5528689601952f5c248 + limb3: 0x1632e5528689601952f5c248, }, r1a1: u384 { limb0: 0x41172f827c65f28e7f13f0c5, limb1: 0xc768ca9c3948f7835a9850df, limb2: 0x92f4cc677df919cda4ed58e8, - limb3: 0x845e207a60af0762fda45c4 - } + limb3: 0x845e207a60af0762fda45c4, + }, }, G2Line { r0a0: u384 { limb0: 0xbd18c8928d23dd0e0f2161e0, limb1: 0x4e33b40902738785b26b6e74, limb2: 0xb623fecc05d23249eb4047dc, - limb3: 0x3ff9af12486b7bd8d629796 + limb3: 0x3ff9af12486b7bd8d629796, }, r0a1: u384 { limb0: 0xd0365626609ed6bec907d385, limb1: 0x98b32fc6ce83cc620c19bd88, limb2: 0x2c5c79d2c6332d65dab98ac9, - limb3: 0x51da1c5a7d8e3a9787b652c + limb3: 0x51da1c5a7d8e3a9787b652c, }, r1a0: u384 { limb0: 0x5f028cc4f94dd08ee4a357de, limb1: 0x4f345e1d7451ef79a178e4fe, limb2: 0x2ca907f6249e45a43f481b5b, - limb3: 0xc8244f7e7b0499edd3368be + limb3: 0xc8244f7e7b0499edd3368be, }, r1a1: u384 { limb0: 0xbff4a6495199c8b9599d7ab7, limb1: 0x2ac3014911235d9c51ffeea0, limb2: 0xfbddc867354278e4e8830de6, - limb3: 0x121714d1f2e092c7c5104773 - } + limb3: 0x121714d1f2e092c7c5104773, + }, }, G2Line { r0a0: u384 { limb0: 0xa6cc97b7a0910742e374ec23, limb1: 0x5301b521491e28115a8e2e0c, limb2: 0x5eeff0173fc99d045f5e5baf, - limb3: 0x9aa791c4ecab1333ab9eb68 + limb3: 0x9aa791c4ecab1333ab9eb68, }, r0a1: u384 { limb0: 0x2b53e7d481a30cc5c1356af6, limb1: 0xa777d9d25aeedc6628e59ef, limb2: 0xca9abd9ce059277e05864570, - limb3: 0x178341ebb6ad736c0c8c8c1 + limb3: 0x178341ebb6ad736c0c8c8c1, }, r1a0: u384 { limb0: 0x493ad16ef3443414c2db3cf1, limb1: 0xa69a0458d57d548043b98070, limb2: 0x54556de9501fab02db7f5670, - limb3: 0x6567dbc2c7bbfa7c52b6572 + limb3: 0x6567dbc2c7bbfa7c52b6572, }, r1a1: u384 { limb0: 0x8dac714d502b1c67d8af7a3d, limb1: 0xf8aaedb3552ea20245b3a60a, limb2: 0x1ff0389d849cc39852c42cca, - limb3: 0x1047890716eba58cb7b620ec - } + limb3: 0x1047890716eba58cb7b620ec, + }, }, G2Line { r0a0: u384 { limb0: 0x62089c2d7ed144e434b6ba3e, limb1: 0x84b118ee4fd2d64ddca1dac0, limb2: 0x4ec4f1cf523c4ce8b58f70df, - limb3: 0x53bbf9cfe4e8ff379ea2186 + limb3: 0x53bbf9cfe4e8ff379ea2186, }, r0a1: u384 { limb0: 0xf057ecd0e195b9bdc80eb0af, limb1: 0x780a1465194b6e1eba5abbbb, limb2: 0x78ee79159a58965d1df84893, - limb3: 0x19d2a085636fabbb4f34cf2c + limb3: 0x19d2a085636fabbb4f34cf2c, }, r1a0: u384 { limb0: 0x53bbfc51a06f387be3a3af04, limb1: 0x3d1a72124a1db427822d3c7a, limb2: 0x569b9d8cfb866f877c80fa49, - limb3: 0x1a4182a17dd9e73c7c53e2a + limb3: 0x1a4182a17dd9e73c7c53e2a, }, r1a1: u384 { limb0: 0x14fcbb338803b8fa47981366, limb1: 0xb291b4889847590e43766734, limb2: 0xc530cb073dc91c0e32ff33f, - limb3: 0xfdfbe7ecce4161a97db358a - } + limb3: 0xfdfbe7ecce4161a97db358a, + }, }, G2Line { r0a0: u384 { limb0: 0x1ea761bed489d2e31522504b, limb1: 0xcd1ca1a1223df0206ae0add2, limb2: 0xaf38be32d1a2709bd4ac44fb, - limb3: 0x47834fc51a88de93531b9e4 + limb3: 0x47834fc51a88de93531b9e4, }, r0a1: u384 { limb0: 0x9e440c1d6d856e7a6720316, limb1: 0x9a5d7d5c3c7e8587d4b942c6, limb2: 0xc351ea2e7f4c67106109076b, - limb3: 0x9065d13cc71103c6d57aa42 + limb3: 0x9065d13cc71103c6d57aa42, }, r1a0: u384 { limb0: 0x28c6b55678da94c56a6dece4, limb1: 0xb17ca771ad0162f5f5b48ec7, limb2: 0xd80695da0e398b5fcafd78ca, - limb3: 0x37d0e245a24e013b08ff5a1 + limb3: 0x37d0e245a24e013b08ff5a1, }, r1a1: u384 { limb0: 0x27a8692228777c9cc1d5b2a4, limb1: 0xb9d28ac20ccc9ea55bef7dcf, limb2: 0xd8500eae05a3dee5c9a15c7a, - limb3: 0x613266a37ecd23f4cd13600 - } + limb3: 0x613266a37ecd23f4cd13600, + }, }, G2Line { r0a0: u384 { limb0: 0x4763fa5ed823135887ccad53, limb1: 0xa72b8af90608ac76465daf3e, limb2: 0x26c8021436ce4e7c3dc2aa20, - limb3: 0x78b1a8ddbcd83cf99e263e + limb3: 0x78b1a8ddbcd83cf99e263e, }, r0a1: u384 { limb0: 0x7d3c32317a31685cfb3fb480, limb1: 0x888167b668356255ef02a522, limb2: 0x1d64fda1200658f6a768b519, - limb3: 0xfae2c6af3287eed69729472 + limb3: 0xfae2c6af3287eed69729472, }, r1a0: u384 { limb0: 0x1d50b4a53487ce9e33837523, limb1: 0xab36376a39c01aa0bef902ae, limb2: 0xd8c90bd7ba560e674a8b2b1b, - limb3: 0x18d5a3016ae6c6d5297778c8 + limb3: 0x18d5a3016ae6c6d5297778c8, }, r1a1: u384 { limb0: 0xed7b19829e38ebed49ae2b44, limb1: 0x832839564a48e64c2c12b2b9, limb2: 0xc8fa7ef5ecb2e531a2e57171, - limb3: 0xf4a1e3eeacc2e423bace47f - } + limb3: 0xf4a1e3eeacc2e423bace47f, + }, }, G2Line { r0a0: u384 { limb0: 0x580b8cc14b716134c2410b38, limb1: 0x10eb555a6e55e5d519da0d69, limb2: 0xe6e6910d0d4b80539f2711b6, - limb3: 0x47e19418f8c84da6011a6e6 + limb3: 0x47e19418f8c84da6011a6e6, }, r0a1: u384 { limb0: 0xa7613cbb9a679564298d9bae, limb1: 0xb4900e0c9f280703f5f8ea54, limb2: 0x1e08087fc2448bb3da053fc3, - limb3: 0x7c31e87bc79d00e9d696b9d + limb3: 0x7c31e87bc79d00e9d696b9d, }, r1a0: u384 { limb0: 0x98e919832044c40fac742092, limb1: 0x18bfae31c275cd18fe4a4ea, limb2: 0xdc9125e5ee77ab53aa5fe810, - limb3: 0xcc698e873e9ca14fbcff1c8 + limb3: 0xcc698e873e9ca14fbcff1c8, }, r1a1: u384 { limb0: 0x50e908c95ab9d2feb4dcb224, limb1: 0x4cfe3ce2d54166b89c4f6d8b, limb2: 0xd83d839665b22b27b714b166, - limb3: 0x16f25abdf39f32a98af41af6 - } + limb3: 0x16f25abdf39f32a98af41af6, + }, }, G2Line { r0a0: u384 { limb0: 0x28d123bd987516edde7b9220, limb1: 0xd8e4e7ea988137932087a426, limb2: 0xc7f4cd3fd9a8199e129ea3cd, - limb3: 0x3900d505d0369cd906b0458 + limb3: 0x3900d505d0369cd906b0458, }, r0a1: u384 { limb0: 0x847f555fd20ab0d4b1db5335, limb1: 0x6d65d431aa3b878774d6583e, limb2: 0xca390d2b5120becbe4beb8b2, - limb3: 0x11d3a19b84deaab4cc0e6882 + limb3: 0x11d3a19b84deaab4cc0e6882, }, r1a0: u384 { limb0: 0x9637fa3606d4f84648ecc548, limb1: 0xce153c564c7d59efae1a1dde, limb2: 0xfc93d2bb65e106476e20da9c, - limb3: 0x2e22460d6878c49bd53a592 + limb3: 0x2e22460d6878c49bd53a592, }, r1a1: u384 { limb0: 0x51b01e1ab106d9b94c81ba1e, limb1: 0xbe3d4cec2c136b22814c1e82, limb2: 0x7bb554d64c3153a281cca9bb, - limb3: 0xc96ae7112c4fcbbec9b8aa3 - } + limb3: 0xc96ae7112c4fcbbec9b8aa3, + }, }, G2Line { r0a0: u384 { limb0: 0x21718b60fc473e716eafc85b, limb1: 0x9d795b3e5f132e6b28bd1420, limb2: 0x230c617a1f1939de5e14916e, - limb3: 0xd6e5a17494eef0f6f5292a9 + limb3: 0xd6e5a17494eef0f6f5292a9, }, r0a1: u384 { limb0: 0x4df092ad3168aa7309a0f840, limb1: 0x3684716b180e99dba33d814b, limb2: 0x8da65bf6335ef5d5334bbcc, - limb3: 0x32e9c79961176987a08344a + limb3: 0x32e9c79961176987a08344a, }, r1a0: u384 { limb0: 0xc1fbf2667c5fa7319ce4a16, limb1: 0x68f6714721cc5ca5b7c73ef1, limb2: 0x83d080569297130b048d4121, - limb3: 0x17bc92b9041c97dfaec6b1ab + limb3: 0x17bc92b9041c97dfaec6b1ab, }, r1a1: u384 { limb0: 0xa79cd7182a1acb1e6f50dc5a, limb1: 0x2c6556f9e127fbcc317c835d, limb2: 0x7999e470d6e66d61ef6794ec, - limb3: 0xb0d35668e07a3c21ece5b1f - } + limb3: 0xb0d35668e07a3c21ece5b1f, + }, }, G2Line { r0a0: u384 { limb0: 0x5dfbb6733b7bae2cd8fe7e68, limb1: 0xfad07703ac888a36a918449b, limb2: 0xb0dfe86a8eda68e069b4b18d, - limb3: 0xff9d3280ea0ae2bc1a16bf9 + limb3: 0xff9d3280ea0ae2bc1a16bf9, }, r0a1: u384 { limb0: 0xec78a036f504facd8058f68c, limb1: 0x5c39ce33984b5049e40e9d8c, limb2: 0xfad50ec5061cb2bbf69e1963, - limb3: 0x13cb0a312ba23fd491df96fc + limb3: 0x13cb0a312ba23fd491df96fc, }, r1a0: u384 { limb0: 0xc3a4702619055f4a569d9968, limb1: 0xfeda6a11638cea2a1c5e2281, limb2: 0xb75b2fb16398aa452ee48bad, - limb3: 0x122a32b337cdbebc26e83cc6 + limb3: 0x122a32b337cdbebc26e83cc6, }, r1a1: u384 { limb0: 0xce433a5223f7bb71a1ca8add, limb1: 0x32b85c9ddd3cb79997c8ba1f, limb2: 0xfceca1b93cebc0e4f5a9bb4f, - limb3: 0x415d57acc7c6067dcab343e - } + limb3: 0x415d57acc7c6067dcab343e, + }, }, G2Line { r0a0: u384 { limb0: 0xb9dbae6102d4e69d8f0c607b, limb1: 0xfb3291d8083f2064c1847106, limb2: 0xe12abb8d6ae364d5e548d2d8, - limb3: 0xd13fb257c65b60b84d69dd3 + limb3: 0xd13fb257c65b60b84d69dd3, }, r0a1: u384 { limb0: 0x262a76b1f70400d242b037af, limb1: 0xf5ec7855301fada6c7376aff, limb2: 0xdfb032dbd72e3b0f13215bae, - limb3: 0x355cd1872bb9b6ceb0d26e7 + limb3: 0x355cd1872bb9b6ceb0d26e7, }, r1a0: u384 { limb0: 0x83e87b560159e417f772dd81, limb1: 0xcc5d152eb1acc8f395b2fbf0, limb2: 0x70f54dbac520fb59a3c0a3f8, - limb3: 0x52ea47561eb3650d1ea0c83 + limb3: 0x52ea47561eb3650d1ea0c83, }, r1a1: u384 { limb0: 0x38ba107df12dd0465e65a380, limb1: 0x73379dc19d2c9b110da0ef60, limb2: 0xdb2efde4cecd2207393ff551, - limb3: 0x80cad1bed6ccfd10035d560 - } + limb3: 0x80cad1bed6ccfd10035d560, + }, }, G2Line { r0a0: u384 { limb0: 0x82a3fc3c6acfa43dacc5385d, limb1: 0x74a6dea3d3d82cb2e7d0809d, limb2: 0xb13b36c9a8887107d9bcbc22, - limb3: 0x12bf4764dd43d68b4ee7c590 + limb3: 0x12bf4764dd43d68b4ee7c590, }, r0a1: u384 { limb0: 0xa3289d5e4c4585384473a183, limb1: 0xe694ef0ceb4b6ce3bab92679, limb2: 0xc99ffcf812e3dfbd6a52420, - limb3: 0x2a77fad7fdc79c5bb072153 + limb3: 0x2a77fad7fdc79c5bb072153, }, r1a0: u384 { limb0: 0xa0db2fa814dd299768ed728c, limb1: 0xab435115dbe57ffc64c8bd1a, limb2: 0x1525c2e63ea09f54ec46655d, - limb3: 0x4b8b5e2ff10023fd75652f + limb3: 0x4b8b5e2ff10023fd75652f, }, r1a1: u384 { limb0: 0xf7ba29be02b325489270749d, limb1: 0x323633723ff44396f6db5174, limb2: 0x5e59d6926ba24f7667e3255c, - limb3: 0xbc49cf59ec0c71f768d3fde - } + limb3: 0xbc49cf59ec0c71f768d3fde, + }, }, G2Line { r0a0: u384 { limb0: 0x55806a498c4bf79112692a77, limb1: 0xb0e3ca4633d3674fbee6150f, limb2: 0x5f74060f8312ce5e6e7ae2e3, - limb3: 0x627a1c0c6d61932ada0e832 + limb3: 0x627a1c0c6d61932ada0e832, }, r0a1: u384 { limb0: 0xf13ce1d6c89f358448ae8fa9, limb1: 0x2bc57ecfdb09522cc85b0ae4, limb2: 0xfca1f39d0523bbe5c335ee04, - limb3: 0x100b085007be1ca2b9f6e8de + limb3: 0x100b085007be1ca2b9f6e8de, }, r1a0: u384 { limb0: 0x84a70d5b9caa99650569ad71, limb1: 0x87c6e59e8af90623339f1f3b, limb2: 0xaef7d53bb0b7d5984da19099, - limb3: 0xa2289949724906f1ad55b14 + limb3: 0xa2289949724906f1ad55b14, }, r1a1: u384 { limb0: 0xf531a6fdd1f0b3b5f8f8e9db, limb1: 0xf34d77973a1456adfb71697e, limb2: 0xdb9f5ebde3d8380fabf4162f, - limb3: 0x130da579ba0316f92d4eb58 - } + limb3: 0x130da579ba0316f92d4eb58, + }, }, G2Line { r0a0: u384 { limb0: 0x51c2086725a295f5da826c, limb1: 0x8e8e5baa4016b523e380ac92, limb2: 0xf8f0a4861e231c3b5075023, - limb3: 0x140928f32cb86c6f5c226b84 + limb3: 0x140928f32cb86c6f5c226b84, }, r0a1: u384 { limb0: 0xf0d141ad0b7bc44ef62633e8, limb1: 0x2b6a68f294133ffde01b3622, limb2: 0x13b274b21d5c5cba67cba1aa, - limb3: 0xeea5a9094bf616f734320ea + limb3: 0xeea5a9094bf616f734320ea, }, r1a0: u384 { limb0: 0xdf51feeca93575d2e24d49bc, limb1: 0x90e0b5a293fdf422b3c448b1, limb2: 0x360839c7ef270b0c5af4a6f0, - limb3: 0x5608d87f36ff132d9a254eb + limb3: 0x5608d87f36ff132d9a254eb, }, r1a1: u384 { limb0: 0x3c26d23f25273548bb7fc3c8, limb1: 0xd42908133adad40dbd5ef506, limb2: 0x316d03c0197cf510485c062f, - limb3: 0xb23fbbe4632f9ee97df9c93 - } + limb3: 0xb23fbbe4632f9ee97df9c93, + }, }, G2Line { r0a0: u384 { limb0: 0x41d73bb66d7139e3b2883865, limb1: 0xef3de396b8ebd92887d6ccc0, limb2: 0x6be980b72b3858425dcce9df, - limb3: 0x45121179d8e49e1dd61f734 + limb3: 0x45121179d8e49e1dd61f734, }, r0a1: u384 { limb0: 0x23508094efe1db2e43b826be, limb1: 0x290222e73653ec8ec2d5bf, limb2: 0xa8309daa11b6981ed784a3ac, - limb3: 0x17056c5dd749562ffb9477aa + limb3: 0x17056c5dd749562ffb9477aa, }, r1a0: u384 { limb0: 0xe16c9dcf214392cd7a09676b, limb1: 0x741b68da9729956259db5e80, limb2: 0x7307e417e88bef6b7886098a, - limb3: 0x16fcf0d17700b504f863c6fb + limb3: 0x16fcf0d17700b504f863c6fb, }, r1a1: u384 { limb0: 0x99b0a3f78a184f700178b139, limb1: 0x4d6e3662d7810b3f1054bd01, limb2: 0x29fe9f13eeb06558d12ceb2f, - limb3: 0x16aba426597166960c6725bd - } + limb3: 0x16aba426597166960c6725bd, + }, }, G2Line { r0a0: u384 { limb0: 0x8208b44ee53a9fc7eb288388, limb1: 0x3456d09962a3dda5865a27a8, limb2: 0xe1f3e4e3ed8ef8435cfe3ae, - limb3: 0x10a37b4e7c8061faaa5c01a6 + limb3: 0x10a37b4e7c8061faaa5c01a6, }, r0a1: u384 { limb0: 0xf9d6db9a5ac46771b19e3ac9, limb1: 0x42c10987c49132e9a8ab8d39, limb2: 0xd7ad0c0bdd201b0be5e93e0c, - limb3: 0x408dae3a4926d4a4ea397a9 + limb3: 0x408dae3a4926d4a4ea397a9, }, r1a0: u384 { limb0: 0x653665fed5d98ea9f33e0757, limb1: 0xacfa712330085cde3f722ed4, limb2: 0xbe1fcfda554eb87530bf6559, - limb3: 0x5462519ce1e048fbcbb22a4 + limb3: 0x5462519ce1e048fbcbb22a4, }, r1a1: u384 { limb0: 0xc6e9de72771ebb73bc382c9c, limb1: 0x2b29a88d36211b1579147a2f, limb2: 0xabbad720f32d8b7ef4e5b528, - limb3: 0xf16180bf4a1de636ac8ced8 - } + limb3: 0xf16180bf4a1de636ac8ced8, + }, }, G2Line { r0a0: u384 { limb0: 0xbd00656c6a03e40e7a1c96d, limb1: 0xc6ec405888aa450fb0aa26e1, limb2: 0x169143ae2bf37f999e5709e8, - limb3: 0xd989153870f4c8ffbb5af7b + limb3: 0xd989153870f4c8ffbb5af7b, }, r0a1: u384 { limb0: 0x40bd6d526b0e08d58fa66010, limb1: 0x127a3c8ea6b5b2cc9f4dd258, limb2: 0x246398565166fcf21abdc99c, - limb3: 0x1139b4d60c70c41df89895d0 + limb3: 0x1139b4d60c70c41df89895d0, }, r1a0: u384 { limb0: 0x1e0803443a2e501406221316, limb1: 0xd4ab19eaa32e432f1b5675e9, limb2: 0x550a6da9fb9787a1e690aa43, - limb3: 0x38d29d1f1993b9d9e60f603 + limb3: 0x38d29d1f1993b9d9e60f603, }, r1a1: u384 { limb0: 0x12c57cbf483c651473b1d989, limb1: 0xc895e14b9897f216e4d9f22b, limb2: 0xd7f570fe66cf3f673abc03c1, - limb3: 0x18d84210d9b793e6acd217b4 - } + limb3: 0x18d84210d9b793e6acd217b4, + }, }, G2Line { r0a0: u384 { limb0: 0x8a4878d8e2e133986b8ae1c2, limb1: 0xb9ede196be35fc25ca8764bd, limb2: 0x8926fe5d6d93f96dcd45bff6, - limb3: 0xa9af73cd8f02d67fbac7c31 + limb3: 0xa9af73cd8f02d67fbac7c31, }, r0a1: u384 { limb0: 0xb4ac60395435ab8c101d3f66, limb1: 0x51b5668e81d774a523536aea, limb2: 0xaf6c3902dfe7d93c5cd7e0d4, - limb3: 0x7de5b12d21d9cfd4b8f1bd6 + limb3: 0x7de5b12d21d9cfd4b8f1bd6, }, r1a0: u384 { limb0: 0xdbbd341b7617d7da02f767cb, limb1: 0x390a6cdb0247c8b696f54818, limb2: 0xc5c4d82d35c4a86900b9c108, - limb3: 0xcedcdacd1e4bfd4b3ec453d + limb3: 0xcedcdacd1e4bfd4b3ec453d, }, r1a1: u384 { limb0: 0x2e1da9fa7b1e27c2eb90c1db, limb1: 0x1bd463826b9fd44f9af5c53c, limb2: 0x2d55689e4b07965f4b24f4aa, - limb3: 0xaf0b738c4875f563f27ca2f - } + limb3: 0xaf0b738c4875f563f27ca2f, + }, }, G2Line { r0a0: u384 { limb0: 0x982c093dd6a1f08c9f98f549, limb1: 0x206794a8b198598b7ce4fa9, limb2: 0xc888c728be45b57e38fb3778, - limb3: 0x74283fe50724556c49ef237 + limb3: 0x74283fe50724556c49ef237, }, r0a1: u384 { limb0: 0x96bc29f2bcc0f815c55c409e, limb1: 0xe48119617a07eb33ab893613, limb2: 0x908d162dc06fc4a17d248864, - limb3: 0x1aaf38bbd8891856272de1d + limb3: 0x1aaf38bbd8891856272de1d, }, r1a0: u384 { limb0: 0x858ef2dbf3b0abd9ee6b0dfa, limb1: 0x9b84aea4dc77001de4491c8b, limb2: 0x2fee669cbecc806510e5321, - limb3: 0xc2698ef04170dd90fe9040b + limb3: 0xc2698ef04170dd90fe9040b, }, r1a1: u384 { limb0: 0xf466f3e5f33a4d032ce1d26b, limb1: 0xa2dbc37e685f47b642da17b0, limb2: 0x4fe20a8b997927f5e3c81193, - limb3: 0x106497892fbc54848cf8dc2 - } + limb3: 0x106497892fbc54848cf8dc2, + }, }, G2Line { r0a0: u384 { limb0: 0x20bd93c9da3e81a8eae945b3, limb1: 0x828fee23af9ea75d0a85e148, limb2: 0x4c1a1f1b862331fe27f8d9f4, - limb3: 0x63d0d46e0d13c2b4089bfa3 + limb3: 0x63d0d46e0d13c2b4089bfa3, }, r0a1: u384 { limb0: 0x5ec6828def657a6b3620ccea, limb1: 0x94ad61cdb2d72668197acef5, limb2: 0x7baee501930b611a99e46a0c, - limb3: 0xddd9e2bdcf6001b73313233 + limb3: 0xddd9e2bdcf6001b73313233, }, r1a0: u384 { limb0: 0xf9278e7727717e399e585d1d, limb1: 0xf9eabf0071885c7038169d31, limb2: 0xd4503f9fa816f9111fbfeef9, - limb3: 0x6ccdcbce5dab18378c8e683 + limb3: 0x6ccdcbce5dab18378c8e683, }, r1a1: u384 { limb0: 0xcc90a9d15f39ccd673782c6c, limb1: 0x91a54145933733fa6a8282ef, limb2: 0x77a1d8952789f3aab595cf2e, - limb3: 0x117809e3864b0f92e6bdfb88 - } + limb3: 0x117809e3864b0f92e6bdfb88, + }, }, G2Line { r0a0: u384 { limb0: 0xcfacd8bafe80e34c80895ce2, limb1: 0x405055a8e3556eec6fe19b33, limb2: 0x215e510b0585c12c7aa4b9fc, - limb3: 0x166c8a8d92ddb160d84e3dc9 + limb3: 0x166c8a8d92ddb160d84e3dc9, }, r0a1: u384 { limb0: 0xded38c78e1bdce8139c0c49c, limb1: 0x880be26de982752e92c7f3b6, limb2: 0x650ff5ae95115c46cf190034, - limb3: 0xd28c9264d7943b90541cde8 + limb3: 0xd28c9264d7943b90541cde8, }, r1a0: u384 { limb0: 0xa9b4b12b59c157302b9c1e03, limb1: 0xb3d4cbc18ebdbf27e7af3c16, limb2: 0xe0f12acb3615cb9a62039090, - limb3: 0x1210b9dab7bac860f54963d7 + limb3: 0x1210b9dab7bac860f54963d7, }, r1a1: u384 { limb0: 0xa492048852bb2ceb97e408f5, limb1: 0x77848eeb1c67a40c581a3235, limb2: 0x8aa45235af23ebd968d454ab, - limb3: 0x144d609bbd40cb1a61799523 - } + limb3: 0x144d609bbd40cb1a61799523, + }, }, G2Line { r0a0: u384 { limb0: 0xae465430a3b879fa609ed588, limb1: 0x5b4441a8cc9f013eb815c1f4, limb2: 0x110619006c872a26d93ba293, - limb3: 0xe1c6863a7e22b68f50a2e01 + limb3: 0xe1c6863a7e22b68f50a2e01, }, r0a1: u384 { limb0: 0xa14cd671deb3cecf066b68ff, limb1: 0x146280483d10683e53e0af, limb2: 0x3ead8592a7548acaf49128b4, - limb3: 0x91c35d9b0c4a0cbaa54de18 + limb3: 0x91c35d9b0c4a0cbaa54de18, }, r1a0: u384 { limb0: 0x6f33a2c44245c7019c0c5c67, limb1: 0x5efc92747f401ead3c8cfc2f, limb2: 0x393adb0e0036514a75839cf, - limb3: 0x1382a3bc2c35391ea4888358 + limb3: 0x1382a3bc2c35391ea4888358, }, r1a1: u384 { limb0: 0x1163e633ef6eb65ff47fe5f6, limb1: 0x43edbe5def5f4b8cb624def7, limb2: 0xe3d7d6469d9ea3ebd107f34f, - limb3: 0x96ac6f3aea62de484fb9f5 - } + limb3: 0x96ac6f3aea62de484fb9f5, + }, }, G2Line { r0a0: u384 { limb0: 0xeef462793df87830739b58e9, limb1: 0xae7c8ea1ad71ca6bed2ebe00, limb2: 0x9ae2164a137a064d1df7f02d, - limb3: 0x4a9888e14ac3625ff321114 + limb3: 0x4a9888e14ac3625ff321114, }, r0a1: u384 { limb0: 0xc3c414c0d08ecbf15184e66b, limb1: 0xdde9cfcbdd2e00b615eb8280, limb2: 0x475a2c4bb26b585add37b2db, - limb3: 0x91ef361ba4f2ff51c967890 + limb3: 0x91ef361ba4f2ff51c967890, }, r1a0: u384 { limb0: 0xd82fd80a2061263e1fd01764, limb1: 0xe1c1efac8d73b700b4f7624b, limb2: 0x4b66141becce9ed674af6eb8, - limb3: 0x14fb9e8021f44b1eb120b9d9 + limb3: 0x14fb9e8021f44b1eb120b9d9, }, r1a1: u384 { limb0: 0x4de7793b20d51e4f8fb8f053, limb1: 0xd7f28ae911fa3e1b6c0e60e4, limb2: 0x9d6970421cbe2f4d5c9c878, - limb3: 0x3b7adf46bf35aebc482e388 - } + limb3: 0x3b7adf46bf35aebc482e388, + }, }, G2Line { r0a0: u384 { limb0: 0x12f2b778d5fbab976bc57ada, limb1: 0x76459b21736fbf46a8970d59, limb2: 0xb94be6680c7126ca6efa8aac, - limb3: 0x837f3c1bf89ea556baa0f1e + limb3: 0x837f3c1bf89ea556baa0f1e, }, r0a1: u384 { limb0: 0xe5a3489fc04cbff07982f68e, limb1: 0xa191417243695b45f476d8bc, limb2: 0xc51a4550afd0e726501933a6, - limb3: 0xf44ecd23806ed5e74169f54 + limb3: 0xf44ecd23806ed5e74169f54, }, r1a0: u384 { limb0: 0x6cd53a71fa2d57fc5af7daf, limb1: 0x2b428bc9d14c4baec9df8d4d, limb2: 0xc1cdc7f4f9547699b33a5d3f, - limb3: 0x132932753bb6ce9737dd24b1 + limb3: 0x132932753bb6ce9737dd24b1, }, r1a1: u384 { limb0: 0xdc3e579e2d3ef4c042f7356a, limb1: 0xd176af6e739a4172c748084d, limb2: 0xc2d99caaf0cee64b95b74caf, - limb3: 0x6c6e6c693605fab377449f9 - } + limb3: 0x6c6e6c693605fab377449f9, + }, }, G2Line { r0a0: u384 { limb0: 0x8453ae7d36f5618e254ad0d1, limb1: 0x7e8d71e845958e9741385a13, limb2: 0xad311639a622f093066fc3b6, - limb3: 0x83a861cfac3d33a177738ee + limb3: 0x83a861cfac3d33a177738ee, }, r0a1: u384 { limb0: 0x3ad1bdc48790c12209582975, limb1: 0x8dfd29dcf52774c4f1845b52, limb2: 0xa02ac71b2c0dea50d477db6, - limb3: 0x13a1c836ec6af306248cc909 + limb3: 0x13a1c836ec6af306248cc909, }, r1a0: u384 { limb0: 0x14406ff512e0479dc3c8d, limb1: 0x96cd90daabf66287008c71f, limb2: 0xa60a0e779f3b9ee1551e2bd3, - limb3: 0x12f79805baffe96832e3a077 + limb3: 0x12f79805baffe96832e3a077, }, r1a1: u384 { limb0: 0x647d4e42f9f13a7c0d7a75cc, limb1: 0x12effbcbf19df432e200c643, limb2: 0x1d18afbec71b6348e0977ada, - limb3: 0x2a237cabc4f307c6bba9c62 - } + limb3: 0x2a237cabc4f307c6bba9c62, + }, }, G2Line { r0a0: u384 { limb0: 0x4a4ebb65d008e49339423340, limb1: 0xe8af68a1403ac4097334dda5, limb2: 0x60b3a6cae1c54f8ae1bce576, - limb3: 0x13011c97e91f386caf2a2972 + limb3: 0x13011c97e91f386caf2a2972, }, r0a1: u384 { limb0: 0x62af6c1bb245e69512982435, limb1: 0xe06e1b68f65815af7672ef87, limb2: 0x181bfb87298f6dd64c518b25, - limb3: 0xc2c69e7df650d02bdb2088b + limb3: 0xc2c69e7df650d02bdb2088b, }, r1a0: u384 { limb0: 0xf21d1538741e50e9a499ac73, limb1: 0xacc6dd8bf4c874e1da1f0ae3, limb2: 0xcacde4e1801b3c95b1705651, - limb3: 0x116971bf55359268362fb2c6 + limb3: 0x116971bf55359268362fb2c6, }, r1a1: u384 { limb0: 0x6da7f6a48d6e7831a983fefc, limb1: 0x103b747a61ed06984ee35089, limb2: 0x9fc5bf34c0740b9d08b104a3, - limb3: 0x9e4768acd9aadafabe1415 - } + limb3: 0x9e4768acd9aadafabe1415, + }, }, G2Line { r0a0: u384 { limb0: 0x8f61f5ba0fa958bb27b0738d, limb1: 0xf241c01ee89f0223fae54588, limb2: 0xda4e4767658a0ac3abbf2397, - limb3: 0x1469bf3b838495c457b871dd + limb3: 0x1469bf3b838495c457b871dd, }, r0a1: u384 { limb0: 0x6c26df5b82209295efa30f78, limb1: 0xa6d88fe2c2c7eb127399a8f5, limb2: 0x12a48d65bb7c320195ed2ba1, - limb3: 0x2607291048cb4d7c8e364b6 + limb3: 0x2607291048cb4d7c8e364b6, }, r1a0: u384 { limb0: 0x62d61af0924cf04ab435ef0a, limb1: 0x411a7672635a9cb3f011dba9, limb2: 0x311966492e36c204118b8d63, - limb3: 0x609e43c5745ab0721e69d08 + limb3: 0x609e43c5745ab0721e69d08, }, r1a1: u384 { limb0: 0xca4ae7db7b1ef2f2a8338569, limb1: 0x7d8cdadb9652eeff7e0353a4, limb2: 0xc85f6a2486d9cea932ac87a5, - limb3: 0x18bd575791b49a042112020c - } + limb3: 0x18bd575791b49a042112020c, + }, }, G2Line { r0a0: u384 { limb0: 0x64282b3efaf71690d668de0e, limb1: 0x8781d985cfc29d3e8099fff, limb2: 0xb81331cc8b1997d037d2d7ec, - limb3: 0x12235a5ac7f1d2ab9ae5b9c5 + limb3: 0x12235a5ac7f1d2ab9ae5b9c5, }, r0a1: u384 { limb0: 0xa29416594a6408df6161b6fa, limb1: 0x223f57279d16c8cceb28c803, limb2: 0x20c74e1a6bb7c6387a749de9, - limb3: 0x118595f99d022878c5dfa242 + limb3: 0x118595f99d022878c5dfa242, }, r1a0: u384 { limb0: 0x4e37473da8164d9afb454170, limb1: 0x374f98a1cd8e5cb81d5d1588, limb2: 0xb1086185aa14c12e63aac04e, - limb3: 0x1838f9c2473fb4633451cc86 + limb3: 0x1838f9c2473fb4633451cc86, }, r1a1: u384 { limb0: 0xd5d6e5aa8ca10362522318e3, limb1: 0x85d25f9b4b9506dc7a20bca9, limb2: 0x9bca10d7d717b218a1128f10, - limb3: 0x145af4e6b53d5676e5a8bcc9 - } + limb3: 0x145af4e6b53d5676e5a8bcc9, + }, }, G2Line { r0a0: u384 { limb0: 0xf3c802dee19e24b92e7979fa, limb1: 0x14da8c307396b2b3098cc029, limb2: 0x81ec9801bc5a699e39b50971, - limb3: 0xfbdf2094dbd982c4366a295 + limb3: 0xfbdf2094dbd982c4366a295, }, r0a1: u384 { limb0: 0xeea5bd7fc66ac332eef61a9e, limb1: 0x1b86742a4721e1ed6be9d082, limb2: 0xfc5fd3946f0cb7a618e7e452, - limb3: 0x19be9789e6a4a595a557c8d5 + limb3: 0x19be9789e6a4a595a557c8d5, }, r1a0: u384 { limb0: 0xd7e6895fbf700ae72769736a, limb1: 0x416c1c33622a357d679d913c, limb2: 0x35c8dd89e1eba641557b344b, - limb3: 0x677c5a38ff37fdb4605b0bf + limb3: 0x677c5a38ff37fdb4605b0bf, }, r1a1: u384 { limb0: 0x59bc57df21c9065dee74fe4f, limb1: 0xe251d5a312068328a96aee57, limb2: 0x20bb5ca4b72b1ae1df0402aa, - limb3: 0xdb28c872b29f1111ff063b8 - } + limb3: 0xdb28c872b29f1111ff063b8, + }, }, G2Line { r0a0: u384 { limb0: 0x7266c55e323eb5f523137011, limb1: 0x3fa2140fee350709e12cc602, limb2: 0x2ca6caaba6c036ac2a015fe0, - limb3: 0xe6370e66a3639679d1ffaf1 + limb3: 0xe6370e66a3639679d1ffaf1, }, r0a1: u384 { limb0: 0x673a512572f43dafc1fb3e60, limb1: 0xf17d9c9e1f0151e37745e09c, limb2: 0xb0231ba928984ff48f7c72ad, - limb3: 0x116bc15d70785ac8e3dbaafa + limb3: 0x116bc15d70785ac8e3dbaafa, }, r1a0: u384 { limb0: 0x54599fa912c2c83137391fc4, limb1: 0x3024f1a43f73ebb9f356f0c1, limb2: 0x3b1b2662cc9d943f76848e62, - limb3: 0x129b0437839946397ba58144 + limb3: 0x129b0437839946397ba58144, }, r1a1: u384 { limb0: 0xf93d43a03e1c6787dcbd8285, limb1: 0x124a2f604da1317e5610dac6, limb2: 0x64f7cc1679a914abd36770df, - limb3: 0x10f2e7649f93b589d8d4acba - } + limb3: 0x10f2e7649f93b589d8d4acba, + }, }, G2Line { r0a0: u384 { limb0: 0xf82b6df19a54e2cf1cf2a926, limb1: 0x3f6e3866481525431265f2dd, limb2: 0x345f14dcadaceb6bd10a7737, - limb3: 0xe39d5893debb54d49156924 + limb3: 0xe39d5893debb54d49156924, }, r0a1: u384 { limb0: 0x45be1970d7ccbf809b2067d9, limb1: 0x5960a9502e5dd19b2764e96f, limb2: 0xb8c9075c1ab2fdacb6fc6965, - limb3: 0x78f512de963787677e431a4 + limb3: 0x78f512de963787677e431a4, }, r1a0: u384 { limb0: 0x486d90dee20ae276acefbad, limb1: 0x804cd3f829f2603c900f701f, limb2: 0xe97e5fe9e95da08ce6ad0c9e, - limb3: 0xefabe32ca67e113d82a9975 + limb3: 0xefabe32ca67e113d82a9975, }, r1a1: u384 { limb0: 0x7b00323f1f5d9b1acde52435, limb1: 0xbba8c1970d071fde53462819, limb2: 0xaeb541c1bc202e4247d63d2b, - limb3: 0x54e8ff0cede4fcd4bf670a5 - } + limb3: 0x54e8ff0cede4fcd4bf670a5, + }, }, G2Line { r0a0: u384 { limb0: 0x19deb207d5ed377cf6e1fc34, limb1: 0xa450925cc66369d7ac242254, limb2: 0x1c3bdc1e64a941a34fc053cc, - limb3: 0x14df45de9151dfb3e06995fb + limb3: 0x14df45de9151dfb3e06995fb, }, r0a1: u384 { limb0: 0xd1cb0605f648519c51a2896e, limb1: 0xfd5a32cb5433d9d638ce5f44, limb2: 0x22b95ccf2f9f474991447155, - limb3: 0x1b6a551862dd5d0d0e23eea + limb3: 0x1b6a551862dd5d0d0e23eea, }, r1a0: u384 { limb0: 0x29a5f4f5636af654cf00c5e4, limb1: 0xd06d14134a0604b5670c8754, limb2: 0x4f9397231527c3bf676603a8, - limb3: 0x725540566667205b8e18667 + limb3: 0x725540566667205b8e18667, }, r1a1: u384 { limb0: 0x4027b710692c5e378612279d, limb1: 0xde69c4a076f5a6558d86111, limb2: 0x3d32f4dcf1e86bbf40210871, - limb3: 0x160b4757d533ef30f2094173 - } + limb3: 0x160b4757d533ef30f2094173, + }, }, G2Line { r0a0: u384 { limb0: 0x391dda06f57de49c19a39355, limb1: 0x4e737dfa7ab368808331a160, limb2: 0x4861c22221cf946a7bd7ce3f, - limb3: 0xbf98d2b99fcb852dee131ab + limb3: 0xbf98d2b99fcb852dee131ab, }, r0a1: u384 { limb0: 0xa908feaefe8603bc57fed5ec, limb1: 0x24ccd521287d21f70525b3f3, limb2: 0xb0c14b45ee675a30a02b03ae, - limb3: 0x486ddefa539161f18afb8b3 + limb3: 0x486ddefa539161f18afb8b3, }, r1a0: u384 { limb0: 0x2b55b06830bb4b7604c06419, limb1: 0xa5521e8fbc7d47ff6cee8649, limb2: 0x19044603e7a7fd14f2ca392f, - limb3: 0x100534339fb750d36ddf81c + limb3: 0x100534339fb750d36ddf81c, }, r1a1: u384 { limb0: 0x144ad61af74f6da85031acdb, limb1: 0xc4feb7056df7bd2d6526fdfd, limb2: 0xd35f577108fa47be0bac8535, - limb3: 0x159564e4ac7dc0857b9b7f66 - } + limb3: 0x159564e4ac7dc0857b9b7f66, + }, }, G2Line { r0a0: u384 { limb0: 0xf98d6dbcb3ea133fb4ffcaf2, limb1: 0x6fbf2c7d9fc7cb84bf8a4eff, limb2: 0xe62c313483fc5463bf3ed2bf, - limb3: 0x19a9884ea34fe0126dee7e18 + limb3: 0x19a9884ea34fe0126dee7e18, }, r0a1: u384 { limb0: 0xe817610114936f7ecee50446, limb1: 0xc04e0c4475092ba5e70435ef, limb2: 0x65469702b18d011ea024ca54, - limb3: 0xa3d7efe3405b93e96bfced4 + limb3: 0xa3d7efe3405b93e96bfced4, }, r1a0: u384 { limb0: 0x23979b215fbc5eb927025b3c, limb1: 0x7ee7ff729f1a2046dce0f71b, limb2: 0x6c54f503e474ccd1fd2c589b, - limb3: 0x881ebefcd5614bf757db21a + limb3: 0x881ebefcd5614bf757db21a, }, r1a1: u384 { limb0: 0x8cf989efab414db4ca0337f8, limb1: 0x55fe112a2e13392491c2b191, limb2: 0x13e416c811005d1a3350cb5, - limb3: 0x14037e0e1d38e15b73e0ca43 - } + limb3: 0x14037e0e1d38e15b73e0ca43, + }, }, G2Line { r0a0: u384 { limb0: 0xbdb98a83e5729b997b8d9aa1, limb1: 0xcb52848e21e96dfd84afb236, limb2: 0x4fbaadb89ff456c79d956aea, - limb3: 0x1940988caf75778db3d7b20e + limb3: 0x1940988caf75778db3d7b20e, }, r0a1: u384 { limb0: 0xcc4b3f78288f83db55b1bb45, limb1: 0xf5d2f34a4f2cbeaa75178684, limb2: 0x1aeaabf273db3651ed9a6ca0, - limb3: 0xd1f255ae26606742036a4c6 + limb3: 0xd1f255ae26606742036a4c6, }, r1a0: u384 { limb0: 0x16674b87da60cca57add5066, limb1: 0xf993170c807c39cb94b60722, limb2: 0x8b42bb6cde71360f572240e9, - limb3: 0x5249854c68d1b2761d27c54 + limb3: 0x5249854c68d1b2761d27c54, }, r1a1: u384 { limb0: 0x4c3ccd4beed240cca6f61f5a, limb1: 0xc68d54b38aa262727e982f1e, limb2: 0x3211c469594dff0cf9486c32, - limb3: 0x10faeb3d4ca1e301b47ba93a - } + limb3: 0x10faeb3d4ca1e301b47ba93a, + }, }, G2Line { r0a0: u384 { limb0: 0x2823c66648f4d481d8e005a7, limb1: 0xe856f0ae7cf3a85a214e662b, limb2: 0xc2dbe57f6a6041f9408548cc, - limb3: 0x12cbf8243f62a684ffd117c9 + limb3: 0x12cbf8243f62a684ffd117c9, }, r0a1: u384 { limb0: 0xf33c0f25f30965922b7a3d95, limb1: 0xad2490f1a91b92ec63c3a38f, limb2: 0xd9b3254082d06e13ed45ce64, - limb3: 0x1599b9de0a9d639c47386266 + limb3: 0x1599b9de0a9d639c47386266, }, r1a0: u384 { limb0: 0xebcd5f23a4c3dd5b3c831608, limb1: 0x37e0a6835ef506afdf7efa80, limb2: 0x72d6ebdd955d53e4bb3088a6, - limb3: 0x1854c3c13966bc0d0b2cde14 + limb3: 0x1854c3c13966bc0d0b2cde14, }, r1a1: u384 { limb0: 0xe3107baa5208305dd296b362, limb1: 0xf06342a6f9251ee1e2036283, limb2: 0xe6612735f5fd5f25f4a18f0, - limb3: 0xcaf6e119c91fc84ef1c1aca - } + limb3: 0xcaf6e119c91fc84ef1c1aca, + }, }, G2Line { r0a0: u384 { limb0: 0x3b68bb1e9790730752af570b, limb1: 0x1edee4298985741a4c96ff, limb2: 0x2d734e175da7cf84fbafd3c5, - limb3: 0x3fb948696ef0e166bebf412 + limb3: 0x3fb948696ef0e166bebf412, }, r0a1: u384 { limb0: 0xb0b7e8d0f696fbccb5fbb186, limb1: 0x99de7fd4d64e41ad44bf9b5f, limb2: 0x4f51631e336cadb706f3a33, - limb3: 0x11bba4f788fb1ded0e221b32 + limb3: 0x11bba4f788fb1ded0e221b32, }, r1a0: u384 { limb0: 0x9eff9067ac9e819fc7057ae9, limb1: 0x1e64c6d4089a0fb2425a645d, limb2: 0xf94423c637381bbae316235e, - limb3: 0xf2f15e92682cdfa72a52fd2 + limb3: 0xf2f15e92682cdfa72a52fd2, }, r1a1: u384 { limb0: 0xab9a26b00f30b21765b7547, limb1: 0x28c3c566fb6babb94109fa7e, limb2: 0x7d858033627814454b111d98, - limb3: 0x155d1bd5ef23109cbf8c1ccf - } + limb3: 0x155d1bd5ef23109cbf8c1ccf, + }, }, G2Line { r0a0: u384 { limb0: 0x2cde708f0b8cd318fc67bee8, limb1: 0x9a95f572f0429539b3ce328b, limb2: 0x4a5d4d9fd5dcf9f241ecc4d, - limb3: 0x19078676070364267ebcc3ab + limb3: 0x19078676070364267ebcc3ab, }, r0a1: u384 { limb0: 0x98bd9f89de920ae0ebfb2406, limb1: 0xd738868806c46f20e861d034, limb2: 0x9b038050debc0edbc1be0e16, - limb3: 0x1362dcdc65285d2c8c41f9c2 + limb3: 0x1362dcdc65285d2c8c41f9c2, }, r1a0: u384 { limb0: 0xcd4657e749f4ffcadbb0d9a5, limb1: 0xd63c26d6ba8661d5080379af, limb2: 0xc809cd05f4b7382bc077b1ea, - limb3: 0x12864d0dca4b400e2a95102b + limb3: 0x12864d0dca4b400e2a95102b, }, r1a1: u384 { limb0: 0xd611a29ff543d96cf849bd1, limb1: 0x596407fe121213b4a8cc307d, limb2: 0x92d36061c70feaba71f789af, - limb3: 0x499654f872ac06ea4a452bc - } + limb3: 0x499654f872ac06ea4a452bc, + }, }, G2Line { r0a0: u384 { limb0: 0xb0962fbcf21139969e8dab25, limb1: 0xb0a19f7ca5f477871be73cbf, limb2: 0x88ad887afd15eae613675e08, - limb3: 0x2a7b58589ca7b7e5b344396 + limb3: 0x2a7b58589ca7b7e5b344396, }, r0a1: u384 { limb0: 0xf718c3a824df9a4081dd18d, limb1: 0x41e4ef4d528d6c4f5dceb1d1, limb2: 0xddf16e8d62dd032870008ad1, - limb3: 0x1507f575d3c90144e8d7f643 + limb3: 0x1507f575d3c90144e8d7f643, }, r1a0: u384 { limb0: 0xfe658024d9e687959a028d31, limb1: 0xd2bb637f753e2d0bd6233ad2, limb2: 0x4ed4d8e0c9a61e71b74e8d50, - limb3: 0xe8f6a3795714e66d7f76cb8 + limb3: 0xe8f6a3795714e66d7f76cb8, }, r1a1: u384 { limb0: 0xc99318a2e53111aa51be227c, limb1: 0xf6251383d887b2d7aa2cfed2, limb2: 0x4d90f6d24972610e5c13a0c1, - limb3: 0x1047331dacc8b1a00c020666 - } + limb3: 0x1047331dacc8b1a00c020666, + }, }, G2Line { r0a0: u384 { limb0: 0x556da7f56ee0c7d62fc2972f, limb1: 0xdfb895df67fa4aee9235305e, limb2: 0x29439ced958130b5388abbca, - limb3: 0x323dd9807649f00008b4087 + limb3: 0x323dd9807649f00008b4087, }, r0a1: u384 { limb0: 0x874af1a436b6ade8baca63e4, limb1: 0x6d4f1a7e518069c3d2dd1ddb, limb2: 0x9c80fa9f1c0a2d348ee7b957, - limb3: 0xd523391bbe3f0de1019fccb + limb3: 0xd523391bbe3f0de1019fccb, }, r1a0: u384 { limb0: 0x1be5bbc51b64cf3dd26dd3, limb1: 0x2fa737161f1e1415d3938969, limb2: 0xafa9623233be5134ff59b5b, - limb3: 0x28e491d31e52da5ff90caa3 + limb3: 0x28e491d31e52da5ff90caa3, }, r1a1: u384 { limb0: 0x4d3c3323d817ef85ac80e43c, limb1: 0x954d330e18b44f9a52f33c50, limb2: 0x452f1d366708c2dcbf45278d, - limb3: 0x1511877d960dad5c4f4aa325 - } + limb3: 0x1511877d960dad5c4f4aa325, + }, }, G2Line { r0a0: u384 { limb0: 0x336b741fc1583b606c65abaf, limb1: 0x73801a000b489b2200db6572, limb2: 0xf94c4519220a8cfc88edc539, - limb3: 0x715c050a954cf814d0c7e0a + limb3: 0x715c050a954cf814d0c7e0a, }, r0a1: u384 { limb0: 0xed5fbf1ab4cc40ac6e7d933, limb1: 0x30ba3c9eab6fe7baec2a6a88, limb2: 0x4afe67182f279cf5cbcb98f5, - limb3: 0xad08242f19c0aaec787286a + limb3: 0xad08242f19c0aaec787286a, }, r1a0: u384 { limb0: 0xcde708df2cf8ebba73c7b13e, limb1: 0x32efd2eb6114dcfe39c3fdf9, limb2: 0x81b46d9352a1d3283852dc27, - limb3: 0x19ad0267f7bdaaf9986205cd + limb3: 0x19ad0267f7bdaaf9986205cd, }, r1a1: u384 { limb0: 0x860109901150c0785eca2431, limb1: 0xa7bf3670dae1ad8a4f40d305, limb2: 0xb9bc1d54935166605ca85485, - limb3: 0xde55ad5b86f0179f3a34e6f - } + limb3: 0xde55ad5b86f0179f3a34e6f, + }, }, G2Line { r0a0: u384 { limb0: 0x178379b18626f7f480996464, limb1: 0x9905457420bad5a85b9bee90, limb2: 0x1c27977000f53f2a05b4e4a1, - limb3: 0x918842c5d9f1da6cf126741 + limb3: 0x918842c5d9f1da6cf126741, }, r0a1: u384 { limb0: 0x27dd95e2844378ea90ebe5d4, limb1: 0x5af2fd2756e4dab52f5e77f8, limb2: 0xc2ba5de18b0385ce74c77b5f, - limb3: 0x3c7fa5727ea8c9d646cae70 + limb3: 0x3c7fa5727ea8c9d646cae70, }, r1a0: u384 { limb0: 0xf0a44f50005dcf7588f02c02, limb1: 0xd971fd2f991b155467696d20, limb2: 0x699795f7b8975027f1e5c103, - limb3: 0xda7f16c23b59fae7c41e66d + limb3: 0xda7f16c23b59fae7c41e66d, }, r1a1: u384 { limb0: 0xd00a3bc91e29ee6504078f25, limb1: 0x37efc549e098e4407c501366, limb2: 0xef8969c8bad5269a563c83e3, - limb3: 0x149af36ce061f6aa56ee93af - } + limb3: 0x149af36ce061f6aa56ee93af, + }, }, G2Line { r0a0: u384 { limb0: 0x8a02b34e776442ba59c167e, limb1: 0x2cd74b2524d97b6dccb82f1b, limb2: 0x813ca4185e38eee5964aed07, - limb3: 0x83cc2f404d857d442b3eabb + limb3: 0x83cc2f404d857d442b3eabb, }, r0a1: u384 { limb0: 0x72463cfd186baad7a018e0cb, limb1: 0xa4cd63570dadb68f7d0309f, limb2: 0x57a086998740b2352d53fccf, - limb3: 0x2aa02706d4bdbc65ac03231 + limb3: 0x2aa02706d4bdbc65ac03231, }, r1a0: u384 { limb0: 0xe33b9bf1bff90857e4d61f2, limb1: 0x43eb7abde512fe176791dc98, limb2: 0xb4b49b358c9a901e40d5613e, - limb3: 0x53d85ae1b55cab87293aa1 + limb3: 0x53d85ae1b55cab87293aa1, }, r1a1: u384 { limb0: 0x547181b3fa66b2639ec8caac, limb1: 0x97a64032085b2c91d1c492b9, limb2: 0xdbd11997d43e3e57e23c4cff, - limb3: 0x19e0ef65ce0442faf2567108 - } + limb3: 0x19e0ef65ce0442faf2567108, + }, }, G2Line { r0a0: u384 { limb0: 0x3b4f86ee4171fc73a46c3d5, limb1: 0xa2c3a70144a8b213482fb90d, limb2: 0xfde12864b1671fa86d9e0211, - limb3: 0x8488e6d72cc9f99996e3a7c + limb3: 0x8488e6d72cc9f99996e3a7c, }, r0a1: u384 { limb0: 0x58bac66145ecf6b1dc4652e9, limb1: 0xa08c279a9dd3f9a27307a28f, limb2: 0xe0480f382a930c0e8da54894, - limb3: 0x1093a6faac45157511eda7e0 + limb3: 0x1093a6faac45157511eda7e0, }, r1a0: u384 { limb0: 0x8fff8e258c6a2d1b179b7217, limb1: 0x3ec2a966483e686b172d6b19, limb2: 0xb696ff28222f0abc8d46a4a2, - limb3: 0x1099a36e837c296a95743dee + limb3: 0x1099a36e837c296a95743dee, }, r1a1: u384 { limb0: 0xaddfe6fe51ba3ef44b12dbda, limb1: 0x94ca09358ab5dad1607c1722, limb2: 0x44926a8ffea15646ab1221f9, - limb3: 0xeb0d8e1ff3518df3041efbd - } + limb3: 0xeb0d8e1ff3518df3041efbd, + }, }, G2Line { r0a0: u384 { limb0: 0x8e63a441663872dab66149bf, limb1: 0xc9c87bf6e55ee4471ecfec00, limb2: 0xce8ba5b12ef7950e530e6751, - limb3: 0x19036c37239205542fb77256 + limb3: 0x19036c37239205542fb77256, }, r0a1: u384 { limb0: 0xc4c23871cf570d2ac86cac95, limb1: 0x3cff66372097c68451261af3, limb2: 0xc6ade94f8c28ebe4007e1343, - limb3: 0x19e7ab14be7691a66ed75c31 + limb3: 0x19e7ab14be7691a66ed75c31, }, r1a0: u384 { limb0: 0x604f0bcb1b846c57953baa9e, limb1: 0x81dcb277c4e97ebdd4596d05, limb2: 0xae63997c93fabf23479283b7, - limb3: 0x1812ad42cfda1a8d608a6116 + limb3: 0x1812ad42cfda1a8d608a6116, }, r1a1: u384 { limb0: 0x904a9370cc89b6f966b5aae0, limb1: 0x159ebfaa5d240591de06cb97, limb2: 0x1cc1851722f8ad2cf22893d5, - limb3: 0x728ade3923670c3bdd7beb4 - } + limb3: 0x728ade3923670c3bdd7beb4, + }, }, G2Line { r0a0: u384 { limb0: 0xa3dc1ab42d89ae8b325d427b, limb1: 0x1d7c740e46ec4306e2c88619, limb2: 0x31f7d47a027e479d085e880a, - limb3: 0x5de6db9ee0cfa85a151a83d + limb3: 0x5de6db9ee0cfa85a151a83d, }, r0a1: u384 { limb0: 0x8d9cbdbdeadf4d81f185a381, limb1: 0x580bb622f9f0839c77a2307, limb2: 0x5ccee07b4991bd23a307fa07, - limb3: 0x1616ef86618ac2b7bbeddf56 + limb3: 0x1616ef86618ac2b7bbeddf56, }, r1a0: u384 { limb0: 0x9ae8b66048d7c97f8fab821b, limb1: 0x6b496e9c0cb601604e75d0c7, limb2: 0x5eed49d86cf54de1b281d764, - limb3: 0x3d6513d6bc7bfd76157ec98 + limb3: 0x3d6513d6bc7bfd76157ec98, }, r1a1: u384 { limb0: 0xdcfb80780546b77cc35445a8, limb1: 0x125d7b294e98c0c435a793a2, limb2: 0xeced02d3114a1a1a18ca079, - limb3: 0x163a49c9922df63143db81d9 - } + limb3: 0x163a49c9922df63143db81d9, + }, }, G2Line { r0a0: u384 { limb0: 0x9c25e08fca582713a30bf8e8, limb1: 0x5498ae20a6a534f378b69831, limb2: 0xdd783a5b0f0ef9a3ecb74589, - limb3: 0x117d7480f71ac945bc135958 + limb3: 0x117d7480f71ac945bc135958, }, r0a1: u384 { limb0: 0x23f20c0260568db93332cad4, limb1: 0xf9be3edcad2f716ad354398e, limb2: 0x8abd8e1084b21e076745f42d, - limb3: 0xd031732c8c7513d0693ced + limb3: 0xd031732c8c7513d0693ced, }, r1a0: u384 { limb0: 0x50ecf31bd9798a48cb2540ef, limb1: 0xe9b082486d639a35ab8978d9, limb2: 0xd12e8e3b5ec44cb1f5af7edd, - limb3: 0x138ba5e28dfbae00af4b5c95 + limb3: 0x138ba5e28dfbae00af4b5c95, }, r1a1: u384 { limb0: 0x393d55e2e0bca3a82c44cf73, limb1: 0xf199ae3baa3ab94c0bf97ab0, limb2: 0xccc3be3d6bd86ddbebf34569, - limb3: 0xa562acfc71629deae99dc04 - } + limb3: 0xa562acfc71629deae99dc04, + }, }, G2Line { r0a0: u384 { limb0: 0xa32020fc5c26aa2b2c1872a9, limb1: 0x99317d0307ad5ea842fc68c7, limb2: 0x930db91b6ede96bd9c4fdc5d, - limb3: 0x102eac12776a8bcf9d8023d5 + limb3: 0x102eac12776a8bcf9d8023d5, }, r0a1: u384 { limb0: 0x731ff75a1aba2fa146f52ca7, limb1: 0x284943eff7736f26174d9b1, limb2: 0x1198d0b9e569464a497c9a09, - limb3: 0x137f25b5a84c95068af34ad7 + limb3: 0x137f25b5a84c95068af34ad7, }, r1a0: u384 { limb0: 0xe863956a16770c315872a7dc, limb1: 0x436b0e50fa85dcad5cd5a349, limb2: 0x3a801273d99a2fe4d30db9af, - limb3: 0x1860701c9eb068113c1ab2b4 + limb3: 0x1860701c9eb068113c1ab2b4, }, r1a1: u384 { limb0: 0x8662843a34c684808e361fc8, limb1: 0x5a38428f88ac5961d9f00e31, limb2: 0x6724f856869e9567aac72def, - limb3: 0x6bc151d66baf82f909ff2b0 - } + limb3: 0x6bc151d66baf82f909ff2b0, + }, }, G2Line { r0a0: u384 { limb0: 0x5527d5630ba777b1fb4ee088, limb1: 0x7e6df03522ab95222d3ffbd7, limb2: 0x307862552a41641cb0ddf50, - limb3: 0x12b662fd55c1871cd2294f80 + limb3: 0x12b662fd55c1871cd2294f80, }, r0a1: u384 { limb0: 0x2ee9236fced8ab9415122d9a, limb1: 0xa76214b949312091aa6358f0, limb2: 0x7df6f68f1a8701aea18b9ec, - limb3: 0x5befdc841ed311c388e2df2 + limb3: 0x5befdc841ed311c388e2df2, }, r1a0: u384 { limb0: 0x2b6fe7920b18941913c6655b, limb1: 0x78fd904d62559b1e4759ea15, limb2: 0xd8f1c747d3f90ced746ae347, - limb3: 0xa64d1afe8a82475a30e8c7d + limb3: 0xa64d1afe8a82475a30e8c7d, }, r1a1: u384 { limb0: 0xff554fd5d64a021bfbc00bf2, limb1: 0xf32efdc99923446fcc7e7ce6, limb2: 0x3d912c666b1ef6b2946fb5a4, - limb3: 0x170c583c65e55b93944cec32 - } + limb3: 0x170c583c65e55b93944cec32, + }, }, G2Line { r0a0: u384 { limb0: 0x951a4e431316ff50c6482c4b, limb1: 0xfca83ba8d8ac3648492339b3, limb2: 0xe58171dcd987509cb26871b3, - limb3: 0xbb9bb5adf70482b97a3bb0 + limb3: 0xbb9bb5adf70482b97a3bb0, }, r0a1: u384 { limb0: 0xbd34770ae9d9ab5889638f6e, limb1: 0xe560cf49df7557f1fc4789e6, limb2: 0xeaa7805774b72bcb87190c5d, - limb3: 0x3cbee01dd125eddb941d5ef + limb3: 0x3cbee01dd125eddb941d5ef, }, r1a0: u384 { limb0: 0x2591fb43af877979ad4813b8, limb1: 0x644b55586a6a840b039947d4, limb2: 0xf8fbb480986ffe538209ee87, - limb3: 0x3ad1974c3abfbbda2f04c39 + limb3: 0x3ad1974c3abfbbda2f04c39, }, r1a1: u384 { limb0: 0x93e4c00d261450378ac274aa, limb1: 0x660682ced30c45a709bb61cb, limb2: 0xd1bf1cf243b7b502956d9c37, - limb3: 0x10ba03cfd910b6debea99ca8 - } + limb3: 0x10ba03cfd910b6debea99ca8, + }, }, G2Line { r0a0: u384 { limb0: 0xb6c906d97aab5e1a9eb8c32d, limb1: 0x85329037280ec3157df623f7, limb2: 0xd9d95abc41d2db2aad018e4, - limb3: 0xe54818adbc0e75e37818e30 + limb3: 0xe54818adbc0e75e37818e30, }, r0a1: u384 { limb0: 0x94754dd0167e9ff97e8becf2, limb1: 0x670389f4b3b102ef1b751a27, limb2: 0x77799f6977420d487566d73b, - limb3: 0x4a016e9a4cb18014c34f16d + limb3: 0x4a016e9a4cb18014c34f16d, }, r1a0: u384 { limb0: 0x410ff00026087c2dbdf2fd58, limb1: 0x9ae51362dd988b2c6ebf5a13, limb2: 0xb13af64f748c9aede0307bb5, - limb3: 0x5cd4ab58201d40254203f2 + limb3: 0x5cd4ab58201d40254203f2, }, r1a1: u384 { limb0: 0x6555f91ee569a8afd438101c, limb1: 0xf3912880056e4067cad1d751, limb2: 0x7a68681bcf4416fbed94065d, - limb3: 0x21c29689b9032ed40de3aa7 - } + limb3: 0x21c29689b9032ed40de3aa7, + }, }, G2Line { r0a0: u384 { limb0: 0x9cb6410ea1c244cf91261620, limb1: 0x9a0ec70e2e435659f0b82aab, limb2: 0x6bdf6b76e92e374094dc4bff, - limb3: 0x17c071fbb0cd439df25600d4 + limb3: 0x17c071fbb0cd439df25600d4, }, r0a1: u384 { limb0: 0x9306de6711a91e50165883e1, limb1: 0xc18e08efb171501bbdff0cb5, limb2: 0xfd1e6d2d3a2460d3410a52e1, - limb3: 0xc2b3cc424e21932b681451b + limb3: 0xc2b3cc424e21932b681451b, }, r1a0: u384 { limb0: 0x5d5dd56986bea0e5134b28fe, limb1: 0x18fd0b9680274cb30e18754a, limb2: 0x4aa4b6112cb15d07ef827dfc, - limb3: 0x7654a15e3407ca6bab2ceda + limb3: 0x7654a15e3407ca6bab2ceda, }, r1a1: u384 { limb0: 0xee1aef22ef67624ae4234d51, limb1: 0x55866c74019cad949d30560f, limb2: 0x8bf24af5437a7ba1a934e0ff, - limb3: 0x16b7dcb84dde31d6d6ab26c9 - } + limb3: 0x16b7dcb84dde31d6d6ab26c9, + }, }, G2Line { r0a0: u384 { limb0: 0xdb7c2f40b16d97db7e13c229, limb1: 0xdff1cd4ca577396b6b70b26b, limb2: 0x1cd9cfb3a94fbf15cb93100, - limb3: 0xfefdba2cc25f2c9988106fa + limb3: 0xfefdba2cc25f2c9988106fa, }, r0a1: u384 { limb0: 0x62c89065b22acd9971ee6c13, limb1: 0xc625f36141a3b56449a77e6f, limb2: 0xa5493f44e855a7cb66dd8bbf, - limb3: 0x12c14460b44cf28ef342f8c5 + limb3: 0x12c14460b44cf28ef342f8c5, }, r1a0: u384 { limb0: 0x60b1fdd98b736e288380b2b, limb1: 0x63aff4cef5521d0cdae1528c, limb2: 0xd36d721112740df1889366c, - limb3: 0x11495a9a17f547466be11d96 + limb3: 0x11495a9a17f547466be11d96, }, r1a1: u384 { limb0: 0x193d4800d3bf3ba99b4873cc, limb1: 0x7f5f89e476bf6b18eb5921b6, limb2: 0x5cb3d8ee744c61fc500e6d7a, - limb3: 0x1523763cf6be6e71c2d91f96 - } + limb3: 0x1523763cf6be6e71c2d91f96, + }, }, G2Line { r0a0: u384 { limb0: 0x1aa12c881d544bcb37558850, limb1: 0x63144f19ff872a71e030cc70, limb2: 0x48ae38b0e1add101ce20c6f3, - limb3: 0x19ff58260aefd123e7ba2a8 + limb3: 0x19ff58260aefd123e7ba2a8, }, r0a1: u384 { limb0: 0x7ced7c5b08862b085468314e, limb1: 0xa13dbc7202177828765c874b, limb2: 0xbed3e3698263832c713811d3, - limb3: 0x292745a86de12caf184cbee + limb3: 0x292745a86de12caf184cbee, }, r1a0: u384 { limb0: 0x8c959e86f45c34c2a6916d1b, limb1: 0x9f18192cb102d0ff3966b40e, limb2: 0x52e77aa983872d849ff8d43d, - limb3: 0x48e5858a2e8ae6f1bc52341 + limb3: 0x48e5858a2e8ae6f1bc52341, }, r1a1: u384 { limb0: 0x3ac200354363217e43902841, limb1: 0x171fc3dfcb35d029c4833069, limb2: 0xfcbd684ba325147b59f94274, - limb3: 0x730542a2728b9e2dd2070a4 - } + limb3: 0x730542a2728b9e2dd2070a4, + }, }, G2Line { r0a0: u384 { limb0: 0x3bc964d3cbdd70ad2e06f5fa, limb1: 0x9e036ff6ff547b6bff393699, limb2: 0x297502ec4ddf92bd4a493750, - limb3: 0x73084817d704764e798e635 + limb3: 0x73084817d704764e798e635, }, r0a1: u384 { limb0: 0x31809caa85fd1dee70633314, limb1: 0x6c523cb1d6d1fa98de5a75dd, limb2: 0x1aa4873cc1858c15952ba162, - limb3: 0x14849b1aabca26d959441cde + limb3: 0x14849b1aabca26d959441cde, }, r1a0: u384 { limb0: 0xacae5867577225d72b8258bc, limb1: 0x96a4b24a109f241ed9c103e0, limb2: 0xe3442c632f299305679b0bca, - limb3: 0x14d7ce3b603d1e7cd7e2361a + limb3: 0x14d7ce3b603d1e7cd7e2361a, }, r1a1: u384 { limb0: 0x5e1f793ad67dd2264e64d9, limb1: 0xadfd0cda9704c46e93b68319, limb2: 0xb34174c0ba3f0e5690b4f12, - limb3: 0x7cead3683efbab7c7c3a775 - } + limb3: 0x7cead3683efbab7c7c3a775, + }, }, G2Line { r0a0: u384 { limb0: 0x999071a9101732d492061a90, limb1: 0xe63f37b3174c5f1297e235f6, limb2: 0x95b88eed7507ce097bbe89ca, - limb3: 0x163149501da9846df4670d0c + limb3: 0x163149501da9846df4670d0c, }, r0a1: u384 { limb0: 0x9e9d3eddfe0b0aab2fbec0c, limb1: 0xfea1de933107fff354bc0f3d, limb2: 0xb517bbbc647a7ab824f4e848, - limb3: 0x170b612b36fc686c2e694d29 + limb3: 0x170b612b36fc686c2e694d29, }, r1a0: u384 { limb0: 0x7fc55183f351dd4a9d52c0db, limb1: 0x2912e3b30839b48a933c3e5e, limb2: 0x39262021239a1090055cd429, - limb3: 0xec3a57880804fd3f02e825a + limb3: 0xec3a57880804fd3f02e825a, }, r1a1: u384 { limb0: 0x99b5fb13fc76d8a2c2cfa88d, limb1: 0x2af93378b2e0d8d194604349, limb2: 0x832ee1f724befe4e41349494, - limb3: 0x2a4caaf73deb41cddeb1e20 - } + limb3: 0x2a4caaf73deb41cddeb1e20, + }, }, G2Line { r0a0: u384 { limb0: 0xb4c0e53b8b85b70fd397ca9, limb1: 0xf81023bcd84336ba486bbb69, limb2: 0x951f292517f80fefb53ce43a, - limb3: 0x1854db111892206ddcc7d4f2 + limb3: 0x1854db111892206ddcc7d4f2, }, r0a1: u384 { limb0: 0x7d3f4d9b31edded71452fa4e, limb1: 0x1d7efee57fa90e3a87b5bf30, limb2: 0x98b4bb185fadc2115844beb3, - limb3: 0x9323c26174a9528c0078a0c + limb3: 0x9323c26174a9528c0078a0c, }, r1a0: u384 { limb0: 0xcae0056d355b9f6761bec260, limb1: 0x761aac0270bdc92cbcffd5c3, limb2: 0x7eeedd0df5c8b1cf9b25033, - limb3: 0xdf44e5cb05d7ac7267fca21 + limb3: 0xdf44e5cb05d7ac7267fca21, }, r1a1: u384 { limb0: 0x2c618c362b029fd18c70f772, limb1: 0x16872fb729361313dff53d74, limb2: 0x83abe31b8bfade90e907f78f, - limb3: 0xe38ce80ae574859be5b287e - } + limb3: 0xe38ce80ae574859be5b287e, + }, }, G2Line { r0a0: u384 { limb0: 0xc483cab3af32b8cce205e87d, limb1: 0x9d2a45392f78c5e530451785, limb2: 0xdb6c59ed5b82f4de76b7256b, - limb3: 0x47c81e4cc5e1c5d2ff3dfb7 + limb3: 0x47c81e4cc5e1c5d2ff3dfb7, }, r0a1: u384 { limb0: 0xf7f0999a8a0c2078daf563ff, limb1: 0xf801e673de7a6681d0ad832c, limb2: 0x6dd8755c6b9fef053dda67f0, - limb3: 0x470082fac490f7d8ff83d05 + limb3: 0x470082fac490f7d8ff83d05, }, r1a0: u384 { limb0: 0x1d9f096b1cdfa9d92f3ecd86, limb1: 0x303cd4299b5599615f34e12, limb2: 0x4d28fad42e2136274fc22ac1, - limb3: 0x42ad6e99b972ba7faaccfa + limb3: 0x42ad6e99b972ba7faaccfa, }, r1a1: u384 { limb0: 0x7d9d2503df48b7eb05d6cc13, limb1: 0x6a65472b48aff35a2ae3a9d3, limb2: 0xcbb040de22bd261b17829a93, - limb3: 0x2f359c6ff6e984beda9b4e0 - } + limb3: 0x2f359c6ff6e984beda9b4e0, + }, }, G2Line { r0a0: u384 { limb0: 0x3368b59a608905f593717f6c, limb1: 0x9fadc99f54479421462b44a6, limb2: 0x7ecc879dfa7e889b09cddc25, - limb3: 0xafacf2a7a033583c7e9d920 + limb3: 0xafacf2a7a033583c7e9d920, }, r0a1: u384 { limb0: 0x284cfbe8d68936e4fcc5e83, limb1: 0x65a8a02635080d8565116a03, limb2: 0x7a868f131cbcd89142de7559, - limb3: 0xcc53ca2497099a56ff098ff + limb3: 0xcc53ca2497099a56ff098ff, }, r1a0: u384 { limb0: 0xc58cbd4b283cbf3eff21b78a, limb1: 0x67dd7b9f8984e236e1c6b51c, limb2: 0x3e6366a0c97a444c9defec8d, - limb3: 0x11132f87bc1acdb72deafe50 + limb3: 0x11132f87bc1acdb72deafe50, }, r1a1: u384 { limb0: 0x538f361d8e86e4617e6a5770, limb1: 0x8538c52255d062c8dd6b6a6e, limb2: 0x3cf6cfda020417393f068a01, - limb3: 0x2dcc10794cec979dc66f076 - } + limb3: 0x2dcc10794cec979dc66f076, + }, }, G2Line { r0a0: u384 { limb0: 0x91346b567f76364e14397802, limb1: 0xe4669ab6c6c801868ea181c9, limb2: 0x69e8ca27aa64f9b9deff6b5e, - limb3: 0x1324fcf625329027578f8a1f + limb3: 0x1324fcf625329027578f8a1f, }, r0a1: u384 { limb0: 0x1b90c202de3c543db443916c, limb1: 0xa1b60baac0c7858225ee8f4e, limb2: 0xc122c8ac8d01fa4f77561f6d, - limb3: 0xbf8ce24ece91062b1fafaa0 + limb3: 0xbf8ce24ece91062b1fafaa0, }, r1a0: u384 { limb0: 0x349aa436731d52ce8143d7fe, limb1: 0xf01f24c451c7f3cee4523ba9, limb2: 0x95aeaad6f40e28638278856e, - limb3: 0x11018272ddb0440784f09552 + limb3: 0x11018272ddb0440784f09552, }, r1a1: u384 { limb0: 0x44f1642d198d8ef7cc740f99, limb1: 0x3fcb198297333fc4f5188eec, limb2: 0xf9355343a13841f641108327, - limb3: 0x7ca3e5d510ac999944827d5 - } + limb3: 0x7ca3e5d510ac999944827d5, + }, }, G2Line { r0a0: u384 { limb0: 0x1ae539cd3d5bfd7479374a3a, limb1: 0x99986d947095a5d0e52d8cb4, limb2: 0x85c3a70092a1328677770181, - limb3: 0x191626fe1a2306ec9140df49 + limb3: 0x191626fe1a2306ec9140df49, }, r0a1: u384 { limb0: 0xd60992cc29ba925f57b9aa72, limb1: 0x6f5f37c85cf18ccb3f47bef6, limb2: 0x11dfbc1091ccdc6b21563041, - limb3: 0x371c988f9b10c65bd6912 + limb3: 0x371c988f9b10c65bd6912, }, r1a0: u384 { limb0: 0x6ab68e6eaa011a274ade6247, limb1: 0x53c650901cf6547029586264, limb2: 0x217b97d310aa75843d576b00, - limb3: 0xb34674dd9565502f88c2310 + limb3: 0xb34674dd9565502f88c2310, }, r1a1: u384 { limb0: 0xda421691cbe1d6e42d607a17, limb1: 0x41918f135ebf00991f4ea5f, limb2: 0x3b96c0b3672bee4ac88cfe38, - limb3: 0xedebecc6bc8087f71261d0b - } + limb3: 0xedebecc6bc8087f71261d0b, + }, }, G2Line { r0a0: u384 { limb0: 0x5708387c81243d8656ed877b, limb1: 0xe445c9668475e7ee6a220c3c, limb2: 0x9a5616be12b5ca329b1e9351, - limb3: 0x98439dacd980beada81f775 + limb3: 0x98439dacd980beada81f775, }, r0a1: u384 { limb0: 0x24153e1576aac5b27c520a25, limb1: 0x63099212876df906160f0bdc, limb2: 0xacf518d04b54fb97a80223a4, - limb3: 0x159baddef0ddc9dbaabfa621 + limb3: 0x159baddef0ddc9dbaabfa621, }, r1a0: u384 { limb0: 0xbe25262bec154dfef1428866, limb1: 0xa2c787ef175bc996f0b35f95, limb2: 0x32b960ca398570da22485f90, - limb3: 0xa5eda48d9b501ca3e565fdc + limb3: 0xa5eda48d9b501ca3e565fdc, }, r1a1: u384 { limb0: 0x575e126dbb7dd3b0bd23eb9d, limb1: 0x1bc5525abae24ad5be772bf9, limb2: 0xe8d0e48a8737f58e7d56d4c1, - limb3: 0x1045e77f326c79fb8086ec53 - } + limb3: 0x1045e77f326c79fb8086ec53, + }, }, G2Line { r0a0: u384 { limb0: 0x6d56d1252725e7f5143c8590, limb1: 0x35d67756ade4dee8f8be255e, limb2: 0x303dfcf0cbf0761f5a085ccb, - limb3: 0x5ed54990f1521085b462863 + limb3: 0x5ed54990f1521085b462863, }, r0a1: u384 { limb0: 0xd8f454dda993b61de297e66c, limb1: 0xcbfbf6b7b48d4a55bc672a3b, limb2: 0x4ff1328c6462d1fc71f2c955, - limb3: 0xe481de1284934419be4f77e + limb3: 0xe481de1284934419be4f77e, }, r1a0: u384 { limb0: 0x4ae8cd7c0c3d1c169a6bde1, limb1: 0xe5ced7984c11e16ac61e6337, limb2: 0xdf6341c367b3c11a34785533, - limb3: 0x66193e648c407cda52b0a86 + limb3: 0x66193e648c407cda52b0a86, }, r1a1: u384 { limb0: 0xd5108a1ee2d649a19acb66c8, limb1: 0x360824b595c0ceb4ffa2eef3, limb2: 0xb954a7a4dbd0ba9344fd0c57, - limb3: 0xcfb3335779d608b47dbc5c - } + limb3: 0xcfb3335779d608b47dbc5c, + }, }, G2Line { r0a0: u384 { limb0: 0x1905660330e264ffe1201088, limb1: 0xe77ab0740f1c3b23f0f51f50, limb2: 0x8ef7cee645865d3da96ac0e5, - limb3: 0x168ed09f27759e0ce04c9746 + limb3: 0x168ed09f27759e0ce04c9746, }, r0a1: u384 { limb0: 0x55d57a2fd6abd06bdc4937b0, limb1: 0x26e6337a256c5d0b5a1afd47, limb2: 0x3ac49416e71b8427f2562fb1, - limb3: 0x2ff671352fc439126c3772a + limb3: 0x2ff671352fc439126c3772a, }, r1a0: u384 { limb0: 0x8fd316a93a09f110e6160238, limb1: 0xdd0daafc6ed6c95aa1b344b2, limb2: 0x210b615efd4970d9dbc58783, - limb3: 0xf448d964ca7f8796e644e2d + limb3: 0xf448d964ca7f8796e644e2d, }, r1a1: u384 { limb0: 0x29b9f2bc42f2ffd5005f5eb4, limb1: 0xc48f2cbd47015150e31a4823, limb2: 0xaba30fd7d93d1e7a0d228fb0, - limb3: 0x135a194d7581a97a56598750 - } + limb3: 0x135a194d7581a97a56598750, + }, }, G2Line { r0a0: u384 { limb0: 0x92836260b75c579dbd14b12a, limb1: 0x620b095c36717ab6852efa2, limb2: 0xc1eafa05172755028bd35b2, - limb3: 0xe5b66fa93381b5aed7bb46a + limb3: 0xe5b66fa93381b5aed7bb46a, }, r0a1: u384 { limb0: 0x73e4e9ac5f5bd83e9aa5959c, limb1: 0x36949ed94590d0197fc158ab, limb2: 0xc2ef7657cfb98405cb7ebeaa, - limb3: 0x8445f154af158efd856e68a + limb3: 0x8445f154af158efd856e68a, }, r1a0: u384 { limb0: 0x581c26803b5b1f3e199f7ab2, limb1: 0x5ae8d3853d0699834c85d670, limb2: 0x8ad634ec4b30b96b6a80383f, - limb3: 0xd488f35f949c09cf57164e7 + limb3: 0xd488f35f949c09cf57164e7, }, r1a1: u384 { limb0: 0x55c31b3cb4484c5bc1ae6cca, limb1: 0x866f2857d1cfd432a2e31087, limb2: 0x5d00ff10ce51b502176df865, - limb3: 0x172fe3e278748039822ecdca - } + limb3: 0x172fe3e278748039822ecdca, + }, }, G2Line { r0a0: u384 { limb0: 0x6a6472287dda67068ae6340c, limb1: 0x3cfc2833599fdfa121b9fe7e, limb2: 0x31ff610147c17e23f45b5486, - limb3: 0x185130e4f785abb0619abe9 + limb3: 0x185130e4f785abb0619abe9, }, r0a1: u384 { limb0: 0x4393bed022a497d9346164ac, limb1: 0x130b9265e6e5ee1c7df031ce, limb2: 0x6715f0b4d6099b750a24d3d9, - limb3: 0xe91da3136cb53d96c595b78 + limb3: 0xe91da3136cb53d96c595b78, }, r1a0: u384 { limb0: 0x55fd3f010688075e5978b14, limb1: 0xff1b2f45c9d48fef7bb2490d, limb2: 0xfada4a38c5e40aff5c0b0c19, - limb3: 0xcd1bf218916e21b0b11b7bd + limb3: 0xcd1bf218916e21b0b11b7bd, }, r1a1: u384 { limb0: 0x6694ff2e84b88d0b28a86c7, limb1: 0xdbed6debb000097d0d7aed0c, limb2: 0x135d21c4bb6d0ca7d8768c31, - limb3: 0x187a63bf7554a98e6d087717 - } + limb3: 0x187a63bf7554a98e6d087717, + }, }, G2Line { r0a0: u384 { limb0: 0xbf20ae5e2142585ab87496b2, limb1: 0x66dbe973ac92a361793c678e, limb2: 0x34adbc4eee58df2265649a7a, - limb3: 0x161986b067ab47313f14f315 + limb3: 0x161986b067ab47313f14f315, }, r0a1: u384 { limb0: 0x5dafd82ea5951b1700b85fd6, limb1: 0xa032df8c5c8b6ff0c82d4335, limb2: 0x5e9d0d2cd37437c605b9ca77, - limb3: 0x713edf121dafa633e361a77 + limb3: 0x713edf121dafa633e361a77, }, r1a0: u384 { limb0: 0xf48d3a8c3104532057ca25ca, limb1: 0x6dbf987d3174e477ed32e3dd, limb2: 0xc4a4c6d77d33f0cfd64ea3da, - limb3: 0x36c11e29cc4fb647a958057 + limb3: 0x36c11e29cc4fb647a958057, }, r1a1: u384 { limb0: 0x1fbf942fc96f0157cf750797, limb1: 0x6c1aa4ccb2d753301f746dcd, limb2: 0x4d09e39cd306fe441eea9bc0, - limb3: 0x5a5d219af2a34e73631f810 - } + limb3: 0x5a5d219af2a34e73631f810, + }, }, G2Line { r0a0: u384 { limb0: 0xcc5753fa5f9c2031b7c52b48, limb1: 0xc05b4af7e1a54143e7ade2b7, limb2: 0x7b585f7f4937d5d56ee06a1d, - limb3: 0x9c88d19f51226766b5fc7e1 + limb3: 0x9c88d19f51226766b5fc7e1, }, r0a1: u384 { limb0: 0xb7e478b01ca956db521aff83, limb1: 0x6a187593d50cc4f027e11347, limb2: 0x462960288c2ed800cb8d93f9, - limb3: 0x36e4e0fb04b76c200f8fb8 + limb3: 0x36e4e0fb04b76c200f8fb8, }, r1a0: u384 { limb0: 0xf9710b97ef78c7473b8a09da, limb1: 0x864cfcbe4725c0b6928f2a56, limb2: 0x6c695406b9c701a19ff65fc9, - limb3: 0x79d5669429ce771f3e3dab6 + limb3: 0x79d5669429ce771f3e3dab6, }, r1a1: u384 { limb0: 0x8ec637f338c24ff852fd062c, limb1: 0xdbe45df89124a93faec45927, limb2: 0x7e86298f4efebacdefb4fb7e, - limb3: 0xdd88cbee8b074de30e60664 - } + limb3: 0xdd88cbee8b074de30e60664, + }, }, G2Line { r0a0: u384 { limb0: 0xfcaec442440567fbd524afd3, limb1: 0x8a98d6814b4e1a9d7cc758f5, limb2: 0x2f760e54677f2bfe70729dda, - limb3: 0x10d9b23a3b0bed118a63da40 + limb3: 0x10d9b23a3b0bed118a63da40, }, r0a1: u384 { limb0: 0xf8ddb0878dacb7f806e628f6, limb1: 0xa92656b5a22485577c56af43, limb2: 0xc1966ef8fd5955d77fe82334, - limb3: 0x14241c193aeb87dabd157fcb + limb3: 0x14241c193aeb87dabd157fcb, }, r1a0: u384 { limb0: 0xe24c327f129ea9cc0c685f56, limb1: 0x2cc19f72e94fdb6bd9c760af, limb2: 0xf2d5c5f0374a2fc038365379, - limb3: 0x1878ead2b6e1e7596ec4cfde + limb3: 0x1878ead2b6e1e7596ec4cfde, }, r1a1: u384 { limb0: 0xbe9a8c83f17d63b11ec592f7, limb1: 0x333dabd959a73409e3af6512, limb2: 0xc6a319cf5c77477ad20fb93b, - limb3: 0x702610944a3a8ae2f03176d - } + limb3: 0x702610944a3a8ae2f03176d, + }, }, G2Line { r0a0: u384 { limb0: 0xe3f40bb32c0c05422e341419, limb1: 0xf98709366139095ffb68876e, limb2: 0x2674c9dda9d7a090002bc885, - limb3: 0x17eae9f6a6302f7703aa443f + limb3: 0x17eae9f6a6302f7703aa443f, }, r0a1: u384 { limb0: 0xe2dd70013040cad06ef5ca86, limb1: 0x42a8d956ad95aea9367a1f5f, limb2: 0x9810ea523e0cf2253013f127, - limb3: 0x8bbc56ac77f83287136e63b + limb3: 0x8bbc56ac77f83287136e63b, }, r1a0: u384 { limb0: 0x9b99afd48e0d94cbff84eece, limb1: 0xe1b581098b2ccd1c8955a1eb, limb2: 0x5f4e293d975fca4259bf4fd7, - limb3: 0x5580f5ed24c4fa4f4a1dad5 + limb3: 0x5580f5ed24c4fa4f4a1dad5, }, r1a1: u384 { limb0: 0x9576941ab7748b52d007681d, limb1: 0x90a60953d0871a846ab3b1f0, limb2: 0xf79279b4da9f3433f8099425, - limb3: 0x195f49ffeb41a4213cda8f46 - } + limb3: 0x195f49ffeb41a4213cda8f46, + }, }, G2Line { r0a0: u384 { limb0: 0x90cef5ee61e6df7a454608fe, limb1: 0x88fe96f3b500db97a43de2d1, limb2: 0xa5d6accf5ccaa42fe16a3992, - limb3: 0xae32950a755162ce529df78 + limb3: 0xae32950a755162ce529df78, }, r0a1: u384 { limb0: 0xf3ae985d887f474aa5877b76, limb1: 0xb8547eba672182699a37b51, limb2: 0xb7c251f43cab02164068b78f, - limb3: 0x174654a7bb0641d12855a77f + limb3: 0x174654a7bb0641d12855a77f, }, r1a0: u384 { limb0: 0xf753460ade95181364d2f3ea, limb1: 0x96a3ec0badb9f7367bde0aab, limb2: 0xff4d25450e90338ada3905d3, - limb3: 0xd5c3971a419820ff1b7cccd + limb3: 0xd5c3971a419820ff1b7cccd, }, r1a1: u384 { limb0: 0x3f1ecd361055779f1b53e7b1, limb1: 0x14d20a7dda52d2825dbf9837, limb2: 0x14a64436c97c743580f85855, - limb3: 0xdfc88a6d5eac1b6de8191f - } + limb3: 0xdfc88a6d5eac1b6de8191f, + }, }, G2Line { r0a0: u384 { limb0: 0xae56b988f4758a522dca5a4d, limb1: 0xae3d0e7e09190f3609c309cd, limb2: 0x47682787ec998873eb9d2407, - limb3: 0x1450b662024978043b49dc8d + limb3: 0x1450b662024978043b49dc8d, }, r0a1: u384 { limb0: 0xbb90fcac5a679687e056e1ab, limb1: 0x346bb08e621a7eb5bfb4fac4, limb2: 0xa4f760e0f167e1a1bd40c3f, - limb3: 0x14844a685948d595d4670e4d + limb3: 0x14844a685948d595d4670e4d, }, r1a0: u384 { limb0: 0x30be8b4bacb9ba7ed94ecc16, limb1: 0x39660a59eb1229ceac4b77b5, limb2: 0xa7c51a2eb736180af609d139, - limb3: 0x3565a224e9d4c23eb077b2f + limb3: 0x3565a224e9d4c23eb077b2f, }, r1a1: u384 { limb0: 0x8439a957b7e57d9a49eebba6, limb1: 0xf61f936d1748fd0836c435f9, limb2: 0xe02f71c8ca4c526df790cfac, - limb3: 0xc873450002e03b8fbae2d85 - } + limb3: 0xc873450002e03b8fbae2d85, + }, }, G2Line { r0a0: u384 { limb0: 0xea2aa2ef798d63dae1ad5987, limb1: 0xc1cc74e5c2033001dbfb3d2a, limb2: 0x84aca7a16c78c31ed8f8ed89, - limb3: 0x14dccb954adf43f1f8d66861 + limb3: 0x14dccb954adf43f1f8d66861, }, r0a1: u384 { limb0: 0xc582e31d76536e6079306875, limb1: 0x6b02558893b8f50219b410a2, limb2: 0xbde3edcd153b6a2a637da1d3, - limb3: 0xd094e0bb17f9376d4e53419 + limb3: 0xd094e0bb17f9376d4e53419, }, r1a0: u384 { limb0: 0x7cd03ef2cd33db33f6a8ae2c, limb1: 0x5e2f73868b9435622e66abde, limb2: 0x17d48c069f57a0f70ef9b0c3, - limb3: 0x14f4eacc84d8d967e9bf296a + limb3: 0x14f4eacc84d8d967e9bf296a, }, r1a1: u384 { limb0: 0xc22e92ae4c9bf9dce9693503, limb1: 0xecee5b30a52a97acf85cc7db, limb2: 0x6a40372e261a1a3f795946e3, - limb3: 0x108e71b5478085f037d483ca - } + limb3: 0x108e71b5478085f037d483ca, + }, }, G2Line { r0a0: u384 { limb0: 0xfd3f06dc9ab069ab1ce8f8a1, limb1: 0x94eab902643916c93a42725d, limb2: 0x92896eef5c25b54929be81c, - limb3: 0xe1231b2187274313b2221ea + limb3: 0xe1231b2187274313b2221ea, }, r0a1: u384 { limb0: 0xe79feb70c92be5b75090280e, limb1: 0xa079b2d01c8fd3c5e91224d5, limb2: 0xc3d6265ffbc67b2935500cb7, - limb3: 0xc55e460244e9d7e4724fc08 + limb3: 0xc55e460244e9d7e4724fc08, }, r1a0: u384 { limb0: 0xc2536498b81604b679714431, limb1: 0xfba1e239fe9a2ba2b8434f7d, limb2: 0xfb06ed703e76ad221dd5f099, - limb3: 0x179f886a9d4a211471ca742c + limb3: 0x179f886a9d4a211471ca742c, }, r1a1: u384 { limb0: 0xc0002d164553ae2136d17389, limb1: 0x9e4c21af2da6e3fa6547209b, limb2: 0xc0d2c1b4544b1ff1f728f42f, - limb3: 0x5d028766fec144c63899579 - } + limb3: 0x5d028766fec144c63899579, + }, }, G2Line { r0a0: u384 { limb0: 0xbc724a32cdf5e686384f9c7a, limb1: 0x392e6cc66a96742b02d99a2d, limb2: 0xeb9b287e3c4d8e9fb1139bdc, - limb3: 0x12871a93fbded0050b89a65f + limb3: 0x12871a93fbded0050b89a65f, }, r0a1: u384 { limb0: 0xd651768ec377726d1e98bbc3, limb1: 0x161f43ed1fa20484936f2fa3, limb2: 0xc1ac29c81e10ff7a9de14de, - limb3: 0x19f6a875998dc4da65846083 + limb3: 0x19f6a875998dc4da65846083, }, r1a0: u384 { limb0: 0x9bb0b60d42e6317602bd7ce7, limb1: 0x81349962f265bf955e2764be, limb2: 0x1c169de754e8e91e0db4fa7e, - limb3: 0xc08c552ccddf1e5cff0e338 + limb3: 0xc08c552ccddf1e5cff0e338, }, r1a1: u384 { limb0: 0xb38dc139b4e54949577b1af0, limb1: 0xa84359dd65e8195ade74119b, limb2: 0x98af04c069558c8ff3c8a988, - limb3: 0xd7d61d48c3534a82ef148f9 - } + limb3: 0xd7d61d48c3534a82ef148f9, + }, }, G2Line { r0a0: u384 { limb0: 0x295040d451b4f8c10a66f7d7, limb1: 0xf80871061d801c912de9eafb, limb2: 0xed8fba8b831bbb416e5ebee6, - limb3: 0x8e430db1b12d579f711d4d0 + limb3: 0x8e430db1b12d579f711d4d0, }, r0a1: u384 { limb0: 0xd164d4b3a22de89a6127a3da, limb1: 0x3179de3a1d34aa2ba893d3bd, limb2: 0xd13dbdaf8082b8707f996dcb, - limb3: 0x331baf7d5a95517a04106b9 + limb3: 0x331baf7d5a95517a04106b9, }, r1a0: u384 { limb0: 0x9c001f3c828430bd90bdc1c7, limb1: 0xb547be2465b75cb89225949e, limb2: 0xb122f0237cfe3b5d08f35577, - limb3: 0x11503e8a68740fb9362c9459 + limb3: 0x11503e8a68740fb9362c9459, }, r1a1: u384 { limb0: 0x65097bf894cc61c85f24f61e, limb1: 0xdf7a3e16965ab9a30895ea0d, limb2: 0x847935d9036676bf5514e7c3, - limb3: 0x177430f992f8d04517396f1a - } + limb3: 0x177430f992f8d04517396f1a, + }, }, G2Line { r0a0: u384 { limb0: 0xa0441a4e753643b9355a3f17, limb1: 0x5a5c762a2fd001fa04296621, limb2: 0x8aae9d0aadb27b00bfb42ba7, - limb3: 0xc001ec34e10687e40e3fe3a + limb3: 0xc001ec34e10687e40e3fe3a, }, r0a1: u384 { limb0: 0xcf274b3feea0a98a9b78a1f, limb1: 0xeda53e4c0d1b94029825054e, limb2: 0x77bd53e6876b8b4092e9830e, - limb3: 0xf544b1f6c1cbceaa8e8a27d + limb3: 0xf544b1f6c1cbceaa8e8a27d, }, r1a0: u384 { limb0: 0x4875b1a7e30d8b356c4b48d5, limb1: 0x793f8bad6545072c701e941e, limb2: 0xdfaae7697d21b2c91f24603b, - limb3: 0x173d1e1c4f05bc5b74162c78 + limb3: 0x173d1e1c4f05bc5b74162c78, }, r1a1: u384 { limb0: 0x1cb3eb9353a1f193fb82307e, limb1: 0x31022b7f3322bddb99c07c3e, limb2: 0x1be773cf729614f209981079, - limb3: 0xfba0833bdd7e0106f828369 - } + limb3: 0xfba0833bdd7e0106f828369, + }, }, G2Line { r0a0: u384 { limb0: 0x8e9e39aea770477dfe41413f, limb1: 0x559b27235633eae55e8ca028, limb2: 0x2e0b31fe51912846733f2096, - limb3: 0x119fa86b301bad56082a7a7d + limb3: 0x119fa86b301bad56082a7a7d, }, r0a1: u384 { limb0: 0x180fe9c5376d245dfcee6c8a, limb1: 0xa8dd4c7ddf1cb669c8641bb8, limb2: 0x7a6d705717e66bb11df0c176, - limb3: 0x9ff35d1500f1e43f5865d55 + limb3: 0x9ff35d1500f1e43f5865d55, }, r1a0: u384 { limb0: 0xc028e802f19a8ce09f9f23, limb1: 0xce04a4a4f6d5a750653cc7f7, limb2: 0xa6205c0b6fed3d0ae979bc7, - limb3: 0x13d44560fc6bb13d20f95fb9 + limb3: 0x13d44560fc6bb13d20f95fb9, }, r1a1: u384 { limb0: 0x561f8c090b24590a5ee95f0c, limb1: 0x6c79bc6d06256ea89d865cf5, limb2: 0x22d121d8814a3e99fab8b5b1, - limb3: 0x4e23c464de2a41f3634339c - } + limb3: 0x4e23c464de2a41f3634339c, + }, }, G2Line { r0a0: u384 { limb0: 0xe3570af849f18f7de4fcdcc2, limb1: 0x359d4f295f551f49f4ce0f43, limb2: 0x5fe81d5b454ac7b4d4be42e5, - limb3: 0x1827c0c95f19420686366ca1 + limb3: 0x1827c0c95f19420686366ca1, }, r0a1: u384 { limb0: 0xa80485f524899e0cafdb37ee, limb1: 0xe411dfbadc22a4e279fd320d, limb2: 0x4c187fbb32f9c03e9f8cb503, - limb3: 0x4443bb766a082498ba4f82b + limb3: 0x4443bb766a082498ba4f82b, }, r1a0: u384 { limb0: 0x9fb076b57d27346b27413dac, limb1: 0x169bffe50985257a033e162c, limb2: 0x847335f827ed1b57015c8125, - limb3: 0xa597c1ceea834fc4b9e4175 + limb3: 0xa597c1ceea834fc4b9e4175, }, r1a1: u384 { limb0: 0x6ab00cdbb6122cf0abafc5cc, limb1: 0xce164faae38420ccb08012ee, limb2: 0xdcf9b5ad40487bd3f8b80798, - limb3: 0x1416a582ca2f516030f48cd4 - } + limb3: 0x1416a582ca2f516030f48cd4, + }, }, G2Line { r0a0: u384 { limb0: 0x262938eb02b0a0ce738b5135, limb1: 0x87081cbabce49821653c349b, limb2: 0x3fcca5c6ffa7a93194552dd4, - limb3: 0x5f33058fd7a6f5562daa952 + limb3: 0x5f33058fd7a6f5562daa952, }, r0a1: u384 { limb0: 0xdb76adbd6f126b7e297a2a22, limb1: 0xdc1536a0cc54a2f6012a71fd, limb2: 0x5efc1d4d08e9adb2b0ef7131, - limb3: 0xaa29cc910ff93bd714430ce + limb3: 0xaa29cc910ff93bd714430ce, }, r1a0: u384 { limb0: 0x21aaddfbe26c0076a1332277, limb1: 0x5befc360a7b2df7cb42a9106, limb2: 0x84c8928ec73a7ad664bd4166, - limb3: 0x1210a1b9dad92922a760b203 + limb3: 0x1210a1b9dad92922a760b203, }, r1a1: u384 { limb0: 0x5f784e1ac6fdc4df7afc0fdd, limb1: 0x50db8e7afbc30c4f71fb694e, limb2: 0x63a33182a4d866eaf5174a90, - limb3: 0x3f8bf361c208df3e1726f03 - } + limb3: 0x3f8bf361c208df3e1726f03, + }, }, G2Line { r0a0: u384 { limb0: 0x5b64c7ec2aae834addcea0eb, limb1: 0x6f09c230bd77e317eaa5f387, limb2: 0x7adec10bb78aca18464d9c84, - limb3: 0x163574a747167dd083db3305 + limb3: 0x163574a747167dd083db3305, }, r0a1: u384 { limb0: 0x9c2652b4c20bf74024218182, limb1: 0xa2f015e045625953330e76b3, limb2: 0x500283810da9c9a67c2fe8b9, - limb3: 0x75023affbdb4b667a21158b + limb3: 0x75023affbdb4b667a21158b, }, r1a0: u384 { limb0: 0xf0773eec0af14322cfed77c3, limb1: 0x268fb48d3bc1f128636687f1, limb2: 0x9fd00e0a5e5f3035244cb7c1, - limb3: 0x14f215b62046fce592481ca1 + limb3: 0x14f215b62046fce592481ca1, }, r1a1: u384 { limb0: 0xef9be30f50ebea41d28d75c9, limb1: 0x193fa33c3c816bddcc207425, limb2: 0x68976ca00c72e88755f5296, - limb3: 0x10ab8afd148808ae0e486da2 - } + limb3: 0x10ab8afd148808ae0e486da2, + }, }, G2Line { r0a0: u384 { limb0: 0xcd513d6ba860c71057206399, limb1: 0x451ecd2c9b96e60e66758dc0, limb2: 0x64ced0ddb512c97bc59cf920, - limb3: 0x3f4ac01fe942b1ac9311d3f + limb3: 0x3f4ac01fe942b1ac9311d3f, }, r0a1: u384 { limb0: 0x2998601d0aca6605631bd0c0, limb1: 0xb8fc0faae442022a0626fe9a, limb2: 0xf661588e85d804f1f2048c6c, - limb3: 0x1298ae12dceae383634c5c78 + limb3: 0x1298ae12dceae383634c5c78, }, r1a0: u384 { limb0: 0xc742ad0b483c6424693da3a4, limb1: 0xdaa35b3d0ba84948c3e058e6, limb2: 0xf2be609830ad79764d4aa3b0, - limb3: 0x117d58d6d1a5a32518ed182a + limb3: 0x117d58d6d1a5a32518ed182a, }, r1a1: u384 { limb0: 0x9011dc447abae8f91198a37e, limb1: 0x8286397fef7c1a7a377647d7, limb2: 0x1ccb94f068d152311de445ae, - limb3: 0x7dccd16a52f94da768c38bb - } + limb3: 0x7dccd16a52f94da768c38bb, + }, }, G2Line { r0a0: u384 { limb0: 0x538c083ce4e1deb79fc8d7ae, limb1: 0xcff551314712bb599e99f0b9, limb2: 0x9bf9eb4d01de1579ddd826eb, - limb3: 0x2a1ea081d2dbbfb9b85015a + limb3: 0x2a1ea081d2dbbfb9b85015a, }, r0a1: u384 { limb0: 0xee2ecee8b151574694d17327, limb1: 0x2fe6c87f4670d9b999d3772b, limb2: 0xc0ad5a6e62cf44b446f89a6f, - limb3: 0x10f2b18da949e2a50114e551 + limb3: 0x10f2b18da949e2a50114e551, }, r1a0: u384 { limb0: 0xf9fa9355d7c82720f8e21bd2, limb1: 0xaca9cc30e7371424a78bdc29, limb2: 0x7349b58cc0ae05fb6db5f578, - limb3: 0xe36c1e3ac43374add4493ee + limb3: 0xe36c1e3ac43374add4493ee, }, r1a1: u384 { limb0: 0xa06af78a8ab34c1022f0b846, limb1: 0xb8c3411e193439f11b63b3f4, limb2: 0x513dc683165699443b4ece80, - limb3: 0xd2a46af0a089885b4499c38 - } + limb3: 0xd2a46af0a089885b4499c38, + }, }, G2Line { r0a0: u384 { limb0: 0x307547f29ce0e10a413edb2b, limb1: 0xef4de07379413a2e7d3ac526, limb2: 0xbf4e796dab1d7b8ec71a6c9d, - limb3: 0x19a4c8fc8080493b37dad997 + limb3: 0x19a4c8fc8080493b37dad997, }, r0a1: u384 { limb0: 0x2d4b6d98f6a62dc9cb1b3c, limb1: 0x2e820a6c08cc1b1be230cd27, limb2: 0x493e8c672a2898b9a16ac6f8, - limb3: 0x5357128dd5f24fd60edc8a8 + limb3: 0x5357128dd5f24fd60edc8a8, }, r1a0: u384 { limb0: 0x1063c19a9ad984fffa4dff59, limb1: 0xff2961c84b610248446d01df, limb2: 0x714c88877d87ca828f45a30c, - limb3: 0x10c04eacfdbe1ec246a332f + limb3: 0x10c04eacfdbe1ec246a332f, }, r1a1: u384 { limb0: 0xa96deb5431f3e10c1335f460, limb1: 0x585524813f3a8dfec4a25ff5, limb2: 0xf0e4d4bf011411422a77c5f9, - limb3: 0x1385dc2aae3bd61dd2d8c122 - } + limb3: 0x1385dc2aae3bd61dd2d8c122, + }, }, G2Line { r0a0: u384 { limb0: 0x7198960d6ea2cafefbb6b9ab, limb1: 0x114183051d9b79fe6adc88a, limb2: 0xa0dfceac911a90a3eb5ca7c1, - limb3: 0x3944defa81481b7dd4bdff7 + limb3: 0x3944defa81481b7dd4bdff7, }, r0a1: u384 { limb0: 0xdefd7682db60845ecb47b3cc, limb1: 0x74780a500546ae0a4b8b3dc, limb2: 0x7a9a4ccf67e06300513c5860, - limb3: 0x504436c0dba5f93ea9164 + limb3: 0x504436c0dba5f93ea9164, }, r1a0: u384 { limb0: 0x119696eda49e51bf553b09da, limb1: 0xe2fdb538f4daf500dbd3c6dd, limb2: 0x744f6bed078959ebb2da574f, - limb3: 0x18b9ad2990893e795fd5e4dd + limb3: 0x18b9ad2990893e795fd5e4dd, }, r1a1: u384 { limb0: 0xbcb13ccaf69256bd2aa0b3e1, limb1: 0x8d38b8ccd4189be6e119e52d, limb2: 0x13321abc207b3936a4823a29, - limb3: 0x265ea0154a5133b534732cb - } + limb3: 0x265ea0154a5133b534732cb, + }, }, G2Line { r0a0: u384 { limb0: 0x5613c020634ff16b44d83f24, limb1: 0x80cd5fc93e3d09662c8c0bc5, limb2: 0xe5a7f64ed33d8e75390b4a2a, - limb3: 0x77b5e69dffa452e710da671 + limb3: 0x77b5e69dffa452e710da671, }, r0a1: u384 { limb0: 0xfd475bb5cabda2ca66b8a9a2, limb1: 0xa2f483666599b3f38616a265, limb2: 0x2f50c3e13b47f9f013b110ae, - limb3: 0xb90546cd4c81153ae816b28 + limb3: 0xb90546cd4c81153ae816b28, }, r1a0: u384 { limb0: 0x5bb0532b9b631f6226209db4, limb1: 0x8af30847f24064aaea92f634, limb2: 0x63fc234f0211d3a48fd3794a, - limb3: 0x186be21ff49b8619293b08a0 + limb3: 0x186be21ff49b8619293b08a0, }, r1a1: u384 { limb0: 0x7257ceb68e224443379d4f3d, limb1: 0x832ff2fc38659e439e40d450, limb2: 0x2bc2eeb8acd74c13b35c613b, - limb3: 0xc40014d71cb257fadad0453 - } + limb3: 0xc40014d71cb257fadad0453, + }, }, ]; diff --git a/src/contracts/groth16_example_bn254/.tools-versions b/src/contracts/groth16_example_bn254/.tools-versions index cc60fd62..3efd1f43 100644 --- a/src/contracts/groth16_example_bn254/.tools-versions +++ b/src/contracts/groth16_example_bn254/.tools-versions @@ -1 +1 @@ -scarb 2.8.2 +scarb 2.9.1 diff --git a/src/contracts/groth16_example_bn254/Scarb.toml b/src/contracts/groth16_example_bn254/Scarb.toml index 480c9a2e..38f83a73 100644 --- a/src/contracts/groth16_example_bn254/Scarb.toml +++ b/src/contracts/groth16_example_bn254/Scarb.toml @@ -5,11 +5,14 @@ edition = "2024_07" [dependencies] garaga = { path = "../../" } -starknet = "2.8.2" +starknet = "2.9.1" [cairo] sierra-replace-ids = false +[dev-dependencies] +cairo_test = "2.9.1" + [[target.starknet-contract]] casm = true casm-add-pythonic-hints = true diff --git a/src/contracts/groth16_example_bn254/src/groth16_verifier.cairo b/src/contracts/groth16_example_bn254/src/groth16_verifier.cairo index e35f49c6..237d7fc6 100644 --- a/src/contracts/groth16_example_bn254/src/groth16_verifier.cairo +++ b/src/contracts/groth16_example_bn254/src/groth16_verifier.cairo @@ -3,8 +3,8 @@ use super::groth16_verifier_constants::{N_PUBLIC_INPUTS, vk, ic, precomputed_lin #[starknet::interface] trait IGroth16VerifierBN254 { fn verify_groth16_proof_bn254( - ref self: TContractState, full_proof_with_hints: Span, - ) -> bool; + self: @TContractState, full_proof_with_hints: Span, + ) -> Option>; } #[starknet::contract] @@ -12,13 +12,13 @@ mod Groth16VerifierBN254 { use starknet::SyscallResultTrait; use garaga::definitions::{G1Point, G1G2Pair}; use garaga::groth16::{multi_pairing_check_bn254_3P_2F_with_extra_miller_loop_result}; - use garaga::ec_ops::{G1PointTrait, G2PointTrait, ec_safe_add}; + use garaga::ec_ops::{G1PointTrait, ec_safe_add}; + use garaga::ec_ops_g2::{G2PointTrait}; use garaga::utils::calldata::{deserialize_full_proof_with_hints_bn254}; use super::{N_PUBLIC_INPUTS, vk, ic, precomputed_lines}; const ECIP_OPS_CLASS_HASH: felt252 = - 0x2672f1f079ccbafe1be4a20a76421b509fcfb406cbf6818563ed812edaeb3a3; - use starknet::ContractAddress; + 0x684d2756a4440c190a5fe54e367c0abe33aefa75084dec2fffc791b620c80e3; #[storage] struct Storage {} @@ -26,10 +26,13 @@ mod Groth16VerifierBN254 { #[abi(embed_v0)] impl IGroth16VerifierBN254 of super::IGroth16VerifierBN254 { fn verify_groth16_proof_bn254( - ref self: ContractState, full_proof_with_hints: Span, - ) -> bool { + self: @ContractState, full_proof_with_hints: Span, + ) -> Option> { // DO NOT EDIT THIS FUNCTION UNLESS YOU KNOW WHAT YOU ARE DOING. - // ONLY EDIT THE process_public_inputs FUNCTION BELOW. + // This function returns an Option for the public inputs if the proof is valid. + // If the proof is invalid, the execution will either fail or return None. + // Read the documentation to learn how to generate the full_proof_with_hints array given + // a proof and a verifying key. let fph = deserialize_full_proof_with_hints_bn254(full_proof_with_hints); let groth16_proof = fph.groth16_proof; let mpcheck_hint = fph.mpcheck_hint; @@ -59,14 +62,14 @@ mod Groth16VerifierBN254 { let mut _vx_x_serialized = core::starknet::syscalls::library_call_syscall( ECIP_OPS_CLASS_HASH.try_into().unwrap(), selector!("msm_g1"), - msm_calldata.span() + msm_calldata.span(), ) .unwrap_syscall(); ec_safe_add( - Serde::::deserialize(ref _vx_x_serialized).unwrap(), *ic.at(0), 0 + Serde::::deserialize(ref _vx_x_serialized).unwrap(), *ic.at(0), 0, ) - } + }, }; // Perform the pairing check. let check = multi_pairing_check_bn254_3P_2F_with_extra_miller_loop_result( @@ -76,26 +79,14 @@ mod Groth16VerifierBN254 { vk.alpha_beta_miller_loop_result, precomputed_lines.span(), mpcheck_hint, - small_Q + small_Q, ); if check == true { - self - .process_public_inputs( - starknet::get_caller_address(), groth16_proof.public_inputs - ); - return true; + return Option::Some(groth16_proof.public_inputs); } else { - return false; + return Option::None; } } } - #[generate_trait] - impl InternalFunctions of InternalFunctionsTrait { - fn process_public_inputs( - ref self: ContractState, user: ContractAddress, public_inputs: Span, - ) { // Process the public inputs with respect to the caller address (user). - // Update the storage, emit events, call other contracts, etc. - } - } } diff --git a/src/contracts/groth16_example_bn254/src/groth16_verifier_constants.cairo b/src/contracts/groth16_example_bn254/src/groth16_verifier_constants.cairo index 05de73c3..a2d37ae7 100644 --- a/src/contracts/groth16_example_bn254/src/groth16_verifier_constants.cairo +++ b/src/contracts/groth16_example_bn254/src/groth16_verifier_constants.cairo @@ -4,4032 +4,4027 @@ use garaga::groth16::Groth16VerifyingKey; pub const N_PUBLIC_INPUTS: usize = 1; -pub const vk: Groth16VerifyingKey = - Groth16VerifyingKey { - alpha_beta_miller_loop_result: E12D { - w0: u288 { - limb0: 0x11a6ad63c049a0774b1f8d69, - limb1: 0xf7fca2c91020c7f53e2beb4c, - limb2: 0x2e0acf1407b6b19c - }, - w1: u288 { - limb0: 0xd4938178efd479c0f958db9a, - limb1: 0x84c3c18b6204eec59b85778f, - limb2: 0x73ca31ecae7d32e - }, - w2: u288 { - limb0: 0x72743eb58616c0e417c4aba3, - limb1: 0xb4ac27c376d51ed710fba137, - limb2: 0x1acbdf1cb7d3466 - }, - w3: u288 { - limb0: 0x93acd00474adbe5d51facd39, - limb1: 0xa9189ccc1f5ce888cac4749a, - limb2: 0x1ae9e30c3e513da0 - }, - w4: u288 { - limb0: 0x84916f4f6a4f628bdf86d2b1, - limb1: 0x77860ba9a989de43f309fc67, - limb2: 0x269bcad1c0ce254e - }, - w5: u288 { - limb0: 0x7138ef04bab92f97355093e0, - limb1: 0x66da4e6149cb9e2d53894518, - limb2: 0x39d844bb6b441d8 - }, - w6: u288 { - limb0: 0x9e481d49fcbb14d72c8f3700, - limb1: 0x582640a337edb441a9237eb0, - limb2: 0x6ac2149bd480805 - }, - w7: u288 { - limb0: 0xd952d96fdf1298e24de9a8ec, - limb1: 0x6bde8fce1837818c1bb4c7d1, - limb2: 0x173e64f406ad3079 - }, - w8: u288 { - limb0: 0x7e3e90ad41525ee5ab604479, - limb1: 0xc5868b5aaa79f89f3b0d38c6, - limb2: 0xb2c95b493361fb1 - }, - w9: u288 { - limb0: 0xf35cf1f086baf1880d2a6e2b, - limb1: 0x500d80de07da8e3ee9d854b7, - limb2: 0x59e0bc51eb3a8b1 - }, - w10: u288 { - limb0: 0x84fbc02aadbc9e8ee74e83f7, - limb1: 0x57960adc97b6def2fdd0c8a2, - limb2: 0x17ef7d97b124dce5 - }, - w11: u288 { - limb0: 0xdd2d75826bf4ec82eba0dcb5, - limb1: 0x286e75e7626aa2c71f7ffc8e, - limb2: 0xf330011992a685a - } - }, - gamma_g2: G2Point { - x0: u384 { - limb0: 0x89e732f5f87195d15a4ce637, - limb1: 0x884359c76cc9c6b81d289d33, - limb2: 0x3541dacedd860ef, - limb3: 0x0 - }, - x1: u384 { - limb0: 0xe313e222b376d9a9da02f080, - limb1: 0x272d9cc4aa2e71146c83c13b, - limb2: 0x2eb7d1fa8416da97, - limb3: 0x0 - }, - y0: u384 { - limb0: 0xa7d48b949e86c8b00eef73f9, - limb1: 0xefcb8bbb160b0f2ecb7cd98, - limb2: 0x8dce093ad7f7fe2, - limb3: 0x0 - }, - y1: u384 { - limb0: 0xd917839a146ea15cd7493f1d, - limb1: 0x6eb4af5910b954a713c49174, - limb2: 0x29a4b793edc63974, - limb3: 0x0 - } - }, - delta_g2: G2Point { - x0: u384 { - limb0: 0x63d786683ef471af4434acdc, - limb1: 0x185580c9ee198f6cac8bc784, - limb2: 0x34fc9ba8eba1e49, - limb3: 0x0 - }, - x1: u384 { - limb0: 0x161153d19ebc7f594246b9b0, - limb1: 0x61912be284ecae3a3f0899bb, - limb2: 0x17f115a16975c6f2, - limb3: 0x0 - }, - y0: u384 { - limb0: 0xb4dbc7294e1eacf59b3e2054, - limb1: 0x31c92abab72ef0ed83a3c195, - limb2: 0x17fd1ad43bbc8ef9, - limb3: 0x0 - }, - y1: u384 { - limb0: 0x55b6e98c187b34ca3e7cd1b, - limb1: 0x6ff9481052ddb780a4cc43da, - limb2: 0x1bd7d75bf918b676, - limb3: 0x0 - } - } - }; +pub const vk: Groth16VerifyingKey = Groth16VerifyingKey { + alpha_beta_miller_loop_result: E12D { + w0: u288 { + limb0: 0x11a6ad63c049a0774b1f8d69, + limb1: 0xf7fca2c91020c7f53e2beb4c, + limb2: 0x2e0acf1407b6b19c, + }, + w1: u288 { + limb0: 0xd4938178efd479c0f958db9a, + limb1: 0x84c3c18b6204eec59b85778f, + limb2: 0x73ca31ecae7d32e, + }, + w2: u288 { + limb0: 0x72743eb58616c0e417c4aba3, + limb1: 0xb4ac27c376d51ed710fba137, + limb2: 0x1acbdf1cb7d3466, + }, + w3: u288 { + limb0: 0x93acd00474adbe5d51facd39, + limb1: 0xa9189ccc1f5ce888cac4749a, + limb2: 0x1ae9e30c3e513da0, + }, + w4: u288 { + limb0: 0x84916f4f6a4f628bdf86d2b1, + limb1: 0x77860ba9a989de43f309fc67, + limb2: 0x269bcad1c0ce254e, + }, + w5: u288 { + limb0: 0x7138ef04bab92f97355093e0, + limb1: 0x66da4e6149cb9e2d53894518, + limb2: 0x39d844bb6b441d8, + }, + w6: u288 { + limb0: 0x9e481d49fcbb14d72c8f3700, + limb1: 0x582640a337edb441a9237eb0, + limb2: 0x6ac2149bd480805, + }, + w7: u288 { + limb0: 0xd952d96fdf1298e24de9a8ec, + limb1: 0x6bde8fce1837818c1bb4c7d1, + limb2: 0x173e64f406ad3079, + }, + w8: u288 { + limb0: 0x7e3e90ad41525ee5ab604479, + limb1: 0xc5868b5aaa79f89f3b0d38c6, + limb2: 0xb2c95b493361fb1, + }, + w9: u288 { + limb0: 0xf35cf1f086baf1880d2a6e2b, + limb1: 0x500d80de07da8e3ee9d854b7, + limb2: 0x59e0bc51eb3a8b1, + }, + w10: u288 { + limb0: 0x84fbc02aadbc9e8ee74e83f7, + limb1: 0x57960adc97b6def2fdd0c8a2, + limb2: 0x17ef7d97b124dce5, + }, + w11: u288 { + limb0: 0xdd2d75826bf4ec82eba0dcb5, + limb1: 0x286e75e7626aa2c71f7ffc8e, + limb2: 0xf330011992a685a, + }, + }, + gamma_g2: G2Point { + x0: u384 { + limb0: 0x89e732f5f87195d15a4ce637, + limb1: 0x884359c76cc9c6b81d289d33, + limb2: 0x3541dacedd860ef, + limb3: 0x0, + }, + x1: u384 { + limb0: 0xe313e222b376d9a9da02f080, + limb1: 0x272d9cc4aa2e71146c83c13b, + limb2: 0x2eb7d1fa8416da97, + limb3: 0x0, + }, + y0: u384 { + limb0: 0xa7d48b949e86c8b00eef73f9, + limb1: 0xefcb8bbb160b0f2ecb7cd98, + limb2: 0x8dce093ad7f7fe2, + limb3: 0x0, + }, + y1: u384 { + limb0: 0xd917839a146ea15cd7493f1d, + limb1: 0x6eb4af5910b954a713c49174, + limb2: 0x29a4b793edc63974, + limb3: 0x0, + }, + }, + delta_g2: G2Point { + x0: u384 { + limb0: 0x63d786683ef471af4434acdc, + limb1: 0x185580c9ee198f6cac8bc784, + limb2: 0x34fc9ba8eba1e49, + limb3: 0x0, + }, + x1: u384 { + limb0: 0x161153d19ebc7f594246b9b0, + limb1: 0x61912be284ecae3a3f0899bb, + limb2: 0x17f115a16975c6f2, + limb3: 0x0, + }, + y0: u384 { + limb0: 0xb4dbc7294e1eacf59b3e2054, + limb1: 0x31c92abab72ef0ed83a3c195, + limb2: 0x17fd1ad43bbc8ef9, + limb3: 0x0, + }, + y1: u384 { + limb0: 0x55b6e98c187b34ca3e7cd1b, + limb1: 0x6ff9481052ddb780a4cc43da, + limb2: 0x1bd7d75bf918b676, + limb3: 0x0, + }, + }, +}; -pub const ic: [ - G1Point - ; 2] = [ +pub const ic: [G1Point; 2] = [ G1Point { x: u384 { limb0: 0x62587fa0f6c879156e7390bc, limb1: 0xc9da665a8bebfd01ce6489a4, limb2: 0x124e30bf4dff3ae9, - limb3: 0x0 + limb3: 0x0, }, y: u384 { limb0: 0x50c0471724e1b022791c7532, limb1: 0x5e101dd2383fdc600dcb4a34, limb2: 0x1fdc3a96cea49b08, - limb3: 0x0 - } + limb3: 0x0, + }, }, G1Point { x: u384 { limb0: 0xedaa0ed100691cceb974c6a1, limb1: 0x26a8465790ba44ddb5716750, limb2: 0x164668f89d9d6c61, - limb3: 0x0 + limb3: 0x0, }, y: u384 { limb0: 0xf3d9d0426a702f368be936da, limb1: 0x153290e7b5c8497412386c61, limb2: 0x1d9c7309625ec7cf, - limb3: 0x0 - } + limb3: 0x0, + }, }, ]; -pub const precomputed_lines: [ - G2Line - ; 176] = [ +pub const precomputed_lines: [G2Line; 176] = [ G2Line { r0a0: u288 { limb0: 0x6262802b3d1fc57f02eb7de7, limb1: 0x90ccab72e89abbdc16280011, - limb2: 0x178e51f74b0542e7 + limb2: 0x178e51f74b0542e7, }, r0a1: u288 { limb0: 0x12a071ce64f150102f094209, limb1: 0xaaad51a68888c9f4d366eb85, - limb2: 0xb854c3062c6dca4 + limb2: 0xb854c3062c6dca4, }, r1a0: u288 { limb0: 0x88c793e1f884996295be7f4b, limb1: 0x9801cbb1add70980a565d93, - limb2: 0x7f1a23af3e93b10 + limb2: 0x7f1a23af3e93b10, }, r1a1: u288 { limb0: 0x16b6ccc140737723f6fbf23c, limb1: 0xfaa6476d81d4fb40a38fa84e, - limb2: 0x1d370360026ceef - } + limb2: 0x1d370360026ceef, + }, }, G2Line { r0a0: u288 { limb0: 0x6768b1b65ac701242d58a4d5, limb1: 0x9a21b14a1117318e6e93346c, - limb2: 0x28206643cf01adb6 + limb2: 0x28206643cf01adb6, }, r0a1: u288 { limb0: 0xc733c609365fab81f5bebf8c, limb1: 0xe7dba9325253668b9de809ab, - limb2: 0x1e2aed8a72758ae3 + limb2: 0x1e2aed8a72758ae3, }, r1a0: u288 { limb0: 0x95ec7d05aa1f4c5b117cc3df, limb1: 0xc9473775e0fd4d6797d4fe54, - limb2: 0x28418cb32e9a4478 + limb2: 0x28418cb32e9a4478, }, r1a1: u288 { limb0: 0x2a17416676088b3ed523bc76, limb1: 0xa7a7189cf0cb6f593da6398d, - limb2: 0x1646a797175de826 - } + limb2: 0x1646a797175de826, + }, }, G2Line { r0a0: u288 { limb0: 0x60f4a61ff00c697d5917f60, limb1: 0x27839a4398e69c8181596a80, - limb2: 0x18d5fc7b962c5d42 + limb2: 0x18d5fc7b962c5d42, }, r0a1: u288 { limb0: 0x55d158bed72f3c06a973bb3e, limb1: 0xda2f40ff8f88e68c41a7f0c, - limb2: 0x24df02427e6ac385 + limb2: 0x24df02427e6ac385, }, r1a0: u288 { limb0: 0xdfaa36ab439bf2b442be7dfc, limb1: 0xaed028fb66a3e7c58d2b0cfd, - limb2: 0x2872ac37ed486519 + limb2: 0x2872ac37ed486519, }, r1a1: u288 { limb0: 0x51bafdcbfbad14f2e1810b0b, limb1: 0xbda9fe48ffac5d1cf3f1c243, - limb2: 0x2e90de3ce10ad139 - } + limb2: 0x2e90de3ce10ad139, + }, }, G2Line { r0a0: u288 { limb0: 0x22f06d243ec31a24265558f6, limb1: 0x144f71a68e6e295284eaa624, - limb2: 0xb114d08d4730af8 + limb2: 0xb114d08d4730af8, }, r0a1: u288 { limb0: 0xd3a0ee47077b6225045c67ee, limb1: 0xeec7cbf282c77e03df828f62, - limb2: 0xbe64d352adee5f0 + limb2: 0xbe64d352adee5f0, }, r1a0: u288 { limb0: 0xc7ec19dad21e785ffc755ad, limb1: 0xd24141743526f183d2654043, - limb2: 0x1988f55b31c4faf3 + limb2: 0x1988f55b31c4faf3, }, r1a1: u288 { limb0: 0x994cab0255bb4272f95c3e23, limb1: 0xd922c9add52c749a87cf7c07, - limb2: 0xaa4d57bef928d58 - } + limb2: 0xaa4d57bef928d58, + }, }, G2Line { r0a0: u288 { limb0: 0x10918d6e1598af2ab245872, limb1: 0x1e2e946c706a26cf28ee3625, - limb2: 0x843e82f122ff273 + limb2: 0x843e82f122ff273, }, r0a1: u288 { limb0: 0xa13e048405c0e094e2be3dbb, limb1: 0xd0749c842f2df1d1f99960e5, - limb2: 0x123960e86ebc1545 + limb2: 0x123960e86ebc1545, }, r1a0: u288 { limb0: 0xd2854d8792013fbbc7003968, limb1: 0xef090e40a0840af5ffac6c3c, - limb2: 0x822c1bfb2975bb0 + limb2: 0x822c1bfb2975bb0, }, r1a1: u288 { limb0: 0x3e5a8926c61800d8035940d1, limb1: 0x10a92d1990b5e90459db3104, - limb2: 0x1a1da6dbc9d3b803 - } + limb2: 0x1a1da6dbc9d3b803, + }, }, G2Line { r0a0: u288 { limb0: 0xf3c1aff57ebd4252b1ee0a92, limb1: 0x4dbf6eac239e2fd65d64b8f7, - limb2: 0x26d1f994835b7b47 + limb2: 0x26d1f994835b7b47, }, r0a1: u288 { limb0: 0x345e6aaef5a543714baced, limb1: 0xb490ac8096315947ee617410, - limb2: 0x1a09bb8870da1b8a + limb2: 0x1a09bb8870da1b8a, }, r1a0: u288 { limb0: 0x5ebf58b2e5dd76b36593db9f, limb1: 0x8fa5c6ffbd16bb8a189499b2, - limb2: 0xaf4be2ac3e90ead + limb2: 0xaf4be2ac3e90ead, }, r1a1: u288 { limb0: 0xd4b8cde758e0d235326f7919, limb1: 0xcd650faf49b3ee058023c216, - limb2: 0x1c00cc9bd40f552b - } + limb2: 0x1c00cc9bd40f552b, + }, }, G2Line { r0a0: u288 { limb0: 0xfc81a9267fe02a0e01e5690e, limb1: 0x935b7be9ed04f236f8ccb6d3, - limb2: 0xd21be991cebbac7 + limb2: 0xd21be991cebbac7, }, r0a1: u288 { limb0: 0x823e612788adf8af694cadf8, limb1: 0x28ffb411c649c749b8b2ab3f, - limb2: 0x29f85195d5ae6cb3 + limb2: 0x29f85195d5ae6cb3, }, r1a0: u288 { limb0: 0xa4e79c63454447ad586868ed, limb1: 0x1d25998e1dee245a7a740dfd, - limb2: 0x312f28354b440eb + limb2: 0x312f28354b440eb, }, r1a1: u288 { limb0: 0x230c5675e4713e459ecf6ee7, limb1: 0xf23579a5477f2fded9e59a95, - limb2: 0x23effe3fb162cfa9 - } + limb2: 0x23effe3fb162cfa9, + }, }, G2Line { r0a0: u288 { limb0: 0x6938a36b06b59bb433023aa9, limb1: 0x9f733207d38e4c21c5f938d4, - limb2: 0xb694e7fb696f425 + limb2: 0xb694e7fb696f425, }, r0a1: u288 { limb0: 0x1fb7151f69662f3282addefa, limb1: 0x73b463adbed2a2c44be9521d, - limb2: 0x1ce3d8bc49dd6f3f + limb2: 0x1ce3d8bc49dd6f3f, }, r1a0: u288 { limb0: 0xcdefacedca9cea69a67218ef, limb1: 0x2a61c39d6c9e8df657e11fa2, - limb2: 0x287b08ea40db8edf + limb2: 0x287b08ea40db8edf, }, r1a1: u288 { limb0: 0xf3493b34c974473567e0bfd, limb1: 0x62ec80dec81fe20e56185f3d, - limb2: 0x2a9d8912a369f0fc - } + limb2: 0x2a9d8912a369f0fc, + }, }, G2Line { r0a0: u288 { limb0: 0xb7482cd3a64ad7c6972ce18, limb1: 0xc612ec6a27ef894c2448e7e, - limb2: 0xb0a181c0bc5bb35 + limb2: 0xb0a181c0bc5bb35, }, r0a1: u288 { limb0: 0x77fd6133c7186e2a51fdfe8b, limb1: 0xb6d8557c94e885365cd1284f, - limb2: 0x2807238c4095ab2e + limb2: 0x2807238c4095ab2e, }, r1a0: u288 { limb0: 0xac2bf429c889f4e4fca7ad87, limb1: 0x4e2138d3a53fab48b9372da0, - limb2: 0x661b199c593f990 + limb2: 0x661b199c593f990, }, r1a1: u288 { limb0: 0x17ad71412ec95d2e450e4a9a, limb1: 0x5a390094f598fbc1c73ffc6f, - limb2: 0x1745ca0ad68deb3c - } + limb2: 0x1745ca0ad68deb3c, + }, }, G2Line { r0a0: u288 { limb0: 0x792e91102d6015db651264a5, limb1: 0xef1739e0f3140e7dae1b9f26, - limb2: 0x2c68c775b43aa438 + limb2: 0x2c68c775b43aa438, }, r0a1: u288 { limb0: 0x2d480c09009f63ff03bacd7e, limb1: 0xe49d79a774b60104278749bb, - limb2: 0x28dd05053808f291 + limb2: 0x28dd05053808f291, }, r1a0: u288 { limb0: 0xa4f235af16d6b1aa9cb935e0, limb1: 0x3356bbf421edd3b119a977a, - limb2: 0x2c3a3e6fb5bf407a + limb2: 0x2c3a3e6fb5bf407a, }, r1a1: u288 { limb0: 0x475304a1c01b032aae98253d, limb1: 0xc07800c8acc177d31257f8a7, - limb2: 0x2c17966ecef6d358 - } + limb2: 0x2c17966ecef6d358, + }, }, G2Line { r0a0: u288 { limb0: 0xe9cd661691f7215396894f0f, limb1: 0x9e3c0f429f703e40f5baa9bc, - limb2: 0x1b94de4f8b072262 + limb2: 0x1b94de4f8b072262, }, r0a1: u288 { limb0: 0xb2328b5f060b47983ead044a, limb1: 0x5d6772c45ac19b49a05cbb0b, - limb2: 0xf6f282c18f98d7c + limb2: 0xf6f282c18f98d7c, }, r1a0: u288 { limb0: 0x10f6b52bee174dc609820448, limb1: 0xa4d84cb409d798e1dc4d0880, - limb2: 0x1e5bc83da6436d50 + limb2: 0x1e5bc83da6436d50, }, r1a1: u288 { limb0: 0xce182a96f56ced121091e41b, limb1: 0x8800263a87f78d7ab82d3e71, - limb2: 0x2640778c4c20679b - } + limb2: 0x2640778c4c20679b, + }, }, G2Line { r0a0: u288 { limb0: 0xb78d8e331f9fde95d8762cbe, limb1: 0xe50fc6532130dcab69ccd2f3, - limb2: 0x1c5ad86495e84014 + limb2: 0x1c5ad86495e84014, }, r0a1: u288 { limb0: 0xfe7268e3ed4b6b97899984c4, limb1: 0xf2e63f6c60064bc7fb5fd561, - limb2: 0x9717b3891610a6b + limb2: 0x9717b3891610a6b, }, r1a0: u288 { limb0: 0xb6a3d0ad2be4cf8a6d7a4932, limb1: 0xf368ce713db6a7c85ce253e7, - limb2: 0x11fb9d13419437db + limb2: 0x11fb9d13419437db, }, r1a1: u288 { limb0: 0x6c0e91e32102a27c6bc0f117, limb1: 0x1580942374bdb287e34d50e8, - limb2: 0x25451806c34da2eb - } + limb2: 0x25451806c34da2eb, + }, }, G2Line { r0a0: u288 { limb0: 0xecf4b439dcb55cb7cd17c938, limb1: 0xaa30677da06e04007bc10783, - limb2: 0x5acf050d824c550 + limb2: 0x5acf050d824c550, }, r0a1: u288 { limb0: 0xfdadd2fba222755a97b93bd8, limb1: 0xc5f72c5874f13b63850c7e3, - limb2: 0x8d6e33876937270 + limb2: 0x8d6e33876937270, }, r1a0: u288 { limb0: 0x48b70ead9b67d481e7fbac7c, limb1: 0xeea576a4020c901099fb5796, - limb2: 0xe89161f969f758d + limb2: 0xe89161f969f758d, }, r1a1: u288 { limb0: 0x8081483546fdaca3e803ae13, limb1: 0x7b29b6041c0844fb7bd3c828, - limb2: 0x840a11945bdaf61 - } + limb2: 0x840a11945bdaf61, + }, }, G2Line { r0a0: u288 { limb0: 0x5257173c58d9ac477f4e7362, limb1: 0x4ac0a4b0a604dc11701ec7be, - limb2: 0x2ced1a344a191870 + limb2: 0x2ced1a344a191870, }, r0a1: u288 { limb0: 0xced9cba631d33b433f4c02b7, limb1: 0xc83a4a272ab8c01b6631fd59, - limb2: 0x201561c61f1309c6 + limb2: 0x201561c61f1309c6, }, r1a0: u288 { limb0: 0x6c107fe09b4144f1c2e218b4, limb1: 0x6bedd36ccbfb5eb21e3052b5, - limb2: 0x1710d637ed85f3f4 + limb2: 0x1710d637ed85f3f4, }, r1a1: u288 { limb0: 0x2dbf59bd81c858f20f9a2c22, limb1: 0x538891d36da9558f005eaa18, - limb2: 0x2e047a78332f57a7 - } + limb2: 0x2e047a78332f57a7, + }, }, G2Line { r0a0: u288 { limb0: 0x87ebd70984bc04919fc9986, limb1: 0x49e5baa3bf84014bbfa4b343, - limb2: 0x13c681e8a87b09d5 + limb2: 0x13c681e8a87b09d5, }, r0a1: u288 { limb0: 0xc7ba9d524130fff410f86354, limb1: 0xe56c32754857a3eadf92430e, - limb2: 0x12b61a869a91562d + limb2: 0x12b61a869a91562d, }, r1a0: u288 { limb0: 0xcf43a1c9be7903f6823856c3, limb1: 0x17aa81a20cb8b6533b7e05ad, - limb2: 0x8edd93c88eac470 + limb2: 0x8edd93c88eac470, }, r1a1: u288 { limb0: 0x61527058e2d37f7267e2d55b, limb1: 0x4133bd157d450dc27f32d457, - limb2: 0x582ee28eaa58570 - } + limb2: 0x582ee28eaa58570, + }, }, G2Line { r0a0: u288 { limb0: 0x8e35c54e5a8fc51ffe565808, limb1: 0x54a5c4c2ce68417d89a41927, - limb2: 0x1bb192a0da69b4bc + limb2: 0x1bb192a0da69b4bc, }, r0a1: u288 { limb0: 0xb15a23caab89361c695304d, limb1: 0xa21ac5490dcc6ec31e532a00, - limb2: 0x2c5d334f664f1db0 + limb2: 0x2c5d334f664f1db0, }, r1a0: u288 { limb0: 0x1513569aab675cc8a80d83b, limb1: 0x8823f86ca10c614200a888cd, - limb2: 0x27e75cf5e6c5decb + limb2: 0x27e75cf5e6c5decb, }, r1a1: u288 { limb0: 0x7dfe801eafb39580b2591c53, limb1: 0x7ad779d2bc8b8960e97e8369, - limb2: 0x2a2e897e4fcb8d03 - } + limb2: 0x2a2e897e4fcb8d03, + }, }, G2Line { r0a0: u288 { limb0: 0xba5ea5187f76b5704defef65, limb1: 0x8a7319f0591a44264e9857c7, - limb2: 0x2d9dd5412302fd6b + limb2: 0x2d9dd5412302fd6b, }, r0a1: u288 { limb0: 0xaa7e8dec15610116b7d0b0cf, limb1: 0xe5e0a55405629a2fe14bf3d5, - limb2: 0x2dae2582a7c55627 + limb2: 0x2dae2582a7c55627, }, r1a0: u288 { limb0: 0x303fd13168b5089e4e0e3fa2, limb1: 0xd1d646954006479380c9f8ab, - limb2: 0x1b643b47405a9dd + limb2: 0x1b643b47405a9dd, }, r1a1: u288 { limb0: 0x893d761d04a60dae26f4e064, limb1: 0xf185cfd787972d2bed98ddf7, - limb2: 0x27e2db3d67b8caa3 - } + limb2: 0x27e2db3d67b8caa3, + }, }, G2Line { r0a0: u288 { limb0: 0xb1fd301f8de9a4fdaa4a5688, limb1: 0x656432730487dbc9e9e29270, - limb2: 0x17df9b19f2918abd + limb2: 0x17df9b19f2918abd, }, r0a1: u288 { limb0: 0x2d5832aab61dab3a5549a92, limb1: 0xe47839d4ca00888bb56afc4a, - limb2: 0x3fe4c9d799a3bd1 + limb2: 0x3fe4c9d799a3bd1, }, r1a0: u288 { limb0: 0x2810fcc73bea01896cd75a0f, limb1: 0x2c92809424a97db06448759f, - limb2: 0x123eff8f7259581a + limb2: 0x123eff8f7259581a, }, r1a1: u288 { limb0: 0x601fdec3567703d1c3d34df0, limb1: 0x7f03a904345610b15ff1205a, - limb2: 0x289705e3e298309a - } + limb2: 0x289705e3e298309a, + }, }, G2Line { r0a0: u288 { limb0: 0xc16237e16f04d4855851266c, limb1: 0x216a15737a6b54352caee4fb, - limb2: 0x2cb963083fceacfc + limb2: 0x2cb963083fceacfc, }, r0a1: u288 { limb0: 0x1d5728a99fc8a6b1501def7d, limb1: 0xc82efa12901500963bbfdfc1, - limb2: 0x29472ad7813d3e51 + limb2: 0x29472ad7813d3e51, }, r1a0: u288 { limb0: 0x4bc73fff7a02804f65a8b807, limb1: 0x55d252b720478bafee38f7e0, - limb2: 0xb89e5290fecd5c4 + limb2: 0xb89e5290fecd5c4, }, r1a1: u288 { limb0: 0xcecce3e7e700ddfe8b57d681, limb1: 0x6ffd2dd49f2ff2ecf872f76b, - limb2: 0x1834d8633ed7aa5e - } + limb2: 0x1834d8633ed7aa5e, + }, }, G2Line { r0a0: u288 { limb0: 0x921d0a486c2af8e00aca15cf, limb1: 0xce5e704e01a8381a38da803c, - limb2: 0x2a3b10f49d66db73 + limb2: 0x2a3b10f49d66db73, }, r0a1: u288 { limb0: 0x4d5fe5d5c9f584cffdde9b20, limb1: 0x694bbbada9b90b560fe95a28, - limb2: 0x1f9131f7b839f971 + limb2: 0x1f9131f7b839f971, }, r1a0: u288 { limb0: 0xb2a323906650185cccdc623c, limb1: 0x8643738b8d13209ced4a8401, - limb2: 0x1afc7bd309bd2e6f + limb2: 0x1afc7bd309bd2e6f, }, r1a1: u288 { limb0: 0x66a405a6925c6daf1121bfa8, limb1: 0xae0d46e02b0c767a8311def7, - limb2: 0x1eac8613f1b73d0 - } + limb2: 0x1eac8613f1b73d0, + }, }, G2Line { r0a0: u288 { limb0: 0xc0dc2ee8c1634b43c7c67a36, limb1: 0x44b5cda8cf434ecc7f4c6c75, - limb2: 0x17ff23c44b249965 + limb2: 0x17ff23c44b249965, }, r0a1: u288 { limb0: 0x6af3458d6fcb51bce863b3ee, limb1: 0xb4c9cf6033098a5367bc38a0, - limb2: 0x16b5fff40c83591f + limb2: 0x16b5fff40c83591f, }, r1a0: u288 { limb0: 0x75584b946a79b88e5bec9dd0, limb1: 0x696fa9bfb38fbd7621f553d2, - limb2: 0x1bf248055b1b2f90 + limb2: 0x1bf248055b1b2f90, }, r1a1: u288 { limb0: 0xd45ae28bb106c9cf5b04a1b5, limb1: 0xefc1e176eab50a80b4506c1b, - limb2: 0x2d6a0ffa973804a5 - } + limb2: 0x2d6a0ffa973804a5, + }, }, G2Line { r0a0: u288 { limb0: 0x639121398df650418531ec43, limb1: 0xc0dc106ff32d445f63f8a120, - limb2: 0x2db69a72bd084b2f + limb2: 0x2db69a72bd084b2f, }, r0a1: u288 { limb0: 0x2efbf5c7bf4d8eee620eb8e1, limb1: 0xbebd2c4b9f9ecc3d77d2c81c, - limb2: 0x267a73e3f62a38b5 + limb2: 0x267a73e3f62a38b5, }, r1a0: u288 { limb0: 0x30674b4201c8f6262cad443b, limb1: 0xc6536f9ebec5d19d59f529c4, - limb2: 0x226bae32ed07fa9b + limb2: 0x226bae32ed07fa9b, }, r1a1: u288 { limb0: 0x3c71a9fed0157d9b2577984, limb1: 0xb147ab8ccbc129533b491b1, - limb2: 0x482a238e334dfe6 - } + limb2: 0x482a238e334dfe6, + }, }, G2Line { r0a0: u288 { limb0: 0xf6c03dcc8bd1379820cb9967, limb1: 0xe8b667570844eddc673b54d8, - limb2: 0x19130dc068e65472 + limb2: 0x19130dc068e65472, }, r0a1: u288 { limb0: 0x90bbf7945a517e331f836592, limb1: 0x2051ba8f0200e210ad28fc3f, - limb2: 0x177199e9bca93186 + limb2: 0x177199e9bca93186, }, r1a0: u288 { limb0: 0xb960ca772d1e6bbaf9338163, limb1: 0xa7f34e9ae435bcd02d2faf69, - limb2: 0x26dff0b0b6c2f756 + limb2: 0x26dff0b0b6c2f756, }, r1a1: u288 { limb0: 0xd70ea39bddfa02454849f135, limb1: 0x9aaf0bb16c009e3b28d1bbd2, - limb2: 0x581b8dda5c79e1e - } + limb2: 0x581b8dda5c79e1e, + }, }, G2Line { r0a0: u288 { limb0: 0x463ce7476e959a1931385237, limb1: 0xf75919c87010d96ac7c94cbe, - limb2: 0x24a412978f2c5ecc + limb2: 0x24a412978f2c5ecc, }, r0a1: u288 { limb0: 0x4564f0aa378b3a5b8d09788f, limb1: 0xf875d0276495706bc0d09d6d, - limb2: 0x1b9fed005e16d2cf + limb2: 0x1b9fed005e16d2cf, }, r1a0: u288 { limb0: 0x26445be3d3f49fbd01c70d1, limb1: 0xd5378dbee2feb0496e798ec, - limb2: 0x1e8739b2b619c238 + limb2: 0x1e8739b2b619c238, }, r1a1: u288 { limb0: 0x549556a03524dc61169783b9, limb1: 0xec53665fd27c4865c5367af8, - limb2: 0x22dbab3609da89f9 - } + limb2: 0x22dbab3609da89f9, + }, }, G2Line { r0a0: u288 { limb0: 0xba161cc9e9cebd75b98e13ed, limb1: 0x2632c1abd01681aa124fcbd9, - limb2: 0x1bbdec597979fb4 + limb2: 0x1bbdec597979fb4, }, r0a1: u288 { limb0: 0xfa0305a260ea7340c6afa662, limb1: 0x39110a94cdd1c5e8cc0a1d1f, - limb2: 0x1e788e28c0103ea6 + limb2: 0x1e788e28c0103ea6, }, r1a0: u288 { limb0: 0x442b863a5c5f8a2c338a4463, limb1: 0xb9fdab2ef9d33c430dece624, - limb2: 0x1d5d4de242b83d54 + limb2: 0x1d5d4de242b83d54, }, r1a1: u288 { limb0: 0xdfb11e4e76affcbb462154ba, limb1: 0x5704a29b1a8e2703af5c3c48, - limb2: 0x2312d417321e92e7 - } + limb2: 0x2312d417321e92e7, + }, }, G2Line { r0a0: u288 { limb0: 0x4b8c4313130de071e5a25b39, limb1: 0xf1b3260f13cabcf328b26362, - limb2: 0x116ceab520d16408 + limb2: 0x116ceab520d16408, }, r0a1: u288 { limb0: 0x10523011df0f3a9767278aa3, limb1: 0x16f3307af4c560a400c90ae2, - limb2: 0x2ede49ff73a3a3ae + limb2: 0x2ede49ff73a3a3ae, }, r1a0: u288 { limb0: 0xd6465d87f836c70c2add7bdf, limb1: 0xc7c6c33787b9a4a9f0b6a19f, - limb2: 0x3a10546e2951d1a + limb2: 0x3a10546e2951d1a, }, r1a1: u288 { limb0: 0xc4462f508080ee25b195846, limb1: 0xa9d1ee563b4765315d3b2423, - limb2: 0x22d6d25e9e134bc5 - } + limb2: 0x22d6d25e9e134bc5, + }, }, G2Line { r0a0: u288 { limb0: 0xa8fdb52a5866ede3c829660e, limb1: 0xa747cc99fe24bbc124e60f83, - limb2: 0x77dc0694ce277af + limb2: 0x77dc0694ce277af, }, r0a1: u288 { limb0: 0x873e405654f06e7e618a0869, limb1: 0x5ce484db4f007368cbf5ef3f, - limb2: 0x406b87af902b368 + limb2: 0x406b87af902b368, }, r1a0: u288 { limb0: 0x42c090f0d49f3b172899d597, limb1: 0xe282930c7a6ae94172637791, - limb2: 0x5ae9317bf562ef3 + limb2: 0x5ae9317bf562ef3, }, r1a1: u288 { limb0: 0x9d38292f11255137c4072d20, limb1: 0xcbd810babdf368eda51a016e, - limb2: 0xe4a9c670bc40cd6 - } + limb2: 0xe4a9c670bc40cd6, + }, }, G2Line { r0a0: u288 { limb0: 0x6402739bdeb3492bb057259f, limb1: 0x26c108432264fab03a9dc8eb, - limb2: 0x18ef9553dbba8439 + limb2: 0x18ef9553dbba8439, }, r0a1: u288 { limb0: 0xa00d189487a0340fd81cc584, limb1: 0xe346065e533d0311d3a49619, - limb2: 0x20adf0a42e6d1031 + limb2: 0x20adf0a42e6d1031, }, r1a0: u288 { limb0: 0x2f40fa2fabe3889e62434f1c, limb1: 0xf5a60a0a1db35e01c23c4618, - limb2: 0xccf2f37e5f9d7f0 + limb2: 0xccf2f37e5f9d7f0, }, r1a1: u288 { limb0: 0x8755dc93602da01a9bdbf2fc, limb1: 0x9fe1c22607998504f098c4d5, - limb2: 0x18f0f45dc543c0ee - } + limb2: 0x18f0f45dc543c0ee, + }, }, G2Line { r0a0: u288 { limb0: 0xadf84437d9999eba295275a7, limb1: 0x52543bbddf3fc6be2f32a055, - limb2: 0x419797ad7a39dcc + limb2: 0x419797ad7a39dcc, }, r0a1: u288 { limb0: 0xb14ccb344bc7ae03672b7ed3, limb1: 0x32b4f3937b94a54a112ec060, - limb2: 0xd511afdf9250855 + limb2: 0xd511afdf9250855, }, r1a0: u288 { limb0: 0x9b40fa04851da740d91800ad, limb1: 0x3b7477878090da8c8f43a115, - limb2: 0xbd0be68b2e101c2 + limb2: 0xbd0be68b2e101c2, }, r1a1: u288 { limb0: 0x15760dce121076360bd9f792, limb1: 0xf1924f92230e898476d82bc9, - limb2: 0x304f65ebb79d2bd0 - } + limb2: 0x304f65ebb79d2bd0, + }, }, G2Line { r0a0: u288 { limb0: 0x5506e07a5fe97fdc5664791b, limb1: 0x7aee4b162d0660d41af388e4, - limb2: 0x1bee62627e4c1064 + limb2: 0x1bee62627e4c1064, }, r0a1: u288 { limb0: 0xdd3ab4c9ec1954b09595dc4d, limb1: 0xd02053bef44757a04f774eb9, - limb2: 0x1f8a410c013ff7fc + limb2: 0x1f8a410c013ff7fc, }, r1a0: u288 { limb0: 0x8dc98f9b1c2f0319008950ca, limb1: 0x4fb659c41dc5601420cab99b, - limb2: 0x15c515af959291b5 + limb2: 0x15c515af959291b5, }, r1a1: u288 { limb0: 0xba1238b4b4da8ca1dc84dcec, limb1: 0x191a2667a2b4bdc6a8d02874, - limb2: 0xbacbf0de8be4aa7 - } + limb2: 0xbacbf0de8be4aa7, + }, }, G2Line { r0a0: u288 { limb0: 0x7818f560d037de6bdd24efde, limb1: 0xda994bd7113ddab6f25bf7f8, - limb2: 0x2e7509590341ee + limb2: 0x2e7509590341ee, }, r0a1: u288 { limb0: 0xd14d410ebd15ad0e2dbeb005, limb1: 0xeeaef525eb5ca49303b32111, - limb2: 0x9952bc1815a0105 + limb2: 0x9952bc1815a0105, }, r1a0: u288 { limb0: 0x40511cd89aa9c76b90afd1fe, limb1: 0xeeebf38560f5818c7794c609, - limb2: 0x1e9835676b0e4cad + limb2: 0x1e9835676b0e4cad, }, r1a1: u288 { limb0: 0xfc4540bcfa1be23824759eda, limb1: 0x761c0a6caea91ff18df75d87, - limb2: 0xf4e6c24c41216b9 - } + limb2: 0xf4e6c24c41216b9, + }, }, G2Line { r0a0: u288 { limb0: 0x7c95bb4a3045f598ec02ad3e, limb1: 0x69527e98f5b823f054558e44, - limb2: 0x21990ad9da9ab486 + limb2: 0x21990ad9da9ab486, }, r0a1: u288 { limb0: 0xe76176f500a3b7bb7193cfc5, limb1: 0x85b90669c4270df3ba79b129, - limb2: 0x780be9adcae4970 + limb2: 0x780be9adcae4970, }, r1a0: u288 { limb0: 0x481876a8b44064c05d5246ef, limb1: 0x7dab43eb527bd93d1dc91b07, - limb2: 0xd714afad4aeff67 + limb2: 0xd714afad4aeff67, }, r1a1: u288 { limb0: 0x81582d4c64462a522c03d882, limb1: 0x609cde5a3b8e8b404e3faf64, - limb2: 0x2abe09a84d32cfe4 - } + limb2: 0x2abe09a84d32cfe4, + }, }, G2Line { r0a0: u288 { limb0: 0x6c6df46abcfe69b84b5cbbe8, limb1: 0x43b46da7c7b2aeec2fa935bd, - limb2: 0x2f14336fcc2bdbd + limb2: 0x2f14336fcc2bdbd, }, r0a1: u288 { limb0: 0x9ece765823cf827cccc87414, limb1: 0xbf5d9992534c6831dd441b95, - limb2: 0x6f7e39a016feeaf + limb2: 0x6f7e39a016feeaf, }, r1a0: u288 { limb0: 0x1759f088e6a22164845e28b3, limb1: 0x8fc900b0084e661b03277c03, - limb2: 0x150fc5685af62748 + limb2: 0x150fc5685af62748, }, r1a1: u288 { limb0: 0x3f0ff585c16da81d8922130b, limb1: 0x8b2bc20a9fc724a9e26c8a5f, - limb2: 0xbbd2c609b0705af - } + limb2: 0xbbd2c609b0705af, + }, }, G2Line { r0a0: u288 { limb0: 0xfd726e0bbbdd73195a7edd4e, limb1: 0x80381316ac4cc1180fe6580b, - limb2: 0x1679db00b998286b + limb2: 0x1679db00b998286b, }, r0a1: u288 { limb0: 0xf4df1c9e315352cc58418740, limb1: 0x609cfd341eddc85035abe0a, - limb2: 0xb0bbbf58076e7c3 + limb2: 0xb0bbbf58076e7c3, }, r1a0: u288 { limb0: 0x7f251d631ef9feedc710cc50, limb1: 0xf240804810ec72c3bd6ea838, - limb2: 0x238235c3c9db8b71 + limb2: 0x238235c3c9db8b71, }, r1a1: u288 { limb0: 0x1846a54b2774044cc6db6109, limb1: 0x588f586073d6e0294383f78, - limb2: 0x1439b6a213dd4c9f - } + limb2: 0x1439b6a213dd4c9f, + }, }, G2Line { r0a0: u288 { limb0: 0x67e20f1add3f4ebf14209db, limb1: 0xf7f6c97230cb77e31230ed5c, - limb2: 0x25e1f1a58ef3989f + limb2: 0x25e1f1a58ef3989f, }, r0a1: u288 { limb0: 0x70b88d1617d059ceb7d98043, limb1: 0x82f9d5ff0ae1136a457c094c, - limb2: 0x1e57f0f235835b64 + limb2: 0x1e57f0f235835b64, }, r1a0: u288 { limb0: 0x1b7e989c0aa4fed09c6fb03e, limb1: 0x301d42612ab66120ceb7f821, - limb2: 0xa616f1fb22b8093 + limb2: 0xa616f1fb22b8093, }, r1a1: u288 { limb0: 0x1309fa41e57e07658617981b, limb1: 0x3f8982bf9c1278956955f68e, - limb2: 0x2d2c9739573fee78 - } + limb2: 0x2d2c9739573fee78, + }, }, G2Line { r0a0: u288 { limb0: 0xcc24c41f4fa231c9b68ff129, limb1: 0x5440abe8953c426a1d9c839c, - limb2: 0x2f827a205f84222c + limb2: 0x2f827a205f84222c, }, r0a1: u288 { limb0: 0xb7ec4f27a8455ed2e02825c0, limb1: 0xf6214b20f2802f0322bf54de, - limb2: 0x7b6c0211a56a7cd + limb2: 0x7b6c0211a56a7cd, }, r1a0: u288 { limb0: 0x3ddcd17909984999f1d9c0b7, limb1: 0xa88f74be516fa85ef09c0c37, - limb2: 0x163a9e06932a7748 + limb2: 0x163a9e06932a7748, }, r1a1: u288 { limb0: 0x2430701222fa1d7df18182ed, limb1: 0x1842ef7d1e749169f69cd7d2, - limb2: 0x1cfab3ad0f78b05 - } + limb2: 0x1cfab3ad0f78b05, + }, }, G2Line { r0a0: u288 { limb0: 0x47c22ebfcc3068f8dcf02310, limb1: 0x3b3dd7a1f523872b1116c94d, - limb2: 0x227ed969d3c4de16 + limb2: 0x227ed969d3c4de16, }, r0a1: u288 { limb0: 0x74588d18e59d5afd7d6333e0, limb1: 0x9f0b0142842948df6eb78b67, - limb2: 0x2e0977e3388507ff + limb2: 0x2e0977e3388507ff, }, r1a0: u288 { limb0: 0x9edeb901cfd05d4d62c57891, limb1: 0xf2f44c81706b6c574ef74f27, - limb2: 0x21c87948f9829350 + limb2: 0x21c87948f9829350, }, r1a1: u288 { limb0: 0x8dae1edadcbeb24d1690498e, limb1: 0x64a5a0aefccf74b01c6fa30e, - limb2: 0x1bc752ac7ac4cde6 - } + limb2: 0x1bc752ac7ac4cde6, + }, }, G2Line { r0a0: u288 { limb0: 0x545af0ef26ace52605983817, limb1: 0xa79fd477f6e4bb7b9ff7ccfd, - limb2: 0x1ee6d4735695766c + limb2: 0x1ee6d4735695766c, }, r0a1: u288 { limb0: 0x1f7a45146d34eb09a7598bd9, limb1: 0xefa78e89ed2b184fde732788, - limb2: 0x25ec7ae4455d5b79 + limb2: 0x25ec7ae4455d5b79, }, r1a0: u288 { limb0: 0x2b6b735fbce332afa29e90cd, limb1: 0x805bb9f2ebc1c6417b04e9f5, - limb2: 0xec616e54a8979c3 + limb2: 0xec616e54a8979c3, }, r1a1: u288 { limb0: 0x709b98b05dd7794bab2d59b4, limb1: 0xf9f45610844c2c81a03a8a65, - limb2: 0x148662451cb583aa - } + limb2: 0x148662451cb583aa, + }, }, G2Line { r0a0: u288 { limb0: 0x62117d56c64475e6fbdec3af, limb1: 0x583fbbd8939b1e224aa95b0e, - limb2: 0x28191a7f22fb1b52 + limb2: 0x28191a7f22fb1b52, }, r0a1: u288 { limb0: 0x4a365c16e3d6d9018e9edc8e, limb1: 0x2349fc23c3d161ad59f146a4, - limb2: 0xcff2c08ca6d70ff + limb2: 0xcff2c08ca6d70ff, }, r1a0: u288 { limb0: 0x9b0f3727f6c65ae514391775, limb1: 0x66f500fff93b94dc25cd2ef5, - limb2: 0x1616cc41a4059848 + limb2: 0x1616cc41a4059848, }, r1a1: u288 { limb0: 0x20020f168e75bd67232897bd, limb1: 0x7538b1621f2aae4a1744a9d2, - limb2: 0x6a303d9af7e26b0 - } + limb2: 0x6a303d9af7e26b0, + }, }, G2Line { r0a0: u288 { limb0: 0xe62cde136820c7533e265423, limb1: 0xf793e2f097203fb2839ec54, - limb2: 0x2ecea3bada582558 + limb2: 0x2ecea3bada582558, }, r0a1: u288 { limb0: 0xe91c26cff33b3fca1fdca36b, limb1: 0xc0c7af270a2e684511271132, - limb2: 0xe5db537a21ca3cb + limb2: 0xe5db537a21ca3cb, }, r1a0: u288 { limb0: 0xc5e97fa982d1fafbbd294014, limb1: 0x9789fec81f07b1dd32691278, - limb2: 0xd0841164115e268 + limb2: 0xd0841164115e268, }, r1a1: u288 { limb0: 0xefb69f6018971aeb3c7133a, limb1: 0x7edbee9a93563bce2898d463, - limb2: 0x2d197bf653525879 - } + limb2: 0x2d197bf653525879, + }, }, G2Line { r0a0: u288 { limb0: 0x37a161654a55fde81d57e5e5, limb1: 0x1d33e1859f025bbf2f252cb1, - limb2: 0x256f03ef2e631950 + limb2: 0x256f03ef2e631950, }, r0a1: u288 { limb0: 0x70b359aa3604bedf42532ed2, limb1: 0x485902c5248f43f89f4d6489, - limb2: 0x91f619c2ee45ad5 + limb2: 0x91f619c2ee45ad5, }, r1a0: u288 { limb0: 0xcc72bdd8ef4bdbdbd5636693, limb1: 0x72d6b70d02a9f6fbc7ca5523, - limb2: 0xf88eb096dbbef8e + limb2: 0xf88eb096dbbef8e, }, r1a1: u288 { limb0: 0x567bbc86dcfd872c272170b9, limb1: 0x14ad5e1ba548e11ee091146a, - limb2: 0x2bde585cff386dc0 - } + limb2: 0x2bde585cff386dc0, + }, }, G2Line { r0a0: u288 { limb0: 0xeb79e6b473fadb992c5f83a8, limb1: 0xefe49f26e3970afdfad2cc2e, - limb2: 0x168773b099059842 + limb2: 0x168773b099059842, }, r0a1: u288 { limb0: 0x9d3e9750b006a99612167308, limb1: 0x36d359b16e977ed15d4161c2, - limb2: 0x1e4c95a1c15caafd + limb2: 0x1e4c95a1c15caafd, }, r1a0: u288 { limb0: 0xb3c4a79ce63902a10a51e23, limb1: 0xcb207dc605042ccef609394a, - limb2: 0x28367f81a785eea9 + limb2: 0x28367f81a785eea9, }, r1a1: u288 { limb0: 0x7f77d67428213715e7e45365, limb1: 0x1e5c92195da5eafb12b14815, - limb2: 0x19678fa4bc862330 - } + limb2: 0x19678fa4bc862330, + }, }, G2Line { r0a0: u288 { limb0: 0x1818039df6913206ab2405a2, limb1: 0x5377ab614813a34cfcee8b06, - limb2: 0x27c2371869238315 + limb2: 0x27c2371869238315, }, r0a1: u288 { limb0: 0x6e3a7b752b93af987513de48, limb1: 0x600847be13708d65af6fd056, - limb2: 0x1fb56f957b1c324f + limb2: 0x1fb56f957b1c324f, }, r1a0: u288 { limb0: 0xcc16c53c2ef721dc5c8f5e5f, limb1: 0x89e8742919e5d6f87814752a, - limb2: 0xca6f6bfb7f426d3 + limb2: 0xca6f6bfb7f426d3, }, r1a1: u288 { limb0: 0x41add8c9133ba30a102a4bb, limb1: 0x660c71c07cd5e4a635871503, - limb2: 0x2b0ba37253ca76bd - } + limb2: 0x2b0ba37253ca76bd, + }, }, G2Line { r0a0: u288 { limb0: 0xb6f9eda2bfae53ca69fd72df, limb1: 0x62429dd41cbb3c31acbada57, - limb2: 0x50d343c2ebbfa63 + limb2: 0x50d343c2ebbfa63, }, r0a1: u288 { limb0: 0xb16441c66be44074686e0873, limb1: 0x72118bf8f92fd93da3f931b1, - limb2: 0x2d8c67efcdab2c9f + limb2: 0x2d8c67efcdab2c9f, }, r1a0: u288 { limb0: 0x7c82fdbad97732971dcf82f8, limb1: 0x5905f35e201d9b83b7a1898a, - limb2: 0x666471518738295 + limb2: 0x666471518738295, }, r1a1: u288 { limb0: 0x79a4e035db3f75020f87c4e4, limb1: 0xa6597595a691184e717aa1b7, - limb2: 0x1f74dc71d5a002c7 - } + limb2: 0x1f74dc71d5a002c7, + }, }, G2Line { r0a0: u288 { limb0: 0x2eda1e7a3e47f0ceaa9f0137, limb1: 0x903e05a4c7372f902311a7e3, - limb2: 0x17ca943a56fba67 + limb2: 0x17ca943a56fba67, }, r0a1: u288 { limb0: 0x9b977b33fe71218fa31100a2, limb1: 0x9985a54c8af99f6f98acb770, - limb2: 0x264f4f1ae306ae09 + limb2: 0x264f4f1ae306ae09, }, r1a0: u288 { limb0: 0x7b5e4fdc6bc84d795d332dd2, limb1: 0xe2676d5d0d2d5bb6a482e391, - limb2: 0xf998e906ef11c24 + limb2: 0xf998e906ef11c24, }, r1a1: u288 { limb0: 0xd0215aa04d97800bfe4d2571, limb1: 0x8afbbc923a7161865fcccaf1, - limb2: 0x68a922244a1e06c - } + limb2: 0x68a922244a1e06c, + }, }, G2Line { r0a0: u288 { limb0: 0xfe3e9707bdad783425ab808c, limb1: 0x48bae37f3785f6ac84f1d9f4, - limb2: 0x23f7964ac6e85c1f + limb2: 0x23f7964ac6e85c1f, }, r0a1: u288 { limb0: 0x46389f8eb814620c85b16ace, limb1: 0x90f3fba998699480b75716f3, - limb2: 0x1776968a7c554df4 + limb2: 0x1776968a7c554df4, }, r1a0: u288 { limb0: 0xefa070a4d4d1d52d00593451, limb1: 0x2f9abffa4bfb1d259f9e163b, - limb2: 0x29367aa8e59832c + limb2: 0x29367aa8e59832c, }, r1a1: u288 { limb0: 0x82ea5e13b62b054933b28042, limb1: 0x55bec845824984eb488dc154, - limb2: 0x2a75ffeff6990ed5 - } + limb2: 0x2a75ffeff6990ed5, + }, }, G2Line { r0a0: u288 { limb0: 0xb1aed4098913b1760bfdef79, limb1: 0xfafca93bae3f4797778a4a3d, - limb2: 0x61e99ac907f0b5 + limb2: 0x61e99ac907f0b5, }, r0a1: u288 { limb0: 0xb3cfb4bc10c0fd6f52e7741f, limb1: 0x6997070a8b218ce200404bd8, - limb2: 0x1e541f2ec16eefb6 + limb2: 0x1e541f2ec16eefb6, }, r1a0: u288 { limb0: 0xc8037c2c08d6b09417f68f4, limb1: 0xc6672a1c3a90ce2db95e8fca, - limb2: 0x2faf1762a18f3cf3 + limb2: 0x2faf1762a18f3cf3, }, r1a1: u288 { limb0: 0x6a3151adfb916a8ff290644, limb1: 0xe53f264a1da30cb269399d90, - limb2: 0xf020c410d9b4038 - } + limb2: 0xf020c410d9b4038, + }, }, G2Line { r0a0: u288 { limb0: 0xd466ae8b808726024540df45, limb1: 0x106edc6b8bbe95e75c4c8ddb, - limb2: 0x11468447a8135b98 + limb2: 0x11468447a8135b98, }, r0a1: u288 { limb0: 0xd0881b80d847044084035ba3, limb1: 0x120d97c39e7d772df4ea1724, - limb2: 0x276d399b6465c9e + limb2: 0x276d399b6465c9e, }, r1a0: u288 { limb0: 0x7d57a86618737d3d2abaaa4a, limb1: 0xd7e9a1452de00c5e1014e4a7, - limb2: 0x1d4294c5a1e71a79 + limb2: 0x1d4294c5a1e71a79, }, r1a1: u288 { limb0: 0x22d506d59afa935528b3209d, limb1: 0x9b3ab29bf3cd5e1e10cc308d, - limb2: 0x747bbb31310f22d - } + limb2: 0x747bbb31310f22d, + }, }, G2Line { r0a0: u288 { limb0: 0x199cc10b709fbc97e010b5a2, limb1: 0xbfaf4107fa51b16129569088, - limb2: 0x27e59a950ce88313 + limb2: 0x27e59a950ce88313, }, r0a1: u288 { limb0: 0x6554582e8ebeeaed97477b68, limb1: 0xa21b4ce4041d0db94d82c7c8, - limb2: 0x1de018ce87d7bda5 + limb2: 0x1de018ce87d7bda5, }, r1a0: u288 { limb0: 0xc6420e29ce5455750c024fda, limb1: 0xc98a4b583326b58ef9b26e44, - limb2: 0x250ae9ddc80af6e2 + limb2: 0x250ae9ddc80af6e2, }, r1a1: u288 { limb0: 0xb2df135c47abbfec8b28d7a2, limb1: 0x937ccc7b47049c2f3167c9b2, - limb2: 0x1eae535d6c58d67d - } + limb2: 0x1eae535d6c58d67d, + }, }, G2Line { r0a0: u288 { limb0: 0x5d9402b6b38fd455bf6d41e7, limb1: 0x40762f68405f312ef02f8598, - limb2: 0x1f8342cbdceb3506 + limb2: 0x1f8342cbdceb3506, }, r0a1: u288 { limb0: 0xc72348fb470ab8c04752b5a4, limb1: 0x334d25fa09cf31cca46d0916, - limb2: 0x204a36e5e3992a52 + limb2: 0x204a36e5e3992a52, }, r1a0: u288 { limb0: 0xd80af7fe0ef47fff92f37a68, limb1: 0x16c4943784e96ba42bf07819, - limb2: 0x29504fb758b88d97 + limb2: 0x29504fb758b88d97, }, r1a1: u288 { limb0: 0x73229c759eb01fb63c20288b, limb1: 0x9ac158cfc3f612f54354fa46, - limb2: 0x2b076be18044918b - } + limb2: 0x2b076be18044918b, + }, }, G2Line { r0a0: u288 { limb0: 0xfb23f67b0c7c277b0fb86dd1, limb1: 0x38ecd10f58fa1a2a35794a92, - limb2: 0x37aa0d9abc10a23 + limb2: 0x37aa0d9abc10a23, }, r0a1: u288 { limb0: 0xa41ca972e4e66a3542219964, limb1: 0x1bd17624ed2ce1e682b4e8f7, - limb2: 0x2989444f436f1dd6 + limb2: 0x2989444f436f1dd6, }, r1a0: u288 { limb0: 0xd4c30c692a0cd4437bd20830, limb1: 0x3ff4fc96d1e014b335cb4ecb, - limb2: 0x1c92a02e4ef43dfa + limb2: 0x1c92a02e4ef43dfa, }, r1a1: u288 { limb0: 0xd920ac36097259643357948, limb1: 0x4a07824bac28e19dfecd3c9b, - limb2: 0x2107b2b219b0fce7 - } + limb2: 0x2107b2b219b0fce7, + }, }, G2Line { r0a0: u288 { limb0: 0xa7506225f160822b273888e9, limb1: 0xd3d14903f7cac6d483c7f486, - limb2: 0x1069a304f46fc73d + limb2: 0x1069a304f46fc73d, }, r0a1: u288 { limb0: 0xe09cdad30c6c95ec103b4899, limb1: 0x49e00af66e7a9ee491dae35, - limb2: 0x1864d886a088da8a + limb2: 0x1864d886a088da8a, }, r1a0: u288 { limb0: 0xc1b39342ab05cdf6860d1663, limb1: 0x2d93a67b66068131b4c4da45, - limb2: 0x2cf24b680c6c956a + limb2: 0x2cf24b680c6c956a, }, r1a1: u288 { limb0: 0x8c080385898b2b724819996, limb1: 0xcba25b471c4db069a8676475, - limb2: 0x108fc71b9d6170bd - } + limb2: 0x108fc71b9d6170bd, + }, }, G2Line { r0a0: u288 { limb0: 0x572b773de719e0286485c280, limb1: 0x11e06de6ae88abe2dc292d08, - limb2: 0x186e96233737a01 + limb2: 0x186e96233737a01, }, r0a1: u288 { limb0: 0x847e89ed969849374f7db3c7, limb1: 0xc5b2fb949e49d53bcf33515b, - limb2: 0x23b1283aae54fe3b + limb2: 0x23b1283aae54fe3b, }, r1a0: u288 { limb0: 0xed5be001209472991a4e75a, limb1: 0x2f5a7a9479f81cff74bda20a, - limb2: 0x103224cf323271db + limb2: 0x103224cf323271db, }, r1a1: u288 { limb0: 0xece900cc17ebd9f42d6a706a, limb1: 0x4fcf1446fb08c2ce8fe1f6d9, - limb2: 0x305cc1d699ea0794 - } + limb2: 0x305cc1d699ea0794, + }, }, G2Line { r0a0: u288 { limb0: 0xf8bfb85cdc86039bb4018125, limb1: 0x7be955c10b0359a7973d8645, - limb2: 0x26304c9784e41970 + limb2: 0x26304c9784e41970, }, r0a1: u288 { limb0: 0x45e2dd0c8c9e99be2d486ab7, limb1: 0x4435e999a3d2eb84952cbfff, - limb2: 0x1330c65943a597bf + limb2: 0x1330c65943a597bf, }, r1a0: u288 { limb0: 0xc3ca87ec812cb9200943aa6c, limb1: 0x240ae8fdf376bf8512aad6bb, - limb2: 0x2334035bf7082914 + limb2: 0x2334035bf7082914, }, r1a1: u288 { limb0: 0x63ede79d89c52d83f35048d8, limb1: 0x73a18b855a63a05716992b7e, - limb2: 0x217132215f0cc50f - } + limb2: 0x217132215f0cc50f, + }, }, G2Line { r0a0: u288 { limb0: 0x76c2c3f4a1f1e9d8af542b7, limb1: 0x8441dca19b660c87b2c24022, - limb2: 0xd4fb1ace706aab + limb2: 0xd4fb1ace706aab, }, r0a1: u288 { limb0: 0x6b98b456e4100fa122cd3adf, limb1: 0x9ae10c95907ea280c6754592, - limb2: 0x1473f309a21a16eb + limb2: 0x1473f309a21a16eb, }, r1a0: u288 { limb0: 0xf530f6daa1f8c4701334c030, limb1: 0x6fa238391d516b8940b78ac3, - limb2: 0x27085bb6119190ab + limb2: 0x27085bb6119190ab, }, r1a1: u288 { limb0: 0xf6e1318ded506c0fa4a5ca59, limb1: 0xd627f19ca3008cc90d8bbd8e, - limb2: 0xe4f8de695c15f15 - } + limb2: 0xe4f8de695c15f15, + }, }, G2Line { r0a0: u288 { limb0: 0x3cd25258c14698ad321ce4c1, limb1: 0x5f3e41e0e9abc286750b55ea, - limb2: 0x1e7acc78ae40f53c + limb2: 0x1e7acc78ae40f53c, }, r0a1: u288 { limb0: 0x7fb753e36893e039a913c94f, limb1: 0x71d2b9fcc8c9833d7de96163, - limb2: 0x99a73fa44b04d5c + limb2: 0x99a73fa44b04d5c, }, r1a0: u288 { limb0: 0xde6ab8423c206004fc0a2e0e, limb1: 0x78d2d32cf9a4d7886551910a, - limb2: 0x153d30f1951850ab + limb2: 0x153d30f1951850ab, }, r1a1: u288 { limb0: 0xe1104a60c9402d05c7369e2e, limb1: 0x692902d053754c3b56e08d58, - limb2: 0x13eae4536ba169a3 - } + limb2: 0x13eae4536ba169a3, + }, }, G2Line { r0a0: u288 { limb0: 0x1509c5b91b73a75eff1fd9fb, limb1: 0xf3dec59a348b17c7400b86bf, - limb2: 0x13db20e7e664f0c0 + limb2: 0x13db20e7e664f0c0, }, r0a1: u288 { limb0: 0x36dd1839b3a22a5afbd7f7ed, limb1: 0x66b0df244064db38c2bb2556, - limb2: 0x2abe1143e1e96ef0 + limb2: 0x2abe1143e1e96ef0, }, r1a0: u288 { limb0: 0xe9a3cf2e38669d402746144e, limb1: 0xf5902b6e357b3171d55c611, - limb2: 0x2664b92ca19b7611 + limb2: 0x2664b92ca19b7611, }, r1a1: u288 { limb0: 0x9daa58ef595d3b525a479c15, limb1: 0xb8c4e03fb569df7a793ee10c, - limb2: 0x5375f321384b046 - } + limb2: 0x5375f321384b046, + }, }, G2Line { r0a0: u288 { limb0: 0x8a787397b454b58176837e03, limb1: 0xc5cec0e7f665a2a76114ed3a, - limb2: 0x2c78f7b8fba875fd + limb2: 0x2c78f7b8fba875fd, }, r0a1: u288 { limb0: 0x7928a23938145a58f5d57ab0, limb1: 0xede46e1acbb7d258988f4b3a, - limb2: 0xe9e606331057a90 + limb2: 0xe9e606331057a90, }, r1a0: u288 { limb0: 0x9e19b0f639d02c4e3468d6db, limb1: 0x9fec35cbec423d803671267c, - limb2: 0x28477ed79b8d9f1c + limb2: 0x28477ed79b8d9f1c, }, r1a1: u288 { limb0: 0x9f3f001662c3ddb9542c5b1e, limb1: 0x66630f87ae05a36602688eee, - limb2: 0x2e141bd01fbd3896 - } + limb2: 0x2e141bd01fbd3896, + }, }, G2Line { r0a0: u288 { limb0: 0xcc3035708103ff2f96090b76, limb1: 0xf0cb8a10216eccab8c3b0985, - limb2: 0x163aab6dd7da60cc + limb2: 0x163aab6dd7da60cc, }, r0a1: u288 { limb0: 0xd33d3548ed9d2cec0c8c3e97, limb1: 0xabc9469b7c56c8da2ce322b, - limb2: 0x2e6f16f35be168fd + limb2: 0x2e6f16f35be168fd, }, r1a0: u288 { limb0: 0xb89c671c85a0d99ee444f09c, limb1: 0xc3e70b59ad07c869ff35fce, - limb2: 0x2d94791bb226fbf5 + limb2: 0x2d94791bb226fbf5, }, r1a1: u288 { limb0: 0xdd91f5db83ab791b396b15fc, limb1: 0x475f296aa5ec4dcb22e72eaf, - limb2: 0x118eb40c1ba0d446 - } + limb2: 0x118eb40c1ba0d446, + }, }, G2Line { r0a0: u288 { limb0: 0x28ccff4098291ff99db7d015, limb1: 0xbbf223ce77f8bdf1e351f459, - limb2: 0x1eb6506d0c7d4aea + limb2: 0x1eb6506d0c7d4aea, }, r0a1: u288 { limb0: 0xe4c907dc1a275aa0cdbd6c2d, limb1: 0x357d8adc7866fcc383178ae9, - limb2: 0x18c6082d4b4a59f5 + limb2: 0x18c6082d4b4a59f5, }, r1a0: u288 { limb0: 0xf7ba73f45b1f2c9b8b13b1c1, limb1: 0x754b28de4706d4147a660bf3, - limb2: 0x304b461ac8db9efd + limb2: 0x304b461ac8db9efd, }, r1a1: u288 { limb0: 0x7afa3c98b59c12047d082d00, limb1: 0x16b499cba52810fd94e60ac1, - limb2: 0x107cc1c9d1ee0ae5 - } + limb2: 0x107cc1c9d1ee0ae5, + }, }, G2Line { r0a0: u288 { limb0: 0x5473c94e995465f0785b4316, limb1: 0x86e38425ae2faae14a123db7, - limb2: 0x236ccf43605631c3 + limb2: 0x236ccf43605631c3, }, r0a1: u288 { limb0: 0x3560440e3b7a50cba31817c4, limb1: 0x94e7415089d9c6a041b95a4e, - limb2: 0x17b1e780a1f282b7 + limb2: 0x17b1e780a1f282b7, }, r1a0: u288 { limb0: 0x34f92afe1a802ef319d629ce, limb1: 0x9b7ae704b85f2ef01618f9ac, - limb2: 0x127e7a97519bc45 + limb2: 0x127e7a97519bc45, }, r1a1: u288 { limb0: 0x87fef97f09987ebb7a9d93f3, limb1: 0x6e571f3688a614ddfc482b07, - limb2: 0x26d1e21000c12da3 - } + limb2: 0x26d1e21000c12da3, + }, }, G2Line { r0a0: u288 { limb0: 0xb292d5bbc1c5800beeca8d15, limb1: 0xb6e3c05aa128d07de2df66e8, - limb2: 0x24424145a074ed6b + limb2: 0x24424145a074ed6b, }, r0a1: u288 { limb0: 0x138b775d1ca3d771fd249d3, limb1: 0x8a2392db8be88b8fa3f04951, - limb2: 0x17bc62334cefe39c + limb2: 0x17bc62334cefe39c, }, r1a0: u288 { limb0: 0x8e7371df60a9a5e4cbbc9be9, limb1: 0xb650615a2aa43a3aced9368c, - limb2: 0x1a4dc1089e983ca5 + limb2: 0x1a4dc1089e983ca5, }, r1a1: u288 { limb0: 0x18674fa925de769d104bd2a2, limb1: 0x777c884e96e41fdb34f4141a, - limb2: 0x4d2dfcf532f463b - } + limb2: 0x4d2dfcf532f463b, + }, }, G2Line { r0a0: u288 { limb0: 0xc780881f9c6d8bca3e37aea0, limb1: 0xe9895da94e554ff87a2dfd7, - limb2: 0x2f2f37a08cd78298 + limb2: 0x2f2f37a08cd78298, }, r0a1: u288 { limb0: 0xc54128f3d98d66a205153035, limb1: 0xde9df82c3ef59e5ffeb06262, - limb2: 0x12c11f147ed32b02 + limb2: 0x12c11f147ed32b02, }, r1a0: u288 { limb0: 0xd779e2290c08b46957f9f81f, limb1: 0xcef48524479ef765998c179e, - limb2: 0x62d4fd8696cda6c + limb2: 0x62d4fd8696cda6c, }, r1a1: u288 { limb0: 0xf553ff2a36599491c12d51cf, limb1: 0x68f2b7726eab96d19be4f7ad, - limb2: 0x1b2e70aad5ff1bde - } + limb2: 0x1b2e70aad5ff1bde, + }, }, G2Line { r0a0: u288 { limb0: 0xf421435fe144055f20b6716a, limb1: 0x8d06d11b62031d272be85bb6, - limb2: 0x378648f296513f4 + limb2: 0x378648f296513f4, }, r0a1: u288 { limb0: 0xaa516565bc7b4ae51c4a1d57, limb1: 0xd1a3c04fc68cda14c386fd17, - limb2: 0x10a17e6b2b05ae5f + limb2: 0x10a17e6b2b05ae5f, }, r1a0: u288 { limb0: 0x5a4fdbaf4101c2e7b0824483, limb1: 0x243d3d5fab841583935cbdbc, - limb2: 0x2bdee3f29a271704 + limb2: 0x2bdee3f29a271704, }, r1a1: u288 { limb0: 0x75a0bfe5357850025da7dc1e, limb1: 0x7efd8ea95e831ae7b7cb4204, - limb2: 0x242d5ff5148e8a24 - } + limb2: 0x242d5ff5148e8a24, + }, }, G2Line { r0a0: u288 { limb0: 0x13404adaeaee7586ba22a2fd, limb1: 0x37d5f59c1d1a7ead09415ba0, - limb2: 0x2d046fbec788a89f + limb2: 0x2d046fbec788a89f, }, r0a1: u288 { limb0: 0x304e12830e0da56473bfd493, limb1: 0xef4257261a4d1e86faddc8a6, - limb2: 0x2e2a406604501f28 + limb2: 0x2e2a406604501f28, }, r1a0: u288 { limb0: 0x4df9be0616aa88b0d4cf02a2, limb1: 0xfe4ac5d159b42f097e07c99, - limb2: 0x1bfaf8ddf8eadbe0 + limb2: 0x1bfaf8ddf8eadbe0, }, r1a1: u288 { limb0: 0x39cb7475288b5721bd85070f, limb1: 0xbcf9db00ab3740a004be0aa4, - limb2: 0x67aa9f57b6254b0 - } + limb2: 0x67aa9f57b6254b0, + }, }, G2Line { r0a0: u288 { limb0: 0xc35e158b40bec28bc76a5275, limb1: 0xc7155f076ac63ee9c5bc4282, - limb2: 0x29db032c04d42b9a + limb2: 0x29db032c04d42b9a, }, r0a1: u288 { limb0: 0xdd6363dfcc7e71cd13c51cf4, limb1: 0x10ffc527e277eaf97c79a492, - limb2: 0x22a9e4c447737c96 + limb2: 0x22a9e4c447737c96, }, r1a0: u288 { limb0: 0x9705df81acb2749faf48b2e4, limb1: 0x62e438807e2bfc92e2fdb9f6, - limb2: 0x138bbb12a9dd92f4 + limb2: 0x138bbb12a9dd92f4, }, r1a1: u288 { limb0: 0x9a675f19eeab63bd0216ce7c, limb1: 0x9a08c702e29a00db40bc334e, - limb2: 0xc960c1d7c1c05fb - } + limb2: 0xc960c1d7c1c05fb, + }, }, G2Line { r0a0: u288 { limb0: 0x7a08cc34c6fcd1f9e74c35b2, limb1: 0x2cc8a7d624b15a0f9bfb2d3e, - limb2: 0x22760e0e61e3e208 + limb2: 0x22760e0e61e3e208, }, r0a1: u288 { limb0: 0xc27bb24b5b346b44cf7d548f, limb1: 0xf27ea7f3736c8b8168f8c2c1, - limb2: 0x295d0b6d3ef18509 + limb2: 0x295d0b6d3ef18509, }, r1a0: u288 { limb0: 0xc7df1942c9b70ad4983814f, limb1: 0xf66a53554bde327b0ff9c637, - limb2: 0x1fe98a3ad4e0774a + limb2: 0x1fe98a3ad4e0774a, }, r1a1: u288 { limb0: 0xa33e765594cc92d0facb00ed, limb1: 0xe35f28bd8fb424b3721d3880, - limb2: 0x1735f29046f597b1 - } + limb2: 0x1735f29046f597b1, + }, }, G2Line { r0a0: u288 { limb0: 0xe8cbc94bb8cdf72ff26f38fd, limb1: 0xe0a2179f1a66292497c7a553, - limb2: 0x258204cb3308769e + limb2: 0x258204cb3308769e, }, r0a1: u288 { limb0: 0x31d262be0ea54e0eed69a03b, limb1: 0x830d5451d02580b33f770099, - limb2: 0x1b7c1fa69407bced + limb2: 0x1b7c1fa69407bced, }, r1a0: u288 { limb0: 0xeb6c0bbb02f4cf840a51ac39, limb1: 0x30ebd50843b10bfe90d970a0, - limb2: 0x2ce27eb8c126350b + limb2: 0x2ce27eb8c126350b, }, r1a1: u288 { limb0: 0x4c8c9c51af22d9bf461a9f49, limb1: 0xfb8b4c9ef7b7fc81c52ff1a2, - limb2: 0xd39e1c14eea7101 - } + limb2: 0xd39e1c14eea7101, + }, }, G2Line { r0a0: u288 { limb0: 0xb02550d130bf712df6d98a57, limb1: 0x8854a229566b7ff22b8ccff3, - limb2: 0x12a0631c0924ec70 + limb2: 0x12a0631c0924ec70, }, r0a1: u288 { limb0: 0xb59d2598e43244d544a1616e, limb1: 0xf28e9462628066c68e061fc6, - limb2: 0x7baccf7063f2981 + limb2: 0x7baccf7063f2981, }, r1a0: u288 { limb0: 0xb1cbf3882570f3d23dbedbc4, limb1: 0x5e8742fe9dc865822e5cae92, - limb2: 0x2654f08f566866ac + limb2: 0x2654f08f566866ac, }, r1a1: u288 { limb0: 0x1287198f6ac726fd6aa6595e, limb1: 0x220b82cf3025285d6b7344af, - limb2: 0x1419e0cd4fc9d705 - } + limb2: 0x1419e0cd4fc9d705, + }, }, G2Line { r0a0: u288 { limb0: 0x16da4933b0462809081edbc4, limb1: 0xb2b5cf2a2286026e0bbc4c4, - limb2: 0x14490aeefaf4002b + limb2: 0x14490aeefaf4002b, }, r0a1: u288 { limb0: 0x9631e388544a5571edb94366, limb1: 0x4647882204977448d836aae, - limb2: 0x1df1cff53ae1660e + limb2: 0x1df1cff53ae1660e, }, r1a0: u288 { limb0: 0xce99ac65e9d29dee6ab79293, limb1: 0xb5827a5ff68c42c93f003a3d, - limb2: 0x2ff7f220d4e2b15e + limb2: 0x2ff7f220d4e2b15e, }, r1a1: u288 { limb0: 0xfeead92cf9c75dc3dc26ddbe, limb1: 0x73f7035049129b05256f2625, - limb2: 0x2f97ef7e0326ae1b - } + limb2: 0x2f97ef7e0326ae1b, + }, }, G2Line { r0a0: u288 { limb0: 0x3557697309324ec7b28f655f, limb1: 0xf990f387e4585977f0c61411, - limb2: 0x1f88afaff88f777f + limb2: 0x1f88afaff88f777f, }, r0a1: u288 { limb0: 0xfbd05da9a80d37ee13e654d, limb1: 0xa34586aaab313351d2211c3c, - limb2: 0x16f110b250c8f4a7 + limb2: 0x16f110b250c8f4a7, }, r1a0: u288 { limb0: 0xe7379e88b19d61e01dbb464d, limb1: 0x6ef01d97f74e23a2a2e3954a, - limb2: 0x2b1bc8c3cb77b3b4 + limb2: 0x2b1bc8c3cb77b3b4, }, r1a1: u288 { limb0: 0xaefdcb2fc007f2b030adf282, limb1: 0x407cd78e89ca611eeba48b00, - limb2: 0x15caeeddb0b65f8e - } + limb2: 0x15caeeddb0b65f8e, + }, }, G2Line { r0a0: u288 { limb0: 0x25e2464064e839a435c901fd, limb1: 0xc8a250aab01f64653e7b143, - limb2: 0x140159960e8bbee6 + limb2: 0x140159960e8bbee6, }, r0a1: u288 { limb0: 0x7cb8f3194d4856b2e37ad147, limb1: 0x79f1a0cbdbe629456ff7fd09, - limb2: 0x2e8cc9955ec33b14 + limb2: 0x2e8cc9955ec33b14, }, r1a0: u288 { limb0: 0x3a33e8aae92f696039285ae8, limb1: 0x50e70dff510555f94708ec0e, - limb2: 0x107f090bc1746726 + limb2: 0x107f090bc1746726, }, r1a1: u288 { limb0: 0xebc6d08d9ffc1f811537ae5c, limb1: 0x97116269a7fe2b46ecd07544, - limb2: 0x2ed49e8306bb6b53 - } + limb2: 0x2ed49e8306bb6b53, + }, }, G2Line { r0a0: u288 { limb0: 0xf8f6ac38dbd6563a32fe3ee9, limb1: 0xfacb340af38f5dd75813a198, - limb2: 0x16bbfa264bbaa255 + limb2: 0x16bbfa264bbaa255, }, r0a1: u288 { limb0: 0x76a6b03f569b4e99a401edca, limb1: 0xba4469e4fb78a30370beb53, - limb2: 0xde76a28c997a85a + limb2: 0xde76a28c997a85a, }, r1a0: u288 { limb0: 0x9368f4915d1afe49ee098655, limb1: 0x4d6ca82a7c8d3612d1f5d552, - limb2: 0xbf0b37fd18b8725 + limb2: 0xbf0b37fd18b8725, }, r1a1: u288 { limb0: 0xc503c77bc66cf62a998cabd4, limb1: 0x4fe691624059c05c90abec0e, - limb2: 0x1b8daabf94ec10a9 - } + limb2: 0x1b8daabf94ec10a9, + }, }, G2Line { r0a0: u288 { limb0: 0x338a05ed9e18ca0c8cbb9ba, limb1: 0xeaed8a5ad1bbfa8ffd7827d0, - limb2: 0x229ab6a016d41b8d + limb2: 0x229ab6a016d41b8d, }, r0a1: u288 { limb0: 0x6de2e082d93ad5ab82221604, limb1: 0xdbadbca9be15f3e1a6011bef, - limb2: 0x17f46739d3798529 + limb2: 0x17f46739d3798529, }, r1a0: u288 { limb0: 0x556cb2cd13bc608a395ef30a, limb1: 0x5ae57098c69bfdd5e4310a77, - limb2: 0x234c308ff816d887 + limb2: 0x234c308ff816d887, }, r1a1: u288 { limb0: 0xde9e9d4f811bdd153dca9448, limb1: 0x2a5c0dbac52000c678bf9037, - limb2: 0x2f74a2c3d53bbf07 - } + limb2: 0x2f74a2c3d53bbf07, + }, }, G2Line { r0a0: u288 { limb0: 0x5d5094b09519f9fbc1bf26c7, limb1: 0x60b75c521b5d0d3a8c6c5a57, - limb2: 0x1db1a7d363c021fa + limb2: 0x1db1a7d363c021fa, }, r0a1: u288 { limb0: 0xda84f6ecfab32ddfc17bb30c, limb1: 0x31f21c63899699ef82e8956, - limb2: 0x1bb6484e546389ba + limb2: 0x1bb6484e546389ba, }, r1a0: u288 { limb0: 0x6d03eff42e8a9c1517bf621f, limb1: 0x25e25c77b11cc5006cb39115, - limb2: 0x2bab9460edd274f4 + limb2: 0x2bab9460edd274f4, }, r1a1: u288 { limb0: 0x6636dd3c7ea7e49e82793062, limb1: 0x45e083ea0fb71779754a40e0, - limb2: 0x1b148d5ad236afff - } + limb2: 0x1b148d5ad236afff, + }, }, G2Line { r0a0: u288 { limb0: 0x1bd0d3e64772dd8d6f4eb955, limb1: 0xd551e62b4dc950330f32055e, - limb2: 0x2af99115e61ea584 + limb2: 0x2af99115e61ea584, }, r0a1: u288 { limb0: 0xbf68bac9801a05b7d4e5c230, limb1: 0xb2c2415c0237afafa8e24039, - limb2: 0x9639d3152ec116d + limb2: 0x9639d3152ec116d, }, r1a0: u288 { limb0: 0x5470718dfbca1295766112f2, limb1: 0xcdc95e016f5749cd20628ff7, - limb2: 0xa073db3f3d4ee7f + limb2: 0xa073db3f3d4ee7f, }, r1a1: u288 { limb0: 0x59adba4782946b799f2b3f52, limb1: 0x60aac6f24d8307d05aaf156e, - limb2: 0x29fa48831a9be4a - } + limb2: 0x29fa48831a9be4a, + }, }, G2Line { r0a0: u288 { limb0: 0xfb944c01e622920643567a03, limb1: 0xb5e410fcce49e44fa6b733e5, - limb2: 0x67235bfc45af909 + limb2: 0x67235bfc45af909, }, r0a1: u288 { limb0: 0x7415228da60f54ef44f0e9e5, limb1: 0x54a974a80cb733a9398a4237, - limb2: 0x14742634cb3e88c6 + limb2: 0x14742634cb3e88c6, }, r1a0: u288 { limb0: 0xe6117563be5a51a3e45835bb, limb1: 0x5cd22381f024901e8038e534, - limb2: 0x9bccc5fd250a4e2 + limb2: 0x9bccc5fd250a4e2, }, r1a1: u288 { limb0: 0xd7e83df65939cb9e0a65506f, limb1: 0x5c0226578531f39df6fbfc47, - limb2: 0x24413aaad067b5a2 - } + limb2: 0x24413aaad067b5a2, + }, }, G2Line { r0a0: u288 { limb0: 0x1104034e64d27e5ffc63566, limb1: 0x399bd49fa7407a8bdb5203c7, - limb2: 0x1832f6474b41c0bf + limb2: 0x1832f6474b41c0bf, }, r0a1: u288 { limb0: 0x55803008aa1d71cb5f9941c1, limb1: 0x404a98b2848b86b4af5b57e6, - limb2: 0x163abe5942eb31d8 + limb2: 0x163abe5942eb31d8, }, r1a0: u288 { limb0: 0x82f5febdbf1aef734e2827ca, limb1: 0x12d2b5ab6f8472e574b9210c, - limb2: 0x28eb5172b9c24785 + limb2: 0x28eb5172b9c24785, }, r1a1: u288 { limb0: 0xb2fbbca733e95d52f011bf6f, limb1: 0x632c5aacc01d53ce7abc8bae, - limb2: 0x750b07eef4315e1 - } + limb2: 0x750b07eef4315e1, + }, }, G2Line { r0a0: u288 { limb0: 0x36e8e6c311534f247b2f522f, limb1: 0x30b52221767eb139a6621af5, - limb2: 0xa9472da06a550f6 + limb2: 0xa9472da06a550f6, }, r0a1: u288 { limb0: 0xd54bec3ff6e5c1609841378f, limb1: 0x86779a5fb4e9c376a93fbad, - limb2: 0xfe84f7906eda072 + limb2: 0xfe84f7906eda072, }, r1a0: u288 { limb0: 0x4f7564b178d5cb370ab75811, limb1: 0xd054e692a00381045a312b52, - limb2: 0x1af83b2d13968385 + limb2: 0x1af83b2d13968385, }, r1a1: u288 { limb0: 0xc3f2584ed4cfcc7213a55c0e, limb1: 0xcf835b28a17db67f23c65108, - limb2: 0x15f8038dbb750a89 - } + limb2: 0x15f8038dbb750a89, + }, }, G2Line { r0a0: u288 { limb0: 0xb311fac4a46b12a29d9145c5, limb1: 0xf0216ee536a371f5bb9fb55c, - limb2: 0x128c4da7ec19e940 + limb2: 0x128c4da7ec19e940, }, r0a1: u288 { limb0: 0x40d5ac9c25788920a64397a9, limb1: 0xe61e75b3f5562e0f5bc0039d, - limb2: 0xac9a936b0bfff57 + limb2: 0xac9a936b0bfff57, }, r1a0: u288 { limb0: 0xf7091e9a7ea3a772b7f006b3, limb1: 0x4541ad07dea41c3ff23f1c1, - limb2: 0x73ea3cc79b728c1 + limb2: 0x73ea3cc79b728c1, }, r1a1: u288 { limb0: 0xcd2b3dcd910e9d600708fe2e, limb1: 0x726ab436201b4de44b9efa4f, - limb2: 0x2e6674c1fcf4372e - } + limb2: 0x2e6674c1fcf4372e, + }, }, G2Line { r0a0: u288 { limb0: 0x9501f9c373c02510420bd774, limb1: 0x34a01a7a11837b54b21d87ad, - limb2: 0x13013fa1ad5a2602 + limb2: 0x13013fa1ad5a2602, }, r0a1: u288 { limb0: 0x4bf8308ce14b6895f625821, limb1: 0xde9402ce107e3b0bb8325032, - limb2: 0x221a4b3042ac620f + limb2: 0x221a4b3042ac620f, }, r1a0: u288 { limb0: 0x2b54888ac068e44ac1b5e725, limb1: 0xe2595c1718cf92904f26b388, - limb2: 0xc444735a378fc2b + limb2: 0xc444735a378fc2b, }, r1a1: u288 { limb0: 0xdb79229471d5dfb86ac334e6, limb1: 0x5300c1298d97c7e56a443d9, - limb2: 0x290a2ac4e4806224 - } + limb2: 0x290a2ac4e4806224, + }, }, G2Line { r0a0: u288 { limb0: 0x68dc34c5837479b6fe1b15f4, limb1: 0x70ffaada5c0d2134dd4b01ff, - limb2: 0x12600a475dc719f6 + limb2: 0x12600a475dc719f6, }, r0a1: u288 { limb0: 0xef8f37a1a7c1874aa696b864, limb1: 0xf03831086e97655126735dcc, - limb2: 0x29a8f8b90b8db8bd + limb2: 0x29a8f8b90b8db8bd, }, r1a0: u288 { limb0: 0xdaae6d464020690b41135866, limb1: 0xe1a461381c2daafc22ecc6b8, - limb2: 0x1be8b437d95ece9a + limb2: 0x1be8b437d95ece9a, }, r1a1: u288 { limb0: 0x6ec13263dbf5de6eebbeffc, limb1: 0x7309cff008feb3ebfb9b22e6, - limb2: 0x112e6ec0db536bd2 - } + limb2: 0x112e6ec0db536bd2, + }, }, G2Line { r0a0: u288 { limb0: 0xf85ee56a7931c3a3d7e22b1, limb1: 0xc49e4026d30000ff5ad0ed87, - limb2: 0x9a8d4f19347675e + limb2: 0x9a8d4f19347675e, }, r0a1: u288 { limb0: 0x34652599e03489dbca6a04bb, limb1: 0x98f8ba9e9b65abccfdce7169, - limb2: 0x153fbd440ef725b5 + limb2: 0x153fbd440ef725b5, }, r1a0: u288 { limb0: 0x35111b6f4eacb1fcf5f53f8f, limb1: 0x23545a2bb56c9b2fe222f39c, - limb2: 0x1b7822ce0cdc1f2b + limb2: 0x1b7822ce0cdc1f2b, }, r1a1: u288 { limb0: 0xe68e164e8c7cdb83224d5ecf, limb1: 0x4900a3f7ed3d0b25d2716b2d, - limb2: 0xf1e46e6adac9d5d - } + limb2: 0xf1e46e6adac9d5d, + }, }, G2Line { r0a0: u288 { limb0: 0x8b2c899639dc5cc9c044490d, limb1: 0x22f86bdfbacd20aeec5d8be9, - limb2: 0x19b836ccbb17a7e4 + limb2: 0x19b836ccbb17a7e4, }, r0a1: u288 { limb0: 0x89bae9959824cb3a475e5c49, limb1: 0xc53c6b56b477f0dd0853827b, - limb2: 0x22783114b221de87 + limb2: 0x22783114b221de87, }, r1a0: u288 { limb0: 0x5c91c9c68702894ffcd0ea24, limb1: 0x5d691537f69a30e7050f98a4, - limb2: 0x1bb9cbba6a513842 + limb2: 0x1bb9cbba6a513842, }, r1a1: u288 { limb0: 0xa9226abf9515bbd281fed4c8, limb1: 0x75b0a0c6355bd2dd020a5c6, - limb2: 0x221468ff5248a1e8 - } + limb2: 0x221468ff5248a1e8, + }, }, G2Line { r0a0: u288 { limb0: 0xf8820d4aceab306eb783e0a6, limb1: 0xc7d1a20e7942c4d389818908, - limb2: 0x2e31d9c48e89b432 + limb2: 0x2e31d9c48e89b432, }, r0a1: u288 { limb0: 0x85bbebd854eccf7a6c56767, limb1: 0x2d07ae2c3946de9e92f58236, - limb2: 0xeb5a4ae8acab71d + limb2: 0xeb5a4ae8acab71d, }, r1a0: u288 { limb0: 0x4512ff65bb8a0aed640ac4ab, limb1: 0xdd9f660ad3feed3e4510f4c5, - limb2: 0x16ba9a8b70ccc71c + limb2: 0x16ba9a8b70ccc71c, }, r1a1: u288 { limb0: 0x9d2c01267d4aeefcf1f78ccc, limb1: 0xdbeb1adcbf7df61b43429ba9, - limb2: 0x2c895b99227c31d6 - } + limb2: 0x2c895b99227c31d6, + }, }, G2Line { r0a0: u288 { limb0: 0x90e454055b75ead8e2ebac42, limb1: 0xfbabb00c2f3aa9dbd7522417, - limb2: 0x5b3e7e4068f790 + limb2: 0x5b3e7e4068f790, }, r0a1: u288 { limb0: 0xf85cebc1555abc4d89b337ef, limb1: 0xf4761f79f94babcc24806057, - limb2: 0x1b996af0e24e9310 + limb2: 0x1b996af0e24e9310, }, r1a0: u288 { limb0: 0xd7206c93b508f78061fe01cd, limb1: 0x742ef1d29a2c692312298778, - limb2: 0x151fe23f3bae34a2 + limb2: 0x151fe23f3bae34a2, }, r1a1: u288 { limb0: 0x87f5668138132b557efd05d6, limb1: 0x94e793d236320a9e3e525285, - limb2: 0x1988ca9052857a71 - } + limb2: 0x1988ca9052857a71, + }, }, G2Line { r0a0: u288 { limb0: 0x7c6a269fe06a16627f5ecf5b, limb1: 0x50317e79670fba9583cbc9af, - limb2: 0xb20ea22d8b7ef38 + limb2: 0xb20ea22d8b7ef38, }, r0a1: u288 { limb0: 0xcec9cccc31411674ea756b45, limb1: 0x7febf8b5905c4ad47e85f90a, - limb2: 0x85dd991fef5f00a + limb2: 0x85dd991fef5f00a, }, r1a0: u288 { limb0: 0xd935f602bec4954512e2a83c, limb1: 0x3d448544bb1a52e6c21568e5, - limb2: 0x30253372b426fa93 + limb2: 0x30253372b426fa93, }, r1a1: u288 { limb0: 0x2321475e1ba3f3775a8df03d, limb1: 0x8ad60a1731370c5148fdd271, - limb2: 0x5ac30ab6d4ac94f - } + limb2: 0x5ac30ab6d4ac94f, + }, }, G2Line { r0a0: u288 { limb0: 0x387a543af80110750ef06290, limb1: 0xf82835b4768246d0aaa1d901, - limb2: 0x2419af1838a4d116 + limb2: 0x2419af1838a4d116, }, r0a1: u288 { limb0: 0x47251c0c962be9ae66db3d05, limb1: 0x43f64d4ac11d82a21f131c2d, - limb2: 0xf896f4ab3e39af0 + limb2: 0xf896f4ab3e39af0, }, r1a0: u288 { limb0: 0xc5775374fa4d6293b3c2c070, limb1: 0xc1aef05fdcb1bb03a298fe38, - limb2: 0x298566e64b1aa9ea + limb2: 0x298566e64b1aa9ea, }, r1a1: u288 { limb0: 0xc1973597201173697fe8c018, limb1: 0xc357b15cb9b588bae8abc963, - limb2: 0xed371de6f4074ab - } + limb2: 0xed371de6f4074ab, + }, }, G2Line { r0a0: u288 { limb0: 0x40d9f3f225ebab5380d4b72, limb1: 0x31a46955bff4173ff90907c5, - limb2: 0xb56f0074b975741 + limb2: 0xb56f0074b975741, }, r0a1: u288 { limb0: 0xba705bbb410ae6715e48508, limb1: 0x9baf711d475a978e9c6208e0, - limb2: 0x2687a1dd57bbd608 + limb2: 0x2687a1dd57bbd608, }, r1a0: u288 { limb0: 0x4cdcbddd1555f6a28e4b4633, limb1: 0x5c368f07d906b3dedd347055, - limb2: 0x4c585e6b42f1812 + limb2: 0x4c585e6b42f1812, }, r1a1: u288 { limb0: 0x2aa6dcbf02a9bfd6a69b9713, limb1: 0xc377411908d06357c9dd7e0d, - limb2: 0x1ea404aa6b11edc9 - } + limb2: 0x1ea404aa6b11edc9, + }, }, G2Line { r0a0: u288 { limb0: 0x1ba2d91e528e15b1e971d7bc, limb1: 0xc3d5b13a1a0ed98868b53c49, - limb2: 0x58c43b20c6ae43b + limb2: 0x58c43b20c6ae43b, }, r0a1: u288 { limb0: 0xad13d1837679166bbc309e9c, limb1: 0xd40862384caeae8d2c50a472, - limb2: 0x1333a454fe004635 + limb2: 0x1333a454fe004635, }, r1a0: u288 { limb0: 0x67824db562428bd89655e374, limb1: 0xbb420615e88b3b3e751019b, - limb2: 0x1c8baf2e8cf9c832 + limb2: 0x1c8baf2e8cf9c832, }, r1a1: u288 { limb0: 0x6ffe8674ea7d664329d21c4a, limb1: 0x30f2edace39818c4f5d4cd54, - limb2: 0x22a7b32f48b0882a - } + limb2: 0x22a7b32f48b0882a, + }, }, G2Line { r0a0: u288 { limb0: 0xedd1d0959325376134891630, limb1: 0x1128395a9b57a29073cb0850, - limb2: 0xf3743d152d6505f + limb2: 0xf3743d152d6505f, }, r0a1: u288 { limb0: 0xb982975f8f3754c447048e4d, limb1: 0xa1f5febfa531fb8eda900af5, - limb2: 0x9d186ca8c21f49e + limb2: 0x9d186ca8c21f49e, }, r1a0: u288 { limb0: 0xae55ad9465da2d347c06d679, limb1: 0xef03eabc82c065f5848ac316, - limb2: 0x3048edc721645512 + limb2: 0x3048edc721645512, }, r1a1: u288 { limb0: 0xbf3fb43ad7c3bea794a1bd69, limb1: 0xb370c4cc79bacdb996aa7769, - limb2: 0x152d882002404123 - } + limb2: 0x152d882002404123, + }, }, G2Line { r0a0: u288 { limb0: 0xb8acde096bd6f573c8807c88, limb1: 0xf9370645c8a230645a4558bd, - limb2: 0x11060ebe6c0900e0 + limb2: 0x11060ebe6c0900e0, }, r0a1: u288 { limb0: 0x6f8b7c4c8c4850fe1b091402, limb1: 0xba7f7d879ddcfc28350fb8e4, - limb2: 0x251131fc4797a238 + limb2: 0x251131fc4797a238, }, r1a0: u288 { limb0: 0xc067941904de6452a702cc36, limb1: 0x36010868f854adcaac243b23, - limb2: 0x2be8d5d432d0e622 + limb2: 0x2be8d5d432d0e622, }, r1a1: u288 { limb0: 0x48bff01c3e0bb1049adc54d6, limb1: 0x5f6636dd538087bb8e95c05e, - limb2: 0x1aa24bc4a8d0aca4 - } + limb2: 0x1aa24bc4a8d0aca4, + }, }, G2Line { r0a0: u288 { limb0: 0xfed7cbe3be258eacb3805c43, limb1: 0x6a6b305ac8710cf771130d6a, - limb2: 0x20c5bdfdf73feb71 + limb2: 0x20c5bdfdf73feb71, }, r0a1: u288 { limb0: 0xd8ee10b63f015bcc45e694b3, limb1: 0xde212e60212fd33b5fb07f79, - limb2: 0x10406d0c66676419 + limb2: 0x10406d0c66676419, }, r1a0: u288 { limb0: 0xae6200bbf69b2d8222adc0c9, limb1: 0x5ed8395ab5798779de7855c7, - limb2: 0x1306f0dfb9dd1f33 + limb2: 0x1306f0dfb9dd1f33, }, r1a1: u288 { limb0: 0x7d3e5564e11b0c0d87ce2fcf, limb1: 0xa011abe1dfaff9533b90024b, - limb2: 0x4414840770b8d45 - } + limb2: 0x4414840770b8d45, + }, }, G2Line { r0a0: u288 { limb0: 0x1abbfaf4636b146d437f0f32, limb1: 0x823aeee9a4d8bec2345f04eb, - limb2: 0x474bc80c3969d26 + limb2: 0x474bc80c3969d26, }, r0a1: u288 { limb0: 0x4574559e190f5a9005079834, limb1: 0x1a14b1796aeaf3cac262c90, - limb2: 0x2a206e06250d18c9 + limb2: 0x2a206e06250d18c9, }, r1a0: u288 { limb0: 0x7c011e64290a2723d04fbb47, limb1: 0x9bf025c6164128c502666a3f, - limb2: 0x22056cad12d485a3 + limb2: 0x22056cad12d485a3, }, r1a1: u288 { limb0: 0x2c4a99cfec75332ddeb73d3f, limb1: 0x664ed1b9b659c29a8c5e86db, - limb2: 0x1c996a2f464fa6d5 - } + limb2: 0x1c996a2f464fa6d5, + }, }, G2Line { r0a0: u288 { limb0: 0x68cb5b19d04919eb3904b718, limb1: 0x3c200fed008fce871c299fe0, - limb2: 0xc82b868b865eaf2 + limb2: 0xc82b868b865eaf2, }, r0a1: u288 { limb0: 0x8d319155c9ce9e7023bba44a, limb1: 0xdf6d46a6eafac55cd37588a7, - limb2: 0x230891a91d84fb9 + limb2: 0x230891a91d84fb9, }, r1a0: u288 { limb0: 0x6c47fa46ada891b1ad0d4a2d, limb1: 0x896ef732068203aae4835c7f, - limb2: 0x13305bfc59ed9f88 + limb2: 0x13305bfc59ed9f88, }, r1a1: u288 { limb0: 0xdef6d4b1bb52e3ed41f3149, limb1: 0x4d38ba467238b118bd600aaa, - limb2: 0x23a7c08a0d34b716 - } + limb2: 0x23a7c08a0d34b716, + }, }, G2Line { r0a0: u288 { limb0: 0xe65bdf2f0e46c5d14bb2d437, limb1: 0x75d347475ec4f5e5da58702b, - limb2: 0x1e813045e86534b1 + limb2: 0x1e813045e86534b1, }, r0a1: u288 { limb0: 0x19aa620481b7ed5be5d86a56, limb1: 0xfe7790488a68214c21b7e599, - limb2: 0x60c00e0cb979bbe + limb2: 0x60c00e0cb979bbe, }, r1a0: u288 { limb0: 0x681c25373d992243e7bc4316, limb1: 0xdaa79fd2125a52658e4edbdf, - limb2: 0x8712013710d9b84 + limb2: 0x8712013710d9b84, }, r1a1: u288 { limb0: 0x26dbe63cdb5675671894a27c, limb1: 0xe81e4b46a10e510982b660b3, - limb2: 0x8c1356b21364b2d - } + limb2: 0x8c1356b21364b2d, + }, }, G2Line { r0a0: u288 { limb0: 0x180ea20e04ff0cfea452b5ef, limb1: 0x33a60d4aedd65598601bb804, - limb2: 0xaffd14ad17ead4a + limb2: 0xaffd14ad17ead4a, }, r0a1: u288 { limb0: 0x81a910653e6e700bcea6610e, limb1: 0x6d6da92fa688c271dbf2e929, - limb2: 0x1c6e6b669bcc47a2 + limb2: 0x1c6e6b669bcc47a2, }, r1a0: u288 { limb0: 0x9af3035b52384ba68596606b, limb1: 0x3fa4f17d582ce91fe8ca38fe, - limb2: 0x4fe17bae4b30f16 + limb2: 0x4fe17bae4b30f16, }, r1a1: u288 { limb0: 0x1ab98ebb109073ba1cbc0dbb, limb1: 0xe660bc83caf74b1c8bf3ffb9, - limb2: 0xce501ef0be5371c - } + limb2: 0xce501ef0be5371c, + }, }, G2Line { r0a0: u288 { limb0: 0x9ffe62d6c121725aa3dc36e9, limb1: 0x6737e5cd363c5c11c8bf9ce7, - limb2: 0x17c47bea351ac796 + limb2: 0x17c47bea351ac796, }, r0a1: u288 { limb0: 0xf372cf537d3cbd62464f2996, limb1: 0xc2b9f39affb15c1c565820ca, - limb2: 0x5574310dc643654 + limb2: 0x5574310dc643654, }, r1a0: u288 { limb0: 0xdc8bb75702c703f43630205, limb1: 0x95033f7e1161bb1c84e88163, - limb2: 0x46d85f905c3f6b1 + limb2: 0x46d85f905c3f6b1, }, r1a1: u288 { limb0: 0xa9acb5a9647aa09d829135c8, limb1: 0x4bd37d411bc856d38f320e81, - limb2: 0x7896f127bef56fc - } + limb2: 0x7896f127bef56fc, + }, }, G2Line { r0a0: u288 { limb0: 0xb4ff705d518fd8d507edeaad, limb1: 0xb8d6290591e20c70907b4f50, - limb2: 0x13cf6850ed83a8dd + limb2: 0x13cf6850ed83a8dd, }, r0a1: u288 { limb0: 0x9e8a05fa2a451c111ad1c113, limb1: 0x8db5108125c5cbd78b9da01, - limb2: 0x27f247c7aa579dc6 + limb2: 0x27f247c7aa579dc6, }, r1a0: u288 { limb0: 0x9178a3dddec5c7aae0e06dca, limb1: 0x58c7e0146524cbde6f68e28f, - limb2: 0x88e852062e630dd + limb2: 0x88e852062e630dd, }, r1a1: u288 { limb0: 0x69f9b02ecec442e37998de01, limb1: 0x5cec46a3b23ea712f31ade1c, - limb2: 0x9fb06804e3f2902 - } + limb2: 0x9fb06804e3f2902, + }, }, G2Line { r0a0: u288 { limb0: 0xbf97e7024cb4c784db5bb1d2, limb1: 0x885d190dc80200b104734467, - limb2: 0x2f8c96b95a4cc609 + limb2: 0x2f8c96b95a4cc609, }, r0a1: u288 { limb0: 0xdbefd57376bacff12dd5bf8d, limb1: 0x725a4a257518c7f89ddc7147, - limb2: 0xc764f79ea6d7683 + limb2: 0xc764f79ea6d7683, }, r1a0: u288 { limb0: 0xfa3fe08305546a6b3bf2e9cf, limb1: 0x710f3caf9d79a6696b4d972, - limb2: 0x12139b7a210ceba1 + limb2: 0x12139b7a210ceba1, }, r1a1: u288 { limb0: 0x508cd98936add0253c52a372, limb1: 0x802ab928a43250c71b30e58c, - limb2: 0x5fc4912d57a3f0c - } + limb2: 0x5fc4912d57a3f0c, + }, }, G2Line { r0a0: u288 { limb0: 0xfec54ca77219e3f19676ab7b, limb1: 0x35c7f555865188a018a4da62, - limb2: 0x21186a3acc624741 + limb2: 0x21186a3acc624741, }, r0a1: u288 { limb0: 0x21ddf02f404de3a01207e58a, limb1: 0x23771e91b431f2af1f1ac780, - limb2: 0x8e3f5e341b6527a + limb2: 0x8e3f5e341b6527a, }, r1a0: u288 { limb0: 0xe4a4409417045e8a52de5c81, limb1: 0x7285bf1777e48aacf83eec1, - limb2: 0x20fb9b67bbbd29e1 + limb2: 0x20fb9b67bbbd29e1, }, r1a1: u288 { limb0: 0xa48af9d53abedb33c38211a1, limb1: 0xcc79b186b059588232745396, - limb2: 0x117cf4e8ab0d8c01 - } + limb2: 0x117cf4e8ab0d8c01, + }, }, G2Line { r0a0: u288 { limb0: 0xbf62a89fb0b5572d634e036e, limb1: 0x62a4d7777fbdb30e117e4c96, - limb2: 0x1433cd8e6693800d + limb2: 0x1433cd8e6693800d, }, r0a1: u288 { limb0: 0xff6e40d2e595bd4b38b984b5, limb1: 0x10a254dcf6a53cd6a1a536a, - limb2: 0x205a86246aa4e70a + limb2: 0x205a86246aa4e70a, }, r1a0: u288 { limb0: 0x6ad13bec3f64b16831ecf3fc, limb1: 0x77e9fac67ceed69e2884e6e2, - limb2: 0xacc767288a196f5 + limb2: 0xacc767288a196f5, }, r1a1: u288 { limb0: 0x212a64c8db6818125f5c9d93, limb1: 0x8572ee34b58bae6edf226f4e, - limb2: 0x2948ef466aa9fd42 - } + limb2: 0x2948ef466aa9fd42, + }, }, G2Line { r0a0: u288 { limb0: 0x866d9dd94cf5c01da1af5b70, limb1: 0x89ec47fb1c069b4a36fa36fd, - limb2: 0x2a0587e51228856d + limb2: 0x2a0587e51228856d, }, r0a1: u288 { limb0: 0x771ffaa3db79c0011aee776f, limb1: 0x40625b6f2ee697202dfd503a, - limb2: 0xa81c431cf771fa8 + limb2: 0xa81c431cf771fa8, }, r1a0: u288 { limb0: 0x8711b2a55df6bf89af526172, limb1: 0x1eb553b6ff69efe960c7c10b, - limb2: 0x1f669ce048bde363 + limb2: 0x1f669ce048bde363, }, r1a1: u288 { limb0: 0xf800397513b7b78bd8083e57, limb1: 0xc4528a9a59670bbb3033b697, - limb2: 0x262a51ab0a32bc7 - } + limb2: 0x262a51ab0a32bc7, + }, }, G2Line { r0a0: u288 { limb0: 0x84c92b9b7085152c191113c9, limb1: 0xea86e4190741f5a1d63fe1a2, - limb2: 0x1631d1377040b84d + limb2: 0x1631d1377040b84d, }, r0a1: u288 { limb0: 0xfc0579707daf96862bc47877, limb1: 0xf0a566778792313273feb448, - limb2: 0x5e725ab3a8f04c2 + limb2: 0x5e725ab3a8f04c2, }, r1a0: u288 { limb0: 0x746e1d6337bd29553a1a49d2, limb1: 0xf5e43538015ea9d289aae3bd, - limb2: 0x2b858fe696979a0d + limb2: 0x2b858fe696979a0d, }, r1a1: u288 { limb0: 0x5d0468a94a03c5e8fb9b7442, limb1: 0x4bcf854c79dfcd8f93f7b5a2, - limb2: 0x235b6ce0b723a15b - } + limb2: 0x235b6ce0b723a15b, + }, }, G2Line { r0a0: u288 { limb0: 0x47d3184d435caf4d8ac68218, limb1: 0x5fbeeeccc4f0d2b4b35ff5c1, - limb2: 0xc44d4495a9252fb + limb2: 0xc44d4495a9252fb, }, r0a1: u288 { limb0: 0x1920a8fe49e6829c82f62ce8, limb1: 0xacd523669ac89fffaaebdae1, - limb2: 0x235b4c0c2409068e + limb2: 0x235b4c0c2409068e, }, r1a0: u288 { limb0: 0x6126477661fb01a2eda1c7e6, limb1: 0x393b5af3da3463a0c92ffad, - limb2: 0x302d5c3952fea360 + limb2: 0x302d5c3952fea360, }, r1a1: u288 { limb0: 0xca17079a6b293fc5c658989b, limb1: 0xbb41d630afba0696af3a3407, - limb2: 0x1f7d9b481972987 - } + limb2: 0x1f7d9b481972987, + }, }, G2Line { r0a0: u288 { limb0: 0x2226ca676134b1f3a0926460, limb1: 0x826cd143e34fd3745d995e86, - limb2: 0x1d54d2aa3c5f7ac7 + limb2: 0x1d54d2aa3c5f7ac7, }, r0a1: u288 { limb0: 0x3515a092edde84420d650907, limb1: 0xc0e550c22584c2319b0a82c, - limb2: 0x1dae1ecd1ca07560 + limb2: 0x1dae1ecd1ca07560, }, r1a0: u288 { limb0: 0x7c23169a2d1ed918ab673e29, limb1: 0x5484a8a7a79ea6c754af3cad, - limb2: 0x2545e6dc3f9ce4c9 + limb2: 0x2545e6dc3f9ce4c9, }, r1a1: u288 { limb0: 0xd125d5ce04b20018ad6f85d9, limb1: 0x1525475fb4f94e15acb82f7, - limb2: 0x1f82f7bdc16f6382 - } + limb2: 0x1f82f7bdc16f6382, + }, }, G2Line { r0a0: u288 { limb0: 0x51de6ee8db519dfb0aa693eb, limb1: 0x64c7ee0f928747a2f5f0f936, - limb2: 0x1202023a3955cdcc + limb2: 0x1202023a3955cdcc, }, r0a1: u288 { limb0: 0xb6ba4af6f923a0d846ce153c, limb1: 0x60fe2184eafa93f4eb996772, - limb2: 0x16d57296a4ee3e6c + limb2: 0x16d57296a4ee3e6c, }, r1a0: u288 { limb0: 0xa60c48290b411ba3f980fe24, limb1: 0xbe6ad7c874855edaa1b65a97, - limb2: 0x46ed521f5594ec + limb2: 0x46ed521f5594ec, }, r1a1: u288 { limb0: 0x45849bc30c4d8430b3c651ff, limb1: 0x2563e767d417bd382197c73, - limb2: 0x16709b70a1667419 - } + limb2: 0x16709b70a1667419, + }, }, G2Line { r0a0: u288 { limb0: 0x2bdced180a9910450908f1a6, limb1: 0x1f4ef7e2d77e9764f537f621, - limb2: 0x209b61f43f3290b + limb2: 0x209b61f43f3290b, }, r0a1: u288 { limb0: 0x3d1fab7bd5a20ee703a3a1ab, limb1: 0x6dd08c68afb95f625c81c7df, - limb2: 0x2fceb99f81d59152 + limb2: 0x2fceb99f81d59152, }, r1a0: u288 { limb0: 0x61998f00abc817c74677e69c, limb1: 0xd15359c21be66df2e9f763a1, - limb2: 0x20acc9fcd918b204 + limb2: 0x20acc9fcd918b204, }, r1a1: u288 { limb0: 0x58c54c374dc0b19648206559, limb1: 0xaae9d1fa0b4859284de90438, - limb2: 0x18b9cb802e16400 - } + limb2: 0x18b9cb802e16400, + }, }, G2Line { r0a0: u288 { limb0: 0xa8af1d6e69891fd6151f69e5, limb1: 0xc9a0fc4d628c3a9cfb33e957, - limb2: 0xc205db4af1bd115 + limb2: 0xc205db4af1bd115, }, r0a1: u288 { limb0: 0xe04de2e204ed323699cbf1d0, limb1: 0xcdad0d6d615cf2efe6486b8f, - limb2: 0x24feaffdc4c0f6fb + limb2: 0x24feaffdc4c0f6fb, }, r1a0: u288 { limb0: 0x9a74590fcd5dd32ce4084080, limb1: 0x26eaea5397bec2eddba3b007, - limb2: 0x2e171e90cd48c68b + limb2: 0x2e171e90cd48c68b, }, r1a1: u288 { limb0: 0xcab514b4d0f8c4de087167f, limb1: 0x4089650224f0df0b55cdbfa5, - limb2: 0x20e3e700df023af1 - } + limb2: 0x20e3e700df023af1, + }, }, G2Line { r0a0: u288 { limb0: 0xa952db0b09a1e0a8afa85959, limb1: 0xd31513490bd63f93546b8b44, - limb2: 0x2b62974e51c3e808 + limb2: 0x2b62974e51c3e808, }, r0a1: u288 { limb0: 0x3082616da438e53047cf7b15, limb1: 0xad132a494322c88251aa940b, - limb2: 0x1638631f0b09eb79 + limb2: 0x1638631f0b09eb79, }, r1a0: u288 { limb0: 0xe2e5db1f9e9b7d34a466ca2f, limb1: 0x6edbd12f1ef34ed5334cdd54, - limb2: 0xc499b73f6f41690 + limb2: 0xc499b73f6f41690, }, r1a1: u288 { limb0: 0xaacf3111e2b20853c931d1c1, limb1: 0xb35ae0c43b79be6e06117404, - limb2: 0x2a23dec3816a3c7d - } + limb2: 0x2a23dec3816a3c7d, + }, }, G2Line { r0a0: u288 { limb0: 0xb6ed55030e8729397efcc145, limb1: 0xaa34addaea010361c02e0306, - limb2: 0x2742bd085dc8c143 + limb2: 0x2742bd085dc8c143, }, r0a1: u288 { limb0: 0x898d7670f9872d2107b383bb, limb1: 0xc214e84a71a23f180d9eb8d1, - limb2: 0x168f2063fe0912a9 + limb2: 0x168f2063fe0912a9, }, r1a0: u288 { limb0: 0x578ba288320514edb50b6e8f, limb1: 0x2d290fa04eb58f49066fbc74, - limb2: 0x2aa6192fd793ef3f + limb2: 0x2aa6192fd793ef3f, }, r1a1: u288 { limb0: 0xf67d935533f75f98ccf08227, limb1: 0xeea0611976e71b0aeb4b1b6a, - limb2: 0xb73b7adb8c016af - } + limb2: 0xb73b7adb8c016af, + }, }, G2Line { r0a0: u288 { limb0: 0xb3f4d09089d3ed8d435eb8c0, limb1: 0x86f51f3c75097e64c5ab5f62, - limb2: 0x1c6317402ee2fe95 + limb2: 0x1c6317402ee2fe95, }, r0a1: u288 { limb0: 0xa00c59cd149cab75ac1e1263, limb1: 0xdf8f325f8fd713ebe123f6e0, - limb2: 0x20135070c6c2f86b + limb2: 0x20135070c6c2f86b, }, r1a0: u288 { limb0: 0x692e693651922c9ed5b55f8b, limb1: 0xdfe74e43af132550435a9d1e, - limb2: 0x2b72066a933709f1 + limb2: 0x2b72066a933709f1, }, r1a1: u288 { limb0: 0x5d49b84a4aa6058a6d6e703, limb1: 0xb1f91b7ebceab14216152085, - limb2: 0x1967682ee3c18a7a - } + limb2: 0x1967682ee3c18a7a, + }, }, G2Line { r0a0: u288 { limb0: 0x33629d96c671a40a62c2da4, limb1: 0xb414918620ae4edc267c0bc9, - limb2: 0x1d3961343ac4df2 + limb2: 0x1d3961343ac4df2, }, r0a1: u288 { limb0: 0x254d73fe94cdde8ed9890b6b, limb1: 0xb962da0dcb410c53789cc70e, - limb2: 0x16e205ec74090889 + limb2: 0x16e205ec74090889, }, r1a0: u288 { limb0: 0x578ac38bd46442e3921b93f, limb1: 0xca84b0403bce539c78c6e5c3, - limb2: 0x204ff9c462bb7f72 + limb2: 0x204ff9c462bb7f72, }, r1a1: u288 { limb0: 0x87c93d98fcfc7555f15f52ad, limb1: 0xe3263a16c0c8a5a7efe968ff, - limb2: 0xf07070bfdb0f99c - } + limb2: 0xf07070bfdb0f99c, + }, }, G2Line { r0a0: u288 { limb0: 0x906d9cfd92ee9a42ed2259e4, limb1: 0xfa9a8f287d966d31195be1aa, - limb2: 0x1d8e310fc8f947d8 + limb2: 0x1d8e310fc8f947d8, }, r0a1: u288 { limb0: 0x56b93c74493683d4c708212, limb1: 0xb1e5c2fd8c2141c61b48f7e, - limb2: 0x54d4690b93bed74 + limb2: 0x54d4690b93bed74, }, r1a0: u288 { limb0: 0xf44f49b074bdf24754dfad0d, limb1: 0x67a90c021637ee954c2a379e, - limb2: 0x1b9888615ee2913e + limb2: 0x1b9888615ee2913e, }, r1a1: u288 { limb0: 0xaab23130c5df9453f58c1134, limb1: 0x33731a3fa835e82c50ce2efd, - limb2: 0xe51950c67c429a - } + limb2: 0xe51950c67c429a, + }, }, G2Line { r0a0: u288 { limb0: 0x278c9c013ae096a555b3ec0f, limb1: 0x610d15043cff6872498a84b8, - limb2: 0x2be6b3691c3b1cdd + limb2: 0x2be6b3691c3b1cdd, }, r0a1: u288 { limb0: 0xab1801f4fb51698ffcf4a785, limb1: 0x2c5b0c65e18486f1db2e7b16, - limb2: 0xee1c0a5598d8ee5 + limb2: 0xee1c0a5598d8ee5, }, r1a0: u288 { limb0: 0xdccb4b414e4b51403b40c360, limb1: 0x950f6c1774b0a9274543e3f9, - limb2: 0x3035735696163c43 + limb2: 0x3035735696163c43, }, r1a1: u288 { limb0: 0xb13ffd0306de54e54da63f29, limb1: 0xb0d7c02dd2152dfd24e837b8, - limb2: 0x61f242c5aef937a - } + limb2: 0x61f242c5aef937a, + }, }, G2Line { r0a0: u288 { limb0: 0xbff090424ff64b168abd7ed8, limb1: 0xfbf2b7ff152e680def29cf67, - limb2: 0x11631c347b8d5722 + limb2: 0x11631c347b8d5722, }, r0a1: u288 { limb0: 0xa4ffe19971619f52dec586fb, limb1: 0xfadff2ba47b489d5054debee, - limb2: 0x21a126d22cb30a3c + limb2: 0x21a126d22cb30a3c, }, r1a0: u288 { limb0: 0x75ac1ea03e30d1ee2a7ad65, limb1: 0x37410414baa2eb7017bb5855, - limb2: 0x1a51ee35991003f5 + limb2: 0x1a51ee35991003f5, }, r1a1: u288 { limb0: 0x455c7935775dc77497e7c89, limb1: 0x2d6c275c5c4ba0a575a19c13, - limb2: 0xc0dd9d3ea7a9ade - } + limb2: 0xc0dd9d3ea7a9ade, + }, }, G2Line { r0a0: u288 { limb0: 0x4af478bc839dde72d2e8cc92, limb1: 0x39a0acadeb78af4fb5dbe383, - limb2: 0x1b446cbeaea59d46 + limb2: 0x1b446cbeaea59d46, }, r0a1: u288 { limb0: 0x48d371224068708ad6cfc116, limb1: 0xeb6f5c875523671fe6bb1f80, - limb2: 0xdba3978f44c9853 + limb2: 0xdba3978f44c9853, }, r1a0: u288 { limb0: 0x4963a814014539613a3e815e, limb1: 0x6245603c8b693d1c28c16e49, - limb2: 0xb2ea516ccda6f09 + limb2: 0xb2ea516ccda6f09, }, r1a1: u288 { limb0: 0xf5ed7ec964654532426b4888, limb1: 0x1a7c82c2b8af5cecbcdca52d, - limb2: 0x27f711764b54cee8 - } + limb2: 0x27f711764b54cee8, + }, }, G2Line { r0a0: u288 { limb0: 0xc53cccfdb561e69a52782bb, limb1: 0xeeec6da4d5ebc08df5815014, - limb2: 0x1d29e3cafeebc352 + limb2: 0x1d29e3cafeebc352, }, r0a1: u288 { limb0: 0xc6aa872125f3b220f96a9cd1, limb1: 0xc0e77f6ac66bfd97664139e0, - limb2: 0x3741acbda901459 + limb2: 0x3741acbda901459, }, r1a0: u288 { limb0: 0x52f1a5f6845306c0defbedd9, limb1: 0x80a6b1b02f80301d3a0dc080, - limb2: 0x181a86be5b8f64ec + limb2: 0x181a86be5b8f64ec, }, r1a1: u288 { limb0: 0xa249185699b571387abcc094, limb1: 0x1c4b4890cc3addd178e2de3d, - limb2: 0x27ac0852aee62087 - } + limb2: 0x27ac0852aee62087, + }, }, G2Line { r0a0: u288 { limb0: 0x35c2f42c8ac8c3e4454917fd, limb1: 0x3bf48982e71153a198e54963, - limb2: 0x2a9f396d0d827ead + limb2: 0x2a9f396d0d827ead, }, r0a1: u288 { limb0: 0xbea85053b686a4fb31267e68, limb1: 0xbec1d438473d13cefa4b0bd9, - limb2: 0x25c2cbb7e7615d3a + limb2: 0x25c2cbb7e7615d3a, }, r1a0: u288 { limb0: 0x4003c5a77762d598d26651ce, limb1: 0x2efe1dd975f92a292079355d, - limb2: 0x17d7d17be5145528 + limb2: 0x17d7d17be5145528, }, r1a1: u288 { limb0: 0x7cfd8f75da47da500d6d8c7e, limb1: 0xf63a158f1246fa8382aef748, - limb2: 0xce3a2406f7606cf - } + limb2: 0xce3a2406f7606cf, + }, }, G2Line { r0a0: u288 { limb0: 0x71c82502374ad055eee34a70, limb1: 0xbf607dbe6e74c9f06bf0f2f2, - limb2: 0x17ad31e67a125bfa + limb2: 0x17ad31e67a125bfa, }, r0a1: u288 { limb0: 0x75e0f096ad837bb65e18f5fe, limb1: 0xf57acb24db4e597ad6dfd0c5, - limb2: 0x2baed364893718d3 + limb2: 0x2baed364893718d3, }, r1a0: u288 { limb0: 0x650c59126052997ddebdbf06, limb1: 0xe5694f3d235ba12f4e80e1da, - limb2: 0xc3d775c73973d78 + limb2: 0xc3d775c73973d78, }, r1a1: u288 { limb0: 0x86ecc04bb1dda6baba72f110, limb1: 0x26a56fe363233bcba7a6bbc7, - limb2: 0xcccdf39db0efceb - } + limb2: 0xcccdf39db0efceb, + }, }, G2Line { r0a0: u288 { limb0: 0xd14af8581af5048d860b42d8, limb1: 0x5983b9a1ab460420aac0e5fa, - limb2: 0x2cac8350464e5a46 + limb2: 0x2cac8350464e5a46, }, r0a1: u288 { limb0: 0x9852dbbe33a5c81ef2ef28df, limb1: 0xe27bbdc0499c71d8751fa8fd, - limb2: 0x2596598d10b8e209 + limb2: 0x2596598d10b8e209, }, r1a0: u288 { limb0: 0x5d640a56b866092cd2ddda67, limb1: 0xbc7c9df1a76876f2af28a37d, - limb2: 0x198c4d4be5dfe657 + limb2: 0x198c4d4be5dfe657, }, r1a1: u288 { limb0: 0xf75e1f774ca4206fa9fcda52, limb1: 0xc094c286837192006d77bf19, - limb2: 0xcf2a11e9eea72d4 - } + limb2: 0xcf2a11e9eea72d4, + }, }, G2Line { r0a0: u288 { limb0: 0x3f7d6ff3e3048f3d3b217cb3, limb1: 0x17d29aee9dc30e589c3409ce, - limb2: 0x13594ce650eafdb7 + limb2: 0x13594ce650eafdb7, }, r0a1: u288 { limb0: 0x56007f7714afee54d813795e, limb1: 0xfbeadbe9e4d223705b6f52b9, - limb2: 0x16c1493ccf93baf8 + limb2: 0x16c1493ccf93baf8, }, r1a0: u288 { limb0: 0xd61ca8fe2027f969c984a06c, limb1: 0xfd681777ceaa7b105f32c686, - limb2: 0x89c32a2360185c2 + limb2: 0x89c32a2360185c2, }, r1a1: u288 { limb0: 0xc0be27a2efabaa040fc34bde, limb1: 0x4025016352e1fb49753dc175, - limb2: 0xae0f4b4e22bbbdb - } + limb2: 0xae0f4b4e22bbbdb, + }, }, G2Line { r0a0: u288 { limb0: 0xb714a66fd690196097466167, limb1: 0x470b3ea1df7db4f80c0f7c28, - limb2: 0xa2b04b84a338d79 + limb2: 0xa2b04b84a338d79, }, r0a1: u288 { limb0: 0x99e371187196a0e5e1cf157d, limb1: 0x1c37ecc4a15489ba4d1779c, - limb2: 0x2241007f12297498 + limb2: 0x2241007f12297498, }, r1a0: u288 { limb0: 0xc2d4196793dc2c1a6195e84c, limb1: 0x84aca2b3cc656ac3aaca479c, - limb2: 0x25be01f34c7b0108 + limb2: 0x25be01f34c7b0108, }, r1a1: u288 { limb0: 0x6284320ce1e28774e12ac179, limb1: 0xe63f8969b7d4831c0df44b75, - limb2: 0x11959f32e56582cd - } + limb2: 0x11959f32e56582cd, + }, }, G2Line { r0a0: u288 { limb0: 0x12b126126d6a51f864d86b21, limb1: 0x1d0bdb4abac53547bcee2b4d, - limb2: 0x2947d69adc1260a9 + limb2: 0x2947d69adc1260a9, }, r0a1: u288 { limb0: 0xe7865d832dc76c6f81e52540, limb1: 0xa83bffdb570dac4070b74623, - limb2: 0x2f7f591b620ebbf0 + limb2: 0x2f7f591b620ebbf0, }, r1a0: u288 { limb0: 0x8c19ba55fbe3b83ab9a52ce4, limb1: 0xe422487d5d7a55084660e279, - limb2: 0x451963810a77462 + limb2: 0x451963810a77462, }, r1a1: u288 { limb0: 0x238470f53902b433c24b5095, limb1: 0x9f92f5a1a4c3dc5f5448ace1, - limb2: 0x25b02dd2b4f13ea8 - } + limb2: 0x25b02dd2b4f13ea8, + }, }, G2Line { r0a0: u288 { limb0: 0xf8c9c8cec6607f52c0c9a1b4, limb1: 0xe4bf0bcc8b18ef930b8f8498, - limb2: 0x2afb9cf3aeeb2bbf + limb2: 0x2afb9cf3aeeb2bbf, }, r0a1: u288 { limb0: 0x2005f7afc42e1e0c95cb60d1, limb1: 0xc5767bdb11d976e34bda43e2, - limb2: 0x29602013060d4ff4 + limb2: 0x29602013060d4ff4, }, r1a0: u288 { limb0: 0x11570e8a2564f4049b9db0ec, limb1: 0x49eb826e6b83eff0404680d5, - limb2: 0xcecd3d8af842dcc + limb2: 0xcecd3d8af842dcc, }, r1a1: u288 { limb0: 0x4b7116478737ccae251f21d0, limb1: 0x801cc3a4c2973adba6e4ddad, - limb2: 0x2b2f6090ab698026 - } + limb2: 0x2b2f6090ab698026, + }, }, G2Line { r0a0: u288 { limb0: 0x884df7b9c6266e14cc00d544, limb1: 0xb39ddb5ff70292b139767896, - limb2: 0x2dec0cf17a7a9728 + limb2: 0x2dec0cf17a7a9728, }, r0a1: u288 { limb0: 0xbf786f4a5a217fd2fb81a73b, limb1: 0xcfb52addb110bfc90b6aa315, - limb2: 0x20acfe4cf1ffb3f4 + limb2: 0x20acfe4cf1ffb3f4, }, r1a0: u288 { limb0: 0x58fdca71f63cd7f2da6998b9, limb1: 0x979bbe60391be8c8c020eb17, - limb2: 0x1d271bcc5d463d8b + limb2: 0x1d271bcc5d463d8b, }, r1a1: u288 { limb0: 0xb4604fea4e6d2fa87b6546ca, limb1: 0x14ec3cc166da4fa93e7855e, - limb2: 0x19eff643e695961 - } + limb2: 0x19eff643e695961, + }, }, G2Line { r0a0: u288 { limb0: 0xe3fff14dc344f49a147400af, limb1: 0x552fa30aaf36a28b944068dd, - limb2: 0x22f12a7ad2b957a7 + limb2: 0x22f12a7ad2b957a7, }, r0a1: u288 { limb0: 0xff8236c0d8500425ffffe979, limb1: 0xd995e8b2955425eef9effefa, - limb2: 0x1008627aeb38039f + limb2: 0x1008627aeb38039f, }, r1a0: u288 { limb0: 0x761abe6a1a610e88ddb82821, limb1: 0x7f484e89e288b114a86e3104, - limb2: 0x571350412cfb043 + limb2: 0x571350412cfb043, }, r1a1: u288 { limb0: 0xdbe60b9ed4870dafe4f6b562, limb1: 0xe27c012c5483844720417b27, - limb2: 0x287fcf364036279d - } + limb2: 0x287fcf364036279d, + }, }, G2Line { r0a0: u288 { limb0: 0x1edeb9e08e49a4cc6d595a6a, limb1: 0x4d749f26fcf5c2d70c0a0826, - limb2: 0x537349d42ceec1f + limb2: 0x537349d42ceec1f, }, r0a1: u288 { limb0: 0x71e75fa5345f7af0598be8fb, limb1: 0x94e35008e8882d98556d4f9, - limb2: 0x1e5f86ec7f29e8c0 + limb2: 0x1e5f86ec7f29e8c0, }, r1a0: u288 { limb0: 0xa59a00e6ef1857c7f37bba17, limb1: 0xaa80466f9ff308394641d17a, - limb2: 0x22e8b793fed10566 + limb2: 0x22e8b793fed10566, }, r1a1: u288 { limb0: 0x85cc25707c980abee1603524, limb1: 0xf0a1429f6a9ce800109dd3c6, - limb2: 0x439246edfedc6a0 - } + limb2: 0x439246edfedc6a0, + }, }, G2Line { r0a0: u288 { limb0: 0xc3464ca03c070344bc851998, limb1: 0x628900ddf59e8fcab9e544cb, - limb2: 0xc46d4de05410eea + limb2: 0xc46d4de05410eea, }, r0a1: u288 { limb0: 0xc3fcebdd079623bfdfe5b76, limb1: 0x7293b945aea37cb296e5fe79, - limb2: 0x1dfc0017bebb3827 + limb2: 0x1dfc0017bebb3827, }, r1a0: u288 { limb0: 0x8330726aebe0e9005929fbf2, limb1: 0x4aaecb83bd354c28abc709fe, - limb2: 0x1db100a3ae9d2796 + limb2: 0x1db100a3ae9d2796, }, r1a1: u288 { limb0: 0xb769d01c317efe1645b5977, limb1: 0xc531f97ebdd47779587f7f3d, - limb2: 0xa69ded3c01e9477 - } + limb2: 0xa69ded3c01e9477, + }, }, G2Line { r0a0: u288 { limb0: 0x58d096250a5f996582135298, limb1: 0x8b3a621d056b54ccbe85d4a4, - limb2: 0x26de0b6ea20b2417 + limb2: 0x26de0b6ea20b2417, }, r0a1: u288 { limb0: 0xc0991b57a9e1506cab1180d6, limb1: 0xb77b1f14ad48be33a9a3d3ea, - limb2: 0xddedb919473952 + limb2: 0xddedb919473952, }, r1a0: u288 { limb0: 0x50b24127a621793d80986ea8, limb1: 0xd87c2df07cddcdb160e65f00, - limb2: 0x1a376e99bcc12456 + limb2: 0x1a376e99bcc12456, }, r1a1: u288 { limb0: 0x94e5f9f1ffeb27d8ced55bc4, limb1: 0xe0c8f2e76317d89edbac2b16, - limb2: 0xd5c6a5a81f58007 - } + limb2: 0xd5c6a5a81f58007, + }, }, G2Line { r0a0: u288 { limb0: 0xd9e189bd465323e7ccc5c8d8, limb1: 0xf3854408ae8833a96c0a44a5, - limb2: 0x2aa4976b776fe008 + limb2: 0x2aa4976b776fe008, }, r0a1: u288 { limb0: 0x6e0592dc622bfba3f3604600, limb1: 0xfaf5659c5bbbef47b9ac96b3, - limb2: 0x1f0dc42f72ebc953 + limb2: 0x1f0dc42f72ebc953, }, r1a0: u288 { limb0: 0xbeed1c4160d214aab80de397, limb1: 0xc2db7a1fd04bf557fe496c1a, - limb2: 0x2d95453d59d9f447 + limb2: 0x2d95453d59d9f447, }, r1a1: u288 { limb0: 0x8034644d710c6dbba13e467b, limb1: 0xf87cf4201f6abf6533e972e, - limb2: 0x2e24defab8e33de8 - } + limb2: 0x2e24defab8e33de8, + }, }, G2Line { r0a0: u288 { limb0: 0x1694446b59660ec1fed6fb9d, limb1: 0xc0a4cbb8310e198ce8d997e, - limb2: 0x2da8657ea7730f4 + limb2: 0x2da8657ea7730f4, }, r0a1: u288 { limb0: 0xdd70e38f79be7c342e31044d, limb1: 0x5a8d74ec827b1414b7387287, - limb2: 0x61248d0ea9090d5 + limb2: 0x61248d0ea9090d5, }, r1a0: u288 { limb0: 0x725a8201bde6223b676c1523, limb1: 0x645238ecfc00a99aeeb4eeb8, - limb2: 0x1d1fddea44ab94d0 + limb2: 0x1d1fddea44ab94d0, }, r1a1: u288 { limb0: 0x83839eafce9360837b497639, limb1: 0xcbec9216940c09f042d3153c, - limb2: 0x2180c12b34129e84 - } + limb2: 0x2180c12b34129e84, + }, }, G2Line { r0a0: u288 { limb0: 0x5bac5422643e869c95e8758, limb1: 0x75a87d464e85d848733732c6, - limb2: 0x17dd4782ba72be36 + limb2: 0x17dd4782ba72be36, }, r0a1: u288 { limb0: 0xaee3bfbad5100e0a925100a9, limb1: 0x71d534c3c0a75b458dfcffeb, - limb2: 0x6ce2915078a5228 + limb2: 0x6ce2915078a5228, }, r1a0: u288 { limb0: 0x551047c5156391326b3100c8, limb1: 0x6342cb22397195c24b239d2b, - limb2: 0x21c7584f2234b2f4 + limb2: 0x21c7584f2234b2f4, }, r1a1: u288 { limb0: 0xddf561e69f4a85c68a1fbb5f, limb1: 0xe60381a1141b501717848e3c, - limb2: 0x18963467c96efe0e - } + limb2: 0x18963467c96efe0e, + }, }, G2Line { r0a0: u288 { limb0: 0x43c0e893813e89326e6d7292, limb1: 0xa039460fc1ffe8b46a153b1, - limb2: 0x27d053716ecb9cd9 + limb2: 0x27d053716ecb9cd9, }, r0a1: u288 { limb0: 0xf50b97a916e074212516e5b6, limb1: 0xd022b79f1419b1f40ecdf478, - limb2: 0x1d1206da817808b7 + limb2: 0x1d1206da817808b7, }, r1a0: u288 { limb0: 0x25a6cedcf5d6ddb32b966856, limb1: 0x2a4e55aedf867fa395c11b66, - limb2: 0x185e2c0ebb4ad386 + limb2: 0x185e2c0ebb4ad386, }, r1a1: u288 { limb0: 0x19a943e29773716d15946034, limb1: 0xba20fb1af88682e70de60783, - limb2: 0x17d681927b62d229 - } + limb2: 0x17d681927b62d229, + }, }, G2Line { r0a0: u288 { limb0: 0xf7fa1e079660015140590591, limb1: 0xc30ed30ec9915ab4fc15f7ff, - limb2: 0x243a6006b965f61a + limb2: 0x243a6006b965f61a, }, r0a1: u288 { limb0: 0xf8da46207ede41bd56e50a43, limb1: 0xe04b09702796cd90c2425928, - limb2: 0x2e7ae22af53376f2 + limb2: 0x2e7ae22af53376f2, }, r1a0: u288 { limb0: 0x5af2801c7d933321f9435b9b, limb1: 0xd2318d1258ba0c6c1daee6d2, - limb2: 0x23afd2f1a99800e4 + limb2: 0x23afd2f1a99800e4, }, r1a1: u288 { limb0: 0xe39965536174be4d41378ab2, limb1: 0x86d346ec3ef6a2dfb8319fce, - limb2: 0x1da387ce6ce0d298 - } + limb2: 0x1da387ce6ce0d298, + }, }, G2Line { r0a0: u288 { limb0: 0xe44b9574eb888dee9f4e20dc, limb1: 0xf31eb1efa49ca68cc34081f, - limb2: 0xfad1981220113be + limb2: 0xfad1981220113be, }, r0a1: u288 { limb0: 0x9ab7843efd617ddf119164fe, limb1: 0x76cafdac5a293b073ed57ad, - limb2: 0xd0e754b42bb068a + limb2: 0xd0e754b42bb068a, }, r1a0: u288 { limb0: 0xe334e2852f757ecc004f2f1e, limb1: 0x402aa243f80d326c17d11b15, - limb2: 0x1f6c545d5d39392c + limb2: 0x1f6c545d5d39392c, }, r1a1: u288 { limb0: 0x5749b413972936886b183b9f, limb1: 0x7d2a1beec672867c931a8293, - limb2: 0x1ccda8ec93a0273b - } + limb2: 0x1ccda8ec93a0273b, + }, }, G2Line { r0a0: u288 { limb0: 0x9f47ddea4c0b8b40dc986ddc, limb1: 0xa0be8511b87227fadcd76ee8, - limb2: 0xfcdf0494a2bc732 + limb2: 0xfcdf0494a2bc732, }, r0a1: u288 { limb0: 0xdc00663637fde6d5b906e716, limb1: 0x9b2a202f83175ae5c305a611, - limb2: 0x5d06f2336099060 + limb2: 0x5d06f2336099060, }, r1a0: u288 { limb0: 0x1a585c16370b2e72ce762004, limb1: 0x456d73db558a873ad7cff6b2, - limb2: 0x1fa965f8f98ca6f5 + limb2: 0x1fa965f8f98ca6f5, }, r1a1: u288 { limb0: 0x2d2a8f6911befce21db0812b, limb1: 0x8c0ea802fda5c7080ea50395, - limb2: 0x7c5df2dee8313c3 - } + limb2: 0x7c5df2dee8313c3, + }, }, G2Line { r0a0: u288 { limb0: 0x982a9081f5f8fd9414004f29, limb1: 0x48745d3195d133f3f7eb9cf8, - limb2: 0x23d50a6b096134a0 + limb2: 0x23d50a6b096134a0, }, r0a1: u288 { limb0: 0x8dd690a16a679f3d3e41fcb1, limb1: 0x2bf5c469d6877f908feb3a87, - limb2: 0x2e773e73fb695075 + limb2: 0x2e773e73fb695075, }, r1a0: u288 { limb0: 0xf2ed81b71eeab0cdfc710ae9, limb1: 0x57db9a4270f81dc9bfb64860, - limb2: 0x334d7b08732b83e + limb2: 0x334d7b08732b83e, }, r1a1: u288 { limb0: 0xa8882ec080970eca432a600b, limb1: 0x8d6928f84217558b4b8126f9, - limb2: 0x1b67ba76495fa971 - } + limb2: 0x1b67ba76495fa971, + }, }, G2Line { r0a0: u288 { limb0: 0x1c3dd7d156d67be9f4aeaa8, limb1: 0xbd90237976f8394378306671, - limb2: 0x1d08036915e0dd71 + limb2: 0x1d08036915e0dd71, }, r0a1: u288 { limb0: 0x231d2b731b96c51d226edaba, limb1: 0x54f6870a63eb1f65452f2dff, - limb2: 0x19a442e5ccf62230 + limb2: 0x19a442e5ccf62230, }, r1a0: u288 { limb0: 0x86b0048f2b838a694846ddf2, limb1: 0x8ebdbd6a17deeef0a9e89793, - limb2: 0x2c3fd637cc908694 + limb2: 0x2c3fd637cc908694, }, r1a1: u288 { limb0: 0x544fe7404b052b92ddd8749f, limb1: 0x856ebabdfc6c86b29d302e7e, - limb2: 0x1451419a1600dfa3 - } + limb2: 0x1451419a1600dfa3, + }, }, G2Line { r0a0: u288 { limb0: 0x2fe1ebd1e53ec5b0f4268e1f, limb1: 0xa1cc2188de0d3fc7fb34bf66, - limb2: 0x182fc2a35b3ef175 + limb2: 0x182fc2a35b3ef175, }, r0a1: u288 { limb0: 0xfe3f3818077e92dcdf902b05, limb1: 0xa93c77db9fdbd5a79d361028, - limb2: 0x26d3c6d6d5a4c130 + limb2: 0x26d3c6d6d5a4c130, }, r1a0: u288 { limb0: 0xabef3803fdcbd839e246be11, limb1: 0x72f95ceda7e53263113f8da9, - limb2: 0x139aec1203d92ce8 + limb2: 0x139aec1203d92ce8, }, r1a1: u288 { limb0: 0x807eb60ed447012f9ad15b4c, limb1: 0x3bd36cefe2ac948e16e9c0a8, - limb2: 0x6bee881437b0e5a - } + limb2: 0x6bee881437b0e5a, + }, }, G2Line { r0a0: u288 { limb0: 0x56bcaed9684632a2bfce5bb4, limb1: 0x9e429f5aea1a66eeecfa2a38, - limb2: 0x3d76a3ac3d4651e + limb2: 0x3d76a3ac3d4651e, }, r0a1: u288 { limb0: 0xf318a717ace4c189f90f3f81, limb1: 0xcb324779d5090afc09982055, - limb2: 0x305aeff1c47da1d2 + limb2: 0x305aeff1c47da1d2, }, r1a0: u288 { limb0: 0xe74153062b51dea4abbaa7c2, limb1: 0xb0af9f816b16aa186af3e5df, - limb2: 0x159bf9ee77d1b9e2 + limb2: 0x159bf9ee77d1b9e2, }, r1a1: u288 { limb0: 0x3e70ac7ef6cf83592cd954eb, limb1: 0xb0a5fbb32a160b0cee7f9034, - limb2: 0x2c6199de44cc1f4c - } + limb2: 0x2c6199de44cc1f4c, + }, }, G2Line { r0a0: u288 { limb0: 0xf158629d155bd7e202c572ee, limb1: 0x6db77b2b4493bcb7586d1246, - limb2: 0x2367d2c9cfaed9d3 + limb2: 0x2367d2c9cfaed9d3, }, r0a1: u288 { limb0: 0xea4f9b43d0967753e57cdbe0, limb1: 0xc3eacf790d335214d6223e55, - limb2: 0x19dad509ae22484c + limb2: 0x19dad509ae22484c, }, r1a0: u288 { limb0: 0xda40ef1b79f182c340cea093, limb1: 0x2763ae12c9f0cf8668079884, - limb2: 0x2bb5813ff3e9ca2d + limb2: 0x2bb5813ff3e9ca2d, }, r1a1: u288 { limb0: 0x510f871618c4726ed002cd0e, limb1: 0xf17db1c8beafafa17311becb, - limb2: 0x26885d10b141626f - } + limb2: 0x26885d10b141626f, + }, }, G2Line { r0a0: u288 { limb0: 0xbdca04cc049ead113f92fdf0, limb1: 0x34a187101f66d212fd60eeb6, - limb2: 0x2b1014e453475cff + limb2: 0x2b1014e453475cff, }, r0a1: u288 { limb0: 0xe444f3c70fad06b4b6fc0bb6, limb1: 0x9f1c3c9ebcbbea9fbb631c54, - limb2: 0xb918e8ffbfe8a02 + limb2: 0xb918e8ffbfe8a02, }, r1a0: u288 { limb0: 0x606807fa707dacb60e4f7b53, limb1: 0x4ef1a20b0bc39ff0b4e48514, - limb2: 0xf218649f2e73b3c + limb2: 0xf218649f2e73b3c, }, r1a1: u288 { limb0: 0x81fa6d620e45c23cbbf1f622, limb1: 0x38da47f11b383ba1461436a3, - limb2: 0x837612c329d697a - } + limb2: 0x837612c329d697a, + }, }, G2Line { r0a0: u288 { limb0: 0xfbeac24075d6f0bd847f505f, limb1: 0x11f0f12ccc004707ce2fcec3, - limb2: 0xc310bf45f22489b + limb2: 0xc310bf45f22489b, }, r0a1: u288 { limb0: 0x184769ff32effb0080bd9282, limb1: 0x94861b6747fc96bbd348eeb5, - limb2: 0x1c4daba8fedab142 + limb2: 0x1c4daba8fedab142, }, r1a0: u288 { limb0: 0x83488ba56a75bac2444eb9bc, limb1: 0x8b62ed857cf1300abd22eb9c, - limb2: 0x135d64f62ca31e90 + limb2: 0x135d64f62ca31e90, }, r1a1: u288 { limb0: 0x54eb4787f8e28813b82ec15a, limb1: 0xd07f5859c765fdaabf1f0f80, - limb2: 0x2aeeddeb65ef03ad - } + limb2: 0x2aeeddeb65ef03ad, + }, }, G2Line { r0a0: u288 { limb0: 0xab04c28363de86ea6f72de4, limb1: 0x30b8ed32ef343187e688d103, - limb2: 0x168605f7c0b37cb5 + limb2: 0x168605f7c0b37cb5, }, r0a1: u288 { limb0: 0xf62ab1cd395ae609d2f685ed, limb1: 0xada87a28a9d619b144c0b35f, - limb2: 0x2eff0a0507e5218d + limb2: 0x2eff0a0507e5218d, }, r1a0: u288 { limb0: 0x4ff357d0c6ebed186e1f9c40, limb1: 0x20dd88d263bc52219e2f859c, - limb2: 0x24d6d1a731984ce8 + limb2: 0x24d6d1a731984ce8, }, r1a1: u288 { limb0: 0x1d5151d06ca52aece509cbb3, limb1: 0x46548add3b8e3d3faacd05b1, - limb2: 0x199d296e93cf8cbd - } + limb2: 0x199d296e93cf8cbd, + }, }, G2Line { r0a0: u288 { limb0: 0x8a033bf6880534fac8cfb54c, limb1: 0x13f208e848910d7bde1192ba, - limb2: 0x1423c34f98fdcef6 + limb2: 0x1423c34f98fdcef6, }, r0a1: u288 { limb0: 0x598d27c08012f40c3d3e9e75, limb1: 0xdc4107a10a7d803199d93086, - limb2: 0xc5257edbf918701 + limb2: 0xc5257edbf918701, }, r1a0: u288 { limb0: 0x4a3400be453d6b3c34e1fb44, limb1: 0xf91d5ac5ae679c33fff36409, - limb2: 0x1be98b7749edf072 + limb2: 0x1be98b7749edf072, }, r1a1: u288 { limb0: 0x6680d0e3d2b864d119b827ca, limb1: 0x5aac4bc1b57a2e22ccf58cee, - limb2: 0x23b7fc2f9a6ae22f - } + limb2: 0x23b7fc2f9a6ae22f, + }, }, G2Line { r0a0: u288 { limb0: 0xf0775979754e902669f0e444, limb1: 0x2e61682c7e17b57130ccbfe0, - limb2: 0xf21378dff131bc3 + limb2: 0xf21378dff131bc3, }, r0a1: u288 { limb0: 0x621b48168acdc19dc97ebbf0, limb1: 0x9909fd8847205eb91ae80e2b, - limb2: 0x15534e1988bea372 + limb2: 0x15534e1988bea372, }, r1a0: u288 { limb0: 0x836091f715c8ad2669df0e75, limb1: 0x5b706e57f70b2b69b33c9cdc, - limb2: 0x12f7d428e0c8ff0d + limb2: 0x12f7d428e0c8ff0d, }, r1a1: u288 { limb0: 0x306d15fba474fc201a777221, limb1: 0x55cafa050b672c2507126a6b, - limb2: 0x1c150bb26372eb1d - } + limb2: 0x1c150bb26372eb1d, + }, }, G2Line { r0a0: u288 { limb0: 0xa188e933ee7410d97afdb93c, limb1: 0xd390d4faa3f1ca403fc39b77, - limb2: 0x22ba33b8d7641e95 + limb2: 0x22ba33b8d7641e95, }, r0a1: u288 { limb0: 0x95c3812c2afb2bd2e4b35d5f, limb1: 0x61243c01b924123431702193, - limb2: 0x7afc7339fcd4ad3 + limb2: 0x7afc7339fcd4ad3, }, r1a0: u288 { limb0: 0x5234604f03b5a78036f17dec, limb1: 0x3e865fa0fddae6157c361e83, - limb2: 0x62802572defde82 + limb2: 0x62802572defde82, }, r1a1: u288 { limb0: 0xb0715990fb0e9c5e3a72b720, limb1: 0xc499138bc22f7a1afee6dc88, - limb2: 0x2ce146b6cbc671d - } + limb2: 0x2ce146b6cbc671d, + }, }, G2Line { r0a0: u288 { limb0: 0xa51df13c764911013f1d01e4, limb1: 0x452c277faac5af624ed11334, - limb2: 0x2f5f956a9879906f + limb2: 0x2f5f956a9879906f, }, r0a1: u288 { limb0: 0x37cd61b56ba0cc6cd3d394e2, limb1: 0xffa51ac2bdd7d1ef07a66bf9, - limb2: 0x1778ef73778c3338 + limb2: 0x1778ef73778c3338, }, r1a0: u288 { limb0: 0x958d7ab0ef0acf4b8c860666, limb1: 0xe95e65d08595b6669b49d367, - limb2: 0xdd821fce8671817 + limb2: 0xdd821fce8671817, }, r1a1: u288 { limb0: 0x82613df8271eef94f8216685, limb1: 0xce4517a26e9d1ff8435f6bd3, - limb2: 0x2d74a37dda03ec82 - } + limb2: 0x2d74a37dda03ec82, + }, }, G2Line { r0a0: u288 { limb0: 0x4705fc6add33f6134dda85e8, limb1: 0x87fc37a77f2400df656f807f, - limb2: 0x1c160e5ff98f44d9 + limb2: 0x1c160e5ff98f44d9, }, r0a1: u288 { limb0: 0x6a0e358cc09cd9f66a6e2657, limb1: 0xb1a9b2fea93601140e30d66c, - limb2: 0x9b506be37020061 + limb2: 0x9b506be37020061, }, r1a0: u288 { limb0: 0xb8c0a424d99a217f15aa5ad1, limb1: 0x3ce08d5d3a9f26850abc92bb, - limb2: 0xc584793703cab09 + limb2: 0xc584793703cab09, }, r1a1: u288 { limb0: 0x7476f45ea5fb77da8b829946, limb1: 0xf7626f5dd86a7edf8028f911, - limb2: 0x29f8098dfca1aaac - } + limb2: 0x29f8098dfca1aaac, + }, }, G2Line { r0a0: u288 { limb0: 0xaba2d53cda8e2d6c31f500ac, limb1: 0xfdbf88c50f2583b7c516266a, - limb2: 0x15dc535aaf20cbdb + limb2: 0x15dc535aaf20cbdb, }, r0a1: u288 { limb0: 0x66a36c60ce96cd547c9a1755, limb1: 0xcde33ff5707f6c8f3cde3a7e, - limb2: 0x73c9a84ae062b7c + limb2: 0x73c9a84ae062b7c, }, r1a0: u288 { limb0: 0x4a0c8580eff1de7233d32d9e, limb1: 0xadc83a0d5f1ae9af1ec5e504, - limb2: 0x12b12bc2dc726d83 + limb2: 0x12b12bc2dc726d83, }, r1a1: u288 { limb0: 0xc03b004c2c1449fdf5ec2afd, limb1: 0xa96a5efd4ba92c0a09c6da03, - limb2: 0x4ac73284c6f6c78 - } + limb2: 0x4ac73284c6f6c78, + }, }, G2Line { r0a0: u288 { limb0: 0x988db951df07bcf5167c0d2d, limb1: 0x37634b3bea2719769b35a4b9, - limb2: 0x97470cf572bf0e7 + limb2: 0x97470cf572bf0e7, }, r0a1: u288 { limb0: 0x93b3a64dfc09d5e6ee158302, limb1: 0x1c6a423bc1919a943f2ba043, - limb2: 0x74fa5fb7cb911aa + limb2: 0x74fa5fb7cb911aa, }, r1a0: u288 { limb0: 0x6e1487ba7aa03f2fb0629047, limb1: 0x776bb4f378ed97e42522c9fb, - limb2: 0x2f20cc4b753304cc + limb2: 0x2f20cc4b753304cc, }, r1a1: u288 { limb0: 0xf1179e510531e72e2b490f84, limb1: 0xbd187facc02ec1a4ae712e67, - limb2: 0x16f789e4d2a597b7 - } + limb2: 0x16f789e4d2a597b7, + }, }, G2Line { r0a0: u288 { limb0: 0x25e1b3add74afea5c1f33129, limb1: 0x52d850b9b1acf448a43d9a84, - limb2: 0x304d693be1b65945 + limb2: 0x304d693be1b65945, }, r0a1: u288 { limb0: 0xf9c0ebd67e6130dbb8406900, limb1: 0xb385c49a9bd04738cd7b5428, - limb2: 0x19a06db1f620a406 + limb2: 0x19a06db1f620a406, }, r1a0: u288 { limb0: 0x907c280d56948af74c060346, limb1: 0xabd4c238326dd19ca7c6381e, - limb2: 0x2bdbb1d399cfd3c0 + limb2: 0x2bdbb1d399cfd3c0, }, r1a1: u288 { limb0: 0x3d4dd4dad15e77d462c7e918, limb1: 0xadf6a96e3863a052cc62a68, - limb2: 0x5ff2446f7007039 - } + limb2: 0x5ff2446f7007039, + }, }, G2Line { r0a0: u288 { limb0: 0x138f586293881dd14bc6da3d, limb1: 0xd10a6cfa388f041b092fe446, - limb2: 0x134fd296006efe38 + limb2: 0x134fd296006efe38, }, r0a1: u288 { limb0: 0x7682e421ab596e09d97acaf5, limb1: 0x7bc08e33a9dc88d69a473ccb, - limb2: 0x13ebd6e59ab524c4 + limb2: 0x13ebd6e59ab524c4, }, r1a0: u288 { limb0: 0x9a3ab0aeddaf0f216d6f844a, limb1: 0x3126cf30520d8c7ad478476, - limb2: 0x2c02338e19519b2d + limb2: 0x2c02338e19519b2d, }, r1a1: u288 { limb0: 0xdabfe2d07ee261d2be63e689, limb1: 0x70a90bbdc35afe2b5f7617c6, - limb2: 0x2cf6596b31d7022 - } + limb2: 0x2cf6596b31d7022, + }, }, G2Line { r0a0: u288 { limb0: 0x1e7594119e66c328e7e8e2c9, limb1: 0xe9b1488f9e23ba1f0189f9f, - limb2: 0x21c596062c16c15d + limb2: 0x21c596062c16c15d, }, r0a1: u288 { limb0: 0xaa47ae6cab625b71d12923e8, limb1: 0xd5e69f6be21dc70822108b83, - limb2: 0x1b50a92feea5d1ed + limb2: 0x1b50a92feea5d1ed, }, r1a0: u288 { limb0: 0x346c220acdcc3bb153de8aad, limb1: 0x824f54d0187e5b1357938cf8, - limb2: 0x26b3a595f145b278 + limb2: 0x26b3a595f145b278, }, r1a1: u288 { limb0: 0x90422ba2c5b5cb7682f9f9a0, limb1: 0xda3b07105624448ee6af699e, - limb2: 0x855f3de8d27553 - } + limb2: 0x855f3de8d27553, + }, }, G2Line { r0a0: u288 { limb0: 0xe734bd8469bb0d6be46b8261, limb1: 0x2b29d6d008357ba8e7a5e184, - limb2: 0x1d1346c1f446537b + limb2: 0x1d1346c1f446537b, }, r0a1: u288 { limb0: 0xf8e1d78062ef5b92faf4cddd, limb1: 0xbaf1ca7bacabd5adfc1286a3, - limb2: 0x666ba02d5f144fa + limb2: 0x666ba02d5f144fa, }, r1a0: u288 { limb0: 0x46627a668572ccfe69168290, limb1: 0x4191d2df34900702c6390bb9, - limb2: 0x14aa1db861175db0 + limb2: 0x14aa1db861175db0, }, r1a1: u288 { limb0: 0xe127a538a4915164644a7383, limb1: 0xa1744671ffcd00e1c4ae838c, - limb2: 0x2ff36f7e93de5d6c - } + limb2: 0x2ff36f7e93de5d6c, + }, }, G2Line { r0a0: u288 { limb0: 0xf372aa2d5b25f06383d49055, limb1: 0x9242b717f74d67f9a6407380, - limb2: 0x2c8353bdcd31932e + limb2: 0x2c8353bdcd31932e, }, r0a1: u288 { limb0: 0x48cee3064e31b233c1ec6bc1, limb1: 0xf2be923df0d2346b067b30e4, - limb2: 0x3a8dc9fd9da0f60 + limb2: 0x3a8dc9fd9da0f60, }, r1a0: u288 { limb0: 0x8f89065450790649fddc1b3e, limb1: 0xbe5c8a4272361a7828e893ba, - limb2: 0x16675f3e6029e5aa + limb2: 0x16675f3e6029e5aa, }, r1a1: u288 { limb0: 0x5c9d27ca383d4ca0c63de6a7, limb1: 0xcda897ae6f5e2854dcf2f3d5, - limb2: 0x290743df058f8305 - } + limb2: 0x290743df058f8305, + }, }, G2Line { r0a0: u288 { limb0: 0xf1f3ab4a71bf063c478bc71, limb1: 0xcfe10cafaa4f16d30470ff11, - limb2: 0x2a859743d831d561 + limb2: 0x2a859743d831d561, }, r0a1: u288 { limb0: 0xda9e879d4da405e3745be46c, limb1: 0x6539bb41fc461e404d661818, - limb2: 0x2109fa558b0a8210 + limb2: 0x2109fa558b0a8210, }, r1a0: u288 { limb0: 0xe2fab01e8d7359c9120b3d72, limb1: 0x6d799a8db1bf63c665c6c68, - limb2: 0x1bedbf111989dd04 + limb2: 0x1bedbf111989dd04, }, r1a1: u288 { limb0: 0x6374e057728683e95ef4bded, limb1: 0x592dc554ee2ceccd54e9cbb5, - limb2: 0x277996866989d1a8 - } + limb2: 0x277996866989d1a8, + }, }, G2Line { r0a0: u288 { limb0: 0x2a6a35d687fd3ab5ed444d70, limb1: 0xf30c2c150150716b84c25d9d, - limb2: 0x2355381b4775f979 + limb2: 0x2355381b4775f979, }, r0a1: u288 { limb0: 0xf31d6705cd3f9a1e729f7be8, limb1: 0xcd6d818c3ea8a55fe1601bc6, - limb2: 0x2cc715925e8582fb + limb2: 0x2cc715925e8582fb, }, r1a0: u288 { limb0: 0xc34b5e6487ae899450b53ac0, limb1: 0x65a86cf5053c7421f70ec00c, - limb2: 0x1c705fa60b0b6e46 + limb2: 0x1c705fa60b0b6e46, }, r1a1: u288 { limb0: 0x1189127468bbdb55f404b7e8, limb1: 0xe0b50dc5855da0d20288ef4c, - limb2: 0x2db9ba609c2b1f8b - } + limb2: 0x2db9ba609c2b1f8b, + }, }, G2Line { r0a0: u288 { limb0: 0x58deb5a39dddab04b4bfbe6f, limb1: 0x3d80edfce9162e06afd3fae2, - limb2: 0x229b5dd9a090a07d + limb2: 0x229b5dd9a090a07d, }, r0a1: u288 { limb0: 0xa2884f95690b37cb555319e8, limb1: 0x431b3224e78b46a35dd8e27b, - limb2: 0xd1c9d6a556eff33 + limb2: 0xd1c9d6a556eff33, }, r1a0: u288 { limb0: 0x7d6f5780f353f4275084bd87, limb1: 0xeff8b298c309ae39ecc99974, - limb2: 0x15dabb9a3840c586 + limb2: 0x15dabb9a3840c586, }, r1a1: u288 { limb0: 0x6e408f5c601b2c2a42fcd6b4, limb1: 0x5b9c6ffa0ea6344c8f4fa422, - limb2: 0x112a7281cd34d37f - } + limb2: 0x112a7281cd34d37f, + }, }, G2Line { r0a0: u288 { limb0: 0x324406d06aab0393e4870b30, limb1: 0x6afe0b4af47ec81111094ea8, - limb2: 0x6756b9414a8dba8 + limb2: 0x6756b9414a8dba8, }, r0a1: u288 { limb0: 0xae5ba8ea8c9de615c7d2dee9, limb1: 0x335fdd8ee1dad4f3909a727a, - limb2: 0x395b21d2c56fe25 + limb2: 0x395b21d2c56fe25, }, r1a0: u288 { limb0: 0xe4ad199092e1e151932e0e15, limb1: 0xcc02c6c3d32e2e68c4309ff3, - limb2: 0x10245964597e950c + limb2: 0x10245964597e950c, }, r1a1: u288 { limb0: 0xa38e08616b574d86acc3f2bd, limb1: 0x57ca39109d9cca8fa3211d2, - limb2: 0xf0f2642a34368c2 - } + limb2: 0xf0f2642a34368c2, + }, }, G2Line { r0a0: u288 { limb0: 0x950136cad4283c32b1e14070, limb1: 0x18a70087736a4085ea0d3aef, - limb2: 0x161a9e5cef7ee79d + limb2: 0x161a9e5cef7ee79d, }, r0a1: u288 { limb0: 0xcf31e31a5ab2cf3d7f1287ec, limb1: 0xf07cce8ec28112beeeecf88, - limb2: 0x25caba0bbe758c3b + limb2: 0x25caba0bbe758c3b, }, r1a0: u288 { limb0: 0x4559351da5cc2c55015769fc, limb1: 0xe80942e51f4b6081a5181e20, - limb2: 0x10bb0a027ef12705 + limb2: 0x10bb0a027ef12705, }, r1a1: u288 { limb0: 0x6efbe1f1879cdf50c8cc3e50, limb1: 0x405b959e77d96ec753670ba8, - limb2: 0x256172f694a90b43 - } + limb2: 0x256172f694a90b43, + }, }, G2Line { r0a0: u288 { limb0: 0x7a655a088b9e434d956d29b3, limb1: 0xd8968757953325c9fc2bf54b, - limb2: 0x248c77d9b9eac25f + limb2: 0x248c77d9b9eac25f, }, r0a1: u288 { limb0: 0x520b04dc8045a2e028bec72e, limb1: 0x332013f75629ccab3d881ee, - limb2: 0x2d8653581e83e63d + limb2: 0x2d8653581e83e63d, }, r1a0: u288 { limb0: 0x4ba0c6f6e54c61c7f2abfd1f, limb1: 0x641f0ee83c94e5f43cb543e0, - limb2: 0x110f1ea1977c63ed + limb2: 0x110f1ea1977c63ed, }, r1a1: u288 { limb0: 0xe0689a4e4544b6405bfec89c, limb1: 0x42b073192ea62e7a3d456594, - limb2: 0x2b5defab459aa7 - } + limb2: 0x2b5defab459aa7, + }, }, G2Line { r0a0: u288 { limb0: 0xf33925f9b68c26fcdc41ebb5, limb1: 0x2b4e46523eacb7d3d7679ded, - limb2: 0xae9b529afa96647 + limb2: 0xae9b529afa96647, }, r0a1: u288 { limb0: 0xbbf762afa9b7ec494e9919cc, limb1: 0xde01f8208e22254629805591, - limb2: 0x2908b2c6aa755795 + limb2: 0x2908b2c6aa755795, }, r1a0: u288 { limb0: 0xe719a960b123c63298d4580b, limb1: 0x70fdc5502d31860bf5e24d91, - limb2: 0xad07726f92325dd + limb2: 0xad07726f92325dd, }, r1a1: u288 { limb0: 0xd501a4cccd1b92251e18acb8, limb1: 0x48d6dbb94067b970de5e8d62, - limb2: 0x6582f750a7528e2 - } + limb2: 0x6582f750a7528e2, + }, }, G2Line { r0a0: u288 { limb0: 0x76adc23ad83e917055379e01, limb1: 0xa37a413680cab603c29ef480, - limb2: 0x102d265010dc02a8 + limb2: 0x102d265010dc02a8, }, r0a1: u288 { limb0: 0x11ff7fd9aa3b06ea2fb2a3da, limb1: 0x8b4db920b544d2ec8815b4d4, - limb2: 0xe3a1eceb3c4e1dd + limb2: 0xe3a1eceb3c4e1dd, }, r1a0: u288 { limb0: 0x2975d22f8ff1d893ba17eec5, limb1: 0xc41fa6d39e1bd0088b641e5b, - limb2: 0x120c565ce46e6eab + limb2: 0x120c565ce46e6eab, }, r1a1: u288 { limb0: 0xbda9ce34164be7cbcbe4052a, limb1: 0x57c6bbfdcf08664b2014b07b, - limb2: 0x2cd9fb3fcb9933d - } + limb2: 0x2cd9fb3fcb9933d, + }, }, G2Line { r0a0: u288 { limb0: 0xf56e86d1ca0cd0542cbc4674, limb1: 0x11018bbc0dc8cd4b8b7ae4f, - limb2: 0x22c3cd45600ce3ab + limb2: 0x22c3cd45600ce3ab, }, r0a1: u288 { limb0: 0x33a111bcf69011ed5dfea95b, limb1: 0x2418d7b1ee6d6f32713cfe7e, - limb2: 0xd5b5c6d8c1519ed + limb2: 0xd5b5c6d8c1519ed, }, r1a0: u288 { limb0: 0x2382a6bc543a7027de67c43f, limb1: 0xa38eaf7d59bda8fb4cb3393c, - limb2: 0x1a9625a471ac3f3d + limb2: 0x1a9625a471ac3f3d, }, r1a1: u288 { limb0: 0x31460658c417f30241adaa81, limb1: 0x2d7fbd15ffc0f167b09fb12, - limb2: 0x58d2b9e0bd06b5b - } + limb2: 0x58d2b9e0bd06b5b, + }, }, G2Line { r0a0: u288 { limb0: 0x82bfa35b631169ad2f83361f, limb1: 0x99f56b3227f7e254defe5, - limb2: 0x1950c5a24028a2aa + limb2: 0x1950c5a24028a2aa, }, r0a1: u288 { limb0: 0x1337a344b6ac1fa757c934a4, limb1: 0xe33df35dfde3e6063ab1eb7, - limb2: 0x2a3cc47f276a0212 + limb2: 0x2a3cc47f276a0212, }, r1a0: u288 { limb0: 0x1245820f20882f9139470e7b, limb1: 0x7a1c9e876bf26adb41c64027, - limb2: 0xd422a9827cbf457 + limb2: 0xd422a9827cbf457, }, r1a1: u288 { limb0: 0x5f59c344aabe02ee306a7a07, limb1: 0x6ababab105f405239586317d, - limb2: 0x1fc81898cef32a96 - } + limb2: 0x1fc81898cef32a96, + }, }, G2Line { r0a0: u288 { limb0: 0x437d9858e6b05bca1aa1347d, limb1: 0xf012e5839e7f52c7d1aa4f71, - limb2: 0x74167847908a227 + limb2: 0x74167847908a227, }, r0a1: u288 { limb0: 0xa5fc5b1e5d9e423cf693e9a2, limb1: 0xf6cf7b8f14cb8bac89b003ed, - limb2: 0x2b2fbdb6f3d2c547 + limb2: 0x2b2fbdb6f3d2c547, }, r1a0: u288 { limb0: 0x4d27497878a92fcf1bf112ae, limb1: 0x6ed3fab765fd2b78dafba22, - limb2: 0x20b6a585415c0f8c + limb2: 0x20b6a585415c0f8c, }, r1a1: u288 { limb0: 0xb6046abd25f56c82783877ef, limb1: 0xdeead7b25917e53f6274438a, - limb2: 0x1ea62e9f6b9581ae - } + limb2: 0x1ea62e9f6b9581ae, + }, }, G2Line { r0a0: u288 { limb0: 0x4b45c74101e263842de438e2, limb1: 0x1de5d13076e9167da76b5deb, - limb2: 0x234a516a4d637634 + limb2: 0x234a516a4d637634, }, r0a1: u288 { limb0: 0x1a71b588bd25e5c61d88a8f3, limb1: 0x5d278614526c6bfd165be50c, - limb2: 0x1ea7a078ebbdfef0 + limb2: 0x1ea7a078ebbdfef0, }, r1a0: u288 { limb0: 0x2af591b3a6ce1a91ed970c72, limb1: 0xe2f4ee607563097d22eff760, - limb2: 0x1e3db808fe7f4be9 + limb2: 0x1e3db808fe7f4be9, }, r1a1: u288 { limb0: 0x4a65dbea8b249e4bb7d6f89, limb1: 0xb7dd9a218720ff0d1cee04bb, - limb2: 0x2ab465a3f689ce40 - } + limb2: 0x2ab465a3f689ce40, + }, }, G2Line { r0a0: u288 { limb0: 0xfb9bd919cce844113eb51a5d, limb1: 0x2415ec83cd2875963f51ceb7, - limb2: 0x262ce736e9819e0a + limb2: 0x262ce736e9819e0a, }, r0a1: u288 { limb0: 0xa007bdfcbfb07d488ef141a5, limb1: 0x7f00d5f63ca999d9a73bc5dc, - limb2: 0x25302703fc347c2b + limb2: 0x25302703fc347c2b, }, r1a0: u288 { limb0: 0x90fb618d2fc0f78331a80790, limb1: 0x37f314c2c3a4f6b372aee4ab, - limb2: 0x2254e3aa6d2d018 + limb2: 0x2254e3aa6d2d018, }, r1a1: u288 { limb0: 0x22aee155084437d36b4673f9, limb1: 0x6e5b1f8b55a312a7fc0d5fce, - limb2: 0x13ab6d95ccbcf9d7 - } + limb2: 0x13ab6d95ccbcf9d7, + }, }, G2Line { r0a0: u288 { limb0: 0x7ecd5ec39e2e9b688d7aeaa4, limb1: 0x77729bf869c5a1dc11f80ae6, - limb2: 0xa4ab4cbe035d638 + limb2: 0xa4ab4cbe035d638, }, r0a1: u288 { limb0: 0xbae7313da7df5088a5f2f220, limb1: 0x1df603e4fb6e3a1a93053fcc, - limb2: 0xfc8d5cd9811a4f5 + limb2: 0xfc8d5cd9811a4f5, }, r1a0: u288 { limb0: 0xa9643b8b51ba9c1aee411165, limb1: 0xc5eda1d47ceff78eba53c6c5, - limb2: 0x67cba27e3af918f + limb2: 0x67cba27e3af918f, }, r1a1: u288 { limb0: 0xbbdc08c72d30e0bb8b267bef, limb1: 0x9da54c8245f33163fd4c6498, - limb2: 0x1ca91c6b163400de - } + limb2: 0x1ca91c6b163400de, + }, }, G2Line { r0a0: u288 { limb0: 0x7767ffa2530e4910bbeb9d6a, limb1: 0x24280b12e75928168db8db17, - limb2: 0xda8635b51827e28 + limb2: 0xda8635b51827e28, }, r0a1: u288 { limb0: 0x9e32f2fa8a95f36f060e121c, limb1: 0xb33bbe64b4fcbc221db72502, - limb2: 0x1b3906450d00a8bb + limb2: 0x1b3906450d00a8bb, }, r1a0: u288 { limb0: 0x91ffdc9eafa80c31241d1c74, limb1: 0x2660f321f1a657b8945e98e2, - limb2: 0x1d456a7c25ac8fe7 + limb2: 0x1d456a7c25ac8fe7, }, r1a1: u288 { limb0: 0x9bfea7b3fc76917867b20020, limb1: 0x810fa5065a6b41e77ceec935, - limb2: 0x2c8a1c71efdbecbd - } + limb2: 0x2c8a1c71efdbecbd, + }, }, G2Line { r0a0: u288 { limb0: 0x2f85f2108456ccaa53ef65dc, limb1: 0x878b6f9f7563f90c378bc4fc, - limb2: 0x4c7d2e26d1b9920 + limb2: 0x4c7d2e26d1b9920, }, r0a1: u288 { limb0: 0x78296cde1a06f23d06745e73, limb1: 0x1395e39fc8ac50fcbf74feb0, - limb2: 0x15887f14dfab28b3 + limb2: 0x15887f14dfab28b3, }, r1a0: u288 { limb0: 0xf6c96ed03aec71287b573c47, limb1: 0xd82c1129917c88c39187c58, - limb2: 0x62e44c99340563e + limb2: 0x62e44c99340563e, }, r1a1: u288 { limb0: 0x9f5f8f1fc79fe0c32e31008f, limb1: 0xbdbffb831b3eddb5e2f307c2, - limb2: 0x1e47e50cc12f3f3d - } + limb2: 0x1e47e50cc12f3f3d, + }, }, G2Line { r0a0: u288 { limb0: 0x2b99ce250113516077e3138, limb1: 0xf47cd426557dc1a0a644b032, - limb2: 0x17798a574bcffa86 + limb2: 0x17798a574bcffa86, }, r0a1: u288 { limb0: 0xf0cd9b8ab6c440e787a8885d, limb1: 0x7500cbb999f2375c0874398, - limb2: 0x2507d26d47778d6a + limb2: 0x2507d26d47778d6a, }, r1a0: u288 { limb0: 0xf309174a30444cc45ef9b3ec, limb1: 0xba1c35e5c4366c3e8d630b5d, - limb2: 0x206335368b8b0d04 + limb2: 0x206335368b8b0d04, }, r1a1: u288 { limb0: 0xcb7e874047c87f0289676720, limb1: 0x13b09c1bbe23cf641b870815, - limb2: 0x2469f344ee173692 - } + limb2: 0x2469f344ee173692, + }, }, G2Line { r0a0: u288 { limb0: 0xe68e77ebab10145070499de6, limb1: 0xc608aaedf011053bc51e1912, - limb2: 0x168c3766afccee98 + limb2: 0x168c3766afccee98, }, r0a1: u288 { limb0: 0xde0798cd03867a27405533c3, limb1: 0x50d4ef22cc77987c7026e9c3, - limb2: 0x297e8506ca525c60 + limb2: 0x297e8506ca525c60, }, r1a0: u288 { limb0: 0x87e6c0226d9bf9796cec7983, limb1: 0x15024a4918324b3cad118318, - limb2: 0x102f20badd209d78 + limb2: 0x102f20badd209d78, }, r1a1: u288 { limb0: 0x7eeb6de8801808a185b01759, limb1: 0x2e8680c6484ec17243e0f2b0, - limb2: 0x1d6ca6db6ee3e50d - } + limb2: 0x1d6ca6db6ee3e50d, + }, }, G2Line { r0a0: u288 { limb0: 0xc4e37e3305c8e3f4639a8b98, limb1: 0xb9ec4ca4d7d49a9822008dbe, - limb2: 0x615661361045cf2 + limb2: 0x615661361045cf2, }, r0a1: u288 { limb0: 0xb42d676b3032557533fb7d13, limb1: 0xf3b06bc53cf3ef01a864ee38, - limb2: 0x73c33be229ad89 + limb2: 0x73c33be229ad89, }, r1a0: u288 { limb0: 0x942092185dc6ed03bdf0ab37, limb1: 0x43e304cbc5e653a44f0890b2, - limb2: 0xb11bbd65dcfe3bc + limb2: 0xb11bbd65dcfe3bc, }, r1a1: u288 { limb0: 0x9157802e363daff49f64ac5, limb1: 0x75e52d50100499365604decd, - limb2: 0x2eb339b99d930ac0 - } + limb2: 0x2eb339b99d930ac0, + }, }, ]; diff --git a/src/contracts/noir_ultra_keccak_honk_example/.tools-versions b/src/contracts/noir_ultra_keccak_honk_example/.tools-versions new file mode 100644 index 00000000..3efd1f43 --- /dev/null +++ b/src/contracts/noir_ultra_keccak_honk_example/.tools-versions @@ -0,0 +1 @@ +scarb 2.9.1 diff --git a/src/contracts/noir_ultra_keccak_honk_example/Scarb.toml b/src/contracts/noir_ultra_keccak_honk_example/Scarb.toml new file mode 100644 index 00000000..a80ef925 --- /dev/null +++ b/src/contracts/noir_ultra_keccak_honk_example/Scarb.toml @@ -0,0 +1,18 @@ +[package] +name = "noir_ultra_keccak_honk_example" +version = "0.1.0" +edition = "2024_07" + +[dependencies] +garaga = { path = "../../" } +starknet = "2.9.1" + +[cairo] +sierra-replace-ids = false + +[dev-dependencies] +cairo_test = "2.9.1" + +[[target.starknet-contract]] +casm = true +casm-add-pythonic-hints = true diff --git a/src/contracts/noir_ultra_keccak_honk_example/src/honk_verifier.cairo b/src/contracts/noir_ultra_keccak_honk_example/src/honk_verifier.cairo new file mode 100644 index 00000000..7faeab52 --- /dev/null +++ b/src/contracts/noir_ultra_keccak_honk_example/src/honk_verifier.cairo @@ -0,0 +1,395 @@ +use super::honk_verifier_constants::{vk, precomputed_lines}; +use super::honk_verifier_circuits::{ + run_GRUMPKIN_HONK_SUMCHECK_SIZE_5_PUB_1_circuit, + run_GRUMPKIN_HONK_PREP_MSM_SCALARS_SIZE_5_circuit, + run_BN254_EVAL_FN_CHALLENGE_DUPL_42P_RLC_circuit, +}; + +#[starknet::interface] +trait IUltraKeccakHonkVerifier { + fn verify_ultra_keccak_honk_proof( + self: @TContractState, full_proof_with_hints: Span, + ) -> Option>; +} + +#[starknet::contract] +mod UltraKeccakHonkVerifier { + use garaga::definitions::{G1Point, G1G2Pair, BN254_G1_GENERATOR, get_a, get_modulus}; + use garaga::pairing_check::{multi_pairing_check_bn254_2P_2F, MPCheckHintBN254}; + use garaga::ec_ops::{ + G1PointTrait, ec_safe_add, FunctionFeltTrait, DerivePointFromXHint, MSMHintBatched, + compute_rhs_ecip, derive_ec_point_from_X, SlopeInterceptOutput, + }; + use garaga::basic_field_ops::{batch_3_mod_p}; + use garaga::circuits::ec; + use garaga::utils::neg_3; + use super::{ + vk, precomputed_lines, run_GRUMPKIN_HONK_SUMCHECK_SIZE_5_PUB_1_circuit, + run_GRUMPKIN_HONK_PREP_MSM_SCALARS_SIZE_5_circuit, + run_BN254_EVAL_FN_CHALLENGE_DUPL_42P_RLC_circuit, + }; + use garaga::utils::noir::{ + HonkProof, remove_unused_variables_sumcheck_evaluations, G2_POINT_KZG_1, G2_POINT_KZG_2, + }; + use garaga::utils::noir::keccak_transcript::{ + HonkTranscriptTrait, Point256IntoCircuitPoint, BATCHED_RELATION_PARTIAL_LENGTH, + }; + use garaga::core::circuit::U64IntoU384; + use core::num::traits::Zero; + use core::poseidon::hades_permutation; + + #[storage] + struct Storage {} + + #[derive(Drop, Serde)] + struct FullProof { + proof: HonkProof, + msm_hint_batched: MSMHintBatched, + derive_point_from_x_hint: DerivePointFromXHint, + kzg_hint: MPCheckHintBN254, + } + + #[abi(embed_v0)] + impl IUltraKeccakHonkVerifier of super::IUltraKeccakHonkVerifier { + fn verify_ultra_keccak_honk_proof( + self: @ContractState, full_proof_with_hints: Span, + ) -> Option> { + // DO NOT EDIT THIS FUNCTION UNLESS YOU KNOW WHAT YOU ARE DOING. + // This function returns an Option for the public inputs if the proof is valid. + // If the proof is invalid, the execution will either fail or return None. + // Read the documentation to learn how to generate the full_proof_with_hints array given + // a proof and a verifying key. + let mut full_proof_with_hints = full_proof_with_hints; + let full_proof = Serde::::deserialize(ref full_proof_with_hints) + .expect('deserialization failed'); + // let mpcheck_hint = fph.mpcheck_hint; + // let msm_hint = fph.msm_hint; + + let (transcript, base_rlc) = HonkTranscriptTrait::from_proof(full_proof.proof); + let log_n = vk.log_circuit_size; + let (sum_check_rlc, honk_check) = run_GRUMPKIN_HONK_SUMCHECK_SIZE_5_PUB_1_circuit( + p_public_inputs: full_proof.proof.public_inputs, + p_public_inputs_offset: full_proof.proof.public_inputs_offset.into(), + sumcheck_univariates_flat: full_proof + .proof + .sumcheck_univariates + .slice(0, log_n * BATCHED_RELATION_PARTIAL_LENGTH), + sumcheck_evaluations: remove_unused_variables_sumcheck_evaluations( + full_proof.proof.sumcheck_evaluations, + ), + tp_sum_check_u_challenges: transcript.sum_check_u_challenges.span().slice(0, log_n), + tp_gate_challenges: transcript.gate_challenges.span().slice(0, log_n), + tp_eta_1: transcript.eta.into(), + tp_eta_2: transcript.eta_two.into(), + tp_eta_3: transcript.eta_three.into(), + tp_beta: transcript.beta.into(), + tp_gamma: transcript.gamma.into(), + tp_base_rlc: base_rlc.into(), + tp_alphas: transcript.alphas.span(), + ); + + let ( + scalar_1, + scalar_2, + scalar_3, + scalar_4, + scalar_5, + scalar_6, + scalar_7, + scalar_8, + scalar_9, + scalar_10, + scalar_11, + scalar_12, + scalar_13, + scalar_14, + scalar_15, + scalar_16, + scalar_17, + scalar_18, + scalar_19, + scalar_20, + scalar_21, + scalar_22, + scalar_23, + scalar_24, + scalar_25, + scalar_26, + scalar_27, + scalar_28, + scalar_29, + scalar_30, + scalar_31, + scalar_32, + scalar_33, + scalar_34, + scalar_35, + scalar_44, + scalar_45, + scalar_46, + scalar_47, + scalar_48, + scalar_72, + _, + ) = + run_GRUMPKIN_HONK_PREP_MSM_SCALARS_SIZE_5_circuit( + p_sumcheck_evaluations: full_proof.proof.sumcheck_evaluations, + p_gemini_a_evaluations: full_proof.proof.gemini_a_evaluations, + tp_gemini_r: transcript.gemini_r.into(), + tp_rho: transcript.rho.into(), + tp_shplonk_z: transcript.shplonk_z.into(), + tp_shplonk_nu: transcript.shplonk_nu.into(), + tp_sum_check_u_challenges: transcript.sum_check_u_challenges.span().slice(0, log_n), + ); + + // Starts with 1 * shplonk_q, not included in msm. + + let mut _points: Array = array![ + vk.qm, + vk.qc, + vk.ql, + vk.qr, + vk.qo, + vk.q4, + vk.qArith, + vk.qDeltaRange, + vk.qElliptic, + vk.qAux, + vk.qLookup, + vk.qPoseidon2External, + vk.qPoseidon2Internal, + vk.s1, + vk.s2, + vk.s3, + vk.s4, + vk.id1, + vk.id2, + vk.id3, + vk.id4, + vk.t1, + vk.t2, + vk.t3, + vk.t4, + vk.lagrange_first, + vk.lagrange_last, + full_proof.proof.w1.into(), + full_proof.proof.w2.into(), + full_proof.proof.w3.into(), + full_proof.proof.w4.into(), + full_proof.proof.z_perm.into(), + full_proof.proof.lookup_inverses.into(), + full_proof.proof.lookup_read_counts.into(), + full_proof.proof.lookup_read_tags.into(), + full_proof.proof.z_perm.into(), + ]; + + for gem_comm in full_proof.proof.gemini_fold_comms { + _points.append((*gem_comm).into()); + }; + _points.append(BN254_G1_GENERATOR); + _points.append(full_proof.proof.kzg_quotient.into()); + + let points = _points.span(); + + let scalars: Span = array![ + scalar_1.try_into().unwrap(), + scalar_2.try_into().unwrap(), + scalar_3.try_into().unwrap(), + scalar_4.try_into().unwrap(), + scalar_5.try_into().unwrap(), + scalar_6.try_into().unwrap(), + scalar_7.try_into().unwrap(), + scalar_8.try_into().unwrap(), + scalar_9.try_into().unwrap(), + scalar_10.try_into().unwrap(), + scalar_11.try_into().unwrap(), + scalar_12.try_into().unwrap(), + scalar_13.try_into().unwrap(), + scalar_14.try_into().unwrap(), + scalar_15.try_into().unwrap(), + scalar_16.try_into().unwrap(), + scalar_17.try_into().unwrap(), + scalar_18.try_into().unwrap(), + scalar_19.try_into().unwrap(), + scalar_20.try_into().unwrap(), + scalar_21.try_into().unwrap(), + scalar_22.try_into().unwrap(), + scalar_23.try_into().unwrap(), + scalar_24.try_into().unwrap(), + scalar_25.try_into().unwrap(), + scalar_26.try_into().unwrap(), + scalar_27.try_into().unwrap(), + scalar_28.try_into().unwrap(), + scalar_29.try_into().unwrap(), + scalar_30.try_into().unwrap(), + scalar_31.try_into().unwrap(), + scalar_32.try_into().unwrap(), + scalar_33.try_into().unwrap(), + scalar_34.try_into().unwrap(), + scalar_35.try_into().unwrap(), + scalar_44.try_into().unwrap(), + scalar_45.try_into().unwrap(), + scalar_46.try_into().unwrap(), + scalar_47.try_into().unwrap(), + scalar_48.try_into().unwrap(), + scalar_72.try_into().unwrap(), + transcript.shplonk_z.into(), + ] + .span(); + + full_proof.msm_hint_batched.SumDlogDivBatched.validate_degrees_batched(42); + + // HASHING: GET ECIP BASE RLC COEFF. + // TODO : RE-USE transcript to avoid re-hashing G1 POINTS. + let (s0, s1, s2): (felt252, felt252, felt252) = hades_permutation( + 'MSM_G1', 0, 1, + ); // Init Sponge state + let (s0, s1, s2) = hades_permutation( + s0 + 0.into(), s1 + 42.into(), s2, + ); // Include curve_index and msm size + + let mut s0 = s0; + let mut s1 = s1; + let mut s2 = s2; + + // Check input points are on curve and hash them at the same time. + + for point in points { + if !point.is_infinity() { + point.assert_on_curve(0); + } + let (_s0, _s1, _s2) = point.update_hash_state(s0, s1, s2); + s0 = _s0; + s1 = _s1; + s2 = _s2; + }; + + if !full_proof.msm_hint_batched.Q_low.is_infinity() { + full_proof.msm_hint_batched.Q_low.assert_on_curve(0); + } + if !full_proof.msm_hint_batched.Q_high.is_infinity() { + full_proof.msm_hint_batched.Q_high.assert_on_curve(0); + } + if !full_proof.msm_hint_batched.Q_high_shifted.is_infinity() { + full_proof.msm_hint_batched.Q_high_shifted.assert_on_curve(0); + } + + // Hash result points + let (s0, s1, s2) = full_proof.msm_hint_batched.Q_low.update_hash_state(s0, s1, s2); + let (s0, s1, s2) = full_proof.msm_hint_batched.Q_high.update_hash_state(s0, s1, s2); + let (s0, s1, s2) = full_proof + .msm_hint_batched + .Q_high_shifted + .update_hash_state(s0, s1, s2); + + // Hash scalars : + let mut s0 = s0; + let mut s1 = s1; + let mut s2 = s2; + for scalar in scalars { + let (_s0, _s1, _s2) = core::poseidon::hades_permutation( + s0 + (*scalar.low).into(), s1 + (*scalar.high).into(), s2, + ); + s0 = _s0; + s1 = _s1; + s2 = _s2; + }; + + let base_rlc_coeff = s1; + + let (s0, _, _) = full_proof + .msm_hint_batched + .SumDlogDivBatched + .update_hash_state(s0, s1, s2); + + let random_point: G1Point = derive_ec_point_from_X( + s0, + full_proof.derive_point_from_x_hint.y_last_attempt, + full_proof.derive_point_from_x_hint.g_rhs_sqrt, + 0, + ); + + // Get slope, intercept and other constant from random point + let (mb): (SlopeInterceptOutput,) = ec::run_SLOPE_INTERCEPT_SAME_POINT_circuit( + random_point, get_a(0), 0, + ); + + // Get positive and negative multiplicities of low and high part of scalars + let (epns_low, epns_high) = neg_3::u256_array_to_low_high_epns(scalars, Option::None); + + // Hardcoded epns for 2**128 + let epns_shifted: Array<(felt252, felt252, felt252, felt252)> = array![ + ( + 5279154705627724249993186093248666011, + 345561521626566187713367793525016877467, + -1, + -1, + ), + ]; + + let (zk_ecip_batched_lhs) = run_BN254_EVAL_FN_CHALLENGE_DUPL_42P_RLC_circuit( + A0: random_point, + A2: G1Point { x: mb.x_A2, y: mb.y_A2 }, + coeff0: mb.coeff0, + coeff2: mb.coeff2, + SumDlogDivBatched: full_proof.msm_hint_batched.SumDlogDivBatched, + ); + + let rhs_low = compute_rhs_ecip( + points, + mb.m_A0, + mb.b_A0, + random_point.x, + epns_low, + full_proof.msm_hint_batched.Q_low, + 0, + ); + let rhs_high = compute_rhs_ecip( + points, + mb.m_A0, + mb.b_A0, + random_point.x, + epns_high, + full_proof.msm_hint_batched.Q_high, + 0, + ); + let rhs_high_shifted = compute_rhs_ecip( + array![full_proof.msm_hint_batched.Q_high].span(), + mb.m_A0, + mb.b_A0, + random_point.x, + epns_shifted, + full_proof.msm_hint_batched.Q_high_shifted, + 0, + ); + + let mod_bn = get_modulus(0); + let zk_ecip_batched_rhs = batch_3_mod_p( + rhs_low, rhs_high, rhs_high_shifted, base_rlc_coeff.into(), mod_bn, + ); + + let ecip_check = zk_ecip_batched_lhs == zk_ecip_batched_rhs; + + let P_1 = ec_safe_add( + full_proof.msm_hint_batched.Q_low, full_proof.msm_hint_batched.Q_high_shifted, 0, + ); + let P_1 = ec_safe_add(P_1, full_proof.proof.shplonk_q.into(), 0); + let P_2: G1Point = full_proof.proof.kzg_quotient.into(); + + // Perform the KZG pairing check. + let kzg_check = multi_pairing_check_bn254_2P_2F( + G1G2Pair { p: P_1, q: G2_POINT_KZG_1 }, + G1G2Pair { p: P_2.negate(0), q: G2_POINT_KZG_2 }, + precomputed_lines.span(), + full_proof.kzg_hint, + ); + + if sum_check_rlc.is_zero() && honk_check.is_zero() && ecip_check && kzg_check { + return Option::Some(full_proof.proof.public_inputs); + } else { + return Option::None; + } + } + } +} + diff --git a/src/contracts/noir_ultra_keccak_honk_example/src/honk_verifier_circuits.cairo b/src/contracts/noir_ultra_keccak_honk_example/src/honk_verifier_circuits.cairo new file mode 100644 index 00000000..8bb3c37d --- /dev/null +++ b/src/contracts/noir_ultra_keccak_honk_example/src/honk_verifier_circuits.cairo @@ -0,0 +1,2365 @@ +use core::circuit::{ + u384, circuit_add, circuit_sub, circuit_mul, circuit_inverse, EvalCircuitTrait, + CircuitOutputsTrait, CircuitInputs, +}; +use garaga::core::circuit::AddInputResultTrait2; +use garaga::ec_ops::FunctionFelt; +use core::circuit::CircuitElement as CE; +use core::circuit::CircuitInput as CI; +use garaga::definitions::{G1Point, get_GRUMPKIN_modulus, get_BN254_modulus}; +use core::option::Option; + +#[inline(always)] +pub fn run_GRUMPKIN_HONK_SUMCHECK_SIZE_5_PUB_1_circuit( + p_public_inputs: Span, + p_public_inputs_offset: u384, + sumcheck_univariates_flat: Span, + sumcheck_evaluations: Span, + tp_sum_check_u_challenges: Span, + tp_gate_challenges: Span, + tp_eta_1: u384, + tp_eta_2: u384, + tp_eta_3: u384, + tp_beta: u384, + tp_gamma: u384, + tp_base_rlc: u384, + tp_alphas: Span, +) -> (u384, u384) { + // CONSTANT stack + let in0 = CE::> {}; // 0x1 + let in1 = CE::> {}; // 0x20 + let in2 = CE::> {}; // 0x0 + let in3 = CE::> {}; // 0x30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffec51 + let in4 = CE::> {}; // 0x2d0 + let in5 = CE::> {}; // 0x30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff11 + let in6 = CE::> {}; // 0x90 + let in7 = CE::> {}; // 0x30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff71 + let in8 = CE::> {}; // 0xf0 + let in9 = CE::> {}; // 0x30644e72e131a029b85045b68181585d2833e84879b9709143e1f593effffd31 + let in10 = CE::> {}; // 0x13b0 + let in11 = CE::> {}; // 0x2 + let in12 = CE::> {}; // 0x3 + let in13 = CE::> {}; // 0x4 + let in14 = CE::> {}; // 0x5 + let in15 = CE::> {}; // 0x6 + let in16 = CE::> {}; // 0x7 + let in17 = CE::< + CI<17>, + > {}; // 0x183227397098d014dc2822db40c0ac2e9419f4243cdcb848a1f0fac9f8000000 + let in18 = CE::> {}; // -0x1 % p + let in19 = CE::> {}; // -0x2 % p + let in20 = CE::> {}; // -0x3 % p + let in21 = CE::> {}; // 0x11 + let in22 = CE::> {}; // 0x9 + let in23 = CE::> {}; // 0x100000000000000000 + let in24 = CE::> {}; // 0x4000 + let in25 = CE::< + CI<25>, + > {}; // 0x10dc6e9c006ea38b04b1e03b4bd9490c0d03f98929ca1d7fb56821fd19d3b6e7 + let in26 = CE::> {}; // 0xc28145b6a44df3e0149b3d0a30b3bb599df9756d4dd9b84a86b38cfb45a740b + let in27 = CE::> {}; // 0x544b8338791518b2c7645a50392798b21f75bb60e3596170067d00141cac15 + let in28 = CE::< + CI<28>, + > {}; // 0x222c01175718386f2e2e82eb122789e352e105a3b8fa852613bc534433ee428b + + // INPUT stack + let (in29, in30, in31) = (CE::> {}, CE::> {}, CE::> {}); + let (in32, in33, in34) = (CE::> {}, CE::> {}, CE::> {}); + let (in35, in36, in37) = (CE::> {}, CE::> {}, CE::> {}); + let (in38, in39, in40) = (CE::> {}, CE::> {}, CE::> {}); + let (in41, in42, in43) = (CE::> {}, CE::> {}, CE::> {}); + let (in44, in45, in46) = (CE::> {}, CE::> {}, CE::> {}); + let (in47, in48, in49) = (CE::> {}, CE::> {}, CE::> {}); + let (in50, in51, in52) = (CE::> {}, CE::> {}, CE::> {}); + let (in53, in54, in55) = (CE::> {}, CE::> {}, CE::> {}); + let (in56, in57, in58) = (CE::> {}, CE::> {}, CE::> {}); + let (in59, in60, in61) = (CE::> {}, CE::> {}, CE::> {}); + let (in62, in63, in64) = (CE::> {}, CE::> {}, CE::> {}); + let (in65, in66, in67) = (CE::> {}, CE::> {}, CE::> {}); + let (in68, in69, in70) = (CE::> {}, CE::> {}, CE::> {}); + let (in71, in72, in73) = (CE::> {}, CE::> {}, CE::> {}); + let (in74, in75, in76) = (CE::> {}, CE::> {}, CE::> {}); + let (in77, in78, in79) = (CE::> {}, CE::> {}, CE::> {}); + let (in80, in81, in82) = (CE::> {}, CE::> {}, CE::> {}); + let (in83, in84, in85) = (CE::> {}, CE::> {}, CE::> {}); + let (in86, in87, in88) = (CE::> {}, CE::> {}, CE::> {}); + let (in89, in90, in91) = (CE::> {}, CE::> {}, CE::> {}); + let (in92, in93, in94) = (CE::> {}, CE::> {}, CE::> {}); + let (in95, in96, in97) = (CE::> {}, CE::> {}, CE::> {}); + let (in98, in99, in100) = (CE::> {}, CE::> {}, CE::> {}); + let (in101, in102, in103) = (CE::> {}, CE::> {}, CE::> {}); + let (in104, in105, in106) = (CE::> {}, CE::> {}, CE::> {}); + let (in107, in108, in109) = (CE::> {}, CE::> {}, CE::> {}); + let (in110, in111, in112) = (CE::> {}, CE::> {}, CE::> {}); + let (in113, in114, in115) = (CE::> {}, CE::> {}, CE::> {}); + let (in116, in117, in118) = (CE::> {}, CE::> {}, CE::> {}); + let (in119, in120, in121) = (CE::> {}, CE::> {}, CE::> {}); + let (in122, in123, in124) = (CE::> {}, CE::> {}, CE::> {}); + let (in125, in126, in127) = (CE::> {}, CE::> {}, CE::> {}); + let (in128, in129, in130) = (CE::> {}, CE::> {}, CE::> {}); + let (in131, in132, in133) = (CE::> {}, CE::> {}, CE::> {}); + let (in134, in135, in136) = (CE::> {}, CE::> {}, CE::> {}); + let (in137, in138, in139) = (CE::> {}, CE::> {}, CE::> {}); + let (in140, in141, in142) = (CE::> {}, CE::> {}, CE::> {}); + let (in143, in144, in145) = (CE::> {}, CE::> {}, CE::> {}); + let (in146, in147, in148) = (CE::> {}, CE::> {}, CE::> {}); + let (in149, in150, in151) = (CE::> {}, CE::> {}, CE::> {}); + let t0 = circuit_add(in1, in30); + let t1 = circuit_mul(in124, t0); + let t2 = circuit_add(in125, t1); + let t3 = circuit_add(in30, in0); + let t4 = circuit_mul(in124, t3); + let t5 = circuit_sub(in125, t4); + let t6 = circuit_add(t2, in29); + let t7 = circuit_mul(in0, t6); + let t8 = circuit_add(t5, in29); + let t9 = circuit_mul(in0, t8); + let t10 = circuit_inverse(t9); + let t11 = circuit_mul(t7, t10); + let t12 = circuit_add(in31, in32); + let t13 = circuit_sub(t12, in2); + let t14 = circuit_mul(t13, in126); + let t15 = circuit_add(in2, t14); + let t16 = circuit_mul(in126, in126); + let t17 = circuit_sub(in111, in2); + let t18 = circuit_mul(in0, t17); + let t19 = circuit_sub(in111, in2); + let t20 = circuit_mul(in3, t19); + let t21 = circuit_inverse(t20); + let t22 = circuit_mul(in31, t21); + let t23 = circuit_add(in2, t22); + let t24 = circuit_sub(in111, in0); + let t25 = circuit_mul(t18, t24); + let t26 = circuit_sub(in111, in0); + let t27 = circuit_mul(in4, t26); + let t28 = circuit_inverse(t27); + let t29 = circuit_mul(in32, t28); + let t30 = circuit_add(t23, t29); + let t31 = circuit_sub(in111, in11); + let t32 = circuit_mul(t25, t31); + let t33 = circuit_sub(in111, in11); + let t34 = circuit_mul(in5, t33); + let t35 = circuit_inverse(t34); + let t36 = circuit_mul(in33, t35); + let t37 = circuit_add(t30, t36); + let t38 = circuit_sub(in111, in12); + let t39 = circuit_mul(t32, t38); + let t40 = circuit_sub(in111, in12); + let t41 = circuit_mul(in6, t40); + let t42 = circuit_inverse(t41); + let t43 = circuit_mul(in34, t42); + let t44 = circuit_add(t37, t43); + let t45 = circuit_sub(in111, in13); + let t46 = circuit_mul(t39, t45); + let t47 = circuit_sub(in111, in13); + let t48 = circuit_mul(in7, t47); + let t49 = circuit_inverse(t48); + let t50 = circuit_mul(in35, t49); + let t51 = circuit_add(t44, t50); + let t52 = circuit_sub(in111, in14); + let t53 = circuit_mul(t46, t52); + let t54 = circuit_sub(in111, in14); + let t55 = circuit_mul(in8, t54); + let t56 = circuit_inverse(t55); + let t57 = circuit_mul(in36, t56); + let t58 = circuit_add(t51, t57); + let t59 = circuit_sub(in111, in15); + let t60 = circuit_mul(t53, t59); + let t61 = circuit_sub(in111, in15); + let t62 = circuit_mul(in9, t61); + let t63 = circuit_inverse(t62); + let t64 = circuit_mul(in37, t63); + let t65 = circuit_add(t58, t64); + let t66 = circuit_sub(in111, in16); + let t67 = circuit_mul(t60, t66); + let t68 = circuit_sub(in111, in16); + let t69 = circuit_mul(in10, t68); + let t70 = circuit_inverse(t69); + let t71 = circuit_mul(in38, t70); + let t72 = circuit_add(t65, t71); + let t73 = circuit_mul(t72, t67); + let t74 = circuit_sub(in116, in0); + let t75 = circuit_mul(in111, t74); + let t76 = circuit_add(in0, t75); + let t77 = circuit_mul(in0, t76); + let t78 = circuit_add(in39, in40); + let t79 = circuit_sub(t78, t73); + let t80 = circuit_mul(t79, t16); + let t81 = circuit_add(t15, t80); + let t82 = circuit_mul(t16, in126); + let t83 = circuit_sub(in112, in2); + let t84 = circuit_mul(in0, t83); + let t85 = circuit_sub(in112, in2); + let t86 = circuit_mul(in3, t85); + let t87 = circuit_inverse(t86); + let t88 = circuit_mul(in39, t87); + let t89 = circuit_add(in2, t88); + let t90 = circuit_sub(in112, in0); + let t91 = circuit_mul(t84, t90); + let t92 = circuit_sub(in112, in0); + let t93 = circuit_mul(in4, t92); + let t94 = circuit_inverse(t93); + let t95 = circuit_mul(in40, t94); + let t96 = circuit_add(t89, t95); + let t97 = circuit_sub(in112, in11); + let t98 = circuit_mul(t91, t97); + let t99 = circuit_sub(in112, in11); + let t100 = circuit_mul(in5, t99); + let t101 = circuit_inverse(t100); + let t102 = circuit_mul(in41, t101); + let t103 = circuit_add(t96, t102); + let t104 = circuit_sub(in112, in12); + let t105 = circuit_mul(t98, t104); + let t106 = circuit_sub(in112, in12); + let t107 = circuit_mul(in6, t106); + let t108 = circuit_inverse(t107); + let t109 = circuit_mul(in42, t108); + let t110 = circuit_add(t103, t109); + let t111 = circuit_sub(in112, in13); + let t112 = circuit_mul(t105, t111); + let t113 = circuit_sub(in112, in13); + let t114 = circuit_mul(in7, t113); + let t115 = circuit_inverse(t114); + let t116 = circuit_mul(in43, t115); + let t117 = circuit_add(t110, t116); + let t118 = circuit_sub(in112, in14); + let t119 = circuit_mul(t112, t118); + let t120 = circuit_sub(in112, in14); + let t121 = circuit_mul(in8, t120); + let t122 = circuit_inverse(t121); + let t123 = circuit_mul(in44, t122); + let t124 = circuit_add(t117, t123); + let t125 = circuit_sub(in112, in15); + let t126 = circuit_mul(t119, t125); + let t127 = circuit_sub(in112, in15); + let t128 = circuit_mul(in9, t127); + let t129 = circuit_inverse(t128); + let t130 = circuit_mul(in45, t129); + let t131 = circuit_add(t124, t130); + let t132 = circuit_sub(in112, in16); + let t133 = circuit_mul(t126, t132); + let t134 = circuit_sub(in112, in16); + let t135 = circuit_mul(in10, t134); + let t136 = circuit_inverse(t135); + let t137 = circuit_mul(in46, t136); + let t138 = circuit_add(t131, t137); + let t139 = circuit_mul(t138, t133); + let t140 = circuit_sub(in117, in0); + let t141 = circuit_mul(in112, t140); + let t142 = circuit_add(in0, t141); + let t143 = circuit_mul(t77, t142); + let t144 = circuit_add(in47, in48); + let t145 = circuit_sub(t144, t139); + let t146 = circuit_mul(t145, t82); + let t147 = circuit_add(t81, t146); + let t148 = circuit_mul(t82, in126); + let t149 = circuit_sub(in113, in2); + let t150 = circuit_mul(in0, t149); + let t151 = circuit_sub(in113, in2); + let t152 = circuit_mul(in3, t151); + let t153 = circuit_inverse(t152); + let t154 = circuit_mul(in47, t153); + let t155 = circuit_add(in2, t154); + let t156 = circuit_sub(in113, in0); + let t157 = circuit_mul(t150, t156); + let t158 = circuit_sub(in113, in0); + let t159 = circuit_mul(in4, t158); + let t160 = circuit_inverse(t159); + let t161 = circuit_mul(in48, t160); + let t162 = circuit_add(t155, t161); + let t163 = circuit_sub(in113, in11); + let t164 = circuit_mul(t157, t163); + let t165 = circuit_sub(in113, in11); + let t166 = circuit_mul(in5, t165); + let t167 = circuit_inverse(t166); + let t168 = circuit_mul(in49, t167); + let t169 = circuit_add(t162, t168); + let t170 = circuit_sub(in113, in12); + let t171 = circuit_mul(t164, t170); + let t172 = circuit_sub(in113, in12); + let t173 = circuit_mul(in6, t172); + let t174 = circuit_inverse(t173); + let t175 = circuit_mul(in50, t174); + let t176 = circuit_add(t169, t175); + let t177 = circuit_sub(in113, in13); + let t178 = circuit_mul(t171, t177); + let t179 = circuit_sub(in113, in13); + let t180 = circuit_mul(in7, t179); + let t181 = circuit_inverse(t180); + let t182 = circuit_mul(in51, t181); + let t183 = circuit_add(t176, t182); + let t184 = circuit_sub(in113, in14); + let t185 = circuit_mul(t178, t184); + let t186 = circuit_sub(in113, in14); + let t187 = circuit_mul(in8, t186); + let t188 = circuit_inverse(t187); + let t189 = circuit_mul(in52, t188); + let t190 = circuit_add(t183, t189); + let t191 = circuit_sub(in113, in15); + let t192 = circuit_mul(t185, t191); + let t193 = circuit_sub(in113, in15); + let t194 = circuit_mul(in9, t193); + let t195 = circuit_inverse(t194); + let t196 = circuit_mul(in53, t195); + let t197 = circuit_add(t190, t196); + let t198 = circuit_sub(in113, in16); + let t199 = circuit_mul(t192, t198); + let t200 = circuit_sub(in113, in16); + let t201 = circuit_mul(in10, t200); + let t202 = circuit_inverse(t201); + let t203 = circuit_mul(in54, t202); + let t204 = circuit_add(t197, t203); + let t205 = circuit_mul(t204, t199); + let t206 = circuit_sub(in118, in0); + let t207 = circuit_mul(in113, t206); + let t208 = circuit_add(in0, t207); + let t209 = circuit_mul(t143, t208); + let t210 = circuit_add(in55, in56); + let t211 = circuit_sub(t210, t205); + let t212 = circuit_mul(t211, t148); + let t213 = circuit_add(t147, t212); + let t214 = circuit_mul(t148, in126); + let t215 = circuit_sub(in114, in2); + let t216 = circuit_mul(in0, t215); + let t217 = circuit_sub(in114, in2); + let t218 = circuit_mul(in3, t217); + let t219 = circuit_inverse(t218); + let t220 = circuit_mul(in55, t219); + let t221 = circuit_add(in2, t220); + let t222 = circuit_sub(in114, in0); + let t223 = circuit_mul(t216, t222); + let t224 = circuit_sub(in114, in0); + let t225 = circuit_mul(in4, t224); + let t226 = circuit_inverse(t225); + let t227 = circuit_mul(in56, t226); + let t228 = circuit_add(t221, t227); + let t229 = circuit_sub(in114, in11); + let t230 = circuit_mul(t223, t229); + let t231 = circuit_sub(in114, in11); + let t232 = circuit_mul(in5, t231); + let t233 = circuit_inverse(t232); + let t234 = circuit_mul(in57, t233); + let t235 = circuit_add(t228, t234); + let t236 = circuit_sub(in114, in12); + let t237 = circuit_mul(t230, t236); + let t238 = circuit_sub(in114, in12); + let t239 = circuit_mul(in6, t238); + let t240 = circuit_inverse(t239); + let t241 = circuit_mul(in58, t240); + let t242 = circuit_add(t235, t241); + let t243 = circuit_sub(in114, in13); + let t244 = circuit_mul(t237, t243); + let t245 = circuit_sub(in114, in13); + let t246 = circuit_mul(in7, t245); + let t247 = circuit_inverse(t246); + let t248 = circuit_mul(in59, t247); + let t249 = circuit_add(t242, t248); + let t250 = circuit_sub(in114, in14); + let t251 = circuit_mul(t244, t250); + let t252 = circuit_sub(in114, in14); + let t253 = circuit_mul(in8, t252); + let t254 = circuit_inverse(t253); + let t255 = circuit_mul(in60, t254); + let t256 = circuit_add(t249, t255); + let t257 = circuit_sub(in114, in15); + let t258 = circuit_mul(t251, t257); + let t259 = circuit_sub(in114, in15); + let t260 = circuit_mul(in9, t259); + let t261 = circuit_inverse(t260); + let t262 = circuit_mul(in61, t261); + let t263 = circuit_add(t256, t262); + let t264 = circuit_sub(in114, in16); + let t265 = circuit_mul(t258, t264); + let t266 = circuit_sub(in114, in16); + let t267 = circuit_mul(in10, t266); + let t268 = circuit_inverse(t267); + let t269 = circuit_mul(in62, t268); + let t270 = circuit_add(t263, t269); + let t271 = circuit_mul(t270, t265); + let t272 = circuit_sub(in119, in0); + let t273 = circuit_mul(in114, t272); + let t274 = circuit_add(in0, t273); + let t275 = circuit_mul(t209, t274); + let t276 = circuit_add(in63, in64); + let t277 = circuit_sub(t276, t271); + let t278 = circuit_mul(t277, t214); + let t279 = circuit_add(t213, t278); + let t280 = circuit_sub(in115, in2); + let t281 = circuit_mul(in0, t280); + let t282 = circuit_sub(in115, in2); + let t283 = circuit_mul(in3, t282); + let t284 = circuit_inverse(t283); + let t285 = circuit_mul(in63, t284); + let t286 = circuit_add(in2, t285); + let t287 = circuit_sub(in115, in0); + let t288 = circuit_mul(t281, t287); + let t289 = circuit_sub(in115, in0); + let t290 = circuit_mul(in4, t289); + let t291 = circuit_inverse(t290); + let t292 = circuit_mul(in64, t291); + let t293 = circuit_add(t286, t292); + let t294 = circuit_sub(in115, in11); + let t295 = circuit_mul(t288, t294); + let t296 = circuit_sub(in115, in11); + let t297 = circuit_mul(in5, t296); + let t298 = circuit_inverse(t297); + let t299 = circuit_mul(in65, t298); + let t300 = circuit_add(t293, t299); + let t301 = circuit_sub(in115, in12); + let t302 = circuit_mul(t295, t301); + let t303 = circuit_sub(in115, in12); + let t304 = circuit_mul(in6, t303); + let t305 = circuit_inverse(t304); + let t306 = circuit_mul(in66, t305); + let t307 = circuit_add(t300, t306); + let t308 = circuit_sub(in115, in13); + let t309 = circuit_mul(t302, t308); + let t310 = circuit_sub(in115, in13); + let t311 = circuit_mul(in7, t310); + let t312 = circuit_inverse(t311); + let t313 = circuit_mul(in67, t312); + let t314 = circuit_add(t307, t313); + let t315 = circuit_sub(in115, in14); + let t316 = circuit_mul(t309, t315); + let t317 = circuit_sub(in115, in14); + let t318 = circuit_mul(in8, t317); + let t319 = circuit_inverse(t318); + let t320 = circuit_mul(in68, t319); + let t321 = circuit_add(t314, t320); + let t322 = circuit_sub(in115, in15); + let t323 = circuit_mul(t316, t322); + let t324 = circuit_sub(in115, in15); + let t325 = circuit_mul(in9, t324); + let t326 = circuit_inverse(t325); + let t327 = circuit_mul(in69, t326); + let t328 = circuit_add(t321, t327); + let t329 = circuit_sub(in115, in16); + let t330 = circuit_mul(t323, t329); + let t331 = circuit_sub(in115, in16); + let t332 = circuit_mul(in10, t331); + let t333 = circuit_inverse(t332); + let t334 = circuit_mul(in70, t333); + let t335 = circuit_add(t328, t334); + let t336 = circuit_mul(t335, t330); + let t337 = circuit_sub(in120, in0); + let t338 = circuit_mul(in115, t337); + let t339 = circuit_add(in0, t338); + let t340 = circuit_mul(t275, t339); + let t341 = circuit_sub(in77, in12); + let t342 = circuit_mul(t341, in71); + let t343 = circuit_mul(t342, in99); + let t344 = circuit_mul(t343, in98); + let t345 = circuit_mul(t344, in17); + let t346 = circuit_mul(in73, in98); + let t347 = circuit_mul(in74, in99); + let t348 = circuit_mul(in75, in100); + let t349 = circuit_mul(in76, in101); + let t350 = circuit_add(t345, t346); + let t351 = circuit_add(t350, t347); + let t352 = circuit_add(t351, t348); + let t353 = circuit_add(t352, t349); + let t354 = circuit_add(t353, in72); + let t355 = circuit_sub(in77, in0); + let t356 = circuit_mul(t355, in109); + let t357 = circuit_add(t354, t356); + let t358 = circuit_mul(t357, in77); + let t359 = circuit_mul(t358, t340); + let t360 = circuit_add(in98, in101); + let t361 = circuit_add(t360, in71); + let t362 = circuit_sub(t361, in106); + let t363 = circuit_sub(in77, in11); + let t364 = circuit_mul(t362, t363); + let t365 = circuit_sub(in77, in0); + let t366 = circuit_mul(t364, t365); + let t367 = circuit_mul(t366, in77); + let t368 = circuit_mul(t367, t340); + let t369 = circuit_mul(in88, in124); + let t370 = circuit_add(in98, t369); + let t371 = circuit_add(t370, in125); + let t372 = circuit_mul(in89, in124); + let t373 = circuit_add(in99, t372); + let t374 = circuit_add(t373, in125); + let t375 = circuit_mul(t371, t374); + let t376 = circuit_mul(in90, in124); + let t377 = circuit_add(in100, t376); + let t378 = circuit_add(t377, in125); + let t379 = circuit_mul(t375, t378); + let t380 = circuit_mul(in91, in124); + let t381 = circuit_add(in101, t380); + let t382 = circuit_add(t381, in125); + let t383 = circuit_mul(t379, t382); + let t384 = circuit_mul(in84, in124); + let t385 = circuit_add(in98, t384); + let t386 = circuit_add(t385, in125); + let t387 = circuit_mul(in85, in124); + let t388 = circuit_add(in99, t387); + let t389 = circuit_add(t388, in125); + let t390 = circuit_mul(t386, t389); + let t391 = circuit_mul(in86, in124); + let t392 = circuit_add(in100, t391); + let t393 = circuit_add(t392, in125); + let t394 = circuit_mul(t390, t393); + let t395 = circuit_mul(in87, in124); + let t396 = circuit_add(in101, t395); + let t397 = circuit_add(t396, in125); + let t398 = circuit_mul(t394, t397); + let t399 = circuit_add(in102, in96); + let t400 = circuit_mul(t383, t399); + let t401 = circuit_mul(in97, t11); + let t402 = circuit_add(in110, t401); + let t403 = circuit_mul(t398, t402); + let t404 = circuit_sub(t400, t403); + let t405 = circuit_mul(t404, t340); + let t406 = circuit_mul(in97, in110); + let t407 = circuit_mul(t406, t340); + let t408 = circuit_mul(in93, in121); + let t409 = circuit_mul(in94, in122); + let t410 = circuit_mul(in95, in123); + let t411 = circuit_add(in92, in125); + let t412 = circuit_add(t411, t408); + let t413 = circuit_add(t412, t409); + let t414 = circuit_add(t413, t410); + let t415 = circuit_mul(in74, in106); + let t416 = circuit_add(in98, in125); + let t417 = circuit_add(t416, t415); + let t418 = circuit_mul(in71, in107); + let t419 = circuit_add(in99, t418); + let t420 = circuit_mul(in72, in108); + let t421 = circuit_add(in100, t420); + let t422 = circuit_mul(t419, in121); + let t423 = circuit_mul(t421, in122); + let t424 = circuit_mul(in75, in123); + let t425 = circuit_add(t417, t422); + let t426 = circuit_add(t425, t423); + let t427 = circuit_add(t426, t424); + let t428 = circuit_mul(in103, t414); + let t429 = circuit_mul(in103, t427); + let t430 = circuit_add(in105, in81); + let t431 = circuit_mul(in105, in81); + let t432 = circuit_sub(t430, t431); + let t433 = circuit_mul(t427, t414); + let t434 = circuit_mul(t433, in103); + let t435 = circuit_sub(t434, t432); + let t436 = circuit_mul(t435, t340); + let t437 = circuit_mul(in81, t428); + let t438 = circuit_mul(in104, t429); + let t439 = circuit_sub(t437, t438); + let t440 = circuit_sub(in99, in98); + let t441 = circuit_sub(in100, in99); + let t442 = circuit_sub(in101, in100); + let t443 = circuit_sub(in106, in101); + let t444 = circuit_add(t440, in18); + let t445 = circuit_add(t440, in19); + let t446 = circuit_add(t440, in20); + let t447 = circuit_mul(t440, t444); + let t448 = circuit_mul(t447, t445); + let t449 = circuit_mul(t448, t446); + let t450 = circuit_mul(t449, in78); + let t451 = circuit_mul(t450, t340); + let t452 = circuit_add(t441, in18); + let t453 = circuit_add(t441, in19); + let t454 = circuit_add(t441, in20); + let t455 = circuit_mul(t441, t452); + let t456 = circuit_mul(t455, t453); + let t457 = circuit_mul(t456, t454); + let t458 = circuit_mul(t457, in78); + let t459 = circuit_mul(t458, t340); + let t460 = circuit_add(t442, in18); + let t461 = circuit_add(t442, in19); + let t462 = circuit_add(t442, in20); + let t463 = circuit_mul(t442, t460); + let t464 = circuit_mul(t463, t461); + let t465 = circuit_mul(t464, t462); + let t466 = circuit_mul(t465, in78); + let t467 = circuit_mul(t466, t340); + let t468 = circuit_add(t443, in18); + let t469 = circuit_add(t443, in19); + let t470 = circuit_add(t443, in20); + let t471 = circuit_mul(t443, t468); + let t472 = circuit_mul(t471, t469); + let t473 = circuit_mul(t472, t470); + let t474 = circuit_mul(t473, in78); + let t475 = circuit_mul(t474, t340); + let t476 = circuit_sub(in106, in99); + let t477 = circuit_mul(in100, in100); + let t478 = circuit_mul(in109, in109); + let t479 = circuit_mul(in100, in109); + let t480 = circuit_mul(t479, in73); + let t481 = circuit_add(in107, in106); + let t482 = circuit_add(t481, in99); + let t483 = circuit_mul(t482, t476); + let t484 = circuit_mul(t483, t476); + let t485 = circuit_sub(t484, t478); + let t486 = circuit_sub(t485, t477); + let t487 = circuit_add(t486, t480); + let t488 = circuit_add(t487, t480); + let t489 = circuit_sub(in0, in71); + let t490 = circuit_mul(t488, t340); + let t491 = circuit_mul(t490, in79); + let t492 = circuit_mul(t491, t489); + let t493 = circuit_add(in100, in108); + let t494 = circuit_mul(in109, in73); + let t495 = circuit_sub(t494, in100); + let t496 = circuit_mul(t493, t476); + let t497 = circuit_sub(in107, in99); + let t498 = circuit_mul(t497, t495); + let t499 = circuit_add(t496, t498); + let t500 = circuit_mul(t499, t340); + let t501 = circuit_mul(t500, in79); + let t502 = circuit_mul(t501, t489); + let t503 = circuit_add(t477, in21); + let t504 = circuit_mul(t503, in99); + let t505 = circuit_add(t477, t477); + let t506 = circuit_add(t505, t505); + let t507 = circuit_mul(t504, in22); + let t508 = circuit_add(in107, in99); + let t509 = circuit_add(t508, in99); + let t510 = circuit_mul(t509, t506); + let t511 = circuit_sub(t510, t507); + let t512 = circuit_mul(t511, t340); + let t513 = circuit_mul(t512, in79); + let t514 = circuit_mul(t513, in71); + let t515 = circuit_add(t492, t514); + let t516 = circuit_add(in99, in99); + let t517 = circuit_add(t516, in99); + let t518 = circuit_mul(t517, in99); + let t519 = circuit_sub(in99, in107); + let t520 = circuit_mul(t518, t519); + let t521 = circuit_add(in100, in100); + let t522 = circuit_add(in100, in108); + let t523 = circuit_mul(t521, t522); + let t524 = circuit_sub(t520, t523); + let t525 = circuit_mul(t524, t340); + let t526 = circuit_mul(t525, in79); + let t527 = circuit_mul(t526, in71); + let t528 = circuit_add(t502, t527); + let t529 = circuit_mul(in98, in107); + let t530 = circuit_mul(in106, in99); + let t531 = circuit_add(t529, t530); + let t532 = circuit_mul(in98, in101); + let t533 = circuit_mul(in99, in100); + let t534 = circuit_add(t532, t533); + let t535 = circuit_sub(t534, in108); + let t536 = circuit_mul(t535, in23); + let t537 = circuit_sub(t536, in109); + let t538 = circuit_add(t537, t531); + let t539 = circuit_mul(t538, in76); + let t540 = circuit_mul(t531, in23); + let t541 = circuit_mul(in106, in107); + let t542 = circuit_add(t540, t541); + let t543 = circuit_add(in100, in101); + let t544 = circuit_sub(t542, t543); + let t545 = circuit_mul(t544, in75); + let t546 = circuit_add(t542, in101); + let t547 = circuit_add(in108, in109); + let t548 = circuit_sub(t546, t547); + let t549 = circuit_mul(t548, in71); + let t550 = circuit_add(t545, t539); + let t551 = circuit_add(t550, t549); + let t552 = circuit_mul(t551, in74); + let t553 = circuit_mul(in107, in24); + let t554 = circuit_add(t553, in106); + let t555 = circuit_mul(t554, in24); + let t556 = circuit_add(t555, in100); + let t557 = circuit_mul(t556, in24); + let t558 = circuit_add(t557, in99); + let t559 = circuit_mul(t558, in24); + let t560 = circuit_add(t559, in98); + let t561 = circuit_sub(t560, in101); + let t562 = circuit_mul(t561, in76); + let t563 = circuit_mul(in108, in24); + let t564 = circuit_add(t563, in107); + let t565 = circuit_mul(t564, in24); + let t566 = circuit_add(t565, in106); + let t567 = circuit_mul(t566, in24); + let t568 = circuit_add(t567, in101); + let t569 = circuit_mul(t568, in24); + let t570 = circuit_add(t569, in100); + let t571 = circuit_sub(t570, in109); + let t572 = circuit_mul(t571, in71); + let t573 = circuit_add(t562, t572); + let t574 = circuit_mul(t573, in75); + let t575 = circuit_mul(in100, in123); + let t576 = circuit_mul(in99, in122); + let t577 = circuit_mul(in98, in121); + let t578 = circuit_add(t575, t576); + let t579 = circuit_add(t578, t577); + let t580 = circuit_add(t579, in72); + let t581 = circuit_sub(t580, in101); + let t582 = circuit_sub(in106, in98); + let t583 = circuit_sub(in109, in101); + let t584 = circuit_mul(t582, t582); + let t585 = circuit_sub(t584, t582); + let t586 = circuit_sub(in2, t582); + let t587 = circuit_add(t586, in0); + let t588 = circuit_mul(t587, t583); + let t589 = circuit_mul(in73, in74); + let t590 = circuit_mul(t589, in80); + let t591 = circuit_mul(t590, t340); + let t592 = circuit_mul(t588, t591); + let t593 = circuit_mul(t585, t591); + let t594 = circuit_mul(t581, t589); + let t595 = circuit_sub(in101, t580); + let t596 = circuit_mul(t595, t595); + let t597 = circuit_sub(t596, t595); + let t598 = circuit_mul(in108, in123); + let t599 = circuit_mul(in107, in122); + let t600 = circuit_mul(in106, in121); + let t601 = circuit_add(t598, t599); + let t602 = circuit_add(t601, t600); + let t603 = circuit_sub(in109, t602); + let t604 = circuit_sub(in108, in100); + let t605 = circuit_sub(in2, t582); + let t606 = circuit_add(t605, in0); + let t607 = circuit_sub(in2, t603); + let t608 = circuit_add(t607, in0); + let t609 = circuit_mul(t604, t608); + let t610 = circuit_mul(t606, t609); + let t611 = circuit_mul(t603, t603); + let t612 = circuit_sub(t611, t603); + let t613 = circuit_mul(in77, in80); + let t614 = circuit_mul(t613, t340); + let t615 = circuit_mul(t610, t614); + let t616 = circuit_mul(t585, t614); + let t617 = circuit_mul(t612, t614); + let t618 = circuit_mul(t597, in77); + let t619 = circuit_sub(in107, in99); + let t620 = circuit_sub(in2, t582); + let t621 = circuit_add(t620, in0); + let t622 = circuit_mul(t621, t619); + let t623 = circuit_sub(t622, in100); + let t624 = circuit_mul(t623, in76); + let t625 = circuit_mul(t624, in73); + let t626 = circuit_add(t594, t625); + let t627 = circuit_mul(t581, in71); + let t628 = circuit_mul(t627, in73); + let t629 = circuit_add(t626, t628); + let t630 = circuit_add(t629, t618); + let t631 = circuit_add(t630, t552); + let t632 = circuit_add(t631, t574); + let t633 = circuit_mul(t632, in80); + let t634 = circuit_mul(t633, t340); + let t635 = circuit_add(in98, in73); + let t636 = circuit_add(in99, in74); + let t637 = circuit_add(in100, in75); + let t638 = circuit_add(in101, in76); + let t639 = circuit_mul(t635, t635); + let t640 = circuit_mul(t639, t639); + let t641 = circuit_mul(t640, t635); + let t642 = circuit_mul(t636, t636); + let t643 = circuit_mul(t642, t642); + let t644 = circuit_mul(t643, t636); + let t645 = circuit_mul(t637, t637); + let t646 = circuit_mul(t645, t645); + let t647 = circuit_mul(t646, t637); + let t648 = circuit_mul(t638, t638); + let t649 = circuit_mul(t648, t648); + let t650 = circuit_mul(t649, t638); + let t651 = circuit_add(t641, t644); + let t652 = circuit_add(t647, t650); + let t653 = circuit_add(t644, t644); + let t654 = circuit_add(t653, t652); + let t655 = circuit_add(t650, t650); + let t656 = circuit_add(t655, t651); + let t657 = circuit_add(t652, t652); + let t658 = circuit_add(t657, t657); + let t659 = circuit_add(t658, t656); + let t660 = circuit_add(t651, t651); + let t661 = circuit_add(t660, t660); + let t662 = circuit_add(t661, t654); + let t663 = circuit_add(t656, t662); + let t664 = circuit_add(t654, t659); + let t665 = circuit_mul(in82, t340); + let t666 = circuit_sub(t663, in106); + let t667 = circuit_mul(t665, t666); + let t668 = circuit_sub(t662, in107); + let t669 = circuit_mul(t665, t668); + let t670 = circuit_sub(t664, in108); + let t671 = circuit_mul(t665, t670); + let t672 = circuit_sub(t659, in109); + let t673 = circuit_mul(t665, t672); + let t674 = circuit_add(in98, in73); + let t675 = circuit_mul(t674, t674); + let t676 = circuit_mul(t675, t675); + let t677 = circuit_mul(t676, t674); + let t678 = circuit_add(t677, in99); + let t679 = circuit_add(t678, in100); + let t680 = circuit_add(t679, in101); + let t681 = circuit_mul(in83, t340); + let t682 = circuit_mul(t677, in25); + let t683 = circuit_add(t682, t680); + let t684 = circuit_sub(t683, in106); + let t685 = circuit_mul(t681, t684); + let t686 = circuit_mul(in99, in26); + let t687 = circuit_add(t686, t680); + let t688 = circuit_sub(t687, in107); + let t689 = circuit_mul(t681, t688); + let t690 = circuit_mul(in100, in27); + let t691 = circuit_add(t690, t680); + let t692 = circuit_sub(t691, in108); + let t693 = circuit_mul(t681, t692); + let t694 = circuit_mul(in101, in28); + let t695 = circuit_add(t694, t680); + let t696 = circuit_sub(t695, in109); + let t697 = circuit_mul(t681, t696); + let t698 = circuit_mul(t368, in127); + let t699 = circuit_add(t359, t698); + let t700 = circuit_mul(t405, in128); + let t701 = circuit_add(t699, t700); + let t702 = circuit_mul(t407, in129); + let t703 = circuit_add(t701, t702); + let t704 = circuit_mul(t436, in130); + let t705 = circuit_add(t703, t704); + let t706 = circuit_mul(t439, in131); + let t707 = circuit_add(t705, t706); + let t708 = circuit_mul(t451, in132); + let t709 = circuit_add(t707, t708); + let t710 = circuit_mul(t459, in133); + let t711 = circuit_add(t709, t710); + let t712 = circuit_mul(t467, in134); + let t713 = circuit_add(t711, t712); + let t714 = circuit_mul(t475, in135); + let t715 = circuit_add(t713, t714); + let t716 = circuit_mul(t515, in136); + let t717 = circuit_add(t715, t716); + let t718 = circuit_mul(t528, in137); + let t719 = circuit_add(t717, t718); + let t720 = circuit_mul(t634, in138); + let t721 = circuit_add(t719, t720); + let t722 = circuit_mul(t592, in139); + let t723 = circuit_add(t721, t722); + let t724 = circuit_mul(t593, in140); + let t725 = circuit_add(t723, t724); + let t726 = circuit_mul(t615, in141); + let t727 = circuit_add(t725, t726); + let t728 = circuit_mul(t616, in142); + let t729 = circuit_add(t727, t728); + let t730 = circuit_mul(t617, in143); + let t731 = circuit_add(t729, t730); + let t732 = circuit_mul(t667, in144); + let t733 = circuit_add(t731, t732); + let t734 = circuit_mul(t669, in145); + let t735 = circuit_add(t733, t734); + let t736 = circuit_mul(t671, in146); + let t737 = circuit_add(t735, t736); + let t738 = circuit_mul(t673, in147); + let t739 = circuit_add(t737, t738); + let t740 = circuit_mul(t685, in148); + let t741 = circuit_add(t739, t740); + let t742 = circuit_mul(t689, in149); + let t743 = circuit_add(t741, t742); + let t744 = circuit_mul(t693, in150); + let t745 = circuit_add(t743, t744); + let t746 = circuit_mul(t697, in151); + let t747 = circuit_add(t745, t746); + let t748 = circuit_sub(t747, t336); + + let modulus = get_GRUMPKIN_modulus(); // GRUMPKIN prime field modulus + + let mut circuit_inputs = (t279, t748).new_inputs(); + // Prefill constants: + + circuit_inputs = circuit_inputs + .next_span(HONK_SUMCHECK_SIZE_5_PUB_1_GRUMPKIN_CONSTANTS.span()); // in0 - in28 + + // Fill inputs: + + let mut p_public_inputs = p_public_inputs; + while let Option::Some(val) = p_public_inputs.pop_front() { + circuit_inputs = circuit_inputs.next_u256(*val); + }; // in29 - in29 + + circuit_inputs = circuit_inputs.next_2(p_public_inputs_offset); // in30 + + let mut sumcheck_univariates_flat = sumcheck_univariates_flat; + while let Option::Some(val) = sumcheck_univariates_flat.pop_front() { + circuit_inputs = circuit_inputs.next_u256(*val); + }; // in31 - in70 + + let mut sumcheck_evaluations = sumcheck_evaluations; + while let Option::Some(val) = sumcheck_evaluations.pop_front() { + circuit_inputs = circuit_inputs.next_u256(*val); + }; // in71 - in110 + + let mut tp_sum_check_u_challenges = tp_sum_check_u_challenges; + while let Option::Some(val) = tp_sum_check_u_challenges.pop_front() { + circuit_inputs = circuit_inputs.next_u128(*val); + }; // in111 - in115 + + let mut tp_gate_challenges = tp_gate_challenges; + while let Option::Some(val) = tp_gate_challenges.pop_front() { + circuit_inputs = circuit_inputs.next_u128(*val); + }; // in116 - in120 + + circuit_inputs = circuit_inputs.next_2(tp_eta_1); // in121 + circuit_inputs = circuit_inputs.next_2(tp_eta_2); // in122 + circuit_inputs = circuit_inputs.next_2(tp_eta_3); // in123 + circuit_inputs = circuit_inputs.next_2(tp_beta); // in124 + circuit_inputs = circuit_inputs.next_2(tp_gamma); // in125 + circuit_inputs = circuit_inputs.next_2(tp_base_rlc); // in126 + + let mut tp_alphas = tp_alphas; + while let Option::Some(val) = tp_alphas.pop_front() { + circuit_inputs = circuit_inputs.next_u128(*val); + }; // in127 - in151 + + let outputs = circuit_inputs.done_2().eval(modulus).unwrap(); + let check_rlc: u384 = outputs.get_output(t279); + let check: u384 = outputs.get_output(t748); + return (check_rlc, check); +} +const HONK_SUMCHECK_SIZE_5_PUB_1_GRUMPKIN_CONSTANTS: [u384; 29] = [ + u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x20, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { + limb0: 0x79b9709143e1f593efffec51, + limb1: 0xb85045b68181585d2833e848, + limb2: 0x30644e72e131a029, + limb3: 0x0, + }, + u384 { limb0: 0x2d0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { + limb0: 0x79b9709143e1f593efffff11, + limb1: 0xb85045b68181585d2833e848, + limb2: 0x30644e72e131a029, + limb3: 0x0, + }, + u384 { limb0: 0x90, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { + limb0: 0x79b9709143e1f593efffff71, + limb1: 0xb85045b68181585d2833e848, + limb2: 0x30644e72e131a029, + limb3: 0x0, + }, + u384 { limb0: 0xf0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { + limb0: 0x79b9709143e1f593effffd31, + limb1: 0xb85045b68181585d2833e848, + limb2: 0x30644e72e131a029, + limb3: 0x0, + }, + u384 { limb0: 0x13b0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x2, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x3, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x4, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x5, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x6, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x7, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { + limb0: 0x3cdcb848a1f0fac9f8000000, + limb1: 0xdc2822db40c0ac2e9419f424, + limb2: 0x183227397098d014, + limb3: 0x0, + }, + u384 { + limb0: 0x79b9709143e1f593f0000000, + limb1: 0xb85045b68181585d2833e848, + limb2: 0x30644e72e131a029, + limb3: 0x0, + }, + u384 { + limb0: 0x79b9709143e1f593efffffff, + limb1: 0xb85045b68181585d2833e848, + limb2: 0x30644e72e131a029, + limb3: 0x0, + }, + u384 { + limb0: 0x79b9709143e1f593effffffe, + limb1: 0xb85045b68181585d2833e848, + limb2: 0x30644e72e131a029, + limb3: 0x0, + }, + u384 { limb0: 0x11, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x9, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x100000000000000000, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x4000, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { + limb0: 0x29ca1d7fb56821fd19d3b6e7, + limb1: 0x4b1e03b4bd9490c0d03f989, + limb2: 0x10dc6e9c006ea38b, + limb3: 0x0, + }, + u384 { + limb0: 0xd4dd9b84a86b38cfb45a740b, + limb1: 0x149b3d0a30b3bb599df9756, + limb2: 0xc28145b6a44df3e, + limb3: 0x0, + }, + u384 { + limb0: 0x60e3596170067d00141cac15, + limb1: 0xb2c7645a50392798b21f75bb, + limb2: 0x544b8338791518, + limb3: 0x0, + }, + u384 { + limb0: 0xb8fa852613bc534433ee428b, + limb1: 0x2e2e82eb122789e352e105a3, + limb2: 0x222c01175718386f, + limb3: 0x0, + }, +]; +#[inline(always)] +pub fn run_GRUMPKIN_HONK_PREP_MSM_SCALARS_SIZE_5_circuit( + p_sumcheck_evaluations: Span, + p_gemini_a_evaluations: Span, + tp_gemini_r: u384, + tp_rho: u384, + tp_shplonk_z: u384, + tp_shplonk_nu: u384, + tp_sum_check_u_challenges: Span, +) -> ( + u384, + u384, + u384, + u384, + u384, + u384, + u384, + u384, + u384, + u384, + u384, + u384, + u384, + u384, + u384, + u384, + u384, + u384, + u384, + u384, + u384, + u384, + u384, + u384, + u384, + u384, + u384, + u384, + u384, + u384, + u384, + u384, + u384, + u384, + u384, + u384, + u384, + u384, + u384, + u384, + u384, + u384, +) { + // CONSTANT stack + let in0 = CE::> {}; // 0x0 + let in1 = CE::> {}; // 0x1 + + // INPUT stack + let (in2, in3, in4) = (CE::> {}, CE::> {}, CE::> {}); + let (in5, in6, in7) = (CE::> {}, CE::> {}, CE::> {}); + let (in8, in9, in10) = (CE::> {}, CE::> {}, CE::> {}); + let (in11, in12, in13) = (CE::> {}, CE::> {}, CE::> {}); + let (in14, in15, in16) = (CE::> {}, CE::> {}, CE::> {}); + let (in17, in18, in19) = (CE::> {}, CE::> {}, CE::> {}); + let (in20, in21, in22) = (CE::> {}, CE::> {}, CE::> {}); + let (in23, in24, in25) = (CE::> {}, CE::> {}, CE::> {}); + let (in26, in27, in28) = (CE::> {}, CE::> {}, CE::> {}); + let (in29, in30, in31) = (CE::> {}, CE::> {}, CE::> {}); + let (in32, in33, in34) = (CE::> {}, CE::> {}, CE::> {}); + let (in35, in36, in37) = (CE::> {}, CE::> {}, CE::> {}); + let (in38, in39, in40) = (CE::> {}, CE::> {}, CE::> {}); + let (in41, in42, in43) = (CE::> {}, CE::> {}, CE::> {}); + let (in44, in45, in46) = (CE::> {}, CE::> {}, CE::> {}); + let (in47, in48, in49) = (CE::> {}, CE::> {}, CE::> {}); + let (in50, in51, in52) = (CE::> {}, CE::> {}, CE::> {}); + let (in53, in54, in55) = (CE::> {}, CE::> {}, CE::> {}); + let (in56, in57, in58) = (CE::> {}, CE::> {}, CE::> {}); + let in59 = CE::> {}; + let t0 = circuit_mul(in51, in51); + let t1 = circuit_mul(t0, t0); + let t2 = circuit_mul(t1, t1); + let t3 = circuit_mul(t2, t2); + let t4 = circuit_sub(in53, in51); + let t5 = circuit_inverse(t4); + let t6 = circuit_add(in53, in51); + let t7 = circuit_inverse(t6); + let t8 = circuit_add(in53, t0); + let t9 = circuit_inverse(t8); + let t10 = circuit_add(in53, t1); + let t11 = circuit_inverse(t10); + let t12 = circuit_add(in53, t2); + let t13 = circuit_inverse(t12); + let t14 = circuit_add(in53, t3); + let t15 = circuit_inverse(t14); + let t16 = circuit_mul(in54, t7); + let t17 = circuit_add(t5, t16); + let t18 = circuit_sub(in0, t17); + let t19 = circuit_inverse(in51); + let t20 = circuit_mul(in54, t7); + let t21 = circuit_sub(t5, t20); + let t22 = circuit_mul(t19, t21); + let t23 = circuit_sub(in0, t22); + let t24 = circuit_mul(t18, in1); + let t25 = circuit_mul(in2, in1); + let t26 = circuit_add(in0, t25); + let t27 = circuit_mul(in1, in52); + let t28 = circuit_mul(t18, t27); + let t29 = circuit_mul(in3, t27); + let t30 = circuit_add(t26, t29); + let t31 = circuit_mul(t27, in52); + let t32 = circuit_mul(t18, t31); + let t33 = circuit_mul(in4, t31); + let t34 = circuit_add(t30, t33); + let t35 = circuit_mul(t31, in52); + let t36 = circuit_mul(t18, t35); + let t37 = circuit_mul(in5, t35); + let t38 = circuit_add(t34, t37); + let t39 = circuit_mul(t35, in52); + let t40 = circuit_mul(t18, t39); + let t41 = circuit_mul(in6, t39); + let t42 = circuit_add(t38, t41); + let t43 = circuit_mul(t39, in52); + let t44 = circuit_mul(t18, t43); + let t45 = circuit_mul(in7, t43); + let t46 = circuit_add(t42, t45); + let t47 = circuit_mul(t43, in52); + let t48 = circuit_mul(t18, t47); + let t49 = circuit_mul(in8, t47); + let t50 = circuit_add(t46, t49); + let t51 = circuit_mul(t47, in52); + let t52 = circuit_mul(t18, t51); + let t53 = circuit_mul(in9, t51); + let t54 = circuit_add(t50, t53); + let t55 = circuit_mul(t51, in52); + let t56 = circuit_mul(t18, t55); + let t57 = circuit_mul(in10, t55); + let t58 = circuit_add(t54, t57); + let t59 = circuit_mul(t55, in52); + let t60 = circuit_mul(t18, t59); + let t61 = circuit_mul(in11, t59); + let t62 = circuit_add(t58, t61); + let t63 = circuit_mul(t59, in52); + let t64 = circuit_mul(t18, t63); + let t65 = circuit_mul(in12, t63); + let t66 = circuit_add(t62, t65); + let t67 = circuit_mul(t63, in52); + let t68 = circuit_mul(t18, t67); + let t69 = circuit_mul(in13, t67); + let t70 = circuit_add(t66, t69); + let t71 = circuit_mul(t67, in52); + let t72 = circuit_mul(t18, t71); + let t73 = circuit_mul(in14, t71); + let t74 = circuit_add(t70, t73); + let t75 = circuit_mul(t71, in52); + let t76 = circuit_mul(t18, t75); + let t77 = circuit_mul(in15, t75); + let t78 = circuit_add(t74, t77); + let t79 = circuit_mul(t75, in52); + let t80 = circuit_mul(t18, t79); + let t81 = circuit_mul(in16, t79); + let t82 = circuit_add(t78, t81); + let t83 = circuit_mul(t79, in52); + let t84 = circuit_mul(t18, t83); + let t85 = circuit_mul(in17, t83); + let t86 = circuit_add(t82, t85); + let t87 = circuit_mul(t83, in52); + let t88 = circuit_mul(t18, t87); + let t89 = circuit_mul(in18, t87); + let t90 = circuit_add(t86, t89); + let t91 = circuit_mul(t87, in52); + let t92 = circuit_mul(t18, t91); + let t93 = circuit_mul(in19, t91); + let t94 = circuit_add(t90, t93); + let t95 = circuit_mul(t91, in52); + let t96 = circuit_mul(t18, t95); + let t97 = circuit_mul(in20, t95); + let t98 = circuit_add(t94, t97); + let t99 = circuit_mul(t95, in52); + let t100 = circuit_mul(t18, t99); + let t101 = circuit_mul(in21, t99); + let t102 = circuit_add(t98, t101); + let t103 = circuit_mul(t99, in52); + let t104 = circuit_mul(t18, t103); + let t105 = circuit_mul(in22, t103); + let t106 = circuit_add(t102, t105); + let t107 = circuit_mul(t103, in52); + let t108 = circuit_mul(t18, t107); + let t109 = circuit_mul(in23, t107); + let t110 = circuit_add(t106, t109); + let t111 = circuit_mul(t107, in52); + let t112 = circuit_mul(t18, t111); + let t113 = circuit_mul(in24, t111); + let t114 = circuit_add(t110, t113); + let t115 = circuit_mul(t111, in52); + let t116 = circuit_mul(t18, t115); + let t117 = circuit_mul(in25, t115); + let t118 = circuit_add(t114, t117); + let t119 = circuit_mul(t115, in52); + let t120 = circuit_mul(t18, t119); + let t121 = circuit_mul(in26, t119); + let t122 = circuit_add(t118, t121); + let t123 = circuit_mul(t119, in52); + let t124 = circuit_mul(t18, t123); + let t125 = circuit_mul(in27, t123); + let t126 = circuit_add(t122, t125); + let t127 = circuit_mul(t123, in52); + let t128 = circuit_mul(t18, t127); + let t129 = circuit_mul(in28, t127); + let t130 = circuit_add(t126, t129); + let t131 = circuit_mul(t127, in52); + let t132 = circuit_mul(t18, t131); + let t133 = circuit_mul(in29, t131); + let t134 = circuit_add(t130, t133); + let t135 = circuit_mul(t131, in52); + let t136 = circuit_mul(t18, t135); + let t137 = circuit_mul(in30, t135); + let t138 = circuit_add(t134, t137); + let t139 = circuit_mul(t135, in52); + let t140 = circuit_mul(t18, t139); + let t141 = circuit_mul(in31, t139); + let t142 = circuit_add(t138, t141); + let t143 = circuit_mul(t139, in52); + let t144 = circuit_mul(t18, t143); + let t145 = circuit_mul(in32, t143); + let t146 = circuit_add(t142, t145); + let t147 = circuit_mul(t143, in52); + let t148 = circuit_mul(t18, t147); + let t149 = circuit_mul(in33, t147); + let t150 = circuit_add(t146, t149); + let t151 = circuit_mul(t147, in52); + let t152 = circuit_mul(t18, t151); + let t153 = circuit_mul(in34, t151); + let t154 = circuit_add(t150, t153); + let t155 = circuit_mul(t151, in52); + let t156 = circuit_mul(t18, t155); + let t157 = circuit_mul(in35, t155); + let t158 = circuit_add(t154, t157); + let t159 = circuit_mul(t155, in52); + let t160 = circuit_mul(t18, t159); + let t161 = circuit_mul(in36, t159); + let t162 = circuit_add(t158, t161); + let t163 = circuit_mul(t159, in52); + let t164 = circuit_mul(t23, t163); + let t165 = circuit_mul(in37, t163); + let t166 = circuit_add(t162, t165); + let t167 = circuit_mul(t163, in52); + let t168 = circuit_mul(t23, t167); + let t169 = circuit_mul(in38, t167); + let t170 = circuit_add(t166, t169); + let t171 = circuit_mul(t167, in52); + let t172 = circuit_mul(t23, t171); + let t173 = circuit_mul(in39, t171); + let t174 = circuit_add(t170, t173); + let t175 = circuit_mul(t171, in52); + let t176 = circuit_mul(t23, t175); + let t177 = circuit_mul(in40, t175); + let t178 = circuit_add(t174, t177); + let t179 = circuit_mul(t175, in52); + let t180 = circuit_mul(t23, t179); + let t181 = circuit_mul(in41, t179); + let t182 = circuit_add(t178, t181); + let t183 = circuit_mul(t179, in52); + let t184 = circuit_mul(t23, t183); + let t185 = circuit_mul(in42, t183); + let t186 = circuit_add(t182, t185); + let t187 = circuit_mul(t183, in52); + let t188 = circuit_mul(t23, t187); + let t189 = circuit_mul(in43, t187); + let t190 = circuit_add(t186, t189); + let t191 = circuit_mul(t187, in52); + let t192 = circuit_mul(t23, t191); + let t193 = circuit_mul(in44, t191); + let t194 = circuit_add(t190, t193); + let t195 = circuit_mul(t191, in52); + let t196 = circuit_mul(t23, t195); + let t197 = circuit_mul(in45, t195); + let t198 = circuit_add(t194, t197); + let t199 = circuit_mul(in54, in54); + let t200 = circuit_mul(t199, t9); + let t201 = circuit_sub(in0, t200); + let t202 = circuit_mul(t200, in47); + let t203 = circuit_add(in0, t202); + let t204 = circuit_mul(t199, in54); + let t205 = circuit_mul(t204, t11); + let t206 = circuit_sub(in0, t205); + let t207 = circuit_mul(t205, in48); + let t208 = circuit_add(t203, t207); + let t209 = circuit_mul(t204, in54); + let t210 = circuit_mul(t209, t13); + let t211 = circuit_sub(in0, t210); + let t212 = circuit_mul(t210, in49); + let t213 = circuit_add(t208, t212); + let t214 = circuit_mul(t209, in54); + let t215 = circuit_mul(t214, t15); + let t216 = circuit_sub(in0, t215); + let t217 = circuit_mul(t215, in50); + let t218 = circuit_add(t213, t217); + let t219 = circuit_sub(in1, in59); + let t220 = circuit_mul(t3, t219); + let t221 = circuit_mul(t3, t198); + let t222 = circuit_add(t221, t221); + let t223 = circuit_sub(t220, in59); + let t224 = circuit_mul(in50, t223); + let t225 = circuit_sub(t222, t224); + let t226 = circuit_add(t220, in59); + let t227 = circuit_inverse(t226); + let t228 = circuit_mul(t225, t227); + let t229 = circuit_sub(in1, in58); + let t230 = circuit_mul(t2, t229); + let t231 = circuit_mul(t2, t228); + let t232 = circuit_add(t231, t231); + let t233 = circuit_sub(t230, in58); + let t234 = circuit_mul(in49, t233); + let t235 = circuit_sub(t232, t234); + let t236 = circuit_add(t230, in58); + let t237 = circuit_inverse(t236); + let t238 = circuit_mul(t235, t237); + let t239 = circuit_sub(in1, in57); + let t240 = circuit_mul(t1, t239); + let t241 = circuit_mul(t1, t238); + let t242 = circuit_add(t241, t241); + let t243 = circuit_sub(t240, in57); + let t244 = circuit_mul(in48, t243); + let t245 = circuit_sub(t242, t244); + let t246 = circuit_add(t240, in57); + let t247 = circuit_inverse(t246); + let t248 = circuit_mul(t245, t247); + let t249 = circuit_sub(in1, in56); + let t250 = circuit_mul(t0, t249); + let t251 = circuit_mul(t0, t248); + let t252 = circuit_add(t251, t251); + let t253 = circuit_sub(t250, in56); + let t254 = circuit_mul(in47, t253); + let t255 = circuit_sub(t252, t254); + let t256 = circuit_add(t250, in56); + let t257 = circuit_inverse(t256); + let t258 = circuit_mul(t255, t257); + let t259 = circuit_sub(in1, in55); + let t260 = circuit_mul(in51, t259); + let t261 = circuit_mul(in51, t258); + let t262 = circuit_add(t261, t261); + let t263 = circuit_sub(t260, in55); + let t264 = circuit_mul(in46, t263); + let t265 = circuit_sub(t262, t264); + let t266 = circuit_add(t260, in55); + let t267 = circuit_inverse(t266); + let t268 = circuit_mul(t265, t267); + let t269 = circuit_mul(t268, t5); + let t270 = circuit_add(t218, t269); + let t271 = circuit_mul(in46, in54); + let t272 = circuit_mul(t271, t7); + let t273 = circuit_add(t270, t272); + let t274 = circuit_add(t108, t164); + let t275 = circuit_add(t112, t168); + let t276 = circuit_add(t116, t172); + let t277 = circuit_add(t120, t176); + let t278 = circuit_add(t132, t180); + let t279 = circuit_add(t136, t184); + let t280 = circuit_add(t140, t188); + let t281 = circuit_add(t144, t192); + let t282 = circuit_add(t24, t28); + let t283 = circuit_add(t282, t32); + let t284 = circuit_add(t283, t36); + let t285 = circuit_add(t284, t40); + let t286 = circuit_add(t285, t44); + let t287 = circuit_add(t286, t48); + let t288 = circuit_add(t287, t52); + let t289 = circuit_add(t288, t56); + let t290 = circuit_add(t289, t60); + let t291 = circuit_add(t290, t64); + let t292 = circuit_add(t291, t68); + let t293 = circuit_add(t292, t72); + let t294 = circuit_add(t293, t76); + let t295 = circuit_add(t294, t80); + let t296 = circuit_add(t295, t84); + let t297 = circuit_add(t296, t88); + let t298 = circuit_add(t297, t92); + let t299 = circuit_add(t298, t96); + let t300 = circuit_add(t299, t100); + let t301 = circuit_add(t300, t104); + let t302 = circuit_add(t301, t274); + let t303 = circuit_add(t302, t275); + let t304 = circuit_add(t303, t276); + let t305 = circuit_add(t304, t277); + let t306 = circuit_add(t305, t124); + let t307 = circuit_add(t306, t128); + let t308 = circuit_add(t307, t278); + let t309 = circuit_add(t308, t279); + let t310 = circuit_add(t309, t280); + let t311 = circuit_add(t310, t281); + let t312 = circuit_add(t311, t148); + let t313 = circuit_add(t312, t152); + let t314 = circuit_add(t313, t156); + let t315 = circuit_add(t314, t160); + let t316 = circuit_add(t315, t196); + let t317 = circuit_add(t316, t201); + let t318 = circuit_add(t317, t206); + let t319 = circuit_add(t318, t211); + let t320 = circuit_add(t319, t216); + let t321 = circuit_add(t320, t273); + + let modulus = get_GRUMPKIN_modulus(); // GRUMPKIN prime field modulus + + let mut circuit_inputs = (t321,).new_inputs(); + // Prefill constants: + circuit_inputs = circuit_inputs.next_2([0x0, 0x0, 0x0, 0x0]); // in0 + circuit_inputs = circuit_inputs.next_2([0x1, 0x0, 0x0, 0x0]); // in1 + // Fill inputs: + + let mut p_sumcheck_evaluations = p_sumcheck_evaluations; + while let Option::Some(val) = p_sumcheck_evaluations.pop_front() { + circuit_inputs = circuit_inputs.next_u256(*val); + }; // in2 - in45 + + let mut p_gemini_a_evaluations = p_gemini_a_evaluations; + while let Option::Some(val) = p_gemini_a_evaluations.pop_front() { + circuit_inputs = circuit_inputs.next_u256(*val); + }; // in46 - in50 + + circuit_inputs = circuit_inputs.next_2(tp_gemini_r); // in51 + circuit_inputs = circuit_inputs.next_2(tp_rho); // in52 + circuit_inputs = circuit_inputs.next_2(tp_shplonk_z); // in53 + circuit_inputs = circuit_inputs.next_2(tp_shplonk_nu); // in54 + + let mut tp_sum_check_u_challenges = tp_sum_check_u_challenges; + while let Option::Some(val) = tp_sum_check_u_challenges.pop_front() { + circuit_inputs = circuit_inputs.next_u128(*val); + }; // in55 - in59 + + let outputs = circuit_inputs.done_2().eval(modulus).unwrap(); + let scalar_1: u384 = outputs.get_output(t24); + let scalar_2: u384 = outputs.get_output(t28); + let scalar_3: u384 = outputs.get_output(t32); + let scalar_4: u384 = outputs.get_output(t36); + let scalar_5: u384 = outputs.get_output(t40); + let scalar_6: u384 = outputs.get_output(t44); + let scalar_7: u384 = outputs.get_output(t48); + let scalar_8: u384 = outputs.get_output(t52); + let scalar_9: u384 = outputs.get_output(t56); + let scalar_10: u384 = outputs.get_output(t60); + let scalar_11: u384 = outputs.get_output(t64); + let scalar_12: u384 = outputs.get_output(t68); + let scalar_13: u384 = outputs.get_output(t72); + let scalar_14: u384 = outputs.get_output(t76); + let scalar_15: u384 = outputs.get_output(t80); + let scalar_16: u384 = outputs.get_output(t84); + let scalar_17: u384 = outputs.get_output(t88); + let scalar_18: u384 = outputs.get_output(t92); + let scalar_19: u384 = outputs.get_output(t96); + let scalar_20: u384 = outputs.get_output(t100); + let scalar_21: u384 = outputs.get_output(t104); + let scalar_22: u384 = outputs.get_output(t274); + let scalar_23: u384 = outputs.get_output(t275); + let scalar_24: u384 = outputs.get_output(t276); + let scalar_25: u384 = outputs.get_output(t277); + let scalar_26: u384 = outputs.get_output(t124); + let scalar_27: u384 = outputs.get_output(t128); + let scalar_28: u384 = outputs.get_output(t278); + let scalar_29: u384 = outputs.get_output(t279); + let scalar_30: u384 = outputs.get_output(t280); + let scalar_31: u384 = outputs.get_output(t281); + let scalar_32: u384 = outputs.get_output(t148); + let scalar_33: u384 = outputs.get_output(t152); + let scalar_34: u384 = outputs.get_output(t156); + let scalar_35: u384 = outputs.get_output(t160); + let scalar_44: u384 = outputs.get_output(t196); + let scalar_45: u384 = outputs.get_output(t201); + let scalar_46: u384 = outputs.get_output(t206); + let scalar_47: u384 = outputs.get_output(t211); + let scalar_48: u384 = outputs.get_output(t216); + let scalar_72: u384 = outputs.get_output(t273); + let sum_scalars: u384 = outputs.get_output(t321); + return ( + scalar_1, + scalar_2, + scalar_3, + scalar_4, + scalar_5, + scalar_6, + scalar_7, + scalar_8, + scalar_9, + scalar_10, + scalar_11, + scalar_12, + scalar_13, + scalar_14, + scalar_15, + scalar_16, + scalar_17, + scalar_18, + scalar_19, + scalar_20, + scalar_21, + scalar_22, + scalar_23, + scalar_24, + scalar_25, + scalar_26, + scalar_27, + scalar_28, + scalar_29, + scalar_30, + scalar_31, + scalar_32, + scalar_33, + scalar_34, + scalar_35, + scalar_44, + scalar_45, + scalar_46, + scalar_47, + scalar_48, + scalar_72, + sum_scalars, + ); +} +#[inline(always)] +pub fn run_BN254_EVAL_FN_CHALLENGE_DUPL_42P_RLC_circuit( + A0: G1Point, A2: G1Point, coeff0: u384, coeff2: u384, SumDlogDivBatched: FunctionFelt, +) -> (u384,) { + // INPUT stack + let (in0, in1, in2) = (CE::> {}, CE::> {}, CE::> {}); + let (in3, in4, in5) = (CE::> {}, CE::> {}, CE::> {}); + let (in6, in7, in8) = (CE::> {}, CE::> {}, CE::> {}); + let (in9, in10, in11) = (CE::> {}, CE::> {}, CE::> {}); + let (in12, in13, in14) = (CE::> {}, CE::> {}, CE::> {}); + let (in15, in16, in17) = (CE::> {}, CE::> {}, CE::> {}); + let (in18, in19, in20) = (CE::> {}, CE::> {}, CE::> {}); + let (in21, in22, in23) = (CE::> {}, CE::> {}, CE::> {}); + let (in24, in25, in26) = (CE::> {}, CE::> {}, CE::> {}); + let (in27, in28, in29) = (CE::> {}, CE::> {}, CE::> {}); + let (in30, in31, in32) = (CE::> {}, CE::> {}, CE::> {}); + let (in33, in34, in35) = (CE::> {}, CE::> {}, CE::> {}); + let (in36, in37, in38) = (CE::> {}, CE::> {}, CE::> {}); + let (in39, in40, in41) = (CE::> {}, CE::> {}, CE::> {}); + let (in42, in43, in44) = (CE::> {}, CE::> {}, CE::> {}); + let (in45, in46, in47) = (CE::> {}, CE::> {}, CE::> {}); + let (in48, in49, in50) = (CE::> {}, CE::> {}, CE::> {}); + let (in51, in52, in53) = (CE::> {}, CE::> {}, CE::> {}); + let (in54, in55, in56) = (CE::> {}, CE::> {}, CE::> {}); + let (in57, in58, in59) = (CE::> {}, CE::> {}, CE::> {}); + let (in60, in61, in62) = (CE::> {}, CE::> {}, CE::> {}); + let (in63, in64, in65) = (CE::> {}, CE::> {}, CE::> {}); + let (in66, in67, in68) = (CE::> {}, CE::> {}, CE::> {}); + let (in69, in70, in71) = (CE::> {}, CE::> {}, CE::> {}); + let (in72, in73, in74) = (CE::> {}, CE::> {}, CE::> {}); + let (in75, in76, in77) = (CE::> {}, CE::> {}, CE::> {}); + let (in78, in79, in80) = (CE::> {}, CE::> {}, CE::> {}); + let (in81, in82, in83) = (CE::> {}, CE::> {}, CE::> {}); + let (in84, in85, in86) = (CE::> {}, CE::> {}, CE::> {}); + let (in87, in88, in89) = (CE::> {}, CE::> {}, CE::> {}); + let (in90, in91, in92) = (CE::> {}, CE::> {}, CE::> {}); + let (in93, in94, in95) = (CE::> {}, CE::> {}, CE::> {}); + let (in96, in97, in98) = (CE::> {}, CE::> {}, CE::> {}); + let (in99, in100, in101) = (CE::> {}, CE::> {}, CE::> {}); + let (in102, in103, in104) = (CE::> {}, CE::> {}, CE::> {}); + let (in105, in106, in107) = (CE::> {}, CE::> {}, CE::> {}); + let (in108, in109, in110) = (CE::> {}, CE::> {}, CE::> {}); + let (in111, in112, in113) = (CE::> {}, CE::> {}, CE::> {}); + let (in114, in115, in116) = (CE::> {}, CE::> {}, CE::> {}); + let (in117, in118, in119) = (CE::> {}, CE::> {}, CE::> {}); + let (in120, in121, in122) = (CE::> {}, CE::> {}, CE::> {}); + let (in123, in124, in125) = (CE::> {}, CE::> {}, CE::> {}); + let (in126, in127, in128) = (CE::> {}, CE::> {}, CE::> {}); + let (in129, in130, in131) = (CE::> {}, CE::> {}, CE::> {}); + let (in132, in133, in134) = (CE::> {}, CE::> {}, CE::> {}); + let (in135, in136, in137) = (CE::> {}, CE::> {}, CE::> {}); + let (in138, in139, in140) = (CE::> {}, CE::> {}, CE::> {}); + let (in141, in142, in143) = (CE::> {}, CE::> {}, CE::> {}); + let (in144, in145, in146) = (CE::> {}, CE::> {}, CE::> {}); + let (in147, in148, in149) = (CE::> {}, CE::> {}, CE::> {}); + let (in150, in151, in152) = (CE::> {}, CE::> {}, CE::> {}); + let (in153, in154, in155) = (CE::> {}, CE::> {}, CE::> {}); + let (in156, in157, in158) = (CE::> {}, CE::> {}, CE::> {}); + let (in159, in160, in161) = (CE::> {}, CE::> {}, CE::> {}); + let (in162, in163, in164) = (CE::> {}, CE::> {}, CE::> {}); + let (in165, in166, in167) = (CE::> {}, CE::> {}, CE::> {}); + let (in168, in169, in170) = (CE::> {}, CE::> {}, CE::> {}); + let (in171, in172, in173) = (CE::> {}, CE::> {}, CE::> {}); + let (in174, in175, in176) = (CE::> {}, CE::> {}, CE::> {}); + let (in177, in178, in179) = (CE::> {}, CE::> {}, CE::> {}); + let (in180, in181, in182) = (CE::> {}, CE::> {}, CE::> {}); + let (in183, in184, in185) = (CE::> {}, CE::> {}, CE::> {}); + let (in186, in187, in188) = (CE::> {}, CE::> {}, CE::> {}); + let (in189, in190, in191) = (CE::> {}, CE::> {}, CE::> {}); + let t0 = circuit_mul(in50, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t1 = circuit_add(in49, t0); // Eval sumdlogdiv_a_num Horner step: add coefficient_43 + let t2 = circuit_mul(t1, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t3 = circuit_add(in48, t2); // Eval sumdlogdiv_a_num Horner step: add coefficient_42 + let t4 = circuit_mul(t3, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t5 = circuit_add(in47, t4); // Eval sumdlogdiv_a_num Horner step: add coefficient_41 + let t6 = circuit_mul(t5, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t7 = circuit_add(in46, t6); // Eval sumdlogdiv_a_num Horner step: add coefficient_40 + let t8 = circuit_mul(t7, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t9 = circuit_add(in45, t8); // Eval sumdlogdiv_a_num Horner step: add coefficient_39 + let t10 = circuit_mul(t9, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t11 = circuit_add(in44, t10); // Eval sumdlogdiv_a_num Horner step: add coefficient_38 + let t12 = circuit_mul(t11, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t13 = circuit_add(in43, t12); // Eval sumdlogdiv_a_num Horner step: add coefficient_37 + let t14 = circuit_mul(t13, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t15 = circuit_add(in42, t14); // Eval sumdlogdiv_a_num Horner step: add coefficient_36 + let t16 = circuit_mul(t15, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t17 = circuit_add(in41, t16); // Eval sumdlogdiv_a_num Horner step: add coefficient_35 + let t18 = circuit_mul(t17, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t19 = circuit_add(in40, t18); // Eval sumdlogdiv_a_num Horner step: add coefficient_34 + let t20 = circuit_mul(t19, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t21 = circuit_add(in39, t20); // Eval sumdlogdiv_a_num Horner step: add coefficient_33 + let t22 = circuit_mul(t21, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t23 = circuit_add(in38, t22); // Eval sumdlogdiv_a_num Horner step: add coefficient_32 + let t24 = circuit_mul(t23, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t25 = circuit_add(in37, t24); // Eval sumdlogdiv_a_num Horner step: add coefficient_31 + let t26 = circuit_mul(t25, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t27 = circuit_add(in36, t26); // Eval sumdlogdiv_a_num Horner step: add coefficient_30 + let t28 = circuit_mul(t27, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t29 = circuit_add(in35, t28); // Eval sumdlogdiv_a_num Horner step: add coefficient_29 + let t30 = circuit_mul(t29, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t31 = circuit_add(in34, t30); // Eval sumdlogdiv_a_num Horner step: add coefficient_28 + let t32 = circuit_mul(t31, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t33 = circuit_add(in33, t32); // Eval sumdlogdiv_a_num Horner step: add coefficient_27 + let t34 = circuit_mul(t33, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t35 = circuit_add(in32, t34); // Eval sumdlogdiv_a_num Horner step: add coefficient_26 + let t36 = circuit_mul(t35, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t37 = circuit_add(in31, t36); // Eval sumdlogdiv_a_num Horner step: add coefficient_25 + let t38 = circuit_mul(t37, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t39 = circuit_add(in30, t38); // Eval sumdlogdiv_a_num Horner step: add coefficient_24 + let t40 = circuit_mul(t39, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t41 = circuit_add(in29, t40); // Eval sumdlogdiv_a_num Horner step: add coefficient_23 + let t42 = circuit_mul(t41, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t43 = circuit_add(in28, t42); // Eval sumdlogdiv_a_num Horner step: add coefficient_22 + let t44 = circuit_mul(t43, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t45 = circuit_add(in27, t44); // Eval sumdlogdiv_a_num Horner step: add coefficient_21 + let t46 = circuit_mul(t45, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t47 = circuit_add(in26, t46); // Eval sumdlogdiv_a_num Horner step: add coefficient_20 + let t48 = circuit_mul(t47, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t49 = circuit_add(in25, t48); // Eval sumdlogdiv_a_num Horner step: add coefficient_19 + let t50 = circuit_mul(t49, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t51 = circuit_add(in24, t50); // Eval sumdlogdiv_a_num Horner step: add coefficient_18 + let t52 = circuit_mul(t51, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t53 = circuit_add(in23, t52); // Eval sumdlogdiv_a_num Horner step: add coefficient_17 + let t54 = circuit_mul(t53, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t55 = circuit_add(in22, t54); // Eval sumdlogdiv_a_num Horner step: add coefficient_16 + let t56 = circuit_mul(t55, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t57 = circuit_add(in21, t56); // Eval sumdlogdiv_a_num Horner step: add coefficient_15 + let t58 = circuit_mul(t57, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t59 = circuit_add(in20, t58); // Eval sumdlogdiv_a_num Horner step: add coefficient_14 + let t60 = circuit_mul(t59, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t61 = circuit_add(in19, t60); // Eval sumdlogdiv_a_num Horner step: add coefficient_13 + let t62 = circuit_mul(t61, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t63 = circuit_add(in18, t62); // Eval sumdlogdiv_a_num Horner step: add coefficient_12 + let t64 = circuit_mul(t63, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t65 = circuit_add(in17, t64); // Eval sumdlogdiv_a_num Horner step: add coefficient_11 + let t66 = circuit_mul(t65, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t67 = circuit_add(in16, t66); // Eval sumdlogdiv_a_num Horner step: add coefficient_10 + let t68 = circuit_mul(t67, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t69 = circuit_add(in15, t68); // Eval sumdlogdiv_a_num Horner step: add coefficient_9 + let t70 = circuit_mul(t69, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t71 = circuit_add(in14, t70); // Eval sumdlogdiv_a_num Horner step: add coefficient_8 + let t72 = circuit_mul(t71, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t73 = circuit_add(in13, t72); // Eval sumdlogdiv_a_num Horner step: add coefficient_7 + let t74 = circuit_mul(t73, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t75 = circuit_add(in12, t74); // Eval sumdlogdiv_a_num Horner step: add coefficient_6 + let t76 = circuit_mul(t75, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t77 = circuit_add(in11, t76); // Eval sumdlogdiv_a_num Horner step: add coefficient_5 + let t78 = circuit_mul(t77, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t79 = circuit_add(in10, t78); // Eval sumdlogdiv_a_num Horner step: add coefficient_4 + let t80 = circuit_mul(t79, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t81 = circuit_add(in9, t80); // Eval sumdlogdiv_a_num Horner step: add coefficient_3 + let t82 = circuit_mul(t81, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t83 = circuit_add(in8, t82); // Eval sumdlogdiv_a_num Horner step: add coefficient_2 + let t84 = circuit_mul(t83, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t85 = circuit_add(in7, t84); // Eval sumdlogdiv_a_num Horner step: add coefficient_1 + let t86 = circuit_mul(t85, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t87 = circuit_add(in6, t86); // Eval sumdlogdiv_a_num Horner step: add coefficient_0 + let t88 = circuit_mul(in96, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t89 = circuit_add(in95, t88); // Eval sumdlogdiv_a_den Horner step: add coefficient_44 + let t90 = circuit_mul(t89, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t91 = circuit_add(in94, t90); // Eval sumdlogdiv_a_den Horner step: add coefficient_43 + let t92 = circuit_mul(t91, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t93 = circuit_add(in93, t92); // Eval sumdlogdiv_a_den Horner step: add coefficient_42 + let t94 = circuit_mul(t93, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t95 = circuit_add(in92, t94); // Eval sumdlogdiv_a_den Horner step: add coefficient_41 + let t96 = circuit_mul(t95, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t97 = circuit_add(in91, t96); // Eval sumdlogdiv_a_den Horner step: add coefficient_40 + let t98 = circuit_mul(t97, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t99 = circuit_add(in90, t98); // Eval sumdlogdiv_a_den Horner step: add coefficient_39 + let t100 = circuit_mul(t99, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t101 = circuit_add(in89, t100); // Eval sumdlogdiv_a_den Horner step: add coefficient_38 + let t102 = circuit_mul(t101, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t103 = circuit_add(in88, t102); // Eval sumdlogdiv_a_den Horner step: add coefficient_37 + let t104 = circuit_mul(t103, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t105 = circuit_add(in87, t104); // Eval sumdlogdiv_a_den Horner step: add coefficient_36 + let t106 = circuit_mul(t105, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t107 = circuit_add(in86, t106); // Eval sumdlogdiv_a_den Horner step: add coefficient_35 + let t108 = circuit_mul(t107, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t109 = circuit_add(in85, t108); // Eval sumdlogdiv_a_den Horner step: add coefficient_34 + let t110 = circuit_mul(t109, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t111 = circuit_add(in84, t110); // Eval sumdlogdiv_a_den Horner step: add coefficient_33 + let t112 = circuit_mul(t111, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t113 = circuit_add(in83, t112); // Eval sumdlogdiv_a_den Horner step: add coefficient_32 + let t114 = circuit_mul(t113, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t115 = circuit_add(in82, t114); // Eval sumdlogdiv_a_den Horner step: add coefficient_31 + let t116 = circuit_mul(t115, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t117 = circuit_add(in81, t116); // Eval sumdlogdiv_a_den Horner step: add coefficient_30 + let t118 = circuit_mul(t117, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t119 = circuit_add(in80, t118); // Eval sumdlogdiv_a_den Horner step: add coefficient_29 + let t120 = circuit_mul(t119, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t121 = circuit_add(in79, t120); // Eval sumdlogdiv_a_den Horner step: add coefficient_28 + let t122 = circuit_mul(t121, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t123 = circuit_add(in78, t122); // Eval sumdlogdiv_a_den Horner step: add coefficient_27 + let t124 = circuit_mul(t123, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t125 = circuit_add(in77, t124); // Eval sumdlogdiv_a_den Horner step: add coefficient_26 + let t126 = circuit_mul(t125, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t127 = circuit_add(in76, t126); // Eval sumdlogdiv_a_den Horner step: add coefficient_25 + let t128 = circuit_mul(t127, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t129 = circuit_add(in75, t128); // Eval sumdlogdiv_a_den Horner step: add coefficient_24 + let t130 = circuit_mul(t129, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t131 = circuit_add(in74, t130); // Eval sumdlogdiv_a_den Horner step: add coefficient_23 + let t132 = circuit_mul(t131, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t133 = circuit_add(in73, t132); // Eval sumdlogdiv_a_den Horner step: add coefficient_22 + let t134 = circuit_mul(t133, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t135 = circuit_add(in72, t134); // Eval sumdlogdiv_a_den Horner step: add coefficient_21 + let t136 = circuit_mul(t135, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t137 = circuit_add(in71, t136); // Eval sumdlogdiv_a_den Horner step: add coefficient_20 + let t138 = circuit_mul(t137, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t139 = circuit_add(in70, t138); // Eval sumdlogdiv_a_den Horner step: add coefficient_19 + let t140 = circuit_mul(t139, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t141 = circuit_add(in69, t140); // Eval sumdlogdiv_a_den Horner step: add coefficient_18 + let t142 = circuit_mul(t141, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t143 = circuit_add(in68, t142); // Eval sumdlogdiv_a_den Horner step: add coefficient_17 + let t144 = circuit_mul(t143, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t145 = circuit_add(in67, t144); // Eval sumdlogdiv_a_den Horner step: add coefficient_16 + let t146 = circuit_mul(t145, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t147 = circuit_add(in66, t146); // Eval sumdlogdiv_a_den Horner step: add coefficient_15 + let t148 = circuit_mul(t147, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t149 = circuit_add(in65, t148); // Eval sumdlogdiv_a_den Horner step: add coefficient_14 + let t150 = circuit_mul(t149, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t151 = circuit_add(in64, t150); // Eval sumdlogdiv_a_den Horner step: add coefficient_13 + let t152 = circuit_mul(t151, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t153 = circuit_add(in63, t152); // Eval sumdlogdiv_a_den Horner step: add coefficient_12 + let t154 = circuit_mul(t153, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t155 = circuit_add(in62, t154); // Eval sumdlogdiv_a_den Horner step: add coefficient_11 + let t156 = circuit_mul(t155, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t157 = circuit_add(in61, t156); // Eval sumdlogdiv_a_den Horner step: add coefficient_10 + let t158 = circuit_mul(t157, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t159 = circuit_add(in60, t158); // Eval sumdlogdiv_a_den Horner step: add coefficient_9 + let t160 = circuit_mul(t159, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t161 = circuit_add(in59, t160); // Eval sumdlogdiv_a_den Horner step: add coefficient_8 + let t162 = circuit_mul(t161, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t163 = circuit_add(in58, t162); // Eval sumdlogdiv_a_den Horner step: add coefficient_7 + let t164 = circuit_mul(t163, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t165 = circuit_add(in57, t164); // Eval sumdlogdiv_a_den Horner step: add coefficient_6 + let t166 = circuit_mul(t165, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t167 = circuit_add(in56, t166); // Eval sumdlogdiv_a_den Horner step: add coefficient_5 + let t168 = circuit_mul(t167, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t169 = circuit_add(in55, t168); // Eval sumdlogdiv_a_den Horner step: add coefficient_4 + let t170 = circuit_mul(t169, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t171 = circuit_add(in54, t170); // Eval sumdlogdiv_a_den Horner step: add coefficient_3 + let t172 = circuit_mul(t171, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t173 = circuit_add(in53, t172); // Eval sumdlogdiv_a_den Horner step: add coefficient_2 + let t174 = circuit_mul(t173, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t175 = circuit_add(in52, t174); // Eval sumdlogdiv_a_den Horner step: add coefficient_1 + let t176 = circuit_mul(t175, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t177 = circuit_add(in51, t176); // Eval sumdlogdiv_a_den Horner step: add coefficient_0 + let t178 = circuit_inverse(t177); + let t179 = circuit_mul(t87, t178); + let t180 = circuit_mul(in142, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t181 = circuit_add(in141, t180); // Eval sumdlogdiv_b_num Horner step: add coefficient_44 + let t182 = circuit_mul(t181, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t183 = circuit_add(in140, t182); // Eval sumdlogdiv_b_num Horner step: add coefficient_43 + let t184 = circuit_mul(t183, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t185 = circuit_add(in139, t184); // Eval sumdlogdiv_b_num Horner step: add coefficient_42 + let t186 = circuit_mul(t185, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t187 = circuit_add(in138, t186); // Eval sumdlogdiv_b_num Horner step: add coefficient_41 + let t188 = circuit_mul(t187, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t189 = circuit_add(in137, t188); // Eval sumdlogdiv_b_num Horner step: add coefficient_40 + let t190 = circuit_mul(t189, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t191 = circuit_add(in136, t190); // Eval sumdlogdiv_b_num Horner step: add coefficient_39 + let t192 = circuit_mul(t191, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t193 = circuit_add(in135, t192); // Eval sumdlogdiv_b_num Horner step: add coefficient_38 + let t194 = circuit_mul(t193, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t195 = circuit_add(in134, t194); // Eval sumdlogdiv_b_num Horner step: add coefficient_37 + let t196 = circuit_mul(t195, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t197 = circuit_add(in133, t196); // Eval sumdlogdiv_b_num Horner step: add coefficient_36 + let t198 = circuit_mul(t197, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t199 = circuit_add(in132, t198); // Eval sumdlogdiv_b_num Horner step: add coefficient_35 + let t200 = circuit_mul(t199, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t201 = circuit_add(in131, t200); // Eval sumdlogdiv_b_num Horner step: add coefficient_34 + let t202 = circuit_mul(t201, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t203 = circuit_add(in130, t202); // Eval sumdlogdiv_b_num Horner step: add coefficient_33 + let t204 = circuit_mul(t203, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t205 = circuit_add(in129, t204); // Eval sumdlogdiv_b_num Horner step: add coefficient_32 + let t206 = circuit_mul(t205, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t207 = circuit_add(in128, t206); // Eval sumdlogdiv_b_num Horner step: add coefficient_31 + let t208 = circuit_mul(t207, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t209 = circuit_add(in127, t208); // Eval sumdlogdiv_b_num Horner step: add coefficient_30 + let t210 = circuit_mul(t209, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t211 = circuit_add(in126, t210); // Eval sumdlogdiv_b_num Horner step: add coefficient_29 + let t212 = circuit_mul(t211, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t213 = circuit_add(in125, t212); // Eval sumdlogdiv_b_num Horner step: add coefficient_28 + let t214 = circuit_mul(t213, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t215 = circuit_add(in124, t214); // Eval sumdlogdiv_b_num Horner step: add coefficient_27 + let t216 = circuit_mul(t215, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t217 = circuit_add(in123, t216); // Eval sumdlogdiv_b_num Horner step: add coefficient_26 + let t218 = circuit_mul(t217, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t219 = circuit_add(in122, t218); // Eval sumdlogdiv_b_num Horner step: add coefficient_25 + let t220 = circuit_mul(t219, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t221 = circuit_add(in121, t220); // Eval sumdlogdiv_b_num Horner step: add coefficient_24 + let t222 = circuit_mul(t221, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t223 = circuit_add(in120, t222); // Eval sumdlogdiv_b_num Horner step: add coefficient_23 + let t224 = circuit_mul(t223, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t225 = circuit_add(in119, t224); // Eval sumdlogdiv_b_num Horner step: add coefficient_22 + let t226 = circuit_mul(t225, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t227 = circuit_add(in118, t226); // Eval sumdlogdiv_b_num Horner step: add coefficient_21 + let t228 = circuit_mul(t227, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t229 = circuit_add(in117, t228); // Eval sumdlogdiv_b_num Horner step: add coefficient_20 + let t230 = circuit_mul(t229, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t231 = circuit_add(in116, t230); // Eval sumdlogdiv_b_num Horner step: add coefficient_19 + let t232 = circuit_mul(t231, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t233 = circuit_add(in115, t232); // Eval sumdlogdiv_b_num Horner step: add coefficient_18 + let t234 = circuit_mul(t233, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t235 = circuit_add(in114, t234); // Eval sumdlogdiv_b_num Horner step: add coefficient_17 + let t236 = circuit_mul(t235, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t237 = circuit_add(in113, t236); // Eval sumdlogdiv_b_num Horner step: add coefficient_16 + let t238 = circuit_mul(t237, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t239 = circuit_add(in112, t238); // Eval sumdlogdiv_b_num Horner step: add coefficient_15 + let t240 = circuit_mul(t239, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t241 = circuit_add(in111, t240); // Eval sumdlogdiv_b_num Horner step: add coefficient_14 + let t242 = circuit_mul(t241, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t243 = circuit_add(in110, t242); // Eval sumdlogdiv_b_num Horner step: add coefficient_13 + let t244 = circuit_mul(t243, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t245 = circuit_add(in109, t244); // Eval sumdlogdiv_b_num Horner step: add coefficient_12 + let t246 = circuit_mul(t245, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t247 = circuit_add(in108, t246); // Eval sumdlogdiv_b_num Horner step: add coefficient_11 + let t248 = circuit_mul(t247, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t249 = circuit_add(in107, t248); // Eval sumdlogdiv_b_num Horner step: add coefficient_10 + let t250 = circuit_mul(t249, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t251 = circuit_add(in106, t250); // Eval sumdlogdiv_b_num Horner step: add coefficient_9 + let t252 = circuit_mul(t251, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t253 = circuit_add(in105, t252); // Eval sumdlogdiv_b_num Horner step: add coefficient_8 + let t254 = circuit_mul(t253, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t255 = circuit_add(in104, t254); // Eval sumdlogdiv_b_num Horner step: add coefficient_7 + let t256 = circuit_mul(t255, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t257 = circuit_add(in103, t256); // Eval sumdlogdiv_b_num Horner step: add coefficient_6 + let t258 = circuit_mul(t257, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t259 = circuit_add(in102, t258); // Eval sumdlogdiv_b_num Horner step: add coefficient_5 + let t260 = circuit_mul(t259, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t261 = circuit_add(in101, t260); // Eval sumdlogdiv_b_num Horner step: add coefficient_4 + let t262 = circuit_mul(t261, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t263 = circuit_add(in100, t262); // Eval sumdlogdiv_b_num Horner step: add coefficient_3 + let t264 = circuit_mul(t263, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t265 = circuit_add(in99, t264); // Eval sumdlogdiv_b_num Horner step: add coefficient_2 + let t266 = circuit_mul(t265, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t267 = circuit_add(in98, t266); // Eval sumdlogdiv_b_num Horner step: add coefficient_1 + let t268 = circuit_mul(t267, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t269 = circuit_add(in97, t268); // Eval sumdlogdiv_b_num Horner step: add coefficient_0 + let t270 = circuit_mul(in191, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t271 = circuit_add(in190, t270); // Eval sumdlogdiv_b_den Horner step: add coefficient_47 + let t272 = circuit_mul(t271, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t273 = circuit_add(in189, t272); // Eval sumdlogdiv_b_den Horner step: add coefficient_46 + let t274 = circuit_mul(t273, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t275 = circuit_add(in188, t274); // Eval sumdlogdiv_b_den Horner step: add coefficient_45 + let t276 = circuit_mul(t275, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t277 = circuit_add(in187, t276); // Eval sumdlogdiv_b_den Horner step: add coefficient_44 + let t278 = circuit_mul(t277, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t279 = circuit_add(in186, t278); // Eval sumdlogdiv_b_den Horner step: add coefficient_43 + let t280 = circuit_mul(t279, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t281 = circuit_add(in185, t280); // Eval sumdlogdiv_b_den Horner step: add coefficient_42 + let t282 = circuit_mul(t281, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t283 = circuit_add(in184, t282); // Eval sumdlogdiv_b_den Horner step: add coefficient_41 + let t284 = circuit_mul(t283, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t285 = circuit_add(in183, t284); // Eval sumdlogdiv_b_den Horner step: add coefficient_40 + let t286 = circuit_mul(t285, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t287 = circuit_add(in182, t286); // Eval sumdlogdiv_b_den Horner step: add coefficient_39 + let t288 = circuit_mul(t287, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t289 = circuit_add(in181, t288); // Eval sumdlogdiv_b_den Horner step: add coefficient_38 + let t290 = circuit_mul(t289, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t291 = circuit_add(in180, t290); // Eval sumdlogdiv_b_den Horner step: add coefficient_37 + let t292 = circuit_mul(t291, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t293 = circuit_add(in179, t292); // Eval sumdlogdiv_b_den Horner step: add coefficient_36 + let t294 = circuit_mul(t293, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t295 = circuit_add(in178, t294); // Eval sumdlogdiv_b_den Horner step: add coefficient_35 + let t296 = circuit_mul(t295, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t297 = circuit_add(in177, t296); // Eval sumdlogdiv_b_den Horner step: add coefficient_34 + let t298 = circuit_mul(t297, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t299 = circuit_add(in176, t298); // Eval sumdlogdiv_b_den Horner step: add coefficient_33 + let t300 = circuit_mul(t299, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t301 = circuit_add(in175, t300); // Eval sumdlogdiv_b_den Horner step: add coefficient_32 + let t302 = circuit_mul(t301, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t303 = circuit_add(in174, t302); // Eval sumdlogdiv_b_den Horner step: add coefficient_31 + let t304 = circuit_mul(t303, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t305 = circuit_add(in173, t304); // Eval sumdlogdiv_b_den Horner step: add coefficient_30 + let t306 = circuit_mul(t305, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t307 = circuit_add(in172, t306); // Eval sumdlogdiv_b_den Horner step: add coefficient_29 + let t308 = circuit_mul(t307, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t309 = circuit_add(in171, t308); // Eval sumdlogdiv_b_den Horner step: add coefficient_28 + let t310 = circuit_mul(t309, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t311 = circuit_add(in170, t310); // Eval sumdlogdiv_b_den Horner step: add coefficient_27 + let t312 = circuit_mul(t311, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t313 = circuit_add(in169, t312); // Eval sumdlogdiv_b_den Horner step: add coefficient_26 + let t314 = circuit_mul(t313, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t315 = circuit_add(in168, t314); // Eval sumdlogdiv_b_den Horner step: add coefficient_25 + let t316 = circuit_mul(t315, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t317 = circuit_add(in167, t316); // Eval sumdlogdiv_b_den Horner step: add coefficient_24 + let t318 = circuit_mul(t317, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t319 = circuit_add(in166, t318); // Eval sumdlogdiv_b_den Horner step: add coefficient_23 + let t320 = circuit_mul(t319, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t321 = circuit_add(in165, t320); // Eval sumdlogdiv_b_den Horner step: add coefficient_22 + let t322 = circuit_mul(t321, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t323 = circuit_add(in164, t322); // Eval sumdlogdiv_b_den Horner step: add coefficient_21 + let t324 = circuit_mul(t323, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t325 = circuit_add(in163, t324); // Eval sumdlogdiv_b_den Horner step: add coefficient_20 + let t326 = circuit_mul(t325, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t327 = circuit_add(in162, t326); // Eval sumdlogdiv_b_den Horner step: add coefficient_19 + let t328 = circuit_mul(t327, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t329 = circuit_add(in161, t328); // Eval sumdlogdiv_b_den Horner step: add coefficient_18 + let t330 = circuit_mul(t329, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t331 = circuit_add(in160, t330); // Eval sumdlogdiv_b_den Horner step: add coefficient_17 + let t332 = circuit_mul(t331, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t333 = circuit_add(in159, t332); // Eval sumdlogdiv_b_den Horner step: add coefficient_16 + let t334 = circuit_mul(t333, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t335 = circuit_add(in158, t334); // Eval sumdlogdiv_b_den Horner step: add coefficient_15 + let t336 = circuit_mul(t335, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t337 = circuit_add(in157, t336); // Eval sumdlogdiv_b_den Horner step: add coefficient_14 + let t338 = circuit_mul(t337, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t339 = circuit_add(in156, t338); // Eval sumdlogdiv_b_den Horner step: add coefficient_13 + let t340 = circuit_mul(t339, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t341 = circuit_add(in155, t340); // Eval sumdlogdiv_b_den Horner step: add coefficient_12 + let t342 = circuit_mul(t341, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t343 = circuit_add(in154, t342); // Eval sumdlogdiv_b_den Horner step: add coefficient_11 + let t344 = circuit_mul(t343, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t345 = circuit_add(in153, t344); // Eval sumdlogdiv_b_den Horner step: add coefficient_10 + let t346 = circuit_mul(t345, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t347 = circuit_add(in152, t346); // Eval sumdlogdiv_b_den Horner step: add coefficient_9 + let t348 = circuit_mul(t347, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t349 = circuit_add(in151, t348); // Eval sumdlogdiv_b_den Horner step: add coefficient_8 + let t350 = circuit_mul(t349, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t351 = circuit_add(in150, t350); // Eval sumdlogdiv_b_den Horner step: add coefficient_7 + let t352 = circuit_mul(t351, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t353 = circuit_add(in149, t352); // Eval sumdlogdiv_b_den Horner step: add coefficient_6 + let t354 = circuit_mul(t353, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t355 = circuit_add(in148, t354); // Eval sumdlogdiv_b_den Horner step: add coefficient_5 + let t356 = circuit_mul(t355, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t357 = circuit_add(in147, t356); // Eval sumdlogdiv_b_den Horner step: add coefficient_4 + let t358 = circuit_mul(t357, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t359 = circuit_add(in146, t358); // Eval sumdlogdiv_b_den Horner step: add coefficient_3 + let t360 = circuit_mul(t359, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t361 = circuit_add(in145, t360); // Eval sumdlogdiv_b_den Horner step: add coefficient_2 + let t362 = circuit_mul(t361, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t363 = circuit_add(in144, t362); // Eval sumdlogdiv_b_den Horner step: add coefficient_1 + let t364 = circuit_mul(t363, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t365 = circuit_add(in143, t364); // Eval sumdlogdiv_b_den Horner step: add coefficient_0 + let t366 = circuit_inverse(t365); + let t367 = circuit_mul(t269, t366); + let t368 = circuit_mul(in1, t367); + let t369 = circuit_add(t179, t368); + let t370 = circuit_mul(in50, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t371 = circuit_add(in49, t370); // Eval sumdlogdiv_a_num Horner step: add coefficient_43 + let t372 = circuit_mul(t371, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t373 = circuit_add(in48, t372); // Eval sumdlogdiv_a_num Horner step: add coefficient_42 + let t374 = circuit_mul(t373, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t375 = circuit_add(in47, t374); // Eval sumdlogdiv_a_num Horner step: add coefficient_41 + let t376 = circuit_mul(t375, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t377 = circuit_add(in46, t376); // Eval sumdlogdiv_a_num Horner step: add coefficient_40 + let t378 = circuit_mul(t377, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t379 = circuit_add(in45, t378); // Eval sumdlogdiv_a_num Horner step: add coefficient_39 + let t380 = circuit_mul(t379, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t381 = circuit_add(in44, t380); // Eval sumdlogdiv_a_num Horner step: add coefficient_38 + let t382 = circuit_mul(t381, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t383 = circuit_add(in43, t382); // Eval sumdlogdiv_a_num Horner step: add coefficient_37 + let t384 = circuit_mul(t383, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t385 = circuit_add(in42, t384); // Eval sumdlogdiv_a_num Horner step: add coefficient_36 + let t386 = circuit_mul(t385, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t387 = circuit_add(in41, t386); // Eval sumdlogdiv_a_num Horner step: add coefficient_35 + let t388 = circuit_mul(t387, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t389 = circuit_add(in40, t388); // Eval sumdlogdiv_a_num Horner step: add coefficient_34 + let t390 = circuit_mul(t389, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t391 = circuit_add(in39, t390); // Eval sumdlogdiv_a_num Horner step: add coefficient_33 + let t392 = circuit_mul(t391, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t393 = circuit_add(in38, t392); // Eval sumdlogdiv_a_num Horner step: add coefficient_32 + let t394 = circuit_mul(t393, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t395 = circuit_add(in37, t394); // Eval sumdlogdiv_a_num Horner step: add coefficient_31 + let t396 = circuit_mul(t395, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t397 = circuit_add(in36, t396); // Eval sumdlogdiv_a_num Horner step: add coefficient_30 + let t398 = circuit_mul(t397, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t399 = circuit_add(in35, t398); // Eval sumdlogdiv_a_num Horner step: add coefficient_29 + let t400 = circuit_mul(t399, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t401 = circuit_add(in34, t400); // Eval sumdlogdiv_a_num Horner step: add coefficient_28 + let t402 = circuit_mul(t401, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t403 = circuit_add(in33, t402); // Eval sumdlogdiv_a_num Horner step: add coefficient_27 + let t404 = circuit_mul(t403, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t405 = circuit_add(in32, t404); // Eval sumdlogdiv_a_num Horner step: add coefficient_26 + let t406 = circuit_mul(t405, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t407 = circuit_add(in31, t406); // Eval sumdlogdiv_a_num Horner step: add coefficient_25 + let t408 = circuit_mul(t407, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t409 = circuit_add(in30, t408); // Eval sumdlogdiv_a_num Horner step: add coefficient_24 + let t410 = circuit_mul(t409, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t411 = circuit_add(in29, t410); // Eval sumdlogdiv_a_num Horner step: add coefficient_23 + let t412 = circuit_mul(t411, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t413 = circuit_add(in28, t412); // Eval sumdlogdiv_a_num Horner step: add coefficient_22 + let t414 = circuit_mul(t413, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t415 = circuit_add(in27, t414); // Eval sumdlogdiv_a_num Horner step: add coefficient_21 + let t416 = circuit_mul(t415, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t417 = circuit_add(in26, t416); // Eval sumdlogdiv_a_num Horner step: add coefficient_20 + let t418 = circuit_mul(t417, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t419 = circuit_add(in25, t418); // Eval sumdlogdiv_a_num Horner step: add coefficient_19 + let t420 = circuit_mul(t419, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t421 = circuit_add(in24, t420); // Eval sumdlogdiv_a_num Horner step: add coefficient_18 + let t422 = circuit_mul(t421, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t423 = circuit_add(in23, t422); // Eval sumdlogdiv_a_num Horner step: add coefficient_17 + let t424 = circuit_mul(t423, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t425 = circuit_add(in22, t424); // Eval sumdlogdiv_a_num Horner step: add coefficient_16 + let t426 = circuit_mul(t425, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t427 = circuit_add(in21, t426); // Eval sumdlogdiv_a_num Horner step: add coefficient_15 + let t428 = circuit_mul(t427, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t429 = circuit_add(in20, t428); // Eval sumdlogdiv_a_num Horner step: add coefficient_14 + let t430 = circuit_mul(t429, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t431 = circuit_add(in19, t430); // Eval sumdlogdiv_a_num Horner step: add coefficient_13 + let t432 = circuit_mul(t431, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t433 = circuit_add(in18, t432); // Eval sumdlogdiv_a_num Horner step: add coefficient_12 + let t434 = circuit_mul(t433, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t435 = circuit_add(in17, t434); // Eval sumdlogdiv_a_num Horner step: add coefficient_11 + let t436 = circuit_mul(t435, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t437 = circuit_add(in16, t436); // Eval sumdlogdiv_a_num Horner step: add coefficient_10 + let t438 = circuit_mul(t437, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t439 = circuit_add(in15, t438); // Eval sumdlogdiv_a_num Horner step: add coefficient_9 + let t440 = circuit_mul(t439, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t441 = circuit_add(in14, t440); // Eval sumdlogdiv_a_num Horner step: add coefficient_8 + let t442 = circuit_mul(t441, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t443 = circuit_add(in13, t442); // Eval sumdlogdiv_a_num Horner step: add coefficient_7 + let t444 = circuit_mul(t443, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t445 = circuit_add(in12, t444); // Eval sumdlogdiv_a_num Horner step: add coefficient_6 + let t446 = circuit_mul(t445, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t447 = circuit_add(in11, t446); // Eval sumdlogdiv_a_num Horner step: add coefficient_5 + let t448 = circuit_mul(t447, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t449 = circuit_add(in10, t448); // Eval sumdlogdiv_a_num Horner step: add coefficient_4 + let t450 = circuit_mul(t449, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t451 = circuit_add(in9, t450); // Eval sumdlogdiv_a_num Horner step: add coefficient_3 + let t452 = circuit_mul(t451, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t453 = circuit_add(in8, t452); // Eval sumdlogdiv_a_num Horner step: add coefficient_2 + let t454 = circuit_mul(t453, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t455 = circuit_add(in7, t454); // Eval sumdlogdiv_a_num Horner step: add coefficient_1 + let t456 = circuit_mul(t455, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t457 = circuit_add(in6, t456); // Eval sumdlogdiv_a_num Horner step: add coefficient_0 + let t458 = circuit_mul(in96, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t459 = circuit_add(in95, t458); // Eval sumdlogdiv_a_den Horner step: add coefficient_44 + let t460 = circuit_mul(t459, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t461 = circuit_add(in94, t460); // Eval sumdlogdiv_a_den Horner step: add coefficient_43 + let t462 = circuit_mul(t461, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t463 = circuit_add(in93, t462); // Eval sumdlogdiv_a_den Horner step: add coefficient_42 + let t464 = circuit_mul(t463, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t465 = circuit_add(in92, t464); // Eval sumdlogdiv_a_den Horner step: add coefficient_41 + let t466 = circuit_mul(t465, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t467 = circuit_add(in91, t466); // Eval sumdlogdiv_a_den Horner step: add coefficient_40 + let t468 = circuit_mul(t467, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t469 = circuit_add(in90, t468); // Eval sumdlogdiv_a_den Horner step: add coefficient_39 + let t470 = circuit_mul(t469, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t471 = circuit_add(in89, t470); // Eval sumdlogdiv_a_den Horner step: add coefficient_38 + let t472 = circuit_mul(t471, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t473 = circuit_add(in88, t472); // Eval sumdlogdiv_a_den Horner step: add coefficient_37 + let t474 = circuit_mul(t473, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t475 = circuit_add(in87, t474); // Eval sumdlogdiv_a_den Horner step: add coefficient_36 + let t476 = circuit_mul(t475, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t477 = circuit_add(in86, t476); // Eval sumdlogdiv_a_den Horner step: add coefficient_35 + let t478 = circuit_mul(t477, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t479 = circuit_add(in85, t478); // Eval sumdlogdiv_a_den Horner step: add coefficient_34 + let t480 = circuit_mul(t479, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t481 = circuit_add(in84, t480); // Eval sumdlogdiv_a_den Horner step: add coefficient_33 + let t482 = circuit_mul(t481, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t483 = circuit_add(in83, t482); // Eval sumdlogdiv_a_den Horner step: add coefficient_32 + let t484 = circuit_mul(t483, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t485 = circuit_add(in82, t484); // Eval sumdlogdiv_a_den Horner step: add coefficient_31 + let t486 = circuit_mul(t485, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t487 = circuit_add(in81, t486); // Eval sumdlogdiv_a_den Horner step: add coefficient_30 + let t488 = circuit_mul(t487, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t489 = circuit_add(in80, t488); // Eval sumdlogdiv_a_den Horner step: add coefficient_29 + let t490 = circuit_mul(t489, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t491 = circuit_add(in79, t490); // Eval sumdlogdiv_a_den Horner step: add coefficient_28 + let t492 = circuit_mul(t491, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t493 = circuit_add(in78, t492); // Eval sumdlogdiv_a_den Horner step: add coefficient_27 + let t494 = circuit_mul(t493, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t495 = circuit_add(in77, t494); // Eval sumdlogdiv_a_den Horner step: add coefficient_26 + let t496 = circuit_mul(t495, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t497 = circuit_add(in76, t496); // Eval sumdlogdiv_a_den Horner step: add coefficient_25 + let t498 = circuit_mul(t497, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t499 = circuit_add(in75, t498); // Eval sumdlogdiv_a_den Horner step: add coefficient_24 + let t500 = circuit_mul(t499, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t501 = circuit_add(in74, t500); // Eval sumdlogdiv_a_den Horner step: add coefficient_23 + let t502 = circuit_mul(t501, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t503 = circuit_add(in73, t502); // Eval sumdlogdiv_a_den Horner step: add coefficient_22 + let t504 = circuit_mul(t503, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t505 = circuit_add(in72, t504); // Eval sumdlogdiv_a_den Horner step: add coefficient_21 + let t506 = circuit_mul(t505, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t507 = circuit_add(in71, t506); // Eval sumdlogdiv_a_den Horner step: add coefficient_20 + let t508 = circuit_mul(t507, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t509 = circuit_add(in70, t508); // Eval sumdlogdiv_a_den Horner step: add coefficient_19 + let t510 = circuit_mul(t509, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t511 = circuit_add(in69, t510); // Eval sumdlogdiv_a_den Horner step: add coefficient_18 + let t512 = circuit_mul(t511, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t513 = circuit_add(in68, t512); // Eval sumdlogdiv_a_den Horner step: add coefficient_17 + let t514 = circuit_mul(t513, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t515 = circuit_add(in67, t514); // Eval sumdlogdiv_a_den Horner step: add coefficient_16 + let t516 = circuit_mul(t515, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t517 = circuit_add(in66, t516); // Eval sumdlogdiv_a_den Horner step: add coefficient_15 + let t518 = circuit_mul(t517, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t519 = circuit_add(in65, t518); // Eval sumdlogdiv_a_den Horner step: add coefficient_14 + let t520 = circuit_mul(t519, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t521 = circuit_add(in64, t520); // Eval sumdlogdiv_a_den Horner step: add coefficient_13 + let t522 = circuit_mul(t521, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t523 = circuit_add(in63, t522); // Eval sumdlogdiv_a_den Horner step: add coefficient_12 + let t524 = circuit_mul(t523, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t525 = circuit_add(in62, t524); // Eval sumdlogdiv_a_den Horner step: add coefficient_11 + let t526 = circuit_mul(t525, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t527 = circuit_add(in61, t526); // Eval sumdlogdiv_a_den Horner step: add coefficient_10 + let t528 = circuit_mul(t527, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t529 = circuit_add(in60, t528); // Eval sumdlogdiv_a_den Horner step: add coefficient_9 + let t530 = circuit_mul(t529, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t531 = circuit_add(in59, t530); // Eval sumdlogdiv_a_den Horner step: add coefficient_8 + let t532 = circuit_mul(t531, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t533 = circuit_add(in58, t532); // Eval sumdlogdiv_a_den Horner step: add coefficient_7 + let t534 = circuit_mul(t533, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t535 = circuit_add(in57, t534); // Eval sumdlogdiv_a_den Horner step: add coefficient_6 + let t536 = circuit_mul(t535, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t537 = circuit_add(in56, t536); // Eval sumdlogdiv_a_den Horner step: add coefficient_5 + let t538 = circuit_mul(t537, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t539 = circuit_add(in55, t538); // Eval sumdlogdiv_a_den Horner step: add coefficient_4 + let t540 = circuit_mul(t539, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t541 = circuit_add(in54, t540); // Eval sumdlogdiv_a_den Horner step: add coefficient_3 + let t542 = circuit_mul(t541, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t543 = circuit_add(in53, t542); // Eval sumdlogdiv_a_den Horner step: add coefficient_2 + let t544 = circuit_mul(t543, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t545 = circuit_add(in52, t544); // Eval sumdlogdiv_a_den Horner step: add coefficient_1 + let t546 = circuit_mul(t545, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t547 = circuit_add(in51, t546); // Eval sumdlogdiv_a_den Horner step: add coefficient_0 + let t548 = circuit_inverse(t547); + let t549 = circuit_mul(t457, t548); + let t550 = circuit_mul(in142, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t551 = circuit_add(in141, t550); // Eval sumdlogdiv_b_num Horner step: add coefficient_44 + let t552 = circuit_mul(t551, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t553 = circuit_add(in140, t552); // Eval sumdlogdiv_b_num Horner step: add coefficient_43 + let t554 = circuit_mul(t553, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t555 = circuit_add(in139, t554); // Eval sumdlogdiv_b_num Horner step: add coefficient_42 + let t556 = circuit_mul(t555, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t557 = circuit_add(in138, t556); // Eval sumdlogdiv_b_num Horner step: add coefficient_41 + let t558 = circuit_mul(t557, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t559 = circuit_add(in137, t558); // Eval sumdlogdiv_b_num Horner step: add coefficient_40 + let t560 = circuit_mul(t559, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t561 = circuit_add(in136, t560); // Eval sumdlogdiv_b_num Horner step: add coefficient_39 + let t562 = circuit_mul(t561, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t563 = circuit_add(in135, t562); // Eval sumdlogdiv_b_num Horner step: add coefficient_38 + let t564 = circuit_mul(t563, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t565 = circuit_add(in134, t564); // Eval sumdlogdiv_b_num Horner step: add coefficient_37 + let t566 = circuit_mul(t565, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t567 = circuit_add(in133, t566); // Eval sumdlogdiv_b_num Horner step: add coefficient_36 + let t568 = circuit_mul(t567, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t569 = circuit_add(in132, t568); // Eval sumdlogdiv_b_num Horner step: add coefficient_35 + let t570 = circuit_mul(t569, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t571 = circuit_add(in131, t570); // Eval sumdlogdiv_b_num Horner step: add coefficient_34 + let t572 = circuit_mul(t571, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t573 = circuit_add(in130, t572); // Eval sumdlogdiv_b_num Horner step: add coefficient_33 + let t574 = circuit_mul(t573, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t575 = circuit_add(in129, t574); // Eval sumdlogdiv_b_num Horner step: add coefficient_32 + let t576 = circuit_mul(t575, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t577 = circuit_add(in128, t576); // Eval sumdlogdiv_b_num Horner step: add coefficient_31 + let t578 = circuit_mul(t577, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t579 = circuit_add(in127, t578); // Eval sumdlogdiv_b_num Horner step: add coefficient_30 + let t580 = circuit_mul(t579, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t581 = circuit_add(in126, t580); // Eval sumdlogdiv_b_num Horner step: add coefficient_29 + let t582 = circuit_mul(t581, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t583 = circuit_add(in125, t582); // Eval sumdlogdiv_b_num Horner step: add coefficient_28 + let t584 = circuit_mul(t583, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t585 = circuit_add(in124, t584); // Eval sumdlogdiv_b_num Horner step: add coefficient_27 + let t586 = circuit_mul(t585, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t587 = circuit_add(in123, t586); // Eval sumdlogdiv_b_num Horner step: add coefficient_26 + let t588 = circuit_mul(t587, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t589 = circuit_add(in122, t588); // Eval sumdlogdiv_b_num Horner step: add coefficient_25 + let t590 = circuit_mul(t589, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t591 = circuit_add(in121, t590); // Eval sumdlogdiv_b_num Horner step: add coefficient_24 + let t592 = circuit_mul(t591, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t593 = circuit_add(in120, t592); // Eval sumdlogdiv_b_num Horner step: add coefficient_23 + let t594 = circuit_mul(t593, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t595 = circuit_add(in119, t594); // Eval sumdlogdiv_b_num Horner step: add coefficient_22 + let t596 = circuit_mul(t595, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t597 = circuit_add(in118, t596); // Eval sumdlogdiv_b_num Horner step: add coefficient_21 + let t598 = circuit_mul(t597, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t599 = circuit_add(in117, t598); // Eval sumdlogdiv_b_num Horner step: add coefficient_20 + let t600 = circuit_mul(t599, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t601 = circuit_add(in116, t600); // Eval sumdlogdiv_b_num Horner step: add coefficient_19 + let t602 = circuit_mul(t601, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t603 = circuit_add(in115, t602); // Eval sumdlogdiv_b_num Horner step: add coefficient_18 + let t604 = circuit_mul(t603, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t605 = circuit_add(in114, t604); // Eval sumdlogdiv_b_num Horner step: add coefficient_17 + let t606 = circuit_mul(t605, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t607 = circuit_add(in113, t606); // Eval sumdlogdiv_b_num Horner step: add coefficient_16 + let t608 = circuit_mul(t607, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t609 = circuit_add(in112, t608); // Eval sumdlogdiv_b_num Horner step: add coefficient_15 + let t610 = circuit_mul(t609, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t611 = circuit_add(in111, t610); // Eval sumdlogdiv_b_num Horner step: add coefficient_14 + let t612 = circuit_mul(t611, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t613 = circuit_add(in110, t612); // Eval sumdlogdiv_b_num Horner step: add coefficient_13 + let t614 = circuit_mul(t613, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t615 = circuit_add(in109, t614); // Eval sumdlogdiv_b_num Horner step: add coefficient_12 + let t616 = circuit_mul(t615, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t617 = circuit_add(in108, t616); // Eval sumdlogdiv_b_num Horner step: add coefficient_11 + let t618 = circuit_mul(t617, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t619 = circuit_add(in107, t618); // Eval sumdlogdiv_b_num Horner step: add coefficient_10 + let t620 = circuit_mul(t619, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t621 = circuit_add(in106, t620); // Eval sumdlogdiv_b_num Horner step: add coefficient_9 + let t622 = circuit_mul(t621, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t623 = circuit_add(in105, t622); // Eval sumdlogdiv_b_num Horner step: add coefficient_8 + let t624 = circuit_mul(t623, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t625 = circuit_add(in104, t624); // Eval sumdlogdiv_b_num Horner step: add coefficient_7 + let t626 = circuit_mul(t625, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t627 = circuit_add(in103, t626); // Eval sumdlogdiv_b_num Horner step: add coefficient_6 + let t628 = circuit_mul(t627, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t629 = circuit_add(in102, t628); // Eval sumdlogdiv_b_num Horner step: add coefficient_5 + let t630 = circuit_mul(t629, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t631 = circuit_add(in101, t630); // Eval sumdlogdiv_b_num Horner step: add coefficient_4 + let t632 = circuit_mul(t631, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t633 = circuit_add(in100, t632); // Eval sumdlogdiv_b_num Horner step: add coefficient_3 + let t634 = circuit_mul(t633, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t635 = circuit_add(in99, t634); // Eval sumdlogdiv_b_num Horner step: add coefficient_2 + let t636 = circuit_mul(t635, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t637 = circuit_add(in98, t636); // Eval sumdlogdiv_b_num Horner step: add coefficient_1 + let t638 = circuit_mul(t637, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t639 = circuit_add(in97, t638); // Eval sumdlogdiv_b_num Horner step: add coefficient_0 + let t640 = circuit_mul(in191, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t641 = circuit_add(in190, t640); // Eval sumdlogdiv_b_den Horner step: add coefficient_47 + let t642 = circuit_mul(t641, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t643 = circuit_add(in189, t642); // Eval sumdlogdiv_b_den Horner step: add coefficient_46 + let t644 = circuit_mul(t643, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t645 = circuit_add(in188, t644); // Eval sumdlogdiv_b_den Horner step: add coefficient_45 + let t646 = circuit_mul(t645, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t647 = circuit_add(in187, t646); // Eval sumdlogdiv_b_den Horner step: add coefficient_44 + let t648 = circuit_mul(t647, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t649 = circuit_add(in186, t648); // Eval sumdlogdiv_b_den Horner step: add coefficient_43 + let t650 = circuit_mul(t649, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t651 = circuit_add(in185, t650); // Eval sumdlogdiv_b_den Horner step: add coefficient_42 + let t652 = circuit_mul(t651, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t653 = circuit_add(in184, t652); // Eval sumdlogdiv_b_den Horner step: add coefficient_41 + let t654 = circuit_mul(t653, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t655 = circuit_add(in183, t654); // Eval sumdlogdiv_b_den Horner step: add coefficient_40 + let t656 = circuit_mul(t655, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t657 = circuit_add(in182, t656); // Eval sumdlogdiv_b_den Horner step: add coefficient_39 + let t658 = circuit_mul(t657, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t659 = circuit_add(in181, t658); // Eval sumdlogdiv_b_den Horner step: add coefficient_38 + let t660 = circuit_mul(t659, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t661 = circuit_add(in180, t660); // Eval sumdlogdiv_b_den Horner step: add coefficient_37 + let t662 = circuit_mul(t661, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t663 = circuit_add(in179, t662); // Eval sumdlogdiv_b_den Horner step: add coefficient_36 + let t664 = circuit_mul(t663, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t665 = circuit_add(in178, t664); // Eval sumdlogdiv_b_den Horner step: add coefficient_35 + let t666 = circuit_mul(t665, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t667 = circuit_add(in177, t666); // Eval sumdlogdiv_b_den Horner step: add coefficient_34 + let t668 = circuit_mul(t667, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t669 = circuit_add(in176, t668); // Eval sumdlogdiv_b_den Horner step: add coefficient_33 + let t670 = circuit_mul(t669, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t671 = circuit_add(in175, t670); // Eval sumdlogdiv_b_den Horner step: add coefficient_32 + let t672 = circuit_mul(t671, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t673 = circuit_add(in174, t672); // Eval sumdlogdiv_b_den Horner step: add coefficient_31 + let t674 = circuit_mul(t673, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t675 = circuit_add(in173, t674); // Eval sumdlogdiv_b_den Horner step: add coefficient_30 + let t676 = circuit_mul(t675, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t677 = circuit_add(in172, t676); // Eval sumdlogdiv_b_den Horner step: add coefficient_29 + let t678 = circuit_mul(t677, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t679 = circuit_add(in171, t678); // Eval sumdlogdiv_b_den Horner step: add coefficient_28 + let t680 = circuit_mul(t679, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t681 = circuit_add(in170, t680); // Eval sumdlogdiv_b_den Horner step: add coefficient_27 + let t682 = circuit_mul(t681, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t683 = circuit_add(in169, t682); // Eval sumdlogdiv_b_den Horner step: add coefficient_26 + let t684 = circuit_mul(t683, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t685 = circuit_add(in168, t684); // Eval sumdlogdiv_b_den Horner step: add coefficient_25 + let t686 = circuit_mul(t685, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t687 = circuit_add(in167, t686); // Eval sumdlogdiv_b_den Horner step: add coefficient_24 + let t688 = circuit_mul(t687, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t689 = circuit_add(in166, t688); // Eval sumdlogdiv_b_den Horner step: add coefficient_23 + let t690 = circuit_mul(t689, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t691 = circuit_add(in165, t690); // Eval sumdlogdiv_b_den Horner step: add coefficient_22 + let t692 = circuit_mul(t691, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t693 = circuit_add(in164, t692); // Eval sumdlogdiv_b_den Horner step: add coefficient_21 + let t694 = circuit_mul(t693, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t695 = circuit_add(in163, t694); // Eval sumdlogdiv_b_den Horner step: add coefficient_20 + let t696 = circuit_mul(t695, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t697 = circuit_add(in162, t696); // Eval sumdlogdiv_b_den Horner step: add coefficient_19 + let t698 = circuit_mul(t697, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t699 = circuit_add(in161, t698); // Eval sumdlogdiv_b_den Horner step: add coefficient_18 + let t700 = circuit_mul(t699, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t701 = circuit_add(in160, t700); // Eval sumdlogdiv_b_den Horner step: add coefficient_17 + let t702 = circuit_mul(t701, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t703 = circuit_add(in159, t702); // Eval sumdlogdiv_b_den Horner step: add coefficient_16 + let t704 = circuit_mul(t703, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t705 = circuit_add(in158, t704); // Eval sumdlogdiv_b_den Horner step: add coefficient_15 + let t706 = circuit_mul(t705, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t707 = circuit_add(in157, t706); // Eval sumdlogdiv_b_den Horner step: add coefficient_14 + let t708 = circuit_mul(t707, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t709 = circuit_add(in156, t708); // Eval sumdlogdiv_b_den Horner step: add coefficient_13 + let t710 = circuit_mul(t709, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t711 = circuit_add(in155, t710); // Eval sumdlogdiv_b_den Horner step: add coefficient_12 + let t712 = circuit_mul(t711, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t713 = circuit_add(in154, t712); // Eval sumdlogdiv_b_den Horner step: add coefficient_11 + let t714 = circuit_mul(t713, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t715 = circuit_add(in153, t714); // Eval sumdlogdiv_b_den Horner step: add coefficient_10 + let t716 = circuit_mul(t715, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t717 = circuit_add(in152, t716); // Eval sumdlogdiv_b_den Horner step: add coefficient_9 + let t718 = circuit_mul(t717, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t719 = circuit_add(in151, t718); // Eval sumdlogdiv_b_den Horner step: add coefficient_8 + let t720 = circuit_mul(t719, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t721 = circuit_add(in150, t720); // Eval sumdlogdiv_b_den Horner step: add coefficient_7 + let t722 = circuit_mul(t721, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t723 = circuit_add(in149, t722); // Eval sumdlogdiv_b_den Horner step: add coefficient_6 + let t724 = circuit_mul(t723, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t725 = circuit_add(in148, t724); // Eval sumdlogdiv_b_den Horner step: add coefficient_5 + let t726 = circuit_mul(t725, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t727 = circuit_add(in147, t726); // Eval sumdlogdiv_b_den Horner step: add coefficient_4 + let t728 = circuit_mul(t727, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t729 = circuit_add(in146, t728); // Eval sumdlogdiv_b_den Horner step: add coefficient_3 + let t730 = circuit_mul(t729, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t731 = circuit_add(in145, t730); // Eval sumdlogdiv_b_den Horner step: add coefficient_2 + let t732 = circuit_mul(t731, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t733 = circuit_add(in144, t732); // Eval sumdlogdiv_b_den Horner step: add coefficient_1 + let t734 = circuit_mul(t733, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t735 = circuit_add(in143, t734); // Eval sumdlogdiv_b_den Horner step: add coefficient_0 + let t736 = circuit_inverse(t735); + let t737 = circuit_mul(t639, t736); + let t738 = circuit_mul(in3, t737); + let t739 = circuit_add(t549, t738); + let t740 = circuit_mul(in4, t369); + let t741 = circuit_mul(in5, t739); + let t742 = circuit_sub(t740, t741); + + let modulus = get_BN254_modulus(); // BN254 prime field modulus + + let mut circuit_inputs = (t742,).new_inputs(); + // Prefill constants: + + // Fill inputs: + circuit_inputs = circuit_inputs.next_2(A0.x); // in0 + circuit_inputs = circuit_inputs.next_2(A0.y); // in1 + circuit_inputs = circuit_inputs.next_2(A2.x); // in2 + circuit_inputs = circuit_inputs.next_2(A2.y); // in3 + circuit_inputs = circuit_inputs.next_2(coeff0); // in4 + circuit_inputs = circuit_inputs.next_2(coeff2); // in5 + let mut SumDlogDivBatched_a_num = SumDlogDivBatched.a_num; + while let Option::Some(val) = SumDlogDivBatched_a_num.pop_front() { + circuit_inputs = circuit_inputs.next_2(*val); + }; + let mut SumDlogDivBatched_a_den = SumDlogDivBatched.a_den; + while let Option::Some(val) = SumDlogDivBatched_a_den.pop_front() { + circuit_inputs = circuit_inputs.next_2(*val); + }; + let mut SumDlogDivBatched_b_num = SumDlogDivBatched.b_num; + while let Option::Some(val) = SumDlogDivBatched_b_num.pop_front() { + circuit_inputs = circuit_inputs.next_2(*val); + }; + let mut SumDlogDivBatched_b_den = SumDlogDivBatched.b_den; + while let Option::Some(val) = SumDlogDivBatched_b_den.pop_front() { + circuit_inputs = circuit_inputs.next_2(*val); + }; + // in6 - in191 + + let outputs = circuit_inputs.done_2().eval(modulus).unwrap(); + let res: u384 = outputs.get_output(t742); + return (res,); +} diff --git a/src/contracts/noir_ultra_keccak_honk_example/src/honk_verifier_constants.cairo b/src/contracts/noir_ultra_keccak_honk_example/src/honk_verifier_constants.cairo new file mode 100644 index 00000000..b063ca20 --- /dev/null +++ b/src/contracts/noir_ultra_keccak_honk_example/src/honk_verifier_constants.cairo @@ -0,0 +1,4253 @@ +use garaga::definitions::{G1Point, G2Line, u384, u288}; +use garaga::utils::noir::HonkVk; + +pub const vk: HonkVk = HonkVk { + circuit_size: 32, + log_circuit_size: 5, + public_inputs_size: 1, + public_inputs_offset: 1, + qm: G1Point { + x: u384 { + limb0: 0x4b4a44a243c68df3f358c697, + limb1: 0x2caf35af5543a21e67a579d0, + limb2: 0x415666cb6079663, + limb3: 0x0, + }, + y: u384 { + limb0: 0x221768e740f92361b30c2d62, + limb1: 0x5669052529424eb317e1aac8, + limb2: 0x13cfcaddb617e8f2, + limb3: 0x0, + }, + }, + qc: G1Point { + x: u384 { + limb0: 0x9d99fb66b26ccca2668ae6a8, + limb1: 0x5809ac290a982776516b8c60, + limb2: 0xc5f79c354ff1aed, + limb3: 0x0, + }, + y: u384 { + limb0: 0x205ce031ec8bb3ffa1999a4, + limb1: 0x3ee886d57c3f18044dd8b757, + limb2: 0xe50425d1b09a4fe, + limb3: 0x0, + }, + }, + ql: G1Point { + x: u384 { + limb0: 0xf241677faff2882cb6d3e72d, + limb1: 0x4011bf5c5de9f0d417ce67e6, + limb2: 0x276ed9e001db810f, + limb3: 0x0, + }, + y: u384 { + limb0: 0x460254d4d7e89a4f280678c1, + limb1: 0x35855693b62013016015f094, + limb2: 0x8eb9210acaa3896, + limb3: 0x0, + }, + }, + qr: G1Point { + x: u384 { + limb0: 0xa2adc9afbeafb70c39377af8, + limb1: 0xd39a5ce2f98cad6e37c844dd, + limb2: 0x9dfb00e38302724, + limb3: 0x0, + }, + y: u384 { + limb0: 0x8dfed3329b09c829ee03808b, + limb1: 0x57f0acbc1742c0934413b1be, + limb2: 0x219cf659f31a3eeb, + limb3: 0x0, + }, + }, + qo: G1Point { + x: u384 { + limb0: 0xd38845a1c80f915e96c49ea3, + limb1: 0x2efb019aa53af0331bb4077a, + limb2: 0x1f63cfcf82c51724, + limb3: 0x0, + }, + y: u384 { + limb0: 0x430ae1157ef1b6e89bf926d, + limb1: 0x712b705ee1281d7e8de7567e, + limb2: 0x23351d7bd3ff9c2a, + limb3: 0x0, + }, + }, + q4: G1Point { + x: u384 { + limb0: 0xe72d4776353451da817f2a2b, + limb1: 0xdf1152784c16d22ad2cce4ca, + limb2: 0xb2cdce018f3cad9, + limb3: 0x0, + }, + y: u384 { + limb0: 0xfd811bb4492143712bb9a461, + limb1: 0xe71c478b02e81ba39e6ea655, + limb2: 0x219f88713efa809d, + limb3: 0x0, + }, + }, + qArith: G1Point { + x: u384 { + limb0: 0xed036a09ff10a25e00430aee, + limb1: 0x7bca1b209db74fcb6f331dd2, + limb2: 0x1405e253bf25766c, + limb3: 0x0, + }, + y: u384 { + limb0: 0x7bf0e438229204f58dde9e02, + limb1: 0xaf529acee678e4cdbb8d660b, + limb2: 0x89d58e8fb2152de, + limb3: 0x0, + }, + }, + qDeltaRange: G1Point { + x: u384 { + limb0: 0x8341b5afdc0c863a59ab7e70, + limb1: 0x7267e50bb898148ef78d5de0, + limb2: 0x1618ea679c4ee146, + limb3: 0x0, + }, + y: u384 { + limb0: 0x8a49046cce4062820e5c1116, + limb1: 0xa97cc3e75da6cff9a3659c3b, + limb2: 0x23268ad7678b97fb, + limb3: 0x0, + }, + }, + qElliptic: G1Point { + x: u384 { + limb0: 0x5df3af7487468bdfa2fd8325, + limb1: 0xb0ccdb27df1434557e054c6, + limb2: 0x1a11684e6c135cbe, + limb3: 0x0, + }, + y: u384 { + limb0: 0x619e58d7db7f2b28cec21202, + limb1: 0xd523e9572d7f4c60cadfef00, + limb2: 0x2a8f4fba8e6893b6, + limb3: 0x0, + }, + }, + qAux: G1Point { + x: u384 { + limb0: 0x7ed60a3cda0c7db10c955c8a, + limb1: 0x9301dfeeed1b752548d2ebff, + limb2: 0x1469006b8b61c8d7, + limb3: 0x0, + }, + y: u384 { + limb0: 0x4a91df6570722995d636f037, + limb1: 0x68ab919e345670ab029bcbce, + limb2: 0x19c2b11ddeff8ffe, + limb3: 0x0, + }, + }, + qLookup: G1Point { + x: u384 { + limb0: 0x13618ac61a190b1313984c41, + limb1: 0xaebfa87e81eb08f45b112ec3, + limb2: 0x1dd04a8b68480307, + limb3: 0x0, + }, + y: u384 { + limb0: 0xf076d517537a97baa29dc9b5, + limb1: 0xbc23f807bbc3ae334494a7de, + limb2: 0x246a2b5e4a48922a, + limb3: 0x0, + }, + }, + qPoseidon2External: G1Point { + x: u384 { + limb0: 0x256adeca293661e04f1a3ddf, + limb1: 0x5c3ed0f88d90604a4c8d6886, + limb2: 0x1aebf53057be467f, + limb3: 0x0, + }, + y: u384 { + limb0: 0x60efa4921bc0e5c16da58b6f, + limb1: 0x21c63599557c6473249908a1, + limb2: 0x2bb5fcc21332b835, + limb3: 0x0, + }, + }, + qPoseidon2Internal: G1Point { + x: u384 { + limb0: 0x27eddb28bb72f061415e49e, + limb1: 0x7e5c717ce51db5b7b0f74ed8, + limb2: 0x2d855b5b9eda3124, + limb3: 0x0, + }, + y: u384 { + limb0: 0xc81078227f33651c341b7704, + limb1: 0x6558b670690358ad63520266, + limb2: 0x1e857d997cc8bd0b, + limb3: 0x0, + }, + }, + s1: G1Point { + x: u384 { + limb0: 0xd19a392b193a4a55591f2f58, + limb1: 0x213d543b19fb4b060ada6440, + limb2: 0xf028430324245ce, + limb3: 0x0, + }, + y: u384 { + limb0: 0x1c2865f2c6b06d9e136c0c1f, + limb1: 0xd6136addf0a86dee6079d093, + limb2: 0x18d26b321ef43284, + limb3: 0x0, + }, + }, + s2: G1Point { + x: u384 { + limb0: 0xe5e70930e406816ace62fb2b, + limb1: 0x52b3c6c9dc6dd63618ac18f0, + limb2: 0x2eef5de41b9a7b0e, + limb3: 0x0, + }, + y: u384 { + limb0: 0xa7bcb6657a61fcb8fbaea4f, + limb1: 0x8b7092f7c37881572a651d71, + limb2: 0x144a24e7e4fa7e85, + limb3: 0x0, + }, + }, + s3: G1Point { + x: u384 { + limb0: 0xdb1cadf52a0aca08d15ee810, + limb1: 0xe34257a9297b836215ebec6e, + limb2: 0x2e7e532e1656ed4c, + limb3: 0x0, + }, + y: u384 { + limb0: 0x6451db4646e706b8d5d551cb, + limb1: 0x91bfff7e039b6fbc26883adb, + limb2: 0x1a08f5a547b8cb59, + limb3: 0x0, + }, + }, + s4: G1Point { + x: u384 { + limb0: 0x21271e8f84bacd5539310bda, + limb1: 0x3fab8895250839249e9f72d5, + limb2: 0x17fc90a343ca94a3, + limb3: 0x0, + }, + y: u384 { + limb0: 0x7aa75f26d60b9882f20d1d7c, + limb1: 0x7e1be2a79612f14746f91ee4, + limb2: 0x18bce7273e69eef0, + limb3: 0x0, + }, + }, + id1: G1Point { + x: u384 { + limb0: 0x526d79e2bdcb2ee35eb436a7, + limb1: 0xf98c0941608d13c8927366c, + limb2: 0x23129a571c8e2e73, + limb3: 0x0, + }, + y: u384 { + limb0: 0xecc457ca9600e1181fecf090, + limb1: 0xb30728b02e23ac9b5d3a4416, + limb2: 0x9b08681f6335d38, + limb3: 0x0, + }, + }, + id2: G1Point { + x: u384 { + limb0: 0x9599c298120453636906284d, + limb1: 0x3b1c218d26fa88cd2d946469, + limb2: 0x2480a28e74a1f17b, + limb3: 0x0, + }, + y: u384 { + limb0: 0xacf88637c1425fa4a583b6c7, + limb1: 0xad395135d6c53a665319e307, + limb2: 0x14ab9cdff943bf65, + limb3: 0x0, + }, + }, + id3: G1Point { + x: u384 { + limb0: 0x80b9bef7b9a54c80a208a87, + limb1: 0xfb6c651d048e34d640b94efa, + limb2: 0x1e3912058c25e529, + limb3: 0x0, + }, + y: u384 { + limb0: 0x55da5a9446187d0ee9f6723d, + limb1: 0x9ea1fffb0f430f5225a6bd8d, + limb2: 0x2f17a75505c3035b, + limb3: 0x0, + }, + }, + id4: G1Point { + x: u384 { + limb0: 0x456277b86c32a18982dcb185, + limb1: 0xf8f2b8d28b57cea3ee22dd60, + limb2: 0x2493c99a3d068b03, + limb3: 0x0, + }, + y: u384 { + limb0: 0x320082c20ec71bbdc92196c1, + limb1: 0x843cd63f09ecacf6c3731486, + limb2: 0x1ded39c4c8366469, + limb3: 0x0, + }, + }, + t1: G1Point { + x: u384 { + limb0: 0xb161763e46601d95844837ef, + limb1: 0x59cb3b41ebbcdd494997477a, + limb2: 0x2e0cddbc5712d79b, + limb3: 0x0, + }, + y: u384 { + limb0: 0x31d350750df62dbbc41a1bd9, + limb1: 0x505964d14315ec426db4c645, + limb2: 0x303126892f664d8d, + limb3: 0x0, + }, + }, + t2: G1Point { + x: u384 { + limb0: 0xc0c62bd59acfe3e3e125672, + limb1: 0x6b565e0b08507476a6b2c604, + limb2: 0x874a5ad262eecc, + limb3: 0x0, + }, + y: u384 { + limb0: 0x183c9c6841c2b8ef2ca1df04, + limb1: 0x8c3edc18982b9bef082fb517, + limb2: 0x127b2a745a1b7496, + limb3: 0x0, + }, + }, + t3: G1Point { + x: u384 { + limb0: 0xd56e1eb23d789a8f710d5be6, + limb1: 0xb1871081954e86c9efd4f8c3, + limb2: 0x15a18748490ff4c2, + limb3: 0x0, + }, + y: u384 { + limb0: 0xdc016ab110eacd554a1d8bbf, + limb1: 0xa95df075833071a0011ef987, + limb2: 0x2097c84955059442, + limb3: 0x0, + }, + }, + t4: G1Point { + x: u384 { + limb0: 0x3085b68b00a93c17897c2877, + limb1: 0x798eb952c66824d38e9426ad, + limb2: 0x2aecd48089890ea0, + limb3: 0x0, + }, + y: u384 { + limb0: 0x5ce559f441f2e71477ff3ddb, + limb1: 0x8a7a23331d215078d8a9ce40, + limb2: 0x1216bdb2f0d961bb, + limb3: 0x0, + }, + }, + lagrange_first: G1Point { + x: u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + y: u384 { limb0: 0x2, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + }, + lagrange_last: G1Point { + x: u384 { + limb0: 0x71fba7a412dd61fcf34e8ceb, + limb1: 0x71155617b6af56ee40d90bea, + limb2: 0x140b0936c323fd24, + limb3: 0x0, + }, + y: u384 { + limb0: 0x185c5ff8e440fd3d73b6fefc, + limb1: 0xc87d652e059df42b90071823, + limb2: 0x2b6c10790a5f6631, + limb3: 0x0, + }, + }, +}; + +pub const precomputed_lines: [G2Line; 176] = [ + G2Line { + r0a0: u288 { + limb0: 0x4d347301094edcbfa224d3d5, + limb1: 0x98005e68cacde68a193b54e6, + limb2: 0x237db2935c4432bc, + }, + r0a1: u288 { + limb0: 0x6b4ba735fba44e801d415637, + limb1: 0x707c3ec1809ae9bafafa05dd, + limb2: 0x124077e14a7d826a, + }, + r1a0: u288 { + limb0: 0x49a8dc1dd6e067932b6a7e0d, + limb1: 0x7676d0000961488f8fbce033, + limb2: 0x3b7178c857630da, + }, + r1a1: u288 { + limb0: 0x98c81278efe1e96b86397652, + limb1: 0xe3520b9dfa601ead6f0bf9cd, + limb2: 0x2b17c2b12c26fdd0, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x19f2be813f1a2cc51a251901, + limb1: 0xa120afb4bcd07fdae4c4c91b, + limb2: 0xcd8c8d94eedaaa5, + }, + r0a1: u288 { + limb0: 0xa3808ba2f25b910b50769d68, + limb1: 0xda666e5fa50719fcd79ea2c7, + limb2: 0x104262c7ecae13e5, + }, + r1a0: u288 { + limb0: 0xd00c9d5338bfc75cd1fe4002, + limb1: 0x25f7441c17b6428fffe6266b, + limb2: 0x25d0502e1109204d, + }, + r1a1: u288 { + limb0: 0x4ce60bf635ff0fe14cf89d2, + limb1: 0x9ca0af889fc43d4423a03197, + limb2: 0x1b323f9be536f345, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x1b3d578c32d1af5736582972, + limb1: 0x204fe74db6b371d37e4615ab, + limb2: 0xce69bdf84ed6d6d, + }, + r0a1: u288 { + limb0: 0xfd262357407c3d96bb3ba710, + limb1: 0x47d406f500e66ea29c8764b3, + limb2: 0x1e23d69196b41dbf, + }, + r1a0: u288 { + limb0: 0x1ec8ee6f65402483ad127f3a, + limb1: 0x41d975b678200fce07c48a5e, + limb2: 0x2cad36e65bbb6f4f, + }, + r1a1: u288 { + limb0: 0xcfa9b8144c3ea2ab524386f5, + limb1: 0xd4fe3a18872139b0287570c3, + limb2: 0x54c8bc1b50aa258, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xb5ee22ba52a7ed0c533b7173, + limb1: 0xbfa13123614ecf9c4853249b, + limb2: 0x6567a7f6972b7bb, + }, + r0a1: u288 { + limb0: 0xcf422f26ac76a450359f819e, + limb1: 0xc42d7517ae6f59453eaf32c7, + limb2: 0x899cb1e339f7582, + }, + r1a0: u288 { + limb0: 0x9f287f4842d688d7afd9cd67, + limb1: 0x30af75417670de33dfa95eda, + limb2: 0x1121d4ca1c2cab36, + }, + r1a1: u288 { + limb0: 0x7c4c55c27110f2c9a228f7d8, + limb1: 0x8f14f6c3a2e2c9d74b347bfe, + limb2: 0x83ef274ba7913a5, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x4e7f0c0bfd065f51be57e446, + limb1: 0x172f9601c4b0d882b2bca176, + limb2: 0x238b85999243f584, + }, + r0a1: u288 { + limb0: 0xc4f13eea49c4fb0b88065fdf, + limb1: 0xdde9d756dc7a3e60bfe2c7c9, + limb2: 0x2021ebaaf4838c43, + }, + r1a0: u288 { + limb0: 0x98652d3a0360c4ba067ebd45, + limb1: 0x9259019a69cb15cd979b4425, + limb2: 0xa93fe44d0287fdc, + }, + r1a1: u288 { + limb0: 0x63a369cdd8c09b18c3ad7375, + limb1: 0x1baf962de1bd1b1973e138fa, + limb2: 0x15320ed6fbfaace4, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x1a9ecb5a41abb65787e46934, + limb1: 0x28fec59f9911882bd4d50306, + limb2: 0x25996b3cd58cce92, + }, + r0a1: u288 { + limb0: 0x56f5cca0fddcae1bfbee4b4d, + limb1: 0x4237b58cc71911abcefd1d92, + limb2: 0x2d985c4da93484d4, + }, + r1a0: u288 { + limb0: 0x406454881e1f6cab8a9ab13c, + limb1: 0x2cdf1a77980edf520cc8f23f, + limb2: 0x20ce11ddb649cf18, + }, + r1a1: u288 { + limb0: 0xfe104a8fa2c57b6b94bf56d2, + limb1: 0xe2debabd9212070fd38f818, + limb2: 0x1c1a2364541a15be, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xfc23a674d089e9cfdefb1db8, + limb1: 0x9ddfd61d289b65a9b4254476, + limb2: 0x1e2f561324ef4447, + }, + r0a1: u288 { + limb0: 0xf67a6a9e31f6975b220642ea, + limb1: 0xccd852893796296e4d1ed330, + limb2: 0x94ff1987d19b62, + }, + r1a0: u288 { + limb0: 0x360c2a5aca59996d24cc1947, + limb1: 0x66c2d7d0d176a3bc53f386e8, + limb2: 0x2cfcc62a17fbeecb, + }, + r1a1: u288 { + limb0: 0x2ddc73389dd9a9e34168d8a9, + limb1: 0xae9afc57944748b835cbda0f, + limb2: 0x12f0a1f8cf564067, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xef09c2458cc3abc041e9fa2d, + limb1: 0x787c6d7a93e94be14277d18d, + limb2: 0xbb1d328b2d75a8a, + }, + r0a1: u288 { + limb0: 0x1911705c689a06b1dfab80c, + limb1: 0x72781338c8dfb4eb593e44c, + limb2: 0x1405249e47100437, + }, + r1a0: u288 { + limb0: 0x4dca335dcaeaf9d99ab7ad63, + limb1: 0xd36f68812432efaedffce9a7, + limb2: 0x1131840a72c4fa9, + }, + r1a1: u288 { + limb0: 0x5676dc996dc5b1ce91fd01c1, + limb1: 0xbbf4fcfae2062f0031601f40, + limb2: 0x2f8f5c5bff703235, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x9c963c4bdade6ce3d460b077, + limb1: 0x1738311feefc76f565e34e8a, + limb2: 0x1aae0d6c9e9888ad, + }, + r0a1: u288 { + limb0: 0x9272581fdf80b045c9c3f0a, + limb1: 0x3946807b0756e87666798edb, + limb2: 0x2bf6eeda2d8be192, + }, + r1a0: u288 { + limb0: 0x3e957661b35995552fb475de, + limb1: 0xd8076fa48f93f09d8128a2a8, + limb2: 0xb6f87c3f00a6fcf, + }, + r1a1: u288 { + limb0: 0xcf17d6cd2101301246a8f264, + limb1: 0x514d04ad989b91e697aa5a0e, + limb2: 0x175f17bbd0ad1219, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x894bc18cc70ca1987e3b8f9f, + limb1: 0xd4bfa535181f0f8659b063e3, + limb2: 0x19168d524164f463, + }, + r0a1: u288 { + limb0: 0x850ee8d0e9b58b82719a6e92, + limb1: 0x9fc4eb75cbb027c137d48341, + limb2: 0x2b2f8a383d944fa0, + }, + r1a0: u288 { + limb0: 0x5451c8974a709483c2b07fbd, + limb1: 0xd7e09837b8a2a3b78e7fe525, + limb2: 0x347d96be5e7fa31, + }, + r1a1: u288 { + limb0: 0x823f2ba2743ee254e4c18a1e, + limb1: 0x6a61af5db035c443ed0f8172, + limb2: 0x1e840eee275d1063, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xdd132544fc661724c31c8a08, + limb1: 0x287b549c39c0ea0a391cbe18, + limb2: 0x29c2742c0ca03d7b, + }, + r0a1: u288 { + limb0: 0xb3076d9218b75e044db009b0, + limb1: 0xf0e2da346da73ed6e537273, + limb2: 0x16cd48b0b23a5a69, + }, + r1a0: u288 { + limb0: 0x5eeab759aec37540ef3b3200, + limb1: 0x90c30b490593b4f0a2750f65, + limb2: 0x263476e7a8250501, + }, + r1a1: u288 { + limb0: 0x437a75606a5486770a5c4450, + limb1: 0xbb6a0a3aa70be067ddcfdbfc, + limb2: 0xc03b2e169fa0cd0, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x185a998303998a727a80004d, + limb1: 0xb23554df68e88aa4bcb90b09, + limb2: 0x293e05c0080aedc, + }, + r0a1: u288 { + limb0: 0xfcd79ce56915d6462fb8a51a, + limb1: 0x8c7691de25e8c4b96117b24, + limb2: 0xa849fd468442c55, + }, + r1a0: u288 { + limb0: 0xc8661606e6d6b1e5a00268eb, + limb1: 0xbe2235d18dd52b903e1858e2, + limb2: 0x222c8e6db445fbf7, + }, + r1a1: u288 { + limb0: 0x803355a17297b5f77e52231c, + limb1: 0x7927c03bd5d3798208bf7a23, + limb2: 0x111b3dbe82eb4f62, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x18d630598e58bb5d0102b30e, + limb1: 0x9767e27b02a8da37411a2787, + limb2: 0x100a541662b9cd7c, + }, + r0a1: u288 { + limb0: 0x4ca7313df2e168e7e5ea70, + limb1: 0xd49cce6abd50b574f31c2d72, + limb2: 0x78a2afbf72317e7, + }, + r1a0: u288 { + limb0: 0x6d99388b0a1a67d6b48d87e0, + limb1: 0x1d8711d321a193be3333bc68, + limb2: 0x27e76de53a010ce1, + }, + r1a1: u288 { + limb0: 0x77341bf4e1605e982fa50abd, + limb1: 0xc5cf10db170b4feaaf5f8f1b, + limb2: 0x762adef02274807, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x401adda3a335074256e01cf5, + limb1: 0x247f8405ee3a5143b8fc7947, + limb2: 0x2c37793269c12835, + }, + r0a1: u288 { + limb0: 0x9ecc215e40764ce6a6db3ce0, + limb1: 0x14e8a7b5a57b166edcdfb52, + limb2: 0x29e744551489dc3f, + }, + r1a0: u288 { + limb0: 0xee025e7cc0634b8b2fcd88dd, + limb1: 0x94b3602ee4867d04d1e549ae, + limb2: 0xcce5739cfedc699, + }, + r1a1: u288 { + limb0: 0x2c7318ae1f6db5d41f684334, + limb1: 0xd1ba91922e100971bd11dbb5, + limb2: 0x1d6c654d5c0913a4, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xa137b991ba9048aee9fa0bc7, + limb1: 0xf5433785c186cd1100ab6b80, + limb2: 0xab519fd7cf8e7f9, + }, + r0a1: u288 { + limb0: 0x90832f45d3398c60aa1a74e2, + limb1: 0x17f7ac209532723f22a344b, + limb2: 0x23db979f8481c5f, + }, + r1a0: u288 { + limb0: 0x723b0e23c2808a5d1ea6b11d, + limb1: 0x3030030d26411f84235c3af5, + limb2: 0x122e78da5509eddb, + }, + r1a1: u288 { + limb0: 0xf1718c1e21a9bc3ec822f319, + limb1: 0xf5ee6dfa3bd3272b2f09f0c7, + limb2: 0x5a29c1e27616b34, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x6cf0dc0a1a42af130a792bff, + limb1: 0x6eeb4dd41cb8967cd7416c41, + limb2: 0x832ca9524375cb4, + }, + r0a1: u288 { + limb0: 0x7e263bdeb1fedd385682b4fc, + limb1: 0x3eee92fe8cdb332aeb31d573, + limb2: 0x125dc8ce07406159, + }, + r1a0: u288 { + limb0: 0x5fce3aa533d50f8eff589829, + limb1: 0x15cefc9330a131dfb10a5ae6, + limb2: 0x2fa0a33e98e84220, + }, + r1a1: u288 { + limb0: 0xed6540b1d66bbf1f7bf86da8, + limb1: 0x3a5266544635cad0d58d64d6, + limb2: 0x149069d5ba2e34da, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xbc1ede480873fceb8739511e, + limb1: 0xd5a60533bd0ce7869efbc15, + limb2: 0x182c17d793eba74d, + }, + r0a1: u288 { + limb0: 0x83bf38d91876ad8999516bc2, + limb1: 0x7756322ea3dc079289d51f2d, + limb2: 0x1d0f6156a89a4244, + }, + r1a0: u288 { + limb0: 0x6aba652f197be8f99707b88c, + limb1: 0xbf94286c245794ea0f562f32, + limb2: 0x25a358967a2ca81d, + }, + r1a1: u288 { + limb0: 0xc028cbff48c01433e8b23568, + limb1: 0xd2e791f5772ed43b056beba1, + limb2: 0x83eb38dff4960e, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xf0ea4a2e24640eb0043fa781, + limb1: 0x8a5ca14e0ac3b7d4409fcb40, + limb2: 0x67b373e8abc5602, + }, + r0a1: u288 { + limb0: 0x7c391162763fc85bf5c94818, + limb1: 0xb389e19eb97568e7e7e4617d, + limb2: 0x1d3f1c590945ef5c, + }, + r1a0: u288 { + limb0: 0xce60f9534da6a36cda2ebe99, + limb1: 0x4a48ecfd6beb4596b2736458, + limb2: 0x2a3e1d1f2d7f13e0, + }, + r1a1: u288 { + limb0: 0x8546f7e328bc13d11bb19a65, + limb1: 0xb68deedd4c4b131fa83bb2a5, + limb2: 0x15f7b8d2c8e7626e, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xc2a2b787d8e718e81970db80, + limb1: 0x5372abeaf56844dee60d6198, + limb2: 0x131210153a2217d6, + }, + r0a1: u288 { + limb0: 0x70421980313e09a8a0e5a82d, + limb1: 0xf75ca1f68f4b8deafb1d3b48, + limb2: 0x102113c9b6feb035, + }, + r1a0: u288 { + limb0: 0x4654c11d73bda84873de9b86, + limb1: 0xa67601bca2e595339833191a, + limb2: 0x1c2b76e439adc8cc, + }, + r1a1: u288 { + limb0: 0x9c53a48cc66c1f4d644105f2, + limb1: 0xa17a18867557d96fb7c2f849, + limb2: 0x1deb99799bd8b63a, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xc32026c56341297fa080790c, + limb1: 0xe23ad2ff283399133533b31f, + limb2: 0xa6860f5c968f7ad, + }, + r0a1: u288 { + limb0: 0x2966cf259dc612c6a4d8957d, + limb1: 0xfba87ea86054f3db5774a08f, + limb2: 0xc73408b6a646780, + }, + r1a0: u288 { + limb0: 0x6272ce5976d8eeba08f66b48, + limb1: 0x7dfbd78fa06509604c0cec8d, + limb2: 0x181ec0eaa6660e45, + }, + r1a1: u288 { + limb0: 0x48af37c1a2343555fbf8a357, + limb1: 0xa7b5e1e20e64d6a9a9ce8e61, + limb2: 0x1147dcea39a47abd, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x24892e4246676601de7ff011, + limb1: 0x538390fa26e7a81a0d183f27, + limb2: 0x3410fd15a886c28, + }, + r0a1: u288 { + limb0: 0x26b21dedab7f4232acbd4ff0, + limb1: 0xa3b070b5094882aba51e9b07, + limb2: 0xd20955719266e4d, + }, + r1a0: u288 { + limb0: 0xe9495357ddc8fab97186f3fa, + limb1: 0x39314e488ba5e56819f2526f, + limb2: 0x2319d043c6fac62e, + }, + r1a1: u288 { + limb0: 0x43af9a4d62880cabbd0c0091, + limb1: 0x85c4696da0e2107eebe8d213, + limb2: 0x15e73634a9b93263, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x7225a042235a3e52ed4f3656, + limb1: 0x29547006cc96d9af59e981e9, + limb2: 0x2bb8d83d86b1948, + }, + r0a1: u288 { + limb0: 0x7aff77100255f01d01e06689, + limb1: 0xeafc9593264cb70dd2c5c40a, + limb2: 0x16feef8d11db8f6c, + }, + r1a0: u288 { + limb0: 0x38197214c4ec640e68ed7bd6, + limb1: 0x6095d2ae38e508122aa0bacd, + limb2: 0x15ee15a5c89d28c4, + }, + r1a1: u288 { + limb0: 0x59cc5927de581d2bba41fb39, + limb1: 0x9368a6b2bf2630ccd9ee111a, + limb2: 0x1d1cd760d41a3053, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x4033c51e6e469818521cd2ae, + limb1: 0xb71a4629a4696b2759f8e19e, + limb2: 0x4f5744e29c1eb30, + }, + r0a1: u288 { + limb0: 0xa4f47bbc60cb0649dca1c772, + limb1: 0x835f427106f4a6b897c6cf23, + limb2: 0x17ca6ea4855756bb, + }, + r1a0: u288 { + limb0: 0x7f844a35c7eeadf511e67e57, + limb1: 0x8bb54fb0b3688cac8860f10, + limb2: 0x1c7258499a6bbebf, + }, + r1a1: u288 { + limb0: 0x10d269c1779f96946e518246, + limb1: 0xce6fcef6676d0dacd395dc1a, + limb2: 0x2cf4c6ae1b55d87d, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xb8a97adf87c08c9754a126a3, + limb1: 0x75a7ddf60605563f709106d2, + limb2: 0x27851c7de29730da, + }, + r0a1: u288 { + limb0: 0x8c5ecd7d4bb18df0499e32c7, + limb1: 0x2534a91e249a1d6c311618e6, + limb2: 0xc0140c1c13a3493, + }, + r1a0: u288 { + limb0: 0x68d1a39239845ea787e22238, + limb1: 0xb5a4c3ee8333093391b6d4cd, + limb2: 0x1dc5f5b99d814946, + }, + r1a1: u288 { + limb0: 0x8ef9ff9b9895bbf279c0fa0d, + limb1: 0x7d3d2f468c0ac9e19fb7c2d, + limb2: 0xac27e05ceb646b5, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xab74a6bae36b17b1d2cc1081, + limb1: 0x904cf03d9d30b1fe9dc71374, + limb2: 0x14ffdd55685b7d82, + }, + r0a1: u288 { + limb0: 0x277f7180b7cf33feded1583c, + limb1: 0xc029c3968a75b612303c4298, + limb2: 0x20ef4ba03605cdc6, + }, + r1a0: u288 { + limb0: 0xd5a7a27c1baba3791ab18957, + limb1: 0x973730213d5d70d3e62d6db, + limb2: 0x24ca121c566eb857, + }, + r1a1: u288 { + limb0: 0x9f4c2dea0492f548ae7d9e93, + limb1: 0xe584b6b251a5227c70c5188, + limb2: 0x22bcecac2bd5e51b, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x340c82974f7221a53fc2f3ac, + limb1: 0x7146f18cd591d423874996e7, + limb2: 0xa6d154791056f46, + }, + r0a1: u288 { + limb0: 0x70894ea6418890d53b5ee12a, + limb1: 0x882290cb53b795b0e7c8c208, + limb2: 0x1b5777dc18b2899b, + }, + r1a0: u288 { + limb0: 0x99a0e528d582006a626206b6, + limb1: 0xb1cf825d80e199c5c9c795b5, + limb2: 0x2a97495b032f0542, + }, + r1a1: u288 { + limb0: 0xc7cf5b455d6f3ba73debeba5, + limb1: 0xbb0a01235687223b7b71d0e5, + limb2: 0x250024ac44c35e3f, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xcd61de038885e78d976e417f, + limb1: 0x81fe397759fd09af54407334, + limb2: 0x28d442dfdc1a2e12, + }, + r0a1: u288 { + limb0: 0x75958d6bff91ac1f4b906a6e, + limb1: 0xa9ceae56d3016a7b9be4e8d1, + limb2: 0x1eb27b86e4ca4913, + }, + r1a0: u288 { + limb0: 0x9e78d6b4bc7dbeb138bb7110, + limb1: 0x8fa9343766858993e6f9769e, + limb2: 0x25d95a1cdd51a5b7, + }, + r1a1: u288 { + limb0: 0xd0e3a9be366e1fc7643320e8, + limb1: 0xc0ba2c1555ff8ac9ad6f5297, + limb2: 0x1d994b7cec2490e8, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x1e9cf4d22158dc2de3993ad9, + limb1: 0x71f64b04e8e9d545208968bb, + limb2: 0x11d02ad0f13cfec0, + }, + r0a1: u288 { + limb0: 0xacbea6d3f08ecb77503f05de, + limb1: 0x611d520b74ddcb9f2e5828f0, + limb2: 0x26202c3e458eb353, + }, + r1a0: u288 { + limb0: 0xb61d83483ca541f57440987c, + limb1: 0xa086532338a5827b1445f1c6, + limb2: 0x1f5ebd76b5310b94, + }, + r1a1: u288 { + limb0: 0xcac91c4843a6bad2a7cc91cb, + limb1: 0x4fbd17f04d76a1b165fed733, + limb2: 0x1e860876cd8963af, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xccf841cf5c1cf8f4a0485e28, + limb1: 0xb5077662d0ce9d755af1446b, + limb2: 0x2b08658e9d5ba5cb, + }, + r0a1: u288 { + limb0: 0x6ce62184a15685babd77f27f, + limb1: 0x5ff9bb7d74505b0542578299, + limb2: 0x7244563488bab2, + }, + r1a0: u288 { + limb0: 0xec778048d344ac71275d961d, + limb1: 0x1273984019753000ad890d33, + limb2: 0x27c2855e60d361bd, + }, + r1a1: u288 { + limb0: 0xa7a0071e22af2f3a79a12da, + limb1: 0xc84a6fd41c20759ff6ff169a, + limb2: 0x23e7ef2a308e49d1, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x68a906f2806a6cc426b24994, + limb1: 0x784dcf104c1dcf0e8f856da2, + limb2: 0xc9654f8fbdf2892, + }, + r0a1: u288 { + limb0: 0x9bea5cd65447a96f85459dd6, + limb1: 0x13d9bb083bdab401220475b7, + limb2: 0x2bd224747d636b4e, + }, + r1a0: u288 { + limb0: 0xae8a73f18ff26f9d25fc0042, + limb1: 0x947f72870798502183924783, + limb2: 0xae687f4109514e, + }, + r1a1: u288 { + limb0: 0x3dd221c63901d92fbe7bec24, + limb1: 0x803d8cd513a8fe56a98984c2, + limb2: 0x11912c747e407b17, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x7105024c431a33683d9d0b9d, + limb1: 0x12e23637b641ab0e5b322ad8, + limb2: 0x2918e9e08c764c28, + }, + r0a1: u288 { + limb0: 0x26384979d1f5417e451aeabf, + limb1: 0xacfb499e362291d0b053bbf6, + limb2: 0x2a6ad1a1f7b04ef6, + }, + r1a0: u288 { + limb0: 0xba4db515be70c384080fc9f9, + limb1: 0x5a983a6afa9cb830fa5b66e6, + limb2: 0x8cc1fa494726a0c, + }, + r1a1: u288 { + limb0: 0x59c9af9399ed004284eb6105, + limb1: 0xef37f66b058b4c971d9c96b0, + limb2: 0x2c1839afde65bafa, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xd468740be11c72f0d61b3544, + limb1: 0xee4537e6229611d1ee5d08f9, + limb2: 0x25f95d481420c22b, + }, + r0a1: u288 { + limb0: 0x1057f10f48392fe4e6a8cbb, + limb1: 0x71eaba2ec1ad3c43203ee8b9, + limb2: 0x28ebfa58c1c65aa1, + }, + r1a0: u288 { + limb0: 0x7d03e13f07b1eecb5cd01d9d, + limb1: 0x4e866746c563214e0043c745, + limb2: 0x2cd7dc2b0c6cbb4b, + }, + r1a1: u288 { + limb0: 0x5eabc3fb0a14cc2cb63ecd7c, + limb1: 0xcfa5e22677730b5197985457, + limb2: 0x3db7ea133dcce6e, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x6bf13a27b0f4eb6657abc4b, + limb1: 0xf78d57f089bffdf07c676bb3, + limb2: 0x228e4aefbdd738df, + }, + r0a1: u288 { + limb0: 0x4f41a40b04ec964619823053, + limb1: 0xfa3fb44f4a80641a9bb3bc09, + limb2: 0x29bf29a3d071ec4b, + }, + r1a0: u288 { + limb0: 0x83823dcdff02bdc8a0e6aa03, + limb1: 0x79ac92f113de29251cd73a98, + limb2: 0x1ccdb791718d144, + }, + r1a1: u288 { + limb0: 0xa074add9d066db9a2a6046b6, + limb1: 0xef3a70034497456c7d001a5, + limb2: 0x27d09562d815b4a6, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xbf11dea21cd379f966caa6c2, + limb1: 0x4e0f8e4b2b5917c45d535ef, + limb2: 0xc735dd71c68e4ca, + }, + r0a1: u288 { + limb0: 0xa605ae0ab6554385d99f6e12, + limb1: 0x87cd556340ce9c7cc8a6ac63, + limb2: 0x210538d78dc01108, + }, + r1a0: u288 { + limb0: 0xc496c32da98d1ae345266146, + limb1: 0x76a57df0969a21af8983781e, + limb2: 0x269e9aa6f168324a, + }, + r1a1: u288 { + limb0: 0x820373298d73bb39e9d80644, + limb1: 0x987291249714fb863a8353df, + limb2: 0x120dfbe3b8b4c9c, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x87a44d343cc761056f4f2eae, + limb1: 0x18016f16818253360d2c8adf, + limb2: 0x1bcd5c6e597d735e, + }, + r0a1: u288 { + limb0: 0x593d7444c376f6d69289660b, + limb1: 0x1d6d97020b59cf2e4b38be4f, + limb2: 0x17133b62617f63a7, + }, + r1a0: u288 { + limb0: 0x88cac99869bb335ec9553a70, + limb1: 0x95bcfa7f7c0b708b4d737afc, + limb2: 0x1eec79b9db274c09, + }, + r1a1: u288 { + limb0: 0xe465a53e9fe085eb58a6be75, + limb1: 0x868e45cc13e7fd9d34e11839, + limb2: 0x2b401ce0f05ee6bb, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x83f48fbac5c1b94486c2d037, + limb1: 0xf95d9333449543de78c69e75, + limb2: 0x7bca8163e842be7, + }, + r0a1: u288 { + limb0: 0x60157b2ff6e4d737e2dac26b, + limb1: 0x30ab91893fcf39d9dcf1b89, + limb2: 0x29a58a02490d7f53, + }, + r1a0: u288 { + limb0: 0x520f9cb580066bcf2ce872db, + limb1: 0x24a6e42c185fd36abb66c4ba, + limb2: 0x309b07583317a13, + }, + r1a1: u288 { + limb0: 0x5a4c61efaa3d09a652c72471, + limb1: 0xfcb2676d6aa28ca318519d2, + limb2: 0x1405483699afa209, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x887e3388d815fefbe4de67c7, + limb1: 0x39aabdf16d5e820c468f07b4, + limb2: 0x1021ded60046ae5d, + }, + r0a1: u288 { + limb0: 0x1ffd3f4a7c51d9b9b426759a, + limb1: 0xfdcac9390f248e3358903bef, + limb2: 0xc85ed498a09eaa4, + }, + r1a0: u288 { + limb0: 0x2e3d9ddae0fe891656c2ebbd, + limb1: 0xdbb3756450184a201ee6f6f4, + limb2: 0x1f77f974e15e790c, + }, + r1a1: u288 { + limb0: 0xc94662f8a91d828962406a80, + limb1: 0x35b6584b35acc901cd8c124d, + limb2: 0x1b6cbe14b354c93c, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x4e0b59155b1586438f00d1d0, + limb1: 0xe7fce333454bea5e5d19da67, + limb2: 0x2286d1f263814635, + }, + r0a1: u288 { + limb0: 0xdb0108b13b264fa9efe313bd, + limb1: 0x25a0231213b6afe0cc5ac9, + limb2: 0x24a55b37cab9e96f, + }, + r1a0: u288 { + limb0: 0x10568376d2134a925d8224e2, + limb1: 0x66ff6c53966243f66701ce36, + limb2: 0xf0bab9bbaa38df8, + }, + r1a1: u288 { + limb0: 0x9faf33001f67c41b255de466, + limb1: 0x30656441023848f72165541a, + limb2: 0x1b964ad8ff7afd21, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xbfdfdae86101e29da3e869b8, + limb1: 0xf969a9b961a28b872e56aac2, + limb2: 0x1afdc719440d90f0, + }, + r0a1: u288 { + limb0: 0xee43c995686f13baa9b07266, + limb1: 0xbfa387a694c641cceee4443a, + limb2: 0x104d8c02eb7f60c8, + }, + r1a0: u288 { + limb0: 0x8d451602b3593e798aecd7fb, + limb1: 0x69ffbefe7c5ac2cf68e8691e, + limb2: 0x2ea064a1bc373d28, + }, + r1a1: u288 { + limb0: 0x6e7a663073bfe88a2b02326f, + limb1: 0x5faadb36847ca0103793fa4a, + limb2: 0x26c09a8ec9303836, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xa02ed8b8bea4e6398937e400, + limb1: 0xba34c7a8c92f6fb9c7eb1009, + limb2: 0x14021afa35038d6f, + }, + r0a1: u288 { + limb0: 0x5fed8893a16fc89c77ab6e69, + limb1: 0x341d37d9e774298c8289039e, + limb2: 0x14228ddafe44ce59, + }, + r1a0: u288 { + limb0: 0x578a1f7a73e6d177db8ef992, + limb1: 0xe0414e8de48555d5e7715a16, + limb2: 0x48dd64815f16a0a, + }, + r1a1: u288 { + limb0: 0xf23687d236711b4c0ca8ce76, + limb1: 0x50664dd13060c77c5166e7fe, + limb2: 0x10090c847a3c2764, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x3d038747ebac16adc1c50bdd, + limb1: 0xe3706a783e99f73ac742aa1a, + limb2: 0x17eac23b00b545ff, + }, + r0a1: u288 { + limb0: 0xdc25ff0bd02abcbe502c4e37, + limb1: 0x39b92e6ebb65e5f2d8504f90, + limb2: 0x2415b5f61301dff6, + }, + r1a0: u288 { + limb0: 0x9cdcb2146d15f37900db82ac, + limb1: 0x96c3940e2f5c5f8198fadee3, + limb2: 0x2f662ea79b473fc2, + }, + r1a1: u288 { + limb0: 0xc0fb95686de65e504ed4c57a, + limb1: 0xec396c7c4275d4e493b00713, + limb2: 0x106d2aab8d90d517, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xb836776ba636148782ccc53a, + limb1: 0xc85e575c26103c32434b48b3, + limb2: 0xbbd5f5df165aeca, + }, + r0a1: u288 { + limb0: 0x75eb6906bb101ea7f525fe68, + limb1: 0xa69a82fea7ca9f41fb7f0712, + limb2: 0x2d0f62c13f7d525b, + }, + r1a0: u288 { + limb0: 0x94475fc56769da417d920d02, + limb1: 0x9bacf6721bad4841a1ead330, + limb2: 0x264649c0901fd86, + }, + r1a1: u288 { + limb0: 0x45cddba5ab6cb8d80986a4b5, + limb1: 0x8a2735ec64c123d9b1d94e43, + limb2: 0x8b8c3087a3fc782, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x49bbb4d856921e3177c0b5bf, + limb1: 0x76d84d273694e662bdd5d364, + limb2: 0xea5dc611bdd369d, + }, + r0a1: u288 { + limb0: 0x9e9fc3adc530fa3c5c6fd7fe, + limb1: 0x114bb0c0e8bd247da41b3883, + limb2: 0x6044124f85d2ce, + }, + r1a0: u288 { + limb0: 0xa6e604cdb4e40982a97c084, + limb1: 0xef485caa56c7820be2f6b11d, + limb2: 0x280de6387dcbabe1, + }, + r1a1: u288 { + limb0: 0xcaceaf6df5ca9f8a18bf2e1e, + limb1: 0xc5cce932cc6818b53136c142, + limb2: 0x12f1cd688682030c, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x37497c23dcf629df58a5fa12, + limb1: 0x4fcd5534ae47bded76245ac9, + limb2: 0x1715ab081e32ac95, + }, + r0a1: u288 { + limb0: 0x856275471989e2c288e3c83, + limb1: 0xb42d81a575b89b127a7821a, + limb2: 0x5fa75a0e4ae3118, + }, + r1a0: u288 { + limb0: 0xeb22351e8cd345c23c0a3fef, + limb1: 0x271feb16d4b47d2267ac9d57, + limb2: 0x258f9950b9a2dee5, + }, + r1a1: u288 { + limb0: 0xb5f75468922dc025ba7916fa, + limb1: 0x7e24515de90edf1bde4edd9, + limb2: 0x289145b3512d4d81, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xce1ded2782ddd08e6865ab4, + limb1: 0x4583c91a985a438fdac4f4c, + limb2: 0x13d595d330502573, + }, + r0a1: u288 { + limb0: 0x595067b65592ac4d6c9b5b5c, + limb1: 0x4ef806daef8c02f94ecaf97f, + limb2: 0x7869c312062e0a8, + }, + r1a0: u288 { + limb0: 0x38cb6ea081fb30e87015f4c3, + limb1: 0xc380b087269e9836e39be81, + limb2: 0x7619e66982167dd, + }, + r1a1: u288 { + limb0: 0x84f696893f8cb0e616e335b6, + limb1: 0xb7fd749a8812159ce96c3f43, + limb2: 0x2b80806bd7eeb0cd, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xeed11dd701d662b9bd85fda4, + limb1: 0x284c3b305b25ed852d47268e, + limb2: 0x37e8aad03f1efa3, + }, + r0a1: u288 { + limb0: 0x1ba355db79739c5b954c99e, + limb1: 0xd38db182b11b150b1ac2b6cd, + limb2: 0x1b416cf91fe88aa, + }, + r1a0: u288 { + limb0: 0xd8f230276c30350267b5d2e6, + limb1: 0x6057c8dd8abc942db7f6e156, + limb2: 0x127d2dc576c754d8, + }, + r1a1: u288 { + limb0: 0x3a34d39084d5d8b2204f6632, + limb1: 0xe18cb27f7b45639b6cb65d23, + limb2: 0xb6cc7185cc1c602, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x95b7b32bcc3119c64a62a8de, + limb1: 0xe07184496f17bbd59a4b7bbd, + limb2: 0x1708c536fd78b531, + }, + r0a1: u288 { + limb0: 0xfa85b5778c77166c1523a75e, + limb1: 0x89a00c53309a9e525bef171a, + limb2: 0x2d2287dd024e421, + }, + r1a0: u288 { + limb0: 0x31fd0884eaf2208bf8831e72, + limb1: 0x537e04ea344beb57ee645026, + limb2: 0x23c7f99715257261, + }, + r1a1: u288 { + limb0: 0x8c38b3aeea525f3c2d2fdc22, + limb1: 0xf838a99d9ec8ed6dcec6a2a8, + limb2: 0x2973d5159ddc479a, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x3f058d8c63fd905d3ca29b42, + limb1: 0x1f0a90982cc68e4ddcd83e57, + limb2: 0x240aeaae0783fbfa, + }, + r0a1: u288 { + limb0: 0xedfee81d80da310fdf0d0d8, + limb1: 0xc2208e6de8806cf491bd74d4, + limb2: 0xb7318be62a476af, + }, + r1a0: u288 { + limb0: 0x3c6920c8a24454c634f388fe, + limb1: 0x23328a006312a722ae09548b, + limb2: 0x1d2f1c58b80432e2, + }, + r1a1: u288 { + limb0: 0xb72980574f7a877586de3a63, + limb1: 0xcd773b87ef4a29c16784c5ae, + limb2: 0x1f812c7e22f339c5, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x4ee6eef57f5c866acf77f595, + limb1: 0x3aec7154a9f1f285829186a5, + limb2: 0x283e9794a30457d, + }, + r0a1: u288 { + limb0: 0xd59a661484d8c376567086d3, + limb1: 0x1f9c69bb6fb467cd93899dd2, + limb2: 0x25dd4d1be0b765b, + }, + r1a0: u288 { + limb0: 0x5b9c47593dfbd508ab34c7b3, + limb1: 0x5cc228830e12085b69b345df, + limb2: 0x563a3f38bb17d2d, + }, + r1a1: u288 { + limb0: 0xd13362074a4f1c9ad9063afd, + limb1: 0xae0b6ddad1bdbd332e510b50, + limb2: 0x6fe176282e9d5fb, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x8909147ac871b1dfb1b93dea, + limb1: 0x142dbce634570b3004e7fc, + limb2: 0x6c20d9db5dd84da, + }, + r0a1: u288 { + limb0: 0x9860d4eddaa4bc238176c6fc, + limb1: 0x2b0526a4c3964c89747e80c5, + limb2: 0x8fd2f58f97118b6, + }, + r1a0: u288 { + limb0: 0x350f6ba8623173a2b59246f5, + limb1: 0xc1b28fd98d68ff68c2905942, + limb2: 0x8244875fe9df1c7, + }, + r1a1: u288 { + limb0: 0x57cc1c6a24b662006d9dbe1b, + limb1: 0x5ad285ba45ea4be688bff724, + limb2: 0x2b07fd32ff344b21, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xfeebe92941f95b6ea1d095bb, + limb1: 0x9c7962eb8bbeb95a9ca7cf50, + limb2: 0x290bdaf3b9a08dc3, + }, + r0a1: u288 { + limb0: 0x686cfa11c9d4b93675495599, + limb1: 0xb1d69e17b4b5ebf64f0d51e1, + limb2: 0x2c18bb4bdc2e9567, + }, + r1a0: u288 { + limb0: 0x17419b0f6a04bfc98d71527, + limb1: 0x80eba6ff02787e3de964a4d1, + limb2: 0x26087bb100e7ff9f, + }, + r1a1: u288 { + limb0: 0x17c4ee42c3f612c43a08f689, + limb1: 0x7276bdda2df6d51a291dba69, + limb2: 0x40a7220ddb393e1, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x37349ad9dc3023fc75053e02, + limb1: 0x33a3d352f746ab24b3b58b0a, + limb2: 0xec4c339b84b811d, + }, + r0a1: u288 { + limb0: 0x7dcfa2460a0ad9b521a47470, + limb1: 0xba3ff4b52958f6b7341790da, + limb2: 0x24709d3b126eb975, + }, + r1a0: u288 { + limb0: 0xe5167ab2a7c59462398695fe, + limb1: 0x639d95ac9180109e9716c52d, + limb2: 0x1ad3dd11a73c7763, + }, + r1a1: u288 { + limb0: 0xc4074c8a20ffec99be26ea0d, + limb1: 0x33d88e5ff7a03f8fc7673634, + limb2: 0x212a99002b140a7c, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x830d777c19040571a1d72fd0, + limb1: 0x651b2c6b8c292020817a633f, + limb2: 0x268af1e285bc59ff, + }, + r0a1: u288 { + limb0: 0xede78baa381c5bce077f443d, + limb1: 0x540ff96bae21cd8b9ae5438b, + limb2: 0x12a1fa7e3b369242, + }, + r1a0: u288 { + limb0: 0x797c0608e5a535d8736d4bc5, + limb1: 0x375faf00f1147656b7c1075f, + limb2: 0xda60fab2dc5a639, + }, + r1a1: u288 { + limb0: 0x610d26085cfbebdb30ce476e, + limb1: 0x5bc55890ff076827a09e8444, + limb2: 0x14272ee2d25f20b7, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x430bef5bf19edee76f43f86d, + limb1: 0xd0d7e3e70da75944107b2d4a, + limb2: 0x1a773d3afca56895, + }, + r0a1: u288 { + limb0: 0xac9908b990c2eba0c566a721, + limb1: 0xb5b9dd164b61dc1a46f57bc0, + limb2: 0x153897d14189a3e9, + }, + r1a0: u288 { + limb0: 0x873c42f94417c98a18ef8b21, + limb1: 0x7fd90a68e925814a5c90c64e, + limb2: 0xb43f89cdc102905, + }, + r1a1: u288 { + limb0: 0x6a2633ae3430261a8d930055, + limb1: 0xccf2888e7fa1b1be32616fcc, + limb2: 0x281f7352c8bd69b4, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xd6862e1a4ca3b2baf6f8d8aa, + limb1: 0x96f9066dded3a3d899025af4, + limb2: 0x1a98af9f0d48fd3, + }, + r0a1: u288 { + limb0: 0x276b417cc61ea259c114314e, + limb1: 0x464399e5e0037b159866b246, + limb2: 0x12cc97dcf32896b5, + }, + r1a0: u288 { + limb0: 0xef72647f4c2d08fc038c4377, + limb1: 0x34883cea19be9a490a93cf2b, + limb2: 0x10d01394daa61ed0, + }, + r1a1: u288 { + limb0: 0xdf345239ece3acaa62919643, + limb1: 0x914780908ece64e763cca062, + limb2: 0xee2a80dbd2012a3, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x1d5a31f4d08a0ebf7e071e00, + limb1: 0xcd1244dd95dd30005f531f81, + limb2: 0xb4cb469a2dcf4f1, + }, + r0a1: u288 { + limb0: 0x7c5938adaf38b355092de1f1, + limb1: 0x292ab08995b293abfcba14b, + limb2: 0x1fd126a2b9f37c67, + }, + r1a0: u288 { + limb0: 0x6e9d352b02a7cb771fcc33f9, + limb1: 0x7754d8536eefda2025a07340, + limb2: 0x1840289291c35a72, + }, + r1a1: u288 { + limb0: 0xe85f465417b7bd758c547b2e, + limb1: 0xf7f703c3bc55ff8a01fa9365, + limb2: 0xfa301227880a841, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xb871630bb14808308256993, + limb1: 0x5aa6407e90ac7cd9d34c84b1, + limb2: 0x1a45d81956be51f9, + }, + r0a1: u288 { + limb0: 0x4e35a5f1c75bc96bbe481d7c, + limb1: 0xb461fa7d1b269bf49be0ed7f, + limb2: 0x88efe970e8c4e4a, + }, + r1a0: u288 { + limb0: 0xff160df5ead7b7b25d8892e5, + limb1: 0xbbbd6b9b216396e83fd6aa70, + limb2: 0x2dcf636e87cde612, + }, + r1a1: u288 { + limb0: 0x44d33f7f0dbcaccf59607fcd, + limb1: 0xae52f65a36ac4f17e0e213de, + limb2: 0x12e6c11148485b9b, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xa89926f3c9ed74cf35d8982d, + limb1: 0x8e9003f1a42b81a81fe0df1e, + limb2: 0x2732162604574861, + }, + r0a1: u288 { + limb0: 0x4ac22d9feb0443ee015b81e1, + limb1: 0xd442070c95acaa6a39e85ae9, + limb2: 0x1a42773c0ac19a09, + }, + r1a0: u288 { + limb0: 0x7d32a4a55a853c2309cd6f0, + limb1: 0x747d1e031aa2229e38cfca1f, + limb2: 0x1b6358645f1162ad, + }, + r1a1: u288 { + limb0: 0xd511412ffa32391dda88c29b, + limb1: 0x5f57b2aab83993734eb330b0, + limb2: 0xc3766c22260b874, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xa4058149e82ea51362b79be4, + limb1: 0x734eba2621918a820ae44684, + limb2: 0x110a314a02272b1, + }, + r0a1: u288 { + limb0: 0xe2b43963ef5055df3c249613, + limb1: 0x409c246f762c0126a1b3b7b7, + limb2: 0x19aa27f34ab03585, + }, + r1a0: u288 { + limb0: 0x179aad5f620193f228031d62, + limb1: 0x6ba32299b05f31b099a3ef0d, + limb2: 0x157724be2a0a651f, + }, + r1a1: u288 { + limb0: 0xa33b28d9a50300e4bbc99137, + limb1: 0x262a51847049d9b4d8cea297, + limb2: 0x189acb4571d50692, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xbd50e560f6bb994a2922fa51, + limb1: 0x99a1d1b01aa18c7f31e917fc, + limb2: 0xd7ef26150626982, + }, + r0a1: u288 { + limb0: 0xf014da7a050c535a40cfc124, + limb1: 0x3b1a2e82c4f0fc6379900c54, + limb2: 0x1a5cfd9a14902546, + }, + r1a0: u288 { + limb0: 0x9aaa7b13fd8f24f65c93eec5, + limb1: 0xab93d53f2815295691702b82, + limb2: 0xde083d90578af6f, + }, + r1a1: u288 { + limb0: 0xfbd08ec0a79725a4b6e8b67c, + limb1: 0x69946154b610ed695859295b, + limb2: 0x277a133a0d6da917, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x29bd4381ae4afc677ee37ed6, + limb1: 0x29ed43453f9a008d9176f004, + limb2: 0x24134eb915104f43, + }, + r0a1: u288 { + limb0: 0x81597f82bb67e90a3e72bdd2, + limb1: 0xab3bbde5f7bbb4df6a6b5c19, + limb2: 0x19ac61eea40a367c, + }, + r1a0: u288 { + limb0: 0xe30a79342fb3199651aee2fa, + limb1: 0xf500f028a73ab7b7db0104a3, + limb2: 0x808b50e0ecb5e4d, + }, + r1a1: u288 { + limb0: 0x55f2818453c31d942444d9d6, + limb1: 0xf6dd80c71ab6e893f2cf48db, + limb2: 0x13c3ac4488abd138, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x32bc8a981429b931b50b70e1, + limb1: 0x99cffcd897696a0e5c987090, + limb2: 0x2663f59204065aeb, + }, + r0a1: u288 { + limb0: 0x6d0d07933c107a489c682134, + limb1: 0xb81690a5db81aa6e8c0ef203, + limb2: 0x27cb7b6ce66b5225, + }, + r1a0: u288 { + limb0: 0xf6fc5c5aa501cffb8ee75a4b, + limb1: 0xf8d08f9383f191384ba8077b, + limb2: 0x28b89e3f89c071c1, + }, + r1a1: u288 { + limb0: 0x1bd9021070481b0a40cb6d36, + limb1: 0x86562734b4f3fcfb46e39713, + limb2: 0x1ec7729185561f74, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xd1464269bbeafa546f559b8f, + limb1: 0xab7f7dcd1ac32b86979471cf, + limb2: 0x6a38256ee96f113, + }, + r0a1: u288 { + limb0: 0xf14d50984e65f9bc41df4e7e, + limb1: 0x350aff9be6f9652ad441a3ad, + limb2: 0x1b1e60534b0a6aba, + }, + r1a0: u288 { + limb0: 0x9e98507da6cc50a56f023849, + limb1: 0xcf8925e03f2bb5c1ba0962dd, + limb2: 0x2b18961810a62f87, + }, + r1a1: u288 { + limb0: 0x3a4c61b937d4573e3f2da299, + limb1: 0x6f4c6c13fd90f4edc322796f, + limb2: 0x13f4e99b6a2f025e, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xd7f1137b131005c05a263909, + limb1: 0x377579bc2a44238703830641, + limb2: 0x1edb40cec982e433, + }, + r0a1: u288 { + limb0: 0xb234350aafc13259037ff7b8, + limb1: 0x8ce5fcfc41890347214723f3, + limb2: 0x1d5cfe6e2536a23b, + }, + r1a0: u288 { + limb0: 0x8d74f12ae2cdd199736e4db9, + limb1: 0xf5835da25b7c74dea8742767, + limb2: 0xa4f9baaf2b585aa, + }, + r1a1: u288 { + limb0: 0x6c077e93c1a1bae84d31f2de, + limb1: 0xeb24bf9c8e1a11a15952b35f, + limb2: 0x182a33beae2d73ac, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xe0115a79120ae892a72f3dcb, + limb1: 0xec67b5fc9ea414a4020135f, + limb2: 0x1ee364e12321904a, + }, + r0a1: u288 { + limb0: 0xa74d09666f9429c1f2041cd9, + limb1: 0x57ffe0951f863dd0c1c2e97a, + limb2: 0x154877b2d1908995, + }, + r1a0: u288 { + limb0: 0xcbe5e4d2d2c91cdd4ccca0, + limb1: 0xe6acea145563a04b2821d120, + limb2: 0x18213221f2937afb, + }, + r1a1: u288 { + limb0: 0xfe20afa6f6ddeb2cb768a5ae, + limb1: 0x1a3b509131945337c3568fcf, + limb2: 0x127b5788263a927e, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x23a3796fea17793ca760d4b4, + limb1: 0xb4abf7ebb030cb2f1630ed5f, + limb2: 0x64ab24ff28d4416, + }, + r0a1: u288 { + limb0: 0x538a1fa509f26d8c8bdeb966, + limb1: 0x73f3e2cd56d3c514e4a37c42, + limb2: 0x60a236e3776ce68, + }, + r1a0: u288 { + limb0: 0xd80f5ba56c16fe54bda3fa80, + limb1: 0xe5f8701be9499623ce8a673d, + limb2: 0x18c79fac25052970, + }, + r1a1: u288 { + limb0: 0x8929aad47a81f1378a817ef5, + limb1: 0xfadba04c7242b43b5cf39d33, + limb2: 0xb3e5f5c3c9fb3b2, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xe7c658aecdab4db3c83f7927, + limb1: 0xfbf162264ca04ee50c70bde8, + limb2: 0x2a20f4565b7ff885, + }, + r0a1: u288 { + limb0: 0x45b1c2f0a1226361f42683c0, + limb1: 0x9acdd892c48c08de047296bc, + limb2: 0x27836373108925d4, + }, + r1a0: u288 { + limb0: 0xc0ea9294b345e6d4892676a7, + limb1: 0xcba74eca77086af245d1606e, + limb2: 0xf20edac89053e72, + }, + r1a1: u288 { + limb0: 0x4c92a28f2779a527a68a938c, + limb1: 0x3a1c3c55ff9d20eac109fab3, + limb2: 0x21c4a8c524b1ee7d, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x731f3a1b36de3023901591ff, + limb1: 0xe34bb92f321ca5d3092bcbad, + limb2: 0x2216559b45dd1c2f, + }, + r0a1: u288 { + limb0: 0x3bac805b2d142e0cc0edeb11, + limb1: 0x5d11df064af70b6d83d6ce74, + limb2: 0x14c2db65d318303, + }, + r1a0: u288 { + limb0: 0xc3ee59929ecba416af62e06e, + limb1: 0xcbdffb49b2c9219cfda57258, + limb2: 0x9e92730073f74d7, + }, + r1a1: u288 { + limb0: 0x137f2ce23b788e764203080c, + limb1: 0x1340ccaf8101da98864c6b0c, + limb2: 0x103ddd7382137938, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xa68021d593c46246af22559e, + limb1: 0x5c2cfc5bc4cd1b48f4704134, + limb2: 0x296066ede1298f8c, + }, + r0a1: u288 { + limb0: 0xfe17dd6765eb9b9625eb6a84, + limb1: 0x4e35dd8e8f6088bb14299f8d, + limb2: 0x1a380ab2689106e4, + }, + r1a0: u288 { + limb0: 0x82bacf337ca09853df42bc59, + limb1: 0xa15de4ef34a30014c5a2e9ae, + limb2: 0x243cc0cec53c778b, + }, + r1a1: u288 { + limb0: 0xcb2a1bf18e3ba9349b0a8bf2, + limb1: 0x35134b2505cbb5a4c91f0ac4, + limb2: 0x25e45206b13f43c4, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x8e97b007ffd9891bd0e77650, + limb1: 0x77671278ac33f17df6b1db88, + limb2: 0x243daddc47f5d5c2, + }, + r0a1: u288 { + limb0: 0x655fe4c8bbe5ee06aaa0054b, + limb1: 0xf751450b02c93c7ddea95938, + limb2: 0x21aa988e950d563f, + }, + r1a0: u288 { + limb0: 0xb51b3b6b8582de3eb0549518, + limb1: 0x84a1031766b7e465f5bbf40c, + limb2: 0xd46c2d5b95e5532, + }, + r1a1: u288 { + limb0: 0x50b6ddd8a5eef0067652191e, + limb1: 0x298832a0bc46ebed8bff6190, + limb2: 0xb568b4fe8311f93, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x6ad6cf94fc3bf4bfbd69ba1d, + limb1: 0x806961a05ecbb229a267a99d, + limb2: 0x1671d0fb2e942009, + }, + r0a1: u288 { + limb0: 0x2e9b86ac823b3213d26fe614, + limb1: 0x48a66f0ee2f66e6be68a4eab, + limb2: 0x9162eb41435b523, + }, + r1a0: u288 { + limb0: 0xeda3ea2df37c2c19a07e26a6, + limb1: 0x96cb3f72bef333861a5f6793, + limb2: 0x6e84ee455d519bf, + }, + r1a1: u288 { + limb0: 0x52f50c292b08883fa721dada, + limb1: 0x2029cc6ef51b67f2f30e583a, + limb2: 0xb289cfc0164b2ed, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x6c70c1e14706dbfd33efe75c, + limb1: 0xbd47837fd6f0a808a8cac5c3, + limb2: 0x1b60ad36bb1e656e, + }, + r0a1: u288 { + limb0: 0x833e70940a681aa43a083ad0, + limb1: 0x3ffecc6d09b7a0ea1df06988, + limb2: 0x216e7660abbec411, + }, + r1a0: u288 { + limb0: 0xdaddeff80a0eccefcd3726b4, + limb1: 0xd7b4c983581d4e9b3f210f17, + limb2: 0x26bf9b818756e2b, + }, + r1a1: u288 { + limb0: 0xb32fd7bd9890bbed35311a72, + limb1: 0xa30e2587947d85bbece4c62f, + limb2: 0x197a3b46e94f9f24, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xddb4db99db681d35f71a159c, + limb1: 0xf71a330019414e6fdee75700, + limb2: 0x14d9838e7d1918bb, + }, + r0a1: u288 { + limb0: 0x203c8bac71951a5f2c653710, + limb1: 0x9fc93f8da38ecc2957313982, + limb2: 0x7b6d981259cabd9, + }, + r1a0: u288 { + limb0: 0xa7297cdb5be0cc45d48ca6af, + limb1: 0xa07b4b025ebe6c960eddfc56, + limb2: 0xef2a5c30ef00652, + }, + r1a1: u288 { + limb0: 0xb7f05c76d860e9122b36ecd7, + limb1: 0x407d6522e1f9ce2bcbf80eda, + limb2: 0x197625a558f32c36, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xe6af6774cb7a4b647bc24bc6, + limb1: 0x76bea1b00f9735d1977d2636, + limb2: 0xc89d9397e87260c, + }, + r0a1: u288 { + limb0: 0x96bf96a3ec6330e2471bedb, + limb1: 0xaefe1b80eabbd9aea0986912, + limb2: 0x2060760fa91e6007, + }, + r1a0: u288 { + limb0: 0x7bcc695f496777a5639d8e67, + limb1: 0x521bb49545544f2017835a37, + limb2: 0x23bd13f6824a9c20, + }, + r1a1: u288 { + limb0: 0x2a7663f245635451e8e9395b, + limb1: 0x2a618c0e730e827ea1b6c5b8, + limb2: 0x4b769d1e5ea2d59, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xb0f04df9dec94801e48a6ff7, + limb1: 0xdc59d087c627d38334e5b969, + limb2: 0x3d36e11420be053, + }, + r0a1: u288 { + limb0: 0xc80f070001aa1586189e0215, + limb1: 0xff849fcbbbe7c00c83ab5282, + limb2: 0x2a2354b2882706a6, + }, + r1a0: u288 { + limb0: 0x48cf70c80f08b6c7dc78adb2, + limb1: 0xc6632efa77b36a4a1551d003, + limb2: 0xc2d3533ece75879, + }, + r1a1: u288 { + limb0: 0x63e82ba26617416a0b76ddaa, + limb1: 0xdaceb24adda5a049bed29a50, + limb2: 0x1a82061a3344043b, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x5870b524b1a3550dd400ccc5, + limb1: 0x852bc0b37d0f914b8073f12f, + limb2: 0x16509ed87eff5a4e, + }, + r0a1: u288 { + limb0: 0x88260fe925feb155aed3786a, + limb1: 0x67d1bdd00f0234c2f4bfc1dc, + limb2: 0x2d447aa64752d13, + }, + r1a0: u288 { + limb0: 0x61cd38a81ad2ff47aed15d31, + limb1: 0xbca0f1fb3a56f9f221477273, + limb2: 0x24049dab533565eb, + }, + r1a1: u288 { + limb0: 0x6c2add460f1dc00897d5b5da, + limb1: 0x35bb326b6d5280eee3f8c765, + limb2: 0x13a4b8025098500, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x9152fecf0f523415acc7c7be, + limb1: 0xd9632cbfccc4ea5d7bf31177, + limb2: 0x2d7288c5f8c83ab1, + }, + r0a1: u288 { + limb0: 0x53144bfe4030f3f9f5efda8, + limb1: 0xfeec394fbf392b11c66bae27, + limb2: 0x28840813ab8a200b, + }, + r1a0: u288 { + limb0: 0xdec3b11fbc28b305d9996ec7, + limb1: 0x5b5f8d9d17199e149c9def6e, + limb2: 0x10c1a149b6751bae, + }, + r1a1: u288 { + limb0: 0x665e8eb7e7d376a2d921c889, + limb1: 0xfdd76d06e46ee1a943b8788d, + limb2: 0x8bb21d9960e837b, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x3a67c28a175200e631aa506a, + limb1: 0x7397303a34968ff17c06e801, + limb2: 0x1b81e0c63123688b, + }, + r0a1: u288 { + limb0: 0x3490cfd4f076c621dac4a12c, + limb1: 0xec183578c91b90b72e5887b7, + limb2: 0x179fb354f608da00, + }, + r1a0: u288 { + limb0: 0x9322bde2044dde580a78ba33, + limb1: 0xfc74821b668d3570cad38f8b, + limb2: 0x8cec54a291f5e57, + }, + r1a1: u288 { + limb0: 0xc2818b6a9530ee85d4b2ae49, + limb1: 0x8d7b651ad167f2a43d7a2d0a, + limb2: 0x7c9ca9bab0ffc7f, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x5622114faf115105095ab77f, + limb1: 0x54762377d7848bf1c52b1fce, + limb2: 0x1f97b82262bcf5d6, + }, + r0a1: u288 { + limb0: 0x6085f868127e9f82a6324ea7, + limb1: 0x88a39c58534935bde6a49ab, + limb2: 0x7f8a3494505b851, + }, + r1a0: u288 { + limb0: 0xd3eabc17c5e2f4e09171b9dd, + limb1: 0x1925fbd52a9cb6a997959648, + limb2: 0x21518ac51afc3758, + }, + r1a1: u288 { + limb0: 0x6096ef3f52e60023239e48e4, + limb1: 0x865e3876b961acac0b78e525, + limb2: 0x860d5900ad68c37, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x2ad5fd7aad65b27d37fb015a, + limb1: 0x481729d76f6a024e82fb745d, + limb2: 0x109a944738eaca6a, + }, + r0a1: u288 { + limb0: 0x3297a180bf2677cff3ccb41f, + limb1: 0xa65e1bdf4bb474832f0a5157, + limb2: 0x1978ab7a84d8651b, + }, + r1a0: u288 { + limb0: 0x708be8948dd3360c8723e464, + limb1: 0xbaed9d16b05c7d52f3e91f9f, + limb2: 0x1975a6b856112bc2, + }, + r1a1: u288 { + limb0: 0xdff0a3ede7d8433f08340a93, + limb1: 0xd6415eabeb4ddb811aa617b2, + limb2: 0xdb9f4e71e973c6, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xa576408f8300de3a7714e6ae, + limb1: 0xe1072c9a16f202ecf37fbc34, + limb2: 0x1b0cb1e2b5871263, + }, + r0a1: u288 { + limb0: 0x2128e2314694b663286e231e, + limb1: 0x54bea71957426f002508f715, + limb2: 0x36ecc5dbe069dca, + }, + r1a0: u288 { + limb0: 0x17c77cd88f9d5870957850ce, + limb1: 0xb7f4ec2bc270ce30538fe9b8, + limb2: 0x766279e588592bf, + }, + r1a1: u288 { + limb0: 0x1b6caddf18de2f30fa650122, + limb1: 0x40b77237a29cada253c126c6, + limb2: 0x74ff1349b1866c8, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x1266deaa34cf31d6d118b057, + limb1: 0x7eef7892b3efd91c5364259c, + limb2: 0x1f4ac5e1bdc33dac, + }, + r0a1: u288 { + limb0: 0x1068831212b6fe1b5aa05f22, + limb1: 0xc39adbfe99701ca7671003e3, + limb2: 0x1ab8e56b642f5f82, + }, + r1a0: u288 { + limb0: 0xd53d59610ebf7f664c23c080, + limb1: 0x3d162ffb5a16aafc8be99bd3, + limb2: 0x281e77e14f6bb9c0, + }, + r1a1: u288 { + limb0: 0x4fe123e56c3c2c64a4260c7b, + limb1: 0x90c367228a761d9c50be237c, + limb2: 0xf07b0465615fe71, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x3603266e05560becab36faef, + limb1: 0x8c3b88c9390278873dd4b048, + limb2: 0x24a715a5d9880f38, + }, + r0a1: u288 { + limb0: 0xe9f595b111cfd00d1dd28891, + limb1: 0x75c6a392ab4a627f642303e1, + limb2: 0x17b34a30def82ab6, + }, + r1a0: u288 { + limb0: 0xe706de8f35ac8372669fc8d3, + limb1: 0x16cc7f4032b3f3ebcecd997d, + limb2: 0x166eba592eb1fc78, + }, + r1a1: u288 { + limb0: 0x7d584f102b8e64dcbbd1be9, + limb1: 0x2ead4092f009a9c0577f7d3, + limb2: 0x2fe2c31ee6b1d41e, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x72253d939632f8c28fb5763, + limb1: 0x9b943ab13cad451aed1b08a2, + limb2: 0xdb9b2068e450f10, + }, + r0a1: u288 { + limb0: 0x80f025dcbce32f6449fa7719, + limb1: 0x8a0791d4d1ed60b86e4fe813, + limb2: 0x1b1bd5dbce0ea966, + }, + r1a0: u288 { + limb0: 0xaa72a31de7d815ae717165d4, + limb1: 0x501c29c7b6aebc4a1b44407f, + limb2: 0x464aa89f8631b3a, + }, + r1a1: u288 { + limb0: 0x6b8d137e1ea43cd4b1f616b1, + limb1: 0xdd526a510cc84f150cc4d55a, + limb2: 0x1da2ed980ebd3f29, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x72dfbb2159ade3ca2db9a485, + limb1: 0xaf353e749a0b0e126b462bd4, + limb2: 0x11a356fc91502fd1, + }, + r0a1: u288 { + limb0: 0xa8da111fc2adcd5b3152926b, + limb1: 0x9d2cd58a348021fb039ad1ce, + limb2: 0x24a89d0c2aa1a4c, + }, + r1a0: u288 { + limb0: 0xb7eadf0666fe1d5d8e00ddd3, + limb1: 0x9fa7fbf853bdf5b9620cae4c, + limb2: 0x2b6df7a5b1f6cfa3, + }, + r1a1: u288 { + limb0: 0x30a81454c2cc541ca6ac5028, + limb1: 0xd14ccb5778ca0679f43b0042, + limb2: 0x2b15bb249061229, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xff2a45b22df6665c3f2b3433, + limb1: 0x47f06d2821bccb7d4e1442dc, + limb2: 0x1d6d005a3a962538, + }, + r0a1: u288 { + limb0: 0xbc3869f85e6c5199ae4d48ae, + limb1: 0xf1b658ebf5d88598be4f771c, + limb2: 0x10ce0fad17dffce6, + }, + r1a0: u288 { + limb0: 0x9057fbbd4dbd1f42e143f536, + limb1: 0xb84a12963d2bdeff0cfb15cc, + limb2: 0xf055cbcbcad6397, + }, + r1a1: u288 { + limb0: 0x2b6c8f90506d8c5f45a796c2, + limb1: 0x15647362232ed3834e25f304, + limb2: 0x10c73cc1383f51b5, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x867cced8a010850958f41ff5, + limb1: 0x6a37fdb2b8993eed18bafe8e, + limb2: 0x21b9f782109e5a7, + }, + r0a1: u288 { + limb0: 0x7307477d650618e66de38d0f, + limb1: 0xacb622ce92a7e393dbe10ba1, + limb2: 0x236e70838cee0ed5, + }, + r1a0: u288 { + limb0: 0xb564a308aaf5dda0f4af0f0d, + limb1: 0x55fc71e2f13d8cb12bd51e74, + limb2: 0x294cf115a234a9e9, + }, + r1a1: u288 { + limb0: 0xbd166057df55c135b87f35f3, + limb1: 0xf9f29b6c50f1cce9b85ec9b, + limb2: 0x2e8448d167f20f96, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xfcb1d8cfddd4980727750419, + limb1: 0xe57b3100fcf5fcd46e1cff24, + limb2: 0x1ea2a9f23e471d2f, + }, + r0a1: u288 { + limb0: 0x8278659319480914a8f915c3, + limb1: 0xb9d01b3a1f3df0c8481b47c7, + limb2: 0x1dce2891e1df8e91, + }, + r1a0: u288 { + limb0: 0x373890191ad2139b5ac37f5e, + limb1: 0x7d00bf061594cf869f26bd35, + limb2: 0x263941972f0c5bcc, + }, + r1a1: u288 { + limb0: 0x35d21a939f18acadda6398c4, + limb1: 0x2f266751d30024c345fd2f64, + limb2: 0x12415712f84fa7c6, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xdedaff3205bb953b2c390b8a, + limb1: 0xe1a899da21c1dafb485c707e, + limb2: 0x1ec897e7a041493e, + }, + r0a1: u288 { + limb0: 0xf52c3c30cd4d3202b34089e0, + limb1: 0xc652aa1ff533e1aad7532305, + limb2: 0x2a1df766e5e3aa2e, + }, + r1a0: u288 { + limb0: 0x7ac695d3e19d79b234daaf3d, + limb1: 0x5ce2f92666aec92a650feee1, + limb2: 0x21ab4fe20d978e77, + }, + r1a1: u288 { + limb0: 0xa64a913a29a1aed4e0798664, + limb1: 0x66bc208b511503d127ff5ede, + limb2: 0x2389ba056de56a8d, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x65ab6317a706e3cda223edf8, + limb1: 0x9a22ac3ac5e4dd3e9f987fd9, + limb2: 0x157637901a8b31a5, + }, + r0a1: u288 { + limb0: 0xc57d325b1af3a13019c15e11, + limb1: 0x2812651fd79b5fbbb05cc3d7, + limb2: 0x1f1602a02e76536f, + }, + r1a0: u288 { + limb0: 0xdf3ad97a0633d33f5a8cea32, + limb1: 0xd15238b33edfeb16cffd44ea, + limb2: 0x5a03a044b07b640, + }, + r1a1: u288 { + limb0: 0x58fec495c4c681cf797762a1, + limb1: 0xd3ac0af0d5cb5bff7f4fa8e8, + limb2: 0x286d6218242eddb4, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xd88b16e68600a12e6c1f6006, + limb1: 0x333243b43d3b7ff18d0cc671, + limb2: 0x2b84b2a9b0f03ed8, + }, + r0a1: u288 { + limb0: 0xf3e2b57ddaac822c4da09991, + limb1: 0xd7c894b3fe515296bb054d2f, + limb2: 0x10a75e4c6dddb441, + }, + r1a0: u288 { + limb0: 0x73c65fbbb06a7b21b865ac56, + limb1: 0x21f4ecd1403bb78729c7e99b, + limb2: 0xaf88a160a6b35d4, + }, + r1a1: u288 { + limb0: 0xade61ce10b8492d659ff68d0, + limb1: 0x1476e76cf3a8e0df086ad9eb, + limb2: 0x2e28cfc65d61e946, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xdf8b54b244108008e7f93350, + limb1: 0x2ae9a68b9d6b96f392decd6b, + limb2: 0x160b19eed152271c, + }, + r0a1: u288 { + limb0: 0xc18a8994cfbb2e8df446e449, + limb1: 0x408d51e7e4adedd8f4f94d06, + limb2: 0x27661b404fe90162, + }, + r1a0: u288 { + limb0: 0x1390b2a3b27f43f7ac73832c, + limb1: 0x14d57301f6002fd328f2d64d, + limb2: 0x17f3fa337367dddc, + }, + r1a1: u288 { + limb0: 0x79cab8ff5bf2f762c5372f80, + limb1: 0xc979d6f385fae4b5e4785acf, + limb2: 0x60c5307a735b00f, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x42e951ca7dac29d65a14ab82, + limb1: 0x140be62e3d419b811acf5756, + limb2: 0x11523c7fc2a37270, + }, + r0a1: u288 { + limb0: 0x593b29e6aad3cadd506d93bd, + limb1: 0x59976c08d37982b9c28495c3, + limb2: 0xc924925bb5976fe, + }, + r1a0: u288 { + limb0: 0xcb18016afc265e1a5fc80af0, + limb1: 0xd830297a058f529ef5e3f97e, + limb2: 0x253a39d5462f1882, + }, + r1a1: u288 { + limb0: 0x2b081ad5589d7f1cedb120a9, + limb1: 0x956ae1847a5ce3f261e1e1e7, + limb2: 0x1afd47a0e8c0dbeb, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xb70b988a54003f89b0376a63, + limb1: 0xff28c025f2f710e53ac37b9e, + limb2: 0x2e441c518d3fe68d, + }, + r0a1: u288 { + limb0: 0x660ddad555982e7994df37fb, + limb1: 0x6c04f02c84dc80d8305f0357, + limb2: 0x23b41d5762cf7f0f, + }, + r1a0: u288 { + limb0: 0xa2f0ccb1a552683ea3ac0798, + limb1: 0xb33b544006bac5a1fd372830, + limb2: 0x24afb0cbc42170a7, + }, + r1a1: u288 { + limb0: 0xf93faa0be992488deb617b04, + limb1: 0x86fb2bb1f07dfeef85b2886, + limb2: 0x189649259453ed83, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x386d7b23c6dccb87637018c9, + limb1: 0xfed2ea478e9a2210289079e2, + limb2: 0x100aa83cb843353e, + }, + r0a1: u288 { + limb0: 0x229c5c285f049d04c3dc5ce7, + limb1: 0x28110670fe1d38c53ffcc6f7, + limb2: 0x1778918279578f50, + }, + r1a0: u288 { + limb0: 0xe9ad2c7b8a17a1f1627ff09d, + limb1: 0xedff5563c3c3e7d2dcc402ec, + limb2: 0xa8bd6770b6d5aa8, + }, + r1a1: u288 { + limb0: 0x66c5c1aeed5c04470b4e8a3d, + limb1: 0x846e73d11f2d18fe7e1e1aa2, + limb2: 0x10a60eabe0ec3d78, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x9dafcca7f80fb028e1550b13, + limb1: 0x510e07802d526954395ad6d6, + limb2: 0x34f031507e71a70, + }, + r0a1: u288 { + limb0: 0xac7b6a137d96e956dd4f2773, + limb1: 0x2692998b32154b368c857fee, + limb2: 0x2ea30d00a23e6587, + }, + r1a0: u288 { + limb0: 0x69f3776dd7fd4db9bde03967, + limb1: 0x16efb004aa3f44e6ac5fdd29, + limb2: 0x361dd68590907c0, + }, + r1a1: u288 { + limb0: 0x445681532c126e7c428445b7, + limb1: 0xfa2b7d974e59a61f57bcd949, + limb2: 0x258ce35529e9f923, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x88ca191d85be1f6c205257ef, + limb1: 0xd0cecf5c5f80926c77fd4870, + limb2: 0x16ec42b5cae83200, + }, + r0a1: u288 { + limb0: 0x154cba82460752b94916186d, + limb1: 0x564f6bebac05a4f3fb1353ac, + limb2: 0x2d47a47da836d1a7, + }, + r1a0: u288 { + limb0: 0xb39c4d6150bd64b4674f42ba, + limb1: 0x93c967a38fe86f0779bf4163, + limb2: 0x1a51995a49d50f26, + }, + r1a1: u288 { + limb0: 0xeb7bdec4b7e304bbb0450608, + limb1: 0x11fc9a124b8c74b3d5560ea4, + limb2: 0xbfa9bd7f55ad8ac, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x2cb6407193c4b5c315a00755, + limb1: 0x33dcf6b5051abc2c59b801ab, + limb2: 0x16f1a436a0abadf6, + }, + r0a1: u288 { + limb0: 0x3398c4073878ea089b0c7b80, + limb1: 0x49d08a1ce731c9b194b93e64, + limb2: 0x2c1a19007bb6f21c, + }, + r1a0: u288 { + limb0: 0x6b305edfc565d8cb06fa559e, + limb1: 0x43ee87287e1f2f15d6631f33, + limb2: 0x1cd36451c5666f9c, + }, + r1a1: u288 { + limb0: 0x650c38aae0bd3882a6556860, + limb1: 0x8e04c37290ae5a6bb3eb1f91, + limb2: 0x12e57f5774525f20, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x2fdc574c85cf0c0ce5e07a51, + limb1: 0xd2439bf7b00bddc4cfb01b0c, + limb2: 0x125c3bbdeb0bd2da, + }, + r0a1: u288 { + limb0: 0x9d664714bae53cafcb5ef55d, + limb1: 0x495c01724790853548f5e4de, + limb2: 0x2ce5e2e263725941, + }, + r1a0: u288 { + limb0: 0x98071eb7fe88c9124aee3774, + limb1: 0xc3f66947a52bd2f6d520579f, + limb2: 0x2eaf775dbd52f7d3, + }, + r1a1: u288 { + limb0: 0x23e5594948e21db2061dca92, + limb1: 0xd0ffa6f6c77290531c185431, + limb2: 0x604c085de03afb1, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xf884b2ccf06f8da655d3142, + limb1: 0xdece09e25a509a7dd0b73bde, + limb2: 0xa6830f44f8a0e0d, + }, + r0a1: u288 { + limb0: 0x36cc33f5e41d078c07a952fe, + limb1: 0xa3c7be8095228c58e49910b2, + limb2: 0x2d863134dbfbae7f, + }, + r1a0: u288 { + limb0: 0x83786a541018cb79e6baccf6, + limb1: 0x9c73f5fa4f111743dfb0b581, + limb2: 0x22faefa4bfa9f387, + }, + r1a1: u288 { + limb0: 0x2f25834de3d2ec7bda75abc7, + limb1: 0x4526dbfbc8f7d9e1c71c8375, + limb2: 0x1f3bb15443413d60, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xeec2912e15f6bda39d4e005e, + limb1: 0x2b8610c44d27bdbc6ba2aac5, + limb2: 0x78ddc4573fc1fed, + }, + r0a1: u288 { + limb0: 0x48099a0da11ea21de015229d, + limb1: 0x5fe937100967d5cc544f4af1, + limb2: 0x2c9ffe6d7d7e9631, + }, + r1a0: u288 { + limb0: 0xa70d251296ef1ae37ceb7d03, + limb1: 0x2adadcb7d219bb1580e6e9c, + limb2: 0x180481a57f22fd03, + }, + r1a1: u288 { + limb0: 0xacf46db9631037dd933eb72a, + limb1: 0x8a58491815c7656292a77d29, + limb2: 0x261e3516c348ae12, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x62b45634f0eaf51f5bc4003c, + limb1: 0x13ff6a6fc286b5b754548ac3, + limb2: 0x1670dac54842d28b, + }, + r0a1: u288 { + limb0: 0x85fe43906582fc736d926df3, + limb1: 0xf077151ea6da959af3c290f6, + limb2: 0xc8cebcafaa4ae47, + }, + r1a0: u288 { + limb0: 0x7540aff585c27cb2fa15c662, + limb1: 0x5cf456bcd4fa0e3bbae0f467, + limb2: 0x24a1c8ecb9c907e9, + }, + r1a1: u288 { + limb0: 0x19ba1bf552affd897d561632, + limb1: 0x1df4a4d8d77248957809f88e, + limb2: 0x1d7484a0c0251cdc, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x2bfa32f0a09c3e2cfb8f6a38, + limb1: 0x7a24df3ff3c7119a59d49318, + limb2: 0x10e42281d64907ba, + }, + r0a1: u288 { + limb0: 0xce42177a66cdeb4207d11e0c, + limb1: 0x3322aa425a9ca270152372ad, + limb2: 0x2f7fa83db407600c, + }, + r1a0: u288 { + limb0: 0x62a8ff94fd1c7b9035af4446, + limb1: 0x3ad500601bbb6e7ed1301377, + limb2: 0x254d253ca06928f, + }, + r1a1: u288 { + limb0: 0xf8f1787cd8e730c904b4386d, + limb1: 0x7fd3744349918d62c42d24cc, + limb2: 0x28a05e105d652eb8, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x6ef31e059d602897fa8e80a8, + limb1: 0x66a0710847b6609ceda5140, + limb2: 0x228c0e568f1eb9c0, + }, + r0a1: u288 { + limb0: 0x7b47b1b133c1297b45cdd79b, + limb1: 0x6b4f04ed71b58dafd06b527b, + limb2: 0x13ae6db5254df01a, + }, + r1a0: u288 { + limb0: 0xbeca2fccf7d0754dcf23ddda, + limb1: 0xe3d0bcd7d9496d1e5afb0a59, + limb2: 0x305a0afb142cf442, + }, + r1a1: u288 { + limb0: 0x2d299847431477c899560ecf, + limb1: 0xbcd9e6c30bedee116b043d8d, + limb2: 0x79473a2a7438353, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xae3712a6ef6034d7fcbc318c, + limb1: 0xedba25c96439aeb3954ccff7, + limb2: 0x1a0d73e3d8d90330, + }, + r0a1: u288 { + limb0: 0xff6fb0e919bd80f29065244, + limb1: 0xfdcac02f3dd2e9268271021f, + limb2: 0x202e92badc53f790, + }, + r1a0: u288 { + limb0: 0xec674cc5d55fcd80ab9fc167, + limb1: 0xb9f7f1fd7f1e4936802c19d1, + limb2: 0x27ac3aca37743af5, + }, + r1a1: u288 { + limb0: 0xe49dfebb538630697c09c39d, + limb1: 0x56732676796d1f91ecab12ad, + limb2: 0xb010d1b0f285dbd, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xb431b974a13b9d75e11033b8, + limb1: 0xa4b7192e2b5f3730bd216f73, + limb2: 0x53cf4b349760f42, + }, + r0a1: u288 { + limb0: 0x3c87efcabaa8e22835e19e2, + limb1: 0xfc9cf42672502f3fb7917c8f, + limb2: 0x11123549a68499c8, + }, + r1a0: u288 { + limb0: 0xf91da96d0c078dea22787ecb, + limb1: 0xd165ceed6f64338e6288e1d3, + limb2: 0x23490db5de27b468, + }, + r1a1: u288 { + limb0: 0x419e0eafdcf6226512a9ec6a, + limb1: 0x1c6fb8110315ae80c4bf92ec, + limb2: 0x2ad5f86e5d3bc1c3, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x65b71fe695e7ccd4b460dace, + limb1: 0xa6ceba62ef334e6fe91301d5, + limb2: 0x299f578d0f3554e6, + }, + r0a1: u288 { + limb0: 0xaf781dd030a274e7ecf0cfa4, + limb1: 0x2095020d373a14d7967797aa, + limb2: 0x6a7f9df6f185bf8, + }, + r1a0: u288 { + limb0: 0x8e91e2dba67d130a0b274df3, + limb1: 0xe192a19fce285c12c6770089, + limb2: 0x6e9acf4205c2e22, + }, + r1a1: u288 { + limb0: 0xbcd5c206b5f9c77d667189bf, + limb1: 0x656a7e2ebc78255d5242ca9, + limb2: 0x25f43fec41d2b245, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xd6c95bb06c0e9a55a56a85c0, + limb1: 0xf5d3c4d860aee402df7d0cd6, + limb2: 0xa90fbb3a7bcfb07, + }, + r0a1: u288 { + limb0: 0xbfca0761240adb98fdf8e23d, + limb1: 0xe6052ca38781d13cf53921cb, + limb2: 0x780debeee0578b2, + }, + r1a0: u288 { + limb0: 0xbe285fa3e37b0222a1c65921, + limb1: 0xb9fbb60c587b00d8ecf22359, + limb2: 0x284f4ced8b0b28f5, + }, + r1a1: u288 { + limb0: 0x34e69be4d8eea470c08f07e8, + limb1: 0x651617bebb0020b71bf6a8a7, + limb2: 0xde62a1da13dfd78, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x4e56e6733cce20d9c5b16d96, + limb1: 0xc7ef260535fb75b9d3e089f, + limb2: 0x292dd4aa636e7729, + }, + r0a1: u288 { + limb0: 0x6e7e1038b336f36519c9faaf, + limb1: 0x3c66bd609510309485e225c7, + limb2: 0x10cacac137411eb, + }, + r1a0: u288 { + limb0: 0x4a3e8b96278ac092fe4f3b15, + limb1: 0xba47e583e2750b42f93c9631, + limb2: 0x125da6bd69495bb9, + }, + r1a1: u288 { + limb0: 0xae7a56ab4b959a5f6060d529, + limb1: 0xc3c263bfd58c0030c063a48e, + limb2: 0x2f4d15f13fae788c, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x301e0885c84d273b6d323124, + limb1: 0x11fd5c75e269f7a30fa4154f, + limb2: 0x19afdcfdcce2fc0d, + }, + r0a1: u288 { + limb0: 0x3d13519f934526be815c38b0, + limb1: 0xd43735909547da73838874fc, + limb2: 0x255d8aca30f4e0f6, + }, + r1a0: u288 { + limb0: 0x90a505b76f25a3396e2cea79, + limb1: 0x3957a2d0848c54b9079fc114, + limb2: 0x1ba0cd3a9fe6d4bb, + }, + r1a1: u288 { + limb0: 0xc47930fba77a46ebb1db30a9, + limb1: 0x993a1cb166e9d40bebab02b2, + limb2: 0x1deb16166d48118b, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xb8cf2af23a2795446a3a73f1, + limb1: 0x13715e2237eeb02ee6666cee, + limb2: 0xa85c6edf4e39ba5, + }, + r0a1: u288 { + limb0: 0x1f36efdd6931269960bdf4de, + limb1: 0xfe9eff4c19216c4ae441fee1, + limb2: 0x25db1c938c941000, + }, + r1a0: u288 { + limb0: 0xe13bf721634b56a80c6fb0a8, + limb1: 0xda0b9ea6704efbd8451cfd41, + limb2: 0x279768e0c2762893, + }, + r1a1: u288 { + limb0: 0x2dc5403124b8b2766caf51c7, + limb1: 0xb9ed0b96060674c35d818388, + limb2: 0x6f9a41b549839dd, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xbd4aa4e5ed3e0c30bf730048, + limb1: 0x80e73a7e12b5104f4ec40460, + limb2: 0x13db913428ce629c, + }, + r0a1: u288 { + limb0: 0xa90e04c07af34a3af7b9ae23, + limb1: 0xf939d213913f9c4b23910d94, + limb2: 0xff8ab1b303ea87a, + }, + r1a0: u288 { + limb0: 0x38c7e37660597198162fa157, + limb1: 0xa81284a580d040713c0531af, + limb2: 0x110351898a488800, + }, + r1a1: u288 { + limb0: 0x2c97092cce4fdaa715b6afde, + limb1: 0x1a698f4e2982c281c0c42464, + limb2: 0x1bd1c4a7975a22f5, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xb15bbaec50ff49d30e49f74a, + limb1: 0xc90a8c79fb045c5468f14151, + limb2: 0x25e47927e92df0e3, + }, + r0a1: u288 { + limb0: 0x57f66909d5d40dfb8c7b4d5c, + limb1: 0xea5265282e2139c48c1953f2, + limb2: 0x2d7f5e6aff2381f6, + }, + r1a0: u288 { + limb0: 0x2a2f573b189a3c8832231394, + limb1: 0x738abc15844895ffd4733587, + limb2: 0x20aa11739c4b9bb4, + }, + r1a1: u288 { + limb0: 0x51695ec614f1ff4cce2f65d1, + limb1: 0x6765aae6cb895a2406a6dd7e, + limb2: 0x1126ee431c522da0, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xe7f01d9086cd6bea2f41aa99, + limb1: 0x704bab1c6c11f635823c0730, + limb2: 0x1aa5e3110773f18e, + }, + r0a1: u288 { + limb0: 0x85c070793b8763c74570e65c, + limb1: 0x2af5c8f295dafb150ffb4b8b, + limb2: 0xda734f5191394b9, + }, + r1a0: u288 { + limb0: 0x4875f74e54ce34f890a6c795, + limb1: 0x9ae6a24d7c63f7240996ac21, + limb2: 0x2a7c9cc67d33db65, + }, + r1a1: u288 { + limb0: 0xb014ee4eda66723db93d7d9a, + limb1: 0x7d3eb5638239c427a57ce71f, + limb2: 0x1b0456063dc2a87c, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x9214fc3209f1518b05fd21c6, + limb1: 0x9bc8ce4f56423009710770e8, + limb2: 0x32445cc6972799c, + }, + r0a1: u288 { + limb0: 0x93ef401ecd9cfae3644d22e6, + limb1: 0xce5a741a9847a144cfaf8c96, + limb2: 0xf7a814d5726da4a, + }, + r1a0: u288 { + limb0: 0xd19264d986f163b133a91c0c, + limb1: 0x529dc5ce4b193c0f672c6a32, + limb2: 0x2e9a118959353374, + }, + r1a1: u288 { + limb0: 0x3d97d6e8f45072cc9e85e412, + limb1: 0x4dafecb04c3bb23c374f0486, + limb2: 0xa174dd4ac8ee628, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xfa6e20eaa5b8acce6161c367, + limb1: 0x3d8d035c6953305cfb8065a4, + limb2: 0x40bb50e482935b, + }, + r0a1: u288 { + limb0: 0x4c506a8e01c5144fa535163b, + limb1: 0x61030d954c1196c840ee7931, + limb2: 0x2f221fa9c7e3b5ae, + }, + r1a0: u288 { + limb0: 0x2613b98211a31e101b009375, + limb1: 0xe4cfbf39bf10d39059fcec56, + limb2: 0x196add035e14330e, + }, + r1a1: u288 { + limb0: 0xcc093368ee2558dabe10c7be, + limb1: 0x206a20357ce007c45165fee6, + limb2: 0xd4fb39f4b1fde10, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x98d8b0c4adcf27bceb305c2c, + limb1: 0x859afa9c7668ed6152d8cba3, + limb2: 0x29e7694f46e3a272, + }, + r0a1: u288 { + limb0: 0x1d970845365594307ba97556, + limb1: 0xd002d93ad793e154afe5b49b, + limb2: 0x12ca77d3fb8eee63, + }, + r1a0: u288 { + limb0: 0x9f2934faefb8268e20d0e337, + limb1: 0xbc4b5e1ec056881319f08766, + limb2: 0x2e103461759a9ee4, + }, + r1a1: u288 { + limb0: 0x7adc6cb87d6b43000e2466b6, + limb1: 0x65e5cefa42b25a7ee8925fa6, + limb2: 0x2560115898d7362a, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x823969b5ec0f79a94f88d36b, + limb1: 0x3512d9e09a8b4a8e1084dc32, + limb2: 0x1af1156b9c8d06e6, + }, + r0a1: u288 { + limb0: 0xafd7dd0f120256e11800dee8, + limb1: 0x3a317cae149063c44cf7fa8c, + limb2: 0x2bd8ea8b2474d1e5, + }, + r1a0: u288 { + limb0: 0xe1772b865b838d58dd129624, + limb1: 0xbe9458968158c433742dbcd0, + limb2: 0x22b6d697a5a3b888, + }, + r1a1: u288 { + limb0: 0xbff3b00a55f411bbc1dad2fe, + limb1: 0x7ae09ac6313e3c00759461ae, + limb2: 0x558601ecf31c85, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x64d864643668392c0e357cc4, + limb1: 0x4c9bf66853f1b287015ab84c, + limb2: 0x2f5f1b92ad7ee4d4, + }, + r0a1: u288 { + limb0: 0xdc33c8da5c575eef6987a0e1, + limb1: 0x51cc07c7ef28e1b8d934bc32, + limb2: 0x2358d94a17ec2a44, + }, + r1a0: u288 { + limb0: 0xf659845b829bbba363a2497b, + limb1: 0x440f348e4e7bed1fb1eb47b2, + limb2: 0x1ad0eaab0fb0bdab, + }, + r1a1: u288 { + limb0: 0x1944bb6901a1af6ea9afa6fc, + limb1: 0x132319df135dedddf5baae67, + limb2: 0x52598294643a4aa, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x76fd94c5e6f17fa6741bd7de, + limb1: 0xc2e0831024f67d21013e0bdd, + limb2: 0x21e2af6a43119665, + }, + r0a1: u288 { + limb0: 0xad290eab38c64c0d8b13879b, + limb1: 0xdd67f881be32b09d9a6c76a0, + limb2: 0x8000712ce0392f2, + }, + r1a0: u288 { + limb0: 0xd30a46f4ba2dee3c7ace0a37, + limb1: 0x3914314f4ec56ff61e2c29e, + limb2: 0x22ae1ba6cd84d822, + }, + r1a1: u288 { + limb0: 0x5d888a78f6dfce9e7544f142, + limb1: 0x9439156de974d3fb6d6bda6e, + limb2: 0x106c8f9a27d41a4f, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x6092d1d633b2160a27266d5b, + limb1: 0x80d00c798b74744e2d6c9897, + limb2: 0x6aca1e5b3d6e760, + }, + r0a1: u288 { + limb0: 0x3f695b0e7bf0e735a060a1fc, + limb1: 0x21c516331ac46f6f1940a79c, + limb2: 0x9fb99bd56e3cfd0, + }, + r1a0: u288 { + limb0: 0x125cd061734e6d82260bff31, + limb1: 0x7b1fb56a17f3832fd3c026f3, + limb2: 0xdafb0c1b7a07131, + }, + r1a1: u288 { + limb0: 0x449a0a17221fac459caf049a, + limb1: 0x4bbd5645024fe09ba86f662d, + limb2: 0x295e6b43830d7473, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x138792ff5a46d835c3927fde, + limb1: 0x498899eff0ddfb1e2a6a2a63, + limb2: 0xfaff0a267eddd92, + }, + r0a1: u288 { + limb0: 0xfffeb2ff28064301c583286, + limb1: 0x223c9e6d3ae5d55a899db5e2, + limb2: 0x1a88e4cac54f8190, + }, + r1a0: u288 { + limb0: 0xcfbe06117f1f6dea20f8379f, + limb1: 0x6b831cd38c1741b394a2f18d, + limb2: 0xd44868b638ab5cd, + }, + r1a1: u288 { + limb0: 0x21a8bd3280686ca4d3c4a764, + limb1: 0x3b3576220bbc08abcec8478b, + limb2: 0x29b73d7c0c8ff4ce, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x92c09e4796207b802168341b, + limb1: 0xd2d9d6acffd7829066cc49ce, + limb2: 0xc89c2d0a7b2c81e, + }, + r0a1: u288 { + limb0: 0x47e3c1cf6cdb6f3efe778c7f, + limb1: 0x66b347099b6436794cf062eb, + limb2: 0x18b4ccc64ae0a857, + }, + r1a0: u288 { + limb0: 0x7d5793606a73b2740c71484a, + limb1: 0xa0070135ca2dc571b28e3c9c, + limb2: 0x1bc03576e04b94cf, + }, + r1a1: u288 { + limb0: 0x1ba85b29875e638c10f16c99, + limb1: 0x158f2f2acc3c2300bb9f9225, + limb2: 0x42d8a8c36ea97c6, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x491a2a2eb92babf14d2c70ed, + limb1: 0x88adfa10d27cbf95efc87ca9, + limb2: 0x1ea367cb9628819e, + }, + r0a1: u288 { + limb0: 0xf832704f9fde600131526e2, + limb1: 0x943da98740594bc8573bc424, + limb2: 0x225058a1522f4c77, + }, + r1a0: u288 { + limb0: 0xf43027c8e85927d41ef51aa6, + limb1: 0x6d6d7aa318f97e5043973413, + limb2: 0x11a037a0589e5f86, + }, + r1a1: u288 { + limb0: 0x45f2d483ce8e645ed19421cb, + limb1: 0x6363b56540ef0ea0331819ca, + limb2: 0x2b5c9bfcfb64a95f, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x9440ad13408319cecb07087b, + limb1: 0x537afc0c0cfe8ff761c24e08, + limb2: 0x48e4ac10081048d, + }, + r0a1: u288 { + limb0: 0xa37fb82b03a2c0bb2aa50c4f, + limb1: 0xd3797f05c8fb84f6b630dfb, + limb2: 0x2dffde2d6c7e43ff, + }, + r1a0: u288 { + limb0: 0xc55d2eb1ea953275e780e65b, + limb1: 0xe141cf680cab57483c02e4c7, + limb2: 0x1b71395ce5ce20ae, + }, + r1a1: u288 { + limb0: 0xe4fab521f1212a1d301065de, + limb1: 0x4f8d31c78df3dbe4ab721ef2, + limb2: 0x2828f21554706a0e, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x8cefc2f2af2a3082b790784e, + limb1: 0x97ac13b37c6fbfc736a3d456, + limb2: 0x683b1cdffd60acd, + }, + r0a1: u288 { + limb0: 0xa266a8188a8c933dcffe2d02, + limb1: 0x18d3934c1838d7bce81b2eeb, + limb2: 0x206ac5cdda42377, + }, + r1a0: u288 { + limb0: 0x90332652437f6e177dc3b28c, + limb1: 0x75bd8199433d607735414ee8, + limb2: 0x29d6842d8298cf7e, + }, + r1a1: u288 { + limb0: 0xadedf46d8ea11932db0018e1, + limb1: 0xbc7239ae9d1453258037befb, + limb2: 0x22e7ebdd72c6f7a1, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x3a7dc5b45b0cd09dd75ff780, + limb1: 0x2902bd9bd8ba8605b3662044, + limb2: 0x1ec042f89cec2f4a, + }, + r0a1: u288 { + limb0: 0x3e484c01e1c71dad604b6e00, + limb1: 0x63cd271538443abcbe242bee, + limb2: 0x10c38586e25d160e, + }, + r1a0: u288 { + limb0: 0xc406f3abf9503a06bdeb2eef, + limb1: 0x8653c7da6db9ab8b17639151, + limb2: 0xad22e688ec88604, + }, + r1a1: u288 { + limb0: 0x50fc42dbc609f56f660d8b86, + limb1: 0x56a81c62935f53a8194e5d90, + limb2: 0x2b27bb15c58ff0c3, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xacc013a37118e98a394f1114, + limb1: 0x97e3d97d841f62677ad653b1, + limb2: 0xfa27c5f03ef3e74, + }, + r0a1: u288 { + limb0: 0x9599de7b6e6a8aeef6b63e52, + limb1: 0x73e39f958d986d83148d8c8a, + limb2: 0x208d43519f69f381, + }, + r1a0: u288 { + limb0: 0x898b0f8615e3cf94474d7196, + limb1: 0x82213cada178b34ae97fdb67, + limb2: 0x11a8f2b07229c348, + }, + r1a1: u288 { + limb0: 0x8a100eb3750e818962602ec3, + limb1: 0xdca2571e9fc5588275e810fd, + limb2: 0x290c599d240303ec, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x348e15357d9299e582033136, + limb1: 0x53578c46b15abb39da35a56e, + limb2: 0x1043b711f86bb33f, + }, + r0a1: u288 { + limb0: 0x9fa230a629b75217f0518e7c, + limb1: 0x77012a4bb8751322a406024d, + limb2: 0x121e2d845d972695, + }, + r1a0: u288 { + limb0: 0x5600f2d51f21d9dfac35eb10, + limb1: 0x6fde61f876fb76611fb86c1a, + limb2: 0x2bf4fbaf5bd0d0df, + }, + r1a1: u288 { + limb0: 0xd732aa0b6161aaffdae95324, + limb1: 0xb3c4f8c3770402d245692464, + limb2: 0x2a0f1740a293e6f0, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x481b93066804d8e4a43ea2f5, + limb1: 0x29399b4d554a5731966efdf4, + limb2: 0x100692df233dfccb, + }, + r0a1: u288 { + limb0: 0xa03028f9394d39e5aff150c2, + limb1: 0x82b1b27285e7d875b1cc49e8, + limb2: 0x1aa360e1848acc84, + }, + r1a0: u288 { + limb0: 0xc358787d7c823681590988f, + limb1: 0xa3e33a227d61efc5734e48e4, + limb2: 0x15e7e41317f696d9, + }, + r1a1: u288 { + limb0: 0x73141ff9e75e2761d8d99b93, + limb1: 0x48b8fbe75ec09c4496c9652f, + limb2: 0x1edc83253b7ac568, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xa9e2efa41aaa98ab59728940, + limb1: 0x163c0425f66ce72daef2f53e, + limb2: 0x2feaf1b1770aa7d8, + }, + r0a1: u288 { + limb0: 0x3bb7afd3c0a79b6ac2c4c063, + limb1: 0xee5cb42e8b2bc999e312e032, + limb2: 0x1af2071ae77151c3, + }, + r1a0: u288 { + limb0: 0x1cef1c0d8956d7ceb2b162e7, + limb1: 0x202b4af9e51edfc81a943ded, + limb2: 0xc9e943ffbdcfdcb, + }, + r1a1: u288 { + limb0: 0xe18b1b34798b0a18d5ad43dd, + limb1: 0x55e8237731941007099af6b8, + limb2: 0x1472c0290db54042, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xe6100d19eaef8d37a80e60df, + limb1: 0x4ef3e1a2b34daa1c2be28701, + limb2: 0x92500ae61c29ded, + }, + r0a1: u288 { + limb0: 0xcb5fe102a0a2aeb5f2b1d8b5, + limb1: 0x48c7bc91c8b114893d8b23cd, + limb2: 0x21268b5f3137e05e, + }, + r1a0: u288 { + limb0: 0x67b383adbc235c125e89ac73, + limb1: 0xf140e37cce399681b4f96b6c, + limb2: 0x29da1de8b7c2764b, + }, + r1a1: u288 { + limb0: 0x3a20a1e0817f5af4c383af92, + limb1: 0xb6447b112ca3c55500553bae, + limb2: 0xad54da1adb037ab, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xb4c7963e0d1dc082de0725e, + limb1: 0x375a7a3d765918de24804223, + limb2: 0xf177b77b031596d, + }, + r0a1: u288 { + limb0: 0x87a7b9c5f10500b0b40d7a1e, + limb1: 0x6f234d1dc7f1394b55858810, + limb2: 0x26288146660a3914, + }, + r1a0: u288 { + limb0: 0xa6308c89cebe40447abf4a9a, + limb1: 0x657f0fdda13b1f8ee314c22, + limb2: 0x1701aabc250a9cc7, + }, + r1a1: u288 { + limb0: 0x9db9bf660dc77cbe2788a755, + limb1: 0xbdf9c1c15a4bd502a119fb98, + limb2: 0x14b4de3d26bd66e1, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x53c49c62ca96007e14435295, + limb1: 0x85aeb885e4123ca8d3232fdf, + limb2: 0x750017ce108abf3, + }, + r0a1: u288 { + limb0: 0xba6bf3e25d370182e4821239, + limb1: 0x39de83bf370bd2ba116e8405, + limb2: 0x2b8417a72ba6d940, + }, + r1a0: u288 { + limb0: 0xa922f50550d349849b14307b, + limb1: 0x569766b6feca6143a5ddde9d, + limb2: 0x2c3c6765b25a01d, + }, + r1a1: u288 { + limb0: 0x6016011bdc3b506563b0f117, + limb1: 0xbab4932beab93dde9b5b8a5c, + limb2: 0x1bf3f698de0ace60, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x6cd6d068630c95ff7923dace, + limb1: 0x327c95abb26719a3e4f307d4, + limb2: 0x1622ee5d85fd5915, + }, + r0a1: u288 { + limb0: 0x3b0cab292557116e4a91297c, + limb1: 0x73e3c8e25063487150b2b475, + limb2: 0x10b9c1c61e8b6478, + }, + r1a0: u288 { + limb0: 0xd5edff0ce6e33bb98c43f4a5, + limb1: 0xdefbbd27923dd717a2029ccd, + limb2: 0x1dde221b1cae459, + }, + r1a1: u288 { + limb0: 0xf582a6716fc11b9594c7cda2, + limb1: 0x4b375f530154fbdd63e5feb, + limb2: 0xb49455f93935ab, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x54fcd4a24d259b46df23323f, + limb1: 0x47e6fdfb9c428d378a40ff4e, + limb2: 0x1df34ff52254dff6, + }, + r0a1: u288 { + limb0: 0xe0c10735495ed8f5cd2e4be0, + limb1: 0xc86bc1fb1f401ef4df3b1cd0, + limb2: 0x28c43896b60b6285, + }, + r1a0: u288 { + limb0: 0x1c96043ad27370916cb891b4, + limb1: 0x87329ba866d1b2e138d8c107, + limb2: 0x2969b2c3e19a125a, + }, + r1a1: u288 { + limb0: 0x439d38ff3bfb073cf2b5661f, + limb1: 0x40fd99e28d8fb2f2ff6a20e7, + limb2: 0x182bde6af8c937b7, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xb9f05ffda3ee208f990ff3a8, + limb1: 0x6201d08440b28ea672b9ea93, + limb2: 0x1ed60e5a5e778b42, + }, + r0a1: u288 { + limb0: 0x8e8468b937854c9c00582d36, + limb1: 0x7888fa8b2850a0c555adb743, + limb2: 0xd1342bd01402f29, + }, + r1a0: u288 { + limb0: 0xf5c4c66a974d45ec754b3873, + limb1: 0x34322544ed59f01c835dd28b, + limb2: 0x10fe4487a871a419, + }, + r1a1: u288 { + limb0: 0xedf4af2df7c13d6340069716, + limb1: 0x8592eea593ece446e8b2c83b, + limb2: 0x12f9280ce8248724, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x2ddf82dac5876ef85cbd9209, + limb1: 0x589fcd0afc56475897b6712f, + limb2: 0xbd4b3348385e23b, + }, + r0a1: u288 { + limb0: 0x1c3aa02855ddee9cd40d4eae, + limb1: 0xf6ed3e19ac13cbd2012f796a, + limb2: 0x1dc1b58676a8f698, + }, + r1a0: u288 { + limb0: 0xc4830930ba2848c2f39f43da, + limb1: 0xa0fc7164985c553cef876d41, + limb2: 0x18fce7cada9deef8, + }, + r1a1: u288 { + limb0: 0xedb28e73d7e312b0bfe1fa45, + limb1: 0xed4ae4b37915b6888b40ee88, + limb2: 0x5cf09de42e4f82a, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xe67f72c6d45f1bb04403139f, + limb1: 0x9233e2a95d3f3c3ff2f7e5b8, + limb2: 0x1f931e8e4343b028, + }, + r0a1: u288 { + limb0: 0x20ef53907af71803ce3ca5ca, + limb1: 0xd99b6637ee9c73150b503ea4, + limb2: 0x1c9759def8a98ea8, + }, + r1a0: u288 { + limb0: 0xa0a3b24c9089d224822fad53, + limb1: 0xdfa2081342a7a895062f3e50, + limb2: 0x185e8cf6b3e494e6, + }, + r1a1: u288 { + limb0: 0x8752a12394b29d0ba799e476, + limb1: 0x1493421da067a42e7f3d0f8f, + limb2: 0x67e7fa3e3035edf, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x125ce6d868f59b6805a98a6e, + limb1: 0x9229c7ee5700f2429eadaecb, + limb2: 0x292c838c4deb5f8d, + }, + r0a1: u288 { + limb0: 0x5325a1514f8ee43d2ed16153, + limb1: 0x63c33b5123f4ecb9e010da3c, + limb2: 0x1e0f5d09063cd187, + }, + r1a0: u288 { + limb0: 0x605cc50180814223b30419fe, + limb1: 0xb08ee4b45c98923764c3c996, + limb2: 0x2e496c94d4ce61d7, + }, + r1a1: u288 { + limb0: 0x7f916e4957b0d0a9c5aa8e89, + limb1: 0x1b4099fb9348cb6604b6644d, + limb2: 0x2fa7202e6e45ebd0, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x6d6138c95464e5e774ae7ba0, + limb1: 0xe6ca73a5498e4ccd4bb68fc7, + limb2: 0x15bf8aa8ed1beff6, + }, + r0a1: u288 { + limb0: 0xabd7c55a134ed405b4966d3c, + limb1: 0xe69dd725ccc4f9dd537fe558, + limb2: 0x2df4a03e2588a8f1, + }, + r1a0: u288 { + limb0: 0x7cf42890de0355ffc2480d46, + limb1: 0xe33c2ad9627bcb4b028c2358, + limb2: 0x2a18767b40de20bd, + }, + r1a1: u288 { + limb0: 0x79737d4a87fab560f3d811c6, + limb1: 0xa88fee5629b91721f2ccdcf7, + limb2: 0x2b51c831d3404d5e, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x16a889bc98dbba30d0e85f7c, + limb1: 0xfcada96c42f00ced918d942e, + limb2: 0x2cc9b3197de097a5, + }, + r0a1: u288 { + limb0: 0x66b312469ce97517a7e5f585, + limb1: 0x320485962e1cd1ce5609b3ad, + limb2: 0x2f5ed56d2b372567, + }, + r1a0: u288 { + limb0: 0x50a883556bfbb1f8d5f9d8a3, + limb1: 0x4aa6753d1fea97e3b8aac1f1, + limb2: 0x301980e220bb49ed, + }, + r1a1: u288 { + limb0: 0xe7614ace25bd3a3830b64ecf, + limb1: 0x38dedb346af32c21784b968c, + limb2: 0x101dfcee3c535929, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x9812f6145cf7e949fa207f20, + limb1: 0x4061c36b08d5bcd408b14f19, + limb2: 0x8332e08b2eb51ed, + }, + r0a1: u288 { + limb0: 0xa4a7ae8f65ba180c523cb33, + limb1: 0xb71fabbdc78b1128712d32a5, + limb2: 0x2acd1052fd0fefa7, + }, + r1a0: u288 { + limb0: 0x6ea5598e221f25bf27efc618, + limb1: 0xa2c2521a6dd8f306f86d6db7, + limb2: 0x13af144288655944, + }, + r1a1: u288 { + limb0: 0xea469c4b390716a6810fff5d, + limb1: 0xf8052694d0fdd3f40b596c20, + limb2: 0x24d0ea6c86e48c5c, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x2e39be614d904bafea58a8cd, + limb1: 0xf53f0a6a20a1f1783b0ea2d0, + limb2: 0x99c451b7bb726d7, + }, + r0a1: u288 { + limb0: 0x28ec54a4ca8da838800c573d, + limb1: 0xb78365fa47b5e192307b7b87, + limb2: 0x2df87aa88e012fec, + }, + r1a0: u288 { + limb0: 0xfb7022881c6a6fdfb18de4aa, + limb1: 0xb9bd30f0e93c5b93ad333bab, + limb2: 0x1dd20cbccdeb9924, + }, + r1a1: u288 { + limb0: 0x16d8dfdf790a6be16a0e55ba, + limb1: 0x90ab884395509b9a264472d4, + limb2: 0xeaec571657b6e9d, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xdf8d520c2fd45b16da910ca7, + limb1: 0x2023ab59c06742c107d21389, + limb2: 0x474f8d201c2003a, + }, + r0a1: u288 { + limb0: 0xc46ba70245e0d604d975ec09, + limb1: 0x921be51a6779f8abc213a42b, + limb2: 0x737865d13506920, + }, + r1a0: u288 { + limb0: 0xebde3248ae4a49e4ca67667c, + limb1: 0x55021936a806c18771a5b497, + limb2: 0xeddf62dee5cd01d, + }, + r1a1: u288 { + limb0: 0x840eb64075057d76ec783626, + limb1: 0xd09ec083f029b05d8cf747e8, + limb2: 0x29923f4182ebbd77, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x797d2ef5c1d08447d0723c47, + limb1: 0x5e3d0a3367a49356be559196, + limb2: 0x1ac7d70481f3e230, + }, + r0a1: u288 { + limb0: 0xec5fd0d82c9efcda61aec42a, + limb1: 0xd18c0e943f37d7060aebd361, + limb2: 0x11985d67f47debff, + }, + r1a0: u288 { + limb0: 0x71ec5d0ede447fc2d2b8d30a, + limb1: 0x6d732f49bca172dde108d14e, + limb2: 0xa187b54b3aa09fe, + }, + r1a1: u288 { + limb0: 0x366c39d4f024f7ffcc1f190d, + limb1: 0xb25354b8c4a9a95e3c632091, + limb2: 0x94ede742a6d279b, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xce78fc6505db036c10fac771, + limb1: 0x61f8c0bc7f60ad6415d5e419, + limb2: 0x59009c5cf9ea663, + }, + r0a1: u288 { + limb0: 0xb3b3f697fc34d64ba053b914, + limb1: 0x317af5815ce5bfffc5a6bc97, + limb2: 0x23f97fee4deda847, + }, + r1a0: u288 { + limb0: 0xf559e09cf7a02674ac2fa642, + limb1: 0x4fa7548b79cdd054e203689c, + limb2: 0x2173b379d546fb47, + }, + r1a1: u288 { + limb0: 0x758feb5b51caccff9da0f78f, + limb1: 0xd7f37a1008233b74c4894f55, + limb2: 0x917c640b4b9627e, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xdfce680eeda9dab9f624300d, + limb1: 0x3332e1bcaad5d683961ea721, + limb2: 0x428540bb4a391d0, + }, + r0a1: u288 { + limb0: 0x3f654faa3518ed9595db752b, + limb1: 0xebecb7527a9c9bc0e35974f2, + limb2: 0x14bcaa1d4c941ce0, + }, + r1a0: u288 { + limb0: 0x332ed31f8babcb1fb1902637, + limb1: 0xa3d0543357fc3e835fe62d46, + limb2: 0x1ba5e26829d040d8, + }, + r1a1: u288 { + limb0: 0x26ad9a6548dbeda3a0cb37ac, + limb1: 0xe2ddec0f5eb83e84b3af4a3e, + limb2: 0x2f95fb7eb636c829, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x72548e0d946b796842cfecd8, + limb1: 0x78b54b355e3c26476b0fab82, + limb2: 0x2dc9f32c90b6ba31, + }, + r0a1: u288 { + limb0: 0xa943be83a6fc90414320753b, + limb1: 0xd708fde97241095833ce5a08, + limb2: 0x142111e6a73d2e82, + }, + r1a0: u288 { + limb0: 0xc79e8d5465ec5f28781e30a2, + limb1: 0x697fb9430b9ad050ced6cce, + limb2: 0x1a9d647149842c53, + }, + r1a1: u288 { + limb0: 0x9bab496952559362586725cd, + limb1: 0xbe78e5a416d9665be64806de, + limb2: 0x147b550afb4b8b84, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xde3f0cc8eb9d8bc0524ffa31, + limb1: 0xa29420171bca522f8e0d0ab4, + limb2: 0x1c527b5683d4814d, + }, + r0a1: u288 { + limb0: 0xb831225213716dec94efc1de, + limb1: 0x970dd107965ba3923ab9d17a, + limb2: 0x2bfb03ab5ab6d7e9, + }, + r1a0: u288 { + limb0: 0x41fa2c98128b2070cbf6c33d, + limb1: 0xde4def6e8343cd45841c0890, + limb2: 0x12f1cede76e2b8d7, + }, + r1a1: u288 { + limb0: 0x2aadf4029e19b185f59187a, + limb1: 0xb4e7dd0e3b5c1a62be0f0e48, + limb2: 0x2029ea04d9e4c426, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x1422e11013fe6cdd7f843391, + limb1: 0xfb96092ab69fc530e27d8d8e, + limb2: 0xe39e04564fedd0, + }, + r0a1: u288 { + limb0: 0xbd4e81e3b4db192e11192788, + limb1: 0x805257d3c2bdbc344a15ce0d, + limb2: 0x10ddd4f47445106b, + }, + r1a0: u288 { + limb0: 0x87ab7f750b693ec75bce04e1, + limb1: 0x128ba38ebed26d74d26e4d69, + limb2: 0x2f1d22a64c983ab8, + }, + r1a1: u288 { + limb0: 0x74207c17f5c8335183649f77, + limb1: 0x7144cd3520ac2e1be3204133, + limb2: 0xb38d0645ab3499d, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x5daa65d81efa0ef1b3b5406, + limb1: 0x759ff07b1035fc39169a31ee, + limb2: 0x101ca4f03f0629e, + }, + r0a1: u288 { + limb0: 0x10cdf0ef882fb24b6a44bbd3, + limb1: 0x580b99e84dc07e055656849b, + limb2: 0x253201b38848e657, + }, + r1a0: u288 { + limb0: 0x8fbd353430e804cbac89ec28, + limb1: 0xdaee431fd72f78e22a236faa, + limb2: 0x48b73245c4dad79, + }, + r1a1: u288 { + limb0: 0xd98cc2ed22a85b0f8c63206e, + limb1: 0xd2aec0400ab5850c7f0fa8cf, + limb2: 0x649735015bf42af, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x49173a889c697b0ab07f35bc, + limb1: 0xdcffb65f4b4c21ced6b623af, + limb2: 0x1366d12ee6022f7b, + }, + r0a1: u288 { + limb0: 0x285fdce362f7a79b89c49b5c, + limb1: 0xae9358c8eaf26e2fed7353f5, + limb2: 0x21c91fefaf522b5f, + }, + r1a0: u288 { + limb0: 0x748798f96436e3b18c64964a, + limb1: 0xfc3bb221103d3966d0510599, + limb2: 0x167859ae2ebc5e27, + }, + r1a1: u288 { + limb0: 0xe3b55b05bb30e23fa7eba05b, + limb1: 0xa5fc8b7f7bc6abe91c90ddd5, + limb2: 0xe0da83c6cdebb5a, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x30a4abff5957209783681bfb, + limb1: 0x82d868d5ca421e4f1a0daf79, + limb2: 0x1ba96ef98093d510, + }, + r0a1: u288 { + limb0: 0xd9132c7f206a6c036a39e432, + limb1: 0x8a2dfb94aba29a87046110b8, + limb2: 0x1fad2fd5e5e37395, + }, + r1a0: u288 { + limb0: 0x76b136dc82b82e411b2c44f6, + limb1: 0xe405f12052823a54abb9ea95, + limb2: 0xf125ba508c26ddc, + }, + r1a1: u288 { + limb0: 0x1bae07f5f0cc48e5f7aac169, + limb1: 0x47d1288d741496a960e1a979, + limb2: 0xa0911f6cc5eb84e, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x9f79430d5ef315d742ba7cc2, + limb1: 0x20aacc886043783d85b20292, + limb2: 0x1323cd0f26d8101a, + }, + r0a1: u288 { + limb0: 0x10b2ac6faa0f2c6d21dd1a46, + limb1: 0x692a71ed6ead0995c1dd5f06, + limb2: 0x38e5099a87e0acb, + }, + r1a0: u288 { + limb0: 0x47ae74d8002447773c1ed5c6, + limb1: 0xbeefb67ce6653bc31410cc77, + limb2: 0x38bcbf510e04693, + }, + r1a1: u288 { + limb0: 0x87f7dfe2a9704d878a43c43a, + limb1: 0x388417c8c9596caee4b8f3c8, + limb2: 0x2231862dd6ea5377, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x8824ae4e52f07175b229f86c, + limb1: 0xea266c73c6740dc7206d703e, + limb2: 0xa0bcd21da42425d, + }, + r0a1: u288 { + limb0: 0x91c8d9f501c8c2411d65a5b2, + limb1: 0x6f693a3cbab19d3ac5acf696, + limb2: 0x2cb77ffe6050fd13, + }, + r1a0: u288 { + limb0: 0x127d86621c661371e92e5fd, + limb1: 0x5a334ed75d208520e997f2e3, + limb2: 0x3e78ee48b36d52b, + }, + r1a1: u288 { + limb0: 0x640d7cc8a8916f3987fcc33c, + limb1: 0x82738853adee48da240f6b1c, + limb2: 0x1a0013b7fe68edfa, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x2e7b3a5a35456f42e87968e6, + limb1: 0xb4303f5093c3a460674a2fcd, + limb2: 0x2b5331f03b8fa15f, + }, + r0a1: u288 { + limb0: 0x7cea371d64d8bd0fc5b9427e, + limb1: 0x76208e15fc175e352c274fbe, + limb2: 0x5ceb46647d41234, + }, + r1a0: u288 { + limb0: 0x6cdac06bfcf041a30435a560, + limb1: 0x15a7ab7ed1df6d7ed12616a6, + limb2: 0x2520b0f462ad4724, + }, + r1a1: u288 { + limb0: 0xe8b65c5fff04e6a19310802f, + limb1: 0xc96324a563d5dab3cd304c64, + limb2: 0x230de25606159b1e, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x65202a838e48a9d934e11db8, + limb1: 0xeb46c664339ef677558bbb71, + limb2: 0x132ac06128a0a57b, + }, + r0a1: u288 { + limb0: 0xbc21baf183836fa8dc9de81c, + limb1: 0x806b66e601e4ff52a20e891a, + limb2: 0x12e535eb6ae922c1, + }, + r1a0: u288 { + limb0: 0xc0b103b1723019de05b304a3, + limb1: 0xff8f7760a660a16df500b596, + limb2: 0x8db75dc6535f297, + }, + r1a1: u288 { + limb0: 0x3a686dcde09afac7da57832c, + limb1: 0xa5947df796243b62fa4da442, + limb2: 0x259924e4a773bef0, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xb2236e5462d1e11842039bb5, + limb1: 0x8d746dd0bb8bb2a455d505c1, + limb2: 0x2fd3f4a905e027ce, + }, + r0a1: u288 { + limb0: 0x3d6d9836d71ddf8e3b741b09, + limb1: 0x443f16e368feb4cb20a5a1ab, + limb2: 0xb5f19dda13bdfad, + }, + r1a0: u288 { + limb0: 0x4e5612c2b64a1045a590a938, + limb1: 0xbca215d075ce5769db2a29d7, + limb2: 0x161e651ebdfb5065, + }, + r1a1: u288 { + limb0: 0xc02a55b6685351f24e4bf9c7, + limb1: 0x4134240119050f22bc4991c8, + limb2: 0x300bd9f8d76bbc11, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xe9296a3a3aed4c4143d2e0ba, + limb1: 0x7de973514b499b2da739b3e6, + limb2: 0x1b4b807986fcdee0, + }, + r0a1: u288 { + limb0: 0xb9295fecce961afe0c5e6dad, + limb1: 0xc4e30c322bcae6d526c4de95, + limb2: 0x1fee592f513ed6b2, + }, + r1a0: u288 { + limb0: 0x7245f5e5e803d0d448fafe21, + limb1: 0xcbdc032ecb3b7a63899c53d0, + limb2: 0x1fde9ffc17accfc3, + }, + r1a1: u288 { + limb0: 0x8edcc1b2fdd35c87a7814a87, + limb1: 0x99d54b5c2fe171c49aa9cb08, + limb2: 0x130ef740e416a6fe, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x38f941f3820c4025d48597c4, + limb1: 0x4270c36c42111e8a83bed2ed, + limb2: 0x2d0d91a20b75cbb9, + }, + r0a1: u288 { + limb0: 0x5ac829defc8a29c4e18ec184, + limb1: 0x3ad0a15a0dd4df948ef5ff02, + limb2: 0xf618f631c37e868, + }, + r1a0: u288 { + limb0: 0xf96e4555f7a83c01c2b1d33f, + limb1: 0x74ee4e7ee57979aed686387d, + limb2: 0x1c3d7a9c3d45957f, + }, + r1a1: u288 { + limb0: 0x210a733628cff21f964acf38, + limb1: 0x58addf725f511f5c0f3c4c48, + limb2: 0x25c47d2540c2db11, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x40675e9847f925e0cd58ff84, + limb1: 0x19a957ff534718c419e1b3a6, + limb2: 0xbb2e95d559fbe61, + }, + r0a1: u288 { + limb0: 0x70bd9ffbe4ec1ca028fc7d77, + limb1: 0x12b76b14785c6e62da580b73, + limb2: 0x15b1b31fd06f755f, + }, + r1a0: u288 { + limb0: 0x92dd2c2444d613dfaa53a1e3, + limb1: 0xec043691d9b8376ef4c32dbb, + limb2: 0x1804f2db8a7b3a55, + }, + r1a1: u288 { + limb0: 0xe8ad6e24b323fdb6cc8189a9, + limb1: 0x501fc22cd9d6c75bfcfe658e, + limb2: 0x4669f457c82b8e1, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x537ecf0916b38aeea21d4e47, + limb1: 0x181a00de27ba4be1b380d6c8, + limb2: 0x8c2fe2799316543, + }, + r0a1: u288 { + limb0: 0xe68fff5ee73364fff3fe403b, + limb1: 0x7b8685c8a725ae79cfac8f99, + limb2: 0x7b4be349766aba4, + }, + r1a0: u288 { + limb0: 0xdf7c93c0095545ad5e5361ea, + limb1: 0xce316c76191f1e7cd7d03f3, + limb2: 0x22ea21f18ddec947, + }, + r1a1: u288 { + limb0: 0xa19620b4c32db68cc1c2ef0c, + limb1: 0xffa1e4be3bed5faba2ccbbf4, + limb2: 0x16fc78a64c45f518, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x2b6af476f520b4bf804415bc, + limb1: 0xd949ee7f9e8874698b090fca, + limb2: 0x34db5e5ec2180cf, + }, + r0a1: u288 { + limb0: 0x3e06a324f038ac8abcfb28d7, + limb1: 0xc2e6375b7a83c0a0145f8942, + limb2: 0x2247e79161483763, + }, + r1a0: u288 { + limb0: 0x708773d8ae3a13918382fb9d, + limb1: 0xaf83f409556e32aa85ae92bf, + limb2: 0x9af0a924ae43ba, + }, + r1a1: u288 { + limb0: 0xa6fded212ff5b2ce79755af7, + limb1: 0x55a2adfb2699ef5de6581b21, + limb2: 0x2476e83cfe8daa5c, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x9ab1f3d5a481c50cff61b4ab, + limb1: 0x11f4705a4954e6a036be2ad2, + limb2: 0x308f243a8a83264, + }, + r0a1: u288 { + limb0: 0x5f19b29c09416b2fd501f695, + limb1: 0xd0a5c0a568ca5e38f82b2f7a, + limb2: 0x8abaf41ba2b92f5, + }, + r1a0: u288 { + limb0: 0x6cc5a6aa31c75bfb717c7828, + limb1: 0x96fe9ee8789208c41d57d3b8, + limb2: 0x1ff348bb7825845a, + }, + r1a1: u288 { + limb0: 0x23e6063e1cca25fa4a6e992e, + limb1: 0xe94e827315d1667557cbe7de, + limb2: 0x2cc27fe4c068e1df, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x5de7a643e301caa63b685021, + limb1: 0x933a277a93f708227c90f768, + limb2: 0x426809a902d5047, + }, + r0a1: u288 { + limb0: 0xbb25fb66cb4bf4c7ec50bdbd, + limb1: 0x52a75a0facd2b7bf0ea93bec, + limb2: 0x1f265ce4dbe1a42b, + }, + r1a0: u288 { + limb0: 0xc5717cea7518c3550b4d5f4, + limb1: 0xc95394cb07fdfc22e63d990a, + limb2: 0x2b4bcc47347e8eb5, + }, + r1a1: u288 { + limb0: 0xc5a6f1284ee2bdd4922c2508, + limb1: 0xcd55e1d8ff43e6dd59224505, + limb2: 0x2c376da2c4c11de5, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x1c4759bcf7c607fe3f839d4d, + limb1: 0xea91f311da73327e2ed40785, + limb2: 0x2017052c72360f42, + }, + r0a1: u288 { + limb0: 0x38cf8a4368c0709980199fc3, + limb1: 0xfc9047885996c19e84d7d4ea, + limb2: 0x1795549eb0b97783, + }, + r1a0: u288 { + limb0: 0xb70f7ecfbec0eaf46845e8cc, + limb1: 0x9ddf274c2a9f89ea3bc4d66f, + limb2: 0xcc6f106abfcf377, + }, + r1a1: u288 { + limb0: 0xf6ff11ce29186237468c2698, + limb1: 0x5c629ad27bb61e4826bb1313, + limb2: 0x2014c6623f1fb55e, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xc403ea5ad65aadd602c8c76f, + limb1: 0x7a8d2727cd7fa40d97615b39, + limb2: 0x14bd9b9bc6c2c1c1, + }, + r0a1: u288 { + limb0: 0xcd28af7919b01761c69bd246, + limb1: 0x8a1a211a81094740e2cc984e, + limb2: 0x2766e09571dc194c, + }, + r1a0: u288 { + limb0: 0xa24dbe5f1fb539a5d9d39db7, + limb1: 0xd7eef78019e82d7e1f77d2f5, + limb2: 0x6d7b6e70105c87d, + }, + r1a1: u288 { + limb0: 0x30836b87e6e8553c665ffbe0, + limb1: 0xb0474bb94febd802f9049ad0, + limb2: 0x2774e72d0844eea4, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xc648054e4b6134bbfd68487f, + limb1: 0xdf0506dad3f3d098c13a6386, + limb2: 0x26bebeb6f46c2e8c, + }, + r0a1: u288 { + limb0: 0x9d0cdb28a94204776c6e6ba6, + limb1: 0x303f02dfe619752b1607951d, + limb2: 0x1127d8b17ef2c064, + }, + r1a0: u288 { + limb0: 0xe34ca1188b8db4e4694a696c, + limb1: 0x243553602481d9b88ca1211, + limb2: 0x1f8ef034831d0132, + }, + r1a1: u288 { + limb0: 0xe3a5dfb1785690dad89ad10c, + limb1: 0xd690b583ace24ba033dd23e0, + limb2: 0x405d0709e110c03, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x3b5aa24fe300f5bef5aefca, + limb1: 0x5d5566dc41ca40c4af2bf978, + limb2: 0x39a42540cb68ab8, + }, + r0a1: u288 { + limb0: 0xe21ea63fac2d99bf899d8353, + limb1: 0xecdf87c89dafc1f9be69379b, + limb2: 0x1c75e3d0966038ad, + }, + r1a0: u288 { + limb0: 0x7c9f991de50f505a8dc707e7, + limb1: 0x259d423172d9927ffb0e98d1, + limb2: 0x15fb83693066d1ff, + }, + r1a1: u288 { + limb0: 0x72c144b5e7d364d572576db6, + limb1: 0x5d75c50c43614aea3e81a99b, + limb2: 0x1ef4651860019554, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x72cc2cef2785ce4ff4e9b7af, + limb1: 0x60ed5b9c207d7f31fb6234ab, + limb2: 0x1bb17a4bc7b643ed, + }, + r0a1: u288 { + limb0: 0x9424eb15b502cde7927c7530, + limb1: 0xa0e33edbbaa9de8e9c206059, + limb2: 0x2b9a3a63bbf4af99, + }, + r1a0: u288 { + limb0: 0x423811cb6386e606cf274a3c, + limb1: 0x8adcc0e471ecfe526f56dc39, + limb2: 0x9169a8660d14368, + }, + r1a1: u288 { + limb0: 0xf616c863890c3c8e33127931, + limb1: 0xcc9414078a6da6989dae6b91, + limb2: 0x594d6a7e6b34ab2, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x4617750de3208c0a42bf7c07, + limb1: 0x7e2d94e31538522d38df8b23, + limb2: 0x23954455da7aef56, + }, + r0a1: u288 { + limb0: 0x6fef0ba4bbf6577133bdc9ae, + limb1: 0xcab064e22aaf2ceec03f1b77, + limb2: 0x274369683ff67155, + }, + r1a0: u288 { + limb0: 0x5dce7b13d41ff1b90727094f, + limb1: 0x426ef23f29c4df03dc8edf8, + limb2: 0x313b4cdbf3d9c5e, + }, + r1a1: u288 { + limb0: 0x62c5ac5fd0d7b3ef591e828, + limb1: 0x650f8fc6b0fe55eb28d0fca8, + limb2: 0xf5bb0abe931a208, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xf2d619ae78049bf9141c35cf, + limb1: 0x717f8b10d469a1ee2d91f191, + limb2: 0x2c72c82fa8afe345, + }, + r0a1: u288 { + limb0: 0xb89321223b82a2dc793c0185, + limb1: 0x71506a0cf4adb8e51bb7b759, + limb2: 0x2c13b92a98651492, + }, + r1a0: u288 { + limb0: 0x4947ef2c89276f77f9d20942, + limb1: 0xb454d68685ab6b6976e71ec5, + limb2: 0x19a938d0e78a3593, + }, + r1a1: u288 { + limb0: 0xbe883eb119609b489c01c905, + limb1: 0xaa06779922047f52feac5ce6, + limb2: 0x76977a3015dc164, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0x43a96a588005043a46aadf2c, + limb1: 0xa37b89d8a1784582f0c52126, + limb2: 0x22e9ef3f5d4b2297, + }, + r0a1: u288 { + limb0: 0x8c6f6d8474cf6e5a58468a31, + limb1: 0xeb1ce6ac75930ef1c79b07e5, + limb2: 0xf49839a756c7230, + }, + r1a0: u288 { + limb0: 0x82b84693a656c8e8c1f962fd, + limb1: 0x2c1c8918ae80282208b6b23d, + limb2: 0x14d3504b5c8d428f, + }, + r1a1: u288 { + limb0: 0x60ef4f4324d5619b60a3bb84, + limb1: 0x6d3090caefeedbc33638c77a, + limb2: 0x159264c370c89fec, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xa3343aa671fa957f64383174, + limb1: 0x5d0fbca92791fb10ca8bfba7, + limb2: 0x114f2c6ae3a67df6, + }, + r0a1: u288 { + limb0: 0x50f6b86be16e52076b114eac, + limb1: 0x780e63533112887af8e1b20a, + limb2: 0x63e07909f8e5150, + }, + r1a0: u288 { + limb0: 0xf4d68bdb295f81fb688b56c9, + limb1: 0xabc9867b1aae2bca05251e19, + limb2: 0x1a4d8e8bbc5dc905, + }, + r1a1: u288 { + limb0: 0x1072bd332617ade1aa5f283e, + limb1: 0x50dc088ed02b4ee5c8114042, + limb2: 0x92f0fffce502d7c, + }, + }, + G2Line { + r0a0: u288 { + limb0: 0xf21ea2700d86757c9edc60fc, + limb1: 0x4ed3a4f31b13fbb9fdabfe54, + limb2: 0xefdc83e2cd29ae1, + }, + r0a1: u288 { + limb0: 0x36771d39b743a658ed812080, + limb1: 0x506453f18d56ef30476706cd, + limb2: 0x2658fa02d8abf7ce, + }, + r1a0: u288 { + limb0: 0x4aad4f76dd2af32ff8a6f388, + limb1: 0x6aebd448524150ae6bb57548, + limb2: 0x2702b8c1fb9a5bfb, + }, + r1a1: u288 { + limb0: 0xe1462da76f807e5e73062316, + limb1: 0x244b002de9ef9e9d65b40718, + limb2: 0x2672d0c637a3cc19, + }, + }, +]; + diff --git a/src/contracts/noir_ultra_keccak_honk_example/src/lib.cairo b/src/contracts/noir_ultra_keccak_honk_example/src/lib.cairo new file mode 100644 index 00000000..a36ee9ba --- /dev/null +++ b/src/contracts/noir_ultra_keccak_honk_example/src/lib.cairo @@ -0,0 +1,3 @@ +mod honk_verifier; +mod honk_verifier_constants; +mod honk_verifier_circuits; diff --git a/src/contracts/risc0_verifier_bn254/Scarb.toml b/src/contracts/risc0_verifier_bn254/Scarb.toml index 52a7df43..c4dd28f1 100644 --- a/src/contracts/risc0_verifier_bn254/Scarb.toml +++ b/src/contracts/risc0_verifier_bn254/Scarb.toml @@ -5,11 +5,14 @@ edition = "2024_07" [dependencies] garaga = { path = "../../" } -starknet = "2.8.2" +starknet = "2.9.1" [cairo] sierra-replace-ids = false +[dev-dependencies] +cairo_test = "2.9.1" + [[target.starknet-contract]] casm = true casm-add-pythonic-hints = true diff --git a/src/contracts/risc0_verifier_bn254/src/groth16_verifier.cairo b/src/contracts/risc0_verifier_bn254/src/groth16_verifier.cairo index a0d22a5c..03b7b89c 100644 --- a/src/contracts/risc0_verifier_bn254/src/groth16_verifier.cairo +++ b/src/contracts/risc0_verifier_bn254/src/groth16_verifier.cairo @@ -3,8 +3,8 @@ use super::groth16_verifier_constants::{N_FREE_PUBLIC_INPUTS, vk, ic, precompute #[starknet::interface] trait IRisc0Groth16VerifierBN254 { fn verify_groth16_proof_bn254( - ref self: TContractState, full_proof_with_hints: Span, - ) -> bool; + self: @TContractState, full_proof_with_hints: Span, + ) -> Option>; } #[starknet::contract] @@ -12,14 +12,14 @@ mod Risc0Groth16VerifierBN254 { use starknet::SyscallResultTrait; use garaga::definitions::{G1Point, G1G2Pair}; use garaga::groth16::{multi_pairing_check_bn254_3P_2F_with_extra_miller_loop_result}; - use garaga::ec_ops::{G1PointTrait, G2PointTrait, ec_safe_add}; + use garaga::ec_ops::{G1PointTrait, ec_safe_add}; + use garaga::ec_ops_g2::{G2PointTrait}; use garaga::utils::risc0::{compute_receipt_claim, journal_sha256}; use garaga::utils::calldata::deserialize_full_proof_with_hints_risc0; use super::{N_FREE_PUBLIC_INPUTS, vk, ic, precomputed_lines, T}; const ECIP_OPS_CLASS_HASH: felt252 = - 0x2672f1f079ccbafe1be4a20a76421b509fcfb406cbf6818563ed812edaeb3a3; - use starknet::ContractAddress; + 0x684d2756a4440c190a5fe54e367c0abe33aefa75084dec2fffc791b620c80e3; #[storage] struct Storage {} @@ -27,10 +27,14 @@ mod Risc0Groth16VerifierBN254 { #[abi(embed_v0)] impl IRisc0Groth16VerifierBN254 of super::IRisc0Groth16VerifierBN254 { fn verify_groth16_proof_bn254( - ref self: ContractState, full_proof_with_hints: Span, - ) -> bool { + self: @ContractState, full_proof_with_hints: Span, + ) -> Option> { // DO NOT EDIT THIS FUNCTION UNLESS YOU KNOW WHAT YOU ARE DOING. - // ONLY EDIT THE process_public_inputs FUNCTION BELOW. + // This function returns an Option for the public inputs if the proof is valid. + // If the proof is invalid, the execution will either fail or return None. + // Read the documentation to learn how to generate the full_proof_with_hints array given + // a proof and a verifying key. + let fph = deserialize_full_proof_with_hints_risc0(full_proof_with_hints); let groth16_proof = fph.groth16_proof; @@ -65,13 +69,13 @@ mod Risc0Groth16VerifierBN254 { let mut _msm_result_serialized = core::starknet::syscalls::library_call_syscall( ECIP_OPS_CLASS_HASH.try_into().unwrap(), selector!("msm_g1_u128"), - msm_calldata.span() + msm_calldata.span(), ) .unwrap_syscall(); // Finalize vk_x computation by adding the precomputed T point. let vk_x = ec_safe_add( - T, Serde::::deserialize(ref _msm_result_serialized).unwrap(), 0 + T, Serde::::deserialize(ref _msm_result_serialized).unwrap(), 0, ); // Perform the pairing check. @@ -82,23 +86,14 @@ mod Risc0Groth16VerifierBN254 { vk.alpha_beta_miller_loop_result, precomputed_lines.span(), mpcheck_hint, - small_Q + small_Q, ); if check == true { - self.process_public_inputs(starknet::get_caller_address(), journal); - return true; + return Option::Some(journal); } else { - return false; + return Option::None; } } } - #[generate_trait] - impl InternalFunctions of InternalFunctionsTrait { - fn process_public_inputs( - ref self: ContractState, user: ContractAddress, public_inputs: Span, - ) { // Process the public inputs with respect to the caller address (user). - // Update the storage, emit events, call other contracts, etc. - } - } } diff --git a/src/contracts/risc0_verifier_bn254/src/groth16_verifier_constants.cairo b/src/contracts/risc0_verifier_bn254/src/groth16_verifier_constants.cairo index d7c25cef..9ef54531 100644 --- a/src/contracts/risc0_verifier_bn254/src/groth16_verifier_constants.cairo +++ b/src/contracts/risc0_verifier_bn254/src/groth16_verifier_constants.cairo @@ -2,4108 +2,4102 @@ use garaga::definitions::{G1Point, G2Point, E12D, G2Line, u384, u288}; use garaga::groth16::Groth16VerifyingKey; pub const N_FREE_PUBLIC_INPUTS: usize = 2; -// CONTROL ROOT USED : 0x8b6dcf11d463ac455361b41fb3ed053febb817491bdea00fdb340e45013b852e -// CONTROL_ROOT_0 : 0x3f05edb31fb4615345ac63d411cf6d8b -// CONTROL_ROOT_1 : 0x2e853b01450e34db0fa0de1b4917b8eb -// BN254 CONTROL ID USED : 0x5a022e1db38457fb510bc347b30eb8f8cf3eda95587653d0eac19e1f10d164e -pub const T: G1Point = - G1Point { - x: u384 { - limb0: 0xed34354ea97abcd6f3efcd6e, - limb1: 0x1e426ccc162967384079cce0, - limb2: 0x2ec91d8fc6a29a01, - limb3: 0x0 - }, - y: u384 { - limb0: 0xdc16a7262c33a333dc0f48f2, - limb1: 0xecee79cf3a8e34bc6346a8b1, - limb2: 0xcf7590e442c5dfb, - limb3: 0x0 - } - }; // IC[0] + IC[1] * CONTROL_ROOT_0 + IC[2] * CONTROL_ROOT_1 + IC[5] * BN254_CONTROL_ID +// CONTROL ROOT USED : 0x8cdad9242664be3112aba377c5425a4df735eb1c6966472b561d2855932c0469 +// CONTROL_ROOT_0 : 0x4d5a42c577a3ab1231be642624d9da8c +// CONTROL_ROOT_1 : 0x69042c9355281d562b4766691ceb35f7 +// BN254 CONTROL ID USED : 0x4446e66d300eb7fb45c9726bb53c793dda407a62e9601618bb43c5c14657ac0 +pub const T: G1Point = G1Point { + x: u384 { + limb0: 0xebb965721eb4af9f6949e2b, + limb1: 0xa75fa146dd3c81e9bf0d8d1d, + limb2: 0x2b861a1a797c17ab, + limb3: 0x0, + }, + y: u384 { + limb0: 0x2c91cd670109a3f468862e7f, + limb1: 0x1cc46565e82743edcd0ece27, + limb2: 0x17546941087b4a40, + limb3: 0x0, + }, +}; // IC[0] + IC[1] * CONTROL_ROOT_0 + IC[2] * CONTROL_ROOT_1 + IC[5] * BN254_CONTROL_ID -pub const vk: Groth16VerifyingKey = - Groth16VerifyingKey { - alpha_beta_miller_loop_result: E12D { - w0: u288 { - limb0: 0x38febe9f87f730fa3e5bd174, - limb1: 0xf763950637a776ef9e248435, - limb2: 0x29dc2d37c63acbda - }, - w1: u288 { - limb0: 0xa31610a97aa4e4539be919ff, - limb1: 0xfa4d4bfb72b6a3c002018e97, - limb2: 0x1968ab971e610fce - }, - w2: u288 { - limb0: 0xee6c1ce3a15313c6f9d57f7e, - limb1: 0xd37e28396640fcfe5f122aae, - limb2: 0x210d3763f7a27517 - }, - w3: u288 { - limb0: 0x7746ddac185562e756b1b92f, - limb1: 0x44f8b75638ef5a373f319cd8, - limb2: 0x51e9605db4edac6 - }, - w4: u288 { - limb0: 0xc29e0c2ac434301d671ffa56, - limb1: 0xa06f1db2d4ca4dd88f979102, - limb2: 0x1d0126fb7d721e02 - }, - w5: u288 { - limb0: 0xed2e022e10acbeb35084dc1, - limb1: 0xf9de514baee870f114669060, - limb2: 0x10889a0f300ce96c - }, - w6: u288 { - limb0: 0xeec23aadde92d2dd00e4568e, - limb1: 0x6d5b4b63667db8f10bd851ab, - limb2: 0x18f1dd15d2e64c69 - }, - w7: u288 { - limb0: 0x2131bad24ea07a033d0bf397, - limb1: 0xb6312a7f2622146be93b5950, - limb2: 0x227e61ca055f0ac3 - }, - w8: u288 { - limb0: 0xb896f30b06350f012274ebcd, - limb1: 0xd14298f13a76183170aafe08, - limb2: 0x302bfd90358d23a0 - }, - w9: u288 { - limb0: 0x679d91263798da428fa5ea62, - limb1: 0x806797d163f4df8b55ec774c, - limb2: 0x29b72d4ec063face - }, - w10: u288 { - limb0: 0x4dbef45fe0c5a14bef7c4a90, - limb1: 0xd4ae215c443d0f0768198bc6, - limb2: 0x2fcc02633e427272 - }, - w11: u288 { - limb0: 0x7308cad65773475443cfbd80, - limb1: 0x972f90a77f1a8aeece6571ff, - limb2: 0x2d3a570362a9fd7f - } - }, - gamma_g2: G2Point { - x0: u384 { - limb0: 0xf75edadd46debd5cd992f6ed, - limb1: 0x426a00665e5c4479674322d4, - limb2: 0x1800deef121f1e76, - limb3: 0x0 - }, - x1: u384 { - limb0: 0x35a9e71297e485b7aef312c2, - limb1: 0x7260bfb731fb5d25f1aa4933, - limb2: 0x198e9393920d483a, - limb3: 0x0 - }, - y0: u384 { - limb0: 0xc43d37b4ce6cc0166fa7daa, - limb1: 0x4aab71808dcb408fe3d1e769, - limb2: 0x12c85ea5db8c6deb, - limb3: 0x0 - }, - y1: u384 { - limb0: 0x70b38ef355acdadcd122975b, - limb1: 0xec9e99ad690c3395bc4b3133, - limb2: 0x90689d0585ff075, - limb3: 0x0 - } - }, - delta_g2: G2Point { - x0: u384 { - limb0: 0x69cfaa4e60401fea7f3e0333, - limb1: 0xd922dba0547057ccaae94b9d, - limb2: 0x1aa085ff28179a12, - limb3: 0x0 - }, - x1: u384 { - limb0: 0x2ccf0b4c91f42bb629f83a1c, - limb1: 0x9bee94f1f5ef907157bda481, - limb2: 0x3b03cd5effa95ac, - limb3: 0x0 - }, - y0: u384 { - limb0: 0x9e2fea1c7142df187d3fc6d3, - limb1: 0x37e867178318832d0b2d74d5, - limb2: 0x1e60f31fcbf757e8, - limb3: 0x0 - }, - y1: u384 { - limb0: 0xfb7228ca5c91d2940d030762, - limb1: 0xf6490846d518c9aea868366e, - limb2: 0x110c10134f200b19, - limb3: 0x0 - } - } - }; +pub const vk: Groth16VerifyingKey = Groth16VerifyingKey { + alpha_beta_miller_loop_result: E12D { + w0: u288 { + limb0: 0x38febe9f87f730fa3e5bd174, + limb1: 0xf763950637a776ef9e248435, + limb2: 0x29dc2d37c63acbda, + }, + w1: u288 { + limb0: 0xa31610a97aa4e4539be919ff, + limb1: 0xfa4d4bfb72b6a3c002018e97, + limb2: 0x1968ab971e610fce, + }, + w2: u288 { + limb0: 0xee6c1ce3a15313c6f9d57f7e, + limb1: 0xd37e28396640fcfe5f122aae, + limb2: 0x210d3763f7a27517, + }, + w3: u288 { + limb0: 0x7746ddac185562e756b1b92f, + limb1: 0x44f8b75638ef5a373f319cd8, + limb2: 0x51e9605db4edac6, + }, + w4: u288 { + limb0: 0xc29e0c2ac434301d671ffa56, + limb1: 0xa06f1db2d4ca4dd88f979102, + limb2: 0x1d0126fb7d721e02, + }, + w5: u288 { + limb0: 0xed2e022e10acbeb35084dc1, + limb1: 0xf9de514baee870f114669060, + limb2: 0x10889a0f300ce96c, + }, + w6: u288 { + limb0: 0xeec23aadde92d2dd00e4568e, + limb1: 0x6d5b4b63667db8f10bd851ab, + limb2: 0x18f1dd15d2e64c69, + }, + w7: u288 { + limb0: 0x2131bad24ea07a033d0bf397, + limb1: 0xb6312a7f2622146be93b5950, + limb2: 0x227e61ca055f0ac3, + }, + w8: u288 { + limb0: 0xb896f30b06350f012274ebcd, + limb1: 0xd14298f13a76183170aafe08, + limb2: 0x302bfd90358d23a0, + }, + w9: u288 { + limb0: 0x679d91263798da428fa5ea62, + limb1: 0x806797d163f4df8b55ec774c, + limb2: 0x29b72d4ec063face, + }, + w10: u288 { + limb0: 0x4dbef45fe0c5a14bef7c4a90, + limb1: 0xd4ae215c443d0f0768198bc6, + limb2: 0x2fcc02633e427272, + }, + w11: u288 { + limb0: 0x7308cad65773475443cfbd80, + limb1: 0x972f90a77f1a8aeece6571ff, + limb2: 0x2d3a570362a9fd7f, + }, + }, + gamma_g2: G2Point { + x0: u384 { + limb0: 0xf75edadd46debd5cd992f6ed, + limb1: 0x426a00665e5c4479674322d4, + limb2: 0x1800deef121f1e76, + limb3: 0x0, + }, + x1: u384 { + limb0: 0x35a9e71297e485b7aef312c2, + limb1: 0x7260bfb731fb5d25f1aa4933, + limb2: 0x198e9393920d483a, + limb3: 0x0, + }, + y0: u384 { + limb0: 0xc43d37b4ce6cc0166fa7daa, + limb1: 0x4aab71808dcb408fe3d1e769, + limb2: 0x12c85ea5db8c6deb, + limb3: 0x0, + }, + y1: u384 { + limb0: 0x70b38ef355acdadcd122975b, + limb1: 0xec9e99ad690c3395bc4b3133, + limb2: 0x90689d0585ff075, + limb3: 0x0, + }, + }, + delta_g2: G2Point { + x0: u384 { + limb0: 0x69cfaa4e60401fea7f3e0333, + limb1: 0xd922dba0547057ccaae94b9d, + limb2: 0x1aa085ff28179a12, + limb3: 0x0, + }, + x1: u384 { + limb0: 0x2ccf0b4c91f42bb629f83a1c, + limb1: 0x9bee94f1f5ef907157bda481, + limb2: 0x3b03cd5effa95ac, + limb3: 0x0, + }, + y0: u384 { + limb0: 0x9e2fea1c7142df187d3fc6d3, + limb1: 0x37e867178318832d0b2d74d5, + limb2: 0x1e60f31fcbf757e8, + limb3: 0x0, + }, + y1: u384 { + limb0: 0xfb7228ca5c91d2940d030762, + limb1: 0xf6490846d518c9aea868366e, + limb2: 0x110c10134f200b19, + limb3: 0x0, + }, + }, +}; -pub const ic: [ - G1Point - ; 6] = [ +pub const ic: [G1Point; 6] = [ G1Point { x: u384 { limb0: 0x4d553505739d0f5d65dc3be4, limb1: 0x32a9061a082c15dd1d61aa9c, limb2: 0x12ac9a25dcd5e1a8, - limb3: 0x0 + limb3: 0x0, }, y: u384 { limb0: 0xd30f3eee2b23c60ee980acd4, limb1: 0xd91731911c898569106ff5a2, limb2: 0x25aa744581ebe7a, - limb3: 0x0 - } + limb3: 0x0, + }, }, G1Point { x: u384 { limb0: 0x4ccc3c8769d883f688a1423f, limb1: 0xf292fae2036e057be5429411, limb2: 0x707b920bc978c02, - limb3: 0x0 + limb3: 0x0, }, y: u384 { limb0: 0xc203383782a4650787ff6642, limb1: 0xf7bc357bf63481acd2d55555, limb2: 0x2e32a094b7589554, - limb3: 0x0 - } + limb3: 0x0, + }, }, G1Point { x: u384 { limb0: 0x48e336f4fd974644850fc347, limb1: 0x3e249751853f961511011c71, limb2: 0xbca36e2cbe6394b, - limb3: 0x0 + limb3: 0x0, }, y: u384 { limb0: 0x6db8f7f409c153b1fcdf9b8b, limb1: 0x3729fa3d68714e2a8435d4fa, limb2: 0x2ede7c9acf48cf3a, - limb3: 0x0 - } + limb3: 0x0, + }, }, G1Point { x: u384 { limb0: 0xe2c6b6fb5a25f9112e04f2a7, limb1: 0x7c091cc2aaf201e488cbacc3, limb2: 0x1b8af999dbfbb392, - limb3: 0x0 + limb3: 0x0, }, y: u384 { limb0: 0x1a60157f3e9cf04f679cccd6, limb1: 0x5722949f192a81c850d586d8, limb2: 0x2b91a26aa92e1b6f, - limb3: 0x0 - } + limb3: 0x0, + }, }, G1Point { x: u384 { limb0: 0x1dcefeddd06eda5a076ccd0d, limb1: 0x8ac1750bdfd5a7615f002d4a, limb2: 0x2b5f494ed674235b, - limb3: 0x0 + limb3: 0x0, }, y: u384 { limb0: 0x8f14f912c5e71665b2ad5e82, limb1: 0xcbba817fcbb9a863b8a76ff8, limb2: 0x2fe520ad2020aab9, - limb3: 0x0 - } + limb3: 0x0, + }, }, G1Point { x: u384 { limb0: 0x2fce3c25d5940320b1c4d493, limb1: 0x3666843cde4e82e869ba525, limb2: 0xf1c3c0d5d9da0fa, - limb3: 0x0 + limb3: 0x0, }, y: u384 { limb0: 0x3608f68287aa01bd0b69e809, limb1: 0xfe8c0d07b307482d8bc8bb2f, limb2: 0x214bfcff74f425f6, - limb3: 0x0 - } + limb3: 0x0, + }, }, ]; -pub const precomputed_lines: [ - G2Line - ; 176] = [ +pub const precomputed_lines: [G2Line; 176] = [ G2Line { r0a0: u288 { limb0: 0x4d347301094edcbfa224d3d5, limb1: 0x98005e68cacde68a193b54e6, - limb2: 0x237db2935c4432bc + limb2: 0x237db2935c4432bc, }, r0a1: u288 { limb0: 0x6b4ba735fba44e801d415637, limb1: 0x707c3ec1809ae9bafafa05dd, - limb2: 0x124077e14a7d826a + limb2: 0x124077e14a7d826a, }, r1a0: u288 { limb0: 0x49a8dc1dd6e067932b6a7e0d, limb1: 0x7676d0000961488f8fbce033, - limb2: 0x3b7178c857630da + limb2: 0x3b7178c857630da, }, r1a1: u288 { limb0: 0x98c81278efe1e96b86397652, limb1: 0xe3520b9dfa601ead6f0bf9cd, - limb2: 0x2b17c2b12c26fdd0 - } + limb2: 0x2b17c2b12c26fdd0, + }, }, G2Line { r0a0: u288 { limb0: 0xc1a48e9e12ff1dbf61883912, limb1: 0xaee1724a5332ee74b8ed9451, - limb2: 0xfbb1e993e3695f0 + limb2: 0xfbb1e993e3695f0, }, r0a1: u288 { limb0: 0x7acaee831d920baf2a1bfde0, limb1: 0x4cf9ef8c77ec7a0195bee19d, - limb2: 0x25757a99d16aa21c + limb2: 0x25757a99d16aa21c, }, r1a0: u288 { limb0: 0xe5847602f3a9790bf049b947, limb1: 0x934e2813cdc5d033f879cf93, - limb2: 0x21249e515f664d4c + limb2: 0x21249e515f664d4c, }, r1a1: u288 { limb0: 0xf19496daaae3309c391d0383, limb1: 0x408eeae0c5d549305a377fd8, - limb2: 0x21282298fede4ac4 - } + limb2: 0x21282298fede4ac4, + }, }, G2Line { r0a0: u288 { limb0: 0x1b3d578c32d1af5736582972, limb1: 0x204fe74db6b371d37e4615ab, - limb2: 0xce69bdf84ed6d6d + limb2: 0xce69bdf84ed6d6d, }, r0a1: u288 { limb0: 0xfd262357407c3d96bb3ba710, limb1: 0x47d406f500e66ea29c8764b3, - limb2: 0x1e23d69196b41dbf + limb2: 0x1e23d69196b41dbf, }, r1a0: u288 { limb0: 0x1ec8ee6f65402483ad127f3a, limb1: 0x41d975b678200fce07c48a5e, - limb2: 0x2cad36e65bbb6f4f + limb2: 0x2cad36e65bbb6f4f, }, r1a1: u288 { limb0: 0xcfa9b8144c3ea2ab524386f5, limb1: 0xd4fe3a18872139b0287570c3, - limb2: 0x54c8bc1b50aa258 - } + limb2: 0x54c8bc1b50aa258, + }, }, G2Line { r0a0: u288 { limb0: 0xb5ee22ba52a7ed0c533b7173, limb1: 0xbfa13123614ecf9c4853249b, - limb2: 0x6567a7f6972b7bb + limb2: 0x6567a7f6972b7bb, }, r0a1: u288 { limb0: 0xcf422f26ac76a450359f819e, limb1: 0xc42d7517ae6f59453eaf32c7, - limb2: 0x899cb1e339f7582 + limb2: 0x899cb1e339f7582, }, r1a0: u288 { limb0: 0x9f287f4842d688d7afd9cd67, limb1: 0x30af75417670de33dfa95eda, - limb2: 0x1121d4ca1c2cab36 + limb2: 0x1121d4ca1c2cab36, }, r1a1: u288 { limb0: 0x7c4c55c27110f2c9a228f7d8, limb1: 0x8f14f6c3a2e2c9d74b347bfe, - limb2: 0x83ef274ba7913a5 - } + limb2: 0x83ef274ba7913a5, + }, }, G2Line { r0a0: u288 { limb0: 0xa6cd3bef29216e5776f4c435, limb1: 0x96ed36c2e4e69e8de93d63f, - limb2: 0x20a92fd9a2fb0a39 + limb2: 0x20a92fd9a2fb0a39, }, r0a1: u288 { limb0: 0xeda6dc0a1e8e8067ae60ff67, limb1: 0x6b56562a0994de5c01c288f3, - limb2: 0xaeed3d90fc6fe0d + limb2: 0xaeed3d90fc6fe0d, }, r1a0: u288 { limb0: 0x82ed548a4877130ae8334400, limb1: 0x25021da2b3bb88299f079afd, - limb2: 0xf3fb02181cb52dd + limb2: 0xf3fb02181cb52dd, }, r1a1: u288 { limb0: 0x76dd33b2913d5b7a9f5ff9c4, limb1: 0x77c15ad5bbac0f2d3d49eab8, - limb2: 0xf3c2bd9e2535565 - } + limb2: 0xf3c2bd9e2535565, + }, }, G2Line { r0a0: u288 { limb0: 0xf9c98b4467592a57fca1c44f, limb1: 0x22c8464befc62af74bd7e13e, - limb2: 0xf6fe51a099cedd + limb2: 0xf6fe51a099cedd, }, r0a1: u288 { limb0: 0x424a207247f0e4c27f38a1ae, limb1: 0xc0d1158c6df8f6ffa8d6a76e, - limb2: 0xe16f63bee6733e5 + limb2: 0xe16f63bee6733e5, }, r1a0: u288 { limb0: 0x747d2a41af96d81fb2585f8f, limb1: 0x1bedd2f049ce086610aca319, - limb2: 0x18e887f968ab29d1 + limb2: 0x18e887f968ab29d1, }, r1a1: u288 { limb0: 0x6f6eae477c15633e163e3366, limb1: 0x3d0cca9a15ddc9f899d906bf, - limb2: 0x1a5066113f22d767 - } + limb2: 0x1a5066113f22d767, + }, }, G2Line { r0a0: u288 { limb0: 0xfc23a674d089e9cfdefb1db8, limb1: 0x9ddfd61d289b65a9b4254476, - limb2: 0x1e2f561324ef4447 + limb2: 0x1e2f561324ef4447, }, r0a1: u288 { limb0: 0xf67a6a9e31f6975b220642ea, limb1: 0xccd852893796296e4d1ed330, - limb2: 0x94ff1987d19b62 + limb2: 0x94ff1987d19b62, }, r1a0: u288 { limb0: 0x360c2a5aca59996d24cc1947, limb1: 0x66c2d7d0d176a3bc53f386e8, - limb2: 0x2cfcc62a17fbeecb + limb2: 0x2cfcc62a17fbeecb, }, r1a1: u288 { limb0: 0x2ddc73389dd9a9e34168d8a9, limb1: 0xae9afc57944748b835cbda0f, - limb2: 0x12f0a1f8cf564067 - } + limb2: 0x12f0a1f8cf564067, + }, }, G2Line { r0a0: u288 { limb0: 0x963c90609635263045a730, limb1: 0x25987316828b8c528c8dc05b, - limb2: 0x1a52af70953e2d93 + limb2: 0x1a52af70953e2d93, }, r0a1: u288 { limb0: 0x5cb801def7d800e0a2dcdc65, limb1: 0x7f06086a5846b035d7144e65, - limb2: 0x264229f1b248db7a + limb2: 0x264229f1b248db7a, }, r1a0: u288 { limb0: 0x1c8fe795c6a55dfe7abf119e, limb1: 0x98b10fc53fdbfce11d7827a0, - limb2: 0x13551fa74e7af913 + limb2: 0x13551fa74e7af913, }, r1a1: u288 { limb0: 0xdde6f69885b07fe44d932a52, limb1: 0x9819b585503c5540fa115b13, - limb2: 0x1f4507e84f016add - } + limb2: 0x1f4507e84f016add, + }, }, G2Line { r0a0: u288 { limb0: 0x9c963c4bdade6ce3d460b077, limb1: 0x1738311feefc76f565e34e8a, - limb2: 0x1aae0d6c9e9888ad + limb2: 0x1aae0d6c9e9888ad, }, r0a1: u288 { limb0: 0x9272581fdf80b045c9c3f0a, limb1: 0x3946807b0756e87666798edb, - limb2: 0x2bf6eeda2d8be192 + limb2: 0x2bf6eeda2d8be192, }, r1a0: u288 { limb0: 0x3e957661b35995552fb475de, limb1: 0xd8076fa48f93f09d8128a2a8, - limb2: 0xb6f87c3f00a6fcf + limb2: 0xb6f87c3f00a6fcf, }, r1a1: u288 { limb0: 0xcf17d6cd2101301246a8f264, limb1: 0x514d04ad989b91e697aa5a0e, - limb2: 0x175f17bbd0ad1219 - } + limb2: 0x175f17bbd0ad1219, + }, }, G2Line { r0a0: u288 { limb0: 0x894bc18cc70ca1987e3b8f9f, limb1: 0xd4bfa535181f0f8659b063e3, - limb2: 0x19168d524164f463 + limb2: 0x19168d524164f463, }, r0a1: u288 { limb0: 0x850ee8d0e9b58b82719a6e92, limb1: 0x9fc4eb75cbb027c137d48341, - limb2: 0x2b2f8a383d944fa0 + limb2: 0x2b2f8a383d944fa0, }, r1a0: u288 { limb0: 0x5451c8974a709483c2b07fbd, limb1: 0xd7e09837b8a2a3b78e7fe525, - limb2: 0x347d96be5e7fa31 + limb2: 0x347d96be5e7fa31, }, r1a1: u288 { limb0: 0x823f2ba2743ee254e4c18a1e, limb1: 0x6a61af5db035c443ed0f8172, - limb2: 0x1e840eee275d1063 - } + limb2: 0x1e840eee275d1063, + }, }, G2Line { r0a0: u288 { limb0: 0x9cdb3f1da9cc795a6dd71925, limb1: 0xa6b72d99ea73e7ec479df7de, - limb2: 0x2a0d16e5af0f972a + limb2: 0x2a0d16e5af0f972a, }, r0a1: u288 { limb0: 0x185981f7439b3abe06b2f010, limb1: 0x4afb801363c27041866471a0, - limb2: 0x21a33b58bc0ebc30 + limb2: 0x21a33b58bc0ebc30, }, r1a0: u288 { limb0: 0xd9c7c736ca2b67b6189ccfb9, limb1: 0x8dd913714e0c8c9468564883, - limb2: 0x25e9300604680744 + limb2: 0x25e9300604680744, }, r1a1: u288 { limb0: 0xd2f83c58abf29fed21f8ac20, limb1: 0xf99df3b0aafc57db31256a85, - limb2: 0x2ecdc1f4735da2e6 - } + limb2: 0x2ecdc1f4735da2e6, + }, }, G2Line { r0a0: u288 { limb0: 0x3890eaf1d657d63d18eac82d, limb1: 0x962ede9002cf9e7fead8ac71, - limb2: 0xa41c746d7a471e2 + limb2: 0xa41c746d7a471e2, }, r0a1: u288 { limb0: 0xdd8017fb853f2df76c7dad20, limb1: 0x8ee50f79d3a8abfd3ccd4c1a, - limb2: 0x7f77df5036f64d2 + limb2: 0x7f77df5036f64d2, }, r1a0: u288 { limb0: 0x251f40aedb747d8748c907aa, limb1: 0xaff11c216293b73b2d2a53aa, - limb2: 0x2f94413282c71d76 + limb2: 0x2f94413282c71d76, }, r1a1: u288 { limb0: 0x255cffb680c8482747fe7934, limb1: 0xc9b47382882ce9a2171f615c, - limb2: 0x1e12dbcbfacba1a9 - } + limb2: 0x1e12dbcbfacba1a9, + }, }, G2Line { r0a0: u288 { limb0: 0x18d630598e58bb5d0102b30e, limb1: 0x9767e27b02a8da37411a2787, - limb2: 0x100a541662b9cd7c + limb2: 0x100a541662b9cd7c, }, r0a1: u288 { limb0: 0x4ca7313df2e168e7e5ea70, limb1: 0xd49cce6abd50b574f31c2d72, - limb2: 0x78a2afbf72317e7 + limb2: 0x78a2afbf72317e7, }, r1a0: u288 { limb0: 0x6d99388b0a1a67d6b48d87e0, limb1: 0x1d8711d321a193be3333bc68, - limb2: 0x27e76de53a010ce1 + limb2: 0x27e76de53a010ce1, }, r1a1: u288 { limb0: 0x77341bf4e1605e982fa50abd, limb1: 0xc5cf10db170b4feaaf5f8f1b, - limb2: 0x762adef02274807 - } + limb2: 0x762adef02274807, + }, }, G2Line { r0a0: u288 { limb0: 0x7645fffb343e10e1e8748cb8, limb1: 0xb7ee813d501408d841ec8e65, - limb2: 0xe90c74a2dd6516e + limb2: 0xe90c74a2dd6516e, }, r0a1: u288 { limb0: 0x1491337b6e2af58a979eff05, limb1: 0x41a56da5e78ec6d2aedcfb3c, - limb2: 0x234444f637b1fd1a + limb2: 0x234444f637b1fd1a, }, r1a0: u288 { limb0: 0x7f6df98a0ef48fea6a90a86d, limb1: 0x67fe1fde059c8fcc5f4d2e06, - limb2: 0x2ba05dbf310dbde7 + limb2: 0x2ba05dbf310dbde7, }, r1a1: u288 { limb0: 0xa0c862d762e402c3454d02b2, limb1: 0x1b96d5c6695fe143c37a671e, - limb2: 0x24af700c84c87b54 - } + limb2: 0x24af700c84c87b54, + }, }, G2Line { r0a0: u288 { limb0: 0xa137b991ba9048aee9fa0bc7, limb1: 0xf5433785c186cd1100ab6b80, - limb2: 0xab519fd7cf8e7f9 + limb2: 0xab519fd7cf8e7f9, }, r0a1: u288 { limb0: 0x90832f45d3398c60aa1a74e2, limb1: 0x17f7ac209532723f22a344b, - limb2: 0x23db979f8481c5f + limb2: 0x23db979f8481c5f, }, r1a0: u288 { limb0: 0x723b0e23c2808a5d1ea6b11d, limb1: 0x3030030d26411f84235c3af5, - limb2: 0x122e78da5509eddb + limb2: 0x122e78da5509eddb, }, r1a1: u288 { limb0: 0xf1718c1e21a9bc3ec822f319, limb1: 0xf5ee6dfa3bd3272b2f09f0c7, - limb2: 0x5a29c1e27616b34 - } + limb2: 0x5a29c1e27616b34, + }, }, G2Line { r0a0: u288 { limb0: 0x1af83b0d07aaec86d9134a28, limb1: 0x77bdb3e9aa87662797059a9c, - limb2: 0x273c84364e3713d2 + limb2: 0x273c84364e3713d2, }, r0a1: u288 { limb0: 0xcaf5ba9785faf45cfc296a4a, limb1: 0x3163afd1009dbadd9c5a70bd, - limb2: 0x1aaea45eb51c82ce + limb2: 0x1aaea45eb51c82ce, }, r1a0: u288 { limb0: 0x5aba52ae705ce1af25e673aa, limb1: 0x2dc8896c9ff279f6655024ef, - limb2: 0x300f0500b7b0b0d3 + limb2: 0x300f0500b7b0b0d3, }, r1a1: u288 { limb0: 0x67f1e1afa662ba8900d60c26, limb1: 0xf93114d70a2a3321729a7d2c, - limb2: 0x1cc57b64b47a626d - } + limb2: 0x1cc57b64b47a626d, + }, }, G2Line { r0a0: u288 { limb0: 0xbc1ede480873fceb8739511e, limb1: 0xd5a60533bd0ce7869efbc15, - limb2: 0x182c17d793eba74d + limb2: 0x182c17d793eba74d, }, r0a1: u288 { limb0: 0x83bf38d91876ad8999516bc2, limb1: 0x7756322ea3dc079289d51f2d, - limb2: 0x1d0f6156a89a4244 + limb2: 0x1d0f6156a89a4244, }, r1a0: u288 { limb0: 0x6aba652f197be8f99707b88c, limb1: 0xbf94286c245794ea0f562f32, - limb2: 0x25a358967a2ca81d + limb2: 0x25a358967a2ca81d, }, r1a1: u288 { limb0: 0xc028cbff48c01433e8b23568, limb1: 0xd2e791f5772ed43b056beba1, - limb2: 0x83eb38dff4960e - } + limb2: 0x83eb38dff4960e, + }, }, G2Line { r0a0: u288 { limb0: 0x5fa7b4cb5791e57c2cf9780e, limb1: 0xf5062eb2c532788091de2118, - limb2: 0xc38262afe4f4eac + limb2: 0xc38262afe4f4eac, }, r0a1: u288 { limb0: 0x6560785dd69d5a9a4917aa3b, limb1: 0x6240334397d0134760854bb1, - limb2: 0x2d7c0dd3e38d8926 + limb2: 0x2d7c0dd3e38d8926, }, r1a0: u288 { limb0: 0xf3c91f209577810e63cbdf2f, limb1: 0xa8acef680c1be04d12d702c8, - limb2: 0xa312088d3b32c07 + limb2: 0xa312088d3b32c07, }, r1a1: u288 { limb0: 0x96aa4853754a05becdc1bf51, limb1: 0xa6cc53c2c1b1d383517e44b4, - limb2: 0x1f03c17658e08a24 - } + limb2: 0x1f03c17658e08a24, + }, }, G2Line { r0a0: u288 { limb0: 0xc2a2b787d8e718e81970db80, limb1: 0x5372abeaf56844dee60d6198, - limb2: 0x131210153a2217d6 + limb2: 0x131210153a2217d6, }, r0a1: u288 { limb0: 0x70421980313e09a8a0e5a82d, limb1: 0xf75ca1f68f4b8deafb1d3b48, - limb2: 0x102113c9b6feb035 + limb2: 0x102113c9b6feb035, }, r1a0: u288 { limb0: 0x4654c11d73bda84873de9b86, limb1: 0xa67601bca2e595339833191a, - limb2: 0x1c2b76e439adc8cc + limb2: 0x1c2b76e439adc8cc, }, r1a1: u288 { limb0: 0x9c53a48cc66c1f4d644105f2, limb1: 0xa17a18867557d96fb7c2f849, - limb2: 0x1deb99799bd8b63a - } + limb2: 0x1deb99799bd8b63a, + }, }, G2Line { r0a0: u288 { limb0: 0xc32026c56341297fa080790c, limb1: 0xe23ad2ff283399133533b31f, - limb2: 0xa6860f5c968f7ad + limb2: 0xa6860f5c968f7ad, }, r0a1: u288 { limb0: 0x2966cf259dc612c6a4d8957d, limb1: 0xfba87ea86054f3db5774a08f, - limb2: 0xc73408b6a646780 + limb2: 0xc73408b6a646780, }, r1a0: u288 { limb0: 0x6272ce5976d8eeba08f66b48, limb1: 0x7dfbd78fa06509604c0cec8d, - limb2: 0x181ec0eaa6660e45 + limb2: 0x181ec0eaa6660e45, }, r1a1: u288 { limb0: 0x48af37c1a2343555fbf8a357, limb1: 0xa7b5e1e20e64d6a9a9ce8e61, - limb2: 0x1147dcea39a47abd - } + limb2: 0x1147dcea39a47abd, + }, }, G2Line { r0a0: u288 { limb0: 0x489a41fc4c066a737acf2b80, limb1: 0x51199b4ef477e0976b9b663d, - limb2: 0x104f756144a01a99 + limb2: 0x104f756144a01a99, }, r0a1: u288 { limb0: 0xce50cee9668a849dfec24567, limb1: 0x932eabf096a077bd22814967, - limb2: 0x16210f0edb8ae837 + limb2: 0x16210f0edb8ae837, }, r1a0: u288 { limb0: 0xb1ea43eab76757bea3ee7e67, limb1: 0x859be02d0e28899de38a8bbb, - limb2: 0x69978ccc2f4f110 + limb2: 0x69978ccc2f4f110, }, r1a1: u288 { limb0: 0xdfe4fd2c66e7f65bd840d459, limb1: 0xf950d096dbee0e978b146cce, - limb2: 0x2960c5fa3fb2a10 - } + limb2: 0x2960c5fa3fb2a10, + }, }, G2Line { r0a0: u288 { limb0: 0xb58f6d75132f93ba48631e07, limb1: 0xe8ae893990c83c6e393d1303, - limb2: 0x88809ba75ebe6c8 + limb2: 0x88809ba75ebe6c8, }, r0a1: u288 { limb0: 0xc3a2f92df3e3ae5fe1783de6, limb1: 0x2778c4ec8a8c11311a178bd, - limb2: 0x24f1ee4b51cbf5fd + limb2: 0x24f1ee4b51cbf5fd, }, r1a0: u288 { limb0: 0xfbef4674342d73fb2363ab57, limb1: 0x840f6f7c0db4f93e82f3523, - limb2: 0x1101e37593b6ed96 + limb2: 0x1101e37593b6ed96, }, r1a1: u288 { limb0: 0xd263a20f18fd8a530227c627, limb1: 0x7bf28bc9f5fc2d0b2585cac4, - limb2: 0x2e273774ae1e6e0c - } + limb2: 0x2e273774ae1e6e0c, + }, }, G2Line { r0a0: u288 { limb0: 0x4033c51e6e469818521cd2ae, limb1: 0xb71a4629a4696b2759f8e19e, - limb2: 0x4f5744e29c1eb30 + limb2: 0x4f5744e29c1eb30, }, r0a1: u288 { limb0: 0xa4f47bbc60cb0649dca1c772, limb1: 0x835f427106f4a6b897c6cf23, - limb2: 0x17ca6ea4855756bb + limb2: 0x17ca6ea4855756bb, }, r1a0: u288 { limb0: 0x7f844a35c7eeadf511e67e57, limb1: 0x8bb54fb0b3688cac8860f10, - limb2: 0x1c7258499a6bbebf + limb2: 0x1c7258499a6bbebf, }, r1a1: u288 { limb0: 0x10d269c1779f96946e518246, limb1: 0xce6fcef6676d0dacd395dc1a, - limb2: 0x2cf4c6ae1b55d87d - } + limb2: 0x2cf4c6ae1b55d87d, + }, }, G2Line { r0a0: u288 { limb0: 0x59726c9960acdae933f6c2e, limb1: 0xcb27824cfdc7f2a2953a7b46, - limb2: 0xab09e310409c7dc + limb2: 0xab09e310409c7dc, }, r0a1: u288 { limb0: 0xda7641d0a2b62e75f06e7a4b, limb1: 0xbdae979156600097567aeb5b, - limb2: 0x2811e7f67e12b969 + limb2: 0x2811e7f67e12b969, }, r1a0: u288 { limb0: 0x57d4f4acd0d896441365692d, limb1: 0x26d8fccbf118b66792fd5f15, - limb2: 0x552fe6247735d8b + limb2: 0x552fe6247735d8b, }, r1a1: u288 { limb0: 0x94b8e030cbd114193e677c50, limb1: 0x372b06a0c3c60fb7d11b850e, - limb2: 0x16f002c5d6018b19 - } + limb2: 0x16f002c5d6018b19, + }, }, G2Line { r0a0: u288 { limb0: 0xab74a6bae36b17b1d2cc1081, limb1: 0x904cf03d9d30b1fe9dc71374, - limb2: 0x14ffdd55685b7d82 + limb2: 0x14ffdd55685b7d82, }, r0a1: u288 { limb0: 0x277f7180b7cf33feded1583c, limb1: 0xc029c3968a75b612303c4298, - limb2: 0x20ef4ba03605cdc6 + limb2: 0x20ef4ba03605cdc6, }, r1a0: u288 { limb0: 0xd5a7a27c1baba3791ab18957, limb1: 0x973730213d5d70d3e62d6db, - limb2: 0x24ca121c566eb857 + limb2: 0x24ca121c566eb857, }, r1a1: u288 { limb0: 0x9f4c2dea0492f548ae7d9e93, limb1: 0xe584b6b251a5227c70c5188, - limb2: 0x22bcecac2bd5e51b - } + limb2: 0x22bcecac2bd5e51b, + }, }, G2Line { r0a0: u288 { limb0: 0x340c82974f7221a53fc2f3ac, limb1: 0x7146f18cd591d423874996e7, - limb2: 0xa6d154791056f46 + limb2: 0xa6d154791056f46, }, r0a1: u288 { limb0: 0x70894ea6418890d53b5ee12a, limb1: 0x882290cb53b795b0e7c8c208, - limb2: 0x1b5777dc18b2899b + limb2: 0x1b5777dc18b2899b, }, r1a0: u288 { limb0: 0x99a0e528d582006a626206b6, limb1: 0xb1cf825d80e199c5c9c795b5, - limb2: 0x2a97495b032f0542 + limb2: 0x2a97495b032f0542, }, r1a1: u288 { limb0: 0xc7cf5b455d6f3ba73debeba5, limb1: 0xbb0a01235687223b7b71d0e5, - limb2: 0x250024ac44c35e3f - } + limb2: 0x250024ac44c35e3f, + }, }, G2Line { r0a0: u288 { limb0: 0x265d8d504786c9a9d2c2dd1d, limb1: 0xcddddab1a3af6fa901f267d3, - limb2: 0x1d5b892bac643be1 + limb2: 0x1d5b892bac643be1, }, r0a1: u288 { limb0: 0xd200f75804e773fd94a69bff, limb1: 0x5dcaa5c6bfcc08323700dd54, - limb2: 0x3b045d584b9e34e + limb2: 0x3b045d584b9e34e, }, r1a0: u288 { limb0: 0x364fc9381fdcfc87f48025fd, limb1: 0x65d53f242d37bf7d6a422db4, - limb2: 0x5fc799e0624fbc5 + limb2: 0x5fc799e0624fbc5, }, r1a1: u288 { limb0: 0x40494a8cfe5af05b211a65c8, limb1: 0x436bd2d7c12a4599cd65d28c, - limb2: 0x14329c50f1378c82 - } + limb2: 0x14329c50f1378c82, + }, }, G2Line { r0a0: u288 { limb0: 0xa97c95148b4c5d08de3552aa, limb1: 0x74fd19a4764ed2db2b947c9b, - limb2: 0x1f6645462132403f + limb2: 0x1f6645462132403f, }, r0a1: u288 { limb0: 0xcccb21d1679b6f037f5c6862, limb1: 0x3796ff849627eae6d1373566, - limb2: 0xf569739c4b0bf20 + limb2: 0xf569739c4b0bf20, }, r1a0: u288 { limb0: 0x3a69197d08132714a2d8cde9, limb1: 0xae3e914eb52fc9f866335adb, - limb2: 0x22d97cabaecd8977 + limb2: 0x22d97cabaecd8977, }, r1a1: u288 { limb0: 0x59a5a98b2a4b546d9fdf220d, limb1: 0x8158806a0c4d6fc1bfc00dac, - limb2: 0x1e8455c351c421dc - } + limb2: 0x1e8455c351c421dc, + }, }, G2Line { r0a0: u288 { limb0: 0xccf841cf5c1cf8f4a0485e28, limb1: 0xb5077662d0ce9d755af1446b, - limb2: 0x2b08658e9d5ba5cb + limb2: 0x2b08658e9d5ba5cb, }, r0a1: u288 { limb0: 0x6ce62184a15685babd77f27f, limb1: 0x5ff9bb7d74505b0542578299, - limb2: 0x7244563488bab2 + limb2: 0x7244563488bab2, }, r1a0: u288 { limb0: 0xec778048d344ac71275d961d, limb1: 0x1273984019753000ad890d33, - limb2: 0x27c2855e60d361bd + limb2: 0x27c2855e60d361bd, }, r1a1: u288 { limb0: 0xa7a0071e22af2f3a79a12da, limb1: 0xc84a6fd41c20759ff6ff169a, - limb2: 0x23e7ef2a308e49d1 - } + limb2: 0x23e7ef2a308e49d1, + }, }, G2Line { r0a0: u288 { limb0: 0xd85b572f6e94368559bc9922, limb1: 0x806d660df4c09f298ca99a8c, - limb2: 0xb5295ba1e28bea6 + limb2: 0xb5295ba1e28bea6, }, r0a1: u288 { limb0: 0x3309d566a80c2e9fe64a9417, limb1: 0x5cb56c0e22896cf7b425f4f3, - limb2: 0x2194637a888395df + limb2: 0x2194637a888395df, }, r1a0: u288 { limb0: 0x71882225419d48d5cdfd106f, limb1: 0x83e49ccde853b0d80d85954f, - limb2: 0x95abeffbab1f6f1 + limb2: 0x95abeffbab1f6f1, }, r1a1: u288 { limb0: 0xa56f499db7c21d64a6f4cde4, limb1: 0xfa807931f439377fded2c667, - limb2: 0x722a1ecfd5f676a - } + limb2: 0x722a1ecfd5f676a, + }, }, G2Line { r0a0: u288 { limb0: 0x7105024c431a33683d9d0b9d, limb1: 0x12e23637b641ab0e5b322ad8, - limb2: 0x2918e9e08c764c28 + limb2: 0x2918e9e08c764c28, }, r0a1: u288 { limb0: 0x26384979d1f5417e451aeabf, limb1: 0xacfb499e362291d0b053bbf6, - limb2: 0x2a6ad1a1f7b04ef6 + limb2: 0x2a6ad1a1f7b04ef6, }, r1a0: u288 { limb0: 0xba4db515be70c384080fc9f9, limb1: 0x5a983a6afa9cb830fa5b66e6, - limb2: 0x8cc1fa494726a0c + limb2: 0x8cc1fa494726a0c, }, r1a1: u288 { limb0: 0x59c9af9399ed004284eb6105, limb1: 0xef37f66b058b4c971d9c96b0, - limb2: 0x2c1839afde65bafa - } + limb2: 0x2c1839afde65bafa, + }, }, G2Line { r0a0: u288 { limb0: 0x3b40bc013ebda1f6759eb1c5, limb1: 0x41b1c4994f7006c3bfc44225, - limb2: 0x1104e881eeac0f26 + limb2: 0x1104e881eeac0f26, }, r0a1: u288 { limb0: 0x1a0a3837d2925b22b29de16, limb1: 0x7f161412b67cb737308ee1e4, - limb2: 0x2eca703d4f685eca + limb2: 0x2eca703d4f685eca, }, r1a0: u288 { limb0: 0x791ea927b5f79fedbd63a830, limb1: 0xa43daf5bad2feef86dc7c3e5, - limb2: 0x11f25ca14404e535 + limb2: 0x11f25ca14404e535, }, r1a1: u288 { limb0: 0xf1b3aada072d4891b5de1aae, limb1: 0x2f78e8d48428027439b02564, - limb2: 0x6a400f4c3b5b6fa - } + limb2: 0x6a400f4c3b5b6fa, + }, }, G2Line { r0a0: u288 { limb0: 0x6bf13a27b0f4eb6657abc4b, limb1: 0xf78d57f089bffdf07c676bb3, - limb2: 0x228e4aefbdd738df + limb2: 0x228e4aefbdd738df, }, r0a1: u288 { limb0: 0x4f41a40b04ec964619823053, limb1: 0xfa3fb44f4a80641a9bb3bc09, - limb2: 0x29bf29a3d071ec4b + limb2: 0x29bf29a3d071ec4b, }, r1a0: u288 { limb0: 0x83823dcdff02bdc8a0e6aa03, limb1: 0x79ac92f113de29251cd73a98, - limb2: 0x1ccdb791718d144 + limb2: 0x1ccdb791718d144, }, r1a1: u288 { limb0: 0xa074add9d066db9a2a6046b6, limb1: 0xef3a70034497456c7d001a5, - limb2: 0x27d09562d815b4a6 - } + limb2: 0x27d09562d815b4a6, + }, }, G2Line { r0a0: u288 { limb0: 0x3c8b4b05cbef623055ab9631, limb1: 0xa357807ba01b50955f01beb1, - limb2: 0xd8e8272150b392 + limb2: 0xd8e8272150b392, }, r0a1: u288 { limb0: 0xc69a03b91fd115f482bc7aa1, limb1: 0xa175d02bfd1daa28271cc421, - limb2: 0x2c5e890fe1b00b05 + limb2: 0x2c5e890fe1b00b05, }, r1a0: u288 { limb0: 0xe363626ab202f75cc610f018, limb1: 0x46e37dbd0719e9c1b4951c4a, - limb2: 0x1873157667707b3f + limb2: 0x1873157667707b3f, }, r1a1: u288 { limb0: 0xd42f65f398d2c703199689b3, limb1: 0x39ec231de4b4bd3adf1feeee, - limb2: 0x67fb3d358e060f0 - } + limb2: 0x67fb3d358e060f0, + }, }, G2Line { r0a0: u288 { limb0: 0x87a44d343cc761056f4f2eae, limb1: 0x18016f16818253360d2c8adf, - limb2: 0x1bcd5c6e597d735e + limb2: 0x1bcd5c6e597d735e, }, r0a1: u288 { limb0: 0x593d7444c376f6d69289660b, limb1: 0x1d6d97020b59cf2e4b38be4f, - limb2: 0x17133b62617f63a7 + limb2: 0x17133b62617f63a7, }, r1a0: u288 { limb0: 0x88cac99869bb335ec9553a70, limb1: 0x95bcfa7f7c0b708b4d737afc, - limb2: 0x1eec79b9db274c09 + limb2: 0x1eec79b9db274c09, }, r1a1: u288 { limb0: 0xe465a53e9fe085eb58a6be75, limb1: 0x868e45cc13e7fd9d34e11839, - limb2: 0x2b401ce0f05ee6bb - } + limb2: 0x2b401ce0f05ee6bb, + }, }, G2Line { r0a0: u288 { limb0: 0x83f48fbac5c1b94486c2d037, limb1: 0xf95d9333449543de78c69e75, - limb2: 0x7bca8163e842be7 + limb2: 0x7bca8163e842be7, }, r0a1: u288 { limb0: 0x60157b2ff6e4d737e2dac26b, limb1: 0x30ab91893fcf39d9dcf1b89, - limb2: 0x29a58a02490d7f53 + limb2: 0x29a58a02490d7f53, }, r1a0: u288 { limb0: 0x520f9cb580066bcf2ce872db, limb1: 0x24a6e42c185fd36abb66c4ba, - limb2: 0x309b07583317a13 + limb2: 0x309b07583317a13, }, r1a1: u288 { limb0: 0x5a4c61efaa3d09a652c72471, limb1: 0xfcb2676d6aa28ca318519d2, - limb2: 0x1405483699afa209 - } + limb2: 0x1405483699afa209, + }, }, G2Line { r0a0: u288 { limb0: 0xc208b17fbf164d6b7c4c87ef, limb1: 0xe5ef2141a5e0ed8d7880adc2, - limb2: 0x1fbb587de0172d44 + limb2: 0x1fbb587de0172d44, }, r0a1: u288 { limb0: 0x5ecc8bd2960195067936331e, limb1: 0x302d49c4538f5a4b41fffa, - limb2: 0x2dd8166b425b4bdb + limb2: 0x2dd8166b425b4bdb, }, r1a0: u288 { limb0: 0x6dda8e93ab2dad36a7a26d98, limb1: 0x1a832cbd0bdfb31ca9670821, - limb2: 0x5e16617c8f62852 + limb2: 0x5e16617c8f62852, }, r1a1: u288 { limb0: 0xf9cba326c8ccbf69a8c7f8fb, limb1: 0x6b295295947987bb33e9961b, - limb2: 0x186db8004776c0ea - } + limb2: 0x186db8004776c0ea, + }, }, G2Line { r0a0: u288 { limb0: 0x241ca305ac4ceab57c4bc375, limb1: 0xdada9084d8f73edb881a22fa, - limb2: 0xd143f30c17c29c7 + limb2: 0xd143f30c17c29c7, }, r0a1: u288 { limb0: 0x352a5664ad09ed22111ef209, limb1: 0xc2fe0792a993bfa1771d64ac, - limb2: 0x26f89bc07398c259 + limb2: 0x26f89bc07398c259, }, r1a0: u288 { limb0: 0x2c78925418a3651b7b9f3260, limb1: 0xfe8414788b2aa8f5ac23d954, - limb2: 0x72ae0678e079f6d + limb2: 0x72ae0678e079f6d, }, r1a1: u288 { limb0: 0x2ae6e01f9e31fe942d84d61e, limb1: 0x394dc28fbdae226870dad015, - limb2: 0x26a4bf5e924cec01 - } + limb2: 0x26a4bf5e924cec01, + }, }, G2Line { r0a0: u288 { limb0: 0xbfdfdae86101e29da3e869b8, limb1: 0xf969a9b961a28b872e56aac2, - limb2: 0x1afdc719440d90f0 + limb2: 0x1afdc719440d90f0, }, r0a1: u288 { limb0: 0xee43c995686f13baa9b07266, limb1: 0xbfa387a694c641cceee4443a, - limb2: 0x104d8c02eb7f60c8 + limb2: 0x104d8c02eb7f60c8, }, r1a0: u288 { limb0: 0x8d451602b3593e798aecd7fb, limb1: 0x69ffbefe7c5ac2cf68e8691e, - limb2: 0x2ea064a1bc373d28 + limb2: 0x2ea064a1bc373d28, }, r1a1: u288 { limb0: 0x6e7a663073bfe88a2b02326f, limb1: 0x5faadb36847ca0103793fa4a, - limb2: 0x26c09a8ec9303836 - } + limb2: 0x26c09a8ec9303836, + }, }, G2Line { r0a0: u288 { limb0: 0x824428c8f1355395a5d9ba68, limb1: 0x376f82056ab1a3d451926ebc, - limb2: 0x1651053bdebca358 + limb2: 0x1651053bdebca358, }, r0a1: u288 { limb0: 0xf5739b050710bb99609328bb, limb1: 0x101222612f31bc7d1c0bd8e5, - limb2: 0x13b46682b3ffd5da + limb2: 0x13b46682b3ffd5da, }, r1a0: u288 { limb0: 0xce3778bd830f3b8fcbc8fd80, limb1: 0x8b28ab5db321c956a216239f, - limb2: 0x12e9fa0b5b37656 + limb2: 0x12e9fa0b5b37656, }, r1a1: u288 { limb0: 0x11d47326796ba49f7372575c, limb1: 0x5439890841ee14932fdab241, - limb2: 0x20ae02265c066cc9 - } + limb2: 0x20ae02265c066cc9, + }, }, G2Line { r0a0: u288 { limb0: 0x3d038747ebac16adc1c50bdd, limb1: 0xe3706a783e99f73ac742aa1a, - limb2: 0x17eac23b00b545ff + limb2: 0x17eac23b00b545ff, }, r0a1: u288 { limb0: 0xdc25ff0bd02abcbe502c4e37, limb1: 0x39b92e6ebb65e5f2d8504f90, - limb2: 0x2415b5f61301dff6 + limb2: 0x2415b5f61301dff6, }, r1a0: u288 { limb0: 0x9cdcb2146d15f37900db82ac, limb1: 0x96c3940e2f5c5f8198fadee3, - limb2: 0x2f662ea79b473fc2 + limb2: 0x2f662ea79b473fc2, }, r1a1: u288 { limb0: 0xc0fb95686de65e504ed4c57a, limb1: 0xec396c7c4275d4e493b00713, - limb2: 0x106d2aab8d90d517 - } + limb2: 0x106d2aab8d90d517, + }, }, G2Line { r0a0: u288 { limb0: 0x54e4b692d0b04b114badd438, limb1: 0x89b0bcf5ed2033f3629f3c6d, - limb2: 0x4ac1c520f363442 + limb2: 0x4ac1c520f363442, }, r0a1: u288 { limb0: 0x6e33ec73c0d5ed30e3079388, limb1: 0x2cb4a77b53c17c54cb9dfd10, - limb2: 0x2968a3d8c2554718 + limb2: 0x2968a3d8c2554718, }, r1a0: u288 { limb0: 0xe97a72fab0a46c6d08aa91e0, limb1: 0xe6c0929ee3cd8208fefa545a, - limb2: 0x1bb29a0c8606c9f5 + limb2: 0x1bb29a0c8606c9f5, }, r1a1: u288 { limb0: 0x9a8644995c03499317a8e45c, limb1: 0x11f6d94c94096a8d5b5d7e16, - limb2: 0x3ca2bfbaea0bdba - } + limb2: 0x3ca2bfbaea0bdba, + }, }, G2Line { r0a0: u288 { limb0: 0x49bbb4d856921e3177c0b5bf, limb1: 0x76d84d273694e662bdd5d364, - limb2: 0xea5dc611bdd369d + limb2: 0xea5dc611bdd369d, }, r0a1: u288 { limb0: 0x9e9fc3adc530fa3c5c6fd7fe, limb1: 0x114bb0c0e8bd247da41b3883, - limb2: 0x6044124f85d2ce + limb2: 0x6044124f85d2ce, }, r1a0: u288 { limb0: 0xa6e604cdb4e40982a97c084, limb1: 0xef485caa56c7820be2f6b11d, - limb2: 0x280de6387dcbabe1 + limb2: 0x280de6387dcbabe1, }, r1a1: u288 { limb0: 0xcaceaf6df5ca9f8a18bf2e1e, limb1: 0xc5cce932cc6818b53136c142, - limb2: 0x12f1cd688682030c - } + limb2: 0x12f1cd688682030c, + }, }, G2Line { r0a0: u288 { limb0: 0x37497c23dcf629df58a5fa12, limb1: 0x4fcd5534ae47bded76245ac9, - limb2: 0x1715ab081e32ac95 + limb2: 0x1715ab081e32ac95, }, r0a1: u288 { limb0: 0x856275471989e2c288e3c83, limb1: 0xb42d81a575b89b127a7821a, - limb2: 0x5fa75a0e4ae3118 + limb2: 0x5fa75a0e4ae3118, }, r1a0: u288 { limb0: 0xeb22351e8cd345c23c0a3fef, limb1: 0x271feb16d4b47d2267ac9d57, - limb2: 0x258f9950b9a2dee5 + limb2: 0x258f9950b9a2dee5, }, r1a1: u288 { limb0: 0xb5f75468922dc025ba7916fa, limb1: 0x7e24515de90edf1bde4edd9, - limb2: 0x289145b3512d4d81 - } + limb2: 0x289145b3512d4d81, + }, }, G2Line { r0a0: u288 { limb0: 0x969615d01c0ea4dfb1e1a6b2, limb1: 0xd77dd0fbf1448a668095626c, - limb2: 0x17bb395ada2e0445 + limb2: 0x17bb395ada2e0445, }, r0a1: u288 { limb0: 0x8c49c2dd43d51285a7943c57, limb1: 0xf5f9285614403018a99984aa, - limb2: 0x2cb65c9a5ac3782d + limb2: 0x2cb65c9a5ac3782d, }, r1a0: u288 { limb0: 0x3791dc91878eee9614a543b7, limb1: 0x808b3206de074f61c1014e23, - limb2: 0x2f63f37a727e6056 + limb2: 0x2f63f37a727e6056, }, r1a1: u288 { limb0: 0x6f1ce5115bca50bfffd5af23, limb1: 0xc20d51c6b761c502ff9afc29, - limb2: 0xd8674e970c4dfe4 - } + limb2: 0xd8674e970c4dfe4, + }, }, G2Line { r0a0: u288 { limb0: 0x44091526974134aced04c6bb, limb1: 0x20cef822214008ec6c938cbc, - limb2: 0x1369e9effc4a35e + limb2: 0x1369e9effc4a35e, }, r0a1: u288 { limb0: 0x52b595de3bb429b75d8dfa0b, limb1: 0xc90240ebeed8793217853473, - limb2: 0x605405f1532ac21 + limb2: 0x605405f1532ac21, }, r1a0: u288 { limb0: 0x47af4457f3ac9976bf779dea, limb1: 0x832936741d545aaead5647cb, - limb2: 0x14cd80d3394a1b3 + limb2: 0x14cd80d3394a1b3, }, r1a1: u288 { limb0: 0xd7d82811675d7a5104cfef4, limb1: 0x838c6ad9a0bf10cfc4e6b80c, - limb2: 0x129d3f962801867d - } + limb2: 0x129d3f962801867d, + }, }, G2Line { r0a0: u288 { limb0: 0x95b7b32bcc3119c64a62a8de, limb1: 0xe07184496f17bbd59a4b7bbd, - limb2: 0x1708c536fd78b531 + limb2: 0x1708c536fd78b531, }, r0a1: u288 { limb0: 0xfa85b5778c77166c1523a75e, limb1: 0x89a00c53309a9e525bef171a, - limb2: 0x2d2287dd024e421 + limb2: 0x2d2287dd024e421, }, r1a0: u288 { limb0: 0x31fd0884eaf2208bf8831e72, limb1: 0x537e04ea344beb57ee645026, - limb2: 0x23c7f99715257261 + limb2: 0x23c7f99715257261, }, r1a1: u288 { limb0: 0x8c38b3aeea525f3c2d2fdc22, limb1: 0xf838a99d9ec8ed6dcec6a2a8, - limb2: 0x2973d5159ddc479a - } + limb2: 0x2973d5159ddc479a, + }, }, G2Line { r0a0: u288 { limb0: 0x3f058d8c63fd905d3ca29b42, limb1: 0x1f0a90982cc68e4ddcd83e57, - limb2: 0x240aeaae0783fbfa + limb2: 0x240aeaae0783fbfa, }, r0a1: u288 { limb0: 0xedfee81d80da310fdf0d0d8, limb1: 0xc2208e6de8806cf491bd74d4, - limb2: 0xb7318be62a476af + limb2: 0xb7318be62a476af, }, r1a0: u288 { limb0: 0x3c6920c8a24454c634f388fe, limb1: 0x23328a006312a722ae09548b, - limb2: 0x1d2f1c58b80432e2 + limb2: 0x1d2f1c58b80432e2, }, r1a1: u288 { limb0: 0xb72980574f7a877586de3a63, limb1: 0xcd773b87ef4a29c16784c5ae, - limb2: 0x1f812c7e22f339c5 - } + limb2: 0x1f812c7e22f339c5, + }, }, G2Line { r0a0: u288 { limb0: 0x5502b81d15f7c7544bfe0e5b, limb1: 0x313d44b9cbb6b1db3c2e19e1, - limb2: 0x3de8450efb34ca6 + limb2: 0x3de8450efb34ca6, }, r0a1: u288 { limb0: 0x4c5017047d6babdf471554da, limb1: 0xb48b8025f177b936503d1018, - limb2: 0x1663b50793893d61 + limb2: 0x1663b50793893d61, }, r1a0: u288 { limb0: 0x547308fdb041d15648a5204e, limb1: 0xd30b5b0cf7e71b06e163ca37, - limb2: 0xf12e11a9da90df6 + limb2: 0xf12e11a9da90df6, }, r1a1: u288 { limb0: 0xb6893b6d66dc4cc63ef77caa, limb1: 0xe00d12ef10c3485ae8afd77a, - limb2: 0x129ce385f3aee936 - } + limb2: 0x129ce385f3aee936, + }, }, G2Line { r0a0: u288 { limb0: 0x219a140154109ee7653b47d8, limb1: 0xd87fa178daffefe3dc339320, - limb2: 0x1b64d217daf233d4 + limb2: 0x1b64d217daf233d4, }, r0a1: u288 { limb0: 0xb3b2902c23a1e297afc723f1, limb1: 0xec8c0334a6a16fb184bdead, - limb2: 0x194ee26f950ec5f + limb2: 0x194ee26f950ec5f, }, r1a0: u288 { limb0: 0xea0b18b28d70a0af43f81ec5, limb1: 0x1ec1efd748ba4d8687c22bb3, - limb2: 0x1e98470402747e1 + limb2: 0x1e98470402747e1, }, r1a1: u288 { limb0: 0x32ebb96106cdebef00b5f079, limb1: 0x29e0caf709d34430343bf4fe, - limb2: 0x5d405f60a473bfc - } + limb2: 0x5d405f60a473bfc, + }, }, G2Line { r0a0: u288 { limb0: 0xfeebe92941f95b6ea1d095bb, limb1: 0x9c7962eb8bbeb95a9ca7cf50, - limb2: 0x290bdaf3b9a08dc3 + limb2: 0x290bdaf3b9a08dc3, }, r0a1: u288 { limb0: 0x686cfa11c9d4b93675495599, limb1: 0xb1d69e17b4b5ebf64f0d51e1, - limb2: 0x2c18bb4bdc2e9567 + limb2: 0x2c18bb4bdc2e9567, }, r1a0: u288 { limb0: 0x17419b0f6a04bfc98d71527, limb1: 0x80eba6ff02787e3de964a4d1, - limb2: 0x26087bb100e7ff9f + limb2: 0x26087bb100e7ff9f, }, r1a1: u288 { limb0: 0x17c4ee42c3f612c43a08f689, limb1: 0x7276bdda2df6d51a291dba69, - limb2: 0x40a7220ddb393e1 - } + limb2: 0x40a7220ddb393e1, + }, }, G2Line { r0a0: u288 { limb0: 0xfcbba4528085627c1a57561e, limb1: 0x1077be1789bfa914646ecc48, - limb2: 0x1daf99b543be0c2 + limb2: 0x1daf99b543be0c2, }, r0a1: u288 { limb0: 0x73889773fb3e9955a83f6371, limb1: 0x65e8a51749a2070ca7d04fe3, - limb2: 0x193e02f206b649b5 + limb2: 0x193e02f206b649b5, }, r1a0: u288 { limb0: 0x4bcdb53209d1e271c3981a53, limb1: 0xcd0c66c9c62656f385896b9a, - limb2: 0x4fae5ec45196d1f + limb2: 0x4fae5ec45196d1f, }, r1a1: u288 { limb0: 0xff4b9fb7c654595edbc25c37, limb1: 0x9fb627a4ff2fd8e4aeb9855f, - limb2: 0x14f93e3bc9bb22dd - } + limb2: 0x14f93e3bc9bb22dd, + }, }, G2Line { r0a0: u288 { limb0: 0x830d777c19040571a1d72fd0, limb1: 0x651b2c6b8c292020817a633f, - limb2: 0x268af1e285bc59ff + limb2: 0x268af1e285bc59ff, }, r0a1: u288 { limb0: 0xede78baa381c5bce077f443d, limb1: 0x540ff96bae21cd8b9ae5438b, - limb2: 0x12a1fa7e3b369242 + limb2: 0x12a1fa7e3b369242, }, r1a0: u288 { limb0: 0x797c0608e5a535d8736d4bc5, limb1: 0x375faf00f1147656b7c1075f, - limb2: 0xda60fab2dc5a639 + limb2: 0xda60fab2dc5a639, }, r1a1: u288 { limb0: 0x610d26085cfbebdb30ce476e, limb1: 0x5bc55890ff076827a09e8444, - limb2: 0x14272ee2d25f20b7 - } + limb2: 0x14272ee2d25f20b7, + }, }, G2Line { r0a0: u288 { limb0: 0x4df45d410833e4569501b62, limb1: 0x5699ff1c49fc63f8f017a20e, - limb2: 0x1c2b4976da64f44e + limb2: 0x1c2b4976da64f44e, }, r0a1: u288 { limb0: 0xa371e6c9dc1278d9b692f5c0, limb1: 0xe2818a89c204727bbb77e230, - limb2: 0x2524c5673fb891de + limb2: 0x2524c5673fb891de, }, r1a0: u288 { limb0: 0x8b35f28524701efaaa2f36e9, limb1: 0x7d0defb1afd7565b6ca0969, - limb2: 0x3138ffe86fc3f3c + limb2: 0x3138ffe86fc3f3c, }, r1a1: u288 { limb0: 0xbf20ec1ddaebd714888b9623, limb1: 0x16edc17da676619889e1f93f, - limb2: 0x2895535d6bfd83ad - } + limb2: 0x2895535d6bfd83ad, + }, }, G2Line { r0a0: u288 { limb0: 0xd6862e1a4ca3b2baf6f8d8aa, limb1: 0x96f9066dded3a3d899025af4, - limb2: 0x1a98af9f0d48fd3 + limb2: 0x1a98af9f0d48fd3, }, r0a1: u288 { limb0: 0x276b417cc61ea259c114314e, limb1: 0x464399e5e0037b159866b246, - limb2: 0x12cc97dcf32896b5 + limb2: 0x12cc97dcf32896b5, }, r1a0: u288 { limb0: 0xef72647f4c2d08fc038c4377, limb1: 0x34883cea19be9a490a93cf2b, - limb2: 0x10d01394daa61ed0 + limb2: 0x10d01394daa61ed0, }, r1a1: u288 { limb0: 0xdf345239ece3acaa62919643, limb1: 0x914780908ece64e763cca062, - limb2: 0xee2a80dbd2012a3 - } + limb2: 0xee2a80dbd2012a3, + }, }, G2Line { r0a0: u288 { limb0: 0x1d5a31f4d08a0ebf7e071e00, limb1: 0xcd1244dd95dd30005f531f81, - limb2: 0xb4cb469a2dcf4f1 + limb2: 0xb4cb469a2dcf4f1, }, r0a1: u288 { limb0: 0x7c5938adaf38b355092de1f1, limb1: 0x292ab08995b293abfcba14b, - limb2: 0x1fd126a2b9f37c67 + limb2: 0x1fd126a2b9f37c67, }, r1a0: u288 { limb0: 0x6e9d352b02a7cb771fcc33f9, limb1: 0x7754d8536eefda2025a07340, - limb2: 0x1840289291c35a72 + limb2: 0x1840289291c35a72, }, r1a1: u288 { limb0: 0xe85f465417b7bd758c547b2e, limb1: 0xf7f703c3bc55ff8a01fa9365, - limb2: 0xfa301227880a841 - } + limb2: 0xfa301227880a841, + }, }, G2Line { r0a0: u288 { limb0: 0x2f943bcffafbec474e14056, limb1: 0xe36cbbcaa047d892ce518c06, - limb2: 0x28e9edc7ec764cec + limb2: 0x28e9edc7ec764cec, }, r0a1: u288 { limb0: 0xa4e5768f524886ccd57ef67f, limb1: 0x846c3c4a1b3d610c6598a6ca, - limb2: 0x26c1dd1c6cef5230 + limb2: 0x26c1dd1c6cef5230, }, r1a0: u288 { limb0: 0x646a7a17c9c2d11cf18ce24c, limb1: 0x9c3bc28ac69dc0fa40709bc3, - limb2: 0x22355c8b8f9caf41 + limb2: 0x22355c8b8f9caf41, }, r1a1: u288 { limb0: 0x532978b7044846c302ea39dc, limb1: 0xb3b1a62ec6c95c12a8ee1c3c, - limb2: 0x1b9cf068f2f7f74 - } + limb2: 0x1b9cf068f2f7f74, + }, }, G2Line { r0a0: u288 { limb0: 0xae2e80376c9eb92d7fdf62f4, limb1: 0xc8987db182a167029720321d, - limb2: 0x32dd5c4a5ead22e + limb2: 0x32dd5c4a5ead22e, }, r0a1: u288 { limb0: 0xed934df95403f36e080370c1, limb1: 0x82991943f3810cb571dd5476, - limb2: 0x1c8835c07868aab0 + limb2: 0x1c8835c07868aab0, }, r1a0: u288 { limb0: 0xe69df9d36c3ef19b14ac3256, limb1: 0xeffc663918d000a46b1308f3, - limb2: 0x2d3d6a3aa18904ea + limb2: 0x2d3d6a3aa18904ea, }, r1a1: u288 { limb0: 0x49fd82b2c5900a89f4e3e03, limb1: 0x4b4cedd7d8bab16a1290e7a7, - limb2: 0x13c64649ca8e5620 - } + limb2: 0x13c64649ca8e5620, + }, }, G2Line { r0a0: u288 { limb0: 0xa4058149e82ea51362b79be4, limb1: 0x734eba2621918a820ae44684, - limb2: 0x110a314a02272b1 + limb2: 0x110a314a02272b1, }, r0a1: u288 { limb0: 0xe2b43963ef5055df3c249613, limb1: 0x409c246f762c0126a1b3b7b7, - limb2: 0x19aa27f34ab03585 + limb2: 0x19aa27f34ab03585, }, r1a0: u288 { limb0: 0x179aad5f620193f228031d62, limb1: 0x6ba32299b05f31b099a3ef0d, - limb2: 0x157724be2a0a651f + limb2: 0x157724be2a0a651f, }, r1a1: u288 { limb0: 0xa33b28d9a50300e4bbc99137, limb1: 0x262a51847049d9b4d8cea297, - limb2: 0x189acb4571d50692 - } + limb2: 0x189acb4571d50692, + }, }, G2Line { r0a0: u288 { limb0: 0x958cb28384b32ba53919aad6, limb1: 0x7cb6afd288225969b3ed04a7, - limb2: 0x1f6c88c19f868c64 + limb2: 0x1f6c88c19f868c64, }, r0a1: u288 { limb0: 0x1f9383d92c96e715fa8a0e4, limb1: 0x185e1f31310dcf1342282c7f, - limb2: 0x9d2bbb84bf8c8a + limb2: 0x9d2bbb84bf8c8a, }, r1a0: u288 { limb0: 0x2ebb25e92c5e5775f24e5f43, limb1: 0x5a0dd9406740da093e0e9df9, - limb2: 0x20542767fe53e03a + limb2: 0x20542767fe53e03a, }, r1a1: u288 { limb0: 0xfc3d9b88c92d661c9f2e49d4, limb1: 0xd5c675a3022548b290b637dc, - limb2: 0x6fc49e7ff4bc3 - } + limb2: 0x6fc49e7ff4bc3, + }, }, G2Line { r0a0: u288 { limb0: 0x29bd4381ae4afc677ee37ed6, limb1: 0x29ed43453f9a008d9176f004, - limb2: 0x24134eb915104f43 + limb2: 0x24134eb915104f43, }, r0a1: u288 { limb0: 0x81597f82bb67e90a3e72bdd2, limb1: 0xab3bbde5f7bbb4df6a6b5c19, - limb2: 0x19ac61eea40a367c + limb2: 0x19ac61eea40a367c, }, r1a0: u288 { limb0: 0xe30a79342fb3199651aee2fa, limb1: 0xf500f028a73ab7b7db0104a3, - limb2: 0x808b50e0ecb5e4d + limb2: 0x808b50e0ecb5e4d, }, r1a1: u288 { limb0: 0x55f2818453c31d942444d9d6, limb1: 0xf6dd80c71ab6e893f2cf48db, - limb2: 0x13c3ac4488abd138 - } + limb2: 0x13c3ac4488abd138, + }, }, G2Line { r0a0: u288 { limb0: 0x5c0c3c2206b28bed76db5fb9, limb1: 0xa81f45c675f24fab51c8325a, - limb2: 0xd27686198826ba2 + limb2: 0xd27686198826ba2, }, r0a1: u288 { limb0: 0x9ce02274becdc697b91bdc82, limb1: 0x193674102a7fa372f1e3864, - limb2: 0x1ad17052d923f3ab + limb2: 0x1ad17052d923f3ab, }, r1a0: u288 { limb0: 0x2ab1b4cab08b97770060cd95, limb1: 0x5b7cae55f9b2ef94b80bc0fc, - limb2: 0x4319d424bab41a3 + limb2: 0x4319d424bab41a3, }, r1a1: u288 { limb0: 0xd80167cf68050f7988b0d7b, limb1: 0x4177064bd3572a973e0afd8, - limb2: 0xa5c5ddbd56184d6 - } + limb2: 0xa5c5ddbd56184d6, + }, }, G2Line { r0a0: u288 { limb0: 0xd1464269bbeafa546f559b8f, limb1: 0xab7f7dcd1ac32b86979471cf, - limb2: 0x6a38256ee96f113 + limb2: 0x6a38256ee96f113, }, r0a1: u288 { limb0: 0xf14d50984e65f9bc41df4e7e, limb1: 0x350aff9be6f9652ad441a3ad, - limb2: 0x1b1e60534b0a6aba + limb2: 0x1b1e60534b0a6aba, }, r1a0: u288 { limb0: 0x9e98507da6cc50a56f023849, limb1: 0xcf8925e03f2bb5c1ba0962dd, - limb2: 0x2b18961810a62f87 + limb2: 0x2b18961810a62f87, }, r1a1: u288 { limb0: 0x3a4c61b937d4573e3f2da299, limb1: 0x6f4c6c13fd90f4edc322796f, - limb2: 0x13f4e99b6a2f025e - } + limb2: 0x13f4e99b6a2f025e, + }, }, G2Line { r0a0: u288 { limb0: 0xf86c13c653367f48043babc5, limb1: 0x52798720b6abfea4f78e8755, - limb2: 0x2a08b546b9a04e01 + limb2: 0x2a08b546b9a04e01, }, r0a1: u288 { limb0: 0x3a3897216778c8d89c902498, limb1: 0xe9e85640d8cfb88eac53d7a4, - limb2: 0x22ed91f0b0f7b0a7 + limb2: 0x22ed91f0b0f7b0a7, }, r1a0: u288 { limb0: 0xa1e20caf4a06b7069c5fcade, limb1: 0xce1ab9c14ede733440fe4d4f, - limb2: 0x29511f7e24afbc7a + limb2: 0x29511f7e24afbc7a, }, r1a1: u288 { limb0: 0x2cb71e6fb0c40ed481c482d2, limb1: 0xb4a3dfc3f1f8bf08f18b9963, - limb2: 0x20cc0deb8bc5808a - } + limb2: 0x20cc0deb8bc5808a, + }, }, G2Line { r0a0: u288 { limb0: 0xe0115a79120ae892a72f3dcb, limb1: 0xec67b5fc9ea414a4020135f, - limb2: 0x1ee364e12321904a + limb2: 0x1ee364e12321904a, }, r0a1: u288 { limb0: 0xa74d09666f9429c1f2041cd9, limb1: 0x57ffe0951f863dd0c1c2e97a, - limb2: 0x154877b2d1908995 + limb2: 0x154877b2d1908995, }, r1a0: u288 { limb0: 0xcbe5e4d2d2c91cdd4ccca0, limb1: 0xe6acea145563a04b2821d120, - limb2: 0x18213221f2937afb + limb2: 0x18213221f2937afb, }, r1a1: u288 { limb0: 0xfe20afa6f6ddeb2cb768a5ae, limb1: 0x1a3b509131945337c3568fcf, - limb2: 0x127b5788263a927e - } + limb2: 0x127b5788263a927e, + }, }, G2Line { r0a0: u288 { limb0: 0x1682a38c2b0f08b940585776, limb1: 0x4bcfdd206314bf8fb7bbd3d9, - limb2: 0x72478229fdf9b3e + limb2: 0x72478229fdf9b3e, }, r0a1: u288 { limb0: 0x7655cf8178fd96eab34ed64c, limb1: 0xa8a410386256daf6f497a426, - limb2: 0x24a563cb3fd6a97c + limb2: 0x24a563cb3fd6a97c, }, r1a0: u288 { limb0: 0xcc3e2f74f61e4ad3dd0ec353, limb1: 0xd8d2eed02ef01ce6c895d54b, - limb2: 0x2f0b5abbb25e5201 + limb2: 0x2f0b5abbb25e5201, }, r1a1: u288 { limb0: 0x6ca200200f72fc879747d649, limb1: 0xfe2a8dfce46aa04cc6cac8bf, - limb2: 0x2538761bcc075511 - } + limb2: 0x2538761bcc075511, + }, }, G2Line { r0a0: u288 { limb0: 0xe7c658aecdab4db3c83f7927, limb1: 0xfbf162264ca04ee50c70bde8, - limb2: 0x2a20f4565b7ff885 + limb2: 0x2a20f4565b7ff885, }, r0a1: u288 { limb0: 0x45b1c2f0a1226361f42683c0, limb1: 0x9acdd892c48c08de047296bc, - limb2: 0x27836373108925d4 + limb2: 0x27836373108925d4, }, r1a0: u288 { limb0: 0xc0ea9294b345e6d4892676a7, limb1: 0xcba74eca77086af245d1606e, - limb2: 0xf20edac89053e72 + limb2: 0xf20edac89053e72, }, r1a1: u288 { limb0: 0x4c92a28f2779a527a68a938c, limb1: 0x3a1c3c55ff9d20eac109fab3, - limb2: 0x21c4a8c524b1ee7d - } + limb2: 0x21c4a8c524b1ee7d, + }, }, G2Line { r0a0: u288 { limb0: 0xb4a2a27e2287cfee7a9682c4, limb1: 0x1ce9a7e33aac888cfff41045, - limb2: 0x15862361b72f510c + limb2: 0x15862361b72f510c, }, r0a1: u288 { limb0: 0xf2ad35e6e2883182aa6b4fd1, limb1: 0xe770aff5925910a31f0953c9, - limb2: 0x2620607848308ab0 + limb2: 0x2620607848308ab0, }, r1a0: u288 { limb0: 0xd96d83a873e922ac6356c949, limb1: 0xd55163234b216b61b10f5648, - limb2: 0xde3b9a35927e127 + limb2: 0xde3b9a35927e127, }, r1a1: u288 { limb0: 0xab124d1d7268f0e796dbe62c, limb1: 0x2853f3ef7aa34d7a0e228ce2, - limb2: 0x13beaa5c47f7b339 - } + limb2: 0x13beaa5c47f7b339, + }, }, G2Line { r0a0: u288 { limb0: 0xa68021d593c46246af22559e, limb1: 0x5c2cfc5bc4cd1b48f4704134, - limb2: 0x296066ede1298f8c + limb2: 0x296066ede1298f8c, }, r0a1: u288 { limb0: 0xfe17dd6765eb9b9625eb6a84, limb1: 0x4e35dd8e8f6088bb14299f8d, - limb2: 0x1a380ab2689106e4 + limb2: 0x1a380ab2689106e4, }, r1a0: u288 { limb0: 0x82bacf337ca09853df42bc59, limb1: 0xa15de4ef34a30014c5a2e9ae, - limb2: 0x243cc0cec53c778b + limb2: 0x243cc0cec53c778b, }, r1a1: u288 { limb0: 0xcb2a1bf18e3ba9349b0a8bf2, limb1: 0x35134b2505cbb5a4c91f0ac4, - limb2: 0x25e45206b13f43c4 - } + limb2: 0x25e45206b13f43c4, + }, }, G2Line { r0a0: u288 { limb0: 0x8e97b007ffd9891bd0e77650, limb1: 0x77671278ac33f17df6b1db88, - limb2: 0x243daddc47f5d5c2 + limb2: 0x243daddc47f5d5c2, }, r0a1: u288 { limb0: 0x655fe4c8bbe5ee06aaa0054b, limb1: 0xf751450b02c93c7ddea95938, - limb2: 0x21aa988e950d563f + limb2: 0x21aa988e950d563f, }, r1a0: u288 { limb0: 0xb51b3b6b8582de3eb0549518, limb1: 0x84a1031766b7e465f5bbf40c, - limb2: 0xd46c2d5b95e5532 + limb2: 0xd46c2d5b95e5532, }, r1a1: u288 { limb0: 0x50b6ddd8a5eef0067652191e, limb1: 0x298832a0bc46ebed8bff6190, - limb2: 0xb568b4fe8311f93 - } + limb2: 0xb568b4fe8311f93, + }, }, G2Line { r0a0: u288 { limb0: 0x95142735dac6534042d2d05e, limb1: 0x7403f0a3b4d2a49a7009872f, - limb2: 0x2b5ce066c5012949 + limb2: 0x2b5ce066c5012949, }, r0a1: u288 { limb0: 0xfb9dd943bee0316b632fd1fc, limb1: 0xe28dc017ad7c82d573ca64d4, - limb2: 0x1d814d88b3e026ce + limb2: 0x1d814d88b3e026ce, }, r1a0: u288 { limb0: 0x1722d6e82c213b5f5bb54b06, limb1: 0xe97b4fa087e0ac0ade7e9fb3, - limb2: 0x117a4f1562cdc338 + limb2: 0x117a4f1562cdc338, }, r1a1: u288 { limb0: 0x16204b8c2a7d006220778fc4, limb1: 0x23ebf70a7d3687322b0a559b, - limb2: 0x117d1eaacfcf39d0 - } + limb2: 0x117d1eaacfcf39d0, + }, }, G2Line { r0a0: u288 { limb0: 0xac3a5cf29dd67034cce999d8, limb1: 0xabf7913b1ad3df78f63ec920, - limb2: 0x10e5e9415124c78a + limb2: 0x10e5e9415124c78a, }, r0a1: u288 { limb0: 0xfe328b7478a7b96b0521d32d, limb1: 0x486efcf8db262be440c2f384, - limb2: 0x118851b013a7a2f6 + limb2: 0x118851b013a7a2f6, }, r1a0: u288 { limb0: 0xfcea8d918c9420959fc131c1, limb1: 0x2c76ec0524a5b61c91661734, - limb2: 0xbfe2e9e02621600 + limb2: 0xbfe2e9e02621600, }, r1a1: u288 { limb0: 0xc55d8e0d7ac126b8e0dfa148, limb1: 0x178dd414d941be3cb70299bb, - limb2: 0x15b52c5f3e3c78fe - } + limb2: 0x15b52c5f3e3c78fe, + }, }, G2Line { r0a0: u288 { limb0: 0xddb4db99db681d35f71a159c, limb1: 0xf71a330019414e6fdee75700, - limb2: 0x14d9838e7d1918bb + limb2: 0x14d9838e7d1918bb, }, r0a1: u288 { limb0: 0x203c8bac71951a5f2c653710, limb1: 0x9fc93f8da38ecc2957313982, - limb2: 0x7b6d981259cabd9 + limb2: 0x7b6d981259cabd9, }, r1a0: u288 { limb0: 0xa7297cdb5be0cc45d48ca6af, limb1: 0xa07b4b025ebe6c960eddfc56, - limb2: 0xef2a5c30ef00652 + limb2: 0xef2a5c30ef00652, }, r1a1: u288 { limb0: 0xb7f05c76d860e9122b36ecd7, limb1: 0x407d6522e1f9ce2bcbf80eda, - limb2: 0x197625a558f32c36 - } + limb2: 0x197625a558f32c36, + }, }, G2Line { r0a0: u288 { limb0: 0x4e67d839c8646de27691dae2, limb1: 0xa113e037559795425b1ca935, - limb2: 0xe0f8316d3adace6 + limb2: 0xe0f8316d3adace6, }, r0a1: u288 { limb0: 0xac5484d96d5e16708aa20635, limb1: 0x3cf76c0c779c04ac350707d7, - limb2: 0x189022b6900c47 + limb2: 0x189022b6900c47, }, r1a0: u288 { limb0: 0x4c4cf7790d369d15fe931a4e, limb1: 0xeccffa7915f2d1fb735abf95, - limb2: 0x18f28ca407bde4a + limb2: 0x18f28ca407bde4a, }, r1a1: u288 { limb0: 0x2b7dcc570e7213f9c18015d3, limb1: 0x8196ba5914d477135145617, - limb2: 0x1d11ba6a93642a1d - } + limb2: 0x1d11ba6a93642a1d, + }, }, G2Line { r0a0: u288 { limb0: 0xb0f04df9dec94801e48a6ff7, limb1: 0xdc59d087c627d38334e5b969, - limb2: 0x3d36e11420be053 + limb2: 0x3d36e11420be053, }, r0a1: u288 { limb0: 0xc80f070001aa1586189e0215, limb1: 0xff849fcbbbe7c00c83ab5282, - limb2: 0x2a2354b2882706a6 + limb2: 0x2a2354b2882706a6, }, r1a0: u288 { limb0: 0x48cf70c80f08b6c7dc78adb2, limb1: 0xc6632efa77b36a4a1551d003, - limb2: 0xc2d3533ece75879 + limb2: 0xc2d3533ece75879, }, r1a1: u288 { limb0: 0x63e82ba26617416a0b76ddaa, limb1: 0xdaceb24adda5a049bed29a50, - limb2: 0x1a82061a3344043b - } + limb2: 0x1a82061a3344043b, + }, }, G2Line { r0a0: u288 { limb0: 0xbd69421a5b200ff9b38f831f, limb1: 0x3fe4fe938fccbaeeea650793, - limb2: 0x19df4f325f19d790 + limb2: 0x19df4f325f19d790, }, r0a1: u288 { limb0: 0x460ec10fdc20f258517b0ede, limb1: 0xed5f65a9e2470b25df5fef70, - limb2: 0x1b61c823ebf0b10a + limb2: 0x1b61c823ebf0b10a, }, r1a0: u288 { limb0: 0x658cfa5631cd4889f4c5faf1, limb1: 0x7fc4136b63b1f54e46d634cb, - limb2: 0xb2cdd6f5da71516 + limb2: 0xb2cdd6f5da71516, }, r1a1: u288 { limb0: 0xf29e04c6192dd039241e5573, limb1: 0xaed4fb46d1273a5895ee2308, - limb2: 0x291ea193f947c5dc - } + limb2: 0x291ea193f947c5dc, + }, }, G2Line { r0a0: u288 { limb0: 0x9152fecf0f523415acc7c7be, limb1: 0xd9632cbfccc4ea5d7bf31177, - limb2: 0x2d7288c5f8c83ab1 + limb2: 0x2d7288c5f8c83ab1, }, r0a1: u288 { limb0: 0x53144bfe4030f3f9f5efda8, limb1: 0xfeec394fbf392b11c66bae27, - limb2: 0x28840813ab8a200b + limb2: 0x28840813ab8a200b, }, r1a0: u288 { limb0: 0xdec3b11fbc28b305d9996ec7, limb1: 0x5b5f8d9d17199e149c9def6e, - limb2: 0x10c1a149b6751bae + limb2: 0x10c1a149b6751bae, }, r1a1: u288 { limb0: 0x665e8eb7e7d376a2d921c889, limb1: 0xfdd76d06e46ee1a943b8788d, - limb2: 0x8bb21d9960e837b - } + limb2: 0x8bb21d9960e837b, + }, }, G2Line { r0a0: u288 { limb0: 0x3a67c28a175200e631aa506a, limb1: 0x7397303a34968ff17c06e801, - limb2: 0x1b81e0c63123688b + limb2: 0x1b81e0c63123688b, }, r0a1: u288 { limb0: 0x3490cfd4f076c621dac4a12c, limb1: 0xec183578c91b90b72e5887b7, - limb2: 0x179fb354f608da00 + limb2: 0x179fb354f608da00, }, r1a0: u288 { limb0: 0x9322bde2044dde580a78ba33, limb1: 0xfc74821b668d3570cad38f8b, - limb2: 0x8cec54a291f5e57 + limb2: 0x8cec54a291f5e57, }, r1a1: u288 { limb0: 0xc2818b6a9530ee85d4b2ae49, limb1: 0x8d7b651ad167f2a43d7a2d0a, - limb2: 0x7c9ca9bab0ffc7f - } + limb2: 0x7c9ca9bab0ffc7f, + }, }, G2Line { r0a0: u288 { limb0: 0xb3b784e642887a8476f572e, limb1: 0xed02f127df5eed0cb36a3bf8, - limb2: 0xba1df3a2dfa44 + limb2: 0xba1df3a2dfa44, }, r0a1: u288 { limb0: 0x42c8ddcabfe9a7ad125d0ca9, limb1: 0x7893651eea284a367016e3f4, - limb2: 0x169246616ba43650 + limb2: 0x169246616ba43650, }, r1a0: u288 { limb0: 0x1c64d4f3656e04d1a72b8d48, limb1: 0xab4d9597432f9192baa38fde, - limb2: 0x166f0057c0435ce + limb2: 0x166f0057c0435ce, }, r1a1: u288 { limb0: 0xff9760ba5717ba174df6f8f8, limb1: 0x426768d82386947c5babfd7f, - limb2: 0x7ca1e1a5d1a0c5e - } + limb2: 0x7ca1e1a5d1a0c5e, + }, }, G2Line { r0a0: u288 { limb0: 0xd5f536bc65864831172f42a0, limb1: 0x26dcfa4e457220eb911294ce, - limb2: 0x105261c2c69ce433 + limb2: 0x105261c2c69ce433, }, r0a1: u288 { limb0: 0x6e00517fac26565662abb1ad, limb1: 0xa14626f27b8158a553767216, - limb2: 0x22d2abd4602c1c6b + limb2: 0x22d2abd4602c1c6b, }, r1a0: u288 { limb0: 0x92f008ec8c7f2dc8a8571a28, limb1: 0x856f48547c31d1368fb8c686, - limb2: 0x2ed469b49fa7d7ea + limb2: 0x2ed469b49fa7d7ea, }, r1a1: u288 { limb0: 0xf50c1feb101e5ceb3b16ec4e, limb1: 0x3a230af636b80f192ec0e399, - limb2: 0x1764922866d60a5e - } + limb2: 0x1764922866d60a5e, + }, }, G2Line { r0a0: u288 { limb0: 0xa576408f8300de3a7714e6ae, limb1: 0xe1072c9a16f202ecf37fbc34, - limb2: 0x1b0cb1e2b5871263 + limb2: 0x1b0cb1e2b5871263, }, r0a1: u288 { limb0: 0x2128e2314694b663286e231e, limb1: 0x54bea71957426f002508f715, - limb2: 0x36ecc5dbe069dca + limb2: 0x36ecc5dbe069dca, }, r1a0: u288 { limb0: 0x17c77cd88f9d5870957850ce, limb1: 0xb7f4ec2bc270ce30538fe9b8, - limb2: 0x766279e588592bf + limb2: 0x766279e588592bf, }, r1a1: u288 { limb0: 0x1b6caddf18de2f30fa650122, limb1: 0x40b77237a29cada253c126c6, - limb2: 0x74ff1349b1866c8 - } + limb2: 0x74ff1349b1866c8, + }, }, G2Line { r0a0: u288 { limb0: 0xbb540898cf8935c1b1173cb4, limb1: 0xc1418f5298a4a4bf6f2e3bd3, - limb2: 0xc988fb564cf08d8 + limb2: 0xc988fb564cf08d8, }, r0a1: u288 { limb0: 0xf09b861d7134a245b7e364b4, limb1: 0xa92280b0deb7fe5180ed4b7a, - limb2: 0x7aa813cc9c85d7b + limb2: 0x7aa813cc9c85d7b, }, r1a0: u288 { limb0: 0xed06ae875b1fc56f5d1c3f8e, limb1: 0xc41bdd2f5b4150a210b33d70, - limb2: 0x2cea2b050d19c785 + limb2: 0x2cea2b050d19c785, }, r1a1: u288 { limb0: 0x9790a2fc143b9afb8a56de04, limb1: 0xe74dd4109ce475db08d477a2, - limb2: 0x19dba5858fcd648f - } + limb2: 0x19dba5858fcd648f, + }, }, G2Line { r0a0: u288 { limb0: 0x3603266e05560becab36faef, limb1: 0x8c3b88c9390278873dd4b048, - limb2: 0x24a715a5d9880f38 + limb2: 0x24a715a5d9880f38, }, r0a1: u288 { limb0: 0xe9f595b111cfd00d1dd28891, limb1: 0x75c6a392ab4a627f642303e1, - limb2: 0x17b34a30def82ab6 + limb2: 0x17b34a30def82ab6, }, r1a0: u288 { limb0: 0xe706de8f35ac8372669fc8d3, limb1: 0x16cc7f4032b3f3ebcecd997d, - limb2: 0x166eba592eb1fc78 + limb2: 0x166eba592eb1fc78, }, r1a1: u288 { limb0: 0x7d584f102b8e64dcbbd1be9, limb1: 0x2ead4092f009a9c0577f7d3, - limb2: 0x2fe2c31ee6b1d41e - } + limb2: 0x2fe2c31ee6b1d41e, + }, }, G2Line { r0a0: u288 { limb0: 0x72253d939632f8c28fb5763, limb1: 0x9b943ab13cad451aed1b08a2, - limb2: 0xdb9b2068e450f10 + limb2: 0xdb9b2068e450f10, }, r0a1: u288 { limb0: 0x80f025dcbce32f6449fa7719, limb1: 0x8a0791d4d1ed60b86e4fe813, - limb2: 0x1b1bd5dbce0ea966 + limb2: 0x1b1bd5dbce0ea966, }, r1a0: u288 { limb0: 0xaa72a31de7d815ae717165d4, limb1: 0x501c29c7b6aebc4a1b44407f, - limb2: 0x464aa89f8631b3a + limb2: 0x464aa89f8631b3a, }, r1a1: u288 { limb0: 0x6b8d137e1ea43cd4b1f616b1, limb1: 0xdd526a510cc84f150cc4d55a, - limb2: 0x1da2ed980ebd3f29 - } + limb2: 0x1da2ed980ebd3f29, + }, }, G2Line { r0a0: u288 { limb0: 0x2990abd5a415b597653aecc7, limb1: 0xf6d59e5d9f2735e0b5196522, - limb2: 0x12cfd626116f3e90 + limb2: 0x12cfd626116f3e90, }, r0a1: u288 { limb0: 0x85ff23da49c13991049c2a30, limb1: 0x29ea9dc0564c06318ee970c6, - limb2: 0x2f579deeac8b19a + limb2: 0x2f579deeac8b19a, }, r1a0: u288 { limb0: 0x458c505570a4bc6cd8751128, limb1: 0xcff5c9e1d1d4c1f64e37982c, - limb2: 0x1bfc56f58e4e33f5 + limb2: 0x1bfc56f58e4e33f5, }, r1a1: u288 { limb0: 0x364b1be00e65d893a9fabb7, limb1: 0xfa38e20e90619e224b054d86, - limb2: 0x1d3724ff58e69e9d - } + limb2: 0x1d3724ff58e69e9d, + }, }, G2Line { r0a0: u288 { limb0: 0x604234358fe8a608e232b055, limb1: 0x81bf97d1a0380fa64ffab70d, - limb2: 0x2fe1c2c2521704f2 + limb2: 0x2fe1c2c2521704f2, }, r0a1: u288 { limb0: 0x49746a3559cdc3031fd62abe, limb1: 0xc0676e4a367566526115e5d5, - limb2: 0x793d580a7f8d698 + limb2: 0x793d580a7f8d698, }, r1a0: u288 { limb0: 0x434be9b6d4f5097159fe303b, limb1: 0x1eff6c60a4c52f744e8e2276, - limb2: 0x210a1915eaab4b20 + limb2: 0x210a1915eaab4b20, }, r1a1: u288 { limb0: 0x4e6f7e9d87f16fc7601cc783, limb1: 0xd4bec91933ea7c5f9518ea04, - limb2: 0x1c45a57b0c8d62d7 - } + limb2: 0x1c45a57b0c8d62d7, + }, }, G2Line { r0a0: u288 { limb0: 0x867cced8a010850958f41ff5, limb1: 0x6a37fdb2b8993eed18bafe8e, - limb2: 0x21b9f782109e5a7 + limb2: 0x21b9f782109e5a7, }, r0a1: u288 { limb0: 0x7307477d650618e66de38d0f, limb1: 0xacb622ce92a7e393dbe10ba1, - limb2: 0x236e70838cee0ed5 + limb2: 0x236e70838cee0ed5, }, r1a0: u288 { limb0: 0xb564a308aaf5dda0f4af0f0d, limb1: 0x55fc71e2f13d8cb12bd51e74, - limb2: 0x294cf115a234a9e9 + limb2: 0x294cf115a234a9e9, }, r1a1: u288 { limb0: 0xbd166057df55c135b87f35f3, limb1: 0xf9f29b6c50f1cce9b85ec9b, - limb2: 0x2e8448d167f20f96 - } + limb2: 0x2e8448d167f20f96, + }, }, G2Line { r0a0: u288 { limb0: 0x8af780d4f3611de614224cf4, limb1: 0xb3411d6969eed4b8286c7185, - limb2: 0x13f31915350d79e7 + limb2: 0x13f31915350d79e7, }, r0a1: u288 { limb0: 0xefebdf46e1c80e1bbfc388c4, limb1: 0xbab06fd5263cc18fb57d9e95, - limb2: 0xe1c884a026d918e + limb2: 0xe1c884a026d918e, }, r1a0: u288 { limb0: 0x845caa8c849832ee6cfe63b1, limb1: 0xaedd1db275061decc9cd7b3a, - limb2: 0x23787e28f22f3546 + limb2: 0x23787e28f22f3546, }, r1a1: u288 { limb0: 0x28e41c19ff26092ec696db3f, limb1: 0x90f1244e5140a5df661d05f9, - limb2: 0x2f61a80ac4d65725 - } + limb2: 0x2f61a80ac4d65725, + }, }, G2Line { r0a0: u288 { limb0: 0xdedaff3205bb953b2c390b8a, limb1: 0xe1a899da21c1dafb485c707e, - limb2: 0x1ec897e7a041493e + limb2: 0x1ec897e7a041493e, }, r0a1: u288 { limb0: 0xf52c3c30cd4d3202b34089e0, limb1: 0xc652aa1ff533e1aad7532305, - limb2: 0x2a1df766e5e3aa2e + limb2: 0x2a1df766e5e3aa2e, }, r1a0: u288 { limb0: 0x7ac695d3e19d79b234daaf3d, limb1: 0x5ce2f92666aec92a650feee1, - limb2: 0x21ab4fe20d978e77 + limb2: 0x21ab4fe20d978e77, }, r1a1: u288 { limb0: 0xa64a913a29a1aed4e0798664, limb1: 0x66bc208b511503d127ff5ede, - limb2: 0x2389ba056de56a8d - } + limb2: 0x2389ba056de56a8d, + }, }, G2Line { r0a0: u288 { limb0: 0x5fa9f3d6ba2e33d9df261501, limb1: 0x14ce648819a9c46d64d2ad7a, - limb2: 0x200d58896e8e5649 + limb2: 0x200d58896e8e5649, }, r0a1: u288 { limb0: 0xd961390ca5e5c1a18c8258f0, limb1: 0xe2e869b5cf4982ab8e3b203a, - limb2: 0x269258fa79102f56 + limb2: 0x269258fa79102f56, }, r1a0: u288 { limb0: 0x68cdab4015c2a73a65068b85, limb1: 0x89d0b1abc07351c7a379bd7c, - limb2: 0x257b6794021bc2db + limb2: 0x257b6794021bc2db, }, r1a1: u288 { limb0: 0xc75c452e6d369e6a87b6e1e, limb1: 0xdaabd301cafb7edba76274ef, - limb2: 0x3bde99bf58a92c2 - } + limb2: 0x3bde99bf58a92c2, + }, }, G2Line { r0a0: u288 { limb0: 0xd88b16e68600a12e6c1f6006, limb1: 0x333243b43d3b7ff18d0cc671, - limb2: 0x2b84b2a9b0f03ed8 + limb2: 0x2b84b2a9b0f03ed8, }, r0a1: u288 { limb0: 0xf3e2b57ddaac822c4da09991, limb1: 0xd7c894b3fe515296bb054d2f, - limb2: 0x10a75e4c6dddb441 + limb2: 0x10a75e4c6dddb441, }, r1a0: u288 { limb0: 0x73c65fbbb06a7b21b865ac56, limb1: 0x21f4ecd1403bb78729c7e99b, - limb2: 0xaf88a160a6b35d4 + limb2: 0xaf88a160a6b35d4, }, r1a1: u288 { limb0: 0xade61ce10b8492d659ff68d0, limb1: 0x1476e76cf3a8e0df086ad9eb, - limb2: 0x2e28cfc65d61e946 - } + limb2: 0x2e28cfc65d61e946, + }, }, G2Line { r0a0: u288 { limb0: 0xdf8b54b244108008e7f93350, limb1: 0x2ae9a68b9d6b96f392decd6b, - limb2: 0x160b19eed152271c + limb2: 0x160b19eed152271c, }, r0a1: u288 { limb0: 0xc18a8994cfbb2e8df446e449, limb1: 0x408d51e7e4adedd8f4f94d06, - limb2: 0x27661b404fe90162 + limb2: 0x27661b404fe90162, }, r1a0: u288 { limb0: 0x1390b2a3b27f43f7ac73832c, limb1: 0x14d57301f6002fd328f2d64d, - limb2: 0x17f3fa337367dddc + limb2: 0x17f3fa337367dddc, }, r1a1: u288 { limb0: 0x79cab8ff5bf2f762c5372f80, limb1: 0xc979d6f385fae4b5e4785acf, - limb2: 0x60c5307a735b00f - } + limb2: 0x60c5307a735b00f, + }, }, G2Line { r0a0: u288 { limb0: 0x94336f2c5c03b2ad5dfd59a2, limb1: 0x3ee02119f9d3e985e9859470, - limb2: 0x11a897fc6f4ac878 + limb2: 0x11a897fc6f4ac878, }, r0a1: u288 { limb0: 0x8fbbe337bcd3b3926dfd5a7b, limb1: 0x6a45f1a06ee96d69024430db, - limb2: 0x14e51a458ccb2d83 + limb2: 0x14e51a458ccb2d83, }, r1a0: u288 { limb0: 0xbb2657ff1a311ddd38278308, limb1: 0x776a992cfacbf2c03314a11, - limb2: 0x58d65fdae6e48e1 + limb2: 0x58d65fdae6e48e1, }, r1a1: u288 { limb0: 0x12a32aecc832311454a1c546, limb1: 0x2fe303fbc237d54289547719, - limb2: 0x3668aec6f11f21e - } + limb2: 0x3668aec6f11f21e, + }, }, G2Line { r0a0: u288 { limb0: 0xb0aa6695235ffd66d5f3c609, limb1: 0x318302a2be41d2dacdbc374d, - limb2: 0x1eeaf97b389d7e8e + limb2: 0x1eeaf97b389d7e8e, }, r0a1: u288 { limb0: 0x10bf93e11b2746d13bb58a38, limb1: 0xd1b4adad34ee3f10a1482bc0, - limb2: 0x177de2cef1432bb6 + limb2: 0x177de2cef1432bb6, }, r1a0: u288 { limb0: 0x83b01a1debda734692f242b9, limb1: 0xff64a01021e721460650bba4, - limb2: 0x23fc5e8c9a462660 + limb2: 0x23fc5e8c9a462660, }, r1a1: u288 { limb0: 0xf56122ef42ec57584ae1e554, limb1: 0x1be67e0ec4b5b9cf2540e9a7, - limb2: 0x15e2a1a3f49ec180 - } + limb2: 0x15e2a1a3f49ec180, + }, }, G2Line { r0a0: u288 { limb0: 0x386d7b23c6dccb87637018c9, limb1: 0xfed2ea478e9a2210289079e2, - limb2: 0x100aa83cb843353e + limb2: 0x100aa83cb843353e, }, r0a1: u288 { limb0: 0x229c5c285f049d04c3dc5ce7, limb1: 0x28110670fe1d38c53ffcc6f7, - limb2: 0x1778918279578f50 + limb2: 0x1778918279578f50, }, r1a0: u288 { limb0: 0xe9ad2c7b8a17a1f1627ff09d, limb1: 0xedff5563c3c3e7d2dcc402ec, - limb2: 0xa8bd6770b6d5aa8 + limb2: 0xa8bd6770b6d5aa8, }, r1a1: u288 { limb0: 0x66c5c1aeed5c04470b4e8a3d, limb1: 0x846e73d11f2d18fe7e1e1aa2, - limb2: 0x10a60eabe0ec3d78 - } + limb2: 0x10a60eabe0ec3d78, + }, }, G2Line { r0a0: u288 { limb0: 0x1699deb0ead59ed63109c05b, limb1: 0xb325da3842cebabbec003fc1, - limb2: 0xc0de846c16e6112 + limb2: 0xc0de846c16e6112, }, r0a1: u288 { limb0: 0x99309402eca08241dae4e273, limb1: 0xaa16e86224c3178f60d03bb7, - limb2: 0x24cde0d47b2dcef1 + limb2: 0x24cde0d47b2dcef1, }, r1a0: u288 { limb0: 0x7d47f9f43dd62a2f56442e26, limb1: 0x9d3fd5f2224d5f9a10b5bf3e, - limb2: 0x1ea21619d0ac4ca7 + limb2: 0x1ea21619d0ac4ca7, }, r1a1: u288 { limb0: 0x945a4528b5a37c8fdf0cc9af, limb1: 0x7ad4fbe1529463b319293c35, - limb2: 0xa55c48b621e6341 - } + limb2: 0xa55c48b621e6341, + }, }, G2Line { r0a0: u288 { limb0: 0x88ca191d85be1f6c205257ef, limb1: 0xd0cecf5c5f80926c77fd4870, - limb2: 0x16ec42b5cae83200 + limb2: 0x16ec42b5cae83200, }, r0a1: u288 { limb0: 0x154cba82460752b94916186d, limb1: 0x564f6bebac05a4f3fb1353ac, - limb2: 0x2d47a47da836d1a7 + limb2: 0x2d47a47da836d1a7, }, r1a0: u288 { limb0: 0xb39c4d6150bd64b4674f42ba, limb1: 0x93c967a38fe86f0779bf4163, - limb2: 0x1a51995a49d50f26 + limb2: 0x1a51995a49d50f26, }, r1a1: u288 { limb0: 0xeb7bdec4b7e304bbb0450608, limb1: 0x11fc9a124b8c74b3d5560ea4, - limb2: 0xbfa9bd7f55ad8ac - } + limb2: 0xbfa9bd7f55ad8ac, + }, }, G2Line { r0a0: u288 { limb0: 0x4f28d4247eb0e0a53f03f444, limb1: 0xe8f36708d074dd12e311c7aa, - limb2: 0x1d92749e4fc01c06 + limb2: 0x1d92749e4fc01c06, }, r0a1: u288 { limb0: 0x250166cbdf943b8f355f3863, limb1: 0xc5fb4230bafe5e79ca84b40c, - limb2: 0xd5d8ec40858dc7b + limb2: 0xd5d8ec40858dc7b, }, r1a0: u288 { limb0: 0xab518924ec9867879e25582a, limb1: 0x2d3857a7fcba7b3149f2102e, - limb2: 0x524fec03876938c + limb2: 0x524fec03876938c, }, r1a1: u288 { limb0: 0xf56af23dcb095ed80aa220e7, limb1: 0xb67dbb76fc439aae6b2dd36a, - limb2: 0x2b6f640edeaa501d - } + limb2: 0x2b6f640edeaa501d, + }, }, G2Line { r0a0: u288 { limb0: 0x2fdc574c85cf0c0ce5e07a51, limb1: 0xd2439bf7b00bddc4cfb01b0c, - limb2: 0x125c3bbdeb0bd2da + limb2: 0x125c3bbdeb0bd2da, }, r0a1: u288 { limb0: 0x9d664714bae53cafcb5ef55d, limb1: 0x495c01724790853548f5e4de, - limb2: 0x2ce5e2e263725941 + limb2: 0x2ce5e2e263725941, }, r1a0: u288 { limb0: 0x98071eb7fe88c9124aee3774, limb1: 0xc3f66947a52bd2f6d520579f, - limb2: 0x2eaf775dbd52f7d3 + limb2: 0x2eaf775dbd52f7d3, }, r1a1: u288 { limb0: 0x23e5594948e21db2061dca92, limb1: 0xd0ffa6f6c77290531c185431, - limb2: 0x604c085de03afb1 - } + limb2: 0x604c085de03afb1, + }, }, G2Line { r0a0: u288 { limb0: 0xccbab5c7a0c5742ffa48733a, limb1: 0x23ef71f3d85c3bcf13168107, - limb2: 0x2ddb1f0a6d652587 + limb2: 0x2ddb1f0a6d652587, }, r0a1: u288 { limb0: 0xc28304e1eab794df6c6e2292, limb1: 0x7ec85b63501012b9d7b45342, - limb2: 0x1b2d2e2c38abb2e + limb2: 0x1b2d2e2c38abb2e, }, r1a0: u288 { limb0: 0xea706451e63a0b21024ffdf1, limb1: 0x138461dd2f2d3f164edfa0a3, - limb2: 0x1ca4c45bdf45ca1f + limb2: 0x1ca4c45bdf45ca1f, }, r1a1: u288 { limb0: 0x52cb07c8413f40678dac95f1, limb1: 0xff127a91385511589a9f1879, - limb2: 0x25e33c022d25bf1f - } + limb2: 0x25e33c022d25bf1f, + }, }, G2Line { r0a0: u288 { limb0: 0xeec2912e15f6bda39d4e005e, limb1: 0x2b8610c44d27bdbc6ba2aac5, - limb2: 0x78ddc4573fc1fed + limb2: 0x78ddc4573fc1fed, }, r0a1: u288 { limb0: 0x48099a0da11ea21de015229d, limb1: 0x5fe937100967d5cc544f4af1, - limb2: 0x2c9ffe6d7d7e9631 + limb2: 0x2c9ffe6d7d7e9631, }, r1a0: u288 { limb0: 0xa70d251296ef1ae37ceb7d03, limb1: 0x2adadcb7d219bb1580e6e9c, - limb2: 0x180481a57f22fd03 + limb2: 0x180481a57f22fd03, }, r1a1: u288 { limb0: 0xacf46db9631037dd933eb72a, limb1: 0x8a58491815c7656292a77d29, - limb2: 0x261e3516c348ae12 - } + limb2: 0x261e3516c348ae12, + }, }, G2Line { r0a0: u288 { limb0: 0xccb3ff79c694e37dfd96245c, limb1: 0x22190f1ae73883eea23de9ef, - limb2: 0x20a63d2ddd9170cb + limb2: 0x20a63d2ddd9170cb, }, r0a1: u288 { limb0: 0xc2d93202f4bc4125b32a040f, limb1: 0x878fad8024db67f55bb868ad, - limb2: 0x19f19dfc985e42b4 + limb2: 0x19f19dfc985e42b4, }, r1a0: u288 { limb0: 0xeed43376f2c4880094eb048b, limb1: 0x8c113b83e273d1c9e467294, - limb2: 0x14c7cf40ca1595d1 + limb2: 0x14c7cf40ca1595d1, }, r1a1: u288 { limb0: 0x3a25b6562577b927dce53ee6, limb1: 0xd87119330d4005ed54acb4c5, - limb2: 0x2eda2b2bb0c37f0e - } + limb2: 0x2eda2b2bb0c37f0e, + }, }, G2Line { r0a0: u288 { limb0: 0x2bfa32f0a09c3e2cfb8f6a38, limb1: 0x7a24df3ff3c7119a59d49318, - limb2: 0x10e42281d64907ba + limb2: 0x10e42281d64907ba, }, r0a1: u288 { limb0: 0xce42177a66cdeb4207d11e0c, limb1: 0x3322aa425a9ca270152372ad, - limb2: 0x2f7fa83db407600c + limb2: 0x2f7fa83db407600c, }, r1a0: u288 { limb0: 0x62a8ff94fd1c7b9035af4446, limb1: 0x3ad500601bbb6e7ed1301377, - limb2: 0x254d253ca06928f + limb2: 0x254d253ca06928f, }, r1a1: u288 { limb0: 0xf8f1787cd8e730c904b4386d, limb1: 0x7fd3744349918d62c42d24cc, - limb2: 0x28a05e105d652eb8 - } + limb2: 0x28a05e105d652eb8, + }, }, G2Line { r0a0: u288 { limb0: 0x6ef31e059d602897fa8e80a8, limb1: 0x66a0710847b6609ceda5140, - limb2: 0x228c0e568f1eb9c0 + limb2: 0x228c0e568f1eb9c0, }, r0a1: u288 { limb0: 0x7b47b1b133c1297b45cdd79b, limb1: 0x6b4f04ed71b58dafd06b527b, - limb2: 0x13ae6db5254df01a + limb2: 0x13ae6db5254df01a, }, r1a0: u288 { limb0: 0xbeca2fccf7d0754dcf23ddda, limb1: 0xe3d0bcd7d9496d1e5afb0a59, - limb2: 0x305a0afb142cf442 + limb2: 0x305a0afb142cf442, }, r1a1: u288 { limb0: 0x2d299847431477c899560ecf, limb1: 0xbcd9e6c30bedee116b043d8d, - limb2: 0x79473a2a7438353 - } + limb2: 0x79473a2a7438353, + }, }, G2Line { r0a0: u288 { limb0: 0x600b4b9519e953b3ee0e8c95, limb1: 0x5521bdd3beeb7377b82d285d, - limb2: 0x18d5f5e49adfcbc7 + limb2: 0x18d5f5e49adfcbc7, }, r0a1: u288 { limb0: 0xd5da0bb68787af76cb5c5d9f, limb1: 0x75637ba2a835852f330b73c9, - limb2: 0x547e04907fd564d + limb2: 0x547e04907fd564d, }, r1a0: u288 { limb0: 0x2ee91610a62eaa46e2df5e41, limb1: 0x4326c823b5fdae59ff826534, - limb2: 0x2f7f8d90704505d2 + limb2: 0x2f7f8d90704505d2, }, r1a1: u288 { limb0: 0x603491072f5e6e9336e946e6, limb1: 0xf60cf3ac408aed3af2d2e97b, - limb2: 0x2eb99a813ff2d8c2 - } + limb2: 0x2eb99a813ff2d8c2, + }, }, G2Line { r0a0: u288 { limb0: 0x350da7c3e0673cf3f43b36a2, limb1: 0x538deac84e666e5410d11977, - limb2: 0x12cd3b832ded258 + limb2: 0x12cd3b832ded258, }, r0a1: u288 { limb0: 0x48f25dd2ac7a858423fb6067, limb1: 0xd065e44fc48bf19dd02adc4d, - limb2: 0xb645848420703f3 + limb2: 0xb645848420703f3, }, r1a0: u288 { limb0: 0x195a790100143ea9110ceda1, limb1: 0x20b1e1e4a731d94efa584cc5, - limb2: 0xf8b3a6618e4d7ce + limb2: 0xf8b3a6618e4d7ce, }, r1a1: u288 { limb0: 0x614c9b88c1a7229f818fec48, limb1: 0x4c165313932d060fee7871d7, - limb2: 0x2e152a41f78cb225 - } + limb2: 0x2e152a41f78cb225, + }, }, G2Line { r0a0: u288 { limb0: 0x65b71fe695e7ccd4b460dace, limb1: 0xa6ceba62ef334e6fe91301d5, - limb2: 0x299f578d0f3554e6 + limb2: 0x299f578d0f3554e6, }, r0a1: u288 { limb0: 0xaf781dd030a274e7ecf0cfa4, limb1: 0x2095020d373a14d7967797aa, - limb2: 0x6a7f9df6f185bf8 + limb2: 0x6a7f9df6f185bf8, }, r1a0: u288 { limb0: 0x8e91e2dba67d130a0b274df3, limb1: 0xe192a19fce285c12c6770089, - limb2: 0x6e9acf4205c2e22 + limb2: 0x6e9acf4205c2e22, }, r1a1: u288 { limb0: 0xbcd5c206b5f9c77d667189bf, limb1: 0x656a7e2ebc78255d5242ca9, - limb2: 0x25f43fec41d2b245 - } + limb2: 0x25f43fec41d2b245, + }, }, G2Line { r0a0: u288 { limb0: 0xb1640d670c5c42ea39c8645c, limb1: 0xa18224b68a1319ba86f825f4, - limb2: 0x17d223ba44cd11d8 + limb2: 0x17d223ba44cd11d8, }, r0a1: u288 { limb0: 0x375310f6e347ed50ecfdb77f, limb1: 0x6e63ffec719272c6a7aee308, - limb2: 0x12641a4735391a7d + limb2: 0x12641a4735391a7d, }, r1a0: u288 { limb0: 0x5e6ca7022b2145d736b05d42, limb1: 0xf3e3c6f9b543e2e50981a13d, - limb2: 0x1c6256a011a7141d + limb2: 0x1c6256a011a7141d, }, r1a1: u288 { limb0: 0xf19cf9a30aba1b73475bd2e1, limb1: 0xdad570fd4dfe617364253c2e, - limb2: 0x1887c3b2804d9969 - } + limb2: 0x1887c3b2804d9969, + }, }, G2Line { r0a0: u288 { limb0: 0x4e56e6733cce20d9c5b16d96, limb1: 0xc7ef260535fb75b9d3e089f, - limb2: 0x292dd4aa636e7729 + limb2: 0x292dd4aa636e7729, }, r0a1: u288 { limb0: 0x6e7e1038b336f36519c9faaf, limb1: 0x3c66bd609510309485e225c7, - limb2: 0x10cacac137411eb + limb2: 0x10cacac137411eb, }, r1a0: u288 { limb0: 0x4a3e8b96278ac092fe4f3b15, limb1: 0xba47e583e2750b42f93c9631, - limb2: 0x125da6bd69495bb9 + limb2: 0x125da6bd69495bb9, }, r1a1: u288 { limb0: 0xae7a56ab4b959a5f6060d529, limb1: 0xc3c263bfd58c0030c063a48e, - limb2: 0x2f4d15f13fae788c - } + limb2: 0x2f4d15f13fae788c, + }, }, G2Line { r0a0: u288 { limb0: 0x301e0885c84d273b6d323124, limb1: 0x11fd5c75e269f7a30fa4154f, - limb2: 0x19afdcfdcce2fc0d + limb2: 0x19afdcfdcce2fc0d, }, r0a1: u288 { limb0: 0x3d13519f934526be815c38b0, limb1: 0xd43735909547da73838874fc, - limb2: 0x255d8aca30f4e0f6 + limb2: 0x255d8aca30f4e0f6, }, r1a0: u288 { limb0: 0x90a505b76f25a3396e2cea79, limb1: 0x3957a2d0848c54b9079fc114, - limb2: 0x1ba0cd3a9fe6d4bb + limb2: 0x1ba0cd3a9fe6d4bb, }, r1a1: u288 { limb0: 0xc47930fba77a46ebb1db30a9, limb1: 0x993a1cb166e9d40bebab02b2, - limb2: 0x1deb16166d48118b - } + limb2: 0x1deb16166d48118b, + }, }, G2Line { r0a0: u288 { limb0: 0x4cd552da29fd9e651de0c8e2, limb1: 0xcc66e31a0c0f35da5393e234, - limb2: 0x42aae7aba0de5d3 + limb2: 0x42aae7aba0de5d3, }, r0a1: u288 { limb0: 0x4ec69646eae3453b41574b3d, limb1: 0x3600bbee129f0eb4a09e5097, - limb2: 0xd759ae3f0b2e8e + limb2: 0xd759ae3f0b2e8e, }, r1a0: u288 { limb0: 0xa098f16a71c8341329b1faad, limb1: 0xb3eab89ea27edf122016c983, - limb2: 0x180cc8977130fe33 + limb2: 0x180cc8977130fe33, }, r1a1: u288 { limb0: 0xf8c7bee62fa29f3dcd7d52e, limb1: 0xe43d14e1cb4f03890d983fc9, - limb2: 0x1bbf95afef389b1c - } + limb2: 0x1bbf95afef389b1c, + }, }, G2Line { r0a0: u288 { limb0: 0x44e4b10ad926a88d371adac0, limb1: 0xb3b1d13d9118e162063df933, - limb2: 0x21f73fdf31a07aab + limb2: 0x21f73fdf31a07aab, }, r0a1: u288 { limb0: 0xd14093e583f58b3af5ae4db5, limb1: 0x827dd1bbff5a346179ad72b6, - limb2: 0x2ebf5e6b9398b99 + limb2: 0x2ebf5e6b9398b99, }, r1a0: u288 { limb0: 0x29134bd0139058c474b7afa2, limb1: 0xdca7021954756e1ac4eac6cc, - limb2: 0x26f440512341e287 + limb2: 0x26f440512341e287, }, r1a1: u288 { limb0: 0x6c1e14e15abb23010dc1e33a, limb1: 0xe96c50d655a06866163356cd, - limb2: 0x1f4a622ecad37469 - } + limb2: 0x1f4a622ecad37469, + }, }, G2Line { r0a0: u288 { limb0: 0xb15bbaec50ff49d30e49f74a, limb1: 0xc90a8c79fb045c5468f14151, - limb2: 0x25e47927e92df0e3 + limb2: 0x25e47927e92df0e3, }, r0a1: u288 { limb0: 0x57f66909d5d40dfb8c7b4d5c, limb1: 0xea5265282e2139c48c1953f2, - limb2: 0x2d7f5e6aff2381f6 + limb2: 0x2d7f5e6aff2381f6, }, r1a0: u288 { limb0: 0x2a2f573b189a3c8832231394, limb1: 0x738abc15844895ffd4733587, - limb2: 0x20aa11739c4b9bb4 + limb2: 0x20aa11739c4b9bb4, }, r1a1: u288 { limb0: 0x51695ec614f1ff4cce2f65d1, limb1: 0x6765aae6cb895a2406a6dd7e, - limb2: 0x1126ee431c522da0 - } + limb2: 0x1126ee431c522da0, + }, }, G2Line { r0a0: u288 { limb0: 0x789cfeffdbc8dab4651b6a26, limb1: 0x9709af4c379fbf84608e067b, - limb2: 0xdbc2e8191a825bf + limb2: 0xdbc2e8191a825bf, }, r0a1: u288 { limb0: 0x86c0cc51d698fc12702f534f, limb1: 0x6888fbb5d2f53711495f5bd2, - limb2: 0x2c192d6229821616 + limb2: 0x2c192d6229821616, }, r1a0: u288 { limb0: 0x51c5533eb07345679f648982, limb1: 0xa08ae72cfd598899b1cfc8ac, - limb2: 0x26557347bd8f0ef8 + limb2: 0x26557347bd8f0ef8, }, r1a1: u288 { limb0: 0x749300bfda23c67cefec814a, limb1: 0x8bfdcaf7b0e1774c2238299c, - limb2: 0x5b310a47c2757be - } + limb2: 0x5b310a47c2757be, + }, }, G2Line { r0a0: u288 { limb0: 0x9214fc3209f1518b05fd21c6, limb1: 0x9bc8ce4f56423009710770e8, - limb2: 0x32445cc6972799c + limb2: 0x32445cc6972799c, }, r0a1: u288 { limb0: 0x93ef401ecd9cfae3644d22e6, limb1: 0xce5a741a9847a144cfaf8c96, - limb2: 0xf7a814d5726da4a + limb2: 0xf7a814d5726da4a, }, r1a0: u288 { limb0: 0xd19264d986f163b133a91c0c, limb1: 0x529dc5ce4b193c0f672c6a32, - limb2: 0x2e9a118959353374 + limb2: 0x2e9a118959353374, }, r1a1: u288 { limb0: 0x3d97d6e8f45072cc9e85e412, limb1: 0x4dafecb04c3bb23c374f0486, - limb2: 0xa174dd4ac8ee628 - } + limb2: 0xa174dd4ac8ee628, + }, }, G2Line { r0a0: u288 { limb0: 0xe0decaadc4a6f0ba8f9bef29, limb1: 0xedcb07e1177fa819f638157b, - limb2: 0x250c15a64da6f7e5 + limb2: 0x250c15a64da6f7e5, }, r0a1: u288 { limb0: 0x95f4d7c766ce8f325a768fc6, limb1: 0x470a0797ad6c0afcfeb285a5, - limb2: 0x283e4ee1041ce0ef + limb2: 0x283e4ee1041ce0ef, }, r1a0: u288 { limb0: 0x8b4de3ce49b6e957c99abaa3, limb1: 0xb3f53ce50c860f9232a19797, - limb2: 0x178ba1cb5c741f25 + limb2: 0x178ba1cb5c741f25, }, r1a1: u288 { limb0: 0xd0665772d47dcae22fac6c39, limb1: 0x904d57afdd91e177f3f871fb, - limb2: 0x15a3517d026d204a - } + limb2: 0x15a3517d026d204a, + }, }, G2Line { r0a0: u288 { limb0: 0x98d8b0c4adcf27bceb305c2c, limb1: 0x859afa9c7668ed6152d8cba3, - limb2: 0x29e7694f46e3a272 + limb2: 0x29e7694f46e3a272, }, r0a1: u288 { limb0: 0x1d970845365594307ba97556, limb1: 0xd002d93ad793e154afe5b49b, - limb2: 0x12ca77d3fb8eee63 + limb2: 0x12ca77d3fb8eee63, }, r1a0: u288 { limb0: 0x9f2934faefb8268e20d0e337, limb1: 0xbc4b5e1ec056881319f08766, - limb2: 0x2e103461759a9ee4 + limb2: 0x2e103461759a9ee4, }, r1a1: u288 { limb0: 0x7adc6cb87d6b43000e2466b6, limb1: 0x65e5cefa42b25a7ee8925fa6, - limb2: 0x2560115898d7362a - } + limb2: 0x2560115898d7362a, + }, }, G2Line { r0a0: u288 { limb0: 0xe27a38a6ce9cdfb13f9c8286, limb1: 0xeb63852dd134515d2d71cca4, - limb2: 0xfc2f00d7f215816 + limb2: 0xfc2f00d7f215816, }, r0a1: u288 { limb0: 0xfc16f37b3bc5798c84900f79, limb1: 0x83e431402739fa2dec80fe3a, - limb2: 0x282a3a6c64efd070 + limb2: 0x282a3a6c64efd070, }, r1a0: u288 { limb0: 0xa16f756a6c64bced06a5309, limb1: 0x363b474c08a16450efe71ff0, - limb2: 0xa6d4ebe758d6f36 + limb2: 0xa6d4ebe758d6f36, }, r1a1: u288 { limb0: 0x3982faffb05ae6b720c25980, limb1: 0xf3343c79e7656f32b7fcd2c2, - limb2: 0x131f7ba1d69acc0 - } + limb2: 0x131f7ba1d69acc0, + }, }, G2Line { r0a0: u288 { limb0: 0x64d864643668392c0e357cc4, limb1: 0x4c9bf66853f1b287015ab84c, - limb2: 0x2f5f1b92ad7ee4d4 + limb2: 0x2f5f1b92ad7ee4d4, }, r0a1: u288 { limb0: 0xdc33c8da5c575eef6987a0e1, limb1: 0x51cc07c7ef28e1b8d934bc32, - limb2: 0x2358d94a17ec2a44 + limb2: 0x2358d94a17ec2a44, }, r1a0: u288 { limb0: 0xf659845b829bbba363a2497b, limb1: 0x440f348e4e7bed1fb1eb47b2, - limb2: 0x1ad0eaab0fb0bdab + limb2: 0x1ad0eaab0fb0bdab, }, r1a1: u288 { limb0: 0x1944bb6901a1af6ea9afa6fc, limb1: 0x132319df135dedddf5baae67, - limb2: 0x52598294643a4aa - } + limb2: 0x52598294643a4aa, + }, }, G2Line { r0a0: u288 { limb0: 0x76fd94c5e6f17fa6741bd7de, limb1: 0xc2e0831024f67d21013e0bdd, - limb2: 0x21e2af6a43119665 + limb2: 0x21e2af6a43119665, }, r0a1: u288 { limb0: 0xad290eab38c64c0d8b13879b, limb1: 0xdd67f881be32b09d9a6c76a0, - limb2: 0x8000712ce0392f2 + limb2: 0x8000712ce0392f2, }, r1a0: u288 { limb0: 0xd30a46f4ba2dee3c7ace0a37, limb1: 0x3914314f4ec56ff61e2c29e, - limb2: 0x22ae1ba6cd84d822 + limb2: 0x22ae1ba6cd84d822, }, r1a1: u288 { limb0: 0x5d888a78f6dfce9e7544f142, limb1: 0x9439156de974d3fb6d6bda6e, - limb2: 0x106c8f9a27d41a4f - } + limb2: 0x106c8f9a27d41a4f, + }, }, G2Line { r0a0: u288 { limb0: 0xef94f7e14e43d05d5dc2a5db, limb1: 0x4e730ef91962d53d5c144d45, - limb2: 0x20c9f09ee430fc34 + limb2: 0x20c9f09ee430fc34, }, r0a1: u288 { limb0: 0xa26d6c5d462131f93142d52e, limb1: 0xddc49643f51ee6cabe8581db, - limb2: 0x13752caf1cbc8d5c + limb2: 0x13752caf1cbc8d5c, }, r1a0: u288 { limb0: 0xf8c77031a63d9e67f9cc1728, limb1: 0x40ecf28120f0408a120e9543, - limb2: 0x53bc5d43cd08518 + limb2: 0x53bc5d43cd08518, }, r1a1: u288 { limb0: 0x2ff127952b99119f98242817, limb1: 0xe63c504a65debdba3a64a2a3, - limb2: 0xfbcb43f42a22fa6 - } + limb2: 0xfbcb43f42a22fa6, + }, }, G2Line { r0a0: u288 { limb0: 0x630d73532bae9432978d34ff, limb1: 0xe4a093616a16f8e01725dacf, - limb2: 0xd61e1e87abe2d12 + limb2: 0xd61e1e87abe2d12, }, r0a1: u288 { limb0: 0x3d565745a48f3955ef821005, limb1: 0x7cdb83651ff9aa4ef947961d, - limb2: 0x7d5b56b1d0a908f + limb2: 0x7d5b56b1d0a908f, }, r1a0: u288 { limb0: 0xf25332dd3bf9a4dab863f549, limb1: 0xf99418f7ce25f482560b7701, - limb2: 0x17bd8e06468f8145 + limb2: 0x17bd8e06468f8145, }, r1a1: u288 { limb0: 0x4b0de83ffea0e589fc53d3a3, limb1: 0x96bde86047edd08f7d63568b, - limb2: 0x30d5ab74cb92f3 - } + limb2: 0x30d5ab74cb92f3, + }, }, G2Line { r0a0: u288 { limb0: 0x92c09e4796207b802168341b, limb1: 0xd2d9d6acffd7829066cc49ce, - limb2: 0xc89c2d0a7b2c81e + limb2: 0xc89c2d0a7b2c81e, }, r0a1: u288 { limb0: 0x47e3c1cf6cdb6f3efe778c7f, limb1: 0x66b347099b6436794cf062eb, - limb2: 0x18b4ccc64ae0a857 + limb2: 0x18b4ccc64ae0a857, }, r1a0: u288 { limb0: 0x7d5793606a73b2740c71484a, limb1: 0xa0070135ca2dc571b28e3c9c, - limb2: 0x1bc03576e04b94cf + limb2: 0x1bc03576e04b94cf, }, r1a1: u288 { limb0: 0x1ba85b29875e638c10f16c99, limb1: 0x158f2f2acc3c2300bb9f9225, - limb2: 0x42d8a8c36ea97c6 - } + limb2: 0x42d8a8c36ea97c6, + }, }, G2Line { r0a0: u288 { limb0: 0xd97e0326411cc47c8ddf6cc0, limb1: 0xedd2060bcddeab614c518345, - limb2: 0x239a5cadf3237a4c + limb2: 0x239a5cadf3237a4c, }, r0a1: u288 { limb0: 0xcf2af0314a2d2a3bf1547087, limb1: 0x7b7e846df9427bc1372f694e, - limb2: 0x8af0c75ccf976e1 + limb2: 0x8af0c75ccf976e1, }, r1a0: u288 { limb0: 0x6b595ad762f8b423178a5193, limb1: 0x878023a4a74f60fa4c38551d, - limb2: 0xfe35f515dd9c4b0 + limb2: 0xfe35f515dd9c4b0, }, r1a1: u288 { limb0: 0x42ef091d46c538aacf95bd37, limb1: 0xe51c322ac17cc06c2da7a4ef, - limb2: 0x145b8ddb9dd19415 - } + limb2: 0x145b8ddb9dd19415, + }, }, G2Line { r0a0: u288 { limb0: 0x9440ad13408319cecb07087b, limb1: 0x537afc0c0cfe8ff761c24e08, - limb2: 0x48e4ac10081048d + limb2: 0x48e4ac10081048d, }, r0a1: u288 { limb0: 0xa37fb82b03a2c0bb2aa50c4f, limb1: 0xd3797f05c8fb84f6b630dfb, - limb2: 0x2dffde2d6c7e43ff + limb2: 0x2dffde2d6c7e43ff, }, r1a0: u288 { limb0: 0xc55d2eb1ea953275e780e65b, limb1: 0xe141cf680cab57483c02e4c7, - limb2: 0x1b71395ce5ce20ae + limb2: 0x1b71395ce5ce20ae, }, r1a1: u288 { limb0: 0xe4fab521f1212a1d301065de, limb1: 0x4f8d31c78df3dbe4ab721ef2, - limb2: 0x2828f21554706a0e - } + limb2: 0x2828f21554706a0e, + }, }, G2Line { r0a0: u288 { limb0: 0x8cefc2f2af2a3082b790784e, limb1: 0x97ac13b37c6fbfc736a3d456, - limb2: 0x683b1cdffd60acd + limb2: 0x683b1cdffd60acd, }, r0a1: u288 { limb0: 0xa266a8188a8c933dcffe2d02, limb1: 0x18d3934c1838d7bce81b2eeb, - limb2: 0x206ac5cdda42377 + limb2: 0x206ac5cdda42377, }, r1a0: u288 { limb0: 0x90332652437f6e177dc3b28c, limb1: 0x75bd8199433d607735414ee8, - limb2: 0x29d6842d8298cf7e + limb2: 0x29d6842d8298cf7e, }, r1a1: u288 { limb0: 0xadedf46d8ea11932db0018e1, limb1: 0xbc7239ae9d1453258037befb, - limb2: 0x22e7ebdd72c6f7a1 - } + limb2: 0x22e7ebdd72c6f7a1, + }, }, G2Line { r0a0: u288 { limb0: 0x66c7ba638481b515f47a47c, limb1: 0x65816eb626f569ff9a70086, - limb2: 0x1c76016adf110695 + limb2: 0x1c76016adf110695, }, r0a1: u288 { limb0: 0x199bb5ce01eed8832bffe868, limb1: 0xebc07bcbec47e8dacaccaa61, - limb2: 0x300f40e8fb08f35b + limb2: 0x300f40e8fb08f35b, }, r1a0: u288 { limb0: 0x1117803a9b699abce47fc1a8, limb1: 0x9f777c5f5e1fc6e3669c18fb, - limb2: 0x1daa971b94559380 + limb2: 0x1daa971b94559380, }, r1a1: u288 { limb0: 0x5eaa67a030b5bca05aa5fb15, limb1: 0x5c3219862943bebd194b2f50, - limb2: 0x2adfacb421dcf6a7 - } + limb2: 0x2adfacb421dcf6a7, + }, }, G2Line { r0a0: u288 { limb0: 0x74939dcacb9e9e2b711e8447, limb1: 0xf9ad27eef11cbbc8b3ab249e, - limb2: 0x11aab57aeb6656ce + limb2: 0x11aab57aeb6656ce, }, r0a1: u288 { limb0: 0xa9f5cb1a26ce6c0257dd7da9, limb1: 0x8e135e3fac96755521af3f2c, - limb2: 0x276dbb0ae508576b + limb2: 0x276dbb0ae508576b, }, r1a0: u288 { limb0: 0xc3cb26994a44bc35fe3619ba, limb1: 0xec35244c6c46a69c781e84ed, - limb2: 0xc9c12355c7afba0 + limb2: 0xc9c12355c7afba0, }, r1a1: u288 { limb0: 0x886847b97e3bc0b7dec24b8e, limb1: 0x3ef24e4c1bd0f2a40ec42a4f, - limb2: 0x4f303d145c4a8e1 - } + limb2: 0x4f303d145c4a8e1, + }, }, G2Line { r0a0: u288 { limb0: 0x348e15357d9299e582033136, limb1: 0x53578c46b15abb39da35a56e, - limb2: 0x1043b711f86bb33f + limb2: 0x1043b711f86bb33f, }, r0a1: u288 { limb0: 0x9fa230a629b75217f0518e7c, limb1: 0x77012a4bb8751322a406024d, - limb2: 0x121e2d845d972695 + limb2: 0x121e2d845d972695, }, r1a0: u288 { limb0: 0x5600f2d51f21d9dfac35eb10, limb1: 0x6fde61f876fb76611fb86c1a, - limb2: 0x2bf4fbaf5bd0d0df + limb2: 0x2bf4fbaf5bd0d0df, }, r1a1: u288 { limb0: 0xd732aa0b6161aaffdae95324, limb1: 0xb3c4f8c3770402d245692464, - limb2: 0x2a0f1740a293e6f0 - } + limb2: 0x2a0f1740a293e6f0, + }, }, G2Line { r0a0: u288 { limb0: 0x5ee47e2aec7d88c58896ef36, limb1: 0x894bd20abe674c0208e35a93, - limb2: 0x1a42417dc0038755 + limb2: 0x1a42417dc0038755, }, r0a1: u288 { limb0: 0x8bba265a6ba9c5bd6c17788d, limb1: 0x43709c02f70bc99b6d6927cb, - limb2: 0xb456dc8d4bbbd49 + limb2: 0xb456dc8d4bbbd49, }, r1a0: u288 { limb0: 0x368d2f5f3940fe781a54de5c, limb1: 0x611afd760bcdd16d7e5098fd, - limb2: 0x2602a5e773cb12a0 + limb2: 0x2602a5e773cb12a0, }, r1a1: u288 { limb0: 0x70b8eaf8db4b85dec76261af, limb1: 0xd8b6dbb7ad62764263175efc, - limb2: 0x27797f327aa59ac1 - } + limb2: 0x27797f327aa59ac1, + }, }, G2Line { r0a0: u288 { limb0: 0xa9e2efa41aaa98ab59728940, limb1: 0x163c0425f66ce72daef2f53e, - limb2: 0x2feaf1b1770aa7d8 + limb2: 0x2feaf1b1770aa7d8, }, r0a1: u288 { limb0: 0x3bb7afd3c0a79b6ac2c4c063, limb1: 0xee5cb42e8b2bc999e312e032, - limb2: 0x1af2071ae77151c3 + limb2: 0x1af2071ae77151c3, }, r1a0: u288 { limb0: 0x1cef1c0d8956d7ceb2b162e7, limb1: 0x202b4af9e51edfc81a943ded, - limb2: 0xc9e943ffbdcfdcb + limb2: 0xc9e943ffbdcfdcb, }, r1a1: u288 { limb0: 0xe18b1b34798b0a18d5ad43dd, limb1: 0x55e8237731941007099af6b8, - limb2: 0x1472c0290db54042 - } + limb2: 0x1472c0290db54042, + }, }, G2Line { r0a0: u288 { limb0: 0x91080fd5aaedc517d9cd2fa, limb1: 0x3edc290fc4568f8f972c94a6, - limb2: 0x2535859135a1ab3a + limb2: 0x2535859135a1ab3a, }, r0a1: u288 { limb0: 0x626ef15bd0158b028321fabc, limb1: 0x511811c5a645349dc6e8c96, - limb2: 0x5ea2a954421df52 + limb2: 0x5ea2a954421df52, }, r1a0: u288 { limb0: 0x532b1df5972f804688da2382, limb1: 0x1eb61d485a40951340c80738, - limb2: 0x2a8354857d28abef + limb2: 0x2a8354857d28abef, }, r1a1: u288 { limb0: 0x9b597bfbeec11cc3e137309f, limb1: 0xe36ae879e4cd9dd54c6daee4, - limb2: 0x1408ffb495b57485 - } + limb2: 0x1408ffb495b57485, + }, }, G2Line { r0a0: u288 { limb0: 0xb4c7963e0d1dc082de0725e, limb1: 0x375a7a3d765918de24804223, - limb2: 0xf177b77b031596d + limb2: 0xf177b77b031596d, }, r0a1: u288 { limb0: 0x87a7b9c5f10500b0b40d7a1e, limb1: 0x6f234d1dc7f1394b55858810, - limb2: 0x26288146660a3914 + limb2: 0x26288146660a3914, }, r1a0: u288 { limb0: 0xa6308c89cebe40447abf4a9a, limb1: 0x657f0fdda13b1f8ee314c22, - limb2: 0x1701aabc250a9cc7 + limb2: 0x1701aabc250a9cc7, }, r1a1: u288 { limb0: 0x9db9bf660dc77cbe2788a755, limb1: 0xbdf9c1c15a4bd502a119fb98, - limb2: 0x14b4de3d26bd66e1 - } + limb2: 0x14b4de3d26bd66e1, + }, }, G2Line { r0a0: u288 { limb0: 0x53c49c62ca96007e14435295, limb1: 0x85aeb885e4123ca8d3232fdf, - limb2: 0x750017ce108abf3 + limb2: 0x750017ce108abf3, }, r0a1: u288 { limb0: 0xba6bf3e25d370182e4821239, limb1: 0x39de83bf370bd2ba116e8405, - limb2: 0x2b8417a72ba6d940 + limb2: 0x2b8417a72ba6d940, }, r1a0: u288 { limb0: 0xa922f50550d349849b14307b, limb1: 0x569766b6feca6143a5ddde9d, - limb2: 0x2c3c6765b25a01d + limb2: 0x2c3c6765b25a01d, }, r1a1: u288 { limb0: 0x6016011bdc3b506563b0f117, limb1: 0xbab4932beab93dde9b5b8a5c, - limb2: 0x1bf3f698de0ace60 - } + limb2: 0x1bf3f698de0ace60, + }, }, G2Line { r0a0: u288 { limb0: 0x11925aacbbb5a16eea984791, limb1: 0xbd44a32451e02b8dd9f93e3e, - limb2: 0x283613cb34ee08bc + limb2: 0x283613cb34ee08bc, }, r0a1: u288 { limb0: 0x3bcfcf29d56dda88972d2e0d, limb1: 0x6378f8cff10778665c7e0431, - limb2: 0x252094f8a37eb910 + limb2: 0x252094f8a37eb910, }, r1a0: u288 { limb0: 0x3953dbc38e645187bfc5ddab, limb1: 0xfe6c4a8af9eeb0cffcd42f62, - limb2: 0x298a4e0b8e41a39e + limb2: 0x298a4e0b8e41a39e, }, r1a1: u288 { limb0: 0x50df906117b055421a37fee6, limb1: 0x1bcce56c872adfa5e9664632, - limb2: 0x26a263c500419a69 - } + limb2: 0x26a263c500419a69, + }, }, G2Line { r0a0: u288 { limb0: 0xe1aad2fb2c3aa84b9a6beede, limb1: 0x656ebc5334eace7fe81e6f1, - limb2: 0xe5a68ce75fd9809 + limb2: 0xe5a68ce75fd9809, }, r0a1: u288 { limb0: 0x6e38dd74d56cc193ab28c18d, limb1: 0x489b415a49586e4213e4cab4, - limb2: 0x4b5ae00bb5fb138 + limb2: 0x4b5ae00bb5fb138, }, r1a0: u288 { limb0: 0x710bb610c2843aa686ba9adb, limb1: 0x4035dfa11017ac938fb7892d, - limb2: 0x457e16957861fe5 + limb2: 0x457e16957861fe5, }, r1a1: u288 { limb0: 0x61849b4cb86ead8d7c3d94f1, limb1: 0x518f095dd852d4beac73d260, - limb2: 0x1d7fa08317c2a29 - } + limb2: 0x1d7fa08317c2a29, + }, }, G2Line { r0a0: u288 { limb0: 0xb9f05ffda3ee208f990ff3a8, limb1: 0x6201d08440b28ea672b9ea93, - limb2: 0x1ed60e5a5e778b42 + limb2: 0x1ed60e5a5e778b42, }, r0a1: u288 { limb0: 0x8e8468b937854c9c00582d36, limb1: 0x7888fa8b2850a0c555adb743, - limb2: 0xd1342bd01402f29 + limb2: 0xd1342bd01402f29, }, r1a0: u288 { limb0: 0xf5c4c66a974d45ec754b3873, limb1: 0x34322544ed59f01c835dd28b, - limb2: 0x10fe4487a871a419 + limb2: 0x10fe4487a871a419, }, r1a1: u288 { limb0: 0xedf4af2df7c13d6340069716, limb1: 0x8592eea593ece446e8b2c83b, - limb2: 0x12f9280ce8248724 - } + limb2: 0x12f9280ce8248724, + }, }, G2Line { r0a0: u288 { limb0: 0x560d1b6e56d813240424b220, limb1: 0x78cb46b213324960bc655587, - limb2: 0x179c996c56c57046 + limb2: 0x179c996c56c57046, }, r0a1: u288 { limb0: 0x83a2ba9b9558fad3cde16856, limb1: 0x391e9dc2ffb59f519ae1d2b3, - limb2: 0x121abd4bd4ae70f1 + limb2: 0x121abd4bd4ae70f1, }, r1a0: u288 { limb0: 0x90bb5fac7393b89ce8774706, limb1: 0xe528a21777490d65bbb2a59, - limb2: 0x17649453b4e6f63f + limb2: 0x17649453b4e6f63f, }, r1a1: u288 { limb0: 0xa19760f6b2fff23302d184b9, limb1: 0x4a5200e9c1f545101ae7368f, - limb2: 0x8a9b7df65fb2553 - } + limb2: 0x8a9b7df65fb2553, + }, }, G2Line { r0a0: u288 { limb0: 0xe67f72c6d45f1bb04403139f, limb1: 0x9233e2a95d3f3c3ff2f7e5b8, - limb2: 0x1f931e8e4343b028 + limb2: 0x1f931e8e4343b028, }, r0a1: u288 { limb0: 0x20ef53907af71803ce3ca5ca, limb1: 0xd99b6637ee9c73150b503ea4, - limb2: 0x1c9759def8a98ea8 + limb2: 0x1c9759def8a98ea8, }, r1a0: u288 { limb0: 0xa0a3b24c9089d224822fad53, limb1: 0xdfa2081342a7a895062f3e50, - limb2: 0x185e8cf6b3e494e6 + limb2: 0x185e8cf6b3e494e6, }, r1a1: u288 { limb0: 0x8752a12394b29d0ba799e476, limb1: 0x1493421da067a42e7f3d0f8f, - limb2: 0x67e7fa3e3035edf - } + limb2: 0x67e7fa3e3035edf, + }, }, G2Line { r0a0: u288 { limb0: 0x9d2e2392b2116806c3c64bea, limb1: 0xbc4c1ea53ab2140ee4675a09, - limb2: 0x10ce261919b09742 + limb2: 0x10ce261919b09742, }, r0a1: u288 { limb0: 0xf14f468e5ab675c5fc2db1de, limb1: 0x75de3f46adfc7aba3ce6f8f6, - limb2: 0x2bfcacc6c8f0370a + limb2: 0x2bfcacc6c8f0370a, }, r1a0: u288 { limb0: 0xa138d127e5eb4d3aa9e483f7, limb1: 0x44836fa24f3f8db5aa663f2f, - limb2: 0x12a4a7236c8b0338 + limb2: 0x12a4a7236c8b0338, }, r1a1: u288 { limb0: 0xd6fdaced0679398f5aefc808, limb1: 0x41971bc9ddff0109a6d83fb3, - limb2: 0x1a11d202adb75ba9 - } + limb2: 0x1a11d202adb75ba9, + }, }, G2Line { r0a0: u288 { limb0: 0x6d6138c95464e5e774ae7ba0, limb1: 0xe6ca73a5498e4ccd4bb68fc7, - limb2: 0x15bf8aa8ed1beff6 + limb2: 0x15bf8aa8ed1beff6, }, r0a1: u288 { limb0: 0xabd7c55a134ed405b4966d3c, limb1: 0xe69dd725ccc4f9dd537fe558, - limb2: 0x2df4a03e2588a8f1 + limb2: 0x2df4a03e2588a8f1, }, r1a0: u288 { limb0: 0x7cf42890de0355ffc2480d46, limb1: 0xe33c2ad9627bcb4b028c2358, - limb2: 0x2a18767b40de20bd + limb2: 0x2a18767b40de20bd, }, r1a1: u288 { limb0: 0x79737d4a87fab560f3d811c6, limb1: 0xa88fee5629b91721f2ccdcf7, - limb2: 0x2b51c831d3404d5e - } + limb2: 0x2b51c831d3404d5e, + }, }, G2Line { r0a0: u288 { limb0: 0x9c6a908d0b5cceccb463a4e5, limb1: 0xde65283103f2cb5e00e981d0, - limb2: 0x2e94465a4f7f92d5 + limb2: 0x2e94465a4f7f92d5, }, r0a1: u288 { limb0: 0x1ce77bed9f2198292f766f43, limb1: 0x8a65ff87da43dd4b4620ff1, - limb2: 0xa93dc2061770b84 + limb2: 0xa93dc2061770b84, }, r1a0: u288 { limb0: 0xd4fee00640a18279b3b99d6d, limb1: 0xcbfac423ce971d800796de34, - limb2: 0x69fab7bbec03f8d + limb2: 0x69fab7bbec03f8d, }, r1a1: u288 { limb0: 0xdb42c8aa3f576a04e6740b62, limb1: 0xc6c8a94fd3bf4e501d88ab20, - limb2: 0x1b918d10cac3a421 - } + limb2: 0x1b918d10cac3a421, + }, }, G2Line { r0a0: u288 { limb0: 0x9812f6145cf7e949fa207f20, limb1: 0x4061c36b08d5bcd408b14f19, - limb2: 0x8332e08b2eb51ed + limb2: 0x8332e08b2eb51ed, }, r0a1: u288 { limb0: 0xa4a7ae8f65ba180c523cb33, limb1: 0xb71fabbdc78b1128712d32a5, - limb2: 0x2acd1052fd0fefa7 + limb2: 0x2acd1052fd0fefa7, }, r1a0: u288 { limb0: 0x6ea5598e221f25bf27efc618, limb1: 0xa2c2521a6dd8f306f86d6db7, - limb2: 0x13af144288655944 + limb2: 0x13af144288655944, }, r1a1: u288 { limb0: 0xea469c4b390716a6810fff5d, limb1: 0xf8052694d0fdd3f40b596c20, - limb2: 0x24d0ea6c86e48c5c - } + limb2: 0x24d0ea6c86e48c5c, + }, }, G2Line { r0a0: u288 { limb0: 0x2e39be614d904bafea58a8cd, limb1: 0xf53f0a6a20a1f1783b0ea2d0, - limb2: 0x99c451b7bb726d7 + limb2: 0x99c451b7bb726d7, }, r0a1: u288 { limb0: 0x28ec54a4ca8da838800c573d, limb1: 0xb78365fa47b5e192307b7b87, - limb2: 0x2df87aa88e012fec + limb2: 0x2df87aa88e012fec, }, r1a0: u288 { limb0: 0xfb7022881c6a6fdfb18de4aa, limb1: 0xb9bd30f0e93c5b93ad333bab, - limb2: 0x1dd20cbccdeb9924 + limb2: 0x1dd20cbccdeb9924, }, r1a1: u288 { limb0: 0x16d8dfdf790a6be16a0e55ba, limb1: 0x90ab884395509b9a264472d4, - limb2: 0xeaec571657b6e9d - } + limb2: 0xeaec571657b6e9d, + }, }, G2Line { r0a0: u288 { limb0: 0xaf4fdd1b70eabcd772d77aa1, limb1: 0xc88a9826c1e8212a26e0430d, - limb2: 0x203f7c97e4a936aa + limb2: 0x203f7c97e4a936aa, }, r0a1: u288 { limb0: 0xe2f0c2ac8588b3fa35eb69db, limb1: 0x9bdff7e3611ef6dbded516b4, - limb2: 0x301305ee3abf1df8 + limb2: 0x301305ee3abf1df8, }, r1a0: u288 { limb0: 0xdc0fa9fcb28f71f07f9f23ee, limb1: 0x1145e7453873b8c7d35aa6c2, - limb2: 0x6031f980cdf1d85 + limb2: 0x6031f980cdf1d85, }, r1a1: u288 { limb0: 0x3050ba620d13a3ad894b2ce8, limb1: 0xe82eaab452c4c0a973f4d11d, - limb2: 0x66de04fb2119c6f - } + limb2: 0x66de04fb2119c6f, + }, }, G2Line { r0a0: u288 { limb0: 0x6c5b064e3183ed4bd22126b0, limb1: 0x207825012a83cbe1cf0ece60, - limb2: 0x20721baaf24053f9 + limb2: 0x20721baaf24053f9, }, r0a1: u288 { limb0: 0x1142829a0afaf2b457220e6, limb1: 0x9bd5bf8bdeccec5ad7930329, - limb2: 0x48227f6b84c3faa + limb2: 0x48227f6b84c3faa, }, r1a0: u288 { limb0: 0xba19284d0535c775b1bcc0bf, limb1: 0xcb888ba30fb7151496773d0d, - limb2: 0x198d7753b2b23cab + limb2: 0x198d7753b2b23cab, }, r1a1: u288 { limb0: 0x5c4ec7550d765e8206535706, limb1: 0x56764841e2adda1dacf343c2, - limb2: 0x190bf2077e521671 - } + limb2: 0x190bf2077e521671, + }, }, G2Line { r0a0: u288 { limb0: 0xce78fc6505db036c10fac771, limb1: 0x61f8c0bc7f60ad6415d5e419, - limb2: 0x59009c5cf9ea663 + limb2: 0x59009c5cf9ea663, }, r0a1: u288 { limb0: 0xb3b3f697fc34d64ba053b914, limb1: 0x317af5815ce5bfffc5a6bc97, - limb2: 0x23f97fee4deda847 + limb2: 0x23f97fee4deda847, }, r1a0: u288 { limb0: 0xf559e09cf7a02674ac2fa642, limb1: 0x4fa7548b79cdd054e203689c, - limb2: 0x2173b379d546fb47 + limb2: 0x2173b379d546fb47, }, r1a1: u288 { limb0: 0x758feb5b51caccff9da0f78f, limb1: 0xd7f37a1008233b74c4894f55, - limb2: 0x917c640b4b9627e - } + limb2: 0x917c640b4b9627e, + }, }, G2Line { r0a0: u288 { limb0: 0x44238d6942472eaaaa3c0148, limb1: 0x423cad960738a7343451af0a, - limb2: 0x6d7ac995669fbe6 + limb2: 0x6d7ac995669fbe6, }, r0a1: u288 { limb0: 0x21d741021875ef3da0560516, limb1: 0x3680532e586a90e40215d90e, - limb2: 0x1b91e2d44c10969a + limb2: 0x1b91e2d44c10969a, }, r1a0: u288 { limb0: 0x35753f4be838d08ac282e162, limb1: 0x9cc59d882fa9d2c39d2ac29d, - limb2: 0x68249cbe65852ed + limb2: 0x68249cbe65852ed, }, r1a1: u288 { limb0: 0x33f63b6378843d4aa5d24138, limb1: 0xc55953e8ba9dda553c73f3ba, - limb2: 0x17f2ff3634a5ca7 - } + limb2: 0x17f2ff3634a5ca7, + }, }, G2Line { r0a0: u288 { limb0: 0x72548e0d946b796842cfecd8, limb1: 0x78b54b355e3c26476b0fab82, - limb2: 0x2dc9f32c90b6ba31 + limb2: 0x2dc9f32c90b6ba31, }, r0a1: u288 { limb0: 0xa943be83a6fc90414320753b, limb1: 0xd708fde97241095833ce5a08, - limb2: 0x142111e6a73d2e82 + limb2: 0x142111e6a73d2e82, }, r1a0: u288 { limb0: 0xc79e8d5465ec5f28781e30a2, limb1: 0x697fb9430b9ad050ced6cce, - limb2: 0x1a9d647149842c53 + limb2: 0x1a9d647149842c53, }, r1a1: u288 { limb0: 0x9bab496952559362586725cd, limb1: 0xbe78e5a416d9665be64806de, - limb2: 0x147b550afb4b8b84 - } + limb2: 0x147b550afb4b8b84, + }, }, G2Line { r0a0: u288 { limb0: 0x9e86dd914a2f547b23018fed, limb1: 0xf7705b16ccf6e1f5eb2c0ab3, - limb2: 0x393f6b3257d8b29 + limb2: 0x393f6b3257d8b29, }, r0a1: u288 { limb0: 0x501fcdb81a813fe07121b423, limb1: 0x87f73c02d3918e27053880f5, - limb2: 0x5250523c8eefc8e + limb2: 0x5250523c8eefc8e, }, r1a0: u288 { limb0: 0xb92c92400b5ff996ac4cb9d8, limb1: 0xa121f8c7742792c161dc87fa, - limb2: 0x1ee9797cbb430d7f + limb2: 0x1ee9797cbb430d7f, }, r1a1: u288 { limb0: 0x4db126149d0e1ee2fe5cb1b6, limb1: 0x7e31c6486612929a0807aa58, - limb2: 0x5fa8f994639085b - } + limb2: 0x5fa8f994639085b, + }, }, G2Line { r0a0: u288 { limb0: 0x1422e11013fe6cdd7f843391, limb1: 0xfb96092ab69fc530e27d8d8e, - limb2: 0xe39e04564fedd0 + limb2: 0xe39e04564fedd0, }, r0a1: u288 { limb0: 0xbd4e81e3b4db192e11192788, limb1: 0x805257d3c2bdbc344a15ce0d, - limb2: 0x10ddd4f47445106b + limb2: 0x10ddd4f47445106b, }, r1a0: u288 { limb0: 0x87ab7f750b693ec75bce04e1, limb1: 0x128ba38ebed26d74d26e4d69, - limb2: 0x2f1d22a64c983ab8 + limb2: 0x2f1d22a64c983ab8, }, r1a1: u288 { limb0: 0x74207c17f5c8335183649f77, limb1: 0x7144cd3520ac2e1be3204133, - limb2: 0xb38d0645ab3499d - } + limb2: 0xb38d0645ab3499d, + }, }, G2Line { r0a0: u288 { limb0: 0xcceab2ae34bc8360cb9c77f0, limb1: 0xebd0f65b0fe57d753fcf82c0, - limb2: 0x27251ea468d295d5 + limb2: 0x27251ea468d295d5, }, r0a1: u288 { limb0: 0xd384a0823772729f248e788b, limb1: 0xbb40fc3eea3543a92de84fd2, - limb2: 0x28d3f25248c1dad + limb2: 0x28d3f25248c1dad, }, r1a0: u288 { limb0: 0xddf52b578bca93a0312499e, limb1: 0x31354bfce389ece001a328fb, - limb2: 0xa6e91740fcee43f + limb2: 0xa6e91740fcee43f, }, r1a1: u288 { limb0: 0x8aa8d994bf9d2cdbdcee738, limb1: 0x1989e823e5c2ae514e38943a, - limb2: 0x255d5d5428a217eb - } + limb2: 0x255d5d5428a217eb, + }, }, G2Line { r0a0: u288 { limb0: 0x49173a889c697b0ab07f35bc, limb1: 0xdcffb65f4b4c21ced6b623af, - limb2: 0x1366d12ee6022f7b + limb2: 0x1366d12ee6022f7b, }, r0a1: u288 { limb0: 0x285fdce362f7a79b89c49b5c, limb1: 0xae9358c8eaf26e2fed7353f5, - limb2: 0x21c91fefaf522b5f + limb2: 0x21c91fefaf522b5f, }, r1a0: u288 { limb0: 0x748798f96436e3b18c64964a, limb1: 0xfc3bb221103d3966d0510599, - limb2: 0x167859ae2ebc5e27 + limb2: 0x167859ae2ebc5e27, }, r1a1: u288 { limb0: 0xe3b55b05bb30e23fa7eba05b, limb1: 0xa5fc8b7f7bc6abe91c90ddd5, - limb2: 0xe0da83c6cdebb5a - } + limb2: 0xe0da83c6cdebb5a, + }, }, G2Line { r0a0: u288 { limb0: 0x30a4abff5957209783681bfb, limb1: 0x82d868d5ca421e4f1a0daf79, - limb2: 0x1ba96ef98093d510 + limb2: 0x1ba96ef98093d510, }, r0a1: u288 { limb0: 0xd9132c7f206a6c036a39e432, limb1: 0x8a2dfb94aba29a87046110b8, - limb2: 0x1fad2fd5e5e37395 + limb2: 0x1fad2fd5e5e37395, }, r1a0: u288 { limb0: 0x76b136dc82b82e411b2c44f6, limb1: 0xe405f12052823a54abb9ea95, - limb2: 0xf125ba508c26ddc + limb2: 0xf125ba508c26ddc, }, r1a1: u288 { limb0: 0x1bae07f5f0cc48e5f7aac169, limb1: 0x47d1288d741496a960e1a979, - limb2: 0xa0911f6cc5eb84e - } + limb2: 0xa0911f6cc5eb84e, + }, }, G2Line { r0a0: u288 { limb0: 0x2cedd7b822bb6d72c59dfa7a, limb1: 0x84c3a618db0cf89ec14e5fb5, - limb2: 0x2a032b4f9f60bfc7 + limb2: 0x2a032b4f9f60bfc7, }, r0a1: u288 { limb0: 0x250e463f1e3d31dce9c37bf, limb1: 0x69d332c194b3ce930a4150e2, - limb2: 0x2347156daafd5e1a + limb2: 0x2347156daafd5e1a, }, r1a0: u288 { limb0: 0x4e97ff927721598da12e31ec, limb1: 0x8042e8a2b014700940b5264e, - limb2: 0x183c0e81cc372ab3 + limb2: 0x183c0e81cc372ab3, }, r1a1: u288 { limb0: 0x83eba063918614c4121b187, limb1: 0x75f40ab2be04a52fb200b36f, - limb2: 0x5f483746bdaece2 - } + limb2: 0x5f483746bdaece2, + }, }, G2Line { r0a0: u288 { limb0: 0xfe150b2512bf45c64901f12, limb1: 0xdd621a49d53caad574afcf5a, - limb2: 0x1ec7fbdca257edad + limb2: 0x1ec7fbdca257edad, }, r0a1: u288 { limb0: 0xa3468b881959338092d60e19, limb1: 0xc9d96474e9832f464a4115c4, - limb2: 0x1dd7fd2ab01107b4 + limb2: 0x1dd7fd2ab01107b4, }, r1a0: u288 { limb0: 0x28bfd0fc73f328af71c3b254, limb1: 0x74bd6697ffcf7920a2c9b1a5, - limb2: 0x2001688da3f94c7e + limb2: 0x2001688da3f94c7e, }, r1a1: u288 { limb0: 0x8c3527564c0a00f1f16fb0c2, limb1: 0xed1d021d7a4787e888cb997b, - limb2: 0xd9e4de1708c9a91 - } + limb2: 0xd9e4de1708c9a91, + }, }, G2Line { r0a0: u288 { limb0: 0x2e7b3a5a35456f42e87968e6, limb1: 0xb4303f5093c3a460674a2fcd, - limb2: 0x2b5331f03b8fa15f + limb2: 0x2b5331f03b8fa15f, }, r0a1: u288 { limb0: 0x7cea371d64d8bd0fc5b9427e, limb1: 0x76208e15fc175e352c274fbe, - limb2: 0x5ceb46647d41234 + limb2: 0x5ceb46647d41234, }, r1a0: u288 { limb0: 0x6cdac06bfcf041a30435a560, limb1: 0x15a7ab7ed1df6d7ed12616a6, - limb2: 0x2520b0f462ad4724 + limb2: 0x2520b0f462ad4724, }, r1a1: u288 { limb0: 0xe8b65c5fff04e6a19310802f, limb1: 0xc96324a563d5dab3cd304c64, - limb2: 0x230de25606159b1e - } + limb2: 0x230de25606159b1e, + }, }, G2Line { r0a0: u288 { limb0: 0xf953e7f8e47ce2feb7e3331c, limb1: 0xbb5cbf05aeba907f3a605f71, - limb2: 0x73d64f13e358043 + limb2: 0x73d64f13e358043, }, r0a1: u288 { limb0: 0xdf7e97bb7b23c267a9715500, limb1: 0x14a6f0edaf642eac5e0cbcd2, - limb2: 0x21b655eb924818ce + limb2: 0x21b655eb924818ce, }, r1a0: u288 { limb0: 0x4de920901bce2e75be780d7a, limb1: 0x887987f8923a8866847f7dcc, - limb2: 0x1e427aaef5e99b1 + limb2: 0x1e427aaef5e99b1, }, r1a1: u288 { limb0: 0x407881b650e281edadf6da62, limb1: 0x4e126117bdced59d7ecc3971, - limb2: 0x212f38388dc96cc2 - } + limb2: 0x212f38388dc96cc2, + }, }, G2Line { r0a0: u288 { limb0: 0xb2236e5462d1e11842039bb5, limb1: 0x8d746dd0bb8bb2a455d505c1, - limb2: 0x2fd3f4a905e027ce + limb2: 0x2fd3f4a905e027ce, }, r0a1: u288 { limb0: 0x3d6d9836d71ddf8e3b741b09, limb1: 0x443f16e368feb4cb20a5a1ab, - limb2: 0xb5f19dda13bdfad + limb2: 0xb5f19dda13bdfad, }, r1a0: u288 { limb0: 0x4e5612c2b64a1045a590a938, limb1: 0xbca215d075ce5769db2a29d7, - limb2: 0x161e651ebdfb5065 + limb2: 0x161e651ebdfb5065, }, r1a1: u288 { limb0: 0xc02a55b6685351f24e4bf9c7, limb1: 0x4134240119050f22bc4991c8, - limb2: 0x300bd9f8d76bbc11 - } + limb2: 0x300bd9f8d76bbc11, + }, }, G2Line { r0a0: u288 { limb0: 0xe9296a3a3aed4c4143d2e0ba, limb1: 0x7de973514b499b2da739b3e6, - limb2: 0x1b4b807986fcdee0 + limb2: 0x1b4b807986fcdee0, }, r0a1: u288 { limb0: 0xb9295fecce961afe0c5e6dad, limb1: 0xc4e30c322bcae6d526c4de95, - limb2: 0x1fee592f513ed6b2 + limb2: 0x1fee592f513ed6b2, }, r1a0: u288 { limb0: 0x7245f5e5e803d0d448fafe21, limb1: 0xcbdc032ecb3b7a63899c53d0, - limb2: 0x1fde9ffc17accfc3 + limb2: 0x1fde9ffc17accfc3, }, r1a1: u288 { limb0: 0x8edcc1b2fdd35c87a7814a87, limb1: 0x99d54b5c2fe171c49aa9cb08, - limb2: 0x130ef740e416a6fe - } + limb2: 0x130ef740e416a6fe, + }, }, G2Line { r0a0: u288 { limb0: 0xf75ee16c01ae962ee2ba9a3, limb1: 0x2035c9157b0caf951219f921, - limb2: 0x713e4b2a45dc294 + limb2: 0x713e4b2a45dc294, }, r0a1: u288 { limb0: 0xbf4694f5ae7772c7305a7859, limb1: 0xf3c0d398bd086f2459e692d, - limb2: 0x2866975b159e1ca4 + limb2: 0x2866975b159e1ca4, }, r1a0: u288 { limb0: 0xedc381f2352b0c387c45f492, limb1: 0x9023cfa067a8b300149e0b81, - limb2: 0x1d2ded23f6b7f2ad + limb2: 0x1d2ded23f6b7f2ad, }, r1a1: u288 { limb0: 0x316a42f51539cd79f7d118aa, limb1: 0x84ab6dd38b05c1b031210896, - limb2: 0x2258ebc39bd5474a - } + limb2: 0x2258ebc39bd5474a, + }, }, G2Line { r0a0: u288 { limb0: 0x7c2064c324eb0e930d764c1d, limb1: 0x99228fa2e629a94bfdf42f3f, - limb2: 0x272dd78d94c01250 + limb2: 0x272dd78d94c01250, }, r0a1: u288 { limb0: 0x4ee36a1f37c4689c1996029e, limb1: 0x9f03d366c3af0d7d8b7e94be, - limb2: 0x1099dace57e00d7a + limb2: 0x1099dace57e00d7a, }, r1a0: u288 { limb0: 0xe67ce9c7f6c61221b32698cc, limb1: 0xbfa5ff997788d812a83ff6f3, - limb2: 0xc8a9303dbb80ebd + limb2: 0xc8a9303dbb80ebd, }, r1a1: u288 { limb0: 0x65f9ae631279f79bf59a3c46, limb1: 0xc5dd2a6c8a8b6bbb78abd671, - limb2: 0x1a40c95acd75de89 - } + limb2: 0x1a40c95acd75de89, + }, }, G2Line { r0a0: u288 { limb0: 0x537ecf0916b38aeea21d4e47, limb1: 0x181a00de27ba4be1b380d6c8, - limb2: 0x8c2fe2799316543 + limb2: 0x8c2fe2799316543, }, r0a1: u288 { limb0: 0xe68fff5ee73364fff3fe403b, limb1: 0x7b8685c8a725ae79cfac8f99, - limb2: 0x7b4be349766aba4 + limb2: 0x7b4be349766aba4, }, r1a0: u288 { limb0: 0xdf7c93c0095545ad5e5361ea, limb1: 0xce316c76191f1e7cd7d03f3, - limb2: 0x22ea21f18ddec947 + limb2: 0x22ea21f18ddec947, }, r1a1: u288 { limb0: 0xa19620b4c32db68cc1c2ef0c, limb1: 0xffa1e4be3bed5faba2ccbbf4, - limb2: 0x16fc78a64c45f518 - } + limb2: 0x16fc78a64c45f518, + }, }, G2Line { r0a0: u288 { limb0: 0x2b6af476f520b4bf804415bc, limb1: 0xd949ee7f9e8874698b090fca, - limb2: 0x34db5e5ec2180cf + limb2: 0x34db5e5ec2180cf, }, r0a1: u288 { limb0: 0x3e06a324f038ac8abcfb28d7, limb1: 0xc2e6375b7a83c0a0145f8942, - limb2: 0x2247e79161483763 + limb2: 0x2247e79161483763, }, r1a0: u288 { limb0: 0x708773d8ae3a13918382fb9d, limb1: 0xaf83f409556e32aa85ae92bf, - limb2: 0x9af0a924ae43ba + limb2: 0x9af0a924ae43ba, }, r1a1: u288 { limb0: 0xa6fded212ff5b2ce79755af7, limb1: 0x55a2adfb2699ef5de6581b21, - limb2: 0x2476e83cfe8daa5c - } + limb2: 0x2476e83cfe8daa5c, + }, }, G2Line { r0a0: u288 { limb0: 0x5492a3af17b50935147c96c3, limb1: 0xdb9e5016a9bf37e1d190de7f, - limb2: 0x118c52b66aa91af5 + limb2: 0x118c52b66aa91af5, }, r0a1: u288 { limb0: 0x383ff10030da0a1de2b199ff, limb1: 0x87473c4982f35e30348edcd8, - limb2: 0x7b7841e2d12de72 + limb2: 0x7b7841e2d12de72, }, r1a0: u288 { limb0: 0x5becb840142c3a612e4e9fb5, limb1: 0x395ed9a8e637d790717ea70a, - limb2: 0x3075d6374c8e247 + limb2: 0x3075d6374c8e247, }, r1a1: u288 { limb0: 0x18d5882f3227369868fb1c0d, limb1: 0x8d839bdccca10b584bd1cfb8, - limb2: 0x1d3ed3be5b633848 - } + limb2: 0x1d3ed3be5b633848, + }, }, G2Line { r0a0: u288 { limb0: 0x2c12ab2f338cca45640fedfb, limb1: 0x41502b84b9a66e10102be299, - limb2: 0x19dbe91c50592fb + limb2: 0x19dbe91c50592fb, }, r0a1: u288 { limb0: 0x343be7cac3ad44182acb33fa, limb1: 0xf3aa251c1a310cd439e988c, - limb2: 0x1138da1418252cd + limb2: 0x1138da1418252cd, }, r1a0: u288 { limb0: 0xe7a3c13336a3bd1ce8bb3bb7, limb1: 0x502e66f432b52caca3602ad5, - limb2: 0x17e6f3b7bc285d9 + limb2: 0x17e6f3b7bc285d9, }, r1a1: u288 { limb0: 0x2b93c79b052f469f471affd1, limb1: 0xeaf5be1f527545bbb7a3adb3, - limb2: 0x8ce6d14105d6914 - } + limb2: 0x8ce6d14105d6914, + }, }, G2Line { r0a0: u288 { limb0: 0x1c4759bcf7c607fe3f839d4d, limb1: 0xea91f311da73327e2ed40785, - limb2: 0x2017052c72360f42 + limb2: 0x2017052c72360f42, }, r0a1: u288 { limb0: 0x38cf8a4368c0709980199fc3, limb1: 0xfc9047885996c19e84d7d4ea, - limb2: 0x1795549eb0b97783 + limb2: 0x1795549eb0b97783, }, r1a0: u288 { limb0: 0xb70f7ecfbec0eaf46845e8cc, limb1: 0x9ddf274c2a9f89ea3bc4d66f, - limb2: 0xcc6f106abfcf377 + limb2: 0xcc6f106abfcf377, }, r1a1: u288 { limb0: 0xf6ff11ce29186237468c2698, limb1: 0x5c629ad27bb61e4826bb1313, - limb2: 0x2014c6623f1fb55e - } + limb2: 0x2014c6623f1fb55e, + }, }, G2Line { r0a0: u288 { limb0: 0xd1656f114bf3af72715dce80, limb1: 0x3924b0610de00ad47aab618b, - limb2: 0xdaf00e1541db71b + limb2: 0xdaf00e1541db71b, }, r0a1: u288 { limb0: 0xb3da842bd6ed2cea6a87db4, limb1: 0x58009f786c9b9e946837049b, - limb2: 0x10ec13144c9e560e + limb2: 0x10ec13144c9e560e, }, r1a0: u288 { limb0: 0x9a584d0f409607603126ee10, limb1: 0x1fa1a9bc1885cf6833992a19, - limb2: 0x2c1aa3312c27750f + limb2: 0x2c1aa3312c27750f, }, r1a1: u288 { limb0: 0x5f0eefa5064d95ff567b056e, limb1: 0xc9e066a9811570706974d0e2, - limb2: 0x51ad56ec3cb6b21 - } + limb2: 0x51ad56ec3cb6b21, + }, }, G2Line { r0a0: u288 { limb0: 0xc648054e4b6134bbfd68487f, limb1: 0xdf0506dad3f3d098c13a6386, - limb2: 0x26bebeb6f46c2e8c + limb2: 0x26bebeb6f46c2e8c, }, r0a1: u288 { limb0: 0x9d0cdb28a94204776c6e6ba6, limb1: 0x303f02dfe619752b1607951d, - limb2: 0x1127d8b17ef2c064 + limb2: 0x1127d8b17ef2c064, }, r1a0: u288 { limb0: 0xe34ca1188b8db4e4694a696c, limb1: 0x243553602481d9b88ca1211, - limb2: 0x1f8ef034831d0132 + limb2: 0x1f8ef034831d0132, }, r1a1: u288 { limb0: 0xe3a5dfb1785690dad89ad10c, limb1: 0xd690b583ace24ba033dd23e0, - limb2: 0x405d0709e110c03 - } + limb2: 0x405d0709e110c03, + }, }, G2Line { r0a0: u288 { limb0: 0x464e5f2bfc2c82c54b03961, limb1: 0x951289dda0d75515cf27d76f, - limb2: 0x18624def97e8d755 + limb2: 0x18624def97e8d755, }, r0a1: u288 { limb0: 0x5f34b49ccba30273ef5b21d3, limb1: 0x2a5284c7f0a2edbd91cffc38, - limb2: 0x152ee08fed176eb9 + limb2: 0x152ee08fed176eb9, }, r1a0: u288 { limb0: 0x754bde9c6963db1bd70f1b6c, limb1: 0xdcd8ae0734741dc7f4c0963d, - limb2: 0x1bdcdd889e8b7986 + limb2: 0x1bdcdd889e8b7986, }, r1a1: u288 { limb0: 0xc256707edf7a02779c5570dd, limb1: 0x4e462d0c425dc89184d0d1e, - limb2: 0x10a877ec918e3670 - } + limb2: 0x10a877ec918e3670, + }, }, G2Line { r0a0: u288 { limb0: 0x72cc2cef2785ce4ff4e9b7af, limb1: 0x60ed5b9c207d7f31fb6234ab, - limb2: 0x1bb17a4bc7b643ed + limb2: 0x1bb17a4bc7b643ed, }, r0a1: u288 { limb0: 0x9424eb15b502cde7927c7530, limb1: 0xa0e33edbbaa9de8e9c206059, - limb2: 0x2b9a3a63bbf4af99 + limb2: 0x2b9a3a63bbf4af99, }, r1a0: u288 { limb0: 0x423811cb6386e606cf274a3c, limb1: 0x8adcc0e471ecfe526f56dc39, - limb2: 0x9169a8660d14368 + limb2: 0x9169a8660d14368, }, r1a1: u288 { limb0: 0xf616c863890c3c8e33127931, limb1: 0xcc9414078a6da6989dae6b91, - limb2: 0x594d6a7e6b34ab2 - } + limb2: 0x594d6a7e6b34ab2, + }, }, G2Line { r0a0: u288 { limb0: 0x6a5715d35321ab7e2303801a, limb1: 0xb3a10a033b8af85876120d84, - limb2: 0x12a279df5f1f2e80 + limb2: 0x12a279df5f1f2e80, }, r0a1: u288 { limb0: 0x280110399cdfd7e0a95aaf62, limb1: 0xeaa755ebaf7edec0629ff916, - limb2: 0x50373a52da2ad5f + limb2: 0x50373a52da2ad5f, }, r1a0: u288 { limb0: 0x835e28ff4627911ddd0ba983, limb1: 0x975aef2b304e4200963bd7e3, - limb2: 0x2cfb54689f69ce06 + limb2: 0x2cfb54689f69ce06, }, r1a1: u288 { limb0: 0xf3002234938e41787edf31bd, limb1: 0x596978afc835ba1b55a81785, - limb2: 0x6bd7658f61e8020 - } + limb2: 0x6bd7658f61e8020, + }, }, G2Line { r0a0: u288 { limb0: 0xf2d619ae78049bf9141c35cf, limb1: 0x717f8b10d469a1ee2d91f191, - limb2: 0x2c72c82fa8afe345 + limb2: 0x2c72c82fa8afe345, }, r0a1: u288 { limb0: 0xb89321223b82a2dc793c0185, limb1: 0x71506a0cf4adb8e51bb7b759, - limb2: 0x2c13b92a98651492 + limb2: 0x2c13b92a98651492, }, r1a0: u288 { limb0: 0x4947ef2c89276f77f9d20942, limb1: 0xb454d68685ab6b6976e71ec5, - limb2: 0x19a938d0e78a3593 + limb2: 0x19a938d0e78a3593, }, r1a1: u288 { limb0: 0xbe883eb119609b489c01c905, limb1: 0xaa06779922047f52feac5ce6, - limb2: 0x76977a3015dc164 - } + limb2: 0x76977a3015dc164, + }, }, G2Line { r0a0: u288 { limb0: 0x43a96a588005043a46aadf2c, limb1: 0xa37b89d8a1784582f0c52126, - limb2: 0x22e9ef3f5d4b2297 + limb2: 0x22e9ef3f5d4b2297, }, r0a1: u288 { limb0: 0x8c6f6d8474cf6e5a58468a31, limb1: 0xeb1ce6ac75930ef1c79b07e5, - limb2: 0xf49839a756c7230 + limb2: 0xf49839a756c7230, }, r1a0: u288 { limb0: 0x82b84693a656c8e8c1f962fd, limb1: 0x2c1c8918ae80282208b6b23d, - limb2: 0x14d3504b5c8d428f + limb2: 0x14d3504b5c8d428f, }, r1a1: u288 { limb0: 0x60ef4f4324d5619b60a3bb84, limb1: 0x6d3090caefeedbc33638c77a, - limb2: 0x159264c370c89fec - } + limb2: 0x159264c370c89fec, + }, }, G2Line { r0a0: u288 { limb0: 0x9b53ea01ae2d6587ef6469bf, limb1: 0x51d2d907815a064277b460d3, - limb2: 0x130bfb2966bccfcf + limb2: 0x130bfb2966bccfcf, }, r0a1: u288 { limb0: 0x628e9808d554d47dd88c80f5, limb1: 0xc7b44de52f919e749a8af471, - limb2: 0xf6a26faf4aee11a + limb2: 0xf6a26faf4aee11a, }, r1a0: u288 { limb0: 0x73ce5d8301bbc53ee6e8239f, limb1: 0x31b030a8af445bd7d8e95c79, - limb2: 0x295f54e9eb9fba58 + limb2: 0x295f54e9eb9fba58, }, r1a1: u288 { limb0: 0x535dbb6d10b88b2fd30f0c23, limb1: 0xa016d54da5f9a46174614196, - limb2: 0x10dfe73e58fcb4bd - } + limb2: 0x10dfe73e58fcb4bd, + }, }, G2Line { r0a0: u288 { limb0: 0x652eaf09821887db0de1f147, limb1: 0x75229b9972e31ba2e226bbcf, - limb2: 0x161e5e72bf925c6d + limb2: 0x161e5e72bf925c6d, }, r0a1: u288 { limb0: 0x856aa774394ef561669d1eab, limb1: 0xdd46a5dd8e6c4d775d36356d, - limb2: 0x2d287f12b2a6700d + limb2: 0x2d287f12b2a6700d, }, r1a0: u288 { limb0: 0x67ffd864a18bb2d4488c5d6a, limb1: 0x8d0ea9ad86d841741fe1d284, - limb2: 0x43189ddb2f1e1cd + limb2: 0x43189ddb2f1e1cd, }, r1a1: u288 { limb0: 0xf42602a91d620c7003644ce4, limb1: 0x7d9f27e32a63153af2c65415, - limb2: 0x1ee85832249a6300 - } + limb2: 0x1ee85832249a6300, + }, }, ]; diff --git a/src/contracts/universal_ecip/Scarb.toml b/src/contracts/universal_ecip/Scarb.toml index cf17c2d9..6c66b4b1 100644 --- a/src/contracts/universal_ecip/Scarb.toml +++ b/src/contracts/universal_ecip/Scarb.toml @@ -5,7 +5,7 @@ edition = "2024_07" [dependencies] garaga = { path = "../.." } -starknet = "2.8.2" +starknet = "2.9.1" [cairo] sierra-replace-ids = false diff --git a/src/contracts/universal_ecip/src/lib.cairo b/src/contracts/universal_ecip/src/lib.cairo index 20f9c947..5152435b 100644 --- a/src/contracts/universal_ecip/src/lib.cairo +++ b/src/contracts/universal_ecip/src/lib.cairo @@ -10,7 +10,7 @@ trait IUniversalECIP { derive_point_from_x_hint: DerivePointFromXHint, points: Span, scalars: Span, - curve_index: usize + curve_index: usize, ) -> G1Point; fn msm_g1_u128( @@ -20,7 +20,7 @@ trait IUniversalECIP { derive_point_from_x_hint: DerivePointFromXHint, points: Span, scalars: Span, - curve_index: usize + curve_index: usize, ) -> G1Point; } @@ -41,7 +41,7 @@ mod UniversalECIP { derive_point_from_x_hint: DerivePointFromXHint, points: Span, scalars: Span, - curve_index: usize + curve_index: usize, ) -> G1Point { msm_g1( scalars_digits_decompositions, @@ -49,7 +49,7 @@ mod UniversalECIP { derive_point_from_x_hint, points, scalars, - curve_index + curve_index, ) } @@ -60,7 +60,7 @@ mod UniversalECIP { derive_point_from_x_hint: DerivePointFromXHint, points: Span, scalars: Span, - curve_index: usize + curve_index: usize, ) -> G1Point { msm_g1_u128( scalars_digits_decompositions, @@ -68,7 +68,7 @@ mod UniversalECIP { derive_point_from_x_hint, points, scalars, - curve_index + curve_index, ) } } diff --git a/src/src/basic_field_ops.cairo b/src/src/basic_field_ops.cairo index ed9e5b01..1e61ecc8 100644 --- a/src/src/basic_field_ops.cairo +++ b/src/src/basic_field_ops.cairo @@ -1,7 +1,7 @@ use core::circuit::{ RangeCheck96, AddMod, MulMod, u384, u96, CircuitElement, CircuitInput, circuit_add, circuit_sub, circuit_mul, circuit_inverse, EvalCircuitResult, EvalCircuitTrait, CircuitOutputsTrait, - CircuitModulus, AddInputResultTrait, CircuitInputs, CircuitInputAccumulator + CircuitModulus, AddInputResultTrait, CircuitInputs, CircuitInputAccumulator, }; use garaga::core::circuit::AddInputResultTrait2; use garaga::utils::hashing::hades_permutation; @@ -15,14 +15,11 @@ const POW_2_64_252: felt252 = 0x10000000000000000; const POW_2_256_384: u384 = u384 { limb0: 0x0, limb1: 0x0, limb2: 0x10000000000000000, limb3: 0x0 }; -fn neg_mod_p(a: u384, p: u384) -> u384 { +pub fn neg_mod_p(a: u384, modulus: CircuitModulus) -> u384 { let in1 = CircuitElement::> {}; let in2 = CircuitElement::> {}; let neg = circuit_sub(in1, in2); - let modulus = TryInto::<_, CircuitModulus>::try_into([p.limb0, p.limb1, p.limb2, p.limb3]) - .unwrap(); - let outputs = (neg,) .new_inputs() .next_2([0, 0, 0, 0]) @@ -34,7 +31,7 @@ fn neg_mod_p(a: u384, p: u384) -> u384 { return outputs.get_output(neg); } -fn is_even_u384(a: u384) -> bool { +pub fn is_even_u384(a: u384) -> bool { let in1 = CircuitElement::> {}; let modulus = TryInto::<_, CircuitModulus>::try_into([2, 0, 0, 0]).unwrap(); let outputs = (in1,).new_inputs().next_2(a).done_2().eval(modulus).unwrap(); @@ -46,7 +43,7 @@ fn is_even_u384(a: u384) -> bool { } #[inline(always)] -fn compute_yInvXnegOverY_BN254(x: u384, y: u384) -> (u384, u384) { +pub fn compute_yInvXnegOverY_BN254(x: u384, y: u384) -> (u384, u384) { let in1 = CircuitElement::> {}; let in2 = CircuitElement::> {}; let in3 = CircuitElement::> {}; @@ -69,7 +66,7 @@ fn compute_yInvXnegOverY_BN254(x: u384, y: u384) -> (u384, u384) { } #[inline(always)] -fn compute_yInvXnegOverY_BLS12_381(x: u384, y: u384) -> (u384, u384) { +pub fn compute_yInvXnegOverY_BLS12_381(x: u384, y: u384) -> (u384, u384) { let in1 = CircuitElement::> {}; let in2 = CircuitElement::> {}; let in3 = CircuitElement::> {}; @@ -95,7 +92,7 @@ fn compute_yInvXnegOverY_BLS12_381(x: u384, y: u384) -> (u384, u384) { // u512 = low_256 + high_256 * 2^256 // u512 % p = (low_256 + high_256 * 2^256) % p // = (low_256 % p + high_256 * 2^256 % p) % p -fn u512_mod_bls12_381(a_high: [u32; 8], a_low: [u32; 8]) -> u384 { +pub fn u512_mod_bls12_381(a_high: [u32; 8], a_low: [u32; 8]) -> u384 { let low = CircuitElement::> {}; let high = CircuitElement::> {}; let shift = CircuitElement::> {}; @@ -103,14 +100,12 @@ fn u512_mod_bls12_381(a_high: [u32; 8], a_low: [u32; 8]) -> u384 { let res = circuit_add(low, high_shifted); let modulus = TryInto::< - _, CircuitModulus + _, CircuitModulus, >::try_into( [ - 0xb153ffffb9feffffffffaaab, - 0x6730d2a0f6b0f6241eabfffe, - 0x434bacd764774b84f38512bf, - 0x1a0111ea397fe69a4b1ba7b6 - ] + 0xb153ffffb9feffffffffaaab, 0x6730d2a0f6b0f6241eabfffe, 0x434bacd764774b84f38512bf, + 0x1a0111ea397fe69a4b1ba7b6, + ], ) .unwrap(); // BLS12_381 prime field modulus @@ -123,7 +118,7 @@ fn u512_mod_bls12_381(a_high: [u32; 8], a_low: [u32; 8]) -> u384 { limb0: ll0.try_into().unwrap(), limb1: ll1.try_into().unwrap(), limb2: ll2.try_into().unwrap(), - limb3: 0 + limb3: 0, }; let [ah_0, ah_1, ah_2, ah_3, ah_4, ah_5, ah_6, ah_7] = a_high; @@ -134,7 +129,7 @@ fn u512_mod_bls12_381(a_high: [u32; 8], a_low: [u32; 8]) -> u384 { limb0: hl0.try_into().unwrap(), limb1: hl1.try_into().unwrap(), limb2: hl2.try_into().unwrap(), - limb3: 0 + limb3: 0, }; let outputs = (res,) @@ -149,52 +144,67 @@ fn u512_mod_bls12_381(a_high: [u32; 8], a_low: [u32; 8]) -> u384 { return outputs.get_output(res); } -fn add_mod_p(a: u384, b: u384, p: u384) -> u384 { +pub fn add_mod_p(a: u384, b: u384, modulus: CircuitModulus) -> u384 { let in1 = CircuitElement::> {}; let in2 = CircuitElement::> {}; let add = circuit_add(in1, in2); - let modulus = TryInto::<_, CircuitModulus>::try_into([p.limb0, p.limb1, p.limb2, p.limb3]) - .unwrap(); - let outputs = (add,).new_inputs().next_2(a).next_2(b).done_2().eval(modulus).unwrap(); return outputs.get_output(add); } -fn sub_mod_p(a: u384, b: u384, p: u384) -> u384 { +pub fn sub_mod_p(a: u384, b: u384, modulus: CircuitModulus) -> u384 { let in1 = CircuitElement::> {}; let in2 = CircuitElement::> {}; let sub = circuit_sub(in1, in2); - let modulus = TryInto::<_, CircuitModulus>::try_into([p.limb0, p.limb1, p.limb2, p.limb3]) - .unwrap(); - let outputs = (sub,).new_inputs().next_2(a).next_2(b).done_2().eval(modulus).unwrap(); return outputs.get_output(sub); } -fn mul_mod_p(a: u384, b: u384, p: u384) -> u384 { +pub fn mul_mod_p(a: u384, b: u384, modulus: CircuitModulus) -> u384 { let in1 = CircuitElement::> {}; let in2 = CircuitElement::> {}; let mul = circuit_mul(in1, in2); - let modulus = TryInto::<_, CircuitModulus>::try_into([p.limb0, p.limb1, p.limb2, p.limb3]) - .unwrap(); - let outputs = (mul,).new_inputs().next_2(a).next_2(b).done_2().eval(modulus).unwrap(); return outputs.get_output(mul); } -fn inv_mod_p(a: u384, p: u384) -> u384 { - let in1 = CircuitElement::> {}; - let inv = circuit_inverse(in1); +#[inline(always)] +pub fn batch_3_mod_p(x: u384, y: u384, z: u384, c0: u384, modulus: CircuitModulus) -> u384 { + let _x = CircuitElement::> {}; + let _y = CircuitElement::> {}; + let _z = CircuitElement::> {}; + let _c0 = CircuitElement::> {}; + let _c1 = circuit_mul(_c0, _c0); + let _c2 = circuit_mul(_c1, _c0); + let _mul1 = circuit_mul(_x, _c0); + let _mul2 = circuit_mul(_y, _c1); + let _mul3 = circuit_mul(_z, _c2); + let res = circuit_add(circuit_add(_mul1, _mul2), _mul3); - let modulus = TryInto::<_, CircuitModulus>::try_into([p.limb0, p.limb1, p.limb2, p.limb3]) + let outputs = (res,) + .new_inputs() + .next_2(x) + .next_2(y) + .next_2(z) + .next_2(c0) + .done_2() + .eval(modulus) .unwrap(); + return outputs.get_output(res); +} + + +fn inv_mod_p(a: u384, modulus: CircuitModulus) -> u384 { + let in1 = CircuitElement::> {}; + let inv = circuit_inverse(in1); + let outputs = (inv,).new_inputs().next_2(a).done_2().eval(modulus).unwrap(); return outputs.get_output(inv); diff --git a/src/src/circuits.cairo b/src/src/circuits.cairo index c3f93370..e4f8eb6d 100644 --- a/src/src/circuits.cairo +++ b/src/src/circuits.cairo @@ -3,3 +3,7 @@ mod dummy; mod multi_pairing_check; mod extf_mul; mod isogeny; +// mod honk_circuits; +// mod ec_batched; +mod tower_circuits; + diff --git a/src/src/circuits/dummy.cairo b/src/src/circuits/dummy.cairo index 6deda304..b6e84faf 100644 --- a/src/src/circuits/dummy.cairo +++ b/src/src/circuits/dummy.cairo @@ -1,22 +1,20 @@ use core::circuit::{ - RangeCheck96, AddMod, MulMod, u384, u96, CircuitElement, CircuitInput, circuit_add, circuit_sub, - circuit_mul, circuit_inverse, EvalCircuitResult, EvalCircuitTrait, CircuitOutputsTrait, - CircuitModulus, AddInputResultTrait, CircuitInputs, CircuitDefinition, CircuitData, - CircuitInputAccumulator + RangeCheck96, AddMod, MulMod, u384, u96, circuit_add, circuit_sub, circuit_mul, circuit_inverse, + EvalCircuitResult, EvalCircuitTrait, CircuitOutputsTrait, CircuitModulus, AddInputResultTrait, + CircuitInputs, CircuitDefinition, CircuitData, CircuitInputAccumulator, }; use garaga::core::circuit::AddInputResultTrait2; use core::circuit::CircuitElement as CE; use core::circuit::CircuitInput as CI; use garaga::definitions::{ - get_a, get_b, get_p, get_g, get_min_one, G1Point, G2Point, E12D, u288, E12DMulQuotient, - G1G2Pair, BNProcessedPair, BLSProcessedPair, MillerLoopResultScalingFactor, G2Line, - get_BLS12_381_modulus, get_BN254_modulus + get_a, get_b, get_modulus, get_g, get_min_one, G1Point, G2Point, E12D, u288, E12DMulQuotient, + G1G2Pair, BNProcessedPair, BLSProcessedPair, MillerLoopResultScalingFactor, G2Line, E12T, + get_BLS12_381_modulus, get_BN254_modulus, }; use garaga::ec_ops::{SlopeInterceptOutput, FunctionFeltEvaluations, FunctionFelt}; use core::option::Option; - #[inline(always)] -fn run_DUMMY_circuit(mut input: Array, curve_index: usize) -> Array { +pub fn run_DUMMY_circuit(mut input: Array, curve_index: usize) -> Array { // INPUT stack let (in0, in1) = (CE::> {}, CE::> {}); let t0 = circuit_sub(in0, in1); @@ -28,13 +26,9 @@ fn run_DUMMY_circuit(mut input: Array, curve_index: usize) -> Array let t6 = circuit_inverse(t2); let t7 = circuit_mul(t0, t6); - let modulus = get_p(curve_index); - let modulus = TryInto::< - _, CircuitModulus - >::try_into([modulus.limb0, modulus.limb1, modulus.limb2, modulus.limb3]) - .unwrap(); + let modulus = get_modulus(curve_index); - let mut circuit_inputs = (t0, t2, t3, t4, t5, t7,).new_inputs(); + let mut circuit_inputs = (t0, t2, t3, t4, t5, t7).new_inputs(); // Prefill constants: // Fill inputs: @@ -51,7 +45,7 @@ fn run_DUMMY_circuit(mut input: Array, curve_index: usize) -> Array outputs.get_output(t3), outputs.get_output(t4), outputs.get_output(t5), - outputs.get_output(t7) + outputs.get_output(t7), ]; return res; } @@ -64,11 +58,11 @@ mod tests { use core::circuit::{ RangeCheck96, AddMod, MulMod, u96, CircuitElement, CircuitInput, circuit_add, circuit_sub, circuit_mul, circuit_inverse, EvalCircuitResult, EvalCircuitTrait, u384, - CircuitOutputsTrait, CircuitModulus, AddInputResultTrait, CircuitInputs + CircuitOutputsTrait, CircuitModulus, AddInputResultTrait, CircuitInputs, }; use garaga::definitions::{ G1Point, G2Point, E12D, E12DMulQuotient, G1G2Pair, BNProcessedPair, BLSProcessedPair, - MillerLoopResultScalingFactor, G2Line + MillerLoopResultScalingFactor, G2Line, }; use garaga::ec_ops::{SlopeInterceptOutput, FunctionFeltEvaluations, FunctionFelt}; diff --git a/src/src/circuits/ec.cairo b/src/src/circuits/ec.cairo index b7cdf0a9..db2703ee 100644 --- a/src/src/circuits/ec.cairo +++ b/src/src/circuits/ec.cairo @@ -1,22 +1,20 @@ use core::circuit::{ - RangeCheck96, AddMod, MulMod, u384, u96, CircuitElement, CircuitInput, circuit_add, circuit_sub, - circuit_mul, circuit_inverse, EvalCircuitResult, EvalCircuitTrait, CircuitOutputsTrait, - CircuitModulus, AddInputResultTrait, CircuitInputs, CircuitDefinition, CircuitData, - CircuitInputAccumulator + RangeCheck96, AddMod, MulMod, u384, u96, circuit_add, circuit_sub, circuit_mul, circuit_inverse, + EvalCircuitResult, EvalCircuitTrait, CircuitOutputsTrait, CircuitModulus, AddInputResultTrait, + CircuitInputs, CircuitDefinition, CircuitData, CircuitInputAccumulator, }; use garaga::core::circuit::AddInputResultTrait2; use core::circuit::CircuitElement as CE; use core::circuit::CircuitInput as CI; use garaga::definitions::{ - get_a, get_b, get_p, get_g, get_min_one, G1Point, G2Point, E12D, u288, E12DMulQuotient, - G1G2Pair, BNProcessedPair, BLSProcessedPair, MillerLoopResultScalingFactor, G2Line, - get_BLS12_381_modulus, get_BN254_modulus + get_a, get_b, get_modulus, get_g, get_min_one, G1Point, G2Point, E12D, u288, E12DMulQuotient, + G1G2Pair, BNProcessedPair, BLSProcessedPair, MillerLoopResultScalingFactor, G2Line, E12T, + get_BLS12_381_modulus, get_BN254_modulus, }; use garaga::ec_ops::{SlopeInterceptOutput, FunctionFeltEvaluations, FunctionFelt}; use core::option::Option; - #[inline(always)] -fn run_ACC_EVAL_POINT_CHALLENGE_SIGNED_circuit( +pub fn run_ACC_EVAL_POINT_CHALLENGE_SIGNED_circuit( acc: u384, m: u384, b: u384, @@ -26,7 +24,7 @@ fn run_ACC_EVAL_POINT_CHALLENGE_SIGNED_circuit( en: u384, sp: u384, sn: u384, - curve_index: usize + curve_index: usize, ) -> (u384,) { // CONSTANT stack let in0 = CE::> {}; // 0x0 @@ -53,11 +51,7 @@ fn run_ACC_EVAL_POINT_CHALLENGE_SIGNED_circuit( let t14 = circuit_add(t9, t13); let t15 = circuit_add(in1, t14); - let modulus = get_p(curve_index); - let modulus = TryInto::< - _, CircuitModulus - >::try_into([modulus.limb0, modulus.limb1, modulus.limb2, modulus.limb3]) - .unwrap(); + let modulus = get_modulus(curve_index); let mut circuit_inputs = (t15,).new_inputs(); // Prefill constants: @@ -79,7 +73,7 @@ fn run_ACC_EVAL_POINT_CHALLENGE_SIGNED_circuit( return (res_acc,); } #[inline(always)] -fn run_ACC_FUNCTION_CHALLENGE_DUPL_circuit( +pub fn run_ACC_FUNCTION_CHALLENGE_DUPL_circuit( f_a0_accs: FunctionFeltEvaluations, f_a1_accs: FunctionFeltEvaluations, xA0: u384, @@ -90,7 +84,7 @@ fn run_ACC_FUNCTION_CHALLENGE_DUPL_circuit( next_a_den_coeff: u384, next_b_num_coeff: u384, next_b_den_coeff: u384, - curve_index: usize + curve_index: usize, ) -> (FunctionFeltEvaluations, FunctionFeltEvaluations, u384, u384) { // INPUT stack let (in0, in1, in2) = (CE::> {}, CE::> {}, CE::> {}); @@ -124,13 +118,9 @@ fn run_ACC_FUNCTION_CHALLENGE_DUPL_circuit( let t22 = circuit_mul(in15, t21); let t23 = circuit_add(in7, t22); - let modulus = get_p(curve_index); - let modulus = TryInto::< - _, CircuitModulus - >::try_into([modulus.limb0, modulus.limb1, modulus.limb2, modulus.limb3]) - .unwrap(); + let modulus = get_modulus(curve_index); - let mut circuit_inputs = (t1, t4, t6, t11, t13, t16, t18, t23, t2, t14,).new_inputs(); + let mut circuit_inputs = (t1, t4, t6, t11, t13, t16, t18, t23, t2, t14).new_inputs(); // Prefill constants: // Fill inputs: @@ -156,20 +146,90 @@ fn run_ACC_FUNCTION_CHALLENGE_DUPL_circuit( a_num: outputs.get_output(t1), a_den: outputs.get_output(t4), b_num: outputs.get_output(t6), - b_den: outputs.get_output(t11) + b_den: outputs.get_output(t11), }; let next_f_a1_accs: FunctionFeltEvaluations = FunctionFeltEvaluations { a_num: outputs.get_output(t13), a_den: outputs.get_output(t16), b_num: outputs.get_output(t18), - b_den: outputs.get_output(t23) + b_den: outputs.get_output(t23), }; let next_xA0_power: u384 = outputs.get_output(t2); let next_xA2_power: u384 = outputs.get_output(t14); return (next_f_a0_accs, next_f_a1_accs, next_xA0_power, next_xA2_power); } #[inline(always)] -fn run_ADD_EC_POINT_circuit(p: G1Point, q: G1Point, curve_index: usize) -> (G1Point,) { +pub fn run_ADD_EC_POINTS_G2_circuit(p: G2Point, q: G2Point, curve_index: usize) -> (G2Point,) { + // CONSTANT stack + let in0 = CE::> {}; // 0x0 + + // INPUT stack + let (in1, in2, in3) = (CE::> {}, CE::> {}, CE::> {}); + let (in4, in5, in6) = (CE::> {}, CE::> {}, CE::> {}); + let (in7, in8) = (CE::> {}, CE::> {}); + let t0 = circuit_sub(in3, in7); // Fp2 sub coeff 0/1 + let t1 = circuit_sub(in4, in8); // Fp2 sub coeff 1/1 + let t2 = circuit_sub(in1, in5); // Fp2 sub coeff 0/1 + let t3 = circuit_sub(in2, in6); // Fp2 sub coeff 1/1 + let t4 = circuit_mul(t2, t2); // Fp2 Inv start + let t5 = circuit_mul(t3, t3); + let t6 = circuit_add(t4, t5); + let t7 = circuit_inverse(t6); + let t8 = circuit_mul(t2, t7); // Fp2 Inv real part end + let t9 = circuit_mul(t3, t7); + let t10 = circuit_sub(in0, t9); // Fp2 Inv imag part end + let t11 = circuit_mul(t0, t8); // Fp2 mul start + let t12 = circuit_mul(t1, t10); + let t13 = circuit_sub(t11, t12); // Fp2 mul real part end + let t14 = circuit_mul(t0, t10); + let t15 = circuit_mul(t1, t8); + let t16 = circuit_add(t14, t15); // Fp2 mul imag part end + let t17 = circuit_add(t13, t16); + let t18 = circuit_sub(t13, t16); + let t19 = circuit_mul(t17, t18); + let t20 = circuit_mul(t13, t16); + let t21 = circuit_add(t20, t20); + let t22 = circuit_sub(t19, in1); // Fp2 sub coeff 0/1 + let t23 = circuit_sub(t21, in2); // Fp2 sub coeff 1/1 + let t24 = circuit_sub(t22, in5); // Fp2 sub coeff 0/1 + let t25 = circuit_sub(t23, in6); // Fp2 sub coeff 1/1 + let t26 = circuit_sub(in1, t24); // Fp2 sub coeff 0/1 + let t27 = circuit_sub(in2, t25); // Fp2 sub coeff 1/1 + let t28 = circuit_mul(t13, t26); // Fp2 mul start + let t29 = circuit_mul(t16, t27); + let t30 = circuit_sub(t28, t29); // Fp2 mul real part end + let t31 = circuit_mul(t13, t27); + let t32 = circuit_mul(t16, t26); + let t33 = circuit_add(t31, t32); // Fp2 mul imag part end + let t34 = circuit_sub(t30, in3); // Fp2 sub coeff 0/1 + let t35 = circuit_sub(t33, in4); // Fp2 sub coeff 1/1 + + let modulus = get_modulus(curve_index); + + let mut circuit_inputs = (t24, t25, t34, t35).new_inputs(); + // Prefill constants: + circuit_inputs = circuit_inputs.next_2([0x0, 0x0, 0x0, 0x0]); // in0 + // Fill inputs: + circuit_inputs = circuit_inputs.next_2(p.x0); // in1 + circuit_inputs = circuit_inputs.next_2(p.x1); // in2 + circuit_inputs = circuit_inputs.next_2(p.y0); // in3 + circuit_inputs = circuit_inputs.next_2(p.y1); // in4 + circuit_inputs = circuit_inputs.next_2(q.x0); // in5 + circuit_inputs = circuit_inputs.next_2(q.x1); // in6 + circuit_inputs = circuit_inputs.next_2(q.y0); // in7 + circuit_inputs = circuit_inputs.next_2(q.y1); // in8 + + let outputs = circuit_inputs.done_2().eval(modulus).unwrap(); + let result: G2Point = G2Point { + x0: outputs.get_output(t24), + x1: outputs.get_output(t25), + y0: outputs.get_output(t34), + y1: outputs.get_output(t35), + }; + return (result,); +} +#[inline(always)] +pub fn run_ADD_EC_POINT_circuit(p: G1Point, q: G1Point, curve_index: usize) -> (G1Point,) { // INPUT stack let (in0, in1, in2) = (CE::> {}, CE::> {}, CE::> {}); let in3 = CE::> {}; @@ -184,13 +244,9 @@ fn run_ADD_EC_POINT_circuit(p: G1Point, q: G1Point, curve_index: usize) -> (G1Po let t8 = circuit_mul(t3, t7); let t9 = circuit_sub(t8, in1); - let modulus = get_p(curve_index); - let modulus = TryInto::< - _, CircuitModulus - >::try_into([modulus.limb0, modulus.limb1, modulus.limb2, modulus.limb3]) - .unwrap(); + let modulus = get_modulus(curve_index); - let mut circuit_inputs = (t6, t9,).new_inputs(); + let mut circuit_inputs = (t6, t9).new_inputs(); // Prefill constants: // Fill inputs: @@ -204,7 +260,81 @@ fn run_ADD_EC_POINT_circuit(p: G1Point, q: G1Point, curve_index: usize) -> (G1Po return (r,); } #[inline(always)] -fn run_DOUBLE_EC_POINT_circuit(p: G1Point, A_weirstrass: u384, curve_index: usize) -> (G1Point,) { +pub fn run_DOUBLE_EC_POINT_G2_A_EQ_0_circuit(p: G2Point, curve_index: usize) -> (G2Point,) { + // CONSTANT stack + let in0 = CE::> {}; // 0x3 + let in1 = CE::> {}; // 0x0 + + // INPUT stack + let (in2, in3, in4) = (CE::> {}, CE::> {}, CE::> {}); + let in5 = CE::> {}; + let t0 = circuit_add(in2, in3); + let t1 = circuit_sub(in2, in3); + let t2 = circuit_mul(t0, t1); + let t3 = circuit_mul(in2, in3); + let t4 = circuit_add(t3, t3); + let t5 = circuit_mul(t2, in0); // Fp2 scalar mul coeff 0/1 + let t6 = circuit_mul(t4, in0); // Fp2 scalar mul coeff 1/1 + let t7 = circuit_add(in4, in4); // Fp2 add coeff 0/1 + let t8 = circuit_add(in5, in5); // Fp2 add coeff 1/1 + let t9 = circuit_mul(t7, t7); // Fp2 Inv start + let t10 = circuit_mul(t8, t8); + let t11 = circuit_add(t9, t10); + let t12 = circuit_inverse(t11); + let t13 = circuit_mul(t7, t12); // Fp2 Inv real part end + let t14 = circuit_mul(t8, t12); + let t15 = circuit_sub(in1, t14); // Fp2 Inv imag part end + let t16 = circuit_mul(t5, t13); // Fp2 mul start + let t17 = circuit_mul(t6, t15); + let t18 = circuit_sub(t16, t17); // Fp2 mul real part end + let t19 = circuit_mul(t5, t15); + let t20 = circuit_mul(t6, t13); + let t21 = circuit_add(t19, t20); // Fp2 mul imag part end + let t22 = circuit_add(t18, t21); + let t23 = circuit_sub(t18, t21); + let t24 = circuit_mul(t22, t23); + let t25 = circuit_mul(t18, t21); + let t26 = circuit_add(t25, t25); + let t27 = circuit_sub(t24, in2); // Fp2 sub coeff 0/1 + let t28 = circuit_sub(t26, in3); // Fp2 sub coeff 1/1 + let t29 = circuit_sub(t27, in2); // Fp2 sub coeff 0/1 + let t30 = circuit_sub(t28, in3); // Fp2 sub coeff 1/1 + let t31 = circuit_sub(in2, t29); // Fp2 sub coeff 0/1 + let t32 = circuit_sub(in3, t30); // Fp2 sub coeff 1/1 + let t33 = circuit_mul(t18, t31); // Fp2 mul start + let t34 = circuit_mul(t21, t32); + let t35 = circuit_sub(t33, t34); // Fp2 mul real part end + let t36 = circuit_mul(t18, t32); + let t37 = circuit_mul(t21, t31); + let t38 = circuit_add(t36, t37); // Fp2 mul imag part end + let t39 = circuit_sub(t35, in4); // Fp2 sub coeff 0/1 + let t40 = circuit_sub(t38, in5); // Fp2 sub coeff 1/1 + + let modulus = get_modulus(curve_index); + + let mut circuit_inputs = (t29, t30, t39, t40).new_inputs(); + // Prefill constants: + circuit_inputs = circuit_inputs.next_2([0x3, 0x0, 0x0, 0x0]); // in0 + circuit_inputs = circuit_inputs.next_2([0x0, 0x0, 0x0, 0x0]); // in1 + // Fill inputs: + circuit_inputs = circuit_inputs.next_2(p.x0); // in2 + circuit_inputs = circuit_inputs.next_2(p.x1); // in3 + circuit_inputs = circuit_inputs.next_2(p.y0); // in4 + circuit_inputs = circuit_inputs.next_2(p.y1); // in5 + + let outputs = circuit_inputs.done_2().eval(modulus).unwrap(); + let result: G2Point = G2Point { + x0: outputs.get_output(t29), + x1: outputs.get_output(t30), + y0: outputs.get_output(t39), + y1: outputs.get_output(t40), + }; + return (result,); +} +#[inline(always)] +pub fn run_DOUBLE_EC_POINT_circuit( + p: G1Point, A_weirstrass: u384, curve_index: usize, +) -> (G1Point,) { // CONSTANT stack let in0 = CE::> {}; // 0x3 @@ -221,15 +351,11 @@ fn run_DOUBLE_EC_POINT_circuit(p: G1Point, A_weirstrass: u384, curve_index: usiz let t8 = circuit_sub(t7, in1); let t9 = circuit_sub(in1, t8); let t10 = circuit_mul(t5, t9); - let t11 = circuit_sub(in2, t10); + let t11 = circuit_sub(t10, in2); - let modulus = get_p(curve_index); - let modulus = TryInto::< - _, CircuitModulus - >::try_into([modulus.limb0, modulus.limb1, modulus.limb2, modulus.limb3]) - .unwrap(); + let modulus = get_modulus(curve_index); - let mut circuit_inputs = (t8, t11,).new_inputs(); + let mut circuit_inputs = (t8, t11).new_inputs(); // Prefill constants: circuit_inputs = circuit_inputs.next_2([0x3, 0x0, 0x0, 0x0]); // in0 // Fill inputs: @@ -242,13 +368,13 @@ fn run_DOUBLE_EC_POINT_circuit(p: G1Point, A_weirstrass: u384, curve_index: usiz return (r,); } #[inline(always)] -fn run_EVAL_FN_CHALLENGE_DUPL_10P_circuit( +pub fn run_EVAL_FN_CHALLENGE_DUPL_10P_RLC_circuit( A0: G1Point, A2: G1Point, coeff0: u384, coeff2: u384, - SumDlogDiv: FunctionFelt, - curve_index: usize + SumDlogDivBatched: FunctionFelt, + curve_index: usize, ) -> (u384,) { // INPUT stack let (in0, in1, in2) = (CE::> {}, CE::> {}, CE::> {}); @@ -269,214 +395,245 @@ fn run_EVAL_FN_CHALLENGE_DUPL_10P_circuit( let (in45, in46, in47) = (CE::> {}, CE::> {}, CE::> {}); let (in48, in49, in50) = (CE::> {}, CE::> {}, CE::> {}); let (in51, in52, in53) = (CE::> {}, CE::> {}, CE::> {}); - let (in54, in55) = (CE::> {}, CE::> {}); - let t0 = circuit_mul(in16, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 - let t1 = circuit_add(in15, t0); // Eval sumdlogdiv_a_num Horner step: add coefficient_9 + let (in54, in55, in56) = (CE::> {}, CE::> {}, CE::> {}); + let (in57, in58, in59) = (CE::> {}, CE::> {}, CE::> {}); + let (in60, in61, in62) = (CE::> {}, CE::> {}, CE::> {}); + let in63 = CE::> {}; + let t0 = circuit_mul(in18, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t1 = circuit_add(in17, t0); // Eval sumdlogdiv_a_num Horner step: add coefficient_11 let t2 = circuit_mul(t1, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 - let t3 = circuit_add(in14, t2); // Eval sumdlogdiv_a_num Horner step: add coefficient_8 + let t3 = circuit_add(in16, t2); // Eval sumdlogdiv_a_num Horner step: add coefficient_10 let t4 = circuit_mul(t3, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 - let t5 = circuit_add(in13, t4); // Eval sumdlogdiv_a_num Horner step: add coefficient_7 + let t5 = circuit_add(in15, t4); // Eval sumdlogdiv_a_num Horner step: add coefficient_9 let t6 = circuit_mul(t5, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 - let t7 = circuit_add(in12, t6); // Eval sumdlogdiv_a_num Horner step: add coefficient_6 + let t7 = circuit_add(in14, t6); // Eval sumdlogdiv_a_num Horner step: add coefficient_8 let t8 = circuit_mul(t7, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 - let t9 = circuit_add(in11, t8); // Eval sumdlogdiv_a_num Horner step: add coefficient_5 + let t9 = circuit_add(in13, t8); // Eval sumdlogdiv_a_num Horner step: add coefficient_7 let t10 = circuit_mul(t9, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 - let t11 = circuit_add(in10, t10); // Eval sumdlogdiv_a_num Horner step: add coefficient_4 + let t11 = circuit_add(in12, t10); // Eval sumdlogdiv_a_num Horner step: add coefficient_6 let t12 = circuit_mul(t11, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 - let t13 = circuit_add(in9, t12); // Eval sumdlogdiv_a_num Horner step: add coefficient_3 + let t13 = circuit_add(in11, t12); // Eval sumdlogdiv_a_num Horner step: add coefficient_5 let t14 = circuit_mul(t13, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 - let t15 = circuit_add(in8, t14); // Eval sumdlogdiv_a_num Horner step: add coefficient_2 + let t15 = circuit_add(in10, t14); // Eval sumdlogdiv_a_num Horner step: add coefficient_4 let t16 = circuit_mul(t15, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 - let t17 = circuit_add(in7, t16); // Eval sumdlogdiv_a_num Horner step: add coefficient_1 + let t17 = circuit_add(in9, t16); // Eval sumdlogdiv_a_num Horner step: add coefficient_3 let t18 = circuit_mul(t17, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 - let t19 = circuit_add(in6, t18); // Eval sumdlogdiv_a_num Horner step: add coefficient_0 - let t20 = circuit_mul(in28, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 - let t21 = circuit_add(in27, t20); // Eval sumdlogdiv_a_den Horner step: add coefficient_10 - let t22 = circuit_mul(t21, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 - let t23 = circuit_add(in26, t22); // Eval sumdlogdiv_a_den Horner step: add coefficient_9 - let t24 = circuit_mul(t23, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 - let t25 = circuit_add(in25, t24); // Eval sumdlogdiv_a_den Horner step: add coefficient_8 + let t19 = circuit_add(in8, t18); // Eval sumdlogdiv_a_num Horner step: add coefficient_2 + let t20 = circuit_mul(t19, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t21 = circuit_add(in7, t20); // Eval sumdlogdiv_a_num Horner step: add coefficient_1 + let t22 = circuit_mul(t21, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t23 = circuit_add(in6, t22); // Eval sumdlogdiv_a_num Horner step: add coefficient_0 + let t24 = circuit_mul(in32, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t25 = circuit_add(in31, t24); // Eval sumdlogdiv_a_den Horner step: add coefficient_12 let t26 = circuit_mul(t25, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 - let t27 = circuit_add(in24, t26); // Eval sumdlogdiv_a_den Horner step: add coefficient_7 + let t27 = circuit_add(in30, t26); // Eval sumdlogdiv_a_den Horner step: add coefficient_11 let t28 = circuit_mul(t27, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 - let t29 = circuit_add(in23, t28); // Eval sumdlogdiv_a_den Horner step: add coefficient_6 + let t29 = circuit_add(in29, t28); // Eval sumdlogdiv_a_den Horner step: add coefficient_10 let t30 = circuit_mul(t29, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 - let t31 = circuit_add(in22, t30); // Eval sumdlogdiv_a_den Horner step: add coefficient_5 + let t31 = circuit_add(in28, t30); // Eval sumdlogdiv_a_den Horner step: add coefficient_9 let t32 = circuit_mul(t31, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 - let t33 = circuit_add(in21, t32); // Eval sumdlogdiv_a_den Horner step: add coefficient_4 + let t33 = circuit_add(in27, t32); // Eval sumdlogdiv_a_den Horner step: add coefficient_8 let t34 = circuit_mul(t33, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 - let t35 = circuit_add(in20, t34); // Eval sumdlogdiv_a_den Horner step: add coefficient_3 + let t35 = circuit_add(in26, t34); // Eval sumdlogdiv_a_den Horner step: add coefficient_7 let t36 = circuit_mul(t35, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 - let t37 = circuit_add(in19, t36); // Eval sumdlogdiv_a_den Horner step: add coefficient_2 + let t37 = circuit_add(in25, t36); // Eval sumdlogdiv_a_den Horner step: add coefficient_6 let t38 = circuit_mul(t37, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 - let t39 = circuit_add(in18, t38); // Eval sumdlogdiv_a_den Horner step: add coefficient_1 + let t39 = circuit_add(in24, t38); // Eval sumdlogdiv_a_den Horner step: add coefficient_5 let t40 = circuit_mul(t39, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 - let t41 = circuit_add(in17, t40); // Eval sumdlogdiv_a_den Horner step: add coefficient_0 - let t42 = circuit_inverse(t41); - let t43 = circuit_mul(t19, t42); - let t44 = circuit_mul(in40, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 - let t45 = circuit_add(in39, t44); // Eval sumdlogdiv_b_num Horner step: add coefficient_10 - let t46 = circuit_mul(t45, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 - let t47 = circuit_add(in38, t46); // Eval sumdlogdiv_b_num Horner step: add coefficient_9 - let t48 = circuit_mul(t47, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 - let t49 = circuit_add(in37, t48); // Eval sumdlogdiv_b_num Horner step: add coefficient_8 - let t50 = circuit_mul(t49, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 - let t51 = circuit_add(in36, t50); // Eval sumdlogdiv_b_num Horner step: add coefficient_7 - let t52 = circuit_mul(t51, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 - let t53 = circuit_add(in35, t52); // Eval sumdlogdiv_b_num Horner step: add coefficient_6 + let t41 = circuit_add(in23, t40); // Eval sumdlogdiv_a_den Horner step: add coefficient_4 + let t42 = circuit_mul(t41, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t43 = circuit_add(in22, t42); // Eval sumdlogdiv_a_den Horner step: add coefficient_3 + let t44 = circuit_mul(t43, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t45 = circuit_add(in21, t44); // Eval sumdlogdiv_a_den Horner step: add coefficient_2 + let t46 = circuit_mul(t45, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t47 = circuit_add(in20, t46); // Eval sumdlogdiv_a_den Horner step: add coefficient_1 + let t48 = circuit_mul(t47, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t49 = circuit_add(in19, t48); // Eval sumdlogdiv_a_den Horner step: add coefficient_0 + let t50 = circuit_inverse(t49); + let t51 = circuit_mul(t23, t50); + let t52 = circuit_mul(in46, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t53 = circuit_add(in45, t52); // Eval sumdlogdiv_b_num Horner step: add coefficient_12 let t54 = circuit_mul(t53, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 - let t55 = circuit_add(in34, t54); // Eval sumdlogdiv_b_num Horner step: add coefficient_5 + let t55 = circuit_add(in44, t54); // Eval sumdlogdiv_b_num Horner step: add coefficient_11 let t56 = circuit_mul(t55, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 - let t57 = circuit_add(in33, t56); // Eval sumdlogdiv_b_num Horner step: add coefficient_4 + let t57 = circuit_add(in43, t56); // Eval sumdlogdiv_b_num Horner step: add coefficient_10 let t58 = circuit_mul(t57, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 - let t59 = circuit_add(in32, t58); // Eval sumdlogdiv_b_num Horner step: add coefficient_3 + let t59 = circuit_add(in42, t58); // Eval sumdlogdiv_b_num Horner step: add coefficient_9 let t60 = circuit_mul(t59, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 - let t61 = circuit_add(in31, t60); // Eval sumdlogdiv_b_num Horner step: add coefficient_2 + let t61 = circuit_add(in41, t60); // Eval sumdlogdiv_b_num Horner step: add coefficient_8 let t62 = circuit_mul(t61, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 - let t63 = circuit_add(in30, t62); // Eval sumdlogdiv_b_num Horner step: add coefficient_1 + let t63 = circuit_add(in40, t62); // Eval sumdlogdiv_b_num Horner step: add coefficient_7 let t64 = circuit_mul(t63, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 - let t65 = circuit_add(in29, t64); // Eval sumdlogdiv_b_num Horner step: add coefficient_0 - let t66 = circuit_mul(in55, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 - let t67 = circuit_add(in54, t66); // Eval sumdlogdiv_b_den Horner step: add coefficient_13 - let t68 = circuit_mul(t67, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 - let t69 = circuit_add(in53, t68); // Eval sumdlogdiv_b_den Horner step: add coefficient_12 - let t70 = circuit_mul(t69, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 - let t71 = circuit_add(in52, t70); // Eval sumdlogdiv_b_den Horner step: add coefficient_11 - let t72 = circuit_mul(t71, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 - let t73 = circuit_add(in51, t72); // Eval sumdlogdiv_b_den Horner step: add coefficient_10 - let t74 = circuit_mul(t73, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 - let t75 = circuit_add(in50, t74); // Eval sumdlogdiv_b_den Horner step: add coefficient_9 - let t76 = circuit_mul(t75, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 - let t77 = circuit_add(in49, t76); // Eval sumdlogdiv_b_den Horner step: add coefficient_8 - let t78 = circuit_mul(t77, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 - let t79 = circuit_add(in48, t78); // Eval sumdlogdiv_b_den Horner step: add coefficient_7 + let t65 = circuit_add(in39, t64); // Eval sumdlogdiv_b_num Horner step: add coefficient_6 + let t66 = circuit_mul(t65, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t67 = circuit_add(in38, t66); // Eval sumdlogdiv_b_num Horner step: add coefficient_5 + let t68 = circuit_mul(t67, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t69 = circuit_add(in37, t68); // Eval sumdlogdiv_b_num Horner step: add coefficient_4 + let t70 = circuit_mul(t69, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t71 = circuit_add(in36, t70); // Eval sumdlogdiv_b_num Horner step: add coefficient_3 + let t72 = circuit_mul(t71, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t73 = circuit_add(in35, t72); // Eval sumdlogdiv_b_num Horner step: add coefficient_2 + let t74 = circuit_mul(t73, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t75 = circuit_add(in34, t74); // Eval sumdlogdiv_b_num Horner step: add coefficient_1 + let t76 = circuit_mul(t75, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t77 = circuit_add(in33, t76); // Eval sumdlogdiv_b_num Horner step: add coefficient_0 + let t78 = circuit_mul(in63, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t79 = circuit_add(in62, t78); // Eval sumdlogdiv_b_den Horner step: add coefficient_15 let t80 = circuit_mul(t79, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 - let t81 = circuit_add(in47, t80); // Eval sumdlogdiv_b_den Horner step: add coefficient_6 + let t81 = circuit_add(in61, t80); // Eval sumdlogdiv_b_den Horner step: add coefficient_14 let t82 = circuit_mul(t81, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 - let t83 = circuit_add(in46, t82); // Eval sumdlogdiv_b_den Horner step: add coefficient_5 + let t83 = circuit_add(in60, t82); // Eval sumdlogdiv_b_den Horner step: add coefficient_13 let t84 = circuit_mul(t83, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 - let t85 = circuit_add(in45, t84); // Eval sumdlogdiv_b_den Horner step: add coefficient_4 + let t85 = circuit_add(in59, t84); // Eval sumdlogdiv_b_den Horner step: add coefficient_12 let t86 = circuit_mul(t85, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 - let t87 = circuit_add(in44, t86); // Eval sumdlogdiv_b_den Horner step: add coefficient_3 + let t87 = circuit_add(in58, t86); // Eval sumdlogdiv_b_den Horner step: add coefficient_11 let t88 = circuit_mul(t87, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 - let t89 = circuit_add(in43, t88); // Eval sumdlogdiv_b_den Horner step: add coefficient_2 + let t89 = circuit_add(in57, t88); // Eval sumdlogdiv_b_den Horner step: add coefficient_10 let t90 = circuit_mul(t89, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 - let t91 = circuit_add(in42, t90); // Eval sumdlogdiv_b_den Horner step: add coefficient_1 + let t91 = circuit_add(in56, t90); // Eval sumdlogdiv_b_den Horner step: add coefficient_9 let t92 = circuit_mul(t91, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 - let t93 = circuit_add(in41, t92); // Eval sumdlogdiv_b_den Horner step: add coefficient_0 - let t94 = circuit_inverse(t93); - let t95 = circuit_mul(t65, t94); - let t96 = circuit_mul(in1, t95); - let t97 = circuit_add(t43, t96); - let t98 = circuit_mul(in16, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 - let t99 = circuit_add(in15, t98); // Eval sumdlogdiv_a_num Horner step: add coefficient_9 - let t100 = circuit_mul(t99, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 - let t101 = circuit_add(in14, t100); // Eval sumdlogdiv_a_num Horner step: add coefficient_8 - let t102 = circuit_mul(t101, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 - let t103 = circuit_add(in13, t102); // Eval sumdlogdiv_a_num Horner step: add coefficient_7 - let t104 = circuit_mul(t103, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 - let t105 = circuit_add(in12, t104); // Eval sumdlogdiv_a_num Horner step: add coefficient_6 - let t106 = circuit_mul(t105, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 - let t107 = circuit_add(in11, t106); // Eval sumdlogdiv_a_num Horner step: add coefficient_5 - let t108 = circuit_mul(t107, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 - let t109 = circuit_add(in10, t108); // Eval sumdlogdiv_a_num Horner step: add coefficient_4 - let t110 = circuit_mul(t109, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 - let t111 = circuit_add(in9, t110); // Eval sumdlogdiv_a_num Horner step: add coefficient_3 - let t112 = circuit_mul(t111, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 - let t113 = circuit_add(in8, t112); // Eval sumdlogdiv_a_num Horner step: add coefficient_2 - let t114 = circuit_mul(t113, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 - let t115 = circuit_add(in7, t114); // Eval sumdlogdiv_a_num Horner step: add coefficient_1 + let t93 = circuit_add(in55, t92); // Eval sumdlogdiv_b_den Horner step: add coefficient_8 + let t94 = circuit_mul(t93, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t95 = circuit_add(in54, t94); // Eval sumdlogdiv_b_den Horner step: add coefficient_7 + let t96 = circuit_mul(t95, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t97 = circuit_add(in53, t96); // Eval sumdlogdiv_b_den Horner step: add coefficient_6 + let t98 = circuit_mul(t97, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t99 = circuit_add(in52, t98); // Eval sumdlogdiv_b_den Horner step: add coefficient_5 + let t100 = circuit_mul(t99, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t101 = circuit_add(in51, t100); // Eval sumdlogdiv_b_den Horner step: add coefficient_4 + let t102 = circuit_mul(t101, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t103 = circuit_add(in50, t102); // Eval sumdlogdiv_b_den Horner step: add coefficient_3 + let t104 = circuit_mul(t103, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t105 = circuit_add(in49, t104); // Eval sumdlogdiv_b_den Horner step: add coefficient_2 + let t106 = circuit_mul(t105, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t107 = circuit_add(in48, t106); // Eval sumdlogdiv_b_den Horner step: add coefficient_1 + let t108 = circuit_mul(t107, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t109 = circuit_add(in47, t108); // Eval sumdlogdiv_b_den Horner step: add coefficient_0 + let t110 = circuit_inverse(t109); + let t111 = circuit_mul(t77, t110); + let t112 = circuit_mul(in1, t111); + let t113 = circuit_add(t51, t112); + let t114 = circuit_mul(in18, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t115 = circuit_add(in17, t114); // Eval sumdlogdiv_a_num Horner step: add coefficient_11 let t116 = circuit_mul(t115, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 - let t117 = circuit_add(in6, t116); // Eval sumdlogdiv_a_num Horner step: add coefficient_0 - let t118 = circuit_mul(in28, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 - let t119 = circuit_add(in27, t118); // Eval sumdlogdiv_a_den Horner step: add coefficient_10 - let t120 = circuit_mul(t119, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 - let t121 = circuit_add(in26, t120); // Eval sumdlogdiv_a_den Horner step: add coefficient_9 - let t122 = circuit_mul(t121, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 - let t123 = circuit_add(in25, t122); // Eval sumdlogdiv_a_den Horner step: add coefficient_8 - let t124 = circuit_mul(t123, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 - let t125 = circuit_add(in24, t124); // Eval sumdlogdiv_a_den Horner step: add coefficient_7 - let t126 = circuit_mul(t125, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 - let t127 = circuit_add(in23, t126); // Eval sumdlogdiv_a_den Horner step: add coefficient_6 - let t128 = circuit_mul(t127, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 - let t129 = circuit_add(in22, t128); // Eval sumdlogdiv_a_den Horner step: add coefficient_5 - let t130 = circuit_mul(t129, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 - let t131 = circuit_add(in21, t130); // Eval sumdlogdiv_a_den Horner step: add coefficient_4 - let t132 = circuit_mul(t131, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 - let t133 = circuit_add(in20, t132); // Eval sumdlogdiv_a_den Horner step: add coefficient_3 - let t134 = circuit_mul(t133, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 - let t135 = circuit_add(in19, t134); // Eval sumdlogdiv_a_den Horner step: add coefficient_2 - let t136 = circuit_mul(t135, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 - let t137 = circuit_add(in18, t136); // Eval sumdlogdiv_a_den Horner step: add coefficient_1 - let t138 = circuit_mul(t137, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 - let t139 = circuit_add(in17, t138); // Eval sumdlogdiv_a_den Horner step: add coefficient_0 - let t140 = circuit_inverse(t139); - let t141 = circuit_mul(t117, t140); - let t142 = circuit_mul(in40, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 - let t143 = circuit_add(in39, t142); // Eval sumdlogdiv_b_num Horner step: add coefficient_10 - let t144 = circuit_mul(t143, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 - let t145 = circuit_add(in38, t144); // Eval sumdlogdiv_b_num Horner step: add coefficient_9 - let t146 = circuit_mul(t145, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 - let t147 = circuit_add(in37, t146); // Eval sumdlogdiv_b_num Horner step: add coefficient_8 - let t148 = circuit_mul(t147, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 - let t149 = circuit_add(in36, t148); // Eval sumdlogdiv_b_num Horner step: add coefficient_7 - let t150 = circuit_mul(t149, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 - let t151 = circuit_add(in35, t150); // Eval sumdlogdiv_b_num Horner step: add coefficient_6 - let t152 = circuit_mul(t151, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 - let t153 = circuit_add(in34, t152); // Eval sumdlogdiv_b_num Horner step: add coefficient_5 - let t154 = circuit_mul(t153, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 - let t155 = circuit_add(in33, t154); // Eval sumdlogdiv_b_num Horner step: add coefficient_4 - let t156 = circuit_mul(t155, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 - let t157 = circuit_add(in32, t156); // Eval sumdlogdiv_b_num Horner step: add coefficient_3 - let t158 = circuit_mul(t157, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 - let t159 = circuit_add(in31, t158); // Eval sumdlogdiv_b_num Horner step: add coefficient_2 - let t160 = circuit_mul(t159, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 - let t161 = circuit_add(in30, t160); // Eval sumdlogdiv_b_num Horner step: add coefficient_1 - let t162 = circuit_mul(t161, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 - let t163 = circuit_add(in29, t162); // Eval sumdlogdiv_b_num Horner step: add coefficient_0 - let t164 = circuit_mul(in55, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 - let t165 = circuit_add(in54, t164); // Eval sumdlogdiv_b_den Horner step: add coefficient_13 - let t166 = circuit_mul(t165, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 - let t167 = circuit_add(in53, t166); // Eval sumdlogdiv_b_den Horner step: add coefficient_12 - let t168 = circuit_mul(t167, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 - let t169 = circuit_add(in52, t168); // Eval sumdlogdiv_b_den Horner step: add coefficient_11 - let t170 = circuit_mul(t169, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 - let t171 = circuit_add(in51, t170); // Eval sumdlogdiv_b_den Horner step: add coefficient_10 - let t172 = circuit_mul(t171, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 - let t173 = circuit_add(in50, t172); // Eval sumdlogdiv_b_den Horner step: add coefficient_9 - let t174 = circuit_mul(t173, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 - let t175 = circuit_add(in49, t174); // Eval sumdlogdiv_b_den Horner step: add coefficient_8 - let t176 = circuit_mul(t175, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 - let t177 = circuit_add(in48, t176); // Eval sumdlogdiv_b_den Horner step: add coefficient_7 - let t178 = circuit_mul(t177, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 - let t179 = circuit_add(in47, t178); // Eval sumdlogdiv_b_den Horner step: add coefficient_6 - let t180 = circuit_mul(t179, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 - let t181 = circuit_add(in46, t180); // Eval sumdlogdiv_b_den Horner step: add coefficient_5 - let t182 = circuit_mul(t181, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 - let t183 = circuit_add(in45, t182); // Eval sumdlogdiv_b_den Horner step: add coefficient_4 - let t184 = circuit_mul(t183, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 - let t185 = circuit_add(in44, t184); // Eval sumdlogdiv_b_den Horner step: add coefficient_3 - let t186 = circuit_mul(t185, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 - let t187 = circuit_add(in43, t186); // Eval sumdlogdiv_b_den Horner step: add coefficient_2 - let t188 = circuit_mul(t187, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 - let t189 = circuit_add(in42, t188); // Eval sumdlogdiv_b_den Horner step: add coefficient_1 - let t190 = circuit_mul(t189, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 - let t191 = circuit_add(in41, t190); // Eval sumdlogdiv_b_den Horner step: add coefficient_0 - let t192 = circuit_inverse(t191); - let t193 = circuit_mul(t163, t192); - let t194 = circuit_mul(in3, t193); - let t195 = circuit_add(t141, t194); - let t196 = circuit_mul(in4, t97); - let t197 = circuit_mul(in5, t195); - let t198 = circuit_sub(t196, t197); - - let modulus = get_p(curve_index); - let modulus = TryInto::< - _, CircuitModulus - >::try_into([modulus.limb0, modulus.limb1, modulus.limb2, modulus.limb3]) - .unwrap(); - - let mut circuit_inputs = (t198,).new_inputs(); + let t117 = circuit_add(in16, t116); // Eval sumdlogdiv_a_num Horner step: add coefficient_10 + let t118 = circuit_mul(t117, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t119 = circuit_add(in15, t118); // Eval sumdlogdiv_a_num Horner step: add coefficient_9 + let t120 = circuit_mul(t119, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t121 = circuit_add(in14, t120); // Eval sumdlogdiv_a_num Horner step: add coefficient_8 + let t122 = circuit_mul(t121, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t123 = circuit_add(in13, t122); // Eval sumdlogdiv_a_num Horner step: add coefficient_7 + let t124 = circuit_mul(t123, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t125 = circuit_add(in12, t124); // Eval sumdlogdiv_a_num Horner step: add coefficient_6 + let t126 = circuit_mul(t125, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t127 = circuit_add(in11, t126); // Eval sumdlogdiv_a_num Horner step: add coefficient_5 + let t128 = circuit_mul(t127, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t129 = circuit_add(in10, t128); // Eval sumdlogdiv_a_num Horner step: add coefficient_4 + let t130 = circuit_mul(t129, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t131 = circuit_add(in9, t130); // Eval sumdlogdiv_a_num Horner step: add coefficient_3 + let t132 = circuit_mul(t131, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t133 = circuit_add(in8, t132); // Eval sumdlogdiv_a_num Horner step: add coefficient_2 + let t134 = circuit_mul(t133, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t135 = circuit_add(in7, t134); // Eval sumdlogdiv_a_num Horner step: add coefficient_1 + let t136 = circuit_mul(t135, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t137 = circuit_add(in6, t136); // Eval sumdlogdiv_a_num Horner step: add coefficient_0 + let t138 = circuit_mul(in32, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t139 = circuit_add(in31, t138); // Eval sumdlogdiv_a_den Horner step: add coefficient_12 + let t140 = circuit_mul(t139, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t141 = circuit_add(in30, t140); // Eval sumdlogdiv_a_den Horner step: add coefficient_11 + let t142 = circuit_mul(t141, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t143 = circuit_add(in29, t142); // Eval sumdlogdiv_a_den Horner step: add coefficient_10 + let t144 = circuit_mul(t143, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t145 = circuit_add(in28, t144); // Eval sumdlogdiv_a_den Horner step: add coefficient_9 + let t146 = circuit_mul(t145, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t147 = circuit_add(in27, t146); // Eval sumdlogdiv_a_den Horner step: add coefficient_8 + let t148 = circuit_mul(t147, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t149 = circuit_add(in26, t148); // Eval sumdlogdiv_a_den Horner step: add coefficient_7 + let t150 = circuit_mul(t149, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t151 = circuit_add(in25, t150); // Eval sumdlogdiv_a_den Horner step: add coefficient_6 + let t152 = circuit_mul(t151, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t153 = circuit_add(in24, t152); // Eval sumdlogdiv_a_den Horner step: add coefficient_5 + let t154 = circuit_mul(t153, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t155 = circuit_add(in23, t154); // Eval sumdlogdiv_a_den Horner step: add coefficient_4 + let t156 = circuit_mul(t155, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t157 = circuit_add(in22, t156); // Eval sumdlogdiv_a_den Horner step: add coefficient_3 + let t158 = circuit_mul(t157, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t159 = circuit_add(in21, t158); // Eval sumdlogdiv_a_den Horner step: add coefficient_2 + let t160 = circuit_mul(t159, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t161 = circuit_add(in20, t160); // Eval sumdlogdiv_a_den Horner step: add coefficient_1 + let t162 = circuit_mul(t161, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t163 = circuit_add(in19, t162); // Eval sumdlogdiv_a_den Horner step: add coefficient_0 + let t164 = circuit_inverse(t163); + let t165 = circuit_mul(t137, t164); + let t166 = circuit_mul(in46, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t167 = circuit_add(in45, t166); // Eval sumdlogdiv_b_num Horner step: add coefficient_12 + let t168 = circuit_mul(t167, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t169 = circuit_add(in44, t168); // Eval sumdlogdiv_b_num Horner step: add coefficient_11 + let t170 = circuit_mul(t169, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t171 = circuit_add(in43, t170); // Eval sumdlogdiv_b_num Horner step: add coefficient_10 + let t172 = circuit_mul(t171, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t173 = circuit_add(in42, t172); // Eval sumdlogdiv_b_num Horner step: add coefficient_9 + let t174 = circuit_mul(t173, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t175 = circuit_add(in41, t174); // Eval sumdlogdiv_b_num Horner step: add coefficient_8 + let t176 = circuit_mul(t175, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t177 = circuit_add(in40, t176); // Eval sumdlogdiv_b_num Horner step: add coefficient_7 + let t178 = circuit_mul(t177, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t179 = circuit_add(in39, t178); // Eval sumdlogdiv_b_num Horner step: add coefficient_6 + let t180 = circuit_mul(t179, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t181 = circuit_add(in38, t180); // Eval sumdlogdiv_b_num Horner step: add coefficient_5 + let t182 = circuit_mul(t181, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t183 = circuit_add(in37, t182); // Eval sumdlogdiv_b_num Horner step: add coefficient_4 + let t184 = circuit_mul(t183, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t185 = circuit_add(in36, t184); // Eval sumdlogdiv_b_num Horner step: add coefficient_3 + let t186 = circuit_mul(t185, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t187 = circuit_add(in35, t186); // Eval sumdlogdiv_b_num Horner step: add coefficient_2 + let t188 = circuit_mul(t187, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t189 = circuit_add(in34, t188); // Eval sumdlogdiv_b_num Horner step: add coefficient_1 + let t190 = circuit_mul(t189, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t191 = circuit_add(in33, t190); // Eval sumdlogdiv_b_num Horner step: add coefficient_0 + let t192 = circuit_mul(in63, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t193 = circuit_add(in62, t192); // Eval sumdlogdiv_b_den Horner step: add coefficient_15 + let t194 = circuit_mul(t193, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t195 = circuit_add(in61, t194); // Eval sumdlogdiv_b_den Horner step: add coefficient_14 + let t196 = circuit_mul(t195, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t197 = circuit_add(in60, t196); // Eval sumdlogdiv_b_den Horner step: add coefficient_13 + let t198 = circuit_mul(t197, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t199 = circuit_add(in59, t198); // Eval sumdlogdiv_b_den Horner step: add coefficient_12 + let t200 = circuit_mul(t199, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t201 = circuit_add(in58, t200); // Eval sumdlogdiv_b_den Horner step: add coefficient_11 + let t202 = circuit_mul(t201, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t203 = circuit_add(in57, t202); // Eval sumdlogdiv_b_den Horner step: add coefficient_10 + let t204 = circuit_mul(t203, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t205 = circuit_add(in56, t204); // Eval sumdlogdiv_b_den Horner step: add coefficient_9 + let t206 = circuit_mul(t205, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t207 = circuit_add(in55, t206); // Eval sumdlogdiv_b_den Horner step: add coefficient_8 + let t208 = circuit_mul(t207, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t209 = circuit_add(in54, t208); // Eval sumdlogdiv_b_den Horner step: add coefficient_7 + let t210 = circuit_mul(t209, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t211 = circuit_add(in53, t210); // Eval sumdlogdiv_b_den Horner step: add coefficient_6 + let t212 = circuit_mul(t211, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t213 = circuit_add(in52, t212); // Eval sumdlogdiv_b_den Horner step: add coefficient_5 + let t214 = circuit_mul(t213, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t215 = circuit_add(in51, t214); // Eval sumdlogdiv_b_den Horner step: add coefficient_4 + let t216 = circuit_mul(t215, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t217 = circuit_add(in50, t216); // Eval sumdlogdiv_b_den Horner step: add coefficient_3 + let t218 = circuit_mul(t217, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t219 = circuit_add(in49, t218); // Eval sumdlogdiv_b_den Horner step: add coefficient_2 + let t220 = circuit_mul(t219, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t221 = circuit_add(in48, t220); // Eval sumdlogdiv_b_den Horner step: add coefficient_1 + let t222 = circuit_mul(t221, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t223 = circuit_add(in47, t222); // Eval sumdlogdiv_b_den Horner step: add coefficient_0 + let t224 = circuit_inverse(t223); + let t225 = circuit_mul(t191, t224); + let t226 = circuit_mul(in3, t225); + let t227 = circuit_add(t165, t226); + let t228 = circuit_mul(in4, t113); + let t229 = circuit_mul(in5, t227); + let t230 = circuit_sub(t228, t229); + + let modulus = get_modulus(curve_index); + + let mut circuit_inputs = (t230,).new_inputs(); // Prefill constants: // Fill inputs: @@ -486,275 +643,36 @@ fn run_EVAL_FN_CHALLENGE_DUPL_10P_circuit( circuit_inputs = circuit_inputs.next_2(A2.y); // in3 circuit_inputs = circuit_inputs.next_2(coeff0); // in4 circuit_inputs = circuit_inputs.next_2(coeff2); // in5 - let mut SumDlogDiv_a_num = SumDlogDiv.a_num; - while let Option::Some(val) = SumDlogDiv_a_num.pop_front() { + let mut SumDlogDivBatched_a_num = SumDlogDivBatched.a_num; + while let Option::Some(val) = SumDlogDivBatched_a_num.pop_front() { circuit_inputs = circuit_inputs.next_2(*val); }; - let mut SumDlogDiv_a_den = SumDlogDiv.a_den; - while let Option::Some(val) = SumDlogDiv_a_den.pop_front() { + let mut SumDlogDivBatched_a_den = SumDlogDivBatched.a_den; + while let Option::Some(val) = SumDlogDivBatched_a_den.pop_front() { circuit_inputs = circuit_inputs.next_2(*val); }; - let mut SumDlogDiv_b_num = SumDlogDiv.b_num; - while let Option::Some(val) = SumDlogDiv_b_num.pop_front() { + let mut SumDlogDivBatched_b_num = SumDlogDivBatched.b_num; + while let Option::Some(val) = SumDlogDivBatched_b_num.pop_front() { circuit_inputs = circuit_inputs.next_2(*val); }; - let mut SumDlogDiv_b_den = SumDlogDiv.b_den; - while let Option::Some(val) = SumDlogDiv_b_den.pop_front() { + let mut SumDlogDivBatched_b_den = SumDlogDivBatched.b_den; + while let Option::Some(val) = SumDlogDivBatched_b_den.pop_front() { circuit_inputs = circuit_inputs.next_2(*val); }; - // in6 - in55 + // in6 - in63 let outputs = circuit_inputs.done_2().eval(modulus).unwrap(); - let res: u384 = outputs.get_output(t198); + let res: u384 = outputs.get_output(t230); return (res,); } #[inline(always)] -fn run_EVAL_FN_CHALLENGE_DUPL_1P_circuit( +pub fn run_EVAL_FN_CHALLENGE_DUPL_1P_RLC_circuit( A0: G1Point, A2: G1Point, coeff0: u384, coeff2: u384, - SumDlogDiv: FunctionFelt, - curve_index: usize -) -> (u384,) { - // INPUT stack - let (in0, in1, in2) = (CE::> {}, CE::> {}, CE::> {}); - let (in3, in4, in5) = (CE::> {}, CE::> {}, CE::> {}); - let (in6, in7, in8) = (CE::> {}, CE::> {}, CE::> {}); - let (in9, in10, in11) = (CE::> {}, CE::> {}, CE::> {}); - let (in12, in13, in14) = (CE::> {}, CE::> {}, CE::> {}); - let (in15, in16, in17) = (CE::> {}, CE::> {}, CE::> {}); - let (in18, in19) = (CE::> {}, CE::> {}); - let t0 = circuit_mul(in7, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 - let t1 = circuit_add(in6, t0); // Eval sumdlogdiv_a_num Horner step: add coefficient_0 - let t2 = circuit_mul(in10, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 - let t3 = circuit_add(in9, t2); // Eval sumdlogdiv_a_den Horner step: add coefficient_1 - let t4 = circuit_mul(t3, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 - let t5 = circuit_add(in8, t4); // Eval sumdlogdiv_a_den Horner step: add coefficient_0 - let t6 = circuit_inverse(t5); - let t7 = circuit_mul(t1, t6); - let t8 = circuit_mul(in13, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 - let t9 = circuit_add(in12, t8); // Eval sumdlogdiv_b_num Horner step: add coefficient_1 - let t10 = circuit_mul(t9, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 - let t11 = circuit_add(in11, t10); // Eval sumdlogdiv_b_num Horner step: add coefficient_0 - let t12 = circuit_mul(in19, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 - let t13 = circuit_add(in18, t12); // Eval sumdlogdiv_b_den Horner step: add coefficient_4 - let t14 = circuit_mul(t13, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 - let t15 = circuit_add(in17, t14); // Eval sumdlogdiv_b_den Horner step: add coefficient_3 - let t16 = circuit_mul(t15, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 - let t17 = circuit_add(in16, t16); // Eval sumdlogdiv_b_den Horner step: add coefficient_2 - let t18 = circuit_mul(t17, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 - let t19 = circuit_add(in15, t18); // Eval sumdlogdiv_b_den Horner step: add coefficient_1 - let t20 = circuit_mul(t19, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 - let t21 = circuit_add(in14, t20); // Eval sumdlogdiv_b_den Horner step: add coefficient_0 - let t22 = circuit_inverse(t21); - let t23 = circuit_mul(t11, t22); - let t24 = circuit_mul(in1, t23); - let t25 = circuit_add(t7, t24); - let t26 = circuit_mul(in7, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 - let t27 = circuit_add(in6, t26); // Eval sumdlogdiv_a_num Horner step: add coefficient_0 - let t28 = circuit_mul(in10, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 - let t29 = circuit_add(in9, t28); // Eval sumdlogdiv_a_den Horner step: add coefficient_1 - let t30 = circuit_mul(t29, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 - let t31 = circuit_add(in8, t30); // Eval sumdlogdiv_a_den Horner step: add coefficient_0 - let t32 = circuit_inverse(t31); - let t33 = circuit_mul(t27, t32); - let t34 = circuit_mul(in13, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 - let t35 = circuit_add(in12, t34); // Eval sumdlogdiv_b_num Horner step: add coefficient_1 - let t36 = circuit_mul(t35, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 - let t37 = circuit_add(in11, t36); // Eval sumdlogdiv_b_num Horner step: add coefficient_0 - let t38 = circuit_mul(in19, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 - let t39 = circuit_add(in18, t38); // Eval sumdlogdiv_b_den Horner step: add coefficient_4 - let t40 = circuit_mul(t39, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 - let t41 = circuit_add(in17, t40); // Eval sumdlogdiv_b_den Horner step: add coefficient_3 - let t42 = circuit_mul(t41, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 - let t43 = circuit_add(in16, t42); // Eval sumdlogdiv_b_den Horner step: add coefficient_2 - let t44 = circuit_mul(t43, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 - let t45 = circuit_add(in15, t44); // Eval sumdlogdiv_b_den Horner step: add coefficient_1 - let t46 = circuit_mul(t45, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 - let t47 = circuit_add(in14, t46); // Eval sumdlogdiv_b_den Horner step: add coefficient_0 - let t48 = circuit_inverse(t47); - let t49 = circuit_mul(t37, t48); - let t50 = circuit_mul(in3, t49); - let t51 = circuit_add(t33, t50); - let t52 = circuit_mul(in4, t25); - let t53 = circuit_mul(in5, t51); - let t54 = circuit_sub(t52, t53); - - let modulus = get_p(curve_index); - let modulus = TryInto::< - _, CircuitModulus - >::try_into([modulus.limb0, modulus.limb1, modulus.limb2, modulus.limb3]) - .unwrap(); - - let mut circuit_inputs = (t54,).new_inputs(); - // Prefill constants: - - // Fill inputs: - circuit_inputs = circuit_inputs.next_2(A0.x); // in0 - circuit_inputs = circuit_inputs.next_2(A0.y); // in1 - circuit_inputs = circuit_inputs.next_2(A2.x); // in2 - circuit_inputs = circuit_inputs.next_2(A2.y); // in3 - circuit_inputs = circuit_inputs.next_2(coeff0); // in4 - circuit_inputs = circuit_inputs.next_2(coeff2); // in5 - let mut SumDlogDiv_a_num = SumDlogDiv.a_num; - while let Option::Some(val) = SumDlogDiv_a_num.pop_front() { - circuit_inputs = circuit_inputs.next_2(*val); - }; - let mut SumDlogDiv_a_den = SumDlogDiv.a_den; - while let Option::Some(val) = SumDlogDiv_a_den.pop_front() { - circuit_inputs = circuit_inputs.next_2(*val); - }; - let mut SumDlogDiv_b_num = SumDlogDiv.b_num; - while let Option::Some(val) = SumDlogDiv_b_num.pop_front() { - circuit_inputs = circuit_inputs.next_2(*val); - }; - let mut SumDlogDiv_b_den = SumDlogDiv.b_den; - while let Option::Some(val) = SumDlogDiv_b_den.pop_front() { - circuit_inputs = circuit_inputs.next_2(*val); - }; - // in6 - in19 - - let outputs = circuit_inputs.done_2().eval(modulus).unwrap(); - let res: u384 = outputs.get_output(t54); - return (res,); -} -#[inline(always)] -fn run_EVAL_FN_CHALLENGE_DUPL_2P_circuit( - A0: G1Point, - A2: G1Point, - coeff0: u384, - coeff2: u384, - SumDlogDiv: FunctionFelt, - curve_index: usize -) -> (u384,) { - // INPUT stack - let (in0, in1, in2) = (CE::> {}, CE::> {}, CE::> {}); - let (in3, in4, in5) = (CE::> {}, CE::> {}, CE::> {}); - let (in6, in7, in8) = (CE::> {}, CE::> {}, CE::> {}); - let (in9, in10, in11) = (CE::> {}, CE::> {}, CE::> {}); - let (in12, in13, in14) = (CE::> {}, CE::> {}, CE::> {}); - let (in15, in16, in17) = (CE::> {}, CE::> {}, CE::> {}); - let (in18, in19, in20) = (CE::> {}, CE::> {}, CE::> {}); - let (in21, in22, in23) = (CE::> {}, CE::> {}, CE::> {}); - let t0 = circuit_mul(in8, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 - let t1 = circuit_add(in7, t0); // Eval sumdlogdiv_a_num Horner step: add coefficient_1 - let t2 = circuit_mul(t1, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 - let t3 = circuit_add(in6, t2); // Eval sumdlogdiv_a_num Horner step: add coefficient_0 - let t4 = circuit_mul(in12, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 - let t5 = circuit_add(in11, t4); // Eval sumdlogdiv_a_den Horner step: add coefficient_2 - let t6 = circuit_mul(t5, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 - let t7 = circuit_add(in10, t6); // Eval sumdlogdiv_a_den Horner step: add coefficient_1 - let t8 = circuit_mul(t7, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 - let t9 = circuit_add(in9, t8); // Eval sumdlogdiv_a_den Horner step: add coefficient_0 - let t10 = circuit_inverse(t9); - let t11 = circuit_mul(t3, t10); - let t12 = circuit_mul(in16, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 - let t13 = circuit_add(in15, t12); // Eval sumdlogdiv_b_num Horner step: add coefficient_2 - let t14 = circuit_mul(t13, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 - let t15 = circuit_add(in14, t14); // Eval sumdlogdiv_b_num Horner step: add coefficient_1 - let t16 = circuit_mul(t15, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 - let t17 = circuit_add(in13, t16); // Eval sumdlogdiv_b_num Horner step: add coefficient_0 - let t18 = circuit_mul(in23, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 - let t19 = circuit_add(in22, t18); // Eval sumdlogdiv_b_den Horner step: add coefficient_5 - let t20 = circuit_mul(t19, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 - let t21 = circuit_add(in21, t20); // Eval sumdlogdiv_b_den Horner step: add coefficient_4 - let t22 = circuit_mul(t21, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 - let t23 = circuit_add(in20, t22); // Eval sumdlogdiv_b_den Horner step: add coefficient_3 - let t24 = circuit_mul(t23, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 - let t25 = circuit_add(in19, t24); // Eval sumdlogdiv_b_den Horner step: add coefficient_2 - let t26 = circuit_mul(t25, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 - let t27 = circuit_add(in18, t26); // Eval sumdlogdiv_b_den Horner step: add coefficient_1 - let t28 = circuit_mul(t27, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 - let t29 = circuit_add(in17, t28); // Eval sumdlogdiv_b_den Horner step: add coefficient_0 - let t30 = circuit_inverse(t29); - let t31 = circuit_mul(t17, t30); - let t32 = circuit_mul(in1, t31); - let t33 = circuit_add(t11, t32); - let t34 = circuit_mul(in8, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 - let t35 = circuit_add(in7, t34); // Eval sumdlogdiv_a_num Horner step: add coefficient_1 - let t36 = circuit_mul(t35, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 - let t37 = circuit_add(in6, t36); // Eval sumdlogdiv_a_num Horner step: add coefficient_0 - let t38 = circuit_mul(in12, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 - let t39 = circuit_add(in11, t38); // Eval sumdlogdiv_a_den Horner step: add coefficient_2 - let t40 = circuit_mul(t39, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 - let t41 = circuit_add(in10, t40); // Eval sumdlogdiv_a_den Horner step: add coefficient_1 - let t42 = circuit_mul(t41, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 - let t43 = circuit_add(in9, t42); // Eval sumdlogdiv_a_den Horner step: add coefficient_0 - let t44 = circuit_inverse(t43); - let t45 = circuit_mul(t37, t44); - let t46 = circuit_mul(in16, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 - let t47 = circuit_add(in15, t46); // Eval sumdlogdiv_b_num Horner step: add coefficient_2 - let t48 = circuit_mul(t47, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 - let t49 = circuit_add(in14, t48); // Eval sumdlogdiv_b_num Horner step: add coefficient_1 - let t50 = circuit_mul(t49, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 - let t51 = circuit_add(in13, t50); // Eval sumdlogdiv_b_num Horner step: add coefficient_0 - let t52 = circuit_mul(in23, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 - let t53 = circuit_add(in22, t52); // Eval sumdlogdiv_b_den Horner step: add coefficient_5 - let t54 = circuit_mul(t53, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 - let t55 = circuit_add(in21, t54); // Eval sumdlogdiv_b_den Horner step: add coefficient_4 - let t56 = circuit_mul(t55, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 - let t57 = circuit_add(in20, t56); // Eval sumdlogdiv_b_den Horner step: add coefficient_3 - let t58 = circuit_mul(t57, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 - let t59 = circuit_add(in19, t58); // Eval sumdlogdiv_b_den Horner step: add coefficient_2 - let t60 = circuit_mul(t59, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 - let t61 = circuit_add(in18, t60); // Eval sumdlogdiv_b_den Horner step: add coefficient_1 - let t62 = circuit_mul(t61, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 - let t63 = circuit_add(in17, t62); // Eval sumdlogdiv_b_den Horner step: add coefficient_0 - let t64 = circuit_inverse(t63); - let t65 = circuit_mul(t51, t64); - let t66 = circuit_mul(in3, t65); - let t67 = circuit_add(t45, t66); - let t68 = circuit_mul(in4, t33); - let t69 = circuit_mul(in5, t67); - let t70 = circuit_sub(t68, t69); - - let modulus = get_p(curve_index); - let modulus = TryInto::< - _, CircuitModulus - >::try_into([modulus.limb0, modulus.limb1, modulus.limb2, modulus.limb3]) - .unwrap(); - - let mut circuit_inputs = (t70,).new_inputs(); - // Prefill constants: - - // Fill inputs: - circuit_inputs = circuit_inputs.next_2(A0.x); // in0 - circuit_inputs = circuit_inputs.next_2(A0.y); // in1 - circuit_inputs = circuit_inputs.next_2(A2.x); // in2 - circuit_inputs = circuit_inputs.next_2(A2.y); // in3 - circuit_inputs = circuit_inputs.next_2(coeff0); // in4 - circuit_inputs = circuit_inputs.next_2(coeff2); // in5 - let mut SumDlogDiv_a_num = SumDlogDiv.a_num; - while let Option::Some(val) = SumDlogDiv_a_num.pop_front() { - circuit_inputs = circuit_inputs.next_2(*val); - }; - let mut SumDlogDiv_a_den = SumDlogDiv.a_den; - while let Option::Some(val) = SumDlogDiv_a_den.pop_front() { - circuit_inputs = circuit_inputs.next_2(*val); - }; - let mut SumDlogDiv_b_num = SumDlogDiv.b_num; - while let Option::Some(val) = SumDlogDiv_b_num.pop_front() { - circuit_inputs = circuit_inputs.next_2(*val); - }; - let mut SumDlogDiv_b_den = SumDlogDiv.b_den; - while let Option::Some(val) = SumDlogDiv_b_den.pop_front() { - circuit_inputs = circuit_inputs.next_2(*val); - }; - // in6 - in23 - - let outputs = circuit_inputs.done_2().eval(modulus).unwrap(); - let res: u384 = outputs.get_output(t70); - return (res,); -} -#[inline(always)] -fn run_EVAL_FN_CHALLENGE_DUPL_3P_circuit( - A0: G1Point, - A2: G1Point, - coeff0: u384, - coeff2: u384, - SumDlogDiv: FunctionFelt, - curve_index: usize + SumDlogDivBatched: FunctionFelt, + curve_index: usize, ) -> (u384,) { // INPUT stack let (in0, in1, in2) = (CE::> {}, CE::> {}, CE::> {}); @@ -855,11 +773,7 @@ fn run_EVAL_FN_CHALLENGE_DUPL_3P_circuit( let t85 = circuit_mul(in5, t83); let t86 = circuit_sub(t84, t85); - let modulus = get_p(curve_index); - let modulus = TryInto::< - _, CircuitModulus - >::try_into([modulus.limb0, modulus.limb1, modulus.limb2, modulus.limb3]) - .unwrap(); + let modulus = get_modulus(curve_index); let mut circuit_inputs = (t86,).new_inputs(); // Prefill constants: @@ -871,20 +785,20 @@ fn run_EVAL_FN_CHALLENGE_DUPL_3P_circuit( circuit_inputs = circuit_inputs.next_2(A2.y); // in3 circuit_inputs = circuit_inputs.next_2(coeff0); // in4 circuit_inputs = circuit_inputs.next_2(coeff2); // in5 - let mut SumDlogDiv_a_num = SumDlogDiv.a_num; - while let Option::Some(val) = SumDlogDiv_a_num.pop_front() { + let mut SumDlogDivBatched_a_num = SumDlogDivBatched.a_num; + while let Option::Some(val) = SumDlogDivBatched_a_num.pop_front() { circuit_inputs = circuit_inputs.next_2(*val); }; - let mut SumDlogDiv_a_den = SumDlogDiv.a_den; - while let Option::Some(val) = SumDlogDiv_a_den.pop_front() { + let mut SumDlogDivBatched_a_den = SumDlogDivBatched.a_den; + while let Option::Some(val) = SumDlogDivBatched_a_den.pop_front() { circuit_inputs = circuit_inputs.next_2(*val); }; - let mut SumDlogDiv_b_num = SumDlogDiv.b_num; - while let Option::Some(val) = SumDlogDiv_b_num.pop_front() { + let mut SumDlogDivBatched_b_num = SumDlogDivBatched.b_num; + while let Option::Some(val) = SumDlogDivBatched_b_num.pop_front() { circuit_inputs = circuit_inputs.next_2(*val); }; - let mut SumDlogDiv_b_den = SumDlogDiv.b_den; - while let Option::Some(val) = SumDlogDiv_b_den.pop_front() { + let mut SumDlogDivBatched_b_den = SumDlogDivBatched.b_den; + while let Option::Some(val) = SumDlogDivBatched_b_den.pop_front() { circuit_inputs = circuit_inputs.next_2(*val); }; // in6 - in27 @@ -894,13 +808,13 @@ fn run_EVAL_FN_CHALLENGE_DUPL_3P_circuit( return (res,); } #[inline(always)] -fn run_EVAL_FN_CHALLENGE_DUPL_4P_circuit( +pub fn run_EVAL_FN_CHALLENGE_DUPL_1P_circuit( A0: G1Point, A2: G1Point, coeff0: u384, coeff2: u384, SumDlogDiv: FunctionFelt, - curve_index: usize + curve_index: usize, ) -> (u384,) { // INPUT stack let (in0, in1, in2) = (CE::> {}, CE::> {}, CE::> {}); @@ -909,65 +823,172 @@ fn run_EVAL_FN_CHALLENGE_DUPL_4P_circuit( let (in9, in10, in11) = (CE::> {}, CE::> {}, CE::> {}); let (in12, in13, in14) = (CE::> {}, CE::> {}, CE::> {}); let (in15, in16, in17) = (CE::> {}, CE::> {}, CE::> {}); - let (in18, in19, in20) = (CE::> {}, CE::> {}, CE::> {}); - let (in21, in22, in23) = (CE::> {}, CE::> {}, CE::> {}); - let (in24, in25, in26) = (CE::> {}, CE::> {}, CE::> {}); - let (in27, in28, in29) = (CE::> {}, CE::> {}, CE::> {}); - let (in30, in31) = (CE::> {}, CE::> {}); - let t0 = circuit_mul(in10, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 - let t1 = circuit_add(in9, t0); // Eval sumdlogdiv_a_num Horner step: add coefficient_3 - let t2 = circuit_mul(t1, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 - let t3 = circuit_add(in8, t2); // Eval sumdlogdiv_a_num Horner step: add coefficient_2 - let t4 = circuit_mul(t3, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 - let t5 = circuit_add(in7, t4); // Eval sumdlogdiv_a_num Horner step: add coefficient_1 - let t6 = circuit_mul(t5, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 - let t7 = circuit_add(in6, t6); // Eval sumdlogdiv_a_num Horner step: add coefficient_0 - let t8 = circuit_mul(in16, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 - let t9 = circuit_add(in15, t8); // Eval sumdlogdiv_a_den Horner step: add coefficient_4 - let t10 = circuit_mul(t9, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 - let t11 = circuit_add(in14, t10); // Eval sumdlogdiv_a_den Horner step: add coefficient_3 - let t12 = circuit_mul(t11, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 - let t13 = circuit_add(in13, t12); // Eval sumdlogdiv_a_den Horner step: add coefficient_2 - let t14 = circuit_mul(t13, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 - let t15 = circuit_add(in12, t14); // Eval sumdlogdiv_a_den Horner step: add coefficient_1 - let t16 = circuit_mul(t15, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 - let t17 = circuit_add(in11, t16); // Eval sumdlogdiv_a_den Horner step: add coefficient_0 - let t18 = circuit_inverse(t17); - let t19 = circuit_mul(t7, t18); - let t20 = circuit_mul(in22, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 - let t21 = circuit_add(in21, t20); // Eval sumdlogdiv_b_num Horner step: add coefficient_4 - let t22 = circuit_mul(t21, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 - let t23 = circuit_add(in20, t22); // Eval sumdlogdiv_b_num Horner step: add coefficient_3 - let t24 = circuit_mul(t23, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 - let t25 = circuit_add(in19, t24); // Eval sumdlogdiv_b_num Horner step: add coefficient_2 - let t26 = circuit_mul(t25, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 - let t27 = circuit_add(in18, t26); // Eval sumdlogdiv_b_num Horner step: add coefficient_1 - let t28 = circuit_mul(t27, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 - let t29 = circuit_add(in17, t28); // Eval sumdlogdiv_b_num Horner step: add coefficient_0 - let t30 = circuit_mul(in31, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 - let t31 = circuit_add(in30, t30); // Eval sumdlogdiv_b_den Horner step: add coefficient_7 - let t32 = circuit_mul(t31, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 - let t33 = circuit_add(in29, t32); // Eval sumdlogdiv_b_den Horner step: add coefficient_6 - let t34 = circuit_mul(t33, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 - let t35 = circuit_add(in28, t34); // Eval sumdlogdiv_b_den Horner step: add coefficient_5 - let t36 = circuit_mul(t35, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 - let t37 = circuit_add(in27, t36); // Eval sumdlogdiv_b_den Horner step: add coefficient_4 - let t38 = circuit_mul(t37, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 - let t39 = circuit_add(in26, t38); // Eval sumdlogdiv_b_den Horner step: add coefficient_3 - let t40 = circuit_mul(t39, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 - let t41 = circuit_add(in25, t40); // Eval sumdlogdiv_b_den Horner step: add coefficient_2 - let t42 = circuit_mul(t41, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 - let t43 = circuit_add(in24, t42); // Eval sumdlogdiv_b_den Horner step: add coefficient_1 - let t44 = circuit_mul(t43, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 - let t45 = circuit_add(in23, t44); // Eval sumdlogdiv_b_den Horner step: add coefficient_0 - let t46 = circuit_inverse(t45); - let t47 = circuit_mul(t29, t46); - let t48 = circuit_mul(in1, t47); - let t49 = circuit_add(t19, t48); - let t50 = circuit_mul(in10, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 - let t51 = circuit_add(in9, t50); // Eval sumdlogdiv_a_num Horner step: add coefficient_3 - let t52 = circuit_mul(t51, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 - let t53 = circuit_add(in8, t52); // Eval sumdlogdiv_a_num Horner step: add coefficient_2 + let (in18, in19) = (CE::> {}, CE::> {}); + let t0 = circuit_mul(in7, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t1 = circuit_add(in6, t0); // Eval sumdlogdiv_a_num Horner step: add coefficient_0 + let t2 = circuit_mul(in10, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t3 = circuit_add(in9, t2); // Eval sumdlogdiv_a_den Horner step: add coefficient_1 + let t4 = circuit_mul(t3, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t5 = circuit_add(in8, t4); // Eval sumdlogdiv_a_den Horner step: add coefficient_0 + let t6 = circuit_inverse(t5); + let t7 = circuit_mul(t1, t6); + let t8 = circuit_mul(in13, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t9 = circuit_add(in12, t8); // Eval sumdlogdiv_b_num Horner step: add coefficient_1 + let t10 = circuit_mul(t9, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t11 = circuit_add(in11, t10); // Eval sumdlogdiv_b_num Horner step: add coefficient_0 + let t12 = circuit_mul(in19, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t13 = circuit_add(in18, t12); // Eval sumdlogdiv_b_den Horner step: add coefficient_4 + let t14 = circuit_mul(t13, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t15 = circuit_add(in17, t14); // Eval sumdlogdiv_b_den Horner step: add coefficient_3 + let t16 = circuit_mul(t15, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t17 = circuit_add(in16, t16); // Eval sumdlogdiv_b_den Horner step: add coefficient_2 + let t18 = circuit_mul(t17, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t19 = circuit_add(in15, t18); // Eval sumdlogdiv_b_den Horner step: add coefficient_1 + let t20 = circuit_mul(t19, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t21 = circuit_add(in14, t20); // Eval sumdlogdiv_b_den Horner step: add coefficient_0 + let t22 = circuit_inverse(t21); + let t23 = circuit_mul(t11, t22); + let t24 = circuit_mul(in1, t23); + let t25 = circuit_add(t7, t24); + let t26 = circuit_mul(in7, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t27 = circuit_add(in6, t26); // Eval sumdlogdiv_a_num Horner step: add coefficient_0 + let t28 = circuit_mul(in10, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t29 = circuit_add(in9, t28); // Eval sumdlogdiv_a_den Horner step: add coefficient_1 + let t30 = circuit_mul(t29, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t31 = circuit_add(in8, t30); // Eval sumdlogdiv_a_den Horner step: add coefficient_0 + let t32 = circuit_inverse(t31); + let t33 = circuit_mul(t27, t32); + let t34 = circuit_mul(in13, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t35 = circuit_add(in12, t34); // Eval sumdlogdiv_b_num Horner step: add coefficient_1 + let t36 = circuit_mul(t35, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t37 = circuit_add(in11, t36); // Eval sumdlogdiv_b_num Horner step: add coefficient_0 + let t38 = circuit_mul(in19, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t39 = circuit_add(in18, t38); // Eval sumdlogdiv_b_den Horner step: add coefficient_4 + let t40 = circuit_mul(t39, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t41 = circuit_add(in17, t40); // Eval sumdlogdiv_b_den Horner step: add coefficient_3 + let t42 = circuit_mul(t41, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t43 = circuit_add(in16, t42); // Eval sumdlogdiv_b_den Horner step: add coefficient_2 + let t44 = circuit_mul(t43, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t45 = circuit_add(in15, t44); // Eval sumdlogdiv_b_den Horner step: add coefficient_1 + let t46 = circuit_mul(t45, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t47 = circuit_add(in14, t46); // Eval sumdlogdiv_b_den Horner step: add coefficient_0 + let t48 = circuit_inverse(t47); + let t49 = circuit_mul(t37, t48); + let t50 = circuit_mul(in3, t49); + let t51 = circuit_add(t33, t50); + let t52 = circuit_mul(in4, t25); + let t53 = circuit_mul(in5, t51); + let t54 = circuit_sub(t52, t53); + + let modulus = get_modulus(curve_index); + + let mut circuit_inputs = (t54,).new_inputs(); + // Prefill constants: + + // Fill inputs: + circuit_inputs = circuit_inputs.next_2(A0.x); // in0 + circuit_inputs = circuit_inputs.next_2(A0.y); // in1 + circuit_inputs = circuit_inputs.next_2(A2.x); // in2 + circuit_inputs = circuit_inputs.next_2(A2.y); // in3 + circuit_inputs = circuit_inputs.next_2(coeff0); // in4 + circuit_inputs = circuit_inputs.next_2(coeff2); // in5 + let mut SumDlogDiv_a_num = SumDlogDiv.a_num; + while let Option::Some(val) = SumDlogDiv_a_num.pop_front() { + circuit_inputs = circuit_inputs.next_2(*val); + }; + let mut SumDlogDiv_a_den = SumDlogDiv.a_den; + while let Option::Some(val) = SumDlogDiv_a_den.pop_front() { + circuit_inputs = circuit_inputs.next_2(*val); + }; + let mut SumDlogDiv_b_num = SumDlogDiv.b_num; + while let Option::Some(val) = SumDlogDiv_b_num.pop_front() { + circuit_inputs = circuit_inputs.next_2(*val); + }; + let mut SumDlogDiv_b_den = SumDlogDiv.b_den; + while let Option::Some(val) = SumDlogDiv_b_den.pop_front() { + circuit_inputs = circuit_inputs.next_2(*val); + }; + // in6 - in19 + + let outputs = circuit_inputs.done_2().eval(modulus).unwrap(); + let res: u384 = outputs.get_output(t54); + return (res,); +} +#[inline(always)] +pub fn run_EVAL_FN_CHALLENGE_DUPL_2P_RLC_circuit( + A0: G1Point, + A2: G1Point, + coeff0: u384, + coeff2: u384, + SumDlogDivBatched: FunctionFelt, + curve_index: usize, +) -> (u384,) { + // INPUT stack + let (in0, in1, in2) = (CE::> {}, CE::> {}, CE::> {}); + let (in3, in4, in5) = (CE::> {}, CE::> {}, CE::> {}); + let (in6, in7, in8) = (CE::> {}, CE::> {}, CE::> {}); + let (in9, in10, in11) = (CE::> {}, CE::> {}, CE::> {}); + let (in12, in13, in14) = (CE::> {}, CE::> {}, CE::> {}); + let (in15, in16, in17) = (CE::> {}, CE::> {}, CE::> {}); + let (in18, in19, in20) = (CE::> {}, CE::> {}, CE::> {}); + let (in21, in22, in23) = (CE::> {}, CE::> {}, CE::> {}); + let (in24, in25, in26) = (CE::> {}, CE::> {}, CE::> {}); + let (in27, in28, in29) = (CE::> {}, CE::> {}, CE::> {}); + let (in30, in31) = (CE::> {}, CE::> {}); + let t0 = circuit_mul(in10, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t1 = circuit_add(in9, t0); // Eval sumdlogdiv_a_num Horner step: add coefficient_3 + let t2 = circuit_mul(t1, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t3 = circuit_add(in8, t2); // Eval sumdlogdiv_a_num Horner step: add coefficient_2 + let t4 = circuit_mul(t3, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t5 = circuit_add(in7, t4); // Eval sumdlogdiv_a_num Horner step: add coefficient_1 + let t6 = circuit_mul(t5, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t7 = circuit_add(in6, t6); // Eval sumdlogdiv_a_num Horner step: add coefficient_0 + let t8 = circuit_mul(in16, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t9 = circuit_add(in15, t8); // Eval sumdlogdiv_a_den Horner step: add coefficient_4 + let t10 = circuit_mul(t9, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t11 = circuit_add(in14, t10); // Eval sumdlogdiv_a_den Horner step: add coefficient_3 + let t12 = circuit_mul(t11, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t13 = circuit_add(in13, t12); // Eval sumdlogdiv_a_den Horner step: add coefficient_2 + let t14 = circuit_mul(t13, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t15 = circuit_add(in12, t14); // Eval sumdlogdiv_a_den Horner step: add coefficient_1 + let t16 = circuit_mul(t15, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t17 = circuit_add(in11, t16); // Eval sumdlogdiv_a_den Horner step: add coefficient_0 + let t18 = circuit_inverse(t17); + let t19 = circuit_mul(t7, t18); + let t20 = circuit_mul(in22, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t21 = circuit_add(in21, t20); // Eval sumdlogdiv_b_num Horner step: add coefficient_4 + let t22 = circuit_mul(t21, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t23 = circuit_add(in20, t22); // Eval sumdlogdiv_b_num Horner step: add coefficient_3 + let t24 = circuit_mul(t23, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t25 = circuit_add(in19, t24); // Eval sumdlogdiv_b_num Horner step: add coefficient_2 + let t26 = circuit_mul(t25, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t27 = circuit_add(in18, t26); // Eval sumdlogdiv_b_num Horner step: add coefficient_1 + let t28 = circuit_mul(t27, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t29 = circuit_add(in17, t28); // Eval sumdlogdiv_b_num Horner step: add coefficient_0 + let t30 = circuit_mul(in31, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t31 = circuit_add(in30, t30); // Eval sumdlogdiv_b_den Horner step: add coefficient_7 + let t32 = circuit_mul(t31, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t33 = circuit_add(in29, t32); // Eval sumdlogdiv_b_den Horner step: add coefficient_6 + let t34 = circuit_mul(t33, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t35 = circuit_add(in28, t34); // Eval sumdlogdiv_b_den Horner step: add coefficient_5 + let t36 = circuit_mul(t35, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t37 = circuit_add(in27, t36); // Eval sumdlogdiv_b_den Horner step: add coefficient_4 + let t38 = circuit_mul(t37, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t39 = circuit_add(in26, t38); // Eval sumdlogdiv_b_den Horner step: add coefficient_3 + let t40 = circuit_mul(t39, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t41 = circuit_add(in25, t40); // Eval sumdlogdiv_b_den Horner step: add coefficient_2 + let t42 = circuit_mul(t41, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t43 = circuit_add(in24, t42); // Eval sumdlogdiv_b_den Horner step: add coefficient_1 + let t44 = circuit_mul(t43, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t45 = circuit_add(in23, t44); // Eval sumdlogdiv_b_den Horner step: add coefficient_0 + let t46 = circuit_inverse(t45); + let t47 = circuit_mul(t29, t46); + let t48 = circuit_mul(in1, t47); + let t49 = circuit_add(t19, t48); + let t50 = circuit_mul(in10, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t51 = circuit_add(in9, t50); // Eval sumdlogdiv_a_num Horner step: add coefficient_3 + let t52 = circuit_mul(t51, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t53 = circuit_add(in8, t52); // Eval sumdlogdiv_a_num Horner step: add coefficient_2 let t54 = circuit_mul(t53, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 let t55 = circuit_add(in7, t54); // Eval sumdlogdiv_a_num Horner step: add coefficient_1 let t56 = circuit_mul(t55, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 @@ -1018,11 +1039,7 @@ fn run_EVAL_FN_CHALLENGE_DUPL_4P_circuit( let t101 = circuit_mul(in5, t99); let t102 = circuit_sub(t100, t101); - let modulus = get_p(curve_index); - let modulus = TryInto::< - _, CircuitModulus - >::try_into([modulus.limb0, modulus.limb1, modulus.limb2, modulus.limb3]) - .unwrap(); + let modulus = get_modulus(curve_index); let mut circuit_inputs = (t102,).new_inputs(); // Prefill constants: @@ -1034,20 +1051,20 @@ fn run_EVAL_FN_CHALLENGE_DUPL_4P_circuit( circuit_inputs = circuit_inputs.next_2(A2.y); // in3 circuit_inputs = circuit_inputs.next_2(coeff0); // in4 circuit_inputs = circuit_inputs.next_2(coeff2); // in5 - let mut SumDlogDiv_a_num = SumDlogDiv.a_num; - while let Option::Some(val) = SumDlogDiv_a_num.pop_front() { + let mut SumDlogDivBatched_a_num = SumDlogDivBatched.a_num; + while let Option::Some(val) = SumDlogDivBatched_a_num.pop_front() { circuit_inputs = circuit_inputs.next_2(*val); }; - let mut SumDlogDiv_a_den = SumDlogDiv.a_den; - while let Option::Some(val) = SumDlogDiv_a_den.pop_front() { + let mut SumDlogDivBatched_a_den = SumDlogDivBatched.a_den; + while let Option::Some(val) = SumDlogDivBatched_a_den.pop_front() { circuit_inputs = circuit_inputs.next_2(*val); }; - let mut SumDlogDiv_b_num = SumDlogDiv.b_num; - while let Option::Some(val) = SumDlogDiv_b_num.pop_front() { + let mut SumDlogDivBatched_b_num = SumDlogDivBatched.b_num; + while let Option::Some(val) = SumDlogDivBatched_b_num.pop_front() { circuit_inputs = circuit_inputs.next_2(*val); }; - let mut SumDlogDiv_b_den = SumDlogDiv.b_den; - while let Option::Some(val) = SumDlogDiv_b_den.pop_front() { + let mut SumDlogDivBatched_b_den = SumDlogDivBatched.b_den; + while let Option::Some(val) = SumDlogDivBatched_b_den.pop_front() { circuit_inputs = circuit_inputs.next_2(*val); }; // in6 - in31 @@ -1057,13 +1074,13 @@ fn run_EVAL_FN_CHALLENGE_DUPL_4P_circuit( return (res,); } #[inline(always)] -fn run_EVAL_FN_CHALLENGE_DUPL_5P_circuit( +pub fn run_EVAL_FN_CHALLENGE_DUPL_2P_circuit( A0: G1Point, A2: G1Point, coeff0: u384, coeff2: u384, SumDlogDiv: FunctionFelt, - curve_index: usize + curve_index: usize, ) -> (u384,) { // INPUT stack let (in0, in1, in2) = (CE::> {}, CE::> {}, CE::> {}); @@ -1074,91 +1091,215 @@ fn run_EVAL_FN_CHALLENGE_DUPL_5P_circuit( let (in15, in16, in17) = (CE::> {}, CE::> {}, CE::> {}); let (in18, in19, in20) = (CE::> {}, CE::> {}, CE::> {}); let (in21, in22, in23) = (CE::> {}, CE::> {}, CE::> {}); - let (in24, in25, in26) = (CE::> {}, CE::> {}, CE::> {}); - let (in27, in28, in29) = (CE::> {}, CE::> {}, CE::> {}); - let (in30, in31, in32) = (CE::> {}, CE::> {}, CE::> {}); - let (in33, in34, in35) = (CE::> {}, CE::> {}, CE::> {}); - let t0 = circuit_mul(in11, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 - let t1 = circuit_add(in10, t0); // Eval sumdlogdiv_a_num Horner step: add coefficient_4 + let t0 = circuit_mul(in8, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t1 = circuit_add(in7, t0); // Eval sumdlogdiv_a_num Horner step: add coefficient_1 let t2 = circuit_mul(t1, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 - let t3 = circuit_add(in9, t2); // Eval sumdlogdiv_a_num Horner step: add coefficient_3 - let t4 = circuit_mul(t3, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 - let t5 = circuit_add(in8, t4); // Eval sumdlogdiv_a_num Horner step: add coefficient_2 - let t6 = circuit_mul(t5, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 - let t7 = circuit_add(in7, t6); // Eval sumdlogdiv_a_num Horner step: add coefficient_1 - let t8 = circuit_mul(t7, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 - let t9 = circuit_add(in6, t8); // Eval sumdlogdiv_a_num Horner step: add coefficient_0 - let t10 = circuit_mul(in18, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 - let t11 = circuit_add(in17, t10); // Eval sumdlogdiv_a_den Horner step: add coefficient_5 - let t12 = circuit_mul(t11, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 - let t13 = circuit_add(in16, t12); // Eval sumdlogdiv_a_den Horner step: add coefficient_4 - let t14 = circuit_mul(t13, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 - let t15 = circuit_add(in15, t14); // Eval sumdlogdiv_a_den Horner step: add coefficient_3 - let t16 = circuit_mul(t15, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 - let t17 = circuit_add(in14, t16); // Eval sumdlogdiv_a_den Horner step: add coefficient_2 - let t18 = circuit_mul(t17, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 - let t19 = circuit_add(in13, t18); // Eval sumdlogdiv_a_den Horner step: add coefficient_1 - let t20 = circuit_mul(t19, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 - let t21 = circuit_add(in12, t20); // Eval sumdlogdiv_a_den Horner step: add coefficient_0 - let t22 = circuit_inverse(t21); - let t23 = circuit_mul(t9, t22); - let t24 = circuit_mul(in25, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 - let t25 = circuit_add(in24, t24); // Eval sumdlogdiv_b_num Horner step: add coefficient_5 - let t26 = circuit_mul(t25, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 - let t27 = circuit_add(in23, t26); // Eval sumdlogdiv_b_num Horner step: add coefficient_4 - let t28 = circuit_mul(t27, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 - let t29 = circuit_add(in22, t28); // Eval sumdlogdiv_b_num Horner step: add coefficient_3 - let t30 = circuit_mul(t29, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 - let t31 = circuit_add(in21, t30); // Eval sumdlogdiv_b_num Horner step: add coefficient_2 - let t32 = circuit_mul(t31, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 - let t33 = circuit_add(in20, t32); // Eval sumdlogdiv_b_num Horner step: add coefficient_1 - let t34 = circuit_mul(t33, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 - let t35 = circuit_add(in19, t34); // Eval sumdlogdiv_b_num Horner step: add coefficient_0 - let t36 = circuit_mul(in35, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 - let t37 = circuit_add(in34, t36); // Eval sumdlogdiv_b_den Horner step: add coefficient_8 - let t38 = circuit_mul(t37, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 - let t39 = circuit_add(in33, t38); // Eval sumdlogdiv_b_den Horner step: add coefficient_7 - let t40 = circuit_mul(t39, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 - let t41 = circuit_add(in32, t40); // Eval sumdlogdiv_b_den Horner step: add coefficient_6 - let t42 = circuit_mul(t41, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 - let t43 = circuit_add(in31, t42); // Eval sumdlogdiv_b_den Horner step: add coefficient_5 - let t44 = circuit_mul(t43, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 - let t45 = circuit_add(in30, t44); // Eval sumdlogdiv_b_den Horner step: add coefficient_4 - let t46 = circuit_mul(t45, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 - let t47 = circuit_add(in29, t46); // Eval sumdlogdiv_b_den Horner step: add coefficient_3 - let t48 = circuit_mul(t47, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 - let t49 = circuit_add(in28, t48); // Eval sumdlogdiv_b_den Horner step: add coefficient_2 - let t50 = circuit_mul(t49, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 - let t51 = circuit_add(in27, t50); // Eval sumdlogdiv_b_den Horner step: add coefficient_1 - let t52 = circuit_mul(t51, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 - let t53 = circuit_add(in26, t52); // Eval sumdlogdiv_b_den Horner step: add coefficient_0 - let t54 = circuit_inverse(t53); - let t55 = circuit_mul(t35, t54); - let t56 = circuit_mul(in1, t55); - let t57 = circuit_add(t23, t56); - let t58 = circuit_mul(in11, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 - let t59 = circuit_add(in10, t58); // Eval sumdlogdiv_a_num Horner step: add coefficient_4 - let t60 = circuit_mul(t59, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 - let t61 = circuit_add(in9, t60); // Eval sumdlogdiv_a_num Horner step: add coefficient_3 - let t62 = circuit_mul(t61, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 - let t63 = circuit_add(in8, t62); // Eval sumdlogdiv_a_num Horner step: add coefficient_2 - let t64 = circuit_mul(t63, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 - let t65 = circuit_add(in7, t64); // Eval sumdlogdiv_a_num Horner step: add coefficient_1 - let t66 = circuit_mul(t65, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 - let t67 = circuit_add(in6, t66); // Eval sumdlogdiv_a_num Horner step: add coefficient_0 - let t68 = circuit_mul(in18, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 - let t69 = circuit_add(in17, t68); // Eval sumdlogdiv_a_den Horner step: add coefficient_5 - let t70 = circuit_mul(t69, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 - let t71 = circuit_add(in16, t70); // Eval sumdlogdiv_a_den Horner step: add coefficient_4 - let t72 = circuit_mul(t71, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 - let t73 = circuit_add(in15, t72); // Eval sumdlogdiv_a_den Horner step: add coefficient_3 - let t74 = circuit_mul(t73, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 - let t75 = circuit_add(in14, t74); // Eval sumdlogdiv_a_den Horner step: add coefficient_2 - let t76 = circuit_mul(t75, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 - let t77 = circuit_add(in13, t76); // Eval sumdlogdiv_a_den Horner step: add coefficient_1 - let t78 = circuit_mul(t77, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 - let t79 = circuit_add(in12, t78); // Eval sumdlogdiv_a_den Horner step: add coefficient_0 - let t80 = circuit_inverse(t79); + let t3 = circuit_add(in6, t2); // Eval sumdlogdiv_a_num Horner step: add coefficient_0 + let t4 = circuit_mul(in12, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t5 = circuit_add(in11, t4); // Eval sumdlogdiv_a_den Horner step: add coefficient_2 + let t6 = circuit_mul(t5, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t7 = circuit_add(in10, t6); // Eval sumdlogdiv_a_den Horner step: add coefficient_1 + let t8 = circuit_mul(t7, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t9 = circuit_add(in9, t8); // Eval sumdlogdiv_a_den Horner step: add coefficient_0 + let t10 = circuit_inverse(t9); + let t11 = circuit_mul(t3, t10); + let t12 = circuit_mul(in16, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t13 = circuit_add(in15, t12); // Eval sumdlogdiv_b_num Horner step: add coefficient_2 + let t14 = circuit_mul(t13, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t15 = circuit_add(in14, t14); // Eval sumdlogdiv_b_num Horner step: add coefficient_1 + let t16 = circuit_mul(t15, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t17 = circuit_add(in13, t16); // Eval sumdlogdiv_b_num Horner step: add coefficient_0 + let t18 = circuit_mul(in23, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t19 = circuit_add(in22, t18); // Eval sumdlogdiv_b_den Horner step: add coefficient_5 + let t20 = circuit_mul(t19, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t21 = circuit_add(in21, t20); // Eval sumdlogdiv_b_den Horner step: add coefficient_4 + let t22 = circuit_mul(t21, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t23 = circuit_add(in20, t22); // Eval sumdlogdiv_b_den Horner step: add coefficient_3 + let t24 = circuit_mul(t23, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t25 = circuit_add(in19, t24); // Eval sumdlogdiv_b_den Horner step: add coefficient_2 + let t26 = circuit_mul(t25, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t27 = circuit_add(in18, t26); // Eval sumdlogdiv_b_den Horner step: add coefficient_1 + let t28 = circuit_mul(t27, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t29 = circuit_add(in17, t28); // Eval sumdlogdiv_b_den Horner step: add coefficient_0 + let t30 = circuit_inverse(t29); + let t31 = circuit_mul(t17, t30); + let t32 = circuit_mul(in1, t31); + let t33 = circuit_add(t11, t32); + let t34 = circuit_mul(in8, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t35 = circuit_add(in7, t34); // Eval sumdlogdiv_a_num Horner step: add coefficient_1 + let t36 = circuit_mul(t35, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t37 = circuit_add(in6, t36); // Eval sumdlogdiv_a_num Horner step: add coefficient_0 + let t38 = circuit_mul(in12, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t39 = circuit_add(in11, t38); // Eval sumdlogdiv_a_den Horner step: add coefficient_2 + let t40 = circuit_mul(t39, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t41 = circuit_add(in10, t40); // Eval sumdlogdiv_a_den Horner step: add coefficient_1 + let t42 = circuit_mul(t41, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t43 = circuit_add(in9, t42); // Eval sumdlogdiv_a_den Horner step: add coefficient_0 + let t44 = circuit_inverse(t43); + let t45 = circuit_mul(t37, t44); + let t46 = circuit_mul(in16, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t47 = circuit_add(in15, t46); // Eval sumdlogdiv_b_num Horner step: add coefficient_2 + let t48 = circuit_mul(t47, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t49 = circuit_add(in14, t48); // Eval sumdlogdiv_b_num Horner step: add coefficient_1 + let t50 = circuit_mul(t49, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t51 = circuit_add(in13, t50); // Eval sumdlogdiv_b_num Horner step: add coefficient_0 + let t52 = circuit_mul(in23, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t53 = circuit_add(in22, t52); // Eval sumdlogdiv_b_den Horner step: add coefficient_5 + let t54 = circuit_mul(t53, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t55 = circuit_add(in21, t54); // Eval sumdlogdiv_b_den Horner step: add coefficient_4 + let t56 = circuit_mul(t55, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t57 = circuit_add(in20, t56); // Eval sumdlogdiv_b_den Horner step: add coefficient_3 + let t58 = circuit_mul(t57, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t59 = circuit_add(in19, t58); // Eval sumdlogdiv_b_den Horner step: add coefficient_2 + let t60 = circuit_mul(t59, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t61 = circuit_add(in18, t60); // Eval sumdlogdiv_b_den Horner step: add coefficient_1 + let t62 = circuit_mul(t61, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t63 = circuit_add(in17, t62); // Eval sumdlogdiv_b_den Horner step: add coefficient_0 + let t64 = circuit_inverse(t63); + let t65 = circuit_mul(t51, t64); + let t66 = circuit_mul(in3, t65); + let t67 = circuit_add(t45, t66); + let t68 = circuit_mul(in4, t33); + let t69 = circuit_mul(in5, t67); + let t70 = circuit_sub(t68, t69); + + let modulus = get_modulus(curve_index); + + let mut circuit_inputs = (t70,).new_inputs(); + // Prefill constants: + + // Fill inputs: + circuit_inputs = circuit_inputs.next_2(A0.x); // in0 + circuit_inputs = circuit_inputs.next_2(A0.y); // in1 + circuit_inputs = circuit_inputs.next_2(A2.x); // in2 + circuit_inputs = circuit_inputs.next_2(A2.y); // in3 + circuit_inputs = circuit_inputs.next_2(coeff0); // in4 + circuit_inputs = circuit_inputs.next_2(coeff2); // in5 + let mut SumDlogDiv_a_num = SumDlogDiv.a_num; + while let Option::Some(val) = SumDlogDiv_a_num.pop_front() { + circuit_inputs = circuit_inputs.next_2(*val); + }; + let mut SumDlogDiv_a_den = SumDlogDiv.a_den; + while let Option::Some(val) = SumDlogDiv_a_den.pop_front() { + circuit_inputs = circuit_inputs.next_2(*val); + }; + let mut SumDlogDiv_b_num = SumDlogDiv.b_num; + while let Option::Some(val) = SumDlogDiv_b_num.pop_front() { + circuit_inputs = circuit_inputs.next_2(*val); + }; + let mut SumDlogDiv_b_den = SumDlogDiv.b_den; + while let Option::Some(val) = SumDlogDiv_b_den.pop_front() { + circuit_inputs = circuit_inputs.next_2(*val); + }; + // in6 - in23 + + let outputs = circuit_inputs.done_2().eval(modulus).unwrap(); + let res: u384 = outputs.get_output(t70); + return (res,); +} +#[inline(always)] +pub fn run_EVAL_FN_CHALLENGE_DUPL_3P_RLC_circuit( + A0: G1Point, + A2: G1Point, + coeff0: u384, + coeff2: u384, + SumDlogDivBatched: FunctionFelt, + curve_index: usize, +) -> (u384,) { + // INPUT stack + let (in0, in1, in2) = (CE::> {}, CE::> {}, CE::> {}); + let (in3, in4, in5) = (CE::> {}, CE::> {}, CE::> {}); + let (in6, in7, in8) = (CE::> {}, CE::> {}, CE::> {}); + let (in9, in10, in11) = (CE::> {}, CE::> {}, CE::> {}); + let (in12, in13, in14) = (CE::> {}, CE::> {}, CE::> {}); + let (in15, in16, in17) = (CE::> {}, CE::> {}, CE::> {}); + let (in18, in19, in20) = (CE::> {}, CE::> {}, CE::> {}); + let (in21, in22, in23) = (CE::> {}, CE::> {}, CE::> {}); + let (in24, in25, in26) = (CE::> {}, CE::> {}, CE::> {}); + let (in27, in28, in29) = (CE::> {}, CE::> {}, CE::> {}); + let (in30, in31, in32) = (CE::> {}, CE::> {}, CE::> {}); + let (in33, in34, in35) = (CE::> {}, CE::> {}, CE::> {}); + let t0 = circuit_mul(in11, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t1 = circuit_add(in10, t0); // Eval sumdlogdiv_a_num Horner step: add coefficient_4 + let t2 = circuit_mul(t1, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t3 = circuit_add(in9, t2); // Eval sumdlogdiv_a_num Horner step: add coefficient_3 + let t4 = circuit_mul(t3, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t5 = circuit_add(in8, t4); // Eval sumdlogdiv_a_num Horner step: add coefficient_2 + let t6 = circuit_mul(t5, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t7 = circuit_add(in7, t6); // Eval sumdlogdiv_a_num Horner step: add coefficient_1 + let t8 = circuit_mul(t7, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t9 = circuit_add(in6, t8); // Eval sumdlogdiv_a_num Horner step: add coefficient_0 + let t10 = circuit_mul(in18, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t11 = circuit_add(in17, t10); // Eval sumdlogdiv_a_den Horner step: add coefficient_5 + let t12 = circuit_mul(t11, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t13 = circuit_add(in16, t12); // Eval sumdlogdiv_a_den Horner step: add coefficient_4 + let t14 = circuit_mul(t13, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t15 = circuit_add(in15, t14); // Eval sumdlogdiv_a_den Horner step: add coefficient_3 + let t16 = circuit_mul(t15, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t17 = circuit_add(in14, t16); // Eval sumdlogdiv_a_den Horner step: add coefficient_2 + let t18 = circuit_mul(t17, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t19 = circuit_add(in13, t18); // Eval sumdlogdiv_a_den Horner step: add coefficient_1 + let t20 = circuit_mul(t19, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t21 = circuit_add(in12, t20); // Eval sumdlogdiv_a_den Horner step: add coefficient_0 + let t22 = circuit_inverse(t21); + let t23 = circuit_mul(t9, t22); + let t24 = circuit_mul(in25, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t25 = circuit_add(in24, t24); // Eval sumdlogdiv_b_num Horner step: add coefficient_5 + let t26 = circuit_mul(t25, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t27 = circuit_add(in23, t26); // Eval sumdlogdiv_b_num Horner step: add coefficient_4 + let t28 = circuit_mul(t27, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t29 = circuit_add(in22, t28); // Eval sumdlogdiv_b_num Horner step: add coefficient_3 + let t30 = circuit_mul(t29, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t31 = circuit_add(in21, t30); // Eval sumdlogdiv_b_num Horner step: add coefficient_2 + let t32 = circuit_mul(t31, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t33 = circuit_add(in20, t32); // Eval sumdlogdiv_b_num Horner step: add coefficient_1 + let t34 = circuit_mul(t33, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t35 = circuit_add(in19, t34); // Eval sumdlogdiv_b_num Horner step: add coefficient_0 + let t36 = circuit_mul(in35, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t37 = circuit_add(in34, t36); // Eval sumdlogdiv_b_den Horner step: add coefficient_8 + let t38 = circuit_mul(t37, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t39 = circuit_add(in33, t38); // Eval sumdlogdiv_b_den Horner step: add coefficient_7 + let t40 = circuit_mul(t39, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t41 = circuit_add(in32, t40); // Eval sumdlogdiv_b_den Horner step: add coefficient_6 + let t42 = circuit_mul(t41, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t43 = circuit_add(in31, t42); // Eval sumdlogdiv_b_den Horner step: add coefficient_5 + let t44 = circuit_mul(t43, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t45 = circuit_add(in30, t44); // Eval sumdlogdiv_b_den Horner step: add coefficient_4 + let t46 = circuit_mul(t45, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t47 = circuit_add(in29, t46); // Eval sumdlogdiv_b_den Horner step: add coefficient_3 + let t48 = circuit_mul(t47, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t49 = circuit_add(in28, t48); // Eval sumdlogdiv_b_den Horner step: add coefficient_2 + let t50 = circuit_mul(t49, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t51 = circuit_add(in27, t50); // Eval sumdlogdiv_b_den Horner step: add coefficient_1 + let t52 = circuit_mul(t51, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t53 = circuit_add(in26, t52); // Eval sumdlogdiv_b_den Horner step: add coefficient_0 + let t54 = circuit_inverse(t53); + let t55 = circuit_mul(t35, t54); + let t56 = circuit_mul(in1, t55); + let t57 = circuit_add(t23, t56); + let t58 = circuit_mul(in11, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t59 = circuit_add(in10, t58); // Eval sumdlogdiv_a_num Horner step: add coefficient_4 + let t60 = circuit_mul(t59, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t61 = circuit_add(in9, t60); // Eval sumdlogdiv_a_num Horner step: add coefficient_3 + let t62 = circuit_mul(t61, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t63 = circuit_add(in8, t62); // Eval sumdlogdiv_a_num Horner step: add coefficient_2 + let t64 = circuit_mul(t63, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t65 = circuit_add(in7, t64); // Eval sumdlogdiv_a_num Horner step: add coefficient_1 + let t66 = circuit_mul(t65, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t67 = circuit_add(in6, t66); // Eval sumdlogdiv_a_num Horner step: add coefficient_0 + let t68 = circuit_mul(in18, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t69 = circuit_add(in17, t68); // Eval sumdlogdiv_a_den Horner step: add coefficient_5 + let t70 = circuit_mul(t69, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t71 = circuit_add(in16, t70); // Eval sumdlogdiv_a_den Horner step: add coefficient_4 + let t72 = circuit_mul(t71, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t73 = circuit_add(in15, t72); // Eval sumdlogdiv_a_den Horner step: add coefficient_3 + let t74 = circuit_mul(t73, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t75 = circuit_add(in14, t74); // Eval sumdlogdiv_a_den Horner step: add coefficient_2 + let t76 = circuit_mul(t75, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t77 = circuit_add(in13, t76); // Eval sumdlogdiv_a_den Horner step: add coefficient_1 + let t78 = circuit_mul(t77, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t79 = circuit_add(in12, t78); // Eval sumdlogdiv_a_den Horner step: add coefficient_0 + let t80 = circuit_inverse(t79); let t81 = circuit_mul(t67, t80); let t82 = circuit_mul(in25, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 let t83 = circuit_add(in24, t82); // Eval sumdlogdiv_b_num Horner step: add coefficient_5 @@ -1198,11 +1339,7 @@ fn run_EVAL_FN_CHALLENGE_DUPL_5P_circuit( let t117 = circuit_mul(in5, t115); let t118 = circuit_sub(t116, t117); - let modulus = get_p(curve_index); - let modulus = TryInto::< - _, CircuitModulus - >::try_into([modulus.limb0, modulus.limb1, modulus.limb2, modulus.limb3]) - .unwrap(); + let modulus = get_modulus(curve_index); let mut circuit_inputs = (t118,).new_inputs(); // Prefill constants: @@ -1214,20 +1351,20 @@ fn run_EVAL_FN_CHALLENGE_DUPL_5P_circuit( circuit_inputs = circuit_inputs.next_2(A2.y); // in3 circuit_inputs = circuit_inputs.next_2(coeff0); // in4 circuit_inputs = circuit_inputs.next_2(coeff2); // in5 - let mut SumDlogDiv_a_num = SumDlogDiv.a_num; - while let Option::Some(val) = SumDlogDiv_a_num.pop_front() { + let mut SumDlogDivBatched_a_num = SumDlogDivBatched.a_num; + while let Option::Some(val) = SumDlogDivBatched_a_num.pop_front() { circuit_inputs = circuit_inputs.next_2(*val); }; - let mut SumDlogDiv_a_den = SumDlogDiv.a_den; - while let Option::Some(val) = SumDlogDiv_a_den.pop_front() { + let mut SumDlogDivBatched_a_den = SumDlogDivBatched.a_den; + while let Option::Some(val) = SumDlogDivBatched_a_den.pop_front() { circuit_inputs = circuit_inputs.next_2(*val); }; - let mut SumDlogDiv_b_num = SumDlogDiv.b_num; - while let Option::Some(val) = SumDlogDiv_b_num.pop_front() { + let mut SumDlogDivBatched_b_num = SumDlogDivBatched.b_num; + while let Option::Some(val) = SumDlogDivBatched_b_num.pop_front() { circuit_inputs = circuit_inputs.next_2(*val); }; - let mut SumDlogDiv_b_den = SumDlogDiv.b_den; - while let Option::Some(val) = SumDlogDiv_b_den.pop_front() { + let mut SumDlogDivBatched_b_den = SumDlogDivBatched.b_den; + while let Option::Some(val) = SumDlogDivBatched_b_den.pop_front() { circuit_inputs = circuit_inputs.next_2(*val); }; // in6 - in35 @@ -1237,13 +1374,13 @@ fn run_EVAL_FN_CHALLENGE_DUPL_5P_circuit( return (res,); } #[inline(always)] -fn run_EVAL_FN_CHALLENGE_DUPL_6P_circuit( +pub fn run_EVAL_FN_CHALLENGE_DUPL_4P_RLC_circuit( A0: G1Point, A2: G1Point, coeff0: u384, coeff2: u384, - SumDlogDiv: FunctionFelt, - curve_index: usize + SumDlogDivBatched: FunctionFelt, + curve_index: usize, ) -> (u384,) { // INPUT stack let (in0, in1, in2) = (CE::> {}, CE::> {}, CE::> {}); @@ -1396,11 +1533,7 @@ fn run_EVAL_FN_CHALLENGE_DUPL_6P_circuit( let t133 = circuit_mul(in5, t131); let t134 = circuit_sub(t132, t133); - let modulus = get_p(curve_index); - let modulus = TryInto::< - _, CircuitModulus - >::try_into([modulus.limb0, modulus.limb1, modulus.limb2, modulus.limb3]) - .unwrap(); + let modulus = get_modulus(curve_index); let mut circuit_inputs = (t134,).new_inputs(); // Prefill constants: @@ -1412,20 +1545,20 @@ fn run_EVAL_FN_CHALLENGE_DUPL_6P_circuit( circuit_inputs = circuit_inputs.next_2(A2.y); // in3 circuit_inputs = circuit_inputs.next_2(coeff0); // in4 circuit_inputs = circuit_inputs.next_2(coeff2); // in5 - let mut SumDlogDiv_a_num = SumDlogDiv.a_num; - while let Option::Some(val) = SumDlogDiv_a_num.pop_front() { + let mut SumDlogDivBatched_a_num = SumDlogDivBatched.a_num; + while let Option::Some(val) = SumDlogDivBatched_a_num.pop_front() { circuit_inputs = circuit_inputs.next_2(*val); }; - let mut SumDlogDiv_a_den = SumDlogDiv.a_den; - while let Option::Some(val) = SumDlogDiv_a_den.pop_front() { + let mut SumDlogDivBatched_a_den = SumDlogDivBatched.a_den; + while let Option::Some(val) = SumDlogDivBatched_a_den.pop_front() { circuit_inputs = circuit_inputs.next_2(*val); }; - let mut SumDlogDiv_b_num = SumDlogDiv.b_num; - while let Option::Some(val) = SumDlogDiv_b_num.pop_front() { + let mut SumDlogDivBatched_b_num = SumDlogDivBatched.b_num; + while let Option::Some(val) = SumDlogDivBatched_b_num.pop_front() { circuit_inputs = circuit_inputs.next_2(*val); }; - let mut SumDlogDiv_b_den = SumDlogDiv.b_den; - while let Option::Some(val) = SumDlogDiv_b_den.pop_front() { + let mut SumDlogDivBatched_b_den = SumDlogDivBatched.b_den; + while let Option::Some(val) = SumDlogDivBatched_b_den.pop_front() { circuit_inputs = circuit_inputs.next_2(*val); }; // in6 - in39 @@ -1435,13 +1568,13 @@ fn run_EVAL_FN_CHALLENGE_DUPL_6P_circuit( return (res,); } #[inline(always)] -fn run_EVAL_FN_CHALLENGE_DUPL_7P_circuit( +pub fn run_EVAL_FN_CHALLENGE_DUPL_5P_RLC_circuit( A0: G1Point, A2: G1Point, coeff0: u384, coeff2: u384, - SumDlogDiv: FunctionFelt, - curve_index: usize + SumDlogDivBatched: FunctionFelt, + curve_index: usize, ) -> (u384,) { // INPUT stack let (in0, in1, in2) = (CE::> {}, CE::> {}, CE::> {}); @@ -1611,11 +1744,7 @@ fn run_EVAL_FN_CHALLENGE_DUPL_7P_circuit( let t149 = circuit_mul(in5, t147); let t150 = circuit_sub(t148, t149); - let modulus = get_p(curve_index); - let modulus = TryInto::< - _, CircuitModulus - >::try_into([modulus.limb0, modulus.limb1, modulus.limb2, modulus.limb3]) - .unwrap(); + let modulus = get_modulus(curve_index); let mut circuit_inputs = (t150,).new_inputs(); // Prefill constants: @@ -1627,20 +1756,20 @@ fn run_EVAL_FN_CHALLENGE_DUPL_7P_circuit( circuit_inputs = circuit_inputs.next_2(A2.y); // in3 circuit_inputs = circuit_inputs.next_2(coeff0); // in4 circuit_inputs = circuit_inputs.next_2(coeff2); // in5 - let mut SumDlogDiv_a_num = SumDlogDiv.a_num; - while let Option::Some(val) = SumDlogDiv_a_num.pop_front() { + let mut SumDlogDivBatched_a_num = SumDlogDivBatched.a_num; + while let Option::Some(val) = SumDlogDivBatched_a_num.pop_front() { circuit_inputs = circuit_inputs.next_2(*val); }; - let mut SumDlogDiv_a_den = SumDlogDiv.a_den; - while let Option::Some(val) = SumDlogDiv_a_den.pop_front() { + let mut SumDlogDivBatched_a_den = SumDlogDivBatched.a_den; + while let Option::Some(val) = SumDlogDivBatched_a_den.pop_front() { circuit_inputs = circuit_inputs.next_2(*val); }; - let mut SumDlogDiv_b_num = SumDlogDiv.b_num; - while let Option::Some(val) = SumDlogDiv_b_num.pop_front() { + let mut SumDlogDivBatched_b_num = SumDlogDivBatched.b_num; + while let Option::Some(val) = SumDlogDivBatched_b_num.pop_front() { circuit_inputs = circuit_inputs.next_2(*val); }; - let mut SumDlogDiv_b_den = SumDlogDiv.b_den; - while let Option::Some(val) = SumDlogDiv_b_den.pop_front() { + let mut SumDlogDivBatched_b_den = SumDlogDivBatched.b_den; + while let Option::Some(val) = SumDlogDivBatched_b_den.pop_front() { circuit_inputs = circuit_inputs.next_2(*val); }; // in6 - in43 @@ -1650,13 +1779,13 @@ fn run_EVAL_FN_CHALLENGE_DUPL_7P_circuit( return (res,); } #[inline(always)] -fn run_EVAL_FN_CHALLENGE_DUPL_8P_circuit( +pub fn run_EVAL_FN_CHALLENGE_DUPL_6P_RLC_circuit( A0: G1Point, A2: G1Point, coeff0: u384, coeff2: u384, - SumDlogDiv: FunctionFelt, - curve_index: usize + SumDlogDivBatched: FunctionFelt, + curve_index: usize, ) -> (u384,) { // INPUT stack let (in0, in1, in2) = (CE::> {}, CE::> {}, CE::> {}); @@ -1843,13 +1972,518 @@ fn run_EVAL_FN_CHALLENGE_DUPL_8P_circuit( let t165 = circuit_mul(in5, t163); let t166 = circuit_sub(t164, t165); - let modulus = get_p(curve_index); - let modulus = TryInto::< - _, CircuitModulus - >::try_into([modulus.limb0, modulus.limb1, modulus.limb2, modulus.limb3]) - .unwrap(); + let modulus = get_modulus(curve_index); + + let mut circuit_inputs = (t166,).new_inputs(); + // Prefill constants: + + // Fill inputs: + circuit_inputs = circuit_inputs.next_2(A0.x); // in0 + circuit_inputs = circuit_inputs.next_2(A0.y); // in1 + circuit_inputs = circuit_inputs.next_2(A2.x); // in2 + circuit_inputs = circuit_inputs.next_2(A2.y); // in3 + circuit_inputs = circuit_inputs.next_2(coeff0); // in4 + circuit_inputs = circuit_inputs.next_2(coeff2); // in5 + let mut SumDlogDivBatched_a_num = SumDlogDivBatched.a_num; + while let Option::Some(val) = SumDlogDivBatched_a_num.pop_front() { + circuit_inputs = circuit_inputs.next_2(*val); + }; + let mut SumDlogDivBatched_a_den = SumDlogDivBatched.a_den; + while let Option::Some(val) = SumDlogDivBatched_a_den.pop_front() { + circuit_inputs = circuit_inputs.next_2(*val); + }; + let mut SumDlogDivBatched_b_num = SumDlogDivBatched.b_num; + while let Option::Some(val) = SumDlogDivBatched_b_num.pop_front() { + circuit_inputs = circuit_inputs.next_2(*val); + }; + let mut SumDlogDivBatched_b_den = SumDlogDivBatched.b_den; + while let Option::Some(val) = SumDlogDivBatched_b_den.pop_front() { + circuit_inputs = circuit_inputs.next_2(*val); + }; + // in6 - in47 + + let outputs = circuit_inputs.done_2().eval(modulus).unwrap(); + let res: u384 = outputs.get_output(t166); + return (res,); +} +#[inline(always)] +pub fn run_EVAL_FN_CHALLENGE_DUPL_7P_RLC_circuit( + A0: G1Point, + A2: G1Point, + coeff0: u384, + coeff2: u384, + SumDlogDivBatched: FunctionFelt, + curve_index: usize, +) -> (u384,) { + // INPUT stack + let (in0, in1, in2) = (CE::> {}, CE::> {}, CE::> {}); + let (in3, in4, in5) = (CE::> {}, CE::> {}, CE::> {}); + let (in6, in7, in8) = (CE::> {}, CE::> {}, CE::> {}); + let (in9, in10, in11) = (CE::> {}, CE::> {}, CE::> {}); + let (in12, in13, in14) = (CE::> {}, CE::> {}, CE::> {}); + let (in15, in16, in17) = (CE::> {}, CE::> {}, CE::> {}); + let (in18, in19, in20) = (CE::> {}, CE::> {}, CE::> {}); + let (in21, in22, in23) = (CE::> {}, CE::> {}, CE::> {}); + let (in24, in25, in26) = (CE::> {}, CE::> {}, CE::> {}); + let (in27, in28, in29) = (CE::> {}, CE::> {}, CE::> {}); + let (in30, in31, in32) = (CE::> {}, CE::> {}, CE::> {}); + let (in33, in34, in35) = (CE::> {}, CE::> {}, CE::> {}); + let (in36, in37, in38) = (CE::> {}, CE::> {}, CE::> {}); + let (in39, in40, in41) = (CE::> {}, CE::> {}, CE::> {}); + let (in42, in43, in44) = (CE::> {}, CE::> {}, CE::> {}); + let (in45, in46, in47) = (CE::> {}, CE::> {}, CE::> {}); + let (in48, in49, in50) = (CE::> {}, CE::> {}, CE::> {}); + let in51 = CE::> {}; + let t0 = circuit_mul(in15, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t1 = circuit_add(in14, t0); // Eval sumdlogdiv_a_num Horner step: add coefficient_8 + let t2 = circuit_mul(t1, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t3 = circuit_add(in13, t2); // Eval sumdlogdiv_a_num Horner step: add coefficient_7 + let t4 = circuit_mul(t3, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t5 = circuit_add(in12, t4); // Eval sumdlogdiv_a_num Horner step: add coefficient_6 + let t6 = circuit_mul(t5, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t7 = circuit_add(in11, t6); // Eval sumdlogdiv_a_num Horner step: add coefficient_5 + let t8 = circuit_mul(t7, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t9 = circuit_add(in10, t8); // Eval sumdlogdiv_a_num Horner step: add coefficient_4 + let t10 = circuit_mul(t9, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t11 = circuit_add(in9, t10); // Eval sumdlogdiv_a_num Horner step: add coefficient_3 + let t12 = circuit_mul(t11, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t13 = circuit_add(in8, t12); // Eval sumdlogdiv_a_num Horner step: add coefficient_2 + let t14 = circuit_mul(t13, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t15 = circuit_add(in7, t14); // Eval sumdlogdiv_a_num Horner step: add coefficient_1 + let t16 = circuit_mul(t15, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t17 = circuit_add(in6, t16); // Eval sumdlogdiv_a_num Horner step: add coefficient_0 + let t18 = circuit_mul(in26, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t19 = circuit_add(in25, t18); // Eval sumdlogdiv_a_den Horner step: add coefficient_9 + let t20 = circuit_mul(t19, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t21 = circuit_add(in24, t20); // Eval sumdlogdiv_a_den Horner step: add coefficient_8 + let t22 = circuit_mul(t21, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t23 = circuit_add(in23, t22); // Eval sumdlogdiv_a_den Horner step: add coefficient_7 + let t24 = circuit_mul(t23, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t25 = circuit_add(in22, t24); // Eval sumdlogdiv_a_den Horner step: add coefficient_6 + let t26 = circuit_mul(t25, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t27 = circuit_add(in21, t26); // Eval sumdlogdiv_a_den Horner step: add coefficient_5 + let t28 = circuit_mul(t27, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t29 = circuit_add(in20, t28); // Eval sumdlogdiv_a_den Horner step: add coefficient_4 + let t30 = circuit_mul(t29, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t31 = circuit_add(in19, t30); // Eval sumdlogdiv_a_den Horner step: add coefficient_3 + let t32 = circuit_mul(t31, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t33 = circuit_add(in18, t32); // Eval sumdlogdiv_a_den Horner step: add coefficient_2 + let t34 = circuit_mul(t33, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t35 = circuit_add(in17, t34); // Eval sumdlogdiv_a_den Horner step: add coefficient_1 + let t36 = circuit_mul(t35, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t37 = circuit_add(in16, t36); // Eval sumdlogdiv_a_den Horner step: add coefficient_0 + let t38 = circuit_inverse(t37); + let t39 = circuit_mul(t17, t38); + let t40 = circuit_mul(in37, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t41 = circuit_add(in36, t40); // Eval sumdlogdiv_b_num Horner step: add coefficient_9 + let t42 = circuit_mul(t41, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t43 = circuit_add(in35, t42); // Eval sumdlogdiv_b_num Horner step: add coefficient_8 + let t44 = circuit_mul(t43, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t45 = circuit_add(in34, t44); // Eval sumdlogdiv_b_num Horner step: add coefficient_7 + let t46 = circuit_mul(t45, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t47 = circuit_add(in33, t46); // Eval sumdlogdiv_b_num Horner step: add coefficient_6 + let t48 = circuit_mul(t47, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t49 = circuit_add(in32, t48); // Eval sumdlogdiv_b_num Horner step: add coefficient_5 + let t50 = circuit_mul(t49, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t51 = circuit_add(in31, t50); // Eval sumdlogdiv_b_num Horner step: add coefficient_4 + let t52 = circuit_mul(t51, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t53 = circuit_add(in30, t52); // Eval sumdlogdiv_b_num Horner step: add coefficient_3 + let t54 = circuit_mul(t53, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t55 = circuit_add(in29, t54); // Eval sumdlogdiv_b_num Horner step: add coefficient_2 + let t56 = circuit_mul(t55, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t57 = circuit_add(in28, t56); // Eval sumdlogdiv_b_num Horner step: add coefficient_1 + let t58 = circuit_mul(t57, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t59 = circuit_add(in27, t58); // Eval sumdlogdiv_b_num Horner step: add coefficient_0 + let t60 = circuit_mul(in51, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t61 = circuit_add(in50, t60); // Eval sumdlogdiv_b_den Horner step: add coefficient_12 + let t62 = circuit_mul(t61, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t63 = circuit_add(in49, t62); // Eval sumdlogdiv_b_den Horner step: add coefficient_11 + let t64 = circuit_mul(t63, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t65 = circuit_add(in48, t64); // Eval sumdlogdiv_b_den Horner step: add coefficient_10 + let t66 = circuit_mul(t65, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t67 = circuit_add(in47, t66); // Eval sumdlogdiv_b_den Horner step: add coefficient_9 + let t68 = circuit_mul(t67, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t69 = circuit_add(in46, t68); // Eval sumdlogdiv_b_den Horner step: add coefficient_8 + let t70 = circuit_mul(t69, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t71 = circuit_add(in45, t70); // Eval sumdlogdiv_b_den Horner step: add coefficient_7 + let t72 = circuit_mul(t71, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t73 = circuit_add(in44, t72); // Eval sumdlogdiv_b_den Horner step: add coefficient_6 + let t74 = circuit_mul(t73, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t75 = circuit_add(in43, t74); // Eval sumdlogdiv_b_den Horner step: add coefficient_5 + let t76 = circuit_mul(t75, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t77 = circuit_add(in42, t76); // Eval sumdlogdiv_b_den Horner step: add coefficient_4 + let t78 = circuit_mul(t77, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t79 = circuit_add(in41, t78); // Eval sumdlogdiv_b_den Horner step: add coefficient_3 + let t80 = circuit_mul(t79, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t81 = circuit_add(in40, t80); // Eval sumdlogdiv_b_den Horner step: add coefficient_2 + let t82 = circuit_mul(t81, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t83 = circuit_add(in39, t82); // Eval sumdlogdiv_b_den Horner step: add coefficient_1 + let t84 = circuit_mul(t83, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t85 = circuit_add(in38, t84); // Eval sumdlogdiv_b_den Horner step: add coefficient_0 + let t86 = circuit_inverse(t85); + let t87 = circuit_mul(t59, t86); + let t88 = circuit_mul(in1, t87); + let t89 = circuit_add(t39, t88); + let t90 = circuit_mul(in15, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t91 = circuit_add(in14, t90); // Eval sumdlogdiv_a_num Horner step: add coefficient_8 + let t92 = circuit_mul(t91, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t93 = circuit_add(in13, t92); // Eval sumdlogdiv_a_num Horner step: add coefficient_7 + let t94 = circuit_mul(t93, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t95 = circuit_add(in12, t94); // Eval sumdlogdiv_a_num Horner step: add coefficient_6 + let t96 = circuit_mul(t95, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t97 = circuit_add(in11, t96); // Eval sumdlogdiv_a_num Horner step: add coefficient_5 + let t98 = circuit_mul(t97, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t99 = circuit_add(in10, t98); // Eval sumdlogdiv_a_num Horner step: add coefficient_4 + let t100 = circuit_mul(t99, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t101 = circuit_add(in9, t100); // Eval sumdlogdiv_a_num Horner step: add coefficient_3 + let t102 = circuit_mul(t101, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t103 = circuit_add(in8, t102); // Eval sumdlogdiv_a_num Horner step: add coefficient_2 + let t104 = circuit_mul(t103, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t105 = circuit_add(in7, t104); // Eval sumdlogdiv_a_num Horner step: add coefficient_1 + let t106 = circuit_mul(t105, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t107 = circuit_add(in6, t106); // Eval sumdlogdiv_a_num Horner step: add coefficient_0 + let t108 = circuit_mul(in26, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t109 = circuit_add(in25, t108); // Eval sumdlogdiv_a_den Horner step: add coefficient_9 + let t110 = circuit_mul(t109, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t111 = circuit_add(in24, t110); // Eval sumdlogdiv_a_den Horner step: add coefficient_8 + let t112 = circuit_mul(t111, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t113 = circuit_add(in23, t112); // Eval sumdlogdiv_a_den Horner step: add coefficient_7 + let t114 = circuit_mul(t113, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t115 = circuit_add(in22, t114); // Eval sumdlogdiv_a_den Horner step: add coefficient_6 + let t116 = circuit_mul(t115, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t117 = circuit_add(in21, t116); // Eval sumdlogdiv_a_den Horner step: add coefficient_5 + let t118 = circuit_mul(t117, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t119 = circuit_add(in20, t118); // Eval sumdlogdiv_a_den Horner step: add coefficient_4 + let t120 = circuit_mul(t119, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t121 = circuit_add(in19, t120); // Eval sumdlogdiv_a_den Horner step: add coefficient_3 + let t122 = circuit_mul(t121, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t123 = circuit_add(in18, t122); // Eval sumdlogdiv_a_den Horner step: add coefficient_2 + let t124 = circuit_mul(t123, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t125 = circuit_add(in17, t124); // Eval sumdlogdiv_a_den Horner step: add coefficient_1 + let t126 = circuit_mul(t125, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t127 = circuit_add(in16, t126); // Eval sumdlogdiv_a_den Horner step: add coefficient_0 + let t128 = circuit_inverse(t127); + let t129 = circuit_mul(t107, t128); + let t130 = circuit_mul(in37, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t131 = circuit_add(in36, t130); // Eval sumdlogdiv_b_num Horner step: add coefficient_9 + let t132 = circuit_mul(t131, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t133 = circuit_add(in35, t132); // Eval sumdlogdiv_b_num Horner step: add coefficient_8 + let t134 = circuit_mul(t133, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t135 = circuit_add(in34, t134); // Eval sumdlogdiv_b_num Horner step: add coefficient_7 + let t136 = circuit_mul(t135, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t137 = circuit_add(in33, t136); // Eval sumdlogdiv_b_num Horner step: add coefficient_6 + let t138 = circuit_mul(t137, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t139 = circuit_add(in32, t138); // Eval sumdlogdiv_b_num Horner step: add coefficient_5 + let t140 = circuit_mul(t139, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t141 = circuit_add(in31, t140); // Eval sumdlogdiv_b_num Horner step: add coefficient_4 + let t142 = circuit_mul(t141, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t143 = circuit_add(in30, t142); // Eval sumdlogdiv_b_num Horner step: add coefficient_3 + let t144 = circuit_mul(t143, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t145 = circuit_add(in29, t144); // Eval sumdlogdiv_b_num Horner step: add coefficient_2 + let t146 = circuit_mul(t145, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t147 = circuit_add(in28, t146); // Eval sumdlogdiv_b_num Horner step: add coefficient_1 + let t148 = circuit_mul(t147, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t149 = circuit_add(in27, t148); // Eval sumdlogdiv_b_num Horner step: add coefficient_0 + let t150 = circuit_mul(in51, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t151 = circuit_add(in50, t150); // Eval sumdlogdiv_b_den Horner step: add coefficient_12 + let t152 = circuit_mul(t151, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t153 = circuit_add(in49, t152); // Eval sumdlogdiv_b_den Horner step: add coefficient_11 + let t154 = circuit_mul(t153, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t155 = circuit_add(in48, t154); // Eval sumdlogdiv_b_den Horner step: add coefficient_10 + let t156 = circuit_mul(t155, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t157 = circuit_add(in47, t156); // Eval sumdlogdiv_b_den Horner step: add coefficient_9 + let t158 = circuit_mul(t157, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t159 = circuit_add(in46, t158); // Eval sumdlogdiv_b_den Horner step: add coefficient_8 + let t160 = circuit_mul(t159, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t161 = circuit_add(in45, t160); // Eval sumdlogdiv_b_den Horner step: add coefficient_7 + let t162 = circuit_mul(t161, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t163 = circuit_add(in44, t162); // Eval sumdlogdiv_b_den Horner step: add coefficient_6 + let t164 = circuit_mul(t163, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t165 = circuit_add(in43, t164); // Eval sumdlogdiv_b_den Horner step: add coefficient_5 + let t166 = circuit_mul(t165, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t167 = circuit_add(in42, t166); // Eval sumdlogdiv_b_den Horner step: add coefficient_4 + let t168 = circuit_mul(t167, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t169 = circuit_add(in41, t168); // Eval sumdlogdiv_b_den Horner step: add coefficient_3 + let t170 = circuit_mul(t169, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t171 = circuit_add(in40, t170); // Eval sumdlogdiv_b_den Horner step: add coefficient_2 + let t172 = circuit_mul(t171, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t173 = circuit_add(in39, t172); // Eval sumdlogdiv_b_den Horner step: add coefficient_1 + let t174 = circuit_mul(t173, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t175 = circuit_add(in38, t174); // Eval sumdlogdiv_b_den Horner step: add coefficient_0 + let t176 = circuit_inverse(t175); + let t177 = circuit_mul(t149, t176); + let t178 = circuit_mul(in3, t177); + let t179 = circuit_add(t129, t178); + let t180 = circuit_mul(in4, t89); + let t181 = circuit_mul(in5, t179); + let t182 = circuit_sub(t180, t181); + + let modulus = get_modulus(curve_index); + + let mut circuit_inputs = (t182,).new_inputs(); + // Prefill constants: + + // Fill inputs: + circuit_inputs = circuit_inputs.next_2(A0.x); // in0 + circuit_inputs = circuit_inputs.next_2(A0.y); // in1 + circuit_inputs = circuit_inputs.next_2(A2.x); // in2 + circuit_inputs = circuit_inputs.next_2(A2.y); // in3 + circuit_inputs = circuit_inputs.next_2(coeff0); // in4 + circuit_inputs = circuit_inputs.next_2(coeff2); // in5 + let mut SumDlogDivBatched_a_num = SumDlogDivBatched.a_num; + while let Option::Some(val) = SumDlogDivBatched_a_num.pop_front() { + circuit_inputs = circuit_inputs.next_2(*val); + }; + let mut SumDlogDivBatched_a_den = SumDlogDivBatched.a_den; + while let Option::Some(val) = SumDlogDivBatched_a_den.pop_front() { + circuit_inputs = circuit_inputs.next_2(*val); + }; + let mut SumDlogDivBatched_b_num = SumDlogDivBatched.b_num; + while let Option::Some(val) = SumDlogDivBatched_b_num.pop_front() { + circuit_inputs = circuit_inputs.next_2(*val); + }; + let mut SumDlogDivBatched_b_den = SumDlogDivBatched.b_den; + while let Option::Some(val) = SumDlogDivBatched_b_den.pop_front() { + circuit_inputs = circuit_inputs.next_2(*val); + }; + // in6 - in51 + + let outputs = circuit_inputs.done_2().eval(modulus).unwrap(); + let res: u384 = outputs.get_output(t182); + return (res,); +} +#[inline(always)] +pub fn run_EVAL_FN_CHALLENGE_DUPL_8P_RLC_circuit( + A0: G1Point, + A2: G1Point, + coeff0: u384, + coeff2: u384, + SumDlogDivBatched: FunctionFelt, + curve_index: usize, +) -> (u384,) { + // INPUT stack + let (in0, in1, in2) = (CE::> {}, CE::> {}, CE::> {}); + let (in3, in4, in5) = (CE::> {}, CE::> {}, CE::> {}); + let (in6, in7, in8) = (CE::> {}, CE::> {}, CE::> {}); + let (in9, in10, in11) = (CE::> {}, CE::> {}, CE::> {}); + let (in12, in13, in14) = (CE::> {}, CE::> {}, CE::> {}); + let (in15, in16, in17) = (CE::> {}, CE::> {}, CE::> {}); + let (in18, in19, in20) = (CE::> {}, CE::> {}, CE::> {}); + let (in21, in22, in23) = (CE::> {}, CE::> {}, CE::> {}); + let (in24, in25, in26) = (CE::> {}, CE::> {}, CE::> {}); + let (in27, in28, in29) = (CE::> {}, CE::> {}, CE::> {}); + let (in30, in31, in32) = (CE::> {}, CE::> {}, CE::> {}); + let (in33, in34, in35) = (CE::> {}, CE::> {}, CE::> {}); + let (in36, in37, in38) = (CE::> {}, CE::> {}, CE::> {}); + let (in39, in40, in41) = (CE::> {}, CE::> {}, CE::> {}); + let (in42, in43, in44) = (CE::> {}, CE::> {}, CE::> {}); + let (in45, in46, in47) = (CE::> {}, CE::> {}, CE::> {}); + let (in48, in49, in50) = (CE::> {}, CE::> {}, CE::> {}); + let (in51, in52, in53) = (CE::> {}, CE::> {}, CE::> {}); + let (in54, in55) = (CE::> {}, CE::> {}); + let t0 = circuit_mul(in16, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t1 = circuit_add(in15, t0); // Eval sumdlogdiv_a_num Horner step: add coefficient_9 + let t2 = circuit_mul(t1, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t3 = circuit_add(in14, t2); // Eval sumdlogdiv_a_num Horner step: add coefficient_8 + let t4 = circuit_mul(t3, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t5 = circuit_add(in13, t4); // Eval sumdlogdiv_a_num Horner step: add coefficient_7 + let t6 = circuit_mul(t5, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t7 = circuit_add(in12, t6); // Eval sumdlogdiv_a_num Horner step: add coefficient_6 + let t8 = circuit_mul(t7, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t9 = circuit_add(in11, t8); // Eval sumdlogdiv_a_num Horner step: add coefficient_5 + let t10 = circuit_mul(t9, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t11 = circuit_add(in10, t10); // Eval sumdlogdiv_a_num Horner step: add coefficient_4 + let t12 = circuit_mul(t11, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t13 = circuit_add(in9, t12); // Eval sumdlogdiv_a_num Horner step: add coefficient_3 + let t14 = circuit_mul(t13, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t15 = circuit_add(in8, t14); // Eval sumdlogdiv_a_num Horner step: add coefficient_2 + let t16 = circuit_mul(t15, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t17 = circuit_add(in7, t16); // Eval sumdlogdiv_a_num Horner step: add coefficient_1 + let t18 = circuit_mul(t17, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t19 = circuit_add(in6, t18); // Eval sumdlogdiv_a_num Horner step: add coefficient_0 + let t20 = circuit_mul(in28, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t21 = circuit_add(in27, t20); // Eval sumdlogdiv_a_den Horner step: add coefficient_10 + let t22 = circuit_mul(t21, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t23 = circuit_add(in26, t22); // Eval sumdlogdiv_a_den Horner step: add coefficient_9 + let t24 = circuit_mul(t23, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t25 = circuit_add(in25, t24); // Eval sumdlogdiv_a_den Horner step: add coefficient_8 + let t26 = circuit_mul(t25, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t27 = circuit_add(in24, t26); // Eval sumdlogdiv_a_den Horner step: add coefficient_7 + let t28 = circuit_mul(t27, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t29 = circuit_add(in23, t28); // Eval sumdlogdiv_a_den Horner step: add coefficient_6 + let t30 = circuit_mul(t29, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t31 = circuit_add(in22, t30); // Eval sumdlogdiv_a_den Horner step: add coefficient_5 + let t32 = circuit_mul(t31, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t33 = circuit_add(in21, t32); // Eval sumdlogdiv_a_den Horner step: add coefficient_4 + let t34 = circuit_mul(t33, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t35 = circuit_add(in20, t34); // Eval sumdlogdiv_a_den Horner step: add coefficient_3 + let t36 = circuit_mul(t35, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t37 = circuit_add(in19, t36); // Eval sumdlogdiv_a_den Horner step: add coefficient_2 + let t38 = circuit_mul(t37, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t39 = circuit_add(in18, t38); // Eval sumdlogdiv_a_den Horner step: add coefficient_1 + let t40 = circuit_mul(t39, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t41 = circuit_add(in17, t40); // Eval sumdlogdiv_a_den Horner step: add coefficient_0 + let t42 = circuit_inverse(t41); + let t43 = circuit_mul(t19, t42); + let t44 = circuit_mul(in40, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t45 = circuit_add(in39, t44); // Eval sumdlogdiv_b_num Horner step: add coefficient_10 + let t46 = circuit_mul(t45, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t47 = circuit_add(in38, t46); // Eval sumdlogdiv_b_num Horner step: add coefficient_9 + let t48 = circuit_mul(t47, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t49 = circuit_add(in37, t48); // Eval sumdlogdiv_b_num Horner step: add coefficient_8 + let t50 = circuit_mul(t49, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t51 = circuit_add(in36, t50); // Eval sumdlogdiv_b_num Horner step: add coefficient_7 + let t52 = circuit_mul(t51, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t53 = circuit_add(in35, t52); // Eval sumdlogdiv_b_num Horner step: add coefficient_6 + let t54 = circuit_mul(t53, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t55 = circuit_add(in34, t54); // Eval sumdlogdiv_b_num Horner step: add coefficient_5 + let t56 = circuit_mul(t55, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t57 = circuit_add(in33, t56); // Eval sumdlogdiv_b_num Horner step: add coefficient_4 + let t58 = circuit_mul(t57, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t59 = circuit_add(in32, t58); // Eval sumdlogdiv_b_num Horner step: add coefficient_3 + let t60 = circuit_mul(t59, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t61 = circuit_add(in31, t60); // Eval sumdlogdiv_b_num Horner step: add coefficient_2 + let t62 = circuit_mul(t61, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t63 = circuit_add(in30, t62); // Eval sumdlogdiv_b_num Horner step: add coefficient_1 + let t64 = circuit_mul(t63, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t65 = circuit_add(in29, t64); // Eval sumdlogdiv_b_num Horner step: add coefficient_0 + let t66 = circuit_mul(in55, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t67 = circuit_add(in54, t66); // Eval sumdlogdiv_b_den Horner step: add coefficient_13 + let t68 = circuit_mul(t67, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t69 = circuit_add(in53, t68); // Eval sumdlogdiv_b_den Horner step: add coefficient_12 + let t70 = circuit_mul(t69, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t71 = circuit_add(in52, t70); // Eval sumdlogdiv_b_den Horner step: add coefficient_11 + let t72 = circuit_mul(t71, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t73 = circuit_add(in51, t72); // Eval sumdlogdiv_b_den Horner step: add coefficient_10 + let t74 = circuit_mul(t73, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t75 = circuit_add(in50, t74); // Eval sumdlogdiv_b_den Horner step: add coefficient_9 + let t76 = circuit_mul(t75, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t77 = circuit_add(in49, t76); // Eval sumdlogdiv_b_den Horner step: add coefficient_8 + let t78 = circuit_mul(t77, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t79 = circuit_add(in48, t78); // Eval sumdlogdiv_b_den Horner step: add coefficient_7 + let t80 = circuit_mul(t79, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t81 = circuit_add(in47, t80); // Eval sumdlogdiv_b_den Horner step: add coefficient_6 + let t82 = circuit_mul(t81, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t83 = circuit_add(in46, t82); // Eval sumdlogdiv_b_den Horner step: add coefficient_5 + let t84 = circuit_mul(t83, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t85 = circuit_add(in45, t84); // Eval sumdlogdiv_b_den Horner step: add coefficient_4 + let t86 = circuit_mul(t85, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t87 = circuit_add(in44, t86); // Eval sumdlogdiv_b_den Horner step: add coefficient_3 + let t88 = circuit_mul(t87, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t89 = circuit_add(in43, t88); // Eval sumdlogdiv_b_den Horner step: add coefficient_2 + let t90 = circuit_mul(t89, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t91 = circuit_add(in42, t90); // Eval sumdlogdiv_b_den Horner step: add coefficient_1 + let t92 = circuit_mul(t91, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t93 = circuit_add(in41, t92); // Eval sumdlogdiv_b_den Horner step: add coefficient_0 + let t94 = circuit_inverse(t93); + let t95 = circuit_mul(t65, t94); + let t96 = circuit_mul(in1, t95); + let t97 = circuit_add(t43, t96); + let t98 = circuit_mul(in16, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t99 = circuit_add(in15, t98); // Eval sumdlogdiv_a_num Horner step: add coefficient_9 + let t100 = circuit_mul(t99, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t101 = circuit_add(in14, t100); // Eval sumdlogdiv_a_num Horner step: add coefficient_8 + let t102 = circuit_mul(t101, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t103 = circuit_add(in13, t102); // Eval sumdlogdiv_a_num Horner step: add coefficient_7 + let t104 = circuit_mul(t103, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t105 = circuit_add(in12, t104); // Eval sumdlogdiv_a_num Horner step: add coefficient_6 + let t106 = circuit_mul(t105, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t107 = circuit_add(in11, t106); // Eval sumdlogdiv_a_num Horner step: add coefficient_5 + let t108 = circuit_mul(t107, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t109 = circuit_add(in10, t108); // Eval sumdlogdiv_a_num Horner step: add coefficient_4 + let t110 = circuit_mul(t109, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t111 = circuit_add(in9, t110); // Eval sumdlogdiv_a_num Horner step: add coefficient_3 + let t112 = circuit_mul(t111, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t113 = circuit_add(in8, t112); // Eval sumdlogdiv_a_num Horner step: add coefficient_2 + let t114 = circuit_mul(t113, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t115 = circuit_add(in7, t114); // Eval sumdlogdiv_a_num Horner step: add coefficient_1 + let t116 = circuit_mul(t115, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t117 = circuit_add(in6, t116); // Eval sumdlogdiv_a_num Horner step: add coefficient_0 + let t118 = circuit_mul(in28, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t119 = circuit_add(in27, t118); // Eval sumdlogdiv_a_den Horner step: add coefficient_10 + let t120 = circuit_mul(t119, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t121 = circuit_add(in26, t120); // Eval sumdlogdiv_a_den Horner step: add coefficient_9 + let t122 = circuit_mul(t121, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t123 = circuit_add(in25, t122); // Eval sumdlogdiv_a_den Horner step: add coefficient_8 + let t124 = circuit_mul(t123, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t125 = circuit_add(in24, t124); // Eval sumdlogdiv_a_den Horner step: add coefficient_7 + let t126 = circuit_mul(t125, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t127 = circuit_add(in23, t126); // Eval sumdlogdiv_a_den Horner step: add coefficient_6 + let t128 = circuit_mul(t127, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t129 = circuit_add(in22, t128); // Eval sumdlogdiv_a_den Horner step: add coefficient_5 + let t130 = circuit_mul(t129, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t131 = circuit_add(in21, t130); // Eval sumdlogdiv_a_den Horner step: add coefficient_4 + let t132 = circuit_mul(t131, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t133 = circuit_add(in20, t132); // Eval sumdlogdiv_a_den Horner step: add coefficient_3 + let t134 = circuit_mul(t133, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t135 = circuit_add(in19, t134); // Eval sumdlogdiv_a_den Horner step: add coefficient_2 + let t136 = circuit_mul(t135, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t137 = circuit_add(in18, t136); // Eval sumdlogdiv_a_den Horner step: add coefficient_1 + let t138 = circuit_mul(t137, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t139 = circuit_add(in17, t138); // Eval sumdlogdiv_a_den Horner step: add coefficient_0 + let t140 = circuit_inverse(t139); + let t141 = circuit_mul(t117, t140); + let t142 = circuit_mul(in40, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t143 = circuit_add(in39, t142); // Eval sumdlogdiv_b_num Horner step: add coefficient_10 + let t144 = circuit_mul(t143, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t145 = circuit_add(in38, t144); // Eval sumdlogdiv_b_num Horner step: add coefficient_9 + let t146 = circuit_mul(t145, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t147 = circuit_add(in37, t146); // Eval sumdlogdiv_b_num Horner step: add coefficient_8 + let t148 = circuit_mul(t147, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t149 = circuit_add(in36, t148); // Eval sumdlogdiv_b_num Horner step: add coefficient_7 + let t150 = circuit_mul(t149, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t151 = circuit_add(in35, t150); // Eval sumdlogdiv_b_num Horner step: add coefficient_6 + let t152 = circuit_mul(t151, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t153 = circuit_add(in34, t152); // Eval sumdlogdiv_b_num Horner step: add coefficient_5 + let t154 = circuit_mul(t153, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t155 = circuit_add(in33, t154); // Eval sumdlogdiv_b_num Horner step: add coefficient_4 + let t156 = circuit_mul(t155, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t157 = circuit_add(in32, t156); // Eval sumdlogdiv_b_num Horner step: add coefficient_3 + let t158 = circuit_mul(t157, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t159 = circuit_add(in31, t158); // Eval sumdlogdiv_b_num Horner step: add coefficient_2 + let t160 = circuit_mul(t159, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t161 = circuit_add(in30, t160); // Eval sumdlogdiv_b_num Horner step: add coefficient_1 + let t162 = circuit_mul(t161, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t163 = circuit_add(in29, t162); // Eval sumdlogdiv_b_num Horner step: add coefficient_0 + let t164 = circuit_mul(in55, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t165 = circuit_add(in54, t164); // Eval sumdlogdiv_b_den Horner step: add coefficient_13 + let t166 = circuit_mul(t165, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t167 = circuit_add(in53, t166); // Eval sumdlogdiv_b_den Horner step: add coefficient_12 + let t168 = circuit_mul(t167, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t169 = circuit_add(in52, t168); // Eval sumdlogdiv_b_den Horner step: add coefficient_11 + let t170 = circuit_mul(t169, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t171 = circuit_add(in51, t170); // Eval sumdlogdiv_b_den Horner step: add coefficient_10 + let t172 = circuit_mul(t171, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t173 = circuit_add(in50, t172); // Eval sumdlogdiv_b_den Horner step: add coefficient_9 + let t174 = circuit_mul(t173, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t175 = circuit_add(in49, t174); // Eval sumdlogdiv_b_den Horner step: add coefficient_8 + let t176 = circuit_mul(t175, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t177 = circuit_add(in48, t176); // Eval sumdlogdiv_b_den Horner step: add coefficient_7 + let t178 = circuit_mul(t177, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t179 = circuit_add(in47, t178); // Eval sumdlogdiv_b_den Horner step: add coefficient_6 + let t180 = circuit_mul(t179, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t181 = circuit_add(in46, t180); // Eval sumdlogdiv_b_den Horner step: add coefficient_5 + let t182 = circuit_mul(t181, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t183 = circuit_add(in45, t182); // Eval sumdlogdiv_b_den Horner step: add coefficient_4 + let t184 = circuit_mul(t183, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t185 = circuit_add(in44, t184); // Eval sumdlogdiv_b_den Horner step: add coefficient_3 + let t186 = circuit_mul(t185, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t187 = circuit_add(in43, t186); // Eval sumdlogdiv_b_den Horner step: add coefficient_2 + let t188 = circuit_mul(t187, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t189 = circuit_add(in42, t188); // Eval sumdlogdiv_b_den Horner step: add coefficient_1 + let t190 = circuit_mul(t189, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t191 = circuit_add(in41, t190); // Eval sumdlogdiv_b_den Horner step: add coefficient_0 + let t192 = circuit_inverse(t191); + let t193 = circuit_mul(t163, t192); + let t194 = circuit_mul(in3, t193); + let t195 = circuit_add(t141, t194); + let t196 = circuit_mul(in4, t97); + let t197 = circuit_mul(in5, t195); + let t198 = circuit_sub(t196, t197); + + let modulus = get_modulus(curve_index); - let mut circuit_inputs = (t166,).new_inputs(); + let mut circuit_inputs = (t198,).new_inputs(); // Prefill constants: // Fill inputs: @@ -1859,36 +2493,36 @@ fn run_EVAL_FN_CHALLENGE_DUPL_8P_circuit( circuit_inputs = circuit_inputs.next_2(A2.y); // in3 circuit_inputs = circuit_inputs.next_2(coeff0); // in4 circuit_inputs = circuit_inputs.next_2(coeff2); // in5 - let mut SumDlogDiv_a_num = SumDlogDiv.a_num; - while let Option::Some(val) = SumDlogDiv_a_num.pop_front() { + let mut SumDlogDivBatched_a_num = SumDlogDivBatched.a_num; + while let Option::Some(val) = SumDlogDivBatched_a_num.pop_front() { circuit_inputs = circuit_inputs.next_2(*val); }; - let mut SumDlogDiv_a_den = SumDlogDiv.a_den; - while let Option::Some(val) = SumDlogDiv_a_den.pop_front() { + let mut SumDlogDivBatched_a_den = SumDlogDivBatched.a_den; + while let Option::Some(val) = SumDlogDivBatched_a_den.pop_front() { circuit_inputs = circuit_inputs.next_2(*val); }; - let mut SumDlogDiv_b_num = SumDlogDiv.b_num; - while let Option::Some(val) = SumDlogDiv_b_num.pop_front() { + let mut SumDlogDivBatched_b_num = SumDlogDivBatched.b_num; + while let Option::Some(val) = SumDlogDivBatched_b_num.pop_front() { circuit_inputs = circuit_inputs.next_2(*val); }; - let mut SumDlogDiv_b_den = SumDlogDiv.b_den; - while let Option::Some(val) = SumDlogDiv_b_den.pop_front() { + let mut SumDlogDivBatched_b_den = SumDlogDivBatched.b_den; + while let Option::Some(val) = SumDlogDivBatched_b_den.pop_front() { circuit_inputs = circuit_inputs.next_2(*val); }; - // in6 - in47 + // in6 - in55 let outputs = circuit_inputs.done_2().eval(modulus).unwrap(); - let res: u384 = outputs.get_output(t166); + let res: u384 = outputs.get_output(t198); return (res,); } #[inline(always)] -fn run_EVAL_FN_CHALLENGE_DUPL_9P_circuit( +pub fn run_EVAL_FN_CHALLENGE_DUPL_9P_RLC_circuit( A0: G1Point, A2: G1Point, coeff0: u384, coeff2: u384, - SumDlogDiv: FunctionFelt, - curve_index: usize + SumDlogDivBatched: FunctionFelt, + curve_index: usize, ) -> (u384,) { // INPUT stack let (in0, in1, in2) = (CE::> {}, CE::> {}, CE::> {}); @@ -1908,198 +2542,228 @@ fn run_EVAL_FN_CHALLENGE_DUPL_9P_circuit( let (in42, in43, in44) = (CE::> {}, CE::> {}, CE::> {}); let (in45, in46, in47) = (CE::> {}, CE::> {}, CE::> {}); let (in48, in49, in50) = (CE::> {}, CE::> {}, CE::> {}); - let in51 = CE::> {}; - let t0 = circuit_mul(in15, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 - let t1 = circuit_add(in14, t0); // Eval sumdlogdiv_a_num Horner step: add coefficient_8 + let (in51, in52, in53) = (CE::> {}, CE::> {}, CE::> {}); + let (in54, in55, in56) = (CE::> {}, CE::> {}, CE::> {}); + let (in57, in58, in59) = (CE::> {}, CE::> {}, CE::> {}); + let t0 = circuit_mul(in17, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t1 = circuit_add(in16, t0); // Eval sumdlogdiv_a_num Horner step: add coefficient_10 let t2 = circuit_mul(t1, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 - let t3 = circuit_add(in13, t2); // Eval sumdlogdiv_a_num Horner step: add coefficient_7 + let t3 = circuit_add(in15, t2); // Eval sumdlogdiv_a_num Horner step: add coefficient_9 let t4 = circuit_mul(t3, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 - let t5 = circuit_add(in12, t4); // Eval sumdlogdiv_a_num Horner step: add coefficient_6 + let t5 = circuit_add(in14, t4); // Eval sumdlogdiv_a_num Horner step: add coefficient_8 let t6 = circuit_mul(t5, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 - let t7 = circuit_add(in11, t6); // Eval sumdlogdiv_a_num Horner step: add coefficient_5 + let t7 = circuit_add(in13, t6); // Eval sumdlogdiv_a_num Horner step: add coefficient_7 let t8 = circuit_mul(t7, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 - let t9 = circuit_add(in10, t8); // Eval sumdlogdiv_a_num Horner step: add coefficient_4 + let t9 = circuit_add(in12, t8); // Eval sumdlogdiv_a_num Horner step: add coefficient_6 let t10 = circuit_mul(t9, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 - let t11 = circuit_add(in9, t10); // Eval sumdlogdiv_a_num Horner step: add coefficient_3 + let t11 = circuit_add(in11, t10); // Eval sumdlogdiv_a_num Horner step: add coefficient_5 let t12 = circuit_mul(t11, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 - let t13 = circuit_add(in8, t12); // Eval sumdlogdiv_a_num Horner step: add coefficient_2 + let t13 = circuit_add(in10, t12); // Eval sumdlogdiv_a_num Horner step: add coefficient_4 let t14 = circuit_mul(t13, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 - let t15 = circuit_add(in7, t14); // Eval sumdlogdiv_a_num Horner step: add coefficient_1 + let t15 = circuit_add(in9, t14); // Eval sumdlogdiv_a_num Horner step: add coefficient_3 let t16 = circuit_mul(t15, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 - let t17 = circuit_add(in6, t16); // Eval sumdlogdiv_a_num Horner step: add coefficient_0 - let t18 = circuit_mul(in26, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 - let t19 = circuit_add(in25, t18); // Eval sumdlogdiv_a_den Horner step: add coefficient_9 - let t20 = circuit_mul(t19, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 - let t21 = circuit_add(in24, t20); // Eval sumdlogdiv_a_den Horner step: add coefficient_8 - let t22 = circuit_mul(t21, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 - let t23 = circuit_add(in23, t22); // Eval sumdlogdiv_a_den Horner step: add coefficient_7 + let t17 = circuit_add(in8, t16); // Eval sumdlogdiv_a_num Horner step: add coefficient_2 + let t18 = circuit_mul(t17, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t19 = circuit_add(in7, t18); // Eval sumdlogdiv_a_num Horner step: add coefficient_1 + let t20 = circuit_mul(t19, in0); // Eval sumdlogdiv_a_num Horner step: multiply by xA0 + let t21 = circuit_add(in6, t20); // Eval sumdlogdiv_a_num Horner step: add coefficient_0 + let t22 = circuit_mul(in30, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t23 = circuit_add(in29, t22); // Eval sumdlogdiv_a_den Horner step: add coefficient_11 let t24 = circuit_mul(t23, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 - let t25 = circuit_add(in22, t24); // Eval sumdlogdiv_a_den Horner step: add coefficient_6 + let t25 = circuit_add(in28, t24); // Eval sumdlogdiv_a_den Horner step: add coefficient_10 let t26 = circuit_mul(t25, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 - let t27 = circuit_add(in21, t26); // Eval sumdlogdiv_a_den Horner step: add coefficient_5 + let t27 = circuit_add(in27, t26); // Eval sumdlogdiv_a_den Horner step: add coefficient_9 let t28 = circuit_mul(t27, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 - let t29 = circuit_add(in20, t28); // Eval sumdlogdiv_a_den Horner step: add coefficient_4 + let t29 = circuit_add(in26, t28); // Eval sumdlogdiv_a_den Horner step: add coefficient_8 let t30 = circuit_mul(t29, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 - let t31 = circuit_add(in19, t30); // Eval sumdlogdiv_a_den Horner step: add coefficient_3 + let t31 = circuit_add(in25, t30); // Eval sumdlogdiv_a_den Horner step: add coefficient_7 let t32 = circuit_mul(t31, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 - let t33 = circuit_add(in18, t32); // Eval sumdlogdiv_a_den Horner step: add coefficient_2 + let t33 = circuit_add(in24, t32); // Eval sumdlogdiv_a_den Horner step: add coefficient_6 let t34 = circuit_mul(t33, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 - let t35 = circuit_add(in17, t34); // Eval sumdlogdiv_a_den Horner step: add coefficient_1 + let t35 = circuit_add(in23, t34); // Eval sumdlogdiv_a_den Horner step: add coefficient_5 let t36 = circuit_mul(t35, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 - let t37 = circuit_add(in16, t36); // Eval sumdlogdiv_a_den Horner step: add coefficient_0 - let t38 = circuit_inverse(t37); - let t39 = circuit_mul(t17, t38); - let t40 = circuit_mul(in37, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 - let t41 = circuit_add(in36, t40); // Eval sumdlogdiv_b_num Horner step: add coefficient_9 - let t42 = circuit_mul(t41, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 - let t43 = circuit_add(in35, t42); // Eval sumdlogdiv_b_num Horner step: add coefficient_8 - let t44 = circuit_mul(t43, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 - let t45 = circuit_add(in34, t44); // Eval sumdlogdiv_b_num Horner step: add coefficient_7 - let t46 = circuit_mul(t45, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 - let t47 = circuit_add(in33, t46); // Eval sumdlogdiv_b_num Horner step: add coefficient_6 - let t48 = circuit_mul(t47, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 - let t49 = circuit_add(in32, t48); // Eval sumdlogdiv_b_num Horner step: add coefficient_5 + let t37 = circuit_add(in22, t36); // Eval sumdlogdiv_a_den Horner step: add coefficient_4 + let t38 = circuit_mul(t37, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t39 = circuit_add(in21, t38); // Eval sumdlogdiv_a_den Horner step: add coefficient_3 + let t40 = circuit_mul(t39, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t41 = circuit_add(in20, t40); // Eval sumdlogdiv_a_den Horner step: add coefficient_2 + let t42 = circuit_mul(t41, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t43 = circuit_add(in19, t42); // Eval sumdlogdiv_a_den Horner step: add coefficient_1 + let t44 = circuit_mul(t43, in0); // Eval sumdlogdiv_a_den Horner step: multiply by xA0 + let t45 = circuit_add(in18, t44); // Eval sumdlogdiv_a_den Horner step: add coefficient_0 + let t46 = circuit_inverse(t45); + let t47 = circuit_mul(t21, t46); + let t48 = circuit_mul(in43, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t49 = circuit_add(in42, t48); // Eval sumdlogdiv_b_num Horner step: add coefficient_11 let t50 = circuit_mul(t49, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 - let t51 = circuit_add(in31, t50); // Eval sumdlogdiv_b_num Horner step: add coefficient_4 + let t51 = circuit_add(in41, t50); // Eval sumdlogdiv_b_num Horner step: add coefficient_10 let t52 = circuit_mul(t51, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 - let t53 = circuit_add(in30, t52); // Eval sumdlogdiv_b_num Horner step: add coefficient_3 + let t53 = circuit_add(in40, t52); // Eval sumdlogdiv_b_num Horner step: add coefficient_9 let t54 = circuit_mul(t53, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 - let t55 = circuit_add(in29, t54); // Eval sumdlogdiv_b_num Horner step: add coefficient_2 + let t55 = circuit_add(in39, t54); // Eval sumdlogdiv_b_num Horner step: add coefficient_8 let t56 = circuit_mul(t55, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 - let t57 = circuit_add(in28, t56); // Eval sumdlogdiv_b_num Horner step: add coefficient_1 + let t57 = circuit_add(in38, t56); // Eval sumdlogdiv_b_num Horner step: add coefficient_7 let t58 = circuit_mul(t57, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 - let t59 = circuit_add(in27, t58); // Eval sumdlogdiv_b_num Horner step: add coefficient_0 - let t60 = circuit_mul(in51, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 - let t61 = circuit_add(in50, t60); // Eval sumdlogdiv_b_den Horner step: add coefficient_12 - let t62 = circuit_mul(t61, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 - let t63 = circuit_add(in49, t62); // Eval sumdlogdiv_b_den Horner step: add coefficient_11 - let t64 = circuit_mul(t63, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 - let t65 = circuit_add(in48, t64); // Eval sumdlogdiv_b_den Horner step: add coefficient_10 - let t66 = circuit_mul(t65, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 - let t67 = circuit_add(in47, t66); // Eval sumdlogdiv_b_den Horner step: add coefficient_9 - let t68 = circuit_mul(t67, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 - let t69 = circuit_add(in46, t68); // Eval sumdlogdiv_b_den Horner step: add coefficient_8 - let t70 = circuit_mul(t69, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 - let t71 = circuit_add(in45, t70); // Eval sumdlogdiv_b_den Horner step: add coefficient_7 - let t72 = circuit_mul(t71, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 - let t73 = circuit_add(in44, t72); // Eval sumdlogdiv_b_den Horner step: add coefficient_6 + let t59 = circuit_add(in37, t58); // Eval sumdlogdiv_b_num Horner step: add coefficient_6 + let t60 = circuit_mul(t59, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t61 = circuit_add(in36, t60); // Eval sumdlogdiv_b_num Horner step: add coefficient_5 + let t62 = circuit_mul(t61, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t63 = circuit_add(in35, t62); // Eval sumdlogdiv_b_num Horner step: add coefficient_4 + let t64 = circuit_mul(t63, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t65 = circuit_add(in34, t64); // Eval sumdlogdiv_b_num Horner step: add coefficient_3 + let t66 = circuit_mul(t65, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t67 = circuit_add(in33, t66); // Eval sumdlogdiv_b_num Horner step: add coefficient_2 + let t68 = circuit_mul(t67, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t69 = circuit_add(in32, t68); // Eval sumdlogdiv_b_num Horner step: add coefficient_1 + let t70 = circuit_mul(t69, in0); // Eval sumdlogdiv_b_num Horner step: multiply by xA0 + let t71 = circuit_add(in31, t70); // Eval sumdlogdiv_b_num Horner step: add coefficient_0 + let t72 = circuit_mul(in59, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t73 = circuit_add(in58, t72); // Eval sumdlogdiv_b_den Horner step: add coefficient_14 let t74 = circuit_mul(t73, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 - let t75 = circuit_add(in43, t74); // Eval sumdlogdiv_b_den Horner step: add coefficient_5 + let t75 = circuit_add(in57, t74); // Eval sumdlogdiv_b_den Horner step: add coefficient_13 let t76 = circuit_mul(t75, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 - let t77 = circuit_add(in42, t76); // Eval sumdlogdiv_b_den Horner step: add coefficient_4 + let t77 = circuit_add(in56, t76); // Eval sumdlogdiv_b_den Horner step: add coefficient_12 let t78 = circuit_mul(t77, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 - let t79 = circuit_add(in41, t78); // Eval sumdlogdiv_b_den Horner step: add coefficient_3 + let t79 = circuit_add(in55, t78); // Eval sumdlogdiv_b_den Horner step: add coefficient_11 let t80 = circuit_mul(t79, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 - let t81 = circuit_add(in40, t80); // Eval sumdlogdiv_b_den Horner step: add coefficient_2 + let t81 = circuit_add(in54, t80); // Eval sumdlogdiv_b_den Horner step: add coefficient_10 let t82 = circuit_mul(t81, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 - let t83 = circuit_add(in39, t82); // Eval sumdlogdiv_b_den Horner step: add coefficient_1 + let t83 = circuit_add(in53, t82); // Eval sumdlogdiv_b_den Horner step: add coefficient_9 let t84 = circuit_mul(t83, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 - let t85 = circuit_add(in38, t84); // Eval sumdlogdiv_b_den Horner step: add coefficient_0 - let t86 = circuit_inverse(t85); - let t87 = circuit_mul(t59, t86); - let t88 = circuit_mul(in1, t87); - let t89 = circuit_add(t39, t88); - let t90 = circuit_mul(in15, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 - let t91 = circuit_add(in14, t90); // Eval sumdlogdiv_a_num Horner step: add coefficient_8 - let t92 = circuit_mul(t91, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 - let t93 = circuit_add(in13, t92); // Eval sumdlogdiv_a_num Horner step: add coefficient_7 - let t94 = circuit_mul(t93, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 - let t95 = circuit_add(in12, t94); // Eval sumdlogdiv_a_num Horner step: add coefficient_6 - let t96 = circuit_mul(t95, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 - let t97 = circuit_add(in11, t96); // Eval sumdlogdiv_a_num Horner step: add coefficient_5 - let t98 = circuit_mul(t97, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 - let t99 = circuit_add(in10, t98); // Eval sumdlogdiv_a_num Horner step: add coefficient_4 - let t100 = circuit_mul(t99, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 - let t101 = circuit_add(in9, t100); // Eval sumdlogdiv_a_num Horner step: add coefficient_3 - let t102 = circuit_mul(t101, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 - let t103 = circuit_add(in8, t102); // Eval sumdlogdiv_a_num Horner step: add coefficient_2 - let t104 = circuit_mul(t103, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 - let t105 = circuit_add(in7, t104); // Eval sumdlogdiv_a_num Horner step: add coefficient_1 - let t106 = circuit_mul(t105, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 - let t107 = circuit_add(in6, t106); // Eval sumdlogdiv_a_num Horner step: add coefficient_0 - let t108 = circuit_mul(in26, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 - let t109 = circuit_add(in25, t108); // Eval sumdlogdiv_a_den Horner step: add coefficient_9 - let t110 = circuit_mul(t109, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 - let t111 = circuit_add(in24, t110); // Eval sumdlogdiv_a_den Horner step: add coefficient_8 - let t112 = circuit_mul(t111, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 - let t113 = circuit_add(in23, t112); // Eval sumdlogdiv_a_den Horner step: add coefficient_7 - let t114 = circuit_mul(t113, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 - let t115 = circuit_add(in22, t114); // Eval sumdlogdiv_a_den Horner step: add coefficient_6 - let t116 = circuit_mul(t115, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 - let t117 = circuit_add(in21, t116); // Eval sumdlogdiv_a_den Horner step: add coefficient_5 - let t118 = circuit_mul(t117, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 - let t119 = circuit_add(in20, t118); // Eval sumdlogdiv_a_den Horner step: add coefficient_4 - let t120 = circuit_mul(t119, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 - let t121 = circuit_add(in19, t120); // Eval sumdlogdiv_a_den Horner step: add coefficient_3 - let t122 = circuit_mul(t121, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 - let t123 = circuit_add(in18, t122); // Eval sumdlogdiv_a_den Horner step: add coefficient_2 - let t124 = circuit_mul(t123, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 - let t125 = circuit_add(in17, t124); // Eval sumdlogdiv_a_den Horner step: add coefficient_1 - let t126 = circuit_mul(t125, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 - let t127 = circuit_add(in16, t126); // Eval sumdlogdiv_a_den Horner step: add coefficient_0 - let t128 = circuit_inverse(t127); - let t129 = circuit_mul(t107, t128); - let t130 = circuit_mul(in37, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 - let t131 = circuit_add(in36, t130); // Eval sumdlogdiv_b_num Horner step: add coefficient_9 - let t132 = circuit_mul(t131, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 - let t133 = circuit_add(in35, t132); // Eval sumdlogdiv_b_num Horner step: add coefficient_8 - let t134 = circuit_mul(t133, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 - let t135 = circuit_add(in34, t134); // Eval sumdlogdiv_b_num Horner step: add coefficient_7 - let t136 = circuit_mul(t135, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 - let t137 = circuit_add(in33, t136); // Eval sumdlogdiv_b_num Horner step: add coefficient_6 - let t138 = circuit_mul(t137, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 - let t139 = circuit_add(in32, t138); // Eval sumdlogdiv_b_num Horner step: add coefficient_5 - let t140 = circuit_mul(t139, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 - let t141 = circuit_add(in31, t140); // Eval sumdlogdiv_b_num Horner step: add coefficient_4 - let t142 = circuit_mul(t141, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 - let t143 = circuit_add(in30, t142); // Eval sumdlogdiv_b_num Horner step: add coefficient_3 - let t144 = circuit_mul(t143, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 - let t145 = circuit_add(in29, t144); // Eval sumdlogdiv_b_num Horner step: add coefficient_2 - let t146 = circuit_mul(t145, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 - let t147 = circuit_add(in28, t146); // Eval sumdlogdiv_b_num Horner step: add coefficient_1 - let t148 = circuit_mul(t147, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 - let t149 = circuit_add(in27, t148); // Eval sumdlogdiv_b_num Horner step: add coefficient_0 - let t150 = circuit_mul(in51, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 - let t151 = circuit_add(in50, t150); // Eval sumdlogdiv_b_den Horner step: add coefficient_12 - let t152 = circuit_mul(t151, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 - let t153 = circuit_add(in49, t152); // Eval sumdlogdiv_b_den Horner step: add coefficient_11 - let t154 = circuit_mul(t153, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 - let t155 = circuit_add(in48, t154); // Eval sumdlogdiv_b_den Horner step: add coefficient_10 - let t156 = circuit_mul(t155, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 - let t157 = circuit_add(in47, t156); // Eval sumdlogdiv_b_den Horner step: add coefficient_9 - let t158 = circuit_mul(t157, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 - let t159 = circuit_add(in46, t158); // Eval sumdlogdiv_b_den Horner step: add coefficient_8 - let t160 = circuit_mul(t159, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 - let t161 = circuit_add(in45, t160); // Eval sumdlogdiv_b_den Horner step: add coefficient_7 - let t162 = circuit_mul(t161, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 - let t163 = circuit_add(in44, t162); // Eval sumdlogdiv_b_den Horner step: add coefficient_6 - let t164 = circuit_mul(t163, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 - let t165 = circuit_add(in43, t164); // Eval sumdlogdiv_b_den Horner step: add coefficient_5 - let t166 = circuit_mul(t165, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 - let t167 = circuit_add(in42, t166); // Eval sumdlogdiv_b_den Horner step: add coefficient_4 - let t168 = circuit_mul(t167, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 - let t169 = circuit_add(in41, t168); // Eval sumdlogdiv_b_den Horner step: add coefficient_3 - let t170 = circuit_mul(t169, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 - let t171 = circuit_add(in40, t170); // Eval sumdlogdiv_b_den Horner step: add coefficient_2 - let t172 = circuit_mul(t171, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 - let t173 = circuit_add(in39, t172); // Eval sumdlogdiv_b_den Horner step: add coefficient_1 - let t174 = circuit_mul(t173, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 - let t175 = circuit_add(in38, t174); // Eval sumdlogdiv_b_den Horner step: add coefficient_0 - let t176 = circuit_inverse(t175); - let t177 = circuit_mul(t149, t176); - let t178 = circuit_mul(in3, t177); - let t179 = circuit_add(t129, t178); - let t180 = circuit_mul(in4, t89); - let t181 = circuit_mul(in5, t179); - let t182 = circuit_sub(t180, t181); - - let modulus = get_p(curve_index); - let modulus = TryInto::< - _, CircuitModulus - >::try_into([modulus.limb0, modulus.limb1, modulus.limb2, modulus.limb3]) - .unwrap(); - - let mut circuit_inputs = (t182,).new_inputs(); + let t85 = circuit_add(in52, t84); // Eval sumdlogdiv_b_den Horner step: add coefficient_8 + let t86 = circuit_mul(t85, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t87 = circuit_add(in51, t86); // Eval sumdlogdiv_b_den Horner step: add coefficient_7 + let t88 = circuit_mul(t87, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t89 = circuit_add(in50, t88); // Eval sumdlogdiv_b_den Horner step: add coefficient_6 + let t90 = circuit_mul(t89, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t91 = circuit_add(in49, t90); // Eval sumdlogdiv_b_den Horner step: add coefficient_5 + let t92 = circuit_mul(t91, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t93 = circuit_add(in48, t92); // Eval sumdlogdiv_b_den Horner step: add coefficient_4 + let t94 = circuit_mul(t93, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t95 = circuit_add(in47, t94); // Eval sumdlogdiv_b_den Horner step: add coefficient_3 + let t96 = circuit_mul(t95, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t97 = circuit_add(in46, t96); // Eval sumdlogdiv_b_den Horner step: add coefficient_2 + let t98 = circuit_mul(t97, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t99 = circuit_add(in45, t98); // Eval sumdlogdiv_b_den Horner step: add coefficient_1 + let t100 = circuit_mul(t99, in0); // Eval sumdlogdiv_b_den Horner step: multiply by xA0 + let t101 = circuit_add(in44, t100); // Eval sumdlogdiv_b_den Horner step: add coefficient_0 + let t102 = circuit_inverse(t101); + let t103 = circuit_mul(t71, t102); + let t104 = circuit_mul(in1, t103); + let t105 = circuit_add(t47, t104); + let t106 = circuit_mul(in17, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t107 = circuit_add(in16, t106); // Eval sumdlogdiv_a_num Horner step: add coefficient_10 + let t108 = circuit_mul(t107, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t109 = circuit_add(in15, t108); // Eval sumdlogdiv_a_num Horner step: add coefficient_9 + let t110 = circuit_mul(t109, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t111 = circuit_add(in14, t110); // Eval sumdlogdiv_a_num Horner step: add coefficient_8 + let t112 = circuit_mul(t111, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t113 = circuit_add(in13, t112); // Eval sumdlogdiv_a_num Horner step: add coefficient_7 + let t114 = circuit_mul(t113, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t115 = circuit_add(in12, t114); // Eval sumdlogdiv_a_num Horner step: add coefficient_6 + let t116 = circuit_mul(t115, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t117 = circuit_add(in11, t116); // Eval sumdlogdiv_a_num Horner step: add coefficient_5 + let t118 = circuit_mul(t117, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t119 = circuit_add(in10, t118); // Eval sumdlogdiv_a_num Horner step: add coefficient_4 + let t120 = circuit_mul(t119, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t121 = circuit_add(in9, t120); // Eval sumdlogdiv_a_num Horner step: add coefficient_3 + let t122 = circuit_mul(t121, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t123 = circuit_add(in8, t122); // Eval sumdlogdiv_a_num Horner step: add coefficient_2 + let t124 = circuit_mul(t123, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t125 = circuit_add(in7, t124); // Eval sumdlogdiv_a_num Horner step: add coefficient_1 + let t126 = circuit_mul(t125, in2); // Eval sumdlogdiv_a_num Horner step: multiply by xA2 + let t127 = circuit_add(in6, t126); // Eval sumdlogdiv_a_num Horner step: add coefficient_0 + let t128 = circuit_mul(in30, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t129 = circuit_add(in29, t128); // Eval sumdlogdiv_a_den Horner step: add coefficient_11 + let t130 = circuit_mul(t129, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t131 = circuit_add(in28, t130); // Eval sumdlogdiv_a_den Horner step: add coefficient_10 + let t132 = circuit_mul(t131, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t133 = circuit_add(in27, t132); // Eval sumdlogdiv_a_den Horner step: add coefficient_9 + let t134 = circuit_mul(t133, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t135 = circuit_add(in26, t134); // Eval sumdlogdiv_a_den Horner step: add coefficient_8 + let t136 = circuit_mul(t135, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t137 = circuit_add(in25, t136); // Eval sumdlogdiv_a_den Horner step: add coefficient_7 + let t138 = circuit_mul(t137, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t139 = circuit_add(in24, t138); // Eval sumdlogdiv_a_den Horner step: add coefficient_6 + let t140 = circuit_mul(t139, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t141 = circuit_add(in23, t140); // Eval sumdlogdiv_a_den Horner step: add coefficient_5 + let t142 = circuit_mul(t141, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t143 = circuit_add(in22, t142); // Eval sumdlogdiv_a_den Horner step: add coefficient_4 + let t144 = circuit_mul(t143, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t145 = circuit_add(in21, t144); // Eval sumdlogdiv_a_den Horner step: add coefficient_3 + let t146 = circuit_mul(t145, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t147 = circuit_add(in20, t146); // Eval sumdlogdiv_a_den Horner step: add coefficient_2 + let t148 = circuit_mul(t147, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t149 = circuit_add(in19, t148); // Eval sumdlogdiv_a_den Horner step: add coefficient_1 + let t150 = circuit_mul(t149, in2); // Eval sumdlogdiv_a_den Horner step: multiply by xA2 + let t151 = circuit_add(in18, t150); // Eval sumdlogdiv_a_den Horner step: add coefficient_0 + let t152 = circuit_inverse(t151); + let t153 = circuit_mul(t127, t152); + let t154 = circuit_mul(in43, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t155 = circuit_add(in42, t154); // Eval sumdlogdiv_b_num Horner step: add coefficient_11 + let t156 = circuit_mul(t155, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t157 = circuit_add(in41, t156); // Eval sumdlogdiv_b_num Horner step: add coefficient_10 + let t158 = circuit_mul(t157, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t159 = circuit_add(in40, t158); // Eval sumdlogdiv_b_num Horner step: add coefficient_9 + let t160 = circuit_mul(t159, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t161 = circuit_add(in39, t160); // Eval sumdlogdiv_b_num Horner step: add coefficient_8 + let t162 = circuit_mul(t161, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t163 = circuit_add(in38, t162); // Eval sumdlogdiv_b_num Horner step: add coefficient_7 + let t164 = circuit_mul(t163, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t165 = circuit_add(in37, t164); // Eval sumdlogdiv_b_num Horner step: add coefficient_6 + let t166 = circuit_mul(t165, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t167 = circuit_add(in36, t166); // Eval sumdlogdiv_b_num Horner step: add coefficient_5 + let t168 = circuit_mul(t167, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t169 = circuit_add(in35, t168); // Eval sumdlogdiv_b_num Horner step: add coefficient_4 + let t170 = circuit_mul(t169, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t171 = circuit_add(in34, t170); // Eval sumdlogdiv_b_num Horner step: add coefficient_3 + let t172 = circuit_mul(t171, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t173 = circuit_add(in33, t172); // Eval sumdlogdiv_b_num Horner step: add coefficient_2 + let t174 = circuit_mul(t173, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t175 = circuit_add(in32, t174); // Eval sumdlogdiv_b_num Horner step: add coefficient_1 + let t176 = circuit_mul(t175, in2); // Eval sumdlogdiv_b_num Horner step: multiply by xA2 + let t177 = circuit_add(in31, t176); // Eval sumdlogdiv_b_num Horner step: add coefficient_0 + let t178 = circuit_mul(in59, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t179 = circuit_add(in58, t178); // Eval sumdlogdiv_b_den Horner step: add coefficient_14 + let t180 = circuit_mul(t179, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t181 = circuit_add(in57, t180); // Eval sumdlogdiv_b_den Horner step: add coefficient_13 + let t182 = circuit_mul(t181, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t183 = circuit_add(in56, t182); // Eval sumdlogdiv_b_den Horner step: add coefficient_12 + let t184 = circuit_mul(t183, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t185 = circuit_add(in55, t184); // Eval sumdlogdiv_b_den Horner step: add coefficient_11 + let t186 = circuit_mul(t185, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t187 = circuit_add(in54, t186); // Eval sumdlogdiv_b_den Horner step: add coefficient_10 + let t188 = circuit_mul(t187, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t189 = circuit_add(in53, t188); // Eval sumdlogdiv_b_den Horner step: add coefficient_9 + let t190 = circuit_mul(t189, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t191 = circuit_add(in52, t190); // Eval sumdlogdiv_b_den Horner step: add coefficient_8 + let t192 = circuit_mul(t191, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t193 = circuit_add(in51, t192); // Eval sumdlogdiv_b_den Horner step: add coefficient_7 + let t194 = circuit_mul(t193, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t195 = circuit_add(in50, t194); // Eval sumdlogdiv_b_den Horner step: add coefficient_6 + let t196 = circuit_mul(t195, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t197 = circuit_add(in49, t196); // Eval sumdlogdiv_b_den Horner step: add coefficient_5 + let t198 = circuit_mul(t197, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t199 = circuit_add(in48, t198); // Eval sumdlogdiv_b_den Horner step: add coefficient_4 + let t200 = circuit_mul(t199, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t201 = circuit_add(in47, t200); // Eval sumdlogdiv_b_den Horner step: add coefficient_3 + let t202 = circuit_mul(t201, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t203 = circuit_add(in46, t202); // Eval sumdlogdiv_b_den Horner step: add coefficient_2 + let t204 = circuit_mul(t203, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t205 = circuit_add(in45, t204); // Eval sumdlogdiv_b_den Horner step: add coefficient_1 + let t206 = circuit_mul(t205, in2); // Eval sumdlogdiv_b_den Horner step: multiply by xA2 + let t207 = circuit_add(in44, t206); // Eval sumdlogdiv_b_den Horner step: add coefficient_0 + let t208 = circuit_inverse(t207); + let t209 = circuit_mul(t177, t208); + let t210 = circuit_mul(in3, t209); + let t211 = circuit_add(t153, t210); + let t212 = circuit_mul(in4, t105); + let t213 = circuit_mul(in5, t211); + let t214 = circuit_sub(t212, t213); + + let modulus = get_modulus(curve_index); + + let mut circuit_inputs = (t214,).new_inputs(); // Prefill constants: // Fill inputs: @@ -2109,37 +2773,37 @@ fn run_EVAL_FN_CHALLENGE_DUPL_9P_circuit( circuit_inputs = circuit_inputs.next_2(A2.y); // in3 circuit_inputs = circuit_inputs.next_2(coeff0); // in4 circuit_inputs = circuit_inputs.next_2(coeff2); // in5 - let mut SumDlogDiv_a_num = SumDlogDiv.a_num; - while let Option::Some(val) = SumDlogDiv_a_num.pop_front() { + let mut SumDlogDivBatched_a_num = SumDlogDivBatched.a_num; + while let Option::Some(val) = SumDlogDivBatched_a_num.pop_front() { circuit_inputs = circuit_inputs.next_2(*val); }; - let mut SumDlogDiv_a_den = SumDlogDiv.a_den; - while let Option::Some(val) = SumDlogDiv_a_den.pop_front() { + let mut SumDlogDivBatched_a_den = SumDlogDivBatched.a_den; + while let Option::Some(val) = SumDlogDivBatched_a_den.pop_front() { circuit_inputs = circuit_inputs.next_2(*val); }; - let mut SumDlogDiv_b_num = SumDlogDiv.b_num; - while let Option::Some(val) = SumDlogDiv_b_num.pop_front() { + let mut SumDlogDivBatched_b_num = SumDlogDivBatched.b_num; + while let Option::Some(val) = SumDlogDivBatched_b_num.pop_front() { circuit_inputs = circuit_inputs.next_2(*val); }; - let mut SumDlogDiv_b_den = SumDlogDiv.b_den; - while let Option::Some(val) = SumDlogDiv_b_den.pop_front() { + let mut SumDlogDivBatched_b_den = SumDlogDivBatched.b_den; + while let Option::Some(val) = SumDlogDivBatched_b_den.pop_front() { circuit_inputs = circuit_inputs.next_2(*val); }; - // in6 - in51 + // in6 - in59 let outputs = circuit_inputs.done_2().eval(modulus).unwrap(); - let res: u384 = outputs.get_output(t182); + let res: u384 = outputs.get_output(t214); return (res,); } #[inline(always)] -fn run_FINALIZE_FN_CHALLENGE_DUPL_circuit( +pub fn run_FINALIZE_FN_CHALLENGE_DUPL_circuit( f_a0_accs: FunctionFeltEvaluations, f_a1_accs: FunctionFeltEvaluations, yA0: u384, yA2: u384, coeff_A0: u384, coeff_A2: u384, - curve_index: usize + curve_index: usize, ) -> (u384,) { // INPUT stack let (in0, in1, in2) = (CE::> {}, CE::> {}, CE::> {}); @@ -2162,11 +2826,7 @@ fn run_FINALIZE_FN_CHALLENGE_DUPL_circuit( let t13 = circuit_mul(in11, t11); let t14 = circuit_sub(t12, t13); - let modulus = get_p(curve_index); - let modulus = TryInto::< - _, CircuitModulus - >::try_into([modulus.limb0, modulus.limb1, modulus.limb2, modulus.limb3]) - .unwrap(); + let modulus = get_modulus(curve_index); let mut circuit_inputs = (t14,).new_inputs(); // Prefill constants: @@ -2190,8 +2850,8 @@ fn run_FINALIZE_FN_CHALLENGE_DUPL_circuit( return (res,); } #[inline(always)] -fn run_INIT_FN_CHALLENGE_DUPL_11P_circuit( - xA0: u384, xA2: u384, SumDlogDiv: FunctionFelt, curve_index: usize +pub fn run_INIT_FN_CHALLENGE_DUPL_11P_RLC_circuit( + xA0: u384, xA2: u384, SumDlogDiv: FunctionFelt, curve_index: usize, ) -> (FunctionFeltEvaluations, FunctionFeltEvaluations, u384, u384) { // INPUT stack let (in0, in1, in2) = (CE::> {}, CE::> {}, CE::> {}); @@ -2212,7 +2872,10 @@ fn run_INIT_FN_CHALLENGE_DUPL_11P_circuit( let (in45, in46, in47) = (CE::> {}, CE::> {}, CE::> {}); let (in48, in49, in50) = (CE::> {}, CE::> {}, CE::> {}); let (in51, in52, in53) = (CE::> {}, CE::> {}, CE::> {}); - let (in54, in55) = (CE::> {}, CE::> {}); + let (in54, in55, in56) = (CE::> {}, CE::> {}, CE::> {}); + let (in57, in58, in59) = (CE::> {}, CE::> {}, CE::> {}); + let (in60, in61, in62) = (CE::> {}, CE::> {}, CE::> {}); + let in63 = CE::> {}; let t0 = circuit_mul(in0, in0); // xA0^2 let t1 = circuit_mul(in1, in1); // xA2^2 let t2 = circuit_mul(t0, in0); // xA0^3 @@ -2241,214 +2904,246 @@ fn run_INIT_FN_CHALLENGE_DUPL_11P_circuit( let t25 = circuit_mul(t23, in1); // xA2^14 let t26 = circuit_mul(t24, in0); // xA0^15 let t27 = circuit_mul(t25, in1); // xA2^15 - let t28 = circuit_mul(in3, in0); // Eval sumdlogdiv_a_num step coeff_1 * xA0^1 - let t29 = circuit_add(in2, t28); // Eval sumdlogdiv_a_num step + (coeff_1 * xA0^1) - let t30 = circuit_mul(in4, t0); // Eval sumdlogdiv_a_num step coeff_2 * xA0^2 - let t31 = circuit_add(t29, t30); // Eval sumdlogdiv_a_num step + (coeff_2 * xA0^2) - let t32 = circuit_mul(in5, t2); // Eval sumdlogdiv_a_num step coeff_3 * xA0^3 - let t33 = circuit_add(t31, t32); // Eval sumdlogdiv_a_num step + (coeff_3 * xA0^3) - let t34 = circuit_mul(in6, t4); // Eval sumdlogdiv_a_num step coeff_4 * xA0^4 - let t35 = circuit_add(t33, t34); // Eval sumdlogdiv_a_num step + (coeff_4 * xA0^4) - let t36 = circuit_mul(in7, t6); // Eval sumdlogdiv_a_num step coeff_5 * xA0^5 - let t37 = circuit_add(t35, t36); // Eval sumdlogdiv_a_num step + (coeff_5 * xA0^5) - let t38 = circuit_mul(in8, t8); // Eval sumdlogdiv_a_num step coeff_6 * xA0^6 - let t39 = circuit_add(t37, t38); // Eval sumdlogdiv_a_num step + (coeff_6 * xA0^6) - let t40 = circuit_mul(in9, t10); // Eval sumdlogdiv_a_num step coeff_7 * xA0^7 - let t41 = circuit_add(t39, t40); // Eval sumdlogdiv_a_num step + (coeff_7 * xA0^7) - let t42 = circuit_mul(in10, t12); // Eval sumdlogdiv_a_num step coeff_8 * xA0^8 - let t43 = circuit_add(t41, t42); // Eval sumdlogdiv_a_num step + (coeff_8 * xA0^8) - let t44 = circuit_mul(in11, t14); // Eval sumdlogdiv_a_num step coeff_9 * xA0^9 - let t45 = circuit_add(t43, t44); // Eval sumdlogdiv_a_num step + (coeff_9 * xA0^9) - let t46 = circuit_mul(in12, t16); // Eval sumdlogdiv_a_num step coeff_10 * xA0^10 - let t47 = circuit_add(t45, t46); // Eval sumdlogdiv_a_num step + (coeff_10 * xA0^10) - let t48 = circuit_mul(in13, t18); // Eval sumdlogdiv_a_num step coeff_11 * xA0^11 - let t49 = circuit_add(t47, t48); // Eval sumdlogdiv_a_num step + (coeff_11 * xA0^11) - let t50 = circuit_mul(in15, in0); // Eval sumdlogdiv_a_den step coeff_1 * xA0^1 - let t51 = circuit_add(in14, t50); // Eval sumdlogdiv_a_den step + (coeff_1 * xA0^1) - let t52 = circuit_mul(in16, t0); // Eval sumdlogdiv_a_den step coeff_2 * xA0^2 - let t53 = circuit_add(t51, t52); // Eval sumdlogdiv_a_den step + (coeff_2 * xA0^2) - let t54 = circuit_mul(in17, t2); // Eval sumdlogdiv_a_den step coeff_3 * xA0^3 - let t55 = circuit_add(t53, t54); // Eval sumdlogdiv_a_den step + (coeff_3 * xA0^3) - let t56 = circuit_mul(in18, t4); // Eval sumdlogdiv_a_den step coeff_4 * xA0^4 - let t57 = circuit_add(t55, t56); // Eval sumdlogdiv_a_den step + (coeff_4 * xA0^4) - let t58 = circuit_mul(in19, t6); // Eval sumdlogdiv_a_den step coeff_5 * xA0^5 - let t59 = circuit_add(t57, t58); // Eval sumdlogdiv_a_den step + (coeff_5 * xA0^5) - let t60 = circuit_mul(in20, t8); // Eval sumdlogdiv_a_den step coeff_6 * xA0^6 - let t61 = circuit_add(t59, t60); // Eval sumdlogdiv_a_den step + (coeff_6 * xA0^6) - let t62 = circuit_mul(in21, t10); // Eval sumdlogdiv_a_den step coeff_7 * xA0^7 - let t63 = circuit_add(t61, t62); // Eval sumdlogdiv_a_den step + (coeff_7 * xA0^7) - let t64 = circuit_mul(in22, t12); // Eval sumdlogdiv_a_den step coeff_8 * xA0^8 - let t65 = circuit_add(t63, t64); // Eval sumdlogdiv_a_den step + (coeff_8 * xA0^8) - let t66 = circuit_mul(in23, t14); // Eval sumdlogdiv_a_den step coeff_9 * xA0^9 - let t67 = circuit_add(t65, t66); // Eval sumdlogdiv_a_den step + (coeff_9 * xA0^9) - let t68 = circuit_mul(in24, t16); // Eval sumdlogdiv_a_den step coeff_10 * xA0^10 - let t69 = circuit_add(t67, t68); // Eval sumdlogdiv_a_den step + (coeff_10 * xA0^10) - let t70 = circuit_mul(in25, t18); // Eval sumdlogdiv_a_den step coeff_11 * xA0^11 - let t71 = circuit_add(t69, t70); // Eval sumdlogdiv_a_den step + (coeff_11 * xA0^11) - let t72 = circuit_mul(in26, t20); // Eval sumdlogdiv_a_den step coeff_12 * xA0^12 - let t73 = circuit_add(t71, t72); // Eval sumdlogdiv_a_den step + (coeff_12 * xA0^12) - let t74 = circuit_mul(in28, in0); // Eval sumdlogdiv_b_num step coeff_1 * xA0^1 - let t75 = circuit_add(in27, t74); // Eval sumdlogdiv_b_num step + (coeff_1 * xA0^1) - let t76 = circuit_mul(in29, t0); // Eval sumdlogdiv_b_num step coeff_2 * xA0^2 - let t77 = circuit_add(t75, t76); // Eval sumdlogdiv_b_num step + (coeff_2 * xA0^2) - let t78 = circuit_mul(in30, t2); // Eval sumdlogdiv_b_num step coeff_3 * xA0^3 - let t79 = circuit_add(t77, t78); // Eval sumdlogdiv_b_num step + (coeff_3 * xA0^3) - let t80 = circuit_mul(in31, t4); // Eval sumdlogdiv_b_num step coeff_4 * xA0^4 - let t81 = circuit_add(t79, t80); // Eval sumdlogdiv_b_num step + (coeff_4 * xA0^4) - let t82 = circuit_mul(in32, t6); // Eval sumdlogdiv_b_num step coeff_5 * xA0^5 - let t83 = circuit_add(t81, t82); // Eval sumdlogdiv_b_num step + (coeff_5 * xA0^5) - let t84 = circuit_mul(in33, t8); // Eval sumdlogdiv_b_num step coeff_6 * xA0^6 - let t85 = circuit_add(t83, t84); // Eval sumdlogdiv_b_num step + (coeff_6 * xA0^6) - let t86 = circuit_mul(in34, t10); // Eval sumdlogdiv_b_num step coeff_7 * xA0^7 - let t87 = circuit_add(t85, t86); // Eval sumdlogdiv_b_num step + (coeff_7 * xA0^7) - let t88 = circuit_mul(in35, t12); // Eval sumdlogdiv_b_num step coeff_8 * xA0^8 - let t89 = circuit_add(t87, t88); // Eval sumdlogdiv_b_num step + (coeff_8 * xA0^8) - let t90 = circuit_mul(in36, t14); // Eval sumdlogdiv_b_num step coeff_9 * xA0^9 - let t91 = circuit_add(t89, t90); // Eval sumdlogdiv_b_num step + (coeff_9 * xA0^9) - let t92 = circuit_mul(in37, t16); // Eval sumdlogdiv_b_num step coeff_10 * xA0^10 - let t93 = circuit_add(t91, t92); // Eval sumdlogdiv_b_num step + (coeff_10 * xA0^10) - let t94 = circuit_mul(in38, t18); // Eval sumdlogdiv_b_num step coeff_11 * xA0^11 - let t95 = circuit_add(t93, t94); // Eval sumdlogdiv_b_num step + (coeff_11 * xA0^11) - let t96 = circuit_mul(in39, t20); // Eval sumdlogdiv_b_num step coeff_12 * xA0^12 - let t97 = circuit_add(t95, t96); // Eval sumdlogdiv_b_num step + (coeff_12 * xA0^12) - let t98 = circuit_mul(in41, in0); // Eval sumdlogdiv_b_den step coeff_1 * xA0^1 - let t99 = circuit_add(in40, t98); // Eval sumdlogdiv_b_den step + (coeff_1 * xA0^1) - let t100 = circuit_mul(in42, t0); // Eval sumdlogdiv_b_den step coeff_2 * xA0^2 - let t101 = circuit_add(t99, t100); // Eval sumdlogdiv_b_den step + (coeff_2 * xA0^2) - let t102 = circuit_mul(in43, t2); // Eval sumdlogdiv_b_den step coeff_3 * xA0^3 - let t103 = circuit_add(t101, t102); // Eval sumdlogdiv_b_den step + (coeff_3 * xA0^3) - let t104 = circuit_mul(in44, t4); // Eval sumdlogdiv_b_den step coeff_4 * xA0^4 - let t105 = circuit_add(t103, t104); // Eval sumdlogdiv_b_den step + (coeff_4 * xA0^4) - let t106 = circuit_mul(in45, t6); // Eval sumdlogdiv_b_den step coeff_5 * xA0^5 - let t107 = circuit_add(t105, t106); // Eval sumdlogdiv_b_den step + (coeff_5 * xA0^5) - let t108 = circuit_mul(in46, t8); // Eval sumdlogdiv_b_den step coeff_6 * xA0^6 - let t109 = circuit_add(t107, t108); // Eval sumdlogdiv_b_den step + (coeff_6 * xA0^6) - let t110 = circuit_mul(in47, t10); // Eval sumdlogdiv_b_den step coeff_7 * xA0^7 - let t111 = circuit_add(t109, t110); // Eval sumdlogdiv_b_den step + (coeff_7 * xA0^7) - let t112 = circuit_mul(in48, t12); // Eval sumdlogdiv_b_den step coeff_8 * xA0^8 - let t113 = circuit_add(t111, t112); // Eval sumdlogdiv_b_den step + (coeff_8 * xA0^8) - let t114 = circuit_mul(in49, t14); // Eval sumdlogdiv_b_den step coeff_9 * xA0^9 - let t115 = circuit_add(t113, t114); // Eval sumdlogdiv_b_den step + (coeff_9 * xA0^9) - let t116 = circuit_mul(in50, t16); // Eval sumdlogdiv_b_den step coeff_10 * xA0^10 - let t117 = circuit_add(t115, t116); // Eval sumdlogdiv_b_den step + (coeff_10 * xA0^10) - let t118 = circuit_mul(in51, t18); // Eval sumdlogdiv_b_den step coeff_11 * xA0^11 - let t119 = circuit_add(t117, t118); // Eval sumdlogdiv_b_den step + (coeff_11 * xA0^11) - let t120 = circuit_mul(in52, t20); // Eval sumdlogdiv_b_den step coeff_12 * xA0^12 - let t121 = circuit_add(t119, t120); // Eval sumdlogdiv_b_den step + (coeff_12 * xA0^12) - let t122 = circuit_mul(in53, t22); // Eval sumdlogdiv_b_den step coeff_13 * xA0^13 - let t123 = circuit_add(t121, t122); // Eval sumdlogdiv_b_den step + (coeff_13 * xA0^13) - let t124 = circuit_mul(in54, t24); // Eval sumdlogdiv_b_den step coeff_14 * xA0^14 - let t125 = circuit_add(t123, t124); // Eval sumdlogdiv_b_den step + (coeff_14 * xA0^14) - let t126 = circuit_mul(in55, t26); // Eval sumdlogdiv_b_den step coeff_15 * xA0^15 - let t127 = circuit_add(t125, t126); // Eval sumdlogdiv_b_den step + (coeff_15 * xA0^15) - let t128 = circuit_mul(in3, in1); // Eval sumdlogdiv_a_num step coeff_1 * xA2^1 - let t129 = circuit_add(in2, t128); // Eval sumdlogdiv_a_num step + (coeff_1 * xA2^1) - let t130 = circuit_mul(in4, t1); // Eval sumdlogdiv_a_num step coeff_2 * xA2^2 - let t131 = circuit_add(t129, t130); // Eval sumdlogdiv_a_num step + (coeff_2 * xA2^2) - let t132 = circuit_mul(in5, t3); // Eval sumdlogdiv_a_num step coeff_3 * xA2^3 - let t133 = circuit_add(t131, t132); // Eval sumdlogdiv_a_num step + (coeff_3 * xA2^3) - let t134 = circuit_mul(in6, t5); // Eval sumdlogdiv_a_num step coeff_4 * xA2^4 - let t135 = circuit_add(t133, t134); // Eval sumdlogdiv_a_num step + (coeff_4 * xA2^4) - let t136 = circuit_mul(in7, t7); // Eval sumdlogdiv_a_num step coeff_5 * xA2^5 - let t137 = circuit_add(t135, t136); // Eval sumdlogdiv_a_num step + (coeff_5 * xA2^5) - let t138 = circuit_mul(in8, t9); // Eval sumdlogdiv_a_num step coeff_6 * xA2^6 - let t139 = circuit_add(t137, t138); // Eval sumdlogdiv_a_num step + (coeff_6 * xA2^6) - let t140 = circuit_mul(in9, t11); // Eval sumdlogdiv_a_num step coeff_7 * xA2^7 - let t141 = circuit_add(t139, t140); // Eval sumdlogdiv_a_num step + (coeff_7 * xA2^7) - let t142 = circuit_mul(in10, t13); // Eval sumdlogdiv_a_num step coeff_8 * xA2^8 - let t143 = circuit_add(t141, t142); // Eval sumdlogdiv_a_num step + (coeff_8 * xA2^8) - let t144 = circuit_mul(in11, t15); // Eval sumdlogdiv_a_num step coeff_9 * xA2^9 - let t145 = circuit_add(t143, t144); // Eval sumdlogdiv_a_num step + (coeff_9 * xA2^9) - let t146 = circuit_mul(in12, t17); // Eval sumdlogdiv_a_num step coeff_10 * xA2^10 - let t147 = circuit_add(t145, t146); // Eval sumdlogdiv_a_num step + (coeff_10 * xA2^10) - let t148 = circuit_mul(in13, t19); // Eval sumdlogdiv_a_num step coeff_11 * xA2^11 - let t149 = circuit_add(t147, t148); // Eval sumdlogdiv_a_num step + (coeff_11 * xA2^11) - let t150 = circuit_mul(in15, in1); // Eval sumdlogdiv_a_den step coeff_1 * xA2^1 - let t151 = circuit_add(in14, t150); // Eval sumdlogdiv_a_den step + (coeff_1 * xA2^1) - let t152 = circuit_mul(in16, t1); // Eval sumdlogdiv_a_den step coeff_2 * xA2^2 - let t153 = circuit_add(t151, t152); // Eval sumdlogdiv_a_den step + (coeff_2 * xA2^2) - let t154 = circuit_mul(in17, t3); // Eval sumdlogdiv_a_den step coeff_3 * xA2^3 - let t155 = circuit_add(t153, t154); // Eval sumdlogdiv_a_den step + (coeff_3 * xA2^3) - let t156 = circuit_mul(in18, t5); // Eval sumdlogdiv_a_den step coeff_4 * xA2^4 - let t157 = circuit_add(t155, t156); // Eval sumdlogdiv_a_den step + (coeff_4 * xA2^4) - let t158 = circuit_mul(in19, t7); // Eval sumdlogdiv_a_den step coeff_5 * xA2^5 - let t159 = circuit_add(t157, t158); // Eval sumdlogdiv_a_den step + (coeff_5 * xA2^5) - let t160 = circuit_mul(in20, t9); // Eval sumdlogdiv_a_den step coeff_6 * xA2^6 - let t161 = circuit_add(t159, t160); // Eval sumdlogdiv_a_den step + (coeff_6 * xA2^6) - let t162 = circuit_mul(in21, t11); // Eval sumdlogdiv_a_den step coeff_7 * xA2^7 - let t163 = circuit_add(t161, t162); // Eval sumdlogdiv_a_den step + (coeff_7 * xA2^7) - let t164 = circuit_mul(in22, t13); // Eval sumdlogdiv_a_den step coeff_8 * xA2^8 - let t165 = circuit_add(t163, t164); // Eval sumdlogdiv_a_den step + (coeff_8 * xA2^8) - let t166 = circuit_mul(in23, t15); // Eval sumdlogdiv_a_den step coeff_9 * xA2^9 - let t167 = circuit_add(t165, t166); // Eval sumdlogdiv_a_den step + (coeff_9 * xA2^9) - let t168 = circuit_mul(in24, t17); // Eval sumdlogdiv_a_den step coeff_10 * xA2^10 - let t169 = circuit_add(t167, t168); // Eval sumdlogdiv_a_den step + (coeff_10 * xA2^10) - let t170 = circuit_mul(in25, t19); // Eval sumdlogdiv_a_den step coeff_11 * xA2^11 - let t171 = circuit_add(t169, t170); // Eval sumdlogdiv_a_den step + (coeff_11 * xA2^11) - let t172 = circuit_mul(in26, t21); // Eval sumdlogdiv_a_den step coeff_12 * xA2^12 - let t173 = circuit_add(t171, t172); // Eval sumdlogdiv_a_den step + (coeff_12 * xA2^12) - let t174 = circuit_mul(in28, in1); // Eval sumdlogdiv_b_num step coeff_1 * xA2^1 - let t175 = circuit_add(in27, t174); // Eval sumdlogdiv_b_num step + (coeff_1 * xA2^1) - let t176 = circuit_mul(in29, t1); // Eval sumdlogdiv_b_num step coeff_2 * xA2^2 - let t177 = circuit_add(t175, t176); // Eval sumdlogdiv_b_num step + (coeff_2 * xA2^2) - let t178 = circuit_mul(in30, t3); // Eval sumdlogdiv_b_num step coeff_3 * xA2^3 - let t179 = circuit_add(t177, t178); // Eval sumdlogdiv_b_num step + (coeff_3 * xA2^3) - let t180 = circuit_mul(in31, t5); // Eval sumdlogdiv_b_num step coeff_4 * xA2^4 - let t181 = circuit_add(t179, t180); // Eval sumdlogdiv_b_num step + (coeff_4 * xA2^4) - let t182 = circuit_mul(in32, t7); // Eval sumdlogdiv_b_num step coeff_5 * xA2^5 - let t183 = circuit_add(t181, t182); // Eval sumdlogdiv_b_num step + (coeff_5 * xA2^5) - let t184 = circuit_mul(in33, t9); // Eval sumdlogdiv_b_num step coeff_6 * xA2^6 - let t185 = circuit_add(t183, t184); // Eval sumdlogdiv_b_num step + (coeff_6 * xA2^6) - let t186 = circuit_mul(in34, t11); // Eval sumdlogdiv_b_num step coeff_7 * xA2^7 - let t187 = circuit_add(t185, t186); // Eval sumdlogdiv_b_num step + (coeff_7 * xA2^7) - let t188 = circuit_mul(in35, t13); // Eval sumdlogdiv_b_num step coeff_8 * xA2^8 - let t189 = circuit_add(t187, t188); // Eval sumdlogdiv_b_num step + (coeff_8 * xA2^8) - let t190 = circuit_mul(in36, t15); // Eval sumdlogdiv_b_num step coeff_9 * xA2^9 - let t191 = circuit_add(t189, t190); // Eval sumdlogdiv_b_num step + (coeff_9 * xA2^9) - let t192 = circuit_mul(in37, t17); // Eval sumdlogdiv_b_num step coeff_10 * xA2^10 - let t193 = circuit_add(t191, t192); // Eval sumdlogdiv_b_num step + (coeff_10 * xA2^10) - let t194 = circuit_mul(in38, t19); // Eval sumdlogdiv_b_num step coeff_11 * xA2^11 - let t195 = circuit_add(t193, t194); // Eval sumdlogdiv_b_num step + (coeff_11 * xA2^11) - let t196 = circuit_mul(in39, t21); // Eval sumdlogdiv_b_num step coeff_12 * xA2^12 - let t197 = circuit_add(t195, t196); // Eval sumdlogdiv_b_num step + (coeff_12 * xA2^12) - let t198 = circuit_mul(in41, in1); // Eval sumdlogdiv_b_den step coeff_1 * xA2^1 - let t199 = circuit_add(in40, t198); // Eval sumdlogdiv_b_den step + (coeff_1 * xA2^1) - let t200 = circuit_mul(in42, t1); // Eval sumdlogdiv_b_den step coeff_2 * xA2^2 - let t201 = circuit_add(t199, t200); // Eval sumdlogdiv_b_den step + (coeff_2 * xA2^2) - let t202 = circuit_mul(in43, t3); // Eval sumdlogdiv_b_den step coeff_3 * xA2^3 - let t203 = circuit_add(t201, t202); // Eval sumdlogdiv_b_den step + (coeff_3 * xA2^3) - let t204 = circuit_mul(in44, t5); // Eval sumdlogdiv_b_den step coeff_4 * xA2^4 - let t205 = circuit_add(t203, t204); // Eval sumdlogdiv_b_den step + (coeff_4 * xA2^4) - let t206 = circuit_mul(in45, t7); // Eval sumdlogdiv_b_den step coeff_5 * xA2^5 - let t207 = circuit_add(t205, t206); // Eval sumdlogdiv_b_den step + (coeff_5 * xA2^5) - let t208 = circuit_mul(in46, t9); // Eval sumdlogdiv_b_den step coeff_6 * xA2^6 - let t209 = circuit_add(t207, t208); // Eval sumdlogdiv_b_den step + (coeff_6 * xA2^6) - let t210 = circuit_mul(in47, t11); // Eval sumdlogdiv_b_den step coeff_7 * xA2^7 - let t211 = circuit_add(t209, t210); // Eval sumdlogdiv_b_den step + (coeff_7 * xA2^7) - let t212 = circuit_mul(in48, t13); // Eval sumdlogdiv_b_den step coeff_8 * xA2^8 - let t213 = circuit_add(t211, t212); // Eval sumdlogdiv_b_den step + (coeff_8 * xA2^8) - let t214 = circuit_mul(in49, t15); // Eval sumdlogdiv_b_den step coeff_9 * xA2^9 - let t215 = circuit_add(t213, t214); // Eval sumdlogdiv_b_den step + (coeff_9 * xA2^9) - let t216 = circuit_mul(in50, t17); // Eval sumdlogdiv_b_den step coeff_10 * xA2^10 - let t217 = circuit_add(t215, t216); // Eval sumdlogdiv_b_den step + (coeff_10 * xA2^10) - let t218 = circuit_mul(in51, t19); // Eval sumdlogdiv_b_den step coeff_11 * xA2^11 - let t219 = circuit_add(t217, t218); // Eval sumdlogdiv_b_den step + (coeff_11 * xA2^11) - let t220 = circuit_mul(in52, t21); // Eval sumdlogdiv_b_den step coeff_12 * xA2^12 - let t221 = circuit_add(t219, t220); // Eval sumdlogdiv_b_den step + (coeff_12 * xA2^12) - let t222 = circuit_mul(in53, t23); // Eval sumdlogdiv_b_den step coeff_13 * xA2^13 - let t223 = circuit_add(t221, t222); // Eval sumdlogdiv_b_den step + (coeff_13 * xA2^13) - let t224 = circuit_mul(in54, t25); // Eval sumdlogdiv_b_den step coeff_14 * xA2^14 - let t225 = circuit_add(t223, t224); // Eval sumdlogdiv_b_den step + (coeff_14 * xA2^14) - let t226 = circuit_mul(in55, t27); // Eval sumdlogdiv_b_den step coeff_15 * xA2^15 - let t227 = circuit_add(t225, t226); // Eval sumdlogdiv_b_den step + (coeff_15 * xA2^15) - - let modulus = get_p(curve_index); - let modulus = TryInto::< - _, CircuitModulus - >::try_into([modulus.limb0, modulus.limb1, modulus.limb2, modulus.limb3]) - .unwrap(); - - let mut circuit_inputs = (t49, t73, t97, t127, t149, t173, t197, t227, t20, t21,).new_inputs(); + let t28 = circuit_mul(t26, in0); // xA0^16 + let t29 = circuit_mul(t27, in1); // xA2^16 + let t30 = circuit_mul(t28, in0); // xA0^17 + let t31 = circuit_mul(t29, in1); // xA2^17 + let t32 = circuit_mul(in3, in0); // Eval sumdlogdiv_a_num step coeff_1 * xA0^1 + let t33 = circuit_add(in2, t32); // Eval sumdlogdiv_a_num step + (coeff_1 * xA0^1) + let t34 = circuit_mul(in4, t0); // Eval sumdlogdiv_a_num step coeff_2 * xA0^2 + let t35 = circuit_add(t33, t34); // Eval sumdlogdiv_a_num step + (coeff_2 * xA0^2) + let t36 = circuit_mul(in5, t2); // Eval sumdlogdiv_a_num step coeff_3 * xA0^3 + let t37 = circuit_add(t35, t36); // Eval sumdlogdiv_a_num step + (coeff_3 * xA0^3) + let t38 = circuit_mul(in6, t4); // Eval sumdlogdiv_a_num step coeff_4 * xA0^4 + let t39 = circuit_add(t37, t38); // Eval sumdlogdiv_a_num step + (coeff_4 * xA0^4) + let t40 = circuit_mul(in7, t6); // Eval sumdlogdiv_a_num step coeff_5 * xA0^5 + let t41 = circuit_add(t39, t40); // Eval sumdlogdiv_a_num step + (coeff_5 * xA0^5) + let t42 = circuit_mul(in8, t8); // Eval sumdlogdiv_a_num step coeff_6 * xA0^6 + let t43 = circuit_add(t41, t42); // Eval sumdlogdiv_a_num step + (coeff_6 * xA0^6) + let t44 = circuit_mul(in9, t10); // Eval sumdlogdiv_a_num step coeff_7 * xA0^7 + let t45 = circuit_add(t43, t44); // Eval sumdlogdiv_a_num step + (coeff_7 * xA0^7) + let t46 = circuit_mul(in10, t12); // Eval sumdlogdiv_a_num step coeff_8 * xA0^8 + let t47 = circuit_add(t45, t46); // Eval sumdlogdiv_a_num step + (coeff_8 * xA0^8) + let t48 = circuit_mul(in11, t14); // Eval sumdlogdiv_a_num step coeff_9 * xA0^9 + let t49 = circuit_add(t47, t48); // Eval sumdlogdiv_a_num step + (coeff_9 * xA0^9) + let t50 = circuit_mul(in12, t16); // Eval sumdlogdiv_a_num step coeff_10 * xA0^10 + let t51 = circuit_add(t49, t50); // Eval sumdlogdiv_a_num step + (coeff_10 * xA0^10) + let t52 = circuit_mul(in13, t18); // Eval sumdlogdiv_a_num step coeff_11 * xA0^11 + let t53 = circuit_add(t51, t52); // Eval sumdlogdiv_a_num step + (coeff_11 * xA0^11) + let t54 = circuit_mul(in14, t20); // Eval sumdlogdiv_a_num step coeff_12 * xA0^12 + let t55 = circuit_add(t53, t54); // Eval sumdlogdiv_a_num step + (coeff_12 * xA0^12) + let t56 = circuit_mul(in15, t22); // Eval sumdlogdiv_a_num step coeff_13 * xA0^13 + let t57 = circuit_add(t55, t56); // Eval sumdlogdiv_a_num step + (coeff_13 * xA0^13) + let t58 = circuit_mul(in17, in0); // Eval sumdlogdiv_a_den step coeff_1 * xA0^1 + let t59 = circuit_add(in16, t58); // Eval sumdlogdiv_a_den step + (coeff_1 * xA0^1) + let t60 = circuit_mul(in18, t0); // Eval sumdlogdiv_a_den step coeff_2 * xA0^2 + let t61 = circuit_add(t59, t60); // Eval sumdlogdiv_a_den step + (coeff_2 * xA0^2) + let t62 = circuit_mul(in19, t2); // Eval sumdlogdiv_a_den step coeff_3 * xA0^3 + let t63 = circuit_add(t61, t62); // Eval sumdlogdiv_a_den step + (coeff_3 * xA0^3) + let t64 = circuit_mul(in20, t4); // Eval sumdlogdiv_a_den step coeff_4 * xA0^4 + let t65 = circuit_add(t63, t64); // Eval sumdlogdiv_a_den step + (coeff_4 * xA0^4) + let t66 = circuit_mul(in21, t6); // Eval sumdlogdiv_a_den step coeff_5 * xA0^5 + let t67 = circuit_add(t65, t66); // Eval sumdlogdiv_a_den step + (coeff_5 * xA0^5) + let t68 = circuit_mul(in22, t8); // Eval sumdlogdiv_a_den step coeff_6 * xA0^6 + let t69 = circuit_add(t67, t68); // Eval sumdlogdiv_a_den step + (coeff_6 * xA0^6) + let t70 = circuit_mul(in23, t10); // Eval sumdlogdiv_a_den step coeff_7 * xA0^7 + let t71 = circuit_add(t69, t70); // Eval sumdlogdiv_a_den step + (coeff_7 * xA0^7) + let t72 = circuit_mul(in24, t12); // Eval sumdlogdiv_a_den step coeff_8 * xA0^8 + let t73 = circuit_add(t71, t72); // Eval sumdlogdiv_a_den step + (coeff_8 * xA0^8) + let t74 = circuit_mul(in25, t14); // Eval sumdlogdiv_a_den step coeff_9 * xA0^9 + let t75 = circuit_add(t73, t74); // Eval sumdlogdiv_a_den step + (coeff_9 * xA0^9) + let t76 = circuit_mul(in26, t16); // Eval sumdlogdiv_a_den step coeff_10 * xA0^10 + let t77 = circuit_add(t75, t76); // Eval sumdlogdiv_a_den step + (coeff_10 * xA0^10) + let t78 = circuit_mul(in27, t18); // Eval sumdlogdiv_a_den step coeff_11 * xA0^11 + let t79 = circuit_add(t77, t78); // Eval sumdlogdiv_a_den step + (coeff_11 * xA0^11) + let t80 = circuit_mul(in28, t20); // Eval sumdlogdiv_a_den step coeff_12 * xA0^12 + let t81 = circuit_add(t79, t80); // Eval sumdlogdiv_a_den step + (coeff_12 * xA0^12) + let t82 = circuit_mul(in29, t22); // Eval sumdlogdiv_a_den step coeff_13 * xA0^13 + let t83 = circuit_add(t81, t82); // Eval sumdlogdiv_a_den step + (coeff_13 * xA0^13) + let t84 = circuit_mul(in30, t24); // Eval sumdlogdiv_a_den step coeff_14 * xA0^14 + let t85 = circuit_add(t83, t84); // Eval sumdlogdiv_a_den step + (coeff_14 * xA0^14) + let t86 = circuit_mul(in32, in0); // Eval sumdlogdiv_b_num step coeff_1 * xA0^1 + let t87 = circuit_add(in31, t86); // Eval sumdlogdiv_b_num step + (coeff_1 * xA0^1) + let t88 = circuit_mul(in33, t0); // Eval sumdlogdiv_b_num step coeff_2 * xA0^2 + let t89 = circuit_add(t87, t88); // Eval sumdlogdiv_b_num step + (coeff_2 * xA0^2) + let t90 = circuit_mul(in34, t2); // Eval sumdlogdiv_b_num step coeff_3 * xA0^3 + let t91 = circuit_add(t89, t90); // Eval sumdlogdiv_b_num step + (coeff_3 * xA0^3) + let t92 = circuit_mul(in35, t4); // Eval sumdlogdiv_b_num step coeff_4 * xA0^4 + let t93 = circuit_add(t91, t92); // Eval sumdlogdiv_b_num step + (coeff_4 * xA0^4) + let t94 = circuit_mul(in36, t6); // Eval sumdlogdiv_b_num step coeff_5 * xA0^5 + let t95 = circuit_add(t93, t94); // Eval sumdlogdiv_b_num step + (coeff_5 * xA0^5) + let t96 = circuit_mul(in37, t8); // Eval sumdlogdiv_b_num step coeff_6 * xA0^6 + let t97 = circuit_add(t95, t96); // Eval sumdlogdiv_b_num step + (coeff_6 * xA0^6) + let t98 = circuit_mul(in38, t10); // Eval sumdlogdiv_b_num step coeff_7 * xA0^7 + let t99 = circuit_add(t97, t98); // Eval sumdlogdiv_b_num step + (coeff_7 * xA0^7) + let t100 = circuit_mul(in39, t12); // Eval sumdlogdiv_b_num step coeff_8 * xA0^8 + let t101 = circuit_add(t99, t100); // Eval sumdlogdiv_b_num step + (coeff_8 * xA0^8) + let t102 = circuit_mul(in40, t14); // Eval sumdlogdiv_b_num step coeff_9 * xA0^9 + let t103 = circuit_add(t101, t102); // Eval sumdlogdiv_b_num step + (coeff_9 * xA0^9) + let t104 = circuit_mul(in41, t16); // Eval sumdlogdiv_b_num step coeff_10 * xA0^10 + let t105 = circuit_add(t103, t104); // Eval sumdlogdiv_b_num step + (coeff_10 * xA0^10) + let t106 = circuit_mul(in42, t18); // Eval sumdlogdiv_b_num step coeff_11 * xA0^11 + let t107 = circuit_add(t105, t106); // Eval sumdlogdiv_b_num step + (coeff_11 * xA0^11) + let t108 = circuit_mul(in43, t20); // Eval sumdlogdiv_b_num step coeff_12 * xA0^12 + let t109 = circuit_add(t107, t108); // Eval sumdlogdiv_b_num step + (coeff_12 * xA0^12) + let t110 = circuit_mul(in44, t22); // Eval sumdlogdiv_b_num step coeff_13 * xA0^13 + let t111 = circuit_add(t109, t110); // Eval sumdlogdiv_b_num step + (coeff_13 * xA0^13) + let t112 = circuit_mul(in45, t24); // Eval sumdlogdiv_b_num step coeff_14 * xA0^14 + let t113 = circuit_add(t111, t112); // Eval sumdlogdiv_b_num step + (coeff_14 * xA0^14) + let t114 = circuit_mul(in47, in0); // Eval sumdlogdiv_b_den step coeff_1 * xA0^1 + let t115 = circuit_add(in46, t114); // Eval sumdlogdiv_b_den step + (coeff_1 * xA0^1) + let t116 = circuit_mul(in48, t0); // Eval sumdlogdiv_b_den step coeff_2 * xA0^2 + let t117 = circuit_add(t115, t116); // Eval sumdlogdiv_b_den step + (coeff_2 * xA0^2) + let t118 = circuit_mul(in49, t2); // Eval sumdlogdiv_b_den step coeff_3 * xA0^3 + let t119 = circuit_add(t117, t118); // Eval sumdlogdiv_b_den step + (coeff_3 * xA0^3) + let t120 = circuit_mul(in50, t4); // Eval sumdlogdiv_b_den step coeff_4 * xA0^4 + let t121 = circuit_add(t119, t120); // Eval sumdlogdiv_b_den step + (coeff_4 * xA0^4) + let t122 = circuit_mul(in51, t6); // Eval sumdlogdiv_b_den step coeff_5 * xA0^5 + let t123 = circuit_add(t121, t122); // Eval sumdlogdiv_b_den step + (coeff_5 * xA0^5) + let t124 = circuit_mul(in52, t8); // Eval sumdlogdiv_b_den step coeff_6 * xA0^6 + let t125 = circuit_add(t123, t124); // Eval sumdlogdiv_b_den step + (coeff_6 * xA0^6) + let t126 = circuit_mul(in53, t10); // Eval sumdlogdiv_b_den step coeff_7 * xA0^7 + let t127 = circuit_add(t125, t126); // Eval sumdlogdiv_b_den step + (coeff_7 * xA0^7) + let t128 = circuit_mul(in54, t12); // Eval sumdlogdiv_b_den step coeff_8 * xA0^8 + let t129 = circuit_add(t127, t128); // Eval sumdlogdiv_b_den step + (coeff_8 * xA0^8) + let t130 = circuit_mul(in55, t14); // Eval sumdlogdiv_b_den step coeff_9 * xA0^9 + let t131 = circuit_add(t129, t130); // Eval sumdlogdiv_b_den step + (coeff_9 * xA0^9) + let t132 = circuit_mul(in56, t16); // Eval sumdlogdiv_b_den step coeff_10 * xA0^10 + let t133 = circuit_add(t131, t132); // Eval sumdlogdiv_b_den step + (coeff_10 * xA0^10) + let t134 = circuit_mul(in57, t18); // Eval sumdlogdiv_b_den step coeff_11 * xA0^11 + let t135 = circuit_add(t133, t134); // Eval sumdlogdiv_b_den step + (coeff_11 * xA0^11) + let t136 = circuit_mul(in58, t20); // Eval sumdlogdiv_b_den step coeff_12 * xA0^12 + let t137 = circuit_add(t135, t136); // Eval sumdlogdiv_b_den step + (coeff_12 * xA0^12) + let t138 = circuit_mul(in59, t22); // Eval sumdlogdiv_b_den step coeff_13 * xA0^13 + let t139 = circuit_add(t137, t138); // Eval sumdlogdiv_b_den step + (coeff_13 * xA0^13) + let t140 = circuit_mul(in60, t24); // Eval sumdlogdiv_b_den step coeff_14 * xA0^14 + let t141 = circuit_add(t139, t140); // Eval sumdlogdiv_b_den step + (coeff_14 * xA0^14) + let t142 = circuit_mul(in61, t26); // Eval sumdlogdiv_b_den step coeff_15 * xA0^15 + let t143 = circuit_add(t141, t142); // Eval sumdlogdiv_b_den step + (coeff_15 * xA0^15) + let t144 = circuit_mul(in62, t28); // Eval sumdlogdiv_b_den step coeff_16 * xA0^16 + let t145 = circuit_add(t143, t144); // Eval sumdlogdiv_b_den step + (coeff_16 * xA0^16) + let t146 = circuit_mul(in63, t30); // Eval sumdlogdiv_b_den step coeff_17 * xA0^17 + let t147 = circuit_add(t145, t146); // Eval sumdlogdiv_b_den step + (coeff_17 * xA0^17) + let t148 = circuit_mul(in3, in1); // Eval sumdlogdiv_a_num step coeff_1 * xA2^1 + let t149 = circuit_add(in2, t148); // Eval sumdlogdiv_a_num step + (coeff_1 * xA2^1) + let t150 = circuit_mul(in4, t1); // Eval sumdlogdiv_a_num step coeff_2 * xA2^2 + let t151 = circuit_add(t149, t150); // Eval sumdlogdiv_a_num step + (coeff_2 * xA2^2) + let t152 = circuit_mul(in5, t3); // Eval sumdlogdiv_a_num step coeff_3 * xA2^3 + let t153 = circuit_add(t151, t152); // Eval sumdlogdiv_a_num step + (coeff_3 * xA2^3) + let t154 = circuit_mul(in6, t5); // Eval sumdlogdiv_a_num step coeff_4 * xA2^4 + let t155 = circuit_add(t153, t154); // Eval sumdlogdiv_a_num step + (coeff_4 * xA2^4) + let t156 = circuit_mul(in7, t7); // Eval sumdlogdiv_a_num step coeff_5 * xA2^5 + let t157 = circuit_add(t155, t156); // Eval sumdlogdiv_a_num step + (coeff_5 * xA2^5) + let t158 = circuit_mul(in8, t9); // Eval sumdlogdiv_a_num step coeff_6 * xA2^6 + let t159 = circuit_add(t157, t158); // Eval sumdlogdiv_a_num step + (coeff_6 * xA2^6) + let t160 = circuit_mul(in9, t11); // Eval sumdlogdiv_a_num step coeff_7 * xA2^7 + let t161 = circuit_add(t159, t160); // Eval sumdlogdiv_a_num step + (coeff_7 * xA2^7) + let t162 = circuit_mul(in10, t13); // Eval sumdlogdiv_a_num step coeff_8 * xA2^8 + let t163 = circuit_add(t161, t162); // Eval sumdlogdiv_a_num step + (coeff_8 * xA2^8) + let t164 = circuit_mul(in11, t15); // Eval sumdlogdiv_a_num step coeff_9 * xA2^9 + let t165 = circuit_add(t163, t164); // Eval sumdlogdiv_a_num step + (coeff_9 * xA2^9) + let t166 = circuit_mul(in12, t17); // Eval sumdlogdiv_a_num step coeff_10 * xA2^10 + let t167 = circuit_add(t165, t166); // Eval sumdlogdiv_a_num step + (coeff_10 * xA2^10) + let t168 = circuit_mul(in13, t19); // Eval sumdlogdiv_a_num step coeff_11 * xA2^11 + let t169 = circuit_add(t167, t168); // Eval sumdlogdiv_a_num step + (coeff_11 * xA2^11) + let t170 = circuit_mul(in14, t21); // Eval sumdlogdiv_a_num step coeff_12 * xA2^12 + let t171 = circuit_add(t169, t170); // Eval sumdlogdiv_a_num step + (coeff_12 * xA2^12) + let t172 = circuit_mul(in15, t23); // Eval sumdlogdiv_a_num step coeff_13 * xA2^13 + let t173 = circuit_add(t171, t172); // Eval sumdlogdiv_a_num step + (coeff_13 * xA2^13) + let t174 = circuit_mul(in17, in1); // Eval sumdlogdiv_a_den step coeff_1 * xA2^1 + let t175 = circuit_add(in16, t174); // Eval sumdlogdiv_a_den step + (coeff_1 * xA2^1) + let t176 = circuit_mul(in18, t1); // Eval sumdlogdiv_a_den step coeff_2 * xA2^2 + let t177 = circuit_add(t175, t176); // Eval sumdlogdiv_a_den step + (coeff_2 * xA2^2) + let t178 = circuit_mul(in19, t3); // Eval sumdlogdiv_a_den step coeff_3 * xA2^3 + let t179 = circuit_add(t177, t178); // Eval sumdlogdiv_a_den step + (coeff_3 * xA2^3) + let t180 = circuit_mul(in20, t5); // Eval sumdlogdiv_a_den step coeff_4 * xA2^4 + let t181 = circuit_add(t179, t180); // Eval sumdlogdiv_a_den step + (coeff_4 * xA2^4) + let t182 = circuit_mul(in21, t7); // Eval sumdlogdiv_a_den step coeff_5 * xA2^5 + let t183 = circuit_add(t181, t182); // Eval sumdlogdiv_a_den step + (coeff_5 * xA2^5) + let t184 = circuit_mul(in22, t9); // Eval sumdlogdiv_a_den step coeff_6 * xA2^6 + let t185 = circuit_add(t183, t184); // Eval sumdlogdiv_a_den step + (coeff_6 * xA2^6) + let t186 = circuit_mul(in23, t11); // Eval sumdlogdiv_a_den step coeff_7 * xA2^7 + let t187 = circuit_add(t185, t186); // Eval sumdlogdiv_a_den step + (coeff_7 * xA2^7) + let t188 = circuit_mul(in24, t13); // Eval sumdlogdiv_a_den step coeff_8 * xA2^8 + let t189 = circuit_add(t187, t188); // Eval sumdlogdiv_a_den step + (coeff_8 * xA2^8) + let t190 = circuit_mul(in25, t15); // Eval sumdlogdiv_a_den step coeff_9 * xA2^9 + let t191 = circuit_add(t189, t190); // Eval sumdlogdiv_a_den step + (coeff_9 * xA2^9) + let t192 = circuit_mul(in26, t17); // Eval sumdlogdiv_a_den step coeff_10 * xA2^10 + let t193 = circuit_add(t191, t192); // Eval sumdlogdiv_a_den step + (coeff_10 * xA2^10) + let t194 = circuit_mul(in27, t19); // Eval sumdlogdiv_a_den step coeff_11 * xA2^11 + let t195 = circuit_add(t193, t194); // Eval sumdlogdiv_a_den step + (coeff_11 * xA2^11) + let t196 = circuit_mul(in28, t21); // Eval sumdlogdiv_a_den step coeff_12 * xA2^12 + let t197 = circuit_add(t195, t196); // Eval sumdlogdiv_a_den step + (coeff_12 * xA2^12) + let t198 = circuit_mul(in29, t23); // Eval sumdlogdiv_a_den step coeff_13 * xA2^13 + let t199 = circuit_add(t197, t198); // Eval sumdlogdiv_a_den step + (coeff_13 * xA2^13) + let t200 = circuit_mul(in30, t25); // Eval sumdlogdiv_a_den step coeff_14 * xA2^14 + let t201 = circuit_add(t199, t200); // Eval sumdlogdiv_a_den step + (coeff_14 * xA2^14) + let t202 = circuit_mul(in32, in1); // Eval sumdlogdiv_b_num step coeff_1 * xA2^1 + let t203 = circuit_add(in31, t202); // Eval sumdlogdiv_b_num step + (coeff_1 * xA2^1) + let t204 = circuit_mul(in33, t1); // Eval sumdlogdiv_b_num step coeff_2 * xA2^2 + let t205 = circuit_add(t203, t204); // Eval sumdlogdiv_b_num step + (coeff_2 * xA2^2) + let t206 = circuit_mul(in34, t3); // Eval sumdlogdiv_b_num step coeff_3 * xA2^3 + let t207 = circuit_add(t205, t206); // Eval sumdlogdiv_b_num step + (coeff_3 * xA2^3) + let t208 = circuit_mul(in35, t5); // Eval sumdlogdiv_b_num step coeff_4 * xA2^4 + let t209 = circuit_add(t207, t208); // Eval sumdlogdiv_b_num step + (coeff_4 * xA2^4) + let t210 = circuit_mul(in36, t7); // Eval sumdlogdiv_b_num step coeff_5 * xA2^5 + let t211 = circuit_add(t209, t210); // Eval sumdlogdiv_b_num step + (coeff_5 * xA2^5) + let t212 = circuit_mul(in37, t9); // Eval sumdlogdiv_b_num step coeff_6 * xA2^6 + let t213 = circuit_add(t211, t212); // Eval sumdlogdiv_b_num step + (coeff_6 * xA2^6) + let t214 = circuit_mul(in38, t11); // Eval sumdlogdiv_b_num step coeff_7 * xA2^7 + let t215 = circuit_add(t213, t214); // Eval sumdlogdiv_b_num step + (coeff_7 * xA2^7) + let t216 = circuit_mul(in39, t13); // Eval sumdlogdiv_b_num step coeff_8 * xA2^8 + let t217 = circuit_add(t215, t216); // Eval sumdlogdiv_b_num step + (coeff_8 * xA2^8) + let t218 = circuit_mul(in40, t15); // Eval sumdlogdiv_b_num step coeff_9 * xA2^9 + let t219 = circuit_add(t217, t218); // Eval sumdlogdiv_b_num step + (coeff_9 * xA2^9) + let t220 = circuit_mul(in41, t17); // Eval sumdlogdiv_b_num step coeff_10 * xA2^10 + let t221 = circuit_add(t219, t220); // Eval sumdlogdiv_b_num step + (coeff_10 * xA2^10) + let t222 = circuit_mul(in42, t19); // Eval sumdlogdiv_b_num step coeff_11 * xA2^11 + let t223 = circuit_add(t221, t222); // Eval sumdlogdiv_b_num step + (coeff_11 * xA2^11) + let t224 = circuit_mul(in43, t21); // Eval sumdlogdiv_b_num step coeff_12 * xA2^12 + let t225 = circuit_add(t223, t224); // Eval sumdlogdiv_b_num step + (coeff_12 * xA2^12) + let t226 = circuit_mul(in44, t23); // Eval sumdlogdiv_b_num step coeff_13 * xA2^13 + let t227 = circuit_add(t225, t226); // Eval sumdlogdiv_b_num step + (coeff_13 * xA2^13) + let t228 = circuit_mul(in45, t25); // Eval sumdlogdiv_b_num step coeff_14 * xA2^14 + let t229 = circuit_add(t227, t228); // Eval sumdlogdiv_b_num step + (coeff_14 * xA2^14) + let t230 = circuit_mul(in47, in1); // Eval sumdlogdiv_b_den step coeff_1 * xA2^1 + let t231 = circuit_add(in46, t230); // Eval sumdlogdiv_b_den step + (coeff_1 * xA2^1) + let t232 = circuit_mul(in48, t1); // Eval sumdlogdiv_b_den step coeff_2 * xA2^2 + let t233 = circuit_add(t231, t232); // Eval sumdlogdiv_b_den step + (coeff_2 * xA2^2) + let t234 = circuit_mul(in49, t3); // Eval sumdlogdiv_b_den step coeff_3 * xA2^3 + let t235 = circuit_add(t233, t234); // Eval sumdlogdiv_b_den step + (coeff_3 * xA2^3) + let t236 = circuit_mul(in50, t5); // Eval sumdlogdiv_b_den step coeff_4 * xA2^4 + let t237 = circuit_add(t235, t236); // Eval sumdlogdiv_b_den step + (coeff_4 * xA2^4) + let t238 = circuit_mul(in51, t7); // Eval sumdlogdiv_b_den step coeff_5 * xA2^5 + let t239 = circuit_add(t237, t238); // Eval sumdlogdiv_b_den step + (coeff_5 * xA2^5) + let t240 = circuit_mul(in52, t9); // Eval sumdlogdiv_b_den step coeff_6 * xA2^6 + let t241 = circuit_add(t239, t240); // Eval sumdlogdiv_b_den step + (coeff_6 * xA2^6) + let t242 = circuit_mul(in53, t11); // Eval sumdlogdiv_b_den step coeff_7 * xA2^7 + let t243 = circuit_add(t241, t242); // Eval sumdlogdiv_b_den step + (coeff_7 * xA2^7) + let t244 = circuit_mul(in54, t13); // Eval sumdlogdiv_b_den step coeff_8 * xA2^8 + let t245 = circuit_add(t243, t244); // Eval sumdlogdiv_b_den step + (coeff_8 * xA2^8) + let t246 = circuit_mul(in55, t15); // Eval sumdlogdiv_b_den step coeff_9 * xA2^9 + let t247 = circuit_add(t245, t246); // Eval sumdlogdiv_b_den step + (coeff_9 * xA2^9) + let t248 = circuit_mul(in56, t17); // Eval sumdlogdiv_b_den step coeff_10 * xA2^10 + let t249 = circuit_add(t247, t248); // Eval sumdlogdiv_b_den step + (coeff_10 * xA2^10) + let t250 = circuit_mul(in57, t19); // Eval sumdlogdiv_b_den step coeff_11 * xA2^11 + let t251 = circuit_add(t249, t250); // Eval sumdlogdiv_b_den step + (coeff_11 * xA2^11) + let t252 = circuit_mul(in58, t21); // Eval sumdlogdiv_b_den step coeff_12 * xA2^12 + let t253 = circuit_add(t251, t252); // Eval sumdlogdiv_b_den step + (coeff_12 * xA2^12) + let t254 = circuit_mul(in59, t23); // Eval sumdlogdiv_b_den step coeff_13 * xA2^13 + let t255 = circuit_add(t253, t254); // Eval sumdlogdiv_b_den step + (coeff_13 * xA2^13) + let t256 = circuit_mul(in60, t25); // Eval sumdlogdiv_b_den step coeff_14 * xA2^14 + let t257 = circuit_add(t255, t256); // Eval sumdlogdiv_b_den step + (coeff_14 * xA2^14) + let t258 = circuit_mul(in61, t27); // Eval sumdlogdiv_b_den step coeff_15 * xA2^15 + let t259 = circuit_add(t257, t258); // Eval sumdlogdiv_b_den step + (coeff_15 * xA2^15) + let t260 = circuit_mul(in62, t29); // Eval sumdlogdiv_b_den step coeff_16 * xA2^16 + let t261 = circuit_add(t259, t260); // Eval sumdlogdiv_b_den step + (coeff_16 * xA2^16) + let t262 = circuit_mul(in63, t31); // Eval sumdlogdiv_b_den step coeff_17 * xA2^17 + let t263 = circuit_add(t261, t262); // Eval sumdlogdiv_b_den step + (coeff_17 * xA2^17) + + let modulus = get_modulus(curve_index); + + let mut circuit_inputs = (t57, t85, t113, t147, t173, t201, t229, t263, t24, t25).new_inputs(); // Prefill constants: // Fill inputs: @@ -2470,28 +3165,28 @@ fn run_INIT_FN_CHALLENGE_DUPL_11P_circuit( while let Option::Some(val) = SumDlogDiv_b_den.pop_front() { circuit_inputs = circuit_inputs.next_2(*val); }; - // in2 - in55 + // in2 - in63 let outputs = circuit_inputs.done_2().eval(modulus).unwrap(); let A0_evals: FunctionFeltEvaluations = FunctionFeltEvaluations { - a_num: outputs.get_output(t49), - a_den: outputs.get_output(t73), - b_num: outputs.get_output(t97), - b_den: outputs.get_output(t127) + a_num: outputs.get_output(t57), + a_den: outputs.get_output(t85), + b_num: outputs.get_output(t113), + b_den: outputs.get_output(t147), }; let A2_evals: FunctionFeltEvaluations = FunctionFeltEvaluations { - a_num: outputs.get_output(t149), - a_den: outputs.get_output(t173), - b_num: outputs.get_output(t197), - b_den: outputs.get_output(t227) + a_num: outputs.get_output(t173), + a_den: outputs.get_output(t201), + b_num: outputs.get_output(t229), + b_den: outputs.get_output(t263), }; - let xA0_power: u384 = outputs.get_output(t20); - let xA2_power: u384 = outputs.get_output(t21); + let xA0_power: u384 = outputs.get_output(t24); + let xA2_power: u384 = outputs.get_output(t25); return (A0_evals, A2_evals, xA0_power, xA2_power); } #[inline(always)] -fn run_IS_ON_CURVE_G1_G2_circuit( - p: G1Point, q: G2Point, a: u384, b: u384, b20: u384, b21: u384, curve_index: usize +pub fn run_IS_ON_CURVE_G1_G2_circuit( + p: G1Point, q: G2Point, a: u384, b: u384, b20: u384, b21: u384, curve_index: usize, ) -> (u384, u384, u384) { // INPUT stack let (in0, in1, in2) = (CE::> {}, CE::> {}, CE::> {}); @@ -2528,13 +3223,9 @@ fn run_IS_ON_CURVE_G1_G2_circuit( let t27 = circuit_sub(t6, t24); let t28 = circuit_sub(t8, t25); - let modulus = get_p(curve_index); - let modulus = TryInto::< - _, CircuitModulus - >::try_into([modulus.limb0, modulus.limb1, modulus.limb2, modulus.limb3]) - .unwrap(); + let modulus = get_modulus(curve_index); - let mut circuit_inputs = (t26, t27, t28,).new_inputs(); + let mut circuit_inputs = (t26, t27, t28).new_inputs(); // Prefill constants: // Fill inputs: @@ -2556,7 +3247,7 @@ fn run_IS_ON_CURVE_G1_G2_circuit( return (zero_check_0, zero_check_1, zero_check_2); } #[inline(always)] -fn run_IS_ON_CURVE_G1_circuit(p: G1Point, a: u384, b: u384, curve_index: usize) -> (u384,) { +pub fn run_IS_ON_CURVE_G1_circuit(p: G1Point, a: u384, b: u384, curve_index: usize) -> (u384,) { // INPUT stack let (in0, in1, in2) = (CE::> {}, CE::> {}, CE::> {}); let in3 = CE::> {}; @@ -2568,11 +3259,7 @@ fn run_IS_ON_CURVE_G1_circuit(p: G1Point, a: u384, b: u384, curve_index: usize) let t5 = circuit_add(t2, t4); let t6 = circuit_sub(t0, t5); - let modulus = get_p(curve_index); - let modulus = TryInto::< - _, CircuitModulus - >::try_into([modulus.limb0, modulus.limb1, modulus.limb2, modulus.limb3]) - .unwrap(); + let modulus = get_modulus(curve_index); let mut circuit_inputs = (t6,).new_inputs(); // Prefill constants: @@ -2588,8 +3275,8 @@ fn run_IS_ON_CURVE_G1_circuit(p: G1Point, a: u384, b: u384, curve_index: usize) return (zero_check,); } #[inline(always)] -fn run_IS_ON_CURVE_G2_circuit( - p: G2Point, a: u384, b20: u384, b21: u384, curve_index: usize +pub fn run_IS_ON_CURVE_G2_circuit( + p: G2Point, a: u384, b20: u384, b21: u384, curve_index: usize, ) -> (u384, u384) { // INPUT stack let (in0, in1, in2) = (CE::> {}, CE::> {}, CE::> {}); @@ -2620,13 +3307,9 @@ fn run_IS_ON_CURVE_G2_circuit( let t22 = circuit_sub(t2, t20); let t23 = circuit_sub(t4, t21); - let modulus = get_p(curve_index); - let modulus = TryInto::< - _, CircuitModulus - >::try_into([modulus.limb0, modulus.limb1, modulus.limb2, modulus.limb3]) - .unwrap(); + let modulus = get_modulus(curve_index); - let mut circuit_inputs = (t22, t23,).new_inputs(); + let mut circuit_inputs = (t22, t23).new_inputs(); // Prefill constants: // Fill inputs: @@ -2644,8 +3327,8 @@ fn run_IS_ON_CURVE_G2_circuit( return (zero_check_0, zero_check_1); } #[inline(always)] -fn run_RHS_FINALIZE_ACC_circuit( - acc: u384, m: u384, b: u384, xA: u384, Q_result: G1Point, curve_index: usize +pub fn run_RHS_FINALIZE_ACC_circuit( + acc: u384, m: u384, b: u384, xA: u384, Q_result: G1Point, curve_index: usize, ) -> (u384,) { // CONSTANT stack let in0 = CE::> {}; // 0x0 @@ -2662,11 +3345,7 @@ fn run_RHS_FINALIZE_ACC_circuit( let t6 = circuit_mul(t0, t5); let t7 = circuit_add(in1, t6); - let modulus = get_p(curve_index); - let modulus = TryInto::< - _, CircuitModulus - >::try_into([modulus.limb0, modulus.limb1, modulus.limb2, modulus.limb3]) - .unwrap(); + let modulus = get_modulus(curve_index); let mut circuit_inputs = (t7,).new_inputs(); // Prefill constants: @@ -2684,8 +3363,8 @@ fn run_RHS_FINALIZE_ACC_circuit( return (rhs,); } #[inline(always)] -fn run_SLOPE_INTERCEPT_SAME_POINT_circuit( - p: G1Point, a: u384, curve_index: usize +pub fn run_SLOPE_INTERCEPT_SAME_POINT_circuit( + p: G1Point, a: u384, curve_index: usize, ) -> (SlopeInterceptOutput,) { // CONSTANT stack let in0 = CE::> {}; // 0x3 @@ -2726,13 +3405,9 @@ fn run_SLOPE_INTERCEPT_SAME_POINT_circuit( let t30 = circuit_add(t18, t18); let t31 = circuit_add(t29, t30); - let modulus = get_p(curve_index); - let modulus = TryInto::< - _, CircuitModulus - >::try_into([modulus.limb0, modulus.limb1, modulus.limb2, modulus.limb3]) - .unwrap(); + let modulus = get_modulus(curve_index); - let mut circuit_inputs = (t5, t7, t10, t14, t31, t29,).new_inputs(); + let mut circuit_inputs = (t5, t7, t10, t14, t31, t29).new_inputs(); // Prefill constants: circuit_inputs = circuit_inputs.next_2([0x3, 0x0, 0x0, 0x0]); // in0 circuit_inputs = circuit_inputs.next_2([0x0, 0x0, 0x0, 0x0]); // in1 @@ -2760,24 +3435,26 @@ mod tests { use core::circuit::{ RangeCheck96, AddMod, MulMod, u96, CircuitElement, CircuitInput, circuit_add, circuit_sub, circuit_mul, circuit_inverse, EvalCircuitResult, EvalCircuitTrait, u384, - CircuitOutputsTrait, CircuitModulus, AddInputResultTrait, CircuitInputs + CircuitOutputsTrait, CircuitModulus, AddInputResultTrait, CircuitInputs, }; use garaga::definitions::{ G1Point, G2Point, E12D, E12DMulQuotient, G1G2Pair, BNProcessedPair, BLSProcessedPair, - MillerLoopResultScalingFactor, G2Line + MillerLoopResultScalingFactor, G2Line, }; use garaga::ec_ops::{SlopeInterceptOutput, FunctionFeltEvaluations, FunctionFelt}; use super::{ run_ACC_EVAL_POINT_CHALLENGE_SIGNED_circuit, run_ACC_FUNCTION_CHALLENGE_DUPL_circuit, - run_ADD_EC_POINT_circuit, run_DOUBLE_EC_POINT_circuit, - run_EVAL_FN_CHALLENGE_DUPL_10P_circuit, run_EVAL_FN_CHALLENGE_DUPL_1P_circuit, - run_EVAL_FN_CHALLENGE_DUPL_2P_circuit, run_EVAL_FN_CHALLENGE_DUPL_3P_circuit, - run_EVAL_FN_CHALLENGE_DUPL_4P_circuit, run_EVAL_FN_CHALLENGE_DUPL_5P_circuit, - run_EVAL_FN_CHALLENGE_DUPL_6P_circuit, run_EVAL_FN_CHALLENGE_DUPL_7P_circuit, - run_EVAL_FN_CHALLENGE_DUPL_8P_circuit, run_EVAL_FN_CHALLENGE_DUPL_9P_circuit, - run_FINALIZE_FN_CHALLENGE_DUPL_circuit, run_INIT_FN_CHALLENGE_DUPL_11P_circuit, + run_ADD_EC_POINTS_G2_circuit, run_ADD_EC_POINT_circuit, + run_DOUBLE_EC_POINT_G2_A_EQ_0_circuit, run_DOUBLE_EC_POINT_circuit, + run_EVAL_FN_CHALLENGE_DUPL_10P_RLC_circuit, run_EVAL_FN_CHALLENGE_DUPL_1P_RLC_circuit, + run_EVAL_FN_CHALLENGE_DUPL_1P_circuit, run_EVAL_FN_CHALLENGE_DUPL_2P_RLC_circuit, + run_EVAL_FN_CHALLENGE_DUPL_2P_circuit, run_EVAL_FN_CHALLENGE_DUPL_3P_RLC_circuit, + run_EVAL_FN_CHALLENGE_DUPL_4P_RLC_circuit, run_EVAL_FN_CHALLENGE_DUPL_5P_RLC_circuit, + run_EVAL_FN_CHALLENGE_DUPL_6P_RLC_circuit, run_EVAL_FN_CHALLENGE_DUPL_7P_RLC_circuit, + run_EVAL_FN_CHALLENGE_DUPL_8P_RLC_circuit, run_EVAL_FN_CHALLENGE_DUPL_9P_RLC_circuit, + run_FINALIZE_FN_CHALLENGE_DUPL_circuit, run_INIT_FN_CHALLENGE_DUPL_11P_RLC_circuit, run_IS_ON_CURVE_G1_G2_circuit, run_IS_ON_CURVE_G1_circuit, run_IS_ON_CURVE_G2_circuit, - run_RHS_FINALIZE_ACC_circuit, run_SLOPE_INTERCEPT_SAME_POINT_circuit + run_RHS_FINALIZE_ACC_circuit, run_SLOPE_INTERCEPT_SAME_POINT_circuit, }; } diff --git a/src/src/circuits/extf_mul.cairo b/src/src/circuits/extf_mul.cairo index 68375592..0a78a224 100644 --- a/src/src/circuits/extf_mul.cairo +++ b/src/src/circuits/extf_mul.cairo @@ -1,22 +1,20 @@ use core::circuit::{ - RangeCheck96, AddMod, MulMod, u384, u96, CircuitElement, CircuitInput, circuit_add, circuit_sub, - circuit_mul, circuit_inverse, EvalCircuitResult, EvalCircuitTrait, CircuitOutputsTrait, - CircuitModulus, AddInputResultTrait, CircuitInputs, CircuitDefinition, CircuitData, - CircuitInputAccumulator + RangeCheck96, AddMod, MulMod, u384, u96, circuit_add, circuit_sub, circuit_mul, circuit_inverse, + EvalCircuitResult, EvalCircuitTrait, CircuitOutputsTrait, CircuitModulus, AddInputResultTrait, + CircuitInputs, CircuitDefinition, CircuitData, CircuitInputAccumulator, }; use garaga::core::circuit::AddInputResultTrait2; use core::circuit::CircuitElement as CE; use core::circuit::CircuitInput as CI; use garaga::definitions::{ - get_a, get_b, get_p, get_g, get_min_one, G1Point, G2Point, E12D, u288, E12DMulQuotient, - G1G2Pair, BNProcessedPair, BLSProcessedPair, MillerLoopResultScalingFactor, G2Line, - get_BLS12_381_modulus, get_BN254_modulus + get_a, get_b, get_modulus, get_g, get_min_one, G1Point, G2Point, E12D, u288, E12DMulQuotient, + G1G2Pair, BNProcessedPair, BLSProcessedPair, MillerLoopResultScalingFactor, G2Line, E12T, + get_BLS12_381_modulus, get_BN254_modulus, }; use garaga::ec_ops::{SlopeInterceptOutput, FunctionFeltEvaluations, FunctionFelt}; use core::option::Option; - #[inline(always)] -fn run_BLS12_381_EVAL_E12D_circuit(f: E12D, z: u384) -> (u384,) { +pub fn run_BLS12_381_EVAL_E12D_circuit(f: E12D, z: u384) -> (u384,) { // INPUT stack let (in0, in1, in2) = (CE::> {}, CE::> {}, CE::> {}); let (in3, in4, in5) = (CE::> {}, CE::> {}, CE::> {}); @@ -71,8 +69,8 @@ fn run_BLS12_381_EVAL_E12D_circuit(f: E12D, z: u384) -> (u384,) { return (f_of_z,); } #[inline(always)] -fn run_BLS12_381_FP12_MUL_ASSERT_ONE_circuit( - X: E12D, Y: E12D, Q: E12DMulQuotient, z: u384 +pub fn run_BLS12_381_FP12_MUL_ASSERT_ONE_circuit( + X: E12D, Y: E12D, Q: E12DMulQuotient, z: u384, ) -> (u384,) { // CONSTANT stack let in0 = CE::> {}; // 0x2 @@ -183,11 +181,9 @@ fn run_BLS12_381_FP12_MUL_ASSERT_ONE_circuit( circuit_inputs = circuit_inputs .next_2( [ - 0xb153ffffb9feffffffffaaa9, - 0x6730d2a0f6b0f6241eabfffe, - 0x434bacd764774b84f38512bf, - 0x1a0111ea397fe69a4b1ba7b6 - ] + 0xb153ffffb9feffffffffaaa9, 0x6730d2a0f6b0f6241eabfffe, 0x434bacd764774b84f38512bf, + 0x1a0111ea397fe69a4b1ba7b6, + ], ); // in1 circuit_inputs = circuit_inputs.next_2([0x1, 0x0, 0x0, 0x0]); // in2 // Fill inputs: @@ -233,7 +229,7 @@ fn run_BLS12_381_FP12_MUL_ASSERT_ONE_circuit( return (check,); } #[inline(always)] -fn run_BN254_EVAL_E12D_circuit(f: E12D, z: u384) -> (u384,) { +pub fn run_BN254_EVAL_E12D_circuit(f: E12D, z: u384) -> (u384,) { // INPUT stack let (in0, in1, in2) = (CE::> {}, CE::> {}, CE::> {}); let (in3, in4, in5) = (CE::> {}, CE::> {}, CE::> {}); @@ -288,8 +284,8 @@ fn run_BN254_EVAL_E12D_circuit(f: E12D, z: u384) -> (u384,) { return (f_of_z,); } #[inline(always)] -fn run_BN254_FP12_MUL_ASSERT_ONE_circuit( - X: E12D, Y: E12D, Q: E12DMulQuotient, z: u384 +pub fn run_BN254_FP12_MUL_ASSERT_ONE_circuit( + X: E12D, Y: E12D, Q: E12DMulQuotient, z: u384, ) -> (u384,) { // CONSTANT stack let in0 = CE::> {}; // 0x52 @@ -399,7 +395,7 @@ fn run_BN254_FP12_MUL_ASSERT_ONE_circuit( circuit_inputs = circuit_inputs.next_2([0x52, 0x0, 0x0, 0x0]); // in0 circuit_inputs = circuit_inputs .next_2( - [0x6871ca8d3c208c16d87cfd35, 0xb85045b68181585d97816a91, 0x30644e72e131a029, 0x0] + [0x6871ca8d3c208c16d87cfd35, 0xb85045b68181585d97816a91, 0x30644e72e131a029, 0x0], ); // in1 circuit_inputs = circuit_inputs.next_2([0x1, 0x0, 0x0, 0x0]); // in2 // Fill inputs: @@ -452,16 +448,16 @@ mod tests { use core::circuit::{ RangeCheck96, AddMod, MulMod, u96, CircuitElement, CircuitInput, circuit_add, circuit_sub, circuit_mul, circuit_inverse, EvalCircuitResult, EvalCircuitTrait, u384, - CircuitOutputsTrait, CircuitModulus, AddInputResultTrait, CircuitInputs + CircuitOutputsTrait, CircuitModulus, AddInputResultTrait, CircuitInputs, }; use garaga::definitions::{ G1Point, G2Point, E12D, E12DMulQuotient, G1G2Pair, BNProcessedPair, BLSProcessedPair, - MillerLoopResultScalingFactor, G2Line + MillerLoopResultScalingFactor, G2Line, }; use garaga::ec_ops::{SlopeInterceptOutput, FunctionFeltEvaluations, FunctionFelt}; use super::{ run_BLS12_381_EVAL_E12D_circuit, run_BLS12_381_FP12_MUL_ASSERT_ONE_circuit, - run_BN254_EVAL_E12D_circuit, run_BN254_FP12_MUL_ASSERT_ONE_circuit + run_BN254_EVAL_E12D_circuit, run_BN254_FP12_MUL_ASSERT_ONE_circuit, }; } diff --git a/src/src/circuits/isogeny.cairo b/src/src/circuits/isogeny.cairo index 8dfbd6a0..4ece4ca8 100644 --- a/src/src/circuits/isogeny.cairo +++ b/src/src/circuits/isogeny.cairo @@ -1,182 +1,180 @@ use core::circuit::{ - RangeCheck96, AddMod, MulMod, u384, u96, CircuitElement, CircuitInput, circuit_add, circuit_sub, - circuit_mul, circuit_inverse, EvalCircuitResult, EvalCircuitTrait, CircuitOutputsTrait, - CircuitModulus, AddInputResultTrait, CircuitInputs, CircuitDefinition, CircuitData, - CircuitInputAccumulator + RangeCheck96, AddMod, MulMod, u384, u96, circuit_add, circuit_sub, circuit_mul, circuit_inverse, + EvalCircuitResult, EvalCircuitTrait, CircuitOutputsTrait, CircuitModulus, AddInputResultTrait, + CircuitInputs, CircuitDefinition, CircuitData, CircuitInputAccumulator, }; use garaga::core::circuit::AddInputResultTrait2; use core::circuit::CircuitElement as CE; use core::circuit::CircuitInput as CI; use garaga::definitions::{ - get_a, get_b, get_p, get_g, get_min_one, G1Point, G2Point, E12D, u288, E12DMulQuotient, - G1G2Pair, BNProcessedPair, BLSProcessedPair, MillerLoopResultScalingFactor, G2Line, - get_BLS12_381_modulus, get_BN254_modulus + get_a, get_b, get_modulus, get_g, get_min_one, G1Point, G2Point, E12D, u288, E12DMulQuotient, + G1G2Pair, BNProcessedPair, BLSProcessedPair, MillerLoopResultScalingFactor, G2Line, E12T, + get_BLS12_381_modulus, }; use garaga::ec_ops::{SlopeInterceptOutput, FunctionFeltEvaluations, FunctionFelt}; use core::option::Option; - #[inline(always)] -fn run_BLS12_381_APPLY_ISOGENY_BLS12_381_circuit(pt: G1Point) -> (G1Point,) { +pub fn run_BLS12_381_APPLY_ISOGENY_BLS12_381_circuit(pt: G1Point) -> (G1Point,) { // CONSTANT stack let in0 = CE::< - CI<0> + CI<0>, > {}; // 0x11a05f2b1e833340b809101dd99815856b303e88a2d7005ff2627b56cdb4e2c85610c2d5f2e62d6eaeac1662734649b7 let in1 = CE::< - CI<1> + CI<1>, > {}; // 0x17294ed3e943ab2f0588bab22147a81c7c17e75b2f6a8417f565e33c70d1e86b4838f2a6f318c356e834eef1b3cb83bb let in2 = CE::< - CI<2> + CI<2>, > {}; // 0xd54005db97678ec1d1048c5d10a9a1bce032473295983e56878e501ec68e25c958c3e3d2a09729fe0179f9dac9edcb0 let in3 = CE::< - CI<3> + CI<3>, > {}; // 0x1778e7166fcc6db74e0609d307e55412d7f5e4656a8dbf25f1b33289f1b330835336e25ce3107193c5b388641d9b6861 let in4 = CE::< - CI<4> + CI<4>, > {}; // 0xe99726a3199f4436642b4b3e4118e5499db995a1257fb3f086eeb65982fac18985a286f301e77c451154ce9ac8895d9 let in5 = CE::< - CI<5> + CI<5>, > {}; // 0x1630c3250d7313ff01d1201bf7a74ab5db3cb17dd952799b9ed3ab9097e68f90a0870d2dcae73d19cd13c1c66f652983 let in6 = CE::< - CI<6> + CI<6>, > {}; // 0xd6ed6553fe44d296a3726c38ae652bfb11586264f0f8ce19008e218f9c86b2a8da25128c1052ecaddd7f225a139ed84 let in7 = CE::< - CI<7> + CI<7>, > {}; // 0x17b81e7701abdbe2e8743884d1117e53356de5ab275b4db1a682c62ef0f2753339b7c8f8c8f475af9ccb5618e3f0c88e let in8 = CE::< - CI<8> + CI<8>, > {}; // 0x80d3cf1f9a78fc47b90b33563be990dc43b756ce79f5574a2c596c928c5d1de4fa295f296b74e956d71986a8497e317 let in9 = CE::< - CI<9> + CI<9>, > {}; // 0x169b1f8e1bcfa7c42e0c37515d138f22dd2ecb803a0c5c99676314baf4bb1b7fa3190b2edc0327797f241067be390c9e let in10 = CE::< - CI<10> + CI<10>, > {}; // 0x10321da079ce07e272d8ec09d2565b0dfa7dccdde6787f96d50af36003b14866f69b771f8c285decca67df3f1605fb7b let in11 = CE::< - CI<11> + CI<11>, > {}; // 0x6e08c248e260e70bd1e962381edee3d31d79d7e22c837bc23c0bf1bc24c6b68c24b1b80b64d391fa9c8ba2e8ba2d229 let in12 = CE::< - CI<12> + CI<12>, > {}; // 0x8ca8d548cff19ae18b2e62f4bd3fa6f01d5ef4ba35b48ba9c9588617fc8ac62b558d681be343df8993cf9fa40d21b1c let in13 = CE::< - CI<13> + CI<13>, > {}; // 0x12561a5deb559c4348b4711298e536367041e8ca0cf0800c0126c2588c48bf5713daa8846cb026e9e5c8276ec82b3bff let in14 = CE::< - CI<14> + CI<14>, > {}; // 0xb2962fe57a3225e8137e629bff2991f6f89416f5a718cd1fca64e00b11aceacd6a3d0967c94fedcfcc239ba5cb83e19 let in15 = CE::< - CI<15> + CI<15>, > {}; // 0x3425581a58ae2fec83aafef7c40eb545b08243f16b1655154cca8abc28d6fd04976d5243eecf5c4130de8938dc62cd8 let in16 = CE::< - CI<16> + CI<16>, > {}; // 0x13a8e162022914a80a6f1d5f43e7a07dffdfc759a12062bb8d6b44e833b306da9bd29ba81f35781d539d395b3532a21e let in17 = CE::< - CI<17> + CI<17>, > {}; // 0xe7355f8e4e667b955390f7f0506c6e9395735e9ce9cad4d0a43bcef24b8982f7400d24bc4228f11c02df9a29f6304a5 let in18 = CE::< - CI<18> + CI<18>, > {}; // 0x772caacf16936190f3e0c63e0596721570f5799af53a1894e2e073062aede9cea73b3538f0de06cec2574496ee84a3a let in19 = CE::< - CI<19> + CI<19>, > {}; // 0x14a7ac2a9d64a8b230b3f5b074cf01996e7f63c21bca68a81996e1cdf9822c580fa5b9489d11e2d311f7d99bbdcc5a5e let in20 = CE::< - CI<20> + CI<20>, > {}; // 0xa10ecf6ada54f825e920b3dafc7a3cce07f8d1d7161366b74100da67f39883503826692abba43704776ec3a79a1d641 let in21 = CE::< - CI<21> + CI<21>, > {}; // 0x95fc13ab9e92ad4476d6e3eb3a56680f682b4ee96f7d03776df533978f31c1593174e4b4b7865002d6384d168ecdd0a let in22 = CE::> {}; // 0x1 let in23 = CE::< - CI<23> + CI<23>, > {}; // 0x90d97c81ba24ee0259d1f094980dcfa11ad138e48a869522b52af6c956543d3cd0c7aee9b3ba3c2be9845719707bb33 let in24 = CE::< - CI<24> + CI<24>, > {}; // 0x134996a104ee5811d51036d776fb46831223e96c254f383d0f906343eb67ad34d6c56711962fa8bfe097e75a2e41c696 let in25 = CE::< - CI<25> + CI<25>, > {}; // 0xcc786baa966e66f4a384c86a3b49942552e2d658a31ce2c344be4b91400da7d26d521628b00523b8dfe240c72de1f6 let in26 = CE::< - CI<26> + CI<26>, > {}; // 0x1f86376e8981c217898751ad8746757d42aa7b90eeb791c09e4a3ec03251cf9de405aba9ec61deca6355c77b0e5f4cb let in27 = CE::< - CI<27> + CI<27>, > {}; // 0x8cc03fdefe0ff135caf4fe2a21529c4195536fbe3ce50b879833fd221351adc2ee7f8dc099040a841b6daecf2e8fedb let in28 = CE::< - CI<28> + CI<28>, > {}; // 0x16603fca40634b6a2211e11db8f0a6a074a7d0d4afadb7bd76505c3d3ad5544e203f6326c95a807299b23ab13633a5f0 let in29 = CE::< - CI<29> + CI<29>, > {}; // 0x4ab0b9bcfac1bbcb2c977d027796b3ce75bb8ca2be184cb5231413c4d634f3747a87ac2460f415ec961f8855fe9d6f2 let in30 = CE::< - CI<30> + CI<30>, > {}; // 0x987c8d5333ab86fde9926bd2ca6c674170a05bfe3bdd81ffd038da6c26c842642f64550fedfe935a15e4ca31870fb29 let in31 = CE::< - CI<31> + CI<31>, > {}; // 0x9fc4018bd96684be88c9e221e4da1bb8f3abd16679dc26c1e8b6e6a1f20cabe69d65201c78607a360370e577bdba587 let in32 = CE::< - CI<32> + CI<32>, > {}; // 0xe1bba7a1186bdb5223abde7ada14a23c42a0ca7915af6fe06985e7ed1e4d43b9b3f7055dd4eba6f2bafaaebca731c30 let in33 = CE::< - CI<33> + CI<33>, > {}; // 0x19713e47937cd1be0dfd0b8f1d43fb93cd2fcbcb6caf493fd1183e416389e61031bf3a5cce3fbafce813711ad011c132 let in34 = CE::< - CI<34> + CI<34>, > {}; // 0x18b46a908f36f6deb918c143fed2edcc523559b8aaf0c2462e6bfe7f911f643249d9cdf41b44d606ce07c8a4d0074d8e let in35 = CE::< - CI<35> + CI<35>, > {}; // 0xb182cac101b9399d155096004f53f447aa7b12a3426b08ec02710e807b4633f06c851c1919211f20d4c04f00b971ef8 let in36 = CE::< - CI<36> + CI<36>, > {}; // 0x245a394ad1eca9b72fc00ae7be315dc757b3b080d4c158013e6632d3c40659cc6cf90ad1c232a6442d9d3f5db980133 let in37 = CE::< - CI<37> + CI<37>, > {}; // 0x5c129645e44cf1102a159f748c4a3fc5e673d81d7e86568d9ab0f5d396a7ce46ba1049b6579afb7866b1e715475224b let in38 = CE::< - CI<38> + CI<38>, > {}; // 0x15e6be4e990f03ce4ea50b3b42df2eb5cb181d8f84965a3957add4fa95af01b2b665027efec01c7704b456be69c8b604 let in39 = CE::< - CI<39> + CI<39>, > {}; // 0x16112c4c3a9c98b252181140fad0eae9601a6de578980be6eec3232b5be72e7a07f3688ef60c206d01479253b03663c1 let in40 = CE::< - CI<40> + CI<40>, > {}; // 0x1962d75c2381201e1a0cbd6c43c348b885c84ff731c4d59ca4a10356f453e01f78a4260763529e3532f6102c2e49a03d let in41 = CE::< - CI<41> + CI<41>, > {}; // 0x58df3306640da276faaae7d6e8eb15778c4855551ae7f310c35a5dd279cd2eca6757cd636f96f891e2538b53dbf67f2 let in42 = CE::< - CI<42> + CI<42>, > {}; // 0x16b7d288798e5395f20d23bf89edb4d1d115c5dbddbcd30e123da489e726af41727364f2c28297ada8d26d98445f5416 let in43 = CE::< - CI<43> + CI<43>, > {}; // 0xbe0e079545f43e4b00cc912f8228ddcc6d19c9f0f69bbb0542eda0fc9dec916a20b15dc0fd2ededda39142311a5001d let in44 = CE::< - CI<44> + CI<44>, > {}; // 0x8d9e5297186db2d9fb266eaac783182b70152c65550d881c5ecd87b6f0f5a6449f38db9dfa9cce202c6477faaf9b7ac let in45 = CE::< - CI<45> + CI<45>, > {}; // 0x166007c08a99db2fc3ba8734ace9824b5eecfdfa8d0cf8ef5dd365bc400a0051d5fa9c01a58b1fb93d1a1399126a775c let in46 = CE::< - CI<46> + CI<46>, > {}; // 0x16a3ef08be3ea7ea03bcddfabba6ff6ee5a4375efa1f4fd7feb34fd206357132b920f5b00801dee460ee415a15812ed9 let in47 = CE::< - CI<47> + CI<47>, > {}; // 0x1866c8ed336c61231a1be54fd1d74cc4f9fb0ce4c6af5920abc5750c4bf39b4852cfe2f7bb9248836b233d9d55535d4a let in48 = CE::< - CI<48> + CI<48>, > {}; // 0x167a55cda70a6e1cea820597d94a84903216f763e13d87bb5308592e7ea7d4fbc7385ea3d529b35e346ef48bb8913f55 let in49 = CE::< - CI<49> + CI<49>, > {}; // 0x4d2f259eea405bd48f010a01ad2911d9c6dd039bb61a6290e591b36e636a5c871a5c29f4f83060400f8b49cba8f6aa8 let in50 = CE::< - CI<50> + CI<50>, > {}; // 0xaccbb67481d033ff5852c1e48c50c477f94ff8aefce42d28c0f9a88cea7913516f968986f7ebbea9684b529e2561092 let in51 = CE::< - CI<51> + CI<51>, > {}; // 0xad6b9514c767fe3c3613144b45f1496543346d98adf02267d5ceef9a00d9b8693000763e3b90ac11e99b138573345cc let in52 = CE::< - CI<52> + CI<52>, > {}; // 0x2660400eb2e4f3b628bdd0d53cd76f2bf565b94e72927c1cb748df27942480e420517bd8714cc80d1fadc1326ed06f7 let in53 = CE::< - CI<53> + CI<53>, > {}; // 0xe0fa1d816ddc03e6b24255e0d7819c171c40f65e273b853324efcd6356caa205ca2f570f13497804415473a1d634b8f // INPUT stack @@ -291,7 +289,7 @@ fn run_BLS12_381_APPLY_ISOGENY_BLS12_381_circuit(pt: G1Point) -> (G1Point,) { let modulus = get_BLS12_381_modulus(); // BLS12_381 prime field modulus - let mut circuit_inputs = (t43, t106,).new_inputs(); + let mut circuit_inputs = (t43, t106).new_inputs(); // Prefill constants: circuit_inputs = circuit_inputs @@ -305,328 +303,326 @@ fn run_BLS12_381_APPLY_ISOGENY_BLS12_381_circuit(pt: G1Point) -> (G1Point,) { let res: G1Point = G1Point { x: outputs.get_output(t43), y: outputs.get_output(t106) }; return (res,); } -const APPLY_ISOGENY_BLS12_381_BLS12_381_CONSTANTS: [ - u384 - ; 54] = [ +const APPLY_ISOGENY_BLS12_381_BLS12_381_CONSTANTS: [u384; 54] = [ u384 { limb0: 0xf2e62d6eaeac1662734649b7, limb1: 0xf2627b56cdb4e2c85610c2d5, limb2: 0xd99815856b303e88a2d7005f, - limb3: 0x11a05f2b1e833340b809101d + limb3: 0x11a05f2b1e833340b809101d, }, u384 { limb0: 0xf318c356e834eef1b3cb83bb, limb1: 0xf565e33c70d1e86b4838f2a6, limb2: 0x2147a81c7c17e75b2f6a8417, - limb3: 0x17294ed3e943ab2f0588bab2 + limb3: 0x17294ed3e943ab2f0588bab2, }, u384 { limb0: 0x2a09729fe0179f9dac9edcb0, limb1: 0x6878e501ec68e25c958c3e3d, limb2: 0xd10a9a1bce032473295983e5, - limb3: 0xd54005db97678ec1d1048c5 + limb3: 0xd54005db97678ec1d1048c5, }, u384 { limb0: 0xe3107193c5b388641d9b6861, limb1: 0xf1b33289f1b330835336e25c, limb2: 0x7e55412d7f5e4656a8dbf25, - limb3: 0x1778e7166fcc6db74e0609d3 + limb3: 0x1778e7166fcc6db74e0609d3, }, u384 { limb0: 0x301e77c451154ce9ac8895d9, limb1: 0x86eeb65982fac18985a286f, limb2: 0xe4118e5499db995a1257fb3f, - limb3: 0xe99726a3199f4436642b4b3 + limb3: 0xe99726a3199f4436642b4b3, }, u384 { limb0: 0xcae73d19cd13c1c66f652983, limb1: 0x9ed3ab9097e68f90a0870d2d, limb2: 0xf7a74ab5db3cb17dd952799b, - limb3: 0x1630c3250d7313ff01d1201b + limb3: 0x1630c3250d7313ff01d1201b, }, u384 { limb0: 0xc1052ecaddd7f225a139ed84, limb1: 0x9008e218f9c86b2a8da25128, limb2: 0x8ae652bfb11586264f0f8ce1, - limb3: 0xd6ed6553fe44d296a3726c3 + limb3: 0xd6ed6553fe44d296a3726c3, }, u384 { limb0: 0xc8f475af9ccb5618e3f0c88e, limb1: 0xa682c62ef0f2753339b7c8f8, limb2: 0xd1117e53356de5ab275b4db1, - limb3: 0x17b81e7701abdbe2e8743884 + limb3: 0x17b81e7701abdbe2e8743884, }, u384 { limb0: 0x96b74e956d71986a8497e317, limb1: 0xa2c596c928c5d1de4fa295f2, limb2: 0x63be990dc43b756ce79f5574, - limb3: 0x80d3cf1f9a78fc47b90b335 + limb3: 0x80d3cf1f9a78fc47b90b335, }, u384 { limb0: 0xdc0327797f241067be390c9e, limb1: 0x676314baf4bb1b7fa3190b2e, limb2: 0x5d138f22dd2ecb803a0c5c99, - limb3: 0x169b1f8e1bcfa7c42e0c3751 + limb3: 0x169b1f8e1bcfa7c42e0c3751, }, u384 { limb0: 0x8c285decca67df3f1605fb7b, limb1: 0xd50af36003b14866f69b771f, limb2: 0xd2565b0dfa7dccdde6787f96, - limb3: 0x10321da079ce07e272d8ec09 + limb3: 0x10321da079ce07e272d8ec09, }, u384 { limb0: 0xb64d391fa9c8ba2e8ba2d229, limb1: 0x23c0bf1bc24c6b68c24b1b80, limb2: 0x81edee3d31d79d7e22c837bc, - limb3: 0x6e08c248e260e70bd1e9623 + limb3: 0x6e08c248e260e70bd1e9623, }, u384 { limb0: 0xbe343df8993cf9fa40d21b1c, limb1: 0x9c9588617fc8ac62b558d681, limb2: 0x4bd3fa6f01d5ef4ba35b48ba, - limb3: 0x8ca8d548cff19ae18b2e62f + limb3: 0x8ca8d548cff19ae18b2e62f, }, u384 { limb0: 0x6cb026e9e5c8276ec82b3bff, limb1: 0x126c2588c48bf5713daa884, limb2: 0x98e536367041e8ca0cf0800c, - limb3: 0x12561a5deb559c4348b47112 + limb3: 0x12561a5deb559c4348b47112, }, u384 { limb0: 0x7c94fedcfcc239ba5cb83e19, limb1: 0xfca64e00b11aceacd6a3d096, limb2: 0xbff2991f6f89416f5a718cd1, - limb3: 0xb2962fe57a3225e8137e629 + limb3: 0xb2962fe57a3225e8137e629, }, u384 { limb0: 0x3eecf5c4130de8938dc62cd8, limb1: 0x54cca8abc28d6fd04976d524, limb2: 0x7c40eb545b08243f16b16551, - limb3: 0x3425581a58ae2fec83aafef + limb3: 0x3425581a58ae2fec83aafef, }, u384 { limb0: 0x1f35781d539d395b3532a21e, limb1: 0x8d6b44e833b306da9bd29ba8, limb2: 0x43e7a07dffdfc759a12062bb, - limb3: 0x13a8e162022914a80a6f1d5f + limb3: 0x13a8e162022914a80a6f1d5f, }, u384 { limb0: 0xc4228f11c02df9a29f6304a5, limb1: 0xa43bcef24b8982f7400d24b, limb2: 0x506c6e9395735e9ce9cad4d, - limb3: 0xe7355f8e4e667b955390f7f + limb3: 0xe7355f8e4e667b955390f7f, }, u384 { limb0: 0x8f0de06cec2574496ee84a3a, limb1: 0x4e2e073062aede9cea73b353, limb2: 0xe0596721570f5799af53a189, - limb3: 0x772caacf16936190f3e0c63 + limb3: 0x772caacf16936190f3e0c63, }, u384 { limb0: 0x9d11e2d311f7d99bbdcc5a5e, limb1: 0x1996e1cdf9822c580fa5b948, limb2: 0x74cf01996e7f63c21bca68a8, - limb3: 0x14a7ac2a9d64a8b230b3f5b0 + limb3: 0x14a7ac2a9d64a8b230b3f5b0, }, u384 { limb0: 0xabba43704776ec3a79a1d641, limb1: 0x74100da67f39883503826692, limb2: 0xafc7a3cce07f8d1d7161366b, - limb3: 0xa10ecf6ada54f825e920b3d + limb3: 0xa10ecf6ada54f825e920b3d, }, u384 { limb0: 0x4b7865002d6384d168ecdd0a, limb1: 0x76df533978f31c1593174e4b, limb2: 0xb3a56680f682b4ee96f7d037, - limb3: 0x95fc13ab9e92ad4476d6e3e + limb3: 0x95fc13ab9e92ad4476d6e3e, }, u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x9b3ba3c2be9845719707bb33, limb1: 0x2b52af6c956543d3cd0c7aee, limb2: 0x4980dcfa11ad138e48a86952, - limb3: 0x90d97c81ba24ee0259d1f09 + limb3: 0x90d97c81ba24ee0259d1f09, }, u384 { limb0: 0x962fa8bfe097e75a2e41c696, limb1: 0xf906343eb67ad34d6c56711, limb2: 0x76fb46831223e96c254f383d, - limb3: 0x134996a104ee5811d51036d7 + limb3: 0x134996a104ee5811d51036d7, }, u384 { limb0: 0x28b00523b8dfe240c72de1f6, limb1: 0xc344be4b91400da7d26d5216, limb2: 0x6a3b49942552e2d658a31ce2, - limb3: 0xcc786baa966e66f4a384c8 + limb3: 0xcc786baa966e66f4a384c8, }, u384 { limb0: 0x9ec61deca6355c77b0e5f4cb, limb1: 0x9e4a3ec03251cf9de405aba, limb2: 0xd8746757d42aa7b90eeb791c, - limb3: 0x1f86376e8981c217898751a + limb3: 0x1f86376e8981c217898751a, }, u384 { limb0: 0x99040a841b6daecf2e8fedb, limb1: 0x79833fd221351adc2ee7f8dc, limb2: 0xa21529c4195536fbe3ce50b8, - limb3: 0x8cc03fdefe0ff135caf4fe2 + limb3: 0x8cc03fdefe0ff135caf4fe2, }, u384 { limb0: 0xc95a807299b23ab13633a5f0, limb1: 0x76505c3d3ad5544e203f6326, limb2: 0xb8f0a6a074a7d0d4afadb7bd, - limb3: 0x16603fca40634b6a2211e11d + limb3: 0x16603fca40634b6a2211e11d, }, u384 { limb0: 0x460f415ec961f8855fe9d6f2, limb1: 0x5231413c4d634f3747a87ac2, limb2: 0x27796b3ce75bb8ca2be184cb, - limb3: 0x4ab0b9bcfac1bbcb2c977d0 + limb3: 0x4ab0b9bcfac1bbcb2c977d0, }, u384 { limb0: 0xfedfe935a15e4ca31870fb29, limb1: 0xfd038da6c26c842642f64550, limb2: 0x2ca6c674170a05bfe3bdd81f, - limb3: 0x987c8d5333ab86fde9926bd + limb3: 0x987c8d5333ab86fde9926bd, }, u384 { limb0: 0xc78607a360370e577bdba587, limb1: 0x1e8b6e6a1f20cabe69d65201, limb2: 0x1e4da1bb8f3abd16679dc26c, - limb3: 0x9fc4018bd96684be88c9e22 + limb3: 0x9fc4018bd96684be88c9e22, }, u384 { limb0: 0xdd4eba6f2bafaaebca731c30, limb1: 0x6985e7ed1e4d43b9b3f7055, limb2: 0xada14a23c42a0ca7915af6fe, - limb3: 0xe1bba7a1186bdb5223abde7 + limb3: 0xe1bba7a1186bdb5223abde7, }, u384 { limb0: 0xce3fbafce813711ad011c132, limb1: 0xd1183e416389e61031bf3a5c, limb2: 0x1d43fb93cd2fcbcb6caf493f, - limb3: 0x19713e47937cd1be0dfd0b8f + limb3: 0x19713e47937cd1be0dfd0b8f, }, u384 { limb0: 0x1b44d606ce07c8a4d0074d8e, limb1: 0x2e6bfe7f911f643249d9cdf4, limb2: 0xfed2edcc523559b8aaf0c246, - limb3: 0x18b46a908f36f6deb918c143 + limb3: 0x18b46a908f36f6deb918c143, }, u384 { limb0: 0x919211f20d4c04f00b971ef8, limb1: 0xc02710e807b4633f06c851c1, limb2: 0x4f53f447aa7b12a3426b08e, - limb3: 0xb182cac101b9399d1550960 + limb3: 0xb182cac101b9399d1550960, }, u384 { limb0: 0x1c232a6442d9d3f5db980133, limb1: 0x13e6632d3c40659cc6cf90ad, limb2: 0x7be315dc757b3b080d4c1580, - limb3: 0x245a394ad1eca9b72fc00ae + limb3: 0x245a394ad1eca9b72fc00ae, }, u384 { limb0: 0x6579afb7866b1e715475224b, limb1: 0xd9ab0f5d396a7ce46ba1049b, limb2: 0x48c4a3fc5e673d81d7e86568, - limb3: 0x5c129645e44cf1102a159f7 + limb3: 0x5c129645e44cf1102a159f7, }, u384 { limb0: 0xfec01c7704b456be69c8b604, limb1: 0x57add4fa95af01b2b665027e, limb2: 0x42df2eb5cb181d8f84965a39, - limb3: 0x15e6be4e990f03ce4ea50b3b + limb3: 0x15e6be4e990f03ce4ea50b3b, }, u384 { limb0: 0xf60c206d01479253b03663c1, limb1: 0xeec3232b5be72e7a07f3688e, limb2: 0xfad0eae9601a6de578980be6, - limb3: 0x16112c4c3a9c98b252181140 + limb3: 0x16112c4c3a9c98b252181140, }, u384 { limb0: 0x63529e3532f6102c2e49a03d, limb1: 0xa4a10356f453e01f78a42607, limb2: 0x43c348b885c84ff731c4d59c, - limb3: 0x1962d75c2381201e1a0cbd6c + limb3: 0x1962d75c2381201e1a0cbd6c, }, u384 { limb0: 0x36f96f891e2538b53dbf67f2, limb1: 0xc35a5dd279cd2eca6757cd6, limb2: 0x6e8eb15778c4855551ae7f31, - limb3: 0x58df3306640da276faaae7d + limb3: 0x58df3306640da276faaae7d, }, u384 { limb0: 0xc28297ada8d26d98445f5416, limb1: 0x123da489e726af41727364f2, limb2: 0x89edb4d1d115c5dbddbcd30e, - limb3: 0x16b7d288798e5395f20d23bf + limb3: 0x16b7d288798e5395f20d23bf, }, u384 { limb0: 0xfd2ededda39142311a5001d, limb1: 0x542eda0fc9dec916a20b15dc, limb2: 0xf8228ddcc6d19c9f0f69bbb0, - limb3: 0xbe0e079545f43e4b00cc912 + limb3: 0xbe0e079545f43e4b00cc912, }, u384 { limb0: 0xdfa9cce202c6477faaf9b7ac, limb1: 0xc5ecd87b6f0f5a6449f38db9, limb2: 0xac783182b70152c65550d881, - limb3: 0x8d9e5297186db2d9fb266ea + limb3: 0x8d9e5297186db2d9fb266ea, }, u384 { limb0: 0xa58b1fb93d1a1399126a775c, limb1: 0x5dd365bc400a0051d5fa9c01, limb2: 0xace9824b5eecfdfa8d0cf8ef, - limb3: 0x166007c08a99db2fc3ba8734 + limb3: 0x166007c08a99db2fc3ba8734, }, u384 { limb0: 0x801dee460ee415a15812ed9, limb1: 0xfeb34fd206357132b920f5b0, limb2: 0xbba6ff6ee5a4375efa1f4fd7, - limb3: 0x16a3ef08be3ea7ea03bcddfa + limb3: 0x16a3ef08be3ea7ea03bcddfa, }, u384 { limb0: 0xbb9248836b233d9d55535d4a, limb1: 0xabc5750c4bf39b4852cfe2f7, limb2: 0xd1d74cc4f9fb0ce4c6af5920, - limb3: 0x1866c8ed336c61231a1be54f + limb3: 0x1866c8ed336c61231a1be54f, }, u384 { limb0: 0xd529b35e346ef48bb8913f55, limb1: 0x5308592e7ea7d4fbc7385ea3, limb2: 0xd94a84903216f763e13d87bb, - limb3: 0x167a55cda70a6e1cea820597 + limb3: 0x167a55cda70a6e1cea820597, }, u384 { limb0: 0x4f83060400f8b49cba8f6aa8, limb1: 0xe591b36e636a5c871a5c29f, limb2: 0x1ad2911d9c6dd039bb61a629, - limb3: 0x4d2f259eea405bd48f010a0 + limb3: 0x4d2f259eea405bd48f010a0, }, u384 { limb0: 0x6f7ebbea9684b529e2561092, limb1: 0x8c0f9a88cea7913516f96898, limb2: 0x48c50c477f94ff8aefce42d2, - limb3: 0xaccbb67481d033ff5852c1e + limb3: 0xaccbb67481d033ff5852c1e, }, u384 { limb0: 0xe3b90ac11e99b138573345cc, limb1: 0x7d5ceef9a00d9b8693000763, limb2: 0xb45f1496543346d98adf0226, - limb3: 0xad6b9514c767fe3c3613144 + limb3: 0xad6b9514c767fe3c3613144, }, u384 { limb0: 0x8714cc80d1fadc1326ed06f7, limb1: 0xcb748df27942480e420517bd, limb2: 0x53cd76f2bf565b94e72927c1, - limb3: 0x2660400eb2e4f3b628bdd0d + limb3: 0x2660400eb2e4f3b628bdd0d, }, u384 { limb0: 0xf13497804415473a1d634b8f, limb1: 0x324efcd6356caa205ca2f570, limb2: 0xd7819c171c40f65e273b853, - limb3: 0xe0fa1d816ddc03e6b24255e - } + limb3: 0xe0fa1d816ddc03e6b24255e, + }, ]; #[cfg(test)] @@ -636,11 +632,11 @@ mod tests { use core::circuit::{ RangeCheck96, AddMod, MulMod, u96, CircuitElement, CircuitInput, circuit_add, circuit_sub, circuit_mul, circuit_inverse, EvalCircuitResult, EvalCircuitTrait, u384, - CircuitOutputsTrait, CircuitModulus, AddInputResultTrait, CircuitInputs + CircuitOutputsTrait, CircuitModulus, AddInputResultTrait, CircuitInputs, }; use garaga::definitions::{ G1Point, G2Point, E12D, E12DMulQuotient, G1G2Pair, BNProcessedPair, BLSProcessedPair, - MillerLoopResultScalingFactor, G2Line + MillerLoopResultScalingFactor, G2Line, }; use garaga::ec_ops::{SlopeInterceptOutput, FunctionFeltEvaluations, FunctionFelt}; diff --git a/src/src/circuits/multi_pairing_check.cairo b/src/src/circuits/multi_pairing_check.cairo index c8015a5e..1570baee 100644 --- a/src/src/circuits/multi_pairing_check.cairo +++ b/src/src/circuits/multi_pairing_check.cairo @@ -1,35 +1,33 @@ use core::circuit::{ - RangeCheck96, AddMod, MulMod, u384, u96, CircuitElement, CircuitInput, circuit_add, circuit_sub, - circuit_mul, circuit_inverse, EvalCircuitResult, EvalCircuitTrait, CircuitOutputsTrait, - CircuitModulus, AddInputResultTrait, CircuitInputs, CircuitDefinition, CircuitData, - CircuitInputAccumulator + RangeCheck96, AddMod, MulMod, u384, u96, circuit_add, circuit_sub, circuit_mul, circuit_inverse, + EvalCircuitResult, EvalCircuitTrait, CircuitOutputsTrait, CircuitModulus, AddInputResultTrait, + CircuitInputs, CircuitDefinition, CircuitData, CircuitInputAccumulator, }; use garaga::core::circuit::AddInputResultTrait2; use core::circuit::CircuitElement as CE; use core::circuit::CircuitInput as CI; use garaga::definitions::{ - get_a, get_b, get_p, get_g, get_min_one, G1Point, G2Point, E12D, u288, E12DMulQuotient, - G1G2Pair, BNProcessedPair, BLSProcessedPair, MillerLoopResultScalingFactor, G2Line, - get_BLS12_381_modulus, get_BN254_modulus + get_a, get_b, get_modulus, get_g, get_min_one, G1Point, G2Point, E12D, u288, E12DMulQuotient, + G1G2Pair, BNProcessedPair, BLSProcessedPair, MillerLoopResultScalingFactor, G2Line, E12T, + get_BLS12_381_modulus, get_BN254_modulus, }; use garaga::ec_ops::{SlopeInterceptOutput, FunctionFeltEvaluations, FunctionFelt}; use core::option::Option; - #[inline(always)] -fn run_BLS12_381_MP_CHECK_BIT00_2P_2F_circuit( +pub fn run_BLS12_381_MP_CHECK_BIT00_2P_2F_circuit( yInv_0: u384, xNegOverY_0: u384, - G2_line_0: G2Line, + G2_line_dbl_0: G2Line, G2_line_2nd_0_0: G2Line, yInv_1: u384, xNegOverY_1: u384, - G2_line_1: G2Line, + G2_line_dbl_1: G2Line, G2_line_2nd_0_1: G2Line, lhs_i: u384, f_i_of_z: u384, f_i_plus_one_of_z: u384, z: u384, - ci: u384 + ci: u384, ) -> (u384, u384) { // INPUT stack let (in0, in1, in2) = (CE::> {}, CE::> {}, CE::> {}); @@ -76,7 +74,7 @@ fn run_BLS12_381_MP_CHECK_BIT00_2P_2F_circuit( let t32 = circuit_add(t30, t31); // Eval sparse poly line_1p_1 step + coeff_8 * z^8 let t33 = circuit_mul(t19, t32); // Mul (f(z)^2 * Π_0_k-1(line_k(z))) * line_i_1(z) let t34 = circuit_mul( - t33, t33 + t33, t33, ); // Compute (f^2 * Π(i,k) (line_i,k(z))) ^ 2 = f^4 * (Π(i,k) (line_i,k(z)))^2 let t35 = circuit_sub(in14, in15); let t36 = circuit_mul(t35, in0); // eval bls line by yInv @@ -112,26 +110,26 @@ fn run_BLS12_381_MP_CHECK_BIT00_2P_2F_circuit( let modulus = get_BLS12_381_modulus(); // BLS12_381 prime field modulus - let mut circuit_inputs = (t65, t4,).new_inputs(); + let mut circuit_inputs = (t65, t4).new_inputs(); // Prefill constants: // Fill inputs: circuit_inputs = circuit_inputs.next_2(yInv_0); // in0 circuit_inputs = circuit_inputs.next_2(xNegOverY_0); // in1 - circuit_inputs = circuit_inputs.next_2(G2_line_0.r0a0); // in2 - circuit_inputs = circuit_inputs.next_2(G2_line_0.r0a1); // in3 - circuit_inputs = circuit_inputs.next_2(G2_line_0.r1a0); // in4 - circuit_inputs = circuit_inputs.next_2(G2_line_0.r1a1); // in5 + circuit_inputs = circuit_inputs.next_2(G2_line_dbl_0.r0a0); // in2 + circuit_inputs = circuit_inputs.next_2(G2_line_dbl_0.r0a1); // in3 + circuit_inputs = circuit_inputs.next_2(G2_line_dbl_0.r1a0); // in4 + circuit_inputs = circuit_inputs.next_2(G2_line_dbl_0.r1a1); // in5 circuit_inputs = circuit_inputs.next_2(G2_line_2nd_0_0.r0a0); // in6 circuit_inputs = circuit_inputs.next_2(G2_line_2nd_0_0.r0a1); // in7 circuit_inputs = circuit_inputs.next_2(G2_line_2nd_0_0.r1a0); // in8 circuit_inputs = circuit_inputs.next_2(G2_line_2nd_0_0.r1a1); // in9 circuit_inputs = circuit_inputs.next_2(yInv_1); // in10 circuit_inputs = circuit_inputs.next_2(xNegOverY_1); // in11 - circuit_inputs = circuit_inputs.next_2(G2_line_1.r0a0); // in12 - circuit_inputs = circuit_inputs.next_2(G2_line_1.r0a1); // in13 - circuit_inputs = circuit_inputs.next_2(G2_line_1.r1a0); // in14 - circuit_inputs = circuit_inputs.next_2(G2_line_1.r1a1); // in15 + circuit_inputs = circuit_inputs.next_2(G2_line_dbl_1.r0a0); // in12 + circuit_inputs = circuit_inputs.next_2(G2_line_dbl_1.r0a1); // in13 + circuit_inputs = circuit_inputs.next_2(G2_line_dbl_1.r1a0); // in14 + circuit_inputs = circuit_inputs.next_2(G2_line_dbl_1.r1a1); // in15 circuit_inputs = circuit_inputs.next_2(G2_line_2nd_0_1.r0a0); // in16 circuit_inputs = circuit_inputs.next_2(G2_line_2nd_0_1.r0a1); // in17 circuit_inputs = circuit_inputs.next_2(G2_line_2nd_0_1.r1a0); // in18 @@ -148,14 +146,14 @@ fn run_BLS12_381_MP_CHECK_BIT00_2P_2F_circuit( return (lhs_i_plus_one, ci_plus_one); } #[inline(always)] -fn run_BLS12_381_MP_CHECK_BIT00_3P_2F_circuit( +pub fn run_BLS12_381_MP_CHECK_BIT00_3P_2F_circuit( yInv_0: u384, xNegOverY_0: u384, - G2_line_0: G2Line, + G2_line_dbl_0: G2Line, G2_line_2nd_0_0: G2Line, yInv_1: u384, xNegOverY_1: u384, - G2_line_1: G2Line, + G2_line_dbl_1: G2Line, G2_line_2nd_0_1: G2Line, yInv_2: u384, xNegOverY_2: u384, @@ -164,7 +162,7 @@ fn run_BLS12_381_MP_CHECK_BIT00_3P_2F_circuit( f_i_of_z: u384, f_i_plus_one_of_z: u384, z: u384, - ci: u384 + ci: u384, ) -> (G2Point, u384, u384) { // CONSTANT stack let in0 = CE::> {}; // 0x3 @@ -225,13 +223,13 @@ fn run_BLS12_381_MP_CHECK_BIT00_3P_2F_circuit( let t39 = circuit_mul(t37, in1); // Doubling slope numerator end let t40 = circuit_add(in27, in27); // Fp2 add coeff 0/1 let t41 = circuit_add(in28, in28); // Fp2 add coeff 1/1 - let t42 = circuit_mul(t40, t40); // Fp2 Div x/y start : Fp2 Inv y start + let t42 = circuit_mul(t40, t40); // Fp2 Inv start let t43 = circuit_mul(t41, t41); let t44 = circuit_add(t42, t43); let t45 = circuit_inverse(t44); - let t46 = circuit_mul(t40, t45); // Fp2 Inv y real part end + let t46 = circuit_mul(t40, t45); // Fp2 Inv real part end let t47 = circuit_mul(t41, t45); - let t48 = circuit_sub(in2, t47); // Fp2 Inv y imag part end + let t48 = circuit_sub(in2, t47); // Fp2 Inv imag part end let t49 = circuit_mul(t38, t46); // Fp2 mul start let t50 = circuit_mul(t39, t48); let t51 = circuit_sub(t49, t50); // Fp2 mul real part end @@ -280,7 +278,7 @@ fn run_BLS12_381_MP_CHECK_BIT00_3P_2F_circuit( let t94 = circuit_add(t92, t93); // Eval sparse poly line_2p_1 step + coeff_8 * z^8 let t95 = circuit_mul(t33, t94); // Mul (f(z)^2 * Π_0_k-1(line_k(z))) * line_i_2(z) let t96 = circuit_mul( - t95, t95 + t95, t95, ); // Compute (f^2 * Π(i,k) (line_i,k(z))) ^ 2 = f^4 * (Π(i,k) (line_i,k(z)))^2 let t97 = circuit_sub(in17, in18); let t98 = circuit_mul(t97, in3); // eval bls line by yInv @@ -318,13 +316,13 @@ fn run_BLS12_381_MP_CHECK_BIT00_3P_2F_circuit( let t130 = circuit_mul(t128, in1); // Doubling slope numerator end let t131 = circuit_add(t72, t72); // Fp2 add coeff 0/1 let t132 = circuit_add(t73, t73); // Fp2 add coeff 1/1 - let t133 = circuit_mul(t131, t131); // Fp2 Div x/y start : Fp2 Inv y start + let t133 = circuit_mul(t131, t131); // Fp2 Inv start let t134 = circuit_mul(t132, t132); let t135 = circuit_add(t133, t134); let t136 = circuit_inverse(t135); - let t137 = circuit_mul(t131, t136); // Fp2 Inv y real part end + let t137 = circuit_mul(t131, t136); // Fp2 Inv real part end let t138 = circuit_mul(t132, t136); - let t139 = circuit_sub(in2, t138); // Fp2 Inv y imag part end + let t139 = circuit_sub(in2, t138); // Fp2 Inv imag part end let t140 = circuit_mul(t129, t137); // Fp2 mul start let t141 = circuit_mul(t130, t139); let t142 = circuit_sub(t140, t141); // Fp2 mul real part end @@ -378,7 +376,7 @@ fn run_BLS12_381_MP_CHECK_BIT00_3P_2F_circuit( let modulus = get_BLS12_381_modulus(); // BLS12_381 prime field modulus - let mut circuit_inputs = (t153, t154, t163, t164, t189, t4,).new_inputs(); + let mut circuit_inputs = (t153, t154, t163, t164, t189, t4).new_inputs(); // Prefill constants: circuit_inputs = circuit_inputs.next_2([0x3, 0x0, 0x0, 0x0]); // in0 circuit_inputs = circuit_inputs.next_2([0x6, 0x0, 0x0, 0x0]); // in1 @@ -386,20 +384,20 @@ fn run_BLS12_381_MP_CHECK_BIT00_3P_2F_circuit( // Fill inputs: circuit_inputs = circuit_inputs.next_2(yInv_0); // in3 circuit_inputs = circuit_inputs.next_2(xNegOverY_0); // in4 - circuit_inputs = circuit_inputs.next_2(G2_line_0.r0a0); // in5 - circuit_inputs = circuit_inputs.next_2(G2_line_0.r0a1); // in6 - circuit_inputs = circuit_inputs.next_2(G2_line_0.r1a0); // in7 - circuit_inputs = circuit_inputs.next_2(G2_line_0.r1a1); // in8 + circuit_inputs = circuit_inputs.next_2(G2_line_dbl_0.r0a0); // in5 + circuit_inputs = circuit_inputs.next_2(G2_line_dbl_0.r0a1); // in6 + circuit_inputs = circuit_inputs.next_2(G2_line_dbl_0.r1a0); // in7 + circuit_inputs = circuit_inputs.next_2(G2_line_dbl_0.r1a1); // in8 circuit_inputs = circuit_inputs.next_2(G2_line_2nd_0_0.r0a0); // in9 circuit_inputs = circuit_inputs.next_2(G2_line_2nd_0_0.r0a1); // in10 circuit_inputs = circuit_inputs.next_2(G2_line_2nd_0_0.r1a0); // in11 circuit_inputs = circuit_inputs.next_2(G2_line_2nd_0_0.r1a1); // in12 circuit_inputs = circuit_inputs.next_2(yInv_1); // in13 circuit_inputs = circuit_inputs.next_2(xNegOverY_1); // in14 - circuit_inputs = circuit_inputs.next_2(G2_line_1.r0a0); // in15 - circuit_inputs = circuit_inputs.next_2(G2_line_1.r0a1); // in16 - circuit_inputs = circuit_inputs.next_2(G2_line_1.r1a0); // in17 - circuit_inputs = circuit_inputs.next_2(G2_line_1.r1a1); // in18 + circuit_inputs = circuit_inputs.next_2(G2_line_dbl_1.r0a0); // in15 + circuit_inputs = circuit_inputs.next_2(G2_line_dbl_1.r0a1); // in16 + circuit_inputs = circuit_inputs.next_2(G2_line_dbl_1.r1a0); // in17 + circuit_inputs = circuit_inputs.next_2(G2_line_dbl_1.r1a1); // in18 circuit_inputs = circuit_inputs.next_2(G2_line_2nd_0_1.r0a0); // in19 circuit_inputs = circuit_inputs.next_2(G2_line_2nd_0_1.r0a1); // in20 circuit_inputs = circuit_inputs.next_2(G2_line_2nd_0_1.r1a0); // in21 @@ -421,25 +419,25 @@ fn run_BLS12_381_MP_CHECK_BIT00_3P_2F_circuit( x0: outputs.get_output(t153), x1: outputs.get_output(t154), y0: outputs.get_output(t163), - y1: outputs.get_output(t164) + y1: outputs.get_output(t164), }; let lhs_i_plus_one: u384 = outputs.get_output(t189); let ci_plus_one: u384 = outputs.get_output(t4); return (Q0, lhs_i_plus_one, ci_plus_one); } #[inline(always)] -fn run_BLS12_381_MP_CHECK_BIT0_2P_2F_circuit( +pub fn run_BLS12_381_MP_CHECK_BIT0_2P_2F_circuit( yInv_0: u384, xNegOverY_0: u384, - G2_line_0: G2Line, + G2_line_dbl_0: G2Line, yInv_1: u384, xNegOverY_1: u384, - G2_line_1: G2Line, + G2_line_dbl_1: G2Line, lhs_i: u384, f_i_of_z: u384, f_i_plus_one_of_z: u384, z: u384, - ci: u384 + ci: u384, ) -> (u384, u384) { // INPUT stack let (in0, in1, in2) = (CE::> {}, CE::> {}, CE::> {}); @@ -488,22 +486,22 @@ fn run_BLS12_381_MP_CHECK_BIT0_2P_2F_circuit( let modulus = get_BLS12_381_modulus(); // BLS12_381 prime field modulus - let mut circuit_inputs = (t36, t4,).new_inputs(); + let mut circuit_inputs = (t36, t4).new_inputs(); // Prefill constants: // Fill inputs: circuit_inputs = circuit_inputs.next_2(yInv_0); // in0 circuit_inputs = circuit_inputs.next_2(xNegOverY_0); // in1 - circuit_inputs = circuit_inputs.next_2(G2_line_0.r0a0); // in2 - circuit_inputs = circuit_inputs.next_2(G2_line_0.r0a1); // in3 - circuit_inputs = circuit_inputs.next_2(G2_line_0.r1a0); // in4 - circuit_inputs = circuit_inputs.next_2(G2_line_0.r1a1); // in5 + circuit_inputs = circuit_inputs.next_2(G2_line_dbl_0.r0a0); // in2 + circuit_inputs = circuit_inputs.next_2(G2_line_dbl_0.r0a1); // in3 + circuit_inputs = circuit_inputs.next_2(G2_line_dbl_0.r1a0); // in4 + circuit_inputs = circuit_inputs.next_2(G2_line_dbl_0.r1a1); // in5 circuit_inputs = circuit_inputs.next_2(yInv_1); // in6 circuit_inputs = circuit_inputs.next_2(xNegOverY_1); // in7 - circuit_inputs = circuit_inputs.next_2(G2_line_1.r0a0); // in8 - circuit_inputs = circuit_inputs.next_2(G2_line_1.r0a1); // in9 - circuit_inputs = circuit_inputs.next_2(G2_line_1.r1a0); // in10 - circuit_inputs = circuit_inputs.next_2(G2_line_1.r1a1); // in11 + circuit_inputs = circuit_inputs.next_2(G2_line_dbl_1.r0a0); // in8 + circuit_inputs = circuit_inputs.next_2(G2_line_dbl_1.r0a1); // in9 + circuit_inputs = circuit_inputs.next_2(G2_line_dbl_1.r1a0); // in10 + circuit_inputs = circuit_inputs.next_2(G2_line_dbl_1.r1a1); // in11 circuit_inputs = circuit_inputs.next_2(lhs_i); // in12 circuit_inputs = circuit_inputs.next_2(f_i_of_z); // in13 circuit_inputs = circuit_inputs.next_2(f_i_plus_one_of_z); // in14 @@ -516,13 +514,13 @@ fn run_BLS12_381_MP_CHECK_BIT0_2P_2F_circuit( return (lhs_i_plus_one, ci_plus_one); } #[inline(always)] -fn run_BLS12_381_MP_CHECK_BIT0_3P_2F_circuit( +pub fn run_BLS12_381_MP_CHECK_BIT0_3P_2F_circuit( yInv_0: u384, xNegOverY_0: u384, - G2_line_0: G2Line, + G2_line_dbl_0: G2Line, yInv_1: u384, xNegOverY_1: u384, - G2_line_1: G2Line, + G2_line_dbl_1: G2Line, yInv_2: u384, xNegOverY_2: u384, Q_2: G2Point, @@ -530,7 +528,7 @@ fn run_BLS12_381_MP_CHECK_BIT0_3P_2F_circuit( f_i_of_z: u384, f_i_plus_one_of_z: u384, z: u384, - ci: u384 + ci: u384, ) -> (G2Point, u384, u384) { // CONSTANT stack let in0 = CE::> {}; // 0x3 @@ -588,13 +586,13 @@ fn run_BLS12_381_MP_CHECK_BIT0_3P_2F_circuit( let t39 = circuit_mul(t37, in1); // Doubling slope numerator end let t40 = circuit_add(in19, in19); // Fp2 add coeff 0/1 let t41 = circuit_add(in20, in20); // Fp2 add coeff 1/1 - let t42 = circuit_mul(t40, t40); // Fp2 Div x/y start : Fp2 Inv y start + let t42 = circuit_mul(t40, t40); // Fp2 Inv start let t43 = circuit_mul(t41, t41); let t44 = circuit_add(t42, t43); let t45 = circuit_inverse(t44); - let t46 = circuit_mul(t40, t45); // Fp2 Inv y real part end + let t46 = circuit_mul(t40, t45); // Fp2 Inv real part end let t47 = circuit_mul(t41, t45); - let t48 = circuit_sub(in2, t47); // Fp2 Inv y imag part end + let t48 = circuit_sub(in2, t47); // Fp2 Inv imag part end let t49 = circuit_mul(t38, t46); // Fp2 mul start let t50 = circuit_mul(t39, t48); let t51 = circuit_sub(t49, t50); // Fp2 mul real part end @@ -648,7 +646,7 @@ fn run_BLS12_381_MP_CHECK_BIT0_3P_2F_circuit( let modulus = get_BLS12_381_modulus(); // BLS12_381 prime field modulus - let mut circuit_inputs = (t62, t63, t72, t73, t98, t4,).new_inputs(); + let mut circuit_inputs = (t62, t63, t72, t73, t98, t4).new_inputs(); // Prefill constants: circuit_inputs = circuit_inputs.next_2([0x3, 0x0, 0x0, 0x0]); // in0 circuit_inputs = circuit_inputs.next_2([0x6, 0x0, 0x0, 0x0]); // in1 @@ -656,16 +654,16 @@ fn run_BLS12_381_MP_CHECK_BIT0_3P_2F_circuit( // Fill inputs: circuit_inputs = circuit_inputs.next_2(yInv_0); // in3 circuit_inputs = circuit_inputs.next_2(xNegOverY_0); // in4 - circuit_inputs = circuit_inputs.next_2(G2_line_0.r0a0); // in5 - circuit_inputs = circuit_inputs.next_2(G2_line_0.r0a1); // in6 - circuit_inputs = circuit_inputs.next_2(G2_line_0.r1a0); // in7 - circuit_inputs = circuit_inputs.next_2(G2_line_0.r1a1); // in8 + circuit_inputs = circuit_inputs.next_2(G2_line_dbl_0.r0a0); // in5 + circuit_inputs = circuit_inputs.next_2(G2_line_dbl_0.r0a1); // in6 + circuit_inputs = circuit_inputs.next_2(G2_line_dbl_0.r1a0); // in7 + circuit_inputs = circuit_inputs.next_2(G2_line_dbl_0.r1a1); // in8 circuit_inputs = circuit_inputs.next_2(yInv_1); // in9 circuit_inputs = circuit_inputs.next_2(xNegOverY_1); // in10 - circuit_inputs = circuit_inputs.next_2(G2_line_1.r0a0); // in11 - circuit_inputs = circuit_inputs.next_2(G2_line_1.r0a1); // in12 - circuit_inputs = circuit_inputs.next_2(G2_line_1.r1a0); // in13 - circuit_inputs = circuit_inputs.next_2(G2_line_1.r1a1); // in14 + circuit_inputs = circuit_inputs.next_2(G2_line_dbl_1.r0a0); // in11 + circuit_inputs = circuit_inputs.next_2(G2_line_dbl_1.r0a1); // in12 + circuit_inputs = circuit_inputs.next_2(G2_line_dbl_1.r1a0); // in13 + circuit_inputs = circuit_inputs.next_2(G2_line_dbl_1.r1a1); // in14 circuit_inputs = circuit_inputs.next_2(yInv_2); // in15 circuit_inputs = circuit_inputs.next_2(xNegOverY_2); // in16 circuit_inputs = circuit_inputs.next_2(Q_2.x0); // in17 @@ -683,28 +681,28 @@ fn run_BLS12_381_MP_CHECK_BIT0_3P_2F_circuit( x0: outputs.get_output(t62), x1: outputs.get_output(t63), y0: outputs.get_output(t72), - y1: outputs.get_output(t73) + y1: outputs.get_output(t73), }; let lhs_i_plus_one: u384 = outputs.get_output(t98); let ci_plus_one: u384 = outputs.get_output(t4); return (Q0, lhs_i_plus_one, ci_plus_one); } #[inline(always)] -fn run_BLS12_381_MP_CHECK_BIT1_2P_2F_circuit( +pub fn run_BLS12_381_MP_CHECK_BIT1_2P_2F_circuit( yInv_0: u384, xNegOverY_0: u384, - G2_line_0: G2Line, - Q_or_Q_neg_line0: G2Line, + G2_line_dbl_0: G2Line, + G2_line_add_0: G2Line, yInv_1: u384, xNegOverY_1: u384, - G2_line_1: G2Line, - Q_or_Q_neg_line1: G2Line, + G2_line_dbl_1: G2Line, + G2_line_add_1: G2Line, lhs_i: u384, f_i_of_z: u384, f_i_plus_one_of_z: u384, c_or_cinv_of_z: u384, z: u384, - ci: u384 + ci: u384, ) -> (u384, u384) { // INPUT stack let (in0, in1, in2) = (CE::> {}, CE::> {}, CE::> {}); @@ -785,30 +783,30 @@ fn run_BLS12_381_MP_CHECK_BIT1_2P_2F_circuit( let modulus = get_BLS12_381_modulus(); // BLS12_381 prime field modulus - let mut circuit_inputs = (t65, t4,).new_inputs(); + let mut circuit_inputs = (t65, t4).new_inputs(); // Prefill constants: // Fill inputs: circuit_inputs = circuit_inputs.next_2(yInv_0); // in0 circuit_inputs = circuit_inputs.next_2(xNegOverY_0); // in1 - circuit_inputs = circuit_inputs.next_2(G2_line_0.r0a0); // in2 - circuit_inputs = circuit_inputs.next_2(G2_line_0.r0a1); // in3 - circuit_inputs = circuit_inputs.next_2(G2_line_0.r1a0); // in4 - circuit_inputs = circuit_inputs.next_2(G2_line_0.r1a1); // in5 - circuit_inputs = circuit_inputs.next_2(Q_or_Q_neg_line0.r0a0); // in6 - circuit_inputs = circuit_inputs.next_2(Q_or_Q_neg_line0.r0a1); // in7 - circuit_inputs = circuit_inputs.next_2(Q_or_Q_neg_line0.r1a0); // in8 - circuit_inputs = circuit_inputs.next_2(Q_or_Q_neg_line0.r1a1); // in9 + circuit_inputs = circuit_inputs.next_2(G2_line_dbl_0.r0a0); // in2 + circuit_inputs = circuit_inputs.next_2(G2_line_dbl_0.r0a1); // in3 + circuit_inputs = circuit_inputs.next_2(G2_line_dbl_0.r1a0); // in4 + circuit_inputs = circuit_inputs.next_2(G2_line_dbl_0.r1a1); // in5 + circuit_inputs = circuit_inputs.next_2(G2_line_add_0.r0a0); // in6 + circuit_inputs = circuit_inputs.next_2(G2_line_add_0.r0a1); // in7 + circuit_inputs = circuit_inputs.next_2(G2_line_add_0.r1a0); // in8 + circuit_inputs = circuit_inputs.next_2(G2_line_add_0.r1a1); // in9 circuit_inputs = circuit_inputs.next_2(yInv_1); // in10 circuit_inputs = circuit_inputs.next_2(xNegOverY_1); // in11 - circuit_inputs = circuit_inputs.next_2(G2_line_1.r0a0); // in12 - circuit_inputs = circuit_inputs.next_2(G2_line_1.r0a1); // in13 - circuit_inputs = circuit_inputs.next_2(G2_line_1.r1a0); // in14 - circuit_inputs = circuit_inputs.next_2(G2_line_1.r1a1); // in15 - circuit_inputs = circuit_inputs.next_2(Q_or_Q_neg_line1.r0a0); // in16 - circuit_inputs = circuit_inputs.next_2(Q_or_Q_neg_line1.r0a1); // in17 - circuit_inputs = circuit_inputs.next_2(Q_or_Q_neg_line1.r1a0); // in18 - circuit_inputs = circuit_inputs.next_2(Q_or_Q_neg_line1.r1a1); // in19 + circuit_inputs = circuit_inputs.next_2(G2_line_dbl_1.r0a0); // in12 + circuit_inputs = circuit_inputs.next_2(G2_line_dbl_1.r0a1); // in13 + circuit_inputs = circuit_inputs.next_2(G2_line_dbl_1.r1a0); // in14 + circuit_inputs = circuit_inputs.next_2(G2_line_dbl_1.r1a1); // in15 + circuit_inputs = circuit_inputs.next_2(G2_line_add_1.r0a0); // in16 + circuit_inputs = circuit_inputs.next_2(G2_line_add_1.r0a1); // in17 + circuit_inputs = circuit_inputs.next_2(G2_line_add_1.r1a0); // in18 + circuit_inputs = circuit_inputs.next_2(G2_line_add_1.r1a1); // in19 circuit_inputs = circuit_inputs.next_2(lhs_i); // in20 circuit_inputs = circuit_inputs.next_2(f_i_of_z); // in21 circuit_inputs = circuit_inputs.next_2(f_i_plus_one_of_z); // in22 @@ -822,15 +820,15 @@ fn run_BLS12_381_MP_CHECK_BIT1_2P_2F_circuit( return (lhs_i_plus_one, ci_plus_one); } #[inline(always)] -fn run_BLS12_381_MP_CHECK_BIT1_3P_2F_circuit( +pub fn run_BLS12_381_MP_CHECK_BIT1_3P_2F_circuit( yInv_0: u384, xNegOverY_0: u384, - G2_line_0: G2Line, - Q_or_Q_neg_line0: G2Line, + G2_line_dbl_0: G2Line, + G2_line_add_0: G2Line, yInv_1: u384, xNegOverY_1: u384, - G2_line_1: G2Line, - Q_or_Q_neg_line1: G2Line, + G2_line_dbl_1: G2Line, + G2_line_add_1: G2Line, yInv_2: u384, xNegOverY_2: u384, Q_2: G2Point, @@ -840,7 +838,7 @@ fn run_BLS12_381_MP_CHECK_BIT1_3P_2F_circuit( f_i_plus_one_of_z: u384, c_or_cinv_of_z: u384, z: u384, - ci: u384 + ci: u384, ) -> (G2Point, u384, u384) { // CONSTANT stack let in0 = CE::> {}; // 0x0 @@ -924,13 +922,13 @@ fn run_BLS12_381_MP_CHECK_BIT1_3P_2F_circuit( let t63 = circuit_sub(in26, in30); // Fp2 sub coeff 1/1 let t64 = circuit_sub(in23, in27); // Fp2 sub coeff 0/1 let t65 = circuit_sub(in24, in28); // Fp2 sub coeff 1/1 - let t66 = circuit_mul(t64, t64); // Fp2 Div x/y start : Fp2 Inv y start + let t66 = circuit_mul(t64, t64); // Fp2 Inv start let t67 = circuit_mul(t65, t65); let t68 = circuit_add(t66, t67); let t69 = circuit_inverse(t68); - let t70 = circuit_mul(t64, t69); // Fp2 Inv y real part end + let t70 = circuit_mul(t64, t69); // Fp2 Inv real part end let t71 = circuit_mul(t65, t69); - let t72 = circuit_sub(in0, t71); // Fp2 Inv y imag part end + let t72 = circuit_sub(in0, t71); // Fp2 Inv imag part end let t73 = circuit_mul(t62, t70); // Fp2 mul start let t74 = circuit_mul(t63, t72); let t75 = circuit_sub(t73, t74); // Fp2 mul real part end @@ -958,13 +956,13 @@ fn run_BLS12_381_MP_CHECK_BIT1_3P_2F_circuit( let t97 = circuit_add(in26, in26); // Fp2 add coeff 1/1 let t98 = circuit_sub(t86, in23); // Fp2 sub coeff 0/1 let t99 = circuit_sub(t87, in24); // Fp2 sub coeff 1/1 - let t100 = circuit_mul(t98, t98); // Fp2 Div x/y start : Fp2 Inv y start + let t100 = circuit_mul(t98, t98); // Fp2 Inv start let t101 = circuit_mul(t99, t99); let t102 = circuit_add(t100, t101); let t103 = circuit_inverse(t102); - let t104 = circuit_mul(t98, t103); // Fp2 Inv y real part end + let t104 = circuit_mul(t98, t103); // Fp2 Inv real part end let t105 = circuit_mul(t99, t103); - let t106 = circuit_sub(in0, t105); // Fp2 Inv y imag part end + let t106 = circuit_sub(in0, t105); // Fp2 Inv imag part end let t107 = circuit_mul(t96, t104); // Fp2 mul start let t108 = circuit_mul(t97, t106); let t109 = circuit_sub(t107, t108); // Fp2 mul real part end @@ -1037,30 +1035,30 @@ fn run_BLS12_381_MP_CHECK_BIT1_3P_2F_circuit( let modulus = get_BLS12_381_modulus(); // BLS12_381 prime field modulus - let mut circuit_inputs = (t124, t125, t134, t135, t175, t4,).new_inputs(); + let mut circuit_inputs = (t124, t125, t134, t135, t175, t4).new_inputs(); // Prefill constants: circuit_inputs = circuit_inputs.next_2([0x0, 0x0, 0x0, 0x0]); // in0 // Fill inputs: circuit_inputs = circuit_inputs.next_2(yInv_0); // in1 circuit_inputs = circuit_inputs.next_2(xNegOverY_0); // in2 - circuit_inputs = circuit_inputs.next_2(G2_line_0.r0a0); // in3 - circuit_inputs = circuit_inputs.next_2(G2_line_0.r0a1); // in4 - circuit_inputs = circuit_inputs.next_2(G2_line_0.r1a0); // in5 - circuit_inputs = circuit_inputs.next_2(G2_line_0.r1a1); // in6 - circuit_inputs = circuit_inputs.next_2(Q_or_Q_neg_line0.r0a0); // in7 - circuit_inputs = circuit_inputs.next_2(Q_or_Q_neg_line0.r0a1); // in8 - circuit_inputs = circuit_inputs.next_2(Q_or_Q_neg_line0.r1a0); // in9 - circuit_inputs = circuit_inputs.next_2(Q_or_Q_neg_line0.r1a1); // in10 + circuit_inputs = circuit_inputs.next_2(G2_line_dbl_0.r0a0); // in3 + circuit_inputs = circuit_inputs.next_2(G2_line_dbl_0.r0a1); // in4 + circuit_inputs = circuit_inputs.next_2(G2_line_dbl_0.r1a0); // in5 + circuit_inputs = circuit_inputs.next_2(G2_line_dbl_0.r1a1); // in6 + circuit_inputs = circuit_inputs.next_2(G2_line_add_0.r0a0); // in7 + circuit_inputs = circuit_inputs.next_2(G2_line_add_0.r0a1); // in8 + circuit_inputs = circuit_inputs.next_2(G2_line_add_0.r1a0); // in9 + circuit_inputs = circuit_inputs.next_2(G2_line_add_0.r1a1); // in10 circuit_inputs = circuit_inputs.next_2(yInv_1); // in11 circuit_inputs = circuit_inputs.next_2(xNegOverY_1); // in12 - circuit_inputs = circuit_inputs.next_2(G2_line_1.r0a0); // in13 - circuit_inputs = circuit_inputs.next_2(G2_line_1.r0a1); // in14 - circuit_inputs = circuit_inputs.next_2(G2_line_1.r1a0); // in15 - circuit_inputs = circuit_inputs.next_2(G2_line_1.r1a1); // in16 - circuit_inputs = circuit_inputs.next_2(Q_or_Q_neg_line1.r0a0); // in17 - circuit_inputs = circuit_inputs.next_2(Q_or_Q_neg_line1.r0a1); // in18 - circuit_inputs = circuit_inputs.next_2(Q_or_Q_neg_line1.r1a0); // in19 - circuit_inputs = circuit_inputs.next_2(Q_or_Q_neg_line1.r1a1); // in20 + circuit_inputs = circuit_inputs.next_2(G2_line_dbl_1.r0a0); // in13 + circuit_inputs = circuit_inputs.next_2(G2_line_dbl_1.r0a1); // in14 + circuit_inputs = circuit_inputs.next_2(G2_line_dbl_1.r1a0); // in15 + circuit_inputs = circuit_inputs.next_2(G2_line_dbl_1.r1a1); // in16 + circuit_inputs = circuit_inputs.next_2(G2_line_add_1.r0a0); // in17 + circuit_inputs = circuit_inputs.next_2(G2_line_add_1.r0a1); // in18 + circuit_inputs = circuit_inputs.next_2(G2_line_add_1.r1a0); // in19 + circuit_inputs = circuit_inputs.next_2(G2_line_add_1.r1a1); // in20 circuit_inputs = circuit_inputs.next_2(yInv_2); // in21 circuit_inputs = circuit_inputs.next_2(xNegOverY_2); // in22 circuit_inputs = circuit_inputs.next_2(Q_2.x0); // in23 @@ -1083,14 +1081,14 @@ fn run_BLS12_381_MP_CHECK_BIT1_3P_2F_circuit( x0: outputs.get_output(t124), x1: outputs.get_output(t125), y0: outputs.get_output(t134), - y1: outputs.get_output(t135) + y1: outputs.get_output(t135), }; let lhs_i_plus_one: u384 = outputs.get_output(t175); let ci_plus_one: u384 = outputs.get_output(t4); return (Q0, lhs_i_plus_one, ci_plus_one); } #[inline(always)] -fn run_BLS12_381_MP_CHECK_FINALIZE_BLS_2P_circuit( +pub fn run_BLS12_381_MP_CHECK_FINALIZE_BLS_2P_circuit( R_n_minus_1: E12D, c_n_minus_2: u384, w_of_z: u384, @@ -1098,7 +1096,7 @@ fn run_BLS12_381_MP_CHECK_FINALIZE_BLS_2P_circuit( c_inv_frob_1_of_z: u384, previous_lhs: u384, R_n_minus_2_of_z: u384, - Q: Array + Q: Array, ) -> (u384,) { // CONSTANT stack let in0 = CE::> {}; // 0x2 @@ -1351,11 +1349,9 @@ fn run_BLS12_381_MP_CHECK_FINALIZE_BLS_2P_circuit( circuit_inputs = circuit_inputs .next_2( [ - 0xb153ffffb9feffffffffaaa9, - 0x6730d2a0f6b0f6241eabfffe, - 0x434bacd764774b84f38512bf, - 0x1a0111ea397fe69a4b1ba7b6 - ] + 0xb153ffffb9feffffffffaaa9, 0x6730d2a0f6b0f6241eabfffe, 0x434bacd764774b84f38512bf, + 0x1a0111ea397fe69a4b1ba7b6, + ], ); // in1 // Fill inputs: circuit_inputs = circuit_inputs.next_2(R_n_minus_1.w0); // in2 @@ -1380,15 +1376,14 @@ fn run_BLS12_381_MP_CHECK_FINALIZE_BLS_2P_circuit( let mut Q = Q; while let Option::Some(val) = Q.pop_front() { circuit_inputs = circuit_inputs.next_2(val); - }; - // in20 - in100 + }; // in20 - in100 let outputs = circuit_inputs.done_2().eval(modulus).unwrap(); let final_check: u384 = outputs.get_output(t203); return (final_check,); } #[inline(always)] -fn run_BLS12_381_MP_CHECK_FINALIZE_BLS_3P_circuit( +pub fn run_BLS12_381_MP_CHECK_FINALIZE_BLS_3P_circuit( R_n_minus_1: E12D, c_n_minus_2: u384, w_of_z: u384, @@ -1396,7 +1391,7 @@ fn run_BLS12_381_MP_CHECK_FINALIZE_BLS_3P_circuit( c_inv_frob_1_of_z: u384, previous_lhs: u384, R_n_minus_2_of_z: u384, - Q: Array + Q: Array, ) -> (u384,) { // CONSTANT stack let in0 = CE::> {}; // 0x2 @@ -1705,11 +1700,9 @@ fn run_BLS12_381_MP_CHECK_FINALIZE_BLS_3P_circuit( circuit_inputs = circuit_inputs .next_2( [ - 0xb153ffffb9feffffffffaaa9, - 0x6730d2a0f6b0f6241eabfffe, - 0x434bacd764774b84f38512bf, - 0x1a0111ea397fe69a4b1ba7b6 - ] + 0xb153ffffb9feffffffffaaa9, 0x6730d2a0f6b0f6241eabfffe, 0x434bacd764774b84f38512bf, + 0x1a0111ea397fe69a4b1ba7b6, + ], ); // in1 // Fill inputs: circuit_inputs = circuit_inputs.next_2(R_n_minus_1.w0); // in2 @@ -1734,15 +1727,14 @@ fn run_BLS12_381_MP_CHECK_FINALIZE_BLS_3P_circuit( let mut Q = Q; while let Option::Some(val) = Q.pop_front() { circuit_inputs = circuit_inputs.next_2(val); - }; - // in20 - in124 + }; // in20 - in124 let outputs = circuit_inputs.done_2().eval(modulus).unwrap(); let final_check: u384 = outputs.get_output(t251); return (final_check,); } #[inline(always)] -fn run_BLS12_381_MP_CHECK_INIT_BIT_2P_2F_circuit( +pub fn run_BLS12_381_MP_CHECK_INIT_BIT_2P_2F_circuit( yInv_0: u384, xNegOverY_0: u384, G2_line_0: G2Line, @@ -1754,7 +1746,7 @@ fn run_BLS12_381_MP_CHECK_INIT_BIT_2P_2F_circuit( R_i_of_z: u384, c0: u384, z: u384, - c_inv_of_z: u384 + c_inv_of_z: u384, ) -> (u384,) { // INPUT stack let (in0, in1, in2) = (CE::> {}, CE::> {}, CE::> {}); @@ -1866,7 +1858,7 @@ fn run_BLS12_381_MP_CHECK_INIT_BIT_2P_2F_circuit( return (new_lhs,); } #[inline(always)] -fn run_BLS12_381_MP_CHECK_INIT_BIT_3P_2F_circuit( +pub fn run_BLS12_381_MP_CHECK_INIT_BIT_3P_2F_circuit( yInv_0: u384, xNegOverY_0: u384, G2_line_0: G2Line, @@ -1881,7 +1873,7 @@ fn run_BLS12_381_MP_CHECK_INIT_BIT_3P_2F_circuit( R_i_of_z: u384, c0: u384, z: u384, - c_inv_of_z: u384 + c_inv_of_z: u384, ) -> (G2Point, u384) { // CONSTANT stack let in0 = CE::> {}; // 0x3 @@ -1969,13 +1961,13 @@ fn run_BLS12_381_MP_CHECK_INIT_BIT_3P_2F_circuit( let t67 = circuit_mul(t65, in1); let t68 = circuit_add(in27, in27); // Fp2 add coeff 0/1 let t69 = circuit_add(in28, in28); // Fp2 add coeff 1/1 - let t70 = circuit_mul(t68, t68); // Fp2 Div x/y start : Fp2 Inv y start + let t70 = circuit_mul(t68, t68); // Fp2 Inv start let t71 = circuit_mul(t69, t69); let t72 = circuit_add(t70, t71); let t73 = circuit_inverse(t72); - let t74 = circuit_mul(t68, t73); // Fp2 Inv y real part end + let t74 = circuit_mul(t68, t73); // Fp2 Inv real part end let t75 = circuit_mul(t69, t73); - let t76 = circuit_sub(in2, t75); // Fp2 Inv y imag part end + let t76 = circuit_sub(in2, t75); // Fp2 Inv imag part end let t77 = circuit_mul(t66, t74); // Fp2 mul start let t78 = circuit_mul(t67, t76); let t79 = circuit_sub(t77, t78); // Fp2 mul real part end @@ -2001,13 +1993,13 @@ fn run_BLS12_381_MP_CHECK_INIT_BIT_3P_2F_circuit( let t99 = circuit_sub(t95, t97); // Fp2 sub coeff 1/1 let t100 = circuit_sub(in25, t98); // Fp2 sub coeff 0/1 let t101 = circuit_sub(in26, t99); // Fp2 sub coeff 1/1 - let t102 = circuit_mul(t100, t100); // Fp2 Div x/y start : Fp2 Inv y start + let t102 = circuit_mul(t100, t100); // Fp2 Inv start let t103 = circuit_mul(t101, t101); let t104 = circuit_add(t102, t103); let t105 = circuit_inverse(t104); - let t106 = circuit_mul(t100, t105); // Fp2 Inv y real part end + let t106 = circuit_mul(t100, t105); // Fp2 Inv real part end let t107 = circuit_mul(t101, t105); - let t108 = circuit_sub(in2, t107); // Fp2 Inv y imag part end + let t108 = circuit_sub(in2, t107); // Fp2 Inv imag part end let t109 = circuit_mul(t68, t106); // Fp2 mul start let t110 = circuit_mul(t69, t108); let t111 = circuit_sub(t109, t110); // Fp2 mul real part end @@ -2076,7 +2068,7 @@ fn run_BLS12_381_MP_CHECK_INIT_BIT_3P_2F_circuit( let modulus = get_BLS12_381_modulus(); // BLS12_381 prime field modulus - let mut circuit_inputs = (t132, t133, t142, t143, t173,).new_inputs(); + let mut circuit_inputs = (t132, t133, t142, t143, t173).new_inputs(); // Prefill constants: circuit_inputs = circuit_inputs.next_2([0x3, 0x0, 0x0, 0x0]); // in0 circuit_inputs = circuit_inputs.next_2([0x6, 0x0, 0x0, 0x0]); // in1 @@ -2118,57 +2110,57 @@ fn run_BLS12_381_MP_CHECK_INIT_BIT_3P_2F_circuit( x0: outputs.get_output(t132), x1: outputs.get_output(t133), y0: outputs.get_output(t142), - y1: outputs.get_output(t143) + y1: outputs.get_output(t143), }; let new_lhs: u384 = outputs.get_output(t173); return (Q0, new_lhs); } #[inline(always)] -fn run_BLS12_381_MP_CHECK_PREPARE_LAMBDA_ROOT_circuit( - lambda_root_inverse: E12D, z: u384, scaling_factor: MillerLoopResultScalingFactor +pub fn run_BLS12_381_MP_CHECK_PREPARE_LAMBDA_ROOT_circuit( + lambda_root_inverse: E12D, z: u384, scaling_factor: MillerLoopResultScalingFactor, ) -> (u384, u384, u384) { // CONSTANT stack let in0 = CE::> {}; // 0x0 let in1 = CE::> {}; // 0x2 let in2 = CE::< - CI<2> + CI<2>, > {}; // 0x18089593cbf626353947d5b1fd0c6d66bb34bc7585f5abdf8f17b50e12c47d65ce514a7c167b027b600febdb244714c5 let in3 = CE::< - CI<3> + CI<3>, > {}; // 0x5f19672fdf76ce51ba69c6076a0f77eaddb3a93be6f89688de17d813620a00022e01fffffffeffff let in4 = CE::< - CI<4> + CI<4>, > {}; // 0xd5e1c086ffe8016d063c6dad7a2fffc9072bb5785a686bcefeedc2e0124838bdccf325ee5d80be9902109f7dbc79812 let in5 = CE::< - CI<5> + CI<5>, > {}; // 0x1a0111ea397fe699ec02408663d4de85aa0d857d89759ad4897d29650fb85f9b409427eb4f49fffd8bfd00000000aaad let in6 = CE::< - CI<6> + CI<6>, > {}; // 0x1a0111ea397fe6998ce8d956845e1033efa3bf761f6622e9abc9802928bfc912627c4fd7ed3ffffb5dfb00000001aaaf let in7 = CE::< - CI<7> + CI<7>, > {}; // 0xb659fb20274bfb1be8ff4d69163c08be7302c4818171fdd17d5be9b1d380acd8c747cdc4aff0e653631f5d3000f022c let in8 = CE::> {}; // -0x1 % p let in9 = CE::< - CI<9> + CI<9>, > {}; // 0xfc3e2b36c4e03288e9e902231f9fb854a14787b6c7b36fec0c8ec971f63c5f282d5ac14d6c7ec22cf78a126ddc4af3 let in10 = CE::< - CI<10> + CI<10>, > {}; // 0x1f87c566d89c06511d3d204463f3f70a9428f0f6d8f66dfd8191d92e3ec78be505ab5829ad8fd8459ef1424dbb895e6 let in11 = CE::< - CI<11> + CI<11>, > {}; // 0x1a0111ea397fe699ec02408663d4de85aa0d857d89759ad4897d29650fb85f9b409427eb4f49fffd8bfd00000000aaac let in12 = CE::< - CI<12> + CI<12>, > {}; // 0x6af0e0437ff400b6831e36d6bd17ffe48395dabc2d3435e77f76e17009241c5ee67992f72ec05f4c81084fbede3cc09 let in13 = CE::< - CI<13> + CI<13>, > {}; // 0x5f19672fdf76ce51ba69c6076a0f77eaddb3a93be6f89688de17d813620a00022e01fffffffefffe let in14 = CE::< - CI<14> + CI<14>, > {}; // 0x144e4211384586c16bd3ad4afa99cc9170df3560e77982d0db45f3536814f0bd5871c1908bd478cd1ee605167ff82995 let in15 = CE::< - CI<15> + CI<15>, > {}; // 0xe9b7238370b26e88c8bb2dfb1e7ec4b7d471f3cdb6df2e24f5b1405d978eb56923783226654f19a83cd0a2cfff0a87f // INPUT stack @@ -2277,7 +2269,7 @@ fn run_BLS12_381_MP_CHECK_PREPARE_LAMBDA_ROOT_circuit( let modulus = get_BLS12_381_modulus(); // BLS12_381 prime field modulus - let mut circuit_inputs = (t37, t47, t94,).new_inputs(); + let mut circuit_inputs = (t37, t47, t94).new_inputs(); // Prefill constants: circuit_inputs = circuit_inputs @@ -2310,98 +2302,96 @@ fn run_BLS12_381_MP_CHECK_PREPARE_LAMBDA_ROOT_circuit( let c_inv_frob_1_of_z: u384 = outputs.get_output(t94); return (c_inv_of_z, scaling_factor_of_z, c_inv_frob_1_of_z); } -const MP_CHECK_PREPARE_LAMBDA_ROOT_BLS12_381_CONSTANTS: [ - u384 - ; 16] = [ +const MP_CHECK_PREPARE_LAMBDA_ROOT_BLS12_381_CONSTANTS: [u384; 16] = [ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x2, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x167b027b600febdb244714c5, limb1: 0x8f17b50e12c47d65ce514a7c, limb2: 0xfd0c6d66bb34bc7585f5abdf, - limb3: 0x18089593cbf626353947d5b1 + limb3: 0x18089593cbf626353947d5b1, }, u384 { limb0: 0x620a00022e01fffffffeffff, limb1: 0xddb3a93be6f89688de17d813, limb2: 0xdf76ce51ba69c6076a0f77ea, - limb3: 0x5f19672f + limb3: 0x5f19672f, }, u384 { limb0: 0xe5d80be9902109f7dbc79812, limb1: 0xefeedc2e0124838bdccf325e, limb2: 0xd7a2fffc9072bb5785a686bc, - limb3: 0xd5e1c086ffe8016d063c6da + limb3: 0xd5e1c086ffe8016d063c6da, }, u384 { limb0: 0x4f49fffd8bfd00000000aaad, limb1: 0x897d29650fb85f9b409427eb, limb2: 0x63d4de85aa0d857d89759ad4, - limb3: 0x1a0111ea397fe699ec024086 + limb3: 0x1a0111ea397fe699ec024086, }, u384 { limb0: 0xed3ffffb5dfb00000001aaaf, limb1: 0xabc9802928bfc912627c4fd7, limb2: 0x845e1033efa3bf761f6622e9, - limb3: 0x1a0111ea397fe6998ce8d956 + limb3: 0x1a0111ea397fe6998ce8d956, }, u384 { limb0: 0x4aff0e653631f5d3000f022c, limb1: 0x17d5be9b1d380acd8c747cdc, limb2: 0x9163c08be7302c4818171fdd, - limb3: 0xb659fb20274bfb1be8ff4d6 + limb3: 0xb659fb20274bfb1be8ff4d6, }, u384 { limb0: 0xb153ffffb9feffffffffaaaa, limb1: 0x6730d2a0f6b0f6241eabfffe, limb2: 0x434bacd764774b84f38512bf, - limb3: 0x1a0111ea397fe69a4b1ba7b6 + limb3: 0x1a0111ea397fe69a4b1ba7b6, }, u384 { limb0: 0x4d6c7ec22cf78a126ddc4af3, limb1: 0xec0c8ec971f63c5f282d5ac1, limb2: 0x231f9fb854a14787b6c7b36f, - limb3: 0xfc3e2b36c4e03288e9e902 + limb3: 0xfc3e2b36c4e03288e9e902, }, u384 { limb0: 0x9ad8fd8459ef1424dbb895e6, limb1: 0xd8191d92e3ec78be505ab582, limb2: 0x463f3f70a9428f0f6d8f66df, - limb3: 0x1f87c566d89c06511d3d204 + limb3: 0x1f87c566d89c06511d3d204, }, u384 { limb0: 0x4f49fffd8bfd00000000aaac, limb1: 0x897d29650fb85f9b409427eb, limb2: 0x63d4de85aa0d857d89759ad4, - limb3: 0x1a0111ea397fe699ec024086 + limb3: 0x1a0111ea397fe699ec024086, }, u384 { limb0: 0x72ec05f4c81084fbede3cc09, limb1: 0x77f76e17009241c5ee67992f, limb2: 0x6bd17ffe48395dabc2d3435e, - limb3: 0x6af0e0437ff400b6831e36d + limb3: 0x6af0e0437ff400b6831e36d, }, u384 { limb0: 0x620a00022e01fffffffefffe, limb1: 0xddb3a93be6f89688de17d813, limb2: 0xdf76ce51ba69c6076a0f77ea, - limb3: 0x5f19672f + limb3: 0x5f19672f, }, u384 { limb0: 0x8bd478cd1ee605167ff82995, limb1: 0xdb45f3536814f0bd5871c190, limb2: 0xfa99cc9170df3560e77982d0, - limb3: 0x144e4211384586c16bd3ad4a + limb3: 0x144e4211384586c16bd3ad4a, }, u384 { limb0: 0x6654f19a83cd0a2cfff0a87f, limb1: 0x4f5b1405d978eb5692378322, limb2: 0xb1e7ec4b7d471f3cdb6df2e2, - limb3: 0xe9b7238370b26e88c8bb2df - } + limb3: 0xe9b7238370b26e88c8bb2df, + }, ]; #[inline(always)] -fn run_BLS12_381_MP_CHECK_PREPARE_PAIRS_1P_circuit(p_0: G1Point) -> (BLSProcessedPair,) { +pub fn run_BLS12_381_MP_CHECK_PREPARE_PAIRS_1P_circuit(p_0: G1Point) -> (BLSProcessedPair,) { // CONSTANT stack let in0 = CE::> {}; // 0x0 @@ -2413,7 +2403,7 @@ fn run_BLS12_381_MP_CHECK_PREPARE_PAIRS_1P_circuit(p_0: G1Point) -> (BLSProcesse let modulus = get_BLS12_381_modulus(); // BLS12_381 prime field modulus - let mut circuit_inputs = (t0, t2,).new_inputs(); + let mut circuit_inputs = (t0, t2).new_inputs(); // Prefill constants: circuit_inputs = circuit_inputs.next_2([0x0, 0x0, 0x0, 0x0]); // in0 // Fill inputs: @@ -2422,13 +2412,13 @@ fn run_BLS12_381_MP_CHECK_PREPARE_PAIRS_1P_circuit(p_0: G1Point) -> (BLSProcesse let outputs = circuit_inputs.done_2().eval(modulus).unwrap(); let p_0: BLSProcessedPair = BLSProcessedPair { - yInv: outputs.get_output(t0), xNegOverY: outputs.get_output(t2) + yInv: outputs.get_output(t0), xNegOverY: outputs.get_output(t2), }; return (p_0,); } #[inline(always)] -fn run_BLS12_381_MP_CHECK_PREPARE_PAIRS_2P_circuit( - p_0: G1Point, p_1: G1Point +pub fn run_BLS12_381_MP_CHECK_PREPARE_PAIRS_2P_circuit( + p_0: G1Point, p_1: G1Point, ) -> (BLSProcessedPair, BLSProcessedPair) { // CONSTANT stack let in0 = CE::> {}; // 0x0 @@ -2445,7 +2435,7 @@ fn run_BLS12_381_MP_CHECK_PREPARE_PAIRS_2P_circuit( let modulus = get_BLS12_381_modulus(); // BLS12_381 prime field modulus - let mut circuit_inputs = (t0, t2, t3, t5,).new_inputs(); + let mut circuit_inputs = (t0, t2, t3, t5).new_inputs(); // Prefill constants: circuit_inputs = circuit_inputs.next_2([0x0, 0x0, 0x0, 0x0]); // in0 // Fill inputs: @@ -2456,16 +2446,16 @@ fn run_BLS12_381_MP_CHECK_PREPARE_PAIRS_2P_circuit( let outputs = circuit_inputs.done_2().eval(modulus).unwrap(); let p_0: BLSProcessedPair = BLSProcessedPair { - yInv: outputs.get_output(t0), xNegOverY: outputs.get_output(t2) + yInv: outputs.get_output(t0), xNegOverY: outputs.get_output(t2), }; let p_1: BLSProcessedPair = BLSProcessedPair { - yInv: outputs.get_output(t3), xNegOverY: outputs.get_output(t5) + yInv: outputs.get_output(t3), xNegOverY: outputs.get_output(t5), }; return (p_0, p_1); } #[inline(always)] -fn run_BLS12_381_MP_CHECK_PREPARE_PAIRS_3P_circuit( - p_0: G1Point, p_1: G1Point, p_2: G1Point +pub fn run_BLS12_381_MP_CHECK_PREPARE_PAIRS_3P_circuit( + p_0: G1Point, p_1: G1Point, p_2: G1Point, ) -> (BLSProcessedPair, BLSProcessedPair, BLSProcessedPair) { // CONSTANT stack let in0 = CE::> {}; // 0x0 @@ -2485,7 +2475,7 @@ fn run_BLS12_381_MP_CHECK_PREPARE_PAIRS_3P_circuit( let modulus = get_BLS12_381_modulus(); // BLS12_381 prime field modulus - let mut circuit_inputs = (t0, t2, t3, t5, t6, t8,).new_inputs(); + let mut circuit_inputs = (t0, t2, t3, t5, t6, t8).new_inputs(); // Prefill constants: circuit_inputs = circuit_inputs.next_2([0x0, 0x0, 0x0, 0x0]); // in0 // Fill inputs: @@ -2498,31 +2488,31 @@ fn run_BLS12_381_MP_CHECK_PREPARE_PAIRS_3P_circuit( let outputs = circuit_inputs.done_2().eval(modulus).unwrap(); let p_0: BLSProcessedPair = BLSProcessedPair { - yInv: outputs.get_output(t0), xNegOverY: outputs.get_output(t2) + yInv: outputs.get_output(t0), xNegOverY: outputs.get_output(t2), }; let p_1: BLSProcessedPair = BLSProcessedPair { - yInv: outputs.get_output(t3), xNegOverY: outputs.get_output(t5) + yInv: outputs.get_output(t3), xNegOverY: outputs.get_output(t5), }; let p_2: BLSProcessedPair = BLSProcessedPair { - yInv: outputs.get_output(t6), xNegOverY: outputs.get_output(t8) + yInv: outputs.get_output(t6), xNegOverY: outputs.get_output(t8), }; return (p_0, p_1, p_2); } #[inline(always)] -fn run_BN254_MP_CHECK_BIT00_2P_2F_circuit( +pub fn run_BN254_MP_CHECK_BIT00_2P_2F_circuit( yInv_0: u384, xNegOverY_0: u384, - G2_line_0: G2Line, + G2_line_dbl_0: G2Line, G2_line_2nd_0_0: G2Line, yInv_1: u384, xNegOverY_1: u384, - G2_line_1: G2Line, + G2_line_dbl_1: G2Line, G2_line_2nd_0_1: G2Line, lhs_i: u384, f_i_of_z: u384, f_i_plus_one_of_z: u384, z: u384, - ci: u384 + ci: u384, ) -> (u384, u384) { // CONSTANT stack let in0 = CE::> {}; // -0x9 % p @@ -2580,7 +2570,7 @@ fn run_BN254_MP_CHECK_BIT00_2P_2F_circuit( let t39 = circuit_add(t37, t38); // Eval sparse poly line_1p_1 step + coeff_9 * z^9 let t40 = circuit_mul(t23, t39); // Mul (f(z)^2 * Π_0_k-1(line_k(z))) * line_i_1(z) let t41 = circuit_mul( - t40, t40 + t40, t40, ); // Compute (f^2 * Π(i,k) (line_i,k(z))) ^ 2 = f^4 * (Π(i,k) (line_i,k(z)))^2 let t42 = circuit_mul(in0, in15); let t43 = circuit_add(in14, t42); @@ -2622,30 +2612,30 @@ fn run_BN254_MP_CHECK_BIT00_2P_2F_circuit( let modulus = get_BN254_modulus(); // BN254 prime field modulus - let mut circuit_inputs = (t78, t5,).new_inputs(); + let mut circuit_inputs = (t78, t5).new_inputs(); // Prefill constants: circuit_inputs = circuit_inputs .next_2( - [0x6871ca8d3c208c16d87cfd3e, 0xb85045b68181585d97816a91, 0x30644e72e131a029, 0x0] + [0x6871ca8d3c208c16d87cfd3e, 0xb85045b68181585d97816a91, 0x30644e72e131a029, 0x0], ); // in0 circuit_inputs = circuit_inputs.next_2([0x1, 0x0, 0x0, 0x0]); // in1 // Fill inputs: circuit_inputs = circuit_inputs.next_2(yInv_0); // in2 circuit_inputs = circuit_inputs.next_2(xNegOverY_0); // in3 - circuit_inputs = circuit_inputs.next_u288(G2_line_0.r0a0); // in4 - circuit_inputs = circuit_inputs.next_u288(G2_line_0.r0a1); // in5 - circuit_inputs = circuit_inputs.next_u288(G2_line_0.r1a0); // in6 - circuit_inputs = circuit_inputs.next_u288(G2_line_0.r1a1); // in7 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_0.r0a0); // in4 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_0.r0a1); // in5 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_0.r1a0); // in6 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_0.r1a1); // in7 circuit_inputs = circuit_inputs.next_u288(G2_line_2nd_0_0.r0a0); // in8 circuit_inputs = circuit_inputs.next_u288(G2_line_2nd_0_0.r0a1); // in9 circuit_inputs = circuit_inputs.next_u288(G2_line_2nd_0_0.r1a0); // in10 circuit_inputs = circuit_inputs.next_u288(G2_line_2nd_0_0.r1a1); // in11 circuit_inputs = circuit_inputs.next_2(yInv_1); // in12 circuit_inputs = circuit_inputs.next_2(xNegOverY_1); // in13 - circuit_inputs = circuit_inputs.next_u288(G2_line_1.r0a0); // in14 - circuit_inputs = circuit_inputs.next_u288(G2_line_1.r0a1); // in15 - circuit_inputs = circuit_inputs.next_u288(G2_line_1.r1a0); // in16 - circuit_inputs = circuit_inputs.next_u288(G2_line_1.r1a1); // in17 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_1.r0a0); // in14 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_1.r0a1); // in15 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_1.r1a0); // in16 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_1.r1a1); // in17 circuit_inputs = circuit_inputs.next_u288(G2_line_2nd_0_1.r0a0); // in18 circuit_inputs = circuit_inputs.next_u288(G2_line_2nd_0_1.r0a1); // in19 circuit_inputs = circuit_inputs.next_u288(G2_line_2nd_0_1.r1a0); // in20 @@ -2662,14 +2652,14 @@ fn run_BN254_MP_CHECK_BIT00_2P_2F_circuit( return (lhs_i_plus_one, ci_plus_one); } #[inline(always)] -fn run_BN254_MP_CHECK_BIT00_3P_2F_circuit( +pub fn run_BN254_MP_CHECK_BIT00_3P_2F_circuit( yInv_0: u384, xNegOverY_0: u384, - G2_line_0: G2Line, + G2_line_dbl_0: G2Line, G2_line_2nd_0_0: G2Line, yInv_1: u384, xNegOverY_1: u384, - G2_line_1: G2Line, + G2_line_dbl_1: G2Line, G2_line_2nd_0_1: G2Line, yInv_2: u384, xNegOverY_2: u384, @@ -2678,7 +2668,7 @@ fn run_BN254_MP_CHECK_BIT00_3P_2F_circuit( f_i_of_z: u384, f_i_plus_one_of_z: u384, z: u384, - ci: u384 + ci: u384, ) -> (G2Point, u384, u384) { // CONSTANT stack let in0 = CE::> {}; // -0x9 % p @@ -2748,13 +2738,13 @@ fn run_BN254_MP_CHECK_BIT00_3P_2F_circuit( let t46 = circuit_mul(t44, in3); // Doubling slope numerator end let t47 = circuit_add(in29, in29); // Fp2 add coeff 0/1 let t48 = circuit_add(in30, in30); // Fp2 add coeff 1/1 - let t49 = circuit_mul(t47, t47); // Fp2 Div x/y start : Fp2 Inv y start + let t49 = circuit_mul(t47, t47); // Fp2 Inv start let t50 = circuit_mul(t48, t48); let t51 = circuit_add(t49, t50); let t52 = circuit_inverse(t51); - let t53 = circuit_mul(t47, t52); // Fp2 Inv y real part end + let t53 = circuit_mul(t47, t52); // Fp2 Inv real part end let t54 = circuit_mul(t48, t52); - let t55 = circuit_sub(in4, t54); // Fp2 Inv y imag part end + let t55 = circuit_sub(in4, t54); // Fp2 Inv imag part end let t56 = circuit_mul(t45, t53); // Fp2 mul start let t57 = circuit_mul(t46, t55); let t58 = circuit_sub(t56, t57); // Fp2 mul real part end @@ -2806,7 +2796,7 @@ fn run_BN254_MP_CHECK_BIT00_3P_2F_circuit( let t104 = circuit_add(t102, t103); // Eval sparse poly line_2p_1 step + coeff_9 * z^9 let t105 = circuit_mul(t40, t104); // Mul (f(z)^2 * Π_0_k-1(line_k(z))) * line_i_2(z) let t106 = circuit_mul( - t105, t105 + t105, t105, ); // Compute (f^2 * Π(i,k) (line_i,k(z))) ^ 2 = f^4 * (Π(i,k) (line_i,k(z)))^2 let t107 = circuit_mul(in0, in18); let t108 = circuit_add(in17, t107); @@ -2850,13 +2840,13 @@ fn run_BN254_MP_CHECK_BIT00_3P_2F_circuit( let t146 = circuit_mul(t144, in3); // Doubling slope numerator end let t147 = circuit_add(t79, t79); // Fp2 add coeff 0/1 let t148 = circuit_add(t80, t80); // Fp2 add coeff 1/1 - let t149 = circuit_mul(t147, t147); // Fp2 Div x/y start : Fp2 Inv y start + let t149 = circuit_mul(t147, t147); // Fp2 Inv start let t150 = circuit_mul(t148, t148); let t151 = circuit_add(t149, t150); let t152 = circuit_inverse(t151); - let t153 = circuit_mul(t147, t152); // Fp2 Inv y real part end + let t153 = circuit_mul(t147, t152); // Fp2 Inv real part end let t154 = circuit_mul(t148, t152); - let t155 = circuit_sub(in4, t154); // Fp2 Inv y imag part end + let t155 = circuit_sub(in4, t154); // Fp2 Inv imag part end let t156 = circuit_mul(t145, t153); // Fp2 mul start let t157 = circuit_mul(t146, t155); let t158 = circuit_sub(t156, t157); // Fp2 mul real part end @@ -2913,11 +2903,11 @@ fn run_BN254_MP_CHECK_BIT00_3P_2F_circuit( let modulus = get_BN254_modulus(); // BN254 prime field modulus - let mut circuit_inputs = (t169, t170, t179, t180, t208, t5,).new_inputs(); + let mut circuit_inputs = (t169, t170, t179, t180, t208, t5).new_inputs(); // Prefill constants: circuit_inputs = circuit_inputs .next_2( - [0x6871ca8d3c208c16d87cfd3e, 0xb85045b68181585d97816a91, 0x30644e72e131a029, 0x0] + [0x6871ca8d3c208c16d87cfd3e, 0xb85045b68181585d97816a91, 0x30644e72e131a029, 0x0], ); // in0 circuit_inputs = circuit_inputs.next_2([0x1, 0x0, 0x0, 0x0]); // in1 circuit_inputs = circuit_inputs.next_2([0x3, 0x0, 0x0, 0x0]); // in2 @@ -2926,20 +2916,20 @@ fn run_BN254_MP_CHECK_BIT00_3P_2F_circuit( // Fill inputs: circuit_inputs = circuit_inputs.next_2(yInv_0); // in5 circuit_inputs = circuit_inputs.next_2(xNegOverY_0); // in6 - circuit_inputs = circuit_inputs.next_u288(G2_line_0.r0a0); // in7 - circuit_inputs = circuit_inputs.next_u288(G2_line_0.r0a1); // in8 - circuit_inputs = circuit_inputs.next_u288(G2_line_0.r1a0); // in9 - circuit_inputs = circuit_inputs.next_u288(G2_line_0.r1a1); // in10 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_0.r0a0); // in7 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_0.r0a1); // in8 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_0.r1a0); // in9 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_0.r1a1); // in10 circuit_inputs = circuit_inputs.next_u288(G2_line_2nd_0_0.r0a0); // in11 circuit_inputs = circuit_inputs.next_u288(G2_line_2nd_0_0.r0a1); // in12 circuit_inputs = circuit_inputs.next_u288(G2_line_2nd_0_0.r1a0); // in13 circuit_inputs = circuit_inputs.next_u288(G2_line_2nd_0_0.r1a1); // in14 circuit_inputs = circuit_inputs.next_2(yInv_1); // in15 circuit_inputs = circuit_inputs.next_2(xNegOverY_1); // in16 - circuit_inputs = circuit_inputs.next_u288(G2_line_1.r0a0); // in17 - circuit_inputs = circuit_inputs.next_u288(G2_line_1.r0a1); // in18 - circuit_inputs = circuit_inputs.next_u288(G2_line_1.r1a0); // in19 - circuit_inputs = circuit_inputs.next_u288(G2_line_1.r1a1); // in20 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_1.r0a0); // in17 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_1.r0a1); // in18 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_1.r1a0); // in19 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_1.r1a1); // in20 circuit_inputs = circuit_inputs.next_u288(G2_line_2nd_0_1.r0a0); // in21 circuit_inputs = circuit_inputs.next_u288(G2_line_2nd_0_1.r0a1); // in22 circuit_inputs = circuit_inputs.next_u288(G2_line_2nd_0_1.r1a0); // in23 @@ -2961,25 +2951,30 @@ fn run_BN254_MP_CHECK_BIT00_3P_2F_circuit( x0: outputs.get_output(t169), x1: outputs.get_output(t170), y0: outputs.get_output(t179), - y1: outputs.get_output(t180) + y1: outputs.get_output(t180), }; let lhs_i_plus_one: u384 = outputs.get_output(t208); let ci_plus_one: u384 = outputs.get_output(t5); return (Q0, lhs_i_plus_one, ci_plus_one); } #[inline(always)] -fn run_BN254_MP_CHECK_BIT0_2P_2F_circuit( +pub fn run_BN254_MP_CHECK_BIT01_2P_2F_circuit( yInv_0: u384, xNegOverY_0: u384, - G2_line_0: G2Line, + G2_line_dbl_0: G2Line, + G2_line_dbl_10: G2Line, + G2_line_add_10: G2Line, yInv_1: u384, xNegOverY_1: u384, - G2_line_1: G2Line, + G2_line_dbl_1: G2Line, + G2_line_dbl_11: G2Line, + G2_line_add_11: G2Line, lhs_i: u384, f_i_of_z: u384, f_i_plus_one_of_z: u384, + c_or_cinv_of_z: u384, z: u384, - ci: u384 + ci: u384, ) -> (u384, u384) { // CONSTANT stack let in0 = CE::> {}; // -0x9 % p @@ -2991,14 +2986,20 @@ fn run_BN254_MP_CHECK_BIT0_2P_2F_circuit( let (in8, in9, in10) = (CE::> {}, CE::> {}, CE::> {}); let (in11, in12, in13) = (CE::> {}, CE::> {}, CE::> {}); let (in14, in15, in16) = (CE::> {}, CE::> {}, CE::> {}); - let (in17, in18) = (CE::> {}, CE::> {}); - let t0 = circuit_mul(in17, in17); // compute z^2 - let t1 = circuit_mul(t0, in17); // compute z^3 + let (in17, in18, in19) = (CE::> {}, CE::> {}, CE::> {}); + let (in20, in21, in22) = (CE::> {}, CE::> {}, CE::> {}); + let (in23, in24, in25) = (CE::> {}, CE::> {}, CE::> {}); + let (in26, in27, in28) = (CE::> {}, CE::> {}, CE::> {}); + let (in29, in30, in31) = (CE::> {}, CE::> {}, CE::> {}); + let (in32, in33, in34) = (CE::> {}, CE::> {}, CE::> {}); + let in35 = CE::> {}; + let t0 = circuit_mul(in34, in34); // compute z^2 + let t1 = circuit_mul(t0, in34); // compute z^3 let t2 = circuit_mul(t1, t1); // compute z^6 - let t3 = circuit_mul(t2, in17); // compute z^7 + let t3 = circuit_mul(t2, in34); // compute z^7 let t4 = circuit_mul(t3, t0); // compute z^9 - let t5 = circuit_mul(in18, in18); // Compute c_i = (c_(i-1))^2 - let t6 = circuit_mul(in15, in15); // Square f evaluation in Z, the result of previous bit. + let t5 = circuit_mul(in35, in35); // Compute c_i = (c_(i-1))^2 + let t6 = circuit_mul(in31, in31); // Square f evaluation in Z, the result of previous bit. let t7 = circuit_mul(in0, in5); let t8 = circuit_add(in4, t7); let t9 = circuit_mul(t8, in3); // eval bn line by xNegOverY @@ -3007,7 +3008,7 @@ fn run_BN254_MP_CHECK_BIT0_2P_2F_circuit( let t12 = circuit_mul(t11, in2); // eval bn line by yInv let t13 = circuit_mul(in5, in3); // eval bn line by xNegOverY let t14 = circuit_mul(in7, in2); // eval bn line by yInv - let t15 = circuit_mul(t9, in17); // Eval sparse poly line_0p_1 step coeff_1 * z^1 + let t15 = circuit_mul(t9, in34); // Eval sparse poly line_0p_1 step coeff_1 * z^1 let t16 = circuit_add(in1, t15); // Eval sparse poly line_0p_1 step + coeff_1 * z^1 let t17 = circuit_mul(t12, t1); // Eval sparse poly line_0p_1 step coeff_3 * z^3 let t18 = circuit_add(t16, t17); // Eval sparse poly line_0p_1 step + coeff_3 * z^3 @@ -3016,15 +3017,15 @@ fn run_BN254_MP_CHECK_BIT0_2P_2F_circuit( let t21 = circuit_mul(t14, t4); // Eval sparse poly line_0p_1 step coeff_9 * z^9 let t22 = circuit_add(t20, t21); // Eval sparse poly line_0p_1 step + coeff_9 * z^9 let t23 = circuit_mul(t6, t22); // Mul (f(z)^2 * Π_0_k-1(line_k(z))) * line_i_0(z) - let t24 = circuit_mul(in0, in11); - let t25 = circuit_add(in10, t24); - let t26 = circuit_mul(t25, in9); // eval bn line by xNegOverY - let t27 = circuit_mul(in0, in13); - let t28 = circuit_add(in12, t27); - let t29 = circuit_mul(t28, in8); // eval bn line by yInv - let t30 = circuit_mul(in11, in9); // eval bn line by xNegOverY - let t31 = circuit_mul(in13, in8); // eval bn line by yInv - let t32 = circuit_mul(t26, in17); // Eval sparse poly line_1p_1 step coeff_1 * z^1 + let t24 = circuit_mul(in0, in9); + let t25 = circuit_add(in8, t24); + let t26 = circuit_mul(t25, in17); // eval bn line by xNegOverY + let t27 = circuit_mul(in0, in11); + let t28 = circuit_add(in10, t27); + let t29 = circuit_mul(t28, in16); // eval bn line by yInv + let t30 = circuit_mul(in9, in17); // eval bn line by xNegOverY + let t31 = circuit_mul(in11, in16); // eval bn line by yInv + let t32 = circuit_mul(t26, in34); // Eval sparse poly line_1p_1 step coeff_1 * z^1 let t33 = circuit_add(in1, t32); // Eval sparse poly line_1p_1 step + coeff_1 * z^1 let t34 = circuit_mul(t29, t1); // Eval sparse poly line_1p_1 step coeff_3 * z^3 let t35 = circuit_add(t33, t34); // Eval sparse poly line_1p_1 step + coeff_3 * z^3 @@ -3033,59 +3034,154 @@ fn run_BN254_MP_CHECK_BIT0_2P_2F_circuit( let t38 = circuit_mul(t31, t4); // Eval sparse poly line_1p_1 step coeff_9 * z^9 let t39 = circuit_add(t37, t38); // Eval sparse poly line_1p_1 step + coeff_9 * z^9 let t40 = circuit_mul(t23, t39); // Mul (f(z)^2 * Π_0_k-1(line_k(z))) * line_i_1(z) - let t41 = circuit_sub(t40, in16); // (Π(i,k) (Pk(z))) - Ri(z) - let t42 = circuit_mul(t5, t41); // ci * ((Π(i,k) (Pk(z)) - Ri(z)) - let t43 = circuit_add(in14, t42); // LHS = LHS + ci * ((Π(i,k) (Pk(z)) - Ri(z)) + let t41 = circuit_mul( + t40, t40, + ); // Compute (f^2 * Π(i,k) (line_i,k(z))) ^ 2 = f^4 * (Π(i,k) (line_i,k(z)))^2 + let t42 = circuit_mul(in0, in13); + let t43 = circuit_add(in12, t42); + let t44 = circuit_mul(t43, in3); // eval bn line by xNegOverY + let t45 = circuit_mul(in0, in15); + let t46 = circuit_add(in14, t45); + let t47 = circuit_mul(t46, in2); // eval bn line by yInv + let t48 = circuit_mul(in13, in3); // eval bn line by xNegOverY + let t49 = circuit_mul(in15, in2); // eval bn line by yInv + let t50 = circuit_mul(in0, in19); + let t51 = circuit_add(in18, t50); + let t52 = circuit_mul(t51, in3); // eval bn line by xNegOverY + let t53 = circuit_mul(in0, in21); + let t54 = circuit_add(in20, t53); + let t55 = circuit_mul(t54, in2); // eval bn line by yInv + let t56 = circuit_mul(in19, in3); // eval bn line by xNegOverY + let t57 = circuit_mul(in21, in2); // eval bn line by yInv + let t58 = circuit_mul(t44, in34); // Eval sparse poly line_0p_1 step coeff_1 * z^1 + let t59 = circuit_add(in1, t58); // Eval sparse poly line_0p_1 step + coeff_1 * z^1 + let t60 = circuit_mul(t47, t1); // Eval sparse poly line_0p_1 step coeff_3 * z^3 + let t61 = circuit_add(t59, t60); // Eval sparse poly line_0p_1 step + coeff_3 * z^3 + let t62 = circuit_mul(t48, t3); // Eval sparse poly line_0p_1 step coeff_7 * z^7 + let t63 = circuit_add(t61, t62); // Eval sparse poly line_0p_1 step + coeff_7 * z^7 + let t64 = circuit_mul(t49, t4); // Eval sparse poly line_0p_1 step coeff_9 * z^9 + let t65 = circuit_add(t63, t64); // Eval sparse poly line_0p_1 step + coeff_9 * z^9 + let t66 = circuit_mul(t41, t65); // Mul (f(z)^2 * Π_0_k-1(line_k(z))) * line_i_0(z) + let t67 = circuit_mul(t52, in34); // Eval sparse poly line_0p_2 step coeff_1 * z^1 + let t68 = circuit_add(in1, t67); // Eval sparse poly line_0p_2 step + coeff_1 * z^1 + let t69 = circuit_mul(t55, t1); // Eval sparse poly line_0p_2 step coeff_3 * z^3 + let t70 = circuit_add(t68, t69); // Eval sparse poly line_0p_2 step + coeff_3 * z^3 + let t71 = circuit_mul(t56, t3); // Eval sparse poly line_0p_2 step coeff_7 * z^7 + let t72 = circuit_add(t70, t71); // Eval sparse poly line_0p_2 step + coeff_7 * z^7 + let t73 = circuit_mul(t57, t4); // Eval sparse poly line_0p_2 step coeff_9 * z^9 + let t74 = circuit_add(t72, t73); // Eval sparse poly line_0p_2 step + coeff_9 * z^9 + let t75 = circuit_mul(t66, t74); // Mul (f(z)^2 * Π_0_k-1(line_k(z))) * line_i_0(z) + let t76 = circuit_mul(in0, in23); + let t77 = circuit_add(in22, t76); + let t78 = circuit_mul(t77, in17); // eval bn line by xNegOverY + let t79 = circuit_mul(in0, in25); + let t80 = circuit_add(in24, t79); + let t81 = circuit_mul(t80, in16); // eval bn line by yInv + let t82 = circuit_mul(in23, in17); // eval bn line by xNegOverY + let t83 = circuit_mul(in25, in16); // eval bn line by yInv + let t84 = circuit_mul(in0, in27); + let t85 = circuit_add(in26, t84); + let t86 = circuit_mul(t85, in17); // eval bn line by xNegOverY + let t87 = circuit_mul(in0, in29); + let t88 = circuit_add(in28, t87); + let t89 = circuit_mul(t88, in16); // eval bn line by yInv + let t90 = circuit_mul(in27, in17); // eval bn line by xNegOverY + let t91 = circuit_mul(in29, in16); // eval bn line by yInv + let t92 = circuit_mul(t78, in34); // Eval sparse poly line_1p_1 step coeff_1 * z^1 + let t93 = circuit_add(in1, t92); // Eval sparse poly line_1p_1 step + coeff_1 * z^1 + let t94 = circuit_mul(t81, t1); // Eval sparse poly line_1p_1 step coeff_3 * z^3 + let t95 = circuit_add(t93, t94); // Eval sparse poly line_1p_1 step + coeff_3 * z^3 + let t96 = circuit_mul(t82, t3); // Eval sparse poly line_1p_1 step coeff_7 * z^7 + let t97 = circuit_add(t95, t96); // Eval sparse poly line_1p_1 step + coeff_7 * z^7 + let t98 = circuit_mul(t83, t4); // Eval sparse poly line_1p_1 step coeff_9 * z^9 + let t99 = circuit_add(t97, t98); // Eval sparse poly line_1p_1 step + coeff_9 * z^9 + let t100 = circuit_mul(t75, t99); // Mul (f(z)^2 * Π_0_k-1(line_k(z))) * line_i_1(z) + let t101 = circuit_mul(t86, in34); // Eval sparse poly line_1p_2 step coeff_1 * z^1 + let t102 = circuit_add(in1, t101); // Eval sparse poly line_1p_2 step + coeff_1 * z^1 + let t103 = circuit_mul(t89, t1); // Eval sparse poly line_1p_2 step coeff_3 * z^3 + let t104 = circuit_add(t102, t103); // Eval sparse poly line_1p_2 step + coeff_3 * z^3 + let t105 = circuit_mul(t90, t3); // Eval sparse poly line_1p_2 step coeff_7 * z^7 + let t106 = circuit_add(t104, t105); // Eval sparse poly line_1p_2 step + coeff_7 * z^7 + let t107 = circuit_mul(t91, t4); // Eval sparse poly line_1p_2 step coeff_9 * z^9 + let t108 = circuit_add(t106, t107); // Eval sparse poly line_1p_2 step + coeff_9 * z^9 + let t109 = circuit_mul(t100, t108); // Mul (f(z)^2 * Π_0_k-1(line_k(z))) * line_i_1(z) + let t110 = circuit_mul(t109, in33); + let t111 = circuit_sub(t110, in32); // (Π(i,k) (Pk(z))) - Ri(z) + let t112 = circuit_mul(t5, t111); // ci * ((Π(i,k) (Pk(z)) - Ri(z)) + let t113 = circuit_add(in30, t112); // LHS = LHS + ci * ((Π(i,k) (Pk(z)) - Ri(z)) let modulus = get_BN254_modulus(); // BN254 prime field modulus - let mut circuit_inputs = (t43, t5,).new_inputs(); + let mut circuit_inputs = (t113, t5).new_inputs(); // Prefill constants: circuit_inputs = circuit_inputs .next_2( - [0x6871ca8d3c208c16d87cfd3e, 0xb85045b68181585d97816a91, 0x30644e72e131a029, 0x0] + [0x6871ca8d3c208c16d87cfd3e, 0xb85045b68181585d97816a91, 0x30644e72e131a029, 0x0], ); // in0 circuit_inputs = circuit_inputs.next_2([0x1, 0x0, 0x0, 0x0]); // in1 // Fill inputs: circuit_inputs = circuit_inputs.next_2(yInv_0); // in2 circuit_inputs = circuit_inputs.next_2(xNegOverY_0); // in3 - circuit_inputs = circuit_inputs.next_u288(G2_line_0.r0a0); // in4 - circuit_inputs = circuit_inputs.next_u288(G2_line_0.r0a1); // in5 - circuit_inputs = circuit_inputs.next_u288(G2_line_0.r1a0); // in6 - circuit_inputs = circuit_inputs.next_u288(G2_line_0.r1a1); // in7 - circuit_inputs = circuit_inputs.next_2(yInv_1); // in8 - circuit_inputs = circuit_inputs.next_2(xNegOverY_1); // in9 - circuit_inputs = circuit_inputs.next_u288(G2_line_1.r0a0); // in10 - circuit_inputs = circuit_inputs.next_u288(G2_line_1.r0a1); // in11 - circuit_inputs = circuit_inputs.next_u288(G2_line_1.r1a0); // in12 - circuit_inputs = circuit_inputs.next_u288(G2_line_1.r1a1); // in13 - circuit_inputs = circuit_inputs.next_2(lhs_i); // in14 - circuit_inputs = circuit_inputs.next_2(f_i_of_z); // in15 - circuit_inputs = circuit_inputs.next_2(f_i_plus_one_of_z); // in16 - circuit_inputs = circuit_inputs.next_2(z); // in17 - circuit_inputs = circuit_inputs.next_2(ci); // in18 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_0.r0a0); // in4 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_0.r0a1); // in5 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_0.r1a0); // in6 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_0.r1a1); // in7 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_10.r0a0); // in8 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_10.r0a1); // in9 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_10.r1a0); // in10 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_10.r1a1); // in11 + circuit_inputs = circuit_inputs.next_u288(G2_line_add_10.r0a0); // in12 + circuit_inputs = circuit_inputs.next_u288(G2_line_add_10.r0a1); // in13 + circuit_inputs = circuit_inputs.next_u288(G2_line_add_10.r1a0); // in14 + circuit_inputs = circuit_inputs.next_u288(G2_line_add_10.r1a1); // in15 + circuit_inputs = circuit_inputs.next_2(yInv_1); // in16 + circuit_inputs = circuit_inputs.next_2(xNegOverY_1); // in17 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_1.r0a0); // in18 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_1.r0a1); // in19 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_1.r1a0); // in20 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_1.r1a1); // in21 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_11.r0a0); // in22 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_11.r0a1); // in23 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_11.r1a0); // in24 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_11.r1a1); // in25 + circuit_inputs = circuit_inputs.next_u288(G2_line_add_11.r0a0); // in26 + circuit_inputs = circuit_inputs.next_u288(G2_line_add_11.r0a1); // in27 + circuit_inputs = circuit_inputs.next_u288(G2_line_add_11.r1a0); // in28 + circuit_inputs = circuit_inputs.next_u288(G2_line_add_11.r1a1); // in29 + circuit_inputs = circuit_inputs.next_2(lhs_i); // in30 + circuit_inputs = circuit_inputs.next_2(f_i_of_z); // in31 + circuit_inputs = circuit_inputs.next_2(f_i_plus_one_of_z); // in32 + circuit_inputs = circuit_inputs.next_2(c_or_cinv_of_z); // in33 + circuit_inputs = circuit_inputs.next_2(z); // in34 + circuit_inputs = circuit_inputs.next_2(ci); // in35 let outputs = circuit_inputs.done_2().eval(modulus).unwrap(); - let lhs_i_plus_one: u384 = outputs.get_output(t43); + let lhs_i_plus_one: u384 = outputs.get_output(t113); let ci_plus_one: u384 = outputs.get_output(t5); return (lhs_i_plus_one, ci_plus_one); } #[inline(always)] -fn run_BN254_MP_CHECK_BIT0_3P_2F_circuit( +pub fn run_BN254_MP_CHECK_BIT01_3P_2F_circuit( yInv_0: u384, xNegOverY_0: u384, - G2_line_0: G2Line, + G2_line_dbl_0: G2Line, + G2_line_dbl_10: G2Line, + G2_line_add_10: G2Line, yInv_1: u384, xNegOverY_1: u384, - G2_line_1: G2Line, + G2_line_dbl_1: G2Line, + G2_line_dbl_11: G2Line, + G2_line_add_11: G2Line, yInv_2: u384, xNegOverY_2: u384, Q_2: G2Point, + Q_or_Q_neg_2: G2Point, lhs_i: u384, f_i_of_z: u384, f_i_plus_one_of_z: u384, + c_or_cinv_of_z: u384, z: u384, - ci: u384 + ci: u384, ) -> (G2Point, u384, u384) { // CONSTANT stack let in0 = CE::> {}; // -0x9 % p @@ -3102,14 +3198,21 @@ fn run_BN254_MP_CHECK_BIT0_3P_2F_circuit( let (in17, in18, in19) = (CE::> {}, CE::> {}, CE::> {}); let (in20, in21, in22) = (CE::> {}, CE::> {}, CE::> {}); let (in23, in24, in25) = (CE::> {}, CE::> {}, CE::> {}); - let (in26, in27) = (CE::> {}, CE::> {}); - let t0 = circuit_mul(in26, in26); // compute z^2 - let t1 = circuit_mul(t0, in26); // compute z^3 + let (in26, in27, in28) = (CE::> {}, CE::> {}, CE::> {}); + let (in29, in30, in31) = (CE::> {}, CE::> {}, CE::> {}); + let (in32, in33, in34) = (CE::> {}, CE::> {}, CE::> {}); + let (in35, in36, in37) = (CE::> {}, CE::> {}, CE::> {}); + let (in38, in39, in40) = (CE::> {}, CE::> {}, CE::> {}); + let (in41, in42, in43) = (CE::> {}, CE::> {}, CE::> {}); + let (in44, in45, in46) = (CE::> {}, CE::> {}, CE::> {}); + let (in47, in48) = (CE::> {}, CE::> {}); + let t0 = circuit_mul(in47, in47); // compute z^2 + let t1 = circuit_mul(t0, in47); // compute z^3 let t2 = circuit_mul(t1, t1); // compute z^6 - let t3 = circuit_mul(t2, in26); // compute z^7 + let t3 = circuit_mul(t2, in47); // compute z^7 let t4 = circuit_mul(t3, t0); // compute z^9 - let t5 = circuit_mul(in27, in27); // Compute c_i = (c_(i-1))^2 - let t6 = circuit_mul(in24, in24); // Square f evaluation in Z, the result of previous bit. + let t5 = circuit_mul(in48, in48); // Compute c_i = (c_(i-1))^2 + let t6 = circuit_mul(in44, in44); // Square f evaluation in Z, the result of previous bit. let t7 = circuit_mul(in0, in8); let t8 = circuit_add(in7, t7); let t9 = circuit_mul(t8, in6); // eval bn line by xNegOverY @@ -3118,7 +3221,7 @@ fn run_BN254_MP_CHECK_BIT0_3P_2F_circuit( let t12 = circuit_mul(t11, in5); // eval bn line by yInv let t13 = circuit_mul(in8, in6); // eval bn line by xNegOverY let t14 = circuit_mul(in10, in5); // eval bn line by yInv - let t15 = circuit_mul(t9, in26); // Eval sparse poly line_0p_1 step coeff_1 * z^1 + let t15 = circuit_mul(t9, in47); // Eval sparse poly line_0p_1 step coeff_1 * z^1 let t16 = circuit_add(in1, t15); // Eval sparse poly line_0p_1 step + coeff_1 * z^1 let t17 = circuit_mul(t12, t1); // Eval sparse poly line_0p_1 step coeff_3 * z^3 let t18 = circuit_add(t16, t17); // Eval sparse poly line_0p_1 step + coeff_3 * z^3 @@ -3127,15 +3230,15 @@ fn run_BN254_MP_CHECK_BIT0_3P_2F_circuit( let t21 = circuit_mul(t14, t4); // Eval sparse poly line_0p_1 step coeff_9 * z^9 let t22 = circuit_add(t20, t21); // Eval sparse poly line_0p_1 step + coeff_9 * z^9 let t23 = circuit_mul(t6, t22); // Mul (f(z)^2 * Π_0_k-1(line_k(z))) * line_i_0(z) - let t24 = circuit_mul(in0, in14); - let t25 = circuit_add(in13, t24); - let t26 = circuit_mul(t25, in12); // eval bn line by xNegOverY - let t27 = circuit_mul(in0, in16); - let t28 = circuit_add(in15, t27); - let t29 = circuit_mul(t28, in11); // eval bn line by yInv - let t30 = circuit_mul(in14, in12); // eval bn line by xNegOverY - let t31 = circuit_mul(in16, in11); // eval bn line by yInv - let t32 = circuit_mul(t26, in26); // Eval sparse poly line_1p_1 step coeff_1 * z^1 + let t24 = circuit_mul(in0, in12); + let t25 = circuit_add(in11, t24); + let t26 = circuit_mul(t25, in20); // eval bn line by xNegOverY + let t27 = circuit_mul(in0, in14); + let t28 = circuit_add(in13, t27); + let t29 = circuit_mul(t28, in19); // eval bn line by yInv + let t30 = circuit_mul(in12, in20); // eval bn line by xNegOverY + let t31 = circuit_mul(in14, in19); // eval bn line by yInv + let t32 = circuit_mul(t26, in47); // Eval sparse poly line_1p_1 step coeff_1 * z^1 let t33 = circuit_add(in1, t32); // Eval sparse poly line_1p_1 step + coeff_1 * z^1 let t34 = circuit_mul(t29, t1); // Eval sparse poly line_1p_1 step coeff_3 * z^3 let t35 = circuit_add(t33, t34); // Eval sparse poly line_1p_1 step + coeff_3 * z^3 @@ -3144,21 +3247,21 @@ fn run_BN254_MP_CHECK_BIT0_3P_2F_circuit( let t38 = circuit_mul(t31, t4); // Eval sparse poly line_1p_1 step coeff_9 * z^9 let t39 = circuit_add(t37, t38); // Eval sparse poly line_1p_1 step + coeff_9 * z^9 let t40 = circuit_mul(t23, t39); // Mul (f(z)^2 * Π_0_k-1(line_k(z))) * line_i_1(z) - let t41 = circuit_add(in19, in20); // Doubling slope numerator start - let t42 = circuit_sub(in19, in20); + let t41 = circuit_add(in35, in36); // Doubling slope numerator start + let t42 = circuit_sub(in35, in36); let t43 = circuit_mul(t41, t42); - let t44 = circuit_mul(in19, in20); + let t44 = circuit_mul(in35, in36); let t45 = circuit_mul(t43, in2); let t46 = circuit_mul(t44, in3); // Doubling slope numerator end - let t47 = circuit_add(in21, in21); // Fp2 add coeff 0/1 - let t48 = circuit_add(in22, in22); // Fp2 add coeff 1/1 - let t49 = circuit_mul(t47, t47); // Fp2 Div x/y start : Fp2 Inv y start + let t47 = circuit_add(in37, in37); // Fp2 add coeff 0/1 + let t48 = circuit_add(in38, in38); // Fp2 add coeff 1/1 + let t49 = circuit_mul(t47, t47); // Fp2 Inv start let t50 = circuit_mul(t48, t48); let t51 = circuit_add(t49, t50); let t52 = circuit_inverse(t51); - let t53 = circuit_mul(t47, t52); // Fp2 Inv y real part end + let t53 = circuit_mul(t47, t52); // Fp2 Inv real part end let t54 = circuit_mul(t48, t52); - let t55 = circuit_sub(in4, t54); // Fp2 Inv y imag part end + let t55 = circuit_sub(in4, t54); // Fp2 Inv imag part end let t56 = circuit_mul(t45, t53); // Fp2 mul start let t57 = circuit_mul(t46, t55); let t58 = circuit_sub(t56, t57); // Fp2 mul real part end @@ -3170,37 +3273,37 @@ fn run_BN254_MP_CHECK_BIT0_3P_2F_circuit( let t64 = circuit_mul(t62, t63); let t65 = circuit_mul(t58, t61); let t66 = circuit_add(t65, t65); - let t67 = circuit_add(in19, in19); // Fp2 add coeff 0/1 - let t68 = circuit_add(in20, in20); // Fp2 add coeff 1/1 + let t67 = circuit_add(in35, in35); // Fp2 add coeff 0/1 + let t68 = circuit_add(in36, in36); // Fp2 add coeff 1/1 let t69 = circuit_sub(t64, t67); // Fp2 sub coeff 0/1 let t70 = circuit_sub(t66, t68); // Fp2 sub coeff 1/1 - let t71 = circuit_sub(in19, t69); // Fp2 sub coeff 0/1 - let t72 = circuit_sub(in20, t70); // Fp2 sub coeff 1/1 + let t71 = circuit_sub(in35, t69); // Fp2 sub coeff 0/1 + let t72 = circuit_sub(in36, t70); // Fp2 sub coeff 1/1 let t73 = circuit_mul(t58, t71); // Fp2 mul start let t74 = circuit_mul(t61, t72); let t75 = circuit_sub(t73, t74); // Fp2 mul real part end let t76 = circuit_mul(t58, t72); let t77 = circuit_mul(t61, t71); let t78 = circuit_add(t76, t77); // Fp2 mul imag part end - let t79 = circuit_sub(t75, in21); // Fp2 sub coeff 0/1 - let t80 = circuit_sub(t78, in22); // Fp2 sub coeff 1/1 - let t81 = circuit_mul(t58, in19); // Fp2 mul start - let t82 = circuit_mul(t61, in20); + let t79 = circuit_sub(t75, in37); // Fp2 sub coeff 0/1 + let t80 = circuit_sub(t78, in38); // Fp2 sub coeff 1/1 + let t81 = circuit_mul(t58, in35); // Fp2 mul start + let t82 = circuit_mul(t61, in36); let t83 = circuit_sub(t81, t82); // Fp2 mul real part end - let t84 = circuit_mul(t58, in20); - let t85 = circuit_mul(t61, in19); + let t84 = circuit_mul(t58, in36); + let t85 = circuit_mul(t61, in35); let t86 = circuit_add(t84, t85); // Fp2 mul imag part end - let t87 = circuit_sub(t83, in21); // Fp2 sub coeff 0/1 - let t88 = circuit_sub(t86, in22); // Fp2 sub coeff 1/1 + let t87 = circuit_sub(t83, in37); // Fp2 sub coeff 0/1 + let t88 = circuit_sub(t86, in38); // Fp2 sub coeff 1/1 let t89 = circuit_mul(in0, t61); let t90 = circuit_add(t58, t89); - let t91 = circuit_mul(t90, in18); // eval bn line by xNegOverY + let t91 = circuit_mul(t90, in34); // eval bn line by xNegOverY let t92 = circuit_mul(in0, t88); let t93 = circuit_add(t87, t92); - let t94 = circuit_mul(t93, in17); // eval bn line by yInv - let t95 = circuit_mul(t61, in18); // eval bn line by xNegOverY - let t96 = circuit_mul(t88, in17); // eval bn line by yInv - let t97 = circuit_mul(t91, in26); // Eval sparse poly line_2p_1 step coeff_1 * z^1 + let t94 = circuit_mul(t93, in33); // eval bn line by yInv + let t95 = circuit_mul(t61, in34); // eval bn line by xNegOverY + let t96 = circuit_mul(t88, in33); // eval bn line by yInv + let t97 = circuit_mul(t91, in47); // Eval sparse poly line_2p_1 step coeff_1 * z^1 let t98 = circuit_add(in1, t97); // Eval sparse poly line_2p_1 step + coeff_1 * z^1 let t99 = circuit_mul(t94, t1); // Eval sparse poly line_2p_1 step coeff_3 * z^3 let t100 = circuit_add(t98, t99); // Eval sparse poly line_2p_1 step + coeff_3 * z^3 @@ -3209,17 +3312,205 @@ fn run_BN254_MP_CHECK_BIT0_3P_2F_circuit( let t103 = circuit_mul(t96, t4); // Eval sparse poly line_2p_1 step coeff_9 * z^9 let t104 = circuit_add(t102, t103); // Eval sparse poly line_2p_1 step + coeff_9 * z^9 let t105 = circuit_mul(t40, t104); // Mul (f(z)^2 * Π_0_k-1(line_k(z))) * line_i_2(z) - let t106 = circuit_sub(t105, in25); // (Π(i,k) (Pk(z))) - Ri(z) - let t107 = circuit_mul(t5, t106); // ci * ((Π(i,k) (Pk(z)) - Ri(z)) - let t108 = circuit_add(in23, t107); // LHS = LHS + ci * ((Π(i,k) (Pk(z)) - Ri(z)) + let t106 = circuit_mul( + t105, t105, + ); // Compute (f^2 * Π(i,k) (line_i,k(z))) ^ 2 = f^4 * (Π(i,k) (line_i,k(z)))^2 + let t107 = circuit_mul(in0, in16); + let t108 = circuit_add(in15, t107); + let t109 = circuit_mul(t108, in6); // eval bn line by xNegOverY + let t110 = circuit_mul(in0, in18); + let t111 = circuit_add(in17, t110); + let t112 = circuit_mul(t111, in5); // eval bn line by yInv + let t113 = circuit_mul(in16, in6); // eval bn line by xNegOverY + let t114 = circuit_mul(in18, in5); // eval bn line by yInv + let t115 = circuit_mul(in0, in22); + let t116 = circuit_add(in21, t115); + let t117 = circuit_mul(t116, in6); // eval bn line by xNegOverY + let t118 = circuit_mul(in0, in24); + let t119 = circuit_add(in23, t118); + let t120 = circuit_mul(t119, in5); // eval bn line by yInv + let t121 = circuit_mul(in22, in6); // eval bn line by xNegOverY + let t122 = circuit_mul(in24, in5); // eval bn line by yInv + let t123 = circuit_mul(t109, in47); // Eval sparse poly line_0p_1 step coeff_1 * z^1 + let t124 = circuit_add(in1, t123); // Eval sparse poly line_0p_1 step + coeff_1 * z^1 + let t125 = circuit_mul(t112, t1); // Eval sparse poly line_0p_1 step coeff_3 * z^3 + let t126 = circuit_add(t124, t125); // Eval sparse poly line_0p_1 step + coeff_3 * z^3 + let t127 = circuit_mul(t113, t3); // Eval sparse poly line_0p_1 step coeff_7 * z^7 + let t128 = circuit_add(t126, t127); // Eval sparse poly line_0p_1 step + coeff_7 * z^7 + let t129 = circuit_mul(t114, t4); // Eval sparse poly line_0p_1 step coeff_9 * z^9 + let t130 = circuit_add(t128, t129); // Eval sparse poly line_0p_1 step + coeff_9 * z^9 + let t131 = circuit_mul(t106, t130); // Mul (f(z)^2 * Π_0_k-1(line_k(z))) * line_i_0(z) + let t132 = circuit_mul(t117, in47); // Eval sparse poly line_0p_2 step coeff_1 * z^1 + let t133 = circuit_add(in1, t132); // Eval sparse poly line_0p_2 step + coeff_1 * z^1 + let t134 = circuit_mul(t120, t1); // Eval sparse poly line_0p_2 step coeff_3 * z^3 + let t135 = circuit_add(t133, t134); // Eval sparse poly line_0p_2 step + coeff_3 * z^3 + let t136 = circuit_mul(t121, t3); // Eval sparse poly line_0p_2 step coeff_7 * z^7 + let t137 = circuit_add(t135, t136); // Eval sparse poly line_0p_2 step + coeff_7 * z^7 + let t138 = circuit_mul(t122, t4); // Eval sparse poly line_0p_2 step coeff_9 * z^9 + let t139 = circuit_add(t137, t138); // Eval sparse poly line_0p_2 step + coeff_9 * z^9 + let t140 = circuit_mul(t131, t139); // Mul (f(z)^2 * Π_0_k-1(line_k(z))) * line_i_0(z) + let t141 = circuit_mul(in0, in26); + let t142 = circuit_add(in25, t141); + let t143 = circuit_mul(t142, in20); // eval bn line by xNegOverY + let t144 = circuit_mul(in0, in28); + let t145 = circuit_add(in27, t144); + let t146 = circuit_mul(t145, in19); // eval bn line by yInv + let t147 = circuit_mul(in26, in20); // eval bn line by xNegOverY + let t148 = circuit_mul(in28, in19); // eval bn line by yInv + let t149 = circuit_mul(in0, in30); + let t150 = circuit_add(in29, t149); + let t151 = circuit_mul(t150, in20); // eval bn line by xNegOverY + let t152 = circuit_mul(in0, in32); + let t153 = circuit_add(in31, t152); + let t154 = circuit_mul(t153, in19); // eval bn line by yInv + let t155 = circuit_mul(in30, in20); // eval bn line by xNegOverY + let t156 = circuit_mul(in32, in19); // eval bn line by yInv + let t157 = circuit_mul(t143, in47); // Eval sparse poly line_1p_1 step coeff_1 * z^1 + let t158 = circuit_add(in1, t157); // Eval sparse poly line_1p_1 step + coeff_1 * z^1 + let t159 = circuit_mul(t146, t1); // Eval sparse poly line_1p_1 step coeff_3 * z^3 + let t160 = circuit_add(t158, t159); // Eval sparse poly line_1p_1 step + coeff_3 * z^3 + let t161 = circuit_mul(t147, t3); // Eval sparse poly line_1p_1 step coeff_7 * z^7 + let t162 = circuit_add(t160, t161); // Eval sparse poly line_1p_1 step + coeff_7 * z^7 + let t163 = circuit_mul(t148, t4); // Eval sparse poly line_1p_1 step coeff_9 * z^9 + let t164 = circuit_add(t162, t163); // Eval sparse poly line_1p_1 step + coeff_9 * z^9 + let t165 = circuit_mul(t140, t164); // Mul (f(z)^2 * Π_0_k-1(line_k(z))) * line_i_1(z) + let t166 = circuit_mul(t151, in47); // Eval sparse poly line_1p_2 step coeff_1 * z^1 + let t167 = circuit_add(in1, t166); // Eval sparse poly line_1p_2 step + coeff_1 * z^1 + let t168 = circuit_mul(t154, t1); // Eval sparse poly line_1p_2 step coeff_3 * z^3 + let t169 = circuit_add(t167, t168); // Eval sparse poly line_1p_2 step + coeff_3 * z^3 + let t170 = circuit_mul(t155, t3); // Eval sparse poly line_1p_2 step coeff_7 * z^7 + let t171 = circuit_add(t169, t170); // Eval sparse poly line_1p_2 step + coeff_7 * z^7 + let t172 = circuit_mul(t156, t4); // Eval sparse poly line_1p_2 step coeff_9 * z^9 + let t173 = circuit_add(t171, t172); // Eval sparse poly line_1p_2 step + coeff_9 * z^9 + let t174 = circuit_mul(t165, t173); // Mul (f(z)^2 * Π_0_k-1(line_k(z))) * line_i_1(z) + let t175 = circuit_sub(t79, in41); // Fp2 sub coeff 0/1 + let t176 = circuit_sub(t80, in42); // Fp2 sub coeff 1/1 + let t177 = circuit_sub(t69, in39); // Fp2 sub coeff 0/1 + let t178 = circuit_sub(t70, in40); // Fp2 sub coeff 1/1 + let t179 = circuit_mul(t177, t177); // Fp2 Inv start + let t180 = circuit_mul(t178, t178); + let t181 = circuit_add(t179, t180); + let t182 = circuit_inverse(t181); + let t183 = circuit_mul(t177, t182); // Fp2 Inv real part end + let t184 = circuit_mul(t178, t182); + let t185 = circuit_sub(in4, t184); // Fp2 Inv imag part end + let t186 = circuit_mul(t175, t183); // Fp2 mul start + let t187 = circuit_mul(t176, t185); + let t188 = circuit_sub(t186, t187); // Fp2 mul real part end + let t189 = circuit_mul(t175, t185); + let t190 = circuit_mul(t176, t183); + let t191 = circuit_add(t189, t190); // Fp2 mul imag part end + let t192 = circuit_add(t188, t191); + let t193 = circuit_sub(t188, t191); + let t194 = circuit_mul(t192, t193); + let t195 = circuit_mul(t188, t191); + let t196 = circuit_add(t195, t195); + let t197 = circuit_add(t69, in39); // Fp2 add coeff 0/1 + let t198 = circuit_add(t70, in40); // Fp2 add coeff 1/1 + let t199 = circuit_sub(t194, t197); // Fp2 sub coeff 0/1 + let t200 = circuit_sub(t196, t198); // Fp2 sub coeff 1/1 + let t201 = circuit_mul(t188, t69); // Fp2 mul start + let t202 = circuit_mul(t191, t70); + let t203 = circuit_sub(t201, t202); // Fp2 mul real part end + let t204 = circuit_mul(t188, t70); + let t205 = circuit_mul(t191, t69); + let t206 = circuit_add(t204, t205); // Fp2 mul imag part end + let t207 = circuit_sub(t203, t79); // Fp2 sub coeff 0/1 + let t208 = circuit_sub(t206, t80); // Fp2 sub coeff 1/1 + let t209 = circuit_add(t79, t79); // Fp2 add coeff 0/1 + let t210 = circuit_add(t80, t80); // Fp2 add coeff 1/1 + let t211 = circuit_sub(t199, t69); // Fp2 sub coeff 0/1 + let t212 = circuit_sub(t200, t70); // Fp2 sub coeff 1/1 + let t213 = circuit_mul(t211, t211); // Fp2 Inv start + let t214 = circuit_mul(t212, t212); + let t215 = circuit_add(t213, t214); + let t216 = circuit_inverse(t215); + let t217 = circuit_mul(t211, t216); // Fp2 Inv real part end + let t218 = circuit_mul(t212, t216); + let t219 = circuit_sub(in4, t218); // Fp2 Inv imag part end + let t220 = circuit_mul(t209, t217); // Fp2 mul start + let t221 = circuit_mul(t210, t219); + let t222 = circuit_sub(t220, t221); // Fp2 mul real part end + let t223 = circuit_mul(t209, t219); + let t224 = circuit_mul(t210, t217); + let t225 = circuit_add(t223, t224); // Fp2 mul imag part end + let t226 = circuit_add(t188, t222); // Fp2 add coeff 0/1 + let t227 = circuit_add(t191, t225); // Fp2 add coeff 1/1 + let t228 = circuit_sub(in4, t226); // Fp2 neg coeff 0/1 + let t229 = circuit_sub(in4, t227); // Fp2 neg coeff 1/1 + let t230 = circuit_add(t228, t229); + let t231 = circuit_sub(t228, t229); + let t232 = circuit_mul(t230, t231); + let t233 = circuit_mul(t228, t229); + let t234 = circuit_add(t233, t233); + let t235 = circuit_sub(t232, t69); // Fp2 sub coeff 0/1 + let t236 = circuit_sub(t234, t70); // Fp2 sub coeff 1/1 + let t237 = circuit_sub(t235, t199); // Fp2 sub coeff 0/1 + let t238 = circuit_sub(t236, t200); // Fp2 sub coeff 1/1 + let t239 = circuit_sub(t69, t237); // Fp2 sub coeff 0/1 + let t240 = circuit_sub(t70, t238); // Fp2 sub coeff 1/1 + let t241 = circuit_mul(t228, t239); // Fp2 mul start + let t242 = circuit_mul(t229, t240); + let t243 = circuit_sub(t241, t242); // Fp2 mul real part end + let t244 = circuit_mul(t228, t240); + let t245 = circuit_mul(t229, t239); + let t246 = circuit_add(t244, t245); // Fp2 mul imag part end + let t247 = circuit_sub(t243, t79); // Fp2 sub coeff 0/1 + let t248 = circuit_sub(t246, t80); // Fp2 sub coeff 1/1 + let t249 = circuit_mul(t228, t69); // Fp2 mul start + let t250 = circuit_mul(t229, t70); + let t251 = circuit_sub(t249, t250); // Fp2 mul real part end + let t252 = circuit_mul(t228, t70); + let t253 = circuit_mul(t229, t69); + let t254 = circuit_add(t252, t253); // Fp2 mul imag part end + let t255 = circuit_sub(t251, t79); // Fp2 sub coeff 0/1 + let t256 = circuit_sub(t254, t80); // Fp2 sub coeff 1/1 + let t257 = circuit_mul(in0, t191); + let t258 = circuit_add(t188, t257); + let t259 = circuit_mul(t258, in34); // eval bn line by xNegOverY + let t260 = circuit_mul(in0, t208); + let t261 = circuit_add(t207, t260); + let t262 = circuit_mul(t261, in33); // eval bn line by yInv + let t263 = circuit_mul(t191, in34); // eval bn line by xNegOverY + let t264 = circuit_mul(t208, in33); // eval bn line by yInv + let t265 = circuit_mul(in0, t229); + let t266 = circuit_add(t228, t265); + let t267 = circuit_mul(t266, in34); // eval bn line by xNegOverY + let t268 = circuit_mul(in0, t256); + let t269 = circuit_add(t255, t268); + let t270 = circuit_mul(t269, in33); // eval bn line by yInv + let t271 = circuit_mul(t229, in34); // eval bn line by xNegOverY + let t272 = circuit_mul(t256, in33); // eval bn line by yInv + let t273 = circuit_mul(t259, in47); // Eval sparse poly line_2p_1 step coeff_1 * z^1 + let t274 = circuit_add(in1, t273); // Eval sparse poly line_2p_1 step + coeff_1 * z^1 + let t275 = circuit_mul(t262, t1); // Eval sparse poly line_2p_1 step coeff_3 * z^3 + let t276 = circuit_add(t274, t275); // Eval sparse poly line_2p_1 step + coeff_3 * z^3 + let t277 = circuit_mul(t263, t3); // Eval sparse poly line_2p_1 step coeff_7 * z^7 + let t278 = circuit_add(t276, t277); // Eval sparse poly line_2p_1 step + coeff_7 * z^7 + let t279 = circuit_mul(t264, t4); // Eval sparse poly line_2p_1 step coeff_9 * z^9 + let t280 = circuit_add(t278, t279); // Eval sparse poly line_2p_1 step + coeff_9 * z^9 + let t281 = circuit_mul(t174, t280); // Mul (f(z)^2 * Π_0_k-1(line_k(z))) * line_i_2(z) + let t282 = circuit_mul(t267, in47); // Eval sparse poly line_2p_2 step coeff_1 * z^1 + let t283 = circuit_add(in1, t282); // Eval sparse poly line_2p_2 step + coeff_1 * z^1 + let t284 = circuit_mul(t270, t1); // Eval sparse poly line_2p_2 step coeff_3 * z^3 + let t285 = circuit_add(t283, t284); // Eval sparse poly line_2p_2 step + coeff_3 * z^3 + let t286 = circuit_mul(t271, t3); // Eval sparse poly line_2p_2 step coeff_7 * z^7 + let t287 = circuit_add(t285, t286); // Eval sparse poly line_2p_2 step + coeff_7 * z^7 + let t288 = circuit_mul(t272, t4); // Eval sparse poly line_2p_2 step coeff_9 * z^9 + let t289 = circuit_add(t287, t288); // Eval sparse poly line_2p_2 step + coeff_9 * z^9 + let t290 = circuit_mul(t281, t289); // Mul (f(z)^2 * Π_0_k-1(line_k(z))) * line_i_2(z) + let t291 = circuit_mul(t290, in46); + let t292 = circuit_sub(t291, in45); // (Π(i,k) (Pk(z))) - Ri(z) + let t293 = circuit_mul(t5, t292); // ci * ((Π(i,k) (Pk(z)) - Ri(z)) + let t294 = circuit_add(in43, t293); // LHS = LHS + ci * ((Π(i,k) (Pk(z)) - Ri(z)) let modulus = get_BN254_modulus(); // BN254 prime field modulus - let mut circuit_inputs = (t69, t70, t79, t80, t108, t5,).new_inputs(); + let mut circuit_inputs = (t237, t238, t247, t248, t294, t5).new_inputs(); // Prefill constants: circuit_inputs = circuit_inputs .next_2( - [0x6871ca8d3c208c16d87cfd3e, 0xb85045b68181585d97816a91, 0x30644e72e131a029, 0x0] + [0x6871ca8d3c208c16d87cfd3e, 0xb85045b68181585d97816a91, 0x30644e72e131a029, 0x0], ); // in0 circuit_inputs = circuit_inputs.next_2([0x1, 0x0, 0x0, 0x0]); // in1 circuit_inputs = circuit_inputs.next_2([0x3, 0x0, 0x0, 0x0]); // in2 @@ -3228,55 +3519,78 @@ fn run_BN254_MP_CHECK_BIT0_3P_2F_circuit( // Fill inputs: circuit_inputs = circuit_inputs.next_2(yInv_0); // in5 circuit_inputs = circuit_inputs.next_2(xNegOverY_0); // in6 - circuit_inputs = circuit_inputs.next_u288(G2_line_0.r0a0); // in7 - circuit_inputs = circuit_inputs.next_u288(G2_line_0.r0a1); // in8 - circuit_inputs = circuit_inputs.next_u288(G2_line_0.r1a0); // in9 - circuit_inputs = circuit_inputs.next_u288(G2_line_0.r1a1); // in10 - circuit_inputs = circuit_inputs.next_2(yInv_1); // in11 - circuit_inputs = circuit_inputs.next_2(xNegOverY_1); // in12 - circuit_inputs = circuit_inputs.next_u288(G2_line_1.r0a0); // in13 - circuit_inputs = circuit_inputs.next_u288(G2_line_1.r0a1); // in14 - circuit_inputs = circuit_inputs.next_u288(G2_line_1.r1a0); // in15 - circuit_inputs = circuit_inputs.next_u288(G2_line_1.r1a1); // in16 - circuit_inputs = circuit_inputs.next_2(yInv_2); // in17 - circuit_inputs = circuit_inputs.next_2(xNegOverY_2); // in18 - circuit_inputs = circuit_inputs.next_2(Q_2.x0); // in19 - circuit_inputs = circuit_inputs.next_2(Q_2.x1); // in20 - circuit_inputs = circuit_inputs.next_2(Q_2.y0); // in21 - circuit_inputs = circuit_inputs.next_2(Q_2.y1); // in22 - circuit_inputs = circuit_inputs.next_2(lhs_i); // in23 - circuit_inputs = circuit_inputs.next_2(f_i_of_z); // in24 - circuit_inputs = circuit_inputs.next_2(f_i_plus_one_of_z); // in25 - circuit_inputs = circuit_inputs.next_2(z); // in26 - circuit_inputs = circuit_inputs.next_2(ci); // in27 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_0.r0a0); // in7 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_0.r0a1); // in8 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_0.r1a0); // in9 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_0.r1a1); // in10 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_10.r0a0); // in11 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_10.r0a1); // in12 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_10.r1a0); // in13 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_10.r1a1); // in14 + circuit_inputs = circuit_inputs.next_u288(G2_line_add_10.r0a0); // in15 + circuit_inputs = circuit_inputs.next_u288(G2_line_add_10.r0a1); // in16 + circuit_inputs = circuit_inputs.next_u288(G2_line_add_10.r1a0); // in17 + circuit_inputs = circuit_inputs.next_u288(G2_line_add_10.r1a1); // in18 + circuit_inputs = circuit_inputs.next_2(yInv_1); // in19 + circuit_inputs = circuit_inputs.next_2(xNegOverY_1); // in20 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_1.r0a0); // in21 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_1.r0a1); // in22 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_1.r1a0); // in23 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_1.r1a1); // in24 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_11.r0a0); // in25 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_11.r0a1); // in26 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_11.r1a0); // in27 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_11.r1a1); // in28 + circuit_inputs = circuit_inputs.next_u288(G2_line_add_11.r0a0); // in29 + circuit_inputs = circuit_inputs.next_u288(G2_line_add_11.r0a1); // in30 + circuit_inputs = circuit_inputs.next_u288(G2_line_add_11.r1a0); // in31 + circuit_inputs = circuit_inputs.next_u288(G2_line_add_11.r1a1); // in32 + circuit_inputs = circuit_inputs.next_2(yInv_2); // in33 + circuit_inputs = circuit_inputs.next_2(xNegOverY_2); // in34 + circuit_inputs = circuit_inputs.next_2(Q_2.x0); // in35 + circuit_inputs = circuit_inputs.next_2(Q_2.x1); // in36 + circuit_inputs = circuit_inputs.next_2(Q_2.y0); // in37 + circuit_inputs = circuit_inputs.next_2(Q_2.y1); // in38 + circuit_inputs = circuit_inputs.next_2(Q_or_Q_neg_2.x0); // in39 + circuit_inputs = circuit_inputs.next_2(Q_or_Q_neg_2.x1); // in40 + circuit_inputs = circuit_inputs.next_2(Q_or_Q_neg_2.y0); // in41 + circuit_inputs = circuit_inputs.next_2(Q_or_Q_neg_2.y1); // in42 + circuit_inputs = circuit_inputs.next_2(lhs_i); // in43 + circuit_inputs = circuit_inputs.next_2(f_i_of_z); // in44 + circuit_inputs = circuit_inputs.next_2(f_i_plus_one_of_z); // in45 + circuit_inputs = circuit_inputs.next_2(c_or_cinv_of_z); // in46 + circuit_inputs = circuit_inputs.next_2(z); // in47 + circuit_inputs = circuit_inputs.next_2(ci); // in48 let outputs = circuit_inputs.done_2().eval(modulus).unwrap(); let Q0: G2Point = G2Point { - x0: outputs.get_output(t69), - x1: outputs.get_output(t70), - y0: outputs.get_output(t79), - y1: outputs.get_output(t80) + x0: outputs.get_output(t237), + x1: outputs.get_output(t238), + y0: outputs.get_output(t247), + y1: outputs.get_output(t248), }; - let lhs_i_plus_one: u384 = outputs.get_output(t108); + let lhs_i_plus_one: u384 = outputs.get_output(t294); let ci_plus_one: u384 = outputs.get_output(t5); return (Q0, lhs_i_plus_one, ci_plus_one); } #[inline(always)] -fn run_BN254_MP_CHECK_BIT1_2P_2F_circuit( +pub fn run_BN254_MP_CHECK_BIT10_2P_2F_circuit( yInv_0: u384, xNegOverY_0: u384, - G2_line_0: G2Line, - Q_or_Q_neg_line0: G2Line, + G2_line_dbl_0: G2Line, + G2_line_add_1_0: G2Line, + G2_line_dbl_0_0: G2Line, yInv_1: u384, xNegOverY_1: u384, - G2_line_1: G2Line, - Q_or_Q_neg_line1: G2Line, + G2_line_dbl_1: G2Line, + G2_line_add_1_1: G2Line, + G2_line_dbl_0_1: G2Line, lhs_i: u384, f_i_of_z: u384, f_i_plus_one_of_z: u384, c_or_cinv_of_z: u384, z: u384, - ci: u384 + ci: u384, ) -> (u384, u384) { // CONSTANT stack let in0 = CE::> {}; // -0x9 % p @@ -3291,14 +3605,17 @@ fn run_BN254_MP_CHECK_BIT1_2P_2F_circuit( let (in17, in18, in19) = (CE::> {}, CE::> {}, CE::> {}); let (in20, in21, in22) = (CE::> {}, CE::> {}, CE::> {}); let (in23, in24, in25) = (CE::> {}, CE::> {}, CE::> {}); - let (in26, in27) = (CE::> {}, CE::> {}); - let t0 = circuit_mul(in26, in26); // compute z^2 - let t1 = circuit_mul(t0, in26); // compute z^3 + let (in26, in27, in28) = (CE::> {}, CE::> {}, CE::> {}); + let (in29, in30, in31) = (CE::> {}, CE::> {}, CE::> {}); + let (in32, in33, in34) = (CE::> {}, CE::> {}, CE::> {}); + let in35 = CE::> {}; + let t0 = circuit_mul(in34, in34); // compute z^2 + let t1 = circuit_mul(t0, in34); // compute z^3 let t2 = circuit_mul(t1, t1); // compute z^6 - let t3 = circuit_mul(t2, in26); // compute z^7 + let t3 = circuit_mul(t2, in34); // compute z^7 let t4 = circuit_mul(t3, t0); // compute z^9 - let t5 = circuit_mul(in27, in27); // Compute c_i = (c_(i-1))^2 - let t6 = circuit_mul(in23, in23); // Square f evaluation in Z, the result of previous bit. + let t5 = circuit_mul(in35, in35); // Compute c_i = (c_(i-1))^2 + let t6 = circuit_mul(in31, in31); // Square f evaluation in Z, the result of previous bit. let t7 = circuit_mul(in0, in5); let t8 = circuit_add(in4, t7); let t9 = circuit_mul(t8, in3); // eval bn line by xNegOverY @@ -3315,7 +3632,7 @@ fn run_BN254_MP_CHECK_BIT1_2P_2F_circuit( let t20 = circuit_mul(t19, in2); // eval bn line by yInv let t21 = circuit_mul(in9, in3); // eval bn line by xNegOverY let t22 = circuit_mul(in11, in2); // eval bn line by yInv - let t23 = circuit_mul(t9, in26); // Eval sparse poly line_0p_1 step coeff_1 * z^1 + let t23 = circuit_mul(t9, in34); // Eval sparse poly line_0p_1 step coeff_1 * z^1 let t24 = circuit_add(in1, t23); // Eval sparse poly line_0p_1 step + coeff_1 * z^1 let t25 = circuit_mul(t12, t1); // Eval sparse poly line_0p_1 step coeff_3 * z^3 let t26 = circuit_add(t24, t25); // Eval sparse poly line_0p_1 step + coeff_3 * z^3 @@ -3324,7 +3641,7 @@ fn run_BN254_MP_CHECK_BIT1_2P_2F_circuit( let t29 = circuit_mul(t14, t4); // Eval sparse poly line_0p_1 step coeff_9 * z^9 let t30 = circuit_add(t28, t29); // Eval sparse poly line_0p_1 step + coeff_9 * z^9 let t31 = circuit_mul(t6, t30); // Mul (f(z)^2 * Π_0_k-1(line_k(z))) * line_i_0(z) - let t32 = circuit_mul(t17, in26); // Eval sparse poly line_0p_2 step coeff_1 * z^1 + let t32 = circuit_mul(t17, in34); // Eval sparse poly line_0p_2 step coeff_1 * z^1 let t33 = circuit_add(in1, t32); // Eval sparse poly line_0p_2 step + coeff_1 * z^1 let t34 = circuit_mul(t20, t1); // Eval sparse poly line_0p_2 step coeff_3 * z^3 let t35 = circuit_add(t33, t34); // Eval sparse poly line_0p_2 step + coeff_3 * z^3 @@ -3333,23 +3650,23 @@ fn run_BN254_MP_CHECK_BIT1_2P_2F_circuit( let t38 = circuit_mul(t22, t4); // Eval sparse poly line_0p_2 step coeff_9 * z^9 let t39 = circuit_add(t37, t38); // Eval sparse poly line_0p_2 step + coeff_9 * z^9 let t40 = circuit_mul(t31, t39); // Mul (f(z)^2 * Π_0_k-1(line_k(z))) * line_i_0(z) - let t41 = circuit_mul(in0, in15); - let t42 = circuit_add(in14, t41); - let t43 = circuit_mul(t42, in13); // eval bn line by xNegOverY - let t44 = circuit_mul(in0, in17); - let t45 = circuit_add(in16, t44); - let t46 = circuit_mul(t45, in12); // eval bn line by yInv - let t47 = circuit_mul(in15, in13); // eval bn line by xNegOverY - let t48 = circuit_mul(in17, in12); // eval bn line by yInv + let t41 = circuit_mul(in0, in13); + let t42 = circuit_add(in12, t41); + let t43 = circuit_mul(t42, in17); // eval bn line by xNegOverY + let t44 = circuit_mul(in0, in15); + let t45 = circuit_add(in14, t44); + let t46 = circuit_mul(t45, in16); // eval bn line by yInv + let t47 = circuit_mul(in13, in17); // eval bn line by xNegOverY + let t48 = circuit_mul(in15, in16); // eval bn line by yInv let t49 = circuit_mul(in0, in19); let t50 = circuit_add(in18, t49); - let t51 = circuit_mul(t50, in13); // eval bn line by xNegOverY + let t51 = circuit_mul(t50, in17); // eval bn line by xNegOverY let t52 = circuit_mul(in0, in21); let t53 = circuit_add(in20, t52); - let t54 = circuit_mul(t53, in12); // eval bn line by yInv - let t55 = circuit_mul(in19, in13); // eval bn line by xNegOverY - let t56 = circuit_mul(in21, in12); // eval bn line by yInv - let t57 = circuit_mul(t43, in26); // Eval sparse poly line_1p_1 step coeff_1 * z^1 + let t54 = circuit_mul(t53, in16); // eval bn line by yInv + let t55 = circuit_mul(in19, in17); // eval bn line by xNegOverY + let t56 = circuit_mul(in21, in16); // eval bn line by yInv + let t57 = circuit_mul(t43, in34); // Eval sparse poly line_1p_1 step coeff_1 * z^1 let t58 = circuit_add(in1, t57); // Eval sparse poly line_1p_1 step + coeff_1 * z^1 let t59 = circuit_mul(t46, t1); // Eval sparse poly line_1p_1 step coeff_3 * z^3 let t60 = circuit_add(t58, t59); // Eval sparse poly line_1p_1 step + coeff_3 * z^3 @@ -3358,7 +3675,7 @@ fn run_BN254_MP_CHECK_BIT1_2P_2F_circuit( let t63 = circuit_mul(t48, t4); // Eval sparse poly line_1p_1 step coeff_9 * z^9 let t64 = circuit_add(t62, t63); // Eval sparse poly line_1p_1 step + coeff_9 * z^9 let t65 = circuit_mul(t40, t64); // Mul (f(z)^2 * Π_0_k-1(line_k(z))) * line_i_1(z) - let t66 = circuit_mul(t51, in26); // Eval sparse poly line_1p_2 step coeff_1 * z^1 + let t66 = circuit_mul(t51, in34); // Eval sparse poly line_1p_2 step coeff_1 * z^1 let t67 = circuit_add(in1, t66); // Eval sparse poly line_1p_2 step + coeff_1 * z^1 let t68 = circuit_mul(t54, t1); // Eval sparse poly line_1p_2 step coeff_3 * z^3 let t69 = circuit_add(t67, t68); // Eval sparse poly line_1p_2 step + coeff_3 * z^3 @@ -3367,63 +3684,111 @@ fn run_BN254_MP_CHECK_BIT1_2P_2F_circuit( let t72 = circuit_mul(t56, t4); // Eval sparse poly line_1p_2 step coeff_9 * z^9 let t73 = circuit_add(t71, t72); // Eval sparse poly line_1p_2 step + coeff_9 * z^9 let t74 = circuit_mul(t65, t73); // Mul (f(z)^2 * Π_0_k-1(line_k(z))) * line_i_1(z) - let t75 = circuit_mul(t74, in25); - let t76 = circuit_sub(t75, in24); // (Π(i,k) (Pk(z))) - Ri(z) - let t77 = circuit_mul(t5, t76); // ci * ((Π(i,k) (Pk(z)) - Ri(z)) - let t78 = circuit_add(in22, t77); // LHS = LHS + ci * ((Π(i,k) (Pk(z)) - Ri(z)) + let t75 = circuit_mul( + t74, t74, + ); // Compute (f^2 * Π(i,k) (line_i,k(z))) ^ 2 = f^4 * (Π(i,k) (line_i,k(z)))^2 + let t76 = circuit_mul(in0, in23); + let t77 = circuit_add(in22, t76); + let t78 = circuit_mul(t77, in3); // eval bn line by xNegOverY + let t79 = circuit_mul(in0, in25); + let t80 = circuit_add(in24, t79); + let t81 = circuit_mul(t80, in2); // eval bn line by yInv + let t82 = circuit_mul(in23, in3); // eval bn line by xNegOverY + let t83 = circuit_mul(in25, in2); // eval bn line by yInv + let t84 = circuit_mul(t78, in34); // Eval sparse poly line_0p_1 step coeff_1 * z^1 + let t85 = circuit_add(in1, t84); // Eval sparse poly line_0p_1 step + coeff_1 * z^1 + let t86 = circuit_mul(t81, t1); // Eval sparse poly line_0p_1 step coeff_3 * z^3 + let t87 = circuit_add(t85, t86); // Eval sparse poly line_0p_1 step + coeff_3 * z^3 + let t88 = circuit_mul(t82, t3); // Eval sparse poly line_0p_1 step coeff_7 * z^7 + let t89 = circuit_add(t87, t88); // Eval sparse poly line_0p_1 step + coeff_7 * z^7 + let t90 = circuit_mul(t83, t4); // Eval sparse poly line_0p_1 step coeff_9 * z^9 + let t91 = circuit_add(t89, t90); // Eval sparse poly line_0p_1 step + coeff_9 * z^9 + let t92 = circuit_mul(t75, t91); // Mul (f(z)^2 * Π_0_k-1(line_k(z))) * line_i_0(z) + let t93 = circuit_mul(in0, in27); + let t94 = circuit_add(in26, t93); + let t95 = circuit_mul(t94, in17); // eval bn line by xNegOverY + let t96 = circuit_mul(in0, in29); + let t97 = circuit_add(in28, t96); + let t98 = circuit_mul(t97, in16); // eval bn line by yInv + let t99 = circuit_mul(in27, in17); // eval bn line by xNegOverY + let t100 = circuit_mul(in29, in16); // eval bn line by yInv + let t101 = circuit_mul(t95, in34); // Eval sparse poly line_1p_1 step coeff_1 * z^1 + let t102 = circuit_add(in1, t101); // Eval sparse poly line_1p_1 step + coeff_1 * z^1 + let t103 = circuit_mul(t98, t1); // Eval sparse poly line_1p_1 step coeff_3 * z^3 + let t104 = circuit_add(t102, t103); // Eval sparse poly line_1p_1 step + coeff_3 * z^3 + let t105 = circuit_mul(t99, t3); // Eval sparse poly line_1p_1 step coeff_7 * z^7 + let t106 = circuit_add(t104, t105); // Eval sparse poly line_1p_1 step + coeff_7 * z^7 + let t107 = circuit_mul(t100, t4); // Eval sparse poly line_1p_1 step coeff_9 * z^9 + let t108 = circuit_add(t106, t107); // Eval sparse poly line_1p_1 step + coeff_9 * z^9 + let t109 = circuit_mul(t92, t108); // Mul (f(z)^2 * Π_0_k-1(line_k(z))) * line_i_1(z) + let t110 = circuit_mul(in33, in33); + let t111 = circuit_mul(t109, t110); + let t112 = circuit_sub(t111, in32); // (Π(i,k) (Pk(z))) - Ri(z) + let t113 = circuit_mul(t5, t112); // ci * ((Π(i,k) (Pk(z)) - Ri(z)) + let t114 = circuit_add(in30, t113); // LHS = LHS + ci * ((Π(i,k) (Pk(z)) - Ri(z)) let modulus = get_BN254_modulus(); // BN254 prime field modulus - let mut circuit_inputs = (t78, t5,).new_inputs(); + let mut circuit_inputs = (t114, t5).new_inputs(); // Prefill constants: circuit_inputs = circuit_inputs .next_2( - [0x6871ca8d3c208c16d87cfd3e, 0xb85045b68181585d97816a91, 0x30644e72e131a029, 0x0] + [0x6871ca8d3c208c16d87cfd3e, 0xb85045b68181585d97816a91, 0x30644e72e131a029, 0x0], ); // in0 circuit_inputs = circuit_inputs.next_2([0x1, 0x0, 0x0, 0x0]); // in1 // Fill inputs: circuit_inputs = circuit_inputs.next_2(yInv_0); // in2 circuit_inputs = circuit_inputs.next_2(xNegOverY_0); // in3 - circuit_inputs = circuit_inputs.next_u288(G2_line_0.r0a0); // in4 - circuit_inputs = circuit_inputs.next_u288(G2_line_0.r0a1); // in5 - circuit_inputs = circuit_inputs.next_u288(G2_line_0.r1a0); // in6 - circuit_inputs = circuit_inputs.next_u288(G2_line_0.r1a1); // in7 - circuit_inputs = circuit_inputs.next_u288(Q_or_Q_neg_line0.r0a0); // in8 - circuit_inputs = circuit_inputs.next_u288(Q_or_Q_neg_line0.r0a1); // in9 - circuit_inputs = circuit_inputs.next_u288(Q_or_Q_neg_line0.r1a0); // in10 - circuit_inputs = circuit_inputs.next_u288(Q_or_Q_neg_line0.r1a1); // in11 - circuit_inputs = circuit_inputs.next_2(yInv_1); // in12 - circuit_inputs = circuit_inputs.next_2(xNegOverY_1); // in13 - circuit_inputs = circuit_inputs.next_u288(G2_line_1.r0a0); // in14 - circuit_inputs = circuit_inputs.next_u288(G2_line_1.r0a1); // in15 - circuit_inputs = circuit_inputs.next_u288(G2_line_1.r1a0); // in16 - circuit_inputs = circuit_inputs.next_u288(G2_line_1.r1a1); // in17 - circuit_inputs = circuit_inputs.next_u288(Q_or_Q_neg_line1.r0a0); // in18 - circuit_inputs = circuit_inputs.next_u288(Q_or_Q_neg_line1.r0a1); // in19 - circuit_inputs = circuit_inputs.next_u288(Q_or_Q_neg_line1.r1a0); // in20 - circuit_inputs = circuit_inputs.next_u288(Q_or_Q_neg_line1.r1a1); // in21 - circuit_inputs = circuit_inputs.next_2(lhs_i); // in22 - circuit_inputs = circuit_inputs.next_2(f_i_of_z); // in23 - circuit_inputs = circuit_inputs.next_2(f_i_plus_one_of_z); // in24 - circuit_inputs = circuit_inputs.next_2(c_or_cinv_of_z); // in25 - circuit_inputs = circuit_inputs.next_2(z); // in26 - circuit_inputs = circuit_inputs.next_2(ci); // in27 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_0.r0a0); // in4 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_0.r0a1); // in5 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_0.r1a0); // in6 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_0.r1a1); // in7 + circuit_inputs = circuit_inputs.next_u288(G2_line_add_1_0.r0a0); // in8 + circuit_inputs = circuit_inputs.next_u288(G2_line_add_1_0.r0a1); // in9 + circuit_inputs = circuit_inputs.next_u288(G2_line_add_1_0.r1a0); // in10 + circuit_inputs = circuit_inputs.next_u288(G2_line_add_1_0.r1a1); // in11 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_0_0.r0a0); // in12 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_0_0.r0a1); // in13 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_0_0.r1a0); // in14 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_0_0.r1a1); // in15 + circuit_inputs = circuit_inputs.next_2(yInv_1); // in16 + circuit_inputs = circuit_inputs.next_2(xNegOverY_1); // in17 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_1.r0a0); // in18 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_1.r0a1); // in19 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_1.r1a0); // in20 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_1.r1a1); // in21 + circuit_inputs = circuit_inputs.next_u288(G2_line_add_1_1.r0a0); // in22 + circuit_inputs = circuit_inputs.next_u288(G2_line_add_1_1.r0a1); // in23 + circuit_inputs = circuit_inputs.next_u288(G2_line_add_1_1.r1a0); // in24 + circuit_inputs = circuit_inputs.next_u288(G2_line_add_1_1.r1a1); // in25 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_0_1.r0a0); // in26 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_0_1.r0a1); // in27 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_0_1.r1a0); // in28 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_0_1.r1a1); // in29 + circuit_inputs = circuit_inputs.next_2(lhs_i); // in30 + circuit_inputs = circuit_inputs.next_2(f_i_of_z); // in31 + circuit_inputs = circuit_inputs.next_2(f_i_plus_one_of_z); // in32 + circuit_inputs = circuit_inputs.next_2(c_or_cinv_of_z); // in33 + circuit_inputs = circuit_inputs.next_2(z); // in34 + circuit_inputs = circuit_inputs.next_2(ci); // in35 let outputs = circuit_inputs.done_2().eval(modulus).unwrap(); - let lhs_i_plus_one: u384 = outputs.get_output(t78); + let lhs_i_plus_one: u384 = outputs.get_output(t114); let ci_plus_one: u384 = outputs.get_output(t5); return (lhs_i_plus_one, ci_plus_one); } #[inline(always)] -fn run_BN254_MP_CHECK_BIT1_3P_2F_circuit( +pub fn run_BN254_MP_CHECK_BIT10_3P_2F_circuit( yInv_0: u384, xNegOverY_0: u384, - G2_line_0: G2Line, - Q_or_Q_neg_line0: G2Line, + G2_line_dbl_0: G2Line, + G2_line_add_1_0: G2Line, + G2_line_dbl_0_0: G2Line, yInv_1: u384, xNegOverY_1: u384, - G2_line_1: G2Line, - Q_or_Q_neg_line1: G2Line, + G2_line_dbl_1: G2Line, + G2_line_add_1_1: G2Line, + G2_line_dbl_0_1: G2Line, yInv_2: u384, xNegOverY_2: u384, Q_2: G2Point, @@ -3433,50 +3798,55 @@ fn run_BN254_MP_CHECK_BIT1_3P_2F_circuit( f_i_plus_one_of_z: u384, c_or_cinv_of_z: u384, z: u384, - ci: u384 + ci: u384, ) -> (G2Point, u384, u384) { // CONSTANT stack let in0 = CE::> {}; // -0x9 % p let in1 = CE::> {}; // 0x1 let in2 = CE::> {}; // 0x0 + let in3 = CE::> {}; // 0x3 + let in4 = CE::> {}; // 0x6 // INPUT stack - let (in3, in4, in5) = (CE::> {}, CE::> {}, CE::> {}); - let (in6, in7, in8) = (CE::> {}, CE::> {}, CE::> {}); - let (in9, in10, in11) = (CE::> {}, CE::> {}, CE::> {}); - let (in12, in13, in14) = (CE::> {}, CE::> {}, CE::> {}); - let (in15, in16, in17) = (CE::> {}, CE::> {}, CE::> {}); - let (in18, in19, in20) = (CE::> {}, CE::> {}, CE::> {}); - let (in21, in22, in23) = (CE::> {}, CE::> {}, CE::> {}); - let (in24, in25, in26) = (CE::> {}, CE::> {}, CE::> {}); - let (in27, in28, in29) = (CE::> {}, CE::> {}, CE::> {}); - let (in30, in31, in32) = (CE::> {}, CE::> {}, CE::> {}); - let (in33, in34, in35) = (CE::> {}, CE::> {}, CE::> {}); - let (in36, in37, in38) = (CE::> {}, CE::> {}, CE::> {}); - let t0 = circuit_mul(in37, in37); // compute z^2 - let t1 = circuit_mul(t0, in37); // compute z^3 + let (in5, in6, in7) = (CE::> {}, CE::> {}, CE::> {}); + let (in8, in9, in10) = (CE::> {}, CE::> {}, CE::> {}); + let (in11, in12, in13) = (CE::> {}, CE::> {}, CE::> {}); + let (in14, in15, in16) = (CE::> {}, CE::> {}, CE::> {}); + let (in17, in18, in19) = (CE::> {}, CE::> {}, CE::> {}); + let (in20, in21, in22) = (CE::> {}, CE::> {}, CE::> {}); + let (in23, in24, in25) = (CE::> {}, CE::> {}, CE::> {}); + let (in26, in27, in28) = (CE::> {}, CE::> {}, CE::> {}); + let (in29, in30, in31) = (CE::> {}, CE::> {}, CE::> {}); + let (in32, in33, in34) = (CE::> {}, CE::> {}, CE::> {}); + let (in35, in36, in37) = (CE::> {}, CE::> {}, CE::> {}); + let (in38, in39, in40) = (CE::> {}, CE::> {}, CE::> {}); + let (in41, in42, in43) = (CE::> {}, CE::> {}, CE::> {}); + let (in44, in45, in46) = (CE::> {}, CE::> {}, CE::> {}); + let (in47, in48) = (CE::> {}, CE::> {}); + let t0 = circuit_mul(in47, in47); // compute z^2 + let t1 = circuit_mul(t0, in47); // compute z^3 let t2 = circuit_mul(t1, t1); // compute z^6 - let t3 = circuit_mul(t2, in37); // compute z^7 + let t3 = circuit_mul(t2, in47); // compute z^7 let t4 = circuit_mul(t3, t0); // compute z^9 - let t5 = circuit_mul(in38, in38); // Compute c_i = (c_(i-1))^2 - let t6 = circuit_mul(in34, in34); // Square f evaluation in Z, the result of previous bit. - let t7 = circuit_mul(in0, in6); - let t8 = circuit_add(in5, t7); - let t9 = circuit_mul(t8, in4); // eval bn line by xNegOverY - let t10 = circuit_mul(in0, in8); - let t11 = circuit_add(in7, t10); - let t12 = circuit_mul(t11, in3); // eval bn line by yInv - let t13 = circuit_mul(in6, in4); // eval bn line by xNegOverY - let t14 = circuit_mul(in8, in3); // eval bn line by yInv - let t15 = circuit_mul(in0, in10); - let t16 = circuit_add(in9, t15); - let t17 = circuit_mul(t16, in4); // eval bn line by xNegOverY - let t18 = circuit_mul(in0, in12); - let t19 = circuit_add(in11, t18); - let t20 = circuit_mul(t19, in3); // eval bn line by yInv - let t21 = circuit_mul(in10, in4); // eval bn line by xNegOverY - let t22 = circuit_mul(in12, in3); // eval bn line by yInv - let t23 = circuit_mul(t9, in37); // Eval sparse poly line_0p_1 step coeff_1 * z^1 + let t5 = circuit_mul(in48, in48); // Compute c_i = (c_(i-1))^2 + let t6 = circuit_mul(in44, in44); // Square f evaluation in Z, the result of previous bit. + let t7 = circuit_mul(in0, in8); + let t8 = circuit_add(in7, t7); + let t9 = circuit_mul(t8, in6); // eval bn line by xNegOverY + let t10 = circuit_mul(in0, in10); + let t11 = circuit_add(in9, t10); + let t12 = circuit_mul(t11, in5); // eval bn line by yInv + let t13 = circuit_mul(in8, in6); // eval bn line by xNegOverY + let t14 = circuit_mul(in10, in5); // eval bn line by yInv + let t15 = circuit_mul(in0, in12); + let t16 = circuit_add(in11, t15); + let t17 = circuit_mul(t16, in6); // eval bn line by xNegOverY + let t18 = circuit_mul(in0, in14); + let t19 = circuit_add(in13, t18); + let t20 = circuit_mul(t19, in5); // eval bn line by yInv + let t21 = circuit_mul(in12, in6); // eval bn line by xNegOverY + let t22 = circuit_mul(in14, in5); // eval bn line by yInv + let t23 = circuit_mul(t9, in47); // Eval sparse poly line_0p_1 step coeff_1 * z^1 let t24 = circuit_add(in1, t23); // Eval sparse poly line_0p_1 step + coeff_1 * z^1 let t25 = circuit_mul(t12, t1); // Eval sparse poly line_0p_1 step coeff_3 * z^3 let t26 = circuit_add(t24, t25); // Eval sparse poly line_0p_1 step + coeff_3 * z^3 @@ -3485,7 +3855,7 @@ fn run_BN254_MP_CHECK_BIT1_3P_2F_circuit( let t29 = circuit_mul(t14, t4); // Eval sparse poly line_0p_1 step coeff_9 * z^9 let t30 = circuit_add(t28, t29); // Eval sparse poly line_0p_1 step + coeff_9 * z^9 let t31 = circuit_mul(t6, t30); // Mul (f(z)^2 * Π_0_k-1(line_k(z))) * line_i_0(z) - let t32 = circuit_mul(t17, in37); // Eval sparse poly line_0p_2 step coeff_1 * z^1 + let t32 = circuit_mul(t17, in47); // Eval sparse poly line_0p_2 step coeff_1 * z^1 let t33 = circuit_add(in1, t32); // Eval sparse poly line_0p_2 step + coeff_1 * z^1 let t34 = circuit_mul(t20, t1); // Eval sparse poly line_0p_2 step coeff_3 * z^3 let t35 = circuit_add(t33, t34); // Eval sparse poly line_0p_2 step + coeff_3 * z^3 @@ -3496,21 +3866,21 @@ fn run_BN254_MP_CHECK_BIT1_3P_2F_circuit( let t40 = circuit_mul(t31, t39); // Mul (f(z)^2 * Π_0_k-1(line_k(z))) * line_i_0(z) let t41 = circuit_mul(in0, in16); let t42 = circuit_add(in15, t41); - let t43 = circuit_mul(t42, in14); // eval bn line by xNegOverY + let t43 = circuit_mul(t42, in20); // eval bn line by xNegOverY let t44 = circuit_mul(in0, in18); let t45 = circuit_add(in17, t44); - let t46 = circuit_mul(t45, in13); // eval bn line by yInv - let t47 = circuit_mul(in16, in14); // eval bn line by xNegOverY - let t48 = circuit_mul(in18, in13); // eval bn line by yInv - let t49 = circuit_mul(in0, in20); - let t50 = circuit_add(in19, t49); - let t51 = circuit_mul(t50, in14); // eval bn line by xNegOverY - let t52 = circuit_mul(in0, in22); - let t53 = circuit_add(in21, t52); - let t54 = circuit_mul(t53, in13); // eval bn line by yInv - let t55 = circuit_mul(in20, in14); // eval bn line by xNegOverY - let t56 = circuit_mul(in22, in13); // eval bn line by yInv - let t57 = circuit_mul(t43, in37); // Eval sparse poly line_1p_1 step coeff_1 * z^1 + let t46 = circuit_mul(t45, in19); // eval bn line by yInv + let t47 = circuit_mul(in16, in20); // eval bn line by xNegOverY + let t48 = circuit_mul(in18, in19); // eval bn line by yInv + let t49 = circuit_mul(in0, in22); + let t50 = circuit_add(in21, t49); + let t51 = circuit_mul(t50, in20); // eval bn line by xNegOverY + let t52 = circuit_mul(in0, in24); + let t53 = circuit_add(in23, t52); + let t54 = circuit_mul(t53, in19); // eval bn line by yInv + let t55 = circuit_mul(in22, in20); // eval bn line by xNegOverY + let t56 = circuit_mul(in24, in19); // eval bn line by yInv + let t57 = circuit_mul(t43, in47); // Eval sparse poly line_1p_1 step coeff_1 * z^1 let t58 = circuit_add(in1, t57); // Eval sparse poly line_1p_1 step + coeff_1 * z^1 let t59 = circuit_mul(t46, t1); // Eval sparse poly line_1p_1 step coeff_3 * z^3 let t60 = circuit_add(t58, t59); // Eval sparse poly line_1p_1 step + coeff_3 * z^3 @@ -3519,7 +3889,7 @@ fn run_BN254_MP_CHECK_BIT1_3P_2F_circuit( let t63 = circuit_mul(t48, t4); // Eval sparse poly line_1p_1 step coeff_9 * z^9 let t64 = circuit_add(t62, t63); // Eval sparse poly line_1p_1 step + coeff_9 * z^9 let t65 = circuit_mul(t40, t64); // Mul (f(z)^2 * Π_0_k-1(line_k(z))) * line_i_1(z) - let t66 = circuit_mul(t51, in37); // Eval sparse poly line_1p_2 step coeff_1 * z^1 + let t66 = circuit_mul(t51, in47); // Eval sparse poly line_1p_2 step coeff_1 * z^1 let t67 = circuit_add(in1, t66); // Eval sparse poly line_1p_2 step + coeff_1 * z^1 let t68 = circuit_mul(t54, t1); // Eval sparse poly line_1p_2 step coeff_3 * z^3 let t69 = circuit_add(t67, t68); // Eval sparse poly line_1p_2 step + coeff_3 * z^3 @@ -3528,17 +3898,17 @@ fn run_BN254_MP_CHECK_BIT1_3P_2F_circuit( let t72 = circuit_mul(t56, t4); // Eval sparse poly line_1p_2 step coeff_9 * z^9 let t73 = circuit_add(t71, t72); // Eval sparse poly line_1p_2 step + coeff_9 * z^9 let t74 = circuit_mul(t65, t73); // Mul (f(z)^2 * Π_0_k-1(line_k(z))) * line_i_1(z) - let t75 = circuit_sub(in27, in31); // Fp2 sub coeff 0/1 - let t76 = circuit_sub(in28, in32); // Fp2 sub coeff 1/1 - let t77 = circuit_sub(in25, in29); // Fp2 sub coeff 0/1 - let t78 = circuit_sub(in26, in30); // Fp2 sub coeff 1/1 - let t79 = circuit_mul(t77, t77); // Fp2 Div x/y start : Fp2 Inv y start + let t75 = circuit_sub(in37, in41); // Fp2 sub coeff 0/1 + let t76 = circuit_sub(in38, in42); // Fp2 sub coeff 1/1 + let t77 = circuit_sub(in35, in39); // Fp2 sub coeff 0/1 + let t78 = circuit_sub(in36, in40); // Fp2 sub coeff 1/1 + let t79 = circuit_mul(t77, t77); // Fp2 Inv start let t80 = circuit_mul(t78, t78); let t81 = circuit_add(t79, t80); let t82 = circuit_inverse(t81); - let t83 = circuit_mul(t77, t82); // Fp2 Inv y real part end + let t83 = circuit_mul(t77, t82); // Fp2 Inv real part end let t84 = circuit_mul(t78, t82); - let t85 = circuit_sub(in2, t84); // Fp2 Inv y imag part end + let t85 = circuit_sub(in2, t84); // Fp2 Inv imag part end let t86 = circuit_mul(t75, t83); // Fp2 mul start let t87 = circuit_mul(t76, t85); let t88 = circuit_sub(t86, t87); // Fp2 mul real part end @@ -3550,29 +3920,29 @@ fn run_BN254_MP_CHECK_BIT1_3P_2F_circuit( let t94 = circuit_mul(t92, t93); let t95 = circuit_mul(t88, t91); let t96 = circuit_add(t95, t95); - let t97 = circuit_add(in25, in29); // Fp2 add coeff 0/1 - let t98 = circuit_add(in26, in30); // Fp2 add coeff 1/1 + let t97 = circuit_add(in35, in39); // Fp2 add coeff 0/1 + let t98 = circuit_add(in36, in40); // Fp2 add coeff 1/1 let t99 = circuit_sub(t94, t97); // Fp2 sub coeff 0/1 let t100 = circuit_sub(t96, t98); // Fp2 sub coeff 1/1 - let t101 = circuit_mul(t88, in25); // Fp2 mul start - let t102 = circuit_mul(t91, in26); + let t101 = circuit_mul(t88, in35); // Fp2 mul start + let t102 = circuit_mul(t91, in36); let t103 = circuit_sub(t101, t102); // Fp2 mul real part end - let t104 = circuit_mul(t88, in26); - let t105 = circuit_mul(t91, in25); + let t104 = circuit_mul(t88, in36); + let t105 = circuit_mul(t91, in35); let t106 = circuit_add(t104, t105); // Fp2 mul imag part end - let t107 = circuit_sub(t103, in27); // Fp2 sub coeff 0/1 - let t108 = circuit_sub(t106, in28); // Fp2 sub coeff 1/1 - let t109 = circuit_add(in27, in27); // Fp2 add coeff 0/1 - let t110 = circuit_add(in28, in28); // Fp2 add coeff 1/1 - let t111 = circuit_sub(t99, in25); // Fp2 sub coeff 0/1 - let t112 = circuit_sub(t100, in26); // Fp2 sub coeff 1/1 - let t113 = circuit_mul(t111, t111); // Fp2 Div x/y start : Fp2 Inv y start + let t107 = circuit_sub(t103, in37); // Fp2 sub coeff 0/1 + let t108 = circuit_sub(t106, in38); // Fp2 sub coeff 1/1 + let t109 = circuit_add(in37, in37); // Fp2 add coeff 0/1 + let t110 = circuit_add(in38, in38); // Fp2 add coeff 1/1 + let t111 = circuit_sub(t99, in35); // Fp2 sub coeff 0/1 + let t112 = circuit_sub(t100, in36); // Fp2 sub coeff 1/1 + let t113 = circuit_mul(t111, t111); // Fp2 Inv start let t114 = circuit_mul(t112, t112); let t115 = circuit_add(t113, t114); let t116 = circuit_inverse(t115); - let t117 = circuit_mul(t111, t116); // Fp2 Inv y real part end + let t117 = circuit_mul(t111, t116); // Fp2 Inv real part end let t118 = circuit_mul(t112, t116); - let t119 = circuit_sub(in2, t118); // Fp2 Inv y imag part end + let t119 = circuit_sub(in2, t118); // Fp2 Inv imag part end let t120 = circuit_mul(t109, t117); // Fp2 mul start let t121 = circuit_mul(t110, t119); let t122 = circuit_sub(t120, t121); // Fp2 mul real part end @@ -3588,45 +3958,45 @@ fn run_BN254_MP_CHECK_BIT1_3P_2F_circuit( let t132 = circuit_mul(t130, t131); let t133 = circuit_mul(t128, t129); let t134 = circuit_add(t133, t133); - let t135 = circuit_sub(t132, in25); // Fp2 sub coeff 0/1 - let t136 = circuit_sub(t134, in26); // Fp2 sub coeff 1/1 + let t135 = circuit_sub(t132, in35); // Fp2 sub coeff 0/1 + let t136 = circuit_sub(t134, in36); // Fp2 sub coeff 1/1 let t137 = circuit_sub(t135, t99); // Fp2 sub coeff 0/1 let t138 = circuit_sub(t136, t100); // Fp2 sub coeff 1/1 - let t139 = circuit_sub(in25, t137); // Fp2 sub coeff 0/1 - let t140 = circuit_sub(in26, t138); // Fp2 sub coeff 1/1 + let t139 = circuit_sub(in35, t137); // Fp2 sub coeff 0/1 + let t140 = circuit_sub(in36, t138); // Fp2 sub coeff 1/1 let t141 = circuit_mul(t128, t139); // Fp2 mul start let t142 = circuit_mul(t129, t140); let t143 = circuit_sub(t141, t142); // Fp2 mul real part end let t144 = circuit_mul(t128, t140); let t145 = circuit_mul(t129, t139); let t146 = circuit_add(t144, t145); // Fp2 mul imag part end - let t147 = circuit_sub(t143, in27); // Fp2 sub coeff 0/1 - let t148 = circuit_sub(t146, in28); // Fp2 sub coeff 1/1 - let t149 = circuit_mul(t128, in25); // Fp2 mul start - let t150 = circuit_mul(t129, in26); + let t147 = circuit_sub(t143, in37); // Fp2 sub coeff 0/1 + let t148 = circuit_sub(t146, in38); // Fp2 sub coeff 1/1 + let t149 = circuit_mul(t128, in35); // Fp2 mul start + let t150 = circuit_mul(t129, in36); let t151 = circuit_sub(t149, t150); // Fp2 mul real part end - let t152 = circuit_mul(t128, in26); - let t153 = circuit_mul(t129, in25); + let t152 = circuit_mul(t128, in36); + let t153 = circuit_mul(t129, in35); let t154 = circuit_add(t152, t153); // Fp2 mul imag part end - let t155 = circuit_sub(t151, in27); // Fp2 sub coeff 0/1 - let t156 = circuit_sub(t154, in28); // Fp2 sub coeff 1/1 + let t155 = circuit_sub(t151, in37); // Fp2 sub coeff 0/1 + let t156 = circuit_sub(t154, in38); // Fp2 sub coeff 1/1 let t157 = circuit_mul(in0, t91); let t158 = circuit_add(t88, t157); - let t159 = circuit_mul(t158, in24); // eval bn line by xNegOverY + let t159 = circuit_mul(t158, in34); // eval bn line by xNegOverY let t160 = circuit_mul(in0, t108); let t161 = circuit_add(t107, t160); - let t162 = circuit_mul(t161, in23); // eval bn line by yInv - let t163 = circuit_mul(t91, in24); // eval bn line by xNegOverY - let t164 = circuit_mul(t108, in23); // eval bn line by yInv + let t162 = circuit_mul(t161, in33); // eval bn line by yInv + let t163 = circuit_mul(t91, in34); // eval bn line by xNegOverY + let t164 = circuit_mul(t108, in33); // eval bn line by yInv let t165 = circuit_mul(in0, t129); let t166 = circuit_add(t128, t165); - let t167 = circuit_mul(t166, in24); // eval bn line by xNegOverY + let t167 = circuit_mul(t166, in34); // eval bn line by xNegOverY let t168 = circuit_mul(in0, t156); let t169 = circuit_add(t155, t168); - let t170 = circuit_mul(t169, in23); // eval bn line by yInv - let t171 = circuit_mul(t129, in24); // eval bn line by xNegOverY - let t172 = circuit_mul(t156, in23); // eval bn line by yInv - let t173 = circuit_mul(t159, in37); // Eval sparse poly line_2p_1 step coeff_1 * z^1 + let t170 = circuit_mul(t169, in33); // eval bn line by yInv + let t171 = circuit_mul(t129, in34); // eval bn line by xNegOverY + let t172 = circuit_mul(t156, in33); // eval bn line by yInv + let t173 = circuit_mul(t159, in47); // Eval sparse poly line_2p_1 step coeff_1 * z^1 let t174 = circuit_add(in1, t173); // Eval sparse poly line_2p_1 step + coeff_1 * z^1 let t175 = circuit_mul(t162, t1); // Eval sparse poly line_2p_1 step coeff_3 * z^3 let t176 = circuit_add(t174, t175); // Eval sparse poly line_2p_1 step + coeff_3 * z^3 @@ -3635,7 +4005,7 @@ fn run_BN254_MP_CHECK_BIT1_3P_2F_circuit( let t179 = circuit_mul(t164, t4); // Eval sparse poly line_2p_1 step coeff_9 * z^9 let t180 = circuit_add(t178, t179); // Eval sparse poly line_2p_1 step + coeff_9 * z^9 let t181 = circuit_mul(t74, t180); // Mul (f(z)^2 * Π_0_k-1(line_k(z))) * line_i_2(z) - let t182 = circuit_mul(t167, in37); // Eval sparse poly line_2p_2 step coeff_1 * z^1 + let t182 = circuit_mul(t167, in47); // Eval sparse poly line_2p_2 step coeff_1 * z^1 let t183 = circuit_add(in1, t182); // Eval sparse poly line_2p_2 step + coeff_1 * z^1 let t184 = circuit_mul(t170, t1); // Eval sparse poly line_2p_2 step coeff_3 * z^3 let t185 = circuit_add(t183, t184); // Eval sparse poly line_2p_2 step + coeff_3 * z^3 @@ -3644,72 +4014,185 @@ fn run_BN254_MP_CHECK_BIT1_3P_2F_circuit( let t188 = circuit_mul(t172, t4); // Eval sparse poly line_2p_2 step coeff_9 * z^9 let t189 = circuit_add(t187, t188); // Eval sparse poly line_2p_2 step + coeff_9 * z^9 let t190 = circuit_mul(t181, t189); // Mul (f(z)^2 * Π_0_k-1(line_k(z))) * line_i_2(z) - let t191 = circuit_mul(t190, in36); - let t192 = circuit_sub(t191, in35); // (Π(i,k) (Pk(z))) - Ri(z) - let t193 = circuit_mul(t5, t192); // ci * ((Π(i,k) (Pk(z)) - Ri(z)) - let t194 = circuit_add(in33, t193); // LHS = LHS + ci * ((Π(i,k) (Pk(z)) - Ri(z)) + let t191 = circuit_mul( + t190, t190, + ); // Compute (f^2 * Π(i,k) (line_i,k(z))) ^ 2 = f^4 * (Π(i,k) (line_i,k(z)))^2 + let t192 = circuit_mul(in0, in26); + let t193 = circuit_add(in25, t192); + let t194 = circuit_mul(t193, in6); // eval bn line by xNegOverY + let t195 = circuit_mul(in0, in28); + let t196 = circuit_add(in27, t195); + let t197 = circuit_mul(t196, in5); // eval bn line by yInv + let t198 = circuit_mul(in26, in6); // eval bn line by xNegOverY + let t199 = circuit_mul(in28, in5); // eval bn line by yInv + let t200 = circuit_mul(t194, in47); // Eval sparse poly line_0p_1 step coeff_1 * z^1 + let t201 = circuit_add(in1, t200); // Eval sparse poly line_0p_1 step + coeff_1 * z^1 + let t202 = circuit_mul(t197, t1); // Eval sparse poly line_0p_1 step coeff_3 * z^3 + let t203 = circuit_add(t201, t202); // Eval sparse poly line_0p_1 step + coeff_3 * z^3 + let t204 = circuit_mul(t198, t3); // Eval sparse poly line_0p_1 step coeff_7 * z^7 + let t205 = circuit_add(t203, t204); // Eval sparse poly line_0p_1 step + coeff_7 * z^7 + let t206 = circuit_mul(t199, t4); // Eval sparse poly line_0p_1 step coeff_9 * z^9 + let t207 = circuit_add(t205, t206); // Eval sparse poly line_0p_1 step + coeff_9 * z^9 + let t208 = circuit_mul(t191, t207); // Mul (f(z)^2 * Π_0_k-1(line_k(z))) * line_i_0(z) + let t209 = circuit_mul(in0, in30); + let t210 = circuit_add(in29, t209); + let t211 = circuit_mul(t210, in20); // eval bn line by xNegOverY + let t212 = circuit_mul(in0, in32); + let t213 = circuit_add(in31, t212); + let t214 = circuit_mul(t213, in19); // eval bn line by yInv + let t215 = circuit_mul(in30, in20); // eval bn line by xNegOverY + let t216 = circuit_mul(in32, in19); // eval bn line by yInv + let t217 = circuit_mul(t211, in47); // Eval sparse poly line_1p_1 step coeff_1 * z^1 + let t218 = circuit_add(in1, t217); // Eval sparse poly line_1p_1 step + coeff_1 * z^1 + let t219 = circuit_mul(t214, t1); // Eval sparse poly line_1p_1 step coeff_3 * z^3 + let t220 = circuit_add(t218, t219); // Eval sparse poly line_1p_1 step + coeff_3 * z^3 + let t221 = circuit_mul(t215, t3); // Eval sparse poly line_1p_1 step coeff_7 * z^7 + let t222 = circuit_add(t220, t221); // Eval sparse poly line_1p_1 step + coeff_7 * z^7 + let t223 = circuit_mul(t216, t4); // Eval sparse poly line_1p_1 step coeff_9 * z^9 + let t224 = circuit_add(t222, t223); // Eval sparse poly line_1p_1 step + coeff_9 * z^9 + let t225 = circuit_mul(t208, t224); // Mul (f(z)^2 * Π_0_k-1(line_k(z))) * line_i_1(z) + let t226 = circuit_add(t137, t138); // Doubling slope numerator start + let t227 = circuit_sub(t137, t138); + let t228 = circuit_mul(t226, t227); + let t229 = circuit_mul(t137, t138); + let t230 = circuit_mul(t228, in3); + let t231 = circuit_mul(t229, in4); // Doubling slope numerator end + let t232 = circuit_add(t147, t147); // Fp2 add coeff 0/1 + let t233 = circuit_add(t148, t148); // Fp2 add coeff 1/1 + let t234 = circuit_mul(t232, t232); // Fp2 Inv start + let t235 = circuit_mul(t233, t233); + let t236 = circuit_add(t234, t235); + let t237 = circuit_inverse(t236); + let t238 = circuit_mul(t232, t237); // Fp2 Inv real part end + let t239 = circuit_mul(t233, t237); + let t240 = circuit_sub(in2, t239); // Fp2 Inv imag part end + let t241 = circuit_mul(t230, t238); // Fp2 mul start + let t242 = circuit_mul(t231, t240); + let t243 = circuit_sub(t241, t242); // Fp2 mul real part end + let t244 = circuit_mul(t230, t240); + let t245 = circuit_mul(t231, t238); + let t246 = circuit_add(t244, t245); // Fp2 mul imag part end + let t247 = circuit_add(t243, t246); + let t248 = circuit_sub(t243, t246); + let t249 = circuit_mul(t247, t248); + let t250 = circuit_mul(t243, t246); + let t251 = circuit_add(t250, t250); + let t252 = circuit_add(t137, t137); // Fp2 add coeff 0/1 + let t253 = circuit_add(t138, t138); // Fp2 add coeff 1/1 + let t254 = circuit_sub(t249, t252); // Fp2 sub coeff 0/1 + let t255 = circuit_sub(t251, t253); // Fp2 sub coeff 1/1 + let t256 = circuit_sub(t137, t254); // Fp2 sub coeff 0/1 + let t257 = circuit_sub(t138, t255); // Fp2 sub coeff 1/1 + let t258 = circuit_mul(t243, t256); // Fp2 mul start + let t259 = circuit_mul(t246, t257); + let t260 = circuit_sub(t258, t259); // Fp2 mul real part end + let t261 = circuit_mul(t243, t257); + let t262 = circuit_mul(t246, t256); + let t263 = circuit_add(t261, t262); // Fp2 mul imag part end + let t264 = circuit_sub(t260, t147); // Fp2 sub coeff 0/1 + let t265 = circuit_sub(t263, t148); // Fp2 sub coeff 1/1 + let t266 = circuit_mul(t243, t137); // Fp2 mul start + let t267 = circuit_mul(t246, t138); + let t268 = circuit_sub(t266, t267); // Fp2 mul real part end + let t269 = circuit_mul(t243, t138); + let t270 = circuit_mul(t246, t137); + let t271 = circuit_add(t269, t270); // Fp2 mul imag part end + let t272 = circuit_sub(t268, t147); // Fp2 sub coeff 0/1 + let t273 = circuit_sub(t271, t148); // Fp2 sub coeff 1/1 + let t274 = circuit_mul(in0, t246); + let t275 = circuit_add(t243, t274); + let t276 = circuit_mul(t275, in34); // eval bn line by xNegOverY + let t277 = circuit_mul(in0, t273); + let t278 = circuit_add(t272, t277); + let t279 = circuit_mul(t278, in33); // eval bn line by yInv + let t280 = circuit_mul(t246, in34); // eval bn line by xNegOverY + let t281 = circuit_mul(t273, in33); // eval bn line by yInv + let t282 = circuit_mul(t276, in47); // Eval sparse poly line_2p_1 step coeff_1 * z^1 + let t283 = circuit_add(in1, t282); // Eval sparse poly line_2p_1 step + coeff_1 * z^1 + let t284 = circuit_mul(t279, t1); // Eval sparse poly line_2p_1 step coeff_3 * z^3 + let t285 = circuit_add(t283, t284); // Eval sparse poly line_2p_1 step + coeff_3 * z^3 + let t286 = circuit_mul(t280, t3); // Eval sparse poly line_2p_1 step coeff_7 * z^7 + let t287 = circuit_add(t285, t286); // Eval sparse poly line_2p_1 step + coeff_7 * z^7 + let t288 = circuit_mul(t281, t4); // Eval sparse poly line_2p_1 step coeff_9 * z^9 + let t289 = circuit_add(t287, t288); // Eval sparse poly line_2p_1 step + coeff_9 * z^9 + let t290 = circuit_mul(t225, t289); // Mul (f(z)^2 * Π_0_k-1(line_k(z))) * line_i_2(z) + let t291 = circuit_mul(in46, in46); + let t292 = circuit_mul(t290, t291); + let t293 = circuit_sub(t292, in45); // (Π(i,k) (Pk(z))) - Ri(z) + let t294 = circuit_mul(t5, t293); // ci * ((Π(i,k) (Pk(z)) - Ri(z)) + let t295 = circuit_add(in43, t294); // LHS = LHS + ci * ((Π(i,k) (Pk(z)) - Ri(z)) let modulus = get_BN254_modulus(); // BN254 prime field modulus - let mut circuit_inputs = (t137, t138, t147, t148, t194, t5,).new_inputs(); + let mut circuit_inputs = (t254, t255, t264, t265, t295, t5).new_inputs(); // Prefill constants: circuit_inputs = circuit_inputs .next_2( - [0x6871ca8d3c208c16d87cfd3e, 0xb85045b68181585d97816a91, 0x30644e72e131a029, 0x0] + [0x6871ca8d3c208c16d87cfd3e, 0xb85045b68181585d97816a91, 0x30644e72e131a029, 0x0], ); // in0 circuit_inputs = circuit_inputs.next_2([0x1, 0x0, 0x0, 0x0]); // in1 circuit_inputs = circuit_inputs.next_2([0x0, 0x0, 0x0, 0x0]); // in2 + circuit_inputs = circuit_inputs.next_2([0x3, 0x0, 0x0, 0x0]); // in3 + circuit_inputs = circuit_inputs.next_2([0x6, 0x0, 0x0, 0x0]); // in4 // Fill inputs: - circuit_inputs = circuit_inputs.next_2(yInv_0); // in3 - circuit_inputs = circuit_inputs.next_2(xNegOverY_0); // in4 - circuit_inputs = circuit_inputs.next_u288(G2_line_0.r0a0); // in5 - circuit_inputs = circuit_inputs.next_u288(G2_line_0.r0a1); // in6 - circuit_inputs = circuit_inputs.next_u288(G2_line_0.r1a0); // in7 - circuit_inputs = circuit_inputs.next_u288(G2_line_0.r1a1); // in8 - circuit_inputs = circuit_inputs.next_u288(Q_or_Q_neg_line0.r0a0); // in9 - circuit_inputs = circuit_inputs.next_u288(Q_or_Q_neg_line0.r0a1); // in10 - circuit_inputs = circuit_inputs.next_u288(Q_or_Q_neg_line0.r1a0); // in11 - circuit_inputs = circuit_inputs.next_u288(Q_or_Q_neg_line0.r1a1); // in12 - circuit_inputs = circuit_inputs.next_2(yInv_1); // in13 - circuit_inputs = circuit_inputs.next_2(xNegOverY_1); // in14 - circuit_inputs = circuit_inputs.next_u288(G2_line_1.r0a0); // in15 - circuit_inputs = circuit_inputs.next_u288(G2_line_1.r0a1); // in16 - circuit_inputs = circuit_inputs.next_u288(G2_line_1.r1a0); // in17 - circuit_inputs = circuit_inputs.next_u288(G2_line_1.r1a1); // in18 - circuit_inputs = circuit_inputs.next_u288(Q_or_Q_neg_line1.r0a0); // in19 - circuit_inputs = circuit_inputs.next_u288(Q_or_Q_neg_line1.r0a1); // in20 - circuit_inputs = circuit_inputs.next_u288(Q_or_Q_neg_line1.r1a0); // in21 - circuit_inputs = circuit_inputs.next_u288(Q_or_Q_neg_line1.r1a1); // in22 - circuit_inputs = circuit_inputs.next_2(yInv_2); // in23 - circuit_inputs = circuit_inputs.next_2(xNegOverY_2); // in24 - circuit_inputs = circuit_inputs.next_2(Q_2.x0); // in25 - circuit_inputs = circuit_inputs.next_2(Q_2.x1); // in26 - circuit_inputs = circuit_inputs.next_2(Q_2.y0); // in27 - circuit_inputs = circuit_inputs.next_2(Q_2.y1); // in28 - circuit_inputs = circuit_inputs.next_2(Q_or_Q_neg_2.x0); // in29 - circuit_inputs = circuit_inputs.next_2(Q_or_Q_neg_2.x1); // in30 - circuit_inputs = circuit_inputs.next_2(Q_or_Q_neg_2.y0); // in31 - circuit_inputs = circuit_inputs.next_2(Q_or_Q_neg_2.y1); // in32 - circuit_inputs = circuit_inputs.next_2(lhs_i); // in33 - circuit_inputs = circuit_inputs.next_2(f_i_of_z); // in34 - circuit_inputs = circuit_inputs.next_2(f_i_plus_one_of_z); // in35 - circuit_inputs = circuit_inputs.next_2(c_or_cinv_of_z); // in36 - circuit_inputs = circuit_inputs.next_2(z); // in37 - circuit_inputs = circuit_inputs.next_2(ci); // in38 + circuit_inputs = circuit_inputs.next_2(yInv_0); // in5 + circuit_inputs = circuit_inputs.next_2(xNegOverY_0); // in6 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_0.r0a0); // in7 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_0.r0a1); // in8 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_0.r1a0); // in9 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_0.r1a1); // in10 + circuit_inputs = circuit_inputs.next_u288(G2_line_add_1_0.r0a0); // in11 + circuit_inputs = circuit_inputs.next_u288(G2_line_add_1_0.r0a1); // in12 + circuit_inputs = circuit_inputs.next_u288(G2_line_add_1_0.r1a0); // in13 + circuit_inputs = circuit_inputs.next_u288(G2_line_add_1_0.r1a1); // in14 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_0_0.r0a0); // in15 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_0_0.r0a1); // in16 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_0_0.r1a0); // in17 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_0_0.r1a1); // in18 + circuit_inputs = circuit_inputs.next_2(yInv_1); // in19 + circuit_inputs = circuit_inputs.next_2(xNegOverY_1); // in20 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_1.r0a0); // in21 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_1.r0a1); // in22 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_1.r1a0); // in23 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_1.r1a1); // in24 + circuit_inputs = circuit_inputs.next_u288(G2_line_add_1_1.r0a0); // in25 + circuit_inputs = circuit_inputs.next_u288(G2_line_add_1_1.r0a1); // in26 + circuit_inputs = circuit_inputs.next_u288(G2_line_add_1_1.r1a0); // in27 + circuit_inputs = circuit_inputs.next_u288(G2_line_add_1_1.r1a1); // in28 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_0_1.r0a0); // in29 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_0_1.r0a1); // in30 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_0_1.r1a0); // in31 + circuit_inputs = circuit_inputs.next_u288(G2_line_dbl_0_1.r1a1); // in32 + circuit_inputs = circuit_inputs.next_2(yInv_2); // in33 + circuit_inputs = circuit_inputs.next_2(xNegOverY_2); // in34 + circuit_inputs = circuit_inputs.next_2(Q_2.x0); // in35 + circuit_inputs = circuit_inputs.next_2(Q_2.x1); // in36 + circuit_inputs = circuit_inputs.next_2(Q_2.y0); // in37 + circuit_inputs = circuit_inputs.next_2(Q_2.y1); // in38 + circuit_inputs = circuit_inputs.next_2(Q_or_Q_neg_2.x0); // in39 + circuit_inputs = circuit_inputs.next_2(Q_or_Q_neg_2.x1); // in40 + circuit_inputs = circuit_inputs.next_2(Q_or_Q_neg_2.y0); // in41 + circuit_inputs = circuit_inputs.next_2(Q_or_Q_neg_2.y1); // in42 + circuit_inputs = circuit_inputs.next_2(lhs_i); // in43 + circuit_inputs = circuit_inputs.next_2(f_i_of_z); // in44 + circuit_inputs = circuit_inputs.next_2(f_i_plus_one_of_z); // in45 + circuit_inputs = circuit_inputs.next_2(c_or_cinv_of_z); // in46 + circuit_inputs = circuit_inputs.next_2(z); // in47 + circuit_inputs = circuit_inputs.next_2(ci); // in48 let outputs = circuit_inputs.done_2().eval(modulus).unwrap(); let Q0: G2Point = G2Point { - x0: outputs.get_output(t137), - x1: outputs.get_output(t138), - y0: outputs.get_output(t147), - y1: outputs.get_output(t148) + x0: outputs.get_output(t254), + x1: outputs.get_output(t255), + y0: outputs.get_output(t264), + y1: outputs.get_output(t265), }; - let lhs_i_plus_one: u384 = outputs.get_output(t194); + let lhs_i_plus_one: u384 = outputs.get_output(t295); let ci_plus_one: u384 = outputs.get_output(t5); return (Q0, lhs_i_plus_one, ci_plus_one); } #[inline(always)] -fn run_BN254_MP_CHECK_FINALIZE_BN_2P_2F_circuit( +pub fn run_BN254_MP_CHECK_FINALIZE_BN_2P_2F_circuit( yInv_0: u384, xNegOverY_0: u384, line_1_0: G2Line, @@ -3728,7 +4211,7 @@ fn run_BN254_MP_CHECK_FINALIZE_BN_2P_2F_circuit( c_inv_frob_3_of_z: u384, previous_lhs: u384, R_n_minus_3_of_z: u384, - Q: Array + Q: Array, ) -> (u384,) { // CONSTANT stack let in0 = CE::> {}; // -0x9 % p @@ -3783,7 +4266,26 @@ fn run_BN254_MP_CHECK_FINALIZE_BN_2P_2F_circuit( let (in133, in134, in135) = (CE::> {}, CE::> {}, CE::> {}); let (in136, in137, in138) = (CE::> {}, CE::> {}, CE::> {}); let (in139, in140, in141) = (CE::> {}, CE::> {}, CE::> {}); - let in142 = CE::> {}; + let (in142, in143, in144) = (CE::> {}, CE::> {}, CE::> {}); + let (in145, in146, in147) = (CE::> {}, CE::> {}, CE::> {}); + let (in148, in149, in150) = (CE::> {}, CE::> {}, CE::> {}); + let (in151, in152, in153) = (CE::> {}, CE::> {}, CE::> {}); + let (in154, in155, in156) = (CE::> {}, CE::> {}, CE::> {}); + let (in157, in158, in159) = (CE::> {}, CE::> {}, CE::> {}); + let (in160, in161, in162) = (CE::> {}, CE::> {}, CE::> {}); + let (in163, in164, in165) = (CE::> {}, CE::> {}, CE::> {}); + let (in166, in167, in168) = (CE::> {}, CE::> {}, CE::> {}); + let (in169, in170, in171) = (CE::> {}, CE::> {}, CE::> {}); + let (in172, in173, in174) = (CE::> {}, CE::> {}, CE::> {}); + let (in175, in176, in177) = (CE::> {}, CE::> {}, CE::> {}); + let (in178, in179, in180) = (CE::> {}, CE::> {}, CE::> {}); + let (in181, in182, in183) = (CE::> {}, CE::> {}, CE::> {}); + let (in184, in185, in186) = (CE::> {}, CE::> {}, CE::> {}); + let (in187, in188, in189) = (CE::> {}, CE::> {}, CE::> {}); + let (in190, in191, in192) = (CE::> {}, CE::> {}, CE::> {}); + let (in193, in194, in195) = (CE::> {}, CE::> {}, CE::> {}); + let (in196, in197, in198) = (CE::> {}, CE::> {}, CE::> {}); + let (in199, in200) = (CE::> {}, CE::> {}); let t0 = circuit_mul(in50, in50); // Compute z^2 let t1 = circuit_mul(t0, in50); // Compute z^3 let t2 = circuit_mul(t1, in50); // Compute z^4 @@ -3919,197 +4421,313 @@ fn run_BN254_MP_CHECK_FINALIZE_BN_2P_2F_circuit( let t132 = circuit_mul(t12, t131); // c_n_minus_1 * ((Π(n-1,k) (Pk(z)) - R_n_minus_1(z)) let t133 = circuit_add(in54, t126); let t134 = circuit_add(t133, t132); - let t135 = circuit_mul(in142, in50); // Eval big_Q Horner step: multiply by z - let t136 = circuit_add(in141, t135); // Eval big_Q Horner step: add coefficient_85 + let t135 = circuit_mul(in200, in50); // Eval big_Q Horner step: multiply by z + let t136 = circuit_add(in199, t135); // Eval big_Q Horner step: add coefficient_143 let t137 = circuit_mul(t136, in50); // Eval big_Q Horner step: multiply by z - let t138 = circuit_add(in140, t137); // Eval big_Q Horner step: add coefficient_84 + let t138 = circuit_add(in198, t137); // Eval big_Q Horner step: add coefficient_142 let t139 = circuit_mul(t138, in50); // Eval big_Q Horner step: multiply by z - let t140 = circuit_add(in139, t139); // Eval big_Q Horner step: add coefficient_83 + let t140 = circuit_add(in197, t139); // Eval big_Q Horner step: add coefficient_141 let t141 = circuit_mul(t140, in50); // Eval big_Q Horner step: multiply by z - let t142 = circuit_add(in138, t141); // Eval big_Q Horner step: add coefficient_82 + let t142 = circuit_add(in196, t141); // Eval big_Q Horner step: add coefficient_140 let t143 = circuit_mul(t142, in50); // Eval big_Q Horner step: multiply by z - let t144 = circuit_add(in137, t143); // Eval big_Q Horner step: add coefficient_81 + let t144 = circuit_add(in195, t143); // Eval big_Q Horner step: add coefficient_139 let t145 = circuit_mul(t144, in50); // Eval big_Q Horner step: multiply by z - let t146 = circuit_add(in136, t145); // Eval big_Q Horner step: add coefficient_80 + let t146 = circuit_add(in194, t145); // Eval big_Q Horner step: add coefficient_138 let t147 = circuit_mul(t146, in50); // Eval big_Q Horner step: multiply by z - let t148 = circuit_add(in135, t147); // Eval big_Q Horner step: add coefficient_79 + let t148 = circuit_add(in193, t147); // Eval big_Q Horner step: add coefficient_137 let t149 = circuit_mul(t148, in50); // Eval big_Q Horner step: multiply by z - let t150 = circuit_add(in134, t149); // Eval big_Q Horner step: add coefficient_78 + let t150 = circuit_add(in192, t149); // Eval big_Q Horner step: add coefficient_136 let t151 = circuit_mul(t150, in50); // Eval big_Q Horner step: multiply by z - let t152 = circuit_add(in133, t151); // Eval big_Q Horner step: add coefficient_77 + let t152 = circuit_add(in191, t151); // Eval big_Q Horner step: add coefficient_135 let t153 = circuit_mul(t152, in50); // Eval big_Q Horner step: multiply by z - let t154 = circuit_add(in132, t153); // Eval big_Q Horner step: add coefficient_76 + let t154 = circuit_add(in190, t153); // Eval big_Q Horner step: add coefficient_134 let t155 = circuit_mul(t154, in50); // Eval big_Q Horner step: multiply by z - let t156 = circuit_add(in131, t155); // Eval big_Q Horner step: add coefficient_75 + let t156 = circuit_add(in189, t155); // Eval big_Q Horner step: add coefficient_133 let t157 = circuit_mul(t156, in50); // Eval big_Q Horner step: multiply by z - let t158 = circuit_add(in130, t157); // Eval big_Q Horner step: add coefficient_74 + let t158 = circuit_add(in188, t157); // Eval big_Q Horner step: add coefficient_132 let t159 = circuit_mul(t158, in50); // Eval big_Q Horner step: multiply by z - let t160 = circuit_add(in129, t159); // Eval big_Q Horner step: add coefficient_73 + let t160 = circuit_add(in187, t159); // Eval big_Q Horner step: add coefficient_131 let t161 = circuit_mul(t160, in50); // Eval big_Q Horner step: multiply by z - let t162 = circuit_add(in128, t161); // Eval big_Q Horner step: add coefficient_72 + let t162 = circuit_add(in186, t161); // Eval big_Q Horner step: add coefficient_130 let t163 = circuit_mul(t162, in50); // Eval big_Q Horner step: multiply by z - let t164 = circuit_add(in127, t163); // Eval big_Q Horner step: add coefficient_71 + let t164 = circuit_add(in185, t163); // Eval big_Q Horner step: add coefficient_129 let t165 = circuit_mul(t164, in50); // Eval big_Q Horner step: multiply by z - let t166 = circuit_add(in126, t165); // Eval big_Q Horner step: add coefficient_70 + let t166 = circuit_add(in184, t165); // Eval big_Q Horner step: add coefficient_128 let t167 = circuit_mul(t166, in50); // Eval big_Q Horner step: multiply by z - let t168 = circuit_add(in125, t167); // Eval big_Q Horner step: add coefficient_69 + let t168 = circuit_add(in183, t167); // Eval big_Q Horner step: add coefficient_127 let t169 = circuit_mul(t168, in50); // Eval big_Q Horner step: multiply by z - let t170 = circuit_add(in124, t169); // Eval big_Q Horner step: add coefficient_68 + let t170 = circuit_add(in182, t169); // Eval big_Q Horner step: add coefficient_126 let t171 = circuit_mul(t170, in50); // Eval big_Q Horner step: multiply by z - let t172 = circuit_add(in123, t171); // Eval big_Q Horner step: add coefficient_67 + let t172 = circuit_add(in181, t171); // Eval big_Q Horner step: add coefficient_125 let t173 = circuit_mul(t172, in50); // Eval big_Q Horner step: multiply by z - let t174 = circuit_add(in122, t173); // Eval big_Q Horner step: add coefficient_66 + let t174 = circuit_add(in180, t173); // Eval big_Q Horner step: add coefficient_124 let t175 = circuit_mul(t174, in50); // Eval big_Q Horner step: multiply by z - let t176 = circuit_add(in121, t175); // Eval big_Q Horner step: add coefficient_65 + let t176 = circuit_add(in179, t175); // Eval big_Q Horner step: add coefficient_123 let t177 = circuit_mul(t176, in50); // Eval big_Q Horner step: multiply by z - let t178 = circuit_add(in120, t177); // Eval big_Q Horner step: add coefficient_64 + let t178 = circuit_add(in178, t177); // Eval big_Q Horner step: add coefficient_122 let t179 = circuit_mul(t178, in50); // Eval big_Q Horner step: multiply by z - let t180 = circuit_add(in119, t179); // Eval big_Q Horner step: add coefficient_63 + let t180 = circuit_add(in177, t179); // Eval big_Q Horner step: add coefficient_121 let t181 = circuit_mul(t180, in50); // Eval big_Q Horner step: multiply by z - let t182 = circuit_add(in118, t181); // Eval big_Q Horner step: add coefficient_62 + let t182 = circuit_add(in176, t181); // Eval big_Q Horner step: add coefficient_120 let t183 = circuit_mul(t182, in50); // Eval big_Q Horner step: multiply by z - let t184 = circuit_add(in117, t183); // Eval big_Q Horner step: add coefficient_61 + let t184 = circuit_add(in175, t183); // Eval big_Q Horner step: add coefficient_119 let t185 = circuit_mul(t184, in50); // Eval big_Q Horner step: multiply by z - let t186 = circuit_add(in116, t185); // Eval big_Q Horner step: add coefficient_60 + let t186 = circuit_add(in174, t185); // Eval big_Q Horner step: add coefficient_118 let t187 = circuit_mul(t186, in50); // Eval big_Q Horner step: multiply by z - let t188 = circuit_add(in115, t187); // Eval big_Q Horner step: add coefficient_59 + let t188 = circuit_add(in173, t187); // Eval big_Q Horner step: add coefficient_117 let t189 = circuit_mul(t188, in50); // Eval big_Q Horner step: multiply by z - let t190 = circuit_add(in114, t189); // Eval big_Q Horner step: add coefficient_58 + let t190 = circuit_add(in172, t189); // Eval big_Q Horner step: add coefficient_116 let t191 = circuit_mul(t190, in50); // Eval big_Q Horner step: multiply by z - let t192 = circuit_add(in113, t191); // Eval big_Q Horner step: add coefficient_57 + let t192 = circuit_add(in171, t191); // Eval big_Q Horner step: add coefficient_115 let t193 = circuit_mul(t192, in50); // Eval big_Q Horner step: multiply by z - let t194 = circuit_add(in112, t193); // Eval big_Q Horner step: add coefficient_56 + let t194 = circuit_add(in170, t193); // Eval big_Q Horner step: add coefficient_114 let t195 = circuit_mul(t194, in50); // Eval big_Q Horner step: multiply by z - let t196 = circuit_add(in111, t195); // Eval big_Q Horner step: add coefficient_55 + let t196 = circuit_add(in169, t195); // Eval big_Q Horner step: add coefficient_113 let t197 = circuit_mul(t196, in50); // Eval big_Q Horner step: multiply by z - let t198 = circuit_add(in110, t197); // Eval big_Q Horner step: add coefficient_54 + let t198 = circuit_add(in168, t197); // Eval big_Q Horner step: add coefficient_112 let t199 = circuit_mul(t198, in50); // Eval big_Q Horner step: multiply by z - let t200 = circuit_add(in109, t199); // Eval big_Q Horner step: add coefficient_53 + let t200 = circuit_add(in167, t199); // Eval big_Q Horner step: add coefficient_111 let t201 = circuit_mul(t200, in50); // Eval big_Q Horner step: multiply by z - let t202 = circuit_add(in108, t201); // Eval big_Q Horner step: add coefficient_52 + let t202 = circuit_add(in166, t201); // Eval big_Q Horner step: add coefficient_110 let t203 = circuit_mul(t202, in50); // Eval big_Q Horner step: multiply by z - let t204 = circuit_add(in107, t203); // Eval big_Q Horner step: add coefficient_51 + let t204 = circuit_add(in165, t203); // Eval big_Q Horner step: add coefficient_109 let t205 = circuit_mul(t204, in50); // Eval big_Q Horner step: multiply by z - let t206 = circuit_add(in106, t205); // Eval big_Q Horner step: add coefficient_50 + let t206 = circuit_add(in164, t205); // Eval big_Q Horner step: add coefficient_108 let t207 = circuit_mul(t206, in50); // Eval big_Q Horner step: multiply by z - let t208 = circuit_add(in105, t207); // Eval big_Q Horner step: add coefficient_49 + let t208 = circuit_add(in163, t207); // Eval big_Q Horner step: add coefficient_107 let t209 = circuit_mul(t208, in50); // Eval big_Q Horner step: multiply by z - let t210 = circuit_add(in104, t209); // Eval big_Q Horner step: add coefficient_48 + let t210 = circuit_add(in162, t209); // Eval big_Q Horner step: add coefficient_106 let t211 = circuit_mul(t210, in50); // Eval big_Q Horner step: multiply by z - let t212 = circuit_add(in103, t211); // Eval big_Q Horner step: add coefficient_47 + let t212 = circuit_add(in161, t211); // Eval big_Q Horner step: add coefficient_105 let t213 = circuit_mul(t212, in50); // Eval big_Q Horner step: multiply by z - let t214 = circuit_add(in102, t213); // Eval big_Q Horner step: add coefficient_46 + let t214 = circuit_add(in160, t213); // Eval big_Q Horner step: add coefficient_104 let t215 = circuit_mul(t214, in50); // Eval big_Q Horner step: multiply by z - let t216 = circuit_add(in101, t215); // Eval big_Q Horner step: add coefficient_45 + let t216 = circuit_add(in159, t215); // Eval big_Q Horner step: add coefficient_103 let t217 = circuit_mul(t216, in50); // Eval big_Q Horner step: multiply by z - let t218 = circuit_add(in100, t217); // Eval big_Q Horner step: add coefficient_44 + let t218 = circuit_add(in158, t217); // Eval big_Q Horner step: add coefficient_102 let t219 = circuit_mul(t218, in50); // Eval big_Q Horner step: multiply by z - let t220 = circuit_add(in99, t219); // Eval big_Q Horner step: add coefficient_43 + let t220 = circuit_add(in157, t219); // Eval big_Q Horner step: add coefficient_101 let t221 = circuit_mul(t220, in50); // Eval big_Q Horner step: multiply by z - let t222 = circuit_add(in98, t221); // Eval big_Q Horner step: add coefficient_42 + let t222 = circuit_add(in156, t221); // Eval big_Q Horner step: add coefficient_100 let t223 = circuit_mul(t222, in50); // Eval big_Q Horner step: multiply by z - let t224 = circuit_add(in97, t223); // Eval big_Q Horner step: add coefficient_41 + let t224 = circuit_add(in155, t223); // Eval big_Q Horner step: add coefficient_99 let t225 = circuit_mul(t224, in50); // Eval big_Q Horner step: multiply by z - let t226 = circuit_add(in96, t225); // Eval big_Q Horner step: add coefficient_40 + let t226 = circuit_add(in154, t225); // Eval big_Q Horner step: add coefficient_98 let t227 = circuit_mul(t226, in50); // Eval big_Q Horner step: multiply by z - let t228 = circuit_add(in95, t227); // Eval big_Q Horner step: add coefficient_39 + let t228 = circuit_add(in153, t227); // Eval big_Q Horner step: add coefficient_97 let t229 = circuit_mul(t228, in50); // Eval big_Q Horner step: multiply by z - let t230 = circuit_add(in94, t229); // Eval big_Q Horner step: add coefficient_38 + let t230 = circuit_add(in152, t229); // Eval big_Q Horner step: add coefficient_96 let t231 = circuit_mul(t230, in50); // Eval big_Q Horner step: multiply by z - let t232 = circuit_add(in93, t231); // Eval big_Q Horner step: add coefficient_37 + let t232 = circuit_add(in151, t231); // Eval big_Q Horner step: add coefficient_95 let t233 = circuit_mul(t232, in50); // Eval big_Q Horner step: multiply by z - let t234 = circuit_add(in92, t233); // Eval big_Q Horner step: add coefficient_36 + let t234 = circuit_add(in150, t233); // Eval big_Q Horner step: add coefficient_94 let t235 = circuit_mul(t234, in50); // Eval big_Q Horner step: multiply by z - let t236 = circuit_add(in91, t235); // Eval big_Q Horner step: add coefficient_35 + let t236 = circuit_add(in149, t235); // Eval big_Q Horner step: add coefficient_93 let t237 = circuit_mul(t236, in50); // Eval big_Q Horner step: multiply by z - let t238 = circuit_add(in90, t237); // Eval big_Q Horner step: add coefficient_34 + let t238 = circuit_add(in148, t237); // Eval big_Q Horner step: add coefficient_92 let t239 = circuit_mul(t238, in50); // Eval big_Q Horner step: multiply by z - let t240 = circuit_add(in89, t239); // Eval big_Q Horner step: add coefficient_33 + let t240 = circuit_add(in147, t239); // Eval big_Q Horner step: add coefficient_91 let t241 = circuit_mul(t240, in50); // Eval big_Q Horner step: multiply by z - let t242 = circuit_add(in88, t241); // Eval big_Q Horner step: add coefficient_32 + let t242 = circuit_add(in146, t241); // Eval big_Q Horner step: add coefficient_90 let t243 = circuit_mul(t242, in50); // Eval big_Q Horner step: multiply by z - let t244 = circuit_add(in87, t243); // Eval big_Q Horner step: add coefficient_31 + let t244 = circuit_add(in145, t243); // Eval big_Q Horner step: add coefficient_89 let t245 = circuit_mul(t244, in50); // Eval big_Q Horner step: multiply by z - let t246 = circuit_add(in86, t245); // Eval big_Q Horner step: add coefficient_30 + let t246 = circuit_add(in144, t245); // Eval big_Q Horner step: add coefficient_88 let t247 = circuit_mul(t246, in50); // Eval big_Q Horner step: multiply by z - let t248 = circuit_add(in85, t247); // Eval big_Q Horner step: add coefficient_29 + let t248 = circuit_add(in143, t247); // Eval big_Q Horner step: add coefficient_87 let t249 = circuit_mul(t248, in50); // Eval big_Q Horner step: multiply by z - let t250 = circuit_add(in84, t249); // Eval big_Q Horner step: add coefficient_28 + let t250 = circuit_add(in142, t249); // Eval big_Q Horner step: add coefficient_86 let t251 = circuit_mul(t250, in50); // Eval big_Q Horner step: multiply by z - let t252 = circuit_add(in83, t251); // Eval big_Q Horner step: add coefficient_27 + let t252 = circuit_add(in141, t251); // Eval big_Q Horner step: add coefficient_85 let t253 = circuit_mul(t252, in50); // Eval big_Q Horner step: multiply by z - let t254 = circuit_add(in82, t253); // Eval big_Q Horner step: add coefficient_26 + let t254 = circuit_add(in140, t253); // Eval big_Q Horner step: add coefficient_84 let t255 = circuit_mul(t254, in50); // Eval big_Q Horner step: multiply by z - let t256 = circuit_add(in81, t255); // Eval big_Q Horner step: add coefficient_25 + let t256 = circuit_add(in139, t255); // Eval big_Q Horner step: add coefficient_83 let t257 = circuit_mul(t256, in50); // Eval big_Q Horner step: multiply by z - let t258 = circuit_add(in80, t257); // Eval big_Q Horner step: add coefficient_24 + let t258 = circuit_add(in138, t257); // Eval big_Q Horner step: add coefficient_82 let t259 = circuit_mul(t258, in50); // Eval big_Q Horner step: multiply by z - let t260 = circuit_add(in79, t259); // Eval big_Q Horner step: add coefficient_23 + let t260 = circuit_add(in137, t259); // Eval big_Q Horner step: add coefficient_81 let t261 = circuit_mul(t260, in50); // Eval big_Q Horner step: multiply by z - let t262 = circuit_add(in78, t261); // Eval big_Q Horner step: add coefficient_22 + let t262 = circuit_add(in136, t261); // Eval big_Q Horner step: add coefficient_80 let t263 = circuit_mul(t262, in50); // Eval big_Q Horner step: multiply by z - let t264 = circuit_add(in77, t263); // Eval big_Q Horner step: add coefficient_21 + let t264 = circuit_add(in135, t263); // Eval big_Q Horner step: add coefficient_79 let t265 = circuit_mul(t264, in50); // Eval big_Q Horner step: multiply by z - let t266 = circuit_add(in76, t265); // Eval big_Q Horner step: add coefficient_20 + let t266 = circuit_add(in134, t265); // Eval big_Q Horner step: add coefficient_78 let t267 = circuit_mul(t266, in50); // Eval big_Q Horner step: multiply by z - let t268 = circuit_add(in75, t267); // Eval big_Q Horner step: add coefficient_19 + let t268 = circuit_add(in133, t267); // Eval big_Q Horner step: add coefficient_77 let t269 = circuit_mul(t268, in50); // Eval big_Q Horner step: multiply by z - let t270 = circuit_add(in74, t269); // Eval big_Q Horner step: add coefficient_18 + let t270 = circuit_add(in132, t269); // Eval big_Q Horner step: add coefficient_76 let t271 = circuit_mul(t270, in50); // Eval big_Q Horner step: multiply by z - let t272 = circuit_add(in73, t271); // Eval big_Q Horner step: add coefficient_17 + let t272 = circuit_add(in131, t271); // Eval big_Q Horner step: add coefficient_75 let t273 = circuit_mul(t272, in50); // Eval big_Q Horner step: multiply by z - let t274 = circuit_add(in72, t273); // Eval big_Q Horner step: add coefficient_16 + let t274 = circuit_add(in130, t273); // Eval big_Q Horner step: add coefficient_74 let t275 = circuit_mul(t274, in50); // Eval big_Q Horner step: multiply by z - let t276 = circuit_add(in71, t275); // Eval big_Q Horner step: add coefficient_15 + let t276 = circuit_add(in129, t275); // Eval big_Q Horner step: add coefficient_73 let t277 = circuit_mul(t276, in50); // Eval big_Q Horner step: multiply by z - let t278 = circuit_add(in70, t277); // Eval big_Q Horner step: add coefficient_14 + let t278 = circuit_add(in128, t277); // Eval big_Q Horner step: add coefficient_72 let t279 = circuit_mul(t278, in50); // Eval big_Q Horner step: multiply by z - let t280 = circuit_add(in69, t279); // Eval big_Q Horner step: add coefficient_13 + let t280 = circuit_add(in127, t279); // Eval big_Q Horner step: add coefficient_71 let t281 = circuit_mul(t280, in50); // Eval big_Q Horner step: multiply by z - let t282 = circuit_add(in68, t281); // Eval big_Q Horner step: add coefficient_12 + let t282 = circuit_add(in126, t281); // Eval big_Q Horner step: add coefficient_70 let t283 = circuit_mul(t282, in50); // Eval big_Q Horner step: multiply by z - let t284 = circuit_add(in67, t283); // Eval big_Q Horner step: add coefficient_11 + let t284 = circuit_add(in125, t283); // Eval big_Q Horner step: add coefficient_69 let t285 = circuit_mul(t284, in50); // Eval big_Q Horner step: multiply by z - let t286 = circuit_add(in66, t285); // Eval big_Q Horner step: add coefficient_10 + let t286 = circuit_add(in124, t285); // Eval big_Q Horner step: add coefficient_68 let t287 = circuit_mul(t286, in50); // Eval big_Q Horner step: multiply by z - let t288 = circuit_add(in65, t287); // Eval big_Q Horner step: add coefficient_9 + let t288 = circuit_add(in123, t287); // Eval big_Q Horner step: add coefficient_67 let t289 = circuit_mul(t288, in50); // Eval big_Q Horner step: multiply by z - let t290 = circuit_add(in64, t289); // Eval big_Q Horner step: add coefficient_8 + let t290 = circuit_add(in122, t289); // Eval big_Q Horner step: add coefficient_66 let t291 = circuit_mul(t290, in50); // Eval big_Q Horner step: multiply by z - let t292 = circuit_add(in63, t291); // Eval big_Q Horner step: add coefficient_7 + let t292 = circuit_add(in121, t291); // Eval big_Q Horner step: add coefficient_65 let t293 = circuit_mul(t292, in50); // Eval big_Q Horner step: multiply by z - let t294 = circuit_add(in62, t293); // Eval big_Q Horner step: add coefficient_6 + let t294 = circuit_add(in120, t293); // Eval big_Q Horner step: add coefficient_64 let t295 = circuit_mul(t294, in50); // Eval big_Q Horner step: multiply by z - let t296 = circuit_add(in61, t295); // Eval big_Q Horner step: add coefficient_5 + let t296 = circuit_add(in119, t295); // Eval big_Q Horner step: add coefficient_63 let t297 = circuit_mul(t296, in50); // Eval big_Q Horner step: multiply by z - let t298 = circuit_add(in60, t297); // Eval big_Q Horner step: add coefficient_4 + let t298 = circuit_add(in118, t297); // Eval big_Q Horner step: add coefficient_62 let t299 = circuit_mul(t298, in50); // Eval big_Q Horner step: multiply by z - let t300 = circuit_add(in59, t299); // Eval big_Q Horner step: add coefficient_3 + let t300 = circuit_add(in117, t299); // Eval big_Q Horner step: add coefficient_61 let t301 = circuit_mul(t300, in50); // Eval big_Q Horner step: multiply by z - let t302 = circuit_add(in58, t301); // Eval big_Q Horner step: add coefficient_2 + let t302 = circuit_add(in116, t301); // Eval big_Q Horner step: add coefficient_60 let t303 = circuit_mul(t302, in50); // Eval big_Q Horner step: multiply by z - let t304 = circuit_add(in57, t303); // Eval big_Q Horner step: add coefficient_1 + let t304 = circuit_add(in115, t303); // Eval big_Q Horner step: add coefficient_59 let t305 = circuit_mul(t304, in50); // Eval big_Q Horner step: multiply by z - let t306 = circuit_add(in56, t305); // Eval big_Q Horner step: add coefficient_0 - let t307 = circuit_mul(in3, t4); // Eval sparse poly P_irr step coeff_6 * z^6 - let t308 = circuit_add(in2, t307); // Eval sparse poly P_irr step + coeff_6 * z^6 - let t309 = circuit_add(t308, t10); // Eval sparse poly P_irr step + 1*z^12 - let t310 = circuit_mul(t306, t309); - let t311 = circuit_sub(t134, t310); + let t306 = circuit_add(in114, t305); // Eval big_Q Horner step: add coefficient_58 + let t307 = circuit_mul(t306, in50); // Eval big_Q Horner step: multiply by z + let t308 = circuit_add(in113, t307); // Eval big_Q Horner step: add coefficient_57 + let t309 = circuit_mul(t308, in50); // Eval big_Q Horner step: multiply by z + let t310 = circuit_add(in112, t309); // Eval big_Q Horner step: add coefficient_56 + let t311 = circuit_mul(t310, in50); // Eval big_Q Horner step: multiply by z + let t312 = circuit_add(in111, t311); // Eval big_Q Horner step: add coefficient_55 + let t313 = circuit_mul(t312, in50); // Eval big_Q Horner step: multiply by z + let t314 = circuit_add(in110, t313); // Eval big_Q Horner step: add coefficient_54 + let t315 = circuit_mul(t314, in50); // Eval big_Q Horner step: multiply by z + let t316 = circuit_add(in109, t315); // Eval big_Q Horner step: add coefficient_53 + let t317 = circuit_mul(t316, in50); // Eval big_Q Horner step: multiply by z + let t318 = circuit_add(in108, t317); // Eval big_Q Horner step: add coefficient_52 + let t319 = circuit_mul(t318, in50); // Eval big_Q Horner step: multiply by z + let t320 = circuit_add(in107, t319); // Eval big_Q Horner step: add coefficient_51 + let t321 = circuit_mul(t320, in50); // Eval big_Q Horner step: multiply by z + let t322 = circuit_add(in106, t321); // Eval big_Q Horner step: add coefficient_50 + let t323 = circuit_mul(t322, in50); // Eval big_Q Horner step: multiply by z + let t324 = circuit_add(in105, t323); // Eval big_Q Horner step: add coefficient_49 + let t325 = circuit_mul(t324, in50); // Eval big_Q Horner step: multiply by z + let t326 = circuit_add(in104, t325); // Eval big_Q Horner step: add coefficient_48 + let t327 = circuit_mul(t326, in50); // Eval big_Q Horner step: multiply by z + let t328 = circuit_add(in103, t327); // Eval big_Q Horner step: add coefficient_47 + let t329 = circuit_mul(t328, in50); // Eval big_Q Horner step: multiply by z + let t330 = circuit_add(in102, t329); // Eval big_Q Horner step: add coefficient_46 + let t331 = circuit_mul(t330, in50); // Eval big_Q Horner step: multiply by z + let t332 = circuit_add(in101, t331); // Eval big_Q Horner step: add coefficient_45 + let t333 = circuit_mul(t332, in50); // Eval big_Q Horner step: multiply by z + let t334 = circuit_add(in100, t333); // Eval big_Q Horner step: add coefficient_44 + let t335 = circuit_mul(t334, in50); // Eval big_Q Horner step: multiply by z + let t336 = circuit_add(in99, t335); // Eval big_Q Horner step: add coefficient_43 + let t337 = circuit_mul(t336, in50); // Eval big_Q Horner step: multiply by z + let t338 = circuit_add(in98, t337); // Eval big_Q Horner step: add coefficient_42 + let t339 = circuit_mul(t338, in50); // Eval big_Q Horner step: multiply by z + let t340 = circuit_add(in97, t339); // Eval big_Q Horner step: add coefficient_41 + let t341 = circuit_mul(t340, in50); // Eval big_Q Horner step: multiply by z + let t342 = circuit_add(in96, t341); // Eval big_Q Horner step: add coefficient_40 + let t343 = circuit_mul(t342, in50); // Eval big_Q Horner step: multiply by z + let t344 = circuit_add(in95, t343); // Eval big_Q Horner step: add coefficient_39 + let t345 = circuit_mul(t344, in50); // Eval big_Q Horner step: multiply by z + let t346 = circuit_add(in94, t345); // Eval big_Q Horner step: add coefficient_38 + let t347 = circuit_mul(t346, in50); // Eval big_Q Horner step: multiply by z + let t348 = circuit_add(in93, t347); // Eval big_Q Horner step: add coefficient_37 + let t349 = circuit_mul(t348, in50); // Eval big_Q Horner step: multiply by z + let t350 = circuit_add(in92, t349); // Eval big_Q Horner step: add coefficient_36 + let t351 = circuit_mul(t350, in50); // Eval big_Q Horner step: multiply by z + let t352 = circuit_add(in91, t351); // Eval big_Q Horner step: add coefficient_35 + let t353 = circuit_mul(t352, in50); // Eval big_Q Horner step: multiply by z + let t354 = circuit_add(in90, t353); // Eval big_Q Horner step: add coefficient_34 + let t355 = circuit_mul(t354, in50); // Eval big_Q Horner step: multiply by z + let t356 = circuit_add(in89, t355); // Eval big_Q Horner step: add coefficient_33 + let t357 = circuit_mul(t356, in50); // Eval big_Q Horner step: multiply by z + let t358 = circuit_add(in88, t357); // Eval big_Q Horner step: add coefficient_32 + let t359 = circuit_mul(t358, in50); // Eval big_Q Horner step: multiply by z + let t360 = circuit_add(in87, t359); // Eval big_Q Horner step: add coefficient_31 + let t361 = circuit_mul(t360, in50); // Eval big_Q Horner step: multiply by z + let t362 = circuit_add(in86, t361); // Eval big_Q Horner step: add coefficient_30 + let t363 = circuit_mul(t362, in50); // Eval big_Q Horner step: multiply by z + let t364 = circuit_add(in85, t363); // Eval big_Q Horner step: add coefficient_29 + let t365 = circuit_mul(t364, in50); // Eval big_Q Horner step: multiply by z + let t366 = circuit_add(in84, t365); // Eval big_Q Horner step: add coefficient_28 + let t367 = circuit_mul(t366, in50); // Eval big_Q Horner step: multiply by z + let t368 = circuit_add(in83, t367); // Eval big_Q Horner step: add coefficient_27 + let t369 = circuit_mul(t368, in50); // Eval big_Q Horner step: multiply by z + let t370 = circuit_add(in82, t369); // Eval big_Q Horner step: add coefficient_26 + let t371 = circuit_mul(t370, in50); // Eval big_Q Horner step: multiply by z + let t372 = circuit_add(in81, t371); // Eval big_Q Horner step: add coefficient_25 + let t373 = circuit_mul(t372, in50); // Eval big_Q Horner step: multiply by z + let t374 = circuit_add(in80, t373); // Eval big_Q Horner step: add coefficient_24 + let t375 = circuit_mul(t374, in50); // Eval big_Q Horner step: multiply by z + let t376 = circuit_add(in79, t375); // Eval big_Q Horner step: add coefficient_23 + let t377 = circuit_mul(t376, in50); // Eval big_Q Horner step: multiply by z + let t378 = circuit_add(in78, t377); // Eval big_Q Horner step: add coefficient_22 + let t379 = circuit_mul(t378, in50); // Eval big_Q Horner step: multiply by z + let t380 = circuit_add(in77, t379); // Eval big_Q Horner step: add coefficient_21 + let t381 = circuit_mul(t380, in50); // Eval big_Q Horner step: multiply by z + let t382 = circuit_add(in76, t381); // Eval big_Q Horner step: add coefficient_20 + let t383 = circuit_mul(t382, in50); // Eval big_Q Horner step: multiply by z + let t384 = circuit_add(in75, t383); // Eval big_Q Horner step: add coefficient_19 + let t385 = circuit_mul(t384, in50); // Eval big_Q Horner step: multiply by z + let t386 = circuit_add(in74, t385); // Eval big_Q Horner step: add coefficient_18 + let t387 = circuit_mul(t386, in50); // Eval big_Q Horner step: multiply by z + let t388 = circuit_add(in73, t387); // Eval big_Q Horner step: add coefficient_17 + let t389 = circuit_mul(t388, in50); // Eval big_Q Horner step: multiply by z + let t390 = circuit_add(in72, t389); // Eval big_Q Horner step: add coefficient_16 + let t391 = circuit_mul(t390, in50); // Eval big_Q Horner step: multiply by z + let t392 = circuit_add(in71, t391); // Eval big_Q Horner step: add coefficient_15 + let t393 = circuit_mul(t392, in50); // Eval big_Q Horner step: multiply by z + let t394 = circuit_add(in70, t393); // Eval big_Q Horner step: add coefficient_14 + let t395 = circuit_mul(t394, in50); // Eval big_Q Horner step: multiply by z + let t396 = circuit_add(in69, t395); // Eval big_Q Horner step: add coefficient_13 + let t397 = circuit_mul(t396, in50); // Eval big_Q Horner step: multiply by z + let t398 = circuit_add(in68, t397); // Eval big_Q Horner step: add coefficient_12 + let t399 = circuit_mul(t398, in50); // Eval big_Q Horner step: multiply by z + let t400 = circuit_add(in67, t399); // Eval big_Q Horner step: add coefficient_11 + let t401 = circuit_mul(t400, in50); // Eval big_Q Horner step: multiply by z + let t402 = circuit_add(in66, t401); // Eval big_Q Horner step: add coefficient_10 + let t403 = circuit_mul(t402, in50); // Eval big_Q Horner step: multiply by z + let t404 = circuit_add(in65, t403); // Eval big_Q Horner step: add coefficient_9 + let t405 = circuit_mul(t404, in50); // Eval big_Q Horner step: multiply by z + let t406 = circuit_add(in64, t405); // Eval big_Q Horner step: add coefficient_8 + let t407 = circuit_mul(t406, in50); // Eval big_Q Horner step: multiply by z + let t408 = circuit_add(in63, t407); // Eval big_Q Horner step: add coefficient_7 + let t409 = circuit_mul(t408, in50); // Eval big_Q Horner step: multiply by z + let t410 = circuit_add(in62, t409); // Eval big_Q Horner step: add coefficient_6 + let t411 = circuit_mul(t410, in50); // Eval big_Q Horner step: multiply by z + let t412 = circuit_add(in61, t411); // Eval big_Q Horner step: add coefficient_5 + let t413 = circuit_mul(t412, in50); // Eval big_Q Horner step: multiply by z + let t414 = circuit_add(in60, t413); // Eval big_Q Horner step: add coefficient_4 + let t415 = circuit_mul(t414, in50); // Eval big_Q Horner step: multiply by z + let t416 = circuit_add(in59, t415); // Eval big_Q Horner step: add coefficient_3 + let t417 = circuit_mul(t416, in50); // Eval big_Q Horner step: multiply by z + let t418 = circuit_add(in58, t417); // Eval big_Q Horner step: add coefficient_2 + let t419 = circuit_mul(t418, in50); // Eval big_Q Horner step: multiply by z + let t420 = circuit_add(in57, t419); // Eval big_Q Horner step: add coefficient_1 + let t421 = circuit_mul(t420, in50); // Eval big_Q Horner step: multiply by z + let t422 = circuit_add(in56, t421); // Eval big_Q Horner step: add coefficient_0 + let t423 = circuit_mul(in3, t4); // Eval sparse poly P_irr step coeff_6 * z^6 + let t424 = circuit_add(in2, t423); // Eval sparse poly P_irr step + coeff_6 * z^6 + let t425 = circuit_add(t424, t10); // Eval sparse poly P_irr step + 1*z^12 + let t426 = circuit_mul(t422, t425); + let t427 = circuit_sub(t134, t426); let modulus = get_BN254_modulus(); // BN254 prime field modulus - let mut circuit_inputs = (t311,).new_inputs(); + let mut circuit_inputs = (t427,).new_inputs(); // Prefill constants: circuit_inputs = circuit_inputs .next_2( - [0x6871ca8d3c208c16d87cfd3e, 0xb85045b68181585d97816a91, 0x30644e72e131a029, 0x0] + [0x6871ca8d3c208c16d87cfd3e, 0xb85045b68181585d97816a91, 0x30644e72e131a029, 0x0], ); // in0 circuit_inputs = circuit_inputs.next_2([0x1, 0x0, 0x0, 0x0]); // in1 circuit_inputs = circuit_inputs.next_2([0x52, 0x0, 0x0, 0x0]); // in2 circuit_inputs = circuit_inputs .next_2( - [0x6871ca8d3c208c16d87cfd35, 0xb85045b68181585d97816a91, 0x30644e72e131a029, 0x0] + [0x6871ca8d3c208c16d87cfd35, 0xb85045b68181585d97816a91, 0x30644e72e131a029, 0x0], ); // in3 // Fill inputs: circuit_inputs = circuit_inputs.next_2(yInv_0); // in4 @@ -4168,15 +4786,14 @@ fn run_BN254_MP_CHECK_FINALIZE_BN_2P_2F_circuit( let mut Q = Q; while let Option::Some(val) = Q.pop_front() { circuit_inputs = circuit_inputs.next_u288(val); - }; - // in56 - in142 + }; // in56 - in200 let outputs = circuit_inputs.done_2().eval(modulus).unwrap(); - let final_check: u384 = outputs.get_output(t311); + let final_check: u384 = outputs.get_output(t427); return (final_check,); } #[inline(always)] -fn run_BN254_MP_CHECK_FINALIZE_BN_3P_2F_circuit( +pub fn run_BN254_MP_CHECK_FINALIZE_BN_3P_2F_circuit( yInv_0: u384, xNegOverY_0: u384, line_1_0: G2Line, @@ -4199,7 +4816,7 @@ fn run_BN254_MP_CHECK_FINALIZE_BN_3P_2F_circuit( c_inv_frob_3_of_z: u384, previous_lhs: u384, R_n_minus_3_of_z: u384, - Q: Array + Q: Array, ) -> (u384,) { // CONSTANT stack let in0 = CE::> {}; // 0x2fb347984f7911f74c0bec3cf559b143b78cc310c2c3330c99e39557176f553d @@ -4272,7 +4889,32 @@ fn run_BN254_MP_CHECK_FINALIZE_BN_3P_2F_circuit( let (in175, in176, in177) = (CE::> {}, CE::> {}, CE::> {}); let (in178, in179, in180) = (CE::> {}, CE::> {}, CE::> {}); let (in181, in182, in183) = (CE::> {}, CE::> {}, CE::> {}); - let (in184, in185) = (CE::> {}, CE::> {}); + let (in184, in185, in186) = (CE::> {}, CE::> {}, CE::> {}); + let (in187, in188, in189) = (CE::> {}, CE::> {}, CE::> {}); + let (in190, in191, in192) = (CE::> {}, CE::> {}, CE::> {}); + let (in193, in194, in195) = (CE::> {}, CE::> {}, CE::> {}); + let (in196, in197, in198) = (CE::> {}, CE::> {}, CE::> {}); + let (in199, in200, in201) = (CE::> {}, CE::> {}, CE::> {}); + let (in202, in203, in204) = (CE::> {}, CE::> {}, CE::> {}); + let (in205, in206, in207) = (CE::> {}, CE::> {}, CE::> {}); + let (in208, in209, in210) = (CE::> {}, CE::> {}, CE::> {}); + let (in211, in212, in213) = (CE::> {}, CE::> {}, CE::> {}); + let (in214, in215, in216) = (CE::> {}, CE::> {}, CE::> {}); + let (in217, in218, in219) = (CE::> {}, CE::> {}, CE::> {}); + let (in220, in221, in222) = (CE::> {}, CE::> {}, CE::> {}); + let (in223, in224, in225) = (CE::> {}, CE::> {}, CE::> {}); + let (in226, in227, in228) = (CE::> {}, CE::> {}, CE::> {}); + let (in229, in230, in231) = (CE::> {}, CE::> {}, CE::> {}); + let (in232, in233, in234) = (CE::> {}, CE::> {}, CE::> {}); + let (in235, in236, in237) = (CE::> {}, CE::> {}, CE::> {}); + let (in238, in239, in240) = (CE::> {}, CE::> {}, CE::> {}); + let (in241, in242, in243) = (CE::> {}, CE::> {}, CE::> {}); + let (in244, in245, in246) = (CE::> {}, CE::> {}, CE::> {}); + let (in247, in248, in249) = (CE::> {}, CE::> {}, CE::> {}); + let (in250, in251, in252) = (CE::> {}, CE::> {}, CE::> {}); + let (in253, in254, in255) = (CE::> {}, CE::> {}, CE::> {}); + let (in256, in257, in258) = (CE::> {}, CE::> {}, CE::> {}); + let (in259, in260, in261) = (CE::> {}, CE::> {}, CE::> {}); let t0 = circuit_mul(in66, in66); // Compute z^2 let t1 = circuit_mul(t0, in66); // Compute z^3 let t2 = circuit_mul(t1, in66); // Compute z^4 @@ -4352,13 +4994,13 @@ fn run_BN254_MP_CHECK_FINALIZE_BN_3P_2F_circuit( let t76 = circuit_sub(in39, t70); // Fp2 sub coeff 1/1 let t77 = circuit_sub(in36, t61); // Fp2 sub coeff 0/1 let t78 = circuit_sub(in37, t64); // Fp2 sub coeff 1/1 - let t79 = circuit_mul(t77, t77); // Fp2 Div x/y start : Fp2 Inv y start + let t79 = circuit_mul(t77, t77); // Fp2 Inv start let t80 = circuit_mul(t78, t78); let t81 = circuit_add(t79, t80); let t82 = circuit_inverse(t81); - let t83 = circuit_mul(t77, t82); // Fp2 Inv y real part end + let t83 = circuit_mul(t77, t82); // Fp2 Inv real part end let t84 = circuit_mul(t78, t82); - let t85 = circuit_sub(in6, t84); // Fp2 Inv y imag part end + let t85 = circuit_sub(in6, t84); // Fp2 Inv imag part end let t86 = circuit_mul(t75, t83); // Fp2 mul start let t87 = circuit_mul(t76, t85); let t88 = circuit_sub(t86, t87); // Fp2 mul real part end @@ -4396,13 +5038,13 @@ fn run_BN254_MP_CHECK_FINALIZE_BN_3P_2F_circuit( let t120 = circuit_sub(t110, t74); // Fp2 sub coeff 1/1 let t121 = circuit_sub(t99, t71); // Fp2 sub coeff 0/1 let t122 = circuit_sub(t100, t72); // Fp2 sub coeff 1/1 - let t123 = circuit_mul(t121, t121); // Fp2 Div x/y start : Fp2 Inv y start + let t123 = circuit_mul(t121, t121); // Fp2 Inv start let t124 = circuit_mul(t122, t122); let t125 = circuit_add(t123, t124); let t126 = circuit_inverse(t125); - let t127 = circuit_mul(t121, t126); // Fp2 Inv y real part end + let t127 = circuit_mul(t121, t126); // Fp2 Inv real part end let t128 = circuit_mul(t122, t126); - let t129 = circuit_sub(in6, t128); // Fp2 Inv y imag part end + let t129 = circuit_sub(in6, t128); // Fp2 Inv imag part end let t130 = circuit_mul(t119, t127); // Fp2 mul start let t131 = circuit_mul(t120, t129); let t132 = circuit_sub(t130, t131); // Fp2 mul real part end @@ -4529,241 +5171,393 @@ fn run_BN254_MP_CHECK_FINALIZE_BN_3P_2F_circuit( let t253 = circuit_mul(t12, t252); // c_n_minus_1 * ((Π(n-1,k) (Pk(z)) - R_n_minus_1(z)) let t254 = circuit_add(in70, t247); let t255 = circuit_add(t254, t253); - let t256 = circuit_mul(in185, in66); // Eval big_Q Horner step: multiply by z - let t257 = circuit_add(in184, t256); // Eval big_Q Horner step: add coefficient_112 + let t256 = circuit_mul(in261, in66); // Eval big_Q Horner step: multiply by z + let t257 = circuit_add(in260, t256); // Eval big_Q Horner step: add coefficient_188 let t258 = circuit_mul(t257, in66); // Eval big_Q Horner step: multiply by z - let t259 = circuit_add(in183, t258); // Eval big_Q Horner step: add coefficient_111 + let t259 = circuit_add(in259, t258); // Eval big_Q Horner step: add coefficient_187 let t260 = circuit_mul(t259, in66); // Eval big_Q Horner step: multiply by z - let t261 = circuit_add(in182, t260); // Eval big_Q Horner step: add coefficient_110 + let t261 = circuit_add(in258, t260); // Eval big_Q Horner step: add coefficient_186 let t262 = circuit_mul(t261, in66); // Eval big_Q Horner step: multiply by z - let t263 = circuit_add(in181, t262); // Eval big_Q Horner step: add coefficient_109 + let t263 = circuit_add(in257, t262); // Eval big_Q Horner step: add coefficient_185 let t264 = circuit_mul(t263, in66); // Eval big_Q Horner step: multiply by z - let t265 = circuit_add(in180, t264); // Eval big_Q Horner step: add coefficient_108 + let t265 = circuit_add(in256, t264); // Eval big_Q Horner step: add coefficient_184 let t266 = circuit_mul(t265, in66); // Eval big_Q Horner step: multiply by z - let t267 = circuit_add(in179, t266); // Eval big_Q Horner step: add coefficient_107 + let t267 = circuit_add(in255, t266); // Eval big_Q Horner step: add coefficient_183 let t268 = circuit_mul(t267, in66); // Eval big_Q Horner step: multiply by z - let t269 = circuit_add(in178, t268); // Eval big_Q Horner step: add coefficient_106 + let t269 = circuit_add(in254, t268); // Eval big_Q Horner step: add coefficient_182 let t270 = circuit_mul(t269, in66); // Eval big_Q Horner step: multiply by z - let t271 = circuit_add(in177, t270); // Eval big_Q Horner step: add coefficient_105 + let t271 = circuit_add(in253, t270); // Eval big_Q Horner step: add coefficient_181 let t272 = circuit_mul(t271, in66); // Eval big_Q Horner step: multiply by z - let t273 = circuit_add(in176, t272); // Eval big_Q Horner step: add coefficient_104 + let t273 = circuit_add(in252, t272); // Eval big_Q Horner step: add coefficient_180 let t274 = circuit_mul(t273, in66); // Eval big_Q Horner step: multiply by z - let t275 = circuit_add(in175, t274); // Eval big_Q Horner step: add coefficient_103 + let t275 = circuit_add(in251, t274); // Eval big_Q Horner step: add coefficient_179 let t276 = circuit_mul(t275, in66); // Eval big_Q Horner step: multiply by z - let t277 = circuit_add(in174, t276); // Eval big_Q Horner step: add coefficient_102 + let t277 = circuit_add(in250, t276); // Eval big_Q Horner step: add coefficient_178 let t278 = circuit_mul(t277, in66); // Eval big_Q Horner step: multiply by z - let t279 = circuit_add(in173, t278); // Eval big_Q Horner step: add coefficient_101 + let t279 = circuit_add(in249, t278); // Eval big_Q Horner step: add coefficient_177 let t280 = circuit_mul(t279, in66); // Eval big_Q Horner step: multiply by z - let t281 = circuit_add(in172, t280); // Eval big_Q Horner step: add coefficient_100 + let t281 = circuit_add(in248, t280); // Eval big_Q Horner step: add coefficient_176 let t282 = circuit_mul(t281, in66); // Eval big_Q Horner step: multiply by z - let t283 = circuit_add(in171, t282); // Eval big_Q Horner step: add coefficient_99 + let t283 = circuit_add(in247, t282); // Eval big_Q Horner step: add coefficient_175 let t284 = circuit_mul(t283, in66); // Eval big_Q Horner step: multiply by z - let t285 = circuit_add(in170, t284); // Eval big_Q Horner step: add coefficient_98 + let t285 = circuit_add(in246, t284); // Eval big_Q Horner step: add coefficient_174 let t286 = circuit_mul(t285, in66); // Eval big_Q Horner step: multiply by z - let t287 = circuit_add(in169, t286); // Eval big_Q Horner step: add coefficient_97 + let t287 = circuit_add(in245, t286); // Eval big_Q Horner step: add coefficient_173 let t288 = circuit_mul(t287, in66); // Eval big_Q Horner step: multiply by z - let t289 = circuit_add(in168, t288); // Eval big_Q Horner step: add coefficient_96 + let t289 = circuit_add(in244, t288); // Eval big_Q Horner step: add coefficient_172 let t290 = circuit_mul(t289, in66); // Eval big_Q Horner step: multiply by z - let t291 = circuit_add(in167, t290); // Eval big_Q Horner step: add coefficient_95 + let t291 = circuit_add(in243, t290); // Eval big_Q Horner step: add coefficient_171 let t292 = circuit_mul(t291, in66); // Eval big_Q Horner step: multiply by z - let t293 = circuit_add(in166, t292); // Eval big_Q Horner step: add coefficient_94 + let t293 = circuit_add(in242, t292); // Eval big_Q Horner step: add coefficient_170 let t294 = circuit_mul(t293, in66); // Eval big_Q Horner step: multiply by z - let t295 = circuit_add(in165, t294); // Eval big_Q Horner step: add coefficient_93 + let t295 = circuit_add(in241, t294); // Eval big_Q Horner step: add coefficient_169 let t296 = circuit_mul(t295, in66); // Eval big_Q Horner step: multiply by z - let t297 = circuit_add(in164, t296); // Eval big_Q Horner step: add coefficient_92 + let t297 = circuit_add(in240, t296); // Eval big_Q Horner step: add coefficient_168 let t298 = circuit_mul(t297, in66); // Eval big_Q Horner step: multiply by z - let t299 = circuit_add(in163, t298); // Eval big_Q Horner step: add coefficient_91 + let t299 = circuit_add(in239, t298); // Eval big_Q Horner step: add coefficient_167 let t300 = circuit_mul(t299, in66); // Eval big_Q Horner step: multiply by z - let t301 = circuit_add(in162, t300); // Eval big_Q Horner step: add coefficient_90 + let t301 = circuit_add(in238, t300); // Eval big_Q Horner step: add coefficient_166 let t302 = circuit_mul(t301, in66); // Eval big_Q Horner step: multiply by z - let t303 = circuit_add(in161, t302); // Eval big_Q Horner step: add coefficient_89 + let t303 = circuit_add(in237, t302); // Eval big_Q Horner step: add coefficient_165 let t304 = circuit_mul(t303, in66); // Eval big_Q Horner step: multiply by z - let t305 = circuit_add(in160, t304); // Eval big_Q Horner step: add coefficient_88 + let t305 = circuit_add(in236, t304); // Eval big_Q Horner step: add coefficient_164 let t306 = circuit_mul(t305, in66); // Eval big_Q Horner step: multiply by z - let t307 = circuit_add(in159, t306); // Eval big_Q Horner step: add coefficient_87 + let t307 = circuit_add(in235, t306); // Eval big_Q Horner step: add coefficient_163 let t308 = circuit_mul(t307, in66); // Eval big_Q Horner step: multiply by z - let t309 = circuit_add(in158, t308); // Eval big_Q Horner step: add coefficient_86 + let t309 = circuit_add(in234, t308); // Eval big_Q Horner step: add coefficient_162 let t310 = circuit_mul(t309, in66); // Eval big_Q Horner step: multiply by z - let t311 = circuit_add(in157, t310); // Eval big_Q Horner step: add coefficient_85 + let t311 = circuit_add(in233, t310); // Eval big_Q Horner step: add coefficient_161 let t312 = circuit_mul(t311, in66); // Eval big_Q Horner step: multiply by z - let t313 = circuit_add(in156, t312); // Eval big_Q Horner step: add coefficient_84 + let t313 = circuit_add(in232, t312); // Eval big_Q Horner step: add coefficient_160 let t314 = circuit_mul(t313, in66); // Eval big_Q Horner step: multiply by z - let t315 = circuit_add(in155, t314); // Eval big_Q Horner step: add coefficient_83 + let t315 = circuit_add(in231, t314); // Eval big_Q Horner step: add coefficient_159 let t316 = circuit_mul(t315, in66); // Eval big_Q Horner step: multiply by z - let t317 = circuit_add(in154, t316); // Eval big_Q Horner step: add coefficient_82 + let t317 = circuit_add(in230, t316); // Eval big_Q Horner step: add coefficient_158 let t318 = circuit_mul(t317, in66); // Eval big_Q Horner step: multiply by z - let t319 = circuit_add(in153, t318); // Eval big_Q Horner step: add coefficient_81 + let t319 = circuit_add(in229, t318); // Eval big_Q Horner step: add coefficient_157 let t320 = circuit_mul(t319, in66); // Eval big_Q Horner step: multiply by z - let t321 = circuit_add(in152, t320); // Eval big_Q Horner step: add coefficient_80 + let t321 = circuit_add(in228, t320); // Eval big_Q Horner step: add coefficient_156 let t322 = circuit_mul(t321, in66); // Eval big_Q Horner step: multiply by z - let t323 = circuit_add(in151, t322); // Eval big_Q Horner step: add coefficient_79 + let t323 = circuit_add(in227, t322); // Eval big_Q Horner step: add coefficient_155 let t324 = circuit_mul(t323, in66); // Eval big_Q Horner step: multiply by z - let t325 = circuit_add(in150, t324); // Eval big_Q Horner step: add coefficient_78 + let t325 = circuit_add(in226, t324); // Eval big_Q Horner step: add coefficient_154 let t326 = circuit_mul(t325, in66); // Eval big_Q Horner step: multiply by z - let t327 = circuit_add(in149, t326); // Eval big_Q Horner step: add coefficient_77 + let t327 = circuit_add(in225, t326); // Eval big_Q Horner step: add coefficient_153 let t328 = circuit_mul(t327, in66); // Eval big_Q Horner step: multiply by z - let t329 = circuit_add(in148, t328); // Eval big_Q Horner step: add coefficient_76 + let t329 = circuit_add(in224, t328); // Eval big_Q Horner step: add coefficient_152 let t330 = circuit_mul(t329, in66); // Eval big_Q Horner step: multiply by z - let t331 = circuit_add(in147, t330); // Eval big_Q Horner step: add coefficient_75 + let t331 = circuit_add(in223, t330); // Eval big_Q Horner step: add coefficient_151 let t332 = circuit_mul(t331, in66); // Eval big_Q Horner step: multiply by z - let t333 = circuit_add(in146, t332); // Eval big_Q Horner step: add coefficient_74 + let t333 = circuit_add(in222, t332); // Eval big_Q Horner step: add coefficient_150 let t334 = circuit_mul(t333, in66); // Eval big_Q Horner step: multiply by z - let t335 = circuit_add(in145, t334); // Eval big_Q Horner step: add coefficient_73 + let t335 = circuit_add(in221, t334); // Eval big_Q Horner step: add coefficient_149 let t336 = circuit_mul(t335, in66); // Eval big_Q Horner step: multiply by z - let t337 = circuit_add(in144, t336); // Eval big_Q Horner step: add coefficient_72 + let t337 = circuit_add(in220, t336); // Eval big_Q Horner step: add coefficient_148 let t338 = circuit_mul(t337, in66); // Eval big_Q Horner step: multiply by z - let t339 = circuit_add(in143, t338); // Eval big_Q Horner step: add coefficient_71 + let t339 = circuit_add(in219, t338); // Eval big_Q Horner step: add coefficient_147 let t340 = circuit_mul(t339, in66); // Eval big_Q Horner step: multiply by z - let t341 = circuit_add(in142, t340); // Eval big_Q Horner step: add coefficient_70 + let t341 = circuit_add(in218, t340); // Eval big_Q Horner step: add coefficient_146 let t342 = circuit_mul(t341, in66); // Eval big_Q Horner step: multiply by z - let t343 = circuit_add(in141, t342); // Eval big_Q Horner step: add coefficient_69 + let t343 = circuit_add(in217, t342); // Eval big_Q Horner step: add coefficient_145 let t344 = circuit_mul(t343, in66); // Eval big_Q Horner step: multiply by z - let t345 = circuit_add(in140, t344); // Eval big_Q Horner step: add coefficient_68 + let t345 = circuit_add(in216, t344); // Eval big_Q Horner step: add coefficient_144 let t346 = circuit_mul(t345, in66); // Eval big_Q Horner step: multiply by z - let t347 = circuit_add(in139, t346); // Eval big_Q Horner step: add coefficient_67 + let t347 = circuit_add(in215, t346); // Eval big_Q Horner step: add coefficient_143 let t348 = circuit_mul(t347, in66); // Eval big_Q Horner step: multiply by z - let t349 = circuit_add(in138, t348); // Eval big_Q Horner step: add coefficient_66 + let t349 = circuit_add(in214, t348); // Eval big_Q Horner step: add coefficient_142 let t350 = circuit_mul(t349, in66); // Eval big_Q Horner step: multiply by z - let t351 = circuit_add(in137, t350); // Eval big_Q Horner step: add coefficient_65 + let t351 = circuit_add(in213, t350); // Eval big_Q Horner step: add coefficient_141 let t352 = circuit_mul(t351, in66); // Eval big_Q Horner step: multiply by z - let t353 = circuit_add(in136, t352); // Eval big_Q Horner step: add coefficient_64 + let t353 = circuit_add(in212, t352); // Eval big_Q Horner step: add coefficient_140 let t354 = circuit_mul(t353, in66); // Eval big_Q Horner step: multiply by z - let t355 = circuit_add(in135, t354); // Eval big_Q Horner step: add coefficient_63 + let t355 = circuit_add(in211, t354); // Eval big_Q Horner step: add coefficient_139 let t356 = circuit_mul(t355, in66); // Eval big_Q Horner step: multiply by z - let t357 = circuit_add(in134, t356); // Eval big_Q Horner step: add coefficient_62 + let t357 = circuit_add(in210, t356); // Eval big_Q Horner step: add coefficient_138 let t358 = circuit_mul(t357, in66); // Eval big_Q Horner step: multiply by z - let t359 = circuit_add(in133, t358); // Eval big_Q Horner step: add coefficient_61 + let t359 = circuit_add(in209, t358); // Eval big_Q Horner step: add coefficient_137 let t360 = circuit_mul(t359, in66); // Eval big_Q Horner step: multiply by z - let t361 = circuit_add(in132, t360); // Eval big_Q Horner step: add coefficient_60 + let t361 = circuit_add(in208, t360); // Eval big_Q Horner step: add coefficient_136 let t362 = circuit_mul(t361, in66); // Eval big_Q Horner step: multiply by z - let t363 = circuit_add(in131, t362); // Eval big_Q Horner step: add coefficient_59 + let t363 = circuit_add(in207, t362); // Eval big_Q Horner step: add coefficient_135 let t364 = circuit_mul(t363, in66); // Eval big_Q Horner step: multiply by z - let t365 = circuit_add(in130, t364); // Eval big_Q Horner step: add coefficient_58 + let t365 = circuit_add(in206, t364); // Eval big_Q Horner step: add coefficient_134 let t366 = circuit_mul(t365, in66); // Eval big_Q Horner step: multiply by z - let t367 = circuit_add(in129, t366); // Eval big_Q Horner step: add coefficient_57 + let t367 = circuit_add(in205, t366); // Eval big_Q Horner step: add coefficient_133 let t368 = circuit_mul(t367, in66); // Eval big_Q Horner step: multiply by z - let t369 = circuit_add(in128, t368); // Eval big_Q Horner step: add coefficient_56 + let t369 = circuit_add(in204, t368); // Eval big_Q Horner step: add coefficient_132 let t370 = circuit_mul(t369, in66); // Eval big_Q Horner step: multiply by z - let t371 = circuit_add(in127, t370); // Eval big_Q Horner step: add coefficient_55 + let t371 = circuit_add(in203, t370); // Eval big_Q Horner step: add coefficient_131 let t372 = circuit_mul(t371, in66); // Eval big_Q Horner step: multiply by z - let t373 = circuit_add(in126, t372); // Eval big_Q Horner step: add coefficient_54 + let t373 = circuit_add(in202, t372); // Eval big_Q Horner step: add coefficient_130 let t374 = circuit_mul(t373, in66); // Eval big_Q Horner step: multiply by z - let t375 = circuit_add(in125, t374); // Eval big_Q Horner step: add coefficient_53 + let t375 = circuit_add(in201, t374); // Eval big_Q Horner step: add coefficient_129 let t376 = circuit_mul(t375, in66); // Eval big_Q Horner step: multiply by z - let t377 = circuit_add(in124, t376); // Eval big_Q Horner step: add coefficient_52 + let t377 = circuit_add(in200, t376); // Eval big_Q Horner step: add coefficient_128 let t378 = circuit_mul(t377, in66); // Eval big_Q Horner step: multiply by z - let t379 = circuit_add(in123, t378); // Eval big_Q Horner step: add coefficient_51 + let t379 = circuit_add(in199, t378); // Eval big_Q Horner step: add coefficient_127 let t380 = circuit_mul(t379, in66); // Eval big_Q Horner step: multiply by z - let t381 = circuit_add(in122, t380); // Eval big_Q Horner step: add coefficient_50 + let t381 = circuit_add(in198, t380); // Eval big_Q Horner step: add coefficient_126 let t382 = circuit_mul(t381, in66); // Eval big_Q Horner step: multiply by z - let t383 = circuit_add(in121, t382); // Eval big_Q Horner step: add coefficient_49 + let t383 = circuit_add(in197, t382); // Eval big_Q Horner step: add coefficient_125 let t384 = circuit_mul(t383, in66); // Eval big_Q Horner step: multiply by z - let t385 = circuit_add(in120, t384); // Eval big_Q Horner step: add coefficient_48 + let t385 = circuit_add(in196, t384); // Eval big_Q Horner step: add coefficient_124 let t386 = circuit_mul(t385, in66); // Eval big_Q Horner step: multiply by z - let t387 = circuit_add(in119, t386); // Eval big_Q Horner step: add coefficient_47 + let t387 = circuit_add(in195, t386); // Eval big_Q Horner step: add coefficient_123 let t388 = circuit_mul(t387, in66); // Eval big_Q Horner step: multiply by z - let t389 = circuit_add(in118, t388); // Eval big_Q Horner step: add coefficient_46 + let t389 = circuit_add(in194, t388); // Eval big_Q Horner step: add coefficient_122 let t390 = circuit_mul(t389, in66); // Eval big_Q Horner step: multiply by z - let t391 = circuit_add(in117, t390); // Eval big_Q Horner step: add coefficient_45 + let t391 = circuit_add(in193, t390); // Eval big_Q Horner step: add coefficient_121 let t392 = circuit_mul(t391, in66); // Eval big_Q Horner step: multiply by z - let t393 = circuit_add(in116, t392); // Eval big_Q Horner step: add coefficient_44 + let t393 = circuit_add(in192, t392); // Eval big_Q Horner step: add coefficient_120 let t394 = circuit_mul(t393, in66); // Eval big_Q Horner step: multiply by z - let t395 = circuit_add(in115, t394); // Eval big_Q Horner step: add coefficient_43 + let t395 = circuit_add(in191, t394); // Eval big_Q Horner step: add coefficient_119 let t396 = circuit_mul(t395, in66); // Eval big_Q Horner step: multiply by z - let t397 = circuit_add(in114, t396); // Eval big_Q Horner step: add coefficient_42 + let t397 = circuit_add(in190, t396); // Eval big_Q Horner step: add coefficient_118 let t398 = circuit_mul(t397, in66); // Eval big_Q Horner step: multiply by z - let t399 = circuit_add(in113, t398); // Eval big_Q Horner step: add coefficient_41 + let t399 = circuit_add(in189, t398); // Eval big_Q Horner step: add coefficient_117 let t400 = circuit_mul(t399, in66); // Eval big_Q Horner step: multiply by z - let t401 = circuit_add(in112, t400); // Eval big_Q Horner step: add coefficient_40 + let t401 = circuit_add(in188, t400); // Eval big_Q Horner step: add coefficient_116 let t402 = circuit_mul(t401, in66); // Eval big_Q Horner step: multiply by z - let t403 = circuit_add(in111, t402); // Eval big_Q Horner step: add coefficient_39 + let t403 = circuit_add(in187, t402); // Eval big_Q Horner step: add coefficient_115 let t404 = circuit_mul(t403, in66); // Eval big_Q Horner step: multiply by z - let t405 = circuit_add(in110, t404); // Eval big_Q Horner step: add coefficient_38 + let t405 = circuit_add(in186, t404); // Eval big_Q Horner step: add coefficient_114 let t406 = circuit_mul(t405, in66); // Eval big_Q Horner step: multiply by z - let t407 = circuit_add(in109, t406); // Eval big_Q Horner step: add coefficient_37 + let t407 = circuit_add(in185, t406); // Eval big_Q Horner step: add coefficient_113 let t408 = circuit_mul(t407, in66); // Eval big_Q Horner step: multiply by z - let t409 = circuit_add(in108, t408); // Eval big_Q Horner step: add coefficient_36 + let t409 = circuit_add(in184, t408); // Eval big_Q Horner step: add coefficient_112 let t410 = circuit_mul(t409, in66); // Eval big_Q Horner step: multiply by z - let t411 = circuit_add(in107, t410); // Eval big_Q Horner step: add coefficient_35 + let t411 = circuit_add(in183, t410); // Eval big_Q Horner step: add coefficient_111 let t412 = circuit_mul(t411, in66); // Eval big_Q Horner step: multiply by z - let t413 = circuit_add(in106, t412); // Eval big_Q Horner step: add coefficient_34 + let t413 = circuit_add(in182, t412); // Eval big_Q Horner step: add coefficient_110 let t414 = circuit_mul(t413, in66); // Eval big_Q Horner step: multiply by z - let t415 = circuit_add(in105, t414); // Eval big_Q Horner step: add coefficient_33 + let t415 = circuit_add(in181, t414); // Eval big_Q Horner step: add coefficient_109 let t416 = circuit_mul(t415, in66); // Eval big_Q Horner step: multiply by z - let t417 = circuit_add(in104, t416); // Eval big_Q Horner step: add coefficient_32 + let t417 = circuit_add(in180, t416); // Eval big_Q Horner step: add coefficient_108 let t418 = circuit_mul(t417, in66); // Eval big_Q Horner step: multiply by z - let t419 = circuit_add(in103, t418); // Eval big_Q Horner step: add coefficient_31 + let t419 = circuit_add(in179, t418); // Eval big_Q Horner step: add coefficient_107 let t420 = circuit_mul(t419, in66); // Eval big_Q Horner step: multiply by z - let t421 = circuit_add(in102, t420); // Eval big_Q Horner step: add coefficient_30 + let t421 = circuit_add(in178, t420); // Eval big_Q Horner step: add coefficient_106 let t422 = circuit_mul(t421, in66); // Eval big_Q Horner step: multiply by z - let t423 = circuit_add(in101, t422); // Eval big_Q Horner step: add coefficient_29 + let t423 = circuit_add(in177, t422); // Eval big_Q Horner step: add coefficient_105 let t424 = circuit_mul(t423, in66); // Eval big_Q Horner step: multiply by z - let t425 = circuit_add(in100, t424); // Eval big_Q Horner step: add coefficient_28 + let t425 = circuit_add(in176, t424); // Eval big_Q Horner step: add coefficient_104 let t426 = circuit_mul(t425, in66); // Eval big_Q Horner step: multiply by z - let t427 = circuit_add(in99, t426); // Eval big_Q Horner step: add coefficient_27 + let t427 = circuit_add(in175, t426); // Eval big_Q Horner step: add coefficient_103 let t428 = circuit_mul(t427, in66); // Eval big_Q Horner step: multiply by z - let t429 = circuit_add(in98, t428); // Eval big_Q Horner step: add coefficient_26 + let t429 = circuit_add(in174, t428); // Eval big_Q Horner step: add coefficient_102 let t430 = circuit_mul(t429, in66); // Eval big_Q Horner step: multiply by z - let t431 = circuit_add(in97, t430); // Eval big_Q Horner step: add coefficient_25 + let t431 = circuit_add(in173, t430); // Eval big_Q Horner step: add coefficient_101 let t432 = circuit_mul(t431, in66); // Eval big_Q Horner step: multiply by z - let t433 = circuit_add(in96, t432); // Eval big_Q Horner step: add coefficient_24 + let t433 = circuit_add(in172, t432); // Eval big_Q Horner step: add coefficient_100 let t434 = circuit_mul(t433, in66); // Eval big_Q Horner step: multiply by z - let t435 = circuit_add(in95, t434); // Eval big_Q Horner step: add coefficient_23 + let t435 = circuit_add(in171, t434); // Eval big_Q Horner step: add coefficient_99 let t436 = circuit_mul(t435, in66); // Eval big_Q Horner step: multiply by z - let t437 = circuit_add(in94, t436); // Eval big_Q Horner step: add coefficient_22 + let t437 = circuit_add(in170, t436); // Eval big_Q Horner step: add coefficient_98 let t438 = circuit_mul(t437, in66); // Eval big_Q Horner step: multiply by z - let t439 = circuit_add(in93, t438); // Eval big_Q Horner step: add coefficient_21 + let t439 = circuit_add(in169, t438); // Eval big_Q Horner step: add coefficient_97 let t440 = circuit_mul(t439, in66); // Eval big_Q Horner step: multiply by z - let t441 = circuit_add(in92, t440); // Eval big_Q Horner step: add coefficient_20 + let t441 = circuit_add(in168, t440); // Eval big_Q Horner step: add coefficient_96 let t442 = circuit_mul(t441, in66); // Eval big_Q Horner step: multiply by z - let t443 = circuit_add(in91, t442); // Eval big_Q Horner step: add coefficient_19 + let t443 = circuit_add(in167, t442); // Eval big_Q Horner step: add coefficient_95 let t444 = circuit_mul(t443, in66); // Eval big_Q Horner step: multiply by z - let t445 = circuit_add(in90, t444); // Eval big_Q Horner step: add coefficient_18 + let t445 = circuit_add(in166, t444); // Eval big_Q Horner step: add coefficient_94 let t446 = circuit_mul(t445, in66); // Eval big_Q Horner step: multiply by z - let t447 = circuit_add(in89, t446); // Eval big_Q Horner step: add coefficient_17 + let t447 = circuit_add(in165, t446); // Eval big_Q Horner step: add coefficient_93 let t448 = circuit_mul(t447, in66); // Eval big_Q Horner step: multiply by z - let t449 = circuit_add(in88, t448); // Eval big_Q Horner step: add coefficient_16 + let t449 = circuit_add(in164, t448); // Eval big_Q Horner step: add coefficient_92 let t450 = circuit_mul(t449, in66); // Eval big_Q Horner step: multiply by z - let t451 = circuit_add(in87, t450); // Eval big_Q Horner step: add coefficient_15 + let t451 = circuit_add(in163, t450); // Eval big_Q Horner step: add coefficient_91 let t452 = circuit_mul(t451, in66); // Eval big_Q Horner step: multiply by z - let t453 = circuit_add(in86, t452); // Eval big_Q Horner step: add coefficient_14 + let t453 = circuit_add(in162, t452); // Eval big_Q Horner step: add coefficient_90 let t454 = circuit_mul(t453, in66); // Eval big_Q Horner step: multiply by z - let t455 = circuit_add(in85, t454); // Eval big_Q Horner step: add coefficient_13 + let t455 = circuit_add(in161, t454); // Eval big_Q Horner step: add coefficient_89 let t456 = circuit_mul(t455, in66); // Eval big_Q Horner step: multiply by z - let t457 = circuit_add(in84, t456); // Eval big_Q Horner step: add coefficient_12 + let t457 = circuit_add(in160, t456); // Eval big_Q Horner step: add coefficient_88 let t458 = circuit_mul(t457, in66); // Eval big_Q Horner step: multiply by z - let t459 = circuit_add(in83, t458); // Eval big_Q Horner step: add coefficient_11 + let t459 = circuit_add(in159, t458); // Eval big_Q Horner step: add coefficient_87 let t460 = circuit_mul(t459, in66); // Eval big_Q Horner step: multiply by z - let t461 = circuit_add(in82, t460); // Eval big_Q Horner step: add coefficient_10 + let t461 = circuit_add(in158, t460); // Eval big_Q Horner step: add coefficient_86 let t462 = circuit_mul(t461, in66); // Eval big_Q Horner step: multiply by z - let t463 = circuit_add(in81, t462); // Eval big_Q Horner step: add coefficient_9 + let t463 = circuit_add(in157, t462); // Eval big_Q Horner step: add coefficient_85 let t464 = circuit_mul(t463, in66); // Eval big_Q Horner step: multiply by z - let t465 = circuit_add(in80, t464); // Eval big_Q Horner step: add coefficient_8 + let t465 = circuit_add(in156, t464); // Eval big_Q Horner step: add coefficient_84 let t466 = circuit_mul(t465, in66); // Eval big_Q Horner step: multiply by z - let t467 = circuit_add(in79, t466); // Eval big_Q Horner step: add coefficient_7 + let t467 = circuit_add(in155, t466); // Eval big_Q Horner step: add coefficient_83 let t468 = circuit_mul(t467, in66); // Eval big_Q Horner step: multiply by z - let t469 = circuit_add(in78, t468); // Eval big_Q Horner step: add coefficient_6 + let t469 = circuit_add(in154, t468); // Eval big_Q Horner step: add coefficient_82 let t470 = circuit_mul(t469, in66); // Eval big_Q Horner step: multiply by z - let t471 = circuit_add(in77, t470); // Eval big_Q Horner step: add coefficient_5 + let t471 = circuit_add(in153, t470); // Eval big_Q Horner step: add coefficient_81 let t472 = circuit_mul(t471, in66); // Eval big_Q Horner step: multiply by z - let t473 = circuit_add(in76, t472); // Eval big_Q Horner step: add coefficient_4 + let t473 = circuit_add(in152, t472); // Eval big_Q Horner step: add coefficient_80 let t474 = circuit_mul(t473, in66); // Eval big_Q Horner step: multiply by z - let t475 = circuit_add(in75, t474); // Eval big_Q Horner step: add coefficient_3 + let t475 = circuit_add(in151, t474); // Eval big_Q Horner step: add coefficient_79 let t476 = circuit_mul(t475, in66); // Eval big_Q Horner step: multiply by z - let t477 = circuit_add(in74, t476); // Eval big_Q Horner step: add coefficient_2 + let t477 = circuit_add(in150, t476); // Eval big_Q Horner step: add coefficient_78 let t478 = circuit_mul(t477, in66); // Eval big_Q Horner step: multiply by z - let t479 = circuit_add(in73, t478); // Eval big_Q Horner step: add coefficient_1 + let t479 = circuit_add(in149, t478); // Eval big_Q Horner step: add coefficient_77 let t480 = circuit_mul(t479, in66); // Eval big_Q Horner step: multiply by z - let t481 = circuit_add(in72, t480); // Eval big_Q Horner step: add coefficient_0 - let t482 = circuit_mul(in9, t4); // Eval sparse poly P_irr step coeff_6 * z^6 - let t483 = circuit_add(in8, t482); // Eval sparse poly P_irr step + coeff_6 * z^6 - let t484 = circuit_add(t483, t10); // Eval sparse poly P_irr step + 1*z^12 - let t485 = circuit_mul(t481, t484); - let t486 = circuit_sub(t255, t485); + let t481 = circuit_add(in148, t480); // Eval big_Q Horner step: add coefficient_76 + let t482 = circuit_mul(t481, in66); // Eval big_Q Horner step: multiply by z + let t483 = circuit_add(in147, t482); // Eval big_Q Horner step: add coefficient_75 + let t484 = circuit_mul(t483, in66); // Eval big_Q Horner step: multiply by z + let t485 = circuit_add(in146, t484); // Eval big_Q Horner step: add coefficient_74 + let t486 = circuit_mul(t485, in66); // Eval big_Q Horner step: multiply by z + let t487 = circuit_add(in145, t486); // Eval big_Q Horner step: add coefficient_73 + let t488 = circuit_mul(t487, in66); // Eval big_Q Horner step: multiply by z + let t489 = circuit_add(in144, t488); // Eval big_Q Horner step: add coefficient_72 + let t490 = circuit_mul(t489, in66); // Eval big_Q Horner step: multiply by z + let t491 = circuit_add(in143, t490); // Eval big_Q Horner step: add coefficient_71 + let t492 = circuit_mul(t491, in66); // Eval big_Q Horner step: multiply by z + let t493 = circuit_add(in142, t492); // Eval big_Q Horner step: add coefficient_70 + let t494 = circuit_mul(t493, in66); // Eval big_Q Horner step: multiply by z + let t495 = circuit_add(in141, t494); // Eval big_Q Horner step: add coefficient_69 + let t496 = circuit_mul(t495, in66); // Eval big_Q Horner step: multiply by z + let t497 = circuit_add(in140, t496); // Eval big_Q Horner step: add coefficient_68 + let t498 = circuit_mul(t497, in66); // Eval big_Q Horner step: multiply by z + let t499 = circuit_add(in139, t498); // Eval big_Q Horner step: add coefficient_67 + let t500 = circuit_mul(t499, in66); // Eval big_Q Horner step: multiply by z + let t501 = circuit_add(in138, t500); // Eval big_Q Horner step: add coefficient_66 + let t502 = circuit_mul(t501, in66); // Eval big_Q Horner step: multiply by z + let t503 = circuit_add(in137, t502); // Eval big_Q Horner step: add coefficient_65 + let t504 = circuit_mul(t503, in66); // Eval big_Q Horner step: multiply by z + let t505 = circuit_add(in136, t504); // Eval big_Q Horner step: add coefficient_64 + let t506 = circuit_mul(t505, in66); // Eval big_Q Horner step: multiply by z + let t507 = circuit_add(in135, t506); // Eval big_Q Horner step: add coefficient_63 + let t508 = circuit_mul(t507, in66); // Eval big_Q Horner step: multiply by z + let t509 = circuit_add(in134, t508); // Eval big_Q Horner step: add coefficient_62 + let t510 = circuit_mul(t509, in66); // Eval big_Q Horner step: multiply by z + let t511 = circuit_add(in133, t510); // Eval big_Q Horner step: add coefficient_61 + let t512 = circuit_mul(t511, in66); // Eval big_Q Horner step: multiply by z + let t513 = circuit_add(in132, t512); // Eval big_Q Horner step: add coefficient_60 + let t514 = circuit_mul(t513, in66); // Eval big_Q Horner step: multiply by z + let t515 = circuit_add(in131, t514); // Eval big_Q Horner step: add coefficient_59 + let t516 = circuit_mul(t515, in66); // Eval big_Q Horner step: multiply by z + let t517 = circuit_add(in130, t516); // Eval big_Q Horner step: add coefficient_58 + let t518 = circuit_mul(t517, in66); // Eval big_Q Horner step: multiply by z + let t519 = circuit_add(in129, t518); // Eval big_Q Horner step: add coefficient_57 + let t520 = circuit_mul(t519, in66); // Eval big_Q Horner step: multiply by z + let t521 = circuit_add(in128, t520); // Eval big_Q Horner step: add coefficient_56 + let t522 = circuit_mul(t521, in66); // Eval big_Q Horner step: multiply by z + let t523 = circuit_add(in127, t522); // Eval big_Q Horner step: add coefficient_55 + let t524 = circuit_mul(t523, in66); // Eval big_Q Horner step: multiply by z + let t525 = circuit_add(in126, t524); // Eval big_Q Horner step: add coefficient_54 + let t526 = circuit_mul(t525, in66); // Eval big_Q Horner step: multiply by z + let t527 = circuit_add(in125, t526); // Eval big_Q Horner step: add coefficient_53 + let t528 = circuit_mul(t527, in66); // Eval big_Q Horner step: multiply by z + let t529 = circuit_add(in124, t528); // Eval big_Q Horner step: add coefficient_52 + let t530 = circuit_mul(t529, in66); // Eval big_Q Horner step: multiply by z + let t531 = circuit_add(in123, t530); // Eval big_Q Horner step: add coefficient_51 + let t532 = circuit_mul(t531, in66); // Eval big_Q Horner step: multiply by z + let t533 = circuit_add(in122, t532); // Eval big_Q Horner step: add coefficient_50 + let t534 = circuit_mul(t533, in66); // Eval big_Q Horner step: multiply by z + let t535 = circuit_add(in121, t534); // Eval big_Q Horner step: add coefficient_49 + let t536 = circuit_mul(t535, in66); // Eval big_Q Horner step: multiply by z + let t537 = circuit_add(in120, t536); // Eval big_Q Horner step: add coefficient_48 + let t538 = circuit_mul(t537, in66); // Eval big_Q Horner step: multiply by z + let t539 = circuit_add(in119, t538); // Eval big_Q Horner step: add coefficient_47 + let t540 = circuit_mul(t539, in66); // Eval big_Q Horner step: multiply by z + let t541 = circuit_add(in118, t540); // Eval big_Q Horner step: add coefficient_46 + let t542 = circuit_mul(t541, in66); // Eval big_Q Horner step: multiply by z + let t543 = circuit_add(in117, t542); // Eval big_Q Horner step: add coefficient_45 + let t544 = circuit_mul(t543, in66); // Eval big_Q Horner step: multiply by z + let t545 = circuit_add(in116, t544); // Eval big_Q Horner step: add coefficient_44 + let t546 = circuit_mul(t545, in66); // Eval big_Q Horner step: multiply by z + let t547 = circuit_add(in115, t546); // Eval big_Q Horner step: add coefficient_43 + let t548 = circuit_mul(t547, in66); // Eval big_Q Horner step: multiply by z + let t549 = circuit_add(in114, t548); // Eval big_Q Horner step: add coefficient_42 + let t550 = circuit_mul(t549, in66); // Eval big_Q Horner step: multiply by z + let t551 = circuit_add(in113, t550); // Eval big_Q Horner step: add coefficient_41 + let t552 = circuit_mul(t551, in66); // Eval big_Q Horner step: multiply by z + let t553 = circuit_add(in112, t552); // Eval big_Q Horner step: add coefficient_40 + let t554 = circuit_mul(t553, in66); // Eval big_Q Horner step: multiply by z + let t555 = circuit_add(in111, t554); // Eval big_Q Horner step: add coefficient_39 + let t556 = circuit_mul(t555, in66); // Eval big_Q Horner step: multiply by z + let t557 = circuit_add(in110, t556); // Eval big_Q Horner step: add coefficient_38 + let t558 = circuit_mul(t557, in66); // Eval big_Q Horner step: multiply by z + let t559 = circuit_add(in109, t558); // Eval big_Q Horner step: add coefficient_37 + let t560 = circuit_mul(t559, in66); // Eval big_Q Horner step: multiply by z + let t561 = circuit_add(in108, t560); // Eval big_Q Horner step: add coefficient_36 + let t562 = circuit_mul(t561, in66); // Eval big_Q Horner step: multiply by z + let t563 = circuit_add(in107, t562); // Eval big_Q Horner step: add coefficient_35 + let t564 = circuit_mul(t563, in66); // Eval big_Q Horner step: multiply by z + let t565 = circuit_add(in106, t564); // Eval big_Q Horner step: add coefficient_34 + let t566 = circuit_mul(t565, in66); // Eval big_Q Horner step: multiply by z + let t567 = circuit_add(in105, t566); // Eval big_Q Horner step: add coefficient_33 + let t568 = circuit_mul(t567, in66); // Eval big_Q Horner step: multiply by z + let t569 = circuit_add(in104, t568); // Eval big_Q Horner step: add coefficient_32 + let t570 = circuit_mul(t569, in66); // Eval big_Q Horner step: multiply by z + let t571 = circuit_add(in103, t570); // Eval big_Q Horner step: add coefficient_31 + let t572 = circuit_mul(t571, in66); // Eval big_Q Horner step: multiply by z + let t573 = circuit_add(in102, t572); // Eval big_Q Horner step: add coefficient_30 + let t574 = circuit_mul(t573, in66); // Eval big_Q Horner step: multiply by z + let t575 = circuit_add(in101, t574); // Eval big_Q Horner step: add coefficient_29 + let t576 = circuit_mul(t575, in66); // Eval big_Q Horner step: multiply by z + let t577 = circuit_add(in100, t576); // Eval big_Q Horner step: add coefficient_28 + let t578 = circuit_mul(t577, in66); // Eval big_Q Horner step: multiply by z + let t579 = circuit_add(in99, t578); // Eval big_Q Horner step: add coefficient_27 + let t580 = circuit_mul(t579, in66); // Eval big_Q Horner step: multiply by z + let t581 = circuit_add(in98, t580); // Eval big_Q Horner step: add coefficient_26 + let t582 = circuit_mul(t581, in66); // Eval big_Q Horner step: multiply by z + let t583 = circuit_add(in97, t582); // Eval big_Q Horner step: add coefficient_25 + let t584 = circuit_mul(t583, in66); // Eval big_Q Horner step: multiply by z + let t585 = circuit_add(in96, t584); // Eval big_Q Horner step: add coefficient_24 + let t586 = circuit_mul(t585, in66); // Eval big_Q Horner step: multiply by z + let t587 = circuit_add(in95, t586); // Eval big_Q Horner step: add coefficient_23 + let t588 = circuit_mul(t587, in66); // Eval big_Q Horner step: multiply by z + let t589 = circuit_add(in94, t588); // Eval big_Q Horner step: add coefficient_22 + let t590 = circuit_mul(t589, in66); // Eval big_Q Horner step: multiply by z + let t591 = circuit_add(in93, t590); // Eval big_Q Horner step: add coefficient_21 + let t592 = circuit_mul(t591, in66); // Eval big_Q Horner step: multiply by z + let t593 = circuit_add(in92, t592); // Eval big_Q Horner step: add coefficient_20 + let t594 = circuit_mul(t593, in66); // Eval big_Q Horner step: multiply by z + let t595 = circuit_add(in91, t594); // Eval big_Q Horner step: add coefficient_19 + let t596 = circuit_mul(t595, in66); // Eval big_Q Horner step: multiply by z + let t597 = circuit_add(in90, t596); // Eval big_Q Horner step: add coefficient_18 + let t598 = circuit_mul(t597, in66); // Eval big_Q Horner step: multiply by z + let t599 = circuit_add(in89, t598); // Eval big_Q Horner step: add coefficient_17 + let t600 = circuit_mul(t599, in66); // Eval big_Q Horner step: multiply by z + let t601 = circuit_add(in88, t600); // Eval big_Q Horner step: add coefficient_16 + let t602 = circuit_mul(t601, in66); // Eval big_Q Horner step: multiply by z + let t603 = circuit_add(in87, t602); // Eval big_Q Horner step: add coefficient_15 + let t604 = circuit_mul(t603, in66); // Eval big_Q Horner step: multiply by z + let t605 = circuit_add(in86, t604); // Eval big_Q Horner step: add coefficient_14 + let t606 = circuit_mul(t605, in66); // Eval big_Q Horner step: multiply by z + let t607 = circuit_add(in85, t606); // Eval big_Q Horner step: add coefficient_13 + let t608 = circuit_mul(t607, in66); // Eval big_Q Horner step: multiply by z + let t609 = circuit_add(in84, t608); // Eval big_Q Horner step: add coefficient_12 + let t610 = circuit_mul(t609, in66); // Eval big_Q Horner step: multiply by z + let t611 = circuit_add(in83, t610); // Eval big_Q Horner step: add coefficient_11 + let t612 = circuit_mul(t611, in66); // Eval big_Q Horner step: multiply by z + let t613 = circuit_add(in82, t612); // Eval big_Q Horner step: add coefficient_10 + let t614 = circuit_mul(t613, in66); // Eval big_Q Horner step: multiply by z + let t615 = circuit_add(in81, t614); // Eval big_Q Horner step: add coefficient_9 + let t616 = circuit_mul(t615, in66); // Eval big_Q Horner step: multiply by z + let t617 = circuit_add(in80, t616); // Eval big_Q Horner step: add coefficient_8 + let t618 = circuit_mul(t617, in66); // Eval big_Q Horner step: multiply by z + let t619 = circuit_add(in79, t618); // Eval big_Q Horner step: add coefficient_7 + let t620 = circuit_mul(t619, in66); // Eval big_Q Horner step: multiply by z + let t621 = circuit_add(in78, t620); // Eval big_Q Horner step: add coefficient_6 + let t622 = circuit_mul(t621, in66); // Eval big_Q Horner step: multiply by z + let t623 = circuit_add(in77, t622); // Eval big_Q Horner step: add coefficient_5 + let t624 = circuit_mul(t623, in66); // Eval big_Q Horner step: multiply by z + let t625 = circuit_add(in76, t624); // Eval big_Q Horner step: add coefficient_4 + let t626 = circuit_mul(t625, in66); // Eval big_Q Horner step: multiply by z + let t627 = circuit_add(in75, t626); // Eval big_Q Horner step: add coefficient_3 + let t628 = circuit_mul(t627, in66); // Eval big_Q Horner step: multiply by z + let t629 = circuit_add(in74, t628); // Eval big_Q Horner step: add coefficient_2 + let t630 = circuit_mul(t629, in66); // Eval big_Q Horner step: multiply by z + let t631 = circuit_add(in73, t630); // Eval big_Q Horner step: add coefficient_1 + let t632 = circuit_mul(t631, in66); // Eval big_Q Horner step: multiply by z + let t633 = circuit_add(in72, t632); // Eval big_Q Horner step: add coefficient_0 + let t634 = circuit_mul(in9, t4); // Eval sparse poly P_irr step coeff_6 * z^6 + let t635 = circuit_add(in8, t634); // Eval sparse poly P_irr step + coeff_6 * z^6 + let t636 = circuit_add(t635, t10); // Eval sparse poly P_irr step + 1*z^12 + let t637 = circuit_mul(t633, t636); + let t638 = circuit_sub(t255, t637); let modulus = get_BN254_modulus(); // BN254 prime field modulus - let mut circuit_inputs = (t486,).new_inputs(); + let mut circuit_inputs = (t638,).new_inputs(); // Prefill constants: circuit_inputs = circuit_inputs @@ -4836,45 +5630,42 @@ fn run_BN254_MP_CHECK_FINALIZE_BN_3P_2F_circuit( let mut Q = Q; while let Option::Some(val) = Q.pop_front() { circuit_inputs = circuit_inputs.next_u288(val); - }; - // in72 - in185 + }; // in72 - in261 let outputs = circuit_inputs.done_2().eval(modulus).unwrap(); - let final_check: u384 = outputs.get_output(t486); + let final_check: u384 = outputs.get_output(t638); return (final_check,); } -const MP_CHECK_FINALIZE_BN_3P_2F_BN254_CONSTANTS: [ - u384 - ; 10] = [ +const MP_CHECK_FINALIZE_BN_3P_2F_BN254_CONSTANTS: [u384; 10] = [ u384 { limb0: 0xc2c3330c99e39557176f553d, limb1: 0x4c0bec3cf559b143b78cc310, limb2: 0x2fb347984f7911f7, - limb3: 0x0 + limb3: 0x0, }, u384 { limb0: 0xb7c9dce1665d51c640fcba2, limb1: 0x4ba4cc8bd75a079432ae2a1d, limb2: 0x16c9e55061ebae20, - limb3: 0x0 + limb3: 0x0, }, u384 { limb0: 0xa9c95998dc54014671a0135a, limb1: 0xdc5ec698b6e2f9b9dbaae0ed, limb2: 0x63cf305489af5dc, - limb3: 0x0 + limb3: 0x0, }, u384 { limb0: 0x8fa25bd282d37f632623b0e3, limb1: 0x704b5a7ec796f2b21807dc9, limb2: 0x7c03cbcac41049a, - limb3: 0x0 + limb3: 0x0, }, u384 { limb0: 0xbb966e3de4bd44e5607cfd48, limb1: 0x5e6dd9e7e0acccb0c28f069f, limb2: 0x30644e72e131a029, - limb3: 0x0 + limb3: 0x0, }, u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, @@ -4882,18 +5673,18 @@ const MP_CHECK_FINALIZE_BN_3P_2F_BN254_CONSTANTS: [ limb0: 0x6871ca8d3c208c16d87cfd3e, limb1: 0xb85045b68181585d97816a91, limb2: 0x30644e72e131a029, - limb3: 0x0 + limb3: 0x0, }, u384 { limb0: 0x52, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x6871ca8d3c208c16d87cfd35, limb1: 0xb85045b68181585d97816a91, limb2: 0x30644e72e131a029, - limb3: 0x0 - } + limb3: 0x0, + }, ]; #[inline(always)] -fn run_BN254_MP_CHECK_INIT_BIT_2P_2F_circuit( +pub fn run_BN254_MP_CHECK_INIT_BIT_2P_2F_circuit( yInv_0: u384, xNegOverY_0: u384, G2_line_0: G2Line, @@ -4904,7 +5695,7 @@ fn run_BN254_MP_CHECK_INIT_BIT_2P_2F_circuit( c0: u384, z: u384, c_inv_of_z: u384, - previous_lhs: u384 + previous_lhs: u384, ) -> (u384, u384) { // CONSTANT stack let in0 = CE::> {}; // -0x9 % p @@ -4964,11 +5755,11 @@ fn run_BN254_MP_CHECK_INIT_BIT_2P_2F_circuit( let modulus = get_BN254_modulus(); // BN254 prime field modulus - let mut circuit_inputs = (t43, t6,).new_inputs(); + let mut circuit_inputs = (t43, t6).new_inputs(); // Prefill constants: circuit_inputs = circuit_inputs .next_2( - [0x6871ca8d3c208c16d87cfd3e, 0xb85045b68181585d97816a91, 0x30644e72e131a029, 0x0] + [0x6871ca8d3c208c16d87cfd3e, 0xb85045b68181585d97816a91, 0x30644e72e131a029, 0x0], ); // in0 circuit_inputs = circuit_inputs.next_2([0x1, 0x0, 0x0, 0x0]); // in1 // Fill inputs: @@ -4996,7 +5787,7 @@ fn run_BN254_MP_CHECK_INIT_BIT_2P_2F_circuit( return (new_lhs, c_i); } #[inline(always)] -fn run_BN254_MP_CHECK_INIT_BIT_3P_2F_circuit( +pub fn run_BN254_MP_CHECK_INIT_BIT_3P_2F_circuit( yInv_0: u384, xNegOverY_0: u384, G2_line_0: G2Line, @@ -5010,7 +5801,7 @@ fn run_BN254_MP_CHECK_INIT_BIT_3P_2F_circuit( c0: u384, z: u384, c_inv_of_z: u384, - previous_lhs: u384 + previous_lhs: u384, ) -> (G2Point, u384, u384) { // CONSTANT stack let in0 = CE::> {}; // -0x9 % p @@ -5077,13 +5868,13 @@ fn run_BN254_MP_CHECK_INIT_BIT_3P_2F_circuit( let t46 = circuit_mul(t44, in3); // Doubling slope numerator end let t47 = circuit_add(in21, in21); // Fp2 add coeff 0/1 let t48 = circuit_add(in22, in22); // Fp2 add coeff 1/1 - let t49 = circuit_mul(t47, t47); // Fp2 Div x/y start : Fp2 Inv y start + let t49 = circuit_mul(t47, t47); // Fp2 Inv start let t50 = circuit_mul(t48, t48); let t51 = circuit_add(t49, t50); let t52 = circuit_inverse(t51); - let t53 = circuit_mul(t47, t52); // Fp2 Inv y real part end + let t53 = circuit_mul(t47, t52); // Fp2 Inv real part end let t54 = circuit_mul(t48, t52); - let t55 = circuit_sub(in4, t54); // Fp2 Inv y imag part end + let t55 = circuit_sub(in4, t54); // Fp2 Inv imag part end let t56 = circuit_mul(t45, t53); // Fp2 mul start let t57 = circuit_mul(t46, t55); let t58 = circuit_sub(t56, t57); // Fp2 mul real part end @@ -5140,11 +5931,11 @@ fn run_BN254_MP_CHECK_INIT_BIT_3P_2F_circuit( let modulus = get_BN254_modulus(); // BN254 prime field modulus - let mut circuit_inputs = (t69, t70, t79, t80, t108, t6,).new_inputs(); + let mut circuit_inputs = (t69, t70, t79, t80, t108, t6).new_inputs(); // Prefill constants: circuit_inputs = circuit_inputs .next_2( - [0x6871ca8d3c208c16d87cfd3e, 0xb85045b68181585d97816a91, 0x30644e72e131a029, 0x0] + [0x6871ca8d3c208c16d87cfd3e, 0xb85045b68181585d97816a91, 0x30644e72e131a029, 0x0], ); // in0 circuit_inputs = circuit_inputs.next_2([0x1, 0x0, 0x0, 0x0]); // in1 circuit_inputs = circuit_inputs.next_2([0x3, 0x0, 0x0, 0x0]); // in2 @@ -5180,19 +5971,19 @@ fn run_BN254_MP_CHECK_INIT_BIT_3P_2F_circuit( x0: outputs.get_output(t69), x1: outputs.get_output(t70), y0: outputs.get_output(t79), - y1: outputs.get_output(t80) + y1: outputs.get_output(t80), }; let new_lhs: u384 = outputs.get_output(t108); let c_i: u384 = outputs.get_output(t6); return (Q0, new_lhs, c_i); } #[inline(always)] -fn run_BN254_MP_CHECK_PREPARE_LAMBDA_ROOT_circuit( +pub fn run_BN254_MP_CHECK_PREPARE_LAMBDA_ROOT_circuit( lambda_root: E12D, z: u384, scaling_factor: MillerLoopResultScalingFactor, c_inv: E12D, - c_0: u384 + c_0: u384, ) -> (u384, u384, u384, u384, u384, u384, u384) { // CONSTANT stack let in0 = CE::> {}; // 0x1 @@ -5206,85 +5997,85 @@ fn run_BN254_MP_CHECK_PREPARE_LAMBDA_ROOT_circuit( let in8 = CE::> {}; // 0x2c84bbad27c3671562b7adefd44038ab3c0bbad96fc008e7d6998c82f7fc048b let in9 = CE::> {}; // 0xc33b1c70e4fd11b6d1eab6fcd18b99ad4afd096a8697e0c9c36d8ca3339a7b5 let in10 = CE::< - CI<10> + CI<10>, > {}; // 0x1b007294a55accce13fe08bea73305ff6bdac77c5371c546d428780a6e3dcfa8 let in11 = CE::< - CI<11> + CI<11>, > {}; // 0x215d42e7ac7bd17cefe88dd8e6965b3adae92c974f501fe811493d72543a3977 let in12 = CE::> {}; // -0x1 % p let in13 = CE::< - CI<13> + CI<13>, > {}; // 0x246996f3b4fae7e6a6327cfe12150b8e747992778eeec7e5ca5cf05f80f362ac let in14 = CE::< - CI<14> + CI<14>, > {}; // 0x12d7c0c3ed42be419d2b22ca22ceca702eeb88c36a8b264dde75f4f798d6a3f2 let in15 = CE::< - CI<15> + CI<15>, > {}; // 0x16c9e55061ebae204ba4cc8bd75a079432ae2a1d0b7c9dce1665d51c640fcba2 let in16 = CE::> {}; // 0xc38dce27e3b2cae33ce738a184c89d94a0e78406b48f98a7b4f4463e3a7dba0 let in17 = CE::> {}; // 0x7c03cbcac41049a0704b5a7ec796f2b21807dc98fa25bd282d37f632623b0e3 let in18 = CE::> {}; // 0xf20e129e47c9363aa7b569817e0966cba582096fa7a164080faed1f0d24275a let in19 = CE::< - CI<19> + CI<19>, > {}; // 0x2c145edbe7fd8aee9f3a80b03b0b1c923685d2ea1bdec763c13b4711cd2b8126 let in20 = CE::> {}; // 0x3df92c5b96e3914559897c6ad411fb25b75afb7f8b1c1a56586ff93e080f8bc let in21 = CE::< - CI<21> + CI<21>, > {}; // 0x12acf2ca76fd0675a27fb246c7729f7db080cb99678e2ac024c6b8ee6e0c2c4b let in22 = CE::< - CI<22> + CI<22>, > {}; // 0x1563dbde3bd6d35ba4523cf7da4e525e2ba6a3151500054667f8140c6a3f2d9f let in23 = CE::< - CI<23> + CI<23>, > {}; // 0x30644e72e131a0295e6dd9e7e0acccb0c28f069fbb966e3de4bd44e5607cfd49 let in24 = CE::< - CI<24> + CI<24>, > {}; // 0x30644e72e131a0295e6dd9e7e0acccb0c28f069fbb966e3de4bd44e5607cfd48 let in25 = CE::> {}; // 0x59e26bcea0d48bacd4f263f1acdb5c4f5763473177fffffe let in26 = CE::> {}; // 0x59e26bcea0d48bacd4f263f1acdb5c4f5763473177ffffff let in27 = CE::< - CI<27> + CI<27>, > {}; // 0x13d0c369615f7bb0b2bdfa8fef85fa07122bde8d67dfc8fabd3581ad840ddd76 let in28 = CE::< - CI<28> + CI<28>, > {}; // 0x18a0f4219f4fdff6fc2bf531eb331a053a35744cac285af5685d3f90eacf7a66 let in29 = CE::> {}; // 0xc3a5e9c462a654779c3e050c9ca2a428908a81264e2b5a5bf22f67654883ae6 let in30 = CE::< - CI<30> + CI<30>, > {}; // 0x2ce02aa5f9bf8cd65bdd2055c255cf9d9e08c1d9345582cc92fd973c74bd77f4 let in31 = CE::< - CI<31> + CI<31>, > {}; // 0x17ded419ed7be4f97fac149bfaefbac11b155498de227b850aea3f23790405d6 let in32 = CE::< - CI<32> + CI<32>, > {}; // 0x1bfe7b214c0294242fb81a8dccd8a9b4441d64f34150a79753fb0cd31cc99cc0 let in33 = CE::> {}; // 0x697b9c523e0390ed15da0ec97a9b8346513297b9efaf0f0f1a228f0d5662fbd let in34 = CE::> {}; // 0x7a0e052f2b1c443b5186d6ac4c723b85d3f78a3182d2db0c413901c32b0c6fe let in35 = CE::< - CI<35> + CI<35>, > {}; // 0x1b76a37fba85f3cd5dc79824a3792597356c892c39c0d06b220500933945267f let in36 = CE::> {}; // 0xabf8b60be77d7306cbeee33576139d7f03a5e397d439ec7694aa2bf4c0c101 let in37 = CE::< - CI<37> + CI<37>, > {}; // 0x1c938b097fd2247905924b2691fb5e5685558c04009201927eeb0a69546f1fd1 let in38 = CE::> {}; // 0x4f1de41b3d1766fa9f30e6dec26094f0fdf31bf98ff2631380cab2baaa586de let in39 = CE::< - CI<39> + CI<39>, > {}; // 0x2429efd69b073ae23e8c6565b7b72e1b0e78c27f038f14e77cfd95a083f4c261 let in40 = CE::< - CI<40> + CI<40>, > {}; // 0x28a411b634f09b8fb14b900e9507e9327600ecc7d8cf6ebab94d0cb3b2594c64 let in41 = CE::< - CI<41> + CI<41>, > {}; // 0x23d5e999e1910a12feb0f6ef0cd21d04a44a9e08737f96e55fe3ed9d730c239f let in42 = CE::< - CI<42> + CI<42>, > {}; // 0x1465d351952f0c0588982b28b4a8aea95364059e272122f5e8257f43bbb36087 let in43 = CE::< - CI<43> + CI<43>, > {}; // 0x16db366a59b1dd0b9fb1b2282a48633d3e2ddaea200280211f25041384282499 let in44 = CE::< - CI<44> + CI<44>, > {}; // 0x28c36e1fee7fdbe60337d84bbcba34a53a41f1ee50449cdc780cfbfaa5cc3649 // INPUT stack @@ -5511,7 +6302,7 @@ fn run_BN254_MP_CHECK_PREPARE_LAMBDA_ROOT_circuit( let modulus = get_BN254_modulus(); // BN254 prime field modulus - let mut circuit_inputs = (t31, t41, t63, t66, t164, t186, t208,).new_inputs(); + let mut circuit_inputs = (t31, t41, t63, t66, t164, t186, t208).new_inputs(); // Prefill constants: circuit_inputs = circuit_inputs @@ -5566,270 +6357,274 @@ fn run_BN254_MP_CHECK_PREPARE_LAMBDA_ROOT_circuit( lhs, c_inv_frob_1_of_z, c_frob_2_of_z, - c_inv_frob_3_of_z + c_inv_frob_3_of_z, ); } -const MP_CHECK_PREPARE_LAMBDA_ROOT_BN254_CONSTANTS: [ - u384 - ; 45] = [ +const MP_CHECK_PREPARE_LAMBDA_ROOT_BN254_CONSTANTS: [u384; 45] = [ u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x12, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0xfde6a43f5daa971f3fa65955, limb1: 0x1b2522ec5eb28ded6895e1cd, limb2: 0x1d8c8daef3eee1e8, - limb3: 0x0 + limb3: 0x0, }, u384 { limb0: 0x42b29c567e9c385ce480a71a, limb1: 0x4e34e2ac06ead4000d14d1e2, limb2: 0x217e400dc9351e77, - limb3: 0x0 + limb3: 0x0, }, u384 { limb0: 0xfd28d102c0d147b2f4d521a7, limb1: 0x8481d22c6934ce844d72f250, limb2: 0x242b719062f6737b, - limb3: 0x0 + limb3: 0x0, }, u384 { limb0: 0x43ac198484b8d9094aa82536, limb1: 0x1b9c22d81246ffc2e794e176, limb2: 0x359809094bd5c8e, - limb3: 0x0 + limb3: 0x0, }, u384 { limb0: 0x6df7b44cbb259ef7cb58d5ed, limb1: 0xdd4ef1e69a0c1f0dd2949fa, limb2: 0x21436d48fcb50cc6, - limb3: 0x0 + limb3: 0x0, }, u384 { limb0: 0x8a4f4f0831364cf35f78f771, limb1: 0x38a4311a86919d9c7c6c15f8, limb2: 0x18857a58f3b5bb30, - limb3: 0x0 + limb3: 0x0, }, u384 { limb0: 0x6fc008e7d6998c82f7fc048b, limb1: 0x62b7adefd44038ab3c0bbad9, limb2: 0x2c84bbad27c36715, - limb3: 0x0 + limb3: 0x0, }, u384 { limb0: 0xa8697e0c9c36d8ca3339a7b5, limb1: 0x6d1eab6fcd18b99ad4afd096, limb2: 0xc33b1c70e4fd11b, - limb3: 0x0 + limb3: 0x0, }, u384 { limb0: 0x5371c546d428780a6e3dcfa8, limb1: 0x13fe08bea73305ff6bdac77c, limb2: 0x1b007294a55accce, - limb3: 0x0 + limb3: 0x0, }, u384 { limb0: 0x4f501fe811493d72543a3977, limb1: 0xefe88dd8e6965b3adae92c97, limb2: 0x215d42e7ac7bd17c, - limb3: 0x0 + limb3: 0x0, }, u384 { limb0: 0x6871ca8d3c208c16d87cfd46, limb1: 0xb85045b68181585d97816a91, limb2: 0x30644e72e131a029, - limb3: 0x0 + limb3: 0x0, }, u384 { limb0: 0x8eeec7e5ca5cf05f80f362ac, limb1: 0xa6327cfe12150b8e74799277, limb2: 0x246996f3b4fae7e6, - limb3: 0x0 + limb3: 0x0, }, u384 { limb0: 0x6a8b264dde75f4f798d6a3f2, limb1: 0x9d2b22ca22ceca702eeb88c3, limb2: 0x12d7c0c3ed42be41, - limb3: 0x0 + limb3: 0x0, }, u384 { limb0: 0xb7c9dce1665d51c640fcba2, limb1: 0x4ba4cc8bd75a079432ae2a1d, limb2: 0x16c9e55061ebae20, - limb3: 0x0 + limb3: 0x0, }, u384 { limb0: 0x6b48f98a7b4f4463e3a7dba0, limb1: 0x33ce738a184c89d94a0e7840, limb2: 0xc38dce27e3b2cae, - limb3: 0x0 + limb3: 0x0, }, u384 { limb0: 0x8fa25bd282d37f632623b0e3, limb1: 0x704b5a7ec796f2b21807dc9, limb2: 0x7c03cbcac41049a, - limb3: 0x0 + limb3: 0x0, }, u384 { limb0: 0xfa7a164080faed1f0d24275a, limb1: 0xaa7b569817e0966cba582096, limb2: 0xf20e129e47c9363, - limb3: 0x0 + limb3: 0x0, }, u384 { limb0: 0x1bdec763c13b4711cd2b8126, limb1: 0x9f3a80b03b0b1c923685d2ea, limb2: 0x2c145edbe7fd8aee, - limb3: 0x0 + limb3: 0x0, }, u384 { limb0: 0xf8b1c1a56586ff93e080f8bc, limb1: 0x559897c6ad411fb25b75afb7, limb2: 0x3df92c5b96e3914, - limb3: 0x0 + limb3: 0x0, }, u384 { limb0: 0x678e2ac024c6b8ee6e0c2c4b, limb1: 0xa27fb246c7729f7db080cb99, limb2: 0x12acf2ca76fd0675, - limb3: 0x0 + limb3: 0x0, }, u384 { limb0: 0x1500054667f8140c6a3f2d9f, limb1: 0xa4523cf7da4e525e2ba6a315, limb2: 0x1563dbde3bd6d35b, - limb3: 0x0 + limb3: 0x0, }, u384 { limb0: 0xbb966e3de4bd44e5607cfd49, limb1: 0x5e6dd9e7e0acccb0c28f069f, limb2: 0x30644e72e131a029, - limb3: 0x0 + limb3: 0x0, }, u384 { limb0: 0xbb966e3de4bd44e5607cfd48, limb1: 0x5e6dd9e7e0acccb0c28f069f, limb2: 0x30644e72e131a029, - limb3: 0x0 + limb3: 0x0, }, u384 { - limb0: 0xacdb5c4f5763473177fffffe, limb1: 0x59e26bcea0d48bacd4f263f1, limb2: 0x0, limb3: 0x0 + limb0: 0xacdb5c4f5763473177fffffe, + limb1: 0x59e26bcea0d48bacd4f263f1, + limb2: 0x0, + limb3: 0x0, }, u384 { - limb0: 0xacdb5c4f5763473177ffffff, limb1: 0x59e26bcea0d48bacd4f263f1, limb2: 0x0, limb3: 0x0 + limb0: 0xacdb5c4f5763473177ffffff, + limb1: 0x59e26bcea0d48bacd4f263f1, + limb2: 0x0, + limb3: 0x0, }, u384 { limb0: 0x67dfc8fabd3581ad840ddd76, limb1: 0xb2bdfa8fef85fa07122bde8d, limb2: 0x13d0c369615f7bb0, - limb3: 0x0 + limb3: 0x0, }, u384 { limb0: 0xac285af5685d3f90eacf7a66, limb1: 0xfc2bf531eb331a053a35744c, limb2: 0x18a0f4219f4fdff6, - limb3: 0x0 + limb3: 0x0, }, u384 { limb0: 0x64e2b5a5bf22f67654883ae6, limb1: 0x79c3e050c9ca2a428908a812, limb2: 0xc3a5e9c462a6547, - limb3: 0x0 + limb3: 0x0, }, u384 { limb0: 0x345582cc92fd973c74bd77f4, limb1: 0x5bdd2055c255cf9d9e08c1d9, limb2: 0x2ce02aa5f9bf8cd6, - limb3: 0x0 + limb3: 0x0, }, u384 { limb0: 0xde227b850aea3f23790405d6, limb1: 0x7fac149bfaefbac11b155498, limb2: 0x17ded419ed7be4f9, - limb3: 0x0 + limb3: 0x0, }, u384 { limb0: 0x4150a79753fb0cd31cc99cc0, limb1: 0x2fb81a8dccd8a9b4441d64f3, limb2: 0x1bfe7b214c029424, - limb3: 0x0 + limb3: 0x0, }, u384 { limb0: 0x9efaf0f0f1a228f0d5662fbd, limb1: 0xd15da0ec97a9b8346513297b, limb2: 0x697b9c523e0390e, - limb3: 0x0 + limb3: 0x0, }, u384 { limb0: 0x182d2db0c413901c32b0c6fe, limb1: 0xb5186d6ac4c723b85d3f78a3, limb2: 0x7a0e052f2b1c443, - limb3: 0x0 + limb3: 0x0, }, u384 { limb0: 0x39c0d06b220500933945267f, limb1: 0x5dc79824a3792597356c892c, limb2: 0x1b76a37fba85f3cd, - limb3: 0x0 + limb3: 0x0, }, u384 { limb0: 0x97d439ec7694aa2bf4c0c101, limb1: 0x6cbeee33576139d7f03a5e3, limb2: 0xabf8b60be77d73, - limb3: 0x0 + limb3: 0x0, }, u384 { limb0: 0x9201927eeb0a69546f1fd1, limb1: 0x5924b2691fb5e5685558c04, limb2: 0x1c938b097fd22479, - limb3: 0x0 + limb3: 0x0, }, u384 { limb0: 0x98ff2631380cab2baaa586de, limb1: 0xa9f30e6dec26094f0fdf31bf, limb2: 0x4f1de41b3d1766f, - limb3: 0x0 + limb3: 0x0, }, u384 { limb0: 0x38f14e77cfd95a083f4c261, limb1: 0x3e8c6565b7b72e1b0e78c27f, limb2: 0x2429efd69b073ae2, - limb3: 0x0 + limb3: 0x0, }, u384 { limb0: 0xd8cf6ebab94d0cb3b2594c64, limb1: 0xb14b900e9507e9327600ecc7, limb2: 0x28a411b634f09b8f, - limb3: 0x0 + limb3: 0x0, }, u384 { limb0: 0x737f96e55fe3ed9d730c239f, limb1: 0xfeb0f6ef0cd21d04a44a9e08, limb2: 0x23d5e999e1910a12, - limb3: 0x0 + limb3: 0x0, }, u384 { limb0: 0x272122f5e8257f43bbb36087, limb1: 0x88982b28b4a8aea95364059e, limb2: 0x1465d351952f0c05, - limb3: 0x0 + limb3: 0x0, }, u384 { limb0: 0x200280211f25041384282499, limb1: 0x9fb1b2282a48633d3e2ddaea, limb2: 0x16db366a59b1dd0b, - limb3: 0x0 + limb3: 0x0, }, u384 { limb0: 0x50449cdc780cfbfaa5cc3649, limb1: 0x337d84bbcba34a53a41f1ee, limb2: 0x28c36e1fee7fdbe6, - limb3: 0x0 - } + limb3: 0x0, + }, ]; #[inline(always)] -fn run_BN254_MP_CHECK_PREPARE_PAIRS_1P_circuit( - p_0: G1Point, Qy0_0: u384, Qy1_0: u384 +pub fn run_BN254_MP_CHECK_PREPARE_PAIRS_1P_circuit( + p_0: G1Point, Qy0_0: u384, Qy1_0: u384, ) -> (BNProcessedPair,) { // CONSTANT stack let in0 = CE::> {}; // 0x0 @@ -5845,7 +6640,7 @@ fn run_BN254_MP_CHECK_PREPARE_PAIRS_1P_circuit( let modulus = get_BN254_modulus(); // BN254 prime field modulus - let mut circuit_inputs = (t0, t2, t3, t4,).new_inputs(); + let mut circuit_inputs = (t0, t2, t3, t4).new_inputs(); // Prefill constants: circuit_inputs = circuit_inputs.next_2([0x0, 0x0, 0x0, 0x0]); // in0 // Fill inputs: @@ -5859,13 +6654,13 @@ fn run_BN254_MP_CHECK_PREPARE_PAIRS_1P_circuit( yInv: outputs.get_output(t0), xNegOverY: outputs.get_output(t2), QyNeg0: outputs.get_output(t3), - QyNeg1: outputs.get_output(t4) + QyNeg1: outputs.get_output(t4), }; return (p_0,); } #[inline(always)] -fn run_BN254_MP_CHECK_PREPARE_PAIRS_2P_circuit( - p_0: G1Point, Qy0_0: u384, Qy1_0: u384, p_1: G1Point, Qy0_1: u384, Qy1_1: u384 +pub fn run_BN254_MP_CHECK_PREPARE_PAIRS_2P_circuit( + p_0: G1Point, Qy0_0: u384, Qy1_0: u384, p_1: G1Point, Qy0_1: u384, Qy1_1: u384, ) -> (BNProcessedPair, BNProcessedPair) { // CONSTANT stack let in0 = CE::> {}; // 0x0 @@ -5887,7 +6682,7 @@ fn run_BN254_MP_CHECK_PREPARE_PAIRS_2P_circuit( let modulus = get_BN254_modulus(); // BN254 prime field modulus - let mut circuit_inputs = (t0, t2, t3, t4, t5, t7, t8, t9,).new_inputs(); + let mut circuit_inputs = (t0, t2, t3, t4, t5, t7, t8, t9).new_inputs(); // Prefill constants: circuit_inputs = circuit_inputs.next_2([0x0, 0x0, 0x0, 0x0]); // in0 // Fill inputs: @@ -5905,18 +6700,18 @@ fn run_BN254_MP_CHECK_PREPARE_PAIRS_2P_circuit( yInv: outputs.get_output(t0), xNegOverY: outputs.get_output(t2), QyNeg0: outputs.get_output(t3), - QyNeg1: outputs.get_output(t4) + QyNeg1: outputs.get_output(t4), }; let p_1: BNProcessedPair = BNProcessedPair { yInv: outputs.get_output(t5), xNegOverY: outputs.get_output(t7), QyNeg0: outputs.get_output(t8), - QyNeg1: outputs.get_output(t9) + QyNeg1: outputs.get_output(t9), }; return (p_0, p_1); } #[inline(always)] -fn run_BN254_MP_CHECK_PREPARE_PAIRS_3P_circuit( +pub fn run_BN254_MP_CHECK_PREPARE_PAIRS_3P_circuit( p_0: G1Point, Qy0_0: u384, Qy1_0: u384, @@ -5925,7 +6720,7 @@ fn run_BN254_MP_CHECK_PREPARE_PAIRS_3P_circuit( Qy1_1: u384, p_2: G1Point, Qy0_2: u384, - Qy1_2: u384 + Qy1_2: u384, ) -> (BNProcessedPair, BNProcessedPair, BNProcessedPair) { // CONSTANT stack let in0 = CE::> {}; // 0x0 @@ -5953,7 +6748,7 @@ fn run_BN254_MP_CHECK_PREPARE_PAIRS_3P_circuit( let modulus = get_BN254_modulus(); // BN254 prime field modulus - let mut circuit_inputs = (t0, t2, t3, t4, t5, t7, t8, t9, t10, t12, t13, t14,).new_inputs(); + let mut circuit_inputs = (t0, t2, t3, t4, t5, t7, t8, t9, t10, t12, t13, t14).new_inputs(); // Prefill constants: circuit_inputs = circuit_inputs.next_2([0x0, 0x0, 0x0, 0x0]); // in0 // Fill inputs: @@ -5975,19 +6770,19 @@ fn run_BN254_MP_CHECK_PREPARE_PAIRS_3P_circuit( yInv: outputs.get_output(t0), xNegOverY: outputs.get_output(t2), QyNeg0: outputs.get_output(t3), - QyNeg1: outputs.get_output(t4) + QyNeg1: outputs.get_output(t4), }; let p_1: BNProcessedPair = BNProcessedPair { yInv: outputs.get_output(t5), xNegOverY: outputs.get_output(t7), QyNeg0: outputs.get_output(t8), - QyNeg1: outputs.get_output(t9) + QyNeg1: outputs.get_output(t9), }; let p_2: BNProcessedPair = BNProcessedPair { yInv: outputs.get_output(t10), xNegOverY: outputs.get_output(t12), QyNeg0: outputs.get_output(t13), - QyNeg1: outputs.get_output(t14) + QyNeg1: outputs.get_output(t14), }; return (p_0, p_1, p_2); } @@ -5999,11 +6794,11 @@ mod tests { use core::circuit::{ RangeCheck96, AddMod, MulMod, u96, CircuitElement, CircuitInput, circuit_add, circuit_sub, circuit_mul, circuit_inverse, EvalCircuitResult, EvalCircuitTrait, u384, - CircuitOutputsTrait, CircuitModulus, AddInputResultTrait, CircuitInputs + CircuitOutputsTrait, CircuitModulus, AddInputResultTrait, CircuitInputs, }; use garaga::definitions::{ G1Point, G2Point, E12D, E12DMulQuotient, G1G2Pair, BNProcessedPair, BLSProcessedPair, - MillerLoopResultScalingFactor, G2Line + MillerLoopResultScalingFactor, G2Line, }; use garaga::ec_ops::{SlopeInterceptOutput, FunctionFeltEvaluations, FunctionFelt}; @@ -6019,12 +6814,12 @@ mod tests { run_BLS12_381_MP_CHECK_PREPARE_PAIRS_1P_circuit, run_BLS12_381_MP_CHECK_PREPARE_PAIRS_2P_circuit, run_BLS12_381_MP_CHECK_PREPARE_PAIRS_3P_circuit, run_BN254_MP_CHECK_BIT00_2P_2F_circuit, - run_BN254_MP_CHECK_BIT00_3P_2F_circuit, run_BN254_MP_CHECK_BIT0_2P_2F_circuit, - run_BN254_MP_CHECK_BIT0_3P_2F_circuit, run_BN254_MP_CHECK_BIT1_2P_2F_circuit, - run_BN254_MP_CHECK_BIT1_3P_2F_circuit, run_BN254_MP_CHECK_FINALIZE_BN_2P_2F_circuit, + run_BN254_MP_CHECK_BIT00_3P_2F_circuit, run_BN254_MP_CHECK_BIT01_2P_2F_circuit, + run_BN254_MP_CHECK_BIT01_3P_2F_circuit, run_BN254_MP_CHECK_BIT10_2P_2F_circuit, + run_BN254_MP_CHECK_BIT10_3P_2F_circuit, run_BN254_MP_CHECK_FINALIZE_BN_2P_2F_circuit, run_BN254_MP_CHECK_FINALIZE_BN_3P_2F_circuit, run_BN254_MP_CHECK_INIT_BIT_2P_2F_circuit, run_BN254_MP_CHECK_INIT_BIT_3P_2F_circuit, run_BN254_MP_CHECK_PREPARE_LAMBDA_ROOT_circuit, run_BN254_MP_CHECK_PREPARE_PAIRS_1P_circuit, run_BN254_MP_CHECK_PREPARE_PAIRS_2P_circuit, - run_BN254_MP_CHECK_PREPARE_PAIRS_3P_circuit + run_BN254_MP_CHECK_PREPARE_PAIRS_3P_circuit, }; } diff --git a/src/src/circuits/tower_circuits.cairo b/src/src/circuits/tower_circuits.cairo new file mode 100644 index 00000000..c190f60c --- /dev/null +++ b/src/src/circuits/tower_circuits.cairo @@ -0,0 +1,6056 @@ +use core::circuit::{ + RangeCheck96, AddMod, MulMod, u384, u96, circuit_add, circuit_sub, circuit_mul, circuit_inverse, + EvalCircuitResult, EvalCircuitTrait, CircuitOutputsTrait, CircuitModulus, AddInputResultTrait, + CircuitInputs, CircuitDefinition, CircuitData, CircuitInputAccumulator, +}; +use garaga::core::circuit::AddInputResultTrait2; +use core::circuit::CircuitElement as CE; +use core::circuit::CircuitInput as CI; +use garaga::definitions::{ + get_a, get_b, get_modulus, get_g, get_min_one, G1Point, G2Point, E12D, u288, E12DMulQuotient, + G1G2Pair, BNProcessedPair, BLSProcessedPair, MillerLoopResultScalingFactor, G2Line, E12T, + get_BLS12_381_modulus, get_BN254_modulus, +}; +use garaga::ec_ops::{SlopeInterceptOutput, FunctionFeltEvaluations, FunctionFelt}; +use core::option::Option; +#[inline(always)] +pub fn run_BLS12_381_E12T_CYCLOTOMIC_SQUARE_circuit(M: E12T) -> (E12T,) { + // INPUT stack + let (in0, in1, in2) = (CE::> {}, CE::> {}, CE::> {}); + let (in3, in4, in5) = (CE::> {}, CE::> {}, CE::> {}); + let (in6, in7, in8) = (CE::> {}, CE::> {}, CE::> {}); + let (in9, in10, in11) = (CE::> {}, CE::> {}, CE::> {}); + let t0 = circuit_add(in8, in9); + let t1 = circuit_sub(in8, in9); + let t2 = circuit_mul(t0, t1); + let t3 = circuit_mul(in8, in9); + let t4 = circuit_add(t3, t3); + let t5 = circuit_add(in0, in1); + let t6 = circuit_sub(in0, in1); + let t7 = circuit_mul(t5, t6); + let t8 = circuit_mul(in0, in1); + let t9 = circuit_add(t8, t8); + let t10 = circuit_add(in8, in0); // Fp2 add coeff 0/1 + let t11 = circuit_add(in9, in1); // Fp2 add coeff 1/1 + let t12 = circuit_add(t10, t11); + let t13 = circuit_sub(t10, t11); + let t14 = circuit_mul(t12, t13); + let t15 = circuit_mul(t10, t11); + let t16 = circuit_add(t15, t15); + let t17 = circuit_sub(t14, t2); // Fp2 sub coeff 0/1 + let t18 = circuit_sub(t16, t4); // Fp2 sub coeff 1/1 + let t19 = circuit_sub(t17, t7); // Fp2 sub coeff 0/1 + let t20 = circuit_sub(t18, t9); // Fp2 sub coeff 1/1 + let t21 = circuit_add(in4, in5); + let t22 = circuit_sub(in4, in5); + let t23 = circuit_mul(t21, t22); + let t24 = circuit_mul(in4, in5); + let t25 = circuit_add(t24, t24); + let t26 = circuit_add(in6, in7); + let t27 = circuit_sub(in6, in7); + let t28 = circuit_mul(t26, t27); + let t29 = circuit_mul(in6, in7); + let t30 = circuit_add(t29, t29); + let t31 = circuit_add(in4, in6); // Fp2 add coeff 0/1 + let t32 = circuit_add(in5, in7); // Fp2 add coeff 1/1 + let t33 = circuit_add(t31, t32); + let t34 = circuit_sub(t31, t32); + let t35 = circuit_mul(t33, t34); + let t36 = circuit_mul(t31, t32); + let t37 = circuit_add(t36, t36); + let t38 = circuit_sub(t35, t23); // Fp2 sub coeff 0/1 + let t39 = circuit_sub(t37, t25); // Fp2 sub coeff 1/1 + let t40 = circuit_sub(t38, t28); // Fp2 sub coeff 0/1 + let t41 = circuit_sub(t39, t30); // Fp2 sub coeff 1/1 + let t42 = circuit_add(in10, in11); + let t43 = circuit_sub(in10, in11); + let t44 = circuit_mul(t42, t43); + let t45 = circuit_mul(in10, in11); + let t46 = circuit_add(t45, t45); + let t47 = circuit_add(in2, in3); + let t48 = circuit_sub(in2, in3); + let t49 = circuit_mul(t47, t48); + let t50 = circuit_mul(in2, in3); + let t51 = circuit_add(t50, t50); + let t52 = circuit_add(in10, in2); // Fp2 add coeff 0/1 + let t53 = circuit_add(in11, in3); // Fp2 add coeff 1/1 + let t54 = circuit_add(t52, t53); + let t55 = circuit_sub(t52, t53); + let t56 = circuit_mul(t54, t55); + let t57 = circuit_mul(t52, t53); + let t58 = circuit_add(t57, t57); + let t59 = circuit_sub(t56, t44); // Fp2 sub coeff 0/1 + let t60 = circuit_sub(t58, t46); // Fp2 sub coeff 1/1 + let t61 = circuit_sub(t59, t49); // Fp2 sub coeff 0/1 + let t62 = circuit_sub(t60, t51); // Fp2 sub coeff 1/1 + let t63 = circuit_add(t61, t62); + let t64 = circuit_add(t63, t63); + let t65 = circuit_sub(t61, t62); + let t66 = circuit_sub(t64, t61); + let t67 = circuit_sub(t66, t62); + let t68 = circuit_add(t2, t4); + let t69 = circuit_add(t68, t68); + let t70 = circuit_sub(t2, t4); + let t71 = circuit_sub(t69, t2); + let t72 = circuit_sub(t71, t4); + let t73 = circuit_add(t70, t7); // Fp2 add coeff 0/1 + let t74 = circuit_add(t72, t9); // Fp2 add coeff 1/1 + let t75 = circuit_add(t23, t25); + let t76 = circuit_add(t75, t75); + let t77 = circuit_sub(t23, t25); + let t78 = circuit_sub(t76, t23); + let t79 = circuit_sub(t78, t25); + let t80 = circuit_add(t77, t28); // Fp2 add coeff 0/1 + let t81 = circuit_add(t79, t30); // Fp2 add coeff 1/1 + let t82 = circuit_add(t44, t46); + let t83 = circuit_add(t82, t82); + let t84 = circuit_sub(t44, t46); + let t85 = circuit_sub(t83, t44); + let t86 = circuit_sub(t85, t46); + let t87 = circuit_add(t84, t49); // Fp2 add coeff 0/1 + let t88 = circuit_add(t86, t51); // Fp2 add coeff 1/1 + let t89 = circuit_sub(t73, in0); // Fp2 sub coeff 0/1 + let t90 = circuit_sub(t74, in1); // Fp2 sub coeff 1/1 + let t91 = circuit_add(t89, t89); // Fp2 add coeff 0/1 + let t92 = circuit_add(t90, t90); // Fp2 add coeff 1/1 + let t93 = circuit_add(t91, t73); // Fp2 add coeff 0/1 + let t94 = circuit_add(t92, t74); // Fp2 add coeff 1/1 + let t95 = circuit_sub(t80, in2); // Fp2 sub coeff 0/1 + let t96 = circuit_sub(t81, in3); // Fp2 sub coeff 1/1 + let t97 = circuit_add(t95, t95); // Fp2 add coeff 0/1 + let t98 = circuit_add(t96, t96); // Fp2 add coeff 1/1 + let t99 = circuit_add(t97, t80); // Fp2 add coeff 0/1 + let t100 = circuit_add(t98, t81); // Fp2 add coeff 1/1 + let t101 = circuit_sub(t87, in4); // Fp2 sub coeff 0/1 + let t102 = circuit_sub(t88, in5); // Fp2 sub coeff 1/1 + let t103 = circuit_add(t101, t101); // Fp2 add coeff 0/1 + let t104 = circuit_add(t102, t102); // Fp2 add coeff 1/1 + let t105 = circuit_add(t103, t87); // Fp2 add coeff 0/1 + let t106 = circuit_add(t104, t88); // Fp2 add coeff 1/1 + let t107 = circuit_add(t65, in6); // Fp2 add coeff 0/1 + let t108 = circuit_add(t67, in7); // Fp2 add coeff 1/1 + let t109 = circuit_add(t107, t107); // Fp2 add coeff 0/1 + let t110 = circuit_add(t108, t108); // Fp2 add coeff 1/1 + let t111 = circuit_add(t109, t65); // Fp2 add coeff 0/1 + let t112 = circuit_add(t110, t67); // Fp2 add coeff 1/1 + let t113 = circuit_add(t19, in8); // Fp2 add coeff 0/1 + let t114 = circuit_add(t20, in9); // Fp2 add coeff 1/1 + let t115 = circuit_add(t113, t113); // Fp2 add coeff 0/1 + let t116 = circuit_add(t114, t114); // Fp2 add coeff 1/1 + let t117 = circuit_add(t115, t19); // Fp2 add coeff 0/1 + let t118 = circuit_add(t116, t20); // Fp2 add coeff 1/1 + let t119 = circuit_add(t40, in10); // Fp2 add coeff 0/1 + let t120 = circuit_add(t41, in11); // Fp2 add coeff 1/1 + let t121 = circuit_add(t119, t119); // Fp2 add coeff 0/1 + let t122 = circuit_add(t120, t120); // Fp2 add coeff 1/1 + let t123 = circuit_add(t121, t40); // Fp2 add coeff 0/1 + let t124 = circuit_add(t122, t41); // Fp2 add coeff 1/1 + + let modulus = get_BLS12_381_modulus(); // BLS12_381 prime field modulus + + let mut circuit_inputs = (t93, t94, t99, t100, t105, t106, t111, t112, t117, t118, t123, t124) + .new_inputs(); + // Prefill constants: + + // Fill inputs: + circuit_inputs = circuit_inputs.next_2(M.c0b0a0); // in0 + circuit_inputs = circuit_inputs.next_2(M.c0b0a1); // in1 + circuit_inputs = circuit_inputs.next_2(M.c0b1a0); // in2 + circuit_inputs = circuit_inputs.next_2(M.c0b1a1); // in3 + circuit_inputs = circuit_inputs.next_2(M.c0b2a0); // in4 + circuit_inputs = circuit_inputs.next_2(M.c0b2a1); // in5 + circuit_inputs = circuit_inputs.next_2(M.c1b0a0); // in6 + circuit_inputs = circuit_inputs.next_2(M.c1b0a1); // in7 + circuit_inputs = circuit_inputs.next_2(M.c1b1a0); // in8 + circuit_inputs = circuit_inputs.next_2(M.c1b1a1); // in9 + circuit_inputs = circuit_inputs.next_2(M.c1b2a0); // in10 + circuit_inputs = circuit_inputs.next_2(M.c1b2a1); // in11 + + let outputs = circuit_inputs.done_2().eval(modulus).unwrap(); + let res: E12T = E12T { + c0b0a0: outputs.get_output(t93), + c0b0a1: outputs.get_output(t94), + c0b1a0: outputs.get_output(t99), + c0b1a1: outputs.get_output(t100), + c0b2a0: outputs.get_output(t105), + c0b2a1: outputs.get_output(t106), + c1b0a0: outputs.get_output(t111), + c1b0a1: outputs.get_output(t112), + c1b1a0: outputs.get_output(t117), + c1b1a1: outputs.get_output(t118), + c1b2a0: outputs.get_output(t123), + c1b2a1: outputs.get_output(t124), + }; + return (res,); +} +#[inline(always)] +pub fn run_BLS12_381_E12T_CYCLO_SQUARE_COMPRESSED_circuit( + xc0b1a0: u384, + xc0b1a1: u384, + xc0b2a0: u384, + xc0b2a1: u384, + xc1b0a0: u384, + xc1b0a1: u384, + xc1b2a0: u384, + xc1b2a1: u384, +) -> (u384, u384, u384, u384, u384, u384, u384, u384) { + // INPUT stack + let (in0, in1, in2) = (CE::> {}, CE::> {}, CE::> {}); + let (in3, in4, in5) = (CE::> {}, CE::> {}, CE::> {}); + let (in6, in7) = (CE::> {}, CE::> {}); + let t0 = circuit_add(in0, in1); + let t1 = circuit_sub(in0, in1); + let t2 = circuit_mul(t0, t1); + let t3 = circuit_mul(in0, in1); + let t4 = circuit_add(t3, t3); + let t5 = circuit_add(in6, in7); + let t6 = circuit_sub(in6, in7); + let t7 = circuit_mul(t5, t6); + let t8 = circuit_mul(in6, in7); + let t9 = circuit_add(t8, t8); + let t10 = circuit_add(in0, in6); // Fp2 add coeff 0/1 + let t11 = circuit_add(in1, in7); // Fp2 add coeff 1/1 + let t12 = circuit_add(t10, t11); + let t13 = circuit_sub(t10, t11); + let t14 = circuit_mul(t12, t13); + let t15 = circuit_mul(t10, t11); + let t16 = circuit_add(t15, t15); + let t17 = circuit_add(t2, t7); // Fp2 add coeff 0/1 + let t18 = circuit_add(t4, t9); // Fp2 add coeff 1/1 + let t19 = circuit_sub(t14, t17); // Fp2 sub coeff 0/1 + let t20 = circuit_sub(t16, t18); // Fp2 sub coeff 1/1 + let t21 = circuit_add(in4, in2); // Fp2 add coeff 0/1 + let t22 = circuit_add(in5, in3); // Fp2 add coeff 1/1 + let t23 = circuit_add(t21, t22); + let t24 = circuit_sub(t21, t22); + let t25 = circuit_mul(t23, t24); + let t26 = circuit_mul(t21, t22); + let t27 = circuit_add(t26, t26); + let t28 = circuit_add(in4, in5); + let t29 = circuit_sub(in4, in5); + let t30 = circuit_mul(t28, t29); + let t31 = circuit_mul(in4, in5); + let t32 = circuit_add(t31, t31); + let t33 = circuit_add(t19, t20); + let t34 = circuit_add(t33, t33); + let t35 = circuit_sub(t19, t20); + let t36 = circuit_sub(t34, t19); + let t37 = circuit_sub(t36, t20); + let t38 = circuit_add(t35, in4); // Fp2 add coeff 0/1 + let t39 = circuit_add(t37, in5); // Fp2 add coeff 1/1 + let t40 = circuit_add(t38, t38); // Fp2 add coeff 0/1 + let t41 = circuit_add(t39, t39); // Fp2 add coeff 1/1 + let t42 = circuit_add(t40, t35); // Fp2 add coeff 0/1 + let t43 = circuit_add(t41, t37); // Fp2 add coeff 1/1 + let t44 = circuit_add(t7, t9); + let t45 = circuit_add(t44, t44); + let t46 = circuit_sub(t7, t9); + let t47 = circuit_sub(t45, t7); + let t48 = circuit_sub(t47, t9); + let t49 = circuit_add(t2, t46); // Fp2 add coeff 0/1 + let t50 = circuit_add(t4, t48); // Fp2 add coeff 1/1 + let t51 = circuit_sub(t49, in2); // Fp2 sub coeff 0/1 + let t52 = circuit_sub(t50, in3); // Fp2 sub coeff 1/1 + let t53 = circuit_add(in2, in3); + let t54 = circuit_sub(in2, in3); + let t55 = circuit_mul(t53, t54); + let t56 = circuit_mul(in2, in3); + let t57 = circuit_add(t56, t56); + let t58 = circuit_add(t51, t51); // Fp2 add coeff 0/1 + let t59 = circuit_add(t52, t52); // Fp2 add coeff 1/1 + let t60 = circuit_add(t58, t49); // Fp2 add coeff 0/1 + let t61 = circuit_add(t59, t50); // Fp2 add coeff 1/1 + let t62 = circuit_add(t55, t57); + let t63 = circuit_add(t62, t62); + let t64 = circuit_sub(t55, t57); + let t65 = circuit_sub(t63, t55); + let t66 = circuit_sub(t65, t57); + let t67 = circuit_add(t30, t64); // Fp2 add coeff 0/1 + let t68 = circuit_add(t32, t66); // Fp2 add coeff 1/1 + let t69 = circuit_sub(t67, in0); // Fp2 sub coeff 0/1 + let t70 = circuit_sub(t68, in1); // Fp2 sub coeff 1/1 + let t71 = circuit_add(t69, t69); // Fp2 add coeff 0/1 + let t72 = circuit_add(t70, t70); // Fp2 add coeff 1/1 + let t73 = circuit_add(t71, t67); // Fp2 add coeff 0/1 + let t74 = circuit_add(t72, t68); // Fp2 add coeff 1/1 + let t75 = circuit_add(t30, t55); // Fp2 add coeff 0/1 + let t76 = circuit_add(t32, t57); // Fp2 add coeff 1/1 + let t77 = circuit_sub(t25, t75); // Fp2 sub coeff 0/1 + let t78 = circuit_sub(t27, t76); // Fp2 sub coeff 1/1 + let t79 = circuit_add(t77, in6); // Fp2 add coeff 0/1 + let t80 = circuit_add(t78, in7); // Fp2 add coeff 1/1 + let t81 = circuit_add(t79, t79); // Fp2 add coeff 0/1 + let t82 = circuit_add(t80, t80); // Fp2 add coeff 1/1 + let t83 = circuit_add(t77, t81); // Fp2 add coeff 0/1 + let t84 = circuit_add(t78, t82); // Fp2 add coeff 1/1 + + let modulus = get_BLS12_381_modulus(); // BLS12_381 prime field modulus + + let mut circuit_inputs = (t73, t74, t60, t61, t42, t43, t83, t84).new_inputs(); + // Prefill constants: + + // Fill inputs: + circuit_inputs = circuit_inputs.next_2(xc0b1a0); // in0 + circuit_inputs = circuit_inputs.next_2(xc0b1a1); // in1 + circuit_inputs = circuit_inputs.next_2(xc0b2a0); // in2 + circuit_inputs = circuit_inputs.next_2(xc0b2a1); // in3 + circuit_inputs = circuit_inputs.next_2(xc1b0a0); // in4 + circuit_inputs = circuit_inputs.next_2(xc1b0a1); // in5 + circuit_inputs = circuit_inputs.next_2(xc1b2a0); // in6 + circuit_inputs = circuit_inputs.next_2(xc1b2a1); // in7 + + let outputs = circuit_inputs.done_2().eval(modulus).unwrap(); + let xc0b1a0: u384 = outputs.get_output(t73); + let xc0b1a1: u384 = outputs.get_output(t74); + let xc0b2a0: u384 = outputs.get_output(t60); + let xc0b2a1: u384 = outputs.get_output(t61); + let xc1b0a0: u384 = outputs.get_output(t42); + let xc1b0a1: u384 = outputs.get_output(t43); + let xc1b2a0: u384 = outputs.get_output(t83); + let xc1b2a1: u384 = outputs.get_output(t84); + return (xc0b1a0, xc0b1a1, xc0b2a0, xc0b2a1, xc1b0a0, xc1b0a1, xc1b2a0, xc1b2a1); +} +#[inline(always)] +pub fn run_BLS12_381_E12T_DECOMP_KARABINA_II_circuit( + t0a0: u384, + t0a1: u384, + t1a0: u384, + t1a1: u384, + xc0b1a0: u384, + xc0b1a1: u384, + xc0b2a0: u384, + xc0b2a1: u384, + xc1b0a0: u384, + xc1b0a1: u384, + xc1b2a0: u384, + xc1b2a1: u384, +) -> (u384, u384, u384, u384) { + // CONSTANT stack + let in0 = CE::> {}; // 0x0 + let in1 = CE::> {}; // 0x1 + + // INPUT stack + let (in2, in3, in4) = (CE::> {}, CE::> {}, CE::> {}); + let (in5, in6, in7) = (CE::> {}, CE::> {}, CE::> {}); + let (in8, in9, in10) = (CE::> {}, CE::> {}, CE::> {}); + let (in11, in12, in13) = (CE::> {}, CE::> {}, CE::> {}); + let t0 = circuit_mul(in4, in4); // Fp2 Inv start + let t1 = circuit_mul(in5, in5); + let t2 = circuit_add(t0, t1); + let t3 = circuit_inverse(t2); + let t4 = circuit_mul(in4, t3); // Fp2 Inv real part end + let t5 = circuit_mul(in5, t3); + let t6 = circuit_sub(in0, t5); // Fp2 Inv imag part end + let t7 = circuit_mul(in2, t4); // Fp2 mul start + let t8 = circuit_mul(in3, t6); + let t9 = circuit_sub(t7, t8); // Fp2 mul real part end + let t10 = circuit_mul(in2, t6); + let t11 = circuit_mul(in3, t4); + let t12 = circuit_add(t10, t11); // Fp2 mul imag part end + let t13 = circuit_mul(in8, in6); // Fp2 mul start + let t14 = circuit_mul(in9, in7); + let t15 = circuit_sub(t13, t14); // Fp2 mul real part end + let t16 = circuit_mul(in8, in7); + let t17 = circuit_mul(in9, in6); + let t18 = circuit_add(t16, t17); // Fp2 mul imag part end + let t19 = circuit_add(t9, t12); + let t20 = circuit_sub(t9, t12); + let t21 = circuit_mul(t19, t20); + let t22 = circuit_mul(t9, t12); + let t23 = circuit_add(t22, t22); + let t24 = circuit_sub(t21, t15); // Fp2 sub coeff 0/1 + let t25 = circuit_sub(t23, t18); // Fp2 sub coeff 1/1 + let t26 = circuit_add(t24, t24); // Fp2 add coeff 0/1 + let t27 = circuit_add(t25, t25); // Fp2 add coeff 1/1 + let t28 = circuit_sub(t26, t15); // Fp2 sub coeff 0/1 + let t29 = circuit_sub(t27, t18); // Fp2 sub coeff 1/1 + let t30 = circuit_mul(in10, in12); // Fp2 mul start + let t31 = circuit_mul(in11, in13); + let t32 = circuit_sub(t30, t31); // Fp2 mul real part end + let t33 = circuit_mul(in10, in13); + let t34 = circuit_mul(in11, in12); + let t35 = circuit_add(t33, t34); // Fp2 mul imag part end + let t36 = circuit_add(t28, t32); // Fp2 add coeff 0/1 + let t37 = circuit_add(t29, t35); // Fp2 add coeff 1/1 + let t38 = circuit_add(t36, t37); + let t39 = circuit_add(t38, t38); + let t40 = circuit_sub(t36, t37); + let t41 = circuit_sub(t39, t36); + let t42 = circuit_sub(t41, t37); + let t43 = circuit_add(t40, in1); + + let modulus = get_BLS12_381_modulus(); // BLS12_381 prime field modulus + + let mut circuit_inputs = (t43, t42, t9, t12).new_inputs(); + // Prefill constants: + circuit_inputs = circuit_inputs.next_2([0x0, 0x0, 0x0, 0x0]); // in0 + circuit_inputs = circuit_inputs.next_2([0x1, 0x0, 0x0, 0x0]); // in1 + // Fill inputs: + circuit_inputs = circuit_inputs.next_2(t0a0); // in2 + circuit_inputs = circuit_inputs.next_2(t0a1); // in3 + circuit_inputs = circuit_inputs.next_2(t1a0); // in4 + circuit_inputs = circuit_inputs.next_2(t1a1); // in5 + circuit_inputs = circuit_inputs.next_2(xc0b1a0); // in6 + circuit_inputs = circuit_inputs.next_2(xc0b1a1); // in7 + circuit_inputs = circuit_inputs.next_2(xc0b2a0); // in8 + circuit_inputs = circuit_inputs.next_2(xc0b2a1); // in9 + circuit_inputs = circuit_inputs.next_2(xc1b0a0); // in10 + circuit_inputs = circuit_inputs.next_2(xc1b0a1); // in11 + circuit_inputs = circuit_inputs.next_2(xc1b2a0); // in12 + circuit_inputs = circuit_inputs.next_2(xc1b2a1); // in13 + + let outputs = circuit_inputs.done_2().eval(modulus).unwrap(); + let zc0b0a0: u384 = outputs.get_output(t43); + let zc0b0a1: u384 = outputs.get_output(t42); + let zc1b1a0: u384 = outputs.get_output(t9); + let zc1b1a1: u384 = outputs.get_output(t12); + return (zc0b0a0, zc0b0a1, zc1b1a0, zc1b1a1); +} +#[inline(always)] +pub fn run_BLS12_381_E12T_DECOMP_KARABINA_I_NZ_circuit( + xc0b1a0: u384, + xc0b1a1: u384, + xc0b2a0: u384, + xc0b2a1: u384, + xc1b0a0: u384, + xc1b0a1: u384, + xc1b2a0: u384, + xc1b2a1: u384, +) -> (u384, u384, u384, u384) { + // INPUT stack + let (in0, in1, in2) = (CE::> {}, CE::> {}, CE::> {}); + let (in3, in4, in5) = (CE::> {}, CE::> {}, CE::> {}); + let (in6, in7) = (CE::> {}, CE::> {}); + let t0 = circuit_add(in0, in1); + let t1 = circuit_sub(in0, in1); + let t2 = circuit_mul(t0, t1); + let t3 = circuit_mul(in0, in1); + let t4 = circuit_add(t3, t3); + let t5 = circuit_sub(t2, in2); // Fp2 sub coeff 0/1 + let t6 = circuit_sub(t4, in3); // Fp2 sub coeff 1/1 + let t7 = circuit_add(t5, t5); // Fp2 add coeff 0/1 + let t8 = circuit_add(t6, t6); // Fp2 add coeff 1/1 + let t9 = circuit_add(t7, t2); // Fp2 add coeff 0/1 + let t10 = circuit_add(t8, t4); // Fp2 add coeff 1/1 + let t11 = circuit_add(in6, in7); + let t12 = circuit_sub(in6, in7); + let t13 = circuit_mul(t11, t12); + let t14 = circuit_mul(in6, in7); + let t15 = circuit_add(t14, t14); + let t16 = circuit_add(t13, t15); + let t17 = circuit_add(t16, t16); + let t18 = circuit_sub(t13, t15); + let t19 = circuit_sub(t17, t13); + let t20 = circuit_sub(t19, t15); + let t21 = circuit_add(t18, t9); // Fp2 add coeff 0/1 + let t22 = circuit_add(t20, t10); // Fp2 add coeff 1/1 + let t23 = circuit_add(in4, in4); // Fp2 add coeff 0/1 + let t24 = circuit_add(in5, in5); // Fp2 add coeff 1/1 + let t25 = circuit_add(t23, t23); // Fp2 add coeff 0/1 + let t26 = circuit_add(t24, t24); // Fp2 add coeff 1/1 + + let modulus = get_BLS12_381_modulus(); // BLS12_381 prime field modulus + + let mut circuit_inputs = (t21, t22, t25, t26).new_inputs(); + // Prefill constants: + + // Fill inputs: + circuit_inputs = circuit_inputs.next_2(xc0b1a0); // in0 + circuit_inputs = circuit_inputs.next_2(xc0b1a1); // in1 + circuit_inputs = circuit_inputs.next_2(xc0b2a0); // in2 + circuit_inputs = circuit_inputs.next_2(xc0b2a1); // in3 + circuit_inputs = circuit_inputs.next_2(xc1b0a0); // in4 + circuit_inputs = circuit_inputs.next_2(xc1b0a1); // in5 + circuit_inputs = circuit_inputs.next_2(xc1b2a0); // in6 + circuit_inputs = circuit_inputs.next_2(xc1b2a1); // in7 + + let outputs = circuit_inputs.done_2().eval(modulus).unwrap(); + let t0a0: u384 = outputs.get_output(t21); + let t0a1: u384 = outputs.get_output(t22); + let t1a0: u384 = outputs.get_output(t25); + let t1a1: u384 = outputs.get_output(t26); + return (t0a0, t0a1, t1a0, t1a1); +} +#[inline(always)] +pub fn run_BLS12_381_E12T_DECOMP_KARABINA_I_Z_circuit( + xc0b1a0: u384, xc0b1a1: u384, xc1b2a0: u384, xc1b2a1: u384, +) -> (u384, u384) { + // INPUT stack + let (in0, in1, in2) = (CE::> {}, CE::> {}, CE::> {}); + let in3 = CE::> {}; + let t0 = circuit_mul(in0, in2); // Fp2 mul start + let t1 = circuit_mul(in1, in3); + let t2 = circuit_sub(t0, t1); // Fp2 mul real part end + let t3 = circuit_mul(in0, in3); + let t4 = circuit_mul(in1, in2); + let t5 = circuit_add(t3, t4); // Fp2 mul imag part end + let t6 = circuit_add(t2, t2); // Fp2 add coeff 0/1 + let t7 = circuit_add(t5, t5); // Fp2 add coeff 1/1 + + let modulus = get_BLS12_381_modulus(); // BLS12_381 prime field modulus + + let mut circuit_inputs = (t6, t7).new_inputs(); + // Prefill constants: + + // Fill inputs: + circuit_inputs = circuit_inputs.next_2(xc0b1a0); // in0 + circuit_inputs = circuit_inputs.next_2(xc0b1a1); // in1 + circuit_inputs = circuit_inputs.next_2(xc1b2a0); // in2 + circuit_inputs = circuit_inputs.next_2(xc1b2a1); // in3 + + let outputs = circuit_inputs.done_2().eval(modulus).unwrap(); + let res0: u384 = outputs.get_output(t6); + let res1: u384 = outputs.get_output(t7); + return (res0, res1); +} +#[inline(always)] +pub fn run_BLS12_381_E12T_FROBENIUS_CUBE_circuit(M: E12T) -> (E12T,) { + // CONSTANT stack + let in0 = CE::> {}; // 0x0 + let in1 = CE::> {}; // 0x1 + let in2 = CE::> {}; // -0x1 % p + let in3 = CE::< + CI<3>, + > {}; // 0x135203e60180a68ee2e9c448d77a2cd91c3dedd930b1cf60ef396489f61eb45e304466cf3e67fa0af1ee7b04121bdea2 + let in4 = CE::< + CI<4>, + > {}; // 0x6af0e0437ff400b6831e36d6bd17ffe48395dabc2d3435e77f76e17009241c5ee67992f72ec05f4c81084fbede3cc09 + + // INPUT stack + let (in5, in6, in7) = (CE::> {}, CE::> {}, CE::> {}); + let (in8, in9, in10) = (CE::> {}, CE::> {}, CE::> {}); + let (in11, in12, in13) = (CE::> {}, CE::> {}, CE::> {}); + let (in14, in15, in16) = (CE::> {}, CE::> {}, CE::> {}); + let t0 = circuit_sub(in0, in6); + let t1 = circuit_add(in5, in0); + let t2 = circuit_sub(in0, in8); + let t3 = circuit_sub(in0, in10); + let t4 = circuit_sub(in0, in12); + let t5 = circuit_sub(in0, in14); + let t6 = circuit_sub(in0, in16); + let t7 = circuit_mul(in0, in7); // Fp2 mul start + let t8 = circuit_mul(in1, t2); + let t9 = circuit_sub(t7, t8); // Fp2 mul real part end + let t10 = circuit_mul(in0, t2); + let t11 = circuit_mul(in1, in7); + let t12 = circuit_add(t10, t11); // Fp2 mul imag part end + let t13 = circuit_mul(in2, in9); + let t14 = circuit_mul(in2, t3); + let t15 = circuit_mul(in3, in11); // Fp2 mul start + let t16 = circuit_mul(in4, t4); + let t17 = circuit_sub(t15, t16); // Fp2 mul real part end + let t18 = circuit_mul(in3, t4); + let t19 = circuit_mul(in4, in11); + let t20 = circuit_add(t18, t19); // Fp2 mul imag part end + let t21 = circuit_mul(in3, in13); // Fp2 mul start + let t22 = circuit_mul(in3, t5); + let t23 = circuit_sub(t21, t22); // Fp2 mul real part end + let t24 = circuit_mul(in3, t5); + let t25 = circuit_mul(in3, in13); + let t26 = circuit_add(t24, t25); // Fp2 mul imag part end + let t27 = circuit_mul(in4, in15); // Fp2 mul start + let t28 = circuit_mul(in3, t6); + let t29 = circuit_sub(t27, t28); // Fp2 mul real part end + let t30 = circuit_mul(in4, t6); + let t31 = circuit_mul(in3, in15); + let t32 = circuit_add(t30, t31); // Fp2 mul imag part end + + let modulus = get_BLS12_381_modulus(); // BLS12_381 prime field modulus + + let mut circuit_inputs = (t1, t0, t9, t12, t13, t14, t17, t20, t23, t26, t29, t32).new_inputs(); + // Prefill constants: + circuit_inputs = circuit_inputs.next_2([0x0, 0x0, 0x0, 0x0]); // in0 + circuit_inputs = circuit_inputs.next_2([0x1, 0x0, 0x0, 0x0]); // in1 + circuit_inputs = circuit_inputs + .next_2( + [ + 0xb153ffffb9feffffffffaaaa, 0x6730d2a0f6b0f6241eabfffe, 0x434bacd764774b84f38512bf, + 0x1a0111ea397fe69a4b1ba7b6, + ], + ); // in2 + circuit_inputs = circuit_inputs + .next_2( + [ + 0x3e67fa0af1ee7b04121bdea2, 0xef396489f61eb45e304466cf, 0xd77a2cd91c3dedd930b1cf60, + 0x135203e60180a68ee2e9c448, + ], + ); // in3 + circuit_inputs = circuit_inputs + .next_2( + [ + 0x72ec05f4c81084fbede3cc09, 0x77f76e17009241c5ee67992f, 0x6bd17ffe48395dabc2d3435e, + 0x6af0e0437ff400b6831e36d, + ], + ); // in4 + // Fill inputs: + circuit_inputs = circuit_inputs.next_2(M.c0b0a0); // in5 + circuit_inputs = circuit_inputs.next_2(M.c0b0a1); // in6 + circuit_inputs = circuit_inputs.next_2(M.c0b1a0); // in7 + circuit_inputs = circuit_inputs.next_2(M.c0b1a1); // in8 + circuit_inputs = circuit_inputs.next_2(M.c0b2a0); // in9 + circuit_inputs = circuit_inputs.next_2(M.c0b2a1); // in10 + circuit_inputs = circuit_inputs.next_2(M.c1b0a0); // in11 + circuit_inputs = circuit_inputs.next_2(M.c1b0a1); // in12 + circuit_inputs = circuit_inputs.next_2(M.c1b1a0); // in13 + circuit_inputs = circuit_inputs.next_2(M.c1b1a1); // in14 + circuit_inputs = circuit_inputs.next_2(M.c1b2a0); // in15 + circuit_inputs = circuit_inputs.next_2(M.c1b2a1); // in16 + + let outputs = circuit_inputs.done_2().eval(modulus).unwrap(); + let res: E12T = E12T { + c0b0a0: outputs.get_output(t1), + c0b0a1: outputs.get_output(t0), + c0b1a0: outputs.get_output(t9), + c0b1a1: outputs.get_output(t12), + c0b2a0: outputs.get_output(t13), + c0b2a1: outputs.get_output(t14), + c1b0a0: outputs.get_output(t17), + c1b0a1: outputs.get_output(t20), + c1b1a0: outputs.get_output(t23), + c1b1a1: outputs.get_output(t26), + c1b2a0: outputs.get_output(t29), + c1b2a1: outputs.get_output(t32), + }; + return (res,); +} +#[inline(always)] +pub fn run_BLS12_381_E12T_FROBENIUS_SQUARE_circuit(M: E12T) -> (E12T,) { + // CONSTANT stack + let in0 = CE::> {}; // 0x0 + let in1 = CE::< + CI<1>, + > {}; // 0x5f19672fdf76ce51ba69c6076a0f77eaddb3a93be6f89688de17d813620a00022e01fffffffefffe + let in2 = CE::< + CI<2>, + > {}; // 0x1a0111ea397fe699ec02408663d4de85aa0d857d89759ad4897d29650fb85f9b409427eb4f49fffd8bfd00000000aaac + let in3 = CE::< + CI<3>, + > {}; // 0x5f19672fdf76ce51ba69c6076a0f77eaddb3a93be6f89688de17d813620a00022e01fffffffeffff + let in4 = CE::> {}; // -0x1 % p + let in5 = CE::< + CI<5>, + > {}; // 0x1a0111ea397fe699ec02408663d4de85aa0d857d89759ad4897d29650fb85f9b409427eb4f49fffd8bfd00000000aaad + + // INPUT stack + let (in6, in7, in8) = (CE::> {}, CE::> {}, CE::> {}); + let (in9, in10, in11) = (CE::> {}, CE::> {}, CE::> {}); + let (in12, in13, in14) = (CE::> {}, CE::> {}, CE::> {}); + let (in15, in16, in17) = (CE::> {}, CE::> {}, CE::> {}); + let t0 = circuit_add(in6, in0); + let t1 = circuit_add(in7, in0); + let t2 = circuit_mul(in1, in8); + let t3 = circuit_mul(in1, in9); + let t4 = circuit_mul(in2, in10); + let t5 = circuit_mul(in2, in11); + let t6 = circuit_mul(in3, in12); + let t7 = circuit_mul(in3, in13); + let t8 = circuit_mul(in4, in14); + let t9 = circuit_mul(in4, in15); + let t10 = circuit_mul(in5, in16); + let t11 = circuit_mul(in5, in17); + + let modulus = get_BLS12_381_modulus(); // BLS12_381 prime field modulus + + let mut circuit_inputs = (t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11).new_inputs(); + // Prefill constants: + circuit_inputs = circuit_inputs.next_2([0x0, 0x0, 0x0, 0x0]); // in0 + circuit_inputs = circuit_inputs + .next_2( + [ + 0x620a00022e01fffffffefffe, 0xddb3a93be6f89688de17d813, 0xdf76ce51ba69c6076a0f77ea, + 0x5f19672f, + ], + ); // in1 + circuit_inputs = circuit_inputs + .next_2( + [ + 0x4f49fffd8bfd00000000aaac, 0x897d29650fb85f9b409427eb, 0x63d4de85aa0d857d89759ad4, + 0x1a0111ea397fe699ec024086, + ], + ); // in2 + circuit_inputs = circuit_inputs + .next_2( + [ + 0x620a00022e01fffffffeffff, 0xddb3a93be6f89688de17d813, 0xdf76ce51ba69c6076a0f77ea, + 0x5f19672f, + ], + ); // in3 + circuit_inputs = circuit_inputs + .next_2( + [ + 0xb153ffffb9feffffffffaaaa, 0x6730d2a0f6b0f6241eabfffe, 0x434bacd764774b84f38512bf, + 0x1a0111ea397fe69a4b1ba7b6, + ], + ); // in4 + circuit_inputs = circuit_inputs + .next_2( + [ + 0x4f49fffd8bfd00000000aaad, 0x897d29650fb85f9b409427eb, 0x63d4de85aa0d857d89759ad4, + 0x1a0111ea397fe699ec024086, + ], + ); // in5 + // Fill inputs: + circuit_inputs = circuit_inputs.next_2(M.c0b0a0); // in6 + circuit_inputs = circuit_inputs.next_2(M.c0b0a1); // in7 + circuit_inputs = circuit_inputs.next_2(M.c0b1a0); // in8 + circuit_inputs = circuit_inputs.next_2(M.c0b1a1); // in9 + circuit_inputs = circuit_inputs.next_2(M.c0b2a0); // in10 + circuit_inputs = circuit_inputs.next_2(M.c0b2a1); // in11 + circuit_inputs = circuit_inputs.next_2(M.c1b0a0); // in12 + circuit_inputs = circuit_inputs.next_2(M.c1b0a1); // in13 + circuit_inputs = circuit_inputs.next_2(M.c1b1a0); // in14 + circuit_inputs = circuit_inputs.next_2(M.c1b1a1); // in15 + circuit_inputs = circuit_inputs.next_2(M.c1b2a0); // in16 + circuit_inputs = circuit_inputs.next_2(M.c1b2a1); // in17 + + let outputs = circuit_inputs.done_2().eval(modulus).unwrap(); + let res: E12T = E12T { + c0b0a0: outputs.get_output(t0), + c0b0a1: outputs.get_output(t1), + c0b1a0: outputs.get_output(t2), + c0b1a1: outputs.get_output(t3), + c0b2a0: outputs.get_output(t4), + c0b2a1: outputs.get_output(t5), + c1b0a0: outputs.get_output(t6), + c1b0a1: outputs.get_output(t7), + c1b1a0: outputs.get_output(t8), + c1b1a1: outputs.get_output(t9), + c1b2a0: outputs.get_output(t10), + c1b2a1: outputs.get_output(t11), + }; + return (res,); +} +#[inline(always)] +pub fn run_BLS12_381_E12T_FROBENIUS_circuit(M: E12T) -> (E12T,) { + // CONSTANT stack + let in0 = CE::> {}; // 0x0 + let in1 = CE::< + CI<1>, + > {}; // 0x1a0111ea397fe699ec02408663d4de85aa0d857d89759ad4897d29650fb85f9b409427eb4f49fffd8bfd00000000aaac + let in2 = CE::< + CI<2>, + > {}; // 0x1a0111ea397fe699ec02408663d4de85aa0d857d89759ad4897d29650fb85f9b409427eb4f49fffd8bfd00000000aaad + let in3 = CE::< + CI<3>, + > {}; // 0x1904d3bf02bb0667c231beb4202c0d1f0fd603fd3cbd5f4f7b2443d784bab9c4f67ea53d63e7813d8d0775ed92235fb8 + let in4 = CE::< + CI<4>, + > {}; // 0xfc3e2b36c4e03288e9e902231f9fb854a14787b6c7b36fec0c8ec971f63c5f282d5ac14d6c7ec22cf78a126ddc4af3 + let in5 = CE::< + CI<5>, + > {}; // 0x6af0e0437ff400b6831e36d6bd17ffe48395dabc2d3435e77f76e17009241c5ee67992f72ec05f4c81084fbede3cc09 + let in6 = CE::< + CI<6>, + > {}; // 0x5b2cfd9013a5fd8df47fa6b48b1e045f39816240c0b8fee8beadf4d8e9c0566c63a3e6e257f87329b18fae980078116 + let in7 = CE::< + CI<7>, + > {}; // 0x144e4211384586c16bd3ad4afa99cc9170df3560e77982d0db45f3536814f0bd5871c1908bd478cd1ee605167ff82995 + + // INPUT stack + let (in8, in9, in10) = (CE::> {}, CE::> {}, CE::> {}); + let (in11, in12, in13) = (CE::> {}, CE::> {}, CE::> {}); + let (in14, in15, in16) = (CE::> {}, CE::> {}, CE::> {}); + let (in17, in18, in19) = (CE::> {}, CE::> {}, CE::> {}); + let t0 = circuit_sub(in0, in9); + let t1 = circuit_add(in8, in0); + let t2 = circuit_sub(in0, in11); + let t3 = circuit_sub(in0, in13); + let t4 = circuit_sub(in0, in15); + let t5 = circuit_sub(in0, in17); + let t6 = circuit_sub(in0, in19); + let t7 = circuit_mul(in0, in10); // Fp2 mul start + let t8 = circuit_mul(in1, t2); + let t9 = circuit_sub(t7, t8); // Fp2 mul real part end + let t10 = circuit_mul(in0, t2); + let t11 = circuit_mul(in1, in10); + let t12 = circuit_add(t10, t11); // Fp2 mul imag part end + let t13 = circuit_mul(in2, in12); + let t14 = circuit_mul(in2, t3); + let t15 = circuit_mul(in3, in14); // Fp2 mul start + let t16 = circuit_mul(in4, t4); + let t17 = circuit_sub(t15, t16); // Fp2 mul real part end + let t18 = circuit_mul(in3, t4); + let t19 = circuit_mul(in4, in14); + let t20 = circuit_add(t18, t19); // Fp2 mul imag part end + let t21 = circuit_mul(in5, in16); // Fp2 mul start + let t22 = circuit_mul(in5, t5); + let t23 = circuit_sub(t21, t22); // Fp2 mul real part end + let t24 = circuit_mul(in5, t5); + let t25 = circuit_mul(in5, in16); + let t26 = circuit_add(t24, t25); // Fp2 mul imag part end + let t27 = circuit_mul(in6, in18); // Fp2 mul start + let t28 = circuit_mul(in7, t6); + let t29 = circuit_sub(t27, t28); // Fp2 mul real part end + let t30 = circuit_mul(in6, t6); + let t31 = circuit_mul(in7, in18); + let t32 = circuit_add(t30, t31); // Fp2 mul imag part end + + let modulus = get_BLS12_381_modulus(); // BLS12_381 prime field modulus + + let mut circuit_inputs = (t1, t0, t9, t12, t13, t14, t17, t20, t23, t26, t29, t32).new_inputs(); + // Prefill constants: + + circuit_inputs = circuit_inputs + .next_span(E12T_FROBENIUS_BLS12_381_CONSTANTS.span()); // in0 - in7 + + // Fill inputs: + circuit_inputs = circuit_inputs.next_2(M.c0b0a0); // in8 + circuit_inputs = circuit_inputs.next_2(M.c0b0a1); // in9 + circuit_inputs = circuit_inputs.next_2(M.c0b1a0); // in10 + circuit_inputs = circuit_inputs.next_2(M.c0b1a1); // in11 + circuit_inputs = circuit_inputs.next_2(M.c0b2a0); // in12 + circuit_inputs = circuit_inputs.next_2(M.c0b2a1); // in13 + circuit_inputs = circuit_inputs.next_2(M.c1b0a0); // in14 + circuit_inputs = circuit_inputs.next_2(M.c1b0a1); // in15 + circuit_inputs = circuit_inputs.next_2(M.c1b1a0); // in16 + circuit_inputs = circuit_inputs.next_2(M.c1b1a1); // in17 + circuit_inputs = circuit_inputs.next_2(M.c1b2a0); // in18 + circuit_inputs = circuit_inputs.next_2(M.c1b2a1); // in19 + + let outputs = circuit_inputs.done_2().eval(modulus).unwrap(); + let res: E12T = E12T { + c0b0a0: outputs.get_output(t1), + c0b0a1: outputs.get_output(t0), + c0b1a0: outputs.get_output(t9), + c0b1a1: outputs.get_output(t12), + c0b2a0: outputs.get_output(t13), + c0b2a1: outputs.get_output(t14), + c1b0a0: outputs.get_output(t17), + c1b0a1: outputs.get_output(t20), + c1b1a0: outputs.get_output(t23), + c1b1a1: outputs.get_output(t26), + c1b2a0: outputs.get_output(t29), + c1b2a1: outputs.get_output(t32), + }; + return (res,); +} +const E12T_FROBENIUS_BLS12_381_CONSTANTS: [u384; 8] = [ + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { + limb0: 0x4f49fffd8bfd00000000aaac, + limb1: 0x897d29650fb85f9b409427eb, + limb2: 0x63d4de85aa0d857d89759ad4, + limb3: 0x1a0111ea397fe699ec024086, + }, + u384 { + limb0: 0x4f49fffd8bfd00000000aaad, + limb1: 0x897d29650fb85f9b409427eb, + limb2: 0x63d4de85aa0d857d89759ad4, + limb3: 0x1a0111ea397fe699ec024086, + }, + u384 { + limb0: 0x63e7813d8d0775ed92235fb8, + limb1: 0x7b2443d784bab9c4f67ea53d, + limb2: 0x202c0d1f0fd603fd3cbd5f4f, + limb3: 0x1904d3bf02bb0667c231beb4, + }, + u384 { + limb0: 0x4d6c7ec22cf78a126ddc4af3, + limb1: 0xec0c8ec971f63c5f282d5ac1, + limb2: 0x231f9fb854a14787b6c7b36f, + limb3: 0xfc3e2b36c4e03288e9e902, + }, + u384 { + limb0: 0x72ec05f4c81084fbede3cc09, + limb1: 0x77f76e17009241c5ee67992f, + limb2: 0x6bd17ffe48395dabc2d3435e, + limb3: 0x6af0e0437ff400b6831e36d, + }, + u384 { + limb0: 0x257f87329b18fae980078116, + limb1: 0x8beadf4d8e9c0566c63a3e6e, + limb2: 0x48b1e045f39816240c0b8fee, + limb3: 0x5b2cfd9013a5fd8df47fa6b, + }, + u384 { + limb0: 0x8bd478cd1ee605167ff82995, + limb1: 0xdb45f3536814f0bd5871c190, + limb2: 0xfa99cc9170df3560e77982d0, + limb3: 0x144e4211384586c16bd3ad4a, + }, +]; +#[inline(always)] +pub fn run_BLS12_381_E12T_INVERSE_circuit(M: E12T) -> (E12T,) { + // CONSTANT stack + let in0 = CE::> {}; // 0x0 + + // INPUT stack + let (in1, in2, in3) = (CE::> {}, CE::> {}, CE::> {}); + let (in4, in5, in6) = (CE::> {}, CE::> {}, CE::> {}); + let (in7, in8, in9) = (CE::> {}, CE::> {}, CE::> {}); + let (in10, in11, in12) = (CE::> {}, CE::> {}, CE::> {}); + let t0 = circuit_mul(in1, in3); // Fp2 mul start + let t1 = circuit_mul(in2, in4); + let t2 = circuit_sub(t0, t1); // Fp2 mul real part end + let t3 = circuit_mul(in1, in4); + let t4 = circuit_mul(in2, in3); + let t5 = circuit_add(t3, t4); // Fp2 mul imag part end + let t6 = circuit_add(t2, t2); // Fp2 add coeff 0/1 + let t7 = circuit_add(t5, t5); // Fp2 add coeff 1/1 + let t8 = circuit_add(in5, in6); + let t9 = circuit_sub(in5, in6); + let t10 = circuit_mul(t8, t9); + let t11 = circuit_mul(in5, in6); + let t12 = circuit_add(t11, t11); + let t13 = circuit_add(t10, t12); + let t14 = circuit_add(t13, t13); + let t15 = circuit_sub(t10, t12); + let t16 = circuit_sub(t14, t10); + let t17 = circuit_sub(t16, t12); + let t18 = circuit_add(t15, t6); // Fp2 add coeff 0/1 + let t19 = circuit_add(t17, t7); // Fp2 add coeff 1/1 + let t20 = circuit_sub(t6, t10); // Fp2 sub coeff 0/1 + let t21 = circuit_sub(t7, t12); // Fp2 sub coeff 1/1 + let t22 = circuit_add(in1, in2); + let t23 = circuit_sub(in1, in2); + let t24 = circuit_mul(t22, t23); + let t25 = circuit_mul(in1, in2); + let t26 = circuit_add(t25, t25); + let t27 = circuit_sub(in1, in3); // Fp2 sub coeff 0/1 + let t28 = circuit_sub(in2, in4); // Fp2 sub coeff 1/1 + let t29 = circuit_add(t27, in5); // Fp2 add coeff 0/1 + let t30 = circuit_add(t28, in6); // Fp2 add coeff 1/1 + let t31 = circuit_mul(in3, in5); // Fp2 mul start + let t32 = circuit_mul(in4, in6); + let t33 = circuit_sub(t31, t32); // Fp2 mul real part end + let t34 = circuit_mul(in3, in6); + let t35 = circuit_mul(in4, in5); + let t36 = circuit_add(t34, t35); // Fp2 mul imag part end + let t37 = circuit_add(t33, t33); // Fp2 add coeff 0/1 + let t38 = circuit_add(t36, t36); // Fp2 add coeff 1/1 + let t39 = circuit_add(t29, t30); + let t40 = circuit_sub(t29, t30); + let t41 = circuit_mul(t39, t40); + let t42 = circuit_mul(t29, t30); + let t43 = circuit_add(t42, t42); + let t44 = circuit_add(t37, t38); + let t45 = circuit_add(t44, t44); + let t46 = circuit_sub(t37, t38); + let t47 = circuit_sub(t45, t37); + let t48 = circuit_sub(t47, t38); + let t49 = circuit_add(t46, t24); // Fp2 add coeff 0/1 + let t50 = circuit_add(t48, t26); // Fp2 add coeff 1/1 + let t51 = circuit_add(t20, t41); // Fp2 add coeff 0/1 + let t52 = circuit_add(t21, t43); // Fp2 add coeff 1/1 + let t53 = circuit_add(t51, t37); // Fp2 add coeff 0/1 + let t54 = circuit_add(t52, t38); // Fp2 add coeff 1/1 + let t55 = circuit_sub(t53, t24); // Fp2 sub coeff 0/1 + let t56 = circuit_sub(t54, t26); // Fp2 sub coeff 1/1 + let t57 = circuit_mul(in7, in9); // Fp2 mul start + let t58 = circuit_mul(in8, in10); + let t59 = circuit_sub(t57, t58); // Fp2 mul real part end + let t60 = circuit_mul(in7, in10); + let t61 = circuit_mul(in8, in9); + let t62 = circuit_add(t60, t61); // Fp2 mul imag part end + let t63 = circuit_add(t59, t59); // Fp2 add coeff 0/1 + let t64 = circuit_add(t62, t62); // Fp2 add coeff 1/1 + let t65 = circuit_add(in11, in12); + let t66 = circuit_sub(in11, in12); + let t67 = circuit_mul(t65, t66); + let t68 = circuit_mul(in11, in12); + let t69 = circuit_add(t68, t68); + let t70 = circuit_add(t67, t69); + let t71 = circuit_add(t70, t70); + let t72 = circuit_sub(t67, t69); + let t73 = circuit_sub(t71, t67); + let t74 = circuit_sub(t73, t69); + let t75 = circuit_add(t72, t63); // Fp2 add coeff 0/1 + let t76 = circuit_add(t74, t64); // Fp2 add coeff 1/1 + let t77 = circuit_sub(t63, t67); // Fp2 sub coeff 0/1 + let t78 = circuit_sub(t64, t69); // Fp2 sub coeff 1/1 + let t79 = circuit_add(in7, in8); + let t80 = circuit_sub(in7, in8); + let t81 = circuit_mul(t79, t80); + let t82 = circuit_mul(in7, in8); + let t83 = circuit_add(t82, t82); + let t84 = circuit_sub(in7, in9); // Fp2 sub coeff 0/1 + let t85 = circuit_sub(in8, in10); // Fp2 sub coeff 1/1 + let t86 = circuit_add(t84, in11); // Fp2 add coeff 0/1 + let t87 = circuit_add(t85, in12); // Fp2 add coeff 1/1 + let t88 = circuit_mul(in9, in11); // Fp2 mul start + let t89 = circuit_mul(in10, in12); + let t90 = circuit_sub(t88, t89); // Fp2 mul real part end + let t91 = circuit_mul(in9, in12); + let t92 = circuit_mul(in10, in11); + let t93 = circuit_add(t91, t92); // Fp2 mul imag part end + let t94 = circuit_add(t90, t90); // Fp2 add coeff 0/1 + let t95 = circuit_add(t93, t93); // Fp2 add coeff 1/1 + let t96 = circuit_add(t86, t87); + let t97 = circuit_sub(t86, t87); + let t98 = circuit_mul(t96, t97); + let t99 = circuit_mul(t86, t87); + let t100 = circuit_add(t99, t99); + let t101 = circuit_add(t94, t95); + let t102 = circuit_add(t101, t101); + let t103 = circuit_sub(t94, t95); + let t104 = circuit_sub(t102, t94); + let t105 = circuit_sub(t104, t95); + let t106 = circuit_add(t103, t81); // Fp2 add coeff 0/1 + let t107 = circuit_add(t105, t83); // Fp2 add coeff 1/1 + let t108 = circuit_add(t77, t98); // Fp2 add coeff 0/1 + let t109 = circuit_add(t78, t100); // Fp2 add coeff 1/1 + let t110 = circuit_add(t108, t94); // Fp2 add coeff 0/1 + let t111 = circuit_add(t109, t95); // Fp2 add coeff 1/1 + let t112 = circuit_sub(t110, t81); // Fp2 sub coeff 0/1 + let t113 = circuit_sub(t111, t83); // Fp2 sub coeff 1/1 + let t114 = circuit_add(t112, t113); + let t115 = circuit_add(t114, t114); + let t116 = circuit_sub(t112, t113); + let t117 = circuit_sub(t115, t112); + let t118 = circuit_sub(t117, t113); + let t119 = circuit_sub(t49, t116); // Fp6 sub coeff 0/5 + let t120 = circuit_sub(t50, t118); // Fp6 sub coeff 1/5 + let t121 = circuit_sub(t18, t106); // Fp6 sub coeff 2/5 + let t122 = circuit_sub(t19, t107); // Fp6 sub coeff 3/5 + let t123 = circuit_sub(t55, t75); // Fp6 sub coeff 4/5 + let t124 = circuit_sub(t56, t76); // Fp6 sub coeff 5/5 + let t125 = circuit_add(t119, t120); + let t126 = circuit_sub(t119, t120); + let t127 = circuit_mul(t125, t126); + let t128 = circuit_mul(t119, t120); + let t129 = circuit_add(t128, t128); + let t130 = circuit_add(t121, t122); + let t131 = circuit_sub(t121, t122); + let t132 = circuit_mul(t130, t131); + let t133 = circuit_mul(t121, t122); + let t134 = circuit_add(t133, t133); + let t135 = circuit_add(t123, t124); + let t136 = circuit_sub(t123, t124); + let t137 = circuit_mul(t135, t136); + let t138 = circuit_mul(t123, t124); + let t139 = circuit_add(t138, t138); + let t140 = circuit_mul(t119, t121); // Fp2 mul start + let t141 = circuit_mul(t120, t122); + let t142 = circuit_sub(t140, t141); // Fp2 mul real part end + let t143 = circuit_mul(t119, t122); + let t144 = circuit_mul(t120, t121); + let t145 = circuit_add(t143, t144); // Fp2 mul imag part end + let t146 = circuit_mul(t119, t123); // Fp2 mul start + let t147 = circuit_mul(t120, t124); + let t148 = circuit_sub(t146, t147); // Fp2 mul real part end + let t149 = circuit_mul(t119, t124); + let t150 = circuit_mul(t120, t123); + let t151 = circuit_add(t149, t150); // Fp2 mul imag part end + let t152 = circuit_mul(t121, t123); // Fp2 mul start + let t153 = circuit_mul(t122, t124); + let t154 = circuit_sub(t152, t153); // Fp2 mul real part end + let t155 = circuit_mul(t121, t124); + let t156 = circuit_mul(t122, t123); + let t157 = circuit_add(t155, t156); // Fp2 mul imag part end + let t158 = circuit_add(t154, t157); + let t159 = circuit_add(t158, t158); + let t160 = circuit_sub(t154, t157); + let t161 = circuit_sub(t159, t154); + let t162 = circuit_sub(t161, t157); + let t163 = circuit_sub(in0, t160); // Fp2 neg coeff 0/1 + let t164 = circuit_sub(in0, t162); // Fp2 neg coeff 1/1 + let t165 = circuit_add(t163, t127); // Fp2 add coeff 0/1 + let t166 = circuit_add(t164, t129); // Fp2 add coeff 1/1 + let t167 = circuit_add(t137, t139); + let t168 = circuit_add(t167, t167); + let t169 = circuit_sub(t137, t139); + let t170 = circuit_sub(t168, t137); + let t171 = circuit_sub(t170, t139); + let t172 = circuit_sub(t169, t142); // Fp2 sub coeff 0/1 + let t173 = circuit_sub(t171, t145); // Fp2 sub coeff 1/1 + let t174 = circuit_sub(t132, t148); // Fp2 sub coeff 0/1 + let t175 = circuit_sub(t134, t151); // Fp2 sub coeff 1/1 + let t176 = circuit_mul(t119, t165); // Fp2 mul start + let t177 = circuit_mul(t120, t166); + let t178 = circuit_sub(t176, t177); // Fp2 mul real part end + let t179 = circuit_mul(t119, t166); + let t180 = circuit_mul(t120, t165); + let t181 = circuit_add(t179, t180); // Fp2 mul imag part end + let t182 = circuit_mul(t123, t172); // Fp2 mul start + let t183 = circuit_mul(t124, t173); + let t184 = circuit_sub(t182, t183); // Fp2 mul real part end + let t185 = circuit_mul(t123, t173); + let t186 = circuit_mul(t124, t172); + let t187 = circuit_add(t185, t186); // Fp2 mul imag part end + let t188 = circuit_mul(t121, t174); // Fp2 mul start + let t189 = circuit_mul(t122, t175); + let t190 = circuit_sub(t188, t189); // Fp2 mul real part end + let t191 = circuit_mul(t121, t175); + let t192 = circuit_mul(t122, t174); + let t193 = circuit_add(t191, t192); // Fp2 mul imag part end + let t194 = circuit_add(t184, t190); // Fp2 add coeff 0/1 + let t195 = circuit_add(t187, t193); // Fp2 add coeff 1/1 + let t196 = circuit_add(t194, t195); + let t197 = circuit_add(t196, t196); + let t198 = circuit_sub(t194, t195); + let t199 = circuit_sub(t197, t194); + let t200 = circuit_sub(t199, t195); + let t201 = circuit_add(t178, t198); // Fp2 add coeff 0/1 + let t202 = circuit_add(t181, t200); // Fp2 add coeff 1/1 + let t203 = circuit_mul(t201, t201); // Fp2 Inv start + let t204 = circuit_mul(t202, t202); + let t205 = circuit_add(t203, t204); + let t206 = circuit_inverse(t205); + let t207 = circuit_mul(t201, t206); // Fp2 Inv real part end + let t208 = circuit_mul(t202, t206); + let t209 = circuit_sub(in0, t208); // Fp2 Inv imag part end + let t210 = circuit_mul(t165, t207); // Fp2 mul start + let t211 = circuit_mul(t166, t209); + let t212 = circuit_sub(t210, t211); // Fp2 mul real part end + let t213 = circuit_mul(t165, t209); + let t214 = circuit_mul(t166, t207); + let t215 = circuit_add(t213, t214); // Fp2 mul imag part end + let t216 = circuit_mul(t172, t207); // Fp2 mul start + let t217 = circuit_mul(t173, t209); + let t218 = circuit_sub(t216, t217); // Fp2 mul real part end + let t219 = circuit_mul(t172, t209); + let t220 = circuit_mul(t173, t207); + let t221 = circuit_add(t219, t220); // Fp2 mul imag part end + let t222 = circuit_mul(t174, t207); // Fp2 mul start + let t223 = circuit_mul(t175, t209); + let t224 = circuit_sub(t222, t223); // Fp2 mul real part end + let t225 = circuit_mul(t174, t209); + let t226 = circuit_mul(t175, t207); + let t227 = circuit_add(t225, t226); // Fp2 mul imag part end + let t228 = circuit_mul(in1, t212); // Fp2 mul start + let t229 = circuit_mul(in2, t215); + let t230 = circuit_sub(t228, t229); // Fp2 mul real part end + let t231 = circuit_mul(in1, t215); + let t232 = circuit_mul(in2, t212); + let t233 = circuit_add(t231, t232); // Fp2 mul imag part end + let t234 = circuit_mul(in3, t218); // Fp2 mul start + let t235 = circuit_mul(in4, t221); + let t236 = circuit_sub(t234, t235); // Fp2 mul real part end + let t237 = circuit_mul(in3, t221); + let t238 = circuit_mul(in4, t218); + let t239 = circuit_add(t237, t238); // Fp2 mul imag part end + let t240 = circuit_mul(in5, t224); // Fp2 mul start + let t241 = circuit_mul(in6, t227); + let t242 = circuit_sub(t240, t241); // Fp2 mul real part end + let t243 = circuit_mul(in5, t227); + let t244 = circuit_mul(in6, t224); + let t245 = circuit_add(t243, t244); // Fp2 mul imag part end + let t246 = circuit_add(in3, in5); // Fp2 add coeff 0/1 + let t247 = circuit_add(in4, in6); // Fp2 add coeff 1/1 + let t248 = circuit_add(t218, t224); // Fp2 add coeff 0/1 + let t249 = circuit_add(t221, t227); // Fp2 add coeff 1/1 + let t250 = circuit_mul(t246, t248); // Fp2 mul start + let t251 = circuit_mul(t247, t249); + let t252 = circuit_sub(t250, t251); // Fp2 mul real part end + let t253 = circuit_mul(t246, t249); + let t254 = circuit_mul(t247, t248); + let t255 = circuit_add(t253, t254); // Fp2 mul imag part end + let t256 = circuit_sub(t252, t236); // Fp2 sub coeff 0/1 + let t257 = circuit_sub(t255, t239); // Fp2 sub coeff 1/1 + let t258 = circuit_sub(t256, t242); // Fp2 sub coeff 0/1 + let t259 = circuit_sub(t257, t245); // Fp2 sub coeff 1/1 + let t260 = circuit_add(t258, t259); + let t261 = circuit_add(t260, t260); + let t262 = circuit_sub(t258, t259); + let t263 = circuit_sub(t261, t258); + let t264 = circuit_sub(t263, t259); + let t265 = circuit_add(t262, t230); // Fp2 add coeff 0/1 + let t266 = circuit_add(t264, t233); // Fp2 add coeff 1/1 + let t267 = circuit_add(in1, in3); // Fp2 add coeff 0/1 + let t268 = circuit_add(in2, in4); // Fp2 add coeff 1/1 + let t269 = circuit_add(t212, t218); // Fp2 add coeff 0/1 + let t270 = circuit_add(t215, t221); // Fp2 add coeff 1/1 + let t271 = circuit_mul(t267, t269); // Fp2 mul start + let t272 = circuit_mul(t268, t270); + let t273 = circuit_sub(t271, t272); // Fp2 mul real part end + let t274 = circuit_mul(t267, t270); + let t275 = circuit_mul(t268, t269); + let t276 = circuit_add(t274, t275); // Fp2 mul imag part end + let t277 = circuit_sub(t273, t230); // Fp2 sub coeff 0/1 + let t278 = circuit_sub(t276, t233); // Fp2 sub coeff 1/1 + let t279 = circuit_sub(t277, t236); // Fp2 sub coeff 0/1 + let t280 = circuit_sub(t278, t239); // Fp2 sub coeff 1/1 + let t281 = circuit_add(t242, t245); + let t282 = circuit_add(t281, t281); + let t283 = circuit_sub(t242, t245); + let t284 = circuit_sub(t282, t242); + let t285 = circuit_sub(t284, t245); + let t286 = circuit_add(t279, t283); // Fp2 add coeff 0/1 + let t287 = circuit_add(t280, t285); // Fp2 add coeff 1/1 + let t288 = circuit_add(in1, in5); // Fp2 add coeff 0/1 + let t289 = circuit_add(in2, in6); // Fp2 add coeff 1/1 + let t290 = circuit_add(t212, t224); // Fp2 add coeff 0/1 + let t291 = circuit_add(t215, t227); // Fp2 add coeff 1/1 + let t292 = circuit_mul(t290, t288); // Fp2 mul start + let t293 = circuit_mul(t291, t289); + let t294 = circuit_sub(t292, t293); // Fp2 mul real part end + let t295 = circuit_mul(t290, t289); + let t296 = circuit_mul(t291, t288); + let t297 = circuit_add(t295, t296); // Fp2 mul imag part end + let t298 = circuit_sub(t294, t230); // Fp2 sub coeff 0/1 + let t299 = circuit_sub(t297, t233); // Fp2 sub coeff 1/1 + let t300 = circuit_sub(t298, t242); // Fp2 sub coeff 0/1 + let t301 = circuit_sub(t299, t245); // Fp2 sub coeff 1/1 + let t302 = circuit_add(t300, t236); // Fp2 add coeff 0/1 + let t303 = circuit_add(t301, t239); // Fp2 add coeff 1/1 + let t304 = circuit_mul(in7, t212); // Fp2 mul start + let t305 = circuit_mul(in8, t215); + let t306 = circuit_sub(t304, t305); // Fp2 mul real part end + let t307 = circuit_mul(in7, t215); + let t308 = circuit_mul(in8, t212); + let t309 = circuit_add(t307, t308); // Fp2 mul imag part end + let t310 = circuit_mul(in9, t218); // Fp2 mul start + let t311 = circuit_mul(in10, t221); + let t312 = circuit_sub(t310, t311); // Fp2 mul real part end + let t313 = circuit_mul(in9, t221); + let t314 = circuit_mul(in10, t218); + let t315 = circuit_add(t313, t314); // Fp2 mul imag part end + let t316 = circuit_mul(in11, t224); // Fp2 mul start + let t317 = circuit_mul(in12, t227); + let t318 = circuit_sub(t316, t317); // Fp2 mul real part end + let t319 = circuit_mul(in11, t227); + let t320 = circuit_mul(in12, t224); + let t321 = circuit_add(t319, t320); // Fp2 mul imag part end + let t322 = circuit_add(in9, in11); // Fp2 add coeff 0/1 + let t323 = circuit_add(in10, in12); // Fp2 add coeff 1/1 + let t324 = circuit_add(t218, t224); // Fp2 add coeff 0/1 + let t325 = circuit_add(t221, t227); // Fp2 add coeff 1/1 + let t326 = circuit_mul(t322, t324); // Fp2 mul start + let t327 = circuit_mul(t323, t325); + let t328 = circuit_sub(t326, t327); // Fp2 mul real part end + let t329 = circuit_mul(t322, t325); + let t330 = circuit_mul(t323, t324); + let t331 = circuit_add(t329, t330); // Fp2 mul imag part end + let t332 = circuit_sub(t328, t312); // Fp2 sub coeff 0/1 + let t333 = circuit_sub(t331, t315); // Fp2 sub coeff 1/1 + let t334 = circuit_sub(t332, t318); // Fp2 sub coeff 0/1 + let t335 = circuit_sub(t333, t321); // Fp2 sub coeff 1/1 + let t336 = circuit_add(t334, t335); + let t337 = circuit_add(t336, t336); + let t338 = circuit_sub(t334, t335); + let t339 = circuit_sub(t337, t334); + let t340 = circuit_sub(t339, t335); + let t341 = circuit_add(t338, t306); // Fp2 add coeff 0/1 + let t342 = circuit_add(t340, t309); // Fp2 add coeff 1/1 + let t343 = circuit_add(in7, in9); // Fp2 add coeff 0/1 + let t344 = circuit_add(in8, in10); // Fp2 add coeff 1/1 + let t345 = circuit_add(t212, t218); // Fp2 add coeff 0/1 + let t346 = circuit_add(t215, t221); // Fp2 add coeff 1/1 + let t347 = circuit_mul(t343, t345); // Fp2 mul start + let t348 = circuit_mul(t344, t346); + let t349 = circuit_sub(t347, t348); // Fp2 mul real part end + let t350 = circuit_mul(t343, t346); + let t351 = circuit_mul(t344, t345); + let t352 = circuit_add(t350, t351); // Fp2 mul imag part end + let t353 = circuit_sub(t349, t306); // Fp2 sub coeff 0/1 + let t354 = circuit_sub(t352, t309); // Fp2 sub coeff 1/1 + let t355 = circuit_sub(t353, t312); // Fp2 sub coeff 0/1 + let t356 = circuit_sub(t354, t315); // Fp2 sub coeff 1/1 + let t357 = circuit_add(t318, t321); + let t358 = circuit_add(t357, t357); + let t359 = circuit_sub(t318, t321); + let t360 = circuit_sub(t358, t318); + let t361 = circuit_sub(t360, t321); + let t362 = circuit_add(t355, t359); // Fp2 add coeff 0/1 + let t363 = circuit_add(t356, t361); // Fp2 add coeff 1/1 + let t364 = circuit_add(in7, in11); // Fp2 add coeff 0/1 + let t365 = circuit_add(in8, in12); // Fp2 add coeff 1/1 + let t366 = circuit_add(t212, t224); // Fp2 add coeff 0/1 + let t367 = circuit_add(t215, t227); // Fp2 add coeff 1/1 + let t368 = circuit_mul(t366, t364); // Fp2 mul start + let t369 = circuit_mul(t367, t365); + let t370 = circuit_sub(t368, t369); // Fp2 mul real part end + let t371 = circuit_mul(t366, t365); + let t372 = circuit_mul(t367, t364); + let t373 = circuit_add(t371, t372); // Fp2 mul imag part end + let t374 = circuit_sub(t370, t306); // Fp2 sub coeff 0/1 + let t375 = circuit_sub(t373, t309); // Fp2 sub coeff 1/1 + let t376 = circuit_sub(t374, t318); // Fp2 sub coeff 0/1 + let t377 = circuit_sub(t375, t321); // Fp2 sub coeff 1/1 + let t378 = circuit_add(t376, t312); // Fp2 add coeff 0/1 + let t379 = circuit_add(t377, t315); // Fp2 add coeff 1/1 + let t380 = circuit_sub(in0, t341); // Fp6 neg coeff 0/5 + let t381 = circuit_sub(in0, t342); // Fp6 neg coeff 1/5 + let t382 = circuit_sub(in0, t362); // Fp6 neg coeff 2/5 + let t383 = circuit_sub(in0, t363); // Fp6 neg coeff 3/5 + let t384 = circuit_sub(in0, t378); // Fp6 neg coeff 4/5 + let t385 = circuit_sub(in0, t379); // Fp6 neg coeff 5/5 + + let modulus = get_BLS12_381_modulus(); // BLS12_381 prime field modulus + + let mut circuit_inputs = ( + t265, t266, t286, t287, t302, t303, t380, t381, t382, t383, t384, t385, + ) + .new_inputs(); + // Prefill constants: + circuit_inputs = circuit_inputs.next_2([0x0, 0x0, 0x0, 0x0]); // in0 + // Fill inputs: + circuit_inputs = circuit_inputs.next_2(M.c0b0a0); // in1 + circuit_inputs = circuit_inputs.next_2(M.c0b0a1); // in2 + circuit_inputs = circuit_inputs.next_2(M.c0b1a0); // in3 + circuit_inputs = circuit_inputs.next_2(M.c0b1a1); // in4 + circuit_inputs = circuit_inputs.next_2(M.c0b2a0); // in5 + circuit_inputs = circuit_inputs.next_2(M.c0b2a1); // in6 + circuit_inputs = circuit_inputs.next_2(M.c1b0a0); // in7 + circuit_inputs = circuit_inputs.next_2(M.c1b0a1); // in8 + circuit_inputs = circuit_inputs.next_2(M.c1b1a0); // in9 + circuit_inputs = circuit_inputs.next_2(M.c1b1a1); // in10 + circuit_inputs = circuit_inputs.next_2(M.c1b2a0); // in11 + circuit_inputs = circuit_inputs.next_2(M.c1b2a1); // in12 + + let outputs = circuit_inputs.done_2().eval(modulus).unwrap(); + let res: E12T = E12T { + c0b0a0: outputs.get_output(t265), + c0b0a1: outputs.get_output(t266), + c0b1a0: outputs.get_output(t286), + c0b1a1: outputs.get_output(t287), + c0b2a0: outputs.get_output(t302), + c0b2a1: outputs.get_output(t303), + c1b0a0: outputs.get_output(t380), + c1b0a1: outputs.get_output(t381), + c1b1a0: outputs.get_output(t382), + c1b1a1: outputs.get_output(t383), + c1b2a0: outputs.get_output(t384), + c1b2a1: outputs.get_output(t385), + }; + return (res,); +} +#[inline(always)] +pub fn run_BLS12_381_E12T_MUL_circuit(X: E12T, Y: E12T) -> (E12T,) { + // INPUT stack + let (in0, in1, in2) = (CE::> {}, CE::> {}, CE::> {}); + let (in3, in4, in5) = (CE::> {}, CE::> {}, CE::> {}); + let (in6, in7, in8) = (CE::> {}, CE::> {}, CE::> {}); + let (in9, in10, in11) = (CE::> {}, CE::> {}, CE::> {}); + let (in12, in13, in14) = (CE::> {}, CE::> {}, CE::> {}); + let (in15, in16, in17) = (CE::> {}, CE::> {}, CE::> {}); + let (in18, in19, in20) = (CE::> {}, CE::> {}, CE::> {}); + let (in21, in22, in23) = (CE::> {}, CE::> {}, CE::> {}); + let t0 = circuit_add(in0, in6); // Fp6 add coeff 0/5 + let t1 = circuit_add(in1, in7); // Fp6 add coeff 1/5 + let t2 = circuit_add(in2, in8); // Fp6 add coeff 2/5 + let t3 = circuit_add(in3, in9); // Fp6 add coeff 3/5 + let t4 = circuit_add(in4, in10); // Fp6 add coeff 4/5 + let t5 = circuit_add(in5, in11); // Fp6 add coeff 5/5 + let t6 = circuit_add(in12, in18); // Fp6 add coeff 0/5 + let t7 = circuit_add(in13, in19); // Fp6 add coeff 1/5 + let t8 = circuit_add(in14, in20); // Fp6 add coeff 2/5 + let t9 = circuit_add(in15, in21); // Fp6 add coeff 3/5 + let t10 = circuit_add(in16, in22); // Fp6 add coeff 4/5 + let t11 = circuit_add(in17, in23); // Fp6 add coeff 5/5 + let t12 = circuit_mul(t0, t6); // Fp2 mul start + let t13 = circuit_mul(t1, t7); + let t14 = circuit_sub(t12, t13); // Fp2 mul real part end + let t15 = circuit_mul(t0, t7); + let t16 = circuit_mul(t1, t6); + let t17 = circuit_add(t15, t16); // Fp2 mul imag part end + let t18 = circuit_mul(t2, t8); // Fp2 mul start + let t19 = circuit_mul(t3, t9); + let t20 = circuit_sub(t18, t19); // Fp2 mul real part end + let t21 = circuit_mul(t2, t9); + let t22 = circuit_mul(t3, t8); + let t23 = circuit_add(t21, t22); // Fp2 mul imag part end + let t24 = circuit_mul(t4, t10); // Fp2 mul start + let t25 = circuit_mul(t5, t11); + let t26 = circuit_sub(t24, t25); // Fp2 mul real part end + let t27 = circuit_mul(t4, t11); + let t28 = circuit_mul(t5, t10); + let t29 = circuit_add(t27, t28); // Fp2 mul imag part end + let t30 = circuit_add(t2, t4); // Fp2 add coeff 0/1 + let t31 = circuit_add(t3, t5); // Fp2 add coeff 1/1 + let t32 = circuit_add(t8, t10); // Fp2 add coeff 0/1 + let t33 = circuit_add(t9, t11); // Fp2 add coeff 1/1 + let t34 = circuit_mul(t30, t32); // Fp2 mul start + let t35 = circuit_mul(t31, t33); + let t36 = circuit_sub(t34, t35); // Fp2 mul real part end + let t37 = circuit_mul(t30, t33); + let t38 = circuit_mul(t31, t32); + let t39 = circuit_add(t37, t38); // Fp2 mul imag part end + let t40 = circuit_sub(t36, t20); // Fp2 sub coeff 0/1 + let t41 = circuit_sub(t39, t23); // Fp2 sub coeff 1/1 + let t42 = circuit_sub(t40, t26); // Fp2 sub coeff 0/1 + let t43 = circuit_sub(t41, t29); // Fp2 sub coeff 1/1 + let t44 = circuit_add(t42, t43); + let t45 = circuit_add(t44, t44); + let t46 = circuit_sub(t42, t43); + let t47 = circuit_sub(t45, t42); + let t48 = circuit_sub(t47, t43); + let t49 = circuit_add(t46, t14); // Fp2 add coeff 0/1 + let t50 = circuit_add(t48, t17); // Fp2 add coeff 1/1 + let t51 = circuit_add(t0, t2); // Fp2 add coeff 0/1 + let t52 = circuit_add(t1, t3); // Fp2 add coeff 1/1 + let t53 = circuit_add(t6, t8); // Fp2 add coeff 0/1 + let t54 = circuit_add(t7, t9); // Fp2 add coeff 1/1 + let t55 = circuit_mul(t51, t53); // Fp2 mul start + let t56 = circuit_mul(t52, t54); + let t57 = circuit_sub(t55, t56); // Fp2 mul real part end + let t58 = circuit_mul(t51, t54); + let t59 = circuit_mul(t52, t53); + let t60 = circuit_add(t58, t59); // Fp2 mul imag part end + let t61 = circuit_sub(t57, t14); // Fp2 sub coeff 0/1 + let t62 = circuit_sub(t60, t17); // Fp2 sub coeff 1/1 + let t63 = circuit_sub(t61, t20); // Fp2 sub coeff 0/1 + let t64 = circuit_sub(t62, t23); // Fp2 sub coeff 1/1 + let t65 = circuit_add(t26, t29); + let t66 = circuit_add(t65, t65); + let t67 = circuit_sub(t26, t29); + let t68 = circuit_sub(t66, t26); + let t69 = circuit_sub(t68, t29); + let t70 = circuit_add(t63, t67); // Fp2 add coeff 0/1 + let t71 = circuit_add(t64, t69); // Fp2 add coeff 1/1 + let t72 = circuit_add(t0, t4); // Fp2 add coeff 0/1 + let t73 = circuit_add(t1, t5); // Fp2 add coeff 1/1 + let t74 = circuit_add(t6, t10); // Fp2 add coeff 0/1 + let t75 = circuit_add(t7, t11); // Fp2 add coeff 1/1 + let t76 = circuit_mul(t74, t72); // Fp2 mul start + let t77 = circuit_mul(t75, t73); + let t78 = circuit_sub(t76, t77); // Fp2 mul real part end + let t79 = circuit_mul(t74, t73); + let t80 = circuit_mul(t75, t72); + let t81 = circuit_add(t79, t80); // Fp2 mul imag part end + let t82 = circuit_sub(t78, t14); // Fp2 sub coeff 0/1 + let t83 = circuit_sub(t81, t17); // Fp2 sub coeff 1/1 + let t84 = circuit_sub(t82, t26); // Fp2 sub coeff 0/1 + let t85 = circuit_sub(t83, t29); // Fp2 sub coeff 1/1 + let t86 = circuit_add(t84, t20); // Fp2 add coeff 0/1 + let t87 = circuit_add(t85, t23); // Fp2 add coeff 1/1 + let t88 = circuit_mul(in0, in12); // Fp2 mul start + let t89 = circuit_mul(in1, in13); + let t90 = circuit_sub(t88, t89); // Fp2 mul real part end + let t91 = circuit_mul(in0, in13); + let t92 = circuit_mul(in1, in12); + let t93 = circuit_add(t91, t92); // Fp2 mul imag part end + let t94 = circuit_mul(in2, in14); // Fp2 mul start + let t95 = circuit_mul(in3, in15); + let t96 = circuit_sub(t94, t95); // Fp2 mul real part end + let t97 = circuit_mul(in2, in15); + let t98 = circuit_mul(in3, in14); + let t99 = circuit_add(t97, t98); // Fp2 mul imag part end + let t100 = circuit_mul(in4, in16); // Fp2 mul start + let t101 = circuit_mul(in5, in17); + let t102 = circuit_sub(t100, t101); // Fp2 mul real part end + let t103 = circuit_mul(in4, in17); + let t104 = circuit_mul(in5, in16); + let t105 = circuit_add(t103, t104); // Fp2 mul imag part end + let t106 = circuit_add(in2, in4); // Fp2 add coeff 0/1 + let t107 = circuit_add(in3, in5); // Fp2 add coeff 1/1 + let t108 = circuit_add(in14, in16); // Fp2 add coeff 0/1 + let t109 = circuit_add(in15, in17); // Fp2 add coeff 1/1 + let t110 = circuit_mul(t106, t108); // Fp2 mul start + let t111 = circuit_mul(t107, t109); + let t112 = circuit_sub(t110, t111); // Fp2 mul real part end + let t113 = circuit_mul(t106, t109); + let t114 = circuit_mul(t107, t108); + let t115 = circuit_add(t113, t114); // Fp2 mul imag part end + let t116 = circuit_sub(t112, t96); // Fp2 sub coeff 0/1 + let t117 = circuit_sub(t115, t99); // Fp2 sub coeff 1/1 + let t118 = circuit_sub(t116, t102); // Fp2 sub coeff 0/1 + let t119 = circuit_sub(t117, t105); // Fp2 sub coeff 1/1 + let t120 = circuit_add(t118, t119); + let t121 = circuit_add(t120, t120); + let t122 = circuit_sub(t118, t119); + let t123 = circuit_sub(t121, t118); + let t124 = circuit_sub(t123, t119); + let t125 = circuit_add(t122, t90); // Fp2 add coeff 0/1 + let t126 = circuit_add(t124, t93); // Fp2 add coeff 1/1 + let t127 = circuit_add(in0, in2); // Fp2 add coeff 0/1 + let t128 = circuit_add(in1, in3); // Fp2 add coeff 1/1 + let t129 = circuit_add(in12, in14); // Fp2 add coeff 0/1 + let t130 = circuit_add(in13, in15); // Fp2 add coeff 1/1 + let t131 = circuit_mul(t127, t129); // Fp2 mul start + let t132 = circuit_mul(t128, t130); + let t133 = circuit_sub(t131, t132); // Fp2 mul real part end + let t134 = circuit_mul(t127, t130); + let t135 = circuit_mul(t128, t129); + let t136 = circuit_add(t134, t135); // Fp2 mul imag part end + let t137 = circuit_sub(t133, t90); // Fp2 sub coeff 0/1 + let t138 = circuit_sub(t136, t93); // Fp2 sub coeff 1/1 + let t139 = circuit_sub(t137, t96); // Fp2 sub coeff 0/1 + let t140 = circuit_sub(t138, t99); // Fp2 sub coeff 1/1 + let t141 = circuit_add(t102, t105); + let t142 = circuit_add(t141, t141); + let t143 = circuit_sub(t102, t105); + let t144 = circuit_sub(t142, t102); + let t145 = circuit_sub(t144, t105); + let t146 = circuit_add(t139, t143); // Fp2 add coeff 0/1 + let t147 = circuit_add(t140, t145); // Fp2 add coeff 1/1 + let t148 = circuit_add(in0, in4); // Fp2 add coeff 0/1 + let t149 = circuit_add(in1, in5); // Fp2 add coeff 1/1 + let t150 = circuit_add(in12, in16); // Fp2 add coeff 0/1 + let t151 = circuit_add(in13, in17); // Fp2 add coeff 1/1 + let t152 = circuit_mul(t150, t148); // Fp2 mul start + let t153 = circuit_mul(t151, t149); + let t154 = circuit_sub(t152, t153); // Fp2 mul real part end + let t155 = circuit_mul(t150, t149); + let t156 = circuit_mul(t151, t148); + let t157 = circuit_add(t155, t156); // Fp2 mul imag part end + let t158 = circuit_sub(t154, t90); // Fp2 sub coeff 0/1 + let t159 = circuit_sub(t157, t93); // Fp2 sub coeff 1/1 + let t160 = circuit_sub(t158, t102); // Fp2 sub coeff 0/1 + let t161 = circuit_sub(t159, t105); // Fp2 sub coeff 1/1 + let t162 = circuit_add(t160, t96); // Fp2 add coeff 0/1 + let t163 = circuit_add(t161, t99); // Fp2 add coeff 1/1 + let t164 = circuit_mul(in6, in18); // Fp2 mul start + let t165 = circuit_mul(in7, in19); + let t166 = circuit_sub(t164, t165); // Fp2 mul real part end + let t167 = circuit_mul(in6, in19); + let t168 = circuit_mul(in7, in18); + let t169 = circuit_add(t167, t168); // Fp2 mul imag part end + let t170 = circuit_mul(in8, in20); // Fp2 mul start + let t171 = circuit_mul(in9, in21); + let t172 = circuit_sub(t170, t171); // Fp2 mul real part end + let t173 = circuit_mul(in8, in21); + let t174 = circuit_mul(in9, in20); + let t175 = circuit_add(t173, t174); // Fp2 mul imag part end + let t176 = circuit_mul(in10, in22); // Fp2 mul start + let t177 = circuit_mul(in11, in23); + let t178 = circuit_sub(t176, t177); // Fp2 mul real part end + let t179 = circuit_mul(in10, in23); + let t180 = circuit_mul(in11, in22); + let t181 = circuit_add(t179, t180); // Fp2 mul imag part end + let t182 = circuit_add(in8, in10); // Fp2 add coeff 0/1 + let t183 = circuit_add(in9, in11); // Fp2 add coeff 1/1 + let t184 = circuit_add(in20, in22); // Fp2 add coeff 0/1 + let t185 = circuit_add(in21, in23); // Fp2 add coeff 1/1 + let t186 = circuit_mul(t182, t184); // Fp2 mul start + let t187 = circuit_mul(t183, t185); + let t188 = circuit_sub(t186, t187); // Fp2 mul real part end + let t189 = circuit_mul(t182, t185); + let t190 = circuit_mul(t183, t184); + let t191 = circuit_add(t189, t190); // Fp2 mul imag part end + let t192 = circuit_sub(t188, t172); // Fp2 sub coeff 0/1 + let t193 = circuit_sub(t191, t175); // Fp2 sub coeff 1/1 + let t194 = circuit_sub(t192, t178); // Fp2 sub coeff 0/1 + let t195 = circuit_sub(t193, t181); // Fp2 sub coeff 1/1 + let t196 = circuit_add(t194, t195); + let t197 = circuit_add(t196, t196); + let t198 = circuit_sub(t194, t195); + let t199 = circuit_sub(t197, t194); + let t200 = circuit_sub(t199, t195); + let t201 = circuit_add(t198, t166); // Fp2 add coeff 0/1 + let t202 = circuit_add(t200, t169); // Fp2 add coeff 1/1 + let t203 = circuit_add(in6, in8); // Fp2 add coeff 0/1 + let t204 = circuit_add(in7, in9); // Fp2 add coeff 1/1 + let t205 = circuit_add(in18, in20); // Fp2 add coeff 0/1 + let t206 = circuit_add(in19, in21); // Fp2 add coeff 1/1 + let t207 = circuit_mul(t203, t205); // Fp2 mul start + let t208 = circuit_mul(t204, t206); + let t209 = circuit_sub(t207, t208); // Fp2 mul real part end + let t210 = circuit_mul(t203, t206); + let t211 = circuit_mul(t204, t205); + let t212 = circuit_add(t210, t211); // Fp2 mul imag part end + let t213 = circuit_sub(t209, t166); // Fp2 sub coeff 0/1 + let t214 = circuit_sub(t212, t169); // Fp2 sub coeff 1/1 + let t215 = circuit_sub(t213, t172); // Fp2 sub coeff 0/1 + let t216 = circuit_sub(t214, t175); // Fp2 sub coeff 1/1 + let t217 = circuit_add(t178, t181); + let t218 = circuit_add(t217, t217); + let t219 = circuit_sub(t178, t181); + let t220 = circuit_sub(t218, t178); + let t221 = circuit_sub(t220, t181); + let t222 = circuit_add(t215, t219); // Fp2 add coeff 0/1 + let t223 = circuit_add(t216, t221); // Fp2 add coeff 1/1 + let t224 = circuit_add(in6, in10); // Fp2 add coeff 0/1 + let t225 = circuit_add(in7, in11); // Fp2 add coeff 1/1 + let t226 = circuit_add(in18, in22); // Fp2 add coeff 0/1 + let t227 = circuit_add(in19, in23); // Fp2 add coeff 1/1 + let t228 = circuit_mul(t226, t224); // Fp2 mul start + let t229 = circuit_mul(t227, t225); + let t230 = circuit_sub(t228, t229); // Fp2 mul real part end + let t231 = circuit_mul(t226, t225); + let t232 = circuit_mul(t227, t224); + let t233 = circuit_add(t231, t232); // Fp2 mul imag part end + let t234 = circuit_sub(t230, t166); // Fp2 sub coeff 0/1 + let t235 = circuit_sub(t233, t169); // Fp2 sub coeff 1/1 + let t236 = circuit_sub(t234, t178); // Fp2 sub coeff 0/1 + let t237 = circuit_sub(t235, t181); // Fp2 sub coeff 1/1 + let t238 = circuit_add(t236, t172); // Fp2 add coeff 0/1 + let t239 = circuit_add(t237, t175); // Fp2 add coeff 1/1 + let t240 = circuit_sub(t49, t125); // Fp6 sub coeff 0/5 + let t241 = circuit_sub(t50, t126); // Fp6 sub coeff 1/5 + let t242 = circuit_sub(t70, t146); // Fp6 sub coeff 2/5 + let t243 = circuit_sub(t71, t147); // Fp6 sub coeff 3/5 + let t244 = circuit_sub(t86, t162); // Fp6 sub coeff 4/5 + let t245 = circuit_sub(t87, t163); // Fp6 sub coeff 5/5 + let t246 = circuit_sub(t240, t201); // Fp6 sub coeff 0/5 + let t247 = circuit_sub(t241, t202); // Fp6 sub coeff 1/5 + let t248 = circuit_sub(t242, t222); // Fp6 sub coeff 2/5 + let t249 = circuit_sub(t243, t223); // Fp6 sub coeff 3/5 + let t250 = circuit_sub(t244, t238); // Fp6 sub coeff 4/5 + let t251 = circuit_sub(t245, t239); // Fp6 sub coeff 5/5 + let t252 = circuit_add(t238, t239); + let t253 = circuit_add(t252, t252); + let t254 = circuit_sub(t238, t239); + let t255 = circuit_sub(t253, t238); + let t256 = circuit_sub(t255, t239); + let t257 = circuit_add(t254, t125); // Fp6 add coeff 0/5 + let t258 = circuit_add(t256, t126); // Fp6 add coeff 1/5 + let t259 = circuit_add(t201, t146); // Fp6 add coeff 2/5 + let t260 = circuit_add(t202, t147); // Fp6 add coeff 3/5 + let t261 = circuit_add(t222, t162); // Fp6 add coeff 4/5 + let t262 = circuit_add(t223, t163); // Fp6 add coeff 5/5 + + let modulus = get_BLS12_381_modulus(); // BLS12_381 prime field modulus + + let mut circuit_inputs = ( + t257, t258, t259, t260, t261, t262, t246, t247, t248, t249, t250, t251, + ) + .new_inputs(); + // Prefill constants: + + // Fill inputs: + circuit_inputs = circuit_inputs.next_2(X.c0b0a0); // in0 + circuit_inputs = circuit_inputs.next_2(X.c0b0a1); // in1 + circuit_inputs = circuit_inputs.next_2(X.c0b1a0); // in2 + circuit_inputs = circuit_inputs.next_2(X.c0b1a1); // in3 + circuit_inputs = circuit_inputs.next_2(X.c0b2a0); // in4 + circuit_inputs = circuit_inputs.next_2(X.c0b2a1); // in5 + circuit_inputs = circuit_inputs.next_2(X.c1b0a0); // in6 + circuit_inputs = circuit_inputs.next_2(X.c1b0a1); // in7 + circuit_inputs = circuit_inputs.next_2(X.c1b1a0); // in8 + circuit_inputs = circuit_inputs.next_2(X.c1b1a1); // in9 + circuit_inputs = circuit_inputs.next_2(X.c1b2a0); // in10 + circuit_inputs = circuit_inputs.next_2(X.c1b2a1); // in11 + circuit_inputs = circuit_inputs.next_2(Y.c0b0a0); // in12 + circuit_inputs = circuit_inputs.next_2(Y.c0b0a1); // in13 + circuit_inputs = circuit_inputs.next_2(Y.c0b1a0); // in14 + circuit_inputs = circuit_inputs.next_2(Y.c0b1a1); // in15 + circuit_inputs = circuit_inputs.next_2(Y.c0b2a0); // in16 + circuit_inputs = circuit_inputs.next_2(Y.c0b2a1); // in17 + circuit_inputs = circuit_inputs.next_2(Y.c1b0a0); // in18 + circuit_inputs = circuit_inputs.next_2(Y.c1b0a1); // in19 + circuit_inputs = circuit_inputs.next_2(Y.c1b1a0); // in20 + circuit_inputs = circuit_inputs.next_2(Y.c1b1a1); // in21 + circuit_inputs = circuit_inputs.next_2(Y.c1b2a0); // in22 + circuit_inputs = circuit_inputs.next_2(Y.c1b2a1); // in23 + + let outputs = circuit_inputs.done_2().eval(modulus).unwrap(); + let res: E12T = E12T { + c0b0a0: outputs.get_output(t257), + c0b0a1: outputs.get_output(t258), + c0b1a0: outputs.get_output(t259), + c0b1a1: outputs.get_output(t260), + c0b2a0: outputs.get_output(t261), + c0b2a1: outputs.get_output(t262), + c1b0a0: outputs.get_output(t246), + c1b0a1: outputs.get_output(t247), + c1b1a0: outputs.get_output(t248), + c1b1a1: outputs.get_output(t249), + c1b2a0: outputs.get_output(t250), + c1b2a1: outputs.get_output(t251), + }; + return (res,); +} +#[inline(always)] +pub fn run_BLS12_381_TOWER_MILLER_BIT0_1P_circuit( + yInv_0: u384, xNegOverY_0: u384, Q_0: G2Point, M_i: E12T, +) -> (G2Point, E12T) { + // CONSTANT stack + let in0 = CE::> {}; // 0x0 + let in1 = CE::> {}; // 0x3 + let in2 = CE::> {}; // 0x6 + let in3 = CE::> {}; // 0x1 + + // INPUT stack + let (in4, in5, in6) = (CE::> {}, CE::> {}, CE::> {}); + let (in7, in8, in9) = (CE::> {}, CE::> {}, CE::> {}); + let (in10, in11, in12) = (CE::> {}, CE::> {}, CE::> {}); + let (in13, in14, in15) = (CE::> {}, CE::> {}, CE::> {}); + let (in16, in17, in18) = (CE::> {}, CE::> {}, CE::> {}); + let (in19, in20, in21) = (CE::> {}, CE::> {}, CE::> {}); + let t0 = circuit_sub(in10, in16); // Fp6 sub coeff 0/5 + let t1 = circuit_sub(in11, in17); // Fp6 sub coeff 1/5 + let t2 = circuit_sub(in12, in18); // Fp6 sub coeff 2/5 + let t3 = circuit_sub(in13, in19); // Fp6 sub coeff 3/5 + let t4 = circuit_sub(in14, in20); // Fp6 sub coeff 4/5 + let t5 = circuit_sub(in15, in21); // Fp6 sub coeff 5/5 + let t6 = circuit_add(in20, in21); + let t7 = circuit_add(t6, t6); + let t8 = circuit_sub(in20, in21); + let t9 = circuit_sub(t7, in20); + let t10 = circuit_sub(t9, in21); + let t11 = circuit_sub(in0, t8); // Fp6 neg coeff 0/5 + let t12 = circuit_sub(in0, t10); // Fp6 neg coeff 1/5 + let t13 = circuit_sub(in0, in16); // Fp6 neg coeff 2/5 + let t14 = circuit_sub(in0, in17); // Fp6 neg coeff 3/5 + let t15 = circuit_sub(in0, in18); // Fp6 neg coeff 4/5 + let t16 = circuit_sub(in0, in19); // Fp6 neg coeff 5/5 + let t17 = circuit_add(in10, t11); // Fp6 add coeff 0/5 + let t18 = circuit_add(in11, t12); // Fp6 add coeff 1/5 + let t19 = circuit_add(in12, t13); // Fp6 add coeff 2/5 + let t20 = circuit_add(in13, t14); // Fp6 add coeff 3/5 + let t21 = circuit_add(in14, t15); // Fp6 add coeff 4/5 + let t22 = circuit_add(in15, t16); // Fp6 add coeff 5/5 + let t23 = circuit_mul(in10, in16); // Fp2 mul start + let t24 = circuit_mul(in11, in17); + let t25 = circuit_sub(t23, t24); // Fp2 mul real part end + let t26 = circuit_mul(in10, in17); + let t27 = circuit_mul(in11, in16); + let t28 = circuit_add(t26, t27); // Fp2 mul imag part end + let t29 = circuit_mul(in12, in18); // Fp2 mul start + let t30 = circuit_mul(in13, in19); + let t31 = circuit_sub(t29, t30); // Fp2 mul real part end + let t32 = circuit_mul(in12, in19); + let t33 = circuit_mul(in13, in18); + let t34 = circuit_add(t32, t33); // Fp2 mul imag part end + let t35 = circuit_mul(in14, in20); // Fp2 mul start + let t36 = circuit_mul(in15, in21); + let t37 = circuit_sub(t35, t36); // Fp2 mul real part end + let t38 = circuit_mul(in14, in21); + let t39 = circuit_mul(in15, in20); + let t40 = circuit_add(t38, t39); // Fp2 mul imag part end + let t41 = circuit_add(in12, in14); // Fp2 add coeff 0/1 + let t42 = circuit_add(in13, in15); // Fp2 add coeff 1/1 + let t43 = circuit_add(in18, in20); // Fp2 add coeff 0/1 + let t44 = circuit_add(in19, in21); // Fp2 add coeff 1/1 + let t45 = circuit_mul(t41, t43); // Fp2 mul start + let t46 = circuit_mul(t42, t44); + let t47 = circuit_sub(t45, t46); // Fp2 mul real part end + let t48 = circuit_mul(t41, t44); + let t49 = circuit_mul(t42, t43); + let t50 = circuit_add(t48, t49); // Fp2 mul imag part end + let t51 = circuit_sub(t47, t31); // Fp2 sub coeff 0/1 + let t52 = circuit_sub(t50, t34); // Fp2 sub coeff 1/1 + let t53 = circuit_sub(t51, t37); // Fp2 sub coeff 0/1 + let t54 = circuit_sub(t52, t40); // Fp2 sub coeff 1/1 + let t55 = circuit_add(t53, t54); + let t56 = circuit_add(t55, t55); + let t57 = circuit_sub(t53, t54); + let t58 = circuit_sub(t56, t53); + let t59 = circuit_sub(t58, t54); + let t60 = circuit_add(t57, t25); // Fp2 add coeff 0/1 + let t61 = circuit_add(t59, t28); // Fp2 add coeff 1/1 + let t62 = circuit_add(in10, in12); // Fp2 add coeff 0/1 + let t63 = circuit_add(in11, in13); // Fp2 add coeff 1/1 + let t64 = circuit_add(in16, in18); // Fp2 add coeff 0/1 + let t65 = circuit_add(in17, in19); // Fp2 add coeff 1/1 + let t66 = circuit_mul(t62, t64); // Fp2 mul start + let t67 = circuit_mul(t63, t65); + let t68 = circuit_sub(t66, t67); // Fp2 mul real part end + let t69 = circuit_mul(t62, t65); + let t70 = circuit_mul(t63, t64); + let t71 = circuit_add(t69, t70); // Fp2 mul imag part end + let t72 = circuit_sub(t68, t25); // Fp2 sub coeff 0/1 + let t73 = circuit_sub(t71, t28); // Fp2 sub coeff 1/1 + let t74 = circuit_sub(t72, t31); // Fp2 sub coeff 0/1 + let t75 = circuit_sub(t73, t34); // Fp2 sub coeff 1/1 + let t76 = circuit_add(t37, t40); + let t77 = circuit_add(t76, t76); + let t78 = circuit_sub(t37, t40); + let t79 = circuit_sub(t77, t37); + let t80 = circuit_sub(t79, t40); + let t81 = circuit_add(t74, t78); // Fp2 add coeff 0/1 + let t82 = circuit_add(t75, t80); // Fp2 add coeff 1/1 + let t83 = circuit_add(in10, in14); // Fp2 add coeff 0/1 + let t84 = circuit_add(in11, in15); // Fp2 add coeff 1/1 + let t85 = circuit_add(in16, in20); // Fp2 add coeff 0/1 + let t86 = circuit_add(in17, in21); // Fp2 add coeff 1/1 + let t87 = circuit_mul(t85, t83); // Fp2 mul start + let t88 = circuit_mul(t86, t84); + let t89 = circuit_sub(t87, t88); // Fp2 mul real part end + let t90 = circuit_mul(t85, t84); + let t91 = circuit_mul(t86, t83); + let t92 = circuit_add(t90, t91); // Fp2 mul imag part end + let t93 = circuit_sub(t89, t25); // Fp2 sub coeff 0/1 + let t94 = circuit_sub(t92, t28); // Fp2 sub coeff 1/1 + let t95 = circuit_sub(t93, t37); // Fp2 sub coeff 0/1 + let t96 = circuit_sub(t94, t40); // Fp2 sub coeff 1/1 + let t97 = circuit_add(t95, t31); // Fp2 add coeff 0/1 + let t98 = circuit_add(t96, t34); // Fp2 add coeff 1/1 + let t99 = circuit_mul(t0, t17); // Fp2 mul start + let t100 = circuit_mul(t1, t18); + let t101 = circuit_sub(t99, t100); // Fp2 mul real part end + let t102 = circuit_mul(t0, t18); + let t103 = circuit_mul(t1, t17); + let t104 = circuit_add(t102, t103); // Fp2 mul imag part end + let t105 = circuit_mul(t2, t19); // Fp2 mul start + let t106 = circuit_mul(t3, t20); + let t107 = circuit_sub(t105, t106); // Fp2 mul real part end + let t108 = circuit_mul(t2, t20); + let t109 = circuit_mul(t3, t19); + let t110 = circuit_add(t108, t109); // Fp2 mul imag part end + let t111 = circuit_mul(t4, t21); // Fp2 mul start + let t112 = circuit_mul(t5, t22); + let t113 = circuit_sub(t111, t112); // Fp2 mul real part end + let t114 = circuit_mul(t4, t22); + let t115 = circuit_mul(t5, t21); + let t116 = circuit_add(t114, t115); // Fp2 mul imag part end + let t117 = circuit_add(t2, t4); // Fp2 add coeff 0/1 + let t118 = circuit_add(t3, t5); // Fp2 add coeff 1/1 + let t119 = circuit_add(t19, t21); // Fp2 add coeff 0/1 + let t120 = circuit_add(t20, t22); // Fp2 add coeff 1/1 + let t121 = circuit_mul(t117, t119); // Fp2 mul start + let t122 = circuit_mul(t118, t120); + let t123 = circuit_sub(t121, t122); // Fp2 mul real part end + let t124 = circuit_mul(t117, t120); + let t125 = circuit_mul(t118, t119); + let t126 = circuit_add(t124, t125); // Fp2 mul imag part end + let t127 = circuit_sub(t123, t107); // Fp2 sub coeff 0/1 + let t128 = circuit_sub(t126, t110); // Fp2 sub coeff 1/1 + let t129 = circuit_sub(t127, t113); // Fp2 sub coeff 0/1 + let t130 = circuit_sub(t128, t116); // Fp2 sub coeff 1/1 + let t131 = circuit_add(t129, t130); + let t132 = circuit_add(t131, t131); + let t133 = circuit_sub(t129, t130); + let t134 = circuit_sub(t132, t129); + let t135 = circuit_sub(t134, t130); + let t136 = circuit_add(t133, t101); // Fp2 add coeff 0/1 + let t137 = circuit_add(t135, t104); // Fp2 add coeff 1/1 + let t138 = circuit_add(t0, t2); // Fp2 add coeff 0/1 + let t139 = circuit_add(t1, t3); // Fp2 add coeff 1/1 + let t140 = circuit_add(t17, t19); // Fp2 add coeff 0/1 + let t141 = circuit_add(t18, t20); // Fp2 add coeff 1/1 + let t142 = circuit_mul(t138, t140); // Fp2 mul start + let t143 = circuit_mul(t139, t141); + let t144 = circuit_sub(t142, t143); // Fp2 mul real part end + let t145 = circuit_mul(t138, t141); + let t146 = circuit_mul(t139, t140); + let t147 = circuit_add(t145, t146); // Fp2 mul imag part end + let t148 = circuit_sub(t144, t101); // Fp2 sub coeff 0/1 + let t149 = circuit_sub(t147, t104); // Fp2 sub coeff 1/1 + let t150 = circuit_sub(t148, t107); // Fp2 sub coeff 0/1 + let t151 = circuit_sub(t149, t110); // Fp2 sub coeff 1/1 + let t152 = circuit_add(t113, t116); + let t153 = circuit_add(t152, t152); + let t154 = circuit_sub(t113, t116); + let t155 = circuit_sub(t153, t113); + let t156 = circuit_sub(t155, t116); + let t157 = circuit_add(t150, t154); // Fp2 add coeff 0/1 + let t158 = circuit_add(t151, t156); // Fp2 add coeff 1/1 + let t159 = circuit_add(t0, t4); // Fp2 add coeff 0/1 + let t160 = circuit_add(t1, t5); // Fp2 add coeff 1/1 + let t161 = circuit_add(t17, t21); // Fp2 add coeff 0/1 + let t162 = circuit_add(t18, t22); // Fp2 add coeff 1/1 + let t163 = circuit_mul(t161, t159); // Fp2 mul start + let t164 = circuit_mul(t162, t160); + let t165 = circuit_sub(t163, t164); // Fp2 mul real part end + let t166 = circuit_mul(t161, t160); + let t167 = circuit_mul(t162, t159); + let t168 = circuit_add(t166, t167); // Fp2 mul imag part end + let t169 = circuit_sub(t165, t101); // Fp2 sub coeff 0/1 + let t170 = circuit_sub(t168, t104); // Fp2 sub coeff 1/1 + let t171 = circuit_sub(t169, t113); // Fp2 sub coeff 0/1 + let t172 = circuit_sub(t170, t116); // Fp2 sub coeff 1/1 + let t173 = circuit_add(t171, t107); // Fp2 add coeff 0/1 + let t174 = circuit_add(t172, t110); // Fp2 add coeff 1/1 + let t175 = circuit_add(t136, t60); // Fp6 add coeff 0/5 + let t176 = circuit_add(t137, t61); // Fp6 add coeff 1/5 + let t177 = circuit_add(t157, t81); // Fp6 add coeff 2/5 + let t178 = circuit_add(t158, t82); // Fp6 add coeff 3/5 + let t179 = circuit_add(t173, t97); // Fp6 add coeff 4/5 + let t180 = circuit_add(t174, t98); // Fp6 add coeff 5/5 + let t181 = circuit_add(t60, t60); // Fp6 add coeff 0/5 + let t182 = circuit_add(t61, t61); // Fp6 add coeff 1/5 + let t183 = circuit_add(t81, t81); // Fp6 add coeff 2/5 + let t184 = circuit_add(t82, t82); // Fp6 add coeff 3/5 + let t185 = circuit_add(t97, t97); // Fp6 add coeff 4/5 + let t186 = circuit_add(t98, t98); // Fp6 add coeff 5/5 + let t187 = circuit_add(t97, t98); + let t188 = circuit_add(t187, t187); + let t189 = circuit_sub(t97, t98); + let t190 = circuit_sub(t188, t97); + let t191 = circuit_sub(t190, t98); + let t192 = circuit_add(t175, t189); // Fp6 add coeff 0/5 + let t193 = circuit_add(t176, t191); // Fp6 add coeff 1/5 + let t194 = circuit_add(t177, t60); // Fp6 add coeff 2/5 + let t195 = circuit_add(t178, t61); // Fp6 add coeff 3/5 + let t196 = circuit_add(t179, t81); // Fp6 add coeff 4/5 + let t197 = circuit_add(t180, t82); // Fp6 add coeff 5/5 + let t198 = circuit_add(in6, in7); // Doubling slope numerator start + let t199 = circuit_sub(in6, in7); + let t200 = circuit_mul(t198, t199); + let t201 = circuit_mul(in6, in7); + let t202 = circuit_mul(t200, in1); + let t203 = circuit_mul(t201, in2); // Doubling slope numerator end + let t204 = circuit_add(in8, in8); // Fp2 add coeff 0/1 + let t205 = circuit_add(in9, in9); // Fp2 add coeff 1/1 + let t206 = circuit_mul(t204, t204); // Fp2 Inv start + let t207 = circuit_mul(t205, t205); + let t208 = circuit_add(t206, t207); + let t209 = circuit_inverse(t208); + let t210 = circuit_mul(t204, t209); // Fp2 Inv real part end + let t211 = circuit_mul(t205, t209); + let t212 = circuit_sub(in0, t211); // Fp2 Inv imag part end + let t213 = circuit_mul(t202, t210); // Fp2 mul start + let t214 = circuit_mul(t203, t212); + let t215 = circuit_sub(t213, t214); // Fp2 mul real part end + let t216 = circuit_mul(t202, t212); + let t217 = circuit_mul(t203, t210); + let t218 = circuit_add(t216, t217); // Fp2 mul imag part end + let t219 = circuit_add(t215, t218); + let t220 = circuit_sub(t215, t218); + let t221 = circuit_mul(t219, t220); + let t222 = circuit_mul(t215, t218); + let t223 = circuit_add(t222, t222); + let t224 = circuit_add(in6, in6); // Fp2 add coeff 0/1 + let t225 = circuit_add(in7, in7); // Fp2 add coeff 1/1 + let t226 = circuit_sub(t221, t224); // Fp2 sub coeff 0/1 + let t227 = circuit_sub(t223, t225); // Fp2 sub coeff 1/1 + let t228 = circuit_sub(in6, t226); // Fp2 sub coeff 0/1 + let t229 = circuit_sub(in7, t227); // Fp2 sub coeff 1/1 + let t230 = circuit_mul(t215, t228); // Fp2 mul start + let t231 = circuit_mul(t218, t229); + let t232 = circuit_sub(t230, t231); // Fp2 mul real part end + let t233 = circuit_mul(t215, t229); + let t234 = circuit_mul(t218, t228); + let t235 = circuit_add(t233, t234); // Fp2 mul imag part end + let t236 = circuit_sub(t232, in8); // Fp2 sub coeff 0/1 + let t237 = circuit_sub(t235, in9); // Fp2 sub coeff 1/1 + let t238 = circuit_mul(t215, in6); // Fp2 mul start + let t239 = circuit_mul(t218, in7); + let t240 = circuit_sub(t238, t239); // Fp2 mul real part end + let t241 = circuit_mul(t215, in7); + let t242 = circuit_mul(t218, in6); + let t243 = circuit_add(t241, t242); // Fp2 mul imag part end + let t244 = circuit_sub(t240, in8); // Fp2 sub coeff 0/1 + let t245 = circuit_sub(t243, in9); // Fp2 sub coeff 1/1 + let t246 = circuit_mul(t244, in4); + let t247 = circuit_mul(t245, in4); + let t248 = circuit_mul(t215, in5); + let t249 = circuit_mul(t218, in5); + let t250 = circuit_mul(t192, t246); // Fp2 mul start + let t251 = circuit_mul(t193, t247); + let t252 = circuit_sub(t250, t251); // Fp2 mul real part end + let t253 = circuit_mul(t192, t247); + let t254 = circuit_mul(t193, t246); + let t255 = circuit_add(t253, t254); // Fp2 mul imag part end + let t256 = circuit_mul(t194, t248); // Fp2 mul start + let t257 = circuit_mul(t195, t249); + let t258 = circuit_sub(t256, t257); // Fp2 mul real part end + let t259 = circuit_mul(t194, t249); + let t260 = circuit_mul(t195, t248); + let t261 = circuit_add(t259, t260); // Fp2 mul imag part end + let t262 = circuit_add(t194, t196); // Fp2 add coeff 0/1 + let t263 = circuit_add(t195, t197); // Fp2 add coeff 1/1 + let t264 = circuit_mul(t248, t262); // Fp2 mul start + let t265 = circuit_mul(t249, t263); + let t266 = circuit_sub(t264, t265); // Fp2 mul real part end + let t267 = circuit_mul(t248, t263); + let t268 = circuit_mul(t249, t262); + let t269 = circuit_add(t267, t268); // Fp2 mul imag part end + let t270 = circuit_sub(t266, t258); // Fp2 sub coeff 0/1 + let t271 = circuit_sub(t269, t261); // Fp2 sub coeff 1/1 + let t272 = circuit_add(t270, t271); + let t273 = circuit_add(t272, t272); + let t274 = circuit_sub(t270, t271); + let t275 = circuit_sub(t273, t270); + let t276 = circuit_sub(t275, t271); + let t277 = circuit_add(t274, t252); // Fp2 add coeff 0/1 + let t278 = circuit_add(t276, t255); // Fp2 add coeff 1/1 + let t279 = circuit_add(t192, t196); // Fp2 add coeff 0/1 + let t280 = circuit_add(t193, t197); // Fp2 add coeff 1/1 + let t281 = circuit_mul(t246, t279); // Fp2 mul start + let t282 = circuit_mul(t247, t280); + let t283 = circuit_sub(t281, t282); // Fp2 mul real part end + let t284 = circuit_mul(t246, t280); + let t285 = circuit_mul(t247, t279); + let t286 = circuit_add(t284, t285); // Fp2 mul imag part end + let t287 = circuit_sub(t283, t252); // Fp2 sub coeff 0/1 + let t288 = circuit_sub(t286, t255); // Fp2 sub coeff 1/1 + let t289 = circuit_add(t287, t258); // Fp2 add coeff 0/1 + let t290 = circuit_add(t288, t261); // Fp2 add coeff 1/1 + let t291 = circuit_add(t246, t248); // Fp2 add coeff 0/1 + let t292 = circuit_add(t247, t249); // Fp2 add coeff 1/1 + let t293 = circuit_add(t192, t194); // Fp2 add coeff 0/1 + let t294 = circuit_add(t193, t195); // Fp2 add coeff 1/1 + let t295 = circuit_mul(t291, t293); // Fp2 mul start + let t296 = circuit_mul(t292, t294); + let t297 = circuit_sub(t295, t296); // Fp2 mul real part end + let t298 = circuit_mul(t291, t294); + let t299 = circuit_mul(t292, t293); + let t300 = circuit_add(t298, t299); // Fp2 mul imag part end + let t301 = circuit_sub(t297, t252); // Fp2 sub coeff 0/1 + let t302 = circuit_sub(t300, t255); // Fp2 sub coeff 1/1 + let t303 = circuit_sub(t301, t258); // Fp2 sub coeff 0/1 + let t304 = circuit_sub(t302, t261); // Fp2 sub coeff 1/1 + let t305 = circuit_add(t185, t186); + let t306 = circuit_add(t305, t305); + let t307 = circuit_sub(t185, t186); + let t308 = circuit_sub(t306, t185); + let t309 = circuit_sub(t308, t186); + let t310 = circuit_add(in3, t248); + let t311 = circuit_add(t181, t192); // Fp6 add coeff 0/5 + let t312 = circuit_add(t182, t193); // Fp6 add coeff 1/5 + let t313 = circuit_add(t183, t194); // Fp6 add coeff 2/5 + let t314 = circuit_add(t184, t195); // Fp6 add coeff 3/5 + let t315 = circuit_add(t185, t196); // Fp6 add coeff 4/5 + let t316 = circuit_add(t186, t197); // Fp6 add coeff 5/5 + let t317 = circuit_mul(t311, t246); // Fp2 mul start + let t318 = circuit_mul(t312, t247); + let t319 = circuit_sub(t317, t318); // Fp2 mul real part end + let t320 = circuit_mul(t311, t247); + let t321 = circuit_mul(t312, t246); + let t322 = circuit_add(t320, t321); // Fp2 mul imag part end + let t323 = circuit_mul(t313, t310); // Fp2 mul start + let t324 = circuit_mul(t314, t249); + let t325 = circuit_sub(t323, t324); // Fp2 mul real part end + let t326 = circuit_mul(t313, t249); + let t327 = circuit_mul(t314, t310); + let t328 = circuit_add(t326, t327); // Fp2 mul imag part end + let t329 = circuit_add(t313, t315); // Fp2 add coeff 0/1 + let t330 = circuit_add(t314, t316); // Fp2 add coeff 1/1 + let t331 = circuit_mul(t310, t329); // Fp2 mul start + let t332 = circuit_mul(t249, t330); + let t333 = circuit_sub(t331, t332); // Fp2 mul real part end + let t334 = circuit_mul(t310, t330); + let t335 = circuit_mul(t249, t329); + let t336 = circuit_add(t334, t335); // Fp2 mul imag part end + let t337 = circuit_sub(t333, t325); // Fp2 sub coeff 0/1 + let t338 = circuit_sub(t336, t328); // Fp2 sub coeff 1/1 + let t339 = circuit_add(t337, t338); + let t340 = circuit_add(t339, t339); + let t341 = circuit_sub(t337, t338); + let t342 = circuit_sub(t340, t337); + let t343 = circuit_sub(t342, t338); + let t344 = circuit_add(t341, t319); // Fp2 add coeff 0/1 + let t345 = circuit_add(t343, t322); // Fp2 add coeff 1/1 + let t346 = circuit_add(t311, t315); // Fp2 add coeff 0/1 + let t347 = circuit_add(t312, t316); // Fp2 add coeff 1/1 + let t348 = circuit_mul(t246, t346); // Fp2 mul start + let t349 = circuit_mul(t247, t347); + let t350 = circuit_sub(t348, t349); // Fp2 mul real part end + let t351 = circuit_mul(t246, t347); + let t352 = circuit_mul(t247, t346); + let t353 = circuit_add(t351, t352); // Fp2 mul imag part end + let t354 = circuit_sub(t350, t319); // Fp2 sub coeff 0/1 + let t355 = circuit_sub(t353, t322); // Fp2 sub coeff 1/1 + let t356 = circuit_add(t354, t325); // Fp2 add coeff 0/1 + let t357 = circuit_add(t355, t328); // Fp2 add coeff 1/1 + let t358 = circuit_add(t246, t310); // Fp2 add coeff 0/1 + let t359 = circuit_add(t247, t249); // Fp2 add coeff 1/1 + let t360 = circuit_add(t311, t313); // Fp2 add coeff 0/1 + let t361 = circuit_add(t312, t314); // Fp2 add coeff 1/1 + let t362 = circuit_mul(t358, t360); // Fp2 mul start + let t363 = circuit_mul(t359, t361); + let t364 = circuit_sub(t362, t363); // Fp2 mul real part end + let t365 = circuit_mul(t358, t361); + let t366 = circuit_mul(t359, t360); + let t367 = circuit_add(t365, t366); // Fp2 mul imag part end + let t368 = circuit_sub(t364, t319); // Fp2 sub coeff 0/1 + let t369 = circuit_sub(t367, t322); // Fp2 sub coeff 1/1 + let t370 = circuit_sub(t368, t325); // Fp2 sub coeff 0/1 + let t371 = circuit_sub(t369, t328); // Fp2 sub coeff 1/1 + let t372 = circuit_sub(t344, t277); // Fp6 sub coeff 0/5 + let t373 = circuit_sub(t345, t278); // Fp6 sub coeff 1/5 + let t374 = circuit_sub(t370, t303); // Fp6 sub coeff 2/5 + let t375 = circuit_sub(t371, t304); // Fp6 sub coeff 3/5 + let t376 = circuit_sub(t356, t289); // Fp6 sub coeff 4/5 + let t377 = circuit_sub(t357, t290); // Fp6 sub coeff 5/5 + let t378 = circuit_sub(t372, t307); // Fp6 sub coeff 0/5 + let t379 = circuit_sub(t373, t309); // Fp6 sub coeff 1/5 + let t380 = circuit_sub(t374, t181); // Fp6 sub coeff 2/5 + let t381 = circuit_sub(t375, t182); // Fp6 sub coeff 3/5 + let t382 = circuit_sub(t376, t183); // Fp6 sub coeff 4/5 + let t383 = circuit_sub(t377, t184); // Fp6 sub coeff 5/5 + let t384 = circuit_add(t183, t184); + let t385 = circuit_add(t384, t384); + let t386 = circuit_sub(t183, t184); + let t387 = circuit_sub(t385, t183); + let t388 = circuit_sub(t387, t184); + let t389 = circuit_add(t386, t277); // Fp6 add coeff 0/5 + let t390 = circuit_add(t388, t278); // Fp6 add coeff 1/5 + let t391 = circuit_add(t307, t303); // Fp6 add coeff 2/5 + let t392 = circuit_add(t309, t304); // Fp6 add coeff 3/5 + let t393 = circuit_add(t181, t289); // Fp6 add coeff 4/5 + let t394 = circuit_add(t182, t290); // Fp6 add coeff 5/5 + let t395 = circuit_add(t226, t227); + let t396 = circuit_add(t395, t236); + let t397 = circuit_add(t396, t237); + + let modulus = get_BLS12_381_modulus(); // BLS12_381 prime field modulus + + let mut circuit_inputs = ( + t397, t389, t390, t391, t392, t393, t394, t378, t379, t380, t381, t382, t383, + ) + .new_inputs(); + // Prefill constants: + circuit_inputs = circuit_inputs.next_2([0x0, 0x0, 0x0, 0x0]); // in0 + circuit_inputs = circuit_inputs.next_2([0x3, 0x0, 0x0, 0x0]); // in1 + circuit_inputs = circuit_inputs.next_2([0x6, 0x0, 0x0, 0x0]); // in2 + circuit_inputs = circuit_inputs.next_2([0x1, 0x0, 0x0, 0x0]); // in3 + // Fill inputs: + circuit_inputs = circuit_inputs.next_2(yInv_0); // in4 + circuit_inputs = circuit_inputs.next_2(xNegOverY_0); // in5 + circuit_inputs = circuit_inputs.next_2(Q_0.x0); // in6 + circuit_inputs = circuit_inputs.next_2(Q_0.x1); // in7 + circuit_inputs = circuit_inputs.next_2(Q_0.y0); // in8 + circuit_inputs = circuit_inputs.next_2(Q_0.y1); // in9 + circuit_inputs = circuit_inputs.next_2(M_i.c0b0a0); // in10 + circuit_inputs = circuit_inputs.next_2(M_i.c0b0a1); // in11 + circuit_inputs = circuit_inputs.next_2(M_i.c0b1a0); // in12 + circuit_inputs = circuit_inputs.next_2(M_i.c0b1a1); // in13 + circuit_inputs = circuit_inputs.next_2(M_i.c0b2a0); // in14 + circuit_inputs = circuit_inputs.next_2(M_i.c0b2a1); // in15 + circuit_inputs = circuit_inputs.next_2(M_i.c1b0a0); // in16 + circuit_inputs = circuit_inputs.next_2(M_i.c1b0a1); // in17 + circuit_inputs = circuit_inputs.next_2(M_i.c1b1a0); // in18 + circuit_inputs = circuit_inputs.next_2(M_i.c1b1a1); // in19 + circuit_inputs = circuit_inputs.next_2(M_i.c1b2a0); // in20 + circuit_inputs = circuit_inputs.next_2(M_i.c1b2a1); // in21 + + let outputs = circuit_inputs.done_2().eval(modulus).unwrap(); + let Q0: G2Point = G2Point { + x0: outputs.get_output(t226), + x1: outputs.get_output(t227), + y0: outputs.get_output(t236), + y1: outputs.get_output(t237), + }; + let Mi_plus_one: E12T = E12T { + c0b0a0: outputs.get_output(t389), + c0b0a1: outputs.get_output(t390), + c0b1a0: outputs.get_output(t391), + c0b1a1: outputs.get_output(t392), + c0b2a0: outputs.get_output(t393), + c0b2a1: outputs.get_output(t394), + c1b0a0: outputs.get_output(t378), + c1b0a1: outputs.get_output(t379), + c1b1a0: outputs.get_output(t380), + c1b1a1: outputs.get_output(t381), + c1b2a0: outputs.get_output(t382), + c1b2a1: outputs.get_output(t383), + }; + return (Q0, Mi_plus_one); +} +#[inline(always)] +pub fn run_BLS12_381_TOWER_MILLER_BIT1_1P_circuit( + yInv_0: u384, xNegOverY_0: u384, Q_0: G2Point, Q_or_Q_neg_0: G2Point, M_i: E12T, +) -> (G2Point, E12T) { + // CONSTANT stack + let in0 = CE::> {}; // 0x0 + let in1 = CE::> {}; // 0x1 + + // INPUT stack + let (in2, in3, in4) = (CE::> {}, CE::> {}, CE::> {}); + let (in5, in6, in7) = (CE::> {}, CE::> {}, CE::> {}); + let (in8, in9, in10) = (CE::> {}, CE::> {}, CE::> {}); + let (in11, in12, in13) = (CE::> {}, CE::> {}, CE::> {}); + let (in14, in15, in16) = (CE::> {}, CE::> {}, CE::> {}); + let (in17, in18, in19) = (CE::> {}, CE::> {}, CE::> {}); + let (in20, in21, in22) = (CE::> {}, CE::> {}, CE::> {}); + let in23 = CE::> {}; + let t0 = circuit_sub(in12, in18); // Fp6 sub coeff 0/5 + let t1 = circuit_sub(in13, in19); // Fp6 sub coeff 1/5 + let t2 = circuit_sub(in14, in20); // Fp6 sub coeff 2/5 + let t3 = circuit_sub(in15, in21); // Fp6 sub coeff 3/5 + let t4 = circuit_sub(in16, in22); // Fp6 sub coeff 4/5 + let t5 = circuit_sub(in17, in23); // Fp6 sub coeff 5/5 + let t6 = circuit_add(in22, in23); + let t7 = circuit_add(t6, t6); + let t8 = circuit_sub(in22, in23); + let t9 = circuit_sub(t7, in22); + let t10 = circuit_sub(t9, in23); + let t11 = circuit_sub(in0, t8); // Fp6 neg coeff 0/5 + let t12 = circuit_sub(in0, t10); // Fp6 neg coeff 1/5 + let t13 = circuit_sub(in0, in18); // Fp6 neg coeff 2/5 + let t14 = circuit_sub(in0, in19); // Fp6 neg coeff 3/5 + let t15 = circuit_sub(in0, in20); // Fp6 neg coeff 4/5 + let t16 = circuit_sub(in0, in21); // Fp6 neg coeff 5/5 + let t17 = circuit_add(in12, t11); // Fp6 add coeff 0/5 + let t18 = circuit_add(in13, t12); // Fp6 add coeff 1/5 + let t19 = circuit_add(in14, t13); // Fp6 add coeff 2/5 + let t20 = circuit_add(in15, t14); // Fp6 add coeff 3/5 + let t21 = circuit_add(in16, t15); // Fp6 add coeff 4/5 + let t22 = circuit_add(in17, t16); // Fp6 add coeff 5/5 + let t23 = circuit_mul(in12, in18); // Fp2 mul start + let t24 = circuit_mul(in13, in19); + let t25 = circuit_sub(t23, t24); // Fp2 mul real part end + let t26 = circuit_mul(in12, in19); + let t27 = circuit_mul(in13, in18); + let t28 = circuit_add(t26, t27); // Fp2 mul imag part end + let t29 = circuit_mul(in14, in20); // Fp2 mul start + let t30 = circuit_mul(in15, in21); + let t31 = circuit_sub(t29, t30); // Fp2 mul real part end + let t32 = circuit_mul(in14, in21); + let t33 = circuit_mul(in15, in20); + let t34 = circuit_add(t32, t33); // Fp2 mul imag part end + let t35 = circuit_mul(in16, in22); // Fp2 mul start + let t36 = circuit_mul(in17, in23); + let t37 = circuit_sub(t35, t36); // Fp2 mul real part end + let t38 = circuit_mul(in16, in23); + let t39 = circuit_mul(in17, in22); + let t40 = circuit_add(t38, t39); // Fp2 mul imag part end + let t41 = circuit_add(in14, in16); // Fp2 add coeff 0/1 + let t42 = circuit_add(in15, in17); // Fp2 add coeff 1/1 + let t43 = circuit_add(in20, in22); // Fp2 add coeff 0/1 + let t44 = circuit_add(in21, in23); // Fp2 add coeff 1/1 + let t45 = circuit_mul(t41, t43); // Fp2 mul start + let t46 = circuit_mul(t42, t44); + let t47 = circuit_sub(t45, t46); // Fp2 mul real part end + let t48 = circuit_mul(t41, t44); + let t49 = circuit_mul(t42, t43); + let t50 = circuit_add(t48, t49); // Fp2 mul imag part end + let t51 = circuit_sub(t47, t31); // Fp2 sub coeff 0/1 + let t52 = circuit_sub(t50, t34); // Fp2 sub coeff 1/1 + let t53 = circuit_sub(t51, t37); // Fp2 sub coeff 0/1 + let t54 = circuit_sub(t52, t40); // Fp2 sub coeff 1/1 + let t55 = circuit_add(t53, t54); + let t56 = circuit_add(t55, t55); + let t57 = circuit_sub(t53, t54); + let t58 = circuit_sub(t56, t53); + let t59 = circuit_sub(t58, t54); + let t60 = circuit_add(t57, t25); // Fp2 add coeff 0/1 + let t61 = circuit_add(t59, t28); // Fp2 add coeff 1/1 + let t62 = circuit_add(in12, in14); // Fp2 add coeff 0/1 + let t63 = circuit_add(in13, in15); // Fp2 add coeff 1/1 + let t64 = circuit_add(in18, in20); // Fp2 add coeff 0/1 + let t65 = circuit_add(in19, in21); // Fp2 add coeff 1/1 + let t66 = circuit_mul(t62, t64); // Fp2 mul start + let t67 = circuit_mul(t63, t65); + let t68 = circuit_sub(t66, t67); // Fp2 mul real part end + let t69 = circuit_mul(t62, t65); + let t70 = circuit_mul(t63, t64); + let t71 = circuit_add(t69, t70); // Fp2 mul imag part end + let t72 = circuit_sub(t68, t25); // Fp2 sub coeff 0/1 + let t73 = circuit_sub(t71, t28); // Fp2 sub coeff 1/1 + let t74 = circuit_sub(t72, t31); // Fp2 sub coeff 0/1 + let t75 = circuit_sub(t73, t34); // Fp2 sub coeff 1/1 + let t76 = circuit_add(t37, t40); + let t77 = circuit_add(t76, t76); + let t78 = circuit_sub(t37, t40); + let t79 = circuit_sub(t77, t37); + let t80 = circuit_sub(t79, t40); + let t81 = circuit_add(t74, t78); // Fp2 add coeff 0/1 + let t82 = circuit_add(t75, t80); // Fp2 add coeff 1/1 + let t83 = circuit_add(in12, in16); // Fp2 add coeff 0/1 + let t84 = circuit_add(in13, in17); // Fp2 add coeff 1/1 + let t85 = circuit_add(in18, in22); // Fp2 add coeff 0/1 + let t86 = circuit_add(in19, in23); // Fp2 add coeff 1/1 + let t87 = circuit_mul(t85, t83); // Fp2 mul start + let t88 = circuit_mul(t86, t84); + let t89 = circuit_sub(t87, t88); // Fp2 mul real part end + let t90 = circuit_mul(t85, t84); + let t91 = circuit_mul(t86, t83); + let t92 = circuit_add(t90, t91); // Fp2 mul imag part end + let t93 = circuit_sub(t89, t25); // Fp2 sub coeff 0/1 + let t94 = circuit_sub(t92, t28); // Fp2 sub coeff 1/1 + let t95 = circuit_sub(t93, t37); // Fp2 sub coeff 0/1 + let t96 = circuit_sub(t94, t40); // Fp2 sub coeff 1/1 + let t97 = circuit_add(t95, t31); // Fp2 add coeff 0/1 + let t98 = circuit_add(t96, t34); // Fp2 add coeff 1/1 + let t99 = circuit_mul(t0, t17); // Fp2 mul start + let t100 = circuit_mul(t1, t18); + let t101 = circuit_sub(t99, t100); // Fp2 mul real part end + let t102 = circuit_mul(t0, t18); + let t103 = circuit_mul(t1, t17); + let t104 = circuit_add(t102, t103); // Fp2 mul imag part end + let t105 = circuit_mul(t2, t19); // Fp2 mul start + let t106 = circuit_mul(t3, t20); + let t107 = circuit_sub(t105, t106); // Fp2 mul real part end + let t108 = circuit_mul(t2, t20); + let t109 = circuit_mul(t3, t19); + let t110 = circuit_add(t108, t109); // Fp2 mul imag part end + let t111 = circuit_mul(t4, t21); // Fp2 mul start + let t112 = circuit_mul(t5, t22); + let t113 = circuit_sub(t111, t112); // Fp2 mul real part end + let t114 = circuit_mul(t4, t22); + let t115 = circuit_mul(t5, t21); + let t116 = circuit_add(t114, t115); // Fp2 mul imag part end + let t117 = circuit_add(t2, t4); // Fp2 add coeff 0/1 + let t118 = circuit_add(t3, t5); // Fp2 add coeff 1/1 + let t119 = circuit_add(t19, t21); // Fp2 add coeff 0/1 + let t120 = circuit_add(t20, t22); // Fp2 add coeff 1/1 + let t121 = circuit_mul(t117, t119); // Fp2 mul start + let t122 = circuit_mul(t118, t120); + let t123 = circuit_sub(t121, t122); // Fp2 mul real part end + let t124 = circuit_mul(t117, t120); + let t125 = circuit_mul(t118, t119); + let t126 = circuit_add(t124, t125); // Fp2 mul imag part end + let t127 = circuit_sub(t123, t107); // Fp2 sub coeff 0/1 + let t128 = circuit_sub(t126, t110); // Fp2 sub coeff 1/1 + let t129 = circuit_sub(t127, t113); // Fp2 sub coeff 0/1 + let t130 = circuit_sub(t128, t116); // Fp2 sub coeff 1/1 + let t131 = circuit_add(t129, t130); + let t132 = circuit_add(t131, t131); + let t133 = circuit_sub(t129, t130); + let t134 = circuit_sub(t132, t129); + let t135 = circuit_sub(t134, t130); + let t136 = circuit_add(t133, t101); // Fp2 add coeff 0/1 + let t137 = circuit_add(t135, t104); // Fp2 add coeff 1/1 + let t138 = circuit_add(t0, t2); // Fp2 add coeff 0/1 + let t139 = circuit_add(t1, t3); // Fp2 add coeff 1/1 + let t140 = circuit_add(t17, t19); // Fp2 add coeff 0/1 + let t141 = circuit_add(t18, t20); // Fp2 add coeff 1/1 + let t142 = circuit_mul(t138, t140); // Fp2 mul start + let t143 = circuit_mul(t139, t141); + let t144 = circuit_sub(t142, t143); // Fp2 mul real part end + let t145 = circuit_mul(t138, t141); + let t146 = circuit_mul(t139, t140); + let t147 = circuit_add(t145, t146); // Fp2 mul imag part end + let t148 = circuit_sub(t144, t101); // Fp2 sub coeff 0/1 + let t149 = circuit_sub(t147, t104); // Fp2 sub coeff 1/1 + let t150 = circuit_sub(t148, t107); // Fp2 sub coeff 0/1 + let t151 = circuit_sub(t149, t110); // Fp2 sub coeff 1/1 + let t152 = circuit_add(t113, t116); + let t153 = circuit_add(t152, t152); + let t154 = circuit_sub(t113, t116); + let t155 = circuit_sub(t153, t113); + let t156 = circuit_sub(t155, t116); + let t157 = circuit_add(t150, t154); // Fp2 add coeff 0/1 + let t158 = circuit_add(t151, t156); // Fp2 add coeff 1/1 + let t159 = circuit_add(t0, t4); // Fp2 add coeff 0/1 + let t160 = circuit_add(t1, t5); // Fp2 add coeff 1/1 + let t161 = circuit_add(t17, t21); // Fp2 add coeff 0/1 + let t162 = circuit_add(t18, t22); // Fp2 add coeff 1/1 + let t163 = circuit_mul(t161, t159); // Fp2 mul start + let t164 = circuit_mul(t162, t160); + let t165 = circuit_sub(t163, t164); // Fp2 mul real part end + let t166 = circuit_mul(t161, t160); + let t167 = circuit_mul(t162, t159); + let t168 = circuit_add(t166, t167); // Fp2 mul imag part end + let t169 = circuit_sub(t165, t101); // Fp2 sub coeff 0/1 + let t170 = circuit_sub(t168, t104); // Fp2 sub coeff 1/1 + let t171 = circuit_sub(t169, t113); // Fp2 sub coeff 0/1 + let t172 = circuit_sub(t170, t116); // Fp2 sub coeff 1/1 + let t173 = circuit_add(t171, t107); // Fp2 add coeff 0/1 + let t174 = circuit_add(t172, t110); // Fp2 add coeff 1/1 + let t175 = circuit_add(t136, t60); // Fp6 add coeff 0/5 + let t176 = circuit_add(t137, t61); // Fp6 add coeff 1/5 + let t177 = circuit_add(t157, t81); // Fp6 add coeff 2/5 + let t178 = circuit_add(t158, t82); // Fp6 add coeff 3/5 + let t179 = circuit_add(t173, t97); // Fp6 add coeff 4/5 + let t180 = circuit_add(t174, t98); // Fp6 add coeff 5/5 + let t181 = circuit_add(t60, t60); // Fp6 add coeff 0/5 + let t182 = circuit_add(t61, t61); // Fp6 add coeff 1/5 + let t183 = circuit_add(t81, t81); // Fp6 add coeff 2/5 + let t184 = circuit_add(t82, t82); // Fp6 add coeff 3/5 + let t185 = circuit_add(t97, t97); // Fp6 add coeff 4/5 + let t186 = circuit_add(t98, t98); // Fp6 add coeff 5/5 + let t187 = circuit_add(t97, t98); + let t188 = circuit_add(t187, t187); + let t189 = circuit_sub(t97, t98); + let t190 = circuit_sub(t188, t97); + let t191 = circuit_sub(t190, t98); + let t192 = circuit_add(t175, t189); // Fp6 add coeff 0/5 + let t193 = circuit_add(t176, t191); // Fp6 add coeff 1/5 + let t194 = circuit_add(t177, t60); // Fp6 add coeff 2/5 + let t195 = circuit_add(t178, t61); // Fp6 add coeff 3/5 + let t196 = circuit_add(t179, t81); // Fp6 add coeff 4/5 + let t197 = circuit_add(t180, t82); // Fp6 add coeff 5/5 + let t198 = circuit_sub(in6, in10); // Fp2 sub coeff 0/1 + let t199 = circuit_sub(in7, in11); // Fp2 sub coeff 1/1 + let t200 = circuit_sub(in4, in8); // Fp2 sub coeff 0/1 + let t201 = circuit_sub(in5, in9); // Fp2 sub coeff 1/1 + let t202 = circuit_mul(t200, t200); // Fp2 Inv start + let t203 = circuit_mul(t201, t201); + let t204 = circuit_add(t202, t203); + let t205 = circuit_inverse(t204); + let t206 = circuit_mul(t200, t205); // Fp2 Inv real part end + let t207 = circuit_mul(t201, t205); + let t208 = circuit_sub(in0, t207); // Fp2 Inv imag part end + let t209 = circuit_mul(t198, t206); // Fp2 mul start + let t210 = circuit_mul(t199, t208); + let t211 = circuit_sub(t209, t210); // Fp2 mul real part end + let t212 = circuit_mul(t198, t208); + let t213 = circuit_mul(t199, t206); + let t214 = circuit_add(t212, t213); // Fp2 mul imag part end + let t215 = circuit_add(t211, t214); + let t216 = circuit_sub(t211, t214); + let t217 = circuit_mul(t215, t216); + let t218 = circuit_mul(t211, t214); + let t219 = circuit_add(t218, t218); + let t220 = circuit_add(in4, in8); // Fp2 add coeff 0/1 + let t221 = circuit_add(in5, in9); // Fp2 add coeff 1/1 + let t222 = circuit_sub(t217, t220); // Fp2 sub coeff 0/1 + let t223 = circuit_sub(t219, t221); // Fp2 sub coeff 1/1 + let t224 = circuit_mul(t211, in4); // Fp2 mul start + let t225 = circuit_mul(t214, in5); + let t226 = circuit_sub(t224, t225); // Fp2 mul real part end + let t227 = circuit_mul(t211, in5); + let t228 = circuit_mul(t214, in4); + let t229 = circuit_add(t227, t228); // Fp2 mul imag part end + let t230 = circuit_sub(t226, in6); // Fp2 sub coeff 0/1 + let t231 = circuit_sub(t229, in7); // Fp2 sub coeff 1/1 + let t232 = circuit_add(in6, in6); // Fp2 add coeff 0/1 + let t233 = circuit_add(in7, in7); // Fp2 add coeff 1/1 + let t234 = circuit_sub(t222, in4); // Fp2 sub coeff 0/1 + let t235 = circuit_sub(t223, in5); // Fp2 sub coeff 1/1 + let t236 = circuit_mul(t234, t234); // Fp2 Inv start + let t237 = circuit_mul(t235, t235); + let t238 = circuit_add(t236, t237); + let t239 = circuit_inverse(t238); + let t240 = circuit_mul(t234, t239); // Fp2 Inv real part end + let t241 = circuit_mul(t235, t239); + let t242 = circuit_sub(in0, t241); // Fp2 Inv imag part end + let t243 = circuit_mul(t232, t240); // Fp2 mul start + let t244 = circuit_mul(t233, t242); + let t245 = circuit_sub(t243, t244); // Fp2 mul real part end + let t246 = circuit_mul(t232, t242); + let t247 = circuit_mul(t233, t240); + let t248 = circuit_add(t246, t247); // Fp2 mul imag part end + let t249 = circuit_add(t211, t245); // Fp2 add coeff 0/1 + let t250 = circuit_add(t214, t248); // Fp2 add coeff 1/1 + let t251 = circuit_sub(in0, t249); // Fp2 neg coeff 0/1 + let t252 = circuit_sub(in0, t250); // Fp2 neg coeff 1/1 + let t253 = circuit_add(t251, t252); + let t254 = circuit_sub(t251, t252); + let t255 = circuit_mul(t253, t254); + let t256 = circuit_mul(t251, t252); + let t257 = circuit_add(t256, t256); + let t258 = circuit_sub(t255, in4); // Fp2 sub coeff 0/1 + let t259 = circuit_sub(t257, in5); // Fp2 sub coeff 1/1 + let t260 = circuit_sub(t258, t222); // Fp2 sub coeff 0/1 + let t261 = circuit_sub(t259, t223); // Fp2 sub coeff 1/1 + let t262 = circuit_sub(in4, t260); // Fp2 sub coeff 0/1 + let t263 = circuit_sub(in5, t261); // Fp2 sub coeff 1/1 + let t264 = circuit_mul(t251, t262); // Fp2 mul start + let t265 = circuit_mul(t252, t263); + let t266 = circuit_sub(t264, t265); // Fp2 mul real part end + let t267 = circuit_mul(t251, t263); + let t268 = circuit_mul(t252, t262); + let t269 = circuit_add(t267, t268); // Fp2 mul imag part end + let t270 = circuit_sub(t266, in6); // Fp2 sub coeff 0/1 + let t271 = circuit_sub(t269, in7); // Fp2 sub coeff 1/1 + let t272 = circuit_mul(t251, in4); // Fp2 mul start + let t273 = circuit_mul(t252, in5); + let t274 = circuit_sub(t272, t273); // Fp2 mul real part end + let t275 = circuit_mul(t251, in5); + let t276 = circuit_mul(t252, in4); + let t277 = circuit_add(t275, t276); // Fp2 mul imag part end + let t278 = circuit_sub(t274, in6); // Fp2 sub coeff 0/1 + let t279 = circuit_sub(t277, in7); // Fp2 sub coeff 1/1 + let t280 = circuit_mul(t230, in2); + let t281 = circuit_mul(t231, in2); + let t282 = circuit_mul(t211, in3); + let t283 = circuit_mul(t214, in3); + let t284 = circuit_mul(t278, in2); + let t285 = circuit_mul(t279, in2); + let t286 = circuit_mul(t251, in3); + let t287 = circuit_mul(t252, in3); + let t288 = circuit_mul(t192, t280); // Fp2 mul start + let t289 = circuit_mul(t193, t281); + let t290 = circuit_sub(t288, t289); // Fp2 mul real part end + let t291 = circuit_mul(t192, t281); + let t292 = circuit_mul(t193, t280); + let t293 = circuit_add(t291, t292); // Fp2 mul imag part end + let t294 = circuit_mul(t194, t282); // Fp2 mul start + let t295 = circuit_mul(t195, t283); + let t296 = circuit_sub(t294, t295); // Fp2 mul real part end + let t297 = circuit_mul(t194, t283); + let t298 = circuit_mul(t195, t282); + let t299 = circuit_add(t297, t298); // Fp2 mul imag part end + let t300 = circuit_add(t194, t196); // Fp2 add coeff 0/1 + let t301 = circuit_add(t195, t197); // Fp2 add coeff 1/1 + let t302 = circuit_mul(t282, t300); // Fp2 mul start + let t303 = circuit_mul(t283, t301); + let t304 = circuit_sub(t302, t303); // Fp2 mul real part end + let t305 = circuit_mul(t282, t301); + let t306 = circuit_mul(t283, t300); + let t307 = circuit_add(t305, t306); // Fp2 mul imag part end + let t308 = circuit_sub(t304, t296); // Fp2 sub coeff 0/1 + let t309 = circuit_sub(t307, t299); // Fp2 sub coeff 1/1 + let t310 = circuit_add(t308, t309); + let t311 = circuit_add(t310, t310); + let t312 = circuit_sub(t308, t309); + let t313 = circuit_sub(t311, t308); + let t314 = circuit_sub(t313, t309); + let t315 = circuit_add(t312, t290); // Fp2 add coeff 0/1 + let t316 = circuit_add(t314, t293); // Fp2 add coeff 1/1 + let t317 = circuit_add(t192, t196); // Fp2 add coeff 0/1 + let t318 = circuit_add(t193, t197); // Fp2 add coeff 1/1 + let t319 = circuit_mul(t280, t317); // Fp2 mul start + let t320 = circuit_mul(t281, t318); + let t321 = circuit_sub(t319, t320); // Fp2 mul real part end + let t322 = circuit_mul(t280, t318); + let t323 = circuit_mul(t281, t317); + let t324 = circuit_add(t322, t323); // Fp2 mul imag part end + let t325 = circuit_sub(t321, t290); // Fp2 sub coeff 0/1 + let t326 = circuit_sub(t324, t293); // Fp2 sub coeff 1/1 + let t327 = circuit_add(t325, t296); // Fp2 add coeff 0/1 + let t328 = circuit_add(t326, t299); // Fp2 add coeff 1/1 + let t329 = circuit_add(t280, t282); // Fp2 add coeff 0/1 + let t330 = circuit_add(t281, t283); // Fp2 add coeff 1/1 + let t331 = circuit_add(t192, t194); // Fp2 add coeff 0/1 + let t332 = circuit_add(t193, t195); // Fp2 add coeff 1/1 + let t333 = circuit_mul(t329, t331); // Fp2 mul start + let t334 = circuit_mul(t330, t332); + let t335 = circuit_sub(t333, t334); // Fp2 mul real part end + let t336 = circuit_mul(t329, t332); + let t337 = circuit_mul(t330, t331); + let t338 = circuit_add(t336, t337); // Fp2 mul imag part end + let t339 = circuit_sub(t335, t290); // Fp2 sub coeff 0/1 + let t340 = circuit_sub(t338, t293); // Fp2 sub coeff 1/1 + let t341 = circuit_sub(t339, t296); // Fp2 sub coeff 0/1 + let t342 = circuit_sub(t340, t299); // Fp2 sub coeff 1/1 + let t343 = circuit_add(t185, t186); + let t344 = circuit_add(t343, t343); + let t345 = circuit_sub(t185, t186); + let t346 = circuit_sub(t344, t185); + let t347 = circuit_sub(t346, t186); + let t348 = circuit_add(in1, t282); + let t349 = circuit_add(t181, t192); // Fp6 add coeff 0/5 + let t350 = circuit_add(t182, t193); // Fp6 add coeff 1/5 + let t351 = circuit_add(t183, t194); // Fp6 add coeff 2/5 + let t352 = circuit_add(t184, t195); // Fp6 add coeff 3/5 + let t353 = circuit_add(t185, t196); // Fp6 add coeff 4/5 + let t354 = circuit_add(t186, t197); // Fp6 add coeff 5/5 + let t355 = circuit_mul(t349, t280); // Fp2 mul start + let t356 = circuit_mul(t350, t281); + let t357 = circuit_sub(t355, t356); // Fp2 mul real part end + let t358 = circuit_mul(t349, t281); + let t359 = circuit_mul(t350, t280); + let t360 = circuit_add(t358, t359); // Fp2 mul imag part end + let t361 = circuit_mul(t351, t348); // Fp2 mul start + let t362 = circuit_mul(t352, t283); + let t363 = circuit_sub(t361, t362); // Fp2 mul real part end + let t364 = circuit_mul(t351, t283); + let t365 = circuit_mul(t352, t348); + let t366 = circuit_add(t364, t365); // Fp2 mul imag part end + let t367 = circuit_add(t351, t353); // Fp2 add coeff 0/1 + let t368 = circuit_add(t352, t354); // Fp2 add coeff 1/1 + let t369 = circuit_mul(t348, t367); // Fp2 mul start + let t370 = circuit_mul(t283, t368); + let t371 = circuit_sub(t369, t370); // Fp2 mul real part end + let t372 = circuit_mul(t348, t368); + let t373 = circuit_mul(t283, t367); + let t374 = circuit_add(t372, t373); // Fp2 mul imag part end + let t375 = circuit_sub(t371, t363); // Fp2 sub coeff 0/1 + let t376 = circuit_sub(t374, t366); // Fp2 sub coeff 1/1 + let t377 = circuit_add(t375, t376); + let t378 = circuit_add(t377, t377); + let t379 = circuit_sub(t375, t376); + let t380 = circuit_sub(t378, t375); + let t381 = circuit_sub(t380, t376); + let t382 = circuit_add(t379, t357); // Fp2 add coeff 0/1 + let t383 = circuit_add(t381, t360); // Fp2 add coeff 1/1 + let t384 = circuit_add(t349, t353); // Fp2 add coeff 0/1 + let t385 = circuit_add(t350, t354); // Fp2 add coeff 1/1 + let t386 = circuit_mul(t280, t384); // Fp2 mul start + let t387 = circuit_mul(t281, t385); + let t388 = circuit_sub(t386, t387); // Fp2 mul real part end + let t389 = circuit_mul(t280, t385); + let t390 = circuit_mul(t281, t384); + let t391 = circuit_add(t389, t390); // Fp2 mul imag part end + let t392 = circuit_sub(t388, t357); // Fp2 sub coeff 0/1 + let t393 = circuit_sub(t391, t360); // Fp2 sub coeff 1/1 + let t394 = circuit_add(t392, t363); // Fp2 add coeff 0/1 + let t395 = circuit_add(t393, t366); // Fp2 add coeff 1/1 + let t396 = circuit_add(t280, t348); // Fp2 add coeff 0/1 + let t397 = circuit_add(t281, t283); // Fp2 add coeff 1/1 + let t398 = circuit_add(t349, t351); // Fp2 add coeff 0/1 + let t399 = circuit_add(t350, t352); // Fp2 add coeff 1/1 + let t400 = circuit_mul(t396, t398); // Fp2 mul start + let t401 = circuit_mul(t397, t399); + let t402 = circuit_sub(t400, t401); // Fp2 mul real part end + let t403 = circuit_mul(t396, t399); + let t404 = circuit_mul(t397, t398); + let t405 = circuit_add(t403, t404); // Fp2 mul imag part end + let t406 = circuit_sub(t402, t357); // Fp2 sub coeff 0/1 + let t407 = circuit_sub(t405, t360); // Fp2 sub coeff 1/1 + let t408 = circuit_sub(t406, t363); // Fp2 sub coeff 0/1 + let t409 = circuit_sub(t407, t366); // Fp2 sub coeff 1/1 + let t410 = circuit_sub(t382, t315); // Fp6 sub coeff 0/5 + let t411 = circuit_sub(t383, t316); // Fp6 sub coeff 1/5 + let t412 = circuit_sub(t408, t341); // Fp6 sub coeff 2/5 + let t413 = circuit_sub(t409, t342); // Fp6 sub coeff 3/5 + let t414 = circuit_sub(t394, t327); // Fp6 sub coeff 4/5 + let t415 = circuit_sub(t395, t328); // Fp6 sub coeff 5/5 + let t416 = circuit_sub(t410, t345); // Fp6 sub coeff 0/5 + let t417 = circuit_sub(t411, t347); // Fp6 sub coeff 1/5 + let t418 = circuit_sub(t412, t181); // Fp6 sub coeff 2/5 + let t419 = circuit_sub(t413, t182); // Fp6 sub coeff 3/5 + let t420 = circuit_sub(t414, t183); // Fp6 sub coeff 4/5 + let t421 = circuit_sub(t415, t184); // Fp6 sub coeff 5/5 + let t422 = circuit_add(t183, t184); + let t423 = circuit_add(t422, t422); + let t424 = circuit_sub(t183, t184); + let t425 = circuit_sub(t423, t183); + let t426 = circuit_sub(t425, t184); + let t427 = circuit_add(t424, t315); // Fp6 add coeff 0/5 + let t428 = circuit_add(t426, t316); // Fp6 add coeff 1/5 + let t429 = circuit_add(t345, t341); // Fp6 add coeff 2/5 + let t430 = circuit_add(t347, t342); // Fp6 add coeff 3/5 + let t431 = circuit_add(t181, t327); // Fp6 add coeff 4/5 + let t432 = circuit_add(t182, t328); // Fp6 add coeff 5/5 + let t433 = circuit_mul(t427, t284); // Fp2 mul start + let t434 = circuit_mul(t428, t285); + let t435 = circuit_sub(t433, t434); // Fp2 mul real part end + let t436 = circuit_mul(t427, t285); + let t437 = circuit_mul(t428, t284); + let t438 = circuit_add(t436, t437); // Fp2 mul imag part end + let t439 = circuit_mul(t429, t286); // Fp2 mul start + let t440 = circuit_mul(t430, t287); + let t441 = circuit_sub(t439, t440); // Fp2 mul real part end + let t442 = circuit_mul(t429, t287); + let t443 = circuit_mul(t430, t286); + let t444 = circuit_add(t442, t443); // Fp2 mul imag part end + let t445 = circuit_add(t429, t431); // Fp2 add coeff 0/1 + let t446 = circuit_add(t430, t432); // Fp2 add coeff 1/1 + let t447 = circuit_mul(t286, t445); // Fp2 mul start + let t448 = circuit_mul(t287, t446); + let t449 = circuit_sub(t447, t448); // Fp2 mul real part end + let t450 = circuit_mul(t286, t446); + let t451 = circuit_mul(t287, t445); + let t452 = circuit_add(t450, t451); // Fp2 mul imag part end + let t453 = circuit_sub(t449, t441); // Fp2 sub coeff 0/1 + let t454 = circuit_sub(t452, t444); // Fp2 sub coeff 1/1 + let t455 = circuit_add(t453, t454); + let t456 = circuit_add(t455, t455); + let t457 = circuit_sub(t453, t454); + let t458 = circuit_sub(t456, t453); + let t459 = circuit_sub(t458, t454); + let t460 = circuit_add(t457, t435); // Fp2 add coeff 0/1 + let t461 = circuit_add(t459, t438); // Fp2 add coeff 1/1 + let t462 = circuit_add(t427, t431); // Fp2 add coeff 0/1 + let t463 = circuit_add(t428, t432); // Fp2 add coeff 1/1 + let t464 = circuit_mul(t284, t462); // Fp2 mul start + let t465 = circuit_mul(t285, t463); + let t466 = circuit_sub(t464, t465); // Fp2 mul real part end + let t467 = circuit_mul(t284, t463); + let t468 = circuit_mul(t285, t462); + let t469 = circuit_add(t467, t468); // Fp2 mul imag part end + let t470 = circuit_sub(t466, t435); // Fp2 sub coeff 0/1 + let t471 = circuit_sub(t469, t438); // Fp2 sub coeff 1/1 + let t472 = circuit_add(t470, t441); // Fp2 add coeff 0/1 + let t473 = circuit_add(t471, t444); // Fp2 add coeff 1/1 + let t474 = circuit_add(t284, t286); // Fp2 add coeff 0/1 + let t475 = circuit_add(t285, t287); // Fp2 add coeff 1/1 + let t476 = circuit_add(t427, t429); // Fp2 add coeff 0/1 + let t477 = circuit_add(t428, t430); // Fp2 add coeff 1/1 + let t478 = circuit_mul(t474, t476); // Fp2 mul start + let t479 = circuit_mul(t475, t477); + let t480 = circuit_sub(t478, t479); // Fp2 mul real part end + let t481 = circuit_mul(t474, t477); + let t482 = circuit_mul(t475, t476); + let t483 = circuit_add(t481, t482); // Fp2 mul imag part end + let t484 = circuit_sub(t480, t435); // Fp2 sub coeff 0/1 + let t485 = circuit_sub(t483, t438); // Fp2 sub coeff 1/1 + let t486 = circuit_sub(t484, t441); // Fp2 sub coeff 0/1 + let t487 = circuit_sub(t485, t444); // Fp2 sub coeff 1/1 + let t488 = circuit_add(t420, t421); + let t489 = circuit_add(t488, t488); + let t490 = circuit_sub(t420, t421); + let t491 = circuit_sub(t489, t420); + let t492 = circuit_sub(t491, t421); + let t493 = circuit_add(in1, t286); + let t494 = circuit_add(t416, t427); // Fp6 add coeff 0/5 + let t495 = circuit_add(t417, t428); // Fp6 add coeff 1/5 + let t496 = circuit_add(t418, t429); // Fp6 add coeff 2/5 + let t497 = circuit_add(t419, t430); // Fp6 add coeff 3/5 + let t498 = circuit_add(t420, t431); // Fp6 add coeff 4/5 + let t499 = circuit_add(t421, t432); // Fp6 add coeff 5/5 + let t500 = circuit_mul(t494, t284); // Fp2 mul start + let t501 = circuit_mul(t495, t285); + let t502 = circuit_sub(t500, t501); // Fp2 mul real part end + let t503 = circuit_mul(t494, t285); + let t504 = circuit_mul(t495, t284); + let t505 = circuit_add(t503, t504); // Fp2 mul imag part end + let t506 = circuit_mul(t496, t493); // Fp2 mul start + let t507 = circuit_mul(t497, t287); + let t508 = circuit_sub(t506, t507); // Fp2 mul real part end + let t509 = circuit_mul(t496, t287); + let t510 = circuit_mul(t497, t493); + let t511 = circuit_add(t509, t510); // Fp2 mul imag part end + let t512 = circuit_add(t496, t498); // Fp2 add coeff 0/1 + let t513 = circuit_add(t497, t499); // Fp2 add coeff 1/1 + let t514 = circuit_mul(t493, t512); // Fp2 mul start + let t515 = circuit_mul(t287, t513); + let t516 = circuit_sub(t514, t515); // Fp2 mul real part end + let t517 = circuit_mul(t493, t513); + let t518 = circuit_mul(t287, t512); + let t519 = circuit_add(t517, t518); // Fp2 mul imag part end + let t520 = circuit_sub(t516, t508); // Fp2 sub coeff 0/1 + let t521 = circuit_sub(t519, t511); // Fp2 sub coeff 1/1 + let t522 = circuit_add(t520, t521); + let t523 = circuit_add(t522, t522); + let t524 = circuit_sub(t520, t521); + let t525 = circuit_sub(t523, t520); + let t526 = circuit_sub(t525, t521); + let t527 = circuit_add(t524, t502); // Fp2 add coeff 0/1 + let t528 = circuit_add(t526, t505); // Fp2 add coeff 1/1 + let t529 = circuit_add(t494, t498); // Fp2 add coeff 0/1 + let t530 = circuit_add(t495, t499); // Fp2 add coeff 1/1 + let t531 = circuit_mul(t284, t529); // Fp2 mul start + let t532 = circuit_mul(t285, t530); + let t533 = circuit_sub(t531, t532); // Fp2 mul real part end + let t534 = circuit_mul(t284, t530); + let t535 = circuit_mul(t285, t529); + let t536 = circuit_add(t534, t535); // Fp2 mul imag part end + let t537 = circuit_sub(t533, t502); // Fp2 sub coeff 0/1 + let t538 = circuit_sub(t536, t505); // Fp2 sub coeff 1/1 + let t539 = circuit_add(t537, t508); // Fp2 add coeff 0/1 + let t540 = circuit_add(t538, t511); // Fp2 add coeff 1/1 + let t541 = circuit_add(t284, t493); // Fp2 add coeff 0/1 + let t542 = circuit_add(t285, t287); // Fp2 add coeff 1/1 + let t543 = circuit_add(t494, t496); // Fp2 add coeff 0/1 + let t544 = circuit_add(t495, t497); // Fp2 add coeff 1/1 + let t545 = circuit_mul(t541, t543); // Fp2 mul start + let t546 = circuit_mul(t542, t544); + let t547 = circuit_sub(t545, t546); // Fp2 mul real part end + let t548 = circuit_mul(t541, t544); + let t549 = circuit_mul(t542, t543); + let t550 = circuit_add(t548, t549); // Fp2 mul imag part end + let t551 = circuit_sub(t547, t502); // Fp2 sub coeff 0/1 + let t552 = circuit_sub(t550, t505); // Fp2 sub coeff 1/1 + let t553 = circuit_sub(t551, t508); // Fp2 sub coeff 0/1 + let t554 = circuit_sub(t552, t511); // Fp2 sub coeff 1/1 + let t555 = circuit_sub(t527, t460); // Fp6 sub coeff 0/5 + let t556 = circuit_sub(t528, t461); // Fp6 sub coeff 1/5 + let t557 = circuit_sub(t553, t486); // Fp6 sub coeff 2/5 + let t558 = circuit_sub(t554, t487); // Fp6 sub coeff 3/5 + let t559 = circuit_sub(t539, t472); // Fp6 sub coeff 4/5 + let t560 = circuit_sub(t540, t473); // Fp6 sub coeff 5/5 + let t561 = circuit_sub(t555, t490); // Fp6 sub coeff 0/5 + let t562 = circuit_sub(t556, t492); // Fp6 sub coeff 1/5 + let t563 = circuit_sub(t557, t416); // Fp6 sub coeff 2/5 + let t564 = circuit_sub(t558, t417); // Fp6 sub coeff 3/5 + let t565 = circuit_sub(t559, t418); // Fp6 sub coeff 4/5 + let t566 = circuit_sub(t560, t419); // Fp6 sub coeff 5/5 + let t567 = circuit_add(t418, t419); + let t568 = circuit_add(t567, t567); + let t569 = circuit_sub(t418, t419); + let t570 = circuit_sub(t568, t418); + let t571 = circuit_sub(t570, t419); + let t572 = circuit_add(t569, t460); // Fp6 add coeff 0/5 + let t573 = circuit_add(t571, t461); // Fp6 add coeff 1/5 + let t574 = circuit_add(t490, t486); // Fp6 add coeff 2/5 + let t575 = circuit_add(t492, t487); // Fp6 add coeff 3/5 + let t576 = circuit_add(t416, t472); // Fp6 add coeff 4/5 + let t577 = circuit_add(t417, t473); // Fp6 add coeff 5/5 + let t578 = circuit_add(t260, t261); + let t579 = circuit_add(t578, t270); + let t580 = circuit_add(t579, t271); + + let modulus = get_BLS12_381_modulus(); // BLS12_381 prime field modulus + + let mut circuit_inputs = ( + t580, t572, t573, t574, t575, t576, t577, t561, t562, t563, t564, t565, t566, + ) + .new_inputs(); + // Prefill constants: + circuit_inputs = circuit_inputs.next_2([0x0, 0x0, 0x0, 0x0]); // in0 + circuit_inputs = circuit_inputs.next_2([0x1, 0x0, 0x0, 0x0]); // in1 + // Fill inputs: + circuit_inputs = circuit_inputs.next_2(yInv_0); // in2 + circuit_inputs = circuit_inputs.next_2(xNegOverY_0); // in3 + circuit_inputs = circuit_inputs.next_2(Q_0.x0); // in4 + circuit_inputs = circuit_inputs.next_2(Q_0.x1); // in5 + circuit_inputs = circuit_inputs.next_2(Q_0.y0); // in6 + circuit_inputs = circuit_inputs.next_2(Q_0.y1); // in7 + circuit_inputs = circuit_inputs.next_2(Q_or_Q_neg_0.x0); // in8 + circuit_inputs = circuit_inputs.next_2(Q_or_Q_neg_0.x1); // in9 + circuit_inputs = circuit_inputs.next_2(Q_or_Q_neg_0.y0); // in10 + circuit_inputs = circuit_inputs.next_2(Q_or_Q_neg_0.y1); // in11 + circuit_inputs = circuit_inputs.next_2(M_i.c0b0a0); // in12 + circuit_inputs = circuit_inputs.next_2(M_i.c0b0a1); // in13 + circuit_inputs = circuit_inputs.next_2(M_i.c0b1a0); // in14 + circuit_inputs = circuit_inputs.next_2(M_i.c0b1a1); // in15 + circuit_inputs = circuit_inputs.next_2(M_i.c0b2a0); // in16 + circuit_inputs = circuit_inputs.next_2(M_i.c0b2a1); // in17 + circuit_inputs = circuit_inputs.next_2(M_i.c1b0a0); // in18 + circuit_inputs = circuit_inputs.next_2(M_i.c1b0a1); // in19 + circuit_inputs = circuit_inputs.next_2(M_i.c1b1a0); // in20 + circuit_inputs = circuit_inputs.next_2(M_i.c1b1a1); // in21 + circuit_inputs = circuit_inputs.next_2(M_i.c1b2a0); // in22 + circuit_inputs = circuit_inputs.next_2(M_i.c1b2a1); // in23 + + let outputs = circuit_inputs.done_2().eval(modulus).unwrap(); + let Q0: G2Point = G2Point { + x0: outputs.get_output(t260), + x1: outputs.get_output(t261), + y0: outputs.get_output(t270), + y1: outputs.get_output(t271), + }; + let Mi_plus_one: E12T = E12T { + c0b0a0: outputs.get_output(t572), + c0b0a1: outputs.get_output(t573), + c0b1a0: outputs.get_output(t574), + c0b1a1: outputs.get_output(t575), + c0b2a0: outputs.get_output(t576), + c0b2a1: outputs.get_output(t577), + c1b0a0: outputs.get_output(t561), + c1b0a1: outputs.get_output(t562), + c1b1a0: outputs.get_output(t563), + c1b1a1: outputs.get_output(t564), + c1b2a0: outputs.get_output(t565), + c1b2a1: outputs.get_output(t566), + }; + return (Q0, Mi_plus_one); +} +#[inline(always)] +pub fn run_BLS12_381_TOWER_MILLER_INIT_BIT_1P_circuit( + yInv_0: u384, xNegOverY_0: u384, Q_0: G2Point, +) -> (G2Point, u384, u384, u384, u384, u384, u384, u384, u384, u384, u384) { + // CONSTANT stack + let in0 = CE::> {}; // 0x3 + let in1 = CE::> {}; // 0x6 + let in2 = CE::> {}; // 0x0 + let in3 = CE::> {}; // 0x1 + + // INPUT stack + let (in4, in5, in6) = (CE::> {}, CE::> {}, CE::> {}); + let (in7, in8, in9) = (CE::> {}, CE::> {}, CE::> {}); + let t0 = circuit_add(in6, in7); + let t1 = circuit_sub(in6, in7); + let t2 = circuit_mul(t0, t1); + let t3 = circuit_mul(in6, in7); + let t4 = circuit_mul(t2, in0); + let t5 = circuit_mul(t3, in1); + let t6 = circuit_add(in8, in8); // Fp2 add coeff 0/1 + let t7 = circuit_add(in9, in9); // Fp2 add coeff 1/1 + let t8 = circuit_mul(t6, t6); // Fp2 Inv start + let t9 = circuit_mul(t7, t7); + let t10 = circuit_add(t8, t9); + let t11 = circuit_inverse(t10); + let t12 = circuit_mul(t6, t11); // Fp2 Inv real part end + let t13 = circuit_mul(t7, t11); + let t14 = circuit_sub(in2, t13); // Fp2 Inv imag part end + let t15 = circuit_mul(t4, t12); // Fp2 mul start + let t16 = circuit_mul(t5, t14); + let t17 = circuit_sub(t15, t16); // Fp2 mul real part end + let t18 = circuit_mul(t4, t14); + let t19 = circuit_mul(t5, t12); + let t20 = circuit_add(t18, t19); // Fp2 mul imag part end + let t21 = circuit_mul(t17, in6); // Fp2 mul start + let t22 = circuit_mul(t20, in7); + let t23 = circuit_sub(t21, t22); // Fp2 mul real part end + let t24 = circuit_mul(t17, in7); + let t25 = circuit_mul(t20, in6); + let t26 = circuit_add(t24, t25); // Fp2 mul imag part end + let t27 = circuit_sub(t23, in8); // Fp2 sub coeff 0/1 + let t28 = circuit_sub(t26, in9); // Fp2 sub coeff 1/1 + let t29 = circuit_add(t17, t20); + let t30 = circuit_sub(t17, t20); + let t31 = circuit_mul(t29, t30); + let t32 = circuit_mul(t17, t20); + let t33 = circuit_add(t32, t32); + let t34 = circuit_add(in6, in6); // Fp2 add coeff 0/1 + let t35 = circuit_add(in7, in7); // Fp2 add coeff 1/1 + let t36 = circuit_sub(t31, t34); // Fp2 sub coeff 0/1 + let t37 = circuit_sub(t33, t35); // Fp2 sub coeff 1/1 + let t38 = circuit_sub(in6, t36); // Fp2 sub coeff 0/1 + let t39 = circuit_sub(in7, t37); // Fp2 sub coeff 1/1 + let t40 = circuit_mul(t38, t38); // Fp2 Inv start + let t41 = circuit_mul(t39, t39); + let t42 = circuit_add(t40, t41); + let t43 = circuit_inverse(t42); + let t44 = circuit_mul(t38, t43); // Fp2 Inv real part end + let t45 = circuit_mul(t39, t43); + let t46 = circuit_sub(in2, t45); // Fp2 Inv imag part end + let t47 = circuit_mul(t6, t44); // Fp2 mul start + let t48 = circuit_mul(t7, t46); + let t49 = circuit_sub(t47, t48); // Fp2 mul real part end + let t50 = circuit_mul(t6, t46); + let t51 = circuit_mul(t7, t44); + let t52 = circuit_add(t50, t51); // Fp2 mul imag part end + let t53 = circuit_sub(t49, t17); // Fp2 sub coeff 0/1 + let t54 = circuit_sub(t52, t20); // Fp2 sub coeff 1/1 + let t55 = circuit_mul(t53, in6); // Fp2 mul start + let t56 = circuit_mul(t54, in7); + let t57 = circuit_sub(t55, t56); // Fp2 mul real part end + let t58 = circuit_mul(t53, in7); + let t59 = circuit_mul(t54, in6); + let t60 = circuit_add(t58, t59); // Fp2 mul imag part end + let t61 = circuit_sub(t57, in8); // Fp2 sub coeff 0/1 + let t62 = circuit_sub(t60, in9); // Fp2 sub coeff 1/1 + let t63 = circuit_add(t53, t54); + let t64 = circuit_sub(t53, t54); + let t65 = circuit_mul(t63, t64); + let t66 = circuit_mul(t53, t54); + let t67 = circuit_add(t66, t66); + let t68 = circuit_add(in6, t36); // Fp2 add coeff 0/1 + let t69 = circuit_add(in7, t37); // Fp2 add coeff 1/1 + let t70 = circuit_sub(t65, t68); // Fp2 sub coeff 0/1 + let t71 = circuit_sub(t67, t69); // Fp2 sub coeff 1/1 + let t72 = circuit_sub(in6, t70); // Fp2 sub coeff 0/1 + let t73 = circuit_sub(in7, t71); // Fp2 sub coeff 1/1 + let t74 = circuit_mul(t53, t72); // Fp2 mul start + let t75 = circuit_mul(t54, t73); + let t76 = circuit_sub(t74, t75); // Fp2 mul real part end + let t77 = circuit_mul(t53, t73); + let t78 = circuit_mul(t54, t72); + let t79 = circuit_add(t77, t78); // Fp2 mul imag part end + let t80 = circuit_sub(t76, in8); // Fp2 sub coeff 0/1 + let t81 = circuit_sub(t79, in9); // Fp2 sub coeff 1/1 + let t82 = circuit_mul(t27, in4); + let t83 = circuit_mul(t28, in4); + let t84 = circuit_mul(t17, in5); + let t85 = circuit_mul(t20, in5); + let t86 = circuit_mul(t61, in4); + let t87 = circuit_mul(t62, in4); + let t88 = circuit_mul(t53, in5); + let t89 = circuit_mul(t54, in5); + let t90 = circuit_mul(t86, t82); // Fp2 mul start + let t91 = circuit_mul(t87, t83); + let t92 = circuit_sub(t90, t91); // Fp2 mul real part end + let t93 = circuit_mul(t86, t83); + let t94 = circuit_mul(t87, t82); + let t95 = circuit_add(t93, t94); // Fp2 mul imag part end + let t96 = circuit_mul(t88, t84); // Fp2 mul start + let t97 = circuit_mul(t89, t85); + let t98 = circuit_sub(t96, t97); // Fp2 mul real part end + let t99 = circuit_mul(t88, t85); + let t100 = circuit_mul(t89, t84); + let t101 = circuit_add(t99, t100); // Fp2 mul imag part end + let t102 = circuit_add(t82, t86); // Fp2 add coeff 0/1 + let t103 = circuit_add(t83, t87); // Fp2 add coeff 1/1 + let t104 = circuit_add(t86, t88); // Fp2 add coeff 0/1 + let t105 = circuit_add(t87, t89); // Fp2 add coeff 1/1 + let t106 = circuit_add(t82, t84); // Fp2 add coeff 0/1 + let t107 = circuit_add(t83, t85); // Fp2 add coeff 1/1 + let t108 = circuit_mul(t106, t104); // Fp2 mul start + let t109 = circuit_mul(t107, t105); + let t110 = circuit_sub(t108, t109); // Fp2 mul real part end + let t111 = circuit_mul(t106, t105); + let t112 = circuit_mul(t107, t104); + let t113 = circuit_add(t111, t112); // Fp2 mul imag part end + let t114 = circuit_sub(t110, t92); // Fp2 sub coeff 0/1 + let t115 = circuit_sub(t113, t95); // Fp2 sub coeff 1/1 + let t116 = circuit_sub(t114, t98); // Fp2 sub coeff 0/1 + let t117 = circuit_sub(t115, t101); // Fp2 sub coeff 1/1 + let t118 = circuit_add(t84, t88); // Fp2 add coeff 0/1 + let t119 = circuit_add(t85, t89); // Fp2 add coeff 1/1 + let t120 = circuit_add(in3, in2); + let t121 = circuit_add(t120, t120); + let t122 = circuit_sub(in3, in2); + let t123 = circuit_sub(t121, in3); + let t124 = circuit_sub(t123, in2); + let t125 = circuit_add(t122, t92); // Fp2 add coeff 0/1 + let t126 = circuit_add(t124, t95); // Fp2 add coeff 1/1 + + let modulus = get_BLS12_381_modulus(); // BLS12_381 prime field modulus + + let mut circuit_inputs = ( + t70, t71, t80, t81, t125, t126, t116, t117, t98, t101, t102, t103, t118, t119, + ) + .new_inputs(); + // Prefill constants: + circuit_inputs = circuit_inputs.next_2([0x3, 0x0, 0x0, 0x0]); // in0 + circuit_inputs = circuit_inputs.next_2([0x6, 0x0, 0x0, 0x0]); // in1 + circuit_inputs = circuit_inputs.next_2([0x0, 0x0, 0x0, 0x0]); // in2 + circuit_inputs = circuit_inputs.next_2([0x1, 0x0, 0x0, 0x0]); // in3 + // Fill inputs: + circuit_inputs = circuit_inputs.next_2(yInv_0); // in4 + circuit_inputs = circuit_inputs.next_2(xNegOverY_0); // in5 + circuit_inputs = circuit_inputs.next_2(Q_0.x0); // in6 + circuit_inputs = circuit_inputs.next_2(Q_0.x1); // in7 + circuit_inputs = circuit_inputs.next_2(Q_0.y0); // in8 + circuit_inputs = circuit_inputs.next_2(Q_0.y1); // in9 + + let outputs = circuit_inputs.done_2().eval(modulus).unwrap(); + let Q0: G2Point = G2Point { + x0: outputs.get_output(t70), + x1: outputs.get_output(t71), + y0: outputs.get_output(t80), + y1: outputs.get_output(t81), + }; + let c0b0a0: u384 = outputs.get_output(t125); + let c0b0a1: u384 = outputs.get_output(t126); + let c0b1a0: u384 = outputs.get_output(t116); + let c0b1a1: u384 = outputs.get_output(t117); + let c0b2a0: u384 = outputs.get_output(t98); + let c0b2a1: u384 = outputs.get_output(t101); + let c1b1a0: u384 = outputs.get_output(t102); + let c1b1a1: u384 = outputs.get_output(t103); + let c1b2a0: u384 = outputs.get_output(t118); + let c1b2a1: u384 = outputs.get_output(t119); + return (Q0, c0b0a0, c0b0a1, c0b1a0, c0b1a1, c0b2a0, c0b2a1, c1b1a0, c1b1a1, c1b2a0, c1b2a1); +} +#[inline(always)] +pub fn run_BN254_E12T_CYCLOTOMIC_SQUARE_circuit(M: E12T) -> (E12T,) { + // CONSTANT stack + let in0 = CE::> {}; // 0xa + let in1 = CE::> {}; // 0x9 + + // INPUT stack + let (in2, in3, in4) = (CE::> {}, CE::> {}, CE::> {}); + let (in5, in6, in7) = (CE::> {}, CE::> {}, CE::> {}); + let (in8, in9, in10) = (CE::> {}, CE::> {}, CE::> {}); + let (in11, in12, in13) = (CE::> {}, CE::> {}, CE::> {}); + let t0 = circuit_add(in10, in11); + let t1 = circuit_sub(in10, in11); + let t2 = circuit_mul(t0, t1); + let t3 = circuit_mul(in10, in11); + let t4 = circuit_add(t3, t3); + let t5 = circuit_add(in2, in3); + let t6 = circuit_sub(in2, in3); + let t7 = circuit_mul(t5, t6); + let t8 = circuit_mul(in2, in3); + let t9 = circuit_add(t8, t8); + let t10 = circuit_add(in10, in2); // Fp2 add coeff 0/1 + let t11 = circuit_add(in11, in3); // Fp2 add coeff 1/1 + let t12 = circuit_add(t10, t11); + let t13 = circuit_sub(t10, t11); + let t14 = circuit_mul(t12, t13); + let t15 = circuit_mul(t10, t11); + let t16 = circuit_add(t15, t15); + let t17 = circuit_sub(t14, t2); // Fp2 sub coeff 0/1 + let t18 = circuit_sub(t16, t4); // Fp2 sub coeff 1/1 + let t19 = circuit_sub(t17, t7); // Fp2 sub coeff 0/1 + let t20 = circuit_sub(t18, t9); // Fp2 sub coeff 1/1 + let t21 = circuit_add(in6, in7); + let t22 = circuit_sub(in6, in7); + let t23 = circuit_mul(t21, t22); + let t24 = circuit_mul(in6, in7); + let t25 = circuit_add(t24, t24); + let t26 = circuit_add(in8, in9); + let t27 = circuit_sub(in8, in9); + let t28 = circuit_mul(t26, t27); + let t29 = circuit_mul(in8, in9); + let t30 = circuit_add(t29, t29); + let t31 = circuit_add(in6, in8); // Fp2 add coeff 0/1 + let t32 = circuit_add(in7, in9); // Fp2 add coeff 1/1 + let t33 = circuit_add(t31, t32); + let t34 = circuit_sub(t31, t32); + let t35 = circuit_mul(t33, t34); + let t36 = circuit_mul(t31, t32); + let t37 = circuit_add(t36, t36); + let t38 = circuit_sub(t35, t23); // Fp2 sub coeff 0/1 + let t39 = circuit_sub(t37, t25); // Fp2 sub coeff 1/1 + let t40 = circuit_sub(t38, t28); // Fp2 sub coeff 0/1 + let t41 = circuit_sub(t39, t30); // Fp2 sub coeff 1/1 + let t42 = circuit_add(in12, in13); + let t43 = circuit_sub(in12, in13); + let t44 = circuit_mul(t42, t43); + let t45 = circuit_mul(in12, in13); + let t46 = circuit_add(t45, t45); + let t47 = circuit_add(in4, in5); + let t48 = circuit_sub(in4, in5); + let t49 = circuit_mul(t47, t48); + let t50 = circuit_mul(in4, in5); + let t51 = circuit_add(t50, t50); + let t52 = circuit_add(in12, in4); // Fp2 add coeff 0/1 + let t53 = circuit_add(in13, in5); // Fp2 add coeff 1/1 + let t54 = circuit_add(t52, t53); + let t55 = circuit_sub(t52, t53); + let t56 = circuit_mul(t54, t55); + let t57 = circuit_mul(t52, t53); + let t58 = circuit_add(t57, t57); + let t59 = circuit_sub(t56, t44); // Fp2 sub coeff 0/1 + let t60 = circuit_sub(t58, t46); // Fp2 sub coeff 1/1 + let t61 = circuit_sub(t59, t49); // Fp2 sub coeff 0/1 + let t62 = circuit_sub(t60, t51); // Fp2 sub coeff 1/1 + let t63 = circuit_add(t61, t62); + let t64 = circuit_mul(t63, in0); + let t65 = circuit_mul(t61, in1); + let t66 = circuit_sub(t65, t62); + let t67 = circuit_sub(t64, t65); + let t68 = circuit_sub(t67, t62); + let t69 = circuit_add(t2, t4); + let t70 = circuit_mul(t69, in0); + let t71 = circuit_mul(t2, in1); + let t72 = circuit_sub(t71, t4); + let t73 = circuit_sub(t70, t71); + let t74 = circuit_sub(t73, t4); + let t75 = circuit_add(t72, t7); // Fp2 add coeff 0/1 + let t76 = circuit_add(t74, t9); // Fp2 add coeff 1/1 + let t77 = circuit_add(t23, t25); + let t78 = circuit_mul(t77, in0); + let t79 = circuit_mul(t23, in1); + let t80 = circuit_sub(t79, t25); + let t81 = circuit_sub(t78, t79); + let t82 = circuit_sub(t81, t25); + let t83 = circuit_add(t80, t28); // Fp2 add coeff 0/1 + let t84 = circuit_add(t82, t30); // Fp2 add coeff 1/1 + let t85 = circuit_add(t44, t46); + let t86 = circuit_mul(t85, in0); + let t87 = circuit_mul(t44, in1); + let t88 = circuit_sub(t87, t46); + let t89 = circuit_sub(t86, t87); + let t90 = circuit_sub(t89, t46); + let t91 = circuit_add(t88, t49); // Fp2 add coeff 0/1 + let t92 = circuit_add(t90, t51); // Fp2 add coeff 1/1 + let t93 = circuit_sub(t75, in2); // Fp2 sub coeff 0/1 + let t94 = circuit_sub(t76, in3); // Fp2 sub coeff 1/1 + let t95 = circuit_add(t93, t93); // Fp2 add coeff 0/1 + let t96 = circuit_add(t94, t94); // Fp2 add coeff 1/1 + let t97 = circuit_add(t95, t75); // Fp2 add coeff 0/1 + let t98 = circuit_add(t96, t76); // Fp2 add coeff 1/1 + let t99 = circuit_sub(t83, in4); // Fp2 sub coeff 0/1 + let t100 = circuit_sub(t84, in5); // Fp2 sub coeff 1/1 + let t101 = circuit_add(t99, t99); // Fp2 add coeff 0/1 + let t102 = circuit_add(t100, t100); // Fp2 add coeff 1/1 + let t103 = circuit_add(t101, t83); // Fp2 add coeff 0/1 + let t104 = circuit_add(t102, t84); // Fp2 add coeff 1/1 + let t105 = circuit_sub(t91, in6); // Fp2 sub coeff 0/1 + let t106 = circuit_sub(t92, in7); // Fp2 sub coeff 1/1 + let t107 = circuit_add(t105, t105); // Fp2 add coeff 0/1 + let t108 = circuit_add(t106, t106); // Fp2 add coeff 1/1 + let t109 = circuit_add(t107, t91); // Fp2 add coeff 0/1 + let t110 = circuit_add(t108, t92); // Fp2 add coeff 1/1 + let t111 = circuit_add(t66, in8); // Fp2 add coeff 0/1 + let t112 = circuit_add(t68, in9); // Fp2 add coeff 1/1 + let t113 = circuit_add(t111, t111); // Fp2 add coeff 0/1 + let t114 = circuit_add(t112, t112); // Fp2 add coeff 1/1 + let t115 = circuit_add(t113, t66); // Fp2 add coeff 0/1 + let t116 = circuit_add(t114, t68); // Fp2 add coeff 1/1 + let t117 = circuit_add(t19, in10); // Fp2 add coeff 0/1 + let t118 = circuit_add(t20, in11); // Fp2 add coeff 1/1 + let t119 = circuit_add(t117, t117); // Fp2 add coeff 0/1 + let t120 = circuit_add(t118, t118); // Fp2 add coeff 1/1 + let t121 = circuit_add(t119, t19); // Fp2 add coeff 0/1 + let t122 = circuit_add(t120, t20); // Fp2 add coeff 1/1 + let t123 = circuit_add(t40, in12); // Fp2 add coeff 0/1 + let t124 = circuit_add(t41, in13); // Fp2 add coeff 1/1 + let t125 = circuit_add(t123, t123); // Fp2 add coeff 0/1 + let t126 = circuit_add(t124, t124); // Fp2 add coeff 1/1 + let t127 = circuit_add(t125, t40); // Fp2 add coeff 0/1 + let t128 = circuit_add(t126, t41); // Fp2 add coeff 1/1 + + let modulus = get_BN254_modulus(); // BN254 prime field modulus + + let mut circuit_inputs = (t97, t98, t103, t104, t109, t110, t115, t116, t121, t122, t127, t128) + .new_inputs(); + // Prefill constants: + circuit_inputs = circuit_inputs.next_2([0xa, 0x0, 0x0, 0x0]); // in0 + circuit_inputs = circuit_inputs.next_2([0x9, 0x0, 0x0, 0x0]); // in1 + // Fill inputs: + circuit_inputs = circuit_inputs.next_2(M.c0b0a0); // in2 + circuit_inputs = circuit_inputs.next_2(M.c0b0a1); // in3 + circuit_inputs = circuit_inputs.next_2(M.c0b1a0); // in4 + circuit_inputs = circuit_inputs.next_2(M.c0b1a1); // in5 + circuit_inputs = circuit_inputs.next_2(M.c0b2a0); // in6 + circuit_inputs = circuit_inputs.next_2(M.c0b2a1); // in7 + circuit_inputs = circuit_inputs.next_2(M.c1b0a0); // in8 + circuit_inputs = circuit_inputs.next_2(M.c1b0a1); // in9 + circuit_inputs = circuit_inputs.next_2(M.c1b1a0); // in10 + circuit_inputs = circuit_inputs.next_2(M.c1b1a1); // in11 + circuit_inputs = circuit_inputs.next_2(M.c1b2a0); // in12 + circuit_inputs = circuit_inputs.next_2(M.c1b2a1); // in13 + + let outputs = circuit_inputs.done_2().eval(modulus).unwrap(); + let res: E12T = E12T { + c0b0a0: outputs.get_output(t97), + c0b0a1: outputs.get_output(t98), + c0b1a0: outputs.get_output(t103), + c0b1a1: outputs.get_output(t104), + c0b2a0: outputs.get_output(t109), + c0b2a1: outputs.get_output(t110), + c1b0a0: outputs.get_output(t115), + c1b0a1: outputs.get_output(t116), + c1b1a0: outputs.get_output(t121), + c1b1a1: outputs.get_output(t122), + c1b2a0: outputs.get_output(t127), + c1b2a1: outputs.get_output(t128), + }; + return (res,); +} +#[inline(always)] +pub fn run_BN254_E12T_FROBENIUS_CUBE_circuit(M: E12T) -> (E12T,) { + // CONSTANT stack + let in0 = CE::> {}; // 0x0 + let in1 = CE::> {}; // 0x856e078b755ef0abaff1c77959f25ac805ffd3d5d6942d37b746ee87bdcfb6d + let in2 = CE::> {}; // 0x4f1de41b3d1766fa9f30e6dec26094f0fdf31bf98ff2631380cab2baaa586de + let in3 = CE::> {}; // 0xbc58c6611c08dab19bee0f7b5b2444ee633094575b06bcb0e1a92bc3ccbf066 + let in4 = CE::> {}; // 0x23d5e999e1910a12feb0f6ef0cd21d04a44a9e08737f96e55fe3ed9d730c239f + let in5 = CE::> {}; // 0x19dc81cfcc82e4bbefe9608cd0acaa90894cb38dbe55d24ae86f7d391ed4a67f + let in6 = CE::> {}; // 0xabf8b60be77d7306cbeee33576139d7f03a5e397d439ec7694aa2bf4c0c101 + let in7 = CE::> {}; // 0x2a275b6d9896aa4cdbf17f1dca9e5ea3bbd689a3bea870f45fcc8ad066dce9ed + let in8 = CE::> {}; // 0x28a411b634f09b8fb14b900e9507e9327600ecc7d8cf6ebab94d0cb3b2594c64 + let in9 = CE::> {}; // 0x13c49044952c0905711699fa3b4d3f692ed68098967c84a5ebde847076261b43 + let in10 = CE::< + CI<10>, + > {}; // 0x16db366a59b1dd0b9fb1b2282a48633d3e2ddaea200280211f25041384282499 + + // INPUT stack + let (in11, in12, in13) = (CE::> {}, CE::> {}, CE::> {}); + let (in14, in15, in16) = (CE::> {}, CE::> {}, CE::> {}); + let (in17, in18, in19) = (CE::> {}, CE::> {}, CE::> {}); + let (in20, in21, in22) = (CE::> {}, CE::> {}, CE::> {}); + let t0 = circuit_sub(in0, in12); + let t1 = circuit_add(in11, in0); + let t2 = circuit_sub(in0, in14); + let t3 = circuit_sub(in0, in16); + let t4 = circuit_sub(in0, in18); + let t5 = circuit_sub(in0, in20); + let t6 = circuit_sub(in0, in22); + let t7 = circuit_mul(in1, in13); // Fp2 mul start + let t8 = circuit_mul(in2, t2); + let t9 = circuit_sub(t7, t8); // Fp2 mul real part end + let t10 = circuit_mul(in1, t2); + let t11 = circuit_mul(in2, in13); + let t12 = circuit_add(t10, t11); // Fp2 mul imag part end + let t13 = circuit_mul(in3, in15); // Fp2 mul start + let t14 = circuit_mul(in4, t3); + let t15 = circuit_sub(t13, t14); // Fp2 mul real part end + let t16 = circuit_mul(in3, t3); + let t17 = circuit_mul(in4, in15); + let t18 = circuit_add(t16, t17); // Fp2 mul imag part end + let t19 = circuit_mul(in5, in17); // Fp2 mul start + let t20 = circuit_mul(in6, t4); + let t21 = circuit_sub(t19, t20); // Fp2 mul real part end + let t22 = circuit_mul(in5, t4); + let t23 = circuit_mul(in6, in17); + let t24 = circuit_add(t22, t23); // Fp2 mul imag part end + let t25 = circuit_mul(in7, in19); // Fp2 mul start + let t26 = circuit_mul(in8, t5); + let t27 = circuit_sub(t25, t26); // Fp2 mul real part end + let t28 = circuit_mul(in7, t5); + let t29 = circuit_mul(in8, in19); + let t30 = circuit_add(t28, t29); // Fp2 mul imag part end + let t31 = circuit_mul(in9, in21); // Fp2 mul start + let t32 = circuit_mul(in10, t6); + let t33 = circuit_sub(t31, t32); // Fp2 mul real part end + let t34 = circuit_mul(in9, t6); + let t35 = circuit_mul(in10, in21); + let t36 = circuit_add(t34, t35); // Fp2 mul imag part end + + let modulus = get_BN254_modulus(); // BN254 prime field modulus + + let mut circuit_inputs = (t1, t0, t9, t12, t15, t18, t21, t24, t27, t30, t33, t36).new_inputs(); + // Prefill constants: + + circuit_inputs = circuit_inputs + .next_span(E12T_FROBENIUS_CUBE_BN254_CONSTANTS.span()); // in0 - in10 + + // Fill inputs: + circuit_inputs = circuit_inputs.next_2(M.c0b0a0); // in11 + circuit_inputs = circuit_inputs.next_2(M.c0b0a1); // in12 + circuit_inputs = circuit_inputs.next_2(M.c0b1a0); // in13 + circuit_inputs = circuit_inputs.next_2(M.c0b1a1); // in14 + circuit_inputs = circuit_inputs.next_2(M.c0b2a0); // in15 + circuit_inputs = circuit_inputs.next_2(M.c0b2a1); // in16 + circuit_inputs = circuit_inputs.next_2(M.c1b0a0); // in17 + circuit_inputs = circuit_inputs.next_2(M.c1b0a1); // in18 + circuit_inputs = circuit_inputs.next_2(M.c1b1a0); // in19 + circuit_inputs = circuit_inputs.next_2(M.c1b1a1); // in20 + circuit_inputs = circuit_inputs.next_2(M.c1b2a0); // in21 + circuit_inputs = circuit_inputs.next_2(M.c1b2a1); // in22 + + let outputs = circuit_inputs.done_2().eval(modulus).unwrap(); + let res: E12T = E12T { + c0b0a0: outputs.get_output(t1), + c0b0a1: outputs.get_output(t0), + c0b1a0: outputs.get_output(t9), + c0b1a1: outputs.get_output(t12), + c0b2a0: outputs.get_output(t15), + c0b2a1: outputs.get_output(t18), + c1b0a0: outputs.get_output(t21), + c1b0a1: outputs.get_output(t24), + c1b1a0: outputs.get_output(t27), + c1b1a1: outputs.get_output(t30), + c1b2a0: outputs.get_output(t33), + c1b2a1: outputs.get_output(t36), + }; + return (res,); +} +const E12T_FROBENIUS_CUBE_BN254_CONSTANTS: [u384; 11] = [ + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { + limb0: 0x5d6942d37b746ee87bdcfb6d, + limb1: 0xbaff1c77959f25ac805ffd3d, + limb2: 0x856e078b755ef0a, + limb3: 0x0, + }, + u384 { + limb0: 0x98ff2631380cab2baaa586de, + limb1: 0xa9f30e6dec26094f0fdf31bf, + limb2: 0x4f1de41b3d1766f, + limb3: 0x0, + }, + u384 { + limb0: 0x75b06bcb0e1a92bc3ccbf066, + limb1: 0x19bee0f7b5b2444ee6330945, + limb2: 0xbc58c6611c08dab, + limb3: 0x0, + }, + u384 { + limb0: 0x737f96e55fe3ed9d730c239f, + limb1: 0xfeb0f6ef0cd21d04a44a9e08, + limb2: 0x23d5e999e1910a12, + limb3: 0x0, + }, + u384 { + limb0: 0xbe55d24ae86f7d391ed4a67f, + limb1: 0xefe9608cd0acaa90894cb38d, + limb2: 0x19dc81cfcc82e4bb, + limb3: 0x0, + }, + u384 { + limb0: 0x97d439ec7694aa2bf4c0c101, + limb1: 0x6cbeee33576139d7f03a5e3, + limb2: 0xabf8b60be77d73, + limb3: 0x0, + }, + u384 { + limb0: 0xbea870f45fcc8ad066dce9ed, + limb1: 0xdbf17f1dca9e5ea3bbd689a3, + limb2: 0x2a275b6d9896aa4c, + limb3: 0x0, + }, + u384 { + limb0: 0xd8cf6ebab94d0cb3b2594c64, + limb1: 0xb14b900e9507e9327600ecc7, + limb2: 0x28a411b634f09b8f, + limb3: 0x0, + }, + u384 { + limb0: 0x967c84a5ebde847076261b43, + limb1: 0x711699fa3b4d3f692ed68098, + limb2: 0x13c49044952c0905, + limb3: 0x0, + }, + u384 { + limb0: 0x200280211f25041384282499, + limb1: 0x9fb1b2282a48633d3e2ddaea, + limb2: 0x16db366a59b1dd0b, + limb3: 0x0, + }, +]; +#[inline(always)] +pub fn run_BN254_E12T_FROBENIUS_SQUARE_circuit(M: E12T) -> (E12T,) { + // CONSTANT stack + let in0 = CE::> {}; // 0x0 + let in1 = CE::> {}; // 0x30644e72e131a0295e6dd9e7e0acccb0c28f069fbb966e3de4bd44e5607cfd48 + let in2 = CE::> {}; // 0x59e26bcea0d48bacd4f263f1acdb5c4f5763473177fffffe + let in3 = CE::> {}; // 0x30644e72e131a0295e6dd9e7e0acccb0c28f069fbb966e3de4bd44e5607cfd49 + let in4 = CE::> {}; // -0x1 % p + let in5 = CE::> {}; // 0x59e26bcea0d48bacd4f263f1acdb5c4f5763473177ffffff + + // INPUT stack + let (in6, in7, in8) = (CE::> {}, CE::> {}, CE::> {}); + let (in9, in10, in11) = (CE::> {}, CE::> {}, CE::> {}); + let (in12, in13, in14) = (CE::> {}, CE::> {}, CE::> {}); + let (in15, in16, in17) = (CE::> {}, CE::> {}, CE::> {}); + let t0 = circuit_add(in6, in0); + let t1 = circuit_add(in7, in0); + let t2 = circuit_mul(in1, in8); + let t3 = circuit_mul(in1, in9); + let t4 = circuit_mul(in2, in10); + let t5 = circuit_mul(in2, in11); + let t6 = circuit_mul(in3, in12); + let t7 = circuit_mul(in3, in13); + let t8 = circuit_mul(in4, in14); + let t9 = circuit_mul(in4, in15); + let t10 = circuit_mul(in5, in16); + let t11 = circuit_mul(in5, in17); + + let modulus = get_BN254_modulus(); // BN254 prime field modulus + + let mut circuit_inputs = (t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11).new_inputs(); + // Prefill constants: + circuit_inputs = circuit_inputs.next_2([0x0, 0x0, 0x0, 0x0]); // in0 + circuit_inputs = circuit_inputs + .next_2( + [0xbb966e3de4bd44e5607cfd48, 0x5e6dd9e7e0acccb0c28f069f, 0x30644e72e131a029, 0x0], + ); // in1 + circuit_inputs = circuit_inputs + .next_2([0xacdb5c4f5763473177fffffe, 0x59e26bcea0d48bacd4f263f1, 0x0, 0x0]); // in2 + circuit_inputs = circuit_inputs + .next_2( + [0xbb966e3de4bd44e5607cfd49, 0x5e6dd9e7e0acccb0c28f069f, 0x30644e72e131a029, 0x0], + ); // in3 + circuit_inputs = circuit_inputs + .next_2( + [0x6871ca8d3c208c16d87cfd46, 0xb85045b68181585d97816a91, 0x30644e72e131a029, 0x0], + ); // in4 + circuit_inputs = circuit_inputs + .next_2([0xacdb5c4f5763473177ffffff, 0x59e26bcea0d48bacd4f263f1, 0x0, 0x0]); // in5 + // Fill inputs: + circuit_inputs = circuit_inputs.next_2(M.c0b0a0); // in6 + circuit_inputs = circuit_inputs.next_2(M.c0b0a1); // in7 + circuit_inputs = circuit_inputs.next_2(M.c0b1a0); // in8 + circuit_inputs = circuit_inputs.next_2(M.c0b1a1); // in9 + circuit_inputs = circuit_inputs.next_2(M.c0b2a0); // in10 + circuit_inputs = circuit_inputs.next_2(M.c0b2a1); // in11 + circuit_inputs = circuit_inputs.next_2(M.c1b0a0); // in12 + circuit_inputs = circuit_inputs.next_2(M.c1b0a1); // in13 + circuit_inputs = circuit_inputs.next_2(M.c1b1a0); // in14 + circuit_inputs = circuit_inputs.next_2(M.c1b1a1); // in15 + circuit_inputs = circuit_inputs.next_2(M.c1b2a0); // in16 + circuit_inputs = circuit_inputs.next_2(M.c1b2a1); // in17 + + let outputs = circuit_inputs.done_2().eval(modulus).unwrap(); + let res: E12T = E12T { + c0b0a0: outputs.get_output(t0), + c0b0a1: outputs.get_output(t1), + c0b1a0: outputs.get_output(t2), + c0b1a1: outputs.get_output(t3), + c0b2a0: outputs.get_output(t4), + c0b2a1: outputs.get_output(t5), + c1b0a0: outputs.get_output(t6), + c1b0a1: outputs.get_output(t7), + c1b1a0: outputs.get_output(t8), + c1b1a1: outputs.get_output(t9), + c1b2a0: outputs.get_output(t10), + c1b2a1: outputs.get_output(t11), + }; + return (res,); +} +#[inline(always)] +pub fn run_BN254_E12T_FROBENIUS_circuit(M: E12T) -> (E12T,) { + // CONSTANT stack + let in0 = CE::> {}; // 0x0 + let in1 = CE::> {}; // 0x2fb347984f7911f74c0bec3cf559b143b78cc310c2c3330c99e39557176f553d + let in2 = CE::> {}; // 0x16c9e55061ebae204ba4cc8bd75a079432ae2a1d0b7c9dce1665d51c640fcba2 + let in3 = CE::> {}; // 0x5b54f5e64eea80180f3c0b75a181e84d33365f7be94ec72848a1f55921ea762 + let in4 = CE::> {}; // 0x2c145edbe7fd8aee9f3a80b03b0b1c923685d2ea1bdec763c13b4711cd2b8126 + let in5 = CE::> {}; // 0x1284b71c2865a7dfe8b99fdd76e68b605c521e08292f2176d60b35dadcc9e470 + let in6 = CE::> {}; // 0x246996f3b4fae7e6a6327cfe12150b8e747992778eeec7e5ca5cf05f80f362ac + let in7 = CE::> {}; // 0x63cf305489af5dcdc5ec698b6e2f9b9dbaae0eda9c95998dc54014671a0135a + let in8 = CE::> {}; // 0x7c03cbcac41049a0704b5a7ec796f2b21807dc98fa25bd282d37f632623b0e3 + let in9 = CE::> {}; // 0x183c1e74f798649e93a3661a4353ff4425c459b55aa1bd32ea2c810eab7692f + let in10 = CE::< + CI<10>, + > {}; // 0x12acf2ca76fd0675a27fb246c7729f7db080cb99678e2ac024c6b8ee6e0c2c4b + + // INPUT stack + let (in11, in12, in13) = (CE::> {}, CE::> {}, CE::> {}); + let (in14, in15, in16) = (CE::> {}, CE::> {}, CE::> {}); + let (in17, in18, in19) = (CE::> {}, CE::> {}, CE::> {}); + let (in20, in21, in22) = (CE::> {}, CE::> {}, CE::> {}); + let t0 = circuit_sub(in0, in12); + let t1 = circuit_add(in11, in0); + let t2 = circuit_sub(in0, in14); + let t3 = circuit_sub(in0, in16); + let t4 = circuit_sub(in0, in18); + let t5 = circuit_sub(in0, in20); + let t6 = circuit_sub(in0, in22); + let t7 = circuit_mul(in1, in13); // Fp2 mul start + let t8 = circuit_mul(in2, t2); + let t9 = circuit_sub(t7, t8); // Fp2 mul real part end + let t10 = circuit_mul(in1, t2); + let t11 = circuit_mul(in2, in13); + let t12 = circuit_add(t10, t11); // Fp2 mul imag part end + let t13 = circuit_mul(in3, in15); // Fp2 mul start + let t14 = circuit_mul(in4, t3); + let t15 = circuit_sub(t13, t14); // Fp2 mul real part end + let t16 = circuit_mul(in3, t3); + let t17 = circuit_mul(in4, in15); + let t18 = circuit_add(t16, t17); // Fp2 mul imag part end + let t19 = circuit_mul(in5, in17); // Fp2 mul start + let t20 = circuit_mul(in6, t4); + let t21 = circuit_sub(t19, t20); // Fp2 mul real part end + let t22 = circuit_mul(in5, t4); + let t23 = circuit_mul(in6, in17); + let t24 = circuit_add(t22, t23); // Fp2 mul imag part end + let t25 = circuit_mul(in7, in19); // Fp2 mul start + let t26 = circuit_mul(in8, t5); + let t27 = circuit_sub(t25, t26); // Fp2 mul real part end + let t28 = circuit_mul(in7, t5); + let t29 = circuit_mul(in8, in19); + let t30 = circuit_add(t28, t29); // Fp2 mul imag part end + let t31 = circuit_mul(in9, in21); // Fp2 mul start + let t32 = circuit_mul(in10, t6); + let t33 = circuit_sub(t31, t32); // Fp2 mul real part end + let t34 = circuit_mul(in9, t6); + let t35 = circuit_mul(in10, in21); + let t36 = circuit_add(t34, t35); // Fp2 mul imag part end + + let modulus = get_BN254_modulus(); // BN254 prime field modulus + + let mut circuit_inputs = (t1, t0, t9, t12, t15, t18, t21, t24, t27, t30, t33, t36).new_inputs(); + // Prefill constants: + + circuit_inputs = circuit_inputs.next_span(E12T_FROBENIUS_BN254_CONSTANTS.span()); // in0 - in10 + + // Fill inputs: + circuit_inputs = circuit_inputs.next_2(M.c0b0a0); // in11 + circuit_inputs = circuit_inputs.next_2(M.c0b0a1); // in12 + circuit_inputs = circuit_inputs.next_2(M.c0b1a0); // in13 + circuit_inputs = circuit_inputs.next_2(M.c0b1a1); // in14 + circuit_inputs = circuit_inputs.next_2(M.c0b2a0); // in15 + circuit_inputs = circuit_inputs.next_2(M.c0b2a1); // in16 + circuit_inputs = circuit_inputs.next_2(M.c1b0a0); // in17 + circuit_inputs = circuit_inputs.next_2(M.c1b0a1); // in18 + circuit_inputs = circuit_inputs.next_2(M.c1b1a0); // in19 + circuit_inputs = circuit_inputs.next_2(M.c1b1a1); // in20 + circuit_inputs = circuit_inputs.next_2(M.c1b2a0); // in21 + circuit_inputs = circuit_inputs.next_2(M.c1b2a1); // in22 + + let outputs = circuit_inputs.done_2().eval(modulus).unwrap(); + let res: E12T = E12T { + c0b0a0: outputs.get_output(t1), + c0b0a1: outputs.get_output(t0), + c0b1a0: outputs.get_output(t9), + c0b1a1: outputs.get_output(t12), + c0b2a0: outputs.get_output(t15), + c0b2a1: outputs.get_output(t18), + c1b0a0: outputs.get_output(t21), + c1b0a1: outputs.get_output(t24), + c1b1a0: outputs.get_output(t27), + c1b1a1: outputs.get_output(t30), + c1b2a0: outputs.get_output(t33), + c1b2a1: outputs.get_output(t36), + }; + return (res,); +} +const E12T_FROBENIUS_BN254_CONSTANTS: [u384; 11] = [ + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { + limb0: 0xc2c3330c99e39557176f553d, + limb1: 0x4c0bec3cf559b143b78cc310, + limb2: 0x2fb347984f7911f7, + limb3: 0x0, + }, + u384 { + limb0: 0xb7c9dce1665d51c640fcba2, + limb1: 0x4ba4cc8bd75a079432ae2a1d, + limb2: 0x16c9e55061ebae20, + limb3: 0x0, + }, + u384 { + limb0: 0xbe94ec72848a1f55921ea762, + limb1: 0x80f3c0b75a181e84d33365f7, + limb2: 0x5b54f5e64eea801, + limb3: 0x0, + }, + u384 { + limb0: 0x1bdec763c13b4711cd2b8126, + limb1: 0x9f3a80b03b0b1c923685d2ea, + limb2: 0x2c145edbe7fd8aee, + limb3: 0x0, + }, + u384 { + limb0: 0x292f2176d60b35dadcc9e470, + limb1: 0xe8b99fdd76e68b605c521e08, + limb2: 0x1284b71c2865a7df, + limb3: 0x0, + }, + u384 { + limb0: 0x8eeec7e5ca5cf05f80f362ac, + limb1: 0xa6327cfe12150b8e74799277, + limb2: 0x246996f3b4fae7e6, + limb3: 0x0, + }, + u384 { + limb0: 0xa9c95998dc54014671a0135a, + limb1: 0xdc5ec698b6e2f9b9dbaae0ed, + limb2: 0x63cf305489af5dc, + limb3: 0x0, + }, + u384 { + limb0: 0x8fa25bd282d37f632623b0e3, + limb1: 0x704b5a7ec796f2b21807dc9, + limb2: 0x7c03cbcac41049a, + limb3: 0x0, + }, + u384 { + limb0: 0x55aa1bd32ea2c810eab7692f, + limb1: 0xe93a3661a4353ff4425c459b, + limb2: 0x183c1e74f798649, + limb3: 0x0, + }, + u384 { + limb0: 0x678e2ac024c6b8ee6e0c2c4b, + limb1: 0xa27fb246c7729f7db080cb99, + limb2: 0x12acf2ca76fd0675, + limb3: 0x0, + }, +]; +#[inline(always)] +pub fn run_BN254_E12T_INVERSE_circuit(M: E12T) -> (E12T,) { + // CONSTANT stack + let in0 = CE::> {}; // 0xa + let in1 = CE::> {}; // 0x9 + let in2 = CE::> {}; // 0x0 + + // INPUT stack + let (in3, in4, in5) = (CE::> {}, CE::> {}, CE::> {}); + let (in6, in7, in8) = (CE::> {}, CE::> {}, CE::> {}); + let (in9, in10, in11) = (CE::> {}, CE::> {}, CE::> {}); + let (in12, in13, in14) = (CE::> {}, CE::> {}, CE::> {}); + let t0 = circuit_mul(in3, in5); // Fp2 mul start + let t1 = circuit_mul(in4, in6); + let t2 = circuit_sub(t0, t1); // Fp2 mul real part end + let t3 = circuit_mul(in3, in6); + let t4 = circuit_mul(in4, in5); + let t5 = circuit_add(t3, t4); // Fp2 mul imag part end + let t6 = circuit_add(t2, t2); // Fp2 add coeff 0/1 + let t7 = circuit_add(t5, t5); // Fp2 add coeff 1/1 + let t8 = circuit_add(in7, in8); + let t9 = circuit_sub(in7, in8); + let t10 = circuit_mul(t8, t9); + let t11 = circuit_mul(in7, in8); + let t12 = circuit_add(t11, t11); + let t13 = circuit_add(t10, t12); + let t14 = circuit_mul(t13, in0); + let t15 = circuit_mul(t10, in1); + let t16 = circuit_sub(t15, t12); + let t17 = circuit_sub(t14, t15); + let t18 = circuit_sub(t17, t12); + let t19 = circuit_add(t16, t6); // Fp2 add coeff 0/1 + let t20 = circuit_add(t18, t7); // Fp2 add coeff 1/1 + let t21 = circuit_sub(t6, t10); // Fp2 sub coeff 0/1 + let t22 = circuit_sub(t7, t12); // Fp2 sub coeff 1/1 + let t23 = circuit_add(in3, in4); + let t24 = circuit_sub(in3, in4); + let t25 = circuit_mul(t23, t24); + let t26 = circuit_mul(in3, in4); + let t27 = circuit_add(t26, t26); + let t28 = circuit_sub(in3, in5); // Fp2 sub coeff 0/1 + let t29 = circuit_sub(in4, in6); // Fp2 sub coeff 1/1 + let t30 = circuit_add(t28, in7); // Fp2 add coeff 0/1 + let t31 = circuit_add(t29, in8); // Fp2 add coeff 1/1 + let t32 = circuit_mul(in5, in7); // Fp2 mul start + let t33 = circuit_mul(in6, in8); + let t34 = circuit_sub(t32, t33); // Fp2 mul real part end + let t35 = circuit_mul(in5, in8); + let t36 = circuit_mul(in6, in7); + let t37 = circuit_add(t35, t36); // Fp2 mul imag part end + let t38 = circuit_add(t34, t34); // Fp2 add coeff 0/1 + let t39 = circuit_add(t37, t37); // Fp2 add coeff 1/1 + let t40 = circuit_add(t30, t31); + let t41 = circuit_sub(t30, t31); + let t42 = circuit_mul(t40, t41); + let t43 = circuit_mul(t30, t31); + let t44 = circuit_add(t43, t43); + let t45 = circuit_add(t38, t39); + let t46 = circuit_mul(t45, in0); + let t47 = circuit_mul(t38, in1); + let t48 = circuit_sub(t47, t39); + let t49 = circuit_sub(t46, t47); + let t50 = circuit_sub(t49, t39); + let t51 = circuit_add(t48, t25); // Fp2 add coeff 0/1 + let t52 = circuit_add(t50, t27); // Fp2 add coeff 1/1 + let t53 = circuit_add(t21, t42); // Fp2 add coeff 0/1 + let t54 = circuit_add(t22, t44); // Fp2 add coeff 1/1 + let t55 = circuit_add(t53, t38); // Fp2 add coeff 0/1 + let t56 = circuit_add(t54, t39); // Fp2 add coeff 1/1 + let t57 = circuit_sub(t55, t25); // Fp2 sub coeff 0/1 + let t58 = circuit_sub(t56, t27); // Fp2 sub coeff 1/1 + let t59 = circuit_mul(in9, in11); // Fp2 mul start + let t60 = circuit_mul(in10, in12); + let t61 = circuit_sub(t59, t60); // Fp2 mul real part end + let t62 = circuit_mul(in9, in12); + let t63 = circuit_mul(in10, in11); + let t64 = circuit_add(t62, t63); // Fp2 mul imag part end + let t65 = circuit_add(t61, t61); // Fp2 add coeff 0/1 + let t66 = circuit_add(t64, t64); // Fp2 add coeff 1/1 + let t67 = circuit_add(in13, in14); + let t68 = circuit_sub(in13, in14); + let t69 = circuit_mul(t67, t68); + let t70 = circuit_mul(in13, in14); + let t71 = circuit_add(t70, t70); + let t72 = circuit_add(t69, t71); + let t73 = circuit_mul(t72, in0); + let t74 = circuit_mul(t69, in1); + let t75 = circuit_sub(t74, t71); + let t76 = circuit_sub(t73, t74); + let t77 = circuit_sub(t76, t71); + let t78 = circuit_add(t75, t65); // Fp2 add coeff 0/1 + let t79 = circuit_add(t77, t66); // Fp2 add coeff 1/1 + let t80 = circuit_sub(t65, t69); // Fp2 sub coeff 0/1 + let t81 = circuit_sub(t66, t71); // Fp2 sub coeff 1/1 + let t82 = circuit_add(in9, in10); + let t83 = circuit_sub(in9, in10); + let t84 = circuit_mul(t82, t83); + let t85 = circuit_mul(in9, in10); + let t86 = circuit_add(t85, t85); + let t87 = circuit_sub(in9, in11); // Fp2 sub coeff 0/1 + let t88 = circuit_sub(in10, in12); // Fp2 sub coeff 1/1 + let t89 = circuit_add(t87, in13); // Fp2 add coeff 0/1 + let t90 = circuit_add(t88, in14); // Fp2 add coeff 1/1 + let t91 = circuit_mul(in11, in13); // Fp2 mul start + let t92 = circuit_mul(in12, in14); + let t93 = circuit_sub(t91, t92); // Fp2 mul real part end + let t94 = circuit_mul(in11, in14); + let t95 = circuit_mul(in12, in13); + let t96 = circuit_add(t94, t95); // Fp2 mul imag part end + let t97 = circuit_add(t93, t93); // Fp2 add coeff 0/1 + let t98 = circuit_add(t96, t96); // Fp2 add coeff 1/1 + let t99 = circuit_add(t89, t90); + let t100 = circuit_sub(t89, t90); + let t101 = circuit_mul(t99, t100); + let t102 = circuit_mul(t89, t90); + let t103 = circuit_add(t102, t102); + let t104 = circuit_add(t97, t98); + let t105 = circuit_mul(t104, in0); + let t106 = circuit_mul(t97, in1); + let t107 = circuit_sub(t106, t98); + let t108 = circuit_sub(t105, t106); + let t109 = circuit_sub(t108, t98); + let t110 = circuit_add(t107, t84); // Fp2 add coeff 0/1 + let t111 = circuit_add(t109, t86); // Fp2 add coeff 1/1 + let t112 = circuit_add(t80, t101); // Fp2 add coeff 0/1 + let t113 = circuit_add(t81, t103); // Fp2 add coeff 1/1 + let t114 = circuit_add(t112, t97); // Fp2 add coeff 0/1 + let t115 = circuit_add(t113, t98); // Fp2 add coeff 1/1 + let t116 = circuit_sub(t114, t84); // Fp2 sub coeff 0/1 + let t117 = circuit_sub(t115, t86); // Fp2 sub coeff 1/1 + let t118 = circuit_add(t116, t117); + let t119 = circuit_mul(t118, in0); + let t120 = circuit_mul(t116, in1); + let t121 = circuit_sub(t120, t117); + let t122 = circuit_sub(t119, t120); + let t123 = circuit_sub(t122, t117); + let t124 = circuit_sub(t51, t121); // Fp6 sub coeff 0/5 + let t125 = circuit_sub(t52, t123); // Fp6 sub coeff 1/5 + let t126 = circuit_sub(t19, t110); // Fp6 sub coeff 2/5 + let t127 = circuit_sub(t20, t111); // Fp6 sub coeff 3/5 + let t128 = circuit_sub(t57, t78); // Fp6 sub coeff 4/5 + let t129 = circuit_sub(t58, t79); // Fp6 sub coeff 5/5 + let t130 = circuit_add(t124, t125); + let t131 = circuit_sub(t124, t125); + let t132 = circuit_mul(t130, t131); + let t133 = circuit_mul(t124, t125); + let t134 = circuit_add(t133, t133); + let t135 = circuit_add(t126, t127); + let t136 = circuit_sub(t126, t127); + let t137 = circuit_mul(t135, t136); + let t138 = circuit_mul(t126, t127); + let t139 = circuit_add(t138, t138); + let t140 = circuit_add(t128, t129); + let t141 = circuit_sub(t128, t129); + let t142 = circuit_mul(t140, t141); + let t143 = circuit_mul(t128, t129); + let t144 = circuit_add(t143, t143); + let t145 = circuit_mul(t124, t126); // Fp2 mul start + let t146 = circuit_mul(t125, t127); + let t147 = circuit_sub(t145, t146); // Fp2 mul real part end + let t148 = circuit_mul(t124, t127); + let t149 = circuit_mul(t125, t126); + let t150 = circuit_add(t148, t149); // Fp2 mul imag part end + let t151 = circuit_mul(t124, t128); // Fp2 mul start + let t152 = circuit_mul(t125, t129); + let t153 = circuit_sub(t151, t152); // Fp2 mul real part end + let t154 = circuit_mul(t124, t129); + let t155 = circuit_mul(t125, t128); + let t156 = circuit_add(t154, t155); // Fp2 mul imag part end + let t157 = circuit_mul(t126, t128); // Fp2 mul start + let t158 = circuit_mul(t127, t129); + let t159 = circuit_sub(t157, t158); // Fp2 mul real part end + let t160 = circuit_mul(t126, t129); + let t161 = circuit_mul(t127, t128); + let t162 = circuit_add(t160, t161); // Fp2 mul imag part end + let t163 = circuit_add(t159, t162); + let t164 = circuit_mul(t163, in0); + let t165 = circuit_mul(t159, in1); + let t166 = circuit_sub(t165, t162); + let t167 = circuit_sub(t164, t165); + let t168 = circuit_sub(t167, t162); + let t169 = circuit_sub(in2, t166); // Fp2 neg coeff 0/1 + let t170 = circuit_sub(in2, t168); // Fp2 neg coeff 1/1 + let t171 = circuit_add(t169, t132); // Fp2 add coeff 0/1 + let t172 = circuit_add(t170, t134); // Fp2 add coeff 1/1 + let t173 = circuit_add(t142, t144); + let t174 = circuit_mul(t173, in0); + let t175 = circuit_mul(t142, in1); + let t176 = circuit_sub(t175, t144); + let t177 = circuit_sub(t174, t175); + let t178 = circuit_sub(t177, t144); + let t179 = circuit_sub(t176, t147); // Fp2 sub coeff 0/1 + let t180 = circuit_sub(t178, t150); // Fp2 sub coeff 1/1 + let t181 = circuit_sub(t137, t153); // Fp2 sub coeff 0/1 + let t182 = circuit_sub(t139, t156); // Fp2 sub coeff 1/1 + let t183 = circuit_mul(t124, t171); // Fp2 mul start + let t184 = circuit_mul(t125, t172); + let t185 = circuit_sub(t183, t184); // Fp2 mul real part end + let t186 = circuit_mul(t124, t172); + let t187 = circuit_mul(t125, t171); + let t188 = circuit_add(t186, t187); // Fp2 mul imag part end + let t189 = circuit_mul(t128, t179); // Fp2 mul start + let t190 = circuit_mul(t129, t180); + let t191 = circuit_sub(t189, t190); // Fp2 mul real part end + let t192 = circuit_mul(t128, t180); + let t193 = circuit_mul(t129, t179); + let t194 = circuit_add(t192, t193); // Fp2 mul imag part end + let t195 = circuit_mul(t126, t181); // Fp2 mul start + let t196 = circuit_mul(t127, t182); + let t197 = circuit_sub(t195, t196); // Fp2 mul real part end + let t198 = circuit_mul(t126, t182); + let t199 = circuit_mul(t127, t181); + let t200 = circuit_add(t198, t199); // Fp2 mul imag part end + let t201 = circuit_add(t191, t197); // Fp2 add coeff 0/1 + let t202 = circuit_add(t194, t200); // Fp2 add coeff 1/1 + let t203 = circuit_add(t201, t202); + let t204 = circuit_mul(t203, in0); + let t205 = circuit_mul(t201, in1); + let t206 = circuit_sub(t205, t202); + let t207 = circuit_sub(t204, t205); + let t208 = circuit_sub(t207, t202); + let t209 = circuit_add(t185, t206); // Fp2 add coeff 0/1 + let t210 = circuit_add(t188, t208); // Fp2 add coeff 1/1 + let t211 = circuit_mul(t209, t209); // Fp2 Inv start + let t212 = circuit_mul(t210, t210); + let t213 = circuit_add(t211, t212); + let t214 = circuit_inverse(t213); + let t215 = circuit_mul(t209, t214); // Fp2 Inv real part end + let t216 = circuit_mul(t210, t214); + let t217 = circuit_sub(in2, t216); // Fp2 Inv imag part end + let t218 = circuit_mul(t171, t215); // Fp2 mul start + let t219 = circuit_mul(t172, t217); + let t220 = circuit_sub(t218, t219); // Fp2 mul real part end + let t221 = circuit_mul(t171, t217); + let t222 = circuit_mul(t172, t215); + let t223 = circuit_add(t221, t222); // Fp2 mul imag part end + let t224 = circuit_mul(t179, t215); // Fp2 mul start + let t225 = circuit_mul(t180, t217); + let t226 = circuit_sub(t224, t225); // Fp2 mul real part end + let t227 = circuit_mul(t179, t217); + let t228 = circuit_mul(t180, t215); + let t229 = circuit_add(t227, t228); // Fp2 mul imag part end + let t230 = circuit_mul(t181, t215); // Fp2 mul start + let t231 = circuit_mul(t182, t217); + let t232 = circuit_sub(t230, t231); // Fp2 mul real part end + let t233 = circuit_mul(t181, t217); + let t234 = circuit_mul(t182, t215); + let t235 = circuit_add(t233, t234); // Fp2 mul imag part end + let t236 = circuit_mul(in3, t220); // Fp2 mul start + let t237 = circuit_mul(in4, t223); + let t238 = circuit_sub(t236, t237); // Fp2 mul real part end + let t239 = circuit_mul(in3, t223); + let t240 = circuit_mul(in4, t220); + let t241 = circuit_add(t239, t240); // Fp2 mul imag part end + let t242 = circuit_mul(in5, t226); // Fp2 mul start + let t243 = circuit_mul(in6, t229); + let t244 = circuit_sub(t242, t243); // Fp2 mul real part end + let t245 = circuit_mul(in5, t229); + let t246 = circuit_mul(in6, t226); + let t247 = circuit_add(t245, t246); // Fp2 mul imag part end + let t248 = circuit_mul(in7, t232); // Fp2 mul start + let t249 = circuit_mul(in8, t235); + let t250 = circuit_sub(t248, t249); // Fp2 mul real part end + let t251 = circuit_mul(in7, t235); + let t252 = circuit_mul(in8, t232); + let t253 = circuit_add(t251, t252); // Fp2 mul imag part end + let t254 = circuit_add(in5, in7); // Fp2 add coeff 0/1 + let t255 = circuit_add(in6, in8); // Fp2 add coeff 1/1 + let t256 = circuit_add(t226, t232); // Fp2 add coeff 0/1 + let t257 = circuit_add(t229, t235); // Fp2 add coeff 1/1 + let t258 = circuit_mul(t254, t256); // Fp2 mul start + let t259 = circuit_mul(t255, t257); + let t260 = circuit_sub(t258, t259); // Fp2 mul real part end + let t261 = circuit_mul(t254, t257); + let t262 = circuit_mul(t255, t256); + let t263 = circuit_add(t261, t262); // Fp2 mul imag part end + let t264 = circuit_sub(t260, t244); // Fp2 sub coeff 0/1 + let t265 = circuit_sub(t263, t247); // Fp2 sub coeff 1/1 + let t266 = circuit_sub(t264, t250); // Fp2 sub coeff 0/1 + let t267 = circuit_sub(t265, t253); // Fp2 sub coeff 1/1 + let t268 = circuit_add(t266, t267); + let t269 = circuit_mul(t268, in0); + let t270 = circuit_mul(t266, in1); + let t271 = circuit_sub(t270, t267); + let t272 = circuit_sub(t269, t270); + let t273 = circuit_sub(t272, t267); + let t274 = circuit_add(t271, t238); // Fp2 add coeff 0/1 + let t275 = circuit_add(t273, t241); // Fp2 add coeff 1/1 + let t276 = circuit_add(in3, in5); // Fp2 add coeff 0/1 + let t277 = circuit_add(in4, in6); // Fp2 add coeff 1/1 + let t278 = circuit_add(t220, t226); // Fp2 add coeff 0/1 + let t279 = circuit_add(t223, t229); // Fp2 add coeff 1/1 + let t280 = circuit_mul(t276, t278); // Fp2 mul start + let t281 = circuit_mul(t277, t279); + let t282 = circuit_sub(t280, t281); // Fp2 mul real part end + let t283 = circuit_mul(t276, t279); + let t284 = circuit_mul(t277, t278); + let t285 = circuit_add(t283, t284); // Fp2 mul imag part end + let t286 = circuit_sub(t282, t238); // Fp2 sub coeff 0/1 + let t287 = circuit_sub(t285, t241); // Fp2 sub coeff 1/1 + let t288 = circuit_sub(t286, t244); // Fp2 sub coeff 0/1 + let t289 = circuit_sub(t287, t247); // Fp2 sub coeff 1/1 + let t290 = circuit_add(t250, t253); + let t291 = circuit_mul(t290, in0); + let t292 = circuit_mul(t250, in1); + let t293 = circuit_sub(t292, t253); + let t294 = circuit_sub(t291, t292); + let t295 = circuit_sub(t294, t253); + let t296 = circuit_add(t288, t293); // Fp2 add coeff 0/1 + let t297 = circuit_add(t289, t295); // Fp2 add coeff 1/1 + let t298 = circuit_add(in3, in7); // Fp2 add coeff 0/1 + let t299 = circuit_add(in4, in8); // Fp2 add coeff 1/1 + let t300 = circuit_add(t220, t232); // Fp2 add coeff 0/1 + let t301 = circuit_add(t223, t235); // Fp2 add coeff 1/1 + let t302 = circuit_mul(t300, t298); // Fp2 mul start + let t303 = circuit_mul(t301, t299); + let t304 = circuit_sub(t302, t303); // Fp2 mul real part end + let t305 = circuit_mul(t300, t299); + let t306 = circuit_mul(t301, t298); + let t307 = circuit_add(t305, t306); // Fp2 mul imag part end + let t308 = circuit_sub(t304, t238); // Fp2 sub coeff 0/1 + let t309 = circuit_sub(t307, t241); // Fp2 sub coeff 1/1 + let t310 = circuit_sub(t308, t250); // Fp2 sub coeff 0/1 + let t311 = circuit_sub(t309, t253); // Fp2 sub coeff 1/1 + let t312 = circuit_add(t310, t244); // Fp2 add coeff 0/1 + let t313 = circuit_add(t311, t247); // Fp2 add coeff 1/1 + let t314 = circuit_mul(in9, t220); // Fp2 mul start + let t315 = circuit_mul(in10, t223); + let t316 = circuit_sub(t314, t315); // Fp2 mul real part end + let t317 = circuit_mul(in9, t223); + let t318 = circuit_mul(in10, t220); + let t319 = circuit_add(t317, t318); // Fp2 mul imag part end + let t320 = circuit_mul(in11, t226); // Fp2 mul start + let t321 = circuit_mul(in12, t229); + let t322 = circuit_sub(t320, t321); // Fp2 mul real part end + let t323 = circuit_mul(in11, t229); + let t324 = circuit_mul(in12, t226); + let t325 = circuit_add(t323, t324); // Fp2 mul imag part end + let t326 = circuit_mul(in13, t232); // Fp2 mul start + let t327 = circuit_mul(in14, t235); + let t328 = circuit_sub(t326, t327); // Fp2 mul real part end + let t329 = circuit_mul(in13, t235); + let t330 = circuit_mul(in14, t232); + let t331 = circuit_add(t329, t330); // Fp2 mul imag part end + let t332 = circuit_add(in11, in13); // Fp2 add coeff 0/1 + let t333 = circuit_add(in12, in14); // Fp2 add coeff 1/1 + let t334 = circuit_add(t226, t232); // Fp2 add coeff 0/1 + let t335 = circuit_add(t229, t235); // Fp2 add coeff 1/1 + let t336 = circuit_mul(t332, t334); // Fp2 mul start + let t337 = circuit_mul(t333, t335); + let t338 = circuit_sub(t336, t337); // Fp2 mul real part end + let t339 = circuit_mul(t332, t335); + let t340 = circuit_mul(t333, t334); + let t341 = circuit_add(t339, t340); // Fp2 mul imag part end + let t342 = circuit_sub(t338, t322); // Fp2 sub coeff 0/1 + let t343 = circuit_sub(t341, t325); // Fp2 sub coeff 1/1 + let t344 = circuit_sub(t342, t328); // Fp2 sub coeff 0/1 + let t345 = circuit_sub(t343, t331); // Fp2 sub coeff 1/1 + let t346 = circuit_add(t344, t345); + let t347 = circuit_mul(t346, in0); + let t348 = circuit_mul(t344, in1); + let t349 = circuit_sub(t348, t345); + let t350 = circuit_sub(t347, t348); + let t351 = circuit_sub(t350, t345); + let t352 = circuit_add(t349, t316); // Fp2 add coeff 0/1 + let t353 = circuit_add(t351, t319); // Fp2 add coeff 1/1 + let t354 = circuit_add(in9, in11); // Fp2 add coeff 0/1 + let t355 = circuit_add(in10, in12); // Fp2 add coeff 1/1 + let t356 = circuit_add(t220, t226); // Fp2 add coeff 0/1 + let t357 = circuit_add(t223, t229); // Fp2 add coeff 1/1 + let t358 = circuit_mul(t354, t356); // Fp2 mul start + let t359 = circuit_mul(t355, t357); + let t360 = circuit_sub(t358, t359); // Fp2 mul real part end + let t361 = circuit_mul(t354, t357); + let t362 = circuit_mul(t355, t356); + let t363 = circuit_add(t361, t362); // Fp2 mul imag part end + let t364 = circuit_sub(t360, t316); // Fp2 sub coeff 0/1 + let t365 = circuit_sub(t363, t319); // Fp2 sub coeff 1/1 + let t366 = circuit_sub(t364, t322); // Fp2 sub coeff 0/1 + let t367 = circuit_sub(t365, t325); // Fp2 sub coeff 1/1 + let t368 = circuit_add(t328, t331); + let t369 = circuit_mul(t368, in0); + let t370 = circuit_mul(t328, in1); + let t371 = circuit_sub(t370, t331); + let t372 = circuit_sub(t369, t370); + let t373 = circuit_sub(t372, t331); + let t374 = circuit_add(t366, t371); // Fp2 add coeff 0/1 + let t375 = circuit_add(t367, t373); // Fp2 add coeff 1/1 + let t376 = circuit_add(in9, in13); // Fp2 add coeff 0/1 + let t377 = circuit_add(in10, in14); // Fp2 add coeff 1/1 + let t378 = circuit_add(t220, t232); // Fp2 add coeff 0/1 + let t379 = circuit_add(t223, t235); // Fp2 add coeff 1/1 + let t380 = circuit_mul(t378, t376); // Fp2 mul start + let t381 = circuit_mul(t379, t377); + let t382 = circuit_sub(t380, t381); // Fp2 mul real part end + let t383 = circuit_mul(t378, t377); + let t384 = circuit_mul(t379, t376); + let t385 = circuit_add(t383, t384); // Fp2 mul imag part end + let t386 = circuit_sub(t382, t316); // Fp2 sub coeff 0/1 + let t387 = circuit_sub(t385, t319); // Fp2 sub coeff 1/1 + let t388 = circuit_sub(t386, t328); // Fp2 sub coeff 0/1 + let t389 = circuit_sub(t387, t331); // Fp2 sub coeff 1/1 + let t390 = circuit_add(t388, t322); // Fp2 add coeff 0/1 + let t391 = circuit_add(t389, t325); // Fp2 add coeff 1/1 + let t392 = circuit_sub(in2, t352); // Fp6 neg coeff 0/5 + let t393 = circuit_sub(in2, t353); // Fp6 neg coeff 1/5 + let t394 = circuit_sub(in2, t374); // Fp6 neg coeff 2/5 + let t395 = circuit_sub(in2, t375); // Fp6 neg coeff 3/5 + let t396 = circuit_sub(in2, t390); // Fp6 neg coeff 4/5 + let t397 = circuit_sub(in2, t391); // Fp6 neg coeff 5/5 + + let modulus = get_BN254_modulus(); // BN254 prime field modulus + + let mut circuit_inputs = ( + t274, t275, t296, t297, t312, t313, t392, t393, t394, t395, t396, t397, + ) + .new_inputs(); + // Prefill constants: + circuit_inputs = circuit_inputs.next_2([0xa, 0x0, 0x0, 0x0]); // in0 + circuit_inputs = circuit_inputs.next_2([0x9, 0x0, 0x0, 0x0]); // in1 + circuit_inputs = circuit_inputs.next_2([0x0, 0x0, 0x0, 0x0]); // in2 + // Fill inputs: + circuit_inputs = circuit_inputs.next_2(M.c0b0a0); // in3 + circuit_inputs = circuit_inputs.next_2(M.c0b0a1); // in4 + circuit_inputs = circuit_inputs.next_2(M.c0b1a0); // in5 + circuit_inputs = circuit_inputs.next_2(M.c0b1a1); // in6 + circuit_inputs = circuit_inputs.next_2(M.c0b2a0); // in7 + circuit_inputs = circuit_inputs.next_2(M.c0b2a1); // in8 + circuit_inputs = circuit_inputs.next_2(M.c1b0a0); // in9 + circuit_inputs = circuit_inputs.next_2(M.c1b0a1); // in10 + circuit_inputs = circuit_inputs.next_2(M.c1b1a0); // in11 + circuit_inputs = circuit_inputs.next_2(M.c1b1a1); // in12 + circuit_inputs = circuit_inputs.next_2(M.c1b2a0); // in13 + circuit_inputs = circuit_inputs.next_2(M.c1b2a1); // in14 + + let outputs = circuit_inputs.done_2().eval(modulus).unwrap(); + let res: E12T = E12T { + c0b0a0: outputs.get_output(t274), + c0b0a1: outputs.get_output(t275), + c0b1a0: outputs.get_output(t296), + c0b1a1: outputs.get_output(t297), + c0b2a0: outputs.get_output(t312), + c0b2a1: outputs.get_output(t313), + c1b0a0: outputs.get_output(t392), + c1b0a1: outputs.get_output(t393), + c1b1a0: outputs.get_output(t394), + c1b1a1: outputs.get_output(t395), + c1b2a0: outputs.get_output(t396), + c1b2a1: outputs.get_output(t397), + }; + return (res,); +} +#[inline(always)] +pub fn run_BN254_E12T_MUL_circuit(X: E12T, Y: E12T) -> (E12T,) { + // CONSTANT stack + let in0 = CE::> {}; // 0xa + let in1 = CE::> {}; // 0x9 + + // INPUT stack + let (in2, in3, in4) = (CE::> {}, CE::> {}, CE::> {}); + let (in5, in6, in7) = (CE::> {}, CE::> {}, CE::> {}); + let (in8, in9, in10) = (CE::> {}, CE::> {}, CE::> {}); + let (in11, in12, in13) = (CE::> {}, CE::> {}, CE::> {}); + let (in14, in15, in16) = (CE::> {}, CE::> {}, CE::> {}); + let (in17, in18, in19) = (CE::> {}, CE::> {}, CE::> {}); + let (in20, in21, in22) = (CE::> {}, CE::> {}, CE::> {}); + let (in23, in24, in25) = (CE::> {}, CE::> {}, CE::> {}); + let t0 = circuit_add(in2, in8); // Fp6 add coeff 0/5 + let t1 = circuit_add(in3, in9); // Fp6 add coeff 1/5 + let t2 = circuit_add(in4, in10); // Fp6 add coeff 2/5 + let t3 = circuit_add(in5, in11); // Fp6 add coeff 3/5 + let t4 = circuit_add(in6, in12); // Fp6 add coeff 4/5 + let t5 = circuit_add(in7, in13); // Fp6 add coeff 5/5 + let t6 = circuit_add(in14, in20); // Fp6 add coeff 0/5 + let t7 = circuit_add(in15, in21); // Fp6 add coeff 1/5 + let t8 = circuit_add(in16, in22); // Fp6 add coeff 2/5 + let t9 = circuit_add(in17, in23); // Fp6 add coeff 3/5 + let t10 = circuit_add(in18, in24); // Fp6 add coeff 4/5 + let t11 = circuit_add(in19, in25); // Fp6 add coeff 5/5 + let t12 = circuit_mul(t0, t6); // Fp2 mul start + let t13 = circuit_mul(t1, t7); + let t14 = circuit_sub(t12, t13); // Fp2 mul real part end + let t15 = circuit_mul(t0, t7); + let t16 = circuit_mul(t1, t6); + let t17 = circuit_add(t15, t16); // Fp2 mul imag part end + let t18 = circuit_mul(t2, t8); // Fp2 mul start + let t19 = circuit_mul(t3, t9); + let t20 = circuit_sub(t18, t19); // Fp2 mul real part end + let t21 = circuit_mul(t2, t9); + let t22 = circuit_mul(t3, t8); + let t23 = circuit_add(t21, t22); // Fp2 mul imag part end + let t24 = circuit_mul(t4, t10); // Fp2 mul start + let t25 = circuit_mul(t5, t11); + let t26 = circuit_sub(t24, t25); // Fp2 mul real part end + let t27 = circuit_mul(t4, t11); + let t28 = circuit_mul(t5, t10); + let t29 = circuit_add(t27, t28); // Fp2 mul imag part end + let t30 = circuit_add(t2, t4); // Fp2 add coeff 0/1 + let t31 = circuit_add(t3, t5); // Fp2 add coeff 1/1 + let t32 = circuit_add(t8, t10); // Fp2 add coeff 0/1 + let t33 = circuit_add(t9, t11); // Fp2 add coeff 1/1 + let t34 = circuit_mul(t30, t32); // Fp2 mul start + let t35 = circuit_mul(t31, t33); + let t36 = circuit_sub(t34, t35); // Fp2 mul real part end + let t37 = circuit_mul(t30, t33); + let t38 = circuit_mul(t31, t32); + let t39 = circuit_add(t37, t38); // Fp2 mul imag part end + let t40 = circuit_sub(t36, t20); // Fp2 sub coeff 0/1 + let t41 = circuit_sub(t39, t23); // Fp2 sub coeff 1/1 + let t42 = circuit_sub(t40, t26); // Fp2 sub coeff 0/1 + let t43 = circuit_sub(t41, t29); // Fp2 sub coeff 1/1 + let t44 = circuit_add(t42, t43); + let t45 = circuit_mul(t44, in0); + let t46 = circuit_mul(t42, in1); + let t47 = circuit_sub(t46, t43); + let t48 = circuit_sub(t45, t46); + let t49 = circuit_sub(t48, t43); + let t50 = circuit_add(t47, t14); // Fp2 add coeff 0/1 + let t51 = circuit_add(t49, t17); // Fp2 add coeff 1/1 + let t52 = circuit_add(t0, t2); // Fp2 add coeff 0/1 + let t53 = circuit_add(t1, t3); // Fp2 add coeff 1/1 + let t54 = circuit_add(t6, t8); // Fp2 add coeff 0/1 + let t55 = circuit_add(t7, t9); // Fp2 add coeff 1/1 + let t56 = circuit_mul(t52, t54); // Fp2 mul start + let t57 = circuit_mul(t53, t55); + let t58 = circuit_sub(t56, t57); // Fp2 mul real part end + let t59 = circuit_mul(t52, t55); + let t60 = circuit_mul(t53, t54); + let t61 = circuit_add(t59, t60); // Fp2 mul imag part end + let t62 = circuit_sub(t58, t14); // Fp2 sub coeff 0/1 + let t63 = circuit_sub(t61, t17); // Fp2 sub coeff 1/1 + let t64 = circuit_sub(t62, t20); // Fp2 sub coeff 0/1 + let t65 = circuit_sub(t63, t23); // Fp2 sub coeff 1/1 + let t66 = circuit_add(t26, t29); + let t67 = circuit_mul(t66, in0); + let t68 = circuit_mul(t26, in1); + let t69 = circuit_sub(t68, t29); + let t70 = circuit_sub(t67, t68); + let t71 = circuit_sub(t70, t29); + let t72 = circuit_add(t64, t69); // Fp2 add coeff 0/1 + let t73 = circuit_add(t65, t71); // Fp2 add coeff 1/1 + let t74 = circuit_add(t0, t4); // Fp2 add coeff 0/1 + let t75 = circuit_add(t1, t5); // Fp2 add coeff 1/1 + let t76 = circuit_add(t6, t10); // Fp2 add coeff 0/1 + let t77 = circuit_add(t7, t11); // Fp2 add coeff 1/1 + let t78 = circuit_mul(t76, t74); // Fp2 mul start + let t79 = circuit_mul(t77, t75); + let t80 = circuit_sub(t78, t79); // Fp2 mul real part end + let t81 = circuit_mul(t76, t75); + let t82 = circuit_mul(t77, t74); + let t83 = circuit_add(t81, t82); // Fp2 mul imag part end + let t84 = circuit_sub(t80, t14); // Fp2 sub coeff 0/1 + let t85 = circuit_sub(t83, t17); // Fp2 sub coeff 1/1 + let t86 = circuit_sub(t84, t26); // Fp2 sub coeff 0/1 + let t87 = circuit_sub(t85, t29); // Fp2 sub coeff 1/1 + let t88 = circuit_add(t86, t20); // Fp2 add coeff 0/1 + let t89 = circuit_add(t87, t23); // Fp2 add coeff 1/1 + let t90 = circuit_mul(in2, in14); // Fp2 mul start + let t91 = circuit_mul(in3, in15); + let t92 = circuit_sub(t90, t91); // Fp2 mul real part end + let t93 = circuit_mul(in2, in15); + let t94 = circuit_mul(in3, in14); + let t95 = circuit_add(t93, t94); // Fp2 mul imag part end + let t96 = circuit_mul(in4, in16); // Fp2 mul start + let t97 = circuit_mul(in5, in17); + let t98 = circuit_sub(t96, t97); // Fp2 mul real part end + let t99 = circuit_mul(in4, in17); + let t100 = circuit_mul(in5, in16); + let t101 = circuit_add(t99, t100); // Fp2 mul imag part end + let t102 = circuit_mul(in6, in18); // Fp2 mul start + let t103 = circuit_mul(in7, in19); + let t104 = circuit_sub(t102, t103); // Fp2 mul real part end + let t105 = circuit_mul(in6, in19); + let t106 = circuit_mul(in7, in18); + let t107 = circuit_add(t105, t106); // Fp2 mul imag part end + let t108 = circuit_add(in4, in6); // Fp2 add coeff 0/1 + let t109 = circuit_add(in5, in7); // Fp2 add coeff 1/1 + let t110 = circuit_add(in16, in18); // Fp2 add coeff 0/1 + let t111 = circuit_add(in17, in19); // Fp2 add coeff 1/1 + let t112 = circuit_mul(t108, t110); // Fp2 mul start + let t113 = circuit_mul(t109, t111); + let t114 = circuit_sub(t112, t113); // Fp2 mul real part end + let t115 = circuit_mul(t108, t111); + let t116 = circuit_mul(t109, t110); + let t117 = circuit_add(t115, t116); // Fp2 mul imag part end + let t118 = circuit_sub(t114, t98); // Fp2 sub coeff 0/1 + let t119 = circuit_sub(t117, t101); // Fp2 sub coeff 1/1 + let t120 = circuit_sub(t118, t104); // Fp2 sub coeff 0/1 + let t121 = circuit_sub(t119, t107); // Fp2 sub coeff 1/1 + let t122 = circuit_add(t120, t121); + let t123 = circuit_mul(t122, in0); + let t124 = circuit_mul(t120, in1); + let t125 = circuit_sub(t124, t121); + let t126 = circuit_sub(t123, t124); + let t127 = circuit_sub(t126, t121); + let t128 = circuit_add(t125, t92); // Fp2 add coeff 0/1 + let t129 = circuit_add(t127, t95); // Fp2 add coeff 1/1 + let t130 = circuit_add(in2, in4); // Fp2 add coeff 0/1 + let t131 = circuit_add(in3, in5); // Fp2 add coeff 1/1 + let t132 = circuit_add(in14, in16); // Fp2 add coeff 0/1 + let t133 = circuit_add(in15, in17); // Fp2 add coeff 1/1 + let t134 = circuit_mul(t130, t132); // Fp2 mul start + let t135 = circuit_mul(t131, t133); + let t136 = circuit_sub(t134, t135); // Fp2 mul real part end + let t137 = circuit_mul(t130, t133); + let t138 = circuit_mul(t131, t132); + let t139 = circuit_add(t137, t138); // Fp2 mul imag part end + let t140 = circuit_sub(t136, t92); // Fp2 sub coeff 0/1 + let t141 = circuit_sub(t139, t95); // Fp2 sub coeff 1/1 + let t142 = circuit_sub(t140, t98); // Fp2 sub coeff 0/1 + let t143 = circuit_sub(t141, t101); // Fp2 sub coeff 1/1 + let t144 = circuit_add(t104, t107); + let t145 = circuit_mul(t144, in0); + let t146 = circuit_mul(t104, in1); + let t147 = circuit_sub(t146, t107); + let t148 = circuit_sub(t145, t146); + let t149 = circuit_sub(t148, t107); + let t150 = circuit_add(t142, t147); // Fp2 add coeff 0/1 + let t151 = circuit_add(t143, t149); // Fp2 add coeff 1/1 + let t152 = circuit_add(in2, in6); // Fp2 add coeff 0/1 + let t153 = circuit_add(in3, in7); // Fp2 add coeff 1/1 + let t154 = circuit_add(in14, in18); // Fp2 add coeff 0/1 + let t155 = circuit_add(in15, in19); // Fp2 add coeff 1/1 + let t156 = circuit_mul(t154, t152); // Fp2 mul start + let t157 = circuit_mul(t155, t153); + let t158 = circuit_sub(t156, t157); // Fp2 mul real part end + let t159 = circuit_mul(t154, t153); + let t160 = circuit_mul(t155, t152); + let t161 = circuit_add(t159, t160); // Fp2 mul imag part end + let t162 = circuit_sub(t158, t92); // Fp2 sub coeff 0/1 + let t163 = circuit_sub(t161, t95); // Fp2 sub coeff 1/1 + let t164 = circuit_sub(t162, t104); // Fp2 sub coeff 0/1 + let t165 = circuit_sub(t163, t107); // Fp2 sub coeff 1/1 + let t166 = circuit_add(t164, t98); // Fp2 add coeff 0/1 + let t167 = circuit_add(t165, t101); // Fp2 add coeff 1/1 + let t168 = circuit_mul(in8, in20); // Fp2 mul start + let t169 = circuit_mul(in9, in21); + let t170 = circuit_sub(t168, t169); // Fp2 mul real part end + let t171 = circuit_mul(in8, in21); + let t172 = circuit_mul(in9, in20); + let t173 = circuit_add(t171, t172); // Fp2 mul imag part end + let t174 = circuit_mul(in10, in22); // Fp2 mul start + let t175 = circuit_mul(in11, in23); + let t176 = circuit_sub(t174, t175); // Fp2 mul real part end + let t177 = circuit_mul(in10, in23); + let t178 = circuit_mul(in11, in22); + let t179 = circuit_add(t177, t178); // Fp2 mul imag part end + let t180 = circuit_mul(in12, in24); // Fp2 mul start + let t181 = circuit_mul(in13, in25); + let t182 = circuit_sub(t180, t181); // Fp2 mul real part end + let t183 = circuit_mul(in12, in25); + let t184 = circuit_mul(in13, in24); + let t185 = circuit_add(t183, t184); // Fp2 mul imag part end + let t186 = circuit_add(in10, in12); // Fp2 add coeff 0/1 + let t187 = circuit_add(in11, in13); // Fp2 add coeff 1/1 + let t188 = circuit_add(in22, in24); // Fp2 add coeff 0/1 + let t189 = circuit_add(in23, in25); // Fp2 add coeff 1/1 + let t190 = circuit_mul(t186, t188); // Fp2 mul start + let t191 = circuit_mul(t187, t189); + let t192 = circuit_sub(t190, t191); // Fp2 mul real part end + let t193 = circuit_mul(t186, t189); + let t194 = circuit_mul(t187, t188); + let t195 = circuit_add(t193, t194); // Fp2 mul imag part end + let t196 = circuit_sub(t192, t176); // Fp2 sub coeff 0/1 + let t197 = circuit_sub(t195, t179); // Fp2 sub coeff 1/1 + let t198 = circuit_sub(t196, t182); // Fp2 sub coeff 0/1 + let t199 = circuit_sub(t197, t185); // Fp2 sub coeff 1/1 + let t200 = circuit_add(t198, t199); + let t201 = circuit_mul(t200, in0); + let t202 = circuit_mul(t198, in1); + let t203 = circuit_sub(t202, t199); + let t204 = circuit_sub(t201, t202); + let t205 = circuit_sub(t204, t199); + let t206 = circuit_add(t203, t170); // Fp2 add coeff 0/1 + let t207 = circuit_add(t205, t173); // Fp2 add coeff 1/1 + let t208 = circuit_add(in8, in10); // Fp2 add coeff 0/1 + let t209 = circuit_add(in9, in11); // Fp2 add coeff 1/1 + let t210 = circuit_add(in20, in22); // Fp2 add coeff 0/1 + let t211 = circuit_add(in21, in23); // Fp2 add coeff 1/1 + let t212 = circuit_mul(t208, t210); // Fp2 mul start + let t213 = circuit_mul(t209, t211); + let t214 = circuit_sub(t212, t213); // Fp2 mul real part end + let t215 = circuit_mul(t208, t211); + let t216 = circuit_mul(t209, t210); + let t217 = circuit_add(t215, t216); // Fp2 mul imag part end + let t218 = circuit_sub(t214, t170); // Fp2 sub coeff 0/1 + let t219 = circuit_sub(t217, t173); // Fp2 sub coeff 1/1 + let t220 = circuit_sub(t218, t176); // Fp2 sub coeff 0/1 + let t221 = circuit_sub(t219, t179); // Fp2 sub coeff 1/1 + let t222 = circuit_add(t182, t185); + let t223 = circuit_mul(t222, in0); + let t224 = circuit_mul(t182, in1); + let t225 = circuit_sub(t224, t185); + let t226 = circuit_sub(t223, t224); + let t227 = circuit_sub(t226, t185); + let t228 = circuit_add(t220, t225); // Fp2 add coeff 0/1 + let t229 = circuit_add(t221, t227); // Fp2 add coeff 1/1 + let t230 = circuit_add(in8, in12); // Fp2 add coeff 0/1 + let t231 = circuit_add(in9, in13); // Fp2 add coeff 1/1 + let t232 = circuit_add(in20, in24); // Fp2 add coeff 0/1 + let t233 = circuit_add(in21, in25); // Fp2 add coeff 1/1 + let t234 = circuit_mul(t232, t230); // Fp2 mul start + let t235 = circuit_mul(t233, t231); + let t236 = circuit_sub(t234, t235); // Fp2 mul real part end + let t237 = circuit_mul(t232, t231); + let t238 = circuit_mul(t233, t230); + let t239 = circuit_add(t237, t238); // Fp2 mul imag part end + let t240 = circuit_sub(t236, t170); // Fp2 sub coeff 0/1 + let t241 = circuit_sub(t239, t173); // Fp2 sub coeff 1/1 + let t242 = circuit_sub(t240, t182); // Fp2 sub coeff 0/1 + let t243 = circuit_sub(t241, t185); // Fp2 sub coeff 1/1 + let t244 = circuit_add(t242, t176); // Fp2 add coeff 0/1 + let t245 = circuit_add(t243, t179); // Fp2 add coeff 1/1 + let t246 = circuit_sub(t50, t128); // Fp6 sub coeff 0/5 + let t247 = circuit_sub(t51, t129); // Fp6 sub coeff 1/5 + let t248 = circuit_sub(t72, t150); // Fp6 sub coeff 2/5 + let t249 = circuit_sub(t73, t151); // Fp6 sub coeff 3/5 + let t250 = circuit_sub(t88, t166); // Fp6 sub coeff 4/5 + let t251 = circuit_sub(t89, t167); // Fp6 sub coeff 5/5 + let t252 = circuit_sub(t246, t206); // Fp6 sub coeff 0/5 + let t253 = circuit_sub(t247, t207); // Fp6 sub coeff 1/5 + let t254 = circuit_sub(t248, t228); // Fp6 sub coeff 2/5 + let t255 = circuit_sub(t249, t229); // Fp6 sub coeff 3/5 + let t256 = circuit_sub(t250, t244); // Fp6 sub coeff 4/5 + let t257 = circuit_sub(t251, t245); // Fp6 sub coeff 5/5 + let t258 = circuit_add(t244, t245); + let t259 = circuit_mul(t258, in0); + let t260 = circuit_mul(t244, in1); + let t261 = circuit_sub(t260, t245); + let t262 = circuit_sub(t259, t260); + let t263 = circuit_sub(t262, t245); + let t264 = circuit_add(t261, t128); // Fp6 add coeff 0/5 + let t265 = circuit_add(t263, t129); // Fp6 add coeff 1/5 + let t266 = circuit_add(t206, t150); // Fp6 add coeff 2/5 + let t267 = circuit_add(t207, t151); // Fp6 add coeff 3/5 + let t268 = circuit_add(t228, t166); // Fp6 add coeff 4/5 + let t269 = circuit_add(t229, t167); // Fp6 add coeff 5/5 + + let modulus = get_BN254_modulus(); // BN254 prime field modulus + + let mut circuit_inputs = ( + t264, t265, t266, t267, t268, t269, t252, t253, t254, t255, t256, t257, + ) + .new_inputs(); + // Prefill constants: + circuit_inputs = circuit_inputs.next_2([0xa, 0x0, 0x0, 0x0]); // in0 + circuit_inputs = circuit_inputs.next_2([0x9, 0x0, 0x0, 0x0]); // in1 + // Fill inputs: + circuit_inputs = circuit_inputs.next_2(X.c0b0a0); // in2 + circuit_inputs = circuit_inputs.next_2(X.c0b0a1); // in3 + circuit_inputs = circuit_inputs.next_2(X.c0b1a0); // in4 + circuit_inputs = circuit_inputs.next_2(X.c0b1a1); // in5 + circuit_inputs = circuit_inputs.next_2(X.c0b2a0); // in6 + circuit_inputs = circuit_inputs.next_2(X.c0b2a1); // in7 + circuit_inputs = circuit_inputs.next_2(X.c1b0a0); // in8 + circuit_inputs = circuit_inputs.next_2(X.c1b0a1); // in9 + circuit_inputs = circuit_inputs.next_2(X.c1b1a0); // in10 + circuit_inputs = circuit_inputs.next_2(X.c1b1a1); // in11 + circuit_inputs = circuit_inputs.next_2(X.c1b2a0); // in12 + circuit_inputs = circuit_inputs.next_2(X.c1b2a1); // in13 + circuit_inputs = circuit_inputs.next_2(Y.c0b0a0); // in14 + circuit_inputs = circuit_inputs.next_2(Y.c0b0a1); // in15 + circuit_inputs = circuit_inputs.next_2(Y.c0b1a0); // in16 + circuit_inputs = circuit_inputs.next_2(Y.c0b1a1); // in17 + circuit_inputs = circuit_inputs.next_2(Y.c0b2a0); // in18 + circuit_inputs = circuit_inputs.next_2(Y.c0b2a1); // in19 + circuit_inputs = circuit_inputs.next_2(Y.c1b0a0); // in20 + circuit_inputs = circuit_inputs.next_2(Y.c1b0a1); // in21 + circuit_inputs = circuit_inputs.next_2(Y.c1b1a0); // in22 + circuit_inputs = circuit_inputs.next_2(Y.c1b1a1); // in23 + circuit_inputs = circuit_inputs.next_2(Y.c1b2a0); // in24 + circuit_inputs = circuit_inputs.next_2(Y.c1b2a1); // in25 + + let outputs = circuit_inputs.done_2().eval(modulus).unwrap(); + let res: E12T = E12T { + c0b0a0: outputs.get_output(t264), + c0b0a1: outputs.get_output(t265), + c0b1a0: outputs.get_output(t266), + c0b1a1: outputs.get_output(t267), + c0b2a0: outputs.get_output(t268), + c0b2a1: outputs.get_output(t269), + c1b0a0: outputs.get_output(t252), + c1b0a1: outputs.get_output(t253), + c1b1a0: outputs.get_output(t254), + c1b1a1: outputs.get_output(t255), + c1b2a0: outputs.get_output(t256), + c1b2a1: outputs.get_output(t257), + }; + return (res,); +} +#[inline(always)] +pub fn run_BN254_TOWER_MILLER_BIT0_1P_circuit( + yInv_0: u384, xNegOverY_0: u384, Q_0: G2Point, M_i: E12T, +) -> (G2Point, E12T) { + // CONSTANT stack + let in0 = CE::> {}; // 0xa + let in1 = CE::> {}; // 0x9 + let in2 = CE::> {}; // 0x0 + let in3 = CE::> {}; // 0x3 + let in4 = CE::> {}; // 0x6 + let in5 = CE::> {}; // 0x1 + + // INPUT stack + let (in6, in7, in8) = (CE::> {}, CE::> {}, CE::> {}); + let (in9, in10, in11) = (CE::> {}, CE::> {}, CE::> {}); + let (in12, in13, in14) = (CE::> {}, CE::> {}, CE::> {}); + let (in15, in16, in17) = (CE::> {}, CE::> {}, CE::> {}); + let (in18, in19, in20) = (CE::> {}, CE::> {}, CE::> {}); + let (in21, in22, in23) = (CE::> {}, CE::> {}, CE::> {}); + let t0 = circuit_sub(in12, in18); // Fp6 sub coeff 0/5 + let t1 = circuit_sub(in13, in19); // Fp6 sub coeff 1/5 + let t2 = circuit_sub(in14, in20); // Fp6 sub coeff 2/5 + let t3 = circuit_sub(in15, in21); // Fp6 sub coeff 3/5 + let t4 = circuit_sub(in16, in22); // Fp6 sub coeff 4/5 + let t5 = circuit_sub(in17, in23); // Fp6 sub coeff 5/5 + let t6 = circuit_add(in22, in23); + let t7 = circuit_mul(t6, in0); + let t8 = circuit_mul(in22, in1); + let t9 = circuit_sub(t8, in23); + let t10 = circuit_sub(t7, t8); + let t11 = circuit_sub(t10, in23); + let t12 = circuit_sub(in2, t9); // Fp6 neg coeff 0/5 + let t13 = circuit_sub(in2, t11); // Fp6 neg coeff 1/5 + let t14 = circuit_sub(in2, in18); // Fp6 neg coeff 2/5 + let t15 = circuit_sub(in2, in19); // Fp6 neg coeff 3/5 + let t16 = circuit_sub(in2, in20); // Fp6 neg coeff 4/5 + let t17 = circuit_sub(in2, in21); // Fp6 neg coeff 5/5 + let t18 = circuit_add(in12, t12); // Fp6 add coeff 0/5 + let t19 = circuit_add(in13, t13); // Fp6 add coeff 1/5 + let t20 = circuit_add(in14, t14); // Fp6 add coeff 2/5 + let t21 = circuit_add(in15, t15); // Fp6 add coeff 3/5 + let t22 = circuit_add(in16, t16); // Fp6 add coeff 4/5 + let t23 = circuit_add(in17, t17); // Fp6 add coeff 5/5 + let t24 = circuit_mul(in12, in18); // Fp2 mul start + let t25 = circuit_mul(in13, in19); + let t26 = circuit_sub(t24, t25); // Fp2 mul real part end + let t27 = circuit_mul(in12, in19); + let t28 = circuit_mul(in13, in18); + let t29 = circuit_add(t27, t28); // Fp2 mul imag part end + let t30 = circuit_mul(in14, in20); // Fp2 mul start + let t31 = circuit_mul(in15, in21); + let t32 = circuit_sub(t30, t31); // Fp2 mul real part end + let t33 = circuit_mul(in14, in21); + let t34 = circuit_mul(in15, in20); + let t35 = circuit_add(t33, t34); // Fp2 mul imag part end + let t36 = circuit_mul(in16, in22); // Fp2 mul start + let t37 = circuit_mul(in17, in23); + let t38 = circuit_sub(t36, t37); // Fp2 mul real part end + let t39 = circuit_mul(in16, in23); + let t40 = circuit_mul(in17, in22); + let t41 = circuit_add(t39, t40); // Fp2 mul imag part end + let t42 = circuit_add(in14, in16); // Fp2 add coeff 0/1 + let t43 = circuit_add(in15, in17); // Fp2 add coeff 1/1 + let t44 = circuit_add(in20, in22); // Fp2 add coeff 0/1 + let t45 = circuit_add(in21, in23); // Fp2 add coeff 1/1 + let t46 = circuit_mul(t42, t44); // Fp2 mul start + let t47 = circuit_mul(t43, t45); + let t48 = circuit_sub(t46, t47); // Fp2 mul real part end + let t49 = circuit_mul(t42, t45); + let t50 = circuit_mul(t43, t44); + let t51 = circuit_add(t49, t50); // Fp2 mul imag part end + let t52 = circuit_sub(t48, t32); // Fp2 sub coeff 0/1 + let t53 = circuit_sub(t51, t35); // Fp2 sub coeff 1/1 + let t54 = circuit_sub(t52, t38); // Fp2 sub coeff 0/1 + let t55 = circuit_sub(t53, t41); // Fp2 sub coeff 1/1 + let t56 = circuit_add(t54, t55); + let t57 = circuit_mul(t56, in0); + let t58 = circuit_mul(t54, in1); + let t59 = circuit_sub(t58, t55); + let t60 = circuit_sub(t57, t58); + let t61 = circuit_sub(t60, t55); + let t62 = circuit_add(t59, t26); // Fp2 add coeff 0/1 + let t63 = circuit_add(t61, t29); // Fp2 add coeff 1/1 + let t64 = circuit_add(in12, in14); // Fp2 add coeff 0/1 + let t65 = circuit_add(in13, in15); // Fp2 add coeff 1/1 + let t66 = circuit_add(in18, in20); // Fp2 add coeff 0/1 + let t67 = circuit_add(in19, in21); // Fp2 add coeff 1/1 + let t68 = circuit_mul(t64, t66); // Fp2 mul start + let t69 = circuit_mul(t65, t67); + let t70 = circuit_sub(t68, t69); // Fp2 mul real part end + let t71 = circuit_mul(t64, t67); + let t72 = circuit_mul(t65, t66); + let t73 = circuit_add(t71, t72); // Fp2 mul imag part end + let t74 = circuit_sub(t70, t26); // Fp2 sub coeff 0/1 + let t75 = circuit_sub(t73, t29); // Fp2 sub coeff 1/1 + let t76 = circuit_sub(t74, t32); // Fp2 sub coeff 0/1 + let t77 = circuit_sub(t75, t35); // Fp2 sub coeff 1/1 + let t78 = circuit_add(t38, t41); + let t79 = circuit_mul(t78, in0); + let t80 = circuit_mul(t38, in1); + let t81 = circuit_sub(t80, t41); + let t82 = circuit_sub(t79, t80); + let t83 = circuit_sub(t82, t41); + let t84 = circuit_add(t76, t81); // Fp2 add coeff 0/1 + let t85 = circuit_add(t77, t83); // Fp2 add coeff 1/1 + let t86 = circuit_add(in12, in16); // Fp2 add coeff 0/1 + let t87 = circuit_add(in13, in17); // Fp2 add coeff 1/1 + let t88 = circuit_add(in18, in22); // Fp2 add coeff 0/1 + let t89 = circuit_add(in19, in23); // Fp2 add coeff 1/1 + let t90 = circuit_mul(t88, t86); // Fp2 mul start + let t91 = circuit_mul(t89, t87); + let t92 = circuit_sub(t90, t91); // Fp2 mul real part end + let t93 = circuit_mul(t88, t87); + let t94 = circuit_mul(t89, t86); + let t95 = circuit_add(t93, t94); // Fp2 mul imag part end + let t96 = circuit_sub(t92, t26); // Fp2 sub coeff 0/1 + let t97 = circuit_sub(t95, t29); // Fp2 sub coeff 1/1 + let t98 = circuit_sub(t96, t38); // Fp2 sub coeff 0/1 + let t99 = circuit_sub(t97, t41); // Fp2 sub coeff 1/1 + let t100 = circuit_add(t98, t32); // Fp2 add coeff 0/1 + let t101 = circuit_add(t99, t35); // Fp2 add coeff 1/1 + let t102 = circuit_mul(t0, t18); // Fp2 mul start + let t103 = circuit_mul(t1, t19); + let t104 = circuit_sub(t102, t103); // Fp2 mul real part end + let t105 = circuit_mul(t0, t19); + let t106 = circuit_mul(t1, t18); + let t107 = circuit_add(t105, t106); // Fp2 mul imag part end + let t108 = circuit_mul(t2, t20); // Fp2 mul start + let t109 = circuit_mul(t3, t21); + let t110 = circuit_sub(t108, t109); // Fp2 mul real part end + let t111 = circuit_mul(t2, t21); + let t112 = circuit_mul(t3, t20); + let t113 = circuit_add(t111, t112); // Fp2 mul imag part end + let t114 = circuit_mul(t4, t22); // Fp2 mul start + let t115 = circuit_mul(t5, t23); + let t116 = circuit_sub(t114, t115); // Fp2 mul real part end + let t117 = circuit_mul(t4, t23); + let t118 = circuit_mul(t5, t22); + let t119 = circuit_add(t117, t118); // Fp2 mul imag part end + let t120 = circuit_add(t2, t4); // Fp2 add coeff 0/1 + let t121 = circuit_add(t3, t5); // Fp2 add coeff 1/1 + let t122 = circuit_add(t20, t22); // Fp2 add coeff 0/1 + let t123 = circuit_add(t21, t23); // Fp2 add coeff 1/1 + let t124 = circuit_mul(t120, t122); // Fp2 mul start + let t125 = circuit_mul(t121, t123); + let t126 = circuit_sub(t124, t125); // Fp2 mul real part end + let t127 = circuit_mul(t120, t123); + let t128 = circuit_mul(t121, t122); + let t129 = circuit_add(t127, t128); // Fp2 mul imag part end + let t130 = circuit_sub(t126, t110); // Fp2 sub coeff 0/1 + let t131 = circuit_sub(t129, t113); // Fp2 sub coeff 1/1 + let t132 = circuit_sub(t130, t116); // Fp2 sub coeff 0/1 + let t133 = circuit_sub(t131, t119); // Fp2 sub coeff 1/1 + let t134 = circuit_add(t132, t133); + let t135 = circuit_mul(t134, in0); + let t136 = circuit_mul(t132, in1); + let t137 = circuit_sub(t136, t133); + let t138 = circuit_sub(t135, t136); + let t139 = circuit_sub(t138, t133); + let t140 = circuit_add(t137, t104); // Fp2 add coeff 0/1 + let t141 = circuit_add(t139, t107); // Fp2 add coeff 1/1 + let t142 = circuit_add(t0, t2); // Fp2 add coeff 0/1 + let t143 = circuit_add(t1, t3); // Fp2 add coeff 1/1 + let t144 = circuit_add(t18, t20); // Fp2 add coeff 0/1 + let t145 = circuit_add(t19, t21); // Fp2 add coeff 1/1 + let t146 = circuit_mul(t142, t144); // Fp2 mul start + let t147 = circuit_mul(t143, t145); + let t148 = circuit_sub(t146, t147); // Fp2 mul real part end + let t149 = circuit_mul(t142, t145); + let t150 = circuit_mul(t143, t144); + let t151 = circuit_add(t149, t150); // Fp2 mul imag part end + let t152 = circuit_sub(t148, t104); // Fp2 sub coeff 0/1 + let t153 = circuit_sub(t151, t107); // Fp2 sub coeff 1/1 + let t154 = circuit_sub(t152, t110); // Fp2 sub coeff 0/1 + let t155 = circuit_sub(t153, t113); // Fp2 sub coeff 1/1 + let t156 = circuit_add(t116, t119); + let t157 = circuit_mul(t156, in0); + let t158 = circuit_mul(t116, in1); + let t159 = circuit_sub(t158, t119); + let t160 = circuit_sub(t157, t158); + let t161 = circuit_sub(t160, t119); + let t162 = circuit_add(t154, t159); // Fp2 add coeff 0/1 + let t163 = circuit_add(t155, t161); // Fp2 add coeff 1/1 + let t164 = circuit_add(t0, t4); // Fp2 add coeff 0/1 + let t165 = circuit_add(t1, t5); // Fp2 add coeff 1/1 + let t166 = circuit_add(t18, t22); // Fp2 add coeff 0/1 + let t167 = circuit_add(t19, t23); // Fp2 add coeff 1/1 + let t168 = circuit_mul(t166, t164); // Fp2 mul start + let t169 = circuit_mul(t167, t165); + let t170 = circuit_sub(t168, t169); // Fp2 mul real part end + let t171 = circuit_mul(t166, t165); + let t172 = circuit_mul(t167, t164); + let t173 = circuit_add(t171, t172); // Fp2 mul imag part end + let t174 = circuit_sub(t170, t104); // Fp2 sub coeff 0/1 + let t175 = circuit_sub(t173, t107); // Fp2 sub coeff 1/1 + let t176 = circuit_sub(t174, t116); // Fp2 sub coeff 0/1 + let t177 = circuit_sub(t175, t119); // Fp2 sub coeff 1/1 + let t178 = circuit_add(t176, t110); // Fp2 add coeff 0/1 + let t179 = circuit_add(t177, t113); // Fp2 add coeff 1/1 + let t180 = circuit_add(t140, t62); // Fp6 add coeff 0/5 + let t181 = circuit_add(t141, t63); // Fp6 add coeff 1/5 + let t182 = circuit_add(t162, t84); // Fp6 add coeff 2/5 + let t183 = circuit_add(t163, t85); // Fp6 add coeff 3/5 + let t184 = circuit_add(t178, t100); // Fp6 add coeff 4/5 + let t185 = circuit_add(t179, t101); // Fp6 add coeff 5/5 + let t186 = circuit_add(t62, t62); // Fp6 add coeff 0/5 + let t187 = circuit_add(t63, t63); // Fp6 add coeff 1/5 + let t188 = circuit_add(t84, t84); // Fp6 add coeff 2/5 + let t189 = circuit_add(t85, t85); // Fp6 add coeff 3/5 + let t190 = circuit_add(t100, t100); // Fp6 add coeff 4/5 + let t191 = circuit_add(t101, t101); // Fp6 add coeff 5/5 + let t192 = circuit_add(t100, t101); + let t193 = circuit_mul(t192, in0); + let t194 = circuit_mul(t100, in1); + let t195 = circuit_sub(t194, t101); + let t196 = circuit_sub(t193, t194); + let t197 = circuit_sub(t196, t101); + let t198 = circuit_add(t180, t195); // Fp6 add coeff 0/5 + let t199 = circuit_add(t181, t197); // Fp6 add coeff 1/5 + let t200 = circuit_add(t182, t62); // Fp6 add coeff 2/5 + let t201 = circuit_add(t183, t63); // Fp6 add coeff 3/5 + let t202 = circuit_add(t184, t84); // Fp6 add coeff 4/5 + let t203 = circuit_add(t185, t85); // Fp6 add coeff 5/5 + let t204 = circuit_add(in8, in9); // Doubling slope numerator start + let t205 = circuit_sub(in8, in9); + let t206 = circuit_mul(t204, t205); + let t207 = circuit_mul(in8, in9); + let t208 = circuit_mul(t206, in3); + let t209 = circuit_mul(t207, in4); // Doubling slope numerator end + let t210 = circuit_add(in10, in10); // Fp2 add coeff 0/1 + let t211 = circuit_add(in11, in11); // Fp2 add coeff 1/1 + let t212 = circuit_mul(t210, t210); // Fp2 Inv start + let t213 = circuit_mul(t211, t211); + let t214 = circuit_add(t212, t213); + let t215 = circuit_inverse(t214); + let t216 = circuit_mul(t210, t215); // Fp2 Inv real part end + let t217 = circuit_mul(t211, t215); + let t218 = circuit_sub(in2, t217); // Fp2 Inv imag part end + let t219 = circuit_mul(t208, t216); // Fp2 mul start + let t220 = circuit_mul(t209, t218); + let t221 = circuit_sub(t219, t220); // Fp2 mul real part end + let t222 = circuit_mul(t208, t218); + let t223 = circuit_mul(t209, t216); + let t224 = circuit_add(t222, t223); // Fp2 mul imag part end + let t225 = circuit_add(t221, t224); + let t226 = circuit_sub(t221, t224); + let t227 = circuit_mul(t225, t226); + let t228 = circuit_mul(t221, t224); + let t229 = circuit_add(t228, t228); + let t230 = circuit_add(in8, in8); // Fp2 add coeff 0/1 + let t231 = circuit_add(in9, in9); // Fp2 add coeff 1/1 + let t232 = circuit_sub(t227, t230); // Fp2 sub coeff 0/1 + let t233 = circuit_sub(t229, t231); // Fp2 sub coeff 1/1 + let t234 = circuit_sub(in8, t232); // Fp2 sub coeff 0/1 + let t235 = circuit_sub(in9, t233); // Fp2 sub coeff 1/1 + let t236 = circuit_mul(t221, t234); // Fp2 mul start + let t237 = circuit_mul(t224, t235); + let t238 = circuit_sub(t236, t237); // Fp2 mul real part end + let t239 = circuit_mul(t221, t235); + let t240 = circuit_mul(t224, t234); + let t241 = circuit_add(t239, t240); // Fp2 mul imag part end + let t242 = circuit_sub(t238, in10); // Fp2 sub coeff 0/1 + let t243 = circuit_sub(t241, in11); // Fp2 sub coeff 1/1 + let t244 = circuit_mul(t221, in8); // Fp2 mul start + let t245 = circuit_mul(t224, in9); + let t246 = circuit_sub(t244, t245); // Fp2 mul real part end + let t247 = circuit_mul(t221, in9); + let t248 = circuit_mul(t224, in8); + let t249 = circuit_add(t247, t248); // Fp2 mul imag part end + let t250 = circuit_sub(t246, in10); // Fp2 sub coeff 0/1 + let t251 = circuit_sub(t249, in11); // Fp2 sub coeff 1/1 + let t252 = circuit_mul(t221, in7); + let t253 = circuit_mul(t224, in7); + let t254 = circuit_mul(t250, in6); + let t255 = circuit_mul(t251, in6); + let t256 = circuit_mul(t186, t252); // Fp2 mul start + let t257 = circuit_mul(t187, t253); + let t258 = circuit_sub(t256, t257); // Fp2 mul real part end + let t259 = circuit_mul(t186, t253); + let t260 = circuit_mul(t187, t252); + let t261 = circuit_add(t259, t260); // Fp2 mul imag part end + let t262 = circuit_mul(t188, t254); // Fp2 mul start + let t263 = circuit_mul(t189, t255); + let t264 = circuit_sub(t262, t263); // Fp2 mul real part end + let t265 = circuit_mul(t188, t255); + let t266 = circuit_mul(t189, t254); + let t267 = circuit_add(t265, t266); // Fp2 mul imag part end + let t268 = circuit_add(t188, t190); // Fp2 add coeff 0/1 + let t269 = circuit_add(t189, t191); // Fp2 add coeff 1/1 + let t270 = circuit_mul(t254, t268); // Fp2 mul start + let t271 = circuit_mul(t255, t269); + let t272 = circuit_sub(t270, t271); // Fp2 mul real part end + let t273 = circuit_mul(t254, t269); + let t274 = circuit_mul(t255, t268); + let t275 = circuit_add(t273, t274); // Fp2 mul imag part end + let t276 = circuit_sub(t272, t264); // Fp2 sub coeff 0/1 + let t277 = circuit_sub(t275, t267); // Fp2 sub coeff 1/1 + let t278 = circuit_add(t276, t277); + let t279 = circuit_mul(t278, in0); + let t280 = circuit_mul(t276, in1); + let t281 = circuit_sub(t280, t277); + let t282 = circuit_sub(t279, t280); + let t283 = circuit_sub(t282, t277); + let t284 = circuit_add(t281, t258); // Fp2 add coeff 0/1 + let t285 = circuit_add(t283, t261); // Fp2 add coeff 1/1 + let t286 = circuit_add(t186, t190); // Fp2 add coeff 0/1 + let t287 = circuit_add(t187, t191); // Fp2 add coeff 1/1 + let t288 = circuit_mul(t252, t286); // Fp2 mul start + let t289 = circuit_mul(t253, t287); + let t290 = circuit_sub(t288, t289); // Fp2 mul real part end + let t291 = circuit_mul(t252, t287); + let t292 = circuit_mul(t253, t286); + let t293 = circuit_add(t291, t292); // Fp2 mul imag part end + let t294 = circuit_sub(t290, t258); // Fp2 sub coeff 0/1 + let t295 = circuit_sub(t293, t261); // Fp2 sub coeff 1/1 + let t296 = circuit_add(t294, t264); // Fp2 add coeff 0/1 + let t297 = circuit_add(t295, t267); // Fp2 add coeff 1/1 + let t298 = circuit_add(t252, t254); // Fp2 add coeff 0/1 + let t299 = circuit_add(t253, t255); // Fp2 add coeff 1/1 + let t300 = circuit_add(t186, t188); // Fp2 add coeff 0/1 + let t301 = circuit_add(t187, t189); // Fp2 add coeff 1/1 + let t302 = circuit_mul(t298, t300); // Fp2 mul start + let t303 = circuit_mul(t299, t301); + let t304 = circuit_sub(t302, t303); // Fp2 mul real part end + let t305 = circuit_mul(t298, t301); + let t306 = circuit_mul(t299, t300); + let t307 = circuit_add(t305, t306); // Fp2 mul imag part end + let t308 = circuit_sub(t304, t258); // Fp2 sub coeff 0/1 + let t309 = circuit_sub(t307, t261); // Fp2 sub coeff 1/1 + let t310 = circuit_sub(t308, t264); // Fp2 sub coeff 0/1 + let t311 = circuit_sub(t309, t267); // Fp2 sub coeff 1/1 + let t312 = circuit_add(in5, t252); // Fp2 add coeff 0/1 + let t313 = circuit_add(in2, t253); // Fp2 add coeff 1/1 + let t314 = circuit_add(t198, t186); // Fp6 add coeff 0/5 + let t315 = circuit_add(t199, t187); // Fp6 add coeff 1/5 + let t316 = circuit_add(t200, t188); // Fp6 add coeff 2/5 + let t317 = circuit_add(t201, t189); // Fp6 add coeff 3/5 + let t318 = circuit_add(t202, t190); // Fp6 add coeff 4/5 + let t319 = circuit_add(t203, t191); // Fp6 add coeff 5/5 + let t320 = circuit_mul(t314, t312); // Fp2 mul start + let t321 = circuit_mul(t315, t313); + let t322 = circuit_sub(t320, t321); // Fp2 mul real part end + let t323 = circuit_mul(t314, t313); + let t324 = circuit_mul(t315, t312); + let t325 = circuit_add(t323, t324); // Fp2 mul imag part end + let t326 = circuit_mul(t316, t254); // Fp2 mul start + let t327 = circuit_mul(t317, t255); + let t328 = circuit_sub(t326, t327); // Fp2 mul real part end + let t329 = circuit_mul(t316, t255); + let t330 = circuit_mul(t317, t254); + let t331 = circuit_add(t329, t330); // Fp2 mul imag part end + let t332 = circuit_add(t316, t318); // Fp2 add coeff 0/1 + let t333 = circuit_add(t317, t319); // Fp2 add coeff 1/1 + let t334 = circuit_mul(t254, t332); // Fp2 mul start + let t335 = circuit_mul(t255, t333); + let t336 = circuit_sub(t334, t335); // Fp2 mul real part end + let t337 = circuit_mul(t254, t333); + let t338 = circuit_mul(t255, t332); + let t339 = circuit_add(t337, t338); // Fp2 mul imag part end + let t340 = circuit_sub(t336, t328); // Fp2 sub coeff 0/1 + let t341 = circuit_sub(t339, t331); // Fp2 sub coeff 1/1 + let t342 = circuit_add(t340, t341); + let t343 = circuit_mul(t342, in0); + let t344 = circuit_mul(t340, in1); + let t345 = circuit_sub(t344, t341); + let t346 = circuit_sub(t343, t344); + let t347 = circuit_sub(t346, t341); + let t348 = circuit_add(t345, t322); // Fp2 add coeff 0/1 + let t349 = circuit_add(t347, t325); // Fp2 add coeff 1/1 + let t350 = circuit_add(t314, t318); // Fp2 add coeff 0/1 + let t351 = circuit_add(t315, t319); // Fp2 add coeff 1/1 + let t352 = circuit_mul(t312, t350); // Fp2 mul start + let t353 = circuit_mul(t313, t351); + let t354 = circuit_sub(t352, t353); // Fp2 mul real part end + let t355 = circuit_mul(t312, t351); + let t356 = circuit_mul(t313, t350); + let t357 = circuit_add(t355, t356); // Fp2 mul imag part end + let t358 = circuit_sub(t354, t322); // Fp2 sub coeff 0/1 + let t359 = circuit_sub(t357, t325); // Fp2 sub coeff 1/1 + let t360 = circuit_add(t358, t328); // Fp2 add coeff 0/1 + let t361 = circuit_add(t359, t331); // Fp2 add coeff 1/1 + let t362 = circuit_add(t312, t254); // Fp2 add coeff 0/1 + let t363 = circuit_add(t313, t255); // Fp2 add coeff 1/1 + let t364 = circuit_add(t314, t316); // Fp2 add coeff 0/1 + let t365 = circuit_add(t315, t317); // Fp2 add coeff 1/1 + let t366 = circuit_mul(t362, t364); // Fp2 mul start + let t367 = circuit_mul(t363, t365); + let t368 = circuit_sub(t366, t367); // Fp2 mul real part end + let t369 = circuit_mul(t362, t365); + let t370 = circuit_mul(t363, t364); + let t371 = circuit_add(t369, t370); // Fp2 mul imag part end + let t372 = circuit_sub(t368, t322); // Fp2 sub coeff 0/1 + let t373 = circuit_sub(t371, t325); // Fp2 sub coeff 1/1 + let t374 = circuit_sub(t372, t328); // Fp2 sub coeff 0/1 + let t375 = circuit_sub(t373, t331); // Fp2 sub coeff 1/1 + let t376 = circuit_add(t198, t284); // Fp6 add coeff 0/5 + let t377 = circuit_add(t199, t285); // Fp6 add coeff 1/5 + let t378 = circuit_add(t200, t310); // Fp6 add coeff 2/5 + let t379 = circuit_add(t201, t311); // Fp6 add coeff 3/5 + let t380 = circuit_add(t202, t296); // Fp6 add coeff 4/5 + let t381 = circuit_add(t203, t297); // Fp6 add coeff 5/5 + let t382 = circuit_sub(in2, t376); // Fp6 neg coeff 0/5 + let t383 = circuit_sub(in2, t377); // Fp6 neg coeff 1/5 + let t384 = circuit_sub(in2, t378); // Fp6 neg coeff 2/5 + let t385 = circuit_sub(in2, t379); // Fp6 neg coeff 3/5 + let t386 = circuit_sub(in2, t380); // Fp6 neg coeff 4/5 + let t387 = circuit_sub(in2, t381); // Fp6 neg coeff 5/5 + let t388 = circuit_add(t382, t348); // Fp6 add coeff 0/5 + let t389 = circuit_add(t383, t349); // Fp6 add coeff 1/5 + let t390 = circuit_add(t384, t374); // Fp6 add coeff 2/5 + let t391 = circuit_add(t385, t375); // Fp6 add coeff 3/5 + let t392 = circuit_add(t386, t360); // Fp6 add coeff 4/5 + let t393 = circuit_add(t387, t361); // Fp6 add coeff 5/5 + let t394 = circuit_add(t296, t297); + let t395 = circuit_mul(t394, in0); + let t396 = circuit_mul(t296, in1); + let t397 = circuit_sub(t396, t297); + let t398 = circuit_sub(t395, t396); + let t399 = circuit_sub(t398, t297); + let t400 = circuit_add(t397, t198); // Fp6 add coeff 0/5 + let t401 = circuit_add(t399, t199); // Fp6 add coeff 1/5 + let t402 = circuit_add(t284, t200); // Fp6 add coeff 2/5 + let t403 = circuit_add(t285, t201); // Fp6 add coeff 3/5 + let t404 = circuit_add(t310, t202); // Fp6 add coeff 4/5 + let t405 = circuit_add(t311, t203); // Fp6 add coeff 5/5 + let t406 = circuit_add(t232, t233); + let t407 = circuit_add(t406, t242); + let t408 = circuit_add(t407, t243); + + let modulus = get_BN254_modulus(); // BN254 prime field modulus + + let mut circuit_inputs = ( + t408, t400, t401, t402, t403, t404, t405, t388, t389, t390, t391, t392, t393, + ) + .new_inputs(); + // Prefill constants: + circuit_inputs = circuit_inputs.next_2([0xa, 0x0, 0x0, 0x0]); // in0 + circuit_inputs = circuit_inputs.next_2([0x9, 0x0, 0x0, 0x0]); // in1 + circuit_inputs = circuit_inputs.next_2([0x0, 0x0, 0x0, 0x0]); // in2 + circuit_inputs = circuit_inputs.next_2([0x3, 0x0, 0x0, 0x0]); // in3 + circuit_inputs = circuit_inputs.next_2([0x6, 0x0, 0x0, 0x0]); // in4 + circuit_inputs = circuit_inputs.next_2([0x1, 0x0, 0x0, 0x0]); // in5 + // Fill inputs: + circuit_inputs = circuit_inputs.next_2(yInv_0); // in6 + circuit_inputs = circuit_inputs.next_2(xNegOverY_0); // in7 + circuit_inputs = circuit_inputs.next_2(Q_0.x0); // in8 + circuit_inputs = circuit_inputs.next_2(Q_0.x1); // in9 + circuit_inputs = circuit_inputs.next_2(Q_0.y0); // in10 + circuit_inputs = circuit_inputs.next_2(Q_0.y1); // in11 + circuit_inputs = circuit_inputs.next_2(M_i.c0b0a0); // in12 + circuit_inputs = circuit_inputs.next_2(M_i.c0b0a1); // in13 + circuit_inputs = circuit_inputs.next_2(M_i.c0b1a0); // in14 + circuit_inputs = circuit_inputs.next_2(M_i.c0b1a1); // in15 + circuit_inputs = circuit_inputs.next_2(M_i.c0b2a0); // in16 + circuit_inputs = circuit_inputs.next_2(M_i.c0b2a1); // in17 + circuit_inputs = circuit_inputs.next_2(M_i.c1b0a0); // in18 + circuit_inputs = circuit_inputs.next_2(M_i.c1b0a1); // in19 + circuit_inputs = circuit_inputs.next_2(M_i.c1b1a0); // in20 + circuit_inputs = circuit_inputs.next_2(M_i.c1b1a1); // in21 + circuit_inputs = circuit_inputs.next_2(M_i.c1b2a0); // in22 + circuit_inputs = circuit_inputs.next_2(M_i.c1b2a1); // in23 + + let outputs = circuit_inputs.done_2().eval(modulus).unwrap(); + let Q0: G2Point = G2Point { + x0: outputs.get_output(t232), + x1: outputs.get_output(t233), + y0: outputs.get_output(t242), + y1: outputs.get_output(t243), + }; + let Mi_plus_one: E12T = E12T { + c0b0a0: outputs.get_output(t400), + c0b0a1: outputs.get_output(t401), + c0b1a0: outputs.get_output(t402), + c0b1a1: outputs.get_output(t403), + c0b2a0: outputs.get_output(t404), + c0b2a1: outputs.get_output(t405), + c1b0a0: outputs.get_output(t388), + c1b0a1: outputs.get_output(t389), + c1b1a0: outputs.get_output(t390), + c1b1a1: outputs.get_output(t391), + c1b2a0: outputs.get_output(t392), + c1b2a1: outputs.get_output(t393), + }; + return (Q0, Mi_plus_one); +} +#[inline(always)] +pub fn run_BN254_TOWER_MILLER_BIT1_1P_circuit( + yInv_0: u384, xNegOverY_0: u384, Q_0: G2Point, Q_or_Q_neg_0: G2Point, M_i: E12T, +) -> (G2Point, E12T) { + // CONSTANT stack + let in0 = CE::> {}; // 0xa + let in1 = CE::> {}; // 0x9 + let in2 = CE::> {}; // 0x0 + let in3 = CE::> {}; // 0x1 + + // INPUT stack + let (in4, in5, in6) = (CE::> {}, CE::> {}, CE::> {}); + let (in7, in8, in9) = (CE::> {}, CE::> {}, CE::> {}); + let (in10, in11, in12) = (CE::> {}, CE::> {}, CE::> {}); + let (in13, in14, in15) = (CE::> {}, CE::> {}, CE::> {}); + let (in16, in17, in18) = (CE::> {}, CE::> {}, CE::> {}); + let (in19, in20, in21) = (CE::> {}, CE::> {}, CE::> {}); + let (in22, in23, in24) = (CE::> {}, CE::> {}, CE::> {}); + let in25 = CE::> {}; + let t0 = circuit_sub(in14, in20); // Fp6 sub coeff 0/5 + let t1 = circuit_sub(in15, in21); // Fp6 sub coeff 1/5 + let t2 = circuit_sub(in16, in22); // Fp6 sub coeff 2/5 + let t3 = circuit_sub(in17, in23); // Fp6 sub coeff 3/5 + let t4 = circuit_sub(in18, in24); // Fp6 sub coeff 4/5 + let t5 = circuit_sub(in19, in25); // Fp6 sub coeff 5/5 + let t6 = circuit_add(in24, in25); + let t7 = circuit_mul(t6, in0); + let t8 = circuit_mul(in24, in1); + let t9 = circuit_sub(t8, in25); + let t10 = circuit_sub(t7, t8); + let t11 = circuit_sub(t10, in25); + let t12 = circuit_sub(in2, t9); // Fp6 neg coeff 0/5 + let t13 = circuit_sub(in2, t11); // Fp6 neg coeff 1/5 + let t14 = circuit_sub(in2, in20); // Fp6 neg coeff 2/5 + let t15 = circuit_sub(in2, in21); // Fp6 neg coeff 3/5 + let t16 = circuit_sub(in2, in22); // Fp6 neg coeff 4/5 + let t17 = circuit_sub(in2, in23); // Fp6 neg coeff 5/5 + let t18 = circuit_add(in14, t12); // Fp6 add coeff 0/5 + let t19 = circuit_add(in15, t13); // Fp6 add coeff 1/5 + let t20 = circuit_add(in16, t14); // Fp6 add coeff 2/5 + let t21 = circuit_add(in17, t15); // Fp6 add coeff 3/5 + let t22 = circuit_add(in18, t16); // Fp6 add coeff 4/5 + let t23 = circuit_add(in19, t17); // Fp6 add coeff 5/5 + let t24 = circuit_mul(in14, in20); // Fp2 mul start + let t25 = circuit_mul(in15, in21); + let t26 = circuit_sub(t24, t25); // Fp2 mul real part end + let t27 = circuit_mul(in14, in21); + let t28 = circuit_mul(in15, in20); + let t29 = circuit_add(t27, t28); // Fp2 mul imag part end + let t30 = circuit_mul(in16, in22); // Fp2 mul start + let t31 = circuit_mul(in17, in23); + let t32 = circuit_sub(t30, t31); // Fp2 mul real part end + let t33 = circuit_mul(in16, in23); + let t34 = circuit_mul(in17, in22); + let t35 = circuit_add(t33, t34); // Fp2 mul imag part end + let t36 = circuit_mul(in18, in24); // Fp2 mul start + let t37 = circuit_mul(in19, in25); + let t38 = circuit_sub(t36, t37); // Fp2 mul real part end + let t39 = circuit_mul(in18, in25); + let t40 = circuit_mul(in19, in24); + let t41 = circuit_add(t39, t40); // Fp2 mul imag part end + let t42 = circuit_add(in16, in18); // Fp2 add coeff 0/1 + let t43 = circuit_add(in17, in19); // Fp2 add coeff 1/1 + let t44 = circuit_add(in22, in24); // Fp2 add coeff 0/1 + let t45 = circuit_add(in23, in25); // Fp2 add coeff 1/1 + let t46 = circuit_mul(t42, t44); // Fp2 mul start + let t47 = circuit_mul(t43, t45); + let t48 = circuit_sub(t46, t47); // Fp2 mul real part end + let t49 = circuit_mul(t42, t45); + let t50 = circuit_mul(t43, t44); + let t51 = circuit_add(t49, t50); // Fp2 mul imag part end + let t52 = circuit_sub(t48, t32); // Fp2 sub coeff 0/1 + let t53 = circuit_sub(t51, t35); // Fp2 sub coeff 1/1 + let t54 = circuit_sub(t52, t38); // Fp2 sub coeff 0/1 + let t55 = circuit_sub(t53, t41); // Fp2 sub coeff 1/1 + let t56 = circuit_add(t54, t55); + let t57 = circuit_mul(t56, in0); + let t58 = circuit_mul(t54, in1); + let t59 = circuit_sub(t58, t55); + let t60 = circuit_sub(t57, t58); + let t61 = circuit_sub(t60, t55); + let t62 = circuit_add(t59, t26); // Fp2 add coeff 0/1 + let t63 = circuit_add(t61, t29); // Fp2 add coeff 1/1 + let t64 = circuit_add(in14, in16); // Fp2 add coeff 0/1 + let t65 = circuit_add(in15, in17); // Fp2 add coeff 1/1 + let t66 = circuit_add(in20, in22); // Fp2 add coeff 0/1 + let t67 = circuit_add(in21, in23); // Fp2 add coeff 1/1 + let t68 = circuit_mul(t64, t66); // Fp2 mul start + let t69 = circuit_mul(t65, t67); + let t70 = circuit_sub(t68, t69); // Fp2 mul real part end + let t71 = circuit_mul(t64, t67); + let t72 = circuit_mul(t65, t66); + let t73 = circuit_add(t71, t72); // Fp2 mul imag part end + let t74 = circuit_sub(t70, t26); // Fp2 sub coeff 0/1 + let t75 = circuit_sub(t73, t29); // Fp2 sub coeff 1/1 + let t76 = circuit_sub(t74, t32); // Fp2 sub coeff 0/1 + let t77 = circuit_sub(t75, t35); // Fp2 sub coeff 1/1 + let t78 = circuit_add(t38, t41); + let t79 = circuit_mul(t78, in0); + let t80 = circuit_mul(t38, in1); + let t81 = circuit_sub(t80, t41); + let t82 = circuit_sub(t79, t80); + let t83 = circuit_sub(t82, t41); + let t84 = circuit_add(t76, t81); // Fp2 add coeff 0/1 + let t85 = circuit_add(t77, t83); // Fp2 add coeff 1/1 + let t86 = circuit_add(in14, in18); // Fp2 add coeff 0/1 + let t87 = circuit_add(in15, in19); // Fp2 add coeff 1/1 + let t88 = circuit_add(in20, in24); // Fp2 add coeff 0/1 + let t89 = circuit_add(in21, in25); // Fp2 add coeff 1/1 + let t90 = circuit_mul(t88, t86); // Fp2 mul start + let t91 = circuit_mul(t89, t87); + let t92 = circuit_sub(t90, t91); // Fp2 mul real part end + let t93 = circuit_mul(t88, t87); + let t94 = circuit_mul(t89, t86); + let t95 = circuit_add(t93, t94); // Fp2 mul imag part end + let t96 = circuit_sub(t92, t26); // Fp2 sub coeff 0/1 + let t97 = circuit_sub(t95, t29); // Fp2 sub coeff 1/1 + let t98 = circuit_sub(t96, t38); // Fp2 sub coeff 0/1 + let t99 = circuit_sub(t97, t41); // Fp2 sub coeff 1/1 + let t100 = circuit_add(t98, t32); // Fp2 add coeff 0/1 + let t101 = circuit_add(t99, t35); // Fp2 add coeff 1/1 + let t102 = circuit_mul(t0, t18); // Fp2 mul start + let t103 = circuit_mul(t1, t19); + let t104 = circuit_sub(t102, t103); // Fp2 mul real part end + let t105 = circuit_mul(t0, t19); + let t106 = circuit_mul(t1, t18); + let t107 = circuit_add(t105, t106); // Fp2 mul imag part end + let t108 = circuit_mul(t2, t20); // Fp2 mul start + let t109 = circuit_mul(t3, t21); + let t110 = circuit_sub(t108, t109); // Fp2 mul real part end + let t111 = circuit_mul(t2, t21); + let t112 = circuit_mul(t3, t20); + let t113 = circuit_add(t111, t112); // Fp2 mul imag part end + let t114 = circuit_mul(t4, t22); // Fp2 mul start + let t115 = circuit_mul(t5, t23); + let t116 = circuit_sub(t114, t115); // Fp2 mul real part end + let t117 = circuit_mul(t4, t23); + let t118 = circuit_mul(t5, t22); + let t119 = circuit_add(t117, t118); // Fp2 mul imag part end + let t120 = circuit_add(t2, t4); // Fp2 add coeff 0/1 + let t121 = circuit_add(t3, t5); // Fp2 add coeff 1/1 + let t122 = circuit_add(t20, t22); // Fp2 add coeff 0/1 + let t123 = circuit_add(t21, t23); // Fp2 add coeff 1/1 + let t124 = circuit_mul(t120, t122); // Fp2 mul start + let t125 = circuit_mul(t121, t123); + let t126 = circuit_sub(t124, t125); // Fp2 mul real part end + let t127 = circuit_mul(t120, t123); + let t128 = circuit_mul(t121, t122); + let t129 = circuit_add(t127, t128); // Fp2 mul imag part end + let t130 = circuit_sub(t126, t110); // Fp2 sub coeff 0/1 + let t131 = circuit_sub(t129, t113); // Fp2 sub coeff 1/1 + let t132 = circuit_sub(t130, t116); // Fp2 sub coeff 0/1 + let t133 = circuit_sub(t131, t119); // Fp2 sub coeff 1/1 + let t134 = circuit_add(t132, t133); + let t135 = circuit_mul(t134, in0); + let t136 = circuit_mul(t132, in1); + let t137 = circuit_sub(t136, t133); + let t138 = circuit_sub(t135, t136); + let t139 = circuit_sub(t138, t133); + let t140 = circuit_add(t137, t104); // Fp2 add coeff 0/1 + let t141 = circuit_add(t139, t107); // Fp2 add coeff 1/1 + let t142 = circuit_add(t0, t2); // Fp2 add coeff 0/1 + let t143 = circuit_add(t1, t3); // Fp2 add coeff 1/1 + let t144 = circuit_add(t18, t20); // Fp2 add coeff 0/1 + let t145 = circuit_add(t19, t21); // Fp2 add coeff 1/1 + let t146 = circuit_mul(t142, t144); // Fp2 mul start + let t147 = circuit_mul(t143, t145); + let t148 = circuit_sub(t146, t147); // Fp2 mul real part end + let t149 = circuit_mul(t142, t145); + let t150 = circuit_mul(t143, t144); + let t151 = circuit_add(t149, t150); // Fp2 mul imag part end + let t152 = circuit_sub(t148, t104); // Fp2 sub coeff 0/1 + let t153 = circuit_sub(t151, t107); // Fp2 sub coeff 1/1 + let t154 = circuit_sub(t152, t110); // Fp2 sub coeff 0/1 + let t155 = circuit_sub(t153, t113); // Fp2 sub coeff 1/1 + let t156 = circuit_add(t116, t119); + let t157 = circuit_mul(t156, in0); + let t158 = circuit_mul(t116, in1); + let t159 = circuit_sub(t158, t119); + let t160 = circuit_sub(t157, t158); + let t161 = circuit_sub(t160, t119); + let t162 = circuit_add(t154, t159); // Fp2 add coeff 0/1 + let t163 = circuit_add(t155, t161); // Fp2 add coeff 1/1 + let t164 = circuit_add(t0, t4); // Fp2 add coeff 0/1 + let t165 = circuit_add(t1, t5); // Fp2 add coeff 1/1 + let t166 = circuit_add(t18, t22); // Fp2 add coeff 0/1 + let t167 = circuit_add(t19, t23); // Fp2 add coeff 1/1 + let t168 = circuit_mul(t166, t164); // Fp2 mul start + let t169 = circuit_mul(t167, t165); + let t170 = circuit_sub(t168, t169); // Fp2 mul real part end + let t171 = circuit_mul(t166, t165); + let t172 = circuit_mul(t167, t164); + let t173 = circuit_add(t171, t172); // Fp2 mul imag part end + let t174 = circuit_sub(t170, t104); // Fp2 sub coeff 0/1 + let t175 = circuit_sub(t173, t107); // Fp2 sub coeff 1/1 + let t176 = circuit_sub(t174, t116); // Fp2 sub coeff 0/1 + let t177 = circuit_sub(t175, t119); // Fp2 sub coeff 1/1 + let t178 = circuit_add(t176, t110); // Fp2 add coeff 0/1 + let t179 = circuit_add(t177, t113); // Fp2 add coeff 1/1 + let t180 = circuit_add(t140, t62); // Fp6 add coeff 0/5 + let t181 = circuit_add(t141, t63); // Fp6 add coeff 1/5 + let t182 = circuit_add(t162, t84); // Fp6 add coeff 2/5 + let t183 = circuit_add(t163, t85); // Fp6 add coeff 3/5 + let t184 = circuit_add(t178, t100); // Fp6 add coeff 4/5 + let t185 = circuit_add(t179, t101); // Fp6 add coeff 5/5 + let t186 = circuit_add(t62, t62); // Fp6 add coeff 0/5 + let t187 = circuit_add(t63, t63); // Fp6 add coeff 1/5 + let t188 = circuit_add(t84, t84); // Fp6 add coeff 2/5 + let t189 = circuit_add(t85, t85); // Fp6 add coeff 3/5 + let t190 = circuit_add(t100, t100); // Fp6 add coeff 4/5 + let t191 = circuit_add(t101, t101); // Fp6 add coeff 5/5 + let t192 = circuit_add(t100, t101); + let t193 = circuit_mul(t192, in0); + let t194 = circuit_mul(t100, in1); + let t195 = circuit_sub(t194, t101); + let t196 = circuit_sub(t193, t194); + let t197 = circuit_sub(t196, t101); + let t198 = circuit_add(t180, t195); // Fp6 add coeff 0/5 + let t199 = circuit_add(t181, t197); // Fp6 add coeff 1/5 + let t200 = circuit_add(t182, t62); // Fp6 add coeff 2/5 + let t201 = circuit_add(t183, t63); // Fp6 add coeff 3/5 + let t202 = circuit_add(t184, t84); // Fp6 add coeff 4/5 + let t203 = circuit_add(t185, t85); // Fp6 add coeff 5/5 + let t204 = circuit_sub(in8, in12); // Fp2 sub coeff 0/1 + let t205 = circuit_sub(in9, in13); // Fp2 sub coeff 1/1 + let t206 = circuit_sub(in6, in10); // Fp2 sub coeff 0/1 + let t207 = circuit_sub(in7, in11); // Fp2 sub coeff 1/1 + let t208 = circuit_mul(t206, t206); // Fp2 Inv start + let t209 = circuit_mul(t207, t207); + let t210 = circuit_add(t208, t209); + let t211 = circuit_inverse(t210); + let t212 = circuit_mul(t206, t211); // Fp2 Inv real part end + let t213 = circuit_mul(t207, t211); + let t214 = circuit_sub(in2, t213); // Fp2 Inv imag part end + let t215 = circuit_mul(t204, t212); // Fp2 mul start + let t216 = circuit_mul(t205, t214); + let t217 = circuit_sub(t215, t216); // Fp2 mul real part end + let t218 = circuit_mul(t204, t214); + let t219 = circuit_mul(t205, t212); + let t220 = circuit_add(t218, t219); // Fp2 mul imag part end + let t221 = circuit_add(t217, t220); + let t222 = circuit_sub(t217, t220); + let t223 = circuit_mul(t221, t222); + let t224 = circuit_mul(t217, t220); + let t225 = circuit_add(t224, t224); + let t226 = circuit_add(in6, in10); // Fp2 add coeff 0/1 + let t227 = circuit_add(in7, in11); // Fp2 add coeff 1/1 + let t228 = circuit_sub(t223, t226); // Fp2 sub coeff 0/1 + let t229 = circuit_sub(t225, t227); // Fp2 sub coeff 1/1 + let t230 = circuit_mul(t217, in6); // Fp2 mul start + let t231 = circuit_mul(t220, in7); + let t232 = circuit_sub(t230, t231); // Fp2 mul real part end + let t233 = circuit_mul(t217, in7); + let t234 = circuit_mul(t220, in6); + let t235 = circuit_add(t233, t234); // Fp2 mul imag part end + let t236 = circuit_sub(t232, in8); // Fp2 sub coeff 0/1 + let t237 = circuit_sub(t235, in9); // Fp2 sub coeff 1/1 + let t238 = circuit_add(in8, in8); // Fp2 add coeff 0/1 + let t239 = circuit_add(in9, in9); // Fp2 add coeff 1/1 + let t240 = circuit_sub(t228, in6); // Fp2 sub coeff 0/1 + let t241 = circuit_sub(t229, in7); // Fp2 sub coeff 1/1 + let t242 = circuit_mul(t240, t240); // Fp2 Inv start + let t243 = circuit_mul(t241, t241); + let t244 = circuit_add(t242, t243); + let t245 = circuit_inverse(t244); + let t246 = circuit_mul(t240, t245); // Fp2 Inv real part end + let t247 = circuit_mul(t241, t245); + let t248 = circuit_sub(in2, t247); // Fp2 Inv imag part end + let t249 = circuit_mul(t238, t246); // Fp2 mul start + let t250 = circuit_mul(t239, t248); + let t251 = circuit_sub(t249, t250); // Fp2 mul real part end + let t252 = circuit_mul(t238, t248); + let t253 = circuit_mul(t239, t246); + let t254 = circuit_add(t252, t253); // Fp2 mul imag part end + let t255 = circuit_add(t217, t251); // Fp2 add coeff 0/1 + let t256 = circuit_add(t220, t254); // Fp2 add coeff 1/1 + let t257 = circuit_sub(in2, t255); // Fp2 neg coeff 0/1 + let t258 = circuit_sub(in2, t256); // Fp2 neg coeff 1/1 + let t259 = circuit_add(t257, t258); + let t260 = circuit_sub(t257, t258); + let t261 = circuit_mul(t259, t260); + let t262 = circuit_mul(t257, t258); + let t263 = circuit_add(t262, t262); + let t264 = circuit_sub(t261, in6); // Fp2 sub coeff 0/1 + let t265 = circuit_sub(t263, in7); // Fp2 sub coeff 1/1 + let t266 = circuit_sub(t264, t228); // Fp2 sub coeff 0/1 + let t267 = circuit_sub(t265, t229); // Fp2 sub coeff 1/1 + let t268 = circuit_sub(in6, t266); // Fp2 sub coeff 0/1 + let t269 = circuit_sub(in7, t267); // Fp2 sub coeff 1/1 + let t270 = circuit_mul(t257, t268); // Fp2 mul start + let t271 = circuit_mul(t258, t269); + let t272 = circuit_sub(t270, t271); // Fp2 mul real part end + let t273 = circuit_mul(t257, t269); + let t274 = circuit_mul(t258, t268); + let t275 = circuit_add(t273, t274); // Fp2 mul imag part end + let t276 = circuit_sub(t272, in8); // Fp2 sub coeff 0/1 + let t277 = circuit_sub(t275, in9); // Fp2 sub coeff 1/1 + let t278 = circuit_mul(t257, in6); // Fp2 mul start + let t279 = circuit_mul(t258, in7); + let t280 = circuit_sub(t278, t279); // Fp2 mul real part end + let t281 = circuit_mul(t257, in7); + let t282 = circuit_mul(t258, in6); + let t283 = circuit_add(t281, t282); // Fp2 mul imag part end + let t284 = circuit_sub(t280, in8); // Fp2 sub coeff 0/1 + let t285 = circuit_sub(t283, in9); // Fp2 sub coeff 1/1 + let t286 = circuit_mul(t217, in5); + let t287 = circuit_mul(t220, in5); + let t288 = circuit_mul(t236, in4); + let t289 = circuit_mul(t237, in4); + let t290 = circuit_mul(t257, in5); + let t291 = circuit_mul(t258, in5); + let t292 = circuit_mul(t284, in4); + let t293 = circuit_mul(t285, in4); + let t294 = circuit_mul(t186, t286); // Fp2 mul start + let t295 = circuit_mul(t187, t287); + let t296 = circuit_sub(t294, t295); // Fp2 mul real part end + let t297 = circuit_mul(t186, t287); + let t298 = circuit_mul(t187, t286); + let t299 = circuit_add(t297, t298); // Fp2 mul imag part end + let t300 = circuit_mul(t188, t288); // Fp2 mul start + let t301 = circuit_mul(t189, t289); + let t302 = circuit_sub(t300, t301); // Fp2 mul real part end + let t303 = circuit_mul(t188, t289); + let t304 = circuit_mul(t189, t288); + let t305 = circuit_add(t303, t304); // Fp2 mul imag part end + let t306 = circuit_add(t188, t190); // Fp2 add coeff 0/1 + let t307 = circuit_add(t189, t191); // Fp2 add coeff 1/1 + let t308 = circuit_mul(t288, t306); // Fp2 mul start + let t309 = circuit_mul(t289, t307); + let t310 = circuit_sub(t308, t309); // Fp2 mul real part end + let t311 = circuit_mul(t288, t307); + let t312 = circuit_mul(t289, t306); + let t313 = circuit_add(t311, t312); // Fp2 mul imag part end + let t314 = circuit_sub(t310, t302); // Fp2 sub coeff 0/1 + let t315 = circuit_sub(t313, t305); // Fp2 sub coeff 1/1 + let t316 = circuit_add(t314, t315); + let t317 = circuit_mul(t316, in0); + let t318 = circuit_mul(t314, in1); + let t319 = circuit_sub(t318, t315); + let t320 = circuit_sub(t317, t318); + let t321 = circuit_sub(t320, t315); + let t322 = circuit_add(t319, t296); // Fp2 add coeff 0/1 + let t323 = circuit_add(t321, t299); // Fp2 add coeff 1/1 + let t324 = circuit_add(t186, t190); // Fp2 add coeff 0/1 + let t325 = circuit_add(t187, t191); // Fp2 add coeff 1/1 + let t326 = circuit_mul(t286, t324); // Fp2 mul start + let t327 = circuit_mul(t287, t325); + let t328 = circuit_sub(t326, t327); // Fp2 mul real part end + let t329 = circuit_mul(t286, t325); + let t330 = circuit_mul(t287, t324); + let t331 = circuit_add(t329, t330); // Fp2 mul imag part end + let t332 = circuit_sub(t328, t296); // Fp2 sub coeff 0/1 + let t333 = circuit_sub(t331, t299); // Fp2 sub coeff 1/1 + let t334 = circuit_add(t332, t302); // Fp2 add coeff 0/1 + let t335 = circuit_add(t333, t305); // Fp2 add coeff 1/1 + let t336 = circuit_add(t286, t288); // Fp2 add coeff 0/1 + let t337 = circuit_add(t287, t289); // Fp2 add coeff 1/1 + let t338 = circuit_add(t186, t188); // Fp2 add coeff 0/1 + let t339 = circuit_add(t187, t189); // Fp2 add coeff 1/1 + let t340 = circuit_mul(t336, t338); // Fp2 mul start + let t341 = circuit_mul(t337, t339); + let t342 = circuit_sub(t340, t341); // Fp2 mul real part end + let t343 = circuit_mul(t336, t339); + let t344 = circuit_mul(t337, t338); + let t345 = circuit_add(t343, t344); // Fp2 mul imag part end + let t346 = circuit_sub(t342, t296); // Fp2 sub coeff 0/1 + let t347 = circuit_sub(t345, t299); // Fp2 sub coeff 1/1 + let t348 = circuit_sub(t346, t302); // Fp2 sub coeff 0/1 + let t349 = circuit_sub(t347, t305); // Fp2 sub coeff 1/1 + let t350 = circuit_add(in3, t286); // Fp2 add coeff 0/1 + let t351 = circuit_add(in2, t287); // Fp2 add coeff 1/1 + let t352 = circuit_add(t198, t186); // Fp6 add coeff 0/5 + let t353 = circuit_add(t199, t187); // Fp6 add coeff 1/5 + let t354 = circuit_add(t200, t188); // Fp6 add coeff 2/5 + let t355 = circuit_add(t201, t189); // Fp6 add coeff 3/5 + let t356 = circuit_add(t202, t190); // Fp6 add coeff 4/5 + let t357 = circuit_add(t203, t191); // Fp6 add coeff 5/5 + let t358 = circuit_mul(t352, t350); // Fp2 mul start + let t359 = circuit_mul(t353, t351); + let t360 = circuit_sub(t358, t359); // Fp2 mul real part end + let t361 = circuit_mul(t352, t351); + let t362 = circuit_mul(t353, t350); + let t363 = circuit_add(t361, t362); // Fp2 mul imag part end + let t364 = circuit_mul(t354, t288); // Fp2 mul start + let t365 = circuit_mul(t355, t289); + let t366 = circuit_sub(t364, t365); // Fp2 mul real part end + let t367 = circuit_mul(t354, t289); + let t368 = circuit_mul(t355, t288); + let t369 = circuit_add(t367, t368); // Fp2 mul imag part end + let t370 = circuit_add(t354, t356); // Fp2 add coeff 0/1 + let t371 = circuit_add(t355, t357); // Fp2 add coeff 1/1 + let t372 = circuit_mul(t288, t370); // Fp2 mul start + let t373 = circuit_mul(t289, t371); + let t374 = circuit_sub(t372, t373); // Fp2 mul real part end + let t375 = circuit_mul(t288, t371); + let t376 = circuit_mul(t289, t370); + let t377 = circuit_add(t375, t376); // Fp2 mul imag part end + let t378 = circuit_sub(t374, t366); // Fp2 sub coeff 0/1 + let t379 = circuit_sub(t377, t369); // Fp2 sub coeff 1/1 + let t380 = circuit_add(t378, t379); + let t381 = circuit_mul(t380, in0); + let t382 = circuit_mul(t378, in1); + let t383 = circuit_sub(t382, t379); + let t384 = circuit_sub(t381, t382); + let t385 = circuit_sub(t384, t379); + let t386 = circuit_add(t383, t360); // Fp2 add coeff 0/1 + let t387 = circuit_add(t385, t363); // Fp2 add coeff 1/1 + let t388 = circuit_add(t352, t356); // Fp2 add coeff 0/1 + let t389 = circuit_add(t353, t357); // Fp2 add coeff 1/1 + let t390 = circuit_mul(t350, t388); // Fp2 mul start + let t391 = circuit_mul(t351, t389); + let t392 = circuit_sub(t390, t391); // Fp2 mul real part end + let t393 = circuit_mul(t350, t389); + let t394 = circuit_mul(t351, t388); + let t395 = circuit_add(t393, t394); // Fp2 mul imag part end + let t396 = circuit_sub(t392, t360); // Fp2 sub coeff 0/1 + let t397 = circuit_sub(t395, t363); // Fp2 sub coeff 1/1 + let t398 = circuit_add(t396, t366); // Fp2 add coeff 0/1 + let t399 = circuit_add(t397, t369); // Fp2 add coeff 1/1 + let t400 = circuit_add(t350, t288); // Fp2 add coeff 0/1 + let t401 = circuit_add(t351, t289); // Fp2 add coeff 1/1 + let t402 = circuit_add(t352, t354); // Fp2 add coeff 0/1 + let t403 = circuit_add(t353, t355); // Fp2 add coeff 1/1 + let t404 = circuit_mul(t400, t402); // Fp2 mul start + let t405 = circuit_mul(t401, t403); + let t406 = circuit_sub(t404, t405); // Fp2 mul real part end + let t407 = circuit_mul(t400, t403); + let t408 = circuit_mul(t401, t402); + let t409 = circuit_add(t407, t408); // Fp2 mul imag part end + let t410 = circuit_sub(t406, t360); // Fp2 sub coeff 0/1 + let t411 = circuit_sub(t409, t363); // Fp2 sub coeff 1/1 + let t412 = circuit_sub(t410, t366); // Fp2 sub coeff 0/1 + let t413 = circuit_sub(t411, t369); // Fp2 sub coeff 1/1 + let t414 = circuit_add(t198, t322); // Fp6 add coeff 0/5 + let t415 = circuit_add(t199, t323); // Fp6 add coeff 1/5 + let t416 = circuit_add(t200, t348); // Fp6 add coeff 2/5 + let t417 = circuit_add(t201, t349); // Fp6 add coeff 3/5 + let t418 = circuit_add(t202, t334); // Fp6 add coeff 4/5 + let t419 = circuit_add(t203, t335); // Fp6 add coeff 5/5 + let t420 = circuit_sub(in2, t414); // Fp6 neg coeff 0/5 + let t421 = circuit_sub(in2, t415); // Fp6 neg coeff 1/5 + let t422 = circuit_sub(in2, t416); // Fp6 neg coeff 2/5 + let t423 = circuit_sub(in2, t417); // Fp6 neg coeff 3/5 + let t424 = circuit_sub(in2, t418); // Fp6 neg coeff 4/5 + let t425 = circuit_sub(in2, t419); // Fp6 neg coeff 5/5 + let t426 = circuit_add(t420, t386); // Fp6 add coeff 0/5 + let t427 = circuit_add(t421, t387); // Fp6 add coeff 1/5 + let t428 = circuit_add(t422, t412); // Fp6 add coeff 2/5 + let t429 = circuit_add(t423, t413); // Fp6 add coeff 3/5 + let t430 = circuit_add(t424, t398); // Fp6 add coeff 4/5 + let t431 = circuit_add(t425, t399); // Fp6 add coeff 5/5 + let t432 = circuit_add(t334, t335); + let t433 = circuit_mul(t432, in0); + let t434 = circuit_mul(t334, in1); + let t435 = circuit_sub(t434, t335); + let t436 = circuit_sub(t433, t434); + let t437 = circuit_sub(t436, t335); + let t438 = circuit_add(t435, t198); // Fp6 add coeff 0/5 + let t439 = circuit_add(t437, t199); // Fp6 add coeff 1/5 + let t440 = circuit_add(t322, t200); // Fp6 add coeff 2/5 + let t441 = circuit_add(t323, t201); // Fp6 add coeff 3/5 + let t442 = circuit_add(t348, t202); // Fp6 add coeff 4/5 + let t443 = circuit_add(t349, t203); // Fp6 add coeff 5/5 + let t444 = circuit_mul(t426, t290); // Fp2 mul start + let t445 = circuit_mul(t427, t291); + let t446 = circuit_sub(t444, t445); // Fp2 mul real part end + let t447 = circuit_mul(t426, t291); + let t448 = circuit_mul(t427, t290); + let t449 = circuit_add(t447, t448); // Fp2 mul imag part end + let t450 = circuit_mul(t428, t292); // Fp2 mul start + let t451 = circuit_mul(t429, t293); + let t452 = circuit_sub(t450, t451); // Fp2 mul real part end + let t453 = circuit_mul(t428, t293); + let t454 = circuit_mul(t429, t292); + let t455 = circuit_add(t453, t454); // Fp2 mul imag part end + let t456 = circuit_add(t428, t430); // Fp2 add coeff 0/1 + let t457 = circuit_add(t429, t431); // Fp2 add coeff 1/1 + let t458 = circuit_mul(t292, t456); // Fp2 mul start + let t459 = circuit_mul(t293, t457); + let t460 = circuit_sub(t458, t459); // Fp2 mul real part end + let t461 = circuit_mul(t292, t457); + let t462 = circuit_mul(t293, t456); + let t463 = circuit_add(t461, t462); // Fp2 mul imag part end + let t464 = circuit_sub(t460, t452); // Fp2 sub coeff 0/1 + let t465 = circuit_sub(t463, t455); // Fp2 sub coeff 1/1 + let t466 = circuit_add(t464, t465); + let t467 = circuit_mul(t466, in0); + let t468 = circuit_mul(t464, in1); + let t469 = circuit_sub(t468, t465); + let t470 = circuit_sub(t467, t468); + let t471 = circuit_sub(t470, t465); + let t472 = circuit_add(t469, t446); // Fp2 add coeff 0/1 + let t473 = circuit_add(t471, t449); // Fp2 add coeff 1/1 + let t474 = circuit_add(t426, t430); // Fp2 add coeff 0/1 + let t475 = circuit_add(t427, t431); // Fp2 add coeff 1/1 + let t476 = circuit_mul(t290, t474); // Fp2 mul start + let t477 = circuit_mul(t291, t475); + let t478 = circuit_sub(t476, t477); // Fp2 mul real part end + let t479 = circuit_mul(t290, t475); + let t480 = circuit_mul(t291, t474); + let t481 = circuit_add(t479, t480); // Fp2 mul imag part end + let t482 = circuit_sub(t478, t446); // Fp2 sub coeff 0/1 + let t483 = circuit_sub(t481, t449); // Fp2 sub coeff 1/1 + let t484 = circuit_add(t482, t452); // Fp2 add coeff 0/1 + let t485 = circuit_add(t483, t455); // Fp2 add coeff 1/1 + let t486 = circuit_add(t290, t292); // Fp2 add coeff 0/1 + let t487 = circuit_add(t291, t293); // Fp2 add coeff 1/1 + let t488 = circuit_add(t426, t428); // Fp2 add coeff 0/1 + let t489 = circuit_add(t427, t429); // Fp2 add coeff 1/1 + let t490 = circuit_mul(t486, t488); // Fp2 mul start + let t491 = circuit_mul(t487, t489); + let t492 = circuit_sub(t490, t491); // Fp2 mul real part end + let t493 = circuit_mul(t486, t489); + let t494 = circuit_mul(t487, t488); + let t495 = circuit_add(t493, t494); // Fp2 mul imag part end + let t496 = circuit_sub(t492, t446); // Fp2 sub coeff 0/1 + let t497 = circuit_sub(t495, t449); // Fp2 sub coeff 1/1 + let t498 = circuit_sub(t496, t452); // Fp2 sub coeff 0/1 + let t499 = circuit_sub(t497, t455); // Fp2 sub coeff 1/1 + let t500 = circuit_add(in3, t290); // Fp2 add coeff 0/1 + let t501 = circuit_add(in2, t291); // Fp2 add coeff 1/1 + let t502 = circuit_add(t438, t426); // Fp6 add coeff 0/5 + let t503 = circuit_add(t439, t427); // Fp6 add coeff 1/5 + let t504 = circuit_add(t440, t428); // Fp6 add coeff 2/5 + let t505 = circuit_add(t441, t429); // Fp6 add coeff 3/5 + let t506 = circuit_add(t442, t430); // Fp6 add coeff 4/5 + let t507 = circuit_add(t443, t431); // Fp6 add coeff 5/5 + let t508 = circuit_mul(t502, t500); // Fp2 mul start + let t509 = circuit_mul(t503, t501); + let t510 = circuit_sub(t508, t509); // Fp2 mul real part end + let t511 = circuit_mul(t502, t501); + let t512 = circuit_mul(t503, t500); + let t513 = circuit_add(t511, t512); // Fp2 mul imag part end + let t514 = circuit_mul(t504, t292); // Fp2 mul start + let t515 = circuit_mul(t505, t293); + let t516 = circuit_sub(t514, t515); // Fp2 mul real part end + let t517 = circuit_mul(t504, t293); + let t518 = circuit_mul(t505, t292); + let t519 = circuit_add(t517, t518); // Fp2 mul imag part end + let t520 = circuit_add(t504, t506); // Fp2 add coeff 0/1 + let t521 = circuit_add(t505, t507); // Fp2 add coeff 1/1 + let t522 = circuit_mul(t292, t520); // Fp2 mul start + let t523 = circuit_mul(t293, t521); + let t524 = circuit_sub(t522, t523); // Fp2 mul real part end + let t525 = circuit_mul(t292, t521); + let t526 = circuit_mul(t293, t520); + let t527 = circuit_add(t525, t526); // Fp2 mul imag part end + let t528 = circuit_sub(t524, t516); // Fp2 sub coeff 0/1 + let t529 = circuit_sub(t527, t519); // Fp2 sub coeff 1/1 + let t530 = circuit_add(t528, t529); + let t531 = circuit_mul(t530, in0); + let t532 = circuit_mul(t528, in1); + let t533 = circuit_sub(t532, t529); + let t534 = circuit_sub(t531, t532); + let t535 = circuit_sub(t534, t529); + let t536 = circuit_add(t533, t510); // Fp2 add coeff 0/1 + let t537 = circuit_add(t535, t513); // Fp2 add coeff 1/1 + let t538 = circuit_add(t502, t506); // Fp2 add coeff 0/1 + let t539 = circuit_add(t503, t507); // Fp2 add coeff 1/1 + let t540 = circuit_mul(t500, t538); // Fp2 mul start + let t541 = circuit_mul(t501, t539); + let t542 = circuit_sub(t540, t541); // Fp2 mul real part end + let t543 = circuit_mul(t500, t539); + let t544 = circuit_mul(t501, t538); + let t545 = circuit_add(t543, t544); // Fp2 mul imag part end + let t546 = circuit_sub(t542, t510); // Fp2 sub coeff 0/1 + let t547 = circuit_sub(t545, t513); // Fp2 sub coeff 1/1 + let t548 = circuit_add(t546, t516); // Fp2 add coeff 0/1 + let t549 = circuit_add(t547, t519); // Fp2 add coeff 1/1 + let t550 = circuit_add(t500, t292); // Fp2 add coeff 0/1 + let t551 = circuit_add(t501, t293); // Fp2 add coeff 1/1 + let t552 = circuit_add(t502, t504); // Fp2 add coeff 0/1 + let t553 = circuit_add(t503, t505); // Fp2 add coeff 1/1 + let t554 = circuit_mul(t550, t552); // Fp2 mul start + let t555 = circuit_mul(t551, t553); + let t556 = circuit_sub(t554, t555); // Fp2 mul real part end + let t557 = circuit_mul(t550, t553); + let t558 = circuit_mul(t551, t552); + let t559 = circuit_add(t557, t558); // Fp2 mul imag part end + let t560 = circuit_sub(t556, t510); // Fp2 sub coeff 0/1 + let t561 = circuit_sub(t559, t513); // Fp2 sub coeff 1/1 + let t562 = circuit_sub(t560, t516); // Fp2 sub coeff 0/1 + let t563 = circuit_sub(t561, t519); // Fp2 sub coeff 1/1 + let t564 = circuit_add(t438, t472); // Fp6 add coeff 0/5 + let t565 = circuit_add(t439, t473); // Fp6 add coeff 1/5 + let t566 = circuit_add(t440, t498); // Fp6 add coeff 2/5 + let t567 = circuit_add(t441, t499); // Fp6 add coeff 3/5 + let t568 = circuit_add(t442, t484); // Fp6 add coeff 4/5 + let t569 = circuit_add(t443, t485); // Fp6 add coeff 5/5 + let t570 = circuit_sub(in2, t564); // Fp6 neg coeff 0/5 + let t571 = circuit_sub(in2, t565); // Fp6 neg coeff 1/5 + let t572 = circuit_sub(in2, t566); // Fp6 neg coeff 2/5 + let t573 = circuit_sub(in2, t567); // Fp6 neg coeff 3/5 + let t574 = circuit_sub(in2, t568); // Fp6 neg coeff 4/5 + let t575 = circuit_sub(in2, t569); // Fp6 neg coeff 5/5 + let t576 = circuit_add(t570, t536); // Fp6 add coeff 0/5 + let t577 = circuit_add(t571, t537); // Fp6 add coeff 1/5 + let t578 = circuit_add(t572, t562); // Fp6 add coeff 2/5 + let t579 = circuit_add(t573, t563); // Fp6 add coeff 3/5 + let t580 = circuit_add(t574, t548); // Fp6 add coeff 4/5 + let t581 = circuit_add(t575, t549); // Fp6 add coeff 5/5 + let t582 = circuit_add(t484, t485); + let t583 = circuit_mul(t582, in0); + let t584 = circuit_mul(t484, in1); + let t585 = circuit_sub(t584, t485); + let t586 = circuit_sub(t583, t584); + let t587 = circuit_sub(t586, t485); + let t588 = circuit_add(t585, t438); // Fp6 add coeff 0/5 + let t589 = circuit_add(t587, t439); // Fp6 add coeff 1/5 + let t590 = circuit_add(t472, t440); // Fp6 add coeff 2/5 + let t591 = circuit_add(t473, t441); // Fp6 add coeff 3/5 + let t592 = circuit_add(t498, t442); // Fp6 add coeff 4/5 + let t593 = circuit_add(t499, t443); // Fp6 add coeff 5/5 + let t594 = circuit_add(t266, t267); + let t595 = circuit_add(t594, t276); + let t596 = circuit_add(t595, t277); + + let modulus = get_BN254_modulus(); // BN254 prime field modulus + + let mut circuit_inputs = ( + t596, t588, t589, t590, t591, t592, t593, t576, t577, t578, t579, t580, t581, + ) + .new_inputs(); + // Prefill constants: + circuit_inputs = circuit_inputs.next_2([0xa, 0x0, 0x0, 0x0]); // in0 + circuit_inputs = circuit_inputs.next_2([0x9, 0x0, 0x0, 0x0]); // in1 + circuit_inputs = circuit_inputs.next_2([0x0, 0x0, 0x0, 0x0]); // in2 + circuit_inputs = circuit_inputs.next_2([0x1, 0x0, 0x0, 0x0]); // in3 + // Fill inputs: + circuit_inputs = circuit_inputs.next_2(yInv_0); // in4 + circuit_inputs = circuit_inputs.next_2(xNegOverY_0); // in5 + circuit_inputs = circuit_inputs.next_2(Q_0.x0); // in6 + circuit_inputs = circuit_inputs.next_2(Q_0.x1); // in7 + circuit_inputs = circuit_inputs.next_2(Q_0.y0); // in8 + circuit_inputs = circuit_inputs.next_2(Q_0.y1); // in9 + circuit_inputs = circuit_inputs.next_2(Q_or_Q_neg_0.x0); // in10 + circuit_inputs = circuit_inputs.next_2(Q_or_Q_neg_0.x1); // in11 + circuit_inputs = circuit_inputs.next_2(Q_or_Q_neg_0.y0); // in12 + circuit_inputs = circuit_inputs.next_2(Q_or_Q_neg_0.y1); // in13 + circuit_inputs = circuit_inputs.next_2(M_i.c0b0a0); // in14 + circuit_inputs = circuit_inputs.next_2(M_i.c0b0a1); // in15 + circuit_inputs = circuit_inputs.next_2(M_i.c0b1a0); // in16 + circuit_inputs = circuit_inputs.next_2(M_i.c0b1a1); // in17 + circuit_inputs = circuit_inputs.next_2(M_i.c0b2a0); // in18 + circuit_inputs = circuit_inputs.next_2(M_i.c0b2a1); // in19 + circuit_inputs = circuit_inputs.next_2(M_i.c1b0a0); // in20 + circuit_inputs = circuit_inputs.next_2(M_i.c1b0a1); // in21 + circuit_inputs = circuit_inputs.next_2(M_i.c1b1a0); // in22 + circuit_inputs = circuit_inputs.next_2(M_i.c1b1a1); // in23 + circuit_inputs = circuit_inputs.next_2(M_i.c1b2a0); // in24 + circuit_inputs = circuit_inputs.next_2(M_i.c1b2a1); // in25 + + let outputs = circuit_inputs.done_2().eval(modulus).unwrap(); + let Q0: G2Point = G2Point { + x0: outputs.get_output(t266), + x1: outputs.get_output(t267), + y0: outputs.get_output(t276), + y1: outputs.get_output(t277), + }; + let Mi_plus_one: E12T = E12T { + c0b0a0: outputs.get_output(t588), + c0b0a1: outputs.get_output(t589), + c0b1a0: outputs.get_output(t590), + c0b1a1: outputs.get_output(t591), + c0b2a0: outputs.get_output(t592), + c0b2a1: outputs.get_output(t593), + c1b0a0: outputs.get_output(t576), + c1b0a1: outputs.get_output(t577), + c1b1a0: outputs.get_output(t578), + c1b1a1: outputs.get_output(t579), + c1b2a0: outputs.get_output(t580), + c1b2a1: outputs.get_output(t581), + }; + return (Q0, Mi_plus_one); +} +#[inline(always)] +pub fn run_BN254_TOWER_MILLER_FINALIZE_BN_1P_circuit( + original_Q0: G2Point, yInv_0: u384, xNegOverY_0: u384, Q_0: G2Point, Mi: E12T, +) -> (E12T,) { + // CONSTANT stack + let in0 = CE::> {}; // 0x2fb347984f7911f74c0bec3cf559b143b78cc310c2c3330c99e39557176f553d + let in1 = CE::> {}; // 0x16c9e55061ebae204ba4cc8bd75a079432ae2a1d0b7c9dce1665d51c640fcba2 + let in2 = CE::> {}; // 0x63cf305489af5dcdc5ec698b6e2f9b9dbaae0eda9c95998dc54014671a0135a + let in3 = CE::> {}; // 0x7c03cbcac41049a0704b5a7ec796f2b21807dc98fa25bd282d37f632623b0e3 + let in4 = CE::> {}; // 0x30644e72e131a0295e6dd9e7e0acccb0c28f069fbb966e3de4bd44e5607cfd48 + let in5 = CE::> {}; // 0x1 + let in6 = CE::> {}; // 0x0 + let in7 = CE::> {}; // 0xa + let in8 = CE::> {}; // 0x9 + + // INPUT stack + let (in9, in10, in11) = (CE::> {}, CE::> {}, CE::> {}); + let (in12, in13, in14) = (CE::> {}, CE::> {}, CE::> {}); + let (in15, in16, in17) = (CE::> {}, CE::> {}, CE::> {}); + let (in18, in19, in20) = (CE::> {}, CE::> {}, CE::> {}); + let (in21, in22, in23) = (CE::> {}, CE::> {}, CE::> {}); + let (in24, in25, in26) = (CE::> {}, CE::> {}, CE::> {}); + let (in27, in28, in29) = (CE::> {}, CE::> {}, CE::> {}); + let in30 = CE::> {}; + let t0 = circuit_sub(in6, in10); + let t1 = circuit_sub(in6, in12); + let t2 = circuit_mul(in9, in0); // Fp2 mul start + let t3 = circuit_mul(t0, in1); + let t4 = circuit_sub(t2, t3); // Fp2 mul real part end + let t5 = circuit_mul(in9, in1); + let t6 = circuit_mul(t0, in0); + let t7 = circuit_add(t5, t6); // Fp2 mul imag part end + let t8 = circuit_mul(in11, in2); // Fp2 mul start + let t9 = circuit_mul(t1, in3); + let t10 = circuit_sub(t8, t9); // Fp2 mul real part end + let t11 = circuit_mul(in11, in3); + let t12 = circuit_mul(t1, in2); + let t13 = circuit_add(t11, t12); // Fp2 mul imag part end + let t14 = circuit_mul(in9, in4); // Fp2 scalar mul coeff 0/1 + let t15 = circuit_mul(in10, in4); // Fp2 scalar mul coeff 1/1 + let t16 = circuit_mul(in11, in5); // Fp2 scalar mul coeff 0/1 + let t17 = circuit_mul(in12, in5); // Fp2 scalar mul coeff 1/1 + let t18 = circuit_sub(in17, t10); // Fp2 sub coeff 0/1 + let t19 = circuit_sub(in18, t13); // Fp2 sub coeff 1/1 + let t20 = circuit_sub(in15, t4); // Fp2 sub coeff 0/1 + let t21 = circuit_sub(in16, t7); // Fp2 sub coeff 1/1 + let t22 = circuit_mul(t20, t20); // Fp2 Inv start + let t23 = circuit_mul(t21, t21); + let t24 = circuit_add(t22, t23); + let t25 = circuit_inverse(t24); + let t26 = circuit_mul(t20, t25); // Fp2 Inv real part end + let t27 = circuit_mul(t21, t25); + let t28 = circuit_sub(in6, t27); // Fp2 Inv imag part end + let t29 = circuit_mul(t18, t26); // Fp2 mul start + let t30 = circuit_mul(t19, t28); + let t31 = circuit_sub(t29, t30); // Fp2 mul real part end + let t32 = circuit_mul(t18, t28); + let t33 = circuit_mul(t19, t26); + let t34 = circuit_add(t32, t33); // Fp2 mul imag part end + let t35 = circuit_add(t31, t34); + let t36 = circuit_sub(t31, t34); + let t37 = circuit_mul(t35, t36); + let t38 = circuit_mul(t31, t34); + let t39 = circuit_add(t38, t38); + let t40 = circuit_add(in15, t4); // Fp2 add coeff 0/1 + let t41 = circuit_add(in16, t7); // Fp2 add coeff 1/1 + let t42 = circuit_sub(t37, t40); // Fp2 sub coeff 0/1 + let t43 = circuit_sub(t39, t41); // Fp2 sub coeff 1/1 + let t44 = circuit_sub(in15, t42); // Fp2 sub coeff 0/1 + let t45 = circuit_sub(in16, t43); // Fp2 sub coeff 1/1 + let t46 = circuit_mul(t31, t44); // Fp2 mul start + let t47 = circuit_mul(t34, t45); + let t48 = circuit_sub(t46, t47); // Fp2 mul real part end + let t49 = circuit_mul(t31, t45); + let t50 = circuit_mul(t34, t44); + let t51 = circuit_add(t49, t50); // Fp2 mul imag part end + let t52 = circuit_sub(t48, in17); // Fp2 sub coeff 0/1 + let t53 = circuit_sub(t51, in18); // Fp2 sub coeff 1/1 + let t54 = circuit_mul(t31, in15); // Fp2 mul start + let t55 = circuit_mul(t34, in16); + let t56 = circuit_sub(t54, t55); // Fp2 mul real part end + let t57 = circuit_mul(t31, in16); + let t58 = circuit_mul(t34, in15); + let t59 = circuit_add(t57, t58); // Fp2 mul imag part end + let t60 = circuit_sub(t56, in17); // Fp2 sub coeff 0/1 + let t61 = circuit_sub(t59, in18); // Fp2 sub coeff 1/1 + let t62 = circuit_sub(t52, t16); // Fp2 sub coeff 0/1 + let t63 = circuit_sub(t53, t17); // Fp2 sub coeff 1/1 + let t64 = circuit_sub(t42, t14); // Fp2 sub coeff 0/1 + let t65 = circuit_sub(t43, t15); // Fp2 sub coeff 1/1 + let t66 = circuit_mul(t64, t64); // Fp2 Inv start + let t67 = circuit_mul(t65, t65); + let t68 = circuit_add(t66, t67); + let t69 = circuit_inverse(t68); + let t70 = circuit_mul(t64, t69); // Fp2 Inv real part end + let t71 = circuit_mul(t65, t69); + let t72 = circuit_sub(in6, t71); // Fp2 Inv imag part end + let t73 = circuit_mul(t62, t70); // Fp2 mul start + let t74 = circuit_mul(t63, t72); + let t75 = circuit_sub(t73, t74); // Fp2 mul real part end + let t76 = circuit_mul(t62, t72); + let t77 = circuit_mul(t63, t70); + let t78 = circuit_add(t76, t77); // Fp2 mul imag part end + let t79 = circuit_mul(t75, t42); // Fp2 mul start + let t80 = circuit_mul(t78, t43); + let t81 = circuit_sub(t79, t80); // Fp2 mul real part end + let t82 = circuit_mul(t75, t43); + let t83 = circuit_mul(t78, t42); + let t84 = circuit_add(t82, t83); // Fp2 mul imag part end + let t85 = circuit_sub(t81, t52); // Fp2 sub coeff 0/1 + let t86 = circuit_sub(t84, t53); // Fp2 sub coeff 1/1 + let t87 = circuit_mul(t31, in14); + let t88 = circuit_mul(t34, in14); + let t89 = circuit_mul(t60, in13); + let t90 = circuit_mul(t61, in13); + let t91 = circuit_mul(t75, in14); + let t92 = circuit_mul(t78, in14); + let t93 = circuit_mul(t85, in13); + let t94 = circuit_mul(t86, in13); + let t95 = circuit_mul(t91, t87); // Fp2 mul start + let t96 = circuit_mul(t92, t88); + let t97 = circuit_sub(t95, t96); // Fp2 mul real part end + let t98 = circuit_mul(t91, t88); + let t99 = circuit_mul(t92, t87); + let t100 = circuit_add(t98, t99); // Fp2 mul imag part end + let t101 = circuit_mul(t93, t89); // Fp2 mul start + let t102 = circuit_mul(t94, t90); + let t103 = circuit_sub(t101, t102); // Fp2 mul real part end + let t104 = circuit_mul(t93, t90); + let t105 = circuit_mul(t94, t89); + let t106 = circuit_add(t104, t105); // Fp2 mul imag part end + let t107 = circuit_add(t93, t89); // Fp2 add coeff 0/1 + let t108 = circuit_add(t94, t90); // Fp2 add coeff 1/1 + let t109 = circuit_add(t91, t87); // Fp2 add coeff 0/1 + let t110 = circuit_add(t92, t88); // Fp2 add coeff 1/1 + let t111 = circuit_add(t91, t93); // Fp2 add coeff 0/1 + let t112 = circuit_add(t92, t94); // Fp2 add coeff 1/1 + let t113 = circuit_add(t87, t89); // Fp2 add coeff 0/1 + let t114 = circuit_add(t88, t90); // Fp2 add coeff 1/1 + let t115 = circuit_mul(t113, t111); // Fp2 mul start + let t116 = circuit_mul(t114, t112); + let t117 = circuit_sub(t115, t116); // Fp2 mul real part end + let t118 = circuit_mul(t113, t112); + let t119 = circuit_mul(t114, t111); + let t120 = circuit_add(t118, t119); // Fp2 mul imag part end + let t121 = circuit_sub(t117, t97); // Fp2 sub coeff 0/1 + let t122 = circuit_sub(t120, t100); // Fp2 sub coeff 1/1 + let t123 = circuit_sub(t121, t103); // Fp2 sub coeff 0/1 + let t124 = circuit_sub(t122, t106); // Fp2 sub coeff 1/1 + let t125 = circuit_add(t103, t106); + let t126 = circuit_mul(t125, in7); + let t127 = circuit_mul(t103, in8); + let t128 = circuit_sub(t127, t106); + let t129 = circuit_sub(t126, t127); + let t130 = circuit_sub(t129, t106); + let t131 = circuit_add(t128, in5); + let t132 = circuit_add(in19, in25); // Fp6 add coeff 0/5 + let t133 = circuit_add(in20, in26); // Fp6 add coeff 1/5 + let t134 = circuit_add(in21, in27); // Fp6 add coeff 2/5 + let t135 = circuit_add(in22, in28); // Fp6 add coeff 3/5 + let t136 = circuit_add(in23, in29); // Fp6 add coeff 4/5 + let t137 = circuit_add(in24, in30); // Fp6 add coeff 5/5 + let t138 = circuit_add(t131, t109); // Fp6 add coeff 0/5 + let t139 = circuit_add(t130, t110); // Fp6 add coeff 1/5 + let t140 = circuit_add(t97, t107); // Fp6 add coeff 2/5 + let t141 = circuit_add(t100, t108); // Fp6 add coeff 3/5 + let t142 = circuit_add(t123, in6); // Fp6 add coeff 4/5 + let t143 = circuit_add(t124, in6); // Fp6 add coeff 5/5 + let t144 = circuit_mul(t132, t138); // Fp2 mul start + let t145 = circuit_mul(t133, t139); + let t146 = circuit_sub(t144, t145); // Fp2 mul real part end + let t147 = circuit_mul(t132, t139); + let t148 = circuit_mul(t133, t138); + let t149 = circuit_add(t147, t148); // Fp2 mul imag part end + let t150 = circuit_mul(t134, t140); // Fp2 mul start + let t151 = circuit_mul(t135, t141); + let t152 = circuit_sub(t150, t151); // Fp2 mul real part end + let t153 = circuit_mul(t134, t141); + let t154 = circuit_mul(t135, t140); + let t155 = circuit_add(t153, t154); // Fp2 mul imag part end + let t156 = circuit_mul(t136, t142); // Fp2 mul start + let t157 = circuit_mul(t137, t143); + let t158 = circuit_sub(t156, t157); // Fp2 mul real part end + let t159 = circuit_mul(t136, t143); + let t160 = circuit_mul(t137, t142); + let t161 = circuit_add(t159, t160); // Fp2 mul imag part end + let t162 = circuit_add(t134, t136); // Fp2 add coeff 0/1 + let t163 = circuit_add(t135, t137); // Fp2 add coeff 1/1 + let t164 = circuit_add(t140, t142); // Fp2 add coeff 0/1 + let t165 = circuit_add(t141, t143); // Fp2 add coeff 1/1 + let t166 = circuit_mul(t162, t164); // Fp2 mul start + let t167 = circuit_mul(t163, t165); + let t168 = circuit_sub(t166, t167); // Fp2 mul real part end + let t169 = circuit_mul(t162, t165); + let t170 = circuit_mul(t163, t164); + let t171 = circuit_add(t169, t170); // Fp2 mul imag part end + let t172 = circuit_sub(t168, t152); // Fp2 sub coeff 0/1 + let t173 = circuit_sub(t171, t155); // Fp2 sub coeff 1/1 + let t174 = circuit_sub(t172, t158); // Fp2 sub coeff 0/1 + let t175 = circuit_sub(t173, t161); // Fp2 sub coeff 1/1 + let t176 = circuit_add(t174, t175); + let t177 = circuit_mul(t176, in7); + let t178 = circuit_mul(t174, in8); + let t179 = circuit_sub(t178, t175); + let t180 = circuit_sub(t177, t178); + let t181 = circuit_sub(t180, t175); + let t182 = circuit_add(t179, t146); // Fp2 add coeff 0/1 + let t183 = circuit_add(t181, t149); // Fp2 add coeff 1/1 + let t184 = circuit_add(t132, t134); // Fp2 add coeff 0/1 + let t185 = circuit_add(t133, t135); // Fp2 add coeff 1/1 + let t186 = circuit_add(t138, t140); // Fp2 add coeff 0/1 + let t187 = circuit_add(t139, t141); // Fp2 add coeff 1/1 + let t188 = circuit_mul(t184, t186); // Fp2 mul start + let t189 = circuit_mul(t185, t187); + let t190 = circuit_sub(t188, t189); // Fp2 mul real part end + let t191 = circuit_mul(t184, t187); + let t192 = circuit_mul(t185, t186); + let t193 = circuit_add(t191, t192); // Fp2 mul imag part end + let t194 = circuit_sub(t190, t146); // Fp2 sub coeff 0/1 + let t195 = circuit_sub(t193, t149); // Fp2 sub coeff 1/1 + let t196 = circuit_sub(t194, t152); // Fp2 sub coeff 0/1 + let t197 = circuit_sub(t195, t155); // Fp2 sub coeff 1/1 + let t198 = circuit_add(t158, t161); + let t199 = circuit_mul(t198, in7); + let t200 = circuit_mul(t158, in8); + let t201 = circuit_sub(t200, t161); + let t202 = circuit_sub(t199, t200); + let t203 = circuit_sub(t202, t161); + let t204 = circuit_add(t196, t201); // Fp2 add coeff 0/1 + let t205 = circuit_add(t197, t203); // Fp2 add coeff 1/1 + let t206 = circuit_add(t132, t136); // Fp2 add coeff 0/1 + let t207 = circuit_add(t133, t137); // Fp2 add coeff 1/1 + let t208 = circuit_add(t138, t142); // Fp2 add coeff 0/1 + let t209 = circuit_add(t139, t143); // Fp2 add coeff 1/1 + let t210 = circuit_mul(t208, t206); // Fp2 mul start + let t211 = circuit_mul(t209, t207); + let t212 = circuit_sub(t210, t211); // Fp2 mul real part end + let t213 = circuit_mul(t208, t207); + let t214 = circuit_mul(t209, t206); + let t215 = circuit_add(t213, t214); // Fp2 mul imag part end + let t216 = circuit_sub(t212, t146); // Fp2 sub coeff 0/1 + let t217 = circuit_sub(t215, t149); // Fp2 sub coeff 1/1 + let t218 = circuit_sub(t216, t158); // Fp2 sub coeff 0/1 + let t219 = circuit_sub(t217, t161); // Fp2 sub coeff 1/1 + let t220 = circuit_add(t218, t152); // Fp2 add coeff 0/1 + let t221 = circuit_add(t219, t155); // Fp2 add coeff 1/1 + let t222 = circuit_mul(in19, t131); // Fp2 mul start + let t223 = circuit_mul(in20, t130); + let t224 = circuit_sub(t222, t223); // Fp2 mul real part end + let t225 = circuit_mul(in19, t130); + let t226 = circuit_mul(in20, t131); + let t227 = circuit_add(t225, t226); // Fp2 mul imag part end + let t228 = circuit_mul(in21, t97); // Fp2 mul start + let t229 = circuit_mul(in22, t100); + let t230 = circuit_sub(t228, t229); // Fp2 mul real part end + let t231 = circuit_mul(in21, t100); + let t232 = circuit_mul(in22, t97); + let t233 = circuit_add(t231, t232); // Fp2 mul imag part end + let t234 = circuit_mul(in23, t123); // Fp2 mul start + let t235 = circuit_mul(in24, t124); + let t236 = circuit_sub(t234, t235); // Fp2 mul real part end + let t237 = circuit_mul(in23, t124); + let t238 = circuit_mul(in24, t123); + let t239 = circuit_add(t237, t238); // Fp2 mul imag part end + let t240 = circuit_add(in21, in23); // Fp2 add coeff 0/1 + let t241 = circuit_add(in22, in24); // Fp2 add coeff 1/1 + let t242 = circuit_add(t97, t123); // Fp2 add coeff 0/1 + let t243 = circuit_add(t100, t124); // Fp2 add coeff 1/1 + let t244 = circuit_mul(t240, t242); // Fp2 mul start + let t245 = circuit_mul(t241, t243); + let t246 = circuit_sub(t244, t245); // Fp2 mul real part end + let t247 = circuit_mul(t240, t243); + let t248 = circuit_mul(t241, t242); + let t249 = circuit_add(t247, t248); // Fp2 mul imag part end + let t250 = circuit_sub(t246, t230); // Fp2 sub coeff 0/1 + let t251 = circuit_sub(t249, t233); // Fp2 sub coeff 1/1 + let t252 = circuit_sub(t250, t236); // Fp2 sub coeff 0/1 + let t253 = circuit_sub(t251, t239); // Fp2 sub coeff 1/1 + let t254 = circuit_add(t252, t253); + let t255 = circuit_mul(t254, in7); + let t256 = circuit_mul(t252, in8); + let t257 = circuit_sub(t256, t253); + let t258 = circuit_sub(t255, t256); + let t259 = circuit_sub(t258, t253); + let t260 = circuit_add(t257, t224); // Fp2 add coeff 0/1 + let t261 = circuit_add(t259, t227); // Fp2 add coeff 1/1 + let t262 = circuit_add(in19, in21); // Fp2 add coeff 0/1 + let t263 = circuit_add(in20, in22); // Fp2 add coeff 1/1 + let t264 = circuit_add(t131, t97); // Fp2 add coeff 0/1 + let t265 = circuit_add(t130, t100); // Fp2 add coeff 1/1 + let t266 = circuit_mul(t262, t264); // Fp2 mul start + let t267 = circuit_mul(t263, t265); + let t268 = circuit_sub(t266, t267); // Fp2 mul real part end + let t269 = circuit_mul(t262, t265); + let t270 = circuit_mul(t263, t264); + let t271 = circuit_add(t269, t270); // Fp2 mul imag part end + let t272 = circuit_sub(t268, t224); // Fp2 sub coeff 0/1 + let t273 = circuit_sub(t271, t227); // Fp2 sub coeff 1/1 + let t274 = circuit_sub(t272, t230); // Fp2 sub coeff 0/1 + let t275 = circuit_sub(t273, t233); // Fp2 sub coeff 1/1 + let t276 = circuit_add(t236, t239); + let t277 = circuit_mul(t276, in7); + let t278 = circuit_mul(t236, in8); + let t279 = circuit_sub(t278, t239); + let t280 = circuit_sub(t277, t278); + let t281 = circuit_sub(t280, t239); + let t282 = circuit_add(t274, t279); // Fp2 add coeff 0/1 + let t283 = circuit_add(t275, t281); // Fp2 add coeff 1/1 + let t284 = circuit_add(in19, in23); // Fp2 add coeff 0/1 + let t285 = circuit_add(in20, in24); // Fp2 add coeff 1/1 + let t286 = circuit_add(t131, t123); // Fp2 add coeff 0/1 + let t287 = circuit_add(t130, t124); // Fp2 add coeff 1/1 + let t288 = circuit_mul(t286, t284); // Fp2 mul start + let t289 = circuit_mul(t287, t285); + let t290 = circuit_sub(t288, t289); // Fp2 mul real part end + let t291 = circuit_mul(t286, t285); + let t292 = circuit_mul(t287, t284); + let t293 = circuit_add(t291, t292); // Fp2 mul imag part end + let t294 = circuit_sub(t290, t224); // Fp2 sub coeff 0/1 + let t295 = circuit_sub(t293, t227); // Fp2 sub coeff 1/1 + let t296 = circuit_sub(t294, t236); // Fp2 sub coeff 0/1 + let t297 = circuit_sub(t295, t239); // Fp2 sub coeff 1/1 + let t298 = circuit_add(t296, t230); // Fp2 add coeff 0/1 + let t299 = circuit_add(t297, t233); // Fp2 add coeff 1/1 + let t300 = circuit_mul(in25, t109); // Fp2 mul start + let t301 = circuit_mul(in26, t110); + let t302 = circuit_sub(t300, t301); // Fp2 mul real part end + let t303 = circuit_mul(in25, t110); + let t304 = circuit_mul(in26, t109); + let t305 = circuit_add(t303, t304); // Fp2 mul imag part end + let t306 = circuit_mul(in27, t107); // Fp2 mul start + let t307 = circuit_mul(in28, t108); + let t308 = circuit_sub(t306, t307); // Fp2 mul real part end + let t309 = circuit_mul(in27, t108); + let t310 = circuit_mul(in28, t107); + let t311 = circuit_add(t309, t310); // Fp2 mul imag part end + let t312 = circuit_mul(in29, in6); // Fp2 mul start + let t313 = circuit_mul(in30, in6); + let t314 = circuit_sub(t312, t313); // Fp2 mul real part end + let t315 = circuit_mul(in29, in6); + let t316 = circuit_mul(in30, in6); + let t317 = circuit_add(t315, t316); // Fp2 mul imag part end + let t318 = circuit_add(in27, in29); // Fp2 add coeff 0/1 + let t319 = circuit_add(in28, in30); // Fp2 add coeff 1/1 + let t320 = circuit_add(t107, in6); // Fp2 add coeff 0/1 + let t321 = circuit_add(t108, in6); // Fp2 add coeff 1/1 + let t322 = circuit_mul(t318, t320); // Fp2 mul start + let t323 = circuit_mul(t319, t321); + let t324 = circuit_sub(t322, t323); // Fp2 mul real part end + let t325 = circuit_mul(t318, t321); + let t326 = circuit_mul(t319, t320); + let t327 = circuit_add(t325, t326); // Fp2 mul imag part end + let t328 = circuit_sub(t324, t308); // Fp2 sub coeff 0/1 + let t329 = circuit_sub(t327, t311); // Fp2 sub coeff 1/1 + let t330 = circuit_sub(t328, t314); // Fp2 sub coeff 0/1 + let t331 = circuit_sub(t329, t317); // Fp2 sub coeff 1/1 + let t332 = circuit_add(t330, t331); + let t333 = circuit_mul(t332, in7); + let t334 = circuit_mul(t330, in8); + let t335 = circuit_sub(t334, t331); + let t336 = circuit_sub(t333, t334); + let t337 = circuit_sub(t336, t331); + let t338 = circuit_add(t335, t302); // Fp2 add coeff 0/1 + let t339 = circuit_add(t337, t305); // Fp2 add coeff 1/1 + let t340 = circuit_add(in25, in27); // Fp2 add coeff 0/1 + let t341 = circuit_add(in26, in28); // Fp2 add coeff 1/1 + let t342 = circuit_add(t109, t107); // Fp2 add coeff 0/1 + let t343 = circuit_add(t110, t108); // Fp2 add coeff 1/1 + let t344 = circuit_mul(t340, t342); // Fp2 mul start + let t345 = circuit_mul(t341, t343); + let t346 = circuit_sub(t344, t345); // Fp2 mul real part end + let t347 = circuit_mul(t340, t343); + let t348 = circuit_mul(t341, t342); + let t349 = circuit_add(t347, t348); // Fp2 mul imag part end + let t350 = circuit_sub(t346, t302); // Fp2 sub coeff 0/1 + let t351 = circuit_sub(t349, t305); // Fp2 sub coeff 1/1 + let t352 = circuit_sub(t350, t308); // Fp2 sub coeff 0/1 + let t353 = circuit_sub(t351, t311); // Fp2 sub coeff 1/1 + let t354 = circuit_add(t314, t317); + let t355 = circuit_mul(t354, in7); + let t356 = circuit_mul(t314, in8); + let t357 = circuit_sub(t356, t317); + let t358 = circuit_sub(t355, t356); + let t359 = circuit_sub(t358, t317); + let t360 = circuit_add(t352, t357); // Fp2 add coeff 0/1 + let t361 = circuit_add(t353, t359); // Fp2 add coeff 1/1 + let t362 = circuit_add(in25, in29); // Fp2 add coeff 0/1 + let t363 = circuit_add(in26, in30); // Fp2 add coeff 1/1 + let t364 = circuit_add(t109, in6); // Fp2 add coeff 0/1 + let t365 = circuit_add(t110, in6); // Fp2 add coeff 1/1 + let t366 = circuit_mul(t364, t362); // Fp2 mul start + let t367 = circuit_mul(t365, t363); + let t368 = circuit_sub(t366, t367); // Fp2 mul real part end + let t369 = circuit_mul(t364, t363); + let t370 = circuit_mul(t365, t362); + let t371 = circuit_add(t369, t370); // Fp2 mul imag part end + let t372 = circuit_sub(t368, t302); // Fp2 sub coeff 0/1 + let t373 = circuit_sub(t371, t305); // Fp2 sub coeff 1/1 + let t374 = circuit_sub(t372, t314); // Fp2 sub coeff 0/1 + let t375 = circuit_sub(t373, t317); // Fp2 sub coeff 1/1 + let t376 = circuit_add(t374, t308); // Fp2 add coeff 0/1 + let t377 = circuit_add(t375, t311); // Fp2 add coeff 1/1 + let t378 = circuit_sub(t182, t260); // Fp6 sub coeff 0/5 + let t379 = circuit_sub(t183, t261); // Fp6 sub coeff 1/5 + let t380 = circuit_sub(t204, t282); // Fp6 sub coeff 2/5 + let t381 = circuit_sub(t205, t283); // Fp6 sub coeff 3/5 + let t382 = circuit_sub(t220, t298); // Fp6 sub coeff 4/5 + let t383 = circuit_sub(t221, t299); // Fp6 sub coeff 5/5 + let t384 = circuit_sub(t378, t338); // Fp6 sub coeff 0/5 + let t385 = circuit_sub(t379, t339); // Fp6 sub coeff 1/5 + let t386 = circuit_sub(t380, t360); // Fp6 sub coeff 2/5 + let t387 = circuit_sub(t381, t361); // Fp6 sub coeff 3/5 + let t388 = circuit_sub(t382, t376); // Fp6 sub coeff 4/5 + let t389 = circuit_sub(t383, t377); // Fp6 sub coeff 5/5 + let t390 = circuit_add(t376, t377); + let t391 = circuit_mul(t390, in7); + let t392 = circuit_mul(t376, in8); + let t393 = circuit_sub(t392, t377); + let t394 = circuit_sub(t391, t392); + let t395 = circuit_sub(t394, t377); + let t396 = circuit_add(t393, t260); // Fp6 add coeff 0/5 + let t397 = circuit_add(t395, t261); // Fp6 add coeff 1/5 + let t398 = circuit_add(t338, t282); // Fp6 add coeff 2/5 + let t399 = circuit_add(t339, t283); // Fp6 add coeff 3/5 + let t400 = circuit_add(t360, t298); // Fp6 add coeff 4/5 + let t401 = circuit_add(t361, t299); // Fp6 add coeff 5/5 + + let modulus = get_BN254_modulus(); // BN254 prime field modulus + + let mut circuit_inputs = ( + t396, t397, t398, t399, t400, t401, t384, t385, t386, t387, t388, t389, + ) + .new_inputs(); + // Prefill constants: + + circuit_inputs = circuit_inputs + .next_span(TOWER_MILLER_FINALIZE_BN_1P_BN254_CONSTANTS.span()); // in0 - in8 + + // Fill inputs: + circuit_inputs = circuit_inputs.next_2(original_Q0.x0); // in9 + circuit_inputs = circuit_inputs.next_2(original_Q0.x1); // in10 + circuit_inputs = circuit_inputs.next_2(original_Q0.y0); // in11 + circuit_inputs = circuit_inputs.next_2(original_Q0.y1); // in12 + circuit_inputs = circuit_inputs.next_2(yInv_0); // in13 + circuit_inputs = circuit_inputs.next_2(xNegOverY_0); // in14 + circuit_inputs = circuit_inputs.next_2(Q_0.x0); // in15 + circuit_inputs = circuit_inputs.next_2(Q_0.x1); // in16 + circuit_inputs = circuit_inputs.next_2(Q_0.y0); // in17 + circuit_inputs = circuit_inputs.next_2(Q_0.y1); // in18 + circuit_inputs = circuit_inputs.next_2(Mi.c0b0a0); // in19 + circuit_inputs = circuit_inputs.next_2(Mi.c0b0a1); // in20 + circuit_inputs = circuit_inputs.next_2(Mi.c0b1a0); // in21 + circuit_inputs = circuit_inputs.next_2(Mi.c0b1a1); // in22 + circuit_inputs = circuit_inputs.next_2(Mi.c0b2a0); // in23 + circuit_inputs = circuit_inputs.next_2(Mi.c0b2a1); // in24 + circuit_inputs = circuit_inputs.next_2(Mi.c1b0a0); // in25 + circuit_inputs = circuit_inputs.next_2(Mi.c1b0a1); // in26 + circuit_inputs = circuit_inputs.next_2(Mi.c1b1a0); // in27 + circuit_inputs = circuit_inputs.next_2(Mi.c1b1a1); // in28 + circuit_inputs = circuit_inputs.next_2(Mi.c1b2a0); // in29 + circuit_inputs = circuit_inputs.next_2(Mi.c1b2a1); // in30 + + let outputs = circuit_inputs.done_2().eval(modulus).unwrap(); + let Mi: E12T = E12T { + c0b0a0: outputs.get_output(t396), + c0b0a1: outputs.get_output(t397), + c0b1a0: outputs.get_output(t398), + c0b1a1: outputs.get_output(t399), + c0b2a0: outputs.get_output(t400), + c0b2a1: outputs.get_output(t401), + c1b0a0: outputs.get_output(t384), + c1b0a1: outputs.get_output(t385), + c1b1a0: outputs.get_output(t386), + c1b1a1: outputs.get_output(t387), + c1b2a0: outputs.get_output(t388), + c1b2a1: outputs.get_output(t389), + }; + return (Mi,); +} +const TOWER_MILLER_FINALIZE_BN_1P_BN254_CONSTANTS: [u384; 9] = [ + u384 { + limb0: 0xc2c3330c99e39557176f553d, + limb1: 0x4c0bec3cf559b143b78cc310, + limb2: 0x2fb347984f7911f7, + limb3: 0x0, + }, + u384 { + limb0: 0xb7c9dce1665d51c640fcba2, + limb1: 0x4ba4cc8bd75a079432ae2a1d, + limb2: 0x16c9e55061ebae20, + limb3: 0x0, + }, + u384 { + limb0: 0xa9c95998dc54014671a0135a, + limb1: 0xdc5ec698b6e2f9b9dbaae0ed, + limb2: 0x63cf305489af5dc, + limb3: 0x0, + }, + u384 { + limb0: 0x8fa25bd282d37f632623b0e3, + limb1: 0x704b5a7ec796f2b21807dc9, + limb2: 0x7c03cbcac41049a, + limb3: 0x0, + }, + u384 { + limb0: 0xbb966e3de4bd44e5607cfd48, + limb1: 0x5e6dd9e7e0acccb0c28f069f, + limb2: 0x30644e72e131a029, + limb3: 0x0, + }, + u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0xa, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x9, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, +]; +#[inline(always)] +pub fn run_FP6_NEG_circuit( + b0a0: u384, b0a1: u384, b1a0: u384, b1a1: u384, b2a0: u384, b2a1: u384, curve_index: usize, +) -> (u384, u384, u384, u384, u384, u384) { + // CONSTANT stack + let in0 = CE::> {}; // 0x0 + + // INPUT stack + let (in1, in2, in3) = (CE::> {}, CE::> {}, CE::> {}); + let (in4, in5, in6) = (CE::> {}, CE::> {}, CE::> {}); + let t0 = circuit_sub(in0, in1); + let t1 = circuit_sub(in0, in2); + let t2 = circuit_sub(in0, in3); + let t3 = circuit_sub(in0, in4); + let t4 = circuit_sub(in0, in5); + let t5 = circuit_sub(in0, in6); + + let modulus = get_modulus(curve_index); + + let mut circuit_inputs = (t0, t1, t2, t3, t4, t5).new_inputs(); + // Prefill constants: + circuit_inputs = circuit_inputs.next_2([0x0, 0x0, 0x0, 0x0]); // in0 + // Fill inputs: + circuit_inputs = circuit_inputs.next_2(b0a0); // in1 + circuit_inputs = circuit_inputs.next_2(b0a1); // in2 + circuit_inputs = circuit_inputs.next_2(b1a0); // in3 + circuit_inputs = circuit_inputs.next_2(b1a1); // in4 + circuit_inputs = circuit_inputs.next_2(b2a0); // in5 + circuit_inputs = circuit_inputs.next_2(b2a1); // in6 + + let outputs = circuit_inputs.done_2().eval(modulus).unwrap(); + let r0: u384 = outputs.get_output(t0); + let r1: u384 = outputs.get_output(t1); + let r2: u384 = outputs.get_output(t2); + let r3: u384 = outputs.get_output(t3); + let r4: u384 = outputs.get_output(t4); + let r5: u384 = outputs.get_output(t5); + return (r0, r1, r2, r3, r4, r5); +} + +#[cfg(test)] +mod tests { + use core::traits::TryInto; + + use core::circuit::{ + RangeCheck96, AddMod, MulMod, u96, CircuitElement, CircuitInput, circuit_add, circuit_sub, + circuit_mul, circuit_inverse, EvalCircuitResult, EvalCircuitTrait, u384, + CircuitOutputsTrait, CircuitModulus, AddInputResultTrait, CircuitInputs, + }; + use garaga::definitions::{ + G1Point, G2Point, E12D, E12DMulQuotient, G1G2Pair, BNProcessedPair, BLSProcessedPair, + MillerLoopResultScalingFactor, G2Line, + }; + use garaga::ec_ops::{SlopeInterceptOutput, FunctionFeltEvaluations, FunctionFelt}; + + use super::{ + run_BLS12_381_E12T_CYCLOTOMIC_SQUARE_circuit, + run_BLS12_381_E12T_CYCLO_SQUARE_COMPRESSED_circuit, + run_BLS12_381_E12T_DECOMP_KARABINA_II_circuit, + run_BLS12_381_E12T_DECOMP_KARABINA_I_NZ_circuit, + run_BLS12_381_E12T_DECOMP_KARABINA_I_Z_circuit, run_BLS12_381_E12T_FROBENIUS_CUBE_circuit, + run_BLS12_381_E12T_FROBENIUS_SQUARE_circuit, run_BLS12_381_E12T_FROBENIUS_circuit, + run_BLS12_381_E12T_INVERSE_circuit, run_BLS12_381_E12T_MUL_circuit, + run_BLS12_381_TOWER_MILLER_BIT0_1P_circuit, run_BLS12_381_TOWER_MILLER_BIT1_1P_circuit, + run_BLS12_381_TOWER_MILLER_INIT_BIT_1P_circuit, run_BN254_E12T_CYCLOTOMIC_SQUARE_circuit, + run_BN254_E12T_FROBENIUS_CUBE_circuit, run_BN254_E12T_FROBENIUS_SQUARE_circuit, + run_BN254_E12T_FROBENIUS_circuit, run_BN254_E12T_INVERSE_circuit, + run_BN254_E12T_MUL_circuit, run_BN254_TOWER_MILLER_BIT0_1P_circuit, + run_BN254_TOWER_MILLER_BIT1_1P_circuit, run_BN254_TOWER_MILLER_FINALIZE_BN_1P_circuit, + run_FP6_NEG_circuit, + }; +} diff --git a/src/src/core/circuit.cairo b/src/src/core/circuit.cairo index 7e29c997..b0794cfc 100644 --- a/src/src/core/circuit.cairo +++ b/src/src/core/circuit.cairo @@ -1,38 +1,62 @@ use core::circuit::{ add_circuit_input, AddInputResult, CircuitData, IntoCircuitInputValue, CircuitDefinition, - init_circuit_data, CircuitInputAccumulator, into_u96_guarantee + init_circuit_data, CircuitInputAccumulator, into_u96_guarantee, U96Guarantee, u384, }; use core::panic_with_felt252; -use garaga::definitions::{E12D, G2Line, u384, u288}; +use garaga::definitions::{E12D, G2Line, u288}; use garaga::utils::hashing::{hades_permutation, PoseidonState}; -use core::panics::panic; +// use core::panics::panic; + +impl U64IntoU384 of Into { + fn into(self: u64) -> u384 { + let v128: u128 = self.into(); + v128.into() + } +} + +impl u288IntoCircuitInputValue of IntoCircuitInputValue { + fn into_circuit_input_value(self: u288) -> [U96Guarantee; 4] { + [ + into_u96_guarantee(self.limb0), into_u96_guarantee(self.limb1), + into_u96_guarantee(self.limb2), into_u96_guarantee(0_u8), + ] + } +} #[generate_trait] pub impl AddInputResultImpl2 of AddInputResultTrait2 { /// Adds an input to the accumulator. // Inlining to make sure possibly huge `C` won't be in a user function name. - // #[inline] + #[inline] fn next_2, +Drop>( - self: AddInputResult, value: Value + self: AddInputResult, value: Value, ) -> AddInputResult { match self { AddInputResult::More(accumulator) => add_circuit_input( - accumulator, value.into_circuit_input_value() + accumulator, value.into_circuit_input_value(), ), AddInputResult::Done(_) => panic_with_felt252('All inputs have been filled'), } } + #[inline] + fn next_u256(self: AddInputResult, value: u256) -> AddInputResult { + let val_u384: u384 = value.into(); + self.next_2(val_u384) + } + #[inline] + fn next_u128(self: AddInputResult, value: u128) -> AddInputResult { + let val_u384: u384 = value.into(); + self.next_2(val_u384) + } #[inline(always)] fn next_u288(self: AddInputResult, value: u288) -> AddInputResult { let c = match self { AddInputResult::More(accumulator) => add_circuit_input( accumulator, [ - into_u96_guarantee(value.limb0), - into_u96_guarantee(value.limb1), - into_u96_guarantee(value.limb2), - into_u96_guarantee(0_u8) - ] + into_u96_guarantee(value.limb0), into_u96_guarantee(value.limb1), + into_u96_guarantee(value.limb2), into_u96_guarantee(0_u8), + ], ), AddInputResult::Done(_) => panic_with_felt252(0), }; @@ -141,7 +165,7 @@ pub impl AddInputResultImpl2 of AddInputResultTrait2 { AddInputResult::More(acc) => acc, AddInputResult::Done(_) => panic_with_felt252('all inputs filled'), }, - (*v).into_circuit_input_value() + (*v).into_circuit_input_value(), ); }; add_input_result diff --git a/src/src/definitions.cairo b/src/src/definitions.cairo index 877b1db0..1bda83cb 100644 --- a/src/src/definitions.cairo +++ b/src/src/definitions.cairo @@ -1,9 +1,10 @@ -use core::circuit::{u96, u384, CircuitModulus}; +pub use core::circuit::{u96, u384, CircuitModulus}; use garaga::basic_field_ops::{neg_mod_p}; use core::result::Result; use core::serde::{Serde}; use core::num; use core::num::traits::{Zero, One}; +use core::RangeCheck; extern fn downcast(x: felt252) -> Option implicits(RangeCheck) nopanic; @@ -26,9 +27,9 @@ pub impl u384Serde of Serde { #[derive(Copy, Drop, Debug, PartialEq)] pub struct u288 { - limb0: u96, - limb1: u96, - limb2: u96, + pub limb0: u96, + pub limb1: u96, + pub limb2: u96, } pub impl u288Serde of Serde { @@ -48,46 +49,63 @@ pub impl u288Serde of Serde { #[derive(Copy, Drop, Debug, PartialEq, Serde)] -struct G1Point { - x: u384, - y: u384, +pub struct G1Point { + pub x: u384, + pub y: u384, } #[derive(Copy, Drop, Debug, PartialEq, Serde)] -struct G2Point { - x0: u384, - x1: u384, - y0: u384, - y1: u384, +pub struct G2Point { + pub x0: u384, + pub x1: u384, + pub y0: u384, + pub y1: u384, } #[derive(Copy, Drop, Debug, PartialEq)] -struct G2Line { - r0a0: T, - r0a1: T, - r1a0: T, - r1a1: T, +pub struct G2Line { + pub r0a0: T, + pub r0a1: T, + pub r1a0: T, + pub r1a1: T, } #[derive(Copy, Drop, Debug, PartialEq, Serde)] -struct G1G2Pair { - p: G1Point, - q: G2Point, +pub struct G1G2Pair { + pub p: G1Point, + pub q: G2Point, } #[derive(Copy, Drop, Debug, PartialEq)] -struct E12D { - w0: T, - w1: T, - w2: T, - w3: T, - w4: T, - w5: T, - w6: T, - w7: T, - w8: T, - w9: T, - w10: T, - w11: T, +pub struct E12D { + pub w0: T, + pub w1: T, + pub w2: T, + pub w3: T, + pub w4: T, + pub w5: T, + pub w6: T, + pub w7: T, + pub w8: T, + pub w9: T, + pub w10: T, + pub w11: T, +} + +// Fp12 tower struct. +#[derive(Drop, Copy, Debug, PartialEq)] +pub struct E12T { + pub c0b0a0: u384, + pub c0b0a1: u384, + pub c0b1a0: u384, + pub c0b1a1: u384, + pub c0b2a0: u384, + pub c0b2a1: u384, + pub c1b0a0: u384, + pub c1b0a1: u384, + pub c1b1a0: u384, + pub c1b1a1: u384, + pub c1b2a0: u384, + pub c1b2a1: u384, } // Represents the point at infinity @@ -103,16 +121,16 @@ impl G1PointZero of num::traits::Zero { } } -impl U384One of num::traits::One { - fn one() -> u384 { - u384 { limb0: 1, limb1: 0, limb2: 0, limb3: 0 } +// Represents the point at infinity +impl G2PointZero of num::traits::Zero { + fn zero() -> G2Point { + G2Point { x0: Zero::zero(), x1: Zero::zero(), y0: Zero::zero(), y1: Zero::zero() } } - - fn is_one(self: @u384) -> bool { - *self == Self::one() + fn is_zero(self: @G2Point) -> bool { + *self == Self::zero() } - fn is_non_one(self: @u384) -> bool { - !self.is_one() + fn is_non_zero(self: @G2Point) -> bool { + !self.is_zero() } } @@ -141,7 +159,6 @@ impl U288One of num::traits::One { } } - impl E12DOneU384 of num::traits::One> { fn one() -> E12D { E12D { @@ -308,7 +325,7 @@ impl E12DSerde384 of Serde> { w11l0, w11l1, w11l2, - w11l3 + w11l3, ] = (*serialized .multi_pop_front::<48>() @@ -320,75 +337,75 @@ impl E12DSerde384 of Serde> { limb0: downcast(w0l0).unwrap(), limb1: downcast(w0l1).unwrap(), limb2: downcast(w0l2).unwrap(), - limb3: downcast(w0l3).unwrap() + limb3: downcast(w0l3).unwrap(), }, w1: u384 { limb0: downcast(w1l0).unwrap(), limb1: downcast(w1l1).unwrap(), limb2: downcast(w1l2).unwrap(), - limb3: downcast(w1l3).unwrap() + limb3: downcast(w1l3).unwrap(), }, w2: u384 { limb0: downcast(w2l0).unwrap(), limb1: downcast(w2l1).unwrap(), limb2: downcast(w2l2).unwrap(), - limb3: downcast(w2l3).unwrap() + limb3: downcast(w2l3).unwrap(), }, w3: u384 { limb0: downcast(w3l0).unwrap(), limb1: downcast(w3l1).unwrap(), limb2: downcast(w3l2).unwrap(), - limb3: downcast(w3l3).unwrap() + limb3: downcast(w3l3).unwrap(), }, w4: u384 { limb0: downcast(w4l0).unwrap(), limb1: downcast(w4l1).unwrap(), limb2: downcast(w4l2).unwrap(), - limb3: downcast(w4l3).unwrap() + limb3: downcast(w4l3).unwrap(), }, w5: u384 { limb0: downcast(w5l0).unwrap(), limb1: downcast(w5l1).unwrap(), limb2: downcast(w5l2).unwrap(), - limb3: downcast(w5l3).unwrap() + limb3: downcast(w5l3).unwrap(), }, w6: u384 { limb0: downcast(w6l0).unwrap(), limb1: downcast(w6l1).unwrap(), limb2: downcast(w6l2).unwrap(), - limb3: downcast(w6l3).unwrap() + limb3: downcast(w6l3).unwrap(), }, w7: u384 { limb0: downcast(w7l0).unwrap(), limb1: downcast(w7l1).unwrap(), limb2: downcast(w7l2).unwrap(), - limb3: downcast(w7l3).unwrap() + limb3: downcast(w7l3).unwrap(), }, w8: u384 { limb0: downcast(w8l0).unwrap(), limb1: downcast(w8l1).unwrap(), limb2: downcast(w8l2).unwrap(), - limb3: downcast(w8l3).unwrap() + limb3: downcast(w8l3).unwrap(), }, w9: u384 { limb0: downcast(w9l0).unwrap(), limb1: downcast(w9l1).unwrap(), limb2: downcast(w9l2).unwrap(), - limb3: downcast(w9l3).unwrap() + limb3: downcast(w9l3).unwrap(), }, w10: u384 { limb0: downcast(w10l0).unwrap(), limb1: downcast(w10l1).unwrap(), limb2: downcast(w10l2).unwrap(), - limb3: downcast(w10l3).unwrap() + limb3: downcast(w10l3).unwrap(), }, w11: u384 { limb0: downcast(w11l0).unwrap(), limb1: downcast(w11l1).unwrap(), limb2: downcast(w11l2).unwrap(), - limb3: downcast(w11l3).unwrap() + limb3: downcast(w11l3).unwrap(), }, - } + }, ) } } @@ -550,65 +567,65 @@ impl E12DSerde288 of Serde> { limb1: downcast(w11l1).unwrap(), limb2: downcast(w11l2).unwrap(), }, - } + }, ) } } #[derive(Copy, Drop, Debug, PartialEq, Serde)] -struct MillerLoopResultScalingFactor { - w0: T, - w2: T, - w4: T, - w6: T, - w8: T, - w10: T, +pub struct MillerLoopResultScalingFactor { + pub w0: T, + pub w2: T, + pub w4: T, + pub w6: T, + pub w8: T, + pub w10: T, } #[derive(Copy, Drop, Debug, PartialEq, Serde)] -struct E12DMulQuotient { - w0: T, - w1: T, - w2: T, - w3: T, - w4: T, - w5: T, - w6: T, - w7: T, - w8: T, - w9: T, - w10: T, +pub struct E12DMulQuotient { + pub w0: T, + pub w1: T, + pub w2: T, + pub w3: T, + pub w4: T, + pub w5: T, + pub w6: T, + pub w7: T, + pub w8: T, + pub w9: T, + pub w10: T, } // scalar_to_base_neg3_le(0xD201000000010000**2) -const BLS_X_SEED_SQ: u128 = 0xac45a4010001a4020000000100000000; -const BLS_X_SEED_SQ_EPNS: (felt252, felt252, felt252, felt252) = - (49064175553473225114813626085204666029, 278052985706122803179667203045598799533, -1, -1); +pub const BLS_X_SEED_SQ: u128 = 0xac45a4010001a4020000000100000000; +pub const BLS_X_SEED_SQ_EPNS: (felt252, felt252, felt252, felt252) = ( + 49064175553473225114813626085204666029, 278052985706122803179667203045598799533, -1, -1, +); -const THIRD_ROOT_OF_UNITY_BLS12_381_G1: u384 = - u384 { - limb0: 0x4f49fffd8bfd00000000aaac, - limb1: 0x897d29650fb85f9b409427eb, - limb2: 0x63d4de85aa0d857d89759ad4, - limb3: 0x1a0111ea397fe699ec024086 - }; +pub const THIRD_ROOT_OF_UNITY_BLS12_381_G1: u384 = u384 { + limb0: 0x4f49fffd8bfd00000000aaac, + limb1: 0x897d29650fb85f9b409427eb, + limb2: 0x63d4de85aa0d857d89759ad4, + limb3: 0x1a0111ea397fe699ec024086, +}; // From a G1G2Pair(Px, Py, Qx0, Qx1, Qy0, Qy1), returns (1/Py, -Px/Py) #[derive(Drop, Debug, PartialEq)] -struct BLSProcessedPair { - yInv: u384, - xNegOverY: u384, +pub struct BLSProcessedPair { + pub yInv: u384, + pub xNegOverY: u384, } // From a G1G2Pair(Px, Py, Qx0, Qx1, Qy0, Qy1), returns (1/Py, -Px/Py,-Qy0, -Qy1) #[derive(Drop, Debug, PartialEq)] -struct BNProcessedPair { - yInv: u384, - xNegOverY: u384, - QyNeg0: u384, - QyNeg1: u384, +pub struct BNProcessedPair { + pub yInv: u384, + pub xNegOverY: u384, + pub QyNeg0: u384, + pub QyNeg1: u384, } // curve_index 0: BN254 @@ -617,77 +634,56 @@ struct BNProcessedPair { // curve_index 3: SECP256R1 // curve_index 4: ED25519 -struct Curve { - p: u384, // Prime modulus - n: u256, // Order of the curve - a: u384, // Weierstrass a parameter in eqn: y^2 = x^3 + ax + b - b: u384, // Weierstrass b parameter in eqn: y^2 = x^3 + ax + b - g: u384, // Generator of Fp. (Used to verify square roots) - min_one: u384, // (-1) % p +pub struct Curve { + pub p: u384, // Prime modulus + pub n: u256, // Order of the curve + pub a: u384, // Weierstrass a parameter in eqn: y^2 = x^3 + ax + b + pub b: u384, // Weierstrass b parameter in eqn: y^2 = x^3 + ax + b + pub g: u384, // Generator of Fp. (Used to verify square roots) + pub min_one: u384 // (-1) % p } // Returns the prime modulus for a given curve index -fn get_p(curve_index: usize) -> u384 { - if curve_index == 0 { - return BN254.p; - } - if curve_index == 1 { - return BLS12_381.p; - } - if curve_index == 2 { - return SECP256K1.p; +pub fn get_p(curve_index: usize) -> u384 { + match curve_index { + 0 => BN254.p, + 1 => BLS12_381.p, + 2 => SECP256K1.p, + 3 => SECP256R1.p, + 4 => ED25519.p, + 5 => GRUMPKIN.p, + _ => u384 { limb0: 0, limb1: 0, limb2: 0, limb3: 0 }, } - if curve_index == 3 { - return SECP256R1.p; - } - if curve_index == 4 { - return ED25519.p; - } - return u384 { limb0: 0, limb1: 0, limb2: 0, limb3: 0 }; } // Returns the Weierstrass 'a' parameter for a given curve index -fn get_a(curve_index: usize) -> u384 { - if curve_index == 0 { - return BN254.a; +pub fn get_a(curve_index: usize) -> u384 { + match curve_index { + 0 => BN254.a, + 1 => BLS12_381.a, + 2 => SECP256K1.a, + 3 => SECP256R1.a, + 4 => ED25519.a, + 5 => GRUMPKIN.a, + _ => u384 { limb0: 0, limb1: 0, limb2: 0, limb3: 0 }, } - if curve_index == 1 { - return BLS12_381.a; - } - if curve_index == 2 { - return SECP256K1.a; - } - if curve_index == 3 { - return SECP256R1.a; - } - if curve_index == 4 { - return ED25519.a; - } - return u384 { limb0: 0, limb1: 0, limb2: 0, limb3: 0 }; } // Returns the Weierstrass 'b' parameter for a given curve index -fn get_b(curve_index: usize) -> u384 { - if curve_index == 0 { - return BN254.b; +pub fn get_b(curve_index: usize) -> u384 { + match curve_index { + 0 => BN254.b, + 1 => BLS12_381.b, + 2 => SECP256K1.b, + 3 => SECP256R1.b, + 4 => ED25519.b, + 5 => GRUMPKIN.b, + _ => u384 { limb0: 0, limb1: 0, limb2: 0, limb3: 0 }, } - if curve_index == 1 { - return BLS12_381.b; - } - if curve_index == 2 { - return SECP256K1.b; - } - if curve_index == 3 { - return SECP256R1.b; - } - if curve_index == 4 { - return ED25519.b; - } - return u384 { limb0: 0, limb1: 0, limb2: 0, limb3: 0 }; } -fn get_b2(curve_index: usize) -> Result<(u384, u384), felt252> { +pub fn get_b2(curve_index: usize) -> Result<(u384, u384), felt252> { if curve_index == 0 { return Result::Ok( ( @@ -695,23 +691,23 @@ fn get_b2(curve_index: usize) -> Result<(u384, u384), felt252> { limb0: 27810052284636130223308486885, limb1: 40153378333836448380344387045, limb2: 3104278944836790958, - limb3: 0 + limb3: 0, }, u384 { limb0: 70926583776874220189091304914, limb1: 63498449372070794915149226116, limb2: 42524369107353300, - limb3: 0 - } - ) + limb3: 0, + }, + ), ); } if curve_index == 1 { return Result::Ok( ( u384 { limb0: 4, limb1: 0, limb2: 0, limb3: 0 }, - u384 { limb0: 4, limb1: 0, limb2: 0, limb3: 0 } - ) + u384 { limb0: 4, limb1: 0, limb2: 0, limb3: 0 }, + ), ); } else { return Result::Err('Invalid curve index'); @@ -719,76 +715,66 @@ fn get_b2(curve_index: usize) -> Result<(u384, u384), felt252> { } // Returns a generator of the curve base field for a given curve index -fn get_g(curve_index: usize) -> u384 { - if curve_index == 0 { - return BN254.g; - } - if curve_index == 1 { - return BLS12_381.g; - } - if curve_index == 2 { - return SECP256K1.g; +pub fn get_g(curve_index: usize) -> u384 { + match curve_index { + 0 => BN254.g, + 1 => BLS12_381.g, + 2 => SECP256K1.g, + 3 => SECP256R1.g, + 4 => ED25519.g, + 5 => GRUMPKIN.g, + _ => u384 { limb0: 0, limb1: 0, limb2: 0, limb3: 0 }, } - if curve_index == 3 { - return SECP256R1.g; - } - if curve_index == 4 { - return ED25519.g; - } - return u384 { limb0: 0, limb1: 0, limb2: 0, limb3: 0 }; } -fn get_n(curve_index: usize) -> u256 { - if curve_index == 0 { - return BN254.n; - } - if curve_index == 1 { - return BLS12_381.n; - } - if curve_index == 2 { - return SECP256K1.n; - } - if curve_index == 3 { - return SECP256R1.n; - } - if curve_index == 4 { - return ED25519.n; + +pub fn get_n(curve_index: usize) -> u256 { + match curve_index { + 0 => BN254.n, + 1 => BLS12_381.n, + 2 => SECP256K1.n, + 3 => SECP256R1.n, + 4 => ED25519.n, + 5 => GRUMPKIN.n, + _ => u256 { low: 0, high: 0 }, } - return u256 { low: 0, high: 0 }; } // Returns (-1) % p for a given curve index -fn get_min_one(curve_index: usize) -> u384 { - if curve_index == 0 { - return BN254.min_one; - } - if curve_index == 1 { - return BLS12_381.min_one; - } - if curve_index == 2 { - return SECP256K1.min_one; +pub fn get_min_one(curve_index: usize) -> u384 { + match curve_index { + 0 => BN254.min_one, + 1 => BLS12_381.min_one, + 2 => SECP256K1.min_one, + 3 => SECP256R1.min_one, + 4 => ED25519.min_one, + 5 => GRUMPKIN.min_one, + _ => u384 { limb0: 0, limb1: 0, limb2: 0, limb3: 0 }, } - if curve_index == 3 { - return SECP256R1.min_one; - } - if curve_index == 4 { - return ED25519.min_one; +} + +pub fn get_modulus(curve_index: usize) -> CircuitModulus { + match curve_index { + 0 => get_BN254_modulus(), + 1 => get_BLS12_381_modulus(), + 2 => get_SECP256K1_modulus(), + 3 => get_SECP256R1_modulus(), + 4 => get_ED25519_modulus(), + 5 => get_GRUMPKIN_modulus(), + _ => core::panic_with_felt252('Invalid curve index'), } - return u384 { limb0: 0, limb1: 0, limb2: 0, limb3: 0 }; } // Returns the modulus of BLS12_381 #[inline(always)] -fn get_BLS12_381_modulus() -> CircuitModulus { +pub fn get_BLS12_381_modulus() -> CircuitModulus { let modulus = TryInto::< - _, CircuitModulus + _, CircuitModulus, >::try_into( [ - 0xb153ffffb9feffffffffaaab, - 0x6730d2a0f6b0f6241eabfffe, - 0x434bacd764774b84f38512bf, - 0x1a0111ea397fe69a4b1ba7b6 - ] + 0xb153ffffb9feffffffffaaab, 0x6730d2a0f6b0f6241eabfffe, 0x434bacd764774b84f38512bf, + 0x1a0111ea397fe69a4b1ba7b6, + ], ) .unwrap(); modulus @@ -796,18 +782,18 @@ fn get_BLS12_381_modulus() -> CircuitModulus { // Returns the modulus of BN254 #[inline(always)] -fn get_BN254_modulus() -> CircuitModulus { +pub fn get_BN254_modulus() -> CircuitModulus { let modulus = TryInto::< - _, CircuitModulus + _, CircuitModulus, >::try_into([0x6871ca8d3c208c16d87cfd47, 0xb85045b68181585d97816a91, 0x30644e72e131a029, 0x0]) .unwrap(); modulus } // Returns the modulus of SECP256K1 #[inline(always)] -fn get_SECP256K1_modulus() -> CircuitModulus { +pub fn get_SECP256K1_modulus() -> CircuitModulus { let modulus = TryInto::< - _, CircuitModulus + _, CircuitModulus, >::try_into([0xfffffffffffffffefffffc2f, 0xffffffffffffffffffffffff, 0xffffffffffffffff, 0x0]) .unwrap(); modulus @@ -815,235 +801,209 @@ fn get_SECP256K1_modulus() -> CircuitModulus { // Returns the modulus of SECP256K1 #[inline(always)] -fn get_SECP256R1_modulus() -> CircuitModulus { +pub fn get_SECP256R1_modulus() -> CircuitModulus { let modulus = TryInto::< - _, CircuitModulus + _, CircuitModulus, >::try_into([0xffffffffffffffffffffffff, 0x0, 0xffffffff00000001, 0x0]) .unwrap(); modulus } // Returns the modulus of SECP256K1 #[inline(always)] -fn get_ED25519_modulus() -> CircuitModulus { +pub fn get_ED25519_modulus() -> CircuitModulus { let modulus = TryInto::< - _, CircuitModulus + _, CircuitModulus, >::try_into([0xffffffffffffffffffffffed, 0xffffffffffffffffffffffff, 0x7fffffffffffffff, 0x0]) .unwrap(); modulus } -const BN254: Curve = - Curve { - p: u384 { - limb0: 0x6871ca8d3c208c16d87cfd47, - limb1: 0xb85045b68181585d97816a91, - limb2: 0x30644e72e131a029, - limb3: 0x0 - }, - n: u256 { - low: 0x2833e84879b9709143e1f593f0000001, high: 0x30644e72e131a029b85045b68181585d - }, - a: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - b: u384 { limb0: 0x3, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - g: u384 { limb0: 0x3, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - min_one: u384 { - limb0: 0x6871ca8d3c208c16d87cfd46, - limb1: 0xb85045b68181585d97816a91, - limb2: 0x30644e72e131a029, - limb3: 0x0 - }, - }; - -const BLS12_381: Curve = - Curve { - p: u384 { - limb0: 0xb153ffffb9feffffffffaaab, - limb1: 0x6730d2a0f6b0f6241eabfffe, - limb2: 0x434bacd764774b84f38512bf, - limb3: 0x1a0111ea397fe69a4b1ba7b6 - }, - n: u256 { - low: 0x53bda402fffe5bfeffffffff00000001, high: 0x73eda753299d7d483339d80809a1d805 - }, - a: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - b: u384 { limb0: 0x4, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - g: u384 { limb0: 0x3, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - min_one: u384 { - limb0: 0xb153ffffb9feffffffffaaaa, - limb1: 0x6730d2a0f6b0f6241eabfffe, - limb2: 0x434bacd764774b84f38512bf, - limb3: 0x1a0111ea397fe69a4b1ba7b6 - }, - }; - -const SECP256K1: Curve = - Curve { - p: u384 { - limb0: 0xfffffffffffffffefffffc2f, - limb1: 0xffffffffffffffffffffffff, - limb2: 0xffffffffffffffff, - limb3: 0x0 - }, - n: u256 { - low: 0xbaaedce6af48a03bbfd25e8cd0364141, high: 0xfffffffffffffffffffffffffffffffe - }, - a: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - b: u384 { limb0: 0x7, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - g: u384 { limb0: 0x3, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - min_one: u384 { - limb0: 0xfffffffffffffffefffffc2e, - limb1: 0xffffffffffffffffffffffff, - limb2: 0xffffffffffffffff, - limb3: 0x0 - }, - }; - -const SECP256R1: Curve = - Curve { - p: u384 { - limb0: 0xffffffffffffffffffffffff, limb1: 0x0, limb2: 0xffffffff00000001, limb3: 0x0 - }, - n: u256 { - low: 0xbce6faada7179e84f3b9cac2fc632551, high: 0xffffffff00000000ffffffffffffffff - }, - a: u384 { - limb0: 0xfffffffffffffffffffffffc, limb1: 0x0, limb2: 0xffffffff00000001, limb3: 0x0 - }, - b: u384 { - limb0: 0xcc53b0f63bce3c3e27d2604b, - limb1: 0xb3ebbd55769886bc651d06b0, - limb2: 0x5ac635d8aa3a93e7, - limb3: 0x0 - }, - g: u384 { limb0: 0x6, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - min_one: u384 { - limb0: 0xfffffffffffffffffffffffe, limb1: 0x0, limb2: 0xffffffff00000001, limb3: 0x0 - }, - }; - -const ED25519: Curve = - Curve { - p: u384 { - limb0: 0xffffffffffffffffffffffed, - limb1: 0xffffffffffffffffffffffff, - limb2: 0x7fffffffffffffff, - limb3: 0x0 - }, - n: u256 { - low: 0x14def9dea2f79cd65812631a5cf5d3ed, high: 0x10000000000000000000000000000000 - }, - a: u384 { - limb0: 0xca52af7ac71e18ef8bc172d, - limb1: 0x3197e10d617b3dd66bb8b65d, - limb2: 0x5d4eacd3a5b9bee6, - limb3: 0x0 - }, - b: u384 { - limb0: 0x6b9fbc329004ebc1f364b2a4, - limb1: 0x550ddb06105780d5f5483197, - limb2: 0x1d11b29bcfd0b3e0, - limb3: 0x0 - }, - g: u384 { limb0: 0x6, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - min_one: u384 { - limb0: 0xffffffffffffffffffffffec, - limb1: 0xffffffffffffffffffffffff, - limb2: 0x7fffffffffffffff, - limb3: 0x0 - }, - }; - -// jy00(6 * 0x44E992B44A6909F1 + 2)[2:] with consecutive zeros replaced by 3, and -1 replaced by 2 -const bn_bits: [ - felt252 - ; 49] = [ - 2, - 0, - 1, - 3, - 0, - 2, - 0, - 2, - 3, - 0, - 2, - 3, - 1, - 1, - 3, - 2, - 3, - 3, - 0, - 1, - 3, - 2, - 0, - 1, - 3, - 2, - 3, - 3, - 2, - 0, - 1, - 3, - 0, - 2, - 0, - 2, - 3, - 1, - 3, - 0, - 2, - 3, - 0, - 2, - 0, - 2, - 2, - 3, - 0 +// Returns the modulus of GRUMPKIN +#[inline(always)] +fn get_GRUMPKIN_modulus() -> CircuitModulus { + let modulus = TryInto::< + _, CircuitModulus, + >::try_into([0x79b9709143e1f593f0000001, 0xb85045b68181585d2833e848, 0x30644e72e131a029, 0x0]) + .unwrap(); + modulus +} + +pub const BN254: Curve = Curve { + p: u384 { + limb0: 0x6871ca8d3c208c16d87cfd47, + limb1: 0xb85045b68181585d97816a91, + limb2: 0x30644e72e131a029, + limb3: 0x0, + }, + n: u256 { low: 0x2833e84879b9709143e1f593f0000001, high: 0x30644e72e131a029b85045b68181585d }, + a: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + b: u384 { limb0: 0x3, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + g: u384 { limb0: 0x3, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + min_one: u384 { + limb0: 0x6871ca8d3c208c16d87cfd46, + limb1: 0xb85045b68181585d97816a91, + limb2: 0x30644e72e131a029, + limb3: 0x0, + }, +}; + +pub const BLS12_381: Curve = Curve { + p: u384 { + limb0: 0xb153ffffb9feffffffffaaab, + limb1: 0x6730d2a0f6b0f6241eabfffe, + limb2: 0x434bacd764774b84f38512bf, + limb3: 0x1a0111ea397fe69a4b1ba7b6, + }, + n: u256 { low: 0x53bda402fffe5bfeffffffff00000001, high: 0x73eda753299d7d483339d80809a1d805 }, + a: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + b: u384 { limb0: 0x4, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + g: u384 { limb0: 0x3, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + min_one: u384 { + limb0: 0xb153ffffb9feffffffffaaaa, + limb1: 0x6730d2a0f6b0f6241eabfffe, + limb2: 0x434bacd764774b84f38512bf, + limb3: 0x1a0111ea397fe69a4b1ba7b6, + }, +}; + +pub const SECP256K1: Curve = Curve { + p: u384 { + limb0: 0xfffffffffffffffefffffc2f, + limb1: 0xffffffffffffffffffffffff, + limb2: 0xffffffffffffffff, + limb3: 0x0, + }, + n: u256 { low: 0xbaaedce6af48a03bbfd25e8cd0364141, high: 0xfffffffffffffffffffffffffffffffe }, + a: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + b: u384 { limb0: 0x7, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + g: u384 { limb0: 0x3, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + min_one: u384 { + limb0: 0xfffffffffffffffefffffc2e, + limb1: 0xffffffffffffffffffffffff, + limb2: 0xffffffffffffffff, + limb3: 0x0, + }, +}; + +pub const SECP256R1: Curve = Curve { + p: u384 { + limb0: 0xffffffffffffffffffffffff, limb1: 0x0, limb2: 0xffffffff00000001, limb3: 0x0, + }, + n: u256 { low: 0xbce6faada7179e84f3b9cac2fc632551, high: 0xffffffff00000000ffffffffffffffff }, + a: u384 { + limb0: 0xfffffffffffffffffffffffc, limb1: 0x0, limb2: 0xffffffff00000001, limb3: 0x0, + }, + b: u384 { + limb0: 0xcc53b0f63bce3c3e27d2604b, + limb1: 0xb3ebbd55769886bc651d06b0, + limb2: 0x5ac635d8aa3a93e7, + limb3: 0x0, + }, + g: u384 { limb0: 0x6, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + min_one: u384 { + limb0: 0xfffffffffffffffffffffffe, limb1: 0x0, limb2: 0xffffffff00000001, limb3: 0x0, + }, +}; + +pub const ED25519: Curve = Curve { + p: u384 { + limb0: 0xffffffffffffffffffffffed, + limb1: 0xffffffffffffffffffffffff, + limb2: 0x7fffffffffffffff, + limb3: 0x0, + }, + n: u256 { low: 0x14def9dea2f79cd65812631a5cf5d3ed, high: 0x10000000000000000000000000000000 }, + a: u384 { + limb0: 0xca52af7ac71e18ef8bc172d, + limb1: 0x3197e10d617b3dd66bb8b65d, + limb2: 0x5d4eacd3a5b9bee6, + limb3: 0x0, + }, + b: u384 { + limb0: 0x6b9fbc329004ebc1f364b2a4, + limb1: 0x550ddb06105780d5f5483197, + limb2: 0x1d11b29bcfd0b3e0, + limb3: 0x0, + }, + g: u384 { limb0: 0x6, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + min_one: u384 { + limb0: 0xffffffffffffffffffffffec, + limb1: 0xffffffffffffffffffffffff, + limb2: 0x7fffffffffffffff, + limb3: 0x0, + }, +}; + +pub const GRUMPKIN: Curve = Curve { + p: u384 { + limb0: 0x79b9709143e1f593f0000001, + limb1: 0xb85045b68181585d2833e848, + limb2: 0x30644e72e131a029, + limb3: 0x0, + }, + n: u256 { low: 0x97816a916871ca8d3c208c16d87cfd47, high: 0x30644e72e131a029b85045b68181585d }, + a: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + b: u384 { + limb0: 0x79b9709143e1f593effffff0, + limb1: 0xb85045b68181585d2833e848, + limb2: 0x30644e72e131a029, + limb3: 0x0, + }, + g: u384 { limb0: 0x5, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + min_one: u384 { + limb0: 0x79b9709143e1f593f0000000, + limb1: 0xb85045b68181585d2833e848, + limb2: 0x30644e72e131a029, + limb3: 0x0, + }, +}; + + +pub const BN254_G1_GENERATOR: G1Point = G1Point { + x: u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + y: u384 { limb0: 0x2, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, +}; + +pub const BLS_G2_GENERATOR: G2Point = G2Point { + x0: u384 { + limb0: 0xa805bbefd48056c8c121bdb8, + limb1: 0xb4510b647ae3d1770bac0326, + limb2: 0x2dc51051c6e47ad4fa403b02, + limb3: 0x24aa2b2f08f0a9126080527, + }, + x1: u384 { + limb0: 0x13945d57e5ac7d055d042b7e, + limb1: 0xb5da61bbdc7f5049334cf112, + limb2: 0x88274f65596bd0d09920b61a, + limb3: 0x13e02b6052719f607dacd3a0, + }, + y0: u384 { + limb0: 0x3baca289e193548608b82801, + limb1: 0x6d429a695160d12c923ac9cc, + limb2: 0xda2e351aadfd9baa8cbdd3a7, + limb3: 0xce5d527727d6e118cc9cdc6, + }, + y1: u384 { + limb0: 0x5cec1da1aaa9075ff05f79be, + limb1: 0x267492ab572e99ab3f370d27, + limb2: 0x2bc28b99cb3e287e85a763af, + limb3: 0x606c4a02ea734cc32acd2b0, + }, +}; + + +// recode_naf_bits(jy00(6 * 0x44E992B44A6909F1 + 2)[2:]) (see definitions.py) +// "00" -> 0 +// "10" -> 1 +// "-10" -> 2 +// "01" -> 3 +// "0-1" -> 4 +pub const bn_bits: [felt252; 32] = [ + 2, 1, 0, 2, 2, 0, 2, 3, 1, 4, 0, 0, 3, 0, 2, 1, 4, 0, 0, 2, 1, 0, 2, 2, 3, 0, 4, 0, 4, 4, 2, 0, ]; // [int(x) for x in bin(0xD201000000010000)[2:]][2:] with two-consecutive zeros replaced by 3 -const bls_bits: [ - felt252 - ; 34] = [ - 0, - 1, - 3, - 1, - 3, - 3, - 3, - 3, - 1, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 0, - 1, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3 +pub const bls_bits: [felt252; 34] = [ + 0, 1, 3, 1, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 1, 3, 3, 3, 3, 3, 3, + 3, 3, ]; diff --git a/src/src/ec_ops.cairo b/src/src/ec_ops.cairo index c8f12a49..9f4205b9 100644 --- a/src/src/ec_ops.cairo +++ b/src/src/ec_ops.cairo @@ -3,51 +3,54 @@ use core::array::ArrayTrait; use core::circuit::{ AddMod, MulMod, u96, CircuitElement, CircuitInput, circuit_add, circuit_sub, circuit_mul, circuit_inverse, EvalCircuitResult, EvalCircuitTrait, u384, CircuitOutputsTrait, CircuitModulus, - AddInputResultTrait, CircuitInputs, CircuitDefinition, CircuitData, CircuitInputAccumulator + AddInputResultTrait, CircuitInputs, CircuitDefinition, CircuitData, CircuitInputAccumulator, }; use garaga::definitions::{ - get_a, get_b, get_p, get_g, get_min_one, get_b2, get_n, G1Point, G2Point, BLS_X_SEED_SQ_EPNS, - BLS_X_SEED_SQ, G1PointZero, THIRD_ROOT_OF_UNITY_BLS12_381_G1, u384Serde + get_a, get_b, get_modulus, get_g, get_min_one, get_b2, get_n, G1Point, G2Point, + BLS_X_SEED_SQ_EPNS, BLS_X_SEED_SQ, G1PointZero, THIRD_ROOT_OF_UNITY_BLS12_381_G1, u384Serde, }; use core::option::Option; +use core::panic_with_felt252; use core::poseidon::hades_permutation; use garaga::circuits::ec; use garaga::utils::hashing; use garaga::utils::neg_3; -use garaga::basic_field_ops::{sub_mod_p, neg_mod_p, mul_mod_p}; +use garaga::basic_field_ops::{add_mod_p, sub_mod_p, neg_mod_p, mul_mod_p, batch_3_mod_p}; use garaga::utils::{u384_assert_zero, u384_assert_eq}; #[generate_trait] impl G1PointImpl of G1PointTrait { fn assert_on_curve(self: @G1Point, curve_index: usize) { let (check) = ec::run_IS_ON_CURVE_G1_circuit( - *self, get_a(curve_index), get_b(curve_index), curve_index + *self, get_a(curve_index), get_b(curve_index), curve_index, ); u384_assert_zero(check); } fn negate(self: @G1Point, curve_index: usize) -> G1Point { - G1Point { x: *self.x, y: neg_mod_p(*self.y, get_p(curve_index)) } + let modulus = get_modulus(curve_index); + G1Point { x: *self.x, y: neg_mod_p(*self.y, modulus) } } fn assert_in_subgroup( self: @G1Point, curve_index: usize, msm_hint: Option, - derive_point_from_x_hint: Option + derive_point_from_x_hint: Option, ) { match curve_index { 0 => { self.assert_on_curve(curve_index) }, // BN254 (cofactor 1) 1 => { // https://github.com/Consensys/gnark-crypto/blob/ff4c0ddbe1ef37d1c1c6bec8c36fc43a84c86be5/ecc/bls12-381/g1.go#L492 - let p = get_p(curve_index); + let modulus = get_modulus(curve_index); let x_sq_phi_P = scalar_mul_g1_fixed_small_scalar( G1Point { - x: mul_mod_p(THIRD_ROOT_OF_UNITY_BLS12_381_G1, *self.x, p), y: *self.y + x: mul_mod_p(THIRD_ROOT_OF_UNITY_BLS12_381_G1, *self.x, modulus), + y: *self.y, }, BLS_X_SEED_SQ_EPNS, BLS_X_SEED_SQ, msm_hint.unwrap(), derive_point_from_x_hint.unwrap(), - curve_index + curve_index, ); if !ec_safe_add(*self, x_sq_phi_P, curve_index).is_infinity() { panic_with_felt252('g1 pt not in subgroup'); @@ -60,7 +63,7 @@ impl G1PointImpl of G1PointTrait { return self.is_zero(); } fn update_hash_state( - self: @G1Point, s0: felt252, s1: felt252, s2: felt252 + self: @G1Point, s0: felt252, s1: felt252, s2: felt252, ) -> (felt252, felt252, felt252) { let base: felt252 = 79228162514264337593543950336; // 2**96 let self = *self; @@ -74,34 +77,21 @@ impl G1PointImpl of G1PointTrait { } } -#[generate_trait] -impl G2PointImpl of G2PointTrait { - fn assert_on_curve(self: @G2Point, curve_index: usize) { - let (b20, b21) = get_b2(curve_index).unwrap(); - let (check0, check1) = ec::run_IS_ON_CURVE_G2_circuit( - *self, get_a(curve_index), b20, b21, curve_index - ); - u384_assert_zero(check0); - u384_assert_zero(check1); - } -} - - // Adds two elliptic curve points on a given curve. // Does not check the input points are on the curve. -fn ec_safe_add(p: G1Point, q: G1Point, curve_index: usize) -> G1Point { +pub fn ec_safe_add(p: G1Point, q: G1Point, curve_index: usize) -> G1Point { if p.is_infinity() { return q; } if q.is_infinity() { return p; } - let modulus = get_p(curve_index); + let modulus = get_modulus(curve_index); let same_x = sub_mod_p(p.x, q.x, modulus) == u384 { limb0: 0, limb1: 0, limb2: 0, limb3: 0 }; if same_x { let opposite_y = sub_mod_p( - p.y, neg_mod_p(q.y, modulus), modulus + p.y, neg_mod_p(q.y, modulus), modulus, ) == u384 { limb0: 0, limb1: 0, limb2: 0, limb3: 0 }; if opposite_y { return G1PointZero::zero(); @@ -116,15 +106,15 @@ fn ec_safe_add(p: G1Point, q: G1Point, curve_index: usize) -> G1Point { } #[derive(Drop)] -struct DerivePointFromXOutput { - rhs: u384, - g_rhs: u384, - should_be_rhs_or_g_rhs: u384, +pub struct DerivePointFromXOutput { + pub rhs: u384, + pub g_rhs: u384, + pub should_be_rhs_or_g_rhs: u384, } #[inline(always)] fn get_DERIVE_POINT_FROM_X_circuit( - x: u384, sqrt_rhs_or_g_rhs: u384, curve_index: usize + x: u384, sqrt_rhs_or_g_rhs: u384, curve_index: usize, ) -> DerivePointFromXOutput { // INPUT stack let in0 = CircuitElement::> {}; // x - "random" x coordinate @@ -142,11 +132,9 @@ fn get_DERIVE_POINT_FROM_X_circuit( let t5 = circuit_mul(in3, t4); // g * (x^3 + (a*x + b)) = g*rhs let t6 = circuit_mul(in4, in4); // should be rhs if sqrt(rhs) or g*rhs if sqrt(g*rhs) exists - let p = get_p(curve_index); - let modulus = TryInto::<_, CircuitModulus>::try_into([p.limb0, p.limb1, p.limb2, p.limb3]) - .unwrap(); + let modulus = get_modulus(curve_index); - let mut circuit_inputs = (t4, t5, t6,).new_inputs(); + let mut circuit_inputs = (t4, t5, t6).new_inputs(); circuit_inputs = circuit_inputs.next(x); circuit_inputs = circuit_inputs.next(get_a(curve_index)); @@ -156,7 +144,7 @@ fn get_DERIVE_POINT_FROM_X_circuit( let outputs = match circuit_inputs.done().eval(modulus) { Result::Ok(outputs) => { outputs }, - Result::Err(_) => { panic!("Expected success") } + Result::Err(_) => { panic!("Expected success") }, }; let rhs = outputs.get_output(t4); // rhs let g_rhs = outputs.get_output(t5); // g*rhs @@ -194,10 +182,10 @@ fn derive_ec_point_from_X( while let Option::Some(root) = g_rhs_sqrt.pop_front() { let x_u384: u384 = x.into(); let res: DerivePointFromXOutput = get_DERIVE_POINT_FROM_X_circuit( - x_u384, *root, curve_index + x_u384, *root, curve_index, ); assert!( - res.should_be_rhs_or_g_rhs == res.g_rhs, "grhs!=(sqrt(g*rhs))^2 in attempt {attempt}" + res.should_be_rhs_or_g_rhs == res.g_rhs, "grhs!=(sqrt(g*rhs))^2 in attempt {attempt}", ); let (new_x, _, _) = hades_permutation(x, attempt.into(), 2); @@ -207,7 +195,7 @@ fn derive_ec_point_from_X( let x_u384: u384 = x.into(); let res: DerivePointFromXOutput = get_DERIVE_POINT_FROM_X_circuit( - x_u384, y_last_attempt, curve_index + x_u384, y_last_attempt, curve_index, ); assert!(res.should_be_rhs_or_g_rhs == res.rhs, "invalid y coordinate"); return G1Point { x: x_u384, y: y_last_attempt }; @@ -221,28 +209,28 @@ fn derive_ec_point_from_X( // No information about the degrees of the polynomials is stored here as they are derived // implicitely from the MSM size. #[derive(Drop, Debug, Copy, PartialEq, Serde)] -struct FunctionFelt { - a_num: Span, - a_den: Span, - b_num: Span, - b_den: Span, +pub struct FunctionFelt { + pub a_num: Span, + pub a_den: Span, + pub b_num: Span, + pub b_den: Span, } #[derive(Drop, Debug, Copy, PartialEq)] -struct FunctionFeltEvaluations { - a_num: u384, - a_den: u384, - b_num: u384, - b_den: u384, +pub struct FunctionFeltEvaluations { + pub a_num: u384, + pub a_den: u384, + pub b_num: u384, + pub b_den: u384, } #[derive(Drop, Debug, Copy, PartialEq)] -struct SlopeInterceptOutput { - m_A0: u384, - b_A0: u384, - x_A2: u384, - y_A2: u384, - coeff0: u384, - coeff2: u384, +pub struct SlopeInterceptOutput { + pub m_A0: u384, + pub b_A0: u384, + pub x_A2: u384, + pub y_A2: u384, + pub coeff0: u384, + pub coeff2: u384, } #[generate_trait] @@ -253,8 +241,14 @@ impl FunctionFeltImpl of FunctionFeltTrait { assert!((*self.b_num).len() == msm_size + 2, "b_num wrong degree for given msm size"); assert!((*self.b_den).len() == msm_size + 5, "b_den wrong degree for given msm size"); } + fn validate_degrees_batched(self: @FunctionFelt, msm_size: usize) { + assert!((*self.a_num).len() == msm_size + 3, "a_num wrong degree for given msm size"); + assert!((*self.a_den).len() == msm_size + 4, "a_den wrong degree for given msm size"); + assert!((*self.b_num).len() == msm_size + 4, "b_num wrong degree for given msm size"); + assert!((*self.b_den).len() == msm_size + 7, "b_den wrong degree for given msm size"); + } fn update_hash_state( - self: @FunctionFelt, s0: felt252, s1: felt252, s2: felt252 + self: @FunctionFelt, s0: felt252, s1: felt252, s2: felt252, ) -> (felt252, felt252, felt252) { let (s0, s1, s2) = hashing::hash_u384_transcript(*self.a_num, s0, s1, s2); let (s0, s1, s2) = hashing::hash_u384_transcript(*self.a_den, s0, s1, s2); @@ -265,34 +259,40 @@ impl FunctionFeltImpl of FunctionFeltTrait { } #[derive(Drop, Debug, PartialEq, Serde, Copy)] -struct MSMHint { - Q_low: G1Point, - Q_high: G1Point, - Q_high_shifted: G1Point, - SumDlogDivLow: FunctionFelt, - SumDlogDivHigh: FunctionFelt, - SumDlogDivHighShifted: FunctionFelt, +pub struct MSMHint { + pub Q_low: G1Point, + pub Q_high: G1Point, + pub Q_high_shifted: G1Point, + pub RLCSumDlogDiv: FunctionFelt, +} + +#[derive(Drop, Debug, PartialEq, Serde)] +pub struct MSMHintSmallScalar { + pub Q: G1Point, + pub SumDlogDiv: FunctionFelt, } #[derive(Drop, Debug, PartialEq, Serde)] -struct MSMHintSmallScalar { - Q: G1Point, - SumDlogDiv: FunctionFelt, +struct MSMHintBatched { + Q_low: G1Point, + Q_high: G1Point, + Q_high_shifted: G1Point, + SumDlogDivBatched: FunctionFelt, } #[derive(Drop, Debug, PartialEq, Serde, Copy)] -struct DerivePointFromXHint { - y_last_attempt: u384, - g_rhs_sqrt: Span, +pub struct DerivePointFromXHint { + pub y_last_attempt: u384, + pub g_rhs_sqrt: Span, } -fn scalar_mul_g1_fixed_small_scalar( +pub fn scalar_mul_g1_fixed_small_scalar( point: G1Point, scalar_epns: (felt252, felt252, felt252, felt252), scalar: u128, hint: MSMHintSmallScalar, derive_point_from_x_hint: DerivePointFromXHint, - curve_index: usize + curve_index: usize, ) -> G1Point { // Check result points are either on curve or the point at infinity if !hint.Q.is_infinity() { @@ -305,12 +305,11 @@ fn scalar_mul_g1_fixed_small_scalar( // Hash everything to obtain a x coordinate. let (s0, s1, s2): (felt252, felt252, felt252) = hades_permutation( - 'MSM_G1_U128', 0, 1 + 'MSM_G1_U128', 0, 1, ); // Init Sponge state let (s0, s1, s2) = hades_permutation( - s0 + curve_index.into(), s1 + 1.into(), s2 + s0 + curve_index.into(), s1 + 1.into(), s2, ); // Include curve_index and msm size - let (s0, s1, s2) = hint.SumDlogDiv.update_hash_state(s0, s1, s2); // Check input points are on curve and hash them at the same time. point.assert_on_curve(curve_index); @@ -319,18 +318,20 @@ fn scalar_mul_g1_fixed_small_scalar( // Hash result point let (s0, s1, s2) = hint.Q.update_hash_state(s0, s1, s2); // Hash scalar. - let (s0, _s1, _s2) = core::poseidon::hades_permutation(s0 + scalar.into(), s1, s2); + let (s0, s1, s2) = core::poseidon::hades_permutation(s0 + scalar.into(), s1, s2); + + let (s0, _, _) = hint.SumDlogDiv.update_hash_state(s0, s1, s2); let random_point: G1Point = derive_ec_point_from_X( s0, derive_point_from_x_hint.y_last_attempt, derive_point_from_x_hint.g_rhs_sqrt, - curve_index + curve_index, ); // Get slope, intercept and other constant from random point let (mb): (SlopeInterceptOutput,) = ec::run_SLOPE_INTERCEPT_SAME_POINT_circuit( - random_point, get_a(curve_index), curve_index + random_point, get_a(curve_index), curve_index, ); // Verify Q = scalar * P @@ -340,7 +341,7 @@ fn scalar_mul_g1_fixed_small_scalar( coeff0: mb.coeff0, coeff2: mb.coeff2, SumDlogDiv: hint.SumDlogDiv, - curve_index: curve_index + curve_index: curve_index, ); let rhs = compute_rhs_ecip( points: array![point].span(), @@ -349,7 +350,7 @@ fn scalar_mul_g1_fixed_small_scalar( x_A0: random_point.x, epns: array![scalar_epns], Q_result: hint.Q, - curve_index: curve_index + curve_index: curve_index, ); u384_assert_eq(lhs, rhs); @@ -366,7 +367,7 @@ fn msm_g1( derive_point_from_x_hint: DerivePointFromXHint, points: Span, scalars: Span, - curve_index: usize + curve_index: usize, ) -> G1Point { let n = scalars.len(); assert!(n == points.len(), "scalars and points length mismatch"); @@ -388,21 +389,15 @@ fn msm_g1( } // Validate the degrees of the functions field elements given the msm size - hint.SumDlogDivLow.validate_degrees(n); - hint.SumDlogDivHigh.validate_degrees(n); - hint.SumDlogDivHighShifted.validate_degrees(1); + hint.RLCSumDlogDiv.validate_degrees_batched(n); // Hash everything to obtain a x coordinate. - let (s0, s1, s2): (felt252, felt252, felt252) = hades_permutation( - 'MSM_G1', 0, 1 + 'MSM_G1', 0, 1, ); // Init Sponge state let (s0, s1, s2) = hades_permutation( - s0 + curve_index.into(), s1 + n.into(), s2 + s0 + curve_index.into(), s1 + n.into(), s2, ); // Include curve_index and msm size - let (s0, s1, s2) = hint.SumDlogDivLow.update_hash_state(s0, s1, s2); - let (s0, s1, s2) = hint.SumDlogDivHigh.update_hash_state(s0, s1, s2); - let (s0, s1, s2) = hint.SumDlogDivHighShifted.update_hash_state(s0, s1, s2); let mut s0 = s0; let mut s1 = s1; @@ -430,54 +425,73 @@ fn msm_g1( for scalar in scalars { assert!(*scalar <= curve_order, "One of the scalar is larger than the curve order"); let (_s0, _s1, _s2) = core::poseidon::hades_permutation( - s0 + (*scalar.low).into(), s1 + (*scalar.high).into(), s2 + s0 + (*scalar.low).into(), s1 + (*scalar.high).into(), s2, ); s0 = _s0; s1 = _s1; s2 = _s2; }; + let base_rlc_coeff = s1; + + let (s0, _, _) = hint.RLCSumDlogDiv.update_hash_state(s0, s1, s2); + let random_point: G1Point = derive_ec_point_from_X( s0, derive_point_from_x_hint.y_last_attempt, derive_point_from_x_hint.g_rhs_sqrt, - curve_index + curve_index, ); // Get slope, intercept and other constant from random point let (mb): (SlopeInterceptOutput,) = ec::run_SLOPE_INTERCEPT_SAME_POINT_circuit( - random_point, get_a(curve_index), curve_index + random_point, get_a(curve_index), curve_index, ); // Get positive and negative multiplicities of low and high part of scalars let (epns_low, epns_high) = neg_3::u256_array_to_low_high_epns( - scalars, scalars_digits_decompositions + scalars, scalars_digits_decompositions, ); // Hardcoded epns for 2**128 let epns_shifted: Array<(felt252, felt252, felt252, felt252)> = array![ - (5279154705627724249993186093248666011, 345561521626566187713367793525016877467, -1, -1) + (5279154705627724249993186093248666011, 345561521626566187713367793525016877467, -1, -1), ]; - // Verify Q_low = sum(scalar_low * P for scalar_low,P in zip(scalars_low, points)) - zk_ecip_check( - points, epns_low, hint.Q_low, n, mb, hint.SumDlogDivLow, random_point, curve_index + let rhs_low = compute_rhs_ecip( + points, mb.m_A0, mb.b_A0, random_point.x, epns_low, hint.Q_low, curve_index, ); - // Verify Q_high = sum(scalar_high * P for scalar_high,P in zip(scalars_high, points)) - zk_ecip_check( - points, epns_high, hint.Q_high, n, mb, hint.SumDlogDivHigh, random_point, curve_index + let rhs_high = compute_rhs_ecip( + points, mb.m_A0, mb.b_A0, random_point.x, epns_high, hint.Q_high, curve_index, ); - // Verify Q_high_shifted = 2^128 * Q_high - zk_ecip_check( + let rhs_high_shifted = compute_rhs_ecip( array![hint.Q_high].span(), + mb.m_A0, + mb.b_A0, + random_point.x, epns_shifted, hint.Q_high_shifted, - 1, - mb, - hint.SumDlogDivHighShifted, + curve_index, + ); + + let modulus_curve = get_modulus(curve_index); + + let zk_ecip_batched_rhs = batch_3_mod_p( + rhs_low, rhs_high, rhs_high_shifted, base_rlc_coeff.into(), modulus_curve, + ); + + let batched_lhs = compute_lhs_ecip( + hint.RLCSumDlogDiv, random_point, - curve_index + G1Point { x: mb.x_A2, y: mb.y_A2 }, + mb.coeff0, + mb.coeff2, + n, + curve_index, ); + + u384_assert_eq(batched_lhs, zk_ecip_batched_rhs); + // Return Q_low + Q_high_shifted = Q_low + 2^128 * Q_high = Σ(ki * Pi) return ec_safe_add(hint.Q_low, hint.Q_high_shifted, curve_index); } @@ -492,12 +506,12 @@ fn msm_g1_u128( derive_point_from_x_hint: DerivePointFromXHint, points: Span, scalars: Span, - curve_index: usize + curve_index: usize, ) -> G1Point { let n = scalars.len(); assert!(n == points.len(), "scalars and points length mismatch"); - if n == 0 { - panic!("Msm size must be >= 1"); + if (n != 1 && n != 2) { + panic_with_felt252('Msm size must be [1,2]'); } // Check result points are either on curve, or the point at infinity @@ -511,12 +525,11 @@ fn msm_g1_u128( // Hash everything to obtain a x coordinate. let (s0, s1, s2): (felt252, felt252, felt252) = hades_permutation( - 'MSM_G1_U128', 0, 1 + 'MSM_G1_U128', 0, 1, ); // Init Sponge state let (s0, s1, s2) = hades_permutation( - s0 + curve_index.into(), s1 + n.into(), s2 + s0 + curve_index.into(), s1 + n.into(), s2, ); // Include curve_index and msm size - let (s0, s1, s2) = hint.SumDlogDiv.update_hash_state(s0, s1, s2); let mut s0 = s0; let mut s1 = s1; @@ -546,23 +559,40 @@ fn msm_g1_u128( s2 = _s2; }; + let (s0, _, _) = hint.SumDlogDiv.update_hash_state(s0, s1, s2); + let random_point: G1Point = derive_ec_point_from_X( s0, derive_point_from_x_hint.y_last_attempt, derive_point_from_x_hint.g_rhs_sqrt, - curve_index + curve_index, ); // Get slope, intercept and other constant from random point let (mb): (SlopeInterceptOutput,) = ec::run_SLOPE_INTERCEPT_SAME_POINT_circuit( - random_point, get_a(curve_index), curve_index + random_point, get_a(curve_index), curve_index, ); // Get positive and negative multiplicities of low and high part of scalars let epns = neg_3::u128_array_to_epns(scalars, scalars_digits_decompositions); - // Verify Q = sum(scalar * P for scalar,P in zip(scalars, points)) - zk_ecip_check(points, epns, hint.Q, n, mb, hint.SumDlogDiv, random_point, curve_index); + let case = n - 1; + + let A0 = random_point; + let A2 = G1Point { x: mb.x_A2, y: mb.y_A2 }; + + let (lhs) = match case { + 0 => (ec::run_EVAL_FN_CHALLENGE_DUPL_1P_circuit( + A0, A2, mb.coeff0, mb.coeff2, hint.SumDlogDiv, curve_index, + )), + _ => ec::run_EVAL_FN_CHALLENGE_DUPL_2P_circuit( + A0, A2, mb.coeff0, mb.coeff2, hint.SumDlogDiv, curve_index, + ), + }; + + let rhs = compute_rhs_ecip(points, mb.m_A0, mb.b_A0, random_point.x, epns, hint.Q, curve_index); + + u384_assert_eq(lhs, rhs); return hint.Q; } @@ -577,7 +607,7 @@ fn zk_ecip_check( mb: SlopeInterceptOutput, sum_dlog_div: FunctionFelt, random_point: G1Point, - curve_index: usize + curve_index: usize, ) { let lhs = compute_lhs_ecip( sum_dlog_div: sum_dlog_div, @@ -586,7 +616,7 @@ fn zk_ecip_check( coeff0: mb.coeff0, coeff2: mb.coeff2, msm_size: n, - curve_index: curve_index + curve_index: curve_index, ); let rhs = compute_rhs_ecip( points: points, @@ -595,7 +625,7 @@ fn zk_ecip_check( x_A0: random_point.x, epns: epns, Q_result: Q_result, - curve_index: curve_index + curve_index: curve_index, ); u384_assert_eq(lhs, rhs); } @@ -608,51 +638,51 @@ fn compute_lhs_ecip( coeff0: u384, coeff2: u384, msm_size: usize, - curve_index: usize + curve_index: usize, ) -> u384 { let case = msm_size - 1; let (res) = match case { - 0 => (ec::run_EVAL_FN_CHALLENGE_DUPL_1P_circuit( - A0, A2, coeff0, coeff2, sum_dlog_div, curve_index + 0 => (ec::run_EVAL_FN_CHALLENGE_DUPL_1P_RLC_circuit( + A0, A2, coeff0, coeff2, sum_dlog_div, curve_index, )), - 1 => ec::run_EVAL_FN_CHALLENGE_DUPL_2P_circuit( - A0, A2, coeff0, coeff2, sum_dlog_div, curve_index + 1 => ec::run_EVAL_FN_CHALLENGE_DUPL_2P_RLC_circuit( + A0, A2, coeff0, coeff2, sum_dlog_div, curve_index, ), - 2 => ec::run_EVAL_FN_CHALLENGE_DUPL_3P_circuit( - A0, A2, coeff0, coeff2, sum_dlog_div, curve_index + 2 => ec::run_EVAL_FN_CHALLENGE_DUPL_3P_RLC_circuit( + A0, A2, coeff0, coeff2, sum_dlog_div, curve_index, ), - 3 => ec::run_EVAL_FN_CHALLENGE_DUPL_4P_circuit( - A0, A2, coeff0, coeff2, sum_dlog_div, curve_index + 3 => ec::run_EVAL_FN_CHALLENGE_DUPL_4P_RLC_circuit( + A0, A2, coeff0, coeff2, sum_dlog_div, curve_index, ), - 4 => ec::run_EVAL_FN_CHALLENGE_DUPL_5P_circuit( - A0, A2, coeff0, coeff2, sum_dlog_div, curve_index + 4 => ec::run_EVAL_FN_CHALLENGE_DUPL_5P_RLC_circuit( + A0, A2, coeff0, coeff2, sum_dlog_div, curve_index, ), - 5 => ec::run_EVAL_FN_CHALLENGE_DUPL_6P_circuit( - A0, A2, coeff0, coeff2, sum_dlog_div, curve_index + 5 => ec::run_EVAL_FN_CHALLENGE_DUPL_6P_RLC_circuit( + A0, A2, coeff0, coeff2, sum_dlog_div, curve_index, ), - 6 => ec::run_EVAL_FN_CHALLENGE_DUPL_7P_circuit( - A0, A2, coeff0, coeff2, sum_dlog_div, curve_index + 6 => ec::run_EVAL_FN_CHALLENGE_DUPL_7P_RLC_circuit( + A0, A2, coeff0, coeff2, sum_dlog_div, curve_index, ), - 7 => ec::run_EVAL_FN_CHALLENGE_DUPL_8P_circuit( - A0, A2, coeff0, coeff2, sum_dlog_div, curve_index + 7 => ec::run_EVAL_FN_CHALLENGE_DUPL_8P_RLC_circuit( + A0, A2, coeff0, coeff2, sum_dlog_div, curve_index, ), - 8 => ec::run_EVAL_FN_CHALLENGE_DUPL_9P_circuit( - A0, A2, coeff0, coeff2, sum_dlog_div, curve_index + 8 => ec::run_EVAL_FN_CHALLENGE_DUPL_9P_RLC_circuit( + A0, A2, coeff0, coeff2, sum_dlog_div, curve_index, ), - 9 => ec::run_EVAL_FN_CHALLENGE_DUPL_10P_circuit( - A0, A2, coeff0, coeff2, sum_dlog_div, curve_index + 9 => ec::run_EVAL_FN_CHALLENGE_DUPL_10P_RLC_circuit( + A0, A2, coeff0, coeff2, sum_dlog_div, curve_index, ), _ => { - let (_f_A0, _f_A2, _xA0_pow, _xA2_pow) = ec::run_INIT_FN_CHALLENGE_DUPL_11P_circuit( + let (_f_A0, _f_A2, _xA0_pow, _xA2_pow) = ec::run_INIT_FN_CHALLENGE_DUPL_11P_RLC_circuit( A0.x, A2.x, FunctionFelt { - a_num: sum_dlog_div.a_num.slice(0, 11 + 1), - a_den: sum_dlog_div.a_den.slice(0, 11 + 2), - b_num: sum_dlog_div.b_num.slice(0, 11 + 2), - b_den: sum_dlog_div.b_den.slice(0, 11 + 5), + a_num: sum_dlog_div.a_num.slice(0, 11 + 3), + a_den: sum_dlog_div.a_den.slice(0, 11 + 4), + b_num: sum_dlog_div.b_num.slice(0, 11 + 4), + b_den: sum_dlog_div.b_den.slice(0, 11 + 7), }, - curve_index + curve_index, ); let mut f_A0 = _f_A0; let mut f_A2 = _f_A2; @@ -668,11 +698,11 @@ fn compute_lhs_ecip( A2.x, xA0_power, xA2_power, - *sum_dlog_div.a_num.at(i + 1), - *sum_dlog_div.a_den.at(i + 2), - *sum_dlog_div.b_num.at(i + 2), - *sum_dlog_div.b_den.at(i + 5), - curve_index + *sum_dlog_div.a_num.at(i + 3), + *sum_dlog_div.a_den.at(i + 4), + *sum_dlog_div.b_num.at(i + 4), + *sum_dlog_div.b_den.at(i + 7), + curve_index, ); f_A0 = _f_A0; f_A2 = _f_A2; @@ -682,14 +712,13 @@ fn compute_lhs_ecip( }; ec::run_FINALIZE_FN_CHALLENGE_DUPL_circuit( - f_A0, f_A2, A0.y, A2.y, coeff0, coeff2, curve_index + f_A0, f_A2, A0.y, A2.y, coeff0, coeff2, curve_index, ) - } + }, }; return res; } -#[inline(always)] fn compute_rhs_ecip( mut points: Span, m_A0: u384, @@ -697,7 +726,7 @@ fn compute_rhs_ecip( x_A0: u384, mut epns: Array<(felt252, felt252, felt252, felt252)>, Q_result: G1Point, - curve_index: usize + curve_index: usize, ) -> u384 { let mut basis_sum: u384 = u384 { limb0: 0, limb1: 0, limb2: 0, limb3: 0 }; while let Option::Some(point) = points.pop_front() { @@ -714,7 +743,7 @@ fn compute_rhs_ecip( en.into(), neg_3::sign_to_u384(sp, curve_index), neg_3::sign_to_u384(sn, curve_index), - curve_index + curve_index, ); basis_sum = _basis_sum; } @@ -725,7 +754,7 @@ fn compute_rhs_ecip( return basis_sum; } else { let (rhs) = ec::run_RHS_FINALIZE_ACC_circuit( - basis_sum, m_A0, b_A0, x_A0, Q_result, curve_index + basis_sum, m_A0, b_A0, x_A0, Q_result, curve_index, ); return rhs; } @@ -747,15 +776,15 @@ mod tests { limb0: 0x598cfc33bd761e9f469d5cf1, limb1: 0x70aa740aee8c937ce5a652ed, limb2: 0x15150916fc849dd8, - limb3: 0x0 + limb3: 0x0, }; let grhs_roots: Array = array![ u384 { limb0: 0x70af0825548810253be61ac2, limb1: 0xf5002d67b9fa4c1219c100a4, limb2: 0x299198e451040cb, - limb3: 0x0 - } + limb3: 0x0, + }, ]; let result = derive_ec_point_from_X(x, y, grhs_roots.span(), 0); assert!( @@ -764,8 +793,8 @@ mod tests { limb0: 0xca77736f57333ec7243f64dc, limb1: 0xed10c0cb48d824856b668918, limb2: 0x2763f5473b1953e, - limb3: 0x0 - } + limb3: 0x0, + }, ); assert!(result.y == y); } @@ -779,15 +808,15 @@ mod tests { limb0: 0xda347f7c60a049c6d7bafb5b, limb1: 0xec21b937ef78861d979f0f50, limb2: 0x2ad1c01bba7ac189c78a1e86, - limb3: 0x1026dca24cfcadfb336698e + limb3: 0x1026dca24cfcadfb336698e, }; let grhs_roots: Array = array![ u384 { limb0: 0xdbca26cdf0c7aa11a90c641f, limb1: 0x2e5c0209028615f11d0dc47e, limb2: 0xb1add5551aa6b9c56333f02f, - limb3: 0x19972c66940a5bb4365da67 - } + limb3: 0x19972c66940a5bb4365da67, + }, ]; let result = derive_ec_point_from_X(x, y, grhs_roots.span(), 1); assert!( @@ -796,8 +825,8 @@ mod tests { limb0: 0xca77736f57333ec7243f64dc, limb1: 0xed10c0cb48d824856b668918, limb2: 0x2763f5473b1953e, - limb3: 0x0 - } + limb3: 0x0, + }, ); assert!(result.y == y); } @@ -811,33 +840,33 @@ mod tests { limb0: 0x6fd1f24224585b2f83a36f19, limb1: 0x6edcd937a50597e42acc02c4, limb2: 0x634a08e35a355a32, - limb3: 0x0 + limb3: 0x0, }; let grhs_roots: Array = array![ u384 { limb0: 0x5e1402d5a1794a2ba5113078, limb1: 0xcebc2596ba2db2a201abd409, limb2: 0x54a070a2d860e57f, - limb3: 0x0 + limb3: 0x0, }, u384 { limb0: 0xd619858e2ea7e31cb17c33cb, limb1: 0x4816924dd606b04c135bcfa3, limb2: 0x13dc60324901f16f, - limb3: 0x0 + limb3: 0x0, }, u384 { limb0: 0x6ae587737bb1f9839802fd91, limb1: 0x4fc0f718bb7b3ca34f2cccb3, limb2: 0x4071c850696772a1, - limb3: 0x0 + limb3: 0x0, }, u384 { limb0: 0xd81a6ef8f7ee11a079f304e8, limb1: 0xf765e8b9e097ca1bf0f3ea0e, limb2: 0x459195cbdf16786a, - limb3: 0x0 - } + limb3: 0x0, + }, ]; let result = derive_ec_point_from_X(x, y, grhs_roots.span(), 2); assert!( @@ -846,8 +875,8 @@ mod tests { limb0: 0x8ab6a1b6714eb0afec427f11, limb1: 0x774701c0acf48486afeb35d5, limb2: 0x1a3e9f740bb8959, - limb3: 0x0 - } + limb3: 0x0, + }, ); assert!(result.y == y); } @@ -861,15 +890,15 @@ mod tests { limb0: 0x40cbfb35489307de40764c95, limb1: 0x67ad6ff08b304dc35ef9a319, limb2: 0x5ff5aff356baa1da, - limb3: 0x0 + limb3: 0x0, }; let grhs_roots: Array = array![ u384 { limb0: 0x145e66309035da0e73a4ed6, limb1: 0x696ff6786cf7a86549a1b150, limb2: 0x69e04ef11ab29ee8, - limb3: 0x0 - } + limb3: 0x0, + }, ]; let result = derive_ec_point_from_X(x, y, grhs_roots.span(), 3); assert!( @@ -878,8 +907,8 @@ mod tests { limb0: 0xca77736f57333ec7243f64dc, limb1: 0xed10c0cb48d824856b668918, limb2: 0x2763f5473b1953e, - limb3: 0x0 - } + limb3: 0x0, + }, ); assert!(result.y == y); } @@ -893,7 +922,7 @@ mod tests { limb0: 0xc329e0f3a716909d81ee695d, limb1: 0xac52065a46c058e2dd3da949, limb2: 0x81add1124b65c41, - limb3: 0x0 + limb3: 0x0, }; let grhs_roots: Array = array![]; let result = derive_ec_point_from_X(x, y, grhs_roots.span(), 4); @@ -903,8 +932,8 @@ mod tests { limb0: 0x9558867f5ba91faf7a024204, limb1: 0x37ebdcd9e87a1613e443df78, limb2: 0x23a771181332876, - limb3: 0x0 - } + limb3: 0x0, + }, ); assert!(result.y == y); } @@ -918,33 +947,33 @@ mod tests { limb0: 0x185ddfe68eca3df51ff4c645, limb1: 0x17b6ccbb6f4843c170dc2009, limb2: 0x171370980ed3ba91, - limb3: 0x0 + limb3: 0x0, }; let grhs_roots: Array = array![ u384 { limb0: 0xb6dca81bd6f041ae382202ae, limb1: 0xfebe33fdfdc01232d27737ce, limb2: 0x1031c8f96f566cea, - limb3: 0x0 + limb3: 0x0, }, u384 { limb0: 0xcc497c90b1d5d736c46a619a, limb1: 0xf08b3fe8157a259bf06d1c18, limb2: 0x1329fd3ffe2dbe8e, - limb3: 0x0 + limb3: 0x0, }, u384 { limb0: 0xa46d4f66ca22531865b67bf5, limb1: 0xd5964d6b0c925503d596d887, limb2: 0xa95d8f1df105f18, - limb3: 0x0 + limb3: 0x0, }, u384 { limb0: 0x3b52382c9597a1fad8935560, limb1: 0x3fa8d8a8174fc08c702332ce, limb2: 0x23191b53d4b072b, - limb3: 0x0 - } + limb3: 0x0, + }, ]; let result = derive_ec_point_from_X(x, y, grhs_roots.span(), 0); assert!( @@ -953,8 +982,8 @@ mod tests { limb0: 0x4ed478dca9953c97aedb70f7, limb1: 0xd98adb6e70e8f1580604709, limb2: 0x4bea6d08411cc00, - limb3: 0x0 - } + limb3: 0x0, + }, ); assert!(result.y == y); } @@ -968,39 +997,39 @@ mod tests { limb0: 0x35d8a6fefdafaaaf5b29e897, limb1: 0x6f7727ee8543e37553eeb26f, limb2: 0x2f70791057cdbd90daf42308, - limb3: 0x75b09d110be5483f36e068 + limb3: 0x75b09d110be5483f36e068, }; let grhs_roots: Array = array![ u384 { limb0: 0x5cf036935c9f06c3e0a0aa7c, limb1: 0x79a5eb4e385146a0aa3c1de, limb2: 0x6e20141582b8406d26dda065, - limb3: 0x3c3d605784954989e301c3c + limb3: 0x3c3d605784954989e301c3c, }, u384 { limb0: 0x77a98db8c9be953431659e97, limb1: 0x214a25baa29b08ffc8bec3db, limb2: 0xfe6a7b8656df401896f71787, - limb3: 0xa9152bcd397888aa9388bd8 + limb3: 0xa9152bcd397888aa9388bd8, }, u384 { limb0: 0x4551a54de8fb23786fd1f2a0, limb1: 0x2b19133889843628ea5fd520, limb2: 0xb893ee8526ef349b780c0c24, - limb3: 0x50a551b0bd152405d128fc7 + limb3: 0x50a551b0bd152405d128fc7, }, u384 { limb0: 0xf4ecd002f01cd7ee33519fd5, limb1: 0xed3c61685851221c96d7592b, limb2: 0x9f42fc7c025009a0247daafb, - limb3: 0x45d3eb549e2ff2d259ef50a + limb3: 0x45d3eb549e2ff2d259ef50a, }, u384 { limb0: 0xc71aa51c55a340c4b62ce4bb, limb1: 0xc29f377906d89036689603a4, limb2: 0x4dc8b1c21520b64e2101850, - limb3: 0x6de8fe79d9b161443b37f30 - } + limb3: 0x6de8fe79d9b161443b37f30, + }, ]; let result = derive_ec_point_from_X(x, y, grhs_roots.span(), 1); assert!( @@ -1009,8 +1038,8 @@ mod tests { limb0: 0x836d4610c564d82c11088e19, limb1: 0x4801f5832d47c11bd2378845, limb2: 0x75e11f8d50c3760, - limb3: 0x0 - } + limb3: 0x0, + }, ); assert!(result.y == y); } @@ -1024,15 +1053,15 @@ mod tests { limb0: 0xc6d067f5c5c6a580350c2471, limb1: 0x2ff4d91827cad9a2b11c1cff, limb2: 0x18917af46df8fc3f, - limb3: 0x0 + limb3: 0x0, }; let grhs_roots: Array = array![ u384 { limb0: 0x22d9db5344ce97b7eb160092, limb1: 0x2747c16db787c85dcc773a44, limb2: 0x18a010b6b674e456, - limb3: 0x0 - } + limb3: 0x0, + }, ]; let result = derive_ec_point_from_X(x, y, grhs_roots.span(), 2); assert!( @@ -1041,8 +1070,8 @@ mod tests { limb0: 0xbb4647393e0b7dd03ae7107f, limb1: 0xcdc5afca778a37383350bcf8, limb2: 0x3a81368ffad9e03, - limb3: 0x0 - } + limb3: 0x0, + }, ); assert!(result.y == y); } @@ -1056,15 +1085,15 @@ mod tests { limb0: 0x6e67fe45dcddd89cb69ce7ee, limb1: 0x36156ccb6884f75af70900f1, limb2: 0x30b6330c77234ef8, - limb3: 0x0 + limb3: 0x0, }; let grhs_roots: Array = array![ u384 { limb0: 0xea8397d53edccf2ceda23ff0, limb1: 0xa5a0c4098c25294b18a0f0f9, limb2: 0x11722147901e6d89, - limb3: 0x0 - } + limb3: 0x0, + }, ]; let result = derive_ec_point_from_X(x, y, grhs_roots.span(), 3); assert!( @@ -1073,8 +1102,8 @@ mod tests { limb0: 0xbb4647393e0b7dd03ae7107f, limb1: 0xcdc5afca778a37383350bcf8, limb2: 0x3a81368ffad9e03, - limb3: 0x0 - } + limb3: 0x0, + }, ); assert!(result.y == y); } @@ -1088,7 +1117,7 @@ mod tests { limb0: 0x33e9327c0c98794856bde22a, limb1: 0xdf89110f1e821a3112ce76bb, limb2: 0xacf925c82c4365f, - limb3: 0x0 + limb3: 0x0, }; let grhs_roots: Array = array![]; let result = derive_ec_point_from_X(x, y, grhs_roots.span(), 4); @@ -1098,8 +1127,8 @@ mod tests { limb0: 0xfb97d43588561712e8e5216a, limb1: 0x9a164106cf6a659eb4862b21, limb2: 0x259f432e6f4590b, - limb3: 0x0 - } + limb3: 0x0, + }, ); assert!(result.y == y); } diff --git a/src/src/ec_ops_g2.cairo b/src/src/ec_ops_g2.cairo new file mode 100644 index 00000000..bb37bda7 --- /dev/null +++ b/src/src/ec_ops_g2.cairo @@ -0,0 +1,328 @@ +use core::circuit::CircuitElement as CE; +use core::circuit::CircuitInput as CI; + +use core::circuit::{ + u384, circuit_add, circuit_sub, circuit_mul, circuit_inverse, EvalCircuitTrait, + CircuitOutputsTrait, CircuitModulus, CircuitInputs, +}; +use core::option::Option; +use garaga::core::circuit::AddInputResultTrait2; +use garaga::definitions::{G2Point, G2PointZero, get_BLS12_381_modulus, get_b2, get_a, get_modulus}; +use garaga::circuits::ec; +use garaga::utils::u384_assert_zero; +use garaga::basic_field_ops::neg_mod_p; + + +#[generate_trait] +impl G2PointImpl of G2PointTrait { + fn assert_on_curve(self: @G2Point, curve_index: usize) { + let (b20, b21) = get_b2(curve_index).unwrap(); + let (check0, check1) = ec::run_IS_ON_CURVE_G2_circuit( + *self, get_a(curve_index), b20, b21, curve_index, + ); + u384_assert_zero(check0); + u384_assert_zero(check1); + } + fn is_on_curve(self: @G2Point, curve_index: usize) -> bool { + let (b20, b21) = get_b2(curve_index).unwrap(); + let (check0, check1) = ec::run_IS_ON_CURVE_G2_circuit( + *self, get_a(curve_index), b20, b21, curve_index, + ); + return check0.is_zero() && check1.is_zero(); + } + fn negate(self: @G2Point, curve_index: usize) -> G2Point { + let modulus = get_modulus(curve_index); + G2Point { + x0: *self.x0, + x1: *self.x1, + y0: neg_mod_p(*self.y0, modulus), + y1: neg_mod_p(*self.y1, modulus), + } + } +} + +// G2 Ops for BLS12-381. + +// Returns Option::None in case of error. +fn ec_mul(pt: G2Point, s: u256, curve_index: usize) -> Option { + if pt.is_zero() { + // Input point is at infinity, return it + return Option::Some(pt); + } else { + // Point is not at infinity + if pt.is_on_curve(curve_index) { + if s == 0 { + return Option::Some(G2PointZero::zero()); + } else if s == 1 { + return Option::Some(pt); + } else { + // Point is on the curve. + // s is >= 2. + let bits = get_bits_little(s); + let pt = ec_mul_inner(pt, bits, curve_index); + match pt { + Option::Some(r) => Option::Some(r), + Option::None => Option::Some(G2PointZero::zero()), + } + } + } else { + // Point is not on the curve + return Option::None; + } + } +} + +// Returns the bits of the 256 bit number in little endian format. +fn get_bits_little(s: u256) -> Array { + let mut bits = ArrayTrait::new(); + let mut s_low = s.low; + while s_low != 0 { + let (q, r) = core::traits::DivRem::div_rem(s_low, 2); + bits.append(r.into()); + s_low = q; + }; + let mut s_high = s.high; + if s_high != 0 { + while bits.len() != 128 { + bits.append(0); + } + } + while s_high != 0 { + let (q, r) = core::traits::DivRem::div_rem(s_high, 2); + bits.append(r.into()); + s_high = q; + }; + bits +} + +#[inline] +fn ec_safe_add(P: G2Point, Q: G2Point, curve_index: usize) -> Option { + // assumes that the points are on the curve and not the point at infinity. + // Returns None if the points are the same and opposite y coordinates (Point at infinity) + let same_x = eq_mod_p(P.x0, P.x1, Q.x0, Q.x1); + + if same_x { + let opposite_y = eq_neg_mod_p(P.y0, P.y1, Q.y0, Q.y1); + + if opposite_y { + return Option::None; + } else { + let (R) = ec::run_DOUBLE_EC_POINT_G2_A_EQ_0_circuit(P, curve_index); + return Option::Some(R); + } + } else { + let (R) = ec::run_ADD_EC_POINTS_G2_circuit(P, Q, curve_index); + return Option::Some(R); + } +} +// Should not be called outside of ec_mul. +// Returns Option::None in case of point at infinity. +// The size of bits array must be at minimum 2 and the point must be on the curve. +fn ec_mul_inner(pt: G2Point, mut bits: Array, curve_index: usize) -> Option { + let mut temp = pt; + let mut result: Option = Option::None; + for bit in bits { + if bit != 0 { + match result { + Option::Some(R) => result = ec_safe_add(temp, R, curve_index), + Option::None => result = Option::Some(temp), + }; + }; + let (_temp) = ec::run_DOUBLE_EC_POINT_G2_A_EQ_0_circuit(temp, curve_index); + temp = _temp; + }; + + return result; +} + + +// returns true if a == b mod p bls12-381 +#[inline] +pub fn eq_mod_p(a0: u384, a1: u384, b0: u384, b1: u384) -> bool { + let _a0 = CE::> {}; + let _a1 = CE::> {}; + let _b0 = CE::> {}; + let _b1 = CE::> {}; + let sub0 = circuit_sub(_a0, _b0); + let sub1 = circuit_sub(_a1, _b1); + + let modulus = get_BLS12_381_modulus(); + + let outputs = (sub0, sub1) + .new_inputs() + .next_2(a0) + .next_2(a1) + .next_2(b0) + .next_2(b1) + .done_2() + .eval(modulus) + .unwrap(); + + return outputs.get_output(sub0).is_zero() && outputs.get_output(sub1).is_zero(); +} + +// returns true if a == -b mod p bls12-381 +#[inline] +pub fn eq_neg_mod_p(a0: u384, a1: u384, b0: u384, b1: u384) -> bool { + let _a0 = CE::> {}; + let _a1 = CE::> {}; + let _b0 = CE::> {}; + let _b1 = CE::> {}; + let check0 = circuit_add(_a0, _b0); + let check1 = circuit_add(_a1, _b1); + + let modulus = get_BLS12_381_modulus(); + let outputs = (check0, check1) + .new_inputs() + .next_2(a0) + .next_2(a1) + .next_2(b0) + .next_2(b1) + .done_2() + .eval(modulus) + .unwrap(); + + return outputs.get_output(check0).is_zero() && outputs.get_output(check1).is_zero(); +} + + +#[cfg(test)] +mod tests { + use super::{eq_mod_p, eq_neg_mod_p, G2Point, G2PointZero, ec_safe_add, u384, ec_mul}; + use garaga::definitions::BLS_G2_GENERATOR; + #[test] + fn test_ec_mul_g2() { + let g = BLS_G2_GENERATOR; + + let s = 0; + let curve_index = 1; + let r = ec_mul(g, s, curve_index).unwrap(); + assert!(r == G2PointZero::zero()); + + let s: u256 = 1; + let r = ec_mul(g, s, curve_index).unwrap(); + assert!(r == g); + + let s: u256 = 2; + let g2: G2Point = G2Point { + x0: u384 { + limb0: 0xf3611b78c952aacab827a053, + limb1: 0xe1ea1e1e4d00dbae81f14b0b, + limb2: 0xcc7ed5863bc0b995b8825e0e, + limb3: 0x1638533957d540a9d2370f17, + }, + x1: u384 { + limb0: 0xb57ec72a6178288c47c33577, + limb1: 0x728114d1031e1572c6c886f6, + limb2: 0x730a124fd70662a904ba1074, + limb3: 0xa4edef9c1ed7f729f520e47, + }, + y0: u384 { + limb0: 0x764bf3bd999d95d71e4c9899, + limb1: 0xbfe6bd221e47aa8ae88dece9, + limb2: 0x2b5256789a66da69bf91009c, + limb3: 0x468fb440d82b0630aeb8dca, + }, + y1: u384 { + limb0: 0xa59c8967acdefd8b6e36ccf3, + limb1: 0x97003f7a13c308f5422e1aa0, + limb2: 0x3f887136a43253d9c66c4116, + limb3: 0xf6d4552fa65dd2638b36154, + }, + }; + let r = ec_mul(g, s, curve_index).unwrap(); + assert!(r == g2); + + let s: u256 = 3; + let g3: G2Point = G2Point { + x0: u384 { + limb0: 0x866f09d516020ef82324afae, + limb1: 0xa0c75df1c04d6d7a50a030fc, + limb2: 0xdccb23ae691ae54329781315, + limb3: 0x122915c824a0857e2ee414a3, + }, + x1: u384 { + limb0: 0x937cc6d9d6a44aaa56ca66dc, + limb1: 0x5062650f8d251c96eb480673, + limb2: 0x7e0550ff2ac480905396eda5, + limb3: 0x9380275bbc8e5dcea7dc4dd, + }, + y0: u384 { + limb0: 0x8b52fdf2455e44813ecfd892, + limb1: 0x326ac738fef5c721479dfd94, + limb2: 0xbc1a6f0136961d1e3b20b1a7, + limb3: 0xb21da7955969e61010c7a1a, + }, + y1: u384 { + limb0: 0xb975b9edea56d53f23a0e849, + limb1: 0x714150a166bfbd6bcf6b3b58, + limb2: 0xa36cfe5f62a7e42e0bf1c1ed, + limb3: 0x8f239ba329b3967fe48d718, + }, + }; + let r = ec_mul(g, s, curve_index).unwrap(); + assert!(r == g3); + + let s = 0xffffffffffffffffffffffffffffffff; + let g4: G2Point = G2Point { + x0: u384 { + limb0: 0xae40a8b5aee95e54aedee2e7, + limb1: 0x6e0699501c5035eed8fc5162, + limb2: 0xbee76829b76806d1b6617bf8, + limb3: 0x5026c3305c1267922077393, + }, + x1: u384 { + limb0: 0x10c08c4b0a70e02491c3c435, + limb1: 0x591ef738050b3ce067e2016f, + limb2: 0xdd6e0a179e2ce3c1399c5273, + limb3: 0xd5c9af9b97e94f90cb4aba3, + }, + y0: u384 { + limb0: 0x93be53660cebb92c90d4fa87, + limb1: 0xfbf63ca94e1d0ffd65801863, + limb2: 0xd24fd9a06d72f1dc57f15f0a, + limb3: 0x100dbfd4f271378e85171313, + }, + y1: u384 { + limb0: 0xb7296e587409163eecd3ef5d, + limb1: 0x8a065d6871fa185d15703e78, + limb2: 0x8a85fb95bb90eb5c7a0d81a9, + limb3: 0x157cf362e91a3c96640bd973, + }, + }; + let r = ec_mul(g, s, curve_index).unwrap(); + assert!(r == g4); + + // + let s = 0x100000000000000000000000000000001; + let g5: G2Point = G2Point { + x0: u384 { + limb0: 0x2131be4b061714de5a11407d, + limb1: 0xd41318f9bcade1fee985310b, + limb2: 0xb2669e638a7b78b7ba5c6751, + limb3: 0xa5284fb2911d4e2f445e714, + }, + x1: u384 { + limb0: 0x712edcaf95ed642a8237e6fd, + limb1: 0xed6fccd7b64896ebb6ffb3d9, + limb2: 0xfcb88d23294a46657b8d2482, + limb3: 0x143ef485b660d37036fc18e2, + }, + y0: u384 { + limb0: 0xaa5b7ff57bdbf47e6ab49121, + limb1: 0xc14cded56b4a44e022320616, + limb2: 0xdd5105feb3fdc5b10edb5afa, + limb3: 0x175d2c78538490ce02fcead8, + }, + y1: u384 { + limb0: 0x23893f1bb0fdb0533584b05f, + limb1: 0x420d425d79dcd48b26d87814, + limb2: 0xc932fa90468e6b9dfd658cc9, + limb3: 0xe5fac70e9096e97adc6dd89, + }, + }; + let r = ec_mul(g, s, curve_index).unwrap(); + assert!(r == g5); + } +} + diff --git a/src/src/groth16.cairo b/src/src/groth16.cairo index 96f78e3f..6b9ac475 100644 --- a/src/src/groth16.cairo +++ b/src/src/groth16.cairo @@ -17,20 +17,20 @@ /// /// Moreover, the file contains the full groth16 verification function for BN254 and BLS12-381. use garaga::definitions::{ - G1Point, G2Point, G1G2Pair, u384, bn_bits, bls_bits, MillerLoopResultScalingFactor, E12D, - BNProcessedPair, BLSProcessedPair, get_p, E12DMulQuotient, G2Line, u288 + G1Point, G2Point, G1G2Pair, bn_bits, bls_bits, MillerLoopResultScalingFactor, E12D, + BNProcessedPair, BLSProcessedPair, get_modulus, E12DMulQuotient, G2Line, u288, }; use garaga::circuits::multi_pairing_check::{ run_BN254_MP_CHECK_PREPARE_LAMBDA_ROOT_circuit, run_BLS12_381_MP_CHECK_PREPARE_LAMBDA_ROOT_circuit, run_BLS12_381_MP_CHECK_PREPARE_PAIRS_3P_circuit, run_BN254_MP_CHECK_PREPARE_PAIRS_3P_circuit, - run_BN254_MP_CHECK_PREPARE_PAIRS_1P_circuit + run_BN254_MP_CHECK_PREPARE_PAIRS_1P_circuit, }; use garaga::circuits::multi_pairing_check as mpc; - +use core::circuit::u384; use garaga::circuits::extf_mul::{ run_BLS12_381_FP12_MUL_ASSERT_ONE_circuit, run_BN254_FP12_MUL_ASSERT_ONE_circuit, - run_BN254_EVAL_E12D_circuit, run_BLS12_381_EVAL_E12D_circuit + run_BN254_EVAL_E12D_circuit, run_BLS12_381_EVAL_E12D_circuit, }; use core::option::Option; use garaga::utils; @@ -40,8 +40,8 @@ use core::num::traits::{One}; use garaga::basic_field_ops::{neg_mod_p, compute_yInvXnegOverY_BN254}; -use garaga::ec_ops::{msm_g1, MSMHint, DerivePointFromXHint, G1PointTrait, G2PointTrait}; - +use garaga::ec_ops::{msm_g1, MSMHint, DerivePointFromXHint, G1PointTrait}; +use garaga::ec_ops_g2::G2PointTrait; use garaga::pairing_check::{MPCheckHintBN254, MPCheckHintBLS12_381}; use garaga::utils::{u384_assert_zero, usize_assert_eq}; use garaga::utils::hashing; @@ -49,19 +49,19 @@ use garaga::utils::hashing; // Groth16 proof structure, genric for both BN254 and BLS12-381. #[derive(Drop, Serde)] -struct Groth16Proof { - a: G1Point, - b: G2Point, - c: G1Point, - public_inputs: Span, +pub struct Groth16Proof { + pub a: G1Point, + pub b: G2Point, + pub c: G1Point, + pub public_inputs: Span, } // Only used for Risc0 where public inputs are derived with an extra step. #[derive(Drop, Serde)] -struct Groth16ProofRaw { - a: G1Point, - b: G2Point, - c: G1Point, +pub struct Groth16ProofRaw { + pub a: G1Point, + pub b: G2Point, + pub c: G1Point, } // Groth16 verifying key structure, consisting of the two fixed G2 points and the precomputed // miller loop result miller_loop(alpha, beta) @@ -69,10 +69,10 @@ struct Groth16ProofRaw { // Does not include IC either as its size is not fixed and we want to write it as constant in smart // contracts. #[derive(Drop)] -struct Groth16VerifyingKey { - alpha_beta_miller_loop_result: E12D, - gamma_g2: G2Point, - delta_g2: G2Point, +pub struct Groth16VerifyingKey { + pub alpha_beta_miller_loop_result: E12D, + pub gamma_g2: G2Point, + pub delta_g2: G2Point, } @@ -100,7 +100,7 @@ fn verify_groth16_bn254( public_inputs_msm_hint: MSMHint, public_inputs_msm_derive_point_from_x_hint: DerivePointFromXHint, mpcheck_hint: MPCheckHintBN254, - small_Q: E12DMulQuotient + small_Q: E12DMulQuotient, ) -> bool { let vk_x: G1Point = msm_g1( public_inputs_digits_decompositions, @@ -108,7 +108,7 @@ fn verify_groth16_bn254( public_inputs_msm_derive_point_from_x_hint, ic.slice(1, ic.len() - 1), proof.public_inputs, - 0 + 0, ); proof.a.assert_on_curve(0); @@ -122,7 +122,7 @@ fn verify_groth16_bn254( verification_key.alpha_beta_miller_loop_result, lines, mpcheck_hint, - small_Q + small_Q, ); } @@ -150,7 +150,7 @@ fn verify_groth16_bls12_381( public_inputs_msm_hint: MSMHint, public_inputs_msm_derive_point_from_x_hint: DerivePointFromXHint, mpcheck_hint: MPCheckHintBLS12_381, - small_Q: E12DMulQuotient + small_Q: E12DMulQuotient, ) -> bool { let vk_x: G1Point = msm_g1( public_inputs_digits_decompositions, @@ -158,7 +158,7 @@ fn verify_groth16_bls12_381( public_inputs_msm_derive_point_from_x_hint, ic.slice(1, ic.len() - 1), proof.public_inputs, - 1 + 1, ); proof.a.assert_on_curve(1); @@ -172,7 +172,7 @@ fn verify_groth16_bls12_381( verification_key.alpha_beta_miller_loop_result, lines, mpcheck_hint, - small_Q + small_Q, ); } @@ -231,22 +231,22 @@ fn multi_pairing_check_bn254_3P_2F_with_extra_miller_loop_result( precomputed_miller_loop_result: E12D, mut lines: Span>, mpcheck_hint: MPCheckHintBN254, - small_Q: E12DMulQuotient + small_Q: E12DMulQuotient, ) -> bool { - usize_assert_eq(mpcheck_hint.big_Q.len(), 114); - usize_assert_eq(mpcheck_hint.Ris.len(), 52); + usize_assert_eq(mpcheck_hint.big_Q.len(), 190); + usize_assert_eq(mpcheck_hint.Ris.len(), 35); let (yInv_0, xNegOverY_0) = compute_yInvXnegOverY_BN254(pair0.p.x, pair0.p.y); let (yInv_1, xNegOverY_1) = compute_yInvXnegOverY_BN254(pair1.p.x, pair1.p.y); let (processed_pair2) = run_BN254_MP_CHECK_PREPARE_PAIRS_1P_circuit( - pair2.p, pair2.q.y0, pair2.q.y1 + pair2.p, pair2.q.y0, pair2.q.y1, ); // Init sponge state == hades_permutation(int.from_bytes(b'MPCHECK_BN254_3P_2F', "big"), 0, 1) let (s0, s1, s2) = ( 0x716fcd6880324d6d3638aeb033dfab41310a98ce7aa8f44159a67f4a8a4fbc8, 0x68dc029639a62ca19056e890fb846e0b9c89926a0ba1371b79201a6563a0df6, - 0x45cdbfd4efe739304e9ec6744f6bdb99016ab57885cbe7e4c59108d2a649b + 0x45cdbfd4efe739304e9ec6744f6bdb99016ab57885cbe7e4c59108d2a649b, ); // Hash Inputs let (s0, s1, s2) = hashing::hash_G1G2Pair(pair0, s0, s1, s2); @@ -266,10 +266,10 @@ fn multi_pairing_check_bn254_3P_2F_with_extra_miller_loop_result( let z: u384 = z_felt252.into(); // Precompute lambda root evaluated in Z: let ( - c_of_z, w_of_z, c_inv_of_z, LHS, c_inv_frob_1_of_z, c_frob_2_of_z, c_inv_frob_3_of_z + c_of_z, w_of_z, c_inv_of_z, LHS, c_inv_frob_1_of_z, c_frob_2_of_z, c_inv_frob_3_of_z, ): (u384, u384, u384, u384, u384, u384, u384) = run_BN254_MP_CHECK_PREPARE_LAMBDA_ROOT_circuit( - mpcheck_hint.lambda_root, z, mpcheck_hint.w, mpcheck_hint.lambda_root_inverse, c_i + mpcheck_hint.lambda_root, z, mpcheck_hint.w, mpcheck_hint.lambda_root_inverse, c_i, ); // init bit for bn254 is 0: @@ -289,7 +289,7 @@ fn multi_pairing_check_bn254_3P_2F_with_extra_miller_loop_result( c_i, z, c_inv_of_z, - LHS + LHS, ); let mut Q2 = _Q2; @@ -299,116 +299,127 @@ fn multi_pairing_check_bn254_3P_2F_with_extra_miller_loop_result( // rest of miller loop let mut bits = bn_bits.span(); - while let Option::Some(bit) = bits.pop_front() { let (R_i_of_z) = run_BN254_EVAL_E12D_circuit(*Ris.pop_front().unwrap(), z); let (_Q2, _LHS, _c_i): (G2Point, u384, u384) = match *bit { 0 => { - mpc::run_BN254_MP_CHECK_BIT0_3P_2F_circuit( - yInv_0, - xNegOverY_0, - *lines.pop_front().unwrap(), - yInv_1, - xNegOverY_1, - *lines.pop_front().unwrap(), - processed_pair2.yInv, - processed_pair2.xNegOverY, - Q2, - LHS, - f_i_of_z, - R_i_of_z, - z, - c_i - ) - }, - 1 => { - mpc::run_BN254_MP_CHECK_BIT1_3P_2F_circuit( + let [l0, l1, l2, l3] = (*lines.multi_pop_front::<4>().unwrap()).unbox(); + mpc::run_BN254_MP_CHECK_BIT00_3P_2F_circuit( yInv_0, xNegOverY_0, - *lines.pop_front().unwrap(), - *lines.pop_front().unwrap(), + l0, + l1, yInv_1, xNegOverY_1, - *lines.pop_front().unwrap(), - *lines.pop_front().unwrap(), + l2, + l3, processed_pair2.yInv, processed_pair2.xNegOverY, Q2, - pair2.q, LHS, f_i_of_z, R_i_of_z, - c_inv_of_z, z, c_i, ) }, + 1 | 2 => { - mpc::run_BN254_MP_CHECK_BIT1_3P_2F_circuit( + // 1 -> 10 + // 2 -> -10 + let [l0, l1, l2, l3, l4, l5] = (*lines.multi_pop_front::<6>().unwrap()).unbox(); + let (Q_or_Q_neg, c_or_c_inv_of_z) = match (*bit - 1) { + 0 => (pair2.q, c_inv_of_z), + _ => ( + G2Point { + x0: pair2.q.x0, + x1: pair2.q.x1, + y0: processed_pair2.QyNeg0, + y1: processed_pair2.QyNeg1, + }, + c_of_z, + ), + }; + mpc::run_BN254_MP_CHECK_BIT10_3P_2F_circuit( yInv_0, xNegOverY_0, - *lines.pop_front().unwrap(), - *lines.pop_front().unwrap(), + l0, + l1, + l2, yInv_1, xNegOverY_1, - *lines.pop_front().unwrap(), - *lines.pop_front().unwrap(), + l3, + l4, + l5, processed_pair2.yInv, processed_pair2.xNegOverY, Q2, - G2Point { - x0: pair2.q.x0, - x1: pair2.q.x1, - y0: processed_pair2.QyNeg0, - y1: processed_pair2.QyNeg1 - }, + Q_or_Q_neg, LHS, f_i_of_z, R_i_of_z, - c_of_z, + c_or_c_inv_of_z, z, c_i, ) }, _ => { - mpc::run_BN254_MP_CHECK_BIT00_3P_2F_circuit( + // 3 -> 01, 4 -> 0-1 + let [l0, l1, l2, l3, l4, l5] = (*lines.multi_pop_front::<6>().unwrap()).unbox(); + let (Q_or_Q_neg, c_or_c_inv_of_z) = match (*bit - 3) { + 0 => (pair2.q, c_inv_of_z), + _ => ( + G2Point { + x0: pair2.q.x0, + x1: pair2.q.x1, + y0: processed_pair2.QyNeg0, + y1: processed_pair2.QyNeg1, + }, + c_of_z, + ), + }; + mpc::run_BN254_MP_CHECK_BIT01_3P_2F_circuit( yInv_0, xNegOverY_0, - *lines.pop_front().unwrap(), - *lines.pop_front().unwrap(), + l0, + l1, + l2, yInv_1, xNegOverY_1, - *lines.pop_front().unwrap(), - *lines.pop_front().unwrap(), + l3, + l4, + l5, processed_pair2.yInv, processed_pair2.xNegOverY, Q2, + Q_or_Q_neg, LHS, f_i_of_z, R_i_of_z, + c_or_c_inv_of_z, z, - c_i + c_i, ) - } + }, }; Q2 = _Q2; LHS = _LHS; f_i_of_z = R_i_of_z; c_i = _c_i; }; - let R_n_minus_2 = Ris.pop_front().unwrap(); let R_last = Ris.pop_front().unwrap(); + let [l0, l1, l2, l3] = (*lines.multi_pop_front::<4>().unwrap()).unbox(); let (check) = mpc::run_BN254_MP_CHECK_FINALIZE_BN_3P_2F_circuit( yInv_0, xNegOverY_0, - *lines.pop_front().unwrap(), - *lines.pop_front().unwrap(), + l0, + l1, yInv_1, xNegOverY_1, - *lines.pop_front().unwrap(), - *lines.pop_front().unwrap(), + l2, + l3, pair2.q, processed_pair2.yInv, processed_pair2.xNegOverY, @@ -423,7 +434,7 @@ fn multi_pairing_check_bn254_3P_2F_with_extra_miller_loop_result( c_inv_frob_3_of_z, LHS, f_i_of_z, - mpcheck_hint.big_Q + mpcheck_hint.big_Q, ); // Checks that LHS = Q(z) * P_irr(z) @@ -433,7 +444,7 @@ fn multi_pairing_check_bn254_3P_2F_with_extra_miller_loop_result( let (s0, s1, s2) = hashing::hash_E12D_u288(precomputed_miller_loop_result, s0, s1, s2); let (z, _, _) = hashing::hash_E12DMulQuotient_u288(small_Q, s0, s1, s2); let (check) = run_BN254_FP12_MUL_ASSERT_ONE_circuit( - *R_last, precomputed_miller_loop_result, small_Q, z.into() + *R_last, precomputed_miller_loop_result, small_Q, z.into(), ); u384_assert_zero(check); return true; @@ -493,19 +504,19 @@ fn multi_pairing_check_bls12_381_3P_2F_with_extra_miller_loop_result( precomputed_miller_loop_result: E12D, mut lines: Span>, hint: MPCheckHintBLS12_381, - small_Q: E12DMulQuotient + small_Q: E12DMulQuotient, ) -> bool { assert!( hint.big_Q.len() == 105, - "Wrong Q degree for BLS12-381 3-Pairs Paring check, should be of degree 104 (105 coefficients)" + "Wrong Q degree for BLS12-381 3-Pairs Paring check, should be of degree 104 (105 coefficients)", ); assert!(hint.Ris.len() == 36, "Wrong Number of Ris for BLS12-381 3-Pairs Paring check"); let ( - processed_pair0, processed_pair1, processed_pair2 + processed_pair0, processed_pair1, processed_pair2, ): (BLSProcessedPair, BLSProcessedPair, BLSProcessedPair) = run_BLS12_381_MP_CHECK_PREPARE_PAIRS_3P_circuit( - pair0.p, pair1.p, pair2.p + pair0.p, pair1.p, pair2.p, ); // Init sponge state : @@ -527,28 +538,29 @@ fn multi_pairing_check_bls12_381_3P_2F_with_extra_miller_loop_result( // Precompute lambda root evaluated in Z: let (conjugate_c_inv_of_z, w_of_z, c_inv_of_z_frob_1): (u384, u384, u384) = run_BLS12_381_MP_CHECK_PREPARE_LAMBDA_ROOT_circuit( - hint.lambda_root_inverse, z, hint.w + hint.lambda_root_inverse, z, hint.w, ); // init bit for bls is 1: let mut Ris = hint.Ris; let (R_0_of_Z) = run_BLS12_381_EVAL_E12D_circuit(*Ris.pop_front().unwrap(), z); + let [l0, l1, l2, l3] = (*lines.multi_pop_front::<4>().unwrap()).unbox(); let (_Q2, _lhs) = mpc::run_BLS12_381_MP_CHECK_INIT_BIT_3P_2F_circuit( processed_pair0.yInv, processed_pair0.xNegOverY, - *lines.pop_front().unwrap(), - *lines.pop_front().unwrap(), + l0, + l1, processed_pair1.yInv, processed_pair1.xNegOverY, - *lines.pop_front().unwrap(), - *lines.pop_front().unwrap(), + l2, + l3, processed_pair2.yInv, processed_pair2.xNegOverY, pair2.q, R_0_of_Z, c_i, z, - conjugate_c_inv_of_z + conjugate_c_inv_of_z, ); let mut Q2 = _Q2; @@ -565,13 +577,14 @@ fn multi_pairing_check_bls12_381_3P_2F_with_extra_miller_loop_result( let (R_i_of_z) = run_BLS12_381_EVAL_E12D_circuit(*Ris.pop_front().unwrap(), z); let (_Q2, _LHS, _c_i): (G2Point, u384, u384) = match *bit { 0 => { + let [l0, l1] = (*lines.multi_pop_front::<2>().unwrap()).unbox(); mpc::run_BLS12_381_MP_CHECK_BIT0_3P_2F_circuit( processed_pair0.yInv, processed_pair0.xNegOverY, - *lines.pop_front().unwrap(), + l0, processed_pair1.yInv, processed_pair1.xNegOverY, - *lines.pop_front().unwrap(), + l1, processed_pair2.yInv, processed_pair2.xNegOverY, Q2, @@ -579,19 +592,20 @@ fn multi_pairing_check_bls12_381_3P_2F_with_extra_miller_loop_result( f_i_of_z, R_i_of_z, z, - c_i + c_i, ) }, 1 => { + let [l0, l1, l2, l3] = (*lines.multi_pop_front::<4>().unwrap()).unbox(); mpc::run_BLS12_381_MP_CHECK_BIT1_3P_2F_circuit( processed_pair0.yInv, processed_pair0.xNegOverY, - *lines.pop_front().unwrap(), - *lines.pop_front().unwrap(), + l0, + l1, processed_pair1.yInv, processed_pair1.xNegOverY, - *lines.pop_front().unwrap(), - *lines.pop_front().unwrap(), + l2, + l3, processed_pair2.yInv, processed_pair2.xNegOverY, Q2, @@ -605,15 +619,16 @@ fn multi_pairing_check_bls12_381_3P_2F_with_extra_miller_loop_result( ) }, _ => { + let [l0, l1, l2, l3] = (*lines.multi_pop_front::<4>().unwrap()).unbox(); mpc::run_BLS12_381_MP_CHECK_BIT00_3P_2F_circuit( processed_pair0.yInv, processed_pair0.xNegOverY, - *lines.pop_front().unwrap(), - *lines.pop_front().unwrap(), + l0, + l1, processed_pair1.yInv, processed_pair1.xNegOverY, - *lines.pop_front().unwrap(), - *lines.pop_front().unwrap(), + l2, + l3, processed_pair2.yInv, processed_pair2.xNegOverY, Q2, @@ -621,9 +636,9 @@ fn multi_pairing_check_bls12_381_3P_2F_with_extra_miller_loop_result( f_i_of_z, R_i_of_z, z, - c_i + c_i, ) - } + }, }; Q2 = _Q2; LHS = _LHS; @@ -635,7 +650,7 @@ fn multi_pairing_check_bls12_381_3P_2F_with_extra_miller_loop_result( // Checks that LHS = Q(z) * P_irr(z) let (check) = mpc::run_BLS12_381_MP_CHECK_FINALIZE_BLS_3P_circuit( - *R_last, c_i, w_of_z, z, c_inv_of_z_frob_1, LHS, f_i_of_z, hint.big_Q + *R_last, c_i, w_of_z, z, c_inv_of_z_frob_1, LHS, f_i_of_z, hint.big_Q, ); assert!(check == u384 { limb0: 0, limb1: 0, limb2: 0, limb3: 0 }, "Final check failed"); @@ -645,26 +660,26 @@ fn multi_pairing_check_bls12_381_3P_2F_with_extra_miller_loop_result( let (s0, s1, s2) = hashing::hash_E12D_u384(precomputed_miller_loop_result, s0, s1, s2); let (z, _, _) = hashing::hash_E12DMulQuotient_u384(small_Q, s0, s1, s2); let (check) = run_BLS12_381_FP12_MUL_ASSERT_ONE_circuit( - f_conjugate, precomputed_miller_loop_result, small_Q, z.into() + f_conjugate, precomputed_miller_loop_result, small_Q, z.into(), ); assert!(check == u384 { limb0: 0, limb1: 0, limb2: 0, limb3: 0 }); return true; } fn conjugate_e12D(self: E12D, curve_index: usize) -> E12D { - let p = get_p(curve_index); + let modulus = get_modulus(curve_index); E12D { w0: self.w0, - w1: neg_mod_p(self.w1, p), + w1: neg_mod_p(self.w1, modulus), w2: self.w2, - w3: neg_mod_p(self.w3, p), + w3: neg_mod_p(self.w3, modulus), w4: self.w4, - w5: neg_mod_p(self.w5, p), + w5: neg_mod_p(self.w5, modulus), w6: self.w6, - w7: neg_mod_p(self.w7, p), + w7: neg_mod_p(self.w7, modulus), w8: self.w8, - w9: neg_mod_p(self.w9, p), + w9: neg_mod_p(self.w9, modulus), w10: self.w10, - w11: neg_mod_p(self.w11, p), + w11: neg_mod_p(self.w11, modulus), } } diff --git a/src/src/lib.cairo b/src/src/lib.cairo index 6afee496..cff6cda8 100644 --- a/src/src/lib.cairo +++ b/src/src/lib.cairo @@ -1,10 +1,12 @@ pub mod definitions; pub mod utils; pub mod ec_ops; +pub mod ec_ops_g2; pub mod pairing_check; pub mod circuits; pub mod groth16; pub mod basic_field_ops; +pub mod single_pairing_tower; mod tests; pub mod core; @@ -49,7 +51,7 @@ mod tests_lib { .done() .eval(modulus) { Result::Ok(outputs) => { outputs }, - Result::Err(_) => { panic!("Expected success") } + Result::Err(_) => { panic!("Expected success") }, }; assert_eq!(outputs.get_output(add), u384 { limb0: 2, limb1: 0, limb2: 0, limb3: 0 }); diff --git a/src/src/pairing_check.cairo b/src/src/pairing_check.cairo index 15deab41..71bad562 100644 --- a/src/src/pairing_check.cairo +++ b/src/src/pairing_check.cairo @@ -11,8 +11,8 @@ use core::array::ArrayTrait; use garaga::circuits::multi_pairing_check::{ run_BLS12_381_MP_CHECK_BIT0_2P_2F_circuit, run_BLS12_381_MP_CHECK_BIT00_2P_2F_circuit, run_BLS12_381_MP_CHECK_BIT1_2P_2F_circuit, run_BLS12_381_MP_CHECK_PREPARE_PAIRS_2P_circuit, - run_BN254_MP_CHECK_BIT0_2P_2F_circuit, run_BN254_MP_CHECK_BIT00_2P_2F_circuit, - run_BN254_MP_CHECK_BIT1_2P_2F_circuit, run_BN254_MP_CHECK_PREPARE_PAIRS_2P_circuit, + run_BN254_MP_CHECK_BIT10_2P_2F_circuit, run_BN254_MP_CHECK_BIT00_2P_2F_circuit, + run_BN254_MP_CHECK_BIT01_2P_2F_circuit, run_BN254_MP_CHECK_PREPARE_PAIRS_2P_circuit, run_BLS12_381_MP_CHECK_PREPARE_LAMBDA_ROOT_circuit, run_BN254_MP_CHECK_PREPARE_LAMBDA_ROOT_circuit, run_BLS12_381_MP_CHECK_INIT_BIT_2P_2F_circuit, run_BN254_MP_CHECK_INIT_BIT_2P_2F_circuit, run_BN254_MP_CHECK_FINALIZE_BN_2P_2F_circuit, @@ -20,13 +20,13 @@ use garaga::circuits::multi_pairing_check::{ }; use garaga::circuits::extf_mul::{ run_BLS12_381_FP12_MUL_ASSERT_ONE_circuit, run_BN254_FP12_MUL_ASSERT_ONE_circuit, - run_BN254_EVAL_E12D_circuit, run_BLS12_381_EVAL_E12D_circuit + run_BN254_EVAL_E12D_circuit, run_BLS12_381_EVAL_E12D_circuit, }; use core::poseidon::hades_permutation; - +use core::circuit::u384; use garaga::definitions::{ - G1Point, G2Point, G1G2Pair, u384, u288, bn_bits, bls_bits, MillerLoopResultScalingFactor, E12D, - BNProcessedPair, BLSProcessedPair, G2Line, u384Serde, u288Serde + G1Point, G2Point, G1G2Pair, u288, bn_bits, bls_bits, MillerLoopResultScalingFactor, E12D, + BNProcessedPair, BLSProcessedPair, G2Line, u384Serde, u288Serde, }; use core::option::Option; use core::num::traits::One; @@ -38,27 +38,28 @@ use garaga::basic_field_ops::{compute_yInvXnegOverY_BN254, compute_yInvXnegOverY #[derive(Drop, Serde)] -struct MPCheckHintBN254 { - lambda_root: E12D, - lambda_root_inverse: E12D, - w: MillerLoopResultScalingFactor, - Ris: Span>, - big_Q: Array, +pub struct MPCheckHintBN254 { + pub lambda_root: E12D, + pub lambda_root_inverse: E12D, + pub w: MillerLoopResultScalingFactor, + pub Ris: Span>, + pub big_Q: Array, } #[derive(Drop, Serde)] -struct MPCheckHintBLS12_381 { - lambda_root_inverse: E12D, - w: MillerLoopResultScalingFactor, - Ris: Span>, - big_Q: Array, +pub struct MPCheckHintBLS12_381 { + pub lambda_root_inverse: E12D, + pub w: MillerLoopResultScalingFactor, + pub Ris: Span>, + pub big_Q: Array, } +#[inline(always)] fn multi_pairing_check_bn254_2P_2F( pair0: G1G2Pair, pair1: G1G2Pair, mut lines: Span>, hint: MPCheckHintBN254, ) -> bool { - usize_assert_eq(hint.big_Q.len(), 87); - usize_assert_eq(hint.Ris.len(), 52); + usize_assert_eq(hint.big_Q.len(), 145); + usize_assert_eq(hint.Ris.len(), 35); let (yInv_0, xNegOverY_0) = compute_yInvXnegOverY_BN254(pair0.p.x, pair0.p.y); let (yInv_1, xNegOverY_1) = compute_yInvXnegOverY_BN254(pair1.p.x, pair1.p.y); @@ -80,10 +81,10 @@ fn multi_pairing_check_bn254_2P_2F( let z: u384 = z_felt252.into(); let ( - c_of_z, w_of_z, c_inv_of_z, LHS, c_inv_frob_1_of_z, c_frob_2_of_z, c_inv_frob_3_of_z + c_of_z, w_of_z, c_inv_of_z, LHS, c_inv_frob_1_of_z, c_frob_2_of_z, c_inv_frob_3_of_z, ): (u384, u384, u384, u384, u384, u384, u384) = run_BN254_MP_CHECK_PREPARE_LAMBDA_ROOT_circuit( - hint.lambda_root, z, hint.w, hint.lambda_root_inverse, c_i + hint.lambda_root, z, hint.w, hint.lambda_root_inverse, c_i, ); // init bit for bn254 is 0: @@ -100,7 +101,7 @@ fn multi_pairing_check_bn254_2P_2F( c_i, z, c_inv_of_z, - LHS + LHS, ); let mut LHS = _lhs; @@ -111,76 +112,79 @@ fn multi_pairing_check_bn254_2P_2F( let mut bits = bn_bits.span(); while let Option::Some(bit) = bits.pop_front() { + // println!("bit {}", *bit); let (R_i_of_z) = run_BN254_EVAL_E12D_circuit(*Ris.pop_front().unwrap(), z); let (_LHS, _c_i): (u384, u384) = match *bit { 0 => { - run_BN254_MP_CHECK_BIT0_2P_2F_circuit( - yInv_0, - xNegOverY_0, - *lines.pop_front().unwrap(), - yInv_1, - xNegOverY_1, - *lines.pop_front().unwrap(), - LHS, - f_i_of_z, - R_i_of_z, - z, - c_i - ) - }, - 1 => { - run_BN254_MP_CHECK_BIT1_2P_2F_circuit( + let [l0, l1, l2, l3] = (*lines.multi_pop_front::<4>().unwrap()).unbox(); + run_BN254_MP_CHECK_BIT00_2P_2F_circuit( yInv_0, xNegOverY_0, - *lines.pop_front().unwrap(), - *lines.pop_front().unwrap(), + l0, + l1, yInv_1, xNegOverY_1, - *lines.pop_front().unwrap(), - *lines.pop_front().unwrap(), + l2, + l3, LHS, f_i_of_z, R_i_of_z, - c_inv_of_z, z, c_i, ) }, + 1 | 2 => { - run_BN254_MP_CHECK_BIT1_2P_2F_circuit( + let [l0, l1, l2, l3, l4, l5] = (*lines.multi_pop_front::<6>().unwrap()).unbox(); + let c_or_c_inv_of_z = match (*bit - 1) { + 0 => c_inv_of_z, + _ => c_of_z, + }; + run_BN254_MP_CHECK_BIT10_2P_2F_circuit( yInv_0, xNegOverY_0, - *lines.pop_front().unwrap(), - *lines.pop_front().unwrap(), + l0, + l1, + l2, yInv_1, xNegOverY_1, - *lines.pop_front().unwrap(), - *lines.pop_front().unwrap(), + l3, + l4, + l5, LHS, f_i_of_z, R_i_of_z, - c_of_z, + c_or_c_inv_of_z, z, c_i, ) }, _ => { - run_BN254_MP_CHECK_BIT00_2P_2F_circuit( + // 3 -> 01, 4 -> 10 + let [l0, l1, l2, l3, l4, l5] = (*lines.multi_pop_front::<6>().unwrap()).unbox(); + let c_or_c_inv_of_z = match (*bit - 3) { + 0 => c_inv_of_z, + _ => c_of_z, + }; + run_BN254_MP_CHECK_BIT01_2P_2F_circuit( yInv_0, xNegOverY_0, - *lines.pop_front().unwrap(), - *lines.pop_front().unwrap(), + l0, + l1, + l2, yInv_1, xNegOverY_1, - *lines.pop_front().unwrap(), - *lines.pop_front().unwrap(), + l3, + l4, + l5, LHS, f_i_of_z, R_i_of_z, + c_or_c_inv_of_z, z, - c_i + c_i, ) - } + }, }; LHS = _LHS; f_i_of_z = R_i_of_z; @@ -189,15 +193,16 @@ fn multi_pairing_check_bn254_2P_2F( let R_n_minus_2 = Ris.pop_front().unwrap(); let R_last = Ris.pop_front().unwrap(); + let [l0, l1, l2, l3] = (*lines.multi_pop_front::<4>().unwrap()).unbox(); let (check) = run_BN254_MP_CHECK_FINALIZE_BN_2P_2F_circuit( yInv_0, xNegOverY_0, - *lines.pop_front().unwrap(), - *lines.pop_front().unwrap(), + l0, + l1, yInv_1, xNegOverY_1, - *lines.pop_front().unwrap(), - *lines.pop_front().unwrap(), + l2, + l3, *R_n_minus_2, *R_last, c_i, @@ -208,7 +213,7 @@ fn multi_pairing_check_bn254_2P_2F( c_inv_frob_3_of_z, LHS, f_i_of_z, - hint.big_Q + hint.big_Q, ); assert!(check == u384 { limb0: 0, limb1: 0, limb2: 0, limb3: 0 }, "Final check failed"); @@ -217,8 +222,9 @@ fn multi_pairing_check_bn254_2P_2F( return true; } +#[inline(always)] fn multi_pairing_check_bls12_381_2P_2F( - pair0: G1G2Pair, pair1: G1G2Pair, mut lines: Span>, hint: MPCheckHintBLS12_381 + pair0: G1G2Pair, pair1: G1G2Pair, mut lines: Span>, hint: MPCheckHintBLS12_381, ) -> bool { usize_assert_eq(hint.big_Q.len(), 81); usize_assert_eq(hint.Ris.len(), 36); @@ -246,7 +252,7 @@ fn multi_pairing_check_bls12_381_2P_2F( // Precompute lambda root evaluated in Z: let (conjugate_c_inv_of_z, w_of_z, c_inv_of_z_frob_1): (u384, u384, u384) = run_BLS12_381_MP_CHECK_PREPARE_LAMBDA_ROOT_circuit( - hint.lambda_root_inverse, z, hint.w + hint.lambda_root_inverse, z, hint.w, ); // init bit for bls is 1: @@ -264,7 +270,7 @@ fn multi_pairing_check_bls12_381_2P_2F( R_0_of_Z, c_i, z, - conjugate_c_inv_of_z + conjugate_c_inv_of_z, ); let mut LHS = _lhs; @@ -281,55 +287,58 @@ fn multi_pairing_check_bls12_381_2P_2F( let (R_i_of_z) = run_BLS12_381_EVAL_E12D_circuit(*Ris.pop_front().unwrap(), z); let (_LHS, _c_i): (u384, u384) = match *bit { 0 => { + let [l0, l1] = (*lines.multi_pop_front::<2>().unwrap()).unbox(); run_BLS12_381_MP_CHECK_BIT0_2P_2F_circuit( yInv_0, xNegOverY_0, - *lines.pop_front().unwrap(), + l0, yInv_1, xNegOverY_1, - *lines.pop_front().unwrap(), + l1, LHS, f_i_of_z, R_i_of_z, z, - c_i + c_i, ) }, 1 => { + let [l0, l1, l2, l3] = (*lines.multi_pop_front::<4>().unwrap()).unbox(); run_BLS12_381_MP_CHECK_BIT1_2P_2F_circuit( yInv_0, xNegOverY_0, - *lines.pop_front().unwrap(), - *lines.pop_front().unwrap(), + l0, + l1, yInv_1, xNegOverY_1, - *lines.pop_front().unwrap(), - *lines.pop_front().unwrap(), + l2, + l3, LHS, f_i_of_z, R_i_of_z, conjugate_c_inv_of_z, z, - c_i + c_i, ) }, _ => { + let [l0, l1, l2, l3] = (*lines.multi_pop_front::<4>().unwrap()).unbox(); run_BLS12_381_MP_CHECK_BIT00_2P_2F_circuit( yInv_0, xNegOverY_0, - *lines.pop_front().unwrap(), - *lines.pop_front().unwrap(), + l0, + l1, yInv_1, xNegOverY_1, - *lines.pop_front().unwrap(), - *lines.pop_front().unwrap(), + l2, + l3, LHS, f_i_of_z, R_i_of_z, z, - c_i + c_i, ) - } + }, }; LHS = _LHS; f_i_of_z = R_i_of_z; @@ -338,7 +347,7 @@ fn multi_pairing_check_bls12_381_2P_2F( let R_last = Ris.pop_front().unwrap(); let (check,) = run_BLS12_381_MP_CHECK_FINALIZE_BLS_2P_circuit( - *R_last, c_i, w_of_z, z, c_inv_of_z_frob_1, LHS, f_i_of_z, hint.big_Q + *R_last, c_i, w_of_z, z, c_inv_of_z_frob_1, LHS, f_i_of_z, hint.big_Q, ); assert!(check == u384 { limb0: 0, limb1: 0, limb2: 0, limb3: 0 }, "Final check failed"); diff --git a/src/src/single_pairing_tower.cairo b/src/src/single_pairing_tower.cairo new file mode 100644 index 00000000..f2c55295 --- /dev/null +++ b/src/src/single_pairing_tower.cairo @@ -0,0 +1,491 @@ +use garaga::definitions::{u384}; +use core::num::traits::{One, Zero}; +use garaga::definitions::{G1Point, G2Point, BNProcessedPair, E12T}; +use garaga::circuits::multi_pairing_check::{ + run_BN254_MP_CHECK_PREPARE_PAIRS_1P_circuit, run_BLS12_381_MP_CHECK_PREPARE_PAIRS_1P_circuit, +}; + +use garaga::circuits::tower_circuits as tw; +use garaga::circuits::tower_circuits::{ + run_BN254_TOWER_MILLER_BIT0_1P_circuit, run_BN254_TOWER_MILLER_BIT1_1P_circuit, + run_BLS12_381_TOWER_MILLER_BIT0_1P_circuit, run_BLS12_381_TOWER_MILLER_BIT1_1P_circuit, +}; +use garaga::basic_field_ops::{compute_yInvXnegOverY_BLS12_381, compute_yInvXnegOverY_BN254}; +use garaga::ec_ops_g2::G2PointTrait; + + +impl E12TOne of One { + fn one() -> E12T { + E12T { + c0b0a0: One::one(), + c0b0a1: Zero::zero(), + c0b1a0: Zero::zero(), + c0b1a1: Zero::zero(), + c0b2a0: Zero::zero(), + c0b2a1: Zero::zero(), + c1b0a0: Zero::zero(), + c1b0a1: Zero::zero(), + c1b1a0: Zero::zero(), + c1b1a1: Zero::zero(), + c1b2a0: Zero::zero(), + c1b2a1: Zero::zero(), + } + } + fn is_one(self: @E12T) -> bool { + *self == Self::one() + } + fn is_non_one(self: @E12T) -> bool { + !Self::is_one(self) + } +} + +pub fn miller_loop_bn254_tower(P: G1Point, Q: G2Point) -> (E12T,) { + let bits = bn_bits.span(); + + let (processed_pair): (BNProcessedPair,) = run_BN254_MP_CHECK_PREPARE_PAIRS_1P_circuit( + P, Q.y0, Q.y1, + ); + + let mut Mi: E12T = E12TOne::one(); + let mut Qi = Q; + + for bit in bits { + let (_Qi, _Mi) = match *bit { + 0 => { + run_BN254_TOWER_MILLER_BIT0_1P_circuit( + processed_pair.yInv, processed_pair.xNegOverY, Qi, Mi, + ) + }, + 1 => { + run_BN254_TOWER_MILLER_BIT1_1P_circuit( + processed_pair.yInv, processed_pair.xNegOverY, Qi, Q, Mi, + ) + }, + _ => { + run_BN254_TOWER_MILLER_BIT1_1P_circuit( + processed_pair.yInv, + processed_pair.xNegOverY, + Qi, + G2Point { + x0: Q.x0, x1: Q.x1, y0: processed_pair.QyNeg0, y1: processed_pair.QyNeg1, + }, + Mi, + ) + }, + }; + Qi = _Qi; + Mi = _Mi; + }; + + tw::run_BN254_TOWER_MILLER_FINALIZE_BN_1P_circuit( + Q, processed_pair.yInv, processed_pair.xNegOverY, Qi, Mi, + ) +} + +pub fn expt_bn254_tower(X: E12T) -> (E12T,) { + // Step 1 + let (t3) = tw::run_BN254_E12T_CYCLOTOMIC_SQUARE_circuit(X); + // Step 2 + let (t5) = tw::run_BN254_E12T_CYCLOTOMIC_SQUARE_circuit(t3); + // Step 3 + let (result) = tw::run_BN254_E12T_CYCLOTOMIC_SQUARE_circuit(t5); + // Step 4 + let (t0) = tw::run_BN254_E12T_CYCLOTOMIC_SQUARE_circuit(result); + // Step 5 + let (t2) = tw::run_BN254_E12T_MUL_circuit(X, t0); + // Step 6 + let (t0) = tw::run_BN254_E12T_MUL_circuit(t3, t2); + // Step 7 + let (t1) = tw::run_BN254_E12T_MUL_circuit(X, t0); + // Step 8 + let (t4) = tw::run_BN254_E12T_MUL_circuit(result, t2); + // Step 9 + let (t6) = tw::run_BN254_E12T_CYCLOTOMIC_SQUARE_circuit(t2); + // Step 10 + let (t1) = tw::run_BN254_E12T_MUL_circuit(t0, t1); + // Step 11 + let (t0) = tw::run_BN254_E12T_MUL_circuit(t3, t1); + // Step 17 + let mut t6 = t6; + for _ in 0..6_u8 { + let (_t6) = tw::run_BN254_E12T_CYCLOTOMIC_SQUARE_circuit(t6); + t6 = _t6; + }; + // Step 18 + let (t5) = tw::run_BN254_E12T_MUL_circuit(t5, t6); + // Step 19 + let (mut t5) = tw::run_BN254_E12T_MUL_circuit(t4, t5); + // Step 26 + for _ in 0..7_u8 { + let (_t5) = tw::run_BN254_E12T_CYCLOTOMIC_SQUARE_circuit(t5); + t5 = _t5; + }; + // Step 27 + let (mut t4) = tw::run_BN254_E12T_MUL_circuit(t4, t5); + // Step 35 + for _ in 0..8_u8 { + let (_t4) = tw::run_BN254_E12T_CYCLOTOMIC_SQUARE_circuit(t4); + t4 = _t4; + }; + // Step 36 + let (t4) = tw::run_BN254_E12T_MUL_circuit(t0, t4); + // Step 37 + let (mut t3) = tw::run_BN254_E12T_MUL_circuit(t3, t4); + // Step 43 + for _ in 0..6_u8 { + let (_t3) = tw::run_BN254_E12T_CYCLOTOMIC_SQUARE_circuit(t3); + t3 = _t3; + }; + // Step 44 + let (mut t2) = tw::run_BN254_E12T_MUL_circuit(t2, t3); + // Step 52 + for _ in 0..8_u8 { + let (_t2) = tw::run_BN254_E12T_CYCLOTOMIC_SQUARE_circuit(t2); + t2 = _t2; + }; + // Step 53 + let (mut t2) = tw::run_BN254_E12T_MUL_circuit(t0, t2); + + // Step 59 + for _ in 0..6_u8 { + let (_t2) = tw::run_BN254_E12T_CYCLOTOMIC_SQUARE_circuit(t2); + t2 = _t2; + }; + + // Step 60 + let (mut t2) = tw::run_BN254_E12T_MUL_circuit(t0, t2); + // Step 70 + for _ in 0..10_u8 { + let (_t2) = tw::run_BN254_E12T_CYCLOTOMIC_SQUARE_circuit(t2); + t2 = _t2; + }; + // Step 71 + let (mut t1) = tw::run_BN254_E12T_MUL_circuit(t1, t2); + // Step 77 + for _ in 0..6_u8 { + let (_t1) = tw::run_BN254_E12T_CYCLOTOMIC_SQUARE_circuit(t1); + t1 = _t1; + }; + // Step 78 + let (t0) = tw::run_BN254_E12T_MUL_circuit(t0, t1); + // Step 79 + let (result) = tw::run_BN254_E12T_MUL_circuit(result, t0); + + return (result,); +} + +pub fn final_exp_bn254_tower(M: E12T) -> E12T { + let curve_id = 0; + let (t0) = fp12_conjugate(M, curve_id); + let (result) = tw::run_BN254_E12T_INVERSE_circuit(M); + let (t0) = tw::run_BN254_E12T_MUL_circuit(t0, result); + let (result) = tw::run_BN254_E12T_FROBENIUS_SQUARE_circuit(t0); + let (result) = tw::run_BN254_E12T_MUL_circuit(result, t0); + + // Hard part + let (t0) = expt_bn254_tower(result); + let (t0) = fp12_conjugate(t0, curve_id); + let (t0) = tw::run_BN254_E12T_CYCLOTOMIC_SQUARE_circuit(t0); + let (t1) = tw::run_BN254_E12T_CYCLOTOMIC_SQUARE_circuit(t0); + let (t1) = tw::run_BN254_E12T_MUL_circuit(t0, t1); + let (t2) = expt_bn254_tower(t1); + let (t2) = fp12_conjugate(t2, curve_id); + let (t3) = fp12_conjugate(t1, curve_id); + let (t1) = tw::run_BN254_E12T_MUL_circuit(t2, t3); + let (t3) = tw::run_BN254_E12T_CYCLOTOMIC_SQUARE_circuit(t2); + let (t4) = expt_bn254_tower(t3); + let (t4) = tw::run_BN254_E12T_MUL_circuit(t1, t4); + let (t3) = tw::run_BN254_E12T_MUL_circuit(t0, t4); + let (t0) = tw::run_BN254_E12T_MUL_circuit(t2, t4); + let (t0) = tw::run_BN254_E12T_MUL_circuit(result, t0); + let (t2) = tw::run_BN254_E12T_FROBENIUS_circuit(t3); + let (t0) = tw::run_BN254_E12T_MUL_circuit(t2, t0); + let (t2) = tw::run_BN254_E12T_FROBENIUS_SQUARE_circuit(t4); + let (t0) = tw::run_BN254_E12T_MUL_circuit(t2, t0); + let (t2) = fp12_conjugate(result, curve_id); + let (t2) = tw::run_BN254_E12T_MUL_circuit(t2, t3); + let (t2) = tw::run_BN254_E12T_FROBENIUS_CUBE_circuit(t2); + let (result) = tw::run_BN254_E12T_MUL_circuit(t2, t0); + + result +} + +#[inline] +pub fn fp12_conjugate(X: E12T, curve_id: usize) -> (E12T,) { + let (b0a0, b0a1, b1a0, b1a1, b2a0, b2a1) = tw::run_FP6_NEG_circuit( + X.c1b0a0, X.c1b0a1, X.c1b1a0, X.c1b1a1, X.c1b2a0, X.c1b2a1, curve_id, + ); + ( + E12T { + c0b0a0: X.c0b0a0, + c0b0a1: X.c0b0a1, + c0b1a0: X.c0b1a0, + c0b1a1: X.c0b1a1, + c0b2a0: X.c0b2a0, + c0b2a1: X.c0b2a1, + c1b0a0: b0a0, + c1b0a1: b0a1, + c1b1a0: b1a0, + c1b1a1: b1a1, + c1b2a0: b2a0, + c1b2a1: b2a1, + }, + ) +} + +pub fn final_exp_bls12_381_tower(M: E12T) -> E12T { + let result = M; + let (t0) = fp12_conjugate(M, 1); + let (result) = tw::run_BLS12_381_E12T_INVERSE_circuit(result); + let (t0) = tw::run_BLS12_381_E12T_MUL_circuit(t0, result); + let (result) = tw::run_BLS12_381_E12T_FROBENIUS_SQUARE_circuit(t0); + let (result) = tw::run_BLS12_381_E12T_MUL_circuit(result, t0); + + let (t0) = tw::run_BLS12_381_E12T_CYCLOTOMIC_SQUARE_circuit(result); + let (t1) = expt_half_bls12_381_tower(t0); + let (t2) = fp12_conjugate(result, 1); + let (t1) = tw::run_BLS12_381_E12T_MUL_circuit(t1, t2); + let (t2) = expt_bls12_381_tower(t1); + let (t1) = fp12_conjugate(t1, 1); + let (t1) = tw::run_BLS12_381_E12T_MUL_circuit(t1, t2); + let (t2) = expt_bls12_381_tower(t1); + let (t1) = tw::run_BLS12_381_E12T_FROBENIUS_circuit(t1); + let (t1) = tw::run_BLS12_381_E12T_MUL_circuit(t1, t2); + let (result) = tw::run_BLS12_381_E12T_MUL_circuit(result, t0); + let (t0) = expt_bls12_381_tower(t1); + let (t2) = expt_bls12_381_tower(t0); + let (t0) = tw::run_BLS12_381_E12T_FROBENIUS_SQUARE_circuit(t1); + let (t1) = fp12_conjugate(t1, 1); + let (t1) = tw::run_BLS12_381_E12T_MUL_circuit(t1, t2); + let (t1) = tw::run_BLS12_381_E12T_MUL_circuit(t1, t0); + let (result) = tw::run_BLS12_381_E12T_MUL_circuit(result, t1); + result +} + +pub fn decompress_karabina_bls12_381(X: E12T) -> (E12T,) { + let (t0a0, t0a1, t1a0, t1a1) = match (X.c1b2a0.is_zero() && X.c1b2a1.is_zero()) { + true => { + let (t0a0, t0a1) = tw::run_BLS12_381_E12T_DECOMP_KARABINA_I_Z_circuit( + X.c0b1a0, X.c0b1a1, X.c1b2a0, X.c1b2a1, + ); + (t0a0, t0a1, X.c0b2a0, X.c0b2a1) + }, + false => { + tw::run_BLS12_381_E12T_DECOMP_KARABINA_I_NZ_circuit( + X.c0b1a0, X.c0b1a1, X.c0b2a0, X.c0b2a1, X.c1b0a0, X.c1b0a1, X.c1b2a0, X.c1b2a1, + ) + }, + }; + + if t1a0.is_zero() && t1a1.is_zero() { + return (One::one(),); + } + + let (zc0b0a0, zc0b0a1, zc1b1a0, zc1b1a1) = tw::run_BLS12_381_E12T_DECOMP_KARABINA_II_circuit( + t0a0, + t0a1, + t1a0, + t1a1, + X.c0b1a0, + X.c0b1a1, + X.c0b2a0, + X.c0b2a1, + X.c1b0a0, + X.c1b0a1, + X.c1b2a0, + X.c1b2a1, + ); + + ( + E12T { + c0b0a0: zc0b0a0, + c0b0a1: zc0b0a1, + c0b1a0: X.c0b1a0, + c0b1a1: X.c0b1a1, + c0b2a0: X.c0b2a0, + c0b2a1: X.c0b2a1, + c1b0a0: X.c1b0a0, + c1b0a1: X.c1b0a1, + c1b1a0: zc1b1a0, + c1b1a1: zc1b1a1, + c1b2a0: X.c1b2a0, + c1b2a1: X.c1b2a1, + }, + ) +} +pub fn expt_half_bls12_381_tower(M: E12T) -> (E12T,) { + let ( + mut xc0b1a0, + mut xc0b1a1, + mut xc0b2a0, + mut xc0b2a1, + mut xc1b0a0, + mut xc1b0a1, + mut xc1b2a0, + mut xc1b2a1, + ) = + ( + M.c0b1a0, M.c0b1a1, M.c0b2a0, M.c0b2a1, M.c1b0a0, M.c1b0a1, M.c1b2a0, M.c1b2a1, + ); + for _ in 0..15_u32 { + let (_xc0b1a0, _xc0b1a1, _xc0b2a0, _xc0b2a1, _xc1b0a0, _xc1b0a1, _xc1b2a0, _xc1b2a1) = + tw::run_BLS12_381_E12T_CYCLO_SQUARE_COMPRESSED_circuit( + xc0b1a0, xc0b1a1, xc0b2a0, xc0b2a1, xc1b0a0, xc1b0a1, xc1b2a0, xc1b2a1, + ); + xc0b1a0 = _xc0b1a0; + xc0b1a1 = _xc0b1a1; + xc0b2a0 = _xc0b2a0; + xc0b2a1 = _xc0b2a1; + xc1b0a0 = _xc1b0a0; + xc1b0a1 = _xc1b0a1; + xc1b2a0 = _xc1b2a0; + xc1b2a1 = _xc1b2a1; + }; + + let t0c0b1a0 = xc0b1a0; + let t0c0b1a1 = xc0b1a1; + let t0c0b2a0 = xc0b2a0; + let t0c0b2a1 = xc0b2a1; + let t0c1b0a0 = xc1b0a0; + let t0c1b0a1 = xc1b0a1; + let t0c1b2a0 = xc1b2a0; + let t0c1b2a1 = xc1b2a1; + + let ( + mut xc0b1a0, + mut xc0b1a1, + mut xc0b2a0, + mut xc0b2a1, + mut xc1b0a0, + mut xc1b0a1, + mut xc1b2a0, + mut xc1b2a1, + ) = + ( + xc0b1a0, xc0b1a1, xc0b2a0, xc0b2a1, xc1b0a0, xc1b0a1, xc1b2a0, xc1b2a1, + ); + for _ in 0..32_u32 { + let (_xc0b1a0, _xc0b1a1, _xc0b2a0, _xc0b2a1, _xc1b0a0, _xc1b0a1, _xc1b2a0, _xc1b2a1) = + tw::run_BLS12_381_E12T_CYCLO_SQUARE_COMPRESSED_circuit( + xc0b1a0, xc0b1a1, xc0b2a0, xc0b2a1, xc1b0a0, xc1b0a1, xc1b2a0, xc1b2a1, + ); + xc0b1a0 = _xc0b1a0; + xc0b1a1 = _xc0b1a1; + xc0b2a0 = _xc0b2a0; + xc0b2a1 = _xc0b2a1; + xc1b0a0 = _xc1b0a0; + xc1b0a1 = _xc1b0a1; + xc1b2a0 = _xc1b2a0; + xc1b2a1 = _xc1b2a1; + }; + + let (t0) = decompress_karabina_bls12_381( + E12T { + c0b0a0: M.c0b0a0, + c0b0a1: M.c0b0a1, + c0b1a0: t0c0b1a0, + c0b1a1: t0c0b1a1, + c0b2a0: t0c0b2a0, + c0b2a1: t0c0b2a1, + c1b0a0: t0c1b0a0, + c1b0a1: t0c1b0a1, + c1b1a0: M.c1b1a0, + c1b1a1: M.c1b1a1, + c1b2a0: t0c1b2a0, + c1b2a1: t0c1b2a1, + }, + ); + + let (mut t1) = decompress_karabina_bls12_381( + E12T { + c0b0a0: M.c0b0a0, + c0b0a1: M.c0b0a1, + c0b1a0: xc0b1a0, + c0b1a1: xc0b1a1, + c0b2a0: xc0b2a0, + c0b2a1: xc0b2a1, + c1b0a0: xc1b0a0, + c1b0a1: xc1b0a1, + c1b1a0: M.c1b1a0, + c1b1a1: M.c1b1a1, + c1b2a0: xc1b2a0, + c1b2a1: xc1b2a1, + }, + ); + + let (mut result) = tw::run_BLS12_381_E12T_MUL_circuit(t0, t1); + + for _ in 0..9_u32 { + let (_t1) = tw::run_BLS12_381_E12T_CYCLOTOMIC_SQUARE_circuit(t1); + t1 = _t1; + }; + let (result) = tw::run_BLS12_381_E12T_MUL_circuit(result, t1); + for _ in 0..3_u32 { + let (_t1) = tw::run_BLS12_381_E12T_CYCLOTOMIC_SQUARE_circuit(t1); + t1 = _t1; + }; + let (result) = tw::run_BLS12_381_E12T_MUL_circuit(result, t1); + // 2 sq + let (t1) = tw::run_BLS12_381_E12T_CYCLOTOMIC_SQUARE_circuit(t1); + let (t1) = tw::run_BLS12_381_E12T_CYCLOTOMIC_SQUARE_circuit(t1); + let (result) = tw::run_BLS12_381_E12T_MUL_circuit(result, t1); + let (t1) = tw::run_BLS12_381_E12T_CYCLOTOMIC_SQUARE_circuit(t1); + let (result) = tw::run_BLS12_381_E12T_MUL_circuit(result, t1); + let (result) = fp12_conjugate(result, 1); + (result,) +} + +pub fn expt_bls12_381_tower(M: E12T) -> (E12T,) { + let (t0) = expt_half_bls12_381_tower(M); + return tw::run_BLS12_381_E12T_CYCLOTOMIC_SQUARE_circuit(t0); +} + +pub fn miller_loop_bls12_381_tower(P: G1Point, Q: G2Point) -> (E12T,) { + let bits = bls_bits.span(); + + let (yInv, xNegOverY) = compute_yInvXnegOverY_BLS12_381(P.x, P.y); + + let (TripleQ, c0b0a0, c0b0a1, c0b1a0, c0b1a1, c0b2a0, c0b2a1, c1b1a0, c1b1a1, c1b2a0, c1b2a1) = + tw::run_BLS12_381_TOWER_MILLER_INIT_BIT_1P_circuit( + yInv, xNegOverY, Q, + ); + + let mut Mi: E12T = E12T { + c0b0a0: c0b0a0, + c0b0a1: c0b0a1, + c0b1a0: c0b1a0, + c0b1a1: c0b1a1, + c0b2a0: c0b2a0, + c0b2a1: c0b2a1, + c1b0a0: Zero::zero(), + c1b0a1: Zero::zero(), + c1b1a0: c1b1a0, + c1b1a1: c1b1a1, + c1b2a0: c1b2a0, + c1b2a1: c1b2a1, + }; + + let mut Qi = TripleQ; + for bit in bits { + let (_Qi, _Mi) = match *bit { + 0 => { tw::run_BLS12_381_TOWER_MILLER_BIT0_1P_circuit(yInv, xNegOverY, Qi, Mi) }, + _ => { tw::run_BLS12_381_TOWER_MILLER_BIT1_1P_circuit(yInv, xNegOverY, Qi, Q, Mi) }, + }; + Qi = _Qi; + Mi = _Mi; + }; + + return fp12_conjugate(Mi, 1); +} + + +pub const bn_bits: [usize; 65] = [ + 0, 2, 0, 1, 0, 0, 0, 2, 0, 2, 0, 0, 0, 2, 0, 0, 1, 1, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 1, + 0, 0, 2, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 2, 0, 2, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 2, 0, 2, 2, 0, 0, + 0, +]; + +pub const bls_bits: [usize; 62] = [ + 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +]; diff --git a/src/src/tests.cairo b/src/src/tests.cairo index 27b4f20b..2636cb40 100644 --- a/src/src/tests.cairo +++ b/src/src/tests.cairo @@ -1,2 +1,4 @@ mod pairing_tests; mod msm_tests; +mod tower_pairing_tests; + diff --git a/src/src/tests/msm_tests.cairo b/src/src/tests/msm_tests.cairo index 80c401ab..2f1327a4 100644 --- a/src/src/tests/msm_tests.cairo +++ b/src/src/tests/msm_tests.cairo @@ -5,378 +5,128 @@ mod msm_tests { #[test] fn test_msm_BN254_1P() { - let scalars_digits_decompositions = Option::Some( - array![(array![0x0,].span(), array![0x0,].span()),].span() - ); + let scalars_digits_decompositions = Option::None; let msm_hint = MSMHint { Q_low: G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, Q_high: G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, Q_high_shifted: G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, - SumDlogDivLow: FunctionFelt { + RLCSumDlogDiv: FunctionFelt { a_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - b_den: array![ + a_den: array![ u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), b_num: array![ - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - a_den: array![ + b_den: array![ u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] - .span() + .span(), }, }; let derive_point_from_x_hint = DerivePointFromXHint { y_last_attempt: u384 { - limb0: 0xc7c2c14510d62220cdc7b3c7, - limb1: 0x5a684b4bc2b37a7ee0634d2c, - limb2: 0x17eef8e7e4dd2e33, - limb3: 0x0 + limb0: 0xb4b30030d604f094d3602296, + limb1: 0xa0e983b28babaffaeaa2a062, + limb2: 0x471c9e526d4e91e, + limb3: 0x0, }, g_rhs_sqrt: array![].span(), }; let points = array![ G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, ] .span(); - let scalars = array![u256 { low: 0x0, high: 0x0 },].span(); + let scalars = array![u256 { low: 0x0, high: 0x0 }].span(); let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 0 + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 0, ); assert!( res == G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + }, ); } #[test] fn test_msm_BN254_2P() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - ] - .span() - ), - ] - .span() - ); + let scalars_digits_decompositions = Option::None; let msm_hint = MSMHint { Q_low: G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, Q_high: G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, Q_high_shifted: G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, - SumDlogDivLow: FunctionFelt { + RLCSumDlogDiv: FunctionFelt { a_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - b_den: array![ + a_den: array![ u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - a_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + b_num: array![ + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), b_den: array![ @@ -386,59 +136,27 @@ mod msm_tests { u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - b_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() }, }; let derive_point_from_x_hint = DerivePointFromXHint { y_last_attempt: u384 { - limb0: 0x60c349ba17c1d4434209b924, - limb1: 0xb4b96efd8be92cde9de1280e, - limb2: 0x6e55e1a8666f8e3, - limb3: 0x0 + limb0: 0x4438dbd4fc537b19aa9029a1, + limb1: 0x71338662165803d1aeba36ff, + limb2: 0x8463adc2f6b3ff5, + limb3: 0x0, }, g_rhs_sqrt: array![ u384 { - limb0: 0xd35ab3554d3a17e69bc90c5e, - limb1: 0xffde96e368c26798d24bad63, - limb2: 0x1147ab0976577bd3, - limb3: 0x0 + limb0: 0x75937bc3dba286ad2bd8fe5, + limb1: 0x575d166325014e975405464f, + limb2: 0x1437873db8d7dca1, + limb3: 0x0, }, - u384 { - limb0: 0x48f5fc1455c8dd38358b75b1, - limb1: 0x806fc9ed4ccac3f93bbf2adf, - limb2: 0xa77478d31681d27, - limb3: 0x0 - } ] .span(), }; @@ -448,711 +166,240 @@ mod msm_tests { limb0: 0x5c724369afbc772d02aed58e, limb1: 0x2cd3bc838c66439a3d6160b, limb2: 0x72f26b55fb56be1, - limb3: 0x0 + limb3: 0x0, }, y: u384 { limb0: 0x772ca79c580e121ca148fe75, limb1: 0xce2f55e418ca01b3d6d1014b, limb2: 0x2884b1dc4e84e30f, - limb3: 0x0 - } + limb3: 0x0, + }, }, G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, ] .span(); let scalars = array![ u256 { low: 0x0, high: 0x0 }, u256 { - low: 0xb4862b21fb97d43588561712e8e5216a, high: 0x967d0cae6f4590b9a164106cf6a659e + low: 0xb4862b21fb97d43588561712e8e5216a, high: 0x967d0cae6f4590b9a164106cf6a659e, }, ] .span(); let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 0 + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 0, ); assert!( res == G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + }, ); } #[test] fn test_msm_BN254_3P() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - ] - .span(), - array![ - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - ] - .span() - ), - ] - .span() - ); + let scalars_digits_decompositions = Option::None; let msm_hint = MSMHint { Q_low: G1Point { x: u384 { limb0: 0x5b9b511a35490c4f05d6e4e7, limb1: 0xf11ec8642a0df9cb0b8f2cdd, limb2: 0x2b568cd4a3e221ca, - limb3: 0x0 + limb3: 0x0, }, y: u384 { limb0: 0xb45c3680d8359a0fdb47de6f, limb1: 0x4c17fe1c96f237095df8c737, limb2: 0x118fc0474955ac2b, - limb3: 0x0 - } + limb3: 0x0, + }, }, Q_high: G1Point { x: u384 { limb0: 0x47bec5e5e1f295cdcd7689e9, limb1: 0xcb171283d651071401630545, limb2: 0xa401c0298cd5f83, - limb3: 0x0 + limb3: 0x0, }, y: u384 { limb0: 0xe5d2831c05e61956d8725b57, limb1: 0x6bb84991518471727263fde0, limb2: 0x15e82f62ee3caf32, - limb3: 0x0 - } + limb3: 0x0, + }, }, Q_high_shifted: G1Point { x: u384 { limb0: 0xd15f8e23aaf3af13ab5ba169, limb1: 0xb0ff9631870f189040aec289, limb2: 0x1c77509b88d3bab7, - limb3: 0x0 + limb3: 0x0, }, y: u384 { limb0: 0xb620e3716b30b1003beab421, limb1: 0x1d6aad1137155249c5d4f785, limb2: 0xbf95d2db0be45f9, - limb3: 0x0 - } + limb3: 0x0, + }, }, - SumDlogDivLow: FunctionFelt { + RLCSumDlogDiv: FunctionFelt { a_num: array![ u384 { - limb0: 0x405f71fc00076527e6fc4c78, - limb1: 0x8f18daa35c7ff6a960bb5b70, - limb2: 0x1acf52b3d2e4d78c, - limb3: 0x0 + limb0: 0xbba74f84d6d3a3c60dc3cd41, + limb1: 0xf36f80b4b1a3f69f44ab1b6a, + limb2: 0x16adf9385577d09, + limb3: 0x0, }, u384 { - limb0: 0x55e1ce0e388c458a64de1245, - limb1: 0xb85045b68181585d899bbe7f, - limb2: 0x30644e72e131a029, - limb3: 0x0 + limb0: 0xe3748a5201028055d851d0da, + limb1: 0x7d4d0c483a8050c66e35c6e1, + limb2: 0xe58ca0d31a6a8d2, + limb3: 0x0, }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ u384 { - limb0: 0x5216182e9954282e5165d882, - limb1: 0xee6d9c3bb968e7795eb593da, - limb2: 0x177a7ed9a366cff7, - limb3: 0x0 + limb0: 0xa59f084b703ac17683ca07f9, + limb1: 0x7f1a924087f5442a95a66068, + limb2: 0x284cb90ec99aa375, + limb3: 0x0, }, u384 { - limb0: 0x21dbaba28fbba1e6e8e0352d, - limb1: 0x832ea73bd944e7d1c99a888c, - limb2: 0xfec2b187b6ab9bc, - limb3: 0x0 + limb0: 0x1c72c56de666104df8056a9f, + limb1: 0x3b0db6cd914b52831fc41396, + limb2: 0x1953864f49cc904c, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0x7f5148b9d01ce644c0551d1d, - limb1: 0xea7e65b88ff441961f0e382c, - limb2: 0x77540b6fa020ca1, - limb3: 0x0 - }, - u384 { - limb0: 0x9d966e013d09193481e80906, - limb1: 0x34a3efbaf588ae0deca14017, - limb2: 0xd794d7aa57b6d27, - limb3: 0x0 - }, - u384 { - limb0: 0x389f846ccb041083a10cb9ff, - limb1: 0x6a448b23b92648c8a242bcc3, - limb2: 0x228a9ea16b505f32, - limb3: 0x0 - }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - b_den: array![ + a_den: array![ u384 { - limb0: 0x8dd07dfe8fdbec741bb48c3f, - limb1: 0x12f88efcaab95e0e849f50fd, - limb2: 0x160b2e1a0902cfbe, - limb3: 0x0 + limb0: 0x36208c0885fb7058abddd334, + limb1: 0x3db412a5e6005a05ab374adf, + limb2: 0x2b398812b30eb292, + limb3: 0x0, }, u384 { - limb0: 0x659302e7af32e5b4baa09f87, - limb1: 0x898bf5b38bceb7755ccf99a4, - limb2: 0x2fc4814972402d35, - limb3: 0x0 + limb0: 0xdf68dc78906c44847536a23d, + limb1: 0xa6bbd9ceb18275da98d88a68, + limb2: 0x11b898e607064ade, + limb3: 0x0, }, - u384 { limb0: 0x3, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { - limb0: 0x5216182e9954282e5165d882, - limb1: 0xee6d9c3bb968e7795eb593da, - limb2: 0x177a7ed9a366cff7, - limb3: 0x0 + limb0: 0x6f0aaf5b805720e403eddcdc, + limb1: 0x11afb25fbfae966d38aea0d6, + limb2: 0xc14f6e4a6a37797, + limb3: 0x0, }, u384 { - limb0: 0x21dbaba28fbba1e6e8e0352d, - limb1: 0x832ea73bd944e7d1c99a888c, - limb2: 0xfec2b187b6ab9bc, - limb3: 0x0 + limb0: 0x712f22263ef5e91c488b0722, + limb1: 0xbf68443cfd66208b1f0a2b4e, + limb2: 0x19990ced3afb3faa, + limb3: 0x0, }, u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x27f4d0d676cdd860c4d1fa6f, - limb1: 0xe65386ac1951a13cd4f02a75, - limb2: 0xd2f1b8c9dfc2c96, - limb3: 0x0 - }, - u384 { - limb0: 0x5be57268705f4a795a64db97, - limb1: 0xdc2822db40c0ac2ebd2b6c30, - limb2: 0x183227397098d014, - limb3: 0x0 - }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - a_den: array![ + b_num: array![ u384 { - limb0: 0x56063c8c991bc325c89db352, - limb1: 0x714aae2911782fd7314a08b5, - limb2: 0x757a6155c5ca7ad, - limb3: 0x0 + limb0: 0x210edfad5881dc6bf8ec5f58, + limb1: 0x3c354ff8e0cba98c03e7c606, + limb2: 0x1d8c9c28e2545384, + limb3: 0x0, }, u384 { - limb0: 0xcd466c49a6f18c5148c392e4, - limb1: 0xf0e61765ab80822b3c454592, - limb2: 0x9e4d77a54ddbd9, - limb3: 0x0 + limb0: 0x95055f0bf55a751df0f89316, + limb1: 0x652b61b3a2e6073c3af64fcc, + limb2: 0x23080aa3e59e0cc4, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0xf0c06ca91ca69b071361bb3b, - limb1: 0x14a5ec278cd5ce650ed8a951, - limb2: 0x1fe39905c3c30e6f, - limb3: 0x0 + limb0: 0x9e36b036fbad71c308a43548, + limb1: 0x5261fa4f1b50b2519194e556, + limb2: 0x218c5e7ffb07ea5e, + limb3: 0x0, }, u384 { - limb0: 0x6273f5753079b21e51dc95d0, - limb1: 0xa13b582e80dd3ed1bd56b763, - limb2: 0x175816dcf2342dc4, - limb3: 0x0 + limb0: 0xc8285d3649f36c8f5daaa331, + limb1: 0x3f053e816c7552d20ecadbc7, + limb2: 0x2527827f86516567, + limb3: 0x0, }, u384 { - limb0: 0x8d515b1af421f13038e172f0, - limb1: 0xae4b61cb0c64b0a2f27bc490, - limb2: 0xdebd80bd3a7da0a, - limb3: 0x0 + limb0: 0x7b5fb11b84d5950d23c96fa4, + limb1: 0xe2b051a2b9c1cc88b1d77617, + limb2: 0x1edee19e79e4e9ad, + limb3: 0x0, }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), b_den: array![ u384 { - limb0: 0x212b5a5cb53497159d919f6, - limb1: 0x53e00a7b34688f8593de1a20, - limb2: 0x1606f2401515f708, - limb3: 0x0 - }, - u384 { - limb0: 0x67d344dcf4d4a4f3da4ab8ac, - limb1: 0xd2b2463102818681b4cfd0b8, - limb2: 0x1dae866efe9938d, - limb3: 0x0 - }, - u384 { limb0: 0x3, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { - limb0: 0x56063c8c991bc325c89db352, - limb1: 0x714aae2911782fd7314a08b5, - limb2: 0x757a6155c5ca7ad, - limb3: 0x0 + limb0: 0xd17e0eff19b138dc529f7f0e, + limb1: 0x487bac84aefe5d55d2a30b7a, + limb2: 0x20e3fb5256c8d763, + limb3: 0x0, }, u384 { - limb0: 0xcd466c49a6f18c5148c392e4, - limb1: 0xf0e61765ab80822b3c454592, - limb2: 0x9e4d77a54ddbd9, - limb3: 0x0 + limb0: 0x35c8cadc752441768726e970, + limb1: 0x3be347b593060932330834a9, + limb2: 0x4c57c3f33e14072, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ u384 { - limb0: 0xf31bdf775ed460cbb09a77a4, - limb1: 0xbbc894efc25ad7150f2b950a, - limb2: 0x29528e7e585ce271, - limb3: 0x0 + limb0: 0x4d200e12810562ac0bc99694, + limb1: 0x350f171f3f0bc347aa0be283, + limb2: 0x243ee4adf3ea66c5, + limb3: 0x0, }, u384 { - limb0: 0x8bbd8e60fc1a1859e888a509, - limb1: 0xdc2822db40c0ac2e47c7fadc, - limb2: 0x183227397098d014, - limb3: 0x0 - } - ] - .span(), - a_den: array![ - u384 { - limb0: 0xf3f8288b819d04552d495ec1, - limb1: 0x5637b5a04eaec6328f049790, - limb2: 0x196a7a54ca00e273, - limb3: 0x0 + limb0: 0xb8ca5d60ca9c137fd484ee0c, + limb1: 0xb4c53efdb300aebd952f7a7, + limb2: 0x173c11f4a19d313f, + limb3: 0x0, }, u384 { - limb0: 0x4f537683af3a47355faad1f5, - limb1: 0x3c399d01242138b9556fa2c2, - limb2: 0x9ace1d4bf9085ee, - limb3: 0x0 + limb0: 0xdf68dc78906c44847536a240, + limb1: 0xa6bbd9ceb18275da98d88a68, + limb2: 0x11b898e607064ade, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0xe42601d9feb3ab9f2b5ae3c1, - limb1: 0x45b721c6cecc99dcd79013a2, - limb2: 0x1d1a0e768059ba78, - limb3: 0x0 + limb0: 0x6f0aaf5b805720e403eddcdc, + limb1: 0x11afb25fbfae966d38aea0d6, + limb2: 0xc14f6e4a6a37797, + limb3: 0x0, }, u384 { - limb0: 0xf080a40759b90d6a683d3e76, - limb1: 0xe23206d3cafbfeab3d6884f, - limb2: 0x1cebdd881068dc2f, - limb3: 0x0 + limb0: 0x712f22263ef5e91c488b0722, + limb1: 0xbf68443cfd66208b1f0a2b4e, + limb2: 0x19990ced3afb3faa, + limb3: 0x0, }, - u384 { - limb0: 0x7a61a762fe584ff4f91e5ac, - limb1: 0xfab1f33e1518d8901d1cc2c0, - limb2: 0x173b3f764519e6cd, - limb3: 0x0 - } + u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), - b_den: array![ - u384 { - limb0: 0x7376af1548b680e8af5f1efc, - limb1: 0x4a56db2a6a8afa3a158c5c21, - limb2: 0x1bdb208b7cd10730, - limb3: 0x0 - }, - u384 { - limb0: 0xedfa638b0daed5a01f0075df, - limb1: 0xb4acd7036c63aa2c004ee846, - limb2: 0x1d06a57e3eb191ca, - limb3: 0x0 - }, - u384 { limb0: 0x3, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { - limb0: 0xf3f8288b819d04552d495ec1, - limb1: 0x5637b5a04eaec6328f049790, - limb2: 0x196a7a54ca00e273, - limb3: 0x0 - }, - u384 { - limb0: 0x4f537683af3a47355faad1f5, - limb1: 0x3c399d01242138b9556fa2c2, - limb2: 0x9ace1d4bf9085ee, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() }, }; let derive_point_from_x_hint = DerivePointFromXHint { y_last_attempt: u384 { - limb0: 0x91b2f2a1b63488947587b29f, - limb1: 0x272207211ee84c7a00242db6, - limb2: 0x111e3c81a23fb2b4, - limb3: 0x0 + limb0: 0x48c8946a24cb60456d420600, + limb1: 0x9ed381bdd7c9eeb7bafa2d1, + limb2: 0xa24e6a0b6a74206, + limb3: 0x0, }, - g_rhs_sqrt: array![ - u384 { - limb0: 0x258b01b2858d51de8acd178c, - limb1: 0x6a34cc2dcf1f37f6ab367139, - limb2: 0x28d10e632d4cdfe, - limb3: 0x0 - } - ] - .span(), + g_rhs_sqrt: array![].span(), }; let points = array![ G1Point { @@ -1160,48 +407,48 @@ mod msm_tests { limb0: 0x5c724369afbc772d02aed58e, limb1: 0x2cd3bc838c66439a3d6160b, limb2: 0x72f26b55fb56be1, - limb3: 0x0 + limb3: 0x0, }, y: u384 { limb0: 0x772ca79c580e121ca148fe75, limb1: 0xce2f55e418ca01b3d6d1014b, limb2: 0x2884b1dc4e84e30f, - limb3: 0x0 - } + limb3: 0x0, + }, }, G1Point { x: u384 { limb0: 0x536c985db33c69f7c242e07a, limb1: 0xfc531bccffafcf1e59d91fb9, limb2: 0x2585e4f8a31664cb, - limb3: 0x0 + limb3: 0x0, }, y: u384 { limb0: 0x57fa42444057cf0c1d62ae3c, limb1: 0x4f48d341183118d68ea41313, limb2: 0x1d2d2799db056ed1, - limb3: 0x0 - } + limb3: 0x0, + }, }, G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, ] .span(); let scalars = array![ u256 { low: 0x0, high: 0x0 }, u256 { - low: 0x12e0c8b2bad640fb19488dec4f65d4d9, high: 0x1521f387af19922ad9b8a714e61a441c + low: 0x12e0c8b2bad640fb19488dec4f65d4d9, high: 0x1521f387af19922ad9b8a714e61a441c, }, u256 { - low: 0x5a92118719c78df48f4ff31e78de5857, high: 0x28fcb26f9c6316b950f244556f25e2a2 + low: 0x5a92118719c78df48f4ff31e78de5857, high: 0x28fcb26f9c6316b950f244556f25e2a2, }, ] .span(); let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 0 + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 0, ); assert!( res == G1Point { @@ -1209,919 +456,242 @@ mod msm_tests { limb0: 0x21725fdb9f487676e547051, limb1: 0xc23930e4f96498a77a316418, limb2: 0x1244cb13309195ed, - limb3: 0x0 + limb3: 0x0, }, y: u384 { limb0: 0x6251c487cf0f5a44ac24a45b, limb1: 0xf1db336c10ce7fae206dd8dd, limb2: 0x1da9c56792006d76, - limb3: 0x0 - } - } + limb3: 0x0, + }, + }, ); } #[test] fn test_msm_BN254_4P() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - ] - .span(), - array![ - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - ] - .span(), - array![ - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - ] - .span() - ), - ( - array![ - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - ] - .span() - ), - ] - .span() - ); + let scalars_digits_decompositions = Option::None; let msm_hint = MSMHint { Q_low: G1Point { x: u384 { limb0: 0x86e063fb7ec25be43b131a81, limb1: 0x93e844015403a8f7dfeb5c28, limb2: 0x174a5493e74a2d09, - limb3: 0x0 + limb3: 0x0, }, y: u384 { limb0: 0x91ca263218101c0d60b53319, limb1: 0x581ed6a4a31cb7fd061d99c, limb2: 0x183999b303e135fd, - limb3: 0x0 - } + limb3: 0x0, + }, }, Q_high: G1Point { x: u384 { limb0: 0x5fb5769b3e3c1bee7a6b6b29, limb1: 0x280d5e368d6965bfb181f8, limb2: 0x2bc047bf3c906ee2, - limb3: 0x0 + limb3: 0x0, }, y: u384 { limb0: 0x9f898b2cb0c81f1d4a2a4c9a, limb1: 0xb0c4c460d5242da7f633b58e, limb2: 0x2549f8d91404e768, - limb3: 0x0 - } + limb3: 0x0, + }, }, Q_high_shifted: G1Point { x: u384 { limb0: 0x8b78590174dbcc2cf125bf4b, limb1: 0xa8cd83cf722816e54bfa0fbb, limb2: 0x27b3d85c8cce1408, - limb3: 0x0 + limb3: 0x0, }, y: u384 { limb0: 0xfefa5a6be30e6517c9b94ab2, limb1: 0xfeb01666b69919f6d14354de, limb2: 0x272bba280082a072, - limb3: 0x0 - } + limb3: 0x0, + }, }, - SumDlogDivLow: FunctionFelt { + RLCSumDlogDiv: FunctionFelt { a_num: array![ u384 { - limb0: 0xb70f199e6db17b4daca5168a, - limb1: 0xd647a41bed4ad5acf6336ce, - limb2: 0x25bcfeed0cd8c1cd, - limb3: 0x0 - }, - u384 { - limb0: 0x7a44e8d72ae204c6848aa7f2, - limb1: 0x4acd91449c941c617b47d535, - limb2: 0x14702c61503f432e, - limb3: 0x0 + limb0: 0x10653f25355172f2b59cbf35, + limb1: 0x16204d144a204943c8017a47, + limb2: 0x2822d209fec25092, + limb3: 0x0, }, u384 { - limb0: 0x60416bb07aa26060d453430d, limb1: 0x5302fc4c, limb2: 0x0, limb3: 0x0 + limb0: 0x4cfca469f7a9822e50e36b5a, + limb1: 0xc3f46941ddabaa8cbb689c42, + limb2: 0x1374b756ad9c9440, + limb3: 0x0, }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ u384 { - limb0: 0x9d5972a9ca343dcfe69701da, - limb1: 0x615d6620cd81416d8915042d, - limb2: 0x25e4c512f1b58338, - limb3: 0x0 + limb0: 0x98f11ef381dd5eb584ef514e, + limb1: 0xb6d8e147457c8d1cd0921955, + limb2: 0x265f23aa5e301d6e, + limb3: 0x0, }, u384 { - limb0: 0x77572bdefad6dc9d57ac1583, - limb1: 0x1c7491261a1eb794a59c2561, - limb2: 0xd4bbc639e75f253, - limb3: 0x0 + limb0: 0xd1e7b211d3dceb70a2774954, + limb1: 0x265e66c92d517355fda266fb, + limb2: 0xb4be994c3b86b76, + limb3: 0x0, }, u384 { - limb0: 0xd329ef9018951bf01024d224, - limb1: 0x4822df9ce4a1c312c3e7436f, - limb2: 0x1c62a95ba3e78ab9, - limb3: 0x0 + limb0: 0xf9a9747f12dd5d02cd7c78ab, + limb1: 0x1c5aa525d6badff4c4b8697a, + limb2: 0x21d738a06dcecde0, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0x81820ec055ec93ed65f0e4cf, - limb1: 0xcb6967722c85ac2455176903, - limb2: 0x229af1606d8f08ee, - limb3: 0x0 - }, - u384 { - limb0: 0x97902256d32e115c8a4b60f0, - limb1: 0x7b705140145f6891c7287623, - limb2: 0x2adf7ec16ea21854, - limb3: 0x0 - }, - u384 { - limb0: 0xe9254a704a9b981ccf5dae9f, - limb1: 0x95211c5e52612078087b8b75, - limb2: 0x1cade05f89c951f5, - limb3: 0x0 - }, - u384 { - limb0: 0x107cf888dd1644db11094f9d, - limb1: 0xca886d96c2c70583d16019ec, - limb2: 0x4432bcaae8577a4, - limb3: 0x0 - }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - b_den: array![ - u384 { - limb0: 0x728c2e2e65ba14202cb0b00, - limb1: 0xb377a6f56581138d6c3c3766, - limb2: 0x10e5b25312bd4955, - limb3: 0x0 - }, + a_den: array![ u384 { - limb0: 0x6605839cf08495d807044089, - limb1: 0x555db3724e5c26bdf0d47024, - limb2: 0x27e3352adb61d6f9, - limb3: 0x0 + limb0: 0xa3fae32284a6972d7cb48e32, + limb1: 0xa4e8d508356939ad6189656e, + limb2: 0xf91cbdf43c143c1, + limb3: 0x0, }, u384 { - limb0: 0x110c04230d9ec7b957f17925, - limb1: 0x201859202c63f0dab4345fbe, - limb2: 0x24c3ada00a850002, - limb3: 0x0 + limb0: 0x46697efd43932c85bddf65f3, + limb1: 0xcc792d12aaaaaeade8e226fe, + limb2: 0x27558e7858562ec9, + limb3: 0x0, }, u384 { - limb0: 0x9d5972a9ca343dcfe69701dd, - limb1: 0x615d6620cd81416d8915042d, - limb2: 0x25e4c512f1b58338, - limb3: 0x0 + limb0: 0x1438f28b6b63d8d34f8201c7, + limb1: 0x95965262c7f2fe8269f31bcf, + limb2: 0x238630bc5b425bd8, + limb3: 0x0, }, u384 { - limb0: 0x77572bdefad6dc9d57ac1583, - limb1: 0x1c7491261a1eb794a59c2561, - limb2: 0xd4bbc639e75f253, - limb3: 0x0 + limb0: 0x5fef6b65cce65e0fc1bfedd7, + limb1: 0x5de645663c9a80d910098353, + limb2: 0x1121af8eb6730ea3, + limb3: 0x0, }, u384 { - limb0: 0xd329ef9018951bf01024d224, - limb1: 0x4822df9ce4a1c312c3e7436f, - limb2: 0x1c62a95ba3e78ab9, - limb3: 0x0 + limb0: 0xb8dfb50dddbe4c02558da23e, + limb1: 0xfcdd9dc3eeef382e73e86de, + limb2: 0x29b726259cec4822, + limb3: 0x0, }, u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x469283c53db13d34dca606a4, - limb1: 0x9b2d15aba87587fa14cc1d1e, - limb2: 0xc3db1dbb4aa745c, - limb3: 0x0 - }, - u384 { - limb0: 0xb06a8cae9959e6dbfb06c34f, - limb1: 0x25417030f68b6e6d28830b64, - limb2: 0x242d047d1fe9fd36, - limb3: 0x0 - }, - u384 { - limb0: 0x4b8298a2fcaf236fe983882a, - limb1: 0xdc2822db40c0ac2ea25df7f9, - limb2: 0x183227397098d014, - limb3: 0x0 - }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - a_den: array![ - u384 { - limb0: 0x2849ccd0d78dd7f7b92d92f2, - limb1: 0x2f6b6f6b53e9898b5a0a8cfa, - limb2: 0x1dc306314b8985d, - limb3: 0x0 - }, + b_num: array![ u384 { - limb0: 0xdaa4ba4f0f06e1b0002ade5e, - limb1: 0x4e72dc022cd89d26d2b86d1f, - limb2: 0x2ddcf329140f07d2, - limb3: 0x0 + limb0: 0xb1ba457a40b838cc3935b303, + limb1: 0x5880c0dde5efe6ff2fa10316, + limb2: 0x19714f8ecee0a27, + limb3: 0x0, }, u384 { - limb0: 0xfa54dcf0591b5be5d0cc817c, - limb1: 0xdbe31640021802a4e4211d9f, - limb2: 0x7ecb6304ea148e0, - limb3: 0x0 + limb0: 0x212c9ddbe1b486faef94b7e6, + limb1: 0x9b3cf26fae656955c53ed091, + limb2: 0x7b0ade90081f8a9, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0x3fcdeaeaee2d82ca345b0480, - limb1: 0xc5ea14f63c62ba9d54b66bd8, - limb2: 0x29e24a83ebafed2d, - limb3: 0x0 + limb0: 0xc531edc6eb7c3ab58be56d3f, + limb1: 0xab2dc1c0faf76c4238982240, + limb2: 0x3f026d8f93ffbc9, + limb3: 0x0, }, u384 { - limb0: 0xb4bd4c75586d3beed97ea3ac, - limb1: 0xff5c223b91ff13772d68a4f2, - limb2: 0x1ed6cc020bac5e21, - limb3: 0x0 + limb0: 0x6ea716efdb75d98c88481c9f, + limb1: 0xc9d75f20c417032f04e98e61, + limb2: 0x2088ba8374a047de, + limb3: 0x0, }, u384 { - limb0: 0x9ef9889c4b1fd9cd6368404f, - limb1: 0x8a8b7e89d73b3d52c7207984, - limb2: 0x19ae837c31b60353, - limb3: 0x0 + limb0: 0xdaac2161587237b0f39e4104, + limb1: 0xd516f4267341e2a6802dc6df, + limb2: 0x1b0ceeb10939ebe5, + limb3: 0x0, }, u384 { - limb0: 0x23db0e2d8558bef3c7bf905c, - limb1: 0xb4acca1cb5073fee85961f4, - limb2: 0x1ec4de2186abd294, - limb3: 0x0 + limb0: 0x135a19517a18d73b51553204, + limb1: 0x41fb136ee3dd9ca2f24fad97, + limb2: 0x2ce73a6d92a329f4, + limb3: 0x0, }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), b_den: array![ u384 { - limb0: 0x78dd667286a987e72b88b8d6, - limb1: 0x8e424e41fbbc9ca20e1fa6ee, - limb2: 0x59491293e29c917, - limb3: 0x0 - }, - u384 { - limb0: 0xbf0a99d2b4d38ce24f86a08c, - limb1: 0x7ab80899838726b94926723c, - limb2: 0x28ce3c9579c9d723, - limb3: 0x0 + limb0: 0xebf0a9678df3c588761daa96, + limb1: 0xeeba7f18a03bad08249c304b, + limb2: 0x2eb5639dcb43cb44, + limb3: 0x0, }, u384 { - limb0: 0xeefe96d10b5213b172658474, - limb1: 0x93a942c0064807eeac6358df, - limb2: 0x17c62290ebe3daa2, - limb3: 0x0 + limb0: 0x258e7dd52786d6388a4374b, + limb1: 0xf4cafbcafcfd5b4e8ba39fd8, + limb2: 0x15380e83469f4c09, + limb3: 0x0, }, u384 { - limb0: 0x2849ccd0d78dd7f7b92d92f5, - limb1: 0x2f6b6f6b53e9898b5a0a8cfa, - limb2: 0x1dc306314b8985d, - limb3: 0x0 + limb0: 0x6bc74287c9ea724c3d8c0ac7, + limb1: 0x50226bbb54d64acc0ed67e4a, + limb2: 0x9c9f54f4f63d336, + limb3: 0x0, }, u384 { - limb0: 0xdaa4ba4f0f06e1b0002ade5e, - limb1: 0x4e72dc022cd89d26d2b86d1f, - limb2: 0x2ddcf329140f07d2, - limb3: 0x0 + limb0: 0x5b575ac6af392545e9775a70, + limb1: 0x64b5f8469b763dafa2484d7, + limb2: 0x12928c1885e8cf82, + limb3: 0x0, }, u384 { - limb0: 0xfa54dcf0591b5be5d0cc817c, - limb1: 0xdbe31640021802a4e4211d9f, - limb2: 0x7ecb6304ea148e0, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x93583bbbe8a948adbf6268f3, - limb1: 0xcb58c7af7caae75722098676, - limb2: 0x413302d6aeeb1c0, - limb3: 0x0 - }, - u384 { - limb0: 0x8bbd8e60fc1a1859e888a509, - limb1: 0xdc2822db40c0ac2e47c7fadc, - limb2: 0x183227397098d014, - limb3: 0x0 - } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x8a68ca3bf542a054d18eaff8, - limb1: 0x9962ab8236eb001f59a60b8b, - limb2: 0xe673ae30dd0ce68, - limb3: 0x0 + limb0: 0x37b33e7f286c6c48351154d8, + limb1: 0xd2f1e983e2f3801dd8197be6, + limb2: 0x134e15908b8626b2, + limb3: 0x0, }, u384 { - limb0: 0xe5b5c57dc52930124568d01a, - limb1: 0xc7aafa3f5a4d30702357436e, - limb2: 0xd547cc9f904bd68, - limb3: 0x0 + limb0: 0x1438f28b6b63d8d34f8201ca, + limb1: 0x95965262c7f2fe8269f31bcf, + limb2: 0x238630bc5b425bd8, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0xdfd9fe960922bcabd7b05712, - limb1: 0x6825e46149a8286e80e88de0, - limb2: 0x17492ea545985760, - limb3: 0x0 + limb0: 0x5fef6b65cce65e0fc1bfedd7, + limb1: 0x5de645663c9a80d910098353, + limb2: 0x1121af8eb6730ea3, + limb3: 0x0, }, u384 { - limb0: 0xb6950c1d1d10dfd86602c498, - limb1: 0xae1fd1f3d1b6ce8c96a7e301, - limb2: 0x2e1397a81067bac2, - limb3: 0x0 + limb0: 0xb8dfb50dddbe4c02558da23e, + limb1: 0xfcdd9dc3eeef382e73e86de, + limb2: 0x29b726259cec4822, + limb3: 0x0, }, - u384 { - limb0: 0x577caf137386f4ecc72f40e9, - limb1: 0xfb79bf4906378da03cad3f3f, - limb2: 0x3012f892a3dadeaa, - limb3: 0x0 - } + u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), - b_den: array![ - u384 { - limb0: 0x9f3a5eb3dfc7e0fe74ac0fe8, - limb1: 0xcc280286a4c1005e0cf222a2, - limb2: 0x2b35b0a929726b39, - limb3: 0x0 - }, - u384 { - limb0: 0xb12150794f7b9036d03a704e, - limb1: 0x5700eebe0ee791506a05ca4c, - limb2: 0x27fd765deb0e383a, - limb3: 0x0 - }, - u384 { limb0: 0x3, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { - limb0: 0x8a68ca3bf542a054d18eaff8, - limb1: 0x9962ab8236eb001f59a60b8b, - limb2: 0xe673ae30dd0ce68, - limb3: 0x0 - }, - u384 { - limb0: 0xe5b5c57dc52930124568d01a, - limb1: 0xc7aafa3f5a4d30702357436e, - limb2: 0xd547cc9f904bd68, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() }, }; let derive_point_from_x_hint = DerivePointFromXHint { y_last_attempt: u384 { - limb0: 0xbb72327ea501636a9ace5b39, - limb1: 0x936325c58447efb149f492c1, - limb2: 0x10fa4a6dca3f246c, - limb3: 0x0 + limb0: 0x6b1128c39bc35c7a224a4682, + limb1: 0x4152437e9909950bf363dd99, + limb2: 0x129d1cec2df75972, + limb3: 0x0, }, - g_rhs_sqrt: array![ - u384 { - limb0: 0xb6a84f61aed7a7265f7c215d, - limb1: 0xc4b7c1e37084476336d4444c, - limb2: 0x170ad69e25dd0067, - limb3: 0x0 - }, - u384 { - limb0: 0xc13124085d1cf347c5dcea01, - limb1: 0xb84de4ac9ac12bf51eee850, - limb2: 0x389aece1d572174, - limb3: 0x0 - } - ] - .span(), + g_rhs_sqrt: array![].span(), }; let points = array![ G1Point { @@ -2129,65 +699,65 @@ mod msm_tests { limb0: 0x5c724369afbc772d02aed58e, limb1: 0x2cd3bc838c66439a3d6160b, limb2: 0x72f26b55fb56be1, - limb3: 0x0 + limb3: 0x0, }, y: u384 { limb0: 0x772ca79c580e121ca148fe75, limb1: 0xce2f55e418ca01b3d6d1014b, limb2: 0x2884b1dc4e84e30f, - limb3: 0x0 - } + limb3: 0x0, + }, }, G1Point { x: u384 { limb0: 0x536c985db33c69f7c242e07a, limb1: 0xfc531bccffafcf1e59d91fb9, limb2: 0x2585e4f8a31664cb, - limb3: 0x0 + limb3: 0x0, }, y: u384 { limb0: 0x57fa42444057cf0c1d62ae3c, limb1: 0x4f48d341183118d68ea41313, limb2: 0x1d2d2799db056ed1, - limb3: 0x0 - } + limb3: 0x0, + }, }, G1Point { x: u384 { limb0: 0x236ca9312dad3661a37f2d6f, limb1: 0x98424c01caad7592315715d1, limb2: 0x795b9fd941b23c4, - limb3: 0x0 + limb3: 0x0, }, y: u384 { limb0: 0xc7ab5834609a54b8993ffd79, limb1: 0xe81cd490528b814ca632aace, limb2: 0x2d9ff53d3009e6f7, - limb3: 0x0 - } + limb3: 0x0, + }, }, G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, ] .span(); let scalars = array![ u256 { low: 0x0, high: 0x0 }, u256 { - low: 0x5a92118719c78df48f4ff31e78de5857, high: 0x28fcb26f9c6316b950f244556f25e2a2 + low: 0x5a92118719c78df48f4ff31e78de5857, high: 0x28fcb26f9c6316b950f244556f25e2a2, }, u256 { - low: 0x8d723104f77383c13458a748e9bb17bc, high: 0x215ddba6dd84f39e71545a137a1d5006 + low: 0x8d723104f77383c13458a748e9bb17bc, high: 0x215ddba6dd84f39e71545a137a1d5006, }, u256 { - low: 0xeb2083e6ce164dba0ff18e0242af9fc3, high: 0x5f82a8f03983ca8ea7e9d498c778ea6 + low: 0xeb2083e6ce164dba0ff18e0242af9fc3, high: 0x5f82a8f03983ca8ea7e9d498c778ea6, }, ] .span(); let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 0 + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 0, ); assert!( res == G1Point { @@ -2195,1139 +765,392 @@ mod msm_tests { limb0: 0x788e687dfb0b523192cc5507, limb1: 0x6f7b3482a11f4cce1bffaf09, limb2: 0x225f8689ecb156c4, - limb3: 0x0 + limb3: 0x0, }, y: u384 { limb0: 0x2ccf8a4cb742cbcef2f9ac6a, limb1: 0x518ede2a1e12372316e8442b, limb2: 0x4ad79f70e4de756, - limb3: 0x0 - } - } + limb3: 0x0, + }, + }, ); } #[test] - fn test_msm_BN254_5P() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - ] - .span(), - array![ - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - ] - .span() - ), - ( - array![ - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - ] - .span(), - array![ - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - ] - .span() - ), - ( - array![ - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - ] - .span() - ), - ] - .span() - ); + fn test_msm_BN254_10P() { + let scalars_digits_decompositions = Option::None; let msm_hint = MSMHint { Q_low: G1Point { x: u384 { - limb0: 0x1215cfdabc1a9d94d491fa6, - limb1: 0x9a2bbced345afe10096255d4, - limb2: 0x2c730d5048513cf4, - limb3: 0x0 + limb0: 0x68bfb16794e5817b6b448ffe, + limb1: 0x111b7282dbeffcce7b3f715, + limb2: 0x246bed5ddc3c74a9, + limb3: 0x0, }, y: u384 { - limb0: 0xdccd7d1332b0ab061b07c2d5, - limb1: 0x78730a5b144228c9719fbf76, - limb2: 0x2a528b7c520ced1e, - limb3: 0x0 - } + limb0: 0xc91f291a147b3b57a00196a7, + limb1: 0x8839341dbd54ad6d21e0e0ef, + limb2: 0x18889d68d755b621, + limb3: 0x0, + }, }, Q_high: G1Point { x: u384 { - limb0: 0xd2f5646235024a5ebeee0c53, - limb1: 0x65a688208da4d6e8ccff3462, - limb2: 0x1e8b2e50befc0633, - limb3: 0x0 + limb0: 0x635439e16fcbfe5eeba3ecf3, + limb1: 0x45b96bc19418f65e9d7aa491, + limb2: 0x305fbc2daa6baee9, + limb3: 0x0, }, y: u384 { - limb0: 0xa5454397cdca0655ca358801, - limb1: 0xb0c8a47cfae3cf6568e43398, - limb2: 0x980adcbf9031a72, - limb3: 0x0 - } + limb0: 0x4368a16fa3c73077c4f3cd6, + limb1: 0xd363f026c2e38686d22c3585, + limb2: 0x291cf0bebd9202c1, + limb3: 0x0, + }, }, Q_high_shifted: G1Point { x: u384 { - limb0: 0xfbb7e02d851b3666500a6968, - limb1: 0x5e4fa95998ffb5b8fdc5e5a3, - limb2: 0x18df4fbaef6ba55e, - limb3: 0x0 + limb0: 0xb3b7d4349ed18bd82925ef84, + limb1: 0x3cd4cdba2a8676b60e52962c, + limb2: 0x2bc5ba2338a53b6c, + limb3: 0x0, }, y: u384 { - limb0: 0xb6251adab8660441d59570cd, - limb1: 0x5c3cf27dcdf2119605e17d1e, - limb2: 0x1959673cf91290e2, - limb3: 0x0 - } + limb0: 0x866ec014b98838760c368ee6, + limb1: 0xfdaac7c202634518f73544ed, + limb2: 0x2206a4deafdc7284, + limb3: 0x0, + }, }, - SumDlogDivLow: FunctionFelt { + RLCSumDlogDiv: FunctionFelt { a_num: array![ u384 { - limb0: 0xe970da9b93b6f99d8d81cc, - limb1: 0xa999df8c208656ca9528f685, - limb2: 0xc8e18cce547d293, - limb3: 0x0 - }, - u384 { - limb0: 0x9e90628d00b6154972fe250, - limb1: 0x7f060b6d6f17b7a3a365e400, - limb2: 0x29cfa41a33aa125, - limb3: 0x0 + limb0: 0xaf7d125ec32f3ba4431d34de, + limb1: 0x6f6e20dab8c0dd8932d8f416, + limb2: 0x131f236e5a54f8f8, + limb3: 0x0, }, u384 { - limb0: 0xc2e600cb27b1bb995316469a, - limb1: 0x8853580385af3f81f995b48f, - limb2: 0x164408095c3f82dd, - limb3: 0x0 + limb0: 0x6c190fa7d984a10a336b8702, + limb1: 0xf15a35d34520ad579fea9ca8, + limb2: 0x29d11bbb968291f4, + limb3: 0x0, }, u384 { - limb0: 0x806ad33e9a0e3a0caabb2748, - limb1: 0xb85045b68181585cd436c1dd, - limb2: 0x30644e72e131a029, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x6216089f845ea2c650a2d9f, - limb1: 0x55a23304224c8954f378cdf8, - limb2: 0x67dcb990433d238, - limb3: 0x0 + limb0: 0xad49dd65067671eecbd328f4, + limb1: 0xf99f002d460830ac3b9d4a06, + limb2: 0x230469a97e1cf12b, + limb3: 0x0, }, u384 { - limb0: 0x5f275ee1a0b95df096cfbcd6, - limb1: 0x92dca9ed58649a4787e7de1d, - limb2: 0x2a4bce632a29357f, - limb3: 0x0 + limb0: 0x813040ff88b8392f4de91fa3, + limb1: 0xe6aabfd5906788e0cf0847fb, + limb2: 0x230c50b158c5bd02, + limb3: 0x0, }, u384 { - limb0: 0xb80948f0f1850cea0f26e407, - limb1: 0x89accacc21b1153806f066eb, - limb2: 0x2d95e9a04b3a7128, - limb3: 0x0 + limb0: 0x39fec5792abad9e7d5940278, + limb1: 0xe00f7c3a3ea02095f9c013f5, + limb2: 0xa187cc10921e90d, + limb3: 0x0, }, u384 { - limb0: 0xab1ccd0e77f701b530b91f02, - limb1: 0x45ba7e211f03389c4fba30b5, - limb2: 0x1d1e2aaf777564a0, - limb3: 0x0 + limb0: 0xa9de001b53b9d39940663a7f, + limb1: 0x1436fe71dd83c7169a0f688c, + limb2: 0xca18cdd95521457, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0x41d4bc1c197524c620668efa, - limb1: 0xf279fb39482786f8b9970703, - limb2: 0x1d2081bd5fd6e946, - limb3: 0x0 + limb0: 0xfb8d963e4a3b935a06a75e10, + limb1: 0xbe59423894ed1450eb9b0d7a, + limb2: 0x1f70ecd9cf661258, + limb3: 0x0, }, u384 { - limb0: 0x6c8dc21d55cc41985f8ebd99, - limb1: 0xcc22643c01cb469bedb5b62e, - limb2: 0x230af1e8cb571100, - limb3: 0x0 + limb0: 0xd4904ee2748bbfd354abe64e, + limb1: 0x43a70351700daf536df38af8, + limb2: 0x216318598a21a0cc, + limb3: 0x0, }, u384 { - limb0: 0xfbab69ffd1207c6d081573fa, - limb1: 0x2622c0f6b6b8268bd44578ef, - limb2: 0x1e96de5452bd3fe0, - limb3: 0x0 + limb0: 0x3606d31e1682d1a58e068c5a, + limb1: 0xc961b5b62212acd12cc2071, + limb2: 0xf63cf2fea5176a7, + limb3: 0x0, }, u384 { - limb0: 0x77c995db2d27896f1398ae1d, - limb1: 0x67f1492f94fcf6e901f1f15a, - limb2: 0x164cbf987fee0e51, - limb3: 0x0 + limb0: 0xfeaab7486ca2d72c5619aad2, + limb1: 0x821014ecbf475af3ad66b3ad, + limb2: 0x2a560f4b5eaad07d, + limb3: 0x0, }, u384 { - limb0: 0x34ade2b09ea33449531d79aa, - limb1: 0x418a12bc535ef3b206fc8113, - limb2: 0xcd9cebafd26aa18, - limb3: 0x0 + limb0: 0x79e2452c302e3f47c9a8a5c3, + limb1: 0xd7be1bb764e3bec0e530fbc, + limb2: 0x2cf3882aa937b27b, + limb3: 0x0, }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), - b_den: array![ + a_den: array![ u384 { - limb0: 0x1264219de8d1be852f1e88dd, - limb1: 0xe6990c66e59bfeda6a69e8, - limb2: 0x137962cb0c9b76a9, - limb3: 0x0 + limb0: 0x4657b0ebee16dd56181b833, + limb1: 0x4ae45fa6363575978ee85d8c, + limb2: 0x1c4c473df9542fc3, + limb3: 0x0, }, u384 { - limb0: 0x4c92878a69eb01a413753bf4, - limb1: 0x47f5725b062b1e1b68b4c535, - limb2: 0x1e1ace43bc18602b, - limb3: 0x0 + limb0: 0x286b06a32b7399c2e855b3dc, + limb1: 0x10b6ed16c7a46caa05c43a62, + limb2: 0x26381abf7c928fb5, + limb3: 0x0, }, u384 { - limb0: 0x573845b85c4e0e907c7ab187, - limb1: 0x2c65d4f762108eece5ce5fa0, - limb2: 0x27f91ffb1f4c1326, - limb3: 0x0 + limb0: 0x5e80814091b75c9539e9f5ed, + limb1: 0xf9ebfe9bf47e7d04f15be012, + limb2: 0x2eba43e70fad05c, + limb3: 0x0, }, u384 { - limb0: 0x9f05fd28240a63351eb88d5e, - limb1: 0x6e8167b0fdd4dacc4b25f587, - limb2: 0x2d73fd3489625fef, - limb3: 0x0 + limb0: 0x3d9d5a6d0d12fec793934d59, + limb1: 0xe906381cb5254093ca653bdf, + limb2: 0x21b2197fa81de661, + limb3: 0x0, }, u384 { - limb0: 0x5f275ee1a0b95df096cfbcd9, - limb1: 0x92dca9ed58649a4787e7de1d, - limb2: 0x2a4bce632a29357f, - limb3: 0x0 + limb0: 0xf07de23476b4a3b887d78a06, + limb1: 0xc465ce4bd051101ac3e236c5, + limb2: 0x13d9cfe5bd03c3b8, + limb3: 0x0, }, u384 { - limb0: 0xb80948f0f1850cea0f26e407, - limb1: 0x89accacc21b1153806f066eb, - limb2: 0x2d95e9a04b3a7128, - limb3: 0x0 + limb0: 0x85c99955212cb97badbd1ee6, + limb1: 0x53bb40f728b999ff0f35ddaf, + limb2: 0x3e6879ee587ba75, + limb3: 0x0, }, u384 { - limb0: 0xab1ccd0e77f701b530b91f02, - limb1: 0x45ba7e211f03389c4fba30b5, - limb2: 0x1d1e2aaf777564a0, - limb3: 0x0 + limb0: 0xe35d73f99e215c35c9d02de4, + limb1: 0xcb98db2dec568868e5f1c4c1, + limb2: 0x5ece7a4e72e7075, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ u384 { - limb0: 0x599875297c1ef5e3e9153700, - limb1: 0x8aea8cf7b102985e38da3878, - limb2: 0x304334d8e9c6fac5, - limb3: 0x0 + limb0: 0xf410ffec6570f047b7d48469, + limb1: 0x37439bbbff8ebbdd0b914270, + limb2: 0x13551edecfe046ad, + limb3: 0x0, }, u384 { - limb0: 0x523657979b3e7224e802627d, - limb1: 0xda315f6b3b3d26cba6aa75b1, - limb2: 0x15e05aec059e2f52, - limb3: 0x0 + limb0: 0x64b011628f66bcdd0ed7e8ac, + limb1: 0x5987f609cf8cde7dcf38fab5, + limb2: 0x129ff152124ba7b5, + limb3: 0x0, }, u384 { - limb0: 0x787dee625c57715044981029, - limb1: 0x692d4024751ae5fbdab10b27, - limb2: 0x26d0a16111c6d8c3, - limb3: 0x0 + limb0: 0xeda08ed68e799589a61f9933, + limb1: 0x430f9a4dbbe908b574cd7190, + limb2: 0x19b09c080149debb, + limb3: 0x0, }, u384 { - limb0: 0x8518eb66478d7619170a663a, - limb1: 0xdc2822db40c0ac2ea1766164, - limb2: 0x183227397098d014, - limb3: 0x0 + limb0: 0x62cec2278f875def236a8b50, + limb1: 0x41047f4ad11ebba884867a57, + limb2: 0x8a0491ff32a9050, + limb3: 0x0, }, + u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - a_den: array![ + b_num: array![ u384 { - limb0: 0xdcfe206324a58d54e9183ad5, - limb1: 0x53939c46af217d0a67cef1f6, - limb2: 0x1e2017d90d9ce647, - limb3: 0x0 + limb0: 0x87a064e177fa6cdfff374b8c, + limb1: 0xfff9f19724b56aafdd024032, + limb2: 0x983b0db79c74404, + limb3: 0x0, }, u384 { - limb0: 0xba2bfd5e5f50a2addb3da749, - limb1: 0xc390682a600c852ad1a0ebab, - limb2: 0x908c1a11f1e5267, - limb3: 0x0 + limb0: 0xc6156abc969464bffd55ccc7, + limb1: 0x6d801d95e54a85a7615cdc5e, + limb2: 0x309415d6d92169c, + limb3: 0x0, }, u384 { - limb0: 0x3843fc0b7eb4d3f4c7faeaa5, - limb1: 0x185abacb29c503abe32f7f17, - limb2: 0x1a560bb7c619ad21, - limb3: 0x0 + limb0: 0xa9eb0487ef56247ac74c1161, + limb1: 0xb99afc1c75042badc372f1cd, + limb2: 0x2a1919a9f6d080c0, + limb3: 0x0, }, u384 { - limb0: 0xd948c5a9eeb6612fbf143255, - limb1: 0x7a3fb2edc5b95fc38c1d5226, - limb2: 0x2b0609af00ca9b61, - limb3: 0x0 + limb0: 0x1748cb45e2e4593ce47d95cd, + limb1: 0x80487ac2813f1f92870145dc, + limb2: 0xdf579d06b0776ba, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0xbac7bed946c7537c7e72414b, - limb1: 0x95771174b9403345de89d013, - limb2: 0x2ba887e7d4a6f88f, - limb3: 0x0 + limb0: 0x9568400694c54fa02800834b, + limb1: 0x46e49ddb516cb3675ffb418f, + limb2: 0xc07475bc87d046f, + limb3: 0x0, }, u384 { - limb0: 0xd644baedfeae5a9d0a3462e7, - limb1: 0x38f8598bb58c73934bd247ca, - limb2: 0x2900166f44d41810, - limb3: 0x0 + limb0: 0x55c5208f6d4ce82cc69659b0, + limb1: 0x5bcf66f7ceb8e092199638a5, + limb2: 0x2aad8b2aca8af6aa, + limb3: 0x0, }, u384 { - limb0: 0xae164381b592141fc2602668, - limb1: 0xb2e2a34983a73f33fb2ffa2f, - limb2: 0xc6f1f8d10a2b3f, - limb3: 0x0 + limb0: 0x9c0ec7b6b30a9d2087709e6, + limb1: 0xb863d12b618ffb1ac6e3f7ff, + limb2: 0x25dabffb8491d6b5, + limb3: 0x0, }, u384 { - limb0: 0x207531783f699af8502d1526, - limb1: 0x3bdddb50764991613f7cae19, - limb2: 0x3679af20a2f9417, - limb3: 0x0 + limb0: 0x1a6b5724aa6a48dde922fc1e, + limb1: 0x422be8178679f65821626e35, + limb2: 0x1b54f591aa000bfd, + limb3: 0x0, }, u384 { - limb0: 0x501dd3f439f38e6cec387340, - limb1: 0xd4510ae3e504ca739b265e25, - limb2: 0x23924a5ae0418d37, - limb3: 0x0 + limb0: 0xb54d6d8cffb7c0a0ea3546f8, + limb1: 0xad443543cc62c5e9ac28fe40, + limb2: 0x3fc20009db226be, + limb3: 0x0, }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ u384 { - limb0: 0x2e88969c31d01be7e2cbb338, - limb1: 0x426a8f1d8be31ec19feb6b53, - limb2: 0x29fbf91847a512ac, - limb3: 0x0 + limb0: 0x64585c6aa766dcda2a66105f, + limb1: 0x46eb099328d5af08bb110388, + limb2: 0x740549b430965e6, + limb3: 0x0, }, u384 { - limb0: 0x2e83f81b1df1e80991b8f5db, - limb1: 0x4ab1387f20258f8074e2c303, - limb2: 0x1b1a44e35d5af737, - limb3: 0x0 + limb0: 0x3178402d4aa0406533e2df06, + limb1: 0xcf47b3e982fadf26a6646e81, + limb2: 0xe1fc8c46b7d18b, + limb3: 0x0, }, u384 { - limb0: 0x405a29953ffdefc77f73c2a8, - limb1: 0x90bfeaaafbcdb2a6120d12b4, - limb2: 0x1e9dd4b4711b6739, - limb3: 0x0 + limb0: 0x65879edc94735271c8430a8a, + limb1: 0xae233af91cbefd1cb4d45b00, + limb2: 0x9e299a455e329d4, + limb3: 0x0, }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + ] + .span(), + b_den: array![ u384 { - limb0: 0x2f8311b93c670c9f9cddd9ff, - limb1: 0x9961e3ec7bc9933c45a2a8b7, - limb2: 0xe05498d6c67d7ee, - limb3: 0x0 + limb0: 0xa4bea69f0083bd694c082b52, + limb1: 0x285cd93c211f08691537ae12, + limb2: 0x248087470acaef20, + limb3: 0x0, }, u384 { - limb0: 0xba2bfd5e5f50a2addb3da74c, - limb1: 0xc390682a600c852ad1a0ebab, - limb2: 0x908c1a11f1e5267, - limb3: 0x0 + limb0: 0xa85d7ecf0a19b51b08072106, + limb1: 0xc1843bd753ea9542e249da03, + limb2: 0x11dfb358b3546ecb, + limb3: 0x0, }, u384 { - limb0: 0x3843fc0b7eb4d3f4c7faeaa5, - limb1: 0x185abacb29c503abe32f7f17, - limb2: 0x1a560bb7c619ad21, - limb3: 0x0 + limb0: 0x1b8183c1b52615bfadbde1c7, + limb1: 0xedc3fbd3dd7b770ed413a037, + limb2: 0x8c2ecbb52f07116, + limb3: 0x0, }, u384 { - limb0: 0xd948c5a9eeb6612fbf143255, - limb1: 0x7a3fb2edc5b95fc38c1d5226, - limb2: 0x2b0609af00ca9b61, - limb3: 0x0 + limb0: 0xec59f53b6dd951fe6b41a5b0, + limb1: 0x95567c8f52a28697bf153c06, + limb2: 0x2099f6d72f4aa295, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ u384 { - limb0: 0xd526b484a0e40790d9fa0670, - limb1: 0x4fed93e95fff39d048505c28, - limb2: 0x10de646d4b23e474, - limb3: 0x0 + limb0: 0x2901182617506cbecee25760, + limb1: 0xed47cc8d3594ec3f22680991, + limb2: 0xfced8af13a9a8b, + limb3: 0x0, }, u384 { - limb0: 0x8bbd8e60fc1a1859e888a509, - limb1: 0xdc2822db40c0ac2e47c7fadc, - limb2: 0x183227397098d014, - limb3: 0x0 - } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x308a25a6424e341f808ba78a, - limb1: 0xe3934f7dca9eb5eabb74d333, - limb2: 0x1f38e09522b1664b, - limb3: 0x0 + limb0: 0xefdd4d3ff53d89084321529f, + limb1: 0xf51dc1816eab4b021efd7920, + limb2: 0xe9f3b1b2191ffbc, + limb3: 0x0, }, u384 { - limb0: 0x236508abe239768a20184d3, - limb1: 0xacaa59f2dc5e2419643dbb1c, - limb2: 0x295e1eda13fb94c1, - limb3: 0x0 + limb0: 0x7f43ebccab5687521886d9be, + limb1: 0x938083eff8a78170e4b91f93, + limb2: 0x31481fb7c779799, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0x58160e2e14457884911a29fc, - limb1: 0x6e2215c4e4e632f9e7687b0c, - limb2: 0xc152e0df2c93945, - limb3: 0x0 + limb0: 0x643f176c6ae6e878d6d819fa, + limb1: 0xb1e05bc94d7beb544f149387, + limb2: 0x1d74de0f4b72f796, + limb3: 0x0, }, u384 { - limb0: 0x1ce0bd7359c1b99a60f73cbf, - limb1: 0x8486a517c6ac7ea2ae095fac, - limb2: 0x1e405434556595, - limb3: 0x0 + limb0: 0x4b6802ef934063fc01c7dba3, + limb1: 0xa802dd5e15dedd1ae55f633e, + limb2: 0xb620d223b39116b, + limb3: 0x0, }, u384 { - limb0: 0xb526c21dfe1e6b009f544023, - limb1: 0x39b9081b2934d638ea77f1b7, - limb2: 0x24b7c6a9b9ac713, - limb3: 0x0 - } - ] - .span(), - b_den: array![ + limb0: 0x43cd55f00d6d90bbe3b1fc36, + limb1: 0xdc7764609e904a2bacd8aee3, + limb2: 0x229a6d4a09da6c7d, + limb3: 0x0, + }, u384 { - limb0: 0x292ca6658aca1047a925f957, - limb1: 0xf269a8c2de5ac9629add0f08, - limb2: 0x2d46534c86e292b9, - limb3: 0x0 + limb0: 0x1c7d466314070a1522142659, + limb1: 0xfa51199c72eaeed69924b177, + limb2: 0x2d35fa3ea95ff79d, + limb3: 0x0, }, u384 { - limb0: 0x35bf5c85c229ae0c350a93eb, - limb1: 0x955e826b9217bb90fdb65c31, - limb2: 0x1b51bfa8798f7df1, - limb3: 0x0 + limb0: 0x64b011628f66bcdd0ed7e8af, + limb1: 0x5987f609cf8cde7dcf38fab5, + limb2: 0x129ff152124ba7b5, + limb3: 0x0, }, - u384 { limb0: 0x3, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { - limb0: 0x308a25a6424e341f808ba78a, - limb1: 0xe3934f7dca9eb5eabb74d333, - limb2: 0x1f38e09522b1664b, - limb3: 0x0 + limb0: 0xeda08ed68e799589a61f9933, + limb1: 0x430f9a4dbbe908b574cd7190, + limb2: 0x19b09c080149debb, + limb3: 0x0, }, u384 { - limb0: 0x236508abe239768a20184d3, - limb1: 0xacaa59f2dc5e2419643dbb1c, - limb2: 0x295e1eda13fb94c1, - limb3: 0x0 + limb0: 0x62cec2278f875def236a8b50, + limb1: 0x41047f4ad11ebba884867a57, + limb2: 0x8a0491ff32a9050, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] - .span() + .span(), }, }; let derive_point_from_x_hint = DerivePointFromXHint { y_last_attempt: u384 { - limb0: 0x4ccac04f9763480e56df6f88, - limb1: 0x2734a4e835ae7dada8bd12f6, - limb2: 0x88c08a71b377391, - limb3: 0x0 + limb0: 0xf68598a29ed4f5908a0ce3e0, + limb1: 0x7c13f04bf820695fc6988663, + limb2: 0x159c215cc697b53b, + limb3: 0x0, }, g_rhs_sqrt: array![ u384 { - limb0: 0xdf8e0e5e7c5cea847fde6921, - limb1: 0x2dc8a8a4f838571ccc89d066, - limb2: 0x132e9feef5fdb1fb, - limb3: 0x0 + limb0: 0x3d8d2155f32b2afd581e52ef, + limb1: 0x3c6ae4ef100a84d6a4ca3d9b, + limb2: 0x11d745ac5fb8e6cb, + limb3: 0x0, }, - u384 { - limb0: 0xb56122a09a26094d5fb206db, - limb1: 0x78d2b460a4364ab8da98557b, - limb2: 0x5aebe1de22216b3, - limb3: 0x0 - } ] .span(), }; @@ -3337,1427 +1160,584 @@ mod msm_tests { limb0: 0x5c724369afbc772d02aed58e, limb1: 0x2cd3bc838c66439a3d6160b, limb2: 0x72f26b55fb56be1, - limb3: 0x0 + limb3: 0x0, }, y: u384 { limb0: 0x772ca79c580e121ca148fe75, limb1: 0xce2f55e418ca01b3d6d1014b, limb2: 0x2884b1dc4e84e30f, - limb3: 0x0 - } + limb3: 0x0, + }, }, G1Point { x: u384 { limb0: 0x536c985db33c69f7c242e07a, limb1: 0xfc531bccffafcf1e59d91fb9, limb2: 0x2585e4f8a31664cb, - limb3: 0x0 + limb3: 0x0, }, y: u384 { limb0: 0x57fa42444057cf0c1d62ae3c, limb1: 0x4f48d341183118d68ea41313, limb2: 0x1d2d2799db056ed1, - limb3: 0x0 - } + limb3: 0x0, + }, }, G1Point { x: u384 { limb0: 0x236ca9312dad3661a37f2d6f, limb1: 0x98424c01caad7592315715d1, limb2: 0x795b9fd941b23c4, - limb3: 0x0 + limb3: 0x0, }, y: u384 { limb0: 0xc7ab5834609a54b8993ffd79, limb1: 0xe81cd490528b814ca632aace, limb2: 0x2d9ff53d3009e6f7, - limb3: 0x0 - } + limb3: 0x0, + }, }, G1Point { x: u384 { limb0: 0x163df40cafbf585ca5b2ab44, limb1: 0xb4752e4666c88dbbe23783a0, limb2: 0x1a801462ac9cb657, - limb3: 0x0 + limb3: 0x0, }, y: u384 { limb0: 0xac9b557d7ca8625d957263c6, limb1: 0xdc6f75fa8339a78b998ae54a, limb2: 0x28683293b6494d9f, - limb3: 0x0 - } + limb3: 0x0, + }, + }, + G1Point { + x: u384 { + limb0: 0x5c4f5dca0c973b7f70bfff9, + limb1: 0x188c2afab11eef5d48ecda3c, + limb2: 0xc2fed35d36c49f1, + limb3: 0x0, + }, + y: u384 { + limb0: 0x9d7244ea10697ca42e2e066b, + limb1: 0xfe18a519c7d68770dc48dbf9, + limb2: 0x149bb528db998529, + limb3: 0x0, + }, + }, + G1Point { + x: u384 { + limb0: 0xffc057151b06c496e6fdd440, + limb1: 0x5a01bae0c7441f08c7af1cf9, + limb2: 0x274e0e02529e6d26, + limb3: 0x0, + }, + y: u384 { + limb0: 0x65ceb8977413bc9798681ecb, + limb1: 0x19ffb287b45234f0c28fd1a7, + limb2: 0x28dbbd2f9267be76, + limb3: 0x0, + }, + }, + G1Point { + x: u384 { + limb0: 0xcfcdbfdb2056ff1a64bf1d47, + limb1: 0xf26fe2dae9f693d9b4aab2e6, + limb2: 0x12d66ad4802d841e, + limb3: 0x0, + }, + y: u384 { + limb0: 0xe6e34ebfa2e18dce86cadbdc, + limb1: 0x7ce096238b3d4b1b8fba6a55, + limb2: 0x2e0a660b1549800c, + limb3: 0x0, + }, + }, + G1Point { + x: u384 { + limb0: 0xd2dd03b29d58d045656ecf33, + limb1: 0xeddac3cf7a123aae2180739b, + limb2: 0x215bec6e0a03c924, + limb3: 0x0, + }, + y: u384 { + limb0: 0xe5201e51828eb11589d8619f, + limb1: 0xa6563c760aa3a2c9d15af235, + limb2: 0x7ed0c9b2e7811fb, + limb3: 0x0, + }, + }, + G1Point { + x: u384 { + limb0: 0xc33ac21c67b06a9994457b4c, + limb1: 0xa9aa5573bf7a92aab85366eb, + limb2: 0x1a407281e1d92e91, + limb3: 0x0, + }, + y: u384 { + limb0: 0x5a306649d971b115d71a78b1, + limb1: 0xa70687a9b5132e26b2cfbb37, + limb2: 0x2031920af5d6c9db, + limb3: 0x0, + }, }, G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, ] .span(); let scalars = array![ u256 { low: 0x0, high: 0x0 }, u256 { - low: 0x8d723104f77383c13458a748e9bb17bc, high: 0x215ddba6dd84f39e71545a137a1d5006 + low: 0x247a8333f7b0b7d2cda8056c3d15eef7, high: 0x5d67b7072ae22448b0163c1cd9d2b7d, + }, + u256 { + low: 0xe005b86051ef1922fe43c49e149818d1, high: 0x1f507980eece328bff7b118e820865d6, }, u256 { - low: 0xeb2083e6ce164dba0ff18e0242af9fc3, high: 0x5f82a8f03983ca8ea7e9d498c778ea6 + low: 0x4a84eb038d1fd9b74d2b9deb1beb3711, high: 0x154bc8ce8c25166a1ff39849b4e1357d, }, u256 { - low: 0xb5d32b1666194cb1d71037d1b83e90ec, high: 0x28045af9ab0c1681c8f8e3d0d3290a4c + low: 0x3405095c8a5006c1ec188efbd080e66e, high: 0x2305d1699a6a5f92cca74147f6be1f72, }, u256 { - low: 0xd3fbf47a7e5b1e7f9ca5499d004ae545, high: 0x2ebce25e3e70f16a55485822de1b372a + low: 0x1775336d71eacd0549a3e80e966e1277, high: 0x144a7edf6288e1a5cc45782198a6416d, + }, + u256 { + low: 0x2f1205544a5308cc3dfabc08935ddd72, high: 0x21c38572fcd81b5d24bace4307bf326, + }, + u256 { + low: 0x42930b33a81ad477fb3675b89cdeb3e6, high: 0x2b70369e16febaa011af923d79fdef7c, + }, + u256 { + low: 0x2648ee38e07405eb215663abc1f254b8, high: 0x522c9d6d7ab792809e469e6ec62b2c8, + }, + u256 { + low: 0x85940927468ff53d864a7a50b48d73f1, high: 0xdc5dba1d977e9933c49d76fcfc6e625, }, ] .span(); let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 0 + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 0, ); assert!( res == G1Point { x: u384 { - limb0: 0x1be3d19366e9038cd4c11f40, - limb1: 0x921c0380af1fdc292ec32108, - limb2: 0xd5b8f6fe6d7a49e, - limb3: 0x0 + limb0: 0x308fd6b45a63e49bf708e96, + limb1: 0x9b97a3363c95c209e8fab620, + limb2: 0x1ae699a4de6d9998, + limb3: 0x0, }, y: u384 { - limb0: 0x97f8a831e9109d39b5f5e61f, - limb1: 0x9bd00e7770db28d735b2eb2d, - limb2: 0x1184969b0d89cf02, - limb3: 0x0 - } - } + limb0: 0x6966fe3425872dc23fd55404, + limb1: 0xa8be5375eb482c4e7d2ad043, + limb2: 0x12572137d2078244, + limb3: 0x0, + }, + }, ); } #[test] - fn test_msm_BN254_6P() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - ] - .span(), - array![ - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - ] - .span() - ), - ( - array![ - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - ] - .span(), - array![ - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - ] - .span() - ), - ( - array![ - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - ] - .span(), - array![ - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - ] - .span() - ), - ] - .span() - ); + fn test_msm_BN254_11P() { + let scalars_digits_decompositions = Option::None; let msm_hint = MSMHint { Q_low: G1Point { x: u384 { - limb0: 0x6371ce081b8ce6206c21ea36, - limb1: 0x891d865f60363344d83cd30e, - limb2: 0x1e45fbdabb7fda65, - limb3: 0x0 + limb0: 0x90b45d7a39843ae2cf8649e4, + limb1: 0x4f3f05fe6a82257db5ef4638, + limb2: 0x2e5317b879b4f67d, + limb3: 0x0, }, y: u384 { - limb0: 0x4bfb4f3bcaf66904f932b2ee, - limb1: 0x7fa53cd0a83fb17dcb8e0c2f, - limb2: 0x269eda55517a4a8c, - limb3: 0x0 - } + limb0: 0xb5aec8ffa005f236cb86d08f, + limb1: 0x7c11b27ce9c06cee3fa3793, + limb2: 0x13abbc2cb5a70d04, + limb3: 0x0, + }, }, Q_high: G1Point { x: u384 { - limb0: 0x7f1434c306ff1aefd231b16a, - limb1: 0x9bbeac99f5df73901feecb5a, - limb2: 0x1606f0b25ffe65ba, - limb3: 0x0 + limb0: 0x6c7780a212a34f79a5a4984, + limb1: 0xd2b9f43370853e82b6e280f3, + limb2: 0x49098e1fef9ff1, + limb3: 0x0, }, y: u384 { - limb0: 0xc88cf697720db2bc2f8ef153, - limb1: 0xfdf6a73059a691ca8f13c215, - limb2: 0x151d497cd99ea0e3, - limb3: 0x0 - } + limb0: 0xf16e5ea4fa4507af42f9148f, + limb1: 0x67e653350524a43c52475d47, + limb2: 0x1ff99fb3e2fe4ead, + limb3: 0x0, + }, }, Q_high_shifted: G1Point { x: u384 { - limb0: 0x83f11476e962fb09b023113, - limb1: 0xb788297ec21d559bb8717f6d, - limb2: 0x1dc8de8fe1c90a2a, - limb3: 0x0 + limb0: 0xc18d4af2d637781faf364b80, + limb1: 0x43beee7449f92708853e95de, + limb2: 0x3072f460ce59704, + limb3: 0x0, }, y: u384 { - limb0: 0xc33a84fc08f81f0446601ce2, - limb1: 0x99cc2584c031031bde1d90a7, - limb2: 0x9bff69e50752fd2, - limb3: 0x0 - } + limb0: 0x1dddbd01de2320fae30a9244, + limb1: 0xf6111cd106dc6a17348c4d58, + limb2: 0xc922fcf80c6b390, + limb3: 0x0, + }, }, - SumDlogDivLow: FunctionFelt { + RLCSumDlogDiv: FunctionFelt { a_num: array![ u384 { - limb0: 0x38cd6c167901b58985b2d4a5, - limb1: 0x42e2e605eb23dd325bc4d44b, - limb2: 0x162ac5e945d00073, - limb3: 0x0 + limb0: 0xdaa07b8ea27df5d1897869ab, + limb1: 0xc54cfbc31ef45543d8150b19, + limb2: 0xbd0fab73eb85d0d, + limb3: 0x0, }, u384 { - limb0: 0xaf1e11675933466d8b21dbfd, - limb1: 0x15cb55a1976cf9040d0f119, - limb2: 0x265fb31da980663b, - limb3: 0x0 + limb0: 0x34ccddfaf7b3ed235213dcab, + limb1: 0xd44c1b1736d255429671ad73, + limb2: 0x21a878cbd6b4b0cc, + limb3: 0x0, }, u384 { - limb0: 0xa91aa586672e52dcbf44d67b, - limb1: 0x5a1fdec60b82a9aa81864d4a, - limb2: 0x2a231e100d76f5b0, - limb3: 0x0 + limb0: 0xea4beeaf9a6c80a232bcb7c, + limb1: 0x61df2bfedf4cf60173a01060, + limb2: 0x10cafaf408f1feb4, + limb3: 0x0, }, u384 { - limb0: 0x4bf340ac02c1125b908f261c, - limb1: 0x6447102d8e4a049d89ec7352, - limb2: 0x283f2a4edbf392fa, - limb3: 0x0 + limb0: 0x82c167316625a7c71992f944, + limb1: 0x1297c4a01bed568ea8024c36, + limb2: 0x15e5cfb62a197016, + limb3: 0x0, }, u384 { - limb0: 0xa866579d9b22ff9f497b8d7a, - limb1: 0xdc2822db40c0ac2d7a0cb249, - limb2: 0x183227397098d014, - limb3: 0x0 + limb0: 0x3cbb929ea01eff89f7a7d264, + limb1: 0x536189ed828464cba924402e, + limb2: 0x1d63ba349b38c92e, + limb3: 0x0, }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ u384 { - limb0: 0x6975e83972ec75ca7421152d, - limb1: 0x9046193448cf4d8bed050667, - limb2: 0x16bb273f873e3484, - limb3: 0x0 + limb0: 0xa85430a52d73648889dec774, + limb1: 0x82f33760c0aea35622a39e8f, + limb2: 0xf131a326cccad50, + limb3: 0x0, }, u384 { - limb0: 0x4b93d09c70ef248024f40343, - limb1: 0x42634e5a1798470eb5867ae6, - limb2: 0x2825bef6c7e37fd3, - limb3: 0x0 + limb0: 0x3b0b143c868d76090291fea, + limb1: 0xfbf4ce4ddb3968b4515381c9, + limb2: 0xc7eb57c34de5192, + limb3: 0x0, }, u384 { - limb0: 0x29497b25dc57f4944ed7a19a, - limb1: 0xe73b43b72fcd2ab8de73e6d1, - limb2: 0x128b04bc1cca03d7, - limb3: 0x0 + limb0: 0xb5ef5e7f9a0c505455748f4d, + limb1: 0x2f03e3a14ef0257209cdf5c5, + limb2: 0x14c6ea2d819a9191, + limb3: 0x0, }, u384 { - limb0: 0x5c4bf2ef64d9529b3004753f, - limb1: 0x8b612d4b9c619db8fd9b7e9c, - limb2: 0x7fc649b12d7e242, - limb3: 0x0 + limb0: 0x542bf714c3ba733218bfc42d, + limb1: 0xbfc0393702606c1b1925759, + limb2: 0x3017d9c6d45c7119, + limb3: 0x0, }, u384 { - limb0: 0x43076627676251b61ad45479, - limb1: 0x3e3c89b44209140a37f2d93f, - limb2: 0x1f1b4eef30da7d3e, - limb3: 0x0 + limb0: 0xfb6db671319cae936cb97ee6, + limb1: 0xa134730e601654d2f9df2df5, + limb2: 0x51be0a515dcb23f, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0x28651043c25f30a078e24610, - limb1: 0x35e89edb0758ee62695b261e, - limb2: 0x4a95fab42cf3399, - limb3: 0x0 + limb0: 0x74bd8d9913e9f913db684c80, + limb1: 0x8c0641a00b734d0c44d981b8, + limb2: 0x27e21e34a7c8df85, + limb3: 0x0, }, u384 { - limb0: 0x7e317ed20785a42a4234196f, - limb1: 0x37661d2352c61ddcc5ced962, - limb2: 0x17ce3b0872c66492, - limb3: 0x0 + limb0: 0x5245d0fa49135afb2e9d9528, + limb1: 0xe1549e6f5162fc621bf6b811, + limb2: 0x2f9d4afbf992c91c, + limb3: 0x0, }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + ] + .span(), + a_den: array![ u384 { - limb0: 0xa900d62ec594e5eaf7f1784a, - limb1: 0xb8589cf38de9f55aac4fd3c0, - limb2: 0x305c4eab52f7accd, - limb3: 0x0 + limb0: 0xd406531fcfc930a8da2591f, + limb1: 0x7a2a0e244b1042a04f820ea4, + limb2: 0x2c2a21242f357f14, + limb3: 0x0, }, u384 { - limb0: 0x711c3ea0bd9d31a9a2375a2, - limb1: 0xbce219083d1be3d35bf81fe9, - limb2: 0x207339d62802fee2, - limb3: 0x0 + limb0: 0x39212c5b805d6d02fc128588, + limb1: 0x752d1a1c891743ada97b81e3, + limb2: 0x1b36bfa25b177de2, + limb3: 0x0, }, u384 { - limb0: 0x93f637c12606c8fa68efdf55, - limb1: 0x1b54b1ebdd815fc04aa7d51b, - limb2: 0x403f89ee2a7b124, - limb3: 0x0 + limb0: 0x631d827be967a2b6d92b01a3, + limb1: 0x77965466ee60d2942e3ac977, + limb2: 0x2efeed6528498957, + limb3: 0x0, }, u384 { - limb0: 0xce2e7a40996fd7b345d83ae7, - limb1: 0x2716a6a87bf540519702e954, - limb2: 0x298d5d93792f2fc7, - limb3: 0x0 + limb0: 0xc1b739bffbe567911b00dbd9, + limb1: 0x6de34c2d9b8b330ed4201f99, + limb2: 0x2bbd58c828bf1ddc, + limb3: 0x0, }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ u384 { - limb0: 0xd3efee1f1ca4d54883e64240, - limb1: 0xf88205e658ec90462f8da8a4, - limb2: 0x13cd274bb488fd63, - limb3: 0x0 + limb0: 0x966426b62d820c84bc009043, + limb1: 0x79fd779094c2189e76513033, + limb2: 0x30374730630961c8, + limb3: 0x0, }, u384 { - limb0: 0x11d7dcbada8c5552bde20f3b, - limb1: 0x56895fa143c62470f1909b90, - limb2: 0x17a89ffe95473f26, - limb3: 0x0 + limb0: 0xa73c5d0fb756c9e673cb9f9, + limb1: 0x747fb574c160541c61e4a47d, + limb2: 0xb46ebbfc16228f1, + limb3: 0x0, }, u384 { - limb0: 0x136aa6e458e751a61409e787, - limb1: 0xfd61856f0de627cd03da49e2, - limb2: 0x73cbfc1752c6b5d, - limb3: 0x0 + limb0: 0x7e7efb718864394098bc3db2, + limb1: 0x6c88d9f47c549e1c60a8d0df, + limb2: 0x1567cf53183200cc, + limb3: 0x0, }, u384 { - limb0: 0x7e59c107a1786d9c042e74ea, - limb1: 0x3269a1171df426b6e5d7823c, - limb2: 0x2eb05510bfc5db4c, - limb3: 0x0 + limb0: 0x54c40c59c8eca86888da1c4d, + limb1: 0xf6ee957be08f25764ac1b5c8, + limb2: 0x1775414c829c052c, + limb3: 0x0, }, u384 { - limb0: 0x43c66df82ed50174c4770620, - limb1: 0x8c786009dab0d2722e5c3181, - limb2: 0x24af0ede980fb73a, - limb3: 0x0 + limb0: 0xaac7b9996bac577258eb942c, + limb1: 0xcdb642c2342ab601e6624514, + limb2: 0x10ac61f1c8598fb, + limb3: 0x0, }, u384 { - limb0: 0x29497b25dc57f4944ed7a19d, - limb1: 0xe73b43b72fcd2ab8de73e6d1, - limb2: 0x128b04bc1cca03d7, - limb3: 0x0 + limb0: 0x1191df60919977f7a5bc5544, + limb1: 0x2bef369b4095ecf2650b07c9, + limb2: 0x29f678a0387dbac3, + limb3: 0x0, }, u384 { - limb0: 0x5c4bf2ef64d9529b3004753f, - limb1: 0x8b612d4b9c619db8fd9b7e9c, - limb2: 0x7fc649b12d7e242, - limb3: 0x0 + limb0: 0x37710199f53b2af34a9437e6, + limb1: 0x24984368bc304c5ad084a7a5, + limb2: 0x24173b96ce0217c4, + limb3: 0x0, }, u384 { - limb0: 0x43076627676251b61ad45479, - limb1: 0x3e3c89b44209140a37f2d93f, - limb2: 0x1f1b4eef30da7d3e, - limb3: 0x0 + limb0: 0xc87bc7ffb5c4df50832dcf8e, + limb1: 0xc6ac740037cc028da2540454, + limb2: 0x15d9510e8ff821a9, + limb3: 0x0, }, u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x854f6e3e4a3ebd7a29998475, - limb1: 0xf6a22188651f244f8817ad9a, - limb2: 0x396abb01abf2e7d, - limb3: 0x0 - }, - u384 { - limb0: 0x1cc05cee6eea1a842088adda, - limb1: 0xadd8851d79276251a5e2f4f7, - limb2: 0x1103f50d4e034374, - limb3: 0x0 - }, - u384 { - limb0: 0x72236ebfaea9c0c8be9af758, - limb1: 0x4e9ced63c8b2d039eca6b906, - limb2: 0x466300a4619dc9c, - limb3: 0x0 - }, + .span(), + b_num: array![ u384 { - limb0: 0xa8c1514a93c0b790fb50b012, - limb1: 0xa858b2d336d253e5ca680332, - limb2: 0x21df46f7b102547a, - limb3: 0x0 + limb0: 0x70c5ed0de13f7015a416f085, + limb1: 0xc1d1c25f362c8d805cfbaf71, + limb2: 0x23d5b3c77c8c2f20, + limb3: 0x0, }, u384 { - limb0: 0x484151369a7daa5b5c50630e, - limb1: 0xdc2822db40c0ac2eaf304b17, - limb2: 0x183227397098d014, - limb3: 0x0 + limb0: 0xb1726996ae2316b39a719f9, + limb1: 0x4fe9cd6b54ad6b1aa7b396ad, + limb2: 0x1f02dd17520f6e7f, + limb3: 0x0, }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ u384 { - limb0: 0x3f6336afa5c4195038041e10, - limb1: 0x5b450d77ccedf9b081d42d94, - limb2: 0xbcb7baacad7dac3, - limb3: 0x0 + limb0: 0x22501b7b623ea1614501ccbb, + limb1: 0x30aa9870bf709f7fd14e65bd, + limb2: 0xc502ae99bd0a484, + limb3: 0x0, }, u384 { - limb0: 0xcc98e14932de5b2186535557, - limb1: 0xe3c95035913ce5b31f841d7d, - limb2: 0xf5621d674de15e2, - limb3: 0x0 + limb0: 0x983e9ed2c26a331fccc6755, + limb1: 0xf52ffceb76113b3d8d0b4a31, + limb2: 0x7a0c834e064b3ba, + limb3: 0x0, }, u384 { - limb0: 0x3047392d7ae5f4ca86a73681, - limb1: 0xa648dbd7cbfc286c55e12772, - limb2: 0x1b7316fd7cb0d625, - limb3: 0x0 + limb0: 0x1a2eea53a5ba3367b77d83e2, + limb1: 0xbc1c163f3fa99038c93f79bf, + limb2: 0x11eece5d709cfc86, + limb3: 0x0, }, u384 { - limb0: 0x71cab59b76cb09f26315cc1f, - limb1: 0x26dfe6ee7f265a81a5ed866d, - limb2: 0xbbd7da6636528fe, - limb3: 0x0 + limb0: 0x9cb401f315d26491728f8da6, + limb1: 0x9b6bdbae00611d8c0841871c, + limb2: 0xdc098398cf7cd6f, + limb3: 0x0, }, u384 { - limb0: 0x2764ff6c7bf01ce6b4c48d45, - limb1: 0x2b9b6379ac5fd3bef040e0f3, - limb2: 0x275a5a178c5bf1e9, - limb3: 0x0 + limb0: 0xdc70a9ef6033c959d9ece67e, + limb1: 0x1328d87e5aa260e4da44463, + limb2: 0xa4e71a95fd93274, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0xff72fe20f0aff6a0a5d7a7c8, - limb1: 0x57f3aaa1e8dd8557ebbb901a, - limb2: 0x11d5823771c8d6b, - limb3: 0x0 + limb0: 0x930f95dcfde08de3f9b0a87b, + limb1: 0xe9f0b050d24677eadd7b93d1, + limb2: 0xe64d906ad933a12, + limb3: 0x0, }, u384 { - limb0: 0xc68d61f8ff76d965b0284265, - limb1: 0x176986ef4344f2bccb626ad7, - limb2: 0x67608b5e0156fae, - limb3: 0x0 + limb0: 0xbfd540222d27a2c073a44e4a, + limb1: 0x489ffd503b2abb17ea19f1ef, + limb2: 0x20064a93c0cbd712, + limb3: 0x0, }, u384 { - limb0: 0xffc5afaca55b5efca28888ef, - limb1: 0xcaf94801b21dcb0d642b6e35, - limb2: 0x1cc3904a694142b0, - limb3: 0x0 + limb0: 0xc996baf343cc475b7043bf33, + limb1: 0xf644323b86977747bb48aff2, + limb2: 0x5c49f46056bd7a2, + limb3: 0x0, }, u384 { - limb0: 0x84c50c50f2b994c42aade28d, - limb1: 0x800f4a46b4bf45ab3a70f8df, - limb2: 0x12d5274b804053af, - limb3: 0x0 + limb0: 0xf4afa5e4e02cdd3337f72a6e, + limb1: 0xaf71ee1f94a4548d13d98426, + limb2: 0x2f577c3289c4b91b, + limb3: 0x0, }, u384 { - limb0: 0x7b23f94f0c5bb030c0665cb8, - limb1: 0x4ab0cf9ff117f7308037d97d, - limb2: 0x1202c18bed2c8fb3, - limb3: 0x0 + limb0: 0x3e29cdb8b5fffe9f33d7e4, + limb1: 0x40e4abcf3b602887d9b63d0a, + limb2: 0x645ad7894e3228b, + limb3: 0x0, }, u384 { - limb0: 0xc8a640257d9e87ec0f04d0e, - limb1: 0xd9b78ee6ccdc276d386ad887, - limb2: 0x2e11e7c1932ac9e0, - limb3: 0x0 + limb0: 0x9720ecd478a5cd4536d55133, + limb1: 0x5bd670d4a398a39be295165c, + limb2: 0x4e55fc3394e06cf, + limb3: 0x0, }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), b_den: array![ u384 { - limb0: 0xbe29a40ef14c4bf0a80c5a30, - limb1: 0x11cf286766c9ed11857c88bc, - limb2: 0x236273006087904a, - limb3: 0x0 - }, - u384 { - limb0: 0x65caa3db989b116492fa0005, - limb1: 0xab5bf0a0b3b6b1195e8c5879, - limb2: 0x2e0265835e9a41a8, - limb3: 0x0 - }, - u384 { - limb0: 0x2863e0fb34915248bb78a63c, - limb1: 0x3a8a4dd0e27320e76a220bc5, - limb2: 0x21f4f68594e0e247, - limb3: 0x0 + limb0: 0x56dd9a7b7eb4a0f1f7ed10cf, + limb1: 0xfddd9effde2e1725bf8356c9, + limb2: 0x23b5c686cb3d3ce9, + limb3: 0x0, }, u384 { - limb0: 0x94c357820a2537276145826d, - limb1: 0xcfe4c2434a610935739cc0dc, - limb2: 0x2f03f49df50755bd, - limb3: 0x0 + limb0: 0x42f1ba8544f7baf21bba9351, + limb1: 0xa737089f19c472ab64f11b18, + limb2: 0x213ff0743014d97d, + limb3: 0x0, }, u384 { - limb0: 0x71e44a742e6d99a7f3a70298, - limb1: 0xf5faef359359b034c143eb34, - limb2: 0x249c9337578eab4a, - limb3: 0x0 + limb0: 0x5874f25943f5cff6da870a5b, + limb1: 0xf62271c7c81fc7015bad8743, + limb2: 0x2c342b49b6795bb2, + limb3: 0x0, }, u384 { - limb0: 0x3047392d7ae5f4ca86a73684, - limb1: 0xa648dbd7cbfc286c55e12772, - limb2: 0x1b7316fd7cb0d625, - limb3: 0x0 + limb0: 0x1910b2ca3c4b2579552df4d5, + limb1: 0x9ae32189992dd2b4055e2dbd, + limb2: 0x1e35402405ddf82c, + limb3: 0x0, }, u384 { - limb0: 0x71cab59b76cb09f26315cc1f, - limb1: 0x26dfe6ee7f265a81a5ed866d, - limb2: 0xbbd7da6636528fe, - limb3: 0x0 + limb0: 0xc2f840d65481ee4ca69d3e7c, + limb1: 0xba34afaac2d9847045ead2c9, + limb2: 0x1aafa9dae09ec2be, + limb3: 0x0, }, u384 { - limb0: 0x2764ff6c7bf01ce6b4c48d45, - limb1: 0x2b9b6379ac5fd3bef040e0f3, - limb2: 0x275a5a178c5bf1e9, - limb3: 0x0 + limb0: 0x1a0709619fa75c7b36643247, + limb1: 0x1cc52f0eb100768bbc674c5d, + limb2: 0x206f62318b3e6402, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ u384 { - limb0: 0x1057d0007e12d2cfd7c1f059, - limb1: 0x39763b5ddb6678f85b82c9b0, - limb2: 0x21e53fb51328f88, - limb3: 0x0 + limb0: 0x6c5096fa1cd0fb25343b9a61, + limb1: 0x42dd4e9e0d865ca8c717bd15, + limb2: 0xb2c29dbaef1dfee, + limb3: 0x0, }, u384 { - limb0: 0x8bbd8e60fc1a1859e888a509, - limb1: 0xdc2822db40c0ac2e47c7fadc, - limb2: 0x183227397098d014, - limb3: 0x0 - } - ] - .span(), - a_den: array![ - u384 { - limb0: 0xd3e6e9479f63dcf4b7a38532, - limb1: 0xde2ee9fe0b65ddcdce46b50a, - limb2: 0xae9789de4ea27dc, - limb3: 0x0 + limb0: 0xc3ccb6a91006ed90a594ea9c, + limb1: 0xee28ac97336cd84627937c69, + limb2: 0x15ce6e30287a30fb, + limb3: 0x0, }, u384 { - limb0: 0x49904f1002abcd8d43c61811, - limb1: 0x1d59b5544b05e78f56a28a5b, - limb2: 0x2cf8cda3809bd06e, - limb3: 0x0 + limb0: 0xacaf29d3e7a72f571ff767d, + limb1: 0xdda27dbb5de07622150b73bb, + limb2: 0xe673e1d16f2f3e4, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0x2bb11d1ecf6d9078e9faae7a, - limb1: 0xfa12bf7a074a15c6018066b1, - limb2: 0x550eb7f530d7faa, - limb3: 0x0 + limb0: 0x79df39eb88cefce3007a45a9, + limb1: 0xc765aca2b9925bdac945a886, + limb2: 0x21e4ddb1e165098, + limb3: 0x0, }, u384 { - limb0: 0x3127746d815efb9c64a883ed, - limb1: 0xfce4660bfbc0e22984cb4b4f, - limb2: 0x13574320b2910e5a, - limb3: 0x0 + limb0: 0x2a337c0d305d1114b79cc971, + limb1: 0xf416d449121d59cb8d4cd795, + limb2: 0x22f2572b2a3f0c25, + limb3: 0x0, }, u384 { - limb0: 0x86ed385d63ed9bea9f570285, - limb1: 0x69a203e381b17015beaff481, - limb2: 0x1e125a3d5aa36fb, - limb3: 0x0 - } - ] - .span(), - b_den: array![ - u384 { - limb0: 0x7bb4bbd6de2b96de26ea8f96, - limb1: 0x9a8cbdfa223199696ad41f20, - limb2: 0x20bc69d9aebe7796, - limb3: 0x0 + limb0: 0x9bc9470b50da694d09f8058f, + limb1: 0x696b590c5a0d654d35dce781, + limb2: 0x12326ad7eb3c5dcf, + limb3: 0x0, }, u384 { - limb0: 0xbcd58158fc2507a1a584da5, - limb1: 0xe76c948fde0f05f2d4e4c9ef, - limb2: 0x2621cc04bf7030f6, - limb3: 0x0 + limb0: 0x1191df60919977f7a5bc5547, + limb1: 0x2bef369b4095ecf2650b07c9, + limb2: 0x29f678a0387dbac3, + limb3: 0x0, }, - u384 { limb0: 0x3, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { - limb0: 0xd3e6e9479f63dcf4b7a38532, - limb1: 0xde2ee9fe0b65ddcdce46b50a, - limb2: 0xae9789de4ea27dc, - limb3: 0x0 + limb0: 0x37710199f53b2af34a9437e6, + limb1: 0x24984368bc304c5ad084a7a5, + limb2: 0x24173b96ce0217c4, + limb3: 0x0, }, u384 { - limb0: 0x49904f1002abcd8d43c61811, - limb1: 0x1d59b5544b05e78f56a28a5b, - limb2: 0x2cf8cda3809bd06e, - limb3: 0x0 + limb0: 0xc87bc7ffb5c4df50832dcf8e, + limb1: 0xc6ac740037cc028da2540454, + limb2: 0x15d9510e8ff821a9, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] - .span() + .span(), }, }; let derive_point_from_x_hint = DerivePointFromXHint { y_last_attempt: u384 { - limb0: 0x2e32f9743d236d70e1b5b7c6, - limb1: 0xda2f3205de24110142904a10, - limb2: 0x335738dfdacacc2, - limb3: 0x0 + limb0: 0x7ee07edccd5185fb30be9dcb, + limb1: 0x199e43be870abb34b24b4c6, + limb2: 0x76032cd35742b9b, + limb3: 0x0, }, g_rhs_sqrt: array![ u384 { - limb0: 0x11dbdd87513ebfc4395368eb, - limb1: 0x3a463ea3bd5ce54af0c07710, - limb2: 0x102d47bb7b7e4d92, - limb3: 0x0 - } + limb0: 0x6fa4dbf36a0761e2ddf07d4c, + limb1: 0x9764947c15a86e1190692c84, + limb2: 0x6b032fadf23f449, + limb3: 0x0, + }, ] .span(), }; @@ -4767,1663 +1747,631 @@ mod msm_tests { limb0: 0x5c724369afbc772d02aed58e, limb1: 0x2cd3bc838c66439a3d6160b, limb2: 0x72f26b55fb56be1, - limb3: 0x0 + limb3: 0x0, }, y: u384 { limb0: 0x772ca79c580e121ca148fe75, limb1: 0xce2f55e418ca01b3d6d1014b, limb2: 0x2884b1dc4e84e30f, - limb3: 0x0 - } + limb3: 0x0, + }, }, G1Point { x: u384 { limb0: 0x536c985db33c69f7c242e07a, limb1: 0xfc531bccffafcf1e59d91fb9, limb2: 0x2585e4f8a31664cb, - limb3: 0x0 + limb3: 0x0, }, y: u384 { limb0: 0x57fa42444057cf0c1d62ae3c, limb1: 0x4f48d341183118d68ea41313, limb2: 0x1d2d2799db056ed1, - limb3: 0x0 - } + limb3: 0x0, + }, }, G1Point { x: u384 { limb0: 0x236ca9312dad3661a37f2d6f, limb1: 0x98424c01caad7592315715d1, limb2: 0x795b9fd941b23c4, - limb3: 0x0 + limb3: 0x0, }, y: u384 { limb0: 0xc7ab5834609a54b8993ffd79, limb1: 0xe81cd490528b814ca632aace, limb2: 0x2d9ff53d3009e6f7, - limb3: 0x0 - } + limb3: 0x0, + }, }, G1Point { x: u384 { limb0: 0x163df40cafbf585ca5b2ab44, limb1: 0xb4752e4666c88dbbe23783a0, limb2: 0x1a801462ac9cb657, - limb3: 0x0 + limb3: 0x0, }, y: u384 { limb0: 0xac9b557d7ca8625d957263c6, limb1: 0xdc6f75fa8339a78b998ae54a, limb2: 0x28683293b6494d9f, - limb3: 0x0 - } + limb3: 0x0, + }, }, G1Point { x: u384 { limb0: 0x5c4f5dca0c973b7f70bfff9, limb1: 0x188c2afab11eef5d48ecda3c, limb2: 0xc2fed35d36c49f1, - limb3: 0x0 + limb3: 0x0, }, y: u384 { limb0: 0x9d7244ea10697ca42e2e066b, limb1: 0xfe18a519c7d68770dc48dbf9, limb2: 0x149bb528db998529, - limb3: 0x0 - } + limb3: 0x0, + }, }, G1Point { - x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - }, - ] + x: u384 { + limb0: 0xffc057151b06c496e6fdd440, + limb1: 0x5a01bae0c7441f08c7af1cf9, + limb2: 0x274e0e02529e6d26, + limb3: 0x0, + }, + y: u384 { + limb0: 0x65ceb8977413bc9798681ecb, + limb1: 0x19ffb287b45234f0c28fd1a7, + limb2: 0x28dbbd2f9267be76, + limb3: 0x0, + }, + }, + G1Point { + x: u384 { + limb0: 0xcfcdbfdb2056ff1a64bf1d47, + limb1: 0xf26fe2dae9f693d9b4aab2e6, + limb2: 0x12d66ad4802d841e, + limb3: 0x0, + }, + y: u384 { + limb0: 0xe6e34ebfa2e18dce86cadbdc, + limb1: 0x7ce096238b3d4b1b8fba6a55, + limb2: 0x2e0a660b1549800c, + limb3: 0x0, + }, + }, + G1Point { + x: u384 { + limb0: 0xd2dd03b29d58d045656ecf33, + limb1: 0xeddac3cf7a123aae2180739b, + limb2: 0x215bec6e0a03c924, + limb3: 0x0, + }, + y: u384 { + limb0: 0xe5201e51828eb11589d8619f, + limb1: 0xa6563c760aa3a2c9d15af235, + limb2: 0x7ed0c9b2e7811fb, + limb3: 0x0, + }, + }, + G1Point { + x: u384 { + limb0: 0xc33ac21c67b06a9994457b4c, + limb1: 0xa9aa5573bf7a92aab85366eb, + limb2: 0x1a407281e1d92e91, + limb3: 0x0, + }, + y: u384 { + limb0: 0x5a306649d971b115d71a78b1, + limb1: 0xa70687a9b5132e26b2cfbb37, + limb2: 0x2031920af5d6c9db, + limb3: 0x0, + }, + }, + G1Point { + x: u384 { + limb0: 0x58a3cea1103f16402eb74c08, + limb1: 0xdfefcd91df2f4295ec21e03a, + limb2: 0x1150bcc09ac40007, + limb3: 0x0, + }, + y: u384 { + limb0: 0x57ed7d356f91abcef751889f, + limb1: 0x5c668cded3599c9af5a7e5fa, + limb2: 0x2ccf74197cb9bc13, + limb3: 0x0, + }, + }, + G1Point { + x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + }, + ] .span(); let scalars = array![ u256 { low: 0x0, high: 0x0 }, u256 { - low: 0xeb2083e6ce164dba0ff18e0242af9fc3, high: 0x5f82a8f03983ca8ea7e9d498c778ea6 + low: 0xe005b86051ef1922fe43c49e149818d1, high: 0x1f507980eece328bff7b118e820865d6, + }, + u256 { + low: 0x4a84eb038d1fd9b74d2b9deb1beb3711, high: 0x154bc8ce8c25166a1ff39849b4e1357d, + }, + u256 { + low: 0x3405095c8a5006c1ec188efbd080e66e, high: 0x2305d1699a6a5f92cca74147f6be1f72, + }, + u256 { + low: 0x1775336d71eacd0549a3e80e966e1277, high: 0x144a7edf6288e1a5cc45782198a6416d, + }, + u256 { + low: 0x2f1205544a5308cc3dfabc08935ddd72, high: 0x21c38572fcd81b5d24bace4307bf326, + }, + u256 { + low: 0x42930b33a81ad477fb3675b89cdeb3e6, high: 0x2b70369e16febaa011af923d79fdef7c, }, u256 { - low: 0xb5d32b1666194cb1d71037d1b83e90ec, high: 0x28045af9ab0c1681c8f8e3d0d3290a4c + low: 0x2648ee38e07405eb215663abc1f254b8, high: 0x522c9d6d7ab792809e469e6ec62b2c8, }, u256 { - low: 0xd3fbf47a7e5b1e7f9ca5499d004ae545, high: 0x2ebce25e3e70f16a55485822de1b372a + low: 0x85940927468ff53d864a7a50b48d73f1, high: 0xdc5dba1d977e9933c49d76fcfc6e625, }, u256 { - low: 0x101fbcccded733e8b421eaeb534097ca, high: 0xe30658b9148624feac1c14f30e9c5cc + low: 0xd344749096fd35d0adf20806e5214606, high: 0x119d0dd09466e4726b5f5241f323ca74, }, u256 { - low: 0x247a8333f7b0b7d2cda8056c3d15eef7, high: 0x5d67b7072ae22448b0163c1cd9d2b7d + low: 0x5306f3f5151665705b7c709acb175a5a, high: 0x2592a1c37c879b741d878f9f9cdf5a86, }, ] .span(); let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 0 + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 0, ); assert!( res == G1Point { x: u384 { - limb0: 0x6232f76d1d011305ffad839e, - limb1: 0xdc9c1626e33ca312f6866ef5, - limb2: 0x1afdce8cb49cbd06, - limb3: 0x0 + limb0: 0x2f70823545198bb774dfb985, + limb1: 0x363546466fd4c023b72f21aa, + limb2: 0x2c5558596fa0905f, + limb3: 0x0, }, y: u384 { - limb0: 0x676a2616d0a5cc8cd3f97dfe, - limb1: 0xc365f945c60d9e98eba4b47f, - limb2: 0x7cd8fbe21814343, - limb3: 0x0 - } - } + limb0: 0x50096f8b9d63643890d31c51, + limb1: 0x9e514bcb711d8e6edd2033e2, + limb2: 0x1436325ffa32a10, + limb3: 0x0, + }, + }, ); } #[test] - fn test_msm_BN254_7P() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - ] - .span(), - array![ - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - ] - .span() - ), - ( - array![ - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - ] - .span(), - array![ - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - ] - .span() - ), - ( - array![ - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - ] - .span(), - array![ - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - ] - .span(), - array![ - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - ] - .span() - ), - ] - .span() - ); + fn test_msm_BN254_12P() { + let scalars_digits_decompositions = Option::None; let msm_hint = MSMHint { Q_low: G1Point { x: u384 { - limb0: 0x59af36565c1efac9b6b3b0c8, - limb1: 0xd202a7544a4c21525a696bed, - limb2: 0xc99ad9fc303c7ec, - limb3: 0x0 + limb0: 0xc3a31070a7d9ebd554d3a065, + limb1: 0xb9109b898885a0dc6fad5069, + limb2: 0x1078e59157543192, + limb3: 0x0, }, y: u384 { - limb0: 0xc1f5da0e1daf88157d248955, - limb1: 0xb2196d0de28f51e498832523, - limb2: 0x24cb8cc0be5e246, - limb3: 0x0 - } + limb0: 0x2f84df2e544b7106b7650ad5, + limb1: 0xfbe6bc68eb7b3ce9d0921d3a, + limb2: 0x1b6201f18ce1978b, + limb3: 0x0, + }, }, Q_high: G1Point { x: u384 { - limb0: 0x5261f134bed032ad816ad94e, - limb1: 0x42f3df4dce48e9f74f28283e, - limb2: 0x2a37fb1342d4c8c5, - limb3: 0x0 + limb0: 0x69e5b9c91819ad621d92f585, + limb1: 0x1f4dce0d4ef79a593fca55f5, + limb2: 0x2ab6b6fdf389efe1, + limb3: 0x0, }, y: u384 { - limb0: 0xa61b98075efa711a6f5fc0c9, - limb1: 0xc2b3c98a78e7b76bd071400e, - limb2: 0x133ee7851b5663a2, - limb3: 0x0 - } + limb0: 0xc5045bbf844632ca4df04976, + limb1: 0xbffb033e8ec5f6c914bf9cee, + limb2: 0x2bde1f40aae349c3, + limb3: 0x0, + }, }, Q_high_shifted: G1Point { x: u384 { - limb0: 0x2170fb18aae0c5f835df0094, - limb1: 0x22ba17b351b75419720d3396, - limb2: 0x1b337f538039bc4e, - limb3: 0x0 + limb0: 0x160c2a4f26366c842c4fbc30, + limb1: 0x721ae82df8c46c7080ac4d92, + limb2: 0x21f7cd237e1c9b32, + limb3: 0x0, }, y: u384 { - limb0: 0xc0e1d5564f878e326178487c, - limb1: 0x640055294748d0d051cf318, - limb2: 0x25aaf44e4b931c9a, - limb3: 0x0 - } + limb0: 0x2fd1353df407c3cde1804d5b, + limb1: 0x1e4a97ad0ea11589cde85f6a, + limb2: 0xf143fae3f3561cd, + limb3: 0x0, + }, }, - SumDlogDivLow: FunctionFelt { + RLCSumDlogDiv: FunctionFelt { a_num: array![ u384 { - limb0: 0xfe3883f24428f18f1aaa2306, - limb1: 0xd6ebfd26659da90923314f81, - limb2: 0xadb2e0fc8c619b6, - limb3: 0x0 - }, - u384 { - limb0: 0x1af6bf7f9ffc01a0578e5e2e, - limb1: 0xed4c0701200bbe492c45da4c, - limb2: 0xa87bdfe676cf864, - limb3: 0x0 - }, - u384 { - limb0: 0xa6e7c14ff2202e29cc8989d, - limb1: 0x5b81ef2657e1ad1246e07e95, - limb2: 0x27d20d96045759e9, - limb3: 0x0 - }, - u384 { - limb0: 0x117e569754b550b6a07fba8e, - limb1: 0xbd2322dc135e7be97052d6bd, - limb2: 0x1d109d3adbac4ccf, - limb3: 0x0 - }, - u384 { - limb0: 0x35fcae1203b1e723e520185c, - limb1: 0xfeb0b7289bbaa82727c1b355, - limb2: 0x24bbda0ac72d97d0, - limb3: 0x0 - }, - u384 { - limb0: 0x994a612a9b56b41d25324c60, - limb1: 0xb85045b68181585c2d9fac4a, - limb2: 0x30644e72e131a029, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x5cd82182743ce1c47ca0e5a8, - limb1: 0x2c0838425d6141693c20c802, - limb2: 0x567292bd9702b43, - limb3: 0x0 + limb0: 0x55241f714dcf4b67b987f4a5, + limb1: 0x352f234e9d8b499e8c3ef1f7, + limb2: 0x7c10656dacdfdc, + limb3: 0x0, }, u384 { - limb0: 0x79b135e4745f45d724f89971, - limb1: 0x373d4f853d25b936cfbd442f, - limb2: 0x2814f4414ac26806, - limb3: 0x0 + limb0: 0xe3c3d4f88d7340be46893f23, + limb1: 0xa48cc2c977b65663c8b9bcb6, + limb2: 0x14a9ed07232efcdc, + limb3: 0x0, }, u384 { - limb0: 0x2a2bdca7f41abd0fa806b065, - limb1: 0x30eec04e0cfa17d4dfc9910f, - limb2: 0xfdfef40c2840c9b, - limb3: 0x0 + limb0: 0x8e305783d377c71e4f2c65cf, + limb1: 0x644c4b418a8a765dc4ff9010, + limb2: 0x13007725fb52dd24, + limb3: 0x0, }, u384 { - limb0: 0x4027b0b6a16e246f70f2c9b5, - limb1: 0x99a1b2ea1f822fdff7779d54, - limb2: 0x29ef6ef34ba113b, - limb3: 0x0 + limb0: 0x5084f2be8e02844c64d14eca, + limb1: 0x942a4f1e84babf96f932e96f, + limb2: 0x6a73478d723677b, + limb3: 0x0, }, u384 { - limb0: 0xb79f170993a4f18be8d550b4, - limb1: 0xab3b75708ceda38cf984cf68, - limb2: 0x17251f8b081ced46, - limb3: 0x0 + limb0: 0xe50e5e320470c1519ea99381, + limb1: 0x2bfd243b7f459407f74aaf90, + limb2: 0x1256dfb34b1ae64e, + limb3: 0x0, }, u384 { - limb0: 0x4d09a6c40bc97875e944b9a7, - limb1: 0x9b55adde90af06f3ee172366, - limb2: 0x9798f27d6b82290, - limb3: 0x0 + limb0: 0xfa67ca1dbb377f015e575470, + limb1: 0x8f619e72ce7936e06faf4595, + limb2: 0x1b60d344801f66e8, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0x8abf69f18e20d4badc7e38a8, - limb1: 0x5aa9e940cf70534f68409f8c, - limb2: 0x1534feef2acd05fc, - limb3: 0x0 + limb0: 0x9fdc2f13c1d72b9bc0ced27a, + limb1: 0x1222c3262674c047841c47cb, + limb2: 0x15f0f7b57fe1f9b8, + limb3: 0x0, }, u384 { - limb0: 0xd91678c4a3f7b76d4d690bac, - limb1: 0xfde8a28f8959bb4e15970bd2, - limb2: 0x19359ab743a9eaa4, - limb3: 0x0 + limb0: 0x586efd7b0ee7bd12e92f856b, + limb1: 0x19b80a9e7b3184825af36202, + limb2: 0x234967cb57696280, + limb3: 0x0, }, u384 { - limb0: 0xf9eb4960657168ac3fb2ce02, - limb1: 0x5006df39fd4aab26770cbf2d, - limb2: 0x1ba9a7b2fd06eef5, - limb3: 0x0 + limb0: 0x1bf4dfbe24aae54e980f4d68, + limb1: 0x39161a15c21266ea9c52df43, + limb2: 0x2f1370df8a086d46, + limb3: 0x0, }, u384 { - limb0: 0xe58b2dcc3242cf76e113ad15, - limb1: 0xdd51d23e28735c85c62faad, - limb2: 0x291b4e9d030c194b, - limb3: 0x0 + limb0: 0xa7a7a862134e67b40a885917, + limb1: 0x56f445ba65d7c0cd6ad5c798, + limb2: 0x11c64bd6e07968c2, + limb3: 0x0, }, u384 { - limb0: 0xee24b482aa9880a4374ef6e7, - limb1: 0x49e6afe5626d3bd5701b047f, - limb2: 0xd0eb5c204a1b2bc, - limb3: 0x0 + limb0: 0xbd8de30071aaa143c12554d5, + limb1: 0xa80fa261d0050d84bae7d229, + limb2: 0x68b944a2df2140a, + limb3: 0x0, }, u384 { - limb0: 0xea1d0387324ecb4626010ae, - limb1: 0x5354edebc83832f7a44c8f4b, - limb2: 0x2a226aaef399b693, - limb3: 0x0 + limb0: 0x9362af65372af80e9ad538a, + limb1: 0x16c54fc05b7e70c1d36aa5cd, + limb2: 0x11a2259d06557a0c, + limb3: 0x0, }, u384 { - limb0: 0x83ebd0b21e5bd56c380684a1, - limb1: 0xf3f84363a1301379089db7ee, - limb2: 0x266f99aceb2fdf45, - limb3: 0x0 + limb0: 0xfa525745f06b7c814d223ba3, + limb1: 0x51af74f6df1603ac69c9c776, + limb2: 0x25da23922ac82f4a, + limb3: 0x0, }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), - b_den: array![ - u384 { - limb0: 0x168864875cb6a54d75e2b0f8, - limb1: 0x8418a8c71823c43bb4625807, - limb2: 0x10357b838c5081c9, - limb3: 0x0 - }, - u384 { - limb0: 0x9c300c92e4dcb957bdefd1c5, - limb1: 0x35176322b46e7ae94034f76b, - limb2: 0x17763fde1de3f7bf, - limb3: 0x0 - }, + a_den: array![ u384 { - limb0: 0x7e8395f7dc50372ef814112f, - limb1: 0x92cc40ea26ee477e9f5cb32d, - limb2: 0x2f9fcdc2478c25d1, - limb3: 0x0 + limb0: 0xc67504fbbc340097b8394cf5, + limb1: 0x82aee884d20cfd395f7af1ac, + limb2: 0x1a49ea3de57fb294, + limb3: 0x0, }, u384 { - limb0: 0x1d4f33a658874f12cf7942c7, - limb1: 0xf8ed5100bbe7d10922879fff, - limb2: 0xd440df9779e5ef5, - limb3: 0x0 + limb0: 0xc895e2ab6e6665334d105f5e, + limb1: 0x99dc7780d758adaaed4b0e20, + limb2: 0xad16d8b5f039ed5, + limb3: 0x0, }, u384 { - limb0: 0xcfaae5e6b70d024d2e7e90ff, - limb1: 0xc84f2469e0ebf3228d48dd46, - limb2: 0xcbbb5fca0b5ef86, - limb3: 0x0 + limb0: 0xce951c84a2c59c31fca68bfa, + limb1: 0x2d511a61b60939228c26beb0, + limb2: 0x235d0cb882b94b61, + limb3: 0x0, }, u384 { - limb0: 0x1148d0f41777267163d4dd5a, - limb1: 0x2efc9e9bf072cb0aa0efb42, - limb2: 0x2c4c9cb846ac744d, - limb3: 0x0 + limb0: 0xeaa671d78704e16def64c8e6, + limb1: 0x4caf023bd4433ed509ac332e, + limb2: 0x173cef661af54813, + limb3: 0x0, }, u384 { - limb0: 0x4027b0b6a16e246f70f2c9b8, - limb1: 0x99a1b2ea1f822fdff7779d54, - limb2: 0x29ef6ef34ba113b, - limb3: 0x0 + limb0: 0xce0fb29033f877a30f174fa9, + limb1: 0x25a166893914f754bbb29187, + limb2: 0xed6178bf1f72e22, + limb3: 0x0, }, u384 { - limb0: 0xb79f170993a4f18be8d550b4, - limb1: 0xab3b75708ceda38cf984cf68, - limb2: 0x17251f8b081ced46, - limb3: 0x0 + limb0: 0xcbc4cefacfddca564fceb291, + limb1: 0x1e0962b94fd4a677767fc12, + limb2: 0x121a7d5b6f82f037, + limb3: 0x0, }, u384 { - limb0: 0x4d09a6c40bc97875e944b9a7, - limb1: 0x9b55adde90af06f3ee172366, - limb2: 0x9798f27d6b82290, - limb3: 0x0 + limb0: 0x1781ad0688c7abe6f53f5ed4, + limb1: 0x4ad9e5cc07995f8f31347398, + limb2: 0x4a10e95763dd144, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ u384 { - limb0: 0xad4dd40e10bac9b63f2c51bf, - limb1: 0xb5eaf68d4bd686d541a9b9a, - limb2: 0x18875f83d55f84ae, - limb3: 0x0 + limb0: 0xc93abaee99a61f53b85112d, + limb1: 0xde86e5d2eb5352af5c27fed1, + limb2: 0x2ef07047b13225e0, + limb3: 0x0, }, u384 { - limb0: 0x354512a9236c3c21b8212c91, - limb1: 0x4b7b3fe270a9ca68697335a1, - limb2: 0x35a7d0cff8d026a, - limb3: 0x0 + limb0: 0xc6bfcd138d3b44e28bd49711, + limb1: 0xb68f5efcd724352b0b8bf79f, + limb2: 0x8b7ed7562c96d56, + limb3: 0x0, }, u384 { - limb0: 0x8cc0ae932df0710f7e0cf3bd, - limb1: 0xc900ca352370bd4586487679, - limb2: 0x272599e4aecbe71b, - limb3: 0x0 + limb0: 0x69fd548b8bd52650431e3525, + limb1: 0x778815b21c7340ee9d54870f, + limb2: 0x56816cfeac1235f, + limb3: 0x0, }, u384 { - limb0: 0xc32f183292b0ffc97d596ed5, - limb1: 0x22fe0fc31c82901ac0e39d97, - limb2: 0x12fdd156a17d933, - limb3: 0x0 + limb0: 0xf45da46dd47f1587bdaedb08, + limb1: 0x55df8ab732c7dba27f8f2a6, + limb2: 0x18ff64bee85b2ed9, + limb3: 0x0, }, u384 { - limb0: 0xe5ad7bad74fc37b5d48050e2, - limb1: 0x5149e4c293deb2619f451bac, - limb2: 0x21cb0ddc2e53eeb7, - limb3: 0x0 + limb0: 0x2d90893ad2cbaaccbe7c1937, + limb1: 0x2704fa7348ea70ad392191d8, + limb2: 0x8448f6d3cbc7cdb, + limb3: 0x0, }, u384 { - limb0: 0xdbfad380e9ecde827d3e6ba7, - limb1: 0xb85045b68181585d66e7b643, - limb2: 0x30644e72e131a029, - limb3: 0x0 + limb0: 0x5c427025e72f64a5cecb9cbd, + limb1: 0xe809cf5486134c1f896c919, + limb2: 0x29921854df4f78fc, + limb3: 0x0, }, + u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - a_den: array![ + b_num: array![ u384 { - limb0: 0xc29061baeb4ee9fe96cb24be, - limb1: 0xe9ef62481af016288e5f9cf1, - limb2: 0x13281f43ab947812, - limb3: 0x0 + limb0: 0xea677ad22602654bd48b2083, + limb1: 0x591e17981959d4ea70a3051e, + limb2: 0x277621d45ad9bd17, + limb3: 0x0, }, u384 { - limb0: 0x3679c7e52679f4467653080b, - limb1: 0x6d0e1eef62e9293e658cec20, - limb2: 0x2f0520d9317487b, - limb3: 0x0 + limb0: 0x3541d037da592cb0633c4b3f, + limb1: 0x40ccfa7849b39ce2462f0ef6, + limb2: 0x18faa270f504c52e, + limb3: 0x0, }, u384 { - limb0: 0x9f2fc5ba7a60e81fb7d0338c, - limb1: 0xfb747190fa28950cbdb1961b, - limb2: 0x2d06156a98d362c1, - limb3: 0x0 + limb0: 0x94a88588ce0bcb9a7a644a05, + limb1: 0xaf1ab0ae1aa5f256f574e034, + limb2: 0x1b1729055acaeb25, + limb3: 0x0, }, u384 { - limb0: 0xb748f4eec2fe6e4a41b8e865, - limb1: 0xef26cc91e5891a19a2efcdbf, - limb2: 0x303f50dabfd83244, - limb3: 0x0 + limb0: 0x79c52bf10ea2d64010a5cffc, + limb1: 0x2cc7d14b334eb968cdb6850f, + limb2: 0xefb17a093402b71, + limb3: 0x0, }, u384 { - limb0: 0x28aa860c38a9d6455b7c8acc, - limb1: 0xd56d972d4332b6d8ddfd27be, - limb2: 0x181609f2fdd464c2, - limb3: 0x0 + limb0: 0x1b64204962a2c40e048e30f4, + limb1: 0xa6581c0cca342943faef6737, + limb2: 0x1e8e08fa23f54b24, + limb3: 0x0, }, u384 { - limb0: 0xbcc8b672e538cca8f70a8e68, - limb1: 0xe2b4bb9b8e3396ac90d9d1a6, - limb2: 0x1c3f90273818c1e1, - limb3: 0x0 + limb0: 0x29decb7c8572ce95c5687778, + limb1: 0xe4fdc9cd2401c4f10fa8c1e1, + limb2: 0x2db960118d650536, + limb3: 0x0, + }, + u384 { + limb0: 0xd0642ba0896dcd947311f140, + limb1: 0xe36aa96d903c1475d7db5fbb, + limb2: 0x1efa122f9661807, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0x9d634ffaf4a5114aace554cd, - limb1: 0x17fce2bb6f76fe1dc7351819, - limb2: 0x2371f1826ce6781b, - limb3: 0x0 + limb0: 0x7687868fa8dcf2291421e3c5, + limb1: 0x708cdfe67eb3f9699b3b53d5, + limb2: 0x36a2f93d58844b4, + limb3: 0x0, }, u384 { - limb0: 0x8ec36b5cc7ef7a7a90e4a088, - limb1: 0x47f34c4d2cbb7bc869e61f1a, - limb2: 0x17789ed13b780103, - limb3: 0x0 + limb0: 0x643ade0618ff65144dd23f21, + limb1: 0xaa0b6a69961737aca0cabf27, + limb2: 0x282f14bd7b1d67d2, + limb3: 0x0, }, u384 { - limb0: 0x97cf0d6087b62e9b39ebd7a7, - limb1: 0xb18f8b9d5a6e5471ed44f6bd, - limb2: 0x2d609e0bb5f5dbaf, - limb3: 0x0 + limb0: 0xe97b347a6716edb68e66c0fd, + limb1: 0xc94fee89438058bc8ad4b344, + limb2: 0x1fa74a628d5542ab, + limb3: 0x0, }, u384 { - limb0: 0x89ad485dfb57b6766edc5312, - limb1: 0x5d4bcb5770ca9efeb7b7a509, - limb2: 0x733ee8d4a4acc04, - limb3: 0x0 + limb0: 0xfb7cc2a57271d736931f9232, + limb1: 0x8c03d59b0b05ad7a4cab268a, + limb2: 0x203801a8f7c8cf12, + limb3: 0x0, }, u384 { - limb0: 0x3303acd1f83cdbb8cc52c80c, - limb1: 0xf0b16ba3e7502a425dbfc660, - limb2: 0x19b7e952f2f24384, - limb3: 0x0 + limb0: 0xc19f9febb60658d15d1346ea, + limb1: 0x2120b309d4784764147de5f4, + limb2: 0x217855d177178011, + limb3: 0x0, }, u384 { - limb0: 0x4765b3f33b24b9302f22455d, - limb1: 0xef0c38a446e758dbd0adf05f, - limb2: 0xb5951a14073dc2a, - limb3: 0x0 + limb0: 0x89ef90aa0c60b3a26ee5fda8, + limb1: 0x3112808b52d0db2c57b9b936, + limb2: 0x2f8fce05510a7670, + limb3: 0x0, }, u384 { - limb0: 0xe9f5c961cdcc681788c2b41a, - limb1: 0xc2383cd260ac865ffb1f061a, - limb2: 0x26a733f85f9116df, - limb3: 0x0 + limb0: 0xea275cd9804fe2004fbca2c0, + limb1: 0x736dd7b9ee248045aab98c3a, + limb2: 0x23ea925a5a65e2a7, + limb3: 0x0, }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), b_den: array![ u384 { - limb0: 0xdf3f5aa385cc31e4ebe470f3, - limb1: 0x57de121cf4eea1c139d6c43, - limb2: 0x9140f58218bc80f, - limb3: 0x0 - }, - u384 { - limb0: 0xa36d57af736ddcd362f91821, - limb1: 0x472a5cce28bb7bbb30a6c460, - limb2: 0x8d0f628b945d972, - limb3: 0x0 + limb0: 0xeaed4465f87b75b0502ee998, + limb1: 0xcfbc73d7f4a59f4e86ef6a74, + limb2: 0x1e797046cf4d7793, + limb3: 0x0, }, u384 { - limb0: 0xcabbc14f6e1a0317676a016, - limb1: 0x81bcc945eb770e6b0a11ed30, - limb2: 0x2649a35a0816e7f2, - limb3: 0x0 + limb0: 0x59c1a8024b332f99e7311e1a, + limb1: 0xcd956682860a0900c7e12a62, + limb2: 0x207448a21d0adc80, + limb3: 0x0, }, u384 { - limb0: 0xaf15e0df7fe89098d27ee618, - limb1: 0x8e72f6da47075b5cb0aac67c, - limb2: 0x12b9267b47882e64, - limb3: 0x0 + limb0: 0x9adbc073700fbc6844f9a960, + limb1: 0x1752c3b81f18faac757166ef, + limb2: 0x94e8943c5c8a1d0, + limb3: 0x0, }, u384 { - limb0: 0x48078f7c9456eaffb04bab28, - limb1: 0x35069ec0aafff56b6802f8c9, - limb2: 0x1ace2173ab62d69a, - limb3: 0x0 + limb0: 0x1df68ff5152218caadeaaa60, + limb1: 0xb06ba981cd55615ae4fe20a8, + limb2: 0x2f9c69fd552deaa4, + limb3: 0x0, }, u384 { - limb0: 0x4a653f8b1ca35ecebf5e436, - limb1: 0x32f218f6a1c0a857413c35ed, - limb2: 0x20fc28fa7eba6814, - limb3: 0x0 + limb0: 0xca532fcece2f4005a1d95112, + limb1: 0x5270656601163b4b88e15826, + limb2: 0x6ef65bc53b78912, + limb3: 0x0, }, u384 { - limb0: 0xb748f4eec2fe6e4a41b8e868, - limb1: 0xef26cc91e5891a19a2efcdbf, - limb2: 0x303f50dabfd83244, - limb3: 0x0 + limb0: 0xc971bee7d63e6f1e1395a666, + limb1: 0x7aa2972df37fbffb5add4857, + limb2: 0x29483657f0107bdc, + limb3: 0x0, }, u384 { - limb0: 0x28aa860c38a9d6455b7c8acc, - limb1: 0xd56d972d4332b6d8ddfd27be, - limb2: 0x181609f2fdd464c2, - limb3: 0x0 + limb0: 0x312b78eb215be522cf22e562, + limb1: 0x2d3cb39feb0f5d829d498df7, + limb2: 0x25201b267daebbe0, + limb3: 0x0, }, u384 { - limb0: 0xbcc8b672e538cca8f70a8e68, - limb1: 0xe2b4bb9b8e3396ac90d9d1a6, - limb2: 0x1c3f90273818c1e1, - limb3: 0x0 + limb0: 0xba7555f53c65f93e382f8b5b, + limb1: 0x984546de768ae64a09a64e46, + limb2: 0xa7a7d0a61f8bf47, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x6637887ab23e5bacbc130e01, - limb1: 0x73282972f2c50f6199e2d0c0, - limb2: 0x25f3e5a2e16c8654, - limb3: 0x0 - }, - u384 { - limb0: 0x8bbd8e60fc1a1859e888a509, - limb1: 0xdc2822db40c0ac2e47c7fadc, - limb2: 0x183227397098d014, - limb3: 0x0 - } - ] - .span(), - a_den: array![ u384 { - limb0: 0xa307fabb183fd54012b715e0, - limb1: 0xf164d6ceecb59472cb6de7b1, - limb2: 0x24d418a8076319eb, - limb3: 0x0 + limb0: 0x20043635778f98fdf34c77c4, + limb1: 0x258eb3221a69e9e89a0be2f2, + limb2: 0x2c4245bb97df383b, + limb3: 0x0, }, u384 { - limb0: 0x5d10a8cd0e901f87f9b020ac, - limb1: 0xaf2946be30272aa6dcd794e, - limb2: 0x1b5d227eff54bb40, - limb3: 0x0 + limb0: 0x5579aaa92c471ed7be99fe43, + limb1: 0xb17226e25cf3225b093208c6, + limb2: 0x14d9530536813b62, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0x11b0c494e9d764dc9a15a953, - limb1: 0xf6af9f1416fbfed542cf54e3, - limb2: 0x1632c6e739337de1, - limb3: 0x0 + limb0: 0x18c903ddeed68a5ec397a7b7, + limb1: 0x7e00446841d61b22a51001a3, + limb2: 0x1926019ea7e07218, + limb3: 0x0, }, u384 { - limb0: 0xe6f40d78a158ef8f856b0c36, - limb1: 0xd06232a193455f4c1921f32f, - limb2: 0x28eccd420d507aa3, - limb3: 0x0 + limb0: 0x4f7168c4059e4548c748e2b6, + limb1: 0x2b9e4e56b1e38732b6f0ad28, + limb2: 0x21859bbd18fee3e8, + limb3: 0x0, }, u384 { - limb0: 0x5605c50eab135aad7ad44cf6, - limb1: 0xff93ab12b510ae556f25070d, - limb2: 0xe746eb35a9531f4, - limb3: 0x0 - } - ] - .span(), - b_den: array![ - u384 { - limb0: 0x18345b16d07e6792872b4712, - limb1: 0x638df8ffc31e0c9d3346e1f2, - limb2: 0xdb3ad1253c60d70, - limb3: 0x0 + limb0: 0xade10fe2c9223c13fe8710ce, + limb1: 0x32696124f2942e7958160d38, + limb2: 0x2155c2e8c64c4e00, + limb3: 0x0, }, u384 { - limb0: 0xaec02fd9ef8fd281149364bd, - limb1: 0x6887778d2785ffa1b1e70159, - limb2: 0x21b3190a1ccc9196, - limb3: 0x0 + limb0: 0xf45da46dd47f1587bdaedb0b, + limb1: 0x55df8ab732c7dba27f8f2a6, + limb2: 0x18ff64bee85b2ed9, + limb3: 0x0, }, - u384 { limb0: 0x3, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { - limb0: 0xa307fabb183fd54012b715e0, - limb1: 0xf164d6ceecb59472cb6de7b1, - limb2: 0x24d418a8076319eb, - limb3: 0x0 + limb0: 0x2d90893ad2cbaaccbe7c1937, + limb1: 0x2704fa7348ea70ad392191d8, + limb2: 0x8448f6d3cbc7cdb, + limb3: 0x0, }, u384 { - limb0: 0x5d10a8cd0e901f87f9b020ac, - limb1: 0xaf2946be30272aa6dcd794e, - limb2: 0x1b5d227eff54bb40, - limb3: 0x0 + limb0: 0x5c427025e72f64a5cecb9cbd, + limb1: 0xe809cf5486134c1f896c919, + limb2: 0x29921854df4f78fc, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] - .span() + .span(), }, }; let derive_point_from_x_hint = DerivePointFromXHint { y_last_attempt: u384 { - limb0: 0xed205c8318c1e44b2d88f76b, - limb1: 0x3d14b3e819a085c0c6b6faa4, - limb2: 0x244a376ef41fe6a, - limb3: 0x0 + limb0: 0x792dbdaa2d584aeb48b437da, + limb1: 0xaa1be30232f57c8193dd2601, + limb2: 0x678e6a64c106c81, + limb3: 0x0, }, g_rhs_sqrt: array![ u384 { - limb0: 0xa2d9069a346cdece39743a3e, - limb1: 0xf1d0e069c4f786f7af38c95, - limb2: 0xa7a92c20fb674bc, - limb3: 0x0 - } + limb0: 0x970b349c842cb2ed5fa2f223, + limb1: 0x49dee76f6d6e741377b89f6b, + limb2: 0x261ef0ed6077e5e, + limb3: 0x0, + }, + u384 { + limb0: 0x24bbac76118942d6a70c05c2, + limb1: 0xb6e3c2bf241f9a2ed272a053, + limb2: 0x13ababe6aaee6ea8, + limb3: 0x0, + }, ] .span(), }; @@ -6433,12413 +2381,2916 @@ mod msm_tests { limb0: 0x5c724369afbc772d02aed58e, limb1: 0x2cd3bc838c66439a3d6160b, limb2: 0x72f26b55fb56be1, - limb3: 0x0 + limb3: 0x0, }, y: u384 { limb0: 0x772ca79c580e121ca148fe75, limb1: 0xce2f55e418ca01b3d6d1014b, limb2: 0x2884b1dc4e84e30f, - limb3: 0x0 - } + limb3: 0x0, + }, }, G1Point { x: u384 { limb0: 0x536c985db33c69f7c242e07a, limb1: 0xfc531bccffafcf1e59d91fb9, limb2: 0x2585e4f8a31664cb, - limb3: 0x0 + limb3: 0x0, }, y: u384 { limb0: 0x57fa42444057cf0c1d62ae3c, limb1: 0x4f48d341183118d68ea41313, limb2: 0x1d2d2799db056ed1, - limb3: 0x0 - } + limb3: 0x0, + }, }, G1Point { x: u384 { limb0: 0x236ca9312dad3661a37f2d6f, limb1: 0x98424c01caad7592315715d1, limb2: 0x795b9fd941b23c4, - limb3: 0x0 + limb3: 0x0, }, y: u384 { limb0: 0xc7ab5834609a54b8993ffd79, limb1: 0xe81cd490528b814ca632aace, limb2: 0x2d9ff53d3009e6f7, - limb3: 0x0 - } + limb3: 0x0, + }, }, G1Point { x: u384 { limb0: 0x163df40cafbf585ca5b2ab44, limb1: 0xb4752e4666c88dbbe23783a0, limb2: 0x1a801462ac9cb657, - limb3: 0x0 + limb3: 0x0, }, y: u384 { limb0: 0xac9b557d7ca8625d957263c6, limb1: 0xdc6f75fa8339a78b998ae54a, limb2: 0x28683293b6494d9f, - limb3: 0x0 - } + limb3: 0x0, + }, }, G1Point { x: u384 { limb0: 0x5c4f5dca0c973b7f70bfff9, limb1: 0x188c2afab11eef5d48ecda3c, limb2: 0xc2fed35d36c49f1, - limb3: 0x0 + limb3: 0x0, }, y: u384 { limb0: 0x9d7244ea10697ca42e2e066b, limb1: 0xfe18a519c7d68770dc48dbf9, limb2: 0x149bb528db998529, - limb3: 0x0 - } + limb3: 0x0, + }, }, G1Point { x: u384 { limb0: 0xffc057151b06c496e6fdd440, limb1: 0x5a01bae0c7441f08c7af1cf9, limb2: 0x274e0e02529e6d26, - limb3: 0x0 + limb3: 0x0, }, y: u384 { limb0: 0x65ceb8977413bc9798681ecb, limb1: 0x19ffb287b45234f0c28fd1a7, limb2: 0x28dbbd2f9267be76, - limb3: 0x0 - } + limb3: 0x0, + }, + }, + G1Point { + x: u384 { + limb0: 0xcfcdbfdb2056ff1a64bf1d47, + limb1: 0xf26fe2dae9f693d9b4aab2e6, + limb2: 0x12d66ad4802d841e, + limb3: 0x0, + }, + y: u384 { + limb0: 0xe6e34ebfa2e18dce86cadbdc, + limb1: 0x7ce096238b3d4b1b8fba6a55, + limb2: 0x2e0a660b1549800c, + limb3: 0x0, + }, + }, + G1Point { + x: u384 { + limb0: 0xd2dd03b29d58d045656ecf33, + limb1: 0xeddac3cf7a123aae2180739b, + limb2: 0x215bec6e0a03c924, + limb3: 0x0, + }, + y: u384 { + limb0: 0xe5201e51828eb11589d8619f, + limb1: 0xa6563c760aa3a2c9d15af235, + limb2: 0x7ed0c9b2e7811fb, + limb3: 0x0, + }, + }, + G1Point { + x: u384 { + limb0: 0xc33ac21c67b06a9994457b4c, + limb1: 0xa9aa5573bf7a92aab85366eb, + limb2: 0x1a407281e1d92e91, + limb3: 0x0, + }, + y: u384 { + limb0: 0x5a306649d971b115d71a78b1, + limb1: 0xa70687a9b5132e26b2cfbb37, + limb2: 0x2031920af5d6c9db, + limb3: 0x0, + }, + }, + G1Point { + x: u384 { + limb0: 0x58a3cea1103f16402eb74c08, + limb1: 0xdfefcd91df2f4295ec21e03a, + limb2: 0x1150bcc09ac40007, + limb3: 0x0, + }, + y: u384 { + limb0: 0x57ed7d356f91abcef751889f, + limb1: 0x5c668cded3599c9af5a7e5fa, + limb2: 0x2ccf74197cb9bc13, + limb3: 0x0, + }, + }, + G1Point { + x: u384 { + limb0: 0x529118e291927516dfbcba2d, + limb1: 0x440af959472c61e99aac7977, + limb2: 0x218bbc79509b59ce, + limb3: 0x0, + }, + y: u384 { + limb0: 0x226044f7331ccf82af7afb39, + limb1: 0xc1953da25a89d084dcfaea76, + limb2: 0x1042fdc36b43dac3, + limb3: 0x0, + }, }, G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, ] .span(); let scalars = array![ u256 { low: 0x0, high: 0x0 }, u256 { - low: 0xb5d32b1666194cb1d71037d1b83e90ec, high: 0x28045af9ab0c1681c8f8e3d0d3290a4c + low: 0x4a84eb038d1fd9b74d2b9deb1beb3711, high: 0x154bc8ce8c25166a1ff39849b4e1357d, + }, + u256 { + low: 0x3405095c8a5006c1ec188efbd080e66e, high: 0x2305d1699a6a5f92cca74147f6be1f72, + }, + u256 { + low: 0x1775336d71eacd0549a3e80e966e1277, high: 0x144a7edf6288e1a5cc45782198a6416d, + }, + u256 { + low: 0x2f1205544a5308cc3dfabc08935ddd72, high: 0x21c38572fcd81b5d24bace4307bf326, + }, + u256 { + low: 0x42930b33a81ad477fb3675b89cdeb3e6, high: 0x2b70369e16febaa011af923d79fdef7c, + }, + u256 { + low: 0x2648ee38e07405eb215663abc1f254b8, high: 0x522c9d6d7ab792809e469e6ec62b2c8, }, u256 { - low: 0xd3fbf47a7e5b1e7f9ca5499d004ae545, high: 0x2ebce25e3e70f16a55485822de1b372a + low: 0x85940927468ff53d864a7a50b48d73f1, high: 0xdc5dba1d977e9933c49d76fcfc6e625, }, u256 { - low: 0x101fbcccded733e8b421eaeb534097ca, high: 0xe30658b9148624feac1c14f30e9c5cc + low: 0xd344749096fd35d0adf20806e5214606, high: 0x119d0dd09466e4726b5f5241f323ca74, }, u256 { - low: 0x247a8333f7b0b7d2cda8056c3d15eef7, high: 0x5d67b7072ae22448b0163c1cd9d2b7d + low: 0x5306f3f5151665705b7c709acb175a5a, high: 0x2592a1c37c879b741d878f9f9cdf5a86, }, u256 { - low: 0xe005b86051ef1922fe43c49e149818d1, high: 0x1f507980eece328bff7b118e820865d6 + low: 0x30bcab0ed857010255d44936a1515607, high: 0x1158af9fbb42e0b20426465e3e37952d, }, u256 { - low: 0x4a84eb038d1fd9b74d2b9deb1beb3711, high: 0x154bc8ce8c25166a1ff39849b4e1357d + low: 0x5f3f563838701a14b490b6081dfc8352, high: 0x1b45bb86552116dd2ba4b180cb69ca38, }, ] .span(); let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 0 + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 0, ); assert!( res == G1Point { x: u384 { - limb0: 0x4815f311ce035dca5ba5d4b3, - limb1: 0x355cbad6e3f995225dcddafe, - limb2: 0xd4e1a60727a26ee, - limb3: 0x0 + limb0: 0x5c3a06447a0996b0a92f9931, + limb1: 0xbe6a2eedc8ef87e71e9ec66f, + limb2: 0x226eea38486e086b, + limb3: 0x0, }, y: u384 { - limb0: 0x69a047d3e4390978eaec4be8, - limb1: 0x8b6c81c3b87dbcd0eabbe064, - limb2: 0x133e0b36d4bd3758, - limb3: 0x0 - } - } + limb0: 0xc880fabdc7f0d4cc409b1a40, + limb1: 0x14008cf49435dbd34779e8, + limb2: 0x2fd9b0fb62c9320e, + limb3: 0x0, + }, + }, ); } #[test] - fn test_msm_BN254_8P() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - ] - .span(), - array![ - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - ] - .span() - ), - ( - array![ - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - ] - .span(), - array![ - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - ] - .span(), - array![ - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - ] - .span(), - array![ - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - ] - .span() - ), - ( - array![ - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - ] - .span() - ), + fn test_msm_BLS12_381_1P() { + let scalars_digits_decompositions = Option::None; + let msm_hint = MSMHint { + Q_low: G1Point { + x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + }, + Q_high: G1Point { + x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + }, + Q_high_shifted: G1Point { + x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + }, + RLCSumDlogDiv: FunctionFelt { + a_num: array![ + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + ] + .span(), + a_den: array![ + u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + ] + .span(), + b_num: array![ + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + ] + .span(), + b_den: array![ + u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + ] + .span(), + }, + }; + let derive_point_from_x_hint = DerivePointFromXHint { + y_last_attempt: u384 { + limb0: 0x64c9ef86686ed7cb0fa42251, + limb1: 0x17c282e8624e1788ff8fbc5b, + limb2: 0x712b5be5bb66eb8f72af3c9c, + limb3: 0xc182b0f0e8d6cf017feeb4d, + }, + g_rhs_sqrt: array![ + u384 { + limb0: 0x5c35d2ca01541a34fb66d844, + limb1: 0xda7b85c12db291e5c2c802b2, + limb2: 0x5987ec0b8e681de8e6dd0e3c, + limb3: 0x1d4ef28e7e9c0cae8144b52, + }, ] - .span() + .span(), + }; + let points = array![ + G1Point { + x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + }, + ] + .span(); + let scalars = array![u256 { low: 0x0, high: 0x0 }].span(); + + let res = msm_g1( + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 1, + ); + assert!( + res == G1Point { + x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + }, + ); + } + + + #[test] + fn test_msm_BLS12_381_2P() { + let scalars_digits_decompositions = Option::None; + let msm_hint = MSMHint { + Q_low: G1Point { + x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + }, + Q_high: G1Point { + x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + }, + Q_high_shifted: G1Point { + x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + }, + RLCSumDlogDiv: FunctionFelt { + a_num: array![ + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + ] + .span(), + a_den: array![ + u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + ] + .span(), + b_num: array![ + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + ] + .span(), + b_den: array![ + u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + ] + .span(), + }, + }; + let derive_point_from_x_hint = DerivePointFromXHint { + y_last_attempt: u384 { + limb0: 0xa9125be5f17f34ce6de5896b, + limb1: 0x77ff67ddaf6b61c4088ee57a, + limb2: 0xb4940789dbaf29c60e3ae417, + limb3: 0xbab38248ecf0eb99f06ac59, + }, + g_rhs_sqrt: array![].span(), + }; + let points = array![ + G1Point { + x: u384 { + limb0: 0xe4f817e54aede0613c17035c, + limb1: 0xdff1f15010392a6da1f95a6, + limb2: 0xbed78d3d341e911d49f15454, + limb3: 0x18154782ce0913b21588066d, + }, + y: u384 { + limb0: 0x3d77d61326ef5a9a5a681757, + limb1: 0xd3070afd4f0e121de7fcee60, + limb2: 0xdf9ef4088763fe611fb85858, + limb3: 0x11a612bdd0bc09562856a70, + }, + }, + G1Point { + x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + }, + ] + .span(); + let scalars = array![ + u256 { low: 0x0, high: 0x0 }, + u256 { + low: 0xb4862b21fb97d43588561712e8e5216a, high: 0x12cfa194e6f4590b9a164106cf6a659e, + }, + ] + .span(); + + let res = msm_g1( + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 1, ); + assert!( + res == G1Point { + x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + }, + ); + } + + + #[test] + fn test_msm_BLS12_381_3P() { + let scalars_digits_decompositions = Option::None; let msm_hint = MSMHint { Q_low: G1Point { x: u384 { - limb0: 0x418894d3edbedaff744a9ad6, - limb1: 0x5181f9f97920dc2014bcbc38, - limb2: 0x2c070c9e867eb4c8, - limb3: 0x0 + limb0: 0xf6a31a9a41fd0378150dc360, + limb1: 0x7a355df87079a4cf4c78fd36, + limb2: 0xbd92b81f9f87a14ded17256e, + limb3: 0x1259b26908470ad4f6be037c, }, y: u384 { - limb0: 0xc5da7e622da34792dd1b61c4, - limb1: 0x5006d4491a49af5a8a57827a, - limb2: 0x16312b08c4f0ad6, - limb3: 0x0 - } + limb0: 0xfbe2abbd7e05b561703438fe, + limb1: 0x892d1cc404bcc0c000d206cf, + limb2: 0x962b60138682dd48428b2a8d, + limb3: 0xa68b20ba71d8fde199d485b, + }, }, Q_high: G1Point { x: u384 { - limb0: 0xdc7831ec22d1ba4b8631d49c, - limb1: 0x37fa415a673376abcbee5e2f, - limb2: 0x1cb8180a67487e32, - limb3: 0x0 + limb0: 0x7c866be61fbaed5ef7d1122e, + limb1: 0x7fed89acb87ce49d38175a6f, + limb2: 0x30dbb6ee5876fa6873045668, + limb3: 0x60c4285948cc11859881060, }, y: u384 { - limb0: 0xc03c295c32d7e9f2f692e8cb, - limb1: 0xb0f08526f9d1a241315c14a4, - limb2: 0x11172da38b444b14, - limb3: 0x0 - } + limb0: 0x5a931aaa036da6ee08c49738, + limb1: 0x1c92b3a560ce474174cfa275, + limb2: 0xa4f783dad6c9da34040c6553, + limb3: 0x8d9752128e5b2be6254e2b, + }, }, Q_high_shifted: G1Point { x: u384 { - limb0: 0x2bf3dbbd84cad39c035c3461, - limb1: 0x190df0cefd9bd0c0dd050f79, - limb2: 0x1208cf8e031d7589, - limb3: 0x0 + limb0: 0x663acbe46ab1edf9e0302ddb, + limb1: 0x133eafb6b82660d39354a91b, + limb2: 0xec9146f8b18f4ccfa8f938e, + limb3: 0x1127139158d2558af3ede6c1, }, y: u384 { - limb0: 0x1f9019175f60e68bb163712c, - limb1: 0xd2727dafb27fc9a16950c3f9, - limb2: 0x1884d462729597e1, - limb3: 0x0 - } + limb0: 0x2e2dc7b89be127d3eee7e15f, + limb1: 0xb9b688b1096640c721587415, + limb2: 0xd09f1d870e1c2d4e08674d2b, + limb3: 0x12308a0685f2c08876496459, + }, }, - SumDlogDivLow: FunctionFelt { + RLCSumDlogDiv: FunctionFelt { a_num: array![ u384 { - limb0: 0x30e127b3779078f75b1193ba, - limb1: 0xe289fd0200fb30ff5eb34a25, - limb2: 0x2f2de323db3ddfa9, - limb3: 0x0 - }, - u384 { - limb0: 0x1aeda1fedfbe927910185275, - limb1: 0x413e94a4f4053664508ea1c, - limb2: 0x12257fc0d893fd1c, - limb3: 0x0 - }, - u384 { - limb0: 0x38daa52989c5f74f4321a55e, - limb1: 0x93a66d7b46d8cfa7ee5d1f1b, - limb2: 0x881a15ed328ff37, - limb3: 0x0 - }, - u384 { - limb0: 0x85381316d8a486ad39b4dfb4, - limb1: 0x5eb055c288a56cfdef09a3c6, - limb2: 0x302459a8e8d64dc0, - limb3: 0x0 + limb0: 0xeb35755831b8b274a72187ca, + limb1: 0x619d73fdc8ca106f251bb23f, + limb2: 0x83526e9a98267e300003744c, + limb3: 0x74e843f7fd9b3c1eb4f8a71, }, u384 { - limb0: 0xc2fc93d0c96d277fee35b5d0, - limb1: 0x13e11996860daf2da8ce7c92, - limb2: 0xbae29bbd27474a9, - limb3: 0x0 + limb0: 0x263294ccc2a97ffb2ec76a8e, + limb1: 0xd158f356f93267263354d7e2, + limb2: 0x714889219b424296b85139b5, + limb3: 0xa8f3019b0a505d2ffd1caac, }, u384 { - limb0: 0xecdf79fbbcba9950593328a3, - limb1: 0x1d816b4586d979e76e71b7f0, - limb2: 0x13a400ff678e8331, - limb3: 0x0 + limb0: 0xbf917add7208b045d906ff3f, + limb1: 0xcd23d9673211a97506787efc, + limb2: 0x7179e6dc54430c65b26530b3, + limb3: 0x17bb9453c160e11d98066ff9, }, u384 { - limb0: 0x5bafeb735adbe0ca5e25b24f, - limb1: 0xdc2822db40c0ac2dfcfa43e7, - limb2: 0x183227397098d014, - limb3: 0x0 + limb0: 0xebd56ed5f538ae24aa8dc0e2, + limb1: 0x3ba413917f065ec7e45c2721, + limb2: 0xa9b1360228e4503e35364d2b, + limb3: 0x1301d2f14e9626ee2309422, }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), a_den: array![ u384 { - limb0: 0x62191f774118056b9da102c4, - limb1: 0x2be906b42430d0a5ddf876fc, - limb2: 0xa63febd4633aeba, - limb3: 0x0 - }, - u384 { - limb0: 0x97ef3ca6d50559799b0ce83d, - limb1: 0x9318b4f2037162df788ae663, - limb2: 0x28551d0baa40e1fd, - limb3: 0x0 + limb0: 0x9b4aac8938de0d6d29299aec, + limb1: 0xed00b7c2b8d648ca0d5cb5bc, + limb2: 0xa052f33dafe080f320f1ff8e, + limb3: 0xa83d431853448de44c440fa, }, u384 { - limb0: 0x67e0fe45b316d4e42189249, - limb1: 0x41710826d459d4aa19e56217, - limb2: 0xb3e904cf071a41, - limb3: 0x0 + limb0: 0xc5a014c4a628fb418afdc431, + limb1: 0xff1bc5487dcfd4fac800f591, + limb2: 0xf09802d0f98c9a1e7d8b3326, + limb3: 0x125f173ee992bebf294f042f, }, u384 { - limb0: 0x92e6926fa2fa0cc074e8fe1a, - limb1: 0xce9d96d82855e5b0125d5cc8, - limb2: 0x2cd9562239ceedf8, - limb3: 0x0 + limb0: 0xb9100f1617268243b95b9208, + limb1: 0xb1f5e20e709d1d7cf3b2d087, + limb2: 0x39c86f0b79ca465e49a95325, + limb3: 0x1269c9e792e7575a1b407349, }, u384 { - limb0: 0x8c2aec20ae3014da621d4b2, - limb1: 0xf1e1b9cceae8781799f70567, - limb2: 0x8940de01e0bb253, - limb3: 0x0 - }, - u384 { - limb0: 0x7a59c584cc1229245ee7e7f, - limb1: 0xaaa1c08527f7d19819284056, - limb2: 0x2e8669e92f023be2, - limb3: 0x0 - }, - u384 { - limb0: 0xfdd452f895f3253c9f6baf99, - limb1: 0xe1b6be14f96510aa169a8ac5, - limb2: 0x79a13c7744151bf, - limb3: 0x0 + limb0: 0x2cb2b76ffc0a57eef2f100c5, + limb1: 0x8c7ae8ef5688c4968d0ade85, + limb2: 0xf0719994ff5b34265dca49d0, + limb3: 0x141860f0e8a032121ffd28c2, }, u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), b_num: array![ u384 { - limb0: 0x343ce544698abfafe793a32d, - limb1: 0x6da34d294ed02415c625af9a, - limb2: 0x2f31e179c3ecd001, - limb3: 0x0 - }, - u384 { - limb0: 0x7889830addccd5b2391049c7, - limb1: 0x4a006dc1100a5f367a6db026, - limb2: 0x1acf0781e710c203, - limb3: 0x0 - }, - u384 { - limb0: 0x4dae5257962683e5ce022df5, - limb1: 0xb75749c0ffee1a4013adf963, - limb2: 0x7f95c7a30ef7812, - limb3: 0x0 - }, - u384 { - limb0: 0x16e81ffc2dea0074e53822a8, - limb1: 0x31f810f2d152148d718490ac, - limb2: 0x227fd8dc8c876f0e, - limb3: 0x0 + limb0: 0xda7bc5a089fc35de52b5ab6d, + limb1: 0x374d31abeda2bc7d1fa3314b, + limb2: 0xdc9b575368802cb064ea215d, + limb3: 0x586829f9bf69e05abd324e6, }, u384 { - limb0: 0x33bb38c6663f3f4a541f4d99, - limb1: 0xf8359bb5b5a67e3d9ceeec28, - limb2: 0x77284a2d99307c4, - limb3: 0x0 + limb0: 0xdf7cbeaa6d31e6304e21b449, + limb1: 0x98191ab75477b88d9100a3b0, + limb2: 0xaccec7142afafc55a16d5a5d, + limb3: 0x2145b524c0790e06e301e66, }, u384 { - limb0: 0xc5691025fa8b480d1c01a9fb, - limb1: 0xfbeee66cfd0e2f16eb446ec3, - limb2: 0x11e95a82590596cc, - limb3: 0x0 + limb0: 0xc03bb07a666edb299db815a6, + limb1: 0xfc9f8e6a16f220fde529492c, + limb2: 0xa907065eb5bf6b0eb40cf236, + limb3: 0x1149cca478baba09dee1d533, }, u384 { - limb0: 0x595fff5aedd450d3cda6752c, - limb1: 0xd1a823fc19f57becf25c14f3, - limb2: 0x24b4ebf57927a6c3, - limb3: 0x0 + limb0: 0x8e5d1fd64b21b819208b11ea, + limb1: 0x66e777b31da1abe09cc24423, + limb2: 0x426e7a0bf850c1501a08cee7, + limb3: 0x7dbacd73a097db82eaceab9, }, u384 { - limb0: 0x770324d37c1a69a8644a6f31, - limb1: 0xe8a67f476a5ac3739ad54344, - limb2: 0x1ab548218e09cd14, - limb3: 0x0 + limb0: 0x7b6589cb116ffb6c5cd73707, + limb1: 0xa62d2451aecbbdb4a8c8ed99, + limb2: 0xca0de292aeae27f922326d89, + limb3: 0xd8a62ad9db2e6794979a947, }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), b_den: array![ u384 { - limb0: 0x264b5e65c3481042d8e3084c, - limb1: 0x83bb141c6c9271f199e964f5, - limb2: 0x1f2bfc37d29b0c2e, - limb3: 0x0 - }, - u384 { - limb0: 0xf6ea20da06cef43f202cbe29, - limb1: 0x48a99369075177e33a9dde07, - limb2: 0x1836ba3d3c5f65a5, - limb3: 0x0 - }, - u384 { - limb0: 0x137a2fad119447eac649b6db, - limb1: 0xc45318747d0d7dfe4db02645, - limb2: 0x21bbb0e6d154ec3, - limb3: 0x0 + limb0: 0xbbd6b225297935b4a4a6c105, + limb1: 0x4cd20c69eca82d0416c6d6f3, + limb2: 0x3e00201f5b0ab8479042eb7c, + limb3: 0x100e3edbdb513cdec7f55c34, }, u384 { - limb0: 0x49e941abb1c5137f4b620284, - limb1: 0x27213fcf9a2fd0fae60db833, - limb2: 0x3027643e313d3851, - limb3: 0x0 + limb0: 0xb3d8531324a5ed062bf7bb6e, + limb1: 0x2e0d6fe009dd67a2e2abd649, + limb2: 0x3bc8b1951d43d1700f22a71d, + limb3: 0x157a3927334b2dc80f04c153, }, u384 { - limb0: 0x49c57e5fb98dd14bb4f5690c, - limb1: 0xb06d9ca242a972c8aeee8c07, - limb2: 0x11acf839233258cf, - limb3: 0x0 + limb0: 0x81983c58e89c090ee56ef2ca, + limb1: 0xf975e2f7d51289ab91734221, + limb2: 0x608a627f1e3a826f3f9b2717, + limb3: 0x15a503c9d89d9033d6ca7db8, }, u384 { - limb0: 0x4c8b4fd2c933bcd762ea1338, - limb1: 0xd0b5be49493e98b7365b4df6, - limb2: 0x2b7e89da99aa8d95, - limb3: 0x0 + limb0: 0x3a198a49fb0a6d28f4ee9dff, + limb1: 0xe959e39d2ee678b7e5842fd5, + limb2: 0x9836530b7fe76efdbd8bee92, + limb3: 0xce222367b355d57e365ece3, }, u384 { - limb0: 0x23f1c0cc28b2f05f7aaf0f9e, - limb1: 0xbb718b609303bf50beab9289, - limb2: 0x13434305b561430e, - limb3: 0x0 + limb0: 0xc5a014c4a628fb418afdc435, + limb1: 0xff1bc5487dcfd4fac800f591, + limb2: 0xf09802d0f98c9a1e7d8b3326, + limb3: 0x125f173ee992bebf294f042f, }, u384 { - limb0: 0x8c2aec20ae3014da621d4b5, - limb1: 0xf1e1b9cceae8781799f70567, - limb2: 0x8940de01e0bb253, - limb3: 0x0 + limb0: 0xb9100f1617268243b95b9208, + limb1: 0xb1f5e20e709d1d7cf3b2d087, + limb2: 0x39c86f0b79ca465e49a95325, + limb3: 0x1269c9e792e7575a1b407349, }, u384 { - limb0: 0x7a59c584cc1229245ee7e7f, - limb1: 0xaaa1c08527f7d19819284056, - limb2: 0x2e8669e92f023be2, - limb3: 0x0 - }, - u384 { - limb0: 0xfdd452f895f3253c9f6baf99, - limb1: 0xe1b6be14f96510aa169a8ac5, - limb2: 0x79a13c7744151bf, - limb3: 0x0 + limb0: 0x2cb2b76ffc0a57eef2f100c5, + limb1: 0x8c7ae8ef5688c4968d0ade85, + limb2: 0xf0719994ff5b34265dca49d0, + limb3: 0x141860f0e8a032121ffd28c2, }, u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x2ebc0f661f64989389ca8f29, - limb1: 0x51a38d31031d4032831adf4d, - limb2: 0x215cadf3fa38a6bb, - limb3: 0x0 - }, - u384 { - limb0: 0x5903706208d239136d705fe1, - limb1: 0x40f6084ed520a6128feff5a1, - limb2: 0x1ee0bee0606eba2, - limb3: 0x0 - }, - u384 { - limb0: 0x68a41569537844894149ec9c, - limb1: 0x73ba5b4a4c220fab6a1f0276, - limb2: 0x304923def595a3ae, - limb3: 0x0 - }, - u384 { - limb0: 0x1e83f7e7ac2529290aca79b0, - limb1: 0x357cfd16c2809f6b2458a6e2, - limb2: 0x20e6e3746b7565d1, - limb3: 0x0 - }, - u384 { - limb0: 0xff8059c5c06f09afe62fdd3f, - limb1: 0x48f0c4dd4c630951980c1224, - limb2: 0xfe65be8091b27e0, - limb3: 0x0 - }, - u384 { - limb0: 0xbd32fda2952bb432dfd5711a, - limb1: 0xa1dead1f488268efda7aee6f, - limb2: 0x25c26645f4b32018, - limb3: 0x0 - }, - u384 { - limb0: 0x77a848c5cb3948b797461049, - limb1: 0xdc2822db40c0ac2e8f1463c5, - limb2: 0x183227397098d014, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x5f527dc3a20523eb0fabb0ab, - limb1: 0x6cd889fb2edbd6aef7251a3e, - limb2: 0x278ce3ff2561c9d7, - limb3: 0x0 - }, - u384 { - limb0: 0x1ec4d9da53abb64de26a5ff2, - limb1: 0xe6f2383a2367714b87113a04, - limb2: 0xb6d87c1df2faab, - limb3: 0x0 - }, - u384 { - limb0: 0x4fe019192d0330b5be8aae4d, - limb1: 0xfb5a50799996571d973480d, - limb2: 0x1e9bb5ba2d7320d6, - limb3: 0x0 - }, - u384 { - limb0: 0xf4a33c250b7b861c8fae2a60, - limb1: 0xb9507c0216b0c53cc118a1c2, - limb2: 0x1e652e427a0fbd7e, - limb3: 0x0 - }, - u384 { - limb0: 0x98ad11dfb9586db5552b2926, - limb1: 0x9300456a7b942daf7c7d865c, - limb2: 0x219ea3a45bb20836, - limb3: 0x0 - }, - u384 { - limb0: 0x6ea9fa04a899507bd1c9f51a, - limb1: 0x79e023e4a34eaf5a71bd7194, - limb2: 0x115caec98db93e58, - limb3: 0x0 - }, - u384 { - limb0: 0x62e4b5e060e045f08d8475d3, - limb1: 0xfb3e76b40b52761e5f68e8ce, - limb2: 0x16e9085b93778855, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - b_num: array![ - u384 { - limb0: 0x99c79c3075c1db00f71c8fc, - limb1: 0x6cd8486387df32cb4d11823d, - limb2: 0x270132eee8809540, - limb3: 0x0 - }, - u384 { - limb0: 0x31cf9a5ac6c9d35b9610dd39, - limb1: 0x2fae43801754fc3937de7a48, - limb2: 0x1d67a81bd58789f4, - limb3: 0x0 - }, - u384 { - limb0: 0x106aa17f9a0e3a690aa7e78a, - limb1: 0xfa0f3453424c663adb1a7a44, - limb2: 0x279cf5be63f1d93b, - limb3: 0x0 - }, - u384 { - limb0: 0xa0caae6cebb6259927798471, - limb1: 0xe838f8edbd639cf2388dd58c, - limb2: 0x12bc0e468d23e7c5, - limb3: 0x0 - }, - u384 { - limb0: 0xd5f89d1dae69921d74515896, - limb1: 0xd727c938168d1b537b2fbb2c, - limb2: 0x21e57fda505bc444, - limb3: 0x0 - }, - u384 { - limb0: 0x25794777b11f497b496d7ec7, - limb1: 0x61e0030db2eaf2855627c2, - limb2: 0xda76c01699c4a64, - limb3: 0x0 - }, - u384 { - limb0: 0x67288e829ec0240ee1407908, - limb1: 0xf01b3d3e2f93ef0d87b943b9, - limb2: 0xa5f99e400260b75, - limb3: 0x0 - }, - u384 { - limb0: 0xe7b7442c04002e3fddb3f1d2, - limb1: 0xe72b334ec57c7aab5345c6d1, - limb2: 0x22382c03c778e3d, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { - limb0: 0x4d13e4306dce53937e091773, - limb1: 0xd5e912848990d351b66c7998, - limb2: 0x15de0f17adc21d32, - limb3: 0x0 - }, - u384 { - limb0: 0x5c4e8d8efb0322e9a73f1fd6, - limb1: 0xb4d6a8ae6a3653e29533ae0c, - limb2: 0x224897459d8f003, - limb3: 0x0 - }, - u384 { - limb0: 0x872e80be4ae9060a63230da0, - limb1: 0x76d0a9604b4ad7f7f4d86d96, - limb2: 0x2b6ed2bba727c258, - limb3: 0x0 - }, - u384 { - limb0: 0x6c589d184c369e130dbc353d, - limb1: 0x282972946feb75aa0b6c2a64, - limb2: 0x21f3d1e0d12dc200, - limb3: 0x0 - }, - u384 { - limb0: 0x17e87a5f0773e74030f1e0d6, - limb1: 0x2f527d0c9321499ecd86f7f7, - limb2: 0x4ca26836ea5d2fc, - limb3: 0x0 - }, - u384 { - limb0: 0x336c3c99eaae96125b6b9054, - limb1: 0xc505caff02041b23972a3239, - limb2: 0x224d73a3f56d3bb5, - limb3: 0x0 - }, - u384 { - limb0: 0x4c6dc8abb5db3fc08741914b, - limb1: 0x3a6b54b135a576dcb050870b, - limb2: 0x257aa6f7213162d, - limb3: 0x0 - }, - u384 { - limb0: 0x98ad11dfb9586db5552b2929, - limb1: 0x9300456a7b942daf7c7d865c, - limb2: 0x219ea3a45bb20836, - limb3: 0x0 - }, - u384 { - limb0: 0x6ea9fa04a899507bd1c9f51a, - limb1: 0x79e023e4a34eaf5a71bd7194, - limb2: 0x115caec98db93e58, - limb3: 0x0 - }, - u384 { - limb0: 0x62e4b5e060e045f08d8475d3, - limb1: 0xfb3e76b40b52761e5f68e8ce, - limb2: 0x16e9085b93778855, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x22ddb22e6396933a2f507a3c, - limb1: 0xbbfb46cd418cb47160763b1, - limb2: 0x16501c91378e7d17, - limb3: 0x0 - }, - u384 { - limb0: 0x8bbd8e60fc1a1859e888a509, - limb1: 0xdc2822db40c0ac2e47c7fadc, - limb2: 0x183227397098d014, - limb3: 0x0 - } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x7bf69d5c09487020647124b4, - limb1: 0xace7e270a46a046381d69364, - limb2: 0x19db73a0e725dbfd, - limb3: 0x0 - }, - u384 { - limb0: 0x6005bce39483fe2f4eeef44a, - limb1: 0x6748138d1cb210f0ee8dfce8, - limb2: 0x1a366da76cbac6e, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0x7d111ecdac3fefabd6dd8c77, - limb1: 0x61355ab10d5d87d12fbb5e3a, - limb2: 0x1c9e5b8c247fc02a, - limb3: 0x0 - }, - u384 { - limb0: 0x45bd1a476eff22efc0740a72, - limb1: 0xe939a9cab85833e68f6672b6, - limb2: 0xbb395836319c963, - limb3: 0x0 - }, - u384 { - limb0: 0xb9d1f4adf01d12be3d3a889a, - limb1: 0xf431473964fe077f18ba23cc, - limb2: 0x2e32abc5811aa573, - limb3: 0x0 - } - ] - .span(), - b_den: array![ - u384 { - limb0: 0xb720d86dfb8c44a54d670d5, - limb1: 0x4e67619b6bbcb4ccee024f9c, - limb2: 0x1d2e0c6fd43ff3cf, - limb3: 0x0 - }, - u384 { - limb0: 0x201136aabd8bfa8decccdcde, - limb1: 0x35d83aa7561632d2cba9f6b9, - limb2: 0x4ea348f6463054b, - limb3: 0x0 - }, - u384 { limb0: 0x3, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { - limb0: 0x7bf69d5c09487020647124b4, - limb1: 0xace7e270a46a046381d69364, - limb2: 0x19db73a0e725dbfd, - limb3: 0x0 - }, - u384 { - limb0: 0x6005bce39483fe2f4eeef44a, - limb1: 0x6748138d1cb210f0ee8dfce8, - limb2: 0x1a366da76cbac6e, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() }, }; let derive_point_from_x_hint = DerivePointFromXHint { y_last_attempt: u384 { - limb0: 0xa9b30970123e5686fe5fb960, - limb1: 0x41f56e3b4846c67a87076a10, - limb2: 0x286a6b83050eda6, - limb3: 0x0 + limb0: 0xdd789d7c02428dc60246d081, + limb1: 0xc9de1388dd3a5eaff5de8784, + limb2: 0x6eac6c37a0a90e65dd33fbc8, + limb3: 0x89f38f13155da73ef366afc, }, g_rhs_sqrt: array![].span(), }; let points = array![ G1Point { x: u384 { - limb0: 0x5c724369afbc772d02aed58e, - limb1: 0x2cd3bc838c66439a3d6160b, - limb2: 0x72f26b55fb56be1, - limb3: 0x0 - }, - y: u384 { - limb0: 0x772ca79c580e121ca148fe75, - limb1: 0xce2f55e418ca01b3d6d1014b, - limb2: 0x2884b1dc4e84e30f, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x536c985db33c69f7c242e07a, - limb1: 0xfc531bccffafcf1e59d91fb9, - limb2: 0x2585e4f8a31664cb, - limb3: 0x0 - }, - y: u384 { - limb0: 0x57fa42444057cf0c1d62ae3c, - limb1: 0x4f48d341183118d68ea41313, - limb2: 0x1d2d2799db056ed1, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x236ca9312dad3661a37f2d6f, - limb1: 0x98424c01caad7592315715d1, - limb2: 0x795b9fd941b23c4, - limb3: 0x0 - }, - y: u384 { - limb0: 0xc7ab5834609a54b8993ffd79, - limb1: 0xe81cd490528b814ca632aace, - limb2: 0x2d9ff53d3009e6f7, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x163df40cafbf585ca5b2ab44, - limb1: 0xb4752e4666c88dbbe23783a0, - limb2: 0x1a801462ac9cb657, - limb3: 0x0 + limb0: 0xe4f817e54aede0613c17035c, + limb1: 0xdff1f15010392a6da1f95a6, + limb2: 0xbed78d3d341e911d49f15454, + limb3: 0x18154782ce0913b21588066d, }, y: u384 { - limb0: 0xac9b557d7ca8625d957263c6, - limb1: 0xdc6f75fa8339a78b998ae54a, - limb2: 0x28683293b6494d9f, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x5c4f5dca0c973b7f70bfff9, - limb1: 0x188c2afab11eef5d48ecda3c, - limb2: 0xc2fed35d36c49f1, - limb3: 0x0 + limb0: 0x3d77d61326ef5a9a5a681757, + limb1: 0xd3070afd4f0e121de7fcee60, + limb2: 0xdf9ef4088763fe611fb85858, + limb3: 0x11a612bdd0bc09562856a70, }, - y: u384 { - limb0: 0x9d7244ea10697ca42e2e066b, - limb1: 0xfe18a519c7d68770dc48dbf9, - limb2: 0x149bb528db998529, - limb3: 0x0 - } }, G1Point { x: u384 { - limb0: 0xffc057151b06c496e6fdd440, - limb1: 0x5a01bae0c7441f08c7af1cf9, - limb2: 0x274e0e02529e6d26, - limb3: 0x0 + limb0: 0xde4f62a6588c9401ffefbd3, + limb1: 0x9bb5f797ac6d3395b71420b5, + limb2: 0xdc39e973aaf31de52219df08, + limb3: 0x105dcc4dce3960447d21d3c1, }, y: u384 { - limb0: 0x65ceb8977413bc9798681ecb, - limb1: 0x19ffb287b45234f0c28fd1a7, - limb2: 0x28dbbd2f9267be76, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0xcfcdbfdb2056ff1a64bf1d47, - limb1: 0xf26fe2dae9f693d9b4aab2e6, - limb2: 0x12d66ad4802d841e, - limb3: 0x0 + limb0: 0xaefd0d854043fd325dd3c34f, + limb1: 0x9b63c98d9a7845c52e1e2b0f, + limb2: 0x9db0be660d847ccc58358f3f, + limb3: 0x17cb6c41f0c4e1a7394ab62a, }, - y: u384 { - limb0: 0xe6e34ebfa2e18dce86cadbdc, - limb1: 0x7ce096238b3d4b1b8fba6a55, - limb2: 0x2e0a660b1549800c, - limb3: 0x0 - } }, G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, ] .span(); let scalars = array![ u256 { low: 0x0, high: 0x0 }, u256 { - low: 0xd3fbf47a7e5b1e7f9ca5499d004ae545, high: 0x2ebce25e3e70f16a55485822de1b372a - }, - u256 { - low: 0x101fbcccded733e8b421eaeb534097ca, high: 0xe30658b9148624feac1c14f30e9c5cc - }, - u256 { - low: 0x247a8333f7b0b7d2cda8056c3d15eef7, high: 0x5d67b7072ae22448b0163c1cd9d2b7d - }, - u256 { - low: 0xe005b86051ef1922fe43c49e149818d1, high: 0x1f507980eece328bff7b118e820865d6 - }, - u256 { - low: 0x4a84eb038d1fd9b74d2b9deb1beb3711, high: 0x154bc8ce8c25166a1ff39849b4e1357d - }, - u256 { - low: 0x3405095c8a5006c1ec188efbd080e66e, high: 0x2305d1699a6a5f92cca74147f6be1f72 + low: 0x12e0c8b2bad640fb19488dec4f65d4d9, high: 0x2a43e70faf19922ad9b8a714e61a441c, }, u256 { - low: 0x1775336d71eacd0549a3e80e966e1277, high: 0x144a7edf6288e1a5cc45782198a6416d + low: 0x5a92118719c78df48f4ff31e78de5857, high: 0x51f964df9c6316b950f244556f25e2a2, }, ] .span(); let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 0 + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 1, ); assert!( res == G1Point { x: u384 { - limb0: 0xbdfbeb670ad299c85a75d2a1, - limb1: 0x29d72f624d254fed8651c723, - limb2: 0x14a5e1343f78ddf9, - limb3: 0x0 + limb0: 0x2b828af1f5fe30bbe7a1074a, + limb1: 0x5669beaa69827b52dc874c9f, + limb2: 0x648af2c24d82a5a758c96b8e, + limb3: 0x188bc245620ae6b6afec9dc3, }, y: u384 { - limb0: 0x93b69c86323517fd9670a09, - limb1: 0x33a8e540e7080d3df9bcd157, - limb2: 0x5d2519d5a2f1c11, - limb3: 0x0 - } - } + limb0: 0xdc96192f803ef92f56d59758, + limb1: 0xfc6139925c05a030065d564, + limb2: 0xb24447300bec56efec94dcf4, + limb3: 0x156f97e5d31055c0a5fe154d, + }, + }, ); } #[test] - fn test_msm_BN254_9P() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - ] - .span(), - array![ - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - ] - .span() - ), - ( - array![ - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - ] - .span(), - array![ - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - ] - .span(), - array![ - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - ] - .span(), - array![ - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - ] - .span() - ), - ( - array![ - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - ] - .span(), - array![ - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - ] - .span(), - array![ - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - ] - .span() - ), - ] - .span() - ); + fn test_msm_BLS12_381_4P() { + let scalars_digits_decompositions = Option::None; let msm_hint = MSMHint { Q_low: G1Point { x: u384 { - limb0: 0xa6b594b9c0ebe6e2d5c987fd, - limb1: 0xb18f44bcbf7029abe3604cfa, - limb2: 0x3006e058116428ed, - limb3: 0x0 + limb0: 0xcf5bc4cf513273a64b43540a, + limb1: 0x6613974b3587de6a0421a52b, + limb2: 0x9f11261324f0125289a51c4, + limb3: 0x90308470b416ca1aff0c5e3, }, y: u384 { - limb0: 0xec0a4cdd625d7bddf3a18b7e, - limb1: 0x5e6840a3b30b463c217747e3, - limb2: 0x1aebd52c6fffda6f, - limb3: 0x0 - } + limb0: 0x3102ea48c94f20f4ccebc9c3, + limb1: 0x4d6ae4a26c0e0350d12814d5, + limb2: 0x2dc8ffb6c7db29c2dacd756a, + limb3: 0x9cf7dc9d86166897fb4c3ce, + }, }, Q_high: G1Point { x: u384 { - limb0: 0xe92a6fea872f7396099ac52b, - limb1: 0x9de9ab9174c2f963c23693e1, - limb2: 0x1ce0771a03bd8cc2, - limb3: 0x0 + limb0: 0x36952716073ad3a0784c804b, + limb1: 0x925ddef3c85fe6d3a513b55f, + limb2: 0xd670ae77446cb42ba15c358, + limb3: 0x1164ae8fe1dc44c74a1279b, }, y: u384 { - limb0: 0x90c700a1a9090b0a60f1d1da, - limb1: 0xc3c9b935e0fdff720bfb55af, - limb2: 0x17bba8638398a5ed, - limb3: 0x0 - } + limb0: 0x83e4d47d929ded88adf56ff5, + limb1: 0x45a6caccd5bc61c52fd977a9, + limb2: 0xf2c35142e28cb439cb9f42e8, + limb3: 0x6cdaf0c31bac5372c41228e, + }, }, Q_high_shifted: G1Point { x: u384 { - limb0: 0x5a5ea46d8ca47ed7ef35d74e, - limb1: 0x2a448bab2be37387efe2f1d4, - limb2: 0x1b752d8d5aa67d55, - limb3: 0x0 + limb0: 0x36feccbcf8718c917cc04cd3, + limb1: 0x4f3ced9cd8d2f9e58751adaa, + limb2: 0xcf671555118dadc2f708f1ca, + limb3: 0x8619de3ffa219bbdfc07acc, }, y: u384 { - limb0: 0x256bf975eae93acf531cb328, - limb1: 0x75063745e9c7d81689bb2393, - limb2: 0x1529bae7125c7b74, - limb3: 0x0 - } + limb0: 0xfd78095a60ed4f6c2023e653, + limb1: 0x88a7c4412c34745f062cb8f1, + limb2: 0xdb50e0b5ab8899e15fcc908b, + limb3: 0x1419343e534a2c7643769e8, + }, }, - SumDlogDivLow: FunctionFelt { + RLCSumDlogDiv: FunctionFelt { a_num: array![ u384 { - limb0: 0xecc9df20a4b3e1a3fd4d69d0, - limb1: 0xb689637065f624351b263399, - limb2: 0x1f90e5bf8795763e, - limb3: 0x0 - }, - u384 { - limb0: 0x2fb6a71108a59e85c37d488b, - limb1: 0x14b44a4621650fc9c782c889, - limb2: 0x25d884fde276ccb, - limb3: 0x0 - }, - u384 { - limb0: 0x9cbdc0f414d0a877b746c4eb, - limb1: 0xdc1052b34885cac1c98521c5, - limb2: 0x270651f744853446, - limb3: 0x0 - }, - u384 { - limb0: 0x811cb67de75f9d4564cc2ed4, - limb1: 0x498ec6feef087aa2dd7ec5d, - limb2: 0x162188d063602323, - limb3: 0x0 + limb0: 0x43a00827599bc871ec052095, + limb1: 0x907735b0474cdfbd9390d604, + limb2: 0x889b5bdff11ae2993129a716, + limb3: 0xe372a6f429fb24f3b9deae6, }, u384 { - limb0: 0x4dd3f82b0c44f050267d924a, - limb1: 0xefb295db50ba9e6f83a0e53b, - limb2: 0x1e14678c5cc974e2, - limb3: 0x0 + limb0: 0x385e6104753a95acfe139495, + limb1: 0x74df1cd8671d8327df93cf9d, + limb2: 0xb8ea1142bab645e5a990dd79, + limb3: 0x10d92f59780bc557b755a053, }, u384 { - limb0: 0x5a58a83b0c5f6d412aeaea03, - limb1: 0x7f1699db0e4c8c6b1041b067, - limb2: 0x1f7b69f6bd04da6d, - limb3: 0x0 + limb0: 0xcbc698aeb485594d43e567d6, + limb1: 0x2d57e9f6fbcb8f4153694dff, + limb2: 0xac5158e9565ce000c634ba2, + limb3: 0x5094f041c205f3c3695a85a, }, u384 { - limb0: 0xe5ea6653aeebae5cec7b0555, - limb1: 0x32f1f0526e6eba8ae845b8b0, - limb2: 0x27e41c3d77910fed, - limb3: 0x0 + limb0: 0x137442d577c99ccf464870ef, + limb1: 0x3d642c3c20be1aa2050d3439, + limb2: 0x66bc485c48c8613ba550b4ee, + limb3: 0xfc9ce51a31ec61dbbed9c, }, u384 { - limb0: 0x2648be06a104177a7d8b8c6b, - limb1: 0xdc2822db40c0ac2e4be609ad, - limb2: 0x183227397098d014, - limb3: 0x0 + limb0: 0xf614a35af5ed6b410a97ec33, + limb1: 0x4b36373d59ba1d3d2f8827a0, + limb2: 0xde4b3f4208f854c6bc31b7a5, + limb3: 0x131bb09f172cef7f4d2b7cc6, }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), a_den: array![ u384 { - limb0: 0x6f0230f139895dd24c73bc14, - limb1: 0x8bac890eb6eec874033d9656, - limb2: 0x2add65f53fc4c0b7, - limb3: 0x0 + limb0: 0xf6dbe3a230f7367f8b1c1175, + limb1: 0xe976f0f71a8893db76d1e666, + limb2: 0x2251d49fd76cf06a6c1aabb3, + limb3: 0xd613e96ca587c2c00940f68, }, u384 { - limb0: 0x8604eca31a1f9ddd254198bb, - limb1: 0x16c955bf3f275ff1d03cab3f, - limb2: 0x2425be59264d4fa2, - limb3: 0x0 + limb0: 0x24ca88ca77f97fd047cebbb3, + limb1: 0xb66c98612e42f6fa469d0bc1, + limb2: 0x2670232bd6612190dfeccaab, + limb3: 0x6671fa691f30f885a88565, }, u384 { - limb0: 0x4ff98a540f5a3371d7b5ad51, - limb1: 0x4622eade9b7218536b4d48d4, - limb2: 0x2fde36e6dbff7e82, - limb3: 0x0 + limb0: 0x1756c8bc75e505ea8da2c840, + limb1: 0xe618b0bbc9c0212e2504def9, + limb2: 0xad0ff64d30ce8b7794e76929, + limb3: 0x65627fb311b4ee0ef4193cd, }, u384 { - limb0: 0xedcfdc5f7a2c125b367e6e46, - limb1: 0x69d51033b086e693629302e0, - limb2: 0x87a48269b951640, - limb3: 0x0 + limb0: 0x6ef0391091b40aa751cd4eb5, + limb1: 0x7eb32afdfc7d049ecceaaff4, + limb2: 0xa9151550836d48c1fcdb2ccb, + limb3: 0xea06515d280872e0099be8, }, u384 { - limb0: 0x938f12cec17ee2579837e676, - limb1: 0x19e791c5e181457c9a9f2e45, - limb2: 0x9fa379a31219ab3, - limb3: 0x0 - }, - u384 { - limb0: 0xb60afe0a2bfb625d1d45e14f, - limb1: 0xaaa5d156edca30172aa7a892, - limb2: 0x1d7371ee9b06c627, - limb3: 0x0 - }, - u384 { - limb0: 0x133b4225c344ad64433303d, - limb1: 0x91f922d7b4661b4d8624f597, - limb2: 0x2b223de0f9ea8fda, - limb3: 0x0 - }, - u384 { - limb0: 0x2e3c19ed618dd52ab0faf086, - limb1: 0x4c1ef538ba84e0cdbdf7f0f9, - limb2: 0x12a2a212c089b49f, - limb3: 0x0 + limb0: 0xf9a13ba7c1034faf113dc74f, + limb1: 0xf2b60a48c371e81ba98f2cfb, + limb2: 0x5526884ac8d84a613fe36fee, + limb3: 0x19cd8432e0eb8098da1800cf, }, u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), b_num: array![ u384 { - limb0: 0x9926759dc60b94586712222c, - limb1: 0x73c3bf25b0628fecb9c3c477, - limb2: 0x257c30dd7b071c35, - limb3: 0x0 - }, - u384 { - limb0: 0x7707efe9591724b38d2ec1f9, - limb1: 0x1418fc30d9fe0e1422f0cd23, - limb2: 0x2a3c151c3b31a3f0, - limb3: 0x0 - }, - u384 { - limb0: 0x1c591b5e4a30cc90ec476608, - limb1: 0xe2c3cbd842cf3de113a0c414, - limb2: 0x249cb84b6c225c59, - limb3: 0x0 - }, - u384 { - limb0: 0xfe80e508da622d5cb1dcd850, - limb1: 0x1b313b7e9033ca3c5dfb022b, - limb2: 0x42fe39f9b94b8c4, - limb3: 0x0 + limb0: 0xf2ba59c8a815789212473586, + limb1: 0x2f00a7dd448d61e14aa80546, + limb2: 0xc73c42a891ec77f7078b204d, + limb3: 0x1d295a821fff16e352f04b4, }, u384 { - limb0: 0x17739931b6a157562a34253e, - limb1: 0x73a586e42814d00c068e526b, - limb2: 0x290cee72cfbb1eae, - limb3: 0x0 + limb0: 0xfa8cb51c148d5c12fc38903, + limb1: 0x541e5cfea2be5d679100a7fd, + limb2: 0xbcdf8232793879015ff1c684, + limb3: 0x40ddbb67f91aeeb1a0c4ce6, }, u384 { - limb0: 0x6ca3b4461726102a93eb0579, - limb1: 0xb58abca899912501c69d0f62, - limb2: 0x2a348fd26c61842e, - limb3: 0x0 + limb0: 0x4db9d221ee5d02905ffb7c3c, + limb1: 0x3918238862bd821cd8b03e6e, + limb2: 0x518f477beb6d4ddd0132cb8b, + limb3: 0x18d4717988c33aeec3cab94, }, u384 { - limb0: 0x2aa579de86747156b21963cd, - limb1: 0xba793f633a7397fe8792ecef, - limb2: 0xdfcc4f8b0cebb28, - limb3: 0x0 + limb0: 0x711fed82af3085408e7e5de3, + limb1: 0x99c3707d8d890c7bf3f76631, + limb2: 0x12e60a5898f01f1d27fd876d, + limb3: 0x15b77932d15ecf8821a93f31, }, u384 { - limb0: 0xcb1c6ae1b8a03d9ce2fe2b52, - limb1: 0x6a78e481df1fcd0be8dc8b92, - limb2: 0xe5ad139365387a9, - limb3: 0x0 + limb0: 0xf376ea6c76506fb9f0664910, + limb1: 0x18e015d09e84f43622496178, + limb2: 0x37325694d25fddfd0eba0973, + limb3: 0xc34b19dcf0d30d7fe62377a, }, u384 { - limb0: 0xa1b59f8ac3b2a7077e2f6ab5, - limb1: 0x22fa386bbeb9f9e6ba7657bf, - limb2: 0x12d1eddeaad943a7, - limb3: 0x0 + limb0: 0x2c8dc32fe764b8a9d7c0f22c, + limb1: 0x8fe7965aee936a0f740951fd, + limb2: 0xd8131ec40b90a5939d46936a, + limb3: 0x53a1e0725ff676f66b2244, }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), b_den: array![ u384 { - limb0: 0x7c22fdb9345b0149346139ae, - limb1: 0x32650fbf21c9a8a0dab5ede0, - limb2: 0x1fcf94f9fceb01d3, - limb3: 0x0 - }, - u384 { - limb0: 0xc12b30ced61dc169becacfa3, - limb1: 0xd3bb75d0ba736f1a41b32c9b, - limb2: 0xba89e25b084ae92, - limb3: 0x0 + limb0: 0x78c78e894fded9fe2c70f07e, + limb1: 0xd77a1e9a7cc063259def999e, + limb2: 0x2aff8d094c52a9fc9608950, + limb3: 0x182d686b662237b6c18ee34, }, u384 { - limb0: 0x1f0909e1b5cd8227d6270d65, - limb1: 0x61c8352ecf53983f12e5055a, - limb2: 0x2ed207ced19b3b33, - limb3: 0x0 + limb0: 0x932a2329dfe5ff411f3aeecc, + limb1: 0xd9b26184b90bdbe91a742f04, + limb2: 0x99c08caf598486437fb32aae, + limb3: 0x199c7e9a47cc3e216a21594, }, u384 { - limb0: 0xcffffb826bed08cd1772099f, - limb1: 0x10db73f3470223d093753467, - limb2: 0x13e7eff63152634f, - limb3: 0x0 + limb0: 0x5d5b22f1d79417aa368b2100, + limb1: 0x9862c2ef270084b894137be4, + limb2: 0xb43fd934c33a2dde539da4a7, + limb3: 0x19589fecc46d3b83bd064f36, }, u384 { - limb0: 0xd8405a82227bb8cd156c4ed6, - limb1: 0xac2fc55a6229d80a0898cb7e, - limb2: 0x11b016b4d8807f91, - limb3: 0x0 + limb0: 0xb29cc7e477c7611cd2514c49, + limb1: 0xe4439cef0c7ca656aa7ca638, + limb2: 0xc6a629e1e52213725f875ee1, + limb3: 0x110957dc3ef89df780ba7f0a, }, u384 { - limb0: 0xa136ef581b0b425b7e8d56b0, - limb1: 0xd573d37661cdf7ddbc416d69, - limb2: 0x276fefcceab090a5, - limb3: 0x0 + limb0: 0xf753776a4e09be8c8cc6d8ee, + limb1: 0x4bb249a157f7b4fc90d5bfb4, + limb2: 0xb1273dd0cc5c688704eb5229, + limb3: 0x19994d07404d7f8d0cb5917f, }, u384 { - limb0: 0x208763ac1687dab0521e046f, - limb1: 0xaf1fed4dcab687c0c5ff0e83, - limb2: 0x291864e3c6f1857c, - limb3: 0x0 + limb0: 0x1756c8bc75e505ea8da2c844, + limb1: 0xe618b0bbc9c0212e2504def9, + limb2: 0xad0ff64d30ce8b7794e76929, + limb3: 0x65627fb311b4ee0ef4193cd, }, u384 { - limb0: 0xb5d19609aa07d5c0d2abbac1, - limb1: 0x45f42bb98f8e8f883d05969f, - limb2: 0x117dcf5f918d1867, - limb3: 0x0 + limb0: 0x6ef0391091b40aa751cd4eb5, + limb1: 0x7eb32afdfc7d049ecceaaff4, + limb2: 0xa9151550836d48c1fcdb2ccb, + limb3: 0xea06515d280872e0099be8, }, u384 { - limb0: 0xb60afe0a2bfb625d1d45e152, - limb1: 0xaaa5d156edca30172aa7a892, - limb2: 0x1d7371ee9b06c627, - limb3: 0x0 - }, - u384 { - limb0: 0x133b4225c344ad64433303d, - limb1: 0x91f922d7b4661b4d8624f597, - limb2: 0x2b223de0f9ea8fda, - limb3: 0x0 - }, - u384 { - limb0: 0x2e3c19ed618dd52ab0faf086, - limb1: 0x4c1ef538ba84e0cdbdf7f0f9, - limb2: 0x12a2a212c089b49f, - limb3: 0x0 + limb0: 0xf9a13ba7c1034faf113dc74f, + limb1: 0xf2b60a48c371e81ba98f2cfb, + limb2: 0x5526884ac8d84a613fe36fee, + limb3: 0x19cd8432e0eb8098da1800cf, }, u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { - limb0: 0xc8ba24a848155d26ed3d15f2, - limb1: 0x10c6a3a500faeaf4dad3f8df, - limb2: 0x25e4839e59b4c79b, - limb3: 0x0 - }, - u384 { - limb0: 0x19bc0f935843097d19d71f4e, - limb1: 0x4094be234c8284596027240d, - limb2: 0x2b483c71d873d9d2, - limb3: 0x0 - }, - u384 { - limb0: 0x91736838ad53dfe31ee51eef, - limb1: 0x91e2ae1234a882fa54279e63, - limb2: 0x1ad9545d80521354, - limb3: 0x0 - }, - u384 { - limb0: 0x33a6841223eb2635a307ccfd, - limb1: 0x29998a088a6403e5a8a77cc0, - limb2: 0x2062a8a50e4467f3, - limb3: 0x0 - }, - u384 { - limb0: 0x63a833ddadd4786e0e2c8c67, - limb1: 0x9d90b859632625b139946a5c, - limb2: 0x1c71b5f3d40d559c, - limb3: 0x0 - }, - u384 { - limb0: 0x2e1ae0b3eef3217d937f04c4, - limb1: 0x611176edf02a37258d9c0c8d, - limb2: 0x273c40fb9315b8e7, - limb3: 0x0 - }, - u384 { - limb0: 0x907a3f96d1afd90e3d1f320c, - limb1: 0x17bb82c75c69429c63b50050, - limb2: 0x2d510d85118cf26c, - limb3: 0x0 - }, - u384 { - limb0: 0x2e292f0e43e34c1aff578963, - limb1: 0xb85045b68181585d587e15ec, - limb2: 0x30644e72e131a029, - limb3: 0x0 - }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - a_den: array![ - u384 { - limb0: 0x96e60f60f755aa1bc3869df8, - limb1: 0x850fc7600ebe27903af8ae8c, - limb2: 0x16b8b55a5715abfe, - limb3: 0x0 - }, - u384 { - limb0: 0x4ff669860770b506541ae239, - limb1: 0xb3cac11040e8d41c5a9e3cc1, - limb2: 0x29c26944bb437ce4, - limb3: 0x0 - }, - u384 { - limb0: 0x2a32862ec4716c26ceb883ed, - limb1: 0xa2af7ecbf1410dfe0ec54eff, - limb2: 0x1bb4693a5f658b28, - limb3: 0x0 - }, - u384 { - limb0: 0x29e46cd7f93b19a47464b153, - limb1: 0x55b8d4eff6427100f536a981, - limb2: 0x22229d6efbecdb0b, - limb3: 0x0 - }, - u384 { - limb0: 0x81ead103615272efdfa1520c, - limb1: 0x6ecc5bacd2d9fe90e4e8c3a2, - limb2: 0x7d576ad7cf08921, - limb3: 0x0 - }, - u384 { - limb0: 0xadf81c55c3d12a92dcaf138, - limb1: 0xe184b31ff45195ffbdcc4f1c, - limb2: 0xcde73bd789cfdf7, - limb3: 0x0 - }, - u384 { - limb0: 0x181ed3f3cd22234e06257ee8, - limb1: 0x230263f5ef0ebe50affb17a0, - limb2: 0x1e8fde4723d96130, - limb3: 0x0 - }, - u384 { - limb0: 0xebc73ebc9b4a48777d29b358, - limb1: 0x5fc48e6405321115df21aa11, - limb2: 0x25c90b50ce3050ca, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0x44e4216ee0e3a393bdc317fb, - limb1: 0x5be5933e835bb5b0e409ac82, - limb2: 0x11ec375408f9d28d, - limb3: 0x0 - }, - u384 { - limb0: 0x9251842142282722e63378f3, - limb1: 0x5ec350eda62854035c378b9c, - limb2: 0x1f08151c351ad883, - limb3: 0x0 - }, - u384 { - limb0: 0x369a7e1f39dd9e9b9dee1592, - limb1: 0xc0a4d448c90ebfe298aab52e, - limb2: 0x8fa55d3f8556ff6, - limb3: 0x0 - }, - u384 { - limb0: 0x1254f6e5adeed88aa037b04a, - limb1: 0x5ffe886dd1addc4b9147bf1b, - limb2: 0x2c287974c92cae1c, - limb3: 0x0 - }, - u384 { - limb0: 0x6a1a0d31e8fb3379c83f9e43, - limb1: 0x9c8a13ab08a68e73c224b805, - limb2: 0x15ea37658e2db0ee, - limb3: 0x0 - }, - u384 { - limb0: 0x51c76a04d597a72f8ee8ff5, - limb1: 0xd4680766309cee6d04d8e066, - limb2: 0x22e1e483e5332766, - limb3: 0x0 - }, - u384 { - limb0: 0x49f507fdde657cb4c895d943, - limb1: 0x95ef295a0cda28fc86cf6752, - limb2: 0x1e8531b9f9a8d9bd, - limb3: 0x0 - }, - u384 { - limb0: 0x188b6328a56573a707b37f72, - limb1: 0xf38ad4b93813739df52fe42c, - limb2: 0xdd315e9679f37f3, - limb3: 0x0 - }, - u384 { - limb0: 0xf57aed24fee18d6188cedfc0, - limb1: 0xb43f11f9b1ec59116b0c90b8, - limb2: 0x1525a42ac8729c25, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { - limb0: 0x5c406395a9e0723c7216dca1, - limb1: 0xd6df1069aab91e531968a114, - limb2: 0x13c5d19c240f63d1, - limb3: 0x0 - }, - u384 { - limb0: 0x1effa7779e1106e54b56ac1d, - limb1: 0xaabfb7c3bfb7cb99e0d7e121, - limb2: 0x1c7e9ee86f67365a, - limb3: 0x0 - }, - u384 { - limb0: 0x1625c7ff1133b85d93ac8e80, - limb1: 0x2fbe36ad5241d19c94ce826c, - limb2: 0x22b8ed3c3cff0150, - limb3: 0x0 - }, - u384 { - limb0: 0x43afc0ce6ac5dedb6fbab763, - limb1: 0x1599bac2ee82c9d7eb99d5ed, - limb2: 0x1c57f0c18878fccd, - limb3: 0x0 - }, - u384 { - limb0: 0x6d451202ef4781bf1a81db16, - limb1: 0x47df8e6037f5777171d71d17, - limb2: 0x10de7eda50e3781f, - limb3: 0x0 - }, - u384 { - limb0: 0xe25f40f19d08180b7f9c5a4e, - limb1: 0x8eed52754cb4779fb0a8d1c1, - limb2: 0x11eb75ffe80ae4e6, - limb3: 0x0 - }, - u384 { - limb0: 0xa15d5398e8606b60d5db337d, - limb1: 0x4e1f7564c06bfb37d6251b3e, - limb2: 0x1d099b5ea515be48, - limb3: 0x0 - }, - u384 { - limb0: 0x745cf81ebaf03428a6247186, - limb1: 0x1d797b6bdf6d8117534aecb5, - limb2: 0x1867fbba251e3b2d, - limb3: 0x0 - }, - u384 { - limb0: 0xadf81c55c3d12a92dcaf13b, - limb1: 0xe184b31ff45195ffbdcc4f1c, - limb2: 0xcde73bd789cfdf7, - limb3: 0x0 - }, - u384 { - limb0: 0x181ed3f3cd22234e06257ee8, - limb1: 0x230263f5ef0ebe50affb17a0, - limb2: 0x1e8fde4723d96130, - limb3: 0x0 - }, - u384 { - limb0: 0xebc73ebc9b4a48777d29b358, - limb1: 0x5fc48e6405321115df21aa11, - limb2: 0x25c90b50ce3050ca, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ - u384 { - limb0: 0xa9019d1ee5b4eb13498e8a17, - limb1: 0x4ce6015fd5b5d86effacb0f4, - limb2: 0x6fd552f52b4c93f, - limb3: 0x0 - }, - u384 { - limb0: 0x8bbd8e60fc1a1859e888a509, - limb1: 0xdc2822db40c0ac2e47c7fadc, - limb2: 0x183227397098d014, - limb3: 0x0 - } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x5900416f76060c2939cd7c3e, - limb1: 0x585d2a248490a180e20598a, - limb2: 0x2c08331f303954b0, - limb3: 0x0 - }, - u384 { - limb0: 0x8d5a80c2646d25bfb8295e15, - limb1: 0xa8725430625c43cf7ce94f6c, - limb2: 0x2872f83e63ff363b, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0xf679ac387035aaf57dd85772, - limb1: 0x4f68ec7a11b12930da1f5aeb, - limb2: 0x17127b5c44a3c89, - limb3: 0x0 - }, - u384 { - limb0: 0x73fd655664832a1c2bd0329, - limb1: 0xf437013e0f4f5eb5f61d1000, - limb2: 0x11f3b538ea148a48, - limb3: 0x0 - }, - u384 { - limb0: 0x5465e18c062303ae3f8aa1f1, - limb1: 0x179bebdcfad6d5451005edce, - limb2: 0x16dc955db64a4e59, - limb3: 0x0 - } - ] - .span(), - b_den: array![ - u384 { - limb0: 0x3a1d2f33e9d10c4dfc6e7a2c, - limb1: 0x9ff0ec79d5d86d8cfb5e377c, - limb2: 0x234ffc77ce48bdbc, - limb3: 0x0 - }, - u384 { - limb0: 0xd72bed2cb506591177821fb1, - limb1: 0x88b6712424121ab347b91922, - limb2: 0x18904bd5699a625f, - limb3: 0x0 - }, - u384 { limb0: 0x3, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { - limb0: 0x5900416f76060c2939cd7c3e, - limb1: 0x585d2a248490a180e20598a, - limb2: 0x2c08331f303954b0, - limb3: 0x0 - }, - u384 { - limb0: 0x8d5a80c2646d25bfb8295e15, - limb1: 0xa8725430625c43cf7ce94f6c, - limb2: 0x2872f83e63ff363b, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() }, }; let derive_point_from_x_hint = DerivePointFromXHint { y_last_attempt: u384 { - limb0: 0x27a8cb2f33dbe73abe40f210, - limb1: 0x8d0faca26523d266cc3b9145, - limb2: 0x42040e705f24c38, - limb3: 0x0 + limb0: 0xa18a13bacab32867702ab75b, + limb1: 0x795ac015c21f1cf4f8b9a159, + limb2: 0x72bf60b2860e4052729bafb8, + limb3: 0xfa167d77bd8f62e17dd612, }, g_rhs_sqrt: array![ u384 { - limb0: 0x2d3e0bdd6bf3f74d6c52328d, - limb1: 0x71527040d0c3f7817b7bf815, - limb2: 0x15a8d801db170c33, - limb3: 0x0 + limb0: 0xa8c0f76621f85d0d5f09f3e4, + limb1: 0xa2d8a1fb70981bd906551e4f, + limb2: 0x2877f951cc18a5847f0e7c27, + limb3: 0xc32f38705bba10b41f82b8e, }, - u384 { - limb0: 0x55c6badaf21183fb47b0c5a5, - limb1: 0x2fd63c3f9dd67a2df9f85638, - limb2: 0x1319538ffcd9861c, - limb3: 0x0 - } ] .span(), }; let points = array![ G1Point { x: u384 { - limb0: 0x5c724369afbc772d02aed58e, - limb1: 0x2cd3bc838c66439a3d6160b, - limb2: 0x72f26b55fb56be1, - limb3: 0x0 - }, - y: u384 { - limb0: 0x772ca79c580e121ca148fe75, - limb1: 0xce2f55e418ca01b3d6d1014b, - limb2: 0x2884b1dc4e84e30f, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x536c985db33c69f7c242e07a, - limb1: 0xfc531bccffafcf1e59d91fb9, - limb2: 0x2585e4f8a31664cb, - limb3: 0x0 - }, - y: u384 { - limb0: 0x57fa42444057cf0c1d62ae3c, - limb1: 0x4f48d341183118d68ea41313, - limb2: 0x1d2d2799db056ed1, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x236ca9312dad3661a37f2d6f, - limb1: 0x98424c01caad7592315715d1, - limb2: 0x795b9fd941b23c4, - limb3: 0x0 + limb0: 0xe4f817e54aede0613c17035c, + limb1: 0xdff1f15010392a6da1f95a6, + limb2: 0xbed78d3d341e911d49f15454, + limb3: 0x18154782ce0913b21588066d, }, y: u384 { - limb0: 0xc7ab5834609a54b8993ffd79, - limb1: 0xe81cd490528b814ca632aace, - limb2: 0x2d9ff53d3009e6f7, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x163df40cafbf585ca5b2ab44, - limb1: 0xb4752e4666c88dbbe23783a0, - limb2: 0x1a801462ac9cb657, - limb3: 0x0 + limb0: 0x3d77d61326ef5a9a5a681757, + limb1: 0xd3070afd4f0e121de7fcee60, + limb2: 0xdf9ef4088763fe611fb85858, + limb3: 0x11a612bdd0bc09562856a70, }, - y: u384 { - limb0: 0xac9b557d7ca8625d957263c6, - limb1: 0xdc6f75fa8339a78b998ae54a, - limb2: 0x28683293b6494d9f, - limb3: 0x0 - } }, G1Point { x: u384 { - limb0: 0x5c4f5dca0c973b7f70bfff9, - limb1: 0x188c2afab11eef5d48ecda3c, - limb2: 0xc2fed35d36c49f1, - limb3: 0x0 + limb0: 0xde4f62a6588c9401ffefbd3, + limb1: 0x9bb5f797ac6d3395b71420b5, + limb2: 0xdc39e973aaf31de52219df08, + limb3: 0x105dcc4dce3960447d21d3c1, }, y: u384 { - limb0: 0x9d7244ea10697ca42e2e066b, - limb1: 0xfe18a519c7d68770dc48dbf9, - limb2: 0x149bb528db998529, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0xffc057151b06c496e6fdd440, - limb1: 0x5a01bae0c7441f08c7af1cf9, - limb2: 0x274e0e02529e6d26, - limb3: 0x0 + limb0: 0xaefd0d854043fd325dd3c34f, + limb1: 0x9b63c98d9a7845c52e1e2b0f, + limb2: 0x9db0be660d847ccc58358f3f, + limb3: 0x17cb6c41f0c4e1a7394ab62a, }, - y: u384 { - limb0: 0x65ceb8977413bc9798681ecb, - limb1: 0x19ffb287b45234f0c28fd1a7, - limb2: 0x28dbbd2f9267be76, - limb3: 0x0 - } }, G1Point { x: u384 { - limb0: 0xcfcdbfdb2056ff1a64bf1d47, - limb1: 0xf26fe2dae9f693d9b4aab2e6, - limb2: 0x12d66ad4802d841e, - limb3: 0x0 + limb0: 0xcf86158ab69213388e721bb7, + limb1: 0x5f7812269d790797cad9aa15, + limb2: 0xb1c3622a0177001d9ed8e25f, + limb3: 0x115cf429f459884785c6ba46, }, y: u384 { - limb0: 0xe6e34ebfa2e18dce86cadbdc, - limb1: 0x7ce096238b3d4b1b8fba6a55, - limb2: 0x2e0a660b1549800c, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0xd2dd03b29d58d045656ecf33, - limb1: 0xeddac3cf7a123aae2180739b, - limb2: 0x215bec6e0a03c924, - limb3: 0x0 + limb0: 0x1e81341e2f3f988ff115dda3, + limb1: 0xad22946489db6ee4954fa5e1, + limb2: 0x83bed94412e19d92b73cc763, + limb3: 0x2074c7bceff87d0d41edba1, }, - y: u384 { - limb0: 0xe5201e51828eb11589d8619f, - limb1: 0xa6563c760aa3a2c9d15af235, - limb2: 0x7ed0c9b2e7811fb, - limb3: 0x0 - } }, G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, ] .span(); let scalars = array![ u256 { low: 0x0, high: 0x0 }, u256 { - low: 0x101fbcccded733e8b421eaeb534097ca, high: 0xe30658b9148624feac1c14f30e9c5cc - }, - u256 { - low: 0x247a8333f7b0b7d2cda8056c3d15eef7, high: 0x5d67b7072ae22448b0163c1cd9d2b7d - }, - u256 { - low: 0xe005b86051ef1922fe43c49e149818d1, high: 0x1f507980eece328bff7b118e820865d6 - }, - u256 { - low: 0x4a84eb038d1fd9b74d2b9deb1beb3711, high: 0x154bc8ce8c25166a1ff39849b4e1357d - }, - u256 { - low: 0x3405095c8a5006c1ec188efbd080e66e, high: 0x2305d1699a6a5f92cca74147f6be1f72 - }, - u256 { - low: 0x1775336d71eacd0549a3e80e966e1277, high: 0x144a7edf6288e1a5cc45782198a6416d + low: 0x5a92118719c78df48f4ff31e78de5857, high: 0x51f964df9c6316b950f244556f25e2a2, }, u256 { - low: 0x2f1205544a5308cc3dfabc08935ddd72, high: 0x21c38572fcd81b5d24bace4307bf326 + low: 0x8d723104f77383c13458a748e9bb17bc, high: 0x42bbb74ddd84f39e71545a137a1d5006, }, u256 { - low: 0x42930b33a81ad477fb3675b89cdeb3e6, high: 0x2b70369e16febaa011af923d79fdef7c + low: 0xeb2083e6ce164dba0ff18e0242af9fc3, high: 0xbf0551e03983ca8ea7e9d498c778ea6, }, ] .span(); let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 0 + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 1, ); assert!( res == G1Point { x: u384 { - limb0: 0xdf3ff4fda1d34c435588a830, - limb1: 0x7f1179fec2ed6f794806a50f, - limb2: 0x22b125f13beca47c, - limb3: 0x0 + limb0: 0x565ae56adf7b971b0ce04f43, + limb1: 0x7605de48d1513332bde03447, + limb2: 0x47735c7081fba830eb5d056, + limb3: 0x99dd8907656b77fed7fdbb9, }, y: u384 { - limb0: 0x63c0c46b42db23b6549f5c9e, - limb1: 0xb85d08d5e7a2cceaf81de83d, - limb2: 0x1dd2305533c8321c, - limb3: 0x0 - } - } + limb0: 0x7e2426bdb634f1fc715d795c, + limb1: 0x3780edcc7f3bf5dbf54b578, + limb2: 0x973c69d9a9020e1f731e4837, + limb3: 0x114a8f415fb1d913dce9456a, + }, + }, ); } #[test] - fn test_msm_BN254_10P() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - ] - .span(), - array![ - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - ] - .span(), - array![ - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - ] - .span(), - array![ - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - ] - .span() - ), - ( - array![ - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - ] - .span(), - array![ - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - ] - .span(), - array![ - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - ] - .span(), - array![ - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - ] - .span(), - array![ - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - ] - .span() - ), - ] - .span() - ); + fn test_msm_BLS12_381_10P() { + let scalars_digits_decompositions = Option::None; let msm_hint = MSMHint { Q_low: G1Point { x: u384 { - limb0: 0x68bfb16794e5817b6b448ffe, - limb1: 0x111b7282dbeffcce7b3f715, - limb2: 0x246bed5ddc3c74a9, - limb3: 0x0 + limb0: 0x625c53bcdd3dedd0838beff1, + limb1: 0xcb07e15a10d4575bc015205c, + limb2: 0x2d427eeeb94d8dc9f8735c62, + limb3: 0x172bcbe199c9d8a12b9389c7, }, y: u384 { - limb0: 0xc91f291a147b3b57a00196a7, - limb1: 0x8839341dbd54ad6d21e0e0ef, - limb2: 0x18889d68d755b621, - limb3: 0x0 - } + limb0: 0xeafcb601f648817e1959e01c, + limb1: 0x6bd0b06d7fd2c766caf6ec5b, + limb2: 0xe1bfd50ac038928b2571d10e, + limb3: 0x11d9e1ad8577f4db1ef6b668, + }, }, Q_high: G1Point { x: u384 { - limb0: 0x635439e16fcbfe5eeba3ecf3, - limb1: 0x45b96bc19418f65e9d7aa491, - limb2: 0x305fbc2daa6baee9, - limb3: 0x0 + limb0: 0xedb9846df215a6a54b23692b, + limb1: 0x5f8b753d0b0f6a923b86bd3, + limb2: 0xf6b0c0878664ed75179fa99c, + limb3: 0x1172f8ba63ad84e04422505a, }, y: u384 { - limb0: 0x4368a16fa3c73077c4f3cd6, - limb1: 0xd363f026c2e38686d22c3585, - limb2: 0x291cf0bebd9202c1, - limb3: 0x0 - } + limb0: 0x79199cd6ac1258b0434b39ec, + limb1: 0x8d390ace52602684311b314, + limb2: 0x4e38c74bd0ff18deeac5f3b0, + limb3: 0xa3e7183ee7f841987aebb01, + }, }, Q_high_shifted: G1Point { x: u384 { - limb0: 0xb3b7d4349ed18bd82925ef84, - limb1: 0x3cd4cdba2a8676b60e52962c, - limb2: 0x2bc5ba2338a53b6c, - limb3: 0x0 + limb0: 0x761b1eefd28e95ed15b39509, + limb1: 0xcb46c3daf5eb3a2666d9c59e, + limb2: 0xd5af01e7fbf829a132533307, + limb3: 0x1928ae276500d4c516350a1d, }, y: u384 { - limb0: 0x866ec014b98838760c368ee6, - limb1: 0xfdaac7c202634518f73544ed, - limb2: 0x2206a4deafdc7284, - limb3: 0x0 - } + limb0: 0xa5a5bb48ca9892a49b6ac9fa, + limb1: 0x846dfec893cc4c8bdb0e834b, + limb2: 0x3bd7ed60d4c4f329754c8a4e, + limb3: 0x802baf75f1ba64c907b58be, + }, }, - SumDlogDivLow: FunctionFelt { + RLCSumDlogDiv: FunctionFelt { a_num: array![ u384 { - limb0: 0x5f51c3e08c86d6a1faf60021, - limb1: 0xec3328ece4d8d9f6a4fd1007, - limb2: 0x3c3656b75c2d055, - limb3: 0x0 + limb0: 0x8ab1cf70b5e29614ef9b84ca, + limb1: 0x3cd1a085277eac3827732f84, + limb2: 0x71346fb4a85ee6d0b4603a7d, + limb3: 0x16d0ea724e2ae2e53c73fe7d, + }, + u384 { + limb0: 0x69d199dca01ef0118d1dcdf, + limb1: 0x3a4b1ca9c39babc0f5797ad4, + limb2: 0x69514497620d13e636dba78c, + limb3: 0x878dd33920dcdb0d599fc56, }, u384 { - limb0: 0x532f041f81e46a75cb96822c, - limb1: 0xa3b136eeb38a3bb149a8138f, - limb2: 0x19444dae5c5aba3c, - limb3: 0x0 + limb0: 0x201d6a04f8269990f37f7eb5, + limb1: 0xed85433dbaa9cb18881938ac, + limb2: 0xfdb55248f94f601f2f101af7, + limb3: 0x191b3586c4b8f4b9734b0aa5, }, u384 { - limb0: 0x57862af362236a2b05d4085b, - limb1: 0x8d9ac676d7e691bc19803648, - limb2: 0x1a4b845f395ed8a8, - limb3: 0x0 + limb0: 0x1996b6a634b398f3758c43dd, + limb1: 0x64cfe52d2bcc5ed53ccf19e0, + limb2: 0x624a49f44a0e0591d3978fbd, + limb3: 0xdf6528087b815a43c82248, }, u384 { - limb0: 0xfb37bd7ca6415036c56b04de, - limb1: 0x21ca58dcfd6b3330e082cbcd, - limb2: 0x2c69c2d5b1df1dd3, - limb3: 0x0 + limb0: 0x172bd1b76a05538a6e252432, + limb1: 0x47138bff2a3e8807923d0664, + limb2: 0x771f433dda70518e0e798c91, + limb3: 0x171b0203a2fcc50e74654c54, }, u384 { - limb0: 0x316965f5009950b2bd787ab3, - limb1: 0x6893263e758516198e654ac6, - limb2: 0x2d8b6d116fa86df9, - limb3: 0x0 + limb0: 0xbb519c77ca4671e47f3cb302, + limb1: 0x613337c9ff525866bd0fc521, + limb2: 0x46e48af3a92946d00eca0700, + limb3: 0xf33efe3eec79a0edc8bc9eb, }, u384 { - limb0: 0xda4a4d6c00964fb73b80ff6, - limb1: 0x9b88e93fd6523241ef65a200, - limb2: 0x177c9307d71987d5, - limb3: 0x0 + limb0: 0xa9a0094345f13c9387f2fa64, + limb1: 0x4bc863850d2bc539c734914c, + limb2: 0xd845cd5c81f19abc1932c4a7, + limb3: 0x19691e5d70a8f9796d7c2256, }, u384 { - limb0: 0xd3225eb142bc1b70a39430fb, - limb1: 0x3bf8576417fa9a31c58828a2, - limb2: 0xecfcc97b49ccf82, - limb3: 0x0 + limb0: 0x22e425a247e7621705b1f68a, + limb1: 0xc7ba16ba72f2b3623eff2cde, + limb2: 0xf373d63621a96d47fe26d943, + limb3: 0x184ac35f8d8518289e158911, }, u384 { - limb0: 0x2965c32ecb416377abd7c816, - limb1: 0xef3d4dddb92c8277a1c238fb, - limb2: 0x129ca3741564251f, - limb3: 0x0 + limb0: 0x9e0c7385c2f6fb0e8fcf5550, + limb1: 0x620b7502f7aa1ccb5df6d9cb, + limb2: 0x60b3001bf5178198f73304ef, + limb3: 0x139b6612cf08581fc98293bc, }, u384 { - limb0: 0x7fa2ea835023e38f2fef98a3, - limb1: 0xdc2822db40c0ac2e5f34ed91, - limb2: 0x183227397098d014, - limb3: 0x0 + limb0: 0xebc1f38e0dfe03419a64637b, + limb1: 0x30ee469cba4e02a0c46d24f2, + limb2: 0xf316d00c2a85a4b30e1d0cb9, + limb3: 0x8a60743c4a10f659bae5ed6, + }, + u384 { + limb0: 0x81ffbf396e187da10cb114f2, + limb1: 0xa692b8772574cb0de39ac128, + limb2: 0xe509f2f1c05665c720e81c29, + limb3: 0x3fea10d9e17e73241990525, }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), a_den: array![ u384 { - limb0: 0x87df4abf0c6a304446ff70f2, - limb1: 0x19ab7a4a79c8a0f2cc004772, - limb2: 0x1ca1c49b765a352b, - limb3: 0x0 + limb0: 0xd186dcd427ebe6f00297a15a, + limb1: 0x27fb9c2c9a28eae521f7af75, + limb2: 0x63f0ee96d7340dc10924a1a3, + limb3: 0x160ea91d1d7cefa621595a77, + }, + u384 { + limb0: 0xeefe8b2b9b14ff5baa85b499, + limb1: 0x93fa6ad7f7c2610447e933f5, + limb2: 0x164ad6925c851087fa40b287, + limb3: 0x5d7c13c5ba5e89674056428, + }, + u384 { + limb0: 0x96c452392a0704f66b616b91, + limb1: 0xf8abbd34e634b6d471658a51, + limb2: 0xffa725a34255fd860665add1, + limb3: 0x1620cfcd602bd62512f59cee, }, u384 { - limb0: 0x4a9cc8f02f942d3ff0569357, - limb1: 0x605ef7d70b3d19527f879662, - limb2: 0xb0d044afb65c3ae, - limb3: 0x0 + limb0: 0x3a4e8d0b919aac9a857a14b3, + limb1: 0xc6e0b44f8fff20ed3843ed53, + limb2: 0x9724c5b64f35f2299a19c522, + limb3: 0x97a2a53bd9ae392c8522e0b, }, u384 { - limb0: 0xbff06cc6fc012e46ce8597dd, - limb1: 0xaf3ac9bb77e932807591f137, - limb2: 0x22cdd1723ce304a1, - limb3: 0x0 + limb0: 0xe5bfbd8b17b1d62eb1202094, + limb1: 0x51f1a48e0a485cbb4e911b42, + limb2: 0x13349ddace1ae9924a83d07c, + limb3: 0x143b26dc1731e7fa75f76e48, }, u384 { - limb0: 0xbd409afca8c4ce6e34a4a87, - limb1: 0x17f0367cae0c7fa77fa52c18, - limb2: 0xfbb0fb5a47d2dfb, - limb3: 0x0 + limb0: 0xfb34269230379fc03a9dcb56, + limb1: 0x6d3408de9ea4ff4ae2a34539, + limb2: 0x1c6707f081e5d0f9953ded2b, + limb3: 0xb1e600bdb7f72ca91777301, }, u384 { - limb0: 0xc7402436f68ed91e39a77ef7, - limb1: 0xf2048c8d7968634f4bdedd90, - limb2: 0x858f9edf9d7ea32, - limb3: 0x0 + limb0: 0x9c21d885fa8c568659065b24, + limb1: 0xd0e1b8bfb0cbec3a483a5c96, + limb2: 0x9dc95e7cb3a9a161ddbeb53a, + limb3: 0x68e1798fe700920f6f5ef04, }, u384 { - limb0: 0x5ffbc57fc7f820b7c2ced43e, - limb1: 0x50575672ff31216459e02bd7, - limb2: 0x292bc4914eebc9b4, - limb3: 0x0 + limb0: 0x160706cd5dbe4f2db69bf1c0, + limb1: 0x672c16258eda4f3836b14bef, + limb2: 0x170d05309f7bf9c526847711, + limb3: 0x14acc91d9913de2bcaff15a, }, u384 { - limb0: 0xef58a0c2eafe9fe12110ec94, - limb1: 0xddb9585a19359d3ab6cbc64, - limb2: 0x97f388c56c281c8, - limb3: 0x0 + limb0: 0x94f7676badbe63cf9305494a, + limb1: 0xfb574eb82a38560aafcf445a, + limb2: 0xfb0ac03457d113c9bdefc8fc, + limb3: 0x1434ccd56b75015e32c82e4, }, u384 { - limb0: 0x8e1973ef3122ace515e34f6b, - limb1: 0x994b52d9b2dbb34d4cb7c492, - limb2: 0xc5ad2704e5707, - limb3: 0x0 + limb0: 0xf1c6e9211b48344f132d339, + limb1: 0xf97aeccb5581c7cb73cdcb0d, + limb2: 0x69976546f0460586790971c, + limb3: 0x6005db9e2f7924e4987641c, }, u384 { - limb0: 0xa8f73b2325e3cff8873a6d39, - limb1: 0x52f22d598cbb78020150dff2, - limb2: 0x3fd228b13d83a52, - limb3: 0x0 + limb0: 0x295648946a104c338d1f612, + limb1: 0x452ceae1e36e06147f21f551, + limb2: 0x85604960283cf1286d4c90e, + limb3: 0x15c367b8cdb02274df9b23a4, }, u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), b_num: array![ u384 { - limb0: 0x27df8e0f1dad2973e0987145, - limb1: 0x208f96f80e7377c6959806c5, - limb2: 0x2615dfd18640ee3b, - limb3: 0x0 + limb0: 0xa7da4c70a1b9f31d169dec38, + limb1: 0xda917ca73530c04e211d9ca3, + limb2: 0x2b02374392fe2d98fb0e78fe, + limb3: 0xb7a58eac59d9da9671140e2, + }, + u384 { + limb0: 0x84b22c5af9a9e3e157ccae50, + limb1: 0x12895c43cc8b3d54c4bc8165, + limb2: 0x3c35dc714160a33ed6609440, + limb3: 0x11fa82e6d6f20786ac9dad1, + }, + u384 { + limb0: 0xecea39c95e382b53560f7fa1, + limb1: 0x756729d4ab92391969340ac2, + limb2: 0xe74182fd817492bbf2dcf0c3, + limb3: 0xdbef1f88d401500673a12db, }, u384 { - limb0: 0x56079308f3d1cb020ca59bf1, - limb1: 0x286317da6ffef6d84a5e3635, - limb2: 0xa708bba86f67a7c, - limb3: 0x0 + limb0: 0x3ca989a7b56b2c7f75a4d9bb, + limb1: 0xb02cf9ec98af1017311331d, + limb2: 0xeb59530380f1a63e621f498c, + limb3: 0x92ce7be9bd021b8717378f2, }, u384 { - limb0: 0x3fac13fc2f86c0976363af82, - limb1: 0x48b0cb2af2514eaf2aaeb5f6, - limb2: 0x185ec8e6bb269ff0, - limb3: 0x0 + limb0: 0xadce7fed71c794347fae057e, + limb1: 0x571cd70fd4b7e21376053d8c, + limb2: 0x2d7bd027a3760fa4f8196066, + limb3: 0x54c03b338ee928dae63fba4, }, u384 { - limb0: 0xf692680248fcc136f874f8ef, - limb1: 0xb4b31e61d5f1c1024e2083f5, - limb2: 0x1e7442ecbad78446, - limb3: 0x0 + limb0: 0xddadc8e7d517eb12fa85aa1b, + limb1: 0x1cf051aff9ff7acc545847e7, + limb2: 0xe1a530a0d04e7b50337ddc66, + limb3: 0x1506607336c0e2cf0c9b323e, }, u384 { - limb0: 0x3f06ea1c19f493987e6356aa, - limb1: 0x1f5907f0fffb1295b06956e2, - limb2: 0x1d81ae206eb241dc, - limb3: 0x0 + limb0: 0xb8386ed7968db3e348aa451e, + limb1: 0xbeaf14353dad9f07bcf8f066, + limb2: 0x5fd1d550543702fbf4940b3a, + limb3: 0x248fcce7d952c72b4f7c2d2, }, u384 { - limb0: 0x6877e35bcea7598cfa3eca3e, - limb1: 0x2da72f4503366903c72f43a7, - limb2: 0x1233b0140a105ca1, - limb3: 0x0 + limb0: 0x766876e1358bcc5655504501, + limb1: 0x93f0ba80107a39792bc32769, + limb2: 0x263a7a1e7dba4b5c2821f315, + limb3: 0x16593ad95a3a398271ee58e8, }, u384 { - limb0: 0x3a59a6057a8729c3bc9c0b80, - limb1: 0x41a3f25de942ad2437ee969c, - limb2: 0xab9b18db773a85d, - limb3: 0x0 + limb0: 0xd9611049bdb20dc7a273a9c9, + limb1: 0x25bd15916eb3ebf61ce88ffd, + limb2: 0x6a08fff8bbff6b1af40cf8c4, + limb3: 0x145841a44f8eb6456ce7efd7, }, u384 { - limb0: 0x401c7b41c4187a20d6b9d227, - limb1: 0x46c5a9240eb1141013a3d4ca, - limb2: 0x13451b969693ed65, - limb3: 0x0 + limb0: 0x156c8fe29205764463145cd5, + limb1: 0x50eed5270a5ffc8ea0a43307, + limb2: 0x257d95b1ffdba8b09f116af6, + limb3: 0x67bb7f215c7fe4b2d9d8c7e, }, u384 { - limb0: 0x2637c9ebef96769eb43184e1, - limb1: 0x90ba6a130e4b54a5f1aedf8, - limb2: 0x773f7d9c6ed941e, - limb3: 0x0 + limb0: 0x1b53ecca59368e3873fec13c, + limb1: 0xc5e7a5240562018fc56aa4f0, + limb2: 0xa713556ec8f3a00460ef75ec, + limb3: 0xe0aba43427f653ba472cea1, }, u384 { - limb0: 0x233541df4df575eecf0fa338, - limb1: 0xcf5ae7153af53a78161e095, - limb2: 0x20cb70a1bcd66f93, - limb3: 0x0 + limb0: 0x94e9adbdaa2a84e894a2281b, + limb1: 0xe9458eaa3dc58d3838ee6ba2, + limb2: 0x62ca42f023be5c9421f3a0b8, + limb3: 0x17991ca4164d969b413e7747, }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), b_den: array![ u384 { - limb0: 0x2f2c15afe91e04b5fc81558f, - limb1: 0x94b22928ebd88a7acc7f6bc6, - limb2: 0x2580ff5f81dcff57, - limb3: 0x0 - }, - u384 { - limb0: 0xdfd65ad08ebc87bfd103ba05, - limb1: 0x211ce78521b74bf77e96c326, - limb2: 0x21270ce0f2314b0b, - limb3: 0x0 + limb0: 0x321f735171b29bc00a5f8567, + limb1: 0x6a5bf8cf8490c9282bdabddb, + limb2: 0xc5e0b3d52f6a54754a034e4e, + limb3: 0xa376eb5c9740ac9a41272ba, }, u384 { - limb0: 0x6eedb13a7bc272a6ba96cd09, - limb1: 0x9d0fd1c564b8e6c631b2fe84, - limb2: 0x7a0d770f445cd91, - limb3: 0x0 + limb0: 0xbbfa2cae6c53fd6eaa16d264, + limb1: 0x4fe9ab5fdf0984111fa4cfd7, + limb2: 0x592b5a497214421fe902ca1e, + limb3: 0x175f04f16e97a259d01590a0, }, u384 { - limb0: 0x42e99d412fee8ae218615340, - limb1: 0xa92bd80a026cc78bb36e6129, - limb2: 0x1b6ea54982a01ef2, - limb3: 0x0 + limb0: 0x471548e57a1f13d9ad86ae43, + limb1: 0xad1c7cf0b4bff8e56992294a, + limb2: 0x34b99006dbf213893f077f09, + limb3: 0xa800976d42fa4c56a837c99, }, u384 { - limb0: 0xa05d35951340b89a9d4d103c, - limb1: 0x366c9d7f7776434063242f14, - limb2: 0x2417f214e8ed8247, - limb3: 0x0 + limb0: 0x58191102fa58995a18809ed0, + limb1: 0x751cc828ecc38251c5af64c5, + limb2: 0x39ecabc14b1d3f5d8a8190af, + limb3: 0x7f52e97a0e8b0bcac6ac339, }, u384 { - limb0: 0xa68e5d9e9f87ec298d7b1cc2, - limb1: 0x774ffbf0f0f88d94bcae3509, - limb2: 0xd2433cd86118141, - limb3: 0x0 + limb0: 0x72018158cbdf58166f0736e8, + limb1: 0xa62e852d3cd0f1852629a105, + limb2: 0x993a4777678ad44249c0bc3a, + limb3: 0x8c126ee0bedd4b16a902625, }, u384 { - limb0: 0xd9ddebf88b882c8a467d1043, - limb1: 0x4182f70d92c68d2281eb6146, - limb2: 0x2c38b95aa8c4b353, - limb3: 0x0 + limb0: 0x20ecec8276e783f755d94393, + limb1: 0xdf1a3b6d7366c7b7be9a9f3c, + limb2: 0xeaabebb680feaa6274533d00, + limb3: 0xe982c285b29d41ac29c1986, }, u384 { - limb0: 0x718c800489f6dfcd7b516d38, - limb1: 0xbde6851a91fb7d3732062b48, - limb2: 0x87e0a654ac2ef49, - limb3: 0x0 + limb0: 0xf981ef23c1cd06b3e993d698, + limb1: 0xa336c4ad5c7ddbb23a815fae, + limb2: 0xcafe92d1b9652c2c1d8f874e, + limb3: 0x9b176cd7ddb217c590e4267, }, u384 { - limb0: 0xf26fac5bfd83048a80011ea2, - limb1: 0x90dd98c923e2310cc651611d, - limb2: 0x4beddbfa942d881, - limb3: 0x0 + limb0: 0x3ddbd8c08eab12e58b8fe794, + limb1: 0xeea1fd2445b1999c29564aff, + limb2: 0x6f68b29d4c0ad0a6e495acc1, + limb3: 0x196659237d76df8568b733b0, }, u384 { - limb0: 0xef58a0c2eafe9fe12110ec97, - limb1: 0xddb9585a19359d3ab6cbc64, - limb2: 0x97f388c56c281c8, - limb3: 0x0 + limb0: 0x4f11c440e7312efe86b2f07e, + limb1: 0x5a9143bf47865775a1e056a4, + limb2: 0x89208c1e12a20208cfd111f, + limb3: 0x102b9341365cb3221e297e95, }, u384 { - limb0: 0x8e1973ef3122ace515e34f6b, - limb1: 0x994b52d9b2dbb34d4cb7c492, - limb2: 0xc5ad2704e5707, - limb3: 0x0 + limb0: 0x273f92ce875f639a1dd1fd5d, + limb1: 0x4f9c994c10221543f8c588cc, + limb2: 0x74e38af70b43d73e887bfeef, + limb3: 0x48e7c9650ce6bbfd1f7d7be, }, u384 { - limb0: 0xa8f73b2325e3cff8873a6d39, - limb1: 0x52f22d598cbb78020150dff2, - limb2: 0x3fd228b13d83a52, - limb3: 0x0 + limb0: 0xc6098f34a45623a99e4ca07, + limb1: 0x464d49ca387f851dd7352137, + limb2: 0x6e8211027c2553806748630c, + limb3: 0xa5535b663d213e759c988c7, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ u384 { - limb0: 0x81f495f64e702f5554804917, - limb1: 0xf82ed80f85ee57f8b0e0f048, - limb2: 0x2edbd3fa55a1361, - limb3: 0x0 + limb0: 0x94f7676badbe63cf9305494e, + limb1: 0xfb574eb82a38560aafcf445a, + limb2: 0xfb0ac03457d113c9bdefc8fc, + limb3: 0x1434ccd56b75015e32c82e4, }, u384 { - limb0: 0x36b72f82156e457d7dda8351, - limb1: 0x5cdfba2bf14e6b6923ed664e, - limb2: 0x1eeff52a9304b222, - limb3: 0x0 + limb0: 0xf1c6e9211b48344f132d339, + limb1: 0xf97aeccb5581c7cb73cdcb0d, + limb2: 0x69976546f0460586790971c, + limb3: 0x6005db9e2f7924e4987641c, }, u384 { - limb0: 0x1dfaed23b53e95da747748ff, - limb1: 0x28c377573f63ec892e97d89a, - limb2: 0x59225e9731fd43b, - limb3: 0x0 - }, - u384 { - limb0: 0xe0271fb9aaca3ac28976d5e2, - limb1: 0xff3ca3689fb3a21a94f7314b, - limb2: 0x311aa96b94d65d7, - limb3: 0x0 - }, - u384 { - limb0: 0xfadb2ce0b72f8448ded6d1a0, - limb1: 0xb61b71bb83da566ea84bc096, - limb2: 0x1633598a6f14fdbf, - limb3: 0x0 - }, - u384 { - limb0: 0xe2df61d62fcfeba61b3a102c, - limb1: 0x256835cbcc978e782564a76d, - limb2: 0x28a7052e3cac91b, - limb3: 0x0 - }, - u384 { - limb0: 0x542c932740f2577cff5930c8, - limb1: 0x6fb292c87dc760b4f3c3d525, - limb2: 0x1fa75b3071c3a155, - limb3: 0x0 - }, - u384 { - limb0: 0xbcf739782299015939a675ed, - limb1: 0x3479cb8ebd269f3187c194ad, - limb2: 0x2b9ce00d21713aad, - limb3: 0x0 - }, - u384 { - limb0: 0x5c16e1db53349c0b56cb3b15, - limb1: 0xb85045b68181585d42558246, - limb2: 0x30644e72e131a029, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { - limb0: 0xe34561de3ebf36c298cea030, - limb1: 0x27005bb4091762d858356ad7, - limb2: 0x180f2349e3ade9cf, - limb3: 0x0 - }, - u384 { - limb0: 0x584be1d26ab0e33221e79a23, - limb1: 0x91eaee8a90e327918cfdc5ce, - limb2: 0xc600571db5763d4, - limb3: 0x0 - }, - u384 { - limb0: 0xd42d9c157f2513468c393fba, - limb1: 0xc106a5113610549a0738f8fc, - limb2: 0x84c1ea1f56c584, - limb3: 0x0 - }, - u384 { - limb0: 0x312b9600c7fb13edfa42f854, - limb1: 0x648e327565e6b6722164e945, - limb2: 0x316e9d9514acbf6, - limb3: 0x0 - }, - u384 { - limb0: 0xacb769d7eae5f59bedf5c680, - limb1: 0x49df84bb2e78a51fa632bd08, - limb2: 0x301cd14cd4bca84d, - limb3: 0x0 - }, - u384 { - limb0: 0xa5265fc824148d315506860a, - limb1: 0x2686217c69b2b41b4b13e8, - limb2: 0x1d18726ec5794324, - limb3: 0x0 - }, - u384 { - limb0: 0x70a36afac65e30dafc7df63e, - limb1: 0xee3fe864d0d593c9aa35375e, - limb2: 0x2b498cc8951581e6, - limb3: 0x0 - }, - u384 { - limb0: 0x6e7adfb9dbd46ad8a7ecc50c, - limb1: 0xe31373013af91a94369e84db, - limb2: 0x1876eff45644b83d, - limb3: 0x0 - }, - u384 { - limb0: 0x16d47d36871ddf2bdf580d8b, - limb1: 0xc69abe76a7e2d9cde30b9d08, - limb2: 0x286da22e26daa03b, - limb3: 0x0 + limb0: 0x295648946a104c338d1f612, + limb1: 0x452ceae1e36e06147f21f551, + limb2: 0x85604960283cf1286d4c90e, + limb3: 0x15c367b8cdb02274df9b23a4, }, u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0xfb90ee7bdee5f39cd08c2cd5, - limb1: 0x5135573657a099a69ba82853, - limb2: 0x63a29b4d4d7c064, - limb3: 0x0 - }, - u384 { - limb0: 0x2196c0128d6a587aed0355c0, - limb1: 0xf8c11f32a383e642d1c6a1a9, - limb2: 0x2bb300c5fad1f8bd, - limb3: 0x0 - }, - u384 { - limb0: 0x18c346dd3d82e3a1f40ce89a, - limb1: 0xc7dcf74662168ac69cf35e80, - limb2: 0x18908960de3e438c, - limb3: 0x0 - }, - u384 { - limb0: 0x728b4097c268d9eba9170968, - limb1: 0x33a9de25e8dfd2c598243467, - limb2: 0x22e03ff5649ccc25, - limb3: 0x0 - }, - u384 { - limb0: 0x6b311e5159740266d087830e, - limb1: 0x544ea0f2bd8a23655569ae91, - limb2: 0x1bff413197289f61, - limb3: 0x0 - }, - u384 { - limb0: 0xf70b40acfe3df31d06a9fb98, - limb1: 0xd73987de867b3ec16fe45cd4, - limb2: 0xbb9c6d18f0d28f6, - limb3: 0x0 - }, - u384 { - limb0: 0xdf5fdd321ffa4399d0742ddc, - limb1: 0xce1d4f65fc6388bd897d25d6, - limb2: 0x3ff829a416fee05, - limb3: 0x0 - }, - u384 { - limb0: 0xffa087dfb9c5676e66987e83, - limb1: 0x415633dcfe8cdbdfc6b88d86, - limb2: 0x2ab238cd61699ad1, - limb3: 0x0 - }, - u384 { - limb0: 0x5e8ee702b3913c848402aacd, - limb1: 0xa4b280122782eb42a9ca643a, - limb2: 0x10be919857e4bcd, - limb3: 0x0 - }, - u384 { - limb0: 0x4e38574c0e1d3f27dad80e8e, - limb1: 0x13491266711b64b82b205215, - limb2: 0x2dd8d5c14cd95733, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { - limb0: 0x415e5b0d801d1830f1eee349, - limb1: 0xbcb0cd6599c4d02b711ed5f6, - limb2: 0x17c91b6ac9d81d43, - limb3: 0x0 - }, - u384 { - limb0: 0x8e3a5774012a99665b6ce69, - limb1: 0xb5c0cb9fb2a976b4a6f9516b, - limb2: 0x2520105592062b7d, - limb3: 0x0 - }, - u384 { - limb0: 0x7c88d4407d6f39d3a4abbf2e, - limb1: 0x4313ef33a230fdce15aaeaf6, - limb2: 0x18e45be5e04508e, - limb3: 0x0 - }, - u384 { - limb0: 0x76c823e096b0728c8797892c, - limb1: 0x54aaf3143acb862ebc6426a7, - limb2: 0x2153e0d5d78e4db2, - limb3: 0x0 - }, - u384 { - limb0: 0x251cbfb277011fc16251f5ce, - limb1: 0x4698ab9897c90dd7b911bd34, - limb2: 0xb898dffb5f87c3f, - limb3: 0x0 - }, - u384 { - limb0: 0x5b2ef0e0af422ec3b2cfd491, - limb1: 0x929f1bf29cc1458c198ca25, - limb2: 0x2769cac38e90eec7, - limb3: 0x0 - }, - u384 { - limb0: 0xb23241d6a2d48e513ec2e080, - limb1: 0xbead6036d564c113f101ba3d, - limb2: 0x242af34d4e281157, - limb3: 0x0 - }, - u384 { - limb0: 0x274473eb06221df834c21b16, - limb1: 0x82795251dc6144211b0b7678, - limb2: 0x18b90444152790b3, - limb3: 0x0 - }, - u384 { - limb0: 0xb04e77c4050c86706997b6d6, - limb1: 0x2b05f061ef8e3704fde9ab4c, - limb2: 0x5346da09674435a, - limb3: 0x0 - }, - u384 { - limb0: 0x70a36afac65e30dafc7df641, - limb1: 0xee3fe864d0d593c9aa35375e, - limb2: 0x2b498cc8951581e6, - limb3: 0x0 - }, - u384 { - limb0: 0x6e7adfb9dbd46ad8a7ecc50c, - limb1: 0xe31373013af91a94369e84db, - limb2: 0x1876eff45644b83d, - limb3: 0x0 - }, - u384 { - limb0: 0x16d47d36871ddf2bdf580d8b, - limb1: 0xc69abe76a7e2d9cde30b9d08, - limb2: 0x286da22e26daa03b, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ - u384 { - limb0: 0xc31df45182f5cecdb94603b3, - limb1: 0x6dc3d8ae5baf1fa9ba9b1f97, - limb2: 0x1b0b1abce36ce9fc, - limb3: 0x0 - }, - u384 { - limb0: 0x8bbd8e60fc1a1859e888a509, - limb1: 0xdc2822db40c0ac2e47c7fadc, - limb2: 0x183227397098d014, - limb3: 0x0 - } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x651161258487ddb3be23a80e, - limb1: 0xb4de25cd3b8e534fda5a8fc, - limb2: 0x11fccd5743d87daa, - limb3: 0x0 - }, - u384 { - limb0: 0xb9d7870469a38df69c301e17, - limb1: 0xee1251f1446343a683359a64, - limb2: 0x4a32694df5255fd, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0xd5ac57f4f347f88c426f5536, - limb1: 0xcc6e895d127411d36f40829c, - limb2: 0x1675066c22755474, - limb3: 0x0 - }, - u384 { - limb0: 0xba243da9a9afe3c980815a6a, - limb1: 0x3c1f8e2f3cbdcc87f6d6a281, - limb2: 0x116810b58ffaa6e9, - limb3: 0x0 - }, - u384 { - limb0: 0xf965823d8032a2bdfcb66efc, - limb1: 0x66aa66c9cbcb963d7080870f, - limb2: 0x15010de5ebac89ae, - limb3: 0x0 - } ] .span(), - b_den: array![ - u384 { - limb0: 0xc6c258e351770d0461edfae3, - limb1: 0x6999615ff9a95741616f9063, - limb2: 0x5921992ea57d8d4, - limb3: 0x0 - }, - u384 { - limb0: 0x2d86950d3ceaa9e3d4905a45, - limb1: 0xca36f5d3cd29caf389a0cf2e, - limb2: 0xde973be9df701f9, - limb3: 0x0 - }, - u384 { limb0: 0x3, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { - limb0: 0x651161258487ddb3be23a80e, - limb1: 0xb4de25cd3b8e534fda5a8fc, - limb2: 0x11fccd5743d87daa, - limb3: 0x0 - }, - u384 { - limb0: 0xb9d7870469a38df69c301e17, - limb1: 0xee1251f1446343a683359a64, - limb2: 0x4a32694df5255fd, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() }, }; let derive_point_from_x_hint = DerivePointFromXHint { y_last_attempt: u384 { - limb0: 0x792ef5ee2bca1f87630a7651, - limb1: 0x7629a25e0950c39ee0f6bfcd, - limb2: 0x118fb77384c18c3d, - limb3: 0x0 + limb0: 0x27301d1d2721a53329d1df5, + limb1: 0x2467201387763c5c75a93064, + limb2: 0xbb35ba06d1626d6fd0e984b, + limb3: 0xabac5a5d470a027cad4fd71, }, - g_rhs_sqrt: array![ - u384 { - limb0: 0x2bb89ea5b236f9cc2b8ba784, - limb1: 0x4ae53de8f9f077ee43278c73, - limb2: 0x36e979a3ceed10c, - limb3: 0x0 - } - ] - .span(), + g_rhs_sqrt: array![].span(), }; let points = array![ G1Point { x: u384 { - limb0: 0x5c724369afbc772d02aed58e, - limb1: 0x2cd3bc838c66439a3d6160b, - limb2: 0x72f26b55fb56be1, - limb3: 0x0 + limb0: 0xe4f817e54aede0613c17035c, + limb1: 0xdff1f15010392a6da1f95a6, + limb2: 0xbed78d3d341e911d49f15454, + limb3: 0x18154782ce0913b21588066d, }, y: u384 { - limb0: 0x772ca79c580e121ca148fe75, - limb1: 0xce2f55e418ca01b3d6d1014b, - limb2: 0x2884b1dc4e84e30f, - limb3: 0x0 - } + limb0: 0x3d77d61326ef5a9a5a681757, + limb1: 0xd3070afd4f0e121de7fcee60, + limb2: 0xdf9ef4088763fe611fb85858, + limb3: 0x11a612bdd0bc09562856a70, + }, }, G1Point { x: u384 { - limb0: 0x536c985db33c69f7c242e07a, - limb1: 0xfc531bccffafcf1e59d91fb9, - limb2: 0x2585e4f8a31664cb, - limb3: 0x0 + limb0: 0xde4f62a6588c9401ffefbd3, + limb1: 0x9bb5f797ac6d3395b71420b5, + limb2: 0xdc39e973aaf31de52219df08, + limb3: 0x105dcc4dce3960447d21d3c1, }, y: u384 { - limb0: 0x57fa42444057cf0c1d62ae3c, - limb1: 0x4f48d341183118d68ea41313, - limb2: 0x1d2d2799db056ed1, - limb3: 0x0 - } + limb0: 0xaefd0d854043fd325dd3c34f, + limb1: 0x9b63c98d9a7845c52e1e2b0f, + limb2: 0x9db0be660d847ccc58358f3f, + limb3: 0x17cb6c41f0c4e1a7394ab62a, + }, }, G1Point { x: u384 { - limb0: 0x236ca9312dad3661a37f2d6f, - limb1: 0x98424c01caad7592315715d1, - limb2: 0x795b9fd941b23c4, - limb3: 0x0 + limb0: 0xcf86158ab69213388e721bb7, + limb1: 0x5f7812269d790797cad9aa15, + limb2: 0xb1c3622a0177001d9ed8e25f, + limb3: 0x115cf429f459884785c6ba46, }, y: u384 { - limb0: 0xc7ab5834609a54b8993ffd79, - limb1: 0xe81cd490528b814ca632aace, - limb2: 0x2d9ff53d3009e6f7, - limb3: 0x0 - } + limb0: 0x1e81341e2f3f988ff115dda3, + limb1: 0xad22946489db6ee4954fa5e1, + limb2: 0x83bed94412e19d92b73cc763, + limb3: 0x2074c7bceff87d0d41edba1, + }, }, G1Point { x: u384 { - limb0: 0x163df40cafbf585ca5b2ab44, - limb1: 0xb4752e4666c88dbbe23783a0, - limb2: 0x1a801462ac9cb657, - limb3: 0x0 + limb0: 0xe2955c55da59eba4b7b57d3d, + limb1: 0x1e6629b0431bce67cf28c22, + limb2: 0x1c35b7efd5b67f87221b8bfc, + limb3: 0x3e53df9e3488a9e42acd87e, }, y: u384 { - limb0: 0xac9b557d7ca8625d957263c6, - limb1: 0xdc6f75fa8339a78b998ae54a, - limb2: 0x28683293b6494d9f, - limb3: 0x0 - } + limb0: 0x2e089afa726154d40dd12102, + limb1: 0x5391613ecf49db2bcf1cad86, + limb2: 0x84a2abb2de6b3a6e09026a50, + limb3: 0x19557a3a3c1d62a205d5dc87, + }, }, G1Point { x: u384 { - limb0: 0x5c4f5dca0c973b7f70bfff9, - limb1: 0x188c2afab11eef5d48ecda3c, - limb2: 0xc2fed35d36c49f1, - limb3: 0x0 + limb0: 0x490bf40774926e8b279947c, + limb1: 0xeabab6aef9e9d2a4f64f4e7d, + limb2: 0x3e309fe1b1c8247abab20d7e, + limb3: 0x79c527862917f69ac58fcc4, }, y: u384 { - limb0: 0x9d7244ea10697ca42e2e066b, - limb1: 0xfe18a519c7d68770dc48dbf9, - limb2: 0x149bb528db998529, - limb3: 0x0 - } + limb0: 0xacb18f2da2b425c2ff50dafd, + limb1: 0x7623850d87e279a8a30f31ff, + limb2: 0x777564c7291d95fa80203ade, + limb3: 0x1764ce0e7fb626109b63789b, + }, }, G1Point { x: u384 { - limb0: 0xffc057151b06c496e6fdd440, - limb1: 0x5a01bae0c7441f08c7af1cf9, - limb2: 0x274e0e02529e6d26, - limb3: 0x0 + limb0: 0x42f2f3f4f6b9d2c2b73a361f, + limb1: 0xcd78c070c184c38b1e5716aa, + limb2: 0x72cbc24cd90da89e0e3cefe4, + limb3: 0x19485e1c46d0dce75f8b192b, }, y: u384 { - limb0: 0x65ceb8977413bc9798681ecb, - limb1: 0x19ffb287b45234f0c28fd1a7, - limb2: 0x28dbbd2f9267be76, - limb3: 0x0 - } + limb0: 0xb56b3539074b3c47b3f504d9, + limb1: 0x2c229530bddedd8851b03dcc, + limb2: 0xc93eef8474c4e18d6378e7f0, + limb3: 0x173d36f17a3c9ae77a2acc25, + }, }, G1Point { x: u384 { - limb0: 0xcfcdbfdb2056ff1a64bf1d47, - limb1: 0xf26fe2dae9f693d9b4aab2e6, - limb2: 0x12d66ad4802d841e, - limb3: 0x0 + limb0: 0x5fbf29cf20556a11621a6639, + limb1: 0xdfda5b7dbf0b226822094787, + limb2: 0x4a3b059e521b4b0445df96d5, + limb3: 0x333988c2c09f5af061cdfb, }, y: u384 { - limb0: 0xe6e34ebfa2e18dce86cadbdc, - limb1: 0x7ce096238b3d4b1b8fba6a55, - limb2: 0x2e0a660b1549800c, - limb3: 0x0 - } + limb0: 0x13d3570be6d27d1d588b22fc, + limb1: 0x20c763e58d4df3e4990cdae9, + limb2: 0x2c3301367f400c31f4bded26, + limb3: 0x16a6c25d133fba74b4c55972, + }, }, G1Point { x: u384 { - limb0: 0xd2dd03b29d58d045656ecf33, - limb1: 0xeddac3cf7a123aae2180739b, - limb2: 0x215bec6e0a03c924, - limb3: 0x0 + limb0: 0xcb24d12438557639f52df5fd, + limb1: 0x4a6a46feebe8a88a8062bd0e, + limb2: 0x65f04211af4b168b1e25787d, + limb3: 0x17935d6f4fa575744ca46f75, }, y: u384 { - limb0: 0xe5201e51828eb11589d8619f, - limb1: 0xa6563c760aa3a2c9d15af235, - limb2: 0x7ed0c9b2e7811fb, - limb3: 0x0 - } + limb0: 0x644f324be8a5c152625a5b8a, + limb1: 0x501e52e8c5707d7a3a77ee18, + limb2: 0x9636c463c14c5b85c2e6d3b1, + limb3: 0x1939b6f297f7b5b7fd0ac458, + }, }, G1Point { x: u384 { - limb0: 0xc33ac21c67b06a9994457b4c, - limb1: 0xa9aa5573bf7a92aab85366eb, - limb2: 0x1a407281e1d92e91, - limb3: 0x0 + limb0: 0xde1d8e2670532ec5bba60ade, + limb1: 0x1154f5064f7dd38656f7f82b, + limb2: 0xc9bec68372b7d07dcf66270c, + limb3: 0x315ced00b3153219bbd430, }, y: u384 { - limb0: 0x5a306649d971b115d71a78b1, - limb1: 0xa70687a9b5132e26b2cfbb37, - limb2: 0x2031920af5d6c9db, - limb3: 0x0 - } + limb0: 0xc48b3bc110e208d827b13f4d, + limb1: 0x87d82592699bca3dbf847c2b, + limb2: 0xff04f0f2c8be12365aa73443, + limb3: 0x1739c8c450ac994a5326c809, + }, }, G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, ] .span(); let scalars = array![ u256 { low: 0x0, high: 0x0 }, u256 { - low: 0x247a8333f7b0b7d2cda8056c3d15eef7, high: 0x5d67b7072ae22448b0163c1cd9d2b7d + low: 0x247a8333f7b0b7d2cda8056c3d15eef7, high: 0xbacf6e172ae22448b0163c1cd9d2b7d, }, u256 { - low: 0xe005b86051ef1922fe43c49e149818d1, high: 0x1f507980eece328bff7b118e820865d6 + low: 0xe005b86051ef1922fe43c49e149818d1, high: 0x3ea0f301eece328bff7b118e820865d6, }, u256 { - low: 0x4a84eb038d1fd9b74d2b9deb1beb3711, high: 0x154bc8ce8c25166a1ff39849b4e1357d + low: 0x4a84eb038d1fd9b74d2b9deb1beb3711, high: 0x2a97919d8c25166a1ff39849b4e1357d, }, u256 { - low: 0x3405095c8a5006c1ec188efbd080e66e, high: 0x2305d1699a6a5f92cca74147f6be1f72 + low: 0x3405095c8a5006c1ec188efbd080e66e, high: 0x460ba2d39a6a5f92cca74147f6be1f72, }, u256 { - low: 0x1775336d71eacd0549a3e80e966e1277, high: 0x144a7edf6288e1a5cc45782198a6416d + low: 0x1775336d71eacd0549a3e80e966e1277, high: 0x2894fdbe6288e1a5cc45782198a6416d, }, u256 { - low: 0x2f1205544a5308cc3dfabc08935ddd72, high: 0x21c38572fcd81b5d24bace4307bf326 + low: 0x2f1205544a5308cc3dfabc08935ddd72, high: 0x43870ae2fcd81b5d24bace4307bf326, }, u256 { - low: 0x42930b33a81ad477fb3675b89cdeb3e6, high: 0x2b70369e16febaa011af923d79fdef7c + low: 0x42930b33a81ad477fb3675b89cdeb3e6, high: 0x56e06d3d16febaa011af923d79fdef7c, }, u256 { - low: 0x2648ee38e07405eb215663abc1f254b8, high: 0x522c9d6d7ab792809e469e6ec62b2c8 + low: 0x2648ee38e07405eb215663abc1f254b8, high: 0xa4593acd7ab792809e469e6ec62b2c8, }, u256 { - low: 0x85940927468ff53d864a7a50b48d73f1, high: 0xdc5dba1d977e9933c49d76fcfc6e625 + low: 0xd450fe4aec4f217bb306d1a8e5eeac76, high: 0x6b3f2afe642bfa42aef9c00b8a64c1b9, }, ] .span(); let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 0 + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 1, ); assert!( res == G1Point { x: u384 { - limb0: 0x308fd6b45a63e49bf708e96, - limb1: 0x9b97a3363c95c209e8fab620, - limb2: 0x1ae699a4de6d9998, - limb3: 0x0 + limb0: 0x75b33668139cf598c76976ae, + limb1: 0xb57555c5f811f5932d2d664f, + limb2: 0x3dc0a463f21f628f6dd61035, + limb3: 0x13a7f85cd448414d544b7ba9, }, y: u384 { - limb0: 0x6966fe3425872dc23fd55404, - limb1: 0xa8be5375eb482c4e7d2ad043, - limb2: 0x12572137d2078244, - limb3: 0x0 - } - } + limb0: 0xedc098375876a9807b6eda05, + limb1: 0x650b70683fc239e28e6697c5, + limb2: 0x368e2ab0d50c091cf0be6938, + limb3: 0xcd0881f2458dd277af780b3, + }, + }, ); } #[test] - fn test_msm_BN254_11P() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - ] - .span(), - array![ - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - ] - .span(), - array![ - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - ] - .span() - ), - ( - array![ - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - ] - .span(), - array![ - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - ] - .span(), - array![ - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - ] - .span(), - array![ - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - ] - .span(), - array![ - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - ] - .span(), - array![ - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - ] - .span() - ), - ] - .span() - ); + fn test_msm_BLS12_381_11P() { + let scalars_digits_decompositions = Option::None; let msm_hint = MSMHint { Q_low: G1Point { x: u384 { - limb0: 0x90b45d7a39843ae2cf8649e4, - limb1: 0x4f3f05fe6a82257db5ef4638, - limb2: 0x2e5317b879b4f67d, - limb3: 0x0 + limb0: 0xda9cdde4e5c188233d85ff60, + limb1: 0x94bff3ad03f3cd34b48043c2, + limb2: 0x25a858c0f2c2ce6d9c1bcf02, + limb3: 0x1832d91c2c3f9a6f969b267e, }, y: u384 { - limb0: 0xb5aec8ffa005f236cb86d08f, - limb1: 0x7c11b27ce9c06cee3fa3793, - limb2: 0x13abbc2cb5a70d04, - limb3: 0x0 - } + limb0: 0x96f189a68bc1acf589e8ee8, + limb1: 0x4a1949d57a1cd60710138159, + limb2: 0x10f87bc3adcbbcafeb091948, + limb3: 0x1519173fd0ddb592b2a9438f, + }, }, Q_high: G1Point { x: u384 { - limb0: 0x6c7780a212a34f79a5a4984, - limb1: 0xd2b9f43370853e82b6e280f3, - limb2: 0x49098e1fef9ff1, - limb3: 0x0 + limb0: 0xe28783905041626972027b5d, + limb1: 0x209a7185e3d7dcf824cd318, + limb2: 0xedea887527ba8825337cc658, + limb3: 0xa097cd7b1cf6b4244b0d234, }, y: u384 { - limb0: 0xf16e5ea4fa4507af42f9148f, - limb1: 0x67e653350524a43c52475d47, - limb2: 0x1ff99fb3e2fe4ead, - limb3: 0x0 - } + limb0: 0x8a8dfb95bbd5a3372759b0de, + limb1: 0x59df5374722393631e53b53, + limb2: 0x96fc6de10523745e115d47e4, + limb3: 0x399551a8a5d335850b49e6a, + }, }, Q_high_shifted: G1Point { x: u384 { - limb0: 0xc18d4af2d637781faf364b80, - limb1: 0x43beee7449f92708853e95de, - limb2: 0x3072f460ce59704, - limb3: 0x0 + limb0: 0x28f1d7db996ba62dbf84ef85, + limb1: 0xdd4f6c28e044fec88359238c, + limb2: 0x3dc00b6d0c79ca704e025684, + limb3: 0x18cd5498819252b01053293c, }, y: u384 { - limb0: 0x1dddbd01de2320fae30a9244, - limb1: 0xf6111cd106dc6a17348c4d58, - limb2: 0xc922fcf80c6b390, - limb3: 0x0 - } + limb0: 0x78e32d74881ba0a29e12561, + limb1: 0x6587f89c3b6e577301996b36, + limb2: 0x84c0912c12022d68336ec3d5, + limb3: 0x18587691602430b0d4f1defe, + }, }, - SumDlogDivLow: FunctionFelt { + RLCSumDlogDiv: FunctionFelt { a_num: array![ u384 { - limb0: 0xf184c3cae225009b56f88267, - limb1: 0x57bc64e905798e76fefa631a, - limb2: 0xe8d725a8e9a8fb1, - limb3: 0x0 - }, - u384 { - limb0: 0xabf9b0472844b35780291374, - limb1: 0xbaa158cf765c39a72d4fe42b, - limb2: 0x1bca43911c49d510, - limb3: 0x0 - }, - u384 { - limb0: 0x6ea563415bac85b622cd8819, - limb1: 0xe3f4412714b49eb591d013de, - limb2: 0x1c47fa71a5208f2e, - limb3: 0x0 - }, - u384 { - limb0: 0x54561408f69dd18704ad79f9, - limb1: 0x76261218353d5f1727c61123, - limb2: 0xb13c4f87ba870b0, - limb3: 0x0 - }, - u384 { - limb0: 0xd960440c30fdca4000e73a63, - limb1: 0x1f5dc87056812ccc9134e83a, - limb2: 0x26aae97e130dec15, - limb3: 0x0 + limb0: 0xa0de26ff3ae146fc47f83584, + limb1: 0x66c358a7e7f26cc7fdcf7132, + limb2: 0x5360dcccc62402b4b04905b, + limb3: 0x6843a1421bc106828db9abc, }, u384 { - limb0: 0xafe47f9e31f27206d3d4fe17, - limb1: 0xcfa168a90c6460f4984de44d, - limb2: 0x1bc4af113d97a3f5, - limb3: 0x0 + limb0: 0x3da5c8b5f504f4615c5fffc7, + limb1: 0x8ee50683716614477c06f07c, + limb2: 0x244794c48ed63afbc5718469, + limb3: 0x121495b4d959bda9a0b070d3, }, u384 { - limb0: 0x64aeec8b2f7623f593dd9849, - limb1: 0x325719fbf4d0d25723d18ac0, - limb2: 0x201e51889f89886f, - limb3: 0x0 + limb0: 0xca5b3523df67af59d1deea9d, + limb1: 0x3125b2a9b3d3e9cb1052672a, + limb2: 0xa7178caa89eb8a42c47af224, + limb3: 0x19323af8da8195ead57ceae0, }, u384 { - limb0: 0x30e91d1d27c0f302d1d7e0fc, - limb1: 0x5e0b4e18c6c58db82bc9ff0e, - limb2: 0x2c6f187b8ccff56f, - limb3: 0x0 + limb0: 0xe8a2665119e069c59b355589, + limb1: 0x54ee3e285f612bc6f98f2d74, + limb2: 0x7842f877114cb228214eb801, + limb3: 0x1785e840369f9334cec71eb4, }, u384 { - limb0: 0xba957299d39e954103d13e4c, - limb1: 0x8ebbea74319995c7c8992190, - limb2: 0x298be6eea497ffb0, - limb3: 0x0 + limb0: 0xf5adae6dbf861782fe58e737, + limb1: 0x82fc0fce43bb596809599942, + limb2: 0xb7643672e7df1bf21f062fea, + limb3: 0x1073daa278cf27984e4717c2, }, u384 { - limb0: 0xb94ba12b839aff95a528735c, - limb1: 0xdc2822db40c0ac2e333dbc74, - limb2: 0x183227397098d014, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { - limb0: 0xbd9870f8e85b457393a738ad, - limb1: 0x4d3926c1da30b6059578dbfc, - limb2: 0x26660d36e457e539, - limb3: 0x0 - }, - u384 { - limb0: 0x9f4e310412a202b931511252, - limb1: 0x92233776d1baa777bc7495b7, - limb2: 0x1ad4d51a48e94dc1, - limb3: 0x0 + limb0: 0x67ea56bd43e2f893a6f7731d, + limb1: 0x241c71d2f6f771deecfb1832, + limb2: 0xeed4c7464710128c06093c75, + limb3: 0x377b5d86720e49cdd9838ec, }, u384 { - limb0: 0xf94985c5c4b66a21386b3763, - limb1: 0xd45bb5239b60a6d93598bef5, - limb2: 0x1d1917b7585f3155, - limb3: 0x0 + limb0: 0xc0b0ab6915cf0301a1c84bfc, + limb1: 0xd59d28f7f4ba9166b5930c4e, + limb2: 0x3ee95d9a38e14da969e37aa, + limb3: 0xfdf955dd6483888954894bd, }, u384 { - limb0: 0xce7c1ae478eca46e413a08eb, - limb1: 0x3eee992084e62dbee2657a63, - limb2: 0x257e3699b875b343, - limb3: 0x0 + limb0: 0x7c4ccca1918ccac71abc8c39, + limb1: 0x24091a5c272863907fbcf935, + limb2: 0xd992be27ca37a93856126f99, + limb3: 0x2c3e32bc4fa36bbd3dc5b2, }, u384 { - limb0: 0x70bf5a5b636ff5ad639f0a12, - limb1: 0xd216ec1945f3c73c11b0250a, - limb2: 0x1f4d525347071d00, - limb3: 0x0 + limb0: 0x30f87dd5f990ecb57c81849, + limb1: 0xd3b8b99264298a42e954f2e4, + limb2: 0xa9f8a4151ec0ae3c84ca5c43, + limb3: 0x7d996bbe558835277196984, }, u384 { - limb0: 0xd60698937f4628a315543ae0, - limb1: 0x3275d97c37a3d3e6eed171f, - limb2: 0x1e65e27e5eadc4c9, - limb3: 0x0 + limb0: 0xd2dd52b5c9c166d2d4721b4f, + limb1: 0x96c097b9e4114a18a682a61a, + limb2: 0x1fba06be2b9b7153b1712d21, + limb3: 0x10de0cdca0acf11ab3f243f3, }, u384 { - limb0: 0x96ce17dae3776051fc167350, - limb1: 0xefcdfd89d0e04e38b9413496, - limb2: 0x1f5f4c48a8778a54, - limb3: 0x0 + limb0: 0x595f0e14beadf504e2c268e7, + limb1: 0x7df2941a0bd66bf652eeb509, + limb2: 0xe5e8b6910404cbfef716ef66, + limb3: 0x148ee8e638b3da1ada5e126a, }, u384 { - limb0: 0x11e146c84057354f6a587bbc, - limb1: 0x9f9d963b9da1fa4c551b924f, - limb2: 0x168ef2841df87da2, - limb3: 0x0 + limb0: 0x5fbed78121bb281f9e06ee57, + limb1: 0xaa584b71beaeb2747ca28652, + limb2: 0x94f74cab2c96fb8f98432256, + limb3: 0x2d47f20f9a4fb46578b2270, }, - u384 { - limb0: 0xabdf15a9f5a04bf7b76d229b, - limb1: 0xb8e879641e1ceeb68ba1e63c, - limb2: 0x2651b0b8e40222f, - limb3: 0x0 - }, - u384 { - limb0: 0x90d08afcad268c67ccbe6492, - limb1: 0xdd2556a7f24a6818de751b26, - limb2: 0x192989e2bccd589f, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0xd08d6e0b94dabafa035d8b62, - limb1: 0x5b973c1952ad18d086e60d0f, - limb2: 0x20b102655f46b00f, - limb3: 0x0 - }, - u384 { - limb0: 0x1f45fea0fa87a39c99479158, - limb1: 0x51a39fb99afa4aa798e864c, - limb2: 0x1792a46e7e4cd2c0, - limb3: 0x0 - }, - u384 { - limb0: 0x8aa8108610ef28283eac7340, - limb1: 0x4900ca6484aa03ec742e9341, - limb2: 0x2634d18ed475bf7f, - limb3: 0x0 - }, - u384 { - limb0: 0xe02ce17ca45fa9a2ed16c9c2, - limb1: 0x7d5a23dd9fd881bc5d67d347, - limb2: 0x250d4d477d4a9fcc, - limb3: 0x0 - }, - u384 { - limb0: 0x144922c9e34b857f5b45671d, - limb1: 0x1ec28e26e9c2fd1a3e7bce0d, - limb2: 0x21c860c2975d994, - limb3: 0x0 - }, - u384 { - limb0: 0x4624f2d4bb43360ad9a8fc8d, - limb1: 0x135664ee80f6f245fef54d0e, - limb2: 0x1d1a374c33e1de32, - limb3: 0x0 - }, - u384 { - limb0: 0xfcec606139102286a9a6ea9, - limb1: 0xf0934e5e2c2e7b5294a58325, - limb2: 0x1929876f93a1588d, - limb3: 0x0 - }, - u384 { - limb0: 0x9141e0ba4c6c38378bbd40ab, - limb1: 0x88d796d9a72239fb4b1663d8, - limb2: 0x2249ccfaa68086bf, - limb3: 0x0 - }, - u384 { - limb0: 0x9a1823ddd784db6bce7854db, - limb1: 0x7b3cba16a6d7d61449496d48, - limb2: 0x762cd5268df606, - limb3: 0x0 - }, - u384 { - limb0: 0xb8a841c039f8b1dfb3ed8cc8, - limb1: 0x4159c91ae4f56a7be77f85f3, - limb2: 0xfe59ed8bc782bc, - limb3: 0x0 - }, - u384 { - limb0: 0xde904ee74948582ac4cc7074, - limb1: 0x7cd4e7e4f198e3376379270a, - limb2: 0x95f7700cfec330d, - limb3: 0x0 - }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - b_den: array![ - u384 { - limb0: 0x67e5bdd040d0b82d09fbaf79, - limb1: 0x770ae8d88b8f71559167bed3, - limb2: 0x12698abeeaa46f58, - limb3: 0x0 - }, + a_den: array![ u384 { - limb0: 0x7578c87efbc57c14bb7639af, - limb1: 0xfe1960adf3ae9e099ddc5695, - limb2: 0x201a30dbf98a491a, - limb3: 0x0 + limb0: 0xc54379d1d4882196b227013a, + limb1: 0xe3ea061981f3320f30f18572, + limb2: 0xd3324f96a5bc30b2c374c8f, + limb3: 0x7edcb8dc454c462c9b0d620, }, u384 { - limb0: 0x836ac6c41202b24cd0c4a8e2, - limb1: 0xc4c2d9b450a09c2e0948d250, - limb2: 0x26e6f8b327ebf3d7, - limb3: 0x0 + limb0: 0x449e39141a6f6292d38e5ac5, + limb1: 0xefee812a94942f15997e3e3f, + limb2: 0x3de66730439f12804ec6b70b, + limb3: 0x7f73f2e7ac14bf40d65f33e, }, u384 { - limb0: 0xefb761fe9ebf8e79cdde5b99, - limb1: 0xe11420ffe45f362976250b73, - limb2: 0x5b3c5ab6a241e85, - limb3: 0x0 + limb0: 0x9e49a7773b9e93676619e71b, + limb1: 0x812d1d28111e84ef2a01435e, + limb2: 0x24412b589e48d3d4ab781243, + limb3: 0x3b5ccd5ad908dfc5382e727, }, u384 { - limb0: 0x20a8aafbc4b0cb93ab3435fa, - limb1: 0x97c77055a0934c70c2822fb4, - limb2: 0x17f42f2e5b9b6470, - limb3: 0x0 + limb0: 0x653289348e6d2f0c6134b191, + limb1: 0xda84d117951e9a09d3ead25, + limb2: 0x1fd934065ca3ec46aa7f68d9, + limb3: 0x684e417efc9e14735a2624e, }, u384 { - limb0: 0xaa79ba65ca47cbdcc76ded75, - limb1: 0x6d31427de2ccadd9535d2f32, - limb2: 0x1782224cb2053f5d, - limb3: 0x0 + limb0: 0xbafe62692435da9ce3ae9bff, + limb1: 0xc245d834a417cad9e6fb7a93, + limb2: 0x3e48a5636389aee58d5f905d, + limb3: 0x11c3b4382904a87f48de3d26, }, u384 { - limb0: 0xc202cd5aab11ad368483684d, - limb1: 0x9db80650f48467addf264304, - limb2: 0x22d37e8def7911ee, - limb3: 0x0 + limb0: 0xce255687ee36849660d4b4cc, + limb1: 0xc0e2bbf1bf3af13b03fa72d5, + limb2: 0xd4ec0b7897faf9efe73fcb1d, + limb3: 0x125a3d63361fb72c2b23f45a, }, u384 { - limb0: 0xd57f9999ac347d6df1ae82b8, - limb1: 0x404f235f1bd70565e20006d4, - limb2: 0x2318cf9de8d5595, - limb3: 0x0 + limb0: 0x3a6075a0fd00fadb4a8cc34e, + limb1: 0x74c672e0e7b0a6daf6c3ca95, + limb2: 0xff58e474183a41553d3c342a, + limb3: 0x1235933aeb4f7e80fe25e9b5, }, u384 { - limb0: 0xd9a3d99160270c8a3b9ba2b1, - limb1: 0x2de0c9c41dd1096211d2c9d5, - limb2: 0x259533a1096e2b58, - limb3: 0x0 + limb0: 0x37bf28feafffbe9afdafbaf7, + limb1: 0xee92ebaeb68122b615ed9a96, + limb2: 0x6f50a38969d02e06b084b868, + limb3: 0x1458fa0962c7da337405c77d, }, u384 { - limb0: 0x785c23b672a9ed5bb157a678, - limb1: 0x169d7614a4bcd5c8259db0e7, - limb2: 0xa134d0b1c7c53e1, - limb3: 0x0 + limb0: 0xcf70e4382bb71c56eab0350d, + limb1: 0xabe42464b4b2621e3ed747bf, + limb2: 0x691b22e793a9f6c3d02342a0, + limb3: 0x12332dcf9adf1b88db5a335, }, u384 { - limb0: 0x11e146c84057354f6a587bbf, - limb1: 0x9f9d963b9da1fa4c551b924f, - limb2: 0x168ef2841df87da2, - limb3: 0x0 + limb0: 0xf5dfff3c9a9cef0aaae0b2ea, + limb1: 0xc35a3adaaa4f24dd045bd647, + limb2: 0x6bbd54791dcb5234fab435ee, + limb3: 0xfe15ecd270510b56db93cc7, }, u384 { - limb0: 0xabdf15a9f5a04bf7b76d229b, - limb1: 0xb8e879641e1ceeb68ba1e63c, - limb2: 0x2651b0b8e40222f, - limb3: 0x0 + limb0: 0xaf7d73d2e42fdf4bbeffa923, + limb1: 0xf60ba815c146aab2e50d64de, + limb2: 0xc60ec2a5401909dbaf49170e, + limb3: 0x13d85386b3c411d2c960c91a, }, u384 { - limb0: 0x90d08afcad268c67ccbe6492, - limb1: 0xdd2556a7f24a6818de751b26, - limb2: 0x192989e2bccd589f, - limb3: 0x0 + limb0: 0x59ab6b05bc03531797486b1f, + limb1: 0x25bc5f3e2e9a640b9b76e662, + limb2: 0x6aec23b51d03c51b78d57644, + limb3: 0x9c1cb8ee8e2d316bb7acf54, }, u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x9b5f0d529bab3035470deb3c, - limb1: 0xdbf2ec2908f2fdcf5fef4ddf, - limb2: 0x2b542f8c9e784eb, - limb3: 0x0 - }, - u384 { - limb0: 0x3ef088e0968f3ffbc50573ac, - limb1: 0x271c265b1012e44bc370ceb8, - limb2: 0x1be24156f5bb8d0c, - limb3: 0x0 - }, - u384 { - limb0: 0xb3b4535c8cc420508ace4a9d, - limb1: 0x6d8956c6cbe90653cd22eec3, - limb2: 0x2212f7c3fda9b60e, - limb3: 0x0 - }, - u384 { - limb0: 0x229624ec4206cff7820a3801, - limb1: 0x76c369d3392cc53715dc872, - limb2: 0x1b346cd12b188c5b, - limb3: 0x0 - }, - u384 { - limb0: 0x222166c426b3128b19f4ae64, - limb1: 0x28689c265668cac7f18317b4, - limb2: 0x178abfbe55562fd8, - limb3: 0x0 - }, - u384 { - limb0: 0x3c28c590140226afdb553511, - limb1: 0x61ffca6cfd4baac539e9f134, - limb2: 0x1f5e73573193920a, - limb3: 0x0 - }, - u384 { - limb0: 0x9c7bd8ccf433ee27762e9fc6, - limb1: 0x2293f741fd2df1b29213feea, - limb2: 0x8972b1c02e3d4e7, - limb3: 0x0 - }, - u384 { - limb0: 0xfc2187db4d61bc20e53e74eb, - limb1: 0xcd1632e9988f7d3f5142aec3, - limb2: 0x236917f784951cfd, - limb3: 0x0 - }, - u384 { - limb0: 0x3dccc81abb5ac9d0fa9f378, - limb1: 0x93d250bcefc684faf76333ee, - limb2: 0xa2ee16e8f6d780, - limb3: 0x0 - }, - u384 { - limb0: 0x3b3ce8970652b390855ecf33, - limb1: 0xb85045b68181585d4f58ed5c, - limb2: 0x30644e72e131a029, - limb3: 0x0 - }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - a_den: array![ - u384 { - limb0: 0x1dbc85fcba563127b61c9188, - limb1: 0x1b75dbb5da304c4f8ed9e8fb, - limb2: 0x28369d5e720e69f6, - limb3: 0x0 - }, - u384 { - limb0: 0x34a4ffd530bb61e012f12f69, - limb1: 0x5378d5ed5b44b757a649086e, - limb2: 0x7be4a37fd17361b, - limb3: 0x0 - }, - u384 { - limb0: 0xdab17bddbe8ed97ad73eda43, - limb1: 0x5b2ca4342ddb94cb2be73ec3, - limb2: 0x1621aa6ff944503c, - limb3: 0x0 - }, - u384 { - limb0: 0x83ffbefbd7dc3db191d5db0d, - limb1: 0x53056b0ca109249fa55e3e25, - limb2: 0x950c41dba762c38, - limb3: 0x0 - }, - u384 { - limb0: 0xc50296883b79ab1c7e65c293, - limb1: 0x416bd40ed9350c97b42e18bc, - limb2: 0x29fa6dc31a58723a, - limb3: 0x0 - }, - u384 { - limb0: 0x5df32cd1c613aa30c2d213c4, - limb1: 0x2444bfce313e86abe64ce0eb, - limb2: 0x9ff894975440b26, - limb3: 0x0 - }, - u384 { - limb0: 0xe26e3dac114d6d35f9547621, - limb1: 0xb8d7cb27498e26a9c4a1270c, - limb2: 0xfb14abebcf1d355, - limb3: 0x0 - }, - u384 { - limb0: 0xc814fbeb584059447074bed8, - limb1: 0x854c3ee4a4b2fe114018d3e9, - limb2: 0x9c51835869b9ed0, - limb3: 0x0 - }, + b_num: array![ u384 { - limb0: 0x5aa096652cc158f8da768865, - limb1: 0x621e4976ff3dd6a845c5bbe, - limb2: 0x1405f46c063beb3d, - limb3: 0x0 + limb0: 0xda8a2f0d428647f8e27c9b98, + limb1: 0x26f53596e709fc6a01ed5b20, + limb2: 0xa08ca78af7fb58d25da0eb77, + limb3: 0xf66483819faebf98f918d30, }, u384 { - limb0: 0xb24ba5df8960063c296d67ab, - limb1: 0xa15a22bc6ac5f6b6460075da, - limb2: 0x16cf499a35610f01, - limb3: 0x0 + limb0: 0xa0f94bd44355f022b0457c6c, + limb1: 0x3422f352b5469aec68b52391, + limb2: 0xebd8b22fb4513f07fc58263, + limb3: 0xaf0770c6154b5ed034c3b52, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0x68313b7f683911720c05ba73, - limb1: 0x9e15eb91eb5f60f07fbfa816, - limb2: 0x17bb6628e1a2ef8d, - limb3: 0x0 + limb0: 0x4423ff15f439dc9f1fce82c1, + limb1: 0x38fabcb8bead5afbe00fbb60, + limb2: 0xacbb14806994a7272b40a8a0, + limb3: 0x1bb5bb3169c4b3c117c0b7e, }, u384 { - limb0: 0x4c6031efd17a88be71b4897f, - limb1: 0xe3be4c014b26d914b376450c, - limb2: 0x34b3deaea6539f6, - limb3: 0x0 + limb0: 0xac336ad029466aff2981dbd, + limb1: 0x121a2563932f4e81a708df34, + limb2: 0x65b1a653fcebfc6d66dbe951, + limb3: 0x11c6e82bababdd5cdd0c6b50, }, u384 { - limb0: 0x68dccd85ebe875c8e94dedf1, - limb1: 0x831bef76422664130fc5f2fa, - limb2: 0x1724e4bd1a6e3ea9, - limb3: 0x0 + limb0: 0x3ab916386071436ea1f5a076, + limb1: 0xbd886a792fccec6cc7dc8bb6, + limb2: 0xbfde16f7c76678af04b792d3, + limb3: 0x1210820e6e5db64ff248f6b7, }, u384 { - limb0: 0xc8e0e05ed88ba565937c3a23, - limb1: 0xffb0feb52038fb3a50cf3851, - limb2: 0x25c2529d3204170, - limb3: 0x0 + limb0: 0x7ab5e102a7a6e02691d366a2, + limb1: 0x7f178772c86e2fc943868f23, + limb2: 0xe6949991ad106a8409ae2ab6, + limb3: 0x1907390fff3003f73e455c87, }, u384 { - limb0: 0xad02ea2f92f0d0f8fb406738, - limb1: 0x26693f4f98fe1d6601382f8f, - limb2: 0x2f9b90d19b2b974a, - limb3: 0x0 + limb0: 0xa5615b0d8f3f950b34fdd036, + limb1: 0x4e6831abe02b7d4ae76d1a8, + limb2: 0x86280cc4bed22db5bf171e7c, + limb3: 0xffa4877c036843e46cb4b5c, }, u384 { - limb0: 0xd256581034d99b7f8f3feaf7, - limb1: 0xaaa978aaf9c81400021e40c, - limb2: 0xd62f89c9d625e69, - limb3: 0x0 + limb0: 0x75904650a2d4f765d603a75, + limb1: 0xccb8ee0710d5187cf94a1e36, + limb2: 0x3190b86ad254d60045859368, + limb3: 0x164c5823e26a9806160fc80c, }, u384 { - limb0: 0x4df01d83caba17de6fc02af5, - limb1: 0x9978e68c4b4a79e375af1136, - limb2: 0x190f38300537092f, - limb3: 0x0 + limb0: 0xf5f2515df61a97a8e6d726b5, + limb1: 0x89da2f47383a89e10ffb0afb, + limb2: 0xf69e07c295600a5b63489a38, + limb3: 0x18e4c716a2edf9f2ca859b1c, }, u384 { - limb0: 0x2ca7cba5cd5c2cac73920912, - limb1: 0x59870607909e97e336b1e823, - limb2: 0x270ee03be812e4fd, - limb3: 0x0 + limb0: 0xf93eb8d83a9f22c93acfefc0, + limb1: 0xcf83f9586c260c6d5eb52c99, + limb2: 0xc80a14e9023debdb3b01a38, + limb3: 0xe2e084e135811e5c34acd25, }, u384 { - limb0: 0xdfa33377f82b563414f49111, - limb1: 0x2ff09d2849dedc2eb467e24b, - limb2: 0x18482cd656f8d42c, - limb3: 0x0 + limb0: 0xf0f1efcff2d0554435715bef, + limb1: 0x485982a09c996bde1716f56, + limb2: 0xc152b050340d67419cc59ef6, + limb3: 0x18298f7e03dc105b681ed6fe, }, u384 { - limb0: 0x3750889583fa84548224180, - limb1: 0xd17f50edff6163fc4037b20e, - limb2: 0x1006b037f49b453a, - limb3: 0x0 + limb0: 0xbbf3bf6a13f08745301578ff, + limb1: 0xb4147b839403505f27096d89, + limb2: 0x719b76f5befba08abe905253, + limb3: 0x13926f3403adfc34236de708, }, u384 { - limb0: 0xd41e0203e881bffc2018e83e, - limb1: 0x9ea2081b844acbc7ca73bff8, - limb2: 0x2caf300f97e7df9f, - limb3: 0x0 + limb0: 0x6a0ec684ba298f1f3b41f681, + limb1: 0xa0682761fb58506aac226df4, + limb2: 0x51b4bce7c8fba8c44bed59f4, + limb3: 0xb4aafde248fb3b9baaaa7da, }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), b_den: array![ u384 { - limb0: 0x8851fcdbb6c17b49715bba0a, - limb1: 0xe1c107b48b8e34337d8ae5ce, - limb2: 0x17db3b3593c7fd8e, - limb3: 0x0 - }, - u384 { - limb0: 0x9deeff7f923225a038d38e3b, - limb1: 0xfa6a81c811ce2606f2db194a, - limb2: 0x173adea7f745a251, - limb3: 0x0 - }, - u384 { - limb0: 0x27a2a90bff8c0059ad3f9182, - limb1: 0x5935a6e608116603ec3451ba, - limb2: 0x1200b0dd0a9b508b, - limb3: 0x0 - }, - u384 { - limb0: 0x4149f86305ca5e2593212568, - limb1: 0x5c35d7253bca61d0e77338da, - limb2: 0x13c49b44c03f4e75, - limb3: 0x0 + limb0: 0x63b9e7479821865ac89c5a3d, + limb1: 0x287745c5111bd218a51a15cc, + limb2: 0xf180e70e44f7c0a7bd581f80, + limb3: 0x5b61c4cd7d32af0dba7b0c9, }, u384 { - limb0: 0xb2c92e536ae74b07dd287c94, - limb1: 0xa71bc6ace3e12c6393d07d81, - limb2: 0x24e4f69b89bd4c76, - limb3: 0x0 + limb0: 0x6124e450afbe8a4b4e39c069, + limb1: 0x588932095b9fc632474cf8fe, + limb2: 0xb44defe9aa04fe7c4795c970, + limb3: 0x5dbeacfb1854935ea7c2542, }, u384 { - limb0: 0x8c1937c5d4a94bf647381848, - limb1: 0xfaa9de84015d071474c76f4, - limb2: 0x3bbf7d977ded185, - limb3: 0x0 + limb0: 0x79269ddcee7a4d9d98679c6c, + limb1: 0x4b474a0447a13bca8050d7a, + limb2: 0x9104ad6279234f52ade0490e, + limb3: 0xed73356b64237f14e0b9c9c, }, u384 { - limb0: 0xc2d8ad72cfa3f93ca5564029, - limb1: 0xc53c86cbfc32403f5bc048ba, - limb2: 0x80055e7101a060f, - limb3: 0x0 + limb0: 0xa8b99ea4543dddc836fa1cd3, + limb1: 0xb35a67be7089e26d87403a09, + limb2: 0x494c483b787428a0e2afdd34, + limb3: 0x8004a0349fc62e5551eb7a2, }, u384 { - limb0: 0xb4cfbfbd081a2ad2f74701d4, - limb1: 0x19004b0645ccae6ddcf729e8, - limb2: 0x16e567f0ccf9ae82, - limb3: 0x0 + limb0: 0x1c9bc2b97d49cd066249cac0, + limb1: 0xc3736a1a40e07810d9682892, + limb2: 0x6d25f637a45feb87a9b5c044, + limb3: 0x102da5072543a224f8bf0b4, }, u384 { - limb0: 0x56325741037290479b8afac, - limb1: 0x7e5a27ddff98c68ddbe08995, - limb2: 0x15ad181aa6c62cb3, - limb3: 0x0 + limb0: 0x74370197807aa5c0e96d64f5, + limb1: 0xb65667ad20a85d92fc930eb8, + limb2: 0xf159ff8c3546248a616d193b, + limb3: 0x191c9e8e130f9d7869db6925, }, u384 { - limb0: 0x90df64bd714cf3d39d1fafdb, - limb1: 0xe495eda6085eb26eff211e0b, - limb2: 0x23bad91a7be36030, - limb3: 0x0 + limb0: 0x3ab85fb954741a798b68bec8, + limb1: 0xab2fa0b23401a2a01c49d77e, + limb2: 0x5359bf5090270f0cc4e10144, + limb3: 0x157fb44f088277c4ce71203, }, u384 { - limb0: 0xc814fbeb584059447074bedb, - limb1: 0x854c3ee4a4b2fe114018d3e9, - limb2: 0x9c51835869b9ed0, - limb3: 0x0 + limb0: 0x85ff0664b637d508da6e87da, + limb1: 0x46ff0f0c9a097345e2ade4f0, + limb2: 0x31a82d02dd64847174e339c3, + limb3: 0x1524669f07a45d7e37a263f9, }, u384 { - limb0: 0x5aa096652cc158f8da768865, - limb1: 0x621e4976ff3dd6a845c5bbe, - limb2: 0x1405f46c063beb3d, - limb3: 0x0 + limb0: 0xbe8e7689d12f5f20b958900, + limb1: 0x70734d84920479b3ff5791d5, + limb2: 0x79589716e6a2d4ff27ccd5a0, + limb3: 0x16e708d71cd77e0e61fa8130, }, u384 { - limb0: 0xb24ba5df8960063c296d67ab, - limb1: 0xa15a22bc6ac5f6b6460075da, - limb2: 0x16cf499a35610f01, - limb3: 0x0 + limb0: 0xfde472943977b705f6108ef5, + limb1: 0x4c9ce668acda57e2ac2f23b8, + limb2: 0xe46b2fd26201a79a4d7dd3a7, + limb3: 0x3b7d8b0dae40d87d3b7e5b0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ u384 { - limb0: 0xaef15bfafb2d5c5ee59c7b5b, - limb1: 0x4c95ff239061cce29ca35822, - limb2: 0x2b4256fabb45a381, - limb3: 0x0 + limb0: 0xe1b8f84b12c23bc9f9af5f82, + limb1: 0x912f1422d788eb154e1f2e14, + limb2: 0xbda8a7983cce72e69319dc66, + limb3: 0x15b7126585586dafb835f4c5, }, u384 { - limb0: 0x8bbd8e60fc1a1859e888a509, - limb1: 0xdc2822db40c0ac2e47c7fadc, - limb2: 0x183227397098d014, - limb3: 0x0 - } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x1cd3109b05dba0790ef535c8, - limb1: 0xc93334ededa249e877d7cb93, - limb2: 0x1b6d5c3af843ee8a, - limb3: 0x0 + limb0: 0x84ca904f61c568b547d236de, + limb1: 0xdba4cebc786afc288e06e14a, + limb2: 0xd18004e4a341bfacbff408f1, + limb3: 0xe294f2e63b95779308538d0, }, u384 { - limb0: 0xa01d079044bedeff8eec6843, - limb1: 0xa1d7630ec702f2d25b6053bf, - limb2: 0x2d14159eb45c6933, - limb3: 0x0 + limb0: 0xf5dfff3c9a9cef0aaae0b2ee, + limb1: 0xc35a3adaaa4f24dd045bd647, + limb2: 0x6bbd54791dcb5234fab435ee, + limb3: 0xfe15ecd270510b56db93cc7, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0x23a7bc1712d5fb43839baa92, - limb1: 0x47983d8c72a3589624a67628, - limb2: 0xfbd42f56b084c1, - limb3: 0x0 + limb0: 0xaf7d73d2e42fdf4bbeffa923, + limb1: 0xf60ba815c146aab2e50d64de, + limb2: 0xc60ec2a5401909dbaf49170e, + limb3: 0x13d85386b3c411d2c960c91a, }, u384 { - limb0: 0xba9c81e25821891fc3bf0a01, - limb1: 0xe3248331ddfa7cee7cb9e58b, - limb2: 0x26106aff71c7c427, - limb3: 0x0 + limb0: 0x59ab6b05bc03531797486b1f, + limb1: 0x25bc5f3e2e9a640b9b76e662, + limb2: 0x6aec23b51d03c51b78d57644, + limb3: 0x9c1cb8ee8e2d316bb7acf54, }, - u384 { - limb0: 0xed7cd75f9c669c25b1f8ccf9, - limb1: 0x96eecf54c834db8ecd4fa613, - limb2: 0x215fb6340533c94b, - limb3: 0x0 - } + u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), - b_den: array![ - u384 { - limb0: 0xee076743d57255545462a411, - limb1: 0xa34959134765855bd005f827, - limb2: 0x21e3c63e079a2b76, - limb3: 0x0 - }, - u384 { - limb0: 0xf73819655fb84d0fbcb3e3b, - limb1: 0x74e59dbf520627bbe31e261c, - limb2: 0x2673a3f65ab1fb47, - limb3: 0x0 - }, - u384 { limb0: 0x3, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { - limb0: 0x1cd3109b05dba0790ef535c8, - limb1: 0xc93334ededa249e877d7cb93, - limb2: 0x1b6d5c3af843ee8a, - limb3: 0x0 - }, - u384 { - limb0: 0xa01d079044bedeff8eec6843, - limb1: 0xa1d7630ec702f2d25b6053bf, - limb2: 0x2d14159eb45c6933, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() }, }; let derive_point_from_x_hint = DerivePointFromXHint { y_last_attempt: u384 { - limb0: 0xbc53ffba4b377c88fcbeb24, - limb1: 0x1db22efa0f7c923d7aa0d016, - limb2: 0x13209b4f6a3b53df, - limb3: 0x0 + limb0: 0x9243454eb54346e6236cf51b, + limb1: 0xa1644de81217068da9794eb9, + limb2: 0x76794330d97c2f5e56337a24, + limb3: 0x31f72ef661df842d9ebbd0, }, g_rhs_sqrt: array![].span(), }; let points = array![ G1Point { x: u384 { - limb0: 0x5c724369afbc772d02aed58e, - limb1: 0x2cd3bc838c66439a3d6160b, - limb2: 0x72f26b55fb56be1, - limb3: 0x0 + limb0: 0xe4f817e54aede0613c17035c, + limb1: 0xdff1f15010392a6da1f95a6, + limb2: 0xbed78d3d341e911d49f15454, + limb3: 0x18154782ce0913b21588066d, }, y: u384 { - limb0: 0x772ca79c580e121ca148fe75, - limb1: 0xce2f55e418ca01b3d6d1014b, - limb2: 0x2884b1dc4e84e30f, - limb3: 0x0 - } + limb0: 0x3d77d61326ef5a9a5a681757, + limb1: 0xd3070afd4f0e121de7fcee60, + limb2: 0xdf9ef4088763fe611fb85858, + limb3: 0x11a612bdd0bc09562856a70, + }, }, G1Point { x: u384 { - limb0: 0x536c985db33c69f7c242e07a, - limb1: 0xfc531bccffafcf1e59d91fb9, - limb2: 0x2585e4f8a31664cb, - limb3: 0x0 + limb0: 0xde4f62a6588c9401ffefbd3, + limb1: 0x9bb5f797ac6d3395b71420b5, + limb2: 0xdc39e973aaf31de52219df08, + limb3: 0x105dcc4dce3960447d21d3c1, }, y: u384 { - limb0: 0x57fa42444057cf0c1d62ae3c, - limb1: 0x4f48d341183118d68ea41313, - limb2: 0x1d2d2799db056ed1, - limb3: 0x0 - } + limb0: 0xaefd0d854043fd325dd3c34f, + limb1: 0x9b63c98d9a7845c52e1e2b0f, + limb2: 0x9db0be660d847ccc58358f3f, + limb3: 0x17cb6c41f0c4e1a7394ab62a, + }, }, G1Point { x: u384 { - limb0: 0x236ca9312dad3661a37f2d6f, - limb1: 0x98424c01caad7592315715d1, - limb2: 0x795b9fd941b23c4, - limb3: 0x0 + limb0: 0xcf86158ab69213388e721bb7, + limb1: 0x5f7812269d790797cad9aa15, + limb2: 0xb1c3622a0177001d9ed8e25f, + limb3: 0x115cf429f459884785c6ba46, }, y: u384 { - limb0: 0xc7ab5834609a54b8993ffd79, - limb1: 0xe81cd490528b814ca632aace, - limb2: 0x2d9ff53d3009e6f7, - limb3: 0x0 - } + limb0: 0x1e81341e2f3f988ff115dda3, + limb1: 0xad22946489db6ee4954fa5e1, + limb2: 0x83bed94412e19d92b73cc763, + limb3: 0x2074c7bceff87d0d41edba1, + }, }, G1Point { x: u384 { - limb0: 0x163df40cafbf585ca5b2ab44, - limb1: 0xb4752e4666c88dbbe23783a0, - limb2: 0x1a801462ac9cb657, - limb3: 0x0 + limb0: 0xe2955c55da59eba4b7b57d3d, + limb1: 0x1e6629b0431bce67cf28c22, + limb2: 0x1c35b7efd5b67f87221b8bfc, + limb3: 0x3e53df9e3488a9e42acd87e, }, y: u384 { - limb0: 0xac9b557d7ca8625d957263c6, - limb1: 0xdc6f75fa8339a78b998ae54a, - limb2: 0x28683293b6494d9f, - limb3: 0x0 - } + limb0: 0x2e089afa726154d40dd12102, + limb1: 0x5391613ecf49db2bcf1cad86, + limb2: 0x84a2abb2de6b3a6e09026a50, + limb3: 0x19557a3a3c1d62a205d5dc87, + }, }, G1Point { x: u384 { - limb0: 0x5c4f5dca0c973b7f70bfff9, - limb1: 0x188c2afab11eef5d48ecda3c, - limb2: 0xc2fed35d36c49f1, - limb3: 0x0 + limb0: 0x490bf40774926e8b279947c, + limb1: 0xeabab6aef9e9d2a4f64f4e7d, + limb2: 0x3e309fe1b1c8247abab20d7e, + limb3: 0x79c527862917f69ac58fcc4, }, y: u384 { - limb0: 0x9d7244ea10697ca42e2e066b, - limb1: 0xfe18a519c7d68770dc48dbf9, - limb2: 0x149bb528db998529, - limb3: 0x0 - } + limb0: 0xacb18f2da2b425c2ff50dafd, + limb1: 0x7623850d87e279a8a30f31ff, + limb2: 0x777564c7291d95fa80203ade, + limb3: 0x1764ce0e7fb626109b63789b, + }, }, G1Point { x: u384 { - limb0: 0xffc057151b06c496e6fdd440, - limb1: 0x5a01bae0c7441f08c7af1cf9, - limb2: 0x274e0e02529e6d26, - limb3: 0x0 + limb0: 0x42f2f3f4f6b9d2c2b73a361f, + limb1: 0xcd78c070c184c38b1e5716aa, + limb2: 0x72cbc24cd90da89e0e3cefe4, + limb3: 0x19485e1c46d0dce75f8b192b, }, y: u384 { - limb0: 0x65ceb8977413bc9798681ecb, - limb1: 0x19ffb287b45234f0c28fd1a7, - limb2: 0x28dbbd2f9267be76, - limb3: 0x0 - } + limb0: 0xb56b3539074b3c47b3f504d9, + limb1: 0x2c229530bddedd8851b03dcc, + limb2: 0xc93eef8474c4e18d6378e7f0, + limb3: 0x173d36f17a3c9ae77a2acc25, + }, }, G1Point { x: u384 { - limb0: 0xcfcdbfdb2056ff1a64bf1d47, - limb1: 0xf26fe2dae9f693d9b4aab2e6, - limb2: 0x12d66ad4802d841e, - limb3: 0x0 + limb0: 0x5fbf29cf20556a11621a6639, + limb1: 0xdfda5b7dbf0b226822094787, + limb2: 0x4a3b059e521b4b0445df96d5, + limb3: 0x333988c2c09f5af061cdfb, }, y: u384 { - limb0: 0xe6e34ebfa2e18dce86cadbdc, - limb1: 0x7ce096238b3d4b1b8fba6a55, - limb2: 0x2e0a660b1549800c, - limb3: 0x0 - } + limb0: 0x13d3570be6d27d1d588b22fc, + limb1: 0x20c763e58d4df3e4990cdae9, + limb2: 0x2c3301367f400c31f4bded26, + limb3: 0x16a6c25d133fba74b4c55972, + }, }, G1Point { x: u384 { - limb0: 0xd2dd03b29d58d045656ecf33, - limb1: 0xeddac3cf7a123aae2180739b, - limb2: 0x215bec6e0a03c924, - limb3: 0x0 + limb0: 0xcb24d12438557639f52df5fd, + limb1: 0x4a6a46feebe8a88a8062bd0e, + limb2: 0x65f04211af4b168b1e25787d, + limb3: 0x17935d6f4fa575744ca46f75, }, y: u384 { - limb0: 0xe5201e51828eb11589d8619f, - limb1: 0xa6563c760aa3a2c9d15af235, - limb2: 0x7ed0c9b2e7811fb, - limb3: 0x0 - } + limb0: 0x644f324be8a5c152625a5b8a, + limb1: 0x501e52e8c5707d7a3a77ee18, + limb2: 0x9636c463c14c5b85c2e6d3b1, + limb3: 0x1939b6f297f7b5b7fd0ac458, + }, }, G1Point { x: u384 { - limb0: 0xc33ac21c67b06a9994457b4c, - limb1: 0xa9aa5573bf7a92aab85366eb, - limb2: 0x1a407281e1d92e91, - limb3: 0x0 + limb0: 0xde1d8e2670532ec5bba60ade, + limb1: 0x1154f5064f7dd38656f7f82b, + limb2: 0xc9bec68372b7d07dcf66270c, + limb3: 0x315ced00b3153219bbd430, }, y: u384 { - limb0: 0x5a306649d971b115d71a78b1, - limb1: 0xa70687a9b5132e26b2cfbb37, - limb2: 0x2031920af5d6c9db, - limb3: 0x0 - } + limb0: 0xc48b3bc110e208d827b13f4d, + limb1: 0x87d82592699bca3dbf847c2b, + limb2: 0xff04f0f2c8be12365aa73443, + limb3: 0x1739c8c450ac994a5326c809, + }, }, G1Point { x: u384 { - limb0: 0x58a3cea1103f16402eb74c08, - limb1: 0xdfefcd91df2f4295ec21e03a, - limb2: 0x1150bcc09ac40007, - limb3: 0x0 + limb0: 0x8904b74d5d114b5416df0ed6, + limb1: 0x479ee13e49cde067742c2655, + limb2: 0x45b9359bfa338dd432ca9ff1, + limb3: 0x12bf6460e7a42942be6c16a0, }, y: u384 { - limb0: 0x57ed7d356f91abcef751889f, - limb1: 0x5c668cded3599c9af5a7e5fa, - limb2: 0x2ccf74197cb9bc13, - limb3: 0x0 - } + limb0: 0x3a8b37aacb2f620bc41c6109, + limb1: 0x91f68edf90b5947273b0aadf, + limb2: 0x265d48695a73800b7404124c, + limb3: 0x141e3d99b3ab683bdb0ce70f, + }, }, G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, ] .span(); let scalars = array![ u256 { low: 0x0, high: 0x0 }, u256 { - low: 0xe005b86051ef1922fe43c49e149818d1, high: 0x1f507980eece328bff7b118e820865d6 + low: 0xe005b86051ef1922fe43c49e149818d1, high: 0x3ea0f301eece328bff7b118e820865d6, }, u256 { - low: 0x4a84eb038d1fd9b74d2b9deb1beb3711, high: 0x154bc8ce8c25166a1ff39849b4e1357d + low: 0x4a84eb038d1fd9b74d2b9deb1beb3711, high: 0x2a97919d8c25166a1ff39849b4e1357d, }, u256 { - low: 0x3405095c8a5006c1ec188efbd080e66e, high: 0x2305d1699a6a5f92cca74147f6be1f72 + low: 0x3405095c8a5006c1ec188efbd080e66e, high: 0x460ba2d39a6a5f92cca74147f6be1f72, }, u256 { - low: 0x1775336d71eacd0549a3e80e966e1277, high: 0x144a7edf6288e1a5cc45782198a6416d + low: 0x1775336d71eacd0549a3e80e966e1277, high: 0x2894fdbe6288e1a5cc45782198a6416d, }, u256 { - low: 0x2f1205544a5308cc3dfabc08935ddd72, high: 0x21c38572fcd81b5d24bace4307bf326 + low: 0x2f1205544a5308cc3dfabc08935ddd72, high: 0x43870ae2fcd81b5d24bace4307bf326, }, u256 { - low: 0x42930b33a81ad477fb3675b89cdeb3e6, high: 0x2b70369e16febaa011af923d79fdef7c + low: 0x42930b33a81ad477fb3675b89cdeb3e6, high: 0x56e06d3d16febaa011af923d79fdef7c, }, u256 { - low: 0x2648ee38e07405eb215663abc1f254b8, high: 0x522c9d6d7ab792809e469e6ec62b2c8 + low: 0x2648ee38e07405eb215663abc1f254b8, high: 0xa4593acd7ab792809e469e6ec62b2c8, }, u256 { - low: 0x85940927468ff53d864a7a50b48d73f1, high: 0xdc5dba1d977e9933c49d76fcfc6e625 + low: 0xd450fe4aec4f217bb306d1a8e5eeac76, high: 0x6b3f2afe642bfa42aef9c00b8a64c1b9, }, u256 { - low: 0xd344749096fd35d0adf20806e5214606, high: 0x119d0dd09466e4726b5f5241f323ca74 + low: 0x85940927468ff53d864a7a50b48d73f1, high: 0x1b8bb742d977e9933c49d76fcfc6e625, }, u256 { - low: 0x5306f3f5151665705b7c709acb175a5a, high: 0x2592a1c37c879b741d878f9f9cdf5a86 + low: 0xd344749096fd35d0adf20806e5214606, high: 0x233a1ba09466e4726b5f5241f323ca74, }, ] .span(); let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 0 + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 1, ); assert!( res == G1Point { x: u384 { - limb0: 0x2f70823545198bb774dfb985, - limb1: 0x363546466fd4c023b72f21aa, - limb2: 0x2c5558596fa0905f, - limb3: 0x0 + limb0: 0x9ec142be39a5f52851d40011, + limb1: 0xa2c6a9a59c2e5cc721418300, + limb2: 0xf1b002b6ff0a802aa11d79f1, + limb3: 0x4ef0f37cba80a70d0645e6d, }, y: u384 { - limb0: 0x50096f8b9d63643890d31c51, - limb1: 0x9e514bcb711d8e6edd2033e2, - limb2: 0x1436325ffa32a10, - limb3: 0x0 - } - } + limb0: 0xb7eadd19764cdf407fce674a, + limb1: 0xcd0f0fe2c23c44035093a0e2, + limb2: 0xb99254d6476ffdbaf7f749d0, + limb3: 0xd20d67685607fa1d8542a6, + }, + }, ); } #[test] - fn test_msm_BN254_12P() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - ] - .span(), - array![ - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - ] - .span(), - array![ - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - ] - .span() - ), - ( - array![ - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - ] - .span(), - array![ - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - ] - .span(), - array![ - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - ] - .span(), - array![ - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - ] - .span(), - array![ - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - ] - .span(), - array![ - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - ] - .span() - ), - ( - array![ - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - ] - .span(), - array![ - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - ] - .span(), - array![ - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - ] - .span() - ), - ] - .span() - ); + fn test_msm_BLS12_381_12P() { + let scalars_digits_decompositions = Option::None; let msm_hint = MSMHint { Q_low: G1Point { x: u384 { - limb0: 0xc3a31070a7d9ebd554d3a065, - limb1: 0xb9109b898885a0dc6fad5069, - limb2: 0x1078e59157543192, - limb3: 0x0 + limb0: 0x3e97d2180b8d9becdeecbc4, + limb1: 0x22464786b5e8678d30ea566d, + limb2: 0x460842529ef02457631e7075, + limb3: 0x9d08075235f7e786a2c8610, }, y: u384 { - limb0: 0x2f84df2e544b7106b7650ad5, - limb1: 0xfbe6bc68eb7b3ce9d0921d3a, - limb2: 0x1b6201f18ce1978b, - limb3: 0x0 - } + limb0: 0xad8b261cae9ca9c1ce60a5ad, + limb1: 0x49ed6d249b5433c2925f4a11, + limb2: 0xd21d53fd1765d52afd70bf35, + limb3: 0x19de584d836f54db00d356c4, + }, }, Q_high: G1Point { x: u384 { - limb0: 0x69e5b9c91819ad621d92f585, - limb1: 0x1f4dce0d4ef79a593fca55f5, - limb2: 0x2ab6b6fdf389efe1, - limb3: 0x0 + limb0: 0xdaebc752ad2b8ffff7549f07, + limb1: 0xd413863791b7a8f0c34eb3c6, + limb2: 0x9c92f45c88f9f47f20f4f8fc, + limb3: 0x145230516d9fe61cff157933, }, y: u384 { - limb0: 0xc5045bbf844632ca4df04976, - limb1: 0xbffb033e8ec5f6c914bf9cee, - limb2: 0x2bde1f40aae349c3, - limb3: 0x0 - } + limb0: 0xe31cca49cb02ec5099286e72, + limb1: 0x299af97f18ac81739c305e01, + limb2: 0xc5d74563760466c83734d9d6, + limb3: 0xd65e4b6d9b871273837279d, + }, }, Q_high_shifted: G1Point { x: u384 { - limb0: 0x160c2a4f26366c842c4fbc30, - limb1: 0x721ae82df8c46c7080ac4d92, - limb2: 0x21f7cd237e1c9b32, - limb3: 0x0 + limb0: 0xf247311021189eaad71dc07a, + limb1: 0x95ea7c5761ce3305b72b3d27, + limb2: 0x4ed7e368cc21a3e659c373bb, + limb3: 0xa8a70d7ede8f711ca032c1a, }, y: u384 { - limb0: 0x2fd1353df407c3cde1804d5b, - limb1: 0x1e4a97ad0ea11589cde85f6a, - limb2: 0xf143fae3f3561cd, - limb3: 0x0 - } + limb0: 0x45f584bb123ee417f69a22ba, + limb1: 0xdf04ffc9dc515c574699e709, + limb2: 0x619bd5d8e446e7653d287f52, + limb3: 0xebda39b41cb789b69e9d1c1, + }, }, - SumDlogDivLow: FunctionFelt { + RLCSumDlogDiv: FunctionFelt { a_num: array![ u384 { - limb0: 0xb95f81f4e13405aa0571165, - limb1: 0x1c81d932d87c4e115a735fd8, - limb2: 0x1b74ca8306d5ac38, - limb3: 0x0 - }, - u384 { - limb0: 0x885b335eefdfc50eff7a195a, - limb1: 0x94265e433fc80493bba4214c, - limb2: 0x259952bb1ed721d8, - limb3: 0x0 - }, - u384 { - limb0: 0x94e779d1a8e2423f608195f4, - limb1: 0x787515462f8ded557849191f, - limb2: 0x7da00b65e6e0300, - limb3: 0x0 - }, - u384 { - limb0: 0x8fd9ee4eb57aef0e4f9625da, - limb1: 0x3de2bec7a320dccdbf54d5a1, - limb2: 0xedd69611675c0bd, - limb3: 0x0 - }, - u384 { - limb0: 0x9d031ca3534b93437a3c001f, - limb1: 0xaa86c926f181e06971bde1e0, - limb2: 0xfa19bb593d31c37, - limb3: 0x0 - }, - u384 { - limb0: 0x9b1a41665289d3da43673d46, - limb1: 0xb727e06ef34b4ba755d5e856, - limb2: 0x1ad721dd8f989986, - limb3: 0x0 - }, - u384 { - limb0: 0xe16246e9652a3fbdb936f13e, - limb1: 0x4cde790b119a16ee13474969, - limb2: 0x23aae238bb30e240, - limb3: 0x0 + limb0: 0x437e8fc534671071816399e9, + limb1: 0xaf08f39b342539198cd7ed85, + limb2: 0x6449e42f325a8652ffe36766, + limb3: 0x196cbb2f666f2c0db7e43575, }, u384 { - limb0: 0x6da302d0c9043bb09ea9ef46, - limb1: 0x6872d4bc6bca1efd692971eb, - limb2: 0x21b6d4f6bd1dea79, - limb3: 0x0 + limb0: 0x7b7a202aa51f1d63a061f8b6, + limb1: 0x9213e6c007f1f28fe4e4fe35, + limb2: 0x2cc4e67ea6d8a596a37ae06d, + limb3: 0xef3d3b58dd930951d80b7c7, }, u384 { - limb0: 0x37132d952a38939079c6938, - limb1: 0x46bc5b1fbc2cefa19bd75250, - limb2: 0x1f801bf2e05a7ff8, - limb3: 0x0 + limb0: 0xb039ec0e9d5bdf7c2cac1e4e, + limb1: 0x74b5a0eecb682030e217c2db, + limb2: 0x810eff782a27e15a87e40481, + limb3: 0xf0e85fb407ad7e125964809, }, u384 { - limb0: 0xc12d55291fdf047b17eaeddf, - limb1: 0xb2525196fed81c2cea30a097, - limb2: 0x23720d6ba46915a0, - limb3: 0x0 + limb0: 0x8e60db19bf58f84c816c081b, + limb1: 0x94272ace538d766961dbdcdd, + limb2: 0x6b987a601725f1169b67a86e, + limb3: 0x170dbf89e85757541b1a8704, }, u384 { - limb0: 0xd1516296c90aa394fae0a1ea, - limb1: 0xdc2822db40c0ac2ebe68ac4c, - limb2: 0x183227397098d014, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { - limb0: 0xfa3182ab129f6ec186fcd0f8, - limb1: 0x8666ee20857b440a69588a14, - limb2: 0x1c79fba0b768754e, - limb3: 0x0 - }, - u384 { - limb0: 0x8288d64e6265a2453e2a9f4f, - limb1: 0xd7f82c4c33f4641b4c71c2be, - limb2: 0x1e6936fd8a820254, - limb3: 0x0 + limb0: 0x3e50ec154708a45f4194dc00, + limb1: 0x4a0b0ff233b8b958650d831a, + limb2: 0xa2eeb1118d8425e41af41341, + limb3: 0x697b189c8717b2010040028, }, u384 { - limb0: 0x6d0000d951f0bbe3b1ade5f, - limb1: 0x18dd4d613b031e1523c2999f, - limb2: 0x2777a6c9eaa00af1, - limb3: 0x0 + limb0: 0xca671dc0bc05bee59e6909e5, + limb1: 0xaae4bc6fc052c2507e721591, + limb2: 0x1f5ca76c84a80e82e7e94e89, + limb3: 0x11646a39ca1488f00c7ecffd, }, u384 { - limb0: 0x89c3d3b49ea2e1440a57b089, - limb1: 0xb28cad30945b1fc19b7f5d86, - limb2: 0x58fe0cc1caf2797, - limb3: 0x0 + limb0: 0xc7c665fa374c37794a4ee7d0, + limb1: 0xc06cb2edc1297f99ccc9a21d, + limb2: 0x3b5d4e4906c847120de714c3, + limb3: 0x6e7b6da1dfd75c7b7d4df45, }, u384 { - limb0: 0x21dae3ad3576eaaa655f15e6, - limb1: 0x8dda04ba3c3c7888797bd0bb, - limb2: 0xf979952888dfc1b, - limb3: 0x0 + limb0: 0x70c6bb8ed397ace30662f7d1, + limb1: 0x7199e517f1f7f8921021c69, + limb2: 0x4e5154d03f3f14ecc28b1864, + limb3: 0x41dd293168c90092a2c52a9, }, u384 { - limb0: 0x3fe945bef33e805cc800384, - limb1: 0xf48b10fde34ebaf3c6142bcf, - limb2: 0x1273493c2d17cf5f, - limb3: 0x0 + limb0: 0xc884e6fe0da7fc594bf3c97e, + limb1: 0xc533dc056eb56c5edd3ce1d1, + limb2: 0x642491087d7b1d776d8d84d, + limb3: 0x784c3b315832fee5f5c7b3b, }, u384 { - limb0: 0x9209e186c2e7486a7b4409, - limb1: 0x159e9b18e97ec18d2b805829, - limb2: 0x25f602a9d2ae89cb, - limb3: 0x0 + limb0: 0xd5066a622996dd6873bca73, + limb1: 0x714102cb79cd7ef2a8115bb5, + limb2: 0x53d797d22e26c6194643ff5, + limb3: 0x145afdbbf18d0a9d5fa1ddd4, }, u384 { - limb0: 0x15e14e2f438c9eb4180df481, - limb1: 0xda90261ab83388277d1a9f30, - limb2: 0x1e9fb164b1ca248f, - limb3: 0x0 + limb0: 0xf54173da2c89b84aa7ab695, + limb1: 0x410a7d631e2af402b73e0710, + limb2: 0x929fa87adeeeeac6f57b0294, + limb3: 0x1306a69386002ac56840852a, }, u384 { - limb0: 0xc4e40eed9b71dcd6fa36657d, - limb1: 0x1607152f8768cde90cb1af77, - limb2: 0x19b333d580ff8379, - limb3: 0x0 + limb0: 0x12f397494be887c83fa40a0a, + limb1: 0xed2c5aa8be0bcde944cbb725, + limb2: 0x3e06908c581e2add12bfe3d5, + limb3: 0x1153210a52c001866a4cddc2, }, u384 { - limb0: 0x847f2fc0496fe95160ce87ee, - limb1: 0x3219cb29b77df66c8eedd1bb, - limb2: 0x2f528617b9b1aab7, - limb3: 0x0 + limb0: 0x64053212bfd416d46cc1749f, + limb1: 0xb089fcf37d28024ff3449dfe, + limb2: 0xf8789874a3749100aad75f51, + limb3: 0x14a505af73f4cd942fcafd45, }, - u384 { - limb0: 0xb50bf23ad3e665e67b453e4, - limb1: 0x2f48c7c38d1a8ad08a0a977e, - limb2: 0x1577ff908e92c3bc, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0x7a6ff21d649c612b5caa9162, - limb1: 0x8208cac352a15d74e531d6ee, - limb2: 0x1fb11cd679fb5a7c, - limb3: 0x0 - }, - u384 { - limb0: 0xc21424865a665f4af292b9e7, - limb1: 0xb3fcaf43689de111e9dad5ef, - limb2: 0x1877f5217fb24cf8, - limb3: 0x0 - }, - u384 { - limb0: 0xf369487e6af636ae3217886, - limb1: 0x88d9107cb8520037b9060cad, - limb2: 0x1ed887e070ff81ab, - limb3: 0x0 - }, - u384 { - limb0: 0x5a22b2d11f730eb410d07710, - limb1: 0x8910f4c40cbfc67634b31637, - limb2: 0xbe0d711fdac2124, - limb3: 0x0 - }, - u384 { - limb0: 0x35733f6ff4b2bb775ae8449c, - limb1: 0xecace5479e58e64a95289d5a, - limb2: 0x1c12af3e5a428106, - limb3: 0x0 - }, - u384 { - limb0: 0x50e4df72500b8a6994300b9, - limb1: 0xbeae4d1ee6034e8968154149, - limb2: 0xe5209ba548c476c, - limb3: 0x0 - }, - u384 { - limb0: 0x77b636ccf2c889dfd0c4ed8f, - limb1: 0xb5af465a2791a64d01daba33, - limb2: 0x1cc5c480476fae19, - limb3: 0x0 - }, - u384 { - limb0: 0x76a10979887d8ce6d3b12a55, - limb1: 0x578f4340965b518d44b0f7f5, - limb2: 0x579d31c477f5ed0, - limb3: 0x0 - }, - u384 { - limb0: 0x7be5d18d08aafbcf57abf255, - limb1: 0x84e46bc3f95ba3dcd0905e5b, - limb2: 0xefc3612e9310f0e, - limb3: 0x0 - }, - u384 { - limb0: 0x64514336e3131f9b757fafe7, - limb1: 0x4fdf545953c9c050282983d3, - limb2: 0x241f97c60a0e3303, - limb3: 0x0 - }, - u384 { - limb0: 0x76bd68065df92bae9f994cac, - limb1: 0xa5de01573f6387d7ef92b45f, - limb2: 0x1bd1a29a82218eba, - limb3: 0x0 - }, - u384 { - limb0: 0xdd10713dea26661d1299904e, - limb1: 0xae8df69a8b5aac0fc77b8b1d, - limb2: 0x3a5804b32eb140b, - limb3: 0x0 - }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - b_den: array![ - u384 { - limb0: 0x8622bd73fbbdc02dbc7975a1, - limb1: 0xdae484ab0ef073c1a48833ad, - limb2: 0x2509a46f4507bfc1, - limb3: 0x0 - }, + a_den: array![ u384 { - limb0: 0x1f28b85deb105ab8e202e0a6, - limb1: 0xcf983f2e1a5bd3f44dd3ddaa, - limb2: 0x2ad75685be5466d4, - limb3: 0x0 + limb0: 0x3f470e967c1812c91ba00625, + limb1: 0x5898baadb215593d61694ef6, + limb2: 0xe8f3828778e05e5348ee0505, + limb3: 0xf838e8d4a39179a761cd728, }, u384 { - limb0: 0x438c6b0e471c0b0d0056a08f, - limb1: 0xd9f75cb6ae06a9843c44f7ba, - limb2: 0x159e5777fd7ce07f, - limb3: 0x0 + limb0: 0xd7f4c82fd960ab60fb43c8d5, + limb1: 0xed7bc1eab1178272db633743, + limb2: 0xc2f622f7411edc7970301065, + limb3: 0x5842dc9f1ab4c0d45dc9687, }, u384 { - limb0: 0x977cfdc8ee88128da603e293, - limb1: 0x9e0cf5b2428ca34f3bd6a2a8, - limb2: 0x2d299e050d75ec15, - limb3: 0x0 + limb0: 0xde8c86cd47e19c4a8452151e, + limb1: 0x33b09b3409ecb225f52276aa, + limb2: 0x46083d82962eda5484437364, + limb3: 0x3e6341845b9c35e75035290, }, u384 { - limb0: 0x7fa7b6c8c6a9d62d95cae3ba, - limb1: 0xc935f4c4672875572163ca5e, - limb2: 0x1ccbb48242fa567d, - limb3: 0x0 + limb0: 0x1eeddf7c4f736be9013e4fc, + limb1: 0x4a5038bbc27aa564bdf16281, + limb2: 0xac9f375b498127eabaa4f215, + limb3: 0x80cc8ce0a28039e79fc5d1d, }, u384 { - limb0: 0xaa59f294269a37b8c81deba4, - limb1: 0x3e2e3aa4636df692de7db27a, - limb2: 0x2e6d340b90b5d8e7, - limb3: 0x0 + limb0: 0x49162e37200e5db0b30a5504, + limb1: 0x2bd00b70868d221de191dccb, + limb2: 0x4c74ef7b81c27dedf4ba9e00, + limb3: 0x53330773725ce5a45d406c6, }, u384 { - limb0: 0xba965c3ebaaa7eef98cf8216, - limb1: 0x82c7f30e4dd4b3adeefd90de, - limb2: 0x16a94be3d25784a5, - limb3: 0x0 + limb0: 0x83a5b931bbc25bdf30af04c2, + limb1: 0xf80c1e9d9af273377311916b, + limb2: 0x84cae1eeb3cbaed85ce90f8f, + limb3: 0x19cfc137b238d58bd4d6ac1e, }, u384 { - limb0: 0x929b392087dbae98fc8ef8db, - limb1: 0xace9eb9d61d46043c1c8d928, - limb2: 0xaae109adb892977, - limb3: 0x0 + limb0: 0xf1d1fef85e933935d7ff1d4c, + limb1: 0x1d4094a0fa2569b37c66c2d5, + limb2: 0xed8a200dece3eb3ad7c7a6d7, + limb3: 0x14409a9fcdce151e4237eab4, }, u384 { - limb0: 0xea38f6978568f273e2a636b4, - limb1: 0x7e500ad5f807cc5154a7cfa4, - limb2: 0x2f289649cee4b9a1, - limb3: 0x0 + limb0: 0xb1c307ecdbf3596fb4bb7154, + limb1: 0xc75d86f52d4d3e2ca5853c8e, + limb2: 0x286bec9ee51894c79b294e09, + limb3: 0x247c6853ccfdefbbcea3d1d, }, u384 { - limb0: 0x54ba397aaeb0fef8036fe3fe, - limb1: 0x82fb2b728b749bba11c58da7, - limb2: 0x22c0a9985c2ea973, - limb3: 0x0 + limb0: 0x1733ea6ddab782ec85ae70d, + limb1: 0xf0a75e2340d7451f9cc917bc, + limb2: 0x5a4afa8c4f66d386c3e60b35, + limb3: 0x1794d4e1563e890d948e8176, }, u384 { - limb0: 0xcf61c10d0f2745b876adf2e6, - limb1: 0xb01a37aede01d03b83b8fb18, - limb2: 0x2ea361a37c50cf9a, - limb3: 0x0 + limb0: 0x106902960d79982e39d154ba, + limb1: 0xa750e52747588f86995607aa, + limb2: 0x72174997524606e217c58c90, + limb3: 0x19a65a84307841b6f8db85d9, }, u384 { - limb0: 0xc4e40eed9b71dcd6fa366580, - limb1: 0x1607152f8768cde90cb1af77, - limb2: 0x19b333d580ff8379, - limb3: 0x0 + limb0: 0xf3cc7d754b973b75560a6cff, + limb1: 0x8b8657b1a59f8814d0ed1771, + limb2: 0x299fa8bf2da443a7bf6d26c1, + limb3: 0xcc70f1e4ceb1a1b1b61cfda, }, u384 { - limb0: 0x847f2fc0496fe95160ce87ee, - limb1: 0x3219cb29b77df66c8eedd1bb, - limb2: 0x2f528617b9b1aab7, - limb3: 0x0 + limb0: 0x39545508bafa1850fc38962a, + limb1: 0x850eaf3c0eb3a07b5a726a7, + limb2: 0x89a45f95d4cc7f1658a88cd4, + limb3: 0xb1b5908818cd28e1fafb22f, }, u384 { - limb0: 0xb50bf23ad3e665e67b453e4, - limb1: 0x2f48c7c38d1a8ad08a0a977e, - limb2: 0x1577ff908e92c3bc, - limb3: 0x0 + limb0: 0x1377eaf94203c80067ff382, + limb1: 0xcef824f14631f71fa26068d3, + limb2: 0x7a17c2c5f91a5c4a0d69a320, + limb3: 0xae7ea0cdceaab5c035dd12f, }, u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x7897cc0392ecb950a7715a16, - limb1: 0xd73e274b8be8fa9510703f2e, - limb2: 0x13eafd9ae8969d07, - limb3: 0x0 - }, - u384 { - limb0: 0x438217de774981e52a6e8a95, - limb1: 0x6a1f31a6f157a781db3292a0, - limb2: 0x283bf68297ea344f, - limb3: 0x0 - }, - u384 { - limb0: 0x3b567da8c0d99e534bf80faa, - limb1: 0x2d35f323a3635dc07c9a8562, - limb2: 0x22ce30bf4374ac3, - limb3: 0x0 - }, - u384 { - limb0: 0xe952e2ae4287ca0c42c3004b, - limb1: 0xb7635876f1b03acd2bb49540, - limb2: 0x285c6d1e086d03d8, - limb3: 0x0 - }, - u384 { - limb0: 0xb3d172bef8c90e022f336d4a, - limb1: 0x7993fdbac2068a9004f65f26, - limb2: 0x181d28c9f78e5dfe, - limb3: 0x0 - }, - u384 { - limb0: 0xe324fa7b50baacb832c04b81, - limb1: 0x67c5a5f01ae47ea471ea54c2, - limb2: 0x187495c2b3184384, - limb3: 0x0 - }, - u384 { - limb0: 0xa8ab905c4b380119b7d589e, - limb1: 0x854bd920dbc0f7bb257e92ed, - limb2: 0x19441a144d1d3ae4, - limb3: 0x0 - }, - u384 { - limb0: 0x474fdccaeb14f4ea88a2ab08, - limb1: 0xb06cccf589e4ee4c66e0b16d, - limb2: 0x1d39099f307ee61, - limb3: 0x0 - }, - u384 { - limb0: 0xdf0973416012add80a9ae435, - limb1: 0x3b2d5e21de200d877ce16608, - limb2: 0xd1338fc7db34063, - limb3: 0x0 - }, - u384 { - limb0: 0x1b762cfb9d0f3b994d829fc7, - limb1: 0x5308f84b2ce24be08cb4683b, - limb2: 0x2fed65f62cda7e65, - limb3: 0x0 - }, - u384 { - limb0: 0x55c9306a8ec3b769804e83f1, - limb1: 0xdc2822db40c0ac2e897197c3, - limb2: 0x183227397098d014, - limb3: 0x0 - }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - a_den: array![ - u384 { - limb0: 0xdb73ae4a60e1a6a4074531a9, - limb1: 0xeefc8c313b234f312001ba74, - limb2: 0x1a142219c78d92d0, - limb3: 0x0 - }, - u384 { - limb0: 0x74a35598c8b994cea69f10e6, - limb1: 0x7e6856449829c49768aabdf6, - limb2: 0xba7e07a301fb282, - limb3: 0x0 - }, - u384 { - limb0: 0x1b9a4a6ee3aab30f7264022e, - limb1: 0x7a764d753a99bfe18e6fb51d, - limb2: 0x1ead550c372faa27, - limb3: 0x0 - }, - u384 { - limb0: 0x2f1c2d9bc5e2e012699f7046, - limb1: 0xe33732d80d87251a5cb5bc90, - limb2: 0x28ff13818abe15fb, - limb3: 0x0 - }, - u384 { - limb0: 0xb068e98b6ee9d99bf6da81f8, - limb1: 0x24ae2f875cff92beb014eb0b, - limb2: 0x1c885bf2c81abcdc, - limb3: 0x0 - }, - u384 { - limb0: 0x80ce8786db89b0cdf5955bf9, - limb1: 0x7bfe651e9564b4369f542167, - limb2: 0x2f314fe4d688082d, - limb3: 0x0 - }, - u384 { - limb0: 0x617053085bad11a83b9c72d2, - limb1: 0xdb4fe1c44233084ac0295003, - limb2: 0x1daff55b1d6964ab, - limb3: 0x0 - }, - u384 { - limb0: 0x33d29744d0bd359247a62949, - limb1: 0x9a776ab516549b2a8caef47c, - limb2: 0x153dc7d699a74cc6, - limb3: 0x0 - }, - u384 { - limb0: 0x497921b6baf2babcfb53b0cb, - limb1: 0x3882933844ef1f2ccaaa6053, - limb2: 0x29a283b646b47124, - limb3: 0x0 - }, + b_num: array![ u384 { - limb0: 0x8f835ff6daa8ffb5373d57c6, - limb1: 0xd26d9a1ea07eb6dd6019d31c, - limb2: 0x85b797781fa9673, - limb3: 0x0 + limb0: 0xcd595a1a13d89cc93a4fa0b, + limb1: 0xa5328a18c385034770d4bc02, + limb2: 0x576f337400e64ad299715fd9, + limb3: 0xf8ce5e28e5d5e6d9d6ee68a, }, u384 { - limb0: 0xcd7fe058791f30e87771fc0b, - limb1: 0x815bdaf64829e9b1516efc83, - limb2: 0x2b9e7c96d38ea597, - limb3: 0x0 + limb0: 0xe423c22b6bc884771c0342f5, + limb1: 0xce6ceb2a7aee720c61b18c43, + limb2: 0x12cdeb7014bcf4cf09346050, + limb3: 0x9618400d34202073e91b38f, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0x5c95f2af627e2a7982173540, - limb1: 0x8bf0d0da3c1df8afbe5ef847, - limb2: 0x1275b01eb092b92c, - limb3: 0x0 + limb0: 0xdbab401e8ba6b04e6072b4a, + limb1: 0xb7d5ce6310f66c3c081317d3, + limb2: 0xc362c8151a0d69cbce2b512e, + limb3: 0x3febcb189efdef75074d8f8, }, u384 { - limb0: 0x8d616f473704e4526821fb5a, - limb1: 0xde7f025f1b994cce5f11d359, - limb2: 0x612a452c99cd177, - limb3: 0x0 + limb0: 0x20d4f6281e54905ac5831f4d, + limb1: 0xcbf95fb8102cefe2c80e8d30, + limb2: 0x274fa8067ce1d23afdff052e, + limb3: 0x19bca2c183eb739a11a78e79, }, u384 { - limb0: 0xb81216aa78d2b1c13512333e, - limb1: 0x40b7743aec32f1e0fb10dc5c, - limb2: 0x2ad62f4c83b20321, - limb3: 0x0 + limb0: 0x73e85e52251ec9a8d5050752, + limb1: 0x1e04a7dfda71c5d30164b90e, + limb2: 0x11371418b2571b9ebf511137, + limb3: 0x8fa51a9ecb230973c49ba39, }, u384 { - limb0: 0xf54101662133b7252b7f7b5d, - limb1: 0xb6fe6ef00d01dcba829bbd47, - limb2: 0x111973ec4b54ae76, - limb3: 0x0 + limb0: 0x10d214527b6acc4aa3b54889, + limb1: 0x706b255aece16d264cbe09e8, + limb2: 0xb2d2f0bddf309eb4f2584d53, + limb3: 0x1539e21b24d4459113f5dee0, }, u384 { - limb0: 0x766fdbe996015136457cf1eb, - limb1: 0x3a05cae75f9b296b3a6cb2, - limb2: 0x18e542a536a9d2bb, - limb3: 0x0 + limb0: 0xccf8aaaa16dcb16abb636011, + limb1: 0xf320f5eeb4e2c72b76d7543b, + limb2: 0xb8ace6dbbc0c1f0a9301c3c3, + limb3: 0x8bf109613fcbedbd1f6eb54, }, u384 { - limb0: 0x8614291722cd156484189686, - limb1: 0x42813dc57ed0b21e0b191357, - limb2: 0x12991cc350b7717c, - limb3: 0x0 + limb0: 0x5db0e505f0d4c17b70ede742, + limb1: 0xebf02faa2b1369c35293c278, + limb2: 0x1580684a19424b874676f1d6, + limb3: 0x432a6e9f63d4f3fd7751b27, }, u384 { - limb0: 0x135ef8f3685d6bd6d0e9fadb, - limb1: 0xbe1266ef39ece19e473337cb, - limb2: 0xb87be877f643a23, - limb3: 0x0 + limb0: 0xcc6bfca6ed3d085a948bf76f, + limb1: 0xd4e5ea9a096e5a2876582762, + limb2: 0x6b6031124befcce336edcd11, + limb3: 0x4d6fcb104e4f995783df55a, }, u384 { - limb0: 0x9ec7b8f586e9b26542762aea, - limb1: 0x283e17684b959743424b7d6b, - limb2: 0x28e6b96360b4db24, - limb3: 0x0 + limb0: 0xeb4beb9c6bea6906be096a0d, + limb1: 0x58cbd0fdd942ab6f6ca38afc, + limb2: 0xa6f8a43cb124f43c47458c3, + limb3: 0xdd1097916b8d344c8786b6b, }, u384 { - limb0: 0xcb6cc301745cc33c9d874b4d, - limb1: 0x1362173234480a5efdfe9283, - limb2: 0x199ec7c310204a50, - limb3: 0x0 + limb0: 0x8e3622a7bd32b02b9b9596d0, + limb1: 0x9b22515cd79ca9f459bcaee, + limb2: 0x59b48afbf51bcd276cd79e7b, + limb3: 0x51d85d10a9d19d98c992693, }, u384 { - limb0: 0xb4195117ca769e064668ac37, - limb1: 0xdba59c21fbb92c136609ced3, - limb2: 0x26ee5eac5cbf7d9a, - limb3: 0x0 + limb0: 0x86fd9f4c66ef7abaf2829b98, + limb1: 0xf3301e19baf1564cde179dc5, + limb2: 0x6139bd4b9efe34a8d9808497, + limb3: 0xd33b412ca6955c511ee13e7, }, u384 { - limb0: 0x1892a064f412affcf385aafa, - limb1: 0x95adb767c37b6a5eadfd4370, - limb2: 0x2d637d14799eb58b, - limb3: 0x0 + limb0: 0xb0027eef2a7727d06aa449a5, + limb1: 0xa736907d9496cd93f41ee2cd, + limb2: 0x3116d3b02d559c178b41f5cb, + limb3: 0x149df0480c3df6ec6bb30c2a, }, u384 { - limb0: 0x42677ad310398901ab5d95f2, - limb1: 0xf23dcfdc03090f5bcb552ffb, - limb2: 0x1a5efbbfed0fd089, - limb3: 0x0 + limb0: 0x9504daf42dff0e6a5f36a1b6, + limb1: 0xc9935fa3930f2253e1f7926a, + limb2: 0x849319a1b07bd3ee8eb93cc3, + limb3: 0xa43850bb2e3f7688bdcc6aa, }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), b_den: array![ u384 { - limb0: 0x29e94051e68467d53d5297b4, - limb1: 0x14a55edd2fe89535c883c4cd, - limb2: 0x1dd817da75771849, - limb3: 0x0 - }, - u384 { - limb0: 0x5dea00ca5a2cbe6bf3dd32b2, - limb1: 0x7b3902cdc87d4dc63a0039e3, - limb2: 0x22f7a16e905f1787, - limb3: 0x0 - }, - u384 { - limb0: 0xea5d14bf6edf8d177eaf0943, - limb1: 0xb712a2a92e4be74713cdb4c5, - limb2: 0x2ba3b0b1c45d5e4c, - limb3: 0x0 - }, - u384 { - limb0: 0x2f72d775fe28a296baac8aa6, - limb1: 0x6fb15395df34b5676f9eb071, - limb2: 0x3e47145c432f447, - limb3: 0x0 + limb0: 0x9a743a5a7c624b246e80c33e, + limb1: 0x94014574daf378ad484d3bdb, + limb2: 0x1d36b06f1a92e2433cadee96, + limb3: 0xa0c1660b5e49135423c0d37, }, u384 { - limb0: 0xb4fa7d209d360974da349c40, - limb1: 0x7bd2596dac25cc1849e6a9f6, - limb2: 0x78576cc60ca8c3, - limb3: 0x0 + limb0: 0x5fd320bf6582ad83ed0f2354, + limb1: 0xb5ef07aac45e09cb6d8cdd0f, + limb2: 0xbd88bdd047b71e5c0c04197, + limb3: 0x1610b727c6ad303517725a1f, }, u384 { - limb0: 0x64b0815bc1e62134c9ad1e44, - limb1: 0xc580abad7643d36ca5e7d99f, - limb2: 0x1b1459621732e232, - limb3: 0x0 + limb0: 0x7a321b351f86712a11485478, + limb1: 0xcec26cd027b2c897d489daab, + limb2: 0x1820f60a58bb6952110dcd90, + limb3: 0xf98d06116e70d79d40d4a41, }, u384 { - limb0: 0x8289919a60a8fcdd6b7ace2e, - limb1: 0x4864cb7d11d8d3f6e2ed777, - limb2: 0x214656ad209703ac, - limb3: 0x0 + limb0: 0x95ae8675d5f5edc35befef6a, + limb1: 0x1aa8cafbc54ef8ac3a82d8fb, + limb2: 0x5824b31d3a6db2793ffcba9b, + limb3: 0x15b59fdb39593f7a12f2a3e9, }, u384 { - limb0: 0xe36ee4cca500ee3bf550008c, - limb1: 0x3bc429f01e7c0be0bea05dee, - limb2: 0x2bdd6503b3df0306, - limb3: 0x0 + limb0: 0x4af9810c9f9b2223c76d723a, + limb1: 0x358b1d0bd49b14c642feaa72, + limb2: 0xb17e340de3b188ac4f9575a7, + limb3: 0x4fddbc94c29edc121109ea, }, u384 { - limb0: 0x23e48d0358003cc05e197685, - limb1: 0xfc954da3dfae08a438cf02ad, - limb2: 0x1aebefaf07107b1c, - limb3: 0x0 + limb0: 0x27d36b954eef0bc7470f7d7a, + limb1: 0x771dcb269af2a67346b8bc5e, + limb2: 0x4c0511dfd38067a229d366a6, + limb3: 0x320f14e289d7f249bef6431, }, u384 { - limb0: 0xa788a85faf8784b108d77cdd, - limb1: 0x9a486a69a22dd48548f55ec7, - limb2: 0x65e134ec22787dd, - limb3: 0x0 + limb0: 0xb53ad9da11471b95f0115a2b, + limb1: 0x89c0135cc6fd69c653886ddc, + limb2: 0x98e4b10ccfaaf2473f345533, + limb3: 0xb0bfd8e94e0a448a18910ce, }, u384 { - limb0: 0x62fcd8a687b9240724852595, - limb1: 0xf59a2a746a4e4f25ba77aa53, - limb2: 0x6ec524270be5d0f, - limb3: 0x0 + limb0: 0x10224dea8fdbc36f85f81a54, + limb1: 0x494627453bc21ad077a6cf06, + limb2: 0xee24a1f71624d10c615fd627, + limb3: 0xe524a8c2a654a49397cfb3a, }, u384 { - limb0: 0x497921b6baf2babcfb53b0ce, - limb1: 0x3882933844ef1f2ccaaa6053, - limb2: 0x29a283b646b47124, - limb3: 0x0 + limb0: 0xc422b3ce4a743c9a521bf64a, + limb1: 0x1de64ca6c38baf256b85f060, + limb2: 0xe0c818c25f89cedf9e6cf16a, + limb3: 0x101ecd1425335f58faa2131e, }, u384 { - limb0: 0x8f835ff6daa8ffb5373d57c6, - limb1: 0xd26d9a1ea07eb6dd6019d31c, - limb2: 0x85b797781fa9673, - limb3: 0x0 + limb0: 0x6e260951ac7d99eebf45c588, + limb1: 0x1dc0deba3cc3cf3d670ee183, + limb2: 0xa8b8930da41ed8af68c98e1c, + limb3: 0x12d5bd07a9af8190f9376341, }, u384 { - limb0: 0xcd7fe058791f30e87771fc0b, - limb1: 0x815bdaf64829e9b1516efc83, - limb2: 0x2b9e7c96d38ea597, - limb3: 0x0 + limb0: 0x1e4cfdc2965247450ce5cffa, + limb1: 0x27154079d6697237abe19a59, + limb2: 0x485335ecd2bb0c5cb1d3c391, + limb3: 0x161df29fd7c7a33943a2d19, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ u384 { - limb0: 0x34960deb50c0fa37053c16e5, - limb1: 0x53d79c5320363dad57726b03, - limb2: 0x1793e1d42c073be, - limb3: 0x0 + limb0: 0x841c92ca5595d972b93dea5f, + limb1: 0x438964b0572240f6360db25b, + limb2: 0xfa451f34d9aa38d63f7e1907, + limb3: 0x1000152ee97206117d15fac7, }, u384 { - limb0: 0x8bbd8e60fc1a1859e888a509, - limb1: 0xdc2822db40c0ac2e47c7fadc, - limb2: 0x183227397098d014, - limb3: 0x0 - } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x9b6370bd9d3637f4ec5f88e6, - limb1: 0x20f2ea49b8e005cc4dc13e85, - limb2: 0x192fd65befe51499, - limb3: 0x0 + limb0: 0xb29efd54e9fc8a2e53d1cd6c, + limb1: 0x14cfd3aa72be7fbce57faaf8, + limb2: 0xd3defb006dc0e1006661f395, + limb3: 0x1143dee3312321f2701b7b2a, }, u384 { - limb0: 0x50f1b10239f0fe47671748d9, - limb1: 0xdf37d531bb46a9f16e8c319b, - limb2: 0x141a18c450bcb53f, - limb3: 0x0 + limb0: 0xf3cc7d754b973b75560a6d03, + limb1: 0x8b8657b1a59f8814d0ed1771, + limb2: 0x299fa8bf2da443a7bf6d26c1, + limb3: 0xcc70f1e4ceb1a1b1b61cfda, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0x1c0c62232c450cceb70e9210, - limb1: 0x862a3a2be0c83b96aed2de18, - limb2: 0x26bc33083894982, - limb3: 0x0 + limb0: 0x39545508bafa1850fc38962a, + limb1: 0x850eaf3c0eb3a07b5a726a7, + limb2: 0x89a45f95d4cc7f1658a88cd4, + limb3: 0xb1b5908818cd28e1fafb22f, }, u384 { - limb0: 0x111bdbebbe963bd7c14fe224, - limb1: 0x18a1c5b4146d5a17a24245d7, - limb2: 0xc564d6129880355, - limb3: 0x0 + limb0: 0x1377eaf94203c80067ff382, + limb1: 0xcef824f14631f71fa26068d3, + limb2: 0x7a17c2c5f91a5c4a0d69a320, + limb3: 0xae7ea0cdceaab5c035dd12f, }, - u384 { - limb0: 0x98e1badacf322b09be985336, - limb1: 0x867b924cf6c9c3124e805e00, - limb2: 0x183dcd843ebca7d3, - limb3: 0x0 - } + u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), - b_den: array![ - u384 { - limb0: 0x69b887ab9b821bc7eca19d6b, - limb1: 0xaa887926a91eb90751c250ff, - limb2: 0x1b2b34a0ee7d9da1, - limb3: 0x0 - }, - u384 { - limb0: 0x8a63487971b26ebf5cc8dd44, - limb1: 0xe55739deb052a576b4232a40, - limb2: 0xbe9fbda11047f95, - limb3: 0x0 - }, - u384 { limb0: 0x3, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { - limb0: 0x9b6370bd9d3637f4ec5f88e6, - limb1: 0x20f2ea49b8e005cc4dc13e85, - limb2: 0x192fd65befe51499, - limb3: 0x0 - }, - u384 { - limb0: 0x50f1b10239f0fe47671748d9, - limb1: 0xdf37d531bb46a9f16e8c319b, - limb2: 0x141a18c450bcb53f, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() }, }; let derive_point_from_x_hint = DerivePointFromXHint { y_last_attempt: u384 { - limb0: 0x9915c58aa0fb5257eb3afb54, - limb1: 0x6ccdbc91d623d69be392ba2f, - limb2: 0x1106e955f0f1d926, - limb3: 0x0 + limb0: 0xed007f95472ddb9f25de9275, + limb1: 0x917b584d5245ae55a6ca381b, + limb2: 0xbcabb3a1e87aa361a3e037c, + limb3: 0xb43cd9a512cd7f1a24b7498, }, - g_rhs_sqrt: array![ - u384 { - limb0: 0x86185523edb93e00ac576cbf, - limb1: 0x408efb5b0f67c1a95023b14a, - limb2: 0x68068eaaf3e51cc, - limb3: 0x0 - }, - u384 { - limb0: 0x824603b580029c393c9986c7, - limb1: 0x318d6be459e117ebf2a78e6, - limb2: 0x2d9f28946605cf4, - limb3: 0x0 - }, - u384 { - limb0: 0x9f962603c670b2be55b42855, - limb1: 0xe2b90d5a935157a2801679c, - limb2: 0x65348ee600307bb, - limb3: 0x0 - }, - u384 { - limb0: 0xf0b34d2a68ed4fc3e4174657, - limb1: 0x2a976f51fd4bf27c82e60bcc, - limb2: 0x17da0d2c1a6cce02, - limb3: 0x0 - } - ] - .span(), + g_rhs_sqrt: array![].span(), }; let points = array![ G1Point { x: u384 { - limb0: 0x5c724369afbc772d02aed58e, - limb1: 0x2cd3bc838c66439a3d6160b, - limb2: 0x72f26b55fb56be1, - limb3: 0x0 + limb0: 0xe4f817e54aede0613c17035c, + limb1: 0xdff1f15010392a6da1f95a6, + limb2: 0xbed78d3d341e911d49f15454, + limb3: 0x18154782ce0913b21588066d, }, y: u384 { - limb0: 0x772ca79c580e121ca148fe75, - limb1: 0xce2f55e418ca01b3d6d1014b, - limb2: 0x2884b1dc4e84e30f, - limb3: 0x0 - } + limb0: 0x3d77d61326ef5a9a5a681757, + limb1: 0xd3070afd4f0e121de7fcee60, + limb2: 0xdf9ef4088763fe611fb85858, + limb3: 0x11a612bdd0bc09562856a70, + }, }, G1Point { x: u384 { - limb0: 0x536c985db33c69f7c242e07a, - limb1: 0xfc531bccffafcf1e59d91fb9, - limb2: 0x2585e4f8a31664cb, - limb3: 0x0 + limb0: 0xde4f62a6588c9401ffefbd3, + limb1: 0x9bb5f797ac6d3395b71420b5, + limb2: 0xdc39e973aaf31de52219df08, + limb3: 0x105dcc4dce3960447d21d3c1, }, y: u384 { - limb0: 0x57fa42444057cf0c1d62ae3c, - limb1: 0x4f48d341183118d68ea41313, - limb2: 0x1d2d2799db056ed1, - limb3: 0x0 - } + limb0: 0xaefd0d854043fd325dd3c34f, + limb1: 0x9b63c98d9a7845c52e1e2b0f, + limb2: 0x9db0be660d847ccc58358f3f, + limb3: 0x17cb6c41f0c4e1a7394ab62a, + }, }, G1Point { x: u384 { - limb0: 0x236ca9312dad3661a37f2d6f, - limb1: 0x98424c01caad7592315715d1, - limb2: 0x795b9fd941b23c4, - limb3: 0x0 + limb0: 0xcf86158ab69213388e721bb7, + limb1: 0x5f7812269d790797cad9aa15, + limb2: 0xb1c3622a0177001d9ed8e25f, + limb3: 0x115cf429f459884785c6ba46, }, y: u384 { - limb0: 0xc7ab5834609a54b8993ffd79, - limb1: 0xe81cd490528b814ca632aace, - limb2: 0x2d9ff53d3009e6f7, - limb3: 0x0 - } + limb0: 0x1e81341e2f3f988ff115dda3, + limb1: 0xad22946489db6ee4954fa5e1, + limb2: 0x83bed94412e19d92b73cc763, + limb3: 0x2074c7bceff87d0d41edba1, + }, }, G1Point { x: u384 { - limb0: 0x163df40cafbf585ca5b2ab44, - limb1: 0xb4752e4666c88dbbe23783a0, - limb2: 0x1a801462ac9cb657, - limb3: 0x0 + limb0: 0xe2955c55da59eba4b7b57d3d, + limb1: 0x1e6629b0431bce67cf28c22, + limb2: 0x1c35b7efd5b67f87221b8bfc, + limb3: 0x3e53df9e3488a9e42acd87e, }, y: u384 { - limb0: 0xac9b557d7ca8625d957263c6, - limb1: 0xdc6f75fa8339a78b998ae54a, - limb2: 0x28683293b6494d9f, - limb3: 0x0 - } + limb0: 0x2e089afa726154d40dd12102, + limb1: 0x5391613ecf49db2bcf1cad86, + limb2: 0x84a2abb2de6b3a6e09026a50, + limb3: 0x19557a3a3c1d62a205d5dc87, + }, }, G1Point { x: u384 { - limb0: 0x5c4f5dca0c973b7f70bfff9, - limb1: 0x188c2afab11eef5d48ecda3c, - limb2: 0xc2fed35d36c49f1, - limb3: 0x0 + limb0: 0x490bf40774926e8b279947c, + limb1: 0xeabab6aef9e9d2a4f64f4e7d, + limb2: 0x3e309fe1b1c8247abab20d7e, + limb3: 0x79c527862917f69ac58fcc4, }, y: u384 { - limb0: 0x9d7244ea10697ca42e2e066b, - limb1: 0xfe18a519c7d68770dc48dbf9, - limb2: 0x149bb528db998529, - limb3: 0x0 - } + limb0: 0xacb18f2da2b425c2ff50dafd, + limb1: 0x7623850d87e279a8a30f31ff, + limb2: 0x777564c7291d95fa80203ade, + limb3: 0x1764ce0e7fb626109b63789b, + }, }, G1Point { x: u384 { - limb0: 0xffc057151b06c496e6fdd440, - limb1: 0x5a01bae0c7441f08c7af1cf9, - limb2: 0x274e0e02529e6d26, - limb3: 0x0 + limb0: 0x42f2f3f4f6b9d2c2b73a361f, + limb1: 0xcd78c070c184c38b1e5716aa, + limb2: 0x72cbc24cd90da89e0e3cefe4, + limb3: 0x19485e1c46d0dce75f8b192b, }, y: u384 { - limb0: 0x65ceb8977413bc9798681ecb, - limb1: 0x19ffb287b45234f0c28fd1a7, - limb2: 0x28dbbd2f9267be76, - limb3: 0x0 - } + limb0: 0xb56b3539074b3c47b3f504d9, + limb1: 0x2c229530bddedd8851b03dcc, + limb2: 0xc93eef8474c4e18d6378e7f0, + limb3: 0x173d36f17a3c9ae77a2acc25, + }, }, G1Point { x: u384 { - limb0: 0xcfcdbfdb2056ff1a64bf1d47, - limb1: 0xf26fe2dae9f693d9b4aab2e6, - limb2: 0x12d66ad4802d841e, - limb3: 0x0 + limb0: 0x5fbf29cf20556a11621a6639, + limb1: 0xdfda5b7dbf0b226822094787, + limb2: 0x4a3b059e521b4b0445df96d5, + limb3: 0x333988c2c09f5af061cdfb, }, y: u384 { - limb0: 0xe6e34ebfa2e18dce86cadbdc, - limb1: 0x7ce096238b3d4b1b8fba6a55, - limb2: 0x2e0a660b1549800c, - limb3: 0x0 - } + limb0: 0x13d3570be6d27d1d588b22fc, + limb1: 0x20c763e58d4df3e4990cdae9, + limb2: 0x2c3301367f400c31f4bded26, + limb3: 0x16a6c25d133fba74b4c55972, + }, }, G1Point { x: u384 { - limb0: 0xd2dd03b29d58d045656ecf33, - limb1: 0xeddac3cf7a123aae2180739b, - limb2: 0x215bec6e0a03c924, - limb3: 0x0 + limb0: 0xcb24d12438557639f52df5fd, + limb1: 0x4a6a46feebe8a88a8062bd0e, + limb2: 0x65f04211af4b168b1e25787d, + limb3: 0x17935d6f4fa575744ca46f75, }, y: u384 { - limb0: 0xe5201e51828eb11589d8619f, - limb1: 0xa6563c760aa3a2c9d15af235, - limb2: 0x7ed0c9b2e7811fb, - limb3: 0x0 - } + limb0: 0x644f324be8a5c152625a5b8a, + limb1: 0x501e52e8c5707d7a3a77ee18, + limb2: 0x9636c463c14c5b85c2e6d3b1, + limb3: 0x1939b6f297f7b5b7fd0ac458, + }, }, G1Point { x: u384 { - limb0: 0xc33ac21c67b06a9994457b4c, - limb1: 0xa9aa5573bf7a92aab85366eb, - limb2: 0x1a407281e1d92e91, - limb3: 0x0 + limb0: 0xde1d8e2670532ec5bba60ade, + limb1: 0x1154f5064f7dd38656f7f82b, + limb2: 0xc9bec68372b7d07dcf66270c, + limb3: 0x315ced00b3153219bbd430, }, y: u384 { - limb0: 0x5a306649d971b115d71a78b1, - limb1: 0xa70687a9b5132e26b2cfbb37, - limb2: 0x2031920af5d6c9db, - limb3: 0x0 - } + limb0: 0xc48b3bc110e208d827b13f4d, + limb1: 0x87d82592699bca3dbf847c2b, + limb2: 0xff04f0f2c8be12365aa73443, + limb3: 0x1739c8c450ac994a5326c809, + }, }, G1Point { x: u384 { - limb0: 0x58a3cea1103f16402eb74c08, - limb1: 0xdfefcd91df2f4295ec21e03a, - limb2: 0x1150bcc09ac40007, - limb3: 0x0 + limb0: 0x8904b74d5d114b5416df0ed6, + limb1: 0x479ee13e49cde067742c2655, + limb2: 0x45b9359bfa338dd432ca9ff1, + limb3: 0x12bf6460e7a42942be6c16a0, }, y: u384 { - limb0: 0x57ed7d356f91abcef751889f, - limb1: 0x5c668cded3599c9af5a7e5fa, - limb2: 0x2ccf74197cb9bc13, - limb3: 0x0 - } + limb0: 0x3a8b37aacb2f620bc41c6109, + limb1: 0x91f68edf90b5947273b0aadf, + limb2: 0x265d48695a73800b7404124c, + limb3: 0x141e3d99b3ab683bdb0ce70f, + }, }, G1Point { x: u384 { - limb0: 0x529118e291927516dfbcba2d, - limb1: 0x440af959472c61e99aac7977, - limb2: 0x218bbc79509b59ce, - limb3: 0x0 + limb0: 0x6d6db022a8549ee86374b69a, + limb1: 0x3e98f7258170733507d8709b, + limb2: 0x10b4337a56d4cd17ab2fe1d5, + limb3: 0x11366a6fecb124757076f4b6, }, y: u384 { - limb0: 0x226044f7331ccf82af7afb39, - limb1: 0xc1953da25a89d084dcfaea76, - limb2: 0x1042fdc36b43dac3, - limb3: 0x0 - } + limb0: 0x77b25b600d3baa1a2f54f826, + limb1: 0x924c3c1a699e9b27b3612246, + limb2: 0x6a253cae0097b1955d4f0cfd, + limb3: 0xd2bd6591140d2faabafefac, + }, }, G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, ] .span(); let scalars = array![ u256 { low: 0x0, high: 0x0 }, u256 { - low: 0x4a84eb038d1fd9b74d2b9deb1beb3711, high: 0x154bc8ce8c25166a1ff39849b4e1357d + low: 0x4a84eb038d1fd9b74d2b9deb1beb3711, high: 0x2a97919d8c25166a1ff39849b4e1357d, }, u256 { - low: 0x3405095c8a5006c1ec188efbd080e66e, high: 0x2305d1699a6a5f92cca74147f6be1f72 + low: 0x3405095c8a5006c1ec188efbd080e66e, high: 0x460ba2d39a6a5f92cca74147f6be1f72, }, u256 { - low: 0x1775336d71eacd0549a3e80e966e1277, high: 0x144a7edf6288e1a5cc45782198a6416d + low: 0x1775336d71eacd0549a3e80e966e1277, high: 0x2894fdbe6288e1a5cc45782198a6416d, }, u256 { - low: 0x2f1205544a5308cc3dfabc08935ddd72, high: 0x21c38572fcd81b5d24bace4307bf326 + low: 0x2f1205544a5308cc3dfabc08935ddd72, high: 0x43870ae2fcd81b5d24bace4307bf326, }, u256 { - low: 0x42930b33a81ad477fb3675b89cdeb3e6, high: 0x2b70369e16febaa011af923d79fdef7c + low: 0x42930b33a81ad477fb3675b89cdeb3e6, high: 0x56e06d3d16febaa011af923d79fdef7c, }, u256 { - low: 0x2648ee38e07405eb215663abc1f254b8, high: 0x522c9d6d7ab792809e469e6ec62b2c8 + low: 0x2648ee38e07405eb215663abc1f254b8, high: 0xa4593acd7ab792809e469e6ec62b2c8, }, u256 { - low: 0x85940927468ff53d864a7a50b48d73f1, high: 0xdc5dba1d977e9933c49d76fcfc6e625 + low: 0xd450fe4aec4f217bb306d1a8e5eeac76, high: 0x6b3f2afe642bfa42aef9c00b8a64c1b9, }, u256 { - low: 0xd344749096fd35d0adf20806e5214606, high: 0x119d0dd09466e4726b5f5241f323ca74 + low: 0x85940927468ff53d864a7a50b48d73f1, high: 0x1b8bb742d977e9933c49d76fcfc6e625, }, u256 { - low: 0x5306f3f5151665705b7c709acb175a5a, high: 0x2592a1c37c879b741d878f9f9cdf5a86 + low: 0xd344749096fd35d0adf20806e5214606, high: 0x233a1ba09466e4726b5f5241f323ca74, }, u256 { - low: 0x30bcab0ed857010255d44936a1515607, high: 0x1158af9fbb42e0b20426465e3e37952d + low: 0x5306f3f5151665705b7c709acb175a5a, high: 0x4b2543867c879b741d878f9f9cdf5a86, }, u256 { - low: 0x5f3f563838701a14b490b6081dfc8352, high: 0x1b45bb86552116dd2ba4b180cb69ca38 + low: 0x30bcab0ed857010255d44936a1515607, high: 0x22b15f3fbb42e0b20426465e3e37952d, }, ] .span(); let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 0 + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 1, ); assert!( res == G1Point { x: u384 { - limb0: 0x5c3a06447a0996b0a92f9931, - limb1: 0xbe6a2eedc8ef87e71e9ec66f, - limb2: 0x226eea38486e086b, - limb3: 0x0 + limb0: 0xc0fae85730816663a083b3ff, + limb1: 0x8eeeb4d636a81006cac603ad, + limb2: 0xf0f40dc24542dd2f9caf4878, + limb3: 0x124bec083e5a23bb11859569, }, y: u384 { - limb0: 0xc880fabdc7f0d4cc409b1a40, - limb1: 0x14008cf49435dbd34779e8, - limb2: 0x2fd9b0fb62c9320e, - limb3: 0x0 - } - } + limb0: 0x8666d8ee624f5a3d425b3bae, + limb1: 0x2299908d21f6475fc69fed83, + limb2: 0x78f769e47d3af619393f077e, + limb3: 0x11cd8088ab13c9943e7ddf7, + }, + }, ); } #[test] - fn test_msm_BLS12_381_1P() { - let scalars_digits_decompositions = Option::Some( - array![(array![0x0,].span(), array![0x0,].span()),].span() - ); + fn test_msm_SECP256R1_1P() { + let scalars_digits_decompositions = Option::None; let msm_hint = MSMHint { Q_low: G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, Q_high: G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, Q_high_shifted: G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, - SumDlogDivLow: FunctionFelt { + RLCSumDlogDiv: FunctionFelt { a_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - b_den: array![ + a_den: array![ u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), b_num: array![ - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - a_den: array![ + b_den: array![ u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] - .span() + .span(), }, }; let derive_point_from_x_hint = DerivePointFromXHint { y_last_attempt: u384 { - limb0: 0x933cf0c20f38001183ed9df6, - limb1: 0xcb294eff7864b62ddb3adf3d, - limb2: 0xe7801e5dd2b70de9e4b1af57, - limb3: 0x4b3b4eaca402c3b711f869b + limb0: 0x3ca5552c96ec2a5049d28426, + limb1: 0xc8669717174b973f4de5a646, + limb2: 0x4fbfb38ec0c14e6e, + limb3: 0x0, }, g_rhs_sqrt: array![].span(), }; let points = array![ G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, ] .span(); - let scalars = array![u256 { low: 0x0, high: 0x0 },].span(); + let scalars = array![u256 { low: 0x0, high: 0x0 }].span(); let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 1 + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 3, ); assert!( res == G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + }, ); } #[test] - fn test_msm_BLS12_381_2P() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - ] - .span() - ), - ] - .span() - ); + fn test_msm_SECP256R1_2P() { + let scalars_digits_decompositions = Option::None; let msm_hint = MSMHint { Q_low: G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, Q_high: G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, Q_high_shifted: G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, - SumDlogDivLow: FunctionFelt { + RLCSumDlogDiv: FunctionFelt { a_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - b_den: array![ + a_den: array![ u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - a_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + b_num: array![ + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), b_den: array![ @@ -18849,18464 +5300,5211 @@ mod msm_tests { u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - b_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() }, }; let derive_point_from_x_hint = DerivePointFromXHint { y_last_attempt: u384 { - limb0: 0xbd7c0a86fc43972d8b51dd60, - limb1: 0xcfceb99ca4a950898233fc8c, - limb2: 0x830b2ea5189bbb6905ef8511, - limb3: 0x1a2bb55cd901d35f38f4ff5 + limb0: 0xcab2bdb49d36853afc772e84, + limb1: 0x9388d6adcd576a1b6ae83895, + limb2: 0x4a4640dc5b206990, + limb3: 0x0, }, g_rhs_sqrt: array![ u384 { - limb0: 0x4f4fd082399091404d2f02a7, - limb1: 0x81d93e4dc28e48b38d24fa0a, - limb2: 0xcc9039d4ba7ae8849e2f2064, - limb3: 0x680f0068cb18a987654e66b - } + limb0: 0xa65fee3201baba3b9c2f59b5, + limb1: 0x1ff3274e058360d6b1e64db3, + limb2: 0x2af2ec2fe4bf31ee, + limb3: 0x0, + }, + u384 { + limb0: 0xda5e742b60f13ba9478a5085, + limb1: 0x4ef5a3a77cc1f80dedc41ae6, + limb2: 0x511bc713034c93d4, + limb3: 0x0, + }, ] .span(), }; let points = array![ G1Point { x: u384 { - limb0: 0xe4f817e54aede0613c17035c, - limb1: 0xdff1f15010392a6da1f95a6, - limb2: 0xbed78d3d341e911d49f15454, - limb3: 0x18154782ce0913b21588066d + limb0: 0x113c8d620e3745e45e4389b8, + limb1: 0x85b8ff52d905fd02fe191c3f, + limb2: 0xf5d132d685201517, + limb3: 0x0, }, y: u384 { - limb0: 0x3d77d61326ef5a9a5a681757, - limb1: 0xd3070afd4f0e121de7fcee60, - limb2: 0xdf9ef4088763fe611fb85858, - limb3: 0x11a612bdd0bc09562856a70 - } + limb0: 0x60c0ba1b358f375b2362662e, + limb1: 0x6abfc829d93e09aa5174ec04, + limb2: 0x7bc4637aca93cb5a, + limb3: 0x0, + }, }, G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, ] .span(); let scalars = array![ u256 { low: 0x0, high: 0x0 }, u256 { - low: 0xb4862b21fb97d43588561712e8e5216a, high: 0x12cfa194e6f4590b9a164106cf6a659e + low: 0xeb1167b367a9c3787c65c1e582e2e662, high: 0xf7c1bd874da5e709d4713d60c8a70639, }, ] .span(); let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 1 + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 3, ); assert!( res == G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + }, ); } #[test] - fn test_msm_BLS12_381_3P() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - ] - .span(), - array![ - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - ] - .span() - ), - ( - array![ - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - ] - .span(), - array![ - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - ] - .span() - ), - ] - .span() - ); + fn test_msm_SECP256R1_3P() { + let scalars_digits_decompositions = Option::None; let msm_hint = MSMHint { Q_low: G1Point { x: u384 { - limb0: 0xf6a31a9a41fd0378150dc360, - limb1: 0x7a355df87079a4cf4c78fd36, - limb2: 0xbd92b81f9f87a14ded17256e, - limb3: 0x1259b26908470ad4f6be037c + limb0: 0xf831856624736393b3b76d11, + limb1: 0xc165a27df5b76589fe2ce1e2, + limb2: 0x2a23444ace6bef77, + limb3: 0x0, }, y: u384 { - limb0: 0xfbe2abbd7e05b561703438fe, - limb1: 0x892d1cc404bcc0c000d206cf, - limb2: 0x962b60138682dd48428b2a8d, - limb3: 0xa68b20ba71d8fde199d485b - } + limb0: 0xa6bbeec6fb0369c3de339579, + limb1: 0xd394f6a5704d1de2da06048, + limb2: 0xe8057073c0fde87b, + limb3: 0x0, + }, }, Q_high: G1Point { x: u384 { - limb0: 0x7c866be61fbaed5ef7d1122e, - limb1: 0x7fed89acb87ce49d38175a6f, - limb2: 0x30dbb6ee5876fa6873045668, - limb3: 0x60c4285948cc11859881060 + limb0: 0x3b1d72dc227f75f02874e08b, + limb1: 0xd395fa7c14d6ff33d03e1baf, + limb2: 0xbf16fcc65f95b486, + limb3: 0x0, }, y: u384 { - limb0: 0x5a931aaa036da6ee08c49738, - limb1: 0x1c92b3a560ce474174cfa275, - limb2: 0xa4f783dad6c9da34040c6553, - limb3: 0x8d9752128e5b2be6254e2b - } + limb0: 0xe2461ebbe7a5b4d76dbef92b, + limb1: 0x3eecb75c5315cd3d2d0b9456, + limb2: 0x8192517353bc6523, + limb3: 0x0, + }, }, Q_high_shifted: G1Point { x: u384 { - limb0: 0x663acbe46ab1edf9e0302ddb, - limb1: 0x133eafb6b82660d39354a91b, - limb2: 0xec9146f8b18f4ccfa8f938e, - limb3: 0x1127139158d2558af3ede6c1 + limb0: 0xcff970bda4db69dac06ebad8, + limb1: 0xdee4204cca252abd67132509, + limb2: 0xa79c0006b6ca7fab, + limb3: 0x0, }, y: u384 { - limb0: 0x2e2dc7b89be127d3eee7e15f, - limb1: 0xb9b688b1096640c721587415, - limb2: 0xd09f1d870e1c2d4e08674d2b, - limb3: 0x12308a0685f2c08876496459 - } + limb0: 0x759642b853dd01b9d2d7bb18, + limb1: 0xe1e1d2f8bf0f2f5b463bfae0, + limb2: 0xbc3c71be130f204d, + limb3: 0x0, + }, }, - SumDlogDivLow: FunctionFelt { + RLCSumDlogDiv: FunctionFelt { a_num: array![ u384 { - limb0: 0x7bc762e158a515b52d821792, - limb1: 0x6ecca75faa6f0257a0026f0, - limb2: 0x54035e714db9d186af76bd14, - limb3: 0x6741a842e9567e705af8ef4 + limb0: 0x9103bd16e2232359c067051c, + limb1: 0x47056dacf5ebc26121584255, + limb2: 0x510b978b1c20d16d, + limb3: 0x0, }, u384 { - limb0: 0x9ec40380b66ab9738c60bfa9, - limb1: 0x6730d2a0f6b0f62410c653ec, - limb2: 0x434bacd764774b84f38512bf, - limb3: 0x1a0111ea397fe69a4b1ba7b6 + limb0: 0x3866c583186023310ae6006f, + limb1: 0x94b09aee6293fdcebd256a74, + limb2: 0xe9964a385943e6e7, + limb3: 0x0, }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ u384 { - limb0: 0x72e3a1aba373f660d9374982, - limb1: 0x7f6c533e38820545e6743293, - limb2: 0x4a14d7b2c73830dd1036e44b, - limb3: 0x163220ef11c45701b870d3ce + limb0: 0x4e66f352e983f05cd787905a, + limb1: 0x23e4fc7f433c2785b079f227, + limb2: 0x6b71075ebbeffe51, + limb3: 0x0, }, u384 { - limb0: 0x5e1fef3acc783347caf29623, - limb1: 0xb8764fb1d07b13e339cae211, - limb2: 0xeccab81b7e73d7d6d7d92107, - limb3: 0x114aa51d9c7f621b2257782d + limb0: 0x8d716d3dc708179fd42941cc, + limb1: 0xd8e4a54aef03a57c0c4a1845, + limb2: 0xed1182498b974526, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0xc777357daa6aa6c4ebef18c7, - limb1: 0x80736b12a17997bf6e675de5, - limb2: 0x7695e787d8535cdeb6df21c3, - limb3: 0x45a863fbf06f8c4f9075629 - }, - u384 { - limb0: 0x9d9a9c620cf8011b609cd9bf, - limb1: 0x5e601cc474976cd361c63721, - limb2: 0xdc45e17f1a6a0e748a8474a5, - limb3: 0x70bdc9e64717c3a0bd18e8b - }, - u384 { - limb0: 0xe99ceeb08e413423167a42d6, - limb1: 0xbbb460d6a22df80bf24d7d86, - limb2: 0xe8dbed95ff300f747a6b6edb, - limb3: 0xc798d1b717ca47003bdda9e - }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - b_den: array![ + a_den: array![ u384 { - limb0: 0xb79286af5fd2d98364de2607, - limb1: 0xc81ed515fdf532ab3dccca51, - limb2: 0x5e705844ef7ae0e5664c58ef, - limb3: 0xac54dfd9a91a83800705816 + limb0: 0x32f47eb672f5bb330a73bb4a, + limb1: 0x1a8091c6f1f3893bc55d0fa5, + limb2: 0x8f7089d778e965c2, + limb3: 0x0, }, u384 { - limb0: 0x15d7bcebbde2cd1f2bcb0336, - limb1: 0x13779985548a6344a9d38848, - limb2: 0x2c9386bf30e0c851785a5ea0, - limb3: 0x112870a1fefdbb37f326914b + limb0: 0xc7a8f052fc045a7c4ceff3e, + limb1: 0x8b14021f73a80543f9ad14a3, + limb2: 0x508a2680c93698e4, + limb3: 0x0, }, - u384 { limb0: 0x4, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { - limb0: 0x72e3a1aba373f660d9374982, - limb1: 0x7f6c533e38820545e6743293, - limb2: 0x4a14d7b2c73830dd1036e44b, - limb3: 0x163220ef11c45701b870d3ce + limb0: 0xfc72a135b2aaa8dee44f9400, + limb1: 0x9f66c7f22c15ecf4bac82c86, + limb2: 0x6724ac9ffc3487b8, + limb3: 0x0, }, u384 { - limb0: 0x5e1fef3acc783347caf29623, - limb1: 0xb8764fb1d07b13e339cae211, - limb2: 0xeccab81b7e73d7d6d7d92107, - limb3: 0x114aa51d9c7f621b2257782d + limb0: 0x28b8828023437a8d6e45900c, + limb1: 0x490cdc11b822023a5eedbb11, + limb2: 0xcf427b32bdfa36c7, + limb3: 0x0, }, u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x5019495f08aacfea0142907a, - limb1: 0x5c6c84c98c4bdbff212b9f6f, - limb2: 0x74629b821dc449cf706989ca, - limb3: 0xd852403077491f348815589 - }, - u384 { - limb0: 0x515834b7b494091d02ac60ea, - limb1: 0xb39869507b587b11fb48a4ec, - limb2: 0x21a5d66bb23ba5c279c2895f, - limb3: 0xd0088f51cbff34d258dd3db - }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - a_den: array![ + b_num: array![ u384 { - limb0: 0x212dea0ff4fe177f1e0b0298, - limb1: 0x9f459b636eadb91eead4e97a, - limb2: 0x75eb15d611e1fb6bff9b473f, - limb3: 0x531c91c12c79d937ef79a92 + limb0: 0xc31b8bfe95c99a953dfbeabd, + limb1: 0xe63b42304b4dc475c331d5ac, + limb2: 0x499b1e200475197c, + limb3: 0x0, }, u384 { - limb0: 0x26e89def34bb4960e82f9caa, - limb1: 0x4b8d515c91c6ddf12f8084da, - limb2: 0x36360c75610d33375e66dd4e, - limb3: 0x3970316d6b9c53d7471c394 + limb0: 0xf166baa3bc64785c42f2e9eb, + limb1: 0xd575ea7fa8f28aaa7a9b0f64, + limb2: 0x128864b271e1ebf2, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0xce3933f42d6e07280a6555fd, - limb1: 0xcf6637cf3132966601952da7, - limb2: 0x1ba13bcd292f9580d238e4d5, - limb3: 0x55cb80b014630f65d21697c + limb0: 0x116db906aee291051c9ce08, + limb1: 0x2943633ba402debefac3b9a0, + limb2: 0x36d5e25b3ef465fb, + limb3: 0x0, }, u384 { - limb0: 0xec23d12308aea492320ab446, - limb1: 0xc547fbcf9c08f7a7b20a2f31, - limb2: 0x56f288207b6283a0c20629d3, - limb3: 0xb6493b88317b20ee1743bea + limb0: 0x525c3dbd1864649780b5a73e, + limb1: 0x65b5ed8ec92dd969aa336caa, + limb2: 0x3f69b099f8b6619c, + limb3: 0x0, }, u384 { - limb0: 0x668633e5546177aa7d419d1a, - limb1: 0x6c68d1c1d2a25741cfd4c2df, - limb2: 0x1d5ec99fa64509524c49a8da, - limb3: 0xc601a6fda782877abd32782 + limb0: 0xdcb8bc014e35c6d4febb77c9, + limb1: 0x25ffc8096d6e87b1e76b8e6e, + limb2: 0x45eaa89a67cda802, + limb3: 0x0, }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), b_den: array![ u384 { - limb0: 0x84b7a83fd3f85dfc782c0a60, - limb1: 0x7d166d8dbab6e47bab53a5e8, - limb2: 0xd7ac57584787edaffe6d1cfe, - limb3: 0x14c724704b1e764dfbde6a49 - }, - u384 { - limb0: 0x9ba277bcd2ed2583a0be72a8, - limb1: 0x2e354572471b77c4be021368, - limb2: 0xd8d831d58434ccdd799b7539, - limb3: 0xe5c0c5b5ae714f5d1c70e50 + limb0: 0xbeada704feb34546e4301ab0, + limb1: 0x5b533141bf8fd64c6afe4bd9, + limb2: 0x4e4368ec25ed3c45, + limb3: 0x0, }, - u384 { limb0: 0x4, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { - limb0: 0x212dea0ff4fe177f1e0b0298, - limb1: 0x9f459b636eadb91eead4e97a, - limb2: 0x75eb15d611e1fb6bff9b473f, - limb3: 0x531c91c12c79d937ef79a92 + limb0: 0x1a26c33296a4cf0e96b4d599, + limb1: 0x27f1e1d4a919a68c6edaf9df, + limb2: 0x7e1cc39a4fc825b8, + limb3: 0x0, }, u384 { - limb0: 0x26e89def34bb4960e82f9caa, - limb1: 0x4b8d515c91c6ddf12f8084da, - limb2: 0x36360c75610d33375e66dd4e, - limb3: 0x3970316d6b9c53d7471c394 + limb0: 0xa37d8288f41c6ce32ecb17e2, + limb1: 0x56f36c3517bd230fefdbda97, + limb2: 0xde1b03a23f8bb59e, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x6768b46c349823ba55a416a1, - limb1: 0xce708c87c4ab529d7c4d4b51, - limb2: 0xc5de7d14d5274f9a7ec5131f, - limb3: 0x168d4b5ae1a7125dead907dc - }, - u384 { - limb0: 0x302ea91a3b09524e7c49fbbb, - limb1: 0xb39869507b587b118b5d4593, - limb2: 0x21a5d66bb23ba5c279c2895f, - limb3: 0xd0088f51cbff34d258dd3db - } - ] - .span(), - a_den: array![ u384 { - limb0: 0xbf233d2aee64158f2f91c838, - limb1: 0x3e0a4923172718281a48731d, - limb2: 0xbc29b375d5e4cf55bd898b0d, - limb3: 0xb2f255db19d2e8ee63ed7d + limb0: 0x9d3ed76f0cda7c44b1892480, + limb1: 0xad525772678432d3dd0efe6, + limb2: 0x1e5683ea757beea2, + limb3: 0x0, }, u384 { - limb0: 0xce92c8352f9224a727fe6aa2, - limb1: 0xd404993d860db0b3533ffc73, - limb2: 0x3a6e17980e75c4f85f128c8, - limb3: 0x2cdbbd34c20cff6fda5b095 + limb0: 0x5ea4b87b01c4123da1d0af63, + limb1: 0x63d92b3fc1da85514200ea22, + limb2: 0x3d88eabf39828878, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0x5ed0334bc9993edb772b4442, - limb1: 0xd1c7bd63bc34515b01d4caae, - limb2: 0xb0d2ecc1d9a3f1d218d774ce, - limb3: 0xd5fb4713c434613fb837abd + limb0: 0xfc72a135b2aaa8dee44f93fd, + limb1: 0x9f66c7f22c15ecf4bac82c86, + limb2: 0x6724ac9ffc3487b8, + limb3: 0x0, }, u384 { - limb0: 0xf4156ff70f76f3b687c6eaf2, - limb1: 0x32d6c654ecc59021cc0fef3, - limb2: 0x45a693b73a054e74944cce5f, - limb3: 0xd189e878386807a0d2a27c7 + limb0: 0x28b8828023437a8d6e45900c, + limb1: 0x490cdc11b822023a5eedbb11, + limb2: 0xcf427b32bdfa36c7, + limb3: 0x0, }, - u384 { - limb0: 0xc43d5cbf1370cafe7a75939d, - limb1: 0x9836263aaf4f3f064d1a1e83, - limb2: 0x9eaa6b8c07a5bbf633e387f7, - limb3: 0x5c57abc959b5cbb96eb1ecb - } + u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), - b_den: array![ - u384 { - limb0: 0xfc8cf4abb990563cbe4720e0, - limb1: 0xf829248c5c9c60a06921cc76, - limb2: 0xf0a6cdd757933d56f6262c34, - limb3: 0x2cbc9576c674ba3b98fb5f6 - }, - u384 { - limb0: 0x3a4b20d4be48929c9ff9aa88, - limb1: 0x501264f61836c2cd4cfff1cf, - limb2: 0xe9b85e6039d713e17c4a323, - limb3: 0xb36ef4d30833fdbf696c254 - }, - u384 { limb0: 0x4, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { - limb0: 0xbf233d2aee64158f2f91c838, - limb1: 0x3e0a4923172718281a48731d, - limb2: 0xbc29b375d5e4cf55bd898b0d, - limb3: 0xb2f255db19d2e8ee63ed7d - }, - u384 { - limb0: 0xce92c8352f9224a727fe6aa2, - limb1: 0xd404993d860db0b3533ffc73, - limb2: 0x3a6e17980e75c4f85f128c8, - limb3: 0x2cdbbd34c20cff6fda5b095 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() }, }; let derive_point_from_x_hint = DerivePointFromXHint { y_last_attempt: u384 { - limb0: 0x7de11bb33af7b669d3eea385, - limb1: 0xf050e2b3645c76f4021a9145, - limb2: 0xbb5dafe124843cb2bf90ab58, - limb3: 0x83df3d15b1ef9fb0abffd31 + limb0: 0x4d4cd96c2a9c3eeb03a36099, + limb1: 0x68066c4db63f81f0b9abcbb6, + limb2: 0x3cf75d802ff73183, + limb3: 0x0, }, g_rhs_sqrt: array![].span(), }; let points = array![ G1Point { x: u384 { - limb0: 0xe4f817e54aede0613c17035c, - limb1: 0xdff1f15010392a6da1f95a6, - limb2: 0xbed78d3d341e911d49f15454, - limb3: 0x18154782ce0913b21588066d + limb0: 0x113c8d620e3745e45e4389b8, + limb1: 0x85b8ff52d905fd02fe191c3f, + limb2: 0xf5d132d685201517, + limb3: 0x0, }, y: u384 { - limb0: 0x3d77d61326ef5a9a5a681757, - limb1: 0xd3070afd4f0e121de7fcee60, - limb2: 0xdf9ef4088763fe611fb85858, - limb3: 0x11a612bdd0bc09562856a70 - } + limb0: 0x60c0ba1b358f375b2362662e, + limb1: 0x6abfc829d93e09aa5174ec04, + limb2: 0x7bc4637aca93cb5a, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0xde4f62a6588c9401ffefbd3, - limb1: 0x9bb5f797ac6d3395b71420b5, - limb2: 0xdc39e973aaf31de52219df08, - limb3: 0x105dcc4dce3960447d21d3c1 + limb0: 0xd3ff147ff0ee4213f51f677d, + limb1: 0x431366a7732a6e4a6b942255, + limb2: 0x9fe743b25d39a591, + limb3: 0x0, }, y: u384 { - limb0: 0xaefd0d854043fd325dd3c34f, - limb1: 0x9b63c98d9a7845c52e1e2b0f, - limb2: 0x9db0be660d847ccc58358f3f, - limb3: 0x17cb6c41f0c4e1a7394ab62a - } + limb0: 0x7f8bb562ff60a902ef14bcb0, + limb1: 0xeb9420089fa531db62e806a6, + limb2: 0xfd028df433dfd5cc, + limb3: 0x0, + }, }, G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, ] .span(); let scalars = array![ u256 { low: 0x0, high: 0x0 }, u256 { - low: 0x12e0c8b2bad640fb19488dec4f65d4d9, high: 0x2a43e70faf19922ad9b8a714e61a441c + low: 0xe443df789558867f5ba91faf7a024204, high: 0x23a7711a8133287637ebdcd9e87a1613, }, u256 { - low: 0x5a92118719c78df48f4ff31e78de5857, high: 0x51f964df9c6316b950f244556f25e2a2 + low: 0x1846d424c17c627923c6612f48268673, high: 0xfcbd04c340212ef7cca5a5a19e4d6e3c, }, ] .span(); let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 1 + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 3, ); assert!( res == G1Point { x: u384 { - limb0: 0x2b828af1f5fe30bbe7a1074a, - limb1: 0x5669beaa69827b52dc874c9f, - limb2: 0x648af2c24d82a5a758c96b8e, - limb3: 0x188bc245620ae6b6afec9dc3 + limb0: 0x33ee7695471a03192ef22266, + limb1: 0xb449dd8cfd0c3438e14a718c, + limb2: 0x1fbb33f079b828e2, + limb3: 0x0, }, y: u384 { - limb0: 0xdc96192f803ef92f56d59758, - limb1: 0xfc6139925c05a030065d564, - limb2: 0xb24447300bec56efec94dcf4, - limb3: 0x156f97e5d31055c0a5fe154d - } - } + limb0: 0xb411f97aeec2eae6044122ec, + limb1: 0xcdce180b60667260d7ce284e, + limb2: 0xa73a7381dd3b07c, + limb3: 0x0, + }, + }, ); } #[test] - fn test_msm_BLS12_381_4P() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - ] - .span(), - array![ - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - ] - .span(), - array![ - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - ] - .span() - ), - ] - .span() - ); + fn test_msm_SECP256R1_4P() { + let scalars_digits_decompositions = Option::None; let msm_hint = MSMHint { Q_low: G1Point { x: u384 { - limb0: 0xcf5bc4cf513273a64b43540a, - limb1: 0x6613974b3587de6a0421a52b, - limb2: 0x9f11261324f0125289a51c4, - limb3: 0x90308470b416ca1aff0c5e3 + limb0: 0xddb5a889b8b2286c5d1124ca, + limb1: 0xe3db8af7035bf63b788d1b86, + limb2: 0x2e193b7cafebcfe6, + limb3: 0x0, }, y: u384 { - limb0: 0x3102ea48c94f20f4ccebc9c3, - limb1: 0x4d6ae4a26c0e0350d12814d5, - limb2: 0x2dc8ffb6c7db29c2dacd756a, - limb3: 0x9cf7dc9d86166897fb4c3ce - } + limb0: 0x519a5d47cdb177063c1665a5, + limb1: 0x4f72ccaf2e61bf1ca5909e56, + limb2: 0x5a4c815353430f54, + limb3: 0x0, + }, }, Q_high: G1Point { x: u384 { - limb0: 0x36952716073ad3a0784c804b, - limb1: 0x925ddef3c85fe6d3a513b55f, - limb2: 0xd670ae77446cb42ba15c358, - limb3: 0x1164ae8fe1dc44c74a1279b + limb0: 0x7471395483d3edfae9b6f108, + limb1: 0xdc3612b8c1cff114d0097f61, + limb2: 0xf3cd0f7bac63576e, + limb3: 0x0, }, y: u384 { - limb0: 0x83e4d47d929ded88adf56ff5, - limb1: 0x45a6caccd5bc61c52fd977a9, - limb2: 0xf2c35142e28cb439cb9f42e8, - limb3: 0x6cdaf0c31bac5372c41228e - } + limb0: 0x7546388b69b878a6a1808495, + limb1: 0xc57e063ce6a1619ab7f4a8c9, + limb2: 0x876dcde507c5b206, + limb3: 0x0, + }, }, Q_high_shifted: G1Point { x: u384 { - limb0: 0x36feccbcf8718c917cc04cd3, - limb1: 0x4f3ced9cd8d2f9e58751adaa, - limb2: 0xcf671555118dadc2f708f1ca, - limb3: 0x8619de3ffa219bbdfc07acc + limb0: 0x7be10be31458fbb2b84ad1cf, + limb1: 0xc6c7c5315901dfe6df3b4e86, + limb2: 0x245ced58428a76b2, + limb3: 0x0, }, y: u384 { - limb0: 0xfd78095a60ed4f6c2023e653, - limb1: 0x88a7c4412c34745f062cb8f1, - limb2: 0xdb50e0b5ab8899e15fcc908b, - limb3: 0x1419343e534a2c7643769e8 - } + limb0: 0x59d7d6bf1a2a69e2c0c680f9, + limb1: 0x35c6a2e80821772c88ce7405, + limb2: 0x4859fbcef0a50f54, + limb3: 0x0, + }, }, - SumDlogDivLow: FunctionFelt { + RLCSumDlogDiv: FunctionFelt { a_num: array![ u384 { - limb0: 0x45b98cdd7ba62359feaa9a6e, - limb1: 0xc24aefac23a9faf002a724f1, - limb2: 0x55b785038331c5793e47ed32, - limb3: 0x7bf1b171c9abcc90c38fffd - }, - u384 { - limb0: 0x33cec0bc6ee35213214e4609, - limb1: 0x81317eafb6b08750488be866, - limb2: 0x7edf4ad39875b59fb4accb75, - limb3: 0x9de0a94f406873c76bf7b41 + limb0: 0xd7ff76082d220594fd9c796d, + limb1: 0x64173827dd21d0cdf2cef5eb, + limb2: 0x4fc2048e40193666, + limb3: 0x0, }, u384 { - limb0: 0x60416bb07aa26060d453430d, limb1: 0x5302fc4c, limb2: 0x0, limb3: 0x0 + limb0: 0x209add35046d7fa733e876e9, + limb1: 0x7b2bcc2548c94f5ca9cf63ec, + limb2: 0x71ae8b1209d0569b, + limb3: 0x0, }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ u384 { - limb0: 0x3227c96ba469bf879b5871bb, - limb1: 0x1c3e60618214cb0ea9c2234f, - limb2: 0x23914f4977a4a34b2a16c107, - limb3: 0x1328417d029a5a71b288521a + limb0: 0x31375be21ebc3e1f47899477, + limb1: 0x5875347782c05d42c8426c4e, + limb2: 0xaa82204a9da2be3c, + limb3: 0x0, }, u384 { - limb0: 0xd134d2d91d0a63d314877bc8, - limb1: 0x721dbe609fc7994b71a78baa, - limb2: 0xb29f44924459d9343c7ba5e8, - limb3: 0x1379f214ed93a33a27306c7d + limb0: 0x4b44f3411db6c71be2d2feca, + limb1: 0xdfca92d047d9087ec7303593, + limb2: 0xd33f82983b9a359c, + limb3: 0x0, }, u384 { - limb0: 0xb5e12f7b06b0afe1064ae9c2, - limb1: 0x6d2004386df3d2b0b7489006, - limb2: 0xeea8fbafea3577e1fd7d1252, - limb3: 0x9445b15a52b7806e35dfb80 + limb0: 0x77c0ca5779540bd110c72c4d, + limb1: 0x58cef6df7a49e4f18e9b9f3b, + limb2: 0xb7086c7f110ad9bf, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0xdf34167093291aab063f9501, - limb1: 0x59c1ae271eac29b03d67fea0, - limb2: 0xcef6d2db0dfb0f275d24dcaf, - limb3: 0x70d686be1b51d317489e73e - }, - u384 { - limb0: 0xfcfc007decd49dc2fb532ac4, - limb1: 0x36c3b610c81b133dad6b0c5c, - limb2: 0x76fb4c28acf9795dcc430ee3, - limb3: 0x6b2dac5e56e1f3e0b8c2cc1 - }, - u384 { - limb0: 0x57471f3fbdc331b1a7e9b8be, - limb1: 0x26850e4b97aca2cb6873bee7, - limb2: 0x6ed0d3dc0f306e9d8626fdac, - limb3: 0xb50da43c97733f161b7213c - }, - u384 { - limb0: 0xdd5ba2d207af3eec498950c3, - limb1: 0x2b249f961be9a25514d2535d, - limb2: 0xf1552c988db8a645d8c2283d, - limb3: 0x508a5b51044ddfa52465dc5 - }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - b_den: array![ - u384 { - limb0: 0x65f725af1da8fe1e6d627196, - limb1: 0xa297dc441af13ff269b08d3f, - limb2: 0x7ade37715a3f622c150de9d, - limb3: 0x189ee21f97699c9233e9f8fc - }, + a_den: array![ u384 { - limb0: 0xe22b4b65002b8f4c521e99ca, - limb1: 0xfa15544091bc78e589462ead, - limb2: 0x43e5b89a4878cdc70ae47222, - limb3: 0x19e5a47f434ebfb4068a628a + limb0: 0x224a7f10c430261fd46a2cbc, + limb1: 0x95a48f0fea77443974ef772, + limb2: 0x1f01781aa21478b0, + limb3: 0x0, }, u384 { - limb0: 0x2630bdec60c3bf84192bfc5d, - limb1: 0x4d4f3e40c11e549ebe76401c, - limb2: 0x775841e8445e9403026f368a, - limb3: 0xb105a6c5b2df981425c464d + limb0: 0xd69f441418c65cd0a28ea4, + limb1: 0x5b90bd8b06bb760f4b0ce8d2, + limb2: 0xe833a95fe714f4f9, + limb3: 0x0, }, u384 { - limb0: 0x3227c96ba469bf879b5871bf, - limb1: 0x1c3e60618214cb0ea9c2234f, - limb2: 0x23914f4977a4a34b2a16c107, - limb3: 0x1328417d029a5a71b288521a + limb0: 0xd405f15d194e8ff56446eabd, + limb1: 0x8066d26cf0bbd6ab89ef10ae, + limb2: 0x83f465891e451597, + limb3: 0x0, }, u384 { - limb0: 0xd134d2d91d0a63d314877bc8, - limb1: 0x721dbe609fc7994b71a78baa, - limb2: 0xb29f44924459d9343c7ba5e8, - limb3: 0x1379f214ed93a33a27306c7d + limb0: 0x235ec499538d5c0d4873ec3b, + limb1: 0xf5346e44643e39bdb3df520, + limb2: 0x50155054a5948369, + limb3: 0x0, }, u384 { - limb0: 0xb5e12f7b06b0afe1064ae9c2, - limb1: 0x6d2004386df3d2b0b7489006, - limb2: 0xeea8fbafea3577e1fd7d1252, - limb3: 0x9445b15a52b7806e35dfb80 + limb0: 0x174acbc7c20961018a885e29, + limb1: 0x8be69f64facd0f57ce6161b, + limb2: 0xefa8c3ce74e07aca, + limb3: 0x0, }, u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x4fdb7ea59c4b471160c8c50d, - limb1: 0x4b85ae0b0d5b49f76da2842b, - limb2: 0xc86025e96bbd751181f1983b, - limb3: 0x71fd1306ff4f3cb164c90b8 - }, - u384 { - limb0: 0xe44b9f16cb8a3fe997819a87, - limb1: 0x260952491d5b39a0d99d8c00, - limb2: 0xb696f723c62a6ade943f653a, - limb3: 0x52d53776b2cd0e52aec0cb4 - }, - u384 { - limb0: 0xc43f3b466f92c145a1ceac5d, - limb1: 0xb39869507b587b1261f8cad3, - limb2: 0x21a5d66bb23ba5c279c2895f, - limb3: 0xd0088f51cbff34d258dd3db - }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - a_den: array![ - u384 { - limb0: 0xc399ea617993f4cafc42e4fa, - limb1: 0x5644e7262a5545d64787ed1c, - limb2: 0x5d115c7e4c4381b98abfb1ec, - limb3: 0x7bd41d32f3ff91a287a60e7 - }, + b_num: array![ u384 { - limb0: 0x8f6d21aba032b60b549687a4, - limb1: 0xd1ead638677550cdb69f2c70, - limb2: 0xd4dcb745cb15ced6933071f5, - limb3: 0x156e8b94d0c435054616abaa + limb0: 0x2f443c999ca90b0c45e0d244, + limb1: 0xe160ce246344edbf4f5cc01d, + limb2: 0x66ee00f7147970f8, + limb3: 0x0, }, u384 { - limb0: 0x4ea7cd3450a84fe6d941bd81, - limb1: 0x40d5bc8fdb1bca4716567fd3, - limb2: 0xeb330329a83dadc46c01a0be, - limb3: 0x11311873b24f205c1ead99c8 + limb0: 0x801db4ead91ea5eb5e2980a, + limb1: 0xb8f3d9c5e373b5c3683dcf85, + limb2: 0xb42c74c87261ae3f, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0xf97802bf4065dceeb2309f86, - limb1: 0x16ce0e90f3e14ace88acf4d7, - limb2: 0x30da0de8377c8cd6c3559e81, - limb3: 0x86feb976d70b25674e36ef4 + limb0: 0x6f08d5a954d30c948d9f4ade, + limb1: 0x3c3e2add03e75101b514a41d, + limb2: 0xc4e5f7cfb618df9e, + limb3: 0x0, }, u384 { - limb0: 0xbd4255e141804a797fddaac0, - limb1: 0x999588dcef296780a5ea21f8, - limb2: 0xcad694975360de1f0e761834, - limb3: 0x6cb92857362b88060847cb3 + limb0: 0x6fb79df036f0c7bf6720921, + limb1: 0x98ab7a9231ba525ffe259758, + limb2: 0xa06fb2cb7172bde9, + limb3: 0x0, }, u384 { - limb0: 0xb3ab6a1f8fed24c52e10a667, - limb1: 0x5ca515ee07e7035b4ef715d9, - limb2: 0xc78e4a0355d9a5a03d69c961, - limb3: 0x133a02539b2573657e8711c8 + limb0: 0x1de67f3f1d796ad3f303d459, + limb1: 0xc6df8e0f12480df3325cc65, + limb2: 0xcdd030c391a0c0e, + limb3: 0x0, }, u384 { - limb0: 0x90b94d516254f95706647d55, - limb1: 0x798e1c6561759f8eceec747e, - limb2: 0xe3548568f1db4b7d84ffa740, - limb3: 0x15efd7e0c35ed001c7be76d5 + limb0: 0x96d45112a0cbb486074b1531, + limb1: 0xb1782d551e3a8be2ef9d6db8, + limb2: 0xa843060ce9ab59e0, + limb3: 0x0, }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), b_den: array![ u384 { - limb0: 0x5d13a9862c50d32bf10be93d, - limb1: 0xf1e2c9f7b2a42134ff73b474, - limb2: 0x30f9c521cc96bb613779b4f1, - limb3: 0x4f3f562837ffdce56cddbe7 + limb0: 0x3370605526a1bcc7247a4bb1, + limb1: 0xe7e333b77b2dd26060ba952, + limb2: 0x50909e4a7b51bc4d, + limb3: 0x0, }, u384 { - limb0: 0x29b886af52cdd82d525b1e8f, - limb1: 0x1218e0feb9c260ca7e78b1c6, - limb2: 0x898fd690fef158cb72328f99, - limb3: 0x7b6f894969120463707b788 + limb0: 0x90b316c91247756be086acbc, + limb1: 0x2f45c3232936442869d434df, + limb2: 0x34d2dbf6441376c7, + limb3: 0x0, }, u384 { - limb0: 0xd7f734d1cea33f9b6507a0ae, - limb1: 0x34f54cfd7f0d3cd41c01ff4f, - limb2: 0x2634b2f7d8082007c8fc5d7a, - limb3: 0x10c23dfa563cb43be47f17b7 + limb0: 0x5046835dfc5b747c1daf0e1b, + limb1: 0xb7c0e22fd16216471feca621, + limb2: 0x8083c8e0735e0075, + limb3: 0x0, }, u384 { - limb0: 0xc399ea617993f4cafc42e4fe, - limb1: 0x5644e7262a5545d64787ed1c, - limb2: 0x5d115c7e4c4381b98abfb1ec, - limb3: 0x7bd41d32f3ff91a287a60e7 + limb0: 0xbf9ffe123c33fd394188990c, + limb1: 0xd11dad765f2eba62bf6692dc, + limb2: 0xb6e5bda8e22c9ace, + limb3: 0x0, }, u384 { - limb0: 0x8f6d21aba032b60b549687a4, - limb1: 0xd1ead638677550cdb69f2c70, - limb2: 0xd4dcb745cb15ced6933071f5, - limb3: 0x156e8b94d0c435054616abaa + limb0: 0x2fa280474cb1cd5ea09a7379, + limb1: 0xf3351b39b4c55ce71b04c83c, + limb2: 0x798ac53193184455, + limb3: 0x0, }, u384 { - limb0: 0x4ea7cd3450a84fe6d941bd81, - limb1: 0x40d5bc8fdb1bca4716567fd3, - limb2: 0xeb330329a83dadc46c01a0be, - limb3: 0x11311873b24f205c1ead99c8 + limb0: 0x5a793efc0f00a92eec80308b, + limb1: 0x1a1751df784dea877859d510, + limb2: 0xfc04ff469de3923, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x2e148677584394e905f4cedf, - limb1: 0x88d1548e4b7fd1f62222df68, - limb2: 0x2c31f16d8374d5ea530e5346, - limb3: 0x14ea6a97d6687a2bdc6722f - }, - u384 { - limb0: 0x302ea91a3b09524e7c49fbbb, - limb1: 0xb39869507b587b118b5d4593, - limb2: 0x21a5d66bb23ba5c279c2895f, - limb3: 0xd0088f51cbff34d258dd3db - } - ] - .span(), - a_den: array![ - u384 { - limb0: 0xb5186478343fe7a850fc5f0e, - limb1: 0xf905683a0e05bef4de0b8d6c, - limb2: 0x32572e7a8296fd05d03deb4a, - limb3: 0x123fa6c250e4c33f98b2bfee - }, - u384 { - limb0: 0x43c00c2cba529fce0af2dd8d, - limb1: 0x85960610557e156af2469cf5, - limb2: 0x667d8c9adea2d27f42665d9c, - limb3: 0x1089291d3bc00891f6ba054e - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0xa34d2e36fa57d78149d2c139, - limb1: 0x28a171b4168a41f3c5a85704, - limb2: 0xc08636027a9794898f99ca1f, - limb3: 0x6c2d603b40207a03504da12 + limb0: 0x235ec499538d5c0d4873ec38, + limb1: 0xf5346e44643e39bdb3df520, + limb2: 0x50155054a5948369, + limb3: 0x0, }, u384 { - limb0: 0x360c03c601bb2beb93223a15, - limb1: 0x4f9bcbfa9d88ef397c1ff7c9, - limb2: 0xa27c906c83ab6cd83e1dee2d, - limb3: 0x90515fb6944da14a96ca0cd + limb0: 0x174acbc7c20961018a885e29, + limb1: 0x8be69f64facd0f57ce6161b, + limb2: 0xefa8c3ce74e07aca, + limb3: 0x0, }, - u384 { - limb0: 0x6a4be843be3fae169b9efd1, - limb1: 0x9cfc1655281b7fd1ee970b9e, - limb2: 0xb0f42e6a174e449b222d97bb, - limb3: 0x8bdcef4485a4f316cab2207 - } + u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), - b_den: array![ - u384 { - limb0: 0x71b991e15d019ea143f226e2, - limb1: 0x15b3fba64ab50f8b3ad635b5, - limb2: 0x42c5603b416d5d0d59ed87ad, - limb3: 0x14fc7734d0933fc9cc93b04c - }, - u384 { - limb0: 0xac5830b3754c7f382bcc20de, - limb1: 0x47f672ff689669638bc273d7, - limb2: 0x135ed8bcb19cb2f3228f50f3, - limb3: 0xe2280a07c00551344b0c5cd - }, - u384 { limb0: 0x4, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { - limb0: 0xb5186478343fe7a850fc5f0e, - limb1: 0xf905683a0e05bef4de0b8d6c, - limb2: 0x32572e7a8296fd05d03deb4a, - limb3: 0x123fa6c250e4c33f98b2bfee - }, - u384 { - limb0: 0x43c00c2cba529fce0af2dd8d, - limb1: 0x85960610557e156af2469cf5, - limb2: 0x667d8c9adea2d27f42665d9c, - limb3: 0x1089291d3bc00891f6ba054e - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() }, }; let derive_point_from_x_hint = DerivePointFromXHint { y_last_attempt: u384 { - limb0: 0xa2a78a076bfa92eeb3471559, - limb1: 0xefead878f8b359c96d13762c, - limb2: 0x5aa7c8939dc4c5def02b2150, - limb3: 0xaa4c34974276c39918a6164 + limb0: 0x2de931db10ecad445f8ceb39, + limb1: 0xc77af0d450eca1971425bbc0, + limb2: 0x7e99f3c47d9dc2f0, + limb3: 0x0, }, - g_rhs_sqrt: array![ - u384 { - limb0: 0xc59f08099be7220f2ccc7622, - limb1: 0xe498d2d5c8b6f2373e0636b5, - limb2: 0x7b3e4fb649773a3521f9b6c, - limb3: 0x3b968b3cf7f24db94d7b969 - }, - u384 { - limb0: 0x7e26dc27d2c965b85c9055d8, - limb1: 0x10df5f7570f04c82287cdbed, - limb2: 0xb0b842334cbf5da22303c7a8, - limb3: 0x4b5164e3cf33838c501c0e2 - } - ] - .span(), + g_rhs_sqrt: array![].span(), }; let points = array![ G1Point { x: u384 { - limb0: 0xe4f817e54aede0613c17035c, - limb1: 0xdff1f15010392a6da1f95a6, - limb2: 0xbed78d3d341e911d49f15454, - limb3: 0x18154782ce0913b21588066d + limb0: 0x113c8d620e3745e45e4389b8, + limb1: 0x85b8ff52d905fd02fe191c3f, + limb2: 0xf5d132d685201517, + limb3: 0x0, }, y: u384 { - limb0: 0x3d77d61326ef5a9a5a681757, - limb1: 0xd3070afd4f0e121de7fcee60, - limb2: 0xdf9ef4088763fe611fb85858, - limb3: 0x11a612bdd0bc09562856a70 - } + limb0: 0x60c0ba1b358f375b2362662e, + limb1: 0x6abfc829d93e09aa5174ec04, + limb2: 0x7bc4637aca93cb5a, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0xde4f62a6588c9401ffefbd3, - limb1: 0x9bb5f797ac6d3395b71420b5, - limb2: 0xdc39e973aaf31de52219df08, - limb3: 0x105dcc4dce3960447d21d3c1 + limb0: 0xd3ff147ff0ee4213f51f677d, + limb1: 0x431366a7732a6e4a6b942255, + limb2: 0x9fe743b25d39a591, + limb3: 0x0, }, y: u384 { - limb0: 0xaefd0d854043fd325dd3c34f, - limb1: 0x9b63c98d9a7845c52e1e2b0f, - limb2: 0x9db0be660d847ccc58358f3f, - limb3: 0x17cb6c41f0c4e1a7394ab62a - } + limb0: 0x7f8bb562ff60a902ef14bcb0, + limb1: 0xeb9420089fa531db62e806a6, + limb2: 0xfd028df433dfd5cc, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0xcf86158ab69213388e721bb7, - limb1: 0x5f7812269d790797cad9aa15, - limb2: 0xb1c3622a0177001d9ed8e25f, - limb3: 0x115cf429f459884785c6ba46 + limb0: 0x46ae31f6fc294ad0814552b6, + limb1: 0x2d54cc811efaf988efb3de23, + limb2: 0x2a2cc02b8f0c419f, + limb3: 0x0, }, y: u384 { - limb0: 0x1e81341e2f3f988ff115dda3, - limb1: 0xad22946489db6ee4954fa5e1, - limb2: 0x83bed94412e19d92b73cc763, - limb3: 0x2074c7bceff87d0d41edba1 - } + limb0: 0xaec889b9d8ce51c4a2c3586f, + limb1: 0xa2b07874c333bfee9f78e13e, + limb2: 0xc445de21be8d8709, + limb3: 0x0, + }, }, G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, ] .span(); let scalars = array![ u256 { low: 0x0, high: 0x0 }, u256 { - low: 0x5a92118719c78df48f4ff31e78de5857, high: 0x51f964df9c6316b950f244556f25e2a2 + low: 0x1846d424c17c627923c6612f48268673, high: 0xfcbd04c340212ef7cca5a5a19e4d6e3c, }, u256 { - low: 0x8d723104f77383c13458a748e9bb17bc, high: 0x42bbb74ddd84f39e71545a137a1d5006 + low: 0xb4862b21fb97d43588561712e8e5216a, high: 0x259f4329e6f4590b9a164106cf6a659e, }, u256 { - low: 0xeb2083e6ce164dba0ff18e0242af9fc3, high: 0xbf0551e03983ca8ea7e9d498c778ea6 + low: 0x12e0c8b2bad640fb19488dec4f65d4d9, high: 0x5487ce1eaf19922ad9b8a714e61a441c, }, ] .span(); let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 1 + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 3, ); assert!( res == G1Point { x: u384 { - limb0: 0x565ae56adf7b971b0ce04f43, - limb1: 0x7605de48d1513332bde03447, - limb2: 0x47735c7081fba830eb5d056, - limb3: 0x99dd8907656b77fed7fdbb9 + limb0: 0xb2a60bc0dd8b8ee13a6c1fb1, + limb1: 0xd694821758e9d16d0d548853, + limb2: 0x6ba86041669b4d29, + limb3: 0x0, }, y: u384 { - limb0: 0x7e2426bdb634f1fc715d795c, - limb1: 0x3780edcc7f3bf5dbf54b578, - limb2: 0x973c69d9a9020e1f731e4837, - limb3: 0x114a8f415fb1d913dce9456a - } - } + limb0: 0x3ff4aad67ae0150cc663ba71, + limb1: 0x20491f6ec9a09b3a65f78e23, + limb2: 0x755517c39d1215c2, + limb3: 0x0, + }, + }, ); } #[test] - fn test_msm_BLS12_381_5P() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - ] - .span(), - array![ - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - ] - .span() - ), - ] - .span() - ); + fn test_msm_SECP256R1_10P() { + let scalars_digits_decompositions = Option::None; let msm_hint = MSMHint { Q_low: G1Point { x: u384 { - limb0: 0xdea3d29b941c3fb5cbc25237, - limb1: 0xfbcee258725711ddcc5244cd, - limb2: 0x8427cf86b2b4e87dc1bcedf0, - limb3: 0x3097f31bf3374aeb94e9072 + limb0: 0x25d1a3c893718047539eb6e1, + limb1: 0x9b4041cff07fd2dbe9da2b60, + limb2: 0xd309a45be3d5092a, + limb3: 0x0, }, y: u384 { - limb0: 0x2fb2de48d175d46b4d6a8a62, - limb1: 0x3d966f44bc76c71c6440295, - limb2: 0xa6f92ab187673653adf893ea, - limb3: 0x15fcb11325512f233177dadb - } + limb0: 0x30d69755292ed509791ee5a, + limb1: 0x5f4ea127722eae987f32fe53, + limb2: 0x591da7462a9198a5, + limb3: 0x0, + }, }, Q_high: G1Point { x: u384 { - limb0: 0x4f1283a626ca2f81d008485a, - limb1: 0x154b9ef6dff2f05399ca2e07, - limb2: 0x2088a09ff23167a4f3aa2f51, - limb3: 0x1781e1418d47ba07634516dc + limb0: 0x2ae5492e7c640788f25d9247, + limb1: 0xe0c327d25b75d88ef0a263eb, + limb2: 0x6378fee63621654a, + limb3: 0x0, }, y: u384 { - limb0: 0x50bfae75765d8e333ecb160b, - limb1: 0x5945c597e69f0d1f2ecc5bae, - limb2: 0x39f690df90f400fd272ed676, - limb3: 0x12fb5e594fd1599c06811172 - } + limb0: 0xfdd5c97a0eaaf1d76bc49ba9, + limb1: 0x6fc6dc7aa6a9ea75bbf1dbc, + limb2: 0xe0b69dabeddce211, + limb3: 0x0, + }, }, Q_high_shifted: G1Point { x: u384 { - limb0: 0x9e11f638951f14b8f2a63e3b, - limb1: 0x1fb27b0f87c6c4ad9f97a145, - limb2: 0x130a5ad69b316efc22e0fb1d, - limb3: 0x159fbf045236ab12eff69042 + limb0: 0x6e4319cf45817544b4bd3e70, + limb1: 0xf042dc4ac606cb47341d59f4, + limb2: 0xc01a1b2c3961b092, + limb3: 0x0, }, y: u384 { - limb0: 0xe95f45134f7a30f5197d33b0, - limb1: 0x4a93f4c6c898a5b3e39f8222, - limb2: 0xc6356fbe212f742a8efff2c1, - limb3: 0xc5483186a1a6014d2c67de9 - } + limb0: 0xf5974a787c8b7db33323bc11, + limb1: 0x3d7dee392e99de8c61a5250d, + limb2: 0x8e1253c4a6653eb1, + limb3: 0x0, + }, }, - SumDlogDivLow: FunctionFelt { + RLCSumDlogDiv: FunctionFelt { a_num: array![ u384 { - limb0: 0x5bb48803a3703b4faa74d38b, - limb1: 0x3084b70b707c1a086101e967, - limb2: 0x4f2d9223a8b679f9ca02e4cb, - limb3: 0xa7a810dadb098281f766c98 - }, - u384 { - limb0: 0x53d0f91d64288dc346a86feb, - limb1: 0x258d1b41a432cc12ee1c69cc, - limb2: 0x9de6724537ae559cf4783ec, - limb3: 0x28bd80bc70423906d419134 - }, - u384 { - limb0: 0xae00ad3d8966af7aa9400018, - limb1: 0x59a61d5ddf6573270ddce403, - limb2: 0x69d4cbf7758a2614c042ae2e, - limb3: 0xbcc3c16f05bb93322edcda8 + limb0: 0x18783b840e510a80b1f61eb9, + limb1: 0x916aad7c5c3afd125d87d30d, + limb2: 0xffbf7713f04ebdd2, + limb3: 0x0, }, u384 { - limb0: 0xc94d08b117ecadf5d23dd4ac, - limb1: 0x6730d2a0f6b0f6235b61574a, - limb2: 0x434bacd764774b84f38512bf, - limb3: 0x1a0111ea397fe69a4b1ba7b6 + limb0: 0x3af87e0dfe475a72a63bf678, + limb1: 0x72e78618b2b2263f2d59c8dc, + limb2: 0x44175ee83d8c0c86, + limb3: 0x0, }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ u384 { - limb0: 0xe1b0f8c1c5310c0f0ecc94b3, - limb1: 0xb6562e3e2d1db1b8ac21ad47, - limb2: 0x198174ba9e32ce6461928900, - limb3: 0x4e37ff00b644c8d1722cfa + limb0: 0xd88a71b8ffb0ca2969d48f93, + limb1: 0xbaf68e35eb1788674593a67e, + limb2: 0x6603fdc4a2518de0, + limb3: 0x0, }, u384 { - limb0: 0x7f3f3f1961538eb1c86732e0, - limb1: 0x513bd3fd443d974cd7af8e39, - limb2: 0x9cd89ba6c05fd066d0ff4b5a, - limb3: 0x8de7cb69eedeaa5808a689 + limb0: 0xc6343e35a9e5ea883e0f62bf, + limb1: 0x8a4168de0cd36609407d4160, + limb2: 0xe6174eaff4723582, + limb3: 0x0, }, u384 { - limb0: 0x4ddff28f3d9eddbc77eb62ab, - limb1: 0xea0ca84e54122fe442a690e9, - limb2: 0xf5cfb5c94590937019295c03, - limb3: 0xd0e65d743483bdc8d404dcc + limb0: 0xce57855fad3ff7e570a4d7, + limb1: 0x832e894c46cf9569b38c27d9, + limb2: 0xf0aa092811f78a62, + limb3: 0x0, }, u384 { - limb0: 0xc403c558e96cf82cce166e58, - limb1: 0xd57e56902cf2e25672256441, - limb2: 0x583c869a94191102423eea29, - limb3: 0xb58a6310df0e55b97535873 + limb0: 0x95a1a37890ca5bb22e63961b, + limb1: 0x927ab093878fc005c6ec79d8, + limb2: 0xb3a560d31e3dbcd9, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0x21db837eebb76d968289b585, - limb1: 0x53ec89a8a6e47815b1456f3f, - limb2: 0x43f8049860fd888bbd53c595, - limb3: 0x10b90bf535bf83f636d17db1 + limb0: 0xf5be70a3e416fc97b910004e, + limb1: 0x14e5a9bdcbf55c749d0ab83, + limb2: 0xf2aea1a5c76ae606, + limb3: 0x0, }, u384 { - limb0: 0x11f1c7ec7da32b1599394fdf, - limb1: 0xc57838cceddfcee5551f64, - limb2: 0x5c225e946923521568eebde5, - limb3: 0x10e45b7b6b029383835758f0 + limb0: 0x7cf810198cc2b283c9a7b49d, + limb1: 0x9196223e63bc38155b98ae58, + limb2: 0x64cde81aae3311a6, + limb3: 0x0, }, u384 { - limb0: 0x36c5e233c3dd3248a09c5f7e, - limb1: 0x72a79abdf162b590fa067ac6, - limb2: 0x7fed4cbba968dbbe615f9d82, - limb3: 0xa5be12d6aaf790f2f6c84ef + limb0: 0x1f21559bb9485146ccb659c6, + limb1: 0xd18320c647ceee93eee3bc28, + limb2: 0xb5aceb377f15c542, + limb3: 0x0, }, u384 { - limb0: 0x63781950d6b8d003c5ed2377, - limb1: 0xced7e137da13382cc012e809, - limb2: 0x728b8a6e4b6d2ea39d581551, - limb3: 0xe9960b921f5ad7b11e13ac + limb0: 0x6067049ade175734b20bf3b1, + limb1: 0xcdd62d72ed614989a349c586, + limb2: 0xa83179886511cf4d, + limb3: 0x0, }, u384 { - limb0: 0x2c5923506d4b7ff8442c19b0, - limb1: 0x40bf05d4487d318502e3c667, - limb2: 0xae2990ef95e3afa2dcdabf8d, - limb3: 0x3170e6fb1acdc652876a384 + limb0: 0x6d62b519a5e39b5cb5e8334c, + limb1: 0x31e7815a2b207a73bbbfefae, + limb2: 0x3a1d4c9e55edee58, + limb3: 0x0, }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), - b_den: array![ + a_den: array![ u384 { - limb0: 0x86c3e30714c4303c3b3252cc, - limb1: 0xd958b8f8b476c6e2b086b51f, - limb2: 0x6605d2ea78cb3991864a2402, - limb3: 0x138dffc02d9132345c8b3e8 + limb0: 0xb7941c4941766af24e4012c9, + limb1: 0x962d3321429cc01a1557e8d8, + limb2: 0x1e5ff6cf9837b874, + limb3: 0x0, }, u384 { - limb0: 0xfcfcfc65854e3ac7219ccb80, - limb1: 0x44ef4ff510f65d335ebe38e5, - limb2: 0x73626e9b017f419b43fd2d69, - limb3: 0x2379f2da7bb7aa960229a26 + limb0: 0x454a7f6f3fe521749ee5e878, + limb1: 0x1b2ff57f37f05bd6a7b7058a, + limb2: 0xc0bc0338a7dbc76, + limb3: 0x0, }, u384 { - limb0: 0xd4d7ca3d827d76f1dfae3556, - limb1: 0xd9d0fbf762e6d348cd4243a7, - limb2: 0x50a77d764d53b6b67d9b4a90, - limb3: 0x3773889a21223d9ec9e7c7 + limb0: 0xe02f4a10e904193e97f2067d, + limb1: 0x8bfb4f44c2772cc04c48148a, + limb2: 0x82b73d49c2424826, + limb3: 0x0, }, u384 { - limb0: 0x406c0e25b0e5ecc24726a368, - limb1: 0xa51eb5ddea3844ee560b3e50, - limb2: 0x3727e24d8a1fc6e877091ee8, - limb3: 0x13afbed8fef9f39ce3a3e711 + limb0: 0x675ee4c2ba60b10a2c464a7b, + limb1: 0xe67d15a24cbbaec51144de02, + limb2: 0x9371a44820b515af, + limb3: 0x0, }, u384 { - limb0: 0x7f3f3f1961538eb1c86732e4, - limb1: 0x513bd3fd443d974cd7af8e39, - limb2: 0x9cd89ba6c05fd066d0ff4b5a, - limb3: 0x8de7cb69eedeaa5808a689 + limb0: 0xb15a239bfd27bdaf4449f8e, + limb1: 0x7bf46be9a070200f9a2fb6e, + limb2: 0xb96430d1456fb3b3, + limb3: 0x0, }, u384 { - limb0: 0x4ddff28f3d9eddbc77eb62ab, - limb1: 0xea0ca84e54122fe442a690e9, - limb2: 0xf5cfb5c94590937019295c03, - limb3: 0xd0e65d743483bdc8d404dcc + limb0: 0x8f58c3045e3f4b3a74bc8808, + limb1: 0x39d19930c1cc7e5c808325dc, + limb2: 0xe705811e051bc860, + limb3: 0x0, }, u384 { - limb0: 0xc403c558e96cf82cce166e58, - limb1: 0xd57e56902cf2e25672256441, - limb2: 0x583c869a94191102423eea29, - limb3: 0xb58a6310df0e55b97535873 + limb0: 0x3b3a649877eed87afa06600c, + limb1: 0xf20257210d403079b838b287, + limb2: 0x153214fc79048352, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ u384 { - limb0: 0x310abd3a18064b957a2c8edf, - limb1: 0xbf3476537beb0fad03c4cbb8, - limb2: 0xd0d332be50b9d0044950a254, - limb3: 0x17024b531fd8123471ebd49f + limb0: 0x6a2280ec6adc1eae811ca2b7, + limb1: 0x493c782bbb261e0f1d626b00, + limb2: 0xaf6b3fcf8184f7aa, + limb3: 0x0, }, u384 { - limb0: 0xbe946b7bed43fa936df5ec8e, - limb1: 0xa568dd9f49ad08a12a255b26, - limb2: 0xd1e6a1eed55a11946f6738c6, - limb3: 0x2d790bc2ab3b68ccbfbbf17 + limb0: 0xa857f8bf59953a96bf47cdb3, + limb1: 0x83ea3353c9390146d945d270, + limb2: 0x30309fa08e91cc89, + limb3: 0x0, }, u384 { - limb0: 0xa78bad3c76ec693210d222, - limb1: 0xd846abebdce401a90cad699b, - limb2: 0xe13bba0f930ad010fdc1b381, - limb3: 0x18ca4ba5c677b94350679014 + limb0: 0x725e3cdf7d683fdbe2972b59, + limb1: 0xb6d0d8d6a47a550468caeae2, + limb2: 0x32f6672ca26aa471, + limb3: 0x0, }, u384 { - limb0: 0x6974adde2a19807b61699398, - limb1: 0xb39869507b587b12626710f2, - limb2: 0x21a5d66bb23ba5c279c2895f, - limb3: 0xd0088f51cbff34d258dd3db + limb0: 0x6e187b5f20d022bdd9722fff, + limb1: 0xa97841b7c56a8a307537a2ff, + limb2: 0x1d99bd4414644830, + limb3: 0x0, }, + u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - a_den: array![ + b_num: array![ u384 { - limb0: 0xfdf24927114c6859388396f, - limb1: 0x780fc6238f060a2920d872e, - limb2: 0xd109c0308e9afb958800ce2, - limb3: 0x14e13a7c3b8734e354721b95 + limb0: 0xf7780aa1a6a57a6269163a09, + limb1: 0xd831e8a8cb25935ae27c2b52, + limb2: 0x3fa707d158fc6f5a, + limb3: 0x0, }, u384 { - limb0: 0x736de2cec5352b7649d97919, - limb1: 0xf8df84c74af398be0a665011, - limb2: 0xf62f0abe9a72bf7c5e41a2c7, - limb3: 0x92a70310e7295cd0015a592 + limb0: 0x6249a4fa79efde0c10f813ee, + limb1: 0x76b4e5c5f9ecdbf3c7972c3d, + limb2: 0x5737bf41d6b5cc25, + limb3: 0x0, }, u384 { - limb0: 0xf1f1ecf97a0317ada1d118b4, - limb1: 0xc4c3992e4bd088a5e114844, - limb2: 0xb84ee0adc12cb7730554c62f, - limb3: 0x4b2a325e864b7a303eb9515 + limb0: 0x701cce382949545c4dbfb21b, + limb1: 0x10ae57a4d81689042a14b759, + limb2: 0x30ba0339d09b7199, + limb3: 0x0, }, u384 { - limb0: 0x4e9144e10be0860c9d022e0, - limb1: 0x23326c92b607fa04c3597b07, - limb2: 0xff276258b913dd6003d6bb89, - limb3: 0x10e1560b795c869d387879bf + limb0: 0xa612d84dd5bc00495a11d7b4, + limb1: 0x2d267a2e897320b83f985a01, + limb2: 0xdb7945fdf37c8a1d, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0x3b7c67f3e656864849a2a905, - limb1: 0x84cd2f032a0329931ac8b9fd, - limb2: 0x139fa5138eb5cdc219584500, - limb3: 0xc7d14bf2b0bdcce15414936 + limb0: 0x21a74bab10a853378dc76737, + limb1: 0x183ebc9a53d1c5470523d7eb, + limb2: 0x18105aac93cec5ba, + limb3: 0x0, }, u384 { - limb0: 0x8b8b185000b988fe8e1ad89e, - limb1: 0x2cfc3d21af14c6c2efe4ff22, - limb2: 0x3e307cd2bb1a8a70d0235d62, - limb3: 0xdd09d05373f033b14916e5d + limb0: 0xb72986756831e48a51e9e29e, + limb1: 0x88b4d14dc1bc39766c03508a, + limb2: 0x33d26771820d5eb5, + limb3: 0x0, }, u384 { - limb0: 0x1e9f993c8938c7cd45e78603, - limb1: 0xb464bb26b2ad2b4bc1eb7d86, - limb2: 0xcc10694ae17d83835a04a159, - limb3: 0x194b62a5afdc7325b3eb67b7 + limb0: 0x7957572d6e3012f9c543fdf4, + limb1: 0xb62bb2bdc5ffe0def7d0e7f3, + limb2: 0xf29b7464230b0363, + limb3: 0x0, }, u384 { - limb0: 0x91f8e49bcec8ff8597009fb4, - limb1: 0x233913a2d13017564a5bfce5, - limb2: 0xb76ee31f2b19ad3d162643d0, - limb3: 0xc439f07e6ad390f05b4c632 + limb0: 0x6244a8a148f1359aef7f8dd9, + limb1: 0xfd755fa4bc962afcd1cf30a5, + limb2: 0x7df7f680c4efd89e, + limb3: 0x0, }, u384 { - limb0: 0xb2ed732726e50b22273a3c14, - limb1: 0xa2a9499a8ba5401a49efd779, - limb2: 0x2c97d10ea83cb6482b6ff2d3, - limb3: 0x873300169dee97bc63c11d3 + limb0: 0xdb5996ca2e0b75ca84fbb923, + limb1: 0x8dc1dd7aba927975f1cc8c93, + limb2: 0x6ca541359707d575, + limb3: 0x0, }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ u384 { - limb0: 0x2b80924a96561a164e21e5bb, - limb1: 0xe87179a5ffaea01dec321cbc, - limb2: 0x6a5f6985f640dc568770fb49, - limb3: 0x581b432419d1fbe70757731 + limb0: 0x1f189286d703f6112e3a65a3, + limb1: 0xffaec7f3d5170182bde41763, + limb2: 0x177445275cf06d37, + limb3: 0x0, }, u384 { - limb0: 0x1c638b3b5ad5add9276639b9, - limb1: 0x7c4d407c351d6cd40aed4047, - limb2: 0x95707e230553b26c85817860, - limb3: 0xaa8aeda004a7099b53aee95 + limb0: 0xf29f37ae81b353e4ff081e54, + limb1: 0xce1bf4b3dc7b7adde4ec8636, + limb2: 0xbeee0e15b0a62207, + limb3: 0x0, }, u384 { - limb0: 0xc7c7b3e5e80c5eb6874462d0, - limb1: 0x3130e64b92f4222978452113, - limb2: 0xe13b82b704b2ddcc155318bc, - limb3: 0x12ca8c97a192de8c0fae5456 + limb0: 0xca4131c9e1a7ce44c20654e4, + limb1: 0xcf285b17fc86cb52bd8be21b, + limb2: 0xaaaacd9c4f8d33e1, + limb3: 0x0, }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + ] + .span(), + b_den: array![ u384 { - limb0: 0xf8775cb860fe808bac9c4ee, - limb1: 0x5eb836ca2cfd6649436f734e, - limb2: 0x3fcb1edfbfd342aa8d4bc2c8, - limb3: 0xa635ceb74799b8955010b72 + limb0: 0x468ea597e4d3de7bc66b89cc, + limb1: 0x8936a8404a2ec78409c799c6, + limb2: 0x3f07039153a133f9, + limb3: 0x0, }, u384 { - limb0: 0x736de2cec5352b7649d9791d, - limb1: 0xf8df84c74af398be0a665011, - limb2: 0xf62f0abe9a72bf7c5e41a2c7, - limb3: 0x92a70310e7295cd0015a592 + limb0: 0xa656e9bbcc709030190a59e5, + limb1: 0xcf0e9849bf51c2c2bb4a3389, + limb2: 0xe69edd8c1b9aa64, + limb3: 0x0, }, u384 { - limb0: 0xf1f1ecf97a0317ada1d118b4, - limb1: 0xc4c3992e4bd088a5e114844, - limb2: 0xb84ee0adc12cb7730554c62f, - limb3: 0x4b2a325e864b7a303eb9515 + limb0: 0x38fd28913548ae96bf49205a, + limb1: 0x1c8716a071f3222038ddecff, + limb2: 0x5666387bb156f7cf, + limb3: 0x0, }, u384 { - limb0: 0x4e9144e10be0860c9d022e0, - limb1: 0x23326c92b607fa04c3597b07, - limb2: 0xff276258b913dd6003d6bb89, - limb3: 0x10e1560b795c869d387879bf + limb0: 0x9fa3ab330c10e5f453818957, + limb1: 0x287cc0db05713d24dc078d2f, + limb2: 0xeb04283d10d13cdc, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ u384 { - limb0: 0xad521cc0c87d999663d3c7b, - limb1: 0x6e6ff48d4f68e446ac030dcd, - limb2: 0xefe10c8328a4762f43f654cf, - limb3: 0x143add10e9caa87c4497cc51 + limb0: 0x47768825f3ca708bb062a8c3, + limb1: 0x6a2611a29f47fe9a9ae328dc, + limb2: 0xab0d507c80f03465, + limb3: 0x0, }, u384 { - limb0: 0x302ea91a3b09524e7c49fbbb, - limb1: 0xb39869507b587b118b5d4593, - limb2: 0x21a5d66bb23ba5c279c2895f, - limb3: 0xd0088f51cbff34d258dd3db - } - ] - .span(), - a_den: array![ - u384 { - limb0: 0xf186993094214c3e41fd0664, - limb1: 0x4c76dd6ed346a4b8f2e4631e, - limb2: 0xc5f37b9004eb57df920a1b7e, - limb3: 0xa0071802f2772feea47386e + limb0: 0x9ea968f3b3ecf751b3daae22, + limb1: 0xd701d508961a63e6dade1618, + limb2: 0xd798949899c472d5, + limb3: 0x0, }, u384 { - limb0: 0x75838620b814bbc53d50cec1, - limb1: 0x99638b3b85a8374703f630b0, - limb2: 0x53045e383b8bc068d07efb10, - limb3: 0x6e0838e9381681a42fba84e + limb0: 0xe28e108f80fd5a27854b419a, + limb1: 0xe1d143cd4bece57d80ec7096, + limb2: 0xeefb65efb2481ea4, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0x8a709b5171ca4912986ae141, - limb1: 0xcb6a05fab515150a8fb3af0f, - limb2: 0xf9cd504a1512264cb991c010, - limb3: 0x4c5c5d6b30190e5538617a1 + limb0: 0x277eef526fdb3d8162d60a0c, + limb1: 0x491395c830384483de7eb9ce, + limb2: 0xed791025dc519807, + limb3: 0x0, }, u384 { - limb0: 0xeba9c87fbbd1369fdc77d5d, - limb1: 0x99c4cf60b575aaaebbec4654, - limb2: 0x25e0c9571eb25b6e18e04d74, - limb3: 0x12ab4f602f51d77a237bdea3 + limb0: 0x77abd5504ea054894d89ae37, + limb1: 0x9fe810854c2d9265bdf2d225, + limb2: 0x178f1b4b7d2bea99, + limb3: 0x0, }, u384 { - limb0: 0xb5d9c7ba8aaa2fa1b2e45d8, - limb1: 0xe2041494c934a2eb1a4d751b, - limb2: 0x204606b689c3201ea6ea2873, - limb3: 0x5d51444966b4abe1ab2df6 - } - ] - .span(), - b_den: array![ + limb0: 0x6089f2e0e0adf2b0b7ae4410, + limb1: 0x1148a4e6a1326d0cd86253fd, + limb2: 0x7dadf2538ba7a069, + limb3: 0x0, + }, u384 { - limb0: 0x14c664c2968630f907f46ee5, - limb1: 0xcaaaa31a56699cbface58c7d, - limb2: 0xd4824168af3613f954a35b39, - limb3: 0xe00b416831de5615e013a04 + limb0: 0x2e4a6ebf98a381903b1f0d18, + limb1: 0xfe06b085faa734d315a65f52, + limb2: 0x525262d450cb77c4, + limb3: 0x0, }, u384 { - limb0: 0x24ba18832653ef14f5439059, - limb1: 0xfe5d5a4d1fefe6f7f12cc2c3, - limb2: 0x8c5cc0989b7b61e4e76d982, - limb3: 0x180fc501485b9cec0d2f983 + limb0: 0x2a62379832f30e9b5ac39e01, + limb1: 0x3b6d2b81ef91e971debbf023, + limb2: 0x32299dacfb9f87df, + limb3: 0x0, }, - u384 { limb0: 0x4, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { - limb0: 0xf186993094214c3e41fd0664, - limb1: 0x4c76dd6ed346a4b8f2e4631e, - limb2: 0xc5f37b9004eb57df920a1b7e, - limb3: 0xa0071802f2772feea47386e + limb0: 0x725e3cdf7d683fdbe2972b56, + limb1: 0xb6d0d8d6a47a550468caeae2, + limb2: 0x32f6672ca26aa471, + limb3: 0x0, }, u384 { - limb0: 0x75838620b814bbc53d50cec1, - limb1: 0x99638b3b85a8374703f630b0, - limb2: 0x53045e383b8bc068d07efb10, - limb3: 0x6e0838e9381681a42fba84e + limb0: 0x6e187b5f20d022bdd9722fff, + limb1: 0xa97841b7c56a8a307537a2ff, + limb2: 0x1d99bd4414644830, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] - .span() + .span(), }, }; let derive_point_from_x_hint = DerivePointFromXHint { y_last_attempt: u384 { - limb0: 0xb3106aeec3b1a0f79215dec2, - limb1: 0xff881434af82549006b77d4f, - limb2: 0x70ba2a6ba7d96fa80ec23619, - limb3: 0x9e843ecc36bafe34d9513fe + limb0: 0xa36bdee3b2de39ccc87aab3b, + limb1: 0x1d24bed7e1b562486a9e8fbc, + limb2: 0x2b060face89cccda, + limb3: 0x0, }, - g_rhs_sqrt: array![].span(), + g_rhs_sqrt: array![ + u384 { + limb0: 0x37cec7561349bd53ad1bb5af, + limb1: 0x5f9600122670117fa09d06d0, + limb2: 0xfe3876259c50320, + limb3: 0x0, + }, + u384 { + limb0: 0xba653f1c5b50436b97a42c5c, + limb1: 0x78ed8fe1c682d789effc44d8, + limb2: 0x4b0c454044ba9294, + limb3: 0x0, + }, + u384 { + limb0: 0x22f2f9953d5b3b7ef1c60d31, + limb1: 0xbaeeb9b7d5a4c1d0ab458e09, + limb2: 0x7ba81189bb9ba8a2, + limb3: 0x0, + }, + ] + .span(), }; let points = array![ G1Point { x: u384 { - limb0: 0xe4f817e54aede0613c17035c, - limb1: 0xdff1f15010392a6da1f95a6, - limb2: 0xbed78d3d341e911d49f15454, - limb3: 0x18154782ce0913b21588066d + limb0: 0x113c8d620e3745e45e4389b8, + limb1: 0x85b8ff52d905fd02fe191c3f, + limb2: 0xf5d132d685201517, + limb3: 0x0, }, y: u384 { - limb0: 0x3d77d61326ef5a9a5a681757, - limb1: 0xd3070afd4f0e121de7fcee60, - limb2: 0xdf9ef4088763fe611fb85858, - limb3: 0x11a612bdd0bc09562856a70 - } + limb0: 0x60c0ba1b358f375b2362662e, + limb1: 0x6abfc829d93e09aa5174ec04, + limb2: 0x7bc4637aca93cb5a, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0xde4f62a6588c9401ffefbd3, - limb1: 0x9bb5f797ac6d3395b71420b5, - limb2: 0xdc39e973aaf31de52219df08, - limb3: 0x105dcc4dce3960447d21d3c1 + limb0: 0xd3ff147ff0ee4213f51f677d, + limb1: 0x431366a7732a6e4a6b942255, + limb2: 0x9fe743b25d39a591, + limb3: 0x0, }, y: u384 { - limb0: 0xaefd0d854043fd325dd3c34f, - limb1: 0x9b63c98d9a7845c52e1e2b0f, - limb2: 0x9db0be660d847ccc58358f3f, - limb3: 0x17cb6c41f0c4e1a7394ab62a - } + limb0: 0x7f8bb562ff60a902ef14bcb0, + limb1: 0xeb9420089fa531db62e806a6, + limb2: 0xfd028df433dfd5cc, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0xcf86158ab69213388e721bb7, - limb1: 0x5f7812269d790797cad9aa15, - limb2: 0xb1c3622a0177001d9ed8e25f, - limb3: 0x115cf429f459884785c6ba46 + limb0: 0x46ae31f6fc294ad0814552b6, + limb1: 0x2d54cc811efaf988efb3de23, + limb2: 0x2a2cc02b8f0c419f, + limb3: 0x0, }, y: u384 { - limb0: 0x1e81341e2f3f988ff115dda3, - limb1: 0xad22946489db6ee4954fa5e1, - limb2: 0x83bed94412e19d92b73cc763, - limb3: 0x2074c7bceff87d0d41edba1 - } + limb0: 0xaec889b9d8ce51c4a2c3586f, + limb1: 0xa2b07874c333bfee9f78e13e, + limb2: 0xc445de21be8d8709, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0xe2955c55da59eba4b7b57d3d, - limb1: 0x1e6629b0431bce67cf28c22, - limb2: 0x1c35b7efd5b67f87221b8bfc, - limb3: 0x3e53df9e3488a9e42acd87e + limb0: 0x7e47d1c2d19c21b2f6870259, + limb1: 0xe701b40af42001c38bca00db, + limb2: 0xd87ea1720d4dd3d6, + limb3: 0x0, }, y: u384 { - limb0: 0x2e089afa726154d40dd12102, - limb1: 0x5391613ecf49db2bcf1cad86, - limb2: 0x84a2abb2de6b3a6e09026a50, - limb3: 0x19557a3a3c1d62a205d5dc87 - } + limb0: 0x5b1d6cc74985ce49a1f737fe, + limb1: 0xb9127c572c3f091c031c249c, + limb2: 0x1392711e1576aa6f, + limb3: 0x0, + }, }, G1Point { - x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - }, - ] - .span(); - let scalars = array![ - u256 { low: 0x0, high: 0x0 }, - u256 { - low: 0x8d723104f77383c13458a748e9bb17bc, high: 0x42bbb74ddd84f39e71545a137a1d5006 - }, - u256 { - low: 0xeb2083e6ce164dba0ff18e0242af9fc3, high: 0xbf0551e03983ca8ea7e9d498c778ea6 - }, - u256 { - low: 0xb5d32b1666194cb1d71037d1b83e90ec, high: 0x5008b5f2ab0c1681c8f8e3d0d3290a4c - }, - u256 { - low: 0xd3fbf47a7e5b1e7f9ca5499d004ae545, high: 0x5d79c4bd3e70f16a55485822de1b372a - }, - ] - .span(); - - let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 1 - ); - assert!( - res == G1Point { x: u384 { - limb0: 0xb6465c13adbd51cec2d07a4, - limb1: 0x7598b4d8e8054039c15d03a3, - limb2: 0x8d73a22019136c23dcebfd06, - limb3: 0x1308ab06a66baa786d360a67 + limb0: 0xb71f95ea692ed186e06e4c37, + limb1: 0x807276cd9cc59718bb11dbe9, + limb2: 0x10756a25836d67ca, + limb3: 0x0, }, y: u384 { - limb0: 0xefe8dce71d85c8e18f7a2697, - limb1: 0xd5f66c12a21ea30c73386c67, - limb2: 0xae4b2ff8f522ceba0184cec6, - limb3: 0x10d0c8cb15427e35cb504c4 - } - } - ); - } - - - #[test] - fn test_msm_BLS12_381_6P() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - ] - .span() - ), - ( - array![ - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - ] - .span(), - array![ - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - ] - .span(), - array![ - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - ] - .span() - ), - ] - .span() - ); - let msm_hint = MSMHint { - Q_low: G1Point { - x: u384 { - limb0: 0x18157403cadc5c55f36b847a, - limb1: 0xab9d129f49e8cffbefa2c9fa, - limb2: 0x17d4d1570c4261cb793d08d7, - limb3: 0x84f3231b5d77aa67b01cd30 + limb0: 0xd34211b3520c83c5f9be99af, + limb1: 0x8f19a28ceef67bbda102ffe7, + limb2: 0x7ac2b92030d351cc, + limb3: 0x0, }, - y: u384 { - limb0: 0x47ab19ae480e2c30b1f15f52, - limb1: 0xc59f67d846ab21258b4bc87, - limb2: 0xbc7bfdf42652236c41ee5fbf, - limb3: 0xa8ed554feca7b64247e3b42 - } }, - Q_high: G1Point { + G1Point { x: u384 { - limb0: 0xeb418df3914b035192f38e75, - limb1: 0x11b39af8e07f808c5ba54a71, - limb2: 0x8b9ba53c44822b97bdc25425, - limb3: 0x18b538920eb8f03671934851 + limb0: 0x411bb5d0fbe844f025c7178c, + limb1: 0xcf603787227b7ac499d6d1c4, + limb2: 0x5f6b2479862eb2f8, + limb3: 0x0, }, y: u384 { - limb0: 0x999fe25dc5061cbae7dcce33, - limb1: 0xbb0fe810c551424ae741142f, - limb2: 0x33f193b36257f22a5a4ff70, - limb3: 0xf684f74618d14866a5aca14 - } - }, - Q_high_shifted: G1Point { - x: u384 { - limb0: 0xa0fe7d2136f2d95b512a58a9, - limb1: 0x71f3affb00236bc5f98f1f6e, - limb2: 0x13f8cb77317191b734901b80, - limb3: 0x17f17b1fcfc5a9ca8b5a9225 + limb0: 0xce60303cfcb98726ff64a1e5, + limb1: 0xa64534c614754b3527588d25, + limb2: 0x44f75e245622181, + limb3: 0x0, }, - y: u384 { - limb0: 0x186a180d1fe8decd0d597f21, - limb1: 0x4f499789a39e50ec3862d323, - limb2: 0xb85145d181261c59e8dbc18e, - limb3: 0xa3a774d17833f6112b1686a - } }, - SumDlogDivLow: FunctionFelt { - a_num: array![ + G1Point { + x: u384 { + limb0: 0x8a703177da18d4ede707c057, + limb1: 0x7d6c11e754ab6fbe73deea43, + limb2: 0xdf9787168190a047, + limb3: 0x0, + }, + y: u384 { + limb0: 0x2e6585ab5f125a34fef37875, + limb1: 0xb70e9f02ce7744197172a117, + limb2: 0x60e305f9fe6f2298, + limb3: 0x0, + }, + }, + G1Point { + x: u384 { + limb0: 0x712f72f3929408ff68af059d, + limb1: 0x4f72cea12cd115dc1c8639f5, + limb2: 0xc6d5ae1b897ffe77, + limb3: 0x0, + }, + y: u384 { + limb0: 0xfcf91f56bad0659142668837, + limb1: 0xa15458b49bcdad6c870e3889, + limb2: 0x81a1342e70b1b765, + limb3: 0x0, + }, + }, + G1Point { + x: u384 { + limb0: 0x461d7579f9613d3168fc6220, + limb1: 0x7626024a6195fe0eafcea08b, + limb2: 0x32e91b268a032443, + limb3: 0x0, + }, + y: u384 { + limb0: 0xcdc7ae298071a741aafd4035, + limb1: 0x9a9bdfbdb824dc1278457a10, + limb2: 0x17fbec3713dfd145, + limb3: 0x0, + }, + }, + G1Point { + x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + }, + ] + .span(); + let scalars = array![ + u256 { low: 0x0, high: 0x0 }, + u256 { + low: 0xb5d32b1666194cb1d71037d1b83e90ec, high: 0xa0116be5ab0c1681c8f8e3d0d3290a4c, + }, + u256 { + low: 0xd3fbf47a7e5b1e7f9ca5499d004ae545, high: 0xbaf3897a3e70f16a55485822de1b372a, + }, + u256 { + low: 0x101fbcccded733e8b421eaeb534097ca, high: 0x38c1962e9148624feac1c14f30e9c5cc, + }, + u256 { + low: 0x247a8333f7b0b7d2cda8056c3d15eef7, high: 0x1759edc372ae22448b0163c1cd9d2b7d, + }, + u256 { + low: 0xe005b86051ef1922fe43c49e149818d1, high: 0x7d41e602eece328bff7b118e820865d6, + }, + u256 { + low: 0x4a84eb038d1fd9b74d2b9deb1beb3711, high: 0x552f233a8c25166a1ff39849b4e1357d, + }, + u256 { + low: 0x3405095c8a5006c1ec188efbd080e66e, high: 0x8c1745a79a6a5f92cca74147f6be1f72, + }, + u256 { + low: 0x1775336d71eacd0549a3e80e966e1277, high: 0x5129fb7c6288e1a5cc45782198a6416d, + }, + u256 { + low: 0x2f1205544a5308cc3dfabc08935ddd72, high: 0x870e15c2fcd81b5d24bace4307bf326, + }, + ] + .span(); + + let res = msm_g1( + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 3, + ); + assert!( + res == G1Point { + x: u384 { + limb0: 0x617117bf1151fd79fc71b779, + limb1: 0x4e2f6459c4115850de36db63, + limb2: 0x3e7e9f9d44a05b03, + limb3: 0x0, + }, + y: u384 { + limb0: 0xf05f55006d626fa5d91a695d, + limb1: 0xd2cf263e6037971f0c923d96, + limb2: 0x5cffe1dc97fa2157, + limb3: 0x0, + }, + }, + ); + } + + + #[test] + fn test_msm_SECP256R1_11P() { + let scalars_digits_decompositions = Option::None; + let msm_hint = MSMHint { + Q_low: G1Point { + x: u384 { + limb0: 0x396217fb094172485ed71701, + limb1: 0x86d8b0c7d1a5e4c7a5f9bc6d, + limb2: 0x71f625cb03b8ef6e, + limb3: 0x0, + }, + y: u384 { + limb0: 0xe98177c6d14f501e14485170, + limb1: 0x1a7ca5a7ace37e332a4c11f6, + limb2: 0x983fcff92b02e21, + limb3: 0x0, + }, + }, + Q_high: G1Point { + x: u384 { + limb0: 0xb2a7ea53b9538de66e7e743, + limb1: 0xd60f5b3e71a8f46db68ceef2, + limb2: 0x9c1ad67a074850c, + limb3: 0x0, + }, + y: u384 { + limb0: 0x2dd4f91dabff063662e0d3a3, + limb1: 0xf06ae0503f3f8ea7bde84f8e, + limb2: 0x5e760d2ef3c9e447, + limb3: 0x0, + }, + }, + Q_high_shifted: G1Point { + x: u384 { + limb0: 0x2f71d6eb303b3bf480fc702d, + limb1: 0x68910d569e6682c2fa1032ee, + limb2: 0x82845286591c8fd2, + limb3: 0x0, + }, + y: u384 { + limb0: 0x73d8aa453b7a7f95d4951130, + limb1: 0x73e64c911c98638f780f7279, + limb2: 0xee21dbae9f50d5d7, + limb3: 0x0, + }, + }, + RLCSumDlogDiv: FunctionFelt { + a_num: array![ u384 { - limb0: 0x95673650b2363bc4a8938f48, - limb1: 0x48e052d5cc5c03631e4ad897, - limb2: 0x67a70ad956ffc844d6781784, - limb3: 0x19e308804d0ff5eb59a4b021 + limb0: 0x5b43dead7c65ea98ccbc2312, + limb1: 0x9ebf6071884aef4be20dbb49, + limb2: 0xcc075f01a5ea7905, + limb3: 0x0, }, u384 { - limb0: 0x252777ac2fe70e8a5ea61729, - limb1: 0x590cdbf5c05fb98a98f2e377, - limb2: 0x6ba3a558e5a994d1250378b, - limb3: 0x1037160f90df041756b9fe84 + limb0: 0x8f341214716c7cb17fa697a1, + limb1: 0x442e4a02d84c48ff8e6aac5, + limb2: 0xf5b9d926250bb677, + limb3: 0x0, }, u384 { - limb0: 0xc6eb449a69668381ae20c2fa, - limb1: 0xb18e948b5a758f367b026a2a, - limb2: 0x227e34fcf55174dcc083379, - limb3: 0x7bc998bf4e0fb2af681d0f + limb0: 0xfe802087433fa7d6b14f9760, + limb1: 0x117c80fadea0d2aaa9ff3f7f, + limb2: 0x589397cb421dbfae, + limb3: 0x0, }, u384 { - limb0: 0x3d4a1d9e711e76480ac3a344, - limb1: 0x9228107c5f1b7d4f4bb96b0f, - limb2: 0xd9f7fe323489dbadde53aadd, - limb3: 0xcbe3ad00504b9cea3bc993f + limb0: 0xf951e47ed9e72c3d1130590c, + limb1: 0xa65e0872b29b1c0c9b0a3e89, + limb2: 0xa11a256d36a40010, + limb3: 0x0, }, u384 { - limb0: 0x4cd77256da123993dd3ce42c, - limb1: 0xb39869507b587b10bda1fd00, - limb2: 0x21a5d66bb23ba5c279c2895f, - limb3: 0xd0088f51cbff34d258dd3db + limb0: 0x7c33d5664fbac990d120e65d, + limb1: 0xc9f28026503f21ad0560ef9a, + limb2: 0xb84107bb212b89f2, + limb3: 0x0, }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ u384 { - limb0: 0x9f6196d7fc4787352e194c11, - limb1: 0x473c655e683f963f7cd74e77, - limb2: 0x861e2bef84cd10533b69f2ea, - limb3: 0x89a39de8a0723a1a342fd40 + limb0: 0x4006e68fdb6f9682265b2867, + limb1: 0x85c0b9e2b6a8b25b664c53b5, + limb2: 0xfeed2b06f6a88196, + limb3: 0x0, }, u384 { - limb0: 0xf598ff68534135818bde59c2, - limb1: 0x249abe9653dc41dc9f65cefc, - limb2: 0x604862b70d61debdce70dfd4, - limb3: 0x17b08f812e481032b12d19 + limb0: 0x527ae201f9e17ea928ca54d1, + limb1: 0x2aabfbf74df6a42c387e75cb, + limb2: 0x423029c5db06b3ad, + limb3: 0x0, }, u384 { - limb0: 0x3cd6de09d92cd52f72a1da3b, - limb1: 0xb1d058cf3dd2abf13459634, - limb2: 0xb0af6d19d7642ebce1df8910, - limb3: 0x50c111e157caae7bd15318e + limb0: 0xa8d26ecae02f354edda2b195, + limb1: 0x8dc6849ba01b7c59c4b36ccb, + limb2: 0xd94ecd291fdaeb33, + limb3: 0x0, }, u384 { - limb0: 0xf9fa6a51885ca17df5af8c17, - limb1: 0xb03816ec1ca9741920ae0cec, - limb2: 0x360f81caf3b699620333e3a3, - limb3: 0x176c522612b59ec6c7046528 + limb0: 0xa81bb716ebb4879fcd366809, + limb1: 0x8b23d814a61765ec50a7b97e, + limb2: 0x1f8e392eb422c09, + limb3: 0x0, }, u384 { - limb0: 0x375564aff562b4a3f3f35244, - limb1: 0xa226423b522847b777319097, - limb2: 0xc9aa91bfed3abebec391d483, - limb3: 0x1877b2a2ee3b46947462c6a7 + limb0: 0xf8c81e965c463ddf19204654, + limb1: 0xfd226d397f3e62db4187e9aa, + limb2: 0x1b9cd28544e2b2e7, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0xe831bfde4da209b0c734b49c, - limb1: 0x6b8971863cc69c16a73c572, - limb2: 0xe8b83e4afe8723ec073066ce, - limb3: 0xc365fa89552e47393db2921 + limb0: 0x81c7c8843186f5cc9ca92d0b, + limb1: 0xc1a5f270f0111329e609647d, + limb2: 0x6f6fefa0d8cb0374, + limb3: 0x0, }, u384 { - limb0: 0xaa9c207578cd234e09a97014, - limb1: 0x16f915c6f5647379d311008c, - limb2: 0x2f14570203ae283bad09bf43, - limb3: 0xca6c45568ebb8d8fc2919d9 + limb0: 0x798667c33aa4fa51b1534ffa, + limb1: 0xae7a5b2c9c3803f67d94a22f, + limb2: 0x6feb69d2c7a8c219, + limb3: 0x0, }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + ] + .span(), + a_den: array![ u384 { - limb0: 0x38a79fbaf10fe056dd66bc0d, - limb1: 0x97a93a1a28d7f67255ffe14b, - limb2: 0x6eb5c4280c54e26b17c2eecf, - limb3: 0x7985be75c9011bf8d80dc14 + limb0: 0x9e931b5525c73cd842af75f1, + limb1: 0xabf5875c1edcba891053689a, + limb2: 0x6e9a79cb841b9239, + limb3: 0x0, }, u384 { - limb0: 0x138a9d02135e6bfb950bcb7a, - limb1: 0xab0f4f76bc442c81423d2c81, - limb2: 0x7616aed8a8ed87b73598d57f, - limb3: 0x575c442a20086ae748d65a6 + limb0: 0xc40b58faac5eb4486a6fc73d, + limb1: 0x6841e347269a398ba4a134ba, + limb2: 0xf38d14a0132c2b9c, + limb3: 0x0, }, u384 { - limb0: 0xbb8d5d51088e702653daffbd, - limb1: 0xaf5fd22cb712051316a3932d, - limb2: 0xf794dcffea9c615925028e0, - limb3: 0xba6d191a973f6bd81890cfe + limb0: 0x26862957dc293a92353b00a0, + limb1: 0xd0ff27beb3b75a810043b700, + limb2: 0xf7535c57e1283f9a, + limb3: 0x0, }, u384 { - limb0: 0xf0eb78ecb40c5a8831cd277f, - limb1: 0xeb99be68f34a3fd4ba47d763, - limb2: 0x9602430d2590117864d51392, - limb3: 0xc52cacc0c07a21ffa81bf56 + limb0: 0x69aa124dca994cf366d3838a, + limb1: 0x2aeb9d3dbc40f1f6c445bd9d, + limb2: 0xbedee89854bb95b1, + limb3: 0x0, }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ u384 { - limb0: 0xcc325b60371f1cd4b8658599, - limb1: 0xb5c0c2d8aa4d62d9d4b139df, - limb2: 0xd52d02e6aebcf5c7fa22b8e9, - limb3: 0x867d58fee9ca7ec41f04d4b + limb0: 0xa9ef9fbb104f01fdb70327c0, + limb1: 0xc25b7d667900531fe553b8a1, + limb2: 0x7f9dfe45ff266ec4, + limb3: 0x0, }, u384 { - limb0: 0xd663fda14d04d6062f796708, - limb1: 0x926afa594f7107727d973bf3, - limb2: 0x81218adc35877af739c37f50, - limb3: 0x5ec23e04b92040cac4b465 + limb0: 0x95c690e1e54ed97bd58236d4, + limb1: 0xdf765f4aee023fd99c8f39c8, + limb2: 0x516b23c9b8d0e7c8, + limb3: 0x0, }, u384 { - limb0: 0xf35b782764b354bdca8768ec, - limb1: 0x2c741633cf74aafc4d1658d0, - limb2: 0xc2bdb4675d90baf3877e2440, - limb3: 0x1430447855f2ab9ef454c63a + limb0: 0x119a86a7f3aa39cae97f77fe, + limb1: 0x5de7700696e2c13b71ae9a5c, + limb2: 0xa07f83f793ba613e, + limb3: 0x0, }, u384 { - limb0: 0x734f401eefbd0d2d04d87c6c, - limb1: 0xd28a492bf6d28437a38b822f, - limb2: 0x94792c952641934c6daa493a, - limb3: 0x18484cb8285deaedde019abe + limb0: 0xbaf39c2e9ef6de6ecb985127, + limb1: 0xe8df9b6099aec9c09cd86846, + limb2: 0x80cbc86c17e00579, + limb3: 0x0, }, u384 { - limb0: 0xbef29228facf08115baca2d1, - limb1: 0x77a14fa0b86a7e4e2028115d, - limb2: 0xbd0fa33094e6f72a0228f9a4, - limb3: 0x13f3455c8d9bae9322e95095 + limb0: 0x112b8a49f760ad0c6693c819, + limb1: 0x2467467c969b79e80bc91f01, + limb2: 0xa4f9b073748970e7, + limb3: 0x0, }, u384 { - limb0: 0x3cd6de09d92cd52f72a1da3f, - limb1: 0xb1d058cf3dd2abf13459634, - limb2: 0xb0af6d19d7642ebce1df8910, - limb3: 0x50c111e157caae7bd15318e + limb0: 0x88262d83e9378fe0954de545, + limb1: 0x23765643c094e5c97c84ba20, + limb2: 0x8082d4e9745c4911, + limb3: 0x0, }, u384 { - limb0: 0xf9fa6a51885ca17df5af8c17, - limb1: 0xb03816ec1ca9741920ae0cec, - limb2: 0x360f81caf3b699620333e3a3, - limb3: 0x176c522612b59ec6c7046528 + limb0: 0x8526a7351189b50070afeba, + limb1: 0xc1978bf96a07b0b8332c25f4, + limb2: 0xcba1944ccd956fe5, + limb3: 0x0, }, u384 { - limb0: 0x375564aff562b4a3f3f35244, - limb1: 0xa226423b522847b777319097, - limb2: 0xc9aa91bfed3abebec391d483, - limb3: 0x1877b2a2ee3b46947462c6a7 + limb0: 0x1d8f0f54cd2b66747d49ea46, + limb1: 0xfe79b6accf8be0b472f6f202, + limb2: 0xf622362e5706004f, + limb3: 0x0, }, u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x86ed6c6cffa0ccc4320f0e06, - limb1: 0xcb420fb9fdf0ea53edc3a6cb, - limb2: 0x34a24f888deb78159c0383da, - limb3: 0x65888f43be1a4fe265e6662 - }, - u384 { - limb0: 0x52d8c9bc1f7a484ce8e27687, - limb1: 0x8079a8a997dca0510fae6a17, - limb2: 0x21789cdcf7a1f31a90fdbb40, - limb3: 0x844f4d97766cf63966ae612 - }, - u384 { - limb0: 0xee8bf4aa932be9bc33fc9d2, - limb1: 0x5769fcb5f55be7b40c4feb90, - limb2: 0x217649086213450ce18209dd, - limb3: 0x7afa97d249e25261598a9c3 - }, + .span(), + b_num: array![ u384 { - limb0: 0x74e6ef0f981eeab4fd710c2, - limb1: 0x5870f212869fd5e93322bcf3, - limb2: 0xc83229a8265eea29b4b02e53, - limb3: 0x588709241bb132af30c7fde + limb0: 0xff7b1d4b4475a219f7b51cfc, + limb1: 0x1b7ac389edffd607397c367e, + limb2: 0x92d64b4f9dfbb889, + limb3: 0x0, }, u384 { - limb0: 0x69f0aa243d0b3205201767c, - limb1: 0xb39869507b587b12668455fc, - limb2: 0x21a5d66bb23ba5c279c2895f, - limb3: 0xd0088f51cbff34d258dd3db + limb0: 0x18d318de778fb65427ac72a5, + limb1: 0x9e69f420b1c9392318339209, + limb2: 0xb2caaf2d41662950, + limb3: 0x0, }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ u384 { - limb0: 0x689739dac2c4193d60e1e3a4, - limb1: 0x5937994f2e9745a37c17b7c5, - limb2: 0xf72b08dff7b825ffe6df13f8, - limb3: 0x196731aae6276ffd9f6654ea + limb0: 0xbee6267bcefed599fffcaaec, + limb1: 0xe8a9a16294781446ae1724c1, + limb2: 0x96694349f365ce96, + limb3: 0x0, }, u384 { - limb0: 0x3f21cee59d897188272f8499, - limb1: 0x4b10834b69782d101577301b, - limb2: 0xbaab95f67e1fd2c7096f01e2, - limb3: 0x653dcd7ed0919ef48e16428 + limb0: 0xe14d705f78a00b747f40052c, + limb1: 0xd0792ab4c582f8b8f790e27c, + limb2: 0xdcabf614e0d72d08, + limb3: 0x0, }, u384 { - limb0: 0x4125f97f3e7e0fcb05f8215b, - limb1: 0xcddbf19a27146d1ee7d5603a, - limb2: 0xff1d3494aa5557ec1c8e1eba, - limb3: 0x9d9ade28bccb100962b8ddd + limb0: 0xbec6e0ee3696ffa3c9006976, + limb1: 0x3694189e57e16288c36f7f50, + limb2: 0x8dcb42063b7d1367, + limb3: 0x0, }, u384 { - limb0: 0xad7a17bc2d0318b2272f4331, - limb1: 0xc318a291bb3a8db1507dd373, - limb2: 0xae28c73ef3ecfd18a39bab93, - limb3: 0x17572319e1daeb9c54e348c3 + limb0: 0xde861e54940f99c496d4ae53, + limb1: 0xe43768be7282e166995a7767, + limb2: 0x5d4fe5e2ef8f93dc, + limb3: 0x0, }, u384 { - limb0: 0x64294ac02ef40da8546b4849, - limb1: 0x3c0fb9e1bb9197270b2f101f, - limb2: 0x55e3bddab4faf4f27f0c8936, - limb3: 0x811ac429559d1047dd14b86 + limb0: 0x904395d30763a609da03bede, + limb1: 0x8e3503557c00cdd781da11d9, + limb2: 0xc857beae1a7f82f4, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0x26470ba0f7025f8cfd14596a, - limb1: 0xdc48a087deca0a909d0e598, - limb2: 0xa29a2c4839d279b05dfc6115, - limb3: 0x1936c80e68020fae0642b312 + limb0: 0x3eed73b2d48a10c34804c73, + limb1: 0x3584195ef40e1853ead3a3fc, + limb2: 0xfde044925cc7bb96, + limb3: 0x0, }, u384 { - limb0: 0x8391477ed16801bbea5348ea, - limb1: 0x89accc725bcde3d57d07b3ac, - limb2: 0xc1f4afcba7e019814f0b1a49, - limb3: 0xbfe1471f31883673f6d1803 + limb0: 0xe76a7f0dc5a786b60262921b, + limb1: 0xfbddb75924d2e9b5d2db47ad, + limb2: 0x9ec0e9ad8d63430e, + limb3: 0x0, }, u384 { - limb0: 0xcd28ddcff1089bbc7bdbbf06, - limb1: 0x176200fae39f56758c24fad7, - limb2: 0x584e0039ba9299ca67d0c543, - limb3: 0x4dc6d4ea573bd24bc5b1b09 + limb0: 0xc62c7f347bdf461aed81c065, + limb1: 0x26d2ff6490102b059d7f035c, + limb2: 0xe30656515c1eb0b3, + limb3: 0x0, }, u384 { - limb0: 0xeabb23e98717bd76d8e51789, - limb1: 0x371c0e56c0ffed3bc08d174c, - limb2: 0x4b216d15d2fb75804bb91e90, - limb3: 0xf1b61a13552fcd55aac2c35 + limb0: 0xe351ede2c9119da3ec8a0417, + limb1: 0xd5857540b70bb98e5e4c9c5d, + limb2: 0x8bfa6c92b7f53c40, + limb3: 0x0, }, u384 { - limb0: 0x52c1e514778cf0ef21428643, - limb1: 0xfd9d426026061a50e68c4ea9, - limb2: 0x40913426f3f74492a492a61d, - limb3: 0x5675795467aa97630587b82 + limb0: 0x8bb579f8b822e4375f7b8f74, + limb1: 0xa83a723a54550155e0bcc5fa, + limb2: 0xa0ae383534223b37, + limb3: 0x0, }, u384 { - limb0: 0x305097bc03f7b8a1c02b83a3, - limb1: 0x67c076873053c0ba42abc9b0, - limb2: 0x8b7f95584099252705f889aa, - limb3: 0x5100a95175568cc4dd4038b + limb0: 0x1f939a57a0f100b6d56ffdef, + limb1: 0x7b80f15e8b41dc8d58de119d, + limb2: 0x954e6d0266da1c23, + limb3: 0x0, }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), b_den: array![ u384 { - limb0: 0x8e60e76bdd1364f583888e8f, - limb1: 0x2f4bed59d64a3421945adf19, - limb2: 0x12c91cf9b17ab570c0ed17a3, - limb3: 0x179990ecec1e0c279c465c89 - }, - u384 { - limb0: 0xfc873b967625c6209cbe1264, - limb1: 0x2c420d2da5e0b44055dcc06c, - limb2: 0xeaae57d9f87f4b1c25bc0789, - limb3: 0x194f735fb42467bd238590a2 + limb0: 0x941f20bfad0184a26df4347f, + limb1: 0x8df53aa1361817ad6d89350d, + limb2: 0xec401f870d3b72fe, + limb3: 0x0, }, u384 { - limb0: 0x5343e5fd3ff93f2c17e0dac1, - limb1: 0xd03ef3c7a5a0be5780a980ea, - limb2: 0xb929257b44de142b7eb3682b, - limb3: 0xd65a59ff5b2dd680d928fc1 + limb0: 0xa346eaf82a64114c4db1b241, + limb1: 0xe63c793cee8d93d643eb58b5, + limb2: 0x7fbf1dfd819dbb10, + limb3: 0x0, }, u384 { - limb0: 0x592f98cc8ed47c05fda045bc, - limb1: 0xc8d6d91240bda3d8435f0599, - limb2: 0xa29f727e358eec4ea7397749, - limb3: 0xebf766987938405c684d920 + limb0: 0xee172e52c81c0edb444976b9, + limb1: 0x7ac1bc406ed74482f72924f2, + limb2: 0x8ba356a2d101eba3, + limb3: 0x0, }, u384 { - limb0: 0x1e72f9e69f5aa82978dcfb12, - limb1: 0xd41e9831610d93882387709a, - limb2: 0xceeee089ed945b0c121c13fb, - limb3: 0xc997bf808f07766f50aea8b + limb0: 0x77b94c9e7404be5ce6c445dd, + limb1: 0x8b9ab52baf7d36489a5ddde4, + limb2: 0xa008087da733ca66, + limb3: 0x0, }, u384 { - limb0: 0x4125f97f3e7e0fcb05f8215f, - limb1: 0xcddbf19a27146d1ee7d5603a, - limb2: 0xff1d3494aa5557ec1c8e1eba, - limb3: 0x9d9ade28bccb100962b8ddd + limb0: 0xbd6f0fa4eb0d7f5ac2b9ff49, + limb1: 0x5337556532318900ba3e7e63, + limb2: 0x20dc39209f3cfb3b, + limb3: 0x0, }, u384 { - limb0: 0xad7a17bc2d0318b2272f4331, - limb1: 0xc318a291bb3a8db1507dd373, - limb2: 0xae28c73ef3ecfd18a39bab93, - limb3: 0x17572319e1daeb9c54e348c3 + limb0: 0xde723640217e0086e4c4b70a, + limb1: 0xb4f9a3622783eb45de1d2db7, + limb2: 0x3d2771e797228e07, + limb3: 0x0, }, u384 { - limb0: 0x64294ac02ef40da8546b4849, - limb1: 0x3c0fb9e1bb9197270b2f101f, - limb2: 0x55e3bddab4faf4f27f0c8936, - limb3: 0x811ac429559d1047dd14b86 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ - u384 { - limb0: 0xac82fa309e52d2333dfda5e0, - limb1: 0x68e1909a395ed511c739a93a, - limb2: 0x8c2744148b3468c9077dd8b3, - limb3: 0xd01ca3c5b8db965cba2ce2f + limb0: 0x5843508b43df60725f1510e5, + limb1: 0x4f39f5229c57841ad72f34f1, + limb2: 0x5ebae739f32ba4bc, + limb3: 0x0, }, u384 { - limb0: 0x302ea91a3b09524e7c49fbbb, - limb1: 0xb39869507b587b118b5d4593, - limb2: 0x21a5d66bb23ba5c279c2895f, - limb3: 0xd0088f51cbff34d258dd3db - } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x2012c9f6734c14b40a91baab, - limb1: 0x15202d4695a0061e83af20a6, - limb2: 0xd98adc05c19673f9558693ab, - limb3: 0x17a7231d9fbeaab27bb6f736 + limb0: 0x38f2780226655da345285772, + limb1: 0x90c4fe97b531cc910a7a5ac8, + limb2: 0x400bf4f11729443b, + limb3: 0x0, }, u384 { - limb0: 0xd667f4eaabc023531be16e38, - limb1: 0x4aba5a4e0cbefff5e823961c, - limb2: 0xe702e8fb52fad9baf4b7b5d9, - limb3: 0x35b702294813333994974f5 + limb0: 0xb170fa317a87b881a8176224, + limb1: 0x9101c644b36f79f66654d643, + limb2: 0xc651060573f40ac7, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0xa1549bf86e75f7ef25494aff, - limb1: 0x8e7c4dfe19b6366f7726f803, - limb2: 0x7514b929a53c20124f772520, - limb3: 0x6b3e6c07870b0f66ca2ab85 + limb0: 0xb5348a10665ff677833850cf, + limb1: 0xf0e0ce9feddb09ad04641378, + limb2: 0x7b2ef41d7872fda9, + limb3: 0x0, }, u384 { - limb0: 0x8ae09f1650e4ab8aa4f6a706, - limb1: 0x21e9a2e8501909dbd06cec74, - limb2: 0xdb94f1647a07227012015a85, - limb3: 0x139f76660c02d1b72e325141 + limb0: 0x8d3d2fa06bad404f38a8b74a, + limb1: 0x104599949efb24b0cf844537, + limb2: 0x79320477f3b9730e, + limb3: 0x0, }, u384 { - limb0: 0xdb94488c8266ed5af2feb56f, - limb1: 0x4540dc73837de9500d4d13ae, - limb2: 0x506a833afd77ece4a364d036, - limb3: 0x2c59cfb93813462f3ad9dc - } - ] - .span(), - b_den: array![ - u384 { - limb0: 0x6c4f27da9f3352d02a47eaab, - limb1: 0x1eee3d37726d360db2b8829c, - limb2: 0x9c486990d8f3ed567b8b166e, - limb3: 0x109956b7d27af6fb0d88e5b8 + limb0: 0x19c1e90fa0229b37f6434e24, + limb1: 0xeb8710fb199cca4ea9c54d1e, + limb2: 0xff07d4bbc68d3917, + limb3: 0x0, }, u384 { - limb0: 0x599fd3aaaf008d4c6f85b8e0, - limb1: 0x2ae9693832fbffd7a08e5873, - limb2: 0x9c0ba3ed4beb66ebd2ded765, - limb3: 0xd6dc08a5204ccce6525d3d7 + limb0: 0xfbccb07bbd8398c1454286bb, + limb1: 0xdbf4ef92c889ca6888bceacd, + limb2: 0xf8e268341984dc0b, + limb3: 0x0, }, - u384 { limb0: 0x4, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { - limb0: 0x2012c9f6734c14b40a91baab, - limb1: 0x15202d4695a0061e83af20a6, - limb2: 0xd98adc05c19673f9558693ab, - limb3: 0x17a7231d9fbeaab27bb6f736 + limb0: 0x8526a7351189b50070afeb7, + limb1: 0xc1978bf96a07b0b8332c25f4, + limb2: 0xcba1944ccd956fe5, + limb3: 0x0, }, u384 { - limb0: 0xd667f4eaabc023531be16e38, - limb1: 0x4aba5a4e0cbefff5e823961c, - limb2: 0xe702e8fb52fad9baf4b7b5d9, - limb3: 0x35b702294813333994974f5 + limb0: 0x1d8f0f54cd2b66747d49ea46, + limb1: 0xfe79b6accf8be0b472f6f202, + limb2: 0xf622362e5706004f, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] - .span() + .span(), }, }; let derive_point_from_x_hint = DerivePointFromXHint { y_last_attempt: u384 { - limb0: 0x8e5a42875a7d097faa92376f, - limb1: 0xffa942d3624c13e22442e064, - limb2: 0xa1e221209a9061c874be4e94, - limb3: 0x4ac09a53c3abe7a5ee65e84 + limb0: 0x728937c331f0e317e2c0c291, + limb1: 0xf4c42e9dea42934af6e9bafe, + limb2: 0x175301903d6c10b7, + limb3: 0x0, }, g_rhs_sqrt: array![ u384 { - limb0: 0x391ea5a364298ca44c8bf947, - limb1: 0x49408cc081271f880ce30f40, - limb2: 0x7500bef52ce5835b973c98d4, - limb3: 0x22b9f6a92881a5296fa3f76 + limb0: 0xd74e9ca0de0647951d260796, + limb1: 0x299388cd8bede92bf915fed3, + limb2: 0x21a63bc411cd2784, + limb3: 0x0, }, u384 { - limb0: 0xad720aec78358f9f40b3b7fe, - limb1: 0x4ab3d672a1606eb795d3e60, - limb2: 0xd2b1bd8d9c6aed4ca5be0ca9, - limb3: 0x84bbbc9c25115aaf2db8def - } + limb0: 0x2ccba3a81218419485459fb, + limb1: 0xc5854ba32cbafaa6114c4e06, + limb2: 0x4ca9990c51d8a6e9, + limb3: 0x0, + }, ] .span(), }; let points = array![ G1Point { x: u384 { - limb0: 0xe4f817e54aede0613c17035c, - limb1: 0xdff1f15010392a6da1f95a6, - limb2: 0xbed78d3d341e911d49f15454, - limb3: 0x18154782ce0913b21588066d + limb0: 0x113c8d620e3745e45e4389b8, + limb1: 0x85b8ff52d905fd02fe191c3f, + limb2: 0xf5d132d685201517, + limb3: 0x0, }, y: u384 { - limb0: 0x3d77d61326ef5a9a5a681757, - limb1: 0xd3070afd4f0e121de7fcee60, - limb2: 0xdf9ef4088763fe611fb85858, - limb3: 0x11a612bdd0bc09562856a70 - } + limb0: 0x60c0ba1b358f375b2362662e, + limb1: 0x6abfc829d93e09aa5174ec04, + limb2: 0x7bc4637aca93cb5a, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0xde4f62a6588c9401ffefbd3, - limb1: 0x9bb5f797ac6d3395b71420b5, - limb2: 0xdc39e973aaf31de52219df08, - limb3: 0x105dcc4dce3960447d21d3c1 + limb0: 0xd3ff147ff0ee4213f51f677d, + limb1: 0x431366a7732a6e4a6b942255, + limb2: 0x9fe743b25d39a591, + limb3: 0x0, }, y: u384 { - limb0: 0xaefd0d854043fd325dd3c34f, - limb1: 0x9b63c98d9a7845c52e1e2b0f, - limb2: 0x9db0be660d847ccc58358f3f, - limb3: 0x17cb6c41f0c4e1a7394ab62a - } + limb0: 0x7f8bb562ff60a902ef14bcb0, + limb1: 0xeb9420089fa531db62e806a6, + limb2: 0xfd028df433dfd5cc, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0xcf86158ab69213388e721bb7, - limb1: 0x5f7812269d790797cad9aa15, - limb2: 0xb1c3622a0177001d9ed8e25f, - limb3: 0x115cf429f459884785c6ba46 + limb0: 0x46ae31f6fc294ad0814552b6, + limb1: 0x2d54cc811efaf988efb3de23, + limb2: 0x2a2cc02b8f0c419f, + limb3: 0x0, }, y: u384 { - limb0: 0x1e81341e2f3f988ff115dda3, - limb1: 0xad22946489db6ee4954fa5e1, - limb2: 0x83bed94412e19d92b73cc763, - limb3: 0x2074c7bceff87d0d41edba1 - } + limb0: 0xaec889b9d8ce51c4a2c3586f, + limb1: 0xa2b07874c333bfee9f78e13e, + limb2: 0xc445de21be8d8709, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0xe2955c55da59eba4b7b57d3d, - limb1: 0x1e6629b0431bce67cf28c22, - limb2: 0x1c35b7efd5b67f87221b8bfc, - limb3: 0x3e53df9e3488a9e42acd87e + limb0: 0x7e47d1c2d19c21b2f6870259, + limb1: 0xe701b40af42001c38bca00db, + limb2: 0xd87ea1720d4dd3d6, + limb3: 0x0, }, y: u384 { - limb0: 0x2e089afa726154d40dd12102, - limb1: 0x5391613ecf49db2bcf1cad86, - limb2: 0x84a2abb2de6b3a6e09026a50, - limb3: 0x19557a3a3c1d62a205d5dc87 - } + limb0: 0x5b1d6cc74985ce49a1f737fe, + limb1: 0xb9127c572c3f091c031c249c, + limb2: 0x1392711e1576aa6f, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0x490bf40774926e8b279947c, - limb1: 0xeabab6aef9e9d2a4f64f4e7d, - limb2: 0x3e309fe1b1c8247abab20d7e, - limb3: 0x79c527862917f69ac58fcc4 + limb0: 0xb71f95ea692ed186e06e4c37, + limb1: 0x807276cd9cc59718bb11dbe9, + limb2: 0x10756a25836d67ca, + limb3: 0x0, }, y: u384 { - limb0: 0xacb18f2da2b425c2ff50dafd, - limb1: 0x7623850d87e279a8a30f31ff, - limb2: 0x777564c7291d95fa80203ade, - limb3: 0x1764ce0e7fb626109b63789b - } + limb0: 0xd34211b3520c83c5f9be99af, + limb1: 0x8f19a28ceef67bbda102ffe7, + limb2: 0x7ac2b92030d351cc, + limb3: 0x0, + }, }, G1Point { - x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - }, - ] - .span(); + x: u384 { + limb0: 0x411bb5d0fbe844f025c7178c, + limb1: 0xcf603787227b7ac499d6d1c4, + limb2: 0x5f6b2479862eb2f8, + limb3: 0x0, + }, + y: u384 { + limb0: 0xce60303cfcb98726ff64a1e5, + limb1: 0xa64534c614754b3527588d25, + limb2: 0x44f75e245622181, + limb3: 0x0, + }, + }, + G1Point { + x: u384 { + limb0: 0x8a703177da18d4ede707c057, + limb1: 0x7d6c11e754ab6fbe73deea43, + limb2: 0xdf9787168190a047, + limb3: 0x0, + }, + y: u384 { + limb0: 0x2e6585ab5f125a34fef37875, + limb1: 0xb70e9f02ce7744197172a117, + limb2: 0x60e305f9fe6f2298, + limb3: 0x0, + }, + }, + G1Point { + x: u384 { + limb0: 0x712f72f3929408ff68af059d, + limb1: 0x4f72cea12cd115dc1c8639f5, + limb2: 0xc6d5ae1b897ffe77, + limb3: 0x0, + }, + y: u384 { + limb0: 0xfcf91f56bad0659142668837, + limb1: 0xa15458b49bcdad6c870e3889, + limb2: 0x81a1342e70b1b765, + limb3: 0x0, + }, + }, + G1Point { + x: u384 { + limb0: 0x461d7579f9613d3168fc6220, + limb1: 0x7626024a6195fe0eafcea08b, + limb2: 0x32e91b268a032443, + limb3: 0x0, + }, + y: u384 { + limb0: 0xcdc7ae298071a741aafd4035, + limb1: 0x9a9bdfbdb824dc1278457a10, + limb2: 0x17fbec3713dfd145, + limb3: 0x0, + }, + }, + G1Point { + x: u384 { + limb0: 0x9b85054533e9d24310265ee0, + limb1: 0x51cbb79b2625c435ba43bbef, + limb2: 0x1fd81fcb136c629b, + limb3: 0x0, + }, + y: u384 { + limb0: 0x96378a2e47ab50246a9cf131, + limb1: 0x4d0f08867537268cf39eae04, + limb2: 0x4eeb60396f3e5f52, + limb3: 0x0, + }, + }, + G1Point { + x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + }, + ] + .span(); let scalars = array![ u256 { low: 0x0, high: 0x0 }, u256 { - low: 0xeb2083e6ce164dba0ff18e0242af9fc3, high: 0xbf0551e03983ca8ea7e9d498c778ea6 + low: 0xd3fbf47a7e5b1e7f9ca5499d004ae545, high: 0xbaf3897a3e70f16a55485822de1b372a, }, u256 { - low: 0xb5d32b1666194cb1d71037d1b83e90ec, high: 0x5008b5f2ab0c1681c8f8e3d0d3290a4c + low: 0x101fbcccded733e8b421eaeb534097ca, high: 0x38c1962e9148624feac1c14f30e9c5cc, }, u256 { - low: 0xd3fbf47a7e5b1e7f9ca5499d004ae545, high: 0x5d79c4bd3e70f16a55485822de1b372a + low: 0x247a8333f7b0b7d2cda8056c3d15eef7, high: 0x1759edc372ae22448b0163c1cd9d2b7d, }, u256 { - low: 0x101fbcccded733e8b421eaeb534097ca, high: 0x1c60cb179148624feac1c14f30e9c5cc + low: 0xe005b86051ef1922fe43c49e149818d1, high: 0x7d41e602eece328bff7b118e820865d6, }, u256 { - low: 0x247a8333f7b0b7d2cda8056c3d15eef7, high: 0xbacf6e172ae22448b0163c1cd9d2b7d + low: 0x4a84eb038d1fd9b74d2b9deb1beb3711, high: 0x552f233a8c25166a1ff39849b4e1357d, + }, + u256 { + low: 0x3405095c8a5006c1ec188efbd080e66e, high: 0x8c1745a79a6a5f92cca74147f6be1f72, + }, + u256 { + low: 0x1775336d71eacd0549a3e80e966e1277, high: 0x5129fb7c6288e1a5cc45782198a6416d, + }, + u256 { + low: 0x2f1205544a5308cc3dfabc08935ddd72, high: 0x870e15c2fcd81b5d24bace4307bf326, + }, + u256 { + low: 0x42930b33a81ad477fb3675b89cdeb3e6, high: 0xadc0da7a16febaa011af923d79fdef7c, + }, + u256 { + low: 0x2648ee38e07405eb215663abc1f254b8, high: 0x148b2758d7ab792809e469e6ec62b2c8, }, ] .span(); let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 1 + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 3, ); assert!( res == G1Point { x: u384 { - limb0: 0x4df8c4b32ca9b9a0fe767165, - limb1: 0xa32c2218341be50febd262be, - limb2: 0x3c88901870b5a8eccdb875c, - limb3: 0x112df93715ab5c5cee147a64 + limb0: 0x8bb75ba627234dc63e79a70b, + limb1: 0xf80598ab2773419027b1531f, + limb2: 0xcf5ff5f040bbf9f9, + limb3: 0x0, }, y: u384 { - limb0: 0x4b77664ac2592df4f1d8dfb7, - limb1: 0xec77062b8d054bbe05716392, - limb2: 0x27b166ea6b00c82815173820, - limb3: 0x16c305f0f6f1c2d8fd98b26a - } - } + limb0: 0x74e9046434afc5dcf31ffcca, + limb1: 0x7a10638d5630b338c33f51f4, + limb2: 0x581c177d075c1692, + limb3: 0x0, + }, + }, ); } #[test] - fn test_msm_BLS12_381_7P() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - ] - .span() - ), - ( - array![ - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - ] - .span(), - array![ - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - ] - .span(), - array![ - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - ] - .span(), - array![ - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - ] - .span() - ), - ] - .span() - ); + fn test_msm_SECP256R1_12P() { + let scalars_digits_decompositions = Option::None; let msm_hint = MSMHint { Q_low: G1Point { x: u384 { - limb0: 0x3b203ff23e856b59be310024, - limb1: 0x9e68aaea2b60cb6e3d0146ac, - limb2: 0xb3f3e4a02fbbb14adf974b06, - limb3: 0x7dda53cb96460557533d9d9 + limb0: 0x63c70f94dcf043039d5b06fd, + limb1: 0xaea5b5d016d780fc3268e4c0, + limb2: 0xaab7cc308e570714, + limb3: 0x0, }, y: u384 { - limb0: 0x697932fd149d01a29e892e2a, - limb1: 0x823f6b03bc0a1f3776dd5544, - limb2: 0x4d9b3ff5b1d25954a2a28404, - limb3: 0xaf9d7bfacc340c1e14c5d06 - } + limb0: 0x2ccddde18a7ebaea35b7e5a6, + limb1: 0x77890d800c548f0895b91ba5, + limb2: 0x38f62d852b001d58, + limb3: 0x0, + }, }, Q_high: G1Point { x: u384 { - limb0: 0xb13f4275115bee1ec5bc91dd, - limb1: 0xe6c0886cecfa333814c5b1d9, - limb2: 0x2242763b053b357b754e0eff, - limb3: 0x138189613b43c6e7f5b0ff5a + limb0: 0xb8703d4eb1e2bfd5d9961829, + limb1: 0x1842a9aca84733324c506a00, + limb2: 0x4d0d88487505dfdb, + limb3: 0x0, }, y: u384 { - limb0: 0x70ff0e1836ca36e61a89d135, - limb1: 0x85c91dd9bfacac477a9614cd, - limb2: 0x7e17115f2922f4de82b0b76f, - limb3: 0x1267ec75722022d4c9e907d2 - } + limb0: 0x3ed04afc6933b3f7805988f7, + limb1: 0x52d3fe01f66a332d0085908c, + limb2: 0xfdb0892e58dcbc1b, + limb3: 0x0, + }, }, Q_high_shifted: G1Point { x: u384 { - limb0: 0x6202f99c17387b0497ef2a6b, - limb1: 0x779dee40845ebf0e432c3fff, - limb2: 0xbf74ea372ebbad69d90b5fd1, - limb3: 0xda58b58bc0a45ec7c49d440 + limb0: 0xa03532a10c75403f0d217fb8, + limb1: 0x3e4656ee3a4f973d11c76c19, + limb2: 0x29c888c3b44f0160, + limb3: 0x0, }, y: u384 { - limb0: 0x678317fdbde6e475c914f202, - limb1: 0x210aab511f380e3581047d92, - limb2: 0xc529541ad17fb1bfe5b1a593, - limb3: 0xb63d045b945224b516fd54c - } + limb0: 0x3a168c8dac103d557d99273, + limb1: 0xf0dc9ffb09bdf06ec71bc3ad, + limb2: 0x9acb520c6222d492, + limb3: 0x0, + }, }, - SumDlogDivLow: FunctionFelt { + RLCSumDlogDiv: FunctionFelt { a_num: array![ u384 { - limb0: 0xd3ec7492b2e81da7c43b41c2, - limb1: 0xf49835281632f7ccdece2711, - limb2: 0x7458c1027641454bd97a254b, - limb3: 0xe875ba156b2c855ff7359b0 - }, - u384 { - limb0: 0x8cfeea4bb96c6634bc8fd88, - limb1: 0xa1be8a9794c038f08a3cc1d5, - limb2: 0xd6f4b939b391ba31d032caea, - limb3: 0x17103b4d4f9a8ea619427031 - }, - u384 { - limb0: 0x6433700d18613491715a9f69, - limb1: 0x7851889130f37e559e4aa178, - limb2: 0xa3001c9545d11e2aa9eb419a, - limb3: 0x6fb5f3abe5590c1bee81ff8 - }, - u384 { - limb0: 0x1190f2633848a16ff513991f, - limb1: 0xa13904f56250459abbdbe179, - limb2: 0x1efa6fae9c7b4167d351cbaf, - limb3: 0x14d18eb1809e22f1a52c88a1 + limb0: 0x5e0e35cf57f429925396b22a, + limb1: 0xfbc747ef3623ebe10088dd4, + limb2: 0x9f2c62f3ed82ea23, + limb3: 0x0, }, u384 { - limb0: 0x7d76f2beb67d58b5fd61201e, - limb1: 0xb2f79886a29aefe7dabbb510, - limb2: 0x85c1a38b8fd4be5702ac4c80, - limb3: 0x113493062236d4d122487c26 + limb0: 0x1f49f0e347e86caceb5638f6, + limb1: 0xd0e33c1d59bc0b50a4b909ff, + limb2: 0x3c59f6937bc979b0, + limb3: 0x0, }, u384 { - limb0: 0xe22c969d193528064cb4f9c4, - limb1: 0x6730d2a0f6b0f622b4ca41b7, - limb2: 0x434bacd764774b84f38512bf, - limb3: 0x1a0111ea397fe69a4b1ba7b6 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x85c32c56b545d4bb42152256, - limb1: 0x6cd70f6c252456d1f80b04ea, - limb2: 0x6671af0e7bf75ca738079122, - limb3: 0xe2d10399ee72172fc1f7ae2 - }, - u384 { - limb0: 0x531e6b65268ba25f796dda68, - limb1: 0x95762e2846ca5089fc8f7df8, - limb2: 0x4e9dbf1125faf15de7918322, - limb3: 0x12b93f4b8659fefbce137208 + limb0: 0x511aa58e8f10261b3f9da79b, + limb1: 0x636f28e0b30e734474e1fa98, + limb2: 0xa9c813bf744ae154, + limb3: 0x0, }, u384 { - limb0: 0xb8dccc986d9ad22d337e720c, - limb1: 0x19cd7eaf85f4797123d12926, - limb2: 0xeb5c75c118d2dbb7b7c3598b, - limb3: 0xe10b5913f7d84193e7981a7 + limb0: 0xcf1f2ee3da521c79ebf539f8, + limb1: 0xdef4738a892d89f76d6683f3, + limb2: 0xb35f68bda8391af, + limb3: 0x0, }, u384 { - limb0: 0xd2d704f82a893be8e186d986, - limb1: 0x8a6a582d886cbd4174e968f7, - limb2: 0x23f124075890fffd95a1228e, - limb3: 0x13c48e99f0fd2d4157239214 + limb0: 0x59af5cb1b9933d283e796d75, + limb1: 0x8d16c6407a09c56cfaac686f, + limb2: 0xc9336e2e6cad0d5d, + limb3: 0x0, }, u384 { - limb0: 0xd23f8185f4394c437a3532ae, - limb1: 0xbee34787fd84a1d378a29b46, - limb2: 0x82ca9e4939d4839972e57145, - limb3: 0x8681f041f147a6216a27917 + limb0: 0x64db07d816b52730a3b18ba0, + limb1: 0x71cd99a3cb57f37d36f87afb, + limb2: 0x6ac3ad562fe31d33, + limb3: 0x0, }, u384 { - limb0: 0x82aba4cc44fed2dd71f34b26, - limb1: 0x4912bc20a5dc7ede2a27fd39, - limb2: 0xfe0b6901552b1226427fb52f, - limb3: 0x19a1f365dd5d6a9865c14888 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0x50b91eaf7e6b01af3975610b, - limb1: 0x1d87b5ff6e90b3222ecc38cb, - limb2: 0xba7e6a31dfbd253f8ab4d4ea, - limb3: 0x71599d02ca7cbcbe9320426 + limb0: 0xeffde34f92e6c8a43d6ce468, + limb1: 0xd2524db4ead9560e868c26ea, + limb2: 0xb064ba32486a641d, + limb3: 0x0, }, u384 { - limb0: 0xbc52577212156a251bedd847, - limb1: 0xcb28420ef53087424d8f1df6, - limb2: 0xedf60099da45c34da30349b, - limb3: 0x15ad2c960dd8b1289c67a855 + limb0: 0x90a782679875c97089cb1705, + limb1: 0x3d08e4c4fbbefb1c993bad32, + limb2: 0xf93d10e17ef4a5e7, + limb3: 0x0, }, u384 { - limb0: 0xde153e09fff707729f89716, - limb1: 0x6ad2b29cae9d9ece2280f8bf, - limb2: 0xa1351827c68b959cb53f7345, - limb3: 0x1028c4dd76d79cf04ed1c6be + limb0: 0x4830938921feb8be81ba4ce5, + limb1: 0x6db6b4217ed67161edb59be4, + limb2: 0x503514f6dfcdb951, + limb3: 0x0, }, u384 { - limb0: 0x631374446befdaeee3ab823, - limb1: 0xe6f57e039d17057f8cb60e85, - limb2: 0x3f049793ff8aecadf402e0e6, - limb3: 0x6637bb8967bba80339e0e9d + limb0: 0xabd36bc9d5ef45e41ea86f9e, + limb1: 0xc72d45d0c2ec75c8df97a3ef, + limb2: 0xd746b72e83b0b9c8, + limb3: 0x0, }, u384 { - limb0: 0x4b6482b35577a48e9a5564c7, - limb1: 0x605f8fdcba71319b5094687e, - limb2: 0x59113bdecc69843cbb259fb6, - limb3: 0x93d4603ff22a09eb5aeeacb + limb0: 0xad287cc8f5e520cc3bb456ed, + limb1: 0x573017dc5907a402599c34e, + limb2: 0x5d794378e142445, + limb3: 0x0, }, u384 { - limb0: 0x817bfed5d7e61e882f19a4f7, - limb1: 0x74caaa6bc435dda985993e6, - limb2: 0x6cccafdf589e414c7857897c, - limb3: 0x1001b232b582f402f666da8e + limb0: 0x59c976d14fc2ee27661e2f0d, + limb1: 0x2759e1ac470a2032e7ee3bab, + limb2: 0x9b57c5e636591a0c, + limb3: 0x0, }, u384 { - limb0: 0x8c1894f9540fd688b4eed695, - limb1: 0x85ca4fed297c9b1a4b43dad6, - limb2: 0xdb90f753857adac75c590187, - limb3: 0x4d0e3b5e20de3bfbac24cbe + limb0: 0x1f7f2f797e70e2557bfd58b2, + limb1: 0xe873f81a3d93383097ad1c5b, + limb2: 0x2c0c09e76d922149, + limb3: 0x0, }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), - b_den: array![ - u384 { - limb0: 0xb464b15b611952ed08553402, - limb1: 0xe4fa986ea72f6effa2d413ac, - limb2: 0x132f628b26eedb92f9141f0a, - limb3: 0x4b21d12089cb8975a469c1d - }, - u384 { - limb0: 0xe9d1ad952630897de5b8144a, - limb1: 0x8777135f2dc755dfb4e5f7e3, - limb2: 0xb3dfa295cefd2e6db73be70b, - limb3: 0x16e2d959a6682ebaa21678b4 - }, + a_den: array![ u384 { - limb0: 0x80cb3262426d48b4cdfa72da, - limb1: 0x98d4557c2a6ff97c51eca49d, - limb2: 0x26da7d559a5cd7d4f80340ad, - limb3: 0x440b2708af6433063aeb733 + limb0: 0xc6e2d83c3c62034eb89b11b4, + limb1: 0x8c22943bd9f5d99ddcb92e2, + limb2: 0xde88d2cbc52310be, + limb3: 0x0, }, u384 { - limb0: 0xbd234038316dc45ec831886d, - limb1: 0x60edf83f62c4696b6faca8cd, - limb2: 0x2c5338a5b0d57a0eb3fce31e, - limb3: 0xf3c14e2b65c22a9775acc10 + limb0: 0x92204ed8c1c804b6232a825a, + limb1: 0xf4812d9fc84fade1270cdc7b, + limb2: 0x2ff64e8ab996c214, + limb3: 0x0, }, u384 { - limb0: 0x3974717d8372d36d62434fca, - limb1: 0xc2a1a7064f7aeb8fa1c1eb16, - limb2: 0xd330de87445e68b9cc1d22ba, - limb3: 0x5797878fac1b4f926606f9 + limb0: 0x5dfe9f4cc01db63be10aca45, + limb1: 0xf2c8ff40fc0f537d6759e14a, + limb2: 0xd88bb825f41da256, + limb3: 0x0, }, u384 { - limb0: 0xfe3b5fca999a1da2fb4cf3f8, - limb1: 0xa15524ae42a29c5951c11e11, - limb2: 0xd65b6668dba1f63cf3ade34a, - limb3: 0xc943b7fcef39411a91004f2 + limb0: 0x8567fb39257fa9d5efb733dc, + limb1: 0x60d78d59586ea7241badffcd, + limb2: 0xf740316549d820a5, + limb3: 0x0, }, u384 { - limb0: 0xd2d704f82a893be8e186d98a, - limb1: 0x8a6a582d886cbd4174e968f7, - limb2: 0x23f124075890fffd95a1228e, - limb3: 0x13c48e99f0fd2d4157239214 + limb0: 0xd3881aab6ebc02474f77d892, + limb1: 0xade274e2a453b0e33e617496, + limb2: 0x9192b54fd304ceb7, + limb3: 0x0, }, u384 { - limb0: 0xd23f8185f4394c437a3532ae, - limb1: 0xbee34787fd84a1d378a29b46, - limb2: 0x82ca9e4939d4839972e57145, - limb3: 0x8681f041f147a6216a27917 + limb0: 0x4039058624067149bc7466, + limb1: 0x4dd5ca3214d418853f6a0501, + limb2: 0x66b2ea4e882320b0, + limb3: 0x0, }, u384 { - limb0: 0x82aba4cc44fed2dd71f34b26, - limb1: 0x4912bc20a5dc7ede2a27fd39, - limb2: 0xfe0b6901552b1226427fb52f, - limb3: 0x19a1f365dd5d6a9865c14888 + limb0: 0x84bbf80d53a7189ea03900c0, + limb1: 0xca50ec872a12c935c32905fe, + limb2: 0xf377e18626b8c35d, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ u384 { - limb0: 0x25cdc67121dd645042ab0ded, - limb1: 0x4ec716ed57169f38c488bc7e, - limb2: 0x9703bcb335e6da9861bd65e3, - limb3: 0x12fc960e90c0448a76ee0ea + limb0: 0x39b95c95c374bd6c6e63f17c, + limb1: 0x139179d6bfae5add96458cae, + limb2: 0xf6e91eecc1fce8e2, + limb3: 0x0, }, u384 { - limb0: 0xc161e69727e848022d3ec429, - limb1: 0xe8250a9ac08b91a78dbcee57, - limb2: 0xb81c0cdde1cc04b9bafbc5ff, - limb3: 0x183111449471ddd1a9855a45 + limb0: 0xd8b4f48c9783c42470c30897, + limb1: 0x6533e9a01c8d593bac99418e, + limb2: 0xba1826d2f8a9a2d1, + limb3: 0x0, }, u384 { - limb0: 0x6cf47c07c05c402398458f76, - limb1: 0x71b5231416a357915dec5fb9, - limb2: 0xc12a457d15c8acb4090ef954, - limb3: 0x13d503a1cd4c36e01953f85 + limb0: 0x729d11f0edb140c9d3e4c730, + limb1: 0x8cbdd00e15c622d18443c326, + limb2: 0x3166e3687e0c88ea, + limb3: 0x0, }, u384 { - limb0: 0x35200a8a0babc718eb157f50, - limb1: 0x32f2a535d1c46b30ab8c34bc, - limb2: 0xe0c318bead8059c97d0a6b51, - limb3: 0xcfa1d2f878d89a75949460c + limb0: 0xdecf4a4efc4ccb94a97a4ce0, + limb1: 0x8cdd156d9a3f9e1cc90ecc58, + limb2: 0xea3d1d228489a0e5, + limb3: 0x0, }, u384 { - limb0: 0x5415296e14bd5947562ace10, - limb1: 0x3f4359422777a3d2251885f4, - limb2: 0x10134049b9e5f5bb56470445, - limb3: 0x1251583b70d0ad98d1b52b7e + limb0: 0xc59a3f14b4701e6953c4ef25, + limb1: 0xfea883f8c414a012611672b6, + limb2: 0x54390333e2faa173, + limb3: 0x0, }, u384 { - limb0: 0xd2dd78488201ac0206c190e2, limb1: 0x82f178cd, limb2: 0x0, limb3: 0x0 + limb0: 0x86879c87a4abbac628cda084, + limb1: 0xfdc91440d17c1a950d683aee, + limb2: 0x52c65cc23b04d7bd, + limb3: 0x0, }, + u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - a_den: array![ + b_num: array![ u384 { - limb0: 0x73542748e2e4ed79b582fee8, - limb1: 0xfd7c77b3ce9e212a42ba54b8, - limb2: 0xefe4aadb4aafac25a92a7325, - limb3: 0x6e79c10e67a48e4176f5723 + limb0: 0x5c7a1c33f3310fe4300109a4, + limb1: 0x31c1c1621a27c167ac80f8ff, + limb2: 0x3dbf2f32847d5a5d, + limb3: 0x0, }, u384 { - limb0: 0xff30442986a14be24cb51b0f, - limb1: 0xcf6e488016abb9228e3e68b1, - limb2: 0xda548e3b97b74624ac09d936, - limb3: 0x18ca32afc90ebb65051a7a68 + limb0: 0x74261a1473ad43b568a4d86b, + limb1: 0x236c40e5236e9535796d9d0d, + limb2: 0x7f1362dd1179ebdd, + limb3: 0x0, }, u384 { - limb0: 0x879a73513852b13cc94e276a, - limb1: 0xf02e40c6b1ffdc6796bd78d3, - limb2: 0xf1a9356e9c50ab1060306e90, - limb3: 0x145a21ef7546944e69117d9c + limb0: 0x26129fe49ee4acffbc39266, + limb1: 0x250bdb0c3982aeb8b9c52fe4, + limb2: 0x40d79965e048efdc, + limb3: 0x0, }, u384 { - limb0: 0x8fd38f6bda8366eed91534b8, - limb1: 0xc6e924aaa1df20bbacd3a591, - limb2: 0x798e673648ee5f4ac016f352, - limb3: 0x148a48b383b8988c88c2b1fb + limb0: 0xa019a3a638f34de5a8965732, + limb1: 0x73409552833f9beebcd77d2d, + limb2: 0xb49fe9249058a063, + limb3: 0x0, }, u384 { - limb0: 0x927362e2a4086932f4338508, - limb1: 0x985b3ac3affaffacda430dbb, - limb2: 0xcd7d8c93c2deb225d46de52b, - limb3: 0x1e03039c76bf33cab645586 + limb0: 0x9a3d09a3efec4e720146cb4a, + limb1: 0x38c05e93674950449a256dc9, + limb2: 0x3f4464e643508182, + limb3: 0x0, }, u384 { - limb0: 0xc8ca249722850186a67b96d, - limb1: 0xbade9de44317145263920c, - limb2: 0x8fbcd7667fab8df5acc8f136, - limb3: 0xdfe0f415b7e0405e5442308 + limb0: 0xe0ec7f3746fd833763ff3869, + limb1: 0xc526e6bf2c5ae3fa754440b7, + limb2: 0xc2263fe9436d8238, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0xc332c81b0c1046c2de4d58f0, - limb1: 0xd5b0ca5571d3e5cf54f99c, - limb2: 0x691d97f8f611c4c2dc1109f8, - limb3: 0x3740a879c3177c70974c39f + limb0: 0x9ea14702bb4df8f6b7f21341, + limb1: 0x565d68df22f1deee3fbfb4cc, + limb2: 0xbfceec57c00aa92, + limb3: 0x0, }, u384 { - limb0: 0x3bbf9952c140bd2518d786a7, - limb1: 0x29c65270cdae904d1407a038, - limb2: 0xd3d18851d30ca6d4b571a02a, - limb3: 0x730046178e45cb77d4442df + limb0: 0x880c59687bc85e88104a8c6d, + limb1: 0x7da9dffe4ce096c404a7997c, + limb2: 0xe7ed89c27d74ab9d, + limb3: 0x0, }, u384 { - limb0: 0x7f464930a5ca9c576d290467, - limb1: 0xcc9bede88b1c9dfe3c7bcb7a, - limb2: 0x558cf3f3254a9d7eedab957f, - limb3: 0x12924c39ec1d2e65db8aa9d2 + limb0: 0x9e6e818239557ac9a79fed7e, + limb1: 0x4b7ebc1eac198afa58fcd54f, + limb2: 0x8adac28de8bffdfa, + limb3: 0x0, }, u384 { - limb0: 0xbfc4e9e79f321c7dcea3b3cf, - limb1: 0x2a6f634ddc09e6260977dbd3, - limb2: 0xbaaf85f1e30bb872465b5738, - limb3: 0x113b283fa47ea7af2d8df0b + limb0: 0x234f3310b67bf69a2194bff1, + limb1: 0x3c54a5bb9b620b3f688f7670, + limb2: 0x5a7dfc32fe6a8a3c, + limb3: 0x0, }, u384 { - limb0: 0x3a30b9521ab80202f47a6654, - limb1: 0xef60dbbbd65a6762f386ec14, - limb2: 0x474aa78d41164ff8ae358752, - limb3: 0x6e29b4b44bdc14053693c94 + limb0: 0xa5fdb328c1a7f9250113798, + limb1: 0x4b383f8c9a8293d7f674106, + limb2: 0x7cf6ed7d7c0c6c09, + limb3: 0x0, }, u384 { - limb0: 0xce0fa5d5b45183da26a5e0a2, - limb1: 0x2818e482124a4bc510f7b4fb, - limb2: 0xc675354461a8335ff3f99b81, - limb3: 0x214984260f3f5e6278caa84 + limb0: 0xaac21cc39f82c284c53e1ac1, + limb1: 0x135fc1c7386227076df82c15, + limb2: 0x17f738e974b9333a, + limb3: 0x0, }, u384 { - limb0: 0x125b2b1162ed90ab78878f80, - limb1: 0x82de6e96332c2eda1247d075, - limb2: 0x6244d788e424a514cb41b282, - limb3: 0x1261162c50863791c5d9741e + limb0: 0x495459197825e901c3ec3883, + limb1: 0x5290f46ab30fe547c785720e, + limb2: 0x96ef0e9e01ade446, + limb3: 0x0, + }, + u384 { + limb0: 0x8ac15ea4119a081606a0e3de, + limb1: 0x8533d932cadfbf624f3a27aa, + limb2: 0xbf998a558b9db190, + limb3: 0x0, }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), b_den: array![ u384 { - limb0: 0x1bfc9d23d194b5e6d60c50f5, - limb1: 0x8ec10c2e43c78e84ec3d52e3, - limb2: 0x7c46fe95c6476511b124b9d8, - limb3: 0x19d5e5960693cf612a1b4d9 - }, - u384 { - limb0: 0xe8c510a6ec882f8932d56c3b, - limb1: 0x826aa1d769c021ddcf5a2cb, - limb2: 0x9f6f326831773603d5982c9d, - limb3: 0x1525950077bb39c53316f280 - }, - u384 { - limb0: 0xa6dcd45b34dc4f325399da7, - limb1: 0x8b268b37e3ec8f31fef1e352, - limb2: 0xfcc1cf3443dcc9b2a6328205, - limb3: 0x36551ff289a9d6ac2f2ff50 + limb0: 0x9f05dc5d470f5c9e6290e154, + limb1: 0xba0c8ee1714c34986191002f, + limb2: 0xc42a80bff61f4d12, + limb3: 0x0, }, u384 { - limb0: 0x9ea664f91ef5893519d8d1c7, - limb1: 0xe38e927b7207c1ac9a04eb02, - limb2: 0xc3b412e410346c1cef70832, - limb3: 0xb0d892048dcf747592727ef + limb0: 0x5f8293d6f1bee7fe9b06eaa7, + limb1: 0xc68a27ce0a1db20cd07a7912, + limb2: 0x5a06efc12fa0faca, + limb3: 0x0, }, u384 { - limb0: 0x97a9cfb45cc3f0ae1d838484, - limb1: 0xc9aa60eddfe6c1b1d89e9fa1, - limb2: 0xccff13b33ebac3370a3c5b25, - limb3: 0x649e1acad3ea1bd679028cd + limb0: 0x9083633aeb0b02cf00aa1994, + limb1: 0xa7a3f08999e675cf48e5df43, + limb2: 0x62a4c4ae302be59, + limb3: 0x0, }, u384 { - limb0: 0x5724fc778cf5f19e72edb7c8, - limb1: 0x24b815fc55aa4c70a2f3c106, - limb2: 0xaa053959d2104bdd2c4a0dea, - limb3: 0x18503b20703ed73167eaba52 + limb0: 0xed931f13d4f3fb6c5275d29a, + limb1: 0x3a945a206381b33bb84a24b0, + limb2: 0x2af92f88458fabcc, + limb3: 0x0, }, u384 { - limb0: 0x8fd38f6bda8366eed91534bc, - limb1: 0xc6e924aaa1df20bbacd3a591, - limb2: 0x798e673648ee5f4ac016f352, - limb3: 0x148a48b383b8988c88c2b1fb + limb0: 0x83225f961e7849c657397985, + limb1: 0x9200ae7fddf126bfd02f9140, + limb2: 0xc371922c72a34e09, + limb3: 0x0, }, u384 { - limb0: 0x927362e2a4086932f4338508, - limb1: 0x985b3ac3affaffacda430dbb, - limb2: 0xcd7d8c93c2deb225d46de52b, - limb3: 0x1e03039c76bf33cab645586 + limb0: 0xadf2a24115d8fcacaa5b2d5f, + limb1: 0x17f158df2b582c97def91095, + limb2: 0xbf6bb1531176f2a9, + limb3: 0x0, }, u384 { - limb0: 0xc8ca249722850186a67b96d, - limb1: 0xbade9de44317145263920c, - limb2: 0x8fbcd7667fab8df5acc8f136, - limb3: 0xdfe0f415b7e0405e5442308 + limb0: 0x377287608080562576f402f8, + limb1: 0x3210a613ea42624cb0eceb2c, + limb2: 0xc7ced8560e7e05d8, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ u384 { - limb0: 0x7d613d85fc5aef5433e581cb, - limb1: 0xf1e754efebff5e9d10089a03, - limb2: 0xcb35b27678efa2094b219cb1, - limb3: 0xe91fe503fc6a7e623b3a139 + limb0: 0x5569d24409fc20f1b88bd15b, + limb1: 0xa37add23d7c1450842093f8a, + limb2: 0xee73bfc63c2abc9a, + limb3: 0x0, }, u384 { - limb0: 0x302ea91a3b09524e7c49fbbb, - limb1: 0xb39869507b587b118b5d4593, - limb2: 0x21a5d66bb23ba5c279c2895f, - limb3: 0xd0088f51cbff34d258dd3db - } - ] - .span(), - a_den: array![ - u384 { - limb0: 0xd708e1336dd10727604c3ad9, - limb1: 0x8b101d10c8d7985b69109d91, - limb2: 0x4f12618839bd8d407bb5c636, - limb3: 0x180775fc5d86acfdc2981a43 + limb0: 0x737b5d8876926a0de12169a8, + limb1: 0xe7a8226f6fd8e8a43f5b283d, + limb2: 0xda87e523d568b952, + limb3: 0x0, }, u384 { - limb0: 0x4f65c3ee4b6996dca253990e, - limb1: 0x70032e947c08fa01e5660e24, - limb2: 0xa4dff93c94f7b42498b0b6ad, - limb3: 0x12db0f1a7bb1c060243c7bd1 + limb0: 0x7d43a9fb2994daf6cf41e2de, + limb1: 0x2282200387e1ce60d91318d8, + limb2: 0xa55fe3cb80f2e5b2, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0x29991cd74f302e1ee2d4037d, - limb1: 0xb399bf0fbbc8058ac80b1a07, - limb2: 0x5c70e8e058db6a96fe15fc1f, - limb3: 0x698a9f43d119d283aacacd8 + limb0: 0xdaccf548e71627abdfe988f, + limb1: 0xc02f814fe220b8c6a76dce9c, + limb2: 0xbc6b046ec3a18fa0, + limb3: 0x0, }, u384 { - limb0: 0x78e448621bda518021dbf5df, - limb1: 0x6a3806ec45fa8f59049d40f6, - limb2: 0x4ccd002b3390cfd313638577, - limb3: 0x17192b3a577984e7cf30c60 + limb0: 0xc0b2d0e5ae95910ff3308d7f, + limb1: 0x944e6c1a67438c5ca5ba7988, + limb2: 0x765d8cd545e96f6d, + limb3: 0x0, }, u384 { - limb0: 0x95cbe2b43b3061e637f85db9, - limb1: 0x8bbba3f9df596230c762b55e, - limb2: 0xfb6afef5e36d010e837c4ba4, - limb3: 0x11619e5199099f713067c704 - } - ] - .span(), - b_den: array![ - u384 { - limb0: 0x482784ce89471c9d8131eb63, - limb1: 0xf6adfc603f4b7f01483e764b, - limb2: 0x72667f9ab99052731447e09b, - limb3: 0x121aa232c99b0028290d71ea + limb0: 0x7f10412db0a83643bda37082, + limb1: 0x5f0d1a1a47153c987e6b3d0b, + limb2: 0x3dd4b5a101fee7c0, + limb3: 0x0, }, u384 { - limb0: 0xdaef0fb9b9a85b72894f0ee2, - limb1: 0xf1ab151002c1fbbf58403893, - limb2: 0xce88b438af039887bb8b536, - limb3: 0x176a18957bc7344bfaba9fda + limb0: 0x178c25ae4a17d78056e3cb9f, + limb1: 0x476d96009c63d51a05f3223e, + limb2: 0x4cb03cb47db5ad93, + limb3: 0x0, }, - u384 { limb0: 0x4, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { - limb0: 0xd708e1336dd10727604c3ad9, - limb1: 0x8b101d10c8d7985b69109d91, - limb2: 0x4f12618839bd8d407bb5c636, - limb3: 0x180775fc5d86acfdc2981a43 + limb0: 0xc59a3f14b4701e6953c4ef22, + limb1: 0xfea883f8c414a012611672b6, + limb2: 0x54390333e2faa173, + limb3: 0x0, }, u384 { - limb0: 0x4f65c3ee4b6996dca253990e, - limb1: 0x70032e947c08fa01e5660e24, - limb2: 0xa4dff93c94f7b42498b0b6ad, - limb3: 0x12db0f1a7bb1c060243c7bd1 + limb0: 0x86879c87a4abbac628cda084, + limb1: 0xfdc91440d17c1a950d683aee, + limb2: 0x52c65cc23b04d7bd, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] - .span() + .span(), }, }; let derive_point_from_x_hint = DerivePointFromXHint { y_last_attempt: u384 { - limb0: 0x89ac4f03982affd52ca37e96, - limb1: 0x7ce97131e2f028851a28c1a, - limb2: 0x92eaf274faf52e3e509d0c9d, - limb3: 0xbb3951b6ece4ca0b141cefd + limb0: 0x51b092f473a847f3fe883430, + limb1: 0x14ac7c9defb67b39cec4fa29, + limb2: 0x62802a4ff11935e6, + limb3: 0x0, }, g_rhs_sqrt: array![ u384 { - limb0: 0x5df3e8bb18367fe8b1abe3b8, - limb1: 0x42686463ad4ff4ebb7196e32, - limb2: 0x86c7347a622610675278e830, - limb3: 0x4c5610240eef380f990fdf5 + limb0: 0x80829f83f1e0a0bc5a900efe, + limb1: 0x7baa3eecb3a2da9d8e428675, + limb2: 0xf644d29dcbb96b8, + limb3: 0x0, + }, + u384 { + limb0: 0x63e510c507762055f7a31794, + limb1: 0x7591a061cc81a9d2e1e940b3, + limb2: 0x8b7e896e0f143bd, + limb3: 0x0, + }, + u384 { + limb0: 0x8dd572f508a4297974cd2e31, + limb1: 0x9167ced8f744d149d51d4afe, + limb2: 0xba4da59074cb098, + limb3: 0x0, + }, + u384 { + limb0: 0x5ad6d1393cfe577e5d2ba30a, + limb1: 0x49ec800b44b25b88a8b69bce, + limb2: 0x17a9dc91e727bd78, + limb3: 0x0, }, u384 { - limb0: 0xcece0885520d5056fc88530a, - limb1: 0xab48248e357ef42d3b8f0844, - limb2: 0x8e5548b15295112b7831f535, - limb3: 0xcee9cbda118cca782fe3a25 - } + limb0: 0xe279da393a00bc39a643465c, + limb1: 0x6418a054094a38df754e5b, + limb2: 0x18263d7bdc45805a, + limb3: 0x0, + }, ] .span(), }; let points = array![ G1Point { x: u384 { - limb0: 0xe4f817e54aede0613c17035c, - limb1: 0xdff1f15010392a6da1f95a6, - limb2: 0xbed78d3d341e911d49f15454, - limb3: 0x18154782ce0913b21588066d + limb0: 0x113c8d620e3745e45e4389b8, + limb1: 0x85b8ff52d905fd02fe191c3f, + limb2: 0xf5d132d685201517, + limb3: 0x0, }, y: u384 { - limb0: 0x3d77d61326ef5a9a5a681757, - limb1: 0xd3070afd4f0e121de7fcee60, - limb2: 0xdf9ef4088763fe611fb85858, - limb3: 0x11a612bdd0bc09562856a70 - } + limb0: 0x60c0ba1b358f375b2362662e, + limb1: 0x6abfc829d93e09aa5174ec04, + limb2: 0x7bc4637aca93cb5a, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0xde4f62a6588c9401ffefbd3, - limb1: 0x9bb5f797ac6d3395b71420b5, - limb2: 0xdc39e973aaf31de52219df08, - limb3: 0x105dcc4dce3960447d21d3c1 + limb0: 0xd3ff147ff0ee4213f51f677d, + limb1: 0x431366a7732a6e4a6b942255, + limb2: 0x9fe743b25d39a591, + limb3: 0x0, }, y: u384 { - limb0: 0xaefd0d854043fd325dd3c34f, - limb1: 0x9b63c98d9a7845c52e1e2b0f, - limb2: 0x9db0be660d847ccc58358f3f, - limb3: 0x17cb6c41f0c4e1a7394ab62a - } + limb0: 0x7f8bb562ff60a902ef14bcb0, + limb1: 0xeb9420089fa531db62e806a6, + limb2: 0xfd028df433dfd5cc, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0xcf86158ab69213388e721bb7, - limb1: 0x5f7812269d790797cad9aa15, - limb2: 0xb1c3622a0177001d9ed8e25f, - limb3: 0x115cf429f459884785c6ba46 + limb0: 0x46ae31f6fc294ad0814552b6, + limb1: 0x2d54cc811efaf988efb3de23, + limb2: 0x2a2cc02b8f0c419f, + limb3: 0x0, }, y: u384 { - limb0: 0x1e81341e2f3f988ff115dda3, - limb1: 0xad22946489db6ee4954fa5e1, - limb2: 0x83bed94412e19d92b73cc763, - limb3: 0x2074c7bceff87d0d41edba1 - } + limb0: 0xaec889b9d8ce51c4a2c3586f, + limb1: 0xa2b07874c333bfee9f78e13e, + limb2: 0xc445de21be8d8709, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0xe2955c55da59eba4b7b57d3d, - limb1: 0x1e6629b0431bce67cf28c22, - limb2: 0x1c35b7efd5b67f87221b8bfc, - limb3: 0x3e53df9e3488a9e42acd87e + limb0: 0x7e47d1c2d19c21b2f6870259, + limb1: 0xe701b40af42001c38bca00db, + limb2: 0xd87ea1720d4dd3d6, + limb3: 0x0, }, y: u384 { - limb0: 0x2e089afa726154d40dd12102, - limb1: 0x5391613ecf49db2bcf1cad86, - limb2: 0x84a2abb2de6b3a6e09026a50, - limb3: 0x19557a3a3c1d62a205d5dc87 - } + limb0: 0x5b1d6cc74985ce49a1f737fe, + limb1: 0xb9127c572c3f091c031c249c, + limb2: 0x1392711e1576aa6f, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0x490bf40774926e8b279947c, - limb1: 0xeabab6aef9e9d2a4f64f4e7d, - limb2: 0x3e309fe1b1c8247abab20d7e, - limb3: 0x79c527862917f69ac58fcc4 + limb0: 0xb71f95ea692ed186e06e4c37, + limb1: 0x807276cd9cc59718bb11dbe9, + limb2: 0x10756a25836d67ca, + limb3: 0x0, }, y: u384 { - limb0: 0xacb18f2da2b425c2ff50dafd, - limb1: 0x7623850d87e279a8a30f31ff, - limb2: 0x777564c7291d95fa80203ade, - limb3: 0x1764ce0e7fb626109b63789b - } + limb0: 0xd34211b3520c83c5f9be99af, + limb1: 0x8f19a28ceef67bbda102ffe7, + limb2: 0x7ac2b92030d351cc, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0x42f2f3f4f6b9d2c2b73a361f, - limb1: 0xcd78c070c184c38b1e5716aa, - limb2: 0x72cbc24cd90da89e0e3cefe4, - limb3: 0x19485e1c46d0dce75f8b192b + limb0: 0x411bb5d0fbe844f025c7178c, + limb1: 0xcf603787227b7ac499d6d1c4, + limb2: 0x5f6b2479862eb2f8, + limb3: 0x0, }, y: u384 { - limb0: 0xb56b3539074b3c47b3f504d9, - limb1: 0x2c229530bddedd8851b03dcc, - limb2: 0xc93eef8474c4e18d6378e7f0, - limb3: 0x173d36f17a3c9ae77a2acc25 - } + limb0: 0xce60303cfcb98726ff64a1e5, + limb1: 0xa64534c614754b3527588d25, + limb2: 0x44f75e245622181, + limb3: 0x0, + }, + }, + G1Point { + x: u384 { + limb0: 0x8a703177da18d4ede707c057, + limb1: 0x7d6c11e754ab6fbe73deea43, + limb2: 0xdf9787168190a047, + limb3: 0x0, + }, + y: u384 { + limb0: 0x2e6585ab5f125a34fef37875, + limb1: 0xb70e9f02ce7744197172a117, + limb2: 0x60e305f9fe6f2298, + limb3: 0x0, + }, + }, + G1Point { + x: u384 { + limb0: 0x712f72f3929408ff68af059d, + limb1: 0x4f72cea12cd115dc1c8639f5, + limb2: 0xc6d5ae1b897ffe77, + limb3: 0x0, + }, + y: u384 { + limb0: 0xfcf91f56bad0659142668837, + limb1: 0xa15458b49bcdad6c870e3889, + limb2: 0x81a1342e70b1b765, + limb3: 0x0, + }, + }, + G1Point { + x: u384 { + limb0: 0x461d7579f9613d3168fc6220, + limb1: 0x7626024a6195fe0eafcea08b, + limb2: 0x32e91b268a032443, + limb3: 0x0, + }, + y: u384 { + limb0: 0xcdc7ae298071a741aafd4035, + limb1: 0x9a9bdfbdb824dc1278457a10, + limb2: 0x17fbec3713dfd145, + limb3: 0x0, + }, + }, + G1Point { + x: u384 { + limb0: 0x9b85054533e9d24310265ee0, + limb1: 0x51cbb79b2625c435ba43bbef, + limb2: 0x1fd81fcb136c629b, + limb3: 0x0, + }, + y: u384 { + limb0: 0x96378a2e47ab50246a9cf131, + limb1: 0x4d0f08867537268cf39eae04, + limb2: 0x4eeb60396f3e5f52, + limb3: 0x0, + }, + }, + G1Point { + x: u384 { + limb0: 0x4e9960d402494fb117251955, + limb1: 0xc0fb055de656d6ac2ba4da86, + limb2: 0x800a21e8619f448f, + limb3: 0x0, + }, + y: u384 { + limb0: 0x21ba9af739425b664464e3d5, + limb1: 0xd09194888c2ffcf16e93e0c9, + limb2: 0x5d4d3cd0684b6cd1, + limb3: 0x0, + }, }, G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, ] .span(); let scalars = array![ u256 { low: 0x0, high: 0x0 }, u256 { - low: 0xb5d32b1666194cb1d71037d1b83e90ec, high: 0x5008b5f2ab0c1681c8f8e3d0d3290a4c + low: 0x101fbcccded733e8b421eaeb534097ca, high: 0x38c1962e9148624feac1c14f30e9c5cc, }, u256 { - low: 0xd3fbf47a7e5b1e7f9ca5499d004ae545, high: 0x5d79c4bd3e70f16a55485822de1b372a + low: 0x247a8333f7b0b7d2cda8056c3d15eef7, high: 0x1759edc372ae22448b0163c1cd9d2b7d, }, u256 { - low: 0x101fbcccded733e8b421eaeb534097ca, high: 0x1c60cb179148624feac1c14f30e9c5cc + low: 0xe005b86051ef1922fe43c49e149818d1, high: 0x7d41e602eece328bff7b118e820865d6, }, u256 { - low: 0x247a8333f7b0b7d2cda8056c3d15eef7, high: 0xbacf6e172ae22448b0163c1cd9d2b7d + low: 0x4a84eb038d1fd9b74d2b9deb1beb3711, high: 0x552f233a8c25166a1ff39849b4e1357d, }, u256 { - low: 0xe005b86051ef1922fe43c49e149818d1, high: 0x3ea0f301eece328bff7b118e820865d6 + low: 0x3405095c8a5006c1ec188efbd080e66e, high: 0x8c1745a79a6a5f92cca74147f6be1f72, }, u256 { - low: 0x4a84eb038d1fd9b74d2b9deb1beb3711, high: 0x2a97919d8c25166a1ff39849b4e1357d + low: 0x1775336d71eacd0549a3e80e966e1277, high: 0x5129fb7c6288e1a5cc45782198a6416d, + }, + u256 { + low: 0x2f1205544a5308cc3dfabc08935ddd72, high: 0x870e15c2fcd81b5d24bace4307bf326, + }, + u256 { + low: 0x42930b33a81ad477fb3675b89cdeb3e6, high: 0xadc0da7a16febaa011af923d79fdef7c, + }, + u256 { + low: 0x2648ee38e07405eb215663abc1f254b8, high: 0x148b2758d7ab792809e469e6ec62b2c8, + }, + u256 { + low: 0xd450fe4aec4f217bb306d1a8e5eeac76, high: 0xd67e55fd642bfa42aef9c00b8a64c1b9, + }, + u256 { + low: 0x85940927468ff53d864a7a50b48d73f1, high: 0x37176e84d977e9933c49d76fcfc6e625, }, ] .span(); let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 1 + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 3, ); assert!( res == G1Point { x: u384 { - limb0: 0xd381d25339387aa82be8c6d8, - limb1: 0x47fff58ffa2f41b08e8a34cf, - limb2: 0xcd523d1db24c6523f00b5c4, - limb3: 0x8445ebce1efef4560d64866 + limb0: 0xef4b4e197306579c6764d18d, + limb1: 0xcad67ed94cd304765c5ef1d0, + limb2: 0x3aaf8e6e9efeb7a8, + limb3: 0x0, }, y: u384 { - limb0: 0xbe04c4b5f88aeac374e64776, - limb1: 0xfe699481b6ff01e2e56b9a08, - limb2: 0x4863825797b18b34d97a7405, - limb3: 0xe59b6a32eca979c1c4149ab - } - } + limb0: 0xaa6037d51b7470230cec4f93, + limb1: 0x65094a2650b8285563a053b4, + limb2: 0x312f741cf953042d, + limb3: 0x0, + }, + }, ); } #[test] - fn test_msm_BLS12_381_8P() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - ] - .span() - ), - ( - array![ - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - ] - .span(), - array![ - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - ] - .span(), - array![ - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - ] - .span(), - array![ - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - ] - .span(), - array![ - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - ] - .span() - ), - ] - .span() - ); + fn test_msm_SECP256K1_1P() { + let scalars_digits_decompositions = Option::None; let msm_hint = MSMHint { Q_low: G1Point { - x: u384 { - limb0: 0xa96e740c9e1b631293b4f0cd, - limb1: 0x4bffe2f464e97e954148b338, - limb2: 0x50f94e1d8bac1131c39a677a, - limb3: 0x1721e02330b4341822ef293 - }, - y: u384 { - limb0: 0xa52b140a2ace5442d5398f12, - limb1: 0x53865ca7d2a31630a3245183, - limb2: 0x6932d3ec0ac77dfbcdab85e7, - limb3: 0xed5ee0215f963ecb0f7fac2 - } + x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, Q_high: G1Point { - x: u384 { - limb0: 0xad04fe59bb9a18bda747d203, - limb1: 0x14d6fbbf752aabb52ea825aa, - limb2: 0xf98b859affc1acf693028c9f, - limb3: 0x1425d78be28bfaf514d7656 - }, - y: u384 { - limb0: 0x97e4a43180e48f9dcf741bb1, - limb1: 0x8bc316ea567d9405fbaf73f9, - limb2: 0xcbce9153504baccc70e13c6b, - limb3: 0xbb3f94f1b30437e05b5bdde - } + x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, Q_high_shifted: G1Point { - x: u384 { - limb0: 0xa7f96217fa51f7177f623685, - limb1: 0x49e4e3606390671e7d630d5c, - limb2: 0x4d9f44b8db22a948f91f3289, - limb3: 0x85066404121b353301dfc42 - }, - y: u384 { - limb0: 0x63cfc67eee9c49e9513b78b7, - limb1: 0x1b4e458ab6e1e352f8ab0e81, - limb2: 0x5835a444428f1fff6331569d, - limb3: 0x12d3c7f1e393306530e08759 - } + x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, - SumDlogDivLow: FunctionFelt { + RLCSumDlogDiv: FunctionFelt { a_num: array![ - u384 { - limb0: 0x63fe70cd83c4548826902f0, - limb1: 0xb696f313699fd7ab839c0774, - limb2: 0x65f0d056161e595915ef8bb7, - limb3: 0x16454731bc81208ab0675548 - }, - u384 { - limb0: 0xde4ffb4743e6fb6d687885fa, - limb1: 0x3dc78848aacb7b6a5906bf47, - limb2: 0x8b82cc027d0ca9d6c6a8c1d5, - limb3: 0x17452c5a8e594f3bf3aca113 - }, - u384 { - limb0: 0xd588d66614e28cb46f9eb999, - limb1: 0xfd5d950a541871f849d90779, - limb2: 0xb0044b4ce3c0743e9eaba072, - limb3: 0x7f11910707cece30e02b5eb - }, - u384 { - limb0: 0x4a9267a598097412cc6089cb, - limb1: 0x7c613cc8472a9c150afa11b4, - limb2: 0x869870b8e430c511017d48f0, - limb3: 0x361cd3998565fa172a3257e - }, - u384 { - limb0: 0x1a095ea2ee86f55030886fa3, - limb1: 0x59281568631104f148210bf1, - limb2: 0x9d7b26f08c45220506725037, - limb3: 0x4d2f2842aa4904c0e1d9099 - }, - u384 { - limb0: 0x8ff98e0eb97fde61f891f776, - limb1: 0xf16292456dc230d2cd21ed7b, - limb2: 0x13c7b6b24df55dafd6e1ade1, - limb3: 0xfff198cb1b22b2389167150 - }, - u384 { - limb0: 0x21062c99cb1abef1e70901, - limb1: 0xb39869507b587b11408f8e9e, - limb2: 0x21a5d66bb23ba5c279c2895f, - limb3: 0xd0088f51cbff34d258dd3db - }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), a_den: array![ - u384 { - limb0: 0x501a791464891b62d802a727, - limb1: 0xd4918595b296f42f4eea6ee8, - limb2: 0xf0b9eaff92fd43ae58aae351, - limb3: 0x7eaf73dd0cdbc078e406802 - }, - u384 { - limb0: 0x8730e895ae8bef8206efe5d5, - limb1: 0xa0979a649521f40ee9b287ac, - limb2: 0x89a427d1bac8da2549581ef2, - limb3: 0x22048103cb68c4ed8d072c3 - }, - u384 { - limb0: 0x2c4f71e13071161e4c54c06e, - limb1: 0x57fec4cb05e238513c1e44c4, - limb2: 0xf075fa15c6a8f59fdcf39dff, - limb3: 0x7f8fdc5f8de13d47ebeb486 - }, - u384 { - limb0: 0xceaafc2bfd3b13b636502ec4, - limb1: 0xa346c62ae426ac43f1bb1919, - limb2: 0x9d0d7013ae4d4d632bb451ec, - limb3: 0x1895a7c24dd555209ecdba88 - }, - u384 { - limb0: 0xdf7ea179d9452066d2b2448f, - limb1: 0x133afce3ae36c245a8e344f3, - limb2: 0xbf8747df72131a00c8baed68, - limb3: 0xf7dc4787631980609201db7 - }, - u384 { - limb0: 0x6fc7269e3bc6da8664f31188, - limb1: 0x4df8cc33594329eeab61eb0, - limb2: 0x26c1430ab50e20a611f0d75c, - limb3: 0xdd7ac3edfbebd8ca01051f1 - }, - u384 { - limb0: 0x34a46e30b1471133a554999, - limb1: 0x547055f7b697b32ae52b4927, - limb2: 0xd37f4d0e42a81bb62517ef26, - limb3: 0x5d92f2d677601b71d48ba1d - }, u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), b_num: array![ - u384 { - limb0: 0xb5a99a60f6cfafec4b81cb2d, - limb1: 0x6ca3329662dc01100b15af6f, - limb2: 0x4b7e9404ab0b2db0030a7fd3, - limb3: 0x851ee0965e3876bb711cf77 - }, - u384 { - limb0: 0x8cd1f5743088543419045424, - limb1: 0x2b64aedfe03fb6e67e429376, - limb2: 0x833f51fed2b7ca45b888e8b1, - limb3: 0x17fb1dacf2d597dbc59b2e70 - }, - u384 { - limb0: 0xad17fe88c53c4cd00fb188c2, - limb1: 0xc8444e793203e94659d4c549, - limb2: 0xf53ff46c23a2a36a052e3ed, - limb3: 0x1230496f946815ed61302119 - }, - u384 { - limb0: 0x2e11103dc09689fa5444f53f, - limb1: 0xf96556f00ea89514a7f33632, - limb2: 0x88877ac197ddb96efe55f271, - limb3: 0xd343071f545167d58b94dcc - }, - u384 { - limb0: 0xbc8bad0a8820359261600abf, - limb1: 0x5202236fa006f444ec12ddbd, - limb2: 0x3cbc734642d8ba833cde37b3, - limb3: 0xc3d0e206e3bc63d55b993b6 - }, - u384 { - limb0: 0xa6068d1bf302960074dec7d2, - limb1: 0xa69dc1e7eec8de87f491b64c, - limb2: 0xd01976efe85ef599f84e39a, - limb3: 0x2577b7f58eb0ddbd68ea11e - }, - u384 { - limb0: 0xc41474f7e761a1c82a65aa5e, - limb1: 0xdccea1ad50151dc895bc2d68, - limb2: 0xc852035a6af777771b36604e, - limb3: 0xcae711748f6122c9e218e05 - }, - u384 { - limb0: 0x78691f95deeca6fdb695ff0d, - limb1: 0xe493fcdd0e433adb07846a8d, - limb2: 0xbaf30b6f2fffa031bedbbf8e, - limb3: 0x19fcad3903859d2565d80520 - }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), b_den: array![ - u384 { - limb0: 0x8f15e451d8256d8b600af1f1, - limb1: 0xeb1543b5d3aada991cfdbba2, - limb2: 0x7f9bff26e77dc3346f267a87, - limb3: 0x5aacb0d09b70983ede5f855 - }, - u384 { - limb0: 0x1cc3a256ba2fbe081bbf9754, - limb1: 0x825e69925487d03ba6ca1eb2, - limb2: 0x26909f46eb23689525607bca, - limb3: 0x8812040f2da313b6341cb0e - }, - u384 { - limb0: 0xffe9c78507c558793153570d, - limb1: 0xf8ca408b20d7eb20d1cd1311, - limb2: 0x7e8c3b7fb62c8afa8049653d, - limb3: 0x5e2e52da9f868b7afdf2a65 - }, - u384 { - limb0: 0xc57669c571796a3bb144b78b, - limb1: 0xc4e953bd686dccae9b26d354, - limb2: 0x57c0f7f0ba554b273967e006, - limb3: 0x23d4e9e22237620dd08b34c - }, - u384 { - limb0: 0xa2836e7d9fa2711d51b9a2bb, - limb1: 0x1f21e8b1609b10dd4fe79b7e, - limb2: 0x129eda0ba26ab1e8539af14, - limb3: 0xc15361da27d1f3267199a36 - }, - u384 { - limb0: 0x88c40c5aab8e8037e021b138, - limb1: 0x9d1b5295eed11684a99ebf88, - limb2: 0x4e3ac91d1f2e12e3dacd5f0, - limb3: 0xb558aed04d93cd268c8acdf - }, - u384 { - limb0: 0x2a8017b86f8dd8031fa5aa7d, - limb1: 0x8dd74b68c7d482cb67bc3db7, - limb2: 0xa7bef775547670b6cc8efbc6, - limb3: 0x15f9528db22d7562c8d4fb49 - }, - u384 { - limb0: 0xdf7ea179d9452066d2b24493, - limb1: 0x133afce3ae36c245a8e344f3, - limb2: 0xbf8747df72131a00c8baed68, - limb3: 0xf7dc4787631980609201db7 - }, - u384 { - limb0: 0x6fc7269e3bc6da8664f31188, - limb1: 0x4df8cc33594329eeab61eb0, - limb2: 0x26c1430ab50e20a611f0d75c, - limb3: 0xdd7ac3edfbebd8ca01051f1 - }, - u384 { - limb0: 0x34a46e30b1471133a554999, - limb1: 0x547055f7b697b32ae52b4927, - limb2: 0xd37f4d0e42a81bb62517ef26, - limb3: 0x5d92f2d677601b71d48ba1d - }, u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] - .span() + .span(), + }, + }; + let derive_point_from_x_hint = DerivePointFromXHint { + y_last_attempt: u384 { + limb0: 0x69588367250041f054620d3b, + limb1: 0x1174ea4879bb0b580868e8e8, + limb2: 0x7ea9eb687089d547, + limb3: 0x0, + }, + g_rhs_sqrt: array![].span(), + }; + let points = array![ + G1Point { + x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + }, + ] + .span(); + let scalars = array![u256 { low: 0x0, high: 0x0 }].span(); + + let res = msm_g1( + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 2, + ); + assert!( + res == G1Point { + x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + }, + ); + } + + + #[test] + fn test_msm_SECP256K1_2P() { + let scalars_digits_decompositions = Option::None; + let msm_hint = MSMHint { + Q_low: G1Point { + x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + }, + Q_high: G1Point { + x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + }, + Q_high_shifted: G1Point { + x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, - SumDlogDivHigh: FunctionFelt { + RLCSumDlogDiv: FunctionFelt { a_num: array![ - u384 { - limb0: 0xe8dd677298bdaa3ad17ee6a8, - limb1: 0xf2e6dbfefab8f2e7baf08e4f, - limb2: 0x752ab87b282b3249f02a6c08, - limb3: 0x3314a6bc49a6a43aef6208b - }, - u384 { - limb0: 0x3213dd4ff2f03c08c4d9c8da, - limb1: 0xe2be42692b916653fccbd062, - limb2: 0x9ccc1ba8f024f19183de9489, - limb3: 0x9b24c538537f7e586963f71 - }, - u384 { - limb0: 0xc6376847a539f322907fc63d, - limb1: 0x3ced0daa710272f8651340fc, - limb2: 0xde9e9b57bb3fb0665c2c324d, - limb3: 0x5468c0e37060b4f81abfe27 - }, - u384 { - limb0: 0x8273918e58ba62510bb301b2, - limb1: 0x44bf3b02d333b47bc1eeaf7, - limb2: 0x9be8e76ae2ff973a429ffc59, - limb3: 0x13df788f96f2eb8056f3ac3b - }, - u384 { - limb0: 0x552b178ab06fab486dde91f9, - limb1: 0x62e838d1c8eadc3db5b487b5, - limb2: 0x17331149afb618a7e6ec0609, - limb3: 0x1e749ee84debf4984c2c76e - }, - u384 { - limb0: 0xf30f306d252678a191841017, - limb1: 0x107bef78ad07c25e9bc49954, - limb2: 0xb6c83506f5bdf656548126c, - limb3: 0x14e1496e5f04342b07ce9677 - }, - u384 { - limb0: 0x7da911a43b19766b16761e2d, - limb1: 0xb39869507b587b127de8dbe3, - limb2: 0x21a5d66bb23ba5c279c2895f, - limb3: 0xd0088f51cbff34d258dd3db - }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), a_den: array![ - u384 { - limb0: 0x2b6251ba586f4322fc01009a, - limb1: 0xb021034879e2caacec62bd08, - limb2: 0x1c7bd3fe4da8f53f1cc05862, - limb3: 0xec2920479a09b7a2c9cd53c - }, - u384 { - limb0: 0xad9821419b66510550c40249, - limb1: 0x86a20c703571ad3d579db24d, - limb2: 0x5413b9ec56995d0d01cd0ba1, - limb3: 0x445f6a7a0817ee857c421f8 - }, - u384 { - limb0: 0x42897b1036408cd83e00e80f, - limb1: 0x87c449fb88961893dc43edb6, - limb2: 0x3c4c90f9e5c1db3ff6888e91, - limb3: 0xf7ac81daa5b364ddee7fea2 - }, - u384 { - limb0: 0x933f72033cc0a9e8df87dcb9, - limb1: 0xabcde5016844b505fec05320, - limb2: 0x6d07d39ed4e74a37b4f34bf8, - limb3: 0x78cca3859138ae7b844fcdc - }, - u384 { - limb0: 0x848c63a669c15e2ce5f5430e, - limb1: 0xa7adde4813efdea1e3fe27cb, - limb2: 0xcb0fb4e8128a62b655c9d4d0, - limb3: 0x2d0eb97185f8355f41388a7 - }, - u384 { - limb0: 0x20cedc5df561aa45c4e2bf43, - limb1: 0x2aa26d3f623b8ef82e64cef4, - limb2: 0x26872c6e75b811b1df90f281, - limb3: 0x140f62d8498878174435f0de - }, - u384 { - limb0: 0xffb3bc95ed95bb6826c26863, - limb1: 0x8b993d2ca656860af7cbd6b4, - limb2: 0x2aed1590ce927ff155afca01, - limb3: 0x608efb6dc5885494e2a365a - }, u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), b_num: array![ - u384 { - limb0: 0xfcfb0815350f2caac944e213, - limb1: 0x8b3922e6304220195f6fed80, - limb2: 0x644cbc47accb08865c03ff2f, - limb3: 0xfb81aa171b5775dd4a0f379 - }, - u384 { - limb0: 0x7d9c89eb42319b913bd51971, - limb1: 0xb23fa1dd89cae1abc5d09a54, - limb2: 0xf8f1939d5de00f5a6fe00be9, - limb3: 0x165766090b4ce5240f05baaf - }, - u384 { - limb0: 0x2cbeb28d6a393d5ee364f7ce, - limb1: 0xd6d5fdf2fe55c44e41711cac, - limb2: 0xfa8f6028f1b9cccf376c31, - limb3: 0x4d198f9d51d93e51cf72611 - }, - u384 { - limb0: 0x2e2578a04f2437a8b4932f8d, - limb1: 0x452ae8e628c1ae8da549baa2, - limb2: 0x512a4dfb1ff0711b0c83476f, - limb3: 0xc33d79dbdd19b7580e5db0d - }, - u384 { - limb0: 0x58e3902617672d0fc8af15ec, - limb1: 0x1127af61360b52c3d979b192, - limb2: 0xaf79a9eff7aa51fd789279ca, - limb3: 0x836c4de2b93fd5ae2767815 - }, - u384 { - limb0: 0x3a0d6e2fc8284773c1c9cced, - limb1: 0xa51f3e7b048e195fb8e22627, - limb2: 0xa4c2c47e66a430e3f08e8988, - limb3: 0x46d461ebcd7497e90021c3b - }, - u384 { - limb0: 0x60510463524ceea78fb68b5a, - limb1: 0xbc3c40855bd66f42866c5e5d, - limb2: 0x445b5e9d09f3597a14bc8f30, - limb3: 0x16c0991e122eaff02f6fb200 - }, - u384 { - limb0: 0x8ad29c8e26c1cf0f4cd0dc05, - limb1: 0x8d7bb71d573e5b8f2fed1153, - limb2: 0x39e565879236817419bc39ef, - limb3: 0x37ccf0eeb992662a372fecc - }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), b_den: array![ - u384 { - limb0: 0x4ae146e9edbf0c8bf004ad12, - limb1: 0xf22267dffa293e6b7432f423, - limb2: 0xeb57f64a6db53df28bf73c0b, - limb3: 0x708243d7382a0b41c3c0583 - }, - u384 { - limb0: 0xb66085066d99441543100924, - limb1: 0x1a8831c0d5c6b4f55e76c936, - limb2: 0x504ee7b15a65743407342e86, - limb3: 0x1117da9e8205fba15f1087e1 - }, - u384 { - limb0: 0xa77dec4165043360f8044ae6, - limb1: 0x50af82ac34f6760733b7b6db, - limb2: 0x6a9aea38ce18d5f5f31814c7, - limb3: 0x9e8fca2366d0c02e568ab1c - }, - u384 { - limb0: 0xc70c19c79172eac67a20c8d3, - limb1: 0xf827c4ad2444a8a0c8b8098b, - limb2: 0x8d4f75a23cced298fd087585, - limb3: 0x12f4a8fba46ee07ec29520f7 - }, - u384 { - limb0: 0xbfc9afdb426bc9b8e8990e81, - limb1: 0x25598590853127c4e796517b, - limb2: 0x80528d8ca0c2e7e658f45ee4, - limb3: 0xf89a50401ff8c4028124497 - }, - u384 { - limb0: 0xb1c8ec88ddca35ef518ce51a, - limb1: 0xfcbb87162d71720839d3298a, - limb2: 0xc863c2d8f3c3f789a3d2057, - limb3: 0x11b51dc023fd62dc0e6ccaf8 - }, - u384 { - limb0: 0xe0ba645b391897897a91d39a, - limb1: 0x730207130aedd70dbf43adf5, - limb2: 0xd5707d0aaab9fe78182d613f, - limb3: 0x5af772990f5b972a5d22e8e - }, - u384 { - limb0: 0x848c63a669c15e2ce5f54312, - limb1: 0xa7adde4813efdea1e3fe27cb, - limb2: 0xcb0fb4e8128a62b655c9d4d0, - limb3: 0x2d0eb97185f8355f41388a7 - }, - u384 { - limb0: 0x20cedc5df561aa45c4e2bf43, - limb1: 0x2aa26d3f623b8ef82e64cef4, - limb2: 0x26872c6e75b811b1df90f281, - limb3: 0x140f62d8498878174435f0de - }, - u384 { - limb0: 0xffb3bc95ed95bb6826c26863, - limb1: 0x8b993d2ca656860af7cbd6b4, - limb2: 0x2aed1590ce927ff155afca01, - limb3: 0x608efb6dc5885494e2a365a - }, u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ - u384 { - limb0: 0xe15c8b85e0327190a3c72810, - limb1: 0x93133cf9f864945acdb7fae2, - limb2: 0x7e88f1002b9ae8e9fbd756fb, - limb3: 0x10703029f345078222be552 - }, - u384 { - limb0: 0x302ea91a3b09524e7c49fbbb, - limb1: 0xb39869507b587b118b5d4593, - limb2: 0x21a5d66bb23ba5c279c2895f, - limb3: 0xd0088f51cbff34d258dd3db - } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x86f2b7aa52bccfbc871c8b75, - limb1: 0x5d7c128c22cb3f70f4009181, - limb2: 0x6051c8fe95675bc436ff2a32, - limb3: 0xb340e9b2236e012028bedf6 - }, - u384 { - limb0: 0x5c559f8e0412f02ad955a223, - limb1: 0x874f3811df5e35072a0ccf7, - limb2: 0xfc20e2838992f54567635397, - limb3: 0x106e4e313a357397c9b0351c - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0xc0421359f1482676f1346f35, - limb1: 0x3b5a0f817e3e91970b9962bf, - limb2: 0x7fbd1b63f6304263e0a38435, - limb3: 0xd4db28633fbb603bfb69660 - }, - u384 { - limb0: 0xb05ba586f868baff07e70d89, - limb1: 0x78d06c6a219c06f4f3415c81, - limb2: 0xf2b02bf5009be6a4eb6bc3f7, - limb3: 0x819aa618ae5523bca4591ff - }, - u384 { - limb0: 0xadde654899851e2a6a34ddb5, - limb1: 0xbd189c870ca10bbc3164d0e2, - limb2: 0x142c47157f71ea31bfc7f22d, - limb3: 0xd3749738ccc27c94b7cf5dd - } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), - b_den: array![ - u384 { - limb0: 0x6a76dea990f43ef21c728329, - limb1: 0xebf778f947c079fb1564607, - limb2: 0x3dfb7722f126238be877960a, - limb3: 0x12cf28824f5b99adbf141023 - }, - u384 { - limb0: 0xeae7e389c4dc0ab65573336, - limb1: 0x537228c28a75a0f98d2b33e0, - limb2: 0x69ec305f5d5d3e0bb68328dd, - limb3: 0xdb714f075d6012a90898507 - }, - u384 { limb0: 0x4, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { - limb0: 0x86f2b7aa52bccfbc871c8b75, - limb1: 0x5d7c128c22cb3f70f4009181, - limb2: 0x6051c8fe95675bc436ff2a32, - limb3: 0xb340e9b2236e012028bedf6 - }, - u384 { - limb0: 0x5c559f8e0412f02ad955a223, - limb1: 0x874f3811df5e35072a0ccf7, - limb2: 0xfc20e2838992f54567635397, - limb3: 0x106e4e313a357397c9b0351c - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() }, }; let derive_point_from_x_hint = DerivePointFromXHint { y_last_attempt: u384 { - limb0: 0x452d2256014274e5922504c0, - limb1: 0x9954b616fa586359f8286835, - limb2: 0x6d847ecc351fb1f050353675, - limb3: 0x7eeb377d5057bb147ae0afd + limb0: 0x862bbbc7625bb23fe3ee10f0, + limb1: 0x868baf0626c044f9a077a0ca, + limb2: 0x155e74b122885e85, + limb3: 0x0, }, - g_rhs_sqrt: array![].span(), + g_rhs_sqrt: array![ + u384 { + limb0: 0x610f7ffe1889436670829e43, + limb1: 0xb1f2329808ffbbfd2a7fce4c, + limb2: 0x56c9e223dae04be9, + limb3: 0x0, + }, + ] + .span(), }; let points = array![ G1Point { x: u384 { - limb0: 0xe4f817e54aede0613c17035c, - limb1: 0xdff1f15010392a6da1f95a6, - limb2: 0xbed78d3d341e911d49f15454, - limb3: 0x18154782ce0913b21588066d - }, - y: u384 { - limb0: 0x3d77d61326ef5a9a5a681757, - limb1: 0xd3070afd4f0e121de7fcee60, - limb2: 0xdf9ef4088763fe611fb85858, - limb3: 0x11a612bdd0bc09562856a70 - } - }, - G1Point { - x: u384 { - limb0: 0xde4f62a6588c9401ffefbd3, - limb1: 0x9bb5f797ac6d3395b71420b5, - limb2: 0xdc39e973aaf31de52219df08, - limb3: 0x105dcc4dce3960447d21d3c1 - }, - y: u384 { - limb0: 0xaefd0d854043fd325dd3c34f, - limb1: 0x9b63c98d9a7845c52e1e2b0f, - limb2: 0x9db0be660d847ccc58358f3f, - limb3: 0x17cb6c41f0c4e1a7394ab62a - } - }, - G1Point { - x: u384 { - limb0: 0xcf86158ab69213388e721bb7, - limb1: 0x5f7812269d790797cad9aa15, - limb2: 0xb1c3622a0177001d9ed8e25f, - limb3: 0x115cf429f459884785c6ba46 - }, - y: u384 { - limb0: 0x1e81341e2f3f988ff115dda3, - limb1: 0xad22946489db6ee4954fa5e1, - limb2: 0x83bed94412e19d92b73cc763, - limb3: 0x2074c7bceff87d0d41edba1 - } - }, - G1Point { - x: u384 { - limb0: 0xe2955c55da59eba4b7b57d3d, - limb1: 0x1e6629b0431bce67cf28c22, - limb2: 0x1c35b7efd5b67f87221b8bfc, - limb3: 0x3e53df9e3488a9e42acd87e - }, - y: u384 { - limb0: 0x2e089afa726154d40dd12102, - limb1: 0x5391613ecf49db2bcf1cad86, - limb2: 0x84a2abb2de6b3a6e09026a50, - limb3: 0x19557a3a3c1d62a205d5dc87 - } - }, - G1Point { - x: u384 { - limb0: 0x490bf40774926e8b279947c, - limb1: 0xeabab6aef9e9d2a4f64f4e7d, - limb2: 0x3e309fe1b1c8247abab20d7e, - limb3: 0x79c527862917f69ac58fcc4 - }, - y: u384 { - limb0: 0xacb18f2da2b425c2ff50dafd, - limb1: 0x7623850d87e279a8a30f31ff, - limb2: 0x777564c7291d95fa80203ade, - limb3: 0x1764ce0e7fb626109b63789b - } - }, - G1Point { - x: u384 { - limb0: 0x42f2f3f4f6b9d2c2b73a361f, - limb1: 0xcd78c070c184c38b1e5716aa, - limb2: 0x72cbc24cd90da89e0e3cefe4, - limb3: 0x19485e1c46d0dce75f8b192b + limb0: 0x393dead57bc85a6e9bb44a70, + limb1: 0x64d4b065b3ede27cf9fb9e5c, + limb2: 0xda670c8c69a8ce0a, + limb3: 0x0, }, y: u384 { - limb0: 0xb56b3539074b3c47b3f504d9, - limb1: 0x2c229530bddedd8851b03dcc, - limb2: 0xc93eef8474c4e18d6378e7f0, - limb3: 0x173d36f17a3c9ae77a2acc25 - } - }, - G1Point { - x: u384 { - limb0: 0x5fbf29cf20556a11621a6639, - limb1: 0xdfda5b7dbf0b226822094787, - limb2: 0x4a3b059e521b4b0445df96d5, - limb3: 0x333988c2c09f5af061cdfb + limb0: 0x789872895ad7121175bd78f8, + limb1: 0xc0deb0b56fb251e8fb5d0a8d, + limb2: 0x3f10d670dc3297c2, + limb3: 0x0, }, - y: u384 { - limb0: 0x13d3570be6d27d1d588b22fc, - limb1: 0x20c763e58d4df3e4990cdae9, - limb2: 0x2c3301367f400c31f4bded26, - limb3: 0x16a6c25d133fba74b4c55972 - } }, G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, ] .span(); let scalars = array![ u256 { low: 0x0, high: 0x0 }, u256 { - low: 0xd3fbf47a7e5b1e7f9ca5499d004ae545, high: 0x5d79c4bd3e70f16a55485822de1b372a - }, - u256 { - low: 0x101fbcccded733e8b421eaeb534097ca, high: 0x1c60cb179148624feac1c14f30e9c5cc - }, - u256 { - low: 0x247a8333f7b0b7d2cda8056c3d15eef7, high: 0xbacf6e172ae22448b0163c1cd9d2b7d - }, - u256 { - low: 0xe005b86051ef1922fe43c49e149818d1, high: 0x3ea0f301eece328bff7b118e820865d6 - }, - u256 { - low: 0x4a84eb038d1fd9b74d2b9deb1beb3711, high: 0x2a97919d8c25166a1ff39849b4e1357d - }, - u256 { - low: 0x3405095c8a5006c1ec188efbd080e66e, high: 0x460ba2d39a6a5f92cca74147f6be1f72 - }, - u256 { - low: 0x1775336d71eacd0549a3e80e966e1277, high: 0x2894fdbe6288e1a5cc45782198a6416d + low: 0xeb1167b367a9c3787c65c1e582e2e662, high: 0xf7c1bd874da5e709d4713d60c8a70639, }, ] .span(); let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 1 + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 2, ); assert!( res == G1Point { - x: u384 { - limb0: 0xfa1298b93ad8fbd218e7a8d2, - limb1: 0x327456da8b52f32796aacc4e, - limb2: 0xbcfaa07f75f14df342d6a0a5, - limb3: 0x79b2425a1f8fd290f4df1f4 - }, - y: u384 { - limb0: 0x8ddf19c261b1cc5d95bcf848, - limb1: 0xc23c1fc4b357df7fe96dc032, - limb2: 0xa6cf5de50e4ea0c3d70d9dc7, - limb3: 0x5f876f91dd355f7d5b84c3e - } - } + x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + }, ); } #[test] - fn test_msm_BLS12_381_9P() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - ] - .span(), - array![ - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - ] - .span(), - array![ - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - ] - .span(), - array![ - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - ] - .span(), - array![ - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - ] - .span(), - array![ - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - ] - .span() - ), - ] - .span() - ); + fn test_msm_SECP256K1_3P() { + let scalars_digits_decompositions = Option::None; let msm_hint = MSMHint { Q_low: G1Point { x: u384 { - limb0: 0x7346ae721cbc817fae4ed37e, - limb1: 0x278ae15181b08d252f07c918, - limb2: 0x70de67a5dda860147869d6c2, - limb3: 0x9ace901a0ef54bb7396253c + limb0: 0x81f93764cd87ff5af9aad87f, + limb1: 0x8aa0792747a5b8ca16b9e369, + limb2: 0xce30fe4be7b17451, + limb3: 0x0, }, y: u384 { - limb0: 0x87d3d23aefb249ec2397cd62, - limb1: 0x60cf26a4ddc3e2937c6a0fee, - limb2: 0xab02ef4edb02fb817fbf811a, - limb3: 0x1334d85431079e9e45e5f998 - } + limb0: 0x5b77703ae4639b17cfca6124, + limb1: 0x86b771c3a15eee8b1ca9feaa, + limb2: 0x5acc99b6152d28a4, + limb3: 0x0, + }, }, Q_high: G1Point { x: u384 { - limb0: 0x280e0ed2c117d0f8ffa2f53c, - limb1: 0x2179f35bdb1722397c1d7f40, - limb2: 0x3512669bf911ac3e6f870439, - limb3: 0x24bd2cd7e204425a57baf28 + limb0: 0xff8927eca139c99d7960c8ef, + limb1: 0xec91eee7a0301418e07f41fc, + limb2: 0xb49b07479d1c26aa, + limb3: 0x0, }, y: u384 { - limb0: 0x82abe18198982bdabf14e661, - limb1: 0x39bc64dd8e851ab864d0fb3a, - limb2: 0xfed652c14a18cb2bbe8ea8cd, - limb3: 0xa1cb9be58702cd996ce2b00 - } + limb0: 0xe496c28fbc13ed8a0324b632, + limb1: 0x2d5583856241be833fec7c9d, + limb2: 0xff1c723bbb39f40b, + limb3: 0x0, + }, }, Q_high_shifted: G1Point { x: u384 { - limb0: 0xdee5198e9c609883ba2e260, - limb1: 0x7bdc190ea8e0095979815f5f, - limb2: 0xa0dd0a7e09b69284ad43ef43, - limb3: 0xf0b8fbf01be81065f0311dd + limb0: 0x3efedfaf5b7ce0a80c4fa5a1, + limb1: 0x2c16205bc2efe9dcc6eefa9a, + limb2: 0x3f2cefb8efbcc695, + limb3: 0x0, }, y: u384 { - limb0: 0xe2af613d94ee1a2afc352a86, - limb1: 0x76b0de9cd8cb60ebd1be9de3, - limb2: 0x292dc7486e1a825bb2ecf091, - limb3: 0xf39a76c2219f17c75bfcca2 - } + limb0: 0xc3eeedd13fa2c621a214d57, + limb1: 0x5e42015603c2cf1a184c7bdb, + limb2: 0x8ab02685472a4433, + limb3: 0x0, + }, }, - SumDlogDivLow: FunctionFelt { + RLCSumDlogDiv: FunctionFelt { a_num: array![ u384 { - limb0: 0xd0a5a69545f3a56bbb008096, - limb1: 0xdb64cf0c01a761d8c8082972, - limb2: 0x50bfedfe427a3b16f3b8af81, - limb3: 0xb4e47ea20df356ab8b30226 - }, - u384 { - limb0: 0xbe5476b7d3b7f2c4a5d11777, - limb1: 0xfb163be94c7b7f3cab104fc, - limb2: 0x811574ce46a530a35616601a, - limb3: 0x141ce9dcbe6849e7b9680dac - }, - u384 { - limb0: 0x165bb1df91b19fc88e105e8b, - limb1: 0x1e95a4caa47713f26c3c67c0, - limb2: 0x9018f1c5696fe9f689ba3372, - limb3: 0x18bcfd698d5b693bd236e4f8 + limb0: 0x20a01cfce8a5bce328cd8cb6, + limb1: 0x611f3fb42b516f17cb0584f8, + limb2: 0x763b2c950e4c198e, + limb3: 0x0, }, u384 { - limb0: 0x7f5aa84745ad9a87299f815c, - limb1: 0xb2c6809045501562c7583ed2, - limb2: 0xcde76bf9c9d9517cfd53b323, - limb3: 0x140dd659e42349a6bad73ef2 + limb0: 0x462d15939fcd221751c6ac8b, + limb1: 0x946592683858eab6a9652826, + limb2: 0xa1544fca41ad8c11, + limb3: 0x0, }, u384 { - limb0: 0xa21d10e6cf056d51009ad8e8, - limb1: 0x31fe59207eb979103e91240d, - limb2: 0xa153d52d321f7efc19955555, - limb3: 0xae31c3943bba3f285b1726 + limb0: 0x31f0a0eca245552ecd7315f8, + limb1: 0xf2429ee89609dddcb454a01b, + limb2: 0x2c1624c1c090dd7d, + limb3: 0x0, }, u384 { - limb0: 0xbf6bd3001f9c92d9d37b4351, - limb1: 0xb803e4091c40bebaa793eab0, - limb2: 0x72c9e2c41df24309ed9259f0, - limb3: 0x2ca457072f45c33d7566f15 - }, - u384 { - limb0: 0x6fe9229baad00a9e76233e8e, - limb1: 0x51ae71b596ce072954dcf6a3, - limb2: 0xa7c8159278e3dfb8f2b5439a, - limb3: 0x3ad098f44d175966a72d211 - }, - u384 { - limb0: 0xcab9d8bfdff3516f114ce31d, - limb1: 0xb39869507b587b118f7b5463, - limb2: 0x21a5d66bb23ba5c279c2895f, - limb3: 0xd0088f51cbff34d258dd3db + limb0: 0xc709d17953074ae5eadde9bc, + limb1: 0xeb446dc59a11fc094796dd40, + limb2: 0x47408b85eea80d47, + limb3: 0x0, }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), a_den: array![ u384 { - limb0: 0xd0519133ec506d670b78825e, - limb1: 0x41cbe051be70bbba62fcd49b, - limb2: 0x3ca2ef04923d085729c9b365, - limb3: 0x175fc325230544238d03e059 - }, - u384 { - limb0: 0xed517cf43190cc229a527b9a, - limb1: 0xd580f17db79386030c677dac, - limb2: 0x33cfff84e36c53eecf5e4235, - limb3: 0x14bb3278b3cfd8118310c7b5 - }, - u384 { - limb0: 0x66b2ed87333280cf04471a82, - limb1: 0xf84976252484618217bff25f, - limb2: 0xac9be3d13017c95356baee7c, - limb3: 0xb8c91b53f966fa1b89206b9 - }, - u384 { - limb0: 0x668b3832e2a5cb4ff2bec2f2, - limb1: 0x75679b8860695ffcfbe73c04, - limb2: 0x8b27e0d8a0505309f4c5004d, - limb3: 0xfa34e92cdaa5ecc5d58837d - }, - u384 { - limb0: 0x4404a2217c88451e3ac44e1d, - limb1: 0xcc4cf0162c843460ccbe22d4, - limb2: 0x933a0326e3f13d36660f4746, - limb3: 0x1950b29a6ec1096d9a10110b + limb0: 0xb491b2471055bcbdd1dbef77, + limb1: 0xb90603fde64b1a2ce0b61eca, + limb2: 0xb4aaae5c76b88642, + limb3: 0x0, }, u384 { - limb0: 0x84e6e6c79794f2438ebdb59e, - limb1: 0x8807ab9002acdfff39de32ef, - limb2: 0xf3cee2391cbafe5d2ac251c6, - limb3: 0x112c59528c7bc1d6bda5a622 + limb0: 0x3eba2b268c80681c5c311e90, + limb1: 0xf11a024b8e0531687340bd0b, + limb2: 0xc1b2df975bb5b863, + limb3: 0x0, }, u384 { - limb0: 0x365b83ca69769b40dbd6d1cf, - limb1: 0x90a5c5a8d976ddcb0eeeff7f, - limb2: 0xb4a98584c2382285f2c0e6ca, - limb3: 0x13b048d72a21f80c3b2648ab + limb0: 0x2eaecbac827c9f309771dbcd, + limb1: 0x4f246630ea9180999a632579, + limb2: 0x39f4d03f54586bae, + limb3: 0x0, }, u384 { - limb0: 0x1fa13b590e1cdc6c2a8d1b96, - limb1: 0x95abe33ca498f23495b57637, - limb2: 0x90f59e4ba5d801cd45a81a20, - limb3: 0xc18a8e36c61632a58bfb5 + limb0: 0x4180fbf542589c18eb2d7044, + limb1: 0xced4c189fdc0356f499c8870, + limb2: 0x7b2973b1222292cb, + limb3: 0x0, }, u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), b_num: array![ u384 { - limb0: 0x27e91197e55d33a9c9edf3c2, - limb1: 0x771036d1564b926a0b89b30c, - limb2: 0xf849046ce20e6b73d8412aff, - limb3: 0x1359bafc9b0690ebb0c7b2f4 - }, - u384 { - limb0: 0xce82845ddeff65156a9b4e5e, - limb1: 0xb72636256fbbaa795e03e0ff, - limb2: 0xbb0c4642f68233abaaad1dd1, - limb3: 0xfec40983f803ecc1e9c530b + limb0: 0x875809d83e33cb3b603309aa, + limb1: 0x6ad6d4a704b31d0441fad306, + limb2: 0xe478235415e659d5, + limb3: 0x0, }, u384 { - limb0: 0x1afbfc366b5172feef9be178, - limb1: 0x97d672e950ad4253142e2039, - limb2: 0xe2e192ef5c767f35d6f8db3a, - limb3: 0xa3d63249dfa1be62a2aa46 + limb0: 0xc29722eb23a6c51f15c5b6b7, + limb1: 0xcaad40fc21df62667f2f7c9f, + limb2: 0x283d3160bb315f86, + limb3: 0x0, }, u384 { - limb0: 0xecc72ed0498dff0e1a871a5, - limb1: 0xafb0b3ae8e6774f219921cc6, - limb2: 0x4aad97375699274ca6b3fe61, - limb3: 0xdc25c534024e7f22fe799c + limb0: 0x4524bfca28d2a6c6ba96c39, + limb1: 0xa35f0c26665675ff32ee3a9c, + limb2: 0x92cb938207ec8ab2, + limb3: 0x0, }, u384 { - limb0: 0x399f6ce37ba469f6579059e, - limb1: 0x24dc13e3c99e4c579ca8398f, - limb2: 0x42e5e8bb31807d7789eaa44a, - limb3: 0x8669a4af36c2aeb1e2e61f9 + limb0: 0x151c89d4b8f7c9e45b67a274, + limb1: 0x5a281d2133f588c400ee55b1, + limb2: 0x53876cce8038fdba, + limb3: 0x0, }, u384 { - limb0: 0x97c9ed4cd67cf0add6552393, - limb1: 0x5f6fc7ffdc983fa5905b3718, - limb2: 0x81f1237e0043d0b088d68a53, - limb3: 0x4f5ea06487d85dd417fa83d - }, - u384 { - limb0: 0x3466016a17d38272cc82cb2e, - limb1: 0x3a84cc0a1b23cf9d479c8c69, - limb2: 0xdeeb741035cc4fb0a8ec3ce9, - limb3: 0xf93d1d8e53e138496f294f0 - }, - u384 { - limb0: 0xde5ecb91d342329da111c9f6, - limb1: 0xeb4c30d31eb63746469c545, - limb2: 0x8aa787f7772c935f35be2000, - limb3: 0x6711a7547ab785be989ea4e - }, - u384 { - limb0: 0xc125c8e1c081056f232be5b7, - limb1: 0xe0724c2c126df1b842d5d441, - limb2: 0xab98ec5529f602b159a30b55, - limb3: 0x16befb50c74a939cf2e72450 + limb0: 0x7ac4deddb182928226db63f1, + limb1: 0xb766e28c02e373347c52e9b0, + limb2: 0x4a7ea9b2ab26031a, + limb3: 0x0, }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), b_den: array![ u384 { - limb0: 0x2d4a44d08344b59c2de30977, - limb1: 0xd19d096415b00c7d2fef5273, - limb2: 0x28a8b58c1b8e3ecdcc979556, - limb3: 0xf7bd6d5df955cbf52bc8a42 - }, - u384 { - limb0: 0xa149f3d19846308a694aee67, - limb1: 0x20714e13fa3b359fd599f6b7, - limb2: 0x55cf78d604b6d2c62e9d099, - limb3: 0x4e9942422bfac772af027b2 - }, - u384 { - limb0: 0xe977b61d12cb033c111cbf5d, - limb1: 0x79f505f39b608fe44053c97e, - limb2: 0x6f23e26d5be7d9c86766a734, - limb3: 0x143134eac4d9d7ec972c7330 - }, - u384 { - limb0: 0x5682720048ea9aa6d6748e25, - limb1: 0xe1d7d6905c035941f695c4b1, - limb2: 0x9f5f6be0e61871f0224e7c5c, - limb3: 0x7e9c7b1ad2f0b862112f72c - }, - u384 { - limb0: 0x3814057b3bb5e09b85650962, - limb1: 0x69f167528ee07ef5c4b00903, - limb2: 0x738958c2e1541ab499871453, - limb3: 0x11f9b53988d4635ebee26d0a + limb0: 0xeffbdff172582934bd039b85, + limb1: 0xf2a1bf14c0db73a24fad78a, + limb2: 0xf0aac4873f0babd3, + limb3: 0x0, }, u384 { - limb0: 0x665288a6638949dd3f3ef0f9, - limb1: 0xe2d5ac824b24ff12a334be21, - limb2: 0xb1f4662f759de0392734fd58, - limb3: 0x23ac140c505c32dcdd5a822 + limb0: 0xb7172e0dd782d8cb8557e905, + limb1: 0x97b61010e22459db26c52b4e, + limb2: 0x4be41d2381f80abb, + limb3: 0x0, }, u384 { - limb0: 0x2bfd475d5a833853621b0a2d, - limb1: 0x826c3a48e231f4bcdb9f3a05, - limb2: 0x93eaf0657bcafa92e5396339, - limb3: 0x10613c30c9b28b2e689eaf09 + limb0: 0x46c791b791685a55241d066c, + limb1: 0x29fecb5669fa843338b60650, + limb2: 0x95b1b1bb4e6af1c4, + limb3: 0x0, }, u384 { - limb0: 0xc2898f85b4fbb6cee4f8bc75, - limb1: 0x22fc7d08bee7fd332393fbb0, - limb2: 0xd7107c557b51446b7cafafc9, - limb3: 0x1981153dfc728efa43730fe1 + limb0: 0x7f1895fbe0c20170401a1097, + limb1: 0x60d74ec3d68c9037e3fdd9dc, + limb2: 0x12ccd83465aa89d5, + limb3: 0x0, }, u384 { - limb0: 0x84e6e6c79794f2438ebdb5a2, - limb1: 0x8807ab9002acdfff39de32ef, - limb2: 0xf3cee2391cbafe5d2ac251c6, - limb3: 0x112c59528c7bc1d6bda5a622 + limb0: 0x3eba2b268c80681c5c311e97, + limb1: 0xf11a024b8e0531687340bd0b, + limb2: 0xc1b2df975bb5b863, + limb3: 0x0, }, u384 { - limb0: 0x365b83ca69769b40dbd6d1cf, - limb1: 0x90a5c5a8d976ddcb0eeeff7f, - limb2: 0xb4a98584c2382285f2c0e6ca, - limb3: 0x13b048d72a21f80c3b2648ab + limb0: 0x2eaecbac827c9f309771dbcd, + limb1: 0x4f246630ea9180999a632579, + limb2: 0x39f4d03f54586bae, + limb3: 0x0, }, u384 { - limb0: 0x1fa13b590e1cdc6c2a8d1b96, - limb1: 0x95abe33ca498f23495b57637, - limb2: 0x90f59e4ba5d801cd45a81a20, - limb3: 0xc18a8e36c61632a58bfb5 + limb0: 0x4180fbf542589c18eb2d7044, + limb1: 0xced4c189fdc0356f499c8870, + limb2: 0x7b2973b1222292cb, + limb3: 0x0, }, u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { - limb0: 0xd9df3c5e3004c67b15d3c688, - limb1: 0x97bb0cbecbddde97f835fac6, - limb2: 0xde42469273fc15e53359ce8c, - limb3: 0x153000eb18352d9899c5087a - }, - u384 { - limb0: 0x1ce663a7f7a8a1aecddcd399, - limb1: 0x8156bfc8aa9f1471038310eb, - limb2: 0xe2b58db5b62a6f51b22ad0ad, - limb3: 0x40a06bebd3cc16bf5e0e373 - }, - u384 { - limb0: 0x75a949345f2e0a764a788f3b, - limb1: 0x54f4b0987b289e0b8c094718, - limb2: 0xc038043023c8bd7d7a90bf33, - limb3: 0x12636c2823cb0c5c6ef1c3c0 - }, - u384 { - limb0: 0xff365eed458dc54b3b46893b, - limb1: 0x3d5d1eb05b2bc2e309d4e333, - limb2: 0x3f215f63f428b2cb8238ce82, - limb3: 0x4f8280c7934f46caafb63ea - }, - u384 { - limb0: 0xed9a53acaa8d0ccd0b958851, - limb1: 0xde7503fa6e85acd5cd0fea, - limb2: 0x3043cb4dfdef19da525bd136, - limb3: 0x5c160a1e5ac007541cbb1eb - }, - u384 { - limb0: 0x9835807be9def0290578dc2d, - limb1: 0xa7578ef30d38c50c0aba7d5d, - limb2: 0xf4474175aa947e4b1fb9134c, - limb3: 0x63d16371aefa7ecf85f163b - }, - u384 { - limb0: 0x6905855169db5392b7f4fa1d, - limb1: 0x839fe81ec64f38f438b37b1c, - limb2: 0x9373c1499fe61c002ba4f2aa, - limb3: 0x2c673205bdc2a180263d557 - }, - u384 { - limb0: 0x374108cbaea282598b8179aa, limb1: 0x1b5ba3d0, limb2: 0x0, limb3: 0x0 - }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - a_den: array![ - u384 { - limb0: 0x62fd1e034752033f0fc40ce, - limb1: 0xe61cd3189dc8f2d08225065a, - limb2: 0xd4d712dde8c66bc3e17b3908, - limb3: 0x59e6ec75c94f1703db561f9 - }, - u384 { - limb0: 0x6fc1cb8881bb9280ea92959d, - limb1: 0xbf50e6c85e52a38cdac07880, - limb2: 0xacb9ab05f341c1a6dcc729fd, - limb3: 0x50d2ae594ee3471454ed8d7 - }, - u384 { - limb0: 0xace3f32af90639bfcb6df167, - limb1: 0xc1ac37108d5b3a092701bf, - limb2: 0x79ca46662da92886f2b2303a, - limb3: 0x11b490add63b66f325e3bdda - }, + }, + }; + let derive_point_from_x_hint = DerivePointFromXHint { + y_last_attempt: u384 { + limb0: 0x2c77bb8f219c4f86d830378a, + limb1: 0x7762e343071b3889761f79fb, + limb2: 0x96e3952b500641, + limb3: 0x0, + }, + g_rhs_sqrt: array![ + u384 { + limb0: 0x9d1cd65376303ffbede41478, + limb1: 0xc58c82a3af69a89f7f34d76, + limb2: 0x4446aa183d69a768, + limb3: 0x0, + }, + ] + .span(), + }; + let points = array![ + G1Point { + x: u384 { + limb0: 0x393dead57bc85a6e9bb44a70, + limb1: 0x64d4b065b3ede27cf9fb9e5c, + limb2: 0xda670c8c69a8ce0a, + limb3: 0x0, + }, + y: u384 { + limb0: 0x789872895ad7121175bd78f8, + limb1: 0xc0deb0b56fb251e8fb5d0a8d, + limb2: 0x3f10d670dc3297c2, + limb3: 0x0, + }, + }, + G1Point { + x: u384 { + limb0: 0xfdfdc509f368ba4395773d3a, + limb1: 0x8de2b60b577a13d0f83b578e, + limb2: 0xc2dd970269530ba2, + limb3: 0x0, + }, + y: u384 { + limb0: 0x589fa250d638e35400c12ddf, + limb1: 0xb3aac19fcb5095808402aa7f, + limb2: 0xed6de6590d0195d1, + limb3: 0x0, + }, + }, + G1Point { + x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + }, + ] + .span(); + let scalars = array![ + u256 { low: 0x0, high: 0x0 }, + u256 { + low: 0xe443df789558867f5ba91faf7a024204, high: 0x23a7711a8133287637ebdcd9e87a1613, + }, + u256 { + low: 0x1846d424c17c627923c6612f48268673, high: 0xfcbd04c340212ef7cca5a5a19e4d6e3c, + }, + ] + .span(); + + let res = msm_g1( + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 2, + ); + assert!( + res == G1Point { + x: u384 { + limb0: 0x55909ba28af82ea934a4b85d, + limb1: 0x4bf448ca5d57fb119c843e0a, + limb2: 0x6a2275491b991ee3, + limb3: 0x0, + }, + y: u384 { + limb0: 0x5bf4bf0cefc9553422e60eb0, + limb1: 0x178d55925d3d72f44783f626, + limb2: 0xe13a21d7302f8139, + limb3: 0x0, + }, + }, + ); + } + + + #[test] + fn test_msm_SECP256K1_4P() { + let scalars_digits_decompositions = Option::None; + let msm_hint = MSMHint { + Q_low: G1Point { + x: u384 { + limb0: 0x8d0166bbf7e071295729418b, + limb1: 0xdd542b48fa7df1e7e4e9d09d, + limb2: 0xa21f38683fe17143, + limb3: 0x0, + }, + y: u384 { + limb0: 0x700402df5c88156eeeba2331, + limb1: 0x5e608cc7fd03942d78c3d40c, + limb2: 0xc8e85b1af8bfc00d, + limb3: 0x0, + }, + }, + Q_high: G1Point { + x: u384 { + limb0: 0x657faa148353381fc9ac1d0c, + limb1: 0x4a7ef201b9db61fbb9c9495d, + limb2: 0x1e87a915d7439340, + limb3: 0x0, + }, + y: u384 { + limb0: 0x70e1a8484ebeb69366e77b38, + limb1: 0xd7ccd4a605455a2bf8f36b6e, + limb2: 0x993c64100bc56c8a, + limb3: 0x0, + }, + }, + Q_high_shifted: G1Point { + x: u384 { + limb0: 0x2c45ea101d19f12cad40ffe8, + limb1: 0xbbfb500f69aac418d22f893c, + limb2: 0x75f7dcfb2d65ce2d, + limb3: 0x0, + }, + y: u384 { + limb0: 0xf94b1079627a99b6e7f182c7, + limb1: 0xd1b1c151888d2b8b4cd9ed17, + limb2: 0xac00455a2a419172, + limb3: 0x0, + }, + }, + RLCSumDlogDiv: FunctionFelt { + a_num: array![ u384 { - limb0: 0xca9509abf66ed9c9858f1983, - limb1: 0xaa5b22f768fdf4866fa38079, - limb2: 0x6e6d8a34d14743ae00fc5981, - limb3: 0x1320bb534d6c1755b06f6c9d + limb0: 0xbbfd91160f1137a819814c41, + limb1: 0xb8c72d518683f02ec6ad0801, + limb2: 0xe1c5047d3b64bfe6, + limb3: 0x0, }, u384 { - limb0: 0xba1309934b23bb632264e610, - limb1: 0x8159e8cd28fe0163236200f6, - limb2: 0x9c567bb5bf0fbc963cd6663d, - limb3: 0x1999b14482446ab30b07d7a4 + limb0: 0xab10d9e1799035d1ebba5662, + limb1: 0x2cb032fdb5301af5eb620366, + limb2: 0xfb19dd3218f7d066, + limb3: 0x0, }, u384 { - limb0: 0xf23409689841e56ab22c0939, - limb1: 0x98eec254aad6cee3a8198912, - limb2: 0x696373584ecd2e47f778cb25, - limb3: 0x11db23d8c61a177a3a1838db + limb0: 0x8cf5274d4c502946c34d070a, + limb1: 0x8cd43a3f8b49f41ec81353a4, + limb2: 0x984c68c944a658e0, + limb3: 0x0, }, u384 { - limb0: 0x3371b1e2b128daab17eb2976, - limb1: 0xc77715026295e1e11b8476f9, - limb2: 0xe6b950bfc86772d563244bfa, - limb3: 0x13b64cf610463844e8c920cc + limb0: 0x95a762e79cd07580e6967ef4, + limb1: 0x9ef7dd54a627f4698488d390, + limb2: 0x7751907e2c6d7ff6, + limb3: 0x0, }, u384 { - limb0: 0x6ad9daf869c18cf2d938f9d8, - limb1: 0x9bbcd1324b325d20489fc00f, - limb2: 0xccc19f558a6eb5a34e8aeca9, - limb3: 0x76d2edd063b71f8f87335c9 + limb0: 0x7f2d5f441b3b91eb08da060b, + limb1: 0x3e64bef215332a1f1f7b4358, + limb2: 0xc6da47f9ca6ac46d, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), - b_num: array![ - u384 { - limb0: 0xc6bba771f13d0733888b9013, - limb1: 0xf837a4c8e5246cb725bf4728, - limb2: 0xe9d6d2e97d7292c52afff, - limb3: 0x3578cdcfaad524030005a5e - }, - u384 { - limb0: 0x74f23cafa82ec3aee8dcf2c0, - limb1: 0x95ee203780fefe5cd1faa9d4, - limb2: 0x2a8aea39d344bd1a25463225, - limb3: 0xd968f3768f73b2618758454 - }, - u384 { - limb0: 0xcda9a790de1c272b2dad1f61, - limb1: 0xfbf7cb05b7b36da7c5986f17, - limb2: 0xfb77523880acf10ed37563c7, - limb3: 0x19091a8789bae1a7761edfce - }, - u384 { - limb0: 0x2490c58c1644a8d9d20a0aa9, - limb1: 0xb6d4a2b814bc6d33a061f4da, - limb2: 0x2f27e9acf24a2850b6dfb6a3, - limb3: 0xf6098af72cb179648a9b155 - }, + a_den: array![ u384 { - limb0: 0xf74866da61bb37ba0f937bc0, - limb1: 0x45da0aef5c3603a4acd716ec, - limb2: 0xcb87684466c06392ca724532, - limb3: 0x2fe97fc5c2720b60a5d13f7 + limb0: 0x22d44575d84bdeaf7dd1fd74, + limb1: 0xb65c0ede5ffdf4cb0a151934, + limb2: 0x583dc69852d07b1a, + limb3: 0x0, }, u384 { - limb0: 0x9463928fa641d2e320177f8d, - limb1: 0x4fc8860e43ff03ee6393409, - limb2: 0x950194d528b721a6af37caa5, - limb3: 0x1e1cffb18ac3884fd9bcbc3 + limb0: 0xe8b93bd973ccf034ce10e6f2, + limb1: 0x2dbf36223ec817c3a02d7a90, + limb2: 0xd9eee174bb8964ca, + limb3: 0x0, }, u384 { - limb0: 0x801b4bb976be732c7987d411, - limb1: 0x77790f4ab7504f863e43bcbf, - limb2: 0x227175ac85e01eac087fe4e9, - limb3: 0x7522666d43587b67f6d6263 + limb0: 0x8e69374db145e2b6ecf93288, + limb1: 0x34b1b6902a61ec72c01e2a5, + limb2: 0xbad632b4cbe07b88, + limb3: 0x0, }, u384 { - limb0: 0x5f7323fb055245610095a58e, - limb1: 0x269485325376d977622a3320, - limb2: 0x459652308913379f6665bbe5, - limb3: 0x1508a56337f6e749b50ce31d + limb0: 0x6c4b654436374481f9ab681b, + limb1: 0x8f1dd28caa0dd14f2276d2e8, + limb2: 0xecf4cd348a10d48b, + limb3: 0x0, }, u384 { - limb0: 0x29dda11511b1e7b6c3c75975, - limb1: 0x3a724c554eda3436d37bb4fc, - limb2: 0xaea33c7ed0d360d6b536a9e9, - limb3: 0xfa46b0b3c5d14e641ebd8e6 + limb0: 0xb9d551618829c3bcf5c67060, + limb1: 0x5a6c883b07c66955946979ab, + limb2: 0x10fcee769eec49f3, + limb3: 0x0, }, + u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - b_den: array![ - u384 { - limb0: 0x18bf4780d1d480cfc3f10338, - limb1: 0x98734c627723cb4208941968, - limb2: 0x535c4b77a319af0f85ece423, - limb3: 0x1679bb1d7253c5c0f6d587e7 - }, - u384 { - limb0: 0xbf072e2206ee4a03aa4a5674, - limb1: 0xfd439b21794a8e336b01e201, - limb2: 0xb2e6ac17cd07069b731ca7f6, - limb3: 0x1434ab9653b8d1c5153b635e - }, - u384 { - limb0: 0x50e7ccac701ae6ff2db87046, - limb1: 0x34a50b9a54d3809fe7440701, - limb2: 0x6091bfe9edb60b11e3be9b69, - limb3: 0x12d01ee2e5edce980157a7fd - }, - u384 { - limb0: 0x1c87f890e033875a0739a6d9, - limb1: 0x59f6e7135dade27de4af0845, - limb2: 0xc4aa352b007d97ed0add66d1, - limb3: 0x41e2655e5c59af81e201d4c - }, - u384 { - limb0: 0x92bdf1d6c64e800d74278331, - limb1: 0x27f53f792786d088ed987c60, - limb2: 0x10e4e67f5da385ec020c77f6, - limb3: 0x36fa84eb80044d444ff9891 - }, + b_num: array![ u384 { - limb0: 0x61b818ce2c10cf6a941f164a, - limb1: 0x2eea3da6d7d5b45c4d89260f, - limb2: 0x55750d413b77ff17f6062492, - limb3: 0xb1dea524224110d2cf1aa25 + limb0: 0xf7001257f7b133467ba3e31b, + limb1: 0x6fd1b723cde5d3e56f2b9172, + limb2: 0x31577ee1d048691b, + limb3: 0x0, }, u384 { - limb0: 0x845fd1378d154475e53cbf5a, - limb1: 0x92a4ff1e0f42999e81b15c62, - limb2: 0x3f6fc6adc57f2c74b2fe512e, - limb3: 0x13f6b96ce205449a7240f8ae + limb0: 0x295353bdfaaf49c441ba4588, + limb1: 0x7f1d9bd75873b0dab6b549f1, + limb2: 0x3925bed489cbca7a, + limb3: 0x0, }, u384 { - limb0: 0x2d275757e2bef2e8749781a, - limb1: 0x21eb88546865899c08890137, - limb2: 0x48c59f5d1fdbfc198ff7f365, - limb3: 0x34c48e428326562569d5f5f + limb0: 0x73a58136c0a534ce62aea09d, + limb1: 0xe9a45d654517882820fda93, + limb2: 0xd7abf0e4f9c5b073, + limb3: 0x0, }, u384 { - limb0: 0xf23409689841e56ab22c093d, - limb1: 0x98eec254aad6cee3a8198912, - limb2: 0x696373584ecd2e47f778cb25, - limb3: 0x11db23d8c61a177a3a1838db + limb0: 0x61ee5c016f4c07be54fb28c9, + limb1: 0xf7d2d91253e6fc0ab7f95177, + limb2: 0x67bdb9539fa57feb, + limb3: 0x0, }, u384 { - limb0: 0x3371b1e2b128daab17eb2976, - limb1: 0xc77715026295e1e11b8476f9, - limb2: 0xe6b950bfc86772d563244bfa, - limb3: 0x13b64cf610463844e8c920cc + limb0: 0x7c29625088633bf4ed063960, + limb1: 0xa64e1678630bbf9d9cf464cc, + limb2: 0x300be8294b647820, + limb3: 0x0, }, u384 { - limb0: 0x6ad9daf869c18cf2d938f9d8, - limb1: 0x9bbcd1324b325d20489fc00f, - limb2: 0xccc19f558a6eb5a34e8aeca9, - limb3: 0x76d2edd063b71f8f87335c9 + limb0: 0x1af97fc9c3a2422ba6b3b23, + limb1: 0xfc7fe2e950b56d452afaaf52, + limb2: 0x53a300c966283854, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ - u384 { - limb0: 0xb79b320d5b2d6cd7e68ec42f, - limb1: 0xb4810442dacf978f1ddf0993, - limb2: 0xcf16b118ff9f3a4cc15b1d4c, - limb3: 0xd97e184a9fab29d581de68c - }, - u384 { - limb0: 0x302ea91a3b09524e7c49fbbb, - limb1: 0xb39869507b587b118b5d4593, - limb2: 0x21a5d66bb23ba5c279c2895f, - limb3: 0xd0088f51cbff34d258dd3db - } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), - a_den: array![ + b_den: array![ u384 { - limb0: 0x2bdadd19c7900816751d1863, - limb1: 0xbdf35052ca45dca4c3288669, - limb2: 0x51a50b05836ac4d1703a9bf0, - limb3: 0x12ceaba381d3f4397d9d5d8b + limb0: 0xf3cde638ea1316ce70bdf5ce, + limb1: 0xfc8468149ff1b18d4693b06c, + limb2: 0x69b06e2a43b35dba, + limb3: 0x0, }, u384 { - limb0: 0x7b579f940f21257ec4b9d30f, - limb1: 0xc9dac63672b9ca91290d215f, - limb2: 0x6d5c3bbd61af0cc1d6ba1f42, - limb3: 0x8a9af5db9a1216e469ce6b0 + limb0: 0x5d10a2f22a9a9176a27663b3, + limb1: 0x403a7aefb778a659613e59f6, + limb2: 0xf5882a3120c1c187, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0x765897ba21e5de914fbfea50, - limb1: 0x675f67f5f67423fb082fbd01, - limb2: 0x47411da7fba0910f9da9057f, - limb3: 0x148c573a2adaab605ef42e6f + limb0: 0xe4e0831fd8e933057ad074cd, + limb1: 0x170dbfdf128ad772340d3286, + limb2: 0x1bdb62f1932360b8, + limb3: 0x0, }, u384 { - limb0: 0x477a4c42d2057dd7a5d6b42a, - limb1: 0xedbfb2310b1d108f01fab7dd, - limb2: 0xbec87f17838d3bc4e1d97083, - limb3: 0x172746e967da79a75b9295eb + limb0: 0x18e40a5353cebe435181ed17, + limb1: 0xa02cd0b7065eadf4fb54dd8f, + limb2: 0xd2ef630819464aeb, + limb3: 0x0, }, u384 { - limb0: 0xe0fce8b6374a1345417071c2, - limb1: 0x412563a764caf7cd63f334a0, - limb2: 0xe2be01a11fc0c1217471b43b, - limb3: 0x155c1dcc8e2e3290c33755c9 - } - ] - .span(), - b_den: array![ - u384 { - limb0: 0x4cc37467aa422059d4750c36, - limb1: 0x296b9c093bb5864acf4a19a7, - limb2: 0xbffcd26744bc7c3bd9e04a44, - limb3: 0x17388ab9945003b1603e26c0 + limb0: 0xfd8e75842cf14a60867dfd63, + limb1: 0xa6b6efbf7534f91aaf0fce42, + limb2: 0x50d966b313ff6a71, + limb3: 0x0, }, u384 { - limb0: 0x3c0a7e50828595fb12e7a191, - limb1: 0xc03a4638d43634208588857f, - limb2: 0x7225421e2244e78267636a4b, - limb3: 0x8a5ab8cad049f1ecf57f30b + limb0: 0x8e69374db145e2b6ecf9328f, + limb1: 0x34b1b6902a61ec72c01e2a5, + limb2: 0xbad632b4cbe07b88, + limb3: 0x0, }, - u384 { limb0: 0x4, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { - limb0: 0x2bdadd19c7900816751d1863, - limb1: 0xbdf35052ca45dca4c3288669, - limb2: 0x51a50b05836ac4d1703a9bf0, - limb3: 0x12ceaba381d3f4397d9d5d8b + limb0: 0x6c4b654436374481f9ab681b, + limb1: 0x8f1dd28caa0dd14f2276d2e8, + limb2: 0xecf4cd348a10d48b, + limb3: 0x0, }, u384 { - limb0: 0x7b579f940f21257ec4b9d30f, - limb1: 0xc9dac63672b9ca91290d215f, - limb2: 0x6d5c3bbd61af0cc1d6ba1f42, - limb3: 0x8a9af5db9a1216e469ce6b0 + limb0: 0xb9d551618829c3bcf5c67060, + limb1: 0x5a6c883b07c66955946979ab, + limb2: 0x10fcee769eec49f3, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] - .span() + .span(), }, }; let derive_point_from_x_hint = DerivePointFromXHint { y_last_attempt: u384 { - limb0: 0xd86ce38b0947a8c9ef16ec77, - limb1: 0x5388c4798822bf8f020d85e5, - limb2: 0x59f54c8f417889d865cf3818, - limb3: 0x64b86a449d7113ec3eaed88 + limb0: 0x4ebe6b4cafc8aa610f56a569, + limb1: 0xdfa776e024208427b7e8de56, + limb2: 0x6ba436ffd643ab46, + limb3: 0x0, }, g_rhs_sqrt: array![].span(), }; let points = array![ G1Point { x: u384 { - limb0: 0xe4f817e54aede0613c17035c, - limb1: 0xdff1f15010392a6da1f95a6, - limb2: 0xbed78d3d341e911d49f15454, - limb3: 0x18154782ce0913b21588066d - }, - y: u384 { - limb0: 0x3d77d61326ef5a9a5a681757, - limb1: 0xd3070afd4f0e121de7fcee60, - limb2: 0xdf9ef4088763fe611fb85858, - limb3: 0x11a612bdd0bc09562856a70 - } - }, - G1Point { - x: u384 { - limb0: 0xde4f62a6588c9401ffefbd3, - limb1: 0x9bb5f797ac6d3395b71420b5, - limb2: 0xdc39e973aaf31de52219df08, - limb3: 0x105dcc4dce3960447d21d3c1 - }, - y: u384 { - limb0: 0xaefd0d854043fd325dd3c34f, - limb1: 0x9b63c98d9a7845c52e1e2b0f, - limb2: 0x9db0be660d847ccc58358f3f, - limb3: 0x17cb6c41f0c4e1a7394ab62a - } - }, - G1Point { - x: u384 { - limb0: 0xcf86158ab69213388e721bb7, - limb1: 0x5f7812269d790797cad9aa15, - limb2: 0xb1c3622a0177001d9ed8e25f, - limb3: 0x115cf429f459884785c6ba46 + limb0: 0x393dead57bc85a6e9bb44a70, + limb1: 0x64d4b065b3ede27cf9fb9e5c, + limb2: 0xda670c8c69a8ce0a, + limb3: 0x0, }, y: u384 { - limb0: 0x1e81341e2f3f988ff115dda3, - limb1: 0xad22946489db6ee4954fa5e1, - limb2: 0x83bed94412e19d92b73cc763, - limb3: 0x2074c7bceff87d0d41edba1 - } - }, - G1Point { - x: u384 { - limb0: 0xe2955c55da59eba4b7b57d3d, - limb1: 0x1e6629b0431bce67cf28c22, - limb2: 0x1c35b7efd5b67f87221b8bfc, - limb3: 0x3e53df9e3488a9e42acd87e + limb0: 0x789872895ad7121175bd78f8, + limb1: 0xc0deb0b56fb251e8fb5d0a8d, + limb2: 0x3f10d670dc3297c2, + limb3: 0x0, }, - y: u384 { - limb0: 0x2e089afa726154d40dd12102, - limb1: 0x5391613ecf49db2bcf1cad86, - limb2: 0x84a2abb2de6b3a6e09026a50, - limb3: 0x19557a3a3c1d62a205d5dc87 - } }, G1Point { x: u384 { - limb0: 0x490bf40774926e8b279947c, - limb1: 0xeabab6aef9e9d2a4f64f4e7d, - limb2: 0x3e309fe1b1c8247abab20d7e, - limb3: 0x79c527862917f69ac58fcc4 + limb0: 0xfdfdc509f368ba4395773d3a, + limb1: 0x8de2b60b577a13d0f83b578e, + limb2: 0xc2dd970269530ba2, + limb3: 0x0, }, y: u384 { - limb0: 0xacb18f2da2b425c2ff50dafd, - limb1: 0x7623850d87e279a8a30f31ff, - limb2: 0x777564c7291d95fa80203ade, - limb3: 0x1764ce0e7fb626109b63789b - } - }, - G1Point { - x: u384 { - limb0: 0x42f2f3f4f6b9d2c2b73a361f, - limb1: 0xcd78c070c184c38b1e5716aa, - limb2: 0x72cbc24cd90da89e0e3cefe4, - limb3: 0x19485e1c46d0dce75f8b192b + limb0: 0x589fa250d638e35400c12ddf, + limb1: 0xb3aac19fcb5095808402aa7f, + limb2: 0xed6de6590d0195d1, + limb3: 0x0, }, - y: u384 { - limb0: 0xb56b3539074b3c47b3f504d9, - limb1: 0x2c229530bddedd8851b03dcc, - limb2: 0xc93eef8474c4e18d6378e7f0, - limb3: 0x173d36f17a3c9ae77a2acc25 - } }, G1Point { x: u384 { - limb0: 0x5fbf29cf20556a11621a6639, - limb1: 0xdfda5b7dbf0b226822094787, - limb2: 0x4a3b059e521b4b0445df96d5, - limb3: 0x333988c2c09f5af061cdfb + limb0: 0x2965eeb3ec1fe786a6abe874, + limb1: 0x33e2545f82bb6add02788b8e, + limb2: 0xf586bc0db335d7b8, + limb3: 0x0, }, y: u384 { - limb0: 0x13d3570be6d27d1d588b22fc, - limb1: 0x20c763e58d4df3e4990cdae9, - limb2: 0x2c3301367f400c31f4bded26, - limb3: 0x16a6c25d133fba74b4c55972 - } - }, - G1Point { - x: u384 { - limb0: 0xcb24d12438557639f52df5fd, - limb1: 0x4a6a46feebe8a88a8062bd0e, - limb2: 0x65f04211af4b168b1e25787d, - limb3: 0x17935d6f4fa575744ca46f75 + limb0: 0x155b35991489db2fdf4de620, + limb1: 0xf24ce461346a182d67eeccf0, + limb2: 0xb4122bb4b37cc7d5, + limb3: 0x0, }, - y: u384 { - limb0: 0x644f324be8a5c152625a5b8a, - limb1: 0x501e52e8c5707d7a3a77ee18, - limb2: 0x9636c463c14c5b85c2e6d3b1, - limb3: 0x1939b6f297f7b5b7fd0ac458 - } }, G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, ] .span(); let scalars = array![ u256 { low: 0x0, high: 0x0 }, u256 { - low: 0x101fbcccded733e8b421eaeb534097ca, high: 0x1c60cb179148624feac1c14f30e9c5cc - }, - u256 { - low: 0x247a8333f7b0b7d2cda8056c3d15eef7, high: 0xbacf6e172ae22448b0163c1cd9d2b7d - }, - u256 { - low: 0xe005b86051ef1922fe43c49e149818d1, high: 0x3ea0f301eece328bff7b118e820865d6 - }, - u256 { - low: 0x4a84eb038d1fd9b74d2b9deb1beb3711, high: 0x2a97919d8c25166a1ff39849b4e1357d - }, - u256 { - low: 0x3405095c8a5006c1ec188efbd080e66e, high: 0x460ba2d39a6a5f92cca74147f6be1f72 - }, - u256 { - low: 0x1775336d71eacd0549a3e80e966e1277, high: 0x2894fdbe6288e1a5cc45782198a6416d + low: 0x1846d424c17c627923c6612f48268673, high: 0xfcbd04c340212ef7cca5a5a19e4d6e3c, }, u256 { - low: 0x2f1205544a5308cc3dfabc08935ddd72, high: 0x43870ae2fcd81b5d24bace4307bf326 + low: 0xb4862b21fb97d43588561712e8e5216a, high: 0x259f4329e6f4590b9a164106cf6a659e, }, u256 { - low: 0x42930b33a81ad477fb3675b89cdeb3e6, high: 0x56e06d3d16febaa011af923d79fdef7c + low: 0x12e0c8b2bad640fb19488dec4f65d4d9, high: 0x5487ce1eaf19922ad9b8a714e61a441c, }, ] .span(); let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 1 + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 2, ); assert!( res == G1Point { x: u384 { - limb0: 0xb31592487d7e22876426e839, - limb1: 0x4a524fdd81aca5f8622f904c, - limb2: 0x8ae3eb4689f0f5e1d055233b, - limb3: 0x62cbd3128b48530dfdc285e - }, + limb0: 0x6bd8241f742b28cb66aa56f2, + limb1: 0x24d0ea2018173320c8f31889, + limb2: 0x9163c7b68d703c1e, + limb3: 0x0, + }, y: u384 { - limb0: 0xdcc4cdbef28e8119adb680cf, - limb1: 0x843c323487a93e727a2dfca8, - limb2: 0x7fba9c48ced229fcab925323, - limb3: 0x95bd645f0bb95a498173e3b - } - } + limb0: 0x50b9bcebc2b4fc80224f5146, + limb1: 0x756704c3a78f9ab2c60ececd, + limb2: 0x9ecbe5fd68546ab7, + limb3: 0x0, + }, + }, ); } #[test] - fn test_msm_BLS12_381_10P() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - ] - .span(), - array![ - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - ] - .span(), - array![ - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - ] - .span(), - array![ - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - ] - .span(), - array![ - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - ] - .span(), - array![ - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - ] - .span() - ), - ] - .span() - ); + fn test_msm_SECP256K1_10P() { + let scalars_digits_decompositions = Option::None; let msm_hint = MSMHint { Q_low: G1Point { x: u384 { - limb0: 0x625c53bcdd3dedd0838beff1, - limb1: 0xcb07e15a10d4575bc015205c, - limb2: 0x2d427eeeb94d8dc9f8735c62, - limb3: 0x172bcbe199c9d8a12b9389c7 + limb0: 0x4afd2ec2a6643712421d0683, + limb1: 0x11cef224f19a309e96679abb, + limb2: 0xcffd675843f0be43, + limb3: 0x0, }, y: u384 { - limb0: 0xeafcb601f648817e1959e01c, - limb1: 0x6bd0b06d7fd2c766caf6ec5b, - limb2: 0xe1bfd50ac038928b2571d10e, - limb3: 0x11d9e1ad8577f4db1ef6b668 - } + limb0: 0xf5ae7a1fdb6de2954712a3fd, + limb1: 0x71fe17f155aa123b146132b8, + limb2: 0xb35f7d31dd603448, + limb3: 0x0, + }, }, Q_high: G1Point { x: u384 { - limb0: 0xedb9846df215a6a54b23692b, - limb1: 0x5f8b753d0b0f6a923b86bd3, - limb2: 0xf6b0c0878664ed75179fa99c, - limb3: 0x1172f8ba63ad84e04422505a + limb0: 0x53307d00341d76bbf188df94, + limb1: 0xd91bee3612e221fb6683efa1, + limb2: 0xa0bbd123c52b1348, + limb3: 0x0, }, y: u384 { - limb0: 0x79199cd6ac1258b0434b39ec, - limb1: 0x8d390ace52602684311b314, - limb2: 0x4e38c74bd0ff18deeac5f3b0, - limb3: 0xa3e7183ee7f841987aebb01 - } + limb0: 0x2cfa22fc764c5f4080fb4f30, + limb1: 0x9cb2f17fc11214eb4fbaa9cc, + limb2: 0xef04c79d8aebbaec, + limb3: 0x0, + }, }, Q_high_shifted: G1Point { x: u384 { - limb0: 0x761b1eefd28e95ed15b39509, - limb1: 0xcb46c3daf5eb3a2666d9c59e, - limb2: 0xd5af01e7fbf829a132533307, - limb3: 0x1928ae276500d4c516350a1d + limb0: 0x670172a1e64a26ed422d2b12, + limb1: 0xd73418d6e8577e0dbcb65dea, + limb2: 0xfbcb3aac9382ad3, + limb3: 0x0, }, y: u384 { - limb0: 0xa5a5bb48ca9892a49b6ac9fa, - limb1: 0x846dfec893cc4c8bdb0e834b, - limb2: 0x3bd7ed60d4c4f329754c8a4e, - limb3: 0x802baf75f1ba64c907b58be - } + limb0: 0xb12045b32e75ce2d977fca84, + limb1: 0x98bf7be3e9b1c1c9364d70d6, + limb2: 0x87549411a3123384, + limb3: 0x0, + }, }, - SumDlogDivLow: FunctionFelt { + RLCSumDlogDiv: FunctionFelt { a_num: array![ u384 { - limb0: 0x6b25491c3e836c5bfd18ee7d, - limb1: 0x2d0537da66723ad7ad071c19, - limb2: 0x9a53eaaec238eb1c2e0af6ab, - limb3: 0x1438a666e1f9f3ec89ca01e4 - }, - u384 { - limb0: 0xfd85173965aa27750b5b31a7, - limb1: 0xd36852c053330a5e276ae99b, - limb2: 0xa1fd8a7055d7a4af693ecc87, - limb3: 0x44cc84529d9a9cf9e5c61a2 - }, - u384 { - limb0: 0x8fb193d99958dd3aea26a2a, - limb1: 0x402708faf37889d5bab4967c, - limb2: 0xf363b852bfdb044ae23f7dea, - limb3: 0x3546d5db7f39f5729a4e765 - }, - u384 { - limb0: 0x157747ee872c1b174a2c8cf7, - limb1: 0x7bdc027779255897045587e7, - limb2: 0x5bbe4ad4c795028e4ebca2bf, - limb3: 0x6f819c8e1769b92b7bc6f72 - }, - u384 { - limb0: 0xa4630f936b86028a4dda333f, - limb1: 0x6fd1bed2e57bbf9c9fce9175, - limb2: 0x4f0a9d8779177f39806d1851, - limb3: 0x98a60949ba97008a1e2507b - }, - u384 { - limb0: 0x55ff7fa091952efc1a208ba4, - limb1: 0xb7e0012a61b335caaf04530f, - limb2: 0x22b622f1d7ecef669a8d9b0f, - limb3: 0xafd4e165bbf250156b84e52 - }, - u384 { - limb0: 0x27bfb6cbc72da5a81132dde5, - limb1: 0x92e325fa66a2ed6022173d55, - limb2: 0x8b627e00e8454ff1da4620f7, - limb3: 0x100934c912a2bb30a03978cd + limb0: 0x3f1bf262f1ce488c6b7b83f1, + limb1: 0xdf56a93968937e509685107d, + limb2: 0xe6c9074b82d790d2, + limb3: 0x0, }, u384 { - limb0: 0xa16d4383b5ade5fcbe00954, - limb1: 0xab962dd26b6f228b90cf44cd, - limb2: 0x55e66b6c16dfd69264ff804b, - limb3: 0x16cc1ef0a525ff4de1ad78e0 + limb0: 0x6745de629e075a9dbbb143c7, + limb1: 0x1bd5223cd7ddff8f97707ec5, + limb2: 0xf4080bea94632658, + limb3: 0x0, }, u384 { - limb0: 0x2414053c8f131d83c3b0ef55, - limb1: 0xb39869507b587b11a2ca3848, - limb2: 0x21a5d66bb23ba5c279c2895f, - limb3: 0xd0088f51cbff34d258dd3db + limb0: 0x8d9d573ac3bc350cc0fba533, + limb1: 0x5c08ad2c1875d72c75afd5bc, + limb2: 0x55e7b6c12658a972, + limb3: 0x0, }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ u384 { - limb0: 0xe6f1c6e0cf92dec8ba8c9598, - limb1: 0x2d3d9dda55ad904201745ff3, - limb2: 0x9131f90dbf913a7b551dfdb7, - limb3: 0x258cc727e847462ed2a72d2 + limb0: 0x50a777b81c9acfed0deb2fb8, + limb1: 0x7dc595e96f3c70c015771aa7, + limb2: 0x8090ab3d5e863c74, + limb3: 0x0, }, u384 { - limb0: 0x67f454937880567680764cb7, - limb1: 0x55b236d5f8c473b1ea3b9722, - limb2: 0xd70fdd630b6257630e241ba, - limb3: 0x1153fb06dd0cb5c176378976 + limb0: 0x8be929bb240bb9ed719299fa, + limb1: 0xd85dc3d499a088cb605b3d0a, + limb2: 0x6f2371a84118a9bb, + limb3: 0x0, }, u384 { - limb0: 0x4774f7fffd56b681051bee6f, - limb1: 0x1605048e2a7259f315ecc635, - limb2: 0x3013e53b209dc19c0a835bb9, - limb3: 0xcca787a9fe6ba6a19d0c57c + limb0: 0xa3cb747845d46071f75808bc, + limb1: 0xd77e33379dd2df7b7e34339f, + limb2: 0x95a3d9117e10c1f2, + limb3: 0x0, }, u384 { - limb0: 0x2b34bf41d58641c9909d50d1, - limb1: 0x4430777d9cc6775f2748153, - limb2: 0x8c0a8b30fbafe632df3878be, - limb3: 0x54bd95614296e89aead6d82 + limb0: 0x40e63c7ef139c8fae441f7f5, + limb1: 0x2bfd369fb464b333c07ec42d, + limb2: 0x59febecdff390791, + limb3: 0x0, }, u384 { - limb0: 0x7161b23c8ed5962de376efed, - limb1: 0x9be3ec48774b22759a6b8803, - limb2: 0xbebea1b822bc6dfa03bfb3eb, - limb3: 0x189207fcee24b44154074ff4 + limb0: 0x43f9167bf64f07c3edb4c0b2, + limb1: 0xc25831fee1ab8f51ccdfb00e, + limb2: 0xcd7bc65c89ba8c75, + limb3: 0x0, }, u384 { - limb0: 0x13c96c120132b7b6803a54fe, - limb1: 0xb70dd4a665298b5c3fa5da51, - limb2: 0xc6a2b831d16ff2a3282fb2fe, - limb3: 0x1466f6ba4c29edef6b10426f + limb0: 0x247b5c58340fd28a36c048d1, + limb1: 0x6a2b823cb6bd058c30206bed, + limb2: 0x1ba2c214491482f8, + limb3: 0x0, }, u384 { - limb0: 0x10b6e35e9c873101ecf457c1, - limb1: 0xaefbe094b9a012ce342bed66, - limb2: 0xd60534beb63c793cc5533b5d, - limb3: 0x19810e7f05ed66170944ca5b + limb0: 0x627aa297724f8501733f100a, + limb1: 0x6ffe33f5cf40193a39260e79, + limb2: 0xcc48fc7ee6e6f519, + limb3: 0x0, }, u384 { - limb0: 0xb47493951ef0b456333667bf, - limb1: 0x2424fcbd761ca60ac8fd3a63, - limb2: 0xf28f642d728b82ce87b0448d, - limb3: 0x79a2ed8cf6350af42f59545 + limb0: 0x33deec6013376f6f6f816966, + limb1: 0x9b32a62cc5156dc4ba3298cf, + limb2: 0x6245391498e6e6db, + limb3: 0x0, }, - u384 { - limb0: 0x3c207e79747415599a99ef0, - limb1: 0x480ac0cebca84a9bcc5c26c6, - limb2: 0x4e1e6d56bbf24f1ee9bd8033, - limb3: 0xc5ceac6235eaee5a3bb2eb0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0xa28e49f58a2bb34472b3324, - limb1: 0x9d0cddba73db6a077d78f945, - limb2: 0x766a48d6c54414b8784861f, - limb3: 0x39929d023f62587fa93a30e - }, - u384 { - limb0: 0x884cc800b1deac8e94fba442, - limb1: 0xbf5cfdc8df2b319bf9fce41b, - limb2: 0xf2c38d18a47704e9ea1047ee, - limb3: 0xebd221f1850bf765687b114 - }, - u384 { - limb0: 0xf9db13a7701af688382f82d8, - limb1: 0x4d48000aacaf209a65f29c06, - limb2: 0xf15d440f2728257b96d6e14, - limb3: 0x20417ffda20fe614db36308 - }, - u384 { - limb0: 0x808124dbd1ae7bb3c3d01538, - limb1: 0x96c222db2b53c97b54218bce, - limb2: 0xe4a794746eca7861e92fd6c2, - limb3: 0x3f78a1f1330493ba49952b - }, - u384 { - limb0: 0x1fbd4f587ad0cbd6e6df2a45, - limb1: 0xb061ced3af6e7e6dae4ae4ce, - limb2: 0xef5441630c4b2cd243c5dc51, - limb3: 0x12db38302ffc254ad2a1eb0e - }, - u384 { - limb0: 0xdc448d4fc21451835fcd5cad, - limb1: 0xa4fe59bad9730a5ea4288d09, - limb2: 0xab6847cc4f0768e21dfcd1e9, - limb3: 0x17c42aa0f691d0730a141633 - }, - u384 { - limb0: 0xaef6e12650eabb49ac49a223, - limb1: 0x83af856e529b85b412ce6090, - limb2: 0x8784f6cc39b958dbb3449d3e, - limb3: 0x800be802125010958b85adf - }, - u384 { - limb0: 0xae49852a9348b268406870e7, - limb1: 0xe196070b05613f9b1d3a08bb, - limb2: 0xd2c9bc2d71ec2ec709eaba79, - limb3: 0x6af1782e97e746e03ca2869 - }, - u384 { - limb0: 0xdee9b0b67ff7f9aa1829f040, - limb1: 0xb5922d8b57fee2efffa1b1fc, - limb2: 0x6788ba8217db1ebf1d66ca51, - limb3: 0x125197ad605e6d977c487b59 - }, - u384 { - limb0: 0xc9eace376ef1c93ba82190fb, - limb1: 0x94d0ff4c403968723f9cddbb, - limb2: 0x4c546eecf16c3abf85eb394d, - limb3: 0x757dda024385ae560bd5d30 - }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - b_den: array![ - u384 { - limb0: 0x9bc71b833e4b7b22ea325660, - limb1: 0xb4f6776956b6410805d17fcf, - limb2: 0x44c7e436fe44e9ed5477f6dc, - limb3: 0x96331c9fa11d18bb4a9cb4a - }, + a_den: array![ u384 { - limb0: 0x3d29524e6e0359da01d9dd86, - limb1: 0x88673615f5afe27f6b965c8c, - limb2: 0xaf2c9da9f9e9fecedc7ee16a, - limb3: 0x114dc847013309d142a6d66b + limb0: 0xf64ffe172948329e2fcbc603, + limb1: 0xdf8d87b2544b6a2850611151, + limb2: 0x9e210b6545f4c3d1, + limb3: 0x0, }, u384 { - limb0: 0x6c7fe0003b5bda0414700f11, - limb1: 0xf0e33f97b31871a8390718d6, - limb2: 0x7d03e8151dffbaeb36885c24, - limb3: 0x1928d000461b030e1c276e3a + limb0: 0xc9fad7123b7ae4f05cf228d5, + limb1: 0x604e4521dbaed4af0fa8a1c5, + limb2: 0x668676e80e912153, + limb3: 0x0, }, u384 { - limb0: 0x93c4c3e825abe5eefd01d8dc, - limb1: 0x3e49bbb9bcdf2e19cb466540, - limb2: 0xc15c25d1ae50d346d1ffe0af, - limb3: 0x178831cacf2a2e89a7e028dc + limb0: 0x2a38b63293c292a550534ec, + limb1: 0x9b8a3cdc59b3ca87397e5909, + limb2: 0x333ea6225ba1f71b, + limb3: 0x0, }, u384 { - limb0: 0x682b1d86cbdaaf2e0e5361bf, - limb1: 0x287e9d73fb2d24f7d939b735, - limb2: 0xfb3cd15929caaf4a71ccc66b, - limb3: 0xb97d351af9fec5d99e62a6f + limb0: 0xf72296c8c78689d8c97ffc5e, + limb1: 0xfdf4dfaf216e35dafb8bdbe3, + limb2: 0x28ec546fdc1d5da1, + limb3: 0x0, }, u384 { - limb0: 0x829ea848d424955b06064266, - limb1: 0xbca9df44db05a4f7b8802f7d, - limb2: 0x80bbbf7c38f7a999d0b2ef75, - limb3: 0x10631da5240ebe58e4bed818 + limb0: 0xbb968a55b7dc197bce6335f5, + limb1: 0xf9cd6947f7ffdf493ec49f29, + limb2: 0x861a8b32c623bcd4, + limb3: 0x0, }, u384 { - limb0: 0xa8c04cbd5fa705d144700529, - limb1: 0x236f3f46e588da1e487436f0, - limb2: 0xd6f0aace42c49d1226711b37, - limb3: 0x34bcba945df6c7ca751f818 + limb0: 0xaf4b95ae1714c6e4c09bbb68, + limb1: 0xd3b9d743d285fbd3807f4f1c, + limb2: 0x7ecc3066d3efb1a7, + limb3: 0x0, }, u384 { - limb0: 0xe08c0091969a6786b0513993, - limb1: 0x5e1639fc625bce5881087194, - limb2: 0x264d8bf23fbe22a3b76a0a1, - limb3: 0x2f89f8bb8b229c9c9a655a0 + limb0: 0x2d6b9c319d4168de03b743ce, + limb1: 0x283fd75def839ca4307bcf7f, + limb2: 0x318e2135071739ee, + limb3: 0x0, }, u384 { - limb0: 0xc0298bb0ea51bd0ce6e17b68, - limb1: 0x8d7329f6a68c98333be756b, - limb2: 0x788513ddf84a9814e81b8e4d, - limb3: 0x11d87dfe66a4dc5163c5adc4 + limb0: 0xda0f6ae3be484183e704928c, + limb1: 0x86d730e781f413256c35efff, + limb2: 0x1b4509904e96af9b, + limb3: 0x0, }, u384 { - limb0: 0x10b6e35e9c873101ecf457c5, - limb1: 0xaefbe094b9a012ce342bed66, - limb2: 0xd60534beb63c793cc5533b5d, - limb3: 0x19810e7f05ed66170944ca5b + limb0: 0x3143a9241e38b62956ebb29a, + limb1: 0xc0480770d8e97de2bc76377d, + limb2: 0x2defefe2f3397dc1, + limb3: 0x0, }, u384 { - limb0: 0xb47493951ef0b456333667bf, - limb1: 0x2424fcbd761ca60ac8fd3a63, - limb2: 0xf28f642d728b82ce87b0448d, - limb3: 0x79a2ed8cf6350af42f59545 + limb0: 0xc359d0b08a20fd2ce8979f78, + limb1: 0x731e866b7c42217f5209cf41, + limb2: 0x59fe76d6ea2fe21c, + limb3: 0x0, }, u384 { - limb0: 0x3c207e79747415599a99ef0, - limb1: 0x480ac0cebca84a9bcc5c26c6, - limb2: 0x4e1e6d56bbf24f1ee9bd8033, - limb3: 0xc5ceac6235eaee5a3bb2eb0 + limb0: 0xbdee89e23d2b145ee8340c70, + limb1: 0x4aea390f4f28f12be406cd17, + limb2: 0xb49c9089b47d2e01, + limb3: 0x0, }, u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x54d59a9c6fc092d9915082b2, - limb1: 0xfab18b008dcbf75b2ede81bb, - limb2: 0xfd960d4e515851eb2f0a277f, - limb3: 0x6be33a753f70c807bf714b7 - }, - u384 { - limb0: 0x862520a40e18e772a6b4d737, - limb1: 0x323c6da74add6ac3c076c631, - limb2: 0x95babdf5a5844a79f306dc04, - limb3: 0x735d1db36b1693015e3fb63 - }, - u384 { - limb0: 0x7da447818696df77e92ecf24, - limb1: 0x26ebf1800f6f8f784fd45e15, - limb2: 0x46e39d7424433ee2eab9d33, - limb3: 0x16852a247b0c3b0bad078484 - }, - u384 { - limb0: 0xab362246d5b3cedac74f581f, - limb1: 0xa7a4915c6aceea845d8c342, - limb2: 0x8efe76a16a24f8e62c0b9b82, - limb3: 0x69779612c0917401715cca5 - }, - u384 { - limb0: 0x23127c166dd2edc57d532693, - limb1: 0x8c79e9e35050de214a74473f, - limb2: 0x6896b4079e1eaba2c7c657e4, - limb3: 0x396fbb1a709b2bf4018f19 - }, - u384 { - limb0: 0x8fcc5c67f0950e96588faa42, - limb1: 0x79f59f54bd947e13968d4179, - limb2: 0xb598d99d530aa85bb77a5365, - limb3: 0xf3b511a948fc7029014e7c1 - }, - u384 { - limb0: 0x229afaa5a70a0a2ec07c4092, - limb1: 0x757e13d86c830f9b878ab8e1, - limb2: 0xd65a749710833f15e6a0fe7, - limb3: 0x636085bc53cf2cec115c4e5 - }, - u384 { - limb0: 0xdb960aadec46f460401cc472, - limb1: 0xe5a884b1b8ce0cf624d42a65, - limb2: 0xb1d03d48bc2b4014cec8fd21, - limb3: 0x11b82afb254c0dd0ccc5a1e2 - }, - u384 { - limb0: 0xc0987cc2fb46bf3c5e5d5fa1, limb1: 0x59a196e0, limb2: 0x0, limb3: 0x0 - }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - a_den: array![ - u384 { - limb0: 0x8a2b42f89e6f89af71097330, - limb1: 0x168a2fa9ae6b77f5cdf81701, - limb2: 0x7dba9894e07e81d5f71c20c1, - limb3: 0x14e32f6757ecfca91a63f155 - }, - u384 { - limb0: 0x33d77dfd665a89bb0fc431d2, - limb1: 0xcb75428b35fd87d36cd2b6d, - limb2: 0xaeb03865022803f636767059, - limb3: 0x84856e96dee484a8650fa23 - }, - u384 { - limb0: 0xb3b44dbefb000f57b381f1a2, - limb1: 0x2f6821c1fa52236a117d7a13, - limb2: 0x80c9afdfa9c34b6d85c01529, - limb3: 0x3b77a0991eb970694a9a1fa - }, - u384 { - limb0: 0x2f815107f8ded68f2e24f15e, - limb1: 0x7c15b4683c162bc21c466d9a, - limb2: 0xfafa99d8f517644e2c742151, - limb3: 0x101a26dfa4b17749698bc180 - }, - u384 { - limb0: 0x49b2d22a610d3af49bca5435, - limb1: 0x51aaa3802e40c777f87e4f2e, - limb2: 0x3d0717b1bc4fa02aad1b91, - limb3: 0x6e0a66e468bc4cb8bda85dd - }, - u384 { - limb0: 0x1e9c7c5a9df1203f9204aa13, - limb1: 0xc1116de67e0ff86b103f7799, - limb2: 0x12f83dccef7133519fa52af0, - limb3: 0x19a3662cedc185fd0a83e7e6 - }, - u384 { - limb0: 0x78dc3837483cf9d540d776e3, - limb1: 0xa49c0ec82b2010d373e30477, - limb2: 0x8ae8f68997e5995b3079f63d, - limb3: 0x63dbd2f5233e735f44a7b4d - }, + b_num: array![ u384 { - limb0: 0xf5f448c921bb27f1935c8147, - limb1: 0x9b04bd8c36156758c4e91802, - limb2: 0x4f4cc814da11405a9046336d, - limb3: 0xb31c04ac74bbc14af9f3d07 + limb0: 0x3f5cf6f7b7ca75386e2797e4, + limb1: 0xe8ece87f0d37f65b91f870f2, + limb2: 0xa4f50c6382ad9682, + limb3: 0x0, }, u384 { - limb0: 0x7864d736826f8880d21225b6, - limb1: 0xd19ead4fccbab4e68b8db4e, - limb2: 0x84b02bbdeedaef73ca9132fa, - limb3: 0x1215bded597b02a68b2c681c + limb0: 0x4295c3f21d65991d286b4bd1, + limb1: 0x1c96777b918eb189e9205c19, + limb2: 0x395b2bafc2948923, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0x3bb5b7287519130ba88557de, - limb1: 0x216415bc8a2efb3d3df6d4ec, - limb2: 0x1acf541e9f360f5fe3e4b262, - limb3: 0xc21e216cf1c77ab1c48ab33 + limb0: 0x83499a1d14f3c23073522f5, + limb1: 0xa22fb01cf34b0cee20a8cbd4, + limb2: 0x22d0b405df12e488, + limb3: 0x0, }, u384 { - limb0: 0xe76dbb86ab1efbf822ba5f2e, - limb1: 0x91dfe0709f6f821d9d8c8365, - limb2: 0xe538e2626194647f8d46f5be, - limb3: 0xd0512fe4ca61ab329badfe3 + limb0: 0x5917a4f0784060456ea3b0ce, + limb1: 0x2312d057a791285ae79c22ca, + limb2: 0xd19c511d69762f5e, + limb3: 0x0, }, u384 { - limb0: 0xe99a0bffb387d6b20178564, - limb1: 0xb82615a27c78e9994c7ebb28, - limb2: 0x77ca7d52ad136d7d167d3fbe, - limb3: 0x15d1d1a5f046c85cf038228 + limb0: 0x8dbac454fb152e5c809d163e, + limb1: 0xe01590a5c01df50842cb7f1, + limb2: 0x7a7a7b86711cbc21, + limb3: 0x0, }, u384 { - limb0: 0xa975da4b7d48064ddcb8af3f, - limb1: 0xdfd037fa0ce1ef7beff0d848, - limb2: 0xb7aff4a79408d5eb09e2ef14, - limb3: 0x14aedb28dbb75fa26b3f8b74 + limb0: 0x48e829943911323e2d3cff60, + limb1: 0xf0be3520ac7110ceeded6464, + limb2: 0xc89502c5cf180910, + limb3: 0x0, }, u384 { - limb0: 0xe38e7e9f4ccb4bf03a4fb05a, - limb1: 0x5914c2929079ab865447b734, - limb2: 0xe8f40fc175a8d54b958faadf, - limb3: 0xadd2a9bd533d152d4523959 + limb0: 0xef8b4de36559336799d2974d, + limb1: 0x84fc814b5e9592ed2799bc89, + limb2: 0xad85084575a3521b, + limb3: 0x0, }, u384 { - limb0: 0x9c80b5a76dcd871f6aae6726, - limb1: 0xe0e52df134282611f4a34d5a, - limb2: 0x1246a37107a2fbc7d0429a2, - limb3: 0xeb43e98b1abb2a688cb52d8 + limb0: 0x365fbe490b5fba569fd512a3, + limb1: 0xd3ba4fafe794228fd6ac8cf7, + limb2: 0xf5dd29a6f122891f, + limb3: 0x0, }, u384 { - limb0: 0x1865e9e79bd35cbd34915c8c, - limb1: 0x43f11d0293e838e6ac58beeb, - limb2: 0x3eac4f4e5bd1255da17107c, - limb3: 0xbe590ecdc7c44f37e3b1359 + limb0: 0x8c8fce6ec0c08a83f11e1e54, + limb1: 0xe2231561434a12b19400aef6, + limb2: 0xb9401ac6cb0b0d8e, + limb3: 0x0, }, u384 { - limb0: 0x4e0b352532c6f91ea0245c50, - limb1: 0x6cda4fc539a7f5bfed368891, - limb2: 0x280ccb657e9592fb82c03189, - limb3: 0x40fc233a66f52a9d5088efe + limb0: 0x643d21afcabdcd113ac22ab7, + limb1: 0x5731be1e8cf43ae4b045362a, + limb2: 0xb92e9eb89a3617e8, + limb3: 0x0, }, u384 { - limb0: 0xb3d5c2e98f7c625516e11bb7, - limb1: 0x8144fcbde776909802e49f80, - limb2: 0x4e290a74035d4163aecec8bb, - limb3: 0x2884ed0bd2c2c5f54579009 + limb0: 0xc8abfeb28cf147831ffe94a6, + limb1: 0x67d152c1448befba6838de7e, + limb2: 0xf51b75bc08cbb50, + limb3: 0x0, }, u384 { - limb0: 0x994cbc9883c390390d23a132, - limb1: 0xff32481198fbad0130c69, - limb2: 0xa7f3beaa6ac3073921805999, - limb3: 0xf551ec0ec68de951a712d08 + limb0: 0xe6abd077702fff54ff3504f5, + limb1: 0xfaf28084044493a2b55cee9, + limb2: 0xb18c2c80a403fbc6, + limb3: 0x0, }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), b_den: array![ u384 { - limb0: 0x14b10be34bc126bdc426ccbf, - limb1: 0x249646c3d59afd6adbdc5c0a, - limb2: 0x2d075bcd549424c901e14ac6, - limb3: 0x58987deb3343ed5883cce33 - }, - u384 { - limb0: 0x1e09f7f5df6b26ec3f111c9d, - limb1: 0xcbac7e01d6ce6bd0bc88adb6, - limb2: 0x777534bca428c453e654aea4, - limb3: 0x72049bb7e393a8fce2840d8 - }, - u384 { - limb0: 0xced136fbec003d5ece07c688, - limb1: 0xbda08707e9488da845f5e84e, - limb2: 0x326bf7ea70d2db6170054a4, - limb3: 0xedde82647ae5c1a52a687ea - }, - u384 { - limb0: 0x3434871953ede3ec299e38a7, - limb1: 0xd14e8967bab14491e30dcd6e, - limb2: 0x9fc1f9728776307fce5d6dc8, - limb3: 0x74895273e3325ffdf400036 + limb0: 0xbc2ff2a220f962574e927959, + limb1: 0x1cdeb5e04e0fe71a32a7793d, + limb2: 0x52e74fc4e9b15abd, + limb3: 0x0, }, u384 { - limb0: 0xa94ec6a73090758d7eedd7fb, - limb1: 0xec310f8875b20038fa1a6827, - limb2: 0x6c58a7ec64a1f6f1eda5cbde, - limb3: 0x9c9deb84e9d74de6a9f69e1 + limb0: 0x85dbe17fa05c42948a9f2575, + limb1: 0xa223e3ed01c7d0c96d9c6c68, + limb2: 0xcdad405865f7e947, + limb3: 0x0, }, u384 { - limb0: 0x68d63f2a8ac89055fb95ef42, - limb1: 0x96ea8ed817ce2c85d7cb587d, - limb2: 0xbf7bf3b5d5aaeaa0364075ee, - limb3: 0x240cb1462f21491924aa2b9 + limb0: 0x1278cfb620a5202953247645, + limb1: 0x40c7aa0673ea89b292746f3f, + limb2: 0x66b68af0816dc1c1, + limb3: 0x0, }, u384 { - limb0: 0x619e31e55fd3bde43183223f, - limb1: 0xa7551ce7f1e578ebcd267f79, - limb2: 0xe352c727f0367e35fad6e788, - limb3: 0xf1009b2b4012d86ef9a0700 + limb0: 0xb8421d949df5f78cb24bb066, + limb1: 0xd13fa57c3e4ee3253134148d, + limb2: 0xbc975a744ac2533f, + limb3: 0x0, }, u384 { - limb0: 0x702ff54f2dfadabae93caea6, - limb1: 0x568cc7100fe56eb6ed76af3b, - limb2: 0xfa247a93b58a05857840d688, - limb3: 0x19a695af2a3ace83ff3bd243 + limb0: 0xeb189f6a427f975701a8b1cc, + limb1: 0x34ec2619a3adefafc708fbe9, + limb2: 0x1140454b798b4b26, + limb3: 0x0, }, u384 { - limb0: 0xec33d93579b24242da4e40ea, - limb1: 0xbfe6a1578d2bc338571ee4d6, - limb2: 0x5bd5e63e7d770e91ef5abe9a, - limb3: 0x13f72823a72ddcc855e29135 + limb0: 0xcdb4a325cacd996e99476037, + limb1: 0x659f1fb71b5dad4fbcf982d1, + limb2: 0xaad3f8f2272fd2b2, + limb3: 0x0, }, u384 { - limb0: 0x78dc3837483cf9d540d776e7, - limb1: 0xa49c0ec82b2010d373e30477, - limb2: 0x8ae8f68997e5995b3079f63d, - limb3: 0x63dbd2f5233e735f44a7b4d + limb0: 0x3513dc24145067ebe382dad1, + limb1: 0x17b3c340ae077e584eee885e, + limb2: 0x83cf3ce30dbff325, + limb3: 0x0, }, u384 { - limb0: 0xf5f448c921bb27f1935c8147, - limb1: 0x9b04bd8c36156758c4e91802, - limb2: 0x4f4cc814da11405a9046336d, - limb3: 0xb31c04ac74bbc14af9f3d07 + limb0: 0xb202768febd5e4181f833b9a, + limb1: 0xa9afbf9c85ac654f343e2f28, + limb2: 0x44fdce24ec428a15, + limb3: 0x0, }, u384 { - limb0: 0x7864d736826f8880d21225b6, - limb1: 0xd19ead4fccbab4e68b8db4e, - limb2: 0x84b02bbdeedaef73ca9132fa, - limb3: 0x1215bded597b02a68b2c681c + limb0: 0x82535aaeaa1c207210da16f, + limb1: 0x15b20b59c0e86d06a7bad389, + limb2: 0xc05bbf9b7a8221f4, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ u384 { - limb0: 0x2cde7d36da5a585c7d3be1c, - limb1: 0x73d0597fe710990efaa9432d, - limb2: 0x48eae0805bef7af54a2b40b7, - limb3: 0x22451c3237c0cc4429b9db1 + limb0: 0x84e051056428551a5fdca7b8, + limb1: 0x4e15844e5552871f6ec07a4b, + limb2: 0xa78361156e6668b5, + limb3: 0x0, }, u384 { - limb0: 0x302ea91a3b09524e7c49fbbb, - limb1: 0xb39869507b587b118b5d4593, - limb2: 0x21a5d66bb23ba5c279c2895f, - limb3: 0xd0088f51cbff34d258dd3db - } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x59017e662273fb1a0de0afed, - limb1: 0x4b09ce5bf3b8756ed1eb5e9f, - limb2: 0x72d14a209295ebb24a45fe73, - limb3: 0x5fe6a6e1625e1ff9768945 + limb0: 0xb9530136a75d0214070fcb1, + limb1: 0x933ec052ac12ab58a8658ba6, + limb2: 0xb8cfd543e02f1a4, + limb3: 0x0, }, u384 { - limb0: 0xfed35ca1af59c36d9f285722, - limb1: 0xfd222a1326c5bb78b2c5ce8a, - limb2: 0xba37973f46917ff39d1748da, - limb3: 0x9667cf2aa51738f3bdff4f3 + limb0: 0x3143a9241e38b62956ebb2a1, + limb1: 0xc0480770d8e97de2bc76377d, + limb2: 0x2defefe2f3397dc1, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0x674edd855993f60586b614e0, - limb1: 0x74bdc5cb2caecb2e2205f797, - limb2: 0xa69852a27019b1eacc3724f, - limb3: 0x61f97270c77f921278dda35 + limb0: 0xc359d0b08a20fd2ce8979f78, + limb1: 0x731e866b7c42217f5209cf41, + limb2: 0x59fe76d6ea2fe21c, + limb3: 0x0, }, u384 { - limb0: 0x8dacc380f9e46590d3aafc6e, - limb1: 0xe05f6b9a495d897292f21454, - limb2: 0xc4f3c2d5957f5cb24e54437, - limb3: 0xa68173ce15315f4c99c502d + limb0: 0xbdee89e23d2b145ee8340c70, + limb1: 0x4aea390f4f28f12be406cd17, + limb2: 0xb49c9089b47d2e01, + limb3: 0x0, }, - u384 { - limb0: 0xa94372f0abde1590d32d6c41, - limb1: 0xe700bcf3cd2b8db1c2a01650, - limb2: 0x24a67b3cc56b327f4d770907, - limb3: 0x107b8e1800f3f5409c1b5b96 - } + u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), - b_den: array![ - u384 { - limb0: 0x6405f99889cfec683782bfb4, - limb1: 0x2c27396fcee1d5bb47ad7a7d, - limb2: 0xcb4528824a57aec92917f9cd, - limb3: 0x17f9a9b8589787fe5da2515 - }, - u384 { - limb0: 0x49f9728703680db67ca1b1dd, - limb1: 0x8d57d5aba465f7beac6b3a2d, - limb2: 0xa592b025b5ceb44980d810ac, - limb3: 0xb98e1e06fc5e7a2a4642c18 - }, - u384 { limb0: 0x4, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { - limb0: 0x59017e662273fb1a0de0afed, - limb1: 0x4b09ce5bf3b8756ed1eb5e9f, - limb2: 0x72d14a209295ebb24a45fe73, - limb3: 0x5fe6a6e1625e1ff9768945 - }, - u384 { - limb0: 0xfed35ca1af59c36d9f285722, - limb1: 0xfd222a1326c5bb78b2c5ce8a, - limb2: 0xba37973f46917ff39d1748da, - limb3: 0x9667cf2aa51738f3bdff4f3 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() }, }; let derive_point_from_x_hint = DerivePointFromXHint { y_last_attempt: u384 { - limb0: 0x2d5d8b6c75c43a533d9cde4a, - limb1: 0xb658f28e13f15571e7797b82, - limb2: 0xb2a72b540969e37ceb956dc2, - limb3: 0x96afc5be6b18fcbb65e5a39 + limb0: 0x44da36e3bd84a51984e90ce3, + limb1: 0xd44147e23c7cb8155c9deb4d, + limb2: 0x65b13a4678620b98, + limb3: 0x0, }, - g_rhs_sqrt: array![ - u384 { - limb0: 0xdc508bc9bb1eda8e768c3f9a, - limb1: 0xc5de9b31a826e7f51019dc72, - limb2: 0x80bdc6a367271e5941835e3e, - limb3: 0x5a967044175bf27e03552b4 - } - ] - .span(), + g_rhs_sqrt: array![].span(), }; let points = array![ G1Point { x: u384 { - limb0: 0xe4f817e54aede0613c17035c, - limb1: 0xdff1f15010392a6da1f95a6, - limb2: 0xbed78d3d341e911d49f15454, - limb3: 0x18154782ce0913b21588066d + limb0: 0x393dead57bc85a6e9bb44a70, + limb1: 0x64d4b065b3ede27cf9fb9e5c, + limb2: 0xda670c8c69a8ce0a, + limb3: 0x0, }, y: u384 { - limb0: 0x3d77d61326ef5a9a5a681757, - limb1: 0xd3070afd4f0e121de7fcee60, - limb2: 0xdf9ef4088763fe611fb85858, - limb3: 0x11a612bdd0bc09562856a70 - } + limb0: 0x789872895ad7121175bd78f8, + limb1: 0xc0deb0b56fb251e8fb5d0a8d, + limb2: 0x3f10d670dc3297c2, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0xde4f62a6588c9401ffefbd3, - limb1: 0x9bb5f797ac6d3395b71420b5, - limb2: 0xdc39e973aaf31de52219df08, - limb3: 0x105dcc4dce3960447d21d3c1 + limb0: 0xfdfdc509f368ba4395773d3a, + limb1: 0x8de2b60b577a13d0f83b578e, + limb2: 0xc2dd970269530ba2, + limb3: 0x0, }, y: u384 { - limb0: 0xaefd0d854043fd325dd3c34f, - limb1: 0x9b63c98d9a7845c52e1e2b0f, - limb2: 0x9db0be660d847ccc58358f3f, - limb3: 0x17cb6c41f0c4e1a7394ab62a - } + limb0: 0x589fa250d638e35400c12ddf, + limb1: 0xb3aac19fcb5095808402aa7f, + limb2: 0xed6de6590d0195d1, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0xcf86158ab69213388e721bb7, - limb1: 0x5f7812269d790797cad9aa15, - limb2: 0xb1c3622a0177001d9ed8e25f, - limb3: 0x115cf429f459884785c6ba46 + limb0: 0x2965eeb3ec1fe786a6abe874, + limb1: 0x33e2545f82bb6add02788b8e, + limb2: 0xf586bc0db335d7b8, + limb3: 0x0, }, y: u384 { - limb0: 0x1e81341e2f3f988ff115dda3, - limb1: 0xad22946489db6ee4954fa5e1, - limb2: 0x83bed94412e19d92b73cc763, - limb3: 0x2074c7bceff87d0d41edba1 - } + limb0: 0x155b35991489db2fdf4de620, + limb1: 0xf24ce461346a182d67eeccf0, + limb2: 0xb4122bb4b37cc7d5, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0xe2955c55da59eba4b7b57d3d, - limb1: 0x1e6629b0431bce67cf28c22, - limb2: 0x1c35b7efd5b67f87221b8bfc, - limb3: 0x3e53df9e3488a9e42acd87e + limb0: 0x12815740835b12f70b96c66f, + limb1: 0xbfa76a8b80aec9f2e31c40cc, + limb2: 0xcd8a26d17d33c7c1, + limb3: 0x0, }, y: u384 { - limb0: 0x2e089afa726154d40dd12102, - limb1: 0x5391613ecf49db2bcf1cad86, - limb2: 0x84a2abb2de6b3a6e09026a50, - limb3: 0x19557a3a3c1d62a205d5dc87 - } + limb0: 0x9a8f496f09402b8fd6beb89b, + limb1: 0x28e48918dad2123d7f202bef, + limb2: 0xcdd11b6ffb3f8614, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0x490bf40774926e8b279947c, - limb1: 0xeabab6aef9e9d2a4f64f4e7d, - limb2: 0x3e309fe1b1c8247abab20d7e, - limb3: 0x79c527862917f69ac58fcc4 + limb0: 0xb5076be8537cff2a42c6db68, + limb1: 0x1066d40cbd01a3752e4e069c, + limb2: 0x123ec2fd302cb0f9, + limb3: 0x0, }, y: u384 { - limb0: 0xacb18f2da2b425c2ff50dafd, - limb1: 0x7623850d87e279a8a30f31ff, - limb2: 0x777564c7291d95fa80203ade, - limb3: 0x1764ce0e7fb626109b63789b - } + limb0: 0xc85f5e5efdf415f8081bf53f, + limb1: 0xadc5010e9d9ac6c64000d33d, + limb2: 0xf81314011d8852e4, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0x42f2f3f4f6b9d2c2b73a361f, - limb1: 0xcd78c070c184c38b1e5716aa, - limb2: 0x72cbc24cd90da89e0e3cefe4, - limb3: 0x19485e1c46d0dce75f8b192b + limb0: 0xd5915098d3d2001310b0b935, + limb1: 0x88bb4507ebf1be82cfba2397, + limb2: 0x8a463f1c00ce885f, + limb3: 0x0, }, y: u384 { - limb0: 0xb56b3539074b3c47b3f504d9, - limb1: 0x2c229530bddedd8851b03dcc, - limb2: 0xc93eef8474c4e18d6378e7f0, - limb3: 0x173d36f17a3c9ae77a2acc25 - } + limb0: 0x414858f8a83f9d4498890137, + limb1: 0xa09c4658c47ace74c42cdb60, + limb2: 0x8aaf300ff3ab7d98, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0x5fbf29cf20556a11621a6639, - limb1: 0xdfda5b7dbf0b226822094787, - limb2: 0x4a3b059e521b4b0445df96d5, - limb3: 0x333988c2c09f5af061cdfb + limb0: 0x1772eb803ddc8a82e23b1c05, + limb1: 0xc26baeb89b03fd69eb64b337, + limb2: 0x4ea7131b2d873a45, + limb3: 0x0, }, y: u384 { - limb0: 0x13d3570be6d27d1d588b22fc, - limb1: 0x20c763e58d4df3e4990cdae9, - limb2: 0x2c3301367f400c31f4bded26, - limb3: 0x16a6c25d133fba74b4c55972 - } + limb0: 0xc9d16330db15efd90235eed9, + limb1: 0x1b586ef360673d36baa16189, + limb2: 0xee652d2b848ad111, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0xcb24d12438557639f52df5fd, - limb1: 0x4a6a46feebe8a88a8062bd0e, - limb2: 0x65f04211af4b168b1e25787d, - limb3: 0x17935d6f4fa575744ca46f75 + limb0: 0x68f9e7942638253f3b596f1f, + limb1: 0xb37e6153d9accd97a344f384, + limb2: 0xda48eae9ff614551, + limb3: 0x0, }, y: u384 { - limb0: 0x644f324be8a5c152625a5b8a, - limb1: 0x501e52e8c5707d7a3a77ee18, - limb2: 0x9636c463c14c5b85c2e6d3b1, - limb3: 0x1939b6f297f7b5b7fd0ac458 - } + limb0: 0xc58be8ed857035b34f51c620, + limb1: 0x3b14ed53116cb7c1db000006, + limb2: 0x7dfa292fe99b77dd, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0xde1d8e2670532ec5bba60ade, - limb1: 0x1154f5064f7dd38656f7f82b, - limb2: 0xc9bec68372b7d07dcf66270c, - limb3: 0x315ced00b3153219bbd430 + limb0: 0xf7f7bd2513c1b31de932bbd2, + limb1: 0x627e2fa74b7ac891f7d555c7, + limb2: 0x7f8a094f818e7192, + limb3: 0x0, }, y: u384 { - limb0: 0xc48b3bc110e208d827b13f4d, - limb1: 0x87d82592699bca3dbf847c2b, - limb2: 0xff04f0f2c8be12365aa73443, - limb3: 0x1739c8c450ac994a5326c809 - } + limb0: 0x9b47b9326b668e62071faf18, + limb1: 0xe21058cb6937afa89be6931a, + limb2: 0x21a4bfb4cce2ac8c, + limb3: 0x0, + }, }, G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, ] .span(); let scalars = array![ u256 { low: 0x0, high: 0x0 }, u256 { - low: 0x247a8333f7b0b7d2cda8056c3d15eef7, high: 0xbacf6e172ae22448b0163c1cd9d2b7d + low: 0xb5d32b1666194cb1d71037d1b83e90ec, high: 0xa0116be5ab0c1681c8f8e3d0d3290a4c, }, u256 { - low: 0xe005b86051ef1922fe43c49e149818d1, high: 0x3ea0f301eece328bff7b118e820865d6 + low: 0xd3fbf47a7e5b1e7f9ca5499d004ae545, high: 0xbaf3897a3e70f16a55485822de1b372a, }, u256 { - low: 0x4a84eb038d1fd9b74d2b9deb1beb3711, high: 0x2a97919d8c25166a1ff39849b4e1357d + low: 0x101fbcccded733e8b421eaeb534097ca, high: 0x38c1962e9148624feac1c14f30e9c5cc, }, u256 { - low: 0x3405095c8a5006c1ec188efbd080e66e, high: 0x460ba2d39a6a5f92cca74147f6be1f72 + low: 0x247a8333f7b0b7d2cda8056c3d15eef7, high: 0x1759edc372ae22448b0163c1cd9d2b7d, }, u256 { - low: 0x1775336d71eacd0549a3e80e966e1277, high: 0x2894fdbe6288e1a5cc45782198a6416d + low: 0xe005b86051ef1922fe43c49e149818d1, high: 0x7d41e602eece328bff7b118e820865d6, }, u256 { - low: 0x2f1205544a5308cc3dfabc08935ddd72, high: 0x43870ae2fcd81b5d24bace4307bf326 + low: 0x4a84eb038d1fd9b74d2b9deb1beb3711, high: 0x552f233a8c25166a1ff39849b4e1357d, }, u256 { - low: 0x42930b33a81ad477fb3675b89cdeb3e6, high: 0x56e06d3d16febaa011af923d79fdef7c + low: 0x3405095c8a5006c1ec188efbd080e66e, high: 0x8c1745a79a6a5f92cca74147f6be1f72, }, u256 { - low: 0x2648ee38e07405eb215663abc1f254b8, high: 0xa4593acd7ab792809e469e6ec62b2c8 + low: 0x1775336d71eacd0549a3e80e966e1277, high: 0x5129fb7c6288e1a5cc45782198a6416d, }, u256 { - low: 0xd450fe4aec4f217bb306d1a8e5eeac76, high: 0x6b3f2afe642bfa42aef9c00b8a64c1b9 + low: 0x2f1205544a5308cc3dfabc08935ddd72, high: 0x870e15c2fcd81b5d24bace4307bf326, }, ] .span(); let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 1 + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 2, ); assert!( res == G1Point { x: u384 { - limb0: 0x75b33668139cf598c76976ae, - limb1: 0xb57555c5f811f5932d2d664f, - limb2: 0x3dc0a463f21f628f6dd61035, - limb3: 0x13a7f85cd448414d544b7ba9 + limb0: 0x2950159ef4b04fdc0dc934a9, + limb1: 0x9e463011388a15f56d6f38f4, + limb2: 0xef8d0de25e526f1c, + limb3: 0x0, }, y: u384 { - limb0: 0xedc098375876a9807b6eda05, - limb1: 0x650b70683fc239e28e6697c5, - limb2: 0x368e2ab0d50c091cf0be6938, - limb3: 0xcd0881f2458dd277af780b3 - } - } + limb0: 0x93ff053c58374ab5fd2530ab, + limb1: 0xb09af339bdbe0090a3d72802, + limb2: 0xd7d9e3078702fe93, + limb3: 0x0, + }, + }, ); } #[test] - fn test_msm_BLS12_381_11P() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - ] - .span(), - array![ - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - ] - .span(), - array![ - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - ] - .span(), - array![ - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - ] - .span(), - array![ - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - ] - .span(), - array![ - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - ] - .span() - ), - ] - .span() - ); + fn test_msm_SECP256K1_11P() { + let scalars_digits_decompositions = Option::None; let msm_hint = MSMHint { Q_low: G1Point { x: u384 { - limb0: 0xda9cdde4e5c188233d85ff60, - limb1: 0x94bff3ad03f3cd34b48043c2, - limb2: 0x25a858c0f2c2ce6d9c1bcf02, - limb3: 0x1832d91c2c3f9a6f969b267e + limb0: 0x74408414d91a69f35f61bc6b, + limb1: 0xb4948f35f0aba81a568e7a8b, + limb2: 0x9d9c716f70218bbc, + limb3: 0x0, }, y: u384 { - limb0: 0x96f189a68bc1acf589e8ee8, - limb1: 0x4a1949d57a1cd60710138159, - limb2: 0x10f87bc3adcbbcafeb091948, - limb3: 0x1519173fd0ddb592b2a9438f - } + limb0: 0x18f14196f216ed9367a2698a, + limb1: 0xe422cce7320bc65f4959ae9f, + limb2: 0xc1e171c2a4df7f1e, + limb3: 0x0, + }, }, Q_high: G1Point { x: u384 { - limb0: 0xe28783905041626972027b5d, - limb1: 0x209a7185e3d7dcf824cd318, - limb2: 0xedea887527ba8825337cc658, - limb3: 0xa097cd7b1cf6b4244b0d234 + limb0: 0x7028fdc386b9c76dc3c4a0c8, + limb1: 0x63bfc9828a51db91045c2a84, + limb2: 0x52713bd3cf273e01, + limb3: 0x0, }, y: u384 { - limb0: 0x8a8dfb95bbd5a3372759b0de, - limb1: 0x59df5374722393631e53b53, - limb2: 0x96fc6de10523745e115d47e4, - limb3: 0x399551a8a5d335850b49e6a - } + limb0: 0x573f68d756aa76e18879cd7f, + limb1: 0xdc646d36c276f220bd9bf719, + limb2: 0xe7ffb91a35ad131c, + limb3: 0x0, + }, }, Q_high_shifted: G1Point { x: u384 { - limb0: 0x28f1d7db996ba62dbf84ef85, - limb1: 0xdd4f6c28e044fec88359238c, - limb2: 0x3dc00b6d0c79ca704e025684, - limb3: 0x18cd5498819252b01053293c + limb0: 0x346aac78eda91ff42e459dd4, + limb1: 0x1f7e2485a95b04359515aa5a, + limb2: 0x720a7b0cb20237a7, + limb3: 0x0, }, y: u384 { - limb0: 0x78e32d74881ba0a29e12561, - limb1: 0x6587f89c3b6e577301996b36, - limb2: 0x84c0912c12022d68336ec3d5, - limb3: 0x18587691602430b0d4f1defe - } + limb0: 0x9f608d816585bb091fe579d, + limb1: 0x295f0370475510aaad79a2f, + limb2: 0x10674a790fac2d80, + limb3: 0x0, + }, }, - SumDlogDivLow: FunctionFelt { + RLCSumDlogDiv: FunctionFelt { a_num: array![ u384 { - limb0: 0x642a5de4cc9d228acb9b95e6, - limb1: 0xfdf8243d628e7ea56ae10a26, - limb2: 0xec86a11299d815d3c5fbd8f3, - limb3: 0x2540f57d9622fa2eff74697 + limb0: 0x59cf96d109450f9f6bf64b60, + limb1: 0xe17e9763ffb0b0a7d8a34705, + limb2: 0xf811c8020ee9354c, + limb3: 0x0, }, u384 { - limb0: 0xffbb38d796ee4dc9398b47e3, - limb1: 0x6307464320db393359fa7399, - limb2: 0x851f4e28c301e3fc123183ab, - limb3: 0x14919921a6e6d8f2c3d7e304 + limb0: 0x6c6ddf4bfee1d3419a702192, + limb1: 0xe3631280d0e952f60b0960, + limb2: 0xfb103c34bb967495, + limb3: 0x0, }, u384 { - limb0: 0x75374725ea12c8d1f402a064, - limb1: 0xf6506d972321921d692b3dbd, - limb2: 0x1228cbf52efb7c70718467e4, - limb3: 0x68e57c300550968094d7a42 + limb0: 0x54455d4c5236c1a01a8fd2ec, + limb1: 0x9d6c9cd854f6e7046ee699ba, + limb2: 0x5cf974632d9c365b, + limb3: 0x0, }, u384 { - limb0: 0x10b198440e638aaf2cb75306, - limb1: 0x511e9d40b16acf9676417614, - limb2: 0x9eb70f14413b40c250d44bba, - limb3: 0x13237e78bb190e4fed0640eb + limb0: 0x2871948055bdc19572e22d25, + limb1: 0x39cf537b7df5f9a3361d015c, + limb2: 0xd121add03ee0f44c, + limb3: 0x0, }, u384 { - limb0: 0xeecbfe719f29851ec663668e, - limb1: 0x798d237c2492431f4c152b3a, - limb2: 0x91b2163c4acbbf78e2a4ed6c, - limb3: 0x15381194efc4053de7e5ba1b + limb0: 0xcc89c7d8dc40b4741d7f3ccb, + limb1: 0xb234053d442371a8ea49305a, + limb2: 0xe5784e6863c79766, + limb3: 0x0, }, u384 { - limb0: 0x5737ba590a1d84c2b6201628, - limb1: 0xdea93070bbe0cebe6ff9372c, - limb2: 0xc650064498af1f2402111896, - limb3: 0xfa83579478f31e68374def5 + limb0: 0xe3511b2cd3d4b6cd0a467e09, + limb1: 0x5cfe950eaa9650fe941e8502, + limb2: 0x1be1d7559281b14b, + limb3: 0x0, }, u384 { - limb0: 0x5dbf10c7c45a468fca2cd39b, - limb1: 0xc70900d880b0cd14791079e5, - limb2: 0x87b4b45a3d2cbab22071bb10, - limb3: 0xcd9e037dc58b28811e70289 + limb0: 0x8f1d6db1dc633e5065071349, + limb1: 0xbf2d2356f7b49ac54d5f23a, + limb2: 0x4ad9aa4654f8269, + limb3: 0x0, }, u384 { - limb0: 0x4790caf2ce6693df0c739a5d, - limb1: 0x30808d1a760ccfcb7a4f0bf2, - limb2: 0x9cfcb127881477763193e9ec, - limb3: 0x1316cba66c76d274abd6a6e + limb0: 0xfb91710ada5a1221b80720, + limb1: 0x56c9a1a6bfd0cf75d7bf22cb, + limb2: 0xbca01cc9883c9fc8, + limb3: 0x0, }, u384 { - limb0: 0xe63809d43e648b72d0915a95, - limb1: 0x353c96320fcade280594d4eb, - limb2: 0x36717708eca08d9d03aca496, - limb3: 0x13af6eec2d4c53e970cc08b6 + limb0: 0x3c8102a642bf169f9b8e109b, + limb1: 0xe2702813457351c891f9497e, + limb2: 0xad282059d7e00bb9, + limb3: 0x0, }, u384 { - limb0: 0xe4651617d1ff18679923df3f, - limb1: 0xb39869507b587b117478a9c8, - limb2: 0x21a5d66bb23ba5c279c2895f, - limb3: 0xd0088f51cbff34d258dd3db - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x7de4757b74a123e7c9a488ab, - limb1: 0x495a2b15155fde0280b4aa51, - limb2: 0xb09d2657a32b6a30b792618a, - limb3: 0x13af1bfee4537680a54bba46 - }, - u384 { - limb0: 0x393ce29c66ba94631056dd37, - limb1: 0x7fa491409fc349a012be8909, - limb2: 0x19a50f5d48fa2b20af2a77f9, - limb3: 0x8430d257b350cee6f877cb4 - }, - u384 { - limb0: 0x2c6a672a644e884d595e5388, - limb1: 0xd544e10b9359eee69a6b37a5, - limb2: 0xabcf97edbaa49893827c4518, - limb3: 0xd55062af62546e53e75f244 - }, - u384 { - limb0: 0x1401ec20ae75a1481ceb5dcd, - limb1: 0x1b5c98a64657aefd93befc59, - limb2: 0x236590943a02b038f797a9bf, - limb3: 0x7b830cde857a4f597ff45de - }, - u384 { - limb0: 0xf93ded463b439db65843a82d, - limb1: 0x961028543a645e7d93aa378, - limb2: 0x670df315e72e687ad7c4e473, - limb3: 0x10ac337d19a22e1287d099f9 - }, - u384 { - limb0: 0xf077c05ac82967d64817f984, - limb1: 0x5532978e199df1b5df9c0604, - limb2: 0xbd080194c9948d2429563ca3, - limb3: 0x2d1861580595bccf54e6d1d + limb0: 0xe85bca8f0d9ed42c4fa3259c, + limb1: 0x3cb93906b77052d09482d8d, + limb2: 0x93acbb8c2a33d2c3, + limb3: 0x0, }, u384 { - limb0: 0x9bb3d9d7cfc884cbf3a20c57, - limb1: 0x5ffff8337c57ad7232b533b0, - limb2: 0x59c72f83e3227bd09a7bda9a, - limb3: 0x121abee3fe9c5af1c34267dc + limb0: 0x10b9a1acd39a7d843c66c9ce, + limb1: 0xb3dc13616ff36a2b20b9f3bf, + limb2: 0x2eb403689248d7b0, + limb3: 0x0, }, u384 { - limb0: 0xbb2d3607187788682b765256, - limb1: 0xdb35f47f6025dd1ae3b19b9e, - limb2: 0x8b346e8405fcd155816cbf5d, - limb3: 0x3ad14f214f4939b2ed0e061 + limb0: 0x62c4d76dd3906cfaa7a5f51, + limb1: 0x64121c21527c917705cb49b8, + limb2: 0x683d0b58b8ddcb5e, + limb3: 0x0, }, - u384 { - limb0: 0x97e833c76087e9d7a94c7005, - limb1: 0x31b390565a8c941aed64a166, - limb2: 0x1caa28b584c650e4d0058b60, - limb3: 0x172e4a480acf589d1f93b00f - }, - u384 { - limb0: 0xb3d0c671ebb15baec8d02b56, - limb1: 0x9de49fde766bea7f8270dd08, - limb2: 0x534b0abfecc0cc2c06cf8061, - limb3: 0x12978b14e2c4aa6ec563230f - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0x5e2ff2f735fdea20f9642040, - limb1: 0x8130ecae7cf1c671ae94e680, - limb2: 0x17e220e748f123b6d74e9239, - limb3: 0x15a25ce8b5eaa54cccae228e - }, - u384 { - limb0: 0xf2bb2651f6dd5ae3f3528ff1, - limb1: 0xdcbc6b0c90ced110bc63fd4d, - limb2: 0x93847d87fa62aac37900c09a, - limb3: 0x183ea35837f597a60a438239 - }, - u384 { - limb0: 0x7426d20f1cf86936542f0dbe, - limb1: 0x18ca0cde9c42b1a9a1e8c050, - limb2: 0x3298f95bbae1beb785e40f33, - limb3: 0x11510d11616b95be3dffa89f - }, - u384 { - limb0: 0x5253ac0c1548f7883e915f20, - limb1: 0xc0256ad12ea366b91f06200a, - limb2: 0x64e1db4eeaa1e7f197c2f25b, - limb3: 0xd7d75d8b80005987bf44885 - }, - u384 { - limb0: 0xe93de929cf671ff9df37f113, - limb1: 0x19392034e356c1a101027445, - limb2: 0xd17638f25c2af12dc3fce3e3, - limb3: 0x155b094bfbb2eec58d412df1 - }, - u384 { - limb0: 0x1052a3c49b2692aba47f4cdc, - limb1: 0xd7d9d827103dda4683c08090, - limb2: 0x9e1da9af46aa163d7a7c2b78, - limb3: 0x1702cc9570c6ad7a50caa126 - }, - u384 { - limb0: 0xeddbaac2ebe41e0a0674c570, - limb1: 0x14ccab1d97761a31054f40f4, - limb2: 0xf5bee47e1528bdf78733ccc5, - limb3: 0x80777db83f8a73a0adcf5f4 - }, - u384 { - limb0: 0x682e6f9e1f0ab75c4e903322, - limb1: 0x600b48194f2059dace46a5e1, - limb2: 0x99f6d5c03485e0afaedae68f, - limb3: 0x18fae5782614e12db1329b38 - }, - u384 { - limb0: 0x4f98e9c11ffd38f6b850a3b, - limb1: 0x335ffc534c8b65c2388c1eea, - limb2: 0xd851e1238b5779dfa93c9947, - limb3: 0x89fb0fad8f842f352dd1de5 - }, - u384 { - limb0: 0x99ee707d49dbe946f703a0cb, - limb1: 0xb0371dcf99c8ca4bbfd44426, - limb2: 0x549e902ed9406723de063cb8, - limb3: 0x4e2469fb46a5ad80c3443b3 - }, - u384 { - limb0: 0x776fc470b3c077c33c9f22c, - limb1: 0x1f1377b228f4251b9bf41ba4, - limb2: 0x66c7498809cdfbdbbdeef8a9, - limb3: 0x13aa25bb53eb2680815de73e - }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - b_den: array![ - u384 { - limb0: 0xe395d5eea4878f9f269322ab, - limb1: 0xefd63471716c959da6cea949, - limb2: 0xf89192d85f47c63403ba4dea, - limb3: 0xb93a3ce4ce2633b3dbf1f7 - }, + a_den: array![ u384 { - limb0: 0x339f8a71e0eb518c415bca31, - limb1: 0x97617261885c305c2c4e2426, - limb2: 0x2348909dbf7160fdc924cd26, - limb3: 0x70b22abb3544d1f73024b1a + limb0: 0x9786ae87968fec1ecf6d7306, + limb1: 0x9f7094a663f8ec412a9837bb, + limb2: 0x8eb277b470c70452, + limb3: 0x0, }, u384 { - limb0: 0x4f019caa1d3c21356579f8ca, - limb1: 0x86b1deec6005cf522c54de97, - limb2: 0x28a7060821a3cb4422e6eee4, - limb3: 0x151f4d765954e6063a079a6 + limb0: 0x651cb5773f6260850355dde7, + limb1: 0x75c8db72cb0920037072334c, + limb2: 0x30ab1b852b536639, + limb3: 0x0, }, u384 { - limb0: 0x1c9825fe7478a9083d525534, - limb1: 0x4f9bbb0d380da3d4b1049bb7, - limb2: 0xfae7bbd126bedf8fa26bf5c7, - limb3: 0x188ecd4c4c3223bcba2d2a08 + limb0: 0xe41a87d844bbec4092c0e97d, + limb1: 0xfb87b5eef068989894626f1b, + limb2: 0xa466cfb75eee78a6, + limb3: 0x0, }, u384 { - limb0: 0xbb8c97b5dfcb0b3c71662895, - limb1: 0xd6c6f613c0fa74f73a5116ef, - limb2: 0x2f4582061cc536022733e446, - limb3: 0x16f1b7456ebdf803f892952d + limb0: 0x49e15764a064cf615e458153, + limb1: 0xc5bab3ef9e4c62af92a34243, + limb2: 0x52f705b6b0b2e940, + limb3: 0x0, }, u384 { - limb0: 0xee49689584f427a679be3998, - limb1: 0x2a0f3f43f9d1b5be18db4fb8, - limb2: 0x9fef9e40e0f6cd2427d537a6, - limb3: 0x189b1e80f78ab61913afa6bb + limb0: 0xdb9975c7900350d62d79833d, + limb1: 0x1a05ff22452f3f60131257b4, + limb2: 0x88b38d63ed980800, + limb3: 0x0, }, u384 { - limb0: 0x6ed55380bf9ab477eb748f28, - limb1: 0x65ca019153a3825a028fcb1f, - limb2: 0xc09f481d9926bcec86f7dbea, - limb3: 0x21ff69f36495cedc3b5ee2c + limb0: 0x4d5dd792fc765ba409d7f15e, + limb1: 0xc10e115f5dccf21e5d9f8622, + limb2: 0x9d6442211cc085ac, + limb3: 0x0, }, u384 { - limb0: 0x349ec562e322bf57061d46da, - limb1: 0xf0801e1cd8cc42f495511f5, - limb2: 0x5094004e9aaa624be9f2cf2b, - limb3: 0x55f755b33f495e4f7f873c9 + limb0: 0x32b0e6e6752f5dd6e11b8c09, + limb1: 0x2616abbcb122eabdd29e6dbd, + limb2: 0xe3a19608be4afed8, + limb3: 0x0, }, u384 { - limb0: 0x3c1c8f791c4c0f34ed4ab997, - limb1: 0xe66e61049fbd5fb5392a8ba3, - limb2: 0x65cd9de4af47ee288edd31e5, - limb3: 0x11877976ff170a72924a3637 + limb0: 0x2edd747273fe614a64f0c150, + limb1: 0xd00e6ed878e753d3f58c15ee, + limb2: 0x129b7a35da7e62a3, + limb3: 0x0, }, u384 { - limb0: 0x56faf3a05090f38716e3b9ae, - limb1: 0xa1ffffca71f47503e074a7d7, - limb2: 0xdd1053fd68bfc9f1db2aa3e2, - limb3: 0xe75b578dd2f50ddf77bfcf6 + limb0: 0xc39dc077f41a655200a39e90, + limb1: 0xaff7a4a33471bb7b37cc02c0, + limb2: 0x4aa53dd4d8b74288, + limb3: 0x0, }, u384 { - limb0: 0xbb2d3607187788682b76525a, - limb1: 0xdb35f47f6025dd1ae3b19b9e, - limb2: 0x8b346e8405fcd155816cbf5d, - limb3: 0x3ad14f214f4939b2ed0e061 + limb0: 0x8cb2a0bdf333fad4ab749cc5, + limb1: 0x81439512af167dacc6ce65f4, + limb2: 0x38221d558c7e1a59, + limb3: 0x0, }, u384 { - limb0: 0x97e833c76087e9d7a94c7005, - limb1: 0x31b390565a8c941aed64a166, - limb2: 0x1caa28b584c650e4d0058b60, - limb3: 0x172e4a480acf589d1f93b00f + limb0: 0x9fec8485f09389afffce169d, + limb1: 0xcf3546b3f198c78aa4b506f9, + limb2: 0xf401fe854780f05, + limb3: 0x0, }, u384 { - limb0: 0xb3d0c671ebb15baec8d02b56, - limb1: 0x9de49fde766bea7f8270dd08, - limb2: 0x534b0abfecc0cc2c06cf8061, - limb3: 0x12978b14e2c4aa6ec563230f + limb0: 0xfafea51ddaf6e6b9f7d1a426, + limb1: 0x273eac3ab92dcb592f615623, + limb2: 0xabe5fd423d09448e, + limb3: 0x0, }, u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x36cc383865ff6a355dc498ce, - limb1: 0x6ef6bfc72b662c0b801d0b5b, - limb2: 0xa9ef9a1061b69a8233b0aa0, - limb3: 0x29184f6eb612e98d97301af - }, - u384 { - limb0: 0xf53933a2c6bb6470d66dda31, - limb1: 0x4bf43e14fcde299437d2ea7b, - limb2: 0xb96ad2c46b9aada66c85325f, - limb3: 0xf24d1101e7904f68e3b3a36 - }, - u384 { - limb0: 0x533d7ea2ada3c408eb494147, - limb1: 0x3485f55e2f2c93b1ca803cab, - limb2: 0x59686c1102cdd8e3e51ca57, - limb3: 0xca9a485bda0079119bdc44c - }, - u384 { - limb0: 0x533529b133d38aa4035300e8, - limb1: 0x68cf0832c4847fe628e59ccc, - limb2: 0xbc12a167ddd7e61ddbbf8b7b, - limb3: 0x1ce668636f46f1792f5c793 - }, - u384 { - limb0: 0x3cdf34f90cc44ce6226710c4, - limb1: 0x1515e61fb254a2b1869b20e6, - limb2: 0xb233e2c26c0b7cf02452b158, - limb3: 0x1c8dac8f35578af812de21e - }, - u384 { - limb0: 0x9b57e7442aaf280afc6ae402, - limb1: 0x32d06aced302d7653ea698a3, - limb2: 0x4af5f0b70928cc6328e640b7, - limb3: 0x6537b5a0d83304844a6030b - }, - u384 { - limb0: 0xe46718b620bca9db127385dc, - limb1: 0xe93a6b599df4bbc0d1c0979a, - limb2: 0xa46d15f0870648a07e64c475, - limb3: 0xc632dc73298e9328b53f356 - }, - u384 { - limb0: 0xf7cf7f75dd72027976215293, - limb1: 0x4d2872338ba4a7a1113b397b, - limb2: 0xf01aaad0ed096f6ae9f87702, - limb3: 0x194977b6313d4f0f22a06af6 - }, - u384 { - limb0: 0x1e126bc9075e8c4ce5c62c93, - limb1: 0x9077713526fd5edcf48e7cf7, - limb2: 0xd5b62091f9e7beac1b21d20b, - limb3: 0x610c0235f22f32337478f8f - }, - u384 { - limb0: 0x96b9c872e31cadde3ec88089, - limb1: 0xb39869507b587b128ae8dfe8, - limb2: 0x21a5d66bb23ba5c279c2895f, - limb3: 0xd0088f51cbff34d258dd3db - }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - a_den: array![ - u384 { - limb0: 0x13d8f09c1567463508d6697c, - limb1: 0x8fce07bc2c66685adf789940, - limb2: 0x1879e456c05c2ca621d43e5b, - limb3: 0x188de337cec2544e670011de - }, - u384 { - limb0: 0x9efb913ecb87459ae7e183d9, - limb1: 0x824fdcd37bbe933f2b84aef4, - limb2: 0xfe24d41df1857efb55a35c00, - limb3: 0xe7465a089e0ca8da163d3e8 - }, - u384 { - limb0: 0x2f49a75b067fd0efde48db8c, - limb1: 0x2d12ce2fdf2ca21283740885, - limb2: 0x28a98352ffcddbc2706255a5, - limb3: 0x149edc7654209ee1eb6ed101 - }, - u384 { - limb0: 0x1c02759541ff31765dd1d8fc, - limb1: 0x3d4337b33d9eeb33b7d1cda2, - limb2: 0xbb86f53547b04269165c2911, - limb3: 0x143162da9d8fef4965c9c063 - }, - u384 { - limb0: 0x5c23f9c324d08a8d4df44a20, - limb1: 0x2d24a185565678bb578d46d5, - limb2: 0xa507ee1bfeded73ee77ae0ca, - limb3: 0x325d89610a0e40a4c2b89c7 - }, - u384 { - limb0: 0x3abbe291bceb5ddabe5e76cc, - limb1: 0xb10211470226bed03e16dd76, - limb2: 0xe1601ef6326c600f783fd818, - limb3: 0x7ca6b57bb5f2f3d73381117 - }, - u384 { - limb0: 0x8d0ad07136c4a2c746b68e92, - limb1: 0x26440f95390b032674b1e148, - limb2: 0x4b43d9bae3af31bad3193e08, - limb3: 0x14631ba4d2d3283bca99b07e - }, - u384 { - limb0: 0xb017e5c13e6c1976f37ca96a, - limb1: 0xd2999c41fa2fbcda5ce2ac3e, - limb2: 0x4c8ace29fc7d21bc6027c324, - limb3: 0xfec464cf0b6fa7fb44d9b8c - }, + b_num: array![ u384 { - limb0: 0x1981baacaf63e4bec92c1979, - limb1: 0x83713a6e5e7b408fe996034f, - limb2: 0xab4460b9d4ff3b05e0d3b87c, - limb3: 0x17ef01809e31cfb1f81a23e9 + limb0: 0x9d9f24b0a4f14d45847c317a, + limb1: 0x9de605232a6b3672a9642c39, + limb2: 0xefdff29c976ae041, + limb3: 0x0, }, u384 { - limb0: 0xfa9220c6c7328168945404ae, - limb1: 0xc96a19d2257143c095f84db3, - limb2: 0x47bd2e345351c6ef7be9764c, - limb3: 0x6bfd56f23b4f301cc31cfa2 + limb0: 0xb3e90055c16a34a07e0388be, + limb1: 0x576c01052293a220513bbd32, + limb2: 0xa72eb49613bc0ef4, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0x3efb4404f562f986eadca4a7, - limb1: 0xe14da27c79b7c7c5909a8623, - limb2: 0x58e76ae1129ad4acfdb06a1a, - limb3: 0xbacefaa20b777f5ec0263c + limb0: 0x1282a127d856ee505ed9bbc0, + limb1: 0xd056593149b3ef729af6ac02, + limb2: 0x82a0a2bf431bfd05, + limb3: 0x0, }, u384 { - limb0: 0x9c82a5a15eb55f9128ae256b, - limb1: 0xd44a288aefffe362d223d18a, - limb2: 0x930f149630f9c0cea2665f28, - limb3: 0x19476ce33c2da503935cf70e + limb0: 0x33590516accd0777bc8aa4a7, + limb1: 0x2dbf0eb2f3d7fe3978455096, + limb2: 0x143cfb63582c14a2, + limb3: 0x0, }, u384 { - limb0: 0x8e3eb8c676fab22885a1ab9d, - limb1: 0x3f2c198f9944315691374825, - limb2: 0xe17d5c587936652f0fe2d05e, - limb3: 0x672d9b6842033744aed70c8 + limb0: 0x6a447db658704f9528255e07, + limb1: 0xc9d336c3f802ab3e115c0803, + limb2: 0xfde4b58826cb223c, + limb3: 0x0, }, u384 { - limb0: 0x19eeaf75381759b1c01288b2, - limb1: 0x33ed49bfe7f8ed7da08dafb4, - limb2: 0xeae6bcb1d6eb6d37c89a46ec, - limb3: 0x1641b38a2b963f980ece61b9 + limb0: 0xcf83b92fa680c35db5837531, + limb1: 0x6e440d3c2942cade0eb99004, + limb2: 0x3f32960adff56bca, + limb3: 0x0, }, u384 { - limb0: 0x9008f269003ad6429935e06a, - limb1: 0x179b55e60d8cadebc67dc8ea, - limb2: 0x2e2978c997740c22147745a7, - limb3: 0xbf482907443cec60f68f4fe + limb0: 0x8282f7d8bab3ec2af461433f, + limb1: 0xa061b169e2497b5f22a96a78, + limb2: 0x65a8b438429f4be0, + limb3: 0x0, }, u384 { - limb0: 0x21d7b8a3fa2d77dccce482, - limb1: 0xa0015ca8eb82ff840d667beb, - limb2: 0x3a9d7b6bf149c26710ed9867, - limb3: 0xd174946128e86987aedeed2 + limb0: 0x5e6524b3726b09d02788e105, + limb1: 0xd901df85467c80290aa55de6, + limb2: 0x9d9306afdb1fc541, + limb3: 0x0, }, u384 { - limb0: 0xac524dafa476e840657286c7, - limb1: 0x8fd6b675333af4dfd25a698, - limb2: 0x3f11a28bf80a826b85cad87b, - limb3: 0x158e60004624cc19c6f65e8a + limb0: 0x94ae0d3f7f7ecb9ab95c2c1f, + limb1: 0xc427bbea84c50a9f6ca39446, + limb2: 0x1f12def472e3bbbc, + limb3: 0x0, }, u384 { - limb0: 0x4560050559c677b993200669, - limb1: 0x5c4aa71a25b6d859896255b4, - limb2: 0xa53c7f08a11cc016c7474c9d, - limb3: 0x11f54536b71afe323663541d + limb0: 0x3fc3d9c851f3ca1713d59d22, + limb1: 0x20b54bcf862d0dd868a61282, + limb2: 0x50f32383ccb28012, + limb3: 0x0, }, u384 { - limb0: 0x724c6bec1c3716259e941cc6, - limb1: 0x5af44557dbba571f56098cc4, - limb2: 0xcff6c4e4183c672a1b84e14b, - limb3: 0xbdd71e9e471af90b805b5a9 + limb0: 0x39a23c24d7961d46ec9bfcfd, + limb1: 0xd821e97648649be76b0b793d, + limb2: 0x8a2a4901505e01b3, + limb3: 0x0, }, u384 { - limb0: 0x227d7c445dfcf0fb5a850a37, - limb1: 0x2a705286f6fbf2ac5d78f076, - limb2: 0xabd0d736ed47b00e3617ab2d, - limb3: 0x1856a05e247d28902615eff3 + limb0: 0x2080fdb1b23c12261e11d802, + limb1: 0x2d30af7e6e51cf61a772c1ba, + limb2: 0x85fc03e91ff8ad66, + limb3: 0x0, }, u384 { - limb0: 0x912a408ae50c041a640c14a, - limb1: 0x7c3fd132c5051e7af29c7b66, - limb2: 0xd3634c92f7a7de39fe9d2946, - limb3: 0xa0ac5e2bf2b54a60a2f2d1f + limb0: 0x60efead885cc6b65f0c76e63, + limb1: 0x19680d56c5ea36a23b07030a, + limb2: 0xad0bcd690693a4fc, + limb3: 0x0, }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), b_den: array![ u384 { - limb0: 0x3b67c27127a018d4235aa5ef, - limb1: 0x9a5a70dcd86beff21de6504, - limb2: 0x98048ad4d40ad009acc1c130, - limb3: 0x143457208e899d6abaad5055 - }, - u384 { - limb0: 0x194644fbba1f166b9f86ba0e, - limb1: 0x3addce0c019860b470babbd5, - limb2: 0x71fbf6c8fd2764e36f834a83, - limb3: 0x5cf72adb4835d01ef580037 - }, - u384 { - limb0: 0xa92a9d6cec0243bf79246e2f, - limb1: 0x7eb8c0dc989fa5ddb1cc2218, - limb2: 0xd8c306c5d1d18c7ae6fa1e56, - limb3: 0x4783c1aa402c7b8cc684ce1 - }, - u384 { - limb0: 0xbe92c6f235680c0e801f22c0, - limb1: 0xe8179c05481e3c99440fcfcd, - limb2: 0xf96705ce4d400836ad3097a2, - limb3: 0x14f26f95f02770ad1b87493 + limb0: 0x24aec5b51def74daabfe309d, + limb1: 0x5c14108cbbce75c82a298621, + limb2: 0xe6e145ef15711e42, + limb3: 0x0, }, u384 { - limb0: 0x5e37784ba4ca6fd01fb301ae, - limb1: 0xcfb19047de6780086b0dca4b, - limb2: 0x4ef8dfb6888990720009cc69, - limb3: 0x10ab60e92e4741c86f65351 + limb0: 0xc3c8f642bbb0a3a417591522, + limb1: 0x387e00238d3fe018131f6716, + limb2: 0x54adc0a42f47cb92, + limb3: 0x0, }, u384 { - limb0: 0x68e531a2402e485ad7c30c11, - limb1: 0x89ea40aaf116a72f5d237e5f, - limb2: 0x6ade52546508107b5ddca348, - limb3: 0x19c777eb081d753d6d336daa + limb0: 0x3cb9b6e9e12375c8034671af, + limb1: 0xe0b5f98892dc2c2c0eb109c3, + limb2: 0x7ecfae0398854c90, + limb3: 0x0, }, u384 { - limb0: 0x3c31b75aef14bc9378ad1343, - limb1: 0xa0c0fe253db815612e9552c8, - limb2: 0x1eb3559aa90726c58831e8f3, - limb3: 0x17ba9baf3c5cdc69aedd8b3a + limb0: 0x9cb01247f95197ca635403ed, + limb1: 0x78b8033b80f9f0e2d0f0792, + limb2: 0xd3739fb345ab6518, + limb3: 0x0, }, u384 { - limb0: 0xb9db90c8aa82f0691be79a72, - limb1: 0xa9296d4b51b37fdc8dbff7d2, - limb2: 0x509bcd1527e4c726810fc7de, - limb3: 0xed4cdf5607d00d4872aa88c + limb0: 0x664eedec2f79966341a88005, + limb1: 0x2bf2d562af53dba3f5f2993e, + limb2: 0xed93f940aa7b9e3a, + limb3: 0x0, }, u384 { - limb0: 0x8cc6cd454c7df0d5e30fdcaf, - limb1: 0x8934831d9800dea3886aeab6, - limb2: 0xc48e9b575903699820ff81cc, - limb3: 0x19833b9b87a6ba36724da99b + limb0: 0x1ab6cdd2bf86dc0d7a89253, + limb1: 0x42ea2f8a8103376d23bf1a0c, + limb2: 0xf2249e9f28322060, + limb3: 0x0, }, u384 { - limb0: 0xc5ff538c998fa8699806f69f, - limb1: 0xe4bba43cd81f1c04ade71819, - limb2: 0x26ece5b4cc7f01f3cf3a047b, - limb3: 0x15615f7728270da8b0454751 + limb0: 0xacb7a7b1d4b0604786066c78, + limb1: 0xd05966187640cde054f8426f, + limb2: 0x8c621ff3e4bfe129, + limb3: 0x0, }, u384 { - limb0: 0xb017e5c13e6c1976f37ca96e, - limb1: 0xd2999c41fa2fbcda5ce2ac3e, - limb2: 0x4c8ace29fc7d21bc6027c324, - limb3: 0xfec464cf0b6fa7fb44d9b8c + limb0: 0x23a7a4e8bbf7f9dff00ed03e, + limb1: 0xca6b070d93828a2bc9e6f138, + limb2: 0xaf3e4dce70cba7a, + limb3: 0x0, }, u384 { - limb0: 0x1981baacaf63e4bec92c1979, - limb1: 0x83713a6e5e7b408fe996034f, - limb2: 0xab4460b9d4ff3b05e0d3b87c, - limb3: 0x17ef01809e31cfb1f81a23e9 + limb0: 0xa6ae1adaa92f20e40e514ef0, + limb1: 0x90d391d5cce9127ce4339967, + limb2: 0xa7e8f2f309c35769, + limb3: 0x0, }, u384 { - limb0: 0xfa9220c6c7328168945404ae, - limb1: 0xc96a19d2257143c095f84db3, - limb2: 0x47bd2e345351c6ef7be9764c, - limb3: 0x6bfd56f23b4f301cc31cfa2 + limb0: 0xb934c181b9b39a9914bdd0e, + limb1: 0xaeefbf3f7ac05a774243376d, + limb2: 0x6c90635f95bdb74a, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ u384 { - limb0: 0xf70358b98d49df74ec48b065, - limb1: 0xa2583487fd3f20c6f2463eec, - limb2: 0x1c4f1820b2bab7c72a659ea1, - limb3: 0xc297c59cb8411260408838d + limb0: 0x8e55141c0807251a63935f9b, + limb1: 0x7a835dc41414c89e767f46c1, + limb2: 0x7d5c599029c6cbcc, + limb3: 0x0, }, u384 { - limb0: 0x302ea91a3b09524e7c49fbbb, - limb1: 0xb39869507b587b118b5d4593, - limb2: 0x21a5d66bb23ba5c279c2895f, - limb3: 0xd0088f51cbff34d258dd3db - } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x3d3fd061cd69195e7766d1ba, - limb1: 0x201980d5547f71805a82e3be, - limb2: 0xdaede9d98938a960829db284, - limb3: 0x5b9b389a0d7a3a6742e1ca3 + limb0: 0xa0944448f0dab46bc75f2ade, + limb1: 0xc2ae5a3e44b24aeb83755dbc, + limb2: 0xfdef2aa483f8226b, + limb3: 0x0, }, u384 { - limb0: 0x572ea4938a50f768ce77ea74, - limb1: 0xef089200aedf6fb037b20958, - limb2: 0x5aecc5cc94ba4474658b08a1, - limb3: 0x112b52643f9e0f42413353fb + limb0: 0x8cb2a0bdf333fad4ab749ccc, + limb1: 0x81439512af167dacc6ce65f4, + limb2: 0x38221d558c7e1a59, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0xfa999fcf7a2a14efd03a12a6, - limb1: 0x4df130da8c0e2f335ca4a401, - limb2: 0xa174bfbecbc5ff717b407309, - limb3: 0x456f9f7e9e794e02ef21797 + limb0: 0x9fec8485f09389afffce169d, + limb1: 0xcf3546b3f198c78aa4b506f9, + limb2: 0xf401fe854780f05, + limb3: 0x0, }, u384 { - limb0: 0x11043fa246d6ac3b546d013f, - limb1: 0x9bdb37ea1f4ad823b4477878, - limb2: 0xc7f9df12a20b1af79d0ff133, - limb3: 0x85a908a91c1fd502f06da3a + limb0: 0xfafea51ddaf6e6b9f7d1a426, + limb1: 0x273eac3ab92dcb592f615623, + limb2: 0xabe5fd423d09448e, + limb3: 0x0, }, - u384 { - limb0: 0xceecca123603262697f62ce, - limb1: 0x3ac4b491250655db2f5cba47, - limb2: 0x4489495204bf8acfc6d1be06, - limb3: 0x13a3331f1c1c8ef15df2a286 - } + u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), - b_den: array![ - u384 { - limb0: 0xf4ff418735a46579dd9b46e8, - limb1: 0x8066035551fdc6016a0b8ef8, - limb2: 0x6bb7a76624e2a5820a76ca10, - limb3: 0x16e6ce26835e8e99d0b8728f - }, - u384 { - limb0: 0xfa12924eb545dda339e0547a, - limb1: 0xedc0a2c0ce1bd278a1702563, - limb2: 0xe51bbd8389fa7ac7af21fd08, - limb3: 0x10ab25bc8b786fd46e960080 - }, - u384 { limb0: 0x4, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { - limb0: 0x3d3fd061cd69195e7766d1ba, - limb1: 0x201980d5547f71805a82e3be, - limb2: 0xdaede9d98938a960829db284, - limb3: 0x5b9b389a0d7a3a6742e1ca3 - }, - u384 { - limb0: 0x572ea4938a50f768ce77ea74, - limb1: 0xef089200aedf6fb037b20958, - limb2: 0x5aecc5cc94ba4474658b08a1, - limb3: 0x112b52643f9e0f42413353fb - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() }, }; let derive_point_from_x_hint = DerivePointFromXHint { y_last_attempt: u384 { - limb0: 0xb78d4af733678afa84ec8550, - limb1: 0x19d3529fff4d16f6eb6016f2, - limb2: 0xfcc814488055416bbb34ab2c, - limb3: 0x943ae55ca406339af29defa + limb0: 0x6cc8902279ec1dccf25660af, + limb1: 0x60ce213d05e2e7e6160de0d8, + limb2: 0x7ac2776fc8934f7, + limb3: 0x0, }, - g_rhs_sqrt: array![ - u384 { - limb0: 0x10310c86324cf26472be67db, - limb1: 0x6166b347fc6c6996f12ae4fa, - limb2: 0xea20f9e610f3b3637910944d, - limb3: 0x36db310938ac317f21e5206 - }, - u384 { - limb0: 0x3b312711a19592a24e284b5b, - limb1: 0xee4b794b3219edcb28719080, - limb2: 0xb3fee67cb7d20ad1caa393cd, - limb3: 0x2b78180e1348e774aea87a6 - } - ] - .span(), + g_rhs_sqrt: array![].span(), }; let points = array![ G1Point { x: u384 { - limb0: 0xe4f817e54aede0613c17035c, - limb1: 0xdff1f15010392a6da1f95a6, - limb2: 0xbed78d3d341e911d49f15454, - limb3: 0x18154782ce0913b21588066d + limb0: 0x393dead57bc85a6e9bb44a70, + limb1: 0x64d4b065b3ede27cf9fb9e5c, + limb2: 0xda670c8c69a8ce0a, + limb3: 0x0, }, y: u384 { - limb0: 0x3d77d61326ef5a9a5a681757, - limb1: 0xd3070afd4f0e121de7fcee60, - limb2: 0xdf9ef4088763fe611fb85858, - limb3: 0x11a612bdd0bc09562856a70 - } + limb0: 0x789872895ad7121175bd78f8, + limb1: 0xc0deb0b56fb251e8fb5d0a8d, + limb2: 0x3f10d670dc3297c2, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0xde4f62a6588c9401ffefbd3, - limb1: 0x9bb5f797ac6d3395b71420b5, - limb2: 0xdc39e973aaf31de52219df08, - limb3: 0x105dcc4dce3960447d21d3c1 + limb0: 0xfdfdc509f368ba4395773d3a, + limb1: 0x8de2b60b577a13d0f83b578e, + limb2: 0xc2dd970269530ba2, + limb3: 0x0, }, y: u384 { - limb0: 0xaefd0d854043fd325dd3c34f, - limb1: 0x9b63c98d9a7845c52e1e2b0f, - limb2: 0x9db0be660d847ccc58358f3f, - limb3: 0x17cb6c41f0c4e1a7394ab62a - } - }, - G1Point { + limb0: 0x589fa250d638e35400c12ddf, + limb1: 0xb3aac19fcb5095808402aa7f, + limb2: 0xed6de6590d0195d1, + limb3: 0x0, + }, + }, + G1Point { x: u384 { - limb0: 0xcf86158ab69213388e721bb7, - limb1: 0x5f7812269d790797cad9aa15, - limb2: 0xb1c3622a0177001d9ed8e25f, - limb3: 0x115cf429f459884785c6ba46 + limb0: 0x2965eeb3ec1fe786a6abe874, + limb1: 0x33e2545f82bb6add02788b8e, + limb2: 0xf586bc0db335d7b8, + limb3: 0x0, }, y: u384 { - limb0: 0x1e81341e2f3f988ff115dda3, - limb1: 0xad22946489db6ee4954fa5e1, - limb2: 0x83bed94412e19d92b73cc763, - limb3: 0x2074c7bceff87d0d41edba1 - } + limb0: 0x155b35991489db2fdf4de620, + limb1: 0xf24ce461346a182d67eeccf0, + limb2: 0xb4122bb4b37cc7d5, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0xe2955c55da59eba4b7b57d3d, - limb1: 0x1e6629b0431bce67cf28c22, - limb2: 0x1c35b7efd5b67f87221b8bfc, - limb3: 0x3e53df9e3488a9e42acd87e + limb0: 0x12815740835b12f70b96c66f, + limb1: 0xbfa76a8b80aec9f2e31c40cc, + limb2: 0xcd8a26d17d33c7c1, + limb3: 0x0, }, y: u384 { - limb0: 0x2e089afa726154d40dd12102, - limb1: 0x5391613ecf49db2bcf1cad86, - limb2: 0x84a2abb2de6b3a6e09026a50, - limb3: 0x19557a3a3c1d62a205d5dc87 - } + limb0: 0x9a8f496f09402b8fd6beb89b, + limb1: 0x28e48918dad2123d7f202bef, + limb2: 0xcdd11b6ffb3f8614, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0x490bf40774926e8b279947c, - limb1: 0xeabab6aef9e9d2a4f64f4e7d, - limb2: 0x3e309fe1b1c8247abab20d7e, - limb3: 0x79c527862917f69ac58fcc4 + limb0: 0xb5076be8537cff2a42c6db68, + limb1: 0x1066d40cbd01a3752e4e069c, + limb2: 0x123ec2fd302cb0f9, + limb3: 0x0, }, y: u384 { - limb0: 0xacb18f2da2b425c2ff50dafd, - limb1: 0x7623850d87e279a8a30f31ff, - limb2: 0x777564c7291d95fa80203ade, - limb3: 0x1764ce0e7fb626109b63789b - } + limb0: 0xc85f5e5efdf415f8081bf53f, + limb1: 0xadc5010e9d9ac6c64000d33d, + limb2: 0xf81314011d8852e4, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0x42f2f3f4f6b9d2c2b73a361f, - limb1: 0xcd78c070c184c38b1e5716aa, - limb2: 0x72cbc24cd90da89e0e3cefe4, - limb3: 0x19485e1c46d0dce75f8b192b + limb0: 0xd5915098d3d2001310b0b935, + limb1: 0x88bb4507ebf1be82cfba2397, + limb2: 0x8a463f1c00ce885f, + limb3: 0x0, }, y: u384 { - limb0: 0xb56b3539074b3c47b3f504d9, - limb1: 0x2c229530bddedd8851b03dcc, - limb2: 0xc93eef8474c4e18d6378e7f0, - limb3: 0x173d36f17a3c9ae77a2acc25 - } + limb0: 0x414858f8a83f9d4498890137, + limb1: 0xa09c4658c47ace74c42cdb60, + limb2: 0x8aaf300ff3ab7d98, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0x5fbf29cf20556a11621a6639, - limb1: 0xdfda5b7dbf0b226822094787, - limb2: 0x4a3b059e521b4b0445df96d5, - limb3: 0x333988c2c09f5af061cdfb + limb0: 0x1772eb803ddc8a82e23b1c05, + limb1: 0xc26baeb89b03fd69eb64b337, + limb2: 0x4ea7131b2d873a45, + limb3: 0x0, }, y: u384 { - limb0: 0x13d3570be6d27d1d588b22fc, - limb1: 0x20c763e58d4df3e4990cdae9, - limb2: 0x2c3301367f400c31f4bded26, - limb3: 0x16a6c25d133fba74b4c55972 - } + limb0: 0xc9d16330db15efd90235eed9, + limb1: 0x1b586ef360673d36baa16189, + limb2: 0xee652d2b848ad111, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0xcb24d12438557639f52df5fd, - limb1: 0x4a6a46feebe8a88a8062bd0e, - limb2: 0x65f04211af4b168b1e25787d, - limb3: 0x17935d6f4fa575744ca46f75 + limb0: 0x68f9e7942638253f3b596f1f, + limb1: 0xb37e6153d9accd97a344f384, + limb2: 0xda48eae9ff614551, + limb3: 0x0, }, y: u384 { - limb0: 0x644f324be8a5c152625a5b8a, - limb1: 0x501e52e8c5707d7a3a77ee18, - limb2: 0x9636c463c14c5b85c2e6d3b1, - limb3: 0x1939b6f297f7b5b7fd0ac458 - } + limb0: 0xc58be8ed857035b34f51c620, + limb1: 0x3b14ed53116cb7c1db000006, + limb2: 0x7dfa292fe99b77dd, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0xde1d8e2670532ec5bba60ade, - limb1: 0x1154f5064f7dd38656f7f82b, - limb2: 0xc9bec68372b7d07dcf66270c, - limb3: 0x315ced00b3153219bbd430 + limb0: 0xf7f7bd2513c1b31de932bbd2, + limb1: 0x627e2fa74b7ac891f7d555c7, + limb2: 0x7f8a094f818e7192, + limb3: 0x0, }, y: u384 { - limb0: 0xc48b3bc110e208d827b13f4d, - limb1: 0x87d82592699bca3dbf847c2b, - limb2: 0xff04f0f2c8be12365aa73443, - limb3: 0x1739c8c450ac994a5326c809 - } + limb0: 0x9b47b9326b668e62071faf18, + limb1: 0xe21058cb6937afa89be6931a, + limb2: 0x21a4bfb4cce2ac8c, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0x8904b74d5d114b5416df0ed6, - limb1: 0x479ee13e49cde067742c2655, - limb2: 0x45b9359bfa338dd432ca9ff1, - limb3: 0x12bf6460e7a42942be6c16a0 + limb0: 0xaf4ad4d7d582b10b14c97e6c, + limb1: 0xadf808c85e766e997e470fd0, + limb2: 0x2714571e587ce46d, + limb3: 0x0, }, y: u384 { - limb0: 0x3a8b37aacb2f620bc41c6109, - limb1: 0x91f68edf90b5947273b0aadf, - limb2: 0x265d48695a73800b7404124c, - limb3: 0x141e3d99b3ab683bdb0ce70f - } + limb0: 0x86a7815dad7e8a53b19fee2, + limb1: 0x1922fc1efcc51e68146ffa1b, + limb2: 0x9e19b7c1f886488e, + limb3: 0x0, + }, }, G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, ] .span(); let scalars = array![ u256 { low: 0x0, high: 0x0 }, u256 { - low: 0xe005b86051ef1922fe43c49e149818d1, high: 0x3ea0f301eece328bff7b118e820865d6 + low: 0xd3fbf47a7e5b1e7f9ca5499d004ae545, high: 0xbaf3897a3e70f16a55485822de1b372a, }, u256 { - low: 0x4a84eb038d1fd9b74d2b9deb1beb3711, high: 0x2a97919d8c25166a1ff39849b4e1357d + low: 0x101fbcccded733e8b421eaeb534097ca, high: 0x38c1962e9148624feac1c14f30e9c5cc, }, u256 { - low: 0x3405095c8a5006c1ec188efbd080e66e, high: 0x460ba2d39a6a5f92cca74147f6be1f72 + low: 0x247a8333f7b0b7d2cda8056c3d15eef7, high: 0x1759edc372ae22448b0163c1cd9d2b7d, }, u256 { - low: 0x1775336d71eacd0549a3e80e966e1277, high: 0x2894fdbe6288e1a5cc45782198a6416d + low: 0xe005b86051ef1922fe43c49e149818d1, high: 0x7d41e602eece328bff7b118e820865d6, }, u256 { - low: 0x2f1205544a5308cc3dfabc08935ddd72, high: 0x43870ae2fcd81b5d24bace4307bf326 + low: 0x4a84eb038d1fd9b74d2b9deb1beb3711, high: 0x552f233a8c25166a1ff39849b4e1357d, }, u256 { - low: 0x42930b33a81ad477fb3675b89cdeb3e6, high: 0x56e06d3d16febaa011af923d79fdef7c + low: 0x3405095c8a5006c1ec188efbd080e66e, high: 0x8c1745a79a6a5f92cca74147f6be1f72, }, u256 { - low: 0x2648ee38e07405eb215663abc1f254b8, high: 0xa4593acd7ab792809e469e6ec62b2c8 + low: 0x1775336d71eacd0549a3e80e966e1277, high: 0x5129fb7c6288e1a5cc45782198a6416d, }, u256 { - low: 0xd450fe4aec4f217bb306d1a8e5eeac76, high: 0x6b3f2afe642bfa42aef9c00b8a64c1b9 + low: 0x2f1205544a5308cc3dfabc08935ddd72, high: 0x870e15c2fcd81b5d24bace4307bf326, }, u256 { - low: 0x85940927468ff53d864a7a50b48d73f1, high: 0x1b8bb742d977e9933c49d76fcfc6e625 + low: 0x42930b33a81ad477fb3675b89cdeb3e6, high: 0xadc0da7a16febaa011af923d79fdef7c, }, u256 { - low: 0xd344749096fd35d0adf20806e5214606, high: 0x233a1ba09466e4726b5f5241f323ca74 + low: 0x2648ee38e07405eb215663abc1f254b8, high: 0x148b2758d7ab792809e469e6ec62b2c8, }, ] .span(); let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 1 + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 2, ); assert!( res == G1Point { x: u384 { - limb0: 0x9ec142be39a5f52851d40011, - limb1: 0xa2c6a9a59c2e5cc721418300, - limb2: 0xf1b002b6ff0a802aa11d79f1, - limb3: 0x4ef0f37cba80a70d0645e6d + limb0: 0xfd3ebb89d10fe461e552fc52, + limb1: 0xec1cd433c40d59e89a0a67c6, + limb2: 0x718e281769552f5, + limb3: 0x0, }, y: u384 { - limb0: 0xb7eadd19764cdf407fce674a, - limb1: 0xcd0f0fe2c23c44035093a0e2, - limb2: 0xb99254d6476ffdbaf7f749d0, - limb3: 0xd20d67685607fa1d8542a6 - } - } + limb0: 0x5765daf8dcb6b393eba165cd, + limb1: 0x106a5fd0eb158dcde70d802e, + limb2: 0xe30701a5d0fa2198, + limb3: 0x0, + }, + }, ); } #[test] - fn test_msm_BLS12_381_12P() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - ] - .span(), - array![ - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - ] - .span(), - array![ - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - ] - .span(), - array![ - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - ] - .span(), - array![ - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - ] - .span(), - array![ - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - ] - .span() - ), - ( - array![ - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - ] - .span(), - array![ - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - ] - .span() - ), - ] - .span() - ); + fn test_msm_SECP256K1_12P() { + let scalars_digits_decompositions = Option::None; let msm_hint = MSMHint { Q_low: G1Point { x: u384 { - limb0: 0x3e97d2180b8d9becdeecbc4, - limb1: 0x22464786b5e8678d30ea566d, - limb2: 0x460842529ef02457631e7075, - limb3: 0x9d08075235f7e786a2c8610 + limb0: 0x1d36d633760b3c55c81a8d8c, + limb1: 0xd079c33f8b0673c89e3a9bd0, + limb2: 0x70ff81f33501ba92, + limb3: 0x0, }, y: u384 { - limb0: 0xad8b261cae9ca9c1ce60a5ad, - limb1: 0x49ed6d249b5433c2925f4a11, - limb2: 0xd21d53fd1765d52afd70bf35, - limb3: 0x19de584d836f54db00d356c4 - } + limb0: 0xcff3e05d854ed659f6cd040c, + limb1: 0x33f2728d006bc9e70866e303, + limb2: 0x2f4943938395998b, + limb3: 0x0, + }, }, Q_high: G1Point { x: u384 { - limb0: 0xdaebc752ad2b8ffff7549f07, - limb1: 0xd413863791b7a8f0c34eb3c6, - limb2: 0x9c92f45c88f9f47f20f4f8fc, - limb3: 0x145230516d9fe61cff157933 + limb0: 0x1db4213156986f28879aba6b, + limb1: 0x5a33215ee31af0cdd996b80a, + limb2: 0x62cfcf2de05e2009, + limb3: 0x0, }, y: u384 { - limb0: 0xe31cca49cb02ec5099286e72, - limb1: 0x299af97f18ac81739c305e01, - limb2: 0xc5d74563760466c83734d9d6, - limb3: 0xd65e4b6d9b871273837279d - } + limb0: 0xa9552c8f1c96a1c163a43cae, + limb1: 0x6230406918f0da360db56e32, + limb2: 0x35ace69b06cd8541, + limb3: 0x0, + }, }, Q_high_shifted: G1Point { x: u384 { - limb0: 0xf247311021189eaad71dc07a, - limb1: 0x95ea7c5761ce3305b72b3d27, - limb2: 0x4ed7e368cc21a3e659c373bb, - limb3: 0xa8a70d7ede8f711ca032c1a + limb0: 0x5942b3e3f39ff916f02cf401, + limb1: 0xa8740c9f663c8f149c7f7be4, + limb2: 0x6f066ce3dd1f0f5, + limb3: 0x0, }, y: u384 { - limb0: 0x45f584bb123ee417f69a22ba, - limb1: 0xdf04ffc9dc515c574699e709, - limb2: 0x619bd5d8e446e7653d287f52, - limb3: 0xebda39b41cb789b69e9d1c1 - } + limb0: 0x4aa3daffc076e92ff6b946d1, + limb1: 0x3818f620414525abc495e44b, + limb2: 0xae70f24112363941, + limb3: 0x0, + }, }, - SumDlogDivLow: FunctionFelt { + RLCSumDlogDiv: FunctionFelt { a_num: array![ u384 { - limb0: 0x8c57db9060209c0b37fc7d09, - limb1: 0xf84edaea29c30790408f815a, - limb2: 0xcc36907573d0a50a5ab2de05, - limb3: 0x5c8873b8fa59e75695e6e68 - }, - u384 { - limb0: 0x74797acf5e88173453ae9801, - limb1: 0x771b8cd9505be9d4ed809298, - limb2: 0x58b3710510d8e512685395b2, - limb3: 0x26902ebd18d83be26c4f110 - }, - u384 { - limb0: 0x5759cd8660cd7b3615b0fa75, - limb1: 0x27cd155d9f03222b96f2a950, - limb2: 0x39dd8fb25179ed3171607eec, - limb3: 0x1215cf60ad654e95112185f7 - }, - u384 { - limb0: 0xa5d95f778b2b6e832ee03043, - limb1: 0xa1458bedcdbbdc1f3a90a417, - limb2: 0x3337f2ead92396068e4446d4, - limb3: 0x5468b86c1222dd1751f66c8 - }, - u384 { - limb0: 0x6a9666fefd3d9b13ee847f55, - limb1: 0xde3944edfd2eca125aae9907, - limb2: 0xad44df48d1efa1859c17d1a1, - limb3: 0xaf3c8e12a16202f5695a6fd - }, - u384 { - limb0: 0x69e18bd5323a42e21d927dba, - limb1: 0x470384c1b82355d739e6809, - limb2: 0x51fc8e26cd3adf43df7c0f4e, - limb3: 0xa2d218726b1462c6034bc7 - }, - u384 { - limb0: 0x42cb6bd8cbc555486f807845, - limb1: 0x3363a11b977fcf1049ff634e, - limb2: 0x4c51c3b1fcb19b423a7226c4, - limb3: 0x165c8378f77a14afe849ad01 - }, - u384 { - limb0: 0xc808090d740ada56bafce20, - limb1: 0xbf5a6e77e923bb666e4233ad, - limb2: 0x7d7f5398111e0ecc738e698b, - limb3: 0xec729b9c40f41cce35e0288 - }, - u384 { - limb0: 0x8d4bcd5b7fb384e9e569c347, - limb1: 0xa762eaa41680142ff510b199, - limb2: 0xfda2f77be7758f4fcb7a7e43, - limb3: 0x12781a78a97081fb0b23dc14 - }, - u384 { - limb0: 0x900a83e26a008cf0ffbcb62f, - limb1: 0x6023e47230f6ccd732542f32, - limb2: 0xea346c6a9b400e03453fc83b, - limb3: 0xd1255464c99b44f313c452c + limb0: 0x4b261f125f932b2df22a9f52, + limb1: 0x561f742375e347c8fc3d21a2, + limb2: 0x4b163bd0d2bed359, + limb3: 0x0, }, u384 { - limb0: 0xb11dc76145b6fa2db119473b, - limb1: 0x6730d2a0f6b0f623b33dce5f, - limb2: 0x434bacd764774b84f38512bf, - limb3: 0x1a0111ea397fe69a4b1ba7b6 + limb0: 0xcffc531f2c930d4b1ce2e421, + limb1: 0x942db8b5929e88749c170c00, + limb2: 0x4f132af4fc1366ed, + limb3: 0x0, }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ u384 { - limb0: 0x394ca5df941ef96ba376f70e, - limb1: 0xc7d92aba4a2aa18701246902, - limb2: 0xd59a8029e750171a9f78fe08, - limb3: 0xa16a37a149f1ff64c8b7fad + limb0: 0x41349ca1d6c96ca0bc46e7d7, + limb1: 0x5a16a159fc62985bdc7966f, + limb2: 0xd6f92168a0acd2a7, + limb3: 0x0, }, u384 { - limb0: 0xc387e5a382c5c90e8d9c037b, - limb1: 0xbb50c6c63a9a1c04932951ca, - limb2: 0x6975be66c8eead6bff7c8dc4, - limb3: 0x64df532d56d43bf48ba5b53 + limb0: 0xcbf815d3501b99626c79b193, + limb1: 0xedaa2841baff32ba1d0f3828, + limb2: 0x63ff6a873797193d, + limb3: 0x0, }, u384 { - limb0: 0xb14870dc86ab11a55ea4c782, - limb1: 0x2bee240fd06bfccfbc7b777a, - limb2: 0x5b2006814a638f32e7dbd44b, - limb3: 0x151c4ccc4417033c1c165173 + limb0: 0xe4a29637202964e1e224f23c, + limb1: 0x97bdb40a78f4bdac4216e4a5, + limb2: 0x39108033dfef5e9b, + limb3: 0x0, }, u384 { - limb0: 0xbf71c79ed815fe303ef62d28, - limb1: 0xca701061ffc4d675148be361, - limb2: 0x191560da60f93a98f737cf10, - limb3: 0xccafffddb49328410bca068 + limb0: 0x5ca10a4175716d893a21be97, + limb1: 0xfdbbe1a376b455a13408e4de, + limb2: 0x3a8b16e053ddb367, + limb3: 0x0, }, u384 { - limb0: 0xdbb2889be1deebc99dc00ffb, - limb1: 0xc9765bcb2901a9af32d6195e, - limb2: 0x9783b90a9f639023f2e5649f, - limb3: 0x1987e63dd9e7bdcdfd6ae16 + limb0: 0xf36b6c99d2f4b3707547036c, + limb1: 0xd20ff9749e0eadc70178b920, + limb2: 0x8a35cce356fbd58e, + limb3: 0x0, }, u384 { - limb0: 0x884d850a4e6dfd8a0f249f77, - limb1: 0xe29b719304f7e0a37e070848, - limb2: 0xfef717520b3ab9148f91bedc, - limb3: 0xd7f08cd89f0066f62b81f86 + limb0: 0x9d6acd5fa00cd2a83a84bbd2, + limb1: 0xe041b214f7e300850e6e33e6, + limb2: 0x5fda551bea2bf93d, + limb3: 0x0, }, u384 { - limb0: 0xea0b4b6b325cdcde6a72fd7a, - limb1: 0xc0901b33b2c7d6b20a2beacf, - limb2: 0x84aa3aa19442c6f17ff965ce, - limb3: 0x17e3bcba37a79fdbf9c752b8 + limb0: 0xf2424e2ef2aeb4f97929bfa3, + limb1: 0xa7de1c574c6d38e2add73486, + limb2: 0xe189c927e5fc4694, + limb3: 0x0, }, u384 { - limb0: 0xc8f128c78152c69a11efc551, - limb1: 0xc8f8915aae070ddc2cddd134, - limb2: 0xda738b8ea136f8eed7fe308d, - limb3: 0x9694196f5c44cdeed328652 + limb0: 0xf631583f3d2ce3042cc1e7d9, + limb1: 0x1ab1db16591bfedff7135f14, + limb2: 0x6f39a8db1fff6807, + limb3: 0x0, }, u384 { - limb0: 0xf805121e5b22b3b9b18e62dd, - limb1: 0x232ca35ac4309a820853775c, - limb2: 0xf053b9e9efd692e800e10210, - limb3: 0x5c1c26aaf117f278fc3a360 + limb0: 0x6220a748217837c9dc87d4ab, + limb1: 0xd912dc06f4ba96da3491fb62, + limb2: 0xcb83a489b8d61820, + limb3: 0x0, }, u384 { - limb0: 0xf1450654edec3ab0968ef6b, - limb1: 0x18c485f1d7e7b508fd7c8683, - limb2: 0xeafb8b4b03baf970f245e817, - limb3: 0x3dbc7f13e6688fafc83482e + limb0: 0x25a6b151a3a8a2de89881ba9, + limb1: 0x5a7b76d17a62476e51bfa178, + limb2: 0x1ce40107e2f2770e, + limb3: 0x0, }, u384 { - limb0: 0x1d167712a8656b2ad4f2a858, - limb1: 0xd1c554df4306dcf1fe2e59c3, - limb2: 0x2236edb3e9bea92a949cfd19, - limb3: 0xfc3794bfef3a1f0815acec7 + limb0: 0xfaf168c765a509a9e17061bc, + limb1: 0x50106331e4ef06bdf33cd366, + limb2: 0xd6be8b578252bfe9, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), - b_num: array![ + a_den: array![ + u384 { + limb0: 0xbd72378ba182a4282d70ae7f, + limb1: 0x235ac337803f7d004e1142d8, + limb2: 0x5104f6032d403f94, + limb3: 0x0, + }, u384 { - limb0: 0xa202091ba44aecfa248c6f3e, - limb1: 0x75413c1bb3b8c3666b15b01c, - limb2: 0xccac0cd74a788ec67d3dc940, - limb3: 0x13439c00fa351ef7532126c2 + limb0: 0x26cc6c990857c99bfacda25a, + limb1: 0xcabaec2171b94ba5d4f1babb, + limb2: 0x95e5b2ef262c001f, + limb3: 0x0, }, u384 { - limb0: 0x3015579bf6dcddb618f9ac7c, - limb1: 0xd104d39fa242b410524e6740, - limb2: 0x2b26cf9bd335048d63267a4, - limb3: 0x5a7c87953a2c44b94effdce + limb0: 0xd0d4e38ebb69e4532d9efeba, + limb1: 0x44c3e38e9e7967b8008caa17, + limb2: 0x58b61a760babc9d6, + limb3: 0x0, }, u384 { - limb0: 0x1b7f6528d55b2ea84fe82d07, - limb1: 0x87bee73d9b87a3bf055f6a9d, - limb2: 0x8fca8c88f1e7d3716215ff1e, - limb3: 0x13ea27c9bf59362d915c3408 + limb0: 0x9d9e89cbdfa6f4bea402c974, + limb1: 0x9dbe82a503384a9e6db9d8dd, + limb2: 0x54172c64568da814, + limb3: 0x0, }, u384 { - limb0: 0x69d91d3e39ceac418f7df446, - limb1: 0xec655a535ee5055e300ebb7d, - limb2: 0x648d478b040f3b9e66edbff7, - limb3: 0xd75e459ab5668e9a4fb6efe + limb0: 0x9849891f7d4b9fea5cc36950, + limb1: 0x191f92f08bfc15df518c83fd, + limb2: 0x3ba0e596d1437f6c, + limb3: 0x0, }, u384 { - limb0: 0x19650f683a932a5f77aa5d1c, - limb1: 0x2a5ba492a31aa5a04a3f7ef7, - limb2: 0xe5796b6849fee3766fceae27, - limb3: 0xc22449c53b688c4912733da + limb0: 0x27cd80d1c358af6ca751d260, + limb1: 0x7a42ade21a471e526004b19, + limb2: 0xd2b9562ed16f48f8, + limb3: 0x0, }, u384 { - limb0: 0xd459cc954748899d1cb69c7e, - limb1: 0xa9347fde14531723abe8ab97, - limb2: 0x11be1310d423ecac824e49a9, - limb3: 0xa7b235343e73a56a1ec3a65 + limb0: 0xda313f4670a7fa4152a62c91, + limb1: 0xf7131497b0fd4d3d58a50f88, + limb2: 0xde7ec8705a2e8720, + limb3: 0x0, }, u384 { - limb0: 0x3b643d76457ab54727feca50, - limb1: 0xb334c275106a0267a78f331d, - limb2: 0xd90c726c9904f3073590bcb9, - limb3: 0xb79288931e314a636bf9c06 + limb0: 0x33c717b5e23eda3363b2e464, + limb1: 0xfd2f9211711dc9be10d3e971, + limb2: 0x7008ca982a9b79a0, + limb3: 0x0, }, u384 { - limb0: 0x764cf1fb3ffe54b78b6634ee, - limb1: 0x3af13ad911473e34ea107008, - limb2: 0x79b812aae3f034a9f7fff1d, - limb3: 0x2e95abbf1188037126eb601 + limb0: 0xb23731a7eaf5636bd9942130, + limb1: 0xd48183290fa77582be98339d, + limb2: 0xe02b363ca58821d6, + limb3: 0x0, }, u384 { - limb0: 0x7d561f7eacbcc3339d6ff06e, - limb1: 0x3f98ae97bbc5922f46626ef6, - limb2: 0x81e2c797f9b8483403e9f593, - limb3: 0x133579216a52ac950009461f + limb0: 0x95b132a6f14cb12ba5c2b8f7, + limb1: 0x7b6070deebe486d8d8ee4d31, + limb2: 0x75051a53ef78b836, + limb3: 0x0, }, u384 { - limb0: 0xc5d43e5c27a7e444f7b1eefd, - limb1: 0xb968b631d518c797aece659e, - limb2: 0xb8348611f29c0cfaba4ef447, - limb3: 0xd47a6a1bcafb955bb88d7c8 + limb0: 0x55dd6a28bb25257316c4af63, + limb1: 0x3728e42109f277cb35fc2a1e, + limb2: 0x18a104dc8e2b9b56, + limb3: 0x0, }, u384 { - limb0: 0xc43034c834d833bdaeed1b51, - limb1: 0x73e225d519c73e685b4fded7, - limb2: 0xc8c637ce038654f930013eed, - limb3: 0x4c1b45ef0989337eb0df07a + limb0: 0x39b351e37b8e9d31b8b8cb39, + limb1: 0x8b69164c6a40aff97159ee44, + limb2: 0x7d2f6656b0369ca7, + limb3: 0x0, }, u384 { - limb0: 0x4dd6890dd91c9292b08b6b57, - limb1: 0xfe7c723b503298998cf71680, - limb2: 0xc1083c0322894aea9168b47b, - limb3: 0x82a4390a2106246ffd7f831 + limb0: 0x67e8b3625f17794ee71189ae, + limb1: 0x96f1d8c12def6c88bb93cc91, + limb2: 0xfe079f9eb1c4501e, + limb3: 0x0, }, + u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - b_den: array![ + b_num: array![ u384 { - limb0: 0x33de977e967ce5ae8ddc318d, - limb1: 0xb833d84831f98ff7e5e5a40a, - limb2: 0x131e53d038c910e58a5ee563, - limb3: 0xe597bfe18fc993ee7125701 + limb0: 0x38cda0a8f13de55d488e4d6b, + limb1: 0x446eb3df79a734adf4def1a5, + limb2: 0x19b9e5c133ae29d5, + limb3: 0x0, }, u384 { - limb0: 0xe1f968e0b17243a36700dec, - limb1: 0xed431b18ea6870124ca5472b, - limb2: 0xa5d6f99b23bab5affdf23712, - limb3: 0x1937d4cb55b50efd22e96d4d + limb0: 0x35171069eae34a9c782da66c, + limb1: 0xd1844eb8a16fd39e6bc1425b, + limb2: 0xb79876e46d9b13f6, + limb3: 0x0, }, u384 { - limb0: 0xb125c372ecaf46957a941e07, - limb1: 0x7a26185c5d9d10d295e9ddee, - limb2: 0xa29d137efc285a3cc4e018ee, - limb3: 0x66dfd7263dc59218f064eaa + limb0: 0xb328f6db826e8cc995cd07cb, + limb1: 0x26f27a96f38f690c329fa1b0, + limb2: 0xff42c7ac457dcc99, + limb3: 0x0, }, u384 { - limb0: 0xd46bc45b8078f22c9f505658, - limb1: 0x2337c7005bdc0f1315fbf68b, - limb2: 0xb358a9e4a2466a74954e14cd, - limb3: 0x9407f9d0ec41cd1f946b1e1 + limb0: 0xbf2c475e4e2e288f0216bcfc, + limb1: 0xb3fef48999d1e5c48555c364, + limb2: 0x29a8ec8790ba5081, + limb3: 0x0, }, u384 { - limb0: 0x325208130a417835049c4367, - limb1: 0xe12a35f2dea0c2c15e81b746, - limb2: 0xc784a291467cedfbcb122043, - limb3: 0xcafeec24be73332c81513ad + limb0: 0x778094cf0fdc66024dd1d82, + limb1: 0xf7c4bcacc7a7351bcfa4272e, + limb2: 0x6e23e468cd3313fd, + limb3: 0x0, }, u384 { - limb0: 0x6fd685064c6507cd9b37f008, - limb1: 0xe7fa4519f6e99315773f989f, - limb2: 0xd0650a1aae5fdc7b3f18aa3f, - limb3: 0x17164c2df8d74fc510bf8022 + limb0: 0xa83dc7cec0b839144a326c14, + limb1: 0x27151329c8a3abae16b9276c, + limb2: 0x6b59fce2d5efd4fc, + limb3: 0x0, }, u384 { - limb0: 0xa24ef54cb98d71a9e8c37864, - limb1: 0x2fed32acf02058acc28b8ea6, - limb2: 0x1e8f98032027284b29091b4e, - limb3: 0x455ab3dd3e8178acb6b4c71 + limb0: 0xad6163d83fc04ed8eccb265a, + limb1: 0xd0e169707bb6d9cfb2b76bcd, + limb2: 0x904851a79aed1964, + limb3: 0x0, }, u384 { - limb0: 0x4e232bba2d2b0631e57f7a94, - limb1: 0x8627ce94ea6ceafbc7a15e33, - limb2: 0xbe063a6dbfc8285a5f591417, - limb3: 0xd3c72d57b2fc8be49851fab + limb0: 0xf754afb043cfbf180398edb3, + limb1: 0xa88d5f4765abaa9eb94b48a4, + limb2: 0x4e0c39de2fa7d63a, + limb3: 0x0, }, u384 { - limb0: 0xb70dcd8400f9cc70d55e8040, - limb1: 0x81d2c5d1f09548780a8e5bd, - limb2: 0x7cfa5222661db92f9f90b45e, - limb3: 0xa85008e0cb61c7356ab0554 + limb0: 0x8a5007b9bee9d33e90747c99, + limb1: 0xb85d397d5b249108dfdb7a29, + limb2: 0x4b983f4446235b76, + limb3: 0x0, }, u384 { - limb0: 0x75088d00b3d8eb8a9017107b, - limb1: 0xbc71605a1bb5b4b1e17204dd, - limb2: 0xed4cbaf63eb76130558bf36b, - limb3: 0xd51ca94f7c1dd2da0b8cbbd + limb0: 0x483983813861fb8afede3b50, + limb1: 0xc9a7eb123521d2a87ff332b8, + limb2: 0x807f9e3d1aaefdf6, + limb3: 0x0, }, u384 { - limb0: 0xdaa30512aeea734565bb115b, - limb1: 0x41ac3f95ccc0955be83f3843, - limb2: 0xdcb7e8af7f43068f4367ff76, - limb3: 0x147502f27e93076c5c667202 + limb0: 0xc41fc815a7c8f45f65808f30, + limb1: 0x311ec6ae75d79a76c26d7c6f, + limb2: 0xfcd9374ba0f8453a, + limb3: 0x0, }, u384 { - limb0: 0xf805121e5b22b3b9b18e62e1, - limb1: 0x232ca35ac4309a820853775c, - limb2: 0xf053b9e9efd692e800e10210, - limb3: 0x5c1c26aaf117f278fc3a360 + limb0: 0xa04fbd4a8d5d0d61f20e9f6c, + limb1: 0x2dee29f2e218c15ab53bd4fd, + limb2: 0xb781415b14d572ea, + limb3: 0x0, }, u384 { - limb0: 0xf1450654edec3ab0968ef6b, - limb1: 0x18c485f1d7e7b508fd7c8683, - limb2: 0xeafb8b4b03baf970f245e817, - limb3: 0x3dbc7f13e6688fafc83482e + limb0: 0x6e292a1187c5c1a971b10e54, + limb1: 0x8cd396a0c3fcf65d308acc82, + limb2: 0x617898635da6d644, + limb3: 0x0, }, u384 { - limb0: 0x1d167712a8656b2ad4f2a858, - limb1: 0xd1c554df4306dcf1fe2e59c3, - limb2: 0x2236edb3e9bea92a949cfd19, - limb3: 0xfc3794bfef3a1f0815acec7 + limb0: 0xf8cf29c80f4ebf4478cd8be0, + limb1: 0x3971ec3ccf65681ca7dc2e15, + limb2: 0xfcfe13c91cd6688b, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x57a1bedaed307dfc807a6097, - limb1: 0xf0576fdb0977ccaacf2543cc, - limb2: 0x9a1a3f605b84c06e9b7599ba, - limb3: 0x9e4eb4fdc2f844ef18e475e - }, - u384 { - limb0: 0x2d65f9410bd65b0329929049, - limb1: 0x52710301436f5dbe18dc07ac, - limb2: 0x5caa213b1ffefc049f143893, - limb3: 0xc7b6aa5ab7dc019ae1c26b4 - }, - u384 { - limb0: 0xbdfa5450308917dce7561bd4, - limb1: 0x462ba3498fd650c25f641d91, - limb2: 0x278eb1aa9c842f723c9d8913, - limb3: 0x7e9c7115f305529ed785346 - }, - u384 { - limb0: 0x4ed2488bb45ac8cf92ad7667, - limb1: 0x84760b92981fa474d59746d6, - limb2: 0x4c85c420094ef2ab1c303baf, - limb3: 0x173e21c1f95d4d29003e1d2b - }, - u384 { - limb0: 0x9bb0bee935ad63cfd17a4337, - limb1: 0xa0254c33124be868490afd0c, - limb2: 0xfe28a3b557124cb7602779e1, - limb3: 0x225870c8dd2096d6c362259 - }, - u384 { - limb0: 0x811fa25cf6df9f09dc07c5b5, - limb1: 0x97d62f71d019ee669dbeec65, - limb2: 0xdd4ed3ac8ef05435180c79ea, - limb3: 0x709af74f7cba5b68d72e206 - }, - u384 { - limb0: 0xb1890a529e04611f6ab6ff1a, - limb1: 0x7cc023ec9c9a001fc9c42556, - limb2: 0x1318bbaadab7e3bf04df7221, - limb3: 0x1038475993e4e1a3dfb5b1b8 - }, - u384 { - limb0: 0x905742765c8688c05aa7b9d, - limb1: 0x60a3a9bbc0acc36b2d02ee69, - limb2: 0xbd8d7fb09d49a3ae289b92f6, - limb3: 0x1597a30f7eee8d52f398b599 - }, - u384 { - limb0: 0xf584f911f44c5c56567e0f58, - limb1: 0x6e7653796c6f13ed8497461f, - limb2: 0x4e6fea913af81f6e1a370973, - limb3: 0x1864aa3078e61a7187ae6af4 - }, - u384 { - limb0: 0xe5f66986ea013031f7678400, - limb1: 0x87e4e87992f958a32e8ed570, - limb2: 0x9c7353d97e842b6abd13328f, - limb3: 0x1031f6799af53ae6940c3b81 - }, - u384 { - limb0: 0x959659e1cd5105cacd04b9a, - limb1: 0xb39869507b587b1272bb046d, - limb2: 0x21a5d66bb23ba5c279c2895f, - limb3: 0xd0088f51cbff34d258dd3db - }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - a_den: array![ - u384 { - limb0: 0x7b7fa2ffc473ed10e5d76d7a, - limb1: 0x6a00205795fb45223c10304d, - limb2: 0x669a88ea3bb76f87a4ae5d6d, - limb3: 0x13103af9e2816698196bba17 - }, - u384 { - limb0: 0x52f4cf35a1f2163e1bfaf5ea, - limb1: 0x6f201be478e40fd30fef1e1d, - limb2: 0x941a0e0aefe33047d2b26a89, - limb3: 0x38b83ad8282569768f47725 - }, - u384 { - limb0: 0x9891ad40da4d6ef8928f6cc4, - limb1: 0x2a8070b5984d1938df81be6a, - limb2: 0xb85eaacf327d173a9dfec601, - limb3: 0x178312a33dbb581f17f4414c - }, - u384 { - limb0: 0x2eef2228e46e13ca46530d54, - limb1: 0x7137e25e6a65d3196bef6879, - limb2: 0x160d1cec38b0582c6ad58e5d, - limb3: 0x75c03b09cf3200587e43949 - }, - u384 { - limb0: 0xd521c60103ebe779a9f1f1, - limb1: 0x8c9ce6d677349a53a9d694b4, - limb2: 0x975f5a768622c2bc7ef76c23, - limb3: 0xa14b1729b0945c468f079e9 - }, - u384 { - limb0: 0xd87145c6f6047de38c1870bf, - limb1: 0x725adce253cc0cbb8ca39200, - limb2: 0x5b4983d878473602ccea4220, - limb3: 0x13dae5e86c4abe526e2db101 - }, - u384 { - limb0: 0xc4385eedc4af072fefc321e4, - limb1: 0x3636ae3b2557ef299f035e45, - limb2: 0x45bffe49c01663dcdb889cc5, - limb3: 0x961c674545a5e1097fd597b - }, + b_den: array![ u384 { - limb0: 0xa0dce417b47afb80d5361355, - limb1: 0xde7a2cb1833b199b089a6d46, - limb2: 0x50c2d54cf67e6239fce01573, - limb3: 0x7d934b39d08aacc7329dfff + limb0: 0x2e1f84d16a927d1b3e14cd1b, + limb1: 0xf77b568481bc6b022278d3ed, + limb2: 0x3722ba163cc1bd0c, + limb3: 0x0, }, u384 { - limb0: 0xcfc571cba82d9c6c8a142f2f, - limb1: 0xc1dee38699a8f4b9214d71d2, - limb2: 0x3c9e60b271df42ed2a774270, - limb3: 0x811f816d5464cb4ded9fdd2 + limb0: 0xf96f82f3a668347db9f7fba, + limb1: 0x8b1c74ea1c111188d29c1b1e, + limb2: 0x1947e48a0b3400de, + limb3: 0x0, }, u384 { - limb0: 0xad29dd0d27745feded7ef6ff, - limb1: 0xfdeb3cc4e7d1b65288f60c19, - limb2: 0xf9833f6339b3d33f63bbb5e2, - limb3: 0x113f8d05d5665b539eb2c168 + limb0: 0xb5d238e71fe53e483f58feb8, + limb1: 0xe15b38e65551d60803d8a6a6, + limb2: 0x6cfab93a51b284db, + limb3: 0x0, }, u384 { - limb0: 0x46142ce17bf2b4e9ab8cd515, - limb1: 0x1ff8162e67379b8e6bc9fc69, - limb2: 0xcbac3ba9ffb4d902d6c67492, - limb3: 0x541c96fb4b33a4bec71dba3 + limb0: 0xcc7fc1ebf135560a984384d, + limb1: 0x739055ba96c987554e2630e8, + limb2: 0x9da72cc18b1fd824, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0xd4f4bf6dd4b009d898a2fa6c, - limb1: 0x38d6a4560682b0ff0fcb5dec, - limb2: 0x7c8ce41b447c92837ee03421, - limb3: 0x110e83b4fa1933e3b8ac879a + limb0: 0x50cf2c757569290684258b2c, + limb1: 0x7a97f0b5459de4c10fc956aa, + limb2: 0x374bfa0edf047c14, + limb3: 0x0, }, u384 { - limb0: 0x5e0f8625307dc2742d4ed785, - limb1: 0xc7c755c9785ecd8ca91cefa5, - limb2: 0x5bfd311117ec2d8161f0c770, - limb3: 0xa64c27df6827360023d6d9c + limb0: 0xe773694b12d6b051c0dbd640, + limb1: 0x7a410fa189f884fc0a8eb7c7, + limb2: 0x1bc775bdc5b6c89e, + limb3: 0x0, }, u384 { - limb0: 0x62c92e8f42479808388c1466, - limb1: 0x8500cc7545642a34692de8, - limb2: 0x97a3f1dc2ba342a9973efac2, - limb3: 0xdd1a0c45a350401beba8531 + limb0: 0x94f744b8f43ecc8de68e1851, + limb1: 0x5f4412cada25674bda3d459b, + limb2: 0x698ea776cdd359fb, + limb3: 0x0, }, u384 { - limb0: 0xa3a960a1734bae2c857c1196, - limb1: 0x8feebdf958ad84fa2ee6ed37, - limb2: 0xe7fc8ea809dc5cdbfc45ecd7, - limb3: 0xa6ee3c9f209e58595fa0bdb + limb0: 0x2bb2f18ad03975516a7b37f, + limb1: 0x56c916aa3cc9a11c757e616, + limb2: 0x4bde6fbffb83d2d3, + limb3: 0x0, }, u384 { - limb0: 0xd40a5c705a98d4cc5c52aad0, - limb1: 0x91a216ef9200ae90bbbdb792, - limb2: 0x2ed5995380421b12cd5fbd9d, - limb3: 0xd8ba876156bf90fb50450e9 + limb0: 0x74fdc69300e67659a5ed196, + limb1: 0xd72ec0fd8f38a8785c29b469, + limb2: 0xf3e7d1d7582835d7, + limb3: 0x0, }, u384 { - limb0: 0x8b281bfb19a809c0df1c9bbd, - limb1: 0x8e69500d97d15ce50ae8d461, - limb2: 0x22f5278a5c9c10f2d61f4361, - limb3: 0x4401e59a1bc3256fdccaf7c + limb0: 0xf209a1d709c0d276daf94a96, + limb1: 0x56b62ab0243cfd2b47292be3, + limb2: 0x11a280bbe67b909e, + limb3: 0x0, }, u384 { - limb0: 0xd811ac59b824a6bd31906e54, - limb1: 0xaf203880558c2dddeabefdf4, - limb2: 0x6759bd9aa4807979aedc92ed, - limb3: 0x73153a879f949e892e73fa7 + limb0: 0x8cd4fed30042e05a0313b3ea, + limb1: 0x7f4dcef8b6bf104c8ab91045, + limb2: 0x1c6feca00dccb8fc, + limb3: 0x0, }, u384 { - limb0: 0x9ca9eb6ec758ecd9d6762bd1, - limb1: 0x87fd167599f2e234131d6571, - limb2: 0xde68a5e0040b767e90c2f347, - limb3: 0x187e3b31ad215dc3a7b5e79d + limb0: 0x461e6ee04bdbafcbe6a1bf03, + limb1: 0xa4611f3ff76c4554d80db77b, + limb2: 0x4c77029b77066a6b, + limb3: 0x0, }, u384 { - limb0: 0x188f6aa2ebb8ccd81bd5410, - limb1: 0x1fdb2314ffe0fb5857826f3b, - limb2: 0xce6c22720c5a22322fe65fa1, - limb3: 0x8b85773fc5211245fc8c636 + limb0: 0x6d0e1a578af1025af73d9770, + limb1: 0x9bfd5e272d707e95f9f8e52b, + limb2: 0x673a77aacbd6e90c, + limb3: 0x0, }, u384 { - limb0: 0xbedd3f97e0898119923a758d, - limb1: 0xf97001126d24e34ecfa8b005, - limb2: 0xd5cef5953fab0b31e3f7d79a, - limb3: 0x147b323cfae81571edfd13ce + limb0: 0x55dd6a28bb25257316c4af6a, + limb1: 0x3728e42109f277cb35fc2a1e, + limb2: 0x18a104dc8e2b9b56, + limb3: 0x0, }, u384 { - limb0: 0x45dafe827880f3620703b27c, - limb1: 0xd32319e20d4f2dccf6cc0871, - limb2: 0x9ed6722630aee2d4645b1e33, - limb3: 0x14f58137e27c21acfa3ddcb2 + limb0: 0x39b351e37b8e9d31b8b8cb39, + limb1: 0x8b69164c6a40aff97159ee44, + limb2: 0x7d2f6656b0369ca7, + limb3: 0x0, }, u384 { - limb0: 0x8327e8b1ad4d2b64fddd8d99, - limb1: 0x6ecc073ab5785950858a015f, - limb2: 0x584fb63812ca7ace6ba595e9, - limb3: 0x15571b43eff060127e710150 + limb0: 0x67e8b3625f17794ee71189ae, + limb1: 0x96f1d8c12def6c88bb93cc91, + limb2: 0xfe079f9eb1c4501e, + limb3: 0x0, }, + u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - b_den: array![ - u384 { - limb0: 0x8b568bff9dd1b443975e6092, - limb1: 0xd99edc1c6a8b2840b2e8c138, - limb2: 0x13d2c9fa25ef2714abaf5036, - limb3: 0x183ec8131705cd2bcf7798f1 - }, - u384 { - limb0: 0x4bd33cd687c858f86febd7a8, - limb1: 0xbc806f91e3903f4c3fbc7875, - limb2: 0x5068382bbf8cc11f4ac9aa25, - limb3: 0xe2e0eb60a095a5da3d1dc96 - }, - u384 { - limb0: 0x4e4ab5043b38bbe24a3eb30f, - limb1: 0x746f4af37d2182772202f9ae, - limb2: 0x1797a4b69c8e7a5b9d6bdfc6, - limb3: 0x100914ce4a6dacad7e7e0e10 - }, - u384 { - limb0: 0x85e82ba39c2d3c39ff23f81f, - limb1: 0xc7aed73048e19b63cd21d233, - limb2: 0x7b834fc3ba0184b45c7f8423, - limb3: 0x167f37d21cce0013ede0f785 - }, - u384 { - limb0: 0xa4f5564dec02c5dc02a31303, - limb1: 0x3a62e49d5f0582fd989d70ee, - limb2: 0xae4bcb0da3f6efb4db0b0858, - limb3: 0x11dd378db527870ec19ab715 - }, - u384 { - limb0: 0xe65ac45d84626686c2f22fbf, - limb1: 0xbe596c5c036a69bab60c0671, - limb2: 0x5ba1b3aae6340cb6f7189644, - limb3: 0x18eb748642669d99ef580e2f - }, - u384 { - limb0: 0x8e7c9de03d2b308a055fea39, - limb1: 0xe2e1c8aa0914999bc950e191, - limb2: 0xe9c1693bd4929c1ae572eeb2, - limb3: 0x12e20b97b4dcb1ad9cbdf77f - }, - u384 { - limb0: 0xd2f4b22518f0d9eace82949a, - limb1: 0x9f54c6fb8d700a9bad9449cf, - limb2: 0x971f02d2fba5001f7ef2af33, - limb3: 0xf787256d5ac0a5bea7c5230 - }, - u384 { - limb0: 0xb4df0cf622bcef95b469d825, - limb1: 0xab74c5bacd0df357d481594e, - limb2: 0xc72bacf376d5aaad8fbd2664, - limb3: 0x20a26f4e6423f1535e58dd - }, - u384 { - limb0: 0x64e3d323348386e7a5bffddf, - limb1: 0xf851296be08be60766d78eb0, - limb2: 0x61e9f550797fce4b8fe83c12, - limb3: 0x5cc4ccfd741790317567fc - }, - u384 { - limb0: 0x7d9979dea46cf278369bcfe, - limb1: 0xf729b2ca296891b099165eed, - limb2: 0x3c28171d90da7ac06474d4fc, - limb3: 0x2df48883655ad61d9d5a6d8 - }, - u384 { - limb0: 0xcfc571cba82d9c6c8a142f33, - limb1: 0xc1dee38699a8f4b9214d71d2, - limb2: 0x3c9e60b271df42ed2a774270, - limb3: 0x811f816d5464cb4ded9fdd2 - }, - u384 { - limb0: 0xad29dd0d27745feded7ef6ff, - limb1: 0xfdeb3cc4e7d1b65288f60c19, - limb2: 0xf9833f6339b3d33f63bbb5e2, - limb3: 0x113f8d05d5665b539eb2c168 - }, - u384 { - limb0: 0x46142ce17bf2b4e9ab8cd515, - limb1: 0x1ff8162e67379b8e6bc9fc69, - limb2: 0xcbac3ba9ffb4d902d6c67492, - limb3: 0x541c96fb4b33a4bec71dba3 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x3f06676a4ca165bd943482b1, - limb1: 0x7b8942bed3acbedbfbfcf9ca, - limb2: 0x80ff9248f19727f3ef4bbf43, - limb3: 0x323623273fe937f82c1f19d - }, - u384 { - limb0: 0x302ea91a3b09524e7c49fbbb, - limb1: 0xb39869507b587b118b5d4593, - limb2: 0x21a5d66bb23ba5c279c2895f, - limb3: 0xd0088f51cbff34d258dd3db - } - ] - .span(), - a_den: array![ - u384 { - limb0: 0xfd25ccd567319347684f7e8a, - limb1: 0xed5aac27c72fdd8abf4ae507, - limb2: 0xcc18446e7028de7e7fbd98c2, - limb3: 0x17f5a4a58d99e761758b2c84 - }, - u384 { - limb0: 0x9575079ca5b9d155318cf5d5, - limb1: 0x6463a2b2f9dc1051c2de0f0e, - limb2: 0x9b2c81e973d2fea46c51b8c6, - limb3: 0x152582ab1776f005cd1eaa1e - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0x96b654e8990024b1dad5faa7, - limb1: 0x16f6fe4ccfcba6ac2597e7b7, - limb2: 0x9e426581e55e97d34ea9339, - limb3: 0x9de35790d1820950f292429 - }, - u384 { - limb0: 0x50cd837744dce1fa5f6e7d91, - limb1: 0xa2a410e6ff23c005e2492eb, - limb2: 0xa3f1650466c73dd460c24def, - limb3: 0x16e66afbc29f76423c4eaec0 - }, - u384 { - limb0: 0x11e0ab6b6a648317ad3b771, - limb1: 0x579ad748d4455dc595797118, - limb2: 0xf826b92a9e587eabf24e6fd6, - limb3: 0x16c4aa5662c14c1d7c5b85 - } - ] - .span(), - b_den: array![ - u384 { - limb0: 0xe09b33566ec94d1da13efa27, - limb1: 0x7fd838bc38ac93bea1279423, - limb2: 0x667e0b33933d976b24672acd, - limb3: 0x11d35cd789e7e9b6f4d9baf0 - }, - u384 { - limb0: 0x41d81e7368ea4554c634d753, - limb1: 0x5bfc12e9035d5edaaf743c3e, - limb2: 0xa2cf011fa1e61802d6b7aadb, - limb3: 0x692d4edb15c0c485327b157 - }, - u384 { limb0: 0x4, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { - limb0: 0xfd25ccd567319347684f7e8a, - limb1: 0xed5aac27c72fdd8abf4ae507, - limb2: 0xcc18446e7028de7e7fbd98c2, - limb3: 0x17f5a4a58d99e761758b2c84 - }, - u384 { - limb0: 0x9575079ca5b9d155318cf5d5, - limb1: 0x6463a2b2f9dc1051c2de0f0e, - limb2: 0x9b2c81e973d2fea46c51b8c6, - limb3: 0x152582ab1776f005cd1eaa1e - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() }, }; let derive_point_from_x_hint = DerivePointFromXHint { y_last_attempt: u384 { - limb0: 0x99fae3e65271b45f5539badf, - limb1: 0x3025a049152b4c59c56e2ec4, - limb2: 0xb47d8b97def7714621056367, - limb3: 0xbffcee71f25077a76d7fa2e + limb0: 0xed6d926b80859b9361bdc00f, + limb1: 0x46199293ad99cbc962bf5e92, + limb2: 0x3791d3704355e2b5, + limb3: 0x0, }, g_rhs_sqrt: array![].span(), }; let points = array![ G1Point { x: u384 { - limb0: 0xe4f817e54aede0613c17035c, - limb1: 0xdff1f15010392a6da1f95a6, - limb2: 0xbed78d3d341e911d49f15454, - limb3: 0x18154782ce0913b21588066d + limb0: 0x393dead57bc85a6e9bb44a70, + limb1: 0x64d4b065b3ede27cf9fb9e5c, + limb2: 0xda670c8c69a8ce0a, + limb3: 0x0, }, y: u384 { - limb0: 0x3d77d61326ef5a9a5a681757, - limb1: 0xd3070afd4f0e121de7fcee60, - limb2: 0xdf9ef4088763fe611fb85858, - limb3: 0x11a612bdd0bc09562856a70 - } + limb0: 0x789872895ad7121175bd78f8, + limb1: 0xc0deb0b56fb251e8fb5d0a8d, + limb2: 0x3f10d670dc3297c2, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0xde4f62a6588c9401ffefbd3, - limb1: 0x9bb5f797ac6d3395b71420b5, - limb2: 0xdc39e973aaf31de52219df08, - limb3: 0x105dcc4dce3960447d21d3c1 + limb0: 0xfdfdc509f368ba4395773d3a, + limb1: 0x8de2b60b577a13d0f83b578e, + limb2: 0xc2dd970269530ba2, + limb3: 0x0, }, y: u384 { - limb0: 0xaefd0d854043fd325dd3c34f, - limb1: 0x9b63c98d9a7845c52e1e2b0f, - limb2: 0x9db0be660d847ccc58358f3f, - limb3: 0x17cb6c41f0c4e1a7394ab62a - } + limb0: 0x589fa250d638e35400c12ddf, + limb1: 0xb3aac19fcb5095808402aa7f, + limb2: 0xed6de6590d0195d1, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0xcf86158ab69213388e721bb7, - limb1: 0x5f7812269d790797cad9aa15, - limb2: 0xb1c3622a0177001d9ed8e25f, - limb3: 0x115cf429f459884785c6ba46 + limb0: 0x2965eeb3ec1fe786a6abe874, + limb1: 0x33e2545f82bb6add02788b8e, + limb2: 0xf586bc0db335d7b8, + limb3: 0x0, }, y: u384 { - limb0: 0x1e81341e2f3f988ff115dda3, - limb1: 0xad22946489db6ee4954fa5e1, - limb2: 0x83bed94412e19d92b73cc763, - limb3: 0x2074c7bceff87d0d41edba1 - } + limb0: 0x155b35991489db2fdf4de620, + limb1: 0xf24ce461346a182d67eeccf0, + limb2: 0xb4122bb4b37cc7d5, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0xe2955c55da59eba4b7b57d3d, - limb1: 0x1e6629b0431bce67cf28c22, - limb2: 0x1c35b7efd5b67f87221b8bfc, - limb3: 0x3e53df9e3488a9e42acd87e + limb0: 0x12815740835b12f70b96c66f, + limb1: 0xbfa76a8b80aec9f2e31c40cc, + limb2: 0xcd8a26d17d33c7c1, + limb3: 0x0, }, y: u384 { - limb0: 0x2e089afa726154d40dd12102, - limb1: 0x5391613ecf49db2bcf1cad86, - limb2: 0x84a2abb2de6b3a6e09026a50, - limb3: 0x19557a3a3c1d62a205d5dc87 - } + limb0: 0x9a8f496f09402b8fd6beb89b, + limb1: 0x28e48918dad2123d7f202bef, + limb2: 0xcdd11b6ffb3f8614, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0x490bf40774926e8b279947c, - limb1: 0xeabab6aef9e9d2a4f64f4e7d, - limb2: 0x3e309fe1b1c8247abab20d7e, - limb3: 0x79c527862917f69ac58fcc4 + limb0: 0xb5076be8537cff2a42c6db68, + limb1: 0x1066d40cbd01a3752e4e069c, + limb2: 0x123ec2fd302cb0f9, + limb3: 0x0, }, y: u384 { - limb0: 0xacb18f2da2b425c2ff50dafd, - limb1: 0x7623850d87e279a8a30f31ff, - limb2: 0x777564c7291d95fa80203ade, - limb3: 0x1764ce0e7fb626109b63789b - } + limb0: 0xc85f5e5efdf415f8081bf53f, + limb1: 0xadc5010e9d9ac6c64000d33d, + limb2: 0xf81314011d8852e4, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0x42f2f3f4f6b9d2c2b73a361f, - limb1: 0xcd78c070c184c38b1e5716aa, - limb2: 0x72cbc24cd90da89e0e3cefe4, - limb3: 0x19485e1c46d0dce75f8b192b + limb0: 0xd5915098d3d2001310b0b935, + limb1: 0x88bb4507ebf1be82cfba2397, + limb2: 0x8a463f1c00ce885f, + limb3: 0x0, }, y: u384 { - limb0: 0xb56b3539074b3c47b3f504d9, - limb1: 0x2c229530bddedd8851b03dcc, - limb2: 0xc93eef8474c4e18d6378e7f0, - limb3: 0x173d36f17a3c9ae77a2acc25 - } + limb0: 0x414858f8a83f9d4498890137, + limb1: 0xa09c4658c47ace74c42cdb60, + limb2: 0x8aaf300ff3ab7d98, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0x5fbf29cf20556a11621a6639, - limb1: 0xdfda5b7dbf0b226822094787, - limb2: 0x4a3b059e521b4b0445df96d5, - limb3: 0x333988c2c09f5af061cdfb + limb0: 0x1772eb803ddc8a82e23b1c05, + limb1: 0xc26baeb89b03fd69eb64b337, + limb2: 0x4ea7131b2d873a45, + limb3: 0x0, }, y: u384 { - limb0: 0x13d3570be6d27d1d588b22fc, - limb1: 0x20c763e58d4df3e4990cdae9, - limb2: 0x2c3301367f400c31f4bded26, - limb3: 0x16a6c25d133fba74b4c55972 - } + limb0: 0xc9d16330db15efd90235eed9, + limb1: 0x1b586ef360673d36baa16189, + limb2: 0xee652d2b848ad111, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0xcb24d12438557639f52df5fd, - limb1: 0x4a6a46feebe8a88a8062bd0e, - limb2: 0x65f04211af4b168b1e25787d, - limb3: 0x17935d6f4fa575744ca46f75 + limb0: 0x68f9e7942638253f3b596f1f, + limb1: 0xb37e6153d9accd97a344f384, + limb2: 0xda48eae9ff614551, + limb3: 0x0, }, y: u384 { - limb0: 0x644f324be8a5c152625a5b8a, - limb1: 0x501e52e8c5707d7a3a77ee18, - limb2: 0x9636c463c14c5b85c2e6d3b1, - limb3: 0x1939b6f297f7b5b7fd0ac458 - } + limb0: 0xc58be8ed857035b34f51c620, + limb1: 0x3b14ed53116cb7c1db000006, + limb2: 0x7dfa292fe99b77dd, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0xde1d8e2670532ec5bba60ade, - limb1: 0x1154f5064f7dd38656f7f82b, - limb2: 0xc9bec68372b7d07dcf66270c, - limb3: 0x315ced00b3153219bbd430 + limb0: 0xf7f7bd2513c1b31de932bbd2, + limb1: 0x627e2fa74b7ac891f7d555c7, + limb2: 0x7f8a094f818e7192, + limb3: 0x0, }, y: u384 { - limb0: 0xc48b3bc110e208d827b13f4d, - limb1: 0x87d82592699bca3dbf847c2b, - limb2: 0xff04f0f2c8be12365aa73443, - limb3: 0x1739c8c450ac994a5326c809 - } + limb0: 0x9b47b9326b668e62071faf18, + limb1: 0xe21058cb6937afa89be6931a, + limb2: 0x21a4bfb4cce2ac8c, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0x8904b74d5d114b5416df0ed6, - limb1: 0x479ee13e49cde067742c2655, - limb2: 0x45b9359bfa338dd432ca9ff1, - limb3: 0x12bf6460e7a42942be6c16a0 + limb0: 0xaf4ad4d7d582b10b14c97e6c, + limb1: 0xadf808c85e766e997e470fd0, + limb2: 0x2714571e587ce46d, + limb3: 0x0, }, y: u384 { - limb0: 0x3a8b37aacb2f620bc41c6109, - limb1: 0x91f68edf90b5947273b0aadf, - limb2: 0x265d48695a73800b7404124c, - limb3: 0x141e3d99b3ab683bdb0ce70f - } + limb0: 0x86a7815dad7e8a53b19fee2, + limb1: 0x1922fc1efcc51e68146ffa1b, + limb2: 0x9e19b7c1f886488e, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0x6d6db022a8549ee86374b69a, - limb1: 0x3e98f7258170733507d8709b, - limb2: 0x10b4337a56d4cd17ab2fe1d5, - limb3: 0x11366a6fecb124757076f4b6 + limb0: 0x17bc74c409191a2b2249d987, + limb1: 0xf4fe5f79db38f3064f7d093e, + limb2: 0x3536ce04295e2a42, + limb3: 0x0, }, y: u384 { - limb0: 0x77b25b600d3baa1a2f54f826, - limb1: 0x924c3c1a699e9b27b3612246, - limb2: 0x6a253cae0097b1955d4f0cfd, - limb3: 0xd2bd6591140d2faabafefac - } + limb0: 0xb1d36a10f008c1c24de1ad7d, + limb1: 0xa4f2190c71ee5e0ff07c48f8, + limb2: 0x21c1a2d4cfff3233, + limb3: 0x0, + }, }, G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, ] .span(); let scalars = array![ u256 { low: 0x0, high: 0x0 }, u256 { - low: 0x4a84eb038d1fd9b74d2b9deb1beb3711, high: 0x2a97919d8c25166a1ff39849b4e1357d + low: 0x101fbcccded733e8b421eaeb534097ca, high: 0x38c1962e9148624feac1c14f30e9c5cc, }, u256 { - low: 0x3405095c8a5006c1ec188efbd080e66e, high: 0x460ba2d39a6a5f92cca74147f6be1f72 + low: 0x247a8333f7b0b7d2cda8056c3d15eef7, high: 0x1759edc372ae22448b0163c1cd9d2b7d, }, u256 { - low: 0x1775336d71eacd0549a3e80e966e1277, high: 0x2894fdbe6288e1a5cc45782198a6416d + low: 0xe005b86051ef1922fe43c49e149818d1, high: 0x7d41e602eece328bff7b118e820865d6, }, u256 { - low: 0x2f1205544a5308cc3dfabc08935ddd72, high: 0x43870ae2fcd81b5d24bace4307bf326 + low: 0x4a84eb038d1fd9b74d2b9deb1beb3711, high: 0x552f233a8c25166a1ff39849b4e1357d, }, u256 { - low: 0x42930b33a81ad477fb3675b89cdeb3e6, high: 0x56e06d3d16febaa011af923d79fdef7c + low: 0x3405095c8a5006c1ec188efbd080e66e, high: 0x8c1745a79a6a5f92cca74147f6be1f72, }, u256 { - low: 0x2648ee38e07405eb215663abc1f254b8, high: 0xa4593acd7ab792809e469e6ec62b2c8 + low: 0x1775336d71eacd0549a3e80e966e1277, high: 0x5129fb7c6288e1a5cc45782198a6416d, }, u256 { - low: 0xd450fe4aec4f217bb306d1a8e5eeac76, high: 0x6b3f2afe642bfa42aef9c00b8a64c1b9 + low: 0x2f1205544a5308cc3dfabc08935ddd72, high: 0x870e15c2fcd81b5d24bace4307bf326, }, u256 { - low: 0x85940927468ff53d864a7a50b48d73f1, high: 0x1b8bb742d977e9933c49d76fcfc6e625 + low: 0x42930b33a81ad477fb3675b89cdeb3e6, high: 0xadc0da7a16febaa011af923d79fdef7c, }, u256 { - low: 0xd344749096fd35d0adf20806e5214606, high: 0x233a1ba09466e4726b5f5241f323ca74 + low: 0x2648ee38e07405eb215663abc1f254b8, high: 0x148b2758d7ab792809e469e6ec62b2c8, }, u256 { - low: 0x5306f3f5151665705b7c709acb175a5a, high: 0x4b2543867c879b741d878f9f9cdf5a86 + low: 0xd450fe4aec4f217bb306d1a8e5eeac76, high: 0xd67e55fd642bfa42aef9c00b8a64c1b9, }, u256 { - low: 0x30bcab0ed857010255d44936a1515607, high: 0x22b15f3fbb42e0b20426465e3e37952d + low: 0x85940927468ff53d864a7a50b48d73f1, high: 0x37176e84d977e9933c49d76fcfc6e625, }, ] .span(); let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 1 + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 2, ); assert!( res == G1Point { x: u384 { - limb0: 0xc0fae85730816663a083b3ff, - limb1: 0x8eeeb4d636a81006cac603ad, - limb2: 0xf0f40dc24542dd2f9caf4878, - limb3: 0x124bec083e5a23bb11859569 + limb0: 0x25e0ae5146eead827adbb1d, + limb1: 0x609aab8b2f94654f9d6cac6, + limb2: 0x853097dfea39f246, + limb3: 0x0, }, y: u384 { - limb0: 0x8666d8ee624f5a3d425b3bae, - limb1: 0x2299908d21f6475fc69fed83, - limb2: 0x78f769e47d3af619393f077e, - limb3: 0x11cd8088ab13c9943e7ddf7 - } - } + limb0: 0x25fd09e456853bffe637add8, + limb1: 0x44330f663f6d9da943dbb0df, + limb2: 0x31632aa05863e742, + limb3: 0x0, + }, + }, ); } #[test] - fn test_msm_SECP256R1_1P() { - let scalars_digits_decompositions = Option::Some( - array![(array![0x0,].span(), array![0x0,].span()),].span() - ); + fn test_msm_ED25519_1P() { + let scalars_digits_decompositions = Option::None; let msm_hint = MSMHint { Q_low: G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, Q_high: G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, Q_high_shifted: G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, - SumDlogDivLow: FunctionFelt { + RLCSumDlogDiv: FunctionFelt { a_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - b_den: array![ + a_den: array![ u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), b_num: array![ - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - a_den: array![ + b_den: array![ u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] - .span() + .span(), }, }; let derive_point_from_x_hint = DerivePointFromXHint { y_last_attempt: u384 { - limb0: 0x939295458800009ac8be94f9, - limb1: 0x57a120ac49dc3782bcf1b6e1, - limb2: 0x31036fb2f551a296, - limb3: 0x0 + limb0: 0x1e98736cf961394cfa6dfe5e, + limb1: 0xd7fb6593bc4d484738ba5ff9, + limb2: 0x3133b3e2100f63a6, + limb3: 0x0, }, - g_rhs_sqrt: array![].span(), - }; - let points = array![ + g_rhs_sqrt: array![ + u384 { + limb0: 0x785094dfbbba459c666beaef, + limb1: 0x55c307610d1a86f697251ba6, + limb2: 0x3a9bf57c2d1f3f50, + limb3: 0x0, + }, + ] + .span(), + }; + let points = array![ G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, ] .span(); - let scalars = array![u256 { low: 0x0, high: 0x0 },].span(); + let scalars = array![u256 { low: 0x0, high: 0x0 }].span(); let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 3 + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 4, ); assert!( res == G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + }, ); } #[test] - fn test_msm_SECP256R1_2P() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - ] - .span() - ), - ] - .span() - ); + fn test_msm_ED25519_2P() { + let scalars_digits_decompositions = Option::None; let msm_hint = MSMHint { Q_low: G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, Q_high: G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, Q_high_shifted: G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, - SumDlogDivLow: FunctionFelt { + RLCSumDlogDiv: FunctionFelt { a_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - b_den: array![ + a_den: array![ u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - a_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + b_num: array![ + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), b_den: array![ @@ -37316,18588 +10514,5165 @@ mod msm_tests { u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - b_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() }, }; let derive_point_from_x_hint = DerivePointFromXHint { y_last_attempt: u384 { - limb0: 0x47336a2358d87987148bcb8d, - limb1: 0xead7957765acf9a1bbea50d9, - limb2: 0x1f68715a44c3ef82, - limb3: 0x0 + limb0: 0x732ddc8e2cc76b36024c51f4, + limb1: 0xc4691da0ba50feaacb01549d, + limb2: 0x3b4ce309a9762fe, + limb3: 0x0, }, - g_rhs_sqrt: array![].span(), + g_rhs_sqrt: array![ + u384 { + limb0: 0xeb61555ff2e8eab1c46d48bd, + limb1: 0x470b0eae7200060f8562df1c, + limb2: 0x1e45be405dcbf244, + limb3: 0x0, + }, + u384 { + limb0: 0xf4bfa5b3cc5f0d550830ebba, + limb1: 0x60db6b1216fe71b94bfc06f8, + limb2: 0x253e2357d973bcd8, + limb3: 0x0, + }, + ] + .span(), }; let points = array![ G1Point { x: u384 { - limb0: 0x113c8d620e3745e45e4389b8, - limb1: 0x85b8ff52d905fd02fe191c3f, - limb2: 0xf5d132d685201517, - limb3: 0x0 + limb0: 0x7238f02b9f20e09c2181a557, + limb1: 0x2cedcc5b0be371c337fd7e9e, + limb2: 0x41f3bbeb280fe8a2, + limb3: 0x0, }, y: u384 { - limb0: 0x60c0ba1b358f375b2362662e, - limb1: 0x6abfc829d93e09aa5174ec04, - limb2: 0x7bc4637aca93cb5a, - limb3: 0x0 - } + limb0: 0xf046f8cd6e5a75fca71dd19b, + limb1: 0x892b4613ef5c58df4ef692a4, + limb2: 0x7527fa36f5738847, + limb3: 0x0, + }, }, G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, ] .span(); let scalars = array![ u256 { low: 0x0, high: 0x0 }, u256 { - low: 0xeb1167b367a9c3787c65c1e582e2e662, high: 0xf7c1bd874da5e709d4713d60c8a70639 + low: 0xb4862b21fb97d43588561712e8e5216a, high: 0x4b3e865e6f4590b9a164106cf6a659e, }, ] .span(); let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 3 + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 4, ); assert!( res == G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + }, ); } #[test] - fn test_msm_SECP256R1_3P() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - ] - .span() - ), - ] - .span() - ); + fn test_msm_ED25519_3P() { + let scalars_digits_decompositions = Option::None; let msm_hint = MSMHint { Q_low: G1Point { x: u384 { - limb0: 0xf831856624736393b3b76d11, - limb1: 0xc165a27df5b76589fe2ce1e2, - limb2: 0x2a23444ace6bef77, - limb3: 0x0 + limb0: 0x6889d75e36c152c1cc46f152, + limb1: 0xab6c91609cc41b1c6148652e, + limb2: 0x6d04cda48b959e7b, + limb3: 0x0, }, y: u384 { - limb0: 0xa6bbeec6fb0369c3de339579, - limb1: 0xd394f6a5704d1de2da06048, - limb2: 0xe8057073c0fde87b, - limb3: 0x0 - } + limb0: 0xd12689aa4a75942f20369ac5, + limb1: 0x5d6ae4c0a9977c4e19538008, + limb2: 0x101fd900dd268a39, + limb3: 0x0, + }, }, Q_high: G1Point { x: u384 { - limb0: 0x3b1d72dc227f75f02874e08b, - limb1: 0xd395fa7c14d6ff33d03e1baf, - limb2: 0xbf16fcc65f95b486, - limb3: 0x0 + limb0: 0x4cf7cf1e83ac6ddeb4c0d88, + limb1: 0xdf032c7d359dec2b1b30b922, + limb2: 0x1b4e7ef7358304ab, + limb3: 0x0, }, y: u384 { - limb0: 0xe2461ebbe7a5b4d76dbef92b, - limb1: 0x3eecb75c5315cd3d2d0b9456, - limb2: 0x8192517353bc6523, - limb3: 0x0 - } + limb0: 0x90887d2f101702d94aa5377f, + limb1: 0x3fdfadebd967a872d02af758, + limb2: 0x2ea0b09931ec6dc4, + limb3: 0x0, + }, }, Q_high_shifted: G1Point { x: u384 { - limb0: 0xcff970bda4db69dac06ebad8, - limb1: 0xdee4204cca252abd67132509, - limb2: 0xa79c0006b6ca7fab, - limb3: 0x0 + limb0: 0x506c121a6c7fd9aa60e121a3, + limb1: 0x23b636b641b29ef8bdd1c639, + limb2: 0x791b6ec60b5f8598, + limb3: 0x0, }, y: u384 { - limb0: 0x759642b853dd01b9d2d7bb18, - limb1: 0xe1e1d2f8bf0f2f5b463bfae0, - limb2: 0xbc3c71be130f204d, - limb3: 0x0 - } + limb0: 0x59f9c615c1fecf831ca3b5fc, + limb1: 0x2f6fb1f6358caa9cb6f8c9f7, + limb2: 0x6e62064b941a23df, + limb3: 0x0, + }, }, - SumDlogDivLow: FunctionFelt { + RLCSumDlogDiv: FunctionFelt { a_num: array![ u384 { - limb0: 0xec4b7a43e1054882a2b8787f, - limb1: 0xfb71f01aab18dd64bf0290ef, - limb2: 0x739387fdd621db47, - limb3: 0x0 + limb0: 0xe69974737b88f1268fe9aaae, + limb1: 0x8c1559e40bcf30fa0bd7903c, + limb2: 0x4b532cae5bfa2c57, + limb3: 0x0, }, u384 { - limb0: 0xb9104445c9ee329ddab79885, - limb1: 0x7fffffffffffffff8f41b07b, - limb2: 0x7fffffff80000000, - limb3: 0x0 + limb0: 0xfa9035e798d15baf399b3b7d, + limb1: 0x8e289acf0c43e298455b089c, + limb2: 0x5e626a1eb94c848c, + limb3: 0x0, }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ u384 { - limb0: 0x8b184b2d84dda8fb47336e4a, - limb1: 0x7cc34072cf43d5f8c50e123, - limb2: 0x2ac6de072c8291de, - limb3: 0x0 + limb0: 0x654e97c8202baacafd347411, + limb1: 0xbbc95eee2c80600c3e370615, + limb2: 0x125df9e9282cba82, + limb3: 0x0, }, u384 { - limb0: 0x33cf6619ea9e5a5857292b71, - limb1: 0xfb86f6da971e2c2b963efbc8, - limb2: 0x35f57801d45a6af7, - limb3: 0x0 + limb0: 0x183a985c65551f6ba3d83980, + limb1: 0x134ad9dbc6c8c9ef9842342a, + limb2: 0x3a6b860a6754781f, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0x7a1c2b0493c892201f4ed6b0, - limb1: 0xdfc0b649a4c1ffe41434c3e4, - limb2: 0x6b9772a42ab95dd0, - limb3: 0x0 - }, - u384 { - limb0: 0x845a4b3e553c8b8b94d04830, - limb1: 0x2c2f8ddc08e40a6d5bd715f0, - limb2: 0xe64e5d836de3bc0d, - limb3: 0x0 - }, - u384 { - limb0: 0x8dae72c8fcd89cd4476749f2, - limb1: 0x7e3b93070af8aad22c1313f4, - limb2: 0xc65b8685c01c77dd, - limb3: 0x0 - }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - b_den: array![ - u384 { - limb0: 0x8658cb14baa19703d5c193c4, - limb1: 0x7a859f1d78a8d102d490ffb9, - limb2: 0x8810871891fb97f5, - limb3: 0x0 - }, + a_den: array![ u384 { - limb0: 0xb79f901e1c9df0b7a2aebda6, - limb1: 0x9aa214fa44a1511b0d6c8dcf, - limb2: 0x5a97091e3eb20750, - limb3: 0x0 + limb0: 0xe1dd890ca42bb6787953ac8e, + limb1: 0xd1043346a7687fcd1c173684, + limb2: 0x25ac41ef53a8b264, + limb3: 0x0, }, u384 { - limb0: 0x30e57ea87bf32d352256ddf7, - limb1: 0xc156d8c5b13e0239a2601359, - limb2: 0xb8e5cdd22d2b5300, - limb3: 0x0 + limb0: 0x1a927f53bc1929ea47a340ce, + limb1: 0x1d066482260ad25a944af22a, + limb2: 0x5099f019034be8fe, + limb3: 0x0, }, u384 { - limb0: 0x8b184b2d84dda8fb47336e47, - limb1: 0x7cc34072cf43d5f8c50e123, - limb2: 0x2ac6de072c8291de, - limb3: 0x0 + limb0: 0xdd8253ada22de2f45fdf5202, + limb1: 0x5441006694aef1a85b444399, + limb2: 0x235d0862dfa6cdf4, + limb3: 0x0, }, u384 { - limb0: 0x33cf6619ea9e5a5857292b71, - limb1: 0xfb86f6da971e2c2b963efbc8, - limb2: 0x35f57801d45a6af7, - limb3: 0x0 + limb0: 0xbf55f655e635b433fffa06df, + limb1: 0x9529a92891026d5feaca56b6, + limb2: 0x66f328ef9578380b, + limb3: 0x0, }, u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x1eba51d293cb74b25730952a, - limb1: 0x906541fa014f7054082fbe21, - limb2: 0x2e106fda62d7fa85, - limb3: 0x0 - }, - u384 { - limb0: 0x18d0afe0edb98066b4e326fd, - limb1: 0xffffffffffffffffee22305f, - limb2: 0xffffffff00000000, - limb3: 0x0 - }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - a_den: array![ + b_num: array![ u384 { - limb0: 0x79a28720b6f6c2901c1b6b21, - limb1: 0x704ddc3781df41868fe9f55e, - limb2: 0x518625728416a2bf, - limb3: 0x0 + limb0: 0xff4a7e8b7f2cfcdbcee5a4b1, + limb1: 0xe12c1714e746fb90fbaacda2, + limb2: 0x74e32598c1f69b37, + limb3: 0x0, }, u384 { - limb0: 0xf0e378a3ec9247fbe26bb7f6, - limb1: 0xe9569edc77fe9281c42dc1fc, - limb2: 0xa101bf854330a5e9, - limb3: 0x0 + limb0: 0xec4097839b45ff546026a0c2, + limb1: 0xae7581a88eae4a5053b8f9dc, + limb2: 0x39c19c5066a7bb2b, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0x6d8fca3224e3136dcba20051, - limb1: 0x531ef14ca1e30be2b0bceb4c, - limb2: 0xb666fb69f3c379d6, - limb3: 0x0 + limb0: 0xe66b928f5f906da6b564a19, + limb1: 0xe6eb535ca7ed037f82d2c152, + limb2: 0x71e49573bad6c71d, + limb3: 0x0, }, u384 { - limb0: 0x97cac4a4fdff83f6161c6056, - limb1: 0xa0d567b311571677c37ca52e, - limb2: 0x6fc445a46fd466fd, - limb3: 0x0 + limb0: 0x3c366ce7ca838787367666b9, + limb1: 0xe4fe0f13556bcdf6e6ed8414, + limb2: 0x7242e8cce5ff3b6f, + limb3: 0x0, }, u384 { - limb0: 0x2d46378df71f30211f291fbd, - limb1: 0x6817355d6ca9352b06f4696f, - limb2: 0x975515b1e97470a4, - limb3: 0x0 + limb0: 0xc199caa040b67c0c31530366, + limb1: 0x862fb1b3977b470bdf71fa33, + limb2: 0x56f64010ec27341b, + limb3: 0x0, }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), b_den: array![ u384 { - limb0: 0xdfb71a46102ad9dee734687e, - limb1: 0xd04da4108863a8238e9ea8b7, - limb2: 0xefe716b56f4b6c3, - limb3: 0x0 - }, - u384 { - limb0: 0x84885b5b88da356c87aef9b5, - limb1: 0xac4230444d712eb17d097f09, - limb2: 0x169f510fa322d815, - limb3: 0x0 - }, - u384 { - limb0: 0xf9a9470a7617644a808f3867, - limb1: 0xf7e7e0c00e9ccf371893c0bb, - limb2: 0x77c0f746e0a8a22b, - limb3: 0x0 - }, - u384 { - limb0: 0x79a28720b6f6c2901c1b6b1e, - limb1: 0x704ddc3781df41868fe9f55e, - limb2: 0x518625728416a2bf, - limb3: 0x0 + limb0: 0x5c9b04b3b245e09a4194094c, + limb1: 0xdd37f3697ab22b9010a7a63, + limb2: 0x5128c8fdc31f7a9, + limb3: 0x0, }, u384 { - limb0: 0xf0e378a3ec9247fbe26bb7f6, - limb1: 0xe9569edc77fe9281c42dc1fc, - limb2: 0xa101bf854330a5e9, - limb3: 0x0 + limb0: 0x823a7a3274ed4f8afd3da5ad, + limb1: 0x97bab3dd38c5e707cb7b2c8, + limb2: 0x5a9b9fb5a904e5b7, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ u384 { - limb0: 0xa9676ad3b9efcf4e461f93a4, - limb1: 0x45b3ccf12c2e3c619157a6de, - limb2: 0x3c0fc5c272f3b212, - limb3: 0x0 + limb0: 0x136a754b8e6ef4fbbdb2c19c, + limb1: 0xccb7829961063c89b98962cb, + limb2: 0x72b6443d8587b85b, + limb3: 0x0, }, u384 { - limb0: 0x5784a91a5e09d24e7c4a2665, - limb1: 0x7fffffffffffffff7c074594, - limb2: 0x7fffffff80000000, - limb3: 0x0 - } - ] - .span(), - a_den: array![ - u384 { - limb0: 0xef83b988624532b4d50958cc, - limb1: 0x7c751ca858569d5f9d6672ec, - limb2: 0x76a51d1761fa980c, - limb3: 0x0 + limb0: 0x4d61d2ba560cb6cdace82b43, + limb1: 0x4ec094a713c7dd9c57d2239e, + limb2: 0x6d86d878336d2975, + limb3: 0x0, }, u384 { - limb0: 0xf4e91c6638a52035171c649b, - limb1: 0x4d85e5372103d60ec8aebf48, - limb2: 0x994d0330e99fcbcf, - limb3: 0x0 + limb0: 0x64419bccfa5228f31d1d0868, + limb1: 0x3d89f6514c52a71529d25b3e, + limb2: 0x6282237340916256, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0x95a032c38809b3674a705f22, - limb1: 0x5354b2074b618c858b289c7f, - limb2: 0x7665a34a8549ce9f, - limb3: 0x0 + limb0: 0xea277ea54e9fc483589b6942, + limb1: 0x85d8e173f62a2f7ec6fcf9f6, + limb2: 0xabb53685608cda, + limb3: 0x0, }, u384 { - limb0: 0x2e1e7ce6eeff836215e86895, - limb1: 0x83ec0565ce91000c75ae3f79, - limb2: 0x88a12adc65e89b5f, - limb3: 0x0 + limb0: 0xbf55f655e635b433fffa06df, + limb1: 0x9529a92891026d5feaca56b6, + limb2: 0x66f328ef9578380b, + limb3: 0x0, }, - u384 { - limb0: 0xc45977bd10156f2598c0d18c, - limb1: 0x9c0bc3988d833b0010a9e6bf, - limb2: 0x33a7d18b3006b094, - limb3: 0x0 - } + u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), - b_den: array![ - u384 { - limb0: 0x8d66e8b7b483d3265ac1edeb, - limb1: 0x560d3627f7cdcf9c54522ca, - limb2: 0xc5d0f963ce8e175, - limb3: 0x0 - }, - u384 { - limb0: 0x382e9e19dfde37e65c9f124c, - limb1: 0xa722e47de4449f771e39dbd7, - limb2: 0x8579057707069afb, - limb3: 0x0 - }, - u384 { - limb0: 0xed985bc391dedb9ee27d3278, - limb1: 0xcb5a0db0138d04900b10c8d7, - limb2: 0x8edf2c43ed5b307b, - limb3: 0x0 - }, - u384 { - limb0: 0xef83b988624532b4d50958c9, - limb1: 0x7c751ca858569d5f9d6672ec, - limb2: 0x76a51d1761fa980c, - limb3: 0x0 - }, - u384 { - limb0: 0xf4e91c6638a52035171c649b, - limb1: 0x4d85e5372103d60ec8aebf48, - limb2: 0x994d0330e99fcbcf, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() }, }; let derive_point_from_x_hint = DerivePointFromXHint { y_last_attempt: u384 { - limb0: 0xb8ef2dfd1444c4e0efe00148, - limb1: 0x967459cf9f622705ee83c962, - limb2: 0x3a669994cff338be, - limb3: 0x0 + limb0: 0x6fd4e3f593a17ba71159d847, + limb1: 0x1118616a869823a48ad75add, + limb2: 0x15473f9ff2346518, + limb3: 0x0, }, - g_rhs_sqrt: array![ - u384 { - limb0: 0xf57dfd2e75b1ce26390a7a1a, - limb1: 0x609597792b488ee2b8b2a3f2, - limb2: 0x605b9279af8c238f, - limb3: 0x0 - } - ] - .span(), + g_rhs_sqrt: array![].span(), }; let points = array![ G1Point { x: u384 { - limb0: 0x113c8d620e3745e45e4389b8, - limb1: 0x85b8ff52d905fd02fe191c3f, - limb2: 0xf5d132d685201517, - limb3: 0x0 + limb0: 0x7238f02b9f20e09c2181a557, + limb1: 0x2cedcc5b0be371c337fd7e9e, + limb2: 0x41f3bbeb280fe8a2, + limb3: 0x0, }, y: u384 { - limb0: 0x60c0ba1b358f375b2362662e, - limb1: 0x6abfc829d93e09aa5174ec04, - limb2: 0x7bc4637aca93cb5a, - limb3: 0x0 - } + limb0: 0xf046f8cd6e5a75fca71dd19b, + limb1: 0x892b4613ef5c58df4ef692a4, + limb2: 0x7527fa36f5738847, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0xd3ff147ff0ee4213f51f677d, - limb1: 0x431366a7732a6e4a6b942255, - limb2: 0x9fe743b25d39a591, - limb3: 0x0 + limb0: 0x82e4a33f8e4e5881e791d86b, + limb1: 0xbcb062435ae8ec5fdaeac4bf, + limb2: 0x179e1bae9e0f9f34, + limb3: 0x0, }, y: u384 { - limb0: 0x7f8bb562ff60a902ef14bcb0, - limb1: 0xeb9420089fa531db62e806a6, - limb2: 0xfd028df433dfd5cc, - limb3: 0x0 - } + limb0: 0x19657783ba5660e255c21849, + limb1: 0x7ed7474bcea7551fc71e46bc, + limb2: 0x596c0a76b75f4756, + limb3: 0x0, + }, }, G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, ] .span(); let scalars = array![ u256 { low: 0x0, high: 0x0 }, u256 { - low: 0xe443df789558867f5ba91faf7a024204, high: 0x23a7711a8133287637ebdcd9e87a1613 + low: 0x12e0c8b2bad640fb19488dec4f65d4d9, high: 0xa90f9c3af19922ad9b8a714e61a441c, }, u256 { - low: 0x1846d424c17c627923c6612f48268673, high: 0xfcbd04c340212ef7cca5a5a19e4d6e3c + low: 0xeb2083e6ce164dba0ff18e0242af9fc3, high: 0x2fc154703983ca8ea7e9d498c778ea6, }, ] .span(); let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 3 + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 4, ); assert!( res == G1Point { x: u384 { - limb0: 0x33ee7695471a03192ef22266, - limb1: 0xb449dd8cfd0c3438e14a718c, - limb2: 0x1fbb33f079b828e2, - limb3: 0x0 + limb0: 0xf7d884feff5aba51d9990dce, + limb1: 0x999f1d302046c6266257ff5, + limb2: 0x7f9caa5ee5815899, + limb3: 0x0, }, y: u384 { - limb0: 0xb411f97aeec2eae6044122ec, - limb1: 0xcdce180b60667260d7ce284e, - limb2: 0xa73a7381dd3b07c, - limb3: 0x0 - } - } + limb0: 0x6d71279424538e87f8ecf2cc, + limb1: 0x8a8a1d74581da5996a52bbaf, + limb2: 0x29acff692eccea25, + limb3: 0x0, + }, + }, ); } #[test] - fn test_msm_SECP256R1_4P() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - ] - .span() - ), - ] - .span() - ); + fn test_msm_ED25519_4P() { + let scalars_digits_decompositions = Option::None; let msm_hint = MSMHint { Q_low: G1Point { x: u384 { - limb0: 0xddb5a889b8b2286c5d1124ca, - limb1: 0xe3db8af7035bf63b788d1b86, - limb2: 0x2e193b7cafebcfe6, - limb3: 0x0 + limb0: 0x4294ed9005d37292f5249462, + limb1: 0xb9dea23ee010208506806803, + limb2: 0x16031442f6384311, + limb3: 0x0, }, y: u384 { - limb0: 0x519a5d47cdb177063c1665a5, - limb1: 0x4f72ccaf2e61bf1ca5909e56, - limb2: 0x5a4c815353430f54, - limb3: 0x0 - } + limb0: 0x7fa969c45724b811994c64c0, + limb1: 0xf428138bac627a290dd35105, + limb2: 0x3da98277c2dd5c48, + limb3: 0x0, + }, }, Q_high: G1Point { x: u384 { - limb0: 0x7471395483d3edfae9b6f108, - limb1: 0xdc3612b8c1cff114d0097f61, - limb2: 0xf3cd0f7bac63576e, - limb3: 0x0 + limb0: 0x87cbb10853f51a0d7e8a9269, + limb1: 0xebcb43a99df5add16574dccf, + limb2: 0x1b8613d1c8f4df23, + limb3: 0x0, }, y: u384 { - limb0: 0x7546388b69b878a6a1808495, - limb1: 0xc57e063ce6a1619ab7f4a8c9, - limb2: 0x876dcde507c5b206, - limb3: 0x0 - } + limb0: 0x686cbe3acd25538efa3b9366, + limb1: 0xbe1fcf5f60e8d7d953189e25, + limb2: 0x4a1d28d3efde830a, + limb3: 0x0, + }, }, Q_high_shifted: G1Point { x: u384 { - limb0: 0x7be10be31458fbb2b84ad1cf, - limb1: 0xc6c7c5315901dfe6df3b4e86, - limb2: 0x245ced58428a76b2, - limb3: 0x0 + limb0: 0xdb595542dfeb4f13942824b7, + limb1: 0xd68b7cd8156fbe5dd6a83d78, + limb2: 0x3060395777cff710, + limb3: 0x0, }, y: u384 { - limb0: 0x59d7d6bf1a2a69e2c0c680f9, - limb1: 0x35c6a2e80821772c88ce7405, - limb2: 0x4859fbcef0a50f54, - limb3: 0x0 - } + limb0: 0xef83f2592b0828d47429e8b5, + limb1: 0x6af76f6b2e1231c02a5b3e78, + limb2: 0x4319a9f39260d0e7, + limb3: 0x0, + }, }, - SumDlogDivLow: FunctionFelt { + RLCSumDlogDiv: FunctionFelt { a_num: array![ u384 { - limb0: 0xffb6485b7c4566a12ccfcd11, - limb1: 0xa67ee86cc834e674d041231e, - limb2: 0x28c5224ab16b57a4, - limb3: 0x0 - }, - u384 { - limb0: 0xd9c383c68cb492ec67b2395d, - limb1: 0x71d790d80ab9f5d0fb151fc3, - limb2: 0x41571d3e0e10ebe4, - limb3: 0x0 + limb0: 0x1245190a92f354fb39135014, + limb1: 0x2356c2873853a0c30f1981a5, + limb2: 0x4bea14241c4648bf, + limb3: 0x0, }, u384 { - limb0: 0xd2eb4c69b0a6de0146012128, - limb1: 0xffffffffffffffff7024d874, - limb2: 0xffffffff00000000, - limb3: 0x0 + limb0: 0x7161430369f11ad91cafaa09, + limb1: 0x3c362a37f9eae052453c1baf, + limb2: 0xf653332221e6bed, + limb3: 0x0, }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ u384 { - limb0: 0x5476f94da448d8a0b5a7fa17, - limb1: 0x2a75a94dfc04b5d38b5376be, - limb2: 0xe43d427c163f1e69, - limb3: 0x0 + limb0: 0x830813297b8e4af8a48f15a, + limb1: 0xf95bc4e7a0f6cb17fc03fa2, + limb2: 0x42149201470d712d, + limb3: 0x0, }, u384 { - limb0: 0x2bfc44077e07eede31ee0071, - limb1: 0x3b1fd21baf4610b3b6b30bf2, - limb2: 0x34bea281e5e77f17, - limb3: 0x0 + limb0: 0xeed49d5e8852ee80c47f8756, + limb1: 0x352599d2881847f573797a63, + limb2: 0x7505f28aca05a877, + limb3: 0x0, }, u384 { - limb0: 0x79d10ff5a364aaf2c8a2102, - limb1: 0xabbc41e06a7ea1f12c2ae401, - limb2: 0x7d2c0a463ce48e9, - limb3: 0x0 + limb0: 0x6c108e3cf17d739abe2e5b52, + limb1: 0xec1abdec66af37713ef5fa0c, + limb2: 0x7a98469eaf19c90c, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0xa271389f3cf354e14933999, - limb1: 0x6be238049b022ad7b00556b5, - limb2: 0x6227007b71ec4eab, - limb3: 0x0 - }, - u384 { - limb0: 0x81a98038f340f2d0c79f31fe, - limb1: 0x5274f97681207a2827bc6ccf, - limb2: 0xf2e9272318f42cea, - limb3: 0x0 - }, - u384 { - limb0: 0x409f864997e75300aeac837, - limb1: 0xacc1a8e74849a5aa25812760, - limb2: 0xb521716b25b4d497, - limb3: 0x0 - }, - u384 { - limb0: 0x86b25fdc4107da96a39b316d, - limb1: 0xeeb7ea0e4debbc1513785825, - limb2: 0xe9754fd5e5871805, - limb3: 0x0 - }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - b_den: array![ - u384 { - limb0: 0x1fef3193aef53d8f4caff4e9, - limb1: 0xda3666b348a12207c8fa7091, - limb2: 0x982eaac7d63601d3, - limb3: 0x0 - }, + a_den: array![ u384 { - limb0: 0x44bae73bb48330c5d1e600b6, - limb1: 0xf04f6d1fd9fbdc76705a8cd0, - limb2: 0xf1cf8cb2ee54ff50, - limb3: 0x0 + limb0: 0xc3f2bcf0634113aab168f16b, + limb1: 0xacece764e432e9a362270873, + limb2: 0x553f156657701585, + limb3: 0x0, }, u384 { - limb0: 0x7171a0e61d8792e69df715ca, - limb1: 0xd2de7aa3f9881f7e76c2f070, - limb2: 0xca6c6af18baeea7e, - limb3: 0x0 + limb0: 0x132784a5fa8542cd2b13e915, + limb1: 0x9c6be3686e0be6a93f659967, + limb2: 0x5c4a93274bad5556, + limb3: 0x0, }, u384 { - limb0: 0x9f37745d17434d157dbf75d, - limb1: 0xdb2ca102332156bc6befd16b, - limb2: 0x278b3668950ed792, - limb3: 0x0 + limb0: 0x11fc6f6dff141670dade42b8, + limb1: 0x42bcf0b6d084414f6d5233, + limb2: 0x2026aaa1e7249ef5, + limb3: 0x0, }, u384 { - limb0: 0x2bfc44077e07eede31ee006e, - limb1: 0x3b1fd21baf4610b3b6b30bf2, - limb2: 0x34bea281e5e77f17, - limb3: 0x0 + limb0: 0xab822761217de62211b1bc7c, + limb1: 0xd543e6a9f4fb52cf6a95b072, + limb2: 0x69adae066d530a1c, + limb3: 0x0, }, u384 { - limb0: 0x79d10ff5a364aaf2c8a2102, - limb1: 0xabbc41e06a7ea1f12c2ae401, - limb2: 0x7d2c0a463ce48e9, - limb3: 0x0 + limb0: 0x30de39ed3965d44c28c9418b, + limb1: 0xd58fca201fc52c751bf1deaa, + limb2: 0x1bb6cb2566ea35e4, + limb3: 0x0, }, u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x265c69a8e3e7c06adaae96d5, - limb1: 0xf2c24562857ce6c73b616712, - limb2: 0x1d631e42290f63d8, - limb3: 0x0 - }, - u384 { - limb0: 0x4df5736f2c3d354532cdd9a4, - limb1: 0xca375e54e818fed09da008d2, - limb2: 0x6690a8268bbbc915, - limb3: 0x0 - }, - u384 { - limb0: 0x8fbc03718caec8c8d5896705, - limb1: 0x7fffffffffffffff7071f4bf, - limb2: 0x7fffffff80000000, - limb3: 0x0 - }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - a_den: array![ - u384 { - limb0: 0xa98b6697792c7ca6153315cb, - limb1: 0xe506ae2992b850ce808a62be, - limb2: 0x1810213c71d467e5, - limb3: 0x0 - }, + b_num: array![ u384 { - limb0: 0x5aef2a607802894543454fd4, - limb1: 0xc37e2df93f078e1430c9adcd, - limb2: 0x9858cbb796d570f8, - limb3: 0x0 + limb0: 0xc35a0dd5134b1c20a50cd68e, + limb1: 0x9616cabc4d9e6333e11402e1, + limb2: 0x64b51ca8d6ba3923, + limb3: 0x0, }, u384 { - limb0: 0x70e180348f1485209fe454c3, - limb1: 0xb361ba1eac0aa717d4ae8027, - limb2: 0x421eeca46756c162, - limb3: 0x0 + limb0: 0xa194688fc458cc14dcf0305e, + limb1: 0x56ff7a483a7c0e1161566560, + limb2: 0x25e2e19cb813454, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0xfb6e6cfff43a10797c5f947c, - limb1: 0x85027a230fb9dca5788fa6bc, - limb2: 0xac7cebe051a6dbbe, - limb3: 0x0 + limb0: 0x7f27868bc80ece088387f817, + limb1: 0xff6245179ef3f2af1891195, + limb2: 0x639fda52a62704a0, + limb3: 0x0, }, u384 { - limb0: 0x45cc7cfa0084f61eff2c55b, - limb1: 0x6419c168903005a03c11c17a, - limb2: 0xdf714a758256bfc4, - limb3: 0x0 + limb0: 0xd9d9eabe33272dce5eedf1b7, + limb1: 0x2edc1591d2f1b9abe09f34cb, + limb2: 0xa76b4552c437e46, + limb3: 0x0, }, u384 { - limb0: 0x51ebd8f55d2ffb3e4c38c263, - limb1: 0xf5dd6d419df79243ce9be0bf, - limb2: 0xe661e5fe6aaad9e3, - limb3: 0x0 + limb0: 0x29af65a1a07435e9af5abcb1, + limb1: 0x83845e0ed474d5f5dbe1eb71, + limb2: 0x9885213567cc2d4, + limb3: 0x0, }, u384 { - limb0: 0x2ff40730ed4faf644a9a58f1, - limb1: 0x2071e0d1524351fa845e5d35, - limb2: 0x4f28c082f2e015a5, - limb3: 0x0 + limb0: 0x23dad12875c267eacf012596, + limb1: 0xd7e084fba8956bdd30c5b2b0, + limb2: 0x3a4d0dc33b4d4422, + limb3: 0x0, }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), b_den: array![ u384 { - limb0: 0x7b424fcc9b19a5970f8a7889, - limb1: 0x751dd445551ca06df7292de5, - limb2: 0x67751346680674dc, - limb3: 0x0 - }, - u384 { - limb0: 0xe758f0cf6925b17f8a687fa, - limb1: 0xa1bde6742cb62a8d20fc66db, - limb2: 0xc18fa407e04c0b97, - limb3: 0x0 - }, - u384 { - limb0: 0xfec73f31fbf3260beaddfdc, - limb1: 0xd9427e1f14e3fb7199211ff5, - limb2: 0x7fcfc59683fc0a9c, - limb3: 0x0 - }, - u384 { - limb0: 0x233a96f007bd29825d5877cc, - limb1: 0x7ecd3d230530e243679be8fa, - limb2: 0xac799126e60ab7a6, - limb3: 0x0 + limb0: 0xbaae60c51c20bb7b9eccd6f5, + limb1: 0xfa62a673ac9873f2df7b85bd, + limb2: 0x25b6aec1e0c93c18, + limb3: 0x0, }, u384 { - limb0: 0x5aef2a607802894543454fd1, - limb1: 0xc37e2df93f078e1430c9adcd, - limb2: 0x9858cbb796d570f8, - limb3: 0x0 + limb0: 0x43a3d232f8215733421ea32d, + limb1: 0x9a36dfd476d79bfc3a5ecdf2, + limb2: 0xaf9fb27179ac73a, + limb3: 0x0, }, u384 { - limb0: 0x70e180348f1485209fe454c3, - limb1: 0xb361ba1eac0aa717d4ae8027, - limb2: 0x421eeca46756c162, - limb3: 0x0 + limb0: 0xfc6522fca2e80e4a2861d77d, + limb1: 0x370368d9bc35d525bcf700b6, + limb2: 0x79e34017092cb11d, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ u384 { - limb0: 0xce0d4b410db15011f911186f, - limb1: 0xf4042319b3b11502f64c5780, - limb2: 0xd79196cb21d6a818, - limb3: 0x0 + limb0: 0x19191017a5d86b1481147c75, + limb1: 0x9da168e46e58f4b527200f6, + limb2: 0x2526e15ff84302bf, + limb3: 0x0, }, u384 { - limb0: 0x5784a91a5e09d24e7c4a2665, - limb1: 0x7fffffffffffffff7c074594, - limb2: 0x7fffffff80000000, - limb3: 0x0 - } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x930b9ab3fb21f9d722a3fbe9, - limb1: 0xd87efe2f34e1ce7c8f4c072f, - limb2: 0x17553851540da845, - limb3: 0x0 + limb0: 0x8b31993617c145fe7a9f52b6, + limb1: 0xf9957de16671919f3998c2ae, + limb2: 0x33911c89d1dab5e2, + limb3: 0x0, }, u384 { - limb0: 0xfadbac867d316525dfe3d27, - limb1: 0x5d022815e52e2f0450bb321a, - limb2: 0xe7d6032a111231e0, - limb3: 0x0 + limb0: 0x2b4f66ee5babf1d3ab430a7a, + limb1: 0x83cd22a0952e6a109a0ed7ec, + limb2: 0x41db7964e0059019, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0xd94e11529a22d65737a40a2, - limb1: 0x64008c4424bcbdea3514dcbe, - limb2: 0xc98d9953968d73b, - limb3: 0x0 + limb0: 0xb8275258cdefc7b10a6dd3bc, + limb1: 0x6dbc7b7567690a5d64e66cf, + limb2: 0x46fc5ada130cc903, + limb3: 0x0, }, u384 { - limb0: 0x7a70797ab359296f4fb6cd31, - limb1: 0x1261095efd0b9ed9ccaa68b4, - limb2: 0xd7a8864f0ccac96e, - limb3: 0x0 + limb0: 0x30de39ed3965d44c28c9418b, + limb1: 0xd58fca201fc52c751bf1deaa, + limb2: 0x1bb6cb2566ea35e4, + limb3: 0x0, }, - u384 { - limb0: 0x6cf1a470f35dfb92fb1b3f8c, - limb1: 0xf28b98c374677684e1ce9441, - limb2: 0x8510090c592a83df, - limb3: 0x0 - } + u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), - b_den: array![ - u384 { - limb0: 0x1e7f52e99d64f63e60ffe4df, - limb1: 0x21f9b7790a9c215bb3446d95, - limb2: 0x6ac260f76104ae91, - limb3: 0x0 - }, - u384 { - limb0: 0xea5ef1b6aa3bce230da69eac, - limb1: 0xb7e346d6dad5d49c18f194f6, - limb2: 0xd2ef116263327903, - limb3: 0x0 - }, - u384 { - limb0: 0x9d4a809d0454f9470dd7a8d3, - limb1: 0x9ce54513c70df9af72eb7065, - limb2: 0xa3442c577703fe49, - limb3: 0x0 - }, - u384 { - limb0: 0x930b9ab3fb21f9d722a3fbe6, - limb1: 0xd87efe2f34e1ce7c8f4c072f, - limb2: 0x17553851540da845, - limb3: 0x0 - }, - u384 { - limb0: 0xfadbac867d316525dfe3d27, - limb1: 0x5d022815e52e2f0450bb321a, - limb2: 0xe7d6032a111231e0, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() }, }; let derive_point_from_x_hint = DerivePointFromXHint { y_last_attempt: u384 { - limb0: 0x69885846433877e72248b548, - limb1: 0x7b09868cd7634fbb21895d4f, - limb2: 0x5bd3733f6a58e95e, - limb3: 0x0 + limb0: 0x15505ddd857847cc97bc932c, + limb1: 0x967506820b8939decb014cf5, + limb2: 0x1e1976cd733cac42, + limb3: 0x0, }, - g_rhs_sqrt: array![].span(), + g_rhs_sqrt: array![ + u384 { + limb0: 0x41f4fb8dfd4016a6fbcd1dfa, + limb1: 0x856a5141ccb93613b344415c, + limb2: 0x70e4850b14e402e, + limb3: 0x0, + }, + ] + .span(), }; let points = array![ G1Point { x: u384 { - limb0: 0x113c8d620e3745e45e4389b8, - limb1: 0x85b8ff52d905fd02fe191c3f, - limb2: 0xf5d132d685201517, - limb3: 0x0 + limb0: 0x7238f02b9f20e09c2181a557, + limb1: 0x2cedcc5b0be371c337fd7e9e, + limb2: 0x41f3bbeb280fe8a2, + limb3: 0x0, }, y: u384 { - limb0: 0x60c0ba1b358f375b2362662e, - limb1: 0x6abfc829d93e09aa5174ec04, - limb2: 0x7bc4637aca93cb5a, - limb3: 0x0 - } + limb0: 0xf046f8cd6e5a75fca71dd19b, + limb1: 0x892b4613ef5c58df4ef692a4, + limb2: 0x7527fa36f5738847, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0xd3ff147ff0ee4213f51f677d, - limb1: 0x431366a7732a6e4a6b942255, - limb2: 0x9fe743b25d39a591, - limb3: 0x0 + limb0: 0x82e4a33f8e4e5881e791d86b, + limb1: 0xbcb062435ae8ec5fdaeac4bf, + limb2: 0x179e1bae9e0f9f34, + limb3: 0x0, }, y: u384 { - limb0: 0x7f8bb562ff60a902ef14bcb0, - limb1: 0xeb9420089fa531db62e806a6, - limb2: 0xfd028df433dfd5cc, - limb3: 0x0 - } + limb0: 0x19657783ba5660e255c21849, + limb1: 0x7ed7474bcea7551fc71e46bc, + limb2: 0x596c0a76b75f4756, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0x46ae31f6fc294ad0814552b6, - limb1: 0x2d54cc811efaf988efb3de23, - limb2: 0x2a2cc02b8f0c419f, - limb3: 0x0 + limb0: 0xa6832ef7fe97f77de7cd9a62, + limb1: 0xf18a70dbf1dc5a76c685da4a, + limb2: 0x6ac1b7bfc409119f, + limb3: 0x0, }, y: u384 { - limb0: 0xaec889b9d8ce51c4a2c3586f, - limb1: 0xa2b07874c333bfee9f78e13e, - limb2: 0xc445de21be8d8709, - limb3: 0x0 - } + limb0: 0x7751161b1a9ef600b865a5af, + limb1: 0xed28aad4835a39a9e8318ceb, + limb2: 0x572e95c429f0e07a, + limb3: 0x0, + }, }, G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, ] .span(); let scalars = array![ u256 { low: 0x0, high: 0x0 }, u256 { - low: 0x1846d424c17c627923c6612f48268673, high: 0xfcbd04c340212ef7cca5a5a19e4d6e3c + low: 0xeb2083e6ce164dba0ff18e0242af9fc3, high: 0x2fc154703983ca8ea7e9d498c778ea6, }, u256 { - low: 0xb4862b21fb97d43588561712e8e5216a, high: 0x259f4329e6f4590b9a164106cf6a659e + low: 0x101fbcccded733e8b421eaeb534097ca, high: 0x71832c59148624feac1c14f30e9c5cc, }, u256 { - low: 0x12e0c8b2bad640fb19488dec4f65d4d9, high: 0x5487ce1eaf19922ad9b8a714e61a441c + low: 0x247a8333f7b0b7d2cda8056c3d15eef7, high: 0x2eb3db872ae22448b0163c1cd9d2b7d, }, ] .span(); let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 3 + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 4, ); assert!( res == G1Point { x: u384 { - limb0: 0xb2a60bc0dd8b8ee13a6c1fb1, - limb1: 0xd694821758e9d16d0d548853, - limb2: 0x6ba86041669b4d29, - limb3: 0x0 + limb0: 0xc90d60304c5ae1ed8e6a7452, + limb1: 0x9b1adf93edd9e9d89e46bb66, + limb2: 0x2354b27669ad10ec, + limb3: 0x0, }, y: u384 { - limb0: 0x3ff4aad67ae0150cc663ba71, - limb1: 0x20491f6ec9a09b3a65f78e23, - limb2: 0x755517c39d1215c2, - limb3: 0x0 - } - } + limb0: 0xaeb348edde7fa116aa741cc1, + limb1: 0x401b6f0f1099439b965ba00c, + limb2: 0x165e684174b4ed0b, + limb3: 0x0, + }, + }, ); } #[test] - fn test_msm_SECP256R1_5P() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - ] - .span(), - array![ - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - ] - .span(), - array![ - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - ] - .span() - ), - ] - .span() - ); + fn test_msm_ED25519_10P() { + let scalars_digits_decompositions = Option::None; let msm_hint = MSMHint { Q_low: G1Point { x: u384 { - limb0: 0xc7e1d241e2762368ba44ebe4, - limb1: 0x7a8f4c8a2244ee33c6b29b91, - limb2: 0xe45ce9477e4d9756, - limb3: 0x0 + limb0: 0xc6a2dadd7bfa3f0e246e658b, + limb1: 0x35fef39b5deb611ff2012432, + limb2: 0x69111c4bba88905b, + limb3: 0x0, }, y: u384 { - limb0: 0x781275787f25b7722718dff2, - limb1: 0xbbc45b57ea7c9a24bb2f7b05, - limb2: 0x35981f3310b9232a, - limb3: 0x0 - } + limb0: 0xf8f8b650214ea0042241e1af, + limb1: 0x9c0c86816e5b32d3958069ab, + limb2: 0x4f7c96eef9002e62, + limb3: 0x0, + }, }, Q_high: G1Point { x: u384 { - limb0: 0xae4290f9ecae61fba630dec4, - limb1: 0x7424b814d755ce7f6949c498, - limb2: 0xf74a8b6f804fa777, - limb3: 0x0 + limb0: 0xfdd785e0b0c8c7cc6c9d28de, + limb1: 0x8122f1bdba903598618e0cc8, + limb2: 0x1cee60d8a8b3f4b1, + limb3: 0x0, }, y: u384 { - limb0: 0x13fdceaabf972deeadc55b88, - limb1: 0x26b74e877a20db0f10197962, - limb2: 0x4c1d8238a8c59a3b, - limb3: 0x0 - } + limb0: 0x76aab4f568a16f049413f213, + limb1: 0x69ce55459d82821adb310e48, + limb2: 0x6491ade0e5fcad87, + limb3: 0x0, + }, }, Q_high_shifted: G1Point { x: u384 { - limb0: 0xde459b68d0de3cab92e8f3ff, - limb1: 0xe28f1847502bfcca5ffb7352, - limb2: 0xa5dbe02e983f85ac, - limb3: 0x0 + limb0: 0x7f4c4fae4ccc048a1ec31085, + limb1: 0xc699c0ce71f1b1891d539ca3, + limb2: 0x6cec90835491d044, + limb3: 0x0, }, y: u384 { - limb0: 0x4189f876d65e64dc097967fb, - limb1: 0xa83fb1c1c182309bf86053ac, - limb2: 0x704f352ef45fbe26, - limb3: 0x0 - } + limb0: 0xb956cd0696fbe12afef76c13, + limb1: 0x91ab61eaed3055a23afad034, + limb2: 0x24109e0f46a426c1, + limb3: 0x0, + }, }, - SumDlogDivLow: FunctionFelt { + RLCSumDlogDiv: FunctionFelt { a_num: array![ u384 { - limb0: 0xc8a7fed32b355c92ad8d378c, - limb1: 0xe0b63efcf842ff62fb832e97, - limb2: 0x3d5ca217a6a6af56, - limb3: 0x0 - }, - u384 { - limb0: 0xbe78f3a29da605609d191f31, - limb1: 0x1651aaab209782f8344bc571, - limb2: 0x8fb0de10d9b9350b, - limb3: 0x0 - }, - u384 { - limb0: 0x657f8f5df667b449f3aab657, - limb1: 0xca7a3e57367130aa80234858, - limb2: 0x9ffb46f7e5f43efb, - limb3: 0x0 + limb0: 0xde0eccee19a7e1c02da7749, + limb1: 0x720111429cd793328d5eb90d, + limb2: 0x1aded618573ad7c8, + limb3: 0x0, }, u384 { - limb0: 0x89c2c1fa289d0c33faf35cd0, - limb1: 0x7fffffffffffffff97fe99ad, - limb2: 0x7fffffff80000000, - limb3: 0x0 + limb0: 0x2490d569119a906df97f7268, + limb1: 0x9271757a53d1a05e0d4846fd, + limb2: 0x61c2345e5f452da9, + limb3: 0x0, }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ u384 { - limb0: 0xc4c2a1687ac20236317eb5df, - limb1: 0xe2a6a4b54e1ed2b3d9938372, - limb2: 0xa0a591586d41c50c, - limb3: 0x0 + limb0: 0xb1e9f7137010f65ca3aed573, + limb1: 0xf891300ceef0f5293cf9ff8c, + limb2: 0x64b2b3997f8985d, + limb3: 0x0, }, u384 { - limb0: 0xde8047201b8489b8486fe660, - limb1: 0xd7f381d18a93c1aafafe08bb, - limb2: 0x9445c8944036ba45, - limb3: 0x0 + limb0: 0xe3f00a12f62b88af4c065bdc, + limb1: 0x1cec25a223cee045fa1eb1d1, + limb2: 0x196b55f16087f1ed, + limb3: 0x0, }, u384 { - limb0: 0x75054da5adcba2b6c9094723, - limb1: 0xefab57309640d8bb012619e9, - limb2: 0x1ef911afbdf2704e, - limb3: 0x0 + limb0: 0xd1b71e19fb05670c2232b0d4, + limb1: 0xe8e7cb8f33657568df7f9aab, + limb2: 0x1691a7853d3d6d34, + limb3: 0x0, }, u384 { - limb0: 0x9f2915845ed62dffd8cf578d, - limb1: 0x2e06cc425775a835523b631c, - limb2: 0x79107165881eada5, - limb3: 0x0 + limb0: 0x72e1884b5c65d17e26cdc854, + limb1: 0x3046571d00d86ac453a9d91f, + limb2: 0x55e47961b0020227, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0xac1fb3b22ee213fa49d5e9eb, - limb1: 0x1008e039300698dbd7073746, - limb2: 0x7eec884eef88f221, - limb3: 0x0 + limb0: 0xc03a13e638d9812cbcf309dc, + limb1: 0x75ba7389c891ba0761b0914a, + limb2: 0x763b0b03461a7f80, + limb3: 0x0, }, u384 { - limb0: 0x41b2c77f58936fc5fb362c95, - limb1: 0xbb7a69bb2b42cf13b5eb68d7, - limb2: 0xf49cb55003a9024c, - limb3: 0x0 + limb0: 0xd65156e0c7a756baa9a4ad0f, + limb1: 0x75d804139d3dfadf8b0d50b4, + limb2: 0x6b81e245f66f08a1, + limb3: 0x0, }, u384 { - limb0: 0x8fd8a5ce15160d288687c168, - limb1: 0x2ca545bc6e8f26ec3f3b6d4, - limb2: 0xf524a4fda0cb20f2, - limb3: 0x0 + limb0: 0xee4d755ef35acd1008234a86, + limb1: 0x96af6acb6745a090bdf4ff84, + limb2: 0x29193da4184abf0b, + limb3: 0x0, }, u384 { - limb0: 0x6a4df16861a8aceadcf16204, - limb1: 0xf5b61517349a52b29963331d, - limb2: 0x5436d393737620e8, - limb3: 0x0 + limb0: 0xe20d2f0c0ede49351c05bd4e, + limb1: 0x61e7cb003971e397ab2199a5, + limb2: 0x1235b5be8a26b4c3, + limb3: 0x0, }, u384 { - limb0: 0xd2cdd0a55341bac0cff10589, - limb1: 0xc795f4b0d2f368bd1d7c59d9, - limb2: 0x3a6caf81693ae961, - limb3: 0x0 + limb0: 0x8abc060f09ce716484e39ae0, + limb1: 0x53d0da4a8192940ff15bd192, + limb2: 0x6ad3c1f370737302, + limb3: 0x0, }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), - b_den: array![ + a_den: array![ u384 { - limb0: 0x8d6c026a3013675485049b21, - limb1: 0x5972451ee1abf6e8c0bef156, - limb2: 0x14d6e8999dd1e9d2, - limb3: 0x0 + limb0: 0xf5f70f0243a0077afe6f7a80, + limb1: 0xf61ba838f96e5dbe54b8fbc8, + limb2: 0x7bfe1917e9814460, + limb3: 0x0, }, u384 { - limb0: 0xd7cd9d7a8fca6d5834e4cfe, - limb1: 0xd4dd7ebff938eacf1dce4707, - limb2: 0x6bf58e3a2f551118, - limb3: 0x0 + limb0: 0xb4cd93de8458053f6d02b8a7, + limb1: 0x411c32b5b880cd7f6bbd0ee0, + limb2: 0x276a1fcdb03a1dda, + limb3: 0x0, }, u384 { - limb0: 0x5237f21bb71e14b3e9eecf27, - limb1: 0xa313059c5f93ed3cc547e8fe, - limb2: 0xda071243949fbcb3, - limb3: 0x0 + limb0: 0x9911457a134ca92cabaf0813, + limb1: 0xa46e97d642de505bd1e1b05e, + limb2: 0x709058365bde688e, + limb3: 0x0, }, u384 { - limb0: 0xf82600635d10c286a95b8046, - limb1: 0x112214f578b63ec0cefc1e0c, - limb2: 0x7fd8f6f9ae9f8f7b, - limb3: 0x0 + limb0: 0x1d7de26ecc807fc690e4e43d, + limb1: 0xa7cad88664e5d6a8e920893f, + limb2: 0x1bf69c542060d564, + limb3: 0x0, }, u384 { - limb0: 0xcd58b7893ad03bf6e5d44003, - limb1: 0x1cada5ffacb4fc76968e617, - limb2: 0x83daaa3b5215453f, - limb3: 0x0 + limb0: 0x5d02aaadd49697e8ceefc4f0, + limb1: 0xb80fc82b600fbc38a166ae05, + limb2: 0x2108c0d78c34a933, + limb3: 0x0, }, u384 { - limb0: 0x75054da5adcba2b6c9094720, - limb1: 0xefab57309640d8bb012619e9, - limb2: 0x1ef911afbdf2704e, - limb3: 0x0 + limb0: 0xde8cc89609d395d3857b526c, + limb1: 0x8d27f6bd911dca4e4e35338d, + limb2: 0x6ed28ec1f40b2a80, + limb3: 0x0, }, u384 { - limb0: 0x9f2915845ed62dffd8cf578d, - limb1: 0x2e06cc425775a835523b631c, - limb2: 0x79107165881eada5, - limb3: 0x0 + limb0: 0x7f332aa618294143cc99c8ea, + limb1: 0x7f16b45e266bd698bfe7db10, + limb2: 0x37e1f193f25bd8e7, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ u384 { - limb0: 0xcb969d8d49f20bd1be92902f, - limb1: 0xb97ad4ef8d1c5d586bd00ff7, - limb2: 0x9b918a91eb4044d3, - limb3: 0x0 + limb0: 0xf5e9e49f0b69cefcbe984cfc, + limb1: 0xe3481300898ef46ba1612a32, + limb2: 0x18fc9a3d7ecff724, + limb3: 0x0, }, u384 { - limb0: 0x69f4487a777132c3e6490dd, - limb1: 0xf8d0d8daa1e3cd4ea10ee31c, - limb2: 0x899caf755066c6fe, - limb3: 0x0 + limb0: 0xba5a045ed8b4c7839e9fd785, + limb1: 0xdee8651114919a7d9938f7e4, + limb2: 0x15a3ac4e2161fb37, + limb3: 0x0, }, u384 { - limb0: 0x488c70a9947ac3c0ad671c12, - limb1: 0x921442c0e02922715cee086f, - limb2: 0xc3426bbfb909d44a, - limb3: 0x0 + limb0: 0x5c99d5cbc050ad147353fc3c, + limb1: 0x371f51b73f89600818bc1c14, + limb2: 0x50280f3a2db789ab, + limb3: 0x0, }, u384 { - limb0: 0xbca373f8b685caa4063f6eec, - limb1: 0x800000000000000042c5318b, - limb2: 0x7fffffff80000000, - limb3: 0x0 + limb0: 0xfbad18a3a60d2d4f4ba17994, + limb1: 0x9131eab5dfff09ae22c4f26a, + limb2: 0x696e276b49ed8226, + limb3: 0x0, }, + u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - a_den: array![ + b_num: array![ u384 { - limb0: 0xb484f3e576e34df112933b7a, - limb1: 0x4856df57f94d005775a16575, - limb2: 0x38031a9192c404f9, - limb3: 0x0 + limb0: 0x4be00c2b686f54e2cb14cb18, + limb1: 0x55c57eef2d613f91460146da, + limb2: 0x5e0ff25fc14a27e5, + limb3: 0x0, }, u384 { - limb0: 0x6816a023ce4214563232dce5, - limb1: 0x2868bed1629432b7b70a88bd, - limb2: 0x72d2e21965694d02, - limb3: 0x0 + limb0: 0xea8e14144bad5b00e62eb5cb, + limb1: 0x75235fa505bff996f5190012, + limb2: 0x2df2e1c15bdd6cb1, + limb3: 0x0, }, u384 { - limb0: 0x6360860e1bedaa4e204c84a7, - limb1: 0x46818d6b94d95ee93e337722, - limb2: 0x745ecbbb4ca9ff48, - limb3: 0x0 + limb0: 0xbedb58e5a8fd58c85a8279ae, + limb1: 0x981426d7de32d35d2eda758c, + limb2: 0x2f5d40e2f6cdebe8, + limb3: 0x0, }, u384 { - limb0: 0xb8c856cc549def6cece364ad, - limb1: 0x347160b7a264c7e9afa43a15, - limb2: 0x6622cf3d861c9d84, - limb3: 0x0 + limb0: 0xa4ce0c373f701cb77d5bec87, + limb1: 0x1b14022e9805bde47057d4a1, + limb2: 0x5b2fd3cb2b749bde, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0x74f8321cfadf4744ab575350, - limb1: 0xf9452b6cbb50e7e5032f50, - limb2: 0xe6c285898fcd3c29, - limb3: 0x0 + limb0: 0xc74d385623f39508a8b82ca7, + limb1: 0xa9cd07a695cd51652eba897f, + limb2: 0x72af1478903ba58b, + limb3: 0x0, }, u384 { - limb0: 0xaf7c390995420e76ec769c60, - limb1: 0x1d29c60d528e482e80eb7a15, - limb2: 0xe2051f817aab3d51, - limb3: 0x0 + limb0: 0xbabb46d08a914aa63f81aa8e, + limb1: 0x3ee14f4d6726efd58b504beb, + limb2: 0x354b0d3de8d2c8e0, + limb3: 0x0, }, u384 { - limb0: 0x213f4b5e56e35022a7086172, - limb1: 0x68a6300099ba58a357fb6262, - limb2: 0xebd80b34ca57c9b, - limb3: 0x0 + limb0: 0xe3548c3dd4a70d2066a408ea, + limb1: 0xc8d2aad767b01f8b057f3caa, + limb2: 0x2bbaabf71fe42e51, + limb3: 0x0, }, u384 { - limb0: 0x541be41abef90b408542fdbb, - limb1: 0x3c6d9fb449345e2742312efd, - limb2: 0x2084ae92cbc497c8, - limb3: 0x0 + limb0: 0xcc2ddfbc2b96d5c5c16e12ac, + limb1: 0xce4d27849ade7d3397c4746b, + limb2: 0x47372937fee9ef7d, + limb3: 0x0, }, u384 { - limb0: 0xd33ce8505aabd5ed564a81c7, - limb1: 0x5647c953419b28a4d693deb, - limb2: 0xcacbe38ac7e4b013, - limb3: 0x0 + limb0: 0x182999273d99a6cccc0b94a2, + limb1: 0xc6b0524dd1da33875937593f, + limb2: 0x42dcc15f6bb92f96, + limb3: 0x0, }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ u384 { - limb0: 0x43ec09d5418401ae12d2bf2b, - limb1: 0x9151f44a22f6c354a877d3a, - limb2: 0x714b8198e56be3d5, - limb3: 0x0 + limb0: 0x178ebd04708ffc65f255de7e, + limb1: 0x8211fea129e7ef192efbca, + limb2: 0xe66793bada5bede, + limb3: 0x0, }, u384 { - limb0: 0x16cc2ae39e1b93ce404a5507, - limb1: 0x357b4e63eb9032049bdf08a6, - limb2: 0x9a1c948767db21ef, - limb3: 0x0 + limb0: 0xa2cf6ee5e3e8cfd4a6e996f1, + limb1: 0xe2bf87ec79548fa4b585b6ed, + limb2: 0x5842e47b90b7c3ab, + limb3: 0x0, }, u384 { - limb0: 0x57558e074ec2389874f4589a, - limb1: 0x48714e453bccab064b53f52f, - limb2: 0x1d5d7464e0dce0f5, - limb3: 0x0 + limb0: 0x5866c894c0452a9dc6f2d9f2, + limb1: 0xd03c914c3824fa3009130903, + limb2: 0x6c5c8b0312255b16, + limb3: 0x0, }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + ] + .span(), + b_den: array![ u384 { - limb0: 0xf0b261cd6ea2c614f5a3324f, - limb1: 0x8f0ae69688a89cfaac579d4d, - limb2: 0x86654273d169dd87, - limb3: 0x0 + limb0: 0x6aba2a81ef70460d420d1b17, + limb1: 0x58ab7c099f87a66f48cf36f7, + limb2: 0x7e6ae6755d528dd3, + limb3: 0x0, }, u384 { - limb0: 0xa114cb50c36824d935b0f28, - limb1: 0x3f0059fff1fe61b70d3ae12e, - limb2: 0x9b30aa387d4e085e, - limb3: 0x0 + limb0: 0xf1eecdf77b964c711d9337a1, + limb1: 0x44d52315b66561885c50d76f, + limb2: 0x36e83e804a278969, + limb3: 0x0, }, u384 { - limb0: 0x6360860e1bedaa4e204c84a4, - limb1: 0x46818d6b94d95ee93e337722, - limb2: 0x745ecbbb4ca9ff48, - limb3: 0x0 + limb0: 0x89fa3412c438e08a6daa92d, + limb1: 0xbb9a6ff84d64d12a1d218cbb, + limb2: 0x2ff96687e2ece132, + limb3: 0x0, }, u384 { - limb0: 0xb8c856cc549def6cece364ad, - limb1: 0x347160b7a264c7e9afa43a15, - limb2: 0x6622cf3d861c9d84, - limb3: 0x0 + limb0: 0xb0fb6300671c9a0091969f56, + limb1: 0x1cbfe1bfd3e1339bff858e47, + limb2: 0x4b2786d9b4c8fa6b, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ u384 { - limb0: 0x5e9d1fbfc37c062ef49c6a12, - limb1: 0xcbc6cea6c8538b612f541bd4, - limb2: 0x96eb8d3d6b48ca30, - limb3: 0x0 + limb0: 0x3128ea0d6c4fbe24d836cc54, + limb1: 0x64829f8a5026023871f4b1ef, + limb2: 0x281fd6287c0765fa, + limb3: 0x0, }, u384 { - limb0: 0x5784a91a5e09d24e7c4a2665, - limb1: 0x7fffffffffffffff7c074594, - limb2: 0x7fffffff80000000, - limb3: 0x0 - } - ] - .span(), - a_den: array![ - u384 { - limb0: 0xdb55bf2e701e899e6d04b4d8, - limb1: 0xe04ce56bd7a9727526234229, - limb2: 0x66d4f1335c9ad786, - limb3: 0x0 + limb0: 0x4a47011452a47a6fe69e82c0, + limb1: 0xdf4aee00a8f9412cf7f793a8, + limb2: 0x2de0cdee70d20aab, + limb3: 0x0, }, u384 { - limb0: 0x7377d39d42736158c6e62d3b, - limb1: 0xa94c2fa3d87e34b636bac816, - limb2: 0x62d9945fe770d2dd, - limb3: 0x0 + limb0: 0xa26e1cafa9089fe0a2bae9c3, + limb1: 0x6863265ef801bdab75f3fd0f, + limb2: 0x392b26962a417f04, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0x21565f4fde2d9be41068eabc, - limb1: 0xda92e2ba65e35ddc556db782, - limb2: 0x6a5b232c6516ab98, - limb3: 0x0 + limb0: 0x12d57884d5ebd40773ffd5db, + limb1: 0x542c81414255dd612e6f234, + limb2: 0x1dd669d98b2427e0, + limb3: 0x0, }, u384 { - limb0: 0x95d4f1c6c3fcceaaa67e8e1c, - limb1: 0xf747d54a81d76898135824f5, - limb2: 0x95695c662b1af329, - limb3: 0x0 + limb0: 0x65646871fd400bf8dac19646, + limb1: 0xa906550da44746b5093b8e1d, + limb2: 0x7e8fb9fb236d059f, + limb3: 0x0, }, u384 { - limb0: 0xf2eaccb682507c999a4df89a, - limb1: 0xc2bdd361b510f61bc371b4fc, - limb2: 0xded595ee6059680f, - limb3: 0x0 - } - ] - .span(), - b_den: array![ - u384 { - limb0: 0x899197a2064b19220bd7fc8f, - limb1: 0xb2e8d1b58ea343b9a09836b2, - limb2: 0xd9dbd91e14942608, - limb3: 0x0 + limb0: 0xedffe0fa31c014ff973311a0, + limb1: 0x30781bbaeece86331e7908e8, + limb2: 0x371a2cd40e3e6415, + limb3: 0x0, }, u384 { - limb0: 0xd5db118e53a305c07218bb2c, - limb1: 0x1493c1351e39a26c598a2ffc, - limb2: 0x3307597c6c849383, - limb3: 0x0 + limb0: 0xce90aa658d2c289d98c68707, + limb1: 0xa1ac66c827180a87cf47b684, + limb2: 0x4b4dffa3ba322213, + limb3: 0x0, }, u384 { - limb0: 0x71ec361e74741833d31fd899, - limb1: 0xb8072e69ed1de899c0ecae6e, - limb2: 0x323978b7f3e81b4f, - limb3: 0x0 + limb0: 0x7ce8ac9682b828d53ae6d67b, + limb1: 0xc1a025f07355e8808660bb56, + limb2: 0x13e54ed6edcc7476, + limb3: 0x0, }, u384 { - limb0: 0xdb55bf2e701e899e6d04b4d5, - limb1: 0xe04ce56bd7a9727526234229, - limb2: 0x66d4f1335c9ad786, - limb3: 0x0 + limb0: 0x693f00c36cc28ea36c10137c, + limb1: 0x68b732c4a1049dde8474d271, + limb2: 0x2d76bc0dd3714891, + limb3: 0x0, }, u384 { - limb0: 0x7377d39d42736158c6e62d3b, - limb1: 0xa94c2fa3d87e34b636bac816, - limb2: 0x62d9945fe770d2dd, - limb3: 0x0 + limb0: 0xfbad18a3a60d2d4f4ba17994, + limb1: 0x9131eab5dfff09ae22c4f26a, + limb2: 0x696e276b49ed8226, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] - .span() + .span(), }, }; let derive_point_from_x_hint = DerivePointFromXHint { y_last_attempt: u384 { - limb0: 0x8a7b675a3fc77ffdc3b20055, - limb1: 0x9355390e30a9dfa77360e608, - limb2: 0x242c68b5a77e18fa, - limb3: 0x0 + limb0: 0x81ec98c9fa009603acb8e347, + limb1: 0xfba93f564697f066a290c713, + limb2: 0x6f5cf5e56e524b8, + limb3: 0x0, }, - g_rhs_sqrt: array![ - u384 { - limb0: 0xdd7238cb7874504d33a3566a, - limb1: 0xe47177ccba23504d4127b118, - limb2: 0x2f390a165a1f9054, - limb3: 0x0 - }, - u384 { - limb0: 0x13acc68c3e6502874be4e4d8, - limb1: 0xc4b05c85d0a2594519c93546, - limb2: 0x24474dc1b4ec30e, - limb3: 0x0 - } - ] - .span(), + g_rhs_sqrt: array![].span(), }; let points = array![ G1Point { x: u384 { - limb0: 0x113c8d620e3745e45e4389b8, - limb1: 0x85b8ff52d905fd02fe191c3f, - limb2: 0xf5d132d685201517, - limb3: 0x0 + limb0: 0x7238f02b9f20e09c2181a557, + limb1: 0x2cedcc5b0be371c337fd7e9e, + limb2: 0x41f3bbeb280fe8a2, + limb3: 0x0, }, y: u384 { - limb0: 0x60c0ba1b358f375b2362662e, - limb1: 0x6abfc829d93e09aa5174ec04, - limb2: 0x7bc4637aca93cb5a, - limb3: 0x0 - } + limb0: 0xf046f8cd6e5a75fca71dd19b, + limb1: 0x892b4613ef5c58df4ef692a4, + limb2: 0x7527fa36f5738847, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0xd3ff147ff0ee4213f51f677d, - limb1: 0x431366a7732a6e4a6b942255, - limb2: 0x9fe743b25d39a591, - limb3: 0x0 + limb0: 0x82e4a33f8e4e5881e791d86b, + limb1: 0xbcb062435ae8ec5fdaeac4bf, + limb2: 0x179e1bae9e0f9f34, + limb3: 0x0, }, y: u384 { - limb0: 0x7f8bb562ff60a902ef14bcb0, - limb1: 0xeb9420089fa531db62e806a6, - limb2: 0xfd028df433dfd5cc, - limb3: 0x0 - } + limb0: 0x19657783ba5660e255c21849, + limb1: 0x7ed7474bcea7551fc71e46bc, + limb2: 0x596c0a76b75f4756, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0x46ae31f6fc294ad0814552b6, - limb1: 0x2d54cc811efaf988efb3de23, - limb2: 0x2a2cc02b8f0c419f, - limb3: 0x0 + limb0: 0xa6832ef7fe97f77de7cd9a62, + limb1: 0xf18a70dbf1dc5a76c685da4a, + limb2: 0x6ac1b7bfc409119f, + limb3: 0x0, }, y: u384 { - limb0: 0xaec889b9d8ce51c4a2c3586f, - limb1: 0xa2b07874c333bfee9f78e13e, - limb2: 0xc445de21be8d8709, - limb3: 0x0 - } + limb0: 0x7751161b1a9ef600b865a5af, + limb1: 0xed28aad4835a39a9e8318ceb, + limb2: 0x572e95c429f0e07a, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0x7e47d1c2d19c21b2f6870259, - limb1: 0xe701b40af42001c38bca00db, - limb2: 0xd87ea1720d4dd3d6, - limb3: 0x0 + limb0: 0x5e71d0fc5d1c016834779173, + limb1: 0xadd002dfc0ebf1b25c23c252, + limb2: 0x40a868d928ae5233, + limb3: 0x0, }, y: u384 { - limb0: 0x5b1d6cc74985ce49a1f737fe, - limb1: 0xb9127c572c3f091c031c249c, - limb2: 0x1392711e1576aa6f, - limb3: 0x0 - } + limb0: 0x423fa293418d6e3f59c2e830, + limb1: 0x7a4bcf26f93e71ffd903e68e, + limb2: 0x7837b851ad8da6e3, + limb3: 0x0, + }, + }, + G1Point { + x: u384 { + limb0: 0x5907087f8e8e4dacdd039371, + limb1: 0xc390e2073b4e64b9ede0570d, + limb2: 0x6b039a85962f1594, + limb3: 0x0, + }, + y: u384 { + limb0: 0xc45eefa03155b8f7eb780b42, + limb1: 0x3db57eb22f9b0394a4d7b78e, + limb2: 0x6cf45b6d90883f60, + limb3: 0x0, + }, + }, + G1Point { + x: u384 { + limb0: 0x60dd8ed0a614b596fb37eb1f, + limb1: 0xabb99f371be41e26ec2d8e4b, + limb2: 0x187ecd72c40f159d, + limb3: 0x0, + }, + y: u384 { + limb0: 0x7b66c9263de5e1663622985d, + limb1: 0x118b032cc27a1d6dd192eca6, + limb2: 0x312fb405788616e8, + limb3: 0x0, + }, + }, + G1Point { + x: u384 { + limb0: 0xf4ac3e1f1f068dd64c86fdda, + limb1: 0x24594e591d82a7f964b5ec9f, + limb2: 0x6ca311b5421c57fc, + limb3: 0x0, + }, + y: u384 { + limb0: 0x42745cd7b146012455434d0f, + limb1: 0x6aa4f552b7bdc93a613bd9df, + limb2: 0x5832a065d7199c7a, + limb3: 0x0, + }, + }, + G1Point { + x: u384 { + limb0: 0x341786b7854e3e0104e2e416, + limb1: 0xbb368441c295043bee7b1d2f, + limb2: 0x35c88542e11463b4, + limb3: 0x0, + }, + y: u384 { + limb0: 0x3c36e7fcc4e2fde28308132, + limb1: 0xf58043d0e3d1a36d1f8137fc, + limb2: 0x58c1508fbe8868a8, + limb3: 0x0, + }, + }, + G1Point { + x: u384 { + limb0: 0x560a37951d69a6c8d7138239, + limb1: 0x462d454a509846714184ef71, + limb2: 0x3aaf8fb4f60e3e9c, + limb3: 0x0, + }, + y: u384 { + limb0: 0xb70cea4e13db5322899753f9, + limb1: 0x6c62656b6d7ffb5c2af44fd5, + limb2: 0x4b5ae4567dc6a7c0, + limb3: 0x0, + }, }, G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, ] .span(); let scalars = array![ u256 { low: 0x0, high: 0x0 }, u256 { - low: 0xb4862b21fb97d43588561712e8e5216a, high: 0x259f4329e6f4590b9a164106cf6a659e + low: 0x2f1205544a5308cc3dfabc08935ddd72, high: 0x10e1c2b2fcd81b5d24bace4307bf326, + }, + u256 { + low: 0x2648ee38e07405eb215663abc1f254b8, high: 0x29164ebd7ab792809e469e6ec62b2c8, + }, + u256 { + low: 0x85940927468ff53d864a7a50b48d73f1, high: 0x6e2edd0d977e9933c49d76fcfc6e625, + }, + u256 { + low: 0xd344749096fd35d0adf20806e5214606, high: 0x8ce86e89466e4726b5f5241f323ca74, + }, + u256 { + low: 0x30bcab0ed857010255d44936a1515607, high: 0x8ac57cfbb42e0b20426465e3e37952d, + }, + u256 { + low: 0x5f3f563838701a14b490b6081dfc8352, high: 0xda2ddc3552116dd2ba4b180cb69ca38, }, u256 { - low: 0x12e0c8b2bad640fb19488dec4f65d4d9, high: 0x5487ce1eaf19922ad9b8a714e61a441c + low: 0xc87a746319c16a0d0febd845d0dfae43, high: 0x7003168b29a8b06daf66c5f2577bffa, }, u256 { - low: 0x5a92118719c78df48f4ff31e78de5857, high: 0xa3f2c9bf9c6316b950f244556f25e2a2 + low: 0x176ea1b164264cd51ea45cd69371a71f, high: 0x3b6a666fb0323a1d576d4155ec17dbe, }, u256 { - low: 0x8d723104f77383c13458a748e9bb17bc, high: 0x85776e9add84f39e71545a137a1d5006 + low: 0x9edfa3da6cf55b158b53031d05d51433, high: 0x23d79a9428a1c22d5fdb76a19fbeb1d, }, ] .span(); let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 3 + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 4, ); assert!( res == G1Point { x: u384 { - limb0: 0x8d3ffa9029b619440f956237, - limb1: 0xce4c071711e8ec7710d65a79, - limb2: 0x2ad2736b3dd733f5, - limb3: 0x0 + limb0: 0x953e7b69bc51afd0e8ee14e8, + limb1: 0x88f2a3f463abe0e4d99ed2b4, + limb2: 0x282277c34990a0db, + limb3: 0x0, }, y: u384 { - limb0: 0xf71c4bcdd7f47f782606c4a6, - limb1: 0x7e6c8d62f248689e3c818501, - limb2: 0x1adb966232156945, - limb3: 0x0 - } - } + limb0: 0xc4b37aaf5a797b777a89ebc3, + limb1: 0xec1836313170e0d9647efdf3, + limb2: 0x63f08f0867a4694d, + limb3: 0x0, + }, + }, ); } #[test] - fn test_msm_SECP256R1_6P() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - ] - .span(), - array![ - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - ] - .span(), - array![ - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - ] - .span() - ), - ] - .span() - ); + fn test_msm_ED25519_11P() { + let scalars_digits_decompositions = Option::None; let msm_hint = MSMHint { Q_low: G1Point { x: u384 { - limb0: 0x318290bc4d409bad5d313493, - limb1: 0x6ae8207aed39e182488e38c0, - limb2: 0x9d76d554a4b8c08b, - limb3: 0x0 + limb0: 0xf7f73668ed31827e6a25b1e8, + limb1: 0xa31457d7a2c542bbf3b3c13, + limb2: 0x7d799610c8f16ab4, + limb3: 0x0, }, y: u384 { - limb0: 0xedfc42dc628274c42a123cbb, - limb1: 0x5e283c45333ac5d3f1ec8cfc, - limb2: 0xe162435262e42358, - limb3: 0x0 - } + limb0: 0x6c03502900d94323a740e874, + limb1: 0xc399c691ef16e90aa7f2e45a, + limb2: 0x6c1d54069d32fa1e, + limb3: 0x0, + }, }, Q_high: G1Point { x: u384 { - limb0: 0x2385c6fdffd3fe5130be09c8, - limb1: 0xf0c1b7d9dcdcbf2b3679ae97, - limb2: 0xd71d2eccc6ca36f6, - limb3: 0x0 + limb0: 0x9f5046b366b4e82578ea7cfd, + limb1: 0x5657ceee8f185b72bd049708, + limb2: 0x53c3ed1e985a9f2a, + limb3: 0x0, }, y: u384 { - limb0: 0x5f74efceeab8d5b0bd4cc451, - limb1: 0x2209a8ed5e32f9761b19ef8f, - limb2: 0xf7e4900cc34886ef, - limb3: 0x0 - } + limb0: 0xf14204086006b6971e3d450, + limb1: 0x8c84b71627d8b4bd5d0713cc, + limb2: 0x13f218899f7041e4, + limb3: 0x0, + }, }, Q_high_shifted: G1Point { x: u384 { - limb0: 0xd1a3780e021b180ee94f583c, - limb1: 0x74487d1c9b914a5a664a4882, - limb2: 0xfd85959d09c9c5e, - limb3: 0x0 + limb0: 0x25b995ad06874ea339c7afd3, + limb1: 0x68f3a5868e23705dbaa50f78, + limb2: 0x2a0c6e906ba7ad96, + limb3: 0x0, }, y: u384 { - limb0: 0x29cd74a84be4f8f9a6834b18, - limb1: 0x1d37b4c25ceed7d4473cd15f, - limb2: 0xfdfc56f0e60b5d53, - limb3: 0x0 - } + limb0: 0x1135152280c1d9643c6ae557, + limb1: 0xf2529e96d78f463c1cf0d966, + limb2: 0x6b61d89001e0d390, + limb3: 0x0, + }, }, - SumDlogDivLow: FunctionFelt { + RLCSumDlogDiv: FunctionFelt { a_num: array![ u384 { - limb0: 0x7d6f5bec1403027c179ab5ca, - limb1: 0x6c92096602d138fe0d0d8e2f, - limb2: 0x20eb33108e463149, - limb3: 0x0 + limb0: 0x2e742f3d9cbdefdd73113073, + limb1: 0x67fe8ffbea3c17f5a002eedd, + limb2: 0xe506536da7bf16e, + limb3: 0x0, }, u384 { - limb0: 0x90271860d67f16a6eb07f5bb, - limb1: 0x304d866010fc6bb0eb5cdc6f, - limb2: 0x2f9de1010ae3a66a, - limb3: 0x0 + limb0: 0xd126cb3cd730b818de2624bc, + limb1: 0x8b751c7c64c6aaa38b98601c, + limb2: 0x2e8714c387fd6f82, + limb3: 0x0, }, u384 { - limb0: 0x72c4d774aa74030bdd93399, - limb1: 0xb1f010f081c576b3549c62f, - limb2: 0x51887bd45d4a6001, - limb3: 0x0 + limb0: 0xe555573b080a984b0ddfd5b7, + limb1: 0xc8f02fa06451530e73be6f63, + limb2: 0x39bcdb5b56883e9a, + limb3: 0x0, }, u384 { - limb0: 0x74099ac20c75bb223e022d9a, - limb1: 0xd7f5d135d8b6de1bdd20b42c, - limb2: 0x3634fd30dacfbda0, - limb3: 0x0 + limb0: 0x1798726c819c7783ab7f038f, + limb1: 0xe788b5ea9c47e1826090898e, + limb2: 0x13ec5f23c8b5bc43, + limb3: 0x0, }, u384 { - limb0: 0x75e802d9b8534b9d603eeb17, - limb1: 0xffffffffffffffffdbec631c, - limb2: 0xffffffff00000000, - limb3: 0x0 + limb0: 0x8cc0da6a6236ef707bda54b8, + limb1: 0x10a3b1ad2a34798976966a53, + limb2: 0x136193a2885eccd0, + limb3: 0x0, }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ u384 { - limb0: 0x80368f0e36f6f73a3480557d, - limb1: 0xa55efec9be0b256bc52d8878, - limb2: 0x9449b41344b5edf2, - limb3: 0x0 + limb0: 0x9186b9521e2d6f1ece443b58, + limb1: 0x87c456fb5d8489efe4d7509b, + limb2: 0x78293def00ee1577, + limb3: 0x0, }, u384 { - limb0: 0x5d2fbe3126d0761a50802797, - limb1: 0x987bb27aeba6ec2f662b2c38, - limb2: 0x7212e3899f0e810e, - limb3: 0x0 + limb0: 0x41601c2865a912db7c8ac9c9, + limb1: 0xb7b885823e953ca30f6a77cd, + limb2: 0x78ce2847f63ec245, + limb3: 0x0, }, u384 { - limb0: 0x24bb32b57ba187b88aa07099, - limb1: 0x97f22e0b7d2560696795f028, - limb2: 0xd75866a78fd1cb77, - limb3: 0x0 + limb0: 0x558c0309f34095a5fe799977, + limb1: 0xc1391d44788ef596587bf63a, + limb2: 0x6e904194151f085e, + limb3: 0x0, }, u384 { - limb0: 0x24ee799d5ce641332d1cf44a, - limb1: 0x9762f0cd34de7cfbefd9828f, - limb2: 0xe222f395e254b736, - limb3: 0x0 + limb0: 0xd99813daa943071c30475839, + limb1: 0xe062f33ade676b0aa9a897e4, + limb2: 0x411a45534b170b7, + limb3: 0x0, }, u384 { - limb0: 0x7e68c11f8adce4345574c2a7, - limb1: 0xbd3b8183efbb1dce154dea04, - limb2: 0xaf811b32de461ca5, - limb3: 0x0 + limb0: 0xa8a468151642d97b8a6cecd1, + limb1: 0x22578b4c1029bee6f4578ff8, + limb2: 0x478a7690da534a58, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0x5ec947cedeacab93f0d7d51a, - limb1: 0x3b333048be19a285c467fd27, - limb2: 0x3588aa641ee1a891, - limb3: 0x0 + limb0: 0x794dbe931d56a7939a061049, + limb1: 0x31e7a3b41d762eafbf4f5dae, + limb2: 0x5a988b05b1f64236, + limb3: 0x0, }, u384 { - limb0: 0x7c4bce67b18e91c51c64224a, - limb1: 0xf715f5619366573417b9323e, - limb2: 0x5db1f0c8be115034, - limb3: 0x0 + limb0: 0xc022279cf32a8b05c80e6a62, + limb1: 0x9b6fc2bd314c187b5f1cd6ce, + limb2: 0x1b483b2da7027421, + limb3: 0x0, }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + ] + .span(), + a_den: array![ u384 { - limb0: 0x6d0c3c7cc7a939dfe9f8f7a1, - limb1: 0xe75a2a46d0f4b765820593e0, - limb2: 0x1e7b7def1362127f, - limb3: 0x0 + limb0: 0x9cda2e302366377171cc82a6, + limb1: 0xe3e3dad3bdeaa33063fddc6, + limb2: 0x4329fbf9c026acea, + limb3: 0x0, }, u384 { - limb0: 0xb5886c5d9acf2498a9930fc, - limb1: 0xb0e00bd8d9bd2f1b70fda140, - limb2: 0x653aca06aa82986e, - limb3: 0x0 + limb0: 0x3770918da7441cb0ab4196f7, + limb1: 0x2d2f16fd65dbbd5c10cd75a2, + limb2: 0x17ff3edc194d68b6, + limb3: 0x0, }, u384 { - limb0: 0x4a389fbc1913cd46f88cf48, - limb1: 0x1e381475e7193f363f80ca59, - limb2: 0xc57a6ea06857759b, - limb3: 0x0 + limb0: 0x391373027457fdc75d4444b2, + limb1: 0x5f4bcbc3bc90f4ee8ea015f9, + limb2: 0x6926f31aadd8ec3f, + limb3: 0x0, }, u384 { - limb0: 0xfca90f784a58c7ca5d3f19dc, - limb1: 0xa5d2ec7b4d4a9117c00e8cd2, - limb2: 0xb5898812913fa77c, - limb3: 0x0 + limb0: 0x320ea95d2516fdf758d23671, + limb1: 0xd5023c332d003ff97758bfd1, + limb2: 0x7db2fe4b91bf5870, + limb3: 0x0, }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ u384 { - limb0: 0x3a66d31eaba2302a146bc02c, - limb1: 0xcad68eaf77bc3cdc46a69eae, - limb2: 0x6c123921b436db62, - limb3: 0x0 + limb0: 0x66c5c34e88ce615c6cb290a0, + limb1: 0x4cfedd0c32af5cd2d30761b9, + limb2: 0x4cb66588dedde84a, + limb3: 0x0, }, u384 { - limb0: 0x6ce4dd2320ad0fa520548468, - limb1: 0x95e3a72bf874dc7de6658452, - limb2: 0x93f6459c428b946d, - limb3: 0x0 + limb0: 0x6acaa0a007d782b1f43b6bc3, + limb1: 0x81b46d1da5e337db7372f479, + limb2: 0x1e1e7516f1548702, + limb3: 0x0, }, u384 { - limb0: 0x2dbdf4af6c969a943ebed73e, - limb1: 0xf4e43942c8c173ef9078d5f6, - limb2: 0x263125df67fbb524, - limb3: 0x0 + limb0: 0xe9c4cdc8e7ea4eb45fdf792e, + limb1: 0xf058d29c9c57cf1087ae8cc, + limb2: 0x3cf7669396f0898e, + limb3: 0x0, }, u384 { - limb0: 0xcbb40b65e92ff8ac997a1067, - limb1: 0x593d2b3f4f1b181b9460ef74, - limb2: 0x6492338ab122ede3, - limb3: 0x0 + limb0: 0x8fd6406980cc1513e3e70bb, + limb1: 0x301de9cb700fcb44f0834303, + limb2: 0x1230985ecf8ec3b3, + limb3: 0x0, }, u384 { - limb0: 0x782c47b73b228c6fea776b95, - limb1: 0x358b1255b13b8b82cae27ad, - limb2: 0xcf1f792f4d6554ef, - limb3: 0x0 + limb0: 0x291d1ebdcccec5063d394648, + limb1: 0xd1873d2257f45fc052784cff, + limb2: 0x2f8c26f8e4f4c6fd, + limb3: 0x0, }, u384 { - limb0: 0x75d4a04d16d91759b21488ee, - limb1: 0x142b66d5248c8dbb8cc938cc, - limb2: 0x239b4ae69f3a096f, - limb3: 0x0 + limb0: 0xc6516ff2a21c364dedafac02, + limb1: 0xed140f7803ed0f768d900597, + limb2: 0x50b5051c47a60371, + limb3: 0x0, }, u384 { - limb0: 0x24ee799d5ce641332d1cf447, - limb1: 0x9762f0cd34de7cfbefd9828f, - limb2: 0xe222f395e254b736, - limb3: 0x0 + limb0: 0x499fd02245dca6202fd54521, + limb1: 0x6280a650a5f4c94fa8c10d03, + limb2: 0x19470e3f920d110b, + limb3: 0x0, }, u384 { - limb0: 0x7e68c11f8adce4345574c2a7, - limb1: 0xbd3b8183efbb1dce154dea04, - limb2: 0xaf811b32de461ca5, - limb3: 0x0 + limb0: 0xd205e9921108aa553f45b75a, + limb1: 0x776f5ac2b8cbd09c55bc0fee, + limb2: 0x1e3efb0c587fbf57, + limb3: 0x0, }, u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x47f74bf3ce97f8a1f24c0f8d, - limb1: 0xada8ac3ef8ef0dcb80ee9c8f, - limb2: 0x3c024309457bffc4, - limb3: 0x0 - }, - u384 { - limb0: 0xff19517bcd370713ab7e49db, - limb1: 0xf38a3d59697632bee8b793a5, - limb2: 0x69aedd064fb19e5e, - limb3: 0x0 - }, - u384 { - limb0: 0x16a39fd75f370f581f8e81ed, - limb1: 0x308a8cc5a924c08b3b295b69, - limb2: 0x61302f7f46d54c72, - limb3: 0x0 - }, + .span(), + b_num: array![ u384 { - limb0: 0xd8d091bbe135b2136d5037e8, - limb1: 0x29e04e15729c31569d2f472c, - limb2: 0xb2908108fe920642, - limb3: 0x0 + limb0: 0x93ad4b9763b0de0fc0c0844e, + limb1: 0xd518af12b6e63e2c7bd54e2, + limb2: 0x72cc0485b6ed657a, + limb3: 0x0, }, u384 { - limb0: 0x86923f8197423499e7031a71, - limb1: 0x8000000000000000735d6386, - limb2: 0x7fffffff80000000, - limb3: 0x0 + limb0: 0x9b764061d9098e862f8cd4a8, + limb1: 0xeaad0e30d30091cd364a4cad, + limb2: 0x763f590fa9389c9d, + limb3: 0x0, }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ u384 { - limb0: 0x6d3aa635e49dbe3ea268a5ac, - limb1: 0x45b40ca7748d0d9dc2af6eae, - limb2: 0x3123be48bd21cb30, - limb3: 0x0 + limb0: 0xdd2eeb3978979aba4d02c944, + limb1: 0xdb699a680afdbcd70a1651c9, + limb2: 0x376757ee3a1fac9f, + limb3: 0x0, }, u384 { - limb0: 0x4d5ff55952c684bbacd13ab0, - limb1: 0xd2dcc3f13d43e5c09ba4341f, - limb2: 0x87fdbd9722674129, - limb3: 0x0 + limb0: 0x5c86da72aedf5b98305a365, + limb1: 0x5d74aa401fd4f539512c23f6, + limb2: 0x165018b95032b2fc, + limb3: 0x0, }, u384 { - limb0: 0x5f459a5e981dea320d18f66, - limb1: 0x249e9697443380fe054151f9, - limb2: 0xbb87df30b6e8d174, - limb3: 0x0 + limb0: 0x25a98febef34ad7480b7b529, + limb1: 0xeab5cb6e32f485662d583196, + limb2: 0x721453673c96d326, + limb3: 0x0, }, u384 { - limb0: 0xc7ee473e1bd1d6a8398e8a82, - limb1: 0xc562d6641b11f894d32520a7, - limb2: 0xe036a14425aa4e95, - limb3: 0x0 + limb0: 0xe745c9baa70ee618755c7fd4, + limb1: 0xf82eff8dd6332652787b6b86, + limb2: 0x306d0d5a7a2d978d, + limb3: 0x0, }, u384 { - limb0: 0x8c658addd849819081e7ed72, - limb1: 0x3761ea25001840252762742d, - limb2: 0x75dac1babc34a63a, - limb3: 0x0 + limb0: 0x74aa65ccd9252aa8a84465d5, + limb1: 0xfb6056154834c19887b891eb, + limb2: 0x12fb4eddd947ddef, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0x18dbbb54d2c44e1ccaa5d5cf, - limb1: 0x4a8a5586e0324d8a8c5c65df, - limb2: 0x2dd95ddec58c48c5, - limb3: 0x0 + limb0: 0x6fe1fbddac1a39d990a2067c, + limb1: 0xf3683dbbe173344764f7505a, + limb2: 0x1a2e3eda21b0ebe, + limb3: 0x0, }, u384 { - limb0: 0xf3adf1fbaa5637c11c37d90a, - limb1: 0x6f79426e77b3391220aff1ed, - limb2: 0x49b9fec6fc28dd51, - limb3: 0x0 + limb0: 0x280be09493f5a8b91bb1b6a7, + limb1: 0x1f95f721eec5c731026cb4e0, + limb2: 0x6d542e5bf042b94d, + limb3: 0x0, }, u384 { - limb0: 0x1308fc62712103005c51367b, - limb1: 0xd0d7aedaf6468234ca0637aa, - limb2: 0x462c37ba7e6fd23e, - limb3: 0x0 + limb0: 0xe7cfb9f1d99def11b0233390, + limb1: 0x79954b3cac6c7e339af268a2, + limb2: 0x4e97add6c732166, + limb3: 0x0, }, u384 { - limb0: 0x2da1a1f6d0c09847ce40e137, - limb1: 0xd7188cb8833dae12e118cb3b, - limb2: 0x15b2d4477539cf5, - limb3: 0x0 + limb0: 0x3ce90a9542916b32952b82bb, + limb1: 0xa8c0339320480164d1512b55, + limb2: 0x3eece52f40b4681c, + limb3: 0x0, }, u384 { - limb0: 0x850477a84c78d59a5f4519d6, - limb1: 0x89487da0d1d4fb87491bcf46, - limb2: 0xf722a976e9a67ac5, - limb3: 0x0 + limb0: 0x7ed13ab720c15ed86e6e6e61, + limb1: 0x1635d187018bd92ade2a5bc9, + limb2: 0x66f7975dcc19630a, + limb3: 0x0, }, u384 { - limb0: 0x1dd1f9e11d9e63654b6bdc23, - limb1: 0xfb81016133f1fdfa13a4acb8, - limb2: 0x6da064aa094913ff, - limb3: 0x0 + limb0: 0xfa9e6cabae8b56b48f983853, + limb1: 0x26eeb471d00e1aa629a3d351, + limb2: 0x25afb6f5c9f9fa5, + limb3: 0x0, }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), b_den: array![ u384 { - limb0: 0x5f7f16347a2247a456879db7, - limb1: 0xe6c02a21250e091550642c1, - limb2: 0xbbd7798ab1f1066a, - limb3: 0x0 - }, - u384 { - limb0: 0x2b3e5ffb155a91c49e5131c5, - limb1: 0xbcfc04361750e78ff26d93d2, - limb2: 0x1f19fcaa2804f4b5, - limb3: 0x0 - }, - u384 { - limb0: 0x2489538f89f3be94bdf17b2e, - limb1: 0xf18e5316814c9069bff6cc1f, - limb2: 0xf20af9258b620d0c, - limb3: 0x0 - }, - u384 { - limb0: 0xc3dd43f2e9734ebd5c7eb6c3, - limb1: 0xe6953c9dbf30884fafaf86ca, - limb2: 0xb163f88389653a15, - limb3: 0x0 + limb0: 0x7789a937a1bce0e5d0e3847, + limb1: 0x69ffbf6df08ea603182cb143, + limb2: 0x47f7faef3d5b9e2c, + limb3: 0x0, }, u384 { - limb0: 0xc8074492cb1cf376e8545ea8, - limb1: 0x680ac408f80b144f92e132c1, - limb2: 0x138058f7064c31fa, - limb3: 0x0 + limb0: 0x6f41440f1a825a594286b43d, + limb1: 0x811124125910aca02374b18f, + limb2: 0x5f7d10700d0e580a, + limb3: 0x0, }, u384 { - limb0: 0x2d176a029c73962fc2ec275a, - limb1: 0x3264957dba83474af436fc22, - limb2: 0xb4bdcfd82c8572ae, - limb3: 0x0 + limb0: 0x4a65f9be094f9ab8d3851649, + limb1: 0xbce603238b381116f4957645, + limb2: 0xdb46c1a5b4948d6, + limb3: 0x0, }, u384 { - limb0: 0xc7ee473e1bd1d6a8398e8a7f, - limb1: 0xc562d6641b11f894d32520a7, - limb2: 0xe036a14425aa4e95, - limb3: 0x0 + limb0: 0x5284ed62f63b70f5e656c5e0, + limb1: 0x65b8f31d47b89defc245bfaf, + limb2: 0x7f3d15c11345bb3b, + limb3: 0x0, }, u384 { - limb0: 0x8c658addd849819081e7ed72, - limb1: 0x3761ea25001840252762742d, - limb2: 0x75dac1babc34a63a, - limb3: 0x0 + limb0: 0x5b35440d0cbd4d01c1b2ebc9, + limb1: 0x2fd64a4cc840e16f23de1f0a, + limb2: 0x4c614d91bf42dc01, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ u384 { - limb0: 0x410d314c894e62747ca682c7, - limb1: 0xdcc0deeaee60e11f0bee0e4b, - limb2: 0x298da2b38b27ff68, - limb3: 0x0 + limb0: 0xe1d31429454ed8b3ecefc67c, + limb1: 0x366d0c3b1ab432aab2ed6c7e, + limb2: 0x3364cdedc20c8f30, + limb3: 0x0, }, u384 { - limb0: 0x5784a91a5e09d24e7c4a2665, - limb1: 0x7fffffffffffffff7c074594, - limb2: 0x7fffffff80000000, - limb3: 0x0 - } - ] - .span(), - a_den: array![ - u384 { - limb0: 0xcf263c46fe6d8c148e3b4821, - limb1: 0x46f509f4d96288b6faafe858, - limb2: 0xcaff96366ff27f14, - limb3: 0x0 + limb0: 0x6abe7d3bafe0312bc3929fd7, + limb1: 0x43c0dea9724dd31936a39328, + limb2: 0x1c2c0c85b2bf229b, + limb3: 0x0, }, u384 { - limb0: 0xad6c0f3fe10e99fe5f29dfb, - limb1: 0x9af5cb098791f67a633c08e7, - limb2: 0x190a77d868992cab, - limb3: 0x0 + limb0: 0x217ec2ffca7cc593364532f0, + limb1: 0x242fdb8aafd09bec78a7143a, + limb2: 0x75b3566b974acb9c, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0x274593472445b64c4f2dc6ef, - limb1: 0x48e3f1e2afbcd03685195e0, - limb2: 0xc9200c2742457435, - limb3: 0x0 + limb0: 0xfcc3abd1fc0b7f1f289df44b, + limb1: 0x87c919b0e10a7a0b5b9dd2d9, + limb2: 0x8686ce11fd1724d, + limb3: 0x0, }, u384 { - limb0: 0xcf3ae8c736cb919129909dbd, - limb1: 0x6789544948d8fa679505446a, - limb2: 0xc105d3a7f4c6d4d6, - limb3: 0x0 + limb0: 0x54b31f1351a94e1886070e4b, + limb1: 0xa75325315d1fc66c112bc40a, + limb2: 0x5925f7d4025073b7, + limb3: 0x0, }, u384 { - limb0: 0xbdb36638f4b4c57c998b948f, - limb1: 0x1b4bbb3a703d6b5b349a04d9, - limb2: 0xdc0dfa9a263b1572, - limb3: 0x0 - } - ] - .span(), - b_den: array![ - u384 { - limb0: 0x8e5693d07c5f801d143cd3de, - limb1: 0xa84f6e3a6f1d494077f95365, - limb2: 0x5f22339ab72269ff, - limb3: 0x0 + limb0: 0xeb04a4df264f94a640ccc985, + limb1: 0x416e98ad4fa5488ca54c66d4, + limb2: 0x1449e7f9bc3a7f43, + limb3: 0x0, }, u384 { - limb0: 0x50de1a19772723cc2e04a561, - limb1: 0xb0cf578958b8198373b7d914, - limb2: 0x1aeb399d8b20d96e, - limb3: 0x0 + limb0: 0x7d9bb529995917ef940de5ff, + limb1: 0x1534686a0f9e98335b3da8ae, + limb2: 0x8ee7000cd3da1f, + limb3: 0x0, }, u384 { - limb0: 0xabcf6e1a419b7f5e75fa865a, - limb1: 0xe30a5c38dfe2a34d3b68ebfb, - limb2: 0xfa6ce4f706f0de4, - limb3: 0x0 + limb0: 0x1fd7e65d4b6df32ef5e8c9f, + limb1: 0x6813c2e9ee4edc8747844577, + limb2: 0x710c1abc39ccd151, + limb3: 0x0, }, u384 { - limb0: 0xcf263c46fe6d8c148e3b481e, - limb1: 0x46f509f4d96288b6faafe858, - limb2: 0xcaff96366ff27f14, - limb3: 0x0 + limb0: 0x5644fb19f24e87af28915c4e, + limb1: 0x9418875e077007261479c360, + limb2: 0x7695bb1337c6cff1, + limb3: 0x0, }, u384 { - limb0: 0xad6c0f3fe10e99fe5f29dfb, - limb1: 0x9af5cb098791f67a633c08e7, - limb2: 0x190a77d868992cab, - limb3: 0x0 + limb0: 0xd205e9921108aa553f45b75a, + limb1: 0x776f5ac2b8cbd09c55bc0fee, + limb2: 0x1e3efb0c587fbf57, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] - .span() + .span(), }, }; let derive_point_from_x_hint = DerivePointFromXHint { y_last_attempt: u384 { - limb0: 0xde22f8ab7a27977f55310b9c, - limb1: 0xecc9c25dac5bb5f8cabbda28, - limb2: 0x336e6c1d3ed1fccd, - limb3: 0x0 + limb0: 0xc60200a5e3dd769d410ff97b, + limb1: 0xcbebb6afca6d06b305602a19, + limb2: 0x390c4955f0f30842, + limb3: 0x0, }, - g_rhs_sqrt: array![ - u384 { - limb0: 0xca066bca615eea6e51f46889, - limb1: 0x25768c2f93b72ebb1be1e88f, - limb2: 0x1bb9579d9fd2a72f, - limb3: 0x0 - } - ] - .span(), + g_rhs_sqrt: array![].span(), }; let points = array![ G1Point { x: u384 { - limb0: 0x113c8d620e3745e45e4389b8, - limb1: 0x85b8ff52d905fd02fe191c3f, - limb2: 0xf5d132d685201517, - limb3: 0x0 + limb0: 0x7238f02b9f20e09c2181a557, + limb1: 0x2cedcc5b0be371c337fd7e9e, + limb2: 0x41f3bbeb280fe8a2, + limb3: 0x0, }, y: u384 { - limb0: 0x60c0ba1b358f375b2362662e, - limb1: 0x6abfc829d93e09aa5174ec04, - limb2: 0x7bc4637aca93cb5a, - limb3: 0x0 - } + limb0: 0xf046f8cd6e5a75fca71dd19b, + limb1: 0x892b4613ef5c58df4ef692a4, + limb2: 0x7527fa36f5738847, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0xd3ff147ff0ee4213f51f677d, - limb1: 0x431366a7732a6e4a6b942255, - limb2: 0x9fe743b25d39a591, - limb3: 0x0 + limb0: 0x82e4a33f8e4e5881e791d86b, + limb1: 0xbcb062435ae8ec5fdaeac4bf, + limb2: 0x179e1bae9e0f9f34, + limb3: 0x0, }, y: u384 { - limb0: 0x7f8bb562ff60a902ef14bcb0, - limb1: 0xeb9420089fa531db62e806a6, - limb2: 0xfd028df433dfd5cc, - limb3: 0x0 - } + limb0: 0x19657783ba5660e255c21849, + limb1: 0x7ed7474bcea7551fc71e46bc, + limb2: 0x596c0a76b75f4756, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0x46ae31f6fc294ad0814552b6, - limb1: 0x2d54cc811efaf988efb3de23, - limb2: 0x2a2cc02b8f0c419f, - limb3: 0x0 + limb0: 0xa6832ef7fe97f77de7cd9a62, + limb1: 0xf18a70dbf1dc5a76c685da4a, + limb2: 0x6ac1b7bfc409119f, + limb3: 0x0, }, y: u384 { - limb0: 0xaec889b9d8ce51c4a2c3586f, - limb1: 0xa2b07874c333bfee9f78e13e, - limb2: 0xc445de21be8d8709, - limb3: 0x0 - } + limb0: 0x7751161b1a9ef600b865a5af, + limb1: 0xed28aad4835a39a9e8318ceb, + limb2: 0x572e95c429f0e07a, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0x7e47d1c2d19c21b2f6870259, - limb1: 0xe701b40af42001c38bca00db, - limb2: 0xd87ea1720d4dd3d6, - limb3: 0x0 + limb0: 0x5e71d0fc5d1c016834779173, + limb1: 0xadd002dfc0ebf1b25c23c252, + limb2: 0x40a868d928ae5233, + limb3: 0x0, }, y: u384 { - limb0: 0x5b1d6cc74985ce49a1f737fe, - limb1: 0xb9127c572c3f091c031c249c, - limb2: 0x1392711e1576aa6f, - limb3: 0x0 - } + limb0: 0x423fa293418d6e3f59c2e830, + limb1: 0x7a4bcf26f93e71ffd903e68e, + limb2: 0x7837b851ad8da6e3, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0xb71f95ea692ed186e06e4c37, - limb1: 0x807276cd9cc59718bb11dbe9, - limb2: 0x10756a25836d67ca, - limb3: 0x0 + limb0: 0x5907087f8e8e4dacdd039371, + limb1: 0xc390e2073b4e64b9ede0570d, + limb2: 0x6b039a85962f1594, + limb3: 0x0, }, y: u384 { - limb0: 0xd34211b3520c83c5f9be99af, - limb1: 0x8f19a28ceef67bbda102ffe7, - limb2: 0x7ac2b92030d351cc, - limb3: 0x0 - } + limb0: 0xc45eefa03155b8f7eb780b42, + limb1: 0x3db57eb22f9b0394a4d7b78e, + limb2: 0x6cf45b6d90883f60, + limb3: 0x0, + }, + }, + G1Point { + x: u384 { + limb0: 0x60dd8ed0a614b596fb37eb1f, + limb1: 0xabb99f371be41e26ec2d8e4b, + limb2: 0x187ecd72c40f159d, + limb3: 0x0, + }, + y: u384 { + limb0: 0x7b66c9263de5e1663622985d, + limb1: 0x118b032cc27a1d6dd192eca6, + limb2: 0x312fb405788616e8, + limb3: 0x0, + }, + }, + G1Point { + x: u384 { + limb0: 0xf4ac3e1f1f068dd64c86fdda, + limb1: 0x24594e591d82a7f964b5ec9f, + limb2: 0x6ca311b5421c57fc, + limb3: 0x0, + }, + y: u384 { + limb0: 0x42745cd7b146012455434d0f, + limb1: 0x6aa4f552b7bdc93a613bd9df, + limb2: 0x5832a065d7199c7a, + limb3: 0x0, + }, + }, + G1Point { + x: u384 { + limb0: 0x341786b7854e3e0104e2e416, + limb1: 0xbb368441c295043bee7b1d2f, + limb2: 0x35c88542e11463b4, + limb3: 0x0, + }, + y: u384 { + limb0: 0x3c36e7fcc4e2fde28308132, + limb1: 0xf58043d0e3d1a36d1f8137fc, + limb2: 0x58c1508fbe8868a8, + limb3: 0x0, + }, + }, + G1Point { + x: u384 { + limb0: 0x560a37951d69a6c8d7138239, + limb1: 0x462d454a509846714184ef71, + limb2: 0x3aaf8fb4f60e3e9c, + limb3: 0x0, + }, + y: u384 { + limb0: 0xb70cea4e13db5322899753f9, + limb1: 0x6c62656b6d7ffb5c2af44fd5, + limb2: 0x4b5ae4567dc6a7c0, + limb3: 0x0, + }, + }, + G1Point { + x: u384 { + limb0: 0xb06cccb4b425d5179f528270, + limb1: 0xce017c281a3861570706cd86, + limb2: 0x42d14846dc4860ab, + limb3: 0x0, + }, + y: u384 { + limb0: 0x646bf486f6e77663c597ece8, + limb1: 0xd87c8c36a430a6fe42305b88, + limb2: 0x7964c7742b6f13da, + limb3: 0x0, + }, }, G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, ] .span(); let scalars = array![ u256 { low: 0x0, high: 0x0 }, u256 { - low: 0x12e0c8b2bad640fb19488dec4f65d4d9, high: 0x5487ce1eaf19922ad9b8a714e61a441c + low: 0x2648ee38e07405eb215663abc1f254b8, high: 0x29164ebd7ab792809e469e6ec62b2c8, + }, + u256 { + low: 0x85940927468ff53d864a7a50b48d73f1, high: 0x6e2edd0d977e9933c49d76fcfc6e625, }, u256 { - low: 0x5a92118719c78df48f4ff31e78de5857, high: 0xa3f2c9bf9c6316b950f244556f25e2a2 + low: 0xd344749096fd35d0adf20806e5214606, high: 0x8ce86e89466e4726b5f5241f323ca74, }, u256 { - low: 0x8d723104f77383c13458a748e9bb17bc, high: 0x85776e9add84f39e71545a137a1d5006 + low: 0x30bcab0ed857010255d44936a1515607, high: 0x8ac57cfbb42e0b20426465e3e37952d, }, u256 { - low: 0xeb2083e6ce164dba0ff18e0242af9fc3, high: 0x17e0aa3c03983ca8ea7e9d498c778ea6 + low: 0x5f3f563838701a14b490b6081dfc8352, high: 0xda2ddc3552116dd2ba4b180cb69ca38, }, u256 { - low: 0xb5d32b1666194cb1d71037d1b83e90ec, high: 0xa0116be5ab0c1681c8f8e3d0d3290a4c + low: 0xc87a746319c16a0d0febd845d0dfae43, high: 0x7003168b29a8b06daf66c5f2577bffa, + }, + u256 { + low: 0x176ea1b164264cd51ea45cd69371a71f, high: 0x3b6a666fb0323a1d576d4155ec17dbe, + }, + u256 { + low: 0x9edfa3da6cf55b158b53031d05d51433, high: 0x23d79a9428a1c22d5fdb76a19fbeb1d, + }, + u256 { + low: 0x4d125e7fa59cec98126cbc8f38884479, high: 0x1f40f472e2950656fa231e959acdd98, + }, + u256 { + low: 0x98b33c6e0a14b90a7795e98680ee526e, high: 0xc8555a9fcfcfa81b306d70019d5f970, }, ] .span(); let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 3 + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 4, ); assert!( res == G1Point { x: u384 { - limb0: 0x1f82b90aa7d2a7fa02fa450f, - limb1: 0x6a402eeb6f3117c5c39f915e, - limb2: 0xe7909417205bf140, - limb3: 0x0 + limb0: 0x9689eff36e40c5d4f7aa9e26, + limb1: 0x4fca2ba1936adf005148db8e, + limb2: 0x61682ebc3050d122, + limb3: 0x0, }, y: u384 { - limb0: 0x63023f929ec0398f1c3e5af8, - limb1: 0x4573d920a130f321b0988dca, - limb2: 0xf1ea3f773f45f1a0, - limb3: 0x0 - } - } + limb0: 0x8c505d80ce528ebd36300c7b, + limb1: 0xad9bf81c921211418dd07111, + limb2: 0x228d83528b2b7ad0, + limb3: 0x0, + }, + }, ); } #[test] - fn test_msm_SECP256R1_7P() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - ] - .span(), - array![ - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - ] - .span(), - array![ - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - ] - .span(), - array![ - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - ] - .span() - ), - ] - .span() - ); + fn test_msm_ED25519_12P() { + let scalars_digits_decompositions = Option::None; let msm_hint = MSMHint { Q_low: G1Point { x: u384 { - limb0: 0x5e24c3a22b6cbc2c8be95999, - limb1: 0x637e3cf37bf07a568a6640ce, - limb2: 0xad27f8e20f63610, - limb3: 0x0 + limb0: 0x12d1b444ec39ae839807573c, + limb1: 0x50cb70680dcb8804e2a1c6cb, + limb2: 0x5d529b896d65150a, + limb3: 0x0, }, y: u384 { - limb0: 0xdf526b926859e31ed9df7cfc, - limb1: 0x5dd878c53a26603935f6f1d6, - limb2: 0xf67ab1f066891da4, - limb3: 0x0 - } + limb0: 0xf0fbd5d96b7a64beee6206b7, + limb1: 0x6982ef15e68d6f6c204de74a, + limb2: 0x12537fc27fadb2bf, + limb3: 0x0, + }, }, Q_high: G1Point { x: u384 { - limb0: 0x4ee23e51f9cb7134928f7790, - limb1: 0xdfb183d6f1de3ff2974e5c6, - limb2: 0xd600ac7711b5f8dc, - limb3: 0x0 + limb0: 0x5a69deb6f89b3673b868547b, + limb1: 0x4bff35db66fccba1976a7225, + limb2: 0x77f294fd97e3f80d, + limb3: 0x0, }, y: u384 { - limb0: 0xc1d70a045fa394db5ff30c19, - limb1: 0x11ce49cab5350688414472ae, - limb2: 0x113044fff1cc9a81, - limb3: 0x0 - } + limb0: 0x9d0b7c8c5ae15973adfe68fd, + limb1: 0xdcfad41176059fc275b3c281, + limb2: 0x56e82a35fc7cab60, + limb3: 0x0, + }, }, Q_high_shifted: G1Point { x: u384 { - limb0: 0x66fdd34fc5c33b5bbd90b4d6, - limb1: 0x8a48af2b500a476faa189d58, - limb2: 0xfb4d4cd1d508d3f5, - limb3: 0x0 + limb0: 0x9e594e333ff5e969a7e67fe2, + limb1: 0x6f1c567b169fb2641e9523af, + limb2: 0x5f281f6b0b94ae25, + limb3: 0x0, }, y: u384 { - limb0: 0x1730db7b7bdb99ccaffb180e, - limb1: 0x2661cd86ad852ddc617c8a75, - limb2: 0xd2552a25d3764ae6, - limb3: 0x0 - } + limb0: 0xfcf298a0835b6605577aba8d, + limb1: 0xcbc74b0c4dd9416799ec7c87, + limb2: 0x2bc94fc7f719122c, + limb3: 0x0, + }, }, - SumDlogDivLow: FunctionFelt { + RLCSumDlogDiv: FunctionFelt { a_num: array![ u384 { - limb0: 0xdcad5e11adc349bc760f5f31, - limb1: 0x6bfb8b6cd02dfb3b91ed7ad6, - limb2: 0x39196a3ae03e60e1, - limb3: 0x0 - }, - u384 { - limb0: 0x68f097d458dae0bea33fe856, - limb1: 0x6cd68f52cd9b9011c562afe9, - limb2: 0x59d9f8c380f71880, - limb3: 0x0 - }, - u384 { - limb0: 0x1687531eb1aa22733840cca6, - limb1: 0x283aa71937e89249e9f39a1c, - limb2: 0x7f365a0626024f62, - limb3: 0x0 - }, - u384 { - limb0: 0xc2b8d1316b112d929412b4a, - limb1: 0x945e1e1c7447e042db33bd3, - limb2: 0x9e07491598fd6029, - limb3: 0x0 - }, - u384 { - limb0: 0xa7bf72bf1055b9f9dff12df4, - limb1: 0xc7ef262620834049331c50d4, - limb2: 0x2d8584508f42fcba, - limb3: 0x0 + limb0: 0xffecbce3b121b61e3a57f55b, + limb1: 0x5e6bfbfb7b574c128eb240a1, + limb2: 0x2bc9be23492bcad7, + limb3: 0x0, }, u384 { - limb0: 0xfe01df22a4ef77fb1eb99274, - limb1: 0xfffffffffffffffefd5efbdc, - limb2: 0xffffffff00000000, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x75b4dd8ef9182fe82c40c85f, - limb1: 0x56e54d86479c64577529dae, - limb2: 0xbce355663da5774e, - limb3: 0x0 - }, - u384 { - limb0: 0x1a9edd55a460290b6bb43ec9, - limb1: 0x8bb294f133f217dab8575b3c, - limb2: 0xbf23456bcafbbab4, - limb3: 0x0 + limb0: 0xe0196ab9ccdd78fdf5ef245, + limb1: 0x1ba34dfb4627182d469d5d56, + limb2: 0x775a03c7cc2703c8, + limb3: 0x0, }, u384 { - limb0: 0xd6df4fa3cf0b4008958733c2, - limb1: 0xc0321246e1f19029b1264533, - limb2: 0xe625e5880771d871, - limb3: 0x0 + limb0: 0x235a3a02324481f4df62710d, + limb1: 0x5b2e992df083497642154e73, + limb2: 0x34fd6cd3a82c5c48, + limb3: 0x0, }, u384 { - limb0: 0x6effe10875f9b657bb258e4c, - limb1: 0xdad3c50d8ce45fe450832aed, - limb2: 0xf4109e8510fd6db9, - limb3: 0x0 + limb0: 0xd06187c8a1d0376a5f000d9, + limb1: 0x68d90153c1e8d7a7ee899c34, + limb2: 0x6aedcb7e52cbcb5e, + limb3: 0x0, }, u384 { - limb0: 0xc3dec1749f72c31f7ecdb5, - limb1: 0xe38b4e2a5a08429d1d83d405, - limb2: 0x61edf660ef25ca39, - limb3: 0x0 + limb0: 0xb94f7efe60a13f7f5962d92c, + limb1: 0xa34c5108ee4161db1e497d8e, + limb2: 0x72a24aea2ebaa210, + limb3: 0x0, }, u384 { - limb0: 0x10aad868b0c87ec500f58615, - limb1: 0xf5452d843e890a35399f1032, - limb2: 0xe2ba4c7fdbd9f427, - limb3: 0x0 + limb0: 0x5a9df54c263239333ab644fa, + limb1: 0x6124f61660a22d2341fdf5a, + limb2: 0x72a6f4d9cd5fbf35, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0xa88c46397c2def74340bbbb, - limb1: 0x9ff0307a8f9de215804eb5a7, - limb2: 0x3805a0a86ba12ae3, - limb3: 0x0 + limb0: 0x72f29c59e6ea900a1d85ae34, + limb1: 0x482643cf2b12a5734b2e17fa, + limb2: 0x3bac234f4e4a138f, + limb3: 0x0, }, u384 { - limb0: 0xfea9825242d28f5b60bd3f25, - limb1: 0x7717ad1a7628444af9fdc400, - limb2: 0xf363ade1fd9b6e10, - limb3: 0x0 + limb0: 0xb77fa7636d51eb2343438d65, + limb1: 0xe4e3805368a9ce4981c64bfb, + limb2: 0x7d272e264bc9d02, + limb3: 0x0, }, u384 { - limb0: 0x3183d066879530ced08bb86, - limb1: 0x1e03a1ec08d9ca9a6b58c397, - limb2: 0xcb55443412bc0a74, - limb3: 0x0 + limb0: 0x4483a338e345c4b861d0dc80, + limb1: 0xc08a11e883dfb6475bafc3ae, + limb2: 0x33264c490729f9b4, + limb3: 0x0, }, u384 { - limb0: 0x81c1732d712d25dbf8d36591, - limb1: 0xb29ec29a3f916bae9d2b86c3, - limb2: 0xd906abbb457b4bed, - limb3: 0x0 + limb0: 0xaa339804960b019881d23878, + limb1: 0xfe2fdec8bbba1d4e60076c62, + limb2: 0x535e585bb632c906, + limb3: 0x0, }, u384 { - limb0: 0x9ca326da513470b178189216, - limb1: 0x26e88bb211f3799c686c7db, - limb2: 0xee04de3e8ab39e20, - limb3: 0x0 + limb0: 0x8882b0fdc437cfb58dbaa4c3, + limb1: 0xa5877b1ca8ad42ea12efa2a7, + limb2: 0x5d4263824619549a, + limb3: 0x0, }, u384 { - limb0: 0xc217486d635172f0bd226063, - limb1: 0x3219f8abf923d51dd91d1f88, - limb2: 0xf80808ab9ff74b5d, - limb3: 0x0 + limb0: 0xde92947601ea0c23d920cd45, + limb1: 0x221050bd14536c12823673b8, + limb2: 0x3c76165d4494108f, + limb3: 0x0, }, u384 { - limb0: 0xd8203798b4c4354dd0d0b056, - limb1: 0x213b7ec7881b279c4de5b67b, - limb2: 0xae35d553e34340a1, - limb3: 0x0 + limb0: 0x6a2ac381735f9520b8d3e487, + limb1: 0xfbd4b1dceecb9329a8b0df79, + limb2: 0x342677d07b838035, + limb3: 0x0, }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), - b_den: array![ - u384 { - limb0: 0xd26ad495908b15b355a283f9, - limb1: 0x9c75bc47eede940e159f3a63, - limb2: 0x433158e019e22d46, - limb3: 0x0 - }, - u384 { - limb0: 0x1cfb816e98697a1f89c31a8d, - limb1: 0xdb21c7ac39c68a22bc822312, - limb2: 0x61b74872077e8c19, - limb3: 0x0 - }, + a_den: array![ u384 { - limb0: 0xdc2a04ceb7ef58e7574b5a5d, - limb1: 0x5ba54b282aed736c4543d90d, - limb2: 0xf2c5d5fbc37a4010, - limb3: 0x0 + limb0: 0xb442043f2dd169cb9f9e8d72, + limb1: 0xef8d7c1088054da15cb3220, + limb2: 0x19d4ec5188918bed, + limb3: 0x0, }, u384 { - limb0: 0xd05b711f3c5ac42279569a0c, - limb1: 0xee4f57c7d3ef99be2aaa3ccc, - limb2: 0x93533fd79d0ebaac, - limb3: 0x0 + limb0: 0x56c7048885523c4ceb181873, + limb1: 0xd86fa1e82c2b6b594ac1513a, + limb2: 0x45bd08a012b8f10d, + limb3: 0x0, }, u384 { - limb0: 0x755390c669401ef264585842, - limb1: 0x3379b80c60032f530c471482, - limb2: 0x9c51b76c06249453, - limb3: 0x0 + limb0: 0x2bf497607588487997e50892, + limb1: 0x5e41bda23b95bca24f89a4da, + limb2: 0x787ce84ba33784a4, + limb3: 0x0, }, u384 { - limb0: 0x624bb01d5352a7686e3238c2, - limb1: 0xfd2977c728761c4316a77b05, - limb2: 0x815dd49a220dee37, - limb3: 0x0 + limb0: 0xbd9e9cd5b04f5b78530e320f, + limb1: 0x9a00b0073e3d256cc8a18611, + limb2: 0x60fbcec6847c3bf2, + limb3: 0x0, }, u384 { - limb0: 0x95308c49f6e7646e0175c56, - limb1: 0xaeeff9d647e1c80108c3010a, - limb2: 0xa6a7eedc27aa252b, - limb3: 0x0 + limb0: 0x7347ade9ac9b92d7f86554ec, + limb1: 0x18f252c46d5f218070a956e3, + limb2: 0x54c6a9a8e8629e8b, + limb3: 0x0, }, u384 { - limb0: 0xc3dec1749f72c31f7ecdb2, - limb1: 0xe38b4e2a5a08429d1d83d405, - limb2: 0x61edf660ef25ca39, - limb3: 0x0 + limb0: 0x958c45a19341e4062d1bd308, + limb1: 0xdd6bd4b65c0c8ce183ac23e9, + limb2: 0x454f22d5cb9bd4f, + limb3: 0x0, }, u384 { - limb0: 0x10aad868b0c87ec500f58615, - limb1: 0xf5452d843e890a35399f1032, - limb2: 0xe2ba4c7fdbd9f427, - limb3: 0x0 + limb0: 0x11137d2de8923838b19dd603, + limb1: 0xa79d4603ddd85ab4367cbc08, + limb2: 0x496cf7bba9bfdc01, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ u384 { - limb0: 0x4aadf5afeedb153dc33a1c85, - limb1: 0xc84c3d1da3a0653aec70753d, - limb2: 0x9b6aa928b1a81d11, - limb3: 0x0 + limb0: 0xbd6480d88107d06896005ba5, + limb1: 0x2659f0135f6184e7eca0b6b4, + limb2: 0x1ed73aad3ef8c330, + limb3: 0x0, }, u384 { - limb0: 0xbe40c0fccaad17e32ef65085, - limb1: 0x2637d93807b88fb9354b992a, - limb2: 0xe25422285b5e8fdf, - limb3: 0x0 + limb0: 0xc2eee205a96e240001143a42, + limb1: 0x8264f7e173eac7264eff3c41, + limb2: 0x53db64ec15475bd0, + limb3: 0x0, }, u384 { - limb0: 0x55c4ae5a2d785e4a4e607032, - limb1: 0x4090a64f8aa79ca421e0602b, - limb2: 0x1ffe5dbf6aced7d8, - limb3: 0x0 + limb0: 0x3d3b91ef5607b2d47be4b87c, + limb1: 0xa1df8d81703f144d77347631, + limb2: 0x6818feb8ecb0d46e, + limb3: 0x0, }, u384 { - limb0: 0xc04085dfe794ea92f62d23c4, - limb1: 0xeba07d2c8f12dc90129d99fd, - limb2: 0x71b42ddfe889ac15, - limb3: 0x0 + limb0: 0x6a48daf6f303d53ce5e97319, + limb1: 0x45277035b39e7e5c264d1b7d, + limb2: 0x6bc39abb3ab0eaf3, + limb3: 0x0, }, u384 { - limb0: 0xfab5d2f1fb786de9cfb616a8, - limb1: 0x6daf778c040f60e8fb8cf447, - limb2: 0xad8ceff8de8b600f, - limb3: 0x0 + limb0: 0x784ca0b979984062a03cdee4, + limb1: 0x6bcea28c476eb635ebcec93f, + limb2: 0x2ef058f42d482d29, + limb3: 0x0, }, u384 { - limb0: 0x45ce7248b691e81ba27e647c, - limb1: 0x7ffffffffffffffff16b0188, - limb2: 0x7fffffff80000000, - limb3: 0x0 + limb0: 0x30ad938acd85cc182e3509f4, + limb1: 0x21efbaf20d88c8824a3ab8b2, + limb2: 0x5414d4a72bb09b38, + limb3: 0x0, }, + u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - a_den: array![ + b_num: array![ u384 { - limb0: 0xe2a0fb2b4cb5f861a440693f, - limb1: 0xe84471f3fc5c54648b5cca81, - limb2: 0x5ad114290dd5e753, - limb3: 0x0 + limb0: 0x43e7029d069a5f1fb92af1fc, + limb1: 0xceb43171d1fe7247c35ca21a, + limb2: 0x6f50926b9de1db2f, + limb3: 0x0, }, u384 { - limb0: 0x3ad1455808831369ef4d0eb8, - limb1: 0x37f1237fb4e80c2f9c7970a2, - limb2: 0x887509be85e3e782, - limb3: 0x0 + limb0: 0x613a9e92167baa9c907fe071, + limb1: 0x1521f98e126eeab77278ac5f, + limb2: 0x4814a779588a7ff1, + limb3: 0x0, }, u384 { - limb0: 0xf853e59f87c9094a8712a282, - limb1: 0xa92380e553eb8216d2bf18fb, - limb2: 0xc4dcc4668912147a, - limb3: 0x0 + limb0: 0xef5acd63333377c18ab4abe8, + limb1: 0xfc5e6d86e3db7b2adb5e0f0b, + limb2: 0x36eef4965f7429b9, + limb3: 0x0, }, u384 { - limb0: 0x5ffc955f596cec29974b296a, - limb1: 0xf5a05a32e60991a176a9e270, - limb2: 0xb974de4f74a4cbcb, - limb3: 0x0 + limb0: 0x54a5f0de4d02d39b5d02a85f, + limb1: 0xa1daaf026f649aaf5450c14, + limb2: 0x74aa9cdbdd9bc48, + limb3: 0x0, }, u384 { - limb0: 0x94a0e4a4130f9e9981387e1a, - limb1: 0xab8d2883cd486ff7f2106133, - limb2: 0x4f517ad4e823e457, - limb3: 0x0 + limb0: 0xb59e56842f3b2045d388c59f, + limb1: 0x8e7c2f30f823d27d1afe32ec, + limb2: 0x35c5495669061993, + limb3: 0x0, }, u384 { - limb0: 0x1fed5db8e269c9bcfa4f681e, - limb1: 0x4ac8523a4b5ba08c9a906b3a, - limb2: 0x178c1f96eb1a315c, - limb3: 0x0 + limb0: 0x22b6c28d47f9fe23ea98cc0f, + limb1: 0x9352a8fddb42e3af57a1db5b, + limb2: 0x57e46fe6f26721eb, + limb3: 0x0, + }, + u384 { + limb0: 0x6ac322985e5cbd757a26c312, + limb1: 0xb72e4d7a3d3133605b29eef4, + limb2: 0x667a9f508e4c31a7, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0xfcdf1b8a8cdf5363d38bf327, - limb1: 0x93b8875747135f37b52db007, - limb2: 0xc47bc0ca7504803e, - limb3: 0x0 + limb0: 0x138da36f8db83531b8bfe35a, + limb1: 0xff7f7ad2e6074e3f382af432, + limb2: 0x7ea13422f0a3ade4, + limb3: 0x0, }, u384 { - limb0: 0x52ea6d22f19cf36f02b9569d, - limb1: 0xa47e06f98a317e589fcb7540, - limb2: 0x3097a68c35fec3d5, - limb3: 0x0 + limb0: 0xc25397638998cfbd1f112b2, + limb1: 0x9452ee4e8cdbbba4a9544644, + limb2: 0x3a8575017a1b496d, + limb3: 0x0, }, u384 { - limb0: 0x991a0bad065b217a02c1bff8, - limb1: 0x9f01ab6af9f59cd48e5e3d6e, - limb2: 0x7242ca5e2d1073c9, - limb3: 0x0 + limb0: 0xeaa2b73f3c4d41a518c09910, + limb1: 0x2a58a7215ca86758f559e51f, + limb2: 0x7e39c2d53f220d48, + limb3: 0x0, }, u384 { - limb0: 0x68637c94b9762c634ad3b56f, - limb1: 0x5050092e92586ae46a440ccb, - limb2: 0x57f43adb4f2e3ba0, - limb3: 0x0 + limb0: 0x5cd98181a39cf81f142d8e12, + limb1: 0xa09d1ed85bd0b4ff2d591f00, + limb2: 0x1fa3ee2c543656fc, + limb3: 0x0, }, u384 { - limb0: 0x27d77b12c5f4e60e5333423b, - limb1: 0x2ded6e55268bf906f66f4ff2, - limb2: 0xff26957c61ba129b, - limb3: 0x0 + limb0: 0x604d49c963cbb242ae4699cc, + limb1: 0x4120430346cf35eb0cdcdcea, + limb2: 0x379089f50b55d75f, + limb3: 0x0, }, u384 { - limb0: 0x81b8309d786877b4ba673b36, - limb1: 0x939c8fec42527fb0d1f09cb, - limb2: 0xed23bad4ffdaedaa, - limb3: 0x0 + limb0: 0x953a6c905b8c17a590b257e, + limb1: 0xbb4d9708aa18caf5412b0b12, + limb2: 0xab9f2fa1e6ca8f7, + limb3: 0x0, }, u384 { - limb0: 0xb276d16e1db71b4653796be, - limb1: 0xb4b403138f4b6ed518231a33, - limb2: 0x4148deaa8b95f948, - limb3: 0x0 + limb0: 0x85e23a73156e071ec56c4243, + limb1: 0x26618a13a93d3db4a8727078, + limb2: 0x5595e4ff55323198, + limb3: 0x0, }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), b_den: array![ u384 { - limb0: 0x9868e50db9384fba2912f724, - limb1: 0x7d39a579d56a5080d688966d, - limb2: 0x9962786b961bc5a4, - limb3: 0x0 - }, - u384 { - limb0: 0xdd3b8d7b8a0050a588c53e85, - limb1: 0x40430b023f94951d789dda33, - limb2: 0x63065a628dcc133b, - limb3: 0x0 - }, - u384 { - limb0: 0x4fe27ac6416da8e5188c4536, - limb1: 0xdb49ced32fa6b0c1c972cef7, - limb2: 0xbbb9edc774f4d90e, - limb3: 0x0 - }, - u384 { - limb0: 0x3e0ceecf8d4b687300ae416, - limb1: 0xe78e4b0a15fdcbbc46eafa9b, - limb2: 0x2f53c29c0a854fb, - limb3: 0x0 + limb0: 0xd80911ca9d9c52cf5007b2d4, + limb1: 0xa988a21876e7f3f6f1cffbf0, + limb2: 0x5e56ba88bda584c2, + limb3: 0x0, }, u384 { - limb0: 0x3b649c0a2c8c7b20d9445823, - limb1: 0x13668d153a1aca1eb91be46e, - limb2: 0x15701fad11024b0e, - limb3: 0x0 + limb0: 0xf12c577c8cff913b30424c7f, + limb1: 0x69b8e77f5b8a593e133d4705, + limb2: 0x61c5a60d9ce47d20, + limb3: 0x0, }, u384 { - limb0: 0xcc631f2a5368ef2c56b04d3, - limb1: 0x4ff02852a49f91bc6e14801, - limb2: 0x217b6b80f51bee18, - limb3: 0x0 + limb0: 0xe2413379f703b8ed14571e04, + limb1: 0xa2ae3de9491abb55d2939105, + limb2: 0x3a16c004915abf60, + limb3: 0x0, }, u384 { - limb0: 0xcc882d2aedfdcb30d02f515b, - limb1: 0xc93320d97a8f36b80c15a772, - limb2: 0xcd96b5635d90cb9e, - limb3: 0x0 + limb0: 0x738ea03ade03ad171d97bd9b, + limb1: 0xcc2687e0678e260a4ae9b61b, + limb2: 0x73694049c683b2ef, + limb3: 0x0, }, u384 { - limb0: 0x94a0e4a4130f9e9981387e17, - limb1: 0xab8d2883cd486ff7f2106133, - limb2: 0x4f517ad4e823e457, - limb3: 0x0 + limb0: 0x280a445d65d47cfb27eb0b23, + limb1: 0xefd8c69d8d1e1629ff1d8e4b, + limb2: 0x4462fdb993b637bd, + limb3: 0x0, }, u384 { - limb0: 0x1fed5db8e269c9bcfa4f681e, - limb1: 0x4ac8523a4b5ba08c9a906b3a, - limb2: 0x178c1f96eb1a315c, - limb3: 0x0 + limb0: 0x7d4a2bd9258173630361d048, + limb1: 0xb860d494e52ca141055e3a55, + limb2: 0x1d50d030cd0b3f22, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ u384 { - limb0: 0x84c5ca1c7fd3d163bc2c04fe, - limb1: 0xf18e950578645fd33ec2a431, - limb2: 0x42983139cd34397d, - limb3: 0x0 + limb0: 0x2d64035a28db7775b974b615, + limb1: 0xce1ea0fc572351ab986decc4, + limb2: 0x34ae3e33014c6c03, + limb3: 0x0, }, u384 { - limb0: 0x5784a91a5e09d24e7c4a2665, - limb1: 0x7fffffffffffffff7c074594, - limb2: 0x7fffffff80000000, - limb3: 0x0 - } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x33c7e8ddbd9755c8d3359366, - limb1: 0xea745afbeb93f61dc7e5ec85, - limb2: 0x2de782fb3767d97, - limb3: 0x0 + limb0: 0x206f1a49ca2bdb9de5036245, + limb1: 0x9c5578633b811d1a992e45ae, + limb2: 0x48f33526b6808e2, + limb3: 0x0, }, u384 { - limb0: 0x4a1fee5e4071536fafdfd398, - limb1: 0x67bc389740d7d4912c727ce3, - limb2: 0x2eb206b519413330, - limb3: 0x0 + limb0: 0xc821849124d4456aeb06b504, + limb1: 0xd62fc35444a18345870d819f, + limb2: 0x154da4487ac33d97, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0x7ddb7e9026af0eab160bb2e4, - limb1: 0x4218952b43fed40802a97f50, - limb2: 0x2ebf2fbe5932fdb6, - limb3: 0x0 + limb0: 0xd224f8876e6673cd74f74f91, + limb1: 0x44b8d3909dfe86be97cc8080, + limb2: 0x6ab6f249a134c42e, + limb3: 0x0, }, u384 { - limb0: 0x467d51fa5be54798207a52bd, - limb1: 0xf710450b2d69992b4382c1a0, - limb2: 0x202b0627b152853a, - limb3: 0x0 + limb0: 0x244793cf806308769ed032f9, + limb1: 0x151791bb5831430f944639b8, + limb2: 0x5f81773a904186df, + limb3: 0x0, }, u384 { - limb0: 0xe8e13d278fc4f8afe03b9af1, - limb1: 0x2ce61db5e91b0693aa209271, - limb2: 0x9891325faa7de49, - limb3: 0x0 - } - ] - .span(), - b_den: array![ - u384 { - limb0: 0x15ce0411a82a2924c198af10, - limb1: 0xc0ed440c64a52973f056372d, - limb2: 0x84ff2e8ad2d656b0, - limb3: 0x0 + limb0: 0x22f81119ece42751eefbc7fe, + limb1: 0x5cacdebb5662860e787cac4d, + limb2: 0x1d309e6a341431e6, + limb3: 0x0, }, u384 { - limb0: 0xa47851e771eced7390fab0f3, - limb1: 0x2942dcce8e2dad0cdc303258, - limb2: 0x4efb85ff7477b87f, - limb3: 0x0 + limb0: 0x2870678e739aba01be2bba3e, + limb1: 0x3a9bb539c332fdac2d6d5017, + limb2: 0x49d609dc01ea2eb9, + limb3: 0x0, }, u384 { - limb0: 0xedf3e5db7a7a41ef1832e582, - limb1: 0x7cb7138fb4110908dfc59007, - limb2: 0xceb021b85e76fa57, - limb3: 0x0 + limb0: 0xa2d7603688a72b0868a7535e, + limb1: 0xd235f1124858ef82b7acd5d8, + limb2: 0x647cc238e6dcef1, + limb3: 0x0, }, u384 { - limb0: 0x33c7e8ddbd9755c8d3359363, - limb1: 0xea745afbeb93f61dc7e5ec85, - limb2: 0x2de782fb3767d97, - limb3: 0x0 + limb0: 0x84f1cbb1260a21f198f8f624, + limb1: 0x9d668399a8e9f40c57877f9c, + limb2: 0xc3f05c7d301ec0f, + limb3: 0x0, }, u384 { - limb0: 0x4a1fee5e4071536fafdfd398, - limb1: 0x67bc389740d7d4912c727ce3, - limb2: 0x2eb206b519413330, - limb3: 0x0 + limb0: 0x30ad938acd85cc182e3509f4, + limb1: 0x21efbaf20d88c8824a3ab8b2, + limb2: 0x5414d4a72bb09b38, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] - .span() + .span(), }, }; let derive_point_from_x_hint = DerivePointFromXHint { y_last_attempt: u384 { - limb0: 0x46bbf8aa59c4845a0a410a3f, - limb1: 0x9d53de0b4e84444859510604, - limb2: 0x1fe0031c39c62521, - limb3: 0x0 + limb0: 0x64c3a97434138b47cdb949a6, + limb1: 0xa03ceda5529dfec13d8af56e, + limb2: 0x10e5f7624aac3ed3, + limb3: 0x0, }, - g_rhs_sqrt: array![ - u384 { - limb0: 0x7f8a348989baff468d0b85a3, - limb1: 0x7d3c6cab2e0b5a890b15714d, - limb2: 0x24e2d5d822a9572d, - limb3: 0x0 - }, - u384 { - limb0: 0x848daec489b77630a8434da9, - limb1: 0x8aeb1139037a7867e8a5e9d4, - limb2: 0x76a2399aa253e63a, - limb3: 0x0 - }, - u384 { - limb0: 0xed9f4e3a988b12d597d8de18, - limb1: 0x563947a7feebc03b52767a40, - limb2: 0x440e5687c738a344, - limb3: 0x0 - } - ] - .span(), + g_rhs_sqrt: array![].span(), }; let points = array![ G1Point { x: u384 { - limb0: 0x113c8d620e3745e45e4389b8, - limb1: 0x85b8ff52d905fd02fe191c3f, - limb2: 0xf5d132d685201517, - limb3: 0x0 + limb0: 0x7238f02b9f20e09c2181a557, + limb1: 0x2cedcc5b0be371c337fd7e9e, + limb2: 0x41f3bbeb280fe8a2, + limb3: 0x0, }, y: u384 { - limb0: 0x60c0ba1b358f375b2362662e, - limb1: 0x6abfc829d93e09aa5174ec04, - limb2: 0x7bc4637aca93cb5a, - limb3: 0x0 - } + limb0: 0xf046f8cd6e5a75fca71dd19b, + limb1: 0x892b4613ef5c58df4ef692a4, + limb2: 0x7527fa36f5738847, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0xd3ff147ff0ee4213f51f677d, - limb1: 0x431366a7732a6e4a6b942255, - limb2: 0x9fe743b25d39a591, - limb3: 0x0 + limb0: 0x82e4a33f8e4e5881e791d86b, + limb1: 0xbcb062435ae8ec5fdaeac4bf, + limb2: 0x179e1bae9e0f9f34, + limb3: 0x0, }, y: u384 { - limb0: 0x7f8bb562ff60a902ef14bcb0, - limb1: 0xeb9420089fa531db62e806a6, - limb2: 0xfd028df433dfd5cc, - limb3: 0x0 - } + limb0: 0x19657783ba5660e255c21849, + limb1: 0x7ed7474bcea7551fc71e46bc, + limb2: 0x596c0a76b75f4756, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0x46ae31f6fc294ad0814552b6, - limb1: 0x2d54cc811efaf988efb3de23, - limb2: 0x2a2cc02b8f0c419f, - limb3: 0x0 + limb0: 0xa6832ef7fe97f77de7cd9a62, + limb1: 0xf18a70dbf1dc5a76c685da4a, + limb2: 0x6ac1b7bfc409119f, + limb3: 0x0, }, y: u384 { - limb0: 0xaec889b9d8ce51c4a2c3586f, - limb1: 0xa2b07874c333bfee9f78e13e, - limb2: 0xc445de21be8d8709, - limb3: 0x0 - } + limb0: 0x7751161b1a9ef600b865a5af, + limb1: 0xed28aad4835a39a9e8318ceb, + limb2: 0x572e95c429f0e07a, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0x7e47d1c2d19c21b2f6870259, - limb1: 0xe701b40af42001c38bca00db, - limb2: 0xd87ea1720d4dd3d6, - limb3: 0x0 + limb0: 0x5e71d0fc5d1c016834779173, + limb1: 0xadd002dfc0ebf1b25c23c252, + limb2: 0x40a868d928ae5233, + limb3: 0x0, }, y: u384 { - limb0: 0x5b1d6cc74985ce49a1f737fe, - limb1: 0xb9127c572c3f091c031c249c, - limb2: 0x1392711e1576aa6f, - limb3: 0x0 - } + limb0: 0x423fa293418d6e3f59c2e830, + limb1: 0x7a4bcf26f93e71ffd903e68e, + limb2: 0x7837b851ad8da6e3, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0xb71f95ea692ed186e06e4c37, - limb1: 0x807276cd9cc59718bb11dbe9, - limb2: 0x10756a25836d67ca, - limb3: 0x0 - }, + limb0: 0x5907087f8e8e4dacdd039371, + limb1: 0xc390e2073b4e64b9ede0570d, + limb2: 0x6b039a85962f1594, + limb3: 0x0, + }, y: u384 { - limb0: 0xd34211b3520c83c5f9be99af, - limb1: 0x8f19a28ceef67bbda102ffe7, - limb2: 0x7ac2b92030d351cc, - limb3: 0x0 - } + limb0: 0xc45eefa03155b8f7eb780b42, + limb1: 0x3db57eb22f9b0394a4d7b78e, + limb2: 0x6cf45b6d90883f60, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0x411bb5d0fbe844f025c7178c, - limb1: 0xcf603787227b7ac499d6d1c4, - limb2: 0x5f6b2479862eb2f8, - limb3: 0x0 + limb0: 0x60dd8ed0a614b596fb37eb1f, + limb1: 0xabb99f371be41e26ec2d8e4b, + limb2: 0x187ecd72c40f159d, + limb3: 0x0, }, y: u384 { - limb0: 0xce60303cfcb98726ff64a1e5, - limb1: 0xa64534c614754b3527588d25, - limb2: 0x44f75e245622181, - limb3: 0x0 - } + limb0: 0x7b66c9263de5e1663622985d, + limb1: 0x118b032cc27a1d6dd192eca6, + limb2: 0x312fb405788616e8, + limb3: 0x0, + }, + }, + G1Point { + x: u384 { + limb0: 0xf4ac3e1f1f068dd64c86fdda, + limb1: 0x24594e591d82a7f964b5ec9f, + limb2: 0x6ca311b5421c57fc, + limb3: 0x0, + }, + y: u384 { + limb0: 0x42745cd7b146012455434d0f, + limb1: 0x6aa4f552b7bdc93a613bd9df, + limb2: 0x5832a065d7199c7a, + limb3: 0x0, + }, + }, + G1Point { + x: u384 { + limb0: 0x341786b7854e3e0104e2e416, + limb1: 0xbb368441c295043bee7b1d2f, + limb2: 0x35c88542e11463b4, + limb3: 0x0, + }, + y: u384 { + limb0: 0x3c36e7fcc4e2fde28308132, + limb1: 0xf58043d0e3d1a36d1f8137fc, + limb2: 0x58c1508fbe8868a8, + limb3: 0x0, + }, + }, + G1Point { + x: u384 { + limb0: 0x560a37951d69a6c8d7138239, + limb1: 0x462d454a509846714184ef71, + limb2: 0x3aaf8fb4f60e3e9c, + limb3: 0x0, + }, + y: u384 { + limb0: 0xb70cea4e13db5322899753f9, + limb1: 0x6c62656b6d7ffb5c2af44fd5, + limb2: 0x4b5ae4567dc6a7c0, + limb3: 0x0, + }, + }, + G1Point { + x: u384 { + limb0: 0xb06cccb4b425d5179f528270, + limb1: 0xce017c281a3861570706cd86, + limb2: 0x42d14846dc4860ab, + limb3: 0x0, + }, + y: u384 { + limb0: 0x646bf486f6e77663c597ece8, + limb1: 0xd87c8c36a430a6fe42305b88, + limb2: 0x7964c7742b6f13da, + limb3: 0x0, + }, + }, + G1Point { + x: u384 { + limb0: 0x52c487a17925c92335926072, + limb1: 0x13155d04b743220ba9c4dd31, + limb2: 0x1106c832e8e52057, + limb3: 0x0, + }, + y: u384 { + limb0: 0xbc69df5aa9a21ba08f160d5f, + limb1: 0xc207c95ac5d454f546b05fc3, + limb2: 0x574515b32b35f440, + limb3: 0x0, + }, }, G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, ] .span(); let scalars = array![ u256 { low: 0x0, high: 0x0 }, u256 { - low: 0x5a92118719c78df48f4ff31e78de5857, high: 0xa3f2c9bf9c6316b950f244556f25e2a2 + low: 0x85940927468ff53d864a7a50b48d73f1, high: 0x6e2edd0d977e9933c49d76fcfc6e625, + }, + u256 { + low: 0xd344749096fd35d0adf20806e5214606, high: 0x8ce86e89466e4726b5f5241f323ca74, + }, + u256 { + low: 0x30bcab0ed857010255d44936a1515607, high: 0x8ac57cfbb42e0b20426465e3e37952d, }, u256 { - low: 0x8d723104f77383c13458a748e9bb17bc, high: 0x85776e9add84f39e71545a137a1d5006 + low: 0x5f3f563838701a14b490b6081dfc8352, high: 0xda2ddc3552116dd2ba4b180cb69ca38, }, u256 { - low: 0xeb2083e6ce164dba0ff18e0242af9fc3, high: 0x17e0aa3c03983ca8ea7e9d498c778ea6 + low: 0xc87a746319c16a0d0febd845d0dfae43, high: 0x7003168b29a8b06daf66c5f2577bffa, }, u256 { - low: 0xb5d32b1666194cb1d71037d1b83e90ec, high: 0xa0116be5ab0c1681c8f8e3d0d3290a4c + low: 0x176ea1b164264cd51ea45cd69371a71f, high: 0x3b6a666fb0323a1d576d4155ec17dbe, }, u256 { - low: 0xd3fbf47a7e5b1e7f9ca5499d004ae545, high: 0xbaf3897a3e70f16a55485822de1b372a + low: 0x9edfa3da6cf55b158b53031d05d51433, high: 0x23d79a9428a1c22d5fdb76a19fbeb1d, }, u256 { - low: 0x101fbcccded733e8b421eaeb534097ca, high: 0x38c1962e9148624feac1c14f30e9c5cc + low: 0x4d125e7fa59cec98126cbc8f38884479, high: 0x1f40f472e2950656fa231e959acdd98, + }, + u256 { + low: 0x98b33c6e0a14b90a7795e98680ee526e, high: 0xc8555a9fcfcfa81b306d70019d5f970, + }, + u256 { + low: 0xebe2136898c752051e01a934402d0baf, high: 0x6c2a492cc0f859aa6524ab713b7e05, + }, + u256 { + low: 0x637e0edc5b6e4ae7a62081434fbaecc0, high: 0x4e8c1e4403d1f83a859890cd670f668, }, ] .span(); let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 3 + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 4, ); assert!( res == G1Point { x: u384 { - limb0: 0xca79b70704b640b74b6f693c, - limb1: 0x89cc86641f947737ff77e39a, - limb2: 0x309214e7d68fe301, - limb3: 0x0 + limb0: 0x7c410eb46bef1f4bbd9bc435, + limb1: 0xf8e9e58aa621db96880b0f17, + limb2: 0xd09eb5f2667189b, + limb3: 0x0, }, y: u384 { - limb0: 0x2259aa2958a22d74db0112dc, - limb1: 0x50363dba8c817bd0a540411a, - limb2: 0x9709f72fafe659eb, - limb3: 0x0 - } - } + limb0: 0xdc7785ceb6c9231f86e4b328, + limb1: 0xa8f46608017bf64838b1e72f, + limb2: 0x5a4e1c9619ed8aa3, + limb3: 0x0, + }, + }, ); } #[test] - fn test_msm_SECP256R1_8P() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - ] - .span(), - array![ - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - ] - .span(), - array![ - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - ] - .span(), - array![ - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - ] - .span() - ), - ] - .span() - ); + fn test_msm_GRUMPKIN_1P() { + let scalars_digits_decompositions = Option::None; let msm_hint = MSMHint { Q_low: G1Point { - x: u384 { - limb0: 0x62ac0f4bd5dd439b8b872d1d, - limb1: 0x25de98092a63d435acf11466, - limb2: 0xa006b537128c7ea2, - limb3: 0x0 - }, - y: u384 { - limb0: 0xf7e3ceddca132ff49933b037, - limb1: 0x4a656a25e435dd1c224a6c38, - limb2: 0x688c896ca837d0f6, - limb3: 0x0 - } + x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, Q_high: G1Point { - x: u384 { - limb0: 0x8d234ebb75b6449daf79d54d, - limb1: 0xb363f39e124c6352337e5325, - limb2: 0x462a16076e552e87, - limb3: 0x0 - }, - y: u384 { - limb0: 0x6acc9c2b757234126fdbd419, - limb1: 0xad5c05fc41ea9a53369bdf94, - limb2: 0x4f6c64f0b5719055, - limb3: 0x0 - } + x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, Q_high_shifted: G1Point { - x: u384 { - limb0: 0x4957c13a9693c2fefa6f5fee, - limb1: 0xf2b3caf243919ae502b6c978, - limb2: 0xd00733bf143a1a6c, - limb3: 0x0 - }, - y: u384 { - limb0: 0xe429df7a26d9264b9e3120f3, - limb1: 0x6cddaf2d561f2bda39194a08, - limb2: 0x6bf0ba2dd9d73c5e, - limb3: 0x0 - } + x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, - SumDlogDivLow: FunctionFelt { + RLCSumDlogDiv: FunctionFelt { a_num: array![ - u384 { - limb0: 0x6ce34ce362bac7e1c4f533ec, - limb1: 0x2253489111e4b0fdd52dce57, - limb2: 0x733f0487714a8d56, - limb3: 0x0 - }, - u384 { - limb0: 0xa33297efecb25f530519a8b0, - limb1: 0xcbea8341620987fc03c67230, - limb2: 0x80d1ac11b3ee2243, - limb3: 0x0 - }, - u384 { - limb0: 0x12a94cbfb9fe9d284f79747f, - limb1: 0x62449ba5029cebb6fc809e24, - limb2: 0x568b6c7e8cd483bf, - limb3: 0x0 - }, - u384 { - limb0: 0xce5e861867a93ec597e5b6f4, - limb1: 0x91bcfda39890cf48f1fef4cd, - limb2: 0xcc62c5999cdc092, - limb3: 0x0 - }, - u384 { - limb0: 0x1f78086ae13c202e1e7901a5, - limb1: 0xe102aa478675960fbe3cfe2b, - limb2: 0xae37310c6d01ee84, - limb3: 0x0 - }, - u384 { - limb0: 0xeae2671fe86dad26162c855b, - limb1: 0x90853c332d319bbf71884469, - limb2: 0x5caff79e5f833a4e, - limb3: 0x0 - }, - u384 { - limb0: 0x7f60b18bf60ac067c292e6f5, - limb1: 0xfffffffffffffffec575a9ef, - limb2: 0xffffffff00000000, - limb3: 0x0 - }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), a_den: array![ - u384 { - limb0: 0x673c029212f6e0cff93346ad, - limb1: 0x60ce2e58aeac6e2e55b65ba2, - limb2: 0x6790ffe989f96bc3, - limb3: 0x0 - }, - u384 { - limb0: 0xa9dcd6162fe22173bb882a1a, - limb1: 0xf0c662c7d6fcaa405ec8ea3d, - limb2: 0x959813a92fbf367f, - limb3: 0x0 - }, - u384 { - limb0: 0x9e581e21d76c328fab434b5b, - limb1: 0x18d2166122fd72084af0cde4, - limb2: 0x18f49f0d286c349b, - limb3: 0x0 - }, - u384 { - limb0: 0xd1597286ffcddfc7d8004c13, - limb1: 0x4b45f5a62cf6b3b08f6c2454, - limb2: 0x85c611ce323aa0a2, - limb3: 0x0 - }, - u384 { - limb0: 0xf9c445ac4ad41ddc20ec6a27, - limb1: 0xa9c82bbd5b3518e687d4d8b5, - limb2: 0x401ce6980326efc3, - limb3: 0x0 - }, - u384 { - limb0: 0xedd4549db167e62102e86db5, - limb1: 0x86a75378bf4e4bbfc6c96dba, - limb2: 0x7f6d761566cea7b3, - limb3: 0x0 - }, - u384 { - limb0: 0x81b35b472c3f22681a4ff239, - limb1: 0xb578c0873b6a4097a3355257, - limb2: 0x6dee8fbf68b30b4f, - limb3: 0x0 - }, u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), b_num: array![ - u384 { - limb0: 0x5dd9885d5aff30f3aed371fb, - limb1: 0x3c1467cc4d79c649c771370, - limb2: 0xc6cb278a661a725a, - limb3: 0x0 - }, - u384 { - limb0: 0x95ee53dbf59a20b04121454d, - limb1: 0x76f819a5104962db7b06f2e7, - limb2: 0xc8c0ac58fb2df375, - limb3: 0x0 - }, - u384 { - limb0: 0xa1241cdbd3cbefa299e7006, - limb1: 0x455772195a4019f8baf29f38, - limb2: 0x11dde3fe157bd105, - limb3: 0x0 - }, - u384 { - limb0: 0x190e9809d144638f67432360, - limb1: 0xe3cd53109ad355c18ee33f3e, - limb2: 0xaf67a01965001041, - limb3: 0x0 - }, - u384 { - limb0: 0xd5e9f6ece024ec3ead8f7522, - limb1: 0xc952994630431219f52c7239, - limb2: 0xb9443839f2dd504c, - limb3: 0x0 - }, - u384 { - limb0: 0x920847c0416b4a993e674540, - limb1: 0xc4d0aedad4cb824a2cecdc6, - limb2: 0xab488839475c9fff, - limb3: 0x0 - }, - u384 { - limb0: 0xce916543f2bb6d66ca5a5634, - limb1: 0x144a469b54d22de8cb690374, - limb2: 0xc94e3903d24bf6a2, - limb3: 0x0 - }, - u384 { - limb0: 0x44ec5805b57fd12133a89e84, - limb1: 0xaf045573b4a9e7ba05d38f9a, - limb2: 0xfeb690cef8a8ef7b, - limb3: 0x0 - }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), b_den: array![ - u384 { - limb0: 0x1a1eaee7adba8431672e8a23, - limb1: 0x44ee34a5217f3e9e84e6bde, - limb2: 0xc077f749cabab03e, - limb3: 0x0 - }, - u384 { - limb0: 0x5571348f45a52d6ef6579500, - limb1: 0xbaaef9724112e49008f65056, - limb2: 0x4fd1012c563c832e, - limb3: 0x0 - }, - u384 { - limb0: 0x4c254cf093f93649680df995, - limb1: 0xa568181a949aac1c3733aa37, - limb2: 0x2119f4086c65392b, - limb3: 0x0 - }, - u384 { - limb0: 0x62d47c339820824976def827, - limb1: 0x30845c7891124845c434ccab, - limb2: 0x709004be8fa0369, - limb3: 0x0 - }, - u384 { - limb0: 0x9731939ec9ba58729a110ded, - limb1: 0xd4c22a7fa19d50f29411595d, - limb2: 0x23af05e31f6bc7ea, - limb3: 0x0 - }, - u384 { - limb0: 0x36a5e37fb2f28d192a8209dc, - limb1: 0x431428e32b5ae7db31c3a10e, - limb2: 0xca6b682c82c7a73d, - limb3: 0x0 - }, - u384 { - limb0: 0x8e53125ee9d22f190930a195, - limb1: 0xa334b97925c64696399b453d, - limb2: 0xf2383968a78ca375, - limb3: 0x0 - }, - u384 { - limb0: 0x40fde4cd01e4f2e1f9cef3c6, - limb1: 0x3d49a77d1f8edddc0351e861, - limb2: 0x51176d31734861bd, - limb3: 0x0 - }, - u384 { - limb0: 0xedd4549db167e62102e86db2, - limb1: 0x86a75378bf4e4bbfc6c96dba, - limb2: 0x7f6d761566cea7b3, - limb3: 0x0 - }, - u384 { - limb0: 0x81b35b472c3f22681a4ff239, - limb1: 0xb578c0873b6a4097a3355257, - limb2: 0x6dee8fbf68b30b4f, - limb3: 0x0 - }, u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { - limb0: 0xdb30202c445e8fc7147bcba5, - limb1: 0x1053c9c42a60ff8b803e9585, - limb2: 0x4a249dd9676cf5f5, - limb3: 0x0 - }, - u384 { - limb0: 0x56ed91d90074d5da995c6a29, - limb1: 0x1a6a830da2b7fb291ae6d14, - limb2: 0x49298d199c2b5439, - limb3: 0x0 - }, - u384 { - limb0: 0x90b65593a066bf609277271e, - limb1: 0x50669e220e3383ebeaa6029d, - limb2: 0xf7476dc4ef161fda, - limb3: 0x0 - }, - u384 { - limb0: 0x2b189000faed9c5e4f8f2479, - limb1: 0x8a3fef2bebb994dfd536df86, - limb2: 0xf576b7c19535847a, - limb3: 0x0 - }, - u384 { - limb0: 0xae9a047a736242f0a962ef39, - limb1: 0xc6317689b099e90ed6d54904, - limb2: 0x4a5123356069985a, - limb3: 0x0 - }, - u384 { - limb0: 0x350beb7d2195909c9ed2af39, - limb1: 0x22e21251cc30ae7fc20be537, - limb2: 0xc487ec9b6a458b6d, - limb3: 0x0 - }, - u384 { - limb0: 0xd06b5ebef1bec77bb55f7a71, - limb1: 0xffffffffffffffffe5b49631, - limb2: 0xffffffff00000000, - limb3: 0x0 - }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x4744858f4f9173c02f2110e5, - limb1: 0x2b071daf9408232ddf563807, - limb2: 0xacd255bd6f3ab225, - limb3: 0x0 - }, - u384 { - limb0: 0x56a910cbf5c8dbf050a60856, - limb1: 0x7408bcebb27441c012544e77, - limb2: 0xfde0edfd27f181b1, - limb3: 0x0 - }, - u384 { - limb0: 0xf867e34a2f1794511fdbc28, - limb1: 0x5d47ab1adf0c0d1f932229fe, - limb2: 0x464c380ba7f4eb08, - limb3: 0x0 - }, - u384 { - limb0: 0xd64a41192d67103c77af994c, - limb1: 0xcef53d347965ac4b689ce54c, - limb2: 0x2f7b4665c3ef7646, - limb3: 0x0 - }, - u384 { - limb0: 0x8c68afcc4dc0c256f7245f8f, - limb1: 0x12bf9f96f2e60e48d55defce, - limb2: 0xe3f854145dc8100e, - limb3: 0x0 - }, - u384 { - limb0: 0xf96aed84e9f09d5941ca5e35, - limb1: 0x9022f660a1a948c27e2d74d5, - limb2: 0x99950f5ff9fff134, - limb3: 0x0 - }, - u384 { - limb0: 0x573c1bd78c662165f65d4a09, - limb1: 0x27f364f25381b17b1ca81398, - limb2: 0xc7cb2eef0cea5b6a, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0xf47a3a37c407ce1d522bd92d, - limb1: 0xfc9441ca5d4625edb8a2e352, - limb2: 0x297b86984de37b60, - limb3: 0x0 - }, - u384 { - limb0: 0x40998c4785a97ba8ca6fd14d, - limb1: 0xb5515d8b9ab55944c6c97b04, - limb2: 0x181b29e07b8d380c, - limb3: 0x0 - }, - u384 { - limb0: 0xb3ba8cc71a80fb79596b55ab, - limb1: 0x2476061a6b347f61cf31c23f, - limb2: 0x8ff607467f1a0721, - limb3: 0x0 - }, - u384 { - limb0: 0x189a5659c1a0ca20507a78d2, - limb1: 0xe02914995723b415795626e9, - limb2: 0x983abd9f30a83b63, - limb3: 0x0 - }, - u384 { - limb0: 0xe5f474466ce04ecc4dfc6d0a, - limb1: 0xb80b57762021e6a736531742, - limb2: 0xee75bcd06c083ee1, - limb3: 0x0 - }, - u384 { - limb0: 0xfe04447cc59b5973ef3113cf, - limb1: 0x40f272580ecc239ba9380b2, - limb2: 0x307da71ef4212144, - limb3: 0x0 - }, - u384 { - limb0: 0x5c3743e0ea4556cb97e40a7b, - limb1: 0x9316f60b3eb4c47a90002dfa, - limb2: 0x6833c3b2fc852342, - limb3: 0x0 - }, - u384 { - limb0: 0xa3c741fab389fbc080d863c1, - limb1: 0xafaee00c4cb32d270cbb5b7, - limb2: 0xa44447b1b1b1f6a, - limb3: 0x0 - }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), - b_den: array![ - u384 { - limb0: 0x6d66102761676125b1b61b58, - limb1: 0x6f200b7f84dea96b06f5c1d, - limb2: 0xc79f6e54daebb3b4, - limb3: 0x0 - }, - u384 { - limb0: 0xbad9eb7be8b01237a6cafdbf, - limb1: 0x3fe45bb23e345a9d5cee930a, - limb2: 0xf708b04e5d5b4023, - limb3: 0x0 - }, - u384 { - limb0: 0x58d627e9e118875dcae6eab9, - limb1: 0xbc05dd07f42ec43a7df0f9a8, - limb2: 0x496fe3bfc895cc64, - limb3: 0x0 - }, - u384 { - limb0: 0xe31d90851213c57924151a56, - limb1: 0x395a6b876694b70b43f252f0, - limb2: 0x649dc8c22f6edfe9, - limb3: 0x0 - }, - u384 { - limb0: 0xd27eb89a42dbcea8f22521fb, - limb1: 0x6c48d6f489beec642162129f, - limb2: 0xfca3d22eed7340af, - limb3: 0x0 - }, - u384 { - limb0: 0x1c98b3b05fac08b47300c0ae, - limb1: 0x35229ffbb86af3209b6a161, - limb2: 0xcdc7eb9e910fd965, - limb3: 0x0 - }, - u384 { - limb0: 0x9685b0bdca65ed40ca2b6ffa, - limb1: 0xa95eb564f07810501ff0e320, - limb2: 0x4b779f22051e628, - limb3: 0x0 - }, - u384 { - limb0: 0x53080d3be45c9a633bdee1bd, - limb1: 0x4ed12e156ef98093e482bbb8, - limb2: 0xe75cfd1de14391b9, - limb3: 0x0 - }, - u384 { - limb0: 0xf96aed84e9f09d5941ca5e32, - limb1: 0x9022f660a1a948c27e2d74d5, - limb2: 0x99950f5ff9fff134, - limb3: 0x0 - }, - u384 { - limb0: 0x573c1bd78c662165f65d4a09, - limb1: 0x27f364f25381b17b1ca81398, - limb2: 0xc7cb2eef0cea5b6a, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() }, - SumDlogDivHighShifted: FunctionFelt { + }; + let derive_point_from_x_hint = DerivePointFromXHint { + y_last_attempt: u384 { + limb0: 0xd1047f7150ec5100a6e49ee9, + limb1: 0xc2e7d792c40dc5b460e86d57, + limb2: 0x7b3f189f2f960a5, + limb3: 0x0, + }, + g_rhs_sqrt: array![ + u384 { + limb0: 0xac5aa8d6d49297a36aaf986f, + limb1: 0x7947b09c6620f2fdeb6c05b0, + limb2: 0x8f24f2607ad197e, + limb3: 0x0, + }, + u384 { + limb0: 0x7cca3f48d7a850ac077aa53a, + limb1: 0xfc0367c309acf4dcb9b6023c, + limb2: 0x1389ccb9283ad6bc, + limb3: 0x0, + }, + u384 { + limb0: 0x9be267945cadfa270fe33fea, + limb1: 0x53629b1877e276ef9c05b645, + limb2: 0x5f3a5c7c506992f, + limb3: 0x0, + }, + ] + .span(), + }; + let points = array![ + G1Point { + x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + }, + ] + .span(); + let scalars = array![u256 { low: 0x0, high: 0x0 }].span(); + + let res = msm_g1( + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 5, + ); + assert!( + res == G1Point { + x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + }, + ); + } + + + #[test] + fn test_msm_GRUMPKIN_2P() { + let scalars_digits_decompositions = Option::None; + let msm_hint = MSMHint { + Q_low: G1Point { + x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + }, + Q_high: G1Point { + x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + }, + Q_high_shifted: G1Point { + x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + }, + RLCSumDlogDiv: FunctionFelt { a_num: array![ - u384 { - limb0: 0x1a3a53ca7fbee7b59208bb6a, - limb1: 0x7e2a75f2bb8abe8af5fb410f, - limb2: 0x31d141259137d732, - limb3: 0x0 - }, - u384 { - limb0: 0x5784a91a5e09d24e7c4a2665, - limb1: 0x7fffffffffffffff7c074594, - limb2: 0x7fffffff80000000, - limb3: 0x0 - } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), a_den: array![ - u384 { - limb0: 0x417ecd1cf14c3cb09139d9b2, - limb1: 0x43c5796007d0b4067e6e0691, - limb2: 0xdb5f8ef0b282a7fa, - limb3: 0x0 - }, - u384 { - limb0: 0x2984f009f3b5f8635616cac3, - limb1: 0x59e8416faa2201c8c9cae364, - limb2: 0xe9ceb6377d70b70d, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), b_num: array![ - u384 { - limb0: 0x2c5279920a2b920e594c6498, - limb1: 0xfffadf11dc80716f52d87b0f, - limb2: 0xc90c3ae49c707f0f, - limb3: 0x0 - }, - u384 { - limb0: 0xf1946b1fd4039bbdbde99422, - limb1: 0xa74dee547d665244d7e643c4, - limb2: 0x944e8fc818095647, - limb3: 0x0 - }, - u384 { - limb0: 0x6c50fdbced10c0ab1ee6b5d7, - limb1: 0x1cb589ab98febb57466955e7, - limb2: 0x4b800184868d62f0, - limb3: 0x0 - } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), b_den: array![ - u384 { - limb0: 0x1b0eb38c3473fd8f37757060, - limb1: 0x6cfc7a5279ba8c2b595ad97b, - limb2: 0xe021729da4e9dd4e, - limb3: 0x0 - }, - u384 { - limb0: 0x468e73d560e3646791370db, - limb1: 0xf31c72cfb00d84d910f62b39, - limb2: 0x2b29043978903af5, - limb3: 0x0 - }, - u384 { - limb0: 0x4fc4e0d860ac5314258dffff, - limb1: 0xa632f9067832816207bc5c87, - limb2: 0x9d5a132f31e86ec2, - limb3: 0x0 - }, - u384 { - limb0: 0x417ecd1cf14c3cb09139d9af, - limb1: 0x43c5796007d0b4067e6e0691, - limb2: 0xdb5f8ef0b282a7fa, - limb3: 0x0 - }, - u384 { - limb0: 0x2984f009f3b5f8635616cac3, - limb1: 0x59e8416faa2201c8c9cae364, - limb2: 0xe9ceb6377d70b70d, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] - .span() + .span(), }, }; let derive_point_from_x_hint = DerivePointFromXHint { y_last_attempt: u384 { - limb0: 0x126bbefb6c0fb5e8a4c23009, - limb1: 0x21d7f0410122cb7217c82fc2, - limb2: 0x3019a414e4103e2d, - limb3: 0x0 + limb0: 0x5799d0a4be76c4179913ad19, + limb1: 0x86201acbfee2c5bb1e120b24, + limb2: 0x167b9aeffb401b8c, + limb3: 0x0, }, - g_rhs_sqrt: array![].span(), + g_rhs_sqrt: array![ + u384 { + limb0: 0x746895ac8d85fdcc78a517dc, + limb1: 0x439607b706d6b787a329afcc, + limb2: 0x122c8ade7aa1ea89, + limb3: 0x0, + }, + ] + .span(), }; let points = array![ G1Point { x: u384 { - limb0: 0x113c8d620e3745e45e4389b8, - limb1: 0x85b8ff52d905fd02fe191c3f, - limb2: 0xf5d132d685201517, - limb3: 0x0 - }, - y: u384 { - limb0: 0x60c0ba1b358f375b2362662e, - limb1: 0x6abfc829d93e09aa5174ec04, - limb2: 0x7bc4637aca93cb5a, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0xd3ff147ff0ee4213f51f677d, - limb1: 0x431366a7732a6e4a6b942255, - limb2: 0x9fe743b25d39a591, - limb3: 0x0 - }, - y: u384 { - limb0: 0x7f8bb562ff60a902ef14bcb0, - limb1: 0xeb9420089fa531db62e806a6, - limb2: 0xfd028df433dfd5cc, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x46ae31f6fc294ad0814552b6, - limb1: 0x2d54cc811efaf988efb3de23, - limb2: 0x2a2cc02b8f0c419f, - limb3: 0x0 - }, - y: u384 { - limb0: 0xaec889b9d8ce51c4a2c3586f, - limb1: 0xa2b07874c333bfee9f78e13e, - limb2: 0xc445de21be8d8709, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x7e47d1c2d19c21b2f6870259, - limb1: 0xe701b40af42001c38bca00db, - limb2: 0xd87ea1720d4dd3d6, - limb3: 0x0 - }, - y: u384 { - limb0: 0x5b1d6cc74985ce49a1f737fe, - limb1: 0xb9127c572c3f091c031c249c, - limb2: 0x1392711e1576aa6f, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0xb71f95ea692ed186e06e4c37, - limb1: 0x807276cd9cc59718bb11dbe9, - limb2: 0x10756a25836d67ca, - limb3: 0x0 - }, - y: u384 { - limb0: 0xd34211b3520c83c5f9be99af, - limb1: 0x8f19a28ceef67bbda102ffe7, - limb2: 0x7ac2b92030d351cc, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x411bb5d0fbe844f025c7178c, - limb1: 0xcf603787227b7ac499d6d1c4, - limb2: 0x5f6b2479862eb2f8, - limb3: 0x0 + limb0: 0x86b402ce02e7c7ca81f13d51, + limb1: 0x39493672733a9289a36020c1, + limb2: 0x7f40d91dc5413d3, + limb3: 0x0, }, y: u384 { - limb0: 0xce60303cfcb98726ff64a1e5, - limb1: 0xa64534c614754b3527588d25, - limb2: 0x44f75e245622181, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x8a703177da18d4ede707c057, - limb1: 0x7d6c11e754ab6fbe73deea43, - limb2: 0xdf9787168190a047, - limb3: 0x0 + limb0: 0x371e7b6a5c01505bd4334e81, + limb1: 0x2f596ae4492a87c66f7bda1a, + limb2: 0x9dffb4dcdb94df9, + limb3: 0x0, }, - y: u384 { - limb0: 0x2e6585ab5f125a34fef37875, - limb1: 0xb70e9f02ce7744197172a117, - limb2: 0x60e305f9fe6f2298, - limb3: 0x0 - } }, G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, ] .span(); let scalars = array![ u256 { low: 0x0, high: 0x0 }, u256 { - low: 0x8d723104f77383c13458a748e9bb17bc, high: 0x85776e9add84f39e71545a137a1d5006 - }, - u256 { - low: 0xeb2083e6ce164dba0ff18e0242af9fc3, high: 0x17e0aa3c03983ca8ea7e9d498c778ea6 - }, - u256 { - low: 0xb5d32b1666194cb1d71037d1b83e90ec, high: 0xa0116be5ab0c1681c8f8e3d0d3290a4c - }, - u256 { - low: 0xd3fbf47a7e5b1e7f9ca5499d004ae545, high: 0xbaf3897a3e70f16a55485822de1b372a - }, - u256 { - low: 0x101fbcccded733e8b421eaeb534097ca, high: 0x38c1962e9148624feac1c14f30e9c5cc - }, - u256 { - low: 0x247a8333f7b0b7d2cda8056c3d15eef7, high: 0x1759edc372ae22448b0163c1cd9d2b7d - }, - u256 { - low: 0xe005b86051ef1922fe43c49e149818d1, high: 0x7d41e602eece328bff7b118e820865d6 + low: 0xb4862b21fb97d43588561712e8e5216a, high: 0x967d0cae6f4590b9a164106cf6a659e, }, ] .span(); let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 3 + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 5, ); assert!( res == G1Point { - x: u384 { - limb0: 0xe711606fcc388171ebc92fc, - limb1: 0x44a0de55ff28207782b96f4a, - limb2: 0x193ac634ff18e9ff, - limb3: 0x0 - }, - y: u384 { - limb0: 0xcc0201dcc2b8235b25615c06, - limb1: 0x446db23e267819a6cd89ddae, - limb2: 0xa1dc734b5e97af08, - limb3: 0x0 - } - } + x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + }, ); } #[test] - fn test_msm_SECP256R1_9P() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - ] - .span(), - array![ - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - ] - .span(), - array![ - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - ] - .span(), - array![ - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - ] - .span() - ), - ] - .span() - ); + fn test_msm_GRUMPKIN_3P() { + let scalars_digits_decompositions = Option::None; let msm_hint = MSMHint { Q_low: G1Point { x: u384 { - limb0: 0x1f9ad922a188b386711f9ede, - limb1: 0x76f2a8128aba114b145dc558, - limb2: 0x8b5f7af96a605d7d, - limb3: 0x0 + limb0: 0x37c9a46b0612fc1b353fe24a, + limb1: 0xeb374db12bd7d7711f2705b4, + limb2: 0x253453fe507b50b6, + limb3: 0x0, }, y: u384 { - limb0: 0x8432868d910744b5b1fb603f, - limb1: 0xdb7096383bc4279ace136fd, - limb2: 0x357376351c512bd3, - limb3: 0x0 - } + limb0: 0x33cd021aeba5ea18a2e20a56, + limb1: 0x3e392b55f320a528391fcef8, + limb2: 0x14fbdf9fd7fbfcdd, + limb3: 0x0, + }, }, Q_high: G1Point { x: u384 { - limb0: 0xf33911756182ec464794bb4b, - limb1: 0xc44e0d15f441d7dc7ea41742, - limb2: 0xfc8ae255adf9e43a, - limb3: 0x0 + limb0: 0x60e6980f95d8e5261423f38e, + limb1: 0x3079cdd992636bb28a5984df, + limb2: 0x14368ee41c0e5576, + limb3: 0x0, }, y: u384 { - limb0: 0x841a52497422de33afb76edf, - limb1: 0x146a2e60bdecf6a7d2f2a7ab, - limb2: 0x4847abac4e4b3435, - limb3: 0x0 - } + limb0: 0xa3597535ddd5b8336fde7418, + limb1: 0xc0329958cee690ca2b691fb, + limb2: 0x2a11389e1b5a9b57, + limb3: 0x0, + }, }, Q_high_shifted: G1Point { x: u384 { - limb0: 0x81b823b7af17dc9bd728b08, - limb1: 0x61d2d9f2c49630a7c5bdc245, - limb2: 0x74a4972c9f85b597, - limb3: 0x0 + limb0: 0xc294148f233ee2e2eb301899, + limb1: 0xe1d7d7726b8c2ea638d0879e, + limb2: 0x1599a751984c9cbc, + limb3: 0x0, }, y: u384 { - limb0: 0xd5d7d1fb3eef6c6c394407a3, - limb1: 0xc8d96895f860861e2c2872d3, - limb2: 0x8d97e94899df32f6, - limb3: 0x0 - } + limb0: 0xfb70f5613f53701f0d60d44f, + limb1: 0x1bc69554d8e00e30700a9bad, + limb2: 0x1e3d7a04c2e60b68, + limb3: 0x0, + }, }, - SumDlogDivLow: FunctionFelt { + RLCSumDlogDiv: FunctionFelt { a_num: array![ u384 { - limb0: 0xd986c0a1266221d86739dc56, - limb1: 0x830650a2f6fb39f099a4f32b, - limb2: 0xbb690fba559ffbe7, - limb3: 0x0 - }, - u384 { - limb0: 0x37c5bdcbe3ec66a5e2e0287a, - limb1: 0xf93ebea7af99cbc5e4c85bb, - limb2: 0x6a74ca904a839fd3, - limb3: 0x0 - }, - u384 { - limb0: 0x443c055f8db11d9b546bc8c9, - limb1: 0xa4581f0b129f4ad2bbbd0b77, - limb2: 0xf169b1188e0cb756, - limb3: 0x0 - }, - u384 { - limb0: 0xc3bfd12c2702c086db89cc45, - limb1: 0xf06b040268edd0023fb5aa67, - limb2: 0x688b1e7852080493, - limb3: 0x0 - }, - u384 { - limb0: 0x77b8fecf94061e55f43ccb12, - limb1: 0x927eba26d539ffc73a4f4eb, - limb2: 0x6ec9781c591369bb, - limb3: 0x0 + limb0: 0x8d1ac407b0b68a1dab34b0ea, + limb1: 0x28583648ea41a8369d9266ea, + limb2: 0x5bd7a61cafde77f, + limb3: 0x0, }, u384 { - limb0: 0xacefaa0f9105dfec9b98c525, - limb1: 0xc0129168b41f310f2accff96, - limb2: 0x826118a40395020a, - limb3: 0x0 + limb0: 0x2e2d64b34628cd5121e61d8b, + limb1: 0x3c9160edd20418993dc03a9c, + limb2: 0x14935bf5b97aaf31, + limb3: 0x0, }, u384 { - limb0: 0x22128bfb04531a7b5af27d9f, - limb1: 0xbd30bd8ec36cfb6407a96f08, - limb2: 0x80ed852d1d9b32d4, - limb3: 0x0 + limb0: 0x6d828690264f9647a8a849f1, + limb1: 0xaa4db7f1d471f2660eea1a53, + limb2: 0xdf52f48a4714b89, + limb3: 0x0, }, u384 { - limb0: 0x86d9e77998013c0f0e9256b, - limb1: 0xfffffffffffffffe51bedaa6, - limb2: 0xffffffff00000000, - limb3: 0x0 + limb0: 0x22b173b10b3e7c4fac032098, + limb1: 0x4f28a503f922c55da227f373, + limb2: 0x4654b1125198233, + limb3: 0x0, }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), a_den: array![ u384 { - limb0: 0x5f6528b962583b2a5efa7173, - limb1: 0x4fce840d73f6a924e947313f, - limb2: 0xb50afd3cf3eb0140, - limb3: 0x0 - }, - u384 { - limb0: 0xd6342e436c9000c5d09c1f09, - limb1: 0x541cad8b7d66c7fd2d0543f8, - limb2: 0xb3fbb9717dff8d72, - limb3: 0x0 + limb0: 0xb2266081a22d892a905aac07, + limb1: 0xe29e40ff84bf386a075c2912, + limb2: 0x2bdae940ecd05238, + limb3: 0x0, }, u384 { - limb0: 0xe964012cdc4f23280a4eb6b4, - limb1: 0xd9d03bce761acc2be9fe73af, - limb2: 0xd07bb17638dd23bd, - limb3: 0x0 + limb0: 0xbc07a73baca9200621b30a, + limb1: 0x9feb152fd5380add8bfeb65d, + limb2: 0x27611e103ee6cd84, + limb3: 0x0, }, u384 { - limb0: 0xaa157cb61fb952f10d203981, - limb1: 0xaf225601c0ac2132e97034dd, - limb2: 0xa9fdd363d1007a00, - limb3: 0x0 + limb0: 0xc58abb3148d1b699a1cd566b, + limb1: 0x427ed6a0de410a4bb7ae367a, + limb2: 0x1710b0370e12ff29, + limb3: 0x0, }, u384 { - limb0: 0x885fbd6424a827eb095a307f, - limb1: 0x707154acf458da39af5d54da, - limb2: 0xa291aa7957b482dd, - limb3: 0x0 - }, - u384 { - limb0: 0xf733fa13f95ab04bb4e6d755, - limb1: 0x5fbeb50104913f90904e0477, - limb2: 0x95bca68e31e507be, - limb3: 0x0 - }, - u384 { - limb0: 0x1b360da718e2338c6cf314de, - limb1: 0xe0fdfd058b7089fe1c4752e0, - limb2: 0xac863ed2c437683f, - limb3: 0x0 - }, - u384 { - limb0: 0x53951e7ccdffa97dcc087ada, - limb1: 0x14f1e1dcae42eda61f426771, - limb2: 0xbbc01be0875f2dfe, - limb3: 0x0 + limb0: 0x77c7f1279f442e1fefa35cbe, + limb1: 0x39ad28fd9578c20b1b049f7b, + limb2: 0x80860ed167627c, + limb3: 0x0, }, u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), b_num: array![ u384 { - limb0: 0xa451386edfed8422e0d14d0d, - limb1: 0xf7d356ee70d79b1354d247f5, - limb2: 0xb4245265973f847d, - limb3: 0x0 - }, - u384 { - limb0: 0xa1392ca9b9112f6aab7fd761, - limb1: 0xffea3364e9a70312de384ff6, - limb2: 0xcce5bd28ece6d6f8, - limb3: 0x0 - }, - u384 { - limb0: 0xca6874701b8bb4699b6efe40, - limb1: 0xa1c03036ace9b78018c37477, - limb2: 0xe7b065ffcca8cc7c, - limb3: 0x0 - }, - u384 { - limb0: 0xf49479b834a0a6b7ba9f009e, - limb1: 0xc0cf13818dfbd2715591f7a1, - limb2: 0x22043ac214a3da21, - limb3: 0x0 - }, - u384 { - limb0: 0xc361936167a2a4a499e6d436, - limb1: 0xd7f941fe7ea2951d6f0f5db, - limb2: 0x2f3a728b61b9be15, - limb3: 0x0 + limb0: 0x36d43362167f95a6c7ab3efb, + limb1: 0xf1b335d8f724e2f00d074209, + limb2: 0x4210b05774c00d8, + limb3: 0x0, }, u384 { - limb0: 0xd53af40196db4044f887ad32, - limb1: 0xc8f4896befdfbf6232909e1f, - limb2: 0x1e63d96b3c9b9f83, - limb3: 0x0 + limb0: 0xfcfb832a114ffcbb88fd9872, + limb1: 0x14d78d0b3eb673c7a7bcc78a, + limb2: 0x272e013c16236c86, + limb3: 0x0, }, u384 { - limb0: 0xb10e435f07e353666cabe919, - limb1: 0x76de445aa04a1266c2737ad1, - limb2: 0xbd9dda5591d8ff85, - limb3: 0x0 + limb0: 0x3e4ab9a1f92275723f292c08, + limb1: 0x750afa16be5a64b2272b368, + limb2: 0x2bb352e1f4120313, + limb3: 0x0, }, u384 { - limb0: 0x3c5560607f37773f5d872ce3, - limb1: 0x393188c946f6f4d6cb389c94, - limb2: 0xb02c52cc1a5189f4, - limb3: 0x0 + limb0: 0xcabd610b2776514a16c4ca00, + limb1: 0xe2528b2f5dd72dcf9738f4f0, + limb2: 0x2ca5cb95ab68ee73, + limb3: 0x0, }, u384 { - limb0: 0xc98b4773abc9f63b0600971a, - limb1: 0xe4199592417a3de80315775e, - limb2: 0x540e88caecad43fc, - limb3: 0x0 + limb0: 0x6ead72438d38a9b6bbb87e01, + limb1: 0x65951ccceba1f98566e26518, + limb2: 0x2a904cec00cee003, + limb3: 0x0, }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), b_den: array![ u384 { - limb0: 0x9057a7eaa61e30540b2b81ce, - limb1: 0x9b598a7fe25f8953f7f18e71, - limb2: 0x5f2bd2bce32fd845, - limb3: 0x0 - }, - u384 { - limb0: 0xb44df58684ff05e986c6f645, - limb1: 0xd15c35905a19ef9e424873d6, - limb2: 0xedeeda642a143728, - limb3: 0x0 - }, - u384 { - limb0: 0x95017e8fc95512b6bce05df4, - limb1: 0xa6737c574ca2a1e0ac1bcc66, - limb2: 0xdebceed4b1e0664e, - limb3: 0x0 - }, - u384 { - limb0: 0xe0d2c87515ebaec2efec9fd9, - limb1: 0xd46b7cf69e12d5cf0df4f1f3, - limb2: 0x6e1310ff47373c2e, - limb3: 0x0 - }, - u384 { - limb0: 0xb2e890b4593be6c6798a8b3e, - limb1: 0x825ce48e07aa0ea6219c6403, - limb2: 0xaa6dd44534325233, - limb3: 0x0 + limb0: 0xc70aa07879193d6b69fa9399, + limb1: 0x78820a704762c6c8061fca49, + limb2: 0x1cbb69de59448cd4, + limb3: 0x0, }, u384 { - limb0: 0x8d35e660455645af33ee79e7, - limb1: 0xc82830debde04fdc1f8a5ecf, - limb2: 0x4b216fc78d20fdd6, - limb3: 0x0 + limb0: 0x9ba7a5d6bfe432f6b7c31c64, + limb1: 0x75c767cdec5a1c61e6ec97c9, + limb2: 0x8094b3423631c79, + limb3: 0x0, }, u384 { - limb0: 0x143fbdcfa12418fa64ae74d6, - limb1: 0x489d54cc9ba350740bccf40, - limb2: 0x2f5b379dae406912, - limb3: 0x0 + limb0: 0x294e86d58d0481ffb15d42ee, + limb1: 0x106632bbcb3a6c3f37418c65, + limb2: 0x2b6b0e61fb7bafba, + limb3: 0x0, }, u384 { - limb0: 0x606ad149fcd32babbe6a65ff, - limb1: 0xa0485ec39ff9428e68074ab8, - limb2: 0x307b2a0b30c09f66, - limb3: 0x0 + limb0: 0xbddf5ce00ea6790ba6818369, + limb1: 0xe1e882897ba55ad3c0d91df, + limb2: 0x2352024504f2c7f9, + limb3: 0x0, }, u384 { - limb0: 0xc8c84f93cb29f010789fc710, - limb1: 0xd4d4ccc07060fd5a97a3d4d6, - limb2: 0xbd4288c3460211ad, - limb3: 0x0 + limb0: 0xbc07a73baca9200621b2f9, + limb1: 0x9feb152fd5380add8bfeb65d, + limb2: 0x27611e103ee6cd84, + limb3: 0x0, }, u384 { - limb0: 0x1b360da718e2338c6cf314db, - limb1: 0xe0fdfd058b7089fe1c4752e0, - limb2: 0xac863ed2c437683f, - limb3: 0x0 + limb0: 0xc58abb3148d1b699a1cd566b, + limb1: 0x427ed6a0de410a4bb7ae367a, + limb2: 0x1710b0370e12ff29, + limb3: 0x0, }, u384 { - limb0: 0x53951e7ccdffa97dcc087ada, - limb1: 0x14f1e1dcae42eda61f426771, - limb2: 0xbbc01be0875f2dfe, - limb3: 0x0 + limb0: 0x77c7f1279f442e1fefa35cbe, + limb1: 0x39ad28fd9578c20b1b049f7b, + limb2: 0x80860ed167627c, + limb3: 0x0, }, u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] - .span() + .span(), }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { - limb0: 0xe2e238f7ae8ca053c2a8d9a, - limb1: 0x24dc520f452237a31dacee8c, - limb2: 0x4ac534579a80b184, - limb3: 0x0 - }, - u384 { - limb0: 0x1ae95af0fd0d4bb45651e71e, - limb1: 0x76562974fe277b37a54b43c4, - limb2: 0xff04d0625d0fd1d4, - limb3: 0x0 - }, - u384 { - limb0: 0x4685ea719ae2dd927b72f9be, - limb1: 0xbf0f4a9755a71911e17f166d, - limb2: 0x38d29e53a52621f, - limb3: 0x0 - }, - u384 { - limb0: 0x16908b818beeedf9a5c2ea9c, - limb1: 0x4db96bf243f74d32a3646af7, - limb2: 0xca8c2b44a737af1d, - limb3: 0x0 - }, - u384 { - limb0: 0x68a1803b0b01fe8f1d869ac5, - limb1: 0x800de2a2cb7df00eecdccc23, - limb2: 0xd76fca04f2283eea, - limb3: 0x0 - }, - u384 { - limb0: 0x1fb723a97fc04acfb9e3dcb0, - limb1: 0xe12d1805f19a07a2e7a28b0f, - limb2: 0xae624c7bab1399bc, - limb3: 0x0 - }, - u384 { - limb0: 0x8c28f87df0416003e0c3416e, - limb1: 0x7a5f65e9e11e3cc334f2efed, - limb2: 0x84816e796aa86a9a, - limb3: 0x0 + }; + let derive_point_from_x_hint = DerivePointFromXHint { + y_last_attempt: u384 { + limb0: 0xb4d724fe09e4d0654dff3b97, + limb1: 0x5a5d54ab4d5e104be31a68a5, + limb2: 0x227e7025667ec33, + limb3: 0x0, + }, + g_rhs_sqrt: array![].span(), + }; + let points = array![ + G1Point { + x: u384 { + limb0: 0x86b402ce02e7c7ca81f13d51, + limb1: 0x39493672733a9289a36020c1, + limb2: 0x7f40d91dc5413d3, + limb3: 0x0, + }, + y: u384 { + limb0: 0x371e7b6a5c01505bd4334e81, + limb1: 0x2f596ae4492a87c66f7bda1a, + limb2: 0x9dffb4dcdb94df9, + limb3: 0x0, + }, + }, + G1Point { + x: u384 { + limb0: 0x20669ef12954f8e3bbc8b4d3, + limb1: 0x396a6f7243c27ce553121ee3, + limb2: 0x11438ca2ec259aed, + limb3: 0x0, + }, + y: u384 { + limb0: 0xa560a5759c90985fde99aca0, + limb1: 0xc5b21186cc6dcd0421026513, + limb2: 0x21fb1f47c6ac55b3, + limb3: 0x0, + }, + }, + G1Point { + x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + }, + ] + .span(); + let scalars = array![ + u256 { low: 0x0, high: 0x0 }, + u256 { + low: 0x12e0c8b2bad640fb19488dec4f65d4d9, high: 0x1521f387af19922ad9b8a714e61a441c, + }, + u256 { + low: 0x5a92118719c78df48f4ff31e78de5857, high: 0x28fcb26f9c6316b950f244556f25e2a2, + }, + ] + .span(); + + let res = msm_g1( + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 5, + ); + assert!( + res == G1Point { + x: u384 { + limb0: 0xf47b4ee8eecf8576c38173d8, + limb1: 0x755d90a26c30d7d6fb33afd3, + limb2: 0x5e835e05fdb55c5, + limb3: 0x0, + }, + y: u384 { + limb0: 0x990d5f4767a8d057f8695e4e, + limb1: 0x5f8dd4e272c268c0d2ce4a39, + limb2: 0x1704905427d31a82, + limb3: 0x0, + }, + }, + ); + } + + + #[test] + fn test_msm_GRUMPKIN_4P() { + let scalars_digits_decompositions = Option::None; + let msm_hint = MSMHint { + Q_low: G1Point { + x: u384 { + limb0: 0x7fca404cf28b7c01bc2a273c, + limb1: 0x21b13979cfab5b2c39925bc7, + limb2: 0x25c83abfb9a6cf23, + limb3: 0x0, + }, + y: u384 { + limb0: 0xbbd55bc3ba04437bce8521a9, + limb1: 0xf464d5315dd920e277df247b, + limb2: 0x8144b996cb87869, + limb3: 0x0, + }, + }, + Q_high: G1Point { + x: u384 { + limb0: 0xafef69f2e967ce258ede0fab, + limb1: 0x3bded90a47a831e62a8312d8, + limb2: 0x23fcbf1035f058be, + limb3: 0x0, + }, + y: u384 { + limb0: 0x4bf0c01fe73cdbbc883c9ac9, + limb1: 0x8eb8106c85aa9de02e07517a, + limb2: 0x1b5257e9e2a9db7c, + limb3: 0x0, + }, + }, + Q_high_shifted: G1Point { + x: u384 { + limb0: 0x93eac8ab0434b3dc0c76ec25, + limb1: 0x695c9f3078b835272ecde3f0, + limb2: 0x84e3b8cc47abe19, + limb3: 0x0, + }, + y: u384 { + limb0: 0xb271bb87ca31ff4bc3dcbbb7, + limb1: 0x499ee0e5ba9f5da55bc7654c, + limb2: 0x1b425a934de04557, + limb3: 0x0, + }, + }, + RLCSumDlogDiv: FunctionFelt { + a_num: array![ + u384 { + limb0: 0x98a6d2f5c3591bbdfc1d1952, + limb1: 0x883631916ffc1bbf1324fbf0, + limb2: 0x79627cde765b8a1, + limb3: 0x0, }, u384 { - limb0: 0xca53d3275459fd5af1e0b8a4, - limb1: 0x80000000000000002637b6cf, - limb2: 0x7fffffff80000000, - limb3: 0x0 + limb0: 0xcbc115fabd892702d682fae, + limb1: 0x2f42aa426412ea771c5213f3, + limb2: 0x200e1e5ba269dd47, + limb3: 0x0, }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ u384 { - limb0: 0xec15f3c0d176036d72961b06, - limb1: 0x49af15018db1dad408ef9152, - limb2: 0x5869ca443b4012ac, - limb3: 0x0 + limb0: 0xd52bc43a9010d3906bcaec77, + limb1: 0x30535c0d573b131ad625a818, + limb2: 0x2a944afc1e1a0077, + limb3: 0x0, }, u384 { - limb0: 0xab128f99eb8d549509329e6b, - limb1: 0x8cc7ad5e187301d8c95ac161, - limb2: 0xf7743b35210be851, - limb3: 0x0 + limb0: 0x78bb6fc35dcb53116b2e555c, + limb1: 0x83820c28413ec921f231f9c7, + limb2: 0x8d966c289675192, + limb3: 0x0, }, u384 { - limb0: 0xe401e03a0a16ba27fc27bbf, - limb1: 0x8b8c44920de9ca32a6a9ce61, - limb2: 0xc6ccded464c39550, - limb3: 0x0 + limb0: 0x529e068c155b9a3235e3ef58, + limb1: 0x6e63c43daeafc32a09c0578b, + limb2: 0x12bcbe94cf5d70ca, + limb3: 0x0, }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + ] + .span(), + a_den: array![ u384 { - limb0: 0xff2587f17109db21cffb6b5f, - limb1: 0x58e92dc6a08d99986044a9d8, - limb2: 0xb651c4681ffb2ec7, - limb3: 0x0 + limb0: 0x366988318c0fd37cae5c7a01, + limb1: 0x1d1db654c5e1f6ae3a804e12, + limb2: 0x1d59845a5f89653f, + limb3: 0x0, }, u384 { - limb0: 0x3b33e61e9547b7b9a06a1628, - limb1: 0x459c65b9d64523ccc136868b, - limb2: 0xc66194f62ff47553, - limb3: 0x0 + limb0: 0xbe8bf151b60ae8b001939f48, + limb1: 0x8dddea28757c4cb1ef3fac24, + limb2: 0x49bbb5b78a0f560, + limb3: 0x0, }, u384 { - limb0: 0xff3b25577d86cdd08ac8add0, - limb1: 0x90aac91441663663960dca8f, - limb2: 0xd766ab7871d2dfbc, - limb3: 0x0 + limb0: 0x965d1debe0f443a3bdef565c, + limb1: 0x426610e686cfbaa612d0f608, + limb2: 0x1db26b2f30bccfd6, + limb3: 0x0, }, u384 { - limb0: 0xbece37d38bd44d4e6321ecf3, - limb1: 0x9e36cb352bad3dd0c0e5d8a1, - limb2: 0xb3a690327f11b4a4, - limb3: 0x0 + limb0: 0x8c1d1fb00c4d27c0bc31237, + limb1: 0xf18cb4b94d88e0dc8493c726, + limb2: 0x27c0a2053947e879, + limb3: 0x0, }, u384 { - limb0: 0x7ff6e62a0e0570bdf5935e6d, - limb1: 0xc7967cd944bb2714b4fc1586, - limb2: 0x4a94b48443c5a740, - limb3: 0x0 + limb0: 0x4cfa4ad87abe325ce09fe0ae, + limb1: 0x6bce834269e687d980bafa51, + limb2: 0x5e9e552b6eae557, + limb3: 0x0, }, u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), b_num: array![ u384 { - limb0: 0x38056fa861185df7e58cb0ad, - limb1: 0x591014621cb8edd3af21988b, - limb2: 0x50901daad2c028ab, - limb3: 0x0 - }, - u384 { - limb0: 0x6b725c0fa006a4aa72d11ec9, - limb1: 0x7d1be1b0c28a615cc90e3f9b, - limb2: 0xdc4a31247b97bde5, - limb3: 0x0 + limb0: 0xcd4d64cecabc90847e71b0ff, + limb1: 0x8d354cdaaa16e1d2172b8cca, + limb2: 0x17896dafdc2e0947, + limb3: 0x0, }, u384 { - limb0: 0x97b78b1b2d27ef5384f24237, - limb1: 0xe26b400e93a378b529799a3b, - limb2: 0xbf994f30188db89c, - limb3: 0x0 + limb0: 0x7ab80a06de9bf18a2b023deb, + limb1: 0x573bb53778fef3c274697727, + limb2: 0x2a2dbe4ee4dad0a, + limb3: 0x0, }, u384 { - limb0: 0xd1113103c09a0c41f613e1ec, - limb1: 0x6e59b8f79c34dcbbadca9809, - limb2: 0x502f360f52c645cc, - limb3: 0x0 + limb0: 0xe6166ee75bb90966b71382da, + limb1: 0x16d67511f930c23f8115e19c, + limb2: 0x79b7627b4afe571, + limb3: 0x0, }, u384 { - limb0: 0x62f6adec87de9fca25848ab5, - limb1: 0xfb677be503a69b429564a0f8, - limb2: 0x789d27cca67d1b1b, - limb3: 0x0 + limb0: 0x50987597db64239b394094a3, + limb1: 0x2b418f5f765077b80057e5e7, + limb2: 0x26179d60f93e31dc, + limb3: 0x0, }, u384 { - limb0: 0xcbc238571d3ffa0335edb3c9, - limb1: 0x2132bb98d079d1014b84c5b9, - limb2: 0x91820b41b0b7f12, - limb3: 0x0 + limb0: 0xf507d39166a26fbb49d1b67d, + limb1: 0xe527101fce215afbe80d353e, + limb2: 0x1ada2b4452b75467, + limb3: 0x0, }, u384 { - limb0: 0x4ea502a8bbe9bcff5e57afb2, - limb1: 0x18374a3e5c4b4d8f4c41f13e, - limb2: 0x83705a43f02d21c, - limb3: 0x0 - }, - u384 { - limb0: 0x1547dc27e280c4bd2c3ce6fa, - limb1: 0xb7fa65cc179d883529769930, - limb2: 0x57197a21c2d9e3cd, - limb3: 0x0 - }, - u384 { - limb0: 0x65622665e3204f761f2f39fe, - limb1: 0xa3bd22c58bf10677ffc7bb93, - limb2: 0xfbd3835215bf2d93, - limb3: 0x0 + limb0: 0x1a20b1e93cf5d9e5e4f7ce6d, + limb1: 0x7fb8879744b1a746ef1035de, + limb2: 0x1f80ea77de175a16, + limb3: 0x0, }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), b_den: array![ u384 { - limb0: 0x1eecb298d4e749ed2b063f60, - limb1: 0xc4d8841c629bfc31d3db4f16, - limb2: 0x67199bd19073dce2, - limb3: 0x0 - }, - u384 { - limb0: 0xa5be8057949b07021be41434, - limb1: 0xf6c88e9aac48a68d9c83f14a, - limb2: 0x599563cffd5dc4fd, - limb3: 0x0 - }, - u384 { - limb0: 0xf03ef261720e7534866f02f6, - limb1: 0xb7bc1220c90198a9417e84a5, - limb2: 0xe109c253d5e6f42b, - limb3: 0x0 - }, - u384 { - limb0: 0x3282df858efd5443a5ca275b, - limb1: 0x3ea557e3818ede0c7a501b7e, - limb2: 0xf9a030685bc34c23, - limb3: 0x0 + limb0: 0x9df5caf39da88213bbdbe5fa, + limb1: 0xfc79e3366c8d6a6ed7b5cbe7, + limb2: 0x215d94ef55022899, + limb3: 0x0, }, u384 { - limb0: 0xa0e22fff80de551a3d308ed9, - limb1: 0xace3a6ce265718328f960f4c, - limb2: 0x4b7d5a7d641b64e7, - limb3: 0x0 + limb0: 0x4c27dab5710a7777c5326c3a, + limb1: 0x4e3febd35c198e96d2d6220, + limb2: 0x12712bd2bfb2f4ea, + limb3: 0x0, }, u384 { - limb0: 0xbc246d2d9ffced0483e226e1, - limb1: 0xa8f42749a1099f797bafa25d, - limb2: 0x1be58763b8d4b552, - limb3: 0x0 + limb0: 0x3ec8d993fa7d0f7bb31b43ef, + limb1: 0x82abdf889cc366f97a5aa48b, + limb2: 0x1b7640cd70981490, + limb3: 0x0, }, u384 { - limb0: 0x217556f2805ffa256f24f349, - limb1: 0xb7ac704e43cbba2a9dfa0663, - limb2: 0x2447caa8fd1b668c, - limb3: 0x0 + limb0: 0x49aebe783559475706684468, + limb1: 0x27298601b4dddd219f86c882, + limb2: 0x1f0b0c49e279b76e, + limb3: 0x0, }, u384 { - limb0: 0x8627363046c827d8d112b003, - limb1: 0xd89c1d12434c0b5043985dd4, - limb2: 0x574682f4a401367c, - limb3: 0x0 + limb0: 0x955fda14172d7bacf6f5b3bc, + limb1: 0xd5c7be2c702ff7fab33cdd4f, + limb2: 0xdc1dc3156afae5, + limb3: 0x0, }, u384 { - limb0: 0x4baa23cf8f44b7d4d1e0f2d4, - limb1: 0xedd30fdde9cd47e1dc3690ad, - limb2: 0x526ec3c450bc7de1, - limb3: 0x0 + limb0: 0x965d1debe0f443a3bdef564b, + limb1: 0x426610e686cfbaa612d0f608, + limb2: 0x1db26b2f30bccfd6, + limb3: 0x0, }, u384 { - limb0: 0xbece37d38bd44d4e6321ecf0, - limb1: 0x9e36cb352bad3dd0c0e5d8a1, - limb2: 0xb3a690327f11b4a4, - limb3: 0x0 + limb0: 0x8c1d1fb00c4d27c0bc31237, + limb1: 0xf18cb4b94d88e0dc8493c726, + limb2: 0x27c0a2053947e879, + limb3: 0x0, }, u384 { - limb0: 0x7ff6e62a0e0570bdf5935e6d, - limb1: 0xc7967cd944bb2714b4fc1586, - limb2: 0x4a94b48443c5a740, - limb3: 0x0 + limb0: 0x4cfa4ad87abe325ce09fe0ae, + limb1: 0x6bce834269e687d980bafa51, + limb2: 0x5e9e552b6eae557, + limb3: 0x0, }, u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x5a356f47e0cc91a4ab79711a, - limb1: 0x5ef76e000da081019b36ce1d, - limb2: 0x83477f411de44c16, - limb3: 0x0 - }, - u384 { - limb0: 0x5784a91a5e09d24e7c4a2665, - limb1: 0x7fffffffffffffff7c074594, - limb2: 0x7fffffff80000000, - limb3: 0x0 - } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x93c3eba6d15efbacadf0fe60, - limb1: 0x44fe9c7d1e672d66c7c0e6af, - limb2: 0x356f0df8c8e99b19, - limb3: 0x0 - }, - u384 { - limb0: 0x4ab6c4f238b95effaf8b9ab, - limb1: 0xd9df18f74727f77bbb9e267a, - limb2: 0x8ed0867bb280662f, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0x3624a51e12020e6a7bc46222, - limb1: 0x5b198cd720fdd353cc0b5d2a, - limb2: 0xe3178ddb97447141, - limb3: 0x0 - }, - u384 { - limb0: 0xb3fef143baf77ee55e980284, - limb1: 0x3c463a741c01fe460e78607c, - limb2: 0xe5c48ce22051a41a, - limb3: 0x0 - }, - u384 { - limb0: 0x59dd0e9068f6cc13c3890d0e, - limb1: 0x87eee802c4ac872dcd604520, - limb2: 0x492486ffb8e879f1, - limb3: 0x0 - } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), - b_den: array![ - u384 { - limb0: 0x5a6ae80b22e9dfafe789253f, - limb1: 0x99e2269e420a7261373c8acc, - limb2: 0x55737cc7bef0386d, - limb3: 0x0 - }, - u384 { - limb0: 0x1c34cbe1b4a70d6c0b0ab28b, - limb1: 0x260db136738f9989bf39b7c9, - limb2: 0xf24674e222283fa3, - limb3: 0x0 - }, - u384 { - limb0: 0xbe516c08d12b7a6e36e83348, - limb1: 0x264e726fa120a04932429344, - limb2: 0xae54a26392b9615a, - limb3: 0x0 - }, - u384 { - limb0: 0x93c3eba6d15efbacadf0fe5d, - limb1: 0x44fe9c7d1e672d66c7c0e6af, - limb2: 0x356f0df8c8e99b19, - limb3: 0x0 - }, - u384 { - limb0: 0x4ab6c4f238b95effaf8b9ab, - limb1: 0xd9df18f74727f77bbb9e267a, - limb2: 0x8ed0867bb280662f, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() }, }; let derive_point_from_x_hint = DerivePointFromXHint { y_last_attempt: u384 { - limb0: 0x4375533fa8e8cda6b2062a6c, - limb1: 0x8fbac85823c539594983f108, - limb2: 0x62781e49e2780ee9, - limb3: 0x0 + limb0: 0xe325935833fd7f17898d871a, + limb1: 0xc9d0d50ed7634aa265e25247, + limb2: 0x1381ee552ec864a6, + limb3: 0x0, }, g_rhs_sqrt: array![].span(), }; let points = array![ G1Point { x: u384 { - limb0: 0x113c8d620e3745e45e4389b8, - limb1: 0x85b8ff52d905fd02fe191c3f, - limb2: 0xf5d132d685201517, - limb3: 0x0 - }, - y: u384 { - limb0: 0x60c0ba1b358f375b2362662e, - limb1: 0x6abfc829d93e09aa5174ec04, - limb2: 0x7bc4637aca93cb5a, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0xd3ff147ff0ee4213f51f677d, - limb1: 0x431366a7732a6e4a6b942255, - limb2: 0x9fe743b25d39a591, - limb3: 0x0 - }, - y: u384 { - limb0: 0x7f8bb562ff60a902ef14bcb0, - limb1: 0xeb9420089fa531db62e806a6, - limb2: 0xfd028df433dfd5cc, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x46ae31f6fc294ad0814552b6, - limb1: 0x2d54cc811efaf988efb3de23, - limb2: 0x2a2cc02b8f0c419f, - limb3: 0x0 + limb0: 0x86b402ce02e7c7ca81f13d51, + limb1: 0x39493672733a9289a36020c1, + limb2: 0x7f40d91dc5413d3, + limb3: 0x0, }, y: u384 { - limb0: 0xaec889b9d8ce51c4a2c3586f, - limb1: 0xa2b07874c333bfee9f78e13e, - limb2: 0xc445de21be8d8709, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x7e47d1c2d19c21b2f6870259, - limb1: 0xe701b40af42001c38bca00db, - limb2: 0xd87ea1720d4dd3d6, - limb3: 0x0 + limb0: 0x371e7b6a5c01505bd4334e81, + limb1: 0x2f596ae4492a87c66f7bda1a, + limb2: 0x9dffb4dcdb94df9, + limb3: 0x0, }, - y: u384 { - limb0: 0x5b1d6cc74985ce49a1f737fe, - limb1: 0xb9127c572c3f091c031c249c, - limb2: 0x1392711e1576aa6f, - limb3: 0x0 - } }, G1Point { x: u384 { - limb0: 0xb71f95ea692ed186e06e4c37, - limb1: 0x807276cd9cc59718bb11dbe9, - limb2: 0x10756a25836d67ca, - limb3: 0x0 + limb0: 0x20669ef12954f8e3bbc8b4d3, + limb1: 0x396a6f7243c27ce553121ee3, + limb2: 0x11438ca2ec259aed, + limb3: 0x0, }, y: u384 { - limb0: 0xd34211b3520c83c5f9be99af, - limb1: 0x8f19a28ceef67bbda102ffe7, - limb2: 0x7ac2b92030d351cc, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x411bb5d0fbe844f025c7178c, - limb1: 0xcf603787227b7ac499d6d1c4, - limb2: 0x5f6b2479862eb2f8, - limb3: 0x0 + limb0: 0xa560a5759c90985fde99aca0, + limb1: 0xc5b21186cc6dcd0421026513, + limb2: 0x21fb1f47c6ac55b3, + limb3: 0x0, }, - y: u384 { - limb0: 0xce60303cfcb98726ff64a1e5, - limb1: 0xa64534c614754b3527588d25, - limb2: 0x44f75e245622181, - limb3: 0x0 - } }, G1Point { x: u384 { - limb0: 0x8a703177da18d4ede707c057, - limb1: 0x7d6c11e754ab6fbe73deea43, - limb2: 0xdf9787168190a047, - limb3: 0x0 + limb0: 0x3c26f4ff476ab777dc184776, + limb1: 0xbccb2cba46cf421f11eb4d14, + limb2: 0x27ec44064c727a3d, + limb3: 0x0, }, y: u384 { - limb0: 0x2e6585ab5f125a34fef37875, - limb1: 0xb70e9f02ce7744197172a117, - limb2: 0x60e305f9fe6f2298, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x712f72f3929408ff68af059d, - limb1: 0x4f72cea12cd115dc1c8639f5, - limb2: 0xc6d5ae1b897ffe77, - limb3: 0x0 + limb0: 0xa893636703904fcbe984618c, + limb1: 0x73b210a224190b9b7b28784c, + limb2: 0x20f05486689dff6c, + limb3: 0x0, }, - y: u384 { - limb0: 0xfcf91f56bad0659142668837, - limb1: 0xa15458b49bcdad6c870e3889, - limb2: 0x81a1342e70b1b765, - limb3: 0x0 - } }, G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, ] .span(); let scalars = array![ u256 { low: 0x0, high: 0x0 }, u256 { - low: 0xeb2083e6ce164dba0ff18e0242af9fc3, high: 0x17e0aa3c03983ca8ea7e9d498c778ea6 - }, - u256 { - low: 0xb5d32b1666194cb1d71037d1b83e90ec, high: 0xa0116be5ab0c1681c8f8e3d0d3290a4c - }, - u256 { - low: 0xd3fbf47a7e5b1e7f9ca5499d004ae545, high: 0xbaf3897a3e70f16a55485822de1b372a - }, - u256 { - low: 0x101fbcccded733e8b421eaeb534097ca, high: 0x38c1962e9148624feac1c14f30e9c5cc - }, - u256 { - low: 0x247a8333f7b0b7d2cda8056c3d15eef7, high: 0x1759edc372ae22448b0163c1cd9d2b7d - }, - u256 { - low: 0xe005b86051ef1922fe43c49e149818d1, high: 0x7d41e602eece328bff7b118e820865d6 + low: 0x5a92118719c78df48f4ff31e78de5857, high: 0x28fcb26f9c6316b950f244556f25e2a2, }, u256 { - low: 0x4a84eb038d1fd9b74d2b9deb1beb3711, high: 0x552f233a8c25166a1ff39849b4e1357d + low: 0x8d723104f77383c13458a748e9bb17bc, high: 0x215ddba6dd84f39e71545a137a1d5006, }, u256 { - low: 0x3405095c8a5006c1ec188efbd080e66e, high: 0x8c1745a79a6a5f92cca74147f6be1f72 + low: 0xeb2083e6ce164dba0ff18e0242af9fc3, high: 0x5f82a8f03983ca8ea7e9d498c778ea6, }, ] .span(); let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 3 + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 5, ); assert!( res == G1Point { x: u384 { - limb0: 0x542a24ea2861f99b34558ddc, - limb1: 0x2270befabfe2cf2bb68e02d5, - limb2: 0x3d4bc15cc5f14624, - limb3: 0x0 + limb0: 0xdd8f608cce44f84812570bb4, + limb1: 0x1a14a31827612753a0030aa0, + limb2: 0x92f0e5ea352aed1, + limb3: 0x0, }, y: u384 { - limb0: 0xaccc8e62b811238c560a3feb, - limb1: 0xcdeb49d8cb97f767a9f8274d, - limb2: 0x7e34e8828ce7c455, - limb3: 0x0 - } - } + limb0: 0xb58c06876e2333cf38a0f096, + limb1: 0xbc1d90983cae6462c10cfeed, + limb2: 0x202c74ee1cf90bb5, + limb3: 0x0, + }, + }, ); } #[test] - fn test_msm_SECP256R1_10P() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - ] - .span(), - array![ - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - ] - .span(), - array![ - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - ] - .span(), - array![ - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - ] - .span(), - array![ - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - ] - .span() - ), - ] - .span() - ); + fn test_msm_GRUMPKIN_10P() { + let scalars_digits_decompositions = Option::None; let msm_hint = MSMHint { Q_low: G1Point { x: u384 { - limb0: 0x25d1a3c893718047539eb6e1, - limb1: 0x9b4041cff07fd2dbe9da2b60, - limb2: 0xd309a45be3d5092a, - limb3: 0x0 + limb0: 0x9dfcd92715b6222cbb098482, + limb1: 0xd3945047066b23989eb3b9e3, + limb2: 0x116d66e83f4b4495, + limb3: 0x0, }, y: u384 { - limb0: 0x30d69755292ed509791ee5a, - limb1: 0x5f4ea127722eae987f32fe53, - limb2: 0x591da7462a9198a5, - limb3: 0x0 - } + limb0: 0xfbf94312b77c49728e67e899, + limb1: 0x970271de43b7f68191de9797, + limb2: 0x1a988f8bf089fe6a, + limb3: 0x0, + }, }, Q_high: G1Point { x: u384 { - limb0: 0x2ae5492e7c640788f25d9247, - limb1: 0xe0c327d25b75d88ef0a263eb, - limb2: 0x6378fee63621654a, - limb3: 0x0 + limb0: 0x16b97231d5c9925069156e4d, + limb1: 0xdf3469ceab36997946976963, + limb2: 0x1fb5fa1943c43e59, + limb3: 0x0, }, y: u384 { - limb0: 0xfdd5c97a0eaaf1d76bc49ba9, - limb1: 0x6fc6dc7aa6a9ea75bbf1dbc, - limb2: 0xe0b69dabeddce211, - limb3: 0x0 - } + limb0: 0x8dbab6d460f7c22922c55eb8, + limb1: 0xddd8c23ff5d4a05087728205, + limb2: 0x29eb2a49e3284dae, + limb3: 0x0, + }, }, Q_high_shifted: G1Point { x: u384 { - limb0: 0x6e4319cf45817544b4bd3e70, - limb1: 0xf042dc4ac606cb47341d59f4, - limb2: 0xc01a1b2c3961b092, - limb3: 0x0 + limb0: 0x492c80f514e1a11f6b2b259e, + limb1: 0x458bc23a5411c8ce5922154b, + limb2: 0x51efbcd4e49ad5a, + limb3: 0x0, }, y: u384 { - limb0: 0xf5974a787c8b7db33323bc11, - limb1: 0x3d7dee392e99de8c61a5250d, - limb2: 0x8e1253c4a6653eb1, - limb3: 0x0 - } + limb0: 0xff461ad6ee2ad825beaa8216, + limb1: 0xc1b2fdb212af7469ee8b1721, + limb2: 0x3d032fcfa6958e9, + limb3: 0x0, + }, }, - SumDlogDivLow: FunctionFelt { + RLCSumDlogDiv: FunctionFelt { a_num: array![ u384 { - limb0: 0xbbef1ef74375bf6e321508f2, - limb1: 0x612f6c9eacfc00dbb0b21c2f, - limb2: 0x4f6f471d28ab92ed, - limb3: 0x0 + limb0: 0xac74a2c2e3b807cae77a89ef, + limb1: 0x33bd1d6afbf16cb134f45e2c, + limb2: 0x2df8379a8d2e05ec, + limb3: 0x0, + }, + u384 { + limb0: 0x2c104157862b6df41afbb636, + limb1: 0xdc7ce7062197c8517dd198a1, + limb2: 0x29d14b4a9229bda7, + limb3: 0x0, + }, + u384 { + limb0: 0x11eb702a84e0799bbe64b9cd, + limb1: 0x2fab5e40ff5b7390b61a2f96, + limb2: 0x50c095f019d0f8d, + limb3: 0x0, }, u384 { - limb0: 0x3e71aba46b0328810db6415b, - limb1: 0x5272c9947e0d0d55b2c063b0, - limb2: 0x14163c46ebfe2ee8, - limb3: 0x0 + limb0: 0x7322b2193ed97bc7d96ee0a7, + limb1: 0x1f2751a7963ef6adc9ad21f2, + limb2: 0x2ae4e6aa11d6698a, + limb3: 0x0, }, u384 { - limb0: 0x497b82436f2d26413ff0eb56, - limb1: 0x2974ab0bce18615157a3ae73, - limb2: 0xe928703f206c72eb, - limb3: 0x0 + limb0: 0xb3ec0e25cbac9550f3b7dc71, + limb1: 0xb51df9680976f5cae7a83421, + limb2: 0x3cc4bd5b2185ffb, + limb3: 0x0, }, u384 { - limb0: 0x3d6644b793254781597a1fd6, - limb1: 0xbf15492456403c66486b213e, - limb2: 0xf4e23dc89b4fbb8b, - limb3: 0x0 + limb0: 0xc16817779d29a7eed75e7780, + limb1: 0xa1998227aaa9277433ab957d, + limb2: 0x2f8e847094138684, + limb3: 0x0, }, u384 { - limb0: 0xf6b4eed587e3a350e7025cfe, - limb1: 0x1d6b7e8d8081e6e04b9ba8d4, - limb2: 0xa98ece60c92d45e, - limb3: 0x0 + limb0: 0x791244f1e74bcb88ad39471f, + limb1: 0x82bc48a6e0e0da34157bf095, + limb2: 0x173c9ec4775dbb71, + limb3: 0x0, }, u384 { - limb0: 0xa50f66b9e4c6419345b22244, - limb1: 0xbd7fe09d33a3bb6daa839237, - limb2: 0xde5f30509bda8387, - limb3: 0x0 + limb0: 0x1019a79c4a81cac0dc97548, + limb1: 0x67d6235b455f0378896c0d57, + limb2: 0x16afdd2b60518816, + limb3: 0x0, }, u384 { - limb0: 0xa10f4ed07830e92f29999d91, - limb1: 0xeee4da392f188ca09ed3b804, - limb2: 0xbd0be888de40aa45, - limb3: 0x0 + limb0: 0x12a858b153fd4e7c53d32a82, + limb1: 0xa8563eb1a8ca3f5d98228699, + limb2: 0x158449f0bf9fd72a, + limb3: 0x0, }, u384 { - limb0: 0x43717d9bb6ca660f21c149fa, - limb1: 0xfc3c2e32bace70a164b0b81c, - limb2: 0xf978310ae551acee, - limb3: 0x0 + limb0: 0xcac3edb4a41d91547568a4fd, + limb1: 0x7096d25800607392fd2b2304, + limb2: 0x5e2f534d11a11a0, + limb3: 0x0, }, u384 { - limb0: 0x3825e33a2c2d1009e71f9de4, - limb1: 0xfffffffffffffffea1ac2d3a, - limb2: 0xffffffff00000000, - limb3: 0x0 + limb0: 0xdb2dae1039671cd4fc43836d, + limb1: 0x5bd80edc2a817e97c3bb8f7d, + limb2: 0x2518efadcfdf74c6, + limb3: 0x0, }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), a_den: array![ u384 { - limb0: 0x9de719ad4fd61bd4f74e98f9, - limb1: 0xd2d79c6ea5b2d6d3a2ec7480, - limb2: 0xc5eec9345e20d89a, - limb3: 0x0 + limb0: 0x3004d2fcafd1230fa1db7885, + limb1: 0x23de6c8d3c6c6a9bd340d29f, + limb2: 0x18ffd03f447d8d80, + limb3: 0x0, + }, + u384 { + limb0: 0xefc87c2cbb85a3520334da1e, + limb1: 0x1c885705970ee7cedcc44eb3, + limb2: 0xada6b4f551e8a2e, + limb3: 0x0, + }, + u384 { + limb0: 0x37487e76b34a0b42c10a4c5a, + limb1: 0xc0dd5e49982ea25b015f0b09, + limb2: 0x220f8e4f032f56af, + limb3: 0x0, }, u384 { - limb0: 0xf797e460876a4e9c2ca8bda9, - limb1: 0xbfced2cb3239d4b685ed6831, - limb2: 0x5aaf309cf1e46efe, - limb3: 0x0 + limb0: 0x24c758e3c1ee7919d5a03c10, + limb1: 0x93bbb2bceb91f534f5c7553a, + limb2: 0x1845680f23bc3389, + limb3: 0x0, }, u384 { - limb0: 0xe481adf7f775b58943e55e63, - limb1: 0xd50a10d510b807d3a5135098, - limb2: 0x6db5dbbbfa5b1211, - limb3: 0x0 + limb0: 0x7d7b0e866e46079935589052, + limb1: 0xe75f8f709d43c461a477fc89, + limb2: 0x287482803c897f09, + limb3: 0x0, }, u384 { - limb0: 0xf3128a5699e1a96f6bd9274d, - limb1: 0xbdc6ec51d33edcd3f9f57cc3, - limb2: 0xef699843ac0c47d3, - limb3: 0x0 + limb0: 0x27ab4a01e3e65f79f3651a1e, + limb1: 0xddb9a5573f9b1b7f4c841148, + limb2: 0x244e9b75c053dfcf, + limb3: 0x0, }, u384 { - limb0: 0xcdf4c90ded5ddfb85cdd06a3, - limb1: 0x35eaf7c0444446de097ce548, - limb2: 0x7eaa8fd02b4dc997, - limb3: 0x0 + limb0: 0xe5c5151a700a84cd9f6b9490, + limb1: 0xcecb8fac0649e90174c670ba, + limb2: 0x9b3dfc95739384b, + limb3: 0x0, }, u384 { - limb0: 0x7212ce637bed458005063c7, - limb1: 0x1ad6da6d53036a80416d0b37, - limb2: 0x6fb0ce6e3f4aecbd, - limb3: 0x0 + limb0: 0x509d0f9ed97bda5e25570937, + limb1: 0xee242516971561a70800a43b, + limb2: 0x19238f90553881b4, + limb3: 0x0, }, u384 { - limb0: 0x6cddffe53e43b255adac1c9, - limb1: 0x9ee24da23c307cd0d14af253, - limb2: 0x504dfd90f2ad366f, - limb3: 0x0 + limb0: 0xe0a4d6b07c812590d369e9f8, + limb1: 0xe92244f1f7b608630b5de9cd, + limb2: 0x2f4ebad8a02172d1, + limb3: 0x0, }, u384 { - limb0: 0x9b8e0b6994805d7e801aa2c5, - limb1: 0x589952ab26ab70d01ce5319a, - limb2: 0x82f93548f29f4c90, - limb3: 0x0 + limb0: 0x6c3669f6b783e2d9c97e6baa, + limb1: 0xaeb9b793524e9a38a7bbe0a9, + limb2: 0x1e4169c4ef3e6459, + limb3: 0x0, }, u384 { - limb0: 0x740de5ce2b59f8b808d00b7, - limb1: 0x7a7e45d4e6e72e0699f760de, - limb2: 0x412cd75783e75e0d, - limb3: 0x0 + limb0: 0xa48791b611cbe11d8d1ac657, + limb1: 0xee39cfde9281e4eccd9e72ad, + limb2: 0x1bc9751e5a378ceb, + limb3: 0x0, }, u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), b_num: array![ u384 { - limb0: 0xc443868d526f587e4cf53dc9, - limb1: 0x26f55a9b27d688c64e4ac49c, - limb2: 0x3c0fba2519e60a7a, - limb3: 0x0 + limb0: 0x2156da4c71c603ed31d60826, + limb1: 0x945560e4e0e58b509605dc58, + limb2: 0x27fdc5c3621aaca4, + limb3: 0x0, }, u384 { - limb0: 0x45cfc5697b0a38f561d508c3, - limb1: 0xead7ff86467311b3e6a6212e, - limb2: 0x3664e4d6c196a999, - limb3: 0x0 + limb0: 0x70d1516872e60c63aa810484, + limb1: 0xa6db623a9d70fd7714332330, + limb2: 0x287009e73804f4e7, + limb3: 0x0, }, u384 { - limb0: 0xbcb8b88a14e3808baf78e780, - limb1: 0xb5de9053c8bd7febed0dab3d, - limb2: 0xa1af84db312604b2, - limb3: 0x0 + limb0: 0x7909e2463ef4ea0d095310c3, + limb1: 0xa458a1fdb6f51056e7c306df, + limb2: 0x54da99123228348, + limb3: 0x0, }, u384 { - limb0: 0xc853aae8263b1b5b2a13eac1, - limb1: 0xefaed08aa6550c384b317be6, - limb2: 0x86fb620943efcd19, - limb3: 0x0 + limb0: 0xbe7b3468432aee2b22443dd6, + limb1: 0xd53f94c2ee3f8df9721e6863, + limb2: 0x225842f0e0f02a9a, + limb3: 0x0, }, u384 { - limb0: 0xfb1b2a528382f283a6f17813, - limb1: 0xfdb495e83cd971558bd30473, - limb2: 0x1ffc0461f94bffce, - limb3: 0x0 + limb0: 0xe69b6231fe5756f621765c8c, + limb1: 0x7feb17c2440d00ea7fda1364, + limb2: 0x185465c10b0f3da9, + limb3: 0x0, }, u384 { - limb0: 0xbe54224438637379d45c0815, - limb1: 0x39b79c46cab0551445f81c55, - limb2: 0x5f0e86f407b272de, - limb3: 0x0 + limb0: 0xfa3f0d5dc91f613785efb5bf, + limb1: 0x115f4c7517dfb3616fbab01, + limb2: 0x1034eefa9977a3d, + limb3: 0x0, }, u384 { - limb0: 0x4911b616e2266167a20d25a1, - limb1: 0x1f5af0f4454df40213e11c21, - limb2: 0x154f0a12c3a0aab7, - limb3: 0x0 + limb0: 0x15eb5b5e659f1d5e4182d3d7, + limb1: 0x7105667a5313534bca7eaaea, + limb2: 0x11316173961119dd, + limb3: 0x0, }, u384 { - limb0: 0xeea678a6c68d4843aca2b5be, - limb1: 0x9cc7e76bbfb9df5eedc4f1ac, - limb2: 0x1b121cf4c1e1c3c7, - limb3: 0x0 + limb0: 0xe061eafade1bf05e783f3f76, + limb1: 0x7efc7ed46abdd72441961640, + limb2: 0x108e0f85e34a24b, + limb3: 0x0, }, u384 { - limb0: 0x7b39ca45c217b058a2dd75eb, - limb1: 0xbabfe6e7c0dfc449908518be, - limb2: 0x599d5f0e3414c657, - limb3: 0x0 + limb0: 0x2cd7ad84558507429f2bf35f, + limb1: 0xe228c36926cc0b22067fd1c4, + limb2: 0xe865bd1e9bfbad7, + limb3: 0x0, }, u384 { - limb0: 0x2e30eb2180037345613f86ea, - limb1: 0x82fa4401c6a3f965b7885d20, - limb2: 0xa2c34470ab21ee11, - limb3: 0x0 + limb0: 0x8da5b0113027a11fdea68175, + limb1: 0x997e8e33b98f425d8378ca3d, + limb2: 0x274d36464591c81b, + limb3: 0x0, }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ u384 { - limb0: 0x9977b50c23c8a146910864de, - limb1: 0x7a49a918c4f5ff2f3179f04a, - limb2: 0xab4d4bb7c9cf5ad6, - limb3: 0x0 + limb0: 0xf7a9f1cc893536e34e63133a, + limb1: 0x25e69a87690868936a3438a8, + limb2: 0x25d1eafc626ecf20, + limb3: 0x0, }, u384 { - limb0: 0x332f6ba785d9705282e7179a, - limb1: 0xd36b474efb83be786814af1c, - limb2: 0xd0532faef20d3d04, - limb3: 0x0 + limb0: 0x825638c005439e8cf8646ef9, + limb1: 0x5c814ed8f3471571bfb97b7, + limb2: 0x11ae3b0c1d5cba3c, + limb3: 0x0, }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + ] + .span(), + b_den: array![ u384 { - limb0: 0x80accc32cf2637519c89ac64, - limb1: 0xb1b6e5a104f1b9600b250adc, - limb2: 0x6ec90b8255b39a06, - limb3: 0x0 + limb0: 0x1732f253b60e4e29b06cff34, + limb1: 0x190d3e098a5906ed62852dfa, + limb2: 0xa89edd65e683bf5, + limb3: 0x0, }, u384 { - limb0: 0xbd6af830be5795f1679043e2, - limb1: 0x20cba5ccf6ffaff80a21ae34, - limb2: 0xaae40944cc6792a4, - limb3: 0x0 + limb0: 0xfa95834c9ba7fddd897d8406, + limb1: 0xfc334f7afe07fcb7f7c6672e, + limb2: 0x9101986ddbf5396, + limb3: 0x0, }, u384 { - limb0: 0xe0291dcf0c8062875511e565, - limb1: 0xb1a9833830e450cd0448baa6, - limb2: 0xe375254365fafacb, - limb3: 0x0 + limb0: 0x8e0e0ed46acc3806e50ee12, + limb1: 0xd51001aaf6f75c52cb1f27c9, + limb2: 0x1ab3a23582ec048, + limb3: 0x0, }, u384 { - limb0: 0xe9a96a163feff87ce31ec62a, - limb1: 0xbb893cef1658afc8a4c69041, - limb2: 0xc12be578b2ca5857, - limb3: 0x0 + limb0: 0x64ce0f831ecba8be2377b7e, + limb1: 0xcf3a016c25473d5dead7544f, + limb2: 0x2feaa947cfbcc2d4, + limb3: 0x0, }, u384 { - limb0: 0x3601493d3e8848ba63df5bb6, - limb1: 0x37f6d0750b0815bea8926db7, - limb2: 0x6b323e78f1dcb783, - limb3: 0x0 + limb0: 0x42c0ad311f3a903c985344ba, + limb1: 0xd393a0863aa1b26b23a33d89, + limb2: 0x9a0b13a0b3dccd, + limb3: 0x0, }, u384 { - limb0: 0x302fca756441f1a76f13a78f, - limb1: 0xcc2c4192030ba6fd4e8cea82, - limb2: 0x5ff4fc3f38ac1fac, - limb3: 0x0 + limb0: 0xc3534bb703772cacc7539069, + limb1: 0x639cedc2f2734ba1f73cb0ec, + limb2: 0x2def3752ad229c00, + limb3: 0x0, }, u384 { - limb0: 0x523dda5e2042a721e21346af, - limb1: 0xe30a9d92a62cc100cb60a540, - limb2: 0x7bcb314026713a75, - limb3: 0x0 + limb0: 0x4fdd43d61ce1882e0f7b5e83, + limb1: 0x127f974052d8533ad3591aa, + limb2: 0x4807708fc8456fe, + limb3: 0x0, }, u384 { - limb0: 0xbd5ef5dde79198c101061fee, - limb1: 0xe3533978fe1379796881d66a, - limb2: 0xe78dad621131b02f, - limb3: 0x0 + limb0: 0xf0d889841c1c33f83a90f3b3, + limb1: 0xd97b46a4a0e30b335e0c56dc, + limb2: 0x3a6d819d55e353, + limb3: 0x0, }, u384 { - limb0: 0x9b8e0b6994805d7e801aa2c2, - limb1: 0x589952ab26ab70d01ce5319a, - limb2: 0x82f93548f29f4c90, - limb3: 0x0 + limb0: 0xd850115ddd723a1ae95c90b6, + limb1: 0xe7776cade49a12be0e860f23, + limb2: 0x6591a413135427a, + limb3: 0x0, }, u384 { - limb0: 0x740de5ce2b59f8b808d00b7, - limb1: 0x7a7e45d4e6e72e0699f760de, - limb2: 0x412cd75783e75e0d, - limb3: 0x0 + limb0: 0xf11fe1f62afe01b28e066e51, + limb1: 0x1fe95dbb1fa0773f0b878097, + limb2: 0x1bab38a521367022, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ u384 { - limb0: 0x71ee10f44ec4c17fdff5d8a7, - limb1: 0x803f7e627804a67f24ac706a, - limb2: 0x588e2be0c25ee5d6, - limb3: 0x0 + limb0: 0x24dac83451c57f2f268fdd7a, + limb1: 0x4f70106feb82a190f2821988, + limb2: 0x24add909237867ab, + limb3: 0x0, }, u384 { - limb0: 0xdb6e709e0d189635f34f20da, - limb1: 0x8fc7e332405f723794e937c1, - limb2: 0x1eb88f2d00fb3fa3, - limb3: 0x0 + limb0: 0xe0a4d6b07c812590d369e9e7, + limb1: 0xe92244f1f7b608630b5de9cd, + limb2: 0x2f4ebad8a02172d1, + limb3: 0x0, }, u384 { - limb0: 0xfb90c6db93507b85f1f590f1, - limb1: 0x64b0afdf8a4f88aa2e5efaf5, - limb2: 0xf6b101cb96b98771, - limb3: 0x0 + limb0: 0x6c3669f6b783e2d9c97e6baa, + limb1: 0xaeb9b793524e9a38a7bbe0a9, + limb2: 0x1e4169c4ef3e6459, + limb3: 0x0, }, u384 { - limb0: 0x374113178ea132c918a64a28, - limb1: 0xdb87ef86910294a57f7b47e3, - limb2: 0x90696f74517ef2ce, - limb3: 0x0 - }, - u384 { - limb0: 0x7bb76751c64ecb2f8ac452d6, - limb1: 0xa5defa086613168828dd05bb, - limb2: 0x85953c080e4e8b0d, - limb3: 0x0 - }, - u384 { - limb0: 0x8dc360a3f04839a525c53f14, - limb1: 0x142dfe3a2a60d8cdfdae5350, - limb2: 0x3dc795fc6059e2cc, - limb3: 0x0 - }, - u384 { - limb0: 0xc3864b507a69918881c20371, - limb1: 0xb385d4ee05fadf10d2066fd0, - limb2: 0xbe9dd85f63aa59a7, - limb3: 0x0 - }, - u384 { - limb0: 0xda50308b2356d301f09495e2, - limb1: 0x2b9303444a112fe967ad48ca, - limb2: 0xd8b04a7325b13c60, - limb3: 0x0 - }, - u384 { - limb0: 0x3421ab33b87bd3386bb8c039, limb1: 0x852d4ebf, limb2: 0x0, limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { - limb0: 0xe18f2e9aee69ec9e4ba239e1, - limb1: 0x667442b46f224b36f90ad3cd, - limb2: 0x332c18c89615fbe5, - limb3: 0x0 - }, - u384 { - limb0: 0xa8b56cfa0fac74e9f552535d, - limb1: 0x3748e578838a3a016133992f, - limb2: 0x7a36aedde726ff3e, - limb3: 0x0 - }, - u384 { - limb0: 0xfb617366a853f56f572a5c4c, - limb1: 0x1e9e91bb356f541a9c96df5e, - limb2: 0xf7aafbab58b01281, - limb3: 0x0 - }, - u384 { - limb0: 0x7a02d9bee74ac2beff067361, - limb1: 0xc5ccb9e158cbbf7fcbc514c5, - limb2: 0xf632b3952b267fd1, - limb3: 0x0 - }, - u384 { - limb0: 0x69ca836024bf51f3547e2972, - limb1: 0x4178fb6931cb470c590a43df, - limb2: 0xf2a9e058d14fdf1, - limb3: 0x0 - }, - u384 { - limb0: 0xffc791928eafe8f393ebec8c, - limb1: 0xa78c8d2d1c58dc1ec7cd631, - limb2: 0x91a3db83988045b3, - limb3: 0x0 - }, - u384 { - limb0: 0x7d166c3c6a7f67b71622d443, - limb1: 0xa09544deab27d9c91bbda31, - limb2: 0x85f6920a36fafed1, - limb3: 0x0 - }, - u384 { - limb0: 0xe0ccdcc6b1877e8fa2653bcf, - limb1: 0x74d519ab32a9bf5b44d51f6a, - limb2: 0x4c58a3045e0b7572, - limb3: 0x0 - }, - u384 { - limb0: 0x22d38f6f9c31849e1ce2551, - limb1: 0x34fb5fd27bf12853932f2853, - limb2: 0xb0bd7ccd319b01ed, - limb3: 0x0 + limb0: 0xa48791b611cbe11d8d1ac657, + limb1: 0xee39cfde9281e4eccd9e72ad, + limb2: 0x1bc9751e5a378ceb, + limb3: 0x0, }, u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0xf06b0a1f2db1d67a476c3f8c, - limb1: 0xd74789b3472999853db83cc7, - limb2: 0x621e9b427aad00e5, - limb3: 0x0 - }, - u384 { - limb0: 0xee7a39e0ab759333f9cfa512, - limb1: 0x26f90265e9ea236508526e09, - limb2: 0x123c45d5cfe23f1e, - limb3: 0x0 - }, - u384 { - limb0: 0xb0adb1cee0c42666c020f30f, - limb1: 0xf6b92fb3960f3fee16d57e0b, - limb2: 0x16eb691fa123420b, - limb3: 0x0 - }, - u384 { - limb0: 0x70e428238fcdf9942c6ab1e4, - limb1: 0xc2e7a3b1dd50cbf0b6c8bd4e, - limb2: 0x4fd6084215740bd8, - limb3: 0x0 - }, - u384 { - limb0: 0x8f6a65b552f29d2c46d4bf6e, - limb1: 0xaa595df23414e0313d14ae95, - limb2: 0x955e2b8a930b599a, - limb3: 0x0 - }, - u384 { - limb0: 0x45443f003b27fbddd01a31bd, - limb1: 0x970a24201394f9290a8b4c01, - limb2: 0xe943f9cb109e81c5, - limb3: 0x0 - }, - u384 { - limb0: 0x48c8d652374a0ba5ca474529, - limb1: 0x3df560b1dae950a3c4c708bb, - limb2: 0x820b2b85a6daa745, - limb3: 0x0 - }, - u384 { - limb0: 0x4eadbe3bacc6f940979f2d5e, - limb1: 0x982aa108eae69c10af27ce73, - limb2: 0x2dffc04d4dd3ff0a, - limb3: 0x0 - }, - u384 { - limb0: 0x61079eeb41a87c7d0cac8ac5, - limb1: 0x4cc95ace6aa5aa3b69c4a0cb, - limb2: 0x6ba0883aff75e302, - limb3: 0x0 - }, - u384 { - limb0: 0x7337e831643e33f6136f8700, - limb1: 0xf1de3e20b1d77395396674c9, - limb2: 0x15e4338c30ed291a, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { - limb0: 0xd3511d7c1ff45bb7cf3e78ff, - limb1: 0x5c74cd554a26360df12ee2f6, - limb2: 0x72d240e6ccdfec72, - limb3: 0x0 - }, - u384 { - limb0: 0xbd1d3a28f1867aebf09e2968, - limb1: 0x6db6f42a3efa0581cc1e1c7f, - limb2: 0xe36b2512f8e0a0c9, - limb3: 0x0 - }, - u384 { - limb0: 0xcd0c55c8ef619ff43f81248c, - limb1: 0x1b235a8fa5d2f54e2e7e00a7, - limb2: 0xc0ad1130f2d62c55, - limb3: 0x0 - }, - u384 { - limb0: 0xf6ac89322f5feae4dbba5f00, - limb1: 0x63429a711eb262dfb3763343, - limb2: 0xea0431351ad22b3d, - limb3: 0x0 - }, - u384 { - limb0: 0xf23a325459c9e1df5b3774af, - limb1: 0x41c7f62ed6df4b5de787925, - limb2: 0xf6abea0e82b17b56, - limb3: 0x0 - }, - u384 { - limb0: 0xf26df36b54314b96f11e2e2, - limb1: 0xee97eef8ac35105c095aaaec, - limb2: 0xcb71da41b26ceb29, - limb3: 0x0 - }, - u384 { - limb0: 0xb025e7f064804cd1720cccaf, - limb1: 0xbf14bd2777d7ad5524e1f6ce, - limb2: 0x6b9432c401b4adbb, - limb3: 0x0 - }, - u384 { - limb0: 0xb7e85790374ac034dd12303d, - limb1: 0x66bef997916d47a3a44d90d4, - limb2: 0x559927ab78cbb383, - limb3: 0x0 - }, - u384 { - limb0: 0xfe40f49aec5e112b1e424c, - limb1: 0xd1695c06cfb5f929119707c, - limb2: 0x3678159b4c9132bf, - limb3: 0x0 - }, - u384 { - limb0: 0x42e2724db9045b17988ac499, - limb1: 0x1f02f22bed778b5e3d4b67eb, - limb2: 0xce8451794c648cf3, - limb3: 0x0 - }, - u384 { - limb0: 0xe0ccdcc6b1877e8fa2653bcc, - limb1: 0x74d519ab32a9bf5b44d51f6a, - limb2: 0x4c58a3045e0b7572, - limb3: 0x0 - }, - u384 { - limb0: 0x22d38f6f9c31849e1ce2551, - limb1: 0x34fb5fd27bf12853932f2853, - limb2: 0xb0bd7ccd319b01ed, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ - u384 { - limb0: 0xcc6d355de177e27133a20d6e, - limb1: 0x35db921e88ad2f8a22d44244, - limb2: 0x1342255b8e75d9d1, - limb3: 0x0 - }, - u384 { - limb0: 0x5784a91a5e09d24e7c4a2665, - limb1: 0x7fffffffffffffff7c074594, - limb2: 0x7fffffff80000000, - limb3: 0x0 - } - ] - .span(), - a_den: array![ - u384 { - limb0: 0xd358addd9e230def4c9aff10, - limb1: 0xc69672db3d3ea241f4380be6, - limb2: 0xa5a08c3334ad0876, - limb3: 0x0 - }, - u384 { - limb0: 0x66d79d023e1a833258e52f47, - limb1: 0x2ef9fbe2de835c29db404222, - limb2: 0xdc6ce5eb907cea24, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - b_num: array![ - u384 { - limb0: 0x33b085706efb55725771b8b1, - limb1: 0xa96603460d28b7f8fe4edd41, - limb2: 0xe0bee2c2afe81ea5, - limb3: 0x0 - }, - u384 { - limb0: 0x6953f1803a5b22ea9cab2ac5, - limb1: 0xc8f3cc52e024af2bcd589bbc, - limb2: 0xd7dfbeca6af373a0, - limb3: 0x0 - }, - u384 { - limb0: 0x7334d4d17c8174f0b543bf4e, - limb1: 0xb66c581b0a6781ea58f96e9f, - limb2: 0x3a526c7a805ad18d, - limb3: 0x0 - } - ] - .span(), - b_den: array![ - u384 { - limb0: 0xb1d18cadf44ec593271a40f2, - limb1: 0xead7c19874ebe089319afa06, - limb2: 0x9f4c0ab0b2f262b7, - limb3: 0x0 - }, - u384 { - limb0: 0x8371cb2425920d6219e42401, - limb1: 0xb379af25ae08861a7559626f, - limb2: 0xb5e2b140597b20a5, - limb3: 0x0 - }, - u384 { - limb0: 0x97ccd9ef817eb2a71d22d273, - limb1: 0x26fdc9acdb0e723ed35c404c, - limb2: 0xc57f8412f8c3d57e, - limb3: 0x0 - }, - u384 { - limb0: 0xd358addd9e230def4c9aff0d, - limb1: 0xc69672db3d3ea241f4380be6, - limb2: 0xa5a08c3334ad0876, - limb3: 0x0 - }, - u384 { - limb0: 0x66d79d023e1a833258e52f47, - limb1: 0x2ef9fbe2de835c29db404222, - limb2: 0xdc6ce5eb907cea24, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() }, }; let derive_point_from_x_hint = DerivePointFromXHint { y_last_attempt: u384 { - limb0: 0x77673e35d1c88ab8873dd798, - limb1: 0x9f95c93fc237eb0a09a50865, - limb2: 0x3c58cf513216206e, - limb3: 0x0 + limb0: 0xf740cf3833dbafd6d6baee48, + limb1: 0x4a12ed77229700a79166872c, + limb2: 0x6b87b91ce1ff08c, + limb3: 0x0, }, g_rhs_sqrt: array![ u384 { - limb0: 0x66c144d07ecd47509d5dd2ff, - limb1: 0x4ab379cf8f2065c9d8d90df4, - limb2: 0x1a33b2f04e67195c, - limb3: 0x0 - }, - u384 { - limb0: 0x3c03af3320a36e9ad2d72344, - limb1: 0xa80cfe034b4d57641ef44431, - limb2: 0x3cf2ee6957b3bebf, - limb3: 0x0 - }, - u384 { - limb0: 0x51c10b36a102451f763091d7, - limb1: 0x20d036ae73bf378c0d676a1, - limb2: 0x354d8fa3a917a404, - limb3: 0x0 + limb0: 0x40bcce2f9a29e91035b96217, + limb1: 0xec48e3cddc5674b77b1c672d, + limb2: 0x1ea02af609bb028, + limb3: 0x0, }, - u384 { - limb0: 0x81e37773d9204a0f71de8b79, - limb1: 0x22708c5206e1ff3c3ca2c760, - limb2: 0x691859efe8ef449a, - limb3: 0x0 - }, - u384 { - limb0: 0x79fb95f225bcde6bd6242c6c, - limb1: 0x605fef7fc623b668086aa1ca, - limb2: 0x4d9150ed646d9cf4, - limb3: 0x0 - } ] .span(), }; let points = array![ G1Point { x: u384 { - limb0: 0x113c8d620e3745e45e4389b8, - limb1: 0x85b8ff52d905fd02fe191c3f, - limb2: 0xf5d132d685201517, - limb3: 0x0 + limb0: 0x86b402ce02e7c7ca81f13d51, + limb1: 0x39493672733a9289a36020c1, + limb2: 0x7f40d91dc5413d3, + limb3: 0x0, }, y: u384 { - limb0: 0x60c0ba1b358f375b2362662e, - limb1: 0x6abfc829d93e09aa5174ec04, - limb2: 0x7bc4637aca93cb5a, - limb3: 0x0 - } + limb0: 0x371e7b6a5c01505bd4334e81, + limb1: 0x2f596ae4492a87c66f7bda1a, + limb2: 0x9dffb4dcdb94df9, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0xd3ff147ff0ee4213f51f677d, - limb1: 0x431366a7732a6e4a6b942255, - limb2: 0x9fe743b25d39a591, - limb3: 0x0 + limb0: 0x20669ef12954f8e3bbc8b4d3, + limb1: 0x396a6f7243c27ce553121ee3, + limb2: 0x11438ca2ec259aed, + limb3: 0x0, }, y: u384 { - limb0: 0x7f8bb562ff60a902ef14bcb0, - limb1: 0xeb9420089fa531db62e806a6, - limb2: 0xfd028df433dfd5cc, - limb3: 0x0 - } + limb0: 0xa560a5759c90985fde99aca0, + limb1: 0xc5b21186cc6dcd0421026513, + limb2: 0x21fb1f47c6ac55b3, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0x46ae31f6fc294ad0814552b6, - limb1: 0x2d54cc811efaf988efb3de23, - limb2: 0x2a2cc02b8f0c419f, - limb3: 0x0 + limb0: 0x3c26f4ff476ab777dc184776, + limb1: 0xbccb2cba46cf421f11eb4d14, + limb2: 0x27ec44064c727a3d, + limb3: 0x0, }, y: u384 { - limb0: 0xaec889b9d8ce51c4a2c3586f, - limb1: 0xa2b07874c333bfee9f78e13e, - limb2: 0xc445de21be8d8709, - limb3: 0x0 - } + limb0: 0xa893636703904fcbe984618c, + limb1: 0x73b210a224190b9b7b28784c, + limb2: 0x20f05486689dff6c, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0x7e47d1c2d19c21b2f6870259, - limb1: 0xe701b40af42001c38bca00db, - limb2: 0xd87ea1720d4dd3d6, - limb3: 0x0 + limb0: 0x74f2a24c1853d803c1b9e310, + limb1: 0x9e78bb9233603b686b9d27, + limb2: 0x1d13a84fbcd96e81, + limb3: 0x0, }, y: u384 { - limb0: 0x5b1d6cc74985ce49a1f737fe, - limb1: 0xb9127c572c3f091c031c249c, - limb2: 0x1392711e1576aa6f, - limb3: 0x0 - } + limb0: 0xe5bc08950f2f1accd92245f4, + limb1: 0x3b653bbe7b6cfd9074b07f89, + limb2: 0x1638a8a07b89463b, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0xb71f95ea692ed186e06e4c37, - limb1: 0x807276cd9cc59718bb11dbe9, - limb2: 0x10756a25836d67ca, - limb3: 0x0 + limb0: 0x549a4dee31909bd274709d7c, + limb1: 0x2628a928b4ed90e98d5de1f, + limb2: 0x1f2c2eeb200495b, + limb3: 0x0, }, y: u384 { - limb0: 0xd34211b3520c83c5f9be99af, - limb1: 0x8f19a28ceef67bbda102ffe7, - limb2: 0x7ac2b92030d351cc, - limb3: 0x0 - } + limb0: 0xbae71f4f781675cce1119290, + limb1: 0x18995b20b8d0966bac7f5c23, + limb2: 0x1f7a255155ab7785, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0x411bb5d0fbe844f025c7178c, - limb1: 0xcf603787227b7ac499d6d1c4, - limb2: 0x5f6b2479862eb2f8, - limb3: 0x0 + limb0: 0x616d2877cb47206e625b0076, + limb1: 0xa7255531af3575b0a682d6df, + limb2: 0xdd4a0db8187661d, + limb3: 0x0, }, y: u384 { - limb0: 0xce60303cfcb98726ff64a1e5, - limb1: 0xa64534c614754b3527588d25, - limb2: 0x44f75e245622181, - limb3: 0x0 - } + limb0: 0xea99c54030edacb739c9ad0f, + limb1: 0x1e2e84792f7a12b330406ecd, + limb2: 0x70f1e1a9673a240, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0x8a703177da18d4ede707c057, - limb1: 0x7d6c11e754ab6fbe73deea43, - limb2: 0xdf9787168190a047, - limb3: 0x0 + limb0: 0x4ca9473b8cae66da0baf8eca, + limb1: 0x9ca627187edabffeb80da281, + limb2: 0xda800cad866dc3c, + limb3: 0x0, }, y: u384 { - limb0: 0x2e6585ab5f125a34fef37875, - limb1: 0xb70e9f02ce7744197172a117, - limb2: 0x60e305f9fe6f2298, - limb3: 0x0 - } + limb0: 0x6dcd62554ccd88a00f3e90b3, + limb1: 0x141b8118cd6873dc9ac01a64, + limb2: 0x19146bc96fa6a4bd, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0x712f72f3929408ff68af059d, - limb1: 0x4f72cea12cd115dc1c8639f5, - limb2: 0xc6d5ae1b897ffe77, - limb3: 0x0 + limb0: 0xd21eca6170588371cf0fef12, + limb1: 0x2aae89b6d1784d7fe5d6f233, + limb2: 0x2fa67b7cd137898c, + limb3: 0x0, }, y: u384 { - limb0: 0xfcf91f56bad0659142668837, - limb1: 0xa15458b49bcdad6c870e3889, - limb2: 0x81a1342e70b1b765, - limb3: 0x0 - } + limb0: 0xb20856046d39da92c0a6898a, + limb1: 0xc9dba030db3ed937e781ae4d, + limb2: 0x695a8c76fb0f771, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0x461d7579f9613d3168fc6220, - limb1: 0x7626024a6195fe0eafcea08b, - limb2: 0x32e91b268a032443, - limb3: 0x0 + limb0: 0x919e8724022c5bd17875261b, + limb1: 0x3a2b09cc9362be43a8573a0, + limb2: 0x2cf4abb949016ad7, + limb3: 0x0, }, y: u384 { - limb0: 0xcdc7ae298071a741aafd4035, - limb1: 0x9a9bdfbdb824dc1278457a10, - limb2: 0x17fbec3713dfd145, - limb3: 0x0 - } + limb0: 0x89062bf5adf784b526337420, + limb1: 0xf710d8fb0beb9551fe0e08f3, + limb2: 0x1577b6c8f024c52d, + limb3: 0x0, + }, }, G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, ] .span(); let scalars = array![ u256 { low: 0x0, high: 0x0 }, u256 { - low: 0xb5d32b1666194cb1d71037d1b83e90ec, high: 0xa0116be5ab0c1681c8f8e3d0d3290a4c + low: 0x247a8333f7b0b7d2cda8056c3d15eef7, high: 0x5d67b7072ae22448b0163c1cd9d2b7d, }, u256 { - low: 0xd3fbf47a7e5b1e7f9ca5499d004ae545, high: 0xbaf3897a3e70f16a55485822de1b372a + low: 0xe005b86051ef1922fe43c49e149818d1, high: 0x1f507980eece328bff7b118e820865d6, }, u256 { - low: 0x101fbcccded733e8b421eaeb534097ca, high: 0x38c1962e9148624feac1c14f30e9c5cc + low: 0x4a84eb038d1fd9b74d2b9deb1beb3711, high: 0x154bc8ce8c25166a1ff39849b4e1357d, }, u256 { - low: 0x247a8333f7b0b7d2cda8056c3d15eef7, high: 0x1759edc372ae22448b0163c1cd9d2b7d + low: 0x3405095c8a5006c1ec188efbd080e66e, high: 0x2305d1699a6a5f92cca74147f6be1f72, }, u256 { - low: 0xe005b86051ef1922fe43c49e149818d1, high: 0x7d41e602eece328bff7b118e820865d6 + low: 0x1775336d71eacd0549a3e80e966e1277, high: 0x144a7edf6288e1a5cc45782198a6416d, }, u256 { - low: 0x4a84eb038d1fd9b74d2b9deb1beb3711, high: 0x552f233a8c25166a1ff39849b4e1357d + low: 0x2f1205544a5308cc3dfabc08935ddd72, high: 0x21c38572fcd81b5d24bace4307bf326, }, u256 { - low: 0x3405095c8a5006c1ec188efbd080e66e, high: 0x8c1745a79a6a5f92cca74147f6be1f72 + low: 0x42930b33a81ad477fb3675b89cdeb3e6, high: 0x2b70369e16febaa011af923d79fdef7c, }, u256 { - low: 0x1775336d71eacd0549a3e80e966e1277, high: 0x5129fb7c6288e1a5cc45782198a6416d + low: 0x2648ee38e07405eb215663abc1f254b8, high: 0x522c9d6d7ab792809e469e6ec62b2c8, }, u256 { - low: 0x2f1205544a5308cc3dfabc08935ddd72, high: 0x870e15c2fcd81b5d24bace4307bf326 + low: 0x85940927468ff53d864a7a50b48d73f1, high: 0xdc5dba1d977e9933c49d76fcfc6e625, }, ] .span(); let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 3 + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 5, ); assert!( res == G1Point { x: u384 { - limb0: 0x617117bf1151fd79fc71b779, - limb1: 0x4e2f6459c4115850de36db63, - limb2: 0x3e7e9f9d44a05b03, - limb3: 0x0 + limb0: 0x5bffd2a2faf5d4a0c935d50c, + limb1: 0x4084090271d00764d84b3590, + limb2: 0x20a4daac223feb77, + limb3: 0x0, }, y: u384 { - limb0: 0xf05f55006d626fa5d91a695d, - limb1: 0xd2cf263e6037971f0c923d96, - limb2: 0x5cffe1dc97fa2157, - limb3: 0x0 - } - } + limb0: 0x5203a8edfe99a9265bfa3dee, + limb1: 0x69203f1c5320e35ca80b2090, + limb2: 0x2e2f28500b094e1d, + limb3: 0x0, + }, + }, ); } #[test] - fn test_msm_SECP256R1_11P() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - ] - .span(), - array![ - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - ] - .span(), - array![ - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - ] - .span(), - array![ - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - ] - .span(), - array![ - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - ] - .span(), - array![ - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - ] - .span(), - array![ - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - ] - .span() - ), - ] - .span() - ); + fn test_msm_GRUMPKIN_11P() { + let scalars_digits_decompositions = Option::None; let msm_hint = MSMHint { Q_low: G1Point { x: u384 { - limb0: 0x396217fb094172485ed71701, - limb1: 0x86d8b0c7d1a5e4c7a5f9bc6d, - limb2: 0x71f625cb03b8ef6e, - limb3: 0x0 + limb0: 0x37243e17b19c5ae4501ece31, + limb1: 0xfc13e3ef3c2d5605613146e6, + limb2: 0x1dc6a0e8ab0189de, + limb3: 0x0, }, y: u384 { - limb0: 0xe98177c6d14f501e14485170, - limb1: 0x1a7ca5a7ace37e332a4c11f6, - limb2: 0x983fcff92b02e21, - limb3: 0x0 - } + limb0: 0x5a82fd507de47e929ea6cb37, + limb1: 0x9391446bbd2773952a6649ca, + limb2: 0x4afdf8374d166b3, + limb3: 0x0, + }, }, Q_high: G1Point { x: u384 { - limb0: 0xb2a7ea53b9538de66e7e743, - limb1: 0xd60f5b3e71a8f46db68ceef2, - limb2: 0x9c1ad67a074850c, - limb3: 0x0 + limb0: 0x328fbcfc7cae89b5c5fa4257, + limb1: 0xb1e9494927ed755e4d392933, + limb2: 0x2590494945eb8046, + limb3: 0x0, }, y: u384 { - limb0: 0x2dd4f91dabff063662e0d3a3, - limb1: 0xf06ae0503f3f8ea7bde84f8e, - limb2: 0x5e760d2ef3c9e447, - limb3: 0x0 - } + limb0: 0xa0aa4dbec89f522c15d53a9c, + limb1: 0xfef9a4cd94f4a608443a99ec, + limb2: 0x2cde3d7d5e8ed3a4, + limb3: 0x0, + }, }, Q_high_shifted: G1Point { x: u384 { - limb0: 0x2f71d6eb303b3bf480fc702d, - limb1: 0x68910d569e6682c2fa1032ee, - limb2: 0x82845286591c8fd2, - limb3: 0x0 + limb0: 0x115cd91340716f078055dddb, + limb1: 0x54ee1a8df9774ca8c7a346fe, + limb2: 0x2841bb0bd2eb6b5d, + limb3: 0x0, }, y: u384 { - limb0: 0x73d8aa453b7a7f95d4951130, - limb1: 0x73e64c911c98638f780f7279, - limb2: 0xee21dbae9f50d5d7, - limb3: 0x0 - } + limb0: 0x95a7710a3d1483bcd6242af2, + limb1: 0x74b72028d41b6280f8685d53, + limb2: 0xe324254b42ffbe9, + limb3: 0x0, + }, }, - SumDlogDivLow: FunctionFelt { + RLCSumDlogDiv: FunctionFelt { a_num: array![ u384 { - limb0: 0x5e17612e442ca0eec2232748, - limb1: 0x45d67c1513c63832254222b7, - limb2: 0xb9d9dca53f12029a, - limb3: 0x0 + limb0: 0xb03c86f66ef15aa5d1de3be1, + limb1: 0xb21d48bae45c900613146ea7, + limb2: 0x1b580c766f86c7e9, + limb3: 0x0, + }, + u384 { + limb0: 0x7d3f13fbfe85b72a001fc3e4, + limb1: 0xc2f14c79617f4678e6bc631, + limb2: 0x2fed4d8c3a646908, + limb3: 0x0, }, u384 { - limb0: 0xbc599d6e2fc58549d2024592, - limb1: 0x9c520dd5fd1654f42eb13dbf, - limb2: 0xcf755b8de8b25949, - limb3: 0x0 + limb0: 0x71e581beb80344247eb417b7, + limb1: 0xe3a56b660ecf8feb921ac1aa, + limb2: 0x17986837f774f894, + limb3: 0x0, }, u384 { - limb0: 0x136c32049a4130e8df2fed80, - limb1: 0xcaa00f638258411189e26b39, - limb2: 0xc596eb4fd0e5bb3f, - limb3: 0x0 + limb0: 0xe614aef6772c33ced471c504, + limb1: 0x54fd0631acd5439ceee49f5d, + limb2: 0x58228a1eb97d36c, + limb3: 0x0, }, u384 { - limb0: 0x398a6af230379c88f6a124a8, - limb1: 0xc9c5d6faed0e20b3a1e470ca, - limb2: 0xd0c35fb1a680bed1, - limb3: 0x0 + limb0: 0x84d394b6603ef0550904c9aa, + limb1: 0xda509dc247e2f7b7864b1745, + limb2: 0x1a482d1b15b97f64, + limb3: 0x0, }, u384 { - limb0: 0x6c680bf01af81989c8e68700, - limb1: 0xd802a04b887c1eac21701c03, - limb2: 0x1426f17d1a795544, - limb3: 0x0 + limb0: 0x483b92edd910f231076c5045, + limb1: 0x56e05ae29ed6e5feba697eff, + limb2: 0x828e2d10a6ed754, + limb3: 0x0, }, u384 { - limb0: 0xf71dd3228fcf87eb1d446fcb, - limb1: 0x90b2d51ea5d064137010be91, - limb2: 0x7c8c873d0be45d5b, - limb3: 0x0 + limb0: 0x23c22ad1d25dcc45ab9c121d, + limb1: 0x4cfa97358c01dddf66b4700b, + limb2: 0x6b76004a39c24f0, + limb3: 0x0, }, u384 { - limb0: 0xe006d9b7cd03b49f064ba92b, - limb1: 0xa2e7087b830fb047349c0ccf, - limb2: 0x91fc964610ae526e, - limb3: 0x0 + limb0: 0x2ec0b66e50858f00e3e4a578, + limb1: 0x261ffafd829cc5220766b4a3, + limb2: 0xa80eb6642cd3197, + limb3: 0x0, }, u384 { - limb0: 0x36713ea248f9a1d301fef80e, - limb1: 0xb18ed33815490016af236441, - limb2: 0x3694c5da0bb93133, - limb3: 0x0 + limb0: 0xde213bc12464493cf6197d08, + limb1: 0xe402e2c2b520d075596354ff, + limb2: 0x1f3bb948533da010, + limb3: 0x0, }, u384 { - limb0: 0x54edf407c23a4a37b1c47805, - limb1: 0x27cfad772f2fc3880bbc73ef, - limb2: 0x479be38d15ad8871, - limb3: 0x0 + limb0: 0x263dfc622dec89dfbfa2cbd0, + limb1: 0xe3facd8432ae7a7faf180379, + limb2: 0x2bdc3bcf06cf92f4, + limb3: 0x0, }, u384 { - limb0: 0xb567e88c38eb2c5271b1a2e3, - limb1: 0xffffffffffffffff40a797b9, - limb2: 0xffffffff00000000, - limb3: 0x0 + limb0: 0xcd476c153f2c5a79524c0ed, + limb1: 0xff4c7bd66a92f3d39d667e3b, + limb2: 0x11ab0d23ffd41c37, + limb3: 0x0, + }, + u384 { + limb0: 0x58920c472163998b4e35788f, + limb1: 0xa0d38dde3a3753f29df4d189, + limb2: 0xba97a52902fb18d, + limb3: 0x0, }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), a_den: array![ u384 { - limb0: 0xdc1aba2998e6b8a58529a3a7, - limb1: 0x644876871f74d74bebbe9477, - limb2: 0xe65ab11fa39ef993, - limb3: 0x0 + limb0: 0x1cebcb4e4ab650bbdaba642, + limb1: 0x43f3b243b32fe86dc2b68b38, + limb2: 0x149be990deda3544, + limb3: 0x0, + }, + u384 { + limb0: 0xf2d959612d19097697efb49c, + limb1: 0xb83b817de49b22d09807b694, + limb2: 0x4aa4aabfbd9c584, + limb3: 0x0, + }, + u384 { + limb0: 0x31eac0772505cd58a4dcefb0, + limb1: 0xc4a78096f2b5d5731bcf07cd, + limb2: 0x2b42d40f53546c9f, + limb3: 0x0, }, u384 { - limb0: 0x17099f47b73ece2a509432c5, - limb1: 0x3fa7afc2f60c7b439bb332dc, - limb2: 0xa4863f027c779b09, - limb3: 0x0 + limb0: 0xade02479bd219ee9804835c8, + limb1: 0x14f3eceab635246f71065f95, + limb2: 0x129cdf6aaf60a091, + limb3: 0x0, }, u384 { - limb0: 0x117eba257a1b701d1ed12799, - limb1: 0x9da675e5c02802df3af3cf35, - limb2: 0xe41afafb4f0b067b, - limb3: 0x0 + limb0: 0x6373b36c86fd7d358ed18ce7, + limb1: 0x8387db3d0668144d4650c4a3, + limb2: 0x130053f776dc74d9, + limb3: 0x0, }, u384 { - limb0: 0x8b92ac786618f1073736c9f9, - limb1: 0x21c9e27964c231b2f780278a, - limb2: 0xbec5846b0b42757e, - limb3: 0x0 + limb0: 0x5be784936a0788d480e11593, + limb1: 0x6cb3e0b510cf723b19b0d9a, + limb2: 0xf70766c6bf642d3, + limb3: 0x0, }, u384 { - limb0: 0x7f85c8364de6a761b608facc, - limb1: 0xbb8d5a3a4523f32562271331, - limb2: 0xba2e183ca67c3b5a, - limb3: 0x0 + limb0: 0x5dd9f8d1ec3a85646312467d, + limb1: 0xd927fc821bfb2aad6645e2d5, + limb2: 0x1043cf0644286a17, + limb3: 0x0, }, u384 { - limb0: 0xbdf5cb7f4b4b8c57008fe644, - limb1: 0x659be137b94602041d4309e3, - limb2: 0x3ba9c34550804cf1, - limb3: 0x0 + limb0: 0x6c101c9e38c7a01ca863ab1f, + limb1: 0x799159a950a029f39439f991, + limb2: 0x70f2153426da6ed, + limb3: 0x0, }, u384 { - limb0: 0x187b941e56958652de6e1d7c, - limb1: 0x958bce021aad77f4a1e0d1db, - limb2: 0x15a48509ac16849b, - limb3: 0x0 + limb0: 0xdc922f1f0d69f429f2b94414, + limb1: 0xf2b9848c7c02d4d8f224f981, + limb2: 0x1268999a2f5672d1, + limb3: 0x0, }, u384 { - limb0: 0x61dd0bb49ea77fbac541b015, - limb1: 0x67f440d9071adba0cbf038d0, - limb2: 0x332f62190403bd0a, - limb3: 0x0 + limb0: 0xc4c5d302b257be4b0cd56d37, + limb1: 0xf19b386e9b1fe3277d746ff4, + limb2: 0x107cb878d662d431, + limb3: 0x0, }, u384 { - limb0: 0x55a58a7c7c88a9a76d52327b, - limb1: 0xeb189f2810dd2687a3294435, - limb2: 0x3ff2c647f18924ef, - limb3: 0x0 + limb0: 0x2fa72e905124b8bf31f61d0c, + limb1: 0xd677bbd613857cd70f42de4c, + limb2: 0x2747e5a28a8756e3, + limb3: 0x0, }, u384 { - limb0: 0x582b64e538fbdb47652e41b7, - limb1: 0x3d1a1f41df9b57e5239413e1, - limb2: 0x8268361d5097152e, - limb3: 0x0 + limb0: 0x745c32357901742e736d79c0, + limb1: 0x5d07d83b36013ac72daaaccf, + limb2: 0xae16a71717bcd4d, + limb3: 0x0, }, u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), b_num: array![ u384 { - limb0: 0xe37f86a9624a3b228ed6d8e8, - limb1: 0xd35f5458538634ff6a22abe6, - limb2: 0x6a7d7d8db8ce841e, - limb3: 0x0 - }, - u384 { - limb0: 0xe76dd024d50a1c6c8cd58c5e, - limb1: 0x4a70c2fa41766dced0262d05, - limb2: 0x759eb256aefe5d16, - limb3: 0x0 - }, - u384 { - limb0: 0xdb28975fa1955ab5e1f86625, - limb1: 0x24df9b7b3c711eaac2874781, - limb2: 0x680fb0e80339b3c, - limb3: 0x0 - }, - u384 { - limb0: 0x4e34e5b010c14feeeae153d, - limb1: 0x8d90f275ed6bf45653ca9891, - limb2: 0x3ea2de235dfd7ce2, - limb3: 0x0 - }, - u384 { - limb0: 0x959ac0b66a846b90de419e81, - limb1: 0x362390d100b927fb016f0beb, - limb2: 0x68a384dc8fd7e183, - limb3: 0x0 - }, - u384 { - limb0: 0x7140b6ea57007b6988d2dce, - limb1: 0x394154c680c661bd1f3aae39, - limb2: 0x42153b80dee7f797, - limb3: 0x0 - }, - u384 { - limb0: 0x2bace4387a4e086651944b2d, - limb1: 0x6591e6f564af70358dc4139f, - limb2: 0x50aa024b2ad32794, - limb3: 0x0 + limb0: 0x7a92bccb327543d089820b80, + limb1: 0xc6a32b3b434084ba409b13a8, + limb2: 0x120d88b83c190aca, + limb3: 0x0, }, u384 { - limb0: 0x3b9ceb5895067db3a65f9962, - limb1: 0xc4b947b8c7a0310fd7d182a4, - limb2: 0xecd6b7ec5f7d32c3, - limb3: 0x0 + limb0: 0xe97119efb7be540131258096, + limb1: 0xde0cf501763d351a9bb61a34, + limb2: 0x2472f73ac3fddfd9, + limb3: 0x0, }, u384 { - limb0: 0x95d56b69bd93471c81fd3fdd, - limb1: 0xa2841f31c00888a3c78667cf, - limb2: 0x461984b8b40a0788, - limb3: 0x0 + limb0: 0xba79a5ae4e23b25816d8632d, + limb1: 0xa1fac3bec1997e67f0ba1158, + limb2: 0x304c476ae7f22548, + limb3: 0x0, }, u384 { - limb0: 0x11f151f3a45b3bda6e0770d2, - limb1: 0x28892a6669e464591cdb846b, - limb2: 0xd7bd8c7855ddcd46, - limb3: 0x0 + limb0: 0xa4774637937e89c3b1395e50, + limb1: 0xde7841bfe6e24288b8a5ea96, + limb2: 0x23a677284fd0b626, + limb3: 0x0, }, u384 { - limb0: 0xbf6a28b204d397119f84a80b, - limb1: 0x148ab4c930afe8372b91bde9, - limb2: 0xfb9db5b99682fa5, - limb3: 0x0 + limb0: 0xc3c3fe76fb20e2c93a241623, + limb1: 0xd1bc3705a1a094aab9ebf42f, + limb2: 0x9ddfecf5fa8f8d1, + limb3: 0x0, }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ u384 { - limb0: 0xfcb9704c36940d7712611cb5, - limb1: 0x3725047cd3c05075d2d8f4bb, - limb2: 0xf58e07b86581cbf9, - limb3: 0x0 + limb0: 0x1a15ddbafe7f625a667fbf28, + limb1: 0xb88778a6760619af394ca1f4, + limb2: 0x1b7d3326c7e0f852, + limb3: 0x0, }, u384 { - limb0: 0xc5df17298786734eaf16c9dc, - limb1: 0x1bd682e351af778323b51804, - limb2: 0x60a0a17d77c7c17e, - limb3: 0x0 + limb0: 0xb55d40bf076b976d6358590a, + limb1: 0x7d7e0c58941f3c3b7d2bf542, + limb2: 0xcb330a9273523bc, + limb3: 0x0, }, u384 { - limb0: 0x100aca4e837e4f084c7399dc, - limb1: 0xf06f031c5347d2cb4316ada0, - limb2: 0x9c84798958e13978, - limb3: 0x0 + limb0: 0x23e638ef90b1c3356ed766f6, + limb1: 0x55f9566b8fd8243b1a57a57, + limb2: 0x11c83146c209caad, + limb3: 0x0, }, u384 { - limb0: 0x2f5fec2738387660d3903db0, - limb1: 0xfb868fcbef8ffcd5d7c2ad35, - limb2: 0xf9d435f0844556b4, - limb3: 0x0 + limb0: 0x7b3f81bcc65eb6eafe01d7b1, + limb1: 0x7b902b1b4d611829d4f5369b, + limb2: 0x13316c86092d821b, + limb3: 0x0, }, u384 { - limb0: 0x55e52ee242ef33d6152bf1cf, - limb1: 0x649113291bea2a278e1ed83e, - limb2: 0x1ef7d72642962f1e, - limb3: 0x0 + limb0: 0x9af747babe2defe57d89dafe, + limb1: 0x7991f40eb7cfbed6258166e7, + limb2: 0xf8875a505b44d29, + limb3: 0x0, }, u384 { - limb0: 0x102c4add0fd8c03296bbad07, - limb1: 0x6d1a068aec7309c2222ec3c2, - limb2: 0xd0c0dfa11edbb1e2, - limb3: 0x0 + limb0: 0x3cc77139c386d0d01cf0bcb5, + limb1: 0x302da794c889b7f74976556c, + limb2: 0x27973a292da3f3ea, + limb3: 0x0, }, u384 { - limb0: 0x5352da2c8b2457f7aea04828, - limb1: 0x89e231bb8f7d5956476011ed, - limb2: 0x229d2860fd270783, - limb3: 0x0 + limb0: 0xc134aad509e078752160106e, + limb1: 0x58f0c4566312e4b8320cb2a9, + limb2: 0x2716f48bd97dbe9b, + limb3: 0x0, }, u384 { - limb0: 0x86755f17419b80921414858f, - limb1: 0xc87e537d044ba28383ffddce, - limb2: 0x7cc27575209a02de, - limb3: 0x0 + limb0: 0xd3f335826979b0899480a04b, + limb1: 0x8b317da027fdcf8ee8ffb573, + limb2: 0x2f39a5110ae6f34f, + limb3: 0x0, }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + ] + .span(), + b_den: array![ u384 { - limb0: 0x66344c5dcc2093b90d5ed253, - limb1: 0xfb61d3fb1e5992b6282b830a, - limb2: 0x4f72497f96ed1d37, - limb3: 0x0 + limb0: 0xaf10fc86efadf6d7e799f5a6, + limb1: 0x3f53573525dc539f5380038b, + limb2: 0x24c7f0f83d0f77c5, + limb3: 0x0, }, u384 { - limb0: 0x8c8003649cdfda6cbbfb5c98, - limb1: 0x7866e10ba7d25809dd3ee75a, - limb2: 0xc20751b0b9267622, - limb3: 0x0 + limb0: 0xd303f1ae891a4a47c91501a6, + limb1: 0x34acf210d4b560e037e4b0ac, + limb2: 0x1179a77a08ed2283, + limb3: 0x0, }, u384 { - limb0: 0x25ae8dfb2f822a22bd894b3a, - limb1: 0x6491a068dee15aadc65103de, - limb2: 0x6bcf598bc791168, - limb3: 0x0 + limb0: 0x4b00412ac8bcb65c0d541560, + limb1: 0x75e4d161fa02592daa7effe7, + limb2: 0x26d4d2298a7ecbff, + limb3: 0x0, }, u384 { - limb0: 0x55a58a7c7c88a9a76d523278, - limb1: 0xeb189f2810dd2687a3294435, - limb2: 0x3ff2c647f18924ef, - limb3: 0x0 + limb0: 0xc9fe6498309d8e95c8e01401, + limb1: 0xe9f2deab2431e7935ab58c42, + limb2: 0x2aef389f61caecc5, + limb3: 0x0, }, u384 { - limb0: 0x582b64e538fbdb47652e41b7, - limb1: 0x3d1a1f41df9b57e5239413e1, - limb2: 0x8268361d5097152e, - limb3: 0x0 + limb0: 0xac3c832511716ff3ac05594c, + limb1: 0x667da6e023b343b061601b6, + limb2: 0x1462dc613f916437, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ u384 { - limb0: 0x19bf9dfd2e01a6219fdc1fe, - limb1: 0x99bf0a0bd5fc71ddc8ea2b03, - limb2: 0x52755556a0d111bd, - limb3: 0x0 + limb0: 0x782a25836def831fc5ea80f2, + limb1: 0xeab9be67186025e61986a9f7, + limb2: 0x16c07f1a8df21d6c, + limb3: 0x0, }, u384 { - limb0: 0x5e55d3f221137638549c1088, - limb1: 0x631a2668a46ac547a7e745fb, - limb2: 0x90fe1cc834ad8e47, - limb3: 0x0 + limb0: 0x4cbf41f0a48a84b68c118781, + limb1: 0xfb2dca8de38f611a9799c11d, + limb2: 0x2075f6b16fdb55f5, + limb3: 0x0, }, u384 { - limb0: 0x1c74deee8b8c0cea491aa2cb, - limb1: 0xd93f084d09cb8520b8c25224, - limb2: 0xe72ebbf52278cf28, - limb3: 0x0 + limb0: 0xa38e1e9e8d61bc0a30332fdb, + limb1: 0x99d1b82230495437e712ead4, + limb2: 0x2c2c08c8b1293f91, + limb3: 0x0, }, u384 { - limb0: 0x49ffe0a4abcd776a6956bc61, - limb1: 0xa06b558f932f2ee24d9d14d8, - limb2: 0x2c4cee7db395fbcd, - limb3: 0x0 + limb0: 0xa44777c612c0916f2939046, + limb1: 0xf2ab58b49f663f47b691d5f6, + limb2: 0x293c68536f940405, + limb3: 0x0, }, u384 { - limb0: 0x12cece240593aceb64496c3b, - limb1: 0x1f5a0a339912b4854539e625, - limb2: 0xaf5c2b98a3a857bc, - limb3: 0x0 + limb0: 0x270f990babb2a3e028e605dc, + limb1: 0x1fbadf70d7e5273d02c1e547, + limb2: 0x1a5565b14ec213c1, + limb3: 0x0, }, u384 { - limb0: 0xe1efd3bdf426d4dab5d77618, - limb1: 0x1f0b29a83e67e19f73f7abb1, - limb2: 0x2fd278d97fa656ab, - limb3: 0x0 + limb0: 0xea1a2cfa8bb2c981770bbd61, + limb1: 0x5001b06d19d5b4c3c39fea78, + limb2: 0x10c52bd06027a414, + limb3: 0x0, }, u384 { - limb0: 0x30bba17081c9a0954503984f, - limb1: 0xdc637edd27abd643557d96c8, - limb2: 0xd2a585948d35e173, - limb3: 0x0 + limb0: 0x9589bd713d9136408742e58, + limb1: 0xa6753f77ebf34f138a9f20dd, + limb2: 0x1b01c1dd2ae45155, + limb3: 0x0, }, u384 { - limb0: 0x588b64ec66677096839b66f, - limb1: 0xccc6e69640ff146e7571cdf7, - limb2: 0xb758d6888eec176e, - limb3: 0x0 + limb0: 0xc4c5d302b257be4b0cd56d26, + limb1: 0xf19b386e9b1fe3277d746ff4, + limb2: 0x107cb878d662d431, + limb3: 0x0, }, u384 { - limb0: 0x61256a03ab1038e7b94e570d, - limb1: 0x3c8a497b67e4fb9843f3fe5d, - limb2: 0x8570a32a8cb71060, - limb3: 0x0 + limb0: 0x2fa72e905124b8bf31f61d0c, + limb1: 0xd677bbd613857cd70f42de4c, + limb2: 0x2747e5a28a8756e3, + limb3: 0x0, }, u384 { - limb0: 0x19df3f5ba6361a3986a8e9ce, - limb1: 0xffffffffffffffffe345814a, - limb2: 0xffffffff00000000, - limb3: 0x0 + limb0: 0x745c32357901742e736d79c0, + limb1: 0x5d07d83b36013ac72daaaccf, + limb2: 0xae16a71717bcd4d, + limb3: 0x0, }, + u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - a_den: array![ - u384 { - limb0: 0x863633c5717e4ddd8a50185b, - limb1: 0x56394813381a8523473b7439, - limb2: 0xe6cca89568f9cf1, - limb3: 0x0 - }, - u384 { - limb0: 0x3627766b110991ad6ff306f4, - limb1: 0x2481dd2b208c443efb411bf4, - limb2: 0x8b31fb3039314e2, - limb3: 0x0 - }, - u384 { - limb0: 0x4f9132663119c45ed14ccba7, - limb1: 0x6a4172ccaf6c178330ed7f4d, - limb2: 0xefcc0c929b431a41, - limb3: 0x0 - }, - u384 { - limb0: 0x766ba5aa3177e4de18dcdb56, - limb1: 0xb862ff0bb14593e72191c5d0, - limb2: 0xb2886011c71d5263, - limb3: 0x0 - }, - u384 { - limb0: 0x4660d839591cee96eaecbf2d, - limb1: 0xd8abc0fb55ff8c9653d6b5e8, - limb2: 0xbbc9806a9f897307, - limb3: 0x0 - }, - u384 { - limb0: 0xb00ce8acebfe6dcef8c596c6, - limb1: 0x24fd66fd5a761dabc91a0607, - limb2: 0xf867b86d5b73d4b2, - limb3: 0x0 - }, - u384 { - limb0: 0x67baeea0fcb0eda50bde9875, - limb1: 0x1e960a8b9dd7deffe6415003, - limb2: 0x979180b61a192054, - limb3: 0x0 - }, - u384 { - limb0: 0x4f0bbbd278292c7f53da2a3b, - limb1: 0x1dc132901db5509de6271bfd, - limb2: 0xa1f28a3f2cd962e6, - limb3: 0x0 - }, - u384 { - limb0: 0x88c30a7868efd343787403f0, - limb1: 0x6c10fd73e0723affdd59a67f, - limb2: 0xb9fa15e0b6fcbdfc, - limb3: 0x0 - }, - u384 { - limb0: 0x8662fe3b06a814b15d1d7175, - limb1: 0xede374cb3f98483f1300e15c, - limb2: 0xea9cae80b3db7f8f, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0x342b9f289862bc6ff4299302, - limb1: 0x19711479ea626f7394438199, - limb2: 0x89c545e547457f8d, - limb3: 0x0 - }, - u384 { - limb0: 0x8116065880c2f307032d1e58, - limb1: 0xbdf3fdb7414a66678e116247, - limb2: 0x5b1d6eeac544ca97, - limb3: 0x0 - }, - u384 { - limb0: 0xb100a3bb320eebd3a5aa112, - limb1: 0x9aa8156764e935246aa8f849, - limb2: 0x35754d846c511fda, - limb3: 0x0 - }, - u384 { - limb0: 0x5714de89bf5cbd45cd4c16c5, - limb1: 0x7196ba218afa768ba21aa3e4, - limb2: 0xd617adbd4c9eabb, - limb3: 0x0 - }, - u384 { - limb0: 0x5f6f363517ff14880b5a24da, - limb1: 0x41108544b69617aed0fc0026, - limb2: 0x626532256f3547e5, - limb3: 0x0 - }, - u384 { - limb0: 0x4387a11c87bfab14fb8f1ab4, - limb1: 0x1019ff00e6eabbf9b928207b, - limb2: 0xac1d74c93e474d6b, - limb3: 0x0 - }, - u384 { - limb0: 0x4c39fcf1c408ff96260f8f7, - limb1: 0xbf0d18d2fa42ade8a94c4461, - limb2: 0xc4f970753b0f7092, - limb3: 0x0 - }, - u384 { - limb0: 0xe399495fa40aad85793fead, - limb1: 0x45a5ffb7f07749752a4d503e, - limb2: 0xdd7dda9bdd3bab75, - limb3: 0x0 - }, - u384 { - limb0: 0xd92c9548ca3f95da04e23c1a, - limb1: 0x4cb93730e66cd97ee5b9724, - limb2: 0x8a892a1197e7ac5a, - limb3: 0x0 - }, - u384 { - limb0: 0xee4c42273ae883033b6d0edf, - limb1: 0xd359c8b4ad66db39f46447ce, - limb2: 0x5f2787adbe065ac4, - limb3: 0x0 - }, - u384 { - limb0: 0xac91e7e621466616e7ec6b66, - limb1: 0xfba75cdaacc12e5b356a976a, - limb2: 0xbfa19ebd5517d79, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { - limb0: 0x154dfd510c7bd5d27354f733, - limb1: 0x70fbc2cda06685d980754e60, - limb2: 0x934651e0e0972864, - limb3: 0x0 - }, - u384 { - limb0: 0xe47c7a8002e9b4b6b996bd62, - limb1: 0x2c8118ee964b4aed7ab80be5, - limb2: 0xfc83d85adcb5057a, - limb3: 0x0 - }, - u384 { - limb0: 0x586f72debfc6a0471a10c550, - limb1: 0x39a969a12420bb8550b66b96, - limb2: 0xb9fa5fbbfa9d67a1, - limb3: 0x0 - }, - u384 { - limb0: 0x81410b69131b67a6ca3d7a1c, - limb1: 0x7742923a3b53f8ea6dffafc5, - limb2: 0xfa41ddf6d1c91942, - limb3: 0x0 - }, - u384 { - limb0: 0xed415715b9a95d277f93e365, - limb1: 0xca0bbabe39b971e57f5983a4, - limb2: 0xb7114c27d016c967, - limb3: 0x0 - }, - u384 { - limb0: 0x8b88da93b03c46aec7093079, - limb1: 0x46d000cdf3535840454c6ae1, - limb2: 0xc3e4a2528d50cbb4, - limb3: 0x0 - }, - u384 { - limb0: 0x18f67108e161e2ee4e8c92fb, - limb1: 0xd5c4eefa50b0efeb06916269, - limb2: 0x59e2de74023797ac, - limb3: 0x0 - }, - u384 { - limb0: 0x1c3d8699f2eff5ed4f1c5db0, - limb1: 0x612e7e5f72a548568f930a77, - limb2: 0xf64e87bde2174502, - limb3: 0x0 - }, - u384 { - limb0: 0xca4d73f5dde285727e3ee396, - limb1: 0x5858d04c9aa6f02e187b9165, - limb2: 0x9d0e71018013f45e, - limb3: 0x0 - }, - u384 { - limb0: 0x83240315f13f041e64c47e5e, - limb1: 0xf39b6faf32a0842e5b87d662, - limb2: 0xbd7566021972f9a7, - limb3: 0x0 - }, - u384 { - limb0: 0x883672179fff2aa964543625, - limb1: 0x8029183d584fe9d12417e9a, - limb2: 0x3ce2b493bb817820, - limb3: 0x0 - }, - u384 { - limb0: 0x88c30a7868efd343787403ed, - limb1: 0x6c10fd73e0723affdd59a67f, - limb2: 0xb9fa15e0b6fcbdfc, - limb3: 0x0 - }, - u384 { - limb0: 0x8662fe3b06a814b15d1d7175, - limb1: 0xede374cb3f98483f1300e15c, - limb2: 0xea9cae80b3db7f8f, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x80a0b38c7176c0250e79070c, - limb1: 0xc695ba87128f20ed6caa6b04, - limb2: 0x3e723be71a83eed8, - limb3: 0x0 - }, - u384 { - limb0: 0x5784a91a5e09d24e7c4a2665, - limb1: 0x7fffffffffffffff7c074594, - limb2: 0x7fffffff80000000, - limb3: 0x0 - } - ] - .span(), - a_den: array![ - u384 { - limb0: 0xd170b840986da92a4b7c9e4e, - limb1: 0xc0c9437d125cd96f57410e4f, - limb2: 0x44e09215ade0b15e, - limb3: 0x0 - }, - u384 { - limb0: 0xc563aa6f942f8b2d181ba88f, - limb1: 0xc15f976aeff088cf4f62de20, - limb2: 0x73ba0011066eeb21, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0xb89371da8293063f446e1684, - limb1: 0xdbd378849db8542b4bb9c5d7, - limb2: 0x1fd7b291e8a2dda, - limb3: 0x0 - }, - u384 { - limb0: 0x771ffbb381f2feb2d07353ef, - limb1: 0xddb40afc3384b7282995afd5, - limb2: 0x4f15c60e1c119e47, - limb3: 0x0 - }, - u384 { - limb0: 0xf2771ab2d83cce7763e0d479, - limb1: 0x370d5414592569cd1374666, - limb2: 0x704e0c967da3d667, - limb3: 0x0 - } - ] - .span(), - b_den: array![ - u384 { - limb0: 0xe672ae4db636f197035cccd4, - limb1: 0x58ca161bbb76dc452ac5c05, - limb2: 0xd17080de9f0bdb95, - limb3: 0x0 - }, - u384 { - limb0: 0x384666a216de738c9cd6d0c2, - limb1: 0x2565b371ca4582950ce392ea, - limb2: 0x82160b6ecf76a36f, - limb3: 0x0 - }, - u384 { - limb0: 0x7c28b1a77f3f9ab6df7f669c, - limb1: 0x6fccf714a6c6ec4e76f46c50, - limb2: 0xff9835a396edd284, - limb3: 0x0 - }, - u384 { - limb0: 0xd170b840986da92a4b7c9e4b, - limb1: 0xc0c9437d125cd96f57410e4f, - limb2: 0x44e09215ade0b15e, - limb3: 0x0 - }, - u384 { - limb0: 0xc563aa6f942f8b2d181ba88f, - limb1: 0xc15f976aeff088cf4f62de20, - limb2: 0x73ba0011066eeb21, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() }, }; let derive_point_from_x_hint = DerivePointFromXHint { y_last_attempt: u384 { - limb0: 0xf888193a208fcfbd8f58e726, - limb1: 0x17dc1c330754b90fe68364e7, - limb2: 0x1764c4a79c00c331, - limb3: 0x0 + limb0: 0xff959b0a00585a23db373d51, + limb1: 0x611294def9c8f1fee0855042, + limb2: 0x4c7f1a0a55ac31e, + limb3: 0x0, }, g_rhs_sqrt: array![].span(), }; let points = array![ G1Point { x: u384 { - limb0: 0x113c8d620e3745e45e4389b8, - limb1: 0x85b8ff52d905fd02fe191c3f, - limb2: 0xf5d132d685201517, - limb3: 0x0 + limb0: 0x86b402ce02e7c7ca81f13d51, + limb1: 0x39493672733a9289a36020c1, + limb2: 0x7f40d91dc5413d3, + limb3: 0x0, }, y: u384 { - limb0: 0x60c0ba1b358f375b2362662e, - limb1: 0x6abfc829d93e09aa5174ec04, - limb2: 0x7bc4637aca93cb5a, - limb3: 0x0 - } + limb0: 0x371e7b6a5c01505bd4334e81, + limb1: 0x2f596ae4492a87c66f7bda1a, + limb2: 0x9dffb4dcdb94df9, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0xd3ff147ff0ee4213f51f677d, - limb1: 0x431366a7732a6e4a6b942255, - limb2: 0x9fe743b25d39a591, - limb3: 0x0 + limb0: 0x20669ef12954f8e3bbc8b4d3, + limb1: 0x396a6f7243c27ce553121ee3, + limb2: 0x11438ca2ec259aed, + limb3: 0x0, }, y: u384 { - limb0: 0x7f8bb562ff60a902ef14bcb0, - limb1: 0xeb9420089fa531db62e806a6, - limb2: 0xfd028df433dfd5cc, - limb3: 0x0 - } + limb0: 0xa560a5759c90985fde99aca0, + limb1: 0xc5b21186cc6dcd0421026513, + limb2: 0x21fb1f47c6ac55b3, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0x46ae31f6fc294ad0814552b6, - limb1: 0x2d54cc811efaf988efb3de23, - limb2: 0x2a2cc02b8f0c419f, - limb3: 0x0 + limb0: 0x3c26f4ff476ab777dc184776, + limb1: 0xbccb2cba46cf421f11eb4d14, + limb2: 0x27ec44064c727a3d, + limb3: 0x0, }, y: u384 { - limb0: 0xaec889b9d8ce51c4a2c3586f, - limb1: 0xa2b07874c333bfee9f78e13e, - limb2: 0xc445de21be8d8709, - limb3: 0x0 - } + limb0: 0xa893636703904fcbe984618c, + limb1: 0x73b210a224190b9b7b28784c, + limb2: 0x20f05486689dff6c, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0x7e47d1c2d19c21b2f6870259, - limb1: 0xe701b40af42001c38bca00db, - limb2: 0xd87ea1720d4dd3d6, - limb3: 0x0 + limb0: 0x74f2a24c1853d803c1b9e310, + limb1: 0x9e78bb9233603b686b9d27, + limb2: 0x1d13a84fbcd96e81, + limb3: 0x0, }, y: u384 { - limb0: 0x5b1d6cc74985ce49a1f737fe, - limb1: 0xb9127c572c3f091c031c249c, - limb2: 0x1392711e1576aa6f, - limb3: 0x0 - } + limb0: 0xe5bc08950f2f1accd92245f4, + limb1: 0x3b653bbe7b6cfd9074b07f89, + limb2: 0x1638a8a07b89463b, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0xb71f95ea692ed186e06e4c37, - limb1: 0x807276cd9cc59718bb11dbe9, - limb2: 0x10756a25836d67ca, - limb3: 0x0 + limb0: 0x549a4dee31909bd274709d7c, + limb1: 0x2628a928b4ed90e98d5de1f, + limb2: 0x1f2c2eeb200495b, + limb3: 0x0, }, y: u384 { - limb0: 0xd34211b3520c83c5f9be99af, - limb1: 0x8f19a28ceef67bbda102ffe7, - limb2: 0x7ac2b92030d351cc, - limb3: 0x0 - } + limb0: 0xbae71f4f781675cce1119290, + limb1: 0x18995b20b8d0966bac7f5c23, + limb2: 0x1f7a255155ab7785, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0x411bb5d0fbe844f025c7178c, - limb1: 0xcf603787227b7ac499d6d1c4, - limb2: 0x5f6b2479862eb2f8, - limb3: 0x0 + limb0: 0x616d2877cb47206e625b0076, + limb1: 0xa7255531af3575b0a682d6df, + limb2: 0xdd4a0db8187661d, + limb3: 0x0, }, y: u384 { - limb0: 0xce60303cfcb98726ff64a1e5, - limb1: 0xa64534c614754b3527588d25, - limb2: 0x44f75e245622181, - limb3: 0x0 - } + limb0: 0xea99c54030edacb739c9ad0f, + limb1: 0x1e2e84792f7a12b330406ecd, + limb2: 0x70f1e1a9673a240, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0x8a703177da18d4ede707c057, - limb1: 0x7d6c11e754ab6fbe73deea43, - limb2: 0xdf9787168190a047, - limb3: 0x0 + limb0: 0x4ca9473b8cae66da0baf8eca, + limb1: 0x9ca627187edabffeb80da281, + limb2: 0xda800cad866dc3c, + limb3: 0x0, }, y: u384 { - limb0: 0x2e6585ab5f125a34fef37875, - limb1: 0xb70e9f02ce7744197172a117, - limb2: 0x60e305f9fe6f2298, - limb3: 0x0 - } + limb0: 0x6dcd62554ccd88a00f3e90b3, + limb1: 0x141b8118cd6873dc9ac01a64, + limb2: 0x19146bc96fa6a4bd, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0x712f72f3929408ff68af059d, - limb1: 0x4f72cea12cd115dc1c8639f5, - limb2: 0xc6d5ae1b897ffe77, - limb3: 0x0 + limb0: 0xd21eca6170588371cf0fef12, + limb1: 0x2aae89b6d1784d7fe5d6f233, + limb2: 0x2fa67b7cd137898c, + limb3: 0x0, }, y: u384 { - limb0: 0xfcf91f56bad0659142668837, - limb1: 0xa15458b49bcdad6c870e3889, - limb2: 0x81a1342e70b1b765, - limb3: 0x0 - } + limb0: 0xb20856046d39da92c0a6898a, + limb1: 0xc9dba030db3ed937e781ae4d, + limb2: 0x695a8c76fb0f771, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0x461d7579f9613d3168fc6220, - limb1: 0x7626024a6195fe0eafcea08b, - limb2: 0x32e91b268a032443, - limb3: 0x0 + limb0: 0x919e8724022c5bd17875261b, + limb1: 0x3a2b09cc9362be43a8573a0, + limb2: 0x2cf4abb949016ad7, + limb3: 0x0, }, y: u384 { - limb0: 0xcdc7ae298071a741aafd4035, - limb1: 0x9a9bdfbdb824dc1278457a10, - limb2: 0x17fbec3713dfd145, - limb3: 0x0 - } + limb0: 0x89062bf5adf784b526337420, + limb1: 0xf710d8fb0beb9551fe0e08f3, + limb2: 0x1577b6c8f024c52d, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0x9b85054533e9d24310265ee0, - limb1: 0x51cbb79b2625c435ba43bbef, - limb2: 0x1fd81fcb136c629b, - limb3: 0x0 + limb0: 0x2cb6c8386e51647e028876a2, + limb1: 0x3eeb71e38623705690872fa1, + limb2: 0xbf610b0d76e1a8f, + limb3: 0x0, }, y: u384 { - limb0: 0x96378a2e47ab50246a9cf131, - limb1: 0x4d0f08867537268cf39eae04, - limb2: 0x4eeb60396f3e5f52, - limb3: 0x0 - } + limb0: 0x92f468ac225e9f9a2b52929d, + limb1: 0x28e7d79e30f3f4d4abf38c05, + limb2: 0x2e2ba523e6456871, + limb3: 0x0, + }, }, G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, ] .span(); let scalars = array![ u256 { low: 0x0, high: 0x0 }, u256 { - low: 0xd3fbf47a7e5b1e7f9ca5499d004ae545, high: 0xbaf3897a3e70f16a55485822de1b372a + low: 0xe005b86051ef1922fe43c49e149818d1, high: 0x1f507980eece328bff7b118e820865d6, }, u256 { - low: 0x101fbcccded733e8b421eaeb534097ca, high: 0x38c1962e9148624feac1c14f30e9c5cc + low: 0x4a84eb038d1fd9b74d2b9deb1beb3711, high: 0x154bc8ce8c25166a1ff39849b4e1357d, }, u256 { - low: 0x247a8333f7b0b7d2cda8056c3d15eef7, high: 0x1759edc372ae22448b0163c1cd9d2b7d + low: 0x3405095c8a5006c1ec188efbd080e66e, high: 0x2305d1699a6a5f92cca74147f6be1f72, }, u256 { - low: 0xe005b86051ef1922fe43c49e149818d1, high: 0x7d41e602eece328bff7b118e820865d6 + low: 0x1775336d71eacd0549a3e80e966e1277, high: 0x144a7edf6288e1a5cc45782198a6416d, }, u256 { - low: 0x4a84eb038d1fd9b74d2b9deb1beb3711, high: 0x552f233a8c25166a1ff39849b4e1357d + low: 0x2f1205544a5308cc3dfabc08935ddd72, high: 0x21c38572fcd81b5d24bace4307bf326, }, u256 { - low: 0x3405095c8a5006c1ec188efbd080e66e, high: 0x8c1745a79a6a5f92cca74147f6be1f72 + low: 0x42930b33a81ad477fb3675b89cdeb3e6, high: 0x2b70369e16febaa011af923d79fdef7c, }, u256 { - low: 0x1775336d71eacd0549a3e80e966e1277, high: 0x5129fb7c6288e1a5cc45782198a6416d + low: 0x2648ee38e07405eb215663abc1f254b8, high: 0x522c9d6d7ab792809e469e6ec62b2c8, }, u256 { - low: 0x2f1205544a5308cc3dfabc08935ddd72, high: 0x870e15c2fcd81b5d24bace4307bf326 + low: 0x85940927468ff53d864a7a50b48d73f1, high: 0xdc5dba1d977e9933c49d76fcfc6e625, }, u256 { - low: 0x42930b33a81ad477fb3675b89cdeb3e6, high: 0xadc0da7a16febaa011af923d79fdef7c + low: 0xd344749096fd35d0adf20806e5214606, high: 0x119d0dd09466e4726b5f5241f323ca74, }, u256 { - low: 0x2648ee38e07405eb215663abc1f254b8, high: 0x148b2758d7ab792809e469e6ec62b2c8 + low: 0x5306f3f5151665705b7c709acb175a5a, high: 0x2592a1c37c879b741d878f9f9cdf5a86, }, ] .span(); let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 3 + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 5, ); assert!( res == G1Point { x: u384 { - limb0: 0x8bb75ba627234dc63e79a70b, - limb1: 0xf80598ab2773419027b1531f, - limb2: 0xcf5ff5f040bbf9f9, - limb3: 0x0 + limb0: 0x76eba6c48fca7e67a1167f1b, + limb1: 0x99d1cf8af0d7925a391bf9a3, + limb2: 0x15af0f993a050918, + limb3: 0x0, }, y: u384 { - limb0: 0x74e9046434afc5dcf31ffcca, - limb1: 0x7a10638d5630b338c33f51f4, - limb2: 0x581c177d075c1692, - limb3: 0x0 - } - } + limb0: 0x5e9e86e4463f32715e203759, + limb1: 0xfd925ca59f135f0fcf8d28a6, + limb2: 0x17f65bbc426d8da, + limb3: 0x0, + }, + }, ); } #[test] - fn test_msm_SECP256R1_12P() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - ] - .span(), - array![ - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - ] - .span(), - array![ - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - ] - .span(), - array![ - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - ] - .span(), - array![ - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - ] - .span(), - array![ - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - ] - .span(), - array![ - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - ] - .span(), - array![ - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - ] - .span() - ), - ] - .span() - ); + fn test_msm_GRUMPKIN_12P() { + let scalars_digits_decompositions = Option::None; let msm_hint = MSMHint { Q_low: G1Point { x: u384 { - limb0: 0x63c70f94dcf043039d5b06fd, - limb1: 0xaea5b5d016d780fc3268e4c0, - limb2: 0xaab7cc308e570714, - limb3: 0x0 + limb0: 0xad8494e8136779204b79fdb0, + limb1: 0x1106e0faf7acbea85d7ccbc4, + limb2: 0x221173968566d58b, + limb3: 0x0, }, y: u384 { - limb0: 0x2ccddde18a7ebaea35b7e5a6, - limb1: 0x77890d800c548f0895b91ba5, - limb2: 0x38f62d852b001d58, - limb3: 0x0 - } + limb0: 0x5d010b2ab18b8fd6aef2f88c, + limb1: 0xce45390beb6526076f61cc3e, + limb2: 0x3d0ba79090b4d5e, + limb3: 0x0, + }, }, Q_high: G1Point { x: u384 { - limb0: 0xb8703d4eb1e2bfd5d9961829, - limb1: 0x1842a9aca84733324c506a00, - limb2: 0x4d0d88487505dfdb, - limb3: 0x0 + limb0: 0x4e37d4acce2bf823caff1a12, + limb1: 0x66f9c676be7d9688dde7314f, + limb2: 0x1719179a1a7ad9d0, + limb3: 0x0, }, y: u384 { - limb0: 0x3ed04afc6933b3f7805988f7, - limb1: 0x52d3fe01f66a332d0085908c, - limb2: 0xfdb0892e58dcbc1b, - limb3: 0x0 - } + limb0: 0x548f444afdaa53322be5c4f9, + limb1: 0xa4c1c68ebd65cb1ac4dac08, + limb2: 0xdb6596c070650a, + limb3: 0x0, + }, }, Q_high_shifted: G1Point { x: u384 { - limb0: 0xa03532a10c75403f0d217fb8, - limb1: 0x3e4656ee3a4f973d11c76c19, - limb2: 0x29c888c3b44f0160, - limb3: 0x0 + limb0: 0xe69d4894cb24aa574eeaa5fd, + limb1: 0xf22c899b13bb294507d3dcf2, + limb2: 0x216a1fcb358c5922, + limb3: 0x0, }, y: u384 { - limb0: 0x3a168c8dac103d557d99273, - limb1: 0xf0dc9ffb09bdf06ec71bc3ad, - limb2: 0x9acb520c6222d492, - limb3: 0x0 - } + limb0: 0x4f39b540b4a015c9056195a9, + limb1: 0x2a12714697de632f568353ad, + limb2: 0x13e9719e40183499, + limb3: 0x0, + }, }, - SumDlogDivLow: FunctionFelt { + RLCSumDlogDiv: FunctionFelt { a_num: array![ u384 { - limb0: 0x6f1cd29c0bd0632afeca1bae, - limb1: 0x6882ae2068b8830c7bf450b1, - limb2: 0x29b8db3861b69b3a, - limb3: 0x0 + limb0: 0xc8984ed1c9048744c0da2f08, + limb1: 0xe1edcf6673cb8c455a931f34, + limb2: 0xf057e55fecde5d0, + limb3: 0x0, + }, + u384 { + limb0: 0xa01e471d6f06aff5fd1eabc0, + limb1: 0xf584194a7ff86d2d95ac571b, + limb2: 0x2f4b73d75ee41c5, + limb3: 0x0, + }, + u384 { + limb0: 0xd8011455e97193aed8b1c1bb, + limb1: 0x937f8cef9b240c3d204fca7b, + limb2: 0x2f68f2741d7f4445, + limb3: 0x0, }, u384 { - limb0: 0x74cd196ef937beae85083e36, - limb1: 0x8f63df86b5b5e0519445f1c, - limb2: 0x8850598a9b1503aa, - limb3: 0x0 + limb0: 0x165c4553a728135f9aef1fe4, + limb1: 0x6af7c4f2592fb5e1057dfdfb, + limb2: 0x1a02cd03339a76f9, + limb3: 0x0, }, u384 { - limb0: 0x5b7ad8d718ce6f6120e86042, - limb1: 0x15767c51b0267e780a4f0082, - limb2: 0xd34cc791dd9122c, - limb3: 0x0 + limb0: 0x53660c295aec30fa90c6fa0e, + limb1: 0x5f607f1f675e6d55d651c867, + limb2: 0x291e754beb700568, + limb3: 0x0, }, u384 { - limb0: 0xb4ed73c27062bacd01bdabb6, - limb1: 0x4def284c9b48221cfbdc62ed, - limb2: 0xc7a85ba3a9f69036, - limb3: 0x0 + limb0: 0xdee8109e622259c36c03e664, + limb1: 0x3db405394b1c2ed9b24aa052, + limb2: 0x20c5666720990e60, + limb3: 0x0, }, u384 { - limb0: 0x3f953f2e96408cce5c839755, - limb1: 0xed6f30539e9f584ecc447837, - limb2: 0x9b81b3baadcb6433, - limb3: 0x0 + limb0: 0xd259afa90fdca0fdc6347210, + limb1: 0xbc8dd9c40ace294b660c590, + limb2: 0x233d776d99b3ac7d, + limb3: 0x0, }, u384 { - limb0: 0x54bc915bee3c0c03f5e47b00, - limb1: 0xf57da7ecfa9bb334d673bebe, - limb2: 0x80f9514a8f34d57b, - limb3: 0x0 + limb0: 0xf5e54933542bc971aecfe947, + limb1: 0x9e560f8312c7f191017d6bd9, + limb2: 0x2b6f03c9a9f4460b, + limb3: 0x0, }, u384 { - limb0: 0x8dfccb20428e2ddab4c13f46, - limb1: 0xa9d4d966589f6a2dcb7518e4, - limb2: 0xea7cf24ed0ee58c8, - limb3: 0x0 + limb0: 0x3db41c090e9798eeca0bb7a0, + limb1: 0xda90c8e83b9bd27a91c53456, + limb2: 0x1402648f89a8f1c4, + limb3: 0x0, }, u384 { - limb0: 0xfb0677ded10d2a44ea0eed82, - limb1: 0xaeecaa5035bd31ccb8d8cc5b, - limb2: 0x6b8101c9d4f9099c, - limb3: 0x0 + limb0: 0xd2f58d9515525a7102be68a9, + limb1: 0xc639949f5665436c2b74c966, + limb2: 0xadfbb9088d48d0a, + limb3: 0x0, }, u384 { - limb0: 0xf730b84c25c18e9763b488c7, - limb1: 0x8d500c41d4f9f30ff9c8d6da, - limb2: 0x4310991eed58e9b6, - limb3: 0x0 + limb0: 0xc16a50af8579f6cfeed89217, + limb1: 0xe4138762a1a3af8109b4e6f6, + limb2: 0x136028c5f9d98859, + limb3: 0x0, }, u384 { - limb0: 0x3087945086b4fec19fccfd89, - limb1: 0xebec86984ad1fbd361748542, - limb2: 0x3b3753833925f72b, - limb3: 0x0 + limb0: 0xce7257ef8c4c9389f7409ee4, + limb1: 0x909ab5aa3b4d4eaa470618b4, + limb2: 0x149984b21ec5523d, + limb3: 0x0, }, u384 { - limb0: 0xb06a8352bacb73a1de43473a, - limb1: 0x7fffffffffffffff2cc719d7, - limb2: 0x7fffffff80000000, - limb3: 0x0 + limb0: 0xb13ee311bdfd849f0a5aa22c, + limb1: 0xc5b4206332c80d5a868b7d8a, + limb2: 0x2792a43b8bfd7b1b, + limb3: 0x0, }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), a_den: array![ u384 { - limb0: 0x855d56666877537078b417b3, - limb1: 0xd232a57de1a7ebef85b7ba08, - limb2: 0xd416a16bd8fb0d62, - limb3: 0x0 + limb0: 0x6412d2a0ccae48da749b7700, + limb1: 0xaa36b72e10c7dc83cff19a4c, + limb2: 0x38983bbfdb87d7d, + limb3: 0x0, + }, + u384 { + limb0: 0x4c8dff492d2d0c8c3c204a9e, + limb1: 0x61a9ef832012325cd7be87f8, + limb2: 0x1b9d2d8b6bb89ae0, + limb3: 0x0, }, u384 { - limb0: 0xf0736372020160ee1daa9b80, - limb1: 0xdf87b07426ad6517bb231ede, - limb2: 0x96efaf2bedce81a9, - limb3: 0x0 + limb0: 0x5ab11fce8b05e8048ab6fbb0, + limb1: 0xeda6d484fbf4c378dc43f587, + limb2: 0x1b7e28eeca2c3bd5, + limb3: 0x0, }, u384 { - limb0: 0x59feb891cbf31be615ef500d, - limb1: 0xf11cd8e8aba12c504652c683, - limb2: 0xd6293e89b493ba4b, - limb3: 0x0 + limb0: 0x902a572b7f1dd4d36549525a, + limb1: 0x6331a73d4725689dab57e47b, + limb2: 0x7c34b9c2189b04a, + limb3: 0x0, }, u384 { - limb0: 0xe5c11fb3f5a39956d4ffaa8, - limb1: 0xda00dd0c971feb2909e761b7, - limb2: 0xe10f28bbe66fdb6f, - limb3: 0x0 + limb0: 0xfac77772f8974bd0de3ef85, + limb1: 0xc39665a05fe95aacb17f273, + limb2: 0x207272fba3a3ac85, + limb3: 0x0, }, u384 { - limb0: 0xa84e93aafc6b0a35ef6c88f2, - limb1: 0xa6d2a4af363e411b8d80bf44, - limb2: 0x4f2e63c078526667, - limb3: 0x0 + limb0: 0xfa1ade6ea73e543ec841faf7, + limb1: 0xfb127e77063aee02a4b8fd36, + limb2: 0x234f04815c7f587, + limb3: 0x0, }, u384 { - limb0: 0xe5075d56356608c8288f8622, - limb1: 0xaa129bac1e9862d4049e3025, - limb2: 0x8bb059abb57a32ba, - limb3: 0x0 + limb0: 0xa3cbede5f60b6ed6b9feaefc, + limb1: 0x587dd97710febf43387cdab5, + limb2: 0x1830d0efe2c6434, + limb3: 0x0, }, u384 { - limb0: 0x39728c1634b36e7624b23037, - limb1: 0xb99a0a1be7e4a4a2e911bdab, - limb2: 0x207b3d369d695363, - limb3: 0x0 + limb0: 0xec95dc72e78e61280e131218, + limb1: 0x3c92cd0b3b14ea663f4b9395, + limb2: 0x1bbcbc4d59c3a3b8, + limb3: 0x0, }, u384 { - limb0: 0x4c8d6da4b413df4098eb69bc, - limb1: 0x932b1948f91f1aa6eb229e8f, - limb2: 0xbc1cea72e92f7507, - limb3: 0x0 + limb0: 0x5e07a1f36f7300f331b0a680, + limb1: 0x2f5f5a5729d0400db338e125, + limb2: 0x9212e71eb80b208, + limb3: 0x0, }, u384 { - limb0: 0xb58d010fa1ac42bf8aaceadf, - limb1: 0x4f82c834af4fdb180ad4ad89, - limb2: 0xcce875b85a5f1aa7, - limb3: 0x0 + limb0: 0xf8d00981ee1e3fef3307e8bc, + limb1: 0xdc25d55dbeeb05d3d6fe7dff, + limb2: 0xbe3738994ad444, + limb3: 0x0, }, u384 { - limb0: 0x72c3ed2ea6f03246d543de73, - limb1: 0xc7e5e4f9d80395f15ced28ab, - limb2: 0xaadcc74b663b9f65, - limb3: 0x0 + limb0: 0x51d12168722662e6e63468a4, + limb1: 0x6ba3832ff676a32be60b8807, + limb2: 0xeb518b44a426381, + limb3: 0x0, }, u384 { - limb0: 0xdf2d0c776303badb0f853865, - limb1: 0x545214dbb412e5046b801108, - limb2: 0xc99c6dce6459b8f9, - limb3: 0x0 + limb0: 0x4dedb8f5aa9bdd9d1c622663, + limb1: 0x9f8945e552befe9823d59f32, + limb2: 0x27240626be4255a, + limb3: 0x0, + }, + u384 { + limb0: 0x91149f3262891eca1a94f564, + limb1: 0xe479f46718ebe457020cba45, + limb2: 0x946c85929a487c3, + limb3: 0x0, }, u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), b_num: array![ u384 { - limb0: 0x147ba3c1a381b8a504a08ad3, - limb1: 0x6f222cea9e71f9f84bd91ae7, - limb2: 0xba2479dc38543b7, - limb3: 0x0 - }, - u384 { - limb0: 0x5ee590afa7d5c91f902588, - limb1: 0x7cdd4815a4499e844f6ea8f6, - limb2: 0x119fe356db4f214d, - limb3: 0x0 - }, - u384 { - limb0: 0x6e41155c16609641c634c30b, - limb1: 0xf331072caa53249d6a4eb134, - limb2: 0x861eb12eb4575003, - limb3: 0x0 - }, - u384 { - limb0: 0x72ed5a1441bf260e2fac63b8, - limb1: 0x2bc533aa15d6635a04047bd5, - limb2: 0xb1ede6a71afaef14, - limb3: 0x0 - }, - u384 { - limb0: 0xd80ab32df3ef23c7373ea3a1, - limb1: 0x4bd9356d3f6455b120818102, - limb2: 0xe23c4b4abe3df575, - limb3: 0x0 - }, - u384 { - limb0: 0x9352b95573a6202e407fd7f8, - limb1: 0x660b82e6cc07a9487c2edfe3, - limb2: 0x4c4bf8041507d758, - limb3: 0x0 - }, - u384 { - limb0: 0xd26ce50116693d26c4a4934a, - limb1: 0xce026c4a79c96f98d62b6ddc, - limb2: 0xac0496036e34f964, - limb3: 0x0 - }, - u384 { - limb0: 0xae1705d431f4e63d8feead0f, - limb1: 0xe7f5eda93abea4c7a5d0478d, - limb2: 0x1bd98128bd1bc2a8, - limb3: 0x0 + limb0: 0x40a87c070296a0743a5ac764, + limb1: 0x42e735b576c0cd8e24d6b170, + limb2: 0x79e3172b5932fa3, + limb3: 0x0, }, u384 { - limb0: 0xdb4321da032187ab54ed2fd9, - limb1: 0xbe54afde73b8132816e478cf, - limb2: 0x44628cb291c8dd4f, - limb3: 0x0 + limb0: 0xeb051cf7ee82da292687372a, + limb1: 0x29994c80ddc623f2645706a8, + limb2: 0x679e2a97a19fabe, + limb3: 0x0, }, u384 { - limb0: 0x2259351c8ce8e079b3a28a89, - limb1: 0xfaf792dee2d34c789de22ac7, - limb2: 0x8659ed04ce56916a, - limb3: 0x0 + limb0: 0x4215498758a542265a315065, + limb1: 0x339146403472b95c0afbd15b, + limb2: 0x1b0af0f7b57aa605, + limb3: 0x0, }, u384 { - limb0: 0x2929b8c78dbaf233ea899c01, - limb1: 0x15fd45305330ad60a5a5f515, - limb2: 0x779b60c96961f8d7, - limb3: 0x0 + limb0: 0x957a9aceefc98128b4d7a46a, + limb1: 0x8de52603f06a955d0f9d5249, + limb2: 0x2efd135ad630ac5f, + limb3: 0x0, }, u384 { - limb0: 0x79b082907f423da73c471e61, - limb1: 0x4b3d4b006cce15c5c9ac2bcb, - limb2: 0x2fbeadbeb589de1d, - limb3: 0x0 + limb0: 0xe8c699ec4bd64d23468aadbf, + limb1: 0xd3e242d9ff3dc34297590d27, + limb2: 0x148a92e64c6959a9, + limb3: 0x0, }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ u384 { - limb0: 0xed4fde5a0708c5a7f004de9f, - limb1: 0x62440d05901656930fe199ed, - limb2: 0x9a934dbf535c776d, - limb3: 0x0 + limb0: 0x2880c171c42e92c5c84df775, + limb1: 0x136f417ad8abf05fec6b772a, + limb2: 0xd1d310769729e7, + limb3: 0x0, }, u384 { - limb0: 0xfc3eb38fce83d90edf420230, - limb1: 0x712625d97013c2fecf2e843a, - limb2: 0xf68643bca1aa6ce2, - limb3: 0x0 + limb0: 0xe576c76a44694204be004927, + limb1: 0xe047ada2f45d2f4cdec4e6bf, + limb2: 0x1b20d495653e1744, + limb3: 0x0, }, u384 { - limb0: 0xf405a98b84c96c8457dbde6, - limb1: 0x85e48e682dc44982109d4091, - limb2: 0x9efab2e94c83d4f0, - limb3: 0x0 + limb0: 0x43839feda0f12745f2b049ac, + limb1: 0x508a174b885b57c57328d2c2, + limb2: 0x3340f14e0ae4dd4, + limb3: 0x0, }, u384 { - limb0: 0x9e385270c033e9e3bfdc23ca, - limb1: 0x886bfdd8364af1b858575375, - limb2: 0xb729fe5680ff8887, - limb3: 0x0 + limb0: 0xeb1fd39b88739c4417e695d, + limb1: 0xbeaa19ac4d6f97d4a5e9dff7, + limb2: 0x218b8d693efa1598, + limb3: 0x0, }, u384 { - limb0: 0x2f0db559ac863169c6c01c97, - limb1: 0xfb71225bdad50056f57071a8, - limb2: 0xb2ce7163a17ba844, - limb3: 0x0 + limb0: 0x7508864bf2da74d04be4e731, + limb1: 0x782d6471e70417ac4fae1b85, + limb2: 0x2f63840e74d1bb01, + limb3: 0x0, }, u384 { - limb0: 0x393cb4b6a0f00ef71f0e6a11, - limb1: 0xa20a64d9986b881dc7076003, - limb2: 0x9dd461ccf2a6aaf4, - limb3: 0x0 + limb0: 0x5ff95c60191d3e9e3eadc99b, + limb1: 0x13ef952e0a0c5ee4b246e2be, + limb2: 0x808444cab9658b5, + limb3: 0x0, }, u384 { - limb0: 0x86e9531d673609b9d022fd63, - limb1: 0x77e2f3f561a7eb8c5310350c, - limb2: 0xdd0e1b7035103e90, - limb3: 0x0 + limb0: 0x30912ca8894fa17dc5935495, + limb1: 0x6ec1f69a51829139c9ba8af9, + limb2: 0x2bacb7f944974db1, + limb3: 0x0, }, u384 { - limb0: 0x1f2689963b07925287a48f83, - limb1: 0xef41ed07aa1f04bce5645b84, - limb2: 0xeb7a8c8ff971bc10, - limb3: 0x0 + limb0: 0x39605a06375c797eb14c97f6, + limb1: 0x6caeed343ca1af143e9648a6, + limb2: 0x2807959e5dbba12a, + limb3: 0x0, }, u384 { - limb0: 0x4dff98008b3416304969a8bf, - limb1: 0xd8ddc28cc4feed9cee240699, - limb2: 0x734ea7498a5083be, - limb3: 0x0 + limb0: 0xc379cbc31e5a06a62031e2fe, + limb1: 0x7b2fe339e35b370011dec36f, + limb2: 0x9781b2632cdd622, + limb3: 0x0, }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + ] + .span(), + b_den: array![ u384 { - limb0: 0xdabdad05add2dd40c0bf61f7, - limb1: 0x5392a53ec780f24a4021233f, - limb2: 0x7da14f9fe4972f65, - limb3: 0x0 + limb0: 0x4e32e474f03114a621ad1902, + limb1: 0x22fe615de5bd0bf9815c917e, + limb2: 0x24a6dd69e922eafb, + limb3: 0x0, }, u384 { - limb0: 0x7fecd82dcc55c941b2144a04, - limb1: 0xe5114e61b176443f1a636be6, - limb2: 0xe2e6b4b0ca836cbd, - limb3: 0x0 + limb0: 0xabd071d0a6d5c27761db0b8c, + limb1: 0xb6d9d16bedd81b793e600b57, + limb2: 0xe7b0a3aa4adf8ba, + limb3: 0x0, }, u384 { - limb0: 0xe4598c9fb46f4e6c83efa1f9, - limb1: 0x67846f709afb2c72d718121, - limb2: 0xcad96223d78c83a5, - limb3: 0x0 + limb0: 0xbb7b48f56b6f2f7a29d9495a, + limb1: 0x6b0e9c4c53cc789cf183c4d7, + limb2: 0x108a58a15f00486c, + limb3: 0x0, }, u384 { - limb0: 0x72c3ed2ea6f03246d543de70, - limb1: 0xc7e5e4f9d80395f15ced28ab, - limb2: 0xaadcc74b663b9f65, - limb3: 0x0 + limb0: 0x3e6f5a712759078c8abcff09, + limb1: 0x3cdb6d3fdbcff322e7b726f1, + limb2: 0x10be69b66728a90a, + limb3: 0x0, }, u384 { - limb0: 0xdf2d0c776303badb0f853865, - limb1: 0x545214dbb412e5046b801108, - limb2: 0xc99c6dce6459b8f9, - limb3: 0x0 + limb0: 0x7d11e69cefc1d9599ffd62d4, + limb1: 0x7d4d22604ab90e0615626971, + limb2: 0x852e9c53afc07d5, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ u384 { - limb0: 0x1acfe9d2fd6b3f8d8f518559, - limb1: 0x18e928b571d2073b234996c8, - limb2: 0xc8a2b9b768e7bc68, - limb3: 0x0 + limb0: 0x38a1cb06b3c4456d2e55514a, + limb1: 0xf9bcb454138c4da9142f0d29, + limb2: 0x265e829839168df7, + limb3: 0x0, }, u384 { - limb0: 0xa9fe1cbbbc3b1342b32d9a80, - limb1: 0x8bb1de944ef821cde847abc, - limb2: 0x4f9ddbbfd1f97ce8, - limb3: 0x0 + limb0: 0x2958fb776c3d6e24fb5fb39f, + limb1: 0x3b267c0ba7bc0d84134146b4, + limb2: 0x1e73bc1021c8a8fa, + limb3: 0x0, }, u384 { - limb0: 0xdd05e7b4d8cd8922e56f18d8, - limb1: 0xe9cb20bcfd4a01f26b7e360d, - limb2: 0x161be09fac63158d, - limb3: 0x0 + limb0: 0x1af7398275e898db7e9fbbf7, + limb1: 0x399c81bc28a87884291a3853, + limb2: 0x2cd5025579960eea, + limb3: 0x0, }, u384 { - limb0: 0x1bf649c7638814200c56e18b, - limb1: 0x7f5b862ec929d15140f3d7cf, - limb2: 0x182d482e8e0fee1d, - limb3: 0x0 + limb0: 0xa27edf8950231a683b86ec7b, + limb1: 0xb6fe9587456c0e8e5ec1aadd, + limb2: 0x28921482f702a3a3, + limb3: 0x0, }, u384 { - limb0: 0x4bd9750537c9f69968cca47f, - limb1: 0xd925d7bf1562ccd1a02b6268, - limb2: 0x77798e70823a3e32, - limb3: 0x0 + limb0: 0x97b4bcd669eb258846783a81, + limb1: 0x724af3f3e4e4b48f19ca64fe, + limb2: 0x2545b0bfb165ebcb, + limb3: 0x0, }, u384 { - limb0: 0x7ee24bf51dad1eb7abdc4970, - limb1: 0x83b311cc70b7b8deb9e0407f, - limb2: 0xacefca25ba42903a, - limb3: 0x0 + limb0: 0xde51d759a66b9bb674981f39, + limb1: 0xb048736c64bace4dc18b1483, + limb2: 0x13aba092d15328f0, + limb3: 0x0, }, u384 { - limb0: 0xed42ed98aa4ce68e7ea4d6ca, - limb1: 0xd28e3b7f89ade788b9c53cad, - limb2: 0x6ba0aeb1597ac48b, - limb3: 0x0 + limb0: 0xaaf7ca345efb3f183f2c19ee, + limb1: 0x4f91fbd32ca2b0507a3d3716, + limb2: 0xfef365ba28bd72d, + limb3: 0x0, }, u384 { - limb0: 0x37eb6c5d6f69d8d2ef18d8ce, - limb1: 0x2c106d33c89b4e6c62170554, - limb2: 0xcdb16225edd0ed7c, - limb3: 0x0 + limb0: 0x3d57396e728b0ad32f239d1c, + limb1: 0x914db15f1d463d8154f5c083, + limb2: 0x249c23185a2450e9, + limb3: 0x0, }, u384 { - limb0: 0xb1668f6d2e2aa62f48d1e83a, - limb1: 0x5357db4a870b502b71800112, - limb2: 0x42485e47e873ccf8, - limb3: 0x0 + limb0: 0x51d12168722662e6e6346893, + limb1: 0x6ba3832ff676a32be60b8807, + limb2: 0xeb518b44a426381, + limb3: 0x0, }, u384 { - limb0: 0x77e0b14d4d43ae31a0127011, - limb1: 0xa1bcb077967e831bd82ee2e9, - limb2: 0x351a21a4d89218a0, - limb3: 0x0 + limb0: 0x4dedb8f5aa9bdd9d1c622663, + limb1: 0x9f8945e552befe9823d59f32, + limb2: 0x27240626be4255a, + limb3: 0x0, }, u384 { - limb0: 0xc000a2984961390a20d3451e, - limb1: 0x7fffffffffffffffeace0e22, - limb2: 0x7fffffff80000000, - limb3: 0x0 + limb0: 0x91149f3262891eca1a94f564, + limb1: 0xe479f46718ebe457020cba45, + limb2: 0x946c85929a487c3, + limb3: 0x0, }, + u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x2988e037d75f2efad547bde, - limb1: 0xad9cf2f4863788faac7f3f5a, - limb2: 0x7831e733952bca68, - limb3: 0x0 - }, - u384 { - limb0: 0xa1f9578d6e4fcf9a89b6c7a5, - limb1: 0x64a059fbdd4a728f6ee7d40c, - limb2: 0x449c214333b4f6b0, - limb3: 0x0 - }, - u384 { - limb0: 0xd9c3ce3c87d7fbb39cddc196, - limb1: 0x83a9c56dd60fdd48f3ff2d3, - limb2: 0xf01735af79c4c47c, - limb3: 0x0 - }, - u384 { - limb0: 0x57f0c9d0e08aa1bb41bf4c1f, - limb1: 0x99c7c5f8c18e660833f5ea9d, - limb2: 0x6d4f626ff62c9e66, - limb3: 0x0 - }, - u384 { - limb0: 0xff03541aceed41d647a68eeb, - limb1: 0x7a360e250b1d78fe939e2679, - limb2: 0x306c02418e1107e4, - limb3: 0x0 - }, - u384 { - limb0: 0x55b2fcea0cf297a6564afc06, - limb1: 0x352c9dbf2723b9ebaa8e0dda, - limb2: 0x9956a723ba0cfeb9, - limb3: 0x0 - }, - u384 { - limb0: 0x8f3113457b0ea1b36242e13f, - limb1: 0x1f49aba4112fe64c89c72f45, - limb2: 0x695e17929256c680, - limb3: 0x0 - }, - u384 { - limb0: 0xa6246443c530dc016e9925b7, - limb1: 0x945bdbfea7de78be1ce0898d, - limb2: 0x3952f117d1b17447, - limb3: 0x0 - }, - u384 { - limb0: 0xeae0cea857b30f6d52e01f70, - limb1: 0x50ec3e833940859cb5fc9b83, - limb2: 0xab8ae7a01aac605d, - limb3: 0x0 - }, - u384 { - limb0: 0x8a166479ff752e1f302407ec, - limb1: 0xc7014339e35f8e2f96b64d5c, - limb2: 0x76ebc75ba545ecb6, - limb3: 0x0 - }, - u384 { - limb0: 0x8a83debd8e113e08d34a273a, - limb1: 0xeab520ff22a332ce51988bc7, - limb2: 0x2746b1b77daae031, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0x8989995b9f22c0fd005529d, - limb1: 0x5f79b2ef0d4b0e08f5aba8ad, - limb2: 0xbef5fda891b529c9, - limb3: 0x0 - }, - u384 { - limb0: 0x880dc23026a67befb486c2ed, - limb1: 0xdeeb6b46303750a0d087c17a, - limb2: 0xcc83456e349cfa26, - limb3: 0x0 - }, - u384 { - limb0: 0x9e6fa2f9c183aeb0a5e36966, - limb1: 0x1b618e62a0b6deee51f070d5, - limb2: 0x1da849d3b48e002f, - limb3: 0x0 - }, - u384 { - limb0: 0x6467430af937e19db956b451, - limb1: 0x4ff8ec085d90433f8ae02193, - limb2: 0x8f0f464bca0f79b4, - limb3: 0x0 - }, - u384 { - limb0: 0x75651203c003ac2d983b8883, - limb1: 0x6bdfa51a35a60fc841fbe6a, - limb2: 0x94db8e7d598bcdc8, - limb3: 0x0 - }, - u384 { - limb0: 0x737f3e3c4f1392d416f49687, - limb1: 0xead48dbabdc98518b130f2e1, - limb2: 0x8fffd223c75baae8, - limb3: 0x0 - }, - u384 { - limb0: 0xa94521c785b4a52c8dfb1343, - limb1: 0xd8f51f21c8bb4db2df90fe18, - limb2: 0x3127571bdc6d53fe, - limb3: 0x0 - }, - u384 { - limb0: 0xfcffd519f779d4768c86f5d6, - limb1: 0xfee8020022d3fe8534fc97a8, - limb2: 0x5278c98f579c70fb, - limb3: 0x0 - }, - u384 { - limb0: 0x473e864f410aa4316880467c, - limb1: 0xb5f4d705b8b176fc01ddb9f5, - limb2: 0x28cc0bafaccc4e2e, - limb3: 0x0 - }, - u384 { - limb0: 0xbe2d8a153eb0cb541601723, - limb1: 0x11f23e1267e26959b91043da, - limb2: 0x36dd251d0515ed3a, - limb3: 0x0 - }, - u384 { - limb0: 0x8ce1321c1dd1ba9ad184a577, - limb1: 0xb360c25aeb985037736fb142, - limb2: 0x5d5beab9dfd3d157, - limb3: 0x0 - }, - u384 { - limb0: 0x3854cfedc8e4bf0be42dcf25, - limb1: 0x70829390ecaddd1752576468, - limb2: 0x775ef3f6241f0698, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { - limb0: 0x97c964a175109e2a779b3c5a, - limb1: 0xcf79a91c17f3ce4e9129f64f, - limb2: 0xd73fc938d576da9f, - limb3: 0x0 - }, - u384 { - limb0: 0x12877501d8d2a7ee65c11da6, - limb1: 0x69741a8d66bccc043d3b4923, - limb2: 0x5e84e63d0919f48f, - limb3: 0x0 - }, - u384 { - limb0: 0xee3b00ae97b310e953818556, - limb1: 0xc63f2d7af2cd35dde1f1025d, - limb2: 0x1e48bf9edd9429a8, - limb3: 0x0 - }, - u384 { - limb0: 0xb8d3d312c959696fe3e616dd, - limb1: 0xe6355698e79014711f349c80, - limb2: 0xbeb94b8d13b903d8, - limb3: 0x0 - }, - u384 { - limb0: 0xfebe039c361a8dbf13d88971, - limb1: 0x2360e77335f77147bf717ffd, - limb2: 0xc5db45478cc914df, - limb3: 0x0 - }, - u384 { - limb0: 0x1a5d2a00aa025bb4530bb442, - limb1: 0x4dd3172aa3870456c31d946, - limb2: 0xd988b64bf789e4c4, - limb3: 0x0 - }, - u384 { - limb0: 0x410343040bf3d739ab351dd1, - limb1: 0x659ea70314683bd12cb0e888, - limb2: 0xcdfd3cccec809e12, - limb3: 0x0 - }, - u384 { - limb0: 0xd5075ae510e633d5de061223, - limb1: 0xaf8e4ae50f011931e7ebe058, - limb2: 0xf6b15c8319b8b03, - limb3: 0x0 - }, - u384 { - limb0: 0x5ea61bb90bc81eab8bbf872, - limb1: 0x84bfae92c34caefb28415d90, - limb2: 0xa1636a3bc2da2e5d, - limb3: 0x0 - }, - u384 { - limb0: 0x8afa59ca262e2670d18cf9aa, - limb1: 0xe58d943660c31a89aaa54f35, - limb2: 0x9d5567b5fdf892f2, - limb3: 0x0 - }, - u384 { - limb0: 0x4f419b46401ed1e4dd936ab6, - limb1: 0xc3a9cb03e4100957a6a1e951, - limb2: 0x75ca5e45ff3a034e, - limb3: 0x0 - }, - u384 { - limb0: 0x17a8e365e94d919100d40a0d, - limb1: 0x44b898db47ef73ee264ffede, - limb2: 0x907d08524be653af, - limb3: 0x0 - }, - u384 { - limb0: 0x8a166479ff752e1f302407e9, - limb1: 0xc7014339e35f8e2f96b64d5c, - limb2: 0x76ebc75ba545ecb6, - limb3: 0x0 - }, - u384 { - limb0: 0x8a83debd8e113e08d34a273a, - limb1: 0xeab520ff22a332ce51988bc7, - limb2: 0x2746b1b77daae031, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x3e9ac697de0fb0d0bce9e3ef, - limb1: 0x28985cbd67d2d6017f0dd303, - limb2: 0x13a079b2cde7de95, - limb3: 0x0 - }, - u384 { - limb0: 0x5784a91a5e09d24e7c4a2665, - limb1: 0x7fffffffffffffff7c074594, - limb2: 0x7fffffff80000000, - limb3: 0x0 - } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x6513eefffd639c329a99afbd, - limb1: 0x9ce22fc8742ec540b0de3d3b, - limb2: 0xd7ded2c9aae14c61, - limb3: 0x0 - }, - u384 { - limb0: 0xa75a901041a7ffeb1948681e, - limb1: 0xa976ff651d693590a1e829e6, - limb2: 0x8929eef2d6ab1ec5, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0xb07e6b3a5ed7e67301728245, - limb1: 0x4e03a7d7de2ac24de5407ee0, - limb2: 0x7f29759598e3c0b0, - limb3: 0x0 - }, - u384 { - limb0: 0x5c5f301b858022994d465031, - limb1: 0xc08d2938fbd48b5fdf581bc4, - limb2: 0xe9a6466ac0ffe09e, - limb3: 0x0 - }, - u384 { - limb0: 0x10e1ea826b745f369ca22ab1, - limb1: 0xc9b830e8f333460c1ff36087, - limb2: 0x3fab8dee60bc7026, - limb3: 0x0 - } ] .span(), - b_den: array![ - u384 { - limb0: 0x9eb5e43afd29d4ed8ac81960, - limb1: 0x27eab19e46b6f4f553dd838e, - limb2: 0x82214f6ce87b4222, - limb3: 0x0 - }, - u384 { - limb0: 0xa25aed65db09fb487c4bebe5, - limb1: 0x4e0a6296e09ebecfc4c7d301, - limb2: 0x5a1c435318378829, - limb3: 0x0 - }, - u384 { - limb0: 0xd64400c576d63c7cdbf927ef, - limb1: 0xb786bf261e5ce60a7f6488fe, - limb2: 0xbf4868fe26393798, - limb3: 0x0 - }, - u384 { - limb0: 0x6513eefffd639c329a99afba, - limb1: 0x9ce22fc8742ec540b0de3d3b, - limb2: 0xd7ded2c9aae14c61, - limb3: 0x0 - }, - u384 { - limb0: 0xa75a901041a7ffeb1948681e, - limb1: 0xa976ff651d693590a1e829e6, - limb2: 0x8929eef2d6ab1ec5, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() }, }; let derive_point_from_x_hint = DerivePointFromXHint { y_last_attempt: u384 { - limb0: 0x598feb375d68c3ce3bc7b10e, - limb1: 0x20ad5063310df40ccd214d9f, - limb2: 0x5681ef803a412634, - limb3: 0x0 + limb0: 0x24d12184caf3529014dfc09b, + limb1: 0x2f1cf63492c98e99a390fce9, + limb2: 0x933fba0e3dda29c, + limb3: 0x0, }, g_rhs_sqrt: array![].span(), }; let points = array![ G1Point { x: u384 { - limb0: 0x113c8d620e3745e45e4389b8, - limb1: 0x85b8ff52d905fd02fe191c3f, - limb2: 0xf5d132d685201517, - limb3: 0x0 + limb0: 0x86b402ce02e7c7ca81f13d51, + limb1: 0x39493672733a9289a36020c1, + limb2: 0x7f40d91dc5413d3, + limb3: 0x0, }, y: u384 { - limb0: 0x60c0ba1b358f375b2362662e, - limb1: 0x6abfc829d93e09aa5174ec04, - limb2: 0x7bc4637aca93cb5a, - limb3: 0x0 - } + limb0: 0x371e7b6a5c01505bd4334e81, + limb1: 0x2f596ae4492a87c66f7bda1a, + limb2: 0x9dffb4dcdb94df9, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0xd3ff147ff0ee4213f51f677d, - limb1: 0x431366a7732a6e4a6b942255, - limb2: 0x9fe743b25d39a591, - limb3: 0x0 + limb0: 0x20669ef12954f8e3bbc8b4d3, + limb1: 0x396a6f7243c27ce553121ee3, + limb2: 0x11438ca2ec259aed, + limb3: 0x0, }, y: u384 { - limb0: 0x7f8bb562ff60a902ef14bcb0, - limb1: 0xeb9420089fa531db62e806a6, - limb2: 0xfd028df433dfd5cc, - limb3: 0x0 - } + limb0: 0xa560a5759c90985fde99aca0, + limb1: 0xc5b21186cc6dcd0421026513, + limb2: 0x21fb1f47c6ac55b3, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0x46ae31f6fc294ad0814552b6, - limb1: 0x2d54cc811efaf988efb3de23, - limb2: 0x2a2cc02b8f0c419f, - limb3: 0x0 + limb0: 0x3c26f4ff476ab777dc184776, + limb1: 0xbccb2cba46cf421f11eb4d14, + limb2: 0x27ec44064c727a3d, + limb3: 0x0, }, y: u384 { - limb0: 0xaec889b9d8ce51c4a2c3586f, - limb1: 0xa2b07874c333bfee9f78e13e, - limb2: 0xc445de21be8d8709, - limb3: 0x0 - } + limb0: 0xa893636703904fcbe984618c, + limb1: 0x73b210a224190b9b7b28784c, + limb2: 0x20f05486689dff6c, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0x7e47d1c2d19c21b2f6870259, - limb1: 0xe701b40af42001c38bca00db, - limb2: 0xd87ea1720d4dd3d6, - limb3: 0x0 + limb0: 0x74f2a24c1853d803c1b9e310, + limb1: 0x9e78bb9233603b686b9d27, + limb2: 0x1d13a84fbcd96e81, + limb3: 0x0, }, y: u384 { - limb0: 0x5b1d6cc74985ce49a1f737fe, - limb1: 0xb9127c572c3f091c031c249c, - limb2: 0x1392711e1576aa6f, - limb3: 0x0 - } + limb0: 0xe5bc08950f2f1accd92245f4, + limb1: 0x3b653bbe7b6cfd9074b07f89, + limb2: 0x1638a8a07b89463b, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0xb71f95ea692ed186e06e4c37, - limb1: 0x807276cd9cc59718bb11dbe9, - limb2: 0x10756a25836d67ca, - limb3: 0x0 + limb0: 0x549a4dee31909bd274709d7c, + limb1: 0x2628a928b4ed90e98d5de1f, + limb2: 0x1f2c2eeb200495b, + limb3: 0x0, }, y: u384 { - limb0: 0xd34211b3520c83c5f9be99af, - limb1: 0x8f19a28ceef67bbda102ffe7, - limb2: 0x7ac2b92030d351cc, - limb3: 0x0 - } + limb0: 0xbae71f4f781675cce1119290, + limb1: 0x18995b20b8d0966bac7f5c23, + limb2: 0x1f7a255155ab7785, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0x411bb5d0fbe844f025c7178c, - limb1: 0xcf603787227b7ac499d6d1c4, - limb2: 0x5f6b2479862eb2f8, - limb3: 0x0 + limb0: 0x616d2877cb47206e625b0076, + limb1: 0xa7255531af3575b0a682d6df, + limb2: 0xdd4a0db8187661d, + limb3: 0x0, }, y: u384 { - limb0: 0xce60303cfcb98726ff64a1e5, - limb1: 0xa64534c614754b3527588d25, - limb2: 0x44f75e245622181, - limb3: 0x0 - } + limb0: 0xea99c54030edacb739c9ad0f, + limb1: 0x1e2e84792f7a12b330406ecd, + limb2: 0x70f1e1a9673a240, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0x8a703177da18d4ede707c057, - limb1: 0x7d6c11e754ab6fbe73deea43, - limb2: 0xdf9787168190a047, - limb3: 0x0 + limb0: 0x4ca9473b8cae66da0baf8eca, + limb1: 0x9ca627187edabffeb80da281, + limb2: 0xda800cad866dc3c, + limb3: 0x0, }, y: u384 { - limb0: 0x2e6585ab5f125a34fef37875, - limb1: 0xb70e9f02ce7744197172a117, - limb2: 0x60e305f9fe6f2298, - limb3: 0x0 - } + limb0: 0x6dcd62554ccd88a00f3e90b3, + limb1: 0x141b8118cd6873dc9ac01a64, + limb2: 0x19146bc96fa6a4bd, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0x712f72f3929408ff68af059d, - limb1: 0x4f72cea12cd115dc1c8639f5, - limb2: 0xc6d5ae1b897ffe77, - limb3: 0x0 + limb0: 0xd21eca6170588371cf0fef12, + limb1: 0x2aae89b6d1784d7fe5d6f233, + limb2: 0x2fa67b7cd137898c, + limb3: 0x0, }, y: u384 { - limb0: 0xfcf91f56bad0659142668837, - limb1: 0xa15458b49bcdad6c870e3889, - limb2: 0x81a1342e70b1b765, - limb3: 0x0 - } + limb0: 0xb20856046d39da92c0a6898a, + limb1: 0xc9dba030db3ed937e781ae4d, + limb2: 0x695a8c76fb0f771, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0x461d7579f9613d3168fc6220, - limb1: 0x7626024a6195fe0eafcea08b, - limb2: 0x32e91b268a032443, - limb3: 0x0 + limb0: 0x919e8724022c5bd17875261b, + limb1: 0x3a2b09cc9362be43a8573a0, + limb2: 0x2cf4abb949016ad7, + limb3: 0x0, }, y: u384 { - limb0: 0xcdc7ae298071a741aafd4035, - limb1: 0x9a9bdfbdb824dc1278457a10, - limb2: 0x17fbec3713dfd145, - limb3: 0x0 - } + limb0: 0x89062bf5adf784b526337420, + limb1: 0xf710d8fb0beb9551fe0e08f3, + limb2: 0x1577b6c8f024c52d, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0x9b85054533e9d24310265ee0, - limb1: 0x51cbb79b2625c435ba43bbef, - limb2: 0x1fd81fcb136c629b, - limb3: 0x0 + limb0: 0x2cb6c8386e51647e028876a2, + limb1: 0x3eeb71e38623705690872fa1, + limb2: 0xbf610b0d76e1a8f, + limb3: 0x0, }, y: u384 { - limb0: 0x96378a2e47ab50246a9cf131, - limb1: 0x4d0f08867537268cf39eae04, - limb2: 0x4eeb60396f3e5f52, - limb3: 0x0 - } + limb0: 0x92f468ac225e9f9a2b52929d, + limb1: 0x28e7d79e30f3f4d4abf38c05, + limb2: 0x2e2ba523e6456871, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0x4e9960d402494fb117251955, - limb1: 0xc0fb055de656d6ac2ba4da86, - limb2: 0x800a21e8619f448f, - limb3: 0x0 + limb0: 0x7bfeb500d87c8d6a89e3b500, + limb1: 0x114bfa8db0c1f0065e73cf9a, + limb2: 0x129e9c5a3641b28e, + limb3: 0x0, }, y: u384 { - limb0: 0x21ba9af739425b664464e3d5, - limb1: 0xd09194888c2ffcf16e93e0c9, - limb2: 0x5d4d3cd0684b6cd1, - limb3: 0x0 - } + limb0: 0x755ef61cf917721bfef36992, + limb1: 0x8f3d6b6348b89a2c0cfa9d3f, + limb2: 0x272de7db2186fd11, + limb3: 0x0, + }, }, G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, ] .span(); let scalars = array![ u256 { low: 0x0, high: 0x0 }, u256 { - low: 0x101fbcccded733e8b421eaeb534097ca, high: 0x38c1962e9148624feac1c14f30e9c5cc + low: 0x4a84eb038d1fd9b74d2b9deb1beb3711, high: 0x154bc8ce8c25166a1ff39849b4e1357d, }, u256 { - low: 0x247a8333f7b0b7d2cda8056c3d15eef7, high: 0x1759edc372ae22448b0163c1cd9d2b7d + low: 0x3405095c8a5006c1ec188efbd080e66e, high: 0x2305d1699a6a5f92cca74147f6be1f72, }, u256 { - low: 0xe005b86051ef1922fe43c49e149818d1, high: 0x7d41e602eece328bff7b118e820865d6 + low: 0x1775336d71eacd0549a3e80e966e1277, high: 0x144a7edf6288e1a5cc45782198a6416d, }, u256 { - low: 0x4a84eb038d1fd9b74d2b9deb1beb3711, high: 0x552f233a8c25166a1ff39849b4e1357d + low: 0x2f1205544a5308cc3dfabc08935ddd72, high: 0x21c38572fcd81b5d24bace4307bf326, }, u256 { - low: 0x3405095c8a5006c1ec188efbd080e66e, high: 0x8c1745a79a6a5f92cca74147f6be1f72 + low: 0x42930b33a81ad477fb3675b89cdeb3e6, high: 0x2b70369e16febaa011af923d79fdef7c, }, u256 { - low: 0x1775336d71eacd0549a3e80e966e1277, high: 0x5129fb7c6288e1a5cc45782198a6416d + low: 0x2648ee38e07405eb215663abc1f254b8, high: 0x522c9d6d7ab792809e469e6ec62b2c8, }, u256 { - low: 0x2f1205544a5308cc3dfabc08935ddd72, high: 0x870e15c2fcd81b5d24bace4307bf326 + low: 0x85940927468ff53d864a7a50b48d73f1, high: 0xdc5dba1d977e9933c49d76fcfc6e625, }, u256 { - low: 0x42930b33a81ad477fb3675b89cdeb3e6, high: 0xadc0da7a16febaa011af923d79fdef7c + low: 0xd344749096fd35d0adf20806e5214606, high: 0x119d0dd09466e4726b5f5241f323ca74, }, u256 { - low: 0x2648ee38e07405eb215663abc1f254b8, high: 0x148b2758d7ab792809e469e6ec62b2c8 + low: 0x5306f3f5151665705b7c709acb175a5a, high: 0x2592a1c37c879b741d878f9f9cdf5a86, }, u256 { - low: 0xd450fe4aec4f217bb306d1a8e5eeac76, high: 0xd67e55fd642bfa42aef9c00b8a64c1b9 + low: 0x30bcab0ed857010255d44936a1515607, high: 0x1158af9fbb42e0b20426465e3e37952d, }, u256 { - low: 0x85940927468ff53d864a7a50b48d73f1, high: 0x37176e84d977e9933c49d76fcfc6e625 + low: 0x5f3f563838701a14b490b6081dfc8352, high: 0x1b45bb86552116dd2ba4b180cb69ca38, }, ] .span(); let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 3 + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 5, ); assert!( res == G1Point { x: u384 { - limb0: 0xef4b4e197306579c6764d18d, - limb1: 0xcad67ed94cd304765c5ef1d0, - limb2: 0x3aaf8e6e9efeb7a8, - limb3: 0x0 + limb0: 0x58e8c62727bd58b1847d5e1d, + limb1: 0x20564e0613740967122967a3, + limb2: 0xc7c708c96cd0b25, + limb3: 0x0, }, y: u384 { - limb0: 0xaa6037d51b7470230cec4f93, - limb1: 0x65094a2650b8285563a053b4, - limb2: 0x312f741cf953042d, - limb3: 0x0 - } - } + limb0: 0xd893400d48ccf8414624fb95, + limb1: 0xc289afa9c3e752bb82dd8543, + limb2: 0x4f5b298e2aaddef, + limb3: 0x0, + }, + }, ); } #[test] - fn test_msm_SECP256K1_1P() { - let scalars_digits_decompositions = Option::Some( - array![(array![0x0,].span(), array![0x0,].span()),].span() - ); + fn test_msm_BN254_1P_edge_case() { + let scalars_digits_decompositions = Option::None; let msm_hint = MSMHint { Q_low: G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, Q_high: G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, Q_high_shifted: G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, - SumDlogDivLow: FunctionFelt { + RLCSumDlogDiv: FunctionFelt { a_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - b_den: array![ + a_den: array![ u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), b_num: array![ - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - a_den: array![ + b_den: array![ u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] - .span() + .span(), }, }; let derive_point_from_x_hint = DerivePointFromXHint { y_last_attempt: u384 { - limb0: 0x1f09ea597dd1b76ad0589c17, - limb1: 0xdb92b549b432162903e3e952, - limb2: 0x7812a16bfa702609, - limb3: 0x0 + limb0: 0xb4b30030d604f094d3602296, + limb1: 0xa0e983b28babaffaeaa2a062, + limb2: 0x471c9e526d4e91e, + limb3: 0x0, }, g_rhs_sqrt: array![].span(), }; let points = array![ G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, ] .span(); - let scalars = array![u256 { low: 0x0, high: 0x0 },].span(); + let scalars = array![u256 { low: 0x0, high: 0x0 }].span(); let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 2 + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 0, ); assert!( res == G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + }, ); } #[test] - fn test_msm_SECP256K1_2P() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - ] - .span() - ), - ] - .span() - ); + fn test_msm_BN254_2P_edge_case() { + let scalars_digits_decompositions = Option::None; let msm_hint = MSMHint { Q_low: G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, Q_high: G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, Q_high_shifted: G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, - SumDlogDivLow: FunctionFelt { + RLCSumDlogDiv: FunctionFelt { a_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), a_den: array![ u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), b_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), b_den: array![ @@ -55907,36949 +15682,471 @@ mod msm_tests { u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - b_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() }, }; let derive_point_from_x_hint = DerivePointFromXHint { y_last_attempt: u384 { - limb0: 0x7eaaa823bf2e8ea170ebfece, - limb1: 0xc9db82034b10fa27593cd4b, - limb2: 0x18f1b81a89a11888, - limb3: 0x0 + limb0: 0x4438dbd4fc537b19aa9029a1, + limb1: 0x71338662165803d1aeba36ff, + limb2: 0x8463adc2f6b3ff5, + limb3: 0x0, }, - g_rhs_sqrt: array![].span(), + g_rhs_sqrt: array![ + u384 { + limb0: 0x75937bc3dba286ad2bd8fe5, + limb1: 0x575d166325014e975405464f, + limb2: 0x1437873db8d7dca1, + limb3: 0x0, + }, + ] + .span(), }; let points = array![ G1Point { x: u384 { - limb0: 0x393dead57bc85a6e9bb44a70, - limb1: 0x64d4b065b3ede27cf9fb9e5c, - limb2: 0xda670c8c69a8ce0a, - limb3: 0x0 + limb0: 0x5c724369afbc772d02aed58e, + limb1: 0x2cd3bc838c66439a3d6160b, + limb2: 0x72f26b55fb56be1, + limb3: 0x0, }, y: u384 { - limb0: 0x789872895ad7121175bd78f8, - limb1: 0xc0deb0b56fb251e8fb5d0a8d, - limb2: 0x3f10d670dc3297c2, - limb3: 0x0 - } + limb0: 0x772ca79c580e121ca148fe75, + limb1: 0xce2f55e418ca01b3d6d1014b, + limb2: 0x2884b1dc4e84e30f, + limb3: 0x0, + }, }, G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, ] .span(); let scalars = array![ u256 { low: 0x0, high: 0x0 }, u256 { - low: 0xeb1167b367a9c3787c65c1e582e2e662, high: 0xf7c1bd874da5e709d4713d60c8a70639 + low: 0xb4862b21fb97d43588561712e8e5216a, high: 0x967d0cae6f4590b9a164106cf6a659e, }, ] .span(); let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 2 + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 0, ); assert!( res == G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + }, ); } #[test] - fn test_msm_SECP256K1_3P() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - ] - .span() - ), - ] - .span() - ); + fn test_msm_BN254_3P_edge_case() { + let scalars_digits_decompositions = Option::None; let msm_hint = MSMHint { Q_low: G1Point { x: u384 { - limb0: 0x81f93764cd87ff5af9aad87f, - limb1: 0x8aa0792747a5b8ca16b9e369, - limb2: 0xce30fe4be7b17451, - limb3: 0x0 - }, - y: u384 { - limb0: 0x5b77703ae4639b17cfca6124, - limb1: 0x86b771c3a15eee8b1ca9feaa, - limb2: 0x5acc99b6152d28a4, - limb3: 0x0 - } - }, - Q_high: G1Point { - x: u384 { - limb0: 0xff8927eca139c99d7960c8ef, - limb1: 0xec91eee7a0301418e07f41fc, - limb2: 0xb49b07479d1c26aa, - limb3: 0x0 - }, - y: u384 { - limb0: 0xe496c28fbc13ed8a0324b632, - limb1: 0x2d5583856241be833fec7c9d, - limb2: 0xff1c723bbb39f40b, - limb3: 0x0 - } - }, - Q_high_shifted: G1Point { - x: u384 { - limb0: 0x3efedfaf5b7ce0a80c4fa5a1, - limb1: 0x2c16205bc2efe9dcc6eefa9a, - limb2: 0x3f2cefb8efbcc695, - limb3: 0x0 + limb0: 0x5b9b511a35490c4f05d6e4e7, + limb1: 0xf11ec8642a0df9cb0b8f2cdd, + limb2: 0x2b568cd4a3e221ca, + limb3: 0x0, }, y: u384 { - limb0: 0xc3eeedd13fa2c621a214d57, - limb1: 0x5e42015603c2cf1a184c7bdb, - limb2: 0x8ab02685472a4433, - limb3: 0x0 - } - }, - SumDlogDivLow: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x21ca4954703e20a32a53c14e, - limb1: 0x77928094e2384846615f9f3, - limb2: 0xb0933d87df5f16c0, - limb3: 0x0 - }, - u384 { - limb0: 0x39104445c9ee329d5ab7969d, - limb1: 0xffffffffffffffff8f41b07b, - limb2: 0x7fffffffffffffff, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x1287ed4d64ace9b7a43a0e54, - limb1: 0xa8bd72a441196b6133cce959, - limb2: 0xc692b7558ef0a607, - limb3: 0x0 - }, - u384 { - limb0: 0x800903913f0f465f70dde2a5, - limb1: 0xe77cd0cd60e03364f10ac507, - limb2: 0x6ef16ab1aefb800b, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0xa4ddcdaa4d1f21498a8e60e2, - limb1: 0x3139c084333af9819a02b0ae, - limb2: 0x7805f31083be707c, - limb3: 0x0 - }, - u384 { - limb0: 0x671b070bbd9488ed6f637c14, - limb1: 0x15d2edbf03b6ef7a39eb1db0, - limb2: 0xdc5754685cf24343, - limb3: 0x0 - }, - u384 { - limb0: 0x95886720b10b40982ba07bbc, - limb1: 0x7722212fe97468b0f47f0f64, - limb2: 0x1a324051317a343d, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { - limb0: 0x81b77d1dc0ba640a7d967761, - limb1: 0x9d2e227dc7b1efa86a9a616f, - limb2: 0x6e030356e8948a35, - limb3: 0x0 - }, - u384 { - limb0: 0x803f18f8b96aec9f16113df6, - limb1: 0x5469b59da62167c2974b6334, - limb2: 0x899eadbc8e08053, - limb3: 0x0 - }, - u384 { limb0: 0x7, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { - limb0: 0x1287ed4d64ace9b7a43a0e54, - limb1: 0xa8bd72a441196b6133cce959, - limb2: 0xc692b7558ef0a607, - limb3: 0x0 - }, - u384 { - limb0: 0x800903913f0f465f70dde2a5, - limb1: 0xe77cd0cd60e03364f10ac507, - limb2: 0x6ef16ab1aefb800b, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x4bb28979b0b79c1777f1fc30, - limb1: 0xb5224e011b2f31ce93f717ab, - limb2: 0x43c2e0f9ce3d46a9, - limb3: 0x0 - }, - u384 { - limb0: 0x18d0afe0edb98065b4e3232d, - limb1: 0xffffffffffffffffee22305e, - limb2: 0xffffffffffffffff, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { - limb0: 0xcac2235c929f3b69ad67b0f5, - limb1: 0x79851b8757cf23514a81081c, - limb2: 0xcae3cc5dad5be629, - limb3: 0x0 - }, - u384 { - limb0: 0x27913096b5d7c1cf127f235, - limb1: 0x858b5b0d0855d81627456674, - limb2: 0x888761b5f990cdb2, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0x41944f6c68d802cae76fecb5, - limb1: 0xb68878783c315c2955f84db0, - limb2: 0x9e6ecc5374b776d3, - limb3: 0x0 - }, - u384 { - limb0: 0x6303520371c13385e632d785, - limb1: 0x166eb934b430a9de83ef040e, - limb2: 0x43c0f15a5445867b, - limb3: 0x0 - }, - u384 { - limb0: 0x32f780ed8e7def611a1f885f, - limb1: 0x18358fe9b350098a2327a652, - limb2: 0xe46a2879949b53d7, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { - limb0: 0x8b4ef788025a9fe8bdd5e9c8, - limb1: 0x52a3c0b366a9f739098738c9, - limb2: 0x8c3a968fbd834b22, - limb3: 0x0 - }, - u384 { - limb0: 0x114f8541ef8e64cd9817aae6, - limb1: 0xa6cf7d5b3a58e89b12e5cd2c, - limb2: 0xbbb3abf9d2f59fe1, - limb3: 0x0 - }, - u384 { limb0: 0x7, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { - limb0: 0xcac2235c929f3b69ad67b0f5, - limb1: 0x79851b8757cf23514a81081c, - limb2: 0xcae3cc5dad5be629, - limb3: 0x0 - }, - u384 { - limb0: 0x27913096b5d7c1cf127f235, - limb1: 0x858b5b0d0855d81627456674, - limb2: 0x888761b5f990cdb2, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ - u384 { - limb0: 0xcd8a7b62cfcea038501befeb, - limb1: 0x4713597234ad41eaac4558da, - limb2: 0x80e4af25ec15667, - limb3: 0x0 - }, - u384 { - limb0: 0xd784a91a5e09d24dfc4a247d, - limb1: 0xffffffffffffffff7c074593, - limb2: 0x7fffffffffffffff, - limb3: 0x0 - } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x8340be3f51dbe72cd3a11c66, - limb1: 0x3f5e87376a3a6565abe95a96, - limb2: 0x726d640994dd9b14, - limb3: 0x0 - }, - u384 { - limb0: 0xc177f864034955b97a4f8d9f, - limb1: 0xe757f0bc9ce0020a5891c368, - limb2: 0xc3808ff732712bf, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0x62690bd5c84ce92d37608041, - limb1: 0xa00cf01b83ee2270a792302, - limb2: 0x7e56f00b06c537aa, - limb3: 0x0 - }, - u384 { - limb0: 0x3af32c63776a038f2db2cba0, - limb1: 0xc9c24f93b2218a2c2843c50d, - limb2: 0xa4ec9825cf07cda9, - limb3: 0x0 - }, - u384 { - limb0: 0x8ca46d17a4af2bfba87d85eb, - limb1: 0xaec1825b52f8612c11d67e30, - limb2: 0xe70921f36970a3c1, - limb3: 0x0 - } - ] - .span(), - b_den: array![ - u384 { - limb0: 0x96c533bb3d03523cc967d23d, - limb1: 0xbb95b283e798c5c7b3617a1d, - limb2: 0x20fdbc43120f3d8d, - limb3: 0x0 - }, - u384 { - limb0: 0x4a47cabc17015812582cdf59, - limb1: 0x536795284a200e486bfc57dd, - limb2: 0x55883efc2611833f, - limb3: 0x0 - }, - u384 { limb0: 0x7, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { - limb0: 0x8340be3f51dbe72cd3a11c66, - limb1: 0x3f5e87376a3a6565abe95a96, - limb2: 0x726d640994dd9b14, - limb3: 0x0 - }, - u384 { - limb0: 0xc177f864034955b97a4f8d9f, - limb1: 0xe757f0bc9ce0020a5891c368, - limb2: 0xc3808ff732712bf, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - }; - let derive_point_from_x_hint = DerivePointFromXHint { - y_last_attempt: u384 { - limb0: 0x5988327c732efe751b2c9aba, - limb1: 0x6b4110ddcbbb0e7c4826662f, - limb2: 0x243035d34ac20498, - limb3: 0x0 - }, - g_rhs_sqrt: array![ - u384 { - limb0: 0x738294b7d794fa4fbd1ae3cc, - limb1: 0x9fc0ded6631c62d69739edaf, - limb2: 0x5b10679078ad2a2c, - limb3: 0x0 - } - ] - .span(), - }; - let points = array![ - G1Point { - x: u384 { - limb0: 0x393dead57bc85a6e9bb44a70, - limb1: 0x64d4b065b3ede27cf9fb9e5c, - limb2: 0xda670c8c69a8ce0a, - limb3: 0x0 + limb0: 0xb45c3680d8359a0fdb47de6f, + limb1: 0x4c17fe1c96f237095df8c737, + limb2: 0x118fc0474955ac2b, + limb3: 0x0, }, - y: u384 { - limb0: 0x789872895ad7121175bd78f8, - limb1: 0xc0deb0b56fb251e8fb5d0a8d, - limb2: 0x3f10d670dc3297c2, - limb3: 0x0 - } }, - G1Point { + Q_high: G1Point { x: u384 { - limb0: 0xfdfdc509f368ba4395773d3a, - limb1: 0x8de2b60b577a13d0f83b578e, - limb2: 0xc2dd970269530ba2, - limb3: 0x0 - }, - y: u384 { - limb0: 0x589fa250d638e35400c12ddf, - limb1: 0xb3aac19fcb5095808402aa7f, - limb2: 0xed6de6590d0195d1, - limb3: 0x0 - } - }, - G1Point { - x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - }, - ] - .span(); - let scalars = array![ - u256 { low: 0x0, high: 0x0 }, - u256 { - low: 0xe443df789558867f5ba91faf7a024204, high: 0x23a7711a8133287637ebdcd9e87a1613 - }, - u256 { - low: 0x1846d424c17c627923c6612f48268673, high: 0xfcbd04c340212ef7cca5a5a19e4d6e3c - }, - ] - .span(); - - let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 2 - ); - assert!( - res == G1Point { - x: u384 { - limb0: 0x55909ba28af82ea934a4b85d, - limb1: 0x4bf448ca5d57fb119c843e0a, - limb2: 0x6a2275491b991ee3, - limb3: 0x0 - }, - y: u384 { - limb0: 0x5bf4bf0cefc9553422e60eb0, - limb1: 0x178d55925d3d72f44783f626, - limb2: 0xe13a21d7302f8139, - limb3: 0x0 - } - } - ); - } - - - #[test] - fn test_msm_SECP256K1_4P() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - ] - .span() - ), - ] - .span() - ); - let msm_hint = MSMHint { - Q_low: G1Point { - x: u384 { - limb0: 0x8d0166bbf7e071295729418b, - limb1: 0xdd542b48fa7df1e7e4e9d09d, - limb2: 0xa21f38683fe17143, - limb3: 0x0 - }, - y: u384 { - limb0: 0x700402df5c88156eeeba2331, - limb1: 0x5e608cc7fd03942d78c3d40c, - limb2: 0xc8e85b1af8bfc00d, - limb3: 0x0 - } - }, - Q_high: G1Point { - x: u384 { - limb0: 0x657faa148353381fc9ac1d0c, - limb1: 0x4a7ef201b9db61fbb9c9495d, - limb2: 0x1e87a915d7439340, - limb3: 0x0 - }, - y: u384 { - limb0: 0x70e1a8484ebeb69366e77b38, - limb1: 0xd7ccd4a605455a2bf8f36b6e, - limb2: 0x993c64100bc56c8a, - limb3: 0x0 - } - }, - Q_high_shifted: G1Point { - x: u384 { - limb0: 0x2c45ea101d19f12cad40ffe8, - limb1: 0xbbfb500f69aac418d22f893c, - limb2: 0x75f7dcfb2d65ce2d, - limb3: 0x0 - }, - y: u384 { - limb0: 0xf94b1079627a99b6e7f182c7, - limb1: 0xd1b1c151888d2b8b4cd9ed17, - limb2: 0xac00455a2a419172, - limb3: 0x0 - } - }, - SumDlogDivLow: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x89888c72d09a572c00cee966, - limb1: 0xc53ef5856b08cfa414484239, - limb2: 0x8881b71fa130bb76, - limb3: 0x0 - }, - u384 { - limb0: 0x23b9dca7bc40144b5b40e162, - limb1: 0xc14e8817a8f8d47323d7b39c, - limb2: 0x4a1c897575867f82, - limb3: 0x0 - }, - u384 { - limb0: 0xd2eb4c69b0a6de0046011d58, - limb1: 0xffffffffffffffff7024d873, - limb2: 0xffffffffffffffff, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x11b338305c1ea8980ebcecfe, - limb1: 0xde4e23180e593396311f1995, - limb2: 0x7e48779b6f3ade6, - limb3: 0x0 - }, - u384 { - limb0: 0xdaacf3550937a73806149be0, - limb1: 0x4b7d37c9d4206f50b821e86f, - limb2: 0xcdb64ea021b8f1d2, - limb3: 0x0 - }, - u384 { - limb0: 0x4b9ae5862896ed096cb38d54, - limb1: 0x60e6ca4c2b4c8f6a20624c45, - limb2: 0xa57c7487a395ab61, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0xb31ca5011384270867d59b53, - limb1: 0x5a953c8e049df79996503fe3, - limb2: 0xd6bea30734a2e830, - limb3: 0x0 - }, - u384 { - limb0: 0x8ed2cd98a404ff8e51fea9fd, - limb1: 0x5d6d0e2819a1865dc937b6a, - limb2: 0x8cdc581014ae98d7, - limb3: 0x0 - }, - u384 { - limb0: 0x259331abc25b6c6391cf52a7, - limb1: 0x59cdc38548a1dfcc50113934, - limb2: 0xa222e6c19f215537, - limb3: 0x0 - }, - u384 { - limb0: 0x84ca0b384a3c090b76840af4, - limb1: 0x6fbd707fba903f9bd089964a, - limb2: 0xa506ad0411122f3e, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { - limb0: 0x7be6895284d69c28672a7af2, - limb1: 0x1422f5a86470691b57d9b313, - limb2: 0x373fb45400a9c150, - limb3: 0x0 - }, - u384 { - limb0: 0xfabaa7534085928d2a905635, - limb1: 0x106c8684cce30b3508ed5b0e, - limb2: 0x9ffc2660ec0e9cc0, - limb3: 0x0 - }, - u384 { - limb0: 0x113c46ab1c207b45f8e8ec90, - limb1: 0xa64f88152f17ebe6e2b015e5, - limb2: 0x86672fb57917afa9, - limb3: 0x0 - }, - u384 { - limb0: 0x11b338305c1ea8980ebced05, - limb1: 0xde4e23180e593396311f1995, - limb2: 0x7e48779b6f3ade6, - limb3: 0x0 - }, - u384 { - limb0: 0xdaacf3550937a73806149be0, - limb1: 0x4b7d37c9d4206f50b821e86f, - limb2: 0xcdb64ea021b8f1d2, - limb3: 0x0 - }, - u384 { - limb0: 0x4b9ae5862896ed096cb38d54, - limb1: 0x60e6ca4c2b4c8f6a20624c45, - limb2: 0xa57c7487a395ab61, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x8b855791f4943105bc6455be, - limb1: 0x3f1f4630510c01c0a8295428, - limb2: 0xc87d93c6ff7550f7, - limb3: 0x0 - }, - u384 { - limb0: 0x827fbf60587914648bed9ea1, - limb1: 0x9c06ff98113401852edd747c, - limb2: 0xcce4b56c1add3351, - limb3: 0x0 - }, - u384 { - limb0: 0xfbc03718caec8c85589651d, - limb1: 0xffffffffffffffff7071f4bf, - limb2: 0x7fffffffffffffff, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x14a2da87f1f40e937aac850d, - limb1: 0x5f304d09a4ed11c02d08529a, - limb2: 0x3ab0a24b31f5900b, - limb3: 0x0 - }, - u384 { - limb0: 0x23b217fbbf3eb5b751441540, - limb1: 0xb672e644cb045d23c62ebd50, - limb2: 0x4d7cf07c6fef3616, - limb3: 0x0 - }, - u384 { - limb0: 0x731ca22d9d242613fa30b5a4, - limb1: 0xf3bc03936bef1f564b82d385, - limb2: 0x291403da0c338964, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0xf738684e87cef2658039dc30, - limb1: 0xf66fdcda2e340e80153bb145, - limb2: 0x6672c65ae6592d48, - limb3: 0x0 - }, - u384 { - limb0: 0xae0a3cb82deb6f81f9b2a8d8, - limb1: 0xfab496593b35da72ff6de4bc, - limb2: 0xca0d80a512115e2a, - limb3: 0x0 - }, - u384 { - limb0: 0x59163b728d53ee0259764c80, - limb1: 0x6395f9bcaadcbfc6984bdb47, - limb2: 0x39cc54991317bc92, - limb3: 0x0 - }, - u384 { - limb0: 0x8a66afc990ea4b3987a0c3f1, - limb1: 0xb67119a79c9ef63fdbcd68a1, - limb2: 0xf6782942e78856d3, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { - limb0: 0x9073f9b79dac66095ab7a72c, - limb1: 0x9a521b43827b7c413b3a4236, - limb2: 0x9ad4700e5db6f04f, - limb3: 0x0 - }, - u384 { - limb0: 0xf9dea7e23ab6f80538dc9c62, - limb1: 0xfd244be18d1e8bfa6b472d30, - limb2: 0x1e6a93670f8a7a9e, - limb3: 0x0 - }, - u384 { - limb0: 0x25c86f3f4bfd0a8cd754fb4d, - limb1: 0xaa241907f389db5c1093c8a6, - limb2: 0x1f8c1af65568c1c2, - limb3: 0x0 - }, - u384 { - limb0: 0x14a2da87f1f40e937aac8514, - limb1: 0x5f304d09a4ed11c02d08529a, - limb2: 0x3ab0a24b31f5900b, - limb3: 0x0 - }, - u384 { - limb0: 0x23b217fbbf3eb5b751441540, - limb1: 0xb672e644cb045d23c62ebd50, - limb2: 0x4d7cf07c6fef3616, - limb3: 0x0 - }, - u384 { - limb0: 0x731ca22d9d242613fa30b5a4, - limb1: 0xf3bc03936bef1f564b82d385, - limb2: 0x291403da0c338964, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x8f492c375e58941c39e05e9f, - limb1: 0x1bd6116d8ad593cea56e9b9e, - limb2: 0x307c4e72bf83c5de, - limb3: 0x0 - }, - u384 { - limb0: 0xd784a91a5e09d24dfc4a247d, - limb1: 0xffffffffffffffff7c074593, - limb2: 0x7fffffffffffffff, - limb3: 0x0 - } - ] - .span(), - a_den: array![ - u384 { - limb0: 0xfa8afa844b9b3eb7e307bfce, - limb1: 0xaa6326ac3b1de6b610c7410, - limb2: 0x31ec5b757d55f905, - limb3: 0x0 - }, - u384 { - limb0: 0x6e3a6bdb5f92d6b28912df3b, - limb1: 0xf985bdeedc79d9eb74072d66, - limb2: 0x6b8079eefb569e91, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0xf1ab6443dc318288289f40a8, - limb1: 0x116eab47d34b1a0a9dfdad9a, - limb2: 0x9545e64ced7af79, - limb3: 0x0 - }, - u384 { - limb0: 0xf4bfb93fa56d758eae446d2b, - limb1: 0x9e406b913811e03a76ae3a0c, - limb2: 0x685142a109d27054, - limb3: 0x0 - }, - u384 { - limb0: 0xe84a325cde438aa56f5fa99, - limb1: 0xa04d24383960ccb972843ddf, - limb2: 0x4de806900ae5531d, - limb3: 0x0 - } - ] - .span(), - b_den: array![ - u384 { - limb0: 0xd9ccd99e113eb70835364273, - limb1: 0x4a8b60eb59dd14efa7572c76, - limb2: 0x5d7680366d59cf23, - limb3: 0x0 - }, - u384 { - limb0: 0x398f2ff9d03dee3bf84223f, - limb1: 0xd2a831880754f5702c323dcd, - limb2: 0xf0835588df5e55fd, - limb3: 0x0 - }, - u384 { limb0: 0x7, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { - limb0: 0xfa8afa844b9b3eb7e307bfce, - limb1: 0xaa6326ac3b1de6b610c7410, - limb2: 0x31ec5b757d55f905, - limb3: 0x0 - }, - u384 { - limb0: 0x6e3a6bdb5f92d6b28912df3b, - limb1: 0xf985bdeedc79d9eb74072d66, - limb2: 0x6b8079eefb569e91, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - }; - let derive_point_from_x_hint = DerivePointFromXHint { - y_last_attempt: u384 { - limb0: 0xce9f97c8af956e32f62995f4, - limb1: 0xe6494bedf4289c5ca2562d0d, - limb2: 0x3a8245bec86922cd, - limb3: 0x0 - }, - g_rhs_sqrt: array![].span(), - }; - let points = array![ - G1Point { - x: u384 { - limb0: 0x393dead57bc85a6e9bb44a70, - limb1: 0x64d4b065b3ede27cf9fb9e5c, - limb2: 0xda670c8c69a8ce0a, - limb3: 0x0 - }, - y: u384 { - limb0: 0x789872895ad7121175bd78f8, - limb1: 0xc0deb0b56fb251e8fb5d0a8d, - limb2: 0x3f10d670dc3297c2, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0xfdfdc509f368ba4395773d3a, - limb1: 0x8de2b60b577a13d0f83b578e, - limb2: 0xc2dd970269530ba2, - limb3: 0x0 - }, - y: u384 { - limb0: 0x589fa250d638e35400c12ddf, - limb1: 0xb3aac19fcb5095808402aa7f, - limb2: 0xed6de6590d0195d1, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x2965eeb3ec1fe786a6abe874, - limb1: 0x33e2545f82bb6add02788b8e, - limb2: 0xf586bc0db335d7b8, - limb3: 0x0 - }, - y: u384 { - limb0: 0x155b35991489db2fdf4de620, - limb1: 0xf24ce461346a182d67eeccf0, - limb2: 0xb4122bb4b37cc7d5, - limb3: 0x0 - } - }, - G1Point { - x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - }, - ] - .span(); - let scalars = array![ - u256 { low: 0x0, high: 0x0 }, - u256 { - low: 0x1846d424c17c627923c6612f48268673, high: 0xfcbd04c340212ef7cca5a5a19e4d6e3c - }, - u256 { - low: 0xb4862b21fb97d43588561712e8e5216a, high: 0x259f4329e6f4590b9a164106cf6a659e - }, - u256 { - low: 0x12e0c8b2bad640fb19488dec4f65d4d9, high: 0x5487ce1eaf19922ad9b8a714e61a441c - }, - ] - .span(); - - let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 2 - ); - assert!( - res == G1Point { - x: u384 { - limb0: 0x6bd8241f742b28cb66aa56f2, - limb1: 0x24d0ea2018173320c8f31889, - limb2: 0x9163c7b68d703c1e, - limb3: 0x0 - }, - y: u384 { - limb0: 0x50b9bcebc2b4fc80224f5146, - limb1: 0x756704c3a78f9ab2c60ececd, - limb2: 0x9ecbe5fd68546ab7, - limb3: 0x0 - } - } - ); - } - - - #[test] - fn test_msm_SECP256K1_5P() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - ] - .span(), - array![ - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - ] - .span(), - array![ - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - ] - .span() - ), - ] - .span() - ); - let msm_hint = MSMHint { - Q_low: G1Point { - x: u384 { - limb0: 0xdeee90162668d9ce4d0f244b, - limb1: 0xe835f5ba303fd8c66868f5d2, - limb2: 0x6b9304b8a1c22806, - limb3: 0x0 - }, - y: u384 { - limb0: 0x729851bc6899005db1922a04, - limb1: 0xfc52490f4e71234d1013c2d9, - limb2: 0x8cd7ef04e09acb9b, - limb3: 0x0 - } - }, - Q_high: G1Point { - x: u384 { - limb0: 0xad4d37f098bcaf309c9fcd2f, - limb1: 0xd74cd0b903e0b2f589c3251b, - limb2: 0xa32d4eaa32618da5, - limb3: 0x0 - }, - y: u384 { - limb0: 0x4659ad0e9114b3866a5177f2, - limb1: 0x9c4f8b74e439fd9450411db3, - limb2: 0xd2c1a35b589e20cf, - limb3: 0x0 - } - }, - Q_high_shifted: G1Point { - x: u384 { - limb0: 0x247024296eab7c3446e3b1ca, - limb1: 0xff30165b684cb42dba8bbe2f, - limb2: 0xd5ca67069cf2ee78, - limb3: 0x0 - }, - y: u384 { - limb0: 0xe247de0dd7b37508a72c6059, - limb1: 0x642788730a56608ab557c24e, - limb2: 0xbd08b9db2356a816, - limb3: 0x0 - } - }, - SumDlogDivLow: FunctionFelt { - a_num: array![ - u384 { - limb0: 0xf3dd2a3fc1510cfd0e3b90c3, - limb1: 0x341f94a38d67ce8a722bfade, - limb2: 0xce79ceb1f68549b6, - limb3: 0x0 - }, - u384 { - limb0: 0xea1762b3830af2ffdf6e2480, - limb1: 0xc39fc661c619fb30f89161da, - limb2: 0xdcd754695fc81bca, - limb3: 0x0 - }, - u384 { - limb0: 0xb26d6efc6876e93446e4a469, - limb1: 0x42c9600af2b5d91c256662e3, - limb2: 0xaa46299a24305ac8, - limb3: 0x0 - }, - u384 { - limb0: 0x9c2c1fa289d0c337af35ae8, - limb1: 0xffffffffffffffff97fe99ad, - limb2: 0x7fffffffffffffff, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { - limb0: 0xd75bdc0f3a4334a3a9ac2eda, - limb1: 0x61cf8d1d0228051c9ffd2477, - limb2: 0x42da4fad61ea6b58, - limb3: 0x0 - }, - u384 { - limb0: 0xd376c454d12764a2536f881, - limb1: 0xa73a578d4a4fcd0faa9241e0, - limb2: 0x6fc7036f93825f23, - limb3: 0x0 - }, - u384 { - limb0: 0xdbdc60f5fef962790aff6bd5, - limb1: 0xcae9550a2e4a5777778e345e, - limb2: 0xb78c3c522ad848fb, - limb3: 0x0 - }, - u384 { - limb0: 0xe72c64eb76b3716d6b36e425, - limb1: 0x965d954f74dbde98b9c6e643, - limb2: 0xe7e8165c4812cdc, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0x27643f212d52c2db29dded12, - limb1: 0x74c258a3dac00d8b0fc1bdfb, - limb2: 0xb1e81e0ecf702e83, - limb3: 0x0 - }, - u384 { - limb0: 0xa3b0481665500e6215aff00b, - limb1: 0x594ad3c87fe78880478352a4, - limb2: 0xaa782e5bf290184c, - limb3: 0x0 - }, - u384 { - limb0: 0xf0fd9116ec95d05c24d4a3d1, - limb1: 0xb0610bf42b8c816638dba34c, - limb2: 0x2c167d7e1de5822c, - limb3: 0x0 - }, - u384 { - limb0: 0xee1705686342fb1106e9da7b, - limb1: 0x74f7117e0f6b29e2f6f6e48c, - limb2: 0xb4ed923c7ac0eb8d, - limb3: 0x0 - }, - u384 { - limb0: 0xb5f89ceceb560b05b5c04f04, - limb1: 0xa28afcbc32313211e17ab236, - limb2: 0x5a915fc8a73e9d3, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { - limb0: 0xe383046a97d6707aa3b54bc7, - limb1: 0xacacdbcb0f1823c85febff46, - limb2: 0xd3f82dbdad68ef6a, - limb3: 0x0 - }, - u384 { - limb0: 0x5c83f5e51b813c0a0480d6fa, - limb1: 0x929864dd082e9b6da9ffcd20, - limb2: 0xe71180d089099f9, - limb3: 0x0 - }, - u384 { - limb0: 0x306a6b9f8d1b1544cfc05e8, - limb1: 0x8c6153474408644444e36e98, - limb2: 0x4d5a63f2be9fee2, - limb3: 0x0 - }, - u384 { - limb0: 0x29929e7f792b4ea1982c6bdd, - limb1: 0x7e5ea249342b1b49b46d7053, - limb2: 0xa84fd975c172a560, - limb3: 0x0 - }, - u384 { - limb0: 0xd376c454d12764a2536f888, - limb1: 0xa73a578d4a4fcd0faa9241e0, - limb2: 0x6fc7036f93825f23, - limb3: 0x0 - }, - u384 { - limb0: 0xdbdc60f5fef962790aff6bd5, - limb1: 0xcae9550a2e4a5777778e345e, - limb2: 0xb78c3c522ad848fb, - limb3: 0x0 - }, - u384 { - limb0: 0xe72c64eb76b3716d6b36e425, - limb1: 0x965d954f74dbde98b9c6e643, - limb2: 0xe7e8165c4812cdc, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { - limb0: 0xb75b40b31a53415eb4a8ad96, - limb1: 0xbed0841d39350db9a58815d, - limb2: 0xb296c3a462f91a0a, - limb3: 0x0 - }, - u384 { - limb0: 0x7637d4f57e39a144b89b11f5, - limb1: 0xb1715462c05009a309e2f5ff, - limb2: 0xb07ccf0dfdfeeeb1, - limb3: 0x0 - }, - u384 { - limb0: 0x605ca4f53db8e3d78b9647d0, - limb1: 0xf3efcb5817134e7ec53a07f1, - limb2: 0xf01031ece81bb8c1, - limb3: 0x0 - }, - u384 { - limb0: 0x3ca373f8b685caa3863f6d04, - limb1: 0x42c5318b, - limb2: 0x8000000000000000, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { - limb0: 0xa43dea402e2e47ff001d6ee0, - limb1: 0x97e30381d4790d17aaa19c66, - limb2: 0x98b104fc21fa3fd0, - limb3: 0x0 - }, - u384 { - limb0: 0xea3843814ec2d15f70a64d00, - limb1: 0x9e6b00ea83334526780dd390, - limb2: 0xe977ed1b2263a970, - limb3: 0x0 - }, - u384 { - limb0: 0x353af37c145efbd0a465d43b, - limb1: 0xcacacc7ec6cff53476c02d93, - limb2: 0x86f8b713aefc3860, - limb3: 0x0 - }, - u384 { - limb0: 0x18cdbd11045f9c0a1ba63770, - limb1: 0xa746ba50a13b0469986cb6fb, - limb2: 0xd6e4377433e1c73d, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0xbf84e72c19193ed63c458ede, - limb1: 0x75c992b37a9cfdb55ad82398, - limb2: 0xb8f147a920a0f875, - limb3: 0x0 - }, - u384 { - limb0: 0x848bf165917af0973ef174e8, - limb1: 0x36fe8c65465abcc0bef53f11, - limb2: 0x2c65b650d86e9651, - limb3: 0x0 - }, - u384 { - limb0: 0x489a4e7953a2e733c55be652, - limb1: 0xa6359f833b38c8e17e923c95, - limb2: 0x54ccfbffb4febda6, - limb3: 0x0 - }, - u384 { - limb0: 0xa010d0748d70082066f33879, - limb1: 0xa3ce484ff57e2aead91c9a55, - limb2: 0x78cfd968240934e0, - limb3: 0x0 - }, - u384 { - limb0: 0xee6940c2ef8ee5741a8fa825, - limb1: 0xd1a470233c3192fee1ef93a3, - limb2: 0xa4eb94017759ca48, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { - limb0: 0x7db167c14343f7fd00ce1764, - limb1: 0x2735188ccf4f5ba5aa6b46ce, - limb2: 0x2cd722e4edd7beb4, - limb3: 0x0 - }, - u384 { - limb0: 0x6789d8892753b9a2148c31e6, - limb1: 0x54ed06699666e40d4860c8f6, - limb2: 0x62477bbdf0b9a214, - limb3: 0x0 - }, - u384 { - limb0: 0x749ca8648e98e2b77ec8d910, - limb1: 0x8b8b97776fafb46f3f413f06, - limb2: 0xb0cd0189c8e58aa5, - limb3: 0x0 - }, - u384 { - limb0: 0x51de15b74ccb8c4bc1a909d6, - limb1: 0x2ad21bb63d162bfad59a9d44, - limb2: 0x78ee89298d26b280, - limb3: 0x0 - }, - u384 { - limb0: 0xea3843814ec2d15f70a64d07, - limb1: 0x9e6b00ea83334526780dd390, - limb2: 0xe977ed1b2263a970, - limb3: 0x0 - }, - u384 { - limb0: 0x353af37c145efbd0a465d43b, - limb1: 0xcacacc7ec6cff53476c02d93, - limb2: 0x86f8b713aefc3860, - limb3: 0x0 - }, - u384 { - limb0: 0x18cdbd11045f9c0a1ba63770, - limb1: 0xa746ba50a13b0469986cb6fb, - limb2: 0xd6e4377433e1c73d, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ - u384 { - limb0: 0xeb7b22e0ef5faa5a79270249, - limb1: 0x11f9ada44dab553e836dc05b, - limb2: 0x5b17d9f9d7e5eae, - limb3: 0x0 - }, - u384 { - limb0: 0xd784a91a5e09d24dfc4a247d, - limb1: 0xffffffffffffffff7c074593, - limb2: 0x7fffffffffffffff, - limb3: 0x0 - } - ] - .span(), - a_den: array![ - u384 { - limb0: 0xd0e4f089cc9ecde42950a1a0, - limb1: 0x4581b107150a252a0ab51f29, - limb2: 0xe3cfa61e6afe3d7f, - limb3: 0x0 - }, - u384 { - limb0: 0x2e42a3e5f897d4991c7c7965, - limb1: 0x298318eb93d298dcbbb11cb5, - limb2: 0x87084a4f30ab83e1, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0x48b50290e05f9bc9ec59a2a7, - limb1: 0xc9fc3db5066a6401d72ba73f, - limb2: 0x3c8c53ff2be5da8d, - limb3: 0x0 - }, - u384 { - limb0: 0x4d024daace7ebbdbf18ff0e8, - limb1: 0xa1e2ff94d76764c8c24b32c6, - limb2: 0xdde13fc838be991b, - limb3: 0x0 - }, - u384 { - limb0: 0x784d7a4a3496f586c19d3efd, - limb1: 0x20e8ab83dfce74a67341c768, - limb2: 0x243cada4200047f9, - limb3: 0x0 - } - ] - .span(), - b_den: array![ - u384 { - limb0: 0xb64293c49857a14321348246, - limb1: 0xe68bd731934704264af3da24, - limb2: 0x3aad8ad4ecf3ae7a, - limb3: 0x0 - }, - u384 { - limb0: 0x43d27b49cc26d032c7675d36, - limb1: 0x2295ae710ac22e0921d7c8f4, - limb2: 0xb13a082a54b09b28, - limb3: 0x0 - }, - u384 { limb0: 0x7, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { - limb0: 0xd0e4f089cc9ecde42950a1a0, - limb1: 0x4581b107150a252a0ab51f29, - limb2: 0xe3cfa61e6afe3d7f, - limb3: 0x0 - }, - u384 { - limb0: 0x2e42a3e5f897d4991c7c7965, - limb1: 0x298318eb93d298dcbbb11cb5, - limb2: 0x87084a4f30ab83e1, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - }; - let derive_point_from_x_hint = DerivePointFromXHint { - y_last_attempt: u384 { - limb0: 0x7f0449e85cede9d79110c41a, - limb1: 0x3defb5ec7cf4122916871f72, - limb2: 0x4cbec222a0ce0f88, - limb3: 0x0 - }, - g_rhs_sqrt: array![ - u384 { - limb0: 0x348981c00a00b9c36476d42, - limb1: 0x7912cc6e88ed88dc95aab90a, - limb2: 0xcc4bb1a2736ae30, - limb3: 0x0 - }, - u384 { - limb0: 0x6ce86dd727137b4e1e6e6369, - limb1: 0x6bd668e68848a5c39eba2110, - limb2: 0x1e9e8f47eef165ad, - limb3: 0x0 - }, - u384 { - limb0: 0x9d04d90ba96df5779ebd4a11, - limb1: 0x7f30a451ee534d23f0060133, - limb2: 0x43523420306e5b12, - limb3: 0x0 - }, - u384 { - limb0: 0x34b49bb889c5d5b42b21722, - limb1: 0xa5f9173e5d711ed1d2bb9ce9, - limb2: 0x1d002c3bcbf3e0da, - limb3: 0x0 - } - ] - .span(), - }; - let points = array![ - G1Point { - x: u384 { - limb0: 0x393dead57bc85a6e9bb44a70, - limb1: 0x64d4b065b3ede27cf9fb9e5c, - limb2: 0xda670c8c69a8ce0a, - limb3: 0x0 - }, - y: u384 { - limb0: 0x789872895ad7121175bd78f8, - limb1: 0xc0deb0b56fb251e8fb5d0a8d, - limb2: 0x3f10d670dc3297c2, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0xfdfdc509f368ba4395773d3a, - limb1: 0x8de2b60b577a13d0f83b578e, - limb2: 0xc2dd970269530ba2, - limb3: 0x0 - }, - y: u384 { - limb0: 0x589fa250d638e35400c12ddf, - limb1: 0xb3aac19fcb5095808402aa7f, - limb2: 0xed6de6590d0195d1, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x2965eeb3ec1fe786a6abe874, - limb1: 0x33e2545f82bb6add02788b8e, - limb2: 0xf586bc0db335d7b8, - limb3: 0x0 - }, - y: u384 { - limb0: 0x155b35991489db2fdf4de620, - limb1: 0xf24ce461346a182d67eeccf0, - limb2: 0xb4122bb4b37cc7d5, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x12815740835b12f70b96c66f, - limb1: 0xbfa76a8b80aec9f2e31c40cc, - limb2: 0xcd8a26d17d33c7c1, - limb3: 0x0 - }, - y: u384 { - limb0: 0x9a8f496f09402b8fd6beb89b, - limb1: 0x28e48918dad2123d7f202bef, - limb2: 0xcdd11b6ffb3f8614, - limb3: 0x0 - } - }, - G1Point { - x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - }, - ] - .span(); - let scalars = array![ - u256 { low: 0x0, high: 0x0 }, - u256 { - low: 0xb4862b21fb97d43588561712e8e5216a, high: 0x259f4329e6f4590b9a164106cf6a659e - }, - u256 { - low: 0x12e0c8b2bad640fb19488dec4f65d4d9, high: 0x5487ce1eaf19922ad9b8a714e61a441c - }, - u256 { - low: 0x5a92118719c78df48f4ff31e78de5857, high: 0xa3f2c9bf9c6316b950f244556f25e2a2 - }, - u256 { - low: 0x8d723104f77383c13458a748e9bb17bc, high: 0x85776e9add84f39e71545a137a1d5006 - }, - ] - .span(); - - let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 2 - ); - assert!( - res == G1Point { - x: u384 { - limb0: 0xbc6fa2dea64c994607db8584, - limb1: 0xd63d04fac72d31f961d735a5, - limb2: 0xe4560b5cd201928e, - limb3: 0x0 - }, - y: u384 { - limb0: 0x1d30243defeac47a6e2235c7, - limb1: 0x70abf281edcf69ed8f8cc7cf, - limb2: 0x1d9ad8c6c7fe670d, - limb3: 0x0 - } - } - ); - } - - - #[test] - fn test_msm_SECP256K1_6P() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - ] - .span(), - array![ - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - ] - .span(), - array![ - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - ] - .span() - ), - ] - .span() - ); - let msm_hint = MSMHint { - Q_low: G1Point { - x: u384 { - limb0: 0x8d538abe3fe637bcee496ba, - limb1: 0xb40782ccdc3814cea0bd31a7, - limb2: 0xfbee29541418638e, - limb3: 0x0 - }, - y: u384 { - limb0: 0x79f616f2844ccb3d73661518, - limb1: 0xd6fb0512f0a1f07034f2fbcb, - limb2: 0xe34fd0ea02d18c78, - limb3: 0x0 - } - }, - Q_high: G1Point { - x: u384 { - limb0: 0xb5e4461ab387aacb3ed3362d, - limb1: 0x3aca0032b14626fd65d74cc0, - limb2: 0x5865a713ee541fed, - limb3: 0x0 - }, - y: u384 { - limb0: 0xca2874330b47dfe690a6a825, - limb1: 0xe65e899d29d8f422dc763b, - limb2: 0x32ec17c4b11b1cc8, - limb3: 0x0 - } - }, - Q_high_shifted: G1Point { - x: u384 { - limb0: 0xe8b5d2f978418ead548ca82a, - limb1: 0x8a1307616e16e16a28a97e74, - limb2: 0xa99af6fb4ce4e6cf, - limb3: 0x0 - }, - y: u384 { - limb0: 0x6a797fcdcf7014a8bb3bd945, - limb1: 0x1cd9cb0c06ede7cafbf6fb7d, - limb2: 0x9fc5a0c0aa54b374, - limb3: 0x0 - } - }, - SumDlogDivLow: FunctionFelt { - a_num: array![ - u384 { - limb0: 0xd13eb93f7aa86e0eb56b6aea, - limb1: 0xc9a1c132859811c6ad96df0d, - limb2: 0x90b7ef867c3497fe, - limb3: 0x0 - }, - u384 { - limb0: 0x2f6541fafd8f28f44b499783, - limb1: 0xa02c9085bec0e1b4388beef1, - limb2: 0x9aec210e653548b0, - limb3: 0x0 - }, - u384 { - limb0: 0x8fab20a51e41afc9641deaa, - limb1: 0x5a0686d4da7176847b13a8f8, - limb2: 0x689be2f83843c3a0, - limb3: 0x0 - }, - u384 { - limb0: 0x6c1a778146107163200942bc, - limb1: 0xfde40a6ec22e069ad4088f50, - limb2: 0xc67a2e79e257ddb1, - limb3: 0x0 - }, - u384 { - limb0: 0x75e802d9b8534b9c603ee747, - limb1: 0xffffffffffffffffdbec631b, - limb2: 0xffffffffffffffff, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x4871ad0e6aecb9319596e045, - limb1: 0x13be8accaff9f58ff2155f20, - limb2: 0xc916136b0da4d086, - limb3: 0x0 - }, - u384 { - limb0: 0xda28c039cf4dc60537f7cce5, - limb1: 0xfe972053d0b2b8dafb466e90, - limb2: 0x47c04fdb60d9dcc1, - limb3: 0x0 - }, - u384 { - limb0: 0xb23240b72b4ebae12b00e7e0, - limb1: 0x7ae5a1590989962fc13f9d26, - limb2: 0x16f73160bfe33484, - limb3: 0x0 - }, - u384 { - limb0: 0xad3aa5a5ee27c737202ef4ed, - limb1: 0x93492db367c023f98064aeb, - limb2: 0xfa621d640cd5061, - limb3: 0x0 - }, - u384 { - limb0: 0x83e506d65a0e894a69a927d, - limb1: 0xba2534300be1ff1b5324a3d3, - limb2: 0x6be499cd21fe405b, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0x9d475c3e9a32473df5f77651, - limb1: 0x4b3d560e35b239a79d702a04, - limb2: 0x9b1f23e0cd53bc9b, - limb3: 0x0 - }, - u384 { - limb0: 0x7998fde5f7b831289875ee15, - limb1: 0x2ad7d801dd617ec6608d482b, - limb2: 0x249df0379c28d4a, - limb3: 0x0 - }, - u384 { - limb0: 0xeddd215cfd6fcc0b4b3413bf, - limb1: 0xe2d67a16d84113fb4847193c, - limb2: 0x3ef87684b3ca7b14, - limb3: 0x0 - }, - u384 { - limb0: 0x29388b14aaf26cb3c8fa3533, - limb1: 0xb176f1414026cb8a0f937d24, - limb2: 0xe01381114656a6a6, - limb3: 0x0 - }, - u384 { - limb0: 0xf44896a892c57ff82baca51a, - limb1: 0x6c9ceec73a041072d28b4ca9, - limb2: 0x117ba32c580f4236, - limb3: 0x0 - }, - u384 { - limb0: 0x9461fccaa27fcadac39628b6, - limb1: 0xd58668cdbf6b514c8787ddf3, - limb2: 0x3413253b848b4813, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { - limb0: 0xfb1bbb64ec791060172034f8, - limb1: 0x8a35cb98cfd5b6ef9e9599e1, - limb2: 0x7f9a87ed5f81b3aa, - limb3: 0x0 - }, - u384 { - limb0: 0xf71d4194ab206a2587c69e14, - limb1: 0xf621e24ab4e30dfcdeed05f5, - limb2: 0xf6422effa5f5094d, - limb3: 0x0 - }, - u384 { - limb0: 0xdf5fc5022f271c282d065720, - limb1: 0x5c47696f42c31b4e48bd4c0e, - limb2: 0xa0c259a53f366f9f, - limb3: 0x0 - }, - u384 { - limb0: 0x50c3497ee032bb476df9691, - limb1: 0x542e8ecb2d5e054d1a416b92, - limb2: 0x36a10046d342032d, - limb3: 0x0 - }, - u384 { - limb0: 0x13dcf33796b42218c631d9c3, - limb1: 0x159b8da423e0b29a4146e956, - limb2: 0x3b0084774ecd9f44, - limb3: 0x0 - }, - u384 { - limb0: 0xb23240b72b4ebae12b00e7e7, - limb1: 0x7ae5a1590989962fc13f9d26, - limb2: 0x16f73160bfe33484, - limb3: 0x0 - }, - u384 { - limb0: 0xad3aa5a5ee27c737202ef4ed, - limb1: 0x93492db367c023f98064aeb, - limb2: 0xfa621d640cd5061, - limb3: 0x0 - }, - u384 { - limb0: 0x83e506d65a0e894a69a927d, - limb1: 0xba2534300be1ff1b5324a3d3, - limb2: 0x6be499cd21fe405b, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { - limb0: 0xd83006aeecf537726effdf38, - limb1: 0x304753a77db7f0c9e0032139, - limb2: 0x8aef8f2e38ca5dd3, - limb3: 0x0 - }, - u384 { - limb0: 0xe6be04f5585b1eba65db405c, - limb1: 0x81e48e58c69694012c605b65, - limb2: 0x8de81a75db83232, - limb3: 0x0 - }, - u384 { - limb0: 0xdf75848ef3ca9d37c8b317d4, - limb1: 0x9642ad42eb99183fbb0fc3f8, - limb2: 0x3db932b815a2546b, - limb3: 0x0 - }, - u384 { - limb0: 0xc1379ad6511b72bf2865d897, - limb1: 0x78b82ffc08c8ce8d108aac9f, - limb2: 0xb118967f9d9c3c3b, - limb3: 0x0 - }, - u384 { - limb0: 0x6923f819742349967031889, - limb1: 0x735d6386, - limb2: 0x8000000000000000, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x9c55cb072d392fa33bb3faf8, - limb1: 0xce189c0546fa2e756a69e79, - limb2: 0x1f372b65014a5cf8, - limb3: 0x0 - }, - u384 { - limb0: 0x8b2766d28496c85b93840889, - limb1: 0xdfa0e7881c939f6c77901f5f, - limb2: 0xec5a265bb9d4a43b, - limb3: 0x0 - }, - u384 { - limb0: 0x8df978f4a1f32ac3981b2b54, - limb1: 0x9cf0d6ec9025d40884f4495d, - limb2: 0x95c50c8e284f03da, - limb3: 0x0 - }, - u384 { - limb0: 0x781a3dad40a003a8cc5ca6df, - limb1: 0x42a3e9738b5122c7a31faf6a, - limb2: 0x609b851301331459, - limb3: 0x0 - }, - u384 { - limb0: 0x5b2f42fe9617a14636abf6db, - limb1: 0x3362b6ca36d3ecec8e0a88b9, - limb2: 0xf6d1c0d47c283fd, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0x4a85633a795bb76cb48af277, - limb1: 0x3a1e1c32e686888757ef6c4b, - limb2: 0x994d5079e5d49c1f, - limb3: 0x0 - }, - u384 { - limb0: 0xc4b2301c69718d13a1714005, - limb1: 0xd584833fbb935559d369899b, - limb2: 0xca295b88b3d5dbce, - limb3: 0x0 - }, - u384 { - limb0: 0x93349f3d4eb15572f557994b, - limb1: 0xc6fbf584e245f6d2238b5d84, - limb2: 0x3b79e70aa7a75f24, - limb3: 0x0 - }, - u384 { - limb0: 0xe91c8425546863562cc02b9, - limb1: 0x7d2e8fdc9c1a41c4f66f9df6, - limb2: 0x473f388818c8419a, - limb3: 0x0 - }, - u384 { - limb0: 0xb8f08059fcd9e51a46243259, - limb1: 0xc1023cb4e9b13737862f1dc, - limb2: 0x639cca41f985e0d4, - limb3: 0x0 - }, - u384 { - limb0: 0xba62bbb3e00b22533a8d705b, - limb1: 0xd6e334882340f0e9f1e94ab2, - limb2: 0x54932fe262a28453, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { - limb0: 0x46588d323c904d76a1ebdcc8, - limb1: 0x5a2ac4424f0d74535e8e5553, - limb2: 0xda822fc309088ac8, - limb3: 0x0 - }, - u384 { - limb0: 0xce13cfc1a01f7a87089c52a5, - limb1: 0x1d6654b8c8095bf744f0db9c, - limb2: 0x76770c8214d07da3, - limb3: 0x0 - }, - u384 { - limb0: 0xe1d24eb06da62b5d28be3e90, - limb1: 0x4a95e077f108cc3ba2ae018e, - limb2: 0x186357e31a291afa, - limb3: 0x0 - }, - u384 { - limb0: 0xe50d7ac3f1994942d23c92b3, - limb1: 0xdf5cebe923a7965ccc846a62, - limb2: 0xc377ceea09afeb68, - limb3: 0x0 - }, - u384 { - limb0: 0x9723bc89f3c31481237cc57, - limb1: 0x4753e70f9c5f19e459d9dc71, - limb2: 0x5855eab8b0264028, - limb3: 0x0 - }, - u384 { - limb0: 0x8df978f4a1f32ac3981b2b5b, - limb1: 0x9cf0d6ec9025d40884f4495d, - limb2: 0x95c50c8e284f03da, - limb3: 0x0 - }, - u384 { - limb0: 0x781a3dad40a003a8cc5ca6df, - limb1: 0x42a3e9738b5122c7a31faf6a, - limb2: 0x609b851301331459, - limb3: 0x0 - }, - u384 { - limb0: 0x5b2f42fe9617a14636abf6db, - limb1: 0x3362b6ca36d3ecec8e0a88b9, - limb2: 0xf6d1c0d47c283fd, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ - u384 { - limb0: 0xe9de0e74bceb06b960583cdf, - limb1: 0x5c77b3e791607b7999735f98, - limb2: 0xbfb51906e10e78c0, - limb3: 0x0 - }, - u384 { - limb0: 0xd784a91a5e09d24dfc4a247d, - limb1: 0xffffffffffffffff7c074593, - limb2: 0x7fffffffffffffff, - limb3: 0x0 - } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x7a60102ed283e9e904579b34, - limb1: 0x71c4fadf4a4c56e6e8b1eef7, - limb2: 0xda9d8f11913fb1e7, - limb3: 0x0 - }, - u384 { - limb0: 0x6165e6ebd436c6856ca01a07, - limb1: 0x3b22f86be0a2f798717f34ca, - limb2: 0xfdff61f0c4c6f943, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0x5552dd15d759d47e7d0f6b61, - limb1: 0x21eb9a3c04edab52ef9601f1, - limb2: 0x92e8faa2f5cffd1e, - limb3: 0x0 - }, - u384 { - limb0: 0x5cbfad2938521eba2b5817d3, - limb1: 0xec6771ae4825907ed90aa09, - limb2: 0x8f62c3e58ce74210, - limb3: 0x0 - }, - u384 { - limb0: 0xa380929a55994228bd83218e, - limb1: 0x58a27f73a00dcf479917f7ce, - limb2: 0x41676e5c89ff4dd8, - limb3: 0x0 - } - ] - .span(), - b_den: array![ - u384 { - limb0: 0x58a07147c19b65641e655181, - limb1: 0x1c62dc1b081660505cdd88c4, - limb2: 0xfa4ee97af8bddd54, - limb3: 0x0 - }, - u384 { - limb0: 0xa9c95072cd7f6dabf860cd17, - limb1: 0x9df4caf32474c52b1a7a7188, - limb2: 0xf1fbad956170d0d6, - limb3: 0x0 - }, - u384 { limb0: 0x7, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { - limb0: 0x7a60102ed283e9e904579b34, - limb1: 0x71c4fadf4a4c56e6e8b1eef7, - limb2: 0xda9d8f11913fb1e7, - limb3: 0x0 - }, - u384 { - limb0: 0x6165e6ebd436c6856ca01a07, - limb1: 0x3b22f86be0a2f798717f34ca, - limb2: 0xfdff61f0c4c6f943, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - }; - let derive_point_from_x_hint = DerivePointFromXHint { - y_last_attempt: u384 { - limb0: 0x7d179e2a1219b72b1fc28fb5, - limb1: 0x83b1789721db385da3a332cb, - limb2: 0x433686dccb234fd6, - limb3: 0x0 - }, - g_rhs_sqrt: array![ - u384 { - limb0: 0xe0773d6d86d5b4b12b7227dd, - limb1: 0x820f61709ddc208e1160c59, - limb2: 0x641481f2efa5f9e9, - limb3: 0x0 - } - ] - .span(), - }; - let points = array![ - G1Point { - x: u384 { - limb0: 0x393dead57bc85a6e9bb44a70, - limb1: 0x64d4b065b3ede27cf9fb9e5c, - limb2: 0xda670c8c69a8ce0a, - limb3: 0x0 - }, - y: u384 { - limb0: 0x789872895ad7121175bd78f8, - limb1: 0xc0deb0b56fb251e8fb5d0a8d, - limb2: 0x3f10d670dc3297c2, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0xfdfdc509f368ba4395773d3a, - limb1: 0x8de2b60b577a13d0f83b578e, - limb2: 0xc2dd970269530ba2, - limb3: 0x0 - }, - y: u384 { - limb0: 0x589fa250d638e35400c12ddf, - limb1: 0xb3aac19fcb5095808402aa7f, - limb2: 0xed6de6590d0195d1, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x2965eeb3ec1fe786a6abe874, - limb1: 0x33e2545f82bb6add02788b8e, - limb2: 0xf586bc0db335d7b8, - limb3: 0x0 - }, - y: u384 { - limb0: 0x155b35991489db2fdf4de620, - limb1: 0xf24ce461346a182d67eeccf0, - limb2: 0xb4122bb4b37cc7d5, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x12815740835b12f70b96c66f, - limb1: 0xbfa76a8b80aec9f2e31c40cc, - limb2: 0xcd8a26d17d33c7c1, - limb3: 0x0 - }, - y: u384 { - limb0: 0x9a8f496f09402b8fd6beb89b, - limb1: 0x28e48918dad2123d7f202bef, - limb2: 0xcdd11b6ffb3f8614, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0xb5076be8537cff2a42c6db68, - limb1: 0x1066d40cbd01a3752e4e069c, - limb2: 0x123ec2fd302cb0f9, - limb3: 0x0 - }, - y: u384 { - limb0: 0xc85f5e5efdf415f8081bf53f, - limb1: 0xadc5010e9d9ac6c64000d33d, - limb2: 0xf81314011d8852e4, - limb3: 0x0 - } - }, - G1Point { - x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - }, - ] - .span(); - let scalars = array![ - u256 { low: 0x0, high: 0x0 }, - u256 { - low: 0x12e0c8b2bad640fb19488dec4f65d4d9, high: 0x5487ce1eaf19922ad9b8a714e61a441c - }, - u256 { - low: 0x5a92118719c78df48f4ff31e78de5857, high: 0xa3f2c9bf9c6316b950f244556f25e2a2 - }, - u256 { - low: 0x8d723104f77383c13458a748e9bb17bc, high: 0x85776e9add84f39e71545a137a1d5006 - }, - u256 { - low: 0xeb2083e6ce164dba0ff18e0242af9fc3, high: 0x17e0aa3c03983ca8ea7e9d498c778ea6 - }, - u256 { - low: 0xb5d32b1666194cb1d71037d1b83e90ec, high: 0xa0116be5ab0c1681c8f8e3d0d3290a4c - }, - ] - .span(); - - let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 2 - ); - assert!( - res == G1Point { - x: u384 { - limb0: 0xef54644fba948aaa560ffba1, - limb1: 0x30abdc90bd3ee02c31e6c230, - limb2: 0x954879a8c0138673, - limb3: 0x0 - }, - y: u384 { - limb0: 0xe779809068a78ba4bcc861fa, - limb1: 0x909d981137e99738c94862ae, - limb2: 0x99b1b06fcb003b2a, - limb3: 0x0 - } - } - ); - } - - - #[test] - fn test_msm_SECP256K1_7P() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - ] - .span(), - array![ - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - ] - .span(), - array![ - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - ] - .span(), - array![ - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - ] - .span() - ), - ] - .span() - ); - let msm_hint = MSMHint { - Q_low: G1Point { - x: u384 { - limb0: 0x403a267151202511e278a44a, - limb1: 0x4ea62b753aeec7813e02da6d, - limb2: 0x76e7d5814073a1ec, - limb3: 0x0 - }, - y: u384 { - limb0: 0x665569bdd4b377fa356a3b02, - limb1: 0x68052920e8f70e9ba761a0ce, - limb2: 0x70a2a1a587a20901, - limb3: 0x0 - } - }, - Q_high: G1Point { - x: u384 { - limb0: 0xab9cf3ec9a8c7a403770aabc, - limb1: 0x29aa7330f86d5a077e9dccc0, - limb2: 0x9c7600f886fe2dde, - limb3: 0x0 - }, - y: u384 { - limb0: 0x73f0ffc866395ec3a5b90213, - limb1: 0x606683f66a685d727b91ee35, - limb2: 0x8a35d18bb5f8625, - limb3: 0x0 - } - }, - Q_high_shifted: G1Point { - x: u384 { - limb0: 0x47f8ea706f64ebd4764a493b, - limb1: 0xe42075357be6c2ac52236e81, - limb2: 0x5a9757e3bbfe6a46, - limb3: 0x0 - }, - y: u384 { - limb0: 0x7be5bf4b29798cb77b123d33, - limb1: 0xae58fc81bb5e4a01486d2343, - limb2: 0xafbac4c8dfdc4b9, - limb3: 0x0 - } - }, - SumDlogDivLow: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x3b554adb721e1bd4eacb897b, - limb1: 0xbd58287fadada956d0f905c2, - limb2: 0xe76f44699b9b0c2f, - limb3: 0x0 - }, - u384 { - limb0: 0x8c312d54f6fb3627d0abc93b, - limb1: 0x947692218ce22c4144024c2a, - limb2: 0xec9be751791dbe71, - limb3: 0x0 - }, - u384 { - limb0: 0x1b08d69240c1739468ac9a49, - limb1: 0xd3111d8f87451a11095d599b, - limb2: 0x7fbba0dbd9982dd0, - limb3: 0x0 - }, - u384 { - limb0: 0x638c45800573580023de02f8, - limb1: 0x9ebbc1ef98c524dafc6a9964, - limb2: 0xc01b054352179014, - limb3: 0x0 - }, - u384 { - limb0: 0x7f51efbc51abe7a135b26ea3, - limb1: 0x559c20d049edf86a4c5057c2, - limb2: 0x28d102cf55a8d86a, - limb3: 0x0 - }, - u384 { - limb0: 0xfe01df22a4ef77fa1eb98ea4, - limb1: 0xfffffffffffffffefd5efbdb, - limb2: 0xffffffffffffffff, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { - limb0: 0xcc4db03b0c50470cc238ec81, - limb1: 0xe35f7d5c5b6d03c74ba3bd39, - limb2: 0xf0764c829e6f3532, - limb3: 0x0 - }, - u384 { - limb0: 0xebb9492df79bb9210ee08147, - limb1: 0x5138605b467f3f9f03011377, - limb2: 0xe49df548a472fae6, - limb3: 0x0 - }, - u384 { - limb0: 0x832124fb87296106a2afa683, - limb1: 0x84732eeed1de8ce25277a473, - limb2: 0xfdfa653ce4824e4e, - limb3: 0x0 - }, - u384 { - limb0: 0x9b5811e17a0cfc88e797ed3e, - limb1: 0x6a3e810fc0cf27c7e2dcc46b, - limb2: 0x37267de3c77c606e, - limb3: 0x0 - }, - u384 { - limb0: 0x564f8ab94803c323c1afe03d, - limb1: 0x48dcd67504b5b334f93775f5, - limb2: 0x3278428bf67a51b7, - limb3: 0x0 - }, - u384 { - limb0: 0xfb48120f24ad26eb8255cbb8, - limb1: 0x96cb467fc1398de5e624d774, - limb2: 0x66a4ae83f4d4799e, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0x7afbbe89c1fc71d31f065e1d, - limb1: 0x3d5da50ce08bf6b2874bb998, - limb2: 0xde424574165d49ff, - limb3: 0x0 - }, - u384 { - limb0: 0x30aba8e4cdcc116eff377fe6, - limb1: 0x93f0dd21957276589f3383a8, - limb2: 0xe2c18f02e726c68f, - limb3: 0x0 - }, - u384 { - limb0: 0x1bca0a838360f44789d38ae0, - limb1: 0x13922f7989879f7419f223a8, - limb2: 0x8627ff28e13e267d, - limb3: 0x0 - }, - u384 { - limb0: 0x873aa6988111510cab5fb9, - limb1: 0xd8fcd539ed8e24bdba188f71, - limb2: 0x8cf22f4bc854b644, - limb3: 0x0 - }, - u384 { - limb0: 0x593e5d85f4254167d768e33d, - limb1: 0x12779f2f85261d55d9df956f, - limb2: 0x96c0deb0ed326804, - limb3: 0x0 - }, - u384 { - limb0: 0xfe7161c11f64be5a77fd6392, - limb1: 0x529daa3458c5aed0900be17c, - limb2: 0x61cb21df1fdaf73f, - limb3: 0x0 - }, - u384 { - limb0: 0x388bbbcde3bc1b66e47302ff, - limb1: 0xdf56e8c7a63600f6accaeee9, - limb2: 0x2934383422245262, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { - limb0: 0x961fd19d5631f15f4f8e8e6d, - limb1: 0x379c6d867ffb1a73117a2c94, - limb2: 0x933c1792550a7464, - limb3: 0x0 - }, - u384 { - limb0: 0x72110041c5420fed68239fd7, - limb1: 0x388aa27eed7abd5915078847, - limb2: 0x4051b4fc7f24dc4c, - limb3: 0x0 - }, - u384 { - limb0: 0x95e802e0b221a73472cda47b, - limb1: 0x9f264887bd15da3041457f28, - limb2: 0xf1d8c4aa3f902425, - limb3: 0x0 - }, - u384 { - limb0: 0xbb62d6562ab2ecd176070d5, - limb1: 0xcb1504caa1171a3e7fad1c2b, - limb2: 0x7283bdbd12d5d837, - limb3: 0x0 - }, - u384 { - limb0: 0x47e6143eefb60f1d5aafaa94, - limb1: 0x4f423d8e67772611d3854d2d, - limb2: 0x45e7c71c61cb36e9, - limb3: 0x0 - }, - u384 { - limb0: 0x6219a36587e5717a330843fe, - limb1: 0xa4021c6d1a716e2b9d7988a6, - limb2: 0xcc7b2ad89651a1a4, - limb3: 0x0 - }, - u384 { - limb0: 0x9b5811e17a0cfc88e797ed45, - limb1: 0x6a3e810fc0cf27c7e2dcc46b, - limb2: 0x37267de3c77c606e, - limb3: 0x0 - }, - u384 { - limb0: 0x564f8ab94803c323c1afe03d, - limb1: 0x48dcd67504b5b334f93775f5, - limb2: 0x3278428bf67a51b7, - limb3: 0x0 - }, - u384 { - limb0: 0xfb48120f24ad26eb8255cbb8, - limb1: 0x96cb467fc1398de5e624d774, - limb2: 0x66a4ae83f4d4799e, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { - limb0: 0xb63124b3b8c145434ea9c03c, - limb1: 0xe8f9639409afb98b598c25ab, - limb2: 0xf980f29afc98e46b, - limb3: 0x0 - }, - u384 { - limb0: 0x9de7336ac6c6d0e8acdecd8e, - limb1: 0x1456203372ca027957d89179, - limb2: 0xd56f5134ccaf91f1, - limb3: 0x0 - }, - u384 { - limb0: 0x9baa75f49f3d6d5652addcd4, - limb1: 0x6735defcfc09ef687938c5c7, - limb2: 0x2299ebbee8e5d3d5, - limb3: 0x0 - }, - u384 { - limb0: 0x7fc2a5230bd07ff8e35367f8, - limb1: 0x866919f4fd5fd2fd82e53dc2, - limb2: 0x86aae1093b01854c, - limb3: 0x0 - }, - u384 { - limb0: 0x7fabafa79a427e76043bd81e, - limb1: 0xb93288215cacd16b0c287d89, - limb2: 0x10e3d6b57e942537, - limb3: 0x0 - }, - u384 { - limb0: 0xc5ce7248b691e81b227e6294, - limb1: 0xfffffffffffffffff16b0187, - limb2: 0x7fffffffffffffff, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { - limb0: 0xe52c6967862ea9a2ae30339e, - limb1: 0x577e05809e730f3e798c71b, - limb2: 0xa3d64f29653568fe, - limb3: 0x0 - }, - u384 { - limb0: 0xe70eecd5f86c8ceec8d94def, - limb1: 0x509a33a478d0d91fe915e8fb, - limb2: 0xe12fc152fa36b893, - limb3: 0x0 - }, - u384 { - limb0: 0xc684edfefdb97f6f0e9703e2, - limb1: 0x6a671545e2332c2ba20353a3, - limb2: 0x43083bba037dfc3a, - limb3: 0x0 - }, - u384 { - limb0: 0x88312367487cc04148476508, - limb1: 0xfb2200c1f0b20b3d7d38f545, - limb2: 0x62a86020abee97d8, - limb3: 0x0 - }, - u384 { - limb0: 0x1bf6c31492f9fb94ef5e74df, - limb1: 0x537024cbc343322a4e380302, - limb2: 0xd4b49a618abbde26, - limb3: 0x0 - }, - u384 { - limb0: 0x8fe54493db40d1bd2d5dc546, - limb1: 0xbbc6fec403bafb5fa589e521, - limb2: 0x4116830cae49edac, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0xd07852a201f8630c6f64361d, - limb1: 0x81576faff971d22d31829eb9, - limb2: 0x931d0b84e816948, - limb3: 0x0 - }, - u384 { - limb0: 0x3cc87073578588b4c7019647, - limb1: 0x4715b5371e247191a950697f, - limb2: 0xac3dc3a68b245f57, - limb3: 0x0 - }, - u384 { - limb0: 0xf85b4d6d94ccfebba3768f93, - limb1: 0x9bb88e494aa5375d6c01335e, - limb2: 0x86333c8af684320, - limb3: 0x0 - }, - u384 { - limb0: 0xa267be6ccf9271a7858c09c9, - limb1: 0x9f97bcb4557e1e2bc5991e80, - limb2: 0x5a004204c8f2aedc, - limb3: 0x0 - }, - u384 { - limb0: 0xffca6f1b2d8b8d0f689579d1, - limb1: 0x50ee9ab34ed5c7f371fd10ad, - limb2: 0xe45a8714e99a42f0, - limb3: 0x0 - }, - u384 { - limb0: 0xd69b4b9dc94aaa31f7d1d1df, - limb1: 0x849423e1c7900c38d08ad576, - limb2: 0x1a5e27a7d643f390, - limb3: 0x0 - }, - u384 { - limb0: 0x12066f6ebb02fa576cce52de, - limb1: 0xdbd937cf2f94412d8fcf103e, - limb2: 0xb84dac8eac1a67cd, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { - limb0: 0x4436e1d4ab46a376c3517896, - limb1: 0x26472268455256ab552d71c3, - limb2: 0x7adc2a21c475def2, - limb3: 0x0 - }, - u384 { - limb0: 0x516879d9caf7da8d7df1386f, - limb1: 0x3437697f4db5efdf5f995ee3, - limb2: 0x284e4944d77f0c07, - limb3: 0x0 - }, - u384 { - limb0: 0x6da281f8f0127c0a66211eff, - limb1: 0xe8d194e92f6635316e17497a, - limb2: 0xd539a2161871e598, - limb3: 0x0 - }, - u384 { - limb0: 0x9e84613a8197eb6ea8240249, - limb1: 0xe365e5a59ec57fa254277c02, - limb2: 0x5670f00e18bb8fec, - limb3: 0x0 - }, - u384 { - limb0: 0xaace4265fd426e07546e96ee, - limb1: 0x98ab3536cfa738480c9dfe0a, - limb2: 0xb21ff9fdc559cb9f, - limb3: 0x0 - }, - u384 { - limb0: 0xb5c9ce09fc7f3b9d4c27706e, - limb1: 0x8cd80ca1fc500bc928c8978e, - limb2: 0xaa5d112c7837bf3, - limb3: 0x0 - }, - u384 { - limb0: 0x88312367487cc0414847650f, - limb1: 0xfb2200c1f0b20b3d7d38f545, - limb2: 0x62a86020abee97d8, - limb3: 0x0 - }, - u384 { - limb0: 0x1bf6c31492f9fb94ef5e74df, - limb1: 0x537024cbc343322a4e380302, - limb2: 0xd4b49a618abbde26, - limb3: 0x0 - }, - u384 { - limb0: 0x8fe54493db40d1bd2d5dc546, - limb1: 0xbbc6fec403bafb5fa589e521, - limb2: 0x4116830cae49edac, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x75fed9e4aa3b2435f532234e, - limb1: 0xdac5945da101d205fb5e6c, - limb2: 0x43865d0ac09b8f31, - limb3: 0x0 - }, - u384 { - limb0: 0xd784a91a5e09d24dfc4a247d, - limb1: 0xffffffffffffffff7c074593, - limb2: 0x7fffffffffffffff, - limb3: 0x0 - } - ] - .span(), - a_den: array![ - u384 { - limb0: 0xac3919e32b75f9b84485ddae, - limb1: 0xd0daf16a3ace2787eab5321e, - limb2: 0x1225414a95a471a4, - limb3: 0x0 - }, - u384 { - limb0: 0xc6a21a2f60e99ea52450838, - limb1: 0xf23517998babe34c2f3ec4be, - limb2: 0x8f2a723bd0367da, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0x9817ba6d29c54ad3b770eb15, - limb1: 0x99964d61a916145e756030fe, - limb2: 0x8442e20be0dc08b, - limb3: 0x0 - }, - u384 { - limb0: 0x28c08ce21638a0f9ec9b49ee, - limb1: 0xa6a2b2a1423bd1ea28584bbd, - limb2: 0x6c1f9d387bac899e, - limb3: 0x0 - }, - u384 { - limb0: 0x5c8853a181b9894c781a3952, - limb1: 0x9bd5af74fcf5138a172cf327, - limb2: 0x7fa6dde1f65f041f, - limb3: 0x0 - } - ] - .span(), - b_den: array![ - u384 { - limb0: 0xb58fb5363039d409dfa90fc2, - limb1: 0xb5fc99e79ba314b76af45ed6, - limb2: 0x7f04c90a177f1b81, - limb3: 0x0 - }, - u384 { - limb0: 0x56e6eb74ba6635683fe33988, - limb1: 0x9f73a532d1b337154ab76132, - limb2: 0x3ea291fa2b17d6fc, - limb3: 0x0 - }, - u384 { limb0: 0x7, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { - limb0: 0xac3919e32b75f9b84485ddae, - limb1: 0xd0daf16a3ace2787eab5321e, - limb2: 0x1225414a95a471a4, - limb3: 0x0 - }, - u384 { - limb0: 0xc6a21a2f60e99ea52450838, - limb1: 0xf23517998babe34c2f3ec4be, - limb2: 0x8f2a723bd0367da, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - }; - let derive_point_from_x_hint = DerivePointFromXHint { - y_last_attempt: u384 { - limb0: 0x7bcf00eb9b11112c78c3f793, - limb1: 0xb380eae88eb856ab123d907c, - limb2: 0x19e8ae287f0cdeee, - limb3: 0x0 - }, - g_rhs_sqrt: array![ - u384 { - limb0: 0x26c54c6f81f70ca282314ce7, - limb1: 0x8755a559d915c0d8c298583f, - limb2: 0x603a065209c9095b, - limb3: 0x0 - }, - u384 { - limb0: 0xcb10d703c9d8029ddb2cc49b, - limb1: 0x3c7cfb6b6d111dfd6a647771, - limb2: 0x46a6e1a69a9e3238, - limb3: 0x0 - } - ] - .span(), - }; - let points = array![ - G1Point { - x: u384 { - limb0: 0x393dead57bc85a6e9bb44a70, - limb1: 0x64d4b065b3ede27cf9fb9e5c, - limb2: 0xda670c8c69a8ce0a, - limb3: 0x0 - }, - y: u384 { - limb0: 0x789872895ad7121175bd78f8, - limb1: 0xc0deb0b56fb251e8fb5d0a8d, - limb2: 0x3f10d670dc3297c2, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0xfdfdc509f368ba4395773d3a, - limb1: 0x8de2b60b577a13d0f83b578e, - limb2: 0xc2dd970269530ba2, - limb3: 0x0 - }, - y: u384 { - limb0: 0x589fa250d638e35400c12ddf, - limb1: 0xb3aac19fcb5095808402aa7f, - limb2: 0xed6de6590d0195d1, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x2965eeb3ec1fe786a6abe874, - limb1: 0x33e2545f82bb6add02788b8e, - limb2: 0xf586bc0db335d7b8, - limb3: 0x0 - }, - y: u384 { - limb0: 0x155b35991489db2fdf4de620, - limb1: 0xf24ce461346a182d67eeccf0, - limb2: 0xb4122bb4b37cc7d5, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x12815740835b12f70b96c66f, - limb1: 0xbfa76a8b80aec9f2e31c40cc, - limb2: 0xcd8a26d17d33c7c1, - limb3: 0x0 - }, - y: u384 { - limb0: 0x9a8f496f09402b8fd6beb89b, - limb1: 0x28e48918dad2123d7f202bef, - limb2: 0xcdd11b6ffb3f8614, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0xb5076be8537cff2a42c6db68, - limb1: 0x1066d40cbd01a3752e4e069c, - limb2: 0x123ec2fd302cb0f9, - limb3: 0x0 - }, - y: u384 { - limb0: 0xc85f5e5efdf415f8081bf53f, - limb1: 0xadc5010e9d9ac6c64000d33d, - limb2: 0xf81314011d8852e4, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0xd5915098d3d2001310b0b935, - limb1: 0x88bb4507ebf1be82cfba2397, - limb2: 0x8a463f1c00ce885f, - limb3: 0x0 - }, - y: u384 { - limb0: 0x414858f8a83f9d4498890137, - limb1: 0xa09c4658c47ace74c42cdb60, - limb2: 0x8aaf300ff3ab7d98, - limb3: 0x0 - } - }, - G1Point { - x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - }, - ] - .span(); - let scalars = array![ - u256 { low: 0x0, high: 0x0 }, - u256 { - low: 0x5a92118719c78df48f4ff31e78de5857, high: 0xa3f2c9bf9c6316b950f244556f25e2a2 - }, - u256 { - low: 0x8d723104f77383c13458a748e9bb17bc, high: 0x85776e9add84f39e71545a137a1d5006 - }, - u256 { - low: 0xeb2083e6ce164dba0ff18e0242af9fc3, high: 0x17e0aa3c03983ca8ea7e9d498c778ea6 - }, - u256 { - low: 0xb5d32b1666194cb1d71037d1b83e90ec, high: 0xa0116be5ab0c1681c8f8e3d0d3290a4c - }, - u256 { - low: 0xd3fbf47a7e5b1e7f9ca5499d004ae545, high: 0xbaf3897a3e70f16a55485822de1b372a - }, - u256 { - low: 0x101fbcccded733e8b421eaeb534097ca, high: 0x38c1962e9148624feac1c14f30e9c5cc - }, - ] - .span(); - - let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 2 - ); - assert!( - res == G1Point { - x: u384 { - limb0: 0x88dd4d38cdba847d7ba97f1f, - limb1: 0xd0f7b1d3594f3058d1b741c0, - limb2: 0xf2b61730ef89e767, - limb3: 0x0 - }, - y: u384 { - limb0: 0x64c3398fc1deb30288efdd6b, - limb1: 0xe154df4b9d3bd08870f0cf1a, - limb2: 0x17afe6616f61f475, - limb3: 0x0 - } - } - ); - } - - - #[test] - fn test_msm_SECP256K1_8P() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - ] - .span(), - array![ - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - ] - .span(), - array![ - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - ] - .span(), - array![ - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - ] - .span() - ), - ] - .span() - ); - let msm_hint = MSMHint { - Q_low: G1Point { - x: u384 { - limb0: 0xd08760d421523bc93b29a910, - limb1: 0xa9c99550c8c4ee22eb90d439, - limb2: 0xc9aefd798cc252be, - limb3: 0x0 - }, - y: u384 { - limb0: 0x2653f38b0316ea58bbd2d25a, - limb1: 0xe4e43357e663a74e95a12d4d, - limb2: 0xd8154cfb53b18ba, - limb3: 0x0 - } - }, - Q_high: G1Point { - x: u384 { - limb0: 0x9da50b36063dee8a1ef86744, - limb1: 0x230ca0ffac47d2a7030a49da, - limb2: 0x5eca2e5027cf83a5, - limb3: 0x0 - }, - y: u384 { - limb0: 0xada8e6cb4ad9e6ee975228e9, - limb1: 0x775e318080d107bb57b33c42, - limb2: 0xecaa1bc53dcd3733, - limb3: 0x0 - } - }, - Q_high_shifted: G1Point { - x: u384 { - limb0: 0xbf82c84df80bb8c80c3500ed, - limb1: 0x7dc3ca395f3d65ea1f4521d1, - limb2: 0x80e321d802716671, - limb3: 0x0 - }, - y: u384 { - limb0: 0x97beed6765550df075583918, - limb1: 0x4c5808873c47f3357765f393, - limb2: 0x3c5b6736bd4b2394, - limb3: 0x0 - } - }, - SumDlogDivLow: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x787e77307192778012a43585, - limb1: 0x2a303f6e230643a4bf5eec15, - limb2: 0x470814c1ab637b71, - limb3: 0x0 - }, - u384 { - limb0: 0xa58fa1aa862dd9d8187bfd16, - limb1: 0x328c65ddc4c89d372e28279c, - limb2: 0x3a271994530b48c3, - limb3: 0x0 - }, - u384 { - limb0: 0x811464fb90cc96e5aab15cec, - limb1: 0x9e8d91d01d973082393ea44d, - limb2: 0xf0bdeda816206637, - limb3: 0x0 - }, - u384 { - limb0: 0x5500c0d4db403549a9ac8555, - limb1: 0xb02d5b6493bd254cd25aecef, - limb2: 0x3a89a9801d1ef097, - limb3: 0x0 - }, - u384 { - limb0: 0xd4e4af22f5522872fa1433eb, - limb1: 0x9544f2d2f8a615001dd6d22b, - limb2: 0x152c390f0bfcd423, - limb3: 0x0 - }, - u384 { - limb0: 0x8a6808bef860fadea840860, - limb1: 0xe1455a26aa4f25cba5a7da5d, - limb2: 0x989a13d48d4d62, - limb3: 0x0 - }, - u384 { - limb0: 0x7f60b18bf60ac066c292e325, - limb1: 0xfffffffffffffffec575a9ee, - limb2: 0xffffffffffffffff, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x1b5500eff9bc4ca2a19ef792, - limb1: 0x61687bd6cab4b49f0c019295, - limb2: 0xf3854ff7ce9c746, - limb3: 0x0 - }, - u384 { - limb0: 0xc44be28ff7d98ff4a8dedf11, - limb1: 0x748120c93876f62e60b3a338, - limb2: 0x4c30334b27294db8, - limb3: 0x0 - }, - u384 { - limb0: 0xc43230ab5dfec261c923f48a, - limb1: 0xc469350b46df22f2a713f5, - limb2: 0x2d7a400a05040f4f, - limb3: 0x0 - }, - u384 { - limb0: 0x5529c0abb64a2c908451479d, - limb1: 0x966eb31d80217566b8a72b62, - limb2: 0x70cde5d9943686bb, - limb3: 0x0 - }, - u384 { - limb0: 0xafaa607f2c883114178ce29b, - limb1: 0x16281cce94275c574b350cd4, - limb2: 0x8ecad13d1251f88e, - limb3: 0x0 - }, - u384 { - limb0: 0x56ae834374f7604046588654, - limb1: 0xd5a2c34cbf82c7583bdffbae, - limb2: 0xfeb68dc0ee81c59b, - limb3: 0x0 - }, - u384 { - limb0: 0x5387ec2c169e85b04769a71c, - limb1: 0x793c2deb985f69da4d322a71, - limb2: 0xc53673707afe8e86, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0xf082961ac29c078a38bfb530, - limb1: 0xca500f9c724abced03907e02, - limb2: 0x8c73e1fa0bcb262e, - limb3: 0x0 - }, - u384 { - limb0: 0x19d417c272836724ef054946, - limb1: 0xb081e51d5b4073b3b9039d6, - limb2: 0x11ee5bac0a0f4653, - limb3: 0x0 - }, - u384 { - limb0: 0xcd7ba9094b5c2478a55239b0, - limb1: 0x62c28272c48a33f451f491bf, - limb2: 0xcb92401dd04fb19, - limb3: 0x0 - }, - u384 { - limb0: 0xe649c2118995b021b1681fdc, - limb1: 0x5e019288e20855e9bce8fe13, - limb2: 0xa3999f2ba0d06f7, - limb3: 0x0 - }, - u384 { - limb0: 0x2f83d437df63537785efbdbe, - limb1: 0xdb0ef29a81f0c758f00ce93d, - limb2: 0x7da9d985a6bf8477, - limb3: 0x0 - }, - u384 { - limb0: 0x6388f9f5352c5bc30115db4e, - limb1: 0x34094ea57b2225e53dcffc77, - limb2: 0xdfc9d48b876666ce, - limb3: 0x0 - }, - u384 { - limb0: 0x82902c333d86b01a1e859471, - limb1: 0x50481ac313472edd917e7b5d, - limb2: 0xa142f382686896d, - limb3: 0x0 - }, - u384 { - limb0: 0x84ccf9145cbda6132423b2bc, - limb1: 0x301f13fa7fe125de88ada79a, - limb2: 0x8881ebeaf71add1c, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { - limb0: 0xbf53068fd42618726b58c4fe, - limb1: 0xa9db62df8af0f059540b0213, - limb2: 0x6a8a52fc6a6472ec, - limb3: 0x0 - }, - u384 { - limb0: 0x5e1331efc6f2efb29e182119, - limb1: 0x2f87e5808b40bb44a4e9768d, - limb2: 0x1551670e1221200b, - limb3: 0x0 - }, - u384 { - limb0: 0x5d5f54af91f750ad7ffbb397, - limb1: 0x55ee0734ef019f4a2918bb8, - limb2: 0x3e57c046231c6b29, - limb3: 0x0 - }, - u384 { - limb0: 0x6f7945a1f5c384993fd7f850, - limb1: 0x7e6f61a54b9eea6e1893c245, - limb2: 0x24d99df28a677667, - limb3: 0x0 - }, - u384 { - limb0: 0x91f4860a2f92e7854db92092, - limb1: 0xf99ea6f458a7c916f26fd09, - limb2: 0x33bbebf6a767199b, - limb3: 0x0 - }, - u384 { - limb0: 0x22f7c78390c2642ab58fbb8d, - limb1: 0xd837c04e47da528c95c6f5ba, - limb2: 0x247820508a907691, - limb3: 0x0 - }, - u384 { - limb0: 0x9de135e0549fd4677834ec76, - limb1: 0xe713f48eaabd5a5ed506547b, - limb2: 0xd54b0decf12c6c68, - limb3: 0x0 - }, - u384 { - limb0: 0xafaa607f2c883114178ce2a2, - limb1: 0x16281cce94275c574b350cd4, - limb2: 0x8ecad13d1251f88e, - limb3: 0x0 - }, - u384 { - limb0: 0x56ae834374f7604046588654, - limb1: 0xd5a2c34cbf82c7583bdffbae, - limb2: 0xfeb68dc0ee81c59b, - limb3: 0x0 - }, - u384 { - limb0: 0x5387ec2c169e85b04769a71c, - limb1: 0x793c2deb985f69da4d322a71, - limb2: 0xc53673707afe8e86, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { - limb0: 0xa37dad62dd79e6a025d2d07f, - limb1: 0x1ea0216762b407735df8c0fd, - limb2: 0x4300b7b5303e7d5d, - limb3: 0x0 - }, - u384 { - limb0: 0xc12d1d099fb259fd4f16d974, - limb1: 0x20ed0d5b844377853d004b7e, - limb2: 0x8596f3df8c78a813, - limb3: 0x0 - }, - u384 { - limb0: 0x20aba5f91fc17e5c3d247be7, - limb1: 0x876c46b6f76ff6766f1654e, - limb2: 0xf36728f7cabdbd7b, - limb3: 0x0 - }, - u384 { - limb0: 0x4bd5c08b4436b29e0966cf, - limb1: 0x2ceb2efbbde7bfed4128459f, - limb2: 0x278f631ac1f639bd, - limb3: 0x0 - }, - u384 { - limb0: 0xd1cdf1e796ea3a6ae77719d6, - limb1: 0x361a6cfbcdd6fd98c5f58a85, - limb2: 0xf6f9e3e26876a2ed, - limb3: 0x0 - }, - u384 { - limb0: 0x883d0d3202818faeb7a8e715, - limb1: 0x158073ffed75e862312ae3ad, - limb2: 0xe7a0d99aeceb5b1e, - limb3: 0x0 - }, - u384 { - limb0: 0xd06b5ebef1bec77ab55f76a1, - limb1: 0xffffffffffffffffe5b49630, - limb2: 0xffffffffffffffff, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x373d08a6ba9af9fcafc24906, - limb1: 0xec44e3eee10839b3862e3ccc, - limb2: 0xf331c76d129f899f, - limb3: 0x0 - }, - u384 { - limb0: 0xaecc2341fa5a451edc544b4d, - limb1: 0xbeed4d1154993ea27382ccdd, - limb2: 0xf11cc6344eb9549f, - limb3: 0x0 - }, - u384 { - limb0: 0x569ebf0a8a7b8f0e9b2cefb1, - limb1: 0x8e18aff8faed188c5fb03246, - limb2: 0x25574b15d9bade1d, - limb3: 0x0 - }, - u384 { - limb0: 0xcb6bdae58e04af03c7448147, - limb1: 0xfb31e698fcb05c359bf8407c, - limb2: 0x4777d6d2c5a6422d, - limb3: 0x0 - }, - u384 { - limb0: 0x1cdcb2e414a339fc134b9c6, - limb1: 0x754cce3fed8f76f63a292849, - limb2: 0xbaf13cadc6517b6b, - limb3: 0x0 - }, - u384 { - limb0: 0xc776457991342194f2cc4262, - limb1: 0xbafddfef92e71dbdddb4da21, - limb2: 0xddaab162793a63d0, - limb3: 0x0 - }, - u384 { - limb0: 0x866a41ca31b2d2f0639aecb9, - limb1: 0xfff9223cb4dc855635b8b4d0, - limb2: 0x301b4299dff15d9f, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0xc10b0b04cf0535d55841758f, - limb1: 0x7885053d757c74041590bb5, - limb2: 0x5e4eefee9cf44be2, - limb3: 0x0 - }, - u384 { - limb0: 0x82d85aff48dbd7024d0ebdc, - limb1: 0x12c44fbca9f1d4bd78290395, - limb2: 0xe4ace41538a5f2fc, - limb3: 0x0 - }, - u384 { - limb0: 0x3e8b64fef27ad5ffb0ac14e2, - limb1: 0xe59f5ae135e442d664092409, - limb2: 0x19c54076823663e0, - limb3: 0x0 - }, - u384 { - limb0: 0xc345eb5100c6551b8f1a96d, - limb1: 0x3a5b424727d7e0bd41be70f5, - limb2: 0x58ca75c73fa2983c, - limb3: 0x0 - }, - u384 { - limb0: 0xba800696db899a08b62b61c6, - limb1: 0x28c0210e653ab161688f77ed, - limb2: 0xf7bdac4d12ef77e2, - limb3: 0x0 - }, - u384 { - limb0: 0x1b6d126637ed79b78992061, - limb1: 0xd0a170ac087913233c884fad, - limb2: 0x96688f51ff8a2290, - limb3: 0x0 - }, - u384 { - limb0: 0xb77517c9bf2d59476cfed3fe, - limb1: 0xe3ecf7dbf49fae7a82a1987c, - limb2: 0xf443e20341c07028, - limb3: 0x0 - }, - u384 { - limb0: 0x98044916ec0447f2b89635a0, - limb1: 0x4e143b946d801afffb597f81, - limb2: 0x4b6ac1862e6e5b27, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { - limb0: 0x82ab3c8f1a3cd5eece501610, - limb1: 0x75e23b88273993e8ab43a995, - limb2: 0xa65c73fb825cc35f, - limb3: 0x0 - }, - u384 { - limb0: 0xc794f6cdd877e3de064e2601, - limb1: 0x387d1b795030b67128939a0f, - limb2: 0x97c96b6e2711505e, - limb3: 0x0 - }, - u384 { - limb0: 0x5e573949c960e9673e3a91a8, - limb1: 0xe2accfcedc7babd69dd15fec, - limb2: 0x5630d98f41c12ce, - limb3: 0x0 - }, - u384 { - limb0: 0xc73004ed9cbbc31922a1d999, - limb1: 0xcaa2321dc9dabf2ac9f80035, - limb2: 0xe778a7307a2b58e1, - limb3: 0x0 - }, - u384 { - limb0: 0xbb6cb185c361ae8324c5769d, - limb1: 0xf406f0d0d3857f5e0aa2e6dc, - limb2: 0xdb56ef4baf3b48f, - limb3: 0x0 - }, - u384 { - limb0: 0xcadaa55d82e87a273ec2d745, - limb1: 0xab09cf85ff3ee8bd6fa22932, - limb2: 0x350224c72a5398d2, - limb3: 0x0 - }, - u384 { - limb0: 0x7853a76ce9e873978080fe27, - limb1: 0xfb01d641eeb8019114053230, - limb2: 0x9836a907e53fd18d, - limb3: 0x0 - }, - u384 { - limb0: 0x1cdcb2e414a339fc134b9cd, - limb1: 0x754cce3fed8f76f63a292849, - limb2: 0xbaf13cadc6517b6b, - limb3: 0x0 - }, - u384 { - limb0: 0xc776457991342194f2cc4262, - limb1: 0xbafddfef92e71dbdddb4da21, - limb2: 0xddaab162793a63d0, - limb3: 0x0 - }, - u384 { - limb0: 0x866a41ca31b2d2f0639aecb9, - limb1: 0xfff9223cb4dc855635b8b4d0, - limb2: 0x301b4299dff15d9f, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x57c5aa63400d70a1e2a1778a, - limb1: 0xabd144b961e15b50425b51ae, - limb2: 0x2a250b4b1995f2c, - limb3: 0x0 - }, - u384 { - limb0: 0xd784a91a5e09d24dfc4a247d, - limb1: 0xffffffffffffffff7c074593, - limb2: 0x7fffffffffffffff, - limb3: 0x0 - } - ] - .span(), - a_den: array![ - u384 { - limb0: 0xf264ff18b1711f37aefca404, - limb1: 0xe055efa16f4866dbb768e1a1, - limb2: 0x797a5e66df665645, - limb3: 0x0 - }, - u384 { - limb0: 0xa2d82c7c01b658acd4d293fe, - limb1: 0x5f2f94c6f47ac76eddb09453, - limb2: 0x2052afd7d5bf15e9, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0x1b5cf66255ed872aa7e14477, - limb1: 0x8d44cb67863a3cba9e248257, - limb2: 0x22d95bca59cd4330, - limb3: 0x0 - }, - u384 { - limb0: 0xf93dc50ad36b5b75a43369ad, - limb1: 0xb1cf80816a0877c650572aed, - limb2: 0x5036411d7ca9a05d, - limb3: 0x0 - }, - u384 { - limb0: 0x9568e96339d303c7f52f8f5c, - limb1: 0x5613f6c14abbd9cac3ad4f0c, - limb2: 0xcc7f75d8cf968f07, - limb3: 0x0 - } - ] - .span(), - b_den: array![ - u384 { - limb0: 0xa0c2f9acda17da88c8e8878f, - limb1: 0x22598d6a0afad00203de2b6d, - limb2: 0x525894d01bcc5be9, - limb3: 0x0 - }, - u384 { - limb0: 0x73e937640bfc6cb9d1c20bf2, - limb1: 0x9a4d1170af5b74080fd40e49, - limb2: 0xe242cee6d8399961, - limb3: 0x0 - }, - u384 { limb0: 0x7, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { - limb0: 0xf264ff18b1711f37aefca404, - limb1: 0xe055efa16f4866dbb768e1a1, - limb2: 0x797a5e66df665645, - limb3: 0x0 - }, - u384 { - limb0: 0xa2d82c7c01b658acd4d293fe, - limb1: 0x5f2f94c6f47ac76eddb09453, - limb2: 0x2052afd7d5bf15e9, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - }; - let derive_point_from_x_hint = DerivePointFromXHint { - y_last_attempt: u384 { - limb0: 0x13a7e85b60d57899fbc75091, - limb1: 0xb42e9a9e4a79404954b4cee1, - limb2: 0x32ba0b40e29545b7, - limb3: 0x0 - }, - g_rhs_sqrt: array![ - u384 { - limb0: 0xaa8fd31d385764c4f4c3301d, - limb1: 0x47d0f022a5e70dcc47422f12, - limb2: 0x420dad0d168bbbce, - limb3: 0x0 - } - ] - .span(), - }; - let points = array![ - G1Point { - x: u384 { - limb0: 0x393dead57bc85a6e9bb44a70, - limb1: 0x64d4b065b3ede27cf9fb9e5c, - limb2: 0xda670c8c69a8ce0a, - limb3: 0x0 - }, - y: u384 { - limb0: 0x789872895ad7121175bd78f8, - limb1: 0xc0deb0b56fb251e8fb5d0a8d, - limb2: 0x3f10d670dc3297c2, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0xfdfdc509f368ba4395773d3a, - limb1: 0x8de2b60b577a13d0f83b578e, - limb2: 0xc2dd970269530ba2, - limb3: 0x0 - }, - y: u384 { - limb0: 0x589fa250d638e35400c12ddf, - limb1: 0xb3aac19fcb5095808402aa7f, - limb2: 0xed6de6590d0195d1, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x2965eeb3ec1fe786a6abe874, - limb1: 0x33e2545f82bb6add02788b8e, - limb2: 0xf586bc0db335d7b8, - limb3: 0x0 - }, - y: u384 { - limb0: 0x155b35991489db2fdf4de620, - limb1: 0xf24ce461346a182d67eeccf0, - limb2: 0xb4122bb4b37cc7d5, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x12815740835b12f70b96c66f, - limb1: 0xbfa76a8b80aec9f2e31c40cc, - limb2: 0xcd8a26d17d33c7c1, - limb3: 0x0 - }, - y: u384 { - limb0: 0x9a8f496f09402b8fd6beb89b, - limb1: 0x28e48918dad2123d7f202bef, - limb2: 0xcdd11b6ffb3f8614, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0xb5076be8537cff2a42c6db68, - limb1: 0x1066d40cbd01a3752e4e069c, - limb2: 0x123ec2fd302cb0f9, - limb3: 0x0 - }, - y: u384 { - limb0: 0xc85f5e5efdf415f8081bf53f, - limb1: 0xadc5010e9d9ac6c64000d33d, - limb2: 0xf81314011d8852e4, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0xd5915098d3d2001310b0b935, - limb1: 0x88bb4507ebf1be82cfba2397, - limb2: 0x8a463f1c00ce885f, - limb3: 0x0 - }, - y: u384 { - limb0: 0x414858f8a83f9d4498890137, - limb1: 0xa09c4658c47ace74c42cdb60, - limb2: 0x8aaf300ff3ab7d98, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x1772eb803ddc8a82e23b1c05, - limb1: 0xc26baeb89b03fd69eb64b337, - limb2: 0x4ea7131b2d873a45, - limb3: 0x0 - }, - y: u384 { - limb0: 0xc9d16330db15efd90235eed9, - limb1: 0x1b586ef360673d36baa16189, - limb2: 0xee652d2b848ad111, - limb3: 0x0 - } - }, - G1Point { - x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - }, - ] - .span(); - let scalars = array![ - u256 { low: 0x0, high: 0x0 }, - u256 { - low: 0x8d723104f77383c13458a748e9bb17bc, high: 0x85776e9add84f39e71545a137a1d5006 - }, - u256 { - low: 0xeb2083e6ce164dba0ff18e0242af9fc3, high: 0x17e0aa3c03983ca8ea7e9d498c778ea6 - }, - u256 { - low: 0xb5d32b1666194cb1d71037d1b83e90ec, high: 0xa0116be5ab0c1681c8f8e3d0d3290a4c - }, - u256 { - low: 0xd3fbf47a7e5b1e7f9ca5499d004ae545, high: 0xbaf3897a3e70f16a55485822de1b372a - }, - u256 { - low: 0x101fbcccded733e8b421eaeb534097ca, high: 0x38c1962e9148624feac1c14f30e9c5cc - }, - u256 { - low: 0x247a8333f7b0b7d2cda8056c3d15eef7, high: 0x1759edc372ae22448b0163c1cd9d2b7d - }, - u256 { - low: 0xe005b86051ef1922fe43c49e149818d1, high: 0x7d41e602eece328bff7b118e820865d6 - }, - ] - .span(); - - let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 2 - ); - assert!( - res == G1Point { - x: u384 { - limb0: 0x79ab4abb9eab8499e87b45ba, - limb1: 0x4d3f0a3390651efa3669db3b, - limb2: 0x3ec81a1709e22492, - limb3: 0x0 - }, - y: u384 { - limb0: 0xd78a7e6724ba14875baa64a3, - limb1: 0x240b69f30bb2570aef1cb438, - limb2: 0x995a3e99461bc4bc, - limb3: 0x0 - } - } - ); - } - - - #[test] - fn test_msm_SECP256K1_9P() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - ] - .span(), - array![ - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - ] - .span(), - array![ - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - ] - .span(), - array![ - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - ] - .span() - ), - ] - .span() - ); - let msm_hint = MSMHint { - Q_low: G1Point { - x: u384 { - limb0: 0xca412f965372744a661e82f8, - limb1: 0x1e6e4ae1559a0d7da3eb180a, - limb2: 0x42bec0638541261b, - limb3: 0x0 - }, - y: u384 { - limb0: 0x4745a7bda698174b5620ec91, - limb1: 0x4f08db9001f4266790cf805f, - limb2: 0xbc3f949446c98b5b, - limb3: 0x0 - } - }, - Q_high: G1Point { - x: u384 { - limb0: 0xc9e3053aceed4189b3835d6a, - limb1: 0xd6489c4757282e1404e21627, - limb2: 0xeab9e46756e61e75, - limb3: 0x0 - }, - y: u384 { - limb0: 0x606122f214959a74ec7325fa, - limb1: 0xf2049d738ff3cba256397d07, - limb2: 0xc064d4dba5d1b03, - limb3: 0x0 - } - }, - Q_high_shifted: G1Point { - x: u384 { - limb0: 0x8ae4cbbbf99301afbd7dc3bc, - limb1: 0xcf94be1892a6e0c2f3319cc6, - limb2: 0xc424ed3a44b19011, - limb3: 0x0 - }, - y: u384 { - limb0: 0x358d90d50894916552893237, - limb1: 0x2aa07b39767e20f116447fa0, - limb2: 0xd53e5214bff1d923, - limb3: 0x0 - } - }, - SumDlogDivLow: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x5fd566aa76237160c25b9a6c, - limb1: 0x6dd8d3462c016e9cb848146a, - limb2: 0xa07b3eda6065d8a7, - limb3: 0x0 - }, - u384 { - limb0: 0xde0fc95991ad87077712d8cc, - limb1: 0x3bfb003ef6718b5137b8e6b6, - limb2: 0x3e2ac5c510710d09, - limb3: 0x0 - }, - u384 { - limb0: 0xe4e469b598bd7b020af58ec2, - limb1: 0x445a0ae0aa00971d69e6f6b0, - limb2: 0x7c3f574625c3907d, - limb3: 0x0 - }, - u384 { - limb0: 0x52228627f47dc354f3b667e0, - limb1: 0xe322925e7da1b471fbe133c3, - limb2: 0x4d4a510ee9d2255b, - limb3: 0x0 - }, - u384 { - limb0: 0xa4e3496916792c6540871ac7, - limb1: 0x3ec59bcf27e34a5db35823ab, - limb2: 0xb2c0f99bcbb0f57f, - limb3: 0x0 - }, - u384 { - limb0: 0x16bfda98cfc2b2d7d562a84f, - limb1: 0x8acdfa15174ceb8030ed259b, - limb2: 0x27a1979a76f2a34e, - limb3: 0x0 - }, - u384 { - limb0: 0xae40d126d0f87aae0c444171, - limb1: 0x8081139d6cc89b8af75ae3d0, - limb2: 0x331d5d08e2247e0, - limb3: 0x0 - }, - u384 { - limb0: 0x86d9e77998013bff0e9219b, - limb1: 0xfffffffffffffffe51bedaa5, - limb2: 0xffffffffffffffff, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { - limb0: 0xac3bddf1395dbc0805217a5e, - limb1: 0xad849c323a06312d38c3ea4a, - limb2: 0xa5096f775bec55a8, - limb3: 0x0 - }, - u384 { - limb0: 0xbf62d402be55833d02207f01, - limb1: 0x78294f92c2622a976e894303, - limb2: 0x789f2bf93267a488, - limb3: 0x0 - }, - u384 { - limb0: 0xeb2af483439b2c84cb3b62c3, - limb1: 0xf9555a757d8b1f6e47c36706, - limb2: 0x2defe43d7215fe49, - limb3: 0x0 - }, - u384 { - limb0: 0xe0100c2163b663f75fea138f, - limb1: 0x7c66b1cd9e69d744f166f7e4, - limb2: 0x8682abdc7db26e29, - limb3: 0x0 - }, - u384 { - limb0: 0xdb5afd67e501e662ec0ae363, - limb1: 0xaa9d8e12e3164aaa180dccae, - limb2: 0x47da173f8b45c056, - limb3: 0x0 - }, - u384 { - limb0: 0x414cb74aacd5cb1de43f9073, - limb1: 0xdc63255760350b824e2aa051, - limb2: 0xf431e6f538dd763e, - limb3: 0x0 - }, - u384 { - limb0: 0x6dde9439fd75ff8ecde2bde8, - limb1: 0x428ffc14af9487e3e1e58477, - limb2: 0x5fc60f63b3faf17f, - limb3: 0x0 - }, - u384 { - limb0: 0xf0d435d5be4627efe11b5e15, - limb1: 0x5119170731dd7ce7f192f31b, - limb2: 0x71ddc59c831e75d8, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0x8d8792f1d0cdac42f838873d, - limb1: 0x499ff607c39cbea7444b9b3f, - limb2: 0x1f2b89b3b9685b25, - limb3: 0x0 - }, - u384 { - limb0: 0x16747814f71c30ba9902a1ff, - limb1: 0x5245ceb7d912b88c99d3fb44, - limb2: 0x460e933b09ed7a18, - limb3: 0x0 - }, - u384 { - limb0: 0x655385711aa513b9e1d7a514, - limb1: 0xe033da97de341869e3d7335f, - limb2: 0xbb1ccc61e6b85a86, - limb3: 0x0 - }, - u384 { - limb0: 0x7facca073a9f8e6bc31020aa, - limb1: 0x99c146c5abda172c3a78ebe7, - limb2: 0x7f20ce056565acb2, - limb3: 0x0 - }, - u384 { - limb0: 0xbafafe5fe56f0422429a8d0e, - limb1: 0xc8ba4b3862b7c98e0adfe1d0, - limb2: 0x2c6e832c89d07265, - limb3: 0x0 - }, - u384 { - limb0: 0x46f17720b476151559a64117, - limb1: 0xcb809db40c8858dfe0a07ba0, - limb2: 0xe8ef23550075cef7, - limb3: 0x0 - }, - u384 { - limb0: 0xd3db2fd286d699ac73b04cf, - limb1: 0xe557a7ca1ce47994fdb43d58, - limb2: 0xc4a63b1767c1e368, - limb3: 0x0 - }, - u384 { - limb0: 0x4630696fc8eb84b771d34fbe, - limb1: 0xbb1b063185e24e740e68b5fd, - limb2: 0x7c2531ed279d4c06, - limb3: 0x0 - }, - u384 { - limb0: 0x224a51a29b241874ecebf1bd, - limb1: 0x7890c95708c331d7f088ddbc, - limb2: 0x64c769349b5ae1b1, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { - limb0: 0xb5a311989190243c23ea67d6, - limb1: 0xbea0455f962b583c8d5b680a, - limb2: 0x83420c438376579c, - limb3: 0x0 - }, - u384 { - limb0: 0x3bb3cc13345696ae0ee3847a, - limb1: 0x49212d0350af2a2405c0d51a, - limb2: 0x4c5a33d060d57fbb, - limb3: 0x0 - }, - u384 { - limb0: 0x6e2caf96d93e37a28e9fb726, - limb1: 0xd15579366ecddc03f657d130, - limb2: 0x418f3dae1e99f405, - limb3: 0x0 - }, - u384 { - limb0: 0xccac32daf35a77cfa488128b, - limb1: 0x145378d18eeb140fd294b18c, - limb2: 0x529c227ecbcd58cb, - limb3: 0x0 - }, - u384 { - limb0: 0xbedfc1da0162cff3766cbe58, - limb1: 0x22783216f7fe353e16e9dbcb, - limb2: 0x6f95ceb6014fe6e7, - limb3: 0x0 - }, - u384 { - limb0: 0xb443f78dfd73ba5c08f86cce, - limb1: 0xb5fd91efe6ffe6aedc93f, - limb2: 0xdb4d34f200243a02, - limb3: 0x0 - }, - u384 { - limb0: 0xe12619b751f060e2011d505a, - limb1: 0x4e56965e6b798e801ead9728, - limb2: 0x24ed1796698f08a4, - limb3: 0x0 - }, - u384 { - limb0: 0x7128764018ecfdf513ca8169, - limb1: 0xe24d2f454024b501b3127272, - limb2: 0x64ea7e87211af940, - limb3: 0x0 - }, - u384 { - limb0: 0x414cb74aacd5cb1de43f907a, - limb1: 0xdc63255760350b824e2aa051, - limb2: 0xf431e6f538dd763e, - limb3: 0x0 - }, - u384 { - limb0: 0x6dde9439fd75ff8ecde2bde8, - limb1: 0x428ffc14af9487e3e1e58477, - limb2: 0x5fc60f63b3faf17f, - limb3: 0x0 - }, - u384 { - limb0: 0xf0d435d5be4627efe11b5e15, - limb1: 0x5119170731dd7ce7f192f31b, - limb2: 0x71ddc59c831e75d8, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x86771636865d10f97213704f, - limb1: 0xe8f7b0b6c89ce48c027c0f40, - limb2: 0x4dc36ec592fac889, - limb3: 0x0 - }, - u384 { - limb0: 0x5c978ad8bb763f5c4e286a8, - limb1: 0xb5578dccd56140d5a4696976, - limb2: 0xaad1db7a9465b799, - limb3: 0x0 - }, - u384 { - limb0: 0x35560d9dd92e1c23c76af084, - limb1: 0x38e6d066f1584ce7503378e2, - limb2: 0x1b0d01628b8d9b9d, - limb3: 0x0 - }, - u384 { - limb0: 0xda3d6ba41f33125b435518fa, - limb1: 0xbd648858b9640bfdbc38817f, - limb2: 0x71627e55ee5372bd, - limb3: 0x0 - }, - u384 { - limb0: 0xc29a4d0074d8411f69f510f2, - limb1: 0xad4104399203a21045ce0600, - limb2: 0x63b8a12f0458247d, - limb3: 0x0 - }, - u384 { - limb0: 0xa408c5c9989786e2d988f795, - limb1: 0x6f020f69aeaabe9424722e31, - limb2: 0xf52ff3444d0c61c1, - limb3: 0x0 - }, - u384 { - limb0: 0xe7d9bfd722dc87fe5d984266, - limb1: 0x1a5cd63f4f0823d59c3d2c80, - limb2: 0xf9c3d1ca9b0df04b, - limb3: 0x0 - }, - u384 { - limb0: 0x4a53d3275459fd5a71e0b6bc, - limb1: 0x2637b6cf, - limb2: 0x8000000000000000, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { - limb0: 0xe66bbc6e77c6856a970afa0f, - limb1: 0x6e76df53c4bd6fc6ea749d6e, - limb2: 0x8f1d7b8b8d3d87c9, - limb3: 0x0 - }, - u384 { - limb0: 0x4b88b9dc0c6868d40b731775, - limb1: 0xba5626552e9cf01349f7f0c1, - limb2: 0x51373f09d75f526, - limb3: 0x0 - }, - u384 { - limb0: 0xe94f7998907bd20688897e31, - limb1: 0x987fed696e000df398b35c26, - limb2: 0xa29d2cf260dfa0e, - limb3: 0x0 - }, - u384 { - limb0: 0x79a1ba9afecdfdb7567d0be2, - limb1: 0x94ef13e0467eb6295402ee98, - limb2: 0xdaa724eedb32b6be, - limb3: 0x0 - }, - u384 { - limb0: 0x50ffb44d29629660b3761d5b, - limb1: 0x88f20d19aeab642eb91a5283, - limb2: 0xdaea7e9f2f231f4f, - limb3: 0x0 - }, - u384 { - limb0: 0xb75e9faa7ee50246274b4a56, - limb1: 0x9b8e04c6e4c781532f49af32, - limb2: 0x35032bd034d051b3, - limb3: 0x0 - }, - u384 { - limb0: 0x4180c5b1441d106803184c35, - limb1: 0x8efb3b5f495d60a3d6c276dd, - limb2: 0xbd46090a18a7a764, - limb3: 0x0 - }, - u384 { - limb0: 0xf132603142cb5aaf93b67fd2, - limb1: 0x993ec5a1304f5c51909bf4fe, - limb2: 0xc9e2a198b1797d7d, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0x9c0312e6dde10fc247c2f3ec, - limb1: 0x4fcc5026b364123ed952318c, - limb2: 0x5b0a979635ef4040, - limb3: 0x0 - }, - u384 { - limb0: 0x47cc24996b8efb0e490da474, - limb1: 0xb26313b7812938d3e7a40902, - limb2: 0x4a4d92acaba21b3e, - limb3: 0x0 - }, - u384 { - limb0: 0xb5e4803e36b5079109c6258d, - limb1: 0xfdfe8df9d110a58e54a1fdab, - limb2: 0xeb21c34722df9579, - limb3: 0x0 - }, - u384 { - limb0: 0x7f170339209e9499142e92b1, - limb1: 0xf0b2efaed4b9242895bfd16d, - limb2: 0xe3554118fa53b695, - limb3: 0x0 - }, - u384 { - limb0: 0x88eabe035b30246b30561657, - limb1: 0x10d95453da1b80b55838a8d1, - limb2: 0x8443e20cf9de9472, - limb3: 0x0 - }, - u384 { - limb0: 0x712de235e45c2d302219d33f, - limb1: 0x34eabb600d31c9818404429a, - limb2: 0xef4e6607c146524a, - limb3: 0x0 - }, - u384 { - limb0: 0x80141f7cbee08eacc4a61dd6, - limb1: 0x2dd2de39d1ef3ebbe6f6578e, - limb2: 0x682160a95ab940be, - limb3: 0x0 - }, - u384 { - limb0: 0xa78cdd47d632345870354e73, - limb1: 0xb9f7dc28efd0295e2ba40163, - limb2: 0xe2bd7b867c298799, - limb3: 0x0 - }, - u384 { - limb0: 0xed7a8d2dc66fc40b2ace6f7, - limb1: 0xb9798ae9e5769047be82bad2, - limb2: 0xa483963d866372e5, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { - limb0: 0x4cf22705466da5ed214ce1dc, - limb1: 0x5401b4a612e0e7069304e08, - limb2: 0xe9ce60d0dcaeb682, - limb3: 0x0 - }, - u384 { - limb0: 0x10bd150456daddcc5025a433, - limb1: 0x185b0c54464a908705c79549, - limb2: 0x23882b944e39b40f, - limb3: 0x0 - }, - u384 { - limb0: 0x612c532bf362be2dbbc27357, - limb1: 0x2b7f7de2020061a92ce78510, - limb2: 0x4724c3aa0a61d666, - limb3: 0x0 - }, - u384 { - limb0: 0x39d7d6ab6f687573f4766423, - limb1: 0x81006a75b2346ae83689239a, - limb2: 0x89af7e138ba086ff, - limb3: 0x0 - }, - u384 { - limb0: 0x8286a7f82e1a857ef3adfbd8, - limb1: 0x78f48208f54cad5a59b03258, - limb2: 0x17cea4ae76bd053, - limb3: 0x0 - }, - u384 { - limb0: 0xece5d74208bee1f29b988a5c, - limb1: 0xd9620ed9af749739e3b72689, - limb2: 0x7d40058097c035f7, - limb3: 0x0 - }, - u384 { - limb0: 0x44272273db9970956c27383b, - limb1: 0x7dcdb37b480c5aa433542ea5, - limb2: 0x791643587c84a7e, - limb3: 0x0 - }, - u384 { - limb0: 0xe96055a5fcf21133bd73b2ff, - limb1: 0xb9a9748200d6ea69ad5e057b, - limb2: 0x601ce9cc09758dbe, - limb3: 0x0 - }, - u384 { - limb0: 0xb75e9faa7ee50246274b4a5d, - limb1: 0x9b8e04c6e4c781532f49af32, - limb2: 0x35032bd034d051b3, - limb3: 0x0 - }, - u384 { - limb0: 0x4180c5b1441d106803184c35, - limb1: 0x8efb3b5f495d60a3d6c276dd, - limb2: 0xbd46090a18a7a764, - limb3: 0x0 - }, - u384 { - limb0: 0xf132603142cb5aaf93b67fd2, - limb1: 0x993ec5a1304f5c51909bf4fe, - limb2: 0xc9e2a198b1797d7d, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ - u384 { - limb0: 0xe55f9b4c06020b56cdfeb95f, - limb1: 0x172537cc0e414f5440101f1c, - limb2: 0xf0d58da204cbf26e, - limb3: 0x0 - }, - u384 { - limb0: 0xd784a91a5e09d24dfc4a247d, - limb1: 0xffffffffffffffff7c074593, - limb2: 0x7fffffffffffffff, - limb3: 0x0 - } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x6c387ba8a6c9552c79dc82b5, - limb1: 0x89be1cd4cf604516e19edb31, - limb2: 0x82f66cadb85e40b, - limb3: 0x0 - }, - u384 { - limb0: 0xab382f09377fbcc48efed738, - limb1: 0x5a22a5a01630f12907ec4d11, - limb2: 0x51212e5e64685178, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0x77b7a09060d348a32334919c, - limb1: 0xe62311ee813c07056e582afb, - limb2: 0xd815cc817a0f52da, - limb3: 0x0 - }, - u384 { - limb0: 0x7a6bdab6d65c78e0ca4729ff, - limb1: 0xc84066505bf42491c043443f, - limb2: 0xa126a3c026964bbd, - limb3: 0x0 - }, - u384 { - limb0: 0xf8733d18d838b52441b80329, - limb1: 0x46be0f420adfb46d5fe696fe, - limb2: 0x8f844e2e54d15650, - limb3: 0x0 - } - ] - .span(), - b_den: array![ - u384 { - limb0: 0xf58b619c8f815437550792f3, - limb1: 0xc432c9d1aba1e3a02b57fe59, - limb2: 0x394bcf8c00a93c50, - limb3: 0x0 - }, - u384 { - limb0: 0xae894940847e2961e8f7ea2a, - limb1: 0x76f287609b56981f37761b7b, - limb2: 0x37e84494beda3a4a, - limb3: 0x0 - }, - u384 { limb0: 0x7, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { - limb0: 0x6c387ba8a6c9552c79dc82b5, - limb1: 0x89be1cd4cf604516e19edb31, - limb2: 0x82f66cadb85e40b, - limb3: 0x0 - }, - u384 { - limb0: 0xab382f09377fbcc48efed738, - limb1: 0x5a22a5a01630f12907ec4d11, - limb2: 0x51212e5e64685178, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - }; - let derive_point_from_x_hint = DerivePointFromXHint { - y_last_attempt: u384 { - limb0: 0xf29b02930d3102191ce23d07, - limb1: 0x3f7d5e089b80fd337c78cbc9, - limb2: 0x7821b6d945fe371c, - limb3: 0x0 - }, - g_rhs_sqrt: array![ - u384 { - limb0: 0x9ce184307e05f740ddc4e60f, - limb1: 0x74426d8f983f01d6f5fba33a, - limb2: 0x1decda609e5eb282, - limb3: 0x0 - }, - u384 { - limb0: 0x64f104d58929419de28744cc, - limb1: 0xc20f2b918ee78702d1917178, - limb2: 0x5b20c35ef876ade2, - limb3: 0x0 - } - ] - .span(), - }; - let points = array![ - G1Point { - x: u384 { - limb0: 0x393dead57bc85a6e9bb44a70, - limb1: 0x64d4b065b3ede27cf9fb9e5c, - limb2: 0xda670c8c69a8ce0a, - limb3: 0x0 - }, - y: u384 { - limb0: 0x789872895ad7121175bd78f8, - limb1: 0xc0deb0b56fb251e8fb5d0a8d, - limb2: 0x3f10d670dc3297c2, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0xfdfdc509f368ba4395773d3a, - limb1: 0x8de2b60b577a13d0f83b578e, - limb2: 0xc2dd970269530ba2, - limb3: 0x0 - }, - y: u384 { - limb0: 0x589fa250d638e35400c12ddf, - limb1: 0xb3aac19fcb5095808402aa7f, - limb2: 0xed6de6590d0195d1, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x2965eeb3ec1fe786a6abe874, - limb1: 0x33e2545f82bb6add02788b8e, - limb2: 0xf586bc0db335d7b8, - limb3: 0x0 - }, - y: u384 { - limb0: 0x155b35991489db2fdf4de620, - limb1: 0xf24ce461346a182d67eeccf0, - limb2: 0xb4122bb4b37cc7d5, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x12815740835b12f70b96c66f, - limb1: 0xbfa76a8b80aec9f2e31c40cc, - limb2: 0xcd8a26d17d33c7c1, - limb3: 0x0 - }, - y: u384 { - limb0: 0x9a8f496f09402b8fd6beb89b, - limb1: 0x28e48918dad2123d7f202bef, - limb2: 0xcdd11b6ffb3f8614, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0xb5076be8537cff2a42c6db68, - limb1: 0x1066d40cbd01a3752e4e069c, - limb2: 0x123ec2fd302cb0f9, - limb3: 0x0 - }, - y: u384 { - limb0: 0xc85f5e5efdf415f8081bf53f, - limb1: 0xadc5010e9d9ac6c64000d33d, - limb2: 0xf81314011d8852e4, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0xd5915098d3d2001310b0b935, - limb1: 0x88bb4507ebf1be82cfba2397, - limb2: 0x8a463f1c00ce885f, - limb3: 0x0 - }, - y: u384 { - limb0: 0x414858f8a83f9d4498890137, - limb1: 0xa09c4658c47ace74c42cdb60, - limb2: 0x8aaf300ff3ab7d98, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x1772eb803ddc8a82e23b1c05, - limb1: 0xc26baeb89b03fd69eb64b337, - limb2: 0x4ea7131b2d873a45, - limb3: 0x0 - }, - y: u384 { - limb0: 0xc9d16330db15efd90235eed9, - limb1: 0x1b586ef360673d36baa16189, - limb2: 0xee652d2b848ad111, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x68f9e7942638253f3b596f1f, - limb1: 0xb37e6153d9accd97a344f384, - limb2: 0xda48eae9ff614551, - limb3: 0x0 - }, - y: u384 { - limb0: 0xc58be8ed857035b34f51c620, - limb1: 0x3b14ed53116cb7c1db000006, - limb2: 0x7dfa292fe99b77dd, - limb3: 0x0 - } - }, - G1Point { - x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - }, - ] - .span(); - let scalars = array![ - u256 { low: 0x0, high: 0x0 }, - u256 { - low: 0xeb2083e6ce164dba0ff18e0242af9fc3, high: 0x17e0aa3c03983ca8ea7e9d498c778ea6 - }, - u256 { - low: 0xb5d32b1666194cb1d71037d1b83e90ec, high: 0xa0116be5ab0c1681c8f8e3d0d3290a4c - }, - u256 { - low: 0xd3fbf47a7e5b1e7f9ca5499d004ae545, high: 0xbaf3897a3e70f16a55485822de1b372a - }, - u256 { - low: 0x101fbcccded733e8b421eaeb534097ca, high: 0x38c1962e9148624feac1c14f30e9c5cc - }, - u256 { - low: 0x247a8333f7b0b7d2cda8056c3d15eef7, high: 0x1759edc372ae22448b0163c1cd9d2b7d - }, - u256 { - low: 0xe005b86051ef1922fe43c49e149818d1, high: 0x7d41e602eece328bff7b118e820865d6 - }, - u256 { - low: 0x4a84eb038d1fd9b74d2b9deb1beb3711, high: 0x552f233a8c25166a1ff39849b4e1357d - }, - u256 { - low: 0x3405095c8a5006c1ec188efbd080e66e, high: 0x8c1745a79a6a5f92cca74147f6be1f72 - }, - ] - .span(); - - let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 2 - ); - assert!( - res == G1Point { - x: u384 { - limb0: 0x5efa5f5cd0df2099deb0d8d6, - limb1: 0xf69b0e7c16f2a193c5f17a1e, - limb2: 0x6268c16b65c23fe1, - limb3: 0x0 - }, - y: u384 { - limb0: 0x549e00a55312747827db8b37, - limb1: 0x2880708eba0d880a7c6f0820, - limb2: 0x1d119c5c14a94e0f, - limb3: 0x0 - } - } - ); - } - - - #[test] - fn test_msm_SECP256K1_10P() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - ] - .span(), - array![ - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - ] - .span(), - array![ - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - ] - .span(), - array![ - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - ] - .span(), - array![ - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - ] - .span() - ), - ] - .span() - ); - let msm_hint = MSMHint { - Q_low: G1Point { - x: u384 { - limb0: 0x4afd2ec2a6643712421d0683, - limb1: 0x11cef224f19a309e96679abb, - limb2: 0xcffd675843f0be43, - limb3: 0x0 - }, - y: u384 { - limb0: 0xf5ae7a1fdb6de2954712a3fd, - limb1: 0x71fe17f155aa123b146132b8, - limb2: 0xb35f7d31dd603448, - limb3: 0x0 - } - }, - Q_high: G1Point { - x: u384 { - limb0: 0x53307d00341d76bbf188df94, - limb1: 0xd91bee3612e221fb6683efa1, - limb2: 0xa0bbd123c52b1348, - limb3: 0x0 - }, - y: u384 { - limb0: 0x2cfa22fc764c5f4080fb4f30, - limb1: 0x9cb2f17fc11214eb4fbaa9cc, - limb2: 0xef04c79d8aebbaec, - limb3: 0x0 - } - }, - Q_high_shifted: G1Point { - x: u384 { - limb0: 0x670172a1e64a26ed422d2b12, - limb1: 0xd73418d6e8577e0dbcb65dea, - limb2: 0xfbcb3aac9382ad3, - limb3: 0x0 - }, - y: u384 { - limb0: 0xb12045b32e75ce2d977fca84, - limb1: 0x98bf7be3e9b1c1c9364d70d6, - limb2: 0x87549411a3123384, - limb3: 0x0 - } - }, - SumDlogDivLow: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x51f1762ae0a9a0ccb4a5a416, - limb1: 0x694dcf1b0bd4b38bddd318aa, - limb2: 0xc6628af70597152e, - limb3: 0x0 - }, - u384 { - limb0: 0x6b8009c8dbb028d86ba15107, - limb1: 0xfb2d1055d01a3104d91c0aea, - limb2: 0xe10ff997a3d21d53, - limb3: 0x0 - }, - u384 { - limb0: 0x9b892dc6c1e0582c76be62e0, - limb1: 0x3566c36fbcb04aca6a5365ea, - limb2: 0x23e764f26e3f0fe7, - limb3: 0x0 - }, - u384 { - limb0: 0x7cef7929189ff47930749bc2, - limb1: 0xc9608a5fa0b29b03afab69e7, - limb2: 0x9e99a936a2d167d, - limb3: 0x0 - }, - u384 { - limb0: 0x8203d2f32869765019a6e701, - limb1: 0xbc936a0b55aeb1f5d5a5ef06, - limb2: 0xf9c08a604709fec, - limb3: 0x0 - }, - u384 { - limb0: 0x85d1b8451197f8c11ea96f10, - limb1: 0x4e858cb5d708f4dc19115c91, - limb2: 0x2fd4309a52263a23, - limb3: 0x0 - }, - u384 { - limb0: 0xd7c53d3f4bb1ff6d69cc0284, - limb1: 0x352513f2b7ca80964de17cc7, - limb2: 0x3239bbf86b85309e, - limb3: 0x0 - }, - u384 { - limb0: 0x1bfa3e664a2bc19f6864f583, - limb1: 0xc4b57e5d3d880984ba198ecf, - limb2: 0xa039d63a77c8d557, - limb3: 0x0 - }, - u384 { - limb0: 0x3825e33a2c2d1008e71f9a14, - limb1: 0xfffffffffffffffea1ac2d39, - limb2: 0xffffffffffffffff, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x1e83fdc747e456254952f77d, - limb1: 0x6a5bec98ee4c9b34e8ead003, - limb2: 0x42c67e8c74b14e12, - limb3: 0x0 - }, - u384 { - limb0: 0x559e9a57095b30c627cadf77, - limb1: 0x279329da5fdcab8ac72975ca, - limb2: 0x68d469e2069caeee, - limb3: 0x0 - }, - u384 { - limb0: 0x87059c900aefa3cdef069367, - limb1: 0x99f96d580bcc1770a34edf81, - limb2: 0xafca171da001a00c, - limb3: 0x0 - }, - u384 { - limb0: 0xab5cf09cc7986b957ca4806a, - limb1: 0x226b7b2a3c9e92112d15af15, - limb2: 0x46a9023ed95b09c5, - limb3: 0x0 - }, - u384 { - limb0: 0xb2178b1d4bcfe3e68285dc3a, - limb1: 0x9f5bd4e35e1ec4b35188be19, - limb2: 0xd73446059e83efe5, - limb3: 0x0 - }, - u384 { - limb0: 0x38b0243a8ce54d79dc8337a1, - limb1: 0x3efcd48d3ac638166ab338f5, - limb2: 0x4c3e589a9f5f9c3a, - limb3: 0x0 - }, - u384 { - limb0: 0xdfc82a15bd1e690fa0ac5715, - limb1: 0x86c006e5cff53a091abdecd9, - limb2: 0xa7d8e90ad4587652, - limb3: 0x0 - }, - u384 { - limb0: 0x79ca10f6010bea13f4531461, - limb1: 0x2d26e9e1d1c4de8d39771f82, - limb2: 0x264ac2470d45cc29, - limb3: 0x0 - }, - u384 { - limb0: 0x782079845792b2091bea1ae7, - limb1: 0xfb3a401c4a62913507411aa3, - limb2: 0x6515155842e06c1d, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0xfb287b18d7e536c30f121b9e, - limb1: 0x1923389e18f44c306898741d, - limb2: 0x66282866c1bb69e5, - limb3: 0x0 - }, - u384 { - limb0: 0x5b12da817a12cbd9d84528bf, - limb1: 0x5d0157e4d7914cc8264f32b5, - limb2: 0xe61125f178158a6c, - limb3: 0x0 - }, - u384 { - limb0: 0x6acaa26a3936fc2409ae433a, - limb1: 0xbbe7d9a159d1efc6e8b620d6, - limb2: 0xcfdedf920bf12436, - limb3: 0x0 - }, - u384 { - limb0: 0xc98b7d575ac2ed84b62ed1d5, - limb1: 0x55fd933ca7643efeb2e505e6, - limb2: 0x5e6fb69598d554d4, - limb3: 0x0 - }, - u384 { - limb0: 0xbe95a9e0ba1de7ca4b311e56, - limb1: 0x2134a7ab1c69dc76b5a62cfe, - limb2: 0xbd86dfdbcea06a83, - limb3: 0x0 - }, - u384 { - limb0: 0xcc0cf8641b19a365d8d76e03, - limb1: 0x42a34a2cfa50e57f93c2ac80, - limb2: 0x7d0b7a0fa2977730, - limb3: 0x0 - }, - u384 { - limb0: 0x911347a29ae6f6172f6f4845, - limb1: 0x8f467e9f380eddc4dfa593dc, - limb2: 0x66d6b41bc95e0aa7, - limb3: 0x0 - }, - u384 { - limb0: 0xab3970ca1746f7b2ab249211, - limb1: 0x2ca6cf656bec38934bf53f56, - limb2: 0xa46f7d9206e95935, - limb3: 0x0 - }, - u384 { - limb0: 0xf0a1bebe6eb78a9ac0f81405, - limb1: 0x8c1a2bb08413bd046c94bc87, - limb2: 0x221d32c790a0515, - limb3: 0x0 - }, - u384 { - limb0: 0x1730790e04740cba14fd0c76, - limb1: 0x812c772c90e9f30ffd358043, - limb2: 0x4f96c0150a219510, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { - limb0: 0xd59bf072f73e5b060144c83c, - limb1: 0xe883782e84183e725e6bb015, - limb2: 0xd36d75d730d92280, - limb3: 0x0 - }, - u384 { - limb0: 0x57563861417e556d168c23e3, - limb1: 0x150624f89f08b0cb72223888, - limb2: 0xddcee52e2e48c883, - limb3: 0x0 - }, - u384 { - limb0: 0xb12747f04c8d7aa5892e1715, - limb1: 0x35d1fd685294a41477281c8a, - limb2: 0xce86a1cf600b6058, - limb3: 0x0 - }, - u384 { - limb0: 0xce0e9210bd0f473db1d28205, - limb1: 0x5b4c4ac096a299ad2482999a, - limb2: 0x31658e44662e9276, - limb3: 0x0 - }, - u384 { - limb0: 0x344368241c0a6c19b973fbf3, - limb1: 0x8315fc11f2b40c7201e6a87e, - limb2: 0x4b4254095c383e35, - limb3: 0x0 - }, - u384 { - limb0: 0x13d69a29e534c224f69d2070, - limb1: 0x52e33d34a737a00d8e356e36, - limb2: 0xc57e8357fb9ee5a4, - limb3: 0x0 - }, - u384 { - limb0: 0xc9d61734f36d4b06e15af141, - limb1: 0xd1abab72ec532850e847290a, - limb2: 0xdd97618aa7c64606, - limb3: 0x0 - }, - u384 { - limb0: 0x69e01d753234a7330cb6eb2, - limb1: 0xdb6c3a101a80da8fe3ca9aab, - limb2: 0xe33f95f6fb6c8505, - limb3: 0x0 - }, - u384 { - limb0: 0x819376d8f1e82bbc9fe9ff65, - limb1: 0x1d949553437830899d7af36d, - limb2: 0xfd1ee047382910c, - limb3: 0x0 - }, - u384 { - limb0: 0xdfc82a15bd1e690fa0ac571c, - limb1: 0x86c006e5cff53a091abdecd9, - limb2: 0xa7d8e90ad4587652, - limb3: 0x0 - }, - u384 { - limb0: 0x79ca10f6010bea13f4531461, - limb1: 0x2d26e9e1d1c4de8d39771f82, - limb2: 0x264ac2470d45cc29, - limb3: 0x0 - }, - u384 { - limb0: 0x782079845792b2091bea1ae7, - limb1: 0xfb3a401c4a62913507411aa3, - limb2: 0x6515155842e06c1d, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x999b14ce30aebbe429fc0466, - limb1: 0x4ade2d4c86663deefa451362, - limb2: 0x80c7c8603b0bfceb, - limb3: 0x0 - }, - u384 { - limb0: 0xa2b98955d153ec0c8be5df54, - limb1: 0xaa85d110dfeb983978e925e6, - limb2: 0x6d7df230c65e89ed, - limb3: 0x0 - }, - u384 { - limb0: 0x5e505d4d9775b325bb3058e6, - limb1: 0x9a3e56dc8a48402c468e9674, - limb2: 0xabfbfe6fa8e8ef1f, - limb3: 0x0 - }, - u384 { - limb0: 0x29290010a167e2cf3e7a2732, - limb1: 0x8fd277ec692da1cf70182c72, - limb2: 0x7f954ff22108945e, - limb3: 0x0 - }, - u384 { - limb0: 0x6716950d50780be8ca9236c8, - limb1: 0xbf7594ec712684a853ba246, - limb2: 0xa3a69d92021884d8, - limb3: 0x0 - }, - u384 { - limb0: 0x619895c5c6fbb66bc7e809e2, - limb1: 0x91cdb13d861b4fd091666f31, - limb2: 0x9e3d9ce5d79d0e02, - limb3: 0x0 - }, - u384 { - limb0: 0xfdfd429ebdd3c844602d5858, - limb1: 0xff9289443743594812166164, - limb2: 0x132565c4a188895c, - limb3: 0x0 - }, - u384 { - limb0: 0xd6db54f8c6e917767e53b64, - limb1: 0x24174ba48be231d8c3147267, - limb2: 0xfef800fdcad7e736, - limb3: 0x0 - }, - u384 { - limb0: 0x3421ab33b87bd3386bb8c039, limb1: 0x852d4ebf, limb2: 0x0, limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { - limb0: 0xa9fbbcac1b3245f51deeb945, - limb1: 0x6f012d7dec5d0be839546c56, - limb2: 0x467b10e7e59197e0, - limb3: 0x0 - }, - u384 { - limb0: 0x962291bb151bc4523913ed92, - limb1: 0xfa2c7f9ed79cc9466dee213e, - limb2: 0x10cc3b66311cf979, - limb3: 0x0 - }, - u384 { - limb0: 0x76d1ed3b0ed035b6b27a26c5, - limb1: 0xd1459c6493699fc6b51a1fb0, - limb2: 0x5d36f9f53164de7b, - limb3: 0x0 - }, - u384 { - limb0: 0xe7442531758f58778632661e, - limb1: 0x836dd486bd7ba074c07f9538, - limb2: 0xd69ee99e6c0781cf, - limb3: 0x0 - }, - u384 { - limb0: 0xcd3235676500f1faffa084d6, - limb1: 0xf0864af5afb7d4950cac23f0, - limb2: 0xedc152935eb9415f, - limb3: 0x0 - }, - u384 { - limb0: 0x8b270bec1899f33a2616e7f5, - limb1: 0x10879701f898ee5c11a9bd69, - limb2: 0x1c48df2fa862cf73, - limb3: 0x0 - }, - u384 { - limb0: 0x8a120569853f4f9d031f871, - limb1: 0x394d530b71da9227f715cda3, - limb2: 0xda16742545f4286, - limb3: 0x0 - }, - u384 { - limb0: 0x2ded90341892c8cd1fc1096f, - limb1: 0x16f141ebba0563d1aaff4f8b, - limb2: 0x73cf0c5f31d4e077, - limb3: 0x0 - }, - u384 { - limb0: 0x6fed2b46c9d9725f6c7e41d6, - limb1: 0x33ed440b291a9fd83724c5bd, - limb2: 0x9456ab8cc1a61718, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0x4a6a37bbe0175fb3575d0568, - limb1: 0x244096daa79c159abd89935a, - limb2: 0x880722100ac7d32c, - limb3: 0x0 - }, - u384 { - limb0: 0x7e6a2f6e413c155fa78ba463, - limb1: 0xaad5ed249d615906684922cd, - limb2: 0x7f2668edec51e865, - limb3: 0x0 - }, - u384 { - limb0: 0xcec1990ade370c8ba54e0836, - limb1: 0x21d6d1667a7b3e5b3d29ccff, - limb2: 0x8da7d641dbd4ed49, - limb3: 0x0 - }, - u384 { - limb0: 0x53eb0fb187699e6698b0e084, - limb1: 0x201b3bcfe1afeeeea259e9db, - limb2: 0xcc8fa288163e8e1c, - limb3: 0x0 - }, - u384 { - limb0: 0xa9abada8b5d172c679c3caca, - limb1: 0x40d76f32c9f05392b829d166, - limb2: 0x5e69403fed62d5a4, - limb3: 0x0 - }, - u384 { - limb0: 0xd79410a7998292a940603b13, - limb1: 0xbb9a31222d0c6ce2a1eea10d, - limb2: 0xfbbac9ba1ab4e221, - limb3: 0x0 - }, - u384 { - limb0: 0x2fbd6e0e4bac125e7459293d, - limb1: 0xa32cb4c993496ce4e181b857, - limb2: 0x5a972a83a99be294, - limb3: 0x0 - }, - u384 { - limb0: 0x7202af65a27349c2d96ced8c, - limb1: 0xd8171f061563aa4aec6a5c5b, - limb2: 0x36bb25c063fc8122, - limb3: 0x0 - }, - u384 { - limb0: 0xcdabed9c3e23bd49c6103c29, - limb1: 0x4d35cedc57880f403930007c, - limb2: 0xf2833f256a1c5e91, - limb3: 0x0 - }, - u384 { - limb0: 0x98de9d084a0c816d1fae5338, - limb1: 0xc972b89fa907f927d2fa131a, - limb2: 0xc34648d5e60f22e4, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { - limb0: 0xa5e228b4be5fe9b4d18714b4, - limb1: 0x9083e71768b5359914ef65e, - limb2: 0xed5d765746fb2723, - limb3: 0x0 - }, - u384 { - limb0: 0x1af1fc1d93c25e3f8f8b7efe, - limb1: 0xd7377d57e54980ed0182e8b6, - limb2: 0x75959fcb57cad255, - limb3: 0x0 - }, - u384 { - limb0: 0x3fbd7c9d67b17800e1571705, - limb1: 0xb8e746c007e35e6ef3b6ddd3, - limb2: 0x8c80d5b459c21562, - limb3: 0x0 - }, - u384 { - limb0: 0xfcd8c106521db13fc94f9afd, - limb1: 0x701fd2d1abe6f197cd180e4, - limb2: 0x24d3743cd9c6248d, - limb3: 0x0 - }, - u384 { - limb0: 0x3282078ed82262353677a652, - limb1: 0x8dd88c56a5a39959c6a31cd4, - limb2: 0x91157d6dc82dc319, - limb3: 0x0 - }, - u384 { - limb0: 0x44e340afbb05dc4ebd1a8249, - limb1: 0x44fabd725f98244b30be4d93, - limb2: 0x23351442cc188aa1, - limb3: 0x0 - }, - u384 { - limb0: 0x23ac078f9fdb0b4d37903506, - limb1: 0x148b19d6da759f8c821834ae, - limb2: 0x3608bc6ebaa2537b, - limb3: 0x0 - }, - u384 { - limb0: 0xeb126d411046f9adde7d623, - limb1: 0x911f1867c5dd8f50b9a750bf, - limb2: 0x186aa92dbb8b64a1, - limb3: 0x0 - }, - u384 { - limb0: 0x9aa33adb9d8c13da1d8ac413, - limb1: 0x7c04735018534d4593ab2597, - limb2: 0x2aa79008f3ed711c, - limb3: 0x0 - }, - u384 { - limb0: 0x8a120569853f4f9d031f878, - limb1: 0x394d530b71da9227f715cda3, - limb2: 0xda16742545f4286, - limb3: 0x0 - }, - u384 { - limb0: 0x2ded90341892c8cd1fc1096f, - limb1: 0x16f141ebba0563d1aaff4f8b, - limb2: 0x73cf0c5f31d4e077, - limb3: 0x0 - }, - u384 { - limb0: 0x6fed2b46c9d9725f6c7e41d6, - limb1: 0x33ed440b291a9fd83724c5bd, - limb2: 0x9456ab8cc1a61718, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x87c42601da57e77c024198f5, - limb1: 0x96666391563fb8237575ce9f, - limb2: 0x3a0d13ab334e0322, - limb3: 0x0 - }, - u384 { - limb0: 0xd784a91a5e09d24dfc4a247d, - limb1: 0xffffffffffffffff7c074593, - limb2: 0x7fffffffffffffff, - limb3: 0x0 - } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x828b66c2f4abd6b76c4402fb, - limb1: 0xa09e2a2176a0ebb1a8943c2c, - limb2: 0x4ed4d3b44044036c, - limb3: 0x0 - }, - u384 { - limb0: 0x45ce105de5986255cc49f189, - limb1: 0x4faff8f304c65ff6dcc5b274, - limb2: 0x4f877b31719cc1e3, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0x1af6e70efb9fb372f3b1ff25, - limb1: 0x9f1beb6fc683da8f7489b5a1, - limb2: 0xff14045a17b8469a, - limb3: 0x0 - }, - u384 { - limb0: 0xae7840efa60f4527ff3163fb, - limb1: 0xca4d5c9777cf6444c2c0a3c1, - limb2: 0x12cf45ab2344b293, - limb3: 0x0 - }, - u384 { - limb0: 0x2b023846820914e34f8fdb80, - limb1: 0x5147b7aa545a1f7607de33e8, - limb2: 0x2849ac30000429c6, - limb3: 0x0 - } - ] - .span(), - b_den: array![ - u384 { - limb0: 0x91cfcf54b0b2df05f5dc1c7f, - limb1: 0x645326ea3e6671db9c0da537, - limb2: 0x27d1c9edc1dc17f8, - limb3: 0x0 - }, - u384 { - limb0: 0xe8a27291472ab05a9605a261, - limb1: 0x2dcfcea5216c9fc00967e12d, - limb2: 0x2cb45e5a1b494d37, - limb3: 0x0 - }, - u384 { limb0: 0x7, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { - limb0: 0x828b66c2f4abd6b76c4402fb, - limb1: 0xa09e2a2176a0ebb1a8943c2c, - limb2: 0x4ed4d3b44044036c, - limb3: 0x0 - }, - u384 { - limb0: 0x45ce105de5986255cc49f189, - limb1: 0x4faff8f304c65ff6dcc5b274, - limb2: 0x4f877b31719cc1e3, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - }; - let derive_point_from_x_hint = DerivePointFromXHint { - y_last_attempt: u384 { - limb0: 0xabed33669606ce828f10d56b, - limb1: 0x27c1ade62e7fce2cd83f4623, - limb2: 0x1c725a86d9c025d3, - limb3: 0x0 - }, - g_rhs_sqrt: array![ - u384 { - limb0: 0x778e2c101d7d92a37c8f461b, - limb1: 0xef3d089a5d0ab7f2c3d531b8, - limb2: 0x349926a5b5f5ab1c, - limb3: 0x0 - } - ] - .span(), - }; - let points = array![ - G1Point { - x: u384 { - limb0: 0x393dead57bc85a6e9bb44a70, - limb1: 0x64d4b065b3ede27cf9fb9e5c, - limb2: 0xda670c8c69a8ce0a, - limb3: 0x0 - }, - y: u384 { - limb0: 0x789872895ad7121175bd78f8, - limb1: 0xc0deb0b56fb251e8fb5d0a8d, - limb2: 0x3f10d670dc3297c2, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0xfdfdc509f368ba4395773d3a, - limb1: 0x8de2b60b577a13d0f83b578e, - limb2: 0xc2dd970269530ba2, - limb3: 0x0 - }, - y: u384 { - limb0: 0x589fa250d638e35400c12ddf, - limb1: 0xb3aac19fcb5095808402aa7f, - limb2: 0xed6de6590d0195d1, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x2965eeb3ec1fe786a6abe874, - limb1: 0x33e2545f82bb6add02788b8e, - limb2: 0xf586bc0db335d7b8, - limb3: 0x0 - }, - y: u384 { - limb0: 0x155b35991489db2fdf4de620, - limb1: 0xf24ce461346a182d67eeccf0, - limb2: 0xb4122bb4b37cc7d5, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x12815740835b12f70b96c66f, - limb1: 0xbfa76a8b80aec9f2e31c40cc, - limb2: 0xcd8a26d17d33c7c1, - limb3: 0x0 - }, - y: u384 { - limb0: 0x9a8f496f09402b8fd6beb89b, - limb1: 0x28e48918dad2123d7f202bef, - limb2: 0xcdd11b6ffb3f8614, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0xb5076be8537cff2a42c6db68, - limb1: 0x1066d40cbd01a3752e4e069c, - limb2: 0x123ec2fd302cb0f9, - limb3: 0x0 - }, - y: u384 { - limb0: 0xc85f5e5efdf415f8081bf53f, - limb1: 0xadc5010e9d9ac6c64000d33d, - limb2: 0xf81314011d8852e4, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0xd5915098d3d2001310b0b935, - limb1: 0x88bb4507ebf1be82cfba2397, - limb2: 0x8a463f1c00ce885f, - limb3: 0x0 - }, - y: u384 { - limb0: 0x414858f8a83f9d4498890137, - limb1: 0xa09c4658c47ace74c42cdb60, - limb2: 0x8aaf300ff3ab7d98, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x1772eb803ddc8a82e23b1c05, - limb1: 0xc26baeb89b03fd69eb64b337, - limb2: 0x4ea7131b2d873a45, - limb3: 0x0 - }, - y: u384 { - limb0: 0xc9d16330db15efd90235eed9, - limb1: 0x1b586ef360673d36baa16189, - limb2: 0xee652d2b848ad111, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x68f9e7942638253f3b596f1f, - limb1: 0xb37e6153d9accd97a344f384, - limb2: 0xda48eae9ff614551, - limb3: 0x0 - }, - y: u384 { - limb0: 0xc58be8ed857035b34f51c620, - limb1: 0x3b14ed53116cb7c1db000006, - limb2: 0x7dfa292fe99b77dd, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0xf7f7bd2513c1b31de932bbd2, - limb1: 0x627e2fa74b7ac891f7d555c7, - limb2: 0x7f8a094f818e7192, - limb3: 0x0 - }, - y: u384 { - limb0: 0x9b47b9326b668e62071faf18, - limb1: 0xe21058cb6937afa89be6931a, - limb2: 0x21a4bfb4cce2ac8c, - limb3: 0x0 - } - }, - G1Point { - x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - }, - ] - .span(); - let scalars = array![ - u256 { low: 0x0, high: 0x0 }, - u256 { - low: 0xb5d32b1666194cb1d71037d1b83e90ec, high: 0xa0116be5ab0c1681c8f8e3d0d3290a4c - }, - u256 { - low: 0xd3fbf47a7e5b1e7f9ca5499d004ae545, high: 0xbaf3897a3e70f16a55485822de1b372a - }, - u256 { - low: 0x101fbcccded733e8b421eaeb534097ca, high: 0x38c1962e9148624feac1c14f30e9c5cc - }, - u256 { - low: 0x247a8333f7b0b7d2cda8056c3d15eef7, high: 0x1759edc372ae22448b0163c1cd9d2b7d - }, - u256 { - low: 0xe005b86051ef1922fe43c49e149818d1, high: 0x7d41e602eece328bff7b118e820865d6 - }, - u256 { - low: 0x4a84eb038d1fd9b74d2b9deb1beb3711, high: 0x552f233a8c25166a1ff39849b4e1357d - }, - u256 { - low: 0x3405095c8a5006c1ec188efbd080e66e, high: 0x8c1745a79a6a5f92cca74147f6be1f72 - }, - u256 { - low: 0x1775336d71eacd0549a3e80e966e1277, high: 0x5129fb7c6288e1a5cc45782198a6416d - }, - u256 { - low: 0x2f1205544a5308cc3dfabc08935ddd72, high: 0x870e15c2fcd81b5d24bace4307bf326 - }, - ] - .span(); - - let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 2 - ); - assert!( - res == G1Point { - x: u384 { - limb0: 0x2950159ef4b04fdc0dc934a9, - limb1: 0x9e463011388a15f56d6f38f4, - limb2: 0xef8d0de25e526f1c, - limb3: 0x0 - }, - y: u384 { - limb0: 0x93ff053c58374ab5fd2530ab, - limb1: 0xb09af339bdbe0090a3d72802, - limb2: 0xd7d9e3078702fe93, - limb3: 0x0 - } - } - ); - } - - - #[test] - fn test_msm_SECP256K1_11P() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - ] - .span(), - array![ - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - ] - .span(), - array![ - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - ] - .span(), - array![ - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - ] - .span(), - array![ - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - ] - .span(), - array![ - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - ] - .span(), - array![ - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - ] - .span() - ), - ] - .span() - ); - let msm_hint = MSMHint { - Q_low: G1Point { - x: u384 { - limb0: 0x74408414d91a69f35f61bc6b, - limb1: 0xb4948f35f0aba81a568e7a8b, - limb2: 0x9d9c716f70218bbc, - limb3: 0x0 - }, - y: u384 { - limb0: 0x18f14196f216ed9367a2698a, - limb1: 0xe422cce7320bc65f4959ae9f, - limb2: 0xc1e171c2a4df7f1e, - limb3: 0x0 - } - }, - Q_high: G1Point { - x: u384 { - limb0: 0x7028fdc386b9c76dc3c4a0c8, - limb1: 0x63bfc9828a51db91045c2a84, - limb2: 0x52713bd3cf273e01, - limb3: 0x0 - }, - y: u384 { - limb0: 0x573f68d756aa76e18879cd7f, - limb1: 0xdc646d36c276f220bd9bf719, - limb2: 0xe7ffb91a35ad131c, - limb3: 0x0 - } - }, - Q_high_shifted: G1Point { - x: u384 { - limb0: 0x346aac78eda91ff42e459dd4, - limb1: 0x1f7e2485a95b04359515aa5a, - limb2: 0x720a7b0cb20237a7, - limb3: 0x0 - }, - y: u384 { - limb0: 0x9f608d816585bb091fe579d, - limb1: 0x295f0370475510aaad79a2f, - limb2: 0x10674a790fac2d80, - limb3: 0x0 - } - }, - SumDlogDivLow: FunctionFelt { - a_num: array![ - u384 { - limb0: 0xfdfb75c4734f31b619a0c5f1, - limb1: 0xba74d0c06d0d4c1fd796ad28, - limb2: 0x23257541df1f5735, - limb3: 0x0 - }, - u384 { - limb0: 0xab26a6424ed832cffc142a96, - limb1: 0x8dbae9fdc5012e2f8a0fb112, - limb2: 0xbe97e3454d290f7a, - limb3: 0x0 - }, - u384 { - limb0: 0xe8cf17b6604360f32ab77237, - limb1: 0x941ba36adedd795eea2f88ec, - limb2: 0x46b13df3b3543320, - limb3: 0x0 - }, - u384 { - limb0: 0x74d04220af4a111f98c4a80d, - limb1: 0x7f964393edb14213ddad6c4, - limb2: 0xb4a442caba3be3b7, - limb3: 0x0 - }, - u384 { - limb0: 0xa7c4f15e3544b7b726fe2d89, - limb1: 0x91f9773f24630d275b1757a4, - limb2: 0x43a3f67bb72a70cd, - limb3: 0x0 - }, - u384 { - limb0: 0x647dfdd082ca5764d2aea380, - limb1: 0x648aef3906a78e71ce84fbf1, - limb2: 0x572879220c9de7e8, - limb3: 0x0 - }, - u384 { - limb0: 0x47c7c88d2240e57c0d5226d4, - limb1: 0xeace595f6900b9f47c2e43ad, - limb2: 0x4ebcb1883d0f149a, - limb3: 0x0 - }, - u384 { - limb0: 0xc4aa3aea8aebeb279c7512e5, - limb1: 0x29aff1d64f7597b4437bcea2, - limb2: 0xf2c22a667568d0c5, - limb3: 0x0 - }, - u384 { - limb0: 0x1e1b388b804a12111c5d4e00, - limb1: 0x21f2f24208b8d6ec36743cf8, - limb2: 0x37c77a7c5181011a, - limb3: 0x0 - }, - u384 { - limb0: 0xb567e88c38eb2c5171b19f13, - limb1: 0xffffffffffffffff40a797b8, - limb2: 0xffffffffffffffff, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x20a0466ffab73a0eb787d833, - limb1: 0x42d7831ab2e5f55370e8f913, - limb2: 0x7bede22b852750c, - limb3: 0x0 - }, - u384 { - limb0: 0x8f9e2ea621ceaaa06e7ae3d7, - limb1: 0x2c82bb6d252b317710cd25aa, - limb2: 0x3a0ec8762e957e25, - limb3: 0x0 - }, - u384 { - limb0: 0x8429dbd2cd9933b80cdf60d7, - limb1: 0x119fc81f25bf55d752f56904, - limb2: 0xbf710bea13ba5e43, - limb3: 0x0 - }, - u384 { - limb0: 0x5b2939e6e583a9e35c41b8c0, - limb1: 0xe32df116e437500f4a272fca, - limb2: 0x36a4758f118c150d, - limb3: 0x0 - }, - u384 { - limb0: 0x221c90301678dbd8a80531ef, - limb1: 0x79d682d8f3763cf37e6c16dd, - limb2: 0xff08e9b2c27aaa53, - limb3: 0x0 - }, - u384 { - limb0: 0xa30c3110ad1b7bef6d2dce9, - limb1: 0x2fa5e726dac79ef7de2d2207, - limb2: 0x6d8af0aab229a2ac, - limb3: 0x0 - }, - u384 { - limb0: 0x567c843c0dd1cfa906dbdbb4, - limb1: 0x44a42a44f9cebda5fbafcd90, - limb2: 0xa044adb80835fa18, - limb3: 0x0 - }, - u384 { - limb0: 0x1898d9e537bac00bfd355345, - limb1: 0x7c8ae56a259845dbe703255c, - limb2: 0x28fae5e9832d3d71, - limb3: 0x0 - }, - u384 { - limb0: 0x669598d21c086d7992a32b4d, - limb1: 0x92660a932cb3d42beb15da0b, - limb2: 0x8a922205e339b7bc, - limb3: 0x0 - }, - u384 { - limb0: 0x9f924f5a4f59ce1ce9dbe693, - limb1: 0xaa7c9a42ecdaab1fc8d32b02, - limb2: 0x7061b422be32ba36, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0x237c10e8ab5064dd98b84aa4, - limb1: 0xbe451a2a23b9db328e180930, - limb2: 0xd1381c477cd4ef1f, - limb3: 0x0 - }, - u384 { - limb0: 0x46ea59ede242805df8760573, - limb1: 0x653a34f58f01de993daa011b, - limb2: 0xc605b6e53e68c708, - limb3: 0x0 - }, - u384 { - limb0: 0x14285649e8290fca9ab7bfd6, - limb1: 0x34dbb68e379cc6e5d799893a, - limb2: 0xb854ba5ced2e101e, - limb3: 0x0 - }, - u384 { - limb0: 0x908f961f7f9ab396ac48f2d1, - limb1: 0xdf3021d64d43e953cb95ea08, - limb2: 0x8d967db0c1e9cd39, - limb3: 0x0 - }, - u384 { - limb0: 0xc7199a9cc15053d9098cf9fd, - limb1: 0x9fbdbd771e8ebbdc51d4ab2e, - limb2: 0xe8ed9adbed4c2fdd, - limb3: 0x0 - }, - u384 { - limb0: 0xacfad2735fb1db3fa77bde44, - limb1: 0x423e10dde34d94b78323c790, - limb2: 0xa308b261589b9ea, - limb3: 0x0 - }, - u384 { - limb0: 0x4a7fd079590cf1919d9f7016, - limb1: 0xcf7c2f0d7b4e47251e882e83, - limb2: 0x6f08df67ae898367, - limb3: 0x0 - }, - u384 { - limb0: 0x3ee3a2369b9847cd71df2ec0, - limb1: 0x89af83db77d2eb6fd9c510dc, - limb2: 0xc7f5708762cc1a5c, - limb3: 0x0 - }, - u384 { - limb0: 0xf0c1c1af9131633a6ab06d41, - limb1: 0xed522093d95eb507abe47539, - limb2: 0x12d674c1d5212ba7, - limb3: 0x0 - }, - u384 { - limb0: 0xb4d6ee4b0525f214dc789ac2, - limb1: 0x8850d79d90d5b8e0016d8ff9, - limb2: 0x25052f699e7b0be4, - limb3: 0x0 - }, - u384 { - limb0: 0x316411eac4a87cd6b601da54, - limb1: 0xbf2d10855f07258661a78c97, - limb2: 0xbae70a235b5a0c18, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { - limb0: 0xe461ed0fdb02966704b6e965, - limb1: 0xd3e495bae449b548165ecf85, - limb2: 0x363812f30a413355, - limb3: 0x0 - }, - u384 { - limb0: 0xed53468aeca6aa64055c3eb2, - limb1: 0x37931ffc042e5a41759c07a9, - limb2: 0x96677b3b46167304, - limb3: 0x0 - }, - u384 { - limb0: 0x9d2502c39f306a0d5a1bb8f6, - limb1: 0x7b5e78da083b58e344b5df1f, - limb2: 0x3c1753668a1893d5, - limb3: 0x0 - }, - u384 { - limb0: 0x9ec0dbc04150df473d53e944, - limb1: 0x79191abaf06925be77fb479b, - limb2: 0x863e150c3327086d, - limb3: 0x0 - }, - u384 { - limb0: 0x7e661ff6bf1cad94069f5c17, - limb1: 0x81604f5bcd66dc1f85c1c5b6, - limb2: 0x334d2c597ff0266d, - limb3: 0x0 - }, - u384 { - limb0: 0xcb7f314a195539f3cca376a9, - limb1: 0x5f291a2f2134ae9e66315735, - limb2: 0xbe3da094f2ddd0f8, - limb3: 0x0 - }, - u384 { - limb0: 0xb890d78b464057868c44c9f0, - limb1: 0xc3ab18f9b8de7f992bf5cebc, - limb2: 0x988535974b05ebb7, - limb3: 0x0 - }, - u384 { - limb0: 0xce4a85749c941c2e947a8074, - limb1: 0xe1a2c8bffaa025f6cf821c61, - limb2: 0x1de5331558b7586d, - limb3: 0x0 - }, - u384 { - limb0: 0xd847f0cfcf0cb615f9491b48, - limb1: 0x3070312d13b26c2b4bc61856, - limb2: 0x3789ded3e8bda8d4, - limb3: 0x0 - }, - u384 { - limb0: 0xb37cafb4394672766bdf352c, - limb1: 0xee0c621973c96b847975faa2, - limb2: 0xb2f09aab3b991196, - limb3: 0x0 - }, - u384 { - limb0: 0x1898d9e537bac00bfd35534c, - limb1: 0x7c8ae56a259845dbe703255c, - limb2: 0x28fae5e9832d3d71, - limb3: 0x0 - }, - u384 { - limb0: 0x669598d21c086d7992a32b4d, - limb1: 0x92660a932cb3d42beb15da0b, - limb2: 0x8a922205e339b7bc, - limb3: 0x0 - }, - u384 { - limb0: 0x9f924f5a4f59ce1ce9dbe693, - limb1: 0xaa7c9a42ecdaab1fc8d32b02, - limb2: 0x7061b422be32ba36, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x5ed63d0a2ea76da21b86d138, - limb1: 0x8967dbdd92956e220fe5526a, - limb2: 0x26cd889c35d0d6c3, - limb3: 0x0 - }, - u384 { - limb0: 0xbef7628597eaa5340695c1d4, - limb1: 0xe5dd098ddbacb41b36864fb7, - limb2: 0x6ca70886fa955f53, - limb3: 0x0 - }, - u384 { - limb0: 0x4e8a0415336aaf5cdd1eddb1, - limb1: 0x37270568016acf83220d3acd, - limb2: 0x7b057cadff61316a, - limb3: 0x0 - }, - u384 { - limb0: 0x75a9fece90ba04ba55d4430a, - limb1: 0x8fbda1c256abfdc48c5ea557, - limb2: 0x5abcb0f47b7ec63b, - limb3: 0x0 - }, - u384 { - limb0: 0x82010793be208dfdd8153cd8, - limb1: 0xa754e20483b4f79e76424a00, - limb2: 0x5917652a57c31631, - limb3: 0x0 - }, - u384 { - limb0: 0x9586989c5953380d7c1cd07c, - limb1: 0x8537e433bc5009f68c7d04be, - limb2: 0xcb4dc33c612e04, - limb3: 0x0 - }, - u384 { - limb0: 0xfabfadf9d7f4ab24d4a6021c, - limb1: 0xf7551666d9be5144c59694ec, - limb2: 0x88ab69057cbd6bef, - limb3: 0x0 - }, - u384 { - limb0: 0xf24714a66018da9a7c19582e, - limb1: 0x7e22c6b5c3f38b199a7b5af5, - limb2: 0x49848ad86d3bbe27, - limb3: 0x0 - }, - u384 { - limb0: 0x67742565349b4e00666d4748, - limb1: 0xe9d9e9f5789eb3c30857f230, - limb2: 0xe6d73482ba72f07b, - limb3: 0x0 - }, - u384 { - limb0: 0x19df3f5ba6361a3886a8e5fe, - limb1: 0xffffffffffffffffe3458149, - limb2: 0xffffffffffffffff, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { - limb0: 0xa6d8d52d74a2289f96c7d896, - limb1: 0xc4aa878dd93dc122980d7454, - limb2: 0xbb4af90c6b681fcb, - limb3: 0x0 - }, - u384 { - limb0: 0x577a16e7691b713e1258bbeb, - limb1: 0x28ac69fa35b413f6ba877a34, - limb2: 0x4d4603503763155f, - limb3: 0x0 - }, - u384 { - limb0: 0x42231410b72a2c58a26f34a9, - limb1: 0x54e0a522ea109a7d8e8f0037, - limb2: 0xae3dd06a862293f3, - limb3: 0x0 - }, - u384 { - limb0: 0xfe03dd8d8826bca266b6af61, - limb1: 0xa031390fdcb3768057ec564e, - limb2: 0xae943c99c61d61ed, - limb3: 0x0 - }, - u384 { - limb0: 0x802cddce9506028bb1c98417, - limb1: 0x18604cdfcb4c41188adab06b, - limb2: 0xb0fcbef1a3e1d3df, - limb3: 0x0 - }, - u384 { - limb0: 0x97f313fb1ac14bdc3697ebdb, - limb1: 0x10ec2511ea08a6776d8feffa, - limb2: 0x26d1c6f16fe9b081, - limb3: 0x0 - }, - u384 { - limb0: 0x9b9dec7660945356ab3266d7, - limb1: 0xa8147712681c8dd7a405d88, - limb2: 0xb50e55d227d3e6b3, - limb3: 0x0 - }, - u384 { - limb0: 0x889f83f45dc41afaada3e26, - limb1: 0xd2d3fa92e65556fe5b1e0dd9, - limb2: 0x4c376c87416facf5, - limb3: 0x0 - }, - u384 { - limb0: 0x431877aa55bc77b663ccb06b, - limb1: 0x46b1cf702c351d9ac27afe9a, - limb2: 0x7372a320b6d34b53, - limb3: 0x0 - }, - u384 { - limb0: 0xa3a9d5aba1ba70a285790236, - limb1: 0xfb515ff6533477a91b057b09, - limb2: 0xbb8ce9be5f2d07f1, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0x884db83a512445a34c6b47f2, - limb1: 0xda56d891790108942d034a90, - limb2: 0xf39e0a231ba6e81a, - limb3: 0x0 - }, - u384 { - limb0: 0xd5b7a0ffec3e77d1cf4c6268, - limb1: 0x47404f4f32de7c2e0789e1c0, - limb2: 0xa6d72beea9078874, - limb3: 0x0 - }, - u384 { - limb0: 0x97203299040a16726929ea9e, - limb1: 0xfe3a07dccaa35a145f9e7c71, - limb2: 0x3dc2be099194f53a, - limb3: 0x0 - }, - u384 { - limb0: 0xcd1a933497bd9d1c750641f7, - limb1: 0x89a0b6554a1ca16f32eccd2d, - limb2: 0x9239c613d6a9f41b, - limb3: 0x0 - }, - u384 { - limb0: 0xa44c6fd38383a95cb246fa22, - limb1: 0x57986671d5a39a885406dfee, - limb2: 0xe001b2216adca08f, - limb3: 0x0 - }, - u384 { - limb0: 0xda1c02e3bf14435448975d06, - limb1: 0x607872eacf3eb3f99d3add65, - limb2: 0xa1046d057e7d5974, - limb3: 0x0 - }, - u384 { - limb0: 0x6845e5039a8edae3086adb93, - limb1: 0x83ac9c583c5cdaeef28e9150, - limb2: 0x972facc557a41444, - limb3: 0x0 - }, - u384 { - limb0: 0xee2153c6047657b397883343, - limb1: 0xc2802798c023dfacec9cedbe, - limb2: 0x6ba53ac83d75bdd9, - limb3: 0x0 - }, - u384 { - limb0: 0xdf0ccf0e212ce552d788784, - limb1: 0x46e51deddaa6417ee8e43969, - limb2: 0x6e271cfa65c80158, - limb3: 0x0 - }, - u384 { - limb0: 0x926cb4be424a8daab5179cfa, - limb1: 0xc6b701fb9871f28a2e7ed9d9, - limb2: 0x246e248f36a42676, - limb3: 0x0 - }, - u384 { - limb0: 0x21a1fc73eb9884bbef3634b5, - limb1: 0x76e01c4d860872acc90f4c5e, - limb2: 0x8608fee2bf5ad6b2, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { - limb0: 0x8fedd43e306f1c621f76ff2f, - limb1: 0x60a9b4e0f0b047f2285e2e50, - limb2: 0x1f0ccf56efd8de92, - limb3: 0x0 - }, - u384 { - limb0: 0x6456a053dfc018b4806d2b0f, - limb1: 0x1cb6e5d777ec8bbf19b4576e, - limb2: 0x1cea173183b5959a, - limb3: 0x0 - }, - u384 { - limb0: 0xcef58c7502273670710a7fe3, - limb1: 0x522483f46674396ee5e90182, - limb2: 0xc3b0b2e9aaf20ba7, - limb3: 0x0 - }, - u384 { - limb0: 0x98f3e40c2db1511565c6b752, - limb1: 0x260316fce225fea4ff83d07d, - limb2: 0x8158a140d635cd4b, - limb3: 0x0 - }, - u384 { - limb0: 0xd8b4278d7c458314eedb6ba1, - limb1: 0xd34e8418c4c9dba286824d24, - limb2: 0x242f3bebb28fe078, - limb3: 0x0 - }, - u384 { - limb0: 0x69c89fee72733f5f2096ab77, - limb1: 0xcb55a8a0504d27c18d7e9011, - limb2: 0xbdfa41049586677a, - limb3: 0x0 - }, - u384 { - limb0: 0x3f5554ca2c35040615179257, - limb1: 0xe9ba2d27ea3ff48eafaee50b, - limb2: 0xa1f89558dce8b0d2, - limb3: 0x0 - }, - u384 { - limb0: 0xbbf2a7897e0bce5b5dc13ec3, - limb1: 0xdc2c26e417a1a20d08ad115a, - limb2: 0xc680b6a46def8e97, - limb3: 0x0 - }, - u384 { - limb0: 0x6d9e59a372e891dbf130ca3b, - limb1: 0xffc8d1231f7c75b2beece632, - limb2: 0x4ef43cd66fb0bfc7, - limb3: 0x0 - }, - u384 { - limb0: 0x1542c427ccad67cd51818966, - limb1: 0xe9bae72d6cf10e7d3766bacc, - limb2: 0xd5e8ba06c20f1e50, - limb3: 0x0 - }, - u384 { - limb0: 0x889f83f45dc41afaada3e2d, - limb1: 0xd2d3fa92e65556fe5b1e0dd9, - limb2: 0x4c376c87416facf5, - limb3: 0x0 - }, - u384 { - limb0: 0x431877aa55bc77b663ccb06b, - limb1: 0x46b1cf702c351d9ac27afe9a, - limb2: 0x7372a320b6d34b53, - limb3: 0x0 - }, - u384 { - limb0: 0xa3a9d5aba1ba70a285790236, - limb1: 0xfb515ff6533477a91b057b09, - limb2: 0xbb8ce9be5f2d07f1, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x83004223a1a60e0a9dd7e9c2, - limb1: 0x84c2fdd3e571a939c475f976, - limb2: 0x5ea778e903cad5d3, - limb3: 0x0 - }, - u384 { - limb0: 0xd784a91a5e09d24dfc4a247d, - limb1: 0xffffffffffffffff7c074593, - limb2: 0x7fffffffffffffff, - limb3: 0x0 - } - ] - .span(), - a_den: array![ - u384 { - limb0: 0xca4b2ce00141fcc507e15ad1, - limb1: 0xd62b34453cef4793395e4145, - limb2: 0xc515d4613516afa3, - limb3: 0x0 - }, - u384 { - limb0: 0x5b6c55c38b9d189d0df5bd93, - limb1: 0x7cc211f7cc532039668e2b21, - limb2: 0x3b84491f7ed68a57, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0x9facade4bfa83d19a7ba259b, - limb1: 0x8279d4b95d7b22124c2444c1, - limb2: 0x98fa4a916d5186e2, - limb3: 0x0 - }, - u384 { - limb0: 0xc6f6c09255fae4a212c9c057, - limb1: 0x57f1fc192b142f3492cf79a1, - limb2: 0x1f7f3b7d1c9d1234, - limb3: 0x0 - }, - u384 { - limb0: 0x17493d6af010058c645a957a, - limb1: 0x640b56438d91635daf336056, - limb2: 0xbce1121da696801, - limb3: 0x0 - } - ] - .span(), - b_den: array![ - u384 { - limb0: 0x880e3a2008cde96837298ecc, - limb1: 0xdb2e6de4aa8af5069193c8e8, - limb2: 0x6398cea8739ecd7a, - limb3: 0x0 - }, - u384 { - limb0: 0x7ff65858d14bac4c61b832d6, - limb1: 0x694e7dc69645e191cde32de9, - limb2: 0xa09dffdc77ddc864, - limb3: 0x0 - }, - u384 { limb0: 0x7, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { - limb0: 0xca4b2ce00141fcc507e15ad1, - limb1: 0xd62b34453cef4793395e4145, - limb2: 0xc515d4613516afa3, - limb3: 0x0 - }, - u384 { - limb0: 0x5b6c55c38b9d189d0df5bd93, - limb1: 0x7cc211f7cc532039668e2b21, - limb2: 0x3b84491f7ed68a57, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - }; - let derive_point_from_x_hint = DerivePointFromXHint { - y_last_attempt: u384 { - limb0: 0x5fae94d6396b7f4ba6ca2d57, - limb1: 0x1b9c61bd0be7850f8cc95a73, - limb2: 0x64f63be6657f5511, - limb3: 0x0 - }, - g_rhs_sqrt: array![ - u384 { - limb0: 0x5cb2ac8ea4f91cca894e1c35, - limb1: 0xa32d4b8d9ba11248efec9421, - limb2: 0x6b648328937edbca, - limb3: 0x0 - }, - u384 { - limb0: 0x36057cfecc2706ea71bc329, - limb1: 0x1bcda3874a72b90b02d66655, - limb2: 0x5e01c092fff58fe8, - limb3: 0x0 - }, - u384 { - limb0: 0x2ec4251b19cfbd86ebb38e04, - limb1: 0x1b4d9ab7659a4e038c21d34f, - limb2: 0x6537d443422750ce, - limb3: 0x0 - }, - u384 { - limb0: 0x3e5a6dc7441fbac7d503b2fb, - limb1: 0x809f61ea98846e73cb29caf6, - limb2: 0x3bdf1cd7526e4ad6, - limb3: 0x0 - } - ] - .span(), - }; - let points = array![ - G1Point { - x: u384 { - limb0: 0x393dead57bc85a6e9bb44a70, - limb1: 0x64d4b065b3ede27cf9fb9e5c, - limb2: 0xda670c8c69a8ce0a, - limb3: 0x0 - }, - y: u384 { - limb0: 0x789872895ad7121175bd78f8, - limb1: 0xc0deb0b56fb251e8fb5d0a8d, - limb2: 0x3f10d670dc3297c2, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0xfdfdc509f368ba4395773d3a, - limb1: 0x8de2b60b577a13d0f83b578e, - limb2: 0xc2dd970269530ba2, - limb3: 0x0 - }, - y: u384 { - limb0: 0x589fa250d638e35400c12ddf, - limb1: 0xb3aac19fcb5095808402aa7f, - limb2: 0xed6de6590d0195d1, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x2965eeb3ec1fe786a6abe874, - limb1: 0x33e2545f82bb6add02788b8e, - limb2: 0xf586bc0db335d7b8, - limb3: 0x0 - }, - y: u384 { - limb0: 0x155b35991489db2fdf4de620, - limb1: 0xf24ce461346a182d67eeccf0, - limb2: 0xb4122bb4b37cc7d5, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x12815740835b12f70b96c66f, - limb1: 0xbfa76a8b80aec9f2e31c40cc, - limb2: 0xcd8a26d17d33c7c1, - limb3: 0x0 - }, - y: u384 { - limb0: 0x9a8f496f09402b8fd6beb89b, - limb1: 0x28e48918dad2123d7f202bef, - limb2: 0xcdd11b6ffb3f8614, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0xb5076be8537cff2a42c6db68, - limb1: 0x1066d40cbd01a3752e4e069c, - limb2: 0x123ec2fd302cb0f9, - limb3: 0x0 - }, - y: u384 { - limb0: 0xc85f5e5efdf415f8081bf53f, - limb1: 0xadc5010e9d9ac6c64000d33d, - limb2: 0xf81314011d8852e4, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0xd5915098d3d2001310b0b935, - limb1: 0x88bb4507ebf1be82cfba2397, - limb2: 0x8a463f1c00ce885f, - limb3: 0x0 - }, - y: u384 { - limb0: 0x414858f8a83f9d4498890137, - limb1: 0xa09c4658c47ace74c42cdb60, - limb2: 0x8aaf300ff3ab7d98, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x1772eb803ddc8a82e23b1c05, - limb1: 0xc26baeb89b03fd69eb64b337, - limb2: 0x4ea7131b2d873a45, - limb3: 0x0 - }, - y: u384 { - limb0: 0xc9d16330db15efd90235eed9, - limb1: 0x1b586ef360673d36baa16189, - limb2: 0xee652d2b848ad111, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x68f9e7942638253f3b596f1f, - limb1: 0xb37e6153d9accd97a344f384, - limb2: 0xda48eae9ff614551, - limb3: 0x0 - }, - y: u384 { - limb0: 0xc58be8ed857035b34f51c620, - limb1: 0x3b14ed53116cb7c1db000006, - limb2: 0x7dfa292fe99b77dd, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0xf7f7bd2513c1b31de932bbd2, - limb1: 0x627e2fa74b7ac891f7d555c7, - limb2: 0x7f8a094f818e7192, - limb3: 0x0 - }, - y: u384 { - limb0: 0x9b47b9326b668e62071faf18, - limb1: 0xe21058cb6937afa89be6931a, - limb2: 0x21a4bfb4cce2ac8c, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0xaf4ad4d7d582b10b14c97e6c, - limb1: 0xadf808c85e766e997e470fd0, - limb2: 0x2714571e587ce46d, - limb3: 0x0 - }, - y: u384 { - limb0: 0x86a7815dad7e8a53b19fee2, - limb1: 0x1922fc1efcc51e68146ffa1b, - limb2: 0x9e19b7c1f886488e, - limb3: 0x0 - } - }, - G1Point { - x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - }, - ] - .span(); - let scalars = array![ - u256 { low: 0x0, high: 0x0 }, - u256 { - low: 0xd3fbf47a7e5b1e7f9ca5499d004ae545, high: 0xbaf3897a3e70f16a55485822de1b372a - }, - u256 { - low: 0x101fbcccded733e8b421eaeb534097ca, high: 0x38c1962e9148624feac1c14f30e9c5cc - }, - u256 { - low: 0x247a8333f7b0b7d2cda8056c3d15eef7, high: 0x1759edc372ae22448b0163c1cd9d2b7d - }, - u256 { - low: 0xe005b86051ef1922fe43c49e149818d1, high: 0x7d41e602eece328bff7b118e820865d6 - }, - u256 { - low: 0x4a84eb038d1fd9b74d2b9deb1beb3711, high: 0x552f233a8c25166a1ff39849b4e1357d - }, - u256 { - low: 0x3405095c8a5006c1ec188efbd080e66e, high: 0x8c1745a79a6a5f92cca74147f6be1f72 - }, - u256 { - low: 0x1775336d71eacd0549a3e80e966e1277, high: 0x5129fb7c6288e1a5cc45782198a6416d - }, - u256 { - low: 0x2f1205544a5308cc3dfabc08935ddd72, high: 0x870e15c2fcd81b5d24bace4307bf326 - }, - u256 { - low: 0x42930b33a81ad477fb3675b89cdeb3e6, high: 0xadc0da7a16febaa011af923d79fdef7c - }, - u256 { - low: 0x2648ee38e07405eb215663abc1f254b8, high: 0x148b2758d7ab792809e469e6ec62b2c8 - }, - ] - .span(); - - let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 2 - ); - assert!( - res == G1Point { - x: u384 { - limb0: 0xfd3ebb89d10fe461e552fc52, - limb1: 0xec1cd433c40d59e89a0a67c6, - limb2: 0x718e281769552f5, - limb3: 0x0 - }, - y: u384 { - limb0: 0x5765daf8dcb6b393eba165cd, - limb1: 0x106a5fd0eb158dcde70d802e, - limb2: 0xe30701a5d0fa2198, - limb3: 0x0 - } - } - ); - } - - - #[test] - fn test_msm_SECP256K1_12P() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - ] - .span(), - array![ - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - ] - .span(), - array![ - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - ] - .span(), - array![ - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - ] - .span(), - array![ - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - ] - .span(), - array![ - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - ] - .span(), - array![ - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - ] - .span(), - array![ - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - ] - .span() - ), - ] - .span() - ); - let msm_hint = MSMHint { - Q_low: G1Point { - x: u384 { - limb0: 0x1d36d633760b3c55c81a8d8c, - limb1: 0xd079c33f8b0673c89e3a9bd0, - limb2: 0x70ff81f33501ba92, - limb3: 0x0 - }, - y: u384 { - limb0: 0xcff3e05d854ed659f6cd040c, - limb1: 0x33f2728d006bc9e70866e303, - limb2: 0x2f4943938395998b, - limb3: 0x0 - } - }, - Q_high: G1Point { - x: u384 { - limb0: 0x1db4213156986f28879aba6b, - limb1: 0x5a33215ee31af0cdd996b80a, - limb2: 0x62cfcf2de05e2009, - limb3: 0x0 - }, - y: u384 { - limb0: 0xa9552c8f1c96a1c163a43cae, - limb1: 0x6230406918f0da360db56e32, - limb2: 0x35ace69b06cd8541, - limb3: 0x0 - } - }, - Q_high_shifted: G1Point { - x: u384 { - limb0: 0x5942b3e3f39ff916f02cf401, - limb1: 0xa8740c9f663c8f149c7f7be4, - limb2: 0x6f066ce3dd1f0f5, - limb3: 0x0 - }, - y: u384 { - limb0: 0x4aa3daffc076e92ff6b946d1, - limb1: 0x3818f620414525abc495e44b, - limb2: 0xae70f24112363941, - limb3: 0x0 - } - }, - SumDlogDivLow: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x43803ccffd89de52f2d9f46a, - limb1: 0x724317072cf04c481ce975db, - limb2: 0x38a2caabed77bef3, - limb3: 0x0 - }, - u384 { - limb0: 0xd0b180103c81513e21c2fb6a, - limb1: 0xd3e66804ea0043637896eb1e, - limb2: 0xeb75e9241d1e7aeb, - limb3: 0x0 - }, - u384 { - limb0: 0x943f36084a3aa9db3a28aee2, - limb1: 0x8233499815815fa1a21bf7e0, - limb2: 0xc5113727a0066e2d, - limb3: 0x0 - }, - u384 { - limb0: 0x9c6be7e356ee7b82c18d424c, - limb1: 0x2877b97733cd240acf8d45a1, - limb2: 0x64009f4b48dcf594, - limb3: 0x0 - }, - u384 { - limb0: 0x944b2b4d2e174e24f4725eae, - limb1: 0x809abde1b36f8af96b11e0df, - limb2: 0x970556c1ef3c74b, - limb3: 0x0 - }, - u384 { - limb0: 0x2366044932cfb2d6cd92269c, - limb1: 0x78305b4e79bb9a2dbfd8d92e, - limb2: 0x737c9fe513052cc8, - limb3: 0x0 - }, - u384 { - limb0: 0x2fe5d0a1ccebc36313af9c0f, - limb1: 0xa88a2c61770c96aa42d63136, - limb2: 0xf29e6708df5f07d0, - limb3: 0x0 - }, - u384 { - limb0: 0xbfb469c15cf813d99e4c8e78, - limb1: 0x19029891e210e3e94ddf37f1, - limb2: 0xee06acfe4a24332, - limb3: 0x0 - }, - u384 { - limb0: 0x4b379b29f4ab331175f62846, - limb1: 0x3e661d1f3fde0e0164e326e3, - limb2: 0x91d5c066844c1ffe, - limb3: 0x0 - }, - u384 { - limb0: 0x9c35f5300117b7016b6639c4, - limb1: 0x6f0dbce576d037d9034816c7, - limb2: 0x9550442a2929082f, - limb3: 0x0 - }, - u384 { - limb0: 0x306a8352bacb73a15e434552, - limb1: 0xffffffffffffffff2cc719d7, - limb2: 0x7fffffffffffffff, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x4d4f90373b52c6bce721c2e4, - limb1: 0xaf49e3b223236ae79b4a1573, - limb2: 0x86964322091375ef, - limb3: 0x0 - }, - u384 { - limb0: 0x674ca422b48ee61b5ba1a16d, - limb1: 0x919bfc67da8a8c273e9bf150, - limb2: 0xafbc6531fd6e788e, - limb3: 0x0 - }, - u384 { - limb0: 0xf9593c9b2a388feb60deded1, - limb1: 0x7e12b82e2c90aa45dd465a6b, - limb2: 0x135cd8354cd14f13, - limb3: 0x0 - }, - u384 { - limb0: 0x82ce8441363012899363288b, - limb1: 0xc5498011898a291855cf4fc1, - limb2: 0x8c77bba67357d042, - limb3: 0x0 - }, - u384 { - limb0: 0xa357006b997208fd260bf7bc, - limb1: 0x95b7f965d86ffa806d816fb7, - limb2: 0xaf1eba6c9536a74, - limb3: 0x0 - }, - u384 { - limb0: 0x4b3f63f339c056eaed839476, - limb1: 0x408e12de5101bbb4a60eba55, - limb2: 0x5113bf87221cc134, - limb3: 0x0 - }, - u384 { - limb0: 0xf1976a57cbcf166e1526d452, - limb1: 0x1cd20c88bf06c52bce6ed5df, - limb2: 0x6a96d5a13c7237bf, - limb3: 0x0 - }, - u384 { - limb0: 0xddff949f4808dd4c0d97d9e, - limb1: 0xc861463e2ae9bf55d9736843, - limb2: 0xe94178b5df6b2c4c, - limb3: 0x0 - }, - u384 { - limb0: 0xbd3d9a0ef15e9776584c0abe, - limb1: 0x1792b8c9898d1ba217dc3f21, - limb2: 0x27e5f599d8ca10b0, - limb3: 0x0 - }, - u384 { - limb0: 0x24273e002797096b085c2abe, - limb1: 0xb446c121e58d9b3ef42b93ae, - limb2: 0x4feeac840d9cbcde, - limb3: 0x0 - }, - u384 { - limb0: 0xdedf8877a94fe18f5ed93beb, - limb1: 0x999906bf7746ec6b31aa007f, - limb2: 0x67c7d59acff4611d, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0x1ba8c9dafbb7518be9d6926, - limb1: 0x9a72b74b5d2af292ba1a9381, - limb2: 0x37090e386e6ee1f3, - limb3: 0x0 - }, - u384 { - limb0: 0x33b6037e55e9ecbdb19e5a7d, - limb1: 0x6a90abf343c9d5b18b9bacfb, - limb2: 0x99f84ac927e269fa, - limb3: 0x0 - }, - u384 { - limb0: 0x187a9c28f7bbcb32363b67cf, - limb1: 0xa916dec7d206c42bde34779c, - limb2: 0x7d17b384d651c6d, - limb3: 0x0 - }, - u384 { - limb0: 0x49591e5add2cfea5098e8081, - limb1: 0x5041e696c65cfb42c77f87f, - limb2: 0x1005e632ef762554, - limb3: 0x0 - }, - u384 { - limb0: 0xe364eef820184e6d48b1a4e5, - limb1: 0x780853372e58c794ce405ddd, - limb2: 0x568fd3fa2ccbf043, - limb3: 0x0 - }, - u384 { - limb0: 0x28439e6ed4d98bb17dcca3cf, - limb1: 0x2ec614fbf92d99b72a12019d, - limb2: 0x3edec9406bbd20de, - limb3: 0x0 - }, - u384 { - limb0: 0x2091b208695626a9acb2b93d, - limb1: 0xd23e567d774eed7119d326fd, - limb2: 0xf8480ca5c21f33fc, - limb3: 0x0 - }, - u384 { - limb0: 0x62a7aa38cc9d1891c0b6af75, - limb1: 0x45a3977abb3c2c8eca21c5cc, - limb2: 0x15af60cb2b91b77f, - limb3: 0x0 - }, - u384 { - limb0: 0x609aeb122307d2a139c6dfb6, - limb1: 0x3d1549ebce785df3456c93d4, - limb2: 0x1eacc84c0db67171, - limb3: 0x0 - }, - u384 { - limb0: 0xbe75c21275a9b859e1bb36a2, - limb1: 0x463efa6df133f606f7c19dae, - limb2: 0xc4f352ad094f3cba, - limb3: 0x0 - }, - u384 { - limb0: 0x1f4c1667b5f7ba4c4fc40287, - limb1: 0xde141eac7667fbbb313f3766, - limb2: 0x3aaf1bc91892061c, - limb3: 0x0 - }, - u384 { - limb0: 0x4cbd76a43610cf7be59fa1e9, - limb1: 0x49e0ce6cb72cca250432cb68, - limb2: 0x1971bf11e3da30dd, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { - limb0: 0x1d2cf1829f436f2d51ec5faf, - limb1: 0xcb0539def5f7ec553f069627, - limb2: 0xae1bd5ee3f88398d, - limb3: 0x0 - }, - u384 { - limb0: 0xd3187cf2efe84ac3816b793f, - limb1: 0xfb43e6d6f9c9d512b6439932, - limb2: 0xce26c45dee054be5, - limb3: 0x0 - }, - u384 { - limb0: 0xd170a83e278bef6fa61817b7, - limb1: 0x7283094337f4a7e90cec78f3, - limb2: 0x8789e97519b92988, - limb3: 0x0 - }, - u384 { - limb0: 0xe0f52dffb6a34883eed7edf5, - limb1: 0x144c642ce5ea8a91f3f543bd, - limb2: 0x5ddc64af307a27c3, - limb3: 0x0 - }, - u384 { - limb0: 0xdeada713e6ad250765f56791, - limb1: 0xa9a3ce30c59a65aa3d25ff55, - limb2: 0xfc59d6c17eb661be, - limb3: 0x0 - }, - u384 { - limb0: 0x814f841be7af059df77f5ad, - limb1: 0x41f53c42639ccc3667ad72c1, - limb2: 0x4ae714e73b9a9781, - limb3: 0x0 - }, - u384 { - limb0: 0x1df26ca7c8d9af8f2773023c, - limb1: 0x8f07d7cec2b98d4afad728e1, - limb2: 0x7697930f1a77567c, - limb3: 0x0 - }, - u384 { - limb0: 0x476d17148f5e9d46bfe7df4, - limb1: 0x1060e51904d435d95fa9498d, - limb2: 0x6bbc389fe541a08e, - limb3: 0x0 - }, - u384 { - limb0: 0x77ee9a5bd3567b285797e379, - limb1: 0xe591206113dd7d234d147441, - limb2: 0x685d76bc0fa33604, - limb3: 0x0 - }, - u384 { - limb0: 0xeeaa1c58e0f0585d4fac0726, - limb1: 0xac1547605e603e47b9fdfa2, - limb2: 0x9a1d8d3d9bbb61d6, - limb3: 0x0 - }, - u384 { - limb0: 0x25fcb48f95afb8c358ca2c7e, - limb1: 0xfb90757a6dda364435196bc2, - limb2: 0xbfb84ff18f19d41b, - limb3: 0x0 - }, - u384 { - limb0: 0xbd3d9a0ef15e9776584c0ac5, - limb1: 0x1792b8c9898d1ba217dc3f21, - limb2: 0x27e5f599d8ca10b0, - limb3: 0x0 - }, - u384 { - limb0: 0x24273e002797096b085c2abe, - limb1: 0xb446c121e58d9b3ef42b93ae, - limb2: 0x4feeac840d9cbcde, - limb3: 0x0 - }, - u384 { - limb0: 0xdedf8877a94fe18f5ed93beb, - limb1: 0x999906bf7746ec6b31aa007f, - limb2: 0x67c7d59acff4611d, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { - limb0: 0xa6870e138629683e4faaea9e, - limb1: 0x6dc6750f8f627cd92f97f52f, - limb2: 0xbc92a5af395c365d, - limb3: 0x0 - }, - u384 { - limb0: 0x884ad20af29732bbb455ab0f, - limb1: 0xdc7b43242c13716c81d8599, - limb2: 0xdb1c380054741d88, - limb3: 0x0 - }, - u384 { - limb0: 0x6035370615fbd47e26d5f04f, - limb1: 0xf0bf0c89c7015ae3818cd5a6, - limb2: 0xf1f1aecee11f7847, - limb3: 0x0 - }, - u384 { - limb0: 0xe17b83fa44aa786aca3bd172, - limb1: 0x39c99efed6741f59b7d0b3cf, - limb2: 0xf6a98c172a8468d0, - limb3: 0x0 - }, - u384 { - limb0: 0xcd7451187ce45f748e81920b, - limb1: 0xfff133431095328b7d1822dd, - limb2: 0xd4ad33d8bd0698b7, - limb3: 0x0 - }, - u384 { - limb0: 0x4f9bfbf925d59d71127114d6, - limb1: 0x4a89c28f90a3c935ea10f9eb, - limb2: 0x5411fb8d89c5844c, - limb3: 0x0 - }, - u384 { - limb0: 0xd82ed12c4b731ab6eb107720, - limb1: 0x9b07dee2afe23121e8140a1d, - limb2: 0x4aa80a3bd9dacfc9, - limb3: 0x0 - }, - u384 { - limb0: 0x5505bbb3fce9649a0778a3b5, - limb1: 0x8b783dabf19cc103bf841143, - limb2: 0xcbccf740ed70c407, - limb3: 0x0 - }, - u384 { - limb0: 0x95b10da10b5baab55c07f887, - limb1: 0xe6b2d2bfcd8ebaad75c90633, - limb2: 0x97579b447d02ba9e, - limb3: 0x0 - }, - u384 { - limb0: 0x2141e4211d8f3096cbd5488d, - limb1: 0x3511434d795c6e3da249542e, - limb2: 0x2f4bddf79fe0e3ad, - limb3: 0x0 - }, - u384 { - limb0: 0x4000a29849613909a0d34336, - limb1: 0xffffffffffffffffeace0e22, - limb2: 0x7fffffffffffffff, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { - limb0: 0xb250ea4693e8362a7975b29d, - limb1: 0x464209627f1f9585f55ac767, - limb2: 0x52f444724f83f778, - limb3: 0x0 - }, - u384 { - limb0: 0xc083f21e797f441b4c5a4704, - limb1: 0x14325d4855a9974b59da0efe, - limb2: 0xe18d8cbd32c163e1, - limb3: 0x0 - }, - u384 { - limb0: 0x12aeb84f6aba7f5327c6bfe7, - limb1: 0x95d02159235dacda1a5e7138, - limb2: 0xc2d0ad34dac30f1b, - limb3: 0x0 - }, - u384 { - limb0: 0x1d104c6b37ed4d93180506a6, - limb1: 0x6750d06d646d6ad736dd19bf, - limb2: 0x5f1b02f9ba50af72, - limb3: 0x0 - }, - u384 { - limb0: 0xc9246853437175516a2525d5, - limb1: 0x8abff09a04aa440bcc26064, - limb2: 0x83aef02a8f9f5d3a, - limb3: 0x0 - }, - u384 { - limb0: 0x5c5d4ee962e2e1b7dd4b34fe, - limb1: 0xf8fb1da4dcfe44c7bbadf393, - limb2: 0xdb1ffdd7e842eebc, - limb3: 0x0 - }, - u384 { - limb0: 0xd50c7be07323ae77304e4771, - limb1: 0x595164a4dc2d3db5d629b024, - limb2: 0xe4c4f48439a4fd9b, - limb3: 0x0 - }, - u384 { - limb0: 0x8195237dfcb0c25b7d434885, - limb1: 0x34bd1c7b1847621627900f1d, - limb2: 0x67433e9e0a26e9ab, - limb3: 0x0 - }, - u384 { - limb0: 0xc790da7919334bdcf03dd494, - limb1: 0x16e2e556dae0b9f601bada3f, - limb2: 0xe4d88cf6c6bb19cc, - limb3: 0x0 - }, - u384 { - limb0: 0x1bf7dda07ee5be71a707e79a, - limb1: 0x892bb989a853177b6b292977, - limb2: 0x85c3a477ece55c69, - limb3: 0x0 - }, - u384 { - limb0: 0xde623d79c8c2aebc9f590f0c, - limb1: 0xfdfa8a01f326f65f64de445, - limb2: 0x75f788602497fba7, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0xba8bb9c81570769362931798, - limb1: 0xa1082c60fc4f2bfe9184b460, - limb2: 0x5b5db2d50c85ec24, - limb3: 0x0 - }, - u384 { - limb0: 0x75286350ab10c0a1eeac390f, - limb1: 0x5b47b806b4b56d06b233683d, - limb2: 0x8d4f97ce14a7f59f, - limb3: 0x0 - }, - u384 { - limb0: 0x163a99d61d1702e1b03b6624, - limb1: 0xc754f0bbca1bd31c025acbea, - limb2: 0x69e004be92162886, - limb3: 0x0 - }, - u384 { - limb0: 0x9bd732d7f5bda0e6bf80810, - limb1: 0x8b230d9ff8e0dbb3ab28d91e, - limb2: 0xa23ea8f8481c1609, - limb3: 0x0 - }, - u384 { - limb0: 0xa8a3bde74a6ce6d3e59ab4f3, - limb1: 0x16d9807375b7d8557f334ceb, - limb2: 0x55ca4c02e5fc5e8, - limb3: 0x0 - }, - u384 { - limb0: 0xe51166fa7af9d038f12e4bdb, - limb1: 0x90f63789d373ed6b8902eb68, - limb2: 0x6e69b6a9ef2f7ace, - limb3: 0x0 - }, - u384 { - limb0: 0xbdf1ea31e1cc4f37c458a58c, - limb1: 0x4f16903b8633013d68d33f65, - limb2: 0x28aeb879c078acb7, - limb3: 0x0 - }, - u384 { - limb0: 0x917e2ffada93d494f13c5a75, - limb1: 0xf81ac75ba681c7d9fa68835c, - limb2: 0x60fbc3f9c5ac8d42, - limb3: 0x0 - }, - u384 { - limb0: 0xd678d5d916bf5ca2b94e92a9, - limb1: 0xbf74e1f22cca38999d040e6b, - limb2: 0x22a46d9975b0ef67, - limb3: 0x0 - }, - u384 { - limb0: 0xa9b252c0dc489bf114e781dc, - limb1: 0xb36157631d461bd0c11e47ad, - limb2: 0xce2e93a2ddf87d0d, - limb3: 0x0 - }, - u384 { - limb0: 0x3a9db879fde4a591354a3d36, - limb1: 0x18766a0e913db86094591625, - limb2: 0xd03dcb69d47a7b24, - limb3: 0x0 - }, - u384 { - limb0: 0xe2ad103f8599656aac39ac02, - limb1: 0x9b0d17777365266369bf7052, - limb2: 0x91513ed506efe462, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { - limb0: 0xe03667ee0b597b2b5237e9ed, - limb1: 0xebce41b179dd16a9b57b73d5, - limb2: 0x44addf202c9bc449, - limb3: 0x0 - }, - u384 { - limb0: 0x439b9ed5527adcc516780802, - limb1: 0x8d608cfa57a3230f74f668f7, - limb2: 0x2aded92c6349bb27, - limb3: 0x0 - }, - u384 { - limb0: 0x82c70a2beb197b4b166f5266, - limb1: 0x18b0e96ff78fb9f6b8951888, - limb2: 0x53b4bc71fb5569c1, - limb3: 0x0 - }, - u384 { - limb0: 0x7dc301351b6555322198e8c9, - limb1: 0x1977bc603e1d816875667ba1, - limb2: 0xecb1594667b8c399, - limb3: 0x0 - }, - u384 { - limb0: 0x4082cc6551997959335e5f1b, - limb1: 0x50e6568bb7b41510832ab1c0, - limb2: 0x7b561de7201cf077, - limb3: 0x0 - }, - u384 { - limb0: 0x993be0b11eeeab6034d549bf, - limb1: 0x64adf0db2e518e503c201a3f, - limb2: 0xc0b09e1c34979646, - limb3: 0x0 - }, - u384 { - limb0: 0xf067af8e5de712db6a2911a3, - limb1: 0xd88a90ef69aa1ad01200eac0, - limb2: 0xa07db2974dd39eb1, - limb3: 0x0 - }, - u384 { - limb0: 0x543860c52c46c5d4d6fc2ceb, - limb1: 0x79d7c6674a3e52dbd1b2ca33, - limb2: 0x5685a67cd6afc0e8, - limb3: 0x0 - }, - u384 { - limb0: 0xd15348391349f4c96efc1fc1, - limb1: 0x992f6304d9235a81c7c9eb51, - limb2: 0x1d0bd8975760a351, - limb3: 0x0 - }, - u384 { - limb0: 0x98d38b43eb6be396c185abeb, - limb1: 0x198377687672e215c449d266, - limb2: 0x8d1e73cbb3ea847e, - limb3: 0x0 - }, - u384 { - limb0: 0x9644d1d27a038986d8b2bd4c, - limb1: 0xa3dab8dbf2a86ddfe3b14d06, - limb2: 0xa107f93f0a4ecb3c, - limb3: 0x0 - }, - u384 { - limb0: 0xc790da7919334bdcf03dd49b, - limb1: 0x16e2e556dae0b9f601bada3f, - limb2: 0xe4d88cf6c6bb19cc, - limb3: 0x0 - }, - u384 { - limb0: 0x1bf7dda07ee5be71a707e79a, - limb1: 0x892bb989a853177b6b292977, - limb2: 0x85c3a477ece55c69, - limb3: 0x0 - }, - u384 { - limb0: 0xde623d79c8c2aebc9f590f0c, - limb1: 0xfdfa8a01f326f65f64de445, - limb2: 0x75f788602497fba7, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ - u384 { - limb0: 0xb621bb1d78329bff02939c71, - limb1: 0x6c9ceb92565c4cc31a427e2, - limb2: 0x216d8c060d466edc, - limb3: 0x0 - }, - u384 { - limb0: 0xd784a91a5e09d24dfc4a247d, - limb1: 0xffffffffffffffff7c074593, - limb2: 0x7fffffffffffffff, - limb3: 0x0 - } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x390dfcfd480ce0a51a109981, - limb1: 0x8dfb7f29ef62a9808912090e, - limb2: 0xf256c141b0e285a0, - limb3: 0x0 - }, - u384 { - limb0: 0x89092aeab5c797bf88384dc3, - limb1: 0xfd58d201b6a8801d89e9cc11, - limb2: 0x963fca03e1cfef00, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0xf9072ad2fb9bd0d63920e90a, - limb1: 0xe18a3a917b1d15a130e81eb2, - limb2: 0x73c7ef9b43da47db, - limb3: 0x0 - }, - u384 { - limb0: 0x4cb52aa599f88c2b1f1a6d61, - limb1: 0x5f45824e4c6e3f44353cb34a, - limb2: 0x74a5837f049ef683, - limb3: 0x0 - }, - u384 { - limb0: 0x9afd957b86faf28110e9a93e, - limb1: 0xf86cada873e172ff55d162f7, - limb2: 0xb779862a4187abcd, - limb3: 0x0 - } - ] - .span(), - b_den: array![ - u384 { - limb0: 0x8f61eaecf85a2489b674496d, - limb1: 0xe1e07a258bb2a283bf7e3f63, - limb2: 0xa05f48cbd631a763, - limb3: 0x0 - }, - u384 { - limb0: 0xbf402c6af8752640b98a2f99, - limb1: 0xed6dbe0bfe9b80cec564947a, - limb2: 0x1bbe861b2caf8906, - limb3: 0x0 - }, - u384 { limb0: 0x7, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { - limb0: 0x390dfcfd480ce0a51a109981, - limb1: 0x8dfb7f29ef62a9808912090e, - limb2: 0xf256c141b0e285a0, - limb3: 0x0 - }, - u384 { - limb0: 0x89092aeab5c797bf88384dc3, - limb1: 0xfd58d201b6a8801d89e9cc11, - limb2: 0x963fca03e1cfef00, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - }; - let derive_point_from_x_hint = DerivePointFromXHint { - y_last_attempt: u384 { - limb0: 0x13fa35739992e4e47458f158, - limb1: 0xb4ee782cd6d40e6ab53b53de, - limb2: 0x5f5146224ec030c3, - limb3: 0x0 - }, - g_rhs_sqrt: array![ - u384 { - limb0: 0x1bb16c0dce1175e3877b6696, - limb1: 0xbe55ae456874071133079b36, - limb2: 0x3167c6dfa829c4, - limb3: 0x0 - }, - u384 { - limb0: 0x1c1a50cc9dee6e70f8301358, - limb1: 0x3a2120d6b5c865f4baf6daed, - limb2: 0x5aeb786ff2fb767b, - limb3: 0x0 - }, - u384 { - limb0: 0x5302fe5974e17b77b1aa8476, - limb1: 0x31da45bdfd509fd59a7aec7a, - limb2: 0x290ab7b904a1cae7, - limb3: 0x0 - } - ] - .span(), - }; - let points = array![ - G1Point { - x: u384 { - limb0: 0x393dead57bc85a6e9bb44a70, - limb1: 0x64d4b065b3ede27cf9fb9e5c, - limb2: 0xda670c8c69a8ce0a, - limb3: 0x0 - }, - y: u384 { - limb0: 0x789872895ad7121175bd78f8, - limb1: 0xc0deb0b56fb251e8fb5d0a8d, - limb2: 0x3f10d670dc3297c2, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0xfdfdc509f368ba4395773d3a, - limb1: 0x8de2b60b577a13d0f83b578e, - limb2: 0xc2dd970269530ba2, - limb3: 0x0 - }, - y: u384 { - limb0: 0x589fa250d638e35400c12ddf, - limb1: 0xb3aac19fcb5095808402aa7f, - limb2: 0xed6de6590d0195d1, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x2965eeb3ec1fe786a6abe874, - limb1: 0x33e2545f82bb6add02788b8e, - limb2: 0xf586bc0db335d7b8, - limb3: 0x0 - }, - y: u384 { - limb0: 0x155b35991489db2fdf4de620, - limb1: 0xf24ce461346a182d67eeccf0, - limb2: 0xb4122bb4b37cc7d5, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x12815740835b12f70b96c66f, - limb1: 0xbfa76a8b80aec9f2e31c40cc, - limb2: 0xcd8a26d17d33c7c1, - limb3: 0x0 - }, - y: u384 { - limb0: 0x9a8f496f09402b8fd6beb89b, - limb1: 0x28e48918dad2123d7f202bef, - limb2: 0xcdd11b6ffb3f8614, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0xb5076be8537cff2a42c6db68, - limb1: 0x1066d40cbd01a3752e4e069c, - limb2: 0x123ec2fd302cb0f9, - limb3: 0x0 - }, - y: u384 { - limb0: 0xc85f5e5efdf415f8081bf53f, - limb1: 0xadc5010e9d9ac6c64000d33d, - limb2: 0xf81314011d8852e4, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0xd5915098d3d2001310b0b935, - limb1: 0x88bb4507ebf1be82cfba2397, - limb2: 0x8a463f1c00ce885f, - limb3: 0x0 - }, - y: u384 { - limb0: 0x414858f8a83f9d4498890137, - limb1: 0xa09c4658c47ace74c42cdb60, - limb2: 0x8aaf300ff3ab7d98, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x1772eb803ddc8a82e23b1c05, - limb1: 0xc26baeb89b03fd69eb64b337, - limb2: 0x4ea7131b2d873a45, - limb3: 0x0 - }, - y: u384 { - limb0: 0xc9d16330db15efd90235eed9, - limb1: 0x1b586ef360673d36baa16189, - limb2: 0xee652d2b848ad111, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x68f9e7942638253f3b596f1f, - limb1: 0xb37e6153d9accd97a344f384, - limb2: 0xda48eae9ff614551, - limb3: 0x0 - }, - y: u384 { - limb0: 0xc58be8ed857035b34f51c620, - limb1: 0x3b14ed53116cb7c1db000006, - limb2: 0x7dfa292fe99b77dd, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0xf7f7bd2513c1b31de932bbd2, - limb1: 0x627e2fa74b7ac891f7d555c7, - limb2: 0x7f8a094f818e7192, - limb3: 0x0 - }, - y: u384 { - limb0: 0x9b47b9326b668e62071faf18, - limb1: 0xe21058cb6937afa89be6931a, - limb2: 0x21a4bfb4cce2ac8c, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0xaf4ad4d7d582b10b14c97e6c, - limb1: 0xadf808c85e766e997e470fd0, - limb2: 0x2714571e587ce46d, - limb3: 0x0 - }, - y: u384 { - limb0: 0x86a7815dad7e8a53b19fee2, - limb1: 0x1922fc1efcc51e68146ffa1b, - limb2: 0x9e19b7c1f886488e, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x17bc74c409191a2b2249d987, - limb1: 0xf4fe5f79db38f3064f7d093e, - limb2: 0x3536ce04295e2a42, - limb3: 0x0 - }, - y: u384 { - limb0: 0xb1d36a10f008c1c24de1ad7d, - limb1: 0xa4f2190c71ee5e0ff07c48f8, - limb2: 0x21c1a2d4cfff3233, - limb3: 0x0 - } - }, - G1Point { - x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - }, - ] - .span(); - let scalars = array![ - u256 { low: 0x0, high: 0x0 }, - u256 { - low: 0x101fbcccded733e8b421eaeb534097ca, high: 0x38c1962e9148624feac1c14f30e9c5cc - }, - u256 { - low: 0x247a8333f7b0b7d2cda8056c3d15eef7, high: 0x1759edc372ae22448b0163c1cd9d2b7d - }, - u256 { - low: 0xe005b86051ef1922fe43c49e149818d1, high: 0x7d41e602eece328bff7b118e820865d6 - }, - u256 { - low: 0x4a84eb038d1fd9b74d2b9deb1beb3711, high: 0x552f233a8c25166a1ff39849b4e1357d - }, - u256 { - low: 0x3405095c8a5006c1ec188efbd080e66e, high: 0x8c1745a79a6a5f92cca74147f6be1f72 - }, - u256 { - low: 0x1775336d71eacd0549a3e80e966e1277, high: 0x5129fb7c6288e1a5cc45782198a6416d - }, - u256 { - low: 0x2f1205544a5308cc3dfabc08935ddd72, high: 0x870e15c2fcd81b5d24bace4307bf326 - }, - u256 { - low: 0x42930b33a81ad477fb3675b89cdeb3e6, high: 0xadc0da7a16febaa011af923d79fdef7c - }, - u256 { - low: 0x2648ee38e07405eb215663abc1f254b8, high: 0x148b2758d7ab792809e469e6ec62b2c8 - }, - u256 { - low: 0xd450fe4aec4f217bb306d1a8e5eeac76, high: 0xd67e55fd642bfa42aef9c00b8a64c1b9 - }, - u256 { - low: 0x85940927468ff53d864a7a50b48d73f1, high: 0x37176e84d977e9933c49d76fcfc6e625 - }, - ] - .span(); - - let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 2 - ); - assert!( - res == G1Point { - x: u384 { - limb0: 0x25e0ae5146eead827adbb1d, - limb1: 0x609aab8b2f94654f9d6cac6, - limb2: 0x853097dfea39f246, - limb3: 0x0 - }, - y: u384 { - limb0: 0x25fd09e456853bffe637add8, - limb1: 0x44330f663f6d9da943dbb0df, - limb2: 0x31632aa05863e742, - limb3: 0x0 - } - } - ); - } - - - #[test] - fn test_msm_ED25519_1P() { - let scalars_digits_decompositions = Option::Some( - array![(array![0x0,].span(), array![0x0,].span()),].span() - ); - let msm_hint = MSMHint { - Q_low: G1Point { - x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - }, - Q_high: G1Point { - x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - }, - Q_high_shifted: G1Point { - x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - }, - SumDlogDivLow: FunctionFelt { - a_num: array![ - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - }; - let derive_point_from_x_hint = DerivePointFromXHint { - y_last_attempt: u384 { - limb0: 0x2b32584420d7ce3cd4a11930, - limb1: 0x7f0e9c3b3f207c90986c3546, - limb2: 0x2fb2291daeffdfce, - limb3: 0x0 - }, - g_rhs_sqrt: array![].span(), - }; - let points = array![ - G1Point { - x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - }, - ] - .span(); - let scalars = array![u256 { low: 0x0, high: 0x0 },].span(); - - let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 4 - ); - assert!( - res == G1Point { - x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - } - ); - } - - - #[test] - fn test_msm_ED25519_2P() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - ] - .span() - ), - ] - .span() - ); - let msm_hint = MSMHint { - Q_low: G1Point { - x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - }, - Q_high: G1Point { - x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - }, - Q_high_shifted: G1Point { - x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - }, - SumDlogDivLow: FunctionFelt { - a_num: array![ - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - }; - let derive_point_from_x_hint = DerivePointFromXHint { - y_last_attempt: u384 { - limb0: 0x21b051e599886cc144eb97ce, - limb1: 0x26a4f46e7f4c9c9c99d8f2f8, - limb2: 0x2a61add1aea2f3a5, - limb3: 0x0 - }, - g_rhs_sqrt: array![].span(), - }; - let points = array![ - G1Point { - x: u384 { - limb0: 0x7238f02b9f20e09c2181a557, - limb1: 0x2cedcc5b0be371c337fd7e9e, - limb2: 0x41f3bbeb280fe8a2, - limb3: 0x0 - }, - y: u384 { - limb0: 0xf046f8cd6e5a75fca71dd19b, - limb1: 0x892b4613ef5c58df4ef692a4, - limb2: 0x7527fa36f5738847, - limb3: 0x0 - } - }, - G1Point { - x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - }, - ] - .span(); - let scalars = array![ - u256 { low: 0x0, high: 0x0 }, - u256 { - low: 0xb4862b21fb97d43588561712e8e5216a, high: 0x4b3e865e6f4590b9a164106cf6a659e - }, - ] - .span(); - - let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 4 - ); - assert!( - res == G1Point { - x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - } - ); - } - - - #[test] - fn test_msm_ED25519_3P() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - ] - .span(), - array![ - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - ] - .span() - ), - ] - .span() - ); - let msm_hint = MSMHint { - Q_low: G1Point { - x: u384 { - limb0: 0x6889d75e36c152c1cc46f152, - limb1: 0xab6c91609cc41b1c6148652e, - limb2: 0x6d04cda48b959e7b, - limb3: 0x0 - }, - y: u384 { - limb0: 0xd12689aa4a75942f20369ac5, - limb1: 0x5d6ae4c0a9977c4e19538008, - limb2: 0x101fd900dd268a39, - limb3: 0x0 - } - }, - Q_high: G1Point { - x: u384 { - limb0: 0x4cf7cf1e83ac6ddeb4c0d88, - limb1: 0xdf032c7d359dec2b1b30b922, - limb2: 0x1b4e7ef7358304ab, - limb3: 0x0 - }, - y: u384 { - limb0: 0x90887d2f101702d94aa5377f, - limb1: 0x3fdfadebd967a872d02af758, - limb2: 0x2ea0b09931ec6dc4, - limb3: 0x0 - } - }, - Q_high_shifted: G1Point { - x: u384 { - limb0: 0x506c121a6c7fd9aa60e121a3, - limb1: 0x23b636b641b29ef8bdd1c639, - limb2: 0x791b6ec60b5f8598, - limb3: 0x0 - }, - y: u384 { - limb0: 0x59f9c615c1fecf831ca3b5fc, - limb1: 0x2f6fb1f6358caa9cb6f8c9f7, - limb2: 0x6e62064b941a23df, - limb3: 0x0 - } - }, - SumDlogDivLow: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x90d2e8727e5fd1a5c5e58e14, - limb1: 0xa929a53579aa9e3e81f805cf, - limb2: 0x38b87adcae1fcece, - limb3: 0x0 - }, - u384 { - limb0: 0xed700380fc6bb9738c6114eb, - limb1: 0xfffffffffffffffff21a53ed, - limb2: 0x7fffffffffffffff, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x9bf920910c9471cd86fa6936, - limb1: 0xaf3a5a2000fbb57b2915971d, - limb2: 0x2520dc914ad73ef1, - limb3: 0x0 - }, - u384 { - limb0: 0x149185623af054bc4c27361d, - limb1: 0x97e30c5c0852f883c3ccd612, - limb2: 0x7b5d16acd65ac24f, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0xff8777d8fa0d0d9e90803a6, - limb1: 0x3200ea1f027c0194c591be9a, - limb2: 0x7bf9cf6188a57b24, - limb3: 0x0 - }, - u384 { - limb0: 0x298347e8f997fe0e45013dda, - limb1: 0x18573b7ce42e6aa818d64105, - limb2: 0x247c8fcba4de35d2, - limb3: 0x0 - }, - u384 { - limb0: 0xd378ec11faf7730e2ff20bfb, - limb1: 0xb34729bedbbffe0680bb052c, - limb2: 0x29082e707a1931f5, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { - limb0: 0xc12680bbd361470deefc0ddb, - limb1: 0x260a8dd5e5c9670b883202d1, - limb2: 0xc6013fb41d22ac3, - limb3: 0x0 - }, - u384 { - limb0: 0xf528de61fe449f365ba6277e, - limb1: 0xf6a6d966694aa0bb75ed1cb2, - limb2: 0x6823ce0d3d23cc34, - limb3: 0x0 - }, - u384 { - limb0: 0xd9f30aacb5f76e970a2c52f3, - limb1: 0xe032ad62c9c9dff5c6d18e99, - limb2: 0x4a31a0ff430ab173, - limb3: 0x0 - }, - u384 { - limb0: 0xa89e4b88b906535c7fb68076, - limb1: 0xe0d23b2d6276f35194ce4d7a, - limb2: 0x26f8964f090fdd7, - limb3: 0x0 - }, - u384 { - limb0: 0x149185623af054bc4c27361d, - limb1: 0x97e30c5c0852f883c3ccd612, - limb2: 0x7b5d16acd65ac24f, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x16f9ccb6b1a4ee0a7c8af534, - limb1: 0x16e1bd321d501968a5ba6c6e, - limb2: 0x32bb63a6dd7258ce, - limb3: 0x0 - }, - u384 { - limb0: 0x9d6582305ba4fa41292552df, - limb1: 0x69dd814, - limb2: 0x4000000000000000, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x6a276e6ef83fd83c3ec14fa0, - limb1: 0xb35e6c0db7ecc805c5801ddf, - limb2: 0x28b6574f0efd540d, - limb3: 0x0 - }, - u384 { - limb0: 0x784bdfce8976e0a02d2219fa, - limb1: 0x644c713f6f79277509e4821e, - limb2: 0x4d13655a2c6d5c1f, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0x87bddb06d00da5ddeedbe34e, - limb1: 0x641cd510e86c01094e54c4d7, - limb2: 0x5791fae9d6d59e29, - limb3: 0x0 - }, - u384 { - limb0: 0xebe59226513f05d9ac1dfdad, - limb1: 0x67b26d524d321d7297848669, - limb2: 0x5484da3645564e03, - limb3: 0x0 - }, - u384 { - limb0: 0x1ae3a2ac4a1808a78bf21862, - limb1: 0xcdf04e6a46d59cdd8fa6fe81, - limb2: 0x1a27e76d43576aa3, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { - limb0: 0x29518fdc2f6f4b7e3af6fc8d, - limb1: 0xb5d116a383ff28b270fc0e6f, - limb2: 0x22ab18d3b0dbde11, - limb3: 0x0 - }, - u384 { - limb0: 0xa93ec09a846f9568f9497ab2, - limb1: 0xc088c6dd025aa1bd2adec66c, - limb2: 0x337b5ade5aec450a, - limb3: 0x0 - }, - u384 { - limb0: 0x823f114d726ddc68aa7d465c, - limb1: 0x3abc1a8b9b7f7bde51a40a70, - limb2: 0x5409b6ac561a869e, - limb3: 0x0 - }, - u384 { - limb0: 0x76cc9966a4b1b9cb377d66e0, - limb1: 0xe4f64d1b196805dc3138d43c, - limb2: 0x6050422b4b712f3, - limb3: 0x0 - }, - u384 { - limb0: 0x784bdfce8976e0a02d2219fa, - limb1: 0x644c713f6f79277509e4821e, - limb2: 0x4d13655a2c6d5c1f, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ - u384 { - limb0: 0xf875b534306df460ee0d985e, - limb1: 0x14bb5248b1bfeb4f33e44e64, - limb2: 0x1c0d4f3659c663ab, - limb3: 0x0 - }, - u384 { - limb0: 0xd784a91a5e09d24e7c4a265c, - limb1: 0xffffffffffffffff7c074593, - limb2: 0x3fffffffffffffff, - limb3: 0x0 - } - ] - .span(), - a_den: array![ - u384 { - limb0: 0xb2bd31cef772299e248100fb, - limb1: 0xe2e37ba99be92e642e4970b7, - limb2: 0x1d994c998fb6f912, - limb3: 0x0 - }, - u384 { - limb0: 0xaac470f3ab455f77b3d2d0af, - limb1: 0xfd469ccc88af74dc26fd80a4, - limb2: 0x6b961242bf1d75bb, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0xc316db8f32ead8e5fa73e8c4, - limb1: 0xc7ac3cff14a66b146dbde807, - limb2: 0x7691cc9dfaeb0690, - limb3: 0x0 - }, - u384 { - limb0: 0x453c6d0f9cb833ca7695fc60, - limb1: 0xa9ddb9bec0dcec51b206c2d6, - limb2: 0x6c152397ed2af5f9, - limb3: 0x0 - }, - u384 { - limb0: 0x96bfa7f73e741cfc4bab31d0, - limb1: 0x37ab0460cc1ba50393f29313, - limb2: 0x710785ba6f464b06, - limb3: 0x0 - } - ] - .span(), - b_den: array![ - u384 { - limb0: 0x23cc11574d322656c47cee39, - limb1: 0xb5d617759a31e0feaec9c138, - limb2: 0x48f9c4b67a8eae9c, - limb3: 0x0 - }, - u384 { - limb0: 0x2c9ad04dcf9080fb918e5e0, - limb1: 0x208d8792ec75709d38203ad1, - limb2: 0x647646be18ad1460, - limb3: 0x0 - }, - u384 { - limb0: 0xdb5bcdff18467c33beb22738, - limb1: 0x955ebf726cd5759ac3fe0c11, - limb2: 0x64c844f6ca0b7bc4, - limb3: 0x0 - }, - u384 { - limb0: 0xbf625cc6a3e40b2d1d3d1828, - limb1: 0x147b5cb6fd646c3a9a022714, - limb2: 0x7ae7f96d3570b7f9, - limb3: 0x0 - }, - u384 { - limb0: 0xaac470f3ab455f77b3d2d0af, - limb1: 0xfd469ccc88af74dc26fd80a4, - limb2: 0x6b961242bf1d75bb, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - }; - let derive_point_from_x_hint = DerivePointFromXHint { - y_last_attempt: u384 { - limb0: 0x8dde75daee844ddb23d3eb28, - limb1: 0x61f5b12591c14254255bb040, - limb2: 0x3efc9a5fa9221231, - limb3: 0x0 - }, - g_rhs_sqrt: array![ - u384 { - limb0: 0x38ac3353b681af9826a7847f, - limb1: 0x6bb03cf542cfa058b9510783, - limb2: 0x331271a539381b51, - limb3: 0x0 - }, - u384 { - limb0: 0x8f9f3a51824594097ff66ee1, - limb1: 0x411288e0b33c3e518ba2c8b3, - limb2: 0x2980af51bc30759d, - limb3: 0x0 - } - ] - .span(), - }; - let points = array![ - G1Point { - x: u384 { - limb0: 0x7238f02b9f20e09c2181a557, - limb1: 0x2cedcc5b0be371c337fd7e9e, - limb2: 0x41f3bbeb280fe8a2, - limb3: 0x0 - }, - y: u384 { - limb0: 0xf046f8cd6e5a75fca71dd19b, - limb1: 0x892b4613ef5c58df4ef692a4, - limb2: 0x7527fa36f5738847, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x82e4a33f8e4e5881e791d86b, - limb1: 0xbcb062435ae8ec5fdaeac4bf, - limb2: 0x179e1bae9e0f9f34, - limb3: 0x0 - }, - y: u384 { - limb0: 0x19657783ba5660e255c21849, - limb1: 0x7ed7474bcea7551fc71e46bc, - limb2: 0x596c0a76b75f4756, - limb3: 0x0 - } - }, - G1Point { - x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - }, - ] - .span(); - let scalars = array![ - u256 { low: 0x0, high: 0x0 }, - u256 { - low: 0x12e0c8b2bad640fb19488dec4f65d4d9, high: 0xa90f9c3af19922ad9b8a714e61a441c - }, - u256 { - low: 0xeb2083e6ce164dba0ff18e0242af9fc3, high: 0x2fc154703983ca8ea7e9d498c778ea6 - }, - ] - .span(); - - let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 4 - ); - assert!( - res == G1Point { - x: u384 { - limb0: 0xf7d884feff5aba51d9990dce, - limb1: 0x999f1d302046c6266257ff5, - limb2: 0x7f9caa5ee5815899, - limb3: 0x0 - }, - y: u384 { - limb0: 0x6d71279424538e87f8ecf2cc, - limb1: 0x8a8a1d74581da5996a52bbaf, - limb2: 0x29acff692eccea25, - limb3: 0x0 - } - } - ); - } - - - #[test] - fn test_msm_ED25519_4P() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - ] - .span(), - array![ - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - ] - .span(), - array![ - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - ] - .span() - ), - ] - .span() - ); - let msm_hint = MSMHint { - Q_low: G1Point { - x: u384 { - limb0: 0x4294ed9005d37292f5249462, - limb1: 0xb9dea23ee010208506806803, - limb2: 0x16031442f6384311, - limb3: 0x0 - }, - y: u384 { - limb0: 0x7fa969c45724b811994c64c0, - limb1: 0xf428138bac627a290dd35105, - limb2: 0x3da98277c2dd5c48, - limb3: 0x0 - } - }, - Q_high: G1Point { - x: u384 { - limb0: 0x87cbb10853f51a0d7e8a9269, - limb1: 0xebcb43a99df5add16574dccf, - limb2: 0x1b8613d1c8f4df23, - limb3: 0x0 - }, - y: u384 { - limb0: 0x686cbe3acd25538efa3b9366, - limb1: 0xbe1fcf5f60e8d7d953189e25, - limb2: 0x4a1d28d3efde830a, - limb3: 0x0 - } - }, - Q_high_shifted: G1Point { - x: u384 { - limb0: 0xdb595542dfeb4f13942824b7, - limb1: 0xd68b7cd8156fbe5dd6a83d78, - limb2: 0x3060395777cff710, - limb3: 0x0 - }, - y: u384 { - limb0: 0xef83f2592b0828d47429e8b5, - limb1: 0x6af76f6b2e1231c02a5b3e78, - limb2: 0x4319a9f39260d0e7, - limb3: 0x0 - } - }, - SumDlogDivLow: FunctionFelt { - a_num: array![ - u384 { - limb0: 0xc307bf571b4e6ce6bdcd1e02, - limb1: 0xf7f425fb7047f17544e695fb, - limb2: 0x3f886b1f487d5235, - limb3: 0x0 - }, - u384 { - limb0: 0x5beb71743ece3b892b8e1c4a, - limb1: 0x1a5395d5c2f0bc3b5f8be5f4, - limb2: 0x1632f5895520fee4, - limb3: 0x0 - }, - u384 { - limb0: 0x7ea3928d140ad3c292615269, - limb1: 0xffffffffffffffff9abf1052, - limb2: 0x7fffffffffffffff, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x742fe36ea5fc6718f24a7f13, - limb1: 0x68c41299b6c2e8b9945c2c1f, - limb2: 0x4aaaeb7d35995db0, - limb3: 0x0 - }, - u384 { - limb0: 0x2385cacd7da51fcac1ee6822, - limb1: 0xba41ef29f92be3b87ff49eb5, - limb2: 0x75c63204fe4ed30d, - limb3: 0x0 - }, - u384 { - limb0: 0x940340386d463d6d3b7bf8ab, - limb1: 0x97e68aa1d32a98a4580ef8f2, - limb2: 0x679d184ea7af0c19, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0x8bf065ac34f5b5c837f9e992, - limb1: 0xfdb51c2c34128c5aea907150, - limb2: 0x3145a9e408755e1f, - limb3: 0x0 - }, - u384 { - limb0: 0xc86d0ed3f6b3053cf3bbd045, - limb1: 0x9ff9e8fd11d51d7a9085ba8, - limb2: 0x15e55197cd6b0315, - limb3: 0x0 - }, - u384 { - limb0: 0xf65417ca98872bed2e5c62ab, - limb1: 0x26e3679ef2dd3528b9fa027f, - limb2: 0x2e2c31871aa5c24c, - limb3: 0x0 - }, - u384 { - limb0: 0x35ba61f3f9a729a2e9de5e25, - limb1: 0xfc0e3b6c3577c12995eb99f3, - limb2: 0x1657af36c98825a1, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { - limb0: 0x7e8ed46ce9395439f2204e7c, - limb1: 0x2c9a681ec00b85f7aedcb31b, - limb2: 0x4bfe1ba067590c20, - limb3: 0x0 - }, - u384 { - limb0: 0x55462d10f9ec47835a88f374, - limb1: 0x933ec565a24a61b62b3fd0c2, - limb2: 0x3641aac3bff8ed7e, - limb3: 0x0 - }, - u384 { - limb0: 0xf73802077074a96e97b9a66b, - limb1: 0x45591685d213485a92a8578a, - limb2: 0x2d22ced3abdaeb3d, - limb3: 0x0 - }, - u384 { - limb0: 0x3bd5d7f95e250acdc3dd8a4b, - limb1: 0xf0a7694d2609436c939d9cc1, - limb2: 0x12d0c3083fbffe1b, - limb3: 0x0 - }, - u384 { - limb0: 0x302af5c52a170159baaa7f62, - limb1: 0xebd9d0375aa7218eebad5512, - limb2: 0x5314ded8a40891f3, - limb3: 0x0 - }, - u384 { - limb0: 0x940340386d463d6d3b7bf8ab, - limb1: 0x97e68aa1d32a98a4580ef8f2, - limb2: 0x679d184ea7af0c19, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x1951f4b86eea18d761f77c56, - limb1: 0x6e75f00205f7365d3a17975d, - limb2: 0x2d12bc1deb2f5526, - limb3: 0x0 - }, - u384 { - limb0: 0xa040d07e3e7ec0e4e532e69b, - limb1: 0x82e78afaedf6af69a6e6f9e1, - limb2: 0x4b5cf8e006e1c231, - limb3: 0x0 - }, - u384 { - limb0: 0x4fd6a65321df62683fb88b63, - limb1: 0x31788d0, - limb2: 0x4000000000000000, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x984a097aee1ac47434dc064a, - limb1: 0xa8996150c1aa128efdf2ee18, - limb2: 0x78fd5382ecb640af, - limb3: 0x0 - }, - u384 { - limb0: 0xa01b3bdcb3d58b6ba9a959e6, - limb1: 0xe958f5593e7d7011e5c7c15a, - limb2: 0x24b897a5a05ea3b7, - limb3: 0x0 - }, - u384 { - limb0: 0x4ecc7cc01f2495f2b215faa4, - limb1: 0x65f9e93715450b57f91a8426, - limb2: 0x621a18bfd4f27007, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0x21cb8d8672361d002ec936c8, - limb1: 0xebf3eadf7d25254307367c6c, - limb2: 0x27f020a3b881c455, - limb3: 0x0 - }, - u384 { - limb0: 0x26d7d2fba20f68c26bb463e8, - limb1: 0xeb7882ce7727fde3d5a18427, - limb2: 0x57efb7442374f4f, - limb3: 0x0 - }, - u384 { - limb0: 0x637a17cf2eb4ed79b3577485, - limb1: 0xac9d0823ff6126501a3b6abb, - limb2: 0x9360baa0ef2e4d8, - limb3: 0x0 - }, - u384 { - limb0: 0x6a381be5ebdaec5327797e20, - limb1: 0xb8bd3c46987627a3d652f482, - limb2: 0xd41029afb8d39da, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { - limb0: 0x53f4b1f98e1c38bae061009, - limb1: 0xb1f63df1293720ed7bcf4f6b, - limb2: 0x20e8952eb5a877cb, - limb3: 0x0 - }, - u384 { - limb0: 0x29c44d569838ed5a56850f84, - limb1: 0x966b4be17054c664c283f3ab, - limb2: 0x5397afdbadc2b61e, - limb3: 0x0 - }, - u384 { - limb0: 0x59b66507b60a3705ef6f60a5, - limb1: 0xfecafccdbbcccd50938d5a47, - limb2: 0x6bebc58474a0fe78, - limb3: 0x0 - }, - u384 { - limb0: 0x723789c592d26b74ac4354a4, - limb1: 0x34c24d4fd7d5d7e156862fb0, - limb2: 0x32ec1c5a4ebd80ac, - limb3: 0x0 - }, - u384 { - limb0: 0xacc066d460476cfaa2657126, - limb1: 0x1af0d6669ff8ade8518077b7, - limb2: 0x20744794618629e, - limb3: 0x0 - }, - u384 { - limb0: 0x4ecc7cc01f2495f2b215faa4, - limb1: 0x65f9e93715450b57f91a8426, - limb2: 0x621a18bfd4f27007, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x153cfc024d7f29d6d1a3d4a8, - limb1: 0xa5847be644a046e886f14a63, - limb2: 0x71ad2ee6fc91dc48, - limb3: 0x0 - }, - u384 { - limb0: 0xd784a91a5e09d24e7c4a265c, - limb1: 0xffffffffffffffff7c074593, - limb2: 0x3fffffffffffffff, - limb3: 0x0 - } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x52ea69163c48df06093e80f, - limb1: 0xca205a065d1b50c7beb7c2c7, - limb2: 0x1772f2ba208a0515, - limb3: 0x0 - }, - u384 { - limb0: 0x9cdaf9b4cc1f96deed4d48cd, - limb1: 0x3da93f7e4c9a93d0c3e2e5b7, - limb2: 0x3419b2d6bf3b29cb, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0xf4214fe68008100fcbddf9fa, - limb1: 0x2fcad08b0ecdbbb9e29d0873, - limb2: 0x39eb42eba6665d6d, - limb3: 0x0 - }, - u384 { - limb0: 0x57c23244e63bfc1fd28b349e, - limb1: 0x6f47a0b6c1d6dcd1cdc077aa, - limb2: 0x5a7be3a42b8d091f, - limb3: 0x0 - }, - u384 { - limb0: 0xd13fb1f0e272d5df8b0a2988, - limb1: 0x13e925bfac4aa6984a20a7b0, - limb2: 0x3dde5e327d00807d, - limb3: 0x0 - } - ] - .span(), - b_den: array![ - u384 { - limb0: 0xf55f33bf84aac7f903274bb0, - limb1: 0xd4a905966dd91d942fb4d25e, - limb2: 0xb63422a03e37d4c, - limb3: 0x0 - }, - u384 { - limb0: 0xd66c5a6aa35de3418852d5f7, - limb1: 0x9bfbfd5df80e93ebdbb06b8c, - limb2: 0x576cd9e92d162b63, - limb3: 0x0 - }, - u384 { - limb0: 0xbd4cbf283474236ff2366f2e, - limb1: 0x50b4ea027f6f0bf240a846ae, - limb2: 0x76a0a9d3be8b0499, - limb3: 0x0 - }, - u384 { - limb0: 0x11d3d18910366f7f594fff3c, - limb1: 0xfbb83b13be968e9e2a707924, - limb2: 0x74c19f8dc643c3fb, - limb3: 0x0 - }, - u384 { - limb0: 0x9cdaf9b4cc1f96deed4d48cd, - limb1: 0x3da93f7e4c9a93d0c3e2e5b7, - limb2: 0x3419b2d6bf3b29cb, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - }; - let derive_point_from_x_hint = DerivePointFromXHint { - y_last_attempt: u384 { - limb0: 0xf3cdcc2cf8e98e891b8df1f0, - limb1: 0x76a1c463801af2c391cefa00, - limb2: 0x1ab08f1129580430, - limb3: 0x0 - }, - g_rhs_sqrt: array![].span(), - }; - let points = array![ - G1Point { - x: u384 { - limb0: 0x7238f02b9f20e09c2181a557, - limb1: 0x2cedcc5b0be371c337fd7e9e, - limb2: 0x41f3bbeb280fe8a2, - limb3: 0x0 - }, - y: u384 { - limb0: 0xf046f8cd6e5a75fca71dd19b, - limb1: 0x892b4613ef5c58df4ef692a4, - limb2: 0x7527fa36f5738847, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x82e4a33f8e4e5881e791d86b, - limb1: 0xbcb062435ae8ec5fdaeac4bf, - limb2: 0x179e1bae9e0f9f34, - limb3: 0x0 - }, - y: u384 { - limb0: 0x19657783ba5660e255c21849, - limb1: 0x7ed7474bcea7551fc71e46bc, - limb2: 0x596c0a76b75f4756, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0xa6832ef7fe97f77de7cd9a62, - limb1: 0xf18a70dbf1dc5a76c685da4a, - limb2: 0x6ac1b7bfc409119f, - limb3: 0x0 - }, - y: u384 { - limb0: 0x7751161b1a9ef600b865a5af, - limb1: 0xed28aad4835a39a9e8318ceb, - limb2: 0x572e95c429f0e07a, - limb3: 0x0 - } - }, - G1Point { - x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - }, - ] - .span(); - let scalars = array![ - u256 { low: 0x0, high: 0x0 }, - u256 { - low: 0xeb2083e6ce164dba0ff18e0242af9fc3, high: 0x2fc154703983ca8ea7e9d498c778ea6 - }, - u256 { - low: 0x101fbcccded733e8b421eaeb534097ca, high: 0x71832c59148624feac1c14f30e9c5cc - }, - u256 { - low: 0x247a8333f7b0b7d2cda8056c3d15eef7, high: 0x2eb3db872ae22448b0163c1cd9d2b7d - }, - ] - .span(); - - let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 4 - ); - assert!( - res == G1Point { - x: u384 { - limb0: 0xc90d60304c5ae1ed8e6a7452, - limb1: 0x9b1adf93edd9e9d89e46bb66, - limb2: 0x2354b27669ad10ec, - limb3: 0x0 - }, - y: u384 { - limb0: 0xaeb348edde7fa116aa741cc1, - limb1: 0x401b6f0f1099439b965ba00c, - limb2: 0x165e684174b4ed0b, - limb3: 0x0 - } - } - ); - } - - - #[test] - fn test_msm_ED25519_5P() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - ] - .span(), - array![ - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - ] - .span(), - array![ - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - ] - .span(), - array![ - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - ] - .span() - ), - ] - .span() - ); - let msm_hint = MSMHint { - Q_low: G1Point { - x: u384 { - limb0: 0xd8ae75a5f75447626b81c3f6, - limb1: 0x3e10b532168e1bd7cfe99b6, - limb2: 0x7c81bd019581dc3f, - limb3: 0x0 - }, - y: u384 { - limb0: 0x6a1fc61a2f643418c69d3651, - limb1: 0x7eaf126010472f1eae9fbb1b, - limb2: 0x5edbbc492ff22be, - limb3: 0x0 - } - }, - Q_high: G1Point { - x: u384 { - limb0: 0x1c02734e3f77c2306d060b09, - limb1: 0x1191057522acfef0947464d8, - limb2: 0x2c814731f4c8af68, - limb3: 0x0 - }, - y: u384 { - limb0: 0x9b062f2f58eb33d8518e6207, - limb1: 0xcb8af7baaa12b6ca2a1dcc85, - limb2: 0x2b303966e21c0fe9, - limb3: 0x0 - } - }, - Q_high_shifted: G1Point { - x: u384 { - limb0: 0xf3768594b81f68db1546f082, - limb1: 0x9ab448d1e3663577efed02e5, - limb2: 0x73bb3886dd0851a1, - limb3: 0x0 - }, - y: u384 { - limb0: 0x1f87f050380b8fdaf340c25c, - limb1: 0x4278c0ae5c10df920663268c, - limb2: 0x61cab3313da79a2d, - limb3: 0x0 - } - }, - SumDlogDivLow: FunctionFelt { - a_num: array![ - u384 { - limb0: 0xdfb7fd6b9ac44c17f0cdec71, - limb1: 0x837bf86e0b87b6ca32614515, - limb2: 0x23707396607eeb4b, - limb3: 0x0 - }, - u384 { - limb0: 0xe07e8ab501d1d60d97e3f3cb, - limb1: 0xf4fcf934495563920ff2f36c, - limb2: 0xce6851819fcba18, - limb3: 0x0 - }, - u384 { - limb0: 0x6ac7c803e2616f9f3ac72bb9, - limb1: 0x2b733031616b0b501e14c311, - limb2: 0x5bec15a9093cd91d, - limb3: 0x0 - }, - u384 { - limb0: 0xbb4eb6d3762e423501d992b5, - limb1: 0xffffffffffffffff8291550a, - limb2: 0x3fffffffffffffff, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x55f51b52d07f6af860af6ac, - limb1: 0xd83618e259bb6290c7657437, - limb2: 0x2cbbb08a60239e7, - limb3: 0x0 - }, - u384 { - limb0: 0xdb7f821c9433489aca20d52, - limb1: 0xd02956bde0c3a4b080f4f9d4, - limb2: 0xa9602bd6dc3327c, - limb3: 0x0 - }, - u384 { - limb0: 0x5b5dbf34bc9d8ae3c038c01e, - limb1: 0x9df5e089a47be42834566846, - limb2: 0x462f27acec3f688a, - limb3: 0x0 - }, - u384 { - limb0: 0x9f77e7261ea9673590a73791, - limb1: 0xa0141eadd0e5e5b9856d04ec, - limb2: 0x407606b6dfb720b8, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0xa6943e92fe6e527dfc7cc8f5, - limb1: 0x4e73623140ff2e538575620c, - limb2: 0xce36dfd1729c773, - limb3: 0x0 - }, - u384 { - limb0: 0xfe1fe510258419aa401bb3d0, - limb1: 0x371ebd974aee026767c262fa, - limb2: 0x2f69cda8c1bb59a4, - limb3: 0x0 - }, - u384 { - limb0: 0xad771b89ca1044d16396a34f, - limb1: 0xcd70d6a0bb663f118b7281b4, - limb2: 0x42c7a67adf42990e, - limb3: 0x0 - }, - u384 { - limb0: 0xa0ba7d03b58468bbe3ad0cda, - limb1: 0x15f8be2fb1eaf11277c598f8, - limb2: 0x6d4d6f4384101fa9, - limb3: 0x0 - }, - u384 { - limb0: 0x90e3f114e58149ae4f54418a, - limb1: 0x54edbea6dd8288320e8ee368, - limb2: 0x37cdab55681eacfe, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { - limb0: 0x99741b33678ac4a79247cb9, - limb1: 0x4ff99e4780417c5d02ac9b01, - limb2: 0x6365b61f5af0bfc6, - limb3: 0x0 - }, - u384 { - limb0: 0x80558044ef3d4361b6a2061d, - limb1: 0xe0a4f87cc33d9a55f9a4173d, - limb2: 0x1b947df7e9fba1a1, - limb3: 0x0 - }, - u384 { - limb0: 0xdde21121d88654b6a6357d10, - limb1: 0x546cb1759757d09dc5ffb50c, - limb2: 0x26c2c1fc5429a9f3, - limb3: 0x0 - }, - u384 { - limb0: 0x2744ad70e4f1a31ed9e7b20a, - limb1: 0xe2f08ffb5f449d05cf9b5b6c, - limb2: 0x3512aa2b78cff6c8, - limb3: 0x0 - }, - u384 { - limb0: 0xd0859ce60b3afdc80e1b8353, - limb1: 0x5f36e60d305e392f05fdb418, - limb2: 0x158864108a44a3aa, - limb3: 0x0 - }, - u384 { - limb0: 0x6802ea2c690f6c72b8f4d75e, - limb1: 0xcf8dc19705f721fea00f1ea3, - limb2: 0x237dd48091f92770, - limb3: 0x0 - }, - u384 { - limb0: 0x9f77e7261ea9673590a73791, - limb1: 0xa0141eadd0e5e5b9856d04ec, - limb2: 0x407606b6dfb720b8, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { - limb0: 0xffb9cd5fc377c405b9719b11, - limb1: 0x50707d76f1fb904f3a0018bd, - limb2: 0x3377a9aec6043c35, - limb3: 0x0 - }, - u384 { - limb0: 0xce3d7ad791abc37b6cbeb503, - limb1: 0xc7e51e42c67ce14df4defcb7, - limb2: 0x6d1d70486a3b7cbc, - limb3: 0x0 - }, - u384 { - limb0: 0xcf3dc0bc6ea03a958e7a1984, - limb1: 0x57cc4394cedd772aec6dfe96, - limb2: 0x4e7720936e5764ed, - limb3: 0x0 - }, - u384 { - limb0: 0xd8fcd5fcb33319f5b7958b24, limb1: 0x7f7cc71, limb2: 0x0, limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x89c01dd0df8e059236582060, - limb1: 0x56a657a577491caa727c1bca, - limb2: 0x624c57b9fea9402c, - limb3: 0x0 - }, - u384 { - limb0: 0xaebb1570fdda3b3033c69f0e, - limb1: 0x293494f840f900884b1f6a27, - limb2: 0x2095a7ff3dea6ef3, - limb3: 0x0 - }, - u384 { - limb0: 0x504bb6cfa661a56794e0a061, - limb1: 0x98f5f3a7b27f289166b19945, - limb2: 0x7d61f890f5955a, - limb3: 0x0 - }, - u384 { - limb0: 0x5c23e97dd685ec678f22f091, - limb1: 0x9264248bcfa1c8866df739cb, - limb2: 0x10767c8680704d8f, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0x4dcdd0e0a01ef5541579ae24, - limb1: 0xfe183fde4153241ec1d37b57, - limb2: 0x6d167db7940dee5c, - limb3: 0x0 - }, - u384 { - limb0: 0xc3ded7fbe0b142a18884fb4f, - limb1: 0xbed363336bf451fe10a4bf32, - limb2: 0x638367b1393bb7f9, - limb3: 0x0 - }, - u384 { - limb0: 0xdd823c707e8a25da40d8130c, - limb1: 0xa60f704fa175e3d3b5f8cd60, - limb2: 0x4654ff8dbef76a5d, - limb3: 0x0 - }, - u384 { - limb0: 0x4f9d270e5d932af5d848f64b, - limb1: 0xfb9134dccdfb5033335afcfa, - limb2: 0x1dc0c68f412a8259, - limb3: 0x0 - }, - u384 { - limb0: 0xc2cd1fdcc3600ecf3c6b7bfe, - limb1: 0x6641ca95c5c6aec92f4360c4, - limb2: 0x5b457ac9dda4bf01, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { - limb0: 0x344a12999eb7007ad8f6ee2d, - limb1: 0xf5a0f37f18c4a1fee693c442, - limb2: 0x4691495a8cc5cfa2, - limb3: 0x0 - }, - u384 { - limb0: 0x8bb2de9208d2d796438ac8ed, - limb1: 0x5481c0f699739a3efcf58350, - limb2: 0x3a7ecb896ad17523, - limb3: 0x0 - }, - u384 { - limb0: 0xac3b8a8d72386e28f03db62c, - limb1: 0xd560d23143c39711b1e982e2, - limb2: 0x22badde1fc60c026, - limb3: 0x0 - }, - u384 { - limb0: 0x148e75626f3606e84063aff7, - limb1: 0x7069e05e312e5383d7c02629, - limb2: 0x7f0bdb4fe2b62ebe, - limb3: 0x0 - }, - u384 { - limb0: 0x632a335098e6fb24dc9f0df7, - limb1: 0x3e30b9c531df86e08efb9ace, - limb2: 0x7552101fb2c4d318, - limb3: 0x0 - }, - u384 { - limb0: 0x5cf0e1c752d386f68d9cb78e, - limb1: 0xca8dd4b513fa6667d26a4fa2, - limb2: 0x5dcc0ecc36af5440, - limb3: 0x0 - }, - u384 { - limb0: 0x5c23e97dd685ec678f22f091, - limb1: 0x9264248bcfa1c8866df739cb, - limb2: 0x10767c8680704d8f, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ - u384 { - limb0: 0xe850851a82556245c254fc8c, - limb1: 0x3dee6c51169687586aac810e, - limb2: 0x60349da7065df93c, - limb3: 0x0 - }, - u384 { - limb0: 0xd784a91a5e09d24e7c4a265c, - limb1: 0xffffffffffffffff7c074593, - limb2: 0x3fffffffffffffff, - limb3: 0x0 - } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x9a21ce26b43c473ebfc21e94, - limb1: 0xc64113136e94539f3e0a1630, - limb2: 0x4e96885686b9bcad, - limb3: 0x0 - }, - u384 { - limb0: 0xf087071d0868d4f47db3044f, - limb1: 0x53bab1b8f9eccb977b9e9841, - limb2: 0x5fc380472e2efef6, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0x1403a622ffc78cb1f85e0363, - limb1: 0x77e97cd4620d8e6f14fbdccf, - limb2: 0x6ba0b1c411a2d023, - limb3: 0x0 - }, - u384 { - limb0: 0x5a36b41a534f4bd7141d3d44, - limb1: 0xd9adc57b01c017c43bbe44f, - limb2: 0x11dd216a0085488d, - limb3: 0x0 - }, - u384 { - limb0: 0x9f6653e8d825cc516aca37d, - limb1: 0x4c99d77d62ed9b3e3d461c5e, - limb2: 0x1e8d4bb3e383e407, - limb3: 0x0 - } - ] - .span(), - b_den: array![ - u384 { - limb0: 0xd0eb867060b588aa69795883, - limb1: 0x351cfc401c591c17c79b316a, - limb2: 0x73f5b27c35829345, - limb3: 0x0 - }, - u384 { - limb0: 0x7cea9f0bf533b4ba552bec31, - limb1: 0x2908aef9faf9f964ab94dc79, - limb2: 0x1ad9cfb292a1e039, - limb3: 0x0 - }, - u384 { - limb0: 0xe7b97291cebd71bac61202f0, - limb1: 0x26aa92094c2f1efc4efd3bd2, - limb2: 0x60faa6c67bb6d753, - limb3: 0x0 - }, - u384 { - limb0: 0xa6c6f91e60ae28cdb87e35d4, - limb1: 0xf7d8f420d00f9175a9c2cc8d, - limb2: 0x2be5352a2c737b93, - limb3: 0x0 - }, - u384 { - limb0: 0xf087071d0868d4f47db3044f, - limb1: 0x53bab1b8f9eccb977b9e9841, - limb2: 0x5fc380472e2efef6, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - }; - let derive_point_from_x_hint = DerivePointFromXHint { - y_last_attempt: u384 { - limb0: 0xe063711c3449cbd3b144b393, - limb1: 0xea8781da231d3004ec5fd30f, - limb2: 0x3865182dc9e9b24, - limb3: 0x0 - }, - g_rhs_sqrt: array![].span(), - }; - let points = array![ - G1Point { - x: u384 { - limb0: 0x7238f02b9f20e09c2181a557, - limb1: 0x2cedcc5b0be371c337fd7e9e, - limb2: 0x41f3bbeb280fe8a2, - limb3: 0x0 - }, - y: u384 { - limb0: 0xf046f8cd6e5a75fca71dd19b, - limb1: 0x892b4613ef5c58df4ef692a4, - limb2: 0x7527fa36f5738847, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x82e4a33f8e4e5881e791d86b, - limb1: 0xbcb062435ae8ec5fdaeac4bf, - limb2: 0x179e1bae9e0f9f34, - limb3: 0x0 - }, - y: u384 { - limb0: 0x19657783ba5660e255c21849, - limb1: 0x7ed7474bcea7551fc71e46bc, - limb2: 0x596c0a76b75f4756, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0xa6832ef7fe97f77de7cd9a62, - limb1: 0xf18a70dbf1dc5a76c685da4a, - limb2: 0x6ac1b7bfc409119f, - limb3: 0x0 - }, - y: u384 { - limb0: 0x7751161b1a9ef600b865a5af, - limb1: 0xed28aad4835a39a9e8318ceb, - limb2: 0x572e95c429f0e07a, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x5e71d0fc5d1c016834779173, - limb1: 0xadd002dfc0ebf1b25c23c252, - limb2: 0x40a868d928ae5233, - limb3: 0x0 - }, - y: u384 { - limb0: 0x423fa293418d6e3f59c2e830, - limb1: 0x7a4bcf26f93e71ffd903e68e, - limb2: 0x7837b851ad8da6e3, - limb3: 0x0 - } - }, - G1Point { - x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - }, - ] - .span(); - let scalars = array![ - u256 { low: 0x0, high: 0x0 }, - u256 { - low: 0x101fbcccded733e8b421eaeb534097ca, high: 0x71832c59148624feac1c14f30e9c5cc - }, - u256 { - low: 0x247a8333f7b0b7d2cda8056c3d15eef7, high: 0x2eb3db872ae22448b0163c1cd9d2b7d - }, - u256 { - low: 0xe005b86051ef1922fe43c49e149818d1, high: 0xfa83cc0eece328bff7b118e820865d6 - }, - u256 { - low: 0x4a84eb038d1fd9b74d2b9deb1beb3711, high: 0xaa5e4678c25166a1ff39849b4e1357d - }, - ] - .span(); - - let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 4 - ); - assert!( - res == G1Point { - x: u384 { - limb0: 0x1cf2f48266e02f5ec0d11030, - limb1: 0x7c5d82e43942455bcdcb6ca8, - limb2: 0x4d4941e688840ace, - limb3: 0x0 - }, - y: u384 { - limb0: 0x5824e8e337b658fe978aee31, - limb1: 0xca62074dddb2bf1bb403fbe5, - limb2: 0x11e9e451d9fd1250, - limb3: 0x0 - } - } - ); - } - - - #[test] - fn test_msm_ED25519_6P() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - ] - .span(), - array![ - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - ] - .span(), - array![ - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - ] - .span(), - array![ - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - ] - .span() - ), - ] - .span() - ); - let msm_hint = MSMHint { - Q_low: G1Point { - x: u384 { - limb0: 0x5986f17a16f6def51f452c42, - limb1: 0x93ea79786c6f6de252e6d9b2, - limb2: 0x1e5371d9b49914b8, - limb3: 0x0 - }, - y: u384 { - limb0: 0x934193d505802165190fe406, - limb1: 0x63a1b4fc277304aff4c940d0, - limb2: 0x4e85040e1860570f, - limb3: 0x0 - } - }, - Q_high: G1Point { - x: u384 { - limb0: 0x662cfa629575adbfa6655df5, - limb1: 0x680591a7df3164c0b941f9d1, - limb2: 0x6136db9438d5284f, - limb3: 0x0 - }, - y: u384 { - limb0: 0x4aa0b6379d88f1292d6bf1a0, - limb1: 0xe233845133099bd97e9f3e86, - limb2: 0x11826a193b4a036f, - limb3: 0x0 - } - }, - Q_high_shifted: G1Point { - x: u384 { - limb0: 0xf6c35215fee91367b121064b, - limb1: 0x82c9addae2186dc3d7fee5ff, - limb2: 0x61268d5eae1991a7, - limb3: 0x0 - }, - y: u384 { - limb0: 0x73b9600c48dad4673450a8fc, - limb1: 0x803467cfaf505c6a2a3170e6, - limb2: 0x583cfc90fa202773, - limb3: 0x0 - } - }, - SumDlogDivLow: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x7e2bd592977aedef656a1133, - limb1: 0xa12e1df83b9017d3d99f5d53, - limb2: 0x14645f8d03385161, - limb3: 0x0 - }, - u384 { - limb0: 0x4ebaa3e4d0aa25ddb45062e8, - limb1: 0xfb571d52716a83451e6c1c1e, - limb2: 0x3a156e68d9219694, - limb3: 0x0 - }, - u384 { - limb0: 0xc16146014d9c73b7e915b28f, - limb1: 0xe3e66a6a3ef6553773f92fea, - limb2: 0x60c5cb79ec55018c, - limb3: 0x0 - }, - u384 { - limb0: 0x106f6dfeb6c0d3faaddc9ce8, - limb1: 0x6d7d9a2ed89cd73074a47e07, - limb2: 0x5326861606f312a5, - limb3: 0x0 - }, - u384 { - limb0: 0x640c153a96062cf82d4af17d, - limb1: 0xffffffffffffffff97d6f55b, - limb2: 0x3fffffffffffffff, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x7079e66527ee2d3af8650d9e, - limb1: 0xa93b656190017b615d48e5f5, - limb2: 0x512cae4fd76948b6, - limb3: 0x0 - }, - u384 { - limb0: 0x66848bb9606bb933e5eca2a0, - limb1: 0xb59b989e45864aa5bac019e, - limb2: 0x78dcdaeca6f462f7, - limb3: 0x0 - }, - u384 { - limb0: 0xf7f150372c34ff6d8337c9e1, - limb1: 0xb47f284bb4a8116b0c4ac812, - limb2: 0x1fa631f20e542417, - limb3: 0x0 - }, - u384 { - limb0: 0x6244db90445b7f5d06f4c36b, - limb1: 0x6cc827a26340f0d62d91e841, - limb2: 0x13d579c8d1d56b3f, - limb3: 0x0 - }, - u384 { - limb0: 0xc59862d2707881f5ffe03bd4, - limb1: 0x4c79ce814a90f4dac1a46de3, - limb2: 0x33a0b7592a70d2aa, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0x8337c9216243400a376b6cde, - limb1: 0x9f4cbed9721804c9d191c114, - limb2: 0x157ba9e04870bbd5, - limb3: 0x0 - }, - u384 { - limb0: 0x4838a6339665602631ec7b5f, - limb1: 0x297f6e2856945660305c2b4d, - limb2: 0x8eacc1a8cd3fe7, - limb3: 0x0 - }, - u384 { - limb0: 0x803c43e191f4b3e8e4791805, - limb1: 0x4801b0b17dbfaa5349348da8, - limb2: 0x5b73d4e28a060037, - limb3: 0x0 - }, - u384 { - limb0: 0xe2c13ee5b5031e741c9fc9b4, - limb1: 0xa6f0061b2ea0208210ca2d4f, - limb2: 0x186caaaace149d25, - limb3: 0x0 - }, - u384 { - limb0: 0xbf8b90a7751563c081e43b94, - limb1: 0xfe8fb3a2a60d56484d9505f3, - limb2: 0x97c25602d493536, - limb3: 0x0 - }, - u384 { - limb0: 0xf4a14c3ac4f439998500abc2, - limb1: 0x45f7b40ddf22fdbd67466728, - limb2: 0xb3488d73a56af09, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { - limb0: 0xa942d9dbf1c442519a2db509, - limb1: 0xe44ece4932d26805ca7fa4d6, - limb2: 0x6644b575bc6b601d, - limb3: 0x0 - }, - u384 { - limb0: 0xe0e3d02cfe05d29c3a7e1455, - limb1: 0xd759ac935d906d8fdea18f7c, - limb2: 0x531cf47e00928a61, - limb3: 0x0 - }, - u384 { - limb0: 0xe5b2507f7c0d5947178a4eca, - limb1: 0x178a15950edd953b59d6e192, - limb2: 0x347869fa3a8f9493, - limb3: 0x0 - }, - u384 { - limb0: 0xb7828a399782b63b38c173db, - limb1: 0x1a0a0fa051b33056fcfbe1c5, - limb2: 0x1bfc2d0b8cace5fd, - limb3: 0x0 - }, - u384 { - limb0: 0x8eaf4b17746395de004fe920, - limb1: 0x655134874ebe11181b035d4b, - limb2: 0x39b446d87a64b352, - limb3: 0x0 - }, - u384 { - limb0: 0x5e7ee436e12003a1d18a58d8, - limb1: 0x432c4871a9fcc9fa882f6cda, - limb2: 0x20bdb2861dc6e928, - limb3: 0x0 - }, - u384 { - limb0: 0x6eea0687f0cd60ebffb0da98, - limb1: 0x9e6008afc4bc2eac994a9e9e, - limb2: 0x7124269c778f2a25, - limb3: 0x0 - }, - u384 { - limb0: 0xc59862d2707881f5ffe03bd4, - limb1: 0x4c79ce814a90f4dac1a46de3, - limb2: 0x33a0b7592a70d2aa, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x5163c5f7520e3d19d5cadbe4, - limb1: 0x4d3e8d9f8ba3467e703a4ad2, - limb2: 0x5e7fc49c099336f5, - limb3: 0x0 - }, - u384 { - limb0: 0x9b17ff07b2cfdcf8a10032e5, - limb1: 0x126dbeedb0ed9498f42fcf05, - limb2: 0x1263ec0db72310e8, - limb3: 0x0 - }, - u384 { - limb0: 0x4803c12586c01dcb47224a47, - limb1: 0xae4c6a8b3e71377c9ce82d2, - limb2: 0x4100aa4e9721e4fc, - limb3: 0x0 - }, - u384 { - limb0: 0x86f085b27e8de489618880c2, - limb1: 0xb50de5729396517f561fca26, - limb2: 0x193122d03de4031d, - limb3: 0x0 - }, - u384 { - limb0: 0x8cc49a39d5390b770833d697, limb1: 0xea916a1, limb2: 0x0, limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x5f813967bedc616c36771d98, - limb1: 0x33fb4ed590733d9b37d25129, - limb2: 0x7c20cb0c5b7eeec5, - limb3: 0x0 - }, - u384 { - limb0: 0x1d6962de91834f622a0fd7eb, - limb1: 0x2e63e230c7c99bea0185874c, - limb2: 0xd54e44f428b5bb1, - limb3: 0x0 - }, - u384 { - limb0: 0x3a2c707c7074cd1592a22958, - limb1: 0x14e818dc73e38aa01fb0bd65, - limb2: 0x5cae1884d060d6db, - limb3: 0x0 - }, - u384 { - limb0: 0x9ec31b9c0b2176211be6ee, - limb1: 0x48c331f6a77a60f465a12546, - limb2: 0x7586e41c261fe5e7, - limb3: 0x0 - }, - u384 { - limb0: 0xb8f259e9f1f9b32b78c00a0e, - limb1: 0x785eb651d7cefdfc5b494dc4, - limb2: 0x70bd4d9ea634bf13, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0xb2dc54941de2ab09fe9bb7dd, - limb1: 0x3b39b2440672c92b5d85dcb, - limb2: 0x6d4aeeee01ec2e92, - limb3: 0x0 - }, - u384 { - limb0: 0xbf26658a7c3305de70c3591f, - limb1: 0x8df2c590779a01d05236019b, - limb2: 0x14af0d9c2f39a151, - limb3: 0x0 - }, - u384 { - limb0: 0xdef0cc1ca7c25dfc003ee2c8, - limb1: 0xc42ae55a181ffccd754e2710, - limb2: 0x46602646228d15d8, - limb3: 0x0 - }, - u384 { - limb0: 0x5ce96b19308dcebbb1234f0e, - limb1: 0x9479da87e7a1246e12da02b2, - limb2: 0x78b4efdfb0d34be9, - limb3: 0x0 - }, - u384 { - limb0: 0x475f48eb8c32d692c7583b9a, - limb1: 0x5ee058fe553275aa3f38f9ac, - limb2: 0x7a855f3cb677dbd4, - limb3: 0x0 - }, - u384 { - limb0: 0x98113588a704bdc4af53d43, - limb1: 0x9e8151595be60eb936a7f45e, - limb2: 0x2908a4523a7f5032, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { - limb0: 0xf678b084e3aab48f06d3153c, - limb1: 0xf1168d0c889aee88c1c00901, - limb2: 0x57994bc3e8aa8bc7, - limb3: 0x0 - }, - u384 { - limb0: 0xf7eff09666e7d32689aff81c, - limb1: 0xd976b8e917530d241a79e9f7, - limb2: 0x637157b406851197, - limb3: 0x0 - }, - u384 { - limb0: 0xb6c868a0294513f81f60625b, - limb1: 0xba4c40b52ec0914b91388727, - limb2: 0x6adb2f091304f3e, - limb3: 0x0 - }, - u384 { - limb0: 0x3d22b157c9fb1fb84be8be05, - limb1: 0x418396c0a407519a5ea8bb1c, - limb2: 0x3aba12ebd5aa199d, - limb3: 0x0 - }, - u384 { - limb0: 0x98365d811512abfb9d7b9da, - limb1: 0x5a7f83c7dfcb14b6a607e9e4, - limb2: 0x6e08a6d388f7de81, - limb3: 0x0 - }, - u384 { - limb0: 0x3810b3e61b4c33c1d131a6c4, - limb1: 0x7ff83ce8dbe3c24d1be2b030, - limb2: 0x7e06e74869ebee84, - limb3: 0x0 - }, - u384 { - limb0: 0xd43ee13487d030519d7fe2e, - limb1: 0x7a5b130408f59ecad159dba3, - limb2: 0x52d590efcbd9a4cd, - limb3: 0x0 - }, - u384 { - limb0: 0xb8f259e9f1f9b32b78c00a0e, - limb1: 0x785eb651d7cefdfc5b494dc4, - limb2: 0x70bd4d9ea634bf13, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x50d40019f6f7c09427874669, - limb1: 0xc4c131809a45a1e238a4efd4, - limb2: 0x4eb80c7f2fe02ced, - limb3: 0x0 - }, - u384 { - limb0: 0xd784a91a5e09d24e7c4a265c, - limb1: 0xffffffffffffffff7c074593, - limb2: 0x3fffffffffffffff, - limb3: 0x0 - } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x2c9c9c0dbe8ca0a7af2bfe58, - limb1: 0xd4335a00cf638d9e0c3ac2fe, - limb2: 0x3bf257e35180cf8b, - limb3: 0x0 - }, - u384 { - limb0: 0xa30fb3876ba13ed8a8799b9a, - limb1: 0x1530c07d3eb62d7b6ebf202e, - limb2: 0x3da2970d19114609, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0x758165b2c9bb85db0b7d6f, - limb1: 0x2a12a4b80d96bdda075fdbeb, - limb2: 0x416951e1e86d7902, - limb3: 0x0 - }, - u384 { - limb0: 0xf6d6efdd8844541a907d1f8d, - limb1: 0xeb673e82787a86248576d42c, - limb2: 0x4c688e1c6e9c71fc, - limb3: 0x0 - }, - u384 { - limb0: 0x1f8abf4f1f1e403d3da9d4e4, - limb1: 0xc724714d5aaf097c72f6f2c7, - limb2: 0x32763e2777aa5580, - limb3: 0x0 - } - ] - .span(), - b_den: array![ - u384 { - limb0: 0x348ba1275034c76f5705f112, - limb1: 0x4f846054071142b2ff67ad93, - limb2: 0x61f3351b748c9e02, - limb3: 0x0 - }, - u384 { - limb0: 0xf9167334ae26ea764a7f9ea6, - limb1: 0x41cb4c308a96b04fc7da93, - limb2: 0x6d175c890cfa1a7a, - limb3: 0x0 - }, - u384 { - limb0: 0x33e7ca0c29f19a2c8b900712, - limb1: 0x604872ec0cdcffcc033d2561, - limb2: 0x1209b4fccd02c779, - limb3: 0x0 - }, - u384 { - limb0: 0x3941c7056afe8236a7e81598, - limb1: 0x5cb3b0e30decb7477f3795b, - limb2: 0x194104b6f73a8e72, - limb3: 0x0 - }, - u384 { - limb0: 0xa30fb3876ba13ed8a8799b9a, - limb1: 0x1530c07d3eb62d7b6ebf202e, - limb2: 0x3da2970d19114609, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - }; - let derive_point_from_x_hint = DerivePointFromXHint { - y_last_attempt: u384 { - limb0: 0xbb6d43e5fcba8facb6a8661, - limb1: 0xa186f22bbbabb7c6cd819702, - limb2: 0x324bbab4008bbe74, - limb3: 0x0 - }, - g_rhs_sqrt: array![].span(), - }; - let points = array![ - G1Point { - x: u384 { - limb0: 0x7238f02b9f20e09c2181a557, - limb1: 0x2cedcc5b0be371c337fd7e9e, - limb2: 0x41f3bbeb280fe8a2, - limb3: 0x0 - }, - y: u384 { - limb0: 0xf046f8cd6e5a75fca71dd19b, - limb1: 0x892b4613ef5c58df4ef692a4, - limb2: 0x7527fa36f5738847, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x82e4a33f8e4e5881e791d86b, - limb1: 0xbcb062435ae8ec5fdaeac4bf, - limb2: 0x179e1bae9e0f9f34, - limb3: 0x0 - }, - y: u384 { - limb0: 0x19657783ba5660e255c21849, - limb1: 0x7ed7474bcea7551fc71e46bc, - limb2: 0x596c0a76b75f4756, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0xa6832ef7fe97f77de7cd9a62, - limb1: 0xf18a70dbf1dc5a76c685da4a, - limb2: 0x6ac1b7bfc409119f, - limb3: 0x0 - }, - y: u384 { - limb0: 0x7751161b1a9ef600b865a5af, - limb1: 0xed28aad4835a39a9e8318ceb, - limb2: 0x572e95c429f0e07a, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x5e71d0fc5d1c016834779173, - limb1: 0xadd002dfc0ebf1b25c23c252, - limb2: 0x40a868d928ae5233, - limb3: 0x0 - }, - y: u384 { - limb0: 0x423fa293418d6e3f59c2e830, - limb1: 0x7a4bcf26f93e71ffd903e68e, - limb2: 0x7837b851ad8da6e3, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x5907087f8e8e4dacdd039371, - limb1: 0xc390e2073b4e64b9ede0570d, - limb2: 0x6b039a85962f1594, - limb3: 0x0 - }, - y: u384 { - limb0: 0xc45eefa03155b8f7eb780b42, - limb1: 0x3db57eb22f9b0394a4d7b78e, - limb2: 0x6cf45b6d90883f60, - limb3: 0x0 - } - }, - G1Point { - x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - }, - ] - .span(); - let scalars = array![ - u256 { low: 0x0, high: 0x0 }, - u256 { - low: 0x247a8333f7b0b7d2cda8056c3d15eef7, high: 0x2eb3db872ae22448b0163c1cd9d2b7d - }, - u256 { - low: 0xe005b86051ef1922fe43c49e149818d1, high: 0xfa83cc0eece328bff7b118e820865d6 - }, - u256 { - low: 0x4a84eb038d1fd9b74d2b9deb1beb3711, high: 0xaa5e4678c25166a1ff39849b4e1357d - }, - u256 { - low: 0x1775336d71eacd0549a3e80e966e1277, high: 0xa253f6f6288e1a5cc45782198a6416d - }, - u256 { - low: 0x2f1205544a5308cc3dfabc08935ddd72, high: 0x10e1c2b2fcd81b5d24bace4307bf326 - }, - ] - .span(); - - let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 4 - ); - assert!( - res == G1Point { - x: u384 { - limb0: 0x1a8f815b2f82dad6f7df7c48, - limb1: 0x2ee28d54254965ffacb2d83b, - limb2: 0x4e3eea84120a57eb, - limb3: 0x0 - }, - y: u384 { - limb0: 0x1a94bc7be303e9af9328252e, - limb1: 0xc4f48080d14eed8ad7b35af9, - limb2: 0x4550a67984345bce, - limb3: 0x0 - } - } - ); - } - - - #[test] - fn test_msm_ED25519_7P() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - ] - .span(), - array![ - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - ] - .span(), - array![ - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - ] - .span(), - array![ - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - ] - .span(), - array![ - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - ] - .span() - ), - ] - .span() - ); - let msm_hint = MSMHint { - Q_low: G1Point { - x: u384 { - limb0: 0xa1d997a69406639e8728e0a6, - limb1: 0x1db446ccee403b6152085b98, - limb2: 0x7e137bffce8617a3, - limb3: 0x0 - }, - y: u384 { - limb0: 0xa6df1f3d191e093c4afa7d13, - limb1: 0x8a90d87c178d09bb2e367079, - limb2: 0x6c77af5eafe002b0, - limb3: 0x0 - } - }, - Q_high: G1Point { - x: u384 { - limb0: 0x144f9944d5feb09e0e8b7b3f, - limb1: 0x4588df50eb6dcc135cf66009, - limb2: 0x32375872c21acaf6, - limb3: 0x0 - }, - y: u384 { - limb0: 0xa2c0a52be330439733bc6a2f, - limb1: 0x94a788675b167f35fa482fef, - limb2: 0x350cd722cfe5ca4a, - limb3: 0x0 - } - }, - Q_high_shifted: G1Point { - x: u384 { - limb0: 0xef690aa95d752d1af68f0d2f, - limb1: 0xe337ff976a1611094d9e6d1, - limb2: 0x94502fc01567f8a, - limb3: 0x0 - }, - y: u384 { - limb0: 0x8e2bd4690a99ffec674b087f, - limb1: 0x4033e824c47d741dfae01a6e, - limb2: 0x5de3a0edb6a6c89e, - limb3: 0x0 - } - }, - SumDlogDivLow: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x7a73e1a9cbf5236fe9f64cfc, - limb1: 0xa26cc2fc2ac0c2053c09ddf9, - limb2: 0x15c7ba16d6db5139, - limb3: 0x0 - }, - u384 { - limb0: 0x6689523a244ad4910c937241, - limb1: 0x5bc8744a6e19cf91665e8fcc, - limb2: 0x737f8b9706a35329, - limb3: 0x0 - }, - u384 { - limb0: 0xa1ccc03f5e0bc7065833461e, - limb1: 0x1182eec14e8474598e3471bc, - limb2: 0xb60318d1119364a, - limb3: 0x0 - }, - u384 { - limb0: 0xc2a5918617d038731890680f, - limb1: 0x597caf645308e4e20daaec31, - limb2: 0x1d9f4667364e398f, - limb3: 0x0 - }, - u384 { - limb0: 0x901f2295ede4bc845b94ae3a, - limb1: 0x582491267bd3b7c416a34166, - limb2: 0x135638bc50984baa, - limb3: 0x0 - }, - u384 { - limb0: 0xd84233d6c2e9fd840830b0d6, - limb1: 0xffffffffffffffff8ac61d9b, - limb2: 0x7fffffffffffffff, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x4fa6eac9ae5f2ab88e52c337, - limb1: 0xae2e175abb2ef88a1028c387, - limb2: 0x1652ae88a4c38a71, - limb3: 0x0 - }, - u384 { - limb0: 0x564bc65038dfc4c783ed4a02, - limb1: 0x5f2f23053955dccc720c4761, - limb2: 0x33b8f925493e4b1a, - limb3: 0x0 - }, - u384 { - limb0: 0xed5c5c245b714879e35ecf2f, - limb1: 0x1a9973a170a82e8c38883e5b, - limb2: 0x390a55b200c896f0, - limb3: 0x0 - }, - u384 { - limb0: 0xd602e2aedb101f1db2c62c9c, - limb1: 0xb3bef16635f9c0259d73f5aa, - limb2: 0x6e9707277564e33d, - limb3: 0x0 - }, - u384 { - limb0: 0x2464d26846e76373dba2d231, - limb1: 0x17156e9e205087074db785fc, - limb2: 0x7d2eb26e3dde67b, - limb3: 0x0 - }, - u384 { - limb0: 0x1c682dd54d5447b59cc49c3e, - limb1: 0x16f661f5acdc0934d6555db2, - limb2: 0x3b61dfc04c74ba22, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0xff4bad42f169078ba4a03c04, - limb1: 0x41f9af7161bfba2bef7eea44, - limb2: 0x2281db737bf8963b, - limb3: 0x0 - }, - u384 { - limb0: 0x5247019db31a17a51c7def5a, - limb1: 0xd73e11d4e3c2f4fbf9af9d83, - limb2: 0x3ad5909ae1f6e7c1, - limb3: 0x0 - }, - u384 { - limb0: 0x89cc67d339cbe52455b82f15, - limb1: 0x51fe53fc0588a1e9c54ea8cc, - limb2: 0x2ca9a26097a184d9, - limb3: 0x0 - }, - u384 { - limb0: 0xc92124db2f93137ee342e821, - limb1: 0xdafb3d32cd3e56fa0e4b3761, - limb2: 0x8b1a2d5a3d586eb, - limb3: 0x0 - }, - u384 { - limb0: 0xbc0a3742cf94921f693addd6, - limb1: 0x73c8239f06e79dc906ce8413, - limb2: 0x42cf75d5b38ea4c8, - limb3: 0x0 - }, - u384 { - limb0: 0x50ea0c36e1d930c320377097, - limb1: 0x711620a782e025079ff82bcc, - limb2: 0x29edb5ce50ba2403, - limb3: 0x0 - }, - u384 { - limb0: 0x20041c2d41f61b5908b709ad, - limb1: 0x5bcbcafe9acce6a4a8306722, - limb2: 0x733e8f12fe505a4e, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { - limb0: 0x68abd270351608e22cf9c575, - limb1: 0x6bf5578f0b6a8eb85dfb6951, - limb2: 0x5a37269d925b04f8, - limb3: 0x0 - }, - u384 { - limb0: 0x615b072ef8f5a54b9a956a9e, - limb1: 0x60fabef915f7646692b9469, - limb2: 0xd3a652d3ede82c7, - limb3: 0x0 - }, - u384 { - limb0: 0x8ccf5474c5f003c333a05271, - limb1: 0x2ce6149b56ceea809d563191, - limb2: 0xe33b663044a0d1d, - limb3: 0x0 - }, - u384 { - limb0: 0x4775d934faa3f1c960210d9c, - limb1: 0x433013828c1723c6a17d9c88, - limb2: 0x5429dfb8627dbabd, - limb3: 0x0 - }, - u384 { - limb0: 0xf7d49d1a8913b832813e9c61, - limb1: 0x4817518f4a5cff1fa9c902ca, - limb2: 0x25c29e7529a5e782, - limb3: 0x0 - }, - u384 { - limb0: 0x600fc84c05d284e149b89c6f, - limb1: 0x142416d8220b3359cc5b0c06, - limb2: 0x6baf07115c155cba, - limb3: 0x0 - }, - u384 { - limb0: 0x2ad2731e18b013c60c1730da, - limb1: 0xe977cb59dbf14543304650b7, - limb2: 0xc2c54ffe9f0376a, - limb3: 0x0 - }, - u384 { - limb0: 0x3109fd5ff3594502d45ee95e, - limb1: 0x48ad4fab81cbc4ddb9703c59, - limb2: 0x652197fa8997a561, - limb3: 0x0 - }, - u384 { - limb0: 0x1c682dd54d5447b59cc49c3e, - limb1: 0x16f661f5acdc0934d6555db2, - limb2: 0x3b61dfc04c74ba22, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x62857293bf2346b225113867, - limb1: 0x2bb15672f5c5482227de52e0, - limb2: 0x340c944848e33b61, - limb3: 0x0 - }, - u384 { - limb0: 0xfd02df8010b2b8851b638ee5, - limb1: 0xb9a6443a9b7fc4fc785c55e9, - limb2: 0x439c41753f3e976b, - limb3: 0x0 - }, - u384 { - limb0: 0x493f8ed3f227369d7eaa3b0b, - limb1: 0x18ea7cc0f99e408dc3957104, - limb2: 0x41a370537425815e, - limb3: 0x0 - }, - u384 { - limb0: 0x709aae236f15ad469bebd65, - limb1: 0xe960968fc10ae60353b705ea, - limb2: 0x4311dba5216aa6e6, - limb3: 0x0 - }, - u384 { - limb0: 0xc568bcc220a736e40d2ad660, - limb1: 0x1a83b51190765989e266b0d5, - limb2: 0x2e2441cb558d7c7e, - limb3: 0x0 - }, - u384 { - limb0: 0xd3dfc70be898456b32b61d07, - limb1: 0xf334587, - limb2: 0x4000000000000000, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x64ea5e137d954dd37caa0f73, - limb1: 0x53b8e6e4161dff5d76ec3762, - limb2: 0xd708a58ebb871d5, - limb3: 0x0 - }, - u384 { - limb0: 0x3b9bdba3b9f570d31713f039, - limb1: 0x4627c509860eba083dc9aa28, - limb2: 0x7a3ce6746f0eb7dd, - limb3: 0x0 - }, - u384 { - limb0: 0xebdbd1972e4b0e000fa88a5c, - limb1: 0x752749b7190381d2f8b95403, - limb2: 0x8194d12cf4fec79, - limb3: 0x0 - }, - u384 { - limb0: 0x6e473ebd356ab03ac824480a, - limb1: 0xd8f3f9bd60bd353b0ab74425, - limb2: 0x27bfab468278993c, - limb3: 0x0 - }, - u384 { - limb0: 0xc52a4fb0596ce40e3ae16ae1, - limb1: 0x3881143b4695de2701e6a3c3, - limb2: 0x3d92c2f7dab36be8, - limb3: 0x0 - }, - u384 { - limb0: 0xa9f22c370b5bfab6156201b8, - limb1: 0xef21c971afae7882cb675941, - limb2: 0x73e034d58e006ce, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0xd6a6f2ccefabfad3484b9818, - limb1: 0x3fff57a66d4b55c0e22595f4, - limb2: 0x8e8380ccb6b8c5a, - limb3: 0x0 - }, - u384 { - limb0: 0xa7092a7d8d0099d5ef973e21, - limb1: 0x3ec6fe373830d4700a27668c, - limb2: 0x3d1cba1936b16c73, - limb3: 0x0 - }, - u384 { - limb0: 0xc73c9d0e157109cb7d8fc269, - limb1: 0x9aca03c3af7752b519437903, - limb2: 0x51367807b58b8c45, - limb3: 0x0 - }, - u384 { - limb0: 0x98b7878734cb79c03831aea0, - limb1: 0xacf798b27b0743527f270f8f, - limb2: 0x79f9f3125c396cde, - limb3: 0x0 - }, - u384 { - limb0: 0xcb0e178fd07849e56300e9fb, - limb1: 0x46742ff775c2b8e7fb647c43, - limb2: 0x4234b0a0b427d4e6, - limb3: 0x0 - }, - u384 { - limb0: 0x23bc5ecb9331f2bb9e079a06, - limb1: 0xf4fefa2e02afc0f3d05c3102, - limb2: 0x7b8685a05aa5f0e7, - limb3: 0x0 - }, - u384 { - limb0: 0x986f7d9560134c0f6ee33758, - limb1: 0x52fd016ee83dcfdda1b49929, - limb2: 0x3700dd40798ea7de, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { - limb0: 0xc22703010ac2425792ec4e77, - limb1: 0x614b51ba3eb3442c6f3dda32, - limb2: 0x34ac5f6d0eef93f7, - limb3: 0x0 - }, - u384 { - limb0: 0xe13a451c779bf7aa4e9e3a6, - limb1: 0x813fcf1ee0cb7c1aac3d0aad, - limb2: 0xa8b07a73aa1551f, - limb3: 0x0 - }, - u384 { - limb0: 0x3ae7f9650905cd2f79965d7c, - limb1: 0x4fa524c3a4405c5a66ad1fa, - limb2: 0x2934d4319115c4c8, - limb3: 0x0 - }, - u384 { - limb0: 0xf44e7dbc1f889d1058fc3fd3, - limb1: 0x4de03a92a2df712ba9c337ab, - limb2: 0x2ece01c63c24d82f, - limb3: 0x0 - }, - u384 { - limb0: 0x7c064efe5bbce40b10ba0d13, - limb1: 0xf333fa16384d3b16ab47ab78, - limb2: 0x7190b65a57bed2ea, - limb3: 0x0 - }, - u384 { - limb0: 0xada79129585312e75ee7d7a3, - limb1: 0x3656040600b8055d3f0a878c, - limb2: 0xa0d1bf7f40700ef, - limb3: 0x0 - }, - u384 { - limb0: 0xcdb9dd5499c316e616edf47a, - limb1: 0x4740e798a9516c8bed4fb1ee, - limb2: 0xa32fb0ea9c8f9d1, - limb3: 0x0 - }, - u384 { - limb0: 0xd1cf7aa805dec59d339d8221, - limb1: 0x6a18f548a8111bfd6d9f5a20, - limb2: 0x1ae16fcb806d2ace, - limb3: 0x0 - }, - u384 { - limb0: 0xa9f22c370b5bfab6156201b8, - limb1: 0xef21c971afae7882cb675941, - limb2: 0x73e034d58e006ce, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ - u384 { - limb0: 0xd657e947eae2a30c178e09de, - limb1: 0xb7db8f336ab79b52dc924ed8, - limb2: 0x202da2e504719dd2, - limb3: 0x0 - }, - u384 { - limb0: 0xd784a91a5e09d24e7c4a265c, - limb1: 0xffffffffffffffff7c074593, - limb2: 0x3fffffffffffffff, - limb3: 0x0 - } - ] - .span(), - a_den: array![ - u384 { - limb0: 0xb9811638db9d91d2055fcfb2, - limb1: 0x8e26ddf585b35424e64d2e17, - limb2: 0x56d7713aa29c682c, - limb3: 0x0 - }, - u384 { - limb0: 0xfc475c11cc8c2246fae5777f, - limb1: 0xac43a0b59df0d2dc0e2fb924, - limb2: 0x4483a4913c8eb57f, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0x2778c0070c00350f7e12db5b, - limb1: 0xfc216d0cdc6623f024626e4b, - limb2: 0x4a33932659b2422, - limb3: 0x0 - }, - u384 { - limb0: 0xf14f16ee3f5f0db3dd3e7502, - limb1: 0xd514b3f165d3dca10b2f2abf, - limb2: 0x217d91b6d5d35f5e, - limb3: 0x0 - }, - u384 { - limb0: 0x5a2e8637b0899504b3d87dfa, - limb1: 0xb94783cf9cedb5e306183128, - limb2: 0x342d7cece0b4a41, - limb3: 0x0 - } - ] - .span(), - b_den: array![ - u384 { - limb0: 0xff04ccfe9bf72455695d0234, - limb1: 0x8fad5bf3bc744e94dfa4eefd, - limb2: 0x346218669521f900, - limb3: 0x0 - }, - u384 { - limb0: 0xe203faefb8bf8808ec853e66, - limb1: 0x8753ff324d0db809f6c1ac19, - limb2: 0x3dca78a0783d2ac7, - limb3: 0x0 - }, - u384 { - limb0: 0xafd9c93df00de9f327508408, - limb1: 0xa890b61c637c067e88423dac, - limb2: 0x6da07176e66e179b, - limb3: 0x0 - }, - u384 { - limb0: 0xc6264130880f7360fe1be6f2, - limb1: 0xbfbebf02e72e91fb5205e474, - limb2: 0x34261e0e48562712, - limb3: 0x0 - }, - u384 { - limb0: 0xfc475c11cc8c2246fae5777f, - limb1: 0xac43a0b59df0d2dc0e2fb924, - limb2: 0x4483a4913c8eb57f, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - }; - let derive_point_from_x_hint = DerivePointFromXHint { - y_last_attempt: u384 { - limb0: 0x549791da02c883962cae3f4f, - limb1: 0x119af560d366ba188c1384ce, - limb2: 0x23682cce5ea6db0f, - limb3: 0x0 - }, - g_rhs_sqrt: array![ - u384 { - limb0: 0x3bac5087a0109f5637bb749b, - limb1: 0xd4faac786eb9b15922bd6da7, - limb2: 0x31c7dff6a184320b, - limb3: 0x0 - } - ] - .span(), - }; - let points = array![ - G1Point { - x: u384 { - limb0: 0x7238f02b9f20e09c2181a557, - limb1: 0x2cedcc5b0be371c337fd7e9e, - limb2: 0x41f3bbeb280fe8a2, - limb3: 0x0 - }, - y: u384 { - limb0: 0xf046f8cd6e5a75fca71dd19b, - limb1: 0x892b4613ef5c58df4ef692a4, - limb2: 0x7527fa36f5738847, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x82e4a33f8e4e5881e791d86b, - limb1: 0xbcb062435ae8ec5fdaeac4bf, - limb2: 0x179e1bae9e0f9f34, - limb3: 0x0 - }, - y: u384 { - limb0: 0x19657783ba5660e255c21849, - limb1: 0x7ed7474bcea7551fc71e46bc, - limb2: 0x596c0a76b75f4756, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0xa6832ef7fe97f77de7cd9a62, - limb1: 0xf18a70dbf1dc5a76c685da4a, - limb2: 0x6ac1b7bfc409119f, - limb3: 0x0 - }, - y: u384 { - limb0: 0x7751161b1a9ef600b865a5af, - limb1: 0xed28aad4835a39a9e8318ceb, - limb2: 0x572e95c429f0e07a, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x5e71d0fc5d1c016834779173, - limb1: 0xadd002dfc0ebf1b25c23c252, - limb2: 0x40a868d928ae5233, - limb3: 0x0 - }, - y: u384 { - limb0: 0x423fa293418d6e3f59c2e830, - limb1: 0x7a4bcf26f93e71ffd903e68e, - limb2: 0x7837b851ad8da6e3, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x5907087f8e8e4dacdd039371, - limb1: 0xc390e2073b4e64b9ede0570d, - limb2: 0x6b039a85962f1594, - limb3: 0x0 - }, - y: u384 { - limb0: 0xc45eefa03155b8f7eb780b42, - limb1: 0x3db57eb22f9b0394a4d7b78e, - limb2: 0x6cf45b6d90883f60, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x60dd8ed0a614b596fb37eb1f, - limb1: 0xabb99f371be41e26ec2d8e4b, - limb2: 0x187ecd72c40f159d, - limb3: 0x0 - }, - y: u384 { - limb0: 0x7b66c9263de5e1663622985d, - limb1: 0x118b032cc27a1d6dd192eca6, - limb2: 0x312fb405788616e8, - limb3: 0x0 - } - }, - G1Point { - x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - }, - ] - .span(); - let scalars = array![ - u256 { low: 0x0, high: 0x0 }, - u256 { - low: 0xe005b86051ef1922fe43c49e149818d1, high: 0xfa83cc0eece328bff7b118e820865d6 - }, - u256 { - low: 0x4a84eb038d1fd9b74d2b9deb1beb3711, high: 0xaa5e4678c25166a1ff39849b4e1357d - }, - u256 { - low: 0x1775336d71eacd0549a3e80e966e1277, high: 0xa253f6f6288e1a5cc45782198a6416d - }, - u256 { - low: 0x2f1205544a5308cc3dfabc08935ddd72, high: 0x10e1c2b2fcd81b5d24bace4307bf326 - }, - u256 { - low: 0x2648ee38e07405eb215663abc1f254b8, high: 0x29164ebd7ab792809e469e6ec62b2c8 - }, - u256 { - low: 0x85940927468ff53d864a7a50b48d73f1, high: 0x6e2edd0d977e9933c49d76fcfc6e625 - }, - ] - .span(); - - let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 4 - ); - assert!( - res == G1Point { - x: u384 { - limb0: 0x8523e1979a4d72a21218b7b7, - limb1: 0xb9a33615406c1ebb81886a3d, - limb2: 0x4cce3a4a858e9161, - limb3: 0x0 - }, - y: u384 { - limb0: 0x5d4c8c71015151d5ee737a03, - limb1: 0xd39565609c0cde04f0b89068, - limb2: 0x76792d17d4d96ee7, - limb3: 0x0 - } - } - ); - } - - - #[test] - fn test_msm_ED25519_8P() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - ] - .span(), - array![ - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - ] - .span(), - array![ - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - ] - .span(), - array![ - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - ] - .span(), - array![ - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - ] - .span() - ), - ] - .span() - ); - let msm_hint = MSMHint { - Q_low: G1Point { - x: u384 { - limb0: 0x7f87d46f87a056a0a40fa08c, - limb1: 0xb925080676f1fb77a78c8af9, - limb2: 0x1a095941c3e7ba27, - limb3: 0x0 - }, - y: u384 { - limb0: 0xe7a31c63858ae22766c28292, - limb1: 0xf3eeb4e2754d6c8844ed758, - limb2: 0x6eba806918df9710, - limb3: 0x0 - } - }, - Q_high: G1Point { - x: u384 { - limb0: 0xe935e4bb1d7add8a1ec9aa9d, - limb1: 0xcad64c38f0f1bbd047e6afd1, - limb2: 0x2099fa8966cbb278, - limb3: 0x0 - }, - y: u384 { - limb0: 0xd6adc7eb01500f3d1984748e, - limb1: 0xfc6510f8af570ea9471f5856, - limb2: 0x5932b9f65f476c5b, - limb3: 0x0 - } - }, - Q_high_shifted: G1Point { - x: u384 { - limb0: 0xa622cacccfcb7f216433fb1d, - limb1: 0x62ce4d78526f3f6e4a9f5505, - limb2: 0x527c9cac55c060d5, - limb3: 0x0 - }, - y: u384 { - limb0: 0x8f2dabe5ebc22ea28af2e116, - limb1: 0xbbb0066665c66c7f3f293e1e, - limb2: 0x7e7fdf08d413926, - limb3: 0x0 - } - }, - SumDlogDivLow: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x9c61bd7d317480d46f2396b4, - limb1: 0x410483344fd362dc7cc40990, - limb2: 0x2f4aa4f9bf8f9448, - limb3: 0x0 - }, - u384 { - limb0: 0x146702c131f073e44a2dca27, - limb1: 0x1b1c2150350d4438b69d74b8, - limb2: 0x5dc8b8d791580bd5, - limb3: 0x0 - }, - u384 { - limb0: 0xe334cc01909ee94699dabbc3, - limb1: 0xd61bade7015c02aaf4f002e6, - limb2: 0x23b3403c81ffd23b, - limb3: 0x0 - }, - u384 { - limb0: 0xd57297fa70daa746b1c2fab8, - limb1: 0x121a0dff2679786d41ec1795, - limb2: 0x29aae4505e179a0c, - limb3: 0x0 - }, - u384 { - limb0: 0x9c16437090ecbc9cd9643a12, - limb1: 0xd5287e23fb9af1c7960e348b, - limb2: 0x31fd24719dce8423, - limb3: 0x0 - }, - u384 { - limb0: 0x2f32b6fb0a227cce5cf439e1, - limb1: 0xe2184baaf2a1910e356c71df, - limb2: 0x3d35ee3668ffbf29, - limb3: 0x0 - }, - u384 { - limb0: 0x65b0aecef728d39ceade592a, - limb1: 0xffffffffffffffffbad173b1, - limb2: 0x7fffffffffffffff, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x42e9d9fae744114630e1d45e, - limb1: 0xeb77f084c4cf4cf422509c8d, - limb2: 0x62d3c1baac5e0137, - limb3: 0x0 - }, - u384 { - limb0: 0x9b55910d1d409f5d5412200a, - limb1: 0x506fcb4abda5ea0b951c78c9, - limb2: 0x485737ff4052218d, - limb3: 0x0 - }, - u384 { - limb0: 0xe4cf6da20afd7fde29452c68, - limb1: 0x61015f9783deba964b29ee9b, - limb2: 0x41f2f200e1b4db7, - limb3: 0x0 - }, - u384 { - limb0: 0x75be8acc964b93e64f5fa649, - limb1: 0x201ec76ea907b0578f4873ab, - limb2: 0x5da56bc01de2aa0b, - limb3: 0x0 - }, - u384 { - limb0: 0x8a1136306824d2f49ea46d4a, - limb1: 0x3bebfa1876dd709ba6d85ba3, - limb2: 0x54e2d0f76237061d, - limb3: 0x0 - }, - u384 { - limb0: 0x24e2eb5523fbff823d26934d, - limb1: 0x9c23e67bba7d2134c27df487, - limb2: 0x2e91aa383cbd04a, - limb3: 0x0 - }, - u384 { - limb0: 0x4a0db2ed3ab3c6dd3356de7e, - limb1: 0x572c526306a7a1251c1b41b1, - limb2: 0x32c8f0c914f6bfa1, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0x93ff452bd253ffe643df37eb, - limb1: 0x9da1cd4b291828b85d5029ae, - limb2: 0x1bd0da91b221b3c, - limb3: 0x0 - }, - u384 { - limb0: 0x2f831f5084991799d8a0d200, - limb1: 0x70c5f40c36193234b1f4dd07, - limb2: 0x43019fa2102ef3ed, - limb3: 0x0 - }, - u384 { - limb0: 0xf524aa5c5adb3b945aee3122, - limb1: 0x5249e1e271c05f99f20c2032, - limb2: 0x45d8c8071557bf91, - limb3: 0x0 - }, - u384 { - limb0: 0xb9a716986868958eadb21c48, - limb1: 0x924da4f654d5f82feb46bec6, - limb2: 0x1f0ff1924fa65e6d, - limb3: 0x0 - }, - u384 { - limb0: 0x7037702a57f8d731b461280a, - limb1: 0x1fa64d8f3ac20dddc5de29d, - limb2: 0x502469842f88bbf4, - limb3: 0x0 - }, - u384 { - limb0: 0x437a33111bf7f619362164b1, - limb1: 0x56495e868868a348cd208f97, - limb2: 0x7227f867511f2d8e, - limb3: 0x0 - }, - u384 { - limb0: 0x122e40ca6c0920a76e1ac0ec, - limb1: 0x60db49363e9378e17fef383, - limb2: 0x22ee29bb622468ee, - limb3: 0x0 - }, - u384 { - limb0: 0xc27c159c7c7da7ccb986d875, - limb1: 0x5db197a5d25a7fd3366d6611, - limb2: 0x28b2bccc99cbacc, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { - limb0: 0xf09a2511b4448b2da50e4777, - limb1: 0x344fd986ae4f0e0eb21ca6cd, - limb2: 0x4cc7196161f62633, - limb3: 0x0 - }, - u384 { - limb0: 0xbddba3afa1f2d75926384aef, - limb1: 0x2773276184e90f1d763550d0, - limb2: 0x3580c47e980f7663, - limb3: 0x0 - }, - u384 { - limb0: 0xa73620ea5957ad1e46d94b9d, - limb1: 0xd341961a5e5f5800343d6d1a, - limb2: 0x3a9e6b4431b8d357, - limb3: 0x0 - }, - u384 { - limb0: 0x372501581137b6b6093a43ae, - limb1: 0x9ebf2a4cbdbf18d2e304b4c3, - limb2: 0x5ca60f0c49ad1193, - limb3: 0x0 - }, - u384 { - limb0: 0x7108baa424dd7dd071c12934, - limb1: 0x24d3128430436411553824ea, - limb2: 0x181677d49cfe475c, - limb3: 0x0 - }, - u384 { - limb0: 0xc388af8133d85eccf4d71e55, - limb1: 0x10a1dcd8792eed015b9390d3, - limb2: 0x4b38c2ab6fd388d9, - limb3: 0x0 - }, - u384 { - limb0: 0x5edceffa8cd80a1f69865340, - limb1: 0x25bce1be690ce0089b50b77b, - limb2: 0x734cce4f853ad4db, - limb3: 0x0 - }, - u384 { - limb0: 0x2ffdb16a828fb73116c3b144, - limb1: 0x8d8028dea8658338da668fce, - limb2: 0x7ffb9f956bcf49a7, - limb3: 0x0 - }, - u384 { - limb0: 0x3188164cd06de11135e2aa7a, - limb1: 0xcdbbc7891bf85f0b2e36aae4, - limb2: 0x6037c77729858f30, - limb3: 0x0 - }, - u384 { - limb0: 0x4a0db2ed3ab3c6dd3356de7e, - limb1: 0x572c526306a7a1251c1b41b1, - limb2: 0x32c8f0c914f6bfa1, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { - limb0: 0xd80db6b2b0fa8b295e13af39, - limb1: 0x359fb13d70f25a5c010e1303, - limb2: 0x3c73a512e35b8e04, - limb3: 0x0 - }, - u384 { - limb0: 0x824e74f1ea641bcb426443b8, - limb1: 0xdd7068226789d8c86fba0744, - limb2: 0x7e09e8ef1e155ae7, - limb3: 0x0 - }, - u384 { - limb0: 0xb52e8e3a0cacdacb7811c32, - limb1: 0x19dcfa15cf5a67c600f34fe1, - limb2: 0x804d8aa4cb8d17b, - limb3: 0x0 - }, - u384 { - limb0: 0xf5872a5cf4bfc2bb44a6bc2e, - limb1: 0xea1484a4fbc1620d1c9d55d6, - limb2: 0xb6f31b4a6bd05e8, - limb3: 0x0 - }, - u384 { - limb0: 0x32fecd4f322651df94a37f1, - limb1: 0xe5a172611817f753f342fd1e, - limb2: 0x505afd57e7833d3c, - limb3: 0x0 - }, - u384 { - limb0: 0xd2bf860b8ab2dbf9701a1d07, - limb1: 0x62c547de91e34f51a5232825, - limb2: 0x3cb48e8ea120e72d, - limb3: 0x0 - }, - u384 { - limb0: 0x196f7765c6e13dc18ba35179, limb1: 0x135508cc, limb2: 0x0, limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { - limb0: 0xfad125d6e800f5474378f2b3, - limb1: 0xa92db0a87e5235d1974ba3a5, - limb2: 0x7dadb09dff3ce1ab, - limb3: 0x0 - }, - u384 { - limb0: 0x18fa489ce52c0902a12fef94, - limb1: 0x8eb5285b3f925eb92fa5437e, - limb2: 0x1c6531b8b2a68f68, - limb3: 0x0 - }, - u384 { - limb0: 0xfedc620f5051b52e919b08f7, - limb1: 0x6da18f57dc3a16c89d96420a, - limb2: 0x541a6892488b6aad, - limb3: 0x0 - }, - u384 { - limb0: 0x80425a594c71c7339b3da9f4, - limb1: 0x81b943ddf05602c3b225991a, - limb2: 0x13e8c215f5c38c40, - limb3: 0x0 - }, - u384 { - limb0: 0xb7e08a4a43fb90ee5517afdc, - limb1: 0xe7707a84e09dcc928fb2b15, - limb2: 0x175ad919f5fed255, - limb3: 0x0 - }, - u384 { - limb0: 0xa7f463be1bf05b9c9f955b51, - limb1: 0xc7e6891b45235bc36b318631, - limb2: 0x7a78710b67c6f51c, - limb3: 0x0 - }, - u384 { - limb0: 0xe05fa2a1a4d93ff3b89cd46d, - limb1: 0x457b0e308ca7e0cc7bc11cd8, - limb2: 0x2c384f817212c750, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0x9f3fa807372ebeaa33393c56, - limb1: 0xfd2079eaf535fbf2adbc1c9b, - limb2: 0x1912d68caa83fe58, - limb3: 0x0 - }, - u384 { - limb0: 0x3892491a6a6399b696b4c63f, - limb1: 0xa7f1b58c09517738aebbb91c, - limb2: 0x13e7b085b8f78d94, - limb3: 0x0 - }, - u384 { - limb0: 0xec67b12b3900b147842d4d3b, - limb1: 0xd01606f1ad613529740d485e, - limb2: 0x5c41b93eddd2e416, - limb3: 0x0 - }, - u384 { - limb0: 0xce245bc7a385f68c13bbbb0e, - limb1: 0xa2566ddc42ce41d936538e19, - limb2: 0x35abe5bcf9e06348, - limb3: 0x0 - }, - u384 { - limb0: 0xd6061e7cddf3e0d18745cd81, - limb1: 0x64e48ff6ecf40d3542982675, - limb2: 0x41193c58f4f183fc, - limb3: 0x0 - }, - u384 { - limb0: 0xc93ad8cbca3f9464f650804f, - limb1: 0x7ef21223105e469305d42c77, - limb2: 0x60266ecc589b37b9, - limb3: 0x0 - }, - u384 { - limb0: 0x5f7fd2aadacf12964f466e43, - limb1: 0x2ef7f1f85c13adbe9b32bde, - limb2: 0x2a50f8710192e0d3, - limb3: 0x0 - }, - u384 { - limb0: 0x2b87940cf26d4c572cd6d28a, - limb1: 0xcc2f3fcda5bad229ed3172f7, - limb2: 0x419210d5140f168b, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { - limb0: 0x5b993adcfaf91eb7ae420052, - limb1: 0x4e3651e9bd5ca2b6f67fc3f8, - limb2: 0x2aa30527d9e4c289, - limb3: 0x0 - }, - u384 { - limb0: 0xf6801e8044b17c43c6048cc1, - limb1: 0x1bd271832f5ba01e9dd2699e, - limb2: 0x7362fc7ed240b0f0, - limb3: 0x0 - }, - u384 { - limb0: 0x600e733fdb0865899feec0c5, - limb1: 0xf9a4991ac0306401921591a6, - limb2: 0x4dfbad1aacc62c6b, - limb3: 0x0 - }, - u384 { - limb0: 0x8017135036ce83a333bac5dd, - limb1: 0x32ba6a5211a944d4b1b618c8, - limb2: 0x206e0bd15a32c94c, - limb3: 0x0 - }, - u384 { - limb0: 0xce40cbd19763d8e4f20bd208, - limb1: 0xf7912654b4b7d0841366ff0, - limb2: 0x2f43e5902a305008, - limb3: 0x0 - }, - u384 { - limb0: 0x82a5d23135fd96fb26a0e857, - limb1: 0x387acd8fc865d0d9c7911e5f, - limb2: 0xe138f9a7f292c0a, - limb3: 0x0 - }, - u384 { - limb0: 0xf6c3993eb423f2dfb5871129, - limb1: 0x77a33a389558f1ef2ae9894c, - limb2: 0x64d6f8d0b62d1605, - limb3: 0x0 - }, - u384 { - limb0: 0x58cffb798c56049b918a7a5, - limb1: 0xf971d12bfa70a06d5abca4d8, - limb2: 0x5cd35ba36c0a1eca, - limb3: 0x0 - }, - u384 { - limb0: 0xb4998eb5c8623d2b98517291, - limb1: 0xf97e6a28a69e9999d6ea3c8e, - limb2: 0x57c71ddf0d80b402, - limb3: 0x0 - }, - u384 { - limb0: 0xe05fa2a1a4d93ff3b89cd46d, - limb1: 0x457b0e308ca7e0cc7bc11cd8, - limb2: 0x2c384f817212c750, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x9afdffc605c7848494811dbd, - limb1: 0x28ed208662ce0acbc596dcbe, - limb2: 0x47369a7ef7453dd6, - limb3: 0x0 - }, - u384 { - limb0: 0xd784a91a5e09d24e7c4a265c, - limb1: 0xffffffffffffffff7c074593, - limb2: 0x3fffffffffffffff, - limb3: 0x0 - } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x51553c48f823b1de042f406d, - limb1: 0x4bfb3b2e506a0a9301316ed9, - limb2: 0x61f95804ec422a24, - limb3: 0x0 - }, - u384 { - limb0: 0x70a7507812b9a3547d025a33, - limb1: 0xd25b664ebc9f04c16d79fb28, - limb2: 0xce968ca4373ecb1, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0x585ab74677c3d74f77d5186d, - limb1: 0x259070cf7ff5c099483162a7, - limb2: 0x6d5bbbd27841247c, - limb3: 0x0 - }, - u384 { - limb0: 0x21bcfc059813ff91f7351998, - limb1: 0xf9c8f06af3a9a98d4f68b998, - limb2: 0x26d926ec2883277c, - limb3: 0x0 - }, - u384 { - limb0: 0x2b5f5ed385bdf6e6df08df15, - limb1: 0xb2f17755bcf356e41f5f265d, - limb2: 0x579f8137463c2b74, - limb3: 0x0 - } - ] - .span(), - b_den: array![ - u384 { - limb0: 0x5002aee4bef9113b58c35747, - limb1: 0x353f31e2c1869bb8a6863ee4, - limb2: 0x52e280431876e9be, - limb3: 0x0 - }, - u384 { - limb0: 0x1c09d1159ad9aea6de9d99fa, - limb1: 0x453be3973b37fdf6c18f3648, - limb2: 0x70c308ecf60aa240, - limb3: 0x0 - }, - u384 { - limb0: 0xb0ca66b8e26f79aee2ebb021, - limb1: 0x9c5a898926198393360e5844, - limb2: 0x2527b04fa1f1c728, - limb3: 0x0 - }, - u384 { - limb0: 0x5dfa6740a495936cfceb57ad, - limb1: 0x7d931c3bb1e548696cea2536, - limb2: 0x3f4804d891fbe90a, - limb3: 0x0 - }, - u384 { - limb0: 0x70a7507812b9a3547d025a33, - limb1: 0xd25b664ebc9f04c16d79fb28, - limb2: 0xce968ca4373ecb1, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - }; - let derive_point_from_x_hint = DerivePointFromXHint { - y_last_attempt: u384 { - limb0: 0xf026efc9a3386bfa2c61156e, - limb1: 0x659819c69f6857eef9a85786, - limb2: 0x3426a5d8b2c8a800, - limb3: 0x0 - }, - g_rhs_sqrt: array![].span(), - }; - let points = array![ - G1Point { - x: u384 { - limb0: 0x7238f02b9f20e09c2181a557, - limb1: 0x2cedcc5b0be371c337fd7e9e, - limb2: 0x41f3bbeb280fe8a2, - limb3: 0x0 - }, - y: u384 { - limb0: 0xf046f8cd6e5a75fca71dd19b, - limb1: 0x892b4613ef5c58df4ef692a4, - limb2: 0x7527fa36f5738847, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x82e4a33f8e4e5881e791d86b, - limb1: 0xbcb062435ae8ec5fdaeac4bf, - limb2: 0x179e1bae9e0f9f34, - limb3: 0x0 - }, - y: u384 { - limb0: 0x19657783ba5660e255c21849, - limb1: 0x7ed7474bcea7551fc71e46bc, - limb2: 0x596c0a76b75f4756, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0xa6832ef7fe97f77de7cd9a62, - limb1: 0xf18a70dbf1dc5a76c685da4a, - limb2: 0x6ac1b7bfc409119f, - limb3: 0x0 - }, - y: u384 { - limb0: 0x7751161b1a9ef600b865a5af, - limb1: 0xed28aad4835a39a9e8318ceb, - limb2: 0x572e95c429f0e07a, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x5e71d0fc5d1c016834779173, - limb1: 0xadd002dfc0ebf1b25c23c252, - limb2: 0x40a868d928ae5233, - limb3: 0x0 - }, - y: u384 { - limb0: 0x423fa293418d6e3f59c2e830, - limb1: 0x7a4bcf26f93e71ffd903e68e, - limb2: 0x7837b851ad8da6e3, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x5907087f8e8e4dacdd039371, - limb1: 0xc390e2073b4e64b9ede0570d, - limb2: 0x6b039a85962f1594, - limb3: 0x0 - }, - y: u384 { - limb0: 0xc45eefa03155b8f7eb780b42, - limb1: 0x3db57eb22f9b0394a4d7b78e, - limb2: 0x6cf45b6d90883f60, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x60dd8ed0a614b596fb37eb1f, - limb1: 0xabb99f371be41e26ec2d8e4b, - limb2: 0x187ecd72c40f159d, - limb3: 0x0 - }, - y: u384 { - limb0: 0x7b66c9263de5e1663622985d, - limb1: 0x118b032cc27a1d6dd192eca6, - limb2: 0x312fb405788616e8, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0xf4ac3e1f1f068dd64c86fdda, - limb1: 0x24594e591d82a7f964b5ec9f, - limb2: 0x6ca311b5421c57fc, - limb3: 0x0 - }, - y: u384 { - limb0: 0x42745cd7b146012455434d0f, - limb1: 0x6aa4f552b7bdc93a613bd9df, - limb2: 0x5832a065d7199c7a, - limb3: 0x0 - } - }, - G1Point { - x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - }, - ] - .span(); - let scalars = array![ - u256 { low: 0x0, high: 0x0 }, - u256 { - low: 0x4a84eb038d1fd9b74d2b9deb1beb3711, high: 0xaa5e4678c25166a1ff39849b4e1357d - }, - u256 { - low: 0x1775336d71eacd0549a3e80e966e1277, high: 0xa253f6f6288e1a5cc45782198a6416d - }, - u256 { - low: 0x2f1205544a5308cc3dfabc08935ddd72, high: 0x10e1c2b2fcd81b5d24bace4307bf326 - }, - u256 { - low: 0x2648ee38e07405eb215663abc1f254b8, high: 0x29164ebd7ab792809e469e6ec62b2c8 - }, - u256 { - low: 0x85940927468ff53d864a7a50b48d73f1, high: 0x6e2edd0d977e9933c49d76fcfc6e625 - }, - u256 { - low: 0xd344749096fd35d0adf20806e5214606, high: 0x8ce86e89466e4726b5f5241f323ca74 - }, - u256 { - low: 0x30bcab0ed857010255d44936a1515607, high: 0x8ac57cfbb42e0b20426465e3e37952d - }, - ] - .span(); - - let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 4 - ); - assert!( - res == G1Point { - x: u384 { - limb0: 0xd5adf4fcdd70d304d539092b, - limb1: 0xf5b45b1f48c8fd4534933d36, - limb2: 0x2d4f2e8b34dd49c4, - limb3: 0x0 - }, - y: u384 { - limb0: 0x427688865d4148010c48212f, - limb1: 0x3f0dc02af962f13fefb47bfa, - limb2: 0x72f897cf4e43a260, - limb3: 0x0 - } - } - ); - } - - - #[test] - fn test_msm_ED25519_9P() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - ] - .span(), - array![ - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - ] - .span(), - array![ - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - ] - .span(), - array![ - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - ] - .span(), - array![ - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - ] - .span() - ), - ] - .span() - ); - let msm_hint = MSMHint { - Q_low: G1Point { - x: u384 { - limb0: 0x80ee8bb226d5d31b120e391b, - limb1: 0x5d8548a6d7a4d98d8322d2dc, - limb2: 0x7e2ecb120201e76b, - limb3: 0x0 - }, - y: u384 { - limb0: 0xa2f1892ddd4e7a718440f14, - limb1: 0x1954991ab6a23f9426a6e9b0, - limb2: 0x37ecab25b7a2eb81, - limb3: 0x0 - } - }, - Q_high: G1Point { - x: u384 { - limb0: 0xbd2add5976eea03450387f0c, - limb1: 0x54dbfee1db3c82ec3608994e, - limb2: 0x6eeb6da72d8d5416, - limb3: 0x0 - }, - y: u384 { - limb0: 0x78327f83e31990a066c127c0, - limb1: 0x25981385398a9f29871ef5fa, - limb2: 0x192646b298b861d4, - limb3: 0x0 - } - }, - Q_high_shifted: G1Point { - x: u384 { - limb0: 0x9f1b18608d407634250d410, - limb1: 0xe1e0d4dc6864c07961e0dcc7, - limb2: 0x6b3da770932f3fdc, - limb3: 0x0 - }, - y: u384 { - limb0: 0x8aeb39119229ed524a67609, - limb1: 0x87012bd029022eaea70983fe, - limb2: 0x5514777e8bf7d57d, - limb3: 0x0 - } - }, - SumDlogDivLow: FunctionFelt { - a_num: array![ - u384 { - limb0: 0xa13e63ce1d0378306dbd9ebb, - limb1: 0x87a026c654a0e23b769ba16c, - limb2: 0x255252e1c2968dd, - limb3: 0x0 - }, - u384 { - limb0: 0xfa2b00dfda98f06e2debef9d, - limb1: 0xabd66228b212caad9eaa93a8, - limb2: 0x2f3b3ed2897020d9, - limb3: 0x0 - }, - u384 { - limb0: 0x9c06282ad24e306357ed414b, - limb1: 0x1af173cf298d04197e423d36, - limb2: 0x3ae6152a32791302, - limb3: 0x0 - }, - u384 { - limb0: 0x1478eee509b921192698f1bd, - limb1: 0x5ab32e2c018038eb6a5f4a24, - limb2: 0x6d78920ac63d2db5, - limb3: 0x0 - }, - u384 { - limb0: 0x46776c254514ecfb6a4f4b3f, - limb1: 0x6afeb4a31e629e0eef5e158a, - limb2: 0xdb92e837d794dd1, - limb3: 0x0 - }, - u384 { - limb0: 0xc3c813b4df4a9703681823ce, - limb1: 0xa33c5b7d6bf0a9327c16026d, - limb2: 0x42a78ab88d379d2, - limb3: 0x0 - }, - u384 { - limb0: 0x8d1824f103010c2f30929827, - limb1: 0xe6d064c3610f270d51e07214, - limb2: 0x3d9a262e7af470c0, - limb3: 0x0 - }, - u384 { - limb0: 0x64d8868329f0915013bf80fc, - limb1: 0xffffffffffffffffc4f14c55, - limb2: 0x7fffffffffffffff, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x955671ae655be16d77ef8576, - limb1: 0x79836e1141dc2f960d79d1c5, - limb2: 0x5699edd64d346e8d, - limb3: 0x0 - }, - u384 { - limb0: 0xab08736bd896644648454d17, - limb1: 0x301c148a1e3dc0c7a0661362, - limb2: 0x7da8821e4f7b4903, - limb3: 0x0 - }, - u384 { - limb0: 0x56c40ca50e093d015bce097f, - limb1: 0x93d8b246b62defd200a9fa08, - limb2: 0x3bfd78596502e6c5, - limb3: 0x0 - }, - u384 { - limb0: 0x25ee64ddc12d30b740013b53, - limb1: 0xad9365ca28c2740bbbfc25c0, - limb2: 0x6319042ddab4b5, - limb3: 0x0 - }, - u384 { - limb0: 0x78cc9eea26e6a6035427fd38, - limb1: 0x7f261b7d8e9b1f80927d4935, - limb2: 0x2db30c7955e0bef7, - limb3: 0x0 - }, - u384 { - limb0: 0x6dabd9bdc7fdeba2fda8d205, - limb1: 0x4182cd6b159710ebe0f35fc3, - limb2: 0x224fed96aaf886ba, - limb3: 0x0 - }, - u384 { - limb0: 0xa6e7b5703bdb2c454c71319a, - limb1: 0xa5c300f712ca67af77241728, - limb2: 0x74ffc7c2688390e1, - limb3: 0x0 - }, - u384 { - limb0: 0x148f74f316300c61c07561c6, - limb1: 0xf7958d80e35fbed35209dc9f, - limb2: 0x18daf9b5f5c82ea8, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0xec4ba1dcebce3639e3ed45a9, - limb1: 0x5019d4d50cd6f85d0bf7d68b, - limb2: 0x6275de3f721857da, - limb3: 0x0 - }, - u384 { - limb0: 0x72f83c72c3e118e2b82fa532, - limb1: 0x1613860e9fefc03aeb5c4365, - limb2: 0x4c73cbb13efbde6, - limb3: 0x0 - }, - u384 { - limb0: 0xb48000ac37cd2000c4a4187b, - limb1: 0x64b1142bd656a723c0ff78d0, - limb2: 0x1955e9199a261739, - limb3: 0x0 - }, - u384 { - limb0: 0xb70dc1609412962a2de29f99, - limb1: 0x5c88cb1ff10f4411eb4c3ffc, - limb2: 0x5709fa5030952c55, - limb3: 0x0 - }, - u384 { - limb0: 0xe1972fb120562deead1b4d3f, - limb1: 0x1e34b477a0c56852feb91bf9, - limb2: 0x25b975b5dfb8480f, - limb3: 0x0 - }, - u384 { - limb0: 0xd8365291f36b02834a27948, - limb1: 0x1b9961c03ceae73a9051dae4, - limb2: 0x75cbb60ff67804a4, - limb3: 0x0 - }, - u384 { - limb0: 0x175b0e721d5df0515b3dba02, - limb1: 0xa514b5cf5f3f1116ce7230b, - limb2: 0x7801b4452d2e3b2e, - limb3: 0x0 - }, - u384 { - limb0: 0x15b9b1d00bb83dfdfab14509, - limb1: 0x936a0604bb10635b22ced570, - limb2: 0x682b115dcf259e30, - limb3: 0x0 - }, - u384 { - limb0: 0x88377e6522d943acf32a4c2a, - limb1: 0x164c6aede18b67bf61ff5136, - limb2: 0x36f38c3d455e4234, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { - limb0: 0x15629c7aa85d0ea4355e6693, - limb1: 0xb725ad6751276ce9d310042d, - limb2: 0x212b7dc306896ddb, - limb3: 0x0 - }, - u384 { - limb0: 0x7b0b2d96108ef4024c4ac3e8, - limb1: 0xa56a24b128cbffb863e1f10e, - limb2: 0x5075e2494899d276, - limb3: 0x0 - }, - u384 { - limb0: 0xdde58c7f62b3be8b972f16b0, - limb1: 0x541738dddfdad17b79598dba, - limb2: 0x591fcd90fd52c86a, - limb3: 0x0 - }, - u384 { - limb0: 0x55049c7f12c9e0c09f9d015e, - limb1: 0x5bf75a976b895614e315f459, - limb2: 0x220c48bdd68359bd, - limb3: 0x0 - }, - u384 { - limb0: 0x4d63470777c1233eb44e5662, - limb1: 0xbfec1365f1e1e01e21093372, - limb2: 0x747b3a67e7d74ce1, - limb3: 0x0 - }, - u384 { - limb0: 0x106bfb5dabc9b4c510ee6919, - limb1: 0x80e1351b48199ad716fe1fab, - limb2: 0x48231f3926025c38, - limb3: 0x0 - }, - u384 { - limb0: 0xa00bf7b42ca1fdce59908223, - limb1: 0x7cac23529096fa2f279f5d81, - limb2: 0x37e2931251f71f05, - limb3: 0x0 - }, - u384 { - limb0: 0x33e92a65c7d364c26411cf01, - limb1: 0xabc729ea3d04f48003471822, - limb2: 0x2b470e96c2d356d3, - limb3: 0x0 - }, - u384 { - limb0: 0x1fe35cfd7c68376fe9e7318f, - limb1: 0x78270a393533d5b0710f7fed, - limb2: 0x1aaf6e1f540c1685, - limb3: 0x0 - }, - u384 { - limb0: 0xb38ce067e84d0dd4452d48da, - limb1: 0xd75ae2047445a585e2dccd85, - limb2: 0x524e74960e3d4fc7, - limb3: 0x0 - }, - u384 { - limb0: 0x148f74f316300c61c07561c6, - limb1: 0xf7958d80e35fbed35209dc9f, - limb2: 0x18daf9b5f5c82ea8, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x9399108f7723c77c4f3dc24b, - limb1: 0x2c6ba4d3cdd60978f831345c, - limb2: 0x2ffd8a5edfb0d35a, - limb3: 0x0 - }, - u384 { - limb0: 0xa4afde4e9741d41935e5c4f4, - limb1: 0x1336d9fc7ad7eb6aebdf54ec, - limb2: 0x304bbfafde772563, - limb3: 0x0 - }, - u384 { - limb0: 0xebb3dbe8c63a1d27ceb7bfbf, - limb1: 0x7c3d99c1e534e41085ba3987, - limb2: 0x36dbb62e1ca84012, - limb3: 0x0 - }, - u384 { - limb0: 0x2a0d579e8415f6a09e36e05a, - limb1: 0x9de1132202cf982129df5a4, - limb2: 0xffc96f03cfe5b38, - limb3: 0x0 - }, - u384 { - limb0: 0x8dbdb3644667728c2f90a3a7, - limb1: 0xd6fc80f2bd34fbfc032689b5, - limb2: 0x7854289e595644db, - limb3: 0x0 - }, - u384 { - limb0: 0x798f48040df2f082c162316d, - limb1: 0x359ed36a2219c939172f5e43, - limb2: 0x37e8e62438182507, - limb3: 0x0 - }, - u384 { - limb0: 0x28c6a6f685f8e57173c69436, - limb1: 0xb0128d4be2fd08294d7baf1c, - limb2: 0x7abe789c89cccaf, - limb3: 0x0 - }, - u384 { - limb0: 0x837efc175025d780ebbf3aa2, limb1: 0x177513e4, limb2: 0x0, limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { - limb0: 0xc67695e4f434e3a93a7cdf79, - limb1: 0x2e096e17fb2aa21e83977f8a, - limb2: 0x6ad8e9b922af598a, - limb3: 0x0 - }, - u384 { - limb0: 0xbfddedbabe0e293014d6dc01, - limb1: 0x5892edceb2c4a782a8f2a675, - limb2: 0x59763bb890a70b5f, - limb3: 0x0 - }, - u384 { - limb0: 0x230c6756280d20ce37925f45, - limb1: 0xcbf89093fb40a3a4ffa69193, - limb2: 0x29501f235dac8c6b, - limb3: 0x0 - }, - u384 { - limb0: 0x563340e5bd4132dc34512b34, - limb1: 0xd703ef589b6c3bfc0c05ac08, - limb2: 0x53768395df7b46e4, - limb3: 0x0 - }, - u384 { - limb0: 0x85552e9922e3ac3a3bdfeeb6, - limb1: 0xe327c709deb5018e9789cb1f, - limb2: 0xe4fd9da57c9d4de, - limb3: 0x0 - }, - u384 { - limb0: 0xa616a15166aeb360f71a1b12, - limb1: 0x34324b4f870444f09f6252e2, - limb2: 0x65cf66ba995da20e, - limb3: 0x0 - }, - u384 { - limb0: 0xc0dd6a551ab6860f8ede04f2, - limb1: 0x8dbf39a6c474e54b0d4af300, - limb2: 0x1e1f1fde77e78514, - limb3: 0x0 - }, - u384 { - limb0: 0xd853234bc6173f48824b1bd5, - limb1: 0x3ed745dfc815749f24162c, - limb2: 0x281e5720ca3cc1fe, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0x2355b94bb5b34d327ae67b8a, - limb1: 0x635c82c872537e65237c9fb0, - limb2: 0x38a6ce87ab095ae1, - limb3: 0x0 - }, - u384 { - limb0: 0x4546433f07017230f3cb90b0, - limb1: 0xc8625ef82825bdaa27d5638e, - limb2: 0x64f4e463bd302774, - limb3: 0x0 - }, - u384 { - limb0: 0xdd3a798158b3e9f8c016be7e, - limb1: 0xc8a00dc18fdf69440c21aa3d, - limb2: 0x61249d46bbdef017, - limb3: 0x0 - }, - u384 { - limb0: 0x5012892aa4029bbab8abe5cd, - limb1: 0xa75c5aa5d2ff7c247f148700, - limb2: 0x17256981691cadf6, - limb3: 0x0 - }, - u384 { - limb0: 0xe74f29cee0e6fbc4888268a1, - limb1: 0xe14b77f41caf89692bcecf81, - limb2: 0x3d2cce468cd7508a, - limb3: 0x0 - }, - u384 { - limb0: 0x6e2f1ff9504b0068265b3f9c, - limb1: 0xfd5a8c77206c985883c1f1c2, - limb2: 0x772f9ae5f1583803, - limb3: 0x0 - }, - u384 { - limb0: 0x8635b5afbe6e639186c97f31, - limb1: 0x9923603cbd36a2d1ec8b3dba, - limb2: 0x13acffb0ff41c81e, - limb3: 0x0 - }, - u384 { - limb0: 0x494914e9100f5cd2775d6f46, - limb1: 0x6aaf11b2b3af446ae1328ec, - limb2: 0x7cfb0e95b9b48e93, - limb3: 0x0 - }, - u384 { - limb0: 0xb67daaa662b096ac5abff26b, - limb1: 0x8b77de573a067ed4a0eb9856, - limb2: 0x2a33a4d4e35b2743, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { - limb0: 0x96b22404d19a32e3487a6d98, - limb1: 0x8c899385228b875a9e19e68e, - limb2: 0x3d9d07d70432c94, - limb3: 0x0 - }, - u384 { - limb0: 0x967b58d611a14bdacfbff1ef, - limb1: 0x9de9a799de778cb56018ea73, - limb2: 0x5f39119e397d4aef, - limb3: 0x0 - }, - u384 { - limb0: 0xde7b5718bd046283f68aaa32, - limb1: 0x668c05a0c78932ab3599ce1d, - limb2: 0x3ea0a697da0c06ba, - limb3: 0x0 - }, - u384 { - limb0: 0xe0d3828686916f964c07a733, - limb1: 0x11091550cc4235a73c6611f1, - limb2: 0x448a46e694af401b, - limb3: 0x0 - }, - u384 { - limb0: 0xd294c66f74d7cb6252389f48, - limb1: 0x54f25f514c2c786f503fdbf6, - limb2: 0xd613a8260d8654, - limb3: 0x0 - }, - u384 { - limb0: 0x22ac6ae19f0785942537c57b, - limb1: 0xa1ab43dad1f3870b9e2153ac, - limb2: 0x3d1b9483afd5f57d, - limb3: 0x0 - }, - u384 { - limb0: 0x2351dfabdd894a78abe3bfe4, - limb1: 0xd7bca14fc7e1099ca958797, - limb2: 0x42ceb7df0a0a2b77, - limb3: 0x0 - }, - u384 { - limb0: 0x7c7fec64008afd4ff1dcde35, - limb1: 0xb1d756c277f88b052acacd3e, - limb2: 0x1f747980ef52c435, - limb3: 0x0 - }, - u384 { - limb0: 0x2bc8f99e4158d8ec1004e277, - limb1: 0x4cdc7e663bf89debdc27144d, - limb2: 0x6a7bdb1f201ef9a9, - limb3: 0x0 - }, - u384 { - limb0: 0xcd82954cc728679e879a1c1f, - limb1: 0xbf571ab425f023217903a95d, - limb2: 0x7b6dccb21da143fa, - limb3: 0x0 - }, - u384 { - limb0: 0xd853234bc6173f48824b1bd5, - limb1: 0x3ed745dfc815749f24162c, - limb2: 0x281e5720ca3cc1fe, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x45a8750062b70dc1f56db2b6, - limb1: 0x47e331ad76c4ac05ac6dbe8e, - limb2: 0x6ec7665fb09ec3d4, - limb3: 0x0 - }, - u384 { - limb0: 0xd784a91a5e09d24e7c4a265c, - limb1: 0xffffffffffffffff7c074593, - limb2: 0x3fffffffffffffff, - limb3: 0x0 - } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x23bb2e2eaad8468ad8f783f3, - limb1: 0xdd8fdf873018e7e80363c542, - limb2: 0x3aee13547e134742, - limb3: 0x0 - }, - u384 { - limb0: 0x38e37120803d58686d76acbe, - limb1: 0xc9432c41bc5ebc9a681689ea, - limb2: 0x25d6eae83f436c0c, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0x9f695a304ee126d8d0dadcd0, - limb1: 0x9af8c1a77b8f9a6e3bf1ab5a, - limb2: 0x516ebe39d62e6e48, - limb3: 0x0 - }, - u384 { - limb0: 0xa6a7b95d910997ceb211f412, - limb1: 0x93067847c5b81caf298de057, - limb2: 0x4e853dc61c951794, - limb3: 0x0 - }, - u384 { - limb0: 0x597b2028a383fc8e3bfe51ec, - limb1: 0x2c26e0dcaf3c9a83de1700e, - limb2: 0x6b99a9034a70932, - limb3: 0x0 - } - ] - .span(), - b_den: array![ - u384 { - limb0: 0xa0067fc19fada09515a83aef, - limb1: 0x748c08d8f2e58afd3df0c855, - limb2: 0x6a574ab9c780d4a2, - limb3: 0x0 - }, - u384 { - limb0: 0x51055fbdcb62ef57890e3e7e, - limb1: 0x685f29a315c59bfc9da77d6, - limb2: 0x88f697ec0b2305b, - limb3: 0x0 - }, - u384 { - limb0: 0xdf914739f2faa3a1530d8a09, - limb1: 0x8bf1fbdf0e8b48afdb5cac78, - limb2: 0x21604576894c0a37, - limb3: 0x0 - }, - u384 { - limb0: 0x30605926574a2819d1b39b33, - limb1: 0xf27c094919425be6f1c7b9f, - limb2: 0x183cc02823cd0629, - limb3: 0x0 - }, - u384 { - limb0: 0x38e37120803d58686d76acbe, - limb1: 0xc9432c41bc5ebc9a681689ea, - limb2: 0x25d6eae83f436c0c, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - }; - let derive_point_from_x_hint = DerivePointFromXHint { - y_last_attempt: u384 { - limb0: 0x52c326015bd724015e16c516, - limb1: 0xa36f77b56dd7cd38272cbe60, - limb2: 0x1e48e9992a97319a, - limb3: 0x0 - }, - g_rhs_sqrt: array![ - u384 { - limb0: 0x2efb1f3139eae5c775aadaa, - limb1: 0x5876114358d3aff8323ce442, - limb2: 0x2bb962b1065586bc, - limb3: 0x0 - } - ] - .span(), - }; - let points = array![ - G1Point { - x: u384 { - limb0: 0x7238f02b9f20e09c2181a557, - limb1: 0x2cedcc5b0be371c337fd7e9e, - limb2: 0x41f3bbeb280fe8a2, - limb3: 0x0 - }, - y: u384 { - limb0: 0xf046f8cd6e5a75fca71dd19b, - limb1: 0x892b4613ef5c58df4ef692a4, - limb2: 0x7527fa36f5738847, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x82e4a33f8e4e5881e791d86b, - limb1: 0xbcb062435ae8ec5fdaeac4bf, - limb2: 0x179e1bae9e0f9f34, - limb3: 0x0 - }, - y: u384 { - limb0: 0x19657783ba5660e255c21849, - limb1: 0x7ed7474bcea7551fc71e46bc, - limb2: 0x596c0a76b75f4756, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0xa6832ef7fe97f77de7cd9a62, - limb1: 0xf18a70dbf1dc5a76c685da4a, - limb2: 0x6ac1b7bfc409119f, - limb3: 0x0 - }, - y: u384 { - limb0: 0x7751161b1a9ef600b865a5af, - limb1: 0xed28aad4835a39a9e8318ceb, - limb2: 0x572e95c429f0e07a, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x5e71d0fc5d1c016834779173, - limb1: 0xadd002dfc0ebf1b25c23c252, - limb2: 0x40a868d928ae5233, - limb3: 0x0 - }, - y: u384 { - limb0: 0x423fa293418d6e3f59c2e830, - limb1: 0x7a4bcf26f93e71ffd903e68e, - limb2: 0x7837b851ad8da6e3, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x5907087f8e8e4dacdd039371, - limb1: 0xc390e2073b4e64b9ede0570d, - limb2: 0x6b039a85962f1594, - limb3: 0x0 - }, - y: u384 { - limb0: 0xc45eefa03155b8f7eb780b42, - limb1: 0x3db57eb22f9b0394a4d7b78e, - limb2: 0x6cf45b6d90883f60, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x60dd8ed0a614b596fb37eb1f, - limb1: 0xabb99f371be41e26ec2d8e4b, - limb2: 0x187ecd72c40f159d, - limb3: 0x0 - }, - y: u384 { - limb0: 0x7b66c9263de5e1663622985d, - limb1: 0x118b032cc27a1d6dd192eca6, - limb2: 0x312fb405788616e8, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0xf4ac3e1f1f068dd64c86fdda, - limb1: 0x24594e591d82a7f964b5ec9f, - limb2: 0x6ca311b5421c57fc, - limb3: 0x0 - }, - y: u384 { - limb0: 0x42745cd7b146012455434d0f, - limb1: 0x6aa4f552b7bdc93a613bd9df, - limb2: 0x5832a065d7199c7a, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x341786b7854e3e0104e2e416, - limb1: 0xbb368441c295043bee7b1d2f, - limb2: 0x35c88542e11463b4, - limb3: 0x0 - }, - y: u384 { - limb0: 0x3c36e7fcc4e2fde28308132, - limb1: 0xf58043d0e3d1a36d1f8137fc, - limb2: 0x58c1508fbe8868a8, - limb3: 0x0 - } - }, - G1Point { - x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - }, - ] - .span(); - let scalars = array![ - u256 { low: 0x0, high: 0x0 }, - u256 { - low: 0x1775336d71eacd0549a3e80e966e1277, high: 0xa253f6f6288e1a5cc45782198a6416d - }, - u256 { - low: 0x2f1205544a5308cc3dfabc08935ddd72, high: 0x10e1c2b2fcd81b5d24bace4307bf326 - }, - u256 { - low: 0x2648ee38e07405eb215663abc1f254b8, high: 0x29164ebd7ab792809e469e6ec62b2c8 - }, - u256 { - low: 0x85940927468ff53d864a7a50b48d73f1, high: 0x6e2edd0d977e9933c49d76fcfc6e625 - }, - u256 { - low: 0xd344749096fd35d0adf20806e5214606, high: 0x8ce86e89466e4726b5f5241f323ca74 - }, - u256 { - low: 0x30bcab0ed857010255d44936a1515607, high: 0x8ac57cfbb42e0b20426465e3e37952d - }, - u256 { - low: 0x5f3f563838701a14b490b6081dfc8352, high: 0xda2ddc3552116dd2ba4b180cb69ca38 - }, - u256 { - low: 0xc87a746319c16a0d0febd845d0dfae43, high: 0x7003168b29a8b06daf66c5f2577bffa - }, - ] - .span(); - - let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 4 - ); - assert!( - res == G1Point { - x: u384 { - limb0: 0x3d1e167644c7799b2db1324f, - limb1: 0xf4d0dbe12ea7c0ba1bbea6ea, - limb2: 0x68e78bc2b2a3e323, - limb3: 0x0 - }, - y: u384 { - limb0: 0xb23c149125c04febf2f02e09, - limb1: 0xeb1fbfcfc814cafed1a6af85, - limb2: 0x7ead1641b6091106, - limb3: 0x0 - } - } - ); - } - - - #[test] - fn test_msm_ED25519_10P() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - ] - .span(), - array![ - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - ] - .span(), - array![ - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - ] - .span(), - array![ - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - ] - .span(), - array![ - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - ] - .span(), - array![ - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - ] - .span() - ), - ] - .span() - ); - let msm_hint = MSMHint { - Q_low: G1Point { - x: u384 { - limb0: 0xc6a2dadd7bfa3f0e246e658b, - limb1: 0x35fef39b5deb611ff2012432, - limb2: 0x69111c4bba88905b, - limb3: 0x0 - }, - y: u384 { - limb0: 0xf8f8b650214ea0042241e1af, - limb1: 0x9c0c86816e5b32d3958069ab, - limb2: 0x4f7c96eef9002e62, - limb3: 0x0 - } - }, - Q_high: G1Point { - x: u384 { - limb0: 0xfdd785e0b0c8c7cc6c9d28de, - limb1: 0x8122f1bdba903598618e0cc8, - limb2: 0x1cee60d8a8b3f4b1, - limb3: 0x0 - }, - y: u384 { - limb0: 0x76aab4f568a16f049413f213, - limb1: 0x69ce55459d82821adb310e48, - limb2: 0x6491ade0e5fcad87, - limb3: 0x0 - } - }, - Q_high_shifted: G1Point { - x: u384 { - limb0: 0x7f4c4fae4ccc048a1ec31085, - limb1: 0xc699c0ce71f1b1891d539ca3, - limb2: 0x6cec90835491d044, - limb3: 0x0 - }, - y: u384 { - limb0: 0xb956cd0696fbe12afef76c13, - limb1: 0x91ab61eaed3055a23afad034, - limb2: 0x24109e0f46a426c1, - limb3: 0x0 - } - }, - SumDlogDivLow: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x227c6e25297ca3819da464f1, - limb1: 0x571b21226157c006ab563ee3, - limb2: 0x504887f8395c09cf, - limb3: 0x0 - }, - u384 { - limb0: 0x9250ed6bc8b378fbfac1897e, - limb1: 0xa85a8d9aa8006c0e380f2e82, - limb2: 0x79d378e80069e8dc, - limb3: 0x0 - }, - u384 { - limb0: 0x291bad70f4dcf5da1030c62a, - limb1: 0x94fd014fe61d8a79305576c0, - limb2: 0x403856574c6f6dd5, - limb3: 0x0 - }, - u384 { - limb0: 0xe64e8fd202989f848fe10dfc, - limb1: 0x5620dd7e2b37a6e8ee5882db, - limb2: 0x33e9d7aeac7a5ba0, - limb3: 0x0 - }, - u384 { - limb0: 0xa006b233f56f29917e01ed1f, - limb1: 0xab4652ce19dacaace6450042, - limb2: 0x13ff48db50f037fa, - limb3: 0x0 - }, - u384 { - limb0: 0x4dda587ca11b2c2884f27577, - limb1: 0xd6fc1d52b40a3d2a504953f1, - limb2: 0x3a8272dcd2222f7a, - limb3: 0x0 - }, - u384 { - limb0: 0x825c3855024edfce54b4f7cc, - limb1: 0xa1ae5583465b73129fdb41cb, - limb2: 0x6d636258088a8f4d, - limb3: 0x0 - }, - u384 { - limb0: 0x671c8161232d0c902ddc84c9, - limb1: 0xd454ae8b7111191c35729c8b, - limb2: 0x6ee962acb1edc8d, - limb3: 0x0 - }, - u384 { - limb0: 0x2ad6d2d1562f684598e2df7f, - limb1: 0xffffffffffffffff47f9c934, - limb2: 0x3fffffffffffffff, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { - limb0: 0xeae53b5689b34217bac39f2b, - limb1: 0xc10c576f565e7d132685d600, - limb2: 0x7281e5b1ee7f7f1, - limb3: 0x0 - }, - u384 { - limb0: 0xcdf3e1e15b5be2eb4a0f1b34, - limb1: 0x758995c461e112d20ce25ffb, - limb2: 0x6e8647e138c3a2a9, - limb3: 0x0 - }, - u384 { - limb0: 0x28937aa2b174eadda504b8d0, - limb1: 0x9a65d524f5415c7413f378db, - limb2: 0x6d58c556393b49ec, - limb3: 0x0 - }, - u384 { - limb0: 0x76e838e534b43ff5dbe3b4c8, - limb1: 0xf2a76c2215ba5dec2438ee0, - limb2: 0x270bce0c4b679bc8, - limb3: 0x0 - }, - u384 { - limb0: 0x30bf0b1098230932944eb1ea, - limb1: 0xa1fb746d2aeed2521210800c, - limb2: 0xdd1e3c4ead890a7, - limb3: 0x0 - }, - u384 { - limb0: 0xad0051681836add0764b1b9b, - limb1: 0xb9f6eeb29bbf0d1b564141a9, - limb2: 0x587b7f413b8350e, - limb3: 0x0 - }, - u384 { - limb0: 0x489b0ad19d42c3a85e16f14b, - limb1: 0xd8823d0d7e9014c3b3270de0, - limb2: 0x6644fafa45a8bc7b, - limb3: 0x0 - }, - u384 { - limb0: 0xcdfdf91385ebd6e107424e01, - limb1: 0xe67f3d7a9de0119a0a2b773c, - limb2: 0x56436a4749bc3e76, - limb3: 0x0 - }, - u384 { - limb0: 0x78d0ee32a3a1f9a5d701b30a, - limb1: 0xd8ee9d420c80f0cfa1a69bd7, - limb2: 0x734918c74733471c, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0xc937d95d8cadd3a5baea9f9, - limb1: 0xcdb3c920c8f99da81bc8c3bf, - limb2: 0x2d1a86c456c954c1, - limb3: 0x0 - }, - u384 { - limb0: 0x807f12efd5a90792ff981d23, - limb1: 0x4105f51029a82d11b10da204, - limb2: 0x1b74df6945c86cbd, - limb3: 0x0 - }, - u384 { - limb0: 0x1506bf95ed6bc60247131702, - limb1: 0x252488c487118904127bde, - limb2: 0x30de927219fd6952, - limb3: 0x0 - }, - u384 { - limb0: 0x958235eb16090c99f7d5ef0d, - limb1: 0x344e1f71130a560435008093, - limb2: 0x38cc6f1cfeae3986, - limb3: 0x0 - }, - u384 { - limb0: 0x8294f5f287627c52819789b2, - limb1: 0x70ceb1275868863c4746185, - limb2: 0x362e3bb43a45def4, - limb3: 0x0 - }, - u384 { - limb0: 0x5d4bfc1af0c909365590a854, - limb1: 0xa3f621b7fe61804672886e3a, - limb2: 0x4bdb010f15f56d4c, - limb3: 0x0 - }, - u384 { - limb0: 0x464631b9495eb1b784e07568, - limb1: 0x6026647c9dc37aefc084fc88, - limb2: 0x29295786a71c9ea0, - limb3: 0x0 - }, - u384 { - limb0: 0xf12a80d2c25386bc9de4ed59, - limb1: 0x6d0769ccf6553441fff1816f, - limb2: 0x2ca460cce5a35fc9, - limb3: 0x0 - }, - u384 { - limb0: 0x7cc151f33e67a5ae8d7df066, - limb1: 0x63ca426ba9e6b6e306f2cefe, - limb2: 0x5d77b1ee4b8273c7, - limb3: 0x0 - }, - u384 { - limb0: 0x4de68a885c9ec128cd0e3885, - limb1: 0x17befac077817b1c5362076a, - limb2: 0x3a2e856b253f3378, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { - limb0: 0x167495d51eacc22a55b3265d, - limb1: 0xc2f565c607cb484a7adcac47, - limb2: 0xf33ee4fc0751d38, - limb3: 0x0 - }, - u384 { - limb0: 0x45017625b2895c94dba6d988, - limb1: 0xfc53587b5a45a573d311e597, - limb2: 0x4c5b5e9090d29ab5, - limb3: 0x0 - }, - u384 { - limb0: 0x6fd3f14e6ce705ef59c9cbc1, - limb1: 0x3616f16dfdc4b355c4ca5f7f, - limb2: 0x4debe015f017603f, - limb3: 0x0 - }, - u384 { - limb0: 0x3464627b8f30a0b4400be7bc, - limb1: 0x222a61d5b96a9126cf17eaaf, - limb2: 0x36697db2eaff49e7, - limb3: 0x0 - }, - u384 { - limb0: 0x7aed5101d33b5afa812a43a, - limb1: 0x7cde898d03defd5ca6e1d7b1, - limb2: 0x771f4571a0832e72, - limb3: 0x0 - }, - u384 { - limb0: 0xa359ebb450016c2a18a95f43, - limb1: 0xedd06403f1eb1821bea559f4, - limb2: 0x687652f8c1020398, - limb3: 0x0 - }, - u384 { - limb0: 0xf523e3d1f8a6035e147bceb0, - limb1: 0xa421ea5bdb8eccd3960b9278, - limb2: 0x6f9ce5787512638, - limb3: 0x0 - }, - u384 { - limb0: 0x25d3c74588d707d5fb80eaa3, - limb1: 0x699362ab1cdd4c1082e13de, - limb2: 0x5e88901e999006f6, - limb3: 0x0 - }, - u384 { - limb0: 0x9a65cc55a934e93e7f308cfe, - limb1: 0xa5370e7c23d2951484e28b23, - limb2: 0x653634367a58a2f2, - limb3: 0x0 - }, - u384 { - limb0: 0x163db6c37922f603c5a8953a, - limb1: 0xcb8ee64590dd3537075bfdac, - limb2: 0x5c4df3bee8de051, - limb3: 0x0 - }, - u384 { - limb0: 0xdaa3240b325db86ffffe6541, - limb1: 0x18171e87ff5b4f7075e42d99, - limb2: 0x3392171aef75fd5d, - limb3: 0x0 - }, - u384 { - limb0: 0x78d0ee32a3a1f9a5d701b30a, - limb1: 0xd8ee9d420c80f0cfa1a69bd7, - limb2: 0x734918c74733471c, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x59fee50dc97145c45d8f3ed3, - limb1: 0x6c776291ffe0ae1c72df8ace, - limb2: 0x267562c49576086e, - limb3: 0x0 - }, - u384 { - limb0: 0x26d6aa5041b6f7359782e9e1, - limb1: 0x4619f6bd132c5aa7fa2f521, - limb2: 0x55286a6cb4c399d4, - limb3: 0x0 - }, - u384 { - limb0: 0xf9d39911578532cc840bcd96, - limb1: 0xbf61af4764523ceb685e0173, - limb2: 0x1985d443ace8e4e, - limb3: 0x0 - }, - u384 { - limb0: 0x16301da5eb2b7fbfa847f5c1, - limb1: 0x716b7856ddd70396c8fcbc71, - limb2: 0x35fbb38603984916, - limb3: 0x0 - }, - u384 { - limb0: 0x8389d33ab8abfd12a8d52c1b, - limb1: 0x41fe0638341e56e64c21cc20, - limb2: 0x92270366a6db6ec, - limb3: 0x0 - }, - u384 { - limb0: 0x25c689390740c6a97cf017ae, - limb1: 0x9c54b1556cc9858d3876541f, - limb2: 0x2e2c2fa65fe1be1a, - limb3: 0x0 - }, - u384 { - limb0: 0xed59141e1fa0ed62190a8f89, - limb1: 0xc5fb16a4b1d95ca87c9b28d2, - limb2: 0x3dfde32439424864, - limb3: 0x0 - }, - u384 { - limb0: 0x4b986ff1eab63af9eb019449, - limb1: 0xe23819083d8dac480525ef00, - limb2: 0x1ce2eba885e100d4, - limb3: 0x0 - }, - u384 { - limb0: 0x4a595795038c4668e348fa33, - limb1: 0x1566e794, - limb2: 0x4000000000000000, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { - limb0: 0xcf6f74d3362d0a2cc602fede, - limb1: 0xc36d61793f08aa2b3892a41, - limb2: 0xaeeb28d31724037, - limb3: 0x0 - }, - u384 { - limb0: 0xe1358b64a35d0fac96d250cb, - limb1: 0x4c3eebf0819b46407826bd03, - limb2: 0x2621e16ebac44ec9, - limb3: 0x0 - }, - u384 { - limb0: 0x577e07104fe6fea5e4354136, - limb1: 0x97c7fe2de83474aba1a69ed4, - limb2: 0x2c9e942f673fa067, - limb3: 0x0 - }, - u384 { - limb0: 0x84398ffc19c5c9203a2a2ddd, - limb1: 0xf17a493ab9525320b4e4021, - limb2: 0x6755065f1cd40a11, - limb3: 0x0 - }, - u384 { - limb0: 0x6de5a993ad47a2757353e4bc, - limb1: 0xaa08cd6e30a482883f97a4cf, - limb2: 0x3362f8fb6ce50461, - limb3: 0x0 - }, - u384 { - limb0: 0x39a7cf83a16df9d8b0ad2d16, - limb1: 0xcd6ed73c6b2e832a7ebee841, - limb2: 0x5345a533032f7eb, - limb3: 0x0 - }, - u384 { - limb0: 0x91924908c1ae6da60ea22d10, - limb1: 0x4f3cab487c8bb36285aa7027, - limb2: 0x1538e3072d10373, - limb3: 0x0 - }, - u384 { - limb0: 0x8b1eb430f25056ec3a038f57, - limb1: 0xcaab590877d219858f7721a2, - limb2: 0x11d8d66fc9ca4aa1, - limb3: 0x0 - }, - u384 { - limb0: 0x419c432f6ed370e78ed2efca, - limb1: 0x8dca9f1fafdc1c573219b341, - limb2: 0x3f6bd43a5907e2c6, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0xb12a5cd4a21798a423f1e0b7, - limb1: 0xdbcf95a539f4241281a18559, - limb2: 0x2987b917f883d528, - limb3: 0x0 - }, - u384 { - limb0: 0xf8cd3d3c813624de9c8250db, - limb1: 0x1519deed44aac2e616c68228, - limb2: 0x608466e0954521af, - limb3: 0x0 - }, - u384 { - limb0: 0x3279875f0378d928da80389c, - limb1: 0xc1221f86b74d1bc2d31d678e, - limb2: 0x372d2328dadb68d8, - limb3: 0x0 - }, - u384 { - limb0: 0xf6e2f137b7d5296bead7b706, - limb1: 0x20704995c9b09b9c93e493e3, - limb2: 0xa89d5269d9a6258, - limb3: 0x0 - }, - u384 { - limb0: 0x62e63cc6b59015f31be992b0, - limb1: 0x2f67943770e8b28fa4bd8358, - limb2: 0x53b55bd97eaa5f3f, - limb3: 0x0 - }, - u384 { - limb0: 0x98fde822964ea5e8997c5df4, - limb1: 0xb00b139c18343fc57dccecc4, - limb2: 0x3bde86da5426045b, - limb3: 0x0 - }, - u384 { - limb0: 0xf89d2c8e46b0edf00711705, - limb1: 0x5a3e047b1f135502c39ae530, - limb2: 0x2577653f4b4047b8, - limb3: 0x0 - }, - u384 { - limb0: 0xf358e9e02cd3c52e50ad496d, - limb1: 0xb8352bdd43a93772cd21dd1a, - limb2: 0x7d373b64678d34c8, - limb3: 0x0 - }, - u384 { - limb0: 0xc1948bcf12577f079bf06a68, - limb1: 0x1806f09b85fa59c083d0b99d, - limb2: 0x443ce0054a7c9360, - limb3: 0x0 - }, - u384 { - limb0: 0x2b69c91c593cef93dc0213cc, - limb1: 0xc53f1d8d98881e71bfca37d2, - limb2: 0xc02f7dd7d54284a, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { - limb0: 0xde14568d9f35c09f59110531, - limb1: 0xc66aef13a82b2d254dc961c4, - limb2: 0x282e9e52aa8dfacd, - limb3: 0x0 - }, - u384 { - limb0: 0x736c0a0aa805f9e07406beb1, - limb1: 0xe1b7698b472f67111701e311, - limb2: 0x25b230ad347b2f8e, - limb3: 0x0 - }, - u384 { - limb0: 0x8c8d0de4a12c74b90a1eeaf, - limb1: 0xabc2022d540416bbe66d42b6, - limb2: 0x387ebad8bc137122, - limb3: 0x0 - }, - u384 { - limb0: 0x2f9d5c635ff0f00c65033970, - limb1: 0x11f9209639e1866299321d3b, - limb2: 0xc3ea1be18842370, - limb3: 0x0 - }, - u384 { - limb0: 0x96bd099bc616f227f07e4cf1, - limb1: 0xa3eded9f8e5c16df867bdb8, - limb2: 0x73b2ae14c785277a, - limb3: 0x0 - }, - u384 { - limb0: 0xa636fd3dba40ef91e7986138, - limb1: 0x4d48a1d0efa2e5f6d60e3496, - limb2: 0x4eb96afcbf30d471, - limb3: 0x0 - }, - u384 { - limb0: 0xf96c1d20e791a99dd0a3ac92, - limb1: 0x929f94c68e66a8a314e715ca, - limb2: 0x5da321e882eeec48, - limb3: 0x0 - }, - u384 { - limb0: 0xc16aadc0da26ed3c3e1f3b07, - limb1: 0x7f76e4c6acdc2a500d86a5fb, - limb2: 0x2ab55c8b30be3315, - limb3: 0x0 - }, - u384 { - limb0: 0xfbd5f76b49635c7e03171bf0, - limb1: 0xd76650994509bc6202005464, - limb2: 0x734f31a27134222b, - limb3: 0x0 - }, - u384 { - limb0: 0x4030a64316d4dbfe5ce15e60, - limb1: 0x398d13f34885692777da4d9, - limb2: 0x52c35e89b7d4a667, - limb3: 0x0 - }, - u384 { - limb0: 0x97c3df289ec2387b32bfa684, - limb1: 0xfc433a15d94d575bfb2fd7ff, - limb2: 0x6f2783436f840987, - limb3: 0x0 - }, - u384 { - limb0: 0x419c432f6ed370e78ed2efca, - limb1: 0x8dca9f1fafdc1c573219b341, - limb2: 0x3f6bd43a5907e2c6, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x892d2011d819b87f4a62e6a0, - limb1: 0x8bd84cafbcb2fcbc91063a3c, - limb2: 0x50e7b809bee1e100, - limb3: 0x0 - }, - u384 { - limb0: 0xd784a91a5e09d24e7c4a265c, - limb1: 0xffffffffffffffff7c074593, - limb2: 0x3fffffffffffffff, - limb3: 0x0 - } - ] - .span(), - a_den: array![ - u384 { - limb0: 0xb6ab374e277db2494a3c0259, - limb1: 0xd31c988d353f3cf66f9f8c70, - limb2: 0x2264767fde620dd0, - limb3: 0x0 - }, - u384 { - limb0: 0x82dc2a71026b33a9749fc677, - limb1: 0xb8434d73d37e18de811e5693, - limb2: 0x76250ea402ba3b09, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0xf671178f2c9fc54371a4eed5, - limb1: 0x11d745bb6161eaec1270503, - limb2: 0x283ff4bcf9701b87, - limb3: 0x0 - }, - u384 { - limb0: 0xf7c7e964ac9873e25c6fb22c, - limb1: 0x352e2614976b881cb97ffaae, - limb2: 0x1497c83b5a65540d, - limb3: 0x0 - }, - u384 { - limb0: 0x9e426d1aead7431d23eee210, - limb1: 0x7f82765c7cec109886e54027, - limb2: 0x2434bf678d677c93, - limb3: 0x0 - } - ] - .span(), - b_den: array![ - u384 { - limb0: 0x476852eb8a78f382d3959644, - limb1: 0xa288d9ac309e22f45d29e6e8, - limb2: 0x62af8dda283600f8, - limb3: 0x0 - }, - u384 { - limb0: 0xac4b66fff3ecf70f39fef4c1, - limb1: 0x9a8a4a418bb8eedc089e9d31, - limb2: 0x39f2216305163523, - limb3: 0x0 - }, - u384 { - limb0: 0x608bb8785e281ab8281a0dab, - limb1: 0x44b8f2ad5cceae658e3b053d, - limb2: 0x7bd370e2f3560949, - limb3: 0x0 - }, - u384 { - limb0: 0xc3506245d3ef93d842f81986, - limb1: 0x4b4799a96ba7accdb5842cd, - limb2: 0x7fb32353841bccb7, - limb3: 0x0 - }, - u384 { - limb0: 0x82dc2a71026b33a9749fc677, - limb1: 0xb8434d73d37e18de811e5693, - limb2: 0x76250ea402ba3b09, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - }; - let derive_point_from_x_hint = DerivePointFromXHint { - y_last_attempt: u384 { - limb0: 0x89c7b21c40cc88e188197953, - limb1: 0xd6fc6c72e70a5dfe82fd85b5, - limb2: 0x9f6c6fb4cffb0a2, - limb3: 0x0 - }, - g_rhs_sqrt: array![ - u384 { - limb0: 0xd2ff7946e4787cf29c4e9729, - limb1: 0xfe72805311c0d94e6bc22d84, - limb2: 0x2e16c5afda2cc7c6, - limb3: 0x0 - } - ] - .span(), - }; - let points = array![ - G1Point { - x: u384 { - limb0: 0x7238f02b9f20e09c2181a557, - limb1: 0x2cedcc5b0be371c337fd7e9e, - limb2: 0x41f3bbeb280fe8a2, - limb3: 0x0 - }, - y: u384 { - limb0: 0xf046f8cd6e5a75fca71dd19b, - limb1: 0x892b4613ef5c58df4ef692a4, - limb2: 0x7527fa36f5738847, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x82e4a33f8e4e5881e791d86b, - limb1: 0xbcb062435ae8ec5fdaeac4bf, - limb2: 0x179e1bae9e0f9f34, - limb3: 0x0 - }, - y: u384 { - limb0: 0x19657783ba5660e255c21849, - limb1: 0x7ed7474bcea7551fc71e46bc, - limb2: 0x596c0a76b75f4756, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0xa6832ef7fe97f77de7cd9a62, - limb1: 0xf18a70dbf1dc5a76c685da4a, - limb2: 0x6ac1b7bfc409119f, - limb3: 0x0 - }, - y: u384 { - limb0: 0x7751161b1a9ef600b865a5af, - limb1: 0xed28aad4835a39a9e8318ceb, - limb2: 0x572e95c429f0e07a, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x5e71d0fc5d1c016834779173, - limb1: 0xadd002dfc0ebf1b25c23c252, - limb2: 0x40a868d928ae5233, - limb3: 0x0 - }, - y: u384 { - limb0: 0x423fa293418d6e3f59c2e830, - limb1: 0x7a4bcf26f93e71ffd903e68e, - limb2: 0x7837b851ad8da6e3, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x5907087f8e8e4dacdd039371, - limb1: 0xc390e2073b4e64b9ede0570d, - limb2: 0x6b039a85962f1594, - limb3: 0x0 - }, - y: u384 { - limb0: 0xc45eefa03155b8f7eb780b42, - limb1: 0x3db57eb22f9b0394a4d7b78e, - limb2: 0x6cf45b6d90883f60, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x60dd8ed0a614b596fb37eb1f, - limb1: 0xabb99f371be41e26ec2d8e4b, - limb2: 0x187ecd72c40f159d, - limb3: 0x0 - }, - y: u384 { - limb0: 0x7b66c9263de5e1663622985d, - limb1: 0x118b032cc27a1d6dd192eca6, - limb2: 0x312fb405788616e8, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0xf4ac3e1f1f068dd64c86fdda, - limb1: 0x24594e591d82a7f964b5ec9f, - limb2: 0x6ca311b5421c57fc, - limb3: 0x0 - }, - y: u384 { - limb0: 0x42745cd7b146012455434d0f, - limb1: 0x6aa4f552b7bdc93a613bd9df, - limb2: 0x5832a065d7199c7a, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x341786b7854e3e0104e2e416, - limb1: 0xbb368441c295043bee7b1d2f, - limb2: 0x35c88542e11463b4, - limb3: 0x0 - }, - y: u384 { - limb0: 0x3c36e7fcc4e2fde28308132, - limb1: 0xf58043d0e3d1a36d1f8137fc, - limb2: 0x58c1508fbe8868a8, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x560a37951d69a6c8d7138239, - limb1: 0x462d454a509846714184ef71, - limb2: 0x3aaf8fb4f60e3e9c, - limb3: 0x0 - }, - y: u384 { - limb0: 0xb70cea4e13db5322899753f9, - limb1: 0x6c62656b6d7ffb5c2af44fd5, - limb2: 0x4b5ae4567dc6a7c0, - limb3: 0x0 - } - }, - G1Point { - x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - }, - ] - .span(); - let scalars = array![ - u256 { low: 0x0, high: 0x0 }, - u256 { - low: 0x2f1205544a5308cc3dfabc08935ddd72, high: 0x10e1c2b2fcd81b5d24bace4307bf326 - }, - u256 { - low: 0x2648ee38e07405eb215663abc1f254b8, high: 0x29164ebd7ab792809e469e6ec62b2c8 - }, - u256 { - low: 0x85940927468ff53d864a7a50b48d73f1, high: 0x6e2edd0d977e9933c49d76fcfc6e625 - }, - u256 { - low: 0xd344749096fd35d0adf20806e5214606, high: 0x8ce86e89466e4726b5f5241f323ca74 - }, - u256 { - low: 0x30bcab0ed857010255d44936a1515607, high: 0x8ac57cfbb42e0b20426465e3e37952d - }, - u256 { - low: 0x5f3f563838701a14b490b6081dfc8352, high: 0xda2ddc3552116dd2ba4b180cb69ca38 - }, - u256 { - low: 0xc87a746319c16a0d0febd845d0dfae43, high: 0x7003168b29a8b06daf66c5f2577bffa - }, - u256 { - low: 0x176ea1b164264cd51ea45cd69371a71f, high: 0x3b6a666fb0323a1d576d4155ec17dbe - }, - u256 { - low: 0x9edfa3da6cf55b158b53031d05d51433, high: 0x23d79a9428a1c22d5fdb76a19fbeb1d - }, - ] - .span(); - - let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 4 - ); - assert!( - res == G1Point { - x: u384 { - limb0: 0x953e7b69bc51afd0e8ee14e8, - limb1: 0x88f2a3f463abe0e4d99ed2b4, - limb2: 0x282277c34990a0db, - limb3: 0x0 - }, - y: u384 { - limb0: 0xc4b37aaf5a797b777a89ebc3, - limb1: 0xec1836313170e0d9647efdf3, - limb2: 0x63f08f0867a4694d, - limb3: 0x0 - } - } - ); - } - - - #[test] - fn test_msm_ED25519_11P() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - ] - .span(), - array![ - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - ] - .span(), - array![ - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - ] - .span(), - array![ - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - ] - .span(), - array![ - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - ] - .span(), - array![ - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - ] - .span(), - array![ - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - ] - .span() - ), - ] - .span() - ); - let msm_hint = MSMHint { - Q_low: G1Point { - x: u384 { - limb0: 0xf7f73668ed31827e6a25b1e8, - limb1: 0xa31457d7a2c542bbf3b3c13, - limb2: 0x7d799610c8f16ab4, - limb3: 0x0 - }, - y: u384 { - limb0: 0x6c03502900d94323a740e874, - limb1: 0xc399c691ef16e90aa7f2e45a, - limb2: 0x6c1d54069d32fa1e, - limb3: 0x0 - } - }, - Q_high: G1Point { - x: u384 { - limb0: 0x9f5046b366b4e82578ea7cfd, - limb1: 0x5657ceee8f185b72bd049708, - limb2: 0x53c3ed1e985a9f2a, - limb3: 0x0 - }, - y: u384 { - limb0: 0xf14204086006b6971e3d450, - limb1: 0x8c84b71627d8b4bd5d0713cc, - limb2: 0x13f218899f7041e4, - limb3: 0x0 - } - }, - Q_high_shifted: G1Point { - x: u384 { - limb0: 0x25b995ad06874ea339c7afd3, - limb1: 0x68f3a5868e23705dbaa50f78, - limb2: 0x2a0c6e906ba7ad96, - limb3: 0x0 - }, - y: u384 { - limb0: 0x1135152280c1d9643c6ae557, - limb1: 0xf2529e96d78f463c1cf0d966, - limb2: 0x6b61d89001e0d390, - limb3: 0x0 - } - }, - SumDlogDivLow: FunctionFelt { - a_num: array![ - u384 { - limb0: 0xdadddc16a44369ff41dbc60b, - limb1: 0x512def54926da5aa2d18ed85, - limb2: 0x12c9232965a48b69, - limb3: 0x0 - }, - u384 { - limb0: 0xfffef82f6b86f062107bb8e8, - limb1: 0x9437bbb07ad3e326a4a265e4, - limb2: 0x5f66a83f375f8ed7, - limb3: 0x0 - }, - u384 { - limb0: 0x139906dbec5b12ea281e61de, - limb1: 0x1b283b48d2873f5d346b0b61, - limb2: 0x576e5aab9546a593, - limb3: 0x0 - }, - u384 { - limb0: 0x60ee25b955a7ad25f1fd29c9, - limb1: 0x166bbeb3d716aa7b0054d128, - limb2: 0x1d843ffed2981e24, - limb3: 0x0 - }, - u384 { - limb0: 0x6ab1429f90d6c73d5feec03e, - limb1: 0x2294009f175f67b102d6cd9a, - limb2: 0x3a54584178fb0b9b, - limb3: 0x0 - }, - u384 { - limb0: 0x506a98d7da7122177618f274, - limb1: 0x998a4bef7ac5866d7e79674, - limb2: 0x9cb3b5a371be916, - limb3: 0x0 - }, - u384 { - limb0: 0x8a29ba2e2252c6619b92fd36, - limb1: 0xc4552f025624e43ab034fbec, - limb2: 0x69c0145245b52166, - limb3: 0x0 - }, - u384 { - limb0: 0xa3992edce127cf1acfea9bd4, - limb1: 0xd1752ad492690fadeac9a419, - limb2: 0x72fa4447c24461b8, - limb3: 0x0 - }, - u384 { - limb0: 0x125a5980617f7ee39245419b, - limb1: 0x74b0a1be7a2caf7658ed8e36, - limb2: 0x140db41514d8bf01, - limb3: 0x0 - }, - u384 { - limb0: 0xee41e073e880838ff4e4ddb7, - limb1: 0xffffffffffffffffa576dd97, - limb2: 0x3fffffffffffffff, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { - limb0: 0xd295f2c630cb7e2c97aa5db5, - limb1: 0x6ef3b2bbf45d45f97a1c8d6c, - limb2: 0x38bb79c32bf6db88, - limb3: 0x0 - }, - u384 { - limb0: 0x773c1386069c56925a67dd7e, - limb1: 0x83fd3d25d9eeef1e18c9a772, - limb2: 0x37c87b5243e6ba92, - limb3: 0x0 - }, - u384 { - limb0: 0xc9b3a0bb0885c23c9b919de6, - limb1: 0xc2c4f53f0974381eff065f63, - limb2: 0x7993b80125e63baa, - limb3: 0x0 - }, - u384 { - limb0: 0xa893912e6ca5d31fd2e45524, - limb1: 0x9a0f5ba6d7827f95ec4469ac, - limb2: 0x7046ab2d32babc9, - limb3: 0x0 - }, - u384 { - limb0: 0x4f6d38a7efcacd992317463a, - limb1: 0x6fe3b81b093f8acbd2e591b, - limb2: 0xddaa4dbdd33f142, - limb3: 0x0 - }, - u384 { - limb0: 0x402e2c26b6a1e116bcbc17f9, - limb1: 0xfe1d0acccc1a9fa78d04ea61, - limb2: 0x28114f0b1f72ecd3, - limb3: 0x0 - }, - u384 { - limb0: 0xfd02f0029d80c82273bd4a13, - limb1: 0xc96db153a205b733e523e1c9, - limb2: 0x3386c27668f5c25a, - limb3: 0x0 - }, - u384 { - limb0: 0x3a783ad1d76f5f128c764c87, - limb1: 0xb2abe7de119bdcd37efa3d6b, - limb2: 0x4f62279f1c3d5bd5, - limb3: 0x0 - }, - u384 { - limb0: 0x4a2756d241f4702735e4d897, - limb1: 0xe8706f27de3bb0aa26fec3ed, - limb2: 0x30e3c2c0d398abd3, - limb3: 0x0 - }, - u384 { - limb0: 0x970fc5f27e44e11df1f7e43d, - limb1: 0x36bacf37d6079c6ccd65b66f, - limb2: 0x1c0f56bb5c820c18, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0x2f95e19fb0bf609faabd391f, - limb1: 0x67251db0061cc37a32cabebd, - limb2: 0x70b9538fda576670, - limb3: 0x0 - }, - u384 { - limb0: 0x9c073dfd61fcdf7d67a2c167, - limb1: 0xbee1b6a72efec939c654846, - limb2: 0x522c14350326987a, - limb3: 0x0 - }, - u384 { - limb0: 0xdfebe36f7ae45881818cd4cc, - limb1: 0x5e4e5b22dc520048203f5ade, - limb2: 0x757ff9984cf3723d, - limb3: 0x0 - }, - u384 { - limb0: 0x85b26c31620799baf9c82e6d, - limb1: 0x293cf2f64d0e28541ffa7627, - limb2: 0x2c9a15b6f9b76e54, - limb3: 0x0 - }, - u384 { - limb0: 0x80f0dbbd91562a985c06748f, - limb1: 0x2a141f7c616c57a80c56f276, - limb2: 0x1a71289ca15e3818, - limb3: 0x0 - }, - u384 { - limb0: 0x28bd5d0ab302915700a243b, - limb1: 0x67d916182ab604ddb32d2724, - limb2: 0x8d8c37e9a8206d7, - limb3: 0x0 - }, - u384 { - limb0: 0x76c5672b8b4d701fd3dd1ff0, - limb1: 0xb0b5f8df87d28ed5edec04ae, - limb2: 0x3bcece5d52b3ff85, - limb3: 0x0 - }, - u384 { - limb0: 0xc0f097c47d3c78948776540b, - limb1: 0x523bdf89c1541dc77339381, - limb2: 0x36e007b7aa6c9c58, - limb3: 0x0 - }, - u384 { - limb0: 0xb56aaf3cb7f439e03bafe56f, - limb1: 0x22ca46333af83960527dc434, - limb2: 0x34de52f2e417908, - limb3: 0x0 - }, - u384 { - limb0: 0x634dd86775c45c225f1ff20a, - limb1: 0xc2757749edb7339e59c8138e, - limb2: 0x27b52262ed81e312, - limb3: 0x0 - }, - u384 { - limb0: 0x7513d3f1180c088453472689, - limb1: 0xf5d7733a2199f02b1469e30d, - limb2: 0x4f9d349ded23052a, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { - limb0: 0xa8d7540aaa5469a81449fcab, - limb1: 0x3f97ce4b70c01d1edde0a34a, - limb2: 0x316dac7b262d923c, - limb3: 0x0 - }, - u384 { - limb0: 0x392e456e8433df7911f69724, - limb1: 0xce70f217c8dda1f7da755eb0, - limb2: 0x31c0349d06a031bf, - limb3: 0x0 - }, - u384 { - limb0: 0x28ff4b448c3fb09c92d8eb6f, - limb1: 0x5d9da4e2cf2e70c7be27f4dd, - limb2: 0xf8936f00faa10a5, - limb3: 0x0 - }, - u384 { - limb0: 0x3a7aaa4c6fa2c28cd9375cd8, - limb1: 0x219508c636c65cf9ae7fb9af, - limb2: 0x4c72b70c3b7d214e, - limb3: 0x0 - }, - u384 { - limb0: 0xae7ad5b72a492e34856d5ef2, - limb1: 0xeba953f3e3fbe578bdd56d17, - limb2: 0x1ef58fe208474c8e, - limb3: 0x0 - }, - u384 { - limb0: 0x6fb3cf83aaaeaa2fce5736e1, - limb1: 0x8965dab9fb83f1f1fc0c6e5d, - limb2: 0x275a4a12f6901796, - limb3: 0x0 - }, - u384 { - limb0: 0x1709aca2b543bd733598d8e8, - limb1: 0xb9badd545ec19569d9ca1c90, - limb2: 0x1ac9bbe0238b65b5, - limb3: 0x0 - }, - u384 { - limb0: 0xdc3c836244a2586ee5ab19d, - limb1: 0x367052b0bbb9457327d06fd9, - limb2: 0x64dda8501ec679ed, - limb3: 0x0 - }, - u384 { - limb0: 0xb364ffa83f8c5677f839112c, - limb1: 0xe44e100b863932786bd5236, - limb2: 0x43db3e973506b4e7, - limb3: 0x0 - }, - u384 { - limb0: 0xac5928b7bc9e13dc60bca79f, - limb1: 0x896d2c55392e3989dada62ed, - limb2: 0x334403ae73cce09c, - limb3: 0x0 - }, - u384 { - limb0: 0x97ef479bcda982fb96cb55a2, - limb1: 0x8f4b976ebaf04f0450f9be64, - limb2: 0x307061ae0b61d18d, - limb3: 0x0 - }, - u384 { - limb0: 0x56cc81c9ee6651b62ea0efd7, - limb1: 0x1a0850353fb6ee8092b77a4a, - limb2: 0xe326f9479526aba, - limb3: 0x0 - }, - u384 { - limb0: 0x970fc5f27e44e11df1f7e43d, - limb1: 0x36bacf37d6079c6ccd65b66f, - limb2: 0x1c0f56bb5c820c18, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x6d7452347d75340b10b84889, - limb1: 0xbe1cbb263ca91dc1ae24fd24, - limb2: 0x6346fdf2fe1771bb, - limb3: 0x0 - }, - u384 { - limb0: 0x7eab65364edee845b4b9e0de, - limb1: 0x2c37591693a43b7044cfa00f, - limb2: 0x568f817bf41c8bc4, - limb3: 0x0 - }, - u384 { - limb0: 0xd7861e1d628042c71c972ef2, - limb1: 0x470c93fdb32a001a3a36a82f, - limb2: 0x1798f6acf82b1bad, - limb3: 0x0 - }, - u384 { - limb0: 0xf71945f9e97faee055f3965a, - limb1: 0xc5b8a2b79a7d86a09cfbfa09, - limb2: 0x4c80298e3bd4c539, - limb3: 0x0 - }, - u384 { - limb0: 0xe6b3b3e188eea2ef16ce7558, - limb1: 0x360f720306af1104c97d4660, - limb2: 0x6d3c43567a8921ae, - limb3: 0x0 - }, - u384 { - limb0: 0xb7be2d0bd693e5bb81246bcc, - limb1: 0x7270b812dd1a264dfba765a5, - limb2: 0x525250c727d21e5f, - limb3: 0x0 - }, - u384 { - limb0: 0xa5743d214921869e9a3f069d, - limb1: 0xe678391136e2a8338506a6b6, - limb2: 0x7ad650dace045fdb, - limb3: 0x0 - }, - u384 { - limb0: 0x5d958d034a03ac9067e1396d, - limb1: 0x65deac7c07a993927b287a48, - limb2: 0x4fddb19f679380d2, - limb3: 0x0 - }, - u384 { - limb0: 0x481359fcb6e62409bbb5bac8, - limb1: 0xaa766bddaec789723e802481, - limb2: 0x12dad3eb394b282a, - limb3: 0x0 - }, - u384 { - limb0: 0xf981b568a165da3fce3f46df, limb1: 0x13bf5c44, limb2: 0x0, limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x281b849d6b5ae936fa787cda, - limb1: 0x55003f62e1ea6751f315449, - limb2: 0x3c7bb17d60701e74, - limb3: 0x0 - }, - u384 { - limb0: 0xe9324f8e7ba82e65ef06a27d, - limb1: 0x46e0104055bddafd2810a8ef, - limb2: 0x87140322f072bf7, - limb3: 0x0 - }, - u384 { - limb0: 0x16e43e9868885b29f016a816, - limb1: 0x5fb19bd7054b8177f7d3c978, - limb2: 0x1141d1e19d26996e, - limb3: 0x0 - }, - u384 { - limb0: 0xbf7f2e6d55409f7177d83fe5, - limb1: 0x87c0e434ea70a1c989121bcc, - limb2: 0x189ba44dae4a0043, - limb3: 0x0 - }, - u384 { - limb0: 0x3933a166c9494df19ff32aa2, - limb1: 0x672b9c16da6ef3dc8d7f08ca, - limb2: 0x1f6ed6b0096bc2dd, - limb3: 0x0 - }, - u384 { - limb0: 0xaf51cda3490954f61f5b6646, - limb1: 0x540039240f8feb4893f3a2c0, - limb2: 0x4bcddaf72365bea3, - limb3: 0x0 - }, - u384 { - limb0: 0xd19ec8d6212f550882230794, - limb1: 0x24aaee5534eb705a08916b6, - limb2: 0x3d9bad35acddba4f, - limb3: 0x0 - }, - u384 { - limb0: 0x475dab4a81121738f66fd14e, - limb1: 0xb3282e80aaff11c50dacd6b6, - limb2: 0x5d0171001ef8f4ea, - limb3: 0x0 - }, - u384 { - limb0: 0xddb0842b13a44084c57b9e94, - limb1: 0xc6b6e36f7b2160094461e8a0, - limb2: 0x7aa22ca83fefc6bc, - limb3: 0x0 - }, - u384 { - limb0: 0xefb6b5a804c17b76e3331928, - limb1: 0xea9445c6c11b9525cf9c5b7a, - limb2: 0x45c4ffad8d18d7a1, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0xce16977fbf4d8b2510205b2a, - limb1: 0x3e13232cb3f6371f81443a3e, - limb2: 0x21721b3742970df1, - limb3: 0x0 - }, - u384 { - limb0: 0xee3489e01430a97b738b8a3b, - limb1: 0xda9fd266a4a2c946f78692be, - limb2: 0x258ba3101aa452e2, - limb3: 0x0 - }, - u384 { - limb0: 0x47cbadf740af29cf9eb75926, - limb1: 0xb4b32fdb0ce7f05cb0ce205a, - limb2: 0x7160eadd0c55993e, - limb3: 0x0 - }, - u384 { - limb0: 0xdb780c236e85c8896e79cc82, - limb1: 0x370d3ea9527a0d640ecfe591, - limb2: 0x6a494cd4bbc93450, - limb3: 0x0 - }, - u384 { - limb0: 0x11ea2c62e85ecf4cd33694de, - limb1: 0xaea78a9f55b777ec83085853, - limb2: 0x4b3fd45d70d8945e, - limb3: 0x0 - }, - u384 { - limb0: 0x267469c019ca327f24278760, - limb1: 0x8b1d447fcc32d31fba45683e, - limb2: 0x37cb05813304ecc8, - limb3: 0x0 - }, - u384 { - limb0: 0xfad58ec5aebc699ed439af16, - limb1: 0x157dbc53728a709ec9804eca, - limb2: 0x29de895f3ed8f018, - limb3: 0x0 - }, - u384 { - limb0: 0x120718926cf41aec52a70063, - limb1: 0xc012755c2144e5e9fa91269, - limb2: 0x4eae075b3d3299d1, - limb3: 0x0 - }, - u384 { - limb0: 0x5e131987d809c3ae50875f2d, - limb1: 0x2dd4fe4c1897b2ebe22fd40e, - limb2: 0x3fd00551d73725c6, - limb3: 0x0 - }, - u384 { - limb0: 0x1f8b253562ddb3dc71609801, - limb1: 0x847f331536a5d8d1abf276ef, - limb2: 0x5a355c8658ac88cd, - limb3: 0x0 - }, - u384 { - limb0: 0xe0f111570919a2d422fece0f, - limb1: 0xd9237d912399108827e815ef, - limb2: 0x18b36c4907836000, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { - limb0: 0x282f51d0fa327f6467e58a69, - limb1: 0x6c5d3fe8dee398118652caa1, - limb2: 0x49388ffe64f7d48f, - limb3: 0x0 - }, - u384 { - limb0: 0x3c2506f3433db0cdecf398af, - limb1: 0xbbfec42b01d76341bb67baca, - limb2: 0x7dd73cce32328bab, - limb3: 0x0 - }, - u384 { - limb0: 0xb519ce37fcf8f06b50220b9a, - limb1: 0xe676b20b497708256c9af8f7, - limb2: 0xb6eaccaea26c6fb, - limb3: 0x0 - }, - u384 { - limb0: 0x33530228f9de878ab4b3b382, - limb1: 0x65f576391c06b068eef05062, - limb2: 0x1427e4e4e953f944, - limb3: 0x0 - }, - u384 { - limb0: 0x87de0c173eb0f780ac86c511, - limb1: 0x77fdeecf42d5d212a47a4cbf, - limb2: 0x27bea95c365c3238, - limb3: 0x0 - }, - u384 { - limb0: 0x941b07d0db295f9d3c2bb9c0, - limb1: 0xe639625e385344f21673e342, - limb2: 0x6b136c36b20422df, - limb3: 0x0 - }, - u384 { - limb0: 0x2c5765fd290736b2abd3f181, - limb1: 0x5bfb644fb8ab62dd933cdfbe, - limb2: 0x2572fe2f15a056ef, - limb3: 0x0 - }, - u384 { - limb0: 0xb949e70a7e498f929287ef88, - limb1: 0x1f87f426b7694738c5100e9f, - limb2: 0x3d29809e02befcb1, - limb3: 0x0 - }, - u384 { - limb0: 0xdfedd88583b482434957c2ad, - limb1: 0x9778f60e0d93bc43ac709008, - limb2: 0x6496712987579569, - limb3: 0x0 - }, - u384 { - limb0: 0xac20967d54ba005249856b10, - limb1: 0x9d0d31f5a2be3a6d4311ad08, - limb2: 0x4495ac047a165f73, - limb3: 0x0 - }, - u384 { - limb0: 0x6f82a3a67da1b7e6828f4fdf, - limb1: 0xddad17b67fecf0de8c08ef10, - limb2: 0x4e90dd3ac9a71c64, - limb3: 0x0 - }, - u384 { - limb0: 0xea55af22c0162213be37b5d4, - limb1: 0xf84ec47cdc9c9ddfb01a9efd, - limb2: 0x57f0d97be5a985a2, - limb3: 0x0 - }, - u384 { - limb0: 0xefb6b5a804c17b76e3331928, - limb1: 0xea9445c6c11b9525cf9c5b7a, - limb2: 0x45c4ffad8d18d7a1, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ - u384 { - limb0: 0xb3556e8b325bcba83491750f, - limb1: 0x20b413c28750bc90e2cea54b, - limb2: 0x48ddbddb9d00f1e6, - limb3: 0x0 - }, - u384 { - limb0: 0xd784a91a5e09d24e7c4a265c, - limb1: 0xffffffffffffffff7c074593, - limb2: 0x3fffffffffffffff, - limb3: 0x0 - } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x40b0711334b3c9868b4599a6, - limb1: 0xaa0d48f3581550410fdbded0, - limb2: 0x62ce0aeaca06fd57, - limb3: 0x0 - }, - u384 { - limb0: 0x3af6239f92c3c9374d4dd31d, - limb1: 0x40b48b8ae2c4342f8856597f, - limb2: 0x22fa450fbfdb33f, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0x5ca52eeaa24e14f348d9c520, - limb1: 0xe52e4c8a649876ca986bc47c, - limb2: 0x67b984afde522ce1, - limb3: 0x0 - }, - u384 { - limb0: 0x10ded84279ea38cde4e91b71, - limb1: 0x68737e427f15a10a1fb4c1bb, - limb2: 0x6edfe0985e380a70, - limb3: 0x0 - }, - u384 { - limb0: 0x4ba439fb641b44795a0e766d, - limb1: 0xe6cf0b002c84a2915ae89e7e, - limb2: 0x3966621425eebedf, - limb3: 0x0 - } - ] - .span(), - b_den: array![ - u384 { - limb0: 0xa2fabbb2d54595adcebbac83, - limb1: 0x9558ada9a84bbc0edb300a87, - limb2: 0x3d736d1bdbb5741d, - limb3: 0x0 - }, - u384 { - limb0: 0x92ed6fee18a648d0812d7ad8, - limb1: 0x2e340faa337865a59548719c, - limb2: 0x3d316710005b65d9, - limb3: 0x0 - }, - u384 { - limb0: 0x49d4bddbcc6570bdeabe8a26, - limb1: 0xf36ddee75164dbb5dd3cf07d, - limb2: 0x5c5a8e2cd2d30c07, - limb3: 0x0 - }, - u384 { - limb0: 0x4d559c0ae125ab158401b0e6, - limb1: 0xdba52a00b9908e177b94952d, - limb2: 0x401cb7be6fc0bc3d, - limb3: 0x0 - }, - u384 { - limb0: 0x3af6239f92c3c9374d4dd31d, - limb1: 0x40b48b8ae2c4342f8856597f, - limb2: 0x22fa450fbfdb33f, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - }; - let derive_point_from_x_hint = DerivePointFromXHint { - y_last_attempt: u384 { - limb0: 0xe8ace386fe3ea98e63f61ccc, - limb1: 0xdd024595a0f790ac70aafef1, - limb2: 0x1a35e333bc24f91c, - limb3: 0x0 - }, - g_rhs_sqrt: array![].span(), - }; - let points = array![ - G1Point { - x: u384 { - limb0: 0x7238f02b9f20e09c2181a557, - limb1: 0x2cedcc5b0be371c337fd7e9e, - limb2: 0x41f3bbeb280fe8a2, - limb3: 0x0 - }, - y: u384 { - limb0: 0xf046f8cd6e5a75fca71dd19b, - limb1: 0x892b4613ef5c58df4ef692a4, - limb2: 0x7527fa36f5738847, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x82e4a33f8e4e5881e791d86b, - limb1: 0xbcb062435ae8ec5fdaeac4bf, - limb2: 0x179e1bae9e0f9f34, - limb3: 0x0 - }, - y: u384 { - limb0: 0x19657783ba5660e255c21849, - limb1: 0x7ed7474bcea7551fc71e46bc, - limb2: 0x596c0a76b75f4756, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0xa6832ef7fe97f77de7cd9a62, - limb1: 0xf18a70dbf1dc5a76c685da4a, - limb2: 0x6ac1b7bfc409119f, - limb3: 0x0 - }, - y: u384 { - limb0: 0x7751161b1a9ef600b865a5af, - limb1: 0xed28aad4835a39a9e8318ceb, - limb2: 0x572e95c429f0e07a, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x5e71d0fc5d1c016834779173, - limb1: 0xadd002dfc0ebf1b25c23c252, - limb2: 0x40a868d928ae5233, - limb3: 0x0 - }, - y: u384 { - limb0: 0x423fa293418d6e3f59c2e830, - limb1: 0x7a4bcf26f93e71ffd903e68e, - limb2: 0x7837b851ad8da6e3, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x5907087f8e8e4dacdd039371, - limb1: 0xc390e2073b4e64b9ede0570d, - limb2: 0x6b039a85962f1594, - limb3: 0x0 - }, - y: u384 { - limb0: 0xc45eefa03155b8f7eb780b42, - limb1: 0x3db57eb22f9b0394a4d7b78e, - limb2: 0x6cf45b6d90883f60, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x60dd8ed0a614b596fb37eb1f, - limb1: 0xabb99f371be41e26ec2d8e4b, - limb2: 0x187ecd72c40f159d, - limb3: 0x0 - }, - y: u384 { - limb0: 0x7b66c9263de5e1663622985d, - limb1: 0x118b032cc27a1d6dd192eca6, - limb2: 0x312fb405788616e8, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0xf4ac3e1f1f068dd64c86fdda, - limb1: 0x24594e591d82a7f964b5ec9f, - limb2: 0x6ca311b5421c57fc, - limb3: 0x0 - }, - y: u384 { - limb0: 0x42745cd7b146012455434d0f, - limb1: 0x6aa4f552b7bdc93a613bd9df, - limb2: 0x5832a065d7199c7a, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x341786b7854e3e0104e2e416, - limb1: 0xbb368441c295043bee7b1d2f, - limb2: 0x35c88542e11463b4, - limb3: 0x0 - }, - y: u384 { - limb0: 0x3c36e7fcc4e2fde28308132, - limb1: 0xf58043d0e3d1a36d1f8137fc, - limb2: 0x58c1508fbe8868a8, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x560a37951d69a6c8d7138239, - limb1: 0x462d454a509846714184ef71, - limb2: 0x3aaf8fb4f60e3e9c, - limb3: 0x0 - }, - y: u384 { - limb0: 0xb70cea4e13db5322899753f9, - limb1: 0x6c62656b6d7ffb5c2af44fd5, - limb2: 0x4b5ae4567dc6a7c0, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0xb06cccb4b425d5179f528270, - limb1: 0xce017c281a3861570706cd86, - limb2: 0x42d14846dc4860ab, - limb3: 0x0 - }, - y: u384 { - limb0: 0x646bf486f6e77663c597ece8, - limb1: 0xd87c8c36a430a6fe42305b88, - limb2: 0x7964c7742b6f13da, - limb3: 0x0 - } - }, - G1Point { - x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - }, - ] - .span(); - let scalars = array![ - u256 { low: 0x0, high: 0x0 }, - u256 { - low: 0x2648ee38e07405eb215663abc1f254b8, high: 0x29164ebd7ab792809e469e6ec62b2c8 - }, - u256 { - low: 0x85940927468ff53d864a7a50b48d73f1, high: 0x6e2edd0d977e9933c49d76fcfc6e625 - }, - u256 { - low: 0xd344749096fd35d0adf20806e5214606, high: 0x8ce86e89466e4726b5f5241f323ca74 - }, - u256 { - low: 0x30bcab0ed857010255d44936a1515607, high: 0x8ac57cfbb42e0b20426465e3e37952d - }, - u256 { - low: 0x5f3f563838701a14b490b6081dfc8352, high: 0xda2ddc3552116dd2ba4b180cb69ca38 - }, - u256 { - low: 0xc87a746319c16a0d0febd845d0dfae43, high: 0x7003168b29a8b06daf66c5f2577bffa - }, - u256 { - low: 0x176ea1b164264cd51ea45cd69371a71f, high: 0x3b6a666fb0323a1d576d4155ec17dbe - }, - u256 { - low: 0x9edfa3da6cf55b158b53031d05d51433, high: 0x23d79a9428a1c22d5fdb76a19fbeb1d - }, - u256 { - low: 0x4d125e7fa59cec98126cbc8f38884479, high: 0x1f40f472e2950656fa231e959acdd98 - }, - u256 { - low: 0x98b33c6e0a14b90a7795e98680ee526e, high: 0xc8555a9fcfcfa81b306d70019d5f970 - }, - ] - .span(); - - let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 4 - ); - assert!( - res == G1Point { - x: u384 { - limb0: 0x9689eff36e40c5d4f7aa9e26, - limb1: 0x4fca2ba1936adf005148db8e, - limb2: 0x61682ebc3050d122, - limb3: 0x0 - }, - y: u384 { - limb0: 0x8c505d80ce528ebd36300c7b, - limb1: 0xad9bf81c921211418dd07111, - limb2: 0x228d83528b2b7ad0, - limb3: 0x0 - } - } - ); - } - - - #[test] - fn test_msm_ED25519_12P() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - ] - .span(), - array![ - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - ] - .span(), - array![ - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - ] - .span(), - array![ - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - ] - .span(), - array![ - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - ] - .span(), - array![ - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - ] - .span() - ), - ( - array![ - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - ] - .span(), - array![ - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - ] - .span() - ), - ] - .span() - ); - let msm_hint = MSMHint { - Q_low: G1Point { - x: u384 { - limb0: 0x12d1b444ec39ae839807573c, - limb1: 0x50cb70680dcb8804e2a1c6cb, - limb2: 0x5d529b896d65150a, - limb3: 0x0 - }, - y: u384 { - limb0: 0xf0fbd5d96b7a64beee6206b7, - limb1: 0x6982ef15e68d6f6c204de74a, - limb2: 0x12537fc27fadb2bf, - limb3: 0x0 - } - }, - Q_high: G1Point { - x: u384 { - limb0: 0x5a69deb6f89b3673b868547b, - limb1: 0x4bff35db66fccba1976a7225, - limb2: 0x77f294fd97e3f80d, - limb3: 0x0 - }, - y: u384 { - limb0: 0x9d0b7c8c5ae15973adfe68fd, - limb1: 0xdcfad41176059fc275b3c281, - limb2: 0x56e82a35fc7cab60, - limb3: 0x0 - } - }, - Q_high_shifted: G1Point { - x: u384 { - limb0: 0x9e594e333ff5e969a7e67fe2, - limb1: 0x6f1c567b169fb2641e9523af, - limb2: 0x5f281f6b0b94ae25, - limb3: 0x0 - }, - y: u384 { - limb0: 0xfcf298a0835b6605577aba8d, - limb1: 0xcbc74b0c4dd9416799ec7c87, - limb2: 0x2bc94fc7f719122c, - limb3: 0x0 - } - }, - SumDlogDivLow: FunctionFelt { - a_num: array![ - u384 { - limb0: 0xdb44e4d5d39e5b445fd461cd, - limb1: 0x5de76996b6025fbbb5cb57b, - limb2: 0x16cd6688877abc88, - limb3: 0x0 - }, - u384 { - limb0: 0x35971a35f5985164f7bb1fec, - limb1: 0x7495a32a8afec0a9ddf3c128, - limb2: 0x2478ea95fce07ee2, - limb3: 0x0 - }, - u384 { - limb0: 0x40a90497e19d5777a45457a7, - limb1: 0x4b0ef5a2d7c33a6a9564018b, - limb2: 0x2791cfb0b48683e0, - limb3: 0x0 - }, - u384 { - limb0: 0x3ca5bf1da07f04bcaac55a41, - limb1: 0x3969c32ff4aecc516da66441, - limb2: 0x4c4c8e919901cae8, - limb3: 0x0 - }, - u384 { - limb0: 0x940b6df952ba977fcd0eec41, - limb1: 0x484764488eac704c20aa8b90, - limb2: 0x1374bddd4c669814, - limb3: 0x0 - }, - u384 { - limb0: 0x3d167b842edfc1f9810c5ba, - limb1: 0x4e7272f688ddc0b9a0aa8e31, - limb2: 0x67385e6205d26e96, - limb3: 0x0 - }, - u384 { - limb0: 0xb364f4bfac648412726f9278, - limb1: 0xcf5c58ab88c40cfda7008063, - limb2: 0x11a606b808172898, - limb3: 0x0 - }, - u384 { - limb0: 0x4ba33ce17650ebfc04e2bee9, - limb1: 0xd0c8493b971a5a0b8503b1ce, - limb2: 0x784a3b72924bc7f2, - limb3: 0x0 - }, - u384 { - limb0: 0xbc8d5443c3ddd12c47dc8589, - limb1: 0xf5e5481ec85c0703a5b0967a, - limb2: 0x43227df665e43653, - limb3: 0x0 - }, - u384 { - limb0: 0x983f456d4beea2bcffaf4f0f, - limb1: 0xd74e6c3348fcdac2b6a63053, - limb2: 0x1a202b1f3fbc347a, - limb3: 0x0 - }, - u384 { - limb0: 0x553c93aa10d8d0c2a8db9626, - limb1: 0xffffffffffffffff71963fab, - limb2: 0x7fffffffffffffff, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x25b10eb6ec116f6b3b17dde5, - limb1: 0x1df3aa520847b39ee191b363, - limb2: 0x3f195c6d1aaa8987, - limb3: 0x0 - }, - u384 { - limb0: 0xb95f60050dd136130e5a4ee4, - limb1: 0xeaa6e9d0efddbc65d61247f7, - limb2: 0x768030bca15a666b, - limb3: 0x0 - }, - u384 { - limb0: 0xc772b6dc53990a4937b654f0, - limb1: 0x54ef97c07cea208239fa5dad, - limb2: 0x270261942563a73, - limb3: 0x0 - }, - u384 { - limb0: 0x2119c826f0c445ae91c2c91e, - limb1: 0x29c88debd390eddeca0f9403, - limb2: 0x4657be6ee5f550c1, - limb3: 0x0 - }, - u384 { - limb0: 0x80b4518376e20ef05e9c682a, - limb1: 0x1452591ae3c8749ab97eb5f3, - limb2: 0x20b26b915ff65dfe, - limb3: 0x0 - }, - u384 { - limb0: 0xe41a24a56d81b4fc7ade087, - limb1: 0x1b00a518b4b0c73a91a73055, - limb2: 0x4f7e02deb39ad167, - limb3: 0x0 - }, - u384 { - limb0: 0x94fa64f00e1b8546c3c1946b, - limb1: 0x4fd5c3a628f89b0dd08476a, - limb2: 0x7d232e0e1d9587c8, - limb3: 0x0 - }, - u384 { - limb0: 0xd1fbbbd833aebeb812de048a, - limb1: 0xee80e4a9cf8cfdd8116f491d, - limb2: 0x49359c7ad7a5438c, - limb3: 0x0 - }, - u384 { - limb0: 0x941082b0c5a458c4b05ff101, - limb1: 0x85f549ed9f8cfd4ca12ccffa, - limb2: 0x1a9d04f8d06b9165, - limb3: 0x0 - }, - u384 { - limb0: 0xd0cc426303f89577717267c5, - limb1: 0xa292e0a655c7a1b7ad8524a, - limb2: 0x1a37757b7186a962, - limb3: 0x0 - }, - u384 { - limb0: 0x2970c0750616ebf58e83de77, - limb1: 0xdd0b47488b254688003a4e87, - limb2: 0x2b2f890fcf29416a, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0xabc92f01e698d284665f91f4, - limb1: 0xe3e269f37e33c385a1823a1f, - limb2: 0x2ff379ce980ddee2, - limb3: 0x0 - }, - u384 { - limb0: 0xde7d16c79c9691830d5e7850, - limb1: 0xbf31755cf2df1d4d5570e36, - limb2: 0x708d0b996083e242, - limb3: 0x0 - }, - u384 { - limb0: 0xb83cf02a303d184135d8df6f, - limb1: 0xc6f7e0fb8ceef48147dbe92b, - limb2: 0x463c937a63c3029f, - limb3: 0x0 - }, - u384 { - limb0: 0xdeaa6fb072e91d32f7855129, - limb1: 0xc9cc8b7f4a9ec04e9d8eee9c, - limb2: 0x73ff694d61d81e5b, - limb3: 0x0 - }, - u384 { - limb0: 0x97f1d0f288df90bdae0fafcf, - limb1: 0xb93021dfdfb29110b23deff9, - limb2: 0x5615b78cb49ecab6, - limb3: 0x0 - }, - u384 { - limb0: 0x9e16bce6faa8b8a4d67fc604, - limb1: 0xbf2670ae2c775ccb2cdc0ec0, - limb2: 0x3b176ae13263e5e9, - limb3: 0x0 - }, - u384 { - limb0: 0xbb808385758f7c64f1c6edab, - limb1: 0xf6f328dae073fa5bbab8523f, - limb2: 0x6389ee27802ddda1, - limb3: 0x0 - }, - u384 { - limb0: 0x647acc4fcf25308ecd66202e, - limb1: 0x5baacfc90e2278f0661f8730, - limb2: 0x1e2d1f54917b0650, - limb3: 0x0 - }, - u384 { - limb0: 0xd868b39bdd3d898368357a63, - limb1: 0xb356686da6cf9512439c0ee8, - limb2: 0x248ca4eb16f06e7a, - limb3: 0x0 - }, - u384 { - limb0: 0xbe9c3f38ed44c93f0ad5b8b9, - limb1: 0x5a059ac65aa31c1aef588a8a, - limb2: 0x3ea9c980cf2f76b5, - limb3: 0x0 - }, - u384 { - limb0: 0x758defcb11d9b358981bf023, - limb1: 0x410bef2c30189706daefabfc, - limb2: 0x6a1f466263c41c27, - limb3: 0x0 - }, - u384 { - limb0: 0x24ac099c781a4f817a931137, - limb1: 0x37190532f3e54f2fb26a5a2, - limb2: 0x479bb748998a32ff, - limb3: 0x0 - }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { - limb0: 0x5bf741ccaf24c0d5ca7ba758, - limb1: 0x79362ac8e5b6b83adba1c963, - limb2: 0x323212bf74cd0fec, - limb3: 0x0 - }, - u384 { - limb0: 0xfafa7d8fd48650b5a5eb46ad, - limb1: 0xbea8660ed84931d5ad2c33e8, - limb2: 0x52e64034cfe719a3, - limb3: 0x0 - }, - u384 { - limb0: 0x14cf5440d577a9e6e03c4c12, - limb1: 0xc93a80f2cf907a21df1578a5, - limb2: 0x55ac51dc45727977, - limb3: 0x0 - }, - u384 { - limb0: 0x695d52f129673ab43e9e4159, - limb1: 0xf45510d443f991e40a1ebd4, - limb2: 0x560cf07cc38f881a, - limb3: 0x0 - }, - u384 { - limb0: 0xe1cdff59d458b7f938d64240, - limb1: 0x5497430c3e9c36c2a7146b9, - limb2: 0x1f4db48a0d6cf3b0, - limb3: 0x0 - }, - u384 { - limb0: 0x45afd9d15360d2a97acf8804, - limb1: 0xd99e7f7d812632bfea922c5d, - limb2: 0x7eb4b3c8efe3787b, - limb3: 0x0 - }, - u384 { - limb0: 0x83d63929850b1c64291cc07f, - limb1: 0x3718ff66d8c9ce41fb1a1837, - limb2: 0x709937b8f73f9ba, - limb3: 0x0 - }, - u384 { - limb0: 0xf5c5bbe50228077178dd6e17, - limb1: 0x15f81ada464e341d22902b4c, - limb2: 0x10d8e606c53130a2, - limb3: 0x0 - }, - u384 { - limb0: 0x205b3cdc823753f7101a681d, - limb1: 0xd42222d31a190f7fed4d4fdf, - limb2: 0x5b2e2001fafcedc4, - limb3: 0x0 - }, - u384 { - limb0: 0x4288d160040927e8a2c3f91b, - limb1: 0x4b55e49a75ebb3e07954e48f, - limb2: 0x24256ebb54e3afe0, - limb3: 0x0 - }, - u384 { - limb0: 0x2dc343e58459d9924722f337, - limb1: 0xce98274a0dadd57523f27fab, - limb2: 0x75dc49a3e486ff68, - limb3: 0x0 - }, - u384 { - limb0: 0x72e26997ee1764d693fb3965, - limb1: 0xb3209a776fa2839878037733, - limb2: 0x47d7d1f5955b49e6, - limb3: 0x0 - }, - u384 { - limb0: 0xdd716d5ab06a77066a2e7ef2, - limb1: 0x3bc10f17c6d7b7f1e69108a7, - limb2: 0x7786224f17406848, - limb3: 0x0 - }, - u384 { - limb0: 0x2970c0750616ebf58e83de77, - limb1: 0xdd0b47488b254688003a4e87, - limb2: 0x2b2f890fcf29416a, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() + limb0: 0x47bec5e5e1f295cdcd7689e9, + limb1: 0xcb171283d651071401630545, + limb2: 0xa401c0298cd5f83, + limb3: 0x0, + }, + y: u384 { + limb0: 0xe5d2831c05e61956d8725b57, + limb1: 0x6bb84991518471727263fde0, + limb2: 0x15e82f62ee3caf32, + limb3: 0x0, + }, + }, + Q_high_shifted: G1Point { + x: u384 { + limb0: 0xd15f8e23aaf3af13ab5ba169, + limb1: 0xb0ff9631870f189040aec289, + limb2: 0x1c77509b88d3bab7, + limb3: 0x0, + }, + y: u384 { + limb0: 0xb620e3716b30b1003beab421, + limb1: 0x1d6aad1137155249c5d4f785, + limb2: 0xbf95d2db0be45f9, + limb3: 0x0, + }, }, - SumDlogDivHigh: FunctionFelt { + RLCSumDlogDiv: FunctionFelt { a_num: array![ u384 { - limb0: 0xd4932627f99e857faad37206, - limb1: 0xd9cf43a1447d9ed5a009ca4, - limb2: 0x67e5a311743fe931, - limb3: 0x0 - }, - u384 { - limb0: 0x152f1aa8d954f25ace61acc0, - limb1: 0x3087b93a8adb27a0fc4ea3bf, - limb2: 0x34447a197492dbe1, - limb3: 0x0 - }, - u384 { - limb0: 0xf0aec22414d16dd36fc7b237, - limb1: 0xe97d05d001e9ce9bff67fdce, - limb2: 0x518875fc65490c02, - limb3: 0x0 - }, - u384 { - limb0: 0xc844185c504657197d01a1db, - limb1: 0xe5db1892054c60268a557d1b, - limb2: 0x6e21f37cdf241220, - limb3: 0x0 - }, - u384 { - limb0: 0x85f6007c5824f145a226dc69, - limb1: 0x98207ea8370d783baf7749c1, - limb2: 0x61a1c3450394c690, - limb3: 0x0 - }, - u384 { - limb0: 0xa2d9b96367a5a418dd5ef304, - limb1: 0xff7f58a4b9f94b3e202d3a28, - limb2: 0x1832e7aead2a6fe9, - limb3: 0x0 - }, - u384 { - limb0: 0xc15aff659923f922a0b62a4, - limb1: 0x22d4864c2805280a5e43e363, - limb2: 0x239acb03a25e1fe1, - limb3: 0x0 - }, - u384 { - limb0: 0x6d8e1bc8dd1778467abd8970, - limb1: 0x96b83caeffba04db7293663e, - limb2: 0x58fa49c3736799cc, - limb3: 0x0 + limb0: 0xbba74f84d6d3a3c60dc3cd41, + limb1: 0xf36f80b4b1a3f69f44ab1b6a, + limb2: 0x16adf9385577d09, + limb3: 0x0, }, u384 { - limb0: 0x1168c979a7bae62182f560d0, - limb1: 0xa3412c978187eda909e6fa02, - limb2: 0x272c5e45816fd629, - limb3: 0x0 + limb0: 0xe3748a5201028055d851d0da, + limb1: 0x7d4d0c483a8050c66e35c6e1, + limb2: 0xe58ca0d31a6a8d2, + limb3: 0x0, }, u384 { - limb0: 0x928d0096723f5ad8e55f1cf5, - limb1: 0xc82351bbba54b7b37a7ee38b, - limb2: 0x2eccaef0a0bf526c, - limb3: 0x0 + limb0: 0xa59f084b703ac17683ca07f9, + limb1: 0x7f1a924087f5442a95a66068, + limb2: 0x284cb90ec99aa375, + limb3: 0x0, }, u384 { - limb0: 0xea63d93f9ccc67726c917ba9, - limb1: 0x1b0d91f4, - limb2: 0x4000000000000000, - limb3: 0x0 + limb0: 0x1c72c56de666104df8056a9f, + limb1: 0x3b0db6cd914b52831fc41396, + limb2: 0x1953864f49cc904c, + limb3: 0x0, }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), a_den: array![ u384 { - limb0: 0x2a54d54fb5687603745272f0, - limb1: 0x632e0b23d0bd38512245985b, - limb2: 0x2a8654e484dbf0f0, - limb3: 0x0 - }, - u384 { - limb0: 0xa683e16b5989a8c130afd1b1, - limb1: 0x8c20aa6e3eb137a9405361d4, - limb2: 0x786a2a6c729998d9, - limb3: 0x0 - }, - u384 { - limb0: 0xef6bfe443901a6ef183a78ae, - limb1: 0x719b099e558da97b0377185c, - limb2: 0x275ba9c58f30faf9, - limb3: 0x0 - }, - u384 { - limb0: 0xbeb0a637f931564d796f7be4, - limb1: 0xd75d2b8e1a5bd92857f18033, - limb2: 0xd3654095e5d1543, - limb3: 0x0 - }, - u384 { - limb0: 0x1e1ec8b1a3f923d94a7bd1f1, - limb1: 0xc901d97f95ffb41c5cacc06b, - limb2: 0x7d2881e9a1d53558, - limb3: 0x0 - }, - u384 { - limb0: 0x44aea2ccbb9687bdb7ebf093, - limb1: 0xfedec7e4b2e36ed60d04308c, - limb2: 0x7cfe726e18e71eb8, - limb3: 0x0 - }, - u384 { - limb0: 0x4f8566e0b232b9cb43a967f4, - limb1: 0xda83bf192529ff5db2cd32e2, - limb2: 0x4355d27a7c60cf8d, - limb3: 0x0 - }, - u384 { - limb0: 0xf6ad08cb5c267580cdc3c4be, - limb1: 0xe55f6bf87ff219214ef4259c, - limb2: 0x5345f9dd0bbdb275, - limb3: 0x0 + limb0: 0x36208c0885fb7058abddd334, + limb1: 0x3db412a5e6005a05ab374adf, + limb2: 0x2b398812b30eb292, + limb3: 0x0, }, u384 { - limb0: 0xb78ec1a02846e8a5ee2e33d7, - limb1: 0xc402ad4a625307437b4bd666, - limb2: 0x71bcf953b849b780, - limb3: 0x0 + limb0: 0xdf68dc78906c44847536a23d, + limb1: 0xa6bbd9ceb18275da98d88a68, + limb2: 0x11b898e607064ade, + limb3: 0x0, }, u384 { - limb0: 0xd56c9a219cce14bd3c2d323a, - limb1: 0x4ca4850ac67fff405bc6dfc8, - limb2: 0x1ff177fed17bd235, - limb3: 0x0 + limb0: 0x6f0aaf5b805720e403eddcdc, + limb1: 0x11afb25fbfae966d38aea0d6, + limb2: 0xc14f6e4a6a37797, + limb3: 0x0, }, u384 { - limb0: 0xe1d89602f9b564056e22e138, - limb1: 0xe1d781d531f402eb4b71a32c, - limb2: 0x108f8f9ba4aa5e67, - limb3: 0x0 + limb0: 0x712f22263ef5e91c488b0722, + limb1: 0xbf68443cfd66208b1f0a2b4e, + limb2: 0x19990ced3afb3faa, + limb3: 0x0, }, u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), b_num: array![ u384 { - limb0: 0x9c045cba449207ff15d7a416, - limb1: 0x8991e57020e268c74c31bd49, - limb2: 0x47b174498b73d2f4, - limb3: 0x0 - }, - u384 { - limb0: 0xa8e68dcc98bdd022a5c2d119, - limb1: 0x85b28603931eb2067621a906, - limb2: 0x27f22d992a6cf6, - limb3: 0x0 - }, - u384 { - limb0: 0x40610d4331ed47884d22fdc0, - limb1: 0x8667e33afb983a0f9f6cd8f6, - limb2: 0x36abca8e90383621, - limb3: 0x0 - }, - u384 { - limb0: 0x92753f16843d34a787241acd, - limb1: 0xe4a9b51d2febd74660d86212, - limb2: 0x4fc8fa6648b86d64, - limb3: 0x0 - }, - u384 { - limb0: 0xd4b600b1cd38d6ffd75471e7, - limb1: 0x21e72951f2fe8780c689a3c, - limb2: 0x1f7cba236739269b, - limb3: 0x0 - }, - u384 { - limb0: 0x77ffe88894b7970b21fd7df1, - limb1: 0x6187b44397859c59226a181a, - limb2: 0x34bcfaf92767c6d2, - limb3: 0x0 - }, - u384 { - limb0: 0xd1c4ea2dee6523409fe2c819, - limb1: 0x58484a67caad1dd6fc57a68c, - limb2: 0x254f7bde36fe537b, - limb3: 0x0 - }, - u384 { - limb0: 0x1a4cd9a500f15c6804a4eec3, - limb1: 0x44ebc957dfc81f6b1cf29245, - limb2: 0x19d0105a2c739492, - limb3: 0x0 + limb0: 0x210edfad5881dc6bf8ec5f58, + limb1: 0x3c354ff8e0cba98c03e7c606, + limb2: 0x1d8c9c28e2545384, + limb3: 0x0, }, u384 { - limb0: 0x5f31eee51a17a3c2987f5db5, - limb1: 0xfb982635f63379c319dcb8f8, - limb2: 0x5cc6bda70a34d0e1, - limb3: 0x0 + limb0: 0x95055f0bf55a751df0f89316, + limb1: 0x652b61b3a2e6073c3af64fcc, + limb2: 0x23080aa3e59e0cc4, + limb3: 0x0, }, u384 { - limb0: 0x6a43ea88816d97ed05bd9203, - limb1: 0x3615dd127ae56e401e5a5aea, - limb2: 0x25c0fa0517f2d46f, - limb3: 0x0 + limb0: 0x9e36b036fbad71c308a43548, + limb1: 0x5261fa4f1b50b2519194e556, + limb2: 0x218c5e7ffb07ea5e, + limb3: 0x0, }, u384 { - limb0: 0x2eb1fc1bb6dcaf89169fff00, - limb1: 0x3a95a54e22dcfa183c1d1578, - limb2: 0x462cbbe0a0ca8bb1, - limb3: 0x0 + limb0: 0xc8285d3649f36c8f5daaa331, + limb1: 0x3f053e816c7552d20ecadbc7, + limb2: 0x2527827f86516567, + limb3: 0x0, }, u384 { - limb0: 0xf192e7acb6608fd72b614f9c, - limb1: 0x7f629b1fd7cdb946be293fff, - limb2: 0x283cb88b3687cb57, - limb3: 0x0 + limb0: 0x7b5fb11b84d5950d23c96fa4, + limb1: 0xe2b051a2b9c1cc88b1d77617, + limb2: 0x1edee19e79e4e9ad, + limb3: 0x0, }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), b_den: array![ u384 { - limb0: 0xe28e3b12e7a33edad715a938, - limb1: 0x8f9a4c1e4d82326cba527c10, - limb2: 0x102e52f670374112, - limb3: 0x0 + limb0: 0xd17e0eff19b138dc529f7f0e, + limb1: 0x487bac84aefe5d55d2a30b7a, + limb2: 0x20e3fb5256c8d763, + limb3: 0x0, }, u384 { - limb0: 0x359d75b5349f9b6773c3d674, - limb1: 0x969ecae128c360cb0ea8480a, - limb2: 0x36daa933692e1589, - limb3: 0x0 + limb0: 0x35c8cadc752441768726e970, + limb1: 0x3be347b593060932330834a9, + limb2: 0x4c57c3f33e14072, + limb3: 0x0, }, u384 { - limb0: 0xcfa187172a5429a7c1ecbc3f, - limb1: 0x6dfec27eb6164dbc4e790e76, - limb2: 0x4018d8176a1637e1, - limb3: 0x0 + limb0: 0x4d200e12810562ac0bc99694, + limb1: 0x350f171f3f0bc347aa0be283, + limb2: 0x243ee4adf3ea66c5, + limb3: 0x0, }, u384 { - limb0: 0x7f3d28bd2d4f3d9d1077bf97, - limb1: 0x63832d28c54b1b20e4ad16f1, - limb2: 0x6f0ae3ed4ba89e6, - limb3: 0x0 + limb0: 0xb8ca5d60ca9c137fd484ee0c, + limb1: 0xb4c53efdb300aebd952f7a7, + limb2: 0x173c11f4a19d313f, + limb3: 0x0, }, u384 { - limb0: 0x118a790096d7c5cd864e7a5e, - limb1: 0xe113ee755f7d0005ad95f893, - limb2: 0x35f1cdcab1163c8f, - limb3: 0x0 + limb0: 0xdf68dc78906c44847536a240, + limb1: 0xa6bbd9ceb18275da98d88a68, + limb2: 0x11b898e607064ade, + limb3: 0x0, }, u384 { - limb0: 0xff78b43870f591e351b6b971, - limb1: 0xa28dcebb41b8578c03c26613, - limb2: 0x20fd5579566710b4, - limb3: 0x0 + limb0: 0x6f0aaf5b805720e403eddcdc, + limb1: 0x11afb25fbfae966d38aea0d6, + limb2: 0xc14f6e4a6a37797, + limb3: 0x0, }, u384 { - limb0: 0x3c38f77ff25e4c441053f8d6, - limb1: 0xfd60a7377d811aa3edc3ac06, - limb2: 0x452076b40bccad62, - limb3: 0x0 - }, - u384 { - limb0: 0xa2bfcd1da6b87d7b1a636c8b, - limb1: 0x38ba9de58707d24373d30997, - limb2: 0x469033654f6a3d00, - limb3: 0x0 - }, - u384 { - limb0: 0x1f3ff603cc4633bb5508a611, - limb1: 0x3c6c7a761513f7af9d31685c, - limb2: 0x29cfa20b22a9614b, - limb3: 0x0 - }, - u384 { - limb0: 0x9a189a8ec19acbbe3bdb93d0, - limb1: 0x82a7afe182972c8bae65b020, - limb2: 0x5ffe8f227ea3c24, - limb3: 0x0 - }, - u384 { - limb0: 0x2059db424e35473dba14b875, - limb1: 0x80e868b87c6f594e483df09, - limb2: 0x269f1df5a682c1c1, - limb3: 0x0 - }, - u384 { - limb0: 0xa249a84852697e0eec7e3805, - limb1: 0xdf964499f56ec684b116776f, - limb2: 0x6936510caea6bd02, - limb3: 0x0 - }, - u384 { - limb0: 0xe211c519493ff64c34e94967, - limb1: 0x7e3c661827fb3d16c77f9625, - limb2: 0x7d4024d27735911b, - limb3: 0x0 - }, - u384 { - limb0: 0xe1d89602f9b564056e22e138, - limb1: 0xe1d781d531f402eb4b71a32c, - limb2: 0x108f8f9ba4aa5e67, - limb3: 0x0 + limb0: 0x712f22263ef5e91c488b0722, + limb1: 0xbf68443cfd66208b1f0a2b4e, + limb2: 0x19990ced3afb3faa, + limb3: 0x0, }, u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x934671c7a1167ed93ade9628, - limb1: 0x98ace981e4f674f9668fab8c, - limb2: 0x7a85cbe8c8fdcf94, - limb3: 0x0 - }, - u384 { - limb0: 0xd784a91a5e09d24e7c4a265c, - limb1: 0xffffffffffffffff7c074593, - limb2: 0x3fffffffffffffff, - limb3: 0x0 - } - ] - .span(), - a_den: array![ - u384 { - limb0: 0xa7a1657d4b465f527f2f3a54, - limb1: 0xd0606bfc0dbf1d9a448ae64d, - limb2: 0x7331f4a2e62b9c20, - limb3: 0x0 - }, - u384 { - limb0: 0x73cd315c76ee0229fb12b7d, - limb1: 0x44e473a9826381fa4a006a2b, - limb2: 0x28e54b975c8759cd, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0x275ec955c0f3b6bcfffb4910, - limb1: 0x854f095f2e8b7ab3a1b3fe67, - limb2: 0x6cef0595cce71e8f, - limb3: 0x0 - }, - u384 { - limb0: 0x6bbf20bfffdfe473b6234424, - limb1: 0x196d64364d38a11fcfac329f, - limb2: 0x36248c053bbd00e8, - limb3: 0x0 - }, - u384 { - limb0: 0x6ca813bc47fee425e920bb92, - limb1: 0x15cb86ae6f46118422599133, - limb2: 0x3c61b4077d281f72, - limb3: 0x0 - } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), - b_den: array![ - u384 { - limb0: 0xe787a9e30b6310b244f0a8d1, - limb1: 0xa92e77b70b036a1f649bc431, - limb2: 0x361accb0d2ee31a, - limb3: 0x0 - }, - u384 { - limb0: 0x3580dfba30b97d37aa9e49c9, - limb1: 0x663c37b0d1de4e0f6e480e21, - limb2: 0x5d77dc44cca63176, - limb3: 0x0 - }, - u384 { - limb0: 0xc55c5a8afd35357b92874a72, - limb1: 0xb4f10b58d4fc6bb0afd144b9, - limb2: 0xa5b17075e9ddf5d, - limb3: 0x0 - }, - u384 { - limb0: 0xb4469074f7b840e177eb5194, - limb1: 0x1f84d096f3a5b70b0439caa, - limb2: 0x5080a1768be55b07, - limb3: 0x0 - }, - u384 { - limb0: 0x73cd315c76ee0229fb12b7d, - limb1: 0x44e473a9826381fa4a006a2b, - limb2: 0x28e54b975c8759cd, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() }, }; let derive_point_from_x_hint = DerivePointFromXHint { y_last_attempt: u384 { - limb0: 0x3c276a53f90132ac81e4daa7, - limb1: 0xb1e1dd19f096db9feda0408e, - limb2: 0x22f305051b370945, - limb3: 0x0 + limb0: 0x48c8946a24cb60456d420600, + limb1: 0x9ed381bdd7c9eeb7bafa2d1, + limb2: 0xa24e6a0b6a74206, + limb3: 0x0, }, g_rhs_sqrt: array![].span(), }; let points = array![ G1Point { x: u384 { - limb0: 0x7238f02b9f20e09c2181a557, - limb1: 0x2cedcc5b0be371c337fd7e9e, - limb2: 0x41f3bbeb280fe8a2, - limb3: 0x0 - }, - y: u384 { - limb0: 0xf046f8cd6e5a75fca71dd19b, - limb1: 0x892b4613ef5c58df4ef692a4, - limb2: 0x7527fa36f5738847, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x82e4a33f8e4e5881e791d86b, - limb1: 0xbcb062435ae8ec5fdaeac4bf, - limb2: 0x179e1bae9e0f9f34, - limb3: 0x0 - }, - y: u384 { - limb0: 0x19657783ba5660e255c21849, - limb1: 0x7ed7474bcea7551fc71e46bc, - limb2: 0x596c0a76b75f4756, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0xa6832ef7fe97f77de7cd9a62, - limb1: 0xf18a70dbf1dc5a76c685da4a, - limb2: 0x6ac1b7bfc409119f, - limb3: 0x0 - }, - y: u384 { - limb0: 0x7751161b1a9ef600b865a5af, - limb1: 0xed28aad4835a39a9e8318ceb, - limb2: 0x572e95c429f0e07a, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x5e71d0fc5d1c016834779173, - limb1: 0xadd002dfc0ebf1b25c23c252, - limb2: 0x40a868d928ae5233, - limb3: 0x0 - }, - y: u384 { - limb0: 0x423fa293418d6e3f59c2e830, - limb1: 0x7a4bcf26f93e71ffd903e68e, - limb2: 0x7837b851ad8da6e3, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x5907087f8e8e4dacdd039371, - limb1: 0xc390e2073b4e64b9ede0570d, - limb2: 0x6b039a85962f1594, - limb3: 0x0 - }, - y: u384 { - limb0: 0xc45eefa03155b8f7eb780b42, - limb1: 0x3db57eb22f9b0394a4d7b78e, - limb2: 0x6cf45b6d90883f60, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x60dd8ed0a614b596fb37eb1f, - limb1: 0xabb99f371be41e26ec2d8e4b, - limb2: 0x187ecd72c40f159d, - limb3: 0x0 - }, - y: u384 { - limb0: 0x7b66c9263de5e1663622985d, - limb1: 0x118b032cc27a1d6dd192eca6, - limb2: 0x312fb405788616e8, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0xf4ac3e1f1f068dd64c86fdda, - limb1: 0x24594e591d82a7f964b5ec9f, - limb2: 0x6ca311b5421c57fc, - limb3: 0x0 - }, - y: u384 { - limb0: 0x42745cd7b146012455434d0f, - limb1: 0x6aa4f552b7bdc93a613bd9df, - limb2: 0x5832a065d7199c7a, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x341786b7854e3e0104e2e416, - limb1: 0xbb368441c295043bee7b1d2f, - limb2: 0x35c88542e11463b4, - limb3: 0x0 + limb0: 0x5c724369afbc772d02aed58e, + limb1: 0x2cd3bc838c66439a3d6160b, + limb2: 0x72f26b55fb56be1, + limb3: 0x0, }, y: u384 { - limb0: 0x3c36e7fcc4e2fde28308132, - limb1: 0xf58043d0e3d1a36d1f8137fc, - limb2: 0x58c1508fbe8868a8, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x560a37951d69a6c8d7138239, - limb1: 0x462d454a509846714184ef71, - limb2: 0x3aaf8fb4f60e3e9c, - limb3: 0x0 + limb0: 0x772ca79c580e121ca148fe75, + limb1: 0xce2f55e418ca01b3d6d1014b, + limb2: 0x2884b1dc4e84e30f, + limb3: 0x0, }, - y: u384 { - limb0: 0xb70cea4e13db5322899753f9, - limb1: 0x6c62656b6d7ffb5c2af44fd5, - limb2: 0x4b5ae4567dc6a7c0, - limb3: 0x0 - } }, G1Point { x: u384 { - limb0: 0xb06cccb4b425d5179f528270, - limb1: 0xce017c281a3861570706cd86, - limb2: 0x42d14846dc4860ab, - limb3: 0x0 + limb0: 0x536c985db33c69f7c242e07a, + limb1: 0xfc531bccffafcf1e59d91fb9, + limb2: 0x2585e4f8a31664cb, + limb3: 0x0, }, y: u384 { - limb0: 0x646bf486f6e77663c597ece8, - limb1: 0xd87c8c36a430a6fe42305b88, - limb2: 0x7964c7742b6f13da, - limb3: 0x0 - } - }, - G1Point { - x: u384 { - limb0: 0x52c487a17925c92335926072, - limb1: 0x13155d04b743220ba9c4dd31, - limb2: 0x1106c832e8e52057, - limb3: 0x0 + limb0: 0x57fa42444057cf0c1d62ae3c, + limb1: 0x4f48d341183118d68ea41313, + limb2: 0x1d2d2799db056ed1, + limb3: 0x0, }, - y: u384 { - limb0: 0xbc69df5aa9a21ba08f160d5f, - limb1: 0xc207c95ac5d454f546b05fc3, - limb2: 0x574515b32b35f440, - limb3: 0x0 - } - }, - G1Point { - x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - }, - ] - .span(); - let scalars = array![ - u256 { low: 0x0, high: 0x0 }, - u256 { - low: 0x85940927468ff53d864a7a50b48d73f1, high: 0x6e2edd0d977e9933c49d76fcfc6e625 - }, - u256 { - low: 0xd344749096fd35d0adf20806e5214606, high: 0x8ce86e89466e4726b5f5241f323ca74 - }, - u256 { - low: 0x30bcab0ed857010255d44936a1515607, high: 0x8ac57cfbb42e0b20426465e3e37952d - }, - u256 { - low: 0x5f3f563838701a14b490b6081dfc8352, high: 0xda2ddc3552116dd2ba4b180cb69ca38 - }, - u256 { - low: 0xc87a746319c16a0d0febd845d0dfae43, high: 0x7003168b29a8b06daf66c5f2577bffa - }, - u256 { - low: 0x176ea1b164264cd51ea45cd69371a71f, high: 0x3b6a666fb0323a1d576d4155ec17dbe - }, - u256 { - low: 0x9edfa3da6cf55b158b53031d05d51433, high: 0x23d79a9428a1c22d5fdb76a19fbeb1d - }, - u256 { - low: 0x4d125e7fa59cec98126cbc8f38884479, high: 0x1f40f472e2950656fa231e959acdd98 }, - u256 { - low: 0x98b33c6e0a14b90a7795e98680ee526e, high: 0xc8555a9fcfcfa81b306d70019d5f970 + G1Point { + x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, + ] + .span(); + let scalars = array![ + u256 { low: 0x0, high: 0x0 }, u256 { - low: 0xebe2136898c752051e01a934402d0baf, high: 0x6c2a492cc0f859aa6524ab713b7e05 + low: 0x12e0c8b2bad640fb19488dec4f65d4d9, high: 0x1521f387af19922ad9b8a714e61a441c, }, u256 { - low: 0x637e0edc5b6e4ae7a62081434fbaecc0, high: 0x4e8c1e4403d1f83a859890cd670f668 + low: 0x5a92118719c78df48f4ff31e78de5857, high: 0x28fcb26f9c6316b950f244556f25e2a2, }, ] .span(); let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 4 + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 0, ); assert!( res == G1Point { x: u384 { - limb0: 0x7c410eb46bef1f4bbd9bc435, - limb1: 0xf8e9e58aa621db96880b0f17, - limb2: 0xd09eb5f2667189b, - limb3: 0x0 + limb0: 0x21725fdb9f487676e547051, + limb1: 0xc23930e4f96498a77a316418, + limb2: 0x1244cb13309195ed, + limb3: 0x0, }, y: u384 { - limb0: 0xdc7785ceb6c9231f86e4b328, - limb1: 0xa8f46608017bf64838b1e72f, - limb2: 0x5a4e1c9619ed8aa3, - limb3: 0x0 - } - } + limb0: 0x6251c487cf0f5a44ac24a45b, + limb1: 0xf1db336c10ce7fae206dd8dd, + limb2: 0x1da9c56792006d76, + limb3: 0x0, + }, + }, ); } #[test] - fn test_msm_BN254_1P_edge_case() { - let scalars_digits_decompositions = Option::Some( - array![(array![0x0,].span(), array![0x0,].span()),].span() - ); + fn test_msm_BLS12_381_1P_edge_case() { + let scalars_digits_decompositions = Option::None; let msm_hint = MSMHint { Q_low: G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, Q_high: G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, Q_high_shifted: G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, - SumDlogDivLow: FunctionFelt { + RLCSumDlogDiv: FunctionFelt { a_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - b_den: array![ + a_den: array![ u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), b_num: array![ - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - a_den: array![ + b_den: array![ u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] - .span() + .span(), }, }; let derive_point_from_x_hint = DerivePointFromXHint { y_last_attempt: u384 { - limb0: 0xc7c2c14510d62220cdc7b3c7, - limb1: 0x5a684b4bc2b37a7ee0634d2c, - limb2: 0x17eef8e7e4dd2e33, - limb3: 0x0 + limb0: 0x64c9ef86686ed7cb0fa42251, + limb1: 0x17c282e8624e1788ff8fbc5b, + limb2: 0x712b5be5bb66eb8f72af3c9c, + limb3: 0xc182b0f0e8d6cf017feeb4d, }, - g_rhs_sqrt: array![].span(), + g_rhs_sqrt: array![ + u384 { + limb0: 0x5c35d2ca01541a34fb66d844, + limb1: 0xda7b85c12db291e5c2c802b2, + limb2: 0x5987ec0b8e681de8e6dd0e3c, + limb3: 0x1d4ef28e7e9c0cae8144b52, + }, + ] + .span(), }; let points = array![ G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, ] .span(); - let scalars = array![u256 { low: 0x0, high: 0x0 },].span(); + let scalars = array![u256 { low: 0x0, high: 0x0 }].span(); let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 0 + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 1, ); assert!( res == G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + }, ); } #[test] - fn test_msm_BN254_2P_edge_case() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - ] - .span() - ), - ] - .span() - ); + fn test_msm_BLS12_381_2P_edge_case() { + let scalars_digits_decompositions = Option::None; let msm_hint = MSMHint { Q_low: G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, Q_high: G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, Q_high_shifted: G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, - SumDlogDivLow: FunctionFelt { + RLCSumDlogDiv: FunctionFelt { a_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - b_den: array![ + a_den: array![ u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - a_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + b_num: array![ + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), b_den: array![ @@ -92859,1217 +16156,455 @@ mod msm_tests { u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - b_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() }, }; let derive_point_from_x_hint = DerivePointFromXHint { y_last_attempt: u384 { - limb0: 0x60c349ba17c1d4434209b924, - limb1: 0xb4b96efd8be92cde9de1280e, - limb2: 0x6e55e1a8666f8e3, - limb3: 0x0 + limb0: 0xa9125be5f17f34ce6de5896b, + limb1: 0x77ff67ddaf6b61c4088ee57a, + limb2: 0xb4940789dbaf29c60e3ae417, + limb3: 0xbab38248ecf0eb99f06ac59, }, - g_rhs_sqrt: array![ - u384 { - limb0: 0xd35ab3554d3a17e69bc90c5e, - limb1: 0xffde96e368c26798d24bad63, - limb2: 0x1147ab0976577bd3, - limb3: 0x0 - }, - u384 { - limb0: 0x48f5fc1455c8dd38358b75b1, - limb1: 0x806fc9ed4ccac3f93bbf2adf, - limb2: 0xa77478d31681d27, - limb3: 0x0 - } - ] - .span(), + g_rhs_sqrt: array![].span(), }; let points = array![ G1Point { x: u384 { - limb0: 0x5c724369afbc772d02aed58e, - limb1: 0x2cd3bc838c66439a3d6160b, - limb2: 0x72f26b55fb56be1, - limb3: 0x0 + limb0: 0xe4f817e54aede0613c17035c, + limb1: 0xdff1f15010392a6da1f95a6, + limb2: 0xbed78d3d341e911d49f15454, + limb3: 0x18154782ce0913b21588066d, }, y: u384 { - limb0: 0x772ca79c580e121ca148fe75, - limb1: 0xce2f55e418ca01b3d6d1014b, - limb2: 0x2884b1dc4e84e30f, - limb3: 0x0 - } + limb0: 0x3d77d61326ef5a9a5a681757, + limb1: 0xd3070afd4f0e121de7fcee60, + limb2: 0xdf9ef4088763fe611fb85858, + limb3: 0x11a612bdd0bc09562856a70, + }, }, G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, ] .span(); let scalars = array![ u256 { low: 0x0, high: 0x0 }, u256 { - low: 0xb4862b21fb97d43588561712e8e5216a, high: 0x967d0cae6f4590b9a164106cf6a659e + low: 0xb4862b21fb97d43588561712e8e5216a, high: 0x12cfa194e6f4590b9a164106cf6a659e, }, ] .span(); let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 0 + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 1, ); assert!( res == G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + }, ); } #[test] - fn test_msm_BN254_3P_edge_case() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - ] - .span() - ), - ( - array![ - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - ] - .span(), - array![ - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - ] - .span() - ), - ] - .span() - ); + fn test_msm_BLS12_381_3P_edge_case() { + let scalars_digits_decompositions = Option::None; let msm_hint = MSMHint { Q_low: G1Point { x: u384 { - limb0: 0x5b9b511a35490c4f05d6e4e7, - limb1: 0xf11ec8642a0df9cb0b8f2cdd, - limb2: 0x2b568cd4a3e221ca, - limb3: 0x0 + limb0: 0xf6a31a9a41fd0378150dc360, + limb1: 0x7a355df87079a4cf4c78fd36, + limb2: 0xbd92b81f9f87a14ded17256e, + limb3: 0x1259b26908470ad4f6be037c, }, y: u384 { - limb0: 0xb45c3680d8359a0fdb47de6f, - limb1: 0x4c17fe1c96f237095df8c737, - limb2: 0x118fc0474955ac2b, - limb3: 0x0 - } + limb0: 0xfbe2abbd7e05b561703438fe, + limb1: 0x892d1cc404bcc0c000d206cf, + limb2: 0x962b60138682dd48428b2a8d, + limb3: 0xa68b20ba71d8fde199d485b, + }, }, Q_high: G1Point { x: u384 { - limb0: 0x47bec5e5e1f295cdcd7689e9, - limb1: 0xcb171283d651071401630545, - limb2: 0xa401c0298cd5f83, - limb3: 0x0 + limb0: 0x7c866be61fbaed5ef7d1122e, + limb1: 0x7fed89acb87ce49d38175a6f, + limb2: 0x30dbb6ee5876fa6873045668, + limb3: 0x60c4285948cc11859881060, }, y: u384 { - limb0: 0xe5d2831c05e61956d8725b57, - limb1: 0x6bb84991518471727263fde0, - limb2: 0x15e82f62ee3caf32, - limb3: 0x0 - } + limb0: 0x5a931aaa036da6ee08c49738, + limb1: 0x1c92b3a560ce474174cfa275, + limb2: 0xa4f783dad6c9da34040c6553, + limb3: 0x8d9752128e5b2be6254e2b, + }, }, Q_high_shifted: G1Point { x: u384 { - limb0: 0xd15f8e23aaf3af13ab5ba169, - limb1: 0xb0ff9631870f189040aec289, - limb2: 0x1c77509b88d3bab7, - limb3: 0x0 + limb0: 0x663acbe46ab1edf9e0302ddb, + limb1: 0x133eafb6b82660d39354a91b, + limb2: 0xec9146f8b18f4ccfa8f938e, + limb3: 0x1127139158d2558af3ede6c1, }, y: u384 { - limb0: 0xb620e3716b30b1003beab421, - limb1: 0x1d6aad1137155249c5d4f785, - limb2: 0xbf95d2db0be45f9, - limb3: 0x0 - } + limb0: 0x2e2dc7b89be127d3eee7e15f, + limb1: 0xb9b688b1096640c721587415, + limb2: 0xd09f1d870e1c2d4e08674d2b, + limb3: 0x12308a0685f2c08876496459, + }, }, - SumDlogDivLow: FunctionFelt { + RLCSumDlogDiv: FunctionFelt { a_num: array![ u384 { - limb0: 0x405f71fc00076527e6fc4c78, - limb1: 0x8f18daa35c7ff6a960bb5b70, - limb2: 0x1acf52b3d2e4d78c, - limb3: 0x0 + limb0: 0xeb35755831b8b274a72187ca, + limb1: 0x619d73fdc8ca106f251bb23f, + limb2: 0x83526e9a98267e300003744c, + limb3: 0x74e843f7fd9b3c1eb4f8a71, }, u384 { - limb0: 0x55e1ce0e388c458a64de1245, - limb1: 0xb85045b68181585d899bbe7f, - limb2: 0x30644e72e131a029, - limb3: 0x0 + limb0: 0x263294ccc2a97ffb2ec76a8e, + limb1: 0xd158f356f93267263354d7e2, + limb2: 0x714889219b424296b85139b5, + limb3: 0xa8f3019b0a505d2ffd1caac, }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ u384 { - limb0: 0x5216182e9954282e5165d882, - limb1: 0xee6d9c3bb968e7795eb593da, - limb2: 0x177a7ed9a366cff7, - limb3: 0x0 + limb0: 0xbf917add7208b045d906ff3f, + limb1: 0xcd23d9673211a97506787efc, + limb2: 0x7179e6dc54430c65b26530b3, + limb3: 0x17bb9453c160e11d98066ff9, }, u384 { - limb0: 0x21dbaba28fbba1e6e8e0352d, - limb1: 0x832ea73bd944e7d1c99a888c, - limb2: 0xfec2b187b6ab9bc, - limb3: 0x0 + limb0: 0xebd56ed5f538ae24aa8dc0e2, + limb1: 0x3ba413917f065ec7e45c2721, + limb2: 0xa9b1360228e4503e35364d2b, + limb3: 0x1301d2f14e9626ee2309422, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0x7f5148b9d01ce644c0551d1d, - limb1: 0xea7e65b88ff441961f0e382c, - limb2: 0x77540b6fa020ca1, - limb3: 0x0 - }, - u384 { - limb0: 0x9d966e013d09193481e80906, - limb1: 0x34a3efbaf588ae0deca14017, - limb2: 0xd794d7aa57b6d27, - limb3: 0x0 - }, - u384 { - limb0: 0x389f846ccb041083a10cb9ff, - limb1: 0x6a448b23b92648c8a242bcc3, - limb2: 0x228a9ea16b505f32, - limb3: 0x0 - }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - b_den: array![ + a_den: array![ u384 { - limb0: 0x8dd07dfe8fdbec741bb48c3f, - limb1: 0x12f88efcaab95e0e849f50fd, - limb2: 0x160b2e1a0902cfbe, - limb3: 0x0 + limb0: 0x9b4aac8938de0d6d29299aec, + limb1: 0xed00b7c2b8d648ca0d5cb5bc, + limb2: 0xa052f33dafe080f320f1ff8e, + limb3: 0xa83d431853448de44c440fa, }, u384 { - limb0: 0x659302e7af32e5b4baa09f87, - limb1: 0x898bf5b38bceb7755ccf99a4, - limb2: 0x2fc4814972402d35, - limb3: 0x0 + limb0: 0xc5a014c4a628fb418afdc431, + limb1: 0xff1bc5487dcfd4fac800f591, + limb2: 0xf09802d0f98c9a1e7d8b3326, + limb3: 0x125f173ee992bebf294f042f, }, - u384 { limb0: 0x3, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { - limb0: 0x5216182e9954282e5165d882, - limb1: 0xee6d9c3bb968e7795eb593da, - limb2: 0x177a7ed9a366cff7, - limb3: 0x0 + limb0: 0xb9100f1617268243b95b9208, + limb1: 0xb1f5e20e709d1d7cf3b2d087, + limb2: 0x39c86f0b79ca465e49a95325, + limb3: 0x1269c9e792e7575a1b407349, }, u384 { - limb0: 0x21dbaba28fbba1e6e8e0352d, - limb1: 0x832ea73bd944e7d1c99a888c, - limb2: 0xfec2b187b6ab9bc, - limb3: 0x0 + limb0: 0x2cb2b76ffc0a57eef2f100c5, + limb1: 0x8c7ae8ef5688c4968d0ade85, + limb2: 0xf0719994ff5b34265dca49d0, + limb3: 0x141860f0e8a032121ffd28c2, }, u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x27f4d0d676cdd860c4d1fa6f, - limb1: 0xe65386ac1951a13cd4f02a75, - limb2: 0xd2f1b8c9dfc2c96, - limb3: 0x0 - }, - u384 { - limb0: 0x5be57268705f4a795a64db97, - limb1: 0xdc2822db40c0ac2ebd2b6c30, - limb2: 0x183227397098d014, - limb3: 0x0 - }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - a_den: array![ + b_num: array![ u384 { - limb0: 0x56063c8c991bc325c89db352, - limb1: 0x714aae2911782fd7314a08b5, - limb2: 0x757a6155c5ca7ad, - limb3: 0x0 + limb0: 0xda7bc5a089fc35de52b5ab6d, + limb1: 0x374d31abeda2bc7d1fa3314b, + limb2: 0xdc9b575368802cb064ea215d, + limb3: 0x586829f9bf69e05abd324e6, }, u384 { - limb0: 0xcd466c49a6f18c5148c392e4, - limb1: 0xf0e61765ab80822b3c454592, - limb2: 0x9e4d77a54ddbd9, - limb3: 0x0 + limb0: 0xdf7cbeaa6d31e6304e21b449, + limb1: 0x98191ab75477b88d9100a3b0, + limb2: 0xaccec7142afafc55a16d5a5d, + limb3: 0x2145b524c0790e06e301e66, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0xf0c06ca91ca69b071361bb3b, - limb1: 0x14a5ec278cd5ce650ed8a951, - limb2: 0x1fe39905c3c30e6f, - limb3: 0x0 + limb0: 0xc03bb07a666edb299db815a6, + limb1: 0xfc9f8e6a16f220fde529492c, + limb2: 0xa907065eb5bf6b0eb40cf236, + limb3: 0x1149cca478baba09dee1d533, }, u384 { - limb0: 0x6273f5753079b21e51dc95d0, - limb1: 0xa13b582e80dd3ed1bd56b763, - limb2: 0x175816dcf2342dc4, - limb3: 0x0 + limb0: 0x8e5d1fd64b21b819208b11ea, + limb1: 0x66e777b31da1abe09cc24423, + limb2: 0x426e7a0bf850c1501a08cee7, + limb3: 0x7dbacd73a097db82eaceab9, }, u384 { - limb0: 0x8d515b1af421f13038e172f0, - limb1: 0xae4b61cb0c64b0a2f27bc490, - limb2: 0xdebd80bd3a7da0a, - limb3: 0x0 + limb0: 0x7b6589cb116ffb6c5cd73707, + limb1: 0xa62d2451aecbbdb4a8c8ed99, + limb2: 0xca0de292aeae27f922326d89, + limb3: 0xd8a62ad9db2e6794979a947, }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), b_den: array![ u384 { - limb0: 0x212b5a5cb53497159d919f6, - limb1: 0x53e00a7b34688f8593de1a20, - limb2: 0x1606f2401515f708, - limb3: 0x0 + limb0: 0xbbd6b225297935b4a4a6c105, + limb1: 0x4cd20c69eca82d0416c6d6f3, + limb2: 0x3e00201f5b0ab8479042eb7c, + limb3: 0x100e3edbdb513cdec7f55c34, }, u384 { - limb0: 0x67d344dcf4d4a4f3da4ab8ac, - limb1: 0xd2b2463102818681b4cfd0b8, - limb2: 0x1dae866efe9938d, - limb3: 0x0 + limb0: 0xb3d8531324a5ed062bf7bb6e, + limb1: 0x2e0d6fe009dd67a2e2abd649, + limb2: 0x3bc8b1951d43d1700f22a71d, + limb3: 0x157a3927334b2dc80f04c153, }, - u384 { limb0: 0x3, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { - limb0: 0x56063c8c991bc325c89db352, - limb1: 0x714aae2911782fd7314a08b5, - limb2: 0x757a6155c5ca7ad, - limb3: 0x0 + limb0: 0x81983c58e89c090ee56ef2ca, + limb1: 0xf975e2f7d51289ab91734221, + limb2: 0x608a627f1e3a826f3f9b2717, + limb3: 0x15a503c9d89d9033d6ca7db8, }, u384 { - limb0: 0xcd466c49a6f18c5148c392e4, - limb1: 0xf0e61765ab80822b3c454592, - limb2: 0x9e4d77a54ddbd9, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ - u384 { - limb0: 0xf31bdf775ed460cbb09a77a4, - limb1: 0xbbc894efc25ad7150f2b950a, - limb2: 0x29528e7e585ce271, - limb3: 0x0 - }, - u384 { - limb0: 0x8bbd8e60fc1a1859e888a509, - limb1: 0xdc2822db40c0ac2e47c7fadc, - limb2: 0x183227397098d014, - limb3: 0x0 - } - ] - .span(), - a_den: array![ - u384 { - limb0: 0xf3f8288b819d04552d495ec1, - limb1: 0x5637b5a04eaec6328f049790, - limb2: 0x196a7a54ca00e273, - limb3: 0x0 + limb0: 0x3a198a49fb0a6d28f4ee9dff, + limb1: 0xe959e39d2ee678b7e5842fd5, + limb2: 0x9836530b7fe76efdbd8bee92, + limb3: 0xce222367b355d57e365ece3, }, u384 { - limb0: 0x4f537683af3a47355faad1f5, - limb1: 0x3c399d01242138b9556fa2c2, - limb2: 0x9ace1d4bf9085ee, - limb3: 0x0 + limb0: 0xc5a014c4a628fb418afdc435, + limb1: 0xff1bc5487dcfd4fac800f591, + limb2: 0xf09802d0f98c9a1e7d8b3326, + limb3: 0x125f173ee992bebf294f042f, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0xe42601d9feb3ab9f2b5ae3c1, - limb1: 0x45b721c6cecc99dcd79013a2, - limb2: 0x1d1a0e768059ba78, - limb3: 0x0 + limb0: 0xb9100f1617268243b95b9208, + limb1: 0xb1f5e20e709d1d7cf3b2d087, + limb2: 0x39c86f0b79ca465e49a95325, + limb3: 0x1269c9e792e7575a1b407349, }, u384 { - limb0: 0xf080a40759b90d6a683d3e76, - limb1: 0xe23206d3cafbfeab3d6884f, - limb2: 0x1cebdd881068dc2f, - limb3: 0x0 + limb0: 0x2cb2b76ffc0a57eef2f100c5, + limb1: 0x8c7ae8ef5688c4968d0ade85, + limb2: 0xf0719994ff5b34265dca49d0, + limb3: 0x141860f0e8a032121ffd28c2, }, - u384 { - limb0: 0x7a61a762fe584ff4f91e5ac, - limb1: 0xfab1f33e1518d8901d1cc2c0, - limb2: 0x173b3f764519e6cd, - limb3: 0x0 - } + u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), - b_den: array![ - u384 { - limb0: 0x7376af1548b680e8af5f1efc, - limb1: 0x4a56db2a6a8afa3a158c5c21, - limb2: 0x1bdb208b7cd10730, - limb3: 0x0 - }, - u384 { - limb0: 0xedfa638b0daed5a01f0075df, - limb1: 0xb4acd7036c63aa2c004ee846, - limb2: 0x1d06a57e3eb191ca, - limb3: 0x0 - }, - u384 { limb0: 0x3, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { - limb0: 0xf3f8288b819d04552d495ec1, - limb1: 0x5637b5a04eaec6328f049790, - limb2: 0x196a7a54ca00e273, - limb3: 0x0 - }, - u384 { - limb0: 0x4f537683af3a47355faad1f5, - limb1: 0x3c399d01242138b9556fa2c2, - limb2: 0x9ace1d4bf9085ee, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() }, }; let derive_point_from_x_hint = DerivePointFromXHint { y_last_attempt: u384 { - limb0: 0x91b2f2a1b63488947587b29f, - limb1: 0x272207211ee84c7a00242db6, - limb2: 0x111e3c81a23fb2b4, - limb3: 0x0 + limb0: 0xdd789d7c02428dc60246d081, + limb1: 0xc9de1388dd3a5eaff5de8784, + limb2: 0x6eac6c37a0a90e65dd33fbc8, + limb3: 0x89f38f13155da73ef366afc, }, - g_rhs_sqrt: array![ - u384 { - limb0: 0x258b01b2858d51de8acd178c, - limb1: 0x6a34cc2dcf1f37f6ab367139, - limb2: 0x28d10e632d4cdfe, - limb3: 0x0 - } - ] - .span(), + g_rhs_sqrt: array![].span(), }; let points = array![ G1Point { x: u384 { - limb0: 0x5c724369afbc772d02aed58e, - limb1: 0x2cd3bc838c66439a3d6160b, - limb2: 0x72f26b55fb56be1, - limb3: 0x0 + limb0: 0xe4f817e54aede0613c17035c, + limb1: 0xdff1f15010392a6da1f95a6, + limb2: 0xbed78d3d341e911d49f15454, + limb3: 0x18154782ce0913b21588066d, }, y: u384 { - limb0: 0x772ca79c580e121ca148fe75, - limb1: 0xce2f55e418ca01b3d6d1014b, - limb2: 0x2884b1dc4e84e30f, - limb3: 0x0 - } + limb0: 0x3d77d61326ef5a9a5a681757, + limb1: 0xd3070afd4f0e121de7fcee60, + limb2: 0xdf9ef4088763fe611fb85858, + limb3: 0x11a612bdd0bc09562856a70, + }, }, G1Point { x: u384 { - limb0: 0x536c985db33c69f7c242e07a, - limb1: 0xfc531bccffafcf1e59d91fb9, - limb2: 0x2585e4f8a31664cb, - limb3: 0x0 + limb0: 0xde4f62a6588c9401ffefbd3, + limb1: 0x9bb5f797ac6d3395b71420b5, + limb2: 0xdc39e973aaf31de52219df08, + limb3: 0x105dcc4dce3960447d21d3c1, }, y: u384 { - limb0: 0x57fa42444057cf0c1d62ae3c, - limb1: 0x4f48d341183118d68ea41313, - limb2: 0x1d2d2799db056ed1, - limb3: 0x0 - } + limb0: 0xaefd0d854043fd325dd3c34f, + limb1: 0x9b63c98d9a7845c52e1e2b0f, + limb2: 0x9db0be660d847ccc58358f3f, + limb3: 0x17cb6c41f0c4e1a7394ab62a, + }, }, G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, ] .span(); let scalars = array![ u256 { low: 0x0, high: 0x0 }, u256 { - low: 0x12e0c8b2bad640fb19488dec4f65d4d9, high: 0x1521f387af19922ad9b8a714e61a441c + low: 0x12e0c8b2bad640fb19488dec4f65d4d9, high: 0x2a43e70faf19922ad9b8a714e61a441c, }, u256 { - low: 0x5a92118719c78df48f4ff31e78de5857, high: 0x28fcb26f9c6316b950f244556f25e2a2 + low: 0x5a92118719c78df48f4ff31e78de5857, high: 0x51f964df9c6316b950f244556f25e2a2, }, ] .span(); let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 0 + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 1, ); assert!( res == G1Point { x: u384 { - limb0: 0x21725fdb9f487676e547051, - limb1: 0xc23930e4f96498a77a316418, - limb2: 0x1244cb13309195ed, - limb3: 0x0 + limb0: 0x2b828af1f5fe30bbe7a1074a, + limb1: 0x5669beaa69827b52dc874c9f, + limb2: 0x648af2c24d82a5a758c96b8e, + limb3: 0x188bc245620ae6b6afec9dc3, }, y: u384 { - limb0: 0x6251c487cf0f5a44ac24a45b, - limb1: 0xf1db336c10ce7fae206dd8dd, - limb2: 0x1da9c56792006d76, - limb3: 0x0 - } - } + limb0: 0xdc96192f803ef92f56d59758, + limb1: 0xfc6139925c05a030065d564, + limb2: 0xb24447300bec56efec94dcf4, + limb3: 0x156f97e5d31055c0a5fe154d, + }, + }, ); } #[test] - fn test_msm_BLS12_381_1P_edge_case() { - let scalars_digits_decompositions = Option::Some( - array![(array![0x0,].span(), array![0x0,].span()),].span() - ); + fn test_msm_SECP256R1_1P_edge_case() { + let scalars_digits_decompositions = Option::None; let msm_hint = MSMHint { Q_low: G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, Q_high: G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, Q_high_shifted: G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, - SumDlogDivLow: FunctionFelt { + RLCSumDlogDiv: FunctionFelt { a_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - b_den: array![ + a_den: array![ u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), b_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - a_den: array![ + b_den: array![ u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] - .span() + .span(), }, }; let derive_point_from_x_hint = DerivePointFromXHint { y_last_attempt: u384 { - limb0: 0x933cf0c20f38001183ed9df6, - limb1: 0xcb294eff7864b62ddb3adf3d, - limb2: 0xe7801e5dd2b70de9e4b1af57, - limb3: 0x4b3b4eaca402c3b711f869b + limb0: 0x3ca5552c96ec2a5049d28426, + limb1: 0xc8669717174b973f4de5a646, + limb2: 0x4fbfb38ec0c14e6e, + limb3: 0x0, }, g_rhs_sqrt: array![].span(), }; let points = array![ G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, ] .span(); - let scalars = array![u256 { low: 0x0, high: 0x0 },].span(); + let scalars = array![u256 { low: 0x0, high: 0x0 }].span(); let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 1 + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 3, ); assert!( res == G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + }, ); } #[test] - fn test_msm_BLS12_381_2P_edge_case() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - ] - .span() - ), - ] - .span() - ); + fn test_msm_SECP256R1_2P_edge_case() { + let scalars_digits_decompositions = Option::None; let msm_hint = MSMHint { Q_low: G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, Q_high: G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, Q_high_shifted: G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, - SumDlogDivLow: FunctionFelt { + RLCSumDlogDiv: FunctionFelt { a_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - b_den: array![ + a_den: array![ u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - a_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + b_num: array![ + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), b_den: array![ @@ -94079,1206 +16614,469 @@ mod msm_tests { u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - b_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() }, }; let derive_point_from_x_hint = DerivePointFromXHint { y_last_attempt: u384 { - limb0: 0xbd7c0a86fc43972d8b51dd60, - limb1: 0xcfceb99ca4a950898233fc8c, - limb2: 0x830b2ea5189bbb6905ef8511, - limb3: 0x1a2bb55cd901d35f38f4ff5 + limb0: 0xcab2bdb49d36853afc772e84, + limb1: 0x9388d6adcd576a1b6ae83895, + limb2: 0x4a4640dc5b206990, + limb3: 0x0, }, g_rhs_sqrt: array![ u384 { - limb0: 0x4f4fd082399091404d2f02a7, - limb1: 0x81d93e4dc28e48b38d24fa0a, - limb2: 0xcc9039d4ba7ae8849e2f2064, - limb3: 0x680f0068cb18a987654e66b - } + limb0: 0xa65fee3201baba3b9c2f59b5, + limb1: 0x1ff3274e058360d6b1e64db3, + limb2: 0x2af2ec2fe4bf31ee, + limb3: 0x0, + }, + u384 { + limb0: 0xda5e742b60f13ba9478a5085, + limb1: 0x4ef5a3a77cc1f80dedc41ae6, + limb2: 0x511bc713034c93d4, + limb3: 0x0, + }, ] .span(), }; let points = array![ G1Point { x: u384 { - limb0: 0xe4f817e54aede0613c17035c, - limb1: 0xdff1f15010392a6da1f95a6, - limb2: 0xbed78d3d341e911d49f15454, - limb3: 0x18154782ce0913b21588066d + limb0: 0x113c8d620e3745e45e4389b8, + limb1: 0x85b8ff52d905fd02fe191c3f, + limb2: 0xf5d132d685201517, + limb3: 0x0, }, y: u384 { - limb0: 0x3d77d61326ef5a9a5a681757, - limb1: 0xd3070afd4f0e121de7fcee60, - limb2: 0xdf9ef4088763fe611fb85858, - limb3: 0x11a612bdd0bc09562856a70 - } + limb0: 0x60c0ba1b358f375b2362662e, + limb1: 0x6abfc829d93e09aa5174ec04, + limb2: 0x7bc4637aca93cb5a, + limb3: 0x0, + }, }, G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, ] .span(); let scalars = array![ u256 { low: 0x0, high: 0x0 }, u256 { - low: 0xb4862b21fb97d43588561712e8e5216a, high: 0x12cfa194e6f4590b9a164106cf6a659e + low: 0xeb1167b367a9c3787c65c1e582e2e662, high: 0xf7c1bd874da5e709d4713d60c8a70639, }, ] .span(); let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 1 + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 3, ); assert!( res == G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + }, ); } #[test] - fn test_msm_BLS12_381_3P_edge_case() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - ] - .span(), - array![ - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - ] - .span() - ), - ( - array![ - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - ] - .span(), - array![ - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - ] - .span() - ), - ] - .span() - ); + fn test_msm_SECP256R1_3P_edge_case() { + let scalars_digits_decompositions = Option::None; let msm_hint = MSMHint { Q_low: G1Point { x: u384 { - limb0: 0xf6a31a9a41fd0378150dc360, - limb1: 0x7a355df87079a4cf4c78fd36, - limb2: 0xbd92b81f9f87a14ded17256e, - limb3: 0x1259b26908470ad4f6be037c + limb0: 0xf831856624736393b3b76d11, + limb1: 0xc165a27df5b76589fe2ce1e2, + limb2: 0x2a23444ace6bef77, + limb3: 0x0, }, y: u384 { - limb0: 0xfbe2abbd7e05b561703438fe, - limb1: 0x892d1cc404bcc0c000d206cf, - limb2: 0x962b60138682dd48428b2a8d, - limb3: 0xa68b20ba71d8fde199d485b - } + limb0: 0xa6bbeec6fb0369c3de339579, + limb1: 0xd394f6a5704d1de2da06048, + limb2: 0xe8057073c0fde87b, + limb3: 0x0, + }, }, Q_high: G1Point { x: u384 { - limb0: 0x7c866be61fbaed5ef7d1122e, - limb1: 0x7fed89acb87ce49d38175a6f, - limb2: 0x30dbb6ee5876fa6873045668, - limb3: 0x60c4285948cc11859881060 + limb0: 0x3b1d72dc227f75f02874e08b, + limb1: 0xd395fa7c14d6ff33d03e1baf, + limb2: 0xbf16fcc65f95b486, + limb3: 0x0, }, y: u384 { - limb0: 0x5a931aaa036da6ee08c49738, - limb1: 0x1c92b3a560ce474174cfa275, - limb2: 0xa4f783dad6c9da34040c6553, - limb3: 0x8d9752128e5b2be6254e2b - } + limb0: 0xe2461ebbe7a5b4d76dbef92b, + limb1: 0x3eecb75c5315cd3d2d0b9456, + limb2: 0x8192517353bc6523, + limb3: 0x0, + }, }, Q_high_shifted: G1Point { x: u384 { - limb0: 0x663acbe46ab1edf9e0302ddb, - limb1: 0x133eafb6b82660d39354a91b, - limb2: 0xec9146f8b18f4ccfa8f938e, - limb3: 0x1127139158d2558af3ede6c1 + limb0: 0xcff970bda4db69dac06ebad8, + limb1: 0xdee4204cca252abd67132509, + limb2: 0xa79c0006b6ca7fab, + limb3: 0x0, }, y: u384 { - limb0: 0x2e2dc7b89be127d3eee7e15f, - limb1: 0xb9b688b1096640c721587415, - limb2: 0xd09f1d870e1c2d4e08674d2b, - limb3: 0x12308a0685f2c08876496459 - } + limb0: 0x759642b853dd01b9d2d7bb18, + limb1: 0xe1e1d2f8bf0f2f5b463bfae0, + limb2: 0xbc3c71be130f204d, + limb3: 0x0, + }, }, - SumDlogDivLow: FunctionFelt { + RLCSumDlogDiv: FunctionFelt { a_num: array![ u384 { - limb0: 0x7bc762e158a515b52d821792, - limb1: 0x6ecca75faa6f0257a0026f0, - limb2: 0x54035e714db9d186af76bd14, - limb3: 0x6741a842e9567e705af8ef4 + limb0: 0x9103bd16e2232359c067051c, + limb1: 0x47056dacf5ebc26121584255, + limb2: 0x510b978b1c20d16d, + limb3: 0x0, }, u384 { - limb0: 0x9ec40380b66ab9738c60bfa9, - limb1: 0x6730d2a0f6b0f62410c653ec, - limb2: 0x434bacd764774b84f38512bf, - limb3: 0x1a0111ea397fe69a4b1ba7b6 + limb0: 0x3866c583186023310ae6006f, + limb1: 0x94b09aee6293fdcebd256a74, + limb2: 0xe9964a385943e6e7, + limb3: 0x0, }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ u384 { - limb0: 0x72e3a1aba373f660d9374982, - limb1: 0x7f6c533e38820545e6743293, - limb2: 0x4a14d7b2c73830dd1036e44b, - limb3: 0x163220ef11c45701b870d3ce + limb0: 0x4e66f352e983f05cd787905a, + limb1: 0x23e4fc7f433c2785b079f227, + limb2: 0x6b71075ebbeffe51, + limb3: 0x0, }, u384 { - limb0: 0x5e1fef3acc783347caf29623, - limb1: 0xb8764fb1d07b13e339cae211, - limb2: 0xeccab81b7e73d7d6d7d92107, - limb3: 0x114aa51d9c7f621b2257782d + limb0: 0x8d716d3dc708179fd42941cc, + limb1: 0xd8e4a54aef03a57c0c4a1845, + limb2: 0xed1182498b974526, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0xc777357daa6aa6c4ebef18c7, - limb1: 0x80736b12a17997bf6e675de5, - limb2: 0x7695e787d8535cdeb6df21c3, - limb3: 0x45a863fbf06f8c4f9075629 - }, - u384 { - limb0: 0x9d9a9c620cf8011b609cd9bf, - limb1: 0x5e601cc474976cd361c63721, - limb2: 0xdc45e17f1a6a0e748a8474a5, - limb3: 0x70bdc9e64717c3a0bd18e8b - }, - u384 { - limb0: 0xe99ceeb08e413423167a42d6, - limb1: 0xbbb460d6a22df80bf24d7d86, - limb2: 0xe8dbed95ff300f747a6b6edb, - limb3: 0xc798d1b717ca47003bdda9e - }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - b_den: array![ + a_den: array![ u384 { - limb0: 0xb79286af5fd2d98364de2607, - limb1: 0xc81ed515fdf532ab3dccca51, - limb2: 0x5e705844ef7ae0e5664c58ef, - limb3: 0xac54dfd9a91a83800705816 + limb0: 0x32f47eb672f5bb330a73bb4a, + limb1: 0x1a8091c6f1f3893bc55d0fa5, + limb2: 0x8f7089d778e965c2, + limb3: 0x0, }, u384 { - limb0: 0x15d7bcebbde2cd1f2bcb0336, - limb1: 0x13779985548a6344a9d38848, - limb2: 0x2c9386bf30e0c851785a5ea0, - limb3: 0x112870a1fefdbb37f326914b + limb0: 0xc7a8f052fc045a7c4ceff3e, + limb1: 0x8b14021f73a80543f9ad14a3, + limb2: 0x508a2680c93698e4, + limb3: 0x0, }, - u384 { limb0: 0x4, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { - limb0: 0x72e3a1aba373f660d9374982, - limb1: 0x7f6c533e38820545e6743293, - limb2: 0x4a14d7b2c73830dd1036e44b, - limb3: 0x163220ef11c45701b870d3ce + limb0: 0xfc72a135b2aaa8dee44f9400, + limb1: 0x9f66c7f22c15ecf4bac82c86, + limb2: 0x6724ac9ffc3487b8, + limb3: 0x0, }, u384 { - limb0: 0x5e1fef3acc783347caf29623, - limb1: 0xb8764fb1d07b13e339cae211, - limb2: 0xeccab81b7e73d7d6d7d92107, - limb3: 0x114aa51d9c7f621b2257782d + limb0: 0x28b8828023437a8d6e45900c, + limb1: 0x490cdc11b822023a5eedbb11, + limb2: 0xcf427b32bdfa36c7, + limb3: 0x0, }, u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x5019495f08aacfea0142907a, - limb1: 0x5c6c84c98c4bdbff212b9f6f, - limb2: 0x74629b821dc449cf706989ca, - limb3: 0xd852403077491f348815589 - }, - u384 { - limb0: 0x515834b7b494091d02ac60ea, - limb1: 0xb39869507b587b11fb48a4ec, - limb2: 0x21a5d66bb23ba5c279c2895f, - limb3: 0xd0088f51cbff34d258dd3db - }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - a_den: array![ + b_num: array![ u384 { - limb0: 0x212dea0ff4fe177f1e0b0298, - limb1: 0x9f459b636eadb91eead4e97a, - limb2: 0x75eb15d611e1fb6bff9b473f, - limb3: 0x531c91c12c79d937ef79a92 + limb0: 0xc31b8bfe95c99a953dfbeabd, + limb1: 0xe63b42304b4dc475c331d5ac, + limb2: 0x499b1e200475197c, + limb3: 0x0, }, u384 { - limb0: 0x26e89def34bb4960e82f9caa, - limb1: 0x4b8d515c91c6ddf12f8084da, - limb2: 0x36360c75610d33375e66dd4e, - limb3: 0x3970316d6b9c53d7471c394 + limb0: 0xf166baa3bc64785c42f2e9eb, + limb1: 0xd575ea7fa8f28aaa7a9b0f64, + limb2: 0x128864b271e1ebf2, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0xce3933f42d6e07280a6555fd, - limb1: 0xcf6637cf3132966601952da7, - limb2: 0x1ba13bcd292f9580d238e4d5, - limb3: 0x55cb80b014630f65d21697c + limb0: 0x116db906aee291051c9ce08, + limb1: 0x2943633ba402debefac3b9a0, + limb2: 0x36d5e25b3ef465fb, + limb3: 0x0, }, u384 { - limb0: 0xec23d12308aea492320ab446, - limb1: 0xc547fbcf9c08f7a7b20a2f31, - limb2: 0x56f288207b6283a0c20629d3, - limb3: 0xb6493b88317b20ee1743bea + limb0: 0x525c3dbd1864649780b5a73e, + limb1: 0x65b5ed8ec92dd969aa336caa, + limb2: 0x3f69b099f8b6619c, + limb3: 0x0, }, u384 { - limb0: 0x668633e5546177aa7d419d1a, - limb1: 0x6c68d1c1d2a25741cfd4c2df, - limb2: 0x1d5ec99fa64509524c49a8da, - limb3: 0xc601a6fda782877abd32782 + limb0: 0xdcb8bc014e35c6d4febb77c9, + limb1: 0x25ffc8096d6e87b1e76b8e6e, + limb2: 0x45eaa89a67cda802, + limb3: 0x0, }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), b_den: array![ u384 { - limb0: 0x84b7a83fd3f85dfc782c0a60, - limb1: 0x7d166d8dbab6e47bab53a5e8, - limb2: 0xd7ac57584787edaffe6d1cfe, - limb3: 0x14c724704b1e764dfbde6a49 - }, - u384 { - limb0: 0x9ba277bcd2ed2583a0be72a8, - limb1: 0x2e354572471b77c4be021368, - limb2: 0xd8d831d58434ccdd799b7539, - limb3: 0xe5c0c5b5ae714f5d1c70e50 - }, - u384 { limb0: 0x4, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { - limb0: 0x212dea0ff4fe177f1e0b0298, - limb1: 0x9f459b636eadb91eead4e97a, - limb2: 0x75eb15d611e1fb6bff9b473f, - limb3: 0x531c91c12c79d937ef79a92 + limb0: 0xbeada704feb34546e4301ab0, + limb1: 0x5b533141bf8fd64c6afe4bd9, + limb2: 0x4e4368ec25ed3c45, + limb3: 0x0, }, u384 { - limb0: 0x26e89def34bb4960e82f9caa, - limb1: 0x4b8d515c91c6ddf12f8084da, - limb2: 0x36360c75610d33375e66dd4e, - limb3: 0x3970316d6b9c53d7471c394 + limb0: 0x1a26c33296a4cf0e96b4d599, + limb1: 0x27f1e1d4a919a68c6edaf9df, + limb2: 0x7e1cc39a4fc825b8, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ u384 { - limb0: 0x6768b46c349823ba55a416a1, - limb1: 0xce708c87c4ab529d7c4d4b51, - limb2: 0xc5de7d14d5274f9a7ec5131f, - limb3: 0x168d4b5ae1a7125dead907dc + limb0: 0xa37d8288f41c6ce32ecb17e2, + limb1: 0x56f36c3517bd230fefdbda97, + limb2: 0xde1b03a23f8bb59e, + limb3: 0x0, }, u384 { - limb0: 0x302ea91a3b09524e7c49fbbb, - limb1: 0xb39869507b587b118b5d4593, - limb2: 0x21a5d66bb23ba5c279c2895f, - limb3: 0xd0088f51cbff34d258dd3db - } - ] - .span(), - a_den: array![ - u384 { - limb0: 0xbf233d2aee64158f2f91c838, - limb1: 0x3e0a4923172718281a48731d, - limb2: 0xbc29b375d5e4cf55bd898b0d, - limb3: 0xb2f255db19d2e8ee63ed7d + limb0: 0x9d3ed76f0cda7c44b1892480, + limb1: 0xad525772678432d3dd0efe6, + limb2: 0x1e5683ea757beea2, + limb3: 0x0, }, u384 { - limb0: 0xce92c8352f9224a727fe6aa2, - limb1: 0xd404993d860db0b3533ffc73, - limb2: 0x3a6e17980e75c4f85f128c8, - limb3: 0x2cdbbd34c20cff6fda5b095 + limb0: 0x5ea4b87b01c4123da1d0af63, + limb1: 0x63d92b3fc1da85514200ea22, + limb2: 0x3d88eabf39828878, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0x5ed0334bc9993edb772b4442, - limb1: 0xd1c7bd63bc34515b01d4caae, - limb2: 0xb0d2ecc1d9a3f1d218d774ce, - limb3: 0xd5fb4713c434613fb837abd + limb0: 0xfc72a135b2aaa8dee44f93fd, + limb1: 0x9f66c7f22c15ecf4bac82c86, + limb2: 0x6724ac9ffc3487b8, + limb3: 0x0, }, u384 { - limb0: 0xf4156ff70f76f3b687c6eaf2, - limb1: 0x32d6c654ecc59021cc0fef3, - limb2: 0x45a693b73a054e74944cce5f, - limb3: 0xd189e878386807a0d2a27c7 + limb0: 0x28b8828023437a8d6e45900c, + limb1: 0x490cdc11b822023a5eedbb11, + limb2: 0xcf427b32bdfa36c7, + limb3: 0x0, }, - u384 { - limb0: 0xc43d5cbf1370cafe7a75939d, - limb1: 0x9836263aaf4f3f064d1a1e83, - limb2: 0x9eaa6b8c07a5bbf633e387f7, - limb3: 0x5c57abc959b5cbb96eb1ecb - } + u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), - b_den: array![ - u384 { - limb0: 0xfc8cf4abb990563cbe4720e0, - limb1: 0xf829248c5c9c60a06921cc76, - limb2: 0xf0a6cdd757933d56f6262c34, - limb3: 0x2cbc9576c674ba3b98fb5f6 - }, - u384 { - limb0: 0x3a4b20d4be48929c9ff9aa88, - limb1: 0x501264f61836c2cd4cfff1cf, - limb2: 0xe9b85e6039d713e17c4a323, - limb3: 0xb36ef4d30833fdbf696c254 - }, - u384 { limb0: 0x4, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { - limb0: 0xbf233d2aee64158f2f91c838, - limb1: 0x3e0a4923172718281a48731d, - limb2: 0xbc29b375d5e4cf55bd898b0d, - limb3: 0xb2f255db19d2e8ee63ed7d - }, - u384 { - limb0: 0xce92c8352f9224a727fe6aa2, - limb1: 0xd404993d860db0b3533ffc73, - limb2: 0x3a6e17980e75c4f85f128c8, - limb3: 0x2cdbbd34c20cff6fda5b095 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() }, }; let derive_point_from_x_hint = DerivePointFromXHint { y_last_attempt: u384 { - limb0: 0x7de11bb33af7b669d3eea385, - limb1: 0xf050e2b3645c76f4021a9145, - limb2: 0xbb5dafe124843cb2bf90ab58, - limb3: 0x83df3d15b1ef9fb0abffd31 + limb0: 0x4d4cd96c2a9c3eeb03a36099, + limb1: 0x68066c4db63f81f0b9abcbb6, + limb2: 0x3cf75d802ff73183, + limb3: 0x0, }, g_rhs_sqrt: array![].span(), }; let points = array![ G1Point { x: u384 { - limb0: 0xe4f817e54aede0613c17035c, - limb1: 0xdff1f15010392a6da1f95a6, - limb2: 0xbed78d3d341e911d49f15454, - limb3: 0x18154782ce0913b21588066d + limb0: 0x113c8d620e3745e45e4389b8, + limb1: 0x85b8ff52d905fd02fe191c3f, + limb2: 0xf5d132d685201517, + limb3: 0x0, }, y: u384 { - limb0: 0x3d77d61326ef5a9a5a681757, - limb1: 0xd3070afd4f0e121de7fcee60, - limb2: 0xdf9ef4088763fe611fb85858, - limb3: 0x11a612bdd0bc09562856a70 - } + limb0: 0x60c0ba1b358f375b2362662e, + limb1: 0x6abfc829d93e09aa5174ec04, + limb2: 0x7bc4637aca93cb5a, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0xde4f62a6588c9401ffefbd3, - limb1: 0x9bb5f797ac6d3395b71420b5, - limb2: 0xdc39e973aaf31de52219df08, - limb3: 0x105dcc4dce3960447d21d3c1 + limb0: 0xd3ff147ff0ee4213f51f677d, + limb1: 0x431366a7732a6e4a6b942255, + limb2: 0x9fe743b25d39a591, + limb3: 0x0, + }, + y: u384 { + limb0: 0x7f8bb562ff60a902ef14bcb0, + limb1: 0xeb9420089fa531db62e806a6, + limb2: 0xfd028df433dfd5cc, + limb3: 0x0, }, - y: u384 { - limb0: 0xaefd0d854043fd325dd3c34f, - limb1: 0x9b63c98d9a7845c52e1e2b0f, - limb2: 0x9db0be660d847ccc58358f3f, - limb3: 0x17cb6c41f0c4e1a7394ab62a - } }, G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, ] .span(); let scalars = array![ u256 { low: 0x0, high: 0x0 }, u256 { - low: 0x12e0c8b2bad640fb19488dec4f65d4d9, high: 0x2a43e70faf19922ad9b8a714e61a441c + low: 0xe443df789558867f5ba91faf7a024204, high: 0x23a7711a8133287637ebdcd9e87a1613, }, u256 { - low: 0x5a92118719c78df48f4ff31e78de5857, high: 0x51f964df9c6316b950f244556f25e2a2 + low: 0x1846d424c17c627923c6612f48268673, high: 0xfcbd04c340212ef7cca5a5a19e4d6e3c, }, ] .span(); let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 1 + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 3, ); assert!( res == G1Point { x: u384 { - limb0: 0x2b828af1f5fe30bbe7a1074a, - limb1: 0x5669beaa69827b52dc874c9f, - limb2: 0x648af2c24d82a5a758c96b8e, - limb3: 0x188bc245620ae6b6afec9dc3 + limb0: 0x33ee7695471a03192ef22266, + limb1: 0xb449dd8cfd0c3438e14a718c, + limb2: 0x1fbb33f079b828e2, + limb3: 0x0, }, y: u384 { - limb0: 0xdc96192f803ef92f56d59758, - limb1: 0xfc6139925c05a030065d564, - limb2: 0xb24447300bec56efec94dcf4, - limb3: 0x156f97e5d31055c0a5fe154d - } - } + limb0: 0xb411f97aeec2eae6044122ec, + limb1: 0xcdce180b60667260d7ce284e, + limb2: 0xa73a7381dd3b07c, + limb3: 0x0, + }, + }, ); } #[test] - fn test_msm_SECP256R1_1P_edge_case() { - let scalars_digits_decompositions = Option::Some( - array![(array![0x0,].span(), array![0x0,].span()),].span() - ); + fn test_msm_SECP256K1_1P_edge_case() { + let scalars_digits_decompositions = Option::None; let msm_hint = MSMHint { Q_low: G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, Q_high: G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, Q_high_shifted: G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, - SumDlogDivLow: FunctionFelt { + RLCSumDlogDiv: FunctionFelt { a_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - b_den: array![ + a_den: array![ u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), b_num: array![ - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - a_den: array![ + b_den: array![ u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] - .span() + .span(), }, }; let derive_point_from_x_hint = DerivePointFromXHint { y_last_attempt: u384 { - limb0: 0x939295458800009ac8be94f9, - limb1: 0x57a120ac49dc3782bcf1b6e1, - limb2: 0x31036fb2f551a296, - limb3: 0x0 + limb0: 0x69588367250041f054620d3b, + limb1: 0x1174ea4879bb0b580868e8e8, + limb2: 0x7ea9eb687089d547, + limb3: 0x0, }, g_rhs_sqrt: array![].span(), }; let points = array![ G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, ] .span(); - let scalars = array![u256 { low: 0x0, high: 0x0 },].span(); + let scalars = array![u256 { low: 0x0, high: 0x0 }].span(); let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 3 + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 2, ); assert!( res == G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + }, ); } #[test] - fn test_msm_SECP256R1_2P_edge_case() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - ] - .span() - ), - ] - .span() - ); + fn test_msm_SECP256K1_2P_edge_case() { + let scalars_digits_decompositions = Option::None; let msm_hint = MSMHint { Q_low: G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, Q_high: G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, Q_high_shifted: G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, - SumDlogDivLow: FunctionFelt { + RLCSumDlogDiv: FunctionFelt { a_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - b_den: array![ + a_den: array![ u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - a_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + b_num: array![ + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), b_den: array![ @@ -95288,1223 +17086,479 @@ mod msm_tests { u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - b_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() }, }; let derive_point_from_x_hint = DerivePointFromXHint { y_last_attempt: u384 { - limb0: 0x47336a2358d87987148bcb8d, - limb1: 0xead7957765acf9a1bbea50d9, - limb2: 0x1f68715a44c3ef82, - limb3: 0x0 + limb0: 0x862bbbc7625bb23fe3ee10f0, + limb1: 0x868baf0626c044f9a077a0ca, + limb2: 0x155e74b122885e85, + limb3: 0x0, }, - g_rhs_sqrt: array![].span(), + g_rhs_sqrt: array![ + u384 { + limb0: 0x610f7ffe1889436670829e43, + limb1: 0xb1f2329808ffbbfd2a7fce4c, + limb2: 0x56c9e223dae04be9, + limb3: 0x0, + }, + ] + .span(), }; let points = array![ G1Point { x: u384 { - limb0: 0x113c8d620e3745e45e4389b8, - limb1: 0x85b8ff52d905fd02fe191c3f, - limb2: 0xf5d132d685201517, - limb3: 0x0 + limb0: 0x393dead57bc85a6e9bb44a70, + limb1: 0x64d4b065b3ede27cf9fb9e5c, + limb2: 0xda670c8c69a8ce0a, + limb3: 0x0, }, y: u384 { - limb0: 0x60c0ba1b358f375b2362662e, - limb1: 0x6abfc829d93e09aa5174ec04, - limb2: 0x7bc4637aca93cb5a, - limb3: 0x0 - } + limb0: 0x789872895ad7121175bd78f8, + limb1: 0xc0deb0b56fb251e8fb5d0a8d, + limb2: 0x3f10d670dc3297c2, + limb3: 0x0, + }, }, G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, ] .span(); let scalars = array![ u256 { low: 0x0, high: 0x0 }, u256 { - low: 0xeb1167b367a9c3787c65c1e582e2e662, high: 0xf7c1bd874da5e709d4713d60c8a70639 + low: 0xeb1167b367a9c3787c65c1e582e2e662, high: 0xf7c1bd874da5e709d4713d60c8a70639, }, ] .span(); let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 3 + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 2, ); assert!( res == G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + }, ); } #[test] - fn test_msm_SECP256R1_3P_edge_case() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - ] - .span() - ), - ] - .span() - ); + fn test_msm_SECP256K1_3P_edge_case() { + let scalars_digits_decompositions = Option::None; let msm_hint = MSMHint { Q_low: G1Point { x: u384 { - limb0: 0xf831856624736393b3b76d11, - limb1: 0xc165a27df5b76589fe2ce1e2, - limb2: 0x2a23444ace6bef77, - limb3: 0x0 + limb0: 0x81f93764cd87ff5af9aad87f, + limb1: 0x8aa0792747a5b8ca16b9e369, + limb2: 0xce30fe4be7b17451, + limb3: 0x0, }, y: u384 { - limb0: 0xa6bbeec6fb0369c3de339579, - limb1: 0xd394f6a5704d1de2da06048, - limb2: 0xe8057073c0fde87b, - limb3: 0x0 - } + limb0: 0x5b77703ae4639b17cfca6124, + limb1: 0x86b771c3a15eee8b1ca9feaa, + limb2: 0x5acc99b6152d28a4, + limb3: 0x0, + }, }, Q_high: G1Point { x: u384 { - limb0: 0x3b1d72dc227f75f02874e08b, - limb1: 0xd395fa7c14d6ff33d03e1baf, - limb2: 0xbf16fcc65f95b486, - limb3: 0x0 + limb0: 0xff8927eca139c99d7960c8ef, + limb1: 0xec91eee7a0301418e07f41fc, + limb2: 0xb49b07479d1c26aa, + limb3: 0x0, }, y: u384 { - limb0: 0xe2461ebbe7a5b4d76dbef92b, - limb1: 0x3eecb75c5315cd3d2d0b9456, - limb2: 0x8192517353bc6523, - limb3: 0x0 - } + limb0: 0xe496c28fbc13ed8a0324b632, + limb1: 0x2d5583856241be833fec7c9d, + limb2: 0xff1c723bbb39f40b, + limb3: 0x0, + }, }, Q_high_shifted: G1Point { x: u384 { - limb0: 0xcff970bda4db69dac06ebad8, - limb1: 0xdee4204cca252abd67132509, - limb2: 0xa79c0006b6ca7fab, - limb3: 0x0 + limb0: 0x3efedfaf5b7ce0a80c4fa5a1, + limb1: 0x2c16205bc2efe9dcc6eefa9a, + limb2: 0x3f2cefb8efbcc695, + limb3: 0x0, }, y: u384 { - limb0: 0x759642b853dd01b9d2d7bb18, - limb1: 0xe1e1d2f8bf0f2f5b463bfae0, - limb2: 0xbc3c71be130f204d, - limb3: 0x0 - } + limb0: 0xc3eeedd13fa2c621a214d57, + limb1: 0x5e42015603c2cf1a184c7bdb, + limb2: 0x8ab02685472a4433, + limb3: 0x0, + }, }, - SumDlogDivLow: FunctionFelt { + RLCSumDlogDiv: FunctionFelt { a_num: array![ u384 { - limb0: 0xec4b7a43e1054882a2b8787f, - limb1: 0xfb71f01aab18dd64bf0290ef, - limb2: 0x739387fdd621db47, - limb3: 0x0 + limb0: 0x20a01cfce8a5bce328cd8cb6, + limb1: 0x611f3fb42b516f17cb0584f8, + limb2: 0x763b2c950e4c198e, + limb3: 0x0, }, u384 { - limb0: 0xb9104445c9ee329ddab79885, - limb1: 0x7fffffffffffffff8f41b07b, - limb2: 0x7fffffff80000000, - limb3: 0x0 + limb0: 0x462d15939fcd221751c6ac8b, + limb1: 0x946592683858eab6a9652826, + limb2: 0xa1544fca41ad8c11, + limb3: 0x0, }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ u384 { - limb0: 0x8b184b2d84dda8fb47336e4a, - limb1: 0x7cc34072cf43d5f8c50e123, - limb2: 0x2ac6de072c8291de, - limb3: 0x0 + limb0: 0x31f0a0eca245552ecd7315f8, + limb1: 0xf2429ee89609dddcb454a01b, + limb2: 0x2c1624c1c090dd7d, + limb3: 0x0, }, u384 { - limb0: 0x33cf6619ea9e5a5857292b71, - limb1: 0xfb86f6da971e2c2b963efbc8, - limb2: 0x35f57801d45a6af7, - limb3: 0x0 + limb0: 0xc709d17953074ae5eadde9bc, + limb1: 0xeb446dc59a11fc094796dd40, + limb2: 0x47408b85eea80d47, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0x7a1c2b0493c892201f4ed6b0, - limb1: 0xdfc0b649a4c1ffe41434c3e4, - limb2: 0x6b9772a42ab95dd0, - limb3: 0x0 - }, - u384 { - limb0: 0x845a4b3e553c8b8b94d04830, - limb1: 0x2c2f8ddc08e40a6d5bd715f0, - limb2: 0xe64e5d836de3bc0d, - limb3: 0x0 - }, - u384 { - limb0: 0x8dae72c8fcd89cd4476749f2, - limb1: 0x7e3b93070af8aad22c1313f4, - limb2: 0xc65b8685c01c77dd, - limb3: 0x0 - }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - b_den: array![ - u384 { - limb0: 0x8658cb14baa19703d5c193c4, - limb1: 0x7a859f1d78a8d102d490ffb9, - limb2: 0x8810871891fb97f5, - limb3: 0x0 - }, + a_den: array![ u384 { - limb0: 0xb79f901e1c9df0b7a2aebda6, - limb1: 0x9aa214fa44a1511b0d6c8dcf, - limb2: 0x5a97091e3eb20750, - limb3: 0x0 + limb0: 0xb491b2471055bcbdd1dbef77, + limb1: 0xb90603fde64b1a2ce0b61eca, + limb2: 0xb4aaae5c76b88642, + limb3: 0x0, }, u384 { - limb0: 0x30e57ea87bf32d352256ddf7, - limb1: 0xc156d8c5b13e0239a2601359, - limb2: 0xb8e5cdd22d2b5300, - limb3: 0x0 + limb0: 0x3eba2b268c80681c5c311e90, + limb1: 0xf11a024b8e0531687340bd0b, + limb2: 0xc1b2df975bb5b863, + limb3: 0x0, }, u384 { - limb0: 0x8b184b2d84dda8fb47336e47, - limb1: 0x7cc34072cf43d5f8c50e123, - limb2: 0x2ac6de072c8291de, - limb3: 0x0 + limb0: 0x2eaecbac827c9f309771dbcd, + limb1: 0x4f246630ea9180999a632579, + limb2: 0x39f4d03f54586bae, + limb3: 0x0, }, u384 { - limb0: 0x33cf6619ea9e5a5857292b71, - limb1: 0xfb86f6da971e2c2b963efbc8, - limb2: 0x35f57801d45a6af7, - limb3: 0x0 + limb0: 0x4180fbf542589c18eb2d7044, + limb1: 0xced4c189fdc0356f499c8870, + limb2: 0x7b2973b1222292cb, + limb3: 0x0, }, u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x1eba51d293cb74b25730952a, - limb1: 0x906541fa014f7054082fbe21, - limb2: 0x2e106fda62d7fa85, - limb3: 0x0 - }, - u384 { - limb0: 0x18d0afe0edb98066b4e326fd, - limb1: 0xffffffffffffffffee22305f, - limb2: 0xffffffff00000000, - limb3: 0x0 - }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - a_den: array![ + b_num: array![ u384 { - limb0: 0x79a28720b6f6c2901c1b6b21, - limb1: 0x704ddc3781df41868fe9f55e, - limb2: 0x518625728416a2bf, - limb3: 0x0 + limb0: 0x875809d83e33cb3b603309aa, + limb1: 0x6ad6d4a704b31d0441fad306, + limb2: 0xe478235415e659d5, + limb3: 0x0, }, u384 { - limb0: 0xf0e378a3ec9247fbe26bb7f6, - limb1: 0xe9569edc77fe9281c42dc1fc, - limb2: 0xa101bf854330a5e9, - limb3: 0x0 + limb0: 0xc29722eb23a6c51f15c5b6b7, + limb1: 0xcaad40fc21df62667f2f7c9f, + limb2: 0x283d3160bb315f86, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0x6d8fca3224e3136dcba20051, - limb1: 0x531ef14ca1e30be2b0bceb4c, - limb2: 0xb666fb69f3c379d6, - limb3: 0x0 + limb0: 0x4524bfca28d2a6c6ba96c39, + limb1: 0xa35f0c26665675ff32ee3a9c, + limb2: 0x92cb938207ec8ab2, + limb3: 0x0, }, u384 { - limb0: 0x97cac4a4fdff83f6161c6056, - limb1: 0xa0d567b311571677c37ca52e, - limb2: 0x6fc445a46fd466fd, - limb3: 0x0 + limb0: 0x151c89d4b8f7c9e45b67a274, + limb1: 0x5a281d2133f588c400ee55b1, + limb2: 0x53876cce8038fdba, + limb3: 0x0, }, u384 { - limb0: 0x2d46378df71f30211f291fbd, - limb1: 0x6817355d6ca9352b06f4696f, - limb2: 0x975515b1e97470a4, - limb3: 0x0 + limb0: 0x7ac4deddb182928226db63f1, + limb1: 0xb766e28c02e373347c52e9b0, + limb2: 0x4a7ea9b2ab26031a, + limb3: 0x0, }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), b_den: array![ u384 { - limb0: 0xdfb71a46102ad9dee734687e, - limb1: 0xd04da4108863a8238e9ea8b7, - limb2: 0xefe716b56f4b6c3, - limb3: 0x0 - }, - u384 { - limb0: 0x84885b5b88da356c87aef9b5, - limb1: 0xac4230444d712eb17d097f09, - limb2: 0x169f510fa322d815, - limb3: 0x0 - }, - u384 { - limb0: 0xf9a9470a7617644a808f3867, - limb1: 0xf7e7e0c00e9ccf371893c0bb, - limb2: 0x77c0f746e0a8a22b, - limb3: 0x0 - }, - u384 { - limb0: 0x79a28720b6f6c2901c1b6b1e, - limb1: 0x704ddc3781df41868fe9f55e, - limb2: 0x518625728416a2bf, - limb3: 0x0 + limb0: 0xeffbdff172582934bd039b85, + limb1: 0xf2a1bf14c0db73a24fad78a, + limb2: 0xf0aac4873f0babd3, + limb3: 0x0, }, u384 { - limb0: 0xf0e378a3ec9247fbe26bb7f6, - limb1: 0xe9569edc77fe9281c42dc1fc, - limb2: 0xa101bf854330a5e9, - limb3: 0x0 + limb0: 0xb7172e0dd782d8cb8557e905, + limb1: 0x97b61010e22459db26c52b4e, + limb2: 0x4be41d2381f80abb, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ u384 { - limb0: 0xa9676ad3b9efcf4e461f93a4, - limb1: 0x45b3ccf12c2e3c619157a6de, - limb2: 0x3c0fc5c272f3b212, - limb3: 0x0 + limb0: 0x46c791b791685a55241d066c, + limb1: 0x29fecb5669fa843338b60650, + limb2: 0x95b1b1bb4e6af1c4, + limb3: 0x0, }, u384 { - limb0: 0x5784a91a5e09d24e7c4a2665, - limb1: 0x7fffffffffffffff7c074594, - limb2: 0x7fffffff80000000, - limb3: 0x0 - } - ] - .span(), - a_den: array![ - u384 { - limb0: 0xef83b988624532b4d50958cc, - limb1: 0x7c751ca858569d5f9d6672ec, - limb2: 0x76a51d1761fa980c, - limb3: 0x0 + limb0: 0x7f1895fbe0c20170401a1097, + limb1: 0x60d74ec3d68c9037e3fdd9dc, + limb2: 0x12ccd83465aa89d5, + limb3: 0x0, }, u384 { - limb0: 0xf4e91c6638a52035171c649b, - limb1: 0x4d85e5372103d60ec8aebf48, - limb2: 0x994d0330e99fcbcf, - limb3: 0x0 + limb0: 0x3eba2b268c80681c5c311e97, + limb1: 0xf11a024b8e0531687340bd0b, + limb2: 0xc1b2df975bb5b863, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0x95a032c38809b3674a705f22, - limb1: 0x5354b2074b618c858b289c7f, - limb2: 0x7665a34a8549ce9f, - limb3: 0x0 + limb0: 0x2eaecbac827c9f309771dbcd, + limb1: 0x4f246630ea9180999a632579, + limb2: 0x39f4d03f54586bae, + limb3: 0x0, }, u384 { - limb0: 0x2e1e7ce6eeff836215e86895, - limb1: 0x83ec0565ce91000c75ae3f79, - limb2: 0x88a12adc65e89b5f, - limb3: 0x0 + limb0: 0x4180fbf542589c18eb2d7044, + limb1: 0xced4c189fdc0356f499c8870, + limb2: 0x7b2973b1222292cb, + limb3: 0x0, }, - u384 { - limb0: 0xc45977bd10156f2598c0d18c, - limb1: 0x9c0bc3988d833b0010a9e6bf, - limb2: 0x33a7d18b3006b094, - limb3: 0x0 - } + u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), - b_den: array![ - u384 { - limb0: 0x8d66e8b7b483d3265ac1edeb, - limb1: 0x560d3627f7cdcf9c54522ca, - limb2: 0xc5d0f963ce8e175, - limb3: 0x0 - }, - u384 { - limb0: 0x382e9e19dfde37e65c9f124c, - limb1: 0xa722e47de4449f771e39dbd7, - limb2: 0x8579057707069afb, - limb3: 0x0 - }, - u384 { - limb0: 0xed985bc391dedb9ee27d3278, - limb1: 0xcb5a0db0138d04900b10c8d7, - limb2: 0x8edf2c43ed5b307b, - limb3: 0x0 - }, - u384 { - limb0: 0xef83b988624532b4d50958c9, - limb1: 0x7c751ca858569d5f9d6672ec, - limb2: 0x76a51d1761fa980c, - limb3: 0x0 - }, - u384 { - limb0: 0xf4e91c6638a52035171c649b, - limb1: 0x4d85e5372103d60ec8aebf48, - limb2: 0x994d0330e99fcbcf, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() }, }; let derive_point_from_x_hint = DerivePointFromXHint { y_last_attempt: u384 { - limb0: 0xb8ef2dfd1444c4e0efe00148, - limb1: 0x967459cf9f622705ee83c962, - limb2: 0x3a669994cff338be, - limb3: 0x0 + limb0: 0x2c77bb8f219c4f86d830378a, + limb1: 0x7762e343071b3889761f79fb, + limb2: 0x96e3952b500641, + limb3: 0x0, }, g_rhs_sqrt: array![ u384 { - limb0: 0xf57dfd2e75b1ce26390a7a1a, - limb1: 0x609597792b488ee2b8b2a3f2, - limb2: 0x605b9279af8c238f, - limb3: 0x0 - } + limb0: 0x9d1cd65376303ffbede41478, + limb1: 0xc58c82a3af69a89f7f34d76, + limb2: 0x4446aa183d69a768, + limb3: 0x0, + }, ] .span(), }; let points = array![ G1Point { x: u384 { - limb0: 0x113c8d620e3745e45e4389b8, - limb1: 0x85b8ff52d905fd02fe191c3f, - limb2: 0xf5d132d685201517, - limb3: 0x0 + limb0: 0x393dead57bc85a6e9bb44a70, + limb1: 0x64d4b065b3ede27cf9fb9e5c, + limb2: 0xda670c8c69a8ce0a, + limb3: 0x0, }, y: u384 { - limb0: 0x60c0ba1b358f375b2362662e, - limb1: 0x6abfc829d93e09aa5174ec04, - limb2: 0x7bc4637aca93cb5a, - limb3: 0x0 - } + limb0: 0x789872895ad7121175bd78f8, + limb1: 0xc0deb0b56fb251e8fb5d0a8d, + limb2: 0x3f10d670dc3297c2, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0xd3ff147ff0ee4213f51f677d, - limb1: 0x431366a7732a6e4a6b942255, - limb2: 0x9fe743b25d39a591, - limb3: 0x0 + limb0: 0xfdfdc509f368ba4395773d3a, + limb1: 0x8de2b60b577a13d0f83b578e, + limb2: 0xc2dd970269530ba2, + limb3: 0x0, }, y: u384 { - limb0: 0x7f8bb562ff60a902ef14bcb0, - limb1: 0xeb9420089fa531db62e806a6, - limb2: 0xfd028df433dfd5cc, - limb3: 0x0 - } + limb0: 0x589fa250d638e35400c12ddf, + limb1: 0xb3aac19fcb5095808402aa7f, + limb2: 0xed6de6590d0195d1, + limb3: 0x0, + }, }, G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, ] .span(); let scalars = array![ u256 { low: 0x0, high: 0x0 }, u256 { - low: 0xe443df789558867f5ba91faf7a024204, high: 0x23a7711a8133287637ebdcd9e87a1613 + low: 0xe443df789558867f5ba91faf7a024204, high: 0x23a7711a8133287637ebdcd9e87a1613, }, u256 { - low: 0x1846d424c17c627923c6612f48268673, high: 0xfcbd04c340212ef7cca5a5a19e4d6e3c + low: 0x1846d424c17c627923c6612f48268673, high: 0xfcbd04c340212ef7cca5a5a19e4d6e3c, }, ] .span(); let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 3 + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 2, ); assert!( res == G1Point { x: u384 { - limb0: 0x33ee7695471a03192ef22266, - limb1: 0xb449dd8cfd0c3438e14a718c, - limb2: 0x1fbb33f079b828e2, - limb3: 0x0 + limb0: 0x55909ba28af82ea934a4b85d, + limb1: 0x4bf448ca5d57fb119c843e0a, + limb2: 0x6a2275491b991ee3, + limb3: 0x0, }, y: u384 { - limb0: 0xb411f97aeec2eae6044122ec, - limb1: 0xcdce180b60667260d7ce284e, - limb2: 0xa73a7381dd3b07c, - limb3: 0x0 - } - } + limb0: 0x5bf4bf0cefc9553422e60eb0, + limb1: 0x178d55925d3d72f44783f626, + limb2: 0xe13a21d7302f8139, + limb3: 0x0, + }, + }, ); } #[test] - fn test_msm_SECP256K1_1P_edge_case() { - let scalars_digits_decompositions = Option::Some( - array![(array![0x0,].span(), array![0x0,].span()),].span() - ); + fn test_msm_ED25519_1P_edge_case() { + let scalars_digits_decompositions = Option::None; let msm_hint = MSMHint { Q_low: G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, Q_high: G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, Q_high_shifted: G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, - SumDlogDivLow: FunctionFelt { + RLCSumDlogDiv: FunctionFelt { a_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - b_den: array![ + a_den: array![ u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), b_num: array![ - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - a_den: array![ + b_den: array![ u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] - .span() + .span(), }, }; let derive_point_from_x_hint = DerivePointFromXHint { y_last_attempt: u384 { - limb0: 0x1f09ea597dd1b76ad0589c17, - limb1: 0xdb92b549b432162903e3e952, - limb2: 0x7812a16bfa702609, - limb3: 0x0 + limb0: 0x1e98736cf961394cfa6dfe5e, + limb1: 0xd7fb6593bc4d484738ba5ff9, + limb2: 0x3133b3e2100f63a6, + limb3: 0x0, }, - g_rhs_sqrt: array![].span(), + g_rhs_sqrt: array![ + u384 { + limb0: 0x785094dfbbba459c666beaef, + limb1: 0x55c307610d1a86f697251ba6, + limb2: 0x3a9bf57c2d1f3f50, + limb3: 0x0, + }, + ] + .span(), }; let points = array![ G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, ] .span(); - let scalars = array![u256 { low: 0x0, high: 0x0 },].span(); + let scalars = array![u256 { low: 0x0, high: 0x0 }].span(); let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 2 + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 4, ); assert!( res == G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + }, ); } #[test] - fn test_msm_SECP256K1_2P_edge_case() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - ] - .span() - ), - ] - .span() - ); + fn test_msm_ED25519_2P_edge_case() { + let scalars_digits_decompositions = Option::None; let msm_hint = MSMHint { Q_low: G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, Q_high: G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, Q_high_shifted: G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, - SumDlogDivLow: FunctionFelt { + RLCSumDlogDiv: FunctionFelt { a_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - b_den: array![ + a_den: array![ u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - a_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + b_num: array![ + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), b_den: array![ @@ -96514,1204 +17568,489 @@ mod msm_tests { u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - b_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() }, }; let derive_point_from_x_hint = DerivePointFromXHint { y_last_attempt: u384 { - limb0: 0x7eaaa823bf2e8ea170ebfece, - limb1: 0xc9db82034b10fa27593cd4b, - limb2: 0x18f1b81a89a11888, - limb3: 0x0 + limb0: 0x732ddc8e2cc76b36024c51f4, + limb1: 0xc4691da0ba50feaacb01549d, + limb2: 0x3b4ce309a9762fe, + limb3: 0x0, }, - g_rhs_sqrt: array![].span(), + g_rhs_sqrt: array![ + u384 { + limb0: 0xeb61555ff2e8eab1c46d48bd, + limb1: 0x470b0eae7200060f8562df1c, + limb2: 0x1e45be405dcbf244, + limb3: 0x0, + }, + u384 { + limb0: 0xf4bfa5b3cc5f0d550830ebba, + limb1: 0x60db6b1216fe71b94bfc06f8, + limb2: 0x253e2357d973bcd8, + limb3: 0x0, + }, + ] + .span(), }; let points = array![ G1Point { x: u384 { - limb0: 0x393dead57bc85a6e9bb44a70, - limb1: 0x64d4b065b3ede27cf9fb9e5c, - limb2: 0xda670c8c69a8ce0a, - limb3: 0x0 + limb0: 0x7238f02b9f20e09c2181a557, + limb1: 0x2cedcc5b0be371c337fd7e9e, + limb2: 0x41f3bbeb280fe8a2, + limb3: 0x0, }, y: u384 { - limb0: 0x789872895ad7121175bd78f8, - limb1: 0xc0deb0b56fb251e8fb5d0a8d, - limb2: 0x3f10d670dc3297c2, - limb3: 0x0 - } + limb0: 0xf046f8cd6e5a75fca71dd19b, + limb1: 0x892b4613ef5c58df4ef692a4, + limb2: 0x7527fa36f5738847, + limb3: 0x0, + }, }, G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, ] .span(); let scalars = array![ u256 { low: 0x0, high: 0x0 }, u256 { - low: 0xeb1167b367a9c3787c65c1e582e2e662, high: 0xf7c1bd874da5e709d4713d60c8a70639 + low: 0xb4862b21fb97d43588561712e8e5216a, high: 0x4b3e865e6f4590b9a164106cf6a659e, }, ] .span(); let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 2 + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 4, ); assert!( res == G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + }, ); } #[test] - fn test_msm_SECP256K1_3P_edge_case() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - ] - .span() - ), - ( - array![ - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - ] - .span() - ), - ] - .span() - ); + fn test_msm_ED25519_3P_edge_case() { + let scalars_digits_decompositions = Option::None; let msm_hint = MSMHint { Q_low: G1Point { x: u384 { - limb0: 0x81f93764cd87ff5af9aad87f, - limb1: 0x8aa0792747a5b8ca16b9e369, - limb2: 0xce30fe4be7b17451, - limb3: 0x0 + limb0: 0x6889d75e36c152c1cc46f152, + limb1: 0xab6c91609cc41b1c6148652e, + limb2: 0x6d04cda48b959e7b, + limb3: 0x0, }, y: u384 { - limb0: 0x5b77703ae4639b17cfca6124, - limb1: 0x86b771c3a15eee8b1ca9feaa, - limb2: 0x5acc99b6152d28a4, - limb3: 0x0 - } + limb0: 0xd12689aa4a75942f20369ac5, + limb1: 0x5d6ae4c0a9977c4e19538008, + limb2: 0x101fd900dd268a39, + limb3: 0x0, + }, }, Q_high: G1Point { x: u384 { - limb0: 0xff8927eca139c99d7960c8ef, - limb1: 0xec91eee7a0301418e07f41fc, - limb2: 0xb49b07479d1c26aa, - limb3: 0x0 + limb0: 0x4cf7cf1e83ac6ddeb4c0d88, + limb1: 0xdf032c7d359dec2b1b30b922, + limb2: 0x1b4e7ef7358304ab, + limb3: 0x0, }, y: u384 { - limb0: 0xe496c28fbc13ed8a0324b632, - limb1: 0x2d5583856241be833fec7c9d, - limb2: 0xff1c723bbb39f40b, - limb3: 0x0 - } + limb0: 0x90887d2f101702d94aa5377f, + limb1: 0x3fdfadebd967a872d02af758, + limb2: 0x2ea0b09931ec6dc4, + limb3: 0x0, + }, }, Q_high_shifted: G1Point { x: u384 { - limb0: 0x3efedfaf5b7ce0a80c4fa5a1, - limb1: 0x2c16205bc2efe9dcc6eefa9a, - limb2: 0x3f2cefb8efbcc695, - limb3: 0x0 + limb0: 0x506c121a6c7fd9aa60e121a3, + limb1: 0x23b636b641b29ef8bdd1c639, + limb2: 0x791b6ec60b5f8598, + limb3: 0x0, }, y: u384 { - limb0: 0xc3eeedd13fa2c621a214d57, - limb1: 0x5e42015603c2cf1a184c7bdb, - limb2: 0x8ab02685472a4433, - limb3: 0x0 - } + limb0: 0x59f9c615c1fecf831ca3b5fc, + limb1: 0x2f6fb1f6358caa9cb6f8c9f7, + limb2: 0x6e62064b941a23df, + limb3: 0x0, + }, }, - SumDlogDivLow: FunctionFelt { + RLCSumDlogDiv: FunctionFelt { a_num: array![ u384 { - limb0: 0x21ca4954703e20a32a53c14e, - limb1: 0x77928094e2384846615f9f3, - limb2: 0xb0933d87df5f16c0, - limb3: 0x0 + limb0: 0xe69974737b88f1268fe9aaae, + limb1: 0x8c1559e40bcf30fa0bd7903c, + limb2: 0x4b532cae5bfa2c57, + limb3: 0x0, }, u384 { - limb0: 0x39104445c9ee329d5ab7969d, - limb1: 0xffffffffffffffff8f41b07b, - limb2: 0x7fffffffffffffff, - limb3: 0x0 + limb0: 0xfa9035e798d15baf399b3b7d, + limb1: 0x8e289acf0c43e298455b089c, + limb2: 0x5e626a1eb94c848c, + limb3: 0x0, }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ u384 { - limb0: 0x1287ed4d64ace9b7a43a0e54, - limb1: 0xa8bd72a441196b6133cce959, - limb2: 0xc692b7558ef0a607, - limb3: 0x0 + limb0: 0x654e97c8202baacafd347411, + limb1: 0xbbc95eee2c80600c3e370615, + limb2: 0x125df9e9282cba82, + limb3: 0x0, }, u384 { - limb0: 0x800903913f0f465f70dde2a5, - limb1: 0xe77cd0cd60e03364f10ac507, - limb2: 0x6ef16ab1aefb800b, - limb3: 0x0 + limb0: 0x183a985c65551f6ba3d83980, + limb1: 0x134ad9dbc6c8c9ef9842342a, + limb2: 0x3a6b860a6754781f, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0xa4ddcdaa4d1f21498a8e60e2, - limb1: 0x3139c084333af9819a02b0ae, - limb2: 0x7805f31083be707c, - limb3: 0x0 - }, - u384 { - limb0: 0x671b070bbd9488ed6f637c14, - limb1: 0x15d2edbf03b6ef7a39eb1db0, - limb2: 0xdc5754685cf24343, - limb3: 0x0 - }, - u384 { - limb0: 0x95886720b10b40982ba07bbc, - limb1: 0x7722212fe97468b0f47f0f64, - limb2: 0x1a324051317a343d, - limb3: 0x0 - }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - b_den: array![ + a_den: array![ u384 { - limb0: 0x81b77d1dc0ba640a7d967761, - limb1: 0x9d2e227dc7b1efa86a9a616f, - limb2: 0x6e030356e8948a35, - limb3: 0x0 + limb0: 0xe1dd890ca42bb6787953ac8e, + limb1: 0xd1043346a7687fcd1c173684, + limb2: 0x25ac41ef53a8b264, + limb3: 0x0, }, u384 { - limb0: 0x803f18f8b96aec9f16113df6, - limb1: 0x5469b59da62167c2974b6334, - limb2: 0x899eadbc8e08053, - limb3: 0x0 + limb0: 0x1a927f53bc1929ea47a340ce, + limb1: 0x1d066482260ad25a944af22a, + limb2: 0x5099f019034be8fe, + limb3: 0x0, }, - u384 { limb0: 0x7, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { - limb0: 0x1287ed4d64ace9b7a43a0e54, - limb1: 0xa8bd72a441196b6133cce959, - limb2: 0xc692b7558ef0a607, - limb3: 0x0 + limb0: 0xdd8253ada22de2f45fdf5202, + limb1: 0x5441006694aef1a85b444399, + limb2: 0x235d0862dfa6cdf4, + limb3: 0x0, }, u384 { - limb0: 0x800903913f0f465f70dde2a5, - limb1: 0xe77cd0cd60e03364f10ac507, - limb2: 0x6ef16ab1aefb800b, - limb3: 0x0 + limb0: 0xbf55f655e635b433fffa06df, + limb1: 0x9529a92891026d5feaca56b6, + limb2: 0x66f328ef9578380b, + limb3: 0x0, }, u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x4bb28979b0b79c1777f1fc30, - limb1: 0xb5224e011b2f31ce93f717ab, - limb2: 0x43c2e0f9ce3d46a9, - limb3: 0x0 - }, - u384 { - limb0: 0x18d0afe0edb98065b4e3232d, - limb1: 0xffffffffffffffffee22305e, - limb2: 0xffffffffffffffff, - limb3: 0x0 - }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - a_den: array![ + b_num: array![ u384 { - limb0: 0xcac2235c929f3b69ad67b0f5, - limb1: 0x79851b8757cf23514a81081c, - limb2: 0xcae3cc5dad5be629, - limb3: 0x0 + limb0: 0xff4a7e8b7f2cfcdbcee5a4b1, + limb1: 0xe12c1714e746fb90fbaacda2, + limb2: 0x74e32598c1f69b37, + limb3: 0x0, }, u384 { - limb0: 0x27913096b5d7c1cf127f235, - limb1: 0x858b5b0d0855d81627456674, - limb2: 0x888761b5f990cdb2, - limb3: 0x0 + limb0: 0xec4097839b45ff546026a0c2, + limb1: 0xae7581a88eae4a5053b8f9dc, + limb2: 0x39c19c5066a7bb2b, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0x41944f6c68d802cae76fecb5, - limb1: 0xb68878783c315c2955f84db0, - limb2: 0x9e6ecc5374b776d3, - limb3: 0x0 + limb0: 0xe66b928f5f906da6b564a19, + limb1: 0xe6eb535ca7ed037f82d2c152, + limb2: 0x71e49573bad6c71d, + limb3: 0x0, }, u384 { - limb0: 0x6303520371c13385e632d785, - limb1: 0x166eb934b430a9de83ef040e, - limb2: 0x43c0f15a5445867b, - limb3: 0x0 + limb0: 0x3c366ce7ca838787367666b9, + limb1: 0xe4fe0f13556bcdf6e6ed8414, + limb2: 0x7242e8cce5ff3b6f, + limb3: 0x0, }, u384 { - limb0: 0x32f780ed8e7def611a1f885f, - limb1: 0x18358fe9b350098a2327a652, - limb2: 0xe46a2879949b53d7, - limb3: 0x0 + limb0: 0xc199caa040b67c0c31530366, + limb1: 0x862fb1b3977b470bdf71fa33, + limb2: 0x56f64010ec27341b, + limb3: 0x0, }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), b_den: array![ u384 { - limb0: 0x8b4ef788025a9fe8bdd5e9c8, - limb1: 0x52a3c0b366a9f739098738c9, - limb2: 0x8c3a968fbd834b22, - limb3: 0x0 - }, - u384 { - limb0: 0x114f8541ef8e64cd9817aae6, - limb1: 0xa6cf7d5b3a58e89b12e5cd2c, - limb2: 0xbbb3abf9d2f59fe1, - limb3: 0x0 - }, - u384 { limb0: 0x7, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { - limb0: 0xcac2235c929f3b69ad67b0f5, - limb1: 0x79851b8757cf23514a81081c, - limb2: 0xcae3cc5dad5be629, - limb3: 0x0 + limb0: 0x5c9b04b3b245e09a4194094c, + limb1: 0xdd37f3697ab22b9010a7a63, + limb2: 0x5128c8fdc31f7a9, + limb3: 0x0, }, u384 { - limb0: 0x27913096b5d7c1cf127f235, - limb1: 0x858b5b0d0855d81627456674, - limb2: 0x888761b5f990cdb2, - limb3: 0x0 + limb0: 0x823a7a3274ed4f8afd3da5ad, + limb1: 0x97bab3dd38c5e707cb7b2c8, + limb2: 0x5a9b9fb5a904e5b7, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ u384 { - limb0: 0xcd8a7b62cfcea038501befeb, - limb1: 0x4713597234ad41eaac4558da, - limb2: 0x80e4af25ec15667, - limb3: 0x0 + limb0: 0x136a754b8e6ef4fbbdb2c19c, + limb1: 0xccb7829961063c89b98962cb, + limb2: 0x72b6443d8587b85b, + limb3: 0x0, }, u384 { - limb0: 0xd784a91a5e09d24dfc4a247d, - limb1: 0xffffffffffffffff7c074593, - limb2: 0x7fffffffffffffff, - limb3: 0x0 - } - ] - .span(), - a_den: array![ - u384 { - limb0: 0x8340be3f51dbe72cd3a11c66, - limb1: 0x3f5e87376a3a6565abe95a96, - limb2: 0x726d640994dd9b14, - limb3: 0x0 + limb0: 0x4d61d2ba560cb6cdace82b43, + limb1: 0x4ec094a713c7dd9c57d2239e, + limb2: 0x6d86d878336d2975, + limb3: 0x0, }, u384 { - limb0: 0xc177f864034955b97a4f8d9f, - limb1: 0xe757f0bc9ce0020a5891c368, - limb2: 0xc3808ff732712bf, - limb3: 0x0 + limb0: 0x64419bccfa5228f31d1d0868, + limb1: 0x3d89f6514c52a71529d25b3e, + limb2: 0x6282237340916256, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0x62690bd5c84ce92d37608041, - limb1: 0xa00cf01b83ee2270a792302, - limb2: 0x7e56f00b06c537aa, - limb3: 0x0 + limb0: 0xea277ea54e9fc483589b6942, + limb1: 0x85d8e173f62a2f7ec6fcf9f6, + limb2: 0xabb53685608cda, + limb3: 0x0, }, u384 { - limb0: 0x3af32c63776a038f2db2cba0, - limb1: 0xc9c24f93b2218a2c2843c50d, - limb2: 0xa4ec9825cf07cda9, - limb3: 0x0 + limb0: 0xbf55f655e635b433fffa06df, + limb1: 0x9529a92891026d5feaca56b6, + limb2: 0x66f328ef9578380b, + limb3: 0x0, }, - u384 { - limb0: 0x8ca46d17a4af2bfba87d85eb, - limb1: 0xaec1825b52f8612c11d67e30, - limb2: 0xe70921f36970a3c1, - limb3: 0x0 - } + u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), - b_den: array![ - u384 { - limb0: 0x96c533bb3d03523cc967d23d, - limb1: 0xbb95b283e798c5c7b3617a1d, - limb2: 0x20fdbc43120f3d8d, - limb3: 0x0 - }, - u384 { - limb0: 0x4a47cabc17015812582cdf59, - limb1: 0x536795284a200e486bfc57dd, - limb2: 0x55883efc2611833f, - limb3: 0x0 - }, - u384 { limb0: 0x7, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { - limb0: 0x8340be3f51dbe72cd3a11c66, - limb1: 0x3f5e87376a3a6565abe95a96, - limb2: 0x726d640994dd9b14, - limb3: 0x0 - }, - u384 { - limb0: 0xc177f864034955b97a4f8d9f, - limb1: 0xe757f0bc9ce0020a5891c368, - limb2: 0xc3808ff732712bf, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() }, }; let derive_point_from_x_hint = DerivePointFromXHint { y_last_attempt: u384 { - limb0: 0x5988327c732efe751b2c9aba, - limb1: 0x6b4110ddcbbb0e7c4826662f, - limb2: 0x243035d34ac20498, - limb3: 0x0 + limb0: 0x6fd4e3f593a17ba71159d847, + limb1: 0x1118616a869823a48ad75add, + limb2: 0x15473f9ff2346518, + limb3: 0x0, }, - g_rhs_sqrt: array![ - u384 { - limb0: 0x738294b7d794fa4fbd1ae3cc, - limb1: 0x9fc0ded6631c62d69739edaf, - limb2: 0x5b10679078ad2a2c, - limb3: 0x0 - } - ] - .span(), + g_rhs_sqrt: array![].span(), }; let points = array![ G1Point { x: u384 { - limb0: 0x393dead57bc85a6e9bb44a70, - limb1: 0x64d4b065b3ede27cf9fb9e5c, - limb2: 0xda670c8c69a8ce0a, - limb3: 0x0 + limb0: 0x7238f02b9f20e09c2181a557, + limb1: 0x2cedcc5b0be371c337fd7e9e, + limb2: 0x41f3bbeb280fe8a2, + limb3: 0x0, }, y: u384 { - limb0: 0x789872895ad7121175bd78f8, - limb1: 0xc0deb0b56fb251e8fb5d0a8d, - limb2: 0x3f10d670dc3297c2, - limb3: 0x0 - } + limb0: 0xf046f8cd6e5a75fca71dd19b, + limb1: 0x892b4613ef5c58df4ef692a4, + limb2: 0x7527fa36f5738847, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0xfdfdc509f368ba4395773d3a, - limb1: 0x8de2b60b577a13d0f83b578e, - limb2: 0xc2dd970269530ba2, - limb3: 0x0 + limb0: 0x82e4a33f8e4e5881e791d86b, + limb1: 0xbcb062435ae8ec5fdaeac4bf, + limb2: 0x179e1bae9e0f9f34, + limb3: 0x0, }, y: u384 { - limb0: 0x589fa250d638e35400c12ddf, - limb1: 0xb3aac19fcb5095808402aa7f, - limb2: 0xed6de6590d0195d1, - limb3: 0x0 - } + limb0: 0x19657783ba5660e255c21849, + limb1: 0x7ed7474bcea7551fc71e46bc, + limb2: 0x596c0a76b75f4756, + limb3: 0x0, + }, }, G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, ] .span(); let scalars = array![ u256 { low: 0x0, high: 0x0 }, u256 { - low: 0xe443df789558867f5ba91faf7a024204, high: 0x23a7711a8133287637ebdcd9e87a1613 + low: 0x12e0c8b2bad640fb19488dec4f65d4d9, high: 0xa90f9c3af19922ad9b8a714e61a441c, }, u256 { - low: 0x1846d424c17c627923c6612f48268673, high: 0xfcbd04c340212ef7cca5a5a19e4d6e3c + low: 0xeb2083e6ce164dba0ff18e0242af9fc3, high: 0x2fc154703983ca8ea7e9d498c778ea6, }, ] .span(); let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 2 + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 4, ); assert!( res == G1Point { x: u384 { - limb0: 0x55909ba28af82ea934a4b85d, - limb1: 0x4bf448ca5d57fb119c843e0a, - limb2: 0x6a2275491b991ee3, - limb3: 0x0 + limb0: 0xf7d884feff5aba51d9990dce, + limb1: 0x999f1d302046c6266257ff5, + limb2: 0x7f9caa5ee5815899, + limb3: 0x0, }, y: u384 { - limb0: 0x5bf4bf0cefc9553422e60eb0, - limb1: 0x178d55925d3d72f44783f626, - limb2: 0xe13a21d7302f8139, - limb3: 0x0 - } - } + limb0: 0x6d71279424538e87f8ecf2cc, + limb1: 0x8a8a1d74581da5996a52bbaf, + limb2: 0x29acff692eccea25, + limb3: 0x0, + }, + }, ); } #[test] - fn test_msm_ED25519_1P_edge_case() { - let scalars_digits_decompositions = Option::Some( - array![(array![0x0,].span(), array![0x0,].span()),].span() - ); + fn test_msm_GRUMPKIN_1P_edge_case() { + let scalars_digits_decompositions = Option::None; let msm_hint = MSMHint { Q_low: G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, Q_high: G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, Q_high_shifted: G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, - SumDlogDivLow: FunctionFelt { + RLCSumDlogDiv: FunctionFelt { a_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - b_den: array![ + a_den: array![ u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), b_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - a_den: array![ + b_den: array![ u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] - .span() + .span(), }, }; let derive_point_from_x_hint = DerivePointFromXHint { y_last_attempt: u384 { - limb0: 0x2b32584420d7ce3cd4a11930, - limb1: 0x7f0e9c3b3f207c90986c3546, - limb2: 0x2fb2291daeffdfce, - limb3: 0x0 + limb0: 0xd1047f7150ec5100a6e49ee9, + limb1: 0xc2e7d792c40dc5b460e86d57, + limb2: 0x7b3f189f2f960a5, + limb3: 0x0, }, - g_rhs_sqrt: array![].span(), + g_rhs_sqrt: array![ + u384 { + limb0: 0xac5aa8d6d49297a36aaf986f, + limb1: 0x7947b09c6620f2fdeb6c05b0, + limb2: 0x8f24f2607ad197e, + limb3: 0x0, + }, + u384 { + limb0: 0x7cca3f48d7a850ac077aa53a, + limb1: 0xfc0367c309acf4dcb9b6023c, + limb2: 0x1389ccb9283ad6bc, + limb3: 0x0, + }, + u384 { + limb0: 0x9be267945cadfa270fe33fea, + limb1: 0x53629b1877e276ef9c05b645, + limb2: 0x5f3a5c7c506992f, + limb3: 0x0, + }, + ] + .span(), }; let points = array![ G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, ] .span(); - let scalars = array![u256 { low: 0x0, high: 0x0 },].span(); + let scalars = array![u256 { low: 0x0, high: 0x0 }].span(); let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 4 + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 5, ); assert!( res == G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + }, ); } #[test] - fn test_msm_ED25519_2P_edge_case() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - -0x1, - -0x1, - ] - .span(), - array![ - 0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - -0x1, - ] - .span() - ), - ] - .span() - ); + fn test_msm_GRUMPKIN_2P_edge_case() { + let scalars_digits_decompositions = Option::None; let msm_hint = MSMHint { Q_low: G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, Q_high: G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, Q_high_shifted: G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, - SumDlogDivLow: FunctionFelt { + RLCSumDlogDiv: FunctionFelt { a_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - b_den: array![ + a_den: array![ u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - a_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + b_num: array![ + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), b_den: array![ @@ -97721,843 +18060,335 @@ mod msm_tests { u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - b_den: array![ - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() }, }; let derive_point_from_x_hint = DerivePointFromXHint { y_last_attempt: u384 { - limb0: 0x21b051e599886cc144eb97ce, - limb1: 0x26a4f46e7f4c9c9c99d8f2f8, - limb2: 0x2a61add1aea2f3a5, - limb3: 0x0 + limb0: 0x5799d0a4be76c4179913ad19, + limb1: 0x86201acbfee2c5bb1e120b24, + limb2: 0x167b9aeffb401b8c, + limb3: 0x0, }, - g_rhs_sqrt: array![].span(), + g_rhs_sqrt: array![ + u384 { + limb0: 0x746895ac8d85fdcc78a517dc, + limb1: 0x439607b706d6b787a329afcc, + limb2: 0x122c8ade7aa1ea89, + limb3: 0x0, + }, + ] + .span(), }; let points = array![ G1Point { x: u384 { - limb0: 0x7238f02b9f20e09c2181a557, - limb1: 0x2cedcc5b0be371c337fd7e9e, - limb2: 0x41f3bbeb280fe8a2, - limb3: 0x0 + limb0: 0x86b402ce02e7c7ca81f13d51, + limb1: 0x39493672733a9289a36020c1, + limb2: 0x7f40d91dc5413d3, + limb3: 0x0, }, y: u384 { - limb0: 0xf046f8cd6e5a75fca71dd19b, - limb1: 0x892b4613ef5c58df4ef692a4, - limb2: 0x7527fa36f5738847, - limb3: 0x0 - } + limb0: 0x371e7b6a5c01505bd4334e81, + limb1: 0x2f596ae4492a87c66f7bda1a, + limb2: 0x9dffb4dcdb94df9, + limb3: 0x0, + }, }, G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, ] .span(); let scalars = array![ u256 { low: 0x0, high: 0x0 }, u256 { - low: 0xb4862b21fb97d43588561712e8e5216a, high: 0x4b3e865e6f4590b9a164106cf6a659e + low: 0xb4862b21fb97d43588561712e8e5216a, high: 0x967d0cae6f4590b9a164106cf6a659e, }, ] .span(); let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 4 + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 5, ); assert!( res == G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + }, ); } #[test] - fn test_msm_ED25519_3P_edge_case() { - let scalars_digits_decompositions = Option::Some( - array![ - (array![0x0,].span(), array![0x0,].span()), - ( - array![ - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x0, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - ] - .span(), - array![ - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x1, - -0x1, - 0x0, - 0x1, - ] - .span() - ), - ( - array![ - -0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x0, - 0x0, - -0x1, - -0x1, - -0x1, - 0x1, - 0x0, - 0x0, - -0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x0, - 0x1, - 0x0, - 0x0, - -0x1, - 0x0, - -0x1, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - 0x0, - 0x1, - 0x1, - -0x1, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x0, - -0x1, - -0x1, - ] - .span(), - array![ - -0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - -0x1, - 0x1, - 0x1, - 0x0, - -0x1, - 0x0, - -0x1, - 0x0, - 0x0, - 0x0, - 0x0, - -0x1, - 0x1, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - 0x1, - 0x1, - -0x1, - 0x1, - -0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - 0x1, - -0x1, - -0x1, - 0x0, - 0x0, - 0x1, - 0x1, - 0x1, - -0x1, - 0x1, - 0x1, - 0x0, - 0x0, - 0x1, - -0x1, - -0x1, - 0x0, - 0x1, - 0x0, - -0x1, - 0x1, - -0x1, - -0x1, - -0x1, - -0x1, - ] - .span() - ), - ] - .span() - ); + fn test_msm_GRUMPKIN_3P_edge_case() { + let scalars_digits_decompositions = Option::None; let msm_hint = MSMHint { Q_low: G1Point { x: u384 { - limb0: 0x6889d75e36c152c1cc46f152, - limb1: 0xab6c91609cc41b1c6148652e, - limb2: 0x6d04cda48b959e7b, - limb3: 0x0 + limb0: 0x37c9a46b0612fc1b353fe24a, + limb1: 0xeb374db12bd7d7711f2705b4, + limb2: 0x253453fe507b50b6, + limb3: 0x0, }, y: u384 { - limb0: 0xd12689aa4a75942f20369ac5, - limb1: 0x5d6ae4c0a9977c4e19538008, - limb2: 0x101fd900dd268a39, - limb3: 0x0 - } + limb0: 0x33cd021aeba5ea18a2e20a56, + limb1: 0x3e392b55f320a528391fcef8, + limb2: 0x14fbdf9fd7fbfcdd, + limb3: 0x0, + }, }, Q_high: G1Point { x: u384 { - limb0: 0x4cf7cf1e83ac6ddeb4c0d88, - limb1: 0xdf032c7d359dec2b1b30b922, - limb2: 0x1b4e7ef7358304ab, - limb3: 0x0 + limb0: 0x60e6980f95d8e5261423f38e, + limb1: 0x3079cdd992636bb28a5984df, + limb2: 0x14368ee41c0e5576, + limb3: 0x0, }, y: u384 { - limb0: 0x90887d2f101702d94aa5377f, - limb1: 0x3fdfadebd967a872d02af758, - limb2: 0x2ea0b09931ec6dc4, - limb3: 0x0 - } + limb0: 0xa3597535ddd5b8336fde7418, + limb1: 0xc0329958cee690ca2b691fb, + limb2: 0x2a11389e1b5a9b57, + limb3: 0x0, + }, }, Q_high_shifted: G1Point { x: u384 { - limb0: 0x506c121a6c7fd9aa60e121a3, - limb1: 0x23b636b641b29ef8bdd1c639, - limb2: 0x791b6ec60b5f8598, - limb3: 0x0 + limb0: 0xc294148f233ee2e2eb301899, + limb1: 0xe1d7d7726b8c2ea638d0879e, + limb2: 0x1599a751984c9cbc, + limb3: 0x0, }, y: u384 { - limb0: 0x59f9c615c1fecf831ca3b5fc, - limb1: 0x2f6fb1f6358caa9cb6f8c9f7, - limb2: 0x6e62064b941a23df, - limb3: 0x0 - } + limb0: 0xfb70f5613f53701f0d60d44f, + limb1: 0x1bc69554d8e00e30700a9bad, + limb2: 0x1e3d7a04c2e60b68, + limb3: 0x0, + }, }, - SumDlogDivLow: FunctionFelt { + RLCSumDlogDiv: FunctionFelt { a_num: array![ u384 { - limb0: 0x90d2e8727e5fd1a5c5e58e14, - limb1: 0xa929a53579aa9e3e81f805cf, - limb2: 0x38b87adcae1fcece, - limb3: 0x0 + limb0: 0x8d1ac407b0b68a1dab34b0ea, + limb1: 0x28583648ea41a8369d9266ea, + limb2: 0x5bd7a61cafde77f, + limb3: 0x0, }, u384 { - limb0: 0xed700380fc6bb9738c6114eb, - limb1: 0xfffffffffffffffff21a53ed, - limb2: 0x7fffffffffffffff, - limb3: 0x0 + limb0: 0x2e2d64b34628cd5121e61d8b, + limb1: 0x3c9160edd20418993dc03a9c, + limb2: 0x14935bf5b97aaf31, + limb3: 0x0, }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - a_den: array![ u384 { - limb0: 0x9bf920910c9471cd86fa6936, - limb1: 0xaf3a5a2000fbb57b2915971d, - limb2: 0x2520dc914ad73ef1, - limb3: 0x0 + limb0: 0x6d828690264f9647a8a849f1, + limb1: 0xaa4db7f1d471f2660eea1a53, + limb2: 0xdf52f48a4714b89, + limb3: 0x0, }, u384 { - limb0: 0x149185623af054bc4c27361d, - limb1: 0x97e30c5c0852f883c3ccd612, - limb2: 0x7b5d16acd65ac24f, - limb3: 0x0 + limb0: 0x22b173b10b3e7c4fac032098, + limb1: 0x4f28a503f922c55da227f373, + limb2: 0x4654b1125198233, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ - u384 { - limb0: 0xff8777d8fa0d0d9e90803a6, - limb1: 0x3200ea1f027c0194c591be9a, - limb2: 0x7bf9cf6188a57b24, - limb3: 0x0 - }, - u384 { - limb0: 0x298347e8f997fe0e45013dda, - limb1: 0x18573b7ce42e6aa818d64105, - limb2: 0x247c8fcba4de35d2, - limb3: 0x0 - }, - u384 { - limb0: 0xd378ec11faf7730e2ff20bfb, - limb1: 0xb34729bedbbffe0680bb052c, - limb2: 0x29082e707a1931f5, - limb3: 0x0 - }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - b_den: array![ - u384 { - limb0: 0xc12680bbd361470deefc0ddb, - limb1: 0x260a8dd5e5c9670b883202d1, - limb2: 0xc6013fb41d22ac3, - limb3: 0x0 - }, + a_den: array![ u384 { - limb0: 0xf528de61fe449f365ba6277e, - limb1: 0xf6a6d966694aa0bb75ed1cb2, - limb2: 0x6823ce0d3d23cc34, - limb3: 0x0 + limb0: 0xb2266081a22d892a905aac07, + limb1: 0xe29e40ff84bf386a075c2912, + limb2: 0x2bdae940ecd05238, + limb3: 0x0, }, u384 { - limb0: 0xd9f30aacb5f76e970a2c52f3, - limb1: 0xe032ad62c9c9dff5c6d18e99, - limb2: 0x4a31a0ff430ab173, - limb3: 0x0 + limb0: 0xbc07a73baca9200621b30a, + limb1: 0x9feb152fd5380add8bfeb65d, + limb2: 0x27611e103ee6cd84, + limb3: 0x0, }, u384 { - limb0: 0xa89e4b88b906535c7fb68076, - limb1: 0xe0d23b2d6276f35194ce4d7a, - limb2: 0x26f8964f090fdd7, - limb3: 0x0 + limb0: 0xc58abb3148d1b699a1cd566b, + limb1: 0x427ed6a0de410a4bb7ae367a, + limb2: 0x1710b0370e12ff29, + limb3: 0x0, }, u384 { - limb0: 0x149185623af054bc4c27361d, - limb1: 0x97e30c5c0852f883c3ccd612, - limb2: 0x7b5d16acd65ac24f, - limb3: 0x0 + limb0: 0x77c7f1279f442e1fefa35cbe, + limb1: 0x39ad28fd9578c20b1b049f7b, + limb2: 0x80860ed167627c, + limb3: 0x0, }, u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHigh: FunctionFelt { - a_num: array![ - u384 { - limb0: 0x16f9ccb6b1a4ee0a7c8af534, - limb1: 0x16e1bd321d501968a5ba6c6e, - limb2: 0x32bb63a6dd7258ce, - limb3: 0x0 - }, - u384 { - limb0: 0x9d6582305ba4fa41292552df, - limb1: 0x69dd814, - limb2: 0x4000000000000000, - limb3: 0x0 - }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } ] .span(), - a_den: array![ + b_num: array![ u384 { - limb0: 0x6a276e6ef83fd83c3ec14fa0, - limb1: 0xb35e6c0db7ecc805c5801ddf, - limb2: 0x28b6574f0efd540d, - limb3: 0x0 + limb0: 0x36d43362167f95a6c7ab3efb, + limb1: 0xf1b335d8f724e2f00d074209, + limb2: 0x4210b05774c00d8, + limb3: 0x0, }, u384 { - limb0: 0x784bdfce8976e0a02d2219fa, - limb1: 0x644c713f6f79277509e4821e, - limb2: 0x4d13655a2c6d5c1f, - limb3: 0x0 + limb0: 0xfcfb832a114ffcbb88fd9872, + limb1: 0x14d78d0b3eb673c7a7bcc78a, + limb2: 0x272e013c16236c86, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0x87bddb06d00da5ddeedbe34e, - limb1: 0x641cd510e86c01094e54c4d7, - limb2: 0x5791fae9d6d59e29, - limb3: 0x0 + limb0: 0x3e4ab9a1f92275723f292c08, + limb1: 0x750afa16be5a64b2272b368, + limb2: 0x2bb352e1f4120313, + limb3: 0x0, }, u384 { - limb0: 0xebe59226513f05d9ac1dfdad, - limb1: 0x67b26d524d321d7297848669, - limb2: 0x5484da3645564e03, - limb3: 0x0 + limb0: 0xcabd610b2776514a16c4ca00, + limb1: 0xe2528b2f5dd72dcf9738f4f0, + limb2: 0x2ca5cb95ab68ee73, + limb3: 0x0, }, u384 { - limb0: 0x1ae3a2ac4a1808a78bf21862, - limb1: 0xcdf04e6a46d59cdd8fa6fe81, - limb2: 0x1a27e76d43576aa3, - limb3: 0x0 + limb0: 0x6ead72438d38a9b6bbb87e01, + limb1: 0x65951ccceba1f98566e26518, + limb2: 0x2a904cec00cee003, + limb3: 0x0, }, u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), b_den: array![ u384 { - limb0: 0x29518fdc2f6f4b7e3af6fc8d, - limb1: 0xb5d116a383ff28b270fc0e6f, - limb2: 0x22ab18d3b0dbde11, - limb3: 0x0 - }, - u384 { - limb0: 0xa93ec09a846f9568f9497ab2, - limb1: 0xc088c6dd025aa1bd2adec66c, - limb2: 0x337b5ade5aec450a, - limb3: 0x0 - }, - u384 { - limb0: 0x823f114d726ddc68aa7d465c, - limb1: 0x3abc1a8b9b7f7bde51a40a70, - limb2: 0x5409b6ac561a869e, - limb3: 0x0 - }, - u384 { - limb0: 0x76cc9966a4b1b9cb377d66e0, - limb1: 0xe4f64d1b196805dc3138d43c, - limb2: 0x6050422b4b712f3, - limb3: 0x0 + limb0: 0xc70aa07879193d6b69fa9399, + limb1: 0x78820a704762c6c8061fca49, + limb2: 0x1cbb69de59448cd4, + limb3: 0x0, }, u384 { - limb0: 0x784bdfce8976e0a02d2219fa, - limb1: 0x644c713f6f79277509e4821e, - limb2: 0x4d13655a2c6d5c1f, - limb3: 0x0 + limb0: 0x9ba7a5d6bfe432f6b7c31c64, + limb1: 0x75c767cdec5a1c61e6ec97c9, + limb2: 0x8094b3423631c79, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() - }, - SumDlogDivHighShifted: FunctionFelt { - a_num: array![ u384 { - limb0: 0xf875b534306df460ee0d985e, - limb1: 0x14bb5248b1bfeb4f33e44e64, - limb2: 0x1c0d4f3659c663ab, - limb3: 0x0 + limb0: 0x294e86d58d0481ffb15d42ee, + limb1: 0x106632bbcb3a6c3f37418c65, + limb2: 0x2b6b0e61fb7bafba, + limb3: 0x0, }, u384 { - limb0: 0xd784a91a5e09d24e7c4a265c, - limb1: 0xffffffffffffffff7c074593, - limb2: 0x3fffffffffffffff, - limb3: 0x0 - } - ] - .span(), - a_den: array![ - u384 { - limb0: 0xb2bd31cef772299e248100fb, - limb1: 0xe2e37ba99be92e642e4970b7, - limb2: 0x1d994c998fb6f912, - limb3: 0x0 + limb0: 0xbddf5ce00ea6790ba6818369, + limb1: 0xe1e882897ba55ad3c0d91df, + limb2: 0x2352024504f2c7f9, + limb3: 0x0, }, u384 { - limb0: 0xaac470f3ab455f77b3d2d0af, - limb1: 0xfd469ccc88af74dc26fd80a4, - limb2: 0x6b961242bf1d75bb, - limb3: 0x0 + limb0: 0xbc07a73baca9200621b2f9, + limb1: 0x9feb152fd5380add8bfeb65d, + limb2: 0x27611e103ee6cd84, + limb3: 0x0, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span(), - b_num: array![ u384 { - limb0: 0xc316db8f32ead8e5fa73e8c4, - limb1: 0xc7ac3cff14a66b146dbde807, - limb2: 0x7691cc9dfaeb0690, - limb3: 0x0 + limb0: 0xc58abb3148d1b699a1cd566b, + limb1: 0x427ed6a0de410a4bb7ae367a, + limb2: 0x1710b0370e12ff29, + limb3: 0x0, }, u384 { - limb0: 0x453c6d0f9cb833ca7695fc60, - limb1: 0xa9ddb9bec0dcec51b206c2d6, - limb2: 0x6c152397ed2af5f9, - limb3: 0x0 + limb0: 0x77c7f1279f442e1fefa35cbe, + limb1: 0x39ad28fd9578c20b1b049f7b, + limb2: 0x80860ed167627c, + limb3: 0x0, }, - u384 { - limb0: 0x96bfa7f73e741cfc4bab31d0, - limb1: 0x37ab0460cc1ba50393f29313, - limb2: 0x710785ba6f464b06, - limb3: 0x0 - } + u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), - b_den: array![ - u384 { - limb0: 0x23cc11574d322656c47cee39, - limb1: 0xb5d617759a31e0feaec9c138, - limb2: 0x48f9c4b67a8eae9c, - limb3: 0x0 - }, - u384 { - limb0: 0x2c9ad04dcf9080fb918e5e0, - limb1: 0x208d8792ec75709d38203ad1, - limb2: 0x647646be18ad1460, - limb3: 0x0 - }, - u384 { - limb0: 0xdb5bcdff18467c33beb22738, - limb1: 0x955ebf726cd5759ac3fe0c11, - limb2: 0x64c844f6ca0b7bc4, - limb3: 0x0 - }, - u384 { - limb0: 0xbf625cc6a3e40b2d1d3d1828, - limb1: 0x147b5cb6fd646c3a9a022714, - limb2: 0x7ae7f96d3570b7f9, - limb3: 0x0 - }, - u384 { - limb0: 0xaac470f3ab455f77b3d2d0af, - limb1: 0xfd469ccc88af74dc26fd80a4, - limb2: 0x6b961242bf1d75bb, - limb3: 0x0 - }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } - ] - .span() }, }; let derive_point_from_x_hint = DerivePointFromXHint { y_last_attempt: u384 { - limb0: 0x8dde75daee844ddb23d3eb28, - limb1: 0x61f5b12591c14254255bb040, - limb2: 0x3efc9a5fa9221231, - limb3: 0x0 + limb0: 0xb4d724fe09e4d0654dff3b97, + limb1: 0x5a5d54ab4d5e104be31a68a5, + limb2: 0x227e7025667ec33, + limb3: 0x0, }, - g_rhs_sqrt: array![ - u384 { - limb0: 0x38ac3353b681af9826a7847f, - limb1: 0x6bb03cf542cfa058b9510783, - limb2: 0x331271a539381b51, - limb3: 0x0 - }, - u384 { - limb0: 0x8f9f3a51824594097ff66ee1, - limb1: 0x411288e0b33c3e518ba2c8b3, - limb2: 0x2980af51bc30759d, - limb3: 0x0 - } - ] - .span(), + g_rhs_sqrt: array![].span(), }; let points = array![ G1Point { x: u384 { - limb0: 0x7238f02b9f20e09c2181a557, - limb1: 0x2cedcc5b0be371c337fd7e9e, - limb2: 0x41f3bbeb280fe8a2, - limb3: 0x0 + limb0: 0x86b402ce02e7c7ca81f13d51, + limb1: 0x39493672733a9289a36020c1, + limb2: 0x7f40d91dc5413d3, + limb3: 0x0, }, y: u384 { - limb0: 0xf046f8cd6e5a75fca71dd19b, - limb1: 0x892b4613ef5c58df4ef692a4, - limb2: 0x7527fa36f5738847, - limb3: 0x0 - } + limb0: 0x371e7b6a5c01505bd4334e81, + limb1: 0x2f596ae4492a87c66f7bda1a, + limb2: 0x9dffb4dcdb94df9, + limb3: 0x0, + }, }, G1Point { x: u384 { - limb0: 0x82e4a33f8e4e5881e791d86b, - limb1: 0xbcb062435ae8ec5fdaeac4bf, - limb2: 0x179e1bae9e0f9f34, - limb3: 0x0 + limb0: 0x20669ef12954f8e3bbc8b4d3, + limb1: 0x396a6f7243c27ce553121ee3, + limb2: 0x11438ca2ec259aed, + limb3: 0x0, }, y: u384 { - limb0: 0x19657783ba5660e255c21849, - limb1: 0x7ed7474bcea7551fc71e46bc, - limb2: 0x596c0a76b75f4756, - limb3: 0x0 - } + limb0: 0xa560a5759c90985fde99aca0, + limb1: 0xc5b21186cc6dcd0421026513, + limb2: 0x21fb1f47c6ac55b3, + limb3: 0x0, + }, }, G1Point { x: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + y: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, ] .span(); let scalars = array![ u256 { low: 0x0, high: 0x0 }, u256 { - low: 0x12e0c8b2bad640fb19488dec4f65d4d9, high: 0xa90f9c3af19922ad9b8a714e61a441c + low: 0x12e0c8b2bad640fb19488dec4f65d4d9, high: 0x1521f387af19922ad9b8a714e61a441c, }, u256 { - low: 0xeb2083e6ce164dba0ff18e0242af9fc3, high: 0x2fc154703983ca8ea7e9d498c778ea6 + low: 0x5a92118719c78df48f4ff31e78de5857, high: 0x28fcb26f9c6316b950f244556f25e2a2, }, ] .span(); let res = msm_g1( - scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 4 + scalars_digits_decompositions, msm_hint, derive_point_from_x_hint, points, scalars, 5, ); assert!( res == G1Point { x: u384 { - limb0: 0xf7d884feff5aba51d9990dce, - limb1: 0x999f1d302046c6266257ff5, - limb2: 0x7f9caa5ee5815899, - limb3: 0x0 + limb0: 0xf47b4ee8eecf8576c38173d8, + limb1: 0x755d90a26c30d7d6fb33afd3, + limb2: 0x5e835e05fdb55c5, + limb3: 0x0, }, y: u384 { - limb0: 0x6d71279424538e87f8ecf2cc, - limb1: 0x8a8a1d74581da5996a52bbaf, - limb2: 0x29acff692eccea25, - limb3: 0x0 - } - } + limb0: 0x990d5f4767a8d057f8695e4e, + limb1: 0x5f8dd4e272c268c0d2ce4a39, + limb2: 0x1704905427d31a82, + limb3: 0x0, + }, + }, ); } } diff --git a/src/src/tests/pairing_tests.cairo b/src/src/tests/pairing_tests.cairo index e80c0e32..63c5f9ad 100644 --- a/src/src/tests/pairing_tests.cairo +++ b/src/src/tests/pairing_tests.cairo @@ -18,41 +18,41 @@ mod pairing_tests { limb0: 0xcdb6d03cb7b9a5409b7efcd8, limb1: 0xd1df87eab84852372b905c9c, limb2: 0x1d0634f3f21e7890, - limb3: 0x0 + limb3: 0x0, }, y: u384 { limb0: 0xaa1d4f4d3021032564460978, limb1: 0xeb3f1d6ba3b10e2b53dc193b, limb2: 0x24c53532773dce26, - limb3: 0x0 - } + limb3: 0x0, + }, }, q: G2Point { x0: u384 { limb0: 0xf75edadd46debd5cd992f6ed, limb1: 0x426a00665e5c4479674322d4, limb2: 0x1800deef121f1e76, - limb3: 0x0 + limb3: 0x0, }, x1: u384 { limb0: 0x35a9e71297e485b7aef312c2, limb1: 0x7260bfb731fb5d25f1aa4933, limb2: 0x198e9393920d483a, - limb3: 0x0 + limb3: 0x0, }, y0: u384 { limb0: 0xc43d37b4ce6cc0166fa7daa, limb1: 0x4aab71808dcb408fe3d1e769, limb2: 0x12c85ea5db8c6deb, - limb3: 0x0 + limb3: 0x0, }, y1: u384 { limb0: 0x70b38ef355acdadcd122975b, limb1: 0xec9e99ad690c3395bc4b3133, limb2: 0x90689d0585ff075, - limb3: 0x0 - } - } + limb3: 0x0, + }, + }, }; let pair1: G1G2Pair = G1G2Pair { p: G1Point { @@ -60,3914 +60,3914 @@ mod pairing_tests { limb0: 0x536c985db33c69f7c242e07a, limb1: 0xfc531bccffafcf1e59d91fb9, limb2: 0x2585e4f8a31664cb, - limb3: 0x0 + limb3: 0x0, }, y: u384 { limb0: 0x57fa42444057cf0c1d62ae3c, limb1: 0x4f48d341183118d68ea41313, limb2: 0x1d2d2799db056ed1, - limb3: 0x0 - } + limb3: 0x0, + }, }, q: G2Point { x0: u384 { limb0: 0x335eb0538f718d8e6651eeb1, limb1: 0x635e573808d9d5c7178bdce7, limb2: 0x1314aaf1c372e6d7, - limb3: 0x0 + limb3: 0x0, }, x1: u384 { limb0: 0x5289f29ccc5acf5e81526673, limb1: 0x2d4aba9e1448a8cc1048d01a, limb2: 0x14c25d3aec745e5a, - limb3: 0x0 + limb3: 0x0, }, y0: u384 { limb0: 0x10d1d0efd5869ecd23aab8e9, limb1: 0xba7d1de6d86501d49b6a8dab, limb2: 0x397391b7b25e2f, - limb3: 0x0 + limb3: 0x0, }, y1: u384 { limb0: 0x385a553ea12434f4eda6db36, limb1: 0xb058c1ff7e4c5c7ec7e5859b, limb2: 0x1863ac65eca09e89, - limb3: 0x0 - } - } + limb3: 0x0, + }, + }, }; let lines = array![ G2Line { r0a0: u288 { limb0: 0x4d347301094edcbfa224d3d5, limb1: 0x98005e68cacde68a193b54e6, - limb2: 0x237db2935c4432bc + limb2: 0x237db2935c4432bc, }, r0a1: u288 { limb0: 0x6b4ba735fba44e801d415637, limb1: 0x707c3ec1809ae9bafafa05dd, - limb2: 0x124077e14a7d826a + limb2: 0x124077e14a7d826a, }, r1a0: u288 { limb0: 0x49a8dc1dd6e067932b6a7e0d, limb1: 0x7676d0000961488f8fbce033, - limb2: 0x3b7178c857630da + limb2: 0x3b7178c857630da, }, r1a1: u288 { limb0: 0x98c81278efe1e96b86397652, limb1: 0xe3520b9dfa601ead6f0bf9cd, - limb2: 0x2b17c2b12c26fdd0 - } + limb2: 0x2b17c2b12c26fdd0, + }, }, G2Line { r0a0: u288 { limb0: 0x7e165b3014d84802bf01484e, limb1: 0x3260b32ceced0b1243d4c84e, - limb2: 0x2d4b148197812cd9 + limb2: 0x2d4b148197812cd9, }, r0a1: u288 { limb0: 0xed50630084c5fc98c14adf76, limb1: 0x8b3e4e11609f5b1ec2a4a3fd, - limb2: 0x9449ebaa6581db4 + limb2: 0x9449ebaa6581db4, }, r1a0: u288 { limb0: 0x6dbbec1fa71f727fad9c2035, limb1: 0x2d74c51612b1473f7a789efb, - limb2: 0x219b1595f2e94586 + limb2: 0x219b1595f2e94586, }, r1a1: u288 { limb0: 0x18b802809d63c96cb122eb63, limb1: 0x971ad93ce0fb9233480bfe98, - limb2: 0x1cf3a36431cdb52c - } + limb2: 0x1cf3a36431cdb52c, + }, }, G2Line { r0a0: u288 { limb0: 0x1b3d578c32d1af5736582972, limb1: 0x204fe74db6b371d37e4615ab, - limb2: 0xce69bdf84ed6d6d + limb2: 0xce69bdf84ed6d6d, }, r0a1: u288 { limb0: 0xfd262357407c3d96bb3ba710, limb1: 0x47d406f500e66ea29c8764b3, - limb2: 0x1e23d69196b41dbf + limb2: 0x1e23d69196b41dbf, }, r1a0: u288 { limb0: 0x1ec8ee6f65402483ad127f3a, limb1: 0x41d975b678200fce07c48a5e, - limb2: 0x2cad36e65bbb6f4f + limb2: 0x2cad36e65bbb6f4f, }, r1a1: u288 { limb0: 0xcfa9b8144c3ea2ab524386f5, limb1: 0xd4fe3a18872139b0287570c3, - limb2: 0x54c8bc1b50aa258 - } + limb2: 0x54c8bc1b50aa258, + }, }, G2Line { r0a0: u288 { limb0: 0xb5ee22ba52a7ed0c533b7173, limb1: 0xbfa13123614ecf9c4853249b, - limb2: 0x6567a7f6972b7bb + limb2: 0x6567a7f6972b7bb, }, r0a1: u288 { limb0: 0xcf422f26ac76a450359f819e, limb1: 0xc42d7517ae6f59453eaf32c7, - limb2: 0x899cb1e339f7582 + limb2: 0x899cb1e339f7582, }, r1a0: u288 { limb0: 0x9f287f4842d688d7afd9cd67, limb1: 0x30af75417670de33dfa95eda, - limb2: 0x1121d4ca1c2cab36 + limb2: 0x1121d4ca1c2cab36, }, r1a1: u288 { limb0: 0x7c4c55c27110f2c9a228f7d8, limb1: 0x8f14f6c3a2e2c9d74b347bfe, - limb2: 0x83ef274ba7913a5 - } + limb2: 0x83ef274ba7913a5, + }, }, G2Line { r0a0: u288 { limb0: 0xea5b6f5d27484414197bb4f9, limb1: 0x85ef928994944d4b53aca242, - limb2: 0x31939f149b07350 + limb2: 0x31939f149b07350, }, r0a1: u288 { limb0: 0x7b21678cb75a8f7e17321dd1, limb1: 0x2d11f7a520e1fd3ed4dcc693, - limb2: 0x271fafb83ad98275 + limb2: 0x271fafb83ad98275, }, r1a0: u288 { limb0: 0xfab5de6d950119972ae0dd12, limb1: 0x8adb80a06ed0111e1d08cb95, - limb2: 0xec938dcee485aa3 + limb2: 0xec938dcee485aa3, }, r1a1: u288 { limb0: 0x4fb9c80c9ebcc2aa275a11e4, limb1: 0x21356c79a085c62a4f756bf9, - limb2: 0x1370ab0eaf63eafd - } + limb2: 0x1370ab0eaf63eafd, + }, }, G2Line { r0a0: u288 { limb0: 0xc0f94eb338d27e3d9c3c54bf, limb1: 0xcbc81234f5e7a25b356780b1, - limb2: 0x2d7855cb075109f7 + limb2: 0x2d7855cb075109f7, }, r0a1: u288 { limb0: 0x284c304021c8efe832d4019, limb1: 0xcf072fe1e6a5712c6939b2e5, - limb2: 0x2aebdfbcb148dbd2 + limb2: 0x2aebdfbcb148dbd2, }, r1a0: u288 { limb0: 0xd7b47c349d5fa8cbc0c0bdc4, limb1: 0x262a79a0c9001db94d4629e6, - limb2: 0x229b6a2be2e077d7 + limb2: 0x229b6a2be2e077d7, }, r1a1: u288 { limb0: 0x5ac06a263b3dad67c61b9b1a, limb1: 0x218d4cdc4cddee7306803f0c, - limb2: 0x2c404c393f42c23c - } + limb2: 0x2c404c393f42c23c, + }, }, G2Line { r0a0: u288 { limb0: 0xfc23a674d089e9cfdefb1db8, limb1: 0x9ddfd61d289b65a9b4254476, - limb2: 0x1e2f561324ef4447 + limb2: 0x1e2f561324ef4447, }, r0a1: u288 { limb0: 0xf67a6a9e31f6975b220642ea, limb1: 0xccd852893796296e4d1ed330, - limb2: 0x94ff1987d19b62 + limb2: 0x94ff1987d19b62, }, r1a0: u288 { limb0: 0x360c2a5aca59996d24cc1947, limb1: 0x66c2d7d0d176a3bc53f386e8, - limb2: 0x2cfcc62a17fbeecb + limb2: 0x2cfcc62a17fbeecb, }, r1a1: u288 { limb0: 0x2ddc73389dd9a9e34168d8a9, limb1: 0xae9afc57944748b835cbda0f, - limb2: 0x12f0a1f8cf564067 - } + limb2: 0x12f0a1f8cf564067, + }, }, G2Line { r0a0: u288 { limb0: 0x9e2613c20164688ed46379a, limb1: 0x716db3679a44c686aa59d1ab, - limb2: 0x15001844790ca939 + limb2: 0x15001844790ca939, }, r0a1: u288 { limb0: 0x6fbc98bc7a182aa3dd0cb359, limb1: 0xc97408d0c1cf3952033b11b0, - limb2: 0x1ab481f0cb16916b + limb2: 0x1ab481f0cb16916b, }, r1a0: u288 { limb0: 0x7f38f154b08df182e2924e74, limb1: 0xba31b530302528255113573a, - limb2: 0x933362e822d9bbb + limb2: 0x933362e822d9bbb, }, r1a1: u288 { limb0: 0xfe131760a10954277d407df3, limb1: 0x7fa6f47454535d07b1c8ffad, - limb2: 0x966415d59cef8df - } + limb2: 0x966415d59cef8df, + }, }, G2Line { r0a0: u288 { limb0: 0x9c963c4bdade6ce3d460b077, limb1: 0x1738311feefc76f565e34e8a, - limb2: 0x1aae0d6c9e9888ad + limb2: 0x1aae0d6c9e9888ad, }, r0a1: u288 { limb0: 0x9272581fdf80b045c9c3f0a, limb1: 0x3946807b0756e87666798edb, - limb2: 0x2bf6eeda2d8be192 + limb2: 0x2bf6eeda2d8be192, }, r1a0: u288 { limb0: 0x3e957661b35995552fb475de, limb1: 0xd8076fa48f93f09d8128a2a8, - limb2: 0xb6f87c3f00a6fcf + limb2: 0xb6f87c3f00a6fcf, }, r1a1: u288 { limb0: 0xcf17d6cd2101301246a8f264, limb1: 0x514d04ad989b91e697aa5a0e, - limb2: 0x175f17bbd0ad1219 - } + limb2: 0x175f17bbd0ad1219, + }, }, G2Line { r0a0: u288 { limb0: 0x894bc18cc70ca1987e3b8f9f, limb1: 0xd4bfa535181f0f8659b063e3, - limb2: 0x19168d524164f463 + limb2: 0x19168d524164f463, }, r0a1: u288 { limb0: 0x850ee8d0e9b58b82719a6e92, limb1: 0x9fc4eb75cbb027c137d48341, - limb2: 0x2b2f8a383d944fa0 + limb2: 0x2b2f8a383d944fa0, }, r1a0: u288 { limb0: 0x5451c8974a709483c2b07fbd, limb1: 0xd7e09837b8a2a3b78e7fe525, - limb2: 0x347d96be5e7fa31 + limb2: 0x347d96be5e7fa31, }, r1a1: u288 { limb0: 0x823f2ba2743ee254e4c18a1e, limb1: 0x6a61af5db035c443ed0f8172, - limb2: 0x1e840eee275d1063 - } + limb2: 0x1e840eee275d1063, + }, }, G2Line { r0a0: u288 { limb0: 0x97890ec993740b1ca0337563, limb1: 0x4fa454f0d8b7b9f3e996a148, - limb2: 0x2687d9105ae36d86 + limb2: 0x2687d9105ae36d86, }, r0a1: u288 { limb0: 0x94553c479c2341dd9d19c228, limb1: 0xf3893568e1c69e8691e6d21d, - limb2: 0x176dd970f5c96141 + limb2: 0x176dd970f5c96141, }, r1a0: u288 { limb0: 0x10b35743d178c928ae8988f3, limb1: 0x4e09ad83d2ef00527273723e, - limb2: 0x2357f050a2e191c4 + limb2: 0x2357f050a2e191c4, }, r1a1: u288 { limb0: 0x4c47ba83a5200a671c9a6e66, limb1: 0x9ed7cd2e0db8b052d78aeccf, - limb2: 0x2b778d052020e24f - } + limb2: 0x2b778d052020e24f, + }, }, G2Line { r0a0: u288 { limb0: 0x38f9cedd0c82018426759a6e, limb1: 0x44c9564dd70a19718df031b9, - limb2: 0x2c123a573f011ecf + limb2: 0x2c123a573f011ecf, }, r0a1: u288 { limb0: 0xdc5f6dd6fabcfd365452fd48, limb1: 0x3be2013bcd845c73bef09c2a, - limb2: 0x20a73a0d44be878 + limb2: 0x20a73a0d44be878, }, r1a0: u288 { limb0: 0x9d6fc1cc6d53b9b473418843, limb1: 0x179167ea194fa9a3fb5546bf, - limb2: 0x122aeeaaf6e42f52 + limb2: 0x122aeeaaf6e42f52, }, r1a1: u288 { limb0: 0x3b7e8d815b2f3ad687c6b33b, limb1: 0xbfacefc007f6e8b61a5b0930, - limb2: 0x14d40bc6eff71288 - } + limb2: 0x14d40bc6eff71288, + }, }, G2Line { r0a0: u288 { limb0: 0x18d630598e58bb5d0102b30e, limb1: 0x9767e27b02a8da37411a2787, - limb2: 0x100a541662b9cd7c + limb2: 0x100a541662b9cd7c, }, r0a1: u288 { limb0: 0x4ca7313df2e168e7e5ea70, limb1: 0xd49cce6abd50b574f31c2d72, - limb2: 0x78a2afbf72317e7 + limb2: 0x78a2afbf72317e7, }, r1a0: u288 { limb0: 0x6d99388b0a1a67d6b48d87e0, limb1: 0x1d8711d321a193be3333bc68, - limb2: 0x27e76de53a010ce1 + limb2: 0x27e76de53a010ce1, }, r1a1: u288 { limb0: 0x77341bf4e1605e982fa50abd, limb1: 0xc5cf10db170b4feaaf5f8f1b, - limb2: 0x762adef02274807 - } + limb2: 0x762adef02274807, + }, }, G2Line { r0a0: u288 { limb0: 0x3896b4539101a9d082d01df0, limb1: 0x1bdd4fa3c048c10eb04232b4, - limb2: 0x2bbc70702a7f5b2d + limb2: 0x2bbc70702a7f5b2d, }, r0a1: u288 { limb0: 0x617716ce0b0fc90781832057, limb1: 0x800927818218483eb3cf9245, - limb2: 0x211e4fc4a1ae2c66 + limb2: 0x211e4fc4a1ae2c66, }, r1a0: u288 { limb0: 0xe7b44e14a444b645b8c0b11f, limb1: 0x2b07f556a654bd49cd865885, - limb2: 0x1866e4634404cecf + limb2: 0x1866e4634404cecf, }, r1a1: u288 { limb0: 0x48a0768996bd4017ff614ce, limb1: 0x4f0066744ba90bd46ee6e88e, - limb2: 0x1de00ce581b3556f - } + limb2: 0x1de00ce581b3556f, + }, }, G2Line { r0a0: u288 { limb0: 0xa137b991ba9048aee9fa0bc7, limb1: 0xf5433785c186cd1100ab6b80, - limb2: 0xab519fd7cf8e7f9 + limb2: 0xab519fd7cf8e7f9, }, r0a1: u288 { limb0: 0x90832f45d3398c60aa1a74e2, limb1: 0x17f7ac209532723f22a344b, - limb2: 0x23db979f8481c5f + limb2: 0x23db979f8481c5f, }, r1a0: u288 { limb0: 0x723b0e23c2808a5d1ea6b11d, limb1: 0x3030030d26411f84235c3af5, - limb2: 0x122e78da5509eddb + limb2: 0x122e78da5509eddb, }, r1a1: u288 { limb0: 0xf1718c1e21a9bc3ec822f319, limb1: 0xf5ee6dfa3bd3272b2f09f0c7, - limb2: 0x5a29c1e27616b34 - } + limb2: 0x5a29c1e27616b34, + }, }, G2Line { r0a0: u288 { limb0: 0x7369b6adc59d1ad1956aa29c, limb1: 0x5a1a92f3dda868e7423f70bd, - limb2: 0x13da850286346586 + limb2: 0x13da850286346586, }, r0a1: u288 { limb0: 0x5eedbb4b5f1b8c52d4ff5734, limb1: 0x9988f4f6e06343ab4f5831ad, - limb2: 0xfbbd4d49b51a489 + limb2: 0xfbbd4d49b51a489, }, r1a0: u288 { limb0: 0x9cd983785651ba1c2c06bf74, limb1: 0x21f088328b5920e22e7a73f6, - limb2: 0x1e16dd13e77f83f4 + limb2: 0x1e16dd13e77f83f4, }, r1a1: u288 { limb0: 0x44bdd6e622016e7b7287c24f, limb1: 0xb454bfef81527e305bd509e6, - limb2: 0x25b37c864eb9335d - } + limb2: 0x25b37c864eb9335d, + }, }, G2Line { r0a0: u288 { limb0: 0xbc1ede480873fceb8739511e, limb1: 0xd5a60533bd0ce7869efbc15, - limb2: 0x182c17d793eba74d + limb2: 0x182c17d793eba74d, }, r0a1: u288 { limb0: 0x83bf38d91876ad8999516bc2, limb1: 0x7756322ea3dc079289d51f2d, - limb2: 0x1d0f6156a89a4244 + limb2: 0x1d0f6156a89a4244, }, r1a0: u288 { limb0: 0x6aba652f197be8f99707b88c, limb1: 0xbf94286c245794ea0f562f32, - limb2: 0x25a358967a2ca81d + limb2: 0x25a358967a2ca81d, }, r1a1: u288 { limb0: 0xc028cbff48c01433e8b23568, limb1: 0xd2e791f5772ed43b056beba1, - limb2: 0x83eb38dff4960e - } + limb2: 0x83eb38dff4960e, + }, }, G2Line { r0a0: u288 { limb0: 0xea4e2dfe89a1e44be7ce1e1c, limb1: 0x5a92c01d769c449c202b3214, - limb2: 0xff9af539be5c8c9 + limb2: 0xff9af539be5c8c9, }, r0a1: u288 { limb0: 0x787ac32ae432e43bed70fb07, limb1: 0x4a33b653a031d4b9f2785ff3, - limb2: 0x26614c3211203a55 + limb2: 0x26614c3211203a55, }, r1a0: u288 { limb0: 0xb191249d1a1f0c8c86ebe4ea, limb1: 0xad273f446b939f4f1f361ebf, - limb2: 0xedc66a88aa083a1 + limb2: 0xedc66a88aa083a1, }, r1a1: u288 { limb0: 0xdca5c397dab1714ac36c1bc8, limb1: 0x924f9820543a3519c11d3f74, - limb2: 0x1ad8a781081d4a96 - } + limb2: 0x1ad8a781081d4a96, + }, }, G2Line { r0a0: u288 { limb0: 0xc2a2b787d8e718e81970db80, limb1: 0x5372abeaf56844dee60d6198, - limb2: 0x131210153a2217d6 + limb2: 0x131210153a2217d6, }, r0a1: u288 { limb0: 0x70421980313e09a8a0e5a82d, limb1: 0xf75ca1f68f4b8deafb1d3b48, - limb2: 0x102113c9b6feb035 + limb2: 0x102113c9b6feb035, }, r1a0: u288 { limb0: 0x4654c11d73bda84873de9b86, limb1: 0xa67601bca2e595339833191a, - limb2: 0x1c2b76e439adc8cc + limb2: 0x1c2b76e439adc8cc, }, r1a1: u288 { limb0: 0x9c53a48cc66c1f4d644105f2, limb1: 0xa17a18867557d96fb7c2f849, - limb2: 0x1deb99799bd8b63a - } + limb2: 0x1deb99799bd8b63a, + }, }, G2Line { r0a0: u288 { limb0: 0xc32026c56341297fa080790c, limb1: 0xe23ad2ff283399133533b31f, - limb2: 0xa6860f5c968f7ad + limb2: 0xa6860f5c968f7ad, }, r0a1: u288 { limb0: 0x2966cf259dc612c6a4d8957d, limb1: 0xfba87ea86054f3db5774a08f, - limb2: 0xc73408b6a646780 + limb2: 0xc73408b6a646780, }, r1a0: u288 { limb0: 0x6272ce5976d8eeba08f66b48, limb1: 0x7dfbd78fa06509604c0cec8d, - limb2: 0x181ec0eaa6660e45 + limb2: 0x181ec0eaa6660e45, }, r1a1: u288 { limb0: 0x48af37c1a2343555fbf8a357, limb1: 0xa7b5e1e20e64d6a9a9ce8e61, - limb2: 0x1147dcea39a47abd - } + limb2: 0x1147dcea39a47abd, + }, }, G2Line { r0a0: u288 { limb0: 0x9fd5ab512989c347dc77f420, limb1: 0xc1c85ee38ca3eb02a0a92db3, - limb2: 0x2134aa9ca8e8d251 + limb2: 0x2134aa9ca8e8d251, }, r0a1: u288 { limb0: 0xe4f274770138210ec97f351c, limb1: 0x95d8dbdcefe97681885f8ca3, - limb2: 0x25c205641353bd02 + limb2: 0x25c205641353bd02, }, r1a0: u288 { limb0: 0x67e5fc30cb9d54c952e30530, limb1: 0xbed1776ffd1f34cef4d280ba, - limb2: 0x9bfcdc38d2edfbc + limb2: 0x9bfcdc38d2edfbc, }, r1a1: u288 { limb0: 0x2cdc4960c64fd9f1e1d8c062, limb1: 0x25ab4699c0326eb69704502c, - limb2: 0x1a1bfdd2477bfb3 - } + limb2: 0x1a1bfdd2477bfb3, + }, }, G2Line { r0a0: u288 { limb0: 0xc01f15fdcbfada9ddb6d29e5, limb1: 0x1c597a278f91d2146e39417b, - limb2: 0x1e738c819e505603 + limb2: 0x1e738c819e505603, }, r0a1: u288 { limb0: 0xc448617c638a5f5a3d7bb80b, limb1: 0xe5c0daa3ccc9d0066e8748e6, - limb2: 0x1531822272e52502 + limb2: 0x1531822272e52502, }, r1a0: u288 { limb0: 0xe6dcbe5738e474a779a48437, limb1: 0x778679b9709f1160945eb1f4, - limb2: 0x1c4c788451e4cdd3 + limb2: 0x1c4c788451e4cdd3, }, r1a1: u288 { limb0: 0x9bb0e3bca45c662cc5a01154, limb1: 0xdcc6384e4ed67039e4f3a54d, - limb2: 0x1e8aea6fd2e608bf - } + limb2: 0x1e8aea6fd2e608bf, + }, }, G2Line { r0a0: u288 { limb0: 0x4033c51e6e469818521cd2ae, limb1: 0xb71a4629a4696b2759f8e19e, - limb2: 0x4f5744e29c1eb30 + limb2: 0x4f5744e29c1eb30, }, r0a1: u288 { limb0: 0xa4f47bbc60cb0649dca1c772, limb1: 0x835f427106f4a6b897c6cf23, - limb2: 0x17ca6ea4855756bb + limb2: 0x17ca6ea4855756bb, }, r1a0: u288 { limb0: 0x7f844a35c7eeadf511e67e57, limb1: 0x8bb54fb0b3688cac8860f10, - limb2: 0x1c7258499a6bbebf + limb2: 0x1c7258499a6bbebf, }, r1a1: u288 { limb0: 0x10d269c1779f96946e518246, limb1: 0xce6fcef6676d0dacd395dc1a, - limb2: 0x2cf4c6ae1b55d87d - } + limb2: 0x2cf4c6ae1b55d87d, + }, }, G2Line { r0a0: u288 { limb0: 0xc55a9ab2be5b1c5f99b4afdf, limb1: 0x443b75328adfb9d1d45195be, - limb2: 0x568d5a8780d1576 + limb2: 0x568d5a8780d1576, }, r0a1: u288 { limb0: 0x85b522186579e779a3606ede, limb1: 0x1ebb4d198b300f1f7309a38f, - limb2: 0x9f9cb82898a523d + limb2: 0x9f9cb82898a523d, }, r1a0: u288 { limb0: 0x731bed2ccf3a6cbf023ed5b, limb1: 0xcf340b50f74cdea1da20612a, - limb2: 0x21d63865d400949d + limb2: 0x21d63865d400949d, }, r1a1: u288 { limb0: 0x552864462eb5b6c21cb44edb, limb1: 0x79eaf9afc4175e8707d58a17, - limb2: 0x2f0de7da33934176 - } + limb2: 0x2f0de7da33934176, + }, }, G2Line { r0a0: u288 { limb0: 0xab74a6bae36b17b1d2cc1081, limb1: 0x904cf03d9d30b1fe9dc71374, - limb2: 0x14ffdd55685b7d82 + limb2: 0x14ffdd55685b7d82, }, r0a1: u288 { limb0: 0x277f7180b7cf33feded1583c, limb1: 0xc029c3968a75b612303c4298, - limb2: 0x20ef4ba03605cdc6 + limb2: 0x20ef4ba03605cdc6, }, r1a0: u288 { limb0: 0xd5a7a27c1baba3791ab18957, limb1: 0x973730213d5d70d3e62d6db, - limb2: 0x24ca121c566eb857 + limb2: 0x24ca121c566eb857, }, r1a1: u288 { limb0: 0x9f4c2dea0492f548ae7d9e93, limb1: 0xe584b6b251a5227c70c5188, - limb2: 0x22bcecac2bd5e51b - } + limb2: 0x22bcecac2bd5e51b, + }, }, G2Line { r0a0: u288 { limb0: 0x340c82974f7221a53fc2f3ac, limb1: 0x7146f18cd591d423874996e7, - limb2: 0xa6d154791056f46 + limb2: 0xa6d154791056f46, }, r0a1: u288 { limb0: 0x70894ea6418890d53b5ee12a, limb1: 0x882290cb53b795b0e7c8c208, - limb2: 0x1b5777dc18b2899b + limb2: 0x1b5777dc18b2899b, }, r1a0: u288 { limb0: 0x99a0e528d582006a626206b6, limb1: 0xb1cf825d80e199c5c9c795b5, - limb2: 0x2a97495b032f0542 + limb2: 0x2a97495b032f0542, }, r1a1: u288 { limb0: 0xc7cf5b455d6f3ba73debeba5, limb1: 0xbb0a01235687223b7b71d0e5, - limb2: 0x250024ac44c35e3f - } + limb2: 0x250024ac44c35e3f, + }, }, G2Line { r0a0: u288 { limb0: 0xd60abda751022b3ab52a71fb, limb1: 0xac2bdbc297c0590db6bfc3f6, - limb2: 0x8eb71504cf2858c + limb2: 0x8eb71504cf2858c, }, r0a1: u288 { limb0: 0x6120b9134e8c6243cb4b6ab2, limb1: 0xd2116c2eb5a22f2b5c828eb8, - limb2: 0x659ba27e279a722 + limb2: 0x659ba27e279a722, }, r1a0: u288 { limb0: 0x89052eb421e5e6c50c145ffa, limb1: 0x61d9216517954ead7424ae94, - limb2: 0x284310b8977a380c + limb2: 0x284310b8977a380c, }, r1a1: u288 { limb0: 0xbb92f5394c4983a885a8f465, limb1: 0x6246bb3479c74157b24f6745, - limb2: 0x24da3c02db70be46 - } + limb2: 0x24da3c02db70be46, + }, }, G2Line { r0a0: u288 { limb0: 0xb876e41dfcbf9c2c748bcbbf, limb1: 0xa86948ab4d29ceba965253f9, - limb2: 0xd0080dd30431eab + limb2: 0xd0080dd30431eab, }, r0a1: u288 { limb0: 0x1f7efe01d08f305661f923b3, limb1: 0xf265d5179bafe8cf813b9077, - limb2: 0x1f37e85fd504232f + limb2: 0x1f37e85fd504232f, }, r1a0: u288 { limb0: 0xdeb3dcf52e8219964b3ca860, limb1: 0x8b80044bac7a9a9540370b1d, - limb2: 0x208591589c3eecb3 + limb2: 0x208591589c3eecb3, }, r1a1: u288 { limb0: 0x32af49c4ba67546152124706, limb1: 0xf1767348c820427b48c1137d, - limb2: 0x248a2111fa7d4710 - } + limb2: 0x248a2111fa7d4710, + }, }, G2Line { r0a0: u288 { limb0: 0xccf841cf5c1cf8f4a0485e28, limb1: 0xb5077662d0ce9d755af1446b, - limb2: 0x2b08658e9d5ba5cb + limb2: 0x2b08658e9d5ba5cb, }, r0a1: u288 { limb0: 0x6ce62184a15685babd77f27f, limb1: 0x5ff9bb7d74505b0542578299, - limb2: 0x7244563488bab2 + limb2: 0x7244563488bab2, }, r1a0: u288 { limb0: 0xec778048d344ac71275d961d, limb1: 0x1273984019753000ad890d33, - limb2: 0x27c2855e60d361bd + limb2: 0x27c2855e60d361bd, }, r1a1: u288 { limb0: 0xa7a0071e22af2f3a79a12da, limb1: 0xc84a6fd41c20759ff6ff169a, - limb2: 0x23e7ef2a308e49d1 - } + limb2: 0x23e7ef2a308e49d1, + }, }, G2Line { r0a0: u288 { limb0: 0x159e03e80a712c3eb4bb2322, limb1: 0x152e9c0687bd5b6ed027fddc, - limb2: 0xa5e3c400f76af96 + limb2: 0xa5e3c400f76af96, }, r0a1: u288 { limb0: 0xad170c2df32989054acf70f0, limb1: 0x90e09c7dcbb9bf4ceb2c5ea4, - limb2: 0xe20987b18a95c02 + limb2: 0xe20987b18a95c02, }, r1a0: u288 { limb0: 0xd41b9cbc90b68f69379ec96b, limb1: 0x6c8e7199aa1fea5f81256ace, - limb2: 0xbacee39e0dd19dd + limb2: 0xbacee39e0dd19dd, }, r1a1: u288 { limb0: 0xcf578a12f806c50b19311642, limb1: 0x2e7d9a7d24ff529e1b2e6943, - limb2: 0x262bbe97a5dc53fe - } + limb2: 0x262bbe97a5dc53fe, + }, }, G2Line { r0a0: u288 { limb0: 0x7105024c431a33683d9d0b9d, limb1: 0x12e23637b641ab0e5b322ad8, - limb2: 0x2918e9e08c764c28 + limb2: 0x2918e9e08c764c28, }, r0a1: u288 { limb0: 0x26384979d1f5417e451aeabf, limb1: 0xacfb499e362291d0b053bbf6, - limb2: 0x2a6ad1a1f7b04ef6 + limb2: 0x2a6ad1a1f7b04ef6, }, r1a0: u288 { limb0: 0xba4db515be70c384080fc9f9, limb1: 0x5a983a6afa9cb830fa5b66e6, - limb2: 0x8cc1fa494726a0c + limb2: 0x8cc1fa494726a0c, }, r1a1: u288 { limb0: 0x59c9af9399ed004284eb6105, limb1: 0xef37f66b058b4c971d9c96b0, - limb2: 0x2c1839afde65bafa - } + limb2: 0x2c1839afde65bafa, + }, }, G2Line { r0a0: u288 { limb0: 0x5725ce4f02f7ca75d7189073, limb1: 0xd105fefd57a1a89e7a69faa3, - limb2: 0x16a43b8238e9776f + limb2: 0x16a43b8238e9776f, }, r0a1: u288 { limb0: 0x25c4f2d5b972ced61efac33b, limb1: 0x7b68646179eb9d2ceda7914a, - limb2: 0x1652bf6b8b1d3e3e + limb2: 0x1652bf6b8b1d3e3e, }, r1a0: u288 { limb0: 0xcb753ca19e3c38273d73e58a, limb1: 0xa9a697028f43b5b5c1faf7f8, - limb2: 0x176d848a309eb7a + limb2: 0x176d848a309eb7a, }, r1a1: u288 { limb0: 0x88a5193c45c3a80b0e66981a, limb1: 0xfd6ff58f8f6f9027281fb5f9, - limb2: 0x25df2ca1dfba7366 - } + limb2: 0x25df2ca1dfba7366, + }, }, G2Line { r0a0: u288 { limb0: 0x6bf13a27b0f4eb6657abc4b, limb1: 0xf78d57f089bffdf07c676bb3, - limb2: 0x228e4aefbdd738df + limb2: 0x228e4aefbdd738df, }, r0a1: u288 { limb0: 0x4f41a40b04ec964619823053, limb1: 0xfa3fb44f4a80641a9bb3bc09, - limb2: 0x29bf29a3d071ec4b + limb2: 0x29bf29a3d071ec4b, }, r1a0: u288 { limb0: 0x83823dcdff02bdc8a0e6aa03, limb1: 0x79ac92f113de29251cd73a98, - limb2: 0x1ccdb791718d144 + limb2: 0x1ccdb791718d144, }, r1a1: u288 { limb0: 0xa074add9d066db9a2a6046b6, limb1: 0xef3a70034497456c7d001a5, - limb2: 0x27d09562d815b4a6 - } + limb2: 0x27d09562d815b4a6, + }, }, G2Line { r0a0: u288 { limb0: 0x25e816712be02294b62c3be3, limb1: 0x13d1d46cbede4847bb0625b8, - limb2: 0x9e1d1ffd8abfd4b + limb2: 0x9e1d1ffd8abfd4b, }, r0a1: u288 { limb0: 0x1c0d2715920fb25f1c6ffee5, limb1: 0x8f525d4d78921ab44b02a8ea, - limb2: 0x1db798591d05a543 + limb2: 0x1db798591d05a543, }, r1a0: u288 { limb0: 0x3329e474cb10234c64b9ee03, limb1: 0x576667fe79436c09a72a1e34, - limb2: 0x134ac3bce6fa1ffc + limb2: 0x134ac3bce6fa1ffc, }, r1a1: u288 { limb0: 0xfc08e5edb8edfaf73ad7f2b6, limb1: 0x781debc0d2178605c6f59e3f, - limb2: 0x1f267149e0cc2034 - } + limb2: 0x1f267149e0cc2034, + }, }, G2Line { r0a0: u288 { limb0: 0x87a44d343cc761056f4f2eae, limb1: 0x18016f16818253360d2c8adf, - limb2: 0x1bcd5c6e597d735e + limb2: 0x1bcd5c6e597d735e, }, r0a1: u288 { limb0: 0x593d7444c376f6d69289660b, limb1: 0x1d6d97020b59cf2e4b38be4f, - limb2: 0x17133b62617f63a7 + limb2: 0x17133b62617f63a7, }, r1a0: u288 { limb0: 0x88cac99869bb335ec9553a70, limb1: 0x95bcfa7f7c0b708b4d737afc, - limb2: 0x1eec79b9db274c09 + limb2: 0x1eec79b9db274c09, }, r1a1: u288 { limb0: 0xe465a53e9fe085eb58a6be75, limb1: 0x868e45cc13e7fd9d34e11839, - limb2: 0x2b401ce0f05ee6bb - } + limb2: 0x2b401ce0f05ee6bb, + }, }, G2Line { r0a0: u288 { limb0: 0x83f48fbac5c1b94486c2d037, limb1: 0xf95d9333449543de78c69e75, - limb2: 0x7bca8163e842be7 + limb2: 0x7bca8163e842be7, }, r0a1: u288 { limb0: 0x60157b2ff6e4d737e2dac26b, limb1: 0x30ab91893fcf39d9dcf1b89, - limb2: 0x29a58a02490d7f53 + limb2: 0x29a58a02490d7f53, }, r1a0: u288 { limb0: 0x520f9cb580066bcf2ce872db, limb1: 0x24a6e42c185fd36abb66c4ba, - limb2: 0x309b07583317a13 + limb2: 0x309b07583317a13, }, r1a1: u288 { limb0: 0x5a4c61efaa3d09a652c72471, limb1: 0xfcb2676d6aa28ca318519d2, - limb2: 0x1405483699afa209 - } + limb2: 0x1405483699afa209, + }, }, G2Line { r0a0: u288 { limb0: 0x96239ccb1673794f48c3814e, limb1: 0xa9424d7fd8d1cb457d8106a8, - limb2: 0x18f633ca15146197 + limb2: 0x18f633ca15146197, }, r0a1: u288 { limb0: 0x83821511cecf8050ab30d09b, limb1: 0xabe9d19055677c64212fb315, - limb2: 0x17e8e943d4dd53dc + limb2: 0x17e8e943d4dd53dc, }, r1a0: u288 { limb0: 0xa3635311eefb6d8f006727b6, limb1: 0xe67ebc4b351851a29c182f14, - limb2: 0x20be5ef63fa9f566 + limb2: 0x20be5ef63fa9f566, }, r1a1: u288 { limb0: 0xbdb0a8b8e3e37a1cad4fab9f, limb1: 0x12270bf0d7ba9cdcffa36b1c, - limb2: 0x29de034e18f7685e - } + limb2: 0x29de034e18f7685e, + }, }, G2Line { r0a0: u288 { limb0: 0x208dc70e391d90d0bfb98656, limb1: 0xbfa819c7c80fa22a3aa2e036, - limb2: 0x1a1213ebcb6adb0e + limb2: 0x1a1213ebcb6adb0e, }, r0a1: u288 { limb0: 0xd6ae81e1044113f735597233, limb1: 0x43cc8817df94943fc400f20e, - limb2: 0x2c4b9b2ee1ce9b7e + limb2: 0x2c4b9b2ee1ce9b7e, }, r1a0: u288 { limb0: 0x44af7f302b92dee29928a9b1, limb1: 0x4e6e061af95bc50d61b54813, - limb2: 0x184eaff39795e0b5 + limb2: 0x184eaff39795e0b5, }, r1a1: u288 { limb0: 0xd7f6b1aace297a73b349891, limb1: 0x3f66972428dc9236b93f8718, - limb2: 0xf54166413a83eb9 - } + limb2: 0xf54166413a83eb9, + }, }, G2Line { r0a0: u288 { limb0: 0xbfdfdae86101e29da3e869b8, limb1: 0xf969a9b961a28b872e56aac2, - limb2: 0x1afdc719440d90f0 + limb2: 0x1afdc719440d90f0, }, r0a1: u288 { limb0: 0xee43c995686f13baa9b07266, limb1: 0xbfa387a694c641cceee4443a, - limb2: 0x104d8c02eb7f60c8 + limb2: 0x104d8c02eb7f60c8, }, r1a0: u288 { limb0: 0x8d451602b3593e798aecd7fb, limb1: 0x69ffbefe7c5ac2cf68e8691e, - limb2: 0x2ea064a1bc373d28 + limb2: 0x2ea064a1bc373d28, }, r1a1: u288 { limb0: 0x6e7a663073bfe88a2b02326f, limb1: 0x5faadb36847ca0103793fa4a, - limb2: 0x26c09a8ec9303836 - } + limb2: 0x26c09a8ec9303836, + }, }, G2Line { r0a0: u288 { limb0: 0xda7e32ff636bb66ede683e6, limb1: 0x72508ca3cb51c08078df9e81, - limb2: 0xcbffc477cdc6d53 + limb2: 0xcbffc477cdc6d53, }, r0a1: u288 { limb0: 0xec389fc066f7281a57220f62, limb1: 0xcb8aa465fb7a1fbef606f5f4, - limb2: 0xae52f9f10665ce1 + limb2: 0xae52f9f10665ce1, }, r1a0: u288 { limb0: 0x38510c3e655d75deba1be8d1, limb1: 0xeedd4d29f92ac584ba92062d, - limb2: 0x2f2000eea8290b01 + limb2: 0x2f2000eea8290b01, }, r1a1: u288 { limb0: 0x4d27e3af8c4b7ee38398ca08, limb1: 0x10704138acc1ba6a0c2845ed, - limb2: 0x2a7ab438d02abe84 - } + limb2: 0x2a7ab438d02abe84, + }, }, G2Line { r0a0: u288 { limb0: 0x3d038747ebac16adc1c50bdd, limb1: 0xe3706a783e99f73ac742aa1a, - limb2: 0x17eac23b00b545ff + limb2: 0x17eac23b00b545ff, }, r0a1: u288 { limb0: 0xdc25ff0bd02abcbe502c4e37, limb1: 0x39b92e6ebb65e5f2d8504f90, - limb2: 0x2415b5f61301dff6 + limb2: 0x2415b5f61301dff6, }, r1a0: u288 { limb0: 0x9cdcb2146d15f37900db82ac, limb1: 0x96c3940e2f5c5f8198fadee3, - limb2: 0x2f662ea79b473fc2 + limb2: 0x2f662ea79b473fc2, }, r1a1: u288 { limb0: 0xc0fb95686de65e504ed4c57a, limb1: 0xec396c7c4275d4e493b00713, - limb2: 0x106d2aab8d90d517 - } + limb2: 0x106d2aab8d90d517, + }, }, G2Line { r0a0: u288 { limb0: 0x9c305c582cfb7a7d23b95811, limb1: 0x4bb6df7058c076c8852077bc, - limb2: 0x260910f89761bfb5 + limb2: 0x260910f89761bfb5, }, r0a1: u288 { limb0: 0x7f49c8cd61b91f52a6e78d0b, limb1: 0x3a2ca7573f8e189320281763, - limb2: 0x285987c9b92ff007 + limb2: 0x285987c9b92ff007, }, r1a0: u288 { limb0: 0xd9a09c023a61fcc1548df2ce, limb1: 0xa6582f6b78778a7cb28e1c1a, - limb2: 0x1895d97b6e5913a6 + limb2: 0x1895d97b6e5913a6, }, r1a1: u288 { limb0: 0x6afbf3e269da5ffaac177f8e, limb1: 0x654e37e37a96d0e9327281d7, - limb2: 0x7834cf60dd26f16 - } + limb2: 0x7834cf60dd26f16, + }, }, G2Line { r0a0: u288 { limb0: 0x49bbb4d856921e3177c0b5bf, limb1: 0x76d84d273694e662bdd5d364, - limb2: 0xea5dc611bdd369d + limb2: 0xea5dc611bdd369d, }, r0a1: u288 { limb0: 0x9e9fc3adc530fa3c5c6fd7fe, limb1: 0x114bb0c0e8bd247da41b3883, - limb2: 0x6044124f85d2ce + limb2: 0x6044124f85d2ce, }, r1a0: u288 { limb0: 0xa6e604cdb4e40982a97c084, limb1: 0xef485caa56c7820be2f6b11d, - limb2: 0x280de6387dcbabe1 + limb2: 0x280de6387dcbabe1, }, r1a1: u288 { limb0: 0xcaceaf6df5ca9f8a18bf2e1e, limb1: 0xc5cce932cc6818b53136c142, - limb2: 0x12f1cd688682030c - } + limb2: 0x12f1cd688682030c, + }, }, G2Line { r0a0: u288 { limb0: 0x37497c23dcf629df58a5fa12, limb1: 0x4fcd5534ae47bded76245ac9, - limb2: 0x1715ab081e32ac95 + limb2: 0x1715ab081e32ac95, }, r0a1: u288 { limb0: 0x856275471989e2c288e3c83, limb1: 0xb42d81a575b89b127a7821a, - limb2: 0x5fa75a0e4ae3118 + limb2: 0x5fa75a0e4ae3118, }, r1a0: u288 { limb0: 0xeb22351e8cd345c23c0a3fef, limb1: 0x271feb16d4b47d2267ac9d57, - limb2: 0x258f9950b9a2dee5 + limb2: 0x258f9950b9a2dee5, }, r1a1: u288 { limb0: 0xb5f75468922dc025ba7916fa, limb1: 0x7e24515de90edf1bde4edd9, - limb2: 0x289145b3512d4d81 - } + limb2: 0x289145b3512d4d81, + }, }, G2Line { r0a0: u288 { limb0: 0x474d539c09e56d254248eb2b, limb1: 0xfd31c4dda0194dfc995c9a7, - limb2: 0xc3a11eb34327e4 + limb2: 0xc3a11eb34327e4, }, r0a1: u288 { limb0: 0x9c159e673fc04e4708c12343, limb1: 0xb4f305fcf82d9e1fc29c5be4, - limb2: 0x1f4075ebbb40ae4f + limb2: 0x1f4075ebbb40ae4f, }, r1a0: u288 { limb0: 0xb3c06a6a7da6cae6418b20f1, limb1: 0x52fd9665f418fc28d1a1c512, - limb2: 0x15dcb567f6ba3f15 + limb2: 0x15dcb567f6ba3f15, }, r1a1: u288 { limb0: 0x68eef22325cbe13b51e949ef, limb1: 0x58ff6f0479b6dba68c5b5457, - limb2: 0x1b2faffca46537d7 - } + limb2: 0x1b2faffca46537d7, + }, }, G2Line { r0a0: u288 { limb0: 0xe2b891b2e4ab31d41c1e862d, limb1: 0x5e80a5ab28e058fe3363fad3, - limb2: 0x1881cd458e4900fd + limb2: 0x1881cd458e4900fd, }, r0a1: u288 { limb0: 0xacf99791bc8df6a58559a444, limb1: 0x3c5ae5820c97272c6ecc3a34, - limb2: 0x1ae9629d591a5874 + limb2: 0x1ae9629d591a5874, }, r1a0: u288 { limb0: 0x83a000d401b2be3889b14e33, limb1: 0xa6d94925a487bed7783b13e9, - limb2: 0x1460eb18169abc7 + limb2: 0x1460eb18169abc7, }, r1a1: u288 { limb0: 0x68a0fe19092799473fa1ecca, limb1: 0x4a5f3a56311ba88915d67614, - limb2: 0x2fa198a45edde900 - } + limb2: 0x2fa198a45edde900, + }, }, G2Line { r0a0: u288 { limb0: 0x95b7b32bcc3119c64a62a8de, limb1: 0xe07184496f17bbd59a4b7bbd, - limb2: 0x1708c536fd78b531 + limb2: 0x1708c536fd78b531, }, r0a1: u288 { limb0: 0xfa85b5778c77166c1523a75e, limb1: 0x89a00c53309a9e525bef171a, - limb2: 0x2d2287dd024e421 + limb2: 0x2d2287dd024e421, }, r1a0: u288 { limb0: 0x31fd0884eaf2208bf8831e72, limb1: 0x537e04ea344beb57ee645026, - limb2: 0x23c7f99715257261 + limb2: 0x23c7f99715257261, }, r1a1: u288 { limb0: 0x8c38b3aeea525f3c2d2fdc22, limb1: 0xf838a99d9ec8ed6dcec6a2a8, - limb2: 0x2973d5159ddc479a - } + limb2: 0x2973d5159ddc479a, + }, }, G2Line { r0a0: u288 { limb0: 0x3f058d8c63fd905d3ca29b42, limb1: 0x1f0a90982cc68e4ddcd83e57, - limb2: 0x240aeaae0783fbfa + limb2: 0x240aeaae0783fbfa, }, r0a1: u288 { limb0: 0xedfee81d80da310fdf0d0d8, limb1: 0xc2208e6de8806cf491bd74d4, - limb2: 0xb7318be62a476af + limb2: 0xb7318be62a476af, }, r1a0: u288 { limb0: 0x3c6920c8a24454c634f388fe, limb1: 0x23328a006312a722ae09548b, - limb2: 0x1d2f1c58b80432e2 + limb2: 0x1d2f1c58b80432e2, }, r1a1: u288 { limb0: 0xb72980574f7a877586de3a63, limb1: 0xcd773b87ef4a29c16784c5ae, - limb2: 0x1f812c7e22f339c5 - } + limb2: 0x1f812c7e22f339c5, + }, }, G2Line { r0a0: u288 { limb0: 0xe72c7bcd2ec07cf939c82bf2, limb1: 0xf20f143e871594e88e02564f, - limb2: 0x28a1e3b81f977f43 + limb2: 0x28a1e3b81f977f43, }, r0a1: u288 { limb0: 0xf5788be1af3d8de8da67b79f, limb1: 0x48f88a4e0abb1434db9e7304, - limb2: 0x292130cc233b4429 + limb2: 0x292130cc233b4429, }, r1a0: u288 { limb0: 0x1e5eac242edb50874c5dde70, limb1: 0x24febedd561c1b49f93efde4, - limb2: 0x2673053ad23b2f55 + limb2: 0x2673053ad23b2f55, }, r1a1: u288 { limb0: 0x3dcc892c39d59e3cb3ab2dc7, limb1: 0xbf90bfbeeaf31e4569c33b0f, - limb2: 0x241dd4018555da7 - } + limb2: 0x241dd4018555da7, + }, }, G2Line { r0a0: u288 { limb0: 0xd8e8c28949cdca3f8d4385d7, limb1: 0x98fe4c263e58d50c230f9604, - limb2: 0x96e498dd6ed6312 + limb2: 0x96e498dd6ed6312, }, r0a1: u288 { limb0: 0x693f5c59849b8c6dab40e573, limb1: 0xb9754e3f3c99b4c9a9d3e253, - limb2: 0x2333f41aae69fc1 + limb2: 0x2333f41aae69fc1, }, r1a0: u288 { limb0: 0xc7c0fb6603257da254a953d7, limb1: 0xaf2914e88ac303e54c672acd, - limb2: 0x25a52f889cfe814f + limb2: 0x25a52f889cfe814f, }, r1a1: u288 { limb0: 0x6502eb82951b4604da30a2a9, limb1: 0x9b317811fb6785bac19a8203, - limb2: 0x1cb5c238f6a8f6c8 - } + limb2: 0x1cb5c238f6a8f6c8, + }, }, G2Line { r0a0: u288 { limb0: 0xfeebe92941f95b6ea1d095bb, limb1: 0x9c7962eb8bbeb95a9ca7cf50, - limb2: 0x290bdaf3b9a08dc3 + limb2: 0x290bdaf3b9a08dc3, }, r0a1: u288 { limb0: 0x686cfa11c9d4b93675495599, limb1: 0xb1d69e17b4b5ebf64f0d51e1, - limb2: 0x2c18bb4bdc2e9567 + limb2: 0x2c18bb4bdc2e9567, }, r1a0: u288 { limb0: 0x17419b0f6a04bfc98d71527, limb1: 0x80eba6ff02787e3de964a4d1, - limb2: 0x26087bb100e7ff9f + limb2: 0x26087bb100e7ff9f, }, r1a1: u288 { limb0: 0x17c4ee42c3f612c43a08f689, limb1: 0x7276bdda2df6d51a291dba69, - limb2: 0x40a7220ddb393e1 - } + limb2: 0x40a7220ddb393e1, + }, }, G2Line { r0a0: u288 { limb0: 0x917d90650b71f1ab46bab72, limb1: 0xc1918cfed77a56e1070c0641, - limb2: 0xed0bb71254b669b + limb2: 0xed0bb71254b669b, }, r0a1: u288 { limb0: 0x3ea287920147db34d6f66f4f, limb1: 0x79077d9eba0a62a9cd93b232, - limb2: 0x10741ac25481e28a + limb2: 0x10741ac25481e28a, }, r1a0: u288 { limb0: 0x619c7fea78e866aba4198715, limb1: 0x34846c0b78033f9da1fad5e5, - limb2: 0x154d8e87a1d50a8a + limb2: 0x154d8e87a1d50a8a, }, r1a1: u288 { limb0: 0xf07d32dec360fffd6db7bc17, limb1: 0x73f267153a367f1bd57f5383, - limb2: 0x12c09b76a9ecb04b - } + limb2: 0x12c09b76a9ecb04b, + }, }, G2Line { r0a0: u288 { limb0: 0x830d777c19040571a1d72fd0, limb1: 0x651b2c6b8c292020817a633f, - limb2: 0x268af1e285bc59ff + limb2: 0x268af1e285bc59ff, }, r0a1: u288 { limb0: 0xede78baa381c5bce077f443d, limb1: 0x540ff96bae21cd8b9ae5438b, - limb2: 0x12a1fa7e3b369242 + limb2: 0x12a1fa7e3b369242, }, r1a0: u288 { limb0: 0x797c0608e5a535d8736d4bc5, limb1: 0x375faf00f1147656b7c1075f, - limb2: 0xda60fab2dc5a639 + limb2: 0xda60fab2dc5a639, }, r1a1: u288 { limb0: 0x610d26085cfbebdb30ce476e, limb1: 0x5bc55890ff076827a09e8444, - limb2: 0x14272ee2d25f20b7 - } + limb2: 0x14272ee2d25f20b7, + }, }, G2Line { r0a0: u288 { limb0: 0x5cc8ee1ae0c281270770770a, limb1: 0x875f773ac9a2f4453b76031d, - limb2: 0x2e18a40702156e7e + limb2: 0x2e18a40702156e7e, }, r0a1: u288 { limb0: 0x9a868b9382515fe16c1eacb0, limb1: 0x6c9facfbe6243346ad5d6c8a, - limb2: 0x16555ceba9837031 + limb2: 0x16555ceba9837031, }, r1a0: u288 { limb0: 0xf764e54b3fc901693aae459a, limb1: 0xa67ee51e4af1452067ac0ffe, - limb2: 0x2826818194b192f5 + limb2: 0x2826818194b192f5, }, r1a1: u288 { limb0: 0x61936eafb15f6a8062be4bb7, limb1: 0x9e1a4b26df02958fcf88f197, - limb2: 0x1aa2bcb13967fa84 - } + limb2: 0x1aa2bcb13967fa84, + }, }, G2Line { r0a0: u288 { limb0: 0xd6862e1a4ca3b2baf6f8d8aa, limb1: 0x96f9066dded3a3d899025af4, - limb2: 0x1a98af9f0d48fd3 + limb2: 0x1a98af9f0d48fd3, }, r0a1: u288 { limb0: 0x276b417cc61ea259c114314e, limb1: 0x464399e5e0037b159866b246, - limb2: 0x12cc97dcf32896b5 + limb2: 0x12cc97dcf32896b5, }, r1a0: u288 { limb0: 0xef72647f4c2d08fc038c4377, limb1: 0x34883cea19be9a490a93cf2b, - limb2: 0x10d01394daa61ed0 + limb2: 0x10d01394daa61ed0, }, r1a1: u288 { limb0: 0xdf345239ece3acaa62919643, limb1: 0x914780908ece64e763cca062, - limb2: 0xee2a80dbd2012a3 - } + limb2: 0xee2a80dbd2012a3, + }, }, G2Line { r0a0: u288 { limb0: 0x1d5a31f4d08a0ebf7e071e00, limb1: 0xcd1244dd95dd30005f531f81, - limb2: 0xb4cb469a2dcf4f1 + limb2: 0xb4cb469a2dcf4f1, }, r0a1: u288 { limb0: 0x7c5938adaf38b355092de1f1, limb1: 0x292ab08995b293abfcba14b, - limb2: 0x1fd126a2b9f37c67 + limb2: 0x1fd126a2b9f37c67, }, r1a0: u288 { limb0: 0x6e9d352b02a7cb771fcc33f9, limb1: 0x7754d8536eefda2025a07340, - limb2: 0x1840289291c35a72 + limb2: 0x1840289291c35a72, }, r1a1: u288 { limb0: 0xe85f465417b7bd758c547b2e, limb1: 0xf7f703c3bc55ff8a01fa9365, - limb2: 0xfa301227880a841 - } + limb2: 0xfa301227880a841, + }, }, G2Line { r0a0: u288 { limb0: 0x214fc3a8db005247daee136a, limb1: 0xc37ebf6b47552b9bee766d92, - limb2: 0xb58ed274feb30f6 + limb2: 0xb58ed274feb30f6, }, r0a1: u288 { limb0: 0x905dea9364094d99ec8a9045, limb1: 0x3bfd9fbe57a1d2815913812e, - limb2: 0x10dfd90843c03ab4 + limb2: 0x10dfd90843c03ab4, }, r1a0: u288 { limb0: 0x118f7a0e148e4bda7446fe05, limb1: 0x66583235f020b02a817ec6db, - limb2: 0x2352079b097fceea + limb2: 0x2352079b097fceea, }, r1a1: u288 { limb0: 0xba58bc60f29736ec6df2a879, limb1: 0xbaf7d69e4f04d094074ffad5, - limb2: 0x27b1c5d0ef78b4e7 - } + limb2: 0x27b1c5d0ef78b4e7, + }, }, G2Line { r0a0: u288 { limb0: 0x79be48160d704f2e2e5dca40, limb1: 0x8fbf9f087c596616cea86512, - limb2: 0x1d8a89117fbc7c8 + limb2: 0x1d8a89117fbc7c8, }, r0a1: u288 { limb0: 0xfe8a0cc5bc30a043cb039f3e, limb1: 0xba2d3630acdf8e20b9dd3c3c, - limb2: 0xba977bc2fb18b8f + limb2: 0xba977bc2fb18b8f, }, r1a0: u288 { limb0: 0x487697b042f01992743cef38, limb1: 0xcdf5ff596e895a68f81f7db9, - limb2: 0x2e8c6bec9fdf6256 + limb2: 0x2e8c6bec9fdf6256, }, r1a1: u288 { limb0: 0x26b24c68c759e3a6c6a1e1be, limb1: 0xd110ce390b2cc30f60e04272, - limb2: 0x2ef61a9ef3261262 - } + limb2: 0x2ef61a9ef3261262, + }, }, G2Line { r0a0: u288 { limb0: 0xa4058149e82ea51362b79be4, limb1: 0x734eba2621918a820ae44684, - limb2: 0x110a314a02272b1 + limb2: 0x110a314a02272b1, }, r0a1: u288 { limb0: 0xe2b43963ef5055df3c249613, limb1: 0x409c246f762c0126a1b3b7b7, - limb2: 0x19aa27f34ab03585 + limb2: 0x19aa27f34ab03585, }, r1a0: u288 { limb0: 0x179aad5f620193f228031d62, limb1: 0x6ba32299b05f31b099a3ef0d, - limb2: 0x157724be2a0a651f + limb2: 0x157724be2a0a651f, }, r1a1: u288 { limb0: 0xa33b28d9a50300e4bbc99137, limb1: 0x262a51847049d9b4d8cea297, - limb2: 0x189acb4571d50692 - } + limb2: 0x189acb4571d50692, + }, }, G2Line { r0a0: u288 { limb0: 0xd946f57b3b0729afee82f5bd, limb1: 0xadf28363d79debf1404ef6f1, - limb2: 0x1c6ec53f8e1f685 + limb2: 0x1c6ec53f8e1f685, }, r0a1: u288 { limb0: 0x6326670cc780b7709928fbc2, limb1: 0x6911b53a757220cba583023, - limb2: 0x1a8b3686dff0d70f + limb2: 0x1a8b3686dff0d70f, }, r1a0: u288 { limb0: 0xa8749fb48ebbe0aabb71ba75, limb1: 0xf8d9ab7f732d405fedd6ee74, - limb2: 0x5bfdc6f295776f0 + limb2: 0x5bfdc6f295776f0, }, r1a1: u288 { limb0: 0x894b9e4055ffeec20a7953e1, limb1: 0xdff2a1fba1c35348b8749de3, - limb2: 0x48735157c274b95 - } + limb2: 0x48735157c274b95, + }, }, G2Line { r0a0: u288 { limb0: 0x29bd4381ae4afc677ee37ed6, limb1: 0x29ed43453f9a008d9176f004, - limb2: 0x24134eb915104f43 + limb2: 0x24134eb915104f43, }, r0a1: u288 { limb0: 0x81597f82bb67e90a3e72bdd2, limb1: 0xab3bbde5f7bbb4df6a6b5c19, - limb2: 0x19ac61eea40a367c + limb2: 0x19ac61eea40a367c, }, r1a0: u288 { limb0: 0xe30a79342fb3199651aee2fa, limb1: 0xf500f028a73ab7b7db0104a3, - limb2: 0x808b50e0ecb5e4d + limb2: 0x808b50e0ecb5e4d, }, r1a1: u288 { limb0: 0x55f2818453c31d942444d9d6, limb1: 0xf6dd80c71ab6e893f2cf48db, - limb2: 0x13c3ac4488abd138 - } + limb2: 0x13c3ac4488abd138, + }, }, G2Line { r0a0: u288 { limb0: 0xb7fc2c73d3a21478886c6925, limb1: 0x83f8f0f69bd418cd15cecf76, - limb2: 0x4986ef1d1f37c0c + limb2: 0x4986ef1d1f37c0c, }, r0a1: u288 { limb0: 0x8929725c8a1d7ff0eb249763, limb1: 0x7b7a6c18c6e1940a7bd582a6, - limb2: 0x1dd6e84a61cc2752 + limb2: 0x1dd6e84a61cc2752, }, r1a0: u288 { limb0: 0x46c48446768009b8c1a0d40a, limb1: 0xd20a4867c595c48f2334a8c4, - limb2: 0x51eeff6aec94138 + limb2: 0x51eeff6aec94138, }, r1a1: u288 { limb0: 0x55eafe5e395404eb31dcfe4, limb1: 0xa820fd20250cef46f2825458, - limb2: 0xb96eb80fbf2d040 - } + limb2: 0xb96eb80fbf2d040, + }, }, G2Line { r0a0: u288 { limb0: 0xd1464269bbeafa546f559b8f, limb1: 0xab7f7dcd1ac32b86979471cf, - limb2: 0x6a38256ee96f113 + limb2: 0x6a38256ee96f113, }, r0a1: u288 { limb0: 0xf14d50984e65f9bc41df4e7e, limb1: 0x350aff9be6f9652ad441a3ad, - limb2: 0x1b1e60534b0a6aba + limb2: 0x1b1e60534b0a6aba, }, r1a0: u288 { limb0: 0x9e98507da6cc50a56f023849, limb1: 0xcf8925e03f2bb5c1ba0962dd, - limb2: 0x2b18961810a62f87 + limb2: 0x2b18961810a62f87, }, r1a1: u288 { limb0: 0x3a4c61b937d4573e3f2da299, limb1: 0x6f4c6c13fd90f4edc322796f, - limb2: 0x13f4e99b6a2f025e - } + limb2: 0x13f4e99b6a2f025e, + }, }, G2Line { r0a0: u288 { limb0: 0x2c7391fd0efbf9f8fa7d70bf, limb1: 0xeccd6c2bae8d56b800dc1353, - limb2: 0xe5303c0689a9e57 + limb2: 0xe5303c0689a9e57, }, r0a1: u288 { limb0: 0x19598ac1ef4eec1aa65bb9df, limb1: 0x96a88b783dca84fc7c04537, - limb2: 0x25b5447946e3c22c + limb2: 0x25b5447946e3c22c, }, r1a0: u288 { limb0: 0xf554c51a85400690cf66eb6f, limb1: 0x1c6de9e803bcd80689072c29, - limb2: 0xa476f32f5dd7149 + limb2: 0xa476f32f5dd7149, }, r1a1: u288 { limb0: 0xfa6d6f282b1884f75fb19c3, limb1: 0x9e2279e2cceadbb22bb4936f, - limb2: 0x1022cdda753274dc - } + limb2: 0x1022cdda753274dc, + }, }, G2Line { r0a0: u288 { limb0: 0xe0115a79120ae892a72f3dcb, limb1: 0xec67b5fc9ea414a4020135f, - limb2: 0x1ee364e12321904a + limb2: 0x1ee364e12321904a, }, r0a1: u288 { limb0: 0xa74d09666f9429c1f2041cd9, limb1: 0x57ffe0951f863dd0c1c2e97a, - limb2: 0x154877b2d1908995 + limb2: 0x154877b2d1908995, }, r1a0: u288 { limb0: 0xcbe5e4d2d2c91cdd4ccca0, limb1: 0xe6acea145563a04b2821d120, - limb2: 0x18213221f2937afb + limb2: 0x18213221f2937afb, }, r1a1: u288 { limb0: 0xfe20afa6f6ddeb2cb768a5ae, limb1: 0x1a3b509131945337c3568fcf, - limb2: 0x127b5788263a927e - } + limb2: 0x127b5788263a927e, + }, }, G2Line { r0a0: u288 { limb0: 0xa3d871626cafc52591cba2f5, limb1: 0x9eb27d36f9d6ff81a65e608f, - limb2: 0xc3d9b045879a885 + limb2: 0xc3d9b045879a885, }, r0a1: u288 { limb0: 0x33d9d97851c4759eaa3ec41e, limb1: 0xdef827b9a238dce09fd9a98b, - limb2: 0x3b3e7b317193c08 + limb2: 0x3b3e7b317193c08, }, r1a0: u288 { limb0: 0x73bce84ace690975f772498d, limb1: 0xc7dd71cceb715cbeaba0300b, - limb2: 0xda625363f371385 + limb2: 0xda625363f371385, }, r1a1: u288 { limb0: 0x7ccf1f4e92457cc060cc2dd2, limb1: 0x57a9867b1da25533618b0a38, - limb2: 0x2ce2445b6d3b5d47 - } + limb2: 0x2ce2445b6d3b5d47, + }, }, G2Line { r0a0: u288 { limb0: 0xe7c658aecdab4db3c83f7927, limb1: 0xfbf162264ca04ee50c70bde8, - limb2: 0x2a20f4565b7ff885 + limb2: 0x2a20f4565b7ff885, }, r0a1: u288 { limb0: 0x45b1c2f0a1226361f42683c0, limb1: 0x9acdd892c48c08de047296bc, - limb2: 0x27836373108925d4 + limb2: 0x27836373108925d4, }, r1a0: u288 { limb0: 0xc0ea9294b345e6d4892676a7, limb1: 0xcba74eca77086af245d1606e, - limb2: 0xf20edac89053e72 + limb2: 0xf20edac89053e72, }, r1a1: u288 { limb0: 0x4c92a28f2779a527a68a938c, limb1: 0x3a1c3c55ff9d20eac109fab3, - limb2: 0x21c4a8c524b1ee7d - } + limb2: 0x21c4a8c524b1ee7d, + }, }, G2Line { r0a0: u288 { limb0: 0x2c5b2b73977e0bbe733f02f1, limb1: 0x941ef3cc68b0ec1c58733f97, - limb2: 0x109dfb4fec8eeaa9 + limb2: 0x109dfb4fec8eeaa9, }, r0a1: u288 { limb0: 0x5e519b7be134d6e5176eb638, limb1: 0x8a154c6ff9c0c0e682d51638, - limb2: 0x15abca9e5e8debfd + limb2: 0x15abca9e5e8debfd, }, r1a0: u288 { limb0: 0x589fe2b1434b6c3ccdd54b47, limb1: 0x2d3af377839237e5a832dd21, - limb2: 0x1cc7d69606c03fed + limb2: 0x1cc7d69606c03fed, }, r1a1: u288 { limb0: 0xde1899cc358ffca1459c4725, limb1: 0x3b61b22ac1e07c00ed9a6e90, - limb2: 0xc4ba7a6f58eb44 - } + limb2: 0xc4ba7a6f58eb44, + }, }, G2Line { r0a0: u288 { limb0: 0xa68021d593c46246af22559e, limb1: 0x5c2cfc5bc4cd1b48f4704134, - limb2: 0x296066ede1298f8c + limb2: 0x296066ede1298f8c, }, r0a1: u288 { limb0: 0xfe17dd6765eb9b9625eb6a84, limb1: 0x4e35dd8e8f6088bb14299f8d, - limb2: 0x1a380ab2689106e4 + limb2: 0x1a380ab2689106e4, }, r1a0: u288 { limb0: 0x82bacf337ca09853df42bc59, limb1: 0xa15de4ef34a30014c5a2e9ae, - limb2: 0x243cc0cec53c778b + limb2: 0x243cc0cec53c778b, }, r1a1: u288 { limb0: 0xcb2a1bf18e3ba9349b0a8bf2, limb1: 0x35134b2505cbb5a4c91f0ac4, - limb2: 0x25e45206b13f43c4 - } + limb2: 0x25e45206b13f43c4, + }, }, G2Line { r0a0: u288 { limb0: 0x8e97b007ffd9891bd0e77650, limb1: 0x77671278ac33f17df6b1db88, - limb2: 0x243daddc47f5d5c2 + limb2: 0x243daddc47f5d5c2, }, r0a1: u288 { limb0: 0x655fe4c8bbe5ee06aaa0054b, limb1: 0xf751450b02c93c7ddea95938, - limb2: 0x21aa988e950d563f + limb2: 0x21aa988e950d563f, }, r1a0: u288 { limb0: 0xb51b3b6b8582de3eb0549518, limb1: 0x84a1031766b7e465f5bbf40c, - limb2: 0xd46c2d5b95e5532 + limb2: 0xd46c2d5b95e5532, }, r1a1: u288 { limb0: 0x50b6ddd8a5eef0067652191e, limb1: 0x298832a0bc46ebed8bff6190, - limb2: 0xb568b4fe8311f93 - } + limb2: 0xb568b4fe8311f93, + }, }, G2Line { r0a0: u288 { limb0: 0xdbcb8097378d390b07da248a, limb1: 0x8c1663634643ccfc902fb9ab, - limb2: 0xc86707944dd94dc + limb2: 0xc86707944dd94dc, }, r0a1: u288 { limb0: 0x9e8793757f235c776197a40c, limb1: 0x7dbd3da8b7acc50b88b81d13, - limb2: 0x30275a0ea994486a + limb2: 0x30275a0ea994486a, }, r1a0: u288 { limb0: 0xef0575f2db98a6990b5e711a, limb1: 0x435f838e3006b8a20f712ed7, - limb2: 0x17966a602fe26c9a + limb2: 0x17966a602fe26c9a, }, r1a1: u288 { limb0: 0x5d4bfdefb19390640b2ed319, limb1: 0xa78667173fb7df5f94b4a16a, - limb2: 0x8e4352fb4ae51a2 - } + limb2: 0x8e4352fb4ae51a2, + }, }, G2Line { r0a0: u288 { limb0: 0x6cd6297331a7caa0be521395, limb1: 0x7e756b60245d002f45c0fb0e, - limb2: 0x184bca44f635d83c + limb2: 0x184bca44f635d83c, }, r0a1: u288 { limb0: 0xf90865285ead353404073268, limb1: 0x602b0cb51354964341f10596, - limb2: 0x2f9be8e4ee793677 + limb2: 0x2f9be8e4ee793677, }, r1a0: u288 { limb0: 0x6690385e85e2502acccf0f73, limb1: 0x75cde4d65e511fd1f30fdbfb, - limb2: 0x201c80aa6ed20e16 + limb2: 0x201c80aa6ed20e16, }, r1a1: u288 { limb0: 0x968094989f04e6e32c57134e, limb1: 0xced44e94479ad20ef1a76854, - limb2: 0xc8cc909f185a534 - } + limb2: 0xc8cc909f185a534, + }, }, G2Line { r0a0: u288 { limb0: 0xddb4db99db681d35f71a159c, limb1: 0xf71a330019414e6fdee75700, - limb2: 0x14d9838e7d1918bb + limb2: 0x14d9838e7d1918bb, }, r0a1: u288 { limb0: 0x203c8bac71951a5f2c653710, limb1: 0x9fc93f8da38ecc2957313982, - limb2: 0x7b6d981259cabd9 + limb2: 0x7b6d981259cabd9, }, r1a0: u288 { limb0: 0xa7297cdb5be0cc45d48ca6af, limb1: 0xa07b4b025ebe6c960eddfc56, - limb2: 0xef2a5c30ef00652 + limb2: 0xef2a5c30ef00652, }, r1a1: u288 { limb0: 0xb7f05c76d860e9122b36ecd7, limb1: 0x407d6522e1f9ce2bcbf80eda, - limb2: 0x197625a558f32c36 - } + limb2: 0x197625a558f32c36, + }, }, G2Line { r0a0: u288 { limb0: 0x97e789e67f556840749976fc, limb1: 0xd84af043e944d5b04a2b8bf2, - limb2: 0x2b12733b29b0d0f2 + limb2: 0x2b12733b29b0d0f2, }, r0a1: u288 { limb0: 0xc26f93b9a33a3a014aa0d63e, limb1: 0xa7bb6212b74b1d178ca2c461, - limb2: 0x7ff0135d877564a + limb2: 0x7ff0135d877564a, }, r1a0: u288 { limb0: 0xafd419b0ec21da02a2ab2d18, limb1: 0x2a4be9f89330466fbf862ab6, - limb2: 0x86ef4c7ef738225 + limb2: 0x86ef4c7ef738225, }, r1a1: u288 { limb0: 0xa09427825229ef33a181b63a, limb1: 0xe6ad699b1fab9a393ee44509, - limb2: 0x277c698746a431ea - } + limb2: 0x277c698746a431ea, + }, }, G2Line { r0a0: u288 { limb0: 0xb0f04df9dec94801e48a6ff7, limb1: 0xdc59d087c627d38334e5b969, - limb2: 0x3d36e11420be053 + limb2: 0x3d36e11420be053, }, r0a1: u288 { limb0: 0xc80f070001aa1586189e0215, limb1: 0xff849fcbbbe7c00c83ab5282, - limb2: 0x2a2354b2882706a6 + limb2: 0x2a2354b2882706a6, }, r1a0: u288 { limb0: 0x48cf70c80f08b6c7dc78adb2, limb1: 0xc6632efa77b36a4a1551d003, - limb2: 0xc2d3533ece75879 + limb2: 0xc2d3533ece75879, }, r1a1: u288 { limb0: 0x63e82ba26617416a0b76ddaa, limb1: 0xdaceb24adda5a049bed29a50, - limb2: 0x1a82061a3344043b - } + limb2: 0x1a82061a3344043b, + }, }, G2Line { r0a0: u288 { limb0: 0x473461f8672727e9ffa7c398, limb1: 0xaf2ae23f8f850a93ca51d377, - limb2: 0x2a2aa81268836446 + limb2: 0x2a2aa81268836446, }, r0a1: u288 { limb0: 0x678d0df15b589c522e0f6d57, limb1: 0xf5bb7af20c01400bafb375ab, - limb2: 0xfb0dcf47bd22abe + limb2: 0xfb0dcf47bd22abe, }, r1a0: u288 { limb0: 0x840273537792af0d0fa5532a, limb1: 0xceebd5b43f66b4e252465428, - limb2: 0x126f3ae4ddbc2031 + limb2: 0x126f3ae4ddbc2031, }, r1a1: u288 { limb0: 0xff451566c1fcfe01edf44a57, limb1: 0x90ad9e37524e5aa9552f4848, - limb2: 0x1afee273872f8558 - } + limb2: 0x1afee273872f8558, + }, }, G2Line { r0a0: u288 { limb0: 0x9152fecf0f523415acc7c7be, limb1: 0xd9632cbfccc4ea5d7bf31177, - limb2: 0x2d7288c5f8c83ab1 + limb2: 0x2d7288c5f8c83ab1, }, r0a1: u288 { limb0: 0x53144bfe4030f3f9f5efda8, limb1: 0xfeec394fbf392b11c66bae27, - limb2: 0x28840813ab8a200b + limb2: 0x28840813ab8a200b, }, r1a0: u288 { limb0: 0xdec3b11fbc28b305d9996ec7, limb1: 0x5b5f8d9d17199e149c9def6e, - limb2: 0x10c1a149b6751bae + limb2: 0x10c1a149b6751bae, }, r1a1: u288 { limb0: 0x665e8eb7e7d376a2d921c889, limb1: 0xfdd76d06e46ee1a943b8788d, - limb2: 0x8bb21d9960e837b - } + limb2: 0x8bb21d9960e837b, + }, }, G2Line { r0a0: u288 { limb0: 0x3a67c28a175200e631aa506a, limb1: 0x7397303a34968ff17c06e801, - limb2: 0x1b81e0c63123688b + limb2: 0x1b81e0c63123688b, }, r0a1: u288 { limb0: 0x3490cfd4f076c621dac4a12c, limb1: 0xec183578c91b90b72e5887b7, - limb2: 0x179fb354f608da00 + limb2: 0x179fb354f608da00, }, r1a0: u288 { limb0: 0x9322bde2044dde580a78ba33, limb1: 0xfc74821b668d3570cad38f8b, - limb2: 0x8cec54a291f5e57 + limb2: 0x8cec54a291f5e57, }, r1a1: u288 { limb0: 0xc2818b6a9530ee85d4b2ae49, limb1: 0x8d7b651ad167f2a43d7a2d0a, - limb2: 0x7c9ca9bab0ffc7f - } + limb2: 0x7c9ca9bab0ffc7f, + }, }, G2Line { r0a0: u288 { limb0: 0x5fd646ef2dbbf7900b22c4f9, limb1: 0xb570d4b312025ab6a457a604, - limb2: 0x15705c5227a054f9 + limb2: 0x15705c5227a054f9, }, r0a1: u288 { limb0: 0x250623965dd8aa6332d6b309, limb1: 0x983ac0634d10fad03a2b04e3, - limb2: 0x2066f7571a63d80b + limb2: 0x2066f7571a63d80b, }, r1a0: u288 { limb0: 0xa0a6c604d57330312d443bf4, limb1: 0x18e4218e5fe795fd18bbb5a3, - limb2: 0x230c3fe7c21093e4 + limb2: 0x230c3fe7c21093e4, }, r1a1: u288 { limb0: 0xa516edc5b6c21a7a3b76eb39, limb1: 0x33e9b3d9d3cb10e483760299, - limb2: 0x21691bae8377c5d3 - } + limb2: 0x21691bae8377c5d3, + }, }, G2Line { r0a0: u288 { limb0: 0xd0e45dcb44d7ac9f608ff467, limb1: 0xa5caf677a2dba4ef48ee021, - limb2: 0x2059a94678da4ba + limb2: 0x2059a94678da4ba, }, r0a1: u288 { limb0: 0xcc69cd267c7d0aa927d5a5ee, limb1: 0x284683ac1a2dc9daee692408, - limb2: 0x19f923f3b031dd2c + limb2: 0x19f923f3b031dd2c, }, r1a0: u288 { limb0: 0x52d42ec97ef4ee35e35e8afb, limb1: 0x42fa4e25346a269577c06677, - limb2: 0xfa902cc6767142e + limb2: 0xfa902cc6767142e, }, r1a1: u288 { limb0: 0x7d08d1a81f6af3a722eaca21, limb1: 0xaec250560f8a402fcdb429aa, - limb2: 0x1867fe2267bae5b6 - } + limb2: 0x1867fe2267bae5b6, + }, }, G2Line { r0a0: u288 { limb0: 0xa576408f8300de3a7714e6ae, limb1: 0xe1072c9a16f202ecf37fbc34, - limb2: 0x1b0cb1e2b5871263 + limb2: 0x1b0cb1e2b5871263, }, r0a1: u288 { limb0: 0x2128e2314694b663286e231e, limb1: 0x54bea71957426f002508f715, - limb2: 0x36ecc5dbe069dca + limb2: 0x36ecc5dbe069dca, }, r1a0: u288 { limb0: 0x17c77cd88f9d5870957850ce, limb1: 0xb7f4ec2bc270ce30538fe9b8, - limb2: 0x766279e588592bf + limb2: 0x766279e588592bf, }, r1a1: u288 { limb0: 0x1b6caddf18de2f30fa650122, limb1: 0x40b77237a29cada253c126c6, - limb2: 0x74ff1349b1866c8 - } + limb2: 0x74ff1349b1866c8, + }, }, G2Line { r0a0: u288 { limb0: 0xdfe2149e4c340f0f977818e, limb1: 0x4aa73da39507ab61393b0a8f, - limb2: 0x55afd3af80c6333 + limb2: 0x55afd3af80c6333, }, r0a1: u288 { limb0: 0xeb0ba65f392d7776bc4e594d, limb1: 0x79270f23defb3919d03163eb, - limb2: 0x1432e9c69f6597cd + limb2: 0x1432e9c69f6597cd, }, r1a0: u288 { limb0: 0x75e1c3546129fe4dfa15b4d1, limb1: 0xe2fede56842e4f6a87600bf2, - limb2: 0x1f5fceb2bd6baf44 + limb2: 0x1f5fceb2bd6baf44, }, r1a1: u288 { limb0: 0x1d016f0eb8fdd05e6d13013b, limb1: 0x84b16f8cbdf1fe877670baa9, - limb2: 0x2827768073a428fe - } + limb2: 0x2827768073a428fe, + }, }, G2Line { r0a0: u288 { limb0: 0x3603266e05560becab36faef, limb1: 0x8c3b88c9390278873dd4b048, - limb2: 0x24a715a5d9880f38 + limb2: 0x24a715a5d9880f38, }, r0a1: u288 { limb0: 0xe9f595b111cfd00d1dd28891, limb1: 0x75c6a392ab4a627f642303e1, - limb2: 0x17b34a30def82ab6 + limb2: 0x17b34a30def82ab6, }, r1a0: u288 { limb0: 0xe706de8f35ac8372669fc8d3, limb1: 0x16cc7f4032b3f3ebcecd997d, - limb2: 0x166eba592eb1fc78 + limb2: 0x166eba592eb1fc78, }, r1a1: u288 { limb0: 0x7d584f102b8e64dcbbd1be9, limb1: 0x2ead4092f009a9c0577f7d3, - limb2: 0x2fe2c31ee6b1d41e - } + limb2: 0x2fe2c31ee6b1d41e, + }, }, G2Line { r0a0: u288 { limb0: 0x72253d939632f8c28fb5763, limb1: 0x9b943ab13cad451aed1b08a2, - limb2: 0xdb9b2068e450f10 + limb2: 0xdb9b2068e450f10, }, r0a1: u288 { limb0: 0x80f025dcbce32f6449fa7719, limb1: 0x8a0791d4d1ed60b86e4fe813, - limb2: 0x1b1bd5dbce0ea966 + limb2: 0x1b1bd5dbce0ea966, }, r1a0: u288 { limb0: 0xaa72a31de7d815ae717165d4, limb1: 0x501c29c7b6aebc4a1b44407f, - limb2: 0x464aa89f8631b3a + limb2: 0x464aa89f8631b3a, }, r1a1: u288 { limb0: 0x6b8d137e1ea43cd4b1f616b1, limb1: 0xdd526a510cc84f150cc4d55a, - limb2: 0x1da2ed980ebd3f29 - } + limb2: 0x1da2ed980ebd3f29, + }, }, G2Line { r0a0: u288 { limb0: 0xf7550f29b2490e0f2a4e2c7f, limb1: 0x5da7008505dcd72e4af83d81, - limb2: 0xa635c82bc641341 + limb2: 0xa635c82bc641341, }, r0a1: u288 { limb0: 0xb4536bb43ce47f44107ecdae, limb1: 0x978283d291702bf7d638b1b2, - limb2: 0xbfb8f1b15e61cee + limb2: 0xbfb8f1b15e61cee, }, r1a0: u288 { limb0: 0x595ecaca9a66ba86e5ee25be, limb1: 0x7e4182944606a828e57d7d07, - limb2: 0x2069fe9edc3b22cf + limb2: 0x2069fe9edc3b22cf, }, r1a1: u288 { limb0: 0x798b743b9edabbb12e77e4d, limb1: 0x572ba71d9d2370e5cd0d86c9, - limb2: 0x2412d38ad51d6d9d - } + limb2: 0x2412d38ad51d6d9d, + }, }, G2Line { r0a0: u288 { limb0: 0x590a676d88841cb9954ee256, limb1: 0xbd64d85d808c1d1b6245a8f8, - limb2: 0x2214134d4b92a04e + limb2: 0x2214134d4b92a04e, }, r0a1: u288 { limb0: 0x8390497531c6174c7fef5c8d, limb1: 0xe89cdbcdaed094595402d9cd, - limb2: 0x3002adf5ee15c58d + limb2: 0x3002adf5ee15c58d, }, r1a0: u288 { limb0: 0xee4e55dfd0cbfb767d77958d, limb1: 0xfb99c38c54dde247e8c16ec3, - limb2: 0x25be0a00eeacced2 + limb2: 0x25be0a00eeacced2, }, r1a1: u288 { limb0: 0x3332c7176c86556812fd074e, limb1: 0x2df615b45b95ec14c9b6ca59, - limb2: 0x24ca6b711f0b9158 - } + limb2: 0x24ca6b711f0b9158, + }, }, G2Line { r0a0: u288 { limb0: 0x867cced8a010850958f41ff5, limb1: 0x6a37fdb2b8993eed18bafe8e, - limb2: 0x21b9f782109e5a7 + limb2: 0x21b9f782109e5a7, }, r0a1: u288 { limb0: 0x7307477d650618e66de38d0f, limb1: 0xacb622ce92a7e393dbe10ba1, - limb2: 0x236e70838cee0ed5 + limb2: 0x236e70838cee0ed5, }, r1a0: u288 { limb0: 0xb564a308aaf5dda0f4af0f0d, limb1: 0x55fc71e2f13d8cb12bd51e74, - limb2: 0x294cf115a234a9e9 + limb2: 0x294cf115a234a9e9, }, r1a1: u288 { limb0: 0xbd166057df55c135b87f35f3, limb1: 0xf9f29b6c50f1cce9b85ec9b, - limb2: 0x2e8448d167f20f96 - } + limb2: 0x2e8448d167f20f96, + }, }, G2Line { r0a0: u288 { limb0: 0xfc8b7ceec44c187218b0a628, limb1: 0xad8ab26e533851f6964cf080, - limb2: 0x141e03c350014d73 + limb2: 0x141e03c350014d73, }, r0a1: u288 { limb0: 0xa99377ed869aed282af105bd, limb1: 0x1e539a6a00a53a3a7116a5bb, - limb2: 0x1843fc93640235e5 + limb2: 0x1843fc93640235e5, }, r1a0: u288 { limb0: 0x4eaed4a7f79772e125537900, limb1: 0x99a9d1eb5ae07f5ffce34a0e, - limb2: 0x30509134887182b0 + limb2: 0x30509134887182b0, }, r1a1: u288 { limb0: 0x2afd0eba785d800601426d67, limb1: 0x2a95a13d8a163a4d9c942149, - limb2: 0x1744f70d096b1075 - } + limb2: 0x1744f70d096b1075, + }, }, G2Line { r0a0: u288 { limb0: 0xdedaff3205bb953b2c390b8a, limb1: 0xe1a899da21c1dafb485c707e, - limb2: 0x1ec897e7a041493e + limb2: 0x1ec897e7a041493e, }, r0a1: u288 { limb0: 0xf52c3c30cd4d3202b34089e0, limb1: 0xc652aa1ff533e1aad7532305, - limb2: 0x2a1df766e5e3aa2e + limb2: 0x2a1df766e5e3aa2e, }, r1a0: u288 { limb0: 0x7ac695d3e19d79b234daaf3d, limb1: 0x5ce2f92666aec92a650feee1, - limb2: 0x21ab4fe20d978e77 + limb2: 0x21ab4fe20d978e77, }, r1a1: u288 { limb0: 0xa64a913a29a1aed4e0798664, limb1: 0x66bc208b511503d127ff5ede, - limb2: 0x2389ba056de56a8d - } + limb2: 0x2389ba056de56a8d, + }, }, G2Line { r0a0: u288 { limb0: 0xbe894c9cefe9c46c519951de, limb1: 0x6a41efe6eec9e31520053d44, - limb2: 0xf4b593a835cf530 + limb2: 0xf4b593a835cf530, }, r0a1: u288 { limb0: 0xeb27d1c9157c9746c3575d80, limb1: 0xcc0bfd86a701af6652a47ff, - limb2: 0xf70ea9c35108131 + limb2: 0xf70ea9c35108131, }, r1a0: u288 { limb0: 0x86c07fbaa913e6826b293b91, limb1: 0xb18a5a5f195d0c8fcf4c9b96, - limb2: 0x21116cc6ff2a6341 + limb2: 0x21116cc6ff2a6341, }, r1a1: u288 { limb0: 0xa2edb14bb741154545792f12, limb1: 0x89644490effc10bc0b9c087, - limb2: 0x255559b492be7e42 - } + limb2: 0x255559b492be7e42, + }, }, G2Line { r0a0: u288 { limb0: 0xd88b16e68600a12e6c1f6006, limb1: 0x333243b43d3b7ff18d0cc671, - limb2: 0x2b84b2a9b0f03ed8 + limb2: 0x2b84b2a9b0f03ed8, }, r0a1: u288 { limb0: 0xf3e2b57ddaac822c4da09991, limb1: 0xd7c894b3fe515296bb054d2f, - limb2: 0x10a75e4c6dddb441 + limb2: 0x10a75e4c6dddb441, }, r1a0: u288 { limb0: 0x73c65fbbb06a7b21b865ac56, limb1: 0x21f4ecd1403bb78729c7e99b, - limb2: 0xaf88a160a6b35d4 + limb2: 0xaf88a160a6b35d4, }, r1a1: u288 { limb0: 0xade61ce10b8492d659ff68d0, limb1: 0x1476e76cf3a8e0df086ad9eb, - limb2: 0x2e28cfc65d61e946 - } + limb2: 0x2e28cfc65d61e946, + }, }, G2Line { r0a0: u288 { limb0: 0xdf8b54b244108008e7f93350, limb1: 0x2ae9a68b9d6b96f392decd6b, - limb2: 0x160b19eed152271c + limb2: 0x160b19eed152271c, }, r0a1: u288 { limb0: 0xc18a8994cfbb2e8df446e449, limb1: 0x408d51e7e4adedd8f4f94d06, - limb2: 0x27661b404fe90162 + limb2: 0x27661b404fe90162, }, r1a0: u288 { limb0: 0x1390b2a3b27f43f7ac73832c, limb1: 0x14d57301f6002fd328f2d64d, - limb2: 0x17f3fa337367dddc + limb2: 0x17f3fa337367dddc, }, r1a1: u288 { limb0: 0x79cab8ff5bf2f762c5372f80, limb1: 0xc979d6f385fae4b5e4785acf, - limb2: 0x60c5307a735b00f - } + limb2: 0x60c5307a735b00f, + }, }, G2Line { r0a0: u288 { limb0: 0x9c63cc02c784e055248c3eed, limb1: 0xfd16031abbbc57c520b3448c, - limb2: 0x123ce33363d29152 + limb2: 0x123ce33363d29152, }, r0a1: u288 { limb0: 0xfda091461a1cef9950d3d452, limb1: 0x637d5ff5a189c44f2f3be15c, - limb2: 0x1ce131a349febf1c + limb2: 0x1ce131a349febf1c, }, r1a0: u288 { limb0: 0x388902ae8f293fda6dd5e253, limb1: 0xd65a5c2dd9ba165e52942ce5, - limb2: 0x9b4d425a8b8716a + limb2: 0x9b4d425a8b8716a, }, r1a1: u288 { limb0: 0x32d6961e3fded32a7f74b3c3, limb1: 0x69e203465d4f4f5de03b6304, - limb2: 0x1ea4dd6337833093 - } + limb2: 0x1ea4dd6337833093, + }, }, G2Line { r0a0: u288 { limb0: 0x13e26ec64f90f19a9fc24a14, limb1: 0xb723427b23f8f37bc71be2c3, - limb2: 0x2011d52c72ddcb87 + limb2: 0x2011d52c72ddcb87, }, r0a1: u288 { limb0: 0xf2e7ebf099f1b3e5d8b28a20, limb1: 0x35b51b2f930d6b7f41ab3f1b, - limb2: 0x26f365ce86167188 + limb2: 0x26f365ce86167188, }, r1a0: u288 { limb0: 0x10e32b59b52b0906b96d83df, limb1: 0xefbd70cad041c74a3ef1bda0, - limb2: 0x2589877cff897640 + limb2: 0x2589877cff897640, }, r1a1: u288 { limb0: 0x8df3430f6a567e745f702992, limb1: 0xfc341d1eaf0c10eec340bf9b, - limb2: 0x1e4c94f61793bb7b - } + limb2: 0x1e4c94f61793bb7b, + }, }, G2Line { r0a0: u288 { limb0: 0x386d7b23c6dccb87637018c9, limb1: 0xfed2ea478e9a2210289079e2, - limb2: 0x100aa83cb843353e + limb2: 0x100aa83cb843353e, }, r0a1: u288 { limb0: 0x229c5c285f049d04c3dc5ce7, limb1: 0x28110670fe1d38c53ffcc6f7, - limb2: 0x1778918279578f50 + limb2: 0x1778918279578f50, }, r1a0: u288 { limb0: 0xe9ad2c7b8a17a1f1627ff09d, limb1: 0xedff5563c3c3e7d2dcc402ec, - limb2: 0xa8bd6770b6d5aa8 + limb2: 0xa8bd6770b6d5aa8, }, r1a1: u288 { limb0: 0x66c5c1aeed5c04470b4e8a3d, limb1: 0x846e73d11f2d18fe7e1e1aa2, - limb2: 0x10a60eabe0ec3d78 - } + limb2: 0x10a60eabe0ec3d78, + }, }, G2Line { r0a0: u288 { limb0: 0x675cc9c385f8658ad4f95b8f, limb1: 0x46072c9276ee065cea42b3bf, - limb2: 0xbd1d099998eaab5 + limb2: 0xbd1d099998eaab5, }, r0a1: u288 { limb0: 0xb5a009ebdae77421ca09efdd, limb1: 0x247d947b95fe2e8593afcfb8, - limb2: 0x1169983817087c53 + limb2: 0x1169983817087c53, }, r1a0: u288 { limb0: 0xafecdb2936ac4202959a366d, limb1: 0xa952b225eacf34300e3b2c11, - limb2: 0x2d3452e5608ee9db + limb2: 0x2d3452e5608ee9db, }, r1a1: u288 { limb0: 0x86acf5efc205740641f2f711, limb1: 0x23725a6d2ce73462f6496ae3, - limb2: 0x2d2908ce56b326cd - } + limb2: 0x2d2908ce56b326cd, + }, }, G2Line { r0a0: u288 { limb0: 0x88ca191d85be1f6c205257ef, limb1: 0xd0cecf5c5f80926c77fd4870, - limb2: 0x16ec42b5cae83200 + limb2: 0x16ec42b5cae83200, }, r0a1: u288 { limb0: 0x154cba82460752b94916186d, limb1: 0x564f6bebac05a4f3fb1353ac, - limb2: 0x2d47a47da836d1a7 + limb2: 0x2d47a47da836d1a7, }, r1a0: u288 { limb0: 0xb39c4d6150bd64b4674f42ba, limb1: 0x93c967a38fe86f0779bf4163, - limb2: 0x1a51995a49d50f26 + limb2: 0x1a51995a49d50f26, }, r1a1: u288 { limb0: 0xeb7bdec4b7e304bbb0450608, limb1: 0x11fc9a124b8c74b3d5560ea4, - limb2: 0xbfa9bd7f55ad8ac - } + limb2: 0xbfa9bd7f55ad8ac, + }, }, G2Line { r0a0: u288 { limb0: 0x8ac4b290d5156e3e7fa4eb6c, limb1: 0x8d74a3b09d5503f6542b071a, - limb2: 0x1c7c5837e2e98023 + limb2: 0x1c7c5837e2e98023, }, r0a1: u288 { limb0: 0xf62d5c02d7029d7049a05e29, limb1: 0xceeca19b95c93209d1eddf4c, - limb2: 0x289ba7fe4810af60 + limb2: 0x289ba7fe4810af60, }, r1a0: u288 { limb0: 0xa1ff7e417257a17c65e1a90d, limb1: 0x2ba9075ef59406b3a2499cd7, - limb2: 0x19c14ffdfa679063 + limb2: 0x19c14ffdfa679063, }, r1a1: u288 { limb0: 0xc4002e7f1c1427dd90e32241, limb1: 0xf0c32e9566ed7b68d43b5f1c, - limb2: 0x10ed8a335bc8ef5e - } + limb2: 0x10ed8a335bc8ef5e, + }, }, G2Line { r0a0: u288 { limb0: 0x2fdc574c85cf0c0ce5e07a51, limb1: 0xd2439bf7b00bddc4cfb01b0c, - limb2: 0x125c3bbdeb0bd2da + limb2: 0x125c3bbdeb0bd2da, }, r0a1: u288 { limb0: 0x9d664714bae53cafcb5ef55d, limb1: 0x495c01724790853548f5e4de, - limb2: 0x2ce5e2e263725941 + limb2: 0x2ce5e2e263725941, }, r1a0: u288 { limb0: 0x98071eb7fe88c9124aee3774, limb1: 0xc3f66947a52bd2f6d520579f, - limb2: 0x2eaf775dbd52f7d3 + limb2: 0x2eaf775dbd52f7d3, }, r1a1: u288 { limb0: 0x23e5594948e21db2061dca92, limb1: 0xd0ffa6f6c77290531c185431, - limb2: 0x604c085de03afb1 - } + limb2: 0x604c085de03afb1, + }, }, G2Line { r0a0: u288 { limb0: 0x4983b91e0e5edcba05059d54, limb1: 0x5f3145341793c07682b08603, - limb2: 0x108ceb28246075ac + limb2: 0x108ceb28246075ac, }, r0a1: u288 { limb0: 0xca59dfe54f67accbd8399b9e, limb1: 0xef2c5096cdbac06f799c31b9, - limb2: 0x7d170f63d0bc9f5 + limb2: 0x7d170f63d0bc9f5, }, r1a0: u288 { limb0: 0x74e9b29b0793f5101b19e7db, limb1: 0xd34343845d2d6a013ffe76b0, - limb2: 0x2119d53a2fbaebff + limb2: 0x2119d53a2fbaebff, }, r1a1: u288 { limb0: 0x904bb445baeac56041fc9a41, limb1: 0xc300a959bcbab62e415c9599, - limb2: 0x188e914b6ea3a25e - } + limb2: 0x188e914b6ea3a25e, + }, }, G2Line { r0a0: u288 { limb0: 0xeec2912e15f6bda39d4e005e, limb1: 0x2b8610c44d27bdbc6ba2aac5, - limb2: 0x78ddc4573fc1fed + limb2: 0x78ddc4573fc1fed, }, r0a1: u288 { limb0: 0x48099a0da11ea21de015229d, limb1: 0x5fe937100967d5cc544f4af1, - limb2: 0x2c9ffe6d7d7e9631 + limb2: 0x2c9ffe6d7d7e9631, }, r1a0: u288 { limb0: 0xa70d251296ef1ae37ceb7d03, limb1: 0x2adadcb7d219bb1580e6e9c, - limb2: 0x180481a57f22fd03 + limb2: 0x180481a57f22fd03, }, r1a1: u288 { limb0: 0xacf46db9631037dd933eb72a, limb1: 0x8a58491815c7656292a77d29, - limb2: 0x261e3516c348ae12 - } + limb2: 0x261e3516c348ae12, + }, }, G2Line { r0a0: u288 { limb0: 0x8629cdd5e145fde3568fd43, limb1: 0x400c419a21cc9444e939cf6b, - limb2: 0x2595c12cfa11df93 + limb2: 0x2595c12cfa11df93, }, r0a1: u288 { limb0: 0x7912da4ae785a0a99325a792, limb1: 0x113296d83e3a33cc4d0e2171, - limb2: 0x18916b0e597ec399 + limb2: 0x18916b0e597ec399, }, r1a0: u288 { limb0: 0xd9d365d20926cd19d741fac, limb1: 0xfb8e91f161e3e857edf0f5f1, - limb2: 0x2aa07a692a41ed18 + limb2: 0x2aa07a692a41ed18, }, r1a1: u288 { limb0: 0xf40d0720adcc24c769e341a5, limb1: 0xb97e4af1a0dc0cb5e1ef38ef, - limb2: 0x53c33301c8fed90 - } + limb2: 0x53c33301c8fed90, + }, }, G2Line { r0a0: u288 { limb0: 0x2bfa32f0a09c3e2cfb8f6a38, limb1: 0x7a24df3ff3c7119a59d49318, - limb2: 0x10e42281d64907ba + limb2: 0x10e42281d64907ba, }, r0a1: u288 { limb0: 0xce42177a66cdeb4207d11e0c, limb1: 0x3322aa425a9ca270152372ad, - limb2: 0x2f7fa83db407600c + limb2: 0x2f7fa83db407600c, }, r1a0: u288 { limb0: 0x62a8ff94fd1c7b9035af4446, limb1: 0x3ad500601bbb6e7ed1301377, - limb2: 0x254d253ca06928f + limb2: 0x254d253ca06928f, }, r1a1: u288 { limb0: 0xf8f1787cd8e730c904b4386d, limb1: 0x7fd3744349918d62c42d24cc, - limb2: 0x28a05e105d652eb8 - } + limb2: 0x28a05e105d652eb8, + }, }, G2Line { r0a0: u288 { limb0: 0x6ef31e059d602897fa8e80a8, limb1: 0x66a0710847b6609ceda5140, - limb2: 0x228c0e568f1eb9c0 + limb2: 0x228c0e568f1eb9c0, }, r0a1: u288 { limb0: 0x7b47b1b133c1297b45cdd79b, limb1: 0x6b4f04ed71b58dafd06b527b, - limb2: 0x13ae6db5254df01a + limb2: 0x13ae6db5254df01a, }, r1a0: u288 { limb0: 0xbeca2fccf7d0754dcf23ddda, limb1: 0xe3d0bcd7d9496d1e5afb0a59, - limb2: 0x305a0afb142cf442 + limb2: 0x305a0afb142cf442, }, r1a1: u288 { limb0: 0x2d299847431477c899560ecf, limb1: 0xbcd9e6c30bedee116b043d8d, - limb2: 0x79473a2a7438353 - } + limb2: 0x79473a2a7438353, + }, }, G2Line { r0a0: u288 { limb0: 0x4bf333418ae65a79be01b42c, limb1: 0x7b21ed1382c0c50e2ff44e84, - limb2: 0x826d5429701ad4f + limb2: 0x826d5429701ad4f, }, r0a1: u288 { limb0: 0x659ec0ccc8a54d15f40741a5, limb1: 0xdef9f8893fcdc429f575ff81, - limb2: 0x2521f3f6a385ce88 + limb2: 0x2521f3f6a385ce88, }, r1a0: u288 { limb0: 0xe2475c786cf18c448c10cfba, limb1: 0xf6fd377e663cd8f70113485e, - limb2: 0x2f866df9d71d1203 + limb2: 0x2f866df9d71d1203, }, r1a1: u288 { limb0: 0x6e6154e7fb702e585b725874, limb1: 0x3dd6afe8713ee4a89150e941, - limb2: 0x1ad82561f12faf96 - } + limb2: 0x1ad82561f12faf96, + }, }, G2Line { r0a0: u288 { limb0: 0xa2ae1484e410f15d4c865c6f, limb1: 0x38c03955a4b41b98ec168058, - limb2: 0x2c11dc796ade582e + limb2: 0x2c11dc796ade582e, }, r0a1: u288 { limb0: 0x9f01d36070072f1f68f59e40, limb1: 0x7d698d2f45990590d450e964, - limb2: 0x18f20c083a7436da + limb2: 0x18f20c083a7436da, }, r1a0: u288 { limb0: 0x8e7784ed907dbd25195d7da1, limb1: 0x4e659132fef2b2a014a8658, - limb2: 0x191000817c8dfb33 + limb2: 0x191000817c8dfb33, }, r1a1: u288 { limb0: 0xb1973c468f164953864b0c33, limb1: 0x1382dbba13d9a77b7fb2fba1, - limb2: 0x1935eee5346c0bf - } + limb2: 0x1935eee5346c0bf, + }, }, G2Line { r0a0: u288 { limb0: 0x65b71fe695e7ccd4b460dace, limb1: 0xa6ceba62ef334e6fe91301d5, - limb2: 0x299f578d0f3554e6 + limb2: 0x299f578d0f3554e6, }, r0a1: u288 { limb0: 0xaf781dd030a274e7ecf0cfa4, limb1: 0x2095020d373a14d7967797aa, - limb2: 0x6a7f9df6f185bf8 + limb2: 0x6a7f9df6f185bf8, }, r1a0: u288 { limb0: 0x8e91e2dba67d130a0b274df3, limb1: 0xe192a19fce285c12c6770089, - limb2: 0x6e9acf4205c2e22 + limb2: 0x6e9acf4205c2e22, }, r1a1: u288 { limb0: 0xbcd5c206b5f9c77d667189bf, limb1: 0x656a7e2ebc78255d5242ca9, - limb2: 0x25f43fec41d2b245 - } + limb2: 0x25f43fec41d2b245, + }, }, G2Line { r0a0: u288 { limb0: 0x16a01fe226cb906356469222, limb1: 0x4277d50794500ca8a6d93550, - limb2: 0x2cc16a055b005e1c + limb2: 0x2cc16a055b005e1c, }, r0a1: u288 { limb0: 0xf08176a2a762310c7f5a0d79, limb1: 0xe8ff955f36e956afcc65b18d, - limb2: 0x104c3fa43e0144ca + limb2: 0x104c3fa43e0144ca, }, r1a0: u288 { limb0: 0x83d1006aac3dc6164c2f5349, limb1: 0x8b6949205e118d87a41bd72, - limb2: 0x1c8bfbcb7a77e435 + limb2: 0x1c8bfbcb7a77e435, }, r1a1: u288 { limb0: 0xbaabbd1ebf18244d71fe44d, limb1: 0x84d1ad747d88667827607b5d, - limb2: 0x2987105c580454ce - } + limb2: 0x2987105c580454ce, + }, }, G2Line { r0a0: u288 { limb0: 0x4e56e6733cce20d9c5b16d96, limb1: 0xc7ef260535fb75b9d3e089f, - limb2: 0x292dd4aa636e7729 + limb2: 0x292dd4aa636e7729, }, r0a1: u288 { limb0: 0x6e7e1038b336f36519c9faaf, limb1: 0x3c66bd609510309485e225c7, - limb2: 0x10cacac137411eb + limb2: 0x10cacac137411eb, }, r1a0: u288 { limb0: 0x4a3e8b96278ac092fe4f3b15, limb1: 0xba47e583e2750b42f93c9631, - limb2: 0x125da6bd69495bb9 + limb2: 0x125da6bd69495bb9, }, r1a1: u288 { limb0: 0xae7a56ab4b959a5f6060d529, limb1: 0xc3c263bfd58c0030c063a48e, - limb2: 0x2f4d15f13fae788c - } + limb2: 0x2f4d15f13fae788c, + }, }, G2Line { r0a0: u288 { limb0: 0x301e0885c84d273b6d323124, limb1: 0x11fd5c75e269f7a30fa4154f, - limb2: 0x19afdcfdcce2fc0d + limb2: 0x19afdcfdcce2fc0d, }, r0a1: u288 { limb0: 0x3d13519f934526be815c38b0, limb1: 0xd43735909547da73838874fc, - limb2: 0x255d8aca30f4e0f6 + limb2: 0x255d8aca30f4e0f6, }, r1a0: u288 { limb0: 0x90a505b76f25a3396e2cea79, limb1: 0x3957a2d0848c54b9079fc114, - limb2: 0x1ba0cd3a9fe6d4bb + limb2: 0x1ba0cd3a9fe6d4bb, }, r1a1: u288 { limb0: 0xc47930fba77a46ebb1db30a9, limb1: 0x993a1cb166e9d40bebab02b2, - limb2: 0x1deb16166d48118b - } + limb2: 0x1deb16166d48118b, + }, }, G2Line { r0a0: u288 { limb0: 0x85d75bc97d6ce75681261b3, limb1: 0x2fec226ae2f731465e5d00d8, - limb2: 0x28981b581f2938b5 + limb2: 0x28981b581f2938b5, }, r0a1: u288 { limb0: 0xff0800b8ac67a7469eaf7059, limb1: 0x6bca9de9f4b635539aece92e, - limb2: 0x9faf1bbdd82d5d9 + limb2: 0x9faf1bbdd82d5d9, }, r1a0: u288 { limb0: 0x6a2f4abab426bb0010eeb544, limb1: 0xa661d1118e1148d0282bb0b, - limb2: 0xea1783c4b4d0286 + limb2: 0xea1783c4b4d0286, }, r1a1: u288 { limb0: 0xea7b56e271cab7e34832f740, limb1: 0x837870da6880f80599bd20d8, - limb2: 0x1a71c24986082f98 - } + limb2: 0x1a71c24986082f98, + }, }, G2Line { r0a0: u288 { limb0: 0x3ad19b6290bbdc1dcb374f45, limb1: 0x5b3cbe16738e22f510bf853, - limb2: 0x75dc530769d3659 + limb2: 0x75dc530769d3659, }, r0a1: u288 { limb0: 0xe13917b29527fdef53c1f4f0, limb1: 0x379f0d852369306386826c17, - limb2: 0x1a9ceb06ec2e4ea0 + limb2: 0x1a9ceb06ec2e4ea0, }, r1a0: u288 { limb0: 0xb2f002fa616d4a7b93abfb51, limb1: 0xa37249159878c2ef9759fe0f, - limb2: 0x25f0b5adc278194f + limb2: 0x25f0b5adc278194f, }, r1a1: u288 { limb0: 0xb80c5c2e9ddecdb709e24e8, limb1: 0x8b7a18df0908d921c5ef7660, - limb2: 0x25d48dad31745ad8 - } + limb2: 0x25d48dad31745ad8, + }, }, G2Line { r0a0: u288 { limb0: 0xb15bbaec50ff49d30e49f74a, limb1: 0xc90a8c79fb045c5468f14151, - limb2: 0x25e47927e92df0e3 + limb2: 0x25e47927e92df0e3, }, r0a1: u288 { limb0: 0x57f66909d5d40dfb8c7b4d5c, limb1: 0xea5265282e2139c48c1953f2, - limb2: 0x2d7f5e6aff2381f6 + limb2: 0x2d7f5e6aff2381f6, }, r1a0: u288 { limb0: 0x2a2f573b189a3c8832231394, limb1: 0x738abc15844895ffd4733587, - limb2: 0x20aa11739c4b9bb4 + limb2: 0x20aa11739c4b9bb4, }, r1a1: u288 { limb0: 0x51695ec614f1ff4cce2f65d1, limb1: 0x6765aae6cb895a2406a6dd7e, - limb2: 0x1126ee431c522da0 - } + limb2: 0x1126ee431c522da0, + }, }, G2Line { r0a0: u288 { limb0: 0xdea6e74d7541442273a4472d, limb1: 0xb3334895c3208e142ac30e24, - limb2: 0x2b0fcbe08687c750 + limb2: 0x2b0fcbe08687c750, }, r0a1: u288 { limb0: 0x3957f9dc02bb02c18ac723bd, limb1: 0x586e97ed1f709b3712f554d6, - limb2: 0x84f6ca831418acf + limb2: 0x84f6ca831418acf, }, r1a0: u288 { limb0: 0x62ba0827259d2266495c096f, limb1: 0xbea933ce9db90f69205e1b2f, - limb2: 0x283c87d1f0ab6104 + limb2: 0x283c87d1f0ab6104, }, r1a1: u288 { limb0: 0xc4e6d8a17b596384257bdaa2, limb1: 0x8d079c21e392ac8e92047ee8, - limb2: 0x30478961a7077b85 - } + limb2: 0x30478961a7077b85, + }, }, G2Line { r0a0: u288 { limb0: 0x9214fc3209f1518b05fd21c6, limb1: 0x9bc8ce4f56423009710770e8, - limb2: 0x32445cc6972799c + limb2: 0x32445cc6972799c, }, r0a1: u288 { limb0: 0x93ef401ecd9cfae3644d22e6, limb1: 0xce5a741a9847a144cfaf8c96, - limb2: 0xf7a814d5726da4a + limb2: 0xf7a814d5726da4a, }, r1a0: u288 { limb0: 0xd19264d986f163b133a91c0c, limb1: 0x529dc5ce4b193c0f672c6a32, - limb2: 0x2e9a118959353374 + limb2: 0x2e9a118959353374, }, r1a1: u288 { limb0: 0x3d97d6e8f45072cc9e85e412, limb1: 0x4dafecb04c3bb23c374f0486, - limb2: 0xa174dd4ac8ee628 - } + limb2: 0xa174dd4ac8ee628, + }, }, G2Line { r0a0: u288 { limb0: 0x5db1ec127cfbf594acb0d677, limb1: 0x70e07fb9d781d02bdc15179d, - limb2: 0x1aaa890030a85a3b + limb2: 0x1aaa890030a85a3b, }, r0a1: u288 { limb0: 0x4226bf211011503eb035974d, limb1: 0x7514439dfc133ee1243ebf61, - limb2: 0x1f2d401912f7031 + limb2: 0x1f2d401912f7031, }, r1a0: u288 { limb0: 0x23dff8cf641642f05e6b24bf, limb1: 0x4c4a46758c95697b75a19661, - limb2: 0x3a93b0d88f96961 + limb2: 0x3a93b0d88f96961, }, r1a1: u288 { limb0: 0x491f63f36d8623ebb5a8b06c, limb1: 0x888445ac9aacda055152af5d, - limb2: 0x264f06d6ffd0a23f - } + limb2: 0x264f06d6ffd0a23f, + }, }, G2Line { r0a0: u288 { limb0: 0x98d8b0c4adcf27bceb305c2c, limb1: 0x859afa9c7668ed6152d8cba3, - limb2: 0x29e7694f46e3a272 + limb2: 0x29e7694f46e3a272, }, r0a1: u288 { limb0: 0x1d970845365594307ba97556, limb1: 0xd002d93ad793e154afe5b49b, - limb2: 0x12ca77d3fb8eee63 + limb2: 0x12ca77d3fb8eee63, }, r1a0: u288 { limb0: 0x9f2934faefb8268e20d0e337, limb1: 0xbc4b5e1ec056881319f08766, - limb2: 0x2e103461759a9ee4 + limb2: 0x2e103461759a9ee4, }, r1a1: u288 { limb0: 0x7adc6cb87d6b43000e2466b6, limb1: 0x65e5cefa42b25a7ee8925fa6, - limb2: 0x2560115898d7362a - } + limb2: 0x2560115898d7362a, + }, }, G2Line { r0a0: u288 { limb0: 0xf84b2de12d9e988b4d350c4f, limb1: 0x3588bddeca93ec6153032d9f, - limb2: 0x136d6e97720234 + limb2: 0x136d6e97720234, }, r0a1: u288 { limb0: 0x33d4fe3de71e57161d0ced84, limb1: 0xa313e00e4b35a0cfbaf78b9e, - limb2: 0x2b15c2ef1e5b52bb + limb2: 0x2b15c2ef1e5b52bb, }, r1a0: u288 { limb0: 0xd5b6ed885e00cc8a89a25ad3, limb1: 0x330b2ac992f206b8a3888a1f, - limb2: 0x2901d74097b5d222 + limb2: 0x2901d74097b5d222, }, r1a1: u288 { limb0: 0x841242f062bc3c4c64658ef5, limb1: 0x1ca54f523273c11520333ceb, - limb2: 0xbb657e4adcfaec1 - } + limb2: 0xbb657e4adcfaec1, + }, }, G2Line { r0a0: u288 { limb0: 0x64d864643668392c0e357cc4, limb1: 0x4c9bf66853f1b287015ab84c, - limb2: 0x2f5f1b92ad7ee4d4 + limb2: 0x2f5f1b92ad7ee4d4, }, r0a1: u288 { limb0: 0xdc33c8da5c575eef6987a0e1, limb1: 0x51cc07c7ef28e1b8d934bc32, - limb2: 0x2358d94a17ec2a44 + limb2: 0x2358d94a17ec2a44, }, r1a0: u288 { limb0: 0xf659845b829bbba363a2497b, limb1: 0x440f348e4e7bed1fb1eb47b2, - limb2: 0x1ad0eaab0fb0bdab + limb2: 0x1ad0eaab0fb0bdab, }, r1a1: u288 { limb0: 0x1944bb6901a1af6ea9afa6fc, limb1: 0x132319df135dedddf5baae67, - limb2: 0x52598294643a4aa - } + limb2: 0x52598294643a4aa, + }, }, G2Line { r0a0: u288 { limb0: 0x76fd94c5e6f17fa6741bd7de, limb1: 0xc2e0831024f67d21013e0bdd, - limb2: 0x21e2af6a43119665 + limb2: 0x21e2af6a43119665, }, r0a1: u288 { limb0: 0xad290eab38c64c0d8b13879b, limb1: 0xdd67f881be32b09d9a6c76a0, - limb2: 0x8000712ce0392f2 + limb2: 0x8000712ce0392f2, }, r1a0: u288 { limb0: 0xd30a46f4ba2dee3c7ace0a37, limb1: 0x3914314f4ec56ff61e2c29e, - limb2: 0x22ae1ba6cd84d822 + limb2: 0x22ae1ba6cd84d822, }, r1a1: u288 { limb0: 0x5d888a78f6dfce9e7544f142, limb1: 0x9439156de974d3fb6d6bda6e, - limb2: 0x106c8f9a27d41a4f - } + limb2: 0x106c8f9a27d41a4f, + }, }, G2Line { r0a0: u288 { limb0: 0x56a94c2fcadf8b52b57b8f16, limb1: 0x80d337d9ea7500c2e01eaae7, - limb2: 0x1d6437b87b74fef6 + limb2: 0x1d6437b87b74fef6, }, r0a1: u288 { limb0: 0x96b387e99073b5baa97385b8, limb1: 0x7f6930e3a08e255019cbc377, - limb2: 0x117e2a946aaec899 + limb2: 0x117e2a946aaec899, }, r1a0: u288 { limb0: 0x69f533dfd8f123baa11e736f, limb1: 0xe83cb98efc4de9eefca878ca, - limb2: 0x448df583ab25788 + limb2: 0x448df583ab25788, }, r1a1: u288 { limb0: 0x987e50cc7863442bca3ce7c7, limb1: 0xdef540ff995f9f94d1ae5032, - limb2: 0x4701d89fe1b1f2d - } + limb2: 0x4701d89fe1b1f2d, + }, }, G2Line { r0a0: u288 { limb0: 0x3f3c2f2df60d0e302fe746ac, limb1: 0xe174a6c9c3a94ee55f704207, - limb2: 0x48d2ba2cb93eec + limb2: 0x48d2ba2cb93eec, }, r0a1: u288 { limb0: 0xcc882073b44068d32f2f81fa, limb1: 0x8e1bd5b442ef660b7e32e2c3, - limb2: 0x1e10b37996fa5061 + limb2: 0x1e10b37996fa5061, }, r1a0: u288 { limb0: 0x40caa7ce29ce7fbe398494e2, limb1: 0x5170335f58724675cf628614, - limb2: 0x1640a6bf828d2dfc + limb2: 0x1640a6bf828d2dfc, }, r1a1: u288 { limb0: 0xb4df27375cabcfb846fda30a, limb1: 0x95396691a8861f2fdd10f5cd, - limb2: 0x18d60a694ad55b7a - } + limb2: 0x18d60a694ad55b7a, + }, }, G2Line { r0a0: u288 { limb0: 0x92c09e4796207b802168341b, limb1: 0xd2d9d6acffd7829066cc49ce, - limb2: 0xc89c2d0a7b2c81e + limb2: 0xc89c2d0a7b2c81e, }, r0a1: u288 { limb0: 0x47e3c1cf6cdb6f3efe778c7f, limb1: 0x66b347099b6436794cf062eb, - limb2: 0x18b4ccc64ae0a857 + limb2: 0x18b4ccc64ae0a857, }, r1a0: u288 { limb0: 0x7d5793606a73b2740c71484a, limb1: 0xa0070135ca2dc571b28e3c9c, - limb2: 0x1bc03576e04b94cf + limb2: 0x1bc03576e04b94cf, }, r1a1: u288 { limb0: 0x1ba85b29875e638c10f16c99, limb1: 0x158f2f2acc3c2300bb9f9225, - limb2: 0x42d8a8c36ea97c6 - } + limb2: 0x42d8a8c36ea97c6, + }, }, G2Line { r0a0: u288 { limb0: 0xec4681e764cfbf7c538af2a, limb1: 0x4565ebc52b5d8a85adf19252, - limb2: 0x44752fa5fffc699 + limb2: 0x44752fa5fffc699, }, r0a1: u288 { limb0: 0x2495ee358b1d2f7cb852e0df, limb1: 0x7e8e47f572051e45b148fabc, - limb2: 0x1d2a5085edd69eec + limb2: 0x1d2a5085edd69eec, }, r1a0: u288 { limb0: 0xcce126e911fe5179a3065fd0, limb1: 0x89eb158a703c3fb083d6ab63, - limb2: 0xae09fb55487cf84 + limb2: 0xae09fb55487cf84, }, r1a1: u288 { limb0: 0xfc6ecc9bb6ab90610c6aa279, limb1: 0x2ec9dc3ab4fc89ec3d07455f, - limb2: 0x2ce2a7db016dd063 - } + limb2: 0x2ce2a7db016dd063, + }, }, G2Line { r0a0: u288 { limb0: 0x9440ad13408319cecb07087b, limb1: 0x537afc0c0cfe8ff761c24e08, - limb2: 0x48e4ac10081048d + limb2: 0x48e4ac10081048d, }, r0a1: u288 { limb0: 0xa37fb82b03a2c0bb2aa50c4f, limb1: 0xd3797f05c8fb84f6b630dfb, - limb2: 0x2dffde2d6c7e43ff + limb2: 0x2dffde2d6c7e43ff, }, r1a0: u288 { limb0: 0xc55d2eb1ea953275e780e65b, limb1: 0xe141cf680cab57483c02e4c7, - limb2: 0x1b71395ce5ce20ae + limb2: 0x1b71395ce5ce20ae, }, r1a1: u288 { limb0: 0xe4fab521f1212a1d301065de, limb1: 0x4f8d31c78df3dbe4ab721ef2, - limb2: 0x2828f21554706a0e - } + limb2: 0x2828f21554706a0e, + }, }, G2Line { r0a0: u288 { limb0: 0x8cefc2f2af2a3082b790784e, limb1: 0x97ac13b37c6fbfc736a3d456, - limb2: 0x683b1cdffd60acd + limb2: 0x683b1cdffd60acd, }, r0a1: u288 { limb0: 0xa266a8188a8c933dcffe2d02, limb1: 0x18d3934c1838d7bce81b2eeb, - limb2: 0x206ac5cdda42377 + limb2: 0x206ac5cdda42377, }, r1a0: u288 { limb0: 0x90332652437f6e177dc3b28c, limb1: 0x75bd8199433d607735414ee8, - limb2: 0x29d6842d8298cf7e + limb2: 0x29d6842d8298cf7e, }, r1a1: u288 { limb0: 0xadedf46d8ea11932db0018e1, limb1: 0xbc7239ae9d1453258037befb, - limb2: 0x22e7ebdd72c6f7a1 - } + limb2: 0x22e7ebdd72c6f7a1, + }, }, G2Line { r0a0: u288 { limb0: 0xc91d19e8cd7e4fdc6f2ae8f2, limb1: 0xcbf567879da5ca68ae340836, - limb2: 0x68d72bbf2d7a0c4 + limb2: 0x68d72bbf2d7a0c4, }, r0a1: u288 { limb0: 0x66b6b80f1f9f8466d38016f3, limb1: 0x58d023bc4c07e5afb96e55ba, - limb2: 0xd4b76c1f3e9020a + limb2: 0xd4b76c1f3e9020a, }, r1a0: u288 { limb0: 0x7206444d57fa4b28cba07bd2, limb1: 0x2e3dde1511954bf0289531a8, - limb2: 0x19556e38e7487eff + limb2: 0x19556e38e7487eff, }, r1a1: u288 { limb0: 0x78784fe92d67b4363ebba156, limb1: 0xa325432ea8c347a555dafae8, - limb2: 0xd956a5c41160f33 - } + limb2: 0xd956a5c41160f33, + }, }, G2Line { r0a0: u288 { limb0: 0x415ddcddbf4b35a40861ba44, limb1: 0x937c973a9afa8c8a22f6b860, - limb2: 0x1ca76ac0498591da + limb2: 0x1ca76ac0498591da, }, r0a1: u288 { limb0: 0xbcd94af7ee9c9c97c101a809, limb1: 0x9742c5dad21578a02495abdc, - limb2: 0x2ae764c7a4fd325a + limb2: 0x2ae764c7a4fd325a, }, r1a0: u288 { limb0: 0xbb401a5b76780512474a588c, limb1: 0xf1438ea37e57137ce6b956bc, - limb2: 0xa7a831e9e824aa2 + limb2: 0xa7a831e9e824aa2, }, r1a1: u288 { limb0: 0x958c06ec31ff5fe5bbc5289b, limb1: 0x73d96c6c37c1ec4fd0edd7e4, - limb2: 0x1456a4a521213afc - } + limb2: 0x1456a4a521213afc, + }, }, G2Line { r0a0: u288 { limb0: 0x348e15357d9299e582033136, limb1: 0x53578c46b15abb39da35a56e, - limb2: 0x1043b711f86bb33f + limb2: 0x1043b711f86bb33f, }, r0a1: u288 { limb0: 0x9fa230a629b75217f0518e7c, limb1: 0x77012a4bb8751322a406024d, - limb2: 0x121e2d845d972695 + limb2: 0x121e2d845d972695, }, r1a0: u288 { limb0: 0x5600f2d51f21d9dfac35eb10, limb1: 0x6fde61f876fb76611fb86c1a, - limb2: 0x2bf4fbaf5bd0d0df + limb2: 0x2bf4fbaf5bd0d0df, }, r1a1: u288 { limb0: 0xd732aa0b6161aaffdae95324, limb1: 0xb3c4f8c3770402d245692464, - limb2: 0x2a0f1740a293e6f0 - } + limb2: 0x2a0f1740a293e6f0, + }, }, G2Line { r0a0: u288 { limb0: 0x89a2e58c2cb8dcd6a3b6565, limb1: 0x3bd4d0baf1f4a145223a5392, - limb2: 0x1e7f97dea0eda0ac + limb2: 0x1e7f97dea0eda0ac, }, r0a1: u288 { limb0: 0xabd7d7c71e35e233c23def95, limb1: 0x1366e53cff57cb47898bd655, - limb2: 0x26d9ff9260bdff42 + limb2: 0x26d9ff9260bdff42, }, r1a0: u288 { limb0: 0x5d0a41a37eff48760e049506, limb1: 0xbca1a785a1639bafcdd56bc3, - limb2: 0x1137a7fb31d90907 + limb2: 0x1137a7fb31d90907, }, r1a1: u288 { limb0: 0xcf403ab36cd112c5e8039a5b, limb1: 0x2a71e15f5920519f6a592f3a, - limb2: 0x2eb83824faf1b67c - } + limb2: 0x2eb83824faf1b67c, + }, }, G2Line { r0a0: u288 { limb0: 0xa9e2efa41aaa98ab59728940, limb1: 0x163c0425f66ce72daef2f53e, - limb2: 0x2feaf1b1770aa7d8 + limb2: 0x2feaf1b1770aa7d8, }, r0a1: u288 { limb0: 0x3bb7afd3c0a79b6ac2c4c063, limb1: 0xee5cb42e8b2bc999e312e032, - limb2: 0x1af2071ae77151c3 + limb2: 0x1af2071ae77151c3, }, r1a0: u288 { limb0: 0x1cef1c0d8956d7ceb2b162e7, limb1: 0x202b4af9e51edfc81a943ded, - limb2: 0xc9e943ffbdcfdcb + limb2: 0xc9e943ffbdcfdcb, }, r1a1: u288 { limb0: 0xe18b1b34798b0a18d5ad43dd, limb1: 0x55e8237731941007099af6b8, - limb2: 0x1472c0290db54042 - } + limb2: 0x1472c0290db54042, + }, }, G2Line { r0a0: u288 { limb0: 0xbbac3856a8e87a2e9a8b22c6, limb1: 0xdbfdecaed05832138ee553fe, - limb2: 0x97e02cb38d8d7e9 + limb2: 0x97e02cb38d8d7e9, }, r0a1: u288 { limb0: 0x9e1446fcf7d293a2469d0044, limb1: 0x463357a0f467ffc3d1ac9329, - limb2: 0x134bb66656265af1 + limb2: 0x134bb66656265af1, }, r1a0: u288 { limb0: 0x35197469de9782f565552391, limb1: 0x9a40559fee880b7ce57dc096, - limb2: 0x135c6b73ad046335 + limb2: 0x135c6b73ad046335, }, r1a1: u288 { limb0: 0xf58099b0098ba0a363307259, limb1: 0x3aafc38f65f0115c8d769619, - limb2: 0x1da35e56a76aff8e - } + limb2: 0x1da35e56a76aff8e, + }, }, G2Line { r0a0: u288 { limb0: 0xb4c7963e0d1dc082de0725e, limb1: 0x375a7a3d765918de24804223, - limb2: 0xf177b77b031596d + limb2: 0xf177b77b031596d, }, r0a1: u288 { limb0: 0x87a7b9c5f10500b0b40d7a1e, limb1: 0x6f234d1dc7f1394b55858810, - limb2: 0x26288146660a3914 + limb2: 0x26288146660a3914, }, r1a0: u288 { limb0: 0xa6308c89cebe40447abf4a9a, limb1: 0x657f0fdda13b1f8ee314c22, - limb2: 0x1701aabc250a9cc7 + limb2: 0x1701aabc250a9cc7, }, r1a1: u288 { limb0: 0x9db9bf660dc77cbe2788a755, limb1: 0xbdf9c1c15a4bd502a119fb98, - limb2: 0x14b4de3d26bd66e1 - } + limb2: 0x14b4de3d26bd66e1, + }, }, G2Line { r0a0: u288 { limb0: 0x53c49c62ca96007e14435295, limb1: 0x85aeb885e4123ca8d3232fdf, - limb2: 0x750017ce108abf3 + limb2: 0x750017ce108abf3, }, r0a1: u288 { limb0: 0xba6bf3e25d370182e4821239, limb1: 0x39de83bf370bd2ba116e8405, - limb2: 0x2b8417a72ba6d940 + limb2: 0x2b8417a72ba6d940, }, r1a0: u288 { limb0: 0xa922f50550d349849b14307b, limb1: 0x569766b6feca6143a5ddde9d, - limb2: 0x2c3c6765b25a01d + limb2: 0x2c3c6765b25a01d, }, r1a1: u288 { limb0: 0x6016011bdc3b506563b0f117, limb1: 0xbab4932beab93dde9b5b8a5c, - limb2: 0x1bf3f698de0ace60 - } + limb2: 0x1bf3f698de0ace60, + }, }, G2Line { r0a0: u288 { limb0: 0x93bebaf7f40eb00912ee1ff8, limb1: 0x79a91520a19787b125796c6b, - limb2: 0x45adea0cdba580c + limb2: 0x45adea0cdba580c, }, r0a1: u288 { limb0: 0xea59a573b5d16f4b827e1209, limb1: 0x6202955602c536e53bd3387a, - limb2: 0x1a511f3a72b13857 + limb2: 0x1a511f3a72b13857, }, r1a0: u288 { limb0: 0xb745e4750bc9124d4e73ea0b, limb1: 0x2f33d8eeba9cc1435bbdc73f, - limb2: 0x2e6777231d16918a + limb2: 0x2e6777231d16918a, }, r1a1: u288 { limb0: 0x368391ad32f8bb4668d49a0d, limb1: 0x43450eb1798b1dd83825ef2a, - limb2: 0x22bc511bb4630eea - } + limb2: 0x22bc511bb4630eea, + }, }, G2Line { r0a0: u288 { limb0: 0x4ad06cb41fe56d977307ab2c, limb1: 0x3f5bc61856be34d17d908fa0, - limb2: 0x99af0cec206d510 + limb2: 0x99af0cec206d510, }, r0a1: u288 { limb0: 0x1ced159a6a98e98171d4669e, limb1: 0xafcae556259b99f38d59aa5, - limb2: 0x89b4d02984287ec + limb2: 0x89b4d02984287ec, }, r1a0: u288 { limb0: 0xd22b2495d2cc326e755b7f8e, limb1: 0xa1ccc284e75a8859266377a, - limb2: 0x19fd2f610a91515c + limb2: 0x19fd2f610a91515c, }, r1a1: u288 { limb0: 0xc1c66a79e4a73dd8a34fafa6, limb1: 0xb9f0070e903de41bb0622c24, - limb2: 0xbefae3b58cda298 - } + limb2: 0xbefae3b58cda298, + }, }, G2Line { r0a0: u288 { limb0: 0xb9f05ffda3ee208f990ff3a8, limb1: 0x6201d08440b28ea672b9ea93, - limb2: 0x1ed60e5a5e778b42 + limb2: 0x1ed60e5a5e778b42, }, r0a1: u288 { limb0: 0x8e8468b937854c9c00582d36, limb1: 0x7888fa8b2850a0c555adb743, - limb2: 0xd1342bd01402f29 + limb2: 0xd1342bd01402f29, }, r1a0: u288 { limb0: 0xf5c4c66a974d45ec754b3873, limb1: 0x34322544ed59f01c835dd28b, - limb2: 0x10fe4487a871a419 + limb2: 0x10fe4487a871a419, }, r1a1: u288 { limb0: 0xedf4af2df7c13d6340069716, limb1: 0x8592eea593ece446e8b2c83b, - limb2: 0x12f9280ce8248724 - } + limb2: 0x12f9280ce8248724, + }, }, G2Line { r0a0: u288 { limb0: 0x4470eba4d9b59b96407ee453, limb1: 0x42e5bebde803009771b64e57, - limb2: 0x15a127d5b9249aaf + limb2: 0x15a127d5b9249aaf, }, r0a1: u288 { limb0: 0xd6cb50a7a92876580b531620, limb1: 0xef70fbfdb45b07e8f7babf8f, - limb2: 0xe69823faec6b62f + limb2: 0xe69823faec6b62f, }, r1a0: u288 { limb0: 0xf656b93207a60f9ea4b3b77a, limb1: 0xb0b29dbe81cee075c4d2f88f, - limb2: 0x27e43cc268f2839d + limb2: 0x27e43cc268f2839d, }, r1a1: u288 { limb0: 0xdf8504b3164d07aa4f703b8e, limb1: 0xad4fb7395eb3b6d4e78fef42, - limb2: 0x25065b36a637c585 - } + limb2: 0x25065b36a637c585, + }, }, G2Line { r0a0: u288 { limb0: 0xe67f72c6d45f1bb04403139f, limb1: 0x9233e2a95d3f3c3ff2f7e5b8, - limb2: 0x1f931e8e4343b028 + limb2: 0x1f931e8e4343b028, }, r0a1: u288 { limb0: 0x20ef53907af71803ce3ca5ca, limb1: 0xd99b6637ee9c73150b503ea4, - limb2: 0x1c9759def8a98ea8 + limb2: 0x1c9759def8a98ea8, }, r1a0: u288 { limb0: 0xa0a3b24c9089d224822fad53, limb1: 0xdfa2081342a7a895062f3e50, - limb2: 0x185e8cf6b3e494e6 + limb2: 0x185e8cf6b3e494e6, }, r1a1: u288 { limb0: 0x8752a12394b29d0ba799e476, limb1: 0x1493421da067a42e7f3d0f8f, - limb2: 0x67e7fa3e3035edf - } + limb2: 0x67e7fa3e3035edf, + }, }, G2Line { r0a0: u288 { limb0: 0xd4e7008d0b092bfff8fe7b22, limb1: 0x8917ebc9b364042de59b88bb, - limb2: 0x2059627f035f9cd + limb2: 0x2059627f035f9cd, }, r0a1: u288 { limb0: 0xbb1b0a9dbb59e8f877edf020, limb1: 0x8c8dc3726e82e68ba21b6b69, - limb2: 0x1ba5cd54073c1cea + limb2: 0x1ba5cd54073c1cea, }, r1a0: u288 { limb0: 0x6a2c5a3d8e6236240edaf594, limb1: 0xe68677bda7793cb801acebcc, - limb2: 0xc02f104a4e15c01 + limb2: 0xc02f104a4e15c01, }, r1a1: u288 { limb0: 0x5c0bc4dce23d8b6bc29ae908, limb1: 0x6127032066da7babc36ec0d7, - limb2: 0x1e697536f2da52d0 - } + limb2: 0x1e697536f2da52d0, + }, }, G2Line { r0a0: u288 { limb0: 0x6d6138c95464e5e774ae7ba0, limb1: 0xe6ca73a5498e4ccd4bb68fc7, - limb2: 0x15bf8aa8ed1beff6 + limb2: 0x15bf8aa8ed1beff6, }, r0a1: u288 { limb0: 0xabd7c55a134ed405b4966d3c, limb1: 0xe69dd725ccc4f9dd537fe558, - limb2: 0x2df4a03e2588a8f1 + limb2: 0x2df4a03e2588a8f1, }, r1a0: u288 { limb0: 0x7cf42890de0355ffc2480d46, limb1: 0xe33c2ad9627bcb4b028c2358, - limb2: 0x2a18767b40de20bd + limb2: 0x2a18767b40de20bd, }, r1a1: u288 { limb0: 0x79737d4a87fab560f3d811c6, limb1: 0xa88fee5629b91721f2ccdcf7, - limb2: 0x2b51c831d3404d5e - } + limb2: 0x2b51c831d3404d5e, + }, }, G2Line { r0a0: u288 { limb0: 0x6bec21174a07a597502dcb70, limb1: 0xc8bfda289a81e43dd23758ac, - limb2: 0x269f86504baa3fef + limb2: 0x269f86504baa3fef, }, r0a1: u288 { limb0: 0x6ba3eb4f98c964368c0baea8, limb1: 0x95c9a6540a00750faa184469, - limb2: 0xacf594a3e59eb53 + limb2: 0xacf594a3e59eb53, }, r1a0: u288 { limb0: 0xcc5ab24e082353dce083cba0, limb1: 0x71aae3696df376a2733a9dae, - limb2: 0xc8ffa16612417f8 + limb2: 0xc8ffa16612417f8, }, r1a1: u288 { limb0: 0x23fc9d7be4a172856d916171, limb1: 0x1ea89e6339555c15f01d35eb, - limb2: 0x1df21e5cd24fb7ca - } + limb2: 0x1df21e5cd24fb7ca, + }, }, G2Line { r0a0: u288 { limb0: 0x9812f6145cf7e949fa207f20, limb1: 0x4061c36b08d5bcd408b14f19, - limb2: 0x8332e08b2eb51ed + limb2: 0x8332e08b2eb51ed, }, r0a1: u288 { limb0: 0xa4a7ae8f65ba180c523cb33, limb1: 0xb71fabbdc78b1128712d32a5, - limb2: 0x2acd1052fd0fefa7 + limb2: 0x2acd1052fd0fefa7, }, r1a0: u288 { limb0: 0x6ea5598e221f25bf27efc618, limb1: 0xa2c2521a6dd8f306f86d6db7, - limb2: 0x13af144288655944 + limb2: 0x13af144288655944, }, r1a1: u288 { limb0: 0xea469c4b390716a6810fff5d, limb1: 0xf8052694d0fdd3f40b596c20, - limb2: 0x24d0ea6c86e48c5c - } + limb2: 0x24d0ea6c86e48c5c, + }, }, G2Line { r0a0: u288 { limb0: 0x2e39be614d904bafea58a8cd, limb1: 0xf53f0a6a20a1f1783b0ea2d0, - limb2: 0x99c451b7bb726d7 + limb2: 0x99c451b7bb726d7, }, r0a1: u288 { limb0: 0x28ec54a4ca8da838800c573d, limb1: 0xb78365fa47b5e192307b7b87, - limb2: 0x2df87aa88e012fec + limb2: 0x2df87aa88e012fec, }, r1a0: u288 { limb0: 0xfb7022881c6a6fdfb18de4aa, limb1: 0xb9bd30f0e93c5b93ad333bab, - limb2: 0x1dd20cbccdeb9924 + limb2: 0x1dd20cbccdeb9924, }, r1a1: u288 { limb0: 0x16d8dfdf790a6be16a0e55ba, limb1: 0x90ab884395509b9a264472d4, - limb2: 0xeaec571657b6e9d - } + limb2: 0xeaec571657b6e9d, + }, }, G2Line { r0a0: u288 { limb0: 0x83df0f14548cb4d3df297098, limb1: 0x6fce5768b8d9280342dc4f15, - limb2: 0x1b847c02d5d13372 + limb2: 0x1b847c02d5d13372, }, r0a1: u288 { limb0: 0xe0ad398e46dde2df37d57ea2, limb1: 0xfc42e5247aa2311cd279d7f5, - limb2: 0x1b7988b75c25371e + limb2: 0x1b7988b75c25371e, }, r1a0: u288 { limb0: 0xfec8a1c309a7cb375e664afb, limb1: 0x5e17576eee68f0fee50010d3, - limb2: 0x20d165c95da78c9e + limb2: 0x20d165c95da78c9e, }, r1a1: u288 { limb0: 0x747ef37118468b0e3d86f0d1, limb1: 0xe585b56f5e9bc73693416049, - limb2: 0x16d647b984100e57 - } + limb2: 0x16d647b984100e57, + }, }, G2Line { r0a0: u288 { limb0: 0x32a896c88589d1e2d820d4b7, limb1: 0x6cddfd3af2415ef1287e3821, - limb2: 0x168029eaf79f17fd + limb2: 0x168029eaf79f17fd, }, r0a1: u288 { limb0: 0x1380ac0f4d217fab84bcbd16, limb1: 0x1732a0408706c4c9fbe7d02e, - limb2: 0x1a067f72a0e57d5e + limb2: 0x1a067f72a0e57d5e, }, r1a0: u288 { limb0: 0x52b10f62e67a60a9c6985c56, limb1: 0x59bfd92a57a9cc81693f91a0, - limb2: 0x17885ada1c8800dd + limb2: 0x17885ada1c8800dd, }, r1a1: u288 { limb0: 0xc5c177df970ad4eb4a6f9410, limb1: 0x6eb19f03cfb97f703881fb87, - limb2: 0x20884457b2d3a8ec - } + limb2: 0x20884457b2d3a8ec, + }, }, G2Line { r0a0: u288 { limb0: 0xce78fc6505db036c10fac771, limb1: 0x61f8c0bc7f60ad6415d5e419, - limb2: 0x59009c5cf9ea663 + limb2: 0x59009c5cf9ea663, }, r0a1: u288 { limb0: 0xb3b3f697fc34d64ba053b914, limb1: 0x317af5815ce5bfffc5a6bc97, - limb2: 0x23f97fee4deda847 + limb2: 0x23f97fee4deda847, }, r1a0: u288 { limb0: 0xf559e09cf7a02674ac2fa642, limb1: 0x4fa7548b79cdd054e203689c, - limb2: 0x2173b379d546fb47 + limb2: 0x2173b379d546fb47, }, r1a1: u288 { limb0: 0x758feb5b51caccff9da0f78f, limb1: 0xd7f37a1008233b74c4894f55, - limb2: 0x917c640b4b9627e - } + limb2: 0x917c640b4b9627e, + }, }, G2Line { r0a0: u288 { limb0: 0x438bae16b78f8d4c6d3db30a, limb1: 0x8445211ebf9bfcba1c776529, - limb2: 0x2f481a220dd1622a + limb2: 0x2f481a220dd1622a, }, r0a1: u288 { limb0: 0x3482b3e989656e30cb35b229, limb1: 0x42347ba4b55db7dd069c1a86, - limb2: 0xde1fa929f76dbd7 + limb2: 0xde1fa929f76dbd7, }, r1a0: u288 { limb0: 0x8bc590876697c6fa8681219b, limb1: 0xe6bafedd88cafa369275dc4e, - limb2: 0x145b451118b58bdf + limb2: 0x145b451118b58bdf, }, r1a1: u288 { limb0: 0x730bdbb324324be339d39111, limb1: 0xc10f98222a10e6cc998a1a62, - limb2: 0x1bb0517beaddec5 - } + limb2: 0x1bb0517beaddec5, + }, }, G2Line { r0a0: u288 { limb0: 0x72548e0d946b796842cfecd8, limb1: 0x78b54b355e3c26476b0fab82, - limb2: 0x2dc9f32c90b6ba31 + limb2: 0x2dc9f32c90b6ba31, }, r0a1: u288 { limb0: 0xa943be83a6fc90414320753b, limb1: 0xd708fde97241095833ce5a08, - limb2: 0x142111e6a73d2e82 + limb2: 0x142111e6a73d2e82, }, r1a0: u288 { limb0: 0xc79e8d5465ec5f28781e30a2, limb1: 0x697fb9430b9ad050ced6cce, - limb2: 0x1a9d647149842c53 + limb2: 0x1a9d647149842c53, }, r1a1: u288 { limb0: 0x9bab496952559362586725cd, limb1: 0xbe78e5a416d9665be64806de, - limb2: 0x147b550afb4b8b84 - } + limb2: 0x147b550afb4b8b84, + }, }, G2Line { r0a0: u288 { limb0: 0xe7596a824a07b270ac4188c8, limb1: 0xe6c994e9676625d23213b4a2, - limb2: 0x81a26c392dcf2c5 + limb2: 0x81a26c392dcf2c5, }, r0a1: u288 { limb0: 0xb2ea042038d6d50de71e18e4, limb1: 0x90341ba13db1bf782d7ee4e5, - limb2: 0x271d330705e070b4 + limb2: 0x271d330705e070b4, }, r1a0: u288 { limb0: 0xd33feb213584e1aff376fc48, limb1: 0x1e000c3d2386eea0df68e9ca, - limb2: 0x130ed249899a2898 + limb2: 0x130ed249899a2898, }, r1a1: u288 { limb0: 0xfacb4dd4ede95483ef565396, limb1: 0xa8089c5ac03ab4c520fd3549, - limb2: 0x2dd9fb297e9a38bd - } + limb2: 0x2dd9fb297e9a38bd, + }, }, G2Line { r0a0: u288 { limb0: 0x1422e11013fe6cdd7f843391, limb1: 0xfb96092ab69fc530e27d8d8e, - limb2: 0xe39e04564fedd0 + limb2: 0xe39e04564fedd0, }, r0a1: u288 { limb0: 0xbd4e81e3b4db192e11192788, limb1: 0x805257d3c2bdbc344a15ce0d, - limb2: 0x10ddd4f47445106b + limb2: 0x10ddd4f47445106b, }, r1a0: u288 { limb0: 0x87ab7f750b693ec75bce04e1, limb1: 0x128ba38ebed26d74d26e4d69, - limb2: 0x2f1d22a64c983ab8 + limb2: 0x2f1d22a64c983ab8, }, r1a1: u288 { limb0: 0x74207c17f5c8335183649f77, limb1: 0x7144cd3520ac2e1be3204133, - limb2: 0xb38d0645ab3499d - } + limb2: 0xb38d0645ab3499d, + }, }, G2Line { r0a0: u288 { limb0: 0x6a6ef43c964cb860b38e6603, limb1: 0xd1b6d2306114c2a9d0d5ab8a, - limb2: 0x25fca3e4a6ad8136 + limb2: 0x25fca3e4a6ad8136, }, r0a1: u288 { limb0: 0x2ad046669b8551d7488add7, limb1: 0x84ac1d26252119712a5ceb2, - limb2: 0x19f02ee8b1efc961 + limb2: 0x19f02ee8b1efc961, }, r1a0: u288 { limb0: 0x3cef7dc2c32f78d6c7d5a42c, limb1: 0xfa2616aba4343d1d5a9a0e2e, - limb2: 0x17106b4d22f8d241 + limb2: 0x17106b4d22f8d241, }, r1a1: u288 { limb0: 0xc701c3ffc4426f752e0b58c2, limb1: 0x96f0ac67850fb5c266cf5c, - limb2: 0x1a16e16ce5a84c54 - } + limb2: 0x1a16e16ce5a84c54, + }, }, G2Line { r0a0: u288 { limb0: 0x49173a889c697b0ab07f35bc, limb1: 0xdcffb65f4b4c21ced6b623af, - limb2: 0x1366d12ee6022f7b + limb2: 0x1366d12ee6022f7b, }, r0a1: u288 { limb0: 0x285fdce362f7a79b89c49b5c, limb1: 0xae9358c8eaf26e2fed7353f5, - limb2: 0x21c91fefaf522b5f + limb2: 0x21c91fefaf522b5f, }, r1a0: u288 { limb0: 0x748798f96436e3b18c64964a, limb1: 0xfc3bb221103d3966d0510599, - limb2: 0x167859ae2ebc5e27 + limb2: 0x167859ae2ebc5e27, }, r1a1: u288 { limb0: 0xe3b55b05bb30e23fa7eba05b, limb1: 0xa5fc8b7f7bc6abe91c90ddd5, - limb2: 0xe0da83c6cdebb5a - } + limb2: 0xe0da83c6cdebb5a, + }, }, G2Line { r0a0: u288 { limb0: 0x30a4abff5957209783681bfb, limb1: 0x82d868d5ca421e4f1a0daf79, - limb2: 0x1ba96ef98093d510 + limb2: 0x1ba96ef98093d510, }, r0a1: u288 { limb0: 0xd9132c7f206a6c036a39e432, limb1: 0x8a2dfb94aba29a87046110b8, - limb2: 0x1fad2fd5e5e37395 + limb2: 0x1fad2fd5e5e37395, }, r1a0: u288 { limb0: 0x76b136dc82b82e411b2c44f6, limb1: 0xe405f12052823a54abb9ea95, - limb2: 0xf125ba508c26ddc + limb2: 0xf125ba508c26ddc, }, r1a1: u288 { limb0: 0x1bae07f5f0cc48e5f7aac169, limb1: 0x47d1288d741496a960e1a979, - limb2: 0xa0911f6cc5eb84e - } + limb2: 0xa0911f6cc5eb84e, + }, }, G2Line { r0a0: u288 { limb0: 0x14d30fda811521117927311a, limb1: 0xe1d92f17817d1a06eb5e3a2, - limb2: 0x1281bb804fdd92a6 + limb2: 0x1281bb804fdd92a6, }, r0a1: u288 { limb0: 0x589100b3cd0e2be3feb99497, limb1: 0x763b459cdca3ea4cee8f3085, - limb2: 0x15a8a70126af58f8 + limb2: 0x15a8a70126af58f8, }, r1a0: u288 { limb0: 0xb77343171852732d4297b40d, limb1: 0xf26c00e232ec8878efd4e75c, - limb2: 0x60d465fbdb8a07d + limb2: 0x60d465fbdb8a07d, }, r1a1: u288 { limb0: 0xd8d997b09eab02f6a0a29be4, limb1: 0x1aca09f7a6558306fdb5d3e4, - limb2: 0x2fbab16347a0f9ff - } + limb2: 0x2fbab16347a0f9ff, + }, }, G2Line { r0a0: u288 { limb0: 0x857d0968bb488b80633a8bc1, limb1: 0xf2014971f9c6044a1e4c78a7, - limb2: 0x1cc072450b90ed16 + limb2: 0x1cc072450b90ed16, }, r0a1: u288 { limb0: 0x846981ea26f3e279d3dfba61, limb1: 0xf4f358cf12810a94e2e4f7f4, - limb2: 0x779e8b7c7a46866 + limb2: 0x779e8b7c7a46866, }, r1a0: u288 { limb0: 0x4228e32ecea217f455d31a3a, limb1: 0x2b56b887827ea6e4f7a91c37, - limb2: 0x1a7a9910164d6252 + limb2: 0x1a7a9910164d6252, }, r1a1: u288 { limb0: 0xdee06b1e3e0558ae82bee505, limb1: 0x163e51dfac33f9152680c9eb, - limb2: 0x2a487bb7ad7218f3 - } + limb2: 0x2a487bb7ad7218f3, + }, }, G2Line { r0a0: u288 { limb0: 0x2e7b3a5a35456f42e87968e6, limb1: 0xb4303f5093c3a460674a2fcd, - limb2: 0x2b5331f03b8fa15f + limb2: 0x2b5331f03b8fa15f, }, r0a1: u288 { limb0: 0x7cea371d64d8bd0fc5b9427e, limb1: 0x76208e15fc175e352c274fbe, - limb2: 0x5ceb46647d41234 + limb2: 0x5ceb46647d41234, }, r1a0: u288 { limb0: 0x6cdac06bfcf041a30435a560, limb1: 0x15a7ab7ed1df6d7ed12616a6, - limb2: 0x2520b0f462ad4724 + limb2: 0x2520b0f462ad4724, }, r1a1: u288 { limb0: 0xe8b65c5fff04e6a19310802f, limb1: 0xc96324a563d5dab3cd304c64, - limb2: 0x230de25606159b1e - } + limb2: 0x230de25606159b1e, + }, }, G2Line { r0a0: u288 { limb0: 0xe2031868c812b8cecacd7a4a, limb1: 0x50546c799ceed3c43c41f4ba, - limb2: 0x25cc77c74cbabdbd + limb2: 0x25cc77c74cbabdbd, }, r0a1: u288 { limb0: 0x295bae77b9ad4b6c97646232, limb1: 0x75621d2aff5e576b7d6fe300, - limb2: 0x143043b86b1ca5b4 + limb2: 0x143043b86b1ca5b4, }, r1a0: u288 { limb0: 0xca3c979fa4d3b18d2f7b1bcc, limb1: 0xdd2c365809773b6e09ccb2b9, - limb2: 0x14391c33bfc390d8 + limb2: 0x14391c33bfc390d8, }, r1a1: u288 { limb0: 0x5e861ecfb9119d168163c202, limb1: 0xcdbc50774ab2e9bee2b80649, - limb2: 0x1fbe4fcdc5c5a57e - } + limb2: 0x1fbe4fcdc5c5a57e, + }, }, G2Line { r0a0: u288 { limb0: 0xb2236e5462d1e11842039bb5, limb1: 0x8d746dd0bb8bb2a455d505c1, - limb2: 0x2fd3f4a905e027ce + limb2: 0x2fd3f4a905e027ce, }, r0a1: u288 { limb0: 0x3d6d9836d71ddf8e3b741b09, limb1: 0x443f16e368feb4cb20a5a1ab, - limb2: 0xb5f19dda13bdfad + limb2: 0xb5f19dda13bdfad, }, r1a0: u288 { limb0: 0x4e5612c2b64a1045a590a938, limb1: 0xbca215d075ce5769db2a29d7, - limb2: 0x161e651ebdfb5065 + limb2: 0x161e651ebdfb5065, }, r1a1: u288 { limb0: 0xc02a55b6685351f24e4bf9c7, limb1: 0x4134240119050f22bc4991c8, - limb2: 0x300bd9f8d76bbc11 - } + limb2: 0x300bd9f8d76bbc11, + }, }, G2Line { r0a0: u288 { limb0: 0xe9296a3a3aed4c4143d2e0ba, limb1: 0x7de973514b499b2da739b3e6, - limb2: 0x1b4b807986fcdee0 + limb2: 0x1b4b807986fcdee0, }, r0a1: u288 { limb0: 0xb9295fecce961afe0c5e6dad, limb1: 0xc4e30c322bcae6d526c4de95, - limb2: 0x1fee592f513ed6b2 + limb2: 0x1fee592f513ed6b2, }, r1a0: u288 { limb0: 0x7245f5e5e803d0d448fafe21, limb1: 0xcbdc032ecb3b7a63899c53d0, - limb2: 0x1fde9ffc17accfc3 + limb2: 0x1fde9ffc17accfc3, }, r1a1: u288 { limb0: 0x8edcc1b2fdd35c87a7814a87, limb1: 0x99d54b5c2fe171c49aa9cb08, - limb2: 0x130ef740e416a6fe - } + limb2: 0x130ef740e416a6fe, + }, }, G2Line { r0a0: u288 { limb0: 0x50cb7f4b087200d53fa86cb2, limb1: 0xff132c0ccf9286b3bc6e72f8, - limb2: 0xd1d98c6aa4cbd20 + limb2: 0xd1d98c6aa4cbd20, }, r0a1: u288 { limb0: 0x5cb371016b5e5346aa276b94, limb1: 0xb4491b5077bb58bcf9cd8f43, - limb2: 0xd51bc57128e720a + limb2: 0xd51bc57128e720a, }, r1a0: u288 { limb0: 0x397965b705cdb46b061f25e8, limb1: 0xd1ed8b8fa62c5c50b27dc115, - limb2: 0x395493fce79da18 + limb2: 0x395493fce79da18, }, r1a1: u288 { limb0: 0x8964d77b83faf3ac3f972566, limb1: 0x6c73a21e7e6db17d8f89f9fa, - limb2: 0x7ed3c0d414cddf7 - } + limb2: 0x7ed3c0d414cddf7, + }, }, G2Line { r0a0: u288 { limb0: 0xed3ac7bc560f29f1d5148309, limb1: 0xd4bc60d88edc82f6a9336b9a, - limb2: 0x1af46a921f0bb17 + limb2: 0x1af46a921f0bb17, }, r0a1: u288 { limb0: 0xf5a22ff7d977b6b6acf9f3ca, limb1: 0xad4b2299bff7a855dfde34df, - limb2: 0x2176ace7d56a9ff2 + limb2: 0x2176ace7d56a9ff2, }, r1a0: u288 { limb0: 0xdc5d8bbb9566386bdca9619e, limb1: 0x518f514d6bf9082b5e1ca06a, - limb2: 0x28162e5d570380f + limb2: 0x28162e5d570380f, }, r1a1: u288 { limb0: 0x448f699ecddf33780c7293a, limb1: 0x147b945d1db66b75de1d0e11, - limb2: 0x2c3dec42b83ab6d5 - } + limb2: 0x2c3dec42b83ab6d5, + }, }, G2Line { r0a0: u288 { limb0: 0x537ecf0916b38aeea21d4e47, limb1: 0x181a00de27ba4be1b380d6c8, - limb2: 0x8c2fe2799316543 + limb2: 0x8c2fe2799316543, }, r0a1: u288 { limb0: 0xe68fff5ee73364fff3fe403b, limb1: 0x7b8685c8a725ae79cfac8f99, - limb2: 0x7b4be349766aba4 + limb2: 0x7b4be349766aba4, }, r1a0: u288 { limb0: 0xdf7c93c0095545ad5e5361ea, limb1: 0xce316c76191f1e7cd7d03f3, - limb2: 0x22ea21f18ddec947 + limb2: 0x22ea21f18ddec947, }, r1a1: u288 { limb0: 0xa19620b4c32db68cc1c2ef0c, limb1: 0xffa1e4be3bed5faba2ccbbf4, - limb2: 0x16fc78a64c45f518 - } + limb2: 0x16fc78a64c45f518, + }, }, G2Line { r0a0: u288 { limb0: 0x2b6af476f520b4bf804415bc, limb1: 0xd949ee7f9e8874698b090fca, - limb2: 0x34db5e5ec2180cf + limb2: 0x34db5e5ec2180cf, }, r0a1: u288 { limb0: 0x3e06a324f038ac8abcfb28d7, limb1: 0xc2e6375b7a83c0a0145f8942, - limb2: 0x2247e79161483763 + limb2: 0x2247e79161483763, }, r1a0: u288 { limb0: 0x708773d8ae3a13918382fb9d, limb1: 0xaf83f409556e32aa85ae92bf, - limb2: 0x9af0a924ae43ba + limb2: 0x9af0a924ae43ba, }, r1a1: u288 { limb0: 0xa6fded212ff5b2ce79755af7, limb1: 0x55a2adfb2699ef5de6581b21, - limb2: 0x2476e83cfe8daa5c - } + limb2: 0x2476e83cfe8daa5c, + }, }, G2Line { r0a0: u288 { limb0: 0x88da3121b35160882a1c7589, limb1: 0x65804a112b6f3376e944918a, - limb2: 0x16dacfb60b1ce19a + limb2: 0x16dacfb60b1ce19a, }, r0a1: u288 { limb0: 0xeff82aff39cb798ce9b8b0d9, limb1: 0xa90ce85c7d5f232be9d0aa48, - limb2: 0x193c05a28703b386 + limb2: 0x193c05a28703b386, }, r1a0: u288 { limb0: 0x20ad3c10b068e055950db02d, limb1: 0x7f126eebf19b02a0833fe0ce, - limb2: 0x297139b7691ecc5 + limb2: 0x297139b7691ecc5, }, r1a1: u288 { limb0: 0x1b6a771c255179179254a975, limb1: 0x6e8c9e35001729b1f77e9eb2, - limb2: 0x3e2e494608e33c7 - } + limb2: 0x3e2e494608e33c7, + }, }, G2Line { r0a0: u288 { limb0: 0x7f9803672c5c3c3885d9f98a, limb1: 0xde4f0a101b3d8f9ee11d42b2, - limb2: 0x20a37cabfbfa257 + limb2: 0x20a37cabfbfa257, }, r0a1: u288 { limb0: 0x26838cb91e386068a3da1af1, limb1: 0xee22b598ea3b51661d35cff3, - limb2: 0x1919454dad133f1c + limb2: 0x1919454dad133f1c, }, r1a0: u288 { limb0: 0x7c23a02fb58896140cab4a26, limb1: 0xb61a77a33f73616e4ebaac8a, - limb2: 0x98a546ad9b9c556 + limb2: 0x98a546ad9b9c556, }, r1a1: u288 { limb0: 0xa4bc65cb502123f8cab8a370, limb1: 0x8be2308b4f0c0dd30f4f47e8, - limb2: 0x20ccdec6f5186f9e - } + limb2: 0x20ccdec6f5186f9e, + }, }, G2Line { r0a0: u288 { limb0: 0x1c4759bcf7c607fe3f839d4d, limb1: 0xea91f311da73327e2ed40785, - limb2: 0x2017052c72360f42 + limb2: 0x2017052c72360f42, }, r0a1: u288 { limb0: 0x38cf8a4368c0709980199fc3, limb1: 0xfc9047885996c19e84d7d4ea, - limb2: 0x1795549eb0b97783 + limb2: 0x1795549eb0b97783, }, r1a0: u288 { limb0: 0xb70f7ecfbec0eaf46845e8cc, limb1: 0x9ddf274c2a9f89ea3bc4d66f, - limb2: 0xcc6f106abfcf377 + limb2: 0xcc6f106abfcf377, }, r1a1: u288 { limb0: 0xf6ff11ce29186237468c2698, limb1: 0x5c629ad27bb61e4826bb1313, - limb2: 0x2014c6623f1fb55e - } + limb2: 0x2014c6623f1fb55e, + }, }, G2Line { r0a0: u288 { limb0: 0x5c4102ef74201f7de38e0463, limb1: 0xb1ef54e99607be59909009bb, - limb2: 0x25ff50f42e66453b + limb2: 0x25ff50f42e66453b, }, r0a1: u288 { limb0: 0x76c0ba1f7c7f207460e65d58, limb1: 0x878854c0c07edabf3d15a5c9, - limb2: 0x182311cfea026538 + limb2: 0x182311cfea026538, }, r1a0: u288 { limb0: 0xc8bbb32e6a668cf1e33ec2d8, limb1: 0x23c6efb2db33c7221af7e56c, - limb2: 0x22c07d0e7f650e9a + limb2: 0x22c07d0e7f650e9a, }, r1a1: u288 { limb0: 0xadf5b275b9ae0362598bc296, limb1: 0x70f05b3cbfa5ee508c52d108, - limb2: 0x2c76c696e1630aa3 - } + limb2: 0x2c76c696e1630aa3, + }, }, G2Line { r0a0: u288 { limb0: 0xc648054e4b6134bbfd68487f, limb1: 0xdf0506dad3f3d098c13a6386, - limb2: 0x26bebeb6f46c2e8c + limb2: 0x26bebeb6f46c2e8c, }, r0a1: u288 { limb0: 0x9d0cdb28a94204776c6e6ba6, limb1: 0x303f02dfe619752b1607951d, - limb2: 0x1127d8b17ef2c064 + limb2: 0x1127d8b17ef2c064, }, r1a0: u288 { limb0: 0xe34ca1188b8db4e4694a696c, limb1: 0x243553602481d9b88ca1211, - limb2: 0x1f8ef034831d0132 + limb2: 0x1f8ef034831d0132, }, r1a1: u288 { limb0: 0xe3a5dfb1785690dad89ad10c, limb1: 0xd690b583ace24ba033dd23e0, - limb2: 0x405d0709e110c03 - } + limb2: 0x405d0709e110c03, + }, }, G2Line { r0a0: u288 { limb0: 0x9f395ba5aff2b0485d02ad3, limb1: 0xd745a02f5dda7608c1aa5b6c, - limb2: 0x2c12ce79338fb06c + limb2: 0x2c12ce79338fb06c, }, r0a1: u288 { limb0: 0x6bbfa55a1d9bfb38880150f5, limb1: 0x3a352c8ebceaab1b84fddea8, - limb2: 0x1ef234624c2a4dd1 + limb2: 0x1ef234624c2a4dd1, }, r1a0: u288 { limb0: 0xce4d0f18e7500ec5e79f5c9b, limb1: 0x806d4caac7b410b45752f986, - limb2: 0x12ec5a5f04110219 + limb2: 0x12ec5a5f04110219, }, r1a1: u288 { limb0: 0x1cacd816d2c00f06c10b8405, limb1: 0xfa95cba80a6fa53f6e8fcdbd, - limb2: 0xd5b083f527eaaf5 - } + limb2: 0xd5b083f527eaaf5, + }, }, G2Line { r0a0: u288 { limb0: 0x72cc2cef2785ce4ff4e9b7af, limb1: 0x60ed5b9c207d7f31fb6234ab, - limb2: 0x1bb17a4bc7b643ed + limb2: 0x1bb17a4bc7b643ed, }, r0a1: u288 { limb0: 0x9424eb15b502cde7927c7530, limb1: 0xa0e33edbbaa9de8e9c206059, - limb2: 0x2b9a3a63bbf4af99 + limb2: 0x2b9a3a63bbf4af99, }, r1a0: u288 { limb0: 0x423811cb6386e606cf274a3c, limb1: 0x8adcc0e471ecfe526f56dc39, - limb2: 0x9169a8660d14368 + limb2: 0x9169a8660d14368, }, r1a1: u288 { limb0: 0xf616c863890c3c8e33127931, limb1: 0xcc9414078a6da6989dae6b91, - limb2: 0x594d6a7e6b34ab2 - } + limb2: 0x594d6a7e6b34ab2, + }, }, G2Line { r0a0: u288 { limb0: 0x7fb74b75258ad974f27f0b99, limb1: 0x84f19bd902fadad4d0bcd73c, - limb2: 0xce721ef63bddc72 + limb2: 0xce721ef63bddc72, }, r0a1: u288 { limb0: 0xaaa754b4283ded9567a7ebe6, limb1: 0x8680b8bb98776864cf0b9a91, - limb2: 0x2c654975f8cf5aac + limb2: 0x2c654975f8cf5aac, }, r1a0: u288 { limb0: 0x15b404bb99c14804cb871df0, limb1: 0x28f2373909ce28eab3269ad5, - limb2: 0x23f0beb80a0dc66f + limb2: 0x23f0beb80a0dc66f, }, r1a1: u288 { limb0: 0x1a40652ffabc01487ee07368, limb1: 0xfb7d1ac226c315f73ba10295, - limb2: 0xd4a4463afd8862a - } + limb2: 0xd4a4463afd8862a, + }, }, G2Line { r0a0: u288 { limb0: 0xf2d619ae78049bf9141c35cf, limb1: 0x717f8b10d469a1ee2d91f191, - limb2: 0x2c72c82fa8afe345 + limb2: 0x2c72c82fa8afe345, }, r0a1: u288 { limb0: 0xb89321223b82a2dc793c0185, limb1: 0x71506a0cf4adb8e51bb7b759, - limb2: 0x2c13b92a98651492 + limb2: 0x2c13b92a98651492, }, r1a0: u288 { limb0: 0x4947ef2c89276f77f9d20942, limb1: 0xb454d68685ab6b6976e71ec5, - limb2: 0x19a938d0e78a3593 + limb2: 0x19a938d0e78a3593, }, r1a1: u288 { limb0: 0xbe883eb119609b489c01c905, limb1: 0xaa06779922047f52feac5ce6, - limb2: 0x76977a3015dc164 - } + limb2: 0x76977a3015dc164, + }, }, G2Line { r0a0: u288 { limb0: 0x43a96a588005043a46aadf2c, limb1: 0xa37b89d8a1784582f0c52126, - limb2: 0x22e9ef3f5d4b2297 + limb2: 0x22e9ef3f5d4b2297, }, r0a1: u288 { limb0: 0x8c6f6d8474cf6e5a58468a31, limb1: 0xeb1ce6ac75930ef1c79b07e5, - limb2: 0xf49839a756c7230 + limb2: 0xf49839a756c7230, }, r1a0: u288 { limb0: 0x82b84693a656c8e8c1f962fd, limb1: 0x2c1c8918ae80282208b6b23d, - limb2: 0x14d3504b5c8d428f + limb2: 0x14d3504b5c8d428f, }, r1a1: u288 { limb0: 0x60ef4f4324d5619b60a3bb84, limb1: 0x6d3090caefeedbc33638c77a, - limb2: 0x159264c370c89fec - } + limb2: 0x159264c370c89fec, + }, }, G2Line { r0a0: u288 { limb0: 0x8fac42bd654a73e6e06cd8cf, limb1: 0xc3830a580c7ae62ca9a58036, - limb2: 0xb1a750d7380c19e + limb2: 0xb1a750d7380c19e, }, r0a1: u288 { limb0: 0x4e8496aad8f6ac809fd15dae, limb1: 0xb51505336049b39b3fe98502, - limb2: 0xc2e5994cb400618 + limb2: 0xc2e5994cb400618, }, r1a0: u288 { limb0: 0x2fc55d31524d834b260b3051, limb1: 0xe465c3c590247c88422d26c8, - limb2: 0x10322a13b180bb0a + limb2: 0x10322a13b180bb0a, }, r1a1: u288 { limb0: 0x25a29688c4e32c67cb1134a8, limb1: 0x651bc8b0deb27bdb5762232f, - limb2: 0x117dd3744aca1f64 - } + limb2: 0x117dd3744aca1f64, + }, }, G2Line { r0a0: u288 { limb0: 0xee89d2a59689701ecf4a31f2, limb1: 0xefc968d4b47e143fc28040f3, - limb2: 0x1a5b2ca3ba6945b3 + limb2: 0x1a5b2ca3ba6945b3, }, r0a1: u288 { limb0: 0x981810f00669aa9ef6a5c331, limb1: 0x483396ddbc880f5c1a0a0915, - limb2: 0x85f453a76b6bc86 + limb2: 0x85f453a76b6bc86, }, r1a0: u288 { limb0: 0xe25dfca55ef96a66eb1a716a, limb1: 0xa36d2f86b377aeddc41b101b, - limb2: 0x36848c2314fd3a7 + limb2: 0x36848c2314fd3a7, }, r1a1: u288 { limb0: 0xac4c5ac54d6c417facda3992, limb1: 0xd0b77b71f704c0930adeef4c, - limb2: 0x8c773a6db51d65d - } + limb2: 0x8c773a6db51d65d, + }, }, ] .span(); @@ -3976,125 +3976,125 @@ mod pairing_tests { w0: u288 { limb0: 0x195c16df4a0f8f9dcb48bee9, limb1: 0x27f3cb7c50eca75e794d2f14, - limb2: 0x14156ca1853095df + limb2: 0x14156ca1853095df, }, w1: u288 { limb0: 0xf01d099a6df0a4a55ed21b59, limb1: 0x9fed6b2018946bcc2a8dad06, - limb2: 0xdc2a20a6107d4c4 + limb2: 0xdc2a20a6107d4c4, }, w2: u288 { limb0: 0x6c1817c4efa721fc98f69503, limb1: 0xed80f8339cf9e06ff04257cb, - limb2: 0x14260c5afb0b1148 + limb2: 0x14260c5afb0b1148, }, w3: u288 { limb0: 0xf98323135baab8ae3c766c60, limb1: 0xffefe512eb9448ef436dd090, - limb2: 0xafe8a09df07bf3d + limb2: 0xafe8a09df07bf3d, }, w4: u288 { limb0: 0x1707d6579371dae20368253c, limb1: 0x7bb02cc2b5dc98aff593681, - limb2: 0x114692950f53d4f7 + limb2: 0x114692950f53d4f7, }, w5: u288 { limb0: 0xa9da397fe12d4a3939ce650c, limb1: 0x49646f1e106dc0ee917551f5, - limb2: 0x2dd3fca725919631 + limb2: 0x2dd3fca725919631, }, w6: u288 { limb0: 0xd6054be99a9248497b82062a, limb1: 0x2ea3f1b228beff5fd364a127, - limb2: 0x1750bd450b85cbd6 + limb2: 0x1750bd450b85cbd6, }, w7: u288 { limb0: 0x4b83377c168d89b919386546, limb1: 0x26169d3ce55db12ecafd74bc, - limb2: 0x1248cfad33a21477 + limb2: 0x1248cfad33a21477, }, w8: u288 { limb0: 0x724e5f5589d549a709b2b5ef, limb1: 0x8816b055888399c99a954b82, - limb2: 0x28d156bac04e6493 + limb2: 0x28d156bac04e6493, }, w9: u288 { limb0: 0x56fbb49c235bc75082f5f26e, limb1: 0x56afece475580f453f9126f2, - limb2: 0x39e1ab153bd7095 + limb2: 0x39e1ab153bd7095, }, w10: u288 { limb0: 0x4fd83597fed1d7e7b9d09e04, limb1: 0x7c7f558d3e74e6617d7f08b5, - limb2: 0x14853f940bf5c55 + limb2: 0x14853f940bf5c55, }, w11: u288 { limb0: 0xae3473546aa01a618b78b125, limb1: 0xfee14a3ce2b7af4e1872fe49, - limb2: 0xaa480d613601947 - } + limb2: 0xaa480d613601947, + }, }, lambda_root_inverse: E12D { w0: u288 { limb0: 0xd4445d3e89123811ede12825, limb1: 0x7794dbccbd7925ea98507cf8, - limb2: 0x1d7a9ffbbe137d69 + limb2: 0x1d7a9ffbbe137d69, }, w1: u288 { limb0: 0xe7642301653a6307c7467811, limb1: 0x75e5c1fc0ff08be0981a61d8, - limb2: 0x1f45aa2ee73f15e2 + limb2: 0x1f45aa2ee73f15e2, }, w2: u288 { limb0: 0x9865533968e39b5083fc576e, limb1: 0xc63d81e8d0c1e37c901a5a56, - limb2: 0x2446d99f276e4c8b + limb2: 0x2446d99f276e4c8b, }, w3: u288 { limb0: 0x31b5aada49be919aaa447cc7, limb1: 0x5131a5f04c3c634c9df3447, - limb2: 0x223bd50b771fcaa9 + limb2: 0x223bd50b771fcaa9, }, w4: u288 { limb0: 0x6aefbf4a9ce706bc36252c47, limb1: 0x4d7ddfacdd59750105dcc37f, - limb2: 0x24cfef2958a7c9c + limb2: 0x24cfef2958a7c9c, }, w5: u288 { limb0: 0xe9789fb7259c294210f7720e, limb1: 0x4955cb370b0ac66e3e295ea6, - limb2: 0x3a974db52b27468 + limb2: 0x3a974db52b27468, }, w6: u288 { limb0: 0x3fb8266ad697b531de5e2fb6, limb1: 0x41feb355a44845dc30c2a9ae, - limb2: 0x160b7346ec9fdd98 + limb2: 0x160b7346ec9fdd98, }, w7: u288 { limb0: 0xa56b5d534495a358f9c739f, limb1: 0x5f204fa5ce1c9a99c7979911, - limb2: 0xe46af84e1cbba80 + limb2: 0xe46af84e1cbba80, }, w8: u288 { limb0: 0xa9b51192113e131bd5572a21, limb1: 0x9b9524e9708ac412d3fa05fe, - limb2: 0x1f2b5709d0d7c949 + limb2: 0x1f2b5709d0d7c949, }, w9: u288 { limb0: 0x1052a86d50224b92838c5d76, limb1: 0xf690cd9eab121b1f329194c, - limb2: 0x8a75eef583ffc3b + limb2: 0x8a75eef583ffc3b, }, w10: u288 { limb0: 0x9764f07572ce9593878da9fb, limb1: 0xde7ec74175c125ac7e878050, - limb2: 0xef3a64570d17038 + limb2: 0xef3a64570d17038, }, w11: u288 { limb0: 0x35825f15893ad52a39f54331, limb1: 0x7b87bc78053320664e06d12b, - limb2: 0x2a6290607745b58a - } + limb2: 0x2a6290607745b58a, + }, }, w: MillerLoopResultScalingFactor { w0: u288 { limb0: 0x1, limb1: 0x0, limb2: 0x0 }, @@ -4102,3170 +4102,2116 @@ mod pairing_tests { w4: u288 { limb0: 0x0, limb1: 0x0, limb2: 0x0 }, w6: u288 { limb0: 0x0, limb1: 0x0, limb2: 0x0 }, w8: u288 { limb0: 0x0, limb1: 0x0, limb2: 0x0 }, - w10: u288 { limb0: 0x0, limb1: 0x0, limb2: 0x0 } + w10: u288 { limb0: 0x0, limb1: 0x0, limb2: 0x0 }, }, Ris: array![ E12D { w0: u288 { limb0: 0xf2fa8194a9fdd627525394de, limb1: 0xe1d604e9b0c0efb376aaa3e1, - limb2: 0x6e2d5c667e253ff + limb2: 0x6e2d5c667e253ff, }, w1: u288 { limb0: 0x9d2d152e532c421b7834a99d, limb1: 0xe2c971b204e63954fbc8ad23, - limb2: 0x2dc3c5e55face7c5 + limb2: 0x2dc3c5e55face7c5, }, w2: u288 { limb0: 0xa81940aec94ea9901fcac97d, limb1: 0xea2801041714bcb5d41a0ff, - limb2: 0x2ff4750593044152 + limb2: 0x2ff4750593044152, }, w3: u288 { limb0: 0x55867c1f0779e0422d545f0c, limb1: 0xf76a2af1d6b410d8639501aa, - limb2: 0xdab9fd3d1ef5226 + limb2: 0xdab9fd3d1ef5226, }, w4: u288 { limb0: 0x845bfd3e55f70e8272c8fb3, limb1: 0x3ffd60992916c6410e0f5352, - limb2: 0x2fea029bdb6a10f5 + limb2: 0x2fea029bdb6a10f5, }, w5: u288 { limb0: 0xc46ce45b66636cb6ba1ee436, limb1: 0xb7d8f5bedbe3c09728563ff0, - limb2: 0x2f329aa1c588e3e4 + limb2: 0x2f329aa1c588e3e4, }, w6: u288 { limb0: 0x100fa50e29907ad3283e7b83, limb1: 0xa405ca3722d951cb9a512f1c, - limb2: 0x2290e74d07afff26 + limb2: 0x2290e74d07afff26, }, w7: u288 { limb0: 0x7f4ccb1aa1cff1983d7d2ae4, limb1: 0x8be6fdabbb6f2986a20934fe, - limb2: 0x6bd6eba6eb034c9 + limb2: 0x6bd6eba6eb034c9, }, w8: u288 { limb0: 0x49149a6939c1e7afec80ee3c, limb1: 0xb3543992e315765cb35d0f7d, - limb2: 0x1ca0c85d7f94b5c6 + limb2: 0x1ca0c85d7f94b5c6, }, w9: u288 { limb0: 0x3e916ca84262a68f9eea11f9, limb1: 0x5ecce1f7718bba441de2df4f, - limb2: 0x1f70622e79ccbeb3 + limb2: 0x1f70622e79ccbeb3, }, w10: u288 { limb0: 0x9e62952be0e54c3427ea8aab, limb1: 0xc1ad39913d06e14c6ad3a156, - limb2: 0x2492333e1554b6d2 + limb2: 0x2492333e1554b6d2, }, w11: u288 { limb0: 0xb40efced523794fd2aa17d4a, limb1: 0xe1f6f435746d944886953830, - limb2: 0x2a9baf66b1ec17a - } - }, - E12D { - w0: u288 { - limb0: 0xb2cbc2078ddbfaa7de025ab5, - limb1: 0x8f180b7f837ff5880af2d8a7, - limb2: 0x9cc2ac2feb91b78 - }, - w1: u288 { - limb0: 0xa591428b92ebd2a21abec753, - limb1: 0x28208698d947d559a85b25c7, - limb2: 0x2b4691bfa6539beb - }, - w2: u288 { - limb0: 0xf6ef1e002aa95b3c440d8421, - limb1: 0x9cd77810447ab3747db696a3, - limb2: 0x27b1bda2ff2bbe08 - }, - w3: u288 { - limb0: 0xde4cd7d7910730b235b46414, - limb1: 0x2ddb6a5f96f0380df66dfe01, - limb2: 0xfc2973e1356ebf5 - }, - w4: u288 { - limb0: 0xd725e7a84302d8aa32e80fcf, - limb1: 0xc1be1f3b6812a70f1d4dbdef, - limb2: 0x96dc0c72aa87605 - }, - w5: u288 { - limb0: 0xaa4b56d786db49e831390ace, - limb1: 0x499ad8458f796af631ece5e5, - limb2: 0xea15f5754762638 - }, - w6: u288 { - limb0: 0x174d95d075fd3727469afe66, - limb1: 0x223ede9edcf039bf49c1ec61, - limb2: 0x103abf47dccc2f4d - }, - w7: u288 { - limb0: 0xa6cf05749310487c359ed5e3, - limb1: 0x66bb1e1310597230fbd36c03, - limb2: 0x26e4a5a33276fc31 - }, - w8: u288 { - limb0: 0x3b63b728ddcc7c24ba04ea22, - limb1: 0x77bdfb0a69f8df530bdd64ae, - limb2: 0x65373ec7b46d265 - }, - w9: u288 { - limb0: 0x4f31198ee15d57679a07cceb, - limb1: 0x767d00d134cad0d2879f0705, - limb2: 0x51b781e90fe55d3 - }, - w10: u288 { - limb0: 0x1d25747ef4e9d6c1a688457c, - limb1: 0x7a67f4f4d74fd3acd28c325e, - limb2: 0x880237565c157f1 + limb2: 0x2a9baf66b1ec17a, }, - w11: u288 { - limb0: 0xb5c1a016cca2b0b70d3882c4, - limb1: 0xe4b9a0f502db2b1916a717fe, - limb2: 0x1c718116af5b9bf - } }, E12D { w0: u288 { limb0: 0xa1fc4e1e3b65f7f7793d75d7, limb1: 0xae4e796f20d02f00e403c73f, - limb2: 0x21c18c15eaf2e543 + limb2: 0x21c18c15eaf2e543, }, w1: u288 { limb0: 0x3199827390abbe9ca30d6d5e, limb1: 0x730b129db4170c217248713c, - limb2: 0x1ea8d6f41a6171e5 + limb2: 0x1ea8d6f41a6171e5, }, w2: u288 { limb0: 0x78d14fddb4434f077e2deab0, limb1: 0x9663d11277af92fcfe15e610, - limb2: 0x19210af828cd091a + limb2: 0x19210af828cd091a, }, w3: u288 { limb0: 0x4de887d39eee6cb04c395b87, limb1: 0xc2ff130aea14a5d78e28cf8d, - limb2: 0x2b61bdd91c851524 + limb2: 0x2b61bdd91c851524, }, w4: u288 { limb0: 0xf2b2ba244a309375052c4f42, limb1: 0xacf0b149db02d1722805cad4, - limb2: 0x1b3d1b4d652e719c + limb2: 0x1b3d1b4d652e719c, }, w5: u288 { limb0: 0x8f6d0954663be60b848af91b, limb1: 0x4cd56e52e93373b68f6d679d, - limb2: 0x2e72ef29d615a4a + limb2: 0x2e72ef29d615a4a, }, w6: u288 { limb0: 0xe4d9fbc1e47fc17f958217f, limb1: 0x1866843e972eb31da1b03a09, - limb2: 0x17626c9319fd1b0e + limb2: 0x17626c9319fd1b0e, }, w7: u288 { limb0: 0x6e90014bb73ec0e94d75f1ae, limb1: 0x8ce846c86c0d98599ea26c73, - limb2: 0x1c2a1cb42ebfeca2 + limb2: 0x1c2a1cb42ebfeca2, }, w8: u288 { limb0: 0x59885f5adfdafec208157d20, limb1: 0xc06108cd50dca18c6f38d6bc, - limb2: 0x6cd036a10985c09 + limb2: 0x6cd036a10985c09, }, w9: u288 { limb0: 0x585e0bc54c4d2fe3d596b2e3, limb1: 0x5927149279279dcadf8c97b5, - limb2: 0x2b1fa6025f359ad2 + limb2: 0x2b1fa6025f359ad2, }, w10: u288 { limb0: 0x2b7b8c0f7639faad593e8383, limb1: 0xfcf8631ba48c4afe18d80c85, - limb2: 0x966e5a47631686f + limb2: 0x966e5a47631686f, }, w11: u288 { limb0: 0x69461bc00469ae6f14b23750, limb1: 0xbc63f9e8cb37c1f943bf0690, - limb2: 0x1d4e149f8299aa2d - } - }, - E12D { - w0: u288 { - limb0: 0xc141808bf3d908c4616492b3, - limb1: 0x5834851b0abdb02873b62058, - limb2: 0x9f8f3a514281306 - }, - w1: u288 { - limb0: 0x3b820a07ba724a9917378495, - limb1: 0xe2c3f393d3ed30b098663d7, - limb2: 0x2e48eb414b93a0b3 - }, - w2: u288 { - limb0: 0x84098a37010e1038db40961, - limb1: 0xf808a4d7ad54cfeb6d8eba26, - limb2: 0xbdf45af1f5b4215 - }, - w3: u288 { - limb0: 0x900ccb524892622686c3b558, - limb1: 0x9b467c9e83e6ad6cb145da60, - limb2: 0xf6c4c18f9d9acdf - }, - w4: u288 { - limb0: 0xb2a38810a29073d9d799fbd6, - limb1: 0xfa7be656ef56e78fce55e743, - limb2: 0x8c23916cee1cbee - }, - w5: u288 { - limb0: 0xe9b5f5ac08dc3072186dc4f3, - limb1: 0x4057b4957d214455b93b6279, - limb2: 0x1d16044d31983066 - }, - w6: u288 { - limb0: 0xb0ad3ee897b0f656eabd71b5, - limb1: 0xb704ceb895c3924cf4727927, - limb2: 0x17f1f10e76b4e9fd - }, - w7: u288 { - limb0: 0x4f04625b02e3e1bf6d387c36, - limb1: 0x1d583e19e6bc9ac57db13a0c, - limb2: 0x1095b03dcb74d1b1 - }, - w8: u288 { - limb0: 0x21c4399cc18b975d04242497, - limb1: 0x687f6f86108390a0cf2dd208, - limb2: 0x2d67c398ad69288c - }, - w9: u288 { - limb0: 0x603e3fe991e6720bd794401c, - limb1: 0xadcf00e62f844d042fa55c88, - limb2: 0x2955c5cde10bd61d - }, - w10: u288 { - limb0: 0x3433d6d3c30f1ede92e895d6, - limb1: 0xf39baea2524cc0790b3ba967, - limb2: 0x2ecbad3d0674a417 + limb2: 0x1d4e149f8299aa2d, }, - w11: u288 { - limb0: 0x4cb8e0bfc2f34d527970ee48, - limb1: 0xa2eb50c665bf7a12292ea3bc, - limb2: 0x11b947c4a0acbee9 - } }, E12D { w0: u288 { - limb0: 0x26c62ee7e94dcb29e0357bb1, - limb1: 0x4ca1598a87bc0412dd8d117f, - limb2: 0x17774e3e8a23ff73 + limb0: 0xbfcbda7691d6021a784022d5, + limb1: 0xf407b3b09ed4b94542a95f63, + limb2: 0x484ab1dd7428e01, }, w1: u288 { - limb0: 0x7809068c62de431b5489c670, - limb1: 0xc994b0437e4dc0b9527821ca, - limb2: 0x1982b56c3e0bcdc9 + limb0: 0xb133cd33b820c39fb9fef059, + limb1: 0x254f89192819893523420d52, + limb2: 0x181f7e2c71063ffc, }, w2: u288 { - limb0: 0x9077dade5d72d1ad3abd8fd, - limb1: 0xa497c1a9c18ef0ef3993ddfd, - limb2: 0x2872b0c088da975c + limb0: 0x6386c277c18b70fbeccdb0ac, + limb1: 0x830322bd75699347acf10beb, + limb2: 0x25b122a978cff8b4, }, w3: u288 { - limb0: 0x67acef3ecbb15eee40139640, - limb1: 0xdbcbcc93eb8642d2dc8167a4, - limb2: 0x2969378a0cfddacb + limb0: 0x43de51582c42a09b767cb0db, + limb1: 0x38fbf88e5df42583be8f94b5, + limb2: 0x425b802f131c9cb, }, w4: u288 { - limb0: 0xa4383bb93d17ceefd6953d3c, - limb1: 0xd2319b0bfd91255bddcef3eb, - limb2: 0x193581cebff836c6 + limb0: 0x79e8bf369ece3027d02d9b23, + limb1: 0xc43d966f8d7269715ebecee4, + limb2: 0x10b0ade019bf9b51, }, w5: u288 { - limb0: 0xa0008e4410656947089801c1, - limb1: 0xf23a463b42645f7fec8e6f0, - limb2: 0x26457780a6d80fcc + limb0: 0x25fb1663997d761c2d966543, + limb1: 0xbc90d7df362a1172ac8ad1d7, + limb2: 0x1236e39a09e91ce8, }, w6: u288 { - limb0: 0x6db2f6f180a6b0cab54e0502, - limb1: 0x7409ae15eaa0aa0311a81058, - limb2: 0x24e212fee032cb7c + limb0: 0x7519170922b5b0bdd65be6a7, + limb1: 0x8d728cf7e9203cdde92b6b1a, + limb2: 0x1559bd06e06a1748, }, w7: u288 { - limb0: 0x7d7b5ce96bac14f5cb32d71b, - limb1: 0xcb09e3f0e4fcd13eece95b0a, - limb2: 0x260d3e40114b8d2e + limb0: 0x3522045a369b7bbb242270df, + limb1: 0xd947b9644921f9337a72005e, + limb2: 0xdcb748b310acabf, }, w8: u288 { - limb0: 0xc62aa77588361bf2193aa0c, - limb1: 0xd89e8c8fa73dbf28988f967, - limb2: 0x1b1a5d98ae47d852 + limb0: 0xca82b75883645f8fd56ce314, + limb1: 0x48e0e79fa58c59fd9d8355f8, + limb2: 0x101f82655362fa7b, }, w9: u288 { - limb0: 0xf4b62996e365f3421a3259b, - limb1: 0x73462ce2dd5f25690f00ec11, - limb2: 0x19139c8f3a190fa8 + limb0: 0x61742edaa0da46b51a3efb80, + limb1: 0x20dc1158e04bce1a5dc049e0, + limb2: 0x1cf24ce8520c3a8b, }, w10: u288 { - limb0: 0x709d865aa40c7a52986a5e5a, - limb1: 0xa9887cd610decf67818b14bd, - limb2: 0x2143f989b60bcfb4 + limb0: 0x37ffb162df38cdcb561cd489, + limb1: 0x16b25873b29fdfb563b16a9f, + limb2: 0x2375d4bad02acd4, }, w11: u288 { - limb0: 0x43ca0093e2dca54f07586b65, - limb1: 0x5e5363e0de0a1c9ed68f160c, - limb2: 0x2d87bf0c00e24b17 - } + limb0: 0x2c023248737e318d2195a92, + limb1: 0xaca7d0297ea2a7757d8cc9e1, + limb2: 0x251260ddb7f1756d, + }, }, E12D { w0: u288 { limb0: 0x81fe8c8afe6873cf3f7b5cd, limb1: 0x4ec5d556e1a946d1ddcb069a, - limb2: 0xca3291e3f6ef12e + limb2: 0xca3291e3f6ef12e, }, w1: u288 { limb0: 0x474f1efbda01f550d6c04a8a, limb1: 0x59446cd0acd4c47c9c9dce4f, - limb2: 0x210465e49e0a585b + limb2: 0x210465e49e0a585b, }, w2: u288 { limb0: 0xad9aeb3a7e41876c9e3ef2d2, limb1: 0xb4967ef0d9e28b41cfb7752e, - limb2: 0x1579d33d082372e9 + limb2: 0x1579d33d082372e9, }, w3: u288 { limb0: 0x8897068598400e625d41936c, limb1: 0x3630dc545ed7f6dd2996f95d, - limb2: 0xe7b6ee901988b96 + limb2: 0xe7b6ee901988b96, }, w4: u288 { limb0: 0x56832f4842ec5db2742798ab, limb1: 0xe2699baf1ca60a52f7018e62, - limb2: 0x135c42195434dfb8 + limb2: 0x135c42195434dfb8, }, w5: u288 { limb0: 0x152cc078fbb77283d8258c18, limb1: 0xbf47d56bbf8a81ad6350e169, - limb2: 0x1c7c8963acb4f782 + limb2: 0x1c7c8963acb4f782, }, w6: u288 { limb0: 0xbe58ec496805ce645c12ea57, limb1: 0x3dee712fe63432f75fa00299, - limb2: 0x230af637699638ee + limb2: 0x230af637699638ee, }, w7: u288 { limb0: 0xa24d5cf767d2273e5a46a6de, limb1: 0x9d31117f3370645b3f8ba4d3, - limb2: 0x20db0eb3812b696a + limb2: 0x20db0eb3812b696a, }, w8: u288 { limb0: 0xb177322e3c461ec3a18fab81, limb1: 0x4e10f0ab4925d0caa9f27a52, - limb2: 0x1c467f5ac56d1ba3 + limb2: 0x1c467f5ac56d1ba3, }, w9: u288 { limb0: 0x6582d9e0006027351cb08356, limb1: 0x9e577626acb2a07771557dbe, - limb2: 0xd7c96fe485899f0 + limb2: 0xd7c96fe485899f0, }, w10: u288 { limb0: 0x100017574dd91436dbce587a, limb1: 0xbdda3d96d428123f881648ff, - limb2: 0x2b7e0871d76d7562 + limb2: 0x2b7e0871d76d7562, }, w11: u288 { limb0: 0x534b2d82060ca792890071fb, limb1: 0x28eb9400b69a85997c673f39, - limb2: 0x26256194b2d8184d - } + limb2: 0x26256194b2d8184d, + }, }, E12D { w0: u288 { - limb0: 0xb34c98eb4cab6388a544842b, - limb1: 0xce327724aa74afacf7bac08b, - limb2: 0x36162799a7e24d6 + limb0: 0x7a0590f085219d1e49b1a202, + limb1: 0xc263a8319f723136aa0b96a3, + limb2: 0x679690afb81dbda, }, w1: u288 { - limb0: 0xa9a385f7e3699b92207e68bd, - limb1: 0x257186e8d55ad344214b98e3, - limb2: 0x1498b0559bb73436 + limb0: 0x71b85226100a44d0bf7d832a, + limb1: 0x3067f6fbf94ee90ffad1172, + limb2: 0x1736140d66ba7277, }, w2: u288 { - limb0: 0xe323ef14d16bf161a52a69df, - limb1: 0xa5f8671454497314c427ed14, - limb2: 0x2b156b033ded48e2 + limb0: 0x623d0ea9bc4d6d56f1f30d4a, + limb1: 0x2ab6f8d1d518c5bf6193d719, + limb2: 0x9f1bd18e2b9ee3a, }, w3: u288 { - limb0: 0xa012d41cd6a98deca19cd46f, - limb1: 0x20dff1bab685ffa19766cc30, - limb2: 0x2ffcb88895ad917c + limb0: 0x6761411697651fc6c319f2f6, + limb1: 0x61d48ed7306e80c3c447cc50, + limb2: 0x18b5b8fee4c3bed9, }, w4: u288 { - limb0: 0xb1937ab7b0a0788482c9c77c, - limb1: 0x382711ded20158fbebb40451, - limb2: 0x2329acac3b7e7657 + limb0: 0xb09464e6861e5ed9142f517a, + limb1: 0x3697362f33ee1b6a2ffca931, + limb2: 0x251eca3eb15ae1bb, }, w5: u288 { - limb0: 0x5528bcd30d715a2f1bff1ca6, - limb1: 0x3ec427039627584e818b63c7, - limb2: 0x25c6a0cf63bf7dd7 + limb0: 0xb753d0fb3ef0221f38b3777d, + limb1: 0x2b3cba72ef077890d91f7d72, + limb2: 0xcac0c0d82a467de, }, w6: u288 { - limb0: 0xd4898a4d5fdf2a7d8a0c304f, - limb1: 0x2d95e510700be4d67ef65764, - limb2: 0x2e9016185f7b20a0 + limb0: 0xacf131a2e4a8ac99cb66c4c7, + limb1: 0xf0ba7668749554c860961672, + limb2: 0x2b83f6926886f3ff, }, w7: u288 { - limb0: 0x49ed23d113552b4cb2636085, - limb1: 0x575c9889f5083cf48dc634b6, - limb2: 0x17c684edf163feea + limb0: 0xa57b1654a5ea8d73e9cb6916, + limb1: 0x37d0bb062363510695f11887, + limb2: 0x1025a3438e62a335, }, w8: u288 { - limb0: 0x785afcfb500eb46ac2ebdfae, - limb1: 0x9d5213a6b98dd3b465eb31fc, - limb2: 0x1422e11be61be73 + limb0: 0xa6e8bde02fc0040222948861, + limb1: 0xb3cd895a379088da54e7d665, + limb2: 0xf239a541e2db6d9, }, w9: u288 { - limb0: 0x6acb9af224981a2f1770aa5c, - limb1: 0x9f91d142d1bcf8405167f240, - limb2: 0x2ac23d0b332316c9 + limb0: 0x150ab124c283da1a24aaa28f, + limb1: 0x7b68a368f3df8a541116a40, + limb2: 0x29dabc63d0f5e9a1, }, w10: u288 { - limb0: 0x2e61b3dbe4e7856062c5a10e, - limb1: 0x9dcca7992b329429dd1cf22b, - limb2: 0xb3706c9bb52d916 - }, - w11: u288 { - limb0: 0xecdf4465d7ff363af70f9a9d, - limb1: 0x6927013c51139d2fe43bc7b9, - limb2: 0xf58d4ab3c5f025 - } - }, - E12D { - w0: u288 { - limb0: 0x7a0590f085219d1e49b1a202, - limb1: 0xc263a8319f723136aa0b96a3, - limb2: 0x679690afb81dbda - }, - w1: u288 { - limb0: 0x71b85226100a44d0bf7d832a, - limb1: 0x3067f6fbf94ee90ffad1172, - limb2: 0x1736140d66ba7277 - }, - w2: u288 { - limb0: 0x623d0ea9bc4d6d56f1f30d4a, - limb1: 0x2ab6f8d1d518c5bf6193d719, - limb2: 0x9f1bd18e2b9ee3a - }, - w3: u288 { - limb0: 0x6761411697651fc6c319f2f6, - limb1: 0x61d48ed7306e80c3c447cc50, - limb2: 0x18b5b8fee4c3bed9 - }, - w4: u288 { - limb0: 0xb09464e6861e5ed9142f517a, - limb1: 0x3697362f33ee1b6a2ffca931, - limb2: 0x251eca3eb15ae1bb - }, - w5: u288 { - limb0: 0xb753d0fb3ef0221f38b3777d, - limb1: 0x2b3cba72ef077890d91f7d72, - limb2: 0xcac0c0d82a467de - }, - w6: u288 { - limb0: 0xacf131a2e4a8ac99cb66c4c7, - limb1: 0xf0ba7668749554c860961672, - limb2: 0x2b83f6926886f3ff - }, - w7: u288 { - limb0: 0xa57b1654a5ea8d73e9cb6916, - limb1: 0x37d0bb062363510695f11887, - limb2: 0x1025a3438e62a335 - }, - w8: u288 { - limb0: 0xa6e8bde02fc0040222948861, - limb1: 0xb3cd895a379088da54e7d665, - limb2: 0xf239a541e2db6d9 - }, - w9: u288 { - limb0: 0x150ab124c283da1a24aaa28f, - limb1: 0x7b68a368f3df8a541116a40, - limb2: 0x29dabc63d0f5e9a1 - }, - w10: u288 { - limb0: 0xfcc3ffb404bd1c0effcc67fc, - limb1: 0xa99cc3a1080e8fa3eac0f79d, - limb2: 0x16b2ab0f6fefb72b + limb0: 0xfcc3ffb404bd1c0effcc67fc, + limb1: 0xa99cc3a1080e8fa3eac0f79d, + limb2: 0x16b2ab0f6fefb72b, }, w11: u288 { limb0: 0xf4fab8a30df710b0a7aa23e4, limb1: 0xee08aba39e9b86d66f89b09, - limb2: 0x10297d8dba978173 - } - }, - E12D { - w0: u288 { - limb0: 0x5823ad601cc1a941bdf1b9f7, - limb1: 0xac6dee3e52f983d633d18efb, - limb2: 0x2baf533173aad278 - }, - w1: u288 { - limb0: 0x955e174a1453c268536d19bf, - limb1: 0xb91059381d19ea076d1cc4a3, - limb2: 0x222d695ac04df2b8 - }, - w2: u288 { - limb0: 0xd7ab75c17e96ecd900871b63, - limb1: 0x79669344349188c0b76138e3, - limb2: 0x4ce45a2fa17a6db - }, - w3: u288 { - limb0: 0x901e95efd1caa95e496e1703, - limb1: 0xdf521580eeda1c42b20244cc, - limb2: 0x5f5af97d5233e7b - }, - w4: u288 { - limb0: 0x71d57a05c07a1b8b75762f55, - limb1: 0x8a274d7780ddf13205587144, - limb2: 0x78a0ec0197c09c8 - }, - w5: u288 { - limb0: 0xf25162848f560ac6839d603a, - limb1: 0x30810acd9bdd35ba36ea8742, - limb2: 0x1138d4cca81215f3 - }, - w6: u288 { - limb0: 0xf7e43b6c89fefd00cefb291, - limb1: 0xcc6d04b9e05abd9c122a93e1, - limb2: 0x10ded642ee62251c - }, - w7: u288 { - limb0: 0x10f6fc19044b522c284e1fa0, - limb1: 0xe937d8e00309ccf250a89f13, - limb2: 0x21dc4a7143af1a9e + limb2: 0x10297d8dba978173, }, - w8: u288 { - limb0: 0xda5ee9d36b84a9ef129cff31, - limb1: 0x9ae6534b056cfbce0243a0fe, - limb2: 0x2a7f19d4258100fd - }, - w9: u288 { - limb0: 0x6dd2e9bfc3f7da352a227d0c, - limb1: 0xcfdaaaaec27d7dec3ecc8b94, - limb2: 0x2f0201f85b622f02 - }, - w10: u288 { - limb0: 0x21dc892ce159be1579cd9021, - limb1: 0x95e2b8d3809f2c702a306b9f, - limb2: 0x1b11537f08501897 - }, - w11: u288 { - limb0: 0x3bf48b96c6095627a99690e4, - limb1: 0x65ac6c3c460cc4924730547e, - limb2: 0x292063765ef63920 - } }, E12D { w0: u288 { - limb0: 0xdb3673fa637fc2350edde2a, - limb1: 0x6c0e1efe696942fdd186409, - limb2: 0x4d717abffa4f043 + limb0: 0x7f1da8d717c321da92620a38, + limb1: 0x1c34d5a41dd1580cad5da4bb, + limb2: 0x264c35a795ea35b3, }, w1: u288 { - limb0: 0x6a3a9cdda76a9bac70643261, - limb1: 0x54daa6d6db74f099866764b0, - limb2: 0x2badc4eac37416b2 + limb0: 0x93ef419e31d7e04fbfe40f26, + limb1: 0x8dcee057ceb6a01686e7055a, + limb2: 0x1c2f5969c7a2c07e, }, w2: u288 { - limb0: 0x66a59adcf914fa232ca06762, - limb1: 0x27282724dc02baf77cc21cb4, - limb2: 0x29b95069fabac174 + limb0: 0x8fe175866e96f98fff3a22a0, + limb1: 0x9e8081541ccefcb53c7eb2d, + limb2: 0x2244e4f0ae949c4, }, w3: u288 { - limb0: 0xe1aaf7f34e80dcce78ea37cb, - limb1: 0x1ca5dfc1029acac068971ebe, - limb2: 0x1d14837c4f978ad4 + limb0: 0xf44cab93381d8325a2fc894e, + limb1: 0x21e4d8a6a1c197c760b4b674, + limb2: 0x2e70f85fae87c741, }, w4: u288 { - limb0: 0x2755c2d9db19afe44fa13d36, - limb1: 0x1035919bcea316a157372024, - limb2: 0x150c392eda60a463 + limb0: 0x2b9421d1f4a75279a4a37950, + limb1: 0xa40bf928ba237c3b64bd886b, + limb2: 0x2181a8053d4d2243, }, w5: u288 { - limb0: 0xc0e730f5dae8b4a52607e44c, - limb1: 0xda536448bac31ce91f7571ee, - limb2: 0x8342cebc8d3528b + limb0: 0x551eedbb1be148ec878c8497, + limb1: 0x63cfbe2727afbb1c9ab904d8, + limb2: 0x1201390258b7fa5c, }, w6: u288 { - limb0: 0x7edbd0ab676cf56536884ab2, - limb1: 0x5acecc970bb1dfe9d2e9e08c, - limb2: 0x1e30826bded89945 + limb0: 0x3413023817ffe912237924bb, + limb1: 0xc8ec7546fa50a3a5bf73ef64, + limb2: 0x154b10842ab9f08e, }, w7: u288 { - limb0: 0x5d8e808ef06fd9a12dfeccca, - limb1: 0x4550cf32aa76a1b51dc142f2, - limb2: 0xa11ed1bffc1b9e4 + limb0: 0x3433f3946abd235f4852671f, + limb1: 0x4f0065f08eeb7ee8349bf5b9, + limb2: 0x25af5a4af220ec11, }, w8: u288 { - limb0: 0x1868898bb4fd01800e7f2010, - limb1: 0x14339a907bab8832d24d079, - limb2: 0x2858676a6cafb3bb + limb0: 0xdf980696295073821473e3a9, + limb1: 0xe1d5ffff2ee85385ae1d84ed, + limb2: 0x998add2cc38123b, }, w9: u288 { - limb0: 0xe65650a31128e11b7873d8ab, - limb1: 0x3dc232e3575a89226efda264, - limb2: 0x786b0a87dfba5ac + limb0: 0xa4460f4fa19d7da44b6d37d6, + limb1: 0x21a63d9ac273152908e20cf4, + limb2: 0xb43c05ecc1a46d7, }, w10: u288 { - limb0: 0xb9420c8de6c9333779b29375, - limb1: 0xb6c64d5de10d1b414a63a7af, - limb2: 0x24fea2936fdbd45a + limb0: 0xfa2ac15271ea1ea122a7f7c2, + limb1: 0x98ccdf1be55f7224639cae5a, + limb2: 0x128165600a34f4d8, }, w11: u288 { - limb0: 0x77e7cda91612d752877d536c, - limb1: 0x7937f46fa26d5be3013b9629, - limb2: 0xb2129f6dc2019dc - } + limb0: 0x880fb407eaa05426a8a3699f, + limb1: 0x13b039a6d088cde86bc99280, + limb2: 0x25f0ddbe00bfe102, + }, }, E12D { w0: u288 { limb0: 0xe79a1a3b581b15c6552fee96, limb1: 0x623169860e532b6833adaed0, - limb2: 0xdf2e1bc3f49b17f + limb2: 0xdf2e1bc3f49b17f, }, w1: u288 { limb0: 0x82fbfcc8e320d1a559108ebd, limb1: 0x398449cedc8a6c95fb7efba7, - limb2: 0xe3f4dc0728dd65a + limb2: 0xe3f4dc0728dd65a, }, w2: u288 { limb0: 0xd42e5660c7259f239e94e9e6, limb1: 0x56a59f4335e45444ad6f0ab9, - limb2: 0x717e8c6b06e6d07 + limb2: 0x717e8c6b06e6d07, }, w3: u288 { limb0: 0x959c3512c9bb1d3663382bf5, limb1: 0x25061bc0e8ad631f66c35752, - limb2: 0x1be6180a76fe2379 + limb2: 0x1be6180a76fe2379, }, w4: u288 { limb0: 0x113a01a95ff0b7344a6ed1fa, limb1: 0xed275900f8b636a554551b04, - limb2: 0x1ed20c5fe3160f13 + limb2: 0x1ed20c5fe3160f13, }, w5: u288 { limb0: 0xda5b00dcbf123e7ef0e22ecb, limb1: 0x4712a15f67df4356961b91b0, - limb2: 0x191a6e54a247677e + limb2: 0x191a6e54a247677e, }, w6: u288 { limb0: 0x8727e056ef1f2e00001ee30b, limb1: 0xa5899f981336f6b6ffb14600, - limb2: 0x2ba9019a071ff9e7 + limb2: 0x2ba9019a071ff9e7, }, w7: u288 { limb0: 0x430616f2db6ce63405b60234, limb1: 0x38853a1ed4fe555eb90e9387, - limb2: 0xeb9cf3c0e1b1390 + limb2: 0xeb9cf3c0e1b1390, }, w8: u288 { limb0: 0x48f41979d7ee62a531dc11b1, limb1: 0xbf258b286416b510392d3426, - limb2: 0x586a2b2130ac60c + limb2: 0x586a2b2130ac60c, }, w9: u288 { limb0: 0x12a3062d7cf738e164cab726, limb1: 0xd7c481cf0010024424dad92, - limb2: 0x240e926f21d6137a + limb2: 0x240e926f21d6137a, }, w10: u288 { limb0: 0xde116640887cb84fb5764ef7, limb1: 0xced8e2d7611e1b329248dc19, - limb2: 0x6b9c04f96a0360e + limb2: 0x6b9c04f96a0360e, }, w11: u288 { limb0: 0xc8f83c2f3507e8a16a023597, limb1: 0x7a1d65fb1bc859ac0b9a3af6, - limb2: 0x2dbdf00f63e255a2 - } - }, - E12D { - w0: u288 { - limb0: 0x6b9e7f3811d5d180743d8b0e, - limb1: 0xd0801ea02f0c2b678f697915, - limb2: 0x13b06a6976eb6983 - }, - w1: u288 { - limb0: 0xac14b0ea09f63a3d189754dc, - limb1: 0x6c3ea781d36a3a0aea0d6b39, - limb2: 0x2f45d7a66cdc1108 - }, - w2: u288 { - limb0: 0x886daf9760cadfc00f1f803c, - limb1: 0xcc24279dbbae86fec989accc, - limb2: 0x164a04f8d1355b2 - }, - w3: u288 { - limb0: 0x6869cc73f05fc76616a5af32, - limb1: 0x494594bb6630a90c3ce83367, - limb2: 0x18338cabebac5bd7 - }, - w4: u288 { - limb0: 0x6206c2df1f84d402c3d23c1d, - limb1: 0x730954caf366d40acc4aaf07, - limb2: 0x1ec609c2ba4335fa - }, - w5: u288 { - limb0: 0xdb720aeae73524bbf064aa20, - limb1: 0xe0ae53a1e01469bd02bec526, - limb2: 0xfa6dc9adf40d1ab - }, - w6: u288 { - limb0: 0x212af7fa80a61af22787b6a8, - limb1: 0x6b8ee77ba5e043951d715e9c, - limb2: 0x17fcad1938a13ef4 - }, - w7: u288 { - limb0: 0x9d1d2cde9ad06e7038af58b6, - limb1: 0xd5d46c1afa24bf3473a5edf7, - limb2: 0x2790e3ffd61e0121 - }, - w8: u288 { - limb0: 0x8c1123c83e1a0d5a3639c5ae, - limb1: 0x4e05d21564b5c4fa4ac1b5f9, - limb2: 0x1d2d03d3d7eedea6 - }, - w9: u288 { - limb0: 0x20b092c19e6a17ef19ca4ee5, - limb1: 0x1f025d71a31b0c251d449434, - limb2: 0xe3e948ea7c8a452 - }, - w10: u288 { - limb0: 0xcab2ad9cc56dbf4e9fdcc746, - limb1: 0x3b593fc88c4a91c88dd55dd0, - limb2: 0x24dc327558b8abb2 + limb2: 0x2dbdf00f63e255a2, }, - w11: u288 { - limb0: 0x261597101f6a92531debbad2, - limb1: 0x22a09911c5c8b4f3af3050a6, - limb2: 0x16f555e992f1d1bd - } }, E12D { w0: u288 { - limb0: 0xcae9783ef04ca47280293641, - limb1: 0xa75413405731c971e2e7e4e8, - limb2: 0x260e4379e0e38353 + limb0: 0x9f1833d4ee6e05b2e98eb194, + limb1: 0xdf61e89608afbbff54451d49, + limb2: 0x7341a57c8351835, }, w1: u288 { - limb0: 0x48c4ba9524d0dc5596017721, - limb1: 0xb3b54f60a5c8234dab37510e, - limb2: 0xb88224277d4e3c3 + limb0: 0x396bde8ca73f5e0e52f1bcc3, + limb1: 0xb41de7c6525d9097f89f9874, + limb2: 0x1fee062ab770bd4a, }, w2: u288 { - limb0: 0x40e9a9fca312aada1d7fe6aa, - limb1: 0xede90dd8d10e2b6397f91f4c, - limb2: 0x1d0c638b26810513 + limb0: 0xde88c90e56f5efff42fc5ae5, + limb1: 0x70eb11756f50d40816fa1a84, + limb2: 0x1f35fa63de82bc30, }, w3: u288 { - limb0: 0xdf9a50f8a39205195fda7f33, - limb1: 0x4216dfd1aacc73a395885e97, - limb2: 0x20ffaf1296dde345 + limb0: 0xaacbc7daaefa32f112ff727, + limb1: 0x55e72851bb33661f52250a3f, + limb2: 0x18c4cc5aa53fa8ab, }, w4: u288 { - limb0: 0xc1c63806be04267fedf1dd51, - limb1: 0xd11620cdda6ea2ac8e3e53f1, - limb2: 0xaec9e6a34380f38 + limb0: 0x4d832925bb29a07f12600b73, + limb1: 0x4d648c8bf3aef6e9dc8f3eca, + limb2: 0x468982847f8a07e, }, w5: u288 { - limb0: 0xb9be06484c900956b3f8f8f7, - limb1: 0x54bdcaa14d8b4f154e94502b, - limb2: 0x235b5f25d29a123f + limb0: 0x6865044fe86fc113321d84b3, + limb1: 0x4afb949d44ddc19a50d76746, + limb2: 0x1c4878b6bc126ea, }, w6: u288 { - limb0: 0xfdc1d892e8b5f7da2cabdd30, - limb1: 0x5a20edc6d5e684df44eb47e, - limb2: 0x107ddedcbe298b21 + limb0: 0xcdb1ec52b0efcf2a333cb03e, + limb1: 0x1d47715e046d09a63bd817b5, + limb2: 0x47664218590ab80, }, w7: u288 { - limb0: 0xc31eb0e940bfbbbe1c70e96d, - limb1: 0x3a371932d6836fe4f89e41eb, - limb2: 0xaeec18521006075 + limb0: 0x9354e8a50050939f807da303, + limb1: 0xdd6956fd5c5a1aab21b97b7c, + limb2: 0x1bf57342d5e7ec73, }, w8: u288 { - limb0: 0x3c0534a3851195e74c3a0109, - limb1: 0xd3c5c1ab5ddfb0556a8d1a0d, - limb2: 0x22e16ce35b4ee04a + limb0: 0xf18eec3aaeee1eea6b00228e, + limb1: 0x90405b5368a83b8e3e141abd, + limb2: 0x5489f27d98c5a6d, }, w9: u288 { - limb0: 0xde23e3254cab7ac367147044, - limb1: 0x3d891d65bc30c6e3581b916f, - limb2: 0x437bb3fbff61bfd + limb0: 0x33372084065e44dcd5edfe77, + limb1: 0x9ea7ef66db0f0ff55972dbea, + limb2: 0x20d81d5b8dd287c6, }, w10: u288 { - limb0: 0x2c52897b1448fe7faa8ed6ca, - limb1: 0x156bc3f9434c5289cec472dc, - limb2: 0x2e07da5ec97f0e54 + limb0: 0xf95c243e1128f75841ac88a8, + limb1: 0xe39101c1f545587666fc99c9, + limb2: 0x1332f858bc2d9ed6, }, w11: u288 { - limb0: 0x38ae7dd70b5867d1da15dba4, - limb1: 0xd3dc033c205922923bb77d81, - limb2: 0x6579c74f9d0e486 - } + limb0: 0x3dda3f6e97341fc9cbbe60d7, + limb1: 0x7214e1d782068b63e36e074f, + limb2: 0x7087cef01dfb965, + }, }, E12D { w0: u288 { limb0: 0xee419f4271957570f4b1c32, limb1: 0xee1f110052ca2e56a97efb6c, - limb2: 0xad375e8d172d961 + limb2: 0xad375e8d172d961, }, w1: u288 { limb0: 0x63ebd35fc505842517b7e802, limb1: 0x62c3623a58ae1bd17f9436b7, - limb2: 0x249b716ea1290d35 + limb2: 0x249b716ea1290d35, }, w2: u288 { limb0: 0x21b92dabf6e5280c26e361ee, limb1: 0x3c390fa8b8657c4f4fe50e82, - limb2: 0x585285292095c27 + limb2: 0x585285292095c27, }, w3: u288 { limb0: 0x755a1f81220bff5c131d7e96, limb1: 0x4df7a8ee45d3302f30ff29a8, - limb2: 0x10d1d361cff8aba5 + limb2: 0x10d1d361cff8aba5, }, w4: u288 { limb0: 0xa2041d8fc2c467e3f1bac97a, limb1: 0x48e7421f5ec41f255b8c45ce, - limb2: 0xca996570d833fcf + limb2: 0xca996570d833fcf, }, w5: u288 { limb0: 0x2183fed77e39e6b8807abd2c, limb1: 0xda8b0ba5b995978dd002d1ef, - limb2: 0x25ba30a10ab4363f + limb2: 0x25ba30a10ab4363f, }, w6: u288 { limb0: 0x44a4271d7e7d6e2372deb46f, limb1: 0x6ebe794b43059afaf191747a, - limb2: 0x62cd7ea75a47f9d + limb2: 0x62cd7ea75a47f9d, }, w7: u288 { limb0: 0xb01b410bdd4f7d17faad0b02, limb1: 0x92b6fa71257d0e35216b8d76, - limb2: 0x234c010bcace1d9e + limb2: 0x234c010bcace1d9e, }, w8: u288 { limb0: 0x2dba0f00a37d7388eb27942d, limb1: 0xb2148684b3580c6d45dfc7f8, - limb2: 0x2286172b9d954df5 + limb2: 0x2286172b9d954df5, }, w9: u288 { limb0: 0xe48a688bec46fdf3a2b3458d, limb1: 0xc0dd157ca14a9dddee9f0749, - limb2: 0x29b03a6b1d1d3ec9 + limb2: 0x29b03a6b1d1d3ec9, }, w10: u288 { limb0: 0x7cf25068f4085c9a3552b26b, limb1: 0x51c51346bf9ee9478e82069a, - limb2: 0x1c3b363ed4ad026a + limb2: 0x1c3b363ed4ad026a, }, w11: u288 { limb0: 0x32055cc475ed2979ba936b5d, limb1: 0x3a76365f65bb11dfa20f6f03, - limb2: 0x14e82b52083c1950 - } - }, - E12D { - w0: u288 { - limb0: 0x5207641583aba1270e985001, - limb1: 0x7a359f97234955d3b91c1382, - limb2: 0x4e07a16ab163414 - }, - w1: u288 { - limb0: 0x9cf749ba8a2663dbe98702e1, - limb1: 0xf56ff58ec1e779cad6f184fe, - limb2: 0x549cfce62e2bbe0 - }, - w2: u288 { - limb0: 0xb5c83ad1ce5be3cd488d4d10, - limb1: 0xbd6471858be1e616a315956, - limb2: 0x121fc58a2b2e2dcd - }, - w3: u288 { - limb0: 0x18f07df21c0e16798d6236e6, - limb1: 0xa6130609b9053eb1ad89b2aa, - limb2: 0x2c896d17a8ced729 - }, - w4: u288 { - limb0: 0x874d401cd210558dd7cd6e69, - limb1: 0xbd5d1731547f7c076aea7100, - limb2: 0x11e3cd1ffaff7e1d - }, - w5: u288 { - limb0: 0xffda727e9edcb83beb1b264e, - limb1: 0x8b3f3753bf7de981989dbee7, - limb2: 0x16c735f0abe9104d - }, - w6: u288 { - limb0: 0x20dc640fd7fa6d96e51b4b87, - limb1: 0x98dc8170235a2d8b9f0646be, - limb2: 0x1097d2aafaa29b0f + limb2: 0x14e82b52083c1950, }, - w7: u288 { - limb0: 0x8d75d10d90693ff17bf30e21, - limb1: 0x800292599a6c2b8f3f72471c, - limb2: 0x1d3214b16f1149ef - }, - w8: u288 { - limb0: 0xda3ef108cef5a9e7965fa3a4, - limb1: 0x3b7a43989606f1f662527a3b, - limb2: 0x2e34632d2ac50086 - }, - w9: u288 { - limb0: 0x62402c11b0b157b5569ef8a3, - limb1: 0x27c937922e9d595377e5701c, - limb2: 0x12fca4abfb56c583 - }, - w10: u288 { - limb0: 0x5b146a2af18248564e5c1062, - limb1: 0x1539279f1c2274921ade581b, - limb2: 0x1d0ba65714e84a1 - }, - w11: u288 { - limb0: 0x7051cc6301ab5a67d26bf5fa, - limb1: 0x74f08d1de4361b26e6b4a246, - limb2: 0x15eda5a0e8ad06f8 - } }, E12D { w0: u288 { - limb0: 0xc1564d46eff3a57112c82372, - limb1: 0x65639d134f9b62cacab6bb67, - limb2: 0x1993802bbfb81f1a + limb0: 0x86528ff5d288de551ba82e20, + limb1: 0x779518dbb60908f0c9f431, + limb2: 0x17e7b0c198e5fbb4, }, w1: u288 { - limb0: 0xe5fa336e9e122a9f47ad3783, - limb1: 0x64bf60691c6c5325757c2121, - limb2: 0xce95198cabf3358 + limb0: 0xa6b91b5273ad23056d2b5571, + limb1: 0x18283f4038662f9f2d32aa6d, + limb2: 0x26250f9c485aaafe, }, w2: u288 { - limb0: 0x3b9d1e045973b64d75ba8de5, - limb1: 0x18d378bebd698cc0b99e6227, - limb2: 0x233efe8a373e26e6 + limb0: 0xff4b38ab950cec36907872c, + limb1: 0xe8220a80ab1a1ebfb4a6b5ad, + limb2: 0x16a38cdcffaa084e, }, w3: u288 { - limb0: 0x7df3369e13c26cafa8cd9a3d, - limb1: 0xbfc97c4d673fa542f8e2d920, - limb2: 0x1353ce1aee67dd6a + limb0: 0x30fe4c50e7cfb82354077ff9, + limb1: 0xd825202a8b56831d4cb461f8, + limb2: 0xacbc4404e784841, }, w4: u288 { - limb0: 0xabd34f860a10ccf275845e71, - limb1: 0x7e647b6c31f82f99ef22e66f, - limb2: 0x9dc375a582be98c + limb0: 0x2f290a090b14ab72c573f72d, + limb1: 0x28fe7dd957a3fea3a48824a3, + limb2: 0x8d4fde60889f05e, }, w5: u288 { - limb0: 0xb1f2b2bde6d5b08dcc3db2ce, - limb1: 0x4233dcb86fdc5e39fa6b405b, - limb2: 0x14c600ef9a47e3a9 + limb0: 0x78e4ad232628f93493799b05, + limb1: 0x853fa0b232ed0e0fe4c72ee8, + limb2: 0x1905420adaee585, }, w6: u288 { - limb0: 0xc8a64d5e081d88b35850cbae, - limb1: 0xe562f3586b4ecf63a02d234a, - limb2: 0x1419edcaeb4425ea + limb0: 0xf5b5ceac316dae7d4b72f222, + limb1: 0xda7b251194b88252808ac1a8, + limb2: 0xc2ad9e69e7a3c18, }, w7: u288 { - limb0: 0xae4cd37490a22ea2762a5df0, - limb1: 0x5bfe6d52394b36fd73a2938c, - limb2: 0x1d25277281e9aeb4 + limb0: 0x871823350e01e7c076568b23, + limb1: 0xc2fcb7b9ab99f9ea2de64a6f, + limb2: 0xcbca7c0f294b05, }, w8: u288 { - limb0: 0x22b0faef607063e9097acdc6, - limb1: 0x9f890c7975c6777e6887038a, - limb2: 0x102c70b179977ebf + limb0: 0x58214cf485aa2980892ab270, + limb1: 0x38ae8b1a6d563a6e90b57720, + limb2: 0xadc0f206a82720c, }, w9: u288 { - limb0: 0xd8f62a8c9cf3d40fc33dc7a4, - limb1: 0xfd69ac3cff97f9bfb4272c09, - limb2: 0x18df4bd4afc91e83 + limb0: 0xe47d85736adce266525b33a5, + limb1: 0x75f41b36a691ecb3f1af75f, + limb2: 0x2aaaad4a322f5ca2, }, w10: u288 { - limb0: 0x86f7457474a5197451a94c63, - limb1: 0x1c251c7e2e63c8fc3800ac51, - limb2: 0x19533aea5a2cda1e + limb0: 0x449e76f3e507d1e4f79b2b41, + limb1: 0xa66a19bfc8476c6ef9730a71, + limb2: 0x1c4a7da448d6a424, }, w11: u288 { - limb0: 0xe8314cf511dc16961819fcd9, - limb1: 0xeec4f83453982c5e2f12ab0b, - limb2: 0x5ee0517efe331a1 - } + limb0: 0xaa745ba79deacfc0e958305c, + limb1: 0x771b3d2cba2c850277042d9f, + limb2: 0x2bbe2dd81ae206bf, + }, }, E12D { w0: u288 { limb0: 0x89800871747a5772af0a4a5a, limb1: 0xc77aea4a034bd02c1a52fda4, - limb2: 0x7696ff7e1b8f387 + limb2: 0x7696ff7e1b8f387, }, w1: u288 { limb0: 0xdc9663d006102d510d74c328, limb1: 0xfa5faa547c8a1b45034a3b2, - limb2: 0x260faf1bbeb9d987 + limb2: 0x260faf1bbeb9d987, }, w2: u288 { limb0: 0x1bc1799be4bb7102992ecd13, limb1: 0x94e15f371c06ced1fde0dd3, - limb2: 0x665a3a12509ed21 + limb2: 0x665a3a12509ed21, }, w3: u288 { limb0: 0xdcd827948ef109459f3b29fb, limb1: 0xa669670e935b5b5f278378c2, - limb2: 0x2d04dee2ca1ba30c + limb2: 0x2d04dee2ca1ba30c, }, w4: u288 { limb0: 0x63cc8b1759ef1e93c126782a, limb1: 0xe01767580df775dd4a40d5e5, - limb2: 0x161187b33f992c8b + limb2: 0x161187b33f992c8b, }, w5: u288 { limb0: 0xfe53c1faf8ba08de077db23f, limb1: 0x6ac9f2dc628f14bdf063327f, - limb2: 0xec69da938087b0 + limb2: 0xec69da938087b0, }, w6: u288 { limb0: 0xead0bc1f5077694dad55c03f, limb1: 0xd6e68bf4d6cc956adcf2c643, - limb2: 0x2dbf0ee9310afb09 + limb2: 0x2dbf0ee9310afb09, }, w7: u288 { limb0: 0x863a0a8f4e19da762f117929, limb1: 0xdcf7e18447603c210882cb78, - limb2: 0xdf9e8f70db03ce1 + limb2: 0xdf9e8f70db03ce1, }, w8: u288 { limb0: 0xedf02766e9b8595f63abd18c, limb1: 0x784e4d5d60f519796f01cde8, - limb2: 0x8671ab547845137 + limb2: 0x8671ab547845137, }, w9: u288 { limb0: 0x5b506c6c1ece6c888adc5d1a, limb1: 0x4ac5204b72b2c1a7db79a319, - limb2: 0x1f01964bf79ce370 + limb2: 0x1f01964bf79ce370, }, w10: u288 { limb0: 0x50e0979033627a4231737ef9, limb1: 0x9547f6bbfc8dee1f09baa0d9, - limb2: 0xc73a07daa4654d3 + limb2: 0xc73a07daa4654d3, }, w11: u288 { limb0: 0x152d341606f78da11aad9ad2, limb1: 0xdda73da51b1d63f6e0ba9b3, - limb2: 0xf3378aada8698c6 - } + limb2: 0xf3378aada8698c6, + }, }, E12D { w0: u288 { limb0: 0xc8a1ffbcd36ed4cf96782047, limb1: 0xd674cc0260707439a67f952c, - limb2: 0x2bf4eb8f91fe5fe + limb2: 0x2bf4eb8f91fe5fe, }, w1: u288 { limb0: 0x87b77db32833cadca24eb37e, limb1: 0xf97e1ee9a29b1b3c4719de34, - limb2: 0x10126e19d78ecaaa + limb2: 0x10126e19d78ecaaa, }, w2: u288 { limb0: 0xf98f2fabd09b0a5b9eafd15a, limb1: 0x551baec50edb12da0d5439db, - limb2: 0x14143683bf9b20b6 + limb2: 0x14143683bf9b20b6, }, w3: u288 { limb0: 0x889655ca288b714f93f77428, limb1: 0x427cb28612597746a1372e94, - limb2: 0x179e4eb714c7ff5c + limb2: 0x179e4eb714c7ff5c, }, w4: u288 { limb0: 0xf013770528f37122163612df, limb1: 0x8508416610e03d5e483e931f, - limb2: 0x1a3cffaf3e762f1f + limb2: 0x1a3cffaf3e762f1f, }, w5: u288 { limb0: 0x68d9bce40de25a34c00673f8, limb1: 0x9c697c919600f1ac723e8196, - limb2: 0x19b88d8ac3b0e9a6 + limb2: 0x19b88d8ac3b0e9a6, }, w6: u288 { limb0: 0xb41eaaa12e51e41f4a63d546, limb1: 0x7c859bffe9718b4e4b70d5af, - limb2: 0x759e326dd6510bb + limb2: 0x759e326dd6510bb, }, w7: u288 { limb0: 0xd160d856a92451c9341c729d, limb1: 0xdb907261b307fcd1e3a6d643, - limb2: 0x21bbcee531c7850a + limb2: 0x21bbcee531c7850a, }, w8: u288 { limb0: 0x9b5f4ee4a91ab24f1fc4a252, limb1: 0x6ef085e2d7b9323fccd45f17, - limb2: 0x7ddd2baeb8903da + limb2: 0x7ddd2baeb8903da, }, w9: u288 { limb0: 0x356ca7b20da6a61328d2e6f8, limb1: 0xfe0a1835633574cddc743244, - limb2: 0x260d783f746548 + limb2: 0x260d783f746548, }, w10: u288 { limb0: 0x54119d293bba5a7b8c911e9a, limb1: 0x4c8bec82c87653b80179260, - limb2: 0xc719d4761fc3dc3 + limb2: 0xc719d4761fc3dc3, }, w11: u288 { limb0: 0x27f9c5cf95c7c1614561860a, limb1: 0x2b6222d4d1199c76ca386b22, - limb2: 0x16c8ee50f9adc5ac - } + limb2: 0x16c8ee50f9adc5ac, + }, }, E12D { w0: u288 { limb0: 0x6f3f7d0292c186ae873944f, limb1: 0x35c8a1bf39fa92a9f242fd69, - limb2: 0x14b95f826ac74736 + limb2: 0x14b95f826ac74736, }, w1: u288 { limb0: 0x1c8deec644cf2503777cd0e9, limb1: 0xe390b3744ef378a066993673, - limb2: 0x1ce103c73af34607 + limb2: 0x1ce103c73af34607, }, w2: u288 { limb0: 0xe51b2b5264cab98b0dce20e3, limb1: 0x12baa9b4a22f7f60f5a9e8a7, - limb2: 0x199e6082a24e29fc + limb2: 0x199e6082a24e29fc, }, w3: u288 { limb0: 0x8ccec4fd0f4c40b24c174906, limb1: 0xd0eb4c466b50542bdd1f7ccd, - limb2: 0x130c4888c5671589 + limb2: 0x130c4888c5671589, }, w4: u288 { limb0: 0x841b256a04eb7ee8c763a86, limb1: 0x44dcb7ccff639f5cf00547f6, - limb2: 0x43826f4900a3942 + limb2: 0x43826f4900a3942, }, w5: u288 { limb0: 0x9dd7608e2f8eaab2cf59cf27, limb1: 0x6c531affa90ee4c3e6b1315b, - limb2: 0x14c5bbbc9b662751 + limb2: 0x14c5bbbc9b662751, }, w6: u288 { limb0: 0x40ead5c383741f5e94a372dd, limb1: 0x63456b35874faf8614778b7e, - limb2: 0x160428014e84270e + limb2: 0x160428014e84270e, }, w7: u288 { limb0: 0x77ca9da77c9c26fa4eddeffb, limb1: 0xd64c0c2e0baa8971ce138592, - limb2: 0x2532dd267a25b4f + limb2: 0x2532dd267a25b4f, }, w8: u288 { limb0: 0x8f0b492fe9cbb6713b3ae0b9, limb1: 0x6cd8f706cbc20ff6c2978d34, - limb2: 0x25b8b619c12b4d53 + limb2: 0x25b8b619c12b4d53, }, w9: u288 { limb0: 0xb9f16df613dc83610524ae59, limb1: 0x999af8cf94fe6e9155b24ee, - limb2: 0x2d763001f6ee910a + limb2: 0x2d763001f6ee910a, }, w10: u288 { limb0: 0x72e6293fa1874d4456f6a7ab, limb1: 0xbba9e551a891ac14dc529d7, - limb2: 0x2fe56f474f803a1a + limb2: 0x2fe56f474f803a1a, }, w11: u288 { limb0: 0xddef305ed66e797eb44cc927, limb1: 0x46cf45a1ffa3be343166c96a, - limb2: 0x2c91340e7201c8e7 - } - }, - E12D { - w0: u288 { - limb0: 0xeeaff33f08d089036091f23a, - limb1: 0x2a44df78f89a8372dc258ce0, - limb2: 0x26fc82b71882d917 - }, - w1: u288 { - limb0: 0xbfd4a67aa6811970f76df946, - limb1: 0xf1a4615163ef25bfacabed3d, - limb2: 0x1688e6c722ce08de - }, - w2: u288 { - limb0: 0x66e3bea0f3f135ef1edbf639, - limb1: 0x3e0d96e58446ba35f7a9e5a0, - limb2: 0x67ade48c196cb4e - }, - w3: u288 { - limb0: 0x65f311175b5d772601d7eb11, - limb1: 0x1d7c8edef7ced77a59371220, - limb2: 0x26af60cec4dc0c3e - }, - w4: u288 { - limb0: 0x2f6a7fe4cc84ed0877378290, - limb1: 0xb39827a57f408139431f1f9d, - limb2: 0x28527089e8870b42 - }, - w5: u288 { - limb0: 0x6b41daa3c61edf7015051713, - limb1: 0xdbd402f6c2d5b48b10eb708f, - limb2: 0x25327bcfdf3e6d05 - }, - w6: u288 { - limb0: 0x54955de808f99650ed919b88, - limb1: 0xa3a8fe0dd332c7f2b93a707, - limb2: 0x24cc495baae86e3a - }, - w7: u288 { - limb0: 0xcca7e2031469ad050f091d6b, - limb1: 0xdea46ae3abe0c8a2230e0e11, - limb2: 0x58438384377eba3 - }, - w8: u288 { - limb0: 0xd67537b9a594c986e4f3846e, - limb1: 0xdfdf9c0a55e7ba6bc3eff295, - limb2: 0xbca7feb4560a11f - }, - w9: u288 { - limb0: 0x5d0a3adb9e19d73d7c1fd56f, - limb1: 0xa788cc87939037a5da443e28, - limb2: 0x241b7ebb3af96563 - }, - w10: u288 { - limb0: 0xb44d7f76d34968eb1e7e4675, - limb1: 0xd8cc02b2ddffda6b611735fd, - limb2: 0x106b5bee4ceb79ca + limb2: 0x2c91340e7201c8e7, }, - w11: u288 { - limb0: 0xbb0ac2282d510195ce1e8809, - limb1: 0xe7d90c31482db40e8e0564e7, - limb2: 0x5d4f51bef50e5a6 - } }, E12D { w0: u288 { limb0: 0xacd367bfb3a86503c4696228, limb1: 0xe5bebb9f891e0fcf9bb400df, - limb2: 0x1f053bcf8dd0c40e + limb2: 0x1f053bcf8dd0c40e, }, w1: u288 { limb0: 0xaa5f25aba69edf7eb3fbac7f, limb1: 0xa57c44bfb7a813d9565c6f4e, - limb2: 0x1cbd2cad199b90af + limb2: 0x1cbd2cad199b90af, }, w2: u288 { limb0: 0x1e3561ce4486f49c51c4841, limb1: 0x5d707d777cc267134dcb4a3e, - limb2: 0x2d4f1b6b1704fcf8 + limb2: 0x2d4f1b6b1704fcf8, }, w3: u288 { limb0: 0x8133df3d973205e2a6667b05, limb1: 0xd71333cad7c23d6436f895b1, - limb2: 0xb96c7c4d9019afe + limb2: 0xb96c7c4d9019afe, }, w4: u288 { limb0: 0x4c82c43fae3e6a4e9ac79773, limb1: 0xd632da8c8fade4bdd6d055b5, - limb2: 0x1493c61b79713a9c + limb2: 0x1493c61b79713a9c, }, w5: u288 { limb0: 0x14f7514b5a6375a0ba02dfdd, limb1: 0xdb0492be6d819a64e5c8e869, - limb2: 0x29ce11799d8ce7f6 + limb2: 0x29ce11799d8ce7f6, }, w6: u288 { limb0: 0x88e5da8addd545f6e1828516, limb1: 0x59ab28d6dd8eb6ea501d3cb9, - limb2: 0xe761374e20c2910 + limb2: 0xe761374e20c2910, }, w7: u288 { limb0: 0x494bfaefdde4921257b3c8ff, limb1: 0xc560828dcd36efd417e936e7, - limb2: 0x19065a582b0bfe84 + limb2: 0x19065a582b0bfe84, }, w8: u288 { limb0: 0x54aed757dacfad3714775cd3, limb1: 0xc84bdb236c7d909b5a8a3cfc, - limb2: 0x1568bd40a8a5b14d + limb2: 0x1568bd40a8a5b14d, }, w9: u288 { limb0: 0x5b800e067bb87a8edd6ba6f4, limb1: 0x72fafdbd2943d900f8330a8a, - limb2: 0x203214386552455e + limb2: 0x203214386552455e, }, w10: u288 { limb0: 0x79c850293dd1ed17289f8d7a, limb1: 0x23514882c698d62934f0b85c, - limb2: 0x2c8da86af166ec2 + limb2: 0x2c8da86af166ec2, }, w11: u288 { limb0: 0x3149423b81d0601bf6983f66, limb1: 0xfdab0d5a898edf32625fdbe6, - limb2: 0x81a2800e45aa663 - } + limb2: 0x81a2800e45aa663, + }, }, E12D { w0: u288 { limb0: 0x8b51da2d8c55494918df21dd, limb1: 0xe08f0cc653fff5f77d129809, - limb2: 0xac43cdef76e8e2b + limb2: 0xac43cdef76e8e2b, }, w1: u288 { limb0: 0xe88d81f8cdf9db6cc3d7a8e3, limb1: 0xbbb798eb9215c4e9215009f5, - limb2: 0x2b6e67c7cd78b23c + limb2: 0x2b6e67c7cd78b23c, }, w2: u288 { limb0: 0x95fbbffc4a22fefe6ed6f466, limb1: 0x44b328ca91837bc5f2813bea, - limb2: 0x15a0aa861322fe8e + limb2: 0x15a0aa861322fe8e, }, w3: u288 { limb0: 0x230d31e951092a571dd5146, limb1: 0x1a87d85d215cd450d2691c01, - limb2: 0x273b3d4ad1da0c4f + limb2: 0x273b3d4ad1da0c4f, }, w4: u288 { limb0: 0xe13981b2395738db11f814d4, limb1: 0x96f3b24aa8b0e2286829b356, - limb2: 0x17ca1b6c416d0b08 + limb2: 0x17ca1b6c416d0b08, }, w5: u288 { limb0: 0x8a2711890225f3347def3ac, limb1: 0xaff7929a071b6d219ecc0d90, - limb2: 0x13ab0ad11f39ed5c + limb2: 0x13ab0ad11f39ed5c, }, w6: u288 { limb0: 0x131141a0e2587df1ed43c57a, limb1: 0xee8de29045aa8df56e7bf4d3, - limb2: 0x53d8a8045aced2a + limb2: 0x53d8a8045aced2a, }, w7: u288 { limb0: 0x751db179fd8b0dd97ab90b62, limb1: 0xb24fa4509ea9a05ea3a0820e, - limb2: 0x1b94eafd5f42b129 + limb2: 0x1b94eafd5f42b129, }, w8: u288 { limb0: 0x54d9a3cce32c8d336a38434, limb1: 0x8ef332aae2744817c97aa9fc, - limb2: 0x5acd19414989ac9 + limb2: 0x5acd19414989ac9, }, w9: u288 { limb0: 0xdcd805c3441bf8da9f078037, limb1: 0x9d7cef94b46af01f54df6022, - limb2: 0x13e81873c53f7de + limb2: 0x13e81873c53f7de, }, w10: u288 { limb0: 0xd188a8da6b09f460a30ea7d4, limb1: 0x5e7d133426f98ced17f967ed, - limb2: 0x2f9622f5e2961afd + limb2: 0x2f9622f5e2961afd, }, w11: u288 { limb0: 0x835b65476aa69e0fee8add66, limb1: 0xf7eb0db4196481743f7c8536, - limb2: 0x2420247c2eae05 - } - }, - E12D { - w0: u288 { - limb0: 0xd7c55ebaa75e7fb9640fa8de, - limb1: 0x35ab753131261ec6e8fa71aa, - limb2: 0x15cc5f52488dfefe - }, - w1: u288 { - limb0: 0xc637c5a8ac33ff32300f089a, - limb1: 0xfc1fb97f63cd7c6f17699d8, - limb2: 0x28fff806ff3c20d5 - }, - w2: u288 { - limb0: 0x13e98681d2c4c06bc9f7be, - limb1: 0xffe46ca72f80f967869cf0ac, - limb2: 0x2ed3bdc908106638 - }, - w3: u288 { - limb0: 0x84ee49c19748b0709b40d090, - limb1: 0x325a4dc6fdfb2d861b931969, - limb2: 0x210b9b640fbd6b15 - }, - w4: u288 { - limb0: 0xe4cbabb47d240e42e4df9e9d, - limb1: 0xc716259cd79eaeae04d2e806, - limb2: 0x17964d3e6b3f45ee + limb2: 0x2420247c2eae05, }, - w5: u288 { - limb0: 0xa4c02df9004feb779b1cddbe, - limb1: 0x515bc7367bbc40dfadc53924, - limb2: 0x1dc0a40c4481f6f6 - }, - w6: u288 { - limb0: 0x8b8dd09161c6cec0338e834d, - limb1: 0x5f2bd89ac4452fecd81fcc63, - limb2: 0x1627e62ee6610ca5 - }, - w7: u288 { - limb0: 0xb9873ca6378bbd41b2922366, - limb1: 0x50a72274ed79596d09c6462e, - limb2: 0xda76ba52474d96b - }, - w8: u288 { - limb0: 0x5c42fddd452967982ed1fcf1, - limb1: 0xae6730fc6357182eb8a665d5, - limb2: 0x29d77f895008cfed - }, - w9: u288 { - limb0: 0x1416d8881be2c0851f0460f6, - limb1: 0x53526bb7b3738a1a66ea5871, - limb2: 0x286b01bfb6b954f6 - }, - w10: u288 { - limb0: 0x87e36d6505b80992146f2056, - limb1: 0xf629e62ef3f1c2b802917ea, - limb2: 0x138153508ab84084 - }, - w11: u288 { - limb0: 0x62ee33c755bce93755e5b247, - limb1: 0x44be5c19f78287b3adf77568, - limb2: 0x1d9c0c65b6b32cd5 - } }, E12D { w0: u288 { limb0: 0x1b9b3275438def2b14d3d6ec, limb1: 0x215e7ca4b8e610b90aea1fe2, - limb2: 0xc57e1f84bab1fde + limb2: 0xc57e1f84bab1fde, }, w1: u288 { limb0: 0xa3aa8bb56e04c330c70af082, limb1: 0x762683dea3a91a1813ebbe47, - limb2: 0x1db06cf6c01944ef + limb2: 0x1db06cf6c01944ef, }, w2: u288 { limb0: 0x6d3534ad1666ff07aef8ee5e, limb1: 0x95034543d303718bdddd0876, - limb2: 0x4ffb855d2c5477a + limb2: 0x4ffb855d2c5477a, }, w3: u288 { limb0: 0x9de5ea1d4cd7b93d85eef3a3, limb1: 0x7a3b2e8a90f40fbe7afa11b, - limb2: 0x286259c2593cd27f + limb2: 0x286259c2593cd27f, }, w4: u288 { limb0: 0xdb82f137af29e3458455efc4, limb1: 0x8b665e9e0eb3b9c8f027e3c9, - limb2: 0x20fefbc49fb31a8e + limb2: 0x20fefbc49fb31a8e, }, w5: u288 { limb0: 0x6efd0bb670c6350880f786b3, limb1: 0x205615a0185a1b00916d37b7, - limb2: 0x6375097bd6ed176 + limb2: 0x6375097bd6ed176, }, w6: u288 { limb0: 0x5e049cdbb227617f099b81d, limb1: 0x7c89c3a84805e47debd2d9b0, - limb2: 0x90ad0e891a3872a + limb2: 0x90ad0e891a3872a, }, w7: u288 { limb0: 0x8deade236dc1f483f78b820, limb1: 0xa22016ef71d65892b510b65a, - limb2: 0x15b035673845e2ba + limb2: 0x15b035673845e2ba, }, w8: u288 { limb0: 0x28cce0800fcaeca24e4a1f11, limb1: 0xc873a609eb7443c53cc2146e, - limb2: 0xed7bc75055a0bee + limb2: 0xed7bc75055a0bee, }, w9: u288 { limb0: 0xfdb3d8249042253ea50045c3, limb1: 0x1873c79692308a13011bf359, - limb2: 0x1a1644f1a3d5b115 + limb2: 0x1a1644f1a3d5b115, }, w10: u288 { limb0: 0x5c988b98ae035a4304a5f88d, limb1: 0x8a2936146d5703d9604e064c, - limb2: 0x29b6437df8007dea + limb2: 0x29b6437df8007dea, }, w11: u288 { limb0: 0x86051e2a2aaadd941e2a9241, limb1: 0xbf728a94603ee43956adbfb9, - limb2: 0x2d4db3ebddcfd258 - } - }, - E12D { - w0: u288 { - limb0: 0x36dcd509735a36d3d277c09, - limb1: 0xd5e9021e0c6360975901c3c5, - limb2: 0x9f3510903987aa4 - }, - w1: u288 { - limb0: 0x8ac57fd28f161543e08c60ea, - limb1: 0xb15aa29e1287ebaf8807fd4a, - limb2: 0x1c5487d43b5a9f7d - }, - w2: u288 { - limb0: 0xdd5aa62936822925bd7b787e, - limb1: 0x4635c08e2cc81e9ace52c84d, - limb2: 0x2b3d64a62def38e2 - }, - w3: u288 { - limb0: 0xdd9ffcc02a53232435eb127b, - limb1: 0xd8c9b530c9d04b15dd3d70e, - limb2: 0x69280e1e78b8c01 - }, - w4: u288 { - limb0: 0x65efcd97eed7d076d17e22bf, - limb1: 0xcb3ac4944e0f2f80d7115651, - limb2: 0x23ffaac0c6699a48 - }, - w5: u288 { - limb0: 0x1531b2e771d28022f033c608, - limb1: 0xe3e8e7bd8556ab7d415dcea3, - limb2: 0x2d04d9f4df04ca89 - }, - w6: u288 { - limb0: 0xb5d74a1c9c59831b96c92ef1, - limb1: 0x430b8cac3ff4ceebdf0f58c0, - limb2: 0xc802a4a1ac18507 - }, - w7: u288 { - limb0: 0xdfcfa4d0a292f923659b0eec, - limb1: 0xae122e96d6aa70c4fb4f83f9, - limb2: 0x8fccf5a3b0bc65a - }, - w8: u288 { - limb0: 0x4ffcffd38dd9efd29c9ec50f, - limb1: 0xc059b4645faea5fbe4bfc013, - limb2: 0x23544f87ad08b41e + limb2: 0x2d4db3ebddcfd258, }, - w9: u288 { - limb0: 0x251d9548c877b8aa855c50a3, - limb1: 0xb3add67d52eb32de9105cc15, - limb2: 0x15f4be8506271f1 - }, - w10: u288 { - limb0: 0x8f2ae3001d749c7d4cc92402, - limb1: 0xe7856d313a74937d7fa51e79, - limb2: 0x259ee48e9e9b488a - }, - w11: u288 { - limb0: 0x6b63d1f8ce576033e97e9038, - limb1: 0x7b2a76117da412752da2846d, - limb2: 0x6990e1a2efc852e - } }, E12D { w0: u288 { - limb0: 0x1fa0244692768e2475efaf31, - limb1: 0xbae8f168689bee3e520bb5d3, - limb2: 0x2eba9807b37ce0c6 + limb0: 0x92acc012d562dfdfb6481b25, + limb1: 0x3e64355b8e9e3082f99d33c5, + limb2: 0x290b6aea5955f671, }, w1: u288 { - limb0: 0x58e85e1841894bdde0e0b171, - limb1: 0x4b6e2f638bfa5ea4eb56aab8, - limb2: 0x108733f230f8406 + limb0: 0xea2dac1a1640a6ac9b9ad377, + limb1: 0xe1775d01c8f21468867a89ff, + limb2: 0x1cf6cdd23f7ccb8b, }, w2: u288 { - limb0: 0x989a59f7029c594cebea4494, - limb1: 0xb592c7c482c32f10f150eed3, - limb2: 0x3056736a61e69a23 + limb0: 0xd51e98bf9719380b097ea1fb, + limb1: 0xd74149401b7667643b22e27f, + limb2: 0x129b599f9eed72c9, }, w3: u288 { - limb0: 0xc625308c657430f28b3f4c6d, - limb1: 0x63c4c70f42f29cc8715ca1b3, - limb2: 0x26c11ad7d67a098a + limb0: 0x66f868e872b587c8e5a18431, + limb1: 0x5ce11b08a6e0fe0e0f9b96f1, + limb2: 0xcecf76d78ff36b2, }, w4: u288 { - limb0: 0xfd8f6a6bd59d23ecb4e05c45, - limb1: 0xc203778a94b02c5ea751cc29, - limb2: 0x1b5660d097c9a2f7 + limb0: 0x5ccd6edc479aeaf571c0890d, + limb1: 0x91881d482210406422d39529, + limb2: 0x2b1eefab1035d22a, }, w5: u288 { - limb0: 0xc19d3d183efe416c834c0095, - limb1: 0xb7fc15dad4e89e674410b44b, - limb2: 0x3efc50a1afe3929 + limb0: 0x10b346eae6854f264c866223, + limb1: 0xece7a4751aad88e0d43ff850, + limb2: 0x26ac9d94ac41a06c, }, w6: u288 { - limb0: 0xea72904c349e53d85516450e, - limb1: 0x5d4bbe5186be2f0d1bef0b21, - limb2: 0x2d63ae49229f1b55 + limb0: 0xdca528ca6016058cf3e5fae2, + limb1: 0x78690b84e775a92f8bc8a4ed, + limb2: 0x212be7d16a5f6c89, }, w7: u288 { - limb0: 0x62ff2f8ec11e0f8d8493d9e4, - limb1: 0x337753a5450d93b87d1beda7, - limb2: 0xe72c5750ca40dc7 + limb0: 0xf3e83e445c62eeeb7ec84ce0, + limb1: 0xdd116e6e8364db0a64b50304, + limb2: 0x279d1022cd3e3e1f, }, w8: u288 { - limb0: 0xfb68bb6bd8fafb98ac47e33, - limb1: 0x64a66d18cfd06b1234ce9ae6, - limb2: 0xfeed65807e61e72 + limb0: 0x65f73450ca7a1766028a9d92, + limb1: 0xf27270b3123129865bf05ad5, + limb2: 0x26bc3d97ad8925f4, }, w9: u288 { - limb0: 0x6d14065dc4ff36e98bc6f133, - limb1: 0xd95d5bfeec62335d59cc35b5, - limb2: 0x2a6ce0a66f0dcedf + limb0: 0x944c276de7f91d41bcc4127e, + limb1: 0xa89166f745e7e0640866c8db, + limb2: 0xe7f920bd863ceb4, }, w10: u288 { - limb0: 0xdd8fd7afee4b166ecd2425c0, - limb1: 0x4a6c7517136eb7a7c9416789, - limb2: 0x1832414464f6fdec + limb0: 0xa31d4c6a3bdcbe04860624d4, + limb1: 0x7c504b80689c987f9708269e, + limb2: 0x27550021cf25c30d, }, w11: u288 { - limb0: 0x647ccfc70e1228874c23636c, - limb1: 0x3be5f9dc34b687c75ed0a670, - limb2: 0x2102784d6a9f5b32 - } + limb0: 0x91cb5c5218981603a881667f, + limb1: 0xa0905ee77f1c0e9a5f9de4, + limb2: 0xcc2ecbee6addff5, + }, }, E12D { w0: u288 { limb0: 0x27ea098c66c31201eefb8430, limb1: 0x289402da5fe4bd14d8ef6edf, - limb2: 0x1259961e054d6cd7 + limb2: 0x1259961e054d6cd7, }, w1: u288 { limb0: 0xdf5835eb2fd6b73c5dba911a, limb1: 0xca03ca62684adaa9524cea2, - limb2: 0x2eb6accd5526bb8c + limb2: 0x2eb6accd5526bb8c, }, w2: u288 { limb0: 0x30900fcfe01bded79b3d2477, limb1: 0xb279579672976833505fa71d, - limb2: 0x162ac340cc3a9243 + limb2: 0x162ac340cc3a9243, }, w3: u288 { limb0: 0xea6f09f94f1137fe93d6e281, limb1: 0xabf9e0b69162edef149ff1f3, - limb2: 0xff91140a0ef8671 + limb2: 0xff91140a0ef8671, }, w4: u288 { limb0: 0x202e27f741f1e2b81753060e, limb1: 0x26a9a0ce89b8f06fa7d6326, - limb2: 0x1c707bf011a33ace + limb2: 0x1c707bf011a33ace, }, w5: u288 { limb0: 0x95578a2c8e1895ac184cabfb, limb1: 0xbb75389aaa763c673982ea8, - limb2: 0x607a8649a7b2555 + limb2: 0x607a8649a7b2555, }, w6: u288 { limb0: 0x71d90544c20a5aed5f41931, limb1: 0x16847c43a0cdfc05ebe58815, - limb2: 0x4721c3f212088b0 + limb2: 0x4721c3f212088b0, }, w7: u288 { limb0: 0xc360aaad2a45074edfb74e14, limb1: 0x77f564b43fa632bde8eec9d, - limb2: 0x250afa706df6d5e2 + limb2: 0x250afa706df6d5e2, }, w8: u288 { limb0: 0x8bde53cc45322245c61c9a8b, limb1: 0xbb082994c8f59570001a3550, - limb2: 0x27b5ec7a33a77874 + limb2: 0x27b5ec7a33a77874, }, w9: u288 { limb0: 0xd33f34a1a253f871c0f128e9, limb1: 0x88e401602a88af3bb22d4b4f, - limb2: 0x8194f6251e043d8 + limb2: 0x8194f6251e043d8, }, w10: u288 { limb0: 0x37787931890dad2749f4172f, limb1: 0xb781b6da2911d39376770d8a, - limb2: 0xf86cba82a2a63ca + limb2: 0xf86cba82a2a63ca, }, w11: u288 { limb0: 0xb283d3c5e1df307fbded08de, limb1: 0x845c1e02379ee7fb83ade74d, - limb2: 0x113edfefc35c7b27 - } + limb2: 0x113edfefc35c7b27, + }, }, E12D { w0: u288 { limb0: 0x800d14c753c40eb876da5bb8, limb1: 0xdd394093deedc4a58300a401, - limb2: 0x20bbc62916a1c1c5 + limb2: 0x20bbc62916a1c1c5, }, w1: u288 { limb0: 0x1ff3c025cb5fe163ac6341a1, limb1: 0x3492edb1001d97c57690e3ea, - limb2: 0x2af5edbf90641874 + limb2: 0x2af5edbf90641874, }, w2: u288 { limb0: 0xa01ab0362ad9941df67212b5, limb1: 0x1273a4cfacad5b920f984247, - limb2: 0x2c8dfd25ae12d28b + limb2: 0x2c8dfd25ae12d28b, }, w3: u288 { limb0: 0xc72f15c7299855613325128d, limb1: 0xa7e25f6a3deaf4f7be35e120, - limb2: 0x2607d100cbda5ad + limb2: 0x2607d100cbda5ad, }, w4: u288 { limb0: 0x2e236358d7c29fcbc45476ce, limb1: 0x696b09274ac45b177403228f, - limb2: 0x22e618af62719cf3 + limb2: 0x22e618af62719cf3, }, w5: u288 { limb0: 0x81b4d1b3b2d2686cc3a33fac, limb1: 0xf5c5ffadb6ae0769530803d7, - limb2: 0xe18f6caa2f9150 + limb2: 0xe18f6caa2f9150, }, w6: u288 { limb0: 0x820aefb2f234355503fd73f6, limb1: 0xee49d901c9c66c15af10aafc, - limb2: 0x2cf38629461bbcbd + limb2: 0x2cf38629461bbcbd, }, w7: u288 { limb0: 0x702e95e8e205ab0d73f4d645, limb1: 0x6cc8a9e2e5bd482c2d970d01, - limb2: 0x26c6783eedf68370 + limb2: 0x26c6783eedf68370, }, w8: u288 { limb0: 0xb083a4ca598ff879ef7aa527, limb1: 0x5310d5c6e27bf7bfa6681a70, - limb2: 0x29480250c596232a + limb2: 0x29480250c596232a, }, w9: u288 { limb0: 0x6cfaa3e7f9ac2fd8645db473, limb1: 0xb2739d025d0bf248c2d4e1a2, - limb2: 0x912e2dc7402cd4f + limb2: 0x912e2dc7402cd4f, }, w10: u288 { limb0: 0x2bd49d41f5a3e28554df2631, limb1: 0x8065584c5473ee5f56b0993e, - limb2: 0xfb04b567cc1113a + limb2: 0xfb04b567cc1113a, }, w11: u288 { limb0: 0xf5cd0cfcb2e6ff69bf4754a5, limb1: 0xdb8d57f575f0a9e1419111fe, - limb2: 0x1d1cea3ff669ce4e - } + limb2: 0x1d1cea3ff669ce4e, + }, }, E12D { w0: u288 { limb0: 0x61d29bcc1a3f6167a79d8c38, limb1: 0x532714800454848152e1c0e0, - limb2: 0x132484d6b22372ae + limb2: 0x132484d6b22372ae, }, w1: u288 { limb0: 0x108ce4183553945caff854, limb1: 0xbd70dd52d149435432ea127f, - limb2: 0x189cdc05d04909b0 + limb2: 0x189cdc05d04909b0, }, w2: u288 { limb0: 0x5ad21b0a5646ad085f528109, limb1: 0x1a9fc07a354670945f565e9e, - limb2: 0x1e93c1c3e4b89488 + limb2: 0x1e93c1c3e4b89488, }, w3: u288 { limb0: 0xa2b07e2a8ba8644821d8d454, limb1: 0xb04d7421f3ac6397e80a92a1, - limb2: 0xe2e5a47221b2430 + limb2: 0xe2e5a47221b2430, }, w4: u288 { limb0: 0x60e96edf654796d2d1e7ad12, limb1: 0xc053caa606b820b7bc203105, - limb2: 0x23de5802449e2d0d + limb2: 0x23de5802449e2d0d, }, w5: u288 { limb0: 0x33531996505d714b68e97cdc, limb1: 0xb2f7f6dacae5650c70369c5, - limb2: 0x2b9c8a1bd70d65c8 + limb2: 0x2b9c8a1bd70d65c8, }, w6: u288 { limb0: 0x29c656ded9d8ede8b14e133a, limb1: 0x3251a0119e1def6470a73ee1, - limb2: 0x108ccfd72642f085 + limb2: 0x108ccfd72642f085, }, w7: u288 { limb0: 0x59d63f9e2a5252d394fb3b13, limb1: 0x6af3a4182c974a4a4cb8cb43, - limb2: 0x1a0d6334a517c128 + limb2: 0x1a0d6334a517c128, }, w8: u288 { limb0: 0x1f9c66a90a3636f14efcc3bb, limb1: 0xbcf2e4dd6a6a18e0f4032755, - limb2: 0xf77ce25573b3637 + limb2: 0xf77ce25573b3637, }, w9: u288 { limb0: 0x8629d396f0cbb19e5e5ae3ef, limb1: 0x8999b95d2cef1a967c52155e, - limb2: 0x1a651bad046779e8 + limb2: 0x1a651bad046779e8, }, w10: u288 { limb0: 0x4136e2e567c71c7327bb5498, limb1: 0xfc077703802a973be3e1b595, - limb2: 0x164eecf7e317e50f + limb2: 0x164eecf7e317e50f, }, w11: u288 { limb0: 0xa675d361f8324c4030afe60, limb1: 0xa5a92a85a22d4b737612f493, - limb2: 0x1904c09382a0596a - } - }, - E12D { - w0: u288 { - limb0: 0xbae5b8c86e1817cc460fff4b, - limb1: 0xc1a20b71bf017dae367c3482, - limb2: 0x2133af1c25fb8593 - }, - w1: u288 { - limb0: 0xeac8299d96e2a95bd1f07c57, - limb1: 0x99e72ea770a3575e60d3128c, - limb2: 0x266e070e75f4d2dd - }, - w2: u288 { - limb0: 0xab1dd6d02031c8c5b31bb645, - limb1: 0xb110ba138244e9f19a858bb2, - limb2: 0x142d61a2ac05285a - }, - w3: u288 { - limb0: 0x438df58b7e014591d52f3860, - limb1: 0x1c33fd586dbd44cf6c5ada37, - limb2: 0x5177aa9d026ce00 - }, - w4: u288 { - limb0: 0xec91f7d1303ebf5932f6a8f1, - limb1: 0x82a74baf5611c4080ede970e, - limb2: 0x11191f4382d4a298 - }, - w5: u288 { - limb0: 0x418ff55d9dfff6f214af0364, - limb1: 0x9eac1d0f6e4eeaa01c9b959f, - limb2: 0x954a206ccfee5f3 - }, - w6: u288 { - limb0: 0xf7556a45ee5a4c1b43fc2262, - limb1: 0x8d2054c1ae4b6fb3d90d8de6, - limb2: 0x17503e25ccde1837 - }, - w7: u288 { - limb0: 0x6744715ed29cc929975ca7b4, - limb1: 0xe8dc44ec0d9e478223b8b327, - limb2: 0xd588d0c72843dda - }, - w8: u288 { - limb0: 0x37df8544cbb4d50d1750d0ab, - limb1: 0x1fded5cf9e7ceef1359e89a3, - limb2: 0x1cd5e75628e29e93 - }, - w9: u288 { - limb0: 0xb87c8829e13e4ef7fbc5b4b5, - limb1: 0x73576d5561e13112722f1a07, - limb2: 0x1c9cb0a6bd4078a7 - }, - w10: u288 { - limb0: 0x73b9d6525847c071b3802ff5, - limb1: 0x61653370d841b0fc438501e7, - limb2: 0x19584e044d151d8f + limb2: 0x1904c09382a0596a, }, - w11: u288 { - limb0: 0x9bad35551c6f7bd89c6d4b65, - limb1: 0x6abce4fa28f7f4599ab30fe9, - limb2: 0x2357bc998cdbcf31 - } }, E12D { w0: u288 { limb0: 0x7430544030d0c5607d8574fa, limb1: 0x948e3aa4cdc35494aa3d0c22, - limb2: 0x149ca9118143d93b + limb2: 0x149ca9118143d93b, }, w1: u288 { limb0: 0xe2ca69dc59b49107e665c357, limb1: 0xdff3f92ef170aba8ecbfed91, - limb2: 0xc0020a7d7b54ee9 + limb2: 0xc0020a7d7b54ee9, }, w2: u288 { limb0: 0x70927630b958392565150156, limb1: 0x50bccd63e76535da30f22410, - limb2: 0x85f6272d3683e99 + limb2: 0x85f6272d3683e99, }, w3: u288 { limb0: 0x18b10fe562294e1493d32869, limb1: 0x7e3a83f64e5b06dad1f392f0, - limb2: 0x7e60317cbbc746e + limb2: 0x7e60317cbbc746e, }, w4: u288 { limb0: 0x77d3f868cb018f42a51a098f, limb1: 0x3b28392831d5cdaf18471e03, - limb2: 0x11b5be48a78a0132 + limb2: 0x11b5be48a78a0132, }, w5: u288 { limb0: 0x8d1ce97123cff01dbf56879c, limb1: 0x2f02af85223c497ff5b2e11a, - limb2: 0x1d3f1a99dfbd1384 + limb2: 0x1d3f1a99dfbd1384, }, w6: u288 { limb0: 0x3fd75ee1c489f88b2fc32243, limb1: 0x737aae095a654f624b6f63f9, - limb2: 0x2f4b2b139fdc4fa9 + limb2: 0x2f4b2b139fdc4fa9, }, w7: u288 { limb0: 0xa450865b8dc8ad706d913ad1, limb1: 0x6568246a5878ce9e6911b5d5, - limb2: 0xd1505e942ab53fc + limb2: 0xd1505e942ab53fc, }, w8: u288 { limb0: 0x803cfc36831117d202a58c58, limb1: 0xc6daa54242c30c5d44005261, - limb2: 0x27e112ce5019213 + limb2: 0x27e112ce5019213, }, w9: u288 { limb0: 0x1381248822859f125ce62cd4, limb1: 0xfc617ab7f0e7bc85a514d322, - limb2: 0x2a4e7ebc04f2a885 + limb2: 0x2a4e7ebc04f2a885, }, w10: u288 { limb0: 0x70e8bced7cd129b4096b8665, limb1: 0x8f4670dd657fde1c37ca0a3d, - limb2: 0x9b49f8885959fcd + limb2: 0x9b49f8885959fcd, }, w11: u288 { limb0: 0x20534cc97052c24c0833ee05, limb1: 0xe9fe07db116fc63f2e2a4c5c, - limb2: 0x1e017a6b3eebf717 - } - }, - E12D { - w0: u288 { - limb0: 0x2fdd45f14bd2e71c558f0c38, - limb1: 0xbe423f6f409135153c49653f, - limb2: 0x19ac07503f7ed093 - }, - w1: u288 { - limb0: 0x712cec13fddc4b5c45ea2f47, - limb1: 0xf4258573d41680e36142fc6b, - limb2: 0x2ef0950d73ca270b - }, - w2: u288 { - limb0: 0xede6eadca94f04595fa49dec, - limb1: 0x1e5cc86563b78f264bf026f, - limb2: 0x2a0758aac50e7491 - }, - w3: u288 { - limb0: 0xd2758450c1234dfe75fa13c8, - limb1: 0xa609e14e3c32820f62d75360, - limb2: 0x192fb9273e219654 - }, - w4: u288 { - limb0: 0x6a245d3c3df8acc1345f6a37, - limb1: 0x208f3a9701fd2846b10428f9, - limb2: 0xfc380289574db0d - }, - w5: u288 { - limb0: 0x3cbe71cb4351bd06b01cf7a5, - limb1: 0x91028a0a9ba2e42eeb14aeae, - limb2: 0x759e3230cc024f - }, - w6: u288 { - limb0: 0x1a35dc135e92851e04f3e6b8, - limb1: 0xf619c16cfb8c337bb5bb949d, - limb2: 0x24e4752f8a5f3d75 - }, - w7: u288 { - limb0: 0x506104afba31c20a61a75e43, - limb1: 0x31cd03015c98792f34ee3349, - limb2: 0x7ea788f93bac7 - }, - w8: u288 { - limb0: 0xf78fb1034084c8d96efeac2a, - limb1: 0xdaa4f64e87ddd182c7b9c6ea, - limb2: 0xae59384fb9c7128 - }, - w9: u288 { - limb0: 0x9bfa518f1a5f38abd4fa3756, - limb1: 0x5441d990c3b813ca7713129, - limb2: 0x7f5da8e329fb2dc - }, - w10: u288 { - limb0: 0x9023d6d476a985e0dfb24a14, - limb1: 0xbcb0c72ef594e7052db08de1, - limb2: 0x11772b90bb557415 + limb2: 0x1e017a6b3eebf717, }, - w11: u288 { - limb0: 0xf4ad676b4572333994418a58, - limb1: 0xace4ef56b73b28e36fca1d3c, - limb2: 0x101fb88b2b6f15bb - } }, E12D { w0: u288 { - limb0: 0x5bb45687493a11f8c031be7f, - limb1: 0x228c6338279eae5854979991, - limb2: 0x29cdea35cf2ff805 + limb0: 0x6e6bdf80500cb854f5dd0bff, + limb1: 0xbf9a626b9cbccc283c57700b, + limb2: 0x20f5c7f5f71cb22d, }, w1: u288 { - limb0: 0x40564be49ebced1f7ab77f81, - limb1: 0x6151addd935ab515da1ebc85, - limb2: 0x2c881256af0d03e3 + limb0: 0xdb32a31be60950339fb1122a, + limb1: 0xf752607f2d770dbc152220c2, + limb2: 0x119f27829f3f396b, }, w2: u288 { - limb0: 0xa1dca87ffa1adc9d01c768a, - limb1: 0xc0330f9fe2af80b41a4c650e, - limb2: 0x2a00a048ceb9e725 + limb0: 0x9d48d334e95302c9d457e824, + limb1: 0x71e66184e0c417cc823bcb6d, + limb2: 0x230fd13d768e195b, }, w3: u288 { - limb0: 0x17db557bac2e5f5b0c3c14c2, - limb1: 0x74d4203577dd4017c233765a, - limb2: 0x2d4a02293b84933f + limb0: 0x2cce2b592737976adcdeb399, + limb1: 0x6f7e7895cc9ac490802fc64c, + limb2: 0x2e34a9c5e37e2c13, }, w4: u288 { - limb0: 0x36cbfc249ce87842a64e06ed, - limb1: 0x301570c53359d99f548138ff, - limb2: 0x9ddf8d2eb32b0de + limb0: 0x1b78faac53b2579e5036465a, + limb1: 0x3dd4cb80488ff8f5cac70df4, + limb2: 0x29834f6805b456e1, }, w5: u288 { - limb0: 0x7a51cb5bc410d480c4b20913, - limb1: 0xa2f087adc308088ff5c7f785, - limb2: 0x19fe83a07d3de659 + limb0: 0xbeb6734949c1988a2bab2b43, + limb1: 0x2551b72dc3bd9631884c52eb, + limb2: 0x2a7502d7a3ab80e4, }, w6: u288 { - limb0: 0x77cba9fae59abf1982dfe21c, - limb1: 0xbd808d9873aa7418f50b1a17, - limb2: 0x94e11284070133a + limb0: 0xc862806b3e7a8b9b9c55054, + limb1: 0x874d4d7db6cd2dc1c25218dc, + limb2: 0x102e882c30c3623e, }, w7: u288 { - limb0: 0x95cc961847acec5cec6fe0b0, - limb1: 0x2b70919ac996e98f0c449a8e, - limb2: 0x1106f60e46256639 + limb0: 0xf303abb1515fa0b31a804e39, + limb1: 0x240918f6ba89758a1c7d1cfa, + limb2: 0x7f3dfb58aa1125b, }, w8: u288 { - limb0: 0xc9484d6ad3b1426cc6f7597b, - limb1: 0x681d8dbd8feddba1359e9ab0, - limb2: 0xb871acc6377b3ec + limb0: 0x3f1cfdf33cad91734b211407, + limb1: 0x17c4a8522daa84de4bad7323, + limb2: 0x19c76e0eb6c3b0c3, }, w9: u288 { - limb0: 0x795333aef69553bb89432d06, - limb1: 0x15720ca05088e80018d0086, - limb2: 0x204f664fb5a8b537 + limb0: 0x3a57bba7ae1b75fc6df7c6c0, + limb1: 0xac20c3a4dd640432204a0563, + limb2: 0x23288051e80e08eb, }, w10: u288 { - limb0: 0xfe74dff290385f4d02437d37, - limb1: 0x3448ebb0fd12a91f0264ae86, - limb2: 0x872f185346019ab + limb0: 0x5e00c38b0e2a7ce9098d68b0, + limb1: 0x66eae940dafebe8c421747aa, + limb2: 0x9136eb12adac86f, }, w11: u288 { - limb0: 0x8709cfbf8efbbca603c72864, - limb1: 0xd6b9c331fc88983ffafdacc, - limb2: 0xada917510233f84 - } + limb0: 0xf157c33f547ac7f32e5da8f0, + limb1: 0xf76a7a02c64558b3145a2909, + limb2: 0x260334b73e26b56, + }, }, E12D { w0: u288 { limb0: 0xd4841712eb8b92acbedd7923, limb1: 0xdcc6cee17886abdb1007239, - limb2: 0x150b39f44b2070e0 + limb2: 0x150b39f44b2070e0, }, w1: u288 { limb0: 0x5693a871b5fcffa2aa8b4aaf, limb1: 0xf260475042f99b758ffee0f5, - limb2: 0x10a5018f8eb12723 + limb2: 0x10a5018f8eb12723, }, w2: u288 { limb0: 0x43308af7aa07017ad6f06355, limb1: 0xc9bed74aa5c3e515055e74bb, - limb2: 0x281c1906fc2d8afe + limb2: 0x281c1906fc2d8afe, }, w3: u288 { limb0: 0xaa4bf5eb2f5748f9b858b3ac, limb1: 0x903bb70501a35aac3f678acf, - limb2: 0x1eb2165addc33abe + limb2: 0x1eb2165addc33abe, }, w4: u288 { limb0: 0xfc14dce79b687ac1377a374f, limb1: 0x18252db25bc6c91e70b57c56, - limb2: 0x250aa6edf0514ce + limb2: 0x250aa6edf0514ce, }, w5: u288 { limb0: 0x229282724410b8e16b0f2fa7, limb1: 0x43c0ab0e53479a84a0f564b1, - limb2: 0x277ac6336a1a9b7d + limb2: 0x277ac6336a1a9b7d, }, w6: u288 { limb0: 0xdeed55ef2faf345e53af52ec, limb1: 0x3bce9ebf3a661964cfe37503, - limb2: 0x97f9056a20ad491 + limb2: 0x97f9056a20ad491, }, w7: u288 { limb0: 0x5f69ceece471cc3ebd6aa0f8, limb1: 0x32189eba17079bfd1de6d1a9, - limb2: 0x12a79a708bf4a5f3 + limb2: 0x12a79a708bf4a5f3, }, w8: u288 { limb0: 0xccbdec684569a23bb8881bd3, limb1: 0xd74a36913d0eb6e13ae1583b, - limb2: 0xced65adac6fe081 + limb2: 0xced65adac6fe081, }, w9: u288 { limb0: 0x37e051b03ff0ee8df34ca1d1, limb1: 0xc09812bdf872a01279ba5ec7, - limb2: 0xc1c7be819a2edf5 + limb2: 0xc1c7be819a2edf5, }, w10: u288 { limb0: 0xdfb1cb3fd176963ae1e316f5, limb1: 0xdfef2969e0f31e316ae3b98, - limb2: 0x16ce939a24e83d96 + limb2: 0x16ce939a24e83d96, }, w11: u288 { limb0: 0x4def6d08fe4f8a3b36f8e4e4, limb1: 0x25c0237a5c43846680868d, - limb2: 0x28301a94744a9062 - } + limb2: 0x28301a94744a9062, + }, }, E12D { w0: u288 { - limb0: 0x7814d2a2c673f884b8085ba9, - limb1: 0xbd40bf21978b9505c24ee7c, - limb2: 0x12f9fbc18fd0945a + limb0: 0x51d791055394af3437707fca, + limb1: 0x23d9d4f513172857b91ac570, + limb2: 0x12d712a33c1350ef, }, w1: u288 { - limb0: 0x4e44b87366f0c6852069ce2c, - limb1: 0x56457b867283b23613156034, - limb2: 0x2d485871a7f62f8e + limb0: 0x6ebaf7ae16d5257aa23557c3, + limb1: 0x7e85a68783668f379c36a3df, + limb2: 0x1b780a9a09031ddc, }, w2: u288 { - limb0: 0x7e0e12c8bfab2c621558e974, - limb1: 0x4ac7103f3b7df77b0ed0601a, - limb2: 0x5752e31d723670a - }, - w3: u288 { - limb0: 0x4ca4c60fd2b3fae36c0888a, - limb1: 0x560314ba12824fb705eb7dae, - limb2: 0x1538c2aea43d2fcd - }, - w4: u288 { - limb0: 0x1bfe7bb6becc1a1e21ef8c5b, - limb1: 0x7fbc1eaf3d87902d5fa7360, - limb2: 0x2ba646f9306088b4 - }, - w5: u288 { - limb0: 0xe98c3b87f3c3962c9fdbb590, - limb1: 0xfbaed2bad5dba241b8f9bf68, - limb2: 0x2411f0793d279fee - }, - w6: u288 { - limb0: 0x2489fbe2849fe66d3648c99d, - limb1: 0x2aa30b0e94bc9828ab8d0b1, - limb2: 0x1db1b5b17906d60 - }, - w7: u288 { - limb0: 0x21e5e6605c156bb1bccabcc5, - limb1: 0x743e14bb6db3b9b8c59d717b, - limb2: 0xcfb3133529c7340 - }, - w8: u288 { - limb0: 0xbb24ad8c53e2c6bdf456c13b, - limb1: 0x1e97fec087f78f36b63d833a, - limb2: 0x24afd8f7725a3455 - }, - w9: u288 { - limb0: 0x48d5f3a8126f76c7a05783db, - limb1: 0x25f6b188a8de6999a0337840, - limb2: 0xcf17086fec6dc4e - }, - w10: u288 { - limb0: 0x757efec185f1c79cde655ce9, - limb1: 0x69daadfcccd7ef9c30862410, - limb2: 0x18823a4a6e3c2b51 - }, - w11: u288 { - limb0: 0xcf3c82f516e9831a2ff2c839, - limb1: 0xd41a6fbe0751356564e2a877, - limb2: 0x4eae9761fd6d8d7 - } - }, - E12D { - w0: u288 { - limb0: 0x51d791055394af3437707fca, - limb1: 0x23d9d4f513172857b91ac570, - limb2: 0x12d712a33c1350ef - }, - w1: u288 { - limb0: 0x6ebaf7ae16d5257aa23557c3, - limb1: 0x7e85a68783668f379c36a3df, - limb2: 0x1b780a9a09031ddc - }, - w2: u288 { - limb0: 0xfec2358627a9becd5a63e12e, - limb1: 0xe9bef5e0c521222e0b7da3b1, - limb2: 0x1296f365f4cf82fb + limb0: 0xfec2358627a9becd5a63e12e, + limb1: 0xe9bef5e0c521222e0b7da3b1, + limb2: 0x1296f365f4cf82fb, }, w3: u288 { limb0: 0x6cc4cf9d0dad41495180590b, limb1: 0x9f70ac798e90cf1ea4b1c1c8, - limb2: 0x87c41a6c59dfc2d + limb2: 0x87c41a6c59dfc2d, }, w4: u288 { limb0: 0xe8febbc4d69a96df764a0a62, limb1: 0x1fb35aecac9dae22ec85780a, - limb2: 0xdf36c808d1b34d + limb2: 0xdf36c808d1b34d, }, w5: u288 { limb0: 0x2e55c0606268af7f04a33d7c, limb1: 0xa3ea362cb853b36d21362864, - limb2: 0x2440dcee8b02c1d8 + limb2: 0x2440dcee8b02c1d8, }, w6: u288 { limb0: 0xef7561c98b669e09fef5573b, limb1: 0x9faf5b92dae5c40288b29667, - limb2: 0x211a161b16c7393a + limb2: 0x211a161b16c7393a, }, w7: u288 { limb0: 0x24d4a044898ad07d62fa1828, limb1: 0xf0baabec5df39b859a9a23b6, - limb2: 0x26521f9732987047 + limb2: 0x26521f9732987047, }, w8: u288 { limb0: 0x7229c3d55422cc60a2776f2c, limb1: 0x22befd3a50a7a7e04032a122, - limb2: 0x105baaf5e920b8c2 + limb2: 0x105baaf5e920b8c2, }, w9: u288 { limb0: 0x4390439b3b081876e13423a3, limb1: 0xb568d6eb2f6f72b6c3159bcc, - limb2: 0x169d5ab5a0f60736 + limb2: 0x169d5ab5a0f60736, }, w10: u288 { limb0: 0x2f0b3c9576e4fd67031ca87d, limb1: 0x22e0bc83c4170a8aa384e3dd, - limb2: 0x2872abcaeb098125 + limb2: 0x2872abcaeb098125, }, w11: u288 { limb0: 0xe52e2fb0028f73e921534e74, limb1: 0xf6cfd97c1d181d7750441ac9, - limb2: 0x1c56ef8977682024 - } - }, - E12D { - w0: u288 { - limb0: 0x84d747316dfb7280a154afbb, - limb1: 0x80071e830936574617a5f0ad, - limb2: 0x1dff475aa67504a2 - }, - w1: u288 { - limb0: 0xe0a9ccc4ad7ff65c90f62885, - limb1: 0xcb80f6d1e6248546b4e5c292, - limb2: 0x2f3e4804b670544c - }, - w2: u288 { - limb0: 0xc115b4231eec168701bbd1d8, - limb1: 0x592c78a2c785d9e6bbbb5de9, - limb2: 0x1b54dc791e38a075 - }, - w3: u288 { - limb0: 0xb0566993295ac71e46832195, - limb1: 0x15d89114380d896b6c6ffc6d, - limb2: 0x589b40e1a2c6a77 - }, - w4: u288 { - limb0: 0x32e6236d18ef0a0cba148407, - limb1: 0x75c5547a357550ec4490dc2, - limb2: 0x241ab669be7fdc59 - }, - w5: u288 { - limb0: 0x731cfc382a22095cf97312ac, - limb1: 0xa56f43cc755589bc5edb9961, - limb2: 0x1d649b991c214429 - }, - w6: u288 { - limb0: 0x79861a255596c846a8f2654b, - limb1: 0xead4c4100bafeb163bf387aa, - limb2: 0x2e183a705cb116b - }, - w7: u288 { - limb0: 0x6eb1257f363c5ddb622bb47b, - limb1: 0x42a90e60a4aba2cf9c166ac1, - limb2: 0x22bc32cae062bc75 + limb2: 0x1c56ef8977682024, }, - w8: u288 { - limb0: 0x9afb711365a4a45e6a05726e, - limb1: 0xa0ad87509587f222fc280fcb, - limb2: 0x670f44b9b517db3 - }, - w9: u288 { - limb0: 0xdf8fd469aa5b4aab45c6cef2, - limb1: 0x980bb3a0104c1552a29e2297, - limb2: 0xf193adff9f73057 - }, - w10: u288 { - limb0: 0xbb026624b9aff703c4a15566, - limb1: 0xec4bd1d08ae19c587baa6b86, - limb2: 0xa72c13a9735cef5 - }, - w11: u288 { - limb0: 0xb462b0d615d16c7f37e95d82, - limb1: 0x5890313d651a4c313e7a6d48, - limb2: 0x169fe024e45961c5 - } }, E12D { w0: u288 { - limb0: 0x9275eeaca7ed67c748ad13a1, - limb1: 0x89c8e03db0b7a5048e039168, - limb2: 0x18e65c682630c5d + limb0: 0xae28d327617f61548f759aba, + limb1: 0x1401aa78c9ec2231ff346415, + limb2: 0x113fb038206ddf58, }, w1: u288 { - limb0: 0x9a0fee4f3dba75bfac6fef83, - limb1: 0xa5f45410b12fb42aa2671528, - limb2: 0xaf271a96d993111 + limb0: 0x42996e09532c7a0cefd8a71e, + limb1: 0x69c61eb722a1e7209c4cd611, + limb2: 0x13a6cbdff96772d, }, w2: u288 { - limb0: 0xec43b9adb1e3768acd3083d4, - limb1: 0x7b24e5f7ffb34e51d55cc588, - limb2: 0x29d060494babc596 + limb0: 0xbf63f1fcc51ddcc897f42363, + limb1: 0x707fca9fe10a26f918b0ca37, + limb2: 0x669edeff7d809fe, }, w3: u288 { - limb0: 0x67dc40b0af0e10bac7a05952, - limb1: 0xebf5b34d0c0616026ed7e65a, - limb2: 0x30374b2d414cf057 + limb0: 0x8bb34e49a388ddc9b04b2180, + limb1: 0x38dcd13822ba4ee2a5cdd793, + limb2: 0x1d5dac515eaa51b8, }, w4: u288 { - limb0: 0xdccf4e86511eb060ef6b09cb, - limb1: 0xb8f88821d9e2fc976f551374, - limb2: 0x13489c73fabbc9db + limb0: 0xa0125e6adb1681a41dbbf2d6, + limb1: 0x3e2cccd5ac961e1a78aab8ce, + limb2: 0x13d6bd7db8c4b48e, }, w5: u288 { - limb0: 0x1766383264ea79163e53cca1, - limb1: 0xe26d7a5e4522e3b62d0a2c92, - limb2: 0x1068c96469a54143 + limb0: 0x737b7f10bf6822280731a819, + limb1: 0x69bd4676e8f1e6a89c10d4e7, + limb2: 0x19ba69c1ce404728, }, w6: u288 { - limb0: 0xd631180209a3a491bcdcbcaf, - limb1: 0xd274eb379ffb96d0080d6a27, - limb2: 0x12f90e2564e5e574 + limb0: 0x4309f0c42a45a1cd80562659, + limb1: 0xdda759df4dc118a6bb9c4ff4, + limb2: 0x1fef98dddc22b559, }, w7: u288 { - limb0: 0x7ccb990a2d4f3d909ab47ac0, - limb1: 0x14e69a8c84385472abc58c47, - limb2: 0x2f91aa7f35a6a028 + limb0: 0x16e4b900d586497d3c45f6df, + limb1: 0x49f7f05337ad0de92e3b353d, + limb2: 0x2a317f6bb6771fc4, }, w8: u288 { - limb0: 0xdf8f82bd9c0e471242981be, - limb1: 0xb293c77cf24c3c14fa4da691, - limb2: 0xa151237273b3124 + limb0: 0xdb1d34070b21596c13268b11, + limb1: 0xaa74ad91700236cbbbdc34ff, + limb2: 0x1f3d2738883aba1b, }, w9: u288 { - limb0: 0x44f06f58480ae669a0809114, - limb1: 0x754559fb743aecec3589bcd, - limb2: 0x159166d1317624c6 + limb0: 0x5dd4d2f3b2fa8a97fa8ea9f9, + limb1: 0x2c5dc834a8f95e902710f4df, + limb2: 0x138f968bf21498ba, }, w10: u288 { - limb0: 0x181648a6f295bddf00b68eeb, - limb1: 0x631c1596b7a2878ea3892305, - limb2: 0x1e22501d45bcd6ad + limb0: 0xabdbabb3b67443c8a7106c79, + limb1: 0xb0ae2b75703e953d30907447, + limb2: 0x190bab990471c462, }, w11: u288 { - limb0: 0xde3351ba3fb4ddcc883cc7a3, - limb1: 0x497f571dd073afb155a59c13, - limb2: 0x21469de05906eb86 - } + limb0: 0xcf34ae390b76e945d679a1ba, + limb1: 0x4f4ea018b12e85eefbae6240, + limb2: 0x11b6508aaf7e8efa, + }, }, E12D { w0: u288 { limb0: 0x1d3d00823688d41dfa0aa2b3, limb1: 0x9b15db2c2993d757e61bb1c0, - limb2: 0x2ae11207cfbeafa3 + limb2: 0x2ae11207cfbeafa3, }, w1: u288 { limb0: 0x98d01e898aa5900d5e36c127, limb1: 0x5758a38ee763892c547b2b91, - limb2: 0x10637e0aedce350d + limb2: 0x10637e0aedce350d, }, w2: u288 { limb0: 0x7e29a433af8412d07647248, limb1: 0xa64f271a5fcb6111d0d23fe5, - limb2: 0x19b1b1819c206eb3 + limb2: 0x19b1b1819c206eb3, }, w3: u288 { limb0: 0x76c3391612430b219f11873, limb1: 0x10b12d6e15c51b81da686386, - limb2: 0x2e39ee00a0dd8a97 + limb2: 0x2e39ee00a0dd8a97, }, w4: u288 { limb0: 0x1a95ae61cf5a0ed10ad477b2, limb1: 0x288278e4057eea5d43aa3a66, - limb2: 0xb2bb0125965187e + limb2: 0xb2bb0125965187e, }, w5: u288 { limb0: 0xdcec59caea988d5ed8354e57, limb1: 0xd9de2dbed0736af7fb5adde9, - limb2: 0x139627bfb4249292 + limb2: 0x139627bfb4249292, }, w6: u288 { limb0: 0xb1a085a9c20d52aff5c6f0be, limb1: 0x9a17337ed73c52ccead8864e, - limb2: 0xdcfc8e7b31d6b15 + limb2: 0xdcfc8e7b31d6b15, }, w7: u288 { limb0: 0x1ded66fd8aec0a04c911f1a3, limb1: 0x2814204faef35f41e3f1cc8b, - limb2: 0x1999b17d88973015 + limb2: 0x1999b17d88973015, }, w8: u288 { limb0: 0xa9969aafed2e81fe21fceccc, limb1: 0xde819f6c6186b981c324bd60, - limb2: 0x2ea9d87f146b9984 + limb2: 0x2ea9d87f146b9984, }, w9: u288 { limb0: 0xa576384a80333dedf9e88310, limb1: 0x364ad41f1043ed9c6286cf5d, - limb2: 0x185381ccca5628e0 + limb2: 0x185381ccca5628e0, }, w10: u288 { limb0: 0xec6a507f1e942bf671d63ab3, limb1: 0xf9ec826df2822a61bc36725, - limb2: 0x14ce04de4bbb61da + limb2: 0x14ce04de4bbb61da, }, w11: u288 { limb0: 0x168a2628e665ca7591760e15, limb1: 0x115842818d09028abf06552f, - limb2: 0x1c7b912d4cec67a3 - } + limb2: 0x1c7b912d4cec67a3, + }, }, E12D { w0: u288 { limb0: 0xf73192b2fe5dc1293422b385, limb1: 0x7c0b272084084d471108c781, - limb2: 0x3020dd2bb1971af4 + limb2: 0x3020dd2bb1971af4, }, w1: u288 { limb0: 0x30a64137b7e95ebfcdab4d96, limb1: 0x229f57d761eeb3876b51cd56, - limb2: 0x19a596949310e6ad + limb2: 0x19a596949310e6ad, }, w2: u288 { limb0: 0x6a8e194198a83adeb7bb2d57, limb1: 0xdd72e054a7572ae9694e527b, - limb2: 0x1e166b19fd03f8da + limb2: 0x1e166b19fd03f8da, }, w3: u288 { limb0: 0x89955ac52e292b8ef51fee5b, limb1: 0xb4a02290d35f652e34e4160c, - limb2: 0x25f5a19aec7507fc + limb2: 0x25f5a19aec7507fc, }, w4: u288 { limb0: 0xfd26f66a7e8b7c9b65ccf82f, limb1: 0x885924961e16baba1430bbff, - limb2: 0x340f95fa56b75d0 + limb2: 0x340f95fa56b75d0, }, w5: u288 { limb0: 0xef273d28469f2f491bbcd40a, limb1: 0xe90efb0fe5cac233218f725e, - limb2: 0x2270370eed956191 + limb2: 0x2270370eed956191, }, w6: u288 { limb0: 0xca9dcd949b9485cbb6caf5, limb1: 0xf042772fe0b0a8d9ca424d0d, - limb2: 0x6d8cd4db60bffeb + limb2: 0x6d8cd4db60bffeb, }, w7: u288 { limb0: 0x62143619306fd7c0b3b08cc9, limb1: 0xe18c5df14640cc99bb874bd4, - limb2: 0x1e30a97ba92bbad6 + limb2: 0x1e30a97ba92bbad6, }, w8: u288 { limb0: 0x25f8c1f28cee5b135d48cdb6, limb1: 0x9acc1820c130cb285092986d, - limb2: 0x2f167bb2de542dc7 + limb2: 0x2f167bb2de542dc7, }, w9: u288 { limb0: 0xdfd9bc4b5d951cf27288f3d8, limb1: 0x20e76c8c514cfc034e8cee6c, - limb2: 0x8b4f5acd534d42 + limb2: 0x8b4f5acd534d42, }, w10: u288 { limb0: 0x8e677eb53bf14698e8b36257, limb1: 0x9aea99485edddd73910e5d7b, - limb2: 0x1973552b29e8f190 + limb2: 0x1973552b29e8f190, }, w11: u288 { limb0: 0xd5b7c92c3679269e6e89fe4d, limb1: 0x571711871632367838fd954f, - limb2: 0xca34d2d34fc803f - } - }, - E12D { - w0: u288 { - limb0: 0x6c490351ed33365477ef135f, - limb1: 0x95cd563c8cf7e5c65276fa0, - limb2: 0x21674c8db95a73a2 - }, - w1: u288 { - limb0: 0x991a3c4fb7bec4e1ef338f0d, - limb1: 0x8914d7c3f80811c228e95764, - limb2: 0x2dcafaf1b47a95e9 - }, - w2: u288 { - limb0: 0x9ffcc64c84552f5c9a361d50, - limb1: 0x44ce5317bc5ae00680a318ce, - limb2: 0x1d8409bee89ec60f + limb2: 0xca34d2d34fc803f, }, - w3: u288 { - limb0: 0xe58bfa2a87e3efc941ed7779, - limb1: 0x86a19721be49e88171c3ffff, - limb2: 0x11e845bde1dfbbda - }, - w4: u288 { - limb0: 0x2e1d6308651eaa8c8fab8e43, - limb1: 0x94115ffbf9a57fd06a61b45f, - limb2: 0x2e690391888dd9da - }, - w5: u288 { - limb0: 0xbd795824c1744828ae7ef811, - limb1: 0xad1f4809c72134e801c991cf, - limb2: 0xb6e17abd8396e2b - }, - w6: u288 { - limb0: 0xf24167dbe7e5ad7c15e04ba5, - limb1: 0x82e89526e991ecd1e052d4f0, - limb2: 0x66ec7f826440df9 - }, - w7: u288 { - limb0: 0xe31da86a62cea52ed8dbaec3, - limb1: 0xa16f7553fa28b952a8641c78, - limb2: 0x2fa3ce6860cb6f75 - }, - w8: u288 { - limb0: 0x7b664cb1dbe0a2d36ec8bd78, - limb1: 0xdb78d889a0028d847c97205e, - limb2: 0x2f346886b94f2412 - }, - w9: u288 { - limb0: 0x99d016216d39e143c2343aed, - limb1: 0xbcdefab53f27382d1103af65, - limb2: 0x299076e38fab489e - }, - w10: u288 { - limb0: 0x5403ad612b9352c4f9f1f790, - limb1: 0xe75ff1f2e0a6c13c793a780e, - limb2: 0xe82e2d5796d6858 - }, - w11: u288 { - limb0: 0x1c654c441cdd489aff215ae5, - limb1: 0x8d3e9314ffa5701fc9f8fb2f, - limb2: 0x2eb27640cd144ddf - } }, E12D { w0: u288 { limb0: 0x5a115fd010369153e97447d6, limb1: 0x30bec73abe3a59b63e145fad, - limb2: 0x13cad9f295161d7b + limb2: 0x13cad9f295161d7b, }, w1: u288 { limb0: 0xa241b367a81e2287bcb61b16, limb1: 0x46dcbe36594cfb18595a8f0, - limb2: 0xab01b7e5df25989 + limb2: 0xab01b7e5df25989, }, w2: u288 { limb0: 0x958fca463d9bb5661f0b2fd9, limb1: 0xe06657821675ca026783130d, - limb2: 0x59ffe9952b66fb9 + limb2: 0x59ffe9952b66fb9, }, w3: u288 { limb0: 0x574fb844c92111198355d520, limb1: 0xa14dab7a5284adcd16f40ce5, - limb2: 0x1806c0e26ec0aee7 + limb2: 0x1806c0e26ec0aee7, }, w4: u288 { limb0: 0xe7172a20883b7e788bde9782, limb1: 0xcf0a0721de528a49cb3dd1c4, - limb2: 0x25972b2764f33320 + limb2: 0x25972b2764f33320, }, w5: u288 { limb0: 0x731c250de9790bc763ae6475, limb1: 0x2a9161ea6cab27c57ed08479, - limb2: 0xbba79ad176ebf3d + limb2: 0xbba79ad176ebf3d, }, w6: u288 { limb0: 0x1883e2d532d070e92581f205, limb1: 0x3ee4f828dc142213ed8af967, - limb2: 0x2e502ad8c56d0a28 + limb2: 0x2e502ad8c56d0a28, }, w7: u288 { limb0: 0x5e8c5fa9891c0aba3c546e3b, limb1: 0xef69eec871a7317eb48f3c4c, - limb2: 0x15527229b85df416 + limb2: 0x15527229b85df416, }, w8: u288 { limb0: 0xf9d9b27fb6982c16115b072a, limb1: 0x25855f7b17b4ab7d777c5a71, - limb2: 0x17b488bbc4482f41 + limb2: 0x17b488bbc4482f41, }, w9: u288 { limb0: 0xc8d3bb50e255913069e7e85a, limb1: 0x24471c0093ed7d60d8ec93fe, - limb2: 0x1d25a04ef49a8340 + limb2: 0x1d25a04ef49a8340, }, w10: u288 { limb0: 0x8469405a54b25563e06b7556, limb1: 0x362aa168589a62d47f199abd, - limb2: 0x144504d5e88c24cd + limb2: 0x144504d5e88c24cd, }, w11: u288 { limb0: 0x6ecf9040c554795e77fbc3d, limb1: 0xce3f520885d6702426c67484, - limb2: 0x1729093a618f3459 - } + limb2: 0x1729093a618f3459, + }, }, E12D { w0: u288 { limb0: 0x4e76344718fef690a24dad4a, limb1: 0xc77cee5e9c5a4c63dcec6df, - limb2: 0x2eabcc53f3044ba2 + limb2: 0x2eabcc53f3044ba2, }, w1: u288 { limb0: 0xff72f26ff560d5c610868418, limb1: 0xcf976dd967e078f76ffa7f14, - limb2: 0x2c4c3336767ab0f8 + limb2: 0x2c4c3336767ab0f8, }, w2: u288 { limb0: 0x74290c1a859b6a664515c7ec, limb1: 0x4018fec3da718ea7ce725e7a, - limb2: 0x2c0acbaf6d3dda8c + limb2: 0x2c0acbaf6d3dda8c, }, w3: u288 { limb0: 0x9e24330df30e289200970ddc, limb1: 0x2c7506954dfbab29debdcc33, - limb2: 0x19e88e5ba2f32c9e + limb2: 0x19e88e5ba2f32c9e, }, w4: u288 { limb0: 0x92b81688683664e49ad6c207, limb1: 0x950a1848e1e7bd3bee4e9648, - limb2: 0x245fb841e1ea7f20 + limb2: 0x245fb841e1ea7f20, }, w5: u288 { limb0: 0xc0f5268607b5fb01ab981f8, limb1: 0x92b4bd8b0642eb9b8125e71e, - limb2: 0x832b45514154898 + limb2: 0x832b45514154898, }, w6: u288 { limb0: 0x18faa9f18edac485d6a7b190, limb1: 0xc374fb5ae398115c8cc5d4f, - limb2: 0x1b89ed6497f7528b + limb2: 0x1b89ed6497f7528b, }, w7: u288 { limb0: 0x60c6513ff564579e1988b356, limb1: 0x829048cc61af118a911e5195, - limb2: 0x4b67c5750b2a6c8 + limb2: 0x4b67c5750b2a6c8, }, w8: u288 { limb0: 0x2ad1d470e7cbba646712536d, limb1: 0xebf4f74cfd00385bc9700205, - limb2: 0x21fb3b56977d6981 + limb2: 0x21fb3b56977d6981, }, w9: u288 { limb0: 0xc193efe12433a6a7cd169fd5, limb1: 0x8e27c0d34ce21cff9d29399a, - limb2: 0x132d71372731fcc8 + limb2: 0x132d71372731fcc8, }, w10: u288 { limb0: 0x556a4d23d4f86a177341b2e5, limb1: 0x383fea5b5626cc64d9e66b7a, - limb2: 0x1ce052cbe93337d + limb2: 0x1ce052cbe93337d, }, w11: u288 { limb0: 0x4e56bc802b5abe09ee095df, limb1: 0x37fb83a829d63d38ea7fe544, - limb2: 0x2b3dbc96d14de0ea - } - }, - E12D { - w0: u288 { - limb0: 0xdf09db0d29f0a62f6c8475de, - limb1: 0x5ec575f94a505ac73d5eb91, - limb2: 0x1a0ad63d4559f556 - }, - w1: u288 { - limb0: 0x1cac1afb8b5d508002b5065f, - limb1: 0x4da7bbbdb51ef1871dcc83a, - limb2: 0x27df7e2b493760cb - }, - w2: u288 { - limb0: 0x2773e85297b76f094c31e28f, - limb1: 0xeac183b0e7f4bd9365d17a46, - limb2: 0x25033451789b2a - }, - w3: u288 { - limb0: 0x3d2e805aecbccbe1bc60ad99, - limb1: 0x1ddcf8529b4a8b2195b93a07, - limb2: 0x200389fbda976a30 - }, - w4: u288 { - limb0: 0xf1a994c4c63e36939d049bc0, - limb1: 0x2a8fe03df99c43e7d6afa30c, - limb2: 0x21f259ada3c4c4a0 - }, - w5: u288 { - limb0: 0x53721ba178599e3e8afc67a, - limb1: 0x47746cd7fd60596c0c378114, - limb2: 0x17d9b5aff235ca37 - }, - w6: u288 { - limb0: 0x2f10c27df1ba3f449f0c7d9, - limb1: 0x2cd55dc247a34217832071bb, - limb2: 0x1fb4effd619b5fc9 - }, - w7: u288 { - limb0: 0xcb9cc1b9a861c26c9e29ea1b, - limb1: 0x5553c47fa2cf5d51711f8841, - limb2: 0x9ccef2596139986 - }, - w8: u288 { - limb0: 0xdc944d5a9f6098966cb7e6ca, - limb1: 0xba654abdeef4d2b7310df74f, - limb2: 0x21ba47cd335f5a55 - }, - w9: u288 { - limb0: 0xbf9f356da450ec434f817b6b, - limb1: 0x2f213a2981d260fcb5182223, - limb2: 0x1ef068ea4b94a17a - }, - w10: u288 { - limb0: 0x1363798632c9ca77196250e7, - limb1: 0x7da432fe110c6e9e240ad351, - limb2: 0x1a36e2917de4e9ad + limb2: 0x2b3dbc96d14de0ea, }, - w11: u288 { - limb0: 0xe661c0831c587f9f76fd1823, - limb1: 0xaa8917aa2614965557c64832, - limb2: 0x246454b57f998dbf - } }, E12D { w0: u288 { limb0: 0x672f14cd0b10414f1a06ab0e, limb1: 0xbc03210758f55bd394a8677b, - limb2: 0x1919a01fe8398d6e + limb2: 0x1919a01fe8398d6e, }, w1: u288 { limb0: 0x994ec01c61f79b37735fb04e, limb1: 0x9f89038d35f704713d113e7c, - limb2: 0x2fb067f3596c6f5d + limb2: 0x2fb067f3596c6f5d, }, w2: u288 { limb0: 0xc4db13525dd2ebf1798bc011, limb1: 0xd7f230dddfb10272addc3ac5, - limb2: 0x129d55618745bdb6 + limb2: 0x129d55618745bdb6, }, w3: u288 { limb0: 0x4df6042036cc4e73caee7fd1, limb1: 0xf39bb2f57992a78b7f562caf, - limb2: 0x10b637bffbf9e3b6 + limb2: 0x10b637bffbf9e3b6, }, w4: u288 { limb0: 0xaf7ef004ea70cae206949fe0, limb1: 0x746537a320de6c4a8a3597ea, - limb2: 0x2aaeaf029d031dc + limb2: 0x2aaeaf029d031dc, }, w5: u288 { limb0: 0xc621594a078899f8c62a9cdb, limb1: 0x89e9884f3bf39f6476b7b0ea, - limb2: 0x272b433fbcd53b5c + limb2: 0x272b433fbcd53b5c, }, w6: u288 { limb0: 0xed69fdcb268caf1bf4e7be79, limb1: 0xd64e544332ba16059fbe6f21, - limb2: 0x453884fd8055fc7 + limb2: 0x453884fd8055fc7, }, w7: u288 { limb0: 0xfcb53a4db14a035bb31b8e42, limb1: 0xcb56190ac6955b4789800190, - limb2: 0x1948730c4a6d36a3 + limb2: 0x1948730c4a6d36a3, }, w8: u288 { limb0: 0xf71fef15f0a4caabc93864d4, limb1: 0x533dd6e3aef09b50136b0424, - limb2: 0x26d7908e833342d0 + limb2: 0x26d7908e833342d0, }, w9: u288 { limb0: 0xa7702df86f4ffe60b5fcd8be, limb1: 0x82f85e85117830f257dc4449, - limb2: 0x1beb171bf8d70197 + limb2: 0x1beb171bf8d70197, }, w10: u288 { limb0: 0x31fc4912bfb5683fe07e25cb, limb1: 0xd283fd947a39cca9cf8bad14, - limb2: 0x115ec5f3559e2fc + limb2: 0x115ec5f3559e2fc, }, w11: u288 { limb0: 0xa9507d23f9e956aa9f5be47d, limb1: 0x20a327008223620fe131958e, - limb2: 0x1e5fc15a15ef1efa - } - }, - E12D { - w0: u288 { - limb0: 0x4f8d140c2aa860f7a221414, - limb1: 0x6d312f696e08e932cbf4d34e, - limb2: 0x24e660b3a25454c2 - }, - w1: u288 { - limb0: 0x69a4598a1e6c895627be842a, - limb1: 0x57a2bd1222b5cc06af5252c1, - limb2: 0x106a48712e64aeab - }, - w2: u288 { - limb0: 0x8b53b9360acf4361007be8eb, - limb1: 0xc8a25e63f60093d68027d272, - limb2: 0x398b1a76bf0a5e1 - }, - w3: u288 { - limb0: 0xa6654b50cb03f7fd3f92472b, - limb1: 0xae53bb4228cd2f3ea1abd48, - limb2: 0x1cf0da1f010f6e0d - }, - w4: u288 { - limb0: 0xe5884cf0fa8ffff2cc4e9a88, - limb1: 0xbc85f5bdebbc68f108b9f085, - limb2: 0x2fc046823a870a8a - }, - w5: u288 { - limb0: 0xcf5a2df5a4d2523e494a2480, - limb1: 0xdbecffabadbaa2422173c0c5, - limb2: 0x2609bfa148638005 - }, - w6: u288 { - limb0: 0xde1b509834f821071d950bb1, - limb1: 0xe274e6a8c7e44a260c2d0ee6, - limb2: 0x1484e3ca1c0103ad - }, - w7: u288 { - limb0: 0x31c4d6b81f1e3366a2591e67, - limb1: 0x886e07f99f9325c502fdf677, - limb2: 0x340a57f86bd1236 - }, - w8: u288 { - limb0: 0x888bc6e8073ffe78eda2a3e8, - limb1: 0xb0552352911a8a747a36741b, - limb2: 0x28d8cc09a6584c3e - }, - w9: u288 { - limb0: 0x7cf7d5c4c63e7081821e8802, - limb1: 0x5029274a156dcab3e83ba19b, - limb2: 0x113b6ed17e48fdc4 - }, - w10: u288 { - limb0: 0xd8a6f9deed6e9af73def087f, - limb1: 0x7dd73bb05aae976cb1a0bca9, - limb2: 0x510d23290051599 + limb2: 0x1e5fc15a15ef1efa, }, - w11: u288 { - limb0: 0x9b3cf2c6e46a0a68a692486, - limb1: 0xbe6e0ef4d4984c2da4bfb25c, - limb2: 0x13589bec72bdaa35 - } }, E12D { w0: u288 { limb0: 0x2a32729f621dc67e38a9e308, limb1: 0x3c7a4c38ab41463dd90d71e6, - limb2: 0x164410a5de4f6a31 + limb2: 0x164410a5de4f6a31, }, w1: u288 { limb0: 0x7c865da012acb0d622f3e6af, limb1: 0x6efcde33e8cb90fe34763281, - limb2: 0x8bb58070cb757b0 + limb2: 0x8bb58070cb757b0, }, w2: u288 { limb0: 0x102a4c45e1c7dc9a185096a6, limb1: 0x939ac06cca64b4059b650779, - limb2: 0x18d0f097d8f27ead + limb2: 0x18d0f097d8f27ead, }, w3: u288 { limb0: 0x5604d370b04f242174dfdc19, limb1: 0x3f2331ab9d6af28b81d598d7, - limb2: 0x14096280fdb84ef2 + limb2: 0x14096280fdb84ef2, }, w4: u288 { limb0: 0x4412fcdec6354f32bbfff8ab, limb1: 0xb2455bc4da7ee0be75af5185, - limb2: 0x1a06f1d06514810a + limb2: 0x1a06f1d06514810a, }, w5: u288 { limb0: 0x5b518b0ce27ac5904af109d2, limb1: 0x505b8452fe08ea12e98c5709, - limb2: 0xb8fe7b802f5d89a + limb2: 0xb8fe7b802f5d89a, }, w6: u288 { limb0: 0xd0c037f851034b765eed83e4, limb1: 0xb208cada98ad38bb65fa1eac, - limb2: 0xad14e495078b750 + limb2: 0xad14e495078b750, }, w7: u288 { limb0: 0x27c34e9def3b3769635e71be, limb1: 0xb2ec25f739ecf7d9600f51a6, - limb2: 0x2865787fdd12b638 + limb2: 0x2865787fdd12b638, }, w8: u288 { limb0: 0x639142ced19d81d2bb7fab2e, limb1: 0x7c2168110de34c92009b4685, - limb2: 0x1c898a9a832e3d64 + limb2: 0x1c898a9a832e3d64, }, w9: u288 { limb0: 0x1f5eb66df1fdc41bf0ce081e, limb1: 0xafbc19ef146651ce2da77852, - limb2: 0xe6eac8e4ccd9b71 + limb2: 0xe6eac8e4ccd9b71, }, w10: u288 { limb0: 0xf57e46ceab88a82e3a3f41c0, limb1: 0xb9c56b5c009ea3787342009, - limb2: 0x2b02ef12c18f1e03 + limb2: 0x2b02ef12c18f1e03, }, w11: u288 { limb0: 0xfb98309dd05609eb835a18ea, limb1: 0x831938e89a1a52e80f384288, - limb2: 0x2f28355805f38fcd - } - }, - E12D { - w0: u288 { - limb0: 0xdab2d4d1fb4dfff987a7d3d3, - limb1: 0x2411e94edcc7bffd7075d449, - limb2: 0x135e75c4d51d972e - }, - w1: u288 { - limb0: 0xee981fb59ed03970c6ca8281, - limb1: 0x3e83fef603c51d5671177815, - limb2: 0x2e73c1090281f7e - }, - w2: u288 { - limb0: 0x2462d8aa24aa18eb50b5a9e1, - limb1: 0xe3c51abeea523cbd99f67788, - limb2: 0x219691038e9fb944 - }, - w3: u288 { - limb0: 0x51a75794bbb49357c072ac7c, - limb1: 0xacf0030cb7b3b033758c6ce5, - limb2: 0x19ff12286c625ddc - }, - w4: u288 { - limb0: 0x1835bb1b322765b3dfe43b7, - limb1: 0xd85ff6ad5e822f2b5952e64a, - limb2: 0x26109ac2a0ee1fa2 - }, - w5: u288 { - limb0: 0x28377aa4720374e31fa523c6, - limb1: 0x98010cd0baccac458d385f47, - limb2: 0x211dfc9a438703b1 - }, - w6: u288 { - limb0: 0xd32596c7e3dfad9d447ed8e5, - limb1: 0xd573f106cfbd666d15feb207, - limb2: 0x1e3cc79ca1f45379 - }, - w7: u288 { - limb0: 0xfc302529a4a61bd5a423fb3c, - limb1: 0xf617b6ebf00bd11e8e835138, - limb2: 0x260c00ce39570eaf - }, - w8: u288 { - limb0: 0x5a28cfe72c28f721eefedc65, - limb1: 0xaecaa571f47d61801e600dc2, - limb2: 0x91eb40b8d54b92b - }, - w9: u288 { - limb0: 0xa6e7e349e855618437c69fcc, - limb1: 0x8ae373cf2e3fff0801b97744, - limb2: 0x44f27dc1d1b52a2 - }, - w10: u288 { - limb0: 0xdc2133838f37b58846b25dba, - limb1: 0xa3a162f6304c8bf0beadd509, - limb2: 0x109dafeada3dc8bd + limb2: 0x2f28355805f38fcd, }, - w11: u288 { - limb0: 0xc66eaef153de9583a26367e5, - limb1: 0x6dd443ede60c6976367536b6, - limb2: 0x588655d8d021805 - } }, E12D { w0: u288 { - limb0: 0xd1dc59d40bfaa1c081e79239, - limb1: 0xf73edeeb7156c14d096722a3, - limb2: 0x18953813aa53fe9 + limb0: 0xbc95d451e65b0289c2f0d9f4, + limb1: 0x29864b5c2006361c7ec32dbc, + limb2: 0x231b97e42e88b4ff, }, w1: u288 { - limb0: 0xcfc95ea325c93d272d3133be, - limb1: 0xa32568a0f09320d2edc3cb7a, - limb2: 0x2a996f20edd8f50b + limb0: 0x4bc818c5e9f6ed62903ac570, + limb1: 0xa6da69d8d95bf6c6529bfd2e, + limb2: 0x9e56c349c350628, }, w2: u288 { - limb0: 0x78572d8a580b86dbb0ed031e, - limb1: 0x4a5b37e9eb6624bc1bb4f769, - limb2: 0x20df006298f101cb + limb0: 0xed520f5d2e7e426947558231, + limb1: 0x407b04e8f131e18a83493135, + limb2: 0xa24acdc96970f27, }, w3: u288 { - limb0: 0xf7654431a8706574d5db209, - limb1: 0xdd5e5f3c38b72121679584d8, - limb2: 0x814382bcc69cedb + limb0: 0x1d6c5e4e2aeea52567838f68, + limb1: 0x3bdb301020d1702216efd42d, + limb2: 0x2b59a5b8dcb0422b, }, w4: u288 { - limb0: 0x66838e035e38f699a412a26f, - limb1: 0x1a3f0821f1ab6668f29e6ab0, - limb2: 0xc28a386ed25e298 + limb0: 0xf85e1201fcab94bada581d84, + limb1: 0xe0efe6f4951ed52abf8b76af, + limb2: 0xa6ae5af3e8d245c, }, w5: u288 { - limb0: 0xdcdbc4f664bdae26b038ff20, - limb1: 0xfe640f4c16b1f22eb863f242, - limb2: 0x1bf8156efd9374cb + limb0: 0x51002d24f61e489d8c153193, + limb1: 0xb32c323348563ffd15f5c33c, + limb2: 0x26c4b2966b0b0244, }, w6: u288 { - limb0: 0x5e69bc6059e0e6eda85de3b1, - limb1: 0xc353cda075341baa589a746f, - limb2: 0x8335a9b482a3e77 + limb0: 0xb16e8f73703c8fc9cbe27a54, + limb1: 0xe85c673315e3ff3bd80c385a, + limb2: 0x1097084941caa56b, }, w7: u288 { - limb0: 0xaf97d6ef161698c06a1577c1, - limb1: 0xd748b56a64cb9d0dac4928fb, - limb2: 0x2b802e25b0ea345a + limb0: 0x418c90f7a9ddb4b009516166, + limb1: 0x6b3e04040348ba6064a95888, + limb2: 0x1109803e56079bbf, }, w8: u288 { - limb0: 0x7cbd25a0bc1abfd29e8a2a3, - limb1: 0x605d190ead54b42c2d1963f9, - limb2: 0x2342f667c6083101 + limb0: 0xfba73400ff9d91da0d4bb12f, + limb1: 0xaa1955281d88ef0e24a3555b, + limb2: 0x2eb930dc35c971e5, }, w9: u288 { - limb0: 0xc339e68dd91e49ba60483fde, - limb1: 0xf7b9cff667518bddf42d72d7, - limb2: 0x170e32478b76ae1d + limb0: 0x5cf265fa7a069ab0faf07634, + limb1: 0x1fc2d713371237aca902f86b, + limb2: 0x239dbccb24faaa, }, w10: u288 { - limb0: 0x4dc24b99c9dff82018f9b58d, - limb1: 0x801145cfc3cf2bf3f86c4e2f, - limb2: 0x1c58e73371d0a904 + limb0: 0x2b4f288428a4b9bbe4f2fa4c, + limb1: 0x7623c03640928ed49d920ddf, + limb2: 0x13201c25a3d33428, }, w11: u288 { - limb0: 0x4554e7c477ca633fbaa16d83, - limb1: 0x78b0510d6a0c90bd113d8d93, - limb2: 0x1526bcadb21d5b1a - } + limb0: 0x40775c9ff8a831905a097195, + limb1: 0x26f944b86fd036f02e3194c7, + limb2: 0x28d19be843b3ff3c, + }, }, E12D { w0: u288 { limb0: 0x189cb16fa9189ecd4fbb9343, limb1: 0x3b0200dcdda749a4ac7badd1, - limb2: 0x127325cd0676619e + limb2: 0x127325cd0676619e, }, w1: u288 { limb0: 0x69426bc4ac151ab78084bd46, limb1: 0x6ed73cc76b2e6866f2bb6e99, - limb2: 0xa8a06bc3b26bf4d + limb2: 0xa8a06bc3b26bf4d, }, w2: u288 { limb0: 0x773e7d09877a907af19e3b20, limb1: 0xceef25b4bf04c5319d48ec40, - limb2: 0x1551ac68039dc2ff + limb2: 0x1551ac68039dc2ff, }, w3: u288 { limb0: 0x5109ce5668e51d98d7e472da, limb1: 0x79997b0e4983fd2528c1da6, - limb2: 0x47a2e7358f796cc + limb2: 0x47a2e7358f796cc, }, w4: u288 { limb0: 0xab89501874d5d5203a865933, limb1: 0xd17c5b1d843b9ac35877d3b7, - limb2: 0x1b0b482637ee8296 + limb2: 0x1b0b482637ee8296, }, w5: u288 { limb0: 0x2409320a513ccf12624ea83d, limb1: 0x4e71c7cafee4e2c6029411d3, - limb2: 0x3f88321fd8d60cb + limb2: 0x3f88321fd8d60cb, }, w6: u288 { limb0: 0xda33ccef60ef4ad0f7de09a4, limb1: 0x896d7cf80ee703d4a76ea589, - limb2: 0x26c5d68117d6cd8b + limb2: 0x26c5d68117d6cd8b, }, w7: u288 { limb0: 0xaae41113d58ca2d0b98fdc40, limb1: 0xb2b5035495fad57c313b39c7, - limb2: 0x2332fb21abcde1dc + limb2: 0x2332fb21abcde1dc, }, w8: u288 { limb0: 0x2265477f67c8e381757e2444, limb1: 0xff72e21f4c00cdb8045fe56a, - limb2: 0xe369c6ccb5e2670 + limb2: 0xe369c6ccb5e2670, }, w9: u288 { limb0: 0xa47c80b7062c0a20d48497b6, limb1: 0x89c328f7723a88bdc303660f, - limb2: 0x233963ef5c38065c + limb2: 0x233963ef5c38065c, }, w10: u288 { limb0: 0xeaee6b9ebb4333692353011d, limb1: 0xd5b4ec24d21d826b39675fc1, - limb2: 0x1ddb842c4860ed55 + limb2: 0x1ddb842c4860ed55, }, w11: u288 { limb0: 0x905d5ae2cb91239753abae8b, limb1: 0xe05b3862330500c4e491581a, - limb2: 0x2a0484f49430b2f4 - } + limb2: 0x2a0484f49430b2f4, + }, }, E12D { w0: u288 { limb0: 0x322ea1fa72a31dba5d539d3c, limb1: 0x7a42a67f2be67efd3656ce90, - limb2: 0x20b10c4394721d38 + limb2: 0x20b10c4394721d38, }, w1: u288 { limb0: 0x8d4223351a2c2e79c68f7016, limb1: 0x7780a8b63715a853e1637024, - limb2: 0x4840a61778756f7 + limb2: 0x4840a61778756f7, }, w2: u288 { limb0: 0xd33364f24b90b7283e555f03, limb1: 0x2725b6c80c1db189e6c6030f, - limb2: 0xd0e44a0d823a67e + limb2: 0xd0e44a0d823a67e, }, w3: u288 { limb0: 0x882366ae98da604af6b4b252, limb1: 0xb3c7302035df6f08fe1bb60f, - limb2: 0x1a9eb767ddd9d0d + limb2: 0x1a9eb767ddd9d0d, }, w4: u288 { limb0: 0xcfbe7c69e24937ff2679bd74, limb1: 0xa52b7b97b50a452b511dc5ec, - limb2: 0x1b0e7a47140766b2 + limb2: 0x1b0e7a47140766b2, }, w5: u288 { limb0: 0x31951de26a27a91be138fa32, limb1: 0x47bc4f53494987139e77af9a, - limb2: 0x1149a75ca93cba86 + limb2: 0x1149a75ca93cba86, }, w6: u288 { limb0: 0x88cbc9cc41de5834f9fb4004, limb1: 0x5bb1bdd77409a1a3e8607b84, - limb2: 0xcec6462b9b83783 + limb2: 0xcec6462b9b83783, }, w7: u288 { limb0: 0xe8cca50626729793c273633c, limb1: 0xa94a00b04453b3af1fcda1e7, - limb2: 0xe304d8c44e2ad29 + limb2: 0xe304d8c44e2ad29, }, w8: u288 { limb0: 0x6d79c62f33ef542ee031b10b, limb1: 0xa853b8626dc0f8edc9dae8a2, - limb2: 0x25a442e527fb55ae + limb2: 0x25a442e527fb55ae, }, w9: u288 { limb0: 0xb73c62448fcc061b7461540, limb1: 0xd36efa0f2e61f0bdf4f23d5e, - limb2: 0x146329a5e06f73d8 + limb2: 0x146329a5e06f73d8, }, w10: u288 { limb0: 0xa78188e4bc75e2262a094916, limb1: 0xe7126a1cbcb03e681a2f9eb0, - limb2: 0x22b08cfb6cb34c00 + limb2: 0x22b08cfb6cb34c00, }, w11: u288 { limb0: 0x93651f5e4cfcfd80ebae9e97, limb1: 0x2ad39d6d02435965ab528f04, - limb2: 0x162d5418053965e7 - } + limb2: 0x162d5418053965e7, + }, }, E12D { w0: u288 { limb0: 0x1, limb1: 0x0, limb2: 0x0 }, @@ -7279,4515 +6225,4805 @@ mod pairing_tests { w8: u288 { limb0: 0x0, limb1: 0x0, limb2: 0x0 }, w9: u288 { limb0: 0x0, limb1: 0x0, limb2: 0x0 }, w10: u288 { limb0: 0x0, limb1: 0x0, limb2: 0x0 }, - w11: u288 { limb0: 0x0, limb1: 0x0, limb2: 0x0 } + w11: u288 { limb0: 0x0, limb1: 0x0, limb2: 0x0 }, }, ] .span(), big_Q: array![ u288 { - limb0: 0x5c962793dea86de362ae0718, - limb1: 0xab024b561310d9fac8ddcb82, - limb2: 0x290e78a2e360653a + limb0: 0xf68c7f0e15fc5e088df4a5f4, + limb1: 0x192d2d6906627b018e10ea48, + limb2: 0x757ffbf935c88f2, }, u288 { - limb0: 0x428a636d27d0a2a099bd787d, - limb1: 0x40145e13c79e9f0600667cb8, - limb2: 0x1766111bc7003b45 + limb0: 0x92d1c56bddf6c0f4d50d9b0a, + limb1: 0xcfe689463175fefe89afbce0, + limb2: 0x23fe2f2a141f97df, }, u288 { - limb0: 0x507bc07a3d7844d9eca28289, - limb1: 0x271128c6a62899d983c8a658, - limb2: 0xbaa040e72497634 + limb0: 0x5597ea8ec110ee96a3a693cc, + limb1: 0xe2b007560bfd98532cf78cfb, + limb2: 0x2d4e54afc3e58, }, u288 { - limb0: 0x938c8677f139b3b32ba24eda, - limb1: 0x549c60ff78905a5fb1b92cba, - limb2: 0x21a167833322521 + limb0: 0x70f964f9fbc8ee78da53e7fc, + limb1: 0x882335e2eab582ee18fccd4, + limb2: 0x2c9c6ccddbde8e44, }, u288 { - limb0: 0x9da01279e390b9597ca22ebf, - limb1: 0x1ea3c5629e45ec118e8ef512, - limb2: 0x1327c6cb56b92156 + limb0: 0x9df294131c1ac85ae944403c, + limb1: 0xe103527cf2d779669335aef2, + limb2: 0x3f334d976cd0ac3, }, u288 { - limb0: 0xd0353312ff08ea052c7b21be, - limb1: 0xedaad6eecfd87626fa01f56a, - limb2: 0x8bf12b3d524e45a + limb0: 0x92bdefa336c518ee3de6bb2b, + limb1: 0x5569c8538119d1889a2863a8, + limb2: 0x596fb5d3d7f5bc0, }, u288 { - limb0: 0x405b19a5e60dc7d102410a63, - limb1: 0x12d9ce80bee76c8f7314ed3b, - limb2: 0x1f3075e69ae5baa3 + limb0: 0x68320307a71f717424dd8889, + limb1: 0x4f007feb181863970ba8014, + limb2: 0x2f5517819af5a2be, }, u288 { - limb0: 0xc2c036faa8f9cd03bdc6211f, - limb1: 0x5295f7475a44192b3730e53d, - limb2: 0x30234f0d9c9baf81 + limb0: 0xf9a7f7f6b132d6623ac3c925, + limb1: 0x62f109edd96de101a1fe5ead, + limb2: 0x190704f1c3f3cae6, }, u288 { - limb0: 0x91b9dd123c563bcf1b1cfe0b, - limb1: 0xce790a0e68b15679e58aa985, - limb2: 0x253fd4dba4843b3d + limb0: 0x7ce0a07cec03eceec4d656a1, + limb1: 0xbb469b388c403ccd063a6496, + limb2: 0x21b7ab1a4596ae5d, }, u288 { - limb0: 0x90c103eca35674b5921faf7e, - limb1: 0x8938e11c76410fcee14b2b43, - limb2: 0x2f8de7524e8da25d + limb0: 0x74dafe128bb3c3f2163190d2, + limb1: 0xa57856fa720cd0660c1e4ebf, + limb2: 0x25e94be90f5a8a46, }, u288 { - limb0: 0x58ba20f9c09df618fe43a67c, - limb1: 0xe1d4a21bb7c93f189a33b913, - limb2: 0x58643ba0ed3afcd + limb0: 0x12d8387c120a7b378b834e1e, + limb1: 0xbe0ccb041adee67123ccb266, + limb2: 0x302a743d70fb09a, }, u288 { - limb0: 0x611a0492b763b1dadda77525, - limb1: 0xd87b473a5caf4a570a17de63, - limb2: 0x1269405c6c440824 + limb0: 0xb424e00fb910dd53fa351f7a, + limb1: 0x2b94f853be1812204b8f6f4e, + limb2: 0x58ac1908ad756b5, }, u288 { - limb0: 0x8a746743e6ef1becbedde182, - limb1: 0xb3edd4e906536d32c8b5a815, - limb2: 0x7cae558726150a9 + limb0: 0xe4f750a05155ebbd02f6c5c6, + limb1: 0x18931d3b5a9b17249092d46c, + limb2: 0x10209a963e462d11, }, u288 { - limb0: 0x875edcdf01e802ac2059ec98, - limb1: 0xca9dcfed37d74b6bf66ddf4b, - limb2: 0x2eee82be2a277d48 + limb0: 0xe7440d76761c3d644b830bec, + limb1: 0x70504a8a9ac69a3b3cbd5ded, + limb2: 0x119f3273d2e000e1, }, u288 { - limb0: 0xa141dbc42bac32676f7f73ab, - limb1: 0xfed93b898eb82d5784bc0f2d, - limb2: 0x1fc304cca9a6b4c9 + limb0: 0x8956632a911193bff430fbd4, + limb1: 0xcdeb705169ca8d331890e14, + limb2: 0x289adfea231e994d, }, u288 { - limb0: 0x46314ffc7d1c0946daa99408, - limb1: 0xcd48984a59d7a6222e7f06d0, - limb2: 0x2f7dc28a3b312732 + limb0: 0xdba0187ffc8a77433f858eba, + limb1: 0xfe9fd7bac6c5769adf4efe5b, + limb2: 0x226ecb7c73131dcb, }, u288 { - limb0: 0x4e724b6c5b6284071494315c, - limb1: 0xe80059a2e324b819ff728f38, - limb2: 0x1e6c97fa54c9c4c8 + limb0: 0x6618406539876d0b8aae5814, + limb1: 0x3df9237727b00d6c39416905, + limb2: 0x233136ff59bf8481, }, u288 { - limb0: 0xc96cbdf20ff32446f8695812, - limb1: 0xf2d4db6cb15f1ed393e33bca, - limb2: 0x25a986cf0c3ce985 + limb0: 0x89852644eccd0deebb36bb9f, + limb1: 0x7eab45366e2574902e13c7ba, + limb2: 0xbbe293396ccd861, }, u288 { - limb0: 0x9aa4d1cfe421ae5c3666847e, - limb1: 0xf9e7b8056683db409a5f8611, - limb2: 0x23bd482e6eee51e + limb0: 0x7406cf0a5d0aae05d3859b52, + limb1: 0x408dd6788f13c8f1c62e46f9, + limb2: 0x522f07d7ab21925, }, u288 { - limb0: 0xceee54a4cc41a3a474dfbcd2, - limb1: 0xbbe644a8a45b8210cab92e45, - limb2: 0x1a1a22268653e99e + limb0: 0x5d3665fba0bb9b35cf0e6cfa, + limb1: 0xb1e755cc3aeb7d580d42bb26, + limb2: 0x1d4ae98c890f02df, }, u288 { - limb0: 0x12522abd2533a4dfa75a8770, - limb1: 0xd75e0726c04b28ddb6524396, - limb2: 0x4057cb7f85b0ba6 + limb0: 0x6e96712261b531a050bf614d, + limb1: 0xf5e79c2439a8239dbfd439ed, + limb2: 0x27f0cfdf904e1d16, }, u288 { - limb0: 0x69652382b649ebee8834a41f, - limb1: 0x93a6caa5f78e3a97b9cc14c4, - limb2: 0x25dc9ca617865c80 + limb0: 0xfca686976f122b6b4260dc6f, + limb1: 0x23cbd557bd558c6ca2e30717, + limb2: 0x26c49431bfabe919, }, u288 { - limb0: 0xc3a51a7ee17435648dbff178, - limb1: 0xb43a4cd2636df233284fbb8f, - limb2: 0xc1df8231f5c9859 + limb0: 0x3a043c6946354e5b44b243ea, + limb1: 0x57938958bcd4656369870f8, + limb2: 0x204a4a04dca72bc6, }, u288 { - limb0: 0x78a727fcde1c3071389f87d0, - limb1: 0xb136ffc852798fa4e7e48477, - limb2: 0xf21b61f756c453 + limb0: 0x410113cbb11720668270bc98, + limb1: 0xcdfb83c6c1ea5f4b7e9f8c8b, + limb2: 0x2c837622398943ae, }, u288 { - limb0: 0xb17623d7a3783b97ab9b6e38, - limb1: 0xe28b1feafb55ad28067622a7, - limb2: 0xa7d5778d909afd1 + limb0: 0x49d1b76b6613aeef6b5aef6c, + limb1: 0x420a50699b69a56c9a165b3, + limb2: 0x16017524d14ed8dd, }, u288 { - limb0: 0x7f3933b140c9b081e88c86c5, - limb1: 0x24d91e297448d7f35f3bc693, - limb2: 0x9a4490cc7499f9d + limb0: 0xfbddf0d81ec692d8dd90e063, + limb1: 0xc4058cb797354963fa4913e1, + limb2: 0x10a73ed19f2e7eb0, }, u288 { - limb0: 0xfaf2fe9882baa29e388e826c, - limb1: 0xf1537bb5210d1526fa467ad8, - limb2: 0x245a027d7a96fe9f + limb0: 0x8d0a728693233d8e3502e2b5, + limb1: 0x8ba3275ebf032202230f93cc, + limb2: 0x2a8fcde7fd5b0495, }, u288 { - limb0: 0xaf39c8e4127be8ac96342d41, - limb1: 0x227f60f52539c99c5671ebfe, - limb2: 0x1fbfb7d1278daff9 + limb0: 0xfa41164bc811902751021df7, + limb1: 0x9427808e8f61ae0d74324d5c, + limb2: 0x1e6dbd34d4fc53d7, }, u288 { - limb0: 0x1b2ba70afec76b24d34e7dea, - limb1: 0x187296bc75595f0bdf50d5b5, - limb2: 0x16396177c3328a90 + limb0: 0xd412d98ba2d0df6012a45bb0, + limb1: 0xca4330f350a8b440f22de8cf, + limb2: 0x62d2fd3073a4399, }, u288 { - limb0: 0xb1515e9e0650b03ee94b7509, - limb1: 0xd6a9b462118bc1dbe107fccb, - limb2: 0x11da485a293f3b40 + limb0: 0x5b1f85c33863689f68eca2bc, + limb1: 0x14179fde46e842877101a6ca, + limb2: 0x1f24b0adc742a81e, }, u288 { - limb0: 0xefe96a47088f39d671c87e2c, - limb1: 0xb87a44c54484e6e367098eb4, - limb2: 0x2976872ce855dfe4 + limb0: 0xdb7b279e64cf71b0dd3dd2ab, + limb1: 0x4cb0b1784a244240c2cdc1ea, + limb2: 0x49f45967043ba7c, }, u288 { - limb0: 0x33c10718149e29af724b6095, - limb1: 0x6f8e13fd1bbcafdc982ef6f6, - limb2: 0x7a8545f2f2097e7 + limb0: 0xc70bf570e264d93f5ab4aa50, + limb1: 0x29cb7ded469fa50084cd2e98, + limb2: 0x29aef8867bdb4f22, }, u288 { - limb0: 0xa5e84f9c6d1671edebd22b7a, - limb1: 0x3b0c3193b19038e59e6e6e71, - limb2: 0xca2a0e4a8feca07 + limb0: 0x8ca28fc3ba245454cc0bc43c, + limb1: 0xfb7d6a4dc6584c138c41a442, + limb2: 0x6f318a6031f21b0, }, u288 { - limb0: 0xea6c643413614db9f65ebb61, - limb1: 0x8d2cf77926fb1034d1b64f16, - limb2: 0x2e2ac6a22fe8e3b8 + limb0: 0xaa6dffdd5c78bce67b2cfb05, + limb1: 0xbd86ec5de2c0c3584fe05de7, + limb2: 0x15f430068f3f18a3, }, u288 { - limb0: 0xb9248dc4fd6e7d425f3ada11, - limb1: 0x935774bf1529afbfbbee82a7, - limb2: 0x5bf582050a4559d + limb0: 0x96a441ed01be61634c57bbc4, + limb1: 0x1064662ccd3550710c6e066f, + limb2: 0x294be1ff8bbf485e, }, u288 { - limb0: 0x2ef410815de4c6ce2e71ace, - limb1: 0x4edc788a04e21ab50aee08d3, - limb2: 0x52bd97b18bd98fa + limb0: 0xc2b131630ed56cb1e86f59f2, + limb1: 0xf18ccc50973350cd5295bba5, + limb2: 0x2e1abee571ae8614, }, u288 { - limb0: 0x1b236f9a04652f2cc399768f, - limb1: 0xbb40d0e27c703cd0d08f5099, - limb2: 0x1daa571ffc2aa2f9 + limb0: 0x2dcb8c94d5a1956b0c754c8a, + limb1: 0x23d021eb096d8187f2cbc654, + limb2: 0x48e736998441893, }, u288 { - limb0: 0x80a5b26b6f2dd5ecd2b40adc, - limb1: 0x6e37918b50cdd30b6bc3621a, - limb2: 0x2ed9ab8e8a774947 + limb0: 0x1941d824aeea1f5bad256c20, + limb1: 0xa7eae5bf861b73221789a983, + limb2: 0x5b57c8cbc31de84, }, u288 { - limb0: 0x58491999f724f1bc69a1ed76, - limb1: 0x1086c1a51f13702f28ffbaa2, - limb2: 0x1c4bbeff80b6b44c + limb0: 0x4ba8a5e13f64ab5d2d0acee6, + limb1: 0xa62af93d85aae91e3bf9a543, + limb2: 0x1ee68fd52867e6ea, }, u288 { - limb0: 0xc00c34a5d25bc87f9e833477, - limb1: 0xf0aad11207d359742fefc467, - limb2: 0xa365043a5844f4e + limb0: 0x7e78274fa3c26fa1d2e6eda8, + limb1: 0x6ff2af5d04b666248121009f, + limb2: 0x3b40cc91efd0057, }, u288 { - limb0: 0x8fa8b60cb75004dbae68e180, - limb1: 0xa10011a4de7ff7d4c44cf556, - limb2: 0x10a2feed533dc7ed + limb0: 0x6083b5a1ec8e8f2166375108, + limb1: 0x8eaa18db1251e0504a6ebd90, + limb2: 0x1de4f2bebd0f43c9, }, u288 { - limb0: 0x1fc3a4e7f43e14e57d4515aa, - limb1: 0x2fdb65692bf18bda23f8bcf3, - limb2: 0x5d3f6257260c311 + limb0: 0x702b27b840922d96d5a2ffb2, + limb1: 0xcd4eee24a5a113ca60f55ad9, + limb2: 0x122906c0c4740cdd, }, u288 { - limb0: 0x37561db12fcf975fcdbcc4bf, - limb1: 0x41141e38efdbc9ac37af51c8, - limb2: 0x23386369c5157318 + limb0: 0x85bb711735559eb0cfe762e6, + limb1: 0xf10de7d4709be3183e1826c1, + limb2: 0x2fcde48e2ae776b8, }, u288 { - limb0: 0xac4393f96683da0cb040a2b0, - limb1: 0xaa719d8f1d8fcce5ba86411e, - limb2: 0xf887dd6e4bb28ec + limb0: 0x2f88de5928085262a9695c4f, + limb1: 0xd56c45e67b669258f9d07b9c, + limb2: 0x2ca48c7a46ca4298, }, u288 { - limb0: 0xdbf44ef0aa352f1db88e8d12, - limb1: 0xeb32c157e9883c3fb1cf4c67, - limb2: 0x1aa50edfca2b6258 + limb0: 0x7176d4689d562fac170dfdc4, + limb1: 0x26d1601ad6be10bffdaeb59, + limb2: 0x1b9908a601f3675c, }, u288 { - limb0: 0xd4546a9d6749a5e17d22184d, - limb1: 0x5c20328f81b96a02cd527543, - limb2: 0x12ec578fed706b12 + limb0: 0xb6aab323a944ba2e46a7e9ad, + limb1: 0x2c93ff6fb29306423c6872ca, + limb2: 0x24420bbdfb06a524, }, u288 { - limb0: 0x89fd344f1481fb9ad7247db5, - limb1: 0xf016dc2a5ab0b3b8cdc3cdbf, - limb2: 0x13720a6603bc5bf0 + limb0: 0x736cb9051a49ac60bade8cb8, + limb1: 0xe48a504acab4fb5d4ab83d6c, + limb2: 0x252b2eb02a24c5e3, }, u288 { - limb0: 0x27edb66d9eb5413023091024, - limb1: 0xe83bf819893ea28f0543a480, - limb2: 0x1105dfd0e1924d51 + limb0: 0x39b3d293f4c560aa6cdfec33, + limb1: 0xd6349d1ab0a51234f906ca0b, + limb2: 0x2fb8d8192779e983, }, u288 { - limb0: 0x2679f2317f9bf6aa58217060, - limb1: 0x5ec01013b075069ecb4195bc, - limb2: 0x2af33115df9f76f1 + limb0: 0xbac157dcace16214245af0a2, + limb1: 0x575d6db1202db813c9255aab, + limb2: 0xf4318fb92221244, }, u288 { - limb0: 0x3f8f147c3d08cf91659c280e, - limb1: 0x659041be3333b1411eb967b5, - limb2: 0x1a3e95e91152d025 + limb0: 0xe97c10919025d1259bfc0435, + limb1: 0x971700f9de86f2c604e842f6, + limb2: 0x1ccd5863baedbbcf, }, u288 { - limb0: 0xb0de104d702c45c2edf7ae94, - limb1: 0xf422aad7a65fcc51df36e8ba, - limb2: 0x1a82390174fa0f2e + limb0: 0x34c0e0929dd34f2558f74a8e, + limb1: 0xa55138fe8e56709b851eae7e, + limb2: 0x62387c2456c7455, }, u288 { - limb0: 0x65e75ba2fc9c3e4fe279829c, - limb1: 0x7fd2eb7795f1dcaa75bb39e7, - limb2: 0x14ca6e7e1ca457f + limb0: 0x4d920c4a1ca2ebc051a086c7, + limb1: 0x4513082d203483c38e01a2fe, + limb2: 0x265b81d006080f59, }, u288 { - limb0: 0xa58f3996fc40aa9b27f8c561, - limb1: 0xe629789390986134e5ebb8f6, - limb2: 0x7ea1a4e1772c126 + limb0: 0x3a994491cd318b69812e3c84, + limb1: 0x10ddae0a266592875996f97e, + limb2: 0x2be70f7e2e1e4e2d, }, u288 { - limb0: 0x6e69f15fb3e5ad5d13fc7887, - limb1: 0x6f34e9ba22f22d4867613632, - limb2: 0x22a05abc403be565 + limb0: 0x6c36a6d6f0690d02d92477a4, + limb1: 0x1a30bec838dbc66f00f363d9, + limb2: 0x2ec55c8fdf1a3cf, }, u288 { - limb0: 0xc698c8dd55917e6ba2282e26, - limb1: 0xb7be052e2a520d6bca552be7, - limb2: 0x2f3d4789539461ec + limb0: 0x79a726e82eb0979436e65a6d, + limb1: 0x97461485e785f7f2c3dd6580, + limb2: 0xc19d16900b16721, }, u288 { - limb0: 0x60e84b95fe642ceeb6b9f567, - limb1: 0x9ba6c6dbc857e6255e2d592a, - limb2: 0x1d683755c74b227b + limb0: 0x2655c56d0453dd3630200a4f, + limb1: 0x666d3932a0b15d22f142f742, + limb2: 0xc185f393d6ea81a, }, u288 { - limb0: 0x29fd7dd908c9b69f3de30f3e, - limb1: 0xa616232dd573d4508a3b9287, - limb2: 0xf8f60f12717bc90 + limb0: 0x8b907bba6bd50b7b3fcb889e, + limb1: 0x9a324c57376ae6a3c4c828f9, + limb2: 0xaed0921fd02e1fa, }, u288 { - limb0: 0x6373eb6300f4067ca602be54, - limb1: 0x97cc84974ec2fd083b15f69, - limb2: 0x2aed4caa30fd4fcc + limb0: 0x8bf7e51fca952fb3a37bec3, + limb1: 0x809609996a32d61eeec1c5ca, + limb2: 0x165354cbf533a741, }, u288 { - limb0: 0xa7fefc07ac7a0c0e249c04d6, - limb1: 0xf67c793885efeb7c84aaacd2, - limb2: 0x1ce3b2f59895f2c6 + limb0: 0x87b3666f6e042161be69f955, + limb1: 0x3c4aabbf071c41ca521fb3fc, + limb2: 0x5e65262ff6c5594, }, u288 { - limb0: 0xc493de447360c6ccf5ea5803, - limb1: 0xbc98f9a80ac65d0b945bfe32, - limb2: 0x23f5fe84bff28912 + limb0: 0x3188d18ae7bf71b685d1d2d2, + limb1: 0x47872f71017ae2fc6efb8994, + limb2: 0x1f796270201e21e0, }, u288 { - limb0: 0xe8e80432f785b328754b087f, - limb1: 0xb1d670c26ee9fae6d797f748, - limb2: 0xcd627976db9d120 + limb0: 0x2762e5fab60e653c2d9950a5, + limb1: 0xb5feb777d1928c4ba4ff8f39, + limb2: 0x2f666d8ad27f5e30, }, u288 { - limb0: 0x8982d5f9d5408282e021eabd, - limb1: 0x3dc9210377fafacd590d4759, - limb2: 0x6280c4373eb09d6 + limb0: 0xe15b1bab7c2567e1dcb354f3, + limb1: 0x462a6fad3e5fc5dca73bf70c, + limb2: 0xabea261655a427, }, u288 { - limb0: 0x40fe8e146c2a0ad7c72703f4, - limb1: 0x353e40ca6e38e686df223ced, - limb2: 0x2210ce1b836814c + limb0: 0x49345b5b7ca15bed1bf5b23a, + limb1: 0x3ac9b391386bc3b9acbdf68c, + limb2: 0x2d40730d64b6f032, }, u288 { - limb0: 0x4d9ffe351225f4c6ffb91baf, - limb1: 0x2b27e587b748d77603824e72, - limb2: 0x17d40a5f92d7b3a7 + limb0: 0xbcdeddd475a71fc561554c5b, + limb1: 0x902f8be9e52100db7c29809b, + limb2: 0xcae5eda2a989aab, }, u288 { - limb0: 0xfacf9f1d6baf623b4a7171ee, - limb1: 0x31463d7946999b0de82433ad, - limb2: 0x938fafbe3f19ab8 + limb0: 0x9ae2702815656fd83e99eb82, + limb1: 0x8021eecd874da663f87f2336, + limb2: 0x2bfa060a81af2bee, }, u288 { - limb0: 0x70c6bb493b7fa5d83a440dc3, - limb1: 0x31809ce27d7bfd6583394ad8, - limb2: 0xbf1f8b48c6c455 + limb0: 0x6fec10018d826317c4692976, + limb1: 0x192656215c56d434007a052d, + limb2: 0x276ff4a84119aecb, }, u288 { - limb0: 0xfa39a5bd8b203aa02e1bbb53, - limb1: 0xb762fe963a879bb28bba2e14, - limb2: 0x1cc57e3b97f741f3 + limb0: 0xe0b4deb6e8f95c9499935773, + limb1: 0xdd9f378286c262da528e6ad4, + limb2: 0x2f35fdbbb44ff512, }, u288 { - limb0: 0xce53ba369441d7d5032a54f9, - limb1: 0x98d316c7ae296b5d9ecac953, - limb2: 0x89766eb53e6487b + limb0: 0xf2cb65f814421e84c853b085, + limb1: 0x885ed835830e27f135bc17e3, + limb2: 0x12bb4370fc60a8e, }, u288 { - limb0: 0xbddcd569b8d2d6b72924fd7f, - limb1: 0xc44686618fc5d6deb551e9db, - limb2: 0x99be11c96f84d36 + limb0: 0x7b96ae153d10e7af25d2eb27, + limb1: 0x609d3511e03a3d323a2a2beb, + limb2: 0x1cd8319040eddb34, }, u288 { - limb0: 0xe625ebd80a3170f4b4071b8e, - limb1: 0x136bca5776cc3f37511e5075, - limb2: 0x1924977002cedcee + limb0: 0x330e4f16b3eff5c9c1ffa06e, + limb1: 0x792baadc1f869607f0499a68, + limb2: 0x5ac5088f838a2a1, }, u288 { - limb0: 0x5ebaa0fd70efe11488299968, - limb1: 0xda1a5058ba273e7be2c654b4, - limb2: 0x3d5dc3e31822025 + limb0: 0x4f9f7a5a0654b785250fc74b, + limb1: 0x87a71736772446b8350a1dbd, + limb2: 0x289d5ddb891e66f2, }, u288 { - limb0: 0x87cc97d9fa1252d5aa5bc046, - limb1: 0xb751ad890bf86a329250a55a, - limb2: 0x1d574ab39f7f103a + limb0: 0x99286fa24886fa617e757d38, + limb1: 0x63034a1718dcd339d6712ef1, + limb2: 0x1af46294f53a20ee, }, u288 { - limb0: 0x182afe77ad9946c92124039b, - limb1: 0xe590fcffc78050777f8f8b72, - limb2: 0x29a2c389cc5e0647 + limb0: 0xc3a0d7e1585ac8d337ceaecd, + limb1: 0x1e529bf56bcb609736a6d02, + limb2: 0x1abc3c9d7500730b, }, u288 { - limb0: 0xd079452c131e8f3e39b45b7d, - limb1: 0xac5345abc54153983b492094, - limb2: 0x2b9a56e12a20dea5 + limb0: 0xc8b83b5b94c4105ee231dd5, + limb1: 0x7b4d3129c63e37cb07875b52, + limb2: 0x1a4f649fd3d3b2d9, }, u288 { - limb0: 0x2745dea941068b42b200381e, - limb1: 0x4c58e884997c33df212c08a9, - limb2: 0x173901ac93cd203 + limb0: 0xa5c10195c1c9650a9f3cac38, + limb1: 0xc5ba36ecbf26f82afd9d441b, + limb2: 0xf12a810e117990d, }, u288 { - limb0: 0xc35d1fd5a8ba514fcd733e97, - limb1: 0xf7a709eb30fa0b3c8c0efcf4, - limb2: 0xdb2d22eae5a1275 + limb0: 0xcc47a6d284492714d90ba21a, + limb1: 0xfa19061c4704d1f477c4dda0, + limb2: 0x18cb43394a95effc, }, u288 { - limb0: 0x8f6e4b06f4af6129e1694c45, - limb1: 0x28ac7e8991ee2be48fc5afb4, - limb2: 0x2cd82062cfdc3094 + limb0: 0xab64c0afb8bdf5c260f8211d, + limb1: 0xa08a0a4369b3a4fb29931dbb, + limb2: 0x1de2f9d7c1239d70, }, u288 { - limb0: 0x4fa6f53008982a22bd0a757d, - limb1: 0xf534301e43f0b0fdf3af27af, - limb2: 0x5ae79b613bd1689 + limb0: 0x57adcab2e2df4ec7d06be22a, + limb1: 0xe0f75f298ffa3b6481337106, + limb2: 0x2538da4293348204, }, u288 { - limb0: 0x648071b65d8febedfd5ea2c3, - limb1: 0xc2c75bb05e741049c266a403, - limb2: 0x22363a34f72b8cc0 + limb0: 0xe79d538065ff412e2c91fd8, + limb1: 0x422a8305ab03aa83e9c7b417, + limb2: 0x94e245347e7a135, }, u288 { - limb0: 0x3c096cf9bc32d1d60bbd5457, - limb1: 0xed50cc600a4a873f40779be7, - limb2: 0x269c20aa095d7e6 + limb0: 0xbf4082c85a023d191f360b21, + limb1: 0x1a8ea83c88cace5a680c4496, + limb2: 0x2edfd9d664942a4f, }, u288 { - limb0: 0xcd865e4d91018818e0c2a95e, - limb1: 0xef290e80d99aa9d3a71ecfb7, - limb2: 0x13c4b1fa808f234f + limb0: 0x4d6e7c9399edf248444b3768, + limb1: 0x18a2dadeee6e9d25bce97a6, + limb2: 0x17defccbc9adc5bb, }, u288 { - limb0: 0x77aa2dd2ed05121aaedf93ab, - limb1: 0xa69a5006f566b7aea23117a2, - limb2: 0x78b5d9e9d7181ee + limb0: 0x7d20d85ba61bcc08918621c3, + limb1: 0x6e094cff869987098fa20be, + limb2: 0x73003b7bf877fec, }, u288 { - limb0: 0x6df11d7cb15e07156cfe9e87, - limb1: 0x27a6d1a0f5d161fed69a1699, - limb2: 0x19d92d8e593a2179 + limb0: 0xbf363cc881973850deedb594, + limb1: 0xc23a09b47df533ca75423245, + limb2: 0x1006165cd2e7094a, }, u288 { - limb0: 0x33117bf37eee72bcf1b02275, - limb1: 0xe7ba56bdf23f552ed98fa7ba, - limb2: 0x1e847869e873a822 + limb0: 0xc353f232264c8aaab03e0a86, + limb1: 0xe3e7d012ae3547b2ebcd4a63, + limb2: 0x2dff11a4d0c5d572, }, u288 { - limb0: 0x2b6ecf97f9ce28752c2b4874, - limb1: 0x3a15830f72c4d03913f52aac, - limb2: 0x1b6c393e12ef1361 + limb0: 0x8b9be0fe913e3ed91c677135, + limb1: 0x2b94fbe9b1e970c6494efb30, + limb2: 0x18296a1b2846b6ab, }, u288 { - limb0: 0x4168297954991a7d0f50dcc4, - limb1: 0xee812a98d04ca12425d089b5, - limb2: 0x72acfd36302e458 + limb0: 0x1fbdf26abe99964a1b311ac5, + limb1: 0x9befb1fead38dad59c519f97, + limb2: 0x111ea6fa99c92f81, }, u288 { - limb0: 0xc371bc1036a195f45271a69b, - limb1: 0x7206b0f2d217c9ae09ca3d8a, - limb2: 0x6fc3dd6c08d22a3 - } - ], - }; - let res = multi_pairing_check_bn254_2P_2F(pair0, pair1, lines, hint); - assert!(res); - } - - - #[test] - fn test_BN254_mpcheck_3P_2F_with_extra_miller_loop_result() { - let pair0: G1G2Pair = G1G2Pair { - p: G1Point { - x: u384 { - limb0: 0x5c724369afbc772d02aed58e, - limb1: 0x2cd3bc838c66439a3d6160b, - limb2: 0x72f26b55fb56be1, - limb3: 0x0 + limb0: 0x94e540ac73b69d3291447f02, + limb1: 0x148bf0d44fc2e4344b48ce97, + limb2: 0x16cf7b5e3d504347, }, - y: u384 { - limb0: 0x772ca79c580e121ca148fe75, - limb1: 0xce2f55e418ca01b3d6d1014b, - limb2: 0x2884b1dc4e84e30f, - limb3: 0x0 - } - }, - q: G2Point { - x0: u384 { - limb0: 0xa30b422f34656d6c94e40be, - limb1: 0x83069b5050fd7194c7e35d0c, - limb2: 0xf0e8184945e8d34, - limb3: 0x0 + u288 { + limb0: 0x5613e868d77c6f92738ebad4, + limb1: 0xa318e04c4b50094886e5016d, + limb2: 0x1242c45be0c1c435, }, - x1: u384 { - limb0: 0xde9079ee8fa5e15901dfef27, - limb1: 0xdb602cf367841e5047ffab14, - limb2: 0x1752c7b6b35af45, - limb3: 0x0 + u288 { + limb0: 0x95ed936a5cad6c14478e2c22, + limb1: 0x4021275a98e48a23b44e7518, + limb2: 0x22600ad24c2479ee, }, - y0: u384 { - limb0: 0x4dafbd7f615fd2aa9f5a0acc, - limb1: 0x35c8bbffe201ffd56deb5dea, - limb2: 0xa822a5ba029a283, - limb3: 0x0 + u288 { + limb0: 0x464bd8dd68f24e1a7ec6a63c, + limb1: 0xfce44a7e272443e3152b85c4, + limb2: 0x1b419043fec17bc7, }, - y1: u384 { - limb0: 0xec6d9e4fafec17b8404c0341, - limb1: 0x17fe961ad4b8ee3bf2ade626, - limb2: 0x1228147f83e3ea5, - limb3: 0x0 - } - } - }; - let pair1: G1G2Pair = G1G2Pair { - p: G1Point { - x: u384 { - limb0: 0x5c724369afbc772d02aed58e, - limb1: 0x2cd3bc838c66439a3d6160b, - limb2: 0x72f26b55fb56be1, - limb3: 0x0 + u288 { + limb0: 0xfba834211915d5ff89828074, + limb1: 0xfbddac3769262aedd93c7cc2, + limb2: 0xb7f8661a40f57e7, }, - y: u384 { - limb0: 0x772ca79c580e121ca148fe75, - limb1: 0xce2f55e418ca01b3d6d1014b, - limb2: 0x2884b1dc4e84e30f, - limb3: 0x0 - } - }, - q: G2Point { - x0: u384 { - limb0: 0xa30b422f34656d6c94e40be, - limb1: 0x83069b5050fd7194c7e35d0c, - limb2: 0xf0e8184945e8d34, - limb3: 0x0 + u288 { + limb0: 0x947b896433253bd0b366dd6c, + limb1: 0x10be7c271b6becb5c6552cbd, + limb2: 0xace469c516bdbb8, }, - x1: u384 { - limb0: 0xde9079ee8fa5e15901dfef27, - limb1: 0xdb602cf367841e5047ffab14, - limb2: 0x1752c7b6b35af45, - limb3: 0x0 + u288 { + limb0: 0x4168703f8dad67181a75c8a7, + limb1: 0x6ff977d191a4c22bf4686496, + limb2: 0x20390a55c6c8963, }, - y0: u384 { - limb0: 0x4dafbd7f615fd2aa9f5a0acc, - limb1: 0x35c8bbffe201ffd56deb5dea, - limb2: 0xa822a5ba029a283, - limb3: 0x0 + u288 { + limb0: 0xca1f10b29d359a047a96c5ab, + limb1: 0xa5261bf94ba77c9957232d91, + limb2: 0x2e3598dbc84cac12, }, - y1: u384 { - limb0: 0xec6d9e4fafec17b8404c0341, - limb1: 0x17fe961ad4b8ee3bf2ade626, - limb2: 0x1228147f83e3ea5, - limb3: 0x0 - } - } - }; - let pair2: G1G2Pair = G1G2Pair { - p: G1Point { - x: u384 { - limb0: 0x5c724369afbc772d02aed58e, - limb1: 0x2cd3bc838c66439a3d6160b, - limb2: 0x72f26b55fb56be1, - limb3: 0x0 + u288 { + limb0: 0x9b8a068f9cd5c71d613dde02, + limb1: 0xb86fc148b13233f10894aae4, + limb2: 0x84b4285a825141, }, - y: u384 { - limb0: 0x772ca79c580e121ca148fe75, - limb1: 0xce2f55e418ca01b3d6d1014b, - limb2: 0x2884b1dc4e84e30f, - limb3: 0x0 - } - }, - q: G2Point { - x0: u384 { - limb0: 0xa30b422f34656d6c94e40be, - limb1: 0x83069b5050fd7194c7e35d0c, - limb2: 0xf0e8184945e8d34, - limb3: 0x0 + u288 { + limb0: 0x2570443b26126cb1c41d4c3f, + limb1: 0xe76ec3f87195b032bb2929bf, + limb2: 0x17de52ffc0aa7f58, }, - x1: u384 { - limb0: 0xde9079ee8fa5e15901dfef27, - limb1: 0xdb602cf367841e5047ffab14, - limb2: 0x1752c7b6b35af45, - limb3: 0x0 + u288 { + limb0: 0x5da966dadc1a25632b99de6b, + limb1: 0x8e288ff5a3381151e97d8d6e, + limb2: 0x1130fba5f4afed6b, }, - y0: u384 { - limb0: 0x4dafbd7f615fd2aa9f5a0acc, + u288 { + limb0: 0xc0710457a5dfb76c148f2aa5, + limb1: 0xd9889fa33289b0cc48ddad25, + limb2: 0x2a3c68d1d3bd4cbc, + }, + u288 { + limb0: 0x8c9b3a8babf46352480a7de, + limb1: 0xdba3240679c6c5640d76a0e0, + limb2: 0x1ed26926d2c79d35, + }, + u288 { + limb0: 0x1f04f6cec68a478409f14996, + limb1: 0xca54514077400a8feda5472e, + limb2: 0x90735afd73a9802, + }, + u288 { + limb0: 0x3825aa2864b900e5a7b50446, + limb1: 0x19679c497390113aba465c79, + limb2: 0x57a4498a044c057, + }, + u288 { + limb0: 0xaf0c438bda26bcc0f3649af1, + limb1: 0x3ae9c7da6f98eb243a4eabe1, + limb2: 0x1eaefbc754d2c955, + }, + u288 { + limb0: 0x482b18fe80f0be1aab6c6238, + limb1: 0xb645b0c13fd39500ff776a30, + limb2: 0x1df08aa0f104a25a, + }, + u288 { + limb0: 0xb7bba7997ac92ce15e710b96, + limb1: 0x8526d8e9fd8921a9c346b3a6, + limb2: 0x8f6674e0b97bc18, + }, + u288 { + limb0: 0x929049f5b01e22fd571d1d02, + limb1: 0xbdfd6e8d9e23f0b9c1562140, + limb2: 0x271340d2efaf35e9, + }, + u288 { + limb0: 0x3f00e5d11e407bed5c6e3acd, + limb1: 0x1cd20d4d24e6ee8df4ccbe70, + limb2: 0x1f93b6e26feb0406, + }, + u288 { + limb0: 0xfe137f1a362950155010b351, + limb1: 0xaa2c43ea9f117d50c137a7d9, + limb2: 0xe9e6f28b08c5352, + }, + u288 { + limb0: 0x97f86652b8fef573fd0f3c61, + limb1: 0x76fe5a531d3f75dbf2a213cf, + limb2: 0x211561c21a15e2b7, + }, + u288 { + limb0: 0x2b34ccdd16ed066c10b98358, + limb1: 0x4fc5ed37069d3e0fe56f394c, + limb2: 0x1e9b53c95213f01a, + }, + u288 { + limb0: 0x1996ae72a652180c7f66b358, + limb1: 0xe57dc1eb4813e2d50eb76136, + limb2: 0x224258c648636219, + }, + u288 { + limb0: 0x6153ca4e88c120ae5a9a2aab, + limb1: 0xd735770ed1acfd062c9712e, + limb2: 0xa8d1e806ba95d7, + }, + u288 { + limb0: 0xa4293ba081b3c6785f70fae1, + limb1: 0xf28475551943b2916689ebce, + limb2: 0x1061aa8e03cd7938, + }, + u288 { + limb0: 0x4b75210036f89d4665ed9364, + limb1: 0xe68f487e34bf25e74c92ff25, + limb2: 0xc6b9cf69bc2c551, + }, + u288 { + limb0: 0x3b14c634a9c3ef7fcf60cf66, + limb1: 0x2fa7a481f375980859180d83, + limb2: 0x3604cb3c1e6996, + }, + u288 { + limb0: 0xc5fd914415768b48dce5f40c, + limb1: 0xd1f9bf65a7cfe9814c486bfe, + limb2: 0x76e92b3e2cd4884, + }, + u288 { + limb0: 0x6e8b8a54da08cada4b9fa780, + limb1: 0x1fbec4b6ae8915e49b1b4e6b, + limb2: 0x1f70ebdbb4fddcc4, + }, + u288 { + limb0: 0x5e2f7b2a2190c3c0fff55baa, + limb1: 0xb60af6317d2d44f76d407d05, + limb2: 0x2085925c2400f3c, + }, + u288 { + limb0: 0x4f63e859d1ae6c6e038d5fea, + limb1: 0x878bed552dd18035d25e73cd, + limb2: 0x8a243177a14b60c, + }, + u288 { + limb0: 0x7fa7b8bf7248f72da12310bd, + limb1: 0x3483957909dce135dd5ef986, + limb2: 0x176c39ce513cfb0b, + }, + u288 { + limb0: 0xd4e5b51e3eb4536f486197b0, + limb1: 0x80caf2fa80f76aac0748a479, + limb2: 0x282a041fbbecc085, + }, + u288 { + limb0: 0xe0a259333fc6ac4ba8557060, + limb1: 0xc1c1dbb6761aef4616e52a6e, + limb2: 0xa349e95691fee05, + }, + u288 { + limb0: 0xc206054dca599cce7db7365d, + limb1: 0x6f104838356b7c3746bf99d4, + limb2: 0x2e91facc86558c3f, + }, + u288 { + limb0: 0x91004fc104369a89d25d8c26, + limb1: 0x14facd247c8f280a46f79e98, + limb2: 0x23cbf11e2af950f3, + }, + u288 { + limb0: 0x479e1d9134d34df3d502fdd8, + limb1: 0x3d3c720c39d18b8b4a60a1cb, + limb2: 0x2b053298f284b79b, + }, + u288 { + limb0: 0xf9622766582e252dfa3300d4, + limb1: 0x3818faae94bd04853cac4207, + limb2: 0xe9be8d76dba0da6, + }, + u288 { + limb0: 0x973d6d222af6c265cd1d860a, + limb1: 0xe618c5255aabe32fd1df3a68, + limb2: 0x1b81e08e19fee26f, + }, + u288 { + limb0: 0x13822e39419e1ca0b6bdb416, + limb1: 0x360507a325e19f326d9eb8f6, + limb2: 0x28c2bfb913002123, + }, + u288 { + limb0: 0xfd16ceb8f013368ebddcc694, + limb1: 0xf1929058b1e6bb7bc67dc864, + limb2: 0xd7661e39102d33b, + }, + u288 { + limb0: 0x3612b108164a4552070f7e5a, + limb1: 0x2e3609e470ca0987bd956b17, + limb2: 0x2ccc2eca0f0dfe49, + }, + u288 { + limb0: 0xc875326cda1e8fd21da9615, + limb1: 0x9f66068176a81497167eb987, + limb2: 0x1f7394d2904f11cf, + }, + u288 { + limb0: 0x69877a7629e8eb6f0df115d, + limb1: 0x36172d986bb37cbf9a2d075a, + limb2: 0x175398a914994c2, + }, + u288 { + limb0: 0x85708dcd364bf9b08019481, + limb1: 0x3ebdde5d0ec8d7c970e45456, + limb2: 0x27444427c540c51f, + }, + u288 { + limb0: 0x2f56b0d371fa70ca2fce4262, + limb1: 0x2180ce71f33f5f3f7205ab6f, + limb2: 0x1f27aa9a95c6946a, + }, + u288 { + limb0: 0x3954013a43cfc40b1016b96f, + limb1: 0x7f0d3ed3585cc4214f306586, + limb2: 0x75e7c268f093cca, + }, + u288 { + limb0: 0x7a720f1514605a33205501c0, + limb1: 0xe3d84f0e081e6ef514ec59e7, + limb2: 0x1f99f2e3b0a8a1e4, + }, + u288 { + limb0: 0x33ed3bbd9fb0082742e7bb, + limb1: 0x775026cbe49bf656d773fce9, + limb2: 0x14d8a470e1427fd4, + }, + u288 { + limb0: 0x4ded0727f47936a47255a255, + limb1: 0x27001e7ee4c96b9ead74cd0e, + limb2: 0x1e9b2b2b0a741e12, + }, + u288 { + limb0: 0x10df2aacf278f65392b703ba, + limb1: 0x805effc7556dcb71e9952f58, + limb2: 0xb19cff4a4d0f4ee, + }, + u288 { + limb0: 0x3f207b8e5bc078b042180f67, + limb1: 0x814c653a1d08ecb3e6065305, + limb2: 0x11da4c1def9b80, + }, + u288 { + limb0: 0xe104f66e7756e8200655fb65, + limb1: 0x1d4d8bc3baa910c975d8c817, + limb2: 0x37f3afd1a3828ef, + }, + u288 { + limb0: 0x918596d2bb250627d3e880ff, + limb1: 0x5ac25c68696504208b7c70, + limb2: 0x406131d01640fb8, + }, + u288 { + limb0: 0x9efdc2816f117e0b8d847cfa, + limb1: 0xa17463269f89987f0dac6e7a, + limb2: 0x284412f8a4a278b4, + }, + u288 { + limb0: 0xa232d7a575617f61ff3a5fc8, + limb1: 0x53334859baf44bad232d44d4, + limb2: 0x7ca49b7ea7e3242, + }, + u288 { + limb0: 0x1b3ae30a930b48e38d849ad1, + limb1: 0x3d5e424024cdcdf61346f1ba, + limb2: 0x26a4efa8c150db3b, + }, + u288 { + limb0: 0x89cae907e28f5a70809a351, + limb1: 0x16328bcb13c59828dc5d467c, + limb2: 0x190ba400f525f1a9, + }, + ], + }; + let res = multi_pairing_check_bn254_2P_2F(pair0, pair1, lines, hint); + assert!(res); + } + + + #[test] + fn test_BN254_mpcheck_3P_2F_with_extra_miller_loop_result() { + let pair0: G1G2Pair = G1G2Pair { + p: G1Point { + x: u384 { + limb0: 0x5c724369afbc772d02aed58e, + limb1: 0x2cd3bc838c66439a3d6160b, + limb2: 0x72f26b55fb56be1, + limb3: 0x0, + }, + y: u384 { + limb0: 0x772ca79c580e121ca148fe75, + limb1: 0xce2f55e418ca01b3d6d1014b, + limb2: 0x2884b1dc4e84e30f, + limb3: 0x0, + }, + }, + q: G2Point { + x0: u384 { + limb0: 0xa30b422f34656d6c94e40be, + limb1: 0x83069b5050fd7194c7e35d0c, + limb2: 0xf0e8184945e8d34, + limb3: 0x0, + }, + x1: u384 { + limb0: 0xde9079ee8fa5e15901dfef27, + limb1: 0xdb602cf367841e5047ffab14, + limb2: 0x1752c7b6b35af45, + limb3: 0x0, + }, + y0: u384 { + limb0: 0x4dafbd7f615fd2aa9f5a0acc, + limb1: 0x35c8bbffe201ffd56deb5dea, + limb2: 0xa822a5ba029a283, + limb3: 0x0, + }, + y1: u384 { + limb0: 0xec6d9e4fafec17b8404c0341, + limb1: 0x17fe961ad4b8ee3bf2ade626, + limb2: 0x1228147f83e3ea5, + limb3: 0x0, + }, + }, + }; + let pair1: G1G2Pair = G1G2Pair { + p: G1Point { + x: u384 { + limb0: 0x5c724369afbc772d02aed58e, + limb1: 0x2cd3bc838c66439a3d6160b, + limb2: 0x72f26b55fb56be1, + limb3: 0x0, + }, + y: u384 { + limb0: 0x772ca79c580e121ca148fe75, + limb1: 0xce2f55e418ca01b3d6d1014b, + limb2: 0x2884b1dc4e84e30f, + limb3: 0x0, + }, + }, + q: G2Point { + x0: u384 { + limb0: 0xa30b422f34656d6c94e40be, + limb1: 0x83069b5050fd7194c7e35d0c, + limb2: 0xf0e8184945e8d34, + limb3: 0x0, + }, + x1: u384 { + limb0: 0xde9079ee8fa5e15901dfef27, + limb1: 0xdb602cf367841e5047ffab14, + limb2: 0x1752c7b6b35af45, + limb3: 0x0, + }, + y0: u384 { + limb0: 0x4dafbd7f615fd2aa9f5a0acc, + limb1: 0x35c8bbffe201ffd56deb5dea, + limb2: 0xa822a5ba029a283, + limb3: 0x0, + }, + y1: u384 { + limb0: 0xec6d9e4fafec17b8404c0341, + limb1: 0x17fe961ad4b8ee3bf2ade626, + limb2: 0x1228147f83e3ea5, + limb3: 0x0, + }, + }, + }; + let pair2: G1G2Pair = G1G2Pair { + p: G1Point { + x: u384 { + limb0: 0x5c724369afbc772d02aed58e, + limb1: 0x2cd3bc838c66439a3d6160b, + limb2: 0x72f26b55fb56be1, + limb3: 0x0, + }, + y: u384 { + limb0: 0x772ca79c580e121ca148fe75, + limb1: 0xce2f55e418ca01b3d6d1014b, + limb2: 0x2884b1dc4e84e30f, + limb3: 0x0, + }, + }, + q: G2Point { + x0: u384 { + limb0: 0xa30b422f34656d6c94e40be, + limb1: 0x83069b5050fd7194c7e35d0c, + limb2: 0xf0e8184945e8d34, + limb3: 0x0, + }, + x1: u384 { + limb0: 0xde9079ee8fa5e15901dfef27, + limb1: 0xdb602cf367841e5047ffab14, + limb2: 0x1752c7b6b35af45, + limb3: 0x0, + }, + y0: u384 { + limb0: 0x4dafbd7f615fd2aa9f5a0acc, limb1: 0x35c8bbffe201ffd56deb5dea, limb2: 0xa822a5ba029a283, - limb3: 0x0 + limb3: 0x0, }, y1: u384 { limb0: 0xec6d9e4fafec17b8404c0341, limb1: 0x17fe961ad4b8ee3bf2ade626, limb2: 0x1228147f83e3ea5, - limb3: 0x0 - } - } + limb3: 0x0, + }, + }, }; let precomputed_miller_loop_result = E12D { w0: u288 { limb0: 0xfaccb300f066ee143625434e, limb1: 0x12bfc53caae870d85457c4bc, - limb2: 0x590ff61397d0dd2 + limb2: 0x590ff61397d0dd2, }, w1: u288 { limb0: 0x3d74a2131fff08abcc77f5ff, limb1: 0xcc055f39a02506234d00e8eb, - limb2: 0xf706ef44c1d0af1 + limb2: 0xf706ef44c1d0af1, }, w2: u288 { limb0: 0x4605464626791e8c2d23914a, limb1: 0x7da5ae6eba3609b9a258aeb5, - limb2: 0x22a5875254921ffd + limb2: 0x22a5875254921ffd, }, w3: u288 { limb0: 0xa36080e7d54da24b20b89bf4, limb1: 0x701510a38855b7b7bbcf7e5b, - limb2: 0xae461e60176f9fc + limb2: 0xae461e60176f9fc, }, w4: u288 { limb0: 0x310a2f82381041f00ab0a97b, limb1: 0x4ec0223c3dc06216c285cccb, - limb2: 0xaae21f01619c3fa + limb2: 0xaae21f01619c3fa, }, w5: u288 { limb0: 0xa206b95ba090599b7a5e8c2e, limb1: 0xac945c0f61fb2673fb43b2aa, - limb2: 0xe203da0f9a03b1a + limb2: 0xe203da0f9a03b1a, }, w6: u288 { limb0: 0x280fda652c0775ee0202237c, limb1: 0x4ad4e2c546956c34ec381b30, - limb2: 0x1e2de9ed7968cac1 + limb2: 0x1e2de9ed7968cac1, }, w7: u288 { limb0: 0xdff110a40e2837285a53cdc9, limb1: 0x303a0db8cbb989aa911eec40, - limb2: 0xf3b13b4d08af03 + limb2: 0xf3b13b4d08af03, }, w8: u288 { limb0: 0x622927b875c780e6f64e6abe, limb1: 0xc79a5ba5d705c69b59a88b64, - limb2: 0x242bd1109f659686 + limb2: 0x242bd1109f659686, }, w9: u288 { limb0: 0x47a207ed1fe3501ee8a66a12, limb1: 0x92d2dc829a2f34f4ee684f04, - limb2: 0x1f626f25b03417e4 + limb2: 0x1f626f25b03417e4, }, w10: u288 { limb0: 0x9cf6ea1c727f2d3d16f4095b, limb1: 0xdca506524d7f4aeb8f093970, - limb2: 0x234cc399b032b927 + limb2: 0x234cc399b032b927, }, w11: u288 { limb0: 0xc04208d92713b2b39e39f93, limb1: 0x339c2266bcf3504782285acc, - limb2: 0x8dd178fb6d5acd8 - } + limb2: 0x8dd178fb6d5acd8, + }, }; let lines = array![ G2Line { r0a0: u288 { limb0: 0x13fc2cd2d19c89caf55a13a8, limb1: 0x6a3f58c82d87f618a84e2bf0, - limb2: 0x18b4a261a618f14c + limb2: 0x18b4a261a618f14c, }, r0a1: u288 { limb0: 0xa12d7217806e8da77076b27c, limb1: 0x868641e2c5440aefc45ec097, - limb2: 0x21a23fb8ecb967b4 + limb2: 0x21a23fb8ecb967b4, }, r1a0: u288 { limb0: 0x9c39813fffc4c7b20cc17a76, limb1: 0xf4a2427d51f32abb183e2860, - limb2: 0x2687525f35660d8f + limb2: 0x2687525f35660d8f, }, r1a1: u288 { limb0: 0xc039aad6d5de6af4f5c6c0bb, limb1: 0x3750d73ecbf7e1bca03d1cf2, - limb2: 0xecbbbebf08974c8 - } + limb2: 0xecbbbebf08974c8, + }, }, G2Line { r0a0: u288 { limb0: 0x13fc2cd2d19c89caf55a13a8, limb1: 0x6a3f58c82d87f618a84e2bf0, - limb2: 0x18b4a261a618f14c + limb2: 0x18b4a261a618f14c, }, r0a1: u288 { limb0: 0xa12d7217806e8da77076b27c, limb1: 0x868641e2c5440aefc45ec097, - limb2: 0x21a23fb8ecb967b4 + limb2: 0x21a23fb8ecb967b4, }, r1a0: u288 { limb0: 0x9c39813fffc4c7b20cc17a76, limb1: 0xf4a2427d51f32abb183e2860, - limb2: 0x2687525f35660d8f + limb2: 0x2687525f35660d8f, }, r1a1: u288 { limb0: 0xc039aad6d5de6af4f5c6c0bb, limb1: 0x3750d73ecbf7e1bca03d1cf2, - limb2: 0xecbbbebf08974c8 - } + limb2: 0xecbbbebf08974c8, + }, }, G2Line { r0a0: u288 { limb0: 0x54759dba6a84024be322e99f, limb1: 0x4e10ecee53f96244ef333ea1, - limb2: 0x17afac113b18aedd + limb2: 0x17afac113b18aedd, }, r0a1: u288 { limb0: 0xc7445875bbb1fe6f68064acb, limb1: 0x31ca03d3bc3d4d6dd322a9f9, - limb2: 0xec20eb9f4783875 + limb2: 0xec20eb9f4783875, }, r1a0: u288 { limb0: 0xcc38494d3c5bc464cbbb82d1, limb1: 0xc3ae03392f8e2da27f434230, - limb2: 0x9dcfc13abcb9299 + limb2: 0x9dcfc13abcb9299, }, r1a1: u288 { limb0: 0xa8381fb666422121e2b63c8c, limb1: 0x80ff6e77b58976a0f7444d9e, - limb2: 0x21989286f0a82b61 - } + limb2: 0x21989286f0a82b61, + }, }, G2Line { r0a0: u288 { limb0: 0x52cd2431a88ef78ec482ce43, limb1: 0xdb994b0266c17f5e8dded89e, - limb2: 0x107cd7f4d3a5c20f + limb2: 0x107cd7f4d3a5c20f, }, r0a1: u288 { limb0: 0xb4e4c1a20d77277f1ecef6b, limb1: 0x3fc13dd5746446d4e724e645, - limb2: 0x18ed3b584ac56dfe + limb2: 0x18ed3b584ac56dfe, }, r1a0: u288 { limb0: 0x3a537f5b220d3afddbd3be9d, limb1: 0xeddb087729b8776323c5b8ee, - limb2: 0x1f5e5f61ae8c59e6 + limb2: 0x1f5e5f61ae8c59e6, }, r1a1: u288 { limb0: 0x4fe2c98dc347d3ceb841acdf, limb1: 0xe6a7f4bdda3390e40c62a288, - limb2: 0x2a277c878fe85394 - } + limb2: 0x2a277c878fe85394, + }, }, G2Line { r0a0: u288 { limb0: 0x54759dba6a84024be322e99f, limb1: 0x4e10ecee53f96244ef333ea1, - limb2: 0x17afac113b18aedd + limb2: 0x17afac113b18aedd, }, r0a1: u288 { limb0: 0xc7445875bbb1fe6f68064acb, limb1: 0x31ca03d3bc3d4d6dd322a9f9, - limb2: 0xec20eb9f4783875 + limb2: 0xec20eb9f4783875, }, r1a0: u288 { limb0: 0xcc38494d3c5bc464cbbb82d1, limb1: 0xc3ae03392f8e2da27f434230, - limb2: 0x9dcfc13abcb9299 + limb2: 0x9dcfc13abcb9299, }, r1a1: u288 { limb0: 0xa8381fb666422121e2b63c8c, limb1: 0x80ff6e77b58976a0f7444d9e, - limb2: 0x21989286f0a82b61 - } + limb2: 0x21989286f0a82b61, + }, }, G2Line { r0a0: u288 { limb0: 0x52cd2431a88ef78ec482ce43, limb1: 0xdb994b0266c17f5e8dded89e, - limb2: 0x107cd7f4d3a5c20f + limb2: 0x107cd7f4d3a5c20f, }, r0a1: u288 { limb0: 0xb4e4c1a20d77277f1ecef6b, limb1: 0x3fc13dd5746446d4e724e645, - limb2: 0x18ed3b584ac56dfe + limb2: 0x18ed3b584ac56dfe, }, r1a0: u288 { limb0: 0x3a537f5b220d3afddbd3be9d, limb1: 0xeddb087729b8776323c5b8ee, - limb2: 0x1f5e5f61ae8c59e6 + limb2: 0x1f5e5f61ae8c59e6, }, r1a1: u288 { limb0: 0x4fe2c98dc347d3ceb841acdf, limb1: 0xe6a7f4bdda3390e40c62a288, - limb2: 0x2a277c878fe85394 - } + limb2: 0x2a277c878fe85394, + }, }, G2Line { r0a0: u288 { limb0: 0x53e743cfae97f5f975cf49cd, limb1: 0x4a80ced31104872cc46b3fa6, - limb2: 0x26af32e1e4b51233 + limb2: 0x26af32e1e4b51233, }, r0a1: u288 { limb0: 0x20537276ce9b6d318ea2f567, limb1: 0xf0d44c7024c00ead73f13f53, - limb2: 0x13e665e776128b92 + limb2: 0x13e665e776128b92, }, r1a0: u288 { limb0: 0xad9a173a5d331f5e8221dedc, limb1: 0x11fc759697a8b7533cf8e7fd, - limb2: 0x281514af188294d6 + limb2: 0x281514af188294d6, }, r1a1: u288 { limb0: 0xcd59e5219230c0937878feff, limb1: 0x85d1c954acb2bf4803a9e200, - limb2: 0x4229bcd8d07f251 - } + limb2: 0x4229bcd8d07f251, + }, }, G2Line { r0a0: u288 { limb0: 0x53e743cfae97f5f975cf49cd, limb1: 0x4a80ced31104872cc46b3fa6, - limb2: 0x26af32e1e4b51233 + limb2: 0x26af32e1e4b51233, }, r0a1: u288 { limb0: 0x20537276ce9b6d318ea2f567, limb1: 0xf0d44c7024c00ead73f13f53, - limb2: 0x13e665e776128b92 + limb2: 0x13e665e776128b92, }, r1a0: u288 { limb0: 0xad9a173a5d331f5e8221dedc, limb1: 0x11fc759697a8b7533cf8e7fd, - limb2: 0x281514af188294d6 + limb2: 0x281514af188294d6, }, r1a1: u288 { limb0: 0xcd59e5219230c0937878feff, limb1: 0x85d1c954acb2bf4803a9e200, - limb2: 0x4229bcd8d07f251 - } + limb2: 0x4229bcd8d07f251, + }, }, G2Line { r0a0: u288 { limb0: 0xa4e9586d1e24c4e20dafd647, limb1: 0x7f88fb247cdc95b6010d9e1, - limb2: 0x2fc2b7b6b4abaf58 + limb2: 0x2fc2b7b6b4abaf58, }, r0a1: u288 { limb0: 0x9bbcc4481ffe859db49e1d98, limb1: 0x13be783da3c9bea06995338d, - limb2: 0x2041db55312bcc8b + limb2: 0x2041db55312bcc8b, }, r1a0: u288 { limb0: 0x89721c899fdfd2776e1d4131, limb1: 0x602e0c14a55d62b055ca8113, - limb2: 0x1fbed06b550ce696 + limb2: 0x1fbed06b550ce696, }, r1a1: u288 { limb0: 0xfff5deaaf0a2cf3cca44de5c, limb1: 0xd5efcfc87d7bc3cc0d3d9be1, - limb2: 0x18106453c47c63f5 - } + limb2: 0x18106453c47c63f5, + }, }, G2Line { r0a0: u288 { limb0: 0x33720aad04d475cab632ceb4, limb1: 0xd7b4eef636fd40d7ad28aaf7, - limb2: 0x25e952c734deb4a7 + limb2: 0x25e952c734deb4a7, }, r0a1: u288 { limb0: 0x8c407e44689ce2ec6ea22bb3, limb1: 0x10ab4ebbd57974771a9bfe37, - limb2: 0xc2d6b95efdcdb61 + limb2: 0xc2d6b95efdcdb61, }, r1a0: u288 { limb0: 0xb03dd6a767461c482dcafa86, limb1: 0xbbde25f51257025e9a28974, - limb2: 0x278e5fd00fb1b935 + limb2: 0x278e5fd00fb1b935, }, r1a1: u288 { limb0: 0x7bbd2c1bbf42867093a08f41, limb1: 0xcc4d5b03ab2a82a219b80b43, - limb2: 0x2105554776d3cf89 - } + limb2: 0x2105554776d3cf89, + }, }, G2Line { r0a0: u288 { limb0: 0xa4e9586d1e24c4e20dafd647, limb1: 0x7f88fb247cdc95b6010d9e1, - limb2: 0x2fc2b7b6b4abaf58 + limb2: 0x2fc2b7b6b4abaf58, }, r0a1: u288 { limb0: 0x9bbcc4481ffe859db49e1d98, limb1: 0x13be783da3c9bea06995338d, - limb2: 0x2041db55312bcc8b + limb2: 0x2041db55312bcc8b, }, r1a0: u288 { limb0: 0x89721c899fdfd2776e1d4131, limb1: 0x602e0c14a55d62b055ca8113, - limb2: 0x1fbed06b550ce696 + limb2: 0x1fbed06b550ce696, }, r1a1: u288 { limb0: 0xfff5deaaf0a2cf3cca44de5c, limb1: 0xd5efcfc87d7bc3cc0d3d9be1, - limb2: 0x18106453c47c63f5 - } + limb2: 0x18106453c47c63f5, + }, }, G2Line { r0a0: u288 { limb0: 0x33720aad04d475cab632ceb4, limb1: 0xd7b4eef636fd40d7ad28aaf7, - limb2: 0x25e952c734deb4a7 + limb2: 0x25e952c734deb4a7, }, r0a1: u288 { limb0: 0x8c407e44689ce2ec6ea22bb3, limb1: 0x10ab4ebbd57974771a9bfe37, - limb2: 0xc2d6b95efdcdb61 + limb2: 0xc2d6b95efdcdb61, }, r1a0: u288 { limb0: 0xb03dd6a767461c482dcafa86, limb1: 0xbbde25f51257025e9a28974, - limb2: 0x278e5fd00fb1b935 + limb2: 0x278e5fd00fb1b935, }, r1a1: u288 { limb0: 0x7bbd2c1bbf42867093a08f41, limb1: 0xcc4d5b03ab2a82a219b80b43, - limb2: 0x2105554776d3cf89 - } + limb2: 0x2105554776d3cf89, + }, }, G2Line { r0a0: u288 { limb0: 0x32e40fb4d2025cd0e82ced6f, limb1: 0xbc0608261a5f898f868a08d8, - limb2: 0x282ba090b78fca30 + limb2: 0x282ba090b78fca30, }, r0a1: u288 { limb0: 0xdfe55dec41a63986c6aceff7, limb1: 0x2555dd47b4f4cd057f63d51, - limb2: 0xf5a1242bc10ee1f + limb2: 0xf5a1242bc10ee1f, }, r1a0: u288 { limb0: 0x590c3a14f70d93710ad8d62d, limb1: 0x91b6b9b5a53eb9825ebe4230, - limb2: 0x2f3c78d5b1a40d44 + limb2: 0x2f3c78d5b1a40d44, }, r1a1: u288 { limb0: 0x7fa2feee5a3d934393f3dcdb, limb1: 0x216af82d8ef724bef3a0cff9, - limb2: 0x2a3b1b41079d39de - } + limb2: 0x2a3b1b41079d39de, + }, }, G2Line { r0a0: u288 { limb0: 0x32e40fb4d2025cd0e82ced6f, limb1: 0xbc0608261a5f898f868a08d8, - limb2: 0x282ba090b78fca30 + limb2: 0x282ba090b78fca30, }, r0a1: u288 { limb0: 0xdfe55dec41a63986c6aceff7, limb1: 0x2555dd47b4f4cd057f63d51, - limb2: 0xf5a1242bc10ee1f + limb2: 0xf5a1242bc10ee1f, }, r1a0: u288 { limb0: 0x590c3a14f70d93710ad8d62d, limb1: 0x91b6b9b5a53eb9825ebe4230, - limb2: 0x2f3c78d5b1a40d44 + limb2: 0x2f3c78d5b1a40d44, }, r1a1: u288 { limb0: 0x7fa2feee5a3d934393f3dcdb, limb1: 0x216af82d8ef724bef3a0cff9, - limb2: 0x2a3b1b41079d39de - } + limb2: 0x2a3b1b41079d39de, + }, }, G2Line { r0a0: u288 { limb0: 0x70f807c9bd9cc653569a88c0, limb1: 0xd3bd9e80a4c0879b8c54502f, - limb2: 0x78f06a79ebcc122 + limb2: 0x78f06a79ebcc122, }, r0a1: u288 { limb0: 0x1f4b6ad4455ba03d167d7fb3, limb1: 0xd11276f3c684ac26d1a62390, - limb2: 0x2e376293ba7c79b7 + limb2: 0x2e376293ba7c79b7, }, r1a0: u288 { limb0: 0xe7a2888c80e82ed69b2c357d, limb1: 0xa5057b1db97b9c3edd232a43, - limb2: 0x1eed211bc2e66931 + limb2: 0x1eed211bc2e66931, }, r1a1: u288 { limb0: 0xaca29d5ef46c59744a30d2e, limb1: 0xfeb93f366d5295ce80bf592, - limb2: 0x697b2aa97f68681 - } + limb2: 0x697b2aa97f68681, + }, }, G2Line { r0a0: u288 { limb0: 0x70f807c9bd9cc653569a88c0, limb1: 0xd3bd9e80a4c0879b8c54502f, - limb2: 0x78f06a79ebcc122 + limb2: 0x78f06a79ebcc122, }, r0a1: u288 { limb0: 0x1f4b6ad4455ba03d167d7fb3, limb1: 0xd11276f3c684ac26d1a62390, - limb2: 0x2e376293ba7c79b7 + limb2: 0x2e376293ba7c79b7, }, r1a0: u288 { limb0: 0xe7a2888c80e82ed69b2c357d, limb1: 0xa5057b1db97b9c3edd232a43, - limb2: 0x1eed211bc2e66931 + limb2: 0x1eed211bc2e66931, }, r1a1: u288 { limb0: 0xaca29d5ef46c59744a30d2e, limb1: 0xfeb93f366d5295ce80bf592, - limb2: 0x697b2aa97f68681 - } + limb2: 0x697b2aa97f68681, + }, }, G2Line { r0a0: u288 { limb0: 0x21c98846074d27fd948bf071, limb1: 0x2677e986de7a6bb799458f9, - limb2: 0xbfae24b95db3021 + limb2: 0xbfae24b95db3021, }, r0a1: u288 { limb0: 0x241a18abd825d1d53b4b1cd1, limb1: 0x1153ff7044093f39311453e, - limb2: 0x7ef5b22d955cb08 + limb2: 0x7ef5b22d955cb08, }, r1a0: u288 { limb0: 0xfde2d3f182c7404c916ddaee, limb1: 0x51059992e83a57e0357b63f3, - limb2: 0x5de94c1a6dce11c + limb2: 0x5de94c1a6dce11c, }, r1a1: u288 { limb0: 0xa897c205d1548b407d3c7597, limb1: 0x3e8437329ebf4e2f1fe3b370, - limb2: 0x1e321d523b1a40f8 - } + limb2: 0x1e321d523b1a40f8, + }, }, G2Line { r0a0: u288 { limb0: 0x21c98846074d27fd948bf071, limb1: 0x2677e986de7a6bb799458f9, - limb2: 0xbfae24b95db3021 + limb2: 0xbfae24b95db3021, }, r0a1: u288 { limb0: 0x241a18abd825d1d53b4b1cd1, limb1: 0x1153ff7044093f39311453e, - limb2: 0x7ef5b22d955cb08 + limb2: 0x7ef5b22d955cb08, }, r1a0: u288 { limb0: 0xfde2d3f182c7404c916ddaee, limb1: 0x51059992e83a57e0357b63f3, - limb2: 0x5de94c1a6dce11c + limb2: 0x5de94c1a6dce11c, }, r1a1: u288 { limb0: 0xa897c205d1548b407d3c7597, limb1: 0x3e8437329ebf4e2f1fe3b370, - limb2: 0x1e321d523b1a40f8 - } + limb2: 0x1e321d523b1a40f8, + }, }, G2Line { r0a0: u288 { limb0: 0x3b7c7dfdc0377c6e77a69a78, limb1: 0x56046802d2acc2048f6473b0, - limb2: 0x1e538130528f2037 + limb2: 0x1e538130528f2037, }, r0a1: u288 { limb0: 0xf8d9c38bafe394d496ec036b, limb1: 0xa7178b19843c74a1c9ffdec9, - limb2: 0x754d38a41b241f5 + limb2: 0x754d38a41b241f5, }, r1a0: u288 { limb0: 0x5399cd6b03cd5dd0e202dc18, limb1: 0x27132b0286f70ab0f9d3f154, - limb2: 0x209e0408c047ebf6 + limb2: 0x209e0408c047ebf6, }, r1a1: u288 { limb0: 0xa73bf15125290077d6d0d018, limb1: 0xe07ebcc1ab67f9cf97be2e80, - limb2: 0x217014f56f93c3a2 - } + limb2: 0x217014f56f93c3a2, + }, }, G2Line { r0a0: u288 { limb0: 0xb565c9168c2f34f5d1a48833, limb1: 0x9f2143f7ae3a47cffb1e8fda, - limb2: 0xaebc823dc1fcd02 + limb2: 0xaebc823dc1fcd02, }, r0a1: u288 { limb0: 0x59b0e8a0118c2f5ec29f117b, limb1: 0xd1d302931406f12c6271f149, - limb2: 0x18a65ecc25e7a0e3 + limb2: 0x18a65ecc25e7a0e3, }, r1a0: u288 { limb0: 0xcf4c8bcea64951980f866870, limb1: 0xd708dcd6450bd5f68bed09a3, - limb2: 0xb3c0fa83c8b5f48 + limb2: 0xb3c0fa83c8b5f48, }, r1a1: u288 { limb0: 0xc45fac32b4b9fb37bdaea5f3, limb1: 0xc46068320849da30be837df5, - limb2: 0x2c6ea62118c44345 - } + limb2: 0x2c6ea62118c44345, + }, }, G2Line { r0a0: u288 { limb0: 0x3b7c7dfdc0377c6e77a69a78, limb1: 0x56046802d2acc2048f6473b0, - limb2: 0x1e538130528f2037 + limb2: 0x1e538130528f2037, }, r0a1: u288 { limb0: 0xf8d9c38bafe394d496ec036b, limb1: 0xa7178b19843c74a1c9ffdec9, - limb2: 0x754d38a41b241f5 + limb2: 0x754d38a41b241f5, }, r1a0: u288 { limb0: 0x5399cd6b03cd5dd0e202dc18, limb1: 0x27132b0286f70ab0f9d3f154, - limb2: 0x209e0408c047ebf6 + limb2: 0x209e0408c047ebf6, }, r1a1: u288 { limb0: 0xa73bf15125290077d6d0d018, limb1: 0xe07ebcc1ab67f9cf97be2e80, - limb2: 0x217014f56f93c3a2 - } + limb2: 0x217014f56f93c3a2, + }, }, G2Line { r0a0: u288 { limb0: 0xb565c9168c2f34f5d1a48833, limb1: 0x9f2143f7ae3a47cffb1e8fda, - limb2: 0xaebc823dc1fcd02 + limb2: 0xaebc823dc1fcd02, }, r0a1: u288 { limb0: 0x59b0e8a0118c2f5ec29f117b, limb1: 0xd1d302931406f12c6271f149, - limb2: 0x18a65ecc25e7a0e3 + limb2: 0x18a65ecc25e7a0e3, }, r1a0: u288 { limb0: 0xcf4c8bcea64951980f866870, limb1: 0xd708dcd6450bd5f68bed09a3, - limb2: 0xb3c0fa83c8b5f48 + limb2: 0xb3c0fa83c8b5f48, }, r1a1: u288 { limb0: 0xc45fac32b4b9fb37bdaea5f3, limb1: 0xc46068320849da30be837df5, - limb2: 0x2c6ea62118c44345 - } + limb2: 0x2c6ea62118c44345, + }, }, G2Line { r0a0: u288 { limb0: 0x9611d44432206361cd7f3473, limb1: 0xd34ce79c946302bdbf8f72de, - limb2: 0x1fd5b330038873b0 + limb2: 0x1fd5b330038873b0, }, r0a1: u288 { limb0: 0x71a17fc89e530dda653c4220, limb1: 0x37852a7f67a5fa74c6613c00, - limb2: 0x1e11dde6c5c9261d + limb2: 0x1e11dde6c5c9261d, }, r1a0: u288 { limb0: 0xf8f9c22149b11566f643511e, limb1: 0xeafd5e990baff3df753b4545, - limb2: 0x2e3219be0c5ae36a + limb2: 0x2e3219be0c5ae36a, }, r1a1: u288 { limb0: 0x8e2193129c343cb3a4db1f47, limb1: 0xf56af697b4d714d190d603dd, - limb2: 0x2d3349ba9a465783 - } + limb2: 0x2d3349ba9a465783, + }, }, G2Line { r0a0: u288 { limb0: 0x9611d44432206361cd7f3473, limb1: 0xd34ce79c946302bdbf8f72de, - limb2: 0x1fd5b330038873b0 + limb2: 0x1fd5b330038873b0, }, r0a1: u288 { limb0: 0x71a17fc89e530dda653c4220, limb1: 0x37852a7f67a5fa74c6613c00, - limb2: 0x1e11dde6c5c9261d + limb2: 0x1e11dde6c5c9261d, }, r1a0: u288 { limb0: 0xf8f9c22149b11566f643511e, limb1: 0xeafd5e990baff3df753b4545, - limb2: 0x2e3219be0c5ae36a + limb2: 0x2e3219be0c5ae36a, }, r1a1: u288 { limb0: 0x8e2193129c343cb3a4db1f47, limb1: 0xf56af697b4d714d190d603dd, - limb2: 0x2d3349ba9a465783 - } + limb2: 0x2d3349ba9a465783, + }, }, G2Line { r0a0: u288 { limb0: 0x196665c03009ef576fd6961, limb1: 0x2719b6e1af31847d795deb9e, - limb2: 0x155d054c2097ab50 + limb2: 0x155d054c2097ab50, }, r0a1: u288 { limb0: 0x4e6b687ca0dfecf549daeef5, limb1: 0xb4e4f54e1d35a5cd994c6054, - limb2: 0x11c8b740bfbe502 + limb2: 0x11c8b740bfbe502, }, r1a0: u288 { limb0: 0xbc9857a840b86d1d7ffb6b9d, limb1: 0x3315341c9d5a9ff2955435b2, - limb2: 0x30447649e2f50c77 + limb2: 0x30447649e2f50c77, }, r1a1: u288 { limb0: 0x9a187f6cc5ad3146f48c70be, limb1: 0x9809e5f4637c60447e7cfdef, - limb2: 0x667330690960cd - } + limb2: 0x667330690960cd, + }, }, G2Line { r0a0: u288 { limb0: 0x215d0ebb801c8a2c8b0ef9e1, limb1: 0x89edb45dc7e6f74cc7304d78, - limb2: 0x2edb9f6a4282ba3f + limb2: 0x2edb9f6a4282ba3f, }, r0a1: u288 { limb0: 0x78cef612dbc9013e22395718, limb1: 0x68c8984791d65522cdabe9da, - limb2: 0x5cd4d2fb36b3baf + limb2: 0x5cd4d2fb36b3baf, }, r1a0: u288 { limb0: 0x28728de61873d65855d29e69, limb1: 0x74abfdede8c4f6d81e7da1bd, - limb2: 0x199f58d62645184b + limb2: 0x199f58d62645184b, }, r1a1: u288 { limb0: 0xaff5645c427c1f808f890796, limb1: 0x6040d76177456d9ec3d7dd19, - limb2: 0xdead02313d94e2c - } + limb2: 0xdead02313d94e2c, + }, }, G2Line { r0a0: u288 { limb0: 0x196665c03009ef576fd6961, limb1: 0x2719b6e1af31847d795deb9e, - limb2: 0x155d054c2097ab50 + limb2: 0x155d054c2097ab50, }, r0a1: u288 { limb0: 0x4e6b687ca0dfecf549daeef5, limb1: 0xb4e4f54e1d35a5cd994c6054, - limb2: 0x11c8b740bfbe502 + limb2: 0x11c8b740bfbe502, }, r1a0: u288 { limb0: 0xbc9857a840b86d1d7ffb6b9d, limb1: 0x3315341c9d5a9ff2955435b2, - limb2: 0x30447649e2f50c77 + limb2: 0x30447649e2f50c77, }, r1a1: u288 { limb0: 0x9a187f6cc5ad3146f48c70be, limb1: 0x9809e5f4637c60447e7cfdef, - limb2: 0x667330690960cd - } + limb2: 0x667330690960cd, + }, }, G2Line { r0a0: u288 { limb0: 0x215d0ebb801c8a2c8b0ef9e1, limb1: 0x89edb45dc7e6f74cc7304d78, - limb2: 0x2edb9f6a4282ba3f + limb2: 0x2edb9f6a4282ba3f, }, r0a1: u288 { limb0: 0x78cef612dbc9013e22395718, limb1: 0x68c8984791d65522cdabe9da, - limb2: 0x5cd4d2fb36b3baf + limb2: 0x5cd4d2fb36b3baf, }, r1a0: u288 { limb0: 0x28728de61873d65855d29e69, limb1: 0x74abfdede8c4f6d81e7da1bd, - limb2: 0x199f58d62645184b + limb2: 0x199f58d62645184b, }, r1a1: u288 { limb0: 0xaff5645c427c1f808f890796, limb1: 0x6040d76177456d9ec3d7dd19, - limb2: 0xdead02313d94e2c - } + limb2: 0xdead02313d94e2c, + }, }, G2Line { r0a0: u288 { limb0: 0x7e32624925ec3a6751ef2472, limb1: 0x454a7f1340778a7b5e1fe904, - limb2: 0x20906f33c00c8d33 + limb2: 0x20906f33c00c8d33, }, r0a1: u288 { limb0: 0x11710c1c383a8014976022cf, limb1: 0x62f932c9ffa1da884f9fceaa, - limb2: 0xb62b0be184f4494 + limb2: 0xb62b0be184f4494, }, r1a0: u288 { limb0: 0xebd3310b943ec2f49ece0892, limb1: 0x6a06d1930900d0bbc6221220, - limb2: 0x116715e97fb69aaa + limb2: 0x116715e97fb69aaa, }, r1a1: u288 { limb0: 0x1cc4a1667629f976c64db1fd, limb1: 0x965c2705725d60a7cc1550d2, - limb2: 0x10a0fbe4d0a5883d - } + limb2: 0x10a0fbe4d0a5883d, + }, }, G2Line { r0a0: u288 { limb0: 0x7e32624925ec3a6751ef2472, limb1: 0x454a7f1340778a7b5e1fe904, - limb2: 0x20906f33c00c8d33 + limb2: 0x20906f33c00c8d33, }, r0a1: u288 { limb0: 0x11710c1c383a8014976022cf, limb1: 0x62f932c9ffa1da884f9fceaa, - limb2: 0xb62b0be184f4494 + limb2: 0xb62b0be184f4494, }, r1a0: u288 { limb0: 0xebd3310b943ec2f49ece0892, limb1: 0x6a06d1930900d0bbc6221220, - limb2: 0x116715e97fb69aaa + limb2: 0x116715e97fb69aaa, }, r1a1: u288 { limb0: 0x1cc4a1667629f976c64db1fd, limb1: 0x965c2705725d60a7cc1550d2, - limb2: 0x10a0fbe4d0a5883d - } + limb2: 0x10a0fbe4d0a5883d, + }, }, G2Line { r0a0: u288 { limb0: 0xf29c8da48273fcc3ed42600f, limb1: 0xc9085080314ee52208dbeaa3, - limb2: 0x1c97df69a5dee342 + limb2: 0x1c97df69a5dee342, }, r0a1: u288 { limb0: 0xe90ffc7dc1134df60473a9b0, limb1: 0x1785bba891bbf8bf4d028c93, - limb2: 0x2c73ffd5720b59fe + limb2: 0x2c73ffd5720b59fe, }, r1a0: u288 { limb0: 0xaa4625384e00cc7a1d26f59c, limb1: 0x7e2bd7ea82f7679164b9a298, - limb2: 0x1ceb19ac1c28c731 + limb2: 0x1ceb19ac1c28c731, }, r1a1: u288 { limb0: 0x8570cac2138c94f9d261d52, limb1: 0x4750472206e83d3ee38e9950, - limb2: 0x159e78c2f8fb9e87 - } + limb2: 0x159e78c2f8fb9e87, + }, }, G2Line { r0a0: u288 { limb0: 0xf29c8da48273fcc3ed42600f, limb1: 0xc9085080314ee52208dbeaa3, - limb2: 0x1c97df69a5dee342 + limb2: 0x1c97df69a5dee342, }, r0a1: u288 { limb0: 0xe90ffc7dc1134df60473a9b0, limb1: 0x1785bba891bbf8bf4d028c93, - limb2: 0x2c73ffd5720b59fe + limb2: 0x2c73ffd5720b59fe, }, r1a0: u288 { limb0: 0xaa4625384e00cc7a1d26f59c, limb1: 0x7e2bd7ea82f7679164b9a298, - limb2: 0x1ceb19ac1c28c731 + limb2: 0x1ceb19ac1c28c731, }, r1a1: u288 { limb0: 0x8570cac2138c94f9d261d52, limb1: 0x4750472206e83d3ee38e9950, - limb2: 0x159e78c2f8fb9e87 - } + limb2: 0x159e78c2f8fb9e87, + }, }, G2Line { r0a0: u288 { limb0: 0xf0061f0ffdd6c080cb6db4f2, limb1: 0x3156ebb6ec8163f1daaf0fef, - limb2: 0x16a1d8e8a632ecda + limb2: 0x16a1d8e8a632ecda, }, r0a1: u288 { limb0: 0x8944acaa1fea52aec014ca14, limb1: 0xaef310c4279054f6513952eb, - limb2: 0x187dba91d42da551 + limb2: 0x187dba91d42da551, }, r1a0: u288 { limb0: 0x115802cd86218654ef41231b, limb1: 0x6d01289ae998e8d09b1c7304, - limb2: 0x8e3eaae865b5448 + limb2: 0x8e3eaae865b5448, }, r1a1: u288 { limb0: 0x9562b590b59641ca26308faa, limb1: 0x75559bf6ea06aaf7df07c197, - limb2: 0x8245163a7eeeada - } + limb2: 0x8245163a7eeeada, + }, }, G2Line { r0a0: u288 { limb0: 0xf0061f0ffdd6c080cb6db4f2, limb1: 0x3156ebb6ec8163f1daaf0fef, - limb2: 0x16a1d8e8a632ecda + limb2: 0x16a1d8e8a632ecda, }, r0a1: u288 { limb0: 0x8944acaa1fea52aec014ca14, limb1: 0xaef310c4279054f6513952eb, - limb2: 0x187dba91d42da551 + limb2: 0x187dba91d42da551, }, r1a0: u288 { limb0: 0x115802cd86218654ef41231b, limb1: 0x6d01289ae998e8d09b1c7304, - limb2: 0x8e3eaae865b5448 + limb2: 0x8e3eaae865b5448, }, r1a1: u288 { limb0: 0x9562b590b59641ca26308faa, limb1: 0x75559bf6ea06aaf7df07c197, - limb2: 0x8245163a7eeeada - } + limb2: 0x8245163a7eeeada, + }, }, G2Line { r0a0: u288 { limb0: 0x2cd350402831a212e938de81, limb1: 0xed9a7a80de5e1ec0f4b2c4db, - limb2: 0x2f04e512c778c8a3 + limb2: 0x2f04e512c778c8a3, }, r0a1: u288 { limb0: 0x8cd4823620230108e89a1e94, limb1: 0x2dc2d1e59111f47e7663cb36, - limb2: 0x8cbcece7fd20252 + limb2: 0x8cbcece7fd20252, }, r1a0: u288 { limb0: 0x6bbf0471a8988b16ca947450, limb1: 0xf7911a0d3db83d1956cc277b, - limb2: 0x7db791f07f93808 + limb2: 0x7db791f07f93808, }, r1a1: u288 { limb0: 0xd46f340dfdea0b0bef63e487, limb1: 0xbd7520f6a22899dfe8887b8b, - limb2: 0x10f9c9a88e425f37 - } + limb2: 0x10f9c9a88e425f37, + }, }, G2Line { r0a0: u288 { limb0: 0x6e52232ec1b38ff612c0a492, limb1: 0x7839f69ef41e655aea744d38, - limb2: 0x20ab9a05d7ad1f52 + limb2: 0x20ab9a05d7ad1f52, }, r0a1: u288 { limb0: 0x8bcdd6166e6ee552371e4636, limb1: 0x1db9fb889b69e26b47964933, - limb2: 0x15c1b7b4dc794f53 + limb2: 0x15c1b7b4dc794f53, }, r1a0: u288 { limb0: 0xdb2e4167ad301668392630d4, limb1: 0x78d41ddd629aa47464b2954, - limb2: 0x122cf4989cd8fabc + limb2: 0x122cf4989cd8fabc, }, r1a1: u288 { limb0: 0xd20b6faf7e40f5ceda0b861d, limb1: 0xaa5af5b00dbdc5f5712dc3bc, - limb2: 0x447f15fd6766a8b - } + limb2: 0x447f15fd6766a8b, + }, }, G2Line { r0a0: u288 { limb0: 0x2cd350402831a212e938de81, limb1: 0xed9a7a80de5e1ec0f4b2c4db, - limb2: 0x2f04e512c778c8a3 + limb2: 0x2f04e512c778c8a3, }, r0a1: u288 { limb0: 0x8cd4823620230108e89a1e94, limb1: 0x2dc2d1e59111f47e7663cb36, - limb2: 0x8cbcece7fd20252 + limb2: 0x8cbcece7fd20252, }, r1a0: u288 { limb0: 0x6bbf0471a8988b16ca947450, limb1: 0xf7911a0d3db83d1956cc277b, - limb2: 0x7db791f07f93808 + limb2: 0x7db791f07f93808, }, r1a1: u288 { limb0: 0xd46f340dfdea0b0bef63e487, limb1: 0xbd7520f6a22899dfe8887b8b, - limb2: 0x10f9c9a88e425f37 - } + limb2: 0x10f9c9a88e425f37, + }, }, G2Line { r0a0: u288 { limb0: 0x6e52232ec1b38ff612c0a492, limb1: 0x7839f69ef41e655aea744d38, - limb2: 0x20ab9a05d7ad1f52 + limb2: 0x20ab9a05d7ad1f52, }, r0a1: u288 { limb0: 0x8bcdd6166e6ee552371e4636, limb1: 0x1db9fb889b69e26b47964933, - limb2: 0x15c1b7b4dc794f53 + limb2: 0x15c1b7b4dc794f53, }, r1a0: u288 { limb0: 0xdb2e4167ad301668392630d4, limb1: 0x78d41ddd629aa47464b2954, - limb2: 0x122cf4989cd8fabc + limb2: 0x122cf4989cd8fabc, }, r1a1: u288 { limb0: 0xd20b6faf7e40f5ceda0b861d, limb1: 0xaa5af5b00dbdc5f5712dc3bc, - limb2: 0x447f15fd6766a8b - } + limb2: 0x447f15fd6766a8b, + }, }, G2Line { r0a0: u288 { limb0: 0x6411c143a41cb76ad19b3fe9, limb1: 0xa0a964f97d57b7b7db78d2bb, - limb2: 0x2bf9110ff7c2fdb2 + limb2: 0x2bf9110ff7c2fdb2, }, r0a1: u288 { limb0: 0xe183b2e52b5137dcbd33bcb9, limb1: 0xa82fec8a97ce059d24aa3b35, - limb2: 0x19d11db2c569eece + limb2: 0x19d11db2c569eece, }, r1a0: u288 { limb0: 0xcce8df3877331ae709ba92e, limb1: 0x77be8fc4e226cee90a7f955a, - limb2: 0x1609775efcfbed68 + limb2: 0x1609775efcfbed68, }, r1a1: u288 { limb0: 0x39a8e985d0dad03eb162f6be, limb1: 0x6e34512435de4fa5a24bd9f1, - limb2: 0x48ac1c32967705c - } + limb2: 0x48ac1c32967705c, + }, }, G2Line { r0a0: u288 { limb0: 0x6411c143a41cb76ad19b3fe9, limb1: 0xa0a964f97d57b7b7db78d2bb, - limb2: 0x2bf9110ff7c2fdb2 + limb2: 0x2bf9110ff7c2fdb2, }, r0a1: u288 { limb0: 0xe183b2e52b5137dcbd33bcb9, limb1: 0xa82fec8a97ce059d24aa3b35, - limb2: 0x19d11db2c569eece + limb2: 0x19d11db2c569eece, }, r1a0: u288 { limb0: 0xcce8df3877331ae709ba92e, limb1: 0x77be8fc4e226cee90a7f955a, - limb2: 0x1609775efcfbed68 + limb2: 0x1609775efcfbed68, }, r1a1: u288 { limb0: 0x39a8e985d0dad03eb162f6be, limb1: 0x6e34512435de4fa5a24bd9f1, - limb2: 0x48ac1c32967705c - } + limb2: 0x48ac1c32967705c, + }, }, G2Line { r0a0: u288 { limb0: 0x278415dcf736521423d0298, limb1: 0x55397f4f2d8ce7f19b570e77, - limb2: 0x2a99b961769beca0 + limb2: 0x2a99b961769beca0, }, r0a1: u288 { limb0: 0xe29c48b2596ae6288dbb21a1, limb1: 0x9588bace99c7dd5849e0b5de, - limb2: 0x266a6e7880114997 + limb2: 0x266a6e7880114997, }, r1a0: u288 { limb0: 0x67864f025c9d20172d805f80, limb1: 0xf9b4700f91ec6d99a9fbabcc, - limb2: 0x72e5c24a77ea6eb + limb2: 0x72e5c24a77ea6eb, }, r1a1: u288 { limb0: 0x71a14ab9325b2c9548564f04, limb1: 0xc2155e899962d27d2aa8947e, - limb2: 0x60eb66c4c422714 - } + limb2: 0x60eb66c4c422714, + }, }, G2Line { r0a0: u288 { limb0: 0x278415dcf736521423d0298, limb1: 0x55397f4f2d8ce7f19b570e77, - limb2: 0x2a99b961769beca0 + limb2: 0x2a99b961769beca0, }, r0a1: u288 { limb0: 0xe29c48b2596ae6288dbb21a1, limb1: 0x9588bace99c7dd5849e0b5de, - limb2: 0x266a6e7880114997 + limb2: 0x266a6e7880114997, }, r1a0: u288 { limb0: 0x67864f025c9d20172d805f80, limb1: 0xf9b4700f91ec6d99a9fbabcc, - limb2: 0x72e5c24a77ea6eb + limb2: 0x72e5c24a77ea6eb, }, r1a1: u288 { limb0: 0x71a14ab9325b2c9548564f04, limb1: 0xc2155e899962d27d2aa8947e, - limb2: 0x60eb66c4c422714 - } + limb2: 0x60eb66c4c422714, + }, }, G2Line { r0a0: u288 { limb0: 0x14d6ff22b6658a773bf98a76, limb1: 0x68581150a1ef5c63bc535636, - limb2: 0x2e657f4210ad1c7f + limb2: 0x2e657f4210ad1c7f, }, r0a1: u288 { limb0: 0x7b86a06e863df1f55189a452, limb1: 0xebbdb11f75deaae91545eb38, - limb2: 0x226b31e0c2e0506a + limb2: 0x226b31e0c2e0506a, }, r1a0: u288 { limb0: 0x68adcad192fe0de39e37b0a9, limb1: 0xcd9ca0c35ee7a0d1b7f70eb0, - limb2: 0x1c98b0667298ccde + limb2: 0x1c98b0667298ccde, }, r1a1: u288 { limb0: 0x803a0d1125f5fa7b64acaedc, limb1: 0xf2f903ea7789b90ca1596a30, - limb2: 0x1864a718bd9a7a91 - } + limb2: 0x1864a718bd9a7a91, + }, }, G2Line { r0a0: u288 { limb0: 0x64f25c9b7128e749ef25f105, limb1: 0xa5df6656e0fe3aa5e76219c, - limb2: 0x10eefd3c4ed405d9 + limb2: 0x10eefd3c4ed405d9, }, r0a1: u288 { limb0: 0x5cfdf017ce0e5290a9af8685, limb1: 0xfef7491b535ef1df815f8e9, - limb2: 0x14736e677cde8946 + limb2: 0x14736e677cde8946, }, r1a0: u288 { limb0: 0x105ce8ec6221751c0a741801, limb1: 0xc8a91f64511eb8ec67bd0a5e, - limb2: 0x24b72e0bef64ca50 + limb2: 0x24b72e0bef64ca50, }, r1a1: u288 { limb0: 0x7b6d0c7da1f527d186f153f4, limb1: 0x3af4476ab8b4bf6bfaa284c4, - limb2: 0x14fd84d626179073 - } + limb2: 0x14fd84d626179073, + }, }, G2Line { r0a0: u288 { limb0: 0x14d6ff22b6658a773bf98a76, limb1: 0x68581150a1ef5c63bc535636, - limb2: 0x2e657f4210ad1c7f + limb2: 0x2e657f4210ad1c7f, }, r0a1: u288 { limb0: 0x7b86a06e863df1f55189a452, limb1: 0xebbdb11f75deaae91545eb38, - limb2: 0x226b31e0c2e0506a + limb2: 0x226b31e0c2e0506a, }, r1a0: u288 { limb0: 0x68adcad192fe0de39e37b0a9, limb1: 0xcd9ca0c35ee7a0d1b7f70eb0, - limb2: 0x1c98b0667298ccde + limb2: 0x1c98b0667298ccde, }, r1a1: u288 { limb0: 0x803a0d1125f5fa7b64acaedc, limb1: 0xf2f903ea7789b90ca1596a30, - limb2: 0x1864a718bd9a7a91 - } + limb2: 0x1864a718bd9a7a91, + }, }, G2Line { r0a0: u288 { limb0: 0x64f25c9b7128e749ef25f105, limb1: 0xa5df6656e0fe3aa5e76219c, - limb2: 0x10eefd3c4ed405d9 + limb2: 0x10eefd3c4ed405d9, }, r0a1: u288 { limb0: 0x5cfdf017ce0e5290a9af8685, limb1: 0xfef7491b535ef1df815f8e9, - limb2: 0x14736e677cde8946 + limb2: 0x14736e677cde8946, }, r1a0: u288 { limb0: 0x105ce8ec6221751c0a741801, limb1: 0xc8a91f64511eb8ec67bd0a5e, - limb2: 0x24b72e0bef64ca50 + limb2: 0x24b72e0bef64ca50, }, r1a1: u288 { limb0: 0x7b6d0c7da1f527d186f153f4, limb1: 0x3af4476ab8b4bf6bfaa284c4, - limb2: 0x14fd84d626179073 - } + limb2: 0x14fd84d626179073, + }, }, G2Line { r0a0: u288 { limb0: 0x95531ad3030b96d815ffc130, limb1: 0x3e57484f7c4a6080aeeb5389, - limb2: 0x258e31db306db347 + limb2: 0x258e31db306db347, }, r0a1: u288 { limb0: 0x9083b01855e312eac6d42b37, limb1: 0x2345be89c9e05ddcaca68d44, - limb2: 0x23c9dd3674d542b2 + limb2: 0x23c9dd3674d542b2, }, r1a0: u288 { limb0: 0xc79418d3ebbe74ae9a0dfa4, limb1: 0x14b66f0d16a1c604533cf0d6, - limb2: 0x3acddc2145f3eec + limb2: 0x3acddc2145f3eec, }, r1a1: u288 { limb0: 0x1288e3b3be0ac21711e0f760, limb1: 0xd0bc22f88b8051ffc112590a, - limb2: 0xdd5bdbb302158c1 - } + limb2: 0xdd5bdbb302158c1, + }, }, G2Line { r0a0: u288 { limb0: 0xdf325bffc4f75bde16339c21, limb1: 0x59e1b11a922fd25b46da34ad, - limb2: 0x1df431a8b518c319 + limb2: 0x1df431a8b518c319, }, r0a1: u288 { limb0: 0xa34e525fbce9d573f316a8e1, limb1: 0x5715c100bd0d4bc47e1199aa, - limb2: 0x111fd4d9fe3f4aa8 + limb2: 0x111fd4d9fe3f4aa8, }, r1a0: u288 { limb0: 0x4ddeb02cca8556d49bb4d13b, limb1: 0x56b8e64426fbb6983377fe9f, - limb2: 0x166b7c9a7bb6eb74 + limb2: 0x166b7c9a7bb6eb74, }, r1a1: u288 { limb0: 0x8ef5c3ef69254a68b5ffcf4d, limb1: 0xd6eaa92d6814c39953c833ca, - limb2: 0x8cda70783ba41fc - } + limb2: 0x8cda70783ba41fc, + }, }, G2Line { r0a0: u288 { limb0: 0x95531ad3030b96d815ffc130, limb1: 0x3e57484f7c4a6080aeeb5389, - limb2: 0x258e31db306db347 + limb2: 0x258e31db306db347, }, r0a1: u288 { limb0: 0x9083b01855e312eac6d42b37, limb1: 0x2345be89c9e05ddcaca68d44, - limb2: 0x23c9dd3674d542b2 + limb2: 0x23c9dd3674d542b2, }, r1a0: u288 { limb0: 0xc79418d3ebbe74ae9a0dfa4, limb1: 0x14b66f0d16a1c604533cf0d6, - limb2: 0x3acddc2145f3eec + limb2: 0x3acddc2145f3eec, }, r1a1: u288 { limb0: 0x1288e3b3be0ac21711e0f760, limb1: 0xd0bc22f88b8051ffc112590a, - limb2: 0xdd5bdbb302158c1 - } + limb2: 0xdd5bdbb302158c1, + }, }, G2Line { r0a0: u288 { limb0: 0xdf325bffc4f75bde16339c21, limb1: 0x59e1b11a922fd25b46da34ad, - limb2: 0x1df431a8b518c319 + limb2: 0x1df431a8b518c319, }, r0a1: u288 { limb0: 0xa34e525fbce9d573f316a8e1, limb1: 0x5715c100bd0d4bc47e1199aa, - limb2: 0x111fd4d9fe3f4aa8 + limb2: 0x111fd4d9fe3f4aa8, }, r1a0: u288 { limb0: 0x4ddeb02cca8556d49bb4d13b, limb1: 0x56b8e64426fbb6983377fe9f, - limb2: 0x166b7c9a7bb6eb74 + limb2: 0x166b7c9a7bb6eb74, }, r1a1: u288 { limb0: 0x8ef5c3ef69254a68b5ffcf4d, limb1: 0xd6eaa92d6814c39953c833ca, - limb2: 0x8cda70783ba41fc - } + limb2: 0x8cda70783ba41fc, + }, }, G2Line { r0a0: u288 { limb0: 0x4e44a9b72f424336295cd2d4, limb1: 0xe43008eebda999077f586dd0, - limb2: 0x2833eade2a41fefe + limb2: 0x2833eade2a41fefe, }, r0a1: u288 { limb0: 0xa23faf119ba1e712eaa2ad9d, limb1: 0xffd42ca54f7c46f0e5dd7375, - limb2: 0x14f3d66f92191f3d + limb2: 0x14f3d66f92191f3d, }, r1a0: u288 { limb0: 0xde664b9a5bb68f83b166d13f, limb1: 0x504eada56a1604828ac250aa, - limb2: 0x1a59ac93ced3882 + limb2: 0x1a59ac93ced3882, }, r1a1: u288 { limb0: 0x57e2ca35f761f0a43dca1cf5, limb1: 0x9d1dae4b976d26ff058b20f6, - limb2: 0x27083f11525f853e - } + limb2: 0x27083f11525f853e, + }, }, G2Line { r0a0: u288 { limb0: 0x4e44a9b72f424336295cd2d4, limb1: 0xe43008eebda999077f586dd0, - limb2: 0x2833eade2a41fefe + limb2: 0x2833eade2a41fefe, }, r0a1: u288 { limb0: 0xa23faf119ba1e712eaa2ad9d, limb1: 0xffd42ca54f7c46f0e5dd7375, - limb2: 0x14f3d66f92191f3d + limb2: 0x14f3d66f92191f3d, }, r1a0: u288 { limb0: 0xde664b9a5bb68f83b166d13f, limb1: 0x504eada56a1604828ac250aa, - limb2: 0x1a59ac93ced3882 + limb2: 0x1a59ac93ced3882, }, r1a1: u288 { limb0: 0x57e2ca35f761f0a43dca1cf5, limb1: 0x9d1dae4b976d26ff058b20f6, - limb2: 0x27083f11525f853e - } + limb2: 0x27083f11525f853e, + }, }, G2Line { r0a0: u288 { limb0: 0xacffdc27d3923f5779c9f561, limb1: 0x6acc5c81d640b06edf8669e7, - limb2: 0x23d3ecf6cd5ae000 + limb2: 0x23d3ecf6cd5ae000, }, r0a1: u288 { limb0: 0xc576257e34519bcbfe12a0e5, limb1: 0x6dfda810453128aa1b9ff5f3, - limb2: 0x272b3f6cde8f6f3d + limb2: 0x272b3f6cde8f6f3d, }, r1a0: u288 { limb0: 0x3314182b61b3a1153d51085c, limb1: 0x78d944875a2068000dc27e73, - limb2: 0x2184b9ce45b284ff + limb2: 0x2184b9ce45b284ff, }, r1a1: u288 { limb0: 0xa3831da9efe63936fe510a88, limb1: 0xd853b46a2f7648744b5bbcea, - limb2: 0x2437a9f7f5559f66 - } + limb2: 0x2437a9f7f5559f66, + }, }, G2Line { r0a0: u288 { limb0: 0xacffdc27d3923f5779c9f561, limb1: 0x6acc5c81d640b06edf8669e7, - limb2: 0x23d3ecf6cd5ae000 + limb2: 0x23d3ecf6cd5ae000, }, r0a1: u288 { limb0: 0xc576257e34519bcbfe12a0e5, limb1: 0x6dfda810453128aa1b9ff5f3, - limb2: 0x272b3f6cde8f6f3d + limb2: 0x272b3f6cde8f6f3d, }, r1a0: u288 { limb0: 0x3314182b61b3a1153d51085c, limb1: 0x78d944875a2068000dc27e73, - limb2: 0x2184b9ce45b284ff + limb2: 0x2184b9ce45b284ff, }, r1a1: u288 { limb0: 0xa3831da9efe63936fe510a88, limb1: 0xd853b46a2f7648744b5bbcea, - limb2: 0x2437a9f7f5559f66 - } + limb2: 0x2437a9f7f5559f66, + }, }, G2Line { r0a0: u288 { limb0: 0x373d78cacc3a213ab7a5dc77, limb1: 0x2c4c9295f1b3e767a376d95a, - limb2: 0x6fa8606535c131 + limb2: 0x6fa8606535c131, }, r0a1: u288 { limb0: 0x7a037d066e3015f12b9bb899, limb1: 0x2df06eb9be7dd1d34dd0ce6e, - limb2: 0x2bfecfb6faa40681 + limb2: 0x2bfecfb6faa40681, }, r1a0: u288 { limb0: 0x767f84f556bc0e82acc4c2fc, limb1: 0xdc285959286fe86c69fd09c6, - limb2: 0xddf35d64e052591 + limb2: 0xddf35d64e052591, }, r1a1: u288 { limb0: 0xba3bf8a2a744c4be716d10a3, limb1: 0x704558fde5a2dd4610092a58, - limb2: 0x24381fac38d1c2f4 - } + limb2: 0x24381fac38d1c2f4, + }, }, G2Line { r0a0: u288 { limb0: 0x8bfb882fe3e87bf7f06a534, limb1: 0x60e74ba16f35b38925253fa1, - limb2: 0x105952dd8d3cb0fb + limb2: 0x105952dd8d3cb0fb, }, r0a1: u288 { limb0: 0x86a65a5ae488b0d28900cf53, limb1: 0x4fca5c6edee392882c778363, - limb2: 0x160b4e8a7969f551 + limb2: 0x160b4e8a7969f551, }, r1a0: u288 { limb0: 0x7b126c951fa4afc0c2ebda0c, limb1: 0x85834d2eff18413563bf9144, - limb2: 0x8f905b15b3b2add + limb2: 0x8f905b15b3b2add, }, r1a1: u288 { limb0: 0xa595d6853747f798b16d2eca, limb1: 0x42d7941f6581b069059ed186, - limb2: 0x2eb502b9a9b7169b - } + limb2: 0x2eb502b9a9b7169b, + }, }, G2Line { r0a0: u288 { limb0: 0x373d78cacc3a213ab7a5dc77, limb1: 0x2c4c9295f1b3e767a376d95a, - limb2: 0x6fa8606535c131 + limb2: 0x6fa8606535c131, }, r0a1: u288 { limb0: 0x7a037d066e3015f12b9bb899, limb1: 0x2df06eb9be7dd1d34dd0ce6e, - limb2: 0x2bfecfb6faa40681 + limb2: 0x2bfecfb6faa40681, }, r1a0: u288 { limb0: 0x767f84f556bc0e82acc4c2fc, limb1: 0xdc285959286fe86c69fd09c6, - limb2: 0xddf35d64e052591 + limb2: 0xddf35d64e052591, }, r1a1: u288 { limb0: 0xba3bf8a2a744c4be716d10a3, limb1: 0x704558fde5a2dd4610092a58, - limb2: 0x24381fac38d1c2f4 - } + limb2: 0x24381fac38d1c2f4, + }, }, G2Line { r0a0: u288 { limb0: 0x8bfb882fe3e87bf7f06a534, limb1: 0x60e74ba16f35b38925253fa1, - limb2: 0x105952dd8d3cb0fb + limb2: 0x105952dd8d3cb0fb, }, r0a1: u288 { limb0: 0x86a65a5ae488b0d28900cf53, limb1: 0x4fca5c6edee392882c778363, - limb2: 0x160b4e8a7969f551 + limb2: 0x160b4e8a7969f551, }, r1a0: u288 { limb0: 0x7b126c951fa4afc0c2ebda0c, limb1: 0x85834d2eff18413563bf9144, - limb2: 0x8f905b15b3b2add + limb2: 0x8f905b15b3b2add, }, r1a1: u288 { limb0: 0xa595d6853747f798b16d2eca, limb1: 0x42d7941f6581b069059ed186, - limb2: 0x2eb502b9a9b7169b - } + limb2: 0x2eb502b9a9b7169b, + }, }, G2Line { r0a0: u288 { limb0: 0xe6dbfdaa4aaed35ae46b7e36, limb1: 0x954a32448a2c26964f83e2ff, - limb2: 0x23fe11d86de21bf3 + limb2: 0x23fe11d86de21bf3, }, r0a1: u288 { limb0: 0x390ec78bb0c63fea5a5112ca, limb1: 0x5eaba420296488bd9ad78ba4, - limb2: 0x179a2336d20f9552 + limb2: 0x179a2336d20f9552, }, r1a0: u288 { limb0: 0x451d421ca57949d9274eaee9, limb1: 0xd85aee99f3f7b33bdddf1b37, - limb2: 0x1b83c0b80546357d + limb2: 0x1b83c0b80546357d, }, r1a1: u288 { limb0: 0x94c9276300f21460bd558c41, limb1: 0x89efceec3bb694f4c41487d3, - limb2: 0x44375dd912e436b - } + limb2: 0x44375dd912e436b, + }, }, G2Line { r0a0: u288 { limb0: 0xe6dbfdaa4aaed35ae46b7e36, limb1: 0x954a32448a2c26964f83e2ff, - limb2: 0x23fe11d86de21bf3 + limb2: 0x23fe11d86de21bf3, }, r0a1: u288 { limb0: 0x390ec78bb0c63fea5a5112ca, limb1: 0x5eaba420296488bd9ad78ba4, - limb2: 0x179a2336d20f9552 + limb2: 0x179a2336d20f9552, }, r1a0: u288 { limb0: 0x451d421ca57949d9274eaee9, limb1: 0xd85aee99f3f7b33bdddf1b37, - limb2: 0x1b83c0b80546357d + limb2: 0x1b83c0b80546357d, }, r1a1: u288 { limb0: 0x94c9276300f21460bd558c41, limb1: 0x89efceec3bb694f4c41487d3, - limb2: 0x44375dd912e436b - } + limb2: 0x44375dd912e436b, + }, }, G2Line { r0a0: u288 { limb0: 0x90c98d8d59246f7ac71cbc7, limb1: 0x603dd0e0dd09fb8ad13dbbb, - limb2: 0x1d068d315771a3c1 + limb2: 0x1d068d315771a3c1, }, r0a1: u288 { limb0: 0x2bb3f34aa59b0e052ec56b80, limb1: 0xb239e8dca49685c638327d9e, - limb2: 0x11e46c1f8395f739 + limb2: 0x11e46c1f8395f739, }, r1a0: u288 { limb0: 0x2f114895453b5cf23b04678c, limb1: 0x99cdbda7fef0644b67d48e85, - limb2: 0x6d8bc66cf89ee21 + limb2: 0x6d8bc66cf89ee21, }, r1a1: u288 { limb0: 0x903c6ead9a344fceaab2dd24, limb1: 0x97063cfc1096d628d7979e2c, - limb2: 0x49f8c496be2ccd4 - } + limb2: 0x49f8c496be2ccd4, + }, }, G2Line { r0a0: u288 { limb0: 0x90c98d8d59246f7ac71cbc7, limb1: 0x603dd0e0dd09fb8ad13dbbb, - limb2: 0x1d068d315771a3c1 + limb2: 0x1d068d315771a3c1, }, r0a1: u288 { limb0: 0x2bb3f34aa59b0e052ec56b80, limb1: 0xb239e8dca49685c638327d9e, - limb2: 0x11e46c1f8395f739 + limb2: 0x11e46c1f8395f739, }, r1a0: u288 { limb0: 0x2f114895453b5cf23b04678c, limb1: 0x99cdbda7fef0644b67d48e85, - limb2: 0x6d8bc66cf89ee21 + limb2: 0x6d8bc66cf89ee21, }, r1a1: u288 { limb0: 0x903c6ead9a344fceaab2dd24, limb1: 0x97063cfc1096d628d7979e2c, - limb2: 0x49f8c496be2ccd4 - } + limb2: 0x49f8c496be2ccd4, + }, }, G2Line { r0a0: u288 { limb0: 0x3778e71e52e9cd8a2efaae30, limb1: 0x1510f4be21ae0d4ce4e9c407, - limb2: 0x87f2c39614ed514 + limb2: 0x87f2c39614ed514, }, r0a1: u288 { limb0: 0x9425b553c85be9f8eab4827e, limb1: 0xd75d6f1a6013f310d81e5f6e, - limb2: 0x188c2e53470ad6dc + limb2: 0x188c2e53470ad6dc, }, r1a0: u288 { limb0: 0xd6715a5f7fb9d3f64160e303, limb1: 0xfb0e7cb89f7e8c3908e859f9, - limb2: 0x84f3df13ca3d149 + limb2: 0x84f3df13ca3d149, }, r1a1: u288 { limb0: 0xea46b6a8dbd35d5c7098c283, limb1: 0xff4f98d6447bac1d056ea3b3, - limb2: 0xd6d18364b06a02c - } + limb2: 0xd6d18364b06a02c, + }, }, G2Line { r0a0: u288 { limb0: 0x3778e71e52e9cd8a2efaae30, limb1: 0x1510f4be21ae0d4ce4e9c407, - limb2: 0x87f2c39614ed514 + limb2: 0x87f2c39614ed514, }, r0a1: u288 { limb0: 0x9425b553c85be9f8eab4827e, limb1: 0xd75d6f1a6013f310d81e5f6e, - limb2: 0x188c2e53470ad6dc + limb2: 0x188c2e53470ad6dc, }, r1a0: u288 { limb0: 0xd6715a5f7fb9d3f64160e303, limb1: 0xfb0e7cb89f7e8c3908e859f9, - limb2: 0x84f3df13ca3d149 + limb2: 0x84f3df13ca3d149, }, r1a1: u288 { limb0: 0xea46b6a8dbd35d5c7098c283, limb1: 0xff4f98d6447bac1d056ea3b3, - limb2: 0xd6d18364b06a02c - } + limb2: 0xd6d18364b06a02c, + }, }, G2Line { r0a0: u288 { limb0: 0x6f6d3e211d26957a67f263c, limb1: 0x8da5874752e96d222d666c7e, - limb2: 0x266336ff63f6cae + limb2: 0x266336ff63f6cae, }, r0a1: u288 { limb0: 0xb3b8c3099016c6a6814524b4, limb1: 0x4b7c12934d9309f8cb6fe11, - limb2: 0x24a297917e6d2286 + limb2: 0x24a297917e6d2286, }, r1a0: u288 { limb0: 0x29f2516e3c81dc23beb0b4a5, limb1: 0x66af1f7514ccca035bf4bd08, - limb2: 0x1c93fbb41c5a080f + limb2: 0x1c93fbb41c5a080f, }, r1a1: u288 { limb0: 0x1d9a69028cdcd85247c47085, limb1: 0xca54eb95e7fb935d08e1e49, - limb2: 0x25c558909e8ce210 - } + limb2: 0x25c558909e8ce210, + }, }, G2Line { r0a0: u288 { limb0: 0x6f6d3e211d26957a67f263c, limb1: 0x8da5874752e96d222d666c7e, - limb2: 0x266336ff63f6cae + limb2: 0x266336ff63f6cae, }, r0a1: u288 { limb0: 0xb3b8c3099016c6a6814524b4, limb1: 0x4b7c12934d9309f8cb6fe11, - limb2: 0x24a297917e6d2286 + limb2: 0x24a297917e6d2286, }, r1a0: u288 { limb0: 0x29f2516e3c81dc23beb0b4a5, limb1: 0x66af1f7514ccca035bf4bd08, - limb2: 0x1c93fbb41c5a080f + limb2: 0x1c93fbb41c5a080f, }, r1a1: u288 { limb0: 0x1d9a69028cdcd85247c47085, limb1: 0xca54eb95e7fb935d08e1e49, - limb2: 0x25c558909e8ce210 - } + limb2: 0x25c558909e8ce210, + }, }, G2Line { r0a0: u288 { limb0: 0xa2877a17d6822fdbec0a419a, limb1: 0xff617440635bbeae917acf03, - limb2: 0x302aa8c0c25edf9c + limb2: 0x302aa8c0c25edf9c, }, r0a1: u288 { limb0: 0xa0509fbe6fedb1a1d6bc0fa0, limb1: 0xb6f674c844db3046d0228a67, - limb2: 0x275d1093fe789296 + limb2: 0x275d1093fe789296, }, r1a0: u288 { limb0: 0x252b1469a10bf6c0e8441f2e, limb1: 0xe3f275f7dc0d10062fa24067, - limb2: 0x5938d22b9b86d1f + limb2: 0x5938d22b9b86d1f, }, r1a1: u288 { limb0: 0xfb5f636c62c36f78c5062f30, limb1: 0x150a99ab14007914780e49f1, - limb2: 0x9e0bccb105b14f4 - } + limb2: 0x9e0bccb105b14f4, + }, }, G2Line { r0a0: u288 { limb0: 0xa2877a17d6822fdbec0a419a, limb1: 0xff617440635bbeae917acf03, - limb2: 0x302aa8c0c25edf9c + limb2: 0x302aa8c0c25edf9c, }, r0a1: u288 { limb0: 0xa0509fbe6fedb1a1d6bc0fa0, limb1: 0xb6f674c844db3046d0228a67, - limb2: 0x275d1093fe789296 + limb2: 0x275d1093fe789296, }, r1a0: u288 { limb0: 0x252b1469a10bf6c0e8441f2e, limb1: 0xe3f275f7dc0d10062fa24067, - limb2: 0x5938d22b9b86d1f + limb2: 0x5938d22b9b86d1f, }, r1a1: u288 { limb0: 0xfb5f636c62c36f78c5062f30, limb1: 0x150a99ab14007914780e49f1, - limb2: 0x9e0bccb105b14f4 - } + limb2: 0x9e0bccb105b14f4, + }, }, G2Line { r0a0: u288 { limb0: 0xc5eaebad6bd5beb92e09aade, limb1: 0xcbd48c7eb96beac635eddee1, - limb2: 0x6b94aae5ea30073 + limb2: 0x6b94aae5ea30073, }, r0a1: u288 { limb0: 0x882af1093bd174803a58f378, limb1: 0x9ec588e092fc5b155ebeec2e, - limb2: 0x1ca1957381eeeaf6 + limb2: 0x1ca1957381eeeaf6, }, r1a0: u288 { limb0: 0x85f75492a545f601ebdaeca3, limb1: 0xb76104e8575174401e8c88d3, - limb2: 0x2f386789cd7045e0 + limb2: 0x2f386789cd7045e0, }, r1a1: u288 { limb0: 0x21695ebadab2d91e4fdb6459, limb1: 0x76f7be32767094c83713ad27, - limb2: 0x11f63fe7a6d180b6 - } + limb2: 0x11f63fe7a6d180b6, + }, }, G2Line { r0a0: u288 { limb0: 0xbff947921ed15906d7d1a15d, limb1: 0x801c1b9c79563f2e5bce21e1, - limb2: 0x956f2ac3e4fe88a + limb2: 0x956f2ac3e4fe88a, }, r0a1: u288 { limb0: 0x5b2798f11186aa7db5373cdd, limb1: 0xa5023b2f0c8bab4ec100bf18, - limb2: 0x13a0cace49d5eade + limb2: 0x13a0cace49d5eade, }, r1a0: u288 { limb0: 0x9b0527939d6c45e657273a85, limb1: 0x76cb75e8dc534ecd7e917521, - limb2: 0x12e40c7aed42af34 + limb2: 0x12e40c7aed42af34, }, r1a1: u288 { limb0: 0x77da98dd73c9603932b79af4, limb1: 0xfaac3a02aea7867b5226fa70, - limb2: 0x8e2f40461279814 - } + limb2: 0x8e2f40461279814, + }, }, G2Line { r0a0: u288 { limb0: 0xc5eaebad6bd5beb92e09aade, limb1: 0xcbd48c7eb96beac635eddee1, - limb2: 0x6b94aae5ea30073 + limb2: 0x6b94aae5ea30073, }, r0a1: u288 { limb0: 0x882af1093bd174803a58f378, limb1: 0x9ec588e092fc5b155ebeec2e, - limb2: 0x1ca1957381eeeaf6 + limb2: 0x1ca1957381eeeaf6, }, r1a0: u288 { limb0: 0x85f75492a545f601ebdaeca3, limb1: 0xb76104e8575174401e8c88d3, - limb2: 0x2f386789cd7045e0 + limb2: 0x2f386789cd7045e0, }, r1a1: u288 { limb0: 0x21695ebadab2d91e4fdb6459, limb1: 0x76f7be32767094c83713ad27, - limb2: 0x11f63fe7a6d180b6 - } + limb2: 0x11f63fe7a6d180b6, + }, }, G2Line { r0a0: u288 { limb0: 0xbff947921ed15906d7d1a15d, limb1: 0x801c1b9c79563f2e5bce21e1, - limb2: 0x956f2ac3e4fe88a + limb2: 0x956f2ac3e4fe88a, }, r0a1: u288 { limb0: 0x5b2798f11186aa7db5373cdd, limb1: 0xa5023b2f0c8bab4ec100bf18, - limb2: 0x13a0cace49d5eade + limb2: 0x13a0cace49d5eade, }, r1a0: u288 { limb0: 0x9b0527939d6c45e657273a85, limb1: 0x76cb75e8dc534ecd7e917521, - limb2: 0x12e40c7aed42af34 + limb2: 0x12e40c7aed42af34, }, r1a1: u288 { limb0: 0x77da98dd73c9603932b79af4, limb1: 0xfaac3a02aea7867b5226fa70, - limb2: 0x8e2f40461279814 - } + limb2: 0x8e2f40461279814, + }, }, G2Line { r0a0: u288 { limb0: 0xac907bc1f092e5e0913e845c, limb1: 0x5964ee4cf6c9a38642dd0517, - limb2: 0x1719e7b29682420d + limb2: 0x1719e7b29682420d, }, r0a1: u288 { limb0: 0x74d7d423222f8b95733071c5, limb1: 0x86f3c3861a5f4d9c59281db1, - limb2: 0x2e4ed8b13095cb38 + limb2: 0x2e4ed8b13095cb38, }, r1a0: u288 { limb0: 0x4967b22d6ffa060c3d0f2c5f, limb1: 0x48dc68663059b322a3bdeaa4, - limb2: 0x166e533bd057aeaf + limb2: 0x166e533bd057aeaf, }, r1a1: u288 { limb0: 0xcdd096c0af346e40e770fa2b, limb1: 0x6a8d2b8bc4369ae60bcd1a63, - limb2: 0x2fd98e44a782d9d9 - } + limb2: 0x2fd98e44a782d9d9, + }, }, G2Line { r0a0: u288 { limb0: 0xac907bc1f092e5e0913e845c, limb1: 0x5964ee4cf6c9a38642dd0517, - limb2: 0x1719e7b29682420d + limb2: 0x1719e7b29682420d, }, r0a1: u288 { limb0: 0x74d7d423222f8b95733071c5, limb1: 0x86f3c3861a5f4d9c59281db1, - limb2: 0x2e4ed8b13095cb38 + limb2: 0x2e4ed8b13095cb38, }, r1a0: u288 { limb0: 0x4967b22d6ffa060c3d0f2c5f, limb1: 0x48dc68663059b322a3bdeaa4, - limb2: 0x166e533bd057aeaf + limb2: 0x166e533bd057aeaf, }, r1a1: u288 { limb0: 0xcdd096c0af346e40e770fa2b, limb1: 0x6a8d2b8bc4369ae60bcd1a63, - limb2: 0x2fd98e44a782d9d9 - } + limb2: 0x2fd98e44a782d9d9, + }, }, G2Line { r0a0: u288 { limb0: 0xcae2854ff6a3816300716e11, limb1: 0x24542ac4d609ab52f57a1cf6, - limb2: 0x130bee99db1c1a6 + limb2: 0x130bee99db1c1a6, }, r0a1: u288 { limb0: 0x7a097fcb199569eb2020a518, limb1: 0xc59e26079797276de74d2710, - limb2: 0x205de761540e71f0 + limb2: 0x205de761540e71f0, }, r1a0: u288 { limb0: 0xaa1ad54be641d1006740583, limb1: 0x3b2a9d3fc0122931ae274736, - limb2: 0xbe53b90a6b0a84e + limb2: 0xbe53b90a6b0a84e, }, r1a1: u288 { limb0: 0xd74fcd1e68f4e37eb864c664, limb1: 0x148c5cb80d01f6a428be16e8, - limb2: 0x12f83a1b869c2d94 - } + limb2: 0x12f83a1b869c2d94, + }, }, G2Line { r0a0: u288 { limb0: 0xcae2854ff6a3816300716e11, limb1: 0x24542ac4d609ab52f57a1cf6, - limb2: 0x130bee99db1c1a6 + limb2: 0x130bee99db1c1a6, }, r0a1: u288 { limb0: 0x7a097fcb199569eb2020a518, limb1: 0xc59e26079797276de74d2710, - limb2: 0x205de761540e71f0 + limb2: 0x205de761540e71f0, }, r1a0: u288 { limb0: 0xaa1ad54be641d1006740583, limb1: 0x3b2a9d3fc0122931ae274736, - limb2: 0xbe53b90a6b0a84e + limb2: 0xbe53b90a6b0a84e, }, r1a1: u288 { limb0: 0xd74fcd1e68f4e37eb864c664, limb1: 0x148c5cb80d01f6a428be16e8, - limb2: 0x12f83a1b869c2d94 - } + limb2: 0x12f83a1b869c2d94, + }, }, G2Line { r0a0: u288 { limb0: 0xc45d014325b07ba0dd2d4f10, limb1: 0x361ef3f040192c17167b900c, - limb2: 0xf09fdc89e100ba7 + limb2: 0xf09fdc89e100ba7, }, r0a1: u288 { limb0: 0x19de05e48711d6d787de58a5, limb1: 0x52290b2ee0a6dae953c249cf, - limb2: 0xf136a05d822f41d + limb2: 0xf136a05d822f41d, }, r1a0: u288 { limb0: 0x17b39f9e05d9816d69d3a613, limb1: 0x643e9006b7b05faa90e6a8, - limb2: 0x20e7d1e6a4c0547c + limb2: 0x20e7d1e6a4c0547c, }, r1a1: u288 { limb0: 0x2fee0ea45053ae644c4e684f, limb1: 0xbb2e7afad484141b0be42479, - limb2: 0x187df546a9ccfb69 - } + limb2: 0x187df546a9ccfb69, + }, }, G2Line { r0a0: u288 { limb0: 0xada5bca8b46adc829ca20edf, limb1: 0xa9cc28a9116efbf02609e3f2, - limb2: 0xaedc7dd73b536f3 + limb2: 0xaedc7dd73b536f3, }, r0a1: u288 { limb0: 0xab9510ead48ad195261ddc88, limb1: 0xc202a7ba9dfce6d86664504e, - limb2: 0x2ce423186cc9b5a9 + limb2: 0x2ce423186cc9b5a9, }, r1a0: u288 { limb0: 0x8f2b148f9ab7585ea1a6c347, limb1: 0x508884251415af912a5d0a42, - limb2: 0x1dbbf26d101af06d + limb2: 0x1dbbf26d101af06d, }, r1a1: u288 { limb0: 0x68b9f7cab6f91619604f8061, limb1: 0xd94ab22c8f954516f2d2de81, - limb2: 0x16aa4a653b525fb1 - } + limb2: 0x16aa4a653b525fb1, + }, }, G2Line { r0a0: u288 { limb0: 0xc45d014325b07ba0dd2d4f10, limb1: 0x361ef3f040192c17167b900c, - limb2: 0xf09fdc89e100ba7 + limb2: 0xf09fdc89e100ba7, }, r0a1: u288 { limb0: 0x19de05e48711d6d787de58a5, limb1: 0x52290b2ee0a6dae953c249cf, - limb2: 0xf136a05d822f41d + limb2: 0xf136a05d822f41d, }, r1a0: u288 { limb0: 0x17b39f9e05d9816d69d3a613, limb1: 0x643e9006b7b05faa90e6a8, - limb2: 0x20e7d1e6a4c0547c + limb2: 0x20e7d1e6a4c0547c, }, r1a1: u288 { limb0: 0x2fee0ea45053ae644c4e684f, limb1: 0xbb2e7afad484141b0be42479, - limb2: 0x187df546a9ccfb69 - } + limb2: 0x187df546a9ccfb69, + }, }, G2Line { r0a0: u288 { limb0: 0xada5bca8b46adc829ca20edf, limb1: 0xa9cc28a9116efbf02609e3f2, - limb2: 0xaedc7dd73b536f3 + limb2: 0xaedc7dd73b536f3, }, r0a1: u288 { limb0: 0xab9510ead48ad195261ddc88, limb1: 0xc202a7ba9dfce6d86664504e, - limb2: 0x2ce423186cc9b5a9 + limb2: 0x2ce423186cc9b5a9, }, r1a0: u288 { limb0: 0x8f2b148f9ab7585ea1a6c347, limb1: 0x508884251415af912a5d0a42, - limb2: 0x1dbbf26d101af06d + limb2: 0x1dbbf26d101af06d, }, r1a1: u288 { limb0: 0x68b9f7cab6f91619604f8061, limb1: 0xd94ab22c8f954516f2d2de81, - limb2: 0x16aa4a653b525fb1 - } + limb2: 0x16aa4a653b525fb1, + }, }, G2Line { r0a0: u288 { limb0: 0xc4a85cff6912d5bfd21136b3, limb1: 0x34488d83eff390d6a141392c, - limb2: 0xdd68be1560fdaae + limb2: 0xdd68be1560fdaae, }, r0a1: u288 { limb0: 0x25abfb1fa590f9ccb71b8e0, limb1: 0x43c63f304c5602ef9de96df6, - limb2: 0x21e65c606ce32d5a + limb2: 0x21e65c606ce32d5a, }, r1a0: u288 { limb0: 0x6e4626b5e644b7a440e1b381, limb1: 0xa29ef58cc4acec20c08690c, - limb2: 0x1eca054ddf87b2a4 + limb2: 0x1eca054ddf87b2a4, }, r1a1: u288 { limb0: 0xc220eeaf9d6200717abc6724, limb1: 0x702fffe80bce126803560a40, - limb2: 0x2e0f90625bd64073 - } + limb2: 0x2e0f90625bd64073, + }, }, G2Line { r0a0: u288 { limb0: 0xc4a85cff6912d5bfd21136b3, limb1: 0x34488d83eff390d6a141392c, - limb2: 0xdd68be1560fdaae + limb2: 0xdd68be1560fdaae, }, r0a1: u288 { limb0: 0x25abfb1fa590f9ccb71b8e0, limb1: 0x43c63f304c5602ef9de96df6, - limb2: 0x21e65c606ce32d5a + limb2: 0x21e65c606ce32d5a, }, r1a0: u288 { limb0: 0x6e4626b5e644b7a440e1b381, limb1: 0xa29ef58cc4acec20c08690c, - limb2: 0x1eca054ddf87b2a4 + limb2: 0x1eca054ddf87b2a4, }, r1a1: u288 { limb0: 0xc220eeaf9d6200717abc6724, limb1: 0x702fffe80bce126803560a40, - limb2: 0x2e0f90625bd64073 - } + limb2: 0x2e0f90625bd64073, + }, }, G2Line { r0a0: u288 { limb0: 0x59f254cb97c8a519e0461a6, limb1: 0xb4542e9c6bb21b7d9648e1d4, - limb2: 0x22dc33964ee2947b + limb2: 0x22dc33964ee2947b, }, r0a1: u288 { limb0: 0x5e83c2931befc562e4c93cee, limb1: 0x675b3e97b43eba3f75101885, - limb2: 0x11d20ed3321c48f + limb2: 0x11d20ed3321c48f, }, r1a0: u288 { limb0: 0x11e5d20e996d12471ceb3541, limb1: 0x229064d01b397b4af809e840, - limb2: 0x21834a1301ac5984 + limb2: 0x21834a1301ac5984, }, r1a1: u288 { limb0: 0xbe43cdde5117c697882c850f, limb1: 0x1bc4151048af9bbd27f7e82a, - limb2: 0x2501d9aca420d21e - } + limb2: 0x2501d9aca420d21e, + }, }, G2Line { r0a0: u288 { limb0: 0x134b53d15a50fc2bed6d2f3d, limb1: 0xd4f8c40bf294c7e18346462d, - limb2: 0x1aad2161b8c9e68e + limb2: 0x1aad2161b8c9e68e, }, r0a1: u288 { limb0: 0x88262244e0b154b0ca5b5d9a, limb1: 0xd288b3c01ba5c293f8c800f8, - limb2: 0xf0ac20574e1aede + limb2: 0xf0ac20574e1aede, }, r1a0: u288 { limb0: 0xe5373b9b81964332b6771878, limb1: 0x80e60988bd2e9de7f4395ae6, - limb2: 0x2e916f6959fa27f0 + limb2: 0x2e916f6959fa27f0, }, r1a1: u288 { limb0: 0x3f67c739560ef94c04b58369, limb1: 0x1ee07a68fb111967cd5b15b8, - limb2: 0x1b7e48fae034571 - } + limb2: 0x1b7e48fae034571, + }, }, G2Line { r0a0: u288 { limb0: 0x59f254cb97c8a519e0461a6, limb1: 0xb4542e9c6bb21b7d9648e1d4, - limb2: 0x22dc33964ee2947b + limb2: 0x22dc33964ee2947b, }, r0a1: u288 { limb0: 0x5e83c2931befc562e4c93cee, limb1: 0x675b3e97b43eba3f75101885, - limb2: 0x11d20ed3321c48f + limb2: 0x11d20ed3321c48f, }, r1a0: u288 { limb0: 0x11e5d20e996d12471ceb3541, limb1: 0x229064d01b397b4af809e840, - limb2: 0x21834a1301ac5984 + limb2: 0x21834a1301ac5984, }, r1a1: u288 { limb0: 0xbe43cdde5117c697882c850f, limb1: 0x1bc4151048af9bbd27f7e82a, - limb2: 0x2501d9aca420d21e - } + limb2: 0x2501d9aca420d21e, + }, }, G2Line { r0a0: u288 { limb0: 0x134b53d15a50fc2bed6d2f3d, limb1: 0xd4f8c40bf294c7e18346462d, - limb2: 0x1aad2161b8c9e68e + limb2: 0x1aad2161b8c9e68e, }, r0a1: u288 { limb0: 0x88262244e0b154b0ca5b5d9a, limb1: 0xd288b3c01ba5c293f8c800f8, - limb2: 0xf0ac20574e1aede + limb2: 0xf0ac20574e1aede, }, r1a0: u288 { limb0: 0xe5373b9b81964332b6771878, limb1: 0x80e60988bd2e9de7f4395ae6, - limb2: 0x2e916f6959fa27f0 + limb2: 0x2e916f6959fa27f0, }, r1a1: u288 { limb0: 0x3f67c739560ef94c04b58369, limb1: 0x1ee07a68fb111967cd5b15b8, - limb2: 0x1b7e48fae034571 - } + limb2: 0x1b7e48fae034571, + }, }, G2Line { r0a0: u288 { limb0: 0x65bb9e7438a232dad6eb7f96, limb1: 0x5cf05222319fe00305afe0bf, - limb2: 0x1c6d87b3a5aabb43 + limb2: 0x1c6d87b3a5aabb43, }, r0a1: u288 { limb0: 0xb8e845bbd71aa9644432eaa6, limb1: 0xcdbf988db0903b19b07b9f3, - limb2: 0x107ca76698ca0dcd + limb2: 0x107ca76698ca0dcd, }, r1a0: u288 { limb0: 0x5ba7979e387e50b016321956, limb1: 0x2ee41a1e59ccbc1350611d32, - limb2: 0x11a3b7b762eec2c5 + limb2: 0x11a3b7b762eec2c5, }, r1a1: u288 { limb0: 0xb3f5edfecf19d6f82799dd03, limb1: 0xc0d095110dad9ebbefe29784, - limb2: 0x1f63c13501eeeaf5 - } + limb2: 0x1f63c13501eeeaf5, + }, }, G2Line { r0a0: u288 { limb0: 0x65bb9e7438a232dad6eb7f96, limb1: 0x5cf05222319fe00305afe0bf, - limb2: 0x1c6d87b3a5aabb43 + limb2: 0x1c6d87b3a5aabb43, }, r0a1: u288 { limb0: 0xb8e845bbd71aa9644432eaa6, limb1: 0xcdbf988db0903b19b07b9f3, - limb2: 0x107ca76698ca0dcd + limb2: 0x107ca76698ca0dcd, }, r1a0: u288 { limb0: 0x5ba7979e387e50b016321956, limb1: 0x2ee41a1e59ccbc1350611d32, - limb2: 0x11a3b7b762eec2c5 + limb2: 0x11a3b7b762eec2c5, }, r1a1: u288 { limb0: 0xb3f5edfecf19d6f82799dd03, limb1: 0xc0d095110dad9ebbefe29784, - limb2: 0x1f63c13501eeeaf5 - } + limb2: 0x1f63c13501eeeaf5, + }, }, G2Line { r0a0: u288 { limb0: 0xde29dd2c7147403100fa258c, limb1: 0xbfc33c64aa2cdfd5f33f638d, - limb2: 0x139edaa5713a8a73 + limb2: 0x139edaa5713a8a73, }, r0a1: u288 { limb0: 0x8de2a4556c0698bd62bdc91d, limb1: 0x497ed1dffa7e70b6c15dad0c, - limb2: 0x2cd9650c8add9b02 + limb2: 0x2cd9650c8add9b02, }, r1a0: u288 { limb0: 0x2357739dff7746f02bf5d5cd, limb1: 0x37396bdbe70cf65e7f7ed43b, - limb2: 0x16571ebe2a0acf51 + limb2: 0x16571ebe2a0acf51, }, r1a1: u288 { limb0: 0x5df40d02171f3aa50f4f1b23, limb1: 0x3d504cd9327215bf089595d0, - limb2: 0x2598b49390b4ab86 - } + limb2: 0x2598b49390b4ab86, + }, }, G2Line { r0a0: u288 { limb0: 0xde29dd2c7147403100fa258c, limb1: 0xbfc33c64aa2cdfd5f33f638d, - limb2: 0x139edaa5713a8a73 + limb2: 0x139edaa5713a8a73, }, r0a1: u288 { limb0: 0x8de2a4556c0698bd62bdc91d, limb1: 0x497ed1dffa7e70b6c15dad0c, - limb2: 0x2cd9650c8add9b02 + limb2: 0x2cd9650c8add9b02, }, r1a0: u288 { limb0: 0x2357739dff7746f02bf5d5cd, limb1: 0x37396bdbe70cf65e7f7ed43b, - limb2: 0x16571ebe2a0acf51 + limb2: 0x16571ebe2a0acf51, }, r1a1: u288 { limb0: 0x5df40d02171f3aa50f4f1b23, limb1: 0x3d504cd9327215bf089595d0, - limb2: 0x2598b49390b4ab86 - } + limb2: 0x2598b49390b4ab86, + }, }, G2Line { r0a0: u288 { limb0: 0x4360e486f47a872ae0460f44, limb1: 0x7bb35bfed6fcfcf8779029e1, - limb2: 0x1390b4c7cb6b52f1 + limb2: 0x1390b4c7cb6b52f1, }, r0a1: u288 { limb0: 0xa628a0a5b10cbbd6c74c24ee, limb1: 0x7470f4707a0cc892ebefded7, - limb2: 0x1ff4ca8749a8104e + limb2: 0x1ff4ca8749a8104e, }, r1a0: u288 { limb0: 0xff60a007ec6c8b1e83574f3d, limb1: 0xce3526917a6268d71609c0a1, - limb2: 0x3016dc03227dad67 + limb2: 0x3016dc03227dad67, }, r1a1: u288 { limb0: 0x3989e237ecb0bc27e6ad5d37, limb1: 0x91acde41c342e92417210e02, - limb2: 0x2c602bf496b1e2b8 - } + limb2: 0x2c602bf496b1e2b8, + }, }, G2Line { r0a0: u288 { limb0: 0x103a372c78fa5b2a67d01204, limb1: 0x675f1cbc7aebe1140e8bed2a, - limb2: 0x2532e98456a291c3 + limb2: 0x2532e98456a291c3, }, r0a1: u288 { limb0: 0xc0be03786bd147df08fa1ece, limb1: 0x7878592e1699337b543a6fa2, - limb2: 0x9e2390310f5b3d7 + limb2: 0x9e2390310f5b3d7, }, r1a0: u288 { limb0: 0x6d973cc33a79ba068e6572ad, limb1: 0xc2fddbd0c013d321cabfbf43, - limb2: 0x249b679f9a94f336 + limb2: 0x249b679f9a94f336, }, r1a1: u288 { limb0: 0xe20f26b34d3756b2b9519351, limb1: 0xde793f45fed2b6ad4576aaf8, - limb2: 0x2cc11b280706670a - } + limb2: 0x2cc11b280706670a, + }, }, G2Line { r0a0: u288 { limb0: 0x4360e486f47a872ae0460f44, limb1: 0x7bb35bfed6fcfcf8779029e1, - limb2: 0x1390b4c7cb6b52f1 + limb2: 0x1390b4c7cb6b52f1, }, r0a1: u288 { limb0: 0xa628a0a5b10cbbd6c74c24ee, limb1: 0x7470f4707a0cc892ebefded7, - limb2: 0x1ff4ca8749a8104e + limb2: 0x1ff4ca8749a8104e, }, r1a0: u288 { limb0: 0xff60a007ec6c8b1e83574f3d, limb1: 0xce3526917a6268d71609c0a1, - limb2: 0x3016dc03227dad67 + limb2: 0x3016dc03227dad67, }, r1a1: u288 { limb0: 0x3989e237ecb0bc27e6ad5d37, limb1: 0x91acde41c342e92417210e02, - limb2: 0x2c602bf496b1e2b8 - } + limb2: 0x2c602bf496b1e2b8, + }, }, G2Line { r0a0: u288 { limb0: 0x103a372c78fa5b2a67d01204, limb1: 0x675f1cbc7aebe1140e8bed2a, - limb2: 0x2532e98456a291c3 + limb2: 0x2532e98456a291c3, }, r0a1: u288 { limb0: 0xc0be03786bd147df08fa1ece, limb1: 0x7878592e1699337b543a6fa2, - limb2: 0x9e2390310f5b3d7 + limb2: 0x9e2390310f5b3d7, }, r1a0: u288 { limb0: 0x6d973cc33a79ba068e6572ad, limb1: 0xc2fddbd0c013d321cabfbf43, - limb2: 0x249b679f9a94f336 + limb2: 0x249b679f9a94f336, }, r1a1: u288 { limb0: 0xe20f26b34d3756b2b9519351, limb1: 0xde793f45fed2b6ad4576aaf8, - limb2: 0x2cc11b280706670a - } + limb2: 0x2cc11b280706670a, + }, }, G2Line { r0a0: u288 { limb0: 0x551986dc96f0443f7ac4ba73, limb1: 0x78107a0c01ea8e3f9bd2e6fd, - limb2: 0x201da6796dee986f + limb2: 0x201da6796dee986f, }, r0a1: u288 { limb0: 0xb29fe7d173b13e6ed7b96297, limb1: 0x77342f3c7dfec27fe1753e85, - limb2: 0x1fa36d6151f8156e + limb2: 0x1fa36d6151f8156e, }, r1a0: u288 { limb0: 0xcfbc59734fa247fead294d84, limb1: 0x95cf28f410134c75494cc333, - limb2: 0x2fdd98603896fb30 + limb2: 0x2fdd98603896fb30, }, r1a1: u288 { limb0: 0x225b0b0fef9e6d36d471d78e, limb1: 0x278c8534902d21f77aef3522, - limb2: 0xe42d7fa7de4d6c8 - } + limb2: 0xe42d7fa7de4d6c8, + }, }, G2Line { r0a0: u288 { limb0: 0x551986dc96f0443f7ac4ba73, limb1: 0x78107a0c01ea8e3f9bd2e6fd, - limb2: 0x201da6796dee986f + limb2: 0x201da6796dee986f, }, r0a1: u288 { limb0: 0xb29fe7d173b13e6ed7b96297, limb1: 0x77342f3c7dfec27fe1753e85, - limb2: 0x1fa36d6151f8156e + limb2: 0x1fa36d6151f8156e, }, r1a0: u288 { limb0: 0xcfbc59734fa247fead294d84, limb1: 0x95cf28f410134c75494cc333, - limb2: 0x2fdd98603896fb30 + limb2: 0x2fdd98603896fb30, }, r1a1: u288 { limb0: 0x225b0b0fef9e6d36d471d78e, limb1: 0x278c8534902d21f77aef3522, - limb2: 0xe42d7fa7de4d6c8 - } + limb2: 0xe42d7fa7de4d6c8, + }, }, G2Line { r0a0: u288 { limb0: 0xd524080ad04473596afdaafb, limb1: 0x9da4392d65be1f8372c18a53, - limb2: 0xbccb6baf45de67c + limb2: 0xbccb6baf45de67c, }, r0a1: u288 { limb0: 0x336813e1fb5e17e81b5b051b, limb1: 0xe98e855ed4992521f93709a4, - limb2: 0x297b055bd5622a18 + limb2: 0x297b055bd5622a18, }, r1a0: u288 { limb0: 0x2e761701f878006486dedec1, limb1: 0x677ff8e5f6b82a95401407f, - limb2: 0x2f5725fecfef8317 + limb2: 0x2f5725fecfef8317, }, r1a1: u288 { limb0: 0x839358e9dd8ffc54f27fca9c, limb1: 0xa4a0948db4162fdf44aee0f6, - limb2: 0x2849739e5c4e2ee3 - } + limb2: 0x2849739e5c4e2ee3, + }, }, G2Line { r0a0: u288 { limb0: 0xd524080ad04473596afdaafb, limb1: 0x9da4392d65be1f8372c18a53, - limb2: 0xbccb6baf45de67c + limb2: 0xbccb6baf45de67c, }, r0a1: u288 { limb0: 0x336813e1fb5e17e81b5b051b, limb1: 0xe98e855ed4992521f93709a4, - limb2: 0x297b055bd5622a18 + limb2: 0x297b055bd5622a18, }, r1a0: u288 { limb0: 0x2e761701f878006486dedec1, limb1: 0x677ff8e5f6b82a95401407f, - limb2: 0x2f5725fecfef8317 + limb2: 0x2f5725fecfef8317, }, r1a1: u288 { limb0: 0x839358e9dd8ffc54f27fca9c, limb1: 0xa4a0948db4162fdf44aee0f6, - limb2: 0x2849739e5c4e2ee3 - } + limb2: 0x2849739e5c4e2ee3, + }, }, G2Line { r0a0: u288 { limb0: 0xc9cde220c427e6e795c276ea, limb1: 0xf16a4bf65aa097b4b2102d3a, - limb2: 0x107f879bc0743525 + limb2: 0x107f879bc0743525, }, r0a1: u288 { limb0: 0x5edbca4d3c47278b7e543edc, limb1: 0xe6280d0a1160bc4062c712a2, - limb2: 0xd65ce18e50f6e9f + limb2: 0xd65ce18e50f6e9f, }, r1a0: u288 { limb0: 0x922d89859e41d74f44066e94, limb1: 0x92d65b7ea0039b0163ab463, - limb2: 0x233cfba3a88b3b44 + limb2: 0x233cfba3a88b3b44, }, r1a1: u288 { limb0: 0xbaceedcb5732d6a04a4a3ba2, limb1: 0xe586d3e9d7583a9b9956674c, - limb2: 0x1b35c7bee23e7274 - } + limb2: 0x1b35c7bee23e7274, + }, }, G2Line { r0a0: u288 { limb0: 0xc9cde220c427e6e795c276ea, limb1: 0xf16a4bf65aa097b4b2102d3a, - limb2: 0x107f879bc0743525 + limb2: 0x107f879bc0743525, }, r0a1: u288 { limb0: 0x5edbca4d3c47278b7e543edc, limb1: 0xe6280d0a1160bc4062c712a2, - limb2: 0xd65ce18e50f6e9f + limb2: 0xd65ce18e50f6e9f, }, r1a0: u288 { limb0: 0x922d89859e41d74f44066e94, limb1: 0x92d65b7ea0039b0163ab463, - limb2: 0x233cfba3a88b3b44 + limb2: 0x233cfba3a88b3b44, }, r1a1: u288 { limb0: 0xbaceedcb5732d6a04a4a3ba2, limb1: 0xe586d3e9d7583a9b9956674c, - limb2: 0x1b35c7bee23e7274 - } + limb2: 0x1b35c7bee23e7274, + }, }, G2Line { r0a0: u288 { limb0: 0x7dc2872c3517c1e449fc4122, limb1: 0x705ab5ca7266a5ffa614625b, - limb2: 0x166c4d11551f6f6d + limb2: 0x166c4d11551f6f6d, }, r0a1: u288 { limb0: 0x492f67a4ba40719208859c1b, limb1: 0x7a676c7fc4295e5aab645973, - limb2: 0x2d03ea35dec3ab5d + limb2: 0x2d03ea35dec3ab5d, }, r1a0: u288 { limb0: 0x529cb1e346af0b40e0e2e6b9, limb1: 0xe42e697812ceb8a7c51f85b3, - limb2: 0x2b5f25393ba2c781 + limb2: 0x2b5f25393ba2c781, }, r1a1: u288 { limb0: 0x3d2f685444515b3441d54cee, limb1: 0xed7dcc8e1781c6d4006bba3f, - limb2: 0x26f0fac3db26fe20 - } + limb2: 0x26f0fac3db26fe20, + }, }, G2Line { r0a0: u288 { limb0: 0x7dc2872c3517c1e449fc4122, limb1: 0x705ab5ca7266a5ffa614625b, - limb2: 0x166c4d11551f6f6d + limb2: 0x166c4d11551f6f6d, }, r0a1: u288 { limb0: 0x492f67a4ba40719208859c1b, limb1: 0x7a676c7fc4295e5aab645973, - limb2: 0x2d03ea35dec3ab5d + limb2: 0x2d03ea35dec3ab5d, }, r1a0: u288 { limb0: 0x529cb1e346af0b40e0e2e6b9, limb1: 0xe42e697812ceb8a7c51f85b3, - limb2: 0x2b5f25393ba2c781 + limb2: 0x2b5f25393ba2c781, }, r1a1: u288 { limb0: 0x3d2f685444515b3441d54cee, limb1: 0xed7dcc8e1781c6d4006bba3f, - limb2: 0x26f0fac3db26fe20 - } + limb2: 0x26f0fac3db26fe20, + }, }, G2Line { r0a0: u288 { limb0: 0x1e691060b09334f4d4d11564, limb1: 0xc2f23d460e32ab29aac9a462, - limb2: 0x1f52946e8ab57b9d + limb2: 0x1f52946e8ab57b9d, }, r0a1: u288 { limb0: 0xb8f6cec3d46206bf11579e06, limb1: 0x6b82224b4c502934276477ce, - limb2: 0x4263847a3546583 + limb2: 0x4263847a3546583, }, r1a0: u288 { limb0: 0x3e02aba94130839fdfb531d3, limb1: 0x89b37e5ce7cd94f86280b704, - limb2: 0x25f502760510099 + limb2: 0x25f502760510099, }, r1a1: u288 { limb0: 0xef21ddf9cebf3491c94329fd, limb1: 0xb2577ec6fa2817d5e8a2aaad, - limb2: 0x2e0a1cc9617d5d85 - } + limb2: 0x2e0a1cc9617d5d85, + }, }, G2Line { r0a0: u288 { limb0: 0x8ccc1f1b7b7c84a2fb81a4d1, limb1: 0x1fd835bf3d332347a842499, - limb2: 0x105f1e2419d5da43 + limb2: 0x105f1e2419d5da43, }, r0a1: u288 { limb0: 0xce0594565bc3f6746917fac1, limb1: 0x10f45021d35f29b40306afa2, - limb2: 0x175b0196bc37d977 + limb2: 0x175b0196bc37d977, }, r1a0: u288 { limb0: 0x3bfc77f3df29fdb7446275fd, limb1: 0x761a984dcc263e2a7230a42c, - limb2: 0xdc47d8f8fd9a377 + limb2: 0xdc47d8f8fd9a377, }, r1a1: u288 { limb0: 0x5310a14e6b20a87bded6741b, limb1: 0xaf75a4d44565ed067c32308e, - limb2: 0x1745ddfc2f0f2db5 - } + limb2: 0x1745ddfc2f0f2db5, + }, }, G2Line { r0a0: u288 { limb0: 0x1e691060b09334f4d4d11564, limb1: 0xc2f23d460e32ab29aac9a462, - limb2: 0x1f52946e8ab57b9d + limb2: 0x1f52946e8ab57b9d, }, r0a1: u288 { limb0: 0xb8f6cec3d46206bf11579e06, limb1: 0x6b82224b4c502934276477ce, - limb2: 0x4263847a3546583 + limb2: 0x4263847a3546583, }, r1a0: u288 { limb0: 0x3e02aba94130839fdfb531d3, limb1: 0x89b37e5ce7cd94f86280b704, - limb2: 0x25f502760510099 + limb2: 0x25f502760510099, }, r1a1: u288 { limb0: 0xef21ddf9cebf3491c94329fd, limb1: 0xb2577ec6fa2817d5e8a2aaad, - limb2: 0x2e0a1cc9617d5d85 - } + limb2: 0x2e0a1cc9617d5d85, + }, }, G2Line { r0a0: u288 { limb0: 0x8ccc1f1b7b7c84a2fb81a4d1, limb1: 0x1fd835bf3d332347a842499, - limb2: 0x105f1e2419d5da43 + limb2: 0x105f1e2419d5da43, }, r0a1: u288 { limb0: 0xce0594565bc3f6746917fac1, limb1: 0x10f45021d35f29b40306afa2, - limb2: 0x175b0196bc37d977 + limb2: 0x175b0196bc37d977, }, r1a0: u288 { limb0: 0x3bfc77f3df29fdb7446275fd, limb1: 0x761a984dcc263e2a7230a42c, - limb2: 0xdc47d8f8fd9a377 + limb2: 0xdc47d8f8fd9a377, }, r1a1: u288 { limb0: 0x5310a14e6b20a87bded6741b, limb1: 0xaf75a4d44565ed067c32308e, - limb2: 0x1745ddfc2f0f2db5 - } + limb2: 0x1745ddfc2f0f2db5, + }, }, G2Line { r0a0: u288 { limb0: 0x9002fa9c872aa1591cb2e83c, limb1: 0x18092dea89807d07c96f5cee, - limb2: 0x5e775cc8d0e2333 + limb2: 0x5e775cc8d0e2333, }, r0a1: u288 { limb0: 0x6e55603f23c1e2f40ecbc3be, limb1: 0x9ef6bba8f2ca071759eee99a, - limb2: 0x66cf6e10d463eb6 + limb2: 0x66cf6e10d463eb6, }, r1a0: u288 { limb0: 0x30131216b55fd9bf4d2cbe86, limb1: 0xbaa5fde208b9fceda4ed5946, - limb2: 0xdbb530576beae47 + limb2: 0xdbb530576beae47, }, r1a1: u288 { limb0: 0xe09b26e7b2fe48a7f274d02d, limb1: 0x9e41ae04207fa2eb5f641fed, - limb2: 0x511a273c2863628 - } + limb2: 0x511a273c2863628, + }, }, G2Line { r0a0: u288 { limb0: 0x9002fa9c872aa1591cb2e83c, limb1: 0x18092dea89807d07c96f5cee, - limb2: 0x5e775cc8d0e2333 + limb2: 0x5e775cc8d0e2333, }, r0a1: u288 { limb0: 0x6e55603f23c1e2f40ecbc3be, limb1: 0x9ef6bba8f2ca071759eee99a, - limb2: 0x66cf6e10d463eb6 + limb2: 0x66cf6e10d463eb6, }, r1a0: u288 { limb0: 0x30131216b55fd9bf4d2cbe86, limb1: 0xbaa5fde208b9fceda4ed5946, - limb2: 0xdbb530576beae47 + limb2: 0xdbb530576beae47, }, r1a1: u288 { limb0: 0xe09b26e7b2fe48a7f274d02d, limb1: 0x9e41ae04207fa2eb5f641fed, - limb2: 0x511a273c2863628 - } + limb2: 0x511a273c2863628, + }, }, G2Line { r0a0: u288 { limb0: 0x9e446957265af1f6cdcb9e15, limb1: 0x6c10753b3e38581919c0cc4d, - limb2: 0x3049507b97cd2ae3 + limb2: 0x3049507b97cd2ae3, }, r0a1: u288 { limb0: 0x81d9c4ec56b0c577f646eb40, limb1: 0x2e5a0918579e398c48776ad2, - limb2: 0x3d00590d1493ac8 + limb2: 0x3d00590d1493ac8, }, r1a0: u288 { limb0: 0xa5ffc6ee3bc132f1681fe84f, limb1: 0x6906fa22a16540a098a498a7, - limb2: 0xd23995e1c7ff58d + limb2: 0xd23995e1c7ff58d, }, r1a1: u288 { limb0: 0x99b1ea789cd8357bbc2d09d8, limb1: 0x2fde0375bb34e500582e9729, - limb2: 0xfad5daa8506bc1 - } + limb2: 0xfad5daa8506bc1, + }, }, G2Line { r0a0: u288 { limb0: 0xc627fa78d0f6604cfc6262bc, limb1: 0x1a3f0695ff6e8412d1ea0eda, - limb2: 0x1b1754c1a9e0cea9 + limb2: 0x1b1754c1a9e0cea9, }, r0a1: u288 { limb0: 0x8fbb7ca95e11dda5d5f44cc0, limb1: 0xaab02dc7e290087c8d9224dc, - limb2: 0x4c39cf6e88ea4d8 + limb2: 0x4c39cf6e88ea4d8, }, r1a0: u288 { limb0: 0x66b308f30b0a27dfb743a053, limb1: 0xc24b32150e094160eb1e6e20, - limb2: 0x16091aac6ef81c7 + limb2: 0x16091aac6ef81c7, }, r1a1: u288 { limb0: 0x7e3aeab40b6fb8507a19662f, limb1: 0x8fa259d1ce6d3db3ba6cbcd, - limb2: 0x2c175175b8686be5 - } + limb2: 0x2c175175b8686be5, + }, }, G2Line { r0a0: u288 { limb0: 0x9e446957265af1f6cdcb9e15, limb1: 0x6c10753b3e38581919c0cc4d, - limb2: 0x3049507b97cd2ae3 + limb2: 0x3049507b97cd2ae3, }, r0a1: u288 { limb0: 0x81d9c4ec56b0c577f646eb40, limb1: 0x2e5a0918579e398c48776ad2, - limb2: 0x3d00590d1493ac8 + limb2: 0x3d00590d1493ac8, }, r1a0: u288 { limb0: 0xa5ffc6ee3bc132f1681fe84f, limb1: 0x6906fa22a16540a098a498a7, - limb2: 0xd23995e1c7ff58d + limb2: 0xd23995e1c7ff58d, }, r1a1: u288 { limb0: 0x99b1ea789cd8357bbc2d09d8, limb1: 0x2fde0375bb34e500582e9729, - limb2: 0xfad5daa8506bc1 - } + limb2: 0xfad5daa8506bc1, + }, }, G2Line { r0a0: u288 { limb0: 0xc627fa78d0f6604cfc6262bc, limb1: 0x1a3f0695ff6e8412d1ea0eda, - limb2: 0x1b1754c1a9e0cea9 + limb2: 0x1b1754c1a9e0cea9, }, r0a1: u288 { limb0: 0x8fbb7ca95e11dda5d5f44cc0, limb1: 0xaab02dc7e290087c8d9224dc, - limb2: 0x4c39cf6e88ea4d8 + limb2: 0x4c39cf6e88ea4d8, }, r1a0: u288 { limb0: 0x66b308f30b0a27dfb743a053, limb1: 0xc24b32150e094160eb1e6e20, - limb2: 0x16091aac6ef81c7 + limb2: 0x16091aac6ef81c7, }, r1a1: u288 { limb0: 0x7e3aeab40b6fb8507a19662f, limb1: 0x8fa259d1ce6d3db3ba6cbcd, - limb2: 0x2c175175b8686be5 - } + limb2: 0x2c175175b8686be5, + }, }, G2Line { r0a0: u288 { limb0: 0x391e6f951049b131d70e651, limb1: 0x5c0f54485e635304e14ce30e, - limb2: 0x221ee8dc68dde949 + limb2: 0x221ee8dc68dde949, }, r0a1: u288 { limb0: 0xac8ba155c82a61103e2963c1, limb1: 0x8559d1265b1f4418a886b3aa, - limb2: 0x140ce9c3c2eb5374 + limb2: 0x140ce9c3c2eb5374, }, r1a0: u288 { limb0: 0x73ebb164ba66b89f6ac09079, limb1: 0x3699654a08147615c793b6b5, - limb2: 0xaa97a901c3147f3 + limb2: 0xaa97a901c3147f3, }, r1a1: u288 { limb0: 0x9666d2cab8edbbffe6ede238, limb1: 0xc28b607bd98c0f9789de1cb4, - limb2: 0xcb0f83e0497f81e - } + limb2: 0xcb0f83e0497f81e, + }, }, G2Line { r0a0: u288 { limb0: 0x391e6f951049b131d70e651, limb1: 0x5c0f54485e635304e14ce30e, - limb2: 0x221ee8dc68dde949 + limb2: 0x221ee8dc68dde949, }, r0a1: u288 { limb0: 0xac8ba155c82a61103e2963c1, limb1: 0x8559d1265b1f4418a886b3aa, - limb2: 0x140ce9c3c2eb5374 + limb2: 0x140ce9c3c2eb5374, }, r1a0: u288 { limb0: 0x73ebb164ba66b89f6ac09079, limb1: 0x3699654a08147615c793b6b5, - limb2: 0xaa97a901c3147f3 + limb2: 0xaa97a901c3147f3, }, r1a1: u288 { limb0: 0x9666d2cab8edbbffe6ede238, limb1: 0xc28b607bd98c0f9789de1cb4, - limb2: 0xcb0f83e0497f81e - } + limb2: 0xcb0f83e0497f81e, + }, }, G2Line { r0a0: u288 { limb0: 0xd9cb0120b4122fb011495b79, limb1: 0xb13527eef1359006fb9859de, - limb2: 0x240401f012c778a3 + limb2: 0x240401f012c778a3, }, r0a1: u288 { limb0: 0x9cc1ae143c291244678b0671, limb1: 0x3f4bdf8e0d1bb7d8d2c700d7, - limb2: 0x12fc2e1a9bd4d4fb + limb2: 0x12fc2e1a9bd4d4fb, }, r1a0: u288 { limb0: 0x4d62fe7db900df0085dff093, limb1: 0x424c17123aa393f8a5520eb9, - limb2: 0x8df0bf255c22f60 + limb2: 0x8df0bf255c22f60, }, r1a1: u288 { limb0: 0x4caa438a70cd1b3862c1618e, limb1: 0x3e479829171b3521b4952056, - limb2: 0x828e185bcf93935 - } + limb2: 0x828e185bcf93935, + }, }, G2Line { r0a0: u288 { limb0: 0xd9cb0120b4122fb011495b79, limb1: 0xb13527eef1359006fb9859de, - limb2: 0x240401f012c778a3 + limb2: 0x240401f012c778a3, }, r0a1: u288 { limb0: 0x9cc1ae143c291244678b0671, limb1: 0x3f4bdf8e0d1bb7d8d2c700d7, - limb2: 0x12fc2e1a9bd4d4fb + limb2: 0x12fc2e1a9bd4d4fb, }, r1a0: u288 { limb0: 0x4d62fe7db900df0085dff093, limb1: 0x424c17123aa393f8a5520eb9, - limb2: 0x8df0bf255c22f60 + limb2: 0x8df0bf255c22f60, }, r1a1: u288 { limb0: 0x4caa438a70cd1b3862c1618e, limb1: 0x3e479829171b3521b4952056, - limb2: 0x828e185bcf93935 - } + limb2: 0x828e185bcf93935, + }, }, G2Line { r0a0: u288 { limb0: 0xb862a4ff37044dbe06e91363, limb1: 0xaf8e301a655e3e4a00bc528, - limb2: 0x1b35ba3ad1783bfa + limb2: 0x1b35ba3ad1783bfa, }, r0a1: u288 { limb0: 0x4d069af037c7fa2d75a8135b, limb1: 0xe23f93edb80bda1ddf6c3d8b, - limb2: 0x734462d6e70bd6 + limb2: 0x734462d6e70bd6, }, r1a0: u288 { limb0: 0xca21499f48088a3152f20477, limb1: 0xfb6ff15c58fd656c3a068ba7, - limb2: 0x129921fd1af30952 + limb2: 0x129921fd1af30952, }, r1a1: u288 { limb0: 0xe182d8890b92a8c636cfc2d5, limb1: 0xcf37e9714eabfb65cd257a30, - limb2: 0x19c5b0d5affa1c21 - } + limb2: 0x19c5b0d5affa1c21, + }, }, G2Line { r0a0: u288 { limb0: 0xb862a4ff37044dbe06e91363, limb1: 0xaf8e301a655e3e4a00bc528, - limb2: 0x1b35ba3ad1783bfa + limb2: 0x1b35ba3ad1783bfa, }, r0a1: u288 { limb0: 0x4d069af037c7fa2d75a8135b, limb1: 0xe23f93edb80bda1ddf6c3d8b, - limb2: 0x734462d6e70bd6 + limb2: 0x734462d6e70bd6, }, r1a0: u288 { limb0: 0xca21499f48088a3152f20477, limb1: 0xfb6ff15c58fd656c3a068ba7, - limb2: 0x129921fd1af30952 + limb2: 0x129921fd1af30952, }, r1a1: u288 { limb0: 0xe182d8890b92a8c636cfc2d5, limb1: 0xcf37e9714eabfb65cd257a30, - limb2: 0x19c5b0d5affa1c21 - } + limb2: 0x19c5b0d5affa1c21, + }, }, G2Line { r0a0: u288 { limb0: 0x8d30e8f01b6acf088a9bd5a6, limb1: 0xb440d1794eef76a66e0fdb32, - limb2: 0x16655a68127499b0 + limb2: 0x16655a68127499b0, }, r0a1: u288 { limb0: 0xf12061678632cd148d1be332, limb1: 0x3aa5b5ac85bb5c32e7c93d40, - limb2: 0x2f885ae792f2779e + limb2: 0x2f885ae792f2779e, }, r1a0: u288 { limb0: 0x1de53ae1c1e6c599d4a495e4, limb1: 0x8ef188b9abb6e97a0375dee6, - limb2: 0x9507d99d56d4d1d + limb2: 0x9507d99d56d4d1d, }, r1a1: u288 { limb0: 0x9a83ce73013109f348314267, limb1: 0xffd1a4c21374ab0fcece03f4, - limb2: 0x7570f2346d80d71 - } + limb2: 0x7570f2346d80d71, + }, }, G2Line { r0a0: u288 { limb0: 0xffb932597fa8bdce8de82fd9, limb1: 0xc9265a1ac66f25b59b4c7222, - limb2: 0x2a43f963f80117be + limb2: 0x2a43f963f80117be, }, r0a1: u288 { limb0: 0x9b6456669db38b591a35fa4e, limb1: 0x31aa367c72c0f07897f7d4a4, - limb2: 0x28d40172399c3b03 + limb2: 0x28d40172399c3b03, }, r1a0: u288 { limb0: 0xca95f93e068ff337f73f54d5, limb1: 0xabbf9fdc66cc4b10f9da741, - limb2: 0x22f1e27d902fc3ff + limb2: 0x22f1e27d902fc3ff, }, r1a1: u288 { limb0: 0xd12f8d49ae60289c48850a68, limb1: 0xc27491d681fc8ec1edf9d749, - limb2: 0x14e28f1895e25047 - } + limb2: 0x14e28f1895e25047, + }, }, G2Line { r0a0: u288 { limb0: 0x8d30e8f01b6acf088a9bd5a6, limb1: 0xb440d1794eef76a66e0fdb32, - limb2: 0x16655a68127499b0 + limb2: 0x16655a68127499b0, }, r0a1: u288 { limb0: 0xf12061678632cd148d1be332, limb1: 0x3aa5b5ac85bb5c32e7c93d40, - limb2: 0x2f885ae792f2779e + limb2: 0x2f885ae792f2779e, }, r1a0: u288 { limb0: 0x1de53ae1c1e6c599d4a495e4, limb1: 0x8ef188b9abb6e97a0375dee6, - limb2: 0x9507d99d56d4d1d + limb2: 0x9507d99d56d4d1d, }, r1a1: u288 { limb0: 0x9a83ce73013109f348314267, limb1: 0xffd1a4c21374ab0fcece03f4, - limb2: 0x7570f2346d80d71 - } + limb2: 0x7570f2346d80d71, + }, }, G2Line { r0a0: u288 { limb0: 0xffb932597fa8bdce8de82fd9, limb1: 0xc9265a1ac66f25b59b4c7222, - limb2: 0x2a43f963f80117be + limb2: 0x2a43f963f80117be, }, r0a1: u288 { limb0: 0x9b6456669db38b591a35fa4e, limb1: 0x31aa367c72c0f07897f7d4a4, - limb2: 0x28d40172399c3b03 + limb2: 0x28d40172399c3b03, }, r1a0: u288 { limb0: 0xca95f93e068ff337f73f54d5, limb1: 0xabbf9fdc66cc4b10f9da741, - limb2: 0x22f1e27d902fc3ff + limb2: 0x22f1e27d902fc3ff, }, r1a1: u288 { limb0: 0xd12f8d49ae60289c48850a68, limb1: 0xc27491d681fc8ec1edf9d749, - limb2: 0x14e28f1895e25047 - } + limb2: 0x14e28f1895e25047, + }, }, G2Line { r0a0: u288 { limb0: 0x473f1af712fdc704395691fd, limb1: 0xb051550f381c34c4b0734c3b, - limb2: 0x268983f32c1ff74a + limb2: 0x268983f32c1ff74a, }, r0a1: u288 { limb0: 0xcd3e26d45de18312b60f63b3, limb1: 0x4b1cf3f0c70a35c9ed0e7627, - limb2: 0x5faf0f8c5417fac + limb2: 0x5faf0f8c5417fac, }, r1a0: u288 { limb0: 0x7186248c0f4f620c4db44b27, limb1: 0xbaee201f71b6213a513c8c05, - limb2: 0x10696dfde75b0f74 + limb2: 0x10696dfde75b0f74, }, r1a1: u288 { limb0: 0x47fce5c1d2e0b960d052202, limb1: 0x12588735814120777f589cc7, - limb2: 0x755d1d035d5e613 - } + limb2: 0x755d1d035d5e613, + }, }, G2Line { r0a0: u288 { limb0: 0x473f1af712fdc704395691fd, limb1: 0xb051550f381c34c4b0734c3b, - limb2: 0x268983f32c1ff74a + limb2: 0x268983f32c1ff74a, }, r0a1: u288 { limb0: 0xcd3e26d45de18312b60f63b3, limb1: 0x4b1cf3f0c70a35c9ed0e7627, - limb2: 0x5faf0f8c5417fac + limb2: 0x5faf0f8c5417fac, }, r1a0: u288 { limb0: 0x7186248c0f4f620c4db44b27, limb1: 0xbaee201f71b6213a513c8c05, - limb2: 0x10696dfde75b0f74 + limb2: 0x10696dfde75b0f74, }, r1a1: u288 { limb0: 0x47fce5c1d2e0b960d052202, limb1: 0x12588735814120777f589cc7, - limb2: 0x755d1d035d5e613 - } + limb2: 0x755d1d035d5e613, + }, }, G2Line { r0a0: u288 { limb0: 0xb069903d83fafb38587039b1, limb1: 0x8c9aaa21806e5257331c422c, - limb2: 0x13dd740437a116d8 + limb2: 0x13dd740437a116d8, }, r0a1: u288 { limb0: 0x49d24e3bc669a61d3ec25caa, limb1: 0xeca54bbcf540ef02c5af1e2d, - limb2: 0x193a4e0703852e04 + limb2: 0x193a4e0703852e04, }, r1a0: u288 { limb0: 0x40ed8176e59843d8d045473f, limb1: 0xdb66931824221a92af499752, - limb2: 0x187f887f2aa471b3 + limb2: 0x187f887f2aa471b3, }, r1a1: u288 { limb0: 0x5fb9760acf925b445a49c759, limb1: 0xfc8fbbd94b6f146f5b998e84, - limb2: 0x79720a00d9dea8a - } + limb2: 0x79720a00d9dea8a, + }, }, G2Line { r0a0: u288 { limb0: 0x9ea0a9193ffeb1be07f5f80b, limb1: 0xfec5948eaf1002c198e0e6d5, - limb2: 0x2a4574fe23c4019d + limb2: 0x2a4574fe23c4019d, }, r0a1: u288 { limb0: 0x192d77825dd5d0e9571db112, limb1: 0x8b6f1079f2f153206cc2a502, - limb2: 0x247f3bad9ba3c5fe + limb2: 0x247f3bad9ba3c5fe, }, r1a0: u288 { limb0: 0x250463ee5fe1aecbafe35d74, limb1: 0xfb14416968302aaa18aca8dd, - limb2: 0x2667d8c8779f5e63 + limb2: 0x2667d8c8779f5e63, }, r1a1: u288 { limb0: 0x933a251b9bf2654b8cde705, limb1: 0x5b666a17b42cebd66d4dc4a4, - limb2: 0xfbadfc59294fbce - } + limb2: 0xfbadfc59294fbce, + }, }, G2Line { r0a0: u288 { limb0: 0xb069903d83fafb38587039b1, limb1: 0x8c9aaa21806e5257331c422c, - limb2: 0x13dd740437a116d8 + limb2: 0x13dd740437a116d8, }, r0a1: u288 { limb0: 0x49d24e3bc669a61d3ec25caa, limb1: 0xeca54bbcf540ef02c5af1e2d, - limb2: 0x193a4e0703852e04 + limb2: 0x193a4e0703852e04, }, r1a0: u288 { limb0: 0x40ed8176e59843d8d045473f, limb1: 0xdb66931824221a92af499752, - limb2: 0x187f887f2aa471b3 + limb2: 0x187f887f2aa471b3, }, r1a1: u288 { limb0: 0x5fb9760acf925b445a49c759, limb1: 0xfc8fbbd94b6f146f5b998e84, - limb2: 0x79720a00d9dea8a - } + limb2: 0x79720a00d9dea8a, + }, }, G2Line { r0a0: u288 { limb0: 0x9ea0a9193ffeb1be07f5f80b, limb1: 0xfec5948eaf1002c198e0e6d5, - limb2: 0x2a4574fe23c4019d + limb2: 0x2a4574fe23c4019d, }, r0a1: u288 { limb0: 0x192d77825dd5d0e9571db112, limb1: 0x8b6f1079f2f153206cc2a502, - limb2: 0x247f3bad9ba3c5fe + limb2: 0x247f3bad9ba3c5fe, }, r1a0: u288 { limb0: 0x250463ee5fe1aecbafe35d74, limb1: 0xfb14416968302aaa18aca8dd, - limb2: 0x2667d8c8779f5e63 + limb2: 0x2667d8c8779f5e63, }, r1a1: u288 { limb0: 0x933a251b9bf2654b8cde705, limb1: 0x5b666a17b42cebd66d4dc4a4, - limb2: 0xfbadfc59294fbce - } + limb2: 0xfbadfc59294fbce, + }, }, G2Line { r0a0: u288 { limb0: 0x46cedc1a7916cd4758546b8f, limb1: 0xc0301e8d2df36447a89fb4e8, - limb2: 0xd2ca8656d93e09e + limb2: 0xd2ca8656d93e09e, }, r0a1: u288 { limb0: 0xb3e000fc3f43a66bd80ccccd, limb1: 0x4f3937ef435c74591278ec30, - limb2: 0x2cacd585791ab63b + limb2: 0x2cacd585791ab63b, }, r1a0: u288 { limb0: 0x124b8c1a597cadcb6e4cd237, limb1: 0x8ff0b0f8077033669214f5a4, - limb2: 0x2d6762b5646a6eab + limb2: 0x2d6762b5646a6eab, }, r1a1: u288 { limb0: 0x2ac1adef2ec8f4f11dc21d70, limb1: 0xa47ce6dfc3545d78d6b35874, - limb2: 0x1e66cdeff84b898e - } + limb2: 0x1e66cdeff84b898e, + }, }, G2Line { r0a0: u288 { limb0: 0x46cedc1a7916cd4758546b8f, limb1: 0xc0301e8d2df36447a89fb4e8, - limb2: 0xd2ca8656d93e09e + limb2: 0xd2ca8656d93e09e, }, r0a1: u288 { limb0: 0xb3e000fc3f43a66bd80ccccd, limb1: 0x4f3937ef435c74591278ec30, - limb2: 0x2cacd585791ab63b + limb2: 0x2cacd585791ab63b, }, r1a0: u288 { limb0: 0x124b8c1a597cadcb6e4cd237, limb1: 0x8ff0b0f8077033669214f5a4, - limb2: 0x2d6762b5646a6eab + limb2: 0x2d6762b5646a6eab, }, r1a1: u288 { limb0: 0x2ac1adef2ec8f4f11dc21d70, limb1: 0xa47ce6dfc3545d78d6b35874, - limb2: 0x1e66cdeff84b898e - } + limb2: 0x1e66cdeff84b898e, + }, }, G2Line { r0a0: u288 { limb0: 0x7bded937b16de0bd513a7142, limb1: 0xcfbbf3d13e42ad1b5895e0f2, - limb2: 0x1eca553e197cc436 + limb2: 0x1eca553e197cc436, }, r0a1: u288 { limb0: 0x1326b172ffdca7374561eaa7, limb1: 0x1b78b181955868c0feac1a4d, - limb2: 0x27e90d835140fdf2 + limb2: 0x27e90d835140fdf2, }, r1a0: u288 { limb0: 0xabe4a2e309f9a3632b4ed1ce, limb1: 0xcea1bbacd364563ad1a77ebb, - limb2: 0x13127af43089e05a + limb2: 0x13127af43089e05a, }, r1a1: u288 { limb0: 0x87d1cfadbc1dc69a79324026, limb1: 0x9c9c2c5e286779e0a0d895fc, - limb2: 0x111e946cf01322eb - } + limb2: 0x111e946cf01322eb, + }, }, G2Line { r0a0: u288 { limb0: 0x7bded937b16de0bd513a7142, limb1: 0xcfbbf3d13e42ad1b5895e0f2, - limb2: 0x1eca553e197cc436 + limb2: 0x1eca553e197cc436, }, r0a1: u288 { limb0: 0x1326b172ffdca7374561eaa7, limb1: 0x1b78b181955868c0feac1a4d, - limb2: 0x27e90d835140fdf2 + limb2: 0x27e90d835140fdf2, }, r1a0: u288 { limb0: 0xabe4a2e309f9a3632b4ed1ce, limb1: 0xcea1bbacd364563ad1a77ebb, - limb2: 0x13127af43089e05a + limb2: 0x13127af43089e05a, }, r1a1: u288 { limb0: 0x87d1cfadbc1dc69a79324026, limb1: 0x9c9c2c5e286779e0a0d895fc, - limb2: 0x111e946cf01322eb - } + limb2: 0x111e946cf01322eb, + }, }, G2Line { r0a0: u288 { limb0: 0x9defc443a5f969707c567481, limb1: 0x55f8307d8694c3cec8cca946, - limb2: 0x1279f1c85384c33f + limb2: 0x1279f1c85384c33f, }, r0a1: u288 { limb0: 0xc45f4019a78bd32e0bdd4a1b, limb1: 0xaf7ddf8600e2296ceaf95d02, - limb2: 0xbe5e1b962492d36 + limb2: 0xbe5e1b962492d36, }, r1a0: u288 { limb0: 0x76245039bfb721ca1e2a0ee5, limb1: 0x8645cf7b04c2c109a1286acc, - limb2: 0x295c9183ac4c0896 + limb2: 0x295c9183ac4c0896, }, r1a1: u288 { limb0: 0xc074cb54759eec430185578f, limb1: 0x5eccd5653e9f7f02ed581abc, - limb2: 0x14cf7692e622fcc5 - } + limb2: 0x14cf7692e622fcc5, + }, }, G2Line { r0a0: u288 { limb0: 0xf8027d9e6b0a7844673e1245, limb1: 0x694d9db62bf7bb9a41262f0b, - limb2: 0x58b480579c361aa + limb2: 0x58b480579c361aa, }, r0a1: u288 { limb0: 0x91e7cecfe16bbaaaf0e19fda, limb1: 0xb9179883e4b271385d9f0518, - limb2: 0x1b352e7a150ca82b + limb2: 0x1b352e7a150ca82b, }, r1a0: u288 { limb0: 0xaca0ba97589ae090a84d3146, limb1: 0x6e9a896c16ec429fab404849, - limb2: 0x2360e6d4bbcf90f8 + limb2: 0x2360e6d4bbcf90f8, }, r1a1: u288 { limb0: 0xbb779a84783aa4ae72c18ceb, limb1: 0x27e540fc9069d0a5ef39760c, - limb2: 0x114c9874632415bb - } + limb2: 0x114c9874632415bb, + }, }, G2Line { r0a0: u288 { limb0: 0x9defc443a5f969707c567481, limb1: 0x55f8307d8694c3cec8cca946, - limb2: 0x1279f1c85384c33f + limb2: 0x1279f1c85384c33f, }, r0a1: u288 { limb0: 0xc45f4019a78bd32e0bdd4a1b, limb1: 0xaf7ddf8600e2296ceaf95d02, - limb2: 0xbe5e1b962492d36 + limb2: 0xbe5e1b962492d36, }, r1a0: u288 { limb0: 0x76245039bfb721ca1e2a0ee5, limb1: 0x8645cf7b04c2c109a1286acc, - limb2: 0x295c9183ac4c0896 + limb2: 0x295c9183ac4c0896, }, r1a1: u288 { limb0: 0xc074cb54759eec430185578f, limb1: 0x5eccd5653e9f7f02ed581abc, - limb2: 0x14cf7692e622fcc5 - } + limb2: 0x14cf7692e622fcc5, + }, }, G2Line { r0a0: u288 { limb0: 0xf8027d9e6b0a7844673e1245, limb1: 0x694d9db62bf7bb9a41262f0b, - limb2: 0x58b480579c361aa + limb2: 0x58b480579c361aa, }, r0a1: u288 { limb0: 0x91e7cecfe16bbaaaf0e19fda, limb1: 0xb9179883e4b271385d9f0518, - limb2: 0x1b352e7a150ca82b + limb2: 0x1b352e7a150ca82b, }, r1a0: u288 { limb0: 0xaca0ba97589ae090a84d3146, limb1: 0x6e9a896c16ec429fab404849, - limb2: 0x2360e6d4bbcf90f8 + limb2: 0x2360e6d4bbcf90f8, }, r1a1: u288 { limb0: 0xbb779a84783aa4ae72c18ceb, limb1: 0x27e540fc9069d0a5ef39760c, - limb2: 0x114c9874632415bb - } + limb2: 0x114c9874632415bb, + }, }, G2Line { r0a0: u288 { limb0: 0x2ec97171b355380af9597308, limb1: 0x5c98f31e4243eabcdc9c4d0a, - limb2: 0x189272184abbc67e + limb2: 0x189272184abbc67e, }, r0a1: u288 { limb0: 0x70b2a249ee2b52a2be3d20c1, limb1: 0x64f57fa1aabf12824a116967, - limb2: 0x2eff2b0744e46233 + limb2: 0x2eff2b0744e46233, }, r1a0: u288 { limb0: 0x745cbcaad594ddd38a5f1f4e, limb1: 0x95d1063847bfb4d5e006aa7d, - limb2: 0x16f68ed87066356e + limb2: 0x16f68ed87066356e, }, r1a1: u288 { limb0: 0xf642b7b361d87b9f994ddd0d, limb1: 0xdd217c0a6997dd8ec2539a54, - limb2: 0xeb46e09edaa161c - } + limb2: 0xeb46e09edaa161c, + }, }, G2Line { r0a0: u288 { limb0: 0x2ec97171b355380af9597308, limb1: 0x5c98f31e4243eabcdc9c4d0a, - limb2: 0x189272184abbc67e + limb2: 0x189272184abbc67e, }, r0a1: u288 { limb0: 0x70b2a249ee2b52a2be3d20c1, limb1: 0x64f57fa1aabf12824a116967, - limb2: 0x2eff2b0744e46233 + limb2: 0x2eff2b0744e46233, }, r1a0: u288 { limb0: 0x745cbcaad594ddd38a5f1f4e, limb1: 0x95d1063847bfb4d5e006aa7d, - limb2: 0x16f68ed87066356e + limb2: 0x16f68ed87066356e, }, r1a1: u288 { limb0: 0xf642b7b361d87b9f994ddd0d, limb1: 0xdd217c0a6997dd8ec2539a54, - limb2: 0xeb46e09edaa161c - } + limb2: 0xeb46e09edaa161c, + }, }, G2Line { r0a0: u288 { limb0: 0x75698f1cd702ddc2b33e1a09, limb1: 0x491bab5348fd4670d338478a, - limb2: 0xf12d300f3713d8 + limb2: 0xf12d300f3713d8, }, r0a1: u288 { limb0: 0x7f8777ccc370604bba36f21e, limb1: 0x9249013429c123002a183f50, - limb2: 0x1fcfca1835131e72 + limb2: 0x1fcfca1835131e72, }, r1a0: u288 { limb0: 0x8847a89e94951a7f1402ca0a, limb1: 0xcf6292aefd5885587e4b501a, - limb2: 0x1f79fc126e4b16c6 + limb2: 0x1f79fc126e4b16c6, }, r1a1: u288 { limb0: 0x9d2a84ea463b4f6fa6bdef4f, limb1: 0x757ea11f432296fd22343447, - limb2: 0x2679fc65403a5f42 - } + limb2: 0x2679fc65403a5f42, + }, }, G2Line { r0a0: u288 { limb0: 0x75698f1cd702ddc2b33e1a09, limb1: 0x491bab5348fd4670d338478a, - limb2: 0xf12d300f3713d8 + limb2: 0xf12d300f3713d8, }, r0a1: u288 { limb0: 0x7f8777ccc370604bba36f21e, limb1: 0x9249013429c123002a183f50, - limb2: 0x1fcfca1835131e72 + limb2: 0x1fcfca1835131e72, }, r1a0: u288 { limb0: 0x8847a89e94951a7f1402ca0a, limb1: 0xcf6292aefd5885587e4b501a, - limb2: 0x1f79fc126e4b16c6 + limb2: 0x1f79fc126e4b16c6, }, r1a1: u288 { limb0: 0x9d2a84ea463b4f6fa6bdef4f, limb1: 0x757ea11f432296fd22343447, - limb2: 0x2679fc65403a5f42 - } + limb2: 0x2679fc65403a5f42, + }, }, G2Line { r0a0: u288 { limb0: 0x34f8267fb775f59435a975a3, limb1: 0x5e24c3e432badae39861f051, - limb2: 0x172b5256de7536ee + limb2: 0x172b5256de7536ee, }, r0a1: u288 { limb0: 0x5c68fe19ba153dcabad4077e, limb1: 0xfcc73acc37bc3efd49f1611c, - limb2: 0x23e6dc58075ef8d9 + limb2: 0x23e6dc58075ef8d9, }, r1a0: u288 { limb0: 0x4459c03b4d093ccedd5d9bb8, limb1: 0xe78ba9031b31e2be3ed8f2ca, - limb2: 0x22ca3c03e154d61 + limb2: 0x22ca3c03e154d61, }, r1a1: u288 { limb0: 0xe3ddeffb8c8f1a4cffd5c3f8, limb1: 0x1241cc4c4b10d455e4d51279, - limb2: 0x1198575579f06677 - } + limb2: 0x1198575579f06677, + }, }, G2Line { r0a0: u288 { limb0: 0x34f8267fb775f59435a975a3, limb1: 0x5e24c3e432badae39861f051, - limb2: 0x172b5256de7536ee + limb2: 0x172b5256de7536ee, }, r0a1: u288 { limb0: 0x5c68fe19ba153dcabad4077e, limb1: 0xfcc73acc37bc3efd49f1611c, - limb2: 0x23e6dc58075ef8d9 + limb2: 0x23e6dc58075ef8d9, }, r1a0: u288 { limb0: 0x4459c03b4d093ccedd5d9bb8, limb1: 0xe78ba9031b31e2be3ed8f2ca, - limb2: 0x22ca3c03e154d61 + limb2: 0x22ca3c03e154d61, }, r1a1: u288 { limb0: 0xe3ddeffb8c8f1a4cffd5c3f8, limb1: 0x1241cc4c4b10d455e4d51279, - limb2: 0x1198575579f06677 - } + limb2: 0x1198575579f06677, + }, }, G2Line { r0a0: u288 { limb0: 0xb18b3c24e43743bdb2cdbd80, limb1: 0xe998c4bba97ba39223cf4a9c, - limb2: 0x19dc441e0f76e9e1 + limb2: 0x19dc441e0f76e9e1, }, r0a1: u288 { limb0: 0x4c5d0509f4c4d4eac63f9f95, limb1: 0x5d3dd460fa5eec27c0f1c16d, - limb2: 0x1ce5fefb5da40fc0 + limb2: 0x1ce5fefb5da40fc0, }, r1a0: u288 { limb0: 0x817ac722e3b0875c94d0c02d, limb1: 0x92716a07a8780a22c240503b, - limb2: 0x14624b4326fac880 + limb2: 0x14624b4326fac880, }, r1a1: u288 { limb0: 0x8f2279554369817a9f36b5b2, limb1: 0x6b6125c5be4c3c62b2ffbe7, - limb2: 0x1e71362b2df417b3 - } + limb2: 0x1e71362b2df417b3, + }, }, G2Line { r0a0: u288 { limb0: 0x5dbc257e7bb51557102dbe2a, limb1: 0xce362ed76472b2864c5f5b6f, - limb2: 0xbd519ac92f31216 + limb2: 0xbd519ac92f31216, }, r0a1: u288 { limb0: 0xe24007146139cc5810b3cbd1, limb1: 0xef3e2e5013aee1213c842bfb, - limb2: 0x1f9eea9d2acec058 + limb2: 0x1f9eea9d2acec058, }, r1a0: u288 { limb0: 0x913167d6677c3bc99423eaeb, limb1: 0xa2fa67dadc942e074343364, - limb2: 0x264f390c803c8e6 + limb2: 0x264f390c803c8e6, }, r1a1: u288 { limb0: 0x96fe98ba8d3de40aa91c7cef, limb1: 0x9c98ececaf9210453a32c237, - limb2: 0xbe97bca2544faec - } + limb2: 0xbe97bca2544faec, + }, }, G2Line { r0a0: u288 { limb0: 0xb18b3c24e43743bdb2cdbd80, limb1: 0xe998c4bba97ba39223cf4a9c, - limb2: 0x19dc441e0f76e9e1 + limb2: 0x19dc441e0f76e9e1, }, r0a1: u288 { limb0: 0x4c5d0509f4c4d4eac63f9f95, limb1: 0x5d3dd460fa5eec27c0f1c16d, - limb2: 0x1ce5fefb5da40fc0 + limb2: 0x1ce5fefb5da40fc0, }, r1a0: u288 { limb0: 0x817ac722e3b0875c94d0c02d, limb1: 0x92716a07a8780a22c240503b, - limb2: 0x14624b4326fac880 + limb2: 0x14624b4326fac880, }, r1a1: u288 { limb0: 0x8f2279554369817a9f36b5b2, limb1: 0x6b6125c5be4c3c62b2ffbe7, - limb2: 0x1e71362b2df417b3 - } + limb2: 0x1e71362b2df417b3, + }, }, G2Line { r0a0: u288 { limb0: 0x5dbc257e7bb51557102dbe2a, limb1: 0xce362ed76472b2864c5f5b6f, - limb2: 0xbd519ac92f31216 + limb2: 0xbd519ac92f31216, }, r0a1: u288 { limb0: 0xe24007146139cc5810b3cbd1, limb1: 0xef3e2e5013aee1213c842bfb, - limb2: 0x1f9eea9d2acec058 + limb2: 0x1f9eea9d2acec058, }, r1a0: u288 { limb0: 0x913167d6677c3bc99423eaeb, limb1: 0xa2fa67dadc942e074343364, - limb2: 0x264f390c803c8e6 + limb2: 0x264f390c803c8e6, }, r1a1: u288 { limb0: 0x96fe98ba8d3de40aa91c7cef, limb1: 0x9c98ececaf9210453a32c237, - limb2: 0xbe97bca2544faec - } + limb2: 0xbe97bca2544faec, + }, }, G2Line { r0a0: u288 { limb0: 0x9fdc0157c3f6d20bf1149a1e, limb1: 0x8dfe542e1b42911f5be6b44f, - limb2: 0x1777319f3952635d + limb2: 0x1777319f3952635d, }, r0a1: u288 { limb0: 0x63c6acb2bb3dd9747a3a9e32, limb1: 0xc1c8cdb31066df4015d898a0, - limb2: 0xa1a8086940fa431 + limb2: 0xa1a8086940fa431, }, r1a0: u288 { limb0: 0x26964bc2ff40bddadf582927, limb1: 0x5b95722b0f70f6745c2bdbff, - limb2: 0x236b02ee4ba7fc42 + limb2: 0x236b02ee4ba7fc42, }, r1a1: u288 { limb0: 0xfc468b651b4a0b741fcab682, limb1: 0x947fdb5abdbbf09b1861c9ff, - limb2: 0x168fbfc692ed02 - } + limb2: 0x168fbfc692ed02, + }, }, G2Line { r0a0: u288 { limb0: 0x9fdc0157c3f6d20bf1149a1e, limb1: 0x8dfe542e1b42911f5be6b44f, - limb2: 0x1777319f3952635d + limb2: 0x1777319f3952635d, }, r0a1: u288 { limb0: 0x63c6acb2bb3dd9747a3a9e32, limb1: 0xc1c8cdb31066df4015d898a0, - limb2: 0xa1a8086940fa431 + limb2: 0xa1a8086940fa431, }, r1a0: u288 { limb0: 0x26964bc2ff40bddadf582927, limb1: 0x5b95722b0f70f6745c2bdbff, - limb2: 0x236b02ee4ba7fc42 + limb2: 0x236b02ee4ba7fc42, }, r1a1: u288 { limb0: 0xfc468b651b4a0b741fcab682, limb1: 0x947fdb5abdbbf09b1861c9ff, - limb2: 0x168fbfc692ed02 - } + limb2: 0x168fbfc692ed02, + }, }, G2Line { r0a0: u288 { limb0: 0x3b05d569dd3cfe7e6ef2d371, limb1: 0x1ab213c78ac4d75edd6143b4, - limb2: 0x1bb1c4d653a5216f + limb2: 0x1bb1c4d653a5216f, }, r0a1: u288 { limb0: 0x9b92fea68b4f30a46556d398, limb1: 0x83327fb29ce9aca58bde417a, - limb2: 0x16153220e81ed45d + limb2: 0x16153220e81ed45d, }, r1a0: u288 { limb0: 0xb0d2a345496d30460462033c, limb1: 0xa40b16c304ff5061144ae50f, - limb2: 0x26721ea54af25d00 + limb2: 0x26721ea54af25d00, }, r1a1: u288 { limb0: 0xa5ccabe21466c944dbb14095, limb1: 0xa4c756d31e5d0f448cde68b2, - limb2: 0x2ae93a053a3d338d - } + limb2: 0x2ae93a053a3d338d, + }, }, G2Line { r0a0: u288 { limb0: 0x3b05d569dd3cfe7e6ef2d371, limb1: 0x1ab213c78ac4d75edd6143b4, - limb2: 0x1bb1c4d653a5216f + limb2: 0x1bb1c4d653a5216f, }, r0a1: u288 { limb0: 0x9b92fea68b4f30a46556d398, limb1: 0x83327fb29ce9aca58bde417a, - limb2: 0x16153220e81ed45d + limb2: 0x16153220e81ed45d, }, r1a0: u288 { limb0: 0xb0d2a345496d30460462033c, limb1: 0xa40b16c304ff5061144ae50f, - limb2: 0x26721ea54af25d00 + limb2: 0x26721ea54af25d00, }, r1a1: u288 { limb0: 0xa5ccabe21466c944dbb14095, limb1: 0xa4c756d31e5d0f448cde68b2, - limb2: 0x2ae93a053a3d338d - } + limb2: 0x2ae93a053a3d338d, + }, }, G2Line { r0a0: u288 { limb0: 0x423870b6e907bad3e53a1eb8, limb1: 0xa40d0139dec99f50870dad86, - limb2: 0xb478020107ff84a + limb2: 0xb478020107ff84a, }, r0a1: u288 { limb0: 0x7955bbd3730aa19c17ab5055, limb1: 0xaa78ed37b06b1fd334e3d3cf, - limb2: 0xd4f1f559a4fe8c6 + limb2: 0xd4f1f559a4fe8c6, }, r1a0: u288 { limb0: 0xe660ec3b96e88f895941963f, limb1: 0x58b13980728f7f2cb5a5434b, - limb2: 0x10784713fb59eeec + limb2: 0x10784713fb59eeec, }, r1a1: u288 { limb0: 0x90ac547745e13ed221e7ff6d, limb1: 0x72fd8ba2100b52edc8fe6adf, - limb2: 0xb07cd596e668799 - } + limb2: 0xb07cd596e668799, + }, }, G2Line { r0a0: u288 { limb0: 0x423870b6e907bad3e53a1eb8, limb1: 0xa40d0139dec99f50870dad86, - limb2: 0xb478020107ff84a + limb2: 0xb478020107ff84a, }, r0a1: u288 { limb0: 0x7955bbd3730aa19c17ab5055, limb1: 0xaa78ed37b06b1fd334e3d3cf, - limb2: 0xd4f1f559a4fe8c6 + limb2: 0xd4f1f559a4fe8c6, }, r1a0: u288 { limb0: 0xe660ec3b96e88f895941963f, limb1: 0x58b13980728f7f2cb5a5434b, - limb2: 0x10784713fb59eeec + limb2: 0x10784713fb59eeec, }, r1a1: u288 { limb0: 0x90ac547745e13ed221e7ff6d, limb1: 0x72fd8ba2100b52edc8fe6adf, - limb2: 0xb07cd596e668799 - } + limb2: 0xb07cd596e668799, + }, }, G2Line { r0a0: u288 { limb0: 0xc63bfc22e89cbddab53d25fe, limb1: 0x5bfa33f41b648419dad6ecee, - limb2: 0x29f285f798b40610 + limb2: 0x29f285f798b40610, }, r0a1: u288 { limb0: 0x685052730566d5e671c6896a, limb1: 0x9d632cc21dc7d36c01732c8d, - limb2: 0x2d2e5f43b41debb + limb2: 0x2d2e5f43b41debb, }, r1a0: u288 { limb0: 0xa08a1b8fcecc8a0833b4cfba, limb1: 0x72be9ff16897e8415c88d391, - limb2: 0x2f11915e5dbfe4db + limb2: 0x2f11915e5dbfe4db, }, r1a1: u288 { limb0: 0x25ccf150d767c294c0340770, limb1: 0x18c22516696708d37018fa53, - limb2: 0x2f6ceab98e5c92ec - } + limb2: 0x2f6ceab98e5c92ec, + }, }, G2Line { r0a0: u288 { limb0: 0x99481a4102c53eac80f3388e, limb1: 0xf5f8486ec984928173976d3f, - limb2: 0x1bd283b4cb081855 + limb2: 0x1bd283b4cb081855, }, r0a1: u288 { limb0: 0x5b874e4477dc6e06572fb2b7, limb1: 0x249ee0ef06247fa425a3fef5, - limb2: 0x1ae0e74588a52b14 + limb2: 0x1ae0e74588a52b14, }, r1a0: u288 { limb0: 0xea5de795431401fb27840e3c, limb1: 0x6faf5d812e5867e03f3e342c, - limb2: 0x275215ae272382f9 + limb2: 0x275215ae272382f9, }, r1a1: u288 { limb0: 0x486aa5eeaec04f001c7ff5, limb1: 0xd41375319ea34adc1551d9a3, - limb2: 0x3cf1dc61b974fbb - } + limb2: 0x3cf1dc61b974fbb, + }, }, G2Line { r0a0: u288 { limb0: 0xc63bfc22e89cbddab53d25fe, limb1: 0x5bfa33f41b648419dad6ecee, - limb2: 0x29f285f798b40610 + limb2: 0x29f285f798b40610, }, r0a1: u288 { limb0: 0x685052730566d5e671c6896a, limb1: 0x9d632cc21dc7d36c01732c8d, - limb2: 0x2d2e5f43b41debb + limb2: 0x2d2e5f43b41debb, }, r1a0: u288 { limb0: 0xa08a1b8fcecc8a0833b4cfba, limb1: 0x72be9ff16897e8415c88d391, - limb2: 0x2f11915e5dbfe4db + limb2: 0x2f11915e5dbfe4db, }, r1a1: u288 { limb0: 0x25ccf150d767c294c0340770, limb1: 0x18c22516696708d37018fa53, - limb2: 0x2f6ceab98e5c92ec - } + limb2: 0x2f6ceab98e5c92ec, + }, }, G2Line { r0a0: u288 { limb0: 0x99481a4102c53eac80f3388e, limb1: 0xf5f8486ec984928173976d3f, - limb2: 0x1bd283b4cb081855 + limb2: 0x1bd283b4cb081855, }, r0a1: u288 { limb0: 0x5b874e4477dc6e06572fb2b7, limb1: 0x249ee0ef06247fa425a3fef5, - limb2: 0x1ae0e74588a52b14 + limb2: 0x1ae0e74588a52b14, }, r1a0: u288 { limb0: 0xea5de795431401fb27840e3c, limb1: 0x6faf5d812e5867e03f3e342c, - limb2: 0x275215ae272382f9 + limb2: 0x275215ae272382f9, }, r1a1: u288 { limb0: 0x486aa5eeaec04f001c7ff5, limb1: 0xd41375319ea34adc1551d9a3, - limb2: 0x3cf1dc61b974fbb - } + limb2: 0x3cf1dc61b974fbb, + }, }, G2Line { r0a0: u288 { limb0: 0xa32359cf0ec38b184a1dcea9, limb1: 0x6bbbc5ef1267f2d51a878381, - limb2: 0x28df1061f929b4db + limb2: 0x28df1061f929b4db, }, r0a1: u288 { limb0: 0xd675802cc8b672fe8783e2d6, limb1: 0xbb7d5e433d79fd50d9469a7d, - limb2: 0x2784b6b89b7aa3ce + limb2: 0x2784b6b89b7aa3ce, }, r1a0: u288 { limb0: 0x249ea526c4c84209df18e160, limb1: 0x6b7ecab858c43a482ff55a47, - limb2: 0x45d81dac9b9b8ec + limb2: 0x45d81dac9b9b8ec, }, r1a1: u288 { limb0: 0x2e044de8199d7a5654fd9506, limb1: 0x17bae9b6381270ae16b4dded, - limb2: 0xfebafd1c55a0818 - } + limb2: 0xfebafd1c55a0818, + }, }, G2Line { r0a0: u288 { limb0: 0xa32359cf0ec38b184a1dcea9, limb1: 0x6bbbc5ef1267f2d51a878381, - limb2: 0x28df1061f929b4db + limb2: 0x28df1061f929b4db, }, r0a1: u288 { limb0: 0xd675802cc8b672fe8783e2d6, limb1: 0xbb7d5e433d79fd50d9469a7d, - limb2: 0x2784b6b89b7aa3ce + limb2: 0x2784b6b89b7aa3ce, }, r1a0: u288 { limb0: 0x249ea526c4c84209df18e160, limb1: 0x6b7ecab858c43a482ff55a47, - limb2: 0x45d81dac9b9b8ec + limb2: 0x45d81dac9b9b8ec, }, r1a1: u288 { limb0: 0x2e044de8199d7a5654fd9506, limb1: 0x17bae9b6381270ae16b4dded, - limb2: 0xfebafd1c55a0818 - } + limb2: 0xfebafd1c55a0818, + }, }, G2Line { r0a0: u288 { limb0: 0xd813dc3ba36fadef5eefdba8, limb1: 0x6d01874326cb306accf0faff, - limb2: 0x1c464c65c360a4c8 + limb2: 0x1c464c65c360a4c8, }, r0a1: u288 { limb0: 0xb7d92aae88aac832f2fa8c2e, limb1: 0xf57a537d0bbdac821cb31ab3, - limb2: 0x527b1aec5c0d2f1 + limb2: 0x527b1aec5c0d2f1, }, r1a0: u288 { limb0: 0xa07f43936bdbdf1dec60500b, limb1: 0x742456f2a8b6a9bae91cb16, - limb2: 0x1c4033eb3eba0cc5 + limb2: 0x1c4033eb3eba0cc5, }, r1a1: u288 { limb0: 0x94b3709ef3fc176b25617e7d, limb1: 0xaf22d45fcd3d4e3d14874fa, - limb2: 0x183887caa720ba0d - } + limb2: 0x183887caa720ba0d, + }, }, G2Line { r0a0: u288 { limb0: 0x3f02b00de6315b49872daa4d, limb1: 0xc303ab1deabf850249e8315f, - limb2: 0x1bdb6a8f0f0fdd3 + limb2: 0x1bdb6a8f0f0fdd3, }, r0a1: u288 { limb0: 0x92fce2a1127ff2f9b751e30d, limb1: 0x3eb729d57b891ac828eb15c3, - limb2: 0x2b484f5877256bb1 + limb2: 0x2b484f5877256bb1, }, r1a0: u288 { limb0: 0xf89b2f972cb4f7f4c599e891, limb1: 0xb4f5d2a5bde63ee512f11d9e, - limb2: 0x2dcdbce01b88089 + limb2: 0x2dcdbce01b88089, }, r1a1: u288 { limb0: 0xa7a47fc449bb8a9d2562bfcd, limb1: 0xc4e2d6ba5582860d7339459e, - limb2: 0x1d55e010c99b8d6c - } + limb2: 0x1d55e010c99b8d6c, + }, }, G2Line { r0a0: u288 { limb0: 0xd813dc3ba36fadef5eefdba8, limb1: 0x6d01874326cb306accf0faff, - limb2: 0x1c464c65c360a4c8 + limb2: 0x1c464c65c360a4c8, }, r0a1: u288 { limb0: 0xb7d92aae88aac832f2fa8c2e, limb1: 0xf57a537d0bbdac821cb31ab3, - limb2: 0x527b1aec5c0d2f1 + limb2: 0x527b1aec5c0d2f1, }, r1a0: u288 { limb0: 0xa07f43936bdbdf1dec60500b, limb1: 0x742456f2a8b6a9bae91cb16, - limb2: 0x1c4033eb3eba0cc5 + limb2: 0x1c4033eb3eba0cc5, }, r1a1: u288 { limb0: 0x94b3709ef3fc176b25617e7d, limb1: 0xaf22d45fcd3d4e3d14874fa, - limb2: 0x183887caa720ba0d - } + limb2: 0x183887caa720ba0d, + }, }, G2Line { r0a0: u288 { limb0: 0x3f02b00de6315b49872daa4d, limb1: 0xc303ab1deabf850249e8315f, - limb2: 0x1bdb6a8f0f0fdd3 + limb2: 0x1bdb6a8f0f0fdd3, }, r0a1: u288 { limb0: 0x92fce2a1127ff2f9b751e30d, limb1: 0x3eb729d57b891ac828eb15c3, - limb2: 0x2b484f5877256bb1 + limb2: 0x2b484f5877256bb1, }, r1a0: u288 { limb0: 0xf89b2f972cb4f7f4c599e891, limb1: 0xb4f5d2a5bde63ee512f11d9e, - limb2: 0x2dcdbce01b88089 + limb2: 0x2dcdbce01b88089, }, r1a1: u288 { limb0: 0xa7a47fc449bb8a9d2562bfcd, limb1: 0xc4e2d6ba5582860d7339459e, - limb2: 0x1d55e010c99b8d6c - } + limb2: 0x1d55e010c99b8d6c, + }, }, G2Line { r0a0: u288 { limb0: 0xd6632e909bb2d794dcbb2d61, limb1: 0x7457873febfef7ae91c35b58, - limb2: 0x9a9ca4c4d09e546 + limb2: 0x9a9ca4c4d09e546, }, r0a1: u288 { limb0: 0x94c62fe653f917fc33a9d5b5, limb1: 0x8bc51d76a334c7a433ae35ab, - limb2: 0xb27ad066a166ac4 + limb2: 0xb27ad066a166ac4, }, r1a0: u288 { limb0: 0x96db5ee9875982bf556c73e9, limb1: 0xe9f1ec9f66254c4f268a27f, - limb2: 0x1eef6e016b9ca6ff + limb2: 0x1eef6e016b9ca6ff, }, r1a1: u288 { limb0: 0xf6d057dbafe03b544a69128f, limb1: 0xe03743865a854f3f554c95b7, - limb2: 0x29c21dd74cd29781 - } + limb2: 0x29c21dd74cd29781, + }, }, G2Line { r0a0: u288 { limb0: 0xb964e3c6d975ca8cf820a505, limb1: 0x58cf1dfe1e77f86538998d74, - limb2: 0x253f8f7c9eb4af1 + limb2: 0x253f8f7c9eb4af1, }, r0a1: u288 { limb0: 0x751409cbae1c0030ee5977d1, limb1: 0xe203b703551126fdae59e500, - limb2: 0x2e4d7a2dbc83f9b5 + limb2: 0x2e4d7a2dbc83f9b5, }, r1a0: u288 { limb0: 0x3bb2d7500573a130dfcc7b70, limb1: 0x2e94772d1e8a4db8783ea2f7, - limb2: 0xb43fdec6bd93bce + limb2: 0xb43fdec6bd93bce, }, r1a1: u288 { limb0: 0xdcad2320f5fe6edb3ee742ff, limb1: 0xdb00d689081d6770c6978582, - limb2: 0x6029475ae5587e5 - } + limb2: 0x6029475ae5587e5, + }, }, G2Line { r0a0: u288 { limb0: 0xd6632e909bb2d794dcbb2d61, limb1: 0x7457873febfef7ae91c35b58, - limb2: 0x9a9ca4c4d09e546 + limb2: 0x9a9ca4c4d09e546, }, r0a1: u288 { limb0: 0x94c62fe653f917fc33a9d5b5, limb1: 0x8bc51d76a334c7a433ae35ab, - limb2: 0xb27ad066a166ac4 + limb2: 0xb27ad066a166ac4, }, r1a0: u288 { limb0: 0x96db5ee9875982bf556c73e9, limb1: 0xe9f1ec9f66254c4f268a27f, - limb2: 0x1eef6e016b9ca6ff + limb2: 0x1eef6e016b9ca6ff, }, r1a1: u288 { limb0: 0xf6d057dbafe03b544a69128f, limb1: 0xe03743865a854f3f554c95b7, - limb2: 0x29c21dd74cd29781 - } + limb2: 0x29c21dd74cd29781, + }, }, G2Line { r0a0: u288 { limb0: 0xb964e3c6d975ca8cf820a505, limb1: 0x58cf1dfe1e77f86538998d74, - limb2: 0x253f8f7c9eb4af1 + limb2: 0x253f8f7c9eb4af1, }, r0a1: u288 { limb0: 0x751409cbae1c0030ee5977d1, limb1: 0xe203b703551126fdae59e500, - limb2: 0x2e4d7a2dbc83f9b5 + limb2: 0x2e4d7a2dbc83f9b5, }, r1a0: u288 { limb0: 0x3bb2d7500573a130dfcc7b70, limb1: 0x2e94772d1e8a4db8783ea2f7, - limb2: 0xb43fdec6bd93bce + limb2: 0xb43fdec6bd93bce, }, r1a1: u288 { limb0: 0xdcad2320f5fe6edb3ee742ff, limb1: 0xdb00d689081d6770c6978582, - limb2: 0x6029475ae5587e5 - } + limb2: 0x6029475ae5587e5, + }, }, G2Line { r0a0: u288 { limb0: 0x44ec71963665d6ec8ad74841, limb1: 0x8403830d652edbde8339e929, - limb2: 0x100fb102d85f5085 + limb2: 0x100fb102d85f5085, }, r0a1: u288 { limb0: 0xc055c9daf26d35310e7b1e74, limb1: 0x40cdbeaffc8383e3cdc8926, - limb2: 0x6fd31831cc5c2e2 + limb2: 0x6fd31831cc5c2e2, }, r1a0: u288 { limb0: 0xad2ce478f7297f6138ae1c8c, limb1: 0x4d31d6f7382542621c5b6e17, - limb2: 0x7dbf7c3c0f14e33 + limb2: 0x7dbf7c3c0f14e33, }, r1a1: u288 { limb0: 0xe4640196247c27251483088e, limb1: 0x34dea70f9956ebc54e0606ba, - limb2: 0x8b41cd44b48eaaa - } + limb2: 0x8b41cd44b48eaaa, + }, }, G2Line { r0a0: u288 { limb0: 0x44ec71963665d6ec8ad74841, limb1: 0x8403830d652edbde8339e929, - limb2: 0x100fb102d85f5085 + limb2: 0x100fb102d85f5085, }, r0a1: u288 { limb0: 0xc055c9daf26d35310e7b1e74, limb1: 0x40cdbeaffc8383e3cdc8926, - limb2: 0x6fd31831cc5c2e2 + limb2: 0x6fd31831cc5c2e2, }, r1a0: u288 { limb0: 0xad2ce478f7297f6138ae1c8c, limb1: 0x4d31d6f7382542621c5b6e17, - limb2: 0x7dbf7c3c0f14e33 + limb2: 0x7dbf7c3c0f14e33, }, r1a1: u288 { limb0: 0xe4640196247c27251483088e, limb1: 0x34dea70f9956ebc54e0606ba, - limb2: 0x8b41cd44b48eaaa - } + limb2: 0x8b41cd44b48eaaa, + }, }, G2Line { r0a0: u288 { limb0: 0xa4dc3d37041029c7b2f1bb9, limb1: 0xf72869e330906647a7d54af8, - limb2: 0x705bd30bad6ce42 + limb2: 0x705bd30bad6ce42, }, r0a1: u288 { limb0: 0xb00eef39b09348fd65e27aec, limb1: 0xd5e053aa5ae39359fac6cdbc, - limb2: 0x90e03f1f820fe9a + limb2: 0x90e03f1f820fe9a, }, r1a0: u288 { limb0: 0x7f56704e86148b1a5595647e, limb1: 0xb8e4acc00d27e4eaf2d3de14, - limb2: 0x160398dceafe1fbe + limb2: 0x160398dceafe1fbe, }, r1a1: u288 { limb0: 0x7c39f499101722b5d82ceec4, limb1: 0xaf99a11bb8ab6c8134832009, - limb2: 0x2d7388a9d5187a36 - } + limb2: 0x2d7388a9d5187a36, + }, }, G2Line { r0a0: u288 { limb0: 0xa4dc3d37041029c7b2f1bb9, limb1: 0xf72869e330906647a7d54af8, - limb2: 0x705bd30bad6ce42 + limb2: 0x705bd30bad6ce42, }, r0a1: u288 { limb0: 0xb00eef39b09348fd65e27aec, limb1: 0xd5e053aa5ae39359fac6cdbc, - limb2: 0x90e03f1f820fe9a + limb2: 0x90e03f1f820fe9a, }, r1a0: u288 { limb0: 0x7f56704e86148b1a5595647e, limb1: 0xb8e4acc00d27e4eaf2d3de14, - limb2: 0x160398dceafe1fbe + limb2: 0x160398dceafe1fbe, }, r1a1: u288 { limb0: 0x7c39f499101722b5d82ceec4, limb1: 0xaf99a11bb8ab6c8134832009, - limb2: 0x2d7388a9d5187a36 - } + limb2: 0x2d7388a9d5187a36, + }, }, G2Line { r0a0: u288 { limb0: 0x26743d3c5ceab5151856abc8, limb1: 0x2bc840c6b3375132f6df6c4d, - limb2: 0xf20cc4455c9206b + limb2: 0xf20cc4455c9206b, }, r0a1: u288 { limb0: 0x75257f283994114ee03b667e, limb1: 0xb71eada78256c22a8b22564d, - limb2: 0x2c4f6002e64db7e4 + limb2: 0x2c4f6002e64db7e4, }, r1a0: u288 { limb0: 0xadeaeea86f50da58c232d0b5, limb1: 0xe988059d0234448257239cec, - limb2: 0x23c7423d92bbc634 + limb2: 0x23c7423d92bbc634, }, r1a1: u288 { limb0: 0x6afee648e46e570b43f3696d, limb1: 0x9a3f1aae0067f1de3d0a489, - limb2: 0xa7256957d6a8ed - } + limb2: 0xa7256957d6a8ed, + }, }, G2Line { r0a0: u288 { limb0: 0x26743d3c5ceab5151856abc8, limb1: 0x2bc840c6b3375132f6df6c4d, - limb2: 0xf20cc4455c9206b + limb2: 0xf20cc4455c9206b, }, r0a1: u288 { limb0: 0x75257f283994114ee03b667e, limb1: 0xb71eada78256c22a8b22564d, - limb2: 0x2c4f6002e64db7e4 + limb2: 0x2c4f6002e64db7e4, }, r1a0: u288 { limb0: 0xadeaeea86f50da58c232d0b5, limb1: 0xe988059d0234448257239cec, - limb2: 0x23c7423d92bbc634 + limb2: 0x23c7423d92bbc634, }, r1a1: u288 { limb0: 0x6afee648e46e570b43f3696d, limb1: 0x9a3f1aae0067f1de3d0a489, - limb2: 0xa7256957d6a8ed - } + limb2: 0xa7256957d6a8ed, + }, }, G2Line { r0a0: u288 { limb0: 0x9894b9b6df6285e00cb3ef9d, limb1: 0xc7799b231f547596527979f9, - limb2: 0x1873cf42f2befcbc + limb2: 0x1873cf42f2befcbc, }, r0a1: u288 { limb0: 0xea5b37d753c87bdd55f0ed0, limb1: 0x70d0582e29fd33896e945be5, - limb2: 0x273059304eef6b83 + limb2: 0x273059304eef6b83, }, r1a0: u288 { limb0: 0x1a8c1b6d717a3b41ece55725, limb1: 0x7b31c1b97f15745a6d80ea0d, - limb2: 0x2cd26d3a7bbe93e6 + limb2: 0x2cd26d3a7bbe93e6, }, r1a1: u288 { limb0: 0xe2ad8bc0279b5c304c489ca6, limb1: 0x176d1c945108ce77fcd238cd, - limb2: 0xde3c7c3f1c3d01b - } + limb2: 0xde3c7c3f1c3d01b, + }, }, G2Line { r0a0: u288 { limb0: 0x3980a9ac8c34a235d2616212, limb1: 0x84c8a8ab074ce118b68f30e9, - limb2: 0x13d1902579c8a95e + limb2: 0x13d1902579c8a95e, }, r0a1: u288 { limb0: 0x84b1be8046674b6544cdbd07, limb1: 0x198c1a70db0768c46ee0879f, - limb2: 0xb7e46866f7c1d4f + limb2: 0xb7e46866f7c1d4f, }, r1a0: u288 { limb0: 0x5aa04f6da050797974642dff, limb1: 0x67018b676db95697c6fc0e94, - limb2: 0x174b5365db908344 + limb2: 0x174b5365db908344, }, r1a1: u288 { limb0: 0x12ae4d7bff5800094457c75f, limb1: 0xaf7fb1cf0adfdefc0943c20d, - limb2: 0x2e168cd37dc90c25 - } + limb2: 0x2e168cd37dc90c25, + }, }, G2Line { r0a0: u288 { limb0: 0x9894b9b6df6285e00cb3ef9d, limb1: 0xc7799b231f547596527979f9, - limb2: 0x1873cf42f2befcbc + limb2: 0x1873cf42f2befcbc, }, r0a1: u288 { limb0: 0xea5b37d753c87bdd55f0ed0, limb1: 0x70d0582e29fd33896e945be5, - limb2: 0x273059304eef6b83 + limb2: 0x273059304eef6b83, }, r1a0: u288 { limb0: 0x1a8c1b6d717a3b41ece55725, limb1: 0x7b31c1b97f15745a6d80ea0d, - limb2: 0x2cd26d3a7bbe93e6 + limb2: 0x2cd26d3a7bbe93e6, }, r1a1: u288 { limb0: 0xe2ad8bc0279b5c304c489ca6, limb1: 0x176d1c945108ce77fcd238cd, - limb2: 0xde3c7c3f1c3d01b - } + limb2: 0xde3c7c3f1c3d01b, + }, }, G2Line { r0a0: u288 { limb0: 0x3980a9ac8c34a235d2616212, limb1: 0x84c8a8ab074ce118b68f30e9, - limb2: 0x13d1902579c8a95e + limb2: 0x13d1902579c8a95e, }, r0a1: u288 { limb0: 0x84b1be8046674b6544cdbd07, limb1: 0x198c1a70db0768c46ee0879f, - limb2: 0xb7e46866f7c1d4f + limb2: 0xb7e46866f7c1d4f, }, r1a0: u288 { limb0: 0x5aa04f6da050797974642dff, limb1: 0x67018b676db95697c6fc0e94, - limb2: 0x174b5365db908344 + limb2: 0x174b5365db908344, }, r1a1: u288 { limb0: 0x12ae4d7bff5800094457c75f, limb1: 0xaf7fb1cf0adfdefc0943c20d, - limb2: 0x2e168cd37dc90c25 - } + limb2: 0x2e168cd37dc90c25, + }, }, ] .span(); @@ -11796,125 +11032,125 @@ mod pairing_tests { w0: u288 { limb0: 0x23ca9e30f07b55b24f193b0f, limb1: 0xe87a29af47945c59bebde6e3, - limb2: 0x25202875a18b48d6 + limb2: 0x25202875a18b48d6, }, w1: u288 { limb0: 0x73c45803819fb7aff4be48d4, limb1: 0xbc4e8cdff399f10e04552e9e, - limb2: 0xe200b0579a47bb3 + limb2: 0xe200b0579a47bb3, }, w2: u288 { limb0: 0xb7e202dd946f1c1e893294f5, limb1: 0x9b242eecb685264d1d38f92, - limb2: 0x2743277dfb400b12 + limb2: 0x2743277dfb400b12, }, w3: u288 { limb0: 0x713dcf49af707a72abcdd23f, limb1: 0x297d2b276e1e10592a67e028, - limb2: 0x7ce37c37c9a9830 + limb2: 0x7ce37c37c9a9830, }, w4: u288 { limb0: 0x1a1e7136ddb0226444e3dd93, limb1: 0x10ec67e9ba10af63294f9067, - limb2: 0x2209ca34e9632ffe + limb2: 0x2209ca34e9632ffe, }, w5: u288 { limb0: 0x282b36f9275c1d75a96b4bba, limb1: 0xcd30a7361a37968571854966, - limb2: 0x56824745ec0be7e + limb2: 0x56824745ec0be7e, }, w6: u288 { limb0: 0xfd161b3f69becd983863c1f8, limb1: 0x9e173cc60a49b16b0ae54cb6, - limb2: 0x21c2ff8564f4b359 + limb2: 0x21c2ff8564f4b359, }, w7: u288 { limb0: 0x83b2b95b17f74a4135c8f0ec, limb1: 0x1d49d1548ca28958a1477f77, - limb2: 0x21dfaf1ab1424f7a + limb2: 0x21dfaf1ab1424f7a, }, w8: u288 { limb0: 0x9f42e8c899eb37b1c750776a, limb1: 0x1d527af4bf9944d9cacfc9b6, - limb2: 0x2cedae6373f81ff3 + limb2: 0x2cedae6373f81ff3, }, w9: u288 { limb0: 0x5826957af02c5ff75ecf2f7f, limb1: 0x63de3d3ed13db73b40636e33, - limb2: 0x1b4e8f8bab34df27 + limb2: 0x1b4e8f8bab34df27, }, w10: u288 { limb0: 0xe47acbb5fc054b575c4de206, limb1: 0x21c9659455fa7db99219fcb1, - limb2: 0x1da51303ee50de45 + limb2: 0x1da51303ee50de45, }, w11: u288 { limb0: 0xfba59dce6d63b61b27c81f88, limb1: 0xdcca144de9ddd923bbb33c4b, - limb2: 0x291ee2a6f851083a - } + limb2: 0x291ee2a6f851083a, + }, }, lambda_root_inverse: E12D { w0: u288 { limb0: 0xb5c3eabbd3b1eef8ea5617f4, limb1: 0x11833d922f25b3a34d3fca8f, - limb2: 0x13750c425c423ee + limb2: 0x13750c425c423ee, }, w1: u288 { limb0: 0x8983bd9d7448c89812be4350, limb1: 0xcc0a0b4ca76d768c80ff8e55, - limb2: 0xfb6e764fd741485 + limb2: 0xfb6e764fd741485, }, w2: u288 { limb0: 0x3edb9b44088f29518c1cf962, limb1: 0x3800221baf8e4d5d69808d93, - limb2: 0x14d575b46d080633 + limb2: 0x14d575b46d080633, }, w3: u288 { limb0: 0x132e0ad247c2f54fbe52f5bb, limb1: 0x4b0a3207c00cd30d7bdcf774, - limb2: 0x1a93653a38cb2fe4 + limb2: 0x1a93653a38cb2fe4, }, w4: u288 { limb0: 0xad30ef932f284898d3a7a46b, limb1: 0x4163e6658533a807cd45d00d, - limb2: 0xddb14c4f82f8631 + limb2: 0xddb14c4f82f8631, }, w5: u288 { limb0: 0x6b8e30e4eaa63a9ed81168d8, limb1: 0x313309f6dbce4e865d4fedb1, - limb2: 0x2d3f5b1fefcb56f + limb2: 0x2d3f5b1fefcb56f, }, w6: u288 { limb0: 0x4ef02281cc723a6da515811a, limb1: 0x14ff8ed665651ab8ce848f43, - limb2: 0x131a42012d97077d + limb2: 0x131a42012d97077d, }, w7: u288 { limb0: 0x9378001a32c652b319e017f4, limb1: 0x7adaa3bb782735807171c8ee, - limb2: 0x26a3c45ea339b47e + limb2: 0x26a3c45ea339b47e, }, w8: u288 { limb0: 0xb45f0d072cee9451b2ef6bcd, limb1: 0xb5c79d9af82faa633c46c783, - limb2: 0x288162b64a95050e + limb2: 0x288162b64a95050e, }, w9: u288 { limb0: 0xb400e23dbb10336db8e3e567, limb1: 0xf8be889f6826d20f76b01fa, - limb2: 0x2a6ee642f39f6ea8 + limb2: 0x2a6ee642f39f6ea8, }, w10: u288 { limb0: 0xaa002ca04722ef6e113c90c7, limb1: 0x4a44cfbf7d0d8a113c67d3b8, - limb2: 0x1b19f196206d8a99 + limb2: 0x1b19f196206d8a99, }, w11: u288 { limb0: 0x3b36e8198a598435a63c262d, limb1: 0x5bd67fccbd394684e1e4c572, - limb2: 0x166091a34daab9c1 - } + limb2: 0x166091a34daab9c1, + }, }, w: MillerLoopResultScalingFactor { w0: u288 { limb0: 0x1, limb1: 0x0, limb2: 0x0 }, @@ -11922,3868 +11158,3194 @@ mod pairing_tests { w4: u288 { limb0: 0x0, limb1: 0x0, limb2: 0x0 }, w6: u288 { limb0: 0x0, limb1: 0x0, limb2: 0x0 }, w8: u288 { limb0: 0x0, limb1: 0x0, limb2: 0x0 }, - w10: u288 { limb0: 0x0, limb1: 0x0, limb2: 0x0 } + w10: u288 { limb0: 0x0, limb1: 0x0, limb2: 0x0 }, }, Ris: array![ E12D { w0: u288 { limb0: 0xe2f6acee09a64156c15e3478, limb1: 0xed70b0971287f50104248a93, - limb2: 0x127703e3d61d8953 + limb2: 0x127703e3d61d8953, }, w1: u288 { limb0: 0x3f33ed733eb4838ff43a064d, limb1: 0x261b3bb5a0d1e3b1fc2eea8d, - limb2: 0x1b45799651c4e710 + limb2: 0x1b45799651c4e710, }, w2: u288 { limb0: 0xfef7aacba92a3760281d63cc, limb1: 0xd3c17160fa29274e8fb29068, - limb2: 0xd4e6a9fe3bada06 + limb2: 0xd4e6a9fe3bada06, }, w3: u288 { limb0: 0xf8318240f89419438fe2d639, limb1: 0xe998e7c29f76b508e0538e38, - limb2: 0xfb03e005dbba59f + limb2: 0xfb03e005dbba59f, }, w4: u288 { limb0: 0x70c9890149ae3e2742c5c731, limb1: 0xe9a6d4fc61f71f5d5ed989d4, - limb2: 0x2dad8e036bd59924 + limb2: 0x2dad8e036bd59924, }, w5: u288 { limb0: 0xd7b63c2f5eed5c20e605768d, limb1: 0xb0003493ed0492f6fa50f418, - limb2: 0x17228fa4697986c7 + limb2: 0x17228fa4697986c7, }, w6: u288 { limb0: 0xa3dc70c11244fb2deda36cb2, limb1: 0xb8fb759606fba9d97587f0e8, - limb2: 0x2e2f815e063bb0 + limb2: 0x2e2f815e063bb0, }, w7: u288 { limb0: 0x686d29a44e7110ac6c8b9505, limb1: 0x74ac5a716ee1e9d44b50960f, - limb2: 0x2152b931c3859503 + limb2: 0x2152b931c3859503, }, w8: u288 { limb0: 0x5868412c8c818820977a66f0, limb1: 0x2f9e83b27ce0c185c6f1c18f, - limb2: 0x14fac55b88d3ce93 + limb2: 0x14fac55b88d3ce93, }, w9: u288 { limb0: 0xb78d2652e51b3c673a385a19, limb1: 0x795b0f1a23960c7aca666e05, - limb2: 0x12a1f27a3602498a + limb2: 0x12a1f27a3602498a, }, w10: u288 { limb0: 0xaccfdbe167c5f15ccbe8a10b, limb1: 0xe7f7a9853750e8e77d47908, - limb2: 0x1b9bfc8952b7f369 + limb2: 0x1b9bfc8952b7f369, }, w11: u288 { limb0: 0x149b5924ec95ec9b05da4bf8, limb1: 0x7567100511e744c551a6e4ea, - limb2: 0x2b223a2dfd168795 - } - }, - E12D { - w0: u288 { - limb0: 0x1d18bba0ebd5a2044edde2d5, - limb1: 0xcff72595f4be766f751bdc88, - limb2: 0x1756d70ddb0dce5c - }, - w1: u288 { - limb0: 0xce9d8c8622dcbc41d80c5c7d, - limb1: 0xccb39a0411bd24cde646f3c7, - limb2: 0x12e2fa31c56f918 - }, - w2: u288 { - limb0: 0x2436614d9a644c11addf35ad, - limb1: 0x6ebf0bc2a944da8f2ae8bfd6, - limb2: 0xfff84376a792c24 - }, - w3: u288 { - limb0: 0x78ce4be8cb20ba9452ad8695, - limb1: 0x6971c85248e885e3290f24c, - limb2: 0x2f264f33452fc5ff - }, - w4: u288 { - limb0: 0xe3720244aa30dda423ce3dc4, - limb1: 0x5d28f9c394652b030938f27, - limb2: 0x1b98c429f9f06b46 - }, - w5: u288 { - limb0: 0xdc1c777953ee2849ea7c28dd, - limb1: 0xc759e046ffa085efb9cea1ae, - limb2: 0x18cdb5c03ee2fd8f - }, - w6: u288 { - limb0: 0xd5722001132b1c4a179593e2, - limb1: 0x7e6d999ba0301813eb314fa5, - limb2: 0x295544d97774c4b9 - }, - w7: u288 { - limb0: 0xb0a32bcbab707b27e535aa6a, - limb1: 0x6b684c2133909ca403e3a990, - limb2: 0x1328aa12a979166a - }, - w8: u288 { - limb0: 0xd5daf73d2fdf09eb67c73665, - limb1: 0x9e5a3bfdf6fcedf403b59e37, - limb2: 0x1371958bb4738135 - }, - w9: u288 { - limb0: 0x9d015ba30d89adf27defff94, - limb1: 0xb7260d995255184d9a38f427, - limb2: 0x145e8f56d3d54548 - }, - w10: u288 { - limb0: 0x317161ff156275f17f516e15, - limb1: 0xe4d5ccbcb87850490d73d269, - limb2: 0x8de94706ee61c77 + limb2: 0x2b223a2dfd168795, }, - w11: u288 { - limb0: 0x7429cbd0ca6e844a6fb5688b, - limb1: 0xfdf0bde28d03af2b59a8947f, - limb2: 0x1ddf0e95870c71ad - } }, E12D { w0: u288 { limb0: 0xa72a4848e30642eded615898, limb1: 0xbef543f14f1aad5e18139eb6, - limb2: 0x2c7bcf2fddd1e961 + limb2: 0x2c7bcf2fddd1e961, }, w1: u288 { limb0: 0x46fd177379d58e372b9b6f07, limb1: 0x517211fbf41f194c331f00e5, - limb2: 0x2f5c91ca28636a00 + limb2: 0x2f5c91ca28636a00, }, w2: u288 { limb0: 0xe41a3ec01dc8bb8501df492e, limb1: 0xd7f7ab9d0f2782f2373b5314, - limb2: 0x91712eca3f77452 + limb2: 0x91712eca3f77452, }, w3: u288 { limb0: 0x133e5c67a8f2690bc04b91b9, limb1: 0x8582c464e09299148f27b703, - limb2: 0x249bfada0b86ef33 + limb2: 0x249bfada0b86ef33, }, w4: u288 { limb0: 0xeeb02ca00147f12d2e8458f7, limb1: 0xceaae80445f4c7407c02c1da, - limb2: 0x25e046234afd2a85 + limb2: 0x25e046234afd2a85, }, w5: u288 { limb0: 0x64b3d4f3d18031d4235862df, limb1: 0x92f83b81871013f01b47013c, - limb2: 0x15fe7761fa1f33ac + limb2: 0x15fe7761fa1f33ac, }, w6: u288 { limb0: 0x3fb298307f41db600150f88c, limb1: 0x3da094ebafc14d7eb2182997, - limb2: 0x818cb4e830ba356 + limb2: 0x818cb4e830ba356, }, w7: u288 { limb0: 0x12ef8a22b1bc73ea237df6f6, limb1: 0x9d344aace728adbd489c9720, - limb2: 0x821d3466302b0d2 + limb2: 0x821d3466302b0d2, }, w8: u288 { limb0: 0x638f4928fe9fe06b17f5d2db, limb1: 0x596ab928517338096d96b2f6, - limb2: 0x29e68f04a0ee89be + limb2: 0x29e68f04a0ee89be, }, w9: u288 { limb0: 0x67f1e11e7d4fea0d7745eb44, limb1: 0x105e36bfdc4442638522b7d5, - limb2: 0x2593d5a9dac5df2c + limb2: 0x2593d5a9dac5df2c, }, w10: u288 { limb0: 0x453ddfce74fe7c8b9bc7ea76, limb1: 0x73264637eb39edbe0400abf1, - limb2: 0x2f665b3f82c255a5 + limb2: 0x2f665b3f82c255a5, }, w11: u288 { limb0: 0xa64871f14a5c040bc6216bc1, limb1: 0xc3071982e7657ce273aafe11, - limb2: 0x25c2ccc6a7f12699 - } - }, - E12D { - w0: u288 { - limb0: 0x83f2f62c17a26e5331c80523, - limb1: 0x6926928f388bb690c307cf98, - limb2: 0x2e20ee9e709683aa - }, - w1: u288 { - limb0: 0x83d0f310650d9ea0226788a, - limb1: 0xd4cadc8961094ee83e2e23b2, - limb2: 0x1c9f398ca10fc2b8 - }, - w2: u288 { - limb0: 0xf9a4f4ae040a34624a4d4397, - limb1: 0x24e117b94912f863d2a25575, - limb2: 0x15ca68b9e3e59b71 - }, - w3: u288 { - limb0: 0x1b03e3bdcdbee02bb7a0448b, - limb1: 0xb9e6e27a79d9358bc7e6799f, - limb2: 0xf2d19841839959d - }, - w4: u288 { - limb0: 0x2b534cfd8aa64520418fa813, - limb1: 0xdaace0ac529f24becd8aabf3, - limb2: 0x1d3c1ddde1ae177c - }, - w5: u288 { - limb0: 0xddf4d0d3f587c59a9e38c0f7, - limb1: 0x8a26911a1a855a0ebc74d3b1, - limb2: 0x840e1faeeabf43c - }, - w6: u288 { - limb0: 0x69e0e1bcd385d7e6e8f1b4eb, - limb1: 0xea5bcdde0bf9850f39a7cfa3, - limb2: 0x27391d933441232e - }, - w7: u288 { - limb0: 0xab4936797b756d61dedd5f6c, - limb1: 0x299819139c71c846bbab8405, - limb2: 0x1b730dfda6569322 - }, - w8: u288 { - limb0: 0xa4b120723a618e04955c3625, - limb1: 0x8b5ed5792defdc4bc3f3c724, - limb2: 0x15c5db9c9dbe92f3 - }, - w9: u288 { - limb0: 0x56792113672b90fecdf7979b, - limb1: 0xab0dbf5a1938f47e4e96aeb6, - limb2: 0x142dbcbdfecd0b4c - }, - w10: u288 { - limb0: 0x2473afe69f5f9b4a3c33c054, - limb1: 0xd3bb40ce915ee671a4c45a9d, - limb2: 0x3ea3122ff5d8d0d + limb2: 0x25c2ccc6a7f12699, }, - w11: u288 { - limb0: 0x744fa038b59b62031f136a9c, - limb1: 0xa1871d9e73a819563bf271fe, - limb2: 0x12c10ba659650297 - } }, E12D { w0: u288 { - limb0: 0x6d6cb34445e96e155da0ac50, - limb1: 0x7298a9dba442496464d838f0, - limb2: 0x2b7c1078e80305bc + limb0: 0x8d5b811a09caa58be413ffdb, + limb1: 0xaec13af0ff4aa5a9b3dcb582, + limb2: 0xb759534e5c8811b, }, w1: u288 { - limb0: 0xf8a313ed64db25c78c8b096f, - limb1: 0xc93b46d58d86b50429af9f8a, - limb2: 0x228cf6341232c9d0 + limb0: 0x8bfd162f232d87d70447c4fb, + limb1: 0x5b714a61f27eeeb66210a238, + limb2: 0x235eb11b01463a62, }, w2: u288 { - limb0: 0x23890f1cf78e2605306ae152, - limb1: 0xaf4cf161cb684706f827cfa8, - limb2: 0x130b4c9ae441fcae + limb0: 0xa97e216801ac38c907ba52a0, + limb1: 0x70ae4f1968af5555df98298f, + limb2: 0x95e6702a59e1a6a, }, w3: u288 { - limb0: 0x62687f88354998b8840a0195, - limb1: 0x438e51e1e015164c02994424, - limb2: 0x14d87640c06d4dc4 + limb0: 0x9cd4ed96bdec2348819310c, + limb1: 0x4766b2e8e7e732e7970b9689, + limb2: 0x149bdcbd6a7afcb9, }, w4: u288 { - limb0: 0x14461e8620d7e59170e35a58, - limb1: 0x50467d967d5945189eaa9ee4, - limb2: 0xc787e583f9bf4ec + limb0: 0xbe702be60291c9e6e885e5c3, + limb1: 0xe93a545111f29c9592a036c4, + limb2: 0x1591e5e82ed4b4dc, }, w5: u288 { - limb0: 0x58475110a18dc38919796fa8, - limb1: 0xd90ff1560c383963d3b8d20b, - limb2: 0xd03d7c6d7409d19 + limb0: 0x8d199a3abe5faaff7a3bc9f8, + limb1: 0x7cc933e5a020b4766ac8a761, + limb2: 0x2fe6b400ae57faae, }, w6: u288 { - limb0: 0x7a76fedec2f8bb73e741c92c, - limb1: 0xbb5b5111b0eb42a6d029b125, - limb2: 0xfbc944c95a6966a + limb0: 0xaec592ab3c28bfe83c215cfa, + limb1: 0xac24f84ed0a437939c2000e9, + limb2: 0x1f2843afe30b053a, }, w7: u288 { - limb0: 0xaf43099d256eb1381b3e7a0, - limb1: 0x492f9612c4f9d39b0ea13c36, - limb2: 0x151643fca64fd6dc + limb0: 0x6d2d0627cede31c8eb85e75e, + limb1: 0x7bdddc87f039012eb3b77194, + limb2: 0x178660f13401179e, }, w8: u288 { - limb0: 0xe0173579222bdfb0bce72e0c, - limb1: 0xb625fa436b099cbe6f52ca18, - limb2: 0x2dff45bf5a38fe23 + limb0: 0x62368134bd89bd0f837ed4d4, + limb1: 0x6dc31aed6fb226f4b4c0f22c, + limb2: 0x24e758c4f9d85d63, }, w9: u288 { - limb0: 0x6976739088ef49797b0701dd, - limb1: 0xbd5451c1d8dffe63a59bf9d8, - limb2: 0x1ee5b2809c97438d + limb0: 0x2f1d16930c76c2c58ded454a, + limb1: 0xd31b8e954fb055fe7ca38da, + limb2: 0xdc52b7ecb883c77, }, w10: u288 { - limb0: 0x36ecb98c17134963d92f15ad, - limb1: 0x7dd694be409df34861715753, - limb2: 0x2c76ce55fee206f5 + limb0: 0x709c6bce583682d54711f158, + limb1: 0xb32e399977ba98f1dbf49828, + limb2: 0x1ff3ce291ef8cdaa, }, w11: u288 { - limb0: 0x1f6f2dd6648cb840fd3bb49d, - limb1: 0x8812fbed36e6acef711f7d4f, - limb2: 0x2da20280fa167018 - } + limb0: 0xfedfcfb5ac3535fd88a15183, + limb1: 0xe97e7b5d3bf6635f37dd122d, + limb2: 0x22a38c2aae1e8fc9, + }, }, E12D { w0: u288 { limb0: 0x4e15598d95c5f7c52c6b9226, limb1: 0x7260273fb797ec0382fc0b74, - limb2: 0x1b4722521d49dd9c + limb2: 0x1b4722521d49dd9c, }, w1: u288 { limb0: 0x41a84bd4c94bd9e253b5dbe8, limb1: 0x4f06564a6624a9a4b1f4922f, - limb2: 0x154f62ec865e8ec2 + limb2: 0x154f62ec865e8ec2, }, w2: u288 { limb0: 0x25ed47681b082c51b72e1c67, limb1: 0xfdab86c84aa645fdcc31d18d, - limb2: 0x824a28773085f87 + limb2: 0x824a28773085f87, }, w3: u288 { limb0: 0x725527ec8d20e00f959c8e4b, limb1: 0x5f0a9b28686d3343669aa6dd, - limb2: 0x24b7b0049449f95c + limb2: 0x24b7b0049449f95c, }, w4: u288 { limb0: 0xbbe336284924385760066449, limb1: 0xf34b401046c192b98e0b8e64, - limb2: 0x22a2832e9e2adf52 + limb2: 0x22a2832e9e2adf52, }, w5: u288 { limb0: 0x49e39158392c0ff5930f63bd, limb1: 0xdc907401ccc882dbb3d29c09, - limb2: 0x135a779eb01ae2a9 + limb2: 0x135a779eb01ae2a9, }, w6: u288 { limb0: 0x27f79ea3a7d57234b676f496, limb1: 0x75257d3143963669b9c2f6a, - limb2: 0x2b202d6fa27717e1 + limb2: 0x2b202d6fa27717e1, }, w7: u288 { limb0: 0xff147074bd0eb0177d13885d, limb1: 0x75c3a42b9b267b3842b6b4c7, - limb2: 0x54de18ae56affbc + limb2: 0x54de18ae56affbc, }, w8: u288 { limb0: 0xea9ab70d9faddee08a3d721, limb1: 0x2799218b0495f05389162288, - limb2: 0x1b188d8d706d0da5 + limb2: 0x1b188d8d706d0da5, }, w9: u288 { limb0: 0xc78b4fdfd2c7f08de090785a, limb1: 0xb0ed8ae4c9d8f8cf66b189a3, - limb2: 0x3ef3e9bb717b0be + limb2: 0x3ef3e9bb717b0be, }, w10: u288 { limb0: 0xa95f9089c84967d73eeb7c72, limb1: 0xfcc8b694c6dab512b6097cc7, - limb2: 0x185f26ab25337e83 + limb2: 0x185f26ab25337e83, }, w11: u288 { limb0: 0x10a59371fd44cdb8de434ac6, limb1: 0x3c17b135fbcb13d74e419dfb, - limb2: 0x278311e97f6ef4 - } - }, - E12D { - w0: u288 { - limb0: 0x475ea1ac378cce82fdec6e11, - limb1: 0xaf08bf5a3e8d6079773e920c, - limb2: 0x29c64c212dec677c - }, - w1: u288 { - limb0: 0x6a66f6f07056762d6f45fad4, - limb1: 0xf4c43d4045657382b87dff21, - limb2: 0x16d9d49a8e63d7c3 - }, - w2: u288 { - limb0: 0xa59ac52cd4e419ce3f1ae36b, - limb1: 0xdfb1ce2ef3408cc28a41e5a2, - limb2: 0x14dad6f197b4f161 - }, - w3: u288 { - limb0: 0x6c6a0ddf93ce5582dfc3cc74, - limb1: 0xa529ac6da259d5be95c076c, - limb2: 0x4e5a740c3ca6be7 - }, - w4: u288 { - limb0: 0xc2832d412ca32424be977f9b, - limb1: 0x793b99600de88a00f4837b0b, - limb2: 0xc21a9182cda50aa - }, - w5: u288 { - limb0: 0x674f91ae23122a0338c02feb, - limb1: 0x71539df1cd6023a3f2eaa9e9, - limb2: 0x4b27f545463b062 - }, - w6: u288 { - limb0: 0x73ec9a0498e5e31e7d270c93, - limb1: 0x73e9e98b55bafef9b2ed2e55, - limb2: 0x2bd9df4553f4f95f + limb2: 0x278311e97f6ef4, }, - w7: u288 { - limb0: 0x6240fa69c29c4e21eed50eac, - limb1: 0x8d1992cae13f12ab6aa647e5, - limb2: 0x25264d0d9b827af8 - }, - w8: u288 { - limb0: 0x4aa9d7ad5b7eb6f57407b26a, - limb1: 0x4515fdfdca36232d90d8a5cf, - limb2: 0x14c679ebb9399fe6 - }, - w9: u288 { - limb0: 0xdcb62fa4a4232afe6501190f, - limb1: 0xa3cf98c6ffc234ea1fc35257, - limb2: 0x20e6dd26ca2b2516 - }, - w10: u288 { - limb0: 0x8307af3c11545153d835e472, - limb1: 0xf578bafdc9aca43ae3555d04, - limb2: 0x2f25b67185eeaaf6 - }, - w11: u288 { - limb0: 0xdcf358e4f0f4bc010df330be, - limb1: 0x5c913cc63b5d63696eb7e6e1, - limb2: 0x17e92114ae31d284 - } }, E12D { w0: u288 { limb0: 0xe7df08107e805939ebd064d1, limb1: 0x84eaf0a72178fea0cd7fdda3, - limb2: 0x1a3c2d31a8a1ee84 + limb2: 0x1a3c2d31a8a1ee84, }, w1: u288 { limb0: 0xac6519066bbcb1864ae2773, limb1: 0xc26038949c313989e0054bbe, - limb2: 0x28eb7e83ec81a257 + limb2: 0x28eb7e83ec81a257, }, w2: u288 { limb0: 0x11e340e6c9fe6671a0adb177, limb1: 0x92b97e720c203dfe72f47426, - limb2: 0xb846a3ae27eaf33 + limb2: 0xb846a3ae27eaf33, }, w3: u288 { limb0: 0xe04834e31217e48f0e8eb14e, limb1: 0x8935efe701ea6319c4ec860f, - limb2: 0x13f14982cf2bc20c + limb2: 0x13f14982cf2bc20c, }, w4: u288 { limb0: 0x82dc6d9f7406f0a279ef8a56, limb1: 0x51d959b05efad385a218b2bb, - limb2: 0x103a320e5b6a9452 + limb2: 0x103a320e5b6a9452, }, w5: u288 { limb0: 0x2ed59048aebb44b229f7267a, limb1: 0xc8a4f65f52a1922dec503120, - limb2: 0x2d8aad0d7b0b6937 + limb2: 0x2d8aad0d7b0b6937, }, w6: u288 { limb0: 0xdf4cb0cb215170ff0a6b3c1e, limb1: 0x18ee79ed0b8c2cd754f322a6, - limb2: 0xbd8cb5657cc0178 + limb2: 0xbd8cb5657cc0178, }, w7: u288 { limb0: 0x440e6b453eda236f95430186, limb1: 0x39d4deb16fd3ecee0a714cf7, - limb2: 0x26574156175bc55 + limb2: 0x26574156175bc55, }, w8: u288 { limb0: 0x1f4caed0971cc3ed8347723d, limb1: 0x28a247d79794bcee6045e924, - limb2: 0x2657b147233a6fc4 + limb2: 0x2657b147233a6fc4, }, w9: u288 { limb0: 0xf26b32e9d9a108813f659c6b, limb1: 0x876ed468fa80b8be08c0b09b, - limb2: 0x10ca44b2c6d4f9da + limb2: 0x10ca44b2c6d4f9da, }, w10: u288 { limb0: 0xa8ab369559d68eb036cd3db, limb1: 0x723fdc5ac4ca2c61a5a1ffe9, - limb2: 0x12199d02a50f2c5 + limb2: 0x12199d02a50f2c5, }, w11: u288 { limb0: 0x1a376782048bbe32096ddea0, limb1: 0xa715d036367bef48038ea78d, - limb2: 0x14e09936f8a93c9e - } - }, - E12D { - w0: u288 { - limb0: 0x9145d23e1d33dce7cb0839c, - limb1: 0x892f4c807907a75abee8bbda, - limb2: 0xa56b1b72cc2b9f0 - }, - w1: u288 { - limb0: 0xc045b6214ea3bd40c7805bfa, - limb1: 0x818cf825077e8549e61adefc, - limb2: 0x2e602dfc9caf5216 - }, - w2: u288 { - limb0: 0xa0cc6073bdea9a4ca383a10b, - limb1: 0xe79f0d2737e8c8365a87944b, - limb2: 0x257dd0273728731f - }, - w3: u288 { - limb0: 0x584afff405302c9d3b06b03d, - limb1: 0xcdb49b72b159c3780599946e, - limb2: 0x18e9955b5a0cc3b2 - }, - w4: u288 { - limb0: 0x1e7f09e8af00dc774008a357, - limb1: 0x8e9cff55afcf734da6c424c5, - limb2: 0x16db67ad67e47c31 - }, - w5: u288 { - limb0: 0x395f7e573aae8580343e7e12, - limb1: 0x333bece35910bc98fb20c975, - limb2: 0x147f63cddf601bdb - }, - w6: u288 { - limb0: 0x51c9f47119484c917ef47875, - limb1: 0x8a924e1dbe7d4e0bbad38445, - limb2: 0xbd5d3832c19b001 - }, - w7: u288 { - limb0: 0x5269f444d05a9fd451de2ea8, - limb1: 0x32f02455484589d869c2db07, - limb2: 0x1becf18c2ab3f054 - }, - w8: u288 { - limb0: 0xeefe935755117b807727aed3, - limb1: 0x5960cc5670b867f2a04a4d85, - limb2: 0x15abdc1b3e74284c - }, - w9: u288 { - limb0: 0x27db8eb4ff1af479c7978d9d, - limb1: 0x7a4857d9fcf07cf48940b71, - limb2: 0x2847fabc07b9b1cc - }, - w10: u288 { - limb0: 0x7e32812b21ebdcf6606a465d, - limb1: 0xcbc768842936d11c03f1e369, - limb2: 0x24d44db85cceac43 + limb2: 0x14e09936f8a93c9e, }, - w11: u288 { - limb0: 0xc6bbe95fcbfe12e898110b8d, - limb1: 0xeb016acec18ed09b1f5d6dfb, - limb2: 0x129cabb44190284c - } }, E12D { w0: u288 { - limb0: 0x5e1921fbfd402a1551528994, - limb1: 0x77812fb192e815031f993bbe, - limb2: 0x284ca4ef290a8fcd + limb0: 0x5c840d64ee3e008381f3e04, + limb1: 0x243b2760acc2f44649a5b24f, + limb2: 0x2e6cfbab4b3fed61, }, w1: u288 { - limb0: 0x935884f270a248539954808e, - limb1: 0xbedd8ea9d45dff7325abb40f, - limb2: 0x51633c60bf24ebb + limb0: 0x9743d90c3eef67f5cdf72c19, + limb1: 0xf3b5548f9d13f9dc940fa4b2, + limb2: 0x13b8b4c7ca5ec4a2, }, w2: u288 { - limb0: 0xdd2e5f7031bd36151189379c, - limb1: 0xbccaf495d8aae0fe85cc186b, - limb2: 0x1965091b827dd0f5 + limb0: 0xf97c58447c8b03814fa6103f, + limb1: 0x30d22f3e8c4c7d8523c76597, + limb2: 0x872b0b5d8b48bd1, }, w3: u288 { - limb0: 0x104eff766c3c6705f626b796, - limb1: 0x3062b5f7ccac865e55336fbf, - limb2: 0x20506d422297855f + limb0: 0x78947a908649525b01ca6334, + limb1: 0xcfe0ba68f50e623a89171963, + limb2: 0x29503e874bbfec29, }, w4: u288 { - limb0: 0x18fdffe66134ae9e041bd7e, - limb1: 0xf9a858eae417684ee33dc0e5, - limb2: 0x1061a7c537520fb2 + limb0: 0x1dae9e71040fd1230c92cbb1, + limb1: 0x65a3011a3d4b8129b45eaad6, + limb2: 0x81795daa56a29d3, }, w5: u288 { - limb0: 0xead4f3c29087bdee8dca9e1d, - limb1: 0x4097a91d6e90cfddecbe35c5, - limb2: 0x2e0e652a8eb5e415 + limb0: 0xd7376a308b09572a31465eb8, + limb1: 0x9a987b8f5f86b01cd050946c, + limb2: 0x1b4cef85ace274fe, }, w6: u288 { - limb0: 0x6e231865d32c498022cbec57, - limb1: 0x2a3c4ea0596b538d3f9ab2dd, - limb2: 0xf41bd70b71e71b0 + limb0: 0x121c88496e9a87e389aabc55, + limb1: 0x53070d5039789dbe1ff3c5d9, + limb2: 0x6f0665bfd35e8c7, }, w7: u288 { - limb0: 0x556233d48d8ee7e2aa7cfd32, - limb1: 0x40dc20655652fb561b721570, - limb2: 0xb67803439a9338b + limb0: 0xdd9ddf4069428e4d4bdf5f7d, + limb1: 0x6dace55e5658b1bf8c3a2093, + limb2: 0x29485c58194eed74, }, w8: u288 { - limb0: 0xc4b12fb538adacc8f11472db, - limb1: 0x249147e863b9ef5b3c2a4812, - limb2: 0x7e75d071bb792c0 + limb0: 0x5ee1da4b7149da261bda9305, + limb1: 0x7601e480e9a8d7be7979c77e, + limb2: 0x14cffa23faf832a0, }, w9: u288 { - limb0: 0x8e8265cbb036d73e3d6f6078, - limb1: 0x4a99459956e1943a4f9bc862, - limb2: 0x7f28a19946ccc01 + limb0: 0xb4e59ad341d4b129ba6ce9a2, + limb1: 0xaa1fd997e27e7f4f5fab6918, + limb2: 0x157b9b49aca1ab9, }, w10: u288 { - limb0: 0x844205431206250e1b21e4fa, - limb1: 0xcd27ba93dd0feef0c0164d0e, - limb2: 0xa83011da70f4b5b + limb0: 0xfff92978e32c48590140bfab, + limb1: 0xe1cc130cb1566161f46fa326, + limb2: 0x11f2a66bd21895fe, }, w11: u288 { - limb0: 0xd114de31163903c702649587, - limb1: 0xb662eb1310c5374a94cf235, - limb2: 0xc7920424ecd9a86 - } + limb0: 0x4a8d0b05c8ab2197c89b44f2, + limb1: 0x48260cd32fd7d0452d9aa26, + limb2: 0x1ff38242cb34892c, + }, }, E12D { w0: u288 { limb0: 0x20f9010789e7b152257be743, limb1: 0x41355459a9e13ce010e9491c, - limb2: 0x175f282d0d7ac03e + limb2: 0x175f282d0d7ac03e, }, w1: u288 { limb0: 0xd61a99e14e1f68ea78858dfe, limb1: 0xdb29e70187d87a8d1f4d27a1, - limb2: 0x17afeea1b34fc021 + limb2: 0x17afeea1b34fc021, }, w2: u288 { limb0: 0x3c9e6fb3d89216edef33a1d7, limb1: 0x3dd931680d2bb7651f688b2a, - limb2: 0x13e86a7233e4491b + limb2: 0x13e86a7233e4491b, }, w3: u288 { limb0: 0x377d4b442701faa12601d1f0, limb1: 0xfa864548c3a1a262fd21db8c, - limb2: 0x8c5a91f3fe9bf24 + limb2: 0x8c5a91f3fe9bf24, }, w4: u288 { limb0: 0xdc1920a9ba58d700bf2b145c, limb1: 0xd46f80f0104c31aa036d6a0b, - limb2: 0x1073f44a4d433e6b + limb2: 0x1073f44a4d433e6b, }, w5: u288 { limb0: 0xbe5e796a5bd4049ddad323b0, limb1: 0xe7bc4d5004bad605fd02a27, - limb2: 0x3028bf8868ed598a + limb2: 0x3028bf8868ed598a, }, w6: u288 { limb0: 0x40b609fabc6888cab7f4019d, limb1: 0x7bcf89f3bd29e5c43d4f02ce, - limb2: 0x16a2865923d5b251 + limb2: 0x16a2865923d5b251, }, w7: u288 { limb0: 0x70655717bb0c1ed90589d31c, limb1: 0xd8f6e54cc87b156c80122aad, - limb2: 0x1854b621bdf3aa08 + limb2: 0x1854b621bdf3aa08, }, w8: u288 { limb0: 0x25e6085c5d718fa434af198d, limb1: 0x243092e705cd68fcd328a2a3, - limb2: 0xabda9d2c0c69f93 + limb2: 0xabda9d2c0c69f93, }, w9: u288 { limb0: 0x12d9ff05f7fd76b25f56ee31, limb1: 0xff2e5068668cbd41d6a8d70e, - limb2: 0x30318bdd373e291 + limb2: 0x30318bdd373e291, }, w10: u288 { limb0: 0x5b6d9d5299e67c2427987d3, limb1: 0x60309cea9bcde182039deaf7, - limb2: 0x1eeb35c995c1375b + limb2: 0x1eeb35c995c1375b, }, w11: u288 { limb0: 0xf6c6a575126d36fb8016d94a, limb1: 0x9a38ec893c85a4a110a3845e, - limb2: 0x2992a2b7e6cd37c2 - } - }, - E12D { - w0: u288 { - limb0: 0x132584ae9346fbb3e8d70d1c, - limb1: 0x471584accf00e5fe0fb52267, - limb2: 0x142be98ca70017fa - }, - w1: u288 { - limb0: 0xda226b141da77897b26ca6ca, - limb1: 0xbf000b454b4d58018593c2, - limb2: 0x2436c8eaed7054cc - }, - w2: u288 { - limb0: 0x88e97f74be81fa89c5c2eee5, - limb1: 0xd721ec562cc84fa007750119, - limb2: 0x1c728c5533ad4b15 - }, - w3: u288 { - limb0: 0x91fd00805d77aae788b1cc00, - limb1: 0x35687296e18df82d476327c1, - limb2: 0x1890da27facc765b - }, - w4: u288 { - limb0: 0x2521088df66058eae087b09e, - limb1: 0x4ad8691a61993a08b653d7b9, - limb2: 0x18673026d1baa8a1 - }, - w5: u288 { - limb0: 0x2747f14960f8ca73443e8f1b, - limb1: 0x90ff30575a77ce8b628cd79e, - limb2: 0x1081c4e0797d7474 - }, - w6: u288 { - limb0: 0x78875e4e3788cdb16f5f049a, - limb1: 0x72d0d77bce96263d6db7865, - limb2: 0x15a77348943a44c0 - }, - w7: u288 { - limb0: 0xcfed96d858afc1500e7830bd, - limb1: 0xed2811858629995ca8e96fac, - limb2: 0x28f9d12785e0c825 - }, - w8: u288 { - limb0: 0xd0a6d2429df08e836188da95, - limb1: 0x99958ed416de2331f73d4be4, - limb2: 0x22c2004994d5646d - }, - w9: u288 { - limb0: 0xebde9c1c5f7c3aab9203f662, - limb1: 0x75f348a91181299b3a044725, - limb2: 0x2d9267dca0fb48ae - }, - w10: u288 { - limb0: 0x588e19b57430cd3cd73127f0, - limb1: 0xb2b40a3ed32a8df0029c76c6, - limb2: 0x163b2c50520ea013 + limb2: 0x2992a2b7e6cd37c2, }, - w11: u288 { - limb0: 0x4eed40250632719bb12b8b4e, - limb1: 0x6af45095ca2e6eca07202b15, - limb2: 0x25a8db5f957d4c7 - } }, E12D { w0: u288 { - limb0: 0xa23310a12201943e23aa5bd1, - limb1: 0xbee1334f9806ce3578fef084, - limb2: 0x28657ead94b89af6 + limb0: 0x2513fcc1815172e2acb78c48, + limb1: 0xf1fb049b85c85a858e3796f5, + limb2: 0x300c791e8d042987, }, w1: u288 { - limb0: 0x59b94046b5ff262b5e8bac8d, - limb1: 0xa26aaf69c240602226caa87, - limb2: 0xa14880e83d57976 + limb0: 0xb5f548909a82f0ce9b151b26, + limb1: 0x8087f9db3ad26d11c3dcd0d3, + limb2: 0xbe98e54b599db1f, }, w2: u288 { - limb0: 0xfaca5dd5ff3743fc2b2dbdf8, - limb1: 0x49539cb79207283db8623f85, - limb2: 0x1acdfb1b20bb8aef + limb0: 0x1e55ee1359e4dacd0a224ac, + limb1: 0xc049969cc268c7302cbbb96, + limb2: 0x292939420dc4994c, }, w3: u288 { - limb0: 0x6c23f94e180e0cd8c9b22249, - limb1: 0xec43541af2f5d6f65a766e79, - limb2: 0x13fa8ba07ec36a44 + limb0: 0x9a439ef1b4b8a3e5e0d131ee, + limb1: 0x5243b76e0bffe1ad4934762b, + limb2: 0x10b7c0e8f5e55d8e, }, w4: u288 { - limb0: 0xb8107cb284f0c33ecc24feb, - limb1: 0xfca5d1bd227c65646918a5bd, - limb2: 0x271fa3be3309646e + limb0: 0x472318a31d61843dc0ac35a3, + limb1: 0xfdc8264ebbe6c3255fd45fbd, + limb2: 0x23cab8acf199a2a6, }, w5: u288 { - limb0: 0x81f30884ef4b28758cdad4fc, - limb1: 0x365b3880328a750b693640a0, - limb2: 0x1b4df765970dcbd9 + limb0: 0x3c5f90aa19be5ca9d586b983, + limb1: 0xcba0d66ca2dc42a68f4136fa, + limb2: 0x23d949165118abea, }, w6: u288 { - limb0: 0xc78fca6dfd870a1742ce758f, - limb1: 0x6f79d87c4ca0375ca8a0e625, - limb2: 0x57c6024c5c30ce6 + limb0: 0x7aff327e17d6666c7f90c4a7, + limb1: 0x2f133759ea769762428ca397, + limb2: 0x229a3fc5c84e256a, }, w7: u288 { - limb0: 0x4bc54bcc3bad8a6a65ce10f3, - limb1: 0x42479fb26592fd5d40a8d7f5, - limb2: 0x444db66d34ef65f + limb0: 0xe2793380656d37b00873ec9a, + limb1: 0x1338f4f95cf705ab40325500, + limb2: 0xf5ae003d907d6e1, }, w8: u288 { - limb0: 0x2f60f4f593272c507ef4d63b, - limb1: 0xcd2c8aef3e1dfbf8f9ce2476, - limb2: 0x24da82710bc1075d + limb0: 0x85c6f4773db45818f2a0edfa, + limb1: 0x11b541412c501fd59d939141, + limb2: 0x25f1c74f47ddcbbc, }, w9: u288 { - limb0: 0xb6777326ac75618e96f77036, - limb1: 0x59704f46aa4bad894db4dff5, - limb2: 0x22ef914037a40732 + limb0: 0x79f213447462cc95732ff6eb, + limb1: 0xa2d558f0e0eca18cfa84426, + limb2: 0x1ab5af6e2200b5a6, }, w10: u288 { - limb0: 0xd811c1e5e2fee21dda9a8dc6, - limb1: 0xaf61f71a3ec0f1305d5b2720, - limb2: 0xb080c0605b3814b + limb0: 0x7bae196bef0db195215adf17, + limb1: 0xd0a4b5dc5a11d37222964f4d, + limb2: 0x4f26d49b9bc199a, }, w11: u288 { - limb0: 0xf25dcd7e17c43cf2537de93b, - limb1: 0xd6210f7200910c06e1aaf68e, - limb2: 0x2a97d64a50f193ad - } + limb0: 0xb16717e715fbc76c3bac66f1, + limb1: 0x3ebe263de3e1a89803bc0da8, + limb2: 0xfb0595b5b9d8246, + }, }, E12D { w0: u288 { limb0: 0x4691a6b6d8442401fdb5fd61, limb1: 0x1a4aa6fd9f3cfbd122b2cd2b, - limb2: 0x254267bcadf6ce8b + limb2: 0x254267bcadf6ce8b, }, w1: u288 { limb0: 0xe22fbb9f0206f7b3b78be6ee, limb1: 0xf6e0deb6e65d40117da6b2fd, - limb2: 0x2a4f1a801c3cd205 + limb2: 0x2a4f1a801c3cd205, }, w2: u288 { limb0: 0x163800b0a0c25286cf11a38b, limb1: 0xac61df59604318c6fcd74d67, - limb2: 0x1a9633d30804c9cf + limb2: 0x1a9633d30804c9cf, }, w3: u288 { limb0: 0x7333b8203f73c7c30b504051, limb1: 0xa080c3854f1a6a8a917b0366, - limb2: 0x276eac4715fb20ca + limb2: 0x276eac4715fb20ca, }, w4: u288 { limb0: 0x399e6af618d4d4f3d6b6df5, limb1: 0xc75b47790bdefc3a4c3f9514, - limb2: 0x29d9317f2b639acd + limb2: 0x29d9317f2b639acd, }, w5: u288 { limb0: 0x3c127769d3815a3c70c1ee1e, limb1: 0xfd2b1eee94f11e14c21a9358, - limb2: 0x350f2baa271499a + limb2: 0x350f2baa271499a, }, w6: u288 { limb0: 0x16ad4469d442f5ad7e3a969b, limb1: 0xa319c77cf65f5ddf06c79804, - limb2: 0xfc01932cb22cac6 + limb2: 0xfc01932cb22cac6, }, w7: u288 { limb0: 0xd3ec2fe1d535457c02b0abdb, limb1: 0x9336d37bd33818f9e69963f8, - limb2: 0x221133208264ed33 + limb2: 0x221133208264ed33, }, w8: u288 { limb0: 0xba4ad8aa28c47ead56764d20, limb1: 0x60ea71535c537102ff8591aa, - limb2: 0x99bbc9915f4f422 + limb2: 0x99bbc9915f4f422, }, w9: u288 { limb0: 0xd10f7b7b93fff77a5af1c82a, limb1: 0x54501ad6471fd3ea73f001d2, - limb2: 0x218c4075b09ef652 + limb2: 0x218c4075b09ef652, }, w10: u288 { limb0: 0x6656f1088f37e6bae8831fe4, limb1: 0xd3542728908036bec18ddee4, - limb2: 0x16fe23702ee4af80 + limb2: 0x16fe23702ee4af80, }, w11: u288 { limb0: 0x8bf6a24658757bdf96918d6d, limb1: 0x1e72bce9091c22a645562e32, - limb2: 0x1856aa098aa33d63 - } + limb2: 0x1856aa098aa33d63, + }, }, E12D { w0: u288 { - limb0: 0x9b6b40b9edb0b1a09649add7, - limb1: 0x7300434f919aa9c6aec6de20, - limb2: 0x1b35c7b58651594a + limb0: 0x5eaa057c5e9d338929a7ad43, + limb1: 0x7ae96e982db7587ba91a1736, + limb2: 0x72cb1aafef8fc8e, }, w1: u288 { - limb0: 0x77f16a42e1156c88cae36b84, - limb1: 0x1fb344532e359edf1157a825, - limb2: 0xea457b770fb8b98 + limb0: 0x1bb7723ff47ccb109a4226ec, + limb1: 0x328efe288a27af15b2af6381, + limb2: 0x2dccf1917c988cef, }, w2: u288 { - limb0: 0x92eb3d2b0484da28c7107c9b, - limb1: 0x300d0109b9168e1a518d6bac, - limb2: 0x17ea224ae40143cd + limb0: 0xcc638278fb869f3c6930e578, + limb1: 0x685535107befb2dbff15dcb0, + limb2: 0x1552b4647293ddad, }, w3: u288 { - limb0: 0xfcab5844b1c7bb9e86ebdf77, - limb1: 0x2d3792e6471570cf1f20c460, - limb2: 0x21d218caeea972de + limb0: 0x6a2bab4ed331aeb86499d23f, + limb1: 0x3e6ac194919d26afeae1c7e6, + limb2: 0xa3bd7d404906b4a, }, w4: u288 { - limb0: 0x8e763b9a9d4fdfa175a11681, - limb1: 0xf9b3ae1547a2aac54ac9ce38, - limb2: 0x9f5534f1c5d4f42 + limb0: 0xd0f18a8f6bcb2c54d031eae7, + limb1: 0x428e6f2b4d1b1d15ecbfeaf5, + limb2: 0x2f7d795e0c7bb871, }, w5: u288 { - limb0: 0x826a35db413e341d9e7cf81e, - limb1: 0xae8658cebbe992c39df4f244, - limb2: 0x166de44519a3ac15 + limb0: 0x9fa385290e5a47297dba3917, + limb1: 0xb79650782cdb39ff5a1f208, + limb2: 0x15d475f38ea7476b, }, w6: u288 { - limb0: 0x31a761f1ad8d1a301d73d9ca, - limb1: 0x93d202a68e75d340caff0586, - limb2: 0x1b79d9b7e1d5546c + limb0: 0x7bb49cca7dfd0cb7e3f79b2c, + limb1: 0x8c7bac4c06a9d05c2accbd03, + limb2: 0x1fa0d8145555736d, }, w7: u288 { - limb0: 0xd15a6193c960d38964f3ad02, - limb1: 0xe6b0b640f54b51d8865f74ea, - limb2: 0x170e5af319f82b3a + limb0: 0xf736aafbbf8cd7e7c4065e91, + limb1: 0x43830e9122457788cb86d1ab, + limb2: 0x135aa9aaad9954db, }, w8: u288 { - limb0: 0xb1e4b71f36ebf4411784be0e, - limb1: 0x5c254c7f4185c90c30b0740, - limb2: 0x2bbe8f406f7ee5f + limb0: 0xbed546ba0b8744fcb9d52660, + limb1: 0xfbc7f3baa7c7119fcce3e80, + limb2: 0x15a9f9b27f95df27, }, w9: u288 { - limb0: 0xd5af656a3254a5697086dfc8, - limb1: 0x26962a92a61437cc7bc2bce3, - limb2: 0x2d9cdfa1d3f5f16f + limb0: 0xb4f28322f24bab28cefc2b81, + limb1: 0xbb67c1a9879e054fb1dd9bd3, + limb2: 0x6dc479b44e4a35, }, w10: u288 { - limb0: 0x92ab7eb67df4017094c08c84, - limb1: 0x8ca9b1c4a1756d4e8b140fff, - limb2: 0x4789bab61b6ea9f + limb0: 0xc55900f2e2fcb03d4745b72e, + limb1: 0x789b848782d349549f5f1e85, + limb2: 0x13a9a01aff27a9ae, }, w11: u288 { - limb0: 0x69628a393538c13d3fe93f56, - limb1: 0x4834b09623d3f434932cdb49, - limb2: 0x1de9f07a12d15e53 - } + limb0: 0xec2faefd68343ff84384d5e8, + limb1: 0x1a7cf79c9cfdf71ef2008e74, + limb2: 0x29c5f1ef7cfa4e48, + }, }, E12D { w0: u288 { - limb0: 0xf790d7855fe8c941f1757217, - limb1: 0xf52d0bfbaab48dda995b90a7, - limb2: 0x1216aadcb2e8d35a - }, - w1: u288 { - limb0: 0x3a6e7087e8c5faeec8d36ebc, - limb1: 0xc2dccf57e569baaa00619d60, - limb2: 0x24e8d4a43dbc206 - }, - w2: u288 { - limb0: 0xc729a481ebd40038950c41b3, - limb1: 0x400af86a734c7aed66ec2610, - limb2: 0xb69f78712cf2c7d - }, - w3: u288 { - limb0: 0x82954c074f8076ac2730289b, - limb1: 0xebfded73b04180522d0c00dd, - limb2: 0x7da4edaf1200ae - }, - w4: u288 { - limb0: 0xded8beb7e0b7f6a42448b2e, - limb1: 0x6c012aeb0096719e77612217, - limb2: 0x8df8736ab38eb5e - }, - w5: u288 { - limb0: 0x99c3e8fb05ba793650e6cfab, - limb1: 0x2b4f1f398c219944730fb5a8, - limb2: 0x2129d3754ac39e87 - }, - w6: u288 { - limb0: 0xcd5f8c9659021a7706b79229, - limb1: 0xa21d1b6f7bd52d297a973b9, - limb2: 0x16b39868e1126585 - }, - w7: u288 { - limb0: 0x44bdbaaeb280cb68c6a88b24, - limb1: 0x546d201cce708c52c3b87f4d, - limb2: 0x28aafa131df9e864 - }, - w8: u288 { - limb0: 0x75bb5c612e2d1895c3f19252, - limb1: 0x85d1aa717e515ef264333b2c, - limb2: 0x20b2f77070fa2629 - }, - w9: u288 { - limb0: 0x3efd157e424dcd28f0ce7c91, - limb1: 0x84247f41213b9bef85d35feb, - limb2: 0xccb0d011b1a804c - }, - w10: u288 { - limb0: 0xfa72a24285fb74c4ccb1351, - limb1: 0xe2037a744c5679ca06d36b11, - limb2: 0x1755ffcecf529027 - }, - w11: u288 { - limb0: 0xe680a0a057bb71acabb969aa, - limb1: 0x618e70b71da78e231fb6ab95, - limb2: 0x1d7a790299fc1ef3 - } - }, - E12D { - w0: u288 { - limb0: 0x7da07b86a17f90a2b01f070, - limb1: 0x32e6cbe8bb76431d030b6541, - limb2: 0x169136ca3fcbd52e + limb0: 0x7da07b86a17f90a2b01f070, + limb1: 0x32e6cbe8bb76431d030b6541, + limb2: 0x169136ca3fcbd52e, }, w1: u288 { limb0: 0x14b5cdc5d62216c47192de8b, limb1: 0xd1e61add783e061d23aa8b5b, - limb2: 0xd15a28ca328e478 + limb2: 0xd15a28ca328e478, }, w2: u288 { limb0: 0xc481cc31c16863df81e8b67d, limb1: 0xe43107afa658bd6eab99baad, - limb2: 0x2dbb3774b86ff414 + limb2: 0x2dbb3774b86ff414, }, w3: u288 { limb0: 0x2b792a9e9477d0720b49c556, limb1: 0x6ee0355be00472bf4c29595c, - limb2: 0x1250c722f7dce651 + limb2: 0x1250c722f7dce651, }, w4: u288 { limb0: 0x4f155753d7ca72726d9c5ede, limb1: 0x68c513a27a582318aba863b2, - limb2: 0x268c4cff2a0868af + limb2: 0x268c4cff2a0868af, }, w5: u288 { limb0: 0xee23384132ef355ea4c9cd2f, limb1: 0x769a778520242fa9be2b4b86, - limb2: 0x619b6540902c8da + limb2: 0x619b6540902c8da, }, w6: u288 { limb0: 0xcf619319e7da22d2d87ded3b, limb1: 0x55bc420f357a9f9af7f3fc27, - limb2: 0x2c6d25af354a8c0a + limb2: 0x2c6d25af354a8c0a, }, w7: u288 { limb0: 0x897b30003ba50ceffa155118, limb1: 0xcd16b98450f6e704b376af36, - limb2: 0x387312925d56e5e + limb2: 0x387312925d56e5e, }, w8: u288 { limb0: 0x1547ce758af5caac5f3cba19, limb1: 0xd2759b5209f5ccde276ae2b9, - limb2: 0x8bebfeee0e486ee + limb2: 0x8bebfeee0e486ee, }, w9: u288 { limb0: 0x158e0f0bc8649c7c9458ccf5, limb1: 0xf20a2eae3793c6df722b69bb, - limb2: 0xb7e139783caa97b + limb2: 0xb7e139783caa97b, }, w10: u288 { limb0: 0xb214433bcc9c61f41a672fe5, limb1: 0xae856be4ca18bfeeb97256e7, - limb2: 0x2ff69682f9db28ad + limb2: 0x2ff69682f9db28ad, }, w11: u288 { limb0: 0x8cbe2f6182148a74244954ac, limb1: 0xc968190da741992ceeeac286, - limb2: 0x296c04958814178f - } + limb2: 0x296c04958814178f, + }, }, E12D { w0: u288 { limb0: 0xaabe5805d69bcf87faaa0624, limb1: 0x478fadd1e2384b0d94ffd427, - limb2: 0x1778a52ea6419cbb + limb2: 0x1778a52ea6419cbb, }, w1: u288 { limb0: 0x3a2bb7367f836fd33e72bc42, limb1: 0x9ed4175a04e317113a9bf7cc, - limb2: 0x1bd3b89c53bba237 + limb2: 0x1bd3b89c53bba237, }, w2: u288 { limb0: 0x283ba112d1a901a2963ebce9, limb1: 0xb88b6d8c90c32641cd8de77c, - limb2: 0x4330ff81bbf1aaa + limb2: 0x4330ff81bbf1aaa, }, w3: u288 { limb0: 0xef466974e62e9d7175c4cb8c, limb1: 0x96bfc81d65fe336227113e7d, - limb2: 0x231f3ab8575b8204 + limb2: 0x231f3ab8575b8204, }, w4: u288 { limb0: 0x6032f7ceed8d763a3c16ca06, limb1: 0xbd357cd0947f134569dd65c, - limb2: 0x24d6a3c8b70196e5 + limb2: 0x24d6a3c8b70196e5, }, w5: u288 { limb0: 0x4d47e505d9d4281c38d84f9a, limb1: 0x86fdc9b122276e23bdaef6c4, - limb2: 0x2d2a5a3cfec76827 + limb2: 0x2d2a5a3cfec76827, }, w6: u288 { limb0: 0x10764f6301da0139409355eb, limb1: 0x169023ab7ba2af2701d8ee7, - limb2: 0xa8fd0478a5bd5b3 + limb2: 0xa8fd0478a5bd5b3, }, w7: u288 { limb0: 0x36fbb7632c5e32ac4d439c06, limb1: 0x77e68a927e6bf7b50f468589, - limb2: 0xd712970fe77ed33 + limb2: 0xd712970fe77ed33, }, w8: u288 { limb0: 0xc6333c4fb88e300a722635d2, limb1: 0x3bd0a9d311c8a7a2a831fc13, - limb2: 0x24a2803265596f98 + limb2: 0x24a2803265596f98, }, w9: u288 { limb0: 0x602f27f3c41e13f70ec306ac, limb1: 0xa2d9c70458bc21b31e4e8bbb, - limb2: 0x2318628ab88e0d2e + limb2: 0x2318628ab88e0d2e, }, w10: u288 { limb0: 0x31d07509de71e84d70fc3597, limb1: 0x63a67db560e7854c1b9ffbe6, - limb2: 0x24630165d03ca7e4 + limb2: 0x24630165d03ca7e4, }, w11: u288 { limb0: 0x7f01293d47393ed8f8faacfd, limb1: 0x693d55d27d34d8d82a45ded6, - limb2: 0x2e982efc254e90e2 - } + limb2: 0x2e982efc254e90e2, + }, }, E12D { w0: u288 { limb0: 0x7a0151622f32149cc39127, limb1: 0xb7d82d0d7cbfc0854dc18a81, - limb2: 0x15121c24c444fb2f + limb2: 0x15121c24c444fb2f, }, w1: u288 { limb0: 0xfe3069d46d030b7bfeb319c7, limb1: 0x92e43b1c259b05e959a29443, - limb2: 0x2f82238cefd08b68 + limb2: 0x2f82238cefd08b68, }, w2: u288 { limb0: 0xffacb1a6cd1e11dec597ebce, limb1: 0xd482f37e951b21ac15bda39, - limb2: 0xd4d51a607e5c451 + limb2: 0xd4d51a607e5c451, }, w3: u288 { limb0: 0xc8c7f69a0db529acbb725a01, limb1: 0x56ba1fcd17ca509c764236b9, - limb2: 0x266c3b87a040d37e + limb2: 0x266c3b87a040d37e, }, w4: u288 { limb0: 0x4571f5a426917bcc6db587c7, limb1: 0x37b7677a534ffa0b66876d0b, - limb2: 0x242bb826f4dad2b9 + limb2: 0x242bb826f4dad2b9, }, w5: u288 { limb0: 0x3b306aacc86c5e63e826c06, limb1: 0x71a1e66a7cf1dd9abd8f6be3, - limb2: 0xf55d9b7d527f5bd + limb2: 0xf55d9b7d527f5bd, }, w6: u288 { limb0: 0xc2334694e7214460556de85d, limb1: 0x44f339ca483ed2f8e20760e0, - limb2: 0x1543c07af87205ef + limb2: 0x1543c07af87205ef, }, w7: u288 { limb0: 0x193cbdd9bd6c91872b1446e8, limb1: 0x390ed7d90a9e41dd08eb0563, - limb2: 0x69314f2882ec9bf + limb2: 0x69314f2882ec9bf, }, w8: u288 { limb0: 0x3e0e5deb39dfbceb0c50cccb, limb1: 0x5359859220ecaaed1bb1d8d5, - limb2: 0x2c243e59d1644b8c + limb2: 0x2c243e59d1644b8c, }, w9: u288 { limb0: 0x63a83a2e6ee175fe65f5b650, limb1: 0x6d0dae1d5b365f909737b583, - limb2: 0x2e16f1774475930e + limb2: 0x2e16f1774475930e, }, w10: u288 { limb0: 0x4bf38c8f50cf94e94ac2eefe, limb1: 0x91db1898abcd99d2828dcd2b, - limb2: 0x2a7826645be14d28 + limb2: 0x2a7826645be14d28, }, w11: u288 { limb0: 0x88d5c83684006468edcfb23a, limb1: 0x52c496f1f5f22ebee63f5006, - limb2: 0xf75dc2e7a584b21 - } - }, - E12D { - w0: u288 { - limb0: 0xf8a7dd244e839c601f669964, - limb1: 0xa51f62b519a079d88def6891, - limb2: 0x2c19a04f40f36a8e - }, - w1: u288 { - limb0: 0xacc32c47ef97ffdfab856ac6, - limb1: 0x635b165a9676175b8957686d, - limb2: 0xf4e082e69b40051 - }, - w2: u288 { - limb0: 0xc783d8255c6d67baa7343511, - limb1: 0x5df8531a51a07a6e4891e564, - limb2: 0x1b1aa54656d378d1 - }, - w3: u288 { - limb0: 0xf5da0c55852d686efbb2d6f7, - limb1: 0xea0b2005f4999e604a52e37, - limb2: 0x14bb18050cbbff2e - }, - w4: u288 { - limb0: 0x7a91d5db4b90d3f10d1babe1, - limb1: 0x553d80f4a039cbf9aa83a8f2, - limb2: 0x169718428c804ec0 - }, - w5: u288 { - limb0: 0x8cd9a4345da9b3c8214255f6, - limb1: 0x33f435e6c1e0a8dc909f713a, - limb2: 0x48e651c4d900473 - }, - w6: u288 { - limb0: 0x1d642ac0295efe12eeb53769, - limb1: 0x9cac40fc7b04caa3c9e9be20, - limb2: 0x278ca7e8f487a180 - }, - w7: u288 { - limb0: 0xade42dd6bd5b59371a733eb6, - limb1: 0xcb8e58995751ffe80046438a, - limb2: 0xa9d74faf127d390 - }, - w8: u288 { - limb0: 0x1ba290bb4f6a05e84492f082, - limb1: 0x805d3bdfeab86578911c48da, - limb2: 0x9ca62c546caa0a6 - }, - w9: u288 { - limb0: 0x416cffceb465cc29b2109f43, - limb1: 0x362dd166905ac603cd5ff2b3, - limb2: 0xa1f829306f7c3e5 - }, - w10: u288 { - limb0: 0xb9ce30c993e3fa84c3b5d748, - limb1: 0x73769f54705f6c0f44f98b0e, - limb2: 0x1673efd9e2a61bb3 + limb2: 0xf75dc2e7a584b21, }, - w11: u288 { - limb0: 0x34c9965ad624a68b635a20f1, - limb1: 0x8e532e5dbf2ecdac3dc673a0, - limb2: 0x1947d3421d76c6fe - } }, E12D { w0: u288 { limb0: 0x1d5b005c0f05c5913d89d3b8, limb1: 0x1e9c6e293e242c3b4c758f7f, - limb2: 0x303cc3f8883df373 + limb2: 0x303cc3f8883df373, }, w1: u288 { limb0: 0x97919a6105618116083ae38, limb1: 0x548b96828190b58631bd017f, - limb2: 0xd62fd4a5522751e + limb2: 0xd62fd4a5522751e, }, w2: u288 { limb0: 0xb90c093c24bd6b00dcaef48e, limb1: 0x332793bc6fe8daec55a499e3, - limb2: 0x1a62c1adf27dcf4 + limb2: 0x1a62c1adf27dcf4, }, w3: u288 { limb0: 0xed9979bdbc911880b0f2993a, limb1: 0xb9b3d9a78d1ba75a2054dcb6, - limb2: 0x1139bc2af9fc7062 + limb2: 0x1139bc2af9fc7062, }, w4: u288 { limb0: 0xd01ad4e199459d8cfb34022d, limb1: 0xaa55da20d2c29e4f72e8428f, - limb2: 0x19408bc263e8c5e3 + limb2: 0x19408bc263e8c5e3, }, w5: u288 { limb0: 0xe6b6ec6c97330d7bd862275e, limb1: 0xfc7647d2e15333b7f1dc16df, - limb2: 0xe8505d43bbb0de1 + limb2: 0xe8505d43bbb0de1, }, w6: u288 { limb0: 0xac1553394c20ce85bac73bc9, limb1: 0xfd38aa3ace7885aeac4f9c51, - limb2: 0x14bf831b8d59488a + limb2: 0x14bf831b8d59488a, }, w7: u288 { limb0: 0xe7b696d082fe6624d2f66473, limb1: 0x19efee72fac6dc76acb45556, - limb2: 0x2c27a0376c0c6cd0 + limb2: 0x2c27a0376c0c6cd0, }, w8: u288 { limb0: 0x587829d461e3ac5dd4c122b0, limb1: 0x1489d76e7d359134feda6f9d, - limb2: 0x2bf00f05d6d34be6 + limb2: 0x2bf00f05d6d34be6, }, w9: u288 { limb0: 0x68c5607a34b7e03c4ad3e625, limb1: 0x34a43c63330e1744beef8754, - limb2: 0x56191473aed3f7 + limb2: 0x56191473aed3f7, }, w10: u288 { limb0: 0x9b9361a588fabd5162e75e94, limb1: 0xbca7aeef2e209ac40e230e6f, - limb2: 0x241e1b5b17b02573 + limb2: 0x241e1b5b17b02573, }, w11: u288 { limb0: 0x6466ba52d605bf43dcc711a6, limb1: 0x4fd443195501e425d1d0dc3, - limb2: 0x2b1b1a35b478f840 - } + limb2: 0x2b1b1a35b478f840, + }, }, E12D { w0: u288 { limb0: 0x37359d1ca3169479a4787c63, limb1: 0xe6959b34e4552a7091baa5c2, - limb2: 0x251e2d6fc02a0dd1 + limb2: 0x251e2d6fc02a0dd1, }, w1: u288 { limb0: 0xff5382744072d73ab25ff20d, limb1: 0x899afcd9d3ae5e06050f28f, - limb2: 0x69671dfe2d55cc2 + limb2: 0x69671dfe2d55cc2, }, w2: u288 { limb0: 0x4c5bc5ee2d1c3c29908f93b9, limb1: 0x818cc183be27df97d8e39ad3, - limb2: 0x136a07953bb41b63 + limb2: 0x136a07953bb41b63, }, w3: u288 { limb0: 0xc8ba1092a51526df08511ece, limb1: 0xca463cae871d2aa4f117545d, - limb2: 0x2ec243402bbea649 + limb2: 0x2ec243402bbea649, }, w4: u288 { limb0: 0x73459af87f990777dd76405b, limb1: 0x9167416ccd1679acd9c0dc19, - limb2: 0x25d92fc30a1b3c13 + limb2: 0x25d92fc30a1b3c13, }, w5: u288 { limb0: 0xe7d616bf546a691f57deb700, limb1: 0xb6ee6aefa4852dc03975ecac, - limb2: 0xb46a9fae190dacc + limb2: 0xb46a9fae190dacc, }, w6: u288 { limb0: 0xc858c3ec3ca78161afa95440, limb1: 0x88e7ab9779f7b3100a561d0c, - limb2: 0x4646ce8e109b9ec + limb2: 0x4646ce8e109b9ec, }, w7: u288 { limb0: 0x6078ed80374f164838d05309, limb1: 0x49036f0001a89a5411eacecd, - limb2: 0x17d15ad5a21e80c + limb2: 0x17d15ad5a21e80c, }, w8: u288 { limb0: 0xfbf54aa1649f1360f628f647, limb1: 0x873566f2575908c732fa2601, - limb2: 0x8081b2cbe570dc9 + limb2: 0x8081b2cbe570dc9, }, w9: u288 { limb0: 0xdd3685fd23d83f41b8fef63b, limb1: 0x570af8337c272785be94352a, - limb2: 0x24153962f93d7ca0 + limb2: 0x24153962f93d7ca0, }, w10: u288 { limb0: 0x6b6fc38cd84153e3d243c8eb, limb1: 0x70e90d7590bb138f44afe58a, - limb2: 0x27de5024e0c84f0c + limb2: 0x27de5024e0c84f0c, }, w11: u288 { limb0: 0x3fdd6c208244f367bff5c112, limb1: 0x91e2f705ede749a13823072b, - limb2: 0xe1375efaa7677ef - } - }, - E12D { - w0: u288 { - limb0: 0x4c6817fbfce6f4f40e92699f, - limb1: 0x9d1115db304c124cf9b8fac8, - limb2: 0x14c3e621019a9c70 - }, - w1: u288 { - limb0: 0xdc58782280140692eafd68cc, - limb1: 0x5dae05ee763bae38517e0c4d, - limb2: 0x2109916209056170 - }, - w2: u288 { - limb0: 0x2cf52a4f6e718bd6706bc987, - limb1: 0x8416acd4f887d7fc8ef1ff43, - limb2: 0x27ee7751e17cdd9 - }, - w3: u288 { - limb0: 0xcccc506a40610fa5d566ff91, - limb1: 0x602c5372f160e79ae4df789, - limb2: 0x804060e5c2d0a53 - }, - w4: u288 { - limb0: 0x2452c8f3e333d1babb30dc2b, - limb1: 0x1956ec1c6d144f6eaf0bbb94, - limb2: 0x235b978d7acded06 + limb2: 0xe1375efaa7677ef, }, - w5: u288 { - limb0: 0xeee959a499f85d8c76120b8f, - limb1: 0x8fed4be66a89f5ad4cc0a575, - limb2: 0xa61447c917c98cc - }, - w6: u288 { - limb0: 0x5c6f5341911df0e3b052f967, - limb1: 0x6d10270c223ff3f5cb70df7e, - limb2: 0x1d05a7412b83e9d8 - }, - w7: u288 { - limb0: 0x3a275df8fdb62a4730efa437, - limb1: 0x9416749e23f6a1bad55f99a, - limb2: 0x1637570ff129d2bb - }, - w8: u288 { - limb0: 0x3f8d9e600876df64e357ce62, - limb1: 0xdb095af73254fb4a210832ab, - limb2: 0x1cf8b6e3f0db37bf - }, - w9: u288 { - limb0: 0xf26f676d3fc23904ed44f3a3, - limb1: 0x84c6823a25935a7d65968f25, - limb2: 0xb9a6b2cfaf286ea - }, - w10: u288 { - limb0: 0x98149b5e7a06c071f56d5aec, - limb1: 0xca954e739c580d049d29ac17, - limb2: 0x1c20127eae4995ec - }, - w11: u288 { - limb0: 0x7eb2b5bbb72ab165d03f2259, - limb1: 0xd8dc1209ab39c4727b7efea0, - limb2: 0xe0d224e0ccf70fd - } }, E12D { w0: u288 { limb0: 0xff28b79435eb24678e3c8eb2, limb1: 0xc0ba0a6fad1811714d5c9c79, - limb2: 0x303a480b499d41e7 + limb2: 0x303a480b499d41e7, }, w1: u288 { limb0: 0xfa7877caa1e87cb6765e080, limb1: 0xa17c36fc7d0139b6b04e701b, - limb2: 0x100468da3cdddbdf + limb2: 0x100468da3cdddbdf, }, w2: u288 { limb0: 0x556a84f960de5f80740c18f1, limb1: 0xbc003e85b28d9419b1321c41, - limb2: 0x2486957161a92fa6 + limb2: 0x2486957161a92fa6, }, w3: u288 { limb0: 0xee123f2e218e5fc7636d043b, limb1: 0x2b4620d525e7c98b54118214, - limb2: 0x1ced0e32a4c0e974 + limb2: 0x1ced0e32a4c0e974, }, w4: u288 { limb0: 0xf456e317add8dd976e4f5ec3, limb1: 0xe1f85ddcbcd7b5d860ee1fbe, - limb2: 0x20bdfcffe9078da6 + limb2: 0x20bdfcffe9078da6, }, w5: u288 { limb0: 0xa2e12460aebe22abbb6623d, limb1: 0x3243bd5a49f9c15ce84b992e, - limb2: 0xa794ff503d2eb58 + limb2: 0xa794ff503d2eb58, }, w6: u288 { limb0: 0xb2013aea1419e59761f6c6b, limb1: 0x18c41d13e9b5ae46b4fbe2c5, - limb2: 0x243e8aea6f4bc41f + limb2: 0x243e8aea6f4bc41f, }, w7: u288 { limb0: 0x834bff6b7ec9caf258fa8481, limb1: 0xd5e3f6fb4e5949909942a836, - limb2: 0xf5651e38a53058f + limb2: 0xf5651e38a53058f, }, w8: u288 { limb0: 0x2392f32d40ef4fdcb8f7bde1, limb1: 0xd92211269e6981a3796f748b, - limb2: 0x1cdde6b416be4e91 + limb2: 0x1cdde6b416be4e91, }, w9: u288 { limb0: 0x627d6f1b96532fc7f042aa71, limb1: 0xbc546773f537f33e8088aa6b, - limb2: 0x165110d82726d415 + limb2: 0x165110d82726d415, }, w10: u288 { limb0: 0xd218510f5366a09241344258, limb1: 0x5687f91e9d385ff162a2ca58, - limb2: 0xa3e9521fd2d3236 + limb2: 0xa3e9521fd2d3236, }, w11: u288 { limb0: 0x96ab37c321ac8988f874caf6, limb1: 0x1d6deccbe79c563f085d2193, - limb2: 0x2f84f7ff1d8e8ee6 - } - }, - E12D { - w0: u288 { - limb0: 0xab8c7b013b33d0780c77817d, - limb1: 0x2d531c7705201a98bb0a6812, - limb2: 0x1988f22135f42a3e - }, - w1: u288 { - limb0: 0x5b5f27d4b722c1000362508e, - limb1: 0x1c4dd44f797e30c08e1eeb91, - limb2: 0x1ab9bf1ca0d1d5f4 - }, - w2: u288 { - limb0: 0xbfd496163b914bb1d40edf6a, - limb1: 0xa197b0fbd28e8952c6ba7b69, - limb2: 0x73b5b4a8c2c387d - }, - w3: u288 { - limb0: 0x60e48d0b81cee319c67e70b2, - limb1: 0x6da2bdffbcff9a1e491ee324, - limb2: 0x20c1614c7cfc95a5 - }, - w4: u288 { - limb0: 0xe255be74a16fd77c0c800634, - limb1: 0x35b2ebcb410fcbe1424f2558, - limb2: 0x20d48cb88aeb470f - }, - w5: u288 { - limb0: 0x6d5811060601b2db51266ed0, - limb1: 0x6748d9658418b3e6435409fa, - limb2: 0xbff91bf7deb349a - }, - w6: u288 { - limb0: 0x7507cd9ebebd6a04da82c245, - limb1: 0x9ac881291c7607ab66e01320, - limb2: 0x4fd877a49e91ee5 - }, - w7: u288 { - limb0: 0xb584c55fbd3dd528a5345d43, - limb1: 0xd172d2de68bc3afcb7b717d3, - limb2: 0xff5c57569b2e33a - }, - w8: u288 { - limb0: 0x6885170cbb057c5883d6de67, - limb1: 0x4b0c8255704a6a04bc28e182, - limb2: 0x49c7dea82871816 + limb2: 0x2f84f7ff1d8e8ee6, }, - w9: u288 { - limb0: 0x8d7a329f843edd86045353da, - limb1: 0x8f83e0e3305104145b09d939, - limb2: 0x70184156089d071 - }, - w10: u288 { - limb0: 0x71eae78db574de81c70bf803, - limb1: 0x481d2bef04944d67155b1dc8, - limb2: 0xb984b39fd917825 - }, - w11: u288 { - limb0: 0x8ff355f808f3798e037fb925, - limb1: 0x9dd31f9f753139391b91caaa, - limb2: 0x2c80bc9072aac399 - } }, E12D { w0: u288 { - limb0: 0xc2279ec8bc5422a67c7d347a, - limb1: 0xa00db33203b8ef4bcea3cc87, - limb2: 0x2028da00c5d377c1 + limb0: 0x5f32f9a8eeade34241b12810, + limb1: 0x133593b9a4a6f381aada074b, + limb2: 0x19a32273e388ac99, }, w1: u288 { - limb0: 0x1e11104bd1c8cbe8ff8b7c02, - limb1: 0x4e7b13afcda41210b77350f8, - limb2: 0x19020381dbc58f4b + limb0: 0xbb69e4856293ec3d92e7d805, + limb1: 0x14b85538654531e02cc5932f, + limb2: 0x2491b31e28bd44cb, }, w2: u288 { - limb0: 0x3b2349e8a4752eadd93bbecf, - limb1: 0x84c3aad731bc7ba8e044ad0, - limb2: 0x7a5de21165d0b5d + limb0: 0x7d82d03af6f8c76c427ba75e, + limb1: 0x967b04b92b39941ab44d08d0, + limb2: 0x2ed3f4a2944bbc22, }, w3: u288 { - limb0: 0x7ef4730981b368462ba5eb38, - limb1: 0x5e9c0c264b468dbd83227076, - limb2: 0x1660763382f6897f + limb0: 0xa67689abcb222c5eb04f50c2, + limb1: 0xe0d373c25972b07e166bbcea, + limb2: 0x1a446eebcb6a1bee, }, w4: u288 { - limb0: 0x56eaa8387f3e0b725037b0c4, - limb1: 0xbb3fa724a0b0d2f67a35f9bc, - limb2: 0x837a75d1061873b + limb0: 0x144f30062c10c29bc8be47e4, + limb1: 0x64ff3ba7a156ef19d36084b, + limb2: 0x1cc5ff275bd1ad9f, }, w5: u288 { - limb0: 0x74857d84b9c93b2e01b6cd03, - limb1: 0x31a0df8b98307d281281d1bf, - limb2: 0x2faae2a759b515e4 + limb0: 0x4056c33c3a351381152ed01f, + limb1: 0xb7b9abe58c58333fc5e0adf8, + limb2: 0xdc9e6ce6f13cf11, }, w6: u288 { - limb0: 0xaa93ce6b8cc7949e0eb55f3a, - limb1: 0xabb47e5de0a4879a2cdbe2dd, - limb2: 0x1c2878774c363328 + limb0: 0x859bc9e4ea2fc918100b2aac, + limb1: 0xc35b40b2582eadc5a1bfe918, + limb2: 0x26298d0dffc77744, }, w7: u288 { - limb0: 0x1c4de7ad438a7b6ff2186bc0, - limb1: 0xa66b03c340f1e84c2f0ba1cb, - limb2: 0x10b8baf8fe2b5358 + limb0: 0x291737ba242cd9b07c66d388, + limb1: 0x333115d29458501e74089135, + limb2: 0x19226600b340c7ad, }, w8: u288 { - limb0: 0x8ea57a83dc387c287f5a9878, - limb1: 0x6661b935956f53802b880c84, - limb2: 0x16b85fd7ec1aac46 + limb0: 0xee5f0962e034c8abc8d0ba4d, + limb1: 0xc7427067383034c39b47f730, + limb2: 0x2ae92f519b17a927, }, w9: u288 { - limb0: 0x10cb3872b90e53df6d738d6d, - limb1: 0x7ff27533207f6e9b89caa000, - limb2: 0x276091a6d5d8f0c4 + limb0: 0xadcd32340a46dbcdcf713132, + limb1: 0x14238f7af8998c11c93864c3, + limb2: 0x2d78f33e6b135046, }, w10: u288 { - limb0: 0x41dacee9e163630e571d9cb1, - limb1: 0x7db290e0bf10603376aa9572, - limb2: 0xca84aab79d8e2b7 + limb0: 0xccce7f0390dcb48a4fc658a, + limb1: 0xb02ef39422aed2a4dd9d99c7, + limb2: 0x22b7c12ee728e4b0, }, w11: u288 { - limb0: 0xf987a6c16b1940acd7e84fa8, - limb1: 0x99a6d49c58892a9b52dbc13a, - limb2: 0x2ec92fa70b80f8c9 - } + limb0: 0xa55e6345f04363f98e39d62c, + limb1: 0x83304eb48f67c3e63068f9, + limb2: 0x1b26fcc2e690d30e, + }, }, E12D { w0: u288 { limb0: 0x78827305894f7d7c8cb42cd8, limb1: 0x603660b8ffde85ba43f25540, - limb2: 0x1f8bbd81eceac6fa + limb2: 0x1f8bbd81eceac6fa, }, w1: u288 { limb0: 0x20d1c2265d7c54a7c13d661f, limb1: 0x5a6375fef487fe0e27db784f, - limb2: 0x11c961fd171a5f7f + limb2: 0x11c961fd171a5f7f, }, w2: u288 { limb0: 0x6c3b26607fea356bde658104, limb1: 0xf70ad1941455882811fe366c, - limb2: 0xbf839d2222b9e50 + limb2: 0xbf839d2222b9e50, }, w3: u288 { limb0: 0xf2d7051b992886c2de350c7c, limb1: 0x559005099aae5b1e262c07e9, - limb2: 0x1add5d82450dbff0 + limb2: 0x1add5d82450dbff0, }, w4: u288 { limb0: 0x56cda0fca379e7b056f95ebf, limb1: 0x103bb7ec80c51b58ea745255, - limb2: 0x1508ea36a5f7ad14 + limb2: 0x1508ea36a5f7ad14, }, w5: u288 { limb0: 0x8ecd2696af2a0932ff92660f, limb1: 0x200362b96b74147636a81336, - limb2: 0x2857fb636f1f4016 + limb2: 0x2857fb636f1f4016, }, w6: u288 { limb0: 0xfec4a1335fdd5fd059a8dd8e, limb1: 0x75c2b9cd1be202f40e13c3d4, - limb2: 0xbb3d42cdbcbd58d + limb2: 0xbb3d42cdbcbd58d, }, w7: u288 { limb0: 0x4e763270d3457d2f36ffc8bb, limb1: 0xd51b5ff1fa57c35d5c9fccd7, - limb2: 0xfb41479fa0f3e95 + limb2: 0xfb41479fa0f3e95, }, w8: u288 { limb0: 0xf3d9559364d6b5acabe4fd40, limb1: 0xa442dd432e5e47e74e99435c, - limb2: 0x207acb81831a892 + limb2: 0x207acb81831a892, }, w9: u288 { limb0: 0xcb48f0d150ce1d5da376de1c, limb1: 0xda6dcb76b3d2babe3f7c0af3, - limb2: 0x29de187ceb63f010 + limb2: 0x29de187ceb63f010, }, w10: u288 { limb0: 0xbd50ea4093b9a099bb8a9ef8, limb1: 0xbfb8d8b5eeda12c6a0e3711b, - limb2: 0x2de77f287de6bb26 + limb2: 0x2de77f287de6bb26, }, w11: u288 { limb0: 0xd4ac588d5c0eaafc31b2a954, limb1: 0xd4ee68fb818201cd7e229bb6, - limb2: 0x4f268dcccb4c9e7 - } + limb2: 0x4f268dcccb4c9e7, + }, }, E12D { w0: u288 { limb0: 0x336e696338af25774cbde6ba, limb1: 0x69dc4b06614375293bcddb42, - limb2: 0x17bed31b51d2bccf + limb2: 0x17bed31b51d2bccf, }, w1: u288 { limb0: 0xee67b2a9992ca2297a33680b, limb1: 0x1d3067d4e8bb0562cfc0e586, - limb2: 0x2cd961c43819130e + limb2: 0x2cd961c43819130e, }, w2: u288 { limb0: 0xba1d54e30e624b6576fa30e4, limb1: 0xa664731781f4d006a5e8f83a, - limb2: 0x1acc8a751e4fa7c5 + limb2: 0x1acc8a751e4fa7c5, }, w3: u288 { limb0: 0xe4c3723499688f9a8dea5008, limb1: 0x26989a78c35cc577065d49ea, - limb2: 0x25aa6ae3c7e3ca0b + limb2: 0x25aa6ae3c7e3ca0b, }, w4: u288 { limb0: 0xbf23d984a1987abc8698d6fe, limb1: 0xdd4d0bf7124d07e5bdb0ccbf, - limb2: 0x120468245f03f2c5 + limb2: 0x120468245f03f2c5, }, w5: u288 { limb0: 0xb7ce1be795587bce1bec22d2, limb1: 0xc1741799c9616ccbda199640, - limb2: 0x18e8aabf72cf2545 + limb2: 0x18e8aabf72cf2545, }, w6: u288 { limb0: 0xcf933e271bebd4985302d609, limb1: 0xe2765fd44c8c12899cdeafec, - limb2: 0x2469cab8cca6a721 + limb2: 0x2469cab8cca6a721, }, w7: u288 { limb0: 0xf4e8330657ffd4d21e3489ad, limb1: 0xeaa193edb41eca1d92439dff, - limb2: 0x2bdca29cc4f5e24f + limb2: 0x2bdca29cc4f5e24f, }, w8: u288 { limb0: 0xc1bbfb6aff365e98d6f377ce, limb1: 0xd798f860fbf687b45aedbcb, - limb2: 0x1816a7d7508073be + limb2: 0x1816a7d7508073be, }, w9: u288 { limb0: 0x1751153c6447e4dd744cb3d6, limb1: 0xb5575d0d3a63675f38f68fb7, - limb2: 0xcf079455eea2772 + limb2: 0xcf079455eea2772, }, w10: u288 { limb0: 0x9103d7708c70e7ca7c1afb54, limb1: 0x269475ce46651c528d3ba3b0, - limb2: 0x1612bee0a4422ef0 + limb2: 0x1612bee0a4422ef0, }, w11: u288 { limb0: 0x7e74e496a46aa542d7ba3398, limb1: 0x38381d151f53772b3c7b6ac5, - limb2: 0x2627da3091fe9618 - } + limb2: 0x2627da3091fe9618, + }, }, E12D { w0: u288 { limb0: 0x4a472c78419727c213f1ecb7, limb1: 0x52e7713a969eea3195477e0d, - limb2: 0x2452ff1793e9989f + limb2: 0x2452ff1793e9989f, }, w1: u288 { limb0: 0x5af2af840a414c07f88aafe7, limb1: 0x84d438781dc331e9f8dbe5c7, - limb2: 0xa08c364dac40aa7 + limb2: 0xa08c364dac40aa7, }, w2: u288 { limb0: 0x7544947cd54dce3b7db3f88a, limb1: 0xb21db0825eb2c743a0974622, - limb2: 0x99e9f9e14609b3a + limb2: 0x99e9f9e14609b3a, }, w3: u288 { limb0: 0x3df463ae1c6f6e33af40b4ed, limb1: 0x6e6bf88773cfb5481ed3a5ef, - limb2: 0x18093f68aa581ebb + limb2: 0x18093f68aa581ebb, }, w4: u288 { limb0: 0x2e9083725e6fafe12ada88db, limb1: 0x5c7f7db97c54dd97d496e7dd, - limb2: 0x169da8674967384c + limb2: 0x169da8674967384c, }, w5: u288 { limb0: 0xc3e8ae8e4f6250be5ce5700e, limb1: 0x551ed24f2d0023c301973675, - limb2: 0x4d06cb38306e620 + limb2: 0x4d06cb38306e620, }, w6: u288 { limb0: 0xd07fd97a4c34b22e94e00333, limb1: 0x44142bc7fa2c3c38bd001770, - limb2: 0x26cb2e67195220a9 + limb2: 0x26cb2e67195220a9, }, w7: u288 { limb0: 0x4d74de63b523c2d231d42069, limb1: 0xb755b6feb43d9e3b85679a26, - limb2: 0x8ef130214a48a61 + limb2: 0x8ef130214a48a61, }, w8: u288 { limb0: 0x92d0adc0007a60452b2b1d1, limb1: 0x6ebdf8fb1be942eae576175e, - limb2: 0x1487691fffafabad + limb2: 0x1487691fffafabad, }, w9: u288 { limb0: 0x3da0ccf413998d4af4fff3c2, limb1: 0xaae02debc708b689df0b0507, - limb2: 0x24db0f80bd712d56 + limb2: 0x24db0f80bd712d56, }, w10: u288 { limb0: 0xe0cf1a580089999c4ee222c0, limb1: 0xbf0ae87f88101f422985bd99, - limb2: 0x12f407eec0475734 + limb2: 0x12f407eec0475734, }, w11: u288 { limb0: 0xc8783d4bc08a2731ab3bfa93, limb1: 0x7d26093e383c18102ae4cb0b, - limb2: 0x1f96be2222d525ac - } - }, - E12D { - w0: u288 { - limb0: 0xfa5bf41f99dfd521e6c7542a, - limb1: 0x48a84a85c6ce97703b4a49, - limb2: 0x39f099de20602a8 - }, - w1: u288 { - limb0: 0xc4e684ca8603b17a690136f2, - limb1: 0xa76bddfa465244e11666f0d7, - limb2: 0x27204222aeef2b23 - }, - w2: u288 { - limb0: 0x3acb699244602e00455ffe5b, - limb1: 0x3fc2f383c156db054121223a, - limb2: 0x28695828376461da - }, - w3: u288 { - limb0: 0x3a07683215929252004e7bdf, - limb1: 0x1f1ebb2750e97b60dcdb99c6, - limb2: 0x11c810f774266b64 - }, - w4: u288 { - limb0: 0x24592e8201f6475a3d3ccf1f, - limb1: 0xd0f82ad88ecab46ac3f57d1d, - limb2: 0x1939b6f988d67535 - }, - w5: u288 { - limb0: 0x8f09cc5e47f163e1314fe446, - limb1: 0x724e140bb4072315fa3d8797, - limb2: 0xbab146086678134 - }, - w6: u288 { - limb0: 0x6e48113b5595cfe9383a620b, - limb1: 0xdd1b6dbe07087126e9cd4e26, - limb2: 0x2978c672259221b0 - }, - w7: u288 { - limb0: 0x22d6e201ee833201c7cccbf6, - limb1: 0x98decd40b79ef8bdbce1560, - limb2: 0xaba15d83c347e5c - }, - w8: u288 { - limb0: 0xf8510c6f36199ef1ed3a335a, - limb1: 0x962280be9e6686a18bcba001, - limb2: 0x2e76441906bf77e3 - }, - w9: u288 { - limb0: 0x8a4f3edfb6ddae1f17f0c7a1, - limb1: 0x177eecc418c1707057f53b9, - limb2: 0x12a2a3e231e20159 - }, - w10: u288 { - limb0: 0x89b644a789278301ea71928e, - limb1: 0x8fdc2b348ad44e4b896c814b, - limb2: 0x118c724833f2b592 + limb2: 0x1f96be2222d525ac, }, - w11: u288 { - limb0: 0x191c874f2bb69e6958dd2ff8, - limb1: 0x43bffd21ae8d05604684e8a9, - limb2: 0x296c99726d898ee8 - } }, E12D { w0: u288 { limb0: 0xda5fa34846746a819c442983, limb1: 0xb0cda896f70d81847cc85ed8, - limb2: 0x16f7dc8dd816b6ef + limb2: 0x16f7dc8dd816b6ef, }, w1: u288 { limb0: 0xd598894ff54bdafbad9f94c6, limb1: 0x67341e698880b16e06df5b4, - limb2: 0xe0a2eba838a6862 + limb2: 0xe0a2eba838a6862, }, w2: u288 { limb0: 0x2d4fdc3d1173c7dfb46e7170, limb1: 0x4a30acf8b62d37adef886fec, - limb2: 0x2f262ecea836ecc8 + limb2: 0x2f262ecea836ecc8, }, w3: u288 { limb0: 0x4d2de3a485f44ce40095aca, limb1: 0x4f6ebf38f1b4a74b022a98ba, - limb2: 0x2b98abba58a8b9c0 + limb2: 0x2b98abba58a8b9c0, }, w4: u288 { limb0: 0x99eec2af9a4b45e84482053a, limb1: 0xdef95a01ab7f2212fd6f0ddf, - limb2: 0x20ca7118bbba9b13 + limb2: 0x20ca7118bbba9b13, }, w5: u288 { limb0: 0xf62ca396c4cd4f9a37c0ec41, limb1: 0xf80e07d6f2016fced6c1a99d, - limb2: 0x27e0a522003ad386 + limb2: 0x27e0a522003ad386, }, w6: u288 { limb0: 0x31af536e3dcc88a84fc144d, limb1: 0x48f7d70e0e9d5af9cbaf031, - limb2: 0x2f1467cd5d03c065 + limb2: 0x2f1467cd5d03c065, }, w7: u288 { limb0: 0x4b8a521ef408c203f233db65, limb1: 0x50bfacca6815a45eb7cabce8, - limb2: 0x1340f48baad171ef + limb2: 0x1340f48baad171ef, }, w8: u288 { limb0: 0xb74e02f678431063c3f330c9, limb1: 0x48c8b7fb6de93b918a05dfa3, - limb2: 0x19d05aab262398f6 + limb2: 0x19d05aab262398f6, }, w9: u288 { limb0: 0x4e020ba19bfe30be269bc882, limb1: 0x309357da0126dcc065d540a3, - limb2: 0x1b5842e9443aad53 + limb2: 0x1b5842e9443aad53, }, w10: u288 { limb0: 0xaf0d9cd44dcdb29271788d84, limb1: 0x655b4319e3a14fb30daf866a, - limb2: 0x25d96272a676a0a5 + limb2: 0x25d96272a676a0a5, }, w11: u288 { limb0: 0xcf12e3f075ae79dd26bf1616, limb1: 0xb383301919d9fa2d99fd0ab3, - limb2: 0x229dfa1b1e366c8c - } - }, - E12D { - w0: u288 { - limb0: 0x55f40c68deeab1ae57531787, - limb1: 0x22a9b8edb83cd29b04f0c0f2, - limb2: 0x647eeaf240c7a9c - }, - w1: u288 { - limb0: 0x6b161fff90f928cffedb53f, - limb1: 0x9c271cd7a96400b57ad19aa, - limb2: 0x12717c809e9c1cb4 - }, - w2: u288 { - limb0: 0x7cb51bd8cd821ece038da8cf, - limb1: 0xb1677e62f2efe83221c5444c, - limb2: 0x3c8c8178855ddbd - }, - w3: u288 { - limb0: 0x61ff5153f71eee3cdb8649a4, - limb1: 0x9954be45f8fde31719e6e495, - limb2: 0x25fe1ac42453bf6 - }, - w4: u288 { - limb0: 0xa4d9193e97cf2f828d970ed5, - limb1: 0xf33f993744418df3d8f6a487, - limb2: 0x11428995669e5980 - }, - w5: u288 { - limb0: 0x7bdf7b29040c379676a42fd8, - limb1: 0xc3074b9bea8b9b2862617833, - limb2: 0x38c11bba91117ea - }, - w6: u288 { - limb0: 0xb00b7909c403c763575e8950, - limb1: 0xee34429c4e5606723ffa4dc6, - limb2: 0x28f3b52ee45b634c + limb2: 0x229dfa1b1e366c8c, }, - w7: u288 { - limb0: 0xf811c030c9859f4210d4791f, - limb1: 0x201b9673b468ad7ca44f9525, - limb2: 0x2e68896c95b23c02 - }, - w8: u288 { - limb0: 0x506ddc09f2e23114cfc7e036, - limb1: 0x3eb82800ceb8b01d3aa37d49, - limb2: 0x20e2cce9df421fe5 - }, - w9: u288 { - limb0: 0x1bb8643c9b5d16e3616d350, - limb1: 0xdbb6c409759d0e34e2cc50e9, - limb2: 0x1a01767827a731cb - }, - w10: u288 { - limb0: 0xc18936880b866812e13c2225, - limb1: 0x50a7bb44a870ca0b8ac34b04, - limb2: 0x13e3b3e51c15209f - }, - w11: u288 { - limb0: 0xcdb9af9281112f7b4236fa25, - limb1: 0x8513134d8342ad458e474a54, - limb2: 0x24726237e159c70d - } }, E12D { w0: u288 { - limb0: 0xdc91aa3595588b2d027509c4, - limb1: 0xf4ef439340ea4ea1435b25b2, - limb2: 0x1fbada834e4aa855 + limb0: 0x62979183e1e24b624116a174, + limb1: 0xbdba041021322754848f1d61, + limb2: 0xa476d754210008a, }, w1: u288 { - limb0: 0x3ae6bcdb34501dfbb78e72fc, - limb1: 0x90cf0a63c3b3482e4d996574, - limb2: 0x26c6a274afa19f6f + limb0: 0x4287ad8fa4e3fda207b68f52, + limb1: 0xcd665ac9b975b2aff1f8dd08, + limb2: 0xfe07d087ed107ab, }, w2: u288 { - limb0: 0xfad0da7b5afe042033d17cc5, - limb1: 0x89240776c78512b15dc33026, - limb2: 0x2c536fbba8fcfeeb + limb0: 0x308669cfeafff59899fa785e, + limb1: 0x829fc34300d1e178417143de, + limb2: 0xd874d7418c3b242, }, w3: u288 { - limb0: 0xf38d6fb5e7c4e1522ee1bda6, - limb1: 0x5180817aaf06d7ebbeea56ee, - limb2: 0x267c8e26f7003b5c + limb0: 0x675789df45cb28ed6b2f322, + limb1: 0x6829dd797f7f7a6f1fc6bf04, + limb2: 0x268ec7b4c8e79e67, }, w4: u288 { - limb0: 0x9b30cca77f25ee13d3ec210c, - limb1: 0x184d42a677e3f1b7537c37fc, - limb2: 0x296dbcda72267eaa + limb0: 0x5b0a25b74c83183bc84f5d0e, + limb1: 0x6c375c7e4a8f194cfcc07c38, + limb2: 0x21dd433dcc0e0ce5, }, w5: u288 { - limb0: 0x700dc72396bf52f2875265b2, - limb1: 0x740e397329876a3087c668ee, - limb2: 0x1778bfa1ad419a2e + limb0: 0xa042285feb04a253194546ae, + limb1: 0x36b0350cc940c7e0f0a1ec94, + limb2: 0x2b85fd9d9e053b76, }, w6: u288 { - limb0: 0xdf38e88aadadc6b83898c167, - limb1: 0x8c2027fbee98aad33e67fd15, - limb2: 0xaaa3e042f0f6c9d + limb0: 0x2b65196fb3229731e0e0639c, + limb1: 0x5365707554bc24f77ea1439e, + limb2: 0x73310d2feb86b4, }, w7: u288 { - limb0: 0xa9a7d2a90782b7198f0bece0, - limb1: 0xd8914f4c8f5f0e038fb4c6c4, - limb2: 0x1121a8cf2dd3a4ba + limb0: 0xda9afd8f517d9c0088de82a6, + limb1: 0x3a334adbafdc8c0fe20dd788, + limb2: 0x12bc5ca2182ea4c0, }, w8: u288 { - limb0: 0x1c4bc21950b259ae1763247b, - limb1: 0x44c0a3845ea067e7d4b66555, - limb2: 0x4bd117562237f74 + limb0: 0x30f3db4d6495b2ae35511824, + limb1: 0x96e95c10e585fe2e57ce7be8, + limb2: 0x1fca4754d1120ebf, }, w9: u288 { - limb0: 0x517b19cecb5322f8f37ee655, - limb1: 0xc82d4323124bac94b258be0f, - limb2: 0x2de2bd1e94e6947b + limb0: 0x411d4e59d273304e5653544, + limb1: 0x2b76a536fa12d1623f35eaa5, + limb2: 0x1f9ebab7aa9085b1, }, w10: u288 { - limb0: 0x4b61f8f4a8e58a0d12fc3794, - limb1: 0x6eb859c8827d230b67a53b1b, - limb2: 0x991dbbd6cc73caf + limb0: 0x21016f80ced8c3d9272193ab, + limb1: 0xdd9f7de1487853a3ac2db25b, + limb2: 0xfb3e5578686ac87, }, w11: u288 { - limb0: 0x26f68e50185c61ee975045c2, - limb1: 0x820eeb78677af932809913a8, - limb2: 0x2050742965cbb8fe - } + limb0: 0x7c123e62ef78fe69adf00547, + limb1: 0x468ac789efbe486f5b24bdae, + limb2: 0x2d5f9d45750a66f9, + }, }, E12D { w0: u288 { limb0: 0xf49ddda8e747747083079d37, limb1: 0x68a320e1b5f8a55def8eb451, - limb2: 0x1d8d87d7afc034c6 + limb2: 0x1d8d87d7afc034c6, }, w1: u288 { limb0: 0xd0e8f83930e790d0cf7aa4f3, limb1: 0xdc51e7ce79d82f0986e755e3, - limb2: 0xb35f2092f80a77a + limb2: 0xb35f2092f80a77a, }, w2: u288 { limb0: 0xd9e56962870a50e84be40dd8, limb1: 0x9f1423b923aef765c9073547, - limb2: 0x2407cef32c374634 + limb2: 0x2407cef32c374634, }, w3: u288 { limb0: 0x8a6e91e2640524e91ca9e5c0, limb1: 0x60cfea5268e4f21f3c9385ba, - limb2: 0x2d57872e784ffe8f + limb2: 0x2d57872e784ffe8f, }, w4: u288 { limb0: 0x610c92d3030b34c8fe759af4, limb1: 0xccef054c52c61f91aec59117, - limb2: 0x2a7fdfb70893c87f + limb2: 0x2a7fdfb70893c87f, }, w5: u288 { limb0: 0xdc3871296f6b5fb090ff3d84, limb1: 0x7a2b2003194e22958c65aad, - limb2: 0x11330e4b772d813 + limb2: 0x11330e4b772d813, }, w6: u288 { limb0: 0xc2c316717393e539996e2dfa, limb1: 0x6dbced58e49bc602d3ecb633, - limb2: 0x2b493ea7f055a49f + limb2: 0x2b493ea7f055a49f, }, w7: u288 { limb0: 0x4e7a8676b9ce8022f6546955, limb1: 0x8d4e830787b1fde166a8a9df, - limb2: 0x1e95fcd6da158d5f + limb2: 0x1e95fcd6da158d5f, }, w8: u288 { limb0: 0x61aeabf44d5b761527cd6678, limb1: 0xdd5f062d6ff2ff617a9bade5, - limb2: 0x2e9d36256b9199be + limb2: 0x2e9d36256b9199be, }, w9: u288 { limb0: 0x27a4291e6987daf0dbe6e8ae, limb1: 0x84b47163847a8f4d8682775a, - limb2: 0x27cdc91e5d2053dc + limb2: 0x27cdc91e5d2053dc, }, w10: u288 { limb0: 0xef2510a74d7892233c254ea, limb1: 0x7cc4faf9b18401574a7fd4c7, - limb2: 0x9da984836efee50 + limb2: 0x9da984836efee50, }, w11: u288 { limb0: 0x21081127deea91bde61024b2, limb1: 0xf193ac5ac85dd5ec608e1907, - limb2: 0x2a555324963199e5 - } - }, - E12D { - w0: u288 { - limb0: 0x363e37ce4684a1b3a92c2e21, - limb1: 0x2348dbf0efd4596defc9cbcf, - limb2: 0x1ceed93a8f5b5d56 - }, - w1: u288 { - limb0: 0xcdbac10ddeaa80e06ff6381d, - limb1: 0xceb903d493636168d727c815, - limb2: 0xe352fdc3390c197 - }, - w2: u288 { - limb0: 0x80adf879768fc92f7638813b, - limb1: 0x10491c3ec5b7c4a3ede55f29, - limb2: 0x2e8ae8250727d1b8 - }, - w3: u288 { - limb0: 0xc674ab29b08d23590859abaf, - limb1: 0xdc38079f674b70a6a0508193, - limb2: 0xba603208841ea30 - }, - w4: u288 { - limb0: 0xdbb103cf84f31d1071282ccd, - limb1: 0xca9519d511d9420503a19eb3, - limb2: 0x521178a2d48d6c - }, - w5: u288 { - limb0: 0x7bd263637853b9a315af6769, - limb1: 0x7351d8cdee5c1a026e0f6c33, - limb2: 0x637847e626e481d - }, - w6: u288 { - limb0: 0x374964104ac92874909f9755, - limb1: 0x7d862614dc7fc261d21b0b83, - limb2: 0xfc7c5003cd7ea34 - }, - w7: u288 { - limb0: 0x7cffb7d9abe0c646372c7028, - limb1: 0x876f6d57f947739a51ded7fc, - limb2: 0x35414bdb470fc48 - }, - w8: u288 { - limb0: 0xd734158170529fcbfa6eb829, - limb1: 0x79dda3ccc193edb4c3ffcabf, - limb2: 0x46de2bacb139684 - }, - w9: u288 { - limb0: 0xc61627578fd00ab8354ed7df, - limb1: 0x645bc0ecd6e9968f9234fa, - limb2: 0x344354ecb97bc23 - }, - w10: u288 { - limb0: 0x6dbb17f00e42d2c9d1d96142, - limb1: 0x535e925da700f9982eb7b134, - limb2: 0x36f1e7eee45e55f + limb2: 0x2a555324963199e5, }, - w11: u288 { - limb0: 0x78d5a3202fffc2d269156dfa, - limb1: 0x1e6760526181e6c4c27275bc, - limb2: 0x2276b3d7033a1430 - } }, E12D { w0: u288 { limb0: 0x231431a681ca1912d93c493c, limb1: 0x7cd5100d863f21b7b69548cf, - limb2: 0x6be1a88eb32559b + limb2: 0x6be1a88eb32559b, }, w1: u288 { limb0: 0x26fe843824491895c70e6492, limb1: 0xad3f2925ef00c47f85f0c5cb, - limb2: 0x1c25f399327375f2 + limb2: 0x1c25f399327375f2, }, w2: u288 { limb0: 0x1d64a276a7ca6a07f378c73c, limb1: 0x2d2741e0d465bc545054a3d8, - limb2: 0x1bf7749bd948c147 + limb2: 0x1bf7749bd948c147, }, w3: u288 { limb0: 0xd28017558ebe08c23c711eb, limb1: 0x49b4bfd3c9086160e68f932a, - limb2: 0x7c63194c9b2d822 + limb2: 0x7c63194c9b2d822, }, w4: u288 { limb0: 0xc66f31af760d6d857ef14191, limb1: 0x3d37853c09dfc5735f6ab95a, - limb2: 0x4c9d5f418fc2eca + limb2: 0x4c9d5f418fc2eca, }, w5: u288 { limb0: 0x9d28f5110dcb53d41cb6a236, limb1: 0x4b42d62aba0e8095600662f9, - limb2: 0x222dbbf0d045f1e4 + limb2: 0x222dbbf0d045f1e4, }, w6: u288 { limb0: 0x855491cbc4c074f566c1ff07, limb1: 0x3d2ad6ec1c1b07319336b1c0, - limb2: 0x2216d43a7fc3d867 + limb2: 0x2216d43a7fc3d867, }, w7: u288 { limb0: 0xa2d181effcab2485fd0929b1, limb1: 0xbd1dbcdda521d518016ab038, - limb2: 0x17da64f8a088f289 + limb2: 0x17da64f8a088f289, }, w8: u288 { limb0: 0x7e4609531a9a80575e4fc446, limb1: 0x7fc0249541f923b62c80b7ab, - limb2: 0x1b1f3ca3a35aed95 + limb2: 0x1b1f3ca3a35aed95, }, w9: u288 { limb0: 0x6bde512b2db44cc14aaab80b, limb1: 0x3332a36522218d5054b2df73, - limb2: 0x16cc444aacfea675 + limb2: 0x16cc444aacfea675, }, w10: u288 { limb0: 0x9d073f56f1ef70e1409f958f, limb1: 0x11ef505741b46c711501e196, - limb2: 0x37e686418823710 + limb2: 0x37e686418823710, }, w11: u288 { limb0: 0x7d2b23008dd91058e4fe64f9, limb1: 0x914180e46029b050930de287, - limb2: 0xcae32e2fb03a1cf - } - }, - E12D { - w0: u288 { - limb0: 0xee9376522e1e8b5b06a73365, - limb1: 0xa40daedbb95129e0e4b730b0, - limb2: 0x2dbb4d219a10506a - }, - w1: u288 { - limb0: 0x5bb3612ff2638ee43f91e4ad, - limb1: 0x19e687d41b2d73ed0a0848e7, - limb2: 0x12650c5a8afdf20b - }, - w2: u288 { - limb0: 0xbaff5b406b3723e87b7ddb4a, - limb1: 0x2f1acea8d0af90181928d4d, - limb2: 0x22278df7531524e7 - }, - w3: u288 { - limb0: 0x666d334e07c3fdfa0ded1283, - limb1: 0xc23935b23bbc19e19e4914d2, - limb2: 0xf8a43da3ae5e4de - }, - w4: u288 { - limb0: 0xac2d88cd8b7afa208bf5a4a1, - limb1: 0xadca464e90f0c9f191c11fc6, - limb2: 0x93aabdb1b4a7730 - }, - w5: u288 { - limb0: 0x56ff185cfdd8cd24b66f2af6, - limb1: 0x6ddbd2d6b48942d514a5faec, - limb2: 0x46405e53c409f4d + limb2: 0xcae32e2fb03a1cf, }, - w6: u288 { - limb0: 0xa8f3ab8c4a2cc082c9c226a7, - limb1: 0x6059380a81711ff39ea1829b, - limb2: 0x1a60963819016d4e - }, - w7: u288 { - limb0: 0x6456cc1faae8c805d74fb87e, - limb1: 0xbe5b971228b65a5750dfb223, - limb2: 0x101e4fc7427f1ea8 - }, - w8: u288 { - limb0: 0xceeb53e99c90c929d58be878, - limb1: 0x630bb2f044dde26e4c7420ef, - limb2: 0x307b33c069fd620 - }, - w9: u288 { - limb0: 0x7a6e414a58ac9b0ea213fc1, - limb1: 0x3d6fa1e3353bce5884958997, - limb2: 0x20b2b206bb8f115d - }, - w10: u288 { - limb0: 0x3ef7e43e2fb358ddf03c2aae, - limb1: 0x7843c2bd1db47b59cca200f0, - limb2: 0x1ae66740098611f6 - }, - w11: u288 { - limb0: 0xc5c46e370f76fd62fb4e41bb, - limb1: 0x3e96b93a9609d4e6a91bf742, - limb2: 0x2b7892dc61534859 - } }, E12D { w0: u288 { - limb0: 0x9ff3d80f101fa264b85ff8d5, - limb1: 0xa86855c567c1c81557cf9d3d, - limb2: 0x19e2d644d356cf7a + limb0: 0xec5d0a0dbf26b9244185606, + limb1: 0x2577b931ba5d8d5cde41b68d, + limb2: 0x5e96e308db4b280, }, w1: u288 { - limb0: 0xe6a5fe140a0383715622b34, - limb1: 0xc320ad2a20243348bf564308, - limb2: 0x153f963d1c491b2f + limb0: 0xbaa744f3269430ce568e50bd, + limb1: 0x60f2b1523bf010f9abc7a2c8, + limb2: 0x8e4f258d7ed76a4, }, w2: u288 { - limb0: 0x38fa5e7f9fe95bd87a008cd6, - limb1: 0x823568347b22ad318132621a, - limb2: 0x15cacd524b7c81e1 + limb0: 0x2342a9e354749981838268ee, + limb1: 0xaf2ecea58318aed3b37f5692, + limb2: 0x291525813b88babf, }, w3: u288 { - limb0: 0x923b5721b8b3d4efd3420d33, - limb1: 0xac33b6305d6a3b967b7b8897, - limb2: 0x2f2f524d75782b84 + limb0: 0xdc734db514a13e85b5204e5d, + limb1: 0x122d47c0509cc9315fcc9d29, + limb2: 0x23d67f47908d3e5, }, w4: u288 { - limb0: 0xe317d4bbbf1b48305cff50, - limb1: 0x119960555ce9b8ff7bc8699d, - limb2: 0x1341a862a58f3a53 + limb0: 0x56558781f1a6382f991559cb, + limb1: 0xd87862bbd0f987a16c7df25d, + limb2: 0x7281838826ccd22, }, w5: u288 { - limb0: 0x68f8bd14c0f052c7d49bad8, - limb1: 0x7c2df8b2cd08a1b47bcba238, - limb2: 0x215c278c7d09528d + limb0: 0x288fc284a7951c14de8da86e, + limb1: 0x69d04a96c38b3cc0548f7544, + limb2: 0xf60950d3a14b67b, }, w6: u288 { - limb0: 0x6fd5dfd91537861641414c0b, - limb1: 0x34df8a65db40dc5a89af59f8, - limb2: 0x1068772a7cf3bc4e + limb0: 0x318952aeb73d7b08c5fe781b, + limb1: 0x901f81c957993437980ea613, + limb2: 0x119433627695ee93, }, w7: u288 { - limb0: 0xb071dfecf1aa5b03fd24529a, - limb1: 0x9b73dc03add69eeae0af040d, - limb2: 0x259abddb47577d9a + limb0: 0x595a69d331001fb9c7a9f006, + limb1: 0x1e4cc5c97a405d3e3f5b53fe, + limb2: 0x1348746ac61470a, }, w8: u288 { - limb0: 0x2b75716ef46bc7918f549434, - limb1: 0xe16b2f81a5a69d088f77461a, - limb2: 0x2503573e3c7ec5b3 + limb0: 0x9c061b99db93b1ebce5d9fe6, + limb1: 0x1cfe992ec44f28737dff910b, + limb2: 0x2ef11c4ef77570ee, }, w9: u288 { - limb0: 0xcb5ac0d553a6165a12272ada, - limb1: 0xd139fa09e05982a939bac0a8, - limb2: 0x143eb21971e8d48b + limb0: 0xea82ad0d20f75a7fcb7131a, + limb1: 0xa08d4a3e487358d11c698ece, + limb2: 0x1b26098d599d7ae1, }, w10: u288 { - limb0: 0xac11e2078b19bdef7a1ed3de, - limb1: 0x57ea83bc543af50a7d804529, - limb2: 0x2d24468c4df58e7d + limb0: 0xc022d7a34d19af209e5bd73e, + limb1: 0xe7579941b62b48517495a22, + limb2: 0x4624fa9f3c5da9a, }, w11: u288 { - limb0: 0x78ac86ef8112cffd6e46c05c, - limb1: 0xfa6108e3ab4a083c5e4c8f98, - limb2: 0x62485b151f1a148 - } + limb0: 0xda5e34b4246623fb0f08bbeb, + limb1: 0x5b88dd2c5f4e947261dbf571, + limb2: 0x14fb70e3a5644ab9, + }, }, E12D { w0: u288 { limb0: 0x37435bacb68ebcdf3ca0f9e6, limb1: 0x95680e9183aeea980381c2ff, - limb2: 0x2e0b176a2f536c6e + limb2: 0x2e0b176a2f536c6e, }, w1: u288 { limb0: 0x5d257200e0e3f0f8260548a1, limb1: 0x43ac10e47e02c1a9d08110ee, - limb2: 0x656613d14e5d850 + limb2: 0x656613d14e5d850, }, w2: u288 { limb0: 0x29edc8659226397445adcfd7, limb1: 0x1cb605f25f1232c4b97003b8, - limb2: 0x13a6a30088bf9a55 + limb2: 0x13a6a30088bf9a55, }, w3: u288 { limb0: 0x4837b7e02ab5c97e266a9eb2, limb1: 0xefb32f653bbae6f3eb726d8c, - limb2: 0xceb8c4e50028cc4 + limb2: 0xceb8c4e50028cc4, }, w4: u288 { limb0: 0x17fdc9308535284c68a7ac7d, limb1: 0x8f766d31c197ea65a39bc4ca, - limb2: 0x11acbfcb24ad2ba8 + limb2: 0x11acbfcb24ad2ba8, }, w5: u288 { limb0: 0x967bd60ae3efddda5dfbec81, limb1: 0xad70c14c97b8c7380a686e0f, - limb2: 0x30371ad6bf543c10 + limb2: 0x30371ad6bf543c10, }, w6: u288 { limb0: 0xd6adaf61b6d0903807ee7c9a, limb1: 0xee225f52f407d4ac976ef50a, - limb2: 0x2bda417303c6e24 + limb2: 0x2bda417303c6e24, }, w7: u288 { limb0: 0x65b3fb8257e7965d755002d2, limb1: 0xfeb9878a646b31e21f1bc4dd, - limb2: 0x3fabd669db5667 + limb2: 0x3fabd669db5667, }, w8: u288 { limb0: 0xc8927e2bf2fd8606dc9b6e85, limb1: 0x9ddb06748b2b5d9c90979f30, - limb2: 0x24bbdf3df96e6ea1 + limb2: 0x24bbdf3df96e6ea1, }, w9: u288 { limb0: 0xd7eba07d8fb5fcb950830fc7, limb1: 0x1c092ce0a8e62ed5de82e1d8, - limb2: 0x7e9c4205bfb999c + limb2: 0x7e9c4205bfb999c, }, w10: u288 { limb0: 0x22d58baa6c70b1c140f13e2b, limb1: 0x38546fe262f003b039568289, - limb2: 0x13eb0f5e2523f2ca + limb2: 0x13eb0f5e2523f2ca, }, w11: u288 { limb0: 0xe6fdf4239d6fe039730db80e, limb1: 0x81fc600118834bde7b210e33, - limb2: 0x23e94c10560dd48f - } + limb2: 0x23e94c10560dd48f, + }, }, E12D { w0: u288 { limb0: 0x126dcabb9c83e55788a421b5, limb1: 0x2e5a8020d31d184d2bd680f8, - limb2: 0x176e9e74d5123bec + limb2: 0x176e9e74d5123bec, }, w1: u288 { limb0: 0x732eaa22202d100e390b18ca, limb1: 0x2595de575d6260fc6337efbc, - limb2: 0xf59c55b16fb73c0 + limb2: 0xf59c55b16fb73c0, }, w2: u288 { limb0: 0x8454d677091dc5fd7e035f79, limb1: 0x6a2dd013fb3bc6a2e5003d7, - limb2: 0x1c39b76d67404b64 + limb2: 0x1c39b76d67404b64, }, w3: u288 { limb0: 0x4fc8609d589ce3d8c239a3dd, limb1: 0xa8f08cf1f22a3c5957b65a22, - limb2: 0x241f11fcdd196ec + limb2: 0x241f11fcdd196ec, }, w4: u288 { limb0: 0x67e9b76b6ba40ce55cf6ab86, limb1: 0x8efa4d2d0eabda1157c2bb0d, - limb2: 0x252d5836afe72740 + limb2: 0x252d5836afe72740, }, w5: u288 { limb0: 0x44c643bb39ed068dead8aca2, limb1: 0xa1da68cdcb0915ecad11d33c, - limb2: 0x102404f3b319bf2a + limb2: 0x102404f3b319bf2a, }, w6: u288 { limb0: 0xb5b9204c239db4019c1fdb3b, limb1: 0xf9e229ea94fa5218d7c1fc77, - limb2: 0x143ceec4f0df474 + limb2: 0x143ceec4f0df474, }, w7: u288 { limb0: 0x453b36a8489031e742fad6a5, limb1: 0x9092027d3685f9f1c9d26cfb, - limb2: 0x50420383217b07e + limb2: 0x50420383217b07e, }, w8: u288 { limb0: 0x23c8b1a3576fc3fe496deedc, limb1: 0x17660d0f8467bc551b9d0bdd, - limb2: 0x103804c850751821 + limb2: 0x103804c850751821, }, w9: u288 { limb0: 0x1d3bb90042e840d2625d12ea, limb1: 0xf92dc5238204717730ffb1ce, - limb2: 0x246eb81f06275fc2 + limb2: 0x246eb81f06275fc2, }, w10: u288 { limb0: 0x53509e255bff37a25830dbe3, limb1: 0x985df0466ce0dcec904b0fd7, - limb2: 0x908c8217e42cd80 + limb2: 0x908c8217e42cd80, }, w11: u288 { limb0: 0x3e912b9df8245fa466263f73, limb1: 0xaefb85c91fb824510a98d40a, - limb2: 0xff2b69e5bfe0481 - } - }, - E12D { - w0: u288 { - limb0: 0x8fd4c679cb4084453aae1017, - limb1: 0x9576c0773ae9f07cee45bf9d, - limb2: 0xf71862857ee11c6 - }, - w1: u288 { - limb0: 0xb4ed54b6e94d62686bbedbf4, - limb1: 0x4bc33d1a075928d973dc8462, - limb2: 0xde6c6a5221bdbc3 - }, - w2: u288 { - limb0: 0xe40a340e806b7f1932d7ed51, - limb1: 0xbd73e60ee6075cf4793b7a95, - limb2: 0x16c9fc692191a3a0 - }, - w3: u288 { - limb0: 0x550d86c8ddc6d7ac82c50d39, - limb1: 0x7d753b8f916828b9b6e0f5b9, - limb2: 0x215c9ecd389302f - }, - w4: u288 { - limb0: 0x7ddb580e8e8f0c70c6051c41, - limb1: 0x389a5d619f425a49ce41e79c, - limb2: 0x1a4ab936af3e382e - }, - w5: u288 { - limb0: 0x43ad0a27a22816967a9e1c56, - limb1: 0xab70c46b9317e8c5147e4b1, - limb2: 0x17e757bacd77bd32 - }, - w6: u288 { - limb0: 0x9518bca2b675d7d8231faf0c, - limb1: 0x2f93d0808f292c134d121ffc, - limb2: 0x177469f51d183fd0 - }, - w7: u288 { - limb0: 0xfa878dd8f63a5bcab4040ed8, - limb1: 0xe8750db7175ce592c51187a4, - limb2: 0x1ad0e9a85fac64b9 - }, - w8: u288 { - limb0: 0x45cc130a325b42b5e0cabaf9, - limb1: 0x932f5698f44b68e2ce5970c8, - limb2: 0xde70010880751ff + limb2: 0xff2b69e5bfe0481, }, - w9: u288 { - limb0: 0xe30eebf51ae2d1481d6f5641, - limb1: 0xa0605b190757fd024746dd39, - limb2: 0x1b71dcfef0e4849d - }, - w10: u288 { - limb0: 0x4bfa02f074521e4f97d86ed5, - limb1: 0x916e4ee9700431f5628d7f6a, - limb2: 0x2bde2b7e93562721 - }, - w11: u288 { - limb0: 0xb6597569716f0d00312488ae, - limb1: 0x44a25ad1cd0a8550ce1b2238, - limb2: 0x139954e2012b311b - } }, E12D { w0: u288 { limb0: 0x56b32d16ca998bb70b7788b2, limb1: 0xb01d382c48614d4ead2ee20f, - limb2: 0x9a64fc7378b5983 + limb2: 0x9a64fc7378b5983, }, w1: u288 { limb0: 0xa6231f1419290d1fe863d395, limb1: 0xa558113440db59f078ce3064, - limb2: 0xae4a839007bf42e + limb2: 0xae4a839007bf42e, }, w2: u288 { limb0: 0x75ef5211c2b0d3fb68e934fe, limb1: 0x4b999ebd29af21abdebfd167, - limb2: 0x1300c3b30e57dd45 + limb2: 0x1300c3b30e57dd45, }, w3: u288 { limb0: 0x20db161a9639e8681ce22733, limb1: 0x59edc8f158aeb79b697b9c19, - limb2: 0xf3607616f05f4f4 + limb2: 0xf3607616f05f4f4, }, w4: u288 { limb0: 0x8e0047a94f779f1b616a665e, limb1: 0x7bf323f05fe820cd6b92f8c1, - limb2: 0x255f3301a994d38 + limb2: 0x255f3301a994d38, }, w5: u288 { limb0: 0x7cce5d4463609087e5be3f9b, limb1: 0xf5ba833a41f0ba18432a33f1, - limb2: 0x2251cd91d4cb556a + limb2: 0x2251cd91d4cb556a, }, w6: u288 { limb0: 0x1c4f0dfbc693f258d4248701, limb1: 0x77e4e4829a6bc521b295a18, - limb2: 0xbfac02addd7ca9 + limb2: 0xbfac02addd7ca9, }, w7: u288 { limb0: 0xfd7f0f015d04a59f87d0cc26, limb1: 0xe29e4605e3049af9e29c2f97, - limb2: 0x2a8c7ce36cd38433 + limb2: 0x2a8c7ce36cd38433, }, w8: u288 { limb0: 0x11d34ee47ec5a24c6604f5fc, limb1: 0x30be471321da0d345f4143f9, - limb2: 0x2c5fa2db51bc0d96 + limb2: 0x2c5fa2db51bc0d96, }, w9: u288 { limb0: 0x1502abefbd9b920aec4bea87, limb1: 0x9639b012f620a9a4549f90ee, - limb2: 0x276a2c92cd4b35c4 + limb2: 0x276a2c92cd4b35c4, }, w10: u288 { limb0: 0xf17b79c9b6aeb4d04783926c, limb1: 0x9c1643fc7f0a9517dab75329, - limb2: 0x147a63c2afd56d1a + limb2: 0x147a63c2afd56d1a, }, w11: u288 { limb0: 0xe66eec94302fe7c283b5bd88, limb1: 0x727ac48a4b194db5633b8172, - limb2: 0x256a4b164497e127 - } + limb2: 0x256a4b164497e127, + }, }, E12D { w0: u288 { limb0: 0xcf8cd1f2d235c546a64155e1, limb1: 0x49f94fe26f2f8dc3c32b753d, - limb2: 0x90af94bddbbae6 + limb2: 0x90af94bddbbae6, }, w1: u288 { limb0: 0x5f46fc7fd14501d9b48e3f00, limb1: 0xd6a0531b22317d46ae0f7263, - limb2: 0x29090bfeabc27bd9 + limb2: 0x29090bfeabc27bd9, }, w2: u288 { limb0: 0x5a83a53c14292881b779531a, limb1: 0xf2ea658491724e9014f110eb, - limb2: 0xb760c5729a55ed5 + limb2: 0xb760c5729a55ed5, }, w3: u288 { limb0: 0xcf101de6acf2078bfe7b48e4, limb1: 0xbf896390bca819f7001bf1c, - limb2: 0x1216bca4050f3d36 + limb2: 0x1216bca4050f3d36, }, w4: u288 { limb0: 0x1bc0ecc2ac251eaa5f21d71a, limb1: 0x587b63c9693e42ba2ecbc329, - limb2: 0xe831722223e7137 + limb2: 0xe831722223e7137, }, w5: u288 { limb0: 0x6f420c9c7b0f3f6216d8b5d7, limb1: 0x2cf500acafedbc3812a974a1, - limb2: 0x16c6c0d66ff0e496 + limb2: 0x16c6c0d66ff0e496, }, w6: u288 { limb0: 0x6b80583ddb0da3dc147a8761, limb1: 0xd2ab1ecd4915c94f067bb706, - limb2: 0x5becfa1995ffb0b + limb2: 0x5becfa1995ffb0b, }, w7: u288 { limb0: 0x735f62f6dc9d27b0c99a7afc, limb1: 0x9b049dab7d2617bd302e6ca1, - limb2: 0xc1d8f04d1a37743 + limb2: 0xc1d8f04d1a37743, }, w8: u288 { limb0: 0x1b6e19f6d80457fbd011fdf8, limb1: 0x60bdc4f77e10fdedb4718dbc, - limb2: 0x250fbdefea34c70e + limb2: 0x250fbdefea34c70e, }, w9: u288 { limb0: 0x86a9b4513fb51e5cb981fea3, limb1: 0x3b7f9a4e04823b4667573b4e, - limb2: 0x23be804fbf7fc5ba + limb2: 0x23be804fbf7fc5ba, }, w10: u288 { limb0: 0xd632f7614d5fab9d356c0fd9, limb1: 0x9a02bfc36db366078d9b9289, - limb2: 0xc077e1b37c3db7 + limb2: 0xc077e1b37c3db7, }, w11: u288 { limb0: 0xb85605ecfcfe3176c018bc6f, limb1: 0x25fddd5b4babdaf0e7ebc66c, - limb2: 0x2d126fc19343eb6d - } - }, - E12D { - w0: u288 { - limb0: 0xdcacd06d1a5c56ad24d5b315, - limb1: 0x825390299e39072898569401, - limb2: 0x142c00f3f19e5a4c - }, - w1: u288 { - limb0: 0x1114e6d87a2b756942de33a0, - limb1: 0xbf497d3cd57353f4bb53504f, - limb2: 0x2a94d06053ea2748 - }, - w2: u288 { - limb0: 0xbca2ca67eed852fcaa18190e, - limb1: 0xf8e02de260245553921538e2, - limb2: 0x299c578012901138 - }, - w3: u288 { - limb0: 0xc4bf6e9f56effdbc295ea92c, - limb1: 0x65b04f7a5997cc8b571188f2, - limb2: 0x282635bf01770188 - }, - w4: u288 { - limb0: 0x1a1192888657d275ff94a718, - limb1: 0x935caf5b0269f7396fbbb12, - limb2: 0x125ab5c832211b36 + limb2: 0x2d126fc19343eb6d, }, - w5: u288 { - limb0: 0xfb72d0975eff85b654a0cf12, - limb1: 0xe2499b1d6196a0847bbc60b0, - limb2: 0x15ea3c414e0db333 - }, - w6: u288 { - limb0: 0x90e38450bc569d15a2b7afda, - limb1: 0xb42f1f4ac0f1d9d1620683f7, - limb2: 0x2946badf4df856c6 - }, - w7: u288 { - limb0: 0x1bcc9e2c63b8299c5579d83f, - limb1: 0xac2947543e363d9f2aec261, - limb2: 0x159ebe610afb0058 - }, - w8: u288 { - limb0: 0x7cfb8a5e8252fd875409dfb9, - limb1: 0xe162e554d7a0fdd193638616, - limb2: 0xbf4367763f2ca34 - }, - w9: u288 { - limb0: 0xd4c2b477d3966eec6f13a93e, - limb1: 0xd4775509f0a69099388a4a3b, - limb2: 0x18218b96c487029a - }, - w10: u288 { - limb0: 0x445d8d5619d7610dc39254a3, - limb1: 0x1db9e0e5f87965a24aaf6d05, - limb2: 0x2613ba33626496a9 - }, - w11: u288 { - limb0: 0xaa884e51a84b5ff939035806, - limb1: 0x52faec90620dc85b271682d6, - limb2: 0x2a6657930d76cb8f - } }, E12D { w0: u288 { limb0: 0xe0eb79ef697704f9f88009a7, limb1: 0xf84e9fd2b03ff24c279431ef, - limb2: 0x1ecafc868da37277 + limb2: 0x1ecafc868da37277, }, w1: u288 { limb0: 0x2ac72b964e5cc678d621ba0b, limb1: 0xb71c8056e530a371916123aa, - limb2: 0xa6a0ceb5f1b6d2d + limb2: 0xa6a0ceb5f1b6d2d, }, w2: u288 { limb0: 0xb6bad8778afe2fef077674ba, limb1: 0x7a16c7fd65c6f7f2e37b1e23, - limb2: 0x22a5e8a58f9c582b + limb2: 0x22a5e8a58f9c582b, }, w3: u288 { limb0: 0xb396d10dfc48fc667c7690c3, limb1: 0x16d22ca57a88a11bca38ff4a, - limb2: 0x20ef9698b6d40399 + limb2: 0x20ef9698b6d40399, }, w4: u288 { limb0: 0xa2c377682b43313850d5bceb, limb1: 0x278d711737f6ea40b0dce47c, - limb2: 0x295158b2625822c + limb2: 0x295158b2625822c, }, w5: u288 { limb0: 0xda0ba60542bf2bcbc9602228, limb1: 0x7cc8b336d9d47520093bb1ba, - limb2: 0x300a142a2850796f + limb2: 0x300a142a2850796f, }, w6: u288 { limb0: 0x73fc5bdded39397faec57d1a, limb1: 0x93befe8f64a746ca03d89fb8, - limb2: 0xd34647249cce294 + limb2: 0xd34647249cce294, }, w7: u288 { limb0: 0x949decf431ad41a4c35769a8, limb1: 0xe75de8c12021d75cc1efb433, - limb2: 0x1a5f238d6dce3644 + limb2: 0x1a5f238d6dce3644, }, w8: u288 { limb0: 0xb63f0e9fb3fee04aeace972f, limb1: 0x5764b150d8ed8b5cdfaaee7f, - limb2: 0x1154bf9d5bd93772 + limb2: 0x1154bf9d5bd93772, }, w9: u288 { limb0: 0x954e689968960d0c6a3a5be9, limb1: 0x9f6a3e9cc45fbcb1a92c2433, - limb2: 0x403a6d1d9e0e3f3 + limb2: 0x403a6d1d9e0e3f3, }, w10: u288 { limb0: 0xe8cb3b0bc09991bdbc73f57b, limb1: 0x7b7e751a540e324065a25619, - limb2: 0x2f223fa11d10f5f9 + limb2: 0x2f223fa11d10f5f9, }, w11: u288 { limb0: 0xec0d73c52157b51a5163723, limb1: 0x5b46f935b0ed7732d2de6790, - limb2: 0x28dfc542f18824d9 - } - }, - E12D { - w0: u288 { - limb0: 0x65fe9911a3f53851bdd1e796, - limb1: 0x971cd44755159f3d6dc55d5c, - limb2: 0x2859f608cc7ad96c - }, - w1: u288 { - limb0: 0xd830e3c4a65ba9a613038b3e, - limb1: 0xb585cda53b4f552c17587a37, - limb2: 0xe55f7ecb27019ed - }, - w2: u288 { - limb0: 0x3ceb43f95c089dc4e701e8ee, - limb1: 0xfdd315ff90ec81bacae5a447, - limb2: 0x2fe21dc5c43a220b - }, - w3: u288 { - limb0: 0x78b6cdd8562b5899d6cf9657, - limb1: 0xd422fe796c3d85e8aadfbc49, - limb2: 0x17f2e7feb00ff2ef - }, - w4: u288 { - limb0: 0xcc0f876a060e759c45f05dd4, - limb1: 0xb75865df9ae00d1ea4a623b2, - limb2: 0x26f316dc71fb00fb - }, - w5: u288 { - limb0: 0x597c6fdc21b85d8b360aa324, - limb1: 0x5359ad43ae3306088983914d, - limb2: 0x24e3f76d951b9699 - }, - w6: u288 { - limb0: 0xc659d6c9cb48fd131170c0a8, - limb1: 0x2f7ef894e5f3ae2a6520e406, - limb2: 0x1dc86b0f9cef3f15 - }, - w7: u288 { - limb0: 0x7539debf40c408f6eee9145e, - limb1: 0xd567e64c228e44bfe11551e1, - limb2: 0xe5c39a44dd2d195 - }, - w8: u288 { - limb0: 0x2f9d92490bfe75690687b8f, - limb1: 0xe09e4a9dee8d8ade19ec3b58, - limb2: 0x2c642f8c86c070f2 - }, - w9: u288 { - limb0: 0x22c1fd1c2e16ab3d9cd21ee2, - limb1: 0xe89400c7e26cb130fd1097a9, - limb2: 0x614bc27df3261d9 - }, - w10: u288 { - limb0: 0xf9e081670afd6dddd3411b0f, - limb1: 0x69529167f430c999443f126, - limb2: 0x1825758e9e66212f + limb2: 0x28dfc542f18824d9, }, - w11: u288 { - limb0: 0xf8991f204d35e8b1fcb0e563, - limb1: 0x619dad210a01f248c23b047a, - limb2: 0x7d11fadefd6bed - } }, E12D { w0: u288 { limb0: 0xe2fea35c4a5b28c62048e60a, limb1: 0xaf70594c4748f6aec0400b42, - limb2: 0x3ce671704d55a22 + limb2: 0x3ce671704d55a22, }, w1: u288 { limb0: 0x978176f558827db938ce63cb, limb1: 0x5de249f88953aba9e96e95f6, - limb2: 0xd03c2c5a6e7a15d + limb2: 0xd03c2c5a6e7a15d, }, w2: u288 { limb0: 0x1d20a8027dff3e64687b0caa, limb1: 0x448f6d039cfcc3132aeb2043, - limb2: 0xd84a765a1ed7869 + limb2: 0xd84a765a1ed7869, }, w3: u288 { limb0: 0x1703cf57601441d313ce9f6, limb1: 0xb4db90a6e191a4af88fe5033, - limb2: 0x678587681e1f62d + limb2: 0x678587681e1f62d, }, w4: u288 { limb0: 0x36cff464be8bd512f26bce5c, limb1: 0xb716aac34db1dc56b2294b3d, - limb2: 0x1bf3f2db255639d1 + limb2: 0x1bf3f2db255639d1, }, w5: u288 { limb0: 0xeac83ef4b82b4b763bac4e8b, limb1: 0xf4cde6c8121a2baa622243a6, - limb2: 0xb2055633f438f3b + limb2: 0xb2055633f438f3b, }, w6: u288 { limb0: 0xda63aa46e3f37283a06151c7, limb1: 0x8ee3b65ce2564d4c7b5f483f, - limb2: 0x297ecb7fdeba1aa4 + limb2: 0x297ecb7fdeba1aa4, }, w7: u288 { limb0: 0xfb59559a190f305cac04eaf9, limb1: 0xa90e8d265b71e75a7341b23f, - limb2: 0xcb8a82d979e7ea2 + limb2: 0xcb8a82d979e7ea2, }, w8: u288 { limb0: 0xc58bf182be372c06687de495, limb1: 0xf4cb50f848c1e0e2072c7486, - limb2: 0x2b107173b97495a9 + limb2: 0x2b107173b97495a9, }, w9: u288 { limb0: 0xe0eabd65692464ca0dd92b1f, limb1: 0x56abb5cb408d804cc85bf34a, - limb2: 0xc80e3c37d6cad8a + limb2: 0xc80e3c37d6cad8a, }, w10: u288 { limb0: 0x2ee21b700c674b257b1831d7, limb1: 0x3d01c28bcd9b53ad28d0864f, - limb2: 0x51f5ebd4bc028b9 + limb2: 0x51f5ebd4bc028b9, }, w11: u288 { limb0: 0x5ec5d4da4056deda36f904a, limb1: 0x168e485c29ffe2be92bd8ea9, - limb2: 0x2c51b496555823dc - } - }, - E12D { - w0: u288 { - limb0: 0xd159fdd2ff099a3e32aa5da6, - limb1: 0x5aa95d924018bda13a33c49f, - limb2: 0x2dab33966f1b4245 - }, - w1: u288 { - limb0: 0x76bd552bbc9b910d5278ad34, - limb1: 0x125c304aa3131496825a27cc, - limb2: 0x3d14c6fd44dd426 - }, - w2: u288 { - limb0: 0xeabf0305740575a2a71efd23, - limb1: 0x80010d7ebc0c84e8a7d7239b, - limb2: 0x2af3a9238f524f42 - }, - w3: u288 { - limb0: 0x8f8c2b6c4cb35fd1753fe76a, - limb1: 0xe266cdf610dfbe066e1e68a, - limb2: 0x30403d5a5fd3ef8b - }, - w4: u288 { - limb0: 0x30dabf58fb0221cb1548649a, - limb1: 0x7facfd15f3f8042bf438f174, - limb2: 0x996be119de67e7d - }, - w5: u288 { - limb0: 0x53a10dbc2038dac047f7b072, - limb1: 0xc5021ce5dc10b26f12e5e6c9, - limb2: 0x4dedde9bf891cde - }, - w6: u288 { - limb0: 0xaf699859d55d2f63291a0033, - limb1: 0xf03e7b96ed01283a3a221366, - limb2: 0x2fe4c3408aff347 - }, - w7: u288 { - limb0: 0x8e78323d3f09e61d69f47270, - limb1: 0x5f6e0202d5f658d5989b985f, - limb2: 0x1e4b269a42cd2734 - }, - w8: u288 { - limb0: 0x252b47d007ef9a56c76d2ae9, - limb1: 0xac9f49406dbf0ce04253b722, - limb2: 0x257407ee3a61d951 - }, - w9: u288 { - limb0: 0xdc2a60a615d500a53259c80a, - limb1: 0x388bf1ab0a1767c3788b817, - limb2: 0x1b23fc9a966801bb - }, - w10: u288 { - limb0: 0xd0f7eb21362aa989e4d6b213, - limb1: 0xe74a2ec6d66f4f55d329d373, - limb2: 0x1a662cf574ae5562 + limb2: 0x2c51b496555823dc, }, - w11: u288 { - limb0: 0xa5a7d1de4dabce428331ac37, - limb1: 0xee5017b91fde56bb9fa004e7, - limb2: 0x10ba7b5a434c67e1 - } }, E12D { w0: u288 { - limb0: 0x3849edf1643cd1b06a5313ca, - limb1: 0xa99ee3514f896df4f07cda1, - limb2: 0x26b4dca3eca82676 + limb0: 0xa8471dd55603384b42066496, + limb1: 0xe46eee6fcaba6ee1116284f5, + limb2: 0x2575472a96ec8df, }, w1: u288 { - limb0: 0x70125c51233e07e43390abaa, - limb1: 0xc7de3239b24ca16f2741abdd, - limb2: 0x22b42fd8b25fedb + limb0: 0x9b001b2c565f0ddfa573296c, + limb1: 0x5debea2a4077e45fd6049d3e, + limb2: 0x10ea438a1d19edf5, }, w2: u288 { - limb0: 0x9db8a5ee765738a56da8a438, - limb1: 0x30159c0d807f609660dbf89d, - limb2: 0x2ce63d54a34e18d6 + limb0: 0x459fab1d8fcf4bb48996829, + limb1: 0x1beefd7fc2a65a73c031c7f3, + limb2: 0xbfde865e2af211d, }, w3: u288 { - limb0: 0x2122943927652c648bbac1fe, - limb1: 0x781c91ffb2df4eda9b137bd1, - limb2: 0x8b13a1e2bf0931a + limb0: 0x127b67ab28f4648ccd7298af, + limb1: 0x8d1a33c8a95c07a2d8182b51, + limb2: 0x154f5a2a8978766f, }, w4: u288 { - limb0: 0xb3b1f25bf456cca2264adb91, - limb1: 0x214ded03f6a77b4d26d429b4, - limb2: 0x173f73c7e853e0ef + limb0: 0xa843c7b6cdbfec70273c7179, + limb1: 0x451376ff143138b26508e149, + limb2: 0x27ee093ad5b5641d, }, w5: u288 { - limb0: 0xfabc542e52d7997e90d2428c, - limb1: 0xfe7fc38ff512787879021bec, - limb2: 0x1ff6341af15a754a + limb0: 0xe46d7ddc38e93e5d4539397e, + limb1: 0x10c546e7762036ef0406b68e, + limb2: 0x1e5de28d570d8c23, }, w6: u288 { - limb0: 0x82f92beaad96a7d300ac3b06, - limb1: 0x63169cba1ec51c7853dcbfb8, - limb2: 0x2af3f7b2045021f + limb0: 0x1d71841c43b80d2bfc818be0, + limb1: 0x9ed8354ed235ab98dcbafdfd, + limb2: 0xc7832fd4bcfdd58, }, w7: u288 { - limb0: 0x46fa256b7a99e26d4fff996d, - limb1: 0xcd41ad01d696bdedb40d9168, - limb2: 0x25fd008969475dae + limb0: 0x9120a99dcef073912a3fbe11, + limb1: 0xc99085975b31be35943fe6de, + limb2: 0x19b2aeb3f9a37fc0, }, w8: u288 { - limb0: 0x90c52bcb1f026bc3d0b06a6, - limb1: 0x899c5d552025574d832e75db, - limb2: 0x1e1abadde2d7b7e1 + limb0: 0xfdd9ded7b646da18595ccac2, + limb1: 0x7326e81c5c4d6cd485a95afc, + limb2: 0xb12576c70934ed4, }, w9: u288 { - limb0: 0x96b0a74091d7ca98d5adb56f, - limb1: 0xc3a292fd285f824aab7653d4, - limb2: 0x2837e439aa028e90 + limb0: 0x761820abaa0929428358b641, + limb1: 0x49c5bd0dedc35fae8f0ae35e, + limb2: 0x179d6cc8ca4c2127, }, w10: u288 { - limb0: 0xc2cd379c3c0dcab6dd8e93f9, - limb1: 0xa278fb7771b07e8c974e6629, - limb2: 0x23dba7c668ebcbf8 + limb0: 0x337630f723038a58f57b249a, + limb1: 0xb6754ac913be8838812111fe, + limb2: 0xc811873605012b5, }, w11: u288 { - limb0: 0x59eae3a5a6dcbc0166cb6623, - limb1: 0xf7363b4bc53027c9f071e104, - limb2: 0xc61bd441fcf09c - } + limb0: 0xd311f807d8869697ae180475, + limb1: 0x3184bc6814d397f313fcd460, + limb2: 0x335982df9e3c62a, + }, }, E12D { w0: u288 { limb0: 0xd43b4f3fddaca664aeb0609a, limb1: 0x4bfc6836c701691c4414eee0, - limb2: 0x2fb3fa9c32523106 + limb2: 0x2fb3fa9c32523106, }, w1: u288 { limb0: 0x8e7ad226defaa97d7f70c6e6, limb1: 0x857e2881a21df90f085e3b8a, - limb2: 0xe37b527e826d61c + limb2: 0xe37b527e826d61c, }, w2: u288 { limb0: 0x30530cf277d3ac15f532bb98, limb1: 0x88cbcea6dfad7de0cfc2ba7d, - limb2: 0x2eca3af594e50fbf + limb2: 0x2eca3af594e50fbf, }, w3: u288 { limb0: 0xef4cc3ba0de6966b75295de8, limb1: 0xaf8676b848865e67c0f26489, - limb2: 0x1460c0fd900d19c + limb2: 0x1460c0fd900d19c, }, w4: u288 { limb0: 0xc01ef62a31ee02de38d89329, limb1: 0x1d525f597b96d81d5254e48e, - limb2: 0x14221da9a4fc3c02 + limb2: 0x14221da9a4fc3c02, }, w5: u288 { limb0: 0xadc48338e7db4e11166052f6, limb1: 0x9e68b555bddbd64621247d0c, - limb2: 0x5a77fdfda3d9125 + limb2: 0x5a77fdfda3d9125, }, w6: u288 { limb0: 0x63d9fa8e08c9954284f16245, limb1: 0xca621cede38d19231a12d63, - limb2: 0xd27fe5bd781b034 + limb2: 0xd27fe5bd781b034, }, w7: u288 { limb0: 0x77a9046ebfaeabcd937b61aa, limb1: 0xdfa2e67db4bb78ec8cab398f, - limb2: 0x1dd3f480cadc51bf + limb2: 0x1dd3f480cadc51bf, }, w8: u288 { limb0: 0xf65c9e4d2df095b6d942b195, limb1: 0xd6ebcf23f6276b9f4398ca5b, - limb2: 0x1685cb6183c850a4 + limb2: 0x1685cb6183c850a4, }, w9: u288 { limb0: 0xe5ce6d51f5c7a2aeec8cada, limb1: 0x516cacc2dabd97d328953757, - limb2: 0x1974d6cc4195d3f0 + limb2: 0x1974d6cc4195d3f0, }, w10: u288 { limb0: 0xc2dc450c125c4f157be8a0ed, limb1: 0x4de5175e01fcec11f2943446, - limb2: 0x94d92ac291aff6d + limb2: 0x94d92ac291aff6d, }, w11: u288 { limb0: 0xab272482c2c48dac7030c6fb, limb1: 0xad02ca14f40e608b78e0d102, - limb2: 0x1bb830e6999b29a3 - } + limb2: 0x1bb830e6999b29a3, + }, + }, + E12D { + w0: u288 { + limb0: 0xc83eac5d253a3c206da26863, + limb1: 0x1a2947347e60ca31a19b795a, + limb2: 0x19d283eb90879408, + }, + w1: u288 { + limb0: 0xfe29e4f1c7f2933ca1484bb7, + limb1: 0xa467cb57c5dd3ee90eb9b1fd, + limb2: 0x5af95cf457531b6, + }, + w2: u288 { + limb0: 0x5219339ef8753869ba2e72df, + limb1: 0xf6edbe19ee9528b014d5c5e4, + limb2: 0x17e4d2b93b5a24d6, + }, + w3: u288 { + limb0: 0x702d294fada771a134eda0dd, + limb1: 0x6f78dce21c0fa36347352189, + limb2: 0x271fd9860e85dc01, + }, + w4: u288 { + limb0: 0xcdae44d3e06c07681ae14c73, + limb1: 0xe07fa16b28b87a358d682e14, + limb2: 0x1b33f9d4bedad80f, + }, + w5: u288 { + limb0: 0x527e57b7206c1f1abed0556, + limb1: 0xc5f02956f7dd77fc77040195, + limb2: 0x1917515d732e83cf, + }, + w6: u288 { + limb0: 0x821089dfaa7ef412763e67ff, + limb1: 0xfd54fe4da59d3b34626aa0a3, + limb2: 0x1f646c3c1ce572a3, + }, + w7: u288 { + limb0: 0x2266b08b3a2f19ef3dfde72f, + limb1: 0x8b17232a32f1d284469f812a, + limb2: 0x3d46d9f79f4918e, + }, + w8: u288 { + limb0: 0x8bc72d70c71f6a14c2015aec, + limb1: 0x3e3b1d0272aeee3c95095070, + limb2: 0x1401f32c5bdc074d, + }, + w9: u288 { + limb0: 0x6b9fdcc49f933192fdd316d9, + limb1: 0x51b8f8765258f14ff0b91b7f, + limb2: 0x2d04765080f5aa72, + }, + w10: u288 { + limb0: 0x282af58df7dd63615218a4db, + limb1: 0xdb5b2942254b35298f473dfa, + limb2: 0x19371f2e44f2642f, + }, + w11: u288 { + limb0: 0xf656fcc4885e9bac2311a500, + limb1: 0xb86e168eccc1490248a1bbcf, + limb2: 0x1e94a5f389c1134f, + }, + }, + E12D { + w0: u288 { + limb0: 0x77cf6625b6c8297f66029263, + limb1: 0xc383aa686c6b394b8caf4e8a, + limb2: 0x187eeecb1701e122, + }, + w1: u288 { + limb0: 0x2a79a147b768622ba6238818, + limb1: 0xc163351aee82545a4039f15d, + limb2: 0x1dd2a0792fb15c91, + }, + w2: u288 { + limb0: 0x2edce55cae49f12e0a2c17f7, + limb1: 0xac97b75bea5f816bdae1760d, + limb2: 0x27516677b7a92f52, + }, + w3: u288 { + limb0: 0xc0187f4a93b5c0410ba3765, + limb1: 0x5c1b1d363a9c415efa352305, + limb2: 0x21d20787e6ea3a9f, + }, + w4: u288 { + limb0: 0xdf894053b59ef32b64ef4603, + limb1: 0x606a274f1be394c8b59f9350, + limb2: 0xc28e6836a1d1629, + }, + w5: u288 { + limb0: 0xa3c051b381cb2299496fe448, + limb1: 0xc3038936d50c2e618805bb1c, + limb2: 0x2162f7e7be7c261a, + }, + w6: u288 { + limb0: 0x89543c7f4f547ec86001374e, + limb1: 0xe41618251b98064df96c7048, + limb2: 0x20b4623bc4e7b9d0, + }, + w7: u288 { + limb0: 0x56cecb565b389a0568d488d8, + limb1: 0x310fe2501d7582fea0ecb5ec, + limb2: 0x2b16c00e3a31bdc5, + }, + w8: u288 { + limb0: 0x7cbe287a49fec8d0e66bdce, + limb1: 0x5cd314bcf9c8c3b675af7e23, + limb2: 0x203bca9476d48291, + }, + w9: u288 { + limb0: 0x1d1a081ce40288bedca7879a, + limb1: 0xd9c9d12e7b5d4284b114a53f, + limb2: 0x158a818d89b10347, + }, + w10: u288 { + limb0: 0x3ed3bb63d60b32bd130cdd9d, + limb1: 0xdc5440f663a1e62a94f684b5, + limb2: 0x5878a7473a2cec7, + }, + w11: u288 { + limb0: 0xed615ba34e6b7c91fed7af9b, + limb1: 0x7610fcd1ab61e065f34f13c3, + limb2: 0x36a46c76bfab3cf, + }, + }, + ] + .span(), + big_Q: array![ + u288 { + limb0: 0xca81921c151d66a0175ed1f1, + limb1: 0xb99064d84f4ee7eea6b900f1, + limb2: 0xeedd2f36c562a41, + }, + u288 { + limb0: 0x37c6bd6aff966de212559a4f, + limb1: 0x57c2f5686b8e9e2e4153357e, + limb2: 0x224e1012225e5c30, + }, + u288 { + limb0: 0x70e1f80bae277f08b6773838, + limb1: 0x7d2c44f1488db416b60a53dd, + limb2: 0x2ede61f367e0d4b9, + }, + u288 { + limb0: 0x33bbc4438c0b190fcacb2282, + limb1: 0x4152d4fa3ad46fa239195eaf, + limb2: 0x2b1576e995f3e9e1, + }, + u288 { + limb0: 0xa66693f20e7541273710fda, + limb1: 0x4ae68aac5fdd755d8c13e4ce, + limb2: 0xf7bf173888d8c9a, + }, + u288 { + limb0: 0xa5ab0d0482f9335aa35ed40, + limb1: 0xb89f2129d4bc24e5d02db3bc, + limb2: 0x18db4ed560632e49, + }, + u288 { + limb0: 0xad3ad307d393fc4a656b5e4c, + limb1: 0x445603716c8a44429b23dc2, + limb2: 0x15b447124515950, + }, + u288 { + limb0: 0x20e0e8c832bd607dc0dc7c5a, + limb1: 0x15313c5c184ba69e70ea037f, + limb2: 0x64f5848c48f6e5, + }, + u288 { + limb0: 0xcc818d6b8fa7e5751ce6490d, + limb1: 0x4869085d01f2770a96615a25, + limb2: 0x2f209ecccc84ed49, + }, + u288 { + limb0: 0x52107657f105e32deb169705, + limb1: 0x51c3c4c00f7d3ab0807b043f, + limb2: 0x231519bfdfe40b42, + }, + u288 { + limb0: 0x49e3fd9868bf9e5304d0f69c, + limb1: 0x5716b0e87e7b1f9f84a5f40c, + limb2: 0x8ac7a0b641579fa, + }, + u288 { + limb0: 0x98e24db86f8abfc91ef4161d, + limb1: 0xa076b054e64230527b40e53c, + limb2: 0x27859822b815d6c4, + }, + u288 { + limb0: 0x3bd307d84c12d6ddb522c689, + limb1: 0x2a994b67e88de79bd3062c5d, + limb2: 0x19a90636af86d5d3, + }, + u288 { + limb0: 0xfb13bf0c6aa24a049dfffea0, + limb1: 0xbbf3f94323b78b7aaef345d3, + limb2: 0x159435234c68b140, + }, + u288 { + limb0: 0x1bbb873eeb894b027e3fe997, + limb1: 0x1f1c18b289e122ff66189ef8, + limb2: 0x1ff5094767921e9e, + }, + u288 { + limb0: 0x9e144f30841400493f2a539e, + limb1: 0xd7d08dac725bc269f40687d6, + limb2: 0x1c2579365e374382, + }, + u288 { + limb0: 0x55bc8f51b90ec85b1b5ea49b, + limb1: 0x6ca90ae82fbdd16dd459ea03, + limb2: 0x1a8ce5a85856924, + }, + u288 { + limb0: 0xea45b5a9969bc69aab9d3b3b, + limb1: 0x74db2358b3086722550f88ab, + limb2: 0x1aed839f48870b8d, + }, + u288 { + limb0: 0x9f290506c818e726440f9625, + limb1: 0xbc6076b1dfc425439b1e7987, + limb2: 0x72c41fdc9d5adda, + }, + u288 { + limb0: 0xf6539ec15132a0825bb041a2, + limb1: 0xe563a62bc30696938ac5521c, + limb2: 0x16a5f27ba56a4891, + }, + u288 { + limb0: 0xc6562a8e7315ec1d86a83fbc, + limb1: 0xf09566184ba498d12785d36d, + limb2: 0x25b1632c7160c65f, + }, + u288 { + limb0: 0x34cfdecdf24699cb6372d77e, + limb1: 0x18193bea1075c08300f7e63a, + limb2: 0x2eb5c9bf35035c13, + }, + u288 { + limb0: 0xe67ad43eec792f71660e630b, + limb1: 0x774f0498985ac9d837046bfe, + limb2: 0x167813064cd31402, + }, + u288 { + limb0: 0x261b6589cea4ce4e380d8913, + limb1: 0xea09cf19340d3a89d7b340f2, + limb2: 0x17d54a7fafd79538, + }, + u288 { + limb0: 0xf06fa319fe3a7096106c0bcd, + limb1: 0xa4925d117de7827da4155e81, + limb2: 0xfacd10c0d6b576b, + }, + u288 { + limb0: 0x4af3f0cf5522cc4ff2988eca, + limb1: 0xd3c6c70d55f7c48505031558, + limb2: 0xec483114f23f61a, + }, + u288 { + limb0: 0xcfa0821f551d51844ee8ef40, + limb1: 0x37075ff5d82eae55aaa89ffa, + limb2: 0x6e13e0f01f5fece, + }, + u288 { + limb0: 0xbeab8c67d463477fe0a462ec, + limb1: 0x2802dde8e93da83af6345bd, + limb2: 0x11b4ad0e02eb81e3, + }, + u288 { + limb0: 0x43320104db4c6e23e18311e0, + limb1: 0x76cb69f2decc0f7ff921d0bc, + limb2: 0x2ee553360d999e9c, + }, + u288 { + limb0: 0xdfbace63c158868f5a94456a, + limb1: 0xda78001747d16ec5f374f7ba, + limb2: 0x2d2baf2cd38cab0d, + }, + u288 { + limb0: 0xf292bd8d77832ff66c2ad523, + limb1: 0x13e3e8362b65393093b61f5e, + limb2: 0x3042b1c68a029e6d, + }, + u288 { + limb0: 0x23720bad416ba6674350a141, + limb1: 0x743e812b3e8d29d084904cf7, + limb2: 0x66c1422f97093ed, + }, + u288 { + limb0: 0x348014957bf7929f4d0f6b04, + limb1: 0x8ca056e42c0de1f186b49580, + limb2: 0x11677b3eab8ce22b, + }, + u288 { + limb0: 0x473cfa9fabd49a8050ec36f1, + limb1: 0xe488b057baf67880b22f35b4, + limb2: 0xda83f04ad54d7d8, + }, + u288 { + limb0: 0x8f656a81f4498d23bb890991, + limb1: 0xa9d54e5cc5ae552948fcc5c3, + limb2: 0x1d30ea10852f0a4d, + }, + u288 { + limb0: 0x1ffe9dc9478607eddbf1cd80, + limb1: 0x915257d6a5ed945fea4355bd, + limb2: 0x23bc9a147c719826, + }, + u288 { + limb0: 0x3ee3b7ee6a36e230300abf31, + limb1: 0xce6698ca3ba08994498a486f, + limb2: 0x2375c5e5f2f782a1, + }, + u288 { + limb0: 0xd27f2b1e902e0c5677ff31c8, + limb1: 0xcc2f73a9e02eeb5a49589443, + limb2: 0x112ba33806ca3af3, + }, + u288 { + limb0: 0x8d9a76f0df42c691d596083b, + limb1: 0xd9550033909a7dd06c87c7c6, + limb2: 0x2d3fc197bf781651, + }, + u288 { + limb0: 0x931812c389c26405f6261efd, + limb1: 0xa63777d26355cc94edf8f63c, + limb2: 0x241a2063d4cbeb50, + }, + u288 { + limb0: 0x40de96d838e46257e457ae, + limb1: 0x30d47e3256eac472b851672, + limb2: 0x2825313a9baa2468, + }, + u288 { + limb0: 0x85a01d419e39bbdb7355178c, + limb1: 0xf4c41cff9b0d1ce2272f54d1, + limb2: 0xa98e424ba5f154e, + }, + u288 { + limb0: 0x69b7993741b6495f619bc69e, + limb1: 0xee503df4f163ee81d6835ac5, + limb2: 0x11d6c75a35e823b4, + }, + u288 { + limb0: 0x3e3c05d38a75cc49bf988016, + limb1: 0x458b30fb95cde68e98703ea7, + limb2: 0x2785e8fe806221c0, + }, + u288 { + limb0: 0x3ab73e676bd7cf3e2bd2fefa, + limb1: 0x91032423b7be6ad98adb2749, + limb2: 0x2cd037db5cadd871, + }, + u288 { + limb0: 0xa965bbf9cfccef0c8c86301e, + limb1: 0x121d4e4cccef1357768a37e0, + limb2: 0x70ba3f81ae200a9, + }, + u288 { + limb0: 0xc2b901b9cdf677038f722ac0, + limb1: 0x1b8519a01bef42b02f86fa96, + limb2: 0x526cc0715cdb7cc, + }, + u288 { + limb0: 0x93465319169cb60a970b343, + limb1: 0xeb08fc4109fdd2580afb1bde, + limb2: 0x2fbe1dfad16d28ac, + }, + u288 { + limb0: 0xcc51f7a9bee0ccc7305fa92f, + limb1: 0xdc36d50d3bd61989a9778aa9, + limb2: 0x63f62fbc15a91d4, + }, + u288 { + limb0: 0x7146f187933b426842f9aee, + limb1: 0x4a7a0fadbbe646e844f5f3b1, + limb2: 0xe36dfed487c5d58, + }, + u288 { + limb0: 0x4d314a51a35fdeb3d6773d08, + limb1: 0x5a279429769a95dafcf4bc3a, + limb2: 0x21f9ab1535990277, + }, + u288 { + limb0: 0xfb04045a7849ea0747f4ef80, + limb1: 0x83e9f85a74ef348fcdef944b, + limb2: 0x24fb3a7e14cefe03, }, - E12D { - w0: u288 { - limb0: 0xc83eac5d253a3c206da26863, - limb1: 0x1a2947347e60ca31a19b795a, - limb2: 0x19d283eb90879408 - }, - w1: u288 { - limb0: 0xfe29e4f1c7f2933ca1484bb7, - limb1: 0xa467cb57c5dd3ee90eb9b1fd, - limb2: 0x5af95cf457531b6 - }, - w2: u288 { - limb0: 0x5219339ef8753869ba2e72df, - limb1: 0xf6edbe19ee9528b014d5c5e4, - limb2: 0x17e4d2b93b5a24d6 - }, - w3: u288 { - limb0: 0x702d294fada771a134eda0dd, - limb1: 0x6f78dce21c0fa36347352189, - limb2: 0x271fd9860e85dc01 - }, - w4: u288 { - limb0: 0xcdae44d3e06c07681ae14c73, - limb1: 0xe07fa16b28b87a358d682e14, - limb2: 0x1b33f9d4bedad80f - }, - w5: u288 { - limb0: 0x527e57b7206c1f1abed0556, - limb1: 0xc5f02956f7dd77fc77040195, - limb2: 0x1917515d732e83cf - }, - w6: u288 { - limb0: 0x821089dfaa7ef412763e67ff, - limb1: 0xfd54fe4da59d3b34626aa0a3, - limb2: 0x1f646c3c1ce572a3 - }, - w7: u288 { - limb0: 0x2266b08b3a2f19ef3dfde72f, - limb1: 0x8b17232a32f1d284469f812a, - limb2: 0x3d46d9f79f4918e - }, - w8: u288 { - limb0: 0x8bc72d70c71f6a14c2015aec, - limb1: 0x3e3b1d0272aeee3c95095070, - limb2: 0x1401f32c5bdc074d - }, - w9: u288 { - limb0: 0x6b9fdcc49f933192fdd316d9, - limb1: 0x51b8f8765258f14ff0b91b7f, - limb2: 0x2d04765080f5aa72 - }, - w10: u288 { - limb0: 0x282af58df7dd63615218a4db, - limb1: 0xdb5b2942254b35298f473dfa, - limb2: 0x19371f2e44f2642f - }, - w11: u288 { - limb0: 0xf656fcc4885e9bac2311a500, - limb1: 0xb86e168eccc1490248a1bbcf, - limb2: 0x1e94a5f389c1134f - } + u288 { + limb0: 0xe59b49c3c2f65fd612eee6ef, + limb1: 0xa8b7f663cf71c758089b7768, + limb2: 0x264c1b47535e1efa, }, - E12D { - w0: u288 { - limb0: 0x77cf6625b6c8297f66029263, - limb1: 0xc383aa686c6b394b8caf4e8a, - limb2: 0x187eeecb1701e122 - }, - w1: u288 { - limb0: 0x2a79a147b768622ba6238818, - limb1: 0xc163351aee82545a4039f15d, - limb2: 0x1dd2a0792fb15c91 - }, - w2: u288 { - limb0: 0x2edce55cae49f12e0a2c17f7, - limb1: 0xac97b75bea5f816bdae1760d, - limb2: 0x27516677b7a92f52 - }, - w3: u288 { - limb0: 0xc0187f4a93b5c0410ba3765, - limb1: 0x5c1b1d363a9c415efa352305, - limb2: 0x21d20787e6ea3a9f - }, - w4: u288 { - limb0: 0xdf894053b59ef32b64ef4603, - limb1: 0x606a274f1be394c8b59f9350, - limb2: 0xc28e6836a1d1629 - }, - w5: u288 { - limb0: 0xa3c051b381cb2299496fe448, - limb1: 0xc3038936d50c2e618805bb1c, - limb2: 0x2162f7e7be7c261a - }, - w6: u288 { - limb0: 0x89543c7f4f547ec86001374e, - limb1: 0xe41618251b98064df96c7048, - limb2: 0x20b4623bc4e7b9d0 - }, - w7: u288 { - limb0: 0x56cecb565b389a0568d488d8, - limb1: 0x310fe2501d7582fea0ecb5ec, - limb2: 0x2b16c00e3a31bdc5 - }, - w8: u288 { - limb0: 0x7cbe287a49fec8d0e66bdce, - limb1: 0x5cd314bcf9c8c3b675af7e23, - limb2: 0x203bca9476d48291 - }, - w9: u288 { - limb0: 0x1d1a081ce40288bedca7879a, - limb1: 0xd9c9d12e7b5d4284b114a53f, - limb2: 0x158a818d89b10347 - }, - w10: u288 { - limb0: 0x3ed3bb63d60b32bd130cdd9d, - limb1: 0xdc5440f663a1e62a94f684b5, - limb2: 0x5878a7473a2cec7 - }, - w11: u288 { - limb0: 0xed615ba34e6b7c91fed7af9b, - limb1: 0x7610fcd1ab61e065f34f13c3, - limb2: 0x36a46c76bfab3cf - } + u288 { + limb0: 0x1f314333d247c83bf5e0885f, + limb1: 0x520b0d06b81dc0e762898878, + limb2: 0x12ef66123cdf4a67, + }, + u288 { + limb0: 0x9ee4420645d46c61004aa76b, + limb1: 0xe16b2c8a9931c0a9c3423e59, + limb2: 0x6cc92be9f36db1d, + }, + u288 { + limb0: 0x70d9607545d479d9af95cee5, + limb1: 0x55488e5ed229a945c6c1bb10, + limb2: 0x2d3df35441e827be, + }, + u288 { + limb0: 0x44ef56fb506f6ac83d3ee800, + limb1: 0xee648db67c31110f4ffa299, + limb2: 0x3cd8ddca08050a7, + }, + u288 { + limb0: 0x320fc676a1a8643c28a1ec38, + limb1: 0x1e61bca64e8742ba13172ddb, + limb2: 0x1bb4b1d3bd82edb9, + }, + u288 { + limb0: 0x698bd1b44d3f6171080a93fb, + limb1: 0x901c467eadddc6cfe45631a7, + limb2: 0xebee1f5ef863ece, + }, + u288 { + limb0: 0xdcfa566967df21c1b60a0733, + limb1: 0x4cbfaae95a10eef04ad718b8, + limb2: 0x2608d3b452345ff, + }, + u288 { + limb0: 0xd25a1aceb522c56d87ec8c10, + limb1: 0xf0994d9148d6aa3912b158b6, + limb2: 0x2642af90876c5a13, + }, + u288 { + limb0: 0x28de01088baea7749030fc93, + limb1: 0x3cd745efbe37b4398ccb0a44, + limb2: 0x2105e629ea423cbe, + }, + u288 { + limb0: 0x6b202ed10b120783cdb87aea, + limb1: 0xf003848524d07b193a3003ad, + limb2: 0xb18a81b9e0ef7d7, + }, + u288 { + limb0: 0xfffe4ac95a453626e43b8762, + limb1: 0x5b4f803c05f5bb51dfbab48b, + limb2: 0x1545fd064a2456ff, + }, + u288 { + limb0: 0xa419aad2186910fb65126915, + limb1: 0x189b7339a1acd5488e1c39d9, + limb2: 0x2f2babe00999b18b, + }, + u288 { + limb0: 0x439ca23b28c5fa21d376d715, + limb1: 0xb32bfdc3cc36aed660db9669, + limb2: 0x2cfef2a9bd50c03c, + }, + u288 { + limb0: 0xa194e8e95ff512b208a7ce61, + limb1: 0xbb2351f35065c0b3b3777c7b, + limb2: 0x2a4cac59b0ebc448, }, - ] - .span(), - big_Q: array![ u288 { - limb0: 0xd68de947541bcf1e0d7af28d, - limb1: 0x9ea7081ec5296a6071db9a1, - limb2: 0x1dd1736ed437a016 + limb0: 0xdb79efe4b7def4897e4d3396, + limb1: 0xd121b730ac4b092ec5512e8f, + limb2: 0x25a265c927e20e23, }, u288 { - limb0: 0xfbf195a3606edcf42fd2987c, - limb1: 0xa2ddf76d283dc93c85100930, - limb2: 0x16ca04cb716138ef + limb0: 0x5cfbf3811c6f4c584080d74c, + limb1: 0x8d45b2dc9bc976b6b4dd081e, + limb2: 0x3500843d3fd427b, }, u288 { - limb0: 0x1bbd76a9c1c472c7ad4fa2c7, - limb1: 0x50cde2587af3f53c552ef1d3, - limb2: 0x1f6e2320f49e00ba + limb0: 0x23156dcbd27745a38317e780, + limb1: 0xd908e02f34937057d24e08da, + limb2: 0x95e1d22b431bed4, }, u288 { - limb0: 0x3a4aa64b8e6194fd539a8698, - limb1: 0x690edaad1a6798ef2992a709, - limb2: 0x10224f1a02dc21d5 + limb0: 0x597a8eb4060cec45953a3c33, + limb1: 0x49db5c01b491bf61252b638f, + limb2: 0x1056e016028c3ebe, }, u288 { - limb0: 0xec344203d6986cbdcf7bd7c7, - limb1: 0xb26fb4c2907f41d75e78c74a, - limb2: 0xd05ca1327ede167 + limb0: 0xb25ce265066569a766f41a7f, + limb1: 0xeab053ed702f7579ba89199e, + limb2: 0x2cad752fd6667888, }, u288 { - limb0: 0xcbc14a40fb9adb7027a13d10, - limb1: 0xa1425b0ed552bfda4dd20cfd, - limb2: 0xdb91856f5dc83b + limb0: 0xc2074d2ca59ab7a3854c94d5, + limb1: 0x7b2cdc446ee4d5e03eee89d9, + limb2: 0x608cd66c0851e37, }, u288 { - limb0: 0x38fbd7e1464bbd00bb49e97b, - limb1: 0x733835bec78bfbfedf9cf987, - limb2: 0xb0e66bd09350d4a + limb0: 0x95c43087e0da1b0a5a89492f, + limb1: 0x42f6a4ed3f85a0a13dc98d38, + limb2: 0x15216ecad27d2141, }, u288 { - limb0: 0xdfedfd2139dd8816db671a3b, - limb1: 0xe22adacf14e7bbe1012acd8b, - limb2: 0xf50a2993bc29dea + limb0: 0x43724d6a3d40468428284426, + limb1: 0x2385837d40bb7d62caaff4ca, + limb2: 0x450fc57225373c1, }, u288 { - limb0: 0xc48786ec60b852a82f7127a9, - limb1: 0x1814e78ed0f4fdb7a95d6455, - limb2: 0xbce2c82fdc9c13a + limb0: 0xe1df2133504f454db9564cd0, + limb1: 0x11a8243b0c249c847e922ec9, + limb2: 0x138f79826d5074c8, }, u288 { - limb0: 0x28dcb4305314246bc0d2ecc5, - limb1: 0xfc211fea54a86dfbf6c3937, - limb2: 0x141e56cd9ea49225 + limb0: 0x505fdb441b8c20f345eaf730, + limb1: 0xcd083cb69535c69de04b33a3, + limb2: 0x19ff30be4b36d2a4, }, u288 { - limb0: 0x70b7b5d0b7991b7f8318ebd6, - limb1: 0xd30fa3d4b10babcbf6b6c139, - limb2: 0xccf48106139b887 + limb0: 0xa0735cce8016fa55761c917e, + limb1: 0x1698ebae30942441fc0439a2, + limb2: 0x6d05e574bb009e2, }, u288 { - limb0: 0x88e32ab3bb93ec3a0e06246e, - limb1: 0x69c74833b36bafc32a9b9ac5, - limb2: 0x2d64f8a8d198db00 + limb0: 0x5490d6b1303a272d3bf4ef0e, + limb1: 0x1496a848ce12578c3a0b1a43, + limb2: 0x87a1fe732f919b0, }, u288 { - limb0: 0xa834222883067b01f3fdc73a, - limb1: 0xa8727c51d95dbdf71b89ce89, - limb2: 0x74364213c1d7970 + limb0: 0xb558585a8222094a11e605e3, + limb1: 0x6b0230545ea5d679935512d0, + limb2: 0x2fccb0ee7764867d, }, u288 { - limb0: 0xe86cf70ec9f32d974fe56d4a, - limb1: 0x38227976ea664003f5ea64e2, - limb2: 0x3fb3df78ac1fe4a + limb0: 0x73e9b43b161c5d04830ae655, + limb1: 0x9a99c375fcd3eba5ce1ab386, + limb2: 0x12a5b99bf60af3b4, }, u288 { - limb0: 0x313ee354fec9c097bc353400, - limb1: 0x5b98eb4401577bd654ebcea5, - limb2: 0xa0012beda7faadf + limb0: 0x6bb1f5e58836eecc979daf64, + limb1: 0x2b8bd3ecce6fa7d59a462b1, + limb2: 0xd0c972862600f4e, }, u288 { - limb0: 0x2822f727add7f087f5d86039, - limb1: 0x5cb396e9fcfdea110ac421a0, - limb2: 0x155cab466745e049 + limb0: 0x838d0378bfe5f9e33dee2969, + limb1: 0x67508c3fb6e2f86afe7f8f4c, + limb2: 0x1264c565d03f39a7, }, u288 { - limb0: 0x94b0bbcb97144aeb710aaac6, - limb1: 0xc522490386c456c0c35141f, - limb2: 0x24b1b0968cad5abc + limb0: 0x8d554272c889a7cef749a91, + limb1: 0x7506e0a1c7386af263fa2824, + limb2: 0x2f70322eb1aa6724, }, u288 { - limb0: 0xe6bb395ffa050cfb33c0d825, - limb1: 0x9c231533ace92975a53ec72a, - limb2: 0x1eb04e4d3b2ee4e9 + limb0: 0x8e12a8df98f2ce04d11fff81, + limb1: 0x8dcd30c864c0d4e84759b9a6, + limb2: 0x14056f0919101fd1, }, u288 { - limb0: 0x8628b9ad1e04e9eaa6b60da5, - limb1: 0x54a183d22c116945c97c6851, - limb2: 0x12058ac97626b8f4 + limb0: 0x33613887ddf070521b755e7a, + limb1: 0x290e22dc837c1fbdb81a28b, + limb2: 0x1aca534e8fc54be4, }, u288 { - limb0: 0x760c243ec45928bbdabdaf93, - limb1: 0xfc456c19f14a716804d4186, - limb2: 0xa88f881d0ad3ef1 + limb0: 0x2293457ea38e2d5103f1797f, + limb1: 0x6ea7064ca05531972dbd3d88, + limb2: 0x2bd314ec52f892bd, }, u288 { - limb0: 0x2efaee5cd9dabfb0be53299a, - limb1: 0x2b347dd0bb003e9a52666efe, - limb2: 0x1e385d1334668e7d + limb0: 0xad8778d732a6fa715f6d73c1, + limb1: 0x9da39634f4a73a9a481afa4c, + limb2: 0x210acb8f1115ef96, }, u288 { - limb0: 0xc352aa54bdfb248301994a81, - limb1: 0xba391514f9c37c36f2c83335, - limb2: 0x14d5b65acd288937 + limb0: 0xd70d8bc1425afc17e54d7e44, + limb1: 0x28142e61bec93e5076e65b7a, + limb2: 0x19b986bd9ad36a3b, }, u288 { - limb0: 0x401bcaa15e9376fbdac83e97, - limb1: 0x58f7c190847163917bef3104, - limb2: 0x10c14635c77f410 + limb0: 0x5a6af830ed007394c8705ca, + limb1: 0x6ebbdb388fe4db913cc8a7d5, + limb2: 0x22417e0a6498aa1f, }, u288 { - limb0: 0x4b724bedd3d38bd1c3d67a61, - limb1: 0x66ac8d826abe47a19453664c, - limb2: 0xd4d75ffb8c28a5 + limb0: 0xa2f627a38fda9eb1971f5b06, + limb1: 0x83cab7edc33670f89d052861, + limb2: 0x1e01345fb85f8f86, }, u288 { - limb0: 0xd65ffc143f20ab6b957e0ae9, - limb1: 0x64b474e6def085a629d5d160, - limb2: 0x2e277001396cb65e + limb0: 0x78ec9a4d0eb4f63bd5b51906, + limb1: 0x9c3aa350295dbdcd47c99fd7, + limb2: 0x2af9deed71e743c6, }, u288 { - limb0: 0xc2679afcdb15c2631d68a376, - limb1: 0x6f0fc35b96d17c0c3f174d22, - limb2: 0x19cc49f6e9ba217a + limb0: 0xce5a395db07dbb317712141e, + limb1: 0x8229c82a1c520ef1305bf0b0, + limb2: 0x2ec6fc0c84d8561f, }, u288 { - limb0: 0x2ed03e3d20117024f1362a31, - limb1: 0x65d273cd16661256b2e2d9ed, - limb2: 0x220a99d77f037ae7 + limb0: 0xb3da892475fd754c3e814af8, + limb1: 0xfa3172525023870e7abdf2eb, + limb2: 0x199af205fb6c4fb9, }, u288 { - limb0: 0xdfbdbeee8dcd8cf0eaf0612b, - limb1: 0xd6c41d91aa7080ecc3f9ba5e, - limb2: 0xa09fe56600f203d + limb0: 0x93797018d157d9d89e4cfc69, + limb1: 0xb57660ce9b8a033791fafdd6, + limb2: 0xa83cd64abc58e8d, }, u288 { - limb0: 0x4d1ed5882cc50afbb3e46938, - limb1: 0xe86df24f533f44bdde964f4d, - limb2: 0x2829abb6bc1e84f8 + limb0: 0xd09a9a68b3e043ea9d1083dc, + limb1: 0xf8f80f3f5557a3b7f82d2142, + limb2: 0x2d6dab6850714c2b, }, u288 { - limb0: 0xdc5de31bab6e5b2a603aed99, - limb1: 0xaa355a6c8b01b5a7f9e168be, - limb2: 0x53005cacc7448d3 + limb0: 0x602b8715abb2dd0cd1f13087, + limb1: 0xbee979897dbb42839a84481d, + limb2: 0x24bb090847a60adb, }, u288 { - limb0: 0x1467b425e9a579718652b7dd, - limb1: 0xe4ca9dab702556e8452e8dfa, - limb2: 0x26441ea86941cce2 + limb0: 0x2d95317e0022811d0e8caa2a, + limb1: 0xc9ccdb9c4134f7ae4cdfc029, + limb2: 0x114154935a8e6fed, }, u288 { - limb0: 0xe0b21b6dc7fa5883480000b1, - limb1: 0x12f7aff077497cc7e6a2297c, - limb2: 0x170e7de945472cc0 + limb0: 0xea4802fea37112889eaf82ea, + limb1: 0xf99b9eb73f019353267c7033, + limb2: 0xe190224d57875c8, }, u288 { - limb0: 0x79ad3fff1de5fd93e8318ac, - limb1: 0xa996ae475aa58332e344a9f5, - limb2: 0x3928eeb0f2bf4df + limb0: 0xed8b2f32332c42ed1015a430, + limb1: 0x3c99292fd102212a2eaa3377, + limb2: 0x1de8c37856619d45, }, u288 { - limb0: 0xd7c526e3dc0d74d867c38543, - limb1: 0x385cb009eee29ff6ee12ea00, - limb2: 0x29f3ad85ca6b753c + limb0: 0x9cbc19bbe07359799be57bb2, + limb1: 0x8075fa59fe304352f8dc86d6, + limb2: 0x230a700550a7a7da, }, u288 { - limb0: 0xdee28375a9cf1f9e3f86b401, - limb1: 0xe17c944e2ddf0a1c871ba3e9, - limb2: 0xe723cd00823c7fc + limb0: 0xe60e8293991169666e35986e, + limb1: 0x856fdea2783dd93d583d2b1f, + limb2: 0x74a230f5bb9a2af, }, u288 { - limb0: 0x264f2b45049147ef4225e92, - limb1: 0x413ea58efbd80e206336037, - limb2: 0x21caeb16205ba937 + limb0: 0xd2d2b03bf7848c69432915c5, + limb1: 0xda73108828e2e3a81d51f420, + limb2: 0x2db26fe400dc6026, }, u288 { - limb0: 0xf7f1b24f2ec0a29c02042a04, - limb1: 0x7192f41733a586ca2b37b290, - limb2: 0x292c62d923532b8d + limb0: 0x5383286b16581779f30fbf8b, + limb1: 0x4a0d38ef4f8e3b93227e120c, + limb2: 0x201138c359abd9d8, }, u288 { - limb0: 0xd3c9728c159b7ee86b6947e2, - limb1: 0xecaf2664d1c7fc227d467dad, - limb2: 0x55b7e984a697bc + limb0: 0xfc3bd3cf58d4256f2c33118b, + limb1: 0xe62e15e8995f8530f919658c, + limb2: 0x28e31a748b414f16, }, u288 { - limb0: 0x931e4a8cb3dd8d81b19ae408, - limb1: 0x7a0f64a13613443a4df87a48, - limb2: 0x21cf09f8a4646ca6 + limb0: 0xed1b65ceb62d65c4cd5df2f8, + limb1: 0x46fe3d5e71399901f2beba47, + limb2: 0x14ef0dc4b873426d, }, u288 { - limb0: 0xfabf7611b911002e875c7231, - limb1: 0x69e240482a32acfc3328540, - limb2: 0x1b92844dedcbc28 + limb0: 0xddd48f9ea765d608cabef7ba, + limb1: 0x32387619839131684e0985c8, + limb2: 0x1ac0c36598ce89a8, }, u288 { - limb0: 0xe6b54f5a4d342f01cb72e49c, - limb1: 0x6c6795962b3b59969ab373e5, - limb2: 0x12d9c1b96288a628 + limb0: 0xd1b3617fb903978ffe6fcf74, + limb1: 0x6eb831e6d69181b221221db6, + limb2: 0x2df7948110304166, }, u288 { - limb0: 0xbce16e61f6a4d3e4254eda21, - limb1: 0x1f12790e130e020e992f2b40, - limb2: 0x11f61125a5f2024d + limb0: 0x6b11415af5e579dbe286abc6, + limb1: 0xca0e59852a3203e195d004f9, + limb2: 0x2bbc55282412cda6, }, u288 { - limb0: 0x4cda2fdbdd5d7101abfab565, - limb1: 0xab51f35392b780b0b623d976, - limb2: 0x1f9177f508c99cca + limb0: 0xcec2923997eacb79308d9927, + limb1: 0xaa7e018c70667778f84cbfa2, + limb2: 0x19ce917b6b1d9d59, }, u288 { - limb0: 0x5d7e82dec028b3b2d7226c0c, - limb1: 0x5cbfeb1f842de58741fabc3f, - limb2: 0x26fa2072a8ee0aa2 + limb0: 0xea70fe5ee7e08ca71814ce9d, + limb1: 0x18292eb21bbcf0d7f93a213c, + limb2: 0x1cc8e3ecf2441d26, }, u288 { - limb0: 0xcafe7cbe4bbddc618c0ae7d7, - limb1: 0x8c74ff47c46f3cadf19adc74, - limb2: 0x2294387b9a4dcb54 + limb0: 0xe2861454b99d7cdaff9cf9ea, + limb1: 0x7d99cf63a0744359a9a81470, + limb2: 0xdbd96f26219f937, }, u288 { - limb0: 0x9207f2921145b3459701ad35, - limb1: 0x1566a74e28c1e6f6d5136b9a, - limb2: 0x97df40844636272 + limb0: 0x67bf2394e40a817be17c8208, + limb1: 0x216c5644f26279156a1300ad, + limb2: 0x531efc85d2445df, }, u288 { - limb0: 0x3b0cd4d5de37e5b165b0f3fe, - limb1: 0xd069d888b3605b989bda86a, - limb2: 0xa801c54d1c0ef9e + limb0: 0xa048439b73cc78fe8d31b8fb, + limb1: 0xdb64714c5d5f496c37153eab, + limb2: 0x5dac36cef7d6667, }, u288 { - limb0: 0xafa8d889a0d67fc97a77e42a, - limb1: 0x1dae6c5ea491d0c4f77647e5, - limb2: 0x7d5b18987453fbc + limb0: 0xa874d0fe7298d226968b5388, + limb1: 0xf6774c331abc4dd71663c6d0, + limb2: 0xe5263d5f383e1ad, }, u288 { - limb0: 0x1ac6deae77fff5f2322268ea, - limb1: 0xbded8cd4490b7688e6cefd13, - limb2: 0x1f3e5a84d1372594 + limb0: 0xc259af4edc9f9486fb76dc60, + limb1: 0xf16c0602be7228ea9dc3bbcd, + limb2: 0x27b39e037fe23d15, }, u288 { - limb0: 0x85b6cc5ea8d21d6aec8551e1, - limb1: 0xb88fe974006bc37511486bee, - limb2: 0x185598dbdeacd861 + limb0: 0x699df503829631325f216169, + limb1: 0x596e0a402a58d6641448f8e0, + limb2: 0x21492e39bf40e00b, }, u288 { - limb0: 0x684b9396e761ad00f14782a6, - limb1: 0x871f9c3fa4f200e9fdc0e61b, - limb2: 0x29f73bb8e7949c26 + limb0: 0x31b2113899ebeeba99658d78, + limb1: 0xdfc8a3e9df462829abee7ef3, + limb2: 0x3471ff4dde10dfe, }, u288 { - limb0: 0xd3c63dd39db59676239be301, - limb1: 0x573c4da95b922ffcf4bbc83e, - limb2: 0x1e67980a65112d62 + limb0: 0x7b1fc765f6a251882d2deeb9, + limb1: 0x24f54c719d0aa078c65edec8, + limb2: 0x10647685ee0c6d71, }, u288 { - limb0: 0x431de0840bb1ed29886c3314, - limb1: 0x46afa5a8e041ba1c4281b307, - limb2: 0x1d1ac7a3de1ccd8 + limb0: 0x1c6a20ca9586ac2e9b6f7ac5, + limb1: 0x50db3fb731e33d0265287fae, + limb2: 0x264c880d886cbc8d, }, u288 { - limb0: 0x7ca0feffefc9ade050f268e6, - limb1: 0x1ac1749332abf013cb27cc3a, - limb2: 0xde80f2faf221dd1 + limb0: 0xf1219f2e9ac927582389654d, + limb1: 0x22727f55d95e622f1c77513, + limb2: 0x2a86ebf343a2b2e4, }, u288 { - limb0: 0x42e787ca925351bbb33aecb3, - limb1: 0xbd6bb9c4c59915ae749c3d2a, - limb2: 0x15cca4fa4e792bf5 + limb0: 0x552996a83a91ae1343d071fa, + limb1: 0xe140b45e95f9bf24022c711f, + limb2: 0xf9411ae4508d7d3, }, u288 { - limb0: 0x49af131e32790613eea47694, - limb1: 0xd71981ad50bc4bda05a95414, - limb2: 0x1402405f5e42ec96 + limb0: 0x2fae9b47e047e0c810b0dedf, + limb1: 0xdd97a9ebfaf38c1ce8e85a6, + limb2: 0x21ba3ba5eb516295, }, u288 { - limb0: 0xf763f1e8d8b2478f8f9ba419, - limb1: 0x115e06e9af26c15580520009, - limb2: 0x48fc36274d10ed5 + limb0: 0xd07c18b20ad53cc430ff8b15, + limb1: 0x5162c41ca374a160fdbdd03f, + limb2: 0x2db092a2d8fcba6d, }, u288 { - limb0: 0x32189420558bde72c020f508, - limb1: 0x72159679cd485fdf8175b8e9, - limb2: 0xda083d6643b1485 + limb0: 0xcd0b3c61df76a2e55402afc8, + limb1: 0x509da9cfece48f8351b71c93, + limb2: 0x1c9b6a810b012b76, }, u288 { - limb0: 0xd377710439cd98af62b283fe, - limb1: 0x83b82508507d7d64e743f5dc, - limb2: 0x1b33229c01cf7ab2 + limb0: 0xfd2d3cd1f83e41431c677d8a, + limb1: 0xcfeee48fb1f292a72d4c9fec, + limb2: 0x110ff74d4b67bed2, }, u288 { - limb0: 0x6356ee70c25c4c16af1c794, - limb1: 0x388ef5736825f8eea622842e, - limb2: 0x113d09bafd8b254a + limb0: 0xa64f7f1e20823ab68c87be1f, + limb1: 0x55808918e1aa07a39ae9394f, + limb2: 0x4f5afc73557ba0b, }, u288 { - limb0: 0xee4a48f8b006b5d4a5c13ddf, - limb1: 0xf4c9b478e7b575620e554e3a, - limb2: 0x407bcea40d8bd46 + limb0: 0xdf091be395426ffbb7d12aa, + limb1: 0x2d124e1e1659f3f25f48b36e, + limb2: 0x2b86fc3991db4a31, }, u288 { - limb0: 0x9d02bef88d950db768f0666d, - limb1: 0x296f8c2bcd29cc4a2b7a86b9, - limb2: 0x1757eb9fd5d712c4 + limb0: 0x8fcb993888c820ee24fb57ac, + limb1: 0xa3efdbd920603a471283659b, + limb2: 0x25a6ba637feca4a2, }, u288 { - limb0: 0x63dce9b8e0b94b3250a3117b, - limb1: 0xb0cec1d191b12277598b88b0, - limb2: 0x51c062ba7abb139 + limb0: 0x54b4a009e69f050691589df6, + limb1: 0xfd1f372fe399d3a8ed947ce1, + limb2: 0x27327fd09f8e9d84, }, u288 { - limb0: 0xe7b9d3345b8bfdd5d29eca6f, - limb1: 0xe4d7f5a95eb0e209c0f96ace, - limb2: 0x15bc522355e4218 + limb0: 0xf0901afa5e86fdec90f505bf, + limb1: 0x4f6d56670ab475d136e9638c, + limb2: 0x1946e133ef526545, }, u288 { - limb0: 0x2f2c73818af34a6e9e8337d, - limb1: 0xa0270f9dec01724c53bd768b, - limb2: 0x38e172bcec9a0c9 + limb0: 0x61f2c22b19400bea304ea4b8, + limb1: 0x453b70d7da14f02658cdaef3, + limb2: 0x2cd17f89f13bed9d, }, u288 { - limb0: 0xca6a89ba332a610ed66edcee, - limb1: 0xb18e2bf32065090d2594b030, - limb2: 0x1480342cf67428c1 + limb0: 0x3d4ee11725e4217e7cb137d, + limb1: 0xcb17edbf7ff6efda56e16f73, + limb2: 0x17dd065eee0e5e5e, }, u288 { - limb0: 0x25ce0b6a11861e782f25bd76, - limb1: 0xbbcd2311523d78888db8ac59, - limb2: 0x784336b9ac304 + limb0: 0x852ba8ebfa0d9e8899c77bb6, + limb1: 0x75f76b6edcb51edaf397fd2, + limb2: 0x145a3932468a5f1b, }, u288 { - limb0: 0x90c32183e2f899efae81406c, - limb1: 0xad2b880cdd79039749738486, - limb2: 0x2aa16c04ee1ca374 + limb0: 0x124de13d1ee6bfdba3fe605a, + limb1: 0xd69dca692e41a61cdab660d3, + limb2: 0x1b5b302dc80dcd49, }, u288 { - limb0: 0xec573d2dd06fa89a80ca1e6a, - limb1: 0xd5025b3e39a589ae9e6b781, - limb2: 0x2915cb7fb1474f8c + limb0: 0xb61a46eb454e8712754176e5, + limb1: 0xc71c1e7d05c604f08b46329d, + limb2: 0x223ffd50d3547a, }, u288 { - limb0: 0xb13e4a8e38a4e0bfc8800b12, - limb1: 0x30278d2de906b803a1456223, - limb2: 0xbac95c17bb3755c + limb0: 0xabfba0d1153aad2b308294d4, + limb1: 0x87de741f5e31b793c6fdb5bd, + limb2: 0x249ccf46376e5727, }, u288 { - limb0: 0xfa2abb0906f7fcf7aa89ec28, - limb1: 0xaa58a83412c51e2ddc1514ad, - limb2: 0x1dc03f66683fbbb7 + limb0: 0x3b0e43855677034bbc98bd62, + limb1: 0xbcd5dd6ab2cc5a32c4624bc7, + limb2: 0x1937b315adc6bb4a, }, u288 { - limb0: 0x4179962a7d9495adc8745cd6, - limb1: 0x6cab48b22b5353a204d2bb90, - limb2: 0x1df0346728c20b17 + limb0: 0xd511c0896fad1dc8bcde5fe4, + limb1: 0x2306bca01aadebe3309a2a21, + limb2: 0x2c10a2532339c68d, }, u288 { - limb0: 0xe397bc013f8473f559d51b9c, - limb1: 0xa2fd844d24bc977399de676e, - limb2: 0x205309208cded720 + limb0: 0xf7d731d6630f74d949da2d0b, + limb1: 0x77c276c2be7207d061046d2e, + limb2: 0x2565bb16d63d6b34, }, u288 { - limb0: 0x723c3f293725de3d6c9a4fb4, - limb1: 0x1518981f228622b2e59ef45d, - limb2: 0x12b60e131c8111ac + limb0: 0x33fcdda732971f1e1421584a, + limb1: 0x3b49f75dcebae435b4c3076e, + limb2: 0x2e3bc0f1d147d469, }, u288 { - limb0: 0x7e430e5c6597422f4ab9c0f2, - limb1: 0xd3e636f92f59e1ecedf9b8f8, - limb2: 0x2e5f5baec75b1814 + limb0: 0x46d8765beb48e70c0f958dde, + limb1: 0xe1d86f3e0cb3f95a71e92b23, + limb2: 0x900ef08d1f97090, }, u288 { - limb0: 0x1db2d9c1c4e0390663df4b80, - limb1: 0x395703ab901ace278d77b5e3, - limb2: 0x145f1b0775544598 + limb0: 0x938e6b3fb97cab539cdf38c, + limb1: 0xfd189430878927cf768201be, + limb2: 0xd26ad5ea5a197a3, }, u288 { - limb0: 0x68643e3234d677df53808118, - limb1: 0x541e959d521800a817edb6bc, - limb2: 0x18dcbb45e5c0a1ac + limb0: 0x6ece43d62bd37cfc28a143f5, + limb1: 0x56108a8888a66b1fa66899a9, + limb2: 0x10a67abec59a8d3b, }, u288 { - limb0: 0xc259436227e1d8d48a166b24, - limb1: 0xd923cad534268a2eebfe5730, - limb2: 0xd1d0d40e7a6413f + limb0: 0xfc7ab5a229f39b6d8ccf03b0, + limb1: 0xc2f1def11a0a4a0e025e440d, + limb2: 0x1afc69813070b5b2, }, u288 { - limb0: 0x3e1f762056fb7bda11f91a13, - limb1: 0xa7a5cf42f632b5066ae49e41, - limb2: 0x1f479478a3fcd19b + limb0: 0xe45bd308504fb7765876b515, + limb1: 0xa8c794ead540ff7b5b4e7c74, + limb2: 0x55fc6d1e71dcee6, }, u288 { - limb0: 0xb39227c3065af023ae36d77b, - limb1: 0x22722fc804bff3bcd562ca69, - limb2: 0x432558cc6f29a9b + limb0: 0xc9cc218b6aa9d3abfd2aee18, + limb1: 0x314d3ac636b58452eb3d3955, + limb2: 0x2cbefb47fc677ebf, }, u288 { - limb0: 0xeac99ae55786b67f933f53af, - limb1: 0x1b79a6e34f5eee99fc5f90a7, - limb2: 0x3a0529a5200c8c2 + limb0: 0xf5d55e4c914018444516add3, + limb1: 0x8da17baa2cef2b8d69ef35dc, + limb2: 0x2027e1885e1e1fab, }, u288 { - limb0: 0x46dfea337eab93707bba0641, - limb1: 0x328e7a01f67bfecfab7eae3e, - limb2: 0x29f05e8b11f778a6 + limb0: 0x5289273fb918de920609d86e, + limb1: 0xeca0af34d7cf515280cba87c, + limb2: 0xe89b5216fd72047, }, u288 { - limb0: 0xa4c706d533ec304750d0fa15, - limb1: 0xb755d51577c5bd78f02cbef4, - limb2: 0x1be0559a906fcc10 + limb0: 0xfde7779b8e3b67e11bb53dd7, + limb1: 0x73f64b12512df320c547f23c, + limb2: 0x169bde5c24f2d57d, }, u288 { - limb0: 0xf612e48f1963041fabcf44e, - limb1: 0xe21ae849da9ca904f9fcc238, - limb2: 0x15ff923f60db029c + limb0: 0x249c1237a08f6e7558abc19, + limb1: 0x1dd7f33c366618c3adb78a5c, + limb2: 0x1cb88d9a21b31292, }, u288 { - limb0: 0x6dbeb88e16b3e01f48149780, - limb1: 0xb41bdb5e6aa33bac8a4bd1f8, - limb2: 0x155aad935404f3a0 + limb0: 0xe4304565dfc1d51ca226b87c, + limb1: 0xffcb43503801ef953c609d29, + limb2: 0x1e038bda1a9f4d24, }, u288 { - limb0: 0xae7e78109b800b634abc4869, - limb1: 0x83b3337ff65e0719c1ec726f, - limb2: 0x13b8bf27226a505b + limb0: 0xee565ea7941e5e6df000481f, + limb1: 0x6ea99418641eb43b5b008418, + limb2: 0x71720368223892, }, u288 { - limb0: 0xb216ce09ace3d28a9a7a5203, - limb1: 0x5c538482b518253e544de427, - limb2: 0x1592d0b18c1c7d6b + limb0: 0xd010d071dd3c5ce666ae9fb2, + limb1: 0x85963729739c81e847897a55, + limb2: 0x135baaf6e3805b61, }, u288 { - limb0: 0xc6d08d98dd632d2944fc1b8f, - limb1: 0x82329e3267dda3f8b2294e84, - limb2: 0x23b316fad7736ddf + limb0: 0x771f4a9012033f119d27698f, + limb1: 0xb6bace21c1f42d3ffd24c2, + limb2: 0xcf45890ca42576f, }, u288 { - limb0: 0x555bf08876f63efd9c9c9181, - limb1: 0xec44cdd238b7c6a510782783, - limb2: 0x1fab70ce66653fe5 + limb0: 0x2819cf07dd882be86c93bc8e, + limb1: 0x5c83baed4a5cd2629ee99cf1, + limb2: 0xbb2795a0257e22c, }, u288 { - limb0: 0x46f1222fa2ee335488238b3e, - limb1: 0xdc69265772d9d97d0afb32db, - limb2: 0x1a3260210cbb5b7b + limb0: 0x2097738d7e1bd7ee65345e0b, + limb1: 0x29cef261a882c565c7741544, + limb2: 0x2762df464e177a39, }, u288 { - limb0: 0x7fdc89bd866a84c853980f31, - limb1: 0x17de73c48a314b970362024f, - limb2: 0x15df0f0461f759ba + limb0: 0x525783e33aeb40d8e7e53b58, + limb1: 0xaa0250e6c73fec107722f26e, + limb2: 0x2e6930604af3b7d9, }, u288 { - limb0: 0x1ab08de775a8ad5697635e2f, - limb1: 0xdedddc61747a3257c0d10e32, - limb2: 0xa7518d34aa5df4e + limb0: 0xb2309504aa37eac73f0fb357, + limb1: 0x399584c0b9850f6700a74bbb, + limb2: 0x1281e29c71d104d3, }, u288 { - limb0: 0xcfb096e8f1322e299c4485d3, - limb1: 0x71b277fdfe8bafda29b54e28, - limb2: 0x2b0a65636ef9085d + limb0: 0x4938b5652920c6e87658ad6f, + limb1: 0xd444784fa22286b85aef18fa, + limb2: 0x25f32ab2f697ac3b, }, u288 { - limb0: 0xc3a47c8ca6ac31d30a3dcaa9, - limb1: 0x72edf69c74613b6a644c1b45, - limb2: 0x1e72a36d98bd9dec + limb0: 0x9feef67991630d2600580f80, + limb1: 0x974573718962e054c4daceec, + limb2: 0x4f4ce28bd1234c0, }, u288 { - limb0: 0x74444ad9bdc81033c4456ef, - limb1: 0x5babc8f2fa6d4c733d428406, - limb2: 0x135c52d7237365ac + limb0: 0xd17e754d2ea7a1817bea5d7b, + limb1: 0xc1522111f76a91a481a14410, + limb2: 0x2d7051a88f96b16b, }, u288 { - limb0: 0xc3ffa391a4862b3ecfbb13a4, - limb1: 0x71ed173df02172ec206a465a, - limb2: 0x251bcb8f882ccd1e + limb0: 0x234e6d73d2caf93d2b1911a1, + limb1: 0x13c99439693b2724ba1dc346, + limb2: 0x954de8da4c78abe, }, u288 { - limb0: 0x5e1ce878fce48f9c66453e82, - limb1: 0x64be2d114c9f269741dbdd50, - limb2: 0x2cf712b69704143d + limb0: 0xb9d191d7e3e04a54cdb71c8c, + limb1: 0x88c0c0105e8f37717ba7666f, + limb2: 0x1eb13eee87051211, }, u288 { - limb0: 0xdfebdd641d96c75e03ae4e2a, - limb1: 0x31baa4928c67c26f8256f171, - limb2: 0x192757e0492c30c + limb0: 0x659b3ecedfe553d1a1b82d59, + limb1: 0x4f6fdccf43ebb02d1e9f44dd, + limb2: 0x23dd6471f597cf55, }, u288 { - limb0: 0xfbb4672fa1f2fd5f52d4de6e, - limb1: 0x46a23681e8e693095924c96d, - limb2: 0x10b8341398b71619 + limb0: 0xcb455e0d971280fae89be065, + limb1: 0x639205b040f16108f89aabe1, + limb2: 0x28c67bd181ad616d, }, u288 { - limb0: 0xecf6b4520f1705d588140cc2, - limb1: 0x5637642824554e72dce00d0f, - limb2: 0x2eb4ad3dcf23a177 + limb0: 0xdcab44b264fd6eb14a838189, + limb1: 0x815d2aafabb6a730e1ad469c, + limb2: 0x1c7291e4ce311cd5, }, u288 { - limb0: 0x49cb1897e94f5d495d972984, - limb1: 0xb0c0520e1812a3ad245cf3b0, - limb2: 0x2ad0d683080f25c8 + limb0: 0xb01c05d0ef1a9a0830de40dc, + limb1: 0x2ae5a3474295b16e9ca87789, + limb2: 0x227af7f14b217d16, }, u288 { - limb0: 0x7f434695a67c22e934d2247e, - limb1: 0xa04af6af9e48642315283e5d, - limb2: 0xd6eb321fbffde4b + limb0: 0x2ae134056b011455d5f75df4, + limb1: 0xf91f5932530cee7aef9bc302, + limb2: 0x11d547126bf99fc, }, u288 { - limb0: 0x595b0beadf77f994593370ea, - limb1: 0x54fa1179d9a09a0dd4e2235c, - limb2: 0x3017b81089129260 + limb0: 0x521185a16aa56ed63aa490d2, + limb1: 0xee1dea7f009620a691021fd6, + limb2: 0x186b8925db964e67, }, u288 { - limb0: 0xfeb8dc59c0f038f5f2fead84, - limb1: 0x13e77cf742234393ecd235f5, - limb2: 0xd1e3dc6c488acb2 + limb0: 0x85f5786e73f7746fba6aff31, + limb1: 0xfaf42da6b0529201f7954cbb, + limb2: 0x2318b51d76069a4a, }, u288 { - limb0: 0x34423ed76efd92b512afb8dc, - limb1: 0xa92d19de544bd4d458bc03e, - limb2: 0x2f8831a84feca089 + limb0: 0x2952819907a2369bd08ca3f8, + limb1: 0x3549c71e2b49d31221e6e267, + limb2: 0x22b077d040ba5cb8, }, u288 { - limb0: 0xb1c5bedae382ae4f855e66b, - limb1: 0xd2797c9918417a12b2e55115, - limb2: 0x29b07086b04bddd + limb0: 0x29b925316591ba4bae0d1d6f, + limb1: 0xd9cfa9e66d3cc286d0735fa9, + limb2: 0x9b08d76813e83c5, }, u288 { - limb0: 0x53435e70d100538df84fc156, - limb1: 0x896ce16ad69bb4c61b11688c, - limb2: 0xf94cc4b507f4c41 + limb0: 0xec318e32a5a4aba0985b3d3, + limb1: 0x43f89e6f4495abb85363e0d4, + limb2: 0x134491946182b5f7, }, u288 { - limb0: 0x1ec573cf73e423ba2923e9c3, - limb1: 0xb62e2a855947898bb10696fe, - limb2: 0x2daec6a287fc9dd1 + limb0: 0xb0f83ebd0e35745dd0af37aa, + limb1: 0x52f378d435cd641ee1ca1c8b, + limb2: 0x24172f993aefe41d, }, u288 { - limb0: 0x7948807200ac8abae519b81b, - limb1: 0x4b101498741ee3951e3c4a61, - limb2: 0x246b38619bc5e31b + limb0: 0x327becc00cea7dcc3f134943, + limb1: 0xb714acc62745dd4a70eabbee, + limb2: 0x1db49dae821eb1dd, }, u288 { - limb0: 0x9f48d74501ed9e3be75e207c, - limb1: 0xf4b853911340f61199485f29, - limb2: 0xc7a8d6a3ae84344 + limb0: 0x71fe41b7e78225173978dbb0, + limb1: 0x14d8f88e4a699b01574593d2, + limb2: 0x14d3d7cd9b00396e, }, u288 { - limb0: 0x9a253935efd3c0e57fa38a01, - limb1: 0x9c9e2ff7f32f4959a7c1c1d7, - limb2: 0x111e2cc3705e0c57 + limb0: 0x23f5363c93de0abbd3ec6d85, + limb1: 0xf51a978501996ed9d5dd0fe, + limb2: 0x17c453f280196c98, }, u288 { - limb0: 0xa0fc4329e6a235b2f28bd99c, - limb1: 0xc17ce85cb262aa8d601ddd42, - limb2: 0x1eec8ce499cb960d + limb0: 0xd1fbfa54cab1935cb7b3204a, + limb1: 0xc09390fa0a93bc82b04a6be1, + limb2: 0x2118408740401de2, }, u288 { - limb0: 0x9b4b0fd1e13c8e72ef18c072, - limb1: 0x1f0c20dd816bd32ab5f7bc42, - limb2: 0x3b847ff1ae1297a + limb0: 0x28e7ceb728137ad457c4aacb, + limb1: 0xf45ca3296b71f4d0f6ce070f, + limb2: 0x208f1f78c553fb36, }, u288 { - limb0: 0xce6c77a1489613b32ec5918b, - limb1: 0xea76e119f3afbe0f72fa0d5f, - limb2: 0x2bb6dc80f13564cc - } + limb0: 0xd24b152a93a95f5093713260, + limb1: 0x62b3e8efe59f697ee1e1a91e, + limb2: 0x895c178aef4381a, + }, + u288 { + limb0: 0xd892c87db5ab1f8f963b9f7a, + limb1: 0x59b223328ccae9ca9b9762b3, + limb2: 0x19fced5d71579472, + }, + u288 { + limb0: 0x1bccabfc24ac2e484975e309, + limb1: 0xde9475e7bba2da33931a9e5c, + limb2: 0xc5005df4b75a4d, + }, + u288 { + limb0: 0xe7b5be5f1ddc889332dcb4c1, + limb1: 0xbe240b0dfda16db677654749, + limb2: 0x1866c81941552666, + }, + u288 { + limb0: 0xcd9dc5eea2c96cdd7f53d909, + limb1: 0x508fdb2cf64895fa86d77c02, + limb2: 0x2c7225fe60f7d703, + }, + u288 { + limb0: 0x252901c9010ee08480c51916, + limb1: 0x5b8a72877b687b0fc0d7eff4, + limb2: 0x1ce53add01ea1d1d, + }, + u288 { + limb0: 0x8c7189ae75d1178b5813df92, + limb1: 0x290cb78eb32e275bf7bd9cbd, + limb2: 0x242258d24e270276, + }, + u288 { + limb0: 0xc2aab8c41ec5c07e0c979390, + limb1: 0x56c14d14cbbce7c240b49a11, + limb2: 0x2f1726b0151a781c, + }, + u288 { + limb0: 0x166e67bd81c6578aa085e351, + limb1: 0xcfa67306a266a2796c95026e, + limb2: 0xfe931c858170869, + }, + u288 { + limb0: 0xad9ee747d992471d807bda59, + limb1: 0xbd207508a39c034ae37bda8e, + limb2: 0x12fe9c921cb4510a, + }, ], }; let small_Q = E12DMulQuotient { w0: u288 { limb0: 0xe473ccf730ef78aaed68b4a3, limb1: 0x973b5d4ba021cb6dc0e9341b, - limb2: 0x2fbb7518e31c5bfe + limb2: 0x2fbb7518e31c5bfe, }, w1: u288 { limb0: 0x794f4331e074a23b7ae81f13, limb1: 0xc830c9ec04e2cac09080f702, - limb2: 0x118c891b7840595c + limb2: 0x118c891b7840595c, }, w2: u288 { limb0: 0x386a152366fd40c5c7fa2e65, limb1: 0x41dd378fe64e2f436db6b961, - limb2: 0x1bbf3e3062fbf406 + limb2: 0x1bbf3e3062fbf406, }, w3: u288 { limb0: 0xf6aa12afbe7d19ec3a31e001, limb1: 0xb4179ff03296d1cf253d6763, - limb2: 0x2244d60373db1796 + limb2: 0x2244d60373db1796, }, w4: u288 { limb0: 0x21074e7bbe81fa91624edad5, limb1: 0x6e0223e579579bea589a55fd, - limb2: 0x13dd8935391ddf7c + limb2: 0x13dd8935391ddf7c, }, w5: u288 { limb0: 0x68f0660c8ea848f279bcc415, limb1: 0x958d1f4ff92af6abe44098db, - limb2: 0x11b65045d37b9ab1 + limb2: 0x11b65045d37b9ab1, }, w6: u288 { limb0: 0xa89a777f14567f39241ce533, limb1: 0xf7d9e0c67ac9cedc55bbedcf, - limb2: 0x2238d7db55a99ed8 + limb2: 0x2238d7db55a99ed8, }, w7: u288 { limb0: 0x147370f088c042fffb206072, limb1: 0xbfd868f166167759912b0210, - limb2: 0x5fa8b7b0cda5beb + limb2: 0x5fa8b7b0cda5beb, }, w8: u288 { limb0: 0x3742653fa4660da21ce89a96, limb1: 0x7c9943c94b69e03938e8d33f, - limb2: 0x2dc365febcad4667 + limb2: 0x2dc365febcad4667, }, w9: u288 { limb0: 0x7d4aabcbc177046adb0204b5, limb1: 0xf504f1195380bd5e0eeb0bd2, - limb2: 0x3036b8d7dbb58275 + limb2: 0x3036b8d7dbb58275, }, w10: u288 { limb0: 0x447b80334b0768ce46df7f30, limb1: 0xbce5689479bacb588c249d32, - limb2: 0x231f7de5c5cbc37 - } + limb2: 0x231f7de5c5cbc37, + }, }; let res = multi_pairing_check_bn254_3P_2F_with_extra_miller_loop_result( - pair0, pair1, pair2, precomputed_miller_loop_result, lines, hint, small_Q + pair0, pair1, pair2, precomputed_miller_loop_result, lines, hint, small_Q, ); assert!(res); } @@ -15797,41 +14359,41 @@ mod pairing_tests { limb0: 0xfe174bb39be8658ef83c8c2d, limb1: 0xdb24ddec0e0c3b63d82efa81, limb2: 0xe360a80121d5ef96fd687003, - limb3: 0x59d2a79bda5f8a941d4db9 + limb3: 0x59d2a79bda5f8a941d4db9, }, y: u384 { limb0: 0x7f68344f543e52fe891285a9, limb1: 0x6f6992be16bc35f88c471acf, limb2: 0xcebb5ee96e40a033f5d3b798, - limb3: 0x2df47e8cdf189985d5085bd - } + limb3: 0x2df47e8cdf189985d5085bd, + }, }, q: G2Point { x0: u384 { limb0: 0xa805bbefd48056c8c121bdb8, limb1: 0xb4510b647ae3d1770bac0326, limb2: 0x2dc51051c6e47ad4fa403b02, - limb3: 0x24aa2b2f08f0a9126080527 + limb3: 0x24aa2b2f08f0a9126080527, }, x1: u384 { limb0: 0x13945d57e5ac7d055d042b7e, limb1: 0xb5da61bbdc7f5049334cf112, limb2: 0x88274f65596bd0d09920b61a, - limb3: 0x13e02b6052719f607dacd3a0 + limb3: 0x13e02b6052719f607dacd3a0, }, y0: u384 { limb0: 0x3baca289e193548608b82801, limb1: 0x6d429a695160d12c923ac9cc, limb2: 0xda2e351aadfd9baa8cbdd3a7, - limb3: 0xce5d527727d6e118cc9cdc6 + limb3: 0xce5d527727d6e118cc9cdc6, }, y1: u384 { limb0: 0x5cec1da1aaa9075ff05f79be, limb1: 0x267492ab572e99ab3f370d27, limb2: 0x2bc28b99cb3e287e85a763af, - limb3: 0x606c4a02ea734cc32acd2b0 - } - } + limb3: 0x606c4a02ea734cc32acd2b0, + }, + }, }; let pair1: G1G2Pair = G1G2Pair { p: G1Point { @@ -15839,41 +14401,41 @@ mod pairing_tests { limb0: 0xde4f62a6588c9401ffefbd3, limb1: 0x9bb5f797ac6d3395b71420b5, limb2: 0xdc39e973aaf31de52219df08, - limb3: 0x105dcc4dce3960447d21d3c1 + limb3: 0x105dcc4dce3960447d21d3c1, }, y: u384 { limb0: 0xaefd0d854043fd325dd3c34f, limb1: 0x9b63c98d9a7845c52e1e2b0f, limb2: 0x9db0be660d847ccc58358f3f, - limb3: 0x17cb6c41f0c4e1a7394ab62a - } + limb3: 0x17cb6c41f0c4e1a7394ab62a, + }, }, q: G2Point { x0: u384 { limb0: 0x3b3d3c305a70960906e6cb09, limb1: 0x40e5bf3ff02d81e98b75703a, limb2: 0x665a5fc010510bd690ddd7b5, - limb3: 0x82dc9154807866eb0f36ccb + limb3: 0x82dc9154807866eb0f36ccb, }, x1: u384 { limb0: 0xe6709deb0dcf81d4285e5e60, limb1: 0xb4dcf956002c4efb974ffcee, limb2: 0x4a6ceebe6375a83dd242851b, - limb3: 0xdd18d077ad5bd58dabb18d8 + limb3: 0xdd18d077ad5bd58dabb18d8, }, y0: u384 { limb0: 0x61535fe1a90bae7e6692f9b0, limb1: 0xc91aa58105d3a281b2e84ddb, limb2: 0x197d3446652372ce5ef50e93, - limb3: 0x4a468eb9e206b9833d8e8e2 + limb3: 0x4a468eb9e206b9833d8e8e2, }, y1: u384 { limb0: 0x27115c334e82ed4be8da6c10, limb1: 0x194fa3bf769a2e5a52535277, limb2: 0x8be8992de81f47ae3341c590, - limb3: 0x198fd0ab6249082bf7007d7e - } - } + limb3: 0x198fd0ab6249082bf7007d7e, + }, + }, }; let lines = array![ G2Line { @@ -15881,3536 +14443,3536 @@ mod pairing_tests { limb0: 0x36701a5831c9fb39250e2ea9, limb1: 0x26ad0ec05ad6440f1df034cf, limb2: 0x67cd27cf7598a85f81c23cd9, - limb3: 0x15a76ee3d8d1c3451005d560 + limb3: 0x15a76ee3d8d1c3451005d560, }, r0a1: u384 { limb0: 0x9009367bbf6e6aa19488df66, limb1: 0xce5cd2ccda4704dc0e4b92b6, limb2: 0xd7656829a6a71c42deb7dd, - limb3: 0x16d96e785c797fb5d6afcb14 + limb3: 0x16d96e785c797fb5d6afcb14, }, r1a0: u384 { limb0: 0x9d68b0bdf431a2f53189c109, limb1: 0x70e39167384e44fdaf716fa4, limb2: 0x3768099390a3f9d581d88280, - limb3: 0x4c208bdb300097927393e96 + limb3: 0x4c208bdb300097927393e96, }, r1a1: u384 { limb0: 0x68ab4b88cf058f147ba2cda9, limb1: 0xce3b4d4da03cbdac75933b54, limb2: 0x1be2f7e6eaa0f1474cb64c53, - limb3: 0x546ca700477f9c2f9def969 - } + limb3: 0x546ca700477f9c2f9def969, + }, }, G2Line { r0a0: u384 { limb0: 0x96e0f84058018a4538d64e8b, limb1: 0xdb7b84172cb1e68ddd09eb12, limb2: 0xcf3aaa45c2b370e810ea9361, - limb3: 0x14b92565b748c30f253912c6 + limb3: 0x14b92565b748c30f253912c6, }, r0a1: u384 { limb0: 0x9cdcddf4728a38086aebcd7, limb1: 0x7b8d9115b96656327dd79780, limb2: 0xbf914addbdcbe307142bf7cc, - limb3: 0x3c50d0829bdc305ff694cc9 + limb3: 0x3c50d0829bdc305ff694cc9, }, r1a0: u384 { limb0: 0xcc0dbe864e35231bdec2ef76, limb1: 0x4efa339ef551d8f751da95ba, limb2: 0xfde5910a13d5c428549ed3f5, - limb3: 0x105e4803f5b8472a138e00b + limb3: 0x105e4803f5b8472a138e00b, }, r1a1: u384 { limb0: 0x584879d210eb30bfd6518cf2, limb1: 0xa7c4af01b40d0e68243b050c, limb2: 0xade596dd94a41e4aedec2196, - limb3: 0x162a46f819eba8e3b9d215f9 - } + limb3: 0x162a46f819eba8e3b9d215f9, + }, }, G2Line { r0a0: u384 { limb0: 0x3717dfec242e39e2ff1f466e, limb1: 0x2e1a47c8b52d2a155331b3bf, limb2: 0xb9705c11a0dc1b7a21290360, - limb3: 0x186349066cd6c743642100bc + limb3: 0x186349066cd6c743642100bc, }, r0a1: u384 { limb0: 0xc653dbae90aec138bdc66689, limb1: 0x84a0e18292766501cc981050, limb2: 0xcb8cbe9f0dad8baba490c814, - limb3: 0x49af016994f800024ad3138 + limb3: 0x49af016994f800024ad3138, }, r1a0: u384 { limb0: 0xaae746564160600e87f79910, limb1: 0x9b0e53f36f1c737506ce80ce, limb2: 0xc88af441fe63a2b5746950e6, - limb3: 0x9e6e8335a28c0593fb7797f + limb3: 0x9e6e8335a28c0593fb7797f, }, r1a1: u384 { limb0: 0x3353ff16d642750e655d9250, limb1: 0x1c83cf0f79a4997f9f673aab, limb2: 0x5ec8ef641f38e8160f0fafc8, - limb3: 0xd6e97ce3437dbe7066bb16c - } + limb3: 0xd6e97ce3437dbe7066bb16c, + }, }, G2Line { r0a0: u384 { limb0: 0xebdfba548549869254397482, limb1: 0x59fe075d9bedf0d74abf57be, limb2: 0xabab1d37873d3366c37fca47, - limb3: 0x1538a52f8fae05fcab86cb76 + limb3: 0x1538a52f8fae05fcab86cb76, }, r0a1: u384 { limb0: 0x1d682b553c5f64f0dade7dbc, limb1: 0x3ab75e8798604af41cea2a02, limb2: 0xe905b5289633293089e66f7d, - limb3: 0x1952802636ce6e28657b087 + limb3: 0x1952802636ce6e28657b087, }, r1a0: u384 { limb0: 0x4634dee1af84530ccf6b310e, limb1: 0x2648d262401e3b709787473a, limb2: 0x17a30eb731c1037d19aa1fdd, - limb3: 0x2d6c23a0ffe044c163492a7 + limb3: 0x2d6c23a0ffe044c163492a7, }, r1a1: u384 { limb0: 0x9c68a627823ca443a9e945b, limb1: 0xb3c2ff91b20c36d112c61699, limb2: 0xc263985d3095da2f3db9773e, - limb3: 0xa1e844c3f1cb15b6b809857 - } + limb3: 0xa1e844c3f1cb15b6b809857, + }, }, G2Line { r0a0: u384 { limb0: 0x6a72f085ee4e78bd4c2aef8e, limb1: 0xdec05cffe4a869aed2a64ee8, limb2: 0xd41aa908b1a833b94e768d2, - limb3: 0x56ceab5d5d994dee0ca07fc + limb3: 0x56ceab5d5d994dee0ca07fc, }, r0a1: u384 { limb0: 0xd23aad6cd3e84e398a4e7bc8, limb1: 0xb343a6878db6ec20bcac1275, limb2: 0x3111e14b674a67295a242cf3, - limb3: 0x39b596a976f556e5ea4016a + limb3: 0x39b596a976f556e5ea4016a, }, r1a0: u384 { limb0: 0x19fcdcac7feb1f0edbefdbf8, limb1: 0x71bc60f1a68459eb52df6a92, limb2: 0x2827dbba9d5d8516fb557dfb, - limb3: 0x4786cc02b147d13e701c1f5 + limb3: 0x4786cc02b147d13e701c1f5, }, r1a1: u384 { limb0: 0xcb7555c0db86510eb99cfadd, limb1: 0x43387d10f8329296e43e6610, limb2: 0xbf6789475132950c583823a, - limb3: 0x145f508c63c10d270e027b2b - } + limb3: 0x145f508c63c10d270e027b2b, + }, }, G2Line { r0a0: u384 { limb0: 0x61e12a1921e9e0192225eb47, limb1: 0xe7959ccf3ab7897b63eaea0a, limb2: 0x44172872757e4112552dfda0, - limb3: 0x140a9f8fd2d77ee9ce9eda9e + limb3: 0x140a9f8fd2d77ee9ce9eda9e, }, r0a1: u384 { limb0: 0xc4bd827c5fcc80aeefab436d, limb1: 0xed5133aed1007276d5defd61, limb2: 0xeae0d97e880c76210872600, - limb3: 0x12f12f5d73e707622f58355 + limb3: 0x12f12f5d73e707622f58355, }, r1a0: u384 { limb0: 0x641d998236970e3d020b53af, limb1: 0xe7cbadbae704bf8e96b8a6b4, limb2: 0x2b9f4df44bf2e79afe0c94f2, - limb3: 0x955b0249e73e276cc78deb7 + limb3: 0x955b0249e73e276cc78deb7, }, r1a1: u384 { limb0: 0xd8ed50e5cdfbf761b34675d9, limb1: 0xd1070d143ecc709daf022bbd, limb2: 0x5df7054bb133a14672778550, - limb3: 0x17b953a66b43816b30bac24 - } + limb3: 0x17b953a66b43816b30bac24, + }, }, G2Line { r0a0: u384 { limb0: 0x7bd212f8f60967471e995a8e, limb1: 0xec76fa31d0fd358f36ee756e, limb2: 0xa63e06c40964532a724817c3, - limb3: 0xd860767952ed2b694b64eea + limb3: 0xd860767952ed2b694b64eea, }, r0a1: u384 { limb0: 0xd18f8b1de21e64c50d3c6fc2, limb1: 0x456cec057d45521c48d0b547, limb2: 0x23fb8276293fac77c9a38c1b, - limb3: 0x1469d7cf50d58855fa523aa8 + limb3: 0x1469d7cf50d58855fa523aa8, }, r1a0: u384 { limb0: 0x52f1d22ea6bfc23435bf7e3b, limb1: 0x3e2d5122467bf39f2573a57b, limb2: 0x378db9e77f53b5b1e38981da, - limb3: 0x1015deb442db265529d8948 + limb3: 0x1015deb442db265529d8948, }, r1a1: u384 { limb0: 0x73c44618fb7917b2596bd460, limb1: 0x598ee13313073cf3232e1b37, limb2: 0xbd63e58ae4aa477bcd459ef2, - limb3: 0x272bfde06aa8302ab8c70d6 - } + limb3: 0x272bfde06aa8302ab8c70d6, + }, }, G2Line { r0a0: u384 { limb0: 0x84d7880d9c5ad98d07f1b961, limb1: 0xd5be4b6e58ad745353113073, limb2: 0x592ecc7534e44983a06d755c, - limb3: 0x15d60a0d6d8a2e4543194737 + limb3: 0x15d60a0d6d8a2e4543194737, }, r0a1: u384 { limb0: 0x9ba63990e4f1ea4875173006, limb1: 0xf84fa98d5f3742b3c571f427, limb2: 0xdd28189a4a2e3a70f78a170e, - limb3: 0x1ad5bc82425c66f655a75db + limb3: 0x1ad5bc82425c66f655a75db, }, r1a0: u384 { limb0: 0x49306522c22ca321950bf155, limb1: 0x369a747f27aa6472ebc5d290, limb2: 0x20d8977cbe5acf112574c70a, - limb3: 0xcdc103da1aac9ec5f855b64 + limb3: 0xcdc103da1aac9ec5f855b64, }, r1a1: u384 { limb0: 0x74517cbd651af3940075c057, limb1: 0x94d3802d81c93d69eb13518b, limb2: 0x76411c393dd03e5381661629, - limb3: 0x16e57b05faef24ef64868a07 - } + limb3: 0x16e57b05faef24ef64868a07, + }, }, G2Line { r0a0: u384 { limb0: 0xaa72fbca0fc809a3c04cfe63, limb1: 0xb197b948b9fb7b1d17db7811, limb2: 0x912c914d3a6ff39a540a4f3d, - limb3: 0x16cacbdaa9c89addb1ab2cbe + limb3: 0x16cacbdaa9c89addb1ab2cbe, }, r0a1: u384 { limb0: 0xbc48a5607d4379fef56b2969, limb1: 0xc1f23a19f0081d7a3e19795d, limb2: 0xd3b68107f121763ac21a3013, - limb3: 0x105753740850ad267b13b914 + limb3: 0x105753740850ad267b13b914, }, r1a0: u384 { limb0: 0x9922c12ecdd8f9f562a9ffbf, limb1: 0xd3ddfb6bca4e7fcf1de87fe4, limb2: 0x43cafb5ca79d345cd7fb414f, - limb3: 0xcf76a75d055e5103c1f3bb4 + limb3: 0xcf76a75d055e5103c1f3bb4, }, r1a1: u384 { limb0: 0xfe0eed2060bf837fabeb633c, limb1: 0x7647ff2029a177beb2026c82, limb2: 0x6c89e5be509cdaa5d0724f48, - limb3: 0x18e2495d0e738bcb51e26445 - } + limb3: 0x18e2495d0e738bcb51e26445, + }, }, G2Line { r0a0: u384 { limb0: 0xaf7eb92e30bb53c95dbc4140, limb1: 0x9792c2287a214b5e4a26edb0, limb2: 0x9e2e1f53797f04ffeabc4a20, - limb3: 0x11ffc63e88b938e0364be5e7 + limb3: 0x11ffc63e88b938e0364be5e7, }, r0a1: u384 { limb0: 0x23f6838c52c8c103f492d019, limb1: 0xc28ff9b5147ad2c6e80ba89, limb2: 0x54862dd590b2cefb84f4884e, - limb3: 0x137f181e7bc2d6e0858337e0 + limb3: 0x137f181e7bc2d6e0858337e0, }, r1a0: u384 { limb0: 0xf25f4290fc34cdb084e88912, limb1: 0xb45c1d0b4bb37399c6f2f06f, limb2: 0x1c520b9c1f9a27c6dc5ce1f2, - limb3: 0x8f5b2f168533ac53479939d + limb3: 0x8f5b2f168533ac53479939d, }, r1a1: u384 { limb0: 0x90f6fed4ce70be068a771f84, limb1: 0x6c083f0007d7b530d7bb7762, limb2: 0x621955ba256f0878ab3f71cf, - limb3: 0x147b25e183343ffa8070b1c0 - } + limb3: 0x147b25e183343ffa8070b1c0, + }, }, G2Line { r0a0: u384 { limb0: 0xb5abe92a46d0ff04a4205803, limb1: 0xdb760c98b7aad959e5dfc28d, limb2: 0xbea9b6e4adf41fa1060713ee, - limb3: 0x75707a467e7543c28370330 + limb3: 0x75707a467e7543c28370330, }, r0a1: u384 { limb0: 0x8b0715d2f6a16be8d5828197, limb1: 0x598a8a6da7ed2bcc091f594d, limb2: 0x18cfc9c1ee8960c06ff2c240, - limb3: 0x14061839f139644bb20e8647 + limb3: 0x14061839f139644bb20e8647, }, r1a0: u384 { limb0: 0xd529f0561fff46258f565dec, limb1: 0x80402f61ae7ce96272aff23b, limb2: 0x883367465c3a4bde2507377a, - limb3: 0x14fc234296369891318c6245 + limb3: 0x14fc234296369891318c6245, }, r1a1: u384 { limb0: 0x9fdc0242b4d20c44b72c8d49, limb1: 0x37e047238dd417acab9ea0c2, limb2: 0xc424c8845919fe27ac23e9, - limb3: 0x151e87d65d95c3b1cc9b1de6 - } + limb3: 0x151e87d65d95c3b1cc9b1de6, + }, }, G2Line { r0a0: u384 { limb0: 0x6d3e75c7266836a5f88da38f, limb1: 0x9f0dcd126bc3eb7a57863065, limb2: 0x2dd839b48eaaf3738b6378c3, - limb3: 0xaaa2a6bcd21b87d1c17c1d7 + limb3: 0xaaa2a6bcd21b87d1c17c1d7, }, r0a1: u384 { limb0: 0xd751d74691ccfbf8a2e44893, limb1: 0x39dc71f7d866971a5b34a793, limb2: 0x61f4c7b07c463740fdfa24ca, - limb3: 0x7aaec7413e01006276f927b + limb3: 0x7aaec7413e01006276f927b, }, r1a0: u384 { limb0: 0xc02a7ffd3ac8b07a8351a74, limb1: 0x3e5cf07a7c56c9a5eb07e2e4, limb2: 0x3e8a62aa55827a8825e3a32b, - limb3: 0x17607fbb8f27884431eb0d0e + limb3: 0x17607fbb8f27884431eb0d0e, }, r1a1: u384 { limb0: 0x67fe51eac141e68a4dc9a759, limb1: 0xa4ffe5ceccd1cdfd737bd38, limb2: 0x3efc4588564baa38aef1502e, - limb3: 0x19a6b0517bf3ba0a12058062 - } + limb3: 0x19a6b0517bf3ba0a12058062, + }, }, G2Line { r0a0: u384 { limb0: 0x9bd8fa7a943e0e3a924e7492, limb1: 0xad948685eedfe9d3ac7315ff, limb2: 0x8148910d6004895792caa88d, - limb3: 0x1deabfaeb3374b50119ecb9 + limb3: 0x1deabfaeb3374b50119ecb9, }, r0a1: u384 { limb0: 0xfedf28954ae85d6e9f58c709, limb1: 0x7c01f5d8a4b9368fc9cbb8eb, limb2: 0xbe98bf07cbd25fe6f4ac154f, - limb3: 0x7c9b05e8adef4de506459f7 + limb3: 0x7c9b05e8adef4de506459f7, }, r1a0: u384 { limb0: 0x71812aeba8c33457117bfb0, limb1: 0xaf1a11b5a7571775ec17c1, limb2: 0x721e08542ff85e7037b2c02f, - limb3: 0x991d1db86230da71efb4475 + limb3: 0x991d1db86230da71efb4475, }, r1a1: u384 { limb0: 0x4122fa433f37c5e6888de07c, limb1: 0x144d977681671d8cd0854c34, limb2: 0x93981673fae1df08d18161aa, - limb3: 0x145eae6a49c250f2435d1ec8 - } + limb3: 0x145eae6a49c250f2435d1ec8, + }, }, G2Line { r0a0: u384 { limb0: 0x468d577fdfbdbc46e423962d, limb1: 0x5bee3b6cf7059efb0069632a, limb2: 0xc1effa8ed920dfc235de8974, - limb3: 0x13d2fffc28b953d3ca80ffa1 + limb3: 0x13d2fffc28b953d3ca80ffa1, }, r0a1: u384 { limb0: 0xdefb34cc5a85aabacaaacdd9, limb1: 0xfac8915a4c4373e6a38752dd, limb2: 0xbe1dce6fa4eaa80db5298aef, - limb3: 0xbb539e692a1a2274f4304f4 + limb3: 0xbb539e692a1a2274f4304f4, }, r1a0: u384 { limb0: 0x615c9153f8460e09de46571d, limb1: 0x4f55bef9c25736ce73e4eec3, limb2: 0xbfe37903c95e022709a17263, - limb3: 0x1d523a97a76bc409ae24135 + limb3: 0x1d523a97a76bc409ae24135, }, r1a1: u384 { limb0: 0xeaec0a3f08b499ac07b95ea8, limb1: 0xae9a839b303953da2d3fe15c, limb2: 0x97307b6e3e3abcb8ecd98686, - limb3: 0x77101a8f07adfc3ad5c763a - } + limb3: 0x77101a8f07adfc3ad5c763a, + }, }, G2Line { r0a0: u384 { limb0: 0xa8af53d78f2fa38c6e213a84, limb1: 0xc908fd45d36e147e8a3449ea, limb2: 0x9224181cd573d3836b141129, - limb3: 0x140090a04158ea562a90ed5 + limb3: 0x140090a04158ea562a90ed5, }, r0a1: u384 { limb0: 0x95e6526648a96a5a43488327, limb1: 0x5f5e4c24465495ee0dcb3055, limb2: 0x49f0985811804cda4142ca8c, - limb3: 0x9619ac570f151f7baaa7ae + limb3: 0x9619ac570f151f7baaa7ae, }, r1a0: u384 { limb0: 0xc2ef8275baa5e3b836a847d7, limb1: 0x9835333ce4136fda57f9c31e, limb2: 0x8392d675aba184475007124a, - limb3: 0x10f9170d8f4e3130ef5a354e + limb3: 0x10f9170d8f4e3130ef5a354e, }, r1a1: u384 { limb0: 0x4db131e9b2a50df6253da27e, limb1: 0x3210503344192c1a1d83234c, limb2: 0xb84a1ae100e6602d2a3eaa1d, - limb3: 0x146401ace26dcc76ec7cb805 - } + limb3: 0x146401ace26dcc76ec7cb805, + }, }, G2Line { r0a0: u384 { limb0: 0x9a29bb6c54b018b4ed75888b, limb1: 0x1437b2d93b1ecc564157059c, limb2: 0xf0add7baf8cfe1ddc30f0754, - limb3: 0x86553ec1cc3cc6a38436fbb + limb3: 0x86553ec1cc3cc6a38436fbb, }, r0a1: u384 { limb0: 0x516be99929795e7ae5112f30, limb1: 0xb182ffdb6110024a0018e3e7, limb2: 0x8e468869d60b7ae7fc6004bd, - limb3: 0x4916e8c2d5820861e32013a + limb3: 0x4916e8c2d5820861e32013a, }, r1a0: u384 { limb0: 0x78554bdd8568c0e9686a510e, limb1: 0x97bc0c8b458fe7d5dcf2264c, limb2: 0xfcc4906709b359120a9e0158, - limb3: 0x193f60f20d1cc7f2b1bf553c + limb3: 0x193f60f20d1cc7f2b1bf553c, }, r1a1: u384 { limb0: 0x2713699297ab49a2d9bf4f6d, limb1: 0xb396d1c4590471bf032b959c, limb2: 0x350113633de03c6e721c7597, - limb3: 0x79ef6c98d71e95eb13fae02 - } + limb3: 0x79ef6c98d71e95eb13fae02, + }, }, G2Line { r0a0: u384 { limb0: 0x4e82e124ce1338d2ca7ee6db, limb1: 0xbf32616d15749f858b667a29, limb2: 0x3b302144f036cf4dc3b92682, - limb3: 0xcc6fe5a628f46c5d62c7a31 + limb3: 0xcc6fe5a628f46c5d62c7a31, }, r0a1: u384 { limb0: 0xecb00dceaf06cc77baed0784, limb1: 0x906e4821956579932758a3ef, limb2: 0x5e9a74901fc7ebfbf3ef3ea0, - limb3: 0xf2962ecb7b0ebb3db941738 + limb3: 0xf2962ecb7b0ebb3db941738, }, r1a0: u384 { limb0: 0x6297c3b80090ce9f80979905, limb1: 0xfcbfa064302ba8944f913e4e, limb2: 0x37d76df0505819fe8a947b55, - limb3: 0x197300faabd06b7cc1d54ff1 + limb3: 0x197300faabd06b7cc1d54ff1, }, r1a1: u384 { limb0: 0xa7da1d558e1c2417133fcd88, limb1: 0x48a63ff7ea1a7d1ad817b2ab, limb2: 0x4766bb1efe7584e02416845d, - limb3: 0xadbeeec2cf952ed27e6a3d3 - } + limb3: 0xadbeeec2cf952ed27e6a3d3, + }, }, G2Line { r0a0: u384 { limb0: 0xeafeff598e54b30cb6c1251a, limb1: 0xafc0b2ad47726720fb51bdf8, limb2: 0x7c63073beb0d24a81f6784e7, - limb3: 0x417c39c09d75dbe141715ba + limb3: 0x417c39c09d75dbe141715ba, }, r0a1: u384 { limb0: 0x7bc206e25555dee3daa1ee4d, limb1: 0x9c28ec5fa7bc8f485bb6cfba, limb2: 0x530c402c723fa11f1f84b46b, - limb3: 0x104053ab3ea6fb21777f84fd + limb3: 0x104053ab3ea6fb21777f84fd, }, r1a0: u384 { limb0: 0xbe16b2bf7765b4bb12696340, limb1: 0x5c585ec795eaf69ee156c464, limb2: 0x494e9230ed370a9bc47be6e9, - limb3: 0x75ceaee051b984083fec3e3 + limb3: 0x75ceaee051b984083fec3e3, }, r1a1: u384 { limb0: 0xec732bc23b7b6a5b6c0490e9, limb1: 0x2108ecfe0e567019997043d, limb2: 0xe7c1c8eaeed7a6be30a560b6, - limb3: 0xdc4b83fea429d673069ad66 - } + limb3: 0xdc4b83fea429d673069ad66, + }, }, G2Line { r0a0: u384 { limb0: 0x4396189ffbd89d01fe27fa5b, limb1: 0xe81217db1696daa3753ccd84, limb2: 0x55c6ad903c2a3e4b9f14a8da, - limb3: 0x15f5f0afe4eeb7545fb13eb0 + limb3: 0x15f5f0afe4eeb7545fb13eb0, }, r0a1: u384 { limb0: 0xd3da9931ffbf361f326b7282, limb1: 0xc9d2464eda778b0051c1027e, limb2: 0xb8f5f46e2bd5fc15d81b368a, - limb3: 0x1040f087e9a0b6633fa13692 + limb3: 0x1040f087e9a0b6633fa13692, }, r1a0: u384 { limb0: 0xf986f1a7ae6234649c858e8a, limb1: 0x4644ba4e2b6b06ac11907477, limb2: 0x95bcd96412c2b77c798589bf, - limb3: 0x122a0d20337a4865af008b55 + limb3: 0x122a0d20337a4865af008b55, }, r1a1: u384 { limb0: 0x201ad08d1e12f22740a2d61f, limb1: 0x4ec7ca2abf73f04dd4d3c1cc, limb2: 0xbe2da8c0b44af69f8c08bbe5, - limb3: 0x3bac9dd093b57980816b067 - } + limb3: 0x3bac9dd093b57980816b067, + }, }, G2Line { r0a0: u384 { limb0: 0x6082c0eb907cf5276747f318, limb1: 0xdfacc4aee13bf3da9397c201, limb2: 0xcebd5d30c1b12b2267e81f02, - limb3: 0x160e8d207ecfa4ee319cf8dc + limb3: 0x160e8d207ecfa4ee319cf8dc, }, r0a1: u384 { limb0: 0x885a1a2e5b088d3b11726fd3, limb1: 0xbcb3b4daf110df0f500a1339, limb2: 0xe16ba85f2dd0f2272c0b6647, - limb3: 0x6822c6c8ea10aef46b89423 + limb3: 0x6822c6c8ea10aef46b89423, }, r1a0: u384 { limb0: 0x3730e4d5494e51774471ba91, limb1: 0xf1af0b885a3b8f02eaf969f6, limb2: 0x7ee91c1608eb59fffe1ae7fa, - limb3: 0x149fb1c9f23c4b2da52a5247 + limb3: 0x149fb1c9f23c4b2da52a5247, }, r1a1: u384 { limb0: 0x85d3ce78367e3de8ca2b82fa, limb1: 0x11c52b8d92a1622e604c4ed9, limb2: 0x9638c9f8c2f0becfe2f26e25, - limb3: 0xdf957915588e3d3a3b5b30a - } + limb3: 0xdf957915588e3d3a3b5b30a, + }, }, G2Line { r0a0: u384 { limb0: 0x4527a34a70ec377ccd63a5b2, limb1: 0x351c7771105a0a1096dd87f0, limb2: 0x57630dce3b4db45cbad696a6, - limb3: 0xf10733fed03fc5b7ae27fc4 + limb3: 0xf10733fed03fc5b7ae27fc4, }, r0a1: u384 { limb0: 0x53a208df401e3d6bf657857c, limb1: 0x306991a8af53fac94e1e9b52, limb2: 0x324634590aee6093dd239d9, - limb3: 0x855b8b1eedbf578f7498f37 + limb3: 0x855b8b1eedbf578f7498f37, }, r1a0: u384 { limb0: 0x71e5471ff515d0d4982815b6, limb1: 0x9a63281835ec15935519deca, limb2: 0x17a64faa9e7e4ab574a3f785, - limb3: 0x134b4a48f53fff9361e1952c + limb3: 0x134b4a48f53fff9361e1952c, }, r1a1: u384 { limb0: 0x56dc56f73bd268799b824fa3, limb1: 0x4180514d6004cf446a366719, limb2: 0x193a82567b226e738b11a0af, - limb3: 0x1498d7e7ad2a68346f7d2199 - } + limb3: 0x1498d7e7ad2a68346f7d2199, + }, }, G2Line { r0a0: u384 { limb0: 0xd7496e71fc42ba4ca4a3e125, limb1: 0x3045d9e3b7e4e521f2dec347, limb2: 0x53d9d04eac9ca0b33af5f5dc, - limb3: 0x6208127dc6aaedad6a3682b + limb3: 0x6208127dc6aaedad6a3682b, }, r0a1: u384 { limb0: 0x4567073497754e2d4414c821, limb1: 0xb600e3160bc87f68920d2e38, limb2: 0xa591b968314d40db6548d766, - limb3: 0x1922ebba883aa4ac7ccac6bc + limb3: 0x1922ebba883aa4ac7ccac6bc, }, r1a0: u384 { limb0: 0x74b133dfab8505c15b559a41, limb1: 0x63786daabceed65d189742c5, limb2: 0xdbecebda30efe3de4467f495, - limb3: 0x11998abbc2dcb0074bdcf880 + limb3: 0x11998abbc2dcb0074bdcf880, }, r1a1: u384 { limb0: 0xe933be0b1bb7e7a435070362, limb1: 0x107d55d6f69931a5d73cf90a, limb2: 0x1cd139553284736dd7d96a0, - limb3: 0x11f10e3b6bb5601c6033673f - } + limb3: 0x11f10e3b6bb5601c6033673f, + }, }, G2Line { r0a0: u384 { limb0: 0x6c92af226aa27e2cbe8fae21, limb1: 0xbc299acce5e8da96b6b932d, limb2: 0xec46a86181ef1ff2f8317201, - limb3: 0x17900cb270764782b3eca3d2 + limb3: 0x17900cb270764782b3eca3d2, }, r0a1: u384 { limb0: 0x82358801a5440afa7826f03e, limb1: 0xd09104615d27b1dba405157c, limb2: 0xda33c37fe337917d32826e1b, - limb3: 0x1be7df7094ce56532653ce2 + limb3: 0x1be7df7094ce56532653ce2, }, r1a0: u384 { limb0: 0xd33c9c433bdeabd28a276748, limb1: 0x5dd445f6fe3bb3070cd0d395, limb2: 0x8b092b49f4fdf2a38337a44c, - limb3: 0x4e047a80a74764555b1ea3d + limb3: 0x4e047a80a74764555b1ea3d, }, r1a1: u384 { limb0: 0xd83bc84b011c607d97684972, limb1: 0x2b14aae22370badd22ec77ba, limb2: 0xd29b9c7b77c3f08055bb8a9, - limb3: 0x125b416bddff21db8d6f42ed - } + limb3: 0x125b416bddff21db8d6f42ed, + }, }, G2Line { r0a0: u384 { limb0: 0x5be94bbb61ae69bfb97c1797, limb1: 0x5dd4679408b689cd73c98a54, limb2: 0xe9ca66bf05d57e3775833e49, - limb3: 0x1245b62efbcc482d11a1f506 + limb3: 0x1245b62efbcc482d11a1f506, }, r0a1: u384 { limb0: 0x89bc52e555d0351b5fdf9289, limb1: 0x25d5f95e819a92cfa5c9eedf, limb2: 0x868fb6bab1644af652495492, - limb3: 0xfb6960d2b936f83c386e1bc + limb3: 0xfb6960d2b936f83c386e1bc, }, r1a0: u384 { limb0: 0x3682f4a1c6b6695783cdffad, limb1: 0xb200ca645c7de79024156c46, limb2: 0x6c37635d197c82752cd229bb, - limb3: 0x38ca157b9d7f6458c3e568c + limb3: 0x38ca157b9d7f6458c3e568c, }, r1a1: u384 { limb0: 0x2cfee4af636c40073d3b4a1b, limb1: 0xf414198593f1ec8b43e3f792, limb2: 0xb6d0d7a2aee4516e0d748d20, - limb3: 0xfa1dcda8c387ca159f89933 - } + limb3: 0xfa1dcda8c387ca159f89933, + }, }, G2Line { r0a0: u384 { limb0: 0x6cf96397e7b79f2fc8c8275d, limb1: 0xfc7cd3706f331af3de61fabf, limb2: 0x78630a1ca624fae6d5770503, - limb3: 0x15ed1256df8e5e5ca95b56c8 + limb3: 0x15ed1256df8e5e5ca95b56c8, }, r0a1: u384 { limb0: 0xee76aa06cc2a711c9ed0f30e, limb1: 0xffa3eb442aaeb1342a8a3887, limb2: 0xcd5194bd83d804f9da8e5cda, - limb3: 0xf5886abb33616f07cfac605 + limb3: 0xf5886abb33616f07cfac605, }, r1a0: u384 { limb0: 0x3e0ff1e7d1f926d905c0e89f, limb1: 0x3fff1943b59d697a741845cd, limb2: 0x4e362d7df69aa3269ea5a418, - limb3: 0x13a520fad90f72497a67b697 + limb3: 0x13a520fad90f72497a67b697, }, r1a1: u384 { limb0: 0xce7bf1da23ccce53d8e13b8, limb1: 0x56957fccf1163143404a68dd, limb2: 0xd26ebbc9548a9897d0383b14, - limb3: 0x329392268b1afdd087dd27b - } + limb3: 0x329392268b1afdd087dd27b, + }, }, G2Line { r0a0: u384 { limb0: 0x1af14241809b40be9e3465e5, limb1: 0xaa6af72c340012f9c342ed55, limb2: 0xbd274776fdde7d41f1c648bc, - limb3: 0x139b56d4b863bf5a4ec4b049 + limb3: 0x139b56d4b863bf5a4ec4b049, }, r0a1: u384 { limb0: 0xfd79bc60d2afcce54c7a7d50, limb1: 0xe8aeb68543d2d716d2dc9004, limb2: 0x268109c94878da47a4fadd5c, - limb3: 0x11f2684f4000c4c639319b03 + limb3: 0x11f2684f4000c4c639319b03, }, r1a0: u384 { limb0: 0xab0257058b3ceebf3856360a, limb1: 0x83546bb85bbd4521ef2c15d7, limb2: 0xb64ba4fcc5f5017bcd494e2a, - limb3: 0xb1553a9da615189266752ea + limb3: 0xb1553a9da615189266752ea, }, r1a1: u384 { limb0: 0xbdcbe0809eed404aaf6bfe78, limb1: 0xb1362562e968fe7fbea0ac52, limb2: 0xbd3b947e8a8fcf148e1a38f6, - limb3: 0x11b7ca6951f2354ee8e4035b - } + limb3: 0x11b7ca6951f2354ee8e4035b, + }, }, G2Line { r0a0: u384 { limb0: 0x765ce308dd13ea9ec917f81d, limb1: 0x4c2cdefe8611811647fac337, limb2: 0x9e01fde22386755f816c125f, - limb3: 0x249a870907df1494e56fc21 + limb3: 0x249a870907df1494e56fc21, }, r0a1: u384 { limb0: 0xc3cd52b28123518842661348, limb1: 0x6678659f6f9ca9e64f594e30, limb2: 0xbdde01f23d77cc2219a64e1, - limb3: 0xa59546d0d9d0d18614e9879 + limb3: 0xa59546d0d9d0d18614e9879, }, r1a0: u384 { limb0: 0x7e7be141202ac55eb1d4a8b8, limb1: 0x22ee295a285099a1bdc85200, limb2: 0x7d274b729c40bb351c2bdd3c, - limb3: 0x105edf80625508ee7473afc3 + limb3: 0x105edf80625508ee7473afc3, }, r1a1: u384 { limb0: 0x8d19d95e92eb2f4d361b91e, limb1: 0xf6cc461a1b4bd0202cc3590b, limb2: 0x87ebac45146065b2dc8d4bde, - limb3: 0x1375f5a114849a9f8e0c3d37 - } + limb3: 0x1375f5a114849a9f8e0c3d37, + }, }, G2Line { r0a0: u384 { limb0: 0xfd9edf6f28adce5f4beebf6e, limb1: 0xf724947c45d624088ca78f8c, limb2: 0x20b6c59e637f510e8f4a8b47, - limb3: 0x18088dc11568a6afa4ab3948 + limb3: 0x18088dc11568a6afa4ab3948, }, r0a1: u384 { limb0: 0x326d9eb3b7fd6666e4dfe426, limb1: 0x7fa3c89d89204877db8eea9b, limb2: 0x763eebc05a7142c40f835528, - limb3: 0xbcb69318eafdf385a86d0d1 + limb3: 0xbcb69318eafdf385a86d0d1, }, r1a0: u384 { limb0: 0xca94ab9874f3014495f9cda4, limb1: 0xe7794778e18217766f5e4602, limb2: 0xc91a61c5cf05cf2822345aa9, - limb3: 0x792b27535901b050d8e5527 + limb3: 0x792b27535901b050d8e5527, }, r1a1: u384 { limb0: 0x91ec1515549ee918829c4f28, limb1: 0xdc2b66119fcf23cb6b822b2a, limb2: 0x32919541ad67e68b00f465d2, - limb3: 0xa312627d104cde1072922c0 - } + limb3: 0xa312627d104cde1072922c0, + }, }, G2Line { r0a0: u384 { limb0: 0x58f86bbd730aa1df76e95257, limb1: 0x3832640fbf5ff16fd5c86613, limb2: 0xaf56bfc4d589fd5479b90e9a, - limb3: 0x3ca74026cf32fba56ec4ff + limb3: 0x3ca74026cf32fba56ec4ff, }, r0a1: u384 { limb0: 0x577775e0ba37cd47da598900, limb1: 0xf402fb94e1c54fc0073a49b0, limb2: 0x2e06dce324741a7e96cd8fcc, - limb3: 0x16f491b5bd383da7e70c001 + limb3: 0x16f491b5bd383da7e70c001, }, r1a0: u384 { limb0: 0xf906737c542dde2e8b5d7bf7, limb1: 0x93d207424c8f01f866d09071, limb2: 0x7a8dc05cf5ae45304b21d8d, - limb3: 0x1d432a9b400dc09515479f5 + limb3: 0x1d432a9b400dc09515479f5, }, r1a1: u384 { limb0: 0x533a88fd57c73a7a668d47a8, limb1: 0x11cd23f02ff6e7610e1522a9, limb2: 0xbb9e0293df841db5d616e680, - limb3: 0x19f2811473fbfa9dddb16249 - } + limb3: 0x19f2811473fbfa9dddb16249, + }, }, G2Line { r0a0: u384 { limb0: 0xb04ec27c52875dc87d300a4d, limb1: 0xbe11f68dc22d7c89a578a63, limb2: 0xb0557578664d37b4747b7a9f, - limb3: 0x12f5295a85f5353593bc2be4 + limb3: 0x12f5295a85f5353593bc2be4, }, r0a1: u384 { limb0: 0xe2f1989d941ed5564cd41c3e, limb1: 0x688749fe66ae67951f20c5cd, limb2: 0x1e342023b9900ec7038c108e, - limb3: 0x36e5e429874afc784f21116 + limb3: 0x36e5e429874afc784f21116, }, r1a0: u384 { limb0: 0x2ee5450e51f44191eacbc602, limb1: 0x85a343b7b9054589be26e47c, limb2: 0x7f0d17d39a05bf1af4d36372, - limb3: 0xdeafa2ba02325a88b4c6cbc + limb3: 0xdeafa2ba02325a88b4c6cbc, }, r1a1: u384 { limb0: 0x715bdc99b0a7881ac0663f5b, limb1: 0xfdc24e93292c1ee0678f2abe, limb2: 0x8c276d6704a0c9e510c84f16, - limb3: 0x14796c0842ef2f1021a202cc - } + limb3: 0x14796c0842ef2f1021a202cc, + }, }, G2Line { r0a0: u384 { limb0: 0x453bf5d35812bbf0123c972a, limb1: 0x3a9bcdec2fe60921bf629abd, limb2: 0x8d4d0d00c4d2739ae3a0b176, - limb3: 0x9a76bae205af60fb63330d3 + limb3: 0x9a76bae205af60fb63330d3, }, r0a1: u384 { limb0: 0xa5e2fc320bd337a5e6bf6e59, limb1: 0x649bf53444907381a7d0f976, limb2: 0x57cfc1f1da9301aff5ef309c, - limb3: 0x79042a88c84c694ffd3fa12 + limb3: 0x79042a88c84c694ffd3fa12, }, r1a0: u384 { limb0: 0x8149e3cbfdcb7c4749e0ba73, limb1: 0x72f87f4ff2d25e09a5eae7db, limb2: 0x1d01fadf84a7202ce4489428, - limb3: 0x15652f54b134df28e3b93c7 + limb3: 0x15652f54b134df28e3b93c7, }, r1a1: u384 { limb0: 0xa1b43fd866b4d217c50e744a, limb1: 0xce197f05b592d754e8f84093, limb2: 0xbc7dc9245b7e2113d675abe4, - limb3: 0x2f8afc77fac6bc37b0c7667 - } + limb3: 0x2f8afc77fac6bc37b0c7667, + }, }, G2Line { r0a0: u384 { limb0: 0x50e7013b12d7186ced76039f, limb1: 0x721a7975c8378d2a726c7ae9, limb2: 0xa73c62577fb438f12bf208de, - limb3: 0x26dc14d778403bf116e912c + limb3: 0x26dc14d778403bf116e912c, }, r0a1: u384 { limb0: 0x29689dc66843d300ece6c677, limb1: 0xf07525c97e59cd38bb4fbf8c, limb2: 0xd52ba746bdaa1cabecd2c22f, - limb3: 0x2af3f0e70834774a2a73eac + limb3: 0x2af3f0e70834774a2a73eac, }, r1a0: u384 { limb0: 0x7a93d76e421c2471b470689, limb1: 0xa8513b1c40dbc11e983c16dc, limb2: 0x2b12f3f2ca12077d1ce8a979, - limb3: 0xe71d0fb35e1b4017a0d875c + limb3: 0xe71d0fb35e1b4017a0d875c, }, r1a1: u384 { limb0: 0xa979b1ba179da53c69aed5a8, limb1: 0xf5591963958c0dc86b906f70, limb2: 0x8461006ca66ecff10d3b0159, - limb3: 0x9d803979983001a16b8f24a - } + limb3: 0x9d803979983001a16b8f24a, + }, }, G2Line { r0a0: u384 { limb0: 0xa36890bfc74afe64e9f3840c, limb1: 0x8eeaf2f380047dfe3a21b11b, limb2: 0xeb84e8fad6b7625c837aa272, - limb3: 0x135ff64b4d73a3a2d0f886b2 + limb3: 0x135ff64b4d73a3a2d0f886b2, }, r0a1: u384 { limb0: 0x6fa3e40ac2853a97b01176dd, limb1: 0xcd16a519987e4aabf6bd8d1, limb2: 0xe4ee3c4f4c650fbfe5a0a370, - limb3: 0xcc7efdc19164223dbcb0b43 + limb3: 0xcc7efdc19164223dbcb0b43, }, r1a0: u384 { limb0: 0x9ed5597f7236b21674d039f4, limb1: 0x5cce2f4074bfb9593d07dcab, limb2: 0x1467dedd98c377f9f9b46e75, - limb3: 0x89f8ba7d879e18afda115ac + limb3: 0x89f8ba7d879e18afda115ac, }, r1a1: u384 { limb0: 0xce1eb5fb3e129849b7af9b61, limb1: 0xbb388e5edcc82d67d7e505d1, limb2: 0x37f0c598b86ce85a7ccc5e90, - limb3: 0xf3dfe35088599f2eeb97849 - } + limb3: 0xf3dfe35088599f2eeb97849, + }, }, G2Line { r0a0: u384 { limb0: 0x703411c08ba63253b98e71d2, limb1: 0x51c06ae22b02444abf9cac41, limb2: 0xa022f80a1a965f69f5d1f383, - limb3: 0x12fd2662087ac6751f157414 + limb3: 0x12fd2662087ac6751f157414, }, r0a1: u384 { limb0: 0xa277095e594bc58c46d54dde, limb1: 0x8ca1a613e0d12d38a7cddd17, limb2: 0xf0211ed10bf0f743dbc32801, - limb3: 0xebf6d5e9967bf3328026291 + limb3: 0xebf6d5e9967bf3328026291, }, r1a0: u384 { limb0: 0xa39b2f0abb5ff02a8af6ad9d, limb1: 0x404802001d459f026e2fb9fd, limb2: 0x11cdb22b6ba1b2bad0344e21, - limb3: 0x772eca503810eaefb95c2fc + limb3: 0x772eca503810eaefb95c2fc, }, r1a1: u384 { limb0: 0x1879ebc05549a3ea69bf9c79, limb1: 0x3d68ffd86dae89a1de6536de, limb2: 0xce0084f9fba0a4087e5191c9, - limb3: 0x141788fb821ea65aed14d5a1 - } + limb3: 0x141788fb821ea65aed14d5a1, + }, }, G2Line { r0a0: u384 { limb0: 0xb9289920fc29c178a0728467, limb1: 0xf35e17ec8a43244f4e0efb63, limb2: 0xa46135ade487bf1a95a36590, - limb3: 0x4597ae1f4cfcdaacff3f6 + limb3: 0x4597ae1f4cfcdaacff3f6, }, r0a1: u384 { limb0: 0xe926fdfcdb55d8651b029bb7, limb1: 0x741390b7035f30b98e2dcd27, limb2: 0x697fa3901ef0c0d6f4f0693b, - limb3: 0xcc420802c358e2dedfc71d4 + limb3: 0xcc420802c358e2dedfc71d4, }, r1a0: u384 { limb0: 0x404a03b34791ba0f3fa9761, limb1: 0x50d30e7876bb541f3ef689f6, limb2: 0x7eca4b1c1a04fdc1c58f3065, - limb3: 0xa9e0b8c0194468d35c05fbd + limb3: 0xa9e0b8c0194468d35c05fbd, }, r1a1: u384 { limb0: 0xb370e739ea46b6699276bb50, limb1: 0x39805df77c609ca4cb80f044, limb2: 0x1f93a5fc91ea7ec7048f46d8, - limb3: 0x109841b0d6d23c644d831b58 - } + limb3: 0x109841b0d6d23c644d831b58, + }, }, G2Line { r0a0: u384 { limb0: 0x696c2443a8baa527eef5ec6e, limb1: 0x7c385a900f4614f62a38d2e7, limb2: 0xecef959f527ae42bb1b2a0ed, - limb3: 0x7fac72373dec09eeaf6db37 + limb3: 0x7fac72373dec09eeaf6db37, }, r0a1: u384 { limb0: 0xc84aa165d81984cbd1d40498, limb1: 0x7ef2f6d8a1b0b82a86a8aea1, limb2: 0x9f04cb828903af563a7ce955, - limb3: 0x1260f88b57dddd5bf01540db + limb3: 0x1260f88b57dddd5bf01540db, }, r1a0: u384 { limb0: 0x7d666c3a74212ecb676ee24e, limb1: 0x8ddff061953f45de2460c7ee, limb2: 0xb69a343af7532ec4af3c8894, - limb3: 0x213c5dddce502302ac58fec + limb3: 0x213c5dddce502302ac58fec, }, r1a1: u384 { limb0: 0x9b68c470206e0a6b23d993d7, limb1: 0x8e64f45ab3906177fca690b, limb2: 0x6b3ba9665c9e8cdb62669c9b, - limb3: 0x4535c1e41f9fe732b7c4780 - } + limb3: 0x4535c1e41f9fe732b7c4780, + }, }, G2Line { r0a0: u384 { limb0: 0x98b0e7890c15a7a839d3b10e, limb1: 0xf4700f5af67e79881b903235, limb2: 0x7f26d7f900cd57991171081b, - limb3: 0xa11c46b99ac9b5f162650e0 + limb3: 0xa11c46b99ac9b5f162650e0, }, r0a1: u384 { limb0: 0x8a0a163b8e5919da774d6514, limb1: 0x5b711ae4ea88feca76813413, limb2: 0x3cfe334352e602ed13efcdbe, - limb3: 0x170158694b626c2fc61e87b1 + limb3: 0x170158694b626c2fc61e87b1, }, r1a0: u384 { limb0: 0xe2bcaf25cb4ec37db7539e18, limb1: 0xf529b82b627e809c817fa0b2, limb2: 0x1fe26f773f8d5e39076934e, - limb3: 0x98193b4da3aac7d8e92f5f3 + limb3: 0x98193b4da3aac7d8e92f5f3, }, r1a1: u384 { limb0: 0x5d20cd8b1cdf94ce27802746, limb1: 0x2877bd487e7fefe25dc052ef, limb2: 0xc8fd066838059eeb41c965ec, - limb3: 0x178ed199c2fb2d36df7fcd0 - } + limb3: 0x178ed199c2fb2d36df7fcd0, + }, }, G2Line { r0a0: u384 { limb0: 0x4790112971f4fd8af8c65cf3, limb1: 0x2a207f9a2516cd19d12e489, limb2: 0x9ff7a28cec268524a01123a2, - limb3: 0x19c97c4cda4b8effc6fd8caf + limb3: 0x19c97c4cda4b8effc6fd8caf, }, r0a1: u384 { limb0: 0x186239a1ec3cf10b8286a2b2, limb1: 0x3ef3e7aabde5155a565ba9df, limb2: 0x87f2c71389dd8222c768baaf, - limb3: 0x27192c74c599b1228aaf1a8 + limb3: 0x27192c74c599b1228aaf1a8, }, r1a0: u384 { limb0: 0x8f69417d578d338a6f398545, limb1: 0x7bf1e9c47453d7351c93abfd, limb2: 0x35f77c3144b037f01890517a, - limb3: 0xa405425f46c150020d41e02 + limb3: 0xa405425f46c150020d41e02, }, r1a1: u384 { limb0: 0x31bd174ae90756d6a59e0c49, limb1: 0x83fb482d1737f7e4d899670c, limb2: 0x9109ccd8f333598149678681, - limb3: 0xa5e61d696e11d7f360e20c7 - } + limb3: 0xa5e61d696e11d7f360e20c7, + }, }, G2Line { r0a0: u384 { limb0: 0x14e4f467f4709129c1d6d6d7, limb1: 0x33e67ed9f2b5e1802523571, limb2: 0x3e76ea8acb143c96671cbc65, - limb3: 0x1137f470c8f7d00baa56e5c0 + limb3: 0x1137f470c8f7d00baa56e5c0, }, r0a1: u384 { limb0: 0xa2a95cfa92d0088ab1308e85, limb1: 0x85a5304db0b3422f71d7ac93, limb2: 0xbc8572953d8f42a55fe99700, - limb3: 0xf23701cea5719c6d8b0d3f3 + limb3: 0xf23701cea5719c6d8b0d3f3, }, r1a0: u384 { limb0: 0x380e418e3c32756e123587f9, limb1: 0x8a39d6b5872d774c57af0ba1, limb2: 0x11473256ad05f9eaac305647, - limb3: 0xa642f0b83f002f2b82a1d3f + limb3: 0xa642f0b83f002f2b82a1d3f, }, r1a1: u384 { limb0: 0xd5b5c903360b3614bde608b6, limb1: 0x407e2bf83df10c320c4ddafa, limb2: 0x3771cad615e4d7b5de69e962, - limb3: 0x105334af5850345d42c10c17 - } + limb3: 0x105334af5850345d42c10c17, + }, }, G2Line { r0a0: u384 { limb0: 0x5c9c29ca75d35044e8ef21c3, limb1: 0x998cb3a19513ab7f61414601, limb2: 0xab00762e628d907a2ae1af86, - limb3: 0x1169ce82fb0de161f3893d09 + limb3: 0x1169ce82fb0de161f3893d09, }, r0a1: u384 { limb0: 0xf3a9a8d35f18f808693ffd33, limb1: 0x73f3c4fd6045a7f4571f21bc, limb2: 0xdf7c2193567b491c867fdf00, - limb3: 0x16e98d0dd48da5e0edfff5c3 + limb3: 0x16e98d0dd48da5e0edfff5c3, }, r1a0: u384 { limb0: 0xaf283e3c6ef8a94336bc120, limb1: 0xf60a1f61fc714e75be0aadd4, limb2: 0x11634a0b524e6d80246509d7, - limb3: 0x16e9e7d8a952a7b31c855f16 + limb3: 0x16e9e7d8a952a7b31c855f16, }, r1a1: u384 { limb0: 0xc775b52b48f308cf0eda40a5, limb1: 0x8e5b8d423e5aa68c1d100384, limb2: 0x60bf337ffbd88ec5c5c9f419, - limb3: 0x89182d6b9c183e0d7ce7769 - } + limb3: 0x89182d6b9c183e0d7ce7769, + }, }, G2Line { r0a0: u384 { limb0: 0xe8ab375f9e79671f77c33b38, limb1: 0x32c9317a9c538a1808d10350, limb2: 0x39b7c7695d2524211d5341f3, - limb3: 0x373d7203575fda92e7b4b02 + limb3: 0x373d7203575fda92e7b4b02, }, r0a1: u384 { limb0: 0x54a74ef22bb2c45a0f0992be, limb1: 0xe9d5746328bce07da2a04f41, limb2: 0xf657d148ed56fbf731787b28, - limb3: 0x7b03ee28e327f04166f5075 + limb3: 0x7b03ee28e327f04166f5075, }, r1a0: u384 { limb0: 0x754ae620f48dd7de6afcbb5b, limb1: 0x488b7b5de47bfe76c7d7f1ce, limb2: 0x5a2e05b269b38310ba8b4159, - limb3: 0x41965ba496910c39d2c8167 + limb3: 0x41965ba496910c39d2c8167, }, r1a1: u384 { limb0: 0xe544c97bb363e3619c50c630, limb1: 0x7fec53ec738123389016bbf, limb2: 0xb12f6ffb0998373cb04be875, - limb3: 0x4bf5cef5067781b9809ec64 - } + limb3: 0x4bf5cef5067781b9809ec64, + }, }, G2Line { r0a0: u384 { limb0: 0xbf2c9e34e6bc1bd091b45f67, limb1: 0x5c346e3b836520851797b6d8, limb2: 0x6069138a6940bb4584d47a8b, - limb3: 0x1ec9cbb12630fd6ccc6c9c + limb3: 0x1ec9cbb12630fd6ccc6c9c, }, r0a1: u384 { limb0: 0xafbc54c8ade09192bfd558f6, limb1: 0x1faee0208ac7d1e69f12c285, limb2: 0x63c00188230e79c0d80db365, - limb3: 0xc8eab23b2d1473ed2b2a733 + limb3: 0xc8eab23b2d1473ed2b2a733, }, r1a0: u384 { limb0: 0xb63308c849127dc268a45cd6, limb1: 0x36c18af5bbec9380f565bae8, limb2: 0xf0de12a8c99254f36cf0dee2, - limb3: 0x2d8f12634dcf817db2f2721 + limb3: 0x2d8f12634dcf817db2f2721, }, r1a1: u384 { limb0: 0xca376f99a70d9e829232cd97, limb1: 0x2444f064f27f2388ae65f100, limb2: 0xbbb2d21896e41edec0347853, - limb3: 0x135ff883551823e93448609e - } + limb3: 0x135ff883551823e93448609e, + }, }, G2Line { r0a0: u384 { limb0: 0x4d2b6e4cdcfd83a0692003b0, limb1: 0x41629374ff0d1ac17362c794, limb2: 0x18b16faf0521c1c5a11c3523, - limb3: 0x18b70eb629a79ff3f9834985 + limb3: 0x18b70eb629a79ff3f9834985, }, r0a1: u384 { limb0: 0xf6dd615a649c30b33d8b88ac, limb1: 0x526f609b923d7ba3b37b63c, limb2: 0x4289133e7279c670978cd569, - limb3: 0x11fa0abe9f21dc673b14d917 + limb3: 0x11fa0abe9f21dc673b14d917, }, r1a0: u384 { limb0: 0x7f14d726cf9a27a8c970bb68, limb1: 0xe380e6b07cde1eb0fffd95e6, limb2: 0x2c5722bd0e114b506bddd89a, - limb3: 0xd3fb948d9f8e2c898c1b3c + limb3: 0xd3fb948d9f8e2c898c1b3c, }, r1a1: u384 { limb0: 0x86aed9389c52f71bde01a5e0, limb1: 0x4c6baca3b4494d3a4a88343a, limb2: 0xe1083c4faf04588a29999bbc, - limb3: 0xcddd31531e910375fb212ff - } + limb3: 0xcddd31531e910375fb212ff, + }, }, G2Line { r0a0: u384 { limb0: 0x235a9f01452a4060e9666d57, limb1: 0xd5d02fd4f582c83fc011b621, limb2: 0x6d73a1f62f157668ad2fde7b, - limb3: 0x10506e79bec17d8e51a8464e + limb3: 0x10506e79bec17d8e51a8464e, }, r0a1: u384 { limb0: 0x18cf57bcbb92130baae8f6c2, limb1: 0x6d9d5afd47ece7697d3e9c13, limb2: 0x2e57a93ee5ece50b3fff8e9, - limb3: 0xe6806ed105ec93b0fb969c2 + limb3: 0xe6806ed105ec93b0fb969c2, }, r1a0: u384 { limb0: 0xf5fa5b82be86b88814b2d06d, limb1: 0x2ab27456d28150f5ee3375d6, limb2: 0x32b1ec76959111a17a5fa1fc, - limb3: 0x7c1d13dcf400899c66a8e7f + limb3: 0x7c1d13dcf400899c66a8e7f, }, r1a1: u384 { limb0: 0xa5626b5549a39034af1af868, limb1: 0x1bea223a1c5580bdcbda7e8a, limb2: 0xf29f63f5c820b06bb690a9d3, - limb3: 0xc546ee8fac366005eb69d82 - } + limb3: 0xc546ee8fac366005eb69d82, + }, }, G2Line { r0a0: u384 { limb0: 0x2d6310ed50636162786d1b75, limb1: 0x5cac54906e73bae3b4359998, limb2: 0xbd428c9c44f9a83980265ddd, - limb3: 0x2fc21e36ad4d0da0a00add9 + limb3: 0x2fc21e36ad4d0da0a00add9, }, r0a1: u384 { limb0: 0x80e8a4f63bb295c1f909c9f8, limb1: 0x76045a0b6f715c18ef69c37a, limb2: 0x8e2d6c8495568d22744ab3f3, - limb3: 0x2b70c4ecc512e5b7a263f20 + limb3: 0x2b70c4ecc512e5b7a263f20, }, r1a0: u384 { limb0: 0x74f73dffd0f8db5344a575d1, limb1: 0x8e6d3150c6b50fb0f30b8d42, limb2: 0x1caf7885c868849e8e700707, - limb3: 0x130fa43ef7b10a6b7c72a4af + limb3: 0x130fa43ef7b10a6b7c72a4af, }, r1a1: u384 { limb0: 0x1cd953b2a94a0b0460118689, limb1: 0x5c361d5ff78164edfe007331, limb2: 0x61315250d28c9b99d174dab6, - limb3: 0x252277581829378760d4033 - } + limb3: 0x252277581829378760d4033, + }, }, G2Line { r0a0: u384 { limb0: 0x47f1657643a1cbb2571eb8bb, limb1: 0x8914631858f8b77d7a349849, limb2: 0x436fcdebfd20c5f2c775777b, - limb3: 0x15d2dad8f611743307bbcb8c + limb3: 0x15d2dad8f611743307bbcb8c, }, r0a1: u384 { limb0: 0x76e0666924671f3fa1e8305c, limb1: 0x99f366ed9ecdc252b3780f8b, limb2: 0xde576eafe0fb738d0ef77352, - limb3: 0x900b9e3957454d7bf885b + limb3: 0x900b9e3957454d7bf885b, }, r1a0: u384 { limb0: 0xc288c6a7c06ef42c5512ffbd, limb1: 0x2101acee5d3a6f42634fdb52, limb2: 0x87f97207b5422a53fa6febaa, - limb3: 0x468108ffae130a39d212d39 + limb3: 0x468108ffae130a39d212d39, }, r1a1: u384 { limb0: 0x71959c4ce40fbe9db7b7402c, limb1: 0xf04a57d060ab29acaba357bd, limb2: 0x88ead6a27e0673b01bc7797d, - limb3: 0xe7b10501dd492414f7f5320 - } + limb3: 0xe7b10501dd492414f7f5320, + }, }, G2Line { r0a0: u384 { limb0: 0xf313b674fee5c83040549617, limb1: 0x864b49b4b96dc11dcb31a6b2, limb2: 0x7afa88358fa085d4db1d9e6f, - limb3: 0x10b916005fc2476498beed41 + limb3: 0x10b916005fc2476498beed41, }, r0a1: u384 { limb0: 0xa5f1bacd2bc2f38d4e1a34d, limb1: 0x45d1d4d76b0b03b8d7da125b, limb2: 0x74a0ba0ae49290dd243bdc61, - limb3: 0x185827ff9e3c833ac46e1e16 + limb3: 0x185827ff9e3c833ac46e1e16, }, r1a0: u384 { limb0: 0xffae650825626bdffd8ed424, limb1: 0x126a57866536ac1d0b34b17b, limb2: 0x517ba3e3b50188d25dc23dc8, - limb3: 0x1276dc74f1b2a7173802ff0f + limb3: 0x1276dc74f1b2a7173802ff0f, }, r1a1: u384 { limb0: 0xa73951cadbaab9fe957c0fed, limb1: 0xa232a5178de78c8f681635e5, limb2: 0x30adf5deb8ee4da1fcc053b2, - limb3: 0xd840dfc0aae66492a176a2e - } + limb3: 0xd840dfc0aae66492a176a2e, + }, }, G2Line { r0a0: u384 { limb0: 0x25d4b59740f7116cb1780a57, limb1: 0xf66599aadea648fbb82567e2, limb2: 0xe3cb94f5929ba09bc594b6f3, - limb3: 0x14aea73a1e5255d84243cf1b + limb3: 0x14aea73a1e5255d84243cf1b, }, r0a1: u384 { limb0: 0xb4ab235afcaa352751b232b7, limb1: 0x39d514cae45e5f1ca2163b13, limb2: 0x24d5c8e93eafc5a989dd917e, - limb3: 0x3f325c33f3120c94b570157 + limb3: 0x3f325c33f3120c94b570157, }, r1a0: u384 { limb0: 0x19fc8f20184d782d19ad14ad, limb1: 0x25cb2fec959a766536d22d3f, limb2: 0x3c33822ddba88cb8c5660a53, - limb3: 0x577aed0bad6b8ef9bc471ff + limb3: 0x577aed0bad6b8ef9bc471ff, }, r1a1: u384 { limb0: 0x83e60f0903c16e1bcae23f39, limb1: 0xc6fe7fe7835463a27bac9a8c, limb2: 0x5c8c12c6fc626555c235f443, - limb3: 0x265e58c13368ec3d3828fe2 - } + limb3: 0x265e58c13368ec3d3828fe2, + }, }, G2Line { r0a0: u384 { limb0: 0x3ce32e18da41a2016fbf41b1, limb1: 0xda3e0d01e0bbb52a301585cf, limb2: 0xaf508b2248a1fe6ffc5d18d0, - limb3: 0x1274aa625858db0bb675b3bf + limb3: 0x1274aa625858db0bb675b3bf, }, r0a1: u384 { limb0: 0x4cbc0be362614fff6f6d4898, limb1: 0xdf8603dfa938bc22d0aa98e, limb2: 0xaf3784151a3a1a7585c177cf, - limb3: 0xcd9b76612194b440cbd9c67 + limb3: 0xcd9b76612194b440cbd9c67, }, r1a0: u384 { limb0: 0x93de5b0d4ce155335ed8a6ff, limb1: 0x9dc6c21cddb15edd7f401cc4, limb2: 0x2601d5b08d144c3608181a8f, - limb3: 0x872d334a6e81b6937f7580f + limb3: 0x872d334a6e81b6937f7580f, }, r1a1: u384 { limb0: 0xa90ea56305b0b457ffd7dfd9, limb1: 0x3fd7486324393fe073a67746, limb2: 0x22aaac8be67217e0e49366ff, - limb3: 0xdc78f4f3c40b0984ec316e - } + limb3: 0xdc78f4f3c40b0984ec316e, + }, }, G2Line { r0a0: u384 { limb0: 0x91b78bd7e557f93a24ee04c0, limb1: 0xd19051b09bfc86047a41c109, limb2: 0x3402bf57b1f9b24014dc32f9, - limb3: 0x13e3027846c5080d9adcee97 + limb3: 0x13e3027846c5080d9adcee97, }, r0a1: u384 { limb0: 0x7e481c05e40434785193ab1d, limb1: 0xe6af27502aacea453841adeb, limb2: 0x386742381e57d6086584e277, - limb3: 0x1135a6ddee7eb562ea6e21dc + limb3: 0x1135a6ddee7eb562ea6e21dc, }, r1a0: u384 { limb0: 0x76c4a8400e82be43993db399, limb1: 0x9b4212fb3eacecbbe7d9d4ec, limb2: 0xc0d9b62cd322c550cdf92dd, - limb3: 0x7529a6acf7161d423b23562 + limb3: 0x7529a6acf7161d423b23562, }, r1a1: u384 { limb0: 0xbbea5748b91520366f556220, limb1: 0x99e0ff5b1475c3a1439dcd18, limb2: 0x4927045dd9b230c874e0a4cf, - limb3: 0x569e18a0165d0c89300f772 - } + limb3: 0x569e18a0165d0c89300f772, + }, }, G2Line { r0a0: u384 { limb0: 0x35a50965750c7716c237772d, limb1: 0xe96b0c22d39fbbbe7f55d6bc, limb2: 0x40864a9ec51fc3fceddf7498, - limb3: 0x232f7c41bf2d0ca9a4a6560 + limb3: 0x232f7c41bf2d0ca9a4a6560, }, r0a1: u384 { limb0: 0xebd5d6880bc93e525c5283bd, limb1: 0x911e6efcf7cc8f0983f3a122, limb2: 0xeb2d53ffa24eaa0527809305, - limb3: 0x126b7366a9ba4cdc1648b905 + limb3: 0x126b7366a9ba4cdc1648b905, }, r1a0: u384 { limb0: 0xd7789f5359bb3bd4b674719b, limb1: 0xecaa3bff242dc5a63ed57279, limb2: 0x85e8faaf82c119cc47bdfe4d, - limb3: 0x1042198c5b912b48953f03ee + limb3: 0x1042198c5b912b48953f03ee, }, r1a1: u384 { limb0: 0x52c926fe4d73775c8dcc54b9, limb1: 0x56410c723b730b245d2639ae, limb2: 0xe6b9bc3d2b2a15155d82e48f, - limb3: 0x11772d7a9fa0b3530a88bfa - } + limb3: 0x11772d7a9fa0b3530a88bfa, + }, }, G2Line { r0a0: u384 { limb0: 0xd49d530d6471b000aaa0f15f, limb1: 0x6419093f265991b02bffc7ce, limb2: 0xa00c1451a79e01585e4326eb, - limb3: 0x6346c6eff4ca91de5b05384 + limb3: 0x6346c6eff4ca91de5b05384, }, r0a1: u384 { limb0: 0xdfa15634bfcff7dadc461eb5, limb1: 0x29af4f6d3d69636b5928e5d2, limb2: 0xfde39f21b4d6e713d0d155d2, - limb3: 0xca4f08ed6e2bdb29750675c + limb3: 0xca4f08ed6e2bdb29750675c, }, r1a0: u384 { limb0: 0x81ff98c5082a2bd3e42457b0, limb1: 0x63554fb7f83f1d8dad23dd52, limb2: 0x2c485af67a9cec9a384d38b5, - limb3: 0xd327461f217051c60e87f40 + limb3: 0xd327461f217051c60e87f40, }, r1a1: u384 { limb0: 0x3da25c53119715454f53681b, limb1: 0xc91752cc6b4bdbdfe38db6f2, limb2: 0xe72f2af727bb791caabbec47, - limb3: 0x127c4a3487c7d32f6f36e4e8 - } + limb3: 0x127c4a3487c7d32f6f36e4e8, + }, }, G2Line { r0a0: u384 { limb0: 0x90b1d3aaedd7ae3ae5ef62ec, limb1: 0x9c2237332a12d63f617991e0, limb2: 0x88f758a89df448c1dd45282d, - limb3: 0x3c52126f27d2dd758ab0770 + limb3: 0x3c52126f27d2dd758ab0770, }, r0a1: u384 { limb0: 0x8bf85f2a28b11ffbcc48f29d, limb1: 0xb79fc38b4398e2af5a4ac3f4, limb2: 0x877b0d7e053d12f91fa49c91, - limb3: 0x19ee364564c01cbdf0bd4257 + limb3: 0x19ee364564c01cbdf0bd4257, }, r1a0: u384 { limb0: 0xfbe824718174525ae3cbf681, limb1: 0xb434f93ab3f012e5c5fab625, limb2: 0xfaaa0bb2878017e90fb07ac6, - limb3: 0x616944a1484a78b2946360a + limb3: 0x616944a1484a78b2946360a, }, r1a1: u384 { limb0: 0x84c489abf936bfadd293c732, limb1: 0xaa7ca8e76a07f14d2a712245, limb2: 0xef338c44111cd8f2538f16e0, - limb3: 0x2f06c9cef716ae3e32a1bd1 - } + limb3: 0x2f06c9cef716ae3e32a1bd1, + }, }, G2Line { r0a0: u384 { limb0: 0xd396b680a9f4f7c6bd038aea, limb1: 0x986cf9351d6ab286ee985c18, limb2: 0x3fb1d1f309c22962f47ec31a, - limb3: 0x10fb4fd3b7ad82cb7a20f545 + limb3: 0x10fb4fd3b7ad82cb7a20f545, }, r0a1: u384 { limb0: 0x1ed74a546ca919799c8dc7fc, limb1: 0xad96bb817657c40d87a9d3e0, limb2: 0xaae8cd21d5514a6bad3ed8c4, - limb3: 0x8d73f64be809e1cf6c21ba3 + limb3: 0x8d73f64be809e1cf6c21ba3, }, r1a0: u384 { limb0: 0x5ec7fd9fa8d7f0d23ba3e8ad, limb1: 0x6b74854455e59da09187bba, limb2: 0xa36996b7529b95dae966c75d, - limb3: 0xcdea79528317107cbfd85dc + limb3: 0xcdea79528317107cbfd85dc, }, r1a1: u384 { limb0: 0x3880ae8a1f6f37a409313c14, limb1: 0xa07694a5bc51a90f14a6c6, limb2: 0xdd33ffd933cac57b8cb1b24b, - limb3: 0xc48ad7503d01f14954b7e4a - } + limb3: 0xc48ad7503d01f14954b7e4a, + }, }, G2Line { r0a0: u384 { limb0: 0x49369971c3fc33245bb7b9cb, limb1: 0xce9896e5addb637375420be1, limb2: 0x7d4c97a8e9d64c41cf2dffa1, - limb3: 0x287b1e39767a3c2d102a825 + limb3: 0x287b1e39767a3c2d102a825, }, r0a1: u384 { limb0: 0x6f6e6c10c2da68b535025ac5, limb1: 0x9b6128f5e000427659557e1, limb2: 0xba4e1537236425a49e10a76b, - limb3: 0xdccc3a8b263abdc2c1112a2 + limb3: 0xdccc3a8b263abdc2c1112a2, }, r1a0: u384 { limb0: 0xf0f26fb9d99f34211c52ec21, limb1: 0xb091a74cf88bb5563ee29bd1, limb2: 0xb1a3c0e6479e60ec2bf5e312, - limb3: 0x6ea612bf02bd6df77f7af9a + limb3: 0x6ea612bf02bd6df77f7af9a, }, r1a1: u384 { limb0: 0x773745b51d209d3643ac70f3, limb1: 0xb837418d0188d5d41911d38c, limb2: 0xae750841ca68ec61dd2fac9a, - limb3: 0x9b4aec971d45aee69870aa6 - } + limb3: 0x9b4aec971d45aee69870aa6, + }, }, G2Line { r0a0: u384 { limb0: 0x1ea080f661e3664f40e86e5c, limb1: 0x68cfee40024ac6d125d379dd, limb2: 0x629e60758e07b9b05c61ba2b, - limb3: 0x1689e26966100efaf80d13ed + limb3: 0x1689e26966100efaf80d13ed, }, r0a1: u384 { limb0: 0x320d0999b19811ce060215db, limb1: 0xd9502d1b7afa257773be4230, limb2: 0xc988439b0216e219b7140ccb, - limb3: 0x27f9715fcd39d7ac02d48f + limb3: 0x27f9715fcd39d7ac02d48f, }, r1a0: u384 { limb0: 0xc0ef32fd00dded29b70a8660, limb1: 0xaed80ea139f12376a3886fc8, limb2: 0xc3fdb8d6a2210be1cda0c165, - limb3: 0x724e4ec574990cb0e7f2fff + limb3: 0x724e4ec574990cb0e7f2fff, }, r1a1: u384 { limb0: 0xf76e88a2a84b78507079bb92, limb1: 0xa85c3a62cb47c5e940583dd0, limb2: 0xcdca5b44b5708fb75e277a0b, - limb3: 0x197734db8752e982455cec8 - } + limb3: 0x197734db8752e982455cec8, + }, }, G2Line { r0a0: u384 { limb0: 0x9658e94dff575b044fd12535, limb1: 0x9e633711f24267eeff96b84c, limb2: 0xd09be055097f3f4285b74b29, - limb3: 0xeba32ca0fdf04b16e700d02 + limb3: 0xeba32ca0fdf04b16e700d02, }, r0a1: u384 { limb0: 0xdac31a776bf2f2a7eb8d07b1, limb1: 0x99ff3b68fe53867aeee330e, limb2: 0xfc016b0e19f5a9dafe6150af, - limb3: 0x1853f7c388088cef95618ee7 + limb3: 0x1853f7c388088cef95618ee7, }, r1a0: u384 { limb0: 0x25afd3c9e43a6bd85d8f83da, limb1: 0x6636bcf8f7c4ffb03262b3ad, limb2: 0xfab2ea835f15ffa64289aee0, - limb3: 0x19a40512a2bc92b145d4a15f + limb3: 0x19a40512a2bc92b145d4a15f, }, r1a1: u384 { limb0: 0x457e5f8262a3fb1f68e2ee64, limb1: 0x2c8e29f8273ba32411548171, limb2: 0x6b7ec622d4cf5c7605c02c7f, - limb3: 0x16d592d1bda21aa16790c116 - } + limb3: 0x16d592d1bda21aa16790c116, + }, }, G2Line { r0a0: u384 { limb0: 0xd80a4ced539c150c77292976, limb1: 0xd1018cbfc2e4ad4590fdd9c5, limb2: 0x65eef4175a5f35f468647ff1, - limb3: 0xd47fd0789b1a92106cd2ad0 + limb3: 0xd47fd0789b1a92106cd2ad0, }, r0a1: u384 { limb0: 0xd0f1e84b8f833d7979a1154, limb1: 0x9ab45965049706c23a88af3a, limb2: 0xb0231a5c90a4e465df178981, - limb3: 0x14edfc6d170bd35b2c5c4da + limb3: 0x14edfc6d170bd35b2c5c4da, }, r1a0: u384 { limb0: 0xdc1d49daf3fc4c0995bc8e2d, limb1: 0x17d2159bae7cc0df66ddd2f1, limb2: 0x554dbdd1925e2b9c7e37a286, - limb3: 0x1660a21b43940b8c8015db0e + limb3: 0x1660a21b43940b8c8015db0e, }, r1a1: u384 { limb0: 0x251a422c67cfa51ded81106f, limb1: 0xae838377475ad4866ca7cf3a, limb2: 0x97c1cb95155232e345faaa6a, - limb3: 0x2730486142b7fc674f5426b - } + limb3: 0x2730486142b7fc674f5426b, + }, }, G2Line { r0a0: u384 { limb0: 0x1393c1940f25665663934fc8, limb1: 0xea7d0b2339e762ea1d7417bc, limb2: 0x38e8c939bcfc597914fa0bc4, - limb3: 0x10e5f821e745ef290f773399 + limb3: 0x10e5f821e745ef290f773399, }, r0a1: u384 { limb0: 0x3fb68057499c7406aa1ace48, limb1: 0x41257c93b17f3e38108e6f37, limb2: 0x6e97eb8687dab2a2a640c57f, - limb3: 0x14df29fafe098da44c7fd33 + limb3: 0x14df29fafe098da44c7fd33, }, r1a0: u384 { limb0: 0x59456b76c2b8257a9ee80887, limb1: 0xb92657cb2cd74cfb0e2e2af8, limb2: 0x74366a9ca17b733790bace94, - limb3: 0x18a62b6be3320f12ef9121ed + limb3: 0x18a62b6be3320f12ef9121ed, }, r1a1: u384 { limb0: 0xd05f8b04255c124be737ddfb, limb1: 0xcaf73bd136dd217b40f1b669, limb2: 0xda811888424a2ec800ca2f97, - limb3: 0x157c5205e1188acb79fbef71 - } + limb3: 0x157c5205e1188acb79fbef71, + }, }, G2Line { r0a0: u384 { limb0: 0x551d19a32197678e501a12c4, limb1: 0x3102f2c93053ce62da9a1b0b, limb2: 0x769adf2e8ae80c60c5c99139, - limb3: 0x14fe0b69dfab2ad91193c4a5 + limb3: 0x14fe0b69dfab2ad91193c4a5, }, r0a1: u384 { limb0: 0xe86cd19c62b7325309625290, limb1: 0x9512dfe7f8a0a85b5b129f5a, limb2: 0xe93b9e5ed1d785c66f3d5c64, - limb3: 0x65e688294775d76e5ab924f + limb3: 0x65e688294775d76e5ab924f, }, r1a0: u384 { limb0: 0x7dd30ad71ce6a81d732c1d0b, limb1: 0x352705fb9beba70b1561a320, limb2: 0x5f08143a55c4e1b470430252, - limb3: 0xb8154b1f10e74f69706d330 + limb3: 0xb8154b1f10e74f69706d330, }, r1a1: u384 { limb0: 0xc48c1339b316415bca3bb4cc, limb1: 0x510780292ce3d9843a65b76d, limb2: 0xbaba64e0ba594669eb8e95e3, - limb3: 0x6a3ff7eb4d1089f7273bf29 - } + limb3: 0x6a3ff7eb4d1089f7273bf29, + }, }, G2Line { r0a0: u384 { limb0: 0x54863ab6d50bc9ff4874b6e6, limb1: 0x937c0d4560eae2eee4b7ce1e, limb2: 0x337805ebca15d19f40277942, - limb3: 0x10ff70c91cbb8869a0659bf2 + limb3: 0x10ff70c91cbb8869a0659bf2, }, r0a1: u384 { limb0: 0x7b3cfe640c29faece9a85e53, limb1: 0xcddbe3decddda92adfd9039a, limb2: 0x42f145b0f85554ee195ae299, - limb3: 0x1951ff3142b9a208e5e69e59 + limb3: 0x1951ff3142b9a208e5e69e59, }, r1a0: u384 { limb0: 0x94a7ee20add6c18015e26733, limb1: 0xd0f2a6ab15fefff1caa7366a, limb2: 0x9c055a1d93c3f27e46d0b3da, - limb3: 0x60f554e35125b7f5d7aac8b + limb3: 0x60f554e35125b7f5d7aac8b, }, r1a1: u384 { limb0: 0xd92e5b001022ee7874cbebeb, limb1: 0x4aed0fd23b92aebc139f77db, limb2: 0xd2bca1fe5ad39a274c9dfeec, - limb3: 0xcfab0e5b8e8d7c7a8765b15 - } + limb3: 0xcfab0e5b8e8d7c7a8765b15, + }, }, G2Line { r0a0: u384 { limb0: 0x101a676fbbe065b8b0413cd0, limb1: 0xd7be780e12266c035435d9ad, limb2: 0xd7fdc11fb76bab59a38fdb76, - limb3: 0x188fd7a942ff955e8dedd5cc + limb3: 0x188fd7a942ff955e8dedd5cc, }, r0a1: u384 { limb0: 0xf4267e2accb1a831f299e5ef, limb1: 0xc72c0e3ca886a34323f98177, limb2: 0x3944a21e29b7d7482c48c0a2, - limb3: 0x19e2d02a05f168b8c487fced + limb3: 0x19e2d02a05f168b8c487fced, }, r1a0: u384 { limb0: 0xa7c84f708c6c422e0b09d8be, limb1: 0x8262fa2f39a6188d2d55dbf1, limb2: 0xdfa1e441b0e33621ff08a9fc, - limb3: 0x16835a4c15044f6074fb2395 + limb3: 0x16835a4c15044f6074fb2395, }, r1a1: u384 { limb0: 0xe4e0728b3d36c7178fd1c85, limb1: 0x8dc9951af0d0d139b48a6a19, limb2: 0xef3bffc1480b3d46ce6884aa, - limb3: 0x10cba92e51537ca3cb71c662 - } + limb3: 0x10cba92e51537ca3cb71c662, + }, }, G2Line { r0a0: u384 { limb0: 0x21805f763874894483dc214c, limb1: 0x2c02b4ccd505fbbb8d8bd064, limb2: 0xe32a1465866e01898f1f3b14, - limb3: 0x15d2f6b35415870ddc7054f2 + limb3: 0x15d2f6b35415870ddc7054f2, }, r0a1: u384 { limb0: 0xf6749d4bc9865ee9e261110a, limb1: 0x81c4e72fdd8802ef73ab15ef, limb2: 0xb89ca852d2ba8b3590cd5301, - limb3: 0x183abed5b2d1d128fa596426 + limb3: 0x183abed5b2d1d128fa596426, }, r1a0: u384 { limb0: 0xf71ebb04aab85e83aec862c0, limb1: 0xf473b3e5a56fd96d60f8a264, limb2: 0x3e4b66f8493911a4a00afa1e, - limb3: 0x12be1dc90541ee9c7cb4fa59 + limb3: 0x12be1dc90541ee9c7cb4fa59, }, r1a1: u384 { limb0: 0xba5f7a9ccd0748c2fa4e54c8, limb1: 0x1640f7800984bafe7fa1a76d, limb2: 0x48e76aab062b19911f92bcd, - limb3: 0x72cecd9e5c7c437cbbc1e4a - } + limb3: 0x72cecd9e5c7c437cbbc1e4a, + }, }, G2Line { r0a0: u384 { limb0: 0x3856dc19dfda21ef560eb176, limb1: 0x932f2c020e0784cc0b8e2582, limb2: 0x9efd70aa14438ded0e7dfcc6, - limb3: 0xa60015a3a9584830c4ff86c + limb3: 0xa60015a3a9584830c4ff86c, }, r0a1: u384 { limb0: 0x4449acbaeda777c3805d02a7, limb1: 0xc1bfdc4d4b74f4fdaf35202d, limb2: 0x4aeb28b040467a2dc5803704, - limb3: 0x1993ceccd531b2a68cefc981 + limb3: 0x1993ceccd531b2a68cefc981, }, r1a0: u384 { limb0: 0x942f300d9689f481285d418a, limb1: 0x6df8e92708f641bf87425ab4, limb2: 0xcc53e2815e0e9c8c8771ecd9, - limb3: 0x152fd67eeca4f89f468127f7 + limb3: 0x152fd67eeca4f89f468127f7, }, r1a1: u384 { limb0: 0x8babc72b284c008ffe395a3c, limb1: 0xa9986da25d6c33d1781a02e2, limb2: 0xfcf47ee90047077c0ecf5120, - limb3: 0xb04a2d97df30a6a7673d205 - } + limb3: 0xb04a2d97df30a6a7673d205, + }, }, G2Line { r0a0: u384 { limb0: 0x1f078a90be515d55a39025dd, limb1: 0xa69e73a9a0f2894ad32c28d8, limb2: 0x406d92af351a91a43b294110, - limb3: 0xab36c91eeeaabb24820b390 + limb3: 0xab36c91eeeaabb24820b390, }, r0a1: u384 { limb0: 0x873b5a72e8ea0e7d255b970a, limb1: 0xf64973cbec18695bfc945495, limb2: 0x533e34319846e866ad7ddd36, - limb3: 0x1029fa62305109a4d20176b9 + limb3: 0x1029fa62305109a4d20176b9, }, r1a0: u384 { limb0: 0x429cba0cb76b0c492577722a, limb1: 0x771bc089fee5e3632dbffa1a, limb2: 0xa7c64b6f38e532de16959d0d, - limb3: 0xf38b71fb4269dd2e038223a + limb3: 0xf38b71fb4269dd2e038223a, }, r1a1: u384 { limb0: 0xddc796c5033428b0b8111c4f, limb1: 0x60ad337fb316c52ef8de0b21, limb2: 0x951808daa18d3ec520bd6279, - limb3: 0x3455cf600b5f6c549f38f14 - } + limb3: 0x3455cf600b5f6c549f38f14, + }, }, G2Line { r0a0: u384 { limb0: 0xc431f00ed9ace3016fb073c9, limb1: 0x5ae25790d51ab15f49a22131, limb2: 0x901a956cb84b3957b3a84e64, - limb3: 0x2e0a35d40d9a1a94b3497b6 + limb3: 0x2e0a35d40d9a1a94b3497b6, }, r0a1: u384 { limb0: 0xc7231eba998997f68e57ceda, limb1: 0x20d31de71c175ad7214de622, limb2: 0x158aeffac71897dcc253069f, - limb3: 0x16e88228b697db4f6c224b34 + limb3: 0x16e88228b697db4f6c224b34, }, r1a0: u384 { limb0: 0xfa62c8122e911349b00f63f0, limb1: 0x45308aa0b0564ebd07848a22, limb2: 0x487ab0912d2d5ab27c7795dd, - limb3: 0x11a0c48848f0d7b20b46fa15 + limb3: 0x11a0c48848f0d7b20b46fa15, }, r1a1: u384 { limb0: 0xe26fabf8b78e9f83692cff15, limb1: 0xf65d91db0bceb59d3adb17ae, limb2: 0x116f3ba0a3285c727189a385, - limb3: 0x7587cc9d7fbe80757df4ca0 - } + limb3: 0x7587cc9d7fbe80757df4ca0, + }, }, G2Line { r0a0: u384 { limb0: 0x8deb02d48f2ee3be7ae899ed, limb1: 0x4b66f01a40c86e83fded6847, limb2: 0x9c08bb4fe0abcaefc921a40, - limb3: 0x8bda1d762c986632aeaca1e + limb3: 0x8bda1d762c986632aeaca1e, }, r0a1: u384 { limb0: 0x72be08cacb4795f5ddd8497f, limb1: 0xfaddee2a55b5154b35e26966, limb2: 0x7c67f5884f061f219cb8ff55, - limb3: 0x6d4fe75b0153bdec12dba82 + limb3: 0x6d4fe75b0153bdec12dba82, }, r1a0: u384 { limb0: 0xc235fffbfefdf8e9ef54d2bc, limb1: 0x6581ebd151a1e73c53b163cb, limb2: 0xf60ffd0dd3608c742fba7902, - limb3: 0xe9437af3be8b35cbae1f171 + limb3: 0xe9437af3be8b35cbae1f171, }, r1a1: u384 { limb0: 0xdb98cff46b3033365ae5b731, limb1: 0x19f3ec2adf9517d4533cdf7c, limb2: 0xa60fbca3376090bf8f17f4b9, - limb3: 0x169bff5211482ee5e64f50ae - } + limb3: 0x169bff5211482ee5e64f50ae, + }, }, G2Line { r0a0: u384 { limb0: 0x7f3e552c73b94ea5aca6813a, limb1: 0x5b9fb1191df92133f21209d2, limb2: 0xed1129c457c9879b802641a3, - limb3: 0x19ac6d2e632d656188368724 + limb3: 0x19ac6d2e632d656188368724, }, r0a1: u384 { limb0: 0x4e5019a71576de9d1b3b34e9, limb1: 0x8a250f675e1a5c87b1cafeed, limb2: 0x1f045e71d9147c0c2a877e9, - limb3: 0x971468e238ef09daf2a1503 + limb3: 0x971468e238ef09daf2a1503, }, r1a0: u384 { limb0: 0x3da11ff3ac1dc5d5f3787156, limb1: 0x41d8b0def9b93b1a5da143b0, limb2: 0xfc9aa67ffbf77864568ad693, - limb3: 0x14f2603e77b3d32b5eedb50f + limb3: 0x14f2603e77b3d32b5eedb50f, }, r1a1: u384 { limb0: 0x75d221048a3c1136668545d8, limb1: 0xbf498d49345585ec9ec0151c, limb2: 0x87fab9b2ed3acc02eb3065e7, - limb3: 0x4ab44ace239f75c81b269a6 - } + limb3: 0x4ab44ace239f75c81b269a6, + }, }, G2Line { r0a0: u384 { limb0: 0x89eec90cedffb5559d9f7cd6, limb1: 0x838145c7842da8419fcaba0e, limb2: 0xa322ce58631513aed92ce0df, - limb3: 0x5a79df85b0a96adf6e2dab8 + limb3: 0x5a79df85b0a96adf6e2dab8, }, r0a1: u384 { limb0: 0xf36133a552f9211634fe2feb, limb1: 0x712f911d31ea73387b467687, limb2: 0xfb3d98acbbe375c161f9d2a8, - limb3: 0x11b7c924610a8268c34b8259 + limb3: 0x11b7c924610a8268c34b8259, }, r1a0: u384 { limb0: 0x50e7cae27aa8b11d0d2bfe43, limb1: 0xf88979ed0a59e7daa98895c9, limb2: 0xdf00ec512e87f5862a699c22, - limb3: 0xcad7fd28c40cc541a820fe4 + limb3: 0xcad7fd28c40cc541a820fe4, }, r1a1: u384 { limb0: 0x936b0157ffd80fabb32930f9, limb1: 0xc6bffa14bca99e467c671b75, limb2: 0x609410c23cb1d2ce4e5e9242, - limb3: 0x5aeec94c1d7d2fb257ce4f7 - } + limb3: 0x5aeec94c1d7d2fb257ce4f7, + }, }, G2Line { r0a0: u384 { limb0: 0x25287a87c1b2c3c6b31918d2, limb1: 0xe370de594155a8f78023525d, limb2: 0xfc32f19a5634c28d0fdade43, - limb3: 0x11e418fce45f7a3c6e512efa + limb3: 0x11e418fce45f7a3c6e512efa, }, r0a1: u384 { limb0: 0x75d5d71838d8ea9715fe06d7, limb1: 0xa80c2c0bffa400aba5251040, limb2: 0xc0278abc40904092e90b6e66, - limb3: 0x108ef6d09cde908ef27196e3 + limb3: 0x108ef6d09cde908ef27196e3, }, r1a0: u384 { limb0: 0xea269f730e5fe202ad27713a, limb1: 0xe4c1f7d6b6c0b1f42caabd9d, limb2: 0xfe90faef2c44002d8cc77466, - limb3: 0x11fc2e9b168eebd97097581e + limb3: 0x11fc2e9b168eebd97097581e, }, r1a1: u384 { limb0: 0x36ca7984ec68a9173c99469d, limb1: 0xbbea51c381392b3f2b8b23a1, limb2: 0x24151a6b372c24850563fe68, - limb3: 0xcc41f12dd415378503ddbf1 - } + limb3: 0xcc41f12dd415378503ddbf1, + }, }, G2Line { r0a0: u384 { limb0: 0xa05df784a5a683833d2e1464, limb1: 0x544aef13d7757e76ac4a6a2c, limb2: 0x337b308d7d37a5e715e2c6a7, - limb3: 0x1971f0b4a71e609b35922e78 + limb3: 0x1971f0b4a71e609b35922e78, }, r0a1: u384 { limb0: 0x9afd8643829c2749745e919d, limb1: 0x3fe5162dcc95efeedb645acb, limb2: 0x771a45a92c45f43bb070b7fd, - limb3: 0x503aa962b29d72a5d9f6cf2 + limb3: 0x503aa962b29d72a5d9f6cf2, }, r1a0: u384 { limb0: 0x8e80c44f884a20fe7070ea42, limb1: 0x78c55b9104f9b5b599cf0cf7, limb2: 0x6aa9312bbcf5dad8ca58d47c, - limb3: 0xa42156c0b189a8b23065b2c + limb3: 0xa42156c0b189a8b23065b2c, }, r1a1: u384 { limb0: 0x507ea5597266a41fa17c0e3e, limb1: 0x61ca6c9ff959cacbd2e0502f, limb2: 0xe921d3d10d8336d32c718050, - limb3: 0x15bd96df3160aaf601255ae2 - } + limb3: 0x15bd96df3160aaf601255ae2, + }, }, G2Line { r0a0: u384 { limb0: 0xa71edee844109581d751e805, limb1: 0xb8a00b098913a289f078c56d, limb2: 0x6da478fc532b7fca09418a40, - limb3: 0x1191d99b1ef0e58862d80422 + limb3: 0x1191d99b1ef0e58862d80422, }, r0a1: u384 { limb0: 0x75c2f440eb09724c5176a9d0, limb1: 0xab65773d99721ebb172611d0, limb2: 0xa99eaa66657366b3e9a3e3b5, - limb3: 0x15c7e46ba45790e4ec829ff + limb3: 0x15c7e46ba45790e4ec829ff, }, r1a0: u384 { limb0: 0x12c4394ba8b401e3d2cdee10, limb1: 0x8d9953e7ef6751d3e9bea36d, limb2: 0x10a977ee7f951ac566733a4f, - limb3: 0x16a460e20580c71c1c0744c2 + limb3: 0x16a460e20580c71c1c0744c2, }, r1a1: u384 { limb0: 0x9b4d92a98ad79937fb74c008, limb1: 0xa800cb5b3af4b7be504667bb, limb2: 0xb141cfd96b37e06a8df4fcdb, - limb3: 0x128942ad0ff6774eac6dca11 - } + limb3: 0x128942ad0ff6774eac6dca11, + }, }, G2Line { r0a0: u384 { limb0: 0xbb42fc51b2f0d50a3d7a6796, limb1: 0xfcbc9d2df3136cbd1a372ac4, limb2: 0xea313e60d4b8240679b0175e, - limb3: 0x1657a4b33e1400ef6e296282 + limb3: 0x1657a4b33e1400ef6e296282, }, r0a1: u384 { limb0: 0xaf91b402ecc6cf1a742796cf, limb1: 0xab44b72c1fc2f89b5eaa0345, limb2: 0x9f6a20404576105e15a4930c, - limb3: 0x10992497f5f8bf4451121322 + limb3: 0x10992497f5f8bf4451121322, }, r1a0: u384 { limb0: 0xd9355bfe72d92c6a0950eafd, limb1: 0x89de0bfbfd06c9911cb2d6fb, limb2: 0xe2092d1e99ab65a7a33ba1cd, - limb3: 0x1c317a68eeef4d833e396de + limb3: 0x1c317a68eeef4d833e396de, }, r1a1: u384 { limb0: 0x631d3efa10e591b7ebcb8dbc, limb1: 0x6a4a0815d19cf339e4663ba9, limb2: 0xe2fb7d9878d26c7c97299a01, - limb3: 0x4c4dc455aad226b744ebdd4 - } + limb3: 0x4c4dc455aad226b744ebdd4, + }, }, G2Line { r0a0: u384 { limb0: 0x363f9f6e9d53eca0328e6c4c, limb1: 0x43eec7c74e3ff2fa2180ef98, limb2: 0xc59a9948223dbc16b551291f, - limb3: 0x284cfe02b07d3ff39333c3d + limb3: 0x284cfe02b07d3ff39333c3d, }, r0a1: u384 { limb0: 0xea6c388e24151607794c7237, limb1: 0x7943928adc33394fb552687f, limb2: 0x76103a90d6ab3bee6e576dbb, - limb3: 0x17eec2ea2baa42a1bf9e89fb + limb3: 0x17eec2ea2baa42a1bf9e89fb, }, r1a0: u384 { limb0: 0x93b180c3b870b89a8483888a, limb1: 0x16af0053338af8df2cd3e9ce, limb2: 0xbf7031c6cce8d2490b7ab5bb, - limb3: 0x164ea73315847832dfc59d1c + limb3: 0x164ea73315847832dfc59d1c, }, r1a1: u384 { limb0: 0x2687d52f75d77442d4eb40fc, limb1: 0x933ac245443011fac81f5ea0, limb2: 0xa5b52ffa9e6d58739784a7fc, - limb3: 0x19fe25a70e38b245e579dbf2 - } + limb3: 0x19fe25a70e38b245e579dbf2, + }, }, G2Line { r0a0: u384 { limb0: 0xe51e461db9c85f42519fea6, limb1: 0x234a9695204bd44f55ea4de6, limb2: 0xc8d34c6b4580edfc55e023b1, - limb3: 0x16691c1bdf57ba041abb3d97 + limb3: 0x16691c1bdf57ba041abb3d97, }, r0a1: u384 { limb0: 0xa81022cb0b3b0c523ae71819, limb1: 0x47f7df16fff0877b21676607, limb2: 0xdee4fe1d3c64b3fedec56326, - limb3: 0xcfbf5ccb325675b1a3becef + limb3: 0xcfbf5ccb325675b1a3becef, }, r1a0: u384 { limb0: 0x6d42b9d9e765f92b0817551, limb1: 0x352adc09dd7760a5f4208a1e, limb2: 0x5397846e3fff77f500da6dbc, - limb3: 0xe26d685c4365e342109d0ba + limb3: 0xe26d685c4365e342109d0ba, }, r1a1: u384 { limb0: 0x9bc1051782d84793806d878b, limb1: 0x1642edf27f040ad57feb6f89, limb2: 0x11a5d3523a88580869d28ca2, - limb3: 0xd22ff50c5a9bd729115a889 - } + limb3: 0xd22ff50c5a9bd729115a889, + }, }, G2Line { r0a0: u384 { limb0: 0xe4efea113446e8fd94f1eea8, limb1: 0xcb18c21d8448136352da4336, limb2: 0xfc8cdfdaea1682e6fd084488, - limb3: 0xfc8dd7ffecc5c9c8a69491d + limb3: 0xfc8dd7ffecc5c9c8a69491d, }, r0a1: u384 { limb0: 0x263cdfc966929543ffe7f0a1, limb1: 0xaa611b31adcfed73c638211a, limb2: 0x42cdea07a698860d491399b, - limb3: 0x4d0e0f7ef49a732e7480260 + limb3: 0x4d0e0f7ef49a732e7480260, }, r1a0: u384 { limb0: 0xd6d8da1b24a4d916d664dba5, limb1: 0x8eb3998d61387861f1455690, limb2: 0xae1c21768b9aa7f3e94df161, - limb3: 0x3cc2fe6e6345650436278fb + limb3: 0x3cc2fe6e6345650436278fb, }, r1a1: u384 { limb0: 0x3d6ed02228497455788a84b7, limb1: 0x5671f2ed36be99f2c0aa4b99, limb2: 0x64f760aec59aec125ee684b8, - limb3: 0x72922fee279ca672ae012c - } + limb3: 0x72922fee279ca672ae012c, + }, }, G2Line { r0a0: u384 { limb0: 0x30d36077b6d0262e218111c1, limb1: 0xc74774ca1af660eaed4d8329, limb2: 0x6448cecfde912a7d2029dbc, - limb3: 0xe743528ce0c94e1a76f2f60 + limb3: 0xe743528ce0c94e1a76f2f60, }, r0a1: u384 { limb0: 0xe1f8a574cee0dad622d6fead, limb1: 0xcd681358d077b827cc148be2, limb2: 0xc8fb346621601764fa91b40a, - limb3: 0x133d21c52017365921207d63 + limb3: 0x133d21c52017365921207d63, }, r1a0: u384 { limb0: 0x5cb088f57e1e3f6a62571b37, limb1: 0x4089cdf0fb67a7b1d79838b3, limb2: 0x62401a2e57abb0652e0fee81, - limb3: 0xcc83c46ac38241e1c33aca2 + limb3: 0xcc83c46ac38241e1c33aca2, }, r1a1: u384 { limb0: 0xfd94f04ec006d63b4825ecfa, limb1: 0x96ef1f9240c32fdc393b81e2, limb2: 0x6d46c2685a1a1c50e84c8b24, - limb3: 0x1528bf72bee83f2c80884dd2 - } + limb3: 0x1528bf72bee83f2c80884dd2, + }, }, G2Line { r0a0: u384 { limb0: 0x967edf63810f66378035d9a9, limb1: 0xbb41210c71a8e730070081a4, limb2: 0x2b3e319d53a9ed42860fa77f, - limb3: 0x6278b145b3c7a6a3036ea47 + limb3: 0x6278b145b3c7a6a3036ea47, }, r0a1: u384 { limb0: 0xaf80f0c00386668cb5abd055, limb1: 0x65fd0d8e2a2e33029c34cd23, limb2: 0x248c0e19a9bf0ed6ee322967, - limb3: 0x15b221eee9671d26db719f3 + limb3: 0x15b221eee9671d26db719f3, }, r1a0: u384 { limb0: 0x84c7a67ad0a0908ffed8fa8d, limb1: 0x36968614bc1f3278ab15d41b, limb2: 0xafbcdf72844d192abdb3ed34, - limb3: 0xb4edb23cae78d3d9b83472a + limb3: 0xb4edb23cae78d3d9b83472a, }, r1a1: u384 { limb0: 0xcd0ab14fee3b152169cc5f6a, limb1: 0xf7e829100f6fe0680a97d094, limb2: 0x733af72dfcd1b57ddb6a0304, - limb3: 0x1418dc868da9b223b09467e8 - } + limb3: 0x1418dc868da9b223b09467e8, + }, }, G2Line { r0a0: u384 { limb0: 0x8f8bf2310745715d8e60675, limb1: 0xe7983befc104f7bd4886ad3a, limb2: 0xd6b5d3a93563b2103c29cec1, - limb3: 0x1902b1e10713c8d95829b014 + limb3: 0x1902b1e10713c8d95829b014, }, r0a1: u384 { limb0: 0x392c934ad398e9471a2a3e6f, limb1: 0xc81c0dc22eff61dca36ea27f, limb2: 0x4605027ef09f9b7d03fcc1c2, - limb3: 0x142c2105c569b0e7aee457f1 + limb3: 0x142c2105c569b0e7aee457f1, }, r1a0: u384 { limb0: 0x86fc12d4ddb34349e58e0713, limb1: 0x9a132e3db41060771e480d9f, limb2: 0x6e00f3b7a9cbdf6ba01f3694, - limb3: 0xf3f4843686de973131d67ee + limb3: 0xf3f4843686de973131d67ee, }, r1a1: u384 { limb0: 0xf7b6328930ed21138fcd8f92, limb1: 0x354fd9f9ec8f828426279c4c, limb2: 0x3df938a725947d029e1edf6f, - limb3: 0x1143440784148d84b5ae0952 - } + limb3: 0x1143440784148d84b5ae0952, + }, }, G2Line { r0a0: u384 { limb0: 0xb17b80c761f951e735a2d041, limb1: 0xafc877c0c04208f63bf8a886, limb2: 0x153ba811a82f51f9aa3b6016, - limb3: 0x184116d06dccf1c2017108ad + limb3: 0x184116d06dccf1c2017108ad, }, r0a1: u384 { limb0: 0x4c7b228ff22ef777b4f4ffe6, limb1: 0x8a18bc657a788290b4a1a781, limb2: 0x2222b3823a8b65258b2ef246, - limb3: 0x55c2710bd65597460c0f6b + limb3: 0x55c2710bd65597460c0f6b, }, r1a0: u384 { limb0: 0x81df44a2a9b9e826d77b92d3, limb1: 0xad7a849671b36dcbfca86928, limb2: 0x18fffc9503099b88e7cac1c1, - limb3: 0x315cb565ecea51d7c74a7d6 + limb3: 0x315cb565ecea51d7c74a7d6, }, r1a1: u384 { limb0: 0x39e35c74aeb90d9fffb28774, limb1: 0x91c388c611ba957ed3ed4f81, limb2: 0xbfbc4f99e318cbc41997f64b, - limb3: 0x862e32a5891b9194a707270 - } + limb3: 0x862e32a5891b9194a707270, + }, }, G2Line { r0a0: u384 { limb0: 0x8acd42eff277e12a1c665cd8, limb1: 0xc8dd9dfb56ea54ca5c9d26e6, limb2: 0x803b24ff12a9cd7524a26b87, - limb3: 0x27b1b3c904791e3fa942dcd + limb3: 0x27b1b3c904791e3fa942dcd, }, r0a1: u384 { limb0: 0x7a880435688221e820d4164e, limb1: 0x9754d630e027f9217dd0fba6, limb2: 0xee6cbf6da2000115b0cca0d8, - limb3: 0x162f5c264c2d2728aaa1f652 + limb3: 0x162f5c264c2d2728aaa1f652, }, r1a0: u384 { limb0: 0x314a0d54f7db63dcd3d6c0e0, limb1: 0x793c614f53a688375ca369e8, limb2: 0x296c4ccd5f785e294abeb492, - limb3: 0x20d58632925a8df2d3d48bd + limb3: 0x20d58632925a8df2d3d48bd, }, r1a1: u384 { limb0: 0x82c581e26e2e612aceaca787, limb1: 0xe02d73cc25449c92dfd7f088, limb2: 0x732270a5ec065ff678b3666e, - limb3: 0x17e813008da019a1fab544c - } + limb3: 0x17e813008da019a1fab544c, + }, }, G2Line { r0a0: u384 { limb0: 0x73932e90ae81b714f637b41, limb1: 0xd8f3711a8fd93fd72b37a9cc, limb2: 0x8f6ada570f26c1e6a53f2861, - limb3: 0x5731c6aa600bd4532b267cc + limb3: 0x5731c6aa600bd4532b267cc, }, r0a1: u384 { limb0: 0x8a8109f0ca0fb9562c4d64ce, limb1: 0xbf3993ec4da2f3066fc4d1a8, limb2: 0x82967409e5b8929a76f60185, - limb3: 0x312bc2fe319294c401a076d + limb3: 0x312bc2fe319294c401a076d, }, r1a0: u384 { limb0: 0x56ddd8c196371fb0093419b, limb1: 0x806528309800613a1b0c9257, limb2: 0x807a35a60f04f01393185f4d, - limb3: 0xccbed56d82049855d897609 + limb3: 0xccbed56d82049855d897609, }, r1a1: u384 { limb0: 0x2e1a6d5e5b690ebddb441dd2, limb1: 0xf56e9d8601eb09c2491a54d, limb2: 0xeb1109351a3c57b119c23f9b, - limb3: 0xff06fbf0813213028c7e555 - } + limb3: 0xff06fbf0813213028c7e555, + }, }, G2Line { r0a0: u384 { limb0: 0x4a074239eac7dc93b8113ddd, limb1: 0x64192efc9a09299ad173b34e, limb2: 0x3e86b7943ceda2cc678e6719, - limb3: 0x13a3cf500109646aac4d69e3 + limb3: 0x13a3cf500109646aac4d69e3, }, r0a1: u384 { limb0: 0x89c20af4b5a694d4d6d9d45d, limb1: 0x76071bd0d45623a4cfe9647, limb2: 0xbaeda04445ec73fe1fd859d6, - limb3: 0x12f734fc3463dc7adb90dccb + limb3: 0x12f734fc3463dc7adb90dccb, }, r1a0: u384 { limb0: 0xa12928a1d5d6408853a05ae7, limb1: 0xa8fc3f1aa38f3d6554357b31, limb2: 0xbb5e7127cb9669d52daff069, - limb3: 0x525a9e909f39cb2e32cb71a + limb3: 0x525a9e909f39cb2e32cb71a, }, r1a1: u384 { limb0: 0x2bf733d3a23d1446da39720e, limb1: 0x69c363f32dc0ed3a22acc728, limb2: 0x3eb64a364ee2cb63222dc046, - limb3: 0x1e78c4855ad25e4e08ba1eb - } + limb3: 0x1e78c4855ad25e4e08ba1eb, + }, }, G2Line { r0a0: u384 { limb0: 0x9f063deced8ca77530af3f4c, limb1: 0x144bdfaa00467ce19a578f40, limb2: 0x3953497d0771124d9b67e427, - limb3: 0x12edfb0c935168616a313c49 + limb3: 0x12edfb0c935168616a313c49, }, r0a1: u384 { limb0: 0x10dc1d7902422eab8ec34907, limb1: 0x12d2e25b0784cd54e8882aa, limb2: 0x6c8797bc383b2c8d8dcbe8ae, - limb3: 0x9d9bc82c6c7d33addea4394 + limb3: 0x9d9bc82c6c7d33addea4394, }, r1a0: u384 { limb0: 0x8ad26ea41a8e5290d3cfe9df, limb1: 0x1477ceb694cc8d76e65b3892, limb2: 0x6f7feca1d527322d8f55c7d9, - limb3: 0xe209e705b596e62d29d30f5 + limb3: 0xe209e705b596e62d29d30f5, }, r1a1: u384 { limb0: 0x388372fda80402fd47838445, limb1: 0xfc177a37cf1bab02000be775, limb2: 0xe42caa0cb14387e64244843b, - limb3: 0x32e8d8f3a7bf87f74c34b23 - } + limb3: 0x32e8d8f3a7bf87f74c34b23, + }, }, G2Line { r0a0: u384 { limb0: 0x1ed40e3c2cfcc055cd4958d6, limb1: 0xd1453a4587d6c2ca2341043e, limb2: 0xf79c2172e21b91ba79a5ea2d, - limb3: 0x65c82633f9d4d20c07f6ad4 + limb3: 0x65c82633f9d4d20c07f6ad4, }, r0a1: u384 { limb0: 0xc8398341fc07277f183c17d5, limb1: 0x86bc2e62775af5eae61d9aa, limb2: 0x403276e7635ed1cd34473d3d, - limb3: 0x18a18bd0be954bbff600c7c1 + limb3: 0x18a18bd0be954bbff600c7c1, }, r1a0: u384 { limb0: 0x8b17fbda26b7133b0600c51e, limb1: 0x48147de60df80344b55d8fb8, limb2: 0xa0e018e36cfa14e2a39e57fe, - limb3: 0x70aed2d475ad180844d7587 + limb3: 0x70aed2d475ad180844d7587, }, r1a1: u384 { limb0: 0xf1d8e65deba9a3605b50946b, limb1: 0x3677c5769dea1762e0a3a25d, limb2: 0x5d4399ba6a9742e8f2aa1928, - limb3: 0x2d57160d6c66d1e0c2f0c0 - } + limb3: 0x2d57160d6c66d1e0c2f0c0, + }, }, G2Line { r0a0: u384 { limb0: 0xd0df9414ab14375fa6806880, limb1: 0xca2fbde48dfa612dd7651818, limb2: 0x94d4d577683866abf9418786, - limb3: 0x7276c58d38d334aeb17d21d + limb3: 0x7276c58d38d334aeb17d21d, }, r0a1: u384 { limb0: 0x33624773e56782652526199f, limb1: 0xb8b611175cbe6c3cffc5ac81, limb2: 0xed0e2567d17dff5ac900f3cd, - limb3: 0x98cb18ca7165c32cd3cc152 + limb3: 0x98cb18ca7165c32cd3cc152, }, r1a0: u384 { limb0: 0x2dc597c44838dee671473465, limb1: 0x42ece025c559c8181b720c1e, limb2: 0xa5788ae10bc5c64c059e3798, - limb3: 0x16539b3c5dec7ca770e60c8b + limb3: 0x16539b3c5dec7ca770e60c8b, }, r1a1: u384 { limb0: 0x4910c40e6111f70dcb5d6293, limb1: 0x72177ec41f90ef3573b914af, limb2: 0xfcdb8e13aecc36bc984d7dad, - limb3: 0x13b535802eb52f78f52b67aa - } + limb3: 0x13b535802eb52f78f52b67aa, + }, }, G2Line { r0a0: u384 { limb0: 0xe6882416d7bc0be138e4eeb2, limb1: 0x1ffc8c27a2046327376e250, limb2: 0xf96a7955cf8a3345e89477c1, - limb3: 0x31ae02e34d7d21957899dbe + limb3: 0x31ae02e34d7d21957899dbe, }, r0a1: u384 { limb0: 0x148232d34a8da37b7adc99a7, limb1: 0xd0a0095db108dfd24e92848f, limb2: 0x89fb49e1a36591a6b189f964, - limb3: 0x1900bee131450e7d7a914ea4 + limb3: 0x1900bee131450e7d7a914ea4, }, r1a0: u384 { limb0: 0x97018429f16d24bc1e7f8af0, limb1: 0x1f68aaf8291a6decfb708b43, limb2: 0x1f700e88b537bffef39907e4, - limb3: 0x9cb633f82c6e595f1785e5e + limb3: 0x9cb633f82c6e595f1785e5e, }, r1a1: u384 { limb0: 0xd8d9d3a12a0dd7b129ffda0, limb1: 0x7a94e9da792505fe4fbdb0da, limb2: 0xf16eaac379266d5a4210e839, - limb3: 0xc24197c1ceaa3dd3de58b21 - } + limb3: 0xc24197c1ceaa3dd3de58b21, + }, }, G2Line { r0a0: u384 { limb0: 0x5121ed1a88616e4d4db0595f, limb1: 0x33dbd46ed7b06175cf41f23e, limb2: 0xae1887221e200e7b0b2dd28f, - limb3: 0x179fae6949c974ac074721d7 + limb3: 0x179fae6949c974ac074721d7, }, r0a1: u384 { limb0: 0xec69c8ab1d267c9a6a6d05f7, limb1: 0xa25badc2829f833ff2ba42c0, limb2: 0x64aa44e985590c9763d34b19, - limb3: 0x13f17206143b411a732e3c25 + limb3: 0x13f17206143b411a732e3c25, }, r1a0: u384 { limb0: 0x33b78c61366dc7410c76b8f2, limb1: 0x3a9f753c7f24e8f6f4fd395f, limb2: 0xa6211e1c84e26ce0a0835268, - limb3: 0xce1328e759d3bc77c72f6b2 + limb3: 0xce1328e759d3bc77c72f6b2, }, r1a1: u384 { limb0: 0xb82a77bba83aa44b3fe6d3c5, limb1: 0x7a2266cc1586e32b4ce8c11b, limb2: 0x6faabb2d25781b305c25694d, - limb3: 0x13ac4d9a6834b95da26fa06b - } + limb3: 0x13ac4d9a6834b95da26fa06b, + }, }, G2Line { r0a0: u384 { limb0: 0x6231a3597b09b6d5fda5c712, limb1: 0x3f3bd12ca9ef48ef6199a7f4, limb2: 0x6883383b5a445ca79fc407ee, - limb3: 0x141accc8970ace156fe95a36 + limb3: 0x141accc8970ace156fe95a36, }, r0a1: u384 { limb0: 0xe0c805067330b20430c585c8, limb1: 0x8ff3e0c3028ea8f24ee6fb30, limb2: 0xa368fc9a21efabd91ace37d9, - limb3: 0x18b35a8fd65ba4cbd734a0ee + limb3: 0x18b35a8fd65ba4cbd734a0ee, }, r1a0: u384 { limb0: 0xf4e1f73d2ed7ccded6c419de, limb1: 0xf379cd28811f89aeea7aee67, limb2: 0x727c64c0e714ab6ea82391e8, - limb3: 0xf454aa00efef9460f382b49 + limb3: 0xf454aa00efef9460f382b49, }, r1a1: u384 { limb0: 0x952793660f1fe4300657022a, limb1: 0xe8fa6c2b1aa542384940d1ec, limb2: 0x5a1f19c729b4b225b1501e31, - limb3: 0xa5b1272b68436f9433d112f - } + limb3: 0xa5b1272b68436f9433d112f, + }, }, G2Line { r0a0: u384 { limb0: 0xb5c7f333fb77fb640c54d364, limb1: 0xb370f382462c835aab5cc997, limb2: 0x3d5c94deb689f57008552a5c, - limb3: 0x11ae8eb40f5e055e30da56e3 + limb3: 0x11ae8eb40f5e055e30da56e3, }, r0a1: u384 { limb0: 0x67851527c4720d34d6bcaaa8, limb1: 0x924dd3f263abdaf7b83f876b, limb2: 0xae1834310910f611638e9935, - limb3: 0xc901716635675ee60505d5d + limb3: 0xc901716635675ee60505d5d, }, r1a0: u384 { limb0: 0xe65e10fdcc7035244523c278, limb1: 0x6d6579ed84fe7ac624373c96, limb2: 0x216959b27efc3c4aef7344d3, - limb3: 0x16ea4125e47ade4a534b117d + limb3: 0x16ea4125e47ade4a534b117d, }, r1a1: u384 { limb0: 0xd4486351851ac10086e252a6, limb1: 0x71da57cafc2206d7b9f3e19c, limb2: 0xa20b7261682609eedc279d10, - limb3: 0x59452018f5c136620b13c6e - } + limb3: 0x59452018f5c136620b13c6e, + }, }, G2Line { r0a0: u384 { limb0: 0x7ee6a5f3ce669de80b52ba42, limb1: 0xa7d66db543d3c6a626f79dea, limb2: 0x135c684f9ac0e0a34315e044, - limb3: 0xaaafef3c4298542248b3a58 + limb3: 0xaaafef3c4298542248b3a58, }, r0a1: u384 { limb0: 0xe0b267ea1f8e8dc2b83d62e, limb1: 0xabac56946f0699334fa765e6, limb2: 0xee0060a937926e9b6d6adb90, - limb3: 0x13d96385b510deff2f4d1d32 + limb3: 0x13d96385b510deff2f4d1d32, }, r1a0: u384 { limb0: 0x1271c3349afe8fbfd4d7ee54, limb1: 0xc4df31a1a0ae89c5728ee819, limb2: 0xa0de891b771af1ba8a67f8db, - limb3: 0xf69200f56879e50a92ecd6e + limb3: 0xf69200f56879e50a92ecd6e, }, r1a1: u384 { limb0: 0x3260bde1e37542b8b8465e10, limb1: 0x7c3420aa9e48318a6606ee07, limb2: 0x126b5e1ded963ffbb6adb4e2, - limb3: 0x18d1f7ae28741bb590bb39a6 - } + limb3: 0x18d1f7ae28741bb590bb39a6, + }, }, G2Line { r0a0: u384 { limb0: 0x181fe8e691b0734fc6c8b3e3, limb1: 0x616410c0af8a1e197fb5f75a, limb2: 0xb38eb80de6b3b0f7f71aef9, - limb3: 0xcb084d46b4282aacbed6a60 + limb3: 0xcb084d46b4282aacbed6a60, }, r0a1: u384 { limb0: 0x8a6b2c47cc1ca9c98045b7f6, limb1: 0xcbe8b14d674bbf60db98d808, limb2: 0x46b9bb451cf32e861adae13a, - limb3: 0x53d38b36897a4aeb430bd04 + limb3: 0x53d38b36897a4aeb430bd04, }, r1a0: u384 { limb0: 0x23a3e6d947b9435c66858403, limb1: 0xf2ec49526cefd9e1a3004d7, limb2: 0x9b3b0253588d874ed9d95a3, - limb3: 0x13ab2d7c5d048283d6322ddf + limb3: 0x13ab2d7c5d048283d6322ddf, }, r1a1: u384 { limb0: 0x8c68e023a6d85684960340a1, limb1: 0x779e01cddbe6c1a646dfe94e, limb2: 0xaf9acf72586d61ea2e56cbe8, - limb3: 0x1978e28ea8606bfa979cd91 - } + limb3: 0x1978e28ea8606bfa979cd91, + }, }, G2Line { r0a0: u384 { limb0: 0x95db0469c00d953ee476c048, limb1: 0xa412df73ae5febbec296a5fb, limb2: 0x16b9fdec9340c8f3aefa561c, - limb3: 0xfc955cb99bde258d8760197 + limb3: 0xfc955cb99bde258d8760197, }, r0a1: u384 { limb0: 0x83c7d7a804031b10c844d0cb, limb1: 0xfb88180286d20648b40806c0, limb2: 0x31368cfad1bcb8ef19b9d382, - limb3: 0x8fd02881a5331dfb0922a3b + limb3: 0x8fd02881a5331dfb0922a3b, }, r1a0: u384 { limb0: 0x2513b777e720406cfba171f4, limb1: 0x9d9da48be5e4bae3bd3e8c84, limb2: 0x8d75547712fc62f6f651762d, - limb3: 0x5f0f52ede58374df52c0643 + limb3: 0x5f0f52ede58374df52c0643, }, r1a1: u384 { limb0: 0x13d6b4aa8d9a46d5720e1b74, limb1: 0x5b93ebf4000945ce87c9dcf1, limb2: 0xffe34203a0c826e972d857bd, - limb3: 0x1870c14dc5ad5a661156fd61 - } + limb3: 0x1870c14dc5ad5a661156fd61, + }, }, G2Line { r0a0: u384 { limb0: 0x4d1cdbf8dbab3c8928b0ea75, limb1: 0x58191227095b21b380520bca, limb2: 0xc8b2edfc1fcf1d47ba6bd853, - limb3: 0x165cefae4bd7b09e83aea4ac + limb3: 0x165cefae4bd7b09e83aea4ac, }, r0a1: u384 { limb0: 0x13f43fbb712c938711770d43, limb1: 0x67b7fe6c084a6b9d0d02edda, limb2: 0x7b0238d25ec12dfd2bc787a9, - limb3: 0x11065816aed6fac8813b29d4 + limb3: 0x11065816aed6fac8813b29d4, }, r1a0: u384 { limb0: 0xdf7a103b140e34e5fe400ff2, limb1: 0xad80cb5f3e6cbfca0f9ba6c2, limb2: 0xd22ace697a5990edb0d940f4, - limb3: 0x185537f3f8bb62a81efb3777 + limb3: 0x185537f3f8bb62a81efb3777, }, r1a1: u384 { limb0: 0x78081d7fc6aa11ec6d3eac29, limb1: 0x4c8089e6844b749eabf183cb, limb2: 0x7005abf6c23d8902a06826c0, - limb3: 0x1ec6348dffbfbdf92d2018e - } + limb3: 0x1ec6348dffbfbdf92d2018e, + }, }, G2Line { r0a0: u384 { limb0: 0x31f476324f857ca9daa71d3f, limb1: 0x5b64b681867d0f5505b9f139, limb2: 0xb89e509fc5decaef9cb221f1, - limb3: 0x5b8f08ef767ca4cf5f36622 + limb3: 0x5b8f08ef767ca4cf5f36622, }, r0a1: u384 { limb0: 0x8f44b24a23750c8f0fa6270d, limb1: 0x554f99004f5b1f2a21b02609, limb2: 0x3710c6daa7cac50a8ca6de8, - limb3: 0xa3b4aea7c32a8fc4d9a662b + limb3: 0xa3b4aea7c32a8fc4d9a662b, }, r1a0: u384 { limb0: 0x93f0fbf4c4d931c3a733902b, limb1: 0x3a038220fa2da3a7087689cd, limb2: 0x5bc677d1583979bda5797f17, - limb3: 0x11996e8759ccb1bda7042160 + limb3: 0x11996e8759ccb1bda7042160, }, r1a1: u384 { limb0: 0x1ee1d1db6f033786016fd46, limb1: 0x2d4942546551a7b5afb1ee11, limb2: 0x5c0b006bc71d7e27359f5f02, - limb3: 0x35c97a7e460075f4d915117 - } + limb3: 0x35c97a7e460075f4d915117, + }, }, G2Line { r0a0: u384 { limb0: 0xc17720fe750cb299759cac, limb1: 0x3099fd19a6b92e3ee803934a, limb2: 0x346f95d569d19d6f13b360ae, - limb3: 0xfe3b36652505dca379b0de1 + limb3: 0xfe3b36652505dca379b0de1, }, r0a1: u384 { limb0: 0xe79d54704a2ac5fe8ec036b3, limb1: 0xd0c59443c6fe3cfc7ed07143, limb2: 0xd35ba6f1be9ef2a32df5ce99, - limb3: 0x13c0add36a1987486340d508 + limb3: 0x13c0add36a1987486340d508, }, r1a0: u384 { limb0: 0xa7dbcd98dc000e769a0c1640, limb1: 0x4669b3e3c0832faa8a1bc742, limb2: 0x7f86a3143278c34ce3f7ff7b, - limb3: 0xb1d5e7632fb29ed83475f08 + limb3: 0xb1d5e7632fb29ed83475f08, }, r1a1: u384 { limb0: 0x7e5b15b8d85c3ddb341f6b3b, limb1: 0xd7a537aa55ed85a2aac5ad6c, limb2: 0x188d659313156b445ea5eb05, - limb3: 0x504c8faecb23614b32d77a9 - } + limb3: 0x504c8faecb23614b32d77a9, + }, }, G2Line { r0a0: u384 { limb0: 0x813cf8d46ec722731cb2e790, limb1: 0x3ae401e3a2c43950dd3e14a5, limb2: 0x7f1e2595a7bf3cb9644dc3a2, - limb3: 0x9a64184b516425353d3342b + limb3: 0x9a64184b516425353d3342b, }, r0a1: u384 { limb0: 0x1be4ad4c913b7f23ef8afc45, limb1: 0x4b9c5ee3da9ae172d5612c39, limb2: 0x362a12402d4cd3c50c5a5bc1, - limb3: 0xaf426e78303a8cf5a43520e + limb3: 0xaf426e78303a8cf5a43520e, }, r1a0: u384 { limb0: 0x1a1fbd631479e96bc85c9b39, limb1: 0x755e043e52470551dc47fa77, limb2: 0x2fd80441adcf386b79dfadce, - limb3: 0x15cdd2f908202480bb0f56fb + limb3: 0x15cdd2f908202480bb0f56fb, }, r1a1: u384 { limb0: 0x493a7937f956ab6960bb1a74, limb1: 0xec402c0b38b6cc4d5094363, limb2: 0x3d52461743a5dfe63d2e7a33, - limb3: 0x92150697852cb2d08c3521b - } + limb3: 0x92150697852cb2d08c3521b, + }, }, G2Line { r0a0: u384 { limb0: 0xc944c320bf8646db058b9131, limb1: 0x31a88361a84a466aa6b36d75, limb2: 0xdac588f1f3c7445319f734c1, - limb3: 0xcac64965fdc6b4f2086ec4d + limb3: 0xcac64965fdc6b4f2086ec4d, }, r0a1: u384 { limb0: 0xa9525478edbdf7abe422ecde, limb1: 0x4e92c811d5f5d89e35dbfc2a, limb2: 0x5d684f4f06473e718f79f00c, - limb3: 0x88952df34006bf1b7ce357a + limb3: 0x88952df34006bf1b7ce357a, }, r1a0: u384 { limb0: 0xa1b9405e17e76b1755dfb581, limb1: 0x30a164060d8e4bb7b88a1c77, limb2: 0x5972aaf0140f12d11fbbf2ab, - limb3: 0x483fd927267aa9641997b1a + limb3: 0x483fd927267aa9641997b1a, }, r1a1: u384 { limb0: 0xad6cac2f613f81aa42d4a895, limb1: 0x40f8cc01303a5997e99bda9a, limb2: 0xb01bfb6633906b1ea0a12e46, - limb3: 0x101863ec8507dd5b31e4faa4 - } + limb3: 0x101863ec8507dd5b31e4faa4, + }, }, G2Line { r0a0: u384 { limb0: 0x3c31209a4897e0f66a542078, limb1: 0xaca6cfb5457ca1adc99138fe, limb2: 0x72bf4739ae7b1a8652c823a2, - limb3: 0xdd9144f8c45e6091a6714d7 + limb3: 0xdd9144f8c45e6091a6714d7, }, r0a1: u384 { limb0: 0xc8942e9d5abaeec4938f2308, limb1: 0x30ff4bdf679bd4a2b87fa34c, limb2: 0x21acf101ca7ff6cd9129e67a, - limb3: 0xda6ef8b0ede3a09d1a5c00b + limb3: 0xda6ef8b0ede3a09d1a5c00b, }, r1a0: u384 { limb0: 0x2c5038a7eeaa757c15d205e, limb1: 0xe9d28bbd2c18d52e1b9024f2, limb2: 0x959d4240dbbc46a2c5bbb5b, - limb3: 0x9cd8b42cb440fc77607b954 + limb3: 0x9cd8b42cb440fc77607b954, }, r1a1: u384 { limb0: 0xd35f7d36be1bf213c01aba98, limb1: 0x655bc51b43c6394245778244, limb2: 0xd626d74e22844c1a8e2cc950, - limb3: 0x28c4b291b492ca43266277d - } + limb3: 0x28c4b291b492ca43266277d, + }, }, G2Line { r0a0: u384 { limb0: 0xfc9082f258930992ee9bf761, limb1: 0x25180c08fdde19200beedd44, limb2: 0xc756fce25d6036e074aefc7e, - limb3: 0x7d15791c8dae11ef3f925f2 + limb3: 0x7d15791c8dae11ef3f925f2, }, r0a1: u384 { limb0: 0x4e583c6a2d448a423dbdf113, limb1: 0x9ba1612b6d352bf5ce49bc71, limb2: 0x351d8295b8c7a5bc97d6f32f, - limb3: 0x2b7203697312b8ecf30eb04 + limb3: 0x2b7203697312b8ecf30eb04, }, r1a0: u384 { limb0: 0x356ba3cff7bdc33fc3b23217, limb1: 0xe25f4f3ce36e7bd6de98a7c, limb2: 0x217dca629473abb6c457c67b, - limb3: 0x104fd19f688af37eb9fd0d17 + limb3: 0x104fd19f688af37eb9fd0d17, }, r1a1: u384 { limb0: 0xd2ba6cc56638c175356a56da, limb1: 0xac2ab9c65110ca454592199, limb2: 0x87b1ec93cb67f7b775213e56, - limb3: 0x102d4a4c73948b8b8ab0444e - } + limb3: 0x102d4a4c73948b8b8ab0444e, + }, }, G2Line { r0a0: u384 { limb0: 0xabb764ac8036eb503e39861f, limb1: 0x22e8fa738389a0378352e2d2, limb2: 0xab10fb803ca53103ce99fc28, - limb3: 0x831ad8b93ffed9245877b44 + limb3: 0x831ad8b93ffed9245877b44, }, r0a1: u384 { limb0: 0xf721e83ab0eb9fa28b5d9349, limb1: 0x71c18646ef565689efc545c0, limb2: 0x590ec1d6f3abfbdb3f9f8b0d, - limb3: 0x17707d0e47e7a1044a4fd9c6 + limb3: 0x17707d0e47e7a1044a4fd9c6, }, r1a0: u384 { limb0: 0x16d0a838f9b0fc16504dd27, limb1: 0x5ad87ce7ad12ae830368b776, limb2: 0x62490899b4f397e09c44152f, - limb3: 0x15528a389da1580f43d95ade + limb3: 0x15528a389da1580f43d95ade, }, r1a1: u384 { limb0: 0xa715dcbb03bc2faac9d64bc7, limb1: 0xbd9b3ab159baa441a3ff56ad, limb2: 0x257f876f487a6dab4fa17c81, - limb3: 0xecfcaeb005ca1b7f92bf862 - } + limb3: 0xecfcaeb005ca1b7f92bf862, + }, }, G2Line { r0a0: u384 { limb0: 0x84bef2ae28f4fb378ec1eeb6, limb1: 0x1189e835406150f7fbe047cd, limb2: 0x8d7fa056d5bff703455219b9, - limb3: 0x17b55cffc9c559918a9ffbca + limb3: 0x17b55cffc9c559918a9ffbca, }, r0a1: u384 { limb0: 0xbcd55d1a045238c11947faae, limb1: 0xfddd35b7f062ea97fa82612f, limb2: 0x73dbd0a4863e8634338c4c3, - limb3: 0xfd6b167fe3d1476b5da9dfe + limb3: 0xfd6b167fe3d1476b5da9dfe, }, r1a0: u384 { limb0: 0xbcf99cf3772f639491c9a228, limb1: 0x1f8ca8645ecbeb98bb9ff5ae, limb2: 0x82f62cc92f240ff8bc4fca5, - limb3: 0x6b4211c4d1b18ea0c5a5e4c + limb3: 0x6b4211c4d1b18ea0c5a5e4c, }, r1a1: u384 { limb0: 0xe60a226e7c7d83e720ce3f23, limb1: 0xe357a6f93412eb508cc034c3, limb2: 0x532ca9a4ca346dd2e0913328, - limb3: 0xae125a2c4b74ea5caf9317f - } + limb3: 0xae125a2c4b74ea5caf9317f, + }, }, G2Line { r0a0: u384 { limb0: 0x81c96089bfd7744eef34464e, limb1: 0x37583018d3364f85efd0c5ec, limb2: 0x20c144a0d93e6ccdc66c38ae, - limb3: 0x9751fa26963b775df8f3962 + limb3: 0x9751fa26963b775df8f3962, }, r0a1: u384 { limb0: 0x5c8323716b77fe057a8cb7ba, limb1: 0xc82e11ccf5b11d49ed4b32b0, limb2: 0xe56585a0b82123c633345703, - limb3: 0x13f124a0518f365218b1a009 + limb3: 0x13f124a0518f365218b1a009, }, r1a0: u384 { limb0: 0xa093dab7e233ac8439570651, limb1: 0xd901c2049a6a54c71e11808a, limb2: 0x1e692509d6d11c02341d4d0c, - limb3: 0x12fb44f950a81879a6c0334c + limb3: 0x12fb44f950a81879a6c0334c, }, r1a1: u384 { limb0: 0x4c6dfaea5424692f1a1e29d2, limb1: 0x5abec8e383520c70a53a980e, limb2: 0xd1285ddbd456d6b3671ea61c, - limb3: 0xbe7bde925a4027b9de0a86e - } + limb3: 0xbe7bde925a4027b9de0a86e, + }, }, G2Line { r0a0: u384 { limb0: 0xcee35811d6215a2f4fbcca7e, limb1: 0x87a9f5ffd94e460a020bdc94, limb2: 0x7b4027d6083e7b569c7b1c5b, - limb3: 0xfc0537dcd5dd9e6b1ad6751 + limb3: 0xfc0537dcd5dd9e6b1ad6751, }, r0a1: u384 { limb0: 0xf9d48875a4a0ea5b6dc1ccf, limb1: 0x25cc4de42d310d432c6d742a, limb2: 0x6ee89fc1eee14096b8eaced3, - limb3: 0x1796255a42c0c51c278aec7a + limb3: 0x1796255a42c0c51c278aec7a, }, r1a0: u384 { limb0: 0x25a248f2439f04533e64d80f, limb1: 0x98efa1a63ae245d749997366, limb2: 0x475443b9af6f362e8d49e2f3, - limb3: 0xcac2920de98589be71736c8 + limb3: 0xcac2920de98589be71736c8, }, r1a1: u384 { limb0: 0x7f87ae7bb3fbc7cd3298c3a8, limb1: 0x3a353e1542c8d7044c554347, limb2: 0x582f0c10eae19c9dbdd6b54e, - limb3: 0x143d3dbcf094964341111145 - } + limb3: 0x143d3dbcf094964341111145, + }, }, G2Line { r0a0: u384 { limb0: 0x9c4a4d3c7bb2576aeac0337b, limb1: 0x8b9250b2bed82359a757e126, limb2: 0x2d7dd2e4d3d0945ac3d9cb88, - limb3: 0xa0bad126c265d46d51689b7 + limb3: 0xa0bad126c265d46d51689b7, }, r0a1: u384 { limb0: 0xf65a98dff64d2a0fc947454f, limb1: 0xa50259b7484098611c2cb9fd, limb2: 0x5a51b1c4671888accdca74af, - limb3: 0x133a4335f59c0259f1a3ff19 + limb3: 0x133a4335f59c0259f1a3ff19, }, r1a0: u384 { limb0: 0xdde88be699f516d731c68610, limb1: 0xce004ded1806688e8e7c458a, limb2: 0x932f3c1c8e56d4b9f19eb7e9, - limb3: 0x124f291f47d76455477102fe + limb3: 0x124f291f47d76455477102fe, }, r1a1: u384 { limb0: 0xa97c633609d63d754d4a2692, limb1: 0x3c5ba5df2f9bb1cdcfb55e97, limb2: 0x19aa69b7f4751e5e39459c7e, - limb3: 0x3f5780b2dcaccad745e1d15 - } + limb3: 0x3f5780b2dcaccad745e1d15, + }, }, G2Line { r0a0: u384 { limb0: 0x176b393abcd0ce4e1a0abfe6, limb1: 0xa27e43c4813e25e3825d4305, limb2: 0xa2b625e708805f3d8329056e, - limb3: 0xbe9471b1fa793d178fafaa5 + limb3: 0xbe9471b1fa793d178fafaa5, }, r0a1: u384 { limb0: 0x8772f1e72349ac1c28dd93f1, limb1: 0x7f3ca6e092edc430dfdae0d4, limb2: 0x99aea3d3180417f157e0a1d5, - limb3: 0x107589eb5f841423b30267db + limb3: 0x107589eb5f841423b30267db, }, r1a0: u384 { limb0: 0x6f3192c426a15b366fd68e0c, limb1: 0xa09c70b764bac8ec13b8e84c, limb2: 0x9f4166c3a19ec3bade0deeba, - limb3: 0x113ef2d7612b466865ed0d14 + limb3: 0x113ef2d7612b466865ed0d14, }, r1a1: u384 { limb0: 0xf51d41ee3760589f1a38cb60, limb1: 0x8366651516bb0321ba4e5071, limb2: 0xcc73dc7bd0438d3fc3993c27, - limb3: 0xcddb0e17a1abc6f8779d547 - } + limb3: 0xcddb0e17a1abc6f8779d547, + }, }, G2Line { r0a0: u384 { limb0: 0xdd3830612c58d544327ca0f0, limb1: 0x1142cd575c788d8d19a24ba9, limb2: 0x45ea7f0421cb2dd4e5b4ed7b, - limb3: 0xfb69c6a2cbfc9dfb9b01427 + limb3: 0xfb69c6a2cbfc9dfb9b01427, }, r0a1: u384 { limb0: 0x875ab3c75d3a4e43d10b2503, limb1: 0xf7cee1313a095fe9e31b7072, limb2: 0xe85be88d689d67e6e9835268, - limb3: 0x10635d3a601f92ab21801ab8 + limb3: 0x10635d3a601f92ab21801ab8, }, r1a0: u384 { limb0: 0x9eb9ef4ae7e0f7713d97450c, limb1: 0x8dfc81038830750d79da8b26, limb2: 0xc17475937901d8cadba451ca, - limb3: 0x6f9f723841ae3e1a88c34f4 + limb3: 0x6f9f723841ae3e1a88c34f4, }, r1a1: u384 { limb0: 0x71e84e872166781dda7182bc, limb1: 0x9dde7059d6c002a7f762da96, limb2: 0x2b9353ca4892a788389ca0fd, - limb3: 0xd413552182113308d1bf463 - } + limb3: 0xd413552182113308d1bf463, + }, }, G2Line { r0a0: u384 { limb0: 0x3d43ae9828f4d7d32e67b5b, limb1: 0xc911d37f003edcf2ffc8c9fa, limb2: 0x6c001f16c0f2e789787cbf46, - limb3: 0x77e0463d05f6290d05e7dfd + limb3: 0x77e0463d05f6290d05e7dfd, }, r0a1: u384 { limb0: 0x2ec1174f60371df515bea212, limb1: 0xaa40ca6330076c4664c991be, limb2: 0xaf5afb2da2bbd96b3b9faaf4, - limb3: 0x5aebe5e1b60777fd8bcbd90 + limb3: 0x5aebe5e1b60777fd8bcbd90, }, r1a0: u384 { limb0: 0x8d11d501bb6fd58ab12db0a6, limb1: 0x789e3289a146ee25ee0a86eb, limb2: 0x8c876d8e1b63dbfcc9427e3c, - limb3: 0xd8ed1716d646a39571c3cef + limb3: 0xd8ed1716d646a39571c3cef, }, r1a1: u384 { limb0: 0x52421b90854ae1be38c267b8, limb1: 0x50070ae589f60e3c6b251b88, limb2: 0xeff601c6612d2135059bce20, - limb3: 0x15001445b3ca05704edef7b7 - } + limb3: 0x15001445b3ca05704edef7b7, + }, }, G2Line { r0a0: u384 { limb0: 0xcc1f58585e1d7b5bd45c4c1f, limb1: 0x745110cbba12e028cd54150c, limb2: 0x2ce6cbed2508c5d828082677, - limb3: 0x28a36f542a28f6997a811fc + limb3: 0x28a36f542a28f6997a811fc, }, r0a1: u384 { limb0: 0x541d567dcc7fbea97520cd94, limb1: 0x65d407bf06f076619981fe2e, limb2: 0xd583e9bfd967becef21bf75f, - limb3: 0xac2c40f46751f043fe2833b + limb3: 0xac2c40f46751f043fe2833b, }, r1a0: u384 { limb0: 0x92c58aae975c98038f79305, limb1: 0x7d1ce0079826b8902c5d46d3, limb2: 0xf99d7ba5cb12513a32fb5eec, - limb3: 0x7cc8363ce478f6d8f184c26 + limb3: 0x7cc8363ce478f6d8f184c26, }, r1a1: u384 { limb0: 0x8397c406c8e69df7b1cea699, limb1: 0x4a543e21f4fd830fab085fcf, limb2: 0x25a94f2ddc7a920fd1361d5b, - limb3: 0x16a2f7057acf7d7df785557d - } + limb3: 0x16a2f7057acf7d7df785557d, + }, }, G2Line { r0a0: u384 { limb0: 0x87937770aff1215b3c8aa2ef, limb1: 0x7af4729d092f8c530e0d5d53, limb2: 0x72dceca83166ae9b74e474e3, - limb3: 0xe4dab5809b2b1b131aea3fc + limb3: 0xe4dab5809b2b1b131aea3fc, }, r0a1: u384 { limb0: 0x149aba7a16585e9fbdfde171, limb1: 0x272eab65584693c7f1473254, limb2: 0x7ab33331899bbd8cf6d0eb1a, - limb3: 0x1a698cde3793a423932d0f1 + limb3: 0x1a698cde3793a423932d0f1, }, r1a0: u384 { limb0: 0xc1206df604eca5f7f500aaa0, limb1: 0xdd96a086a731b8db0ce56191, limb2: 0x65310d5aa0d6051cd1892f3d, - limb3: 0xae6c26b6f048aaa9fb89d4e + limb3: 0xae6c26b6f048aaa9fb89d4e, }, r1a1: u384 { limb0: 0x32d38f22f61a778309b0d9d5, limb1: 0x6e22b0d5bae04b5bcc4f1200, limb2: 0xc486b7747b268b5e4e7c5e50, - limb3: 0x1932e2f6edad976aba23c400 - } + limb3: 0x1932e2f6edad976aba23c400, + }, }, G2Line { r0a0: u384 { limb0: 0xf8c9e8b4405badfa94226735, limb1: 0xe35370c03766b0439ba9bc0c, limb2: 0xefd8d2d0063990aea5570748, - limb3: 0x125e8f976f7536a2e85ea3cf + limb3: 0x125e8f976f7536a2e85ea3cf, }, r0a1: u384 { limb0: 0x8f2d3d1bd687824c71ce27fa, limb1: 0xd5946aef2f36a4cb42aee9b, limb2: 0xce15918bb8dbd901b9685864, - limb3: 0xc0299d504b8b7bb5ff23b7f + limb3: 0xc0299d504b8b7bb5ff23b7f, }, r1a0: u384 { limb0: 0x9a63e8f36e7127f93b5fab1e, limb1: 0x52d9ab603e72bca7b8fc5284, limb2: 0x8f734c44e7ba040f4a30952b, - limb3: 0x1478222c63826742286f720 + limb3: 0x1478222c63826742286f720, }, r1a1: u384 { limb0: 0x57fd0e62234f512c20e97da2, limb1: 0x876dd44c8838d26ecfad71b0, limb2: 0x9c591e15eb6492035916a674, - limb3: 0x13830268b58006ff03775156 - } + limb3: 0x13830268b58006ff03775156, + }, }, G2Line { r0a0: u384 { limb0: 0x3f1a504c2ca77f19997e6f9e, limb1: 0xc0280e01fb002d9cf729292a, limb2: 0x94b16f0117372c50814ed689, - limb3: 0x93fcabcbff9725332fceca8 + limb3: 0x93fcabcbff9725332fceca8, }, r0a1: u384 { limb0: 0x640748b204326bc404360efa, limb1: 0xcd8d364f90ded1150e8a1cbd, limb2: 0x5bfd4271d8985fc5165ac886, - limb3: 0x808eccc45ff3c8d95d12bdf + limb3: 0x808eccc45ff3c8d95d12bdf, }, r1a0: u384 { limb0: 0xc3ddbc8776cf4adad76e60c2, limb1: 0xa4d94ec522c73e9132d0828f, limb2: 0xcdc071c7519d2add39a87784, - limb3: 0x999ac8cb855c030ea4823ff + limb3: 0x999ac8cb855c030ea4823ff, }, r1a1: u384 { limb0: 0x87d3939873b4d0b73bebc618, limb1: 0x477c4bd9edf9b8d0a6814448, limb2: 0xc4785670713282577ce1b06f, - limb3: 0xcbb49b77bbb8dfff876c014 - } + limb3: 0xcbb49b77bbb8dfff876c014, + }, }, G2Line { r0a0: u384 { limb0: 0x5863cf017f4f31c0054a3612, limb1: 0x5a1ef8d1d2c315dd8bc6212, limb2: 0xe33ed175b6d1a029dda7c9aa, - limb3: 0x182115eb42220d34f08e487d + limb3: 0x182115eb42220d34f08e487d, }, r0a1: u384 { limb0: 0xb90bfad204b39a3cbcac7b4, limb1: 0x73b8d9e10bc6022a0994e39a, limb2: 0x7f5daebc21a409de8913242d, - limb3: 0xfc2db9cb25d08faf7c832 + limb3: 0xfc2db9cb25d08faf7c832, }, r1a0: u384 { limb0: 0x26d0221ad0d5ae39d7d33a8, limb1: 0xbae8e0d584ccaa52aeab179, limb2: 0x59de453ae38340185debc29f, - limb3: 0xc5a021a1d3134aa31cb39ed + limb3: 0xc5a021a1d3134aa31cb39ed, }, r1a1: u384 { limb0: 0x7472a64d3fccc64229059166, limb1: 0x361a6711e93f12f3d1cb0320, limb2: 0x6bf192bb96314516f10b7449, - limb3: 0xcaf028327c4bc3f8af13387 - } + limb3: 0xcaf028327c4bc3f8af13387, + }, }, G2Line { r0a0: u384 { limb0: 0xeb0944547700f042e0e585e6, limb1: 0xcb54fa1bd3a22b31e146eba9, limb2: 0x7f8b0b22ccce3ab5d4c4a6c2, - limb3: 0x8db684ceb39ca0328b9483d + limb3: 0x8db684ceb39ca0328b9483d, }, r0a1: u384 { limb0: 0x4160e63c5da74cdf92293b93, limb1: 0xcaca05d0a73b8498b9a903a0, limb2: 0xd515d294c426597840e358b6, - limb3: 0x13f4bc5ec404f999bb87d398 + limb3: 0x13f4bc5ec404f999bb87d398, }, r1a0: u384 { limb0: 0x6b103da093cfc45f10c1717e, limb1: 0x5adae0ed434b279585a01644, limb2: 0x8713ed279b4ef038593b6ff2, - limb3: 0xc1283b57d9bf775bac4baf + limb3: 0xc1283b57d9bf775bac4baf, }, r1a1: u384 { limb0: 0xf0902dcb78708b121be9c5e5, limb1: 0xe54c2b77058ade926b8d6d31, limb2: 0x8ff0eb114bc9ab91b267f33a, - limb3: 0x3bb58ab0df4567eb62c2fb8 - } + limb3: 0x3bb58ab0df4567eb62c2fb8, + }, }, G2Line { r0a0: u384 { limb0: 0xd53473f5ac7b5e99de412ea4, limb1: 0xf6c216059e7a2a6b1a09d23c, limb2: 0x5de59d8956f5a84da299063e, - limb3: 0x159ff2806d40ff15099d5204 + limb3: 0x159ff2806d40ff15099d5204, }, r0a1: u384 { limb0: 0xfdccb0d7c9716c23df3ced8f, limb1: 0x14e4ca22ebdbc559a20177, limb2: 0x5b60b25f325eb68e4cbd45d, - limb3: 0x69a7d5ac5a38cce584e0b0f + limb3: 0x69a7d5ac5a38cce584e0b0f, }, r1a0: u384 { limb0: 0x903bac45b703185c327d9669, limb1: 0xe524dad4130c677c5a3b0f31, limb2: 0x11518ec180b31fd2f516e8b1, - limb3: 0x29448dd80ce3c75c8b0d685 + limb3: 0x29448dd80ce3c75c8b0d685, }, r1a1: u384 { limb0: 0x134286c732f95142935a2a98, limb1: 0xc493200ca6cd119550bafdd3, limb2: 0x7008cba4cae32054d22edea4, - limb3: 0x15da5ffa50e36869f0f2ac43 - } + limb3: 0x15da5ffa50e36869f0f2ac43, + }, }, G2Line { r0a0: u384 { limb0: 0xe5d3fc39844c4e589e7eb492, limb1: 0xb684f2aca8ad6c2ad9ccb7b8, limb2: 0xf0b5af70fc13951f7f39d7df, - limb3: 0x16d3fc0506ddb9ebfdb25df6 + limb3: 0x16d3fc0506ddb9ebfdb25df6, }, r0a1: u384 { limb0: 0xdd6f7e7bd7a0a9950245a69c, limb1: 0x3b1450c65c42587028404440, limb2: 0x3254fe16f1c0a3448b21df94, - limb3: 0xa6be2d559107c2bc483a8f + limb3: 0xa6be2d559107c2bc483a8f, }, r1a0: u384 { limb0: 0xbddf678368c48a8e85f5c779, limb1: 0x41200c401f8eab124f7a1368, limb2: 0x42f89ddb63ec260743821878, - limb3: 0xb89fcbcdafbf02998d7d39c + limb3: 0xb89fcbcdafbf02998d7d39c, }, r1a1: u384 { limb0: 0xdf81c700b8bbb46d56e45aba, limb1: 0xafff8fb495808b125943f958, limb2: 0x781365baaf374f6c695e0135, - limb3: 0xb9f91a65aebc5ddd1c03eee - } + limb3: 0xb9f91a65aebc5ddd1c03eee, + }, }, G2Line { r0a0: u384 { limb0: 0x5edf9450f71e9104f1c374e9, limb1: 0xcfd112580006deba5077fd8a, limb2: 0x289c80bcf75761bc030bda9d, - limb3: 0x142182d337d4bdd0a9dc0152 + limb3: 0x142182d337d4bdd0a9dc0152, }, r0a1: u384 { limb0: 0xe3f1affdcbbd3809a6881f8e, limb1: 0x55f40359611c687f96c91dbe, limb2: 0xb90435a9e7260873c34a0cd4, - limb3: 0x113f465ca312058e0cd541d6 + limb3: 0x113f465ca312058e0cd541d6, }, r1a0: u384 { limb0: 0x85f3a8c5d4928087f1ef8229, limb1: 0x62e48188da4d79f1a88f24ba, limb2: 0x58691c7e87e7ecb6e855a469, - limb3: 0x25bacfd7256f159ca3eb0e5 + limb3: 0x25bacfd7256f159ca3eb0e5, }, r1a1: u384 { limb0: 0xfc830160c50a4b17a2dde63b, limb1: 0x1bf46813a25e8e58ff928d53, limb2: 0xe63b74e85e2032c28808627d, - limb3: 0x9e218f143196d00fadb36c6 - } + limb3: 0x9e218f143196d00fadb36c6, + }, }, G2Line { r0a0: u384 { limb0: 0x12d7f5c02580ec2a4ba0a629, limb1: 0x1ca40d1ec830247ff1341e78, limb2: 0x593e73ea84eba1c996c852c3, - limb3: 0x84ab3d52609f5caf813d26f + limb3: 0x84ab3d52609f5caf813d26f, }, r0a1: u384 { limb0: 0xdc2b9a2a9b72f187cb411858, limb1: 0x90c4f86b4683bec50d580ed, limb2: 0x5ba5198fcbb94aa3717bd5c2, - limb3: 0x5236a5b01a4fd2c95dbe588 + limb3: 0x5236a5b01a4fd2c95dbe588, }, r1a0: u384 { limb0: 0xdd048a19481a00e4f3165462, limb1: 0xe828205548a806450d618e75, limb2: 0x9ee5b67676d457e228884f60, - limb3: 0x128250d867da43f6fb557d16 + limb3: 0x128250d867da43f6fb557d16, }, r1a1: u384 { limb0: 0x906239db66fe95321faa08f5, limb1: 0xd546336aeca0472ea130a9b7, limb2: 0x70ac85b42ab50da2baf4dd17, - limb3: 0xaaaf2e3d7a2240eb213f3fa - } + limb3: 0xaaaf2e3d7a2240eb213f3fa, + }, }, G2Line { r0a0: u384 { limb0: 0x2639eca99f5b1f6e6d095faa, limb1: 0x7322d2c5cd33e33d6fd2e0ca, limb2: 0x1c7bca0054ff60c0db156676, - limb3: 0x10933118bcf1940615957a6c + limb3: 0x10933118bcf1940615957a6c, }, r0a1: u384 { limb0: 0x43e0d74cf14359d83cc60326, limb1: 0x3d49af8c8914a76283667614, limb2: 0xc090bf9a071c2af83528b361, - limb3: 0x14ef91f0b47d2bf1313ba159 + limb3: 0x14ef91f0b47d2bf1313ba159, }, r1a0: u384 { limb0: 0xe45466ca7f8b6f5920570127, limb1: 0x1554654b09b57871c2ba8a9b, limb2: 0xf66b8bb3a005585c18db86b0, - limb3: 0xd28c63f8635e2ca59c7dc45 + limb3: 0xd28c63f8635e2ca59c7dc45, }, r1a1: u384 { limb0: 0xdc559ff81728e932b3c79d12, limb1: 0xec4893ef0a2c9367a4d736d6, limb2: 0x8b0a21bcded904e222dbf14b, - limb3: 0x8c51553f23145b85ca33fbe - } + limb3: 0x8c51553f23145b85ca33fbe, + }, }, G2Line { r0a0: u384 { limb0: 0x47c09068a72c1519575654f5, limb1: 0x2f216b499e363f8bccb9b68d, limb2: 0x8d117e630991ed6543c83bbf, - limb3: 0xece81448505f80c199eedf2 + limb3: 0xece81448505f80c199eedf2, }, r0a1: u384 { limb0: 0x5cfdb49df58c7449bb4d119a, limb1: 0xc86b91022e40b847d4ca6067, limb2: 0xb745a4c4e9730ab196797891, - limb3: 0x853f0c583c651c57bdd903d + limb3: 0x853f0c583c651c57bdd903d, }, r1a0: u384 { limb0: 0xfac548de6238b1c07e9c8d34, limb1: 0xda71dff567e93e8a1d7d33c0, limb2: 0xc9cefb30737b47af261ab581, - limb3: 0xbdcd5f00d079c1a871baeba + limb3: 0xbdcd5f00d079c1a871baeba, }, r1a1: u384 { limb0: 0xb52005aa240ff1c85f7c18bd, limb1: 0x435d4c338a9db0fdeadbff48, limb2: 0x1a3008b87a1d6a2d1d12b9b3, - limb3: 0xf4835d66a5b1c168f6371bb - } + limb3: 0xf4835d66a5b1c168f6371bb, + }, }, G2Line { r0a0: u384 { limb0: 0x7a3deb7872768f839060087e, limb1: 0xae5017af4c09ed67c5c2e525, limb2: 0xef2bbb3e118498031e2471f, - limb3: 0x5cf357e8473bba00386d238 + limb3: 0x5cf357e8473bba00386d238, }, r0a1: u384 { limb0: 0x3b373a0d0a649113f5c7b2fe, limb1: 0xa3913baa2c3f8f7499ac76a6, limb2: 0x425aed5972aa5f4b4d21ffc7, - limb3: 0x82938f41814229b1224b32b + limb3: 0x82938f41814229b1224b32b, }, r1a0: u384 { limb0: 0x5b130ec9295aaeb79868e7d6, limb1: 0xda6c9ffb04ff597a83b36114, limb2: 0xc09586dc17dbca59627bbce4, - limb3: 0xd8431f93c66d78cf5b81228 + limb3: 0xd8431f93c66d78cf5b81228, }, r1a1: u384 { limb0: 0xe35d56023ffa020c373e6d85, limb1: 0x22972df9b6181d6397c5ee58, limb2: 0x933a967160fc487717775d67, - limb3: 0x19c24474e43b997ab5364a65 - } + limb3: 0x19c24474e43b997ab5364a65, + }, }, G2Line { r0a0: u384 { limb0: 0xab4a47c9e460a6ab079bc9f4, limb1: 0xa52d15592f6e629c8ed4e221, limb2: 0x6770a2fbfd963ac4ba4c7711, - limb3: 0x176bfba99edfa7e6ea9b4180 + limb3: 0x176bfba99edfa7e6ea9b4180, }, r0a1: u384 { limb0: 0x75096b535e73515e0077950, limb1: 0x4e543e3117b31ed795fc87bc, limb2: 0x3c61b46cdb8ec4196b82a6c6, - limb3: 0xe180fc0b5335f6b7320f37 + limb3: 0xe180fc0b5335f6b7320f37, }, r1a0: u384 { limb0: 0x6906e7b73a18fc659f673646, limb1: 0xbf5b4487d46103b30587303e, limb2: 0x8674cc39b5d030003362b6e5, - limb3: 0x11d1e6708ce7fc3ee159cced + limb3: 0x11d1e6708ce7fc3ee159cced, }, r1a1: u384 { limb0: 0x99596ab37e2a0986bcf42bb7, limb1: 0x1a88d084e06ac121ef049a81, limb2: 0xd0de51ee3dda5694d8704419, - limb3: 0x18c7467be5ba537fff691007 - } + limb3: 0x18c7467be5ba537fff691007, + }, }, G2Line { r0a0: u384 { limb0: 0x6acbdd11b2e3bf3c4e9a8fc7, limb1: 0xa65c7c83d9e863106be2e6e, limb2: 0xba622ef466154b88c6206dc0, - limb3: 0x13847679c97ef8978b3f64c9 + limb3: 0x13847679c97ef8978b3f64c9, }, r0a1: u384 { limb0: 0xa29270a27fe8eff7ff52747, limb1: 0x1b86d1ea5e2cb0e565695293, limb2: 0x5d46595304e94133e1524dc4, - limb3: 0x5c65be3c6a8b37e95aaa472 + limb3: 0x5c65be3c6a8b37e95aaa472, }, r1a0: u384 { limb0: 0x4c113034a2b4e8c08494656, limb1: 0x113bdfa06dc6105f0cee337c, limb2: 0x5ab2297e7c609e4044c01f70, - limb3: 0xe5ba46e7903db0416c5e85d + limb3: 0xe5ba46e7903db0416c5e85d, }, r1a1: u384 { limb0: 0x1af25f25f85e2fe5769d4db0, limb1: 0xc25dd758f010619bdce139cb, limb2: 0x539682ada1e9af81af49cbb4, - limb3: 0x63c25d8d6ffab7a17da8252 - } + limb3: 0x63c25d8d6ffab7a17da8252, + }, }, G2Line { r0a0: u384 { limb0: 0xd9bfc7bee1ea2c4b44bdf384, limb1: 0xcae101c36024fea8c88acb5, limb2: 0x5442f686fb8c7e3cd159699e, - limb3: 0x81a70f202f8c7a9ab6ac16e + limb3: 0x81a70f202f8c7a9ab6ac16e, }, r0a1: u384 { limb0: 0xf79e89f10551862af2ab4d, limb1: 0x9ef28d1b3d37544d0c5c2b63, limb2: 0x10755eab03732c2d03d477cf, - limb3: 0xc230221d279a52930a327ec + limb3: 0xc230221d279a52930a327ec, }, r1a0: u384 { limb0: 0x4909e0184d0d6a6e27087c3e, limb1: 0x867ff3844dd99659a6660bc1, limb2: 0x63a84310b08ecb9919f0f41, - limb3: 0x72f48e980ebef31c44fe110 + limb3: 0x72f48e980ebef31c44fe110, }, r1a1: u384 { limb0: 0xed834e1b94dfdd91c8d4311d, limb1: 0xe0efd3a3e73341c128668e23, limb2: 0xad8f2be3d52a01168b375d5d, - limb3: 0xa34b7e1dee43f4de567f3e3 - } + limb3: 0xa34b7e1dee43f4de567f3e3, + }, }, G2Line { r0a0: u384 { limb0: 0xee48f089c7a4594a201092eb, limb1: 0xc9d8a7b7d87389e25b856b97, limb2: 0x74d54bf4748e38d3b2c782b3, - limb3: 0x78af2f8549231aa92bba1b3 + limb3: 0x78af2f8549231aa92bba1b3, }, r0a1: u384 { limb0: 0x61acc46ca422be84be4fee75, limb1: 0xf425406455688e07fe496eb2, limb2: 0x1151b627d67176b268c6b18b, - limb3: 0x157a7e87571314c4eeffcc64 + limb3: 0x157a7e87571314c4eeffcc64, }, r1a0: u384 { limb0: 0xd95d245c747804a8f3bd59ab, limb1: 0xb3c7108b5d8ce6d797a8ab29, limb2: 0x452fc047d47ec02830b1b9c1, - limb3: 0x12ea35020ddc17232447b57c + limb3: 0x12ea35020ddc17232447b57c, }, r1a1: u384 { limb0: 0xb027d5b2037b8170fb63b93a, limb1: 0xf317c06fee2a5ef8113fd9d3, limb2: 0xdd1a58fc8de1d70f065c435c, - limb3: 0x11d55ce218987319447cc925 - } + limb3: 0x11d55ce218987319447cc925, + }, }, G2Line { r0a0: u384 { limb0: 0xed2bfa7ce99d4f69b850d09c, limb1: 0x5efc2ec9bfecf49ff6bd1417, limb2: 0xf733724aff4a909b6a9579c4, - limb3: 0x129d26f7087d748c81d164c8 + limb3: 0x129d26f7087d748c81d164c8, }, r0a1: u384 { limb0: 0x4fe6ed09a9ce55efa63b7173, limb1: 0xacdf286e6dda680bd7f43d82, limb2: 0x157ceffdd1328af6f6e5b95c, - limb3: 0x160cbfb08a54af89dfeb868a + limb3: 0x160cbfb08a54af89dfeb868a, }, r1a0: u384 { limb0: 0x4ec774d0354010b5e861fe21, limb1: 0xe9ed591725d9834344f2c119, limb2: 0x6381097476472bf91dd79d7, - limb3: 0xd2c74ef03918d458f67a780 + limb3: 0xd2c74ef03918d458f67a780, }, r1a1: u384 { limb0: 0x818639c9a397b4bf6f38e3d3, limb1: 0xa7c0dbcc3c17ee84d28afb8e, limb2: 0xe2e3c55da00c29aaff4a0571, - limb3: 0x13b5dbdad3c6aeb8219944e7 - } + limb3: 0x13b5dbdad3c6aeb8219944e7, + }, }, G2Line { r0a0: u384 { limb0: 0x1b9ff207335fcb7b28f48654, limb1: 0xaa059fc26f53a4b15d861e5d, limb2: 0x7409e84a31ef57e217e3d45d, - limb3: 0x8f022244af0b719146e8cfb + limb3: 0x8f022244af0b719146e8cfb, }, r0a1: u384 { limb0: 0x1fa9d79eb0320e586c2d096a, limb1: 0x8fde2d5c9ef41c1612865896, limb2: 0xec88b9f86c99799b380ebac9, - limb3: 0x72c117c18b8dfa89321c27c + limb3: 0x72c117c18b8dfa89321c27c, }, r1a0: u384 { limb0: 0x4570eb295684cad19e7cfded, limb1: 0x2e204f8114c805f866cca868, limb2: 0xba0509fc0eea7cc65c8b3dee, - limb3: 0xc7c1e717bb7b078054d3851 + limb3: 0xc7c1e717bb7b078054d3851, }, r1a1: u384 { limb0: 0x25eb9fba51d76d2292c1e2bf, limb1: 0xa43de47dba6db4c3e5c3d8b8, limb2: 0x365ea08af8998db774b8b61e, - limb3: 0x6367ffd71d3c44095424fc7 - } + limb3: 0x6367ffd71d3c44095424fc7, + }, }, G2Line { r0a0: u384 { limb0: 0xbc6935d4f6d5d4aa0ec642b, limb1: 0x1d6e2d4d9106b5ecff982a66, limb2: 0x5e8531cb5f36f807288638c1, - limb3: 0xa7631b901291f87b31ffb35 + limb3: 0xa7631b901291f87b31ffb35, }, r0a1: u384 { limb0: 0x65c64711fddc1f635ae6e574, limb1: 0x9e9ea3a84804bd3fb56c4c1e, limb2: 0x91aa460ccbc52472b90ce0b3, - limb3: 0x13b3c25d2edef40f806ef614 + limb3: 0x13b3c25d2edef40f806ef614, }, r1a0: u384 { limb0: 0x9b3f8b6844ada64077c6dc45, limb1: 0x78a3cdbb5ad78183e72572d, limb2: 0x34763f876de5f0004af6d3b9, - limb3: 0x148f019d0a59b993e259d612 + limb3: 0x148f019d0a59b993e259d612, }, r1a1: u384 { limb0: 0x95843db564a4b5a94a1b14c4, limb1: 0x832d5ca2f0420c55f9007f4a, limb2: 0x56047bf28b726775ad1f126a, - limb3: 0x13283203fb6b13b007258900 - } + limb3: 0x13283203fb6b13b007258900, + }, }, G2Line { r0a0: u384 { limb0: 0xd8934218abbe5eda42e0374, limb1: 0x4efa70797ab04d5777f18cae, limb2: 0x657bd72dc32622552c01c3a1, - limb3: 0x86675ec3781ecc255b9b8f + limb3: 0x86675ec3781ecc255b9b8f, }, r0a1: u384 { limb0: 0xdb3cdd784259d6f00a05188, limb1: 0x4d7d18f24dc5139d8829c6be, limb2: 0x9067fb6cb2810aa19e5e838d, - limb3: 0x99b7b955ea60c02306dd019 + limb3: 0x99b7b955ea60c02306dd019, }, r1a0: u384 { limb0: 0x9569e6a9a6dfc936dc66c37d, limb1: 0x8ce5600bf62265cce1600d14, limb2: 0xe437be1358f94ae1da7ba693, - limb3: 0x26001dbd81fb98024703f0a + limb3: 0x26001dbd81fb98024703f0a, }, r1a1: u384 { limb0: 0x38347efb475ef26461922ce8, limb1: 0x434f13930fd2a42336fc5a71, limb2: 0xa611a973d0bf99e3535651af, - limb3: 0xf623d241cf8d903d2d48305 - } + limb3: 0xf623d241cf8d903d2d48305, + }, }, G2Line { r0a0: u384 { limb0: 0x1bcaf5fed0bbcd1a934472b1, limb1: 0xbd468b117d710b48e9e33679, limb2: 0x705c11550a052c1bb8ccc4ea, - limb3: 0x6f15de535822689ea86e65e + limb3: 0x6f15de535822689ea86e65e, }, r0a1: u384 { limb0: 0x95d3b31c7228eccaeaf12838, limb1: 0xa92a1590da11c257350bbf1f, limb2: 0xd4e2202f05265990a6557be7, - limb3: 0x11f8c21a8309afd4c60ea316 + limb3: 0x11f8c21a8309afd4c60ea316, }, r1a0: u384 { limb0: 0xa27a54fe04de2265b2fe96e8, limb1: 0x53dcd9b100331a701e8ba5f9, limb2: 0x57845f6219e44f2109c795e5, - limb3: 0x22a93fc0d0171aa6e5a89a2 + limb3: 0x22a93fc0d0171aa6e5a89a2, }, r1a1: u384 { limb0: 0x95504a55dc0699b071a8dd33, limb1: 0x372f0a3e8d642e214174c90a, limb2: 0xcf8e1be4fec9c43ae6e6c879, - limb3: 0x112c15cec305822060501913 - } + limb3: 0x112c15cec305822060501913, + }, }, G2Line { r0a0: u384 { limb0: 0x7464425eeb75a1d3a3486fba, limb1: 0xd4f0931c31459109811008d1, limb2: 0x5aac0cfc9b43343826136afb, - limb3: 0xf16056dd2e8b5f8240d4ac7 + limb3: 0xf16056dd2e8b5f8240d4ac7, }, r0a1: u384 { limb0: 0xee0993ef125a22747400b5ea, limb1: 0x438805278ea9e18b001cf7da, limb2: 0x11c5cbb3ae17332e06f5b415, - limb3: 0x134957b7abe963c5d074abc9 + limb3: 0x134957b7abe963c5d074abc9, }, r1a0: u384 { limb0: 0xacf8eb684fdd044dd83f813e, limb1: 0xcb5dae51f81a4969f0370c67, limb2: 0x491fc4a63ef64f17b8aa0d30, - limb3: 0x188b4199d41c95a7991f2d89 + limb3: 0x188b4199d41c95a7991f2d89, }, r1a1: u384 { limb0: 0x1f69582489be9a39cb94c326, limb1: 0xdfa20ef759cc430ed060c20b, limb2: 0xeab00aeca148c6a408bcd34a, - limb3: 0xd6a605bcb73c8061942fb57 - } + limb3: 0xd6a605bcb73c8061942fb57, + }, }, G2Line { r0a0: u384 { limb0: 0x1a00fe857129fb0706afc443, limb1: 0x699bd305a05a49e5376fa125, limb2: 0x5123ef38664f302385f6e355, - limb3: 0x1138d923f33a7667d3f218ec + limb3: 0x1138d923f33a7667d3f218ec, }, r0a1: u384 { limb0: 0xa8b0789c07a18e1212c35b42, limb1: 0xe6062cdb7c672277492e486f, limb2: 0x21d77ef2efc7c58cc7f07fa, - limb3: 0xe1c4f192a69167da717d052 + limb3: 0xe1c4f192a69167da717d052, }, r1a0: u384 { limb0: 0x1083df31373d17c10c6f96ce, limb1: 0x3c0db10e3745399ce144521, limb2: 0x4be19a961fa7762df7e8174f, - limb3: 0x157ba9b5969d3125fa86ea07 + limb3: 0x157ba9b5969d3125fa86ea07, }, r1a1: u384 { limb0: 0xd3bd3b38817ebc095decab10, limb1: 0x99d4b7d79829b113b4490f45, limb2: 0x205d4e72b9d31001a602b263, - limb3: 0x16fedb246b41f78c5a46ac30 - } + limb3: 0x16fedb246b41f78c5a46ac30, + }, }, G2Line { r0a0: u384 { limb0: 0xed72eccb4e30eeaf3b992446, limb1: 0x14e0585cd696c72e9adb4736, limb2: 0x7df5eabb84672fab4d4a6e10, - limb3: 0x2d6c8112234d7f18ea478ea + limb3: 0x2d6c8112234d7f18ea478ea, }, r0a1: u384 { limb0: 0x95586dac212579b39f39df97, limb1: 0xff0488c63a739029f85aec22, limb2: 0x38ce286aeea4511ddcb23d59, - limb3: 0x444323d14c7a3549b9f6b27 + limb3: 0x444323d14c7a3549b9f6b27, }, r1a0: u384 { limb0: 0xac929d1bb6bfa0df5bd0b951, limb1: 0x9a5e39e018083d89aeeaee3d, limb2: 0xc84698d95675ba2c1b93662e, - limb3: 0xa82a23fd9338c15ba09139b + limb3: 0xa82a23fd9338c15ba09139b, }, r1a1: u384 { limb0: 0x8a89d4ebf46cc78b9a67add2, limb1: 0x1761e578b693547ecbf4817f, limb2: 0xbd9d23d081864a636a27dce, - limb3: 0x40d68a72ee4363db50d3c92 - } + limb3: 0x40d68a72ee4363db50d3c92, + }, }, G2Line { r0a0: u384 { limb0: 0x5a204b2b8496bf6fd941adbe, limb1: 0x9c069a02ba48bdf34aed625e, limb2: 0x5459c5d76fa5925ae4b04121, - limb3: 0x2c12f82e0dcd33df5ac48a7 + limb3: 0x2c12f82e0dcd33df5ac48a7, }, r0a1: u384 { limb0: 0x38870a783f4004476ddafcab, limb1: 0xa98e80effda828b7a2908d37, limb2: 0x8152285afd4302b3b87447d1, - limb3: 0x183817defa2bfa474a6e1fdf + limb3: 0x183817defa2bfa474a6e1fdf, }, r1a0: u384 { limb0: 0x6bceb45fb77a9e20a0152815, limb1: 0x20636e0b8ad36f12a65176b1, limb2: 0x7ee4c1a972b5386c1303665e, - limb3: 0x71199de43d6e23e8d666f51 + limb3: 0x71199de43d6e23e8d666f51, }, r1a1: u384 { limb0: 0x4f26920f05c3d38669cade7a, limb1: 0x9028c6ddc1cd21f516bc0d4, limb2: 0xca7680b59d22ca8045eba3d1, - limb3: 0xc81627ec1998db363f1c26 - } + limb3: 0xc81627ec1998db363f1c26, + }, }, G2Line { r0a0: u384 { limb0: 0xbdda2d3c31051f4071ae2945, limb1: 0xbc66726ddee31b37d058d7e5, limb2: 0x9f4eb741ac78b510ccf452ab, - limb3: 0x65fb0c0d47de8795557bd2f + limb3: 0x65fb0c0d47de8795557bd2f, }, r0a1: u384 { limb0: 0xb9c37518dd4a05df7a4d6dc1, limb1: 0xd4ee64da91ea67b8a4525b4, limb2: 0x73a813ffff40ee810a12214b, - limb3: 0x7f9fda3fa03c5295720441d + limb3: 0x7f9fda3fa03c5295720441d, }, r1a0: u384 { limb0: 0xaa6d391bd6b4113145484e4f, limb1: 0x86d3fa56727d8879496d1827, limb2: 0x71223351a13a9577646c0ec3, - limb3: 0x5c4513dff602b8ec227f711 + limb3: 0x5c4513dff602b8ec227f711, }, r1a1: u384 { limb0: 0xb9b127f0cbfc3172bba7a933, limb1: 0x10d730ec07d1e0f84c5c6c34, limb2: 0x693e354e2246bf96f3ebf563, - limb3: 0x1163f7e15fbd10f4086aad86 - } + limb3: 0x1163f7e15fbd10f4086aad86, + }, }, G2Line { r0a0: u384 { limb0: 0x324f76ca3eb989e9ccb12696, limb1: 0xeb1a302ddcf16336370c347d, limb2: 0xcd35a0d29495cd0999ca03e2, - limb3: 0xa74e5ad34004c7e57d2a14e + limb3: 0xa74e5ad34004c7e57d2a14e, }, r0a1: u384 { limb0: 0x525e1ef1f8480fcfda387f8b, limb1: 0xaf0c314992fa29dd3e45eeec, limb2: 0xae09cf42c0a53751919fe1b1, - limb3: 0x106562358cc0ca813815bb1f + limb3: 0x106562358cc0ca813815bb1f, }, r1a0: u384 { limb0: 0x19d180d969228995aa21a1e5, limb1: 0x34f6f5fbd9b098d1b3efd0b, limb2: 0x3533d5af99af7a4dc323297a, - limb3: 0x1604dfd23c32fe35ae8fd03 + limb3: 0x1604dfd23c32fe35ae8fd03, }, r1a1: u384 { limb0: 0x95f9c758ce1e361efe4c0032, limb1: 0x910fa18b85ad81540e31e1ff, limb2: 0x564537d6beb09c576a28d18f, - limb3: 0xa483de0527b3738ae218c4c - } + limb3: 0xa483de0527b3738ae218c4c, + }, }, ] .span(); @@ -19420,74 +17982,74 @@ mod pairing_tests { limb0: 0x1d4eab620cf33a8eded7fd2c, limb1: 0x45778308171f9267fab69519, limb2: 0x874b1a6540a5a24a4fd9c68f, - limb3: 0x521ad898cee9071ebcbf44d + limb3: 0x521ad898cee9071ebcbf44d, }, w1: u384 { limb0: 0xa9f581d9c26c7bc732af4135, limb1: 0x5cecf0013c8d5695a1e6a597, limb2: 0x66651ab83510fb89f6b2afe4, - limb3: 0x5966d7f6d173ea01e1a5869 + limb3: 0x5966d7f6d173ea01e1a5869, }, w2: u384 { limb0: 0x7a64d089a1a115a3eab1a695, limb1: 0xccdc16d44e3cbdf8393eb355, limb2: 0xccd24b9c3e637b240a4100a3, - limb3: 0x110012a0987f151e6eacf408 + limb3: 0x110012a0987f151e6eacf408, }, w3: u384 { limb0: 0xd7d9acb3a8622465c6b1c0fe, limb1: 0xcdaab0fcd1147d96b5521ac4, limb2: 0xae897c7118bbf9c0479cff61, - limb3: 0xfc350acc198fbd5b4d95cfc + limb3: 0xfc350acc198fbd5b4d95cfc, }, w4: u384 { limb0: 0x32d5c3bbed4da9a68948c926, limb1: 0x6f68e9017165ef8db1a4f975, limb2: 0x8c36a4b56c817816904d0605, - limb3: 0x6d44964cce393f36664dfb7 + limb3: 0x6d44964cce393f36664dfb7, }, w5: u384 { limb0: 0x9715bc72d9969488889a609f, limb1: 0x2b0c186b4950da2943f4ad01, limb2: 0x9a49542de5fc03a989fe46f8, - limb3: 0x86f3ebd100f5f5157bc57f7 + limb3: 0x86f3ebd100f5f5157bc57f7, }, w6: u384 { limb0: 0x54e14ea09aad1c01c5c5faac, limb1: 0x65bf572081d748820d57d62d, limb2: 0xe04c49ded673151413b8ce9b, - limb3: 0x18776284b17c0858f647e075 + limb3: 0x18776284b17c0858f647e075, }, w7: u384 { limb0: 0xd4ff280a7232eada165a4400, limb1: 0xf5bd8e019057fb48dad4ea34, limb2: 0xae5bd1a1ce889e14808c4ee8, - limb3: 0x647bb2047c521d397fd0f7 + limb3: 0x647bb2047c521d397fd0f7, }, w8: u384 { limb0: 0xc8266658d2a03e597cfec8fc, limb1: 0x62aae0152d3543705d87df48, limb2: 0xfc4fae663d5040baacca25a8, - limb3: 0xa97b4be53ee479681acc5eb + limb3: 0xa97b4be53ee479681acc5eb, }, w9: u384 { limb0: 0x45b2fc96a09f2ffc8b84a4dc, limb1: 0x22bbd02e82d79e84d590ca96, limb2: 0xf24bb9b22ece2fe9e392d6ff, - limb3: 0x1338aeb075e78cc7505a5d70 + limb3: 0x1338aeb075e78cc7505a5d70, }, w10: u384 { limb0: 0xe4354c04ab5208100a0129af, limb1: 0x4675bf96847cb9d629da62d1, limb2: 0xcbb4b845ab04d0a51ea25ee0, - limb3: 0xe608702099837e04fc2e999 + limb3: 0xe608702099837e04fc2e999, }, w11: u384 { limb0: 0x3cca5a2ae19eefaf128521, limb1: 0x7a10d38aa97360f22cd213ab, limb2: 0xe8162fd74d36e0786ea6a88c, - limb3: 0x12c968f3ea7364e3ee21b8b2 - } + limb3: 0x12c968f3ea7364e3ee21b8b2, + }, }, w: MillerLoopResultScalingFactor { w0: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, @@ -19498,9 +18060,9 @@ mod pairing_tests { limb0: 0xf1ca42a0e74df934924892fb, limb1: 0x91e7a80fe41d8f58d83f1513, limb2: 0x8e9a0930581e2c940247cd09, - limb3: 0x18bc5b99f39cbf0fd8d08768 + limb3: 0x18bc5b99f39cbf0fd8d08768, }, - w10: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + w10: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, Ris: array![ E12D { @@ -19508,2590 +18070,2590 @@ mod pairing_tests { limb0: 0xf63d7acf09f9e238c86f7575, limb1: 0xaf8ac67e915aa56c1f18943c, limb2: 0x1f0d89e52ce00053fb4cd271, - limb3: 0x6dcf1ec2bee9d55fd7c7dd0 + limb3: 0x6dcf1ec2bee9d55fd7c7dd0, }, w1: u384 { limb0: 0x8c542fcbddc8a2f30326ff28, limb1: 0x93400f32912e689ef50ff729, limb2: 0x5e397600577a07eddd78a637, - limb3: 0x7f05f480f32402899fc238d + limb3: 0x7f05f480f32402899fc238d, }, w2: u384 { limb0: 0xfc8e47f2ce78aed551c79270, limb1: 0xb7505079976315ae30aea8c7, limb2: 0x1397705b5336a8c404e29aba, - limb3: 0x71d870e4553f214175e57f7 + limb3: 0x71d870e4553f214175e57f7, }, w3: u384 { limb0: 0x32f0ae88611fa10260d597c0, limb1: 0x29a0888f8ce8b899253e37ae, limb2: 0x7123a17956e452893cabef6a, - limb3: 0x37df42454ed3974bb2b32f9 + limb3: 0x37df42454ed3974bb2b32f9, }, w4: u384 { limb0: 0xa72f0e1e9c109d242988e116, limb1: 0x54b5dec1284a8c9177b3c945, limb2: 0x815f8322190dde62bdc8a55e, - limb3: 0xba703f387adf415b877fd75 + limb3: 0xba703f387adf415b877fd75, }, w5: u384 { limb0: 0x1f07d02f85fc8a875e197521, limb1: 0x5585ddebaf32dc4e03ae577f, limb2: 0x6f8907d9616c496a0f51dbcc, - limb3: 0x14068f72159c932c910dd512 + limb3: 0x14068f72159c932c910dd512, }, w6: u384 { limb0: 0xce6bb359366acbb7781372b9, limb1: 0x7c5e8df6083d142e2fd17ccf, limb2: 0x1174df6680c4991d4d20cc80, - limb3: 0x17dfc12834ee7334831b24af + limb3: 0x17dfc12834ee7334831b24af, }, w7: u384 { limb0: 0x95daa3bc8b9ac34a59ff12f0, limb1: 0xa2349e79dd3de20eea74d8b, limb2: 0x90308dd36ed98b5e1d50a816, - limb3: 0x17d3b0da632dabdf4ba0f6c8 + limb3: 0x17d3b0da632dabdf4ba0f6c8, }, w8: u384 { limb0: 0x4c5d01ef3358bf5ad26286cc, limb1: 0xed0c77db94e0738119993eb, limb2: 0xfd31f8f2bab3cabf17b82c77, - limb3: 0x17ddaa28e29c2317b96c21b7 + limb3: 0x17ddaa28e29c2317b96c21b7, }, w9: u384 { limb0: 0xea817f28532b8d5198e199dd, limb1: 0x99aeb257fdcdc23c15eb5315, limb2: 0x31387bb67348f155192cf97f, - limb3: 0x22b2500baf6ce28a86979f + limb3: 0x22b2500baf6ce28a86979f, }, w10: u384 { limb0: 0xb0e382b90ef6654c3bd2e20c, limb1: 0x4d096e4e54120fe17325dec0, limb2: 0xc2d4414912600bfec37d116a, - limb3: 0x6524f53a10bd1ed1f7de6ac + limb3: 0x6524f53a10bd1ed1f7de6ac, }, w11: u384 { limb0: 0x8a680e766390ddaa62af47cd, limb1: 0xf23d641db780ebb70c7fbfbe, limb2: 0x531a0f1fc69bf6acd1695e9a, - limb3: 0xebb85352772f284d12c95bf - } + limb3: 0xebb85352772f284d12c95bf, + }, }, E12D { w0: u384 { limb0: 0x46f601ab362202e8276c007d, limb1: 0x586b3c2927dbffdd38a1a44b, limb2: 0x6b07370100418d3fcd5ad5c5, - limb3: 0x1727a4684524eb2175d31f50 + limb3: 0x1727a4684524eb2175d31f50, }, w1: u384 { limb0: 0x73738bbe4943b6aee387caa1, limb1: 0x755dec64232750ca866647b3, limb2: 0x52a64d020d10ab12ab460dd, - limb3: 0x57d77a9e8e6cd838edc1e63 + limb3: 0x57d77a9e8e6cd838edc1e63, }, w2: u384 { limb0: 0x5f2c12da594e423a2108737d, limb1: 0x3aa7e22e27bccb5d4840ac81, limb2: 0x40d4f01ea67f2f082b59dec0, - limb3: 0x42e0115d1c7594745490233 + limb3: 0x42e0115d1c7594745490233, }, w3: u384 { limb0: 0x9fe7471a196e8bd9a0db6863, limb1: 0x27379618cb58b0b55c0acff3, limb2: 0x1d61ee1f8c5c6c2e40b633da, - limb3: 0x54735182a914667a25226c9 + limb3: 0x54735182a914667a25226c9, }, w4: u384 { limb0: 0xeb6d788023db42ceefa73d8b, limb1: 0x983e97ed4491a3cda57fabeb, limb2: 0x9449deaf0a40d6de94e8347d, - limb3: 0x14276d83ecbbeddabdf9bf5d + limb3: 0x14276d83ecbbeddabdf9bf5d, }, w5: u384 { limb0: 0x411db147cc5627ef50c9210d, limb1: 0xa34577b4dcbbb76911a90cbb, limb2: 0x5523d4d906c194a134c2695b, - limb3: 0xda9195159528161fa4960f2 + limb3: 0xda9195159528161fa4960f2, }, w6: u384 { limb0: 0x7df4506c40e2424b24c6b69b, limb1: 0x934699dcb5cf7eab408dbe02, limb2: 0xf98880b746c6ce0f7f41377d, - limb3: 0x9552828c7dcc07d56efc554 + limb3: 0x9552828c7dcc07d56efc554, }, w7: u384 { limb0: 0x7f232224b4fe0b20245f2fd4, limb1: 0xc9d51a652303decdf4907f6e, limb2: 0x71ae0aeab8e0333d7ff3018, - limb3: 0x122dcaa1ba9a8a8613064735 + limb3: 0x122dcaa1ba9a8a8613064735, }, w8: u384 { limb0: 0x697c449335ca5f9d21b7f654, limb1: 0xf8a13e81943a4a18f4896097, limb2: 0xde94de861275afae359c3016, - limb3: 0x112f00e12354b1ad57581a4d + limb3: 0x112f00e12354b1ad57581a4d, }, w9: u384 { limb0: 0xfc2ecc6d437c20102b74f4ae, limb1: 0x3fc77a685f0e4ae94092405a, limb2: 0xbd067589e294b4d708407307, - limb3: 0x13bbf456483cd4566ed59718 + limb3: 0x13bbf456483cd4566ed59718, }, w10: u384 { limb0: 0x920a2dc4d6405a69dafd98b8, limb1: 0xaefdccb098674950b928bb5c, limb2: 0x2e93db68f2ed629f9872a3b1, - limb3: 0xeef615cd28929e56a59bf2e + limb3: 0xeef615cd28929e56a59bf2e, }, w11: u384 { limb0: 0x32fb24bfa3edf65997e82785, limb1: 0x11a11c3e6606acd9cd851f81, limb2: 0x55f01d098689453651a335e7, - limb3: 0xebec00852daa59ee4861f6c - } + limb3: 0xebec00852daa59ee4861f6c, + }, }, E12D { w0: u384 { limb0: 0x49168a1f3a22e43aa9131c14, limb1: 0x6ff87ec4e2647706b3fde592, limb2: 0x9ebb9d7748bb4b630bb9e8ad, - limb3: 0x10bbd67a2e6b8bd12ca2a8fc + limb3: 0x10bbd67a2e6b8bd12ca2a8fc, }, w1: u384 { limb0: 0x4dbbf2265569906a0d24b1bb, limb1: 0x4e4e1893305748d5ffd9fef1, limb2: 0xf13628a4c95b6fc55a9eef6a, - limb3: 0x10b832788eae08063407690b + limb3: 0x10b832788eae08063407690b, }, w2: u384 { limb0: 0x1acce936e2cf8c477b127acb, limb1: 0xd6ec68233a19bba472836ae0, limb2: 0x45a97406d2a99dc971e2c9eb, - limb3: 0x19496c56f34ced68a7cd75ca + limb3: 0x19496c56f34ced68a7cd75ca, }, w3: u384 { limb0: 0x22cc017e588ebe02c9d8944d, limb1: 0x4a12e88d4c855c6e93e88d24, limb2: 0xac08da0adfb221ad320d929c, - limb3: 0x925d1d1ef9c0beba6f0a34c + limb3: 0x925d1d1ef9c0beba6f0a34c, }, w4: u384 { limb0: 0x3de8b6df17b043f047eb3d95, limb1: 0xa0f7fe84c2f3b0c22ea84f0e, limb2: 0x9fc100a34798496f25a17711, - limb3: 0x63551db5a468540a882a52a + limb3: 0x63551db5a468540a882a52a, }, w5: u384 { limb0: 0x6acb9303682c1c8ca5fac965, limb1: 0x5743d3be8818de60a9a1a515, limb2: 0x7df5b7b9df88e4cf55e829b7, - limb3: 0x1452bf2c3fe715937d83b5c5 + limb3: 0x1452bf2c3fe715937d83b5c5, }, w6: u384 { limb0: 0xbe1e1ab9e46108a3da2287de, limb1: 0xe10d9eea83bb012f8e01a28e, limb2: 0x4e0f865fe70bcd3a215ac2d2, - limb3: 0x159fe260119fbb98baf253f + limb3: 0x159fe260119fbb98baf253f, }, w7: u384 { limb0: 0xbe7a9434b3beb015897656bd, limb1: 0x6fa097bc9669f5a4c6e33dbe, limb2: 0x7884c156e8281d85d5a0ee4e, - limb3: 0x2cf0869f40402c8b1642954 + limb3: 0x2cf0869f40402c8b1642954, }, w8: u384 { limb0: 0x95cdf327419c78b6710a6c8c, limb1: 0xd3dded1b3595c3ce4312a36a, limb2: 0xc2ccd8f589dd387f86500444, - limb3: 0xd2c631a38ce47d9e8f0ee1f + limb3: 0xd2c631a38ce47d9e8f0ee1f, }, w9: u384 { limb0: 0x7e6f24ade84350245ac9e72, limb1: 0xb504394fbc5fc5b04e7a8465, limb2: 0xc8fb3405378036f4c5867363, - limb3: 0xcaa4d999eec4b8f23cb8406 + limb3: 0xcaa4d999eec4b8f23cb8406, }, w10: u384 { limb0: 0xe7e990c95a109a8caa63a02b, limb1: 0xde60f93bdf429d379caaf598, limb2: 0x434f9cece5b000d281057b64, - limb3: 0xdca015d5a2e52becd816f7a + limb3: 0xdca015d5a2e52becd816f7a, }, w11: u384 { limb0: 0x1b9bf5b1707249c394b385b4, limb1: 0x591ab99d664c7bb9537bd1bd, limb2: 0x663ec0365e65c06194887eb1, - limb3: 0x6995ffd83bb53d7b9787c81 - } + limb3: 0x6995ffd83bb53d7b9787c81, + }, }, E12D { w0: u384 { limb0: 0x4aa7f5d7f85dd4c4af5e97a3, limb1: 0x4c65d12afeff17a68cd917da, limb2: 0x6530b54704b338c9e41d551b, - limb3: 0x7f7956e7258b204e6bb76fb + limb3: 0x7f7956e7258b204e6bb76fb, }, w1: u384 { limb0: 0xc3b5ae69e8bc70cc1642be88, limb1: 0x9e9f6a61c9d21a413a15b875, limb2: 0xfb2649c3298b59c310e02346, - limb3: 0x61f63de6863a0737ea4c564 + limb3: 0x61f63de6863a0737ea4c564, }, w2: u384 { limb0: 0xe65eff130e3bf3e78e64a8d5, limb1: 0x3c7415a182a906c0c440ec19, limb2: 0xb16f94ad9149d23b673b8b03, - limb3: 0xd54ccfbe6ce28ca435fb866 + limb3: 0xd54ccfbe6ce28ca435fb866, }, w3: u384 { limb0: 0xd59039e2f71aab9d24fe1f50, limb1: 0x77632f67dd17dd934dcdc3b3, limb2: 0x49405e14816e285681f6d108, - limb3: 0x5b0b2403b504c7c3c04fa26 + limb3: 0x5b0b2403b504c7c3c04fa26, }, w4: u384 { limb0: 0xeef17c2cd5a8e39666056b16, limb1: 0x2a2d7664553675a1cd30ab8, limb2: 0x112482fcc1899b14e6ac805c, - limb3: 0x120e02660f9058203246fbf0 + limb3: 0x120e02660f9058203246fbf0, }, w5: u384 { limb0: 0x224a2242169998bd45bcfecd, limb1: 0xf40bce68d096dad390d28e98, limb2: 0xd0f1e29a3fe03f4e210140c9, - limb3: 0x848bb58f7c097a46b3a03e + limb3: 0x848bb58f7c097a46b3a03e, }, w6: u384 { limb0: 0x95f2d0acc60f04b266569319, limb1: 0x7dd58a061d1a3e0141a6e2e, limb2: 0x494f27de393ef818bbd4517d, - limb3: 0xdc72aced2c6f4a5c4819c14 + limb3: 0xdc72aced2c6f4a5c4819c14, }, w7: u384 { limb0: 0xd77df88de226de432ab03d2b, limb1: 0x333622e9b8f46b0713f2f072, limb2: 0xea5a83207f896f6abf8ab0e2, - limb3: 0x4a715b7a58dc6543add0fc9 + limb3: 0x4a715b7a58dc6543add0fc9, }, w8: u384 { limb0: 0xc2816abbab513ff9a9c7b5d1, limb1: 0x82fde4beda8b9e6a5885c858, limb2: 0x1f84be86960bad82590ceca, - limb3: 0xc04235cb1fe7822f16be8bc + limb3: 0xc04235cb1fe7822f16be8bc, }, w9: u384 { limb0: 0xedb79bdcbaa9dc247ec2effa, limb1: 0xa269f5787fd2b0bd9ed885f0, limb2: 0x8bf6b02312251b650e69f258, - limb3: 0xe44406c2cb2d23cae0a6ab3 + limb3: 0xe44406c2cb2d23cae0a6ab3, }, w10: u384 { limb0: 0x29dfd9eaed5f6ee84dbefdc7, limb1: 0x4efb1890226e01d82c5dd985, limb2: 0x485f10c54276bce940584dc7, - limb3: 0x86501a5cf1b338e3103b59e + limb3: 0x86501a5cf1b338e3103b59e, }, w11: u384 { limb0: 0x7302b90bf0cd9d620156bc89, limb1: 0x7f5499c66dc28fbd4c320700, limb2: 0x34cc18aa5ab46c409e63ff3, - limb3: 0x10a91f5f4e43b2f252c415e2 - } + limb3: 0x10a91f5f4e43b2f252c415e2, + }, }, E12D { w0: u384 { limb0: 0xb719f9dec03ab8f164bb3a6b, limb1: 0x20cb7011e080d653d9dcc756, limb2: 0xe2dbfe688c03d53d6a00fef1, - limb3: 0x813beb1246503c45e0f230 + limb3: 0x813beb1246503c45e0f230, }, w1: u384 { limb0: 0xeb0491457c8c6edc155753c1, limb1: 0xd0271cbb54b204bf4b295f5d, limb2: 0xb26e1eb4fab09d1d4faefd5b, - limb3: 0x15dd36f07b01019665228060 + limb3: 0x15dd36f07b01019665228060, }, w2: u384 { limb0: 0xbaee8621d18761c3b2904a73, limb1: 0x816d9cac84eb28a5e7d9e25, limb2: 0xcd1c794f2313f6772e45355d, - limb3: 0x124a87dab04b19db1b8bd588 + limb3: 0x124a87dab04b19db1b8bd588, }, w3: u384 { limb0: 0xfb0de8939a0760770b40a9cb, limb1: 0x917a039550c37cea059c85e8, limb2: 0xc5edbc8267c1b80ef97cef18, - limb3: 0x324f9d878506723c60a4345 + limb3: 0x324f9d878506723c60a4345, }, w4: u384 { limb0: 0x83c439e7eafe348b8671a385, limb1: 0x3bf1e6a663a56bf87b16e6f6, limb2: 0xe5ca68a4b426e6b7c000e7a0, - limb3: 0xc7c38ce48b61dd7513469c4 + limb3: 0xc7c38ce48b61dd7513469c4, }, w5: u384 { limb0: 0x32bad965995076769d669ace, limb1: 0xd5949cc1627771c51c0bb4d3, limb2: 0x5d34827387c8e3fa45ba7b49, - limb3: 0x14a6bccbc3a0c7ead062ac2b + limb3: 0x14a6bccbc3a0c7ead062ac2b, }, w6: u384 { limb0: 0x5221d77a4e1c87eb4fd9fcc5, limb1: 0x9aee6eec1d7ec0ce27a00cea, limb2: 0x8181e5c1b1a7a1b1e6454e58, - limb3: 0x16364ed330a5e5ac2211ed9c + limb3: 0x16364ed330a5e5ac2211ed9c, }, w7: u384 { limb0: 0xd0db08209c90ad48501b74ca, limb1: 0x6b1f991adece59fe7b2d5db8, limb2: 0x2a617c6295c1be2c062284a1, - limb3: 0x15df50360a83866f4fa35544 + limb3: 0x15df50360a83866f4fa35544, }, w8: u384 { limb0: 0x4200fde82b3f83f87f7adc25, limb1: 0xba304360e4b83811e874ab86, limb2: 0xc8370b31cae44f74c2d81952, - limb3: 0x113787d1e314b4473cc3f55 + limb3: 0x113787d1e314b4473cc3f55, }, w9: u384 { limb0: 0xe403a7fa1d756ed0dba8fb34, limb1: 0xccf3814c1270f5a1212a245e, limb2: 0xdc74463c46f3f26d79630a77, - limb3: 0x3dee0d30b7bb94689c6daee + limb3: 0x3dee0d30b7bb94689c6daee, }, w10: u384 { limb0: 0x3c74ad56a6efcb3c5c1d9c8b, limb1: 0x25d0f254898fb3c093097f4, limb2: 0xf5331098d7ed88bea4215633, - limb3: 0x1f45a4472f7628ea0cba303 + limb3: 0x1f45a4472f7628ea0cba303, }, w11: u384 { limb0: 0x7290b9b901cdb657a706a75b, limb1: 0x54d189205a59a1173bb4f663, limb2: 0xe75abfbc13c6d01ac5579e1e, - limb3: 0x345cf5c394a7ac50eee7a9f - } + limb3: 0x345cf5c394a7ac50eee7a9f, + }, }, E12D { w0: u384 { limb0: 0x344bd25fb7f83d9dfae06f6a, limb1: 0x22fde129b885f0c710ff71ac, limb2: 0x783a03d3f6609e73117cb2d7, - limb3: 0xe37e60a61076748d0233945 + limb3: 0xe37e60a61076748d0233945, }, w1: u384 { limb0: 0x29e60bd8298eaf694914bf96, limb1: 0x4d570c1cab177ec2719c02ba, limb2: 0x2b7031090424638824b4463e, - limb3: 0xc26aba31fe7a05a5bbc7e8f + limb3: 0xc26aba31fe7a05a5bbc7e8f, }, w2: u384 { limb0: 0x574b39c83abd56863e6172a, limb1: 0xc54b9b6afa11629a99d4636f, limb2: 0xa12f92bcc3f8005b33eec0d, - limb3: 0x8d4ad3c7fa6a1b149c19888 + limb3: 0x8d4ad3c7fa6a1b149c19888, }, w3: u384 { limb0: 0x2c11d194c9576b7f466f32d9, limb1: 0x7c55ac60cbb6cb8a927390d5, limb2: 0x57cb35bcc9af97e319be764e, - limb3: 0x11c8f585011f475dce234ff7 + limb3: 0x11c8f585011f475dce234ff7, }, w4: u384 { limb0: 0x33bff81455e77429bd4ee8aa, limb1: 0x1cba0458d1e364c2c64ece45, limb2: 0x8c03288861b89e4335b14d14, - limb3: 0x64b8c93dfa5c160f9493484 + limb3: 0x64b8c93dfa5c160f9493484, }, w5: u384 { limb0: 0x2aba92419b5fd3f35844fce4, limb1: 0x429bb226e16a911555eedda0, limb2: 0xc2c54fa7a26bb7296669f9a0, - limb3: 0xedb5a603fb61c4588349061 + limb3: 0xedb5a603fb61c4588349061, }, w6: u384 { limb0: 0x71a798b6e55ee50c3f59159e, limb1: 0x858e9f261b23e89b180b4c4a, limb2: 0x751305c885f1a21af7ed4e1e, - limb3: 0x10964f9f66dc1a6d9df88ce6 + limb3: 0x10964f9f66dc1a6d9df88ce6, }, w7: u384 { limb0: 0x15bad475a51bb3db482ae425, limb1: 0x7254f373bd19c4481767607c, limb2: 0xc11e80391c7c6aaadbfdde61, - limb3: 0x15e22e3a46ee30b26a98c6d8 + limb3: 0x15e22e3a46ee30b26a98c6d8, }, w8: u384 { limb0: 0xf78a0e313b61e2ac5105e1a3, limb1: 0x47ec84e1592e649c61bd8776, limb2: 0xe7189f594aba4ccfc6a5a11c, - limb3: 0x2f7c3dbf00640bb0148a21b + limb3: 0x2f7c3dbf00640bb0148a21b, }, w9: u384 { limb0: 0xc41f29e4dd6b145c6b661df5, limb1: 0x673062ba459b3d042a0cee5f, limb2: 0xcf47a3f2dfef1e55b3e97b8, - limb3: 0x19a49c7db5078a54448a9c32 + limb3: 0x19a49c7db5078a54448a9c32, }, w10: u384 { limb0: 0x7da75932777016e386681a3b, limb1: 0x5dfa78392bafdfe2ea984a6e, limb2: 0xfa0b5780b4722ac13170d67, - limb3: 0xdca20a45aac899ff8534471 + limb3: 0xdca20a45aac899ff8534471, }, w11: u384 { limb0: 0x20d272afe37306d5a752a35c, limb1: 0x3cb6565178072916bd25bcee, limb2: 0x84f886cd8d78cde2acb45c73, - limb3: 0x166ebbd52543e9a2ad6f564f - } + limb3: 0x166ebbd52543e9a2ad6f564f, + }, }, E12D { w0: u384 { limb0: 0x71bb2c644889a2139f430cad, limb1: 0xf453e8802ab1059d1d517b47, limb2: 0x8e72791f4287dfbb95ce68f5, - limb3: 0x19452bfa0813f110ecc74e8f + limb3: 0x19452bfa0813f110ecc74e8f, }, w1: u384 { limb0: 0x2daf0b4287be1963023f46d5, limb1: 0x534ae95e7dd740e2800fd7, limb2: 0xd5e9e2cb66b4ffcb00e4fb35, - limb3: 0xca9bc3e4e55c038c84e0b99 + limb3: 0xca9bc3e4e55c038c84e0b99, }, w2: u384 { limb0: 0x5a1a5909ad03ea711e0f7d50, limb1: 0x4f450184eb018a3bbee2646c, limb2: 0x132d9cf05d2a74ea4af12f6a, - limb3: 0xea601cf5926174f615ae34d + limb3: 0xea601cf5926174f615ae34d, }, w3: u384 { limb0: 0x56009030241b25051e7c60ab, limb1: 0x49653a64f27328b24b36a431, limb2: 0xcb3f2876ee487db94d9a8c8e, - limb3: 0x176ccfe7df56c88d4d77e6b0 + limb3: 0x176ccfe7df56c88d4d77e6b0, }, w4: u384 { limb0: 0x777b0007ff8949336580dafd, limb1: 0x6240fd408535fd5d5e2a239e, limb2: 0x1a8a6e4d29d8df1d1a44f128, - limb3: 0xb900c08323d8fad4afd7461 + limb3: 0xb900c08323d8fad4afd7461, }, w5: u384 { limb0: 0x4804154f8db931d57b3d4952, limb1: 0x589692071a72e7feaab93c58, limb2: 0x4893fc502e75c3fafb3cffa2, - limb3: 0x78ee6e0f71424add9367862 + limb3: 0x78ee6e0f71424add9367862, }, w6: u384 { limb0: 0x56f1e165c65d6701d9c8d72d, limb1: 0xc70ec69746317ab3eb2e5b49, limb2: 0xeb1c562f709f33c0e19f16e0, - limb3: 0xaed371d73f9f750e9779d14 + limb3: 0xaed371d73f9f750e9779d14, }, w7: u384 { limb0: 0xa011a3fd58c09a6e7f3f76d2, limb1: 0x5d34d82a867f4d1c3bd46279, limb2: 0xae3b42bb54a050efd9902ac0, - limb3: 0x10084af27180873684abfaf8 + limb3: 0x10084af27180873684abfaf8, }, w8: u384 { limb0: 0x8c40fae1d51740fbd0c540ce, limb1: 0x69fff344d5f472a1c52d83c0, limb2: 0x7b8df84c1f122b0449441a27, - limb3: 0x142a792323b26d9f32f310d5 + limb3: 0x142a792323b26d9f32f310d5, }, w9: u384 { limb0: 0x4173f4024c385b2b52eabf19, limb1: 0x4debf14fe4434f2cfa941bd8, limb2: 0x62eba10a2346416ae61c056d, - limb3: 0x9baea19f3c57310aa68d30f + limb3: 0x9baea19f3c57310aa68d30f, }, w10: u384 { limb0: 0x470c9a5918ea3b12844359f1, limb1: 0xf97a14494853215d38d3754f, limb2: 0xd23e9687409056661abb709f, - limb3: 0x11394e84e3642ccb7ec05dad + limb3: 0x11394e84e3642ccb7ec05dad, }, w11: u384 { limb0: 0xe732350ab1f36f07bde5c4a7, limb1: 0x265db95a4305a9c4ee911f7a, limb2: 0x330e500f64fd18af7a3c3d78, - limb3: 0x114243c10cb4e98eaa22527c - } + limb3: 0x114243c10cb4e98eaa22527c, + }, }, E12D { w0: u384 { limb0: 0x5c2cfc6a914fa5d7980965e, limb1: 0x80de48670c60e5949512196f, limb2: 0x23d4df1b56009e60e26dc15b, - limb3: 0x9129169ad34aad0171a90d1 + limb3: 0x9129169ad34aad0171a90d1, }, w1: u384 { limb0: 0x1b23a1da94d4d9ad13969f10, limb1: 0x96cb9baefc5a118f384b27d7, limb2: 0xa0992f485a9410d7cce6e205, - limb3: 0xbb7b5611649e884b101d9c3 + limb3: 0xbb7b5611649e884b101d9c3, }, w2: u384 { limb0: 0x60891a8a266a27cee0a09a1c, limb1: 0xfd9b045e70482ec052ffd6c, limb2: 0x4a82d989d3fcfda3d23d0789, - limb3: 0xbefe911ada4c0fd8150056e + limb3: 0xbefe911ada4c0fd8150056e, }, w3: u384 { limb0: 0x7109634c22a12f03bc7575, limb1: 0x3560465146565541ff8326a4, limb2: 0x9e4388d110bae139a5146460, - limb3: 0x18df1bb4889f0e8436e35316 + limb3: 0x18df1bb4889f0e8436e35316, }, w4: u384 { limb0: 0x38819b839225ab70bb79ae23, limb1: 0x2640a881db6fa15743615201, limb2: 0x61801751cd1a8742d06e98e7, - limb3: 0x5b766333766879a731ad833 + limb3: 0x5b766333766879a731ad833, }, w5: u384 { limb0: 0xe3650f335d56af0a89dd5cf7, limb1: 0x5437795ba9d2867f64f5dc8f, limb2: 0x41358fb12e6a5ed63208bea, - limb3: 0x1304e9875fcf1bbe0cf4984f + limb3: 0x1304e9875fcf1bbe0cf4984f, }, w6: u384 { limb0: 0xe06199520d32463c4895fb76, limb1: 0x239e44a1b7472bb9e3928c3, limb2: 0x3faaa7126afa86e0ccac02b4, - limb3: 0xba0b261bef58dc64082d841 + limb3: 0xba0b261bef58dc64082d841, }, w7: u384 { limb0: 0x80579b7ecabe4b1c6bd27e7f, limb1: 0xda54e55ee34e1ce69eb01380, limb2: 0xc5e78f1b6a7bb2c57094c127, - limb3: 0x3d4150c6b4a01b418d9646c + limb3: 0x3d4150c6b4a01b418d9646c, }, w8: u384 { limb0: 0xb2ecc04591fdd668de2d86e2, limb1: 0xa63ad6aa31101e6c4be44934, limb2: 0x77fa5f8d2026c8f0256fcf43, - limb3: 0xea684e10899989d49474ed2 + limb3: 0xea684e10899989d49474ed2, }, w9: u384 { limb0: 0x67f59a72e128d99d7b3a3bdc, limb1: 0x997cb42e388262b6a92cd769, limb2: 0xf23c7a0ea08062d3297e0143, - limb3: 0xce8caed0b31565408c2a7e9 + limb3: 0xce8caed0b31565408c2a7e9, }, w10: u384 { limb0: 0x4be943eafe89a30984531544, limb1: 0xa2d077ae492d257ff11bb7ae, limb2: 0xa222ba8de8769fd438c2817, - limb3: 0x2255ba650dce97fbed316b2 + limb3: 0x2255ba650dce97fbed316b2, }, w11: u384 { limb0: 0x4d21bea6b45611509ce730eb, limb1: 0x340fb492f0558334acb4ccf8, limb2: 0x5c3040b88f05c25acb8b35ce, - limb3: 0x155847f8080fd6991320f9ca - } + limb3: 0x155847f8080fd6991320f9ca, + }, }, E12D { w0: u384 { limb0: 0x25d13b5892adacfaeffe2aea, limb1: 0x2aee4febbea2f40459b107eb, limb2: 0x19c5c4c41dcd61a6f4ba7579, - limb3: 0x13241af723624918fd903b28 + limb3: 0x13241af723624918fd903b28, }, w1: u384 { limb0: 0x8ff9b04334f08e4c49e8ce2, limb1: 0x28c2966f31e0e08817c5cf74, limb2: 0xd60b874eea904a280be515a4, - limb3: 0x18f183d3d62072e6b66f4110 + limb3: 0x18f183d3d62072e6b66f4110, }, w2: u384 { limb0: 0xa22500a03ee8ebf353a15614, limb1: 0x279f607a1d94cf8727ad1ac3, limb2: 0x9d5cc495009b0929965f222c, - limb3: 0x1029d8c9b14ba02bd2caacfa + limb3: 0x1029d8c9b14ba02bd2caacfa, }, w3: u384 { limb0: 0xd425541781902201ec22f2a1, limb1: 0x3c388cd7504114ac6bbb4136, limb2: 0xe6bf8d9f49e199cf7eedb194, - limb3: 0x11afbc718969caad2d3f7e1b + limb3: 0x11afbc718969caad2d3f7e1b, }, w4: u384 { limb0: 0x4f585eeaad43f01857265b34, limb1: 0x77e04d4ab93fd04750b8072b, limb2: 0xc00bc285a02119ea4c1da23a, - limb3: 0x1382db753f8c3905e0e47311 + limb3: 0x1382db753f8c3905e0e47311, }, w5: u384 { limb0: 0x8e61233422edad3f37a8b352, limb1: 0xd8dc773a6ff4059b9a0a4cb3, limb2: 0xeccbe35b88a061471dd93af5, - limb3: 0x104353579926809447957e97 + limb3: 0x104353579926809447957e97, }, w6: u384 { limb0: 0x384c2b731d616e06b9706b87, limb1: 0x6184e0c8e2d7efb1e06154b8, limb2: 0x8167168429698bc7c087ab2a, - limb3: 0x194e8c9db8ffa492523d7bdb + limb3: 0x194e8c9db8ffa492523d7bdb, }, w7: u384 { limb0: 0xef02a778fe63a32428538720, limb1: 0x93bfb3a65c893583a3688fe, limb2: 0x1175ee9952b07130cc8b3cc9, - limb3: 0xb2d14a4629987e71acd5e81 + limb3: 0xb2d14a4629987e71acd5e81, }, w8: u384 { limb0: 0xa816c07b4cc35518ff83c9ab, limb1: 0x1ccdac7487bad56114ab2569, limb2: 0xb390f4a4c15354c6338643b7, - limb3: 0xe8e333eb89e659ea821952e + limb3: 0xe8e333eb89e659ea821952e, }, w9: u384 { limb0: 0xaeaf2010379242754f5b7f2e, limb1: 0xe2f1bb28b645f9572ab5f6c4, limb2: 0xfe5084401ff0479a6a180942, - limb3: 0x18ccc973cf5a7599815ebc7f + limb3: 0x18ccc973cf5a7599815ebc7f, }, w10: u384 { limb0: 0xfbcc6f1a1d48a24160749924, limb1: 0xac2ee791fd07a94084c429e, limb2: 0xaaab252962e1102b2892410a, - limb3: 0x2c0dbce2c7ff58b3fb2dfa6 + limb3: 0x2c0dbce2c7ff58b3fb2dfa6, }, w11: u384 { limb0: 0xee87fa8cda7e1bd7d4ae31, limb1: 0x5530a68eec71db3821d5eba9, limb2: 0x7c8c0427d82dab63686794e8, - limb3: 0xa033e5036049bb12eac6c9b - } + limb3: 0xa033e5036049bb12eac6c9b, + }, }, E12D { w0: u384 { limb0: 0x3959ad574bcacfbd805a4570, limb1: 0xaab9f932204b35ccad7fb2d7, limb2: 0x6fa101b072d1313611453bf6, - limb3: 0x34e294724006c7c710d628b + limb3: 0x34e294724006c7c710d628b, }, w1: u384 { limb0: 0x155d3e49d0ccb5b95d9e1c27, limb1: 0x1b86b23f1cef30c30980eb2a, limb2: 0x874af95f2c59ddcd93d76006, - limb3: 0x1112ad6169cb6e63e65235e + limb3: 0x1112ad6169cb6e63e65235e, }, w2: u384 { limb0: 0x82ed5ab9afa68983dc9ba552, limb1: 0x9357cfcf9e6e32dd53c8c666, limb2: 0x79a16ac1fb53afd7a079392a, - limb3: 0x12a89edea194c648bfaf42e7 + limb3: 0x12a89edea194c648bfaf42e7, }, w3: u384 { limb0: 0x5eca27f7deb3e9c8c10c08f8, limb1: 0x35321bd9e01f65b62ca2aecc, limb2: 0xc5cc73f3e11486f5229b5b4b, - limb3: 0x78a5b9ae5119db042c5e071 + limb3: 0x78a5b9ae5119db042c5e071, }, w4: u384 { limb0: 0xf83ea19e58f36dfb00f5ce55, limb1: 0xa9e201136fafc1bff43560d8, limb2: 0x23fd58ab1bf41c10792d7ffd, - limb3: 0x4ebec45d01da532c22ab1bb + limb3: 0x4ebec45d01da532c22ab1bb, }, w5: u384 { limb0: 0x684275e8d953a79f60899ccb, limb1: 0xb18e874d63bf59ce2c949011, limb2: 0x457fb3e09f148575e172066c, - limb3: 0x150b00dfaa17d829b6dd5c03 + limb3: 0x150b00dfaa17d829b6dd5c03, }, w6: u384 { limb0: 0xd149a0d4da27002a5642c37b, limb1: 0xa71fea7579ac00de168a813d, limb2: 0x117b36766caa30b7cc54cf39, - limb3: 0x5376ad503028c81c1359a67 + limb3: 0x5376ad503028c81c1359a67, }, w7: u384 { limb0: 0x60cf60a90b0f985ac2aacdd7, limb1: 0x20ed4c6d121128b29ca8c7f2, limb2: 0x9d9a5f70c09f70c572cdb9f8, - limb3: 0x33b86259bf794af7ff4b871 + limb3: 0x33b86259bf794af7ff4b871, }, w8: u384 { limb0: 0x247e6ab4517b16d9454b428a, limb1: 0xb3647e9f6093737762a5c15b, limb2: 0x4764994dbefe4268f940353, - limb3: 0x9e9e48f06256acea0e845ea + limb3: 0x9e9e48f06256acea0e845ea, }, w9: u384 { limb0: 0x3fa933373fcb565bb588371f, limb1: 0x53babd42743d6d401b70dc45, limb2: 0xc61d4b87a359271a9318d7c6, - limb3: 0xadd5ef0316a5b7771a60136 + limb3: 0xadd5ef0316a5b7771a60136, }, w10: u384 { limb0: 0x97038a4a9cdb7d2fcec42361, limb1: 0x59ce5adedbdb2b586a82e8ad, limb2: 0xf22dbf3800a4a169d3c6c7e2, - limb3: 0x173f59f580a1bedc1b8f8674 + limb3: 0x173f59f580a1bedc1b8f8674, }, w11: u384 { limb0: 0xccc37b11a6abd0b1c43eca61, limb1: 0xc2e453ad058b0159b3bb8b88, limb2: 0x291724dc796ab3a452decb5e, - limb3: 0x167c4d498cafbbc0709a910b - } + limb3: 0x167c4d498cafbbc0709a910b, + }, }, E12D { w0: u384 { limb0: 0xfb6f2dc21108c4b5151f2644, limb1: 0xb62a4d04de63665a00a57773, limb2: 0x1670b2eaf514bfc8fc53ce22, - limb3: 0x130f529c90d3b568aca6e087 + limb3: 0x130f529c90d3b568aca6e087, }, w1: u384 { limb0: 0x19d81dc0086b598004e3bef7, limb1: 0xbc1384c369a618483eaa5567, limb2: 0x6ad960cc8a498524c1ec078, - limb3: 0xadf4daf613e0d097995aa8d + limb3: 0xadf4daf613e0d097995aa8d, }, w2: u384 { limb0: 0xd29b5724f6b6860e8fa58b56, limb1: 0x8b377db541dbbe2b9fa2b31e, limb2: 0xc3478090367667b8c7c40a96, - limb3: 0xd8ae4c4ab61a3b7237a8395 + limb3: 0xd8ae4c4ab61a3b7237a8395, }, w3: u384 { limb0: 0x18098cdc0aaa9de5d90d4785, limb1: 0x415b7efa58b50be0b4e2264c, limb2: 0x93e4c08ac1b499e1f0d6f521, - limb3: 0xaaf94e53139efb216ce5e0e + limb3: 0xaaf94e53139efb216ce5e0e, }, w4: u384 { limb0: 0xdf4ed64059dec768e050c2f6, limb1: 0xd3c1316e6a8799940ab2d258, limb2: 0x549413f970f60e7dc26655e2, - limb3: 0x35a9aeaa9102416916b2e5f + limb3: 0x35a9aeaa9102416916b2e5f, }, w5: u384 { limb0: 0x7442c43542d7f96a0bdc28a, limb1: 0xf422506e4ba33649decea164, limb2: 0x3aebe61dd6543439953778c, - limb3: 0xabdb4ce21a40381201b2705 + limb3: 0xabdb4ce21a40381201b2705, }, w6: u384 { limb0: 0xbe15abd3c348ddad19da6a10, limb1: 0x9e7d94492b6507ff377fb04f, limb2: 0x3bf64c8180bdc3335507a487, - limb3: 0xecfb1e3d52594e2d494e792 + limb3: 0xecfb1e3d52594e2d494e792, }, w7: u384 { limb0: 0x5b2b533a56d49245ab6788c6, limb1: 0xd86f1adc31c48edff72fd114, limb2: 0x9ab458995b092274677e207c, - limb3: 0x23ca282bada7d44f7cfd31 + limb3: 0x23ca282bada7d44f7cfd31, }, w8: u384 { limb0: 0x3437d71285507fca4851f133, limb1: 0x54ab8dd4a4a49d8ae172e8e0, limb2: 0xdad31a35129c5da141a6a49d, - limb3: 0xbc19f605351e55b755d68d7 + limb3: 0xbc19f605351e55b755d68d7, }, w9: u384 { limb0: 0xa4b79c920e09f351a49d7de5, limb1: 0x984bf5dc7d5fde910df79900, limb2: 0xc5088d8b76f99b9fa536dc41, - limb3: 0x12e688e9f1f4fad3711d14c2 + limb3: 0x12e688e9f1f4fad3711d14c2, }, w10: u384 { limb0: 0x9167cf28f421e605fc529bc1, limb1: 0x245b24732934cfbc08caed20, limb2: 0xc5635e145d2eef79f98fce36, - limb3: 0x180e73749e24faf4fcfd3b2 + limb3: 0x180e73749e24faf4fcfd3b2, }, w11: u384 { limb0: 0xde97ba398aa3a54028ab5184, limb1: 0xfa8f2784a38b5421adc6b4e4, limb2: 0xe3c7c2b40b1fe9a3e96c2c4, - limb3: 0x58f95a0d10e29ba75f4abfd - } + limb3: 0x58f95a0d10e29ba75f4abfd, + }, }, E12D { w0: u384 { limb0: 0xf7cb9c74a2c111c0755ef704, limb1: 0x67a7bdc548d00ca24752db6e, limb2: 0x5fc2a7a5510431696ab76c19, - limb3: 0x15249501304492c16d83291f + limb3: 0x15249501304492c16d83291f, }, w1: u384 { limb0: 0x55f588a277bf5c8a379a1f94, limb1: 0xaecf9b67ff5e644c13cb3993, limb2: 0x6bb2f12ba2cbe23fb8247d67, - limb3: 0x3ed46f7421c5162ca6ba24f + limb3: 0x3ed46f7421c5162ca6ba24f, }, w2: u384 { limb0: 0x2fb039392e1e9eacfe012783, limb1: 0xcc550086b3d01a606a030eb1, limb2: 0xdfc6d4c564c0695c34dfb6e6, - limb3: 0x11edbc923f8ebc5aefd70289 + limb3: 0x11edbc923f8ebc5aefd70289, }, w3: u384 { limb0: 0x59e9ad36dff5f9b289a66f0b, limb1: 0xfe0cd6c3385d435faea3fe13, limb2: 0xb1111302e6d8f88878cd2fb2, - limb3: 0x1073ed5e414f7f7e3aab4cc9 + limb3: 0x1073ed5e414f7f7e3aab4cc9, }, w4: u384 { limb0: 0x6d6ea80c99c8af39666df7b4, limb1: 0x87e26f50b2a298723ca31b49, limb2: 0x95aef7220ca22268bf66ed32, - limb3: 0x6cc0c6596529932a385f7f9 + limb3: 0x6cc0c6596529932a385f7f9, }, w5: u384 { limb0: 0xaf8a21cc737ec216405b6b30, limb1: 0x2731f6ef5d655a1368fc7bd1, limb2: 0xd5428f0c318cd5fa09e854c5, - limb3: 0xade1e414a93505d63733946 + limb3: 0xade1e414a93505d63733946, }, w6: u384 { limb0: 0x3fd711e86acf882a1f403cb2, limb1: 0x7c503cfca897c07df4c5cb3b, limb2: 0x46843cb1e9ef833a5869650d, - limb3: 0xa033c2879d1aaf7a54d0c45 + limb3: 0xa033c2879d1aaf7a54d0c45, }, w7: u384 { limb0: 0x2236aa04d4af4cd7a32dc9e2, limb1: 0x480f9dcff78b12a690d0cb8d, limb2: 0x6fa9da69e4a1c1a4fae93140, - limb3: 0x4ecc0f925cf79952426f74 + limb3: 0x4ecc0f925cf79952426f74, }, w8: u384 { limb0: 0x281d06a57030b61135cef166, limb1: 0xb35e03f80e56523abe9bd62d, limb2: 0xbff83152f2b6238494d8da43, - limb3: 0x16f23db2174fd855bbc9f573 + limb3: 0x16f23db2174fd855bbc9f573, }, w9: u384 { limb0: 0x2ae34f5f1b961e31cff788e6, limb1: 0xd5208cd2ba55b284bcb6a740, limb2: 0x8def14ec173b046b77cee877, - limb3: 0x8b924b8f096c955fa87bdb + limb3: 0x8b924b8f096c955fa87bdb, }, w10: u384 { limb0: 0xdd1563aa8adc394ba1bb510e, limb1: 0xe6a4f47eafd98a1d57f7618c, limb2: 0xf0fde0fde71032421d34c342, - limb3: 0xbe1046e6670770c40f83d9e + limb3: 0xbe1046e6670770c40f83d9e, }, w11: u384 { limb0: 0x6c23f54e964a04cc93accd7a, limb1: 0xd64796555b1e02e20e137d7a, limb2: 0xd6306e03d1e023aebfd884b0, - limb3: 0xeb55ee41c0d9903f5481cfb - } + limb3: 0xeb55ee41c0d9903f5481cfb, + }, }, E12D { w0: u384 { limb0: 0x4fd806a0c08d7cb1d8f5576, limb1: 0x947475d806bb8e73d72c6bb1, limb2: 0x58fd15305c66b78a447558b5, - limb3: 0xa07c3e28c6576058ea12204 + limb3: 0xa07c3e28c6576058ea12204, }, w1: u384 { limb0: 0x58244662118b67b83218a6eb, limb1: 0xebb5e2e2db5b9e0a6b3f5b2e, limb2: 0x3e1042fb26fbbae62ffe0728, - limb3: 0x15c39aa7cb6464b8bbdd9a54 + limb3: 0x15c39aa7cb6464b8bbdd9a54, }, w2: u384 { limb0: 0xf23ae0578867c5ec6121c5a0, limb1: 0x839ffceb9d2fd41b0648690c, limb2: 0x957e160add723e94eea2c76d, - limb3: 0x11c8875c282e2bffa22a4025 + limb3: 0x11c8875c282e2bffa22a4025, }, w3: u384 { limb0: 0x436161c822e4491dd8ccef2a, limb1: 0xdeef4e125ba9fdcb262e6af2, limb2: 0x1402cd92e91d2d46e4a5d6ed, - limb3: 0xa15d9e59cadf2cd29423a8f + limb3: 0xa15d9e59cadf2cd29423a8f, }, w4: u384 { limb0: 0x689749a0ebda6921732143a0, limb1: 0x5baf655dbcffa4154f1278cd, limb2: 0x274b7ef4bb61387d8ae1f60c, - limb3: 0x17824661dbd47612ae5a5460 + limb3: 0x17824661dbd47612ae5a5460, }, w5: u384 { limb0: 0x38248e96afa3964a27770f54, limb1: 0xcdbf91a995b3b0f56e64c291, limb2: 0xd6305f44de865a7dc66ad423, - limb3: 0x181c47228172dfa2880b24ee + limb3: 0x181c47228172dfa2880b24ee, }, w6: u384 { limb0: 0xf831ce78619934b9c066f9ad, limb1: 0xbb8b831e8ae9c18e7247d2f5, limb2: 0x9e4e8fed49a8161f9a7d6f41, - limb3: 0xd6f8228befd39ea769d2e22 + limb3: 0xd6f8228befd39ea769d2e22, }, w7: u384 { limb0: 0x26f6e50a7dae368f03b9203f, limb1: 0xe8254786b607c0c264159695, limb2: 0xf8df238611d760e21a824ae9, - limb3: 0xcb9d2a40bc4c198dadc7fc7 + limb3: 0xcb9d2a40bc4c198dadc7fc7, }, w8: u384 { limb0: 0xa31618232fc0a276fa8a13bc, limb1: 0xb2e5fd1cbe70792b1ae5be4e, limb2: 0xcad2bef61d3eb16dbe304133, - limb3: 0x746908f8e2904c17b88295 + limb3: 0x746908f8e2904c17b88295, }, w9: u384 { limb0: 0xf7fbbcd3a09d95a4b4b4271d, limb1: 0x53013b5b2cb87122125471ff, limb2: 0xb8ada555618e2cdd4bffab84, - limb3: 0x9f993ee384df146cd8df4ea + limb3: 0x9f993ee384df146cd8df4ea, }, w10: u384 { limb0: 0x7d6ce0b7c1cb3e2498f54294, limb1: 0xa261c1bd75d838bfb7082bf4, limb2: 0x4006f75c1d6b50133de4326f, - limb3: 0x836a75393f4c32f8c93b0f + limb3: 0x836a75393f4c32f8c93b0f, }, w11: u384 { limb0: 0x516f6021bc449c6442591c40, limb1: 0x846385bc47d8d5d7462de9de, limb2: 0xa46c395391341a99e731bb63, - limb3: 0xe3c1b8abb46081754501420 - } + limb3: 0xe3c1b8abb46081754501420, + }, }, E12D { w0: u384 { limb0: 0x7ecbc81a3c1252aed2cb5af1, limb1: 0x3383e4f86811fd96196f89a5, limb2: 0xe681090ab10830dd807c3443, - limb3: 0x1ee0f0a189fe6cf9eb5af7f + limb3: 0x1ee0f0a189fe6cf9eb5af7f, }, w1: u384 { limb0: 0xedf1f516e56499b6fb02c1c8, limb1: 0xc1f92022dc8805e7d95a1106, limb2: 0xe33f8dab8d7737441529e8ac, - limb3: 0x146e3b7474e409260572871b + limb3: 0x146e3b7474e409260572871b, }, w2: u384 { limb0: 0x9673e873b8a7c3418ebf8d4c, limb1: 0x7a783f69e749f4f29453c545, limb2: 0x69f350e484834de9d8fa34a, - limb3: 0xe9ca5bcc844976bf619effc + limb3: 0xe9ca5bcc844976bf619effc, }, w3: u384 { limb0: 0x5fcf82227a8ea8b3254820c9, limb1: 0xa2bd05419c073d586a41cf6e, limb2: 0xe518de71e6ac729107926d7c, - limb3: 0x844ea5cfff361a9705930cc + limb3: 0x844ea5cfff361a9705930cc, }, w4: u384 { limb0: 0x429c3618d116a80c181685fa, limb1: 0x486ce09af708401f4a6c7ee6, limb2: 0x15bbecd706ca76d65704416c, - limb3: 0x142489c0fe2e40be632effe2 + limb3: 0x142489c0fe2e40be632effe2, }, w5: u384 { limb0: 0x6c35d18f3e06bc51f762cf95, limb1: 0x6e5f3313f423ad6904300234, limb2: 0xc28cb4900bf47d29c3fbfc30, - limb3: 0x18d6a6340f2f9ddc473dcd7e + limb3: 0x18d6a6340f2f9ddc473dcd7e, }, w6: u384 { limb0: 0x77f90efb84d14408e59f1c03, limb1: 0xb049cbfe6bcd8d08b28e8ce9, limb2: 0xbb35bf3bf049671de2d64cff, - limb3: 0x173d7f74864e93e2060343f3 + limb3: 0x173d7f74864e93e2060343f3, }, w7: u384 { limb0: 0x52c3924e0df7f728e4b119c9, limb1: 0xeec6fa434e31cf84d10575b3, limb2: 0x34fc4325ef25b4772cf88be3, - limb3: 0x103bdbad7f3c5e4347f78e23 + limb3: 0x103bdbad7f3c5e4347f78e23, }, w8: u384 { limb0: 0x50b2cfe1dc1c01ae0e5969a, limb1: 0x2a9b3221a11e330465ef0595, limb2: 0x958ce0c16afbe3fc0276051d, - limb3: 0xfabbe257f75d65c2add5f22 + limb3: 0xfabbe257f75d65c2add5f22, }, w9: u384 { limb0: 0x6b8eb7bd4aefc50c3c79931, limb1: 0xb8857fda7cc456e68b528569, limb2: 0x95a710c446e6af9dd11f75b3, - limb3: 0x15f22d94f0a51b34b4dd51c3 + limb3: 0x15f22d94f0a51b34b4dd51c3, }, w10: u384 { limb0: 0xc47dbd473089bd4709414e0f, limb1: 0xf549310959600107d2281325, limb2: 0x909324fa4a1e59755e5aca2c, - limb3: 0x12f9ee461775892889de4320 + limb3: 0x12f9ee461775892889de4320, }, w11: u384 { limb0: 0xd8dd2af7e3ae6a18cd4251d3, limb1: 0x41f1e4e4c3e7daf40c677808, limb2: 0x4748497b4e11c79b39dce7e3, - limb3: 0x53e7ea7549b6f013ee9cb12 - } + limb3: 0x53e7ea7549b6f013ee9cb12, + }, }, E12D { w0: u384 { limb0: 0x7380438f87399c7e3609ef99, limb1: 0xae251f1bb307841b8e3b97ff, limb2: 0x10586f0049d74ac499bb10f1, - limb3: 0x15d69ce6494624b9dfaf148a + limb3: 0x15d69ce6494624b9dfaf148a, }, w1: u384 { limb0: 0xe70f2186c12698f57901bcc, limb1: 0x6853377d8eb10f90ffcddf81, limb2: 0x7fe7ce6260e8ccacd34aa93a, - limb3: 0x11c3d29b6bed3f8ec66ccf9e + limb3: 0x11c3d29b6bed3f8ec66ccf9e, }, w2: u384 { limb0: 0x8de574f1fa8df34dd4436614, limb1: 0x3d2468e8d3fe2f1b89bb129a, limb2: 0xe5c565c90b6e45bf3d6ef92a, - limb3: 0x2fdec231c7a259d6b274cc7 + limb3: 0x2fdec231c7a259d6b274cc7, }, w3: u384 { limb0: 0x381afcca5edd7ab2c2ee55d3, limb1: 0xdb0d28a944c5b5e6f1de9d1a, limb2: 0xca789736a75cd4847472db80, - limb3: 0xb8857429befc7d11918d904 + limb3: 0xb8857429befc7d11918d904, }, w4: u384 { limb0: 0x8aae77fae75932fd56ef1ed3, limb1: 0x1dcb6c6eff6602f4efc533c2, limb2: 0xb0853b8091023746c6956eb4, - limb3: 0x158e6193740bfac3349cae31 + limb3: 0x158e6193740bfac3349cae31, }, w5: u384 { limb0: 0xae2e48564c4d12a418a56403, limb1: 0x668c45ed4e3b77890ca488d, limb2: 0x758af6b95f421af2b9e80dda, - limb3: 0x829bbd81deb660c5c410ebc + limb3: 0x829bbd81deb660c5c410ebc, }, w6: u384 { limb0: 0x2b33f8be265845893a4d2cdf, limb1: 0xadab60575595c27d3a695f56, limb2: 0x2bb38114e26dcff01b3c7a, - limb3: 0xb15f5d3fcb62c5c1cb0103d + limb3: 0xb15f5d3fcb62c5c1cb0103d, }, w7: u384 { limb0: 0xf547b3d2ddb97a0ec597c1e4, limb1: 0x4dfe359dcb7415317a0d96c6, limb2: 0x4db32c68ccb2fff63d900b3a, - limb3: 0xf40331313d149fd78f8999f + limb3: 0xf40331313d149fd78f8999f, }, w8: u384 { limb0: 0xe1859718ba67a65d2f7dd9e1, limb1: 0x7f66d368473637540d2de335, limb2: 0x94d70dd4d71f90a6b8996edd, - limb3: 0x7f11bf976be5160fff2b5e8 + limb3: 0x7f11bf976be5160fff2b5e8, }, w9: u384 { limb0: 0xcb043aa483655ca971eb708, limb1: 0xc6514161d25e989cfe0eb910, limb2: 0x4b03463f10bd5486a5150bf6, - limb3: 0x19207d670b11d96e63c9c7f3 + limb3: 0x19207d670b11d96e63c9c7f3, }, w10: u384 { limb0: 0x518d10761529279fc06a4e8, limb1: 0x64139e4ea8660ee98b864aea, limb2: 0x1aa32f01ce8213c10b08030c, - limb3: 0x15064a81f43178365db85227 + limb3: 0x15064a81f43178365db85227, }, w11: u384 { limb0: 0x14ddb10fd846711efe04e524, limb1: 0x34676af4100eeb93fc894295, limb2: 0x2bbf7682b985b2187e2ad98c, - limb3: 0xb2c84517ed0cae95c0fd980 - } + limb3: 0xb2c84517ed0cae95c0fd980, + }, }, E12D { w0: u384 { limb0: 0x7053639bdef1a630ad4f5af6, limb1: 0x739c43473d55a600db56c9ab, limb2: 0x6a2e59a43b3e0b5a88499b12, - limb3: 0xe1d00aa3380a50f80ff85d2 + limb3: 0xe1d00aa3380a50f80ff85d2, }, w1: u384 { limb0: 0x3f2e33d1598a70be6cb11313, limb1: 0x1486afa60b15b33b54cfb747, limb2: 0x81bf2a71d10300239b7aaf1f, - limb3: 0x9b35119c385fc20a0386282 + limb3: 0x9b35119c385fc20a0386282, }, w2: u384 { limb0: 0x31d6979bfefd74931a576d6, limb1: 0x90a0c3530607355c33b0fd0c, limb2: 0x65fba06248d03e088f1d48a, - limb3: 0x11395dbf5901f9d349f3b984 + limb3: 0x11395dbf5901f9d349f3b984, }, w3: u384 { limb0: 0x4291c385689ad964bc8bf72a, limb1: 0xb0737aaac176737a1ecf6ac3, limb2: 0xce8664f73ce5a6aaf0f10ca7, - limb3: 0xb6a7d5c46340b57ed0472e5 + limb3: 0xb6a7d5c46340b57ed0472e5, }, w4: u384 { limb0: 0xd4e72b1d919d76e6f7c68488, limb1: 0xec2f0d04a7a2f7d4d7a31590, limb2: 0x4112c57e0a9dcfedf038c956, - limb3: 0x1928f6565ead905c25593eb9 + limb3: 0x1928f6565ead905c25593eb9, }, w5: u384 { limb0: 0x92b1d18299192443eab3cf31, limb1: 0x363339f1c99447dbe74383f3, limb2: 0xdcac6005cc60106f88576c3a, - limb3: 0x261463ad40df4e97165053e + limb3: 0x261463ad40df4e97165053e, }, w6: u384 { limb0: 0x45616d4a15bc7f5c57750089, limb1: 0x19ac60bbc57465009e3dcb1b, limb2: 0x7ceb498d022dfcfcae9aec60, - limb3: 0x19c44919e9fa2e772d9dccf7 + limb3: 0x19c44919e9fa2e772d9dccf7, }, w7: u384 { limb0: 0x74d7db77e3c5ea2003e6de14, limb1: 0x7f694b25adcf375071dc2f54, limb2: 0xf3d7f4f1a8dcb8d0debb2bcd, - limb3: 0x14c0504bbd68a3b627e1d579 + limb3: 0x14c0504bbd68a3b627e1d579, }, w8: u384 { limb0: 0xbf696e7d082490ab2a810909, limb1: 0xdce3d8459c86e173b9b814d9, limb2: 0x7d35e60fe95d54b4297c06ea, - limb3: 0xe0428d15a83059ac75d4252 + limb3: 0xe0428d15a83059ac75d4252, }, w9: u384 { limb0: 0xf15b4e3caed564cfc1168aa8, limb1: 0xfa6ecde037cb585b65aa3b52, limb2: 0xe2a2b5aede3c734d6530056f, - limb3: 0x14109312a06f6c1e8250362 + limb3: 0x14109312a06f6c1e8250362, }, w10: u384 { limb0: 0x9f4a8b4546befff0a6481af8, limb1: 0xdce5e22b5ea0a42e8928c84a, limb2: 0xe59648247bf7715701129ca8, - limb3: 0x1209e1d34b0c1d14ec7839cf + limb3: 0x1209e1d34b0c1d14ec7839cf, }, w11: u384 { limb0: 0xf2a74f539bad5a4682af3491, limb1: 0x93097b4ae591134223d3a872, limb2: 0xd33d11a3041a2bd1bbd4cfce, - limb3: 0x43584ae57d4f086e437d219 - } + limb3: 0x43584ae57d4f086e437d219, + }, }, E12D { w0: u384 { limb0: 0xccd3861f8b36806faafb781d, limb1: 0x6dda1400a7c6d4456935dd83, limb2: 0x20b444358405090025a9b7cf, - limb3: 0xf54e285bf8f9c32d389d6db + limb3: 0xf54e285bf8f9c32d389d6db, }, w1: u384 { limb0: 0xe9b4bf3d1c5b280abc31ebfc, limb1: 0xd862307b44fcf93aae7b11ba, limb2: 0xe232ba534a45a34a7432f6ea, - limb3: 0x82261cd3aeaa85fbe4c96df + limb3: 0x82261cd3aeaa85fbe4c96df, }, w2: u384 { limb0: 0x2c7b8a630170b7f631239855, limb1: 0x853e2961c8b4130c85116507, limb2: 0xbf9ce9a53e945b9c6d7b5f1b, - limb3: 0x145d89cb83700774a22db1bc + limb3: 0x145d89cb83700774a22db1bc, }, w3: u384 { limb0: 0xa74c5c7e5df8d3667adf1671, limb1: 0x52de2b913d78406ec8f99a, limb2: 0xc812988870f9f7517c79ff58, - limb3: 0xb223e7cfbc3fc377b1fe75d + limb3: 0xb223e7cfbc3fc377b1fe75d, }, w4: u384 { limb0: 0x8cfdf31674b93a20c992a24b, limb1: 0x8f21312988d7da962d321bc0, limb2: 0x2dbf0528a791ea0d5f981e13, - limb3: 0x15aac1f8e330eff4e20ab3fe + limb3: 0x15aac1f8e330eff4e20ab3fe, }, w5: u384 { limb0: 0xf685ec483cea983d1a69a4d7, limb1: 0xb82b746d8797df323095a302, limb2: 0x534715a12884e752ec62c600, - limb3: 0x1639bc27f80a1b9be7937efa + limb3: 0x1639bc27f80a1b9be7937efa, }, w6: u384 { limb0: 0x2bfbdf97d360b348dc75d028, limb1: 0x3e93c81c56c9d7703ac2d15, limb2: 0x3ecb33be37dc97e5a75ba27, - limb3: 0x14ec70fdfe7e62ee63fd9e82 + limb3: 0x14ec70fdfe7e62ee63fd9e82, }, w7: u384 { limb0: 0xecabff100ee999721d0aeedb, limb1: 0x408694288104b8240aefef54, limb2: 0xae05168387150e2c1c0b069b, - limb3: 0xf14bd4f7226a16796796e6b + limb3: 0xf14bd4f7226a16796796e6b, }, w8: u384 { limb0: 0x779e398587211c93d2d419af, limb1: 0xf33f48e9339556264944ed85, limb2: 0x641e8d0911a2129916d623a9, - limb3: 0xda22254161644c0d73135b3 + limb3: 0xda22254161644c0d73135b3, }, w9: u384 { limb0: 0x97edd0906ebc8269feff2745, limb1: 0x9faf40b4f990563dbb8b6a9b, limb2: 0x55e5557db5d8f738aca6cfce, - limb3: 0xf13fb2d9a5e619a1e10167d + limb3: 0xf13fb2d9a5e619a1e10167d, }, w10: u384 { limb0: 0x7fc2ba107c37bf200a3d128e, limb1: 0x9bb0216dec247ae73a8d8f46, limb2: 0x1ddfeeb377abfa6a56ce7bd7, - limb3: 0x152f629874880c14a7fc9709 + limb3: 0x152f629874880c14a7fc9709, }, w11: u384 { limb0: 0x29793cf627b6c775b761a603, limb1: 0x2d71f3cf25ee0423e7c54f3c, limb2: 0x8470327513832374e529222e, - limb3: 0xd8a7063ea9e13a1184eb587 - } + limb3: 0xd8a7063ea9e13a1184eb587, + }, }, E12D { w0: u384 { limb0: 0xc98374fb3b44c0e6942ba4a3, limb1: 0x67de3f6c038ef1323a6aa322, limb2: 0xb2277b3b25524d61527bacd7, - limb3: 0x14d40787156e7ebfa93f6f99 + limb3: 0x14d40787156e7ebfa93f6f99, }, w1: u384 { limb0: 0xced08def20a48570ef18bf4, limb1: 0xdb6983a66359c51f2ab71327, limb2: 0xe099b96500cdab825f87b7fd, - limb3: 0x14e67481e4aec8ffb05fbb17 + limb3: 0x14e67481e4aec8ffb05fbb17, }, w2: u384 { limb0: 0x7f465e87c522bb9f7df6a9f9, limb1: 0xda4ccc6d47457fd8073dac50, limb2: 0x52533bf52010ae930ae384f3, - limb3: 0x36f4d9a630f659ee0049940 + limb3: 0x36f4d9a630f659ee0049940, }, w3: u384 { limb0: 0x9458ec32cf854cf87179a081, limb1: 0x3708fddeb7317f93acfb1b9, limb2: 0x45e25f7a68c0c63865dc7169, - limb3: 0x17cc7f665ab618af9bb8ed0a + limb3: 0x17cc7f665ab618af9bb8ed0a, }, w4: u384 { limb0: 0x85fbbd958c9517c58a72f4eb, limb1: 0xeb94429d923c8f57aa64659d, limb2: 0x53d22d4278caae28dee0ab98, - limb3: 0x77749f245b0607f9a8266dc + limb3: 0x77749f245b0607f9a8266dc, }, w5: u384 { limb0: 0x4a9e638a04d4cdefa92a921b, limb1: 0xa751ed26127bdae0471e4d66, limb2: 0xcaa20c710aaaf86cf3509376, - limb3: 0x754e574bc910d618dc31dea + limb3: 0x754e574bc910d618dc31dea, }, w6: u384 { limb0: 0x5d9f22fb58b20cb89b60a7a2, limb1: 0xa2d39e0d29c61b355f9f8221, limb2: 0x5b42ad2b0cdd40f198fb4933, - limb3: 0x146b356a1037d82e3fd60a35 + limb3: 0x146b356a1037d82e3fd60a35, }, w7: u384 { limb0: 0x8c8f7c35ea3ba1960632cbb2, limb1: 0x88989dfeb7c7f7c108812866, limb2: 0x5d65fb080c6c9703c3de7da3, - limb3: 0x17f80c85d8708e2c4e0f76db + limb3: 0x17f80c85d8708e2c4e0f76db, }, w8: u384 { limb0: 0xe72c663563a2683a88282047, limb1: 0x9f896928b8f68240ae87318d, limb2: 0xae2fe9dae790ab09f051d396, - limb3: 0x103c85e204ea356a1df02170 + limb3: 0x103c85e204ea356a1df02170, }, w9: u384 { limb0: 0x8b2a42e00385585058c6871d, limb1: 0xca757495dd55992019b0532e, limb2: 0xddc38038d9b6c6b0c1191c19, - limb3: 0x456598325b3e07c16f6cb90 + limb3: 0x456598325b3e07c16f6cb90, }, w10: u384 { limb0: 0xc0a98bdc8196fd8b9bf4edf2, limb1: 0x971354e815f09e434646dc35, limb2: 0x8848e0035a10ca071f522483, - limb3: 0xea464fda93a90c2f0c6cbc + limb3: 0xea464fda93a90c2f0c6cbc, }, w11: u384 { limb0: 0x125314c8b22d6dc1d849816f, limb1: 0x81596b8b1354b4a79eff397b, limb2: 0x6fd4eae90dc4ca7a020c0d58, - limb3: 0x633d54eba634239e2224280 - } + limb3: 0x633d54eba634239e2224280, + }, }, E12D { w0: u384 { limb0: 0x7664507d65379e09b0cc8081, limb1: 0xa7214a05165e9dd1cb822746, limb2: 0xdaa4b32cd1894fcb5869da3e, - limb3: 0x11dd5a0d713ff9a4216dc02 + limb3: 0x11dd5a0d713ff9a4216dc02, }, w1: u384 { limb0: 0x72c884220671860deab6fe4c, limb1: 0xf7edb308d081aad11737b2aa, limb2: 0x179a550ac8de7988cb51745f, - limb3: 0x18c92348bd738ff79eb51da6 + limb3: 0x18c92348bd738ff79eb51da6, }, w2: u384 { limb0: 0xd0997e854e959e9fcf50612a, limb1: 0x731bde68fbe33e65958e25a5, limb2: 0x5c75550140147ca50f03f4c1, - limb3: 0x1724f1c48007969b733593aa + limb3: 0x1724f1c48007969b733593aa, }, w3: u384 { limb0: 0x8cdd8173b838cbfa5e716055, limb1: 0x7cce9c3704cca203a84d1eaf, limb2: 0x609798ba1aa28ffaff08d41, - limb3: 0x17815ba1eca35154689bbbd + limb3: 0x17815ba1eca35154689bbbd, }, w4: u384 { limb0: 0x1c7e64b6dbfeaca240b5ce1c, limb1: 0x334cf124f9c76e1e2c54997f, limb2: 0x64e29de5338a04c86a571534, - limb3: 0x4322d1d2e68ad82e5576014 + limb3: 0x4322d1d2e68ad82e5576014, }, w5: u384 { limb0: 0x8e8720162d72df7b82b54ddc, limb1: 0xf9a9d4e498d4932f72861daf, limb2: 0xa62955f8bf4d62ab5326d370, - limb3: 0xe10f22c8698bbbb16ce96ab + limb3: 0xe10f22c8698bbbb16ce96ab, }, w6: u384 { limb0: 0x7e12194ea7c3af3ca1f4627e, limb1: 0x57c3921b26b0c0f8ae782c80, limb2: 0x7807e0e72a965c15e92a3692, - limb3: 0x10d5c83fc7687bdeda2fa6a9 + limb3: 0x10d5c83fc7687bdeda2fa6a9, }, w7: u384 { limb0: 0x6c3118b5d18f2ba8f3358410, limb1: 0xdbd08498b72968ac4f865556, limb2: 0x1606bcc23a2fefcd7b98b187, - limb3: 0x1836f088bafe98f9f35b628d + limb3: 0x1836f088bafe98f9f35b628d, }, w8: u384 { limb0: 0xb3ec8857a717227fd2e410c7, limb1: 0xf71681b713d44faee8ccade2, limb2: 0x1a889225d6c3ae543975d7ab, - limb3: 0x4042e6058ba0ed258215db8 + limb3: 0x4042e6058ba0ed258215db8, }, w9: u384 { limb0: 0x92dca3c8ef22f5c5ad68411e, limb1: 0xea04b401e31bd03c03f45391, limb2: 0xf274818f73907b389eee6555, - limb3: 0x110981e160f9a1144b049f6d + limb3: 0x110981e160f9a1144b049f6d, }, w10: u384 { limb0: 0x7809289b28677816d3d20f51, limb1: 0x2b325b38281ca3d9447717a8, limb2: 0x750a16aae8cec71a981e64f9, - limb3: 0x4c4bb16a4d45dbfcdd6de82 + limb3: 0x4c4bb16a4d45dbfcdd6de82, }, w11: u384 { limb0: 0xa19d86a548a59b31bee7330d, limb1: 0xbab4358db8efdc356098935c, limb2: 0xecf4b1e2071637cfa269d441, - limb3: 0xfdc8efae68b158880892941 - } + limb3: 0xfdc8efae68b158880892941, + }, }, E12D { w0: u384 { limb0: 0x731a6668a56fb2e638b5386d, limb1: 0x2f6050b816d5da56d8b4aeac, limb2: 0x9f8cc60a1825ed2bc48ced64, - limb3: 0x14d27ab7d2dd9d4dfc62f9b4 + limb3: 0x14d27ab7d2dd9d4dfc62f9b4, }, w1: u384 { limb0: 0x36e235511e3aba57cd7a4166, limb1: 0x651418ba41dd7e611da499af, limb2: 0xa2443f20594fb2be6da75cc3, - limb3: 0xe5b76d2ac4d96fc0a324e20 + limb3: 0xe5b76d2ac4d96fc0a324e20, }, w2: u384 { limb0: 0xd9a45f081496460d0c0ed0ac, limb1: 0x2e77975aa2352664d6adb2e4, limb2: 0x2faa41b81ca6013a7f61b19a, - limb3: 0x486d9ef9a7963973b526016 + limb3: 0x486d9ef9a7963973b526016, }, w3: u384 { limb0: 0xa30b18466742d1c3215c7ca9, limb1: 0x76bb8e0f21ed01073e7cd26d, limb2: 0x72e300f6162dfb4f824322b3, - limb3: 0x170086077deae464de32c314 + limb3: 0x170086077deae464de32c314, }, w4: u384 { limb0: 0xb98779fe717a76947ffc64a8, limb1: 0x22829a2223d7a3c1e115868, limb2: 0xfd92daccd29c35d6e9891f91, - limb3: 0xc8cd313b3bac470a84c06c + limb3: 0xc8cd313b3bac470a84c06c, }, w5: u384 { limb0: 0xd7fb2ab79ade8db9f0753816, limb1: 0xc8e90a86892a3f9973f3a709, limb2: 0x439586d8958df5477546a8c9, - limb3: 0x11c5062a433f8a665d2fec03 + limb3: 0x11c5062a433f8a665d2fec03, }, w6: u384 { limb0: 0xec349f8ca4e9628ef8ad1d0f, limb1: 0x41ed7cebf144cf0991fd449f, limb2: 0x83fd7077e122719cd9a150db, - limb3: 0x4f4f8cab62516e0bd8eed4 + limb3: 0x4f4f8cab62516e0bd8eed4, }, w7: u384 { limb0: 0xd65b0369dac2474a3360256c, limb1: 0x73aa7477aa55f747c118bde4, limb2: 0x166c215a026d96f815575905, - limb3: 0x19ef4018eacc8cec0d7c2952 + limb3: 0x19ef4018eacc8cec0d7c2952, }, w8: u384 { limb0: 0xaf93f1012698bd074cae6d2a, limb1: 0xf1dd95a8d7d4c5624dc77fab, limb2: 0x22ad91dc94c520bed552ce68, - limb3: 0x7149e3ea5cbb31d49fa48d4 + limb3: 0x7149e3ea5cbb31d49fa48d4, }, w9: u384 { limb0: 0x309be21144e9429149f5ea74, limb1: 0x5a23ebfb744401c93d028104, limb2: 0x1328c0e96b3dc98cf9ca2178, - limb3: 0x4a0a0910ab2af1883e3bd42 + limb3: 0x4a0a0910ab2af1883e3bd42, }, w10: u384 { limb0: 0xd096a251af3d32c676bb4288, limb1: 0x81a2455886a5de7de17a3a3d, limb2: 0x785780c752a0fec2ab697d7f, - limb3: 0x424eb933d2f578926758c8c + limb3: 0x424eb933d2f578926758c8c, }, w11: u384 { limb0: 0x9bbf4ea4c5f12c0f3a80655a, limb1: 0x6c3952358a56be8b39ffc122, limb2: 0xaabdbf346cb1e900c6fa6ef7, - limb3: 0xfc816c836e1f58f9bc2ee34 - } + limb3: 0xfc816c836e1f58f9bc2ee34, + }, }, E12D { w0: u384 { limb0: 0x423f069d338c478ec1af9c39, limb1: 0x29b54a9a019077a85febd5b1, limb2: 0xd6c54429887f79c4f5e8537e, - limb3: 0x2d645e495b1ae162900aa5d + limb3: 0x2d645e495b1ae162900aa5d, }, w1: u384 { limb0: 0x15924967d61c029186ecddf3, limb1: 0xad51150b9a239c5f6107f3e, limb2: 0xc131c14b453f056fdeb354d0, - limb3: 0x7ce2f5cee25ccf4630a4da6 + limb3: 0x7ce2f5cee25ccf4630a4da6, }, w2: u384 { limb0: 0x24cffdd2b4963236469c595b, limb1: 0x1cedb62a0a9a9d19ec0ef73b, limb2: 0xc83e7dc874bd3671d4079d93, - limb3: 0x54f10b385a7cc18a25a48e9 + limb3: 0x54f10b385a7cc18a25a48e9, }, w3: u384 { limb0: 0x51156a1330e11e4107978c65, limb1: 0x126d680056df9e678c923a15, limb2: 0xc88a5e31000b304a279d33c3, - limb3: 0x5add5bf0e3de07507b300e9 + limb3: 0x5add5bf0e3de07507b300e9, }, w4: u384 { limb0: 0xaabb4da106a561c89da6e640, limb1: 0x67706e7ff291eb8350fe823f, limb2: 0xa2a5b3a4109b157167daed75, - limb3: 0x3a53fba9d2b86d5617419bd + limb3: 0x3a53fba9d2b86d5617419bd, }, w5: u384 { limb0: 0x49f0d1228f3483ea001e89c, limb1: 0x2904017f1a05647ad6b814bc, limb2: 0x32c50c7b36360c7072b97c5e, - limb3: 0x4a4b35d842e9157f9452ef4 + limb3: 0x4a4b35d842e9157f9452ef4, }, w6: u384 { limb0: 0xe910ff959aa337ba694b3103, limb1: 0x1eb7de8661a5aa726957afc5, limb2: 0xf46dc87d119c3f6b7bc26c47, - limb3: 0x16d4d3eee5db3369b1cd5095 + limb3: 0x16d4d3eee5db3369b1cd5095, }, w7: u384 { limb0: 0x2b2ebbf8ed056759bb5ad089, limb1: 0xc997a5c29ff182751a7a4a1f, limb2: 0xd4255d635200af86412c0d3c, - limb3: 0x133e3849f5abe45d50ebd4f3 + limb3: 0x133e3849f5abe45d50ebd4f3, }, w8: u384 { limb0: 0xc646891ae42a453618bf6946, limb1: 0x6cdba6a4c36531001a999ba9, limb2: 0x4f8028f68a1b39ea09f81c8c, - limb3: 0x5a4a8424db89080f7ef2d4c + limb3: 0x5a4a8424db89080f7ef2d4c, }, w9: u384 { limb0: 0xcfad8c2e4174ad2ae083acd8, limb1: 0x11fa7404e0d60cc8429a7206, limb2: 0x16f6645ea542f26a2bbb02c2, - limb3: 0xe221955c928cb0869ff1e7e + limb3: 0xe221955c928cb0869ff1e7e, }, w10: u384 { limb0: 0xa55f4a4e3b44b7435f37266c, limb1: 0xde3c9ef2eb0e12ebacbf789b, limb2: 0xec729141e4b14e595a75e170, - limb3: 0x9d7eb5a60f56f8c5b9cc908 + limb3: 0x9d7eb5a60f56f8c5b9cc908, }, w11: u384 { limb0: 0x51393b6db9309927d8ab8093, limb1: 0x81b817c741b2485a83aade8b, limb2: 0x45548c3f24b4ce607a7498a1, - limb3: 0x1329d0b6119a0a2fb95f1365 - } + limb3: 0x1329d0b6119a0a2fb95f1365, + }, }, E12D { w0: u384 { limb0: 0x22d7122b0c05411b942f9640, limb1: 0x1bcc87de4a309fbcf7df22c1, limb2: 0x3dbff192e88552ff01ec54f2, - limb3: 0x16453c594411bc9614273cb + limb3: 0x16453c594411bc9614273cb, }, w1: u384 { limb0: 0x3cdd3cbd9b5ef16b0ab5d12e, limb1: 0xc9b831682cc9f7562631eb82, limb2: 0xd8c0b4a326e6d711af1c6fcc, - limb3: 0x15999f5b65933e477e527ca2 + limb3: 0x15999f5b65933e477e527ca2, }, w2: u384 { limb0: 0x8e1e5c76737a52e34970f54a, limb1: 0x13e660457b4680094701954, limb2: 0x8ef5bfc33edf509615dba422, - limb3: 0xaf25c6ba9a9da6f8d1d8d84 + limb3: 0xaf25c6ba9a9da6f8d1d8d84, }, w3: u384 { limb0: 0xc6158c9388e8d4cdf213db7, limb1: 0x99bf0fc5cd55777088191fa4, limb2: 0xca9fb43a85b157663614f5e7, - limb3: 0xe19f5a790b81946863c09 + limb3: 0xe19f5a790b81946863c09, }, w4: u384 { limb0: 0xaaf5ae0abc93c789d2f553f5, limb1: 0xb0e4d0b4161db236bfdded84, limb2: 0xcb1b789e885ae9f7603d7597, - limb3: 0x173a004b4ac0b6990ce57848 + limb3: 0x173a004b4ac0b6990ce57848, }, w5: u384 { limb0: 0xb8270359d997a568b9ca2d, limb1: 0x6c3f97a0095424bac05918c8, limb2: 0x4fc75521f68391b186c98d69, - limb3: 0x179c925b368a6922c052109a + limb3: 0x179c925b368a6922c052109a, }, w6: u384 { limb0: 0x4a64cd8043d641ec589cbced, limb1: 0xc32ad31f1e72fbf5ad938a1d, limb2: 0x394ab548e7bbdcecd04cfa57, - limb3: 0x1903183cfe25996781a6f138 + limb3: 0x1903183cfe25996781a6f138, }, w7: u384 { limb0: 0x95d6117e159fd5a627fbf3c8, limb1: 0x8bb75a8e2cca90dca43db09d, limb2: 0x52ac5959acb24c2975de0b46, - limb3: 0xc733099ca61082513b739d0 + limb3: 0xc733099ca61082513b739d0, }, w8: u384 { limb0: 0xc254c0d7ebcfb3e456d4db70, limb1: 0x841731cd2f31e3eb6dc2cb83, limb2: 0xbd575ed553cf9d9f4fe2d195, - limb3: 0xb9b6dbbc6b7b7a3872452d6 + limb3: 0xb9b6dbbc6b7b7a3872452d6, }, w9: u384 { limb0: 0xc35f21cbc3ac37bfefbb62b, limb1: 0x6d0f6d5a72fb9754dd45e03e, limb2: 0x115c5b6547d1b15f1ab880c8, - limb3: 0x49fc712ba5a255dbc3c3734 + limb3: 0x49fc712ba5a255dbc3c3734, }, w10: u384 { limb0: 0x455d3b2f4797212bc3a8eb2a, limb1: 0xcb84367fab4cc67d4a608ee7, limb2: 0x27c5381bf627b1f6770fb730, - limb3: 0xda5838799c2b92a9a46f93b + limb3: 0xda5838799c2b92a9a46f93b, }, w11: u384 { limb0: 0xe377b673276f66aed0431e2e, limb1: 0x22424ab805248189df3bbc60, limb2: 0xe8df0a999d7ea73c0e5c21c6, - limb3: 0xa1a1a982e74b25c855c6630 - } + limb3: 0xa1a1a982e74b25c855c6630, + }, }, E12D { w0: u384 { limb0: 0xd8de7c0a020c2bfab98f462b, limb1: 0x4259e1a06cc5c0d48aa4b7b5, limb2: 0xa600cfba72cd0eefd68378ca, - limb3: 0x16d21a98b960ac0a3ce99480 + limb3: 0x16d21a98b960ac0a3ce99480, }, w1: u384 { limb0: 0x9c441104f663c6cfd27a21f, limb1: 0xa2538fbacb469c18af6f6d36, limb2: 0xaca0084cb5ce246d9e004b86, - limb3: 0x1818d39bf51f5701a630cd13 + limb3: 0x1818d39bf51f5701a630cd13, }, w2: u384 { limb0: 0x83662e661b082815e9b3291e, limb1: 0x953c223a59774cd045bb2e72, limb2: 0xd965efa4e0a2b9c6d63ed7bc, - limb3: 0x75910bff00e3ebfb430ea1d + limb3: 0x75910bff00e3ebfb430ea1d, }, w3: u384 { limb0: 0x21f101851b5e6a66fe5fb3cc, limb1: 0x2078ad4044a6e58b48b2fcad, limb2: 0xb95b15546d0fb95d6af37e7f, - limb3: 0xc85bc26e7c69777a5b73186 + limb3: 0xc85bc26e7c69777a5b73186, }, w4: u384 { limb0: 0x2813b1a799ef66155d7a5ff5, limb1: 0x706d19aaf61ac615d8d7a776, limb2: 0x35b48c7bae00bb479924c911, - limb3: 0x113f0545928ec85fc72b3b83 + limb3: 0x113f0545928ec85fc72b3b83, }, w5: u384 { limb0: 0x29ac845c79e1955587d53a3f, limb1: 0xb889fc1aef4cf20aff2f8c4f, limb2: 0x50fef6b1712a33cba0703bf4, - limb3: 0x149cfd613a758a131850b749 + limb3: 0x149cfd613a758a131850b749, }, w6: u384 { limb0: 0xa74862c7c240e22184bb0faa, limb1: 0xe185dab81bd7e850ecfe6e7e, limb2: 0x579166b24e863176b906fc26, - limb3: 0x4d862301cdecd83870cf1d3 + limb3: 0x4d862301cdecd83870cf1d3, }, w7: u384 { limb0: 0xd63ac2c17c787ffef5f67ac5, limb1: 0x490f34bd28d97037038b425c, limb2: 0x8eaaea7d3e9970844eca0bb7, - limb3: 0x12ff4861711d4f5fc6c7df52 + limb3: 0x12ff4861711d4f5fc6c7df52, }, w8: u384 { limb0: 0xa77d513840181e6049eb2cfd, limb1: 0x29144762781008597f248817, limb2: 0x29ddbf8ae66b47d99b8f144b, - limb3: 0x33b700fe7d54ab6cc6366d8 + limb3: 0x33b700fe7d54ab6cc6366d8, }, w9: u384 { limb0: 0x7c605b80a783b29fbdb7913a, limb1: 0x8b972070a4c66018b2157c13, limb2: 0x9b41fbff0b39b434d4fc621e, - limb3: 0x3642078114e5416bdd1743b + limb3: 0x3642078114e5416bdd1743b, }, w10: u384 { limb0: 0xb65736f5f91bc2870134be37, limb1: 0xe433e5c3d68b7ae3c424715a, limb2: 0x9fd29af8fc74edec039d14b7, - limb3: 0x77405e5599759db17b993e5 + limb3: 0x77405e5599759db17b993e5, }, w11: u384 { limb0: 0x5ebf0ff64d839d1b21510f03, limb1: 0x2ecb8cc84c90c881b6abd4f4, limb2: 0x1cce59b581d9b2b04bdce6c0, - limb3: 0x13c54e92b75b47920c1bc23c - } + limb3: 0x13c54e92b75b47920c1bc23c, + }, }, E12D { w0: u384 { limb0: 0xd230ba8192574b8f0d2e8d0d, limb1: 0x8d46a7f9896bc752e15f2bd1, limb2: 0x4c46523f3eaeb3d3c195cc64, - limb3: 0x9a8c180064d8e4aa41a3fb8 + limb3: 0x9a8c180064d8e4aa41a3fb8, }, w1: u384 { limb0: 0x6b41258f53e02a3f4f4080b9, limb1: 0xae4efe95de593debca9447c8, limb2: 0x53fa98259797f7b69a5a740c, - limb3: 0x1e723f2e6d538ec35ab098a + limb3: 0x1e723f2e6d538ec35ab098a, }, w2: u384 { limb0: 0xa82549fa15fa37278e37e54f, limb1: 0xf3e4bcc528ef5b1739c54e51, limb2: 0x23325e087bd1e6be95bc9c2, - limb3: 0x3d06b79028ddad39882372 + limb3: 0x3d06b79028ddad39882372, }, w3: u384 { limb0: 0xb8692892001c9cb56b90952c, limb1: 0x733b4da305705ade344a3621, limb2: 0xdfe666914d66fb6ab1d4c9bf, - limb3: 0x89317029155d09a628dc7ad + limb3: 0x89317029155d09a628dc7ad, }, w4: u384 { limb0: 0x92116763fe48fd34e5fcde4c, limb1: 0xbc96d0f997ba650008ac0eac, limb2: 0x770993a8f2ddc97a352efec4, - limb3: 0x1584ba5015a2629d14debb7d + limb3: 0x1584ba5015a2629d14debb7d, }, w5: u384 { limb0: 0xfcfe8c0df558699103baf566, limb1: 0x5435e711fabc8e56bf54699b, limb2: 0xeb0c73e7b22d70352bb5a564, - limb3: 0x343483df7a88d987c69408a + limb3: 0x343483df7a88d987c69408a, }, w6: u384 { limb0: 0x384d80fe4e9e50d65ceae168, limb1: 0x74f4dcd19aed7592bc9593ab, limb2: 0xe493540b588ffd977f4ee0ca, - limb3: 0x23ed7611ed958da6db24d3b + limb3: 0x23ed7611ed958da6db24d3b, }, w7: u384 { limb0: 0x2eec2f1a902b21208d2243b1, limb1: 0x3ff398adc2bf7b18affd6970, limb2: 0xfe74e53e674476aad89727fe, - limb3: 0x17adfbe5a9f0d328bed1b1d5 + limb3: 0x17adfbe5a9f0d328bed1b1d5, }, w8: u384 { limb0: 0xb3c26226f8db87e4acd22a19, limb1: 0x74b1ff048bb0cee38198e560, limb2: 0xf91b63c44856aa5995195c7a, - limb3: 0x57ae60555c4dfbb9f119dd0 + limb3: 0x57ae60555c4dfbb9f119dd0, }, w9: u384 { limb0: 0x391b35c3b492a2b733913137, limb1: 0x1b718fb7d4529435ea05e0ff, limb2: 0x7628c94eae8736f7066faa73, - limb3: 0x12482498758030e4cf058fa1 + limb3: 0x12482498758030e4cf058fa1, }, w10: u384 { limb0: 0x6fe096b1a72856d5ff144f61, limb1: 0xe7e8e20c91eb503e936201d3, limb2: 0xa873f6f582a8c5e528b7e017, - limb3: 0xac11b393a2ca9b81f52d7e2 + limb3: 0xac11b393a2ca9b81f52d7e2, }, w11: u384 { limb0: 0xbbcfbb7847f1fc7f5c887867, limb1: 0x8ca064238b30c902565c58f4, limb2: 0x3b342400e4bf64f5cfe303f8, - limb3: 0x141881c8cb4ac57fdd2421d0 - } + limb3: 0x141881c8cb4ac57fdd2421d0, + }, }, E12D { w0: u384 { limb0: 0x57c1e0a314f410d7c80f0d6c, limb1: 0x188efa3af0e9a15ae09a39a6, limb2: 0x8549ddd8cee9cc24a76927f5, - limb3: 0x828abb514c39b36af5e5e59 + limb3: 0x828abb514c39b36af5e5e59, }, w1: u384 { limb0: 0x86b5e60ab6d06ad115373349, limb1: 0x30ec5eab948a288e962221e0, limb2: 0xa5ece7da90052d41645094dc, - limb3: 0x292b0c29d2ca5076acaa1f7 + limb3: 0x292b0c29d2ca5076acaa1f7, }, w2: u384 { limb0: 0x53fa181062874a0e2952a6bd, limb1: 0x139aea9f3d57245a94f247b8, limb2: 0x13e918fdbed0933c9e1e4691, - limb3: 0x129ab8b6bedb190996697c6c + limb3: 0x129ab8b6bedb190996697c6c, }, w3: u384 { limb0: 0x8c94450ce70b11a241947381, limb1: 0xa6c255e7d67f8a5466c2d100, limb2: 0xa28b8d54a0eb9220bda7f20b, - limb3: 0x9645f3081882f29208bc4ca + limb3: 0x9645f3081882f29208bc4ca, }, w4: u384 { limb0: 0xdb6f564cc32943107d116638, limb1: 0xd9799a7f993d67fe769b8272, limb2: 0x861d137dc34f59e9b52ea65d, - limb3: 0x10da20caed9c13858e34bfd5 + limb3: 0x10da20caed9c13858e34bfd5, }, w5: u384 { limb0: 0x223bada77c016723d852006d, limb1: 0x95041b73eafb915659a2fff7, limb2: 0x36b777b400b7e9e299363ccd, - limb3: 0x17c8527995c3f0b83cbe83b + limb3: 0x17c8527995c3f0b83cbe83b, }, w6: u384 { limb0: 0x387c0822da34f6001fe9f474, limb1: 0x7ca208b866f7d21734a55544, limb2: 0x7415b9fff8e87b99635abfd3, - limb3: 0xcae06be69307d97643444a3 + limb3: 0xcae06be69307d97643444a3, }, w7: u384 { limb0: 0x7826924ebf635fa31599f2d8, limb1: 0x255b41d4dcc5e9df82f2bc5, limb2: 0x742046a3d48ba8fd2ded46fa, - limb3: 0x14e1a77687c2fafa04ad3cc5 + limb3: 0x14e1a77687c2fafa04ad3cc5, }, w8: u384 { limb0: 0xd1861303b32847e9dfa309b, limb1: 0x95643d858f4ab818e1429eb4, limb2: 0xf5f69835e9e3219e541e489a, - limb3: 0x106791b088d3043aec789d2 + limb3: 0x106791b088d3043aec789d2, }, w9: u384 { limb0: 0x3fbf8473656db45761cd4577, limb1: 0x95dfb9c6f2581b80ca9c6e0d, limb2: 0x19cdeb22dd3af66c09886e0, - limb3: 0x46d1856bcf6eb442eaa0dd1 + limb3: 0x46d1856bcf6eb442eaa0dd1, }, w10: u384 { limb0: 0xfc5db242d9eef89d6b2b0ead, limb1: 0xa441afa00af0ebf9e4a5566d, limb2: 0x737340b78921c31e7d6b998b, - limb3: 0x152c1e8a7645e37878c00117 + limb3: 0x152c1e8a7645e37878c00117, }, w11: u384 { limb0: 0x707b12110eb67f3f3e25082d, limb1: 0xadfe406a34710c9b1f1a67f9, limb2: 0xcf700552ca3b4a453710e271, - limb3: 0x1329ce5688848746b4cdb9c6 - } + limb3: 0x1329ce5688848746b4cdb9c6, + }, }, E12D { w0: u384 { limb0: 0x63ea02a83316ced86cff7bc3, limb1: 0xad3cc1665ec97ed103bf2a97, limb2: 0x66e914ba49a82240606bef39, - limb3: 0xbe1aae2e0755468744c9cf8 + limb3: 0xbe1aae2e0755468744c9cf8, }, w1: u384 { limb0: 0xdd0988f0f7381759cede6cf1, limb1: 0x8c668cf30f6b849f93e18738, limb2: 0x17677bd95c25553069f8d3bb, - limb3: 0x213b88bd1d59c856f22c57a + limb3: 0x213b88bd1d59c856f22c57a, }, w2: u384 { limb0: 0x468ebd74785e502a030b2d64, limb1: 0x99e6500a6eec17b7582c46de, limb2: 0xca602fa99428bb3096ed2234, - limb3: 0x221c7127baba56f36027a78 + limb3: 0x221c7127baba56f36027a78, }, w3: u384 { limb0: 0xecf5c97a4baeeec96686a951, limb1: 0x8a858ecbe3f7428c1e485263, limb2: 0x7a93d3d522c174fc7563ce8, - limb3: 0x6b458b1280095fbd58dced3 + limb3: 0x6b458b1280095fbd58dced3, }, w4: u384 { limb0: 0xf7235d01c69ea79eb8c3f3c8, limb1: 0x1e8d53af3b6a8c0d384dba87, limb2: 0x7219df5572fc6a5fb03c3640, - limb3: 0x4a28cd8ddddd35c4a2bc756 + limb3: 0x4a28cd8ddddd35c4a2bc756, }, w5: u384 { limb0: 0xea22308af0e9f3e49bc2073, limb1: 0xe16fb20226994cd501b48956, limb2: 0x8b5463f6a25ad49ef766f7c9, - limb3: 0x920549318b13fd2a55438e + limb3: 0x920549318b13fd2a55438e, }, w6: u384 { limb0: 0x72d478cbbd10de13e7840523, limb1: 0x61148bd13cf2cd5f974ef513, limb2: 0x14fc5faacaf5f306eca036dd, - limb3: 0xd5c18cfe88ef2a96785e79 + limb3: 0xd5c18cfe88ef2a96785e79, }, w7: u384 { limb0: 0xedaaa07fbc739502463ef449, limb1: 0x8756dc3df79501b08bcfd30a, limb2: 0x41db0294140d03ab93ac331a, - limb3: 0x2faf35b55c223051329f5f9 + limb3: 0x2faf35b55c223051329f5f9, }, w8: u384 { limb0: 0xf4ddf6770b28a0e39c42e1, limb1: 0x1bc579527a6d36ebcb9c1e43, limb2: 0xd8d3dda24eb2d5c51e94fbf7, - limb3: 0x1929169f16f2bb1805258a1f + limb3: 0x1929169f16f2bb1805258a1f, }, w9: u384 { limb0: 0xb7c17acd08c863c5de00ab8e, limb1: 0xd061e541ab904021cb7415f3, limb2: 0x4e4103b8a474b65ca3b96404, - limb3: 0x43f042bfe3512474ab82a6 + limb3: 0x43f042bfe3512474ab82a6, }, w10: u384 { limb0: 0xdf4f7f352c2231ba350a5e09, limb1: 0x436f7c965c9cba8884ee1f92, limb2: 0x8820c54c22fc9835d6d63889, - limb3: 0x137b29d6f48df1e1e6a859e3 + limb3: 0x137b29d6f48df1e1e6a859e3, }, w11: u384 { limb0: 0x213101a3e3c1d0de36762bb2, limb1: 0x2841a7df27a0c7cd8324b382, limb2: 0xf3aa170a745fb830cf57da1e, - limb3: 0x34d8b8302b0f58d9d5a85e4 - } + limb3: 0x34d8b8302b0f58d9d5a85e4, + }, }, E12D { w0: u384 { limb0: 0xc102bc3e2c1431657103a4a8, limb1: 0x3aba49ff88c4ee3806b04d0d, limb2: 0x985c1f9d4156682f0c5aef65, - limb3: 0xc0561c0e6c3d1cc794c57dd + limb3: 0xc0561c0e6c3d1cc794c57dd, }, w1: u384 { limb0: 0x9c02003f65c233b63f5d57df, limb1: 0x675a9896c5ebc6c86acfe082, limb2: 0xf10e29c84b756a49c862026e, - limb3: 0x397c60ac478f6f3d04dd211 + limb3: 0x397c60ac478f6f3d04dd211, }, w2: u384 { limb0: 0xde0ab514224b0a09d4470108, limb1: 0x30cffe24a16eef64a4e3f8d9, limb2: 0x250e573cf0cdc9d0474a96a5, - limb3: 0x320c97808c919b6bc77a6b9 + limb3: 0x320c97808c919b6bc77a6b9, }, w3: u384 { limb0: 0x22e1478aaa8dbef5b7eb5c75, limb1: 0xd73e5649b061e7dec320410, limb2: 0x9e5973e5c196af20a9522b87, - limb3: 0x888405f1b7e02f51d25e4cc + limb3: 0x888405f1b7e02f51d25e4cc, }, w4: u384 { limb0: 0x7d63d9cb91c7e6ecea27bd0f, limb1: 0xafd606d67aec5132495aea6e, limb2: 0x89d9cc366cd70849bf7a6c5a, - limb3: 0x6a1cdcfbb9094ed585438 + limb3: 0x6a1cdcfbb9094ed585438, }, w5: u384 { limb0: 0xc63d5979f095ce42b97ffe02, limb1: 0xf0b1958f676e488a85a463d3, limb2: 0x579f2806dc3a11e99b548e2c, - limb3: 0xd3efe9be9e8ed6f0311f48a + limb3: 0xd3efe9be9e8ed6f0311f48a, }, w6: u384 { limb0: 0x241c2c02a7a3ed68c8347454, limb1: 0x3c2e082d9d49bc403f20af15, limb2: 0xffb91438b7adbf0fd03b8452, - limb3: 0x9f4a8a1c2bd71edd80fc8fa + limb3: 0x9f4a8a1c2bd71edd80fc8fa, }, w7: u384 { limb0: 0x7a09864d807d30f8134e35af, limb1: 0x4909a61fde584e8a97843962, limb2: 0xb0ae7df0ca31783cdef766ec, - limb3: 0xab6c21fb130ff409a076e98 + limb3: 0xab6c21fb130ff409a076e98, }, w8: u384 { limb0: 0xa4cf4a4bfb9a8696346ae5f2, limb1: 0xf441ab330a1a48b023ea4b16, limb2: 0xccbedbb5d89afd778ebbe2c6, - limb3: 0xba098deb3929c27bad2d7cf + limb3: 0xba098deb3929c27bad2d7cf, }, w9: u384 { limb0: 0x15ecdee09158e723e156143a, limb1: 0x2d88661ce3e7ed32f1813f83, limb2: 0x9268f857661e69f43c1006e9, - limb3: 0x1baab7bc3df8b069e7921d3 + limb3: 0x1baab7bc3df8b069e7921d3, }, w10: u384 { limb0: 0x8851dedab1e371b332830bb3, limb1: 0xe53bc821c7dd0054d6f6f857, limb2: 0x46240f19ae951bc875a2c8d5, - limb3: 0xe7507265782567bc614a60b + limb3: 0xe7507265782567bc614a60b, }, w11: u384 { limb0: 0x9cace8682481da13c90f59c7, limb1: 0x79b9f6744c3fa34fa7ff5e2c, limb2: 0xa95279fc2041e30178a37645, - limb3: 0x1201d399c1c8c0f103f8acf8 - } + limb3: 0x1201d399c1c8c0f103f8acf8, + }, }, E12D { w0: u384 { limb0: 0xfe58f82f5a9a9486897fd7e1, limb1: 0x2f004eba229cefab93da839d, limb2: 0x3002f2bb83b58880f0d25efa, - limb3: 0x122600e61fb5e8a8f3a87752 + limb3: 0x122600e61fb5e8a8f3a87752, }, w1: u384 { limb0: 0xdcc4e4defac8110561f0b81f, limb1: 0xe4595573f7563e76b39ecf25, limb2: 0xe9a4f842ebb4b0f21e7e6904, - limb3: 0x1b7035165596268ab55405 + limb3: 0x1b7035165596268ab55405, }, w2: u384 { limb0: 0xe2a1e6ad130b5dec5a307b9c, limb1: 0xa0715f0bb37946dee0717185, limb2: 0x89926a4a4bd27b0dcb987e4, - limb3: 0xfa2213bf1fa84f02b4f4886 + limb3: 0xfa2213bf1fa84f02b4f4886, }, w3: u384 { limb0: 0xf7a4cd53187cf70d56c22d5b, limb1: 0xe27c4a45b50546e7d688b66b, limb2: 0xfffbb1435cd3e4d84e85fca7, - limb3: 0xeef721f1ff2d893b897c350 + limb3: 0xeef721f1ff2d893b897c350, }, w4: u384 { limb0: 0xf91449f591421e2ef6a486e7, limb1: 0xeeef2201ee263b14b45d18e4, limb2: 0xbd80060590e3e6b8ea5c51c9, - limb3: 0x265aec09b58dacbb7a04b17 + limb3: 0x265aec09b58dacbb7a04b17, }, w5: u384 { limb0: 0xa799249a4b8a0bf74c5885dc, limb1: 0xf3369cf6149d51d50c53050f, limb2: 0x94e0a1d05c1748dbf29dcddb, - limb3: 0x1025ab4a8aff8453c776f76 + limb3: 0x1025ab4a8aff8453c776f76, }, w6: u384 { limb0: 0xab0a9cbc3226d768b05be455, limb1: 0xda1ec9b71b4492481506fcd7, limb2: 0xdc657a6b18a8b49f20be7022, - limb3: 0x16501c8c3d498fdd182c68da + limb3: 0x16501c8c3d498fdd182c68da, }, w7: u384 { limb0: 0xda69756ffc4c2cc6785aea22, limb1: 0xf61431a0fb779cd2dcd9d576, limb2: 0x13bf99c01ad490a1b53665f8, - limb3: 0x18af034f82f45856ec965578 + limb3: 0x18af034f82f45856ec965578, }, w8: u384 { limb0: 0xd266c249f052d3f201c1b0d2, limb1: 0x13da63c60e3566cc4f009ccc, limb2: 0x3333fc6cdb72a6194cde21f6, - limb3: 0x1604d59edc49752480de7888 + limb3: 0x1604d59edc49752480de7888, }, w9: u384 { limb0: 0x440a479dbe693668b173c604, limb1: 0xe7aa2e5dcfda7aacf9e06a79, limb2: 0x659ba8b7e2702424fd322b71, - limb3: 0x15f91e27f1ea647ab5b891a2 + limb3: 0x15f91e27f1ea647ab5b891a2, }, w10: u384 { limb0: 0x7d84e72876d78a543b85f35, limb1: 0x41d7a06e4188086be325658c, limb2: 0x4a3001b914f7fb1079e14d4e, - limb3: 0x167fc4dc25373f64678594d7 + limb3: 0x167fc4dc25373f64678594d7, }, w11: u384 { limb0: 0x82563c053c16182776849317, limb1: 0x6700ae4d019967f052b9feec, limb2: 0x78546ed88fbe3f4cb7f7a30c, - limb3: 0x534411f7b6d38c591965d08 - } + limb3: 0x534411f7b6d38c591965d08, + }, }, E12D { w0: u384 { limb0: 0x43cfc7d230ced51564ac1d27, limb1: 0x3f27df63705e89b5887f6ef6, limb2: 0xed962f37b246373dbe286875, - limb3: 0x1153ae983b4bebeb96cee574 + limb3: 0x1153ae983b4bebeb96cee574, }, w1: u384 { limb0: 0x796edbbce52298f87a09de3c, limb1: 0x28594a3a94d2643da1f44c88, limb2: 0x1122679cf2a223c7641eba1, - limb3: 0xec358db63b010a5f0195832 + limb3: 0xec358db63b010a5f0195832, }, w2: u384 { limb0: 0x65114260981734bbd0c401dc, limb1: 0xaece96d8df427dc37661c427, limb2: 0xee18de1e045a8e8f278623ac, - limb3: 0x119fd094c25c6ad221e4b923 + limb3: 0x119fd094c25c6ad221e4b923, }, w3: u384 { limb0: 0x2260aed58c6f1839b18780e0, limb1: 0xff136cb3f7910868a9bd9f6b, limb2: 0xa8eac3560aa6f0b6e9ce27f9, - limb3: 0x147713d9a2ed668c5f769433 + limb3: 0x147713d9a2ed668c5f769433, }, w4: u384 { limb0: 0xbfa0b51b9f28c1f41615b31a, limb1: 0xafe3bdfe46e1df691c9e4a8b, limb2: 0x8ec87ae1766b9944f1d28933, - limb3: 0x173b1e22848118b6d362da12 + limb3: 0x173b1e22848118b6d362da12, }, w5: u384 { limb0: 0x3cb1473e40e34bac4f045ec0, limb1: 0xffe3bde303763828c46764b2, limb2: 0x2b156470816c102ef2910681, - limb3: 0xff3da5b54bbef112da2264a + limb3: 0xff3da5b54bbef112da2264a, }, w6: u384 { limb0: 0xe700fcac3096a1a6fd859886, limb1: 0x31262c27298b10b8d1a8355, limb2: 0x7a0c2177d76d700ef9d473a0, - limb3: 0xf68f4e6113a631c0da8e2fa + limb3: 0xf68f4e6113a631c0da8e2fa, }, w7: u384 { limb0: 0x74b654d838f7a245bee7f39f, limb1: 0x665df41d4d1641df03af8d97, limb2: 0xd3ddeee4890b0c01b82e54c5, - limb3: 0x12c5046f460d2c4e5b4384dc + limb3: 0x12c5046f460d2c4e5b4384dc, }, w8: u384 { limb0: 0xfccdc5d4095fc526da571897, limb1: 0x83b7338c59475d4d75e801d, limb2: 0x402d5fd5dae3ea66188e61c0, - limb3: 0xa4242530cd7992d10545d7f + limb3: 0xa4242530cd7992d10545d7f, }, w9: u384 { limb0: 0x8f330139a313def3b14a4191, limb1: 0xbbc6ef1fb35d0f418f9f78b5, limb2: 0xbb0532bb79ba32741aed8541, - limb3: 0xece0fdc026b4f6a1a0e84ea + limb3: 0xece0fdc026b4f6a1a0e84ea, }, w10: u384 { limb0: 0xcd423bcb1fbc2198f7bfc5bc, limb1: 0xb2829a2104116480290ac2de, limb2: 0xbab0876e094583ff5a08ffe5, - limb3: 0x9566104e8e04e6378963df0 + limb3: 0x9566104e8e04e6378963df0, }, w11: u384 { limb0: 0xcbcb4e81ebceca9d4be2280f, limb1: 0x46236f243dc5d2907d7cb0e6, limb2: 0x886438c7d5394b0df090d49c, - limb3: 0x1736df2c975b470c28a0dfb8 - } + limb3: 0x1736df2c975b470c28a0dfb8, + }, }, E12D { w0: u384 { limb0: 0x41aaffbd4ffbc921fa99dafc, limb1: 0xe10f7c7325899560c7dc1a15, limb2: 0xc24436ca6dd16b7441353e1a, - limb3: 0x768fbbaedb7eb6fa18ee62a + limb3: 0x768fbbaedb7eb6fa18ee62a, }, w1: u384 { limb0: 0xa237ae4d25932d4ea5316730, limb1: 0x2d696a5048a33ad2fe17b0fd, limb2: 0x2748a8d213d462a9afaf75d1, - limb3: 0x1537e87dbfb1af57898e5a44 + limb3: 0x1537e87dbfb1af57898e5a44, }, w2: u384 { limb0: 0x77e95072df611554c6efed5a, limb1: 0xb1a40cdb1e3fd9dc0c2f0268, limb2: 0xafa4361c57a92f48e272fd3c, - limb3: 0x19670062e69cf3c129c6037b + limb3: 0x19670062e69cf3c129c6037b, }, w3: u384 { limb0: 0x35569a07f433ce179f869383, limb1: 0x2da70c3d64dc95f2a35dc5da, limb2: 0x5b6e4b1ebc196d9275e65fcd, - limb3: 0xf527e45157446612739f8ea + limb3: 0xf527e45157446612739f8ea, }, w4: u384 { limb0: 0x52794dcb5d3a71e191ca9117, limb1: 0x1081a05756e17821c1a6b318, limb2: 0x7806bbf278080f55a756ac75, - limb3: 0xa02c71394733385a722a842 + limb3: 0xa02c71394733385a722a842, }, w5: u384 { limb0: 0x488205f5f0ed76726dc2e4a8, limb1: 0x2156776174a8c26fcb09988, limb2: 0x48ed81cc7d76f82b1770c797, - limb3: 0x581d27120bc189525f2a93d + limb3: 0x581d27120bc189525f2a93d, }, w6: u384 { limb0: 0x5bd47af3f999778815753987, limb1: 0xb6749ec4bc2deb56879c4187, limb2: 0x12f25e541c1a97a1a04db98a, - limb3: 0x29634e7d8dbbf051cac5686 + limb3: 0x29634e7d8dbbf051cac5686, }, w7: u384 { limb0: 0xb63879d6fdc4ddd1f14e0d7e, limb1: 0x5502d042b5ca2ca1fd1c87d, limb2: 0xde0a342fb21dec963cb42765, - limb3: 0x9e6bd948d174830a6c0bdb5 + limb3: 0x9e6bd948d174830a6c0bdb5, }, w8: u384 { limb0: 0xbab8115cffcdaa9e9ffdd880, limb1: 0x507a287e0529113ee7c9872a, limb2: 0x8c9a7d3cd5caf1cbf71ea4f, - limb3: 0x171c19b44ea2abed89e0eee7 + limb3: 0x171c19b44ea2abed89e0eee7, }, w9: u384 { limb0: 0x3bdbf8f85ceba757f787a73f, limb1: 0x55e0e28688c74db104715a2d, limb2: 0x1d8c0545ec4eb386da5973c, - limb3: 0xc12462e516c1d11b83d70c0 + limb3: 0xc12462e516c1d11b83d70c0, }, w10: u384 { limb0: 0x589e9e0e262699811b884e88, limb1: 0x849f9b1f3bfbecd0815d022, limb2: 0x72e87be328e66292abc0bfa0, - limb3: 0xc20248f3856e6b79db43f4f + limb3: 0xc20248f3856e6b79db43f4f, }, w11: u384 { limb0: 0xa0d3c01dc5b590235ed2b4a8, limb1: 0x36a65d97aa5e2789abe72557, limb2: 0x4dc3c2f633d2e2bf574872ac, - limb3: 0x9b01ee1082798777c0ba5ce - } + limb3: 0x9b01ee1082798777c0ba5ce, + }, }, E12D { w0: u384 { limb0: 0x3f8f38e60deac05c2621e24f, limb1: 0xd09553fa481657f8340e5069, limb2: 0xc4822e62b67cb0f3512ed972, - limb3: 0x8fdd89171a3d99d824644e3 + limb3: 0x8fdd89171a3d99d824644e3, }, w1: u384 { limb0: 0x9f974bcce04ca7c552cefc61, limb1: 0x7d1e97af057c4e8bd1237e3a, limb2: 0xf6c412a8f240fdb471a4e6e8, - limb3: 0x12798c3ef22db33c453af285 + limb3: 0x12798c3ef22db33c453af285, }, w2: u384 { limb0: 0x351067948f68705deef729f0, limb1: 0xdac1ded2ce3421f0f1c2a824, limb2: 0x8d9e3cebc0f199ce2dba4472, - limb3: 0x37aca41f4d506c7b78e5a97 + limb3: 0x37aca41f4d506c7b78e5a97, }, w3: u384 { limb0: 0xb7ff11075c5dfb0889eb8cf9, limb1: 0xdd6620d6caebf6d2c4bc9fe4, limb2: 0x78ebf44c90eb026aef8a4723, - limb3: 0x11df205507286f5912bb28f9 + limb3: 0x11df205507286f5912bb28f9, }, w4: u384 { limb0: 0x2184c9e357e8fc5938e9f91e, limb1: 0xf6b93e6931861792051e41e8, limb2: 0xfa6774f07bec91d5b9056ac0, - limb3: 0x5fd1e8fcb66b2024f4770cb + limb3: 0x5fd1e8fcb66b2024f4770cb, }, w5: u384 { limb0: 0xd34e1ed35b4acef37cdfcfcf, limb1: 0x3a3af4aade2ca0b690f8b745, limb2: 0xf18dd5095a8e61ebe9ec15c0, - limb3: 0x14ac25a5dd1932d42434e64f + limb3: 0x14ac25a5dd1932d42434e64f, }, w6: u384 { limb0: 0x8deb2453cc29535af302a32a, limb1: 0x47377a569ca788bd447d51a, limb2: 0x7473f95b420a7a96033055b2, - limb3: 0x1368da24ff42c9dbaddd1fd9 + limb3: 0x1368da24ff42c9dbaddd1fd9, }, w7: u384 { limb0: 0x8a006d92f0f659b5879128c, limb1: 0x91a706c5249b0611411ef8, limb2: 0x476806b8ff9f387448c2283f, - limb3: 0x86486211f2b7a69d85e6cc + limb3: 0x86486211f2b7a69d85e6cc, }, w8: u384 { limb0: 0x359fb6053a482fd881477b73, limb1: 0x2e56ddae282b251bd26dc277, limb2: 0x9cc9414eb0de5930e18c2aef, - limb3: 0xba5c3dae029b3461c4d83e3 + limb3: 0xba5c3dae029b3461c4d83e3, }, w9: u384 { limb0: 0xd0329a1bee072189c5ee820d, limb1: 0x606c86092ed3d4c42466d4ed, limb2: 0xf05b66e3549519f50780d211, - limb3: 0x9a4267bb540004634129449 + limb3: 0x9a4267bb540004634129449, }, w10: u384 { limb0: 0x7aac5888cca570c157bf526f, limb1: 0x37f49ebc8a648980697e0e77, limb2: 0xf97e721d54c47e0de9076619, - limb3: 0x142cb1de4579b0555e3da41c + limb3: 0x142cb1de4579b0555e3da41c, }, w11: u384 { limb0: 0x1ed3e34a9c2bf2a76e006e02, limb1: 0x295f1656ab393d271edff1c6, limb2: 0x5420889deecb1a07595e00d9, - limb3: 0x4283e729218065b6577b5e2 - } + limb3: 0x4283e729218065b6577b5e2, + }, }, E12D { w0: u384 { limb0: 0x5075209593337486e18df46d, limb1: 0xf0356df4c7181711fc91a827, limb2: 0xd97a31f91df154f5bb5851cc, - limb3: 0x171ad2856e94d72ca9a24f15 + limb3: 0x171ad2856e94d72ca9a24f15, }, w1: u384 { limb0: 0xff1d933543c728b07bca89f9, limb1: 0xccef75c4f943b25f9239cb2d, limb2: 0x5c4ebc877307706d280a3dbb, - limb3: 0x1eb968438d74e489e2b3144 + limb3: 0x1eb968438d74e489e2b3144, }, w2: u384 { limb0: 0x8cc0fc5028083749c6f1aba5, limb1: 0xf1a9d3c2e0265d84355ba0f4, limb2: 0x335a9d47fd282d5dce169790, - limb3: 0x10f93b957c6f10e331c414bc + limb3: 0x10f93b957c6f10e331c414bc, }, w3: u384 { limb0: 0x46ec651152db5023c9f201ed, limb1: 0xfb6d11467392f49bb22c65c9, limb2: 0xa591f73affc1eab979a3e88b, - limb3: 0x826052b7ce51942a2ef191e + limb3: 0x826052b7ce51942a2ef191e, }, w4: u384 { limb0: 0x33ba6d3afeb674e23e5875d0, limb1: 0x59f23b1c3550f6e384c0f685, limb2: 0xda5c8ec47b003492848f9ced, - limb3: 0x1693006cebfdda8888546ed4 + limb3: 0x1693006cebfdda8888546ed4, }, w5: u384 { limb0: 0xd6d0c83bf1cad49129736afe, limb1: 0x9649be7e294be8399af5d37f, limb2: 0x4aa71b90ad07b5b8a36e6c12, - limb3: 0x35aec40aaf79e7d69ccbee7 + limb3: 0x35aec40aaf79e7d69ccbee7, }, w6: u384 { limb0: 0xdb5a92f23380dee1624ece55, limb1: 0x5134a328c29fbe8f507b8e9, limb2: 0xc945ce072ddf331a76668f54, - limb3: 0x16394a30abe069b9227e1c33 + limb3: 0x16394a30abe069b9227e1c33, }, w7: u384 { limb0: 0xa23da0b9f52799a68dc93f24, limb1: 0x87cdda8d4a6217959ec51377, limb2: 0x57249de4c45419d6599ad204, - limb3: 0x42312785159ea4b25189b90 + limb3: 0x42312785159ea4b25189b90, }, w8: u384 { limb0: 0xbf4121cb4d006fe76a80ea73, limb1: 0x7572811c50bd43f4651663cc, limb2: 0xe1efd672ed967d2245b943d8, - limb3: 0x1787f0a67f549962e9c14900 + limb3: 0x1787f0a67f549962e9c14900, }, w9: u384 { limb0: 0x46eeec468b79d350dd499738, limb1: 0x2ea49c3b0d31b16e48774d10, limb2: 0x310dc8b2a2ce05fee1740e93, - limb3: 0xc87d0f3e5646d57ba0f3aa3 + limb3: 0xc87d0f3e5646d57ba0f3aa3, }, w10: u384 { limb0: 0x342ee816cba104cc57c6c72f, limb1: 0x786438adbb7043c5ca348854, limb2: 0x493f49c69d99c3d0ab1ba333, - limb3: 0x14f90bf3e332bc9472da656d + limb3: 0x14f90bf3e332bc9472da656d, }, w11: u384 { limb0: 0xc34c780a191b063eee244f53, limb1: 0x4e65b486457bf36ded6b97be, limb2: 0xbfc811de2f4a72e871385095, - limb3: 0x8e6f83135818adcffa10fb9 - } + limb3: 0x8e6f83135818adcffa10fb9, + }, }, E12D { w0: u384 { limb0: 0xb672236717111ed916845c5d, limb1: 0xe05ed5f5b63130ce5ed7ce8d, limb2: 0xeb31d1721af0fc01c6a57a35, - limb3: 0x39032c279eab78dcba6e6ed + limb3: 0x39032c279eab78dcba6e6ed, }, w1: u384 { limb0: 0xb5fd928b359354dc3322587b, limb1: 0xe23b26cd9dcb026a63d7bd14, limb2: 0xe0c70e5315487d5185137fc0, - limb3: 0x350b47980276bd086fb0081 + limb3: 0x350b47980276bd086fb0081, }, w2: u384 { limb0: 0x35f10b2645a702ea20eb8a58, limb1: 0x8daf440feacc4167bd29f29f, limb2: 0x8aa066da8142908fd9dd00b9, - limb3: 0xd808b595dfc641171a4589a + limb3: 0xd808b595dfc641171a4589a, }, w3: u384 { limb0: 0x1a92f884e524af5ef9c51b4f, limb1: 0xa420b70bacb14c6241ffde9b, limb2: 0x5f3bbe9b0ed979e4a113a09f, - limb3: 0x9362ed73e972e33f186b81e + limb3: 0x9362ed73e972e33f186b81e, }, w4: u384 { limb0: 0xc38fa3335d37ad7b433afc9a, limb1: 0x233c0caa5edcf5a96d0e9df4, limb2: 0x1bd45454abb2f3b001e563ff, - limb3: 0x12ccd66a1baf7b9f617dc713 + limb3: 0x12ccd66a1baf7b9f617dc713, }, w5: u384 { limb0: 0x113ef84207dd50c3add3fb08, limb1: 0x803162a58c79355e6436964e, limb2: 0x27dbde708a2b5bcd71d8a803, - limb3: 0x111e309aec4985bdbc80882c + limb3: 0x111e309aec4985bdbc80882c, }, w6: u384 { limb0: 0xbd293026b3eb9df6867cb268, limb1: 0xe20ee1bf24af986d5cd083f7, limb2: 0x5ef64ec24565ce144c3829bf, - limb3: 0x11dd5ad08abb5b561a3f55a9 + limb3: 0x11dd5ad08abb5b561a3f55a9, }, w7: u384 { limb0: 0xfbabf0ed3f8a0d795e246760, limb1: 0xe9f3f24bc74110c7a273f445, limb2: 0x55201b84cd4c2ed4db4b827c, - limb3: 0x7581bdc02eb21512e4e5199 + limb3: 0x7581bdc02eb21512e4e5199, }, w8: u384 { limb0: 0x50990b07d3ad07f5cda1df83, limb1: 0x632286f3bbfcad27346d18bc, limb2: 0x57ddc3d0b6196616acbbf690, - limb3: 0x12cb2e180657e981fd9f6793 + limb3: 0x12cb2e180657e981fd9f6793, }, w9: u384 { limb0: 0xb4a25977ccb83376385bcc3f, limb1: 0x409e0fc5843535e7b6ed163e, limb2: 0x7ee8e7148fce7871fc278d1e, - limb3: 0x10956002d20d7414b33e971d + limb3: 0x10956002d20d7414b33e971d, }, w10: u384 { limb0: 0xd2cad3667d7c91db4583301f, limb1: 0xce857381a82611c73427cf30, limb2: 0xd7519dec35afa6c62fdf1a93, - limb3: 0x457e7d9af1ed868a22feb53 + limb3: 0x457e7d9af1ed868a22feb53, }, w11: u384 { limb0: 0xc5f0ce046d88cc73490b1ba2, limb1: 0xfa220bea70edb53dc7864606, limb2: 0x2918cf7c1e8cc362d0e91f41, - limb3: 0x12c017f62533b0ecd49a3ec7 - } + limb3: 0x12c017f62533b0ecd49a3ec7, + }, }, E12D { w0: u384 { limb0: 0x4518aac78144e2db1d690fe4, limb1: 0x8ee22fb09c4090a1c02db65, limb2: 0x8a5c9ae4cbcaac8abb408bf2, - limb3: 0x9651c5934720322443f5a11 + limb3: 0x9651c5934720322443f5a11, }, w1: u384 { limb0: 0x6494b375c23dfcce21c4995e, limb1: 0x41ecb011428f2cb8862ef588, limb2: 0xf99f42bcd9191bca26998f29, - limb3: 0xaa56757b8a17fc161800337 + limb3: 0xaa56757b8a17fc161800337, }, w2: u384 { limb0: 0x49ed4b52c0e1957338585f16, limb1: 0xec9df95dec8748f334e0f2e1, limb2: 0x7de0ae19ffdac0ccb39246a2, - limb3: 0xfb3acdb8486b68439e30548 + limb3: 0xfb3acdb8486b68439e30548, }, w3: u384 { limb0: 0xfef29938a4d46b29fc1ab8ec, limb1: 0xb4893ab6f86df3d65f57ba5c, limb2: 0xd0404e3bd8ec3026aa989c65, - limb3: 0x271d6ebc660acd8d80a0656 + limb3: 0x271d6ebc660acd8d80a0656, }, w4: u384 { limb0: 0x61ae001710978b805f2424d7, limb1: 0x641045bf7c449640c468a29e, limb2: 0x36471cc643cd1ac29df0fecb, - limb3: 0x133f2d50d17aae7195255662 + limb3: 0x133f2d50d17aae7195255662, }, w5: u384 { limb0: 0x9ce3fa0f813dfdc1e58f1ba3, limb1: 0xda6067cb476596387621fd0c, limb2: 0xc4e9614cae2d4dbdedf3b5c9, - limb3: 0x85036d8b38d3ec0fcf70a7c + limb3: 0x85036d8b38d3ec0fcf70a7c, }, w6: u384 { limb0: 0xfd1f35878f06df50b774ff5c, limb1: 0x50feeff3c2321474b6452db4, limb2: 0x9f7493a63e0d85a47fd3e297, - limb3: 0x62dc9eb788448f8540cd8dc + limb3: 0x62dc9eb788448f8540cd8dc, }, w7: u384 { limb0: 0xc4a0867d87c7ad51322cb810, limb1: 0xd8ef0e23b67744060ef9dfb7, limb2: 0x40fd187e3a88eb2b97cfbeb2, - limb3: 0xaa2506dbbb4b40e1160280f + limb3: 0xaa2506dbbb4b40e1160280f, }, w8: u384 { limb0: 0xc1dcb7d5d062a5a166387c7c, limb1: 0x6562c45c946f18353a39c690, limb2: 0xf6e93d09b449f23d816feb2c, - limb3: 0x11fcfa1ad45d21f75f769cea + limb3: 0x11fcfa1ad45d21f75f769cea, }, w9: u384 { limb0: 0xc01a508042b05e97a5f4713b, limb1: 0x34d0b623b7a887b7b8cd2b48, limb2: 0x3bdf0590b650cf2abd0cb69e, - limb3: 0xd40ad6f197e440c5d882cfb + limb3: 0xd40ad6f197e440c5d882cfb, }, w10: u384 { limb0: 0xda450f4ec50e45a1aa05c7df, limb1: 0x8ed297199f1e04707e165a6f, limb2: 0x9953fd6d893f944489b6f265, - limb3: 0x151f722a9d71cdbbc3f64572 + limb3: 0x151f722a9d71cdbbc3f64572, }, w11: u384 { limb0: 0xab94a633f81012d0aa0a1123, limb1: 0x1fee996f53b99d7f880cd81f, limb2: 0x2eba0e596f0cb217540a9f6f, - limb3: 0x6a3beb6e5c4d83dac52cd9c - } + limb3: 0x6a3beb6e5c4d83dac52cd9c, + }, }, E12D { w0: u384 { limb0: 0xe0bce0d55a595944dab6dbfa, limb1: 0x6a8646a7ccf054a613ef1054, limb2: 0xba8e1f16cf4e8c395896994c, - limb3: 0x162d381237a930f8b29e736a + limb3: 0x162d381237a930f8b29e736a, }, w1: u384 { limb0: 0xf1f266735451b2d2d7f1d30a, limb1: 0xa7218efef53e9dffab65229c, limb2: 0xb7c5e4dc5293bd7f9783effc, - limb3: 0x11b0811580e449f355565e71 + limb3: 0x11b0811580e449f355565e71, }, w2: u384 { limb0: 0x80d5d222072028933b28d7b2, limb1: 0xee7584721937fe2ab48078cb, limb2: 0x4df768bf695ffd52b0fd1c32, - limb3: 0x1855a6b25e83bf66d4356b58 + limb3: 0x1855a6b25e83bf66d4356b58, }, w3: u384 { limb0: 0x3a3df0e6083bf4bbe71e8c4f, limb1: 0x4fb213df213dbee762ab39c7, limb2: 0xca84e456f84ba4f61d280ed2, - limb3: 0xcfc546b353f4c6f5d27dbe7 + limb3: 0xcfc546b353f4c6f5d27dbe7, }, w4: u384 { limb0: 0x9cfab6d9fafadbd0e1c42893, limb1: 0xb5fb4e768002cba4b920caed, limb2: 0x506afea26fc4c7c654f4e050, - limb3: 0x1583e33fd9048512c2a5c9fe + limb3: 0x1583e33fd9048512c2a5c9fe, }, w5: u384 { limb0: 0xb3811bd3567d02c9c8ffb739, limb1: 0xcd49c3a01653b401503ab6c0, limb2: 0x56c65a37847a8f7251aa3148, - limb3: 0x900ced571b08ea59f466697 + limb3: 0x900ced571b08ea59f466697, }, w6: u384 { limb0: 0x3db7e62a39526ebeabbc5d95, limb1: 0x2a409338985dd19e8c1439bf, limb2: 0xce7718a40c9c26112265bf75, - limb3: 0x105d6bb94f794d207e8dccf2 + limb3: 0x105d6bb94f794d207e8dccf2, }, w7: u384 { limb0: 0x4a9921138c1b9724c664dad0, limb1: 0xe16e3e800231777a1b18f5e0, limb2: 0x406d5a7ed31a84b8c7e805b, - limb3: 0x119e145f07bc6e23006475a8 + limb3: 0x119e145f07bc6e23006475a8, }, w8: u384 { limb0: 0x91390ea551d00747d4835f37, limb1: 0xe8dded89909fe1429974f19, limb2: 0x36fc694a2d1a3d77ceb70cfa, - limb3: 0x19f915fd54dfc09d92f03acf + limb3: 0x19f915fd54dfc09d92f03acf, }, w9: u384 { limb0: 0xb10a5bb15622ec5835700d8, limb1: 0x989765daca6c7f7b3a9cee46, limb2: 0xeb8d07dda116e084c5d9987f, - limb3: 0x4b16db66ec480015be50763 + limb3: 0x4b16db66ec480015be50763, }, w10: u384 { limb0: 0x1a0cb2b253062c1b6714614c, limb1: 0x1346a04f437bbb3430c7afbc, limb2: 0x9ee70f56486f1312034e6782, - limb3: 0x8c8bfb66fadd2f5708f4ac0 + limb3: 0x8c8bfb66fadd2f5708f4ac0, }, w11: u384 { limb0: 0x8e4fa36170fcf1446bb898c0, limb1: 0x4b7035e4e8270f856e5671ed, limb2: 0x8cacdde4a419ed5e07bccd6f, - limb3: 0xe892aa8d03b1e9dec74558a - } + limb3: 0xe892aa8d03b1e9dec74558a, + }, }, E12D { w0: u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, @@ -22105,7 +20667,7 @@ mod pairing_tests { w8: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, w9: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, w10: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, - w11: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + w11: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, ] .span(), @@ -22114,488 +20676,488 @@ mod pairing_tests { limb0: 0x85fe175b70cdfa93e0b8bf0c, limb1: 0x1119b398df476521bfd82f55, limb2: 0x6896d39a0274089def08467a, - limb3: 0x74d894f8e60c9fa5e2000d9 + limb3: 0x74d894f8e60c9fa5e2000d9, }, u384 { limb0: 0x79e6f75f60cff2fab42360a8, limb1: 0xb0a08ae9f2719c55cdaeb21a, limb2: 0xa3486154e3a9205d46dbeff0, - limb3: 0x1924bc70ecdf6af85e01263e + limb3: 0x1924bc70ecdf6af85e01263e, }, u384 { limb0: 0xbc90aeaa19cd71c55f9877bc, limb1: 0x4ed5b197a4bd8bddbbf8c335, limb2: 0x9e0ee635fc029c579545fef8, - limb3: 0xe1ca28f48f5282e0cd452fb + limb3: 0xe1ca28f48f5282e0cd452fb, }, u384 { limb0: 0x654a9c78d22131fdc8ad5c84, limb1: 0xf571d3e3fe2617a46e0e1d8a, limb2: 0x9e8b1abc5c2e7c2924f7fece, - limb3: 0xce79ec536ddeae0cd4b626c + limb3: 0xce79ec536ddeae0cd4b626c, }, u384 { limb0: 0x7c908ac4fd93870c618495b8, limb1: 0x8297762a19ed3edc40284694, limb2: 0xed98b1b1a4cdafe98f81d3e5, - limb3: 0x1398c0a5451a69c432c53bb3 + limb3: 0x1398c0a5451a69c432c53bb3, }, u384 { limb0: 0xb780cea72499a8a29dd73b8d, limb1: 0x92f2db09c1784aec54f428b, limb2: 0x2f0c392ecb7151f4912e288c, - limb3: 0x867d0f7460edba5c090c090 + limb3: 0x867d0f7460edba5c090c090, }, u384 { limb0: 0x81d7fa51819fa89fdb593e88, limb1: 0xa7635a4fd0b9c1f79ab36743, limb2: 0xe0bbd916e1f81dadce591dfa, - limb3: 0x8033686bb4e1ef6e9b612ff + limb3: 0x8033686bb4e1ef6e9b612ff, }, u384 { limb0: 0x7a7ad0c52c28657c4a769c06, limb1: 0x775216ce123f05a76524b93, limb2: 0xe26a835655f015f1fd373625, - limb3: 0x3f3d649142a06cc083b490 + limb3: 0x3f3d649142a06cc083b490, }, u384 { limb0: 0x4803682fdc59cfd11539eeb0, limb1: 0x7730a5cbd5709e3bb52381d2, limb2: 0x409f3dc759375ea238a1eaae, - limb3: 0x183891ab932a0077e46a2be9 + limb3: 0x183891ab932a0077e46a2be9, }, u384 { limb0: 0x5da16dae83be184d7750c088, limb1: 0xabf88e3ae7e83cdf23bee171, limb2: 0x86b975949989dd92f5218265, - limb3: 0x40301ace7ef8a2075aba3a1 + limb3: 0x40301ace7ef8a2075aba3a1, }, u384 { limb0: 0x3563e365e61ea62ad9eba52c, limb1: 0x29d44ae24a003c2a0a0bfc1a, limb2: 0xc71216fa38b44c957208b7b8, - limb3: 0x18cb263293bcbad820256f82 + limb3: 0x18cb263293bcbad820256f82, }, u384 { limb0: 0x1a9e7d572e54c2b852270030, limb1: 0x6e5cd8f98a31ace51eb6e949, limb2: 0x955c6279356833b9cc76b80d, - limb3: 0x712465c55cca3274b3b0e07 + limb3: 0x712465c55cca3274b3b0e07, }, u384 { limb0: 0x100503b515d714cbb8a27f0, limb1: 0xef8fbce85ca02a25919c0089, limb2: 0x13257ae53ef1f1e1a5c95bac, - limb3: 0x17147e47625dcf3ad0144c9a + limb3: 0x17147e47625dcf3ad0144c9a, }, u384 { limb0: 0x69fe6d7eee2f579b8b6f832c, limb1: 0x736f42f5f05fe32ccb187bdd, limb2: 0xd5936e93ab65eb54484849ae, - limb3: 0xec49cc29a3edb5120356bac + limb3: 0xec49cc29a3edb5120356bac, }, u384 { limb0: 0xb8e985b1653006100b12d8f0, limb1: 0x9acd04374a7b07a9590a5fb5, limb2: 0x5d68a49ba0d4b313bf50eb21, - limb3: 0x39bb2af9b19937ee51ed93d + limb3: 0x39bb2af9b19937ee51ed93d, }, u384 { limb0: 0x5fd9edeb038755515eef0b5a, limb1: 0x3284002ba9cbfae9e3683a67, limb2: 0x12a96acd22c1aea86a6ca1bc, - limb3: 0x18d01fba4c9fc112faea52b5 + limb3: 0x18d01fba4c9fc112faea52b5, }, u384 { limb0: 0x570d2e9f1f0d307ec83518e2, limb1: 0xb10f4c12a0342a319b2e3e41, limb2: 0x66a39b508ea70a047567005, - limb3: 0x68690c93794746b687032ed + limb3: 0x68690c93794746b687032ed, }, u384 { limb0: 0x50816dcb426bdded508f8ca4, limb1: 0xe31e178d240f00eb63d17623, limb2: 0x92f419231391e80501860a2c, - limb3: 0x92d82a6077a0ef567421c66 + limb3: 0x92d82a6077a0ef567421c66, }, u384 { limb0: 0x43488db5bf6018a3037f23e7, limb1: 0x7ee87faf89f427b4225bb47a, limb2: 0xf5d91b1c2bfcfcb8487a09e6, - limb3: 0x13ef34edb7559d9663d1e2b5 + limb3: 0x13ef34edb7559d9663d1e2b5, }, u384 { limb0: 0xe424cde862bc7c8e63645522, limb1: 0x62718d1f13941c655435c1d0, limb2: 0x2864cee6c6d326f0243240c2, - limb3: 0x1d0972378f31659e2bfdaa6 + limb3: 0x1d0972378f31659e2bfdaa6, }, u384 { limb0: 0x1673b47b4395777c0871c675, limb1: 0x6b3c2f56cd3900299d4de04, limb2: 0x42ab9695fde441524b02331e, - limb3: 0x85a57aa9377b0cc46e6ea42 + limb3: 0x85a57aa9377b0cc46e6ea42, }, u384 { limb0: 0x7721fccf14204362f72c2430, limb1: 0x2f5a62d522f6650ff92a780c, limb2: 0xeee5b141fdadd172eb7e3cf3, - limb3: 0x191f8934bbdbc4c5188a94e4 + limb3: 0x191f8934bbdbc4c5188a94e4, }, u384 { limb0: 0x90b062328276a182840ee6ef, limb1: 0xec54f8fb1dd8c6143a7fa826, limb2: 0xaf2b6ff1e2eedaae029e34db, - limb3: 0xd4abebce288d8082ca92f87 + limb3: 0xd4abebce288d8082ca92f87, }, u384 { limb0: 0xa3276c96e7d01c5de86a4d70, limb1: 0xd9b9cdb6351837b08075bf44, limb2: 0x9fc4ea8f8907459988de5503, - limb3: 0x68cbb39de6ae9578ec5fa6f + limb3: 0x68cbb39de6ae9578ec5fa6f, }, u384 { limb0: 0xd15388b7143ab34496ef535c, limb1: 0xdb9668a6cce6c3c543266070, limb2: 0x49a2c75c7a54e55f3ef95f03, - limb3: 0xd65167b4236c52d05721780 + limb3: 0xd65167b4236c52d05721780, }, u384 { limb0: 0x85b58bab48463e834966ab11, limb1: 0xb02cb869b64812b9e3753ca1, limb2: 0x7fda263602253914fff242d0, - limb3: 0xbca8435044b1b16e2dbbd6b + limb3: 0xbca8435044b1b16e2dbbd6b, }, u384 { limb0: 0xd1c5d8213e25755776a386b8, limb1: 0x80b7a26ed8b87256a55a1cf8, limb2: 0x2bd50612913cd86835eb491e, - limb3: 0x80f5ccc34e24d363cc1c05 + limb3: 0x80f5ccc34e24d363cc1c05, }, u384 { limb0: 0xfd7c47bef64373d118bce56e, limb1: 0x5979a45b89f5392da68f09d0, limb2: 0x7e2421e538eda77acb96caf5, - limb3: 0x23870facd16d3f24785b35e + limb3: 0x23870facd16d3f24785b35e, }, u384 { limb0: 0x38f1202ec552276e8974fc17, limb1: 0x1105732d5d525711f459ad96, limb2: 0x399ffaf386ac7239aff30604, - limb3: 0x318342839a2fe1247fba92f + limb3: 0x318342839a2fe1247fba92f, }, u384 { limb0: 0x685d71996bf66c417510106b, limb1: 0x4274638d28f187dfe35a73b8, limb2: 0x441ab8e301279893463b3d52, - limb3: 0xbc0e6f9c3dd4c5c3d4741b3 + limb3: 0xbc0e6f9c3dd4c5c3d4741b3, }, u384 { limb0: 0x23796fc4dc3899e605cf7c9a, limb1: 0x999d820870721a8a4b20aaa2, limb2: 0xbb79a3d7a4672ec87074688d, - limb3: 0xf2aa54d36b070bdd2666946 + limb3: 0xf2aa54d36b070bdd2666946, }, u384 { limb0: 0x36da42cb42d6ae3e3b5b5a21, limb1: 0x131481bf4dc0eb3034dc1c88, limb2: 0xb760d0c94cee3329a23899ef, - limb3: 0xd6e292cfbbe0789a9f9d83c + limb3: 0xd6e292cfbbe0789a9f9d83c, }, u384 { limb0: 0xb1d88e92d2cf671b58ad3ff2, limb1: 0xd6c0b1512056b61fdb32d4f3, limb2: 0x2d0c4dd3a0249df24cacb163, - limb3: 0x99ff9205aeef48e8230b159 + limb3: 0x99ff9205aeef48e8230b159, }, u384 { limb0: 0x279f0c29809597d987bc1b15, limb1: 0x427af9a3d1b7afcc961ceca6, limb2: 0x18451c82916bc100d4c44fb7, - limb3: 0x55ac43a6df50da54a93b580 + limb3: 0x55ac43a6df50da54a93b580, }, u384 { limb0: 0x1cce2decdf2f6d50142e47cd, limb1: 0xcaffb5c1f2647ac7cd2c2d2d, limb2: 0x4790b961e45c8f95a379dc28, - limb3: 0x542c950fafaf19bc46ac1b + limb3: 0x542c950fafaf19bc46ac1b, }, u384 { limb0: 0x4910a421767c65cb1d45ad6e, limb1: 0x2a9c5f6572ce0739041880f0, limb2: 0xe23c42e73aa2c2138e5fa7de, - limb3: 0x11a1a925a870d21efb8c5241 + limb3: 0x11a1a925a870d21efb8c5241, }, u384 { limb0: 0xe8393f4b0a8b853db35b7024, limb1: 0x226f7f2707269053c268cddc, limb2: 0x50f271ba12375855136ea517, - limb3: 0x135a93b59aad7a1aa75cc5fd + limb3: 0x135a93b59aad7a1aa75cc5fd, }, u384 { limb0: 0xfde19d5a44cd7a193d4d48f4, limb1: 0xce7bbc0b87e4c3566ca8dbe2, limb2: 0x1c291e132f8e5b31e865495c, - limb3: 0xd93cc546754da462ceb51a9 + limb3: 0xd93cc546754da462ceb51a9, }, u384 { limb0: 0xc3f0e02daaa8c32870dcb43c, limb1: 0xb6e4f994a05998260dbd2733, limb2: 0x63653eecb877d2d2a89bcff, - limb3: 0x1299f136d645b1ab595d47d1 + limb3: 0x1299f136d645b1ab595d47d1, }, u384 { limb0: 0xc84f24a00988aa9cef9e5881, limb1: 0xf8eed8bf4e6289d6420534d0, limb2: 0x3405d08b4a0e8fd13c908bb8, - limb3: 0x106a5a977a7bf9d560a61f6f + limb3: 0x106a5a977a7bf9d560a61f6f, }, u384 { limb0: 0x8aee2fe29d30cbd04fb88710, limb1: 0x24724865ca69d673b6e4914d, limb2: 0xeb74c7ab973ff8d65f1b22a4, - limb3: 0x190deb02c8cca0669345b096 + limb3: 0x190deb02c8cca0669345b096, }, u384 { limb0: 0x57442e749c13271c80e941bb, limb1: 0x804c1f1da5fd5c1aa653714f, limb2: 0x414e15950d5ba33f6d0f7926, - limb3: 0x17a7ff7648bb9f8968bf2231 + limb3: 0x17a7ff7648bb9f8968bf2231, }, u384 { limb0: 0xf4fabe84ca0d54ae7ee5b48a, limb1: 0x482f2ecd648735cae602724c, limb2: 0x5d835919deaf84e31c84b777, - limb3: 0x906e0ae5db5a21ff45fda43 + limb3: 0x906e0ae5db5a21ff45fda43, }, u384 { limb0: 0x84d49fcb668a6de03c21f98f, limb1: 0x182fb955942c0cc1674aef69, limb2: 0xb5b7349d1467cc475af99e5c, - limb3: 0x15ee5f0e198e37e73e92fd8c + limb3: 0x15ee5f0e198e37e73e92fd8c, }, u384 { limb0: 0x45f3cd62bd31e8b68ae86207, limb1: 0xef561a5f67957d1e13310d3c, limb2: 0xc2c4d2c9c403c537b59edbf6, - limb3: 0x1060d986d088f87b3a7da253 + limb3: 0x1060d986d088f87b3a7da253, }, u384 { limb0: 0x78248f5285f9a50157420370, limb1: 0xd13aa63bbad6cf31c9472873, limb2: 0xe4432926ed4ea8c4fd34a98b, - limb3: 0x18cc5a6583b174758773963 + limb3: 0x18cc5a6583b174758773963, }, u384 { limb0: 0x9ad3a24d5a2432b11187247, limb1: 0x2d70f3667b14937366448db7, limb2: 0xcbd20b6abd79da6f819594b3, - limb3: 0x1625c957cb3997f413223dd + limb3: 0x1625c957cb3997f413223dd, }, u384 { limb0: 0x3f4a789bf78e85b4b8131eeb, limb1: 0x46e7b3a921517e3db6d3e534, limb2: 0x333b6d997777507c60238b5e, - limb3: 0xb267c745cd568bec5a3dfe3 + limb3: 0xb267c745cd568bec5a3dfe3, }, u384 { limb0: 0x684a96fd5bdf98d363454990, limb1: 0x692aed968c391756f0887ced, limb2: 0x974b0555fc428f554e0ba2f, - limb3: 0x125b59855274666facd060f2 + limb3: 0x125b59855274666facd060f2, }, u384 { limb0: 0xa72f1654521f3d46e29874e1, limb1: 0x31dfe63bc3643f5e09e73385, limb2: 0x7c4403438f8a353edd9f3e0e, - limb3: 0x6629f10aed15fe47accb967 + limb3: 0x6629f10aed15fe47accb967, }, u384 { limb0: 0xffb40c8bb79ada37ca221755, limb1: 0x8ae98489eeabce2b618c7a4e, limb2: 0xda2617d78bd1a4f4cc4a314d, - limb3: 0x8405f95230a018850f09de + limb3: 0x8405f95230a018850f09de, }, u384 { limb0: 0xad8f916bdfac99d0f0d1c42a, limb1: 0x8bcb08eb2890930597ee48f7, limb2: 0x3e0ef41249599ecdedb9730d, - limb3: 0x66c8c4d72a8c1e3befc0b72 + limb3: 0x66c8c4d72a8c1e3befc0b72, }, u384 { limb0: 0xc04398e3a4a99b96124819b5, limb1: 0x3e399d72c8f62a8654a4b852, limb2: 0x6fbaa9a69ea96e66933939c, - limb3: 0x14a0bee4e98917bb823f296c + limb3: 0x14a0bee4e98917bb823f296c, }, u384 { limb0: 0xd2eff08b9f773a8f5c267e0d, limb1: 0x272a2ce823e52a8836d154f6, limb2: 0xd93075e54fb80bcb390bd3e1, - limb3: 0xa4bffcc591c6071c0665187 + limb3: 0xa4bffcc591c6071c0665187, }, u384 { limb0: 0x8a91a44bcb2d6806c2220cfd, limb1: 0xf8ee653d31c3a202f347b088, limb2: 0xd4910bbdd91980375d532406, - limb3: 0x26f85d37730b8d22286fda8 + limb3: 0x26f85d37730b8d22286fda8, }, u384 { limb0: 0x147a4575e2e3d94ca278dc64, limb1: 0xeaaa6dd881c58832ba62e7d9, limb2: 0xf1cea42648f83de9a4a151cd, - limb3: 0x99ea7cd5bf6ef73b4bef61c + limb3: 0x99ea7cd5bf6ef73b4bef61c, }, u384 { limb0: 0xba514ad49e88c9dc75116d6a, limb1: 0x6b533ea5dd250dc58d67af2f, limb2: 0xd1bf4d0188cc11edbed41cad, - limb3: 0x11bd800dcd3054105eaaa46a + limb3: 0x11bd800dcd3054105eaaa46a, }, u384 { limb0: 0xf9e08c7a7a9e8a0819eb9b9, limb1: 0x4f810d0383da4d13464c0e97, limb2: 0xb7683484f0c5fe9e049ce136, - limb3: 0x146daaf6ace059efeb1886f6 + limb3: 0x146daaf6ace059efeb1886f6, }, u384 { limb0: 0x1d3bf9902ef608afd0a2a3a0, limb1: 0x7def37d217fe1a0de626f9d1, limb2: 0x54635f63d12d8550bbcd3a38, - limb3: 0x10edb0b7e485fc427f9e1cc0 + limb3: 0x10edb0b7e485fc427f9e1cc0, }, u384 { limb0: 0x510565dac1be0c0a9f617781, limb1: 0x95810a4706775fc16f64b2d7, limb2: 0x650adb63270ce07d6c21a2e7, - limb3: 0x8e932066197d8862fed89a2 + limb3: 0x8e932066197d8862fed89a2, }, u384 { limb0: 0xb113cf291245622973e35fb3, limb1: 0x98c52f8c5f673568c43af190, limb2: 0xf4023002730ff38f32f50b69, - limb3: 0x721d55903691fe2970d17a0 + limb3: 0x721d55903691fe2970d17a0, }, u384 { limb0: 0xc481b992d75470433f38997, limb1: 0xebd9e46518846d227890e19b, limb2: 0x1018fdeb0f44589bee778a70, - limb3: 0x1346e58ba38615175807727a + limb3: 0x1346e58ba38615175807727a, }, u384 { limb0: 0x5d6dd5c6a06adbb29ff7dd31, limb1: 0x6bb5b37545ed68830def9191, limb2: 0xdc658b849ce4592f104b1816, - limb3: 0x18e80b92392caae301180e65 + limb3: 0x18e80b92392caae301180e65, }, u384 { limb0: 0x915cd725ebfad97989db1bdf, limb1: 0xcdeb6a465ba527e4f81f9524, limb2: 0xa9f7ed2fe29efa01cf6795d7, - limb3: 0x539198572186c76d0bb835a + limb3: 0x539198572186c76d0bb835a, }, u384 { limb0: 0x1e7444b99a4e42d572233c9b, limb1: 0xc28ab58494267d5bd8d3f95, limb2: 0x3adb08c99aa27abcd0f298ba, - limb3: 0xac5d08bba94db8f0ac9fa51 + limb3: 0xac5d08bba94db8f0ac9fa51, }, u384 { limb0: 0x6308062e9b037bf1bbd51ef2, limb1: 0xd3ad7b0cc77a4993cec70094, limb2: 0x1a5176a03c375e449bb637b4, - limb3: 0x147f075315e9aaee36cef68d + limb3: 0x147f075315e9aaee36cef68d, }, u384 { limb0: 0x1f56d89db6c0d1847e5c3eef, limb1: 0xb7335ad56a86fb5e884a36d7, limb2: 0x3eb899bbcb1080a5ad599ad1, - limb3: 0x49e1afdff4d01c72d008012 + limb3: 0x49e1afdff4d01c72d008012, }, u384 { limb0: 0x4b694a7b4ed9e8df6598ff3e, limb1: 0xf9b4b51c07a2f5edcc2afc70, limb2: 0xfa37832f0bb1798b282e8f3d, - limb3: 0xbe3e3688dfce83893b6e4d2 + limb3: 0xbe3e3688dfce83893b6e4d2, }, u384 { limb0: 0xf7ce0b4425f19f7c4af347ba, limb1: 0x7bf7ac01f97e2689385d728a, limb2: 0x768b63f039e6dc70a8e64d85, - limb3: 0x17b9367aee26aabc905877fa + limb3: 0x17b9367aee26aabc905877fa, }, u384 { limb0: 0xb05ebf596bc5a1292b86b1c7, limb1: 0x37604c968c8126bdc5dd938a, limb2: 0x11e3a434e713a59cc71ab17c, - limb3: 0x116c9b1785c7e8a8c241d829 + limb3: 0x116c9b1785c7e8a8c241d829, }, u384 { limb0: 0xc8078257ae47d0c86d52b518, limb1: 0x200eb8175a1c54c1174c0832, limb2: 0xb49456b967656354020295b8, - limb3: 0x5f0e3f743069bbea387842a + limb3: 0x5f0e3f743069bbea387842a, }, u384 { limb0: 0xe975c76271b80c9c2ec1bd08, limb1: 0x682582aa8d4443860b213411, limb2: 0xffbce7d3739fd2c63b0ebc51, - limb3: 0x1547bf2d19d6381e0ac68164 + limb3: 0x1547bf2d19d6381e0ac68164, }, u384 { limb0: 0xb201c995619119389220ced1, limb1: 0x39f5f4f89935e4f1a997da83, limb2: 0x88d1869f7c6426bc8b091b58, - limb3: 0x76a41b21ec5c8132df809a0 + limb3: 0x76a41b21ec5c8132df809a0, }, u384 { limb0: 0xf13f56d89c2af364c4a5b285, limb1: 0x951d39a59e9621ac9aab635b, limb2: 0x19cd0face66dfa5799d09c05, - limb3: 0x15a37974bdf33247dccdf43c + limb3: 0x15a37974bdf33247dccdf43c, }, u384 { limb0: 0xa3a7f28cf4bf358ee8be13f9, limb1: 0x3a58c0b98731bed0dc5483b5, limb2: 0x6a3ab1e2b743c9d43444b7f9, - limb3: 0x19ce8466aeebb7e2bdbdfc93 + limb3: 0x19ce8466aeebb7e2bdbdfc93, }, u384 { limb0: 0x9587fc85a5569d7ab78a9d95, limb1: 0xaa8bb71b49177ef88b2ad10b, limb2: 0x92c51b983a90887935189fa9, - limb3: 0x77e424bb7dcbb82a1045a17 + limb3: 0x77e424bb7dcbb82a1045a17, }, u384 { limb0: 0xae715d71cb96099a0055ad2e, limb1: 0xfc066d3b0a0568fb683d2071, limb2: 0x52d087b39c91ce3075b670cd, - limb3: 0x1808171ac84fd5f01bd71df8 + limb3: 0x1808171ac84fd5f01bd71df8, }, u384 { limb0: 0xf48898c2234389437360978b, limb1: 0xaf978b90c0f15a8da250734e, limb2: 0x934cb49968f66d57bd36979a, - limb3: 0x18b4d25d7a532dba9ad5947a + limb3: 0x18b4d25d7a532dba9ad5947a, }, u384 { limb0: 0xc928e16fa139c3d8dc905ac, limb1: 0x63c08a003816c916151b6dd7, limb2: 0x88627ef3578a6184d6ead4e3, - limb3: 0xc3c06389f2bc3cac06175c9 + limb3: 0xc3c06389f2bc3cac06175c9, }, u384 { limb0: 0x4c3a2faf1efce6bab793d7bf, limb1: 0x74818405ca5fb239bfb3e084, limb2: 0x6f847cfbf7f739ff966aeb42, - limb3: 0x168af83f5a4e9b88431d641e + limb3: 0x168af83f5a4e9b88431d641e, }, u384 { limb0: 0x948c6bdce040acb1d2a2ee1b, limb1: 0x13fb35cfc043c7afd6dcd21a, limb2: 0xdac9a41013d7609ec3ac7d4f, - limb3: 0x4d140c79a879c6e48e78944 - } + limb3: 0x4d140c79a879c6e48e78944, + }, ], }; let res = multi_pairing_check_bls12_381_2P_2F(pair0, pair1, lines, hint); @@ -22611,41 +21173,41 @@ mod pairing_tests { limb0: 0xe4f817e54aede0613c17035c, limb1: 0xdff1f15010392a6da1f95a6, limb2: 0xbed78d3d341e911d49f15454, - limb3: 0x18154782ce0913b21588066d + limb3: 0x18154782ce0913b21588066d, }, y: u384 { limb0: 0x3d77d61326ef5a9a5a681757, limb1: 0xd3070afd4f0e121de7fcee60, limb2: 0xdf9ef4088763fe611fb85858, - limb3: 0x11a612bdd0bc09562856a70 - } + limb3: 0x11a612bdd0bc09562856a70, + }, }, q: G2Point { x0: u384 { limb0: 0x30d2fddc2fa171cdd4d31a55, limb1: 0x92fab4f255a20d09700542e5, limb2: 0x4d92a8c02d22b8cea4ff21ab, - limb3: 0x120a838699abaae7ed948194 + limb3: 0x120a838699abaae7ed948194, }, x1: u384 { limb0: 0x51cd5fdc71cf4557ef606935, limb1: 0x92e1b13e2c93fc9957b17841, limb2: 0x6143a906b63b7f3476ad6819, - limb3: 0x158186f6f2dd04cfa4e78547 + limb3: 0x158186f6f2dd04cfa4e78547, }, y0: u384 { limb0: 0x9f1c7dcdbe4574f05d0c093b, limb1: 0xcde395f3ee4e353cf25a2e21, limb2: 0x6a44c4a6d642c3dd98128703, - limb3: 0x2bd32fdfe26d866771e2180 + limb3: 0x2bd32fdfe26d866771e2180, }, y1: u384 { limb0: 0x7060005397ea11f7e9a26050, limb1: 0xeb8540654b533da9b594fc27, limb2: 0xfc83cf9d283b7231df1db3f9, - limb3: 0x7ff9623d918ca12e0ff6cce - } - } + limb3: 0x7ff9623d918ca12e0ff6cce, + }, + }, }; let pair1: G1G2Pair = G1G2Pair { p: G1Point { @@ -22653,41 +21215,41 @@ mod pairing_tests { limb0: 0xe4f817e54aede0613c17035c, limb1: 0xdff1f15010392a6da1f95a6, limb2: 0xbed78d3d341e911d49f15454, - limb3: 0x18154782ce0913b21588066d + limb3: 0x18154782ce0913b21588066d, }, y: u384 { limb0: 0x3d77d61326ef5a9a5a681757, limb1: 0xd3070afd4f0e121de7fcee60, limb2: 0xdf9ef4088763fe611fb85858, - limb3: 0x11a612bdd0bc09562856a70 - } + limb3: 0x11a612bdd0bc09562856a70, + }, }, q: G2Point { x0: u384 { limb0: 0x30d2fddc2fa171cdd4d31a55, limb1: 0x92fab4f255a20d09700542e5, limb2: 0x4d92a8c02d22b8cea4ff21ab, - limb3: 0x120a838699abaae7ed948194 + limb3: 0x120a838699abaae7ed948194, }, x1: u384 { limb0: 0x51cd5fdc71cf4557ef606935, limb1: 0x92e1b13e2c93fc9957b17841, limb2: 0x6143a906b63b7f3476ad6819, - limb3: 0x158186f6f2dd04cfa4e78547 + limb3: 0x158186f6f2dd04cfa4e78547, }, y0: u384 { limb0: 0x9f1c7dcdbe4574f05d0c093b, limb1: 0xcde395f3ee4e353cf25a2e21, limb2: 0x6a44c4a6d642c3dd98128703, - limb3: 0x2bd32fdfe26d866771e2180 + limb3: 0x2bd32fdfe26d866771e2180, }, y1: u384 { limb0: 0x7060005397ea11f7e9a26050, limb1: 0xeb8540654b533da9b594fc27, limb2: 0xfc83cf9d283b7231df1db3f9, - limb3: 0x7ff9623d918ca12e0ff6cce - } - } + limb3: 0x7ff9623d918ca12e0ff6cce, + }, + }, }; let pair2: G1G2Pair = G1G2Pair { p: G1Point { @@ -22695,115 +21257,115 @@ mod pairing_tests { limb0: 0xe4f817e54aede0613c17035c, limb1: 0xdff1f15010392a6da1f95a6, limb2: 0xbed78d3d341e911d49f15454, - limb3: 0x18154782ce0913b21588066d + limb3: 0x18154782ce0913b21588066d, }, y: u384 { limb0: 0x3d77d61326ef5a9a5a681757, limb1: 0xd3070afd4f0e121de7fcee60, limb2: 0xdf9ef4088763fe611fb85858, - limb3: 0x11a612bdd0bc09562856a70 - } + limb3: 0x11a612bdd0bc09562856a70, + }, }, q: G2Point { x0: u384 { limb0: 0x30d2fddc2fa171cdd4d31a55, limb1: 0x92fab4f255a20d09700542e5, limb2: 0x4d92a8c02d22b8cea4ff21ab, - limb3: 0x120a838699abaae7ed948194 + limb3: 0x120a838699abaae7ed948194, }, x1: u384 { limb0: 0x51cd5fdc71cf4557ef606935, limb1: 0x92e1b13e2c93fc9957b17841, limb2: 0x6143a906b63b7f3476ad6819, - limb3: 0x158186f6f2dd04cfa4e78547 + limb3: 0x158186f6f2dd04cfa4e78547, }, y0: u384 { limb0: 0x9f1c7dcdbe4574f05d0c093b, limb1: 0xcde395f3ee4e353cf25a2e21, limb2: 0x6a44c4a6d642c3dd98128703, - limb3: 0x2bd32fdfe26d866771e2180 + limb3: 0x2bd32fdfe26d866771e2180, }, y1: u384 { limb0: 0x7060005397ea11f7e9a26050, limb1: 0xeb8540654b533da9b594fc27, limb2: 0xfc83cf9d283b7231df1db3f9, - limb3: 0x7ff9623d918ca12e0ff6cce - } - } + limb3: 0x7ff9623d918ca12e0ff6cce, + }, + }, }; let precomputed_miller_loop_result = E12D { w0: u384 { limb0: 0xb911c83d732e7d278eca2b2, limb1: 0x371bde647281b4f0753c7b54, limb2: 0x32f3136b6412048dad82afcf, - limb3: 0x276d8a09b1ef471d61e1fe9 + limb3: 0x276d8a09b1ef471d61e1fe9, }, w1: u384 { limb0: 0x2d08819331e98c628ad7e6a4, limb1: 0xf78975823557a6eaed403568, limb2: 0xd357bcaa08f3bcf837b69302, - limb3: 0x84dc8eb534426c70fdeb97a + limb3: 0x84dc8eb534426c70fdeb97a, }, w2: u384 { limb0: 0xd8ab7356837a3539e775e8a4, limb1: 0xeac85ffce2bc7b2518fb953c, limb2: 0xdb2e7f9897c5d9aac15601e7, - limb3: 0xad1ecf602d65fe881eaa6e0 + limb3: 0xad1ecf602d65fe881eaa6e0, }, w3: u384 { limb0: 0xb4bbd298bab0e4881a5ebb34, limb1: 0x14d8b2b539c52b38e862bb30, limb2: 0xc1ba1386389c858a2803bf51, - limb3: 0xc44713fa939be012d57473a + limb3: 0xc44713fa939be012d57473a, }, w4: u384 { limb0: 0x8c8a60ac405578242750266c, limb1: 0x1f6ed0fc4768c4d33ae5bde9, limb2: 0x74356664cf5f284c5d9047dd, - limb3: 0x17d27924032bad1b96b038a7 + limb3: 0x17d27924032bad1b96b038a7, }, w5: u384 { limb0: 0xdca890b5c14238be57f05981, limb1: 0x5d5411099e394511d4bf5f21, limb2: 0x529d5c8a74ead9d439593056, - limb3: 0x252d46d43966352b46ef871 + limb3: 0x252d46d43966352b46ef871, }, w6: u384 { limb0: 0x1e65e90c6094915aaef973cd, limb1: 0x606ac452167328657347b203, limb2: 0x6198bb2924ef03ae600f7222, - limb3: 0xdb2280eeda7144c402dfe7f + limb3: 0xdb2280eeda7144c402dfe7f, }, w7: u384 { limb0: 0x71c5034bc18b6d1c45a03c30, limb1: 0x31f94b4bb159c235c039f752, limb2: 0xdf1e1ed1387d8c002c5f3a20, - limb3: 0x190ab4a19e1f1b981b892bae + limb3: 0x190ab4a19e1f1b981b892bae, }, w8: u384 { limb0: 0xf00e883b8262021a004b9fc8, limb1: 0x369f48c0083f000e7eeec362, limb2: 0x9170f7ea386763607860320a, - limb3: 0x16e03a19b04611cdff78c5fd + limb3: 0x16e03a19b04611cdff78c5fd, }, w9: u384 { limb0: 0xf3b76b5dfdcf84760b96fa0c, limb1: 0x4ba7b263cc869557904c59cf, limb2: 0xbed73f63ea723c5eca33d491, - limb3: 0x128d8d88c3c8616ff326a554 + limb3: 0x128d8d88c3c8616ff326a554, }, w10: u384 { limb0: 0x4380616825a3a723a4dc2b5c, limb1: 0x712262fd5e7ddfa653a4708e, limb2: 0x303031f5c1bf5e2f73d4750a, - limb3: 0x36d2ef1d9b923357234e298 + limb3: 0x36d2ef1d9b923357234e298, }, w11: u384 { limb0: 0xbe53e886831d35b55f343069, limb1: 0x34b2a5b11f48e46a872245a2, limb2: 0x6afab08a2bc52479f09c105f, - limb3: 0x329f18e7852fa05613e9204 - } + limb3: 0x329f18e7852fa05613e9204, + }, }; let lines = array![ G2Line { @@ -22811,3536 +21373,3536 @@ mod pairing_tests { limb0: 0xa5165654d48ad38da89955b2, limb1: 0x36388a52d2379c53735285c1, limb2: 0xb1cba90b5a7d592a905913f6, - limb3: 0xf04eef4de6a895d29865a33 + limb3: 0xf04eef4de6a895d29865a33, }, r0a1: u384 { limb0: 0x11170525e014139da401da13, limb1: 0xdfc4d38dc6621f61b8834990, limb2: 0xb86906ab9966ab43169ba396, - limb3: 0x104b8a575e67290a4d8e5d0 + limb3: 0x104b8a575e67290a4d8e5d0, }, r1a0: u384 { limb0: 0x2fddaa92e366f11a886242bb, limb1: 0xf7255a5c3e06de681d21207f, limb2: 0x544afd5f8c149ed0980ad33f, - limb3: 0x18ff3a5ad5398470eec050cd + limb3: 0x18ff3a5ad5398470eec050cd, }, r1a1: u384 { limb0: 0x5ebc8ff3cef71a1b2b0ce5d9, limb1: 0xf4093ee74d1a5714b4562355, limb2: 0xe6d400f1614d23e5b0b3831f, - limb3: 0x4e3cba1ec100020f137797e - } + limb3: 0x4e3cba1ec100020f137797e, + }, }, G2Line { r0a0: u384 { limb0: 0xcf94aa0961ba244fb7b34f8, limb1: 0x9eedbbaadfb34c820b7b9046, limb2: 0xdfdb0674b62b2c9622a321e9, - limb3: 0x18745455fc3b957175dbaaab + limb3: 0x18745455fc3b957175dbaaab, }, r0a1: u384 { limb0: 0xb18b9b496c7e76d19d0476a3, limb1: 0x532e40e737e71a727e36699d, limb2: 0x1173a4db0c906464c9c6dfe5, - limb3: 0x14436970af87927ca25ab397 + limb3: 0x14436970af87927ca25ab397, }, r1a0: u384 { limb0: 0x2b8bedf7ace9601914137555, limb1: 0x8e5a6616ba6b5a7c0a4b60cc, limb2: 0xeed2fb7a6b6951d08720afd2, - limb3: 0x6e20b841803b78a54cb51f0 + limb3: 0x6e20b841803b78a54cb51f0, }, r1a1: u384 { limb0: 0xe2f3cc1d38637307df479c33, limb1: 0x553fbfecff64b0f8513ea53, limb2: 0xc35e934c2f0dd0dfc36fb764, - limb3: 0xfe253f73265563f5da37bf0 - } + limb3: 0xfe253f73265563f5da37bf0, + }, }, G2Line { r0a0: u384 { limb0: 0xa5165654d48ad38da89955b2, limb1: 0x36388a52d2379c53735285c1, limb2: 0xb1cba90b5a7d592a905913f6, - limb3: 0xf04eef4de6a895d29865a33 + limb3: 0xf04eef4de6a895d29865a33, }, r0a1: u384 { limb0: 0x11170525e014139da401da13, limb1: 0xdfc4d38dc6621f61b8834990, limb2: 0xb86906ab9966ab43169ba396, - limb3: 0x104b8a575e67290a4d8e5d0 + limb3: 0x104b8a575e67290a4d8e5d0, }, r1a0: u384 { limb0: 0x2fddaa92e366f11a886242bb, limb1: 0xf7255a5c3e06de681d21207f, limb2: 0x544afd5f8c149ed0980ad33f, - limb3: 0x18ff3a5ad5398470eec050cd + limb3: 0x18ff3a5ad5398470eec050cd, }, r1a1: u384 { limb0: 0x5ebc8ff3cef71a1b2b0ce5d9, limb1: 0xf4093ee74d1a5714b4562355, limb2: 0xe6d400f1614d23e5b0b3831f, - limb3: 0x4e3cba1ec100020f137797e - } + limb3: 0x4e3cba1ec100020f137797e, + }, }, G2Line { r0a0: u384 { limb0: 0xcf94aa0961ba244fb7b34f8, limb1: 0x9eedbbaadfb34c820b7b9046, limb2: 0xdfdb0674b62b2c9622a321e9, - limb3: 0x18745455fc3b957175dbaaab + limb3: 0x18745455fc3b957175dbaaab, }, r0a1: u384 { limb0: 0xb18b9b496c7e76d19d0476a3, limb1: 0x532e40e737e71a727e36699d, limb2: 0x1173a4db0c906464c9c6dfe5, - limb3: 0x14436970af87927ca25ab397 + limb3: 0x14436970af87927ca25ab397, }, r1a0: u384 { limb0: 0x2b8bedf7ace9601914137555, limb1: 0x8e5a6616ba6b5a7c0a4b60cc, limb2: 0xeed2fb7a6b6951d08720afd2, - limb3: 0x6e20b841803b78a54cb51f0 + limb3: 0x6e20b841803b78a54cb51f0, }, r1a1: u384 { limb0: 0xe2f3cc1d38637307df479c33, limb1: 0x553fbfecff64b0f8513ea53, limb2: 0xc35e934c2f0dd0dfc36fb764, - limb3: 0xfe253f73265563f5da37bf0 - } + limb3: 0xfe253f73265563f5da37bf0, + }, }, G2Line { r0a0: u384 { limb0: 0xf63d5adf98504eb919404838, limb1: 0x322c7fec39e0dbb7e3fab671, limb2: 0x66a7d9554b938f680e363589, - limb3: 0x168b865e60bf25b5f80efdba + limb3: 0x168b865e60bf25b5f80efdba, }, r0a1: u384 { limb0: 0xa19475051f484344fbfcb94, limb1: 0xecab432b31e20fd481ef1641, limb2: 0x9aef0e4871833b8e86498442, - limb3: 0xbfbebd5fe20e6b34cd10d52 + limb3: 0xbfbebd5fe20e6b34cd10d52, }, r1a0: u384 { limb0: 0x3034c4ead4a9ecca97ef227f, limb1: 0x3ff722abdd9b1b4fb2ed76a2, limb2: 0x89478f4e3e947df714a9fb5e, - limb3: 0xf7d15d762bc99988f9d789d + limb3: 0xf7d15d762bc99988f9d789d, }, r1a1: u384 { limb0: 0xe7309c91453760cefb576bc9, limb1: 0xc04e0c62e92a4efd0f9d9c3b, limb2: 0xada0f0a505209353f4b17f24, - limb3: 0x185b2e9615659da43b50282e - } + limb3: 0x185b2e9615659da43b50282e, + }, }, G2Line { r0a0: u384 { limb0: 0xf63d5adf98504eb919404838, limb1: 0x322c7fec39e0dbb7e3fab671, limb2: 0x66a7d9554b938f680e363589, - limb3: 0x168b865e60bf25b5f80efdba + limb3: 0x168b865e60bf25b5f80efdba, }, r0a1: u384 { limb0: 0xa19475051f484344fbfcb94, limb1: 0xecab432b31e20fd481ef1641, limb2: 0x9aef0e4871833b8e86498442, - limb3: 0xbfbebd5fe20e6b34cd10d52 + limb3: 0xbfbebd5fe20e6b34cd10d52, }, r1a0: u384 { limb0: 0x3034c4ead4a9ecca97ef227f, limb1: 0x3ff722abdd9b1b4fb2ed76a2, limb2: 0x89478f4e3e947df714a9fb5e, - limb3: 0xf7d15d762bc99988f9d789d + limb3: 0xf7d15d762bc99988f9d789d, }, r1a1: u384 { limb0: 0xe7309c91453760cefb576bc9, limb1: 0xc04e0c62e92a4efd0f9d9c3b, limb2: 0xada0f0a505209353f4b17f24, - limb3: 0x185b2e9615659da43b50282e - } + limb3: 0x185b2e9615659da43b50282e, + }, }, G2Line { r0a0: u384 { limb0: 0xacd0c846fbba57a06a86174d, limb1: 0xb3559bb08ff796c300ff2163, limb2: 0xb7ebbcfa41b1f30d02874a61, - limb3: 0x7a87f7612c63af0969932c + limb3: 0x7a87f7612c63af0969932c, }, r0a1: u384 { limb0: 0xd4f55c22c625dddb92b73bd7, limb1: 0x681facc4bfa2b130fcf3dacd, limb2: 0x3bd92d164662bbb7f99c1b5a, - limb3: 0x12ac7263968961adecde567f + limb3: 0x12ac7263968961adecde567f, }, r1a0: u384 { limb0: 0x81f5ef562d3dfd1fe4780fbf, limb1: 0xcb396419628f7f02f0f0e2f8, limb2: 0x3012e01dd8fc025163ad5e2a, - limb3: 0x1c053f246178e26fa6d3dea + limb3: 0x1c053f246178e26fa6d3dea, }, r1a1: u384 { limb0: 0xc81f62215d8116e0b580ac54, limb1: 0xef2e48f58ffbbafac5b2b827, limb2: 0xe22598ad9700d53d0ab24440, - limb3: 0xeec459ce4be55ed92aa3f08 - } + limb3: 0xeec459ce4be55ed92aa3f08, + }, }, G2Line { r0a0: u384 { limb0: 0x628192ce61515a10db139388, limb1: 0xdf2fbc87bd9658e30ab5ca96, limb2: 0x81420786279bf4a2c17ecbee, - limb3: 0x7cd8317980fac457217aa73 + limb3: 0x7cd8317980fac457217aa73, }, r0a1: u384 { limb0: 0xad2f18fc2c832eedc6828d6a, limb1: 0x2c62b1d26ffe93fb41fbf6a6, limb2: 0x54a6928b6b6cb48d95627389, - limb3: 0x155b45f029858968773bd77a + limb3: 0x155b45f029858968773bd77a, }, r1a0: u384 { limb0: 0x3a4649b4ea519194273b8413, limb1: 0x39ed13d914c220a2a8621253, limb2: 0xb2c2fe85ccf72ab37ef6d3e8, - limb3: 0x2f73caef28adb638d772f51 + limb3: 0x2f73caef28adb638d772f51, }, r1a1: u384 { limb0: 0x9a5228bb86ec7a83fc86d719, limb1: 0x7b209838f6c5a27f3b13850e, limb2: 0x2f682efc7c8f9d868bb155a0, - limb3: 0x14e1ffb93bd477d5824891f6 - } + limb3: 0x14e1ffb93bd477d5824891f6, + }, }, G2Line { r0a0: u384 { limb0: 0xacd0c846fbba57a06a86174d, limb1: 0xb3559bb08ff796c300ff2163, limb2: 0xb7ebbcfa41b1f30d02874a61, - limb3: 0x7a87f7612c63af0969932c + limb3: 0x7a87f7612c63af0969932c, }, r0a1: u384 { limb0: 0xd4f55c22c625dddb92b73bd7, limb1: 0x681facc4bfa2b130fcf3dacd, limb2: 0x3bd92d164662bbb7f99c1b5a, - limb3: 0x12ac7263968961adecde567f + limb3: 0x12ac7263968961adecde567f, }, r1a0: u384 { limb0: 0x81f5ef562d3dfd1fe4780fbf, limb1: 0xcb396419628f7f02f0f0e2f8, limb2: 0x3012e01dd8fc025163ad5e2a, - limb3: 0x1c053f246178e26fa6d3dea + limb3: 0x1c053f246178e26fa6d3dea, }, r1a1: u384 { limb0: 0xc81f62215d8116e0b580ac54, limb1: 0xef2e48f58ffbbafac5b2b827, limb2: 0xe22598ad9700d53d0ab24440, - limb3: 0xeec459ce4be55ed92aa3f08 - } + limb3: 0xeec459ce4be55ed92aa3f08, + }, }, G2Line { r0a0: u384 { limb0: 0x628192ce61515a10db139388, limb1: 0xdf2fbc87bd9658e30ab5ca96, limb2: 0x81420786279bf4a2c17ecbee, - limb3: 0x7cd8317980fac457217aa73 + limb3: 0x7cd8317980fac457217aa73, }, r0a1: u384 { limb0: 0xad2f18fc2c832eedc6828d6a, limb1: 0x2c62b1d26ffe93fb41fbf6a6, limb2: 0x54a6928b6b6cb48d95627389, - limb3: 0x155b45f029858968773bd77a + limb3: 0x155b45f029858968773bd77a, }, r1a0: u384 { limb0: 0x3a4649b4ea519194273b8413, limb1: 0x39ed13d914c220a2a8621253, limb2: 0xb2c2fe85ccf72ab37ef6d3e8, - limb3: 0x2f73caef28adb638d772f51 + limb3: 0x2f73caef28adb638d772f51, }, r1a1: u384 { limb0: 0x9a5228bb86ec7a83fc86d719, limb1: 0x7b209838f6c5a27f3b13850e, limb2: 0x2f682efc7c8f9d868bb155a0, - limb3: 0x14e1ffb93bd477d5824891f6 - } + limb3: 0x14e1ffb93bd477d5824891f6, + }, }, G2Line { r0a0: u384 { limb0: 0x1aade009b16b47d1f727828e, limb1: 0xc03ad66ffa3eb3facb3162dd, limb2: 0x89fc57933c577fcb302abd31, - limb3: 0x14a7ae423327b8eb4258ddc7 + limb3: 0x14a7ae423327b8eb4258ddc7, }, r0a1: u384 { limb0: 0xb11c5c536b7a01248a05036e, limb1: 0x4b63f65385cbfd77dd0c6b99, limb2: 0xfc1bd30c87ae38746b0ea7ed, - limb3: 0xb343c5f6d66a234c16e751f + limb3: 0xb343c5f6d66a234c16e751f, }, r1a0: u384 { limb0: 0xbfc9b6d848bfcfc1500c9e92, limb1: 0xe6aca7c5d29a818829b8fcd6, limb2: 0xf14399d2c3b586fa7369ef82, - limb3: 0x16fe63f10adc6d94ef6ac666 + limb3: 0x16fe63f10adc6d94ef6ac666, }, r1a1: u384 { limb0: 0x788c4a6c2cc0d6d1431f8fe0, limb1: 0x6fbb017725bc437f59472864, limb2: 0x7af112586422e8b451fff86f, - limb3: 0x8f33c7c0369d6bf05923ec6 - } + limb3: 0x8f33c7c0369d6bf05923ec6, + }, }, G2Line { r0a0: u384 { limb0: 0x1aade009b16b47d1f727828e, limb1: 0xc03ad66ffa3eb3facb3162dd, limb2: 0x89fc57933c577fcb302abd31, - limb3: 0x14a7ae423327b8eb4258ddc7 + limb3: 0x14a7ae423327b8eb4258ddc7, }, r0a1: u384 { limb0: 0xb11c5c536b7a01248a05036e, limb1: 0x4b63f65385cbfd77dd0c6b99, limb2: 0xfc1bd30c87ae38746b0ea7ed, - limb3: 0xb343c5f6d66a234c16e751f + limb3: 0xb343c5f6d66a234c16e751f, }, r1a0: u384 { limb0: 0xbfc9b6d848bfcfc1500c9e92, limb1: 0xe6aca7c5d29a818829b8fcd6, limb2: 0xf14399d2c3b586fa7369ef82, - limb3: 0x16fe63f10adc6d94ef6ac666 + limb3: 0x16fe63f10adc6d94ef6ac666, }, r1a1: u384 { limb0: 0x788c4a6c2cc0d6d1431f8fe0, limb1: 0x6fbb017725bc437f59472864, limb2: 0x7af112586422e8b451fff86f, - limb3: 0x8f33c7c0369d6bf05923ec6 - } + limb3: 0x8f33c7c0369d6bf05923ec6, + }, }, G2Line { r0a0: u384 { limb0: 0xc8e72714e847363877b7a8f7, limb1: 0xe3e3fa798cae86df2a30d4aa, limb2: 0x7459f8d7d611e2cb2ec54a0e, - limb3: 0x152cd68e17604069ec445769 + limb3: 0x152cd68e17604069ec445769, }, r0a1: u384 { limb0: 0x8314b69d7f735267593148b, limb1: 0xee63002a2560cba68706d4d8, limb2: 0xfaa3112fa6d55883c688d4cb, - limb3: 0x14bb5f09c9b3530802a1e99f + limb3: 0x14bb5f09c9b3530802a1e99f, }, r1a0: u384 { limb0: 0x5f0624eb82fb7ea0161d7d4f, limb1: 0xd71eb5753a71df931abdea02, limb2: 0x7e9d29717cc3a362d2351d9a, - limb3: 0x10bb67b2ea7e11fa4f644370 + limb3: 0x10bb67b2ea7e11fa4f644370, }, r1a1: u384 { limb0: 0xca7b1c09d30828e75c7c7281, limb1: 0x5c8c1483d8402202dd0de198, limb2: 0x2228fda9f92014d9870c7f11, - limb3: 0x6e2f5953b1cc17a41a0cf1b - } + limb3: 0x6e2f5953b1cc17a41a0cf1b, + }, }, G2Line { r0a0: u384 { limb0: 0xc8e72714e847363877b7a8f7, limb1: 0xe3e3fa798cae86df2a30d4aa, limb2: 0x7459f8d7d611e2cb2ec54a0e, - limb3: 0x152cd68e17604069ec445769 + limb3: 0x152cd68e17604069ec445769, }, r0a1: u384 { limb0: 0x8314b69d7f735267593148b, limb1: 0xee63002a2560cba68706d4d8, limb2: 0xfaa3112fa6d55883c688d4cb, - limb3: 0x14bb5f09c9b3530802a1e99f + limb3: 0x14bb5f09c9b3530802a1e99f, }, r1a0: u384 { limb0: 0x5f0624eb82fb7ea0161d7d4f, limb1: 0xd71eb5753a71df931abdea02, limb2: 0x7e9d29717cc3a362d2351d9a, - limb3: 0x10bb67b2ea7e11fa4f644370 + limb3: 0x10bb67b2ea7e11fa4f644370, }, r1a1: u384 { limb0: 0xca7b1c09d30828e75c7c7281, limb1: 0x5c8c1483d8402202dd0de198, limb2: 0x2228fda9f92014d9870c7f11, - limb3: 0x6e2f5953b1cc17a41a0cf1b - } + limb3: 0x6e2f5953b1cc17a41a0cf1b, + }, }, G2Line { r0a0: u384 { limb0: 0xc9b70b573ab2dbee53352a96, limb1: 0xcc8c7eca86c99d50d3e90936, limb2: 0x7d70aa72c271b1f8c15ad43e, - limb3: 0xe499ea04ed9644c9f31ff2c + limb3: 0xe499ea04ed9644c9f31ff2c, }, r0a1: u384 { limb0: 0xa0f9073cb60f9d948336700a, limb1: 0xbcba195f8a338d4cfe326b7d, limb2: 0x830451f120569c1ba8a262fc, - limb3: 0x7d35ad7c0095f289f76c6bd + limb3: 0x7d35ad7c0095f289f76c6bd, }, r1a0: u384 { limb0: 0x6ef4a7e1adac7589cf5b1154, limb1: 0xaca7ecc39f53183948238de2, limb2: 0x7b65183abb9d2d0be2a6d539, - limb3: 0x63e7285b3dc806c2788d0e8 + limb3: 0x63e7285b3dc806c2788d0e8, }, r1a1: u384 { limb0: 0x263affe0370ee6f1853c2fb0, limb1: 0xc73621e485f5fef86ded3d9, limb2: 0x4a9c22bbb63a9b67c98dc2df, - limb3: 0x10a59819d699abac0f845268 - } + limb3: 0x10a59819d699abac0f845268, + }, }, G2Line { r0a0: u384 { limb0: 0x842113d6568cc4a0ff417952, limb1: 0xbf9bf6040bcf98685b071730, limb2: 0xc764bd69e11c73f3ecaf8d07, - limb3: 0xd587218a1496f9351f01e73 + limb3: 0xd587218a1496f9351f01e73, }, r0a1: u384 { limb0: 0xbc9127de7d6cf406424d7f15, limb1: 0x8168235c896874ad54d9512, limb2: 0xdcf79d8a1a168ae1c6dfa2e4, - limb3: 0xf95426d8e89954dee065f67 + limb3: 0xf95426d8e89954dee065f67, }, r1a0: u384 { limb0: 0x229ab89c13125cc2bf25a72d, limb1: 0xd5a7df3aaaa0c0353dcac5a7, limb2: 0x7c94527fabc77777ff2464ab, - limb3: 0x110918e757ed869ea437e672 + limb3: 0x110918e757ed869ea437e672, }, r1a1: u384 { limb0: 0xe982d22571f2f17aa68f712c, limb1: 0xa48a9b75c7c89bfab5f5d1eb, limb2: 0x1b89a01e72668b0a30e747fb, - limb3: 0xaa126ea871c3e3ca7d0b445 - } + limb3: 0xaa126ea871c3e3ca7d0b445, + }, }, G2Line { r0a0: u384 { limb0: 0xc9b70b573ab2dbee53352a96, limb1: 0xcc8c7eca86c99d50d3e90936, limb2: 0x7d70aa72c271b1f8c15ad43e, - limb3: 0xe499ea04ed9644c9f31ff2c + limb3: 0xe499ea04ed9644c9f31ff2c, }, r0a1: u384 { limb0: 0xa0f9073cb60f9d948336700a, limb1: 0xbcba195f8a338d4cfe326b7d, limb2: 0x830451f120569c1ba8a262fc, - limb3: 0x7d35ad7c0095f289f76c6bd + limb3: 0x7d35ad7c0095f289f76c6bd, }, r1a0: u384 { limb0: 0x6ef4a7e1adac7589cf5b1154, limb1: 0xaca7ecc39f53183948238de2, limb2: 0x7b65183abb9d2d0be2a6d539, - limb3: 0x63e7285b3dc806c2788d0e8 + limb3: 0x63e7285b3dc806c2788d0e8, }, r1a1: u384 { limb0: 0x263affe0370ee6f1853c2fb0, limb1: 0xc73621e485f5fef86ded3d9, limb2: 0x4a9c22bbb63a9b67c98dc2df, - limb3: 0x10a59819d699abac0f845268 - } + limb3: 0x10a59819d699abac0f845268, + }, }, G2Line { r0a0: u384 { limb0: 0x842113d6568cc4a0ff417952, limb1: 0xbf9bf6040bcf98685b071730, limb2: 0xc764bd69e11c73f3ecaf8d07, - limb3: 0xd587218a1496f9351f01e73 + limb3: 0xd587218a1496f9351f01e73, }, r0a1: u384 { limb0: 0xbc9127de7d6cf406424d7f15, limb1: 0x8168235c896874ad54d9512, limb2: 0xdcf79d8a1a168ae1c6dfa2e4, - limb3: 0xf95426d8e89954dee065f67 + limb3: 0xf95426d8e89954dee065f67, }, r1a0: u384 { limb0: 0x229ab89c13125cc2bf25a72d, limb1: 0xd5a7df3aaaa0c0353dcac5a7, limb2: 0x7c94527fabc77777ff2464ab, - limb3: 0x110918e757ed869ea437e672 + limb3: 0x110918e757ed869ea437e672, }, r1a1: u384 { limb0: 0xe982d22571f2f17aa68f712c, limb1: 0xa48a9b75c7c89bfab5f5d1eb, limb2: 0x1b89a01e72668b0a30e747fb, - limb3: 0xaa126ea871c3e3ca7d0b445 - } + limb3: 0xaa126ea871c3e3ca7d0b445, + }, }, G2Line { r0a0: u384 { limb0: 0x8856fcd611eaccb5398098b3, limb1: 0xf99e4037ab06eee76202c0a7, limb2: 0x661b47fbe6e707a1da016abb, - limb3: 0x14d41350bc68e30131fda152 + limb3: 0x14d41350bc68e30131fda152, }, r0a1: u384 { limb0: 0xa330e089de7e62d03d0d8381, limb1: 0xb89bc0fa83c738dbed74992b, limb2: 0x76e01692ebe0ab4a7bbc1cdf, - limb3: 0x119ff3df49b55e97212b9137 + limb3: 0x119ff3df49b55e97212b9137, }, r1a0: u384 { limb0: 0x17f35432949ee63be1b62fb4, limb1: 0x558e84d6438f3f13cb52798, limb2: 0x49ae9bb91dbd154524d0b491, - limb3: 0xa4ecb322f18755a2d7de6cb + limb3: 0xa4ecb322f18755a2d7de6cb, }, r1a1: u384 { limb0: 0x16493c6765e497627871029a, limb1: 0x31a7d00a47e2cdb224ef5050, limb2: 0x140290a6f2fa5cb13477f571, - limb3: 0x1846bb57be1afd1089f8faa2 - } + limb3: 0x1846bb57be1afd1089f8faa2, + }, }, G2Line { r0a0: u384 { limb0: 0x8856fcd611eaccb5398098b3, limb1: 0xf99e4037ab06eee76202c0a7, limb2: 0x661b47fbe6e707a1da016abb, - limb3: 0x14d41350bc68e30131fda152 + limb3: 0x14d41350bc68e30131fda152, }, r0a1: u384 { limb0: 0xa330e089de7e62d03d0d8381, limb1: 0xb89bc0fa83c738dbed74992b, limb2: 0x76e01692ebe0ab4a7bbc1cdf, - limb3: 0x119ff3df49b55e97212b9137 + limb3: 0x119ff3df49b55e97212b9137, }, r1a0: u384 { limb0: 0x17f35432949ee63be1b62fb4, limb1: 0x558e84d6438f3f13cb52798, limb2: 0x49ae9bb91dbd154524d0b491, - limb3: 0xa4ecb322f18755a2d7de6cb + limb3: 0xa4ecb322f18755a2d7de6cb, }, r1a1: u384 { limb0: 0x16493c6765e497627871029a, limb1: 0x31a7d00a47e2cdb224ef5050, limb2: 0x140290a6f2fa5cb13477f571, - limb3: 0x1846bb57be1afd1089f8faa2 - } + limb3: 0x1846bb57be1afd1089f8faa2, + }, }, G2Line { r0a0: u384 { limb0: 0xcab2483e7d8dd3fc04231f3e, limb1: 0x6e798d52173fbcf7011727cf, limb2: 0x3aa288e6664238899e96388, - limb3: 0xbed7f1cb0f29dbd779eb4db + limb3: 0xbed7f1cb0f29dbd779eb4db, }, r0a1: u384 { limb0: 0xda17dc08cb341a88d345029c, limb1: 0xca9a84bc1b03f8ae6f50eb29, limb2: 0xfab0923470c6c01cd53037f7, - limb3: 0x11b814eb656959f8bcd55260 + limb3: 0x11b814eb656959f8bcd55260, }, r1a0: u384 { limb0: 0x2f5c03f8edc8ef9851eca211, limb1: 0xb8f62bffa8430def4963177c, limb2: 0x285721fd3cb9239504693349, - limb3: 0x19697adae2f920497006cf60 + limb3: 0x19697adae2f920497006cf60, }, r1a1: u384 { limb0: 0x8ba36c1c6a84f64c58779c66, limb1: 0xd8d040c366aee8415c83abc5, limb2: 0x80bdb025a81cc5fca162bc55, - limb3: 0x132455e68b47f0c80c186c5e - } + limb3: 0x132455e68b47f0c80c186c5e, + }, }, G2Line { r0a0: u384 { limb0: 0xcab2483e7d8dd3fc04231f3e, limb1: 0x6e798d52173fbcf7011727cf, limb2: 0x3aa288e6664238899e96388, - limb3: 0xbed7f1cb0f29dbd779eb4db + limb3: 0xbed7f1cb0f29dbd779eb4db, }, r0a1: u384 { limb0: 0xda17dc08cb341a88d345029c, limb1: 0xca9a84bc1b03f8ae6f50eb29, limb2: 0xfab0923470c6c01cd53037f7, - limb3: 0x11b814eb656959f8bcd55260 + limb3: 0x11b814eb656959f8bcd55260, }, r1a0: u384 { limb0: 0x2f5c03f8edc8ef9851eca211, limb1: 0xb8f62bffa8430def4963177c, limb2: 0x285721fd3cb9239504693349, - limb3: 0x19697adae2f920497006cf60 + limb3: 0x19697adae2f920497006cf60, }, r1a1: u384 { limb0: 0x8ba36c1c6a84f64c58779c66, limb1: 0xd8d040c366aee8415c83abc5, limb2: 0x80bdb025a81cc5fca162bc55, - limb3: 0x132455e68b47f0c80c186c5e - } + limb3: 0x132455e68b47f0c80c186c5e, + }, }, G2Line { r0a0: u384 { limb0: 0xc339cdf7e4e5e3a44dbaacae, limb1: 0xf7b3d92dcf1e19226487efff, limb2: 0xeebbb6f12ddfff580bdaf23e, - limb3: 0x885c7a835866bb3f2618531 + limb3: 0x885c7a835866bb3f2618531, }, r0a1: u384 { limb0: 0xfd8a9b43a96749b067da9ea7, limb1: 0x1a45ef3bc3a624fa6a875a42, limb2: 0x871092b7aae86db98a4839e3, - limb3: 0x42fdd240a03c256c99338a4 + limb3: 0x42fdd240a03c256c99338a4, }, r1a0: u384 { limb0: 0x34fac230b4cd059f4d142d09, limb1: 0x578becad930850ec442c0499, limb2: 0xdb467db9f5beceb2b12f240b, - limb3: 0x8715bbc83d753dac30ee064 + limb3: 0x8715bbc83d753dac30ee064, }, r1a1: u384 { limb0: 0xbe4bacb87a4297599bed4a75, limb1: 0x15bab163a1bec103441823b0, limb2: 0xf6b498ea628259382f611e1, - limb3: 0x25cec6e6bc8e2b0ac8eaa18 - } + limb3: 0x25cec6e6bc8e2b0ac8eaa18, + }, }, G2Line { r0a0: u384 { limb0: 0xc339cdf7e4e5e3a44dbaacae, limb1: 0xf7b3d92dcf1e19226487efff, limb2: 0xeebbb6f12ddfff580bdaf23e, - limb3: 0x885c7a835866bb3f2618531 + limb3: 0x885c7a835866bb3f2618531, }, r0a1: u384 { limb0: 0xfd8a9b43a96749b067da9ea7, limb1: 0x1a45ef3bc3a624fa6a875a42, limb2: 0x871092b7aae86db98a4839e3, - limb3: 0x42fdd240a03c256c99338a4 + limb3: 0x42fdd240a03c256c99338a4, }, r1a0: u384 { limb0: 0x34fac230b4cd059f4d142d09, limb1: 0x578becad930850ec442c0499, limb2: 0xdb467db9f5beceb2b12f240b, - limb3: 0x8715bbc83d753dac30ee064 + limb3: 0x8715bbc83d753dac30ee064, }, r1a1: u384 { limb0: 0xbe4bacb87a4297599bed4a75, limb1: 0x15bab163a1bec103441823b0, limb2: 0xf6b498ea628259382f611e1, - limb3: 0x25cec6e6bc8e2b0ac8eaa18 - } + limb3: 0x25cec6e6bc8e2b0ac8eaa18, + }, }, G2Line { r0a0: u384 { limb0: 0x62ac6bd3e467b6012ed51077, limb1: 0xba3ff2d1e2f398b07962d460, limb2: 0x5f87a3069c6c9317d90fe448, - limb3: 0x17828eef82575ad624b7eb8 + limb3: 0x17828eef82575ad624b7eb8, }, r0a1: u384 { limb0: 0x60f822b2434ac1915436b6a2, limb1: 0xc280dfe322af22994c4f583a, limb2: 0x2eb22edf843a31f56924e264, - limb3: 0xaa3dff436448f24891ce347 + limb3: 0xaa3dff436448f24891ce347, }, r1a0: u384 { limb0: 0xc957369365d1f757dc7e1b60, limb1: 0xf8fe29b2dfecfb3445695b50, limb2: 0x93b4be33129e250ba6e9d713, - limb3: 0x54e2b0392e3280c73e25db7 + limb3: 0x54e2b0392e3280c73e25db7, }, r1a1: u384 { limb0: 0x147632c4b781c87049f2585a, limb1: 0xb96a476595a9eec08470167a, limb2: 0xa692b500ee1328d089d355c9, - limb3: 0xe3b9ccbcbf1842377715224 - } + limb3: 0xe3b9ccbcbf1842377715224, + }, }, G2Line { r0a0: u384 { limb0: 0x62ac6bd3e467b6012ed51077, limb1: 0xba3ff2d1e2f398b07962d460, limb2: 0x5f87a3069c6c9317d90fe448, - limb3: 0x17828eef82575ad624b7eb8 + limb3: 0x17828eef82575ad624b7eb8, }, r0a1: u384 { limb0: 0x60f822b2434ac1915436b6a2, limb1: 0xc280dfe322af22994c4f583a, limb2: 0x2eb22edf843a31f56924e264, - limb3: 0xaa3dff436448f24891ce347 + limb3: 0xaa3dff436448f24891ce347, }, r1a0: u384 { limb0: 0xc957369365d1f757dc7e1b60, limb1: 0xf8fe29b2dfecfb3445695b50, limb2: 0x93b4be33129e250ba6e9d713, - limb3: 0x54e2b0392e3280c73e25db7 + limb3: 0x54e2b0392e3280c73e25db7, }, r1a1: u384 { limb0: 0x147632c4b781c87049f2585a, limb1: 0xb96a476595a9eec08470167a, limb2: 0xa692b500ee1328d089d355c9, - limb3: 0xe3b9ccbcbf1842377715224 - } + limb3: 0xe3b9ccbcbf1842377715224, + }, }, G2Line { r0a0: u384 { limb0: 0x64d16d41b66a102c9b553ea3, limb1: 0x295cac58ddcb86c19d5085a6, limb2: 0x7e2cd8cb5856d2d8e7eed046, - limb3: 0x15dbe6d70fdbc55ae84afa69 + limb3: 0x15dbe6d70fdbc55ae84afa69, }, r0a1: u384 { limb0: 0x54565b8fd91f675d7f4459f2, limb1: 0x272f73f709855d58fb90690e, limb2: 0x55e2996b05c2d49f2a82120c, - limb3: 0xec904bbad282fc6edb48286 + limb3: 0xec904bbad282fc6edb48286, }, r1a0: u384 { limb0: 0xb8bb51ac0ae45391324c34ee, limb1: 0x1eed107f37cd128849f36954, limb2: 0xee5c6663ab2ffe95b57e90a0, - limb3: 0x10059eac9c018522626ea231 + limb3: 0x10059eac9c018522626ea231, }, r1a1: u384 { limb0: 0xe2ccd1c7748f1dad4aa6574, limb1: 0x3f7f644aea9f5ef5c21d6b1d, limb2: 0x78437a492823073bab9f2f24, - limb3: 0x154ca2c1025881bb42f419c9 - } + limb3: 0x154ca2c1025881bb42f419c9, + }, }, G2Line { r0a0: u384 { limb0: 0x64d16d41b66a102c9b553ea3, limb1: 0x295cac58ddcb86c19d5085a6, limb2: 0x7e2cd8cb5856d2d8e7eed046, - limb3: 0x15dbe6d70fdbc55ae84afa69 + limb3: 0x15dbe6d70fdbc55ae84afa69, }, r0a1: u384 { limb0: 0x54565b8fd91f675d7f4459f2, limb1: 0x272f73f709855d58fb90690e, limb2: 0x55e2996b05c2d49f2a82120c, - limb3: 0xec904bbad282fc6edb48286 + limb3: 0xec904bbad282fc6edb48286, }, r1a0: u384 { limb0: 0xb8bb51ac0ae45391324c34ee, limb1: 0x1eed107f37cd128849f36954, limb2: 0xee5c6663ab2ffe95b57e90a0, - limb3: 0x10059eac9c018522626ea231 + limb3: 0x10059eac9c018522626ea231, }, r1a1: u384 { limb0: 0xe2ccd1c7748f1dad4aa6574, limb1: 0x3f7f644aea9f5ef5c21d6b1d, limb2: 0x78437a492823073bab9f2f24, - limb3: 0x154ca2c1025881bb42f419c9 - } + limb3: 0x154ca2c1025881bb42f419c9, + }, }, G2Line { r0a0: u384 { limb0: 0xa148fed9dcfdb8471e37e2cf, limb1: 0x33498344be66beb21dacb6cc, limb2: 0xdb2dab4272dd7e03d560ec7c, - limb3: 0x11377cdcdb4dce503806d536 + limb3: 0x11377cdcdb4dce503806d536, }, r0a1: u384 { limb0: 0x4bdd4af2794e5ba563dea99d, limb1: 0xb686ccbe1211bc916075f1f0, limb2: 0x8275da72cc81642b581cd3c, - limb3: 0xdc4f2a881416ee0d2a76b19 + limb3: 0xdc4f2a881416ee0d2a76b19, }, r1a0: u384 { limb0: 0xd911cc786bf78185445a5728, limb1: 0xc4fc6828294ec360441828a0, limb2: 0x5710cbd08f34cb4b1d311efd, - limb3: 0x10911287680bf76d68b048fa + limb3: 0x10911287680bf76d68b048fa, }, r1a1: u384 { limb0: 0xa06d07ee3f35ed581feb7120, limb1: 0x7ec15bc93962ff96203e99ef, limb2: 0x6459955c3f1acf888a31b71c, - limb3: 0x163cfbb725456b1e3f8a2a52 - } + limb3: 0x163cfbb725456b1e3f8a2a52, + }, }, G2Line { r0a0: u384 { limb0: 0xa148fed9dcfdb8471e37e2cf, limb1: 0x33498344be66beb21dacb6cc, limb2: 0xdb2dab4272dd7e03d560ec7c, - limb3: 0x11377cdcdb4dce503806d536 + limb3: 0x11377cdcdb4dce503806d536, }, r0a1: u384 { limb0: 0x4bdd4af2794e5ba563dea99d, limb1: 0xb686ccbe1211bc916075f1f0, limb2: 0x8275da72cc81642b581cd3c, - limb3: 0xdc4f2a881416ee0d2a76b19 + limb3: 0xdc4f2a881416ee0d2a76b19, }, r1a0: u384 { limb0: 0xd911cc786bf78185445a5728, limb1: 0xc4fc6828294ec360441828a0, limb2: 0x5710cbd08f34cb4b1d311efd, - limb3: 0x10911287680bf76d68b048fa + limb3: 0x10911287680bf76d68b048fa, }, r1a1: u384 { limb0: 0xa06d07ee3f35ed581feb7120, limb1: 0x7ec15bc93962ff96203e99ef, limb2: 0x6459955c3f1acf888a31b71c, - limb3: 0x163cfbb725456b1e3f8a2a52 - } + limb3: 0x163cfbb725456b1e3f8a2a52, + }, }, G2Line { r0a0: u384 { limb0: 0xe681d22feda4a7f061e8f6b3, limb1: 0xad9da9a0f9e44384ff71b25a, limb2: 0x25b7987299c14b92935df59b, - limb3: 0xe18539ac218e8292f772d49 + limb3: 0xe18539ac218e8292f772d49, }, r0a1: u384 { limb0: 0xbbab4a0c7d4380e59aaf4a14, limb1: 0x92300d61ef168a3b7f078369, limb2: 0x88740486a05e8355a2f396a6, - limb3: 0x1312ea288e7ab2c682515d55 + limb3: 0x1312ea288e7ab2c682515d55, }, r1a0: u384 { limb0: 0x5cf20f4d699d245a06e981a4, limb1: 0x4ada2dc6c16584036497194a, limb2: 0x69d2a6a56d565893c5dc5cee, - limb3: 0xe83ade7bf2df02d06d669f9 + limb3: 0xe83ade7bf2df02d06d669f9, }, r1a1: u384 { limb0: 0xdde1fccec9bcee2c65bb7113, limb1: 0xbd3a4889309b7b362a350027, limb2: 0xab1aabdde55d523dd61bd16a, - limb3: 0x8e64666e47f311366b84b22 - } + limb3: 0x8e64666e47f311366b84b22, + }, }, G2Line { r0a0: u384 { limb0: 0xe681d22feda4a7f061e8f6b3, limb1: 0xad9da9a0f9e44384ff71b25a, limb2: 0x25b7987299c14b92935df59b, - limb3: 0xe18539ac218e8292f772d49 + limb3: 0xe18539ac218e8292f772d49, }, r0a1: u384 { limb0: 0xbbab4a0c7d4380e59aaf4a14, limb1: 0x92300d61ef168a3b7f078369, limb2: 0x88740486a05e8355a2f396a6, - limb3: 0x1312ea288e7ab2c682515d55 + limb3: 0x1312ea288e7ab2c682515d55, }, r1a0: u384 { limb0: 0x5cf20f4d699d245a06e981a4, limb1: 0x4ada2dc6c16584036497194a, limb2: 0x69d2a6a56d565893c5dc5cee, - limb3: 0xe83ade7bf2df02d06d669f9 + limb3: 0xe83ade7bf2df02d06d669f9, }, r1a1: u384 { limb0: 0xdde1fccec9bcee2c65bb7113, limb1: 0xbd3a4889309b7b362a350027, limb2: 0xab1aabdde55d523dd61bd16a, - limb3: 0x8e64666e47f311366b84b22 - } + limb3: 0x8e64666e47f311366b84b22, + }, }, G2Line { r0a0: u384 { limb0: 0xf9b090fdb3bf0f5be038a031, limb1: 0xec03d47d7f362f2f46b88120, limb2: 0xcf4ea7dfdbf684e0c9c3c73, - limb3: 0x11dd63055f71654adf72fdf4 + limb3: 0x11dd63055f71654adf72fdf4, }, r0a1: u384 { limb0: 0x9eb8ba348aa55966b2360dbb, limb1: 0x48dd21f65324b91c93beb3f, limb2: 0x79f6c38f8f7656836cb1317d, - limb3: 0x108bdc14fca7e6d3304b3f3b + limb3: 0x108bdc14fca7e6d3304b3f3b, }, r1a0: u384 { limb0: 0xbf74876b9993b6ea79d756e1, limb1: 0xd5e5d391946b6572594a23d1, limb2: 0xf16cf2d26319a001b024184f, - limb3: 0xe47f5f42a8c539bf4c4aabc + limb3: 0xe47f5f42a8c539bf4c4aabc, }, r1a1: u384 { limb0: 0xd16c2d990821fee62aea0c7, limb1: 0x9fcd17773a83125f41a6e06e, limb2: 0x97ed32a632508ccadf843b41, - limb3: 0xb98f51a6d9ef1cf288747c5 - } + limb3: 0xb98f51a6d9ef1cf288747c5, + }, }, G2Line { r0a0: u384 { limb0: 0xf9b090fdb3bf0f5be038a031, limb1: 0xec03d47d7f362f2f46b88120, limb2: 0xcf4ea7dfdbf684e0c9c3c73, - limb3: 0x11dd63055f71654adf72fdf4 + limb3: 0x11dd63055f71654adf72fdf4, }, r0a1: u384 { limb0: 0x9eb8ba348aa55966b2360dbb, limb1: 0x48dd21f65324b91c93beb3f, limb2: 0x79f6c38f8f7656836cb1317d, - limb3: 0x108bdc14fca7e6d3304b3f3b + limb3: 0x108bdc14fca7e6d3304b3f3b, }, r1a0: u384 { limb0: 0xbf74876b9993b6ea79d756e1, limb1: 0xd5e5d391946b6572594a23d1, limb2: 0xf16cf2d26319a001b024184f, - limb3: 0xe47f5f42a8c539bf4c4aabc + limb3: 0xe47f5f42a8c539bf4c4aabc, }, r1a1: u384 { limb0: 0xd16c2d990821fee62aea0c7, limb1: 0x9fcd17773a83125f41a6e06e, limb2: 0x97ed32a632508ccadf843b41, - limb3: 0xb98f51a6d9ef1cf288747c5 - } + limb3: 0xb98f51a6d9ef1cf288747c5, + }, }, G2Line { r0a0: u384 { limb0: 0xc04588c9f09fa499106bc8c9, limb1: 0x7a64ff03080c6dd7d7e9eac2, limb2: 0xf4f302730238d347b951a1f3, - limb3: 0xbc95c23d2aa850d9637039c + limb3: 0xbc95c23d2aa850d9637039c, }, r0a1: u384 { limb0: 0x982410511881122d237bcf90, limb1: 0x69908a3359202333b8494da3, limb2: 0xd8845b29dfc85657a12e1e6b, - limb3: 0x861225fbc10126c68b47fbb + limb3: 0x861225fbc10126c68b47fbb, }, r1a0: u384 { limb0: 0x307f66feb496a692288ee79c, limb1: 0xea2a865ce7b1a83eb71f516e, limb2: 0x3acfdeb605537b1db464d091, - limb3: 0x199bcae152e692669ca36f70 + limb3: 0x199bcae152e692669ca36f70, }, r1a1: u384 { limb0: 0x67ed8bd9d8b3671bc52dd01a, limb1: 0xa128cb4f4b3fb9f78826fa5c, limb2: 0xdc60b2aeb8989c43359f9ee4, - limb3: 0x154183d7ad332d63192fd716 - } + limb3: 0x154183d7ad332d63192fd716, + }, }, G2Line { r0a0: u384 { limb0: 0x4c1b7c692bcb90fc6da4682a, limb1: 0xdee0840ffe02e6822d2fbc52, limb2: 0x76f9d61c6685c1019409e2e6, - limb3: 0x131589c0f041ca383a010a65 + limb3: 0x131589c0f041ca383a010a65, }, r0a1: u384 { limb0: 0x5f44efbb5a56642b645b251d, limb1: 0xcc0b6a435e33cf7e66f796ef, limb2: 0x2afead4ba783ddd084a2de2, - limb3: 0x14fb18cfb114fe90def3b975 + limb3: 0x14fb18cfb114fe90def3b975, }, r1a0: u384 { limb0: 0x6738569610d2c81b6648b199, limb1: 0x3d70fbe299588075a3c0cd65, limb2: 0x9fb99753b8fe3603ef293640, - limb3: 0xb0c1cb2bfa9049055dc042a + limb3: 0xb0c1cb2bfa9049055dc042a, }, r1a1: u384 { limb0: 0xcf4196c9021ca7f093cfb891, limb1: 0xdc602f37532b7f244f265bb4, limb2: 0x2eda24acdd8ac91dba31011a, - limb3: 0x831f465b19f5e211770a330 - } + limb3: 0x831f465b19f5e211770a330, + }, }, G2Line { r0a0: u384 { limb0: 0xc04588c9f09fa499106bc8c9, limb1: 0x7a64ff03080c6dd7d7e9eac2, limb2: 0xf4f302730238d347b951a1f3, - limb3: 0xbc95c23d2aa850d9637039c + limb3: 0xbc95c23d2aa850d9637039c, }, r0a1: u384 { limb0: 0x982410511881122d237bcf90, limb1: 0x69908a3359202333b8494da3, limb2: 0xd8845b29dfc85657a12e1e6b, - limb3: 0x861225fbc10126c68b47fbb + limb3: 0x861225fbc10126c68b47fbb, }, r1a0: u384 { limb0: 0x307f66feb496a692288ee79c, limb1: 0xea2a865ce7b1a83eb71f516e, limb2: 0x3acfdeb605537b1db464d091, - limb3: 0x199bcae152e692669ca36f70 + limb3: 0x199bcae152e692669ca36f70, }, r1a1: u384 { limb0: 0x67ed8bd9d8b3671bc52dd01a, limb1: 0xa128cb4f4b3fb9f78826fa5c, limb2: 0xdc60b2aeb8989c43359f9ee4, - limb3: 0x154183d7ad332d63192fd716 - } + limb3: 0x154183d7ad332d63192fd716, + }, }, G2Line { r0a0: u384 { limb0: 0x4c1b7c692bcb90fc6da4682a, limb1: 0xdee0840ffe02e6822d2fbc52, limb2: 0x76f9d61c6685c1019409e2e6, - limb3: 0x131589c0f041ca383a010a65 + limb3: 0x131589c0f041ca383a010a65, }, r0a1: u384 { limb0: 0x5f44efbb5a56642b645b251d, limb1: 0xcc0b6a435e33cf7e66f796ef, limb2: 0x2afead4ba783ddd084a2de2, - limb3: 0x14fb18cfb114fe90def3b975 + limb3: 0x14fb18cfb114fe90def3b975, }, r1a0: u384 { limb0: 0x6738569610d2c81b6648b199, limb1: 0x3d70fbe299588075a3c0cd65, limb2: 0x9fb99753b8fe3603ef293640, - limb3: 0xb0c1cb2bfa9049055dc042a + limb3: 0xb0c1cb2bfa9049055dc042a, }, r1a1: u384 { limb0: 0xcf4196c9021ca7f093cfb891, limb1: 0xdc602f37532b7f244f265bb4, limb2: 0x2eda24acdd8ac91dba31011a, - limb3: 0x831f465b19f5e211770a330 - } + limb3: 0x831f465b19f5e211770a330, + }, }, G2Line { r0a0: u384 { limb0: 0xbead4997832000eec2d23426, limb1: 0x70326bda198a624d79fe5b6e, limb2: 0x34320ab5d9d57a16f9b3335d, - limb3: 0x15ed7fcb0bbd153b17bd9ab7 + limb3: 0x15ed7fcb0bbd153b17bd9ab7, }, r0a1: u384 { limb0: 0xeef082656c66bb5b7891e0fa, limb1: 0x5c3a8513f52f57cb1b0c7958, limb2: 0xcd1545fd6d3fca90cca7ddbf, - limb3: 0x14a5d26055e3895cc2078189 + limb3: 0x14a5d26055e3895cc2078189, }, r1a0: u384 { limb0: 0x51fd450f49e14cf29994d0d8, limb1: 0x352df17adf32a543695add5b, limb2: 0x620770f7a8734b83419a0015, - limb3: 0x3bed8150b4306f815c54ae0 + limb3: 0x3bed8150b4306f815c54ae0, }, r1a1: u384 { limb0: 0xdcda7311d4becff3df733d35, limb1: 0x6d1b5d403a8a86fa9c0ad26b, limb2: 0x41249656cda2d1314833048c, - limb3: 0x18fa645f04346cb55df845ec - } + limb3: 0x18fa645f04346cb55df845ec, + }, }, G2Line { r0a0: u384 { limb0: 0xbead4997832000eec2d23426, limb1: 0x70326bda198a624d79fe5b6e, limb2: 0x34320ab5d9d57a16f9b3335d, - limb3: 0x15ed7fcb0bbd153b17bd9ab7 + limb3: 0x15ed7fcb0bbd153b17bd9ab7, }, r0a1: u384 { limb0: 0xeef082656c66bb5b7891e0fa, limb1: 0x5c3a8513f52f57cb1b0c7958, limb2: 0xcd1545fd6d3fca90cca7ddbf, - limb3: 0x14a5d26055e3895cc2078189 + limb3: 0x14a5d26055e3895cc2078189, }, r1a0: u384 { limb0: 0x51fd450f49e14cf29994d0d8, limb1: 0x352df17adf32a543695add5b, limb2: 0x620770f7a8734b83419a0015, - limb3: 0x3bed8150b4306f815c54ae0 + limb3: 0x3bed8150b4306f815c54ae0, }, r1a1: u384 { limb0: 0xdcda7311d4becff3df733d35, limb1: 0x6d1b5d403a8a86fa9c0ad26b, limb2: 0x41249656cda2d1314833048c, - limb3: 0x18fa645f04346cb55df845ec - } + limb3: 0x18fa645f04346cb55df845ec, + }, }, G2Line { r0a0: u384 { limb0: 0xd9186b9c733a20289999898e, limb1: 0x6de39966328adffa7073a300, limb2: 0xf15f1d47e489cb0211ae9365, - limb3: 0x130c5531b0d8c306969ed394 + limb3: 0x130c5531b0d8c306969ed394, }, r0a1: u384 { limb0: 0xdb40370c9fc08d2498113f0e, limb1: 0x52a13a99df87505995085459, limb2: 0xef9d808d7ee6f27a05e1b801, - limb3: 0x50452f33ca7e399a6020469 + limb3: 0x50452f33ca7e399a6020469, }, r1a0: u384 { limb0: 0x36def0c15c3f8e182c9ea44d, limb1: 0x326195297234c6d7a93109a7, limb2: 0x87a1563a69011deff0488ae7, - limb3: 0x132a2fc3be8766a1177e52aa + limb3: 0x132a2fc3be8766a1177e52aa, }, r1a1: u384 { limb0: 0x62378fa1506521802106b7e5, limb1: 0xd8cc0cff92a519c933c28a36, limb2: 0xa1102e8ae53eaf25f786453b, - limb3: 0x9a64df029f7f27d39d0dc0e - } + limb3: 0x9a64df029f7f27d39d0dc0e, + }, }, G2Line { r0a0: u384 { limb0: 0xd9186b9c733a20289999898e, limb1: 0x6de39966328adffa7073a300, limb2: 0xf15f1d47e489cb0211ae9365, - limb3: 0x130c5531b0d8c306969ed394 + limb3: 0x130c5531b0d8c306969ed394, }, r0a1: u384 { limb0: 0xdb40370c9fc08d2498113f0e, limb1: 0x52a13a99df87505995085459, limb2: 0xef9d808d7ee6f27a05e1b801, - limb3: 0x50452f33ca7e399a6020469 + limb3: 0x50452f33ca7e399a6020469, }, r1a0: u384 { limb0: 0x36def0c15c3f8e182c9ea44d, limb1: 0x326195297234c6d7a93109a7, limb2: 0x87a1563a69011deff0488ae7, - limb3: 0x132a2fc3be8766a1177e52aa + limb3: 0x132a2fc3be8766a1177e52aa, }, r1a1: u384 { limb0: 0x62378fa1506521802106b7e5, limb1: 0xd8cc0cff92a519c933c28a36, limb2: 0xa1102e8ae53eaf25f786453b, - limb3: 0x9a64df029f7f27d39d0dc0e - } + limb3: 0x9a64df029f7f27d39d0dc0e, + }, }, G2Line { r0a0: u384 { limb0: 0x25ea37848e0ac8549a3cfea4, limb1: 0x4769da5b3fdb93516843dcc4, limb2: 0x25c2fee69d51e108950ee66c, - limb3: 0xcbe02237fb28faee0f0f322 + limb3: 0xcbe02237fb28faee0f0f322, }, r0a1: u384 { limb0: 0xeb04a575e069162f1fbffeac, limb1: 0x70a494b054c8efcb93da1757, limb2: 0x47f9c06eaaca8c969afabd71, - limb3: 0x161220a792413bbe47629580 + limb3: 0x161220a792413bbe47629580, }, r1a0: u384 { limb0: 0xdcd325a8ba5cef5390f5d151, limb1: 0xcdc42d134b74aa1a5062ce50, limb2: 0x60be437e1aa4a9878448da68, - limb3: 0x3afadaca8a96f634f1a416c + limb3: 0x3afadaca8a96f634f1a416c, }, r1a1: u384 { limb0: 0x2a305361b67f6592fa2a5b23, limb1: 0x60950369afb1c2180ac6372, limb2: 0x18abd84df73559c2ec121d5d, - limb3: 0x30f5ef160b1fd967f8015ab - } + limb3: 0x30f5ef160b1fd967f8015ab, + }, }, G2Line { r0a0: u384 { limb0: 0x25ea37848e0ac8549a3cfea4, limb1: 0x4769da5b3fdb93516843dcc4, limb2: 0x25c2fee69d51e108950ee66c, - limb3: 0xcbe02237fb28faee0f0f322 + limb3: 0xcbe02237fb28faee0f0f322, }, r0a1: u384 { limb0: 0xeb04a575e069162f1fbffeac, limb1: 0x70a494b054c8efcb93da1757, limb2: 0x47f9c06eaaca8c969afabd71, - limb3: 0x161220a792413bbe47629580 + limb3: 0x161220a792413bbe47629580, }, r1a0: u384 { limb0: 0xdcd325a8ba5cef5390f5d151, limb1: 0xcdc42d134b74aa1a5062ce50, limb2: 0x60be437e1aa4a9878448da68, - limb3: 0x3afadaca8a96f634f1a416c + limb3: 0x3afadaca8a96f634f1a416c, }, r1a1: u384 { limb0: 0x2a305361b67f6592fa2a5b23, limb1: 0x60950369afb1c2180ac6372, limb2: 0x18abd84df73559c2ec121d5d, - limb3: 0x30f5ef160b1fd967f8015ab - } + limb3: 0x30f5ef160b1fd967f8015ab, + }, }, G2Line { r0a0: u384 { limb0: 0x57e9ad17c997b15ffbad6d82, limb1: 0xb58a8d3786323d96d83553ef, limb2: 0x7ebd9eee07a5e594ba52aa95, - limb3: 0x111e440bd97eda09284f64eb + limb3: 0x111e440bd97eda09284f64eb, }, r0a1: u384 { limb0: 0xd3b88ae51c3481402eba34a1, limb1: 0x2d45a1eeba9f7b3b15c0f834, limb2: 0xf01e42935934d35517d5917f, - limb3: 0x17873198e39dea6b3fe5129f + limb3: 0x17873198e39dea6b3fe5129f, }, r1a0: u384 { limb0: 0x2f6c420e2c5b378a9412c0d0, limb1: 0x955d38483a2f278270b22268, limb2: 0x51a730b71b201f7aae89b10b, - limb3: 0x1085c28c787add8dcd06245a + limb3: 0x1085c28c787add8dcd06245a, }, r1a1: u384 { limb0: 0x6e0644b1126aa50e5b4773e6, limb1: 0xdcbb3ddbc7340820e35af7a2, limb2: 0x92c56f71378f46d9681bc464, - limb3: 0x14e782a8eeff9d9dd580cc4 - } + limb3: 0x14e782a8eeff9d9dd580cc4, + }, }, G2Line { r0a0: u384 { limb0: 0x57e9ad17c997b15ffbad6d82, limb1: 0xb58a8d3786323d96d83553ef, limb2: 0x7ebd9eee07a5e594ba52aa95, - limb3: 0x111e440bd97eda09284f64eb + limb3: 0x111e440bd97eda09284f64eb, }, r0a1: u384 { limb0: 0xd3b88ae51c3481402eba34a1, limb1: 0x2d45a1eeba9f7b3b15c0f834, limb2: 0xf01e42935934d35517d5917f, - limb3: 0x17873198e39dea6b3fe5129f + limb3: 0x17873198e39dea6b3fe5129f, }, r1a0: u384 { limb0: 0x2f6c420e2c5b378a9412c0d0, limb1: 0x955d38483a2f278270b22268, limb2: 0x51a730b71b201f7aae89b10b, - limb3: 0x1085c28c787add8dcd06245a + limb3: 0x1085c28c787add8dcd06245a, }, r1a1: u384 { limb0: 0x6e0644b1126aa50e5b4773e6, limb1: 0xdcbb3ddbc7340820e35af7a2, limb2: 0x92c56f71378f46d9681bc464, - limb3: 0x14e782a8eeff9d9dd580cc4 - } + limb3: 0x14e782a8eeff9d9dd580cc4, + }, }, G2Line { r0a0: u384 { limb0: 0xa17319d2ed4a91226b6d3089, limb1: 0x1d8f224ab570fde86c7f2048, limb2: 0xd622960850d94ec99de711af, - limb3: 0x124395d2fa862d11c431fefa + limb3: 0x124395d2fa862d11c431fefa, }, r0a1: u384 { limb0: 0x6ddb45f997e48b97942d9c3f, limb1: 0x3d8b7f429593a772eb589e3a, limb2: 0xbd411a9a2e3bafe120332263, - limb3: 0x4ae24dd579f310ebebb670a + limb3: 0x4ae24dd579f310ebebb670a, }, r1a0: u384 { limb0: 0x700c5258e540544c8801a1d2, limb1: 0x40032ac207f46794aacd4702, limb2: 0x664658ab49940041c676ae29, - limb3: 0xbba2393a3187f3acdec0862 + limb3: 0xbba2393a3187f3acdec0862, }, r1a1: u384 { limb0: 0x1fb806ee192d153b8c48f37f, limb1: 0xd8d017e6d2d0a8aade0c5570, limb2: 0x8e857d4ca13adcefbf7a644c, - limb3: 0x5eeb6818a540c068177383c - } + limb3: 0x5eeb6818a540c068177383c, + }, }, G2Line { r0a0: u384 { limb0: 0xa17319d2ed4a91226b6d3089, limb1: 0x1d8f224ab570fde86c7f2048, limb2: 0xd622960850d94ec99de711af, - limb3: 0x124395d2fa862d11c431fefa + limb3: 0x124395d2fa862d11c431fefa, }, r0a1: u384 { limb0: 0x6ddb45f997e48b97942d9c3f, limb1: 0x3d8b7f429593a772eb589e3a, limb2: 0xbd411a9a2e3bafe120332263, - limb3: 0x4ae24dd579f310ebebb670a + limb3: 0x4ae24dd579f310ebebb670a, }, r1a0: u384 { limb0: 0x700c5258e540544c8801a1d2, limb1: 0x40032ac207f46794aacd4702, limb2: 0x664658ab49940041c676ae29, - limb3: 0xbba2393a3187f3acdec0862 + limb3: 0xbba2393a3187f3acdec0862, }, r1a1: u384 { limb0: 0x1fb806ee192d153b8c48f37f, limb1: 0xd8d017e6d2d0a8aade0c5570, limb2: 0x8e857d4ca13adcefbf7a644c, - limb3: 0x5eeb6818a540c068177383c - } + limb3: 0x5eeb6818a540c068177383c, + }, }, G2Line { r0a0: u384 { limb0: 0x7ad0e4fa558ef8b11384085e, limb1: 0x4329afaeac994168fe5e0cd7, limb2: 0xb34e8702ef6b72f9a6008fa, - limb3: 0x99d918594ec79185a3f5298 + limb3: 0x99d918594ec79185a3f5298, }, r0a1: u384 { limb0: 0xbf74c3bbc5fa4f115e66c539, limb1: 0x7da649aab4c450a071647d9d, limb2: 0x3de1249ed9c917ba907ae87e, - limb3: 0x17fb63a54ba4b99d958c47f5 + limb3: 0x17fb63a54ba4b99d958c47f5, }, r1a0: u384 { limb0: 0x29a111bd2ddf9b91308af11b, limb1: 0xc6f5fc9404a96ca03bae4905, limb2: 0x4cf974b0c052477bbda2b847, - limb3: 0x1825483020fd8780c86b1015 + limb3: 0x1825483020fd8780c86b1015, }, r1a1: u384 { limb0: 0xbc7ecc69f7efad3e70b125e4, limb1: 0x91fecbb081beb006bf85d061, limb2: 0xc0eb86316968cc75b5960f2b, - limb3: 0xe38ff44ac8be45215c49ab0 - } + limb3: 0xe38ff44ac8be45215c49ab0, + }, }, G2Line { r0a0: u384 { limb0: 0x7ad0e4fa558ef8b11384085e, limb1: 0x4329afaeac994168fe5e0cd7, limb2: 0xb34e8702ef6b72f9a6008fa, - limb3: 0x99d918594ec79185a3f5298 + limb3: 0x99d918594ec79185a3f5298, }, r0a1: u384 { limb0: 0xbf74c3bbc5fa4f115e66c539, limb1: 0x7da649aab4c450a071647d9d, limb2: 0x3de1249ed9c917ba907ae87e, - limb3: 0x17fb63a54ba4b99d958c47f5 + limb3: 0x17fb63a54ba4b99d958c47f5, }, r1a0: u384 { limb0: 0x29a111bd2ddf9b91308af11b, limb1: 0xc6f5fc9404a96ca03bae4905, limb2: 0x4cf974b0c052477bbda2b847, - limb3: 0x1825483020fd8780c86b1015 + limb3: 0x1825483020fd8780c86b1015, }, r1a1: u384 { limb0: 0xbc7ecc69f7efad3e70b125e4, limb1: 0x91fecbb081beb006bf85d061, limb2: 0xc0eb86316968cc75b5960f2b, - limb3: 0xe38ff44ac8be45215c49ab0 - } + limb3: 0xe38ff44ac8be45215c49ab0, + }, }, G2Line { r0a0: u384 { limb0: 0xceb6d3ab08b373dc22ba995f, limb1: 0x43d108be275c4c77ddb43e08, limb2: 0xe516383196fb48b7d3febb1d, - limb3: 0xe4c3290d4c9ba0a816475d3 + limb3: 0xe4c3290d4c9ba0a816475d3, }, r0a1: u384 { limb0: 0xd1fc69b97fb0e00d2934ae95, limb1: 0xfc2f8a30bfd324e8dba3d887, limb2: 0x160584b561794cc64271dc15, - limb3: 0x1009e338dbc724df50993a65 + limb3: 0x1009e338dbc724df50993a65, }, r1a0: u384 { limb0: 0x475f046f42faf48c326b4bf1, limb1: 0xb713074989c0643fceb94c0f, limb2: 0xe26638cb83c9c26a954a45d9, - limb3: 0x1754c6aae904e4e80cd79f52 + limb3: 0x1754c6aae904e4e80cd79f52, }, r1a1: u384 { limb0: 0xd7db51e3579f8a30ee0b70aa, limb1: 0x25e0748f0cfe2d0aa5c0c8a0, limb2: 0x6d0c3361c1683f7dc395ddf0, - limb3: 0x1348bfc584e6abb75e34a3a6 - } + limb3: 0x1348bfc584e6abb75e34a3a6, + }, }, G2Line { r0a0: u384 { limb0: 0xceb6d3ab08b373dc22ba995f, limb1: 0x43d108be275c4c77ddb43e08, limb2: 0xe516383196fb48b7d3febb1d, - limb3: 0xe4c3290d4c9ba0a816475d3 + limb3: 0xe4c3290d4c9ba0a816475d3, }, r0a1: u384 { limb0: 0xd1fc69b97fb0e00d2934ae95, limb1: 0xfc2f8a30bfd324e8dba3d887, limb2: 0x160584b561794cc64271dc15, - limb3: 0x1009e338dbc724df50993a65 + limb3: 0x1009e338dbc724df50993a65, }, r1a0: u384 { limb0: 0x475f046f42faf48c326b4bf1, limb1: 0xb713074989c0643fceb94c0f, limb2: 0xe26638cb83c9c26a954a45d9, - limb3: 0x1754c6aae904e4e80cd79f52 + limb3: 0x1754c6aae904e4e80cd79f52, }, r1a1: u384 { limb0: 0xd7db51e3579f8a30ee0b70aa, limb1: 0x25e0748f0cfe2d0aa5c0c8a0, limb2: 0x6d0c3361c1683f7dc395ddf0, - limb3: 0x1348bfc584e6abb75e34a3a6 - } + limb3: 0x1348bfc584e6abb75e34a3a6, + }, }, G2Line { r0a0: u384 { limb0: 0xb50d817096bd5c150cd6a82b, limb1: 0x6bcc034040210fda6c8b4cff, limb2: 0x9be137b6cb13d4ebe5a30e0e, - limb3: 0x84b37e667ea19363ed3ffd0 + limb3: 0x84b37e667ea19363ed3ffd0, }, r0a1: u384 { limb0: 0x11c9654f31306495f8e6bc94, limb1: 0xba6a2171d247ebe2b0f7f696, limb2: 0xa6d4bf1963b95bcfb7c93d93, - limb3: 0x15ac996599cf39209a84ea5a + limb3: 0x15ac996599cf39209a84ea5a, }, r1a0: u384 { limb0: 0x8d27e960a12b8ec9372cca66, limb1: 0xaaba63010526c24d3c2840b7, limb2: 0xaa25dc5b42e3ed60c93463ce, - limb3: 0x7fe44d4a1e4791800b1e0fa + limb3: 0x7fe44d4a1e4791800b1e0fa, }, r1a1: u384 { limb0: 0xfc3e99620792c110703978d5, limb1: 0xf4db1062eef1c755a07fbde6, limb2: 0xf570179ead4983a489316019, - limb3: 0x46aaa91f573494bb66d079 - } + limb3: 0x46aaa91f573494bb66d079, + }, }, G2Line { r0a0: u384 { limb0: 0xb50d817096bd5c150cd6a82b, limb1: 0x6bcc034040210fda6c8b4cff, limb2: 0x9be137b6cb13d4ebe5a30e0e, - limb3: 0x84b37e667ea19363ed3ffd0 + limb3: 0x84b37e667ea19363ed3ffd0, }, r0a1: u384 { limb0: 0x11c9654f31306495f8e6bc94, limb1: 0xba6a2171d247ebe2b0f7f696, limb2: 0xa6d4bf1963b95bcfb7c93d93, - limb3: 0x15ac996599cf39209a84ea5a + limb3: 0x15ac996599cf39209a84ea5a, }, r1a0: u384 { limb0: 0x8d27e960a12b8ec9372cca66, limb1: 0xaaba63010526c24d3c2840b7, limb2: 0xaa25dc5b42e3ed60c93463ce, - limb3: 0x7fe44d4a1e4791800b1e0fa + limb3: 0x7fe44d4a1e4791800b1e0fa, }, r1a1: u384 { limb0: 0xfc3e99620792c110703978d5, limb1: 0xf4db1062eef1c755a07fbde6, limb2: 0xf570179ead4983a489316019, - limb3: 0x46aaa91f573494bb66d079 - } + limb3: 0x46aaa91f573494bb66d079, + }, }, G2Line { r0a0: u384 { limb0: 0xe9f685c65bd9792c8adee32, limb1: 0xecc42b0c513df20e80dfcb0c, limb2: 0xf97767f63bec29912643b18c, - limb3: 0x658e5d9dd13b65d9d50e485 + limb3: 0x658e5d9dd13b65d9d50e485, }, r0a1: u384 { limb0: 0xd80080e976138f1d433aee10, limb1: 0xd60db98a0a46712bf28de887, limb2: 0x9ec4a90a9b07bdfb9a8f9cac, - limb3: 0x1269ede044c4c6361453dbd4 + limb3: 0x1269ede044c4c6361453dbd4, }, r1a0: u384 { limb0: 0x33266d196827c62d12d911f5, limb1: 0x3273f6ca8f6ac372356ac475, limb2: 0x3dbd80e6d1898f8e7cefbbd8, - limb3: 0x17b88f8e9c438e00a591eb3 + limb3: 0x17b88f8e9c438e00a591eb3, }, r1a1: u384 { limb0: 0x6bf73b94433c19c358c705da, limb1: 0xa52a6f1848089194d82c9450, limb2: 0x41a0fcd2736929e504cab889, - limb3: 0xe660555872f31d5085b6c20 - } + limb3: 0xe660555872f31d5085b6c20, + }, }, G2Line { r0a0: u384 { limb0: 0xe9f685c65bd9792c8adee32, limb1: 0xecc42b0c513df20e80dfcb0c, limb2: 0xf97767f63bec29912643b18c, - limb3: 0x658e5d9dd13b65d9d50e485 + limb3: 0x658e5d9dd13b65d9d50e485, }, r0a1: u384 { limb0: 0xd80080e976138f1d433aee10, limb1: 0xd60db98a0a46712bf28de887, limb2: 0x9ec4a90a9b07bdfb9a8f9cac, - limb3: 0x1269ede044c4c6361453dbd4 + limb3: 0x1269ede044c4c6361453dbd4, }, r1a0: u384 { limb0: 0x33266d196827c62d12d911f5, limb1: 0x3273f6ca8f6ac372356ac475, limb2: 0x3dbd80e6d1898f8e7cefbbd8, - limb3: 0x17b88f8e9c438e00a591eb3 + limb3: 0x17b88f8e9c438e00a591eb3, }, r1a1: u384 { limb0: 0x6bf73b94433c19c358c705da, limb1: 0xa52a6f1848089194d82c9450, limb2: 0x41a0fcd2736929e504cab889, - limb3: 0xe660555872f31d5085b6c20 - } + limb3: 0xe660555872f31d5085b6c20, + }, }, G2Line { r0a0: u384 { limb0: 0xade8d05561fb99ceb1b398dc, limb1: 0x9e365afb0af81213414cfaf7, limb2: 0x7f77a69390559e530043141a, - limb3: 0xc209c5c88e6c6f2b043351b + limb3: 0xc209c5c88e6c6f2b043351b, }, r0a1: u384 { limb0: 0x7565700ffe842d640fc1ead7, limb1: 0xd7a72ca686ca6e365e66674f, limb2: 0x74d23c8889d674ed594cdeba, - limb3: 0x3b785972f83859804ba7b9f + limb3: 0x3b785972f83859804ba7b9f, }, r1a0: u384 { limb0: 0x6762e6916c0e2c81f7508214, limb1: 0xd0d08610571c6228f47f1451, limb2: 0x81ec1b03edd35c515bf8d1cd, - limb3: 0x41a7141598d94d8d557ea13 + limb3: 0x41a7141598d94d8d557ea13, }, r1a1: u384 { limb0: 0xc76846d9fc76bba55279cd97, limb1: 0xf475886e2b2e07119618d34c, limb2: 0x7cbf7dfaa9bdf3f6b1b6add8, - limb3: 0xe697b86b1a1a256ea1fc7bd - } + limb3: 0xe697b86b1a1a256ea1fc7bd, + }, }, G2Line { r0a0: u384 { limb0: 0xade8d05561fb99ceb1b398dc, limb1: 0x9e365afb0af81213414cfaf7, limb2: 0x7f77a69390559e530043141a, - limb3: 0xc209c5c88e6c6f2b043351b + limb3: 0xc209c5c88e6c6f2b043351b, }, r0a1: u384 { limb0: 0x7565700ffe842d640fc1ead7, limb1: 0xd7a72ca686ca6e365e66674f, limb2: 0x74d23c8889d674ed594cdeba, - limb3: 0x3b785972f83859804ba7b9f + limb3: 0x3b785972f83859804ba7b9f, }, r1a0: u384 { limb0: 0x6762e6916c0e2c81f7508214, limb1: 0xd0d08610571c6228f47f1451, limb2: 0x81ec1b03edd35c515bf8d1cd, - limb3: 0x41a7141598d94d8d557ea13 + limb3: 0x41a7141598d94d8d557ea13, }, r1a1: u384 { limb0: 0xc76846d9fc76bba55279cd97, limb1: 0xf475886e2b2e07119618d34c, limb2: 0x7cbf7dfaa9bdf3f6b1b6add8, - limb3: 0xe697b86b1a1a256ea1fc7bd - } + limb3: 0xe697b86b1a1a256ea1fc7bd, + }, }, G2Line { r0a0: u384 { limb0: 0x3e2bda3bb882029aa8c68c07, limb1: 0xa0a7e087ad38e14e08cef273, limb2: 0x5808f126af4a19c3133f879a, - limb3: 0x19bd29ab402e8d268fcb24d2 + limb3: 0x19bd29ab402e8d268fcb24d2, }, r0a1: u384 { limb0: 0xcd0ea0d4ee5a1532a9730806, limb1: 0x7845796a605b0f7861d95340, limb2: 0x89ef8948802539a10a58b812, - limb3: 0x1053849b92ac68c309e109c1 + limb3: 0x1053849b92ac68c309e109c1, }, r1a0: u384 { limb0: 0xa3815eaa263de8563f27a5a9, limb1: 0xde94b962e70316398ed6dca9, limb2: 0xa87f14f61a4ac2b9e62df692, - limb3: 0x252bb6ddefddda543bb5ffd + limb3: 0x252bb6ddefddda543bb5ffd, }, r1a1: u384 { limb0: 0x60d60e0da595356015916692, limb1: 0x4b828f50f32b12b44b33e235, limb2: 0x769ed0c50fe7fa25ffdc245a, - limb3: 0x6e387748806b8214f1b79e3 - } + limb3: 0x6e387748806b8214f1b79e3, + }, }, G2Line { r0a0: u384 { limb0: 0x3e2bda3bb882029aa8c68c07, limb1: 0xa0a7e087ad38e14e08cef273, limb2: 0x5808f126af4a19c3133f879a, - limb3: 0x19bd29ab402e8d268fcb24d2 + limb3: 0x19bd29ab402e8d268fcb24d2, }, r0a1: u384 { limb0: 0xcd0ea0d4ee5a1532a9730806, limb1: 0x7845796a605b0f7861d95340, limb2: 0x89ef8948802539a10a58b812, - limb3: 0x1053849b92ac68c309e109c1 + limb3: 0x1053849b92ac68c309e109c1, }, r1a0: u384 { limb0: 0xa3815eaa263de8563f27a5a9, limb1: 0xde94b962e70316398ed6dca9, limb2: 0xa87f14f61a4ac2b9e62df692, - limb3: 0x252bb6ddefddda543bb5ffd + limb3: 0x252bb6ddefddda543bb5ffd, }, r1a1: u384 { limb0: 0x60d60e0da595356015916692, limb1: 0x4b828f50f32b12b44b33e235, limb2: 0x769ed0c50fe7fa25ffdc245a, - limb3: 0x6e387748806b8214f1b79e3 - } + limb3: 0x6e387748806b8214f1b79e3, + }, }, G2Line { r0a0: u384 { limb0: 0xfd057da0cb173025ce2f998a, limb1: 0x9e4d6149a2fc05606e592731, limb2: 0x8b1847b9941797009134cfa1, - limb3: 0x18da833da14d6db1d7986937 + limb3: 0x18da833da14d6db1d7986937, }, r0a1: u384 { limb0: 0x5eb7e3f27b2ab2f1c56f91cb, limb1: 0x3b6645812dc68a27333141f2, limb2: 0xfb06e0ba9a36c40cbd2837b9, - limb3: 0xb998d9cd4e1fdb1c7673a4d + limb3: 0xb998d9cd4e1fdb1c7673a4d, }, r1a0: u384 { limb0: 0xea6b77d2854c6efa8751c13, limb1: 0x2a8bc25dab4cbfb0083ad510, limb2: 0xc394a4e0f3acd2aa2f2e5029, - limb3: 0x4737c2c084ac35ec59d139d + limb3: 0x4737c2c084ac35ec59d139d, }, r1a1: u384 { limb0: 0xaff0146957bcf99d6005201c, limb1: 0x5cc5e1fb8259ea6e5ffe87dc, limb2: 0xd9372a44e3423a7331ac2435, - limb3: 0x15d0e555bcdc0d8d48cad595 - } + limb3: 0x15d0e555bcdc0d8d48cad595, + }, }, G2Line { r0a0: u384 { limb0: 0xfd057da0cb173025ce2f998a, limb1: 0x9e4d6149a2fc05606e592731, limb2: 0x8b1847b9941797009134cfa1, - limb3: 0x18da833da14d6db1d7986937 + limb3: 0x18da833da14d6db1d7986937, }, r0a1: u384 { limb0: 0x5eb7e3f27b2ab2f1c56f91cb, limb1: 0x3b6645812dc68a27333141f2, limb2: 0xfb06e0ba9a36c40cbd2837b9, - limb3: 0xb998d9cd4e1fdb1c7673a4d + limb3: 0xb998d9cd4e1fdb1c7673a4d, }, r1a0: u384 { limb0: 0xea6b77d2854c6efa8751c13, limb1: 0x2a8bc25dab4cbfb0083ad510, limb2: 0xc394a4e0f3acd2aa2f2e5029, - limb3: 0x4737c2c084ac35ec59d139d + limb3: 0x4737c2c084ac35ec59d139d, }, r1a1: u384 { limb0: 0xaff0146957bcf99d6005201c, limb1: 0x5cc5e1fb8259ea6e5ffe87dc, limb2: 0xd9372a44e3423a7331ac2435, - limb3: 0x15d0e555bcdc0d8d48cad595 - } + limb3: 0x15d0e555bcdc0d8d48cad595, + }, }, G2Line { r0a0: u384 { limb0: 0x828425fca9d6cd76f222c299, limb1: 0x2b0db667ad7776a32372e139, limb2: 0x7ff7fb851413603a6f0d2fef, - limb3: 0x166c41ed7430420750164f1a + limb3: 0x166c41ed7430420750164f1a, }, r0a1: u384 { limb0: 0xe3788c1577b092a1a89686b2, limb1: 0x5fdf8356c68add3572e76a25, limb2: 0x37115b7994287a9b345dd0ed, - limb3: 0xffcc588c7d1b96c86dc3aaf + limb3: 0xffcc588c7d1b96c86dc3aaf, }, r1a0: u384 { limb0: 0xbc7e65f493e052b119a9c84f, limb1: 0x11aa017bcbfc878c46a18c52, limb2: 0xa65af0bdbf93483836c11b4d, - limb3: 0xd2f8087436fff404d7e6bc + limb3: 0xd2f8087436fff404d7e6bc, }, r1a1: u384 { limb0: 0xc171d5e78129decdde583c1f, limb1: 0x300b7521c43311b00cb16b80, limb2: 0xbccbe679495d33a3fcb98e54, - limb3: 0x13fe5206e449d407a961a9d0 - } + limb3: 0x13fe5206e449d407a961a9d0, + }, }, G2Line { r0a0: u384 { limb0: 0x828425fca9d6cd76f222c299, limb1: 0x2b0db667ad7776a32372e139, limb2: 0x7ff7fb851413603a6f0d2fef, - limb3: 0x166c41ed7430420750164f1a + limb3: 0x166c41ed7430420750164f1a, }, r0a1: u384 { limb0: 0xe3788c1577b092a1a89686b2, limb1: 0x5fdf8356c68add3572e76a25, limb2: 0x37115b7994287a9b345dd0ed, - limb3: 0xffcc588c7d1b96c86dc3aaf + limb3: 0xffcc588c7d1b96c86dc3aaf, }, r1a0: u384 { limb0: 0xbc7e65f493e052b119a9c84f, limb1: 0x11aa017bcbfc878c46a18c52, limb2: 0xa65af0bdbf93483836c11b4d, - limb3: 0xd2f8087436fff404d7e6bc + limb3: 0xd2f8087436fff404d7e6bc, }, r1a1: u384 { limb0: 0xc171d5e78129decdde583c1f, limb1: 0x300b7521c43311b00cb16b80, limb2: 0xbccbe679495d33a3fcb98e54, - limb3: 0x13fe5206e449d407a961a9d0 - } + limb3: 0x13fe5206e449d407a961a9d0, + }, }, G2Line { r0a0: u384 { limb0: 0xe075c3e46497811318f1aafc, limb1: 0xc9ee6637a1f378458c67a6a2, limb2: 0x584f8f6bff2beb100c77bbaa, - limb3: 0xcabbaeccf33edbba456b3aa + limb3: 0xcabbaeccf33edbba456b3aa, }, r0a1: u384 { limb0: 0xf15b790c2edf5b3c99fe4876, limb1: 0x875fb1351df4569cb81efb59, limb2: 0xfacb5e54e4995b34f5ea8a9d, - limb3: 0x498c1832574b066e7f66b65 + limb3: 0x498c1832574b066e7f66b65, }, r1a0: u384 { limb0: 0xd7010c92fd3eb8bf086d7a51, limb1: 0x43899406a876ca11b6a17538, limb2: 0x3c5f51da0ddee80dbc5b343b, - limb3: 0xf44ad67280e30f4d6191d23 + limb3: 0xf44ad67280e30f4d6191d23, }, r1a1: u384 { limb0: 0xb622b3289749d00b16b02f9d, limb1: 0xbc460741ba8c03787b256be9, limb2: 0x53b5ac101f741bc6ba3a412f, - limb3: 0x14610dd7fe56661dc12e7017 - } + limb3: 0x14610dd7fe56661dc12e7017, + }, }, G2Line { r0a0: u384 { limb0: 0xe075c3e46497811318f1aafc, limb1: 0xc9ee6637a1f378458c67a6a2, limb2: 0x584f8f6bff2beb100c77bbaa, - limb3: 0xcabbaeccf33edbba456b3aa + limb3: 0xcabbaeccf33edbba456b3aa, }, r0a1: u384 { limb0: 0xf15b790c2edf5b3c99fe4876, limb1: 0x875fb1351df4569cb81efb59, limb2: 0xfacb5e54e4995b34f5ea8a9d, - limb3: 0x498c1832574b066e7f66b65 + limb3: 0x498c1832574b066e7f66b65, }, r1a0: u384 { limb0: 0xd7010c92fd3eb8bf086d7a51, limb1: 0x43899406a876ca11b6a17538, limb2: 0x3c5f51da0ddee80dbc5b343b, - limb3: 0xf44ad67280e30f4d6191d23 + limb3: 0xf44ad67280e30f4d6191d23, }, r1a1: u384 { limb0: 0xb622b3289749d00b16b02f9d, limb1: 0xbc460741ba8c03787b256be9, limb2: 0x53b5ac101f741bc6ba3a412f, - limb3: 0x14610dd7fe56661dc12e7017 - } + limb3: 0x14610dd7fe56661dc12e7017, + }, }, G2Line { r0a0: u384 { limb0: 0x3289f694418a3355784156cd, limb1: 0x9e5388d5b5d0a75275470869, limb2: 0x8a84b134b920014341616e0c, - limb3: 0x17e7c92f7ff289ec1b0eb4a4 + limb3: 0x17e7c92f7ff289ec1b0eb4a4, }, r0a1: u384 { limb0: 0xfb2bdc0a4813315c10592f30, limb1: 0xfe0a10e2cefd8e957736628b, limb2: 0x968cc921ed9abec9269b5786, - limb3: 0xb36f790715d65f359921941 + limb3: 0xb36f790715d65f359921941, }, r1a0: u384 { limb0: 0xf9994278889345a5e3e525b, limb1: 0x8279eab2379884433bc2637e, limb2: 0x73d76c8ecc39d1f8cc458824, - limb3: 0xd3fe945a75801d2acc3134a + limb3: 0xd3fe945a75801d2acc3134a, }, r1a1: u384 { limb0: 0x55d20208b88794ff0fe6ff65, limb1: 0xc346b74aab2344fca9ff5c62, limb2: 0x9dde8f58210d2b715eb4384, - limb3: 0x6ab0c2780fd0aadedb1ffa6 - } + limb3: 0x6ab0c2780fd0aadedb1ffa6, + }, }, G2Line { r0a0: u384 { limb0: 0x3289f694418a3355784156cd, limb1: 0x9e5388d5b5d0a75275470869, limb2: 0x8a84b134b920014341616e0c, - limb3: 0x17e7c92f7ff289ec1b0eb4a4 + limb3: 0x17e7c92f7ff289ec1b0eb4a4, }, r0a1: u384 { limb0: 0xfb2bdc0a4813315c10592f30, limb1: 0xfe0a10e2cefd8e957736628b, limb2: 0x968cc921ed9abec9269b5786, - limb3: 0xb36f790715d65f359921941 + limb3: 0xb36f790715d65f359921941, }, r1a0: u384 { limb0: 0xf9994278889345a5e3e525b, limb1: 0x8279eab2379884433bc2637e, limb2: 0x73d76c8ecc39d1f8cc458824, - limb3: 0xd3fe945a75801d2acc3134a + limb3: 0xd3fe945a75801d2acc3134a, }, r1a1: u384 { limb0: 0x55d20208b88794ff0fe6ff65, limb1: 0xc346b74aab2344fca9ff5c62, limb2: 0x9dde8f58210d2b715eb4384, - limb3: 0x6ab0c2780fd0aadedb1ffa6 - } + limb3: 0x6ab0c2780fd0aadedb1ffa6, + }, }, G2Line { r0a0: u384 { limb0: 0x5a3e5e1697e09425b898db66, limb1: 0xbc1396eefa2c96a1be6ba4c4, limb2: 0x94851b8964323d7c8ed145f7, - limb3: 0x89a8fd1fd59927115c38ef8 + limb3: 0x89a8fd1fd59927115c38ef8, }, r0a1: u384 { limb0: 0xa410a6b40708300c5ff93622, limb1: 0x9f8390f98fd525a678892dda, limb2: 0xa799373de5c454a11e12b305, - limb3: 0x101747fa8b1d04dee8f363b0 + limb3: 0x101747fa8b1d04dee8f363b0, }, r1a0: u384 { limb0: 0xa807f8a5b13ceb81cda82fa8, limb1: 0xb2f165c491d5c47bfe65453, limb2: 0x215cdd59a4776d378aa1dcd3, - limb3: 0x19a8a47644e2d5c48fb32261 + limb3: 0x19a8a47644e2d5c48fb32261, }, r1a1: u384 { limb0: 0xacb3c56efc35cb7292cd16e7, limb1: 0x290fd760f9c8ecd7cecb08dd, limb2: 0x41a779eb8cecbc69db519618, - limb3: 0x185772d8ebcc6861748d643b - } + limb3: 0x185772d8ebcc6861748d643b, + }, }, G2Line { r0a0: u384 { limb0: 0x5a3e5e1697e09425b898db66, limb1: 0xbc1396eefa2c96a1be6ba4c4, limb2: 0x94851b8964323d7c8ed145f7, - limb3: 0x89a8fd1fd59927115c38ef8 + limb3: 0x89a8fd1fd59927115c38ef8, }, r0a1: u384 { limb0: 0xa410a6b40708300c5ff93622, limb1: 0x9f8390f98fd525a678892dda, limb2: 0xa799373de5c454a11e12b305, - limb3: 0x101747fa8b1d04dee8f363b0 + limb3: 0x101747fa8b1d04dee8f363b0, }, r1a0: u384 { limb0: 0xa807f8a5b13ceb81cda82fa8, limb1: 0xb2f165c491d5c47bfe65453, limb2: 0x215cdd59a4776d378aa1dcd3, - limb3: 0x19a8a47644e2d5c48fb32261 + limb3: 0x19a8a47644e2d5c48fb32261, }, r1a1: u384 { limb0: 0xacb3c56efc35cb7292cd16e7, limb1: 0x290fd760f9c8ecd7cecb08dd, limb2: 0x41a779eb8cecbc69db519618, - limb3: 0x185772d8ebcc6861748d643b - } + limb3: 0x185772d8ebcc6861748d643b, + }, }, G2Line { r0a0: u384 { limb0: 0x11845c8f378370c5ea1988eb, limb1: 0x1a26c58a1b5b3e9927e386f7, limb2: 0x1614136e352ccbeb1a708bc6, - limb3: 0x14b59d16f3f82c70a6dc9542 + limb3: 0x14b59d16f3f82c70a6dc9542, }, r0a1: u384 { limb0: 0xa6251ffb4e4ec02c6eb099d4, limb1: 0xa1486c797b3c5efa056554a9, limb2: 0x951b07cb2f028ead174faf1d, - limb3: 0x16995470027165033faaff45 + limb3: 0x16995470027165033faaff45, }, r1a0: u384 { limb0: 0x831c44b21a6d609bdeec639d, limb1: 0xe2f69c85767b04a7d61fe433, limb2: 0x9639ab56e254ed60a9ec5dc3, - limb3: 0x176c34a0e3901325d8694c42 + limb3: 0x176c34a0e3901325d8694c42, }, r1a1: u384 { limb0: 0xd41f8075420515c9666697e6, limb1: 0xf8df73883c6237c933f15eb5, limb2: 0xb1ed39ecead4669251ce42d2, - limb3: 0x1bbe08120ec3b54286df6bc - } + limb3: 0x1bbe08120ec3b54286df6bc, + }, }, G2Line { r0a0: u384 { limb0: 0x11845c8f378370c5ea1988eb, limb1: 0x1a26c58a1b5b3e9927e386f7, limb2: 0x1614136e352ccbeb1a708bc6, - limb3: 0x14b59d16f3f82c70a6dc9542 + limb3: 0x14b59d16f3f82c70a6dc9542, }, r0a1: u384 { limb0: 0xa6251ffb4e4ec02c6eb099d4, limb1: 0xa1486c797b3c5efa056554a9, limb2: 0x951b07cb2f028ead174faf1d, - limb3: 0x16995470027165033faaff45 + limb3: 0x16995470027165033faaff45, }, r1a0: u384 { limb0: 0x831c44b21a6d609bdeec639d, limb1: 0xe2f69c85767b04a7d61fe433, limb2: 0x9639ab56e254ed60a9ec5dc3, - limb3: 0x176c34a0e3901325d8694c42 + limb3: 0x176c34a0e3901325d8694c42, }, r1a1: u384 { limb0: 0xd41f8075420515c9666697e6, limb1: 0xf8df73883c6237c933f15eb5, limb2: 0xb1ed39ecead4669251ce42d2, - limb3: 0x1bbe08120ec3b54286df6bc - } + limb3: 0x1bbe08120ec3b54286df6bc, + }, }, G2Line { r0a0: u384 { limb0: 0x3b2682846d33d1bb2910ba03, limb1: 0x6a05f306d95cf531380ee7da, limb2: 0x21435eb65c2bd413387d1df3, - limb3: 0x1982379e444b697d0a073d6e + limb3: 0x1982379e444b697d0a073d6e, }, r0a1: u384 { limb0: 0x8bd63863d4cfeee42b281a67, limb1: 0x53c8de84ace44e226eb06d6d, limb2: 0xe55bb6fa2841cb1731cb6a13, - limb3: 0x348ea88fa28ae0657275530 + limb3: 0x348ea88fa28ae0657275530, }, r1a0: u384 { limb0: 0xdc0ab5703b9d7522611edee2, limb1: 0xd6e26d354a07ecb4e30de6a8, limb2: 0xbb971530e7c8c7526b599c64, - limb3: 0x12e92020be3b6b2a54440bb3 + limb3: 0x12e92020be3b6b2a54440bb3, }, r1a1: u384 { limb0: 0x419847bd7c1f542e3a38b0ee, limb1: 0x6d81da9fd456c7699ec5a02d, limb2: 0x7bb02418a48065d4a6fbcdd0, - limb3: 0x2158e75b3ad1be8adc4f2fd - } + limb3: 0x2158e75b3ad1be8adc4f2fd, + }, }, G2Line { r0a0: u384 { limb0: 0x3b2682846d33d1bb2910ba03, limb1: 0x6a05f306d95cf531380ee7da, limb2: 0x21435eb65c2bd413387d1df3, - limb3: 0x1982379e444b697d0a073d6e + limb3: 0x1982379e444b697d0a073d6e, }, r0a1: u384 { limb0: 0x8bd63863d4cfeee42b281a67, limb1: 0x53c8de84ace44e226eb06d6d, limb2: 0xe55bb6fa2841cb1731cb6a13, - limb3: 0x348ea88fa28ae0657275530 + limb3: 0x348ea88fa28ae0657275530, }, r1a0: u384 { limb0: 0xdc0ab5703b9d7522611edee2, limb1: 0xd6e26d354a07ecb4e30de6a8, limb2: 0xbb971530e7c8c7526b599c64, - limb3: 0x12e92020be3b6b2a54440bb3 + limb3: 0x12e92020be3b6b2a54440bb3, }, r1a1: u384 { limb0: 0x419847bd7c1f542e3a38b0ee, limb1: 0x6d81da9fd456c7699ec5a02d, limb2: 0x7bb02418a48065d4a6fbcdd0, - limb3: 0x2158e75b3ad1be8adc4f2fd - } + limb3: 0x2158e75b3ad1be8adc4f2fd, + }, }, G2Line { r0a0: u384 { limb0: 0x9ed5874a93e2a5c1167bd832, limb1: 0xb42afdb134b0481e8259c82a, limb2: 0xbb060f82ea760a3b744f9fd6, - limb3: 0xdaf9adced467ce2101b44a9 + limb3: 0xdaf9adced467ce2101b44a9, }, r0a1: u384 { limb0: 0x41f8b3d63ecc95fe95813c68, limb1: 0xc4b8e88e7bab1ed199210b24, limb2: 0x74c13644333ee583f9faa830, - limb3: 0x893b33fb2141519964b7dd0 + limb3: 0x893b33fb2141519964b7dd0, }, r1a0: u384 { limb0: 0x748cf4d3df15043e0ae8f99e, limb1: 0x4766d8800a6ffc614d6443ab, limb2: 0x5aee246adbf4dda2ea418cbf, - limb3: 0x9bc3664485ae5aecc3971ae + limb3: 0x9bc3664485ae5aecc3971ae, }, r1a1: u384 { limb0: 0x5983d25e0767a793c41206ca, limb1: 0xde625e19387d9ffd33198b83, limb2: 0xa98eec8506c321eaaeb033aa, - limb3: 0x13fb86041982c5d065bd87e9 - } + limb3: 0x13fb86041982c5d065bd87e9, + }, }, G2Line { r0a0: u384 { limb0: 0x9ed5874a93e2a5c1167bd832, limb1: 0xb42afdb134b0481e8259c82a, limb2: 0xbb060f82ea760a3b744f9fd6, - limb3: 0xdaf9adced467ce2101b44a9 + limb3: 0xdaf9adced467ce2101b44a9, }, r0a1: u384 { limb0: 0x41f8b3d63ecc95fe95813c68, limb1: 0xc4b8e88e7bab1ed199210b24, limb2: 0x74c13644333ee583f9faa830, - limb3: 0x893b33fb2141519964b7dd0 + limb3: 0x893b33fb2141519964b7dd0, }, r1a0: u384 { limb0: 0x748cf4d3df15043e0ae8f99e, limb1: 0x4766d8800a6ffc614d6443ab, limb2: 0x5aee246adbf4dda2ea418cbf, - limb3: 0x9bc3664485ae5aecc3971ae + limb3: 0x9bc3664485ae5aecc3971ae, }, r1a1: u384 { limb0: 0x5983d25e0767a793c41206ca, limb1: 0xde625e19387d9ffd33198b83, limb2: 0xa98eec8506c321eaaeb033aa, - limb3: 0x13fb86041982c5d065bd87e9 - } + limb3: 0x13fb86041982c5d065bd87e9, + }, }, G2Line { r0a0: u384 { limb0: 0xf43059462494151b4ab2087e, limb1: 0x5cd28f7ec6fd9d6b4b086f39, limb2: 0x30dd2311b5bafb9250d116c1, - limb3: 0xfc6edf74dff631a32fca3fa + limb3: 0xfc6edf74dff631a32fca3fa, }, r0a1: u384 { limb0: 0x22cbcd3ea9f0d0132809d8af, limb1: 0x4cb242156a7cdc2991ee9c0e, limb2: 0x1fe80337fb837a5476523f5c, - limb3: 0x7f64410e73c5db773ca6b66 + limb3: 0x7f64410e73c5db773ca6b66, }, r1a0: u384 { limb0: 0x32c05aa3eaefba532df15a8, limb1: 0x7bee89a662e4138e44da3c9a, limb2: 0xc92ee59d9405d5a905cf2fdb, - limb3: 0x163a2f67158e242bfbb18c52 + limb3: 0x163a2f67158e242bfbb18c52, }, r1a1: u384 { limb0: 0x55506de03a538ff69b9622a1, limb1: 0x1883fbdba6795d64f7791ed5, limb2: 0x8d52a259f76a0498bb3b877f, - limb3: 0x2cff61e78b0054925baa456 - } + limb3: 0x2cff61e78b0054925baa456, + }, }, G2Line { r0a0: u384 { limb0: 0xf43059462494151b4ab2087e, limb1: 0x5cd28f7ec6fd9d6b4b086f39, limb2: 0x30dd2311b5bafb9250d116c1, - limb3: 0xfc6edf74dff631a32fca3fa + limb3: 0xfc6edf74dff631a32fca3fa, }, r0a1: u384 { limb0: 0x22cbcd3ea9f0d0132809d8af, limb1: 0x4cb242156a7cdc2991ee9c0e, limb2: 0x1fe80337fb837a5476523f5c, - limb3: 0x7f64410e73c5db773ca6b66 + limb3: 0x7f64410e73c5db773ca6b66, }, r1a0: u384 { limb0: 0x32c05aa3eaefba532df15a8, limb1: 0x7bee89a662e4138e44da3c9a, limb2: 0xc92ee59d9405d5a905cf2fdb, - limb3: 0x163a2f67158e242bfbb18c52 + limb3: 0x163a2f67158e242bfbb18c52, }, r1a1: u384 { limb0: 0x55506de03a538ff69b9622a1, limb1: 0x1883fbdba6795d64f7791ed5, limb2: 0x8d52a259f76a0498bb3b877f, - limb3: 0x2cff61e78b0054925baa456 - } + limb3: 0x2cff61e78b0054925baa456, + }, }, G2Line { r0a0: u384 { limb0: 0x5468cccd649f5f50828f6f59, limb1: 0x2ff2349d16035594b6932990, limb2: 0x3a5195f740987d342be92f18, - limb3: 0xa20f374eb29e01db8f41902 + limb3: 0xa20f374eb29e01db8f41902, }, r0a1: u384 { limb0: 0xd98a436aeb477edb61c5262d, limb1: 0xc89b894c7895fd21e86b51f7, limb2: 0x926eb138e4aa840edc0e677e, - limb3: 0x461388814e94e8fa2a15e40 + limb3: 0x461388814e94e8fa2a15e40, }, r1a0: u384 { limb0: 0x684e1f1e2e72619d41ad8eb7, limb1: 0xd6782445423e580f3476f9f9, limb2: 0x235a44500a9d160446a5bddc, - limb3: 0xd00713abd0c5f631c36c5e6 + limb3: 0xd00713abd0c5f631c36c5e6, }, r1a1: u384 { limb0: 0xf07a607d3ecf101d58fc2489, limb1: 0xcd22610bafa804a71cdce810, limb2: 0x6a02abac5a58c663011aa1f, - limb3: 0x29de1350b9fa34cc4874766 - } + limb3: 0x29de1350b9fa34cc4874766, + }, }, G2Line { r0a0: u384 { limb0: 0x5468cccd649f5f50828f6f59, limb1: 0x2ff2349d16035594b6932990, limb2: 0x3a5195f740987d342be92f18, - limb3: 0xa20f374eb29e01db8f41902 + limb3: 0xa20f374eb29e01db8f41902, }, r0a1: u384 { limb0: 0xd98a436aeb477edb61c5262d, limb1: 0xc89b894c7895fd21e86b51f7, limb2: 0x926eb138e4aa840edc0e677e, - limb3: 0x461388814e94e8fa2a15e40 + limb3: 0x461388814e94e8fa2a15e40, }, r1a0: u384 { limb0: 0x684e1f1e2e72619d41ad8eb7, limb1: 0xd6782445423e580f3476f9f9, limb2: 0x235a44500a9d160446a5bddc, - limb3: 0xd00713abd0c5f631c36c5e6 + limb3: 0xd00713abd0c5f631c36c5e6, }, r1a1: u384 { limb0: 0xf07a607d3ecf101d58fc2489, limb1: 0xcd22610bafa804a71cdce810, limb2: 0x6a02abac5a58c663011aa1f, - limb3: 0x29de1350b9fa34cc4874766 - } + limb3: 0x29de1350b9fa34cc4874766, + }, }, G2Line { r0a0: u384 { limb0: 0x4e955be131680457999a786e, limb1: 0xb8a3466d1f50dc841f50dd53, limb2: 0x75efb94692f6d5de57fc8609, - limb3: 0x1550761b0b00c8008522c3d0 + limb3: 0x1550761b0b00c8008522c3d0, }, r0a1: u384 { limb0: 0xdf2281afe41938a9891e0f2, limb1: 0x7338e84c16f4c1a3141c1382, limb2: 0x7269a9e69889291d5395227a, - limb3: 0x16cbd178015a8098509e1caa + limb3: 0x16cbd178015a8098509e1caa, }, r1a0: u384 { limb0: 0x1cef06bbd9e71d4438a5052f, limb1: 0xf045d3479ad9aa40b16601de, limb2: 0xcedb3a06e3bf3805919beac, - limb3: 0x664dfb89dd2e293c30d8a80 + limb3: 0x664dfb89dd2e293c30d8a80, }, r1a1: u384 { limb0: 0x80e3d05acac0a472fad04f82, limb1: 0x583269e3d734e9b15cebbc7d, limb2: 0xea7477948d00c61ec92b10b7, - limb3: 0x163a27a5089d314ab8d8cf34 - } + limb3: 0x163a27a5089d314ab8d8cf34, + }, }, G2Line { r0a0: u384 { limb0: 0x4e955be131680457999a786e, limb1: 0xb8a3466d1f50dc841f50dd53, limb2: 0x75efb94692f6d5de57fc8609, - limb3: 0x1550761b0b00c8008522c3d0 + limb3: 0x1550761b0b00c8008522c3d0, }, r0a1: u384 { limb0: 0xdf2281afe41938a9891e0f2, limb1: 0x7338e84c16f4c1a3141c1382, limb2: 0x7269a9e69889291d5395227a, - limb3: 0x16cbd178015a8098509e1caa + limb3: 0x16cbd178015a8098509e1caa, }, r1a0: u384 { limb0: 0x1cef06bbd9e71d4438a5052f, limb1: 0xf045d3479ad9aa40b16601de, limb2: 0xcedb3a06e3bf3805919beac, - limb3: 0x664dfb89dd2e293c30d8a80 + limb3: 0x664dfb89dd2e293c30d8a80, }, r1a1: u384 { limb0: 0x80e3d05acac0a472fad04f82, limb1: 0x583269e3d734e9b15cebbc7d, limb2: 0xea7477948d00c61ec92b10b7, - limb3: 0x163a27a5089d314ab8d8cf34 - } + limb3: 0x163a27a5089d314ab8d8cf34, + }, }, G2Line { r0a0: u384 { limb0: 0x7a8b2f99201cf6096d4d4b86, limb1: 0xa896e5b0f4e93d49e8a2691b, limb2: 0xd5d910d71a5706a6f897976c, - limb3: 0x10913202008b672fafa4272b + limb3: 0x10913202008b672fafa4272b, }, r0a1: u384 { limb0: 0xbcabe4aba3fd969494c6f463, limb1: 0x416f6d51b78dc628bacd84c1, limb2: 0xb92836a7855f2590720a01c6, - limb3: 0x19b605e839e9850b48d8ec2c + limb3: 0x19b605e839e9850b48d8ec2c, }, r1a0: u384 { limb0: 0x49620f3d26493fcd7396493b, limb1: 0x17313fc388a7ac05a8b111bb, limb2: 0x292e458d09c07af68fcfc74e, - limb3: 0x3a6acacd6cbc411d7eb7947 + limb3: 0x3a6acacd6cbc411d7eb7947, }, r1a1: u384 { limb0: 0xd0fdcd4eeaeb1a6ecccc011b, limb1: 0x40e42fe4d7574bcb53834b69, limb2: 0x799946d2b7b28b127a821e57, - limb3: 0x351c5a26dcce6ce7fca6249 - } + limb3: 0x351c5a26dcce6ce7fca6249, + }, }, G2Line { r0a0: u384 { limb0: 0x7a8b2f99201cf6096d4d4b86, limb1: 0xa896e5b0f4e93d49e8a2691b, limb2: 0xd5d910d71a5706a6f897976c, - limb3: 0x10913202008b672fafa4272b + limb3: 0x10913202008b672fafa4272b, }, r0a1: u384 { limb0: 0xbcabe4aba3fd969494c6f463, limb1: 0x416f6d51b78dc628bacd84c1, limb2: 0xb92836a7855f2590720a01c6, - limb3: 0x19b605e839e9850b48d8ec2c + limb3: 0x19b605e839e9850b48d8ec2c, }, r1a0: u384 { limb0: 0x49620f3d26493fcd7396493b, limb1: 0x17313fc388a7ac05a8b111bb, limb2: 0x292e458d09c07af68fcfc74e, - limb3: 0x3a6acacd6cbc411d7eb7947 + limb3: 0x3a6acacd6cbc411d7eb7947, }, r1a1: u384 { limb0: 0xd0fdcd4eeaeb1a6ecccc011b, limb1: 0x40e42fe4d7574bcb53834b69, limb2: 0x799946d2b7b28b127a821e57, - limb3: 0x351c5a26dcce6ce7fca6249 - } + limb3: 0x351c5a26dcce6ce7fca6249, + }, }, G2Line { r0a0: u384 { limb0: 0x56de0d67449950f9a27e88fa, limb1: 0xce138b184f06c8f264650446, limb2: 0x31ca7924a667107cb9380709, - limb3: 0x17960cbcef34dc014292ac06 + limb3: 0x17960cbcef34dc014292ac06, }, r0a1: u384 { limb0: 0x31295353150179142d6ddbc1, limb1: 0x2fafe4eb2df7753c10441bf, limb2: 0x403786f898262dcd349b2eb5, - limb3: 0x131cc0205e7c06e7d7dfe573 + limb3: 0x131cc0205e7c06e7d7dfe573, }, r1a0: u384 { limb0: 0xd79406d46f1c9d7137fcc172, limb1: 0x84793aeb8b5ca9891e9a6563, limb2: 0x4b1ab7811bfafaf6dfb745fc, - limb3: 0x17c50d8fcd5f550d4a2a64ae + limb3: 0x17c50d8fcd5f550d4a2a64ae, }, r1a1: u384 { limb0: 0x5c3d7e34c90dc48a32c70868, limb1: 0x4e1b7bc28d0de9519e604184, limb2: 0xf258c4f3f3ba0baaccfac11b, - limb3: 0x11ec2c0924dee1e8967b559a - } + limb3: 0x11ec2c0924dee1e8967b559a, + }, }, G2Line { r0a0: u384 { limb0: 0x56de0d67449950f9a27e88fa, limb1: 0xce138b184f06c8f264650446, limb2: 0x31ca7924a667107cb9380709, - limb3: 0x17960cbcef34dc014292ac06 + limb3: 0x17960cbcef34dc014292ac06, }, r0a1: u384 { limb0: 0x31295353150179142d6ddbc1, limb1: 0x2fafe4eb2df7753c10441bf, limb2: 0x403786f898262dcd349b2eb5, - limb3: 0x131cc0205e7c06e7d7dfe573 + limb3: 0x131cc0205e7c06e7d7dfe573, }, r1a0: u384 { limb0: 0xd79406d46f1c9d7137fcc172, limb1: 0x84793aeb8b5ca9891e9a6563, limb2: 0x4b1ab7811bfafaf6dfb745fc, - limb3: 0x17c50d8fcd5f550d4a2a64ae + limb3: 0x17c50d8fcd5f550d4a2a64ae, }, r1a1: u384 { limb0: 0x5c3d7e34c90dc48a32c70868, limb1: 0x4e1b7bc28d0de9519e604184, limb2: 0xf258c4f3f3ba0baaccfac11b, - limb3: 0x11ec2c0924dee1e8967b559a - } + limb3: 0x11ec2c0924dee1e8967b559a, + }, }, G2Line { r0a0: u384 { limb0: 0xe60081576a59a2679221795e, limb1: 0x99ee512fdfcd346784f34a48, limb2: 0x735b00cd677e6e1ba38c009f, - limb3: 0x178d4accb6fb9b6cbf9df577 + limb3: 0x178d4accb6fb9b6cbf9df577, }, r0a1: u384 { limb0: 0xcd7b2447c71a9e9b8b9db98, limb1: 0x97d5028ae6c2f7027ced11b2, limb2: 0xf8ea35a3d06f6aca9cffd3b, - limb3: 0xbec0ed2f513414494bd0f6d + limb3: 0xbec0ed2f513414494bd0f6d, }, r1a0: u384 { limb0: 0xca6aca5778f88316e121b6f2, limb1: 0x23c098f55746b7d1c5e168f9, limb2: 0x4be5fc4f8b81d965ec4cd861, - limb3: 0x6c156b4f517a9156e82cb14 + limb3: 0x6c156b4f517a9156e82cb14, }, r1a1: u384 { limb0: 0x59e184cdff8a20200dee525d, limb1: 0x12327d5b5691bb513688bda3, limb2: 0xa653bf47392176e8a509eb6b, - limb3: 0x6302b0d5f33fc6d3799728d - } + limb3: 0x6302b0d5f33fc6d3799728d, + }, }, G2Line { r0a0: u384 { limb0: 0xe60081576a59a2679221795e, limb1: 0x99ee512fdfcd346784f34a48, limb2: 0x735b00cd677e6e1ba38c009f, - limb3: 0x178d4accb6fb9b6cbf9df577 + limb3: 0x178d4accb6fb9b6cbf9df577, }, r0a1: u384 { limb0: 0xcd7b2447c71a9e9b8b9db98, limb1: 0x97d5028ae6c2f7027ced11b2, limb2: 0xf8ea35a3d06f6aca9cffd3b, - limb3: 0xbec0ed2f513414494bd0f6d + limb3: 0xbec0ed2f513414494bd0f6d, }, r1a0: u384 { limb0: 0xca6aca5778f88316e121b6f2, limb1: 0x23c098f55746b7d1c5e168f9, limb2: 0x4be5fc4f8b81d965ec4cd861, - limb3: 0x6c156b4f517a9156e82cb14 + limb3: 0x6c156b4f517a9156e82cb14, }, r1a1: u384 { limb0: 0x59e184cdff8a20200dee525d, limb1: 0x12327d5b5691bb513688bda3, limb2: 0xa653bf47392176e8a509eb6b, - limb3: 0x6302b0d5f33fc6d3799728d - } + limb3: 0x6302b0d5f33fc6d3799728d, + }, }, G2Line { r0a0: u384 { limb0: 0x8289ee9e6820add91b6e9f3c, limb1: 0x161cccd4985697fa09846edf, limb2: 0x7a16c4169c620eab78a54ae0, - limb3: 0xb43112e6bf81d6bf3265d2a + limb3: 0xb43112e6bf81d6bf3265d2a, }, r0a1: u384 { limb0: 0xa19c344f64ea5350f0a08f3c, limb1: 0x4b3b0b1f34d7db6b30ab1be3, limb2: 0xdd3563e987285c49a9c0ea5f, - limb3: 0xa5797654377bf54d8992f94 + limb3: 0xa5797654377bf54d8992f94, }, r1a0: u384 { limb0: 0xa65f6f3c877ce8e73a114724, limb1: 0x5b64b753040c29a75a01e69b, limb2: 0x628c82c1c0e09f1aaab0a61, - limb3: 0x1017f0dd39c644eb0e392947 + limb3: 0x1017f0dd39c644eb0e392947, }, r1a1: u384 { limb0: 0xf8a5bcf4817c937d81f315d1, limb1: 0x21f7d8e74be6d6410e62f9e1, limb2: 0xbeafe32cf1ec912b9927be97, - limb3: 0x1074d4a9995442048f5dc552 - } + limb3: 0x1074d4a9995442048f5dc552, + }, }, G2Line { r0a0: u384 { limb0: 0x8289ee9e6820add91b6e9f3c, limb1: 0x161cccd4985697fa09846edf, limb2: 0x7a16c4169c620eab78a54ae0, - limb3: 0xb43112e6bf81d6bf3265d2a + limb3: 0xb43112e6bf81d6bf3265d2a, }, r0a1: u384 { limb0: 0xa19c344f64ea5350f0a08f3c, limb1: 0x4b3b0b1f34d7db6b30ab1be3, limb2: 0xdd3563e987285c49a9c0ea5f, - limb3: 0xa5797654377bf54d8992f94 + limb3: 0xa5797654377bf54d8992f94, }, r1a0: u384 { limb0: 0xa65f6f3c877ce8e73a114724, limb1: 0x5b64b753040c29a75a01e69b, limb2: 0x628c82c1c0e09f1aaab0a61, - limb3: 0x1017f0dd39c644eb0e392947 + limb3: 0x1017f0dd39c644eb0e392947, }, r1a1: u384 { limb0: 0xf8a5bcf4817c937d81f315d1, limb1: 0x21f7d8e74be6d6410e62f9e1, limb2: 0xbeafe32cf1ec912b9927be97, - limb3: 0x1074d4a9995442048f5dc552 - } + limb3: 0x1074d4a9995442048f5dc552, + }, }, G2Line { r0a0: u384 { limb0: 0xf5f0bc431d8e3c80c9af43ec, limb1: 0xe1bfd26afc9cc39a0566ce43, limb2: 0x56e0dd02d42fee35ff65330b, - limb3: 0xcb5a49bf5f851b8dfe3526c + limb3: 0xcb5a49bf5f851b8dfe3526c, }, r0a1: u384 { limb0: 0x1b9c89ae090424c785c6201e, limb1: 0x9aa7a9da8db576af296e542a, limb2: 0xf2e8447430a25ab638a55680, - limb3: 0xa10904e10bf2511e4345039 + limb3: 0xa10904e10bf2511e4345039, }, r1a0: u384 { limb0: 0x71a9bbb204d330d58a16fddc, limb1: 0xc0b0adcf1611ff894f97933e, limb2: 0x835a3a6abbb86ab551ceb573, - limb3: 0x634ccea2a60cdbd34c941c1 + limb3: 0x634ccea2a60cdbd34c941c1, }, r1a1: u384 { limb0: 0xb5ff392b31c0d3eaba4cd272, limb1: 0x160f3e778181730bdfd887c7, limb2: 0xea813bbe8c520a16b1e7a2c3, - limb3: 0x14d73adeb7fdf6a4a22c9ffd - } + limb3: 0x14d73adeb7fdf6a4a22c9ffd, + }, }, G2Line { r0a0: u384 { limb0: 0xf5f0bc431d8e3c80c9af43ec, limb1: 0xe1bfd26afc9cc39a0566ce43, limb2: 0x56e0dd02d42fee35ff65330b, - limb3: 0xcb5a49bf5f851b8dfe3526c + limb3: 0xcb5a49bf5f851b8dfe3526c, }, r0a1: u384 { limb0: 0x1b9c89ae090424c785c6201e, limb1: 0x9aa7a9da8db576af296e542a, limb2: 0xf2e8447430a25ab638a55680, - limb3: 0xa10904e10bf2511e4345039 + limb3: 0xa10904e10bf2511e4345039, }, r1a0: u384 { limb0: 0x71a9bbb204d330d58a16fddc, limb1: 0xc0b0adcf1611ff894f97933e, limb2: 0x835a3a6abbb86ab551ceb573, - limb3: 0x634ccea2a60cdbd34c941c1 + limb3: 0x634ccea2a60cdbd34c941c1, }, r1a1: u384 { limb0: 0xb5ff392b31c0d3eaba4cd272, limb1: 0x160f3e778181730bdfd887c7, limb2: 0xea813bbe8c520a16b1e7a2c3, - limb3: 0x14d73adeb7fdf6a4a22c9ffd - } + limb3: 0x14d73adeb7fdf6a4a22c9ffd, + }, }, G2Line { r0a0: u384 { limb0: 0xe99af5be34cdf3b6cd722b90, limb1: 0x43bcb5a3050d0fc3f1656016, limb2: 0xd9565b1e5e510b6264471bfa, - limb3: 0x12ee7303ded06b9853cbddbe + limb3: 0x12ee7303ded06b9853cbddbe, }, r0a1: u384 { limb0: 0x640c586fa840c267f3b5d99, limb1: 0x9584c14b56c506ef287a149c, limb2: 0x317fe0a92bd878e9d86b616d, - limb3: 0x12c415a497b04dbe9c645460 + limb3: 0x12c415a497b04dbe9c645460, }, r1a0: u384 { limb0: 0x3b85dd33ea6b3619236bb988, limb1: 0x7ce7ce7d9b2c5af2cc87a08a, limb2: 0x677951177d5a61f6d3531b7b, - limb3: 0x188a8c03315728f1526806d2 + limb3: 0x188a8c03315728f1526806d2, }, r1a1: u384 { limb0: 0xa585bcb857e792c9af8ddec8, limb1: 0x78f2e972ccd3af64b49ff79b, limb2: 0x10be9acf81fad9cf48dc3e12, - limb3: 0x11a11578232a8dd660eaf5b6 - } + limb3: 0x11a11578232a8dd660eaf5b6, + }, }, G2Line { r0a0: u384 { limb0: 0xe99af5be34cdf3b6cd722b90, limb1: 0x43bcb5a3050d0fc3f1656016, limb2: 0xd9565b1e5e510b6264471bfa, - limb3: 0x12ee7303ded06b9853cbddbe + limb3: 0x12ee7303ded06b9853cbddbe, }, r0a1: u384 { limb0: 0x640c586fa840c267f3b5d99, limb1: 0x9584c14b56c506ef287a149c, limb2: 0x317fe0a92bd878e9d86b616d, - limb3: 0x12c415a497b04dbe9c645460 + limb3: 0x12c415a497b04dbe9c645460, }, r1a0: u384 { limb0: 0x3b85dd33ea6b3619236bb988, limb1: 0x7ce7ce7d9b2c5af2cc87a08a, limb2: 0x677951177d5a61f6d3531b7b, - limb3: 0x188a8c03315728f1526806d2 + limb3: 0x188a8c03315728f1526806d2, }, r1a1: u384 { limb0: 0xa585bcb857e792c9af8ddec8, limb1: 0x78f2e972ccd3af64b49ff79b, limb2: 0x10be9acf81fad9cf48dc3e12, - limb3: 0x11a11578232a8dd660eaf5b6 - } + limb3: 0x11a11578232a8dd660eaf5b6, + }, }, G2Line { r0a0: u384 { limb0: 0xc7c0d285262c1b32ca6bc7c3, limb1: 0x66824fd1b6de7089b82d478a, limb2: 0x5e4beb5c4833b2e8f008208a, - limb3: 0x11c059b33ca3f500c11ee495 + limb3: 0x11c059b33ca3f500c11ee495, }, r0a1: u384 { limb0: 0x66e0f227a61baa52b945ec8a, limb1: 0x6906fbc82d5fd92075ef1513, limb2: 0x55d0fec8a6600cb65d06bdb3, - limb3: 0x179aabda1a2af5b5e7777d9a + limb3: 0x179aabda1a2af5b5e7777d9a, }, r1a0: u384 { limb0: 0xcb7dee20a686dcfcda3ddff8, limb1: 0xfb1119a7914a33be6cb2a22d, limb2: 0xda5c49c13a9c6084ad1ca51d, - limb3: 0x105195896eb7f46d1ac77d49 + limb3: 0x105195896eb7f46d1ac77d49, }, r1a1: u384 { limb0: 0xe1ae9ed15c3335b8f8b45b63, limb1: 0xd7d2b2b828960267ff16d106, limb2: 0x5fb6174880cb32afa5171325, - limb3: 0x73634ad3a80542b79db8125 - } + limb3: 0x73634ad3a80542b79db8125, + }, }, G2Line { r0a0: u384 { limb0: 0xc7c0d285262c1b32ca6bc7c3, limb1: 0x66824fd1b6de7089b82d478a, limb2: 0x5e4beb5c4833b2e8f008208a, - limb3: 0x11c059b33ca3f500c11ee495 + limb3: 0x11c059b33ca3f500c11ee495, }, r0a1: u384 { limb0: 0x66e0f227a61baa52b945ec8a, limb1: 0x6906fbc82d5fd92075ef1513, limb2: 0x55d0fec8a6600cb65d06bdb3, - limb3: 0x179aabda1a2af5b5e7777d9a + limb3: 0x179aabda1a2af5b5e7777d9a, }, r1a0: u384 { limb0: 0xcb7dee20a686dcfcda3ddff8, limb1: 0xfb1119a7914a33be6cb2a22d, limb2: 0xda5c49c13a9c6084ad1ca51d, - limb3: 0x105195896eb7f46d1ac77d49 + limb3: 0x105195896eb7f46d1ac77d49, }, r1a1: u384 { limb0: 0xe1ae9ed15c3335b8f8b45b63, limb1: 0xd7d2b2b828960267ff16d106, limb2: 0x5fb6174880cb32afa5171325, - limb3: 0x73634ad3a80542b79db8125 - } + limb3: 0x73634ad3a80542b79db8125, + }, }, G2Line { r0a0: u384 { limb0: 0x7f6dc6043db1a0981ac8da53, limb1: 0x3faeabcc298b965b8d17dcdc, limb2: 0x41f566c0fb60863429f76f85, - limb3: 0xcb0b6d856433854a3196109 + limb3: 0xcb0b6d856433854a3196109, }, r0a1: u384 { limb0: 0xffba8b95da973789308c3dc5, limb1: 0xbd1b17fcc64e96fca67718a8, limb2: 0xba92704a60c4841667b06ceb, - limb3: 0xa0b2c0bbf592c14ec7e5fb + limb3: 0xa0b2c0bbf592c14ec7e5fb, }, r1a0: u384 { limb0: 0x92beda1eba9dc43fc36a6079, limb1: 0x91bbd7dad0ab28fca77a03a0, limb2: 0x44f752b68348b2e3a24d3786, - limb3: 0x43b6a504a9015e8b46e81f4 + limb3: 0x43b6a504a9015e8b46e81f4, }, r1a1: u384 { limb0: 0xc907c48da1cd91064530e901, limb1: 0xe87af685a6b1fb6ad930fc15, limb2: 0x4a5990c65cd9027b2c676e6e, - limb3: 0x11cde272cfa72574425da27 - } + limb3: 0x11cde272cfa72574425da27, + }, }, G2Line { r0a0: u384 { limb0: 0x7f6dc6043db1a0981ac8da53, limb1: 0x3faeabcc298b965b8d17dcdc, limb2: 0x41f566c0fb60863429f76f85, - limb3: 0xcb0b6d856433854a3196109 + limb3: 0xcb0b6d856433854a3196109, }, r0a1: u384 { limb0: 0xffba8b95da973789308c3dc5, limb1: 0xbd1b17fcc64e96fca67718a8, limb2: 0xba92704a60c4841667b06ceb, - limb3: 0xa0b2c0bbf592c14ec7e5fb + limb3: 0xa0b2c0bbf592c14ec7e5fb, }, r1a0: u384 { limb0: 0x92beda1eba9dc43fc36a6079, limb1: 0x91bbd7dad0ab28fca77a03a0, limb2: 0x44f752b68348b2e3a24d3786, - limb3: 0x43b6a504a9015e8b46e81f4 + limb3: 0x43b6a504a9015e8b46e81f4, }, r1a1: u384 { limb0: 0xc907c48da1cd91064530e901, limb1: 0xe87af685a6b1fb6ad930fc15, limb2: 0x4a5990c65cd9027b2c676e6e, - limb3: 0x11cde272cfa72574425da27 - } + limb3: 0x11cde272cfa72574425da27, + }, }, G2Line { r0a0: u384 { limb0: 0xdaf1249cec25e1591d0f9329, limb1: 0x5531582b2fcbc58c12130411, limb2: 0xd5683ab0df6813a370dced9d, - limb3: 0x16c61ae7af165d87be0cc2d5 + limb3: 0x16c61ae7af165d87be0cc2d5, }, r0a1: u384 { limb0: 0xb1c04d8f03fb3b2344ac4be5, limb1: 0xb587962043ba3348ccce1f0f, limb2: 0x5dd0fb61f2bcee0210d0af13, - limb3: 0x17804c1f2c60a8a7264b6047 + limb3: 0x17804c1f2c60a8a7264b6047, }, r1a0: u384 { limb0: 0xbb63ccb83f7ed4931470b669, limb1: 0x7fd71cdcbf8b588e2169e56, limb2: 0x497e41bd5035df06befd3d7e, - limb3: 0x1106425b52985ab1472f75a9 + limb3: 0x1106425b52985ab1472f75a9, }, r1a1: u384 { limb0: 0xf6dcb781ff977354cbaeca11, limb1: 0x69d27ee516fa1a11f4b63914, limb2: 0x9c9d283771507f24855df134, - limb3: 0xf2cfee6977693a3f2b5332c - } + limb3: 0xf2cfee6977693a3f2b5332c, + }, }, G2Line { r0a0: u384 { limb0: 0xdaf1249cec25e1591d0f9329, limb1: 0x5531582b2fcbc58c12130411, limb2: 0xd5683ab0df6813a370dced9d, - limb3: 0x16c61ae7af165d87be0cc2d5 + limb3: 0x16c61ae7af165d87be0cc2d5, }, r0a1: u384 { limb0: 0xb1c04d8f03fb3b2344ac4be5, limb1: 0xb587962043ba3348ccce1f0f, limb2: 0x5dd0fb61f2bcee0210d0af13, - limb3: 0x17804c1f2c60a8a7264b6047 + limb3: 0x17804c1f2c60a8a7264b6047, }, r1a0: u384 { limb0: 0xbb63ccb83f7ed4931470b669, limb1: 0x7fd71cdcbf8b588e2169e56, limb2: 0x497e41bd5035df06befd3d7e, - limb3: 0x1106425b52985ab1472f75a9 + limb3: 0x1106425b52985ab1472f75a9, }, r1a1: u384 { limb0: 0xf6dcb781ff977354cbaeca11, limb1: 0x69d27ee516fa1a11f4b63914, limb2: 0x9c9d283771507f24855df134, - limb3: 0xf2cfee6977693a3f2b5332c - } + limb3: 0xf2cfee6977693a3f2b5332c, + }, }, G2Line { r0a0: u384 { limb0: 0x565aac3d5efc089a31139283, limb1: 0x4272752a854538f0b555ac04, limb2: 0x86a5055ded31515c6ec89ebc, - limb3: 0x110c5f73e6b0b5c68282aa1a + limb3: 0x110c5f73e6b0b5c68282aa1a, }, r0a1: u384 { limb0: 0x6eb8fad61d6a608c85cf557f, limb1: 0x2f27ec0ec22fc4a9d189e192, limb2: 0xcce849442e970449a41aee87, - limb3: 0x3388dc06a8286446a95bb74 + limb3: 0x3388dc06a8286446a95bb74, }, r1a0: u384 { limb0: 0x29822e7214d3ae3a1eaf0881, limb1: 0xb04e459e8d569063d2f1ff84, limb2: 0x61aa79235620ec5c6168cd13, - limb3: 0xdb46da5506f25a0ddd9d25e + limb3: 0xdb46da5506f25a0ddd9d25e, }, r1a1: u384 { limb0: 0x4004047d6627ef4e8a047aeb, limb1: 0x73a8ed1ba044e04a43a99564, limb2: 0x664eedf108865fac5ebba6e1, - limb3: 0xe6e3025f09bb9df597b5128 - } + limb3: 0xe6e3025f09bb9df597b5128, + }, }, G2Line { r0a0: u384 { limb0: 0x6acae548b9042589a17cc95f, limb1: 0x217f1e1c11c3011715774d4d, limb2: 0x11a9fb5766b39d430b1c15d0, - limb3: 0xe612d859df24842ce33c9d6 + limb3: 0xe612d859df24842ce33c9d6, }, r0a1: u384 { limb0: 0x599285819346fb9c3c28793d, limb1: 0x4d0d0826c6e08cf5059cdc19, limb2: 0xf39b4a96ce83040bf10716ac, - limb3: 0xd5c0c7d757310fec39173c7 + limb3: 0xd5c0c7d757310fec39173c7, }, r1a0: u384 { limb0: 0x473dcb1b1a73099f9b3d95d2, limb1: 0x7a7ef1c6db2665dfba32be7b, limb2: 0xccb92790901c2f7ceb7fd861, - limb3: 0x1015a3839453343c9b0cbc45 + limb3: 0x1015a3839453343c9b0cbc45, }, r1a1: u384 { limb0: 0x12d333d5723a566d13e3b9ab, limb1: 0xf96f0e52139baea4bbd3f509, limb2: 0xf775f6c4aa01956effc7bac1, - limb3: 0x14f9ac263962844d5d7bfd58 - } + limb3: 0x14f9ac263962844d5d7bfd58, + }, }, G2Line { r0a0: u384 { limb0: 0x565aac3d5efc089a31139283, limb1: 0x4272752a854538f0b555ac04, limb2: 0x86a5055ded31515c6ec89ebc, - limb3: 0x110c5f73e6b0b5c68282aa1a + limb3: 0x110c5f73e6b0b5c68282aa1a, }, r0a1: u384 { limb0: 0x6eb8fad61d6a608c85cf557f, limb1: 0x2f27ec0ec22fc4a9d189e192, limb2: 0xcce849442e970449a41aee87, - limb3: 0x3388dc06a8286446a95bb74 + limb3: 0x3388dc06a8286446a95bb74, }, r1a0: u384 { limb0: 0x29822e7214d3ae3a1eaf0881, limb1: 0xb04e459e8d569063d2f1ff84, limb2: 0x61aa79235620ec5c6168cd13, - limb3: 0xdb46da5506f25a0ddd9d25e + limb3: 0xdb46da5506f25a0ddd9d25e, }, r1a1: u384 { limb0: 0x4004047d6627ef4e8a047aeb, limb1: 0x73a8ed1ba044e04a43a99564, limb2: 0x664eedf108865fac5ebba6e1, - limb3: 0xe6e3025f09bb9df597b5128 - } + limb3: 0xe6e3025f09bb9df597b5128, + }, }, G2Line { r0a0: u384 { limb0: 0x6acae548b9042589a17cc95f, limb1: 0x217f1e1c11c3011715774d4d, limb2: 0x11a9fb5766b39d430b1c15d0, - limb3: 0xe612d859df24842ce33c9d6 + limb3: 0xe612d859df24842ce33c9d6, }, r0a1: u384 { limb0: 0x599285819346fb9c3c28793d, limb1: 0x4d0d0826c6e08cf5059cdc19, limb2: 0xf39b4a96ce83040bf10716ac, - limb3: 0xd5c0c7d757310fec39173c7 + limb3: 0xd5c0c7d757310fec39173c7, }, r1a0: u384 { limb0: 0x473dcb1b1a73099f9b3d95d2, limb1: 0x7a7ef1c6db2665dfba32be7b, limb2: 0xccb92790901c2f7ceb7fd861, - limb3: 0x1015a3839453343c9b0cbc45 + limb3: 0x1015a3839453343c9b0cbc45, }, r1a1: u384 { limb0: 0x12d333d5723a566d13e3b9ab, limb1: 0xf96f0e52139baea4bbd3f509, limb2: 0xf775f6c4aa01956effc7bac1, - limb3: 0x14f9ac263962844d5d7bfd58 - } + limb3: 0x14f9ac263962844d5d7bfd58, + }, }, G2Line { r0a0: u384 { limb0: 0x324273979b43f236c1b6d4b3, limb1: 0x6a44d55ac56823beb8c5cd4d, limb2: 0xf187e87ac0dea83abd11b631, - limb3: 0xedbe290b2884e1a7816b064 + limb3: 0xedbe290b2884e1a7816b064, }, r0a1: u384 { limb0: 0xb9c0ebcef8295a5127fabfde, limb1: 0xd8abaec351082a47e7dd0d50, limb2: 0xf7b036dd84a0f094aab5c7c, - limb3: 0x14ba1a361d4fb86acc0430ff + limb3: 0x14ba1a361d4fb86acc0430ff, }, r1a0: u384 { limb0: 0xd6a92564eca59a717cccc180, limb1: 0x7ec4e553b132cfe520138b91, limb2: 0x968b7ccf08d0a2377a2b5d51, - limb3: 0x1486effacc4cfe9a2a925700 + limb3: 0x1486effacc4cfe9a2a925700, }, r1a1: u384 { limb0: 0xda73fa2984bbcd83191b529c, limb1: 0x3d2797caffd2a9f90addeb7d, limb2: 0x6ae8b01c177a54b6029803c4, - limb3: 0x19cd64299c633b6e74933f98 - } + limb3: 0x19cd64299c633b6e74933f98, + }, }, G2Line { r0a0: u384 { limb0: 0x324273979b43f236c1b6d4b3, limb1: 0x6a44d55ac56823beb8c5cd4d, limb2: 0xf187e87ac0dea83abd11b631, - limb3: 0xedbe290b2884e1a7816b064 + limb3: 0xedbe290b2884e1a7816b064, }, r0a1: u384 { limb0: 0xb9c0ebcef8295a5127fabfde, limb1: 0xd8abaec351082a47e7dd0d50, limb2: 0xf7b036dd84a0f094aab5c7c, - limb3: 0x14ba1a361d4fb86acc0430ff + limb3: 0x14ba1a361d4fb86acc0430ff, }, r1a0: u384 { limb0: 0xd6a92564eca59a717cccc180, limb1: 0x7ec4e553b132cfe520138b91, limb2: 0x968b7ccf08d0a2377a2b5d51, - limb3: 0x1486effacc4cfe9a2a925700 + limb3: 0x1486effacc4cfe9a2a925700, }, r1a1: u384 { limb0: 0xda73fa2984bbcd83191b529c, limb1: 0x3d2797caffd2a9f90addeb7d, limb2: 0x6ae8b01c177a54b6029803c4, - limb3: 0x19cd64299c633b6e74933f98 - } + limb3: 0x19cd64299c633b6e74933f98, + }, }, G2Line { r0a0: u384 { limb0: 0xdb2681a0ef5cfd0962c48f6b, limb1: 0x1a2279a74c79a6421bd26c6c, limb2: 0xc48814ce2e29b2263da82a5, - limb3: 0x2e3e25f56d91932935f20d + limb3: 0x2e3e25f56d91932935f20d, }, r0a1: u384 { limb0: 0xd677f32fe7da9736c43634f2, limb1: 0x4285e9705dd9ce8d698d1fe0, limb2: 0x2c7dd9009c4c58184aca558c, - limb3: 0x3dcbe4e5594c6ab2d10c16d + limb3: 0x3dcbe4e5594c6ab2d10c16d, }, r1a0: u384 { limb0: 0x86e822ce6a692777d529f773, limb1: 0xf92f4c24dd2d1a1ab77fcfe7, limb2: 0xc7f1f61538f225ee52b89f48, - limb3: 0x7a08b05e3201602d9216d2d + limb3: 0x7a08b05e3201602d9216d2d, }, r1a1: u384 { limb0: 0x220cfbe9c10884461876ae23, limb1: 0x9e752d4b5482e4c5bbd57488, limb2: 0x72d39a1d6f520311fd389c37, - limb3: 0x52542fd6c39f0d99bd6bbd9 - } + limb3: 0x52542fd6c39f0d99bd6bbd9, + }, }, G2Line { r0a0: u384 { limb0: 0xdb2681a0ef5cfd0962c48f6b, limb1: 0x1a2279a74c79a6421bd26c6c, limb2: 0xc48814ce2e29b2263da82a5, - limb3: 0x2e3e25f56d91932935f20d + limb3: 0x2e3e25f56d91932935f20d, }, r0a1: u384 { limb0: 0xd677f32fe7da9736c43634f2, limb1: 0x4285e9705dd9ce8d698d1fe0, limb2: 0x2c7dd9009c4c58184aca558c, - limb3: 0x3dcbe4e5594c6ab2d10c16d + limb3: 0x3dcbe4e5594c6ab2d10c16d, }, r1a0: u384 { limb0: 0x86e822ce6a692777d529f773, limb1: 0xf92f4c24dd2d1a1ab77fcfe7, limb2: 0xc7f1f61538f225ee52b89f48, - limb3: 0x7a08b05e3201602d9216d2d + limb3: 0x7a08b05e3201602d9216d2d, }, r1a1: u384 { limb0: 0x220cfbe9c10884461876ae23, limb1: 0x9e752d4b5482e4c5bbd57488, limb2: 0x72d39a1d6f520311fd389c37, - limb3: 0x52542fd6c39f0d99bd6bbd9 - } + limb3: 0x52542fd6c39f0d99bd6bbd9, + }, }, G2Line { r0a0: u384 { limb0: 0xd2833c6e80915aa802028d91, limb1: 0x74d22878ec75474650117b32, limb2: 0x6cb76ac504f45d442506c3b9, - limb3: 0x19a572ff9f78c5689f7e9 + limb3: 0x19a572ff9f78c5689f7e9, }, r0a1: u384 { limb0: 0x46249614d83af7e171c6172a, limb1: 0xd2a4f206fa6b7c9dc6276a1d, limb2: 0x1d37284645aeccfa7e55914e, - limb3: 0xea73b1772fdeb0d8a80a54 + limb3: 0xea73b1772fdeb0d8a80a54, }, r1a0: u384 { limb0: 0x985a081123f14663474d6128, limb1: 0x787c1d2cef0eaf6c17b95fa8, limb2: 0xf13630ecc0448c07d7ec98e1, - limb3: 0xcd42fb0bd6ca63acd78405b + limb3: 0xcd42fb0bd6ca63acd78405b, }, r1a1: u384 { limb0: 0xf78e5391e95d1455d6dd1c83, limb1: 0xb1164967a264030c2d76d419, limb2: 0xe1a6bcb4b4b9ee8fddc7315c, - limb3: 0x173465e64e00f1cdec28f131 - } + limb3: 0x173465e64e00f1cdec28f131, + }, }, G2Line { r0a0: u384 { limb0: 0xd2833c6e80915aa802028d91, limb1: 0x74d22878ec75474650117b32, limb2: 0x6cb76ac504f45d442506c3b9, - limb3: 0x19a572ff9f78c5689f7e9 + limb3: 0x19a572ff9f78c5689f7e9, }, r0a1: u384 { limb0: 0x46249614d83af7e171c6172a, limb1: 0xd2a4f206fa6b7c9dc6276a1d, limb2: 0x1d37284645aeccfa7e55914e, - limb3: 0xea73b1772fdeb0d8a80a54 + limb3: 0xea73b1772fdeb0d8a80a54, }, r1a0: u384 { limb0: 0x985a081123f14663474d6128, limb1: 0x787c1d2cef0eaf6c17b95fa8, limb2: 0xf13630ecc0448c07d7ec98e1, - limb3: 0xcd42fb0bd6ca63acd78405b + limb3: 0xcd42fb0bd6ca63acd78405b, }, r1a1: u384 { limb0: 0xf78e5391e95d1455d6dd1c83, limb1: 0xb1164967a264030c2d76d419, limb2: 0xe1a6bcb4b4b9ee8fddc7315c, - limb3: 0x173465e64e00f1cdec28f131 - } + limb3: 0x173465e64e00f1cdec28f131, + }, }, G2Line { r0a0: u384 { limb0: 0x5a92b83a440860b31ecb39ab, limb1: 0x6bc88b2098e8aa4f2cbabe29, limb2: 0xa344268cee55846c0d67fc57, - limb3: 0xbb3d9a3fd7f583599bea6c8 + limb3: 0xbb3d9a3fd7f583599bea6c8, }, r0a1: u384 { limb0: 0x3a6a9d0f4e52f138fe7e33f8, limb1: 0x51afc01b9494c61c5bd1b11e, limb2: 0x3172b05abc177e9cce4b4f0, - limb3: 0x17d8ca31211b957fcb12e805 + limb3: 0x17d8ca31211b957fcb12e805, }, r1a0: u384 { limb0: 0x6343ff0635ec4e9c9fb709b9, limb1: 0x68e8d08a9f5be219dd16fe6f, limb2: 0xf0fed78a781578b59788720b, - limb3: 0xbe842e6fff90d6b069cb70 + limb3: 0xbe842e6fff90d6b069cb70, }, r1a1: u384 { limb0: 0xd037592f81aa53124684abf0, limb1: 0xe52aeb7217c82e488907f68e, limb2: 0x3bddbeccd2fae9aedaa083b6, - limb3: 0xcdd8a9e7fe7cc350a576aaa - } + limb3: 0xcdd8a9e7fe7cc350a576aaa, + }, }, G2Line { r0a0: u384 { limb0: 0x5a92b83a440860b31ecb39ab, limb1: 0x6bc88b2098e8aa4f2cbabe29, limb2: 0xa344268cee55846c0d67fc57, - limb3: 0xbb3d9a3fd7f583599bea6c8 + limb3: 0xbb3d9a3fd7f583599bea6c8, }, r0a1: u384 { limb0: 0x3a6a9d0f4e52f138fe7e33f8, limb1: 0x51afc01b9494c61c5bd1b11e, limb2: 0x3172b05abc177e9cce4b4f0, - limb3: 0x17d8ca31211b957fcb12e805 + limb3: 0x17d8ca31211b957fcb12e805, }, r1a0: u384 { limb0: 0x6343ff0635ec4e9c9fb709b9, limb1: 0x68e8d08a9f5be219dd16fe6f, limb2: 0xf0fed78a781578b59788720b, - limb3: 0xbe842e6fff90d6b069cb70 + limb3: 0xbe842e6fff90d6b069cb70, }, r1a1: u384 { limb0: 0xd037592f81aa53124684abf0, limb1: 0xe52aeb7217c82e488907f68e, limb2: 0x3bddbeccd2fae9aedaa083b6, - limb3: 0xcdd8a9e7fe7cc350a576aaa - } + limb3: 0xcdd8a9e7fe7cc350a576aaa, + }, }, G2Line { r0a0: u384 { limb0: 0x6ab1f6647ba9ba736f0839ad, limb1: 0xe8204b773672d624630e2384, limb2: 0x9ecdf669a827c29c74daf71b, - limb3: 0x2627dd5786ccd48891b28cb + limb3: 0x2627dd5786ccd48891b28cb, }, r0a1: u384 { limb0: 0xd65bc63d35cc0bfb66c2fbf5, limb1: 0xb658ffd3e2b02102a72560b5, limb2: 0x4831f5285ece22bc1c6a1869, - limb3: 0x1721967f7d4fc728f65b501c + limb3: 0x1721967f7d4fc728f65b501c, }, r1a0: u384 { limb0: 0x6794d4f4801a0974d863a911, limb1: 0xbecbc2ac5e4c8d8ccf656991, limb2: 0x9ec1f54cdfcb10932d199399, - limb3: 0x2406219596075a45c6e0806 + limb3: 0x2406219596075a45c6e0806, }, r1a1: u384 { limb0: 0xe78dbc09e2db8d9605dc8f23, limb1: 0xc9303fa646a2966cfd79288, limb2: 0xa61763bd756d1d418bd83966, - limb3: 0x198617a89efe66f0fd26cf06 - } + limb3: 0x198617a89efe66f0fd26cf06, + }, }, G2Line { r0a0: u384 { limb0: 0x6ab1f6647ba9ba736f0839ad, limb1: 0xe8204b773672d624630e2384, limb2: 0x9ecdf669a827c29c74daf71b, - limb3: 0x2627dd5786ccd48891b28cb + limb3: 0x2627dd5786ccd48891b28cb, }, r0a1: u384 { limb0: 0xd65bc63d35cc0bfb66c2fbf5, limb1: 0xb658ffd3e2b02102a72560b5, limb2: 0x4831f5285ece22bc1c6a1869, - limb3: 0x1721967f7d4fc728f65b501c + limb3: 0x1721967f7d4fc728f65b501c, }, r1a0: u384 { limb0: 0x6794d4f4801a0974d863a911, limb1: 0xbecbc2ac5e4c8d8ccf656991, limb2: 0x9ec1f54cdfcb10932d199399, - limb3: 0x2406219596075a45c6e0806 + limb3: 0x2406219596075a45c6e0806, }, r1a1: u384 { limb0: 0xe78dbc09e2db8d9605dc8f23, limb1: 0xc9303fa646a2966cfd79288, limb2: 0xa61763bd756d1d418bd83966, - limb3: 0x198617a89efe66f0fd26cf06 - } + limb3: 0x198617a89efe66f0fd26cf06, + }, }, G2Line { r0a0: u384 { limb0: 0x3d1d195f552c9f18d8d5c535, limb1: 0x1323b299172854615a455e4a, limb2: 0xf7d398cbadc32d691ed52bd6, - limb3: 0x659beaad32fe55ba9df44d9 + limb3: 0x659beaad32fe55ba9df44d9, }, r0a1: u384 { limb0: 0x98c06f5573cfa234289b62d8, limb1: 0xe515dd299c6e00bc6df14c34, limb2: 0x23b66fe012eb1a443038cb88, - limb3: 0x12f810746c2c45af5360d9bc + limb3: 0x12f810746c2c45af5360d9bc, }, r1a0: u384 { limb0: 0x3aae5b2af57f0c9c94bb32, limb1: 0x777a7e6bbc9962ab6be81f76, limb2: 0x14cbce88a915fc5331313d21, - limb3: 0x13a52e8a1ac3c04b42218be1 + limb3: 0x13a52e8a1ac3c04b42218be1, }, r1a1: u384 { limb0: 0xd2b673a0bae8bfb28cff0c45, limb1: 0xf95ff65fcc89601198dc8f91, limb2: 0xd77322bf8488715eef3f6fb1, - limb3: 0xf1277bfb59098f10a9131b5 - } + limb3: 0xf1277bfb59098f10a9131b5, + }, }, G2Line { r0a0: u384 { limb0: 0x3d1d195f552c9f18d8d5c535, limb1: 0x1323b299172854615a455e4a, limb2: 0xf7d398cbadc32d691ed52bd6, - limb3: 0x659beaad32fe55ba9df44d9 + limb3: 0x659beaad32fe55ba9df44d9, }, r0a1: u384 { limb0: 0x98c06f5573cfa234289b62d8, limb1: 0xe515dd299c6e00bc6df14c34, limb2: 0x23b66fe012eb1a443038cb88, - limb3: 0x12f810746c2c45af5360d9bc + limb3: 0x12f810746c2c45af5360d9bc, }, r1a0: u384 { limb0: 0x3aae5b2af57f0c9c94bb32, limb1: 0x777a7e6bbc9962ab6be81f76, limb2: 0x14cbce88a915fc5331313d21, - limb3: 0x13a52e8a1ac3c04b42218be1 + limb3: 0x13a52e8a1ac3c04b42218be1, }, r1a1: u384 { limb0: 0xd2b673a0bae8bfb28cff0c45, limb1: 0xf95ff65fcc89601198dc8f91, limb2: 0xd77322bf8488715eef3f6fb1, - limb3: 0xf1277bfb59098f10a9131b5 - } + limb3: 0xf1277bfb59098f10a9131b5, + }, }, G2Line { r0a0: u384 { limb0: 0x994b3340947e0dfc5f4449bf, limb1: 0xf2a54d7464f1f50b95abe9d8, limb2: 0xaa05f45202de8ae127c3d64b, - limb3: 0x105819b4d71c03790bfeb092 + limb3: 0x105819b4d71c03790bfeb092, }, r0a1: u384 { limb0: 0xdbca0a627c296fe7aad607f1, limb1: 0x7a8255ce902319b92cd065be, limb2: 0x7b50bc220077a52b59ce5307, - limb3: 0xf9e05915fae54c347b88c1e + limb3: 0xf9e05915fae54c347b88c1e, }, r1a0: u384 { limb0: 0x2cac98351a30b0b82a54b79e, limb1: 0xed07531e9f2463331277b6f3, limb2: 0x12b3ebca243e04ae826f6c33, - limb3: 0x12969325aa2fdc65900e8a68 + limb3: 0x12969325aa2fdc65900e8a68, }, r1a1: u384 { limb0: 0xb0799b5a24a5ceb48429df27, limb1: 0x2ee6d0a37a7ddc7798f3bc77, limb2: 0x63ec626451e43c56ff92bafb, - limb3: 0x50818d39d6234b4dc233a38 - } + limb3: 0x50818d39d6234b4dc233a38, + }, }, G2Line { r0a0: u384 { limb0: 0x994b3340947e0dfc5f4449bf, limb1: 0xf2a54d7464f1f50b95abe9d8, limb2: 0xaa05f45202de8ae127c3d64b, - limb3: 0x105819b4d71c03790bfeb092 + limb3: 0x105819b4d71c03790bfeb092, }, r0a1: u384 { limb0: 0xdbca0a627c296fe7aad607f1, limb1: 0x7a8255ce902319b92cd065be, limb2: 0x7b50bc220077a52b59ce5307, - limb3: 0xf9e05915fae54c347b88c1e + limb3: 0xf9e05915fae54c347b88c1e, }, r1a0: u384 { limb0: 0x2cac98351a30b0b82a54b79e, limb1: 0xed07531e9f2463331277b6f3, limb2: 0x12b3ebca243e04ae826f6c33, - limb3: 0x12969325aa2fdc65900e8a68 + limb3: 0x12969325aa2fdc65900e8a68, }, r1a1: u384 { limb0: 0xb0799b5a24a5ceb48429df27, limb1: 0x2ee6d0a37a7ddc7798f3bc77, limb2: 0x63ec626451e43c56ff92bafb, - limb3: 0x50818d39d6234b4dc233a38 - } + limb3: 0x50818d39d6234b4dc233a38, + }, }, G2Line { r0a0: u384 { limb0: 0xb67cc5f083f96e39a134d194, limb1: 0xaf9e780b6c4a7184061027d7, limb2: 0xdcda4477070e92cdf3397d43, - limb3: 0x6a696f2522cc9af3d082748 + limb3: 0x6a696f2522cc9af3d082748, }, r0a1: u384 { limb0: 0x392c02806e22eca0d48618e7, limb1: 0x8aba49a57d2d347b3df198c6, limb2: 0x754cc050d1a93ac3f85ce805, - limb3: 0xe759f363f34e4784dc65a71 + limb3: 0xe759f363f34e4784dc65a71, }, r1a0: u384 { limb0: 0xd34741277335bd3799ea321e, limb1: 0xdd6641b8fbd73a1428f041ea, limb2: 0xe38c8915296a5c201145b868, - limb3: 0x105d879c98b5261f00ea9de9 + limb3: 0x105d879c98b5261f00ea9de9, }, r1a1: u384 { limb0: 0x5c96d186d5a39ffc6149aefc, limb1: 0xe4f274d1b18b7edb57fc9918, limb2: 0xea1f8cfaa190965fbae29234, - limb3: 0x110e5f288f9b57423dcde8a7 - } + limb3: 0x110e5f288f9b57423dcde8a7, + }, }, G2Line { r0a0: u384 { limb0: 0xb67cc5f083f96e39a134d194, limb1: 0xaf9e780b6c4a7184061027d7, limb2: 0xdcda4477070e92cdf3397d43, - limb3: 0x6a696f2522cc9af3d082748 + limb3: 0x6a696f2522cc9af3d082748, }, r0a1: u384 { limb0: 0x392c02806e22eca0d48618e7, limb1: 0x8aba49a57d2d347b3df198c6, limb2: 0x754cc050d1a93ac3f85ce805, - limb3: 0xe759f363f34e4784dc65a71 + limb3: 0xe759f363f34e4784dc65a71, }, r1a0: u384 { limb0: 0xd34741277335bd3799ea321e, limb1: 0xdd6641b8fbd73a1428f041ea, limb2: 0xe38c8915296a5c201145b868, - limb3: 0x105d879c98b5261f00ea9de9 + limb3: 0x105d879c98b5261f00ea9de9, }, r1a1: u384 { limb0: 0x5c96d186d5a39ffc6149aefc, limb1: 0xe4f274d1b18b7edb57fc9918, limb2: 0xea1f8cfaa190965fbae29234, - limb3: 0x110e5f288f9b57423dcde8a7 - } + limb3: 0x110e5f288f9b57423dcde8a7, + }, }, G2Line { r0a0: u384 { limb0: 0xfd988b3fefee9bec8d580624, limb1: 0xea8b268179a0cff5e5a733de, limb2: 0xc3261de3bb0dae36dd3a12d1, - limb3: 0xe0311c57778716dd26ec448 + limb3: 0xe0311c57778716dd26ec448, }, r0a1: u384 { limb0: 0xbd3bb91f6aebae19c756f359, limb1: 0x8ddb3cfc5cbb0a427decde5c, limb2: 0xa3ee67368948da84ef76cc9c, - limb3: 0x386b903ec5f7b21375b440b + limb3: 0x386b903ec5f7b21375b440b, }, r1a0: u384 { limb0: 0xf101c44cc5023657f2d800ce, limb1: 0xe3c33e1823e3fbd36e6ec7f3, limb2: 0xb72b4d93169a4b6f53c98bd8, - limb3: 0xfe4e73b7283c84a94493193 + limb3: 0xfe4e73b7283c84a94493193, }, r1a1: u384 { limb0: 0x72d680350e90ad8a1b951514, limb1: 0xbcc457b76fcdb17ec8734b67, limb2: 0xc2f60e7bf5f241b7e5cee4a0, - limb3: 0x16aaebbc648697f433c2261d - } + limb3: 0x16aaebbc648697f433c2261d, + }, }, G2Line { r0a0: u384 { limb0: 0xfd988b3fefee9bec8d580624, limb1: 0xea8b268179a0cff5e5a733de, limb2: 0xc3261de3bb0dae36dd3a12d1, - limb3: 0xe0311c57778716dd26ec448 + limb3: 0xe0311c57778716dd26ec448, }, r0a1: u384 { limb0: 0xbd3bb91f6aebae19c756f359, limb1: 0x8ddb3cfc5cbb0a427decde5c, limb2: 0xa3ee67368948da84ef76cc9c, - limb3: 0x386b903ec5f7b21375b440b + limb3: 0x386b903ec5f7b21375b440b, }, r1a0: u384 { limb0: 0xf101c44cc5023657f2d800ce, limb1: 0xe3c33e1823e3fbd36e6ec7f3, limb2: 0xb72b4d93169a4b6f53c98bd8, - limb3: 0xfe4e73b7283c84a94493193 + limb3: 0xfe4e73b7283c84a94493193, }, r1a1: u384 { limb0: 0x72d680350e90ad8a1b951514, limb1: 0xbcc457b76fcdb17ec8734b67, limb2: 0xc2f60e7bf5f241b7e5cee4a0, - limb3: 0x16aaebbc648697f433c2261d - } + limb3: 0x16aaebbc648697f433c2261d, + }, }, G2Line { r0a0: u384 { limb0: 0x6f85133f411d25e0b5f35e4e, limb1: 0xc638badc6521e71c561777f7, limb2: 0x8353d2452d7ab56d813e41e4, - limb3: 0x10bc8e7f6b5289bdc1c5fa9f + limb3: 0x10bc8e7f6b5289bdc1c5fa9f, }, r0a1: u384 { limb0: 0xab5f1742cb30521d01daacc0, limb1: 0x9e56c445377075119d1596a4, limb2: 0xa72211611536639fe4976d69, - limb3: 0x11f238149a22f79fa16cb32b + limb3: 0x11f238149a22f79fa16cb32b, }, r1a0: u384 { limb0: 0x8367fe7274231c74704c80ff, limb1: 0xa8e2ad1a7f0c36a34b48cd88, limb2: 0x7faca91a72963d25472465c, - limb3: 0x1311fd26e3b83c10952fb826 + limb3: 0x1311fd26e3b83c10952fb826, }, r1a1: u384 { limb0: 0xae246df1f149439c747384f1, limb1: 0x68a615ee2f9d7f8d56f2174b, limb2: 0xf64d48e37e9111200271d2ee, - limb3: 0x2daa9898e27bc3d9ce26195 - } + limb3: 0x2daa9898e27bc3d9ce26195, + }, }, G2Line { r0a0: u384 { limb0: 0x6f85133f411d25e0b5f35e4e, limb1: 0xc638badc6521e71c561777f7, limb2: 0x8353d2452d7ab56d813e41e4, - limb3: 0x10bc8e7f6b5289bdc1c5fa9f + limb3: 0x10bc8e7f6b5289bdc1c5fa9f, }, r0a1: u384 { limb0: 0xab5f1742cb30521d01daacc0, limb1: 0x9e56c445377075119d1596a4, limb2: 0xa72211611536639fe4976d69, - limb3: 0x11f238149a22f79fa16cb32b + limb3: 0x11f238149a22f79fa16cb32b, }, r1a0: u384 { limb0: 0x8367fe7274231c74704c80ff, limb1: 0xa8e2ad1a7f0c36a34b48cd88, limb2: 0x7faca91a72963d25472465c, - limb3: 0x1311fd26e3b83c10952fb826 + limb3: 0x1311fd26e3b83c10952fb826, }, r1a1: u384 { limb0: 0xae246df1f149439c747384f1, limb1: 0x68a615ee2f9d7f8d56f2174b, limb2: 0xf64d48e37e9111200271d2ee, - limb3: 0x2daa9898e27bc3d9ce26195 - } + limb3: 0x2daa9898e27bc3d9ce26195, + }, }, G2Line { r0a0: u384 { limb0: 0x293cdab968151d9a88ba8197, limb1: 0x91e20a097317fbf539a50489, limb2: 0x60d594dea296004ee2824b62, - limb3: 0x190b7e72bd6ee0ed0faf4962 + limb3: 0x190b7e72bd6ee0ed0faf4962, }, r0a1: u384 { limb0: 0xb5b5a519c745663a2d0a6a22, limb1: 0xe8d8005fede56d9bb7f102ac, limb2: 0x1534acc00cf17be37afd327d, - limb3: 0xb3c34b4025f50c09d86ccf1 + limb3: 0xb3c34b4025f50c09d86ccf1, }, r1a0: u384 { limb0: 0x8a28c9f5c487242be3157d10, limb1: 0x35adb9f220d3910e8e7e628a, limb2: 0x8a53a50706970f599abb8b1, - limb3: 0x1813805985492b229d25c9c0 + limb3: 0x1813805985492b229d25c9c0, }, r1a1: u384 { limb0: 0x53f421abc7375d7ef5f4ea15, limb1: 0x3453e28c8b88718a6bd2122c, limb2: 0x181dbbb6144062890a582400, - limb3: 0xe27d7ff293c8253269fc184 - } + limb3: 0xe27d7ff293c8253269fc184, + }, }, G2Line { r0a0: u384 { limb0: 0x293cdab968151d9a88ba8197, limb1: 0x91e20a097317fbf539a50489, limb2: 0x60d594dea296004ee2824b62, - limb3: 0x190b7e72bd6ee0ed0faf4962 + limb3: 0x190b7e72bd6ee0ed0faf4962, }, r0a1: u384 { limb0: 0xb5b5a519c745663a2d0a6a22, limb1: 0xe8d8005fede56d9bb7f102ac, limb2: 0x1534acc00cf17be37afd327d, - limb3: 0xb3c34b4025f50c09d86ccf1 + limb3: 0xb3c34b4025f50c09d86ccf1, }, r1a0: u384 { limb0: 0x8a28c9f5c487242be3157d10, limb1: 0x35adb9f220d3910e8e7e628a, limb2: 0x8a53a50706970f599abb8b1, - limb3: 0x1813805985492b229d25c9c0 + limb3: 0x1813805985492b229d25c9c0, }, r1a1: u384 { limb0: 0x53f421abc7375d7ef5f4ea15, limb1: 0x3453e28c8b88718a6bd2122c, limb2: 0x181dbbb6144062890a582400, - limb3: 0xe27d7ff293c8253269fc184 - } + limb3: 0xe27d7ff293c8253269fc184, + }, }, G2Line { r0a0: u384 { limb0: 0x788ac954b6de3b9ef5a6c12c, limb1: 0xe13873c4ba9728c89be70b9a, limb2: 0x5d6b9d45c0985f271595d4c9, - limb3: 0x1954917fe709faff9865ebc3 + limb3: 0x1954917fe709faff9865ebc3, }, r0a1: u384 { limb0: 0x93fca181f0664865a2fc75fe, limb1: 0x535e2e42a4a967f7ca763127, limb2: 0xce90cca6dfec0e2e8fae9e3, - limb3: 0xd086b29c92aaddb7245299d + limb3: 0xd086b29c92aaddb7245299d, }, r1a0: u384 { limb0: 0x4ef1ed09cae08920a78f3bd7, limb1: 0x6714e095d8cc53e3829f2b5a, limb2: 0x9022123e8d70a0049ccb62a6, - limb3: 0xef311f53ea87dc5da3ddd33 + limb3: 0xef311f53ea87dc5da3ddd33, }, r1a1: u384 { limb0: 0xbc5ec58d4c68ebde3ce5d6af, limb1: 0x91f1285170fbc3c4d812f3aa, limb2: 0x13eec60eefd5588477e432d8, - limb3: 0x74a34dc5c8359340c5fe4f1 - } + limb3: 0x74a34dc5c8359340c5fe4f1, + }, }, G2Line { r0a0: u384 { limb0: 0x788ac954b6de3b9ef5a6c12c, limb1: 0xe13873c4ba9728c89be70b9a, limb2: 0x5d6b9d45c0985f271595d4c9, - limb3: 0x1954917fe709faff9865ebc3 + limb3: 0x1954917fe709faff9865ebc3, }, r0a1: u384 { limb0: 0x93fca181f0664865a2fc75fe, limb1: 0x535e2e42a4a967f7ca763127, limb2: 0xce90cca6dfec0e2e8fae9e3, - limb3: 0xd086b29c92aaddb7245299d + limb3: 0xd086b29c92aaddb7245299d, }, r1a0: u384 { limb0: 0x4ef1ed09cae08920a78f3bd7, limb1: 0x6714e095d8cc53e3829f2b5a, limb2: 0x9022123e8d70a0049ccb62a6, - limb3: 0xef311f53ea87dc5da3ddd33 + limb3: 0xef311f53ea87dc5da3ddd33, }, r1a1: u384 { limb0: 0xbc5ec58d4c68ebde3ce5d6af, limb1: 0x91f1285170fbc3c4d812f3aa, limb2: 0x13eec60eefd5588477e432d8, - limb3: 0x74a34dc5c8359340c5fe4f1 - } + limb3: 0x74a34dc5c8359340c5fe4f1, + }, }, G2Line { r0a0: u384 { limb0: 0x46d409dd77b17a23fc402a34, limb1: 0x26d0e70f78ec18c019c2f074, limb2: 0x98d531c6d1b75c297e5f3c9, - limb3: 0x3a571d848cc57291ff2ffa + limb3: 0x3a571d848cc57291ff2ffa, }, r0a1: u384 { limb0: 0x9220d2160322f603fa59c76, limb1: 0xf7811520cd515d496363e693, limb2: 0x2c5614352975026f33861c37, - limb3: 0x17644f4fbe80675d0953c99d + limb3: 0x17644f4fbe80675d0953c99d, }, r1a0: u384 { limb0: 0x4aaca6cc8c9d33c63c0f1d1b, limb1: 0xe45b1fa9442911a2857ec8fa, limb2: 0x32c9f0ff272cf03afd720f7d, - limb3: 0x1e0242dad0177697c8a0aff + limb3: 0x1e0242dad0177697c8a0aff, }, r1a1: u384 { limb0: 0x728463c48b5aea9ca697e90b, limb1: 0x7b8f08b990bfcb2db30c3193, limb2: 0x7232cfafe8d7566719d9c4af, - limb3: 0x5f1c40f1c28ca2cf8f83994 - } + limb3: 0x5f1c40f1c28ca2cf8f83994, + }, }, G2Line { r0a0: u384 { limb0: 0x46d409dd77b17a23fc402a34, limb1: 0x26d0e70f78ec18c019c2f074, limb2: 0x98d531c6d1b75c297e5f3c9, - limb3: 0x3a571d848cc57291ff2ffa + limb3: 0x3a571d848cc57291ff2ffa, }, r0a1: u384 { limb0: 0x9220d2160322f603fa59c76, limb1: 0xf7811520cd515d496363e693, limb2: 0x2c5614352975026f33861c37, - limb3: 0x17644f4fbe80675d0953c99d + limb3: 0x17644f4fbe80675d0953c99d, }, r1a0: u384 { limb0: 0x4aaca6cc8c9d33c63c0f1d1b, limb1: 0xe45b1fa9442911a2857ec8fa, limb2: 0x32c9f0ff272cf03afd720f7d, - limb3: 0x1e0242dad0177697c8a0aff + limb3: 0x1e0242dad0177697c8a0aff, }, r1a1: u384 { limb0: 0x728463c48b5aea9ca697e90b, limb1: 0x7b8f08b990bfcb2db30c3193, limb2: 0x7232cfafe8d7566719d9c4af, - limb3: 0x5f1c40f1c28ca2cf8f83994 - } + limb3: 0x5f1c40f1c28ca2cf8f83994, + }, }, G2Line { r0a0: u384 { limb0: 0xf6913070c37af578aa1b9a37, limb1: 0x664781917f37151d3a0d627a, limb2: 0x9d5cd2ddf7dd66c044a101e6, - limb3: 0x13cc21b4e1f7c288d1b899ad + limb3: 0x13cc21b4e1f7c288d1b899ad, }, r0a1: u384 { limb0: 0x5607928bdfad47c77f840a3, limb1: 0xdd3d8bf376d25ba8b3a926aa, limb2: 0x35c034874a2ccd33ec0fedad, - limb3: 0x176b6eb4cbcedd0416d8b2e9 + limb3: 0x176b6eb4cbcedd0416d8b2e9, }, r1a0: u384 { limb0: 0x1f81c4f93cff2721578a1cd7, limb1: 0x7908a9522938e77f3e279a41, limb2: 0x7fdc79ff7c835d873ab01ed2, - limb3: 0x11e3d19be097dc7e63b49b10 + limb3: 0x11e3d19be097dc7e63b49b10, }, r1a1: u384 { limb0: 0x235b99292b27c9efd6a59ff4, limb1: 0x82cb49f680a93e6e718e3689, limb2: 0x710cd7d6390eca09a291ad52, - limb3: 0xf60ffe1a70c2771c44ee20f - } + limb3: 0xf60ffe1a70c2771c44ee20f, + }, }, G2Line { r0a0: u384 { limb0: 0xf6913070c37af578aa1b9a37, limb1: 0x664781917f37151d3a0d627a, limb2: 0x9d5cd2ddf7dd66c044a101e6, - limb3: 0x13cc21b4e1f7c288d1b899ad + limb3: 0x13cc21b4e1f7c288d1b899ad, }, r0a1: u384 { limb0: 0x5607928bdfad47c77f840a3, limb1: 0xdd3d8bf376d25ba8b3a926aa, limb2: 0x35c034874a2ccd33ec0fedad, - limb3: 0x176b6eb4cbcedd0416d8b2e9 + limb3: 0x176b6eb4cbcedd0416d8b2e9, }, r1a0: u384 { limb0: 0x1f81c4f93cff2721578a1cd7, limb1: 0x7908a9522938e77f3e279a41, limb2: 0x7fdc79ff7c835d873ab01ed2, - limb3: 0x11e3d19be097dc7e63b49b10 + limb3: 0x11e3d19be097dc7e63b49b10, }, r1a1: u384 { limb0: 0x235b99292b27c9efd6a59ff4, limb1: 0x82cb49f680a93e6e718e3689, limb2: 0x710cd7d6390eca09a291ad52, - limb3: 0xf60ffe1a70c2771c44ee20f - } + limb3: 0xf60ffe1a70c2771c44ee20f, + }, }, G2Line { r0a0: u384 { limb0: 0x8b2d5026a69128c8dcd7fa01, limb1: 0xa28af7e6845ec126ce674de3, limb2: 0x74618fcee9375eaffe329a57, - limb3: 0xd495764b344945c1bbf2528 + limb3: 0xd495764b344945c1bbf2528, }, r0a1: u384 { limb0: 0xc7191fe7d9c67d8956440c8e, limb1: 0x9886e12a6f751b086c256b4e, limb2: 0x2d800e1229e7acc62268ce86, - limb3: 0x8a1766c3924e9fe41995f27 + limb3: 0x8a1766c3924e9fe41995f27, }, r1a0: u384 { limb0: 0xe95730415bdae7fa69798292, limb1: 0x550a77eda4e6fd2f0bea1e69, limb2: 0xad91cd00e401b4c4d699ac6, - limb3: 0x147171fe6dce69e5291e5d4 + limb3: 0x147171fe6dce69e5291e5d4, }, r1a1: u384 { limb0: 0x3950881f65abb4ae1b59bbca, limb1: 0x588580a38b689b30f05b80bd, limb2: 0x77cb4489a340d3748044c17c, - limb3: 0xda658ea95a6fefe83fa39d1 - } + limb3: 0xda658ea95a6fefe83fa39d1, + }, }, G2Line { r0a0: u384 { limb0: 0x8b2d5026a69128c8dcd7fa01, limb1: 0xa28af7e6845ec126ce674de3, limb2: 0x74618fcee9375eaffe329a57, - limb3: 0xd495764b344945c1bbf2528 + limb3: 0xd495764b344945c1bbf2528, }, r0a1: u384 { limb0: 0xc7191fe7d9c67d8956440c8e, limb1: 0x9886e12a6f751b086c256b4e, limb2: 0x2d800e1229e7acc62268ce86, - limb3: 0x8a1766c3924e9fe41995f27 + limb3: 0x8a1766c3924e9fe41995f27, }, r1a0: u384 { limb0: 0xe95730415bdae7fa69798292, limb1: 0x550a77eda4e6fd2f0bea1e69, limb2: 0xad91cd00e401b4c4d699ac6, - limb3: 0x147171fe6dce69e5291e5d4 + limb3: 0x147171fe6dce69e5291e5d4, }, r1a1: u384 { limb0: 0x3950881f65abb4ae1b59bbca, limb1: 0x588580a38b689b30f05b80bd, limb2: 0x77cb4489a340d3748044c17c, - limb3: 0xda658ea95a6fefe83fa39d1 - } + limb3: 0xda658ea95a6fefe83fa39d1, + }, }, G2Line { r0a0: u384 { limb0: 0xfb36382a07a0546177544af4, limb1: 0x98af0f0579819a56ea21677c, limb2: 0xaba237656261d369d5d808d6, - limb3: 0xc9fb6adc6528d40d93c0da4 + limb3: 0xc9fb6adc6528d40d93c0da4, }, r0a1: u384 { limb0: 0x5c117b9250db1f77095f3f80, limb1: 0xda15f91e9282ff6deb2a2558, limb2: 0xaa820f7393229d9126ae7b62, - limb3: 0x110c5e918c554c126361e32e + limb3: 0x110c5e918c554c126361e32e, }, r1a0: u384 { limb0: 0xac056d30f948e924aa511f05, limb1: 0x31318c843660bb21180267e1, limb2: 0xb22b2d85ae7080079ab0bc7e, - limb3: 0x14941dda97edcedd3d32ad23 + limb3: 0x14941dda97edcedd3d32ad23, }, r1a1: u384 { limb0: 0x876fd0749511e318e84cc37e, limb1: 0x71b4a1c6b941f0bd7731cf3a, limb2: 0x54e1fb48d3305bd534e5132f, - limb3: 0x262c905d8278be2f7a9d1ea - } + limb3: 0x262c905d8278be2f7a9d1ea, + }, }, G2Line { r0a0: u384 { limb0: 0xfb36382a07a0546177544af4, limb1: 0x98af0f0579819a56ea21677c, limb2: 0xaba237656261d369d5d808d6, - limb3: 0xc9fb6adc6528d40d93c0da4 + limb3: 0xc9fb6adc6528d40d93c0da4, }, r0a1: u384 { limb0: 0x5c117b9250db1f77095f3f80, limb1: 0xda15f91e9282ff6deb2a2558, limb2: 0xaa820f7393229d9126ae7b62, - limb3: 0x110c5e918c554c126361e32e + limb3: 0x110c5e918c554c126361e32e, }, r1a0: u384 { limb0: 0xac056d30f948e924aa511f05, limb1: 0x31318c843660bb21180267e1, limb2: 0xb22b2d85ae7080079ab0bc7e, - limb3: 0x14941dda97edcedd3d32ad23 + limb3: 0x14941dda97edcedd3d32ad23, }, r1a1: u384 { limb0: 0x876fd0749511e318e84cc37e, limb1: 0x71b4a1c6b941f0bd7731cf3a, limb2: 0x54e1fb48d3305bd534e5132f, - limb3: 0x262c905d8278be2f7a9d1ea - } + limb3: 0x262c905d8278be2f7a9d1ea, + }, }, ] .span(); @@ -26350,74 +24912,74 @@ mod pairing_tests { limb0: 0x8bdaa3278720844c37567039, limb1: 0xd2f1409607d64c54b73d78aa, limb2: 0x2f6a4e683585d4ccc465352a, - limb3: 0x105016815aeab4c1b10cba42 + limb3: 0x105016815aeab4c1b10cba42, }, w1: u384 { limb0: 0xf14f1369d17825c133efc2d6, limb1: 0xece7f8c4810788c9023c2ad2, limb2: 0x8a7a3dca8c8fe5ccf68c0b23, - limb3: 0xe11367a38a9da9df3424073 + limb3: 0xe11367a38a9da9df3424073, }, w2: u384 { limb0: 0xbf3c140b105713ed07834b4a, limb1: 0x31325aee1b1dbae62f7c153, limb2: 0xf1712c06213e43c0272585dc, - limb3: 0x13e42c3e0801ac2144a06fb + limb3: 0x13e42c3e0801ac2144a06fb, }, w3: u384 { limb0: 0x713b362105bba1e8fcbb94a0, limb1: 0x7336f37c2c0d759c4ff697bf, limb2: 0xc61d5ab0a8dc2dffbaa7e2dc, - limb3: 0xc759210484ca64b6a064096 + limb3: 0xc759210484ca64b6a064096, }, w4: u384 { limb0: 0xdb2b0eb950e9144b7f2f02fa, limb1: 0x83f2d1513c7ce01407cbcbeb, limb2: 0x3acef2763be703fa77d90506, - limb3: 0xd6a3922a006a5ac269f1105 + limb3: 0xd6a3922a006a5ac269f1105, }, w5: u384 { limb0: 0xd7a563e564895cf2511754e1, limb1: 0xc5ec4b01df1cb55da421916c, limb2: 0x6a17068bd9eb8099e645e126, - limb3: 0xde779332fd6d9f465b20e6a + limb3: 0xde779332fd6d9f465b20e6a, }, w6: u384 { limb0: 0x62b4676a303984e5006cae4a, limb1: 0xf48de62916116cc249eda468, limb2: 0x30355b613eab563b9cb9b14a, - limb3: 0x92dc96c5c90e4a4e20a4cc8 + limb3: 0x92dc96c5c90e4a4e20a4cc8, }, w7: u384 { limb0: 0x2adef7cf0ce5e70667934f1c, limb1: 0x49df16aef14c96dda3795592, limb2: 0x90675022b9d62cbd8685978d, - limb3: 0xe6467206b01d8ecaea8fdd + limb3: 0xe6467206b01d8ecaea8fdd, }, w8: u384 { limb0: 0x5a0918f6778263817954d908, limb1: 0xf1cea39accc8cc574af25807, limb2: 0xeb067bfcab205abe6c371677, - limb3: 0x33f8a5722e1821e1f8c5f4a + limb3: 0x33f8a5722e1821e1f8c5f4a, }, w9: u384 { limb0: 0x5bec5a38ecbb7806f62dcc79, limb1: 0xcf4fd2a6884e312f05ffe06b, limb2: 0x59da93e49907f3bcb160ed13, - limb3: 0x130fe108a81a7753e3f765d5 + limb3: 0x130fe108a81a7753e3f765d5, }, w10: u384 { limb0: 0x675bac7aed2b433f922616d3, limb1: 0x2f2f405981e6aca41db75f4d, limb2: 0x5c5e051f326dbaef7f17399b, - limb3: 0xcd24160fefddfaa66c9468a + limb3: 0xcd24160fefddfaa66c9468a, }, w11: u384 { limb0: 0x82d362ba811d62d7264e9909, limb1: 0x6e0c09afc5dbcf4dffd7fc05, limb2: 0x30ce07f0ccb46385c2b2b40a, - limb3: 0x17f2b41158bbf2cb53644eae - } + limb3: 0x17f2b41158bbf2cb53644eae, + }, }, w: MillerLoopResultScalingFactor { w0: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, @@ -26428,9 +24990,9 @@ mod pairing_tests { limb0: 0x79b43033d2c6148ace378dd, limb1: 0xc6a64d7c9213ad89ad6e2940, limb2: 0x6935c3e1b9cf1af588eafb63, - limb3: 0x66ba50e8c99edbeedf33b87 + limb3: 0x66ba50e8c99edbeedf33b87, }, - w10: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + w10: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, }, Ris: array![ E12D { @@ -26438,2664 +25000,2664 @@ mod pairing_tests { limb0: 0x5e87a33f78e1f9158930afbe, limb1: 0xb03343f0ba8a9f2239714f7b, limb2: 0x9b36f2ea6a63c232dd98cdfc, - limb3: 0x12fa722de4e2d3218998c810 + limb3: 0x12fa722de4e2d3218998c810, }, w1: u384 { limb0: 0xc9f693551a877941adc4d9e5, limb1: 0x55a0971be122dcda5e5c3c8, limb2: 0x7c004df041a155e3b48cdf91, - limb3: 0x959ea623e7d5b6f547c34aa + limb3: 0x959ea623e7d5b6f547c34aa, }, w2: u384 { limb0: 0x7b00e2956467ad946b1cbad4, limb1: 0xb3dddc7d363c4618d35bbfd0, limb2: 0x67f8fcf4c55fc2cd48e50cff, - limb3: 0x155823e0d57749245ea41a2d + limb3: 0x155823e0d57749245ea41a2d, }, w3: u384 { limb0: 0xac48c31201b554c29ed60ab6, limb1: 0xd5f6cd8404db4fba9b6b1908, limb2: 0x2a12dd0e1ba2a2c71c111daa, - limb3: 0xeec9f4d9359e16042385ce1 + limb3: 0xeec9f4d9359e16042385ce1, }, w4: u384 { limb0: 0x612b6944bb47d6ef40f0a521, limb1: 0x8d9728d2c62f0e796f49eef1, limb2: 0xef1cf82ad9649cdaf92b4dad, - limb3: 0x16338f7d8ffc1e1319fc335b + limb3: 0x16338f7d8ffc1e1319fc335b, }, w5: u384 { limb0: 0x9ea8de19e0e2a79e3da646e8, limb1: 0x71979065bb38d55f71156ee4, limb2: 0x8f7025473478c1bc198be805, - limb3: 0x187985494ec2b58fdcbde38d + limb3: 0x187985494ec2b58fdcbde38d, }, w6: u384 { limb0: 0x96686495d190b64a7ea79e6e, limb1: 0x89a11b76e803f02eb0d472b0, limb2: 0x6528eebe102cbb5374fe497f, - limb3: 0xd3cc49ff4fec483e733e76d + limb3: 0xd3cc49ff4fec483e733e76d, }, w7: u384 { limb0: 0x82a3ef2511fe244c62bd5677, limb1: 0x52f0c10aafffafc1cf866828, limb2: 0x3cfe5bcd4718b63e76a65b17, - limb3: 0x2e63847fb6ea974a63e85df + limb3: 0x2e63847fb6ea974a63e85df, }, w8: u384 { limb0: 0xe04c4235ae17a9fab047b993, limb1: 0x9ade428b70a43c53f180123c, limb2: 0x892fce8b94f415a31260f4a5, - limb3: 0x14939c716e672d2e4f93049d + limb3: 0x14939c716e672d2e4f93049d, }, w9: u384 { limb0: 0x2076170f69cca61e8266cf77, limb1: 0xa94c356ff22eb446d1816afa, limb2: 0x7b5ee869ff77574fbd075e32, - limb3: 0x18c4c735d8759f9d05c97b53 + limb3: 0x18c4c735d8759f9d05c97b53, }, w10: u384 { limb0: 0x87b2d06f00ce9210f880f777, limb1: 0x270fa1aa87ff48d0c7029e08, limb2: 0xd7a0a067fdef49ae272a9cee, - limb3: 0x2670fa59b1931a9f41abca2 + limb3: 0x2670fa59b1931a9f41abca2, }, w11: u384 { limb0: 0x1d6670cd3b34ffaf62d4d572, limb1: 0x2a6da26183af5ba37e45e771, limb2: 0x2a68a3421c934fb0eb0a917c, - limb3: 0x51f182c87581744f24c2335 - } + limb3: 0x51f182c87581744f24c2335, + }, }, E12D { w0: u384 { limb0: 0xa5f19f0768085bfad6e01cd4, limb1: 0xdb5ba1fd09ac91a4ae47652f, limb2: 0x2b13b3f3a78d5dc5c4d512a1, - limb3: 0x8ce9c32b58bdfd51336a482 + limb3: 0x8ce9c32b58bdfd51336a482, }, w1: u384 { limb0: 0xe2f45c49eb706f9f80de75ea, limb1: 0x2f2a290fef99d780bdbb0c7a, limb2: 0xde3a67d7d6bc965776584229, - limb3: 0xddda4d389f0c2b9300d301a + limb3: 0xddda4d389f0c2b9300d301a, }, w2: u384 { limb0: 0x48376e71dfcc68f658e47c4c, limb1: 0xcac6cb5c19f8d13b4df976d, limb2: 0x84384bb472feb3909e7ed3f8, - limb3: 0xa4c6d75fd40944d23efad65 + limb3: 0xa4c6d75fd40944d23efad65, }, w3: u384 { limb0: 0x5706ae17c1b9f75e69a7e787, limb1: 0xc7cec8901103a5ee7bbd04d7, limb2: 0x8ddb584192f1250140b1ee3, - limb3: 0x13d733d54618baa778469263 + limb3: 0x13d733d54618baa778469263, }, w4: u384 { limb0: 0x9050e16d385573cfaaf7154a, limb1: 0x82794a915ed9862237629b23, limb2: 0xa64cea16d0c28ec3f2bf97df, - limb3: 0xa9ea911e3c1f16f11159bbe + limb3: 0xa9ea911e3c1f16f11159bbe, }, w5: u384 { limb0: 0x7e65b51d042ee4735403a47b, limb1: 0x319fb8dfee0f546bd682f411, limb2: 0xc23d64d72ebcfddc3ea548e2, - limb3: 0x111a1b915b3b25c5b9ec5052 + limb3: 0x111a1b915b3b25c5b9ec5052, }, w6: u384 { limb0: 0x7bd1cf57624895a0b3032653, limb1: 0x4961831e7409f7db175def7a, limb2: 0xb306db9676eef0f14180f0b4, - limb3: 0x125ee887fc0eef7011ad0bbb + limb3: 0x125ee887fc0eef7011ad0bbb, }, w7: u384 { limb0: 0x116cbb348fef5002aab5a1a0, limb1: 0xb1c8c7d1d9cff958a4004f0c, limb2: 0xb84a0ac8e21027d24b14ddc4, - limb3: 0x1169229cdff8901d09902cb5 + limb3: 0x1169229cdff8901d09902cb5, }, w8: u384 { limb0: 0x1046697d16f72172bef7ed16, limb1: 0xdb516839f9a0cbcbcc73b40b, limb2: 0xda4b81ca7038c6e7899437b4, - limb3: 0x898ffff0cbbee98eed4ddfa + limb3: 0x898ffff0cbbee98eed4ddfa, }, w9: u384 { limb0: 0xc57fc0dc768cc4566d475c1c, limb1: 0xcd5963a848c0b4c0417f5a2e, limb2: 0x73ecaffe0aae8b6dbac48037, - limb3: 0x79fd45ff01f26c32e1a83da + limb3: 0x79fd45ff01f26c32e1a83da, }, w10: u384 { limb0: 0x1d5fdcdedff07d7317cb5f87, limb1: 0xfed3411e06c703dee8b6e5c7, limb2: 0xb5edc0395ade200d535f84ab, - limb3: 0x3b6c9db7c2bec65f7929ef8 + limb3: 0x3b6c9db7c2bec65f7929ef8, }, w11: u384 { limb0: 0x835a3107a27c76602bb8a4e9, limb1: 0x9f1a745144ee7c13c69cd736, limb2: 0xad8ace8310aa4a6b8e6fd789, - limb3: 0x142320e4351ea7b89b1ea055 - } + limb3: 0x142320e4351ea7b89b1ea055, + }, }, E12D { w0: u384 { limb0: 0xe94b430873c2411e6cd80043, limb1: 0xe30be01010b7d9c627c228d, limb2: 0x51c2c7c9b4365780e79dc3c0, - limb3: 0x6f3bceeb9b996819b8ca685 + limb3: 0x6f3bceeb9b996819b8ca685, }, w1: u384 { limb0: 0x95c356530e86a107434237b9, limb1: 0x4aa9d2df5c497600a1e350a1, limb2: 0x59381ea2332d5b1974e07ee9, - limb3: 0x3049a4a61599e5e8113f1fe + limb3: 0x3049a4a61599e5e8113f1fe, }, w2: u384 { limb0: 0xae504a32d9b39dfef2a23777, limb1: 0xd9da3a1a5469845953c6d4d7, limb2: 0x207cdf567143514f2d7f3fc8, - limb3: 0x12974191549a6a396beba2bf + limb3: 0x12974191549a6a396beba2bf, }, w3: u384 { limb0: 0xa112cd0e530a494b22dfca4f, limb1: 0x18ea6ce26c166e7a7d78de70, limb2: 0x9cb0e03de354d7bf6282702a, - limb3: 0x909b63c04423c5894538c19 + limb3: 0x909b63c04423c5894538c19, }, w4: u384 { limb0: 0x686333c3d129ac16d5d0ad66, limb1: 0xb15463f680076cd25cc96a52, limb2: 0x208b9c263e7d649bb3ac2736, - limb3: 0x48c5ece6bb71a9d77de1d17 + limb3: 0x48c5ece6bb71a9d77de1d17, }, w5: u384 { limb0: 0x57e69dc9f02cc1dde9971341, limb1: 0xa7297c6bef065a6a9b542e82, limb2: 0xc886c7dab888b9c5b38236bc, - limb3: 0xdebc617818a9847334705f1 + limb3: 0xdebc617818a9847334705f1, }, w6: u384 { limb0: 0xe6056f10696a9817a2425aec, limb1: 0xeb0c85f199cd35e58fe7cbcf, limb2: 0xa246425777e777880b8a125d, - limb3: 0xda706ead9599d92c2d65149 + limb3: 0xda706ead9599d92c2d65149, }, w7: u384 { limb0: 0x9bf16e33aedf71df2d4615be, limb1: 0xefff1d4d74d22cd6cfaa0d54, limb2: 0x8f7e66896dad6c69fb46b6a0, - limb3: 0x6025284a12405855f01f281 + limb3: 0x6025284a12405855f01f281, }, w8: u384 { limb0: 0xc7aa07b19da3addbc2b2a7ac, limb1: 0x89af564addcf5ac140968e42, limb2: 0xb0f94c85c9d1a1140317c3f9, - limb3: 0x16ffce50f413f24cc8399c64 + limb3: 0x16ffce50f413f24cc8399c64, }, w9: u384 { limb0: 0xc11681d83427ac2c574dd74e, limb1: 0xa76eee7857186b0aeae75d7e, limb2: 0xeccab02a3412fbf189e977ac, - limb3: 0x184a0251d3a98256bf42b0eb + limb3: 0x184a0251d3a98256bf42b0eb, }, w10: u384 { limb0: 0x2c07fdd1036592df4a6f3498, limb1: 0x10f649a440ac4b37266f2219, limb2: 0x22a63f7af99b416d9bb930a5, - limb3: 0x115fdf891425fbf6a4362dd6 + limb3: 0x115fdf891425fbf6a4362dd6, }, w11: u384 { limb0: 0x411ed4c1110386e3d69aaad8, limb1: 0xc92f854a1d0559c20cdf125e, limb2: 0x948d25f76bb996b92261cdc2, - limb3: 0xe201b9e13565fa18bba4420 - } + limb3: 0xe201b9e13565fa18bba4420, + }, }, E12D { w0: u384 { limb0: 0x2ee816637d0ff936afb8192a, limb1: 0x771b55e7479b197971b078f1, limb2: 0x809429f842e6085d43c2dfd8, - limb3: 0x12623c6450560ceb87d1c6ad + limb3: 0x12623c6450560ceb87d1c6ad, }, w1: u384 { limb0: 0xeb6d6091ca6ac5b35b99eba4, limb1: 0xa6a7a574ab4b881d5074fc7d, limb2: 0x43a56d15e2274855ea77e5a1, - limb3: 0x16be7b0f604c838b37f1e747 + limb3: 0x16be7b0f604c838b37f1e747, }, w2: u384 { limb0: 0x555b0c9f5c07106cbb3f5fc5, limb1: 0xef42d2fe6dacaee0528364c4, limb2: 0xbd41cc43f3df8706302622af, - limb3: 0xe2dcea4824247cacbfc4297 + limb3: 0xe2dcea4824247cacbfc4297, }, w3: u384 { limb0: 0x93fb255d08dc8e71b39fb796, limb1: 0x1da87c5554ed815d4aac7141, limb2: 0xbaf8fdb0836e7741b324217f, - limb3: 0x19e568ec730b0d8fd4db5525 + limb3: 0x19e568ec730b0d8fd4db5525, }, w4: u384 { limb0: 0x200e327ef349bbef548d1776, limb1: 0xb2d456abe3bf1e04b5899611, limb2: 0xae05f54f4449a81f4604671, - limb3: 0x162689b2975c2604e0a4685c + limb3: 0x162689b2975c2604e0a4685c, }, w5: u384 { limb0: 0xc6b02b729ad74be636166fc8, limb1: 0x2cfefc55cda91fd7a951573a, limb2: 0x8867af21f665b7a7fd8a6f02, - limb3: 0x176cd52f992ba8fed217c160 + limb3: 0x176cd52f992ba8fed217c160, }, w6: u384 { limb0: 0x6c354775c20d8791793669d2, limb1: 0xf380243d419f9aec61c9e9e4, limb2: 0x24ab6a5a78f417f251ab18b2, - limb3: 0x19f302018bfc588d7199c144 + limb3: 0x19f302018bfc588d7199c144, }, w7: u384 { limb0: 0x52f43e2d2f77df98fb709a0c, limb1: 0x294172d5620df7163a2e150e, limb2: 0xf24eacdd84d1f5d70b8b68c1, - limb3: 0x162d18d8dab6547e5a096d2f + limb3: 0x162d18d8dab6547e5a096d2f, }, w8: u384 { limb0: 0x892c129896da39f99f72f0e2, limb1: 0x2c40af61fe531cc67546a683, limb2: 0xbccbe0a4026db352047dffba, - limb3: 0x8a6b4810628e934e1415956 + limb3: 0x8a6b4810628e934e1415956, }, w9: u384 { limb0: 0xa206e84f0a4d23df6ff06511, limb1: 0x8cbf6576156d7285ec9f1b68, limb2: 0x116d55d1a59d130f52984060, - limb3: 0x15d4804fc77d3471b7bf1405 + limb3: 0x15d4804fc77d3471b7bf1405, }, w10: u384 { limb0: 0x531e0c7406043a22ea3e34ad, limb1: 0x8d1faf249e41a0a2e8ac800f, limb2: 0xad7bce015e4d3978fb0cdda1, - limb3: 0xf30f8063668661ca0ebd8c2 + limb3: 0xf30f8063668661ca0ebd8c2, }, w11: u384 { limb0: 0x1533da47d1c4ea429dfd2495, limb1: 0x1c5bdfdd4dc1b9d6e11ffb51, limb2: 0x853362ef8f300727f4ea8d73, - limb3: 0x2619aecebc65f8daf270bae - } + limb3: 0x2619aecebc65f8daf270bae, + }, }, E12D { w0: u384 { limb0: 0x616ca54bea5ef71f6286e9db, limb1: 0x6ce5a76d2b62972a2ab13707, limb2: 0x32b53a08c2162aa1ee95a837, - limb3: 0x128bfd33226c297592d19ded + limb3: 0x128bfd33226c297592d19ded, }, w1: u384 { limb0: 0xcc4facfcbbb91a1e3c3a9aba, limb1: 0xa590e0a709daa71b0d6fd371, limb2: 0x906ab38c0a9cfc5bd91564f2, - limb3: 0x14da16be5a21292efdfabb0c + limb3: 0x14da16be5a21292efdfabb0c, }, w2: u384 { limb0: 0x81a973e5217a805d0f888a36, limb1: 0x58274f5c6f509cde4b0f4e5a, limb2: 0xc2440a9e7e7a7a859779f0ba, - limb3: 0x14521550f97d6648241075e6 + limb3: 0x14521550f97d6648241075e6, }, w3: u384 { limb0: 0xb2a9bd1fcaf992c0021668eb, limb1: 0x9ccf56b74f1ab26b6d6ab9be, limb2: 0x816fe549db002a04eedb9e09, - limb3: 0x169e5ef8091dccbfaa89609f + limb3: 0x169e5ef8091dccbfaa89609f, }, w4: u384 { limb0: 0x71582a7c30020dc2781a23de, limb1: 0xfa09bff3c0432c74e8fb9782, limb2: 0xc060bc37bb18f1f165fe9f21, - limb3: 0xd0d60bbfe488a8943c7382 + limb3: 0xd0d60bbfe488a8943c7382, }, w5: u384 { limb0: 0xe51c7d600a303222b1443dd5, limb1: 0x2c421d1581bad4b1ce684362, limb2: 0x240e5e597ff47e268342bc08, - limb3: 0x2ae81d2fb3dbf1912e36c66 + limb3: 0x2ae81d2fb3dbf1912e36c66, }, w6: u384 { limb0: 0xf0cc1dc4593248465748b59c, limb1: 0x9a31a99ab145a54bccce7dea, limb2: 0xed2c2e4617c78555f7d61215, - limb3: 0x5e6d735233a245b22780211 + limb3: 0x5e6d735233a245b22780211, }, w7: u384 { limb0: 0x88de0b5fd8db35069051139b, limb1: 0x52bcf4adb04aae5a93d1eb1a, limb2: 0x5860e277e6ce67cd26925a08, - limb3: 0x1541095aedd2a87a36fce5cb + limb3: 0x1541095aedd2a87a36fce5cb, }, w8: u384 { limb0: 0xb79b773a3df8822db5cc474e, limb1: 0x17206d8a558c6ec7b445f402, limb2: 0x5aeeec6a9815c02665ce217e, - limb3: 0x10abc052332b3bb7fc3fadd4 + limb3: 0x10abc052332b3bb7fc3fadd4, }, w9: u384 { limb0: 0xeaa86f676206f32bf7169228, limb1: 0x4432637a0bd250d8204fafdb, limb2: 0xc1396d9dfe01fbec380c12d9, - limb3: 0xeae8fbe6d882b3953e92e72 + limb3: 0xeae8fbe6d882b3953e92e72, }, w10: u384 { limb0: 0xf618e52b9429f1e88d3f1251, limb1: 0x1c25dcfe5d75ecd687176354, limb2: 0xf37879c40f1da5f52a2cdb38, - limb3: 0x81232dec101c7c15928ab21 + limb3: 0x81232dec101c7c15928ab21, }, w11: u384 { limb0: 0x40b603d2425b79cd710ee557, limb1: 0xdbb0b89a3646397437da8f84, limb2: 0x60e361e4ee2f67acda38b14e, - limb3: 0x88d292cadc4d714c0f31fc7 - } + limb3: 0x88d292cadc4d714c0f31fc7, + }, }, E12D { w0: u384 { limb0: 0xfde925b26590efd93b29dc21, limb1: 0x79fa334e9e39f1cf6d597f85, limb2: 0x351ca1e01bd6f669cfc33a39, - limb3: 0xaacd403561cecaae25da3e8 + limb3: 0xaacd403561cecaae25da3e8, }, w1: u384 { limb0: 0xfbf49b1ca286c7f34ca70db4, limb1: 0x52ae3e3ca34e2a102d3e8acb, limb2: 0xee70f348286b4f214b7e2a44, - limb3: 0x19adc6e6dd23e9b87918f0d3 + limb3: 0x19adc6e6dd23e9b87918f0d3, }, w2: u384 { limb0: 0x360cc29b8f16a161f0bb5695, limb1: 0xe23f0c483bc3484ccfbbf75, limb2: 0x544f00069e83cfa220de35a4, - limb3: 0x145f89ec3fbc9c19593fae68 + limb3: 0x145f89ec3fbc9c19593fae68, }, w3: u384 { limb0: 0x32d82fd5786426e4f0249f0e, limb1: 0xaac0cc9febb225961afd999e, limb2: 0xbfd0b5657b2f0e275599ec2d, - limb3: 0x64ea70d1faa0e80ec792a74 + limb3: 0x64ea70d1faa0e80ec792a74, }, w4: u384 { limb0: 0x836319c6483c95a22c9308b9, limb1: 0x9d0fcdd8c80002b659c474b7, limb2: 0xc44e2984149175f867392f06, - limb3: 0x13fdf1738cceefd7c77fccba + limb3: 0x13fdf1738cceefd7c77fccba, }, w5: u384 { limb0: 0x38b69c65caedae1d60f4a6b, limb1: 0x476a63341944240588cd40a, limb2: 0x2c822ad9edb35cdb9398c48a, - limb3: 0xfbd30b4e1561b17fad5975c + limb3: 0xfbd30b4e1561b17fad5975c, }, w6: u384 { limb0: 0xaa5dda2031d51398be5cdaa, limb1: 0x838072096046591839743da0, limb2: 0x4b2dbad7c26ef3e750e7e8da, - limb3: 0xeda6a14042c9d4e7bf9b02f + limb3: 0xeda6a14042c9d4e7bf9b02f, }, w7: u384 { limb0: 0xfcc892c0fbf45ec567cf21aa, limb1: 0xad6b081ad539e5b3f081e6ea, limb2: 0x9e60e7c195d26421d13f4687, - limb3: 0xe642044d3f37f6ea8897f42 + limb3: 0xe642044d3f37f6ea8897f42, }, w8: u384 { limb0: 0x9d04e86c9b4834f0738e451a, limb1: 0xd9105203107ce7a46d995976, limb2: 0x9706b8693910cb373cb60d32, - limb3: 0x14d8f8c68cdab040e35a108a + limb3: 0x14d8f8c68cdab040e35a108a, }, w9: u384 { limb0: 0x9210fb0d45f1817d93bd99fc, limb1: 0x23c86949a3759639599da994, limb2: 0xdda9c2a5d34994981322c82b, - limb3: 0xb4dc029e7276741f11943fc + limb3: 0xb4dc029e7276741f11943fc, }, w10: u384 { limb0: 0xe89745492c1f82b80e23c8d0, limb1: 0xb9c873781b1837885be73f64, limb2: 0x77070c688a2a77abbe11888, - limb3: 0x86daf906e8a95c38a3b481b + limb3: 0x86daf906e8a95c38a3b481b, }, w11: u384 { limb0: 0x72251fa4e076caba8d7e2596, limb1: 0xe91daee82b59abd08a9cb5ac, limb2: 0xc5e4c8122cacedd33cea5be8, - limb3: 0x2fb080bcdfe8c56c90fca2c - } + limb3: 0x2fb080bcdfe8c56c90fca2c, + }, }, E12D { w0: u384 { limb0: 0x6cdf3812d7d2ec500440d2bb, limb1: 0xcde664d9abf0e6043be0c188, limb2: 0x16e42aa6f1a259a62ebff4b, - limb3: 0x144527f2e63badeffe2607e + limb3: 0x144527f2e63badeffe2607e, }, w1: u384 { limb0: 0xc82526bfc5a307f2b9e9e30b, limb1: 0xdf63ab3c0f39d7908dde39ce, limb2: 0x257aa1bc6dc3a1e2b2cb1136, - limb3: 0x4f7492f6a900520c078efba + limb3: 0x4f7492f6a900520c078efba, }, w2: u384 { limb0: 0x5ae59b52a5576a972231e4f4, limb1: 0x6fdf79c79aaa7ee533f448ae, limb2: 0x9a6dd69f434272d73d12bd40, - limb3: 0xbaa39a35a43b44bce2325d5 + limb3: 0xbaa39a35a43b44bce2325d5, }, w3: u384 { limb0: 0xe504a48ed83f8bcd77382d00, limb1: 0x1fdb6ea298ac1c3c0af7522d, limb2: 0x56227bf372218d4677e592a8, - limb3: 0xcaec0e91d882a292e585313 + limb3: 0xcaec0e91d882a292e585313, }, w4: u384 { limb0: 0x4f8be2e79b7ba3a3ac9da613, limb1: 0x7219bc5c36dcdeea294b1d83, limb2: 0x9f27e9cd48a9ee4d3e2c6383, - limb3: 0x308909137cc1584e7cb9186 + limb3: 0x308909137cc1584e7cb9186, }, w5: u384 { limb0: 0x7834a99d69b1f3e2b42bdcd3, limb1: 0x300aced389ad9948ca1d8c39, limb2: 0xfe3f888a08ed761acee1b1c, - limb3: 0xdd41de0f3e2890eefbaaf79 + limb3: 0xdd41de0f3e2890eefbaaf79, }, w6: u384 { limb0: 0xca9ab9a1739b5f5137d4ac40, limb1: 0x9ba2e33a23bc2b27e91bc510, limb2: 0xdc366bc48c0a8720af349c88, - limb3: 0xc940b71841009914f7f29dd + limb3: 0xc940b71841009914f7f29dd, }, w7: u384 { limb0: 0x7711c3dd44d84334bd207762, limb1: 0xba355253aea149c9d273461c, limb2: 0x8a45011ad06e5acfea138ae1, - limb3: 0xd1b7d2bb8587892435f528e + limb3: 0xd1b7d2bb8587892435f528e, }, w8: u384 { limb0: 0xd5c10f3e091a9acaf0886474, limb1: 0x626c2a14805abbb07cae8876, limb2: 0x66356be50aa68d09b54f071c, - limb3: 0x3f1c0a601bbe3f6575e7477 + limb3: 0x3f1c0a601bbe3f6575e7477, }, w9: u384 { limb0: 0xfb4552ccdf1883dbe077d13e, limb1: 0xd8b4b21222a465176a4c7744, limb2: 0x7347818431aab5489408c638, - limb3: 0xf9d77cf7abe38162019e8df + limb3: 0xf9d77cf7abe38162019e8df, }, w10: u384 { limb0: 0x81aadeeb9df873401f32a628, limb1: 0xb93520f726c2d052f5b116d5, limb2: 0xd00b2c5d62680f3fc93d9a6, - limb3: 0x17b559291ebbfe6e0574534c + limb3: 0x17b559291ebbfe6e0574534c, }, w11: u384 { limb0: 0x9ad70ac80ce3b8527270dc24, limb1: 0x5fbd9b265250614247c4f157, limb2: 0xf0322eaaa789d68a0f83c8f6, - limb3: 0x1323275b562dca758c81b1d4 - } + limb3: 0x1323275b562dca758c81b1d4, + }, }, E12D { w0: u384 { limb0: 0xaba7980a06ebfac9ddd04a09, limb1: 0x26ef9c306f336efa100b11ba, limb2: 0x40393c1afce51c8f52083a5b, - limb3: 0x88c312a356277e9545f6421 + limb3: 0x88c312a356277e9545f6421, }, w1: u384 { limb0: 0x50fe671710174daa78e31dcf, limb1: 0x5a2428575d62b8bbdc6bdce1, limb2: 0x18dbe1b6cdb06e3ecd5497b2, - limb3: 0x63e9335b2697eb47a466830 + limb3: 0x63e9335b2697eb47a466830, }, w2: u384 { limb0: 0x243fcb55d2e8070937b2e5f2, limb1: 0xb3f0fd54bf8cd30335f72fb8, limb2: 0xdc36b46d1bd1ccd2d5c317e6, - limb3: 0x54fa05e31dcddca0b10647b + limb3: 0x54fa05e31dcddca0b10647b, }, w3: u384 { limb0: 0x178a369ede0d5f33b4088124, limb1: 0x688173ffe450814fda34adaf, limb2: 0x679b60cfa4fa68f7064b124, - limb3: 0x5c210fb56be682d3515a22c + limb3: 0x5c210fb56be682d3515a22c, }, w4: u384 { limb0: 0x80e33e3e2bde4084c4ecc31b, limb1: 0xcc13974ef64aef9cde3aa9f3, limb2: 0x9f66e9c5ad97d198a2226f6d, - limb3: 0x25b15dff2c6064ec8a6bc71 + limb3: 0x25b15dff2c6064ec8a6bc71, }, w5: u384 { limb0: 0xfefac90d2c27ea76fadfbdb6, limb1: 0xe6bcda36951c314c5fd2ca9d, limb2: 0x6b32e67596b531b9529cf2e9, - limb3: 0x652300a58d5cd6e4e248a96 + limb3: 0x652300a58d5cd6e4e248a96, }, w6: u384 { limb0: 0xb39dcebf1162dc60631b50e, limb1: 0x9a904262c61ce054c078710b, limb2: 0xcc950e9965a1b3d7a42d94ac, - limb3: 0x83f7f8554815facc18fdac1 + limb3: 0x83f7f8554815facc18fdac1, }, w7: u384 { limb0: 0x4628f9c8fe8de0ab7b878521, limb1: 0xd4e2dc674f4251bb6dcab9c7, limb2: 0x5e6b8ac26ebd553eca2d6af9, - limb3: 0xa69e14fdd6b8c0a24bc8494 + limb3: 0xa69e14fdd6b8c0a24bc8494, }, w8: u384 { limb0: 0xdcddcf1a486e8fa5de038782, limb1: 0xda495c8e9a173872cff839fe, limb2: 0xd503a115971a590b4ca5c531, - limb3: 0x140f92b94c08399b9f00c46 + limb3: 0x140f92b94c08399b9f00c46, }, w9: u384 { limb0: 0xf45410cf50b2db223627396f, limb1: 0x518dc7a16e20322edfd1dff7, limb2: 0xb0ad958b70aea0c767e3cf28, - limb3: 0x8d2d63cfd448ce80af04fbf + limb3: 0x8d2d63cfd448ce80af04fbf, }, w10: u384 { limb0: 0xa26f24a5d5acdbebb6ae2597, limb1: 0xa754c3d093f65f02627ef393, limb2: 0xc700c9fe30406f4b29029911, - limb3: 0x13f157503df37670cdec5bb5 + limb3: 0x13f157503df37670cdec5bb5, }, w11: u384 { limb0: 0xf73127358c0f9e89e02146ec, limb1: 0xee6055a98cfdb3d7bbfb9469, limb2: 0x5e382cbaff9a0c1e152cfde9, - limb3: 0xd2db85a3b0103b4fd8b4beb - } + limb3: 0xd2db85a3b0103b4fd8b4beb, + }, }, E12D { w0: u384 { limb0: 0xb0034c0dc0470e3bd056c655, limb1: 0x68739ef9acf49ed16185f94b, limb2: 0xe5397364df8b3c4eccbd060e, - limb3: 0x12bc87cbeb825883cab4c21f + limb3: 0x12bc87cbeb825883cab4c21f, }, w1: u384 { limb0: 0x9a4f283376c9c46e6f449d80, limb1: 0x3f034aefed75e2faacf1d862, limb2: 0x7716ffd86a4f3673375706fb, - limb3: 0x3346cfcd71ef93e7f3e58ec + limb3: 0x3346cfcd71ef93e7f3e58ec, }, w2: u384 { limb0: 0x752d55436d4f77575db3ba3a, limb1: 0x4b21615ce3a76f38e73528e1, limb2: 0x2a79467dd6ca41febd836ed5, - limb3: 0xe7558f44fcb9ba3b991a46d + limb3: 0xe7558f44fcb9ba3b991a46d, }, w3: u384 { limb0: 0x90b74252285317a40a980d51, limb1: 0xf625a1046957406fd64d36a3, limb2: 0xdd287597f3eb9e33e82d2677, - limb3: 0x19d79ac4ee250bd2e0f365fd + limb3: 0x19d79ac4ee250bd2e0f365fd, }, w4: u384 { limb0: 0xe7b8ebf0928a50cdc097ca80, limb1: 0x1c75acb67a4fbd8038084a85, limb2: 0x6700cd4270fb401157a956ef, - limb3: 0x11c418010389f02167f7d294 + limb3: 0x11c418010389f02167f7d294, }, w5: u384 { limb0: 0xe7311b3c007c2ffeaf935df6, limb1: 0x3a969f26bacb20feb532ccae, limb2: 0xad9c7997e6a29e0dae2f57c1, - limb3: 0x31d45316bbd38e161892ba1 + limb3: 0x31d45316bbd38e161892ba1, }, w6: u384 { limb0: 0xb836ac5fff285b97a9cfaf8a, limb1: 0x11e79fa6603cfd51966395a6, limb2: 0x241907be43b9b971573a8e1, - limb3: 0x50b992346863b906e942433 + limb3: 0x50b992346863b906e942433, }, w7: u384 { limb0: 0x77884fb393767a1d533c0b8a, limb1: 0x75a3dfc2b4ed6292b7de2d3, limb2: 0x8db56997d672b7b27505e3ff, - limb3: 0xfd375b7c1ed070088edeb4b + limb3: 0xfd375b7c1ed070088edeb4b, }, w8: u384 { limb0: 0x217ce46babc14c3e6f804698, limb1: 0x8d2f38976a56c1930e0f9ef2, limb2: 0x206cf46bdd9bb85ec1788dfb, - limb3: 0x69879bad0032e0b666ef550 + limb3: 0x69879bad0032e0b666ef550, }, w9: u384 { limb0: 0xfa6e30d2ab6ea25256a7006d, limb1: 0xad6c71121a695eeb476a4cbe, limb2: 0x9ded25624cae3f7bfed45fa7, - limb3: 0xbdc0cac28fed44c8a9974a6 + limb3: 0xbdc0cac28fed44c8a9974a6, }, w10: u384 { limb0: 0x5f32e37fb43e4fbcd4382886, limb1: 0x25a8be4ff2142fae23203a90, limb2: 0x141071f19b469cc0cdbf36e4, - limb3: 0x152a566ca9d531e91f06c8d3 + limb3: 0x152a566ca9d531e91f06c8d3, }, w11: u384 { limb0: 0xa9e30bf7189793c3dae917d9, limb1: 0xcecc2f8cf114f38941cc16e7, limb2: 0x55a8efcb2983963fd1c5d7ea, - limb3: 0xe0d3178bc1e4a9281acc39d - } + limb3: 0xe0d3178bc1e4a9281acc39d, + }, }, E12D { w0: u384 { limb0: 0x85d69f2d431d2c6f1afe22b3, limb1: 0xeb3b3ba1d64653e590a78169, limb2: 0xf2df045d48326a6371a5bffa, - limb3: 0x120ea922564a9885abce0f6e + limb3: 0x120ea922564a9885abce0f6e, }, w1: u384 { limb0: 0x5de8b63bf3968b010da3bef4, limb1: 0xd788608863c1a08d747106fa, limb2: 0xde6d5d9aae8e97f0c2158038, - limb3: 0x1832c580f19d3f73da7dd439 + limb3: 0x1832c580f19d3f73da7dd439, }, w2: u384 { limb0: 0xf2a1d0325fe6caa419acdc37, limb1: 0x90897834506f8faa6976e0b9, limb2: 0x200e730ee8dba54a64266bdb, - limb3: 0x3f427d2880d6471c9b2cec4 + limb3: 0x3f427d2880d6471c9b2cec4, }, w3: u384 { limb0: 0x854fb7b9e02882e8e2d3461e, limb1: 0xc7211649b2fbdb298e6b4935, limb2: 0xaa8bc4976bc2349ad9bb313c, - limb3: 0x1557211bab3b60506b310219 + limb3: 0x1557211bab3b60506b310219, }, w4: u384 { limb0: 0x485d0305732c8c1f4d6b6f2a, limb1: 0xfed07e935e4f20dda4935b1, limb2: 0x2504416e43da5cbf988bf0c, - limb3: 0xfd13a11b696f3d323002b0a + limb3: 0xfd13a11b696f3d323002b0a, }, w5: u384 { limb0: 0xb39dcfe5381fa64cbe569124, limb1: 0xfcc10e3db88ee4c11ab8b90c, limb2: 0x7f3dc79e449233c3c05cd4cc, - limb3: 0x1a68d8218a4a298083c7ac2 + limb3: 0x1a68d8218a4a298083c7ac2, }, w6: u384 { limb0: 0x402d97fd8c450137963dc715, limb1: 0xbaabab131fbf75f84b8c4d09, limb2: 0xeac1634a2ef470848b63e082, - limb3: 0x18020a7c33b6e6def47b23a7 + limb3: 0x18020a7c33b6e6def47b23a7, }, w7: u384 { limb0: 0x40747eb2ed38084318c5fd6a, limb1: 0x79c80f12fd1e9512f4c815d1, limb2: 0x3a48a5fc5d3e961ef0543995, - limb3: 0x5c22e5ce258b23d32382246 + limb3: 0x5c22e5ce258b23d32382246, }, w8: u384 { limb0: 0x58fdf5cf39bed59b75a08248, limb1: 0xf73f318ea3a19e93473249fa, limb2: 0x302354c7cec45c0f4e22be73, - limb3: 0x45dc87c70a7f4551180d0af + limb3: 0x45dc87c70a7f4551180d0af, }, w9: u384 { limb0: 0xea611623da31b1471f9b932, limb1: 0x32719fa75ff0141d7348d0e9, limb2: 0xb45905063c07e8c33fb9b2e9, - limb3: 0x687c2df9d7f663be99d9468 + limb3: 0x687c2df9d7f663be99d9468, }, w10: u384 { limb0: 0xf1d27eab29c68003c6c210e1, limb1: 0xb8843060c4bc968cb7982d1b, limb2: 0xeea7620d6be4c290ade9a4fa, - limb3: 0x18fe77343f6e8206f89b9744 + limb3: 0x18fe77343f6e8206f89b9744, }, w11: u384 { limb0: 0xa444a56f7e397cfafb6930c8, limb1: 0xdae564fe2862cf1cdcad16c0, limb2: 0xbc4f53f2efefa51fdfac4891, - limb3: 0x551ab423ade813eabb16804 - } + limb3: 0x551ab423ade813eabb16804, + }, }, E12D { w0: u384 { limb0: 0x5e957ccda4f73f9215fb110d, limb1: 0xdc36a49661989b5a3b5d79ee, limb2: 0xdec6eba0b4700511ff1300cc, - limb3: 0x124c0cd615ff328b360ee2b9 + limb3: 0x124c0cd615ff328b360ee2b9, }, w1: u384 { limb0: 0xb236047e323f07b02f2ec515, limb1: 0x583e5738966fa3a8aad40f7f, limb2: 0xccd1bc05a2119220b4544232, - limb3: 0x780b2230acf081408bbcdda + limb3: 0x780b2230acf081408bbcdda, }, w2: u384 { limb0: 0x260e2e2d6b359ac7810e7275, limb1: 0xbd1696a0a3bd92fa7fc31844, limb2: 0x742ff3c39bf81cbb48fa4a4b, - limb3: 0xfe258a1791cd92b4ef3e60e + limb3: 0xfe258a1791cd92b4ef3e60e, }, w3: u384 { limb0: 0x54d88d0d9b96f02414851b3f, limb1: 0x55334650ffc5ec8e900a1d3b, limb2: 0xad3cb70cc267b5f757f7cef6, - limb3: 0x794700e48a5eb285c05ed22 + limb3: 0x794700e48a5eb285c05ed22, }, w4: u384 { limb0: 0x1b66b0589fd79fc234125121, limb1: 0xbda857f94889f518fe44cf86, limb2: 0x9370106e7bd9937a478134d4, - limb3: 0x167eb12b6b3572f0a3aca9d2 + limb3: 0x167eb12b6b3572f0a3aca9d2, }, w5: u384 { limb0: 0x375981f086e8cb4ef19fc188, limb1: 0xbdbe1a3fc397484a93a2b29c, limb2: 0x7a02a3f5fa8210e8f14b2276, - limb3: 0xc67f4b31546be3553dd2985 + limb3: 0xc67f4b31546be3553dd2985, }, w6: u384 { limb0: 0x600f009107ab2a1da4997be, limb1: 0x69994acdcbfbe38056baf6f5, limb2: 0x11ccdd90a6781a41f22c760f, - limb3: 0x13c5f50c127cb29bc0d17999 + limb3: 0x13c5f50c127cb29bc0d17999, }, w7: u384 { limb0: 0xffe9f03f0aa94835f9525c88, limb1: 0xfdde4a867496327c5043cc57, limb2: 0x3f6144c573c696e50855fc1, - limb3: 0x6b94fcad15ff18a3c2f248f + limb3: 0x6b94fcad15ff18a3c2f248f, }, w8: u384 { limb0: 0x8884346bdd2a3341fc7322cd, limb1: 0x93ab61c19fa719030de7cc2a, limb2: 0xc757ba65e13b170ca901db80, - limb3: 0x100f6a0711ba91a6f1b251b2 + limb3: 0x100f6a0711ba91a6f1b251b2, }, w9: u384 { limb0: 0x12a6e600d76166876d9b3f52, limb1: 0x414068fe6847dd8ebae8539, limb2: 0xa76a533d9740918d76a56dcd, - limb3: 0x5dc91d58b53e3e96acd6def + limb3: 0x5dc91d58b53e3e96acd6def, }, w10: u384 { limb0: 0x718ec50c1dac99c6d874f4e7, limb1: 0x16d6a04ccba7bbefb03d6951, limb2: 0xeb4c2625dd73b31f645168c4, - limb3: 0x6afd115d3d01e4b290b84e5 + limb3: 0x6afd115d3d01e4b290b84e5, }, w11: u384 { limb0: 0x52b5c082cd25730db3a34738, limb1: 0x6967f7eb2ca4e4a712dc0131, limb2: 0x5c5e6c3183d02ccca35ce987, - limb3: 0x757bb566047196e238a8b26 - } + limb3: 0x757bb566047196e238a8b26, + }, }, E12D { w0: u384 { limb0: 0x7c9854d25a3cb0be4d2f40d7, limb1: 0x43fd00e1f4a86259c11e88ef, limb2: 0xe994cfcb5001b763f7901bb1, - limb3: 0x86155b09edadffde4dfbbd7 + limb3: 0x86155b09edadffde4dfbbd7, }, w1: u384 { limb0: 0x304a578df65f91fee6b573c4, limb1: 0xec0472b755f143bbb562ab87, limb2: 0x7277a095088372ca3f0a1d27, - limb3: 0x197e53f43b82cae3374c44d8 + limb3: 0x197e53f43b82cae3374c44d8, }, w2: u384 { limb0: 0xe11977e635d061e6b989c868, limb1: 0x1e500845921807459e23651b, limb2: 0xbec3e77afae83a1c5ea6abfb, - limb3: 0x14e286717a22a735ed2bc0ee + limb3: 0x14e286717a22a735ed2bc0ee, }, w3: u384 { limb0: 0xa1e676b1afa2d9ce1870874d, limb1: 0x7091d51696fde538628c1f6a, limb2: 0x96df8da6c99457376c4a33a9, - limb3: 0x8e98a801b4c9ab4aa5d063f + limb3: 0x8e98a801b4c9ab4aa5d063f, }, w4: u384 { limb0: 0xc02c8f24e55e6d222f17ca30, limb1: 0x76dd4ee9d6b6332479504760, limb2: 0x197e8f329510abb24930400a, - limb3: 0x16a154ff6848bf4bfdb82d9 + limb3: 0x16a154ff6848bf4bfdb82d9, }, w5: u384 { limb0: 0xbba922639ae8bf28d410a19c, limb1: 0x3086e9cd8bb7de09c46ea5d1, limb2: 0x38963f320b7441e9d6a77a5a, - limb3: 0x12abf3a5df31ef34b735b45b + limb3: 0x12abf3a5df31ef34b735b45b, }, w6: u384 { limb0: 0x8a1312c4fa12d188aa5a2fc5, limb1: 0xc1a534c21fe8d43d46d061c4, limb2: 0x19cca041bdb84797c38dd77c, - limb3: 0x90f272bc677afbf4ea47fdb + limb3: 0x90f272bc677afbf4ea47fdb, }, w7: u384 { limb0: 0x742fc53d89d385243fcac586, limb1: 0x9f1522d5dee448f1ea0bd110, limb2: 0xa6e48bd6c1d03e300f33a7be, - limb3: 0x14f218097b54f125db0fa277 + limb3: 0x14f218097b54f125db0fa277, }, w8: u384 { limb0: 0x4e8d1c9d0611bff11b73be65, limb1: 0x1d75932dc0fd9604caeee1db, limb2: 0xc738ab9f0ad9baad911e4207, - limb3: 0x6e45511232a9e5d4095e985 + limb3: 0x6e45511232a9e5d4095e985, }, w9: u384 { limb0: 0xd52cce486c7f42104e9f3b7a, limb1: 0x58b30b3f567ae170e66d8aa9, limb2: 0x5e34ff47bd1c3c1eeda2872d, - limb3: 0xe250f5f3302568adb516219 + limb3: 0xe250f5f3302568adb516219, }, w10: u384 { limb0: 0x7c9a5e6eca301db139ad106, limb1: 0xc2b3cc3e715be6a7efe28f96, limb2: 0xd6d1ca55ddaaf9abf16efb04, - limb3: 0x10c5de68ac532bc3f398aed4 + limb3: 0x10c5de68ac532bc3f398aed4, }, w11: u384 { limb0: 0x5256c2f9aaa56fdfffc2caff, limb1: 0x90c30061f644a4c3d03f5830, limb2: 0x851db2eca15852453ab2d70e, - limb3: 0x201ae57b8bd651a9a211245 - } + limb3: 0x201ae57b8bd651a9a211245, + }, }, E12D { w0: u384 { limb0: 0x107a402a8e5fd3d6694e2491, limb1: 0x2fcd3a87cd5349af3c857428, limb2: 0x5e7694bbf0930a85be56591b, - limb3: 0x7d93547fc3384cad47215e5 + limb3: 0x7d93547fc3384cad47215e5, }, w1: u384 { limb0: 0x2d9484d3a15699a7a1f5cdb8, limb1: 0xf1552b9e00277c8adf417bff, limb2: 0x797fa3b98f9243d4b02d9431, - limb3: 0xee3f7dfe449d9914888e159 + limb3: 0xee3f7dfe449d9914888e159, }, w2: u384 { limb0: 0x8cb567b9cd6c029b00fc4e41, limb1: 0xa86ba8941e760df1c880b78e, limb2: 0xe39f860fa3f881c589990047, - limb3: 0xcd133ff0a3d963a38f16788 + limb3: 0xcd133ff0a3d963a38f16788, }, w3: u384 { limb0: 0x6e71601b16aa6640cfd5d5de, limb1: 0x1e4d16be3edc7039f570f547, limb2: 0xe015353d569f8688f394214f, - limb3: 0x59546e8ca3e361bfa7f3414 + limb3: 0x59546e8ca3e361bfa7f3414, }, w4: u384 { limb0: 0xcba11f8010fcb1b7018d4942, limb1: 0x1936e2410861c27516ef1950, limb2: 0xba1a67208cba4d4c43b6eb14, - limb3: 0xf3d199823dda0ca4ce0f913 + limb3: 0xf3d199823dda0ca4ce0f913, }, w5: u384 { limb0: 0x4141a8ab05e48332c7a97101, limb1: 0xc11b08f6a7ade95596c91b9d, limb2: 0xc60f61f46ada4e329659dad5, - limb3: 0xc713a291ca63d714b43b773 + limb3: 0xc713a291ca63d714b43b773, }, w6: u384 { limb0: 0xfd82de6406270dbaa131943c, limb1: 0xd30c660ecf76e1ca4ca5df67, limb2: 0x7a3ac1af7f68fe980f73984f, - limb3: 0x51b9df004712c0a919c1021 + limb3: 0x51b9df004712c0a919c1021, }, w7: u384 { limb0: 0xca9fe85418e99c70b24bfbc9, limb1: 0x6c09ab753fa1bd7e5eb72928, limb2: 0x29ac58579f2e59649b78e304, - limb3: 0x19bd14410529841d8976139b + limb3: 0x19bd14410529841d8976139b, }, w8: u384 { limb0: 0x24dbe1d4f02d7ef87c2cb830, limb1: 0x16bd5c02c49e80904866a252, limb2: 0xaf1a9309f3303d6c367356ea, - limb3: 0x1e19bba8cf8459f8f4dfd36 + limb3: 0x1e19bba8cf8459f8f4dfd36, }, w9: u384 { limb0: 0x2d779d40ef68e8d88e174d50, limb1: 0x3e8cddfef78f63c6b4492711, limb2: 0xcc77ab33895f03cb0526a45f, - limb3: 0x125fdd8cf5eb4cbf87136c28 + limb3: 0x125fdd8cf5eb4cbf87136c28, }, w10: u384 { limb0: 0xdc1c3be866980e02cb6c6552, limb1: 0xa95aa3b3e5bd3b4f9e44b20d, limb2: 0xb044b29c621e7b2dad2234c1, - limb3: 0xce6623d2aafe10b6e17cfdf + limb3: 0xce6623d2aafe10b6e17cfdf, }, w11: u384 { limb0: 0x60124efd5e01a25ae6df0508, limb1: 0x721f5b9120ddb48b58c45e92, limb2: 0x1dd4bdf5f24d952ff670777d, - limb3: 0x19f4d3c0a17c210e64fdc0d0 - } + limb3: 0x19f4d3c0a17c210e64fdc0d0, + }, }, E12D { w0: u384 { limb0: 0x840e3de720a4548f1da7be6e, limb1: 0x3ac07781ccebe03234a3c070, limb2: 0x60a15844dc5503c9619d9185, - limb3: 0xabb0efbdafc1bf8dba79909 + limb3: 0xabb0efbdafc1bf8dba79909, }, w1: u384 { limb0: 0x35e738bdafcef08554231156, limb1: 0x152ec5c04b5d82140676dcb, limb2: 0x92b8cdb4123580d2823f3463, - limb3: 0x6c6271bd78c3dc0ad928081 + limb3: 0x6c6271bd78c3dc0ad928081, }, w2: u384 { limb0: 0xc0885cc50b00d5788f6bfe71, limb1: 0xe0e2e4020c8e3d3aad0bb4fc, limb2: 0xa03d4b3f246f40eb91edbd0a, - limb3: 0x2ad754c710d3c5a0a9c8aa7 + limb3: 0x2ad754c710d3c5a0a9c8aa7, }, w3: u384 { limb0: 0x150f44c02d8d2ece9cc20e89, limb1: 0xbe88ea3462b0ac825a3f7683, limb2: 0x392c7bdfbcadea15c9ec3776, - limb3: 0xcf868bdeb3044866e335299 + limb3: 0xcf868bdeb3044866e335299, }, w4: u384 { limb0: 0x5e373df33b60f49f245eeeae, limb1: 0x32ccc0c3ab265f108c87af10, limb2: 0x24b304890cb346fddc8baecb, - limb3: 0xa5602cbb5588e7a5347043 + limb3: 0xa5602cbb5588e7a5347043, }, w5: u384 { limb0: 0x79a45fc3a6b3476edccb39ef, limb1: 0x699737a3f0a37ccbf1351d50, limb2: 0x628e055199d024aaae669c51, - limb3: 0xb7a54344f41ac4806f963c + limb3: 0xb7a54344f41ac4806f963c, }, w6: u384 { limb0: 0x56763ce8241e2e4c4ebbfdf, limb1: 0xc7e7f096be44dfd4045256dc, limb2: 0x59d483ad26bd43de0be0f89b, - limb3: 0x115650afb40f7cc9bfc41d67 + limb3: 0x115650afb40f7cc9bfc41d67, }, w7: u384 { limb0: 0xf761296c383bc157c0dc74d2, limb1: 0xf7ae69719276fa4a8f45a7b1, limb2: 0x9519a049398c825b8591fd3e, - limb3: 0x116c67cb21786e95c1a81a42 + limb3: 0x116c67cb21786e95c1a81a42, }, w8: u384 { limb0: 0xf88348b16f829f538445e4ae, limb1: 0x5c59ddf4cb31896b683c0532, limb2: 0x34a2ed13f5d41b79207f2bb2, - limb3: 0xf05b669ee27d19d64a44624 + limb3: 0xf05b669ee27d19d64a44624, }, w9: u384 { limb0: 0x60c0435be32f160a839128b2, limb1: 0x5da4368729030e6e45435c2, limb2: 0xc3225b269d34d229f0daabe4, - limb3: 0x16bd338ab123444102821db2 + limb3: 0x16bd338ab123444102821db2, }, w10: u384 { limb0: 0xbe99f7a76adf1a39fcd16614, limb1: 0x455ad4d2c342a9150c205cdf, limb2: 0x6c7129df025ad6c248cc3e23, - limb3: 0x117d45dac2232adcc3a58865 + limb3: 0x117d45dac2232adcc3a58865, }, w11: u384 { limb0: 0xe7227b87d84291616d163423, limb1: 0x62f024ba3b1eeea3201b342a, limb2: 0xdba6e933ce41754f118a7c3, - limb3: 0xb03ee9bfce34be38e903aa0 - } + limb3: 0xb03ee9bfce34be38e903aa0, + }, }, E12D { w0: u384 { limb0: 0xacbe4cc978644dd3b66d1251, limb1: 0x8b0827e7f460731253c48669, limb2: 0xce9fb3a4b707ceedf9e4ccd5, - limb3: 0x13601ecdfe890ac5b6394083 + limb3: 0x13601ecdfe890ac5b6394083, }, w1: u384 { limb0: 0xf7595a279ff9c75a51e66dfd, limb1: 0xc142b5880c07598137eae9b6, limb2: 0x7a5bc2021f658c6a85627610, - limb3: 0x132b8e30cfd8515a3df346f7 + limb3: 0x132b8e30cfd8515a3df346f7, }, w2: u384 { limb0: 0xf6ba0f17bd64a508a34ff8cf, limb1: 0x74707c027b3fe929fc806de9, limb2: 0x22d365a315971b9f0c206a82, - limb3: 0x19dbbd0c7f94d1f4ee79356 + limb3: 0x19dbbd0c7f94d1f4ee79356, }, w3: u384 { limb0: 0x3f626447ce3814e02b1ec0d7, limb1: 0x5c8f6f2fcf4e7e35083554c4, limb2: 0x8dbaacc8bf9b1754dfc5c7a, - limb3: 0xb35d9b7d542e11dc9367339 + limb3: 0xb35d9b7d542e11dc9367339, }, w4: u384 { limb0: 0xe625bd4cf03325a6336ecd5d, limb1: 0xc3e56498d973b972df22643, limb2: 0x4da8a81d2cb2053b00ea8fcd, - limb3: 0xa642ca8b89b6a1c4e9877db + limb3: 0xa642ca8b89b6a1c4e9877db, }, w5: u384 { limb0: 0x90a8380dd53bc5b94dbe3c0f, limb1: 0x2903c25cab059c295574f591, limb2: 0xb2377f88137b3e6b90d7ef37, - limb3: 0xb7c1e72e24735bde787a674 + limb3: 0xb7c1e72e24735bde787a674, }, w6: u384 { limb0: 0x4773b12414a16ce9d033310f, limb1: 0x9df89f470a41a445b7748c4e, limb2: 0xa96cdf868e25c1dfa2eae25a, - limb3: 0x160d60066e34bef4bf67e8ba + limb3: 0x160d60066e34bef4bf67e8ba, }, w7: u384 { limb0: 0x97741dddbadcd502d93d1ada, limb1: 0x91f945eb520c5683d7d835be, limb2: 0x3acf7014131ff4db19eab525, - limb3: 0xeefb54325e312a77579cfb4 + limb3: 0xeefb54325e312a77579cfb4, }, w8: u384 { limb0: 0x9d6c29377b2addb30bb07eb6, limb1: 0x99fdbae79fab5cf167aff047, limb2: 0x5ade5a8e1c7b6bc090eab03b, - limb3: 0x11d79b9562108c1f05e613e1 + limb3: 0x11d79b9562108c1f05e613e1, }, w9: u384 { limb0: 0x2a7b85423fcc9846cbd9fe8f, limb1: 0xd29258a1f3d53096b5ef7341, limb2: 0x6962bcbf5cd737335faf272c, - limb3: 0xbcf4003e7213cf0a16d92a8 + limb3: 0xbcf4003e7213cf0a16d92a8, }, w10: u384 { limb0: 0x283fa69586ab328da624f05a, limb1: 0xe538df54e03534989f032f90, limb2: 0x8def2c7d92aeadbb57db8dd5, - limb3: 0x1023a83a0bc5f302bc4918a8 + limb3: 0x1023a83a0bc5f302bc4918a8, }, w11: u384 { limb0: 0xf0dd374565f0c70e62ab7914, limb1: 0xdfb1156b56c464fa271bea64, limb2: 0xfb31d547c72f0e06b7e95d05, - limb3: 0x199fffdc2a5a3333d46c2722 - } + limb3: 0x199fffdc2a5a3333d46c2722, + }, }, E12D { w0: u384 { limb0: 0x8f76261cf238884bdcac039c, limb1: 0xf1a631914c8ee95d8d563038, limb2: 0x7ad15fcf82a1de05d7ca78c4, - limb3: 0x17d503bf7c0186f31fb87cac + limb3: 0x17d503bf7c0186f31fb87cac, }, w1: u384 { limb0: 0x12c73d43b1d6e5e93cffbda9, limb1: 0xc8f8aebf2cdb43903aaf1fa8, limb2: 0x5f1bb59cf75e973628df5a3c, - limb3: 0x133637214037ed72a089671b + limb3: 0x133637214037ed72a089671b, }, w2: u384 { limb0: 0x99b289b7c895e0389505ae3e, limb1: 0x807d96bb7abc61490b0b2ae9, limb2: 0xe901e5c6b224704f999bc014, - limb3: 0xb1762e3a5ab01513e934471 + limb3: 0xb1762e3a5ab01513e934471, }, w3: u384 { limb0: 0xc2991401ebd01d353eff0e10, limb1: 0x3f78a46de2ae77e99130d6c4, limb2: 0xe8076c850bd55b9dc399ef14, - limb3: 0x1959a68b64e006097eedd9ca + limb3: 0x1959a68b64e006097eedd9ca, }, w4: u384 { limb0: 0x31f962a10ef81a0e881e9412, limb1: 0xed29acc9384952f5e68bda38, limb2: 0x5ad6682fe35e6be9e495e035, - limb3: 0x53290025191e515d71e6a4f + limb3: 0x53290025191e515d71e6a4f, }, w5: u384 { limb0: 0x1826298b7042b45f2484b705, limb1: 0xf7754a63c6f36ead9c0722a6, limb2: 0x3e19ea5d2569e83b367df44e, - limb3: 0x117cde4851820ba5a6d323a7 + limb3: 0x117cde4851820ba5a6d323a7, }, w6: u384 { limb0: 0xb2c4b66f8d495051b1e92716, limb1: 0xebf594dc49b44c3275b03925, limb2: 0x3e1e370a07e830d358d9d527, - limb3: 0x17f0f608ef7e255a7740e438 + limb3: 0x17f0f608ef7e255a7740e438, }, w7: u384 { limb0: 0xf7eb9970e3d485405ed26e6f, limb1: 0x55504e6108e307d4c105fb01, limb2: 0x37e5a48b0089379bc4d3a960, - limb3: 0x15542f45dbe73bde5df32e74 + limb3: 0x15542f45dbe73bde5df32e74, }, w8: u384 { limb0: 0xfc2e20fbd6973e5782d582f7, limb1: 0xb0d924870a4c93a0ee8de35d, limb2: 0x554637f24083718a82311c10, - limb3: 0x12764367f85796814078b42 + limb3: 0x12764367f85796814078b42, }, w9: u384 { limb0: 0x8fd5bd83ed527a4d26c45fe3, limb1: 0x43b7d218d10ff081da67bf2b, limb2: 0xf9fc937c157ca5ee08088e73, - limb3: 0x119362054157e7dc5658fc69 + limb3: 0x119362054157e7dc5658fc69, }, w10: u384 { limb0: 0xcd2d08d72116be874d6ee56d, limb1: 0x77c4f1eefb4d35ef0221d5b0, limb2: 0xacf3b9162ffc9c289bbf6928, - limb3: 0x2e08e8400c38ac22655b3d3 + limb3: 0x2e08e8400c38ac22655b3d3, }, w11: u384 { limb0: 0xf4d15b649f3d55ead568462e, limb1: 0xb567200eda805f6453c250d7, limb2: 0x7be6abfce3538971d5c5f487, - limb3: 0x9d5f5b42216ceaf147ac21a - } + limb3: 0x9d5f5b42216ceaf147ac21a, + }, }, E12D { w0: u384 { limb0: 0xd347ed30451ff201af63eeca, limb1: 0xad5110b2aeba89322b006323, limb2: 0xf82434189453d69149a0c0a6, - limb3: 0x80326dc5e35502bbce7ac6c + limb3: 0x80326dc5e35502bbce7ac6c, }, w1: u384 { limb0: 0xc83c82247fb95b58a4ee3810, limb1: 0x31a8674c7e68d35d98762cae, limb2: 0x9cfbb7fec0c26829164628ce, - limb3: 0x16bbaaedd62985c32f4e076 + limb3: 0x16bbaaedd62985c32f4e076, }, w2: u384 { limb0: 0x2fa6372a48bfbaadfa13763e, limb1: 0x5e40bda6de39b49e34b6cddb, limb2: 0x112c3d354dca6adf2dca4bbd, - limb3: 0x31f3d996a2adee764770117 + limb3: 0x31f3d996a2adee764770117, }, w3: u384 { limb0: 0xff3ed33234b352e29be10777, limb1: 0xa48ea598a7173580b764c4b2, limb2: 0x4f673c656ed817dd15a35331, - limb3: 0x2789ee0833b95e2a631106b + limb3: 0x2789ee0833b95e2a631106b, }, w4: u384 { limb0: 0x9ac4d1b96cb51db76fdbee0b, limb1: 0x803a0ddd0255fcf6dab7617c, limb2: 0xd6b0af076d77742457695aff, - limb3: 0x43761452a76341901155087 + limb3: 0x43761452a76341901155087, }, w5: u384 { limb0: 0xbe44dbd432d048dd243c8bc3, limb1: 0x98d9d4bdc6a8954684fcdf2d, limb2: 0xcfba6c2b4124b837319047eb, - limb3: 0x8a9e73497aafaafe182bc19 + limb3: 0x8a9e73497aafaafe182bc19, }, w6: u384 { limb0: 0x8a3b064f566cf7a95dbe7548, limb1: 0x3a7f64c477a6e83e434ce861, limb2: 0x9ba7cae92f44149908673e10, - limb3: 0x45103051f125fedb866d95b + limb3: 0x45103051f125fedb866d95b, }, w7: u384 { limb0: 0x5ee818e7234e7272ec07f3d1, limb1: 0xdd4bc27187a7d422aa6df86c, limb2: 0xcbb7f78d9fe849c55f5caf73, - limb3: 0x1862b91a119174f1c7aff149 + limb3: 0x1862b91a119174f1c7aff149, }, w8: u384 { limb0: 0xd08c79a7c7850cbda627d11c, limb1: 0x9d4f4f86dbf4a4ac0d4606f2, limb2: 0xd464fb70944a1feb5e7f92f0, - limb3: 0xd5b0522da04c9aeca0608e6 + limb3: 0xd5b0522da04c9aeca0608e6, }, w9: u384 { limb0: 0x3dbd70f614fc2d3eb4edbcb8, limb1: 0xcc386604b029681e5d5de15a, limb2: 0xa03d1c9d026d090768bf5861, - limb3: 0x55ff5a76816f6d652fd986a + limb3: 0x55ff5a76816f6d652fd986a, }, w10: u384 { limb0: 0x9d633d1f35aea7549904415e, limb1: 0xb6d0d361ca6497edc9faa721, limb2: 0x6d5289bb547465b3be8c6ad9, - limb3: 0x985850e8cd4013c4b6d95cc + limb3: 0x985850e8cd4013c4b6d95cc, }, w11: u384 { limb0: 0x7cb50dc102dcb28e77742892, limb1: 0xe2437d8286205ad782d6b72e, limb2: 0xda1f62195f31b4783bab661d, - limb3: 0x15ecca5677df076e39049bb8 - } + limb3: 0x15ecca5677df076e39049bb8, + }, }, E12D { w0: u384 { limb0: 0x9d72d5db64cb7507239422e0, limb1: 0x264e7e57b7260676a8bb7688, limb2: 0x7344113fcc925f1d30d06dcb, - limb3: 0x18de0ecba8fd3371b8aa34ca + limb3: 0x18de0ecba8fd3371b8aa34ca, }, w1: u384 { limb0: 0x1861183cc4b2f46d87979e5c, limb1: 0x6e0a01a25c6ebaf9464e11e, limb2: 0x7f2de4bc5dd520e1c25ddd85, - limb3: 0xe800e85c928ae4a62b295f1 + limb3: 0xe800e85c928ae4a62b295f1, }, w2: u384 { limb0: 0x947b7670a81523ba7d89ed92, limb1: 0x14b12adacd332e3d09706640, limb2: 0x11e97f9c6bc126a2f82ea1e6, - limb3: 0x10624939def344ec8c1b3cf4 + limb3: 0x10624939def344ec8c1b3cf4, }, w3: u384 { limb0: 0x3b6a7bcdd62aecc44c37866d, limb1: 0x4f090d678ea45519842d182d, limb2: 0xcebc7bf7f3c10bfd2e6639e9, - limb3: 0x1631faf829d85ac9c61de59f + limb3: 0x1631faf829d85ac9c61de59f, }, w4: u384 { limb0: 0x559cd524045548ae86151607, limb1: 0x6e006893ba4aa3699195e31e, limb2: 0xdc1c446eeecc785b43fb9a22, - limb3: 0x123202194c62a4c9baccb009 + limb3: 0x123202194c62a4c9baccb009, }, w5: u384 { limb0: 0x11fcaa3dba1a600b6010182f, limb1: 0xf01f5f9fdeb3c498d7b7cb06, limb2: 0x882cc64b2d18415e180078fa, - limb3: 0x8b267ee888fef3cd7927dfb + limb3: 0x8b267ee888fef3cd7927dfb, }, w6: u384 { limb0: 0xd6b28085df279d9394b5a7fa, limb1: 0x763cd39e04067be6fdf56c8, limb2: 0xe6dc2b118d1a64282a465791, - limb3: 0xf5493b733d5896bc5700fd3 + limb3: 0xf5493b733d5896bc5700fd3, }, w7: u384 { limb0: 0x90a1f465c6e97bcd81222eee, limb1: 0x7149530fb2e4319be2323f28, limb2: 0xc88a2ea7d5e7ff07ca2ad206, - limb3: 0x162bb34dcd7e91a975c63630 + limb3: 0x162bb34dcd7e91a975c63630, }, w8: u384 { limb0: 0x170a35595a61d913f682b57c, limb1: 0xf2c9e682be5246c93b4e6ec3, limb2: 0x2bf4029c422908fa4563de, - limb3: 0x641187d200dfd28e8e82aa4 + limb3: 0x641187d200dfd28e8e82aa4, }, w9: u384 { limb0: 0x6fa76ba0131b78d2942cadad, limb1: 0x3bb0f673c1a7b42445c6acb0, limb2: 0x60a06dde4ec45da8ec121095, - limb3: 0x20100c6e96666951b26138c + limb3: 0x20100c6e96666951b26138c, }, w10: u384 { limb0: 0xf0b483b7fa8c7e7af338816b, limb1: 0x56d359ad26375fcae41714a3, limb2: 0x873b27b4fa0b116a18158d0c, - limb3: 0x12e72267a31cafa207dd8dbc + limb3: 0x12e72267a31cafa207dd8dbc, }, w11: u384 { limb0: 0x77cdf664971600615baaec2c, limb1: 0x26bf00719aa6690f5b19075, limb2: 0xdc51ab3277d503c215650c3e, - limb3: 0xc0f9441d20276e0db93c8e5 - } + limb3: 0xc0f9441d20276e0db93c8e5, + }, }, E12D { w0: u384 { limb0: 0x49b8bc0bba1b3b3e63506f5f, limb1: 0x69ae08affd3b257cc0d8bdc, limb2: 0x721d9ad5b76a8ba8f139dd3a, - limb3: 0xf8ac0fbc40271dc9a22eff8 + limb3: 0xf8ac0fbc40271dc9a22eff8, }, w1: u384 { limb0: 0xe9e8035fd0a006b598845454, limb1: 0xdcc25fc32ad1942d93a350ee, limb2: 0xfd77a0ec6e37dc33615964d1, - limb3: 0xb75169082563e4c6f1be90 + limb3: 0xb75169082563e4c6f1be90, }, w2: u384 { limb0: 0xefd32d50a707ddbd100ee51b, limb1: 0x810cdffcb09eae39f48aa1e1, limb2: 0xa18a7cf96101b979a65ff7bb, - limb3: 0x6cd39500720118321f2738a + limb3: 0x6cd39500720118321f2738a, }, w3: u384 { limb0: 0x26986ba695a566d0262b9ee7, limb1: 0xaab9e0bdc5aed6c48fa8efda, limb2: 0x72f6704bebcf7ac9af380ed6, - limb3: 0xe16ceb416196f23bc2560a1 + limb3: 0xe16ceb416196f23bc2560a1, }, w4: u384 { limb0: 0x7762c889e40661d695e0dffc, limb1: 0xb8bc925ae8124f3b8c369b23, limb2: 0xb522ccf634c91621e1559f97, - limb3: 0x5bacf21780b28756242dcc3 + limb3: 0x5bacf21780b28756242dcc3, }, w5: u384 { limb0: 0xf90a60c0d778d09b834b48c3, limb1: 0x3c87554e9260971b487713e2, limb2: 0x71220ad4dba9858bfc12ccac, - limb3: 0x16db742f5078344568720d98 + limb3: 0x16db742f5078344568720d98, }, w6: u384 { limb0: 0x485a9dcceae19bdbf2dc0cfc, limb1: 0x8e2f65401be2d31c093c53c, limb2: 0x8238a47a96eb2cde2677e2b0, - limb3: 0x6039568233497b9222dfbf5 + limb3: 0x6039568233497b9222dfbf5, }, w7: u384 { limb0: 0x6f64078fdd7a425f4436d862, limb1: 0x64d28a2586ab1e7f2bf280f4, limb2: 0x1f66c4e09e8145a306b09bea, - limb3: 0x813c1ecd8822f2944b930ae + limb3: 0x813c1ecd8822f2944b930ae, }, w8: u384 { limb0: 0x4060ce7fd6ea39ae7a74236c, limb1: 0xd45a1c125ec3bc1614862318, limb2: 0xa88ab4b47d71797470a4ca95, - limb3: 0x68574f8aed261828f2ba0a2 + limb3: 0x68574f8aed261828f2ba0a2, }, w9: u384 { limb0: 0xc994b57f3410a4503912f0db, limb1: 0x76871514e839d62296d23629, limb2: 0x2fde71411b384900f656ab6c, - limb3: 0xdeebb1943725d48b9cdc7cb + limb3: 0xdeebb1943725d48b9cdc7cb, }, w10: u384 { limb0: 0xf3ef74f709c6cb45c21cd12e, limb1: 0xd720f3876bdd542b86eeeb58, limb2: 0xb85aea0cd816c09909b4d88c, - limb3: 0xa3ce54f3ee833e0bae2cb1c + limb3: 0xa3ce54f3ee833e0bae2cb1c, }, w11: u384 { limb0: 0xf8c6ec38f3b7f955775e2832, limb1: 0x716a5e0f39967a70c5bd78be, limb2: 0x61f2e36cf96f821d6a3287d1, - limb3: 0xf19ea07493d608bae66bea0 - } + limb3: 0xf19ea07493d608bae66bea0, + }, }, E12D { w0: u384 { limb0: 0x83b19eadcea71010d1565cfa, limb1: 0x4825e294172616ab26e7eb20, limb2: 0x54d4259a351535c9cbd1c6a4, - limb3: 0x241d155f21449ca4b5addf7 + limb3: 0x241d155f21449ca4b5addf7, }, w1: u384 { limb0: 0xde3e245c2756d991ab554365, limb1: 0xded567d010568eb5ba3ce705, limb2: 0x327429176a50f14bdc580858, - limb3: 0x156807de27314670790e7ca0 + limb3: 0x156807de27314670790e7ca0, }, w2: u384 { limb0: 0x66bb95d7a4d98dfc50ec8fb1, limb1: 0xc3c8058f329d30723233d845, limb2: 0xd30b40aaa7eebcb481e5f715, - limb3: 0x6af8fbe105e0796a8e398ed + limb3: 0x6af8fbe105e0796a8e398ed, }, w3: u384 { limb0: 0xa940b949eb2388785b224608, limb1: 0x1cec59486fc6a5cd144a91de, limb2: 0x11402b75ed1bcd6cd14590ec, - limb3: 0x7f1086112d77b89f7582269 + limb3: 0x7f1086112d77b89f7582269, }, w4: u384 { limb0: 0x8f257f0a1e6796e78b8f951e, limb1: 0x48f84ddb963cadbfe5e55521, limb2: 0x6e427ce34296e0997e34bb67, - limb3: 0x1358d67c804b33fcd6dccd26 + limb3: 0x1358d67c804b33fcd6dccd26, }, w5: u384 { limb0: 0xf29a7dc92df446d59d0ae4e5, limb1: 0x823d3505088601b6a6610c21, limb2: 0xec67638c41976d4b1caf835e, - limb3: 0x15c8e64bbf555ac7f232789 + limb3: 0x15c8e64bbf555ac7f232789, }, w6: u384 { limb0: 0x658317131159794cfb897b2a, limb1: 0x3efb5096028939e901d050eb, limb2: 0xb364141abe4f342b2d342e4c, - limb3: 0x697dece994d9f1cfd79f309 + limb3: 0x697dece994d9f1cfd79f309, }, w7: u384 { limb0: 0xaadcb5f26d03fad4f28df12c, limb1: 0x492f0e081e52c8c88fce9f44, limb2: 0x29717b344f24a9ce5704183b, - limb3: 0x77175c6d4b377dbafe0e4fe + limb3: 0x77175c6d4b377dbafe0e4fe, }, w8: u384 { limb0: 0xea668960f018818ab2dc143e, limb1: 0xd1b189a93d737c7c9df377b2, limb2: 0xc326f49a444ae09fe755412b, - limb3: 0x9347fcd49e2293efb0a78de + limb3: 0x9347fcd49e2293efb0a78de, }, w9: u384 { limb0: 0x17514b18815a49976674c5f2, limb1: 0xeadf8c7afaddb62cb39d0e85, limb2: 0xb3bad6f772ce35db00653f13, - limb3: 0x17fd638fda925abc9867be18 + limb3: 0x17fd638fda925abc9867be18, }, w10: u384 { limb0: 0x824d407e1486549861a4f9b1, limb1: 0xd708e8188307765b7e7b5c71, limb2: 0xb458d64fdc3cfcae7d504007, - limb3: 0x11376135f9107c7d85f2d49a + limb3: 0x11376135f9107c7d85f2d49a, }, w11: u384 { limb0: 0xdd930da650b850fd475ab204, limb1: 0x6d1c787f7452a96d6fe58ed2, limb2: 0x77fc37156b99d375a7d16ca6, - limb3: 0x2c52abc9192f9453d49eab3 - } + limb3: 0x2c52abc9192f9453d49eab3, + }, }, E12D { w0: u384 { limb0: 0xa1f4bb4ceda1931c829fab23, limb1: 0x804ffc41249665a2790a0228, limb2: 0x1de01e71f91960ccaf6c410c, - limb3: 0x81b2c2ac7a57744e8e9b410 + limb3: 0x81b2c2ac7a57744e8e9b410, }, w1: u384 { limb0: 0x130433d5494eebebcfd9df94, limb1: 0x99364cbac719f5f41ddfa380, limb2: 0x3f29270ecf71851f43731a20, - limb3: 0x1145c70e232f053297295621 + limb3: 0x1145c70e232f053297295621, }, w2: u384 { limb0: 0xec442113c386176b32efde95, limb1: 0x7bd862d3003678d9531d9c1e, limb2: 0xfc594d12f8c8b42b2e4d6b90, - limb3: 0xeeb75363b656d3ec3fa9b09 + limb3: 0xeeb75363b656d3ec3fa9b09, }, w3: u384 { limb0: 0x222852bc2d918bd1ac5f63f, limb1: 0xfe7d5faeb604de77c643a175, limb2: 0xc65d389008dc614c33e685b9, - limb3: 0x180b7b07d9590c95ef7c4d32 + limb3: 0x180b7b07d9590c95ef7c4d32, }, w4: u384 { limb0: 0x970068a4b9eec3828487ea39, limb1: 0xd9327df1470019283e338516, limb2: 0x5952d080bc8bc07c9a246b5f, - limb3: 0x188de0056afd14bfc26980e5 + limb3: 0x188de0056afd14bfc26980e5, }, w5: u384 { limb0: 0x1f95997064e7188584c76d47, limb1: 0xba3e7e6239cb59b9630224f1, limb2: 0xd02ab63f0952c3a26ac56788, - limb3: 0x6c3f71d101f157a0eb5e8c3 + limb3: 0x6c3f71d101f157a0eb5e8c3, }, w6: u384 { limb0: 0xcf705d3f30333b45aeb056b0, limb1: 0x3ded81674542b511276368b0, limb2: 0x1a953a0af3d55e115c95e424, - limb3: 0x12c2bb84d66b242ac047d7a9 + limb3: 0x12c2bb84d66b242ac047d7a9, }, w7: u384 { limb0: 0x1d84fb17c565be3824c9eb81, limb1: 0x983f3cef4c3580414e1c63d8, limb2: 0xc6f813385e3fce4ae1a9f4c7, - limb3: 0x175fdf9433765408fdfc601a + limb3: 0x175fdf9433765408fdfc601a, }, w8: u384 { limb0: 0x6c61ac267d1db760fbeaf92f, limb1: 0x20b3d2e50bab22ff0da90069, limb2: 0x54860d69bdb67b696fced45c, - limb3: 0x15f95850b768b8a0f63b96d5 + limb3: 0x15f95850b768b8a0f63b96d5, }, w9: u384 { limb0: 0x3fa62e0c86ad1d63fbae241f, limb1: 0xb30f2dea012c94c9c26d22f, limb2: 0x61befc67d0413374617f46f8, - limb3: 0x4078076119540c4a20693eb + limb3: 0x4078076119540c4a20693eb, }, w10: u384 { limb0: 0x25e4fe7a019eedeaa28ff1b, limb1: 0x9324c0e779bd0c9fcd27f7e8, limb2: 0x24d326b0d8a8c42d982f21c1, - limb3: 0xdfcf7aef0bf4098ae68b1cd + limb3: 0xdfcf7aef0bf4098ae68b1cd, }, w11: u384 { limb0: 0xfe63a0539935bee31d38ec22, limb1: 0xd033b49fee05e4d97bd6842c, limb2: 0x78d04ec2b510789e14ee988f, - limb3: 0x17aba0964ab1ddcdf413639a - } + limb3: 0x17aba0964ab1ddcdf413639a, + }, }, E12D { w0: u384 { limb0: 0x278d77a81d602afd5a52947, limb1: 0xcb5c30044228bb45093b0d90, limb2: 0x8e471498d8a8be03dade312b, - limb3: 0x19beee76172ad8aa02dbf3dc + limb3: 0x19beee76172ad8aa02dbf3dc, }, w1: u384 { limb0: 0x7c77ce05c4c305a7dc0e5b4d, limb1: 0x7bd3f5e81744c8fbff1e9d10, limb2: 0x30ea7f32e968b9454c93c8ca, - limb3: 0x13642c30cde1dbf6af429fd5 + limb3: 0x13642c30cde1dbf6af429fd5, }, w2: u384 { limb0: 0x595b8c57681cead9648c7acb, limb1: 0x689d10dae2cc8e703e53a0e, limb2: 0x29ae6fb08dc277565e3505c9, - limb3: 0xcf96b5bf70d0ccc001f3322 + limb3: 0xcf96b5bf70d0ccc001f3322, }, w3: u384 { limb0: 0xd1b554ed5518219199f34526, limb1: 0x26ac3af216434fe1ed48aa17, limb2: 0xc07d051d9daf7c6e095e8aa3, - limb3: 0xd6c203b2d9e77cc0cd40bb1 + limb3: 0xd6c203b2d9e77cc0cd40bb1, }, w4: u384 { limb0: 0xab65021306a36284149c06e7, limb1: 0x4e3f42db62b95d309ced3670, limb2: 0x76fb0b0b7954df85d0d8c050, - limb3: 0x5101d7e82eade26493678b6 + limb3: 0x5101d7e82eade26493678b6, }, w5: u384 { limb0: 0x7a6b2765b8a9ccbaaad5c828, limb1: 0x7f4e8febb620ef2bc2d7a407, limb2: 0xd30c4bf4b5860ebfbf7e3b9d, - limb3: 0x14d20e5825a0cf0631c843de + limb3: 0x14d20e5825a0cf0631c843de, }, w6: u384 { limb0: 0x84f1594b851f0ddca968e8c5, limb1: 0x3a6491a30f5721041f7581c6, limb2: 0x9169d487e761ae399b754ba9, - limb3: 0x530b8c30d14555dddbf8776 + limb3: 0x530b8c30d14555dddbf8776, }, w7: u384 { limb0: 0x57ad58f9bd5592d446a6b748, limb1: 0x135c76ec36e730bf679e1619, limb2: 0x549cc33448758c73223137e8, - limb3: 0x55d3b3769b18c8c17597c38 + limb3: 0x55d3b3769b18c8c17597c38, }, w8: u384 { limb0: 0xcb42d1d43cdf605892d0b23e, limb1: 0x2197b1bc85e160f4865d08ef, limb2: 0x37c01be0fe47d2cce9adbb3e, - limb3: 0x1553b94e1939110d4b99fc57 + limb3: 0x1553b94e1939110d4b99fc57, }, w9: u384 { limb0: 0x6fbad2a03ba0aa5de69f43d3, limb1: 0x765a3a8b3a2f959e767ed7e9, limb2: 0x4316e351dc01ca2da29b0710, - limb3: 0x8183e742bf50ac5b25c5617 + limb3: 0x8183e742bf50ac5b25c5617, }, w10: u384 { limb0: 0xae282d2b795b5314b7f53f0d, limb1: 0x7a64af990d741c0fe71b0b64, limb2: 0x4fecda665a2e9c0826568d87, - limb3: 0x914cd3723446a757562b82a + limb3: 0x914cd3723446a757562b82a, }, w11: u384 { limb0: 0xdb326552a864fae27e34e3c0, limb1: 0xbfd09d5d1e29af9e9d992c5b, limb2: 0xd6d7663d363167d6317a28f6, - limb3: 0xe66725a5996b856981dbff3 - } + limb3: 0xe66725a5996b856981dbff3, + }, }, E12D { w0: u384 { limb0: 0x925f1548a2586b3c83acb844, limb1: 0x353b125c82d3547bb22e873e, limb2: 0x66e1c1174e42b65d840ce5a4, - limb3: 0x16fbfde31f733d31881cdfff + limb3: 0x16fbfde31f733d31881cdfff, }, w1: u384 { limb0: 0xf48a04b2ecb65b0ec1ee74a7, limb1: 0xd3ce0c326344e634d721fb34, limb2: 0xa30496b2da7fb2ea97b754d9, - limb3: 0x107d126f58ec9e97c6cc8e71 + limb3: 0x107d126f58ec9e97c6cc8e71, }, w2: u384 { limb0: 0xd2ffb5a8958fd358b9a0db9b, limb1: 0x402808c39b52369ae59fd83a, limb2: 0x3fe0960e8aa72beb2fa961d9, - limb3: 0x166dc226ccb9eff556343907 + limb3: 0x166dc226ccb9eff556343907, }, w3: u384 { limb0: 0x8df0689b8854be488ecb991, limb1: 0x4795a4cc43a8d4530c1ad931, limb2: 0xb3bc8527ab33e10f80cfde20, - limb3: 0xba7ae8be240e9d11a287d8b + limb3: 0xba7ae8be240e9d11a287d8b, }, w4: u384 { limb0: 0x7f368c6c241b048fb218dbb8, limb1: 0xa2476498a10081bfa027924e, limb2: 0x56b88e4492e6f0c99fa165f0, - limb3: 0x18a38fa4ee9f26ba78fec53c + limb3: 0x18a38fa4ee9f26ba78fec53c, }, w5: u384 { limb0: 0xe98903321b25313c95f003dc, limb1: 0x31f82952f9329bd9368402e7, limb2: 0x54ae4abaa3d2432318e04599, - limb3: 0x128f6b10489dc4631361966f + limb3: 0x128f6b10489dc4631361966f, }, w6: u384 { limb0: 0xd6c9252e840a0651da685774, limb1: 0x20c689e5be6b3d7db49e75c1, limb2: 0x49de02ce0f57209e965aab87, - limb3: 0xb84356ad3a02a7a23840580 + limb3: 0xb84356ad3a02a7a23840580, }, w7: u384 { limb0: 0x4feb2265d9e9cfe5347bcdef, limb1: 0xdbf93707cc036c505a681a7f, limb2: 0x991dae2fc5278d2e4c49b442, - limb3: 0x581e622fe997190ffcaff05 + limb3: 0x581e622fe997190ffcaff05, }, w8: u384 { limb0: 0x4fed4adee961344d7de4ce04, limb1: 0xa2179aa116019af6aab8119, limb2: 0x390cfa09d93c9cf5d45a6f51, - limb3: 0x301f95a1cad02ce95b9e7f4 + limb3: 0x301f95a1cad02ce95b9e7f4, }, w9: u384 { limb0: 0x839f077e7f1268f3969297a, limb1: 0xc6678bdf10aac686ea78af9e, limb2: 0xbded8a9b29e5e041ebcc7d56, - limb3: 0x16f210725bf2a00ce33bb7ad + limb3: 0x16f210725bf2a00ce33bb7ad, }, w10: u384 { limb0: 0xa0b68df81c8f7dce35651343, limb1: 0x948b8def6ecf0f2c1235607b, limb2: 0x9cacf2c2c4cebabc980ba63c, - limb3: 0x88eb934296e671e6ca4b0bd + limb3: 0x88eb934296e671e6ca4b0bd, }, w11: u384 { limb0: 0x5d277be91e70605270b0736c, limb1: 0x31a5c600c967c11668a20a8e, limb2: 0x8ca866246a7e7d273c67c89c, - limb3: 0x1717a1fd9cd5ec3784a48c7e - } + limb3: 0x1717a1fd9cd5ec3784a48c7e, + }, }, E12D { w0: u384 { limb0: 0xc0cf5bb3ddf86547fe00b03f, limb1: 0x261d5fdf16216b0b5b2fd0af, limb2: 0x5090c7ece64dea3b6ef1fe9c, - limb3: 0x127241b7afea2d881250e65 + limb3: 0x127241b7afea2d881250e65, }, w1: u384 { limb0: 0x6e263d81f4a3f1c877c39333, limb1: 0x1410d9bf499e755eea959c02, limb2: 0x6ae0b4fa4bdabd77d6114c95, - limb3: 0x18b34ace95b722dd2f0913af + limb3: 0x18b34ace95b722dd2f0913af, }, w2: u384 { limb0: 0x9e798a325b9b9324627d90a7, limb1: 0xe44be7d37275a6b9307a4d70, limb2: 0x60a94c03db1b4341044162b0, - limb3: 0xc5e0af70498faeb66e96c7e + limb3: 0xc5e0af70498faeb66e96c7e, }, w3: u384 { limb0: 0x62c3ec64962f4b5dfd4957e2, limb1: 0x175b2e34bc0b79de8b26e5ac, limb2: 0xd00c44dfe200edc1823d4127, - limb3: 0x1f9c390217fc2eab214ec8f + limb3: 0x1f9c390217fc2eab214ec8f, }, w4: u384 { limb0: 0xca1db3d196ebee4afcb49439, limb1: 0x76c891130d535411b8d13bae, limb2: 0x1346242621dc20c966481630, - limb3: 0x62a4a8737ee4ed122146323 + limb3: 0x62a4a8737ee4ed122146323, }, w5: u384 { limb0: 0xd89259ce24c1bc3c80b4c31b, limb1: 0x6916e85ee261583718b5be9c, limb2: 0x614b567f265ccea1c3bf6c88, - limb3: 0xd63901d756cb9c4f6e4ebf + limb3: 0xd63901d756cb9c4f6e4ebf, }, w6: u384 { limb0: 0x2854083be3f609fb5747a0a4, limb1: 0xf9363f130c8a061ad4454dca, limb2: 0x99fa1036b41a93c9bb5f04a5, - limb3: 0x10be26b58c1e20556bf90eca + limb3: 0x10be26b58c1e20556bf90eca, }, w7: u384 { limb0: 0xcaa7afbc5dd33d0090d478eb, limb1: 0x33bac5729659b2886831c90e, limb2: 0x8c228f55fb3b16a6089cfc9b, - limb3: 0x1425aa18228f951444e69bbe + limb3: 0x1425aa18228f951444e69bbe, }, w8: u384 { limb0: 0xbd8aa0ce83f76fa3d6195952, limb1: 0xa49e1c3f96658b0c6984d0e4, limb2: 0xdfc5f4d167ad19270de11602, - limb3: 0xe8f8eb7f390acecb765644f + limb3: 0xe8f8eb7f390acecb765644f, }, w9: u384 { limb0: 0x7fa94e38426b019637ed329d, limb1: 0x8a030e40d455c8eeb294aee7, limb2: 0x62c6e010ad31dc3e8cdfd551, - limb3: 0x8d9ba6f08f065d3d6b80ab7 + limb3: 0x8d9ba6f08f065d3d6b80ab7, }, w10: u384 { limb0: 0x6b2cb77e359c675839c57ed8, limb1: 0x4ece0febc3fb31c9c799768f, limb2: 0x20e25d25010860a327da0640, - limb3: 0x12eb1699559e1e7b06f3d0b + limb3: 0x12eb1699559e1e7b06f3d0b, }, w11: u384 { limb0: 0x5fcbf346dc790bb6c9e48356, limb1: 0x8e7801394a1a49b06320bbd9, limb2: 0x7ac8d93c05e1831764f8daf5, - limb3: 0x102edca82e8f1857ed209bd - } + limb3: 0x102edca82e8f1857ed209bd, + }, }, E12D { w0: u384 { limb0: 0xb15ad72f4fcb2591d1abc46c, limb1: 0x74d4a9d3481b818b70fdb5eb, limb2: 0xf8210ae9f2b7df0516a267ba, - limb3: 0xd5a2800ca938c6f7c3113fb + limb3: 0xd5a2800ca938c6f7c3113fb, }, w1: u384 { limb0: 0x38b065590c2e60fe7f44767f, limb1: 0x7eecabf14ae695b8a3360ed8, limb2: 0x9985104a902c20936ea57238, - limb3: 0x124695215443652ba7e6cf22 + limb3: 0x124695215443652ba7e6cf22, }, w2: u384 { limb0: 0x1f9841b55fe2c623f1078c67, limb1: 0xb9c8a90b95c1f3344984344d, limb2: 0x2a340ad73875dff79e1352ff, - limb3: 0x18bd138bc116843c32beff0 + limb3: 0x18bd138bc116843c32beff0, }, w3: u384 { limb0: 0x56c68b860cbcfc33006bdf0d, limb1: 0x52813de6808192f9b0c7811b, limb2: 0x4fc72a2832a54a2c1377aef, - limb3: 0xc240bb809dfa30523851f3 + limb3: 0xc240bb809dfa30523851f3, }, w4: u384 { limb0: 0xaf85594768f62ada3aff44ff, limb1: 0xff3854a044fc5e69851ba430, limb2: 0xb47e8573d120728f31c90440, - limb3: 0xcaf2c186c804f855cfa2c4d + limb3: 0xcaf2c186c804f855cfa2c4d, }, w5: u384 { limb0: 0x4e380f88b214dbbab34dbebb, limb1: 0xa77d375a8f3582d99d8e771c, limb2: 0x7ff0478d6f4c30522d5cf061, - limb3: 0xeda4fddf15c6de3928a7494 + limb3: 0xeda4fddf15c6de3928a7494, }, w6: u384 { limb0: 0x53c092ef68bc25c37d25fe15, limb1: 0x3fd91dbc6dc8c4ce23ddfec8, limb2: 0x2f533a2c53b9bc59f7da808b, - limb3: 0x54ea204f43fc3cc511e2771 + limb3: 0x54ea204f43fc3cc511e2771, }, w7: u384 { limb0: 0x874484b23512d69c64456edc, limb1: 0x4bae99896f81ad7e8b33986f, limb2: 0x315ae13e8f7eef39bb5fc6f3, - limb3: 0x2e3ddb5c86a0d7ffa46ce19 + limb3: 0x2e3ddb5c86a0d7ffa46ce19, }, w8: u384 { limb0: 0x6ec7f3337526ebcca0cd7a9f, limb1: 0xd48463f9f2d1f19c3853fbb8, limb2: 0x7e348340df28aef8d2b5b0d, - limb3: 0x7180eed89e074ef58739ed8 + limb3: 0x7180eed89e074ef58739ed8, }, w9: u384 { limb0: 0xbe6bdfc582a702b560a6e04d, limb1: 0x592fe00300d974cb544bb609, limb2: 0x5585618cce120a0ca8ae3b06, - limb3: 0xd8b2fbd00859855d8059c04 + limb3: 0xd8b2fbd00859855d8059c04, }, w10: u384 { limb0: 0x14bf3cd112d125e4e25a3e65, limb1: 0x811a1021fa6981370e82b3d3, limb2: 0x2458fd0cced7cade1c669de9, - limb3: 0x7c3ff3ae5fd17f6a1ce0359 + limb3: 0x7c3ff3ae5fd17f6a1ce0359, }, w11: u384 { limb0: 0xf1c60ca1b056ed5abf67e04d, limb1: 0xbc819ca227d2d48d19f96458, limb2: 0xb390024831387ab08e67c776, - limb3: 0x5f4a62df64a479d75594956 - } + limb3: 0x5f4a62df64a479d75594956, + }, }, E12D { w0: u384 { limb0: 0xf65ce3527d75962dfe24a3f9, limb1: 0x91e01eaad05aadc43322e7bc, limb2: 0x1749b8efc10800f0117b9ada, - limb3: 0x63f0bc72657931f9c4c0ec6 + limb3: 0x63f0bc72657931f9c4c0ec6, }, w1: u384 { limb0: 0xb0a176acec5241ab58a92fe4, limb1: 0xfff6673048e856befecc052f, limb2: 0x3aabf57172cbeea4e5656e93, - limb3: 0xf8b8f049c1f37ea1b91f865 + limb3: 0xf8b8f049c1f37ea1b91f865, }, w2: u384 { limb0: 0x591f822c01335afd1788ae6c, limb1: 0xacb21dac6272701a054407c5, limb2: 0x27c93a2906618dc8eac1c17, - limb3: 0x135348203e2ab3a8030bab8e + limb3: 0x135348203e2ab3a8030bab8e, }, w3: u384 { limb0: 0x83f8664aa234b6ef1bee1838, limb1: 0xfbe202c883895731f698255b, limb2: 0xb8ab5bee5b71245380d5a22b, - limb3: 0xdd0f12d1fb706b63a83e4f6 + limb3: 0xdd0f12d1fb706b63a83e4f6, }, w4: u384 { limb0: 0x6c00eabfeaa8a1e18d743643, limb1: 0x35082c7740b28bed8c2911c4, limb2: 0x705d87b2509c7563f2f9cd83, - limb3: 0x355565388006efda83748a9 + limb3: 0x355565388006efda83748a9, }, w5: u384 { limb0: 0x721da2148c278de04ea6b48, limb1: 0x1223b5e9df2c7ce207e3cb29, limb2: 0x9fd921169ebea2d627e0e2b4, - limb3: 0xca348e51467605b1891750f + limb3: 0xca348e51467605b1891750f, }, w6: u384 { limb0: 0x567eebe72695309b8b9fa49a, limb1: 0x9b2ed7c13fcd5218178f6c36, limb2: 0x69db0caedd82eb26178db3bb, - limb3: 0x10b37cb311f6f5db3cf04ead + limb3: 0x10b37cb311f6f5db3cf04ead, }, w7: u384 { limb0: 0x1c36184bcddcb3bef030a967, limb1: 0x30f09d8bdcd920ef630b29da, limb2: 0xd99cd4ca8ee16996294d6867, - limb3: 0x14b4ecde21559c315401a904 + limb3: 0x14b4ecde21559c315401a904, }, w8: u384 { limb0: 0xbff20fece07ace4ed15c0801, limb1: 0x8c641efedb23644ab9dac1b6, limb2: 0x65ed2f82940530717a3a8f6, - limb3: 0xd6faee36c1be2a6bd80aad3 + limb3: 0xd6faee36c1be2a6bd80aad3, }, w9: u384 { limb0: 0xa45919c319e86e4c7cf0a9aa, limb1: 0x2c3b3dbcd368facc0fa8a97d, limb2: 0x18bb74bd046abb617241aa0a, - limb3: 0xe6a08b13a47fee0dea5d182 + limb3: 0xe6a08b13a47fee0dea5d182, }, w10: u384 { limb0: 0xad46273f102a1a28b7ea1210, limb1: 0xbd6857d74c142f5b0750a4c, limb2: 0xa179b4418056dce93b5d5ebe, - limb3: 0x8edde64f71a1e7a8d5c256b + limb3: 0x8edde64f71a1e7a8d5c256b, }, w11: u384 { limb0: 0x40c84a2231765e3ccdd1fee2, limb1: 0xe23fa47d96e3019174e1e708, limb2: 0xda247b93ca36f321d7e891a8, - limb3: 0xf3dec99dae8597e09aa6441 - } + limb3: 0xf3dec99dae8597e09aa6441, + }, }, E12D { w0: u384 { limb0: 0x5c071fe7249396da8890e55b, limb1: 0x88bf9396d97ac96c8ca065b9, limb2: 0xaa1bd31d7ac0d0063932745b, - limb3: 0x4f008c1e4e917d1a0388386 + limb3: 0x4f008c1e4e917d1a0388386, }, w1: u384 { limb0: 0xde583cfef9c2b34ea6b3a860, limb1: 0xe79957b07ce9cf7cc9d7b0fd, limb2: 0xf9e5d92728e5fee33eb8a4c8, - limb3: 0x7921cbfbdf11fda5479b251 + limb3: 0x7921cbfbdf11fda5479b251, }, w2: u384 { limb0: 0x7fcb1d0ad133dcac3db9691a, limb1: 0x8b34904f9f4147431e803592, limb2: 0xaa188d2c64f4ffae74679611, - limb3: 0x6311dfa9565d635c03e0855 + limb3: 0x6311dfa9565d635c03e0855, }, w3: u384 { limb0: 0xc6e8d1386e240defd0c8b358, limb1: 0xd916b51af6ef639109f7f064, limb2: 0x84f668ddc480ae7a6282e8bd, - limb3: 0x14514e50d271db4c38f25c17 + limb3: 0x14514e50d271db4c38f25c17, }, w4: u384 { limb0: 0xc05129d365f445bca7481a4c, limb1: 0x732f03651202c5d590aef375, limb2: 0x861a12d79020a018d52dfb3e, - limb3: 0xf5779b069bb04e8aa65b1b0 + limb3: 0xf5779b069bb04e8aa65b1b0, }, w5: u384 { limb0: 0x49e85a71966f4085bb96a561, limb1: 0xa90812c10e7c338efd62e260, limb2: 0xb4dc3c8f6b473eeff051c55, - limb3: 0xf162180ccd92f8be4baba3 + limb3: 0xf162180ccd92f8be4baba3, }, w6: u384 { limb0: 0x1fc53cda9e145b9f2fc0958, limb1: 0xbc91a2f7fe6c04e89954a778, limb2: 0x713a21c6c35bc119e06027c9, - limb3: 0xb945c61f5ef234c3f61368b + limb3: 0xb945c61f5ef234c3f61368b, }, w7: u384 { limb0: 0xfc851571d35721bd06ad24ba, limb1: 0xb0cc8ed633947c99cc26b4bc, limb2: 0xa96709e905b2f0a160cc731, - limb3: 0x13bb465d841c0df6abe9d8e6 + limb3: 0x13bb465d841c0df6abe9d8e6, }, w8: u384 { limb0: 0xf420c15aaa99c651e4dcf96f, limb1: 0x27cf47ecb908e16bb29a5fd, limb2: 0x5c212064d3152d60db688c4, - limb3: 0xf132a5857b7a6c50640125c + limb3: 0xf132a5857b7a6c50640125c, }, w9: u384 { limb0: 0xd596517bf0328136d09b30d, limb1: 0x731fc3434888560bb4aa0036, limb2: 0x89171b1a244c1520a1e52cb7, - limb3: 0x13a4065c684afc1509831b34 + limb3: 0x13a4065c684afc1509831b34, }, w10: u384 { limb0: 0x62b192ba8953068ad2beeb13, limb1: 0xf55df8dc4798f0c1303be1fa, limb2: 0x5586b58227a76995ce18ab1c, - limb3: 0x1765d0dd29b138f1e15317a2 + limb3: 0x1765d0dd29b138f1e15317a2, }, w11: u384 { limb0: 0x194160a75b09ead5c093d1f, limb1: 0x55458b207983cc60044cd893, limb2: 0x2ec1346ee6df706c64efdd21, - limb3: 0x1889fe7577e0886013ee76a3 - } + limb3: 0x1889fe7577e0886013ee76a3, + }, }, E12D { w0: u384 { limb0: 0x83a64d1fbd12b2105fd006de, limb1: 0x1fed0ced58ffc1247b300226, limb2: 0x40c7a77d43046a8dc496e8f7, - limb3: 0x1273d35b2a7041c0c8e09fa9 + limb3: 0x1273d35b2a7041c0c8e09fa9, }, w1: u384 { limb0: 0xd1bc518cb9f97989e4518323, limb1: 0xfda16e1ba8f5eee22baff865, limb2: 0x2282715ec39be7c1d9c05abf, - limb3: 0x14ca6298addcce08172693e7 + limb3: 0x14ca6298addcce08172693e7, }, w2: u384 { limb0: 0x581296f543f611452833a9af, limb1: 0x8f7d57a9ccf015a529c0274f, limb2: 0xf4cec85b20feb49320169086, - limb3: 0x7294cb9fc3914e72a74f677 + limb3: 0x7294cb9fc3914e72a74f677, }, w3: u384 { limb0: 0xa0d1c30484f8d800aa47cf33, limb1: 0x7896af58662828a8134758f5, limb2: 0xf8bf1ed82532b434dd6745f9, - limb3: 0x1480045d9cc01e11e67e1744 + limb3: 0x1480045d9cc01e11e67e1744, }, w4: u384 { limb0: 0xab14069003747ce311deeda8, limb1: 0x46aee3ebf1505f27b11a43d7, limb2: 0x441e3585d1d14f573a862938, - limb3: 0xa693eb56c06023e67761b5c + limb3: 0xa693eb56c06023e67761b5c, }, w5: u384 { limb0: 0x3b5aa1d13ac4ae07439068e1, limb1: 0x6bb8a4c24c1d85a23c028385, limb2: 0x356f653ce96361ec3cb08dd8, - limb3: 0x19470f3488d1b42c710e0403 + limb3: 0x19470f3488d1b42c710e0403, }, w6: u384 { limb0: 0xc6d25ab33b45985888bbb03d, limb1: 0x2026eb4eebc11b2af25c91fe, limb2: 0x84aec238c5ba5499a91244ed, - limb3: 0x16ff44f85dcd5017d4f39ab0 + limb3: 0x16ff44f85dcd5017d4f39ab0, }, w7: u384 { limb0: 0x6357ebc232777ec4f0019a51, limb1: 0xb2cf574426b91619de6260c7, limb2: 0xf3c73b5a7864f2a9e9df5921, - limb3: 0xac8b2e81bf45ba782379164 + limb3: 0xac8b2e81bf45ba782379164, }, w8: u384 { limb0: 0x78111c1a35a4b111e381ee5b, limb1: 0x87cbda1cc35fd4ffab98097f, limb2: 0x3785ba57e275cc071106468c, - limb3: 0x887d372d0e2fe0e53316176 + limb3: 0x887d372d0e2fe0e53316176, }, w9: u384 { limb0: 0x4a426c4f5b404cf8f9058f36, limb1: 0x6f4e2e0c8dca076756efa639, limb2: 0x574294ee9354db253276ffb9, - limb3: 0x16453113da3cd9edc0f268cd + limb3: 0x16453113da3cd9edc0f268cd, }, w10: u384 { limb0: 0x980837e72a53e6da4c4922bd, limb1: 0xb4f32169b47b9f2ab0864b73, limb2: 0x85967069c73e3c636b70e667, - limb3: 0xe5e15629c61068bb9a3bf3 + limb3: 0xe5e15629c61068bb9a3bf3, }, w11: u384 { limb0: 0x6b4e751b6afbfdc1286e2037, limb1: 0x2dceab2a8fec6a14f9f2a926, limb2: 0x67ac3d207965577ee1e47a15, - limb3: 0x16526e02b5ea0131ca58ab70 - } + limb3: 0x16526e02b5ea0131ca58ab70, + }, }, E12D { w0: u384 { limb0: 0x17309de18596c600420fa7f1, limb1: 0x6ecfdc0a3cc31fcaf8050eac, limb2: 0x609fdb67c2d4bbd1da92d235, - limb3: 0x17a9bc9c95045b9efdc7f8db + limb3: 0x17a9bc9c95045b9efdc7f8db, }, w1: u384 { limb0: 0x1c460122fcd6b6ece46d69fe, limb1: 0xcddd726c39b803c9d61e2ff4, limb2: 0xb314bb778d464e80e5137e80, - limb3: 0x15f7cda48b321f00b848ba73 + limb3: 0x15f7cda48b321f00b848ba73, }, w2: u384 { limb0: 0xdc79881f76b18acaeca0693a, limb1: 0x5ced5bc216155207131869a5, limb2: 0x25abd10b17bb130a7edae34, - limb3: 0xdc3c019b632e3991d4a6b8a + limb3: 0xdc3c019b632e3991d4a6b8a, }, w3: u384 { limb0: 0xbfb097d9e966f087325bf903, limb1: 0x3fb4262eebf93492bbe3ff8b, limb2: 0x997195ae28496678b778b068, - limb3: 0xb656130b375669e276ed9f1 + limb3: 0xb656130b375669e276ed9f1, }, w4: u384 { limb0: 0xc537baabbac6f92b3d4c43ee, limb1: 0xeee6011b5932150b96520428, limb2: 0x1632d8218fb9bf323d52bc24, - limb3: 0x1206adf0e4af46155081e668 + limb3: 0x1206adf0e4af46155081e668, }, w5: u384 { limb0: 0xf12a97149fe018fa0dd0605f, limb1: 0x27ce7eaabf9c6f26f66d2e41, limb2: 0x869e24a6417b5fbecfb2ae7c, - limb3: 0x15359c4c6224b1be86a615b0 + limb3: 0x15359c4c6224b1be86a615b0, }, w6: u384 { limb0: 0xc56549e245c6bbf68d09bc30, limb1: 0x90446e06fd1130455ef711ac, limb2: 0x343d611550a4e05dc84d901a, - limb3: 0x198fe7d93aad83e5f503de9f + limb3: 0x198fe7d93aad83e5f503de9f, }, w7: u384 { limb0: 0xb0c7c0f44e04ee29115cb4e8, limb1: 0xd222e0c76f9d55a44b4eaea2, limb2: 0x9ec62b435c34f660f31beca1, - limb3: 0x5b9706e9f1da4dd9d3cc2e5 + limb3: 0x5b9706e9f1da4dd9d3cc2e5, }, w8: u384 { limb0: 0xf05234158a8a37dc15fec48a, limb1: 0x31d75743addea81c0d768a59, limb2: 0x460db2475e22f9cd60b2af15, - limb3: 0x9c8e0f3693a433d950421f2 + limb3: 0x9c8e0f3693a433d950421f2, }, w9: u384 { limb0: 0x17b4ab8ab4d7825f202b8075, limb1: 0x6cb9c1f003024631fa0a9500, limb2: 0xfa9afda884aaff4eb0ff2eee, - limb3: 0x92e1623974d20acee9fa952 + limb3: 0x92e1623974d20acee9fa952, }, w10: u384 { limb0: 0x6c311178704be9f7e65ec330, limb1: 0x432fab41537509fdc218bc65, limb2: 0x12ee9a3189d387cff951a877, - limb3: 0x19a486fdde7a19ec3f4ea4ae + limb3: 0x19a486fdde7a19ec3f4ea4ae, }, w11: u384 { limb0: 0x848acd4e5e19ac8787ce01e, limb1: 0xe23b95c772890cc36eb7edd7, limb2: 0xa78e19bb81ea2fefc9e5ee40, - limb3: 0x98b9fa87c52256357e6ce9d - } + limb3: 0x98b9fa87c52256357e6ce9d, + }, }, E12D { w0: u384 { limb0: 0xb1832e7be4513791a1b5a318, limb1: 0xdab8acfabf82ff15fabe8bde, limb2: 0xd1448ba915158cf8dd685915, - limb3: 0x8a3480406ef8ab208c666da + limb3: 0x8a3480406ef8ab208c666da, }, w1: u384 { limb0: 0x7dc6f41df1fa7200a0e5046, limb1: 0x82afd83d6d865f579b9d987a, limb2: 0x3010fccb8d335ce1762c467c, - limb3: 0x12d4daf068c14b93bf91349a + limb3: 0x12d4daf068c14b93bf91349a, }, w2: u384 { limb0: 0x53b9d0922336710ddf03e6e9, limb1: 0xa2f7a6a8b7ea63dc7d3e5ce8, limb2: 0x2bc0e8f29fedb1969d4e5f70, - limb3: 0x19f8ad2a13f5789efa24f88d + limb3: 0x19f8ad2a13f5789efa24f88d, }, w3: u384 { limb0: 0x7fc2bba69df28a5e59bcf7e2, limb1: 0x93d61d335ab812d0fb5713ef, limb2: 0x86810bcd2b84909a86b9b8c2, - limb3: 0x5c4bd6acfb17dbb0de99e92 + limb3: 0x5c4bd6acfb17dbb0de99e92, }, w4: u384 { limb0: 0xabc6617ab0841c6fdd54cf71, limb1: 0x496bdff2baf9ba636d2800ca, limb2: 0xb46135c83828d48109162fc3, - limb3: 0xbe70db79d790397b600b4a7 + limb3: 0xbe70db79d790397b600b4a7, }, w5: u384 { limb0: 0x3aa09c6a57d7e89443f7196f, limb1: 0xd3c78490ef6a135ba4118eda, limb2: 0xd35cf1052a2161b3d1d9311e, - limb3: 0x3a504798d0df370f6dc9e00 + limb3: 0x3a504798d0df370f6dc9e00, }, w6: u384 { limb0: 0x946105209210749c1ad130ec, limb1: 0xe6944ce1875edfee81ba5ac, limb2: 0xe803f442e26a40d80220321b, - limb3: 0xa69d4ea6d1551c43e86ec33 + limb3: 0xa69d4ea6d1551c43e86ec33, }, w7: u384 { limb0: 0x7725777b6dd3a778505d129, limb1: 0xcf8f223a0ba7f0d56314005, limb2: 0x50b6542d68bb7e41cbac597d, - limb3: 0x6773d995348c78185a125af + limb3: 0x6773d995348c78185a125af, }, w8: u384 { limb0: 0x47dd4b505ece4e63c6a42ab9, limb1: 0x47b66fcf40b4579f8e7dafa8, limb2: 0xe1e00a837a5913248e2bc9ec, - limb3: 0x122e42c9101c0f785e0bf0ac + limb3: 0x122e42c9101c0f785e0bf0ac, }, w9: u384 { limb0: 0x320bc6a9543249df447ca30b, limb1: 0xae128dc852cdae534003d880, limb2: 0x2acf697d73ce229710a1db6f, - limb3: 0x169fa56b9fe0085cd1ec32e7 + limb3: 0x169fa56b9fe0085cd1ec32e7, }, w10: u384 { limb0: 0x9c3dc69b716e4c8b8a63f106, limb1: 0x7b7677044476f901b21ea7b4, limb2: 0x42e2af7bb87210cb120f41a7, - limb3: 0x179117c4bf7aeed19202d38a + limb3: 0x179117c4bf7aeed19202d38a, }, w11: u384 { limb0: 0x578af2d1c50886a02d13c7eb, limb1: 0x1d251a678674e497bfa5141e, limb2: 0xd5efc634d0cb4c7c1807787d, - limb3: 0x60538a49b6f95d8179548d1 - } + limb3: 0x60538a49b6f95d8179548d1, + }, }, E12D { w0: u384 { limb0: 0x14663ec8aaf41e9dac839168, limb1: 0x8320d3931ce0be5febdaa063, limb2: 0xe8a54f2801c82ff94d4af442, - limb3: 0x1537d76fdb6fcc5e66d13c05 + limb3: 0x1537d76fdb6fcc5e66d13c05, }, w1: u384 { limb0: 0xc408aeca0ef982f1d4919f16, limb1: 0xacf15993d11ed9b848098954, limb2: 0xe710b0aeaf54ebc0e4f53ef, - limb3: 0x1172e3f6d60f5b8f8275f3a3 + limb3: 0x1172e3f6d60f5b8f8275f3a3, }, w2: u384 { limb0: 0x807779f90c7ea090ec58037b, limb1: 0xfa1c670f3d46124c0962b69f, limb2: 0x812e66dc9ca6554d3d5fb28e, - limb3: 0xede7d1b272245097eeab0ea + limb3: 0xede7d1b272245097eeab0ea, }, w3: u384 { limb0: 0xfac578f3346be762844bd2ec, limb1: 0x994ad6bbf2b2282021651555, limb2: 0x20bd8715803ee77607e72467, - limb3: 0x7606e734900bc75f36d5948 + limb3: 0x7606e734900bc75f36d5948, }, w4: u384 { limb0: 0xc1ca06dc742aede8e3ed91c5, limb1: 0x71d50ee0f44520e8b6e60d54, limb2: 0xd0e04e25c2746017e5d029b8, - limb3: 0xd44f1471bc3b841396c63ee + limb3: 0xd44f1471bc3b841396c63ee, }, w5: u384 { limb0: 0x8863d4db6f58c06706c68dc, limb1: 0xcd8010d2fe2689df15faab2c, limb2: 0xe0bcfa9b2100aa2f75a3064b, - limb3: 0x198af1ae7a81661000298cf3 + limb3: 0x198af1ae7a81661000298cf3, }, w6: u384 { limb0: 0x584eba278a62b05b865d0046, limb1: 0xfd3905d4620e04d59c9f9db3, limb2: 0xb3a6714f1f875f49e045d5fd, - limb3: 0x109ae235efe54330fbaa8ef9 + limb3: 0x109ae235efe54330fbaa8ef9, }, w7: u384 { limb0: 0x41056d92722bdd9ef745bb95, limb1: 0xa49b528aa11e35ff72e1fde6, limb2: 0x9a18ff2224ff861ac716668c, - limb3: 0x47387893d8d042ea3a4f516 + limb3: 0x47387893d8d042ea3a4f516, }, w8: u384 { limb0: 0x6f24529271fb5203cfe12902, limb1: 0x310663d10c2acea99de8b04, limb2: 0xb5e0fae90872f9a49eaded38, - limb3: 0xd4cdc64cb2b7e85aa244f97 + limb3: 0xd4cdc64cb2b7e85aa244f97, }, w9: u384 { limb0: 0x99ed80f6330c7657ae9b36fa, limb1: 0xb4ecf4f1f9cc32690999e417, limb2: 0xd6a74b7ae48b6f4307720772, - limb3: 0xd55e06f38a04ecb830f50ec + limb3: 0xd55e06f38a04ecb830f50ec, }, w10: u384 { limb0: 0x824deee4997b239c579cdfdf, limb1: 0x64de788297270c01860e025d, limb2: 0x2c570777664a58e9ed48b38e, - limb3: 0x9845b19e98f1ec8238c635f + limb3: 0x9845b19e98f1ec8238c635f, }, w11: u384 { limb0: 0x13e8cac3d7640ddbb717cd3b, limb1: 0x2bb8aa759817d4f5a47fd7b0, limb2: 0xa1d374b7e02465a35189b692, - limb3: 0x351a9dec88d73a12476d425 - } + limb3: 0x351a9dec88d73a12476d425, + }, }, E12D { w0: u384 { limb0: 0xc5619e330db7753690d3e4d7, limb1: 0x47612532deb6199b29ae01f0, limb2: 0x526a20bf47a55f080f9bad08, - limb3: 0xcda6894283305a7ae037814 + limb3: 0xcda6894283305a7ae037814, }, w1: u384 { limb0: 0xd01df400ca021228f79039cf, limb1: 0x5079235d8e615126f16b88a7, limb2: 0x6b29bb389bdfc6cfc202e4df, - limb3: 0x4c469f79ecbf88cf78fba60 + limb3: 0x4c469f79ecbf88cf78fba60, }, w2: u384 { limb0: 0x392c76f20e657cca0412ccd2, limb1: 0x8a03a9b1522a799165f5ce90, limb2: 0x3f1c10daef22f593d0c939e7, - limb3: 0x114680f68ccb81f99a98d2e3 + limb3: 0x114680f68ccb81f99a98d2e3, }, w3: u384 { limb0: 0x1a5d475778ed021bbba71dff, limb1: 0x3c1dcef8127eb06e3d386b6d, limb2: 0xa18b55a60be13efc53be2643, - limb3: 0x430d7536307562e71e3b624 + limb3: 0x430d7536307562e71e3b624, }, w4: u384 { limb0: 0x33b945b9e91a613f214c281d, limb1: 0x5246a0bb4a3b5e88b2a556f7, limb2: 0x76952d20fa901063986b5af1, - limb3: 0x30dc626b4efb4dcf45dda85 + limb3: 0x30dc626b4efb4dcf45dda85, }, w5: u384 { limb0: 0xc91f47f926bf741f50167758, limb1: 0xb283412e7dec1abf2af4b54c, limb2: 0x819210cc10240985a197b6fd, - limb3: 0x148983abd0919160ca75ab3a + limb3: 0x148983abd0919160ca75ab3a, }, w6: u384 { limb0: 0x3ae52b385b8d7ccd1149b186, limb1: 0xc2fdad714d3b4f3b44c34b05, limb2: 0xa2594e80b8a3d876c89a7dd2, - limb3: 0x17e8e95e2e4453a999120f47 + limb3: 0x17e8e95e2e4453a999120f47, }, w7: u384 { limb0: 0x4143d9f9eae7ba680e4ce790, limb1: 0xc6428a7db6bcfe2c09ff2784, limb2: 0xb6c49338a7f200baf9ba7b62, - limb3: 0x110a8b846f24a8e5a48f8df8 + limb3: 0x110a8b846f24a8e5a48f8df8, }, w8: u384 { limb0: 0xec6894f7048d74cc521cfa9e, limb1: 0x7a74baa8349402edd473262e, limb2: 0xa587bd8ba9d0db61105a9bfb, - limb3: 0x1542de51d10ad154d14d1ab1 + limb3: 0x1542de51d10ad154d14d1ab1, }, w9: u384 { limb0: 0x623d3472956a6fd9dfb57f1c, limb1: 0xbc706464f02579b27b176261, limb2: 0x5fbba85d07f3b4037c86332c, - limb3: 0x389948fb6649d454eaafd78 + limb3: 0x389948fb6649d454eaafd78, }, w10: u384 { limb0: 0x3d6160146d3ee8bd841a82d8, limb1: 0xe798a563e2e9319cc47c6e26, limb2: 0x534d22ca0ba24f883387c567, - limb3: 0x8724e1114e6e80541a91631 + limb3: 0x8724e1114e6e80541a91631, }, w11: u384 { limb0: 0x274eb7f12825b047a3a3289c, limb1: 0x64eaa3423e2a707806fe1205, limb2: 0xf84ab17d32acb39a3dd6c673, - limb3: 0x127600c6ca9df9612df7b2e5 - } + limb3: 0x127600c6ca9df9612df7b2e5, + }, }, E12D { w0: u384 { limb0: 0x3796de51981f6024fd06174e, limb1: 0x94d83a402696f8c183f7eaa0, limb2: 0xc9225b2cfd7c3d5c24574a05, - limb3: 0x10c73e67a277a6aae451031d + limb3: 0x10c73e67a277a6aae451031d, }, w1: u384 { limb0: 0xf896b5516da8d004534d0d5e, limb1: 0x13d040c8b2eb76307a8963e2, limb2: 0x4106bcea580d4e5cdbac42fb, - limb3: 0x194bcf981b8ad069b42ef14f + limb3: 0x194bcf981b8ad069b42ef14f, }, w2: u384 { limb0: 0xa01d5085551a704cf0fc81f8, limb1: 0x6f550724287ce9ccd035e27c, limb2: 0x4ff8a38afc93789bc77d11e3, - limb3: 0x15387fd205f34ad531fb7495 + limb3: 0x15387fd205f34ad531fb7495, }, w3: u384 { limb0: 0x2d86600edfa521e03bd1e1c7, limb1: 0x91911144ee37f4bda9841ae8, limb2: 0x7013dc289771aae3049aa557, - limb3: 0x1264774c7cad53e0ce2c2512 + limb3: 0x1264774c7cad53e0ce2c2512, }, w4: u384 { limb0: 0x7b8d55a4e9537ae0138637b9, limb1: 0xaedbff15cf4e9d82355484c4, limb2: 0xfa1e2235cecbef2155df3ba, - limb3: 0x151f2f232b2c641091433b1f + limb3: 0x151f2f232b2c641091433b1f, }, w5: u384 { limb0: 0x72ec4e504cfb5f2b309e1b1b, limb1: 0xb307889291791d9836f74c5c, limb2: 0xcc60fb54fe4ebb3c834028fa, - limb3: 0x73d28c074b6d0a9bbb93a6e + limb3: 0x73d28c074b6d0a9bbb93a6e, }, w6: u384 { limb0: 0x42714ec1b398c2646a44fc8c, limb1: 0xf9c8174e936e14a688589f9b, limb2: 0x74f6aaa1b47f90087951593c, - limb3: 0xf56e6232d6c70f9bfc19e5e + limb3: 0xf56e6232d6c70f9bfc19e5e, }, w7: u384 { limb0: 0xe304f2b0d829f6d2faa65947, limb1: 0xa26f23153498cde40f054342, limb2: 0xfba50877ef63e16fa824a815, - limb3: 0x1256debfa10663438ea50adf + limb3: 0x1256debfa10663438ea50adf, }, w8: u384 { limb0: 0xc757cecbeefd79b47270e6b5, limb1: 0x3fb9d4754903dc457f7597dd, limb2: 0x8a9f050e1077482a52f7bef7, - limb3: 0xb1d0a3d278779c2252b7aa7 + limb3: 0xb1d0a3d278779c2252b7aa7, }, w9: u384 { limb0: 0x5092b50f667acdababf052a9, limb1: 0x67c7132abfda100e74791ab9, limb2: 0x679b7be1175e7dab6bbf7b8c, - limb3: 0x769778649047c85b6580077 + limb3: 0x769778649047c85b6580077, }, w10: u384 { limb0: 0xfd8979bca7fe4209f707b3a6, limb1: 0x9ec62bedcbf628a3ceb18d29, limb2: 0x319886ca998f583080ae6e1b, - limb3: 0x381d855df46f8b4c2c9d6a2 + limb3: 0x381d855df46f8b4c2c9d6a2, }, w11: u384 { limb0: 0x5724976349a32d6f327568bb, limb1: 0x17fdebce21bdc92e64f8196b, limb2: 0xeac82f3bc4b86e5d8147ef45, - limb3: 0x131358e92a4dd1ca0ddb2c80 - } + limb3: 0x131358e92a4dd1ca0ddb2c80, + }, }, E12D { w0: u384 { limb0: 0x35716cc42b7f43a8fc723ebf, limb1: 0x22fadd338e2c25972f85dda1, limb2: 0x46872acb9511d7767537705b, - limb3: 0x155d2de74effe44cf4798599 + limb3: 0x155d2de74effe44cf4798599, }, w1: u384 { limb0: 0x376ac4e9b575568e825c5a73, limb1: 0x2769ef9a9f77e879b6b8a6ec, limb2: 0xa666a8e2ee113b3b4567435a, - limb3: 0xc6b84a04fd0d0f116ad9e5a + limb3: 0xc6b84a04fd0d0f116ad9e5a, }, w2: u384 { limb0: 0x59d60284544cb1eaec05d203, limb1: 0xd6cf07d6abaf48adde29bad7, limb2: 0xf08eaf520c0bc5fe6b8eb966, - limb3: 0x8207e1ac978f7a918c110a2 + limb3: 0x8207e1ac978f7a918c110a2, }, w3: u384 { limb0: 0xbbdf9ed2369c8b7b97583800, limb1: 0xb649e54a0e1787927560a57f, limb2: 0xa914d51f826065538792be78, - limb3: 0x16b5820f317d590fbb5896f6 + limb3: 0x16b5820f317d590fbb5896f6, }, w4: u384 { limb0: 0x43ec6635aeecccb9d2c29f78, limb1: 0x8e2372e1b0e3678817be3069, limb2: 0xd78c8144a0ea302301b30a98, - limb3: 0x17a61c387bd1ad61e28354de + limb3: 0x17a61c387bd1ad61e28354de, }, w5: u384 { limb0: 0x4c34bc4845eec9fe3a68d75b, limb1: 0x314780d022648ad56cb24a5, limb2: 0x585a32f768086f1fdd9a8da, - limb3: 0x1324f29ce3b3d74e74b08b03 + limb3: 0x1324f29ce3b3d74e74b08b03, }, w6: u384 { limb0: 0x223401b4185f66cb102dc565, limb1: 0x46f3ebee9b04e69f007f8111, limb2: 0xf8ae83de384f52416b6be2, - limb3: 0x13727dee2bab50f43deaa793 + limb3: 0x13727dee2bab50f43deaa793, }, w7: u384 { limb0: 0xdafd089f3c769cddeb63c576, limb1: 0x4329764ad1958fba5407edb3, limb2: 0x832c80c10c3981b2d197d42f, - limb3: 0x14a64986d3b0dbbf0297eac8 + limb3: 0x14a64986d3b0dbbf0297eac8, }, w8: u384 { limb0: 0xeec166dc39802b9c81e08f7, limb1: 0x61a05c9d1447aba4d0279bbb, limb2: 0x5a891acf231010014c92af9d, - limb3: 0x42193c8d6a9bccd990e962e + limb3: 0x42193c8d6a9bccd990e962e, }, w9: u384 { limb0: 0xdbe5765f57be1a326f0b78bd, limb1: 0x3417ea0001ea3efb8c6de325, limb2: 0x80dfc16ab0411f7cb6727faa, - limb3: 0x19415881fac9b97f02c3a6f8 + limb3: 0x19415881fac9b97f02c3a6f8, }, w10: u384 { limb0: 0x6440e9bb2320475c39624871, limb1: 0xc39741e3212573abf24cd446, limb2: 0xddb817e1e7237e88f9285a4d, - limb3: 0x98fa9061f0a765886c03c21 + limb3: 0x98fa9061f0a765886c03c21, }, w11: u384 { limb0: 0x91b97eb11b2b9466c4781b02, limb1: 0x98c2e0826cece826f5d1e2a, limb2: 0xffdc08767b9c38eb95323f94, - limb3: 0xdb9012a8490308dfbd1ec31 - } + limb3: 0xdb9012a8490308dfbd1ec31, + }, }, E12D { w0: u384 { limb0: 0x3942fef601ca6d254a68858b, limb1: 0xea9499ac5e6f2d267cf812f6, limb2: 0x1ddc6c2df9859ff4f2adf48d, - limb3: 0x2f04749264cbba7320d82c7 + limb3: 0x2f04749264cbba7320d82c7, }, w1: u384 { limb0: 0xea370966790afa13e5a15b8b, limb1: 0xcf600ddedf1922470eb6c8f4, limb2: 0xcc3b2095a20acd637561e075, - limb3: 0x1099a2649fcc6f0876de42f4 + limb3: 0x1099a2649fcc6f0876de42f4, }, w2: u384 { limb0: 0xf7c03af81a901c952bb74ab0, limb1: 0x73344a8772689f0e65751dc, limb2: 0xad18a2477643704a0385cf67, - limb3: 0x6d8fdc35189573632dcc97 + limb3: 0x6d8fdc35189573632dcc97, }, w3: u384 { limb0: 0xc40e849145b8a6ac81ba9633, limb1: 0xaf7eee8a3d8b2ce1ee4f3450, limb2: 0xeb5dc70d8393cddf4b749d5e, - limb3: 0x3a16616e0857c168005f567 + limb3: 0x3a16616e0857c168005f567, }, w4: u384 { limb0: 0xa46376638fd600b1522df0eb, limb1: 0xd54238ba273db8846de529d5, limb2: 0x5c999239af48c2ee8edebd55, - limb3: 0x4573d87029391d0d65f209d + limb3: 0x4573d87029391d0d65f209d, }, w5: u384 { limb0: 0x320028c1a7a461ad9eb19b21, limb1: 0x3b1235187099e3e7eccea674, limb2: 0xc63359900cf9bea379c7c265, - limb3: 0x181ece5056a99b30368a01f7 + limb3: 0x181ece5056a99b30368a01f7, }, w6: u384 { limb0: 0x67c40b01d45218cb7c9261ed, limb1: 0x5f12224f9bc6f6b0f758ed7c, limb2: 0xfe65e99f9dba2b226f3bdb14, - limb3: 0xefb00660b8c006503becde6 + limb3: 0xefb00660b8c006503becde6, }, w7: u384 { limb0: 0x98835c191b00687892a50c84, limb1: 0xd4ce327a1cde229daaf91062, limb2: 0x41b55aa7f2b569fbe90125b3, - limb3: 0xb5ddb3660a32eb070881b79 + limb3: 0xb5ddb3660a32eb070881b79, }, w8: u384 { limb0: 0xdf1e95ef6d2b993d5a1909e8, limb1: 0xa22871054afc0a86111e80ac, limb2: 0x65699d8354776199ea73ba7e, - limb3: 0xad1800f05ab0f5361037f95 + limb3: 0xad1800f05ab0f5361037f95, }, w9: u384 { limb0: 0x332c0317051a794c9dea2cbf, limb1: 0xf8a485eae6c2e410a7f79c41, limb2: 0xffb6acfadd9e81a1d72f7ab5, - limb3: 0x4af742d5ef004df236eac2 + limb3: 0x4af742d5ef004df236eac2, }, w10: u384 { limb0: 0x6e7cd75aecd367d01b025d90, limb1: 0xea672964fdc59edd7195d82a, limb2: 0x9ef714a07f2ab07c12d493, - limb3: 0x11a59352336ea017c4cf99eb + limb3: 0x11a59352336ea017c4cf99eb, }, w11: u384 { limb0: 0x499742508d3b02cee2ce2e5f, limb1: 0x2a7cd0175d28e3847c94e3a7, limb2: 0xba1633b10be308ed90e705de, - limb3: 0x144cf257dd87eb064641dc1d - } + limb3: 0x144cf257dd87eb064641dc1d, + }, }, E12D { w0: u384 { limb0: 0x5588cede045d2cdadf0827cf, limb1: 0x8829d5bef0b199f40c4218aa, limb2: 0xde50f9075bb8b7bbf873dafe, - limb3: 0x169bf614aa148aade5ddee29 + limb3: 0x169bf614aa148aade5ddee29, }, w1: u384 { limb0: 0xdb2b9f6b9cea43f3771a2810, limb1: 0xf30659616ad48cc3d02ad552, limb2: 0xdb3f39565fbac93235ddf67a, - limb3: 0xd897622f1ee1f5a889fff2b + limb3: 0xd897622f1ee1f5a889fff2b, }, w2: u384 { limb0: 0xc81128b16bf3342deb344274, limb1: 0xd317b6705fa602f2782a16db, limb2: 0xef2d519a4cd337872aa8a9d9, - limb3: 0xc3478cb19d1dbdf19ebd5c4 + limb3: 0xc3478cb19d1dbdf19ebd5c4, }, w3: u384 { limb0: 0xa47ec9609689112917e7ffde, limb1: 0x5609dfe0d98894b8a636cfa2, limb2: 0xd919558b35a2b260310069eb, - limb3: 0x37a1068ca3a9c3f9cfc9c77 + limb3: 0x37a1068ca3a9c3f9cfc9c77, }, w4: u384 { limb0: 0xa38097592eae5f41aae85f73, limb1: 0xb0227e1e6c4f1a2b68373d92, limb2: 0xca4181ef54e72f36c0ad2e9e, - limb3: 0xcaaec19729ff62d200f2d46 + limb3: 0xcaaec19729ff62d200f2d46, }, w5: u384 { limb0: 0xe632b6beb47754be744835c5, limb1: 0xa13d9f0d6987474db8886bc5, limb2: 0x861e8f934f2bd6c26382b37b, - limb3: 0x17b17e0214847d1133211504 + limb3: 0x17b17e0214847d1133211504, }, w6: u384 { limb0: 0xeed6293aaea5b464d9557224, limb1: 0x616885cc41b7f2ca0e9eccf4, limb2: 0x5fcb40d8ac2c3e379f9f73db, - limb3: 0x1722192cc0b28826f6ba15b3 + limb3: 0x1722192cc0b28826f6ba15b3, }, w7: u384 { limb0: 0xb86298adf0e72ec3d58a8cfd, limb1: 0x462eef29c5602d38f0edf121, limb2: 0x441e4b2a0eb332c9f50113e3, - limb3: 0xcec368a8e54826df43c7363 + limb3: 0xcec368a8e54826df43c7363, }, w8: u384 { limb0: 0x6e688697f816d51595ca5d89, limb1: 0x52ebb737369c18d3262d993e, limb2: 0xf99ba53fff7f6388fcd62931, - limb3: 0xd8f799ebfe1e31688b8dbfb + limb3: 0xd8f799ebfe1e31688b8dbfb, }, w9: u384 { limb0: 0x2dab5a73563d5e85efcdcf5f, limb1: 0x49017e5fc6f43c3090f3a839, limb2: 0xc7ca32a8e5a9c6d89bedfa29, - limb3: 0xc88b068705e1ea444253e1f + limb3: 0xc88b068705e1ea444253e1f, }, w10: u384 { limb0: 0xf7068f0c42467375c56087f8, limb1: 0x8a6255309aaf6bcbe62a4e4b, limb2: 0x86d81d3ee6eca316720203d2, - limb3: 0x5f7fbd590cd861c1cad178c + limb3: 0x5f7fbd590cd861c1cad178c, }, w11: u384 { limb0: 0x6db80280e98bc1d1e0212e5a, limb1: 0xb5cafdce4554a39773fa052f, limb2: 0x4f6819e8a4acdd8eb4c432fb, - limb3: 0xa9dd9ec5b1fcf4c0f2f96af - } + limb3: 0xa9dd9ec5b1fcf4c0f2f96af, + }, }, ] .span(), @@ -29104,632 +27666,632 @@ mod pairing_tests { limb0: 0xa3e7983c52177ee6cf41c933, limb1: 0xc878551a5bcfcbbab4fa69c0, limb2: 0x2b62241b4767f4c27ab37152, - limb3: 0xdacf9d78c1e5a7249ba8575 + limb3: 0xdacf9d78c1e5a7249ba8575, }, u384 { limb0: 0x34b5b0aadbe8cefd99f78efe, limb1: 0x9a6280d93e90dfa2ad8a0665, limb2: 0x865b30729431e943d5d1da25, - limb3: 0x135415bc74a5fbd02ff8bf2 + limb3: 0x135415bc74a5fbd02ff8bf2, }, u384 { limb0: 0xe1a3f72cddbb3eab626b78c5, limb1: 0x1136ac541672565e176d1a5, limb2: 0xf05ea1d1352e7b8547f58a85, - limb3: 0x8d14ed0d8b92ae5c708fde2 + limb3: 0x8d14ed0d8b92ae5c708fde2, }, u384 { limb0: 0xe227f08ec8f084a914aaec06, limb1: 0xd8830486ba4f5b633dba9a94, limb2: 0xee639e145fe2c50aadd58f9d, - limb3: 0x16d5866a88ecc0b6d1a2b73d + limb3: 0x16d5866a88ecc0b6d1a2b73d, }, u384 { limb0: 0xcab9d6e9c20fabc2c57eaeb0, limb1: 0xc5a27d49dc4fbcd898c110, limb2: 0xa2c16cb9bad21819c1e58056, - limb3: 0x25e9e35311aa0d542776bbe + limb3: 0x25e9e35311aa0d542776bbe, }, u384 { limb0: 0x1de07ee6ea1ebf0ac58a8482, limb1: 0xa94582ffcc3ed6d1deb5ad0d, limb2: 0xaf27c71d444a1500dd94472d, - limb3: 0xea799db2c35ebc2ec4d0c02 + limb3: 0xea799db2c35ebc2ec4d0c02, }, u384 { limb0: 0xc40c54a8a98b58dd6c95920e, limb1: 0x23cfa238f21886e9674d7e5d, limb2: 0xeb224473f987f0a78eee502b, - limb3: 0x10872f85034f3fe8144778f9 + limb3: 0x10872f85034f3fe8144778f9, }, u384 { limb0: 0xc62ae0bd57d10fec3931d5d6, limb1: 0x95feebdca88ccfbf96839d3d, limb2: 0xc701bfbc1bd3b8b99fd328ee, - limb3: 0x105fea6244eaccdba68b82c8 + limb3: 0x105fea6244eaccdba68b82c8, }, u384 { limb0: 0x9999a68d5a0d8dbab2fe7cac, limb1: 0xf2f284cc782dd186c1a21080, limb2: 0xaa345100d7ac78af7f07ab0, - limb3: 0x343ad4472e81aa23f653c50 + limb3: 0x343ad4472e81aa23f653c50, }, u384 { limb0: 0x322a4bb34dbaa4ac421b2a6f, limb1: 0x6814a2cbfe211b4f8c5fa074, limb2: 0x9e6dcc54c28ea1b738a5f638, - limb3: 0xb15ff9a6a324ee552544301 + limb3: 0xb15ff9a6a324ee552544301, }, u384 { limb0: 0x773a8a06261c3fa21f0c273, limb1: 0x67a4d4bf13a8a3926c101d4c, limb2: 0xac2435c8750985c83a5acf42, - limb3: 0x2ba3c4ba4d6c7d32bd4132b + limb3: 0x2ba3c4ba4d6c7d32bd4132b, }, u384 { limb0: 0x5af4e8623a9a6ac55368c9a1, limb1: 0x41acfdeedee3a3f2e1d63086, limb2: 0xcf75b6d87de178babc0f7338, - limb3: 0x145c33aa2b9a87ad7f4e6fac + limb3: 0x145c33aa2b9a87ad7f4e6fac, }, u384 { limb0: 0xfcb4a32f66cb0b7de885e321, limb1: 0x811754d5357ff3190cb7cf76, limb2: 0x7ac0c7a8d2e6b4870e6fdade, - limb3: 0x7da36f12e5347ecc727e2c2 + limb3: 0x7da36f12e5347ecc727e2c2, }, u384 { limb0: 0x8160b9669e247add8120f235, limb1: 0xe5cdd506f81dd052a6669c1f, limb2: 0xe49635da08fae0e68e8d61b5, - limb3: 0xe2f09f8bb68ab60b8b100d7 + limb3: 0xe2f09f8bb68ab60b8b100d7, }, u384 { limb0: 0x14f979d377f8f7ee85fbdb0f, limb1: 0x4a253b371d8e10ccb8140608, limb2: 0xe993276269db8f8fe4c6e9da, - limb3: 0x18461083f0b47c0c08af3b84 + limb3: 0x18461083f0b47c0c08af3b84, }, u384 { limb0: 0xbf9c91b7bb6a96f6c4bbfd44, limb1: 0xf63df8512b092f6e1f7d0912, limb2: 0x9fcf0b5ed958431cf026adf4, - limb3: 0x1384e76e9a670644b1b7b75a + limb3: 0x1384e76e9a670644b1b7b75a, }, u384 { limb0: 0x21cf2e9de4f3199b49259102, limb1: 0xbc59d1d4b8f60f3cbdb5c9ad, limb2: 0x6b82dcf85e7f92dbd14dede7, - limb3: 0x4473eaf269c3e6fbfe4eb03 + limb3: 0x4473eaf269c3e6fbfe4eb03, }, u384 { limb0: 0x8e63d68e90269688ba6352e9, limb1: 0xb106824baf4fd76a823b7af2, limb2: 0xb4bc212d749cdc93e6c15422, - limb3: 0x16613b344965687fcbc10105 + limb3: 0x16613b344965687fcbc10105, }, u384 { limb0: 0xfcfe7ecf997f6c1a347a29fe, limb1: 0x2fdc09c863ad94e54eb5d703, limb2: 0x86f3685e20c326d5f3809388, - limb3: 0xdc859a1bcb3aebca401a59d + limb3: 0xdc859a1bcb3aebca401a59d, }, u384 { limb0: 0x4df51952a468c6d25d3a04bb, limb1: 0x9f6e9bec9331d07c650c87bc, limb2: 0x4d645131f9dfa76d49e41f51, - limb3: 0x132f774d519a3905da1d4b18 + limb3: 0x132f774d519a3905da1d4b18, }, u384 { limb0: 0xe9be209e4c33a33f7b4a42ea, limb1: 0xae0dcc32ebded1f383fa42d0, limb2: 0x58009958214ba0bdf2abf496, - limb3: 0x14a9111bba2b4d828f06aba3 + limb3: 0x14a9111bba2b4d828f06aba3, }, u384 { limb0: 0xb096418d73f483d869cbcb26, limb1: 0xa367552525613be95682f92f, limb2: 0xbc53055b9c5cacb945022d99, - limb3: 0x2761a9462c8c3b9cbe40b8a + limb3: 0x2761a9462c8c3b9cbe40b8a, }, u384 { limb0: 0x1c82a472f773aa50cb3a26ad, limb1: 0x910bfd64328667e2cf2f01fe, limb2: 0xcba47b5229b2fa16f57087ff, - limb3: 0x11a4815594889554d6f1b82a + limb3: 0x11a4815594889554d6f1b82a, }, u384 { limb0: 0xd3a8656fc667f66a8e3f5551, limb1: 0x5f26ac312c48aa10a935e8da, limb2: 0xea6257b784db16392e5c1f87, - limb3: 0x9ed9fa4a643e2beb42cb885 + limb3: 0x9ed9fa4a643e2beb42cb885, }, u384 { limb0: 0x97d53d5b490f97f883fd947f, limb1: 0x291dbf974b5132f8cfeb3221, limb2: 0xa5411e44ca4257463b9c6eda, - limb3: 0x11ffbef22d3ad11288ff557a + limb3: 0x11ffbef22d3ad11288ff557a, }, u384 { limb0: 0x41737e532acef42b3d1be5e9, limb1: 0x670f086a44ac2205ca45bd31, limb2: 0xe125411dfe8a9de1f56d4e8a, - limb3: 0xa86753884997263cf69cd83 + limb3: 0xa86753884997263cf69cd83, }, u384 { limb0: 0x44dbcf54946b874587ed7bb1, limb1: 0xf5d4c8a8204d2a664d8af6f7, limb2: 0xd204792106e5ec68e911c843, - limb3: 0x6b6f000b587e27bb0daca41 + limb3: 0x6b6f000b587e27bb0daca41, }, u384 { limb0: 0xbbd55fbfec342eb68cb8b33d, limb1: 0x747ea6682b239da8f5e04b93, limb2: 0x6ea818bd303ba94c1f2cc968, - limb3: 0x12a064cae2c76bf62ed31484 + limb3: 0x12a064cae2c76bf62ed31484, }, u384 { limb0: 0x12d6eebfd7403e9217b2b18e, limb1: 0xabf7f443758d36e3195a082a, limb2: 0xe096432b817fedfdd3e1ec6c, - limb3: 0xd5aab1540319196ffb170a4 + limb3: 0xd5aab1540319196ffb170a4, }, u384 { limb0: 0x9f08a841896fcad4240b5a51, limb1: 0x702c510883126781e0a0d224, limb2: 0x7a3c846a3a2c1356f448f7d0, - limb3: 0x13f345b11e7f78ede9880c46 + limb3: 0x13f345b11e7f78ede9880c46, }, u384 { limb0: 0x78dae6353db728f888c96e71, limb1: 0x2cbbe2a267c2693af367e916, limb2: 0x3279e899d488aab5a0f0b331, - limb3: 0xd813f3ed134d8fa1644dc3b + limb3: 0xd813f3ed134d8fa1644dc3b, }, u384 { limb0: 0x2256b160d645a67b803a4c1b, limb1: 0x9ef42e9d6079aca8912584c8, limb2: 0xb37159d8f446a918f3083680, - limb3: 0x493481804234aca717daa57 + limb3: 0x493481804234aca717daa57, }, u384 { limb0: 0x404a8f7b21c4f49768cc9b6d, limb1: 0xfd850a59f99f96297ec7a03f, limb2: 0xf44d87ad17e4064df29937d, - limb3: 0x108e026b451ea7f34b03e04d + limb3: 0x108e026b451ea7f34b03e04d, }, u384 { limb0: 0x676001481384864737f79623, limb1: 0x43d21fc0760ffe5cca1227e5, limb2: 0xb327c2096a71789546ce915f, - limb3: 0xbb65761e3840a22923e9a5a + limb3: 0xbb65761e3840a22923e9a5a, }, u384 { limb0: 0x41fb8fcfc298298bb67ed951, limb1: 0xeb2f9fd1b274c13753e66a76, limb2: 0x125a8ac6fcca7696cc0119dc, - limb3: 0x12ce40e89aa31e0c48e9b17e + limb3: 0x12ce40e89aa31e0c48e9b17e, }, u384 { limb0: 0x6487f6d88482a43b5d44286a, limb1: 0x8b94426f8e4215d9b5f631b3, limb2: 0xabaa7ad3a73db19f228483e5, - limb3: 0x162be59dc601e95155ae78b3 + limb3: 0x162be59dc601e95155ae78b3, }, u384 { limb0: 0x52f8e9e7ac8c0cc662b64d2d, limb1: 0x15843403ed5567c4c150e5b9, limb2: 0x5d1ae203198d1a4b87392b8e, - limb3: 0x8a220a85128d41acaf087b8 + limb3: 0x8a220a85128d41acaf087b8, }, u384 { limb0: 0xa7543c9d40a21e6b2c018cc3, limb1: 0xf0e63d1d87a37ae0285a92e5, limb2: 0xb9240e43e9226caddbc298c7, - limb3: 0x174133829864e2c73869b566 + limb3: 0x174133829864e2c73869b566, }, u384 { limb0: 0x9ddabb3c89f47cc45028ce2a, limb1: 0xeedeedfd93d787c4e8b17065, limb2: 0x25a47874dd13ff54050e9650, - limb3: 0x181540a9209d7cc95173a8f0 + limb3: 0x181540a9209d7cc95173a8f0, }, u384 { limb0: 0xdaed2660a5ff230a5edb6826, limb1: 0x6f8b629c4e1dfba3d941d189, limb2: 0xd9fe3017a9894e0dcdb8f18a, - limb3: 0x2ac145499f0bae525fdbe8f + limb3: 0x2ac145499f0bae525fdbe8f, }, u384 { limb0: 0x24d9cacd6fa96d47563f0810, limb1: 0x9e62880e68213cef54eca7d7, limb2: 0x2f4952f65caf8b35ca45b1e6, - limb3: 0x76485351c3244ebbdda82fc + limb3: 0x76485351c3244ebbdda82fc, }, u384 { limb0: 0x3c7af92fcb15892946b231bd, limb1: 0x7a23d11c9da05d0f5c1a5e0c, limb2: 0xe6d9cc8f633fc6df1cfcdcd7, - limb3: 0x1043b80e317cd44a6d6cb94a + limb3: 0x1043b80e317cd44a6d6cb94a, }, u384 { limb0: 0x8a0018c64fc1ede388b9f06c, limb1: 0x2c6dd13e376d0554f0e5e9af, limb2: 0x217e85cb06f91b9cf4619f5e, - limb3: 0xa31fe4ce1acc632d6535aae + limb3: 0xa31fe4ce1acc632d6535aae, }, u384 { limb0: 0x57b8e928b11578ec61d9f7ab, limb1: 0x4c0238a8cc7f74c7794cdab2, limb2: 0xdeeec6219b375359c10e4c9d, - limb3: 0x183882c308736f91f012c6d + limb3: 0x183882c308736f91f012c6d, }, u384 { limb0: 0xa38ee57aab4db83cc0c0ab7d, limb1: 0x46831e6c8dd9f038a8eeae0f, limb2: 0xb2b60c5f1b8a404445ac6e9a, - limb3: 0x1371ef241ba8bf98a6466e31 + limb3: 0x1371ef241ba8bf98a6466e31, }, u384 { limb0: 0x3bf6587a61d4012a7ba04b83, limb1: 0x549f8bd35e9a3b13af8d9f5e, limb2: 0xbb8c7e0ad2385fe9567cc29c, - limb3: 0x2853accb2fcd66bfe6b85e0 + limb3: 0x2853accb2fcd66bfe6b85e0, }, u384 { limb0: 0xd801b9782f1926f15f2708a6, limb1: 0xb8f367f8068e5722408eb044, limb2: 0x886d473c0ed54a59c8b0387d, - limb3: 0x181091a78bfb5e9f743d8762 + limb3: 0x181091a78bfb5e9f743d8762, }, u384 { limb0: 0x438cf288e771599472a5526e, limb1: 0xe81d529c0190d6b146c21308, limb2: 0xf1c4408e67d8dc2057fa293b, - limb3: 0xe58746f565f526c5d03155c + limb3: 0xe58746f565f526c5d03155c, }, u384 { limb0: 0x9f6a6df7200623e2e15b76a2, limb1: 0xdcbbd33826446c6cb72dd7f2, limb2: 0x3398543901474dc826e6949b, - limb3: 0x17d8d68422134dcf9b225a8b + limb3: 0x17d8d68422134dcf9b225a8b, }, u384 { limb0: 0x96570e66e6610aac72e6aed2, limb1: 0x809ff6ce0dbcafe421a51f05, limb2: 0xe4aa4350b86f57c80edbd4d, - limb3: 0x143b203d18c70a2c3549e34d + limb3: 0x143b203d18c70a2c3549e34d, }, u384 { limb0: 0x9193d7a0bf7f1b505cef9e84, limb1: 0x27530086f2cee2660f39d337, limb2: 0xdf0646132dad6339753ea961, - limb3: 0x21eea0b2e377e215f369ca5 + limb3: 0x21eea0b2e377e215f369ca5, }, u384 { limb0: 0xd04959600b75b90540f205b4, limb1: 0xcd8455c70d0098c7234c8078, limb2: 0x6fe788663d4d3168c81b9ce3, - limb3: 0x616db3e981a3425be0a7a2 + limb3: 0x616db3e981a3425be0a7a2, }, u384 { limb0: 0x2d77b5fbe9db433105acf954, limb1: 0x5a4009ff7e99f8ebffb2e98a, limb2: 0x51ffdf293bef21cf6c6eee68, - limb3: 0x294f7541c9d9bdecf46e774 + limb3: 0x294f7541c9d9bdecf46e774, }, u384 { limb0: 0x3973b46e5b0edb78e96a6337, limb1: 0x96b7f328e1c240c4445c3834, limb2: 0xc1fc7a63a9b050d51440bbda, - limb3: 0x785174eaa67f2fa33909b87 + limb3: 0x785174eaa67f2fa33909b87, }, u384 { limb0: 0xd0e7517380c0ba5bb79d5a01, limb1: 0x4614d62d5defbc74d8d7a151, limb2: 0x1866a8621be9e94fdabb28c7, - limb3: 0x98fb6300447a52f3616fb71 + limb3: 0x98fb6300447a52f3616fb71, }, u384 { limb0: 0xce4eccda4fce4e8c75a7352a, limb1: 0xf16bdc7ee87b53a5e82cffeb, limb2: 0xc4606b921784277f36337621, - limb3: 0x1767bcc869a11d8adc6e42f1 + limb3: 0x1767bcc869a11d8adc6e42f1, }, u384 { limb0: 0x3edb8b879b179ea8366d881c, limb1: 0x169ebac9ec4259213968b3f7, limb2: 0x7e5a01a3eb712a4cfc0c560f, - limb3: 0x6219432187d7ff1fc5d4867 + limb3: 0x6219432187d7ff1fc5d4867, }, u384 { limb0: 0x8d70b768dd084696486c2730, limb1: 0x79f8154666baad6aa5355b37, limb2: 0xdad413a5a8d8fe43d12c2b54, - limb3: 0x15287765b2986b3b61183d2e + limb3: 0x15287765b2986b3b61183d2e, }, u384 { limb0: 0x12b8c8e2823152c7c58a2b94, limb1: 0xfc4da7ba1ba1c60085cdd334, limb2: 0x6b0e50a8ee1f77e1c515729f, - limb3: 0xe095dd5dc4e89696068434a + limb3: 0xe095dd5dc4e89696068434a, }, u384 { limb0: 0xa67bd8474e80fd28cca789e0, limb1: 0x626e4cad3d2db14b78e7d1d6, limb2: 0xa0b17ca88bcbbc817560e5d6, - limb3: 0x3a6d45854572b78c2263ccb + limb3: 0x3a6d45854572b78c2263ccb, }, u384 { limb0: 0x50e6cef658954cb8977d6c33, limb1: 0x23b748e09ecb7fb9fc71c7c1, limb2: 0x1da0be59e29cb5abfe98c974, - limb3: 0xbe9524bb8d7ba19f570c49f + limb3: 0xbe9524bb8d7ba19f570c49f, }, u384 { limb0: 0xc11094ca0d9fd5f015814a4c, limb1: 0xd6585ac7d8b483a0c5537fc, limb2: 0x342727ac4d7cc4946433934a, - limb3: 0xeb9c52fd584f614281bd275 + limb3: 0xeb9c52fd584f614281bd275, }, u384 { limb0: 0xb36fd7eeea73dcaf7f6e1ca, limb1: 0x5c2266daccd053197e9630c8, limb2: 0x8de08fd88c782cdd50f05c17, - limb3: 0x13ad3640489db585622bec2d + limb3: 0x13ad3640489db585622bec2d, }, u384 { limb0: 0x8d25eb61d0917aedaa203b03, limb1: 0x19c66293a078bd475b83fa1f, limb2: 0x4899256cdfaf3b78904a9657, - limb3: 0x14fc015f336c2fae0ba0e5d1 + limb3: 0x14fc015f336c2fae0ba0e5d1, }, u384 { limb0: 0xd07bcf1fa64d13cd8a9097c4, limb1: 0xa349ab74b5a947f23ff007e3, limb2: 0xe5260f2ac6a6b0bb5b46c417, - limb3: 0xf7bfb970b528b4b9fae490a + limb3: 0xf7bfb970b528b4b9fae490a, }, u384 { limb0: 0xf937c7eafdd7c42426b00ebe, limb1: 0x8fb6ec259904060b238a4f0c, limb2: 0xeea2eedba516080e61b4f6d, - limb3: 0x18555b780609caa6d0cb0417 + limb3: 0x18555b780609caa6d0cb0417, }, u384 { limb0: 0x34bca95e3f96c8f8b6b5a191, limb1: 0xe3d7af77d24e1123a970c9c, limb2: 0x7245e00a7fec5e855510eda6, - limb3: 0x126c2e3e8f82b756ab63a041 + limb3: 0x126c2e3e8f82b756ab63a041, }, u384 { limb0: 0xeef8e93607614421e26f1224, limb1: 0x478b6ba88197dff4715f19cc, limb2: 0x20105a60ba2ab47d25e6dbd9, - limb3: 0x70eb1b71ee80e4bcae932f6 + limb3: 0x70eb1b71ee80e4bcae932f6, }, u384 { limb0: 0x36302ca9ea2ebd5c1528ce4, limb1: 0xcd0bda2fe4dcdcbd5e5e0f95, limb2: 0x51185896890885859d1e845f, - limb3: 0x18aa78beb5195767390ecff4 + limb3: 0x18aa78beb5195767390ecff4, }, u384 { limb0: 0xd37d81b972abe8315debd29, limb1: 0xa130f42959767c3e87b8cf47, limb2: 0xf342b8d8e8aebd4518b5245d, - limb3: 0xa73a32ef177b50d3662ba67 + limb3: 0xa73a32ef177b50d3662ba67, }, u384 { limb0: 0xa2f75443547cb906deb480bf, limb1: 0x2930d5d862ffb28424662dd, limb2: 0x45752ebf9fc6de30fa380a5a, - limb3: 0x11502d2e5e21ac43e917c074 + limb3: 0x11502d2e5e21ac43e917c074, }, u384 { limb0: 0xe715a44c794a7e0f884ebc18, limb1: 0x73e650d26092964acf629274, limb2: 0x43c55bb4ddc43f319c2561e4, - limb3: 0xfad15687e891b1eb735171b + limb3: 0xfad15687e891b1eb735171b, }, u384 { limb0: 0xc2f698d63ca028b98a6d9aea, limb1: 0x73fcf20984a4ab126ecce076, limb2: 0xfc9a973c051884a070acb816, - limb3: 0x17b570f4e7dc3ae239907760 + limb3: 0x17b570f4e7dc3ae239907760, }, u384 { limb0: 0xaf976e42a58efa388af0e932, limb1: 0x974b9e6e69c2a1f0d111a407, limb2: 0xfdcc81597dfa49a160bc4fe9, - limb3: 0x9779fd42cd81ab36e9a2842 + limb3: 0x9779fd42cd81ab36e9a2842, }, u384 { limb0: 0xeba568c8d48ea9247d48da86, limb1: 0x31028ed5ce52e5bb1399de93, limb2: 0x2c3517df64b4203368ed495d, - limb3: 0xea96c78b74a7dc6ca65fcd2 + limb3: 0xea96c78b74a7dc6ca65fcd2, }, u384 { limb0: 0xf97689d41c97c408554df47e, limb1: 0x3fbca2694c7127674a73c09, limb2: 0xc1629f5d7a9cc060de3e3a93, - limb3: 0x115729f70cc43fd02000607c + limb3: 0x115729f70cc43fd02000607c, }, u384 { limb0: 0x118ab651b6dad5a06c3934c2, limb1: 0xc2aecf4b70ab6c521acafcd3, limb2: 0xf3360109e2c7e3b486b12389, - limb3: 0x17e47b2737336dc89e3118e2 + limb3: 0x17e47b2737336dc89e3118e2, }, u384 { limb0: 0xb55c665c5800d68992578fb, limb1: 0xda3a2aea858214dfd3c14a9a, limb2: 0x8fea9a10fa33d1a919753afe, - limb3: 0xdaa852dd4e69699b9ec6ddc + limb3: 0xdaa852dd4e69699b9ec6ddc, }, u384 { limb0: 0xd54bcb3fe9bdf25a3a4daf9e, limb1: 0x6c18e602b7827a15c04c79cb, limb2: 0xbd50d1bb8e5dd1598c877956, - limb3: 0x163474135b8f40f19e415488 + limb3: 0x163474135b8f40f19e415488, }, u384 { limb0: 0xf3ed6e343e2c3bc6160e6e79, limb1: 0x1aa65941c9a97402cfb93fe8, limb2: 0x3b1777005f029a19938d8eb0, - limb3: 0x10c9c8b830679bd068ca253b + limb3: 0x10c9c8b830679bd068ca253b, }, u384 { limb0: 0xdbfbc9ebb4d95831e9e2805a, limb1: 0x25a303f91fbfd9aae10c331d, limb2: 0xce0a31138c35124e586161ec, - limb3: 0x106b7ac16ffc67cf8012417d + limb3: 0x106b7ac16ffc67cf8012417d, }, u384 { limb0: 0x565d4552b2dee52d0f668cf2, limb1: 0x37b94f8089b9e90e94bef32e, limb2: 0xa00cd6632b921f5332f93b33, - limb3: 0x16f25ae6f9cd30da6e99b4ed + limb3: 0x16f25ae6f9cd30da6e99b4ed, }, u384 { limb0: 0xa8ee5961d79366b3d5943987, limb1: 0xe2d7554eb07b8ab43e18fc03, limb2: 0x3a764b8c918727268c15ef80, - limb3: 0xf116ac9b10df307a601ded3 + limb3: 0xf116ac9b10df307a601ded3, }, u384 { limb0: 0x489d978db736cc63b13fe637, limb1: 0x643040f36b3b805abde8e62a, limb2: 0xddab1b3cdac5a66ff7fa96c1, - limb3: 0xebaa51308a6e8a5bfeff633 + limb3: 0xebaa51308a6e8a5bfeff633, }, u384 { limb0: 0x48e5740b86efd742eee3245c, limb1: 0x86605f0f664611ac11565e5e, limb2: 0x6adea6b556c3b46f40e69b1, - limb3: 0x24a52f02942d41ef71806c2 + limb3: 0x24a52f02942d41ef71806c2, }, u384 { limb0: 0xf7b37254f7e999db41f5436e, limb1: 0x9b9904005067c13b6b87d825, limb2: 0xbb44d5933aadcf7885f2cfc3, - limb3: 0x1021547dedb3bc5c2d8233c6 + limb3: 0x1021547dedb3bc5c2d8233c6, }, u384 { limb0: 0xb879d8d9c4f8242b0435702, limb1: 0x62cbeef11bdb3be23d61643c, limb2: 0xe4b55474006b4147fa931f36, - limb3: 0x16f6e4ad0e8e9869ebbb6387 + limb3: 0x16f6e4ad0e8e9869ebbb6387, }, u384 { limb0: 0x11a50490a3947262e2378540, limb1: 0xa7bb06c66b7fb8e8d3a09db0, limb2: 0x50010b811e9c9562094eb3c2, - limb3: 0x128f415f641f8f3f827b0f6d + limb3: 0x128f415f641f8f3f827b0f6d, }, u384 { limb0: 0xe65949b0e8f7fdc852eef5ff, limb1: 0xe70bc64e04b35b0e1c619ef0, limb2: 0xd0a97da8368c5c32db26cf98, - limb3: 0xc34b7632f7eacf863dc052e + limb3: 0xc34b7632f7eacf863dc052e, }, u384 { limb0: 0x15d08e7c62dfd88fcb98177b, limb1: 0x4c2f39533b6fcad3c4793f61, limb2: 0xd9cdb19e87aceb3a0cb8162c, - limb3: 0x3418cd59104763ba746ce22 + limb3: 0x3418cd59104763ba746ce22, }, u384 { limb0: 0xe1e3eb4a7f1cc46253fd21db, limb1: 0xda276d04975f3c8fd0ebb3ae, limb2: 0xefb1d67e7d5b535f0be7f69, - limb3: 0x1968c06bae09dfcfd490698b + limb3: 0x1968c06bae09dfcfd490698b, }, u384 { limb0: 0xaff772f3fb0df6a83a06e103, limb1: 0x285a2df4977c395f8b0fffee, limb2: 0x38829237b92af85bafa816d1, - limb3: 0x15ee3c5ac4d89ca8a974344 + limb3: 0x15ee3c5ac4d89ca8a974344, }, u384 { limb0: 0x2780004ebec9db58e6395f07, limb1: 0x55e721a4f0f938edd35e0c7f, limb2: 0xef485c4121ed34a5322eada1, - limb3: 0x198d0de1e8f2a035742c5ddc + limb3: 0x198d0de1e8f2a035742c5ddc, }, u384 { limb0: 0x3a905b19b5fe03b7ea72cda3, limb1: 0xf9446fc2f1ef2f0fd27ff31c, limb2: 0x6a8f3434395e78572bd2dec7, - limb3: 0x94f514c0abc3c9585219e93 + limb3: 0x94f514c0abc3c9585219e93, }, u384 { limb0: 0xbf1ca934348f795012ebd9e0, limb1: 0x66fc6fa19a6b277b0b946b96, limb2: 0x99d190e7e0c955e4060b644e, - limb3: 0x1540618e1c45b4e3a0345c0c + limb3: 0x1540618e1c45b4e3a0345c0c, }, u384 { limb0: 0x583308462e64ea1d3ed78974, limb1: 0xfa50ca7cf5d93de25a608ee, limb2: 0x5258574c860ba0a0eea1692e, - limb3: 0x93c78ea322d320a66188d6c + limb3: 0x93c78ea322d320a66188d6c, }, u384 { limb0: 0x3f9b32e0130487aa0dffe2d3, limb1: 0x95f613a790ab85d0c68dbe2d, limb2: 0x2873d651e209343ba9d9498e, - limb3: 0x150035bc6b41041f939015c6 + limb3: 0x150035bc6b41041f939015c6, }, u384 { limb0: 0x92fd2ff9adb02cee75fb4cfb, limb1: 0x77856573bb8813eae7836d12, limb2: 0x710a8706f71a00e2e00444dc, - limb3: 0xf8d9e3b089857d83c93d24b + limb3: 0xf8d9e3b089857d83c93d24b, }, u384 { limb0: 0x7a9fd0266d77a72adaa605b6, limb1: 0x2dad450e5acb506dcdaf14bf, limb2: 0x50e03cda42d4fc40fb1262a2, - limb3: 0x19d850387069a5f2774b7153 + limb3: 0x19d850387069a5f2774b7153, }, u384 { limb0: 0xcb532108a72e0ad94fab1c12, limb1: 0xa40deea557edfcf963510c1d, limb2: 0x352ddfa7820010e93df5eaff, - limb3: 0x1014482407ed22d359072aed + limb3: 0x1014482407ed22d359072aed, }, u384 { limb0: 0x6c4b3edb9e45b5c2065e21d9, limb1: 0x366a7972107abb797de9bf37, limb2: 0x9ff6288aab160e873b5d0055, - limb3: 0x2d273acd3d1bbe2ed538f72 + limb3: 0x2d273acd3d1bbe2ed538f72, }, u384 { limb0: 0xacc9e075f77cbfeff33867df, limb1: 0x2fffd966f39575365819522e, limb2: 0x13912509c7e8cf8b0d4dc884, - limb3: 0x81ec03e574ab464fbfa8711 + limb3: 0x81ec03e574ab464fbfa8711, }, u384 { limb0: 0x5128961c4227b043d8dd003e, limb1: 0x99f460ed6cc77db45a2e749e, limb2: 0x18eac0897035cdc5aef2a3a2, - limb3: 0xb504ae72390a744677e6287 + limb3: 0xb504ae72390a744677e6287, }, u384 { limb0: 0x6210058c9a421b2f89656073, limb1: 0x30a877aac2cf1a23631f6353, limb2: 0xdf43564a55484f3badb56d18, - limb3: 0x159fe9bbfd6800970a8f8421 + limb3: 0x159fe9bbfd6800970a8f8421, }, u384 { limb0: 0x41e3e3770ea10f438afd5cee, limb1: 0x15c986c55098bdbfa032f9cc, limb2: 0xf9cf4b23908b2fcc0f9e5153, - limb3: 0x6aeeb595ac6206f2158689e - } + limb3: 0x6aeeb595ac6206f2158689e, + }, ], }; let small_Q = E12DMulQuotient { @@ -29737,72 +28299,72 @@ mod pairing_tests { limb0: 0xb4b9478e35cec0c05450416d, limb1: 0xf3968ed36a418905999866ba, limb2: 0xfefaa8a111ed6618bd5eda70, - limb3: 0x94c10ebd6bb58a7984cace8 + limb3: 0x94c10ebd6bb58a7984cace8, }, w1: u384 { limb0: 0xd1f5cd81b3f293267d8ea04b, limb1: 0x81896e37eaf120d90e423a51, limb2: 0x9c9e2a5cbca45237a40f3d0b, - limb3: 0x3edb6e040b5509dd89db8aa + limb3: 0x3edb6e040b5509dd89db8aa, }, w2: u384 { limb0: 0xcc5511c9755e825eefd2e612, limb1: 0x11c1159fb5016396e8060653, limb2: 0xe11b5199b288e076837a098e, - limb3: 0xc10e9db003388a78316822c + limb3: 0xc10e9db003388a78316822c, }, w3: u384 { limb0: 0x5145822fbd04dce4358994a3, limb1: 0x1f85b827f0d50748ff242b27, limb2: 0x8bed4abafb0542dfaadda417, - limb3: 0x124c13e3f4b6e879c8fb992a + limb3: 0x124c13e3f4b6e879c8fb992a, }, w4: u384 { limb0: 0xaf0363d68180922026e827a4, limb1: 0x9981546cd84c3e47b779451d, limb2: 0x9341a82fb9f0677665095f30, - limb3: 0xe9ce32f6964afb569e2fbf0 + limb3: 0xe9ce32f6964afb569e2fbf0, }, w5: u384 { limb0: 0xfc22f3cd8e720f43a3121228, limb1: 0x305aea80c039916d5a7cc5a8, limb2: 0x128c312f35c370c7f2a5a718, - limb3: 0x15787bf40ee1ec4fcda689dd + limb3: 0x15787bf40ee1ec4fcda689dd, }, w6: u384 { limb0: 0xfea2207bf83b083edaec48d, limb1: 0x56ec0628b19c88ac3509ee59, limb2: 0xdce6df9d6356a49cfa7be939, - limb3: 0xa129c5eacf5007b4017903f + limb3: 0xa129c5eacf5007b4017903f, }, w7: u384 { limb0: 0x7f35eeca0fe509ee67c64e16, limb1: 0x22974c5959938b9f3e46105a, limb2: 0xc7c4600f40ead9eb9490a9f4, - limb3: 0x15046bc6339839205648fadf + limb3: 0x15046bc6339839205648fadf, }, w8: u384 { limb0: 0xa21448412d3ffb80428de754, limb1: 0x827ced6dae74bf5e96a32255, limb2: 0xf9bbd39a28016ed731e6e059, - limb3: 0x722ec481af965758ec54dc5 + limb3: 0x722ec481af965758ec54dc5, }, w9: u384 { limb0: 0xce216ae1d8e14bf7271ac16c, limb1: 0xb94e6791ac77a6a0433d62b9, limb2: 0x3e111b324effa05625e27a94, - limb3: 0x2b40e9025d3fe7aa42ca1f3 + limb3: 0x2b40e9025d3fe7aa42ca1f3, }, w10: u384 { limb0: 0x7f4b9395f1c7a7d77553cf29, limb1: 0xc3eeea4ae7ec1466beeb517b, limb2: 0xe20ce2e2665a4ccd9a181970, - limb3: 0x2b7631391bb1216581a4719 - } + limb3: 0x2b7631391bb1216581a4719, + }, }; let res = multi_pairing_check_bls12_381_3P_2F_with_extra_miller_loop_result( - pair0, pair1, pair2, precomputed_miller_loop_result, lines, hint, small_Q + pair0, pair1, pair2, precomputed_miller_loop_result, lines, hint, small_Q, ); assert!(res); } diff --git a/src/src/tests/tower_pairing_tests.cairo b/src/src/tests/tower_pairing_tests.cairo new file mode 100644 index 00000000..f80efd73 --- /dev/null +++ b/src/src/tests/tower_pairing_tests.cairo @@ -0,0 +1,1297 @@ +#[cfg(test)] +mod tower_pairing_tests { + use garaga::single_pairing_tower::{ + E12TOne, u384, G1Point, G2Point, E12T, miller_loop_bls12_381_tower, miller_loop_bn254_tower, + final_exp_bls12_381_tower, final_exp_bn254_tower, expt_half_bls12_381_tower, + }; + use garaga::ec_ops::{G1PointImpl}; + use garaga::ec_ops_g2::{G2PointImpl}; + use garaga::circuits::tower_circuits::{ + run_BN254_E12T_MUL_circuit, run_BLS12_381_E12T_MUL_circuit, + }; + + #[test] + fn test_tower_pairing_BN254_1P() { + let mut res: E12T = E12TOne::one(); + + let p0: G1Point = G1Point { + x: u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + y: u384 { limb0: 0x2, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + }; + + p0.assert_on_curve(0); + let q0: G2Point = G2Point { + x0: u384 { + limb0: 0xf75edadd46debd5cd992f6ed, + limb1: 0x426a00665e5c4479674322d4, + limb2: 0x1800deef121f1e76, + limb3: 0x0, + }, + x1: u384 { + limb0: 0x35a9e71297e485b7aef312c2, + limb1: 0x7260bfb731fb5d25f1aa4933, + limb2: 0x198e9393920d483a, + limb3: 0x0, + }, + y0: u384 { + limb0: 0xc43d37b4ce6cc0166fa7daa, + limb1: 0x4aab71808dcb408fe3d1e769, + limb2: 0x12c85ea5db8c6deb, + limb3: 0x0, + }, + y1: u384 { + limb0: 0x70b38ef355acdadcd122975b, + limb1: 0xec9e99ad690c3395bc4b3133, + limb2: 0x90689d0585ff075, + limb3: 0x0, + }, + }; + + q0.assert_on_curve(0); + let (tmp0) = miller_loop_bn254_tower(p0, q0); + let (res) = run_BN254_E12T_MUL_circuit(tmp0, res); + let final = final_exp_bn254_tower(res); + assert_eq!( + final, + E12T { + c0b0a0: u384 { + limb0: 0x898578b55e1f63739d870e95, + limb1: 0xda01bde280a3ed6f87e5feb, + limb2: 0x262b253feda94cfe, + limb3: 0x0, + }, + c0b0a1: u384 { + limb0: 0x918ed66b49d34b48efb8a4a, + limb1: 0xa1b1f823879abbd397c4dea, + limb2: 0x2e02d2cc795a200, + limb3: 0x0, + }, + c0b1a0: u384 { + limb0: 0x87ecb1fc4e135402fdbd1de0, + limb1: 0xa5b1ad44b31977935fd29573, + limb2: 0x13a9f2d6e29b128d, + limb3: 0x0, + }, + c0b1a1: u384 { + limb0: 0x699ce630b130b08a6ea1162b, + limb1: 0x4b31984a74e68659c4b420bd, + limb2: 0x40ba9fa500f1a5c, + limb3: 0x0, + }, + c0b2a0: u384 { + limb0: 0x211ce30bf5e3eeaef89eafdb, + limb1: 0xbe359d7f9873f052478f590b, + limb2: 0xafc2f3fd870678f, + limb3: 0x0, + }, + c0b2a1: u384 { + limb0: 0xcc5a8243f9cddbd2d98dd1f0, + limb1: 0xbdc662d929e645cadda9a712, + limb2: 0x1c54a530398c9064, + limb3: 0x0, + }, + c1b0a0: u384 { + limb0: 0xfd4b7aef5c0d58c5dc2429fe, + limb1: 0x23794a0d856f92591ba990ec, + limb2: 0x95c0fbf5d5a1ac0, + limb3: 0x0, + }, + c1b0a1: u384 { + limb0: 0x590cb4a60f8215d4b99f2b4a, + limb1: 0xa31dc10f7b4053c9e9ad9ebb, + limb2: 0x14d3d6ca72d8a950, + limb3: 0x0, + }, + c1b1a0: u384 { + limb0: 0x43c585fdfaf545838ca7429, + limb1: 0x89dc206b4b91c85759dc1a23, + limb2: 0x1dc0e7bbc3d70e66, + limb3: 0x0, + }, + c1b1a1: u384 { + limb0: 0xac16cc1b7ab2cd3ed5e22b97, + limb1: 0x98a855ffc837d2a75ab90d61, + limb2: 0xb53320e5a6488cb, + limb3: 0x0, + }, + c1b2a0: u384 { + limb0: 0xc42a9c0f9bd7fddaf5ebd723, + limb1: 0x6c91476ef36cd1d318ce07ba, + limb2: 0x13a8afd3085dae4c, + limb3: 0x0, + }, + c1b2a1: u384 { + limb0: 0x43940c383e5314859e762c97, + limb1: 0xb601f3730a3afa965ceee1b3, + limb2: 0xf97b5221474526, + limb3: 0x0, + }, + }, + ); + } + + + #[test] + fn test_tower_pairing_BN254_2P() { + let mut res: E12T = E12TOne::one(); + + let p0: G1Point = G1Point { + x: u384 { + limb0: 0xcdb6d03cb7b9a5409b7efcd8, + limb1: 0xd1df87eab84852372b905c9c, + limb2: 0x1d0634f3f21e7890, + limb3: 0x0, + }, + y: u384 { + limb0: 0xaa1d4f4d3021032564460978, + limb1: 0xeb3f1d6ba3b10e2b53dc193b, + limb2: 0x24c53532773dce26, + limb3: 0x0, + }, + }; + + p0.assert_on_curve(0); + let q0: G2Point = G2Point { + x0: u384 { + limb0: 0xf75edadd46debd5cd992f6ed, + limb1: 0x426a00665e5c4479674322d4, + limb2: 0x1800deef121f1e76, + limb3: 0x0, + }, + x1: u384 { + limb0: 0x35a9e71297e485b7aef312c2, + limb1: 0x7260bfb731fb5d25f1aa4933, + limb2: 0x198e9393920d483a, + limb3: 0x0, + }, + y0: u384 { + limb0: 0xc43d37b4ce6cc0166fa7daa, + limb1: 0x4aab71808dcb408fe3d1e769, + limb2: 0x12c85ea5db8c6deb, + limb3: 0x0, + }, + y1: u384 { + limb0: 0x70b38ef355acdadcd122975b, + limb1: 0xec9e99ad690c3395bc4b3133, + limb2: 0x90689d0585ff075, + limb3: 0x0, + }, + }; + + q0.assert_on_curve(0); + let (tmp0) = miller_loop_bn254_tower(p0, q0); + let (res) = run_BN254_E12T_MUL_circuit(tmp0, res); + let p1: G1Point = G1Point { + x: u384 { + limb0: 0x536c985db33c69f7c242e07a, + limb1: 0xfc531bccffafcf1e59d91fb9, + limb2: 0x2585e4f8a31664cb, + limb3: 0x0, + }, + y: u384 { + limb0: 0x57fa42444057cf0c1d62ae3c, + limb1: 0x4f48d341183118d68ea41313, + limb2: 0x1d2d2799db056ed1, + limb3: 0x0, + }, + }; + + p1.assert_on_curve(0); + let q1: G2Point = G2Point { + x0: u384 { + limb0: 0x335eb0538f718d8e6651eeb1, + limb1: 0x635e573808d9d5c7178bdce7, + limb2: 0x1314aaf1c372e6d7, + limb3: 0x0, + }, + x1: u384 { + limb0: 0x5289f29ccc5acf5e81526673, + limb1: 0x2d4aba9e1448a8cc1048d01a, + limb2: 0x14c25d3aec745e5a, + limb3: 0x0, + }, + y0: u384 { + limb0: 0x10d1d0efd5869ecd23aab8e9, + limb1: 0xba7d1de6d86501d49b6a8dab, + limb2: 0x397391b7b25e2f, + limb3: 0x0, + }, + y1: u384 { + limb0: 0x385a553ea12434f4eda6db36, + limb1: 0xb058c1ff7e4c5c7ec7e5859b, + limb2: 0x1863ac65eca09e89, + limb3: 0x0, + }, + }; + + q1.assert_on_curve(0); + let (tmp1) = miller_loop_bn254_tower(p1, q1); + let (res) = run_BN254_E12T_MUL_circuit(tmp1, res); + let final = final_exp_bn254_tower(res); + assert_eq!( + final, + E12T { + c0b0a0: u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + c0b0a1: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + c0b1a0: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + c0b1a1: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + c0b2a0: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + c0b2a1: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + c1b0a0: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + c1b0a1: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + c1b1a0: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + c1b1a1: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + c1b2a0: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + c1b2a1: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + }, + ); + } + + + #[test] + fn test_tower_pairing_BN254_3P() { + let mut res: E12T = E12TOne::one(); + + let p0: G1Point = G1Point { + x: u384 { + limb0: 0x5c724369afbc772d02aed58e, + limb1: 0x2cd3bc838c66439a3d6160b, + limb2: 0x72f26b55fb56be1, + limb3: 0x0, + }, + y: u384 { + limb0: 0x772ca79c580e121ca148fe75, + limb1: 0xce2f55e418ca01b3d6d1014b, + limb2: 0x2884b1dc4e84e30f, + limb3: 0x0, + }, + }; + + p0.assert_on_curve(0); + let q0: G2Point = G2Point { + x0: u384 { + limb0: 0xa30b422f34656d6c94e40be, + limb1: 0x83069b5050fd7194c7e35d0c, + limb2: 0xf0e8184945e8d34, + limb3: 0x0, + }, + x1: u384 { + limb0: 0xde9079ee8fa5e15901dfef27, + limb1: 0xdb602cf367841e5047ffab14, + limb2: 0x1752c7b6b35af45, + limb3: 0x0, + }, + y0: u384 { + limb0: 0x4dafbd7f615fd2aa9f5a0acc, + limb1: 0x35c8bbffe201ffd56deb5dea, + limb2: 0xa822a5ba029a283, + limb3: 0x0, + }, + y1: u384 { + limb0: 0xec6d9e4fafec17b8404c0341, + limb1: 0x17fe961ad4b8ee3bf2ade626, + limb2: 0x1228147f83e3ea5, + limb3: 0x0, + }, + }; + + q0.assert_on_curve(0); + let (tmp0) = miller_loop_bn254_tower(p0, q0); + let (res) = run_BN254_E12T_MUL_circuit(tmp0, res); + let p1: G1Point = G1Point { + x: u384 { + limb0: 0x5c724369afbc772d02aed58e, + limb1: 0x2cd3bc838c66439a3d6160b, + limb2: 0x72f26b55fb56be1, + limb3: 0x0, + }, + y: u384 { + limb0: 0x772ca79c580e121ca148fe75, + limb1: 0xce2f55e418ca01b3d6d1014b, + limb2: 0x2884b1dc4e84e30f, + limb3: 0x0, + }, + }; + + p1.assert_on_curve(0); + let q1: G2Point = G2Point { + x0: u384 { + limb0: 0xa30b422f34656d6c94e40be, + limb1: 0x83069b5050fd7194c7e35d0c, + limb2: 0xf0e8184945e8d34, + limb3: 0x0, + }, + x1: u384 { + limb0: 0xde9079ee8fa5e15901dfef27, + limb1: 0xdb602cf367841e5047ffab14, + limb2: 0x1752c7b6b35af45, + limb3: 0x0, + }, + y0: u384 { + limb0: 0x4dafbd7f615fd2aa9f5a0acc, + limb1: 0x35c8bbffe201ffd56deb5dea, + limb2: 0xa822a5ba029a283, + limb3: 0x0, + }, + y1: u384 { + limb0: 0xec6d9e4fafec17b8404c0341, + limb1: 0x17fe961ad4b8ee3bf2ade626, + limb2: 0x1228147f83e3ea5, + limb3: 0x0, + }, + }; + + q1.assert_on_curve(0); + let (tmp1) = miller_loop_bn254_tower(p1, q1); + let (res) = run_BN254_E12T_MUL_circuit(tmp1, res); + let p2: G1Point = G1Point { + x: u384 { + limb0: 0x8dcb6db105ead17484cff544, + limb1: 0x95151f1c65bf4c2e698b5634, + limb2: 0xc83f07e39979c6a, + limb3: 0x0, + }, + y: u384 { + limb0: 0x38cf77eafd4a4fdd9e46575, + limb1: 0x3cf1e428854a9a0e559814bc, + limb2: 0x15571140da88fd37, + limb3: 0x0, + }, + }; + + p2.assert_on_curve(0); + let q2: G2Point = G2Point { + x0: u384 { + limb0: 0xa30b422f34656d6c94e40be, + limb1: 0x83069b5050fd7194c7e35d0c, + limb2: 0xf0e8184945e8d34, + limb3: 0x0, + }, + x1: u384 { + limb0: 0xde9079ee8fa5e15901dfef27, + limb1: 0xdb602cf367841e5047ffab14, + limb2: 0x1752c7b6b35af45, + limb3: 0x0, + }, + y0: u384 { + limb0: 0x4dafbd7f615fd2aa9f5a0acc, + limb1: 0x35c8bbffe201ffd56deb5dea, + limb2: 0xa822a5ba029a283, + limb3: 0x0, + }, + y1: u384 { + limb0: 0xec6d9e4fafec17b8404c0341, + limb1: 0x17fe961ad4b8ee3bf2ade626, + limb2: 0x1228147f83e3ea5, + limb3: 0x0, + }, + }; + + q2.assert_on_curve(0); + let (tmp2) = miller_loop_bn254_tower(p2, q2); + let (res) = run_BN254_E12T_MUL_circuit(tmp2, res); + let final = final_exp_bn254_tower(res); + assert_eq!( + final, + E12T { + c0b0a0: u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + c0b0a1: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + c0b1a0: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + c0b1a1: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + c0b2a0: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + c0b2a1: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + c1b0a0: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + c1b0a1: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + c1b1a0: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + c1b1a1: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + c1b2a0: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + c1b2a1: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + }, + ); + } + + + #[test] + fn test_tower_pairing_BLS12_381_1P() { + let mut res: E12T = E12TOne::one(); + + let p0: G1Point = G1Point { + x: u384 { + limb0: 0xf97a1aeffb3af00adb22c6bb, + limb1: 0xa14e3a3f171bac586c55e83f, + limb2: 0x4fa9ac0fc3688c4f9774b905, + limb3: 0x17f1d3a73197d7942695638c, + }, + y: u384 { + limb0: 0xa2888ae40caa232946c5e7e1, + limb1: 0xdb18cb2c04b3edd03cc744, + limb2: 0x741d8ae4fcf5e095d5d00af6, + limb3: 0x8b3f481e3aaa0f1a09e30ed, + }, + }; + + p0.assert_on_curve(1); + let q0: G2Point = G2Point { + x0: u384 { + limb0: 0xa805bbefd48056c8c121bdb8, + limb1: 0xb4510b647ae3d1770bac0326, + limb2: 0x2dc51051c6e47ad4fa403b02, + limb3: 0x24aa2b2f08f0a9126080527, + }, + x1: u384 { + limb0: 0x13945d57e5ac7d055d042b7e, + limb1: 0xb5da61bbdc7f5049334cf112, + limb2: 0x88274f65596bd0d09920b61a, + limb3: 0x13e02b6052719f607dacd3a0, + }, + y0: u384 { + limb0: 0x3baca289e193548608b82801, + limb1: 0x6d429a695160d12c923ac9cc, + limb2: 0xda2e351aadfd9baa8cbdd3a7, + limb3: 0xce5d527727d6e118cc9cdc6, + }, + y1: u384 { + limb0: 0x5cec1da1aaa9075ff05f79be, + limb1: 0x267492ab572e99ab3f370d27, + limb2: 0x2bc28b99cb3e287e85a763af, + limb3: 0x606c4a02ea734cc32acd2b0, + }, + }; + + q0.assert_on_curve(1); + let (tmp0) = miller_loop_bls12_381_tower(p0, q0); + let (res) = run_BLS12_381_E12T_MUL_circuit(tmp0, res); + let final = final_exp_bls12_381_tower(res); + assert_eq!( + final, + E12T { + c0b0a0: u384 { + limb0: 0x839c508a84305aaca1789b6, + limb1: 0x3dd8e90ce98db3e7b6d194f6, + limb2: 0x68d0d727272d441befa15c50, + limb3: 0x1250ebd871fc0a92a7b2d831, + }, + c0b0a1: u384 { + limb0: 0x50439f1d59882a98eaa0170f, + limb1: 0xaf5af689452eafabf1a8943e, + limb2: 0xa532348868a84045483c92b7, + limb3: 0x89a1c5b46e5110b86750ec6, + }, + c0b1a0: u384 { + limb0: 0x9396b38c881c4c849ec23e87, + limb1: 0x16da0e22a5031b54ddff5730, + limb2: 0x689ce34c0378a68e72a6b3b2, + limb3: 0x1368bb445c7c2d209703f239, + }, + c0b1a1: u384 { + limb0: 0x579973b1315021ec3c19934f, + limb1: 0x7c90d8bd66065b1fffe51d7a, + limb2: 0x5a50512937e0794e1e65a761, + limb3: 0x193502b86edb8857c273fa07, + }, + c0b2a0: u384 { + limb0: 0xbbaad8431dad1c1fb597aaa5, + limb1: 0x185203fcca589ac719c34dff, + limb2: 0x4dc4007cfbf2f8da752f7c74, + limb3: 0x1b2f522473d171391125ba8, + }, + c0b2a1: u384 { + limb0: 0xa35c8ca78beae9624045b4b6, + limb1: 0x8061e55cceba478b23f7daca, + limb2: 0x7a45b84546da634b8f6be14a, + limb3: 0x18107154f25a764bd3c7993, + }, + c1b0a0: u384 { + limb0: 0x86a8703e0f948226e47ee89d, + limb1: 0xdea54d43b2b73f2cbb12d583, + limb2: 0xc3d5a04dc88784fbb3d0b2db, + limb3: 0x19f26337d205fb469cd6bd15, + }, + c1b0a1: u384 { + limb0: 0xff02f0b8102ae1c2d5d5ab1a, + limb1: 0xa7d2809d61bfe02e1bfd1b68, + limb2: 0xa771b6ffd5857baaf222eb95, + limb3: 0x6fba23eb7c5af0d9f80940c, + }, + c1b1a0: u384 { + limb0: 0x1e32fac91b93b47333e2ba57, + limb1: 0x7d0d15ff7b984e8978ef4888, + limb2: 0x3b0b0ec5c81a93b330ee1a67, + limb3: 0x11b8b424cd48bf38fcef6808, + }, + c1b1a1: u384 { + limb0: 0xa09ffdd9be2291a0c25a99a2, + limb1: 0x20c806ad360829107ba810c5, + limb2: 0x6ce5771cc6a0e9786ab59733, + limb3: 0x3350f55a7aefcd3c31b4fcb, + }, + c1b2a0: u384 { + limb0: 0x66245cb9108f0242d0fe3ef, + limb1: 0x1c7cdba7b3872629a4fafc05, + limb2: 0x728ffd21a189e87935a95405, + limb3: 0x4c581234d086a9902249b64, + }, + c1b2a1: u384 { + limb0: 0xafe47e1efde449383b676631, + limb1: 0xdeff686bfd6df543d48eaa24, + limb2: 0xd01a7ec73baca4d72ca93544, + limb3: 0xf41e58663bf08cf068672cb, + }, + }, + ); + } + + + #[test] + fn test_tower_pairing_BLS12_381_2P() { + let mut res: E12T = E12TOne::one(); + + let p0: G1Point = G1Point { + x: u384 { + limb0: 0xfe174bb39be8658ef83c8c2d, + limb1: 0xdb24ddec0e0c3b63d82efa81, + limb2: 0xe360a80121d5ef96fd687003, + limb3: 0x59d2a79bda5f8a941d4db9, + }, + y: u384 { + limb0: 0x7f68344f543e52fe891285a9, + limb1: 0x6f6992be16bc35f88c471acf, + limb2: 0xcebb5ee96e40a033f5d3b798, + limb3: 0x2df47e8cdf189985d5085bd, + }, + }; + + p0.assert_on_curve(1); + let q0: G2Point = G2Point { + x0: u384 { + limb0: 0xa805bbefd48056c8c121bdb8, + limb1: 0xb4510b647ae3d1770bac0326, + limb2: 0x2dc51051c6e47ad4fa403b02, + limb3: 0x24aa2b2f08f0a9126080527, + }, + x1: u384 { + limb0: 0x13945d57e5ac7d055d042b7e, + limb1: 0xb5da61bbdc7f5049334cf112, + limb2: 0x88274f65596bd0d09920b61a, + limb3: 0x13e02b6052719f607dacd3a0, + }, + y0: u384 { + limb0: 0x3baca289e193548608b82801, + limb1: 0x6d429a695160d12c923ac9cc, + limb2: 0xda2e351aadfd9baa8cbdd3a7, + limb3: 0xce5d527727d6e118cc9cdc6, + }, + y1: u384 { + limb0: 0x5cec1da1aaa9075ff05f79be, + limb1: 0x267492ab572e99ab3f370d27, + limb2: 0x2bc28b99cb3e287e85a763af, + limb3: 0x606c4a02ea734cc32acd2b0, + }, + }; + + q0.assert_on_curve(1); + let (tmp0) = miller_loop_bls12_381_tower(p0, q0); + let (res) = run_BLS12_381_E12T_MUL_circuit(tmp0, res); + let p1: G1Point = G1Point { + x: u384 { + limb0: 0xde4f62a6588c9401ffefbd3, + limb1: 0x9bb5f797ac6d3395b71420b5, + limb2: 0xdc39e973aaf31de52219df08, + limb3: 0x105dcc4dce3960447d21d3c1, + }, + y: u384 { + limb0: 0xaefd0d854043fd325dd3c34f, + limb1: 0x9b63c98d9a7845c52e1e2b0f, + limb2: 0x9db0be660d847ccc58358f3f, + limb3: 0x17cb6c41f0c4e1a7394ab62a, + }, + }; + + p1.assert_on_curve(1); + let q1: G2Point = G2Point { + x0: u384 { + limb0: 0x3b3d3c305a70960906e6cb09, + limb1: 0x40e5bf3ff02d81e98b75703a, + limb2: 0x665a5fc010510bd690ddd7b5, + limb3: 0x82dc9154807866eb0f36ccb, + }, + x1: u384 { + limb0: 0xe6709deb0dcf81d4285e5e60, + limb1: 0xb4dcf956002c4efb974ffcee, + limb2: 0x4a6ceebe6375a83dd242851b, + limb3: 0xdd18d077ad5bd58dabb18d8, + }, + y0: u384 { + limb0: 0x61535fe1a90bae7e6692f9b0, + limb1: 0xc91aa58105d3a281b2e84ddb, + limb2: 0x197d3446652372ce5ef50e93, + limb3: 0x4a468eb9e206b9833d8e8e2, + }, + y1: u384 { + limb0: 0x27115c334e82ed4be8da6c10, + limb1: 0x194fa3bf769a2e5a52535277, + limb2: 0x8be8992de81f47ae3341c590, + limb3: 0x198fd0ab6249082bf7007d7e, + }, + }; + + q1.assert_on_curve(1); + let (tmp1) = miller_loop_bls12_381_tower(p1, q1); + let (res) = run_BLS12_381_E12T_MUL_circuit(tmp1, res); + let final = final_exp_bls12_381_tower(res); + assert_eq!( + final, + E12T { + c0b0a0: u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + c0b0a1: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + c0b1a0: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + c0b1a1: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + c0b2a0: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + c0b2a1: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + c1b0a0: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + c1b0a1: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + c1b1a0: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + c1b1a1: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + c1b2a0: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + c1b2a1: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + }, + ); + } + + + #[test] + fn test_tower_pairing_BLS12_381_3P() { + let mut res: E12T = E12TOne::one(); + + let p0: G1Point = G1Point { + x: u384 { + limb0: 0xe4f817e54aede0613c17035c, + limb1: 0xdff1f15010392a6da1f95a6, + limb2: 0xbed78d3d341e911d49f15454, + limb3: 0x18154782ce0913b21588066d, + }, + y: u384 { + limb0: 0x3d77d61326ef5a9a5a681757, + limb1: 0xd3070afd4f0e121de7fcee60, + limb2: 0xdf9ef4088763fe611fb85858, + limb3: 0x11a612bdd0bc09562856a70, + }, + }; + + p0.assert_on_curve(1); + let q0: G2Point = G2Point { + x0: u384 { + limb0: 0x30d2fddc2fa171cdd4d31a55, + limb1: 0x92fab4f255a20d09700542e5, + limb2: 0x4d92a8c02d22b8cea4ff21ab, + limb3: 0x120a838699abaae7ed948194, + }, + x1: u384 { + limb0: 0x51cd5fdc71cf4557ef606935, + limb1: 0x92e1b13e2c93fc9957b17841, + limb2: 0x6143a906b63b7f3476ad6819, + limb3: 0x158186f6f2dd04cfa4e78547, + }, + y0: u384 { + limb0: 0x9f1c7dcdbe4574f05d0c093b, + limb1: 0xcde395f3ee4e353cf25a2e21, + limb2: 0x6a44c4a6d642c3dd98128703, + limb3: 0x2bd32fdfe26d866771e2180, + }, + y1: u384 { + limb0: 0x7060005397ea11f7e9a26050, + limb1: 0xeb8540654b533da9b594fc27, + limb2: 0xfc83cf9d283b7231df1db3f9, + limb3: 0x7ff9623d918ca12e0ff6cce, + }, + }; + + q0.assert_on_curve(1); + let (tmp0) = miller_loop_bls12_381_tower(p0, q0); + let (res) = run_BLS12_381_E12T_MUL_circuit(tmp0, res); + let p1: G1Point = G1Point { + x: u384 { + limb0: 0xe4f817e54aede0613c17035c, + limb1: 0xdff1f15010392a6da1f95a6, + limb2: 0xbed78d3d341e911d49f15454, + limb3: 0x18154782ce0913b21588066d, + }, + y: u384 { + limb0: 0x3d77d61326ef5a9a5a681757, + limb1: 0xd3070afd4f0e121de7fcee60, + limb2: 0xdf9ef4088763fe611fb85858, + limb3: 0x11a612bdd0bc09562856a70, + }, + }; + + p1.assert_on_curve(1); + let q1: G2Point = G2Point { + x0: u384 { + limb0: 0x30d2fddc2fa171cdd4d31a55, + limb1: 0x92fab4f255a20d09700542e5, + limb2: 0x4d92a8c02d22b8cea4ff21ab, + limb3: 0x120a838699abaae7ed948194, + }, + x1: u384 { + limb0: 0x51cd5fdc71cf4557ef606935, + limb1: 0x92e1b13e2c93fc9957b17841, + limb2: 0x6143a906b63b7f3476ad6819, + limb3: 0x158186f6f2dd04cfa4e78547, + }, + y0: u384 { + limb0: 0x9f1c7dcdbe4574f05d0c093b, + limb1: 0xcde395f3ee4e353cf25a2e21, + limb2: 0x6a44c4a6d642c3dd98128703, + limb3: 0x2bd32fdfe26d866771e2180, + }, + y1: u384 { + limb0: 0x7060005397ea11f7e9a26050, + limb1: 0xeb8540654b533da9b594fc27, + limb2: 0xfc83cf9d283b7231df1db3f9, + limb3: 0x7ff9623d918ca12e0ff6cce, + }, + }; + + q1.assert_on_curve(1); + let (tmp1) = miller_loop_bls12_381_tower(p1, q1); + let (res) = run_BLS12_381_E12T_MUL_circuit(tmp1, res); + let p2: G1Point = G1Point { + x: u384 { + limb0: 0x6b2dbb412523879f8e3a96a0, + limb1: 0x6daa411c3d8c33de611bc2fe, + limb2: 0x38ff9a4921f13749974e4731, + limb3: 0x2b2fcedd1d05f99449b4884, + }, + y: u384 { + limb0: 0x845744e5af99690d2a360ec2, + limb1: 0x56b0c0147f0ee90a5c1b6e41, + limb2: 0xdee769045aef4994aab4b4fc, + limb3: 0x32b985c03cd5519d41d0cbb, + }, + }; + + p2.assert_on_curve(1); + let q2: G2Point = G2Point { + x0: u384 { + limb0: 0x30d2fddc2fa171cdd4d31a55, + limb1: 0x92fab4f255a20d09700542e5, + limb2: 0x4d92a8c02d22b8cea4ff21ab, + limb3: 0x120a838699abaae7ed948194, + }, + x1: u384 { + limb0: 0x51cd5fdc71cf4557ef606935, + limb1: 0x92e1b13e2c93fc9957b17841, + limb2: 0x6143a906b63b7f3476ad6819, + limb3: 0x158186f6f2dd04cfa4e78547, + }, + y0: u384 { + limb0: 0x9f1c7dcdbe4574f05d0c093b, + limb1: 0xcde395f3ee4e353cf25a2e21, + limb2: 0x6a44c4a6d642c3dd98128703, + limb3: 0x2bd32fdfe26d866771e2180, + }, + y1: u384 { + limb0: 0x7060005397ea11f7e9a26050, + limb1: 0xeb8540654b533da9b594fc27, + limb2: 0xfc83cf9d283b7231df1db3f9, + limb3: 0x7ff9623d918ca12e0ff6cce, + }, + }; + + q2.assert_on_curve(1); + let (tmp2) = miller_loop_bls12_381_tower(p2, q2); + let (res) = run_BLS12_381_E12T_MUL_circuit(tmp2, res); + let final = final_exp_bls12_381_tower(res); + assert_eq!( + final, + E12T { + c0b0a0: u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + c0b0a1: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + c0b1a0: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + c0b1a1: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + c0b2a0: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + c0b2a1: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + c1b0a0: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + c1b0a1: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + c1b1a0: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + c1b1a1: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + c1b2a0: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + c1b2a1: u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, + }, + ); + } + + + #[test] + fn test_tower_final_exp_BN254() { + let input = E12T { + c0b0a0: u384 { + limb0: 0x9558867f5ba91faf7a024204, + limb1: 0x37ebdcd9e87a1613e443df78, + limb2: 0x8e9dc4681332876, + limb3: 0x0, + }, + c0b0a1: u384 { + limb0: 0xfb97d43588561712e8e5216a, + limb1: 0x9a164106cf6a659eb4862b21, + limb2: 0x967d0cae6f4590b, + limb3: 0x0, + }, + c0b1a0: u384 { + limb0: 0xbad640fb19488dec4f65d4d9, + limb1: 0xd9b8a714e61a441c12e0c8b2, + limb2: 0x1521f387af19922a, + limb3: 0x0, + }, + c0b1a1: u384 { + limb0: 0x19c78df48f4ff31e78de5857, + limb1: 0x50f244556f25e2a25a921187, + limb2: 0x28fcb26f9c6316b9, + limb3: 0x0, + }, + c0b2a0: u384 { + limb0: 0xf77383c13458a748e9bb17bc, + limb1: 0x71545a137a1d50068d723104, + limb2: 0x215ddba6dd84f39e, + limb3: 0x0, + }, + c0b2a1: u384 { + limb0: 0xce164dba0ff18e0242af9fc3, + limb1: 0xea7e9d498c778ea6eb2083e6, + limb2: 0x5f82a8f03983ca8, + limb3: 0x0, + }, + c1b0a0: u384 { + limb0: 0x66194cb1d71037d1b83e90ec, + limb1: 0xc8f8e3d0d3290a4cb5d32b16, + limb2: 0x28045af9ab0c1681, + limb3: 0x0, + }, + c1b0a1: u384 { + limb0: 0x7e5b1e7f9ca5499d004ae545, + limb1: 0x55485822de1b372ad3fbf47a, + limb2: 0x2ebce25e3e70f16a, + limb3: 0x0, + }, + c1b1a0: u384 { + limb0: 0xded733e8b421eaeb534097ca, + limb1: 0xeac1c14f30e9c5cc101fbccc, + limb2: 0xe30658b9148624f, + limb3: 0x0, + }, + c1b1a1: u384 { + limb0: 0xf7b0b7d2cda8056c3d15eef7, + limb1: 0x8b0163c1cd9d2b7d247a8333, + limb2: 0x5d67b7072ae2244, + limb3: 0x0, + }, + c1b2a0: u384 { + limb0: 0x51ef1922fe43c49e149818d1, + limb1: 0xff7b118e820865d6e005b860, + limb2: 0x1f507980eece328b, + limb3: 0x0, + }, + c1b2a1: u384 { + limb0: 0x8d1fd9b74d2b9deb1beb3711, + limb1: 0x1ff39849b4e1357d4a84eb03, + limb2: 0x154bc8ce8c25166a, + limb3: 0x0, + }, + }; + + let res = final_exp_bn254_tower(input); + assert_eq!( + res, + E12T { + c0b0a0: u384 { + limb0: 0xdbc3eb4cffd298b3fa7d5a31, + limb1: 0x9c46ca08e6740e40f6588c03, + limb2: 0x1e656501517e97b6, + limb3: 0x0, + }, + c0b0a1: u384 { + limb0: 0x5c5f9021ddc05b4e8e458180, + limb1: 0xfc9ac0db94ad84f883101197, + limb2: 0x10d35fc577ab954a, + limb3: 0x0, + }, + c0b1a0: u384 { + limb0: 0x8338823c5e5ac5cd9c54b10c, + limb1: 0x1749d62236197afa5b52b1b2, + limb2: 0xc2fb8c574d4a2aa, + limb3: 0x0, + }, + c0b1a1: u384 { + limb0: 0x3fed1e7b4d562acb92ab1a7c, + limb1: 0x215c21048e64e6366563b7bd, + limb2: 0x56befad9198c47f, + limb3: 0x0, + }, + c0b2a0: u384 { + limb0: 0x2e357f74fb161fde82246aaf, + limb1: 0x30461114e53b7faeeabde969, + limb2: 0x160bd4f153a876cc, + limb3: 0x0, + }, + c0b2a1: u384 { + limb0: 0x9953d9fc7152b696a117f008, + limb1: 0x3260659f2890ee7e7fef447, + limb2: 0x2c09cd97bcdf915f, + limb3: 0x0, + }, + c1b0a0: u384 { + limb0: 0x68db7596dac15cee7f675e5b, + limb1: 0xd64fc7fa279a306f05a4f7bb, + limb2: 0x1badb5f4113cf175, + limb3: 0x0, + }, + c1b0a1: u384 { + limb0: 0xd43446d44724e68a5d3e0ce0, + limb1: 0x1ad7eb734406471bac65ff96, + limb2: 0x15027bc7d1c7191b, + limb3: 0x0, + }, + c1b1a0: u384 { + limb0: 0x75668ecaf7e92d7d38d72226, + limb1: 0x2f055eefa07fed95961aa90e, + limb2: 0x231ea84923202c33, + limb3: 0x0, + }, + c1b1a1: u384 { + limb0: 0x5d2ac3131b5214c54a04b4ca, + limb1: 0x5a879571728f9d6a335a11b6, + limb2: 0x1a88b1de9b27f1fe, + limb3: 0x0, + }, + c1b2a0: u384 { + limb0: 0x1c3137fb1e4efedec89693d5, + limb1: 0x90787e810e0d14fcd37605c5, + limb2: 0x27a6e50c674c3d45, + limb3: 0x0, + }, + c1b2a1: u384 { + limb0: 0x36b1cc116e2ac5e8f8918e00, + limb1: 0xcb7e94a03ed3261502d9cf46, + limb2: 0xbec9af879f51f8, + limb3: 0x0, + }, + }, + ); + } + + + #[test] + fn test_tower_final_exp_BLS12_381() { + let input = E12T { + c0b0a0: u384 { + limb0: 0x4da5e709d4713d60c8a70639, + limb1: 0x5ba91faf7a024204f7c1bd87, + limb2: 0xe87a1613e443df789558867f, + limb3: 0x474ee238133287637ebdcd9, + }, + c0b0a1: u384 { + limb0: 0xc17c627923c6612f48268673, + limb1: 0xcca5a5a19e4d6e3c1846d424, + limb2: 0xe8e5216afcbd04c340212ef7, + limb3: 0x1690c564fb97d43588561712, + }, + c0b1a0: u384 { + limb0: 0xe6f4590b9a164106cf6a659e, + limb1: 0x19488dec4f65d4d9259f4329, + limb2: 0xe61a441c12e0c8b2bad640fb, + limb3: 0xa90f9c3af19922ad9b8a714, + }, + c0b1a1: u384 { + limb0: 0x19c78df48f4ff31e78de5857, + limb1: 0x50f244556f25e2a25a921187, + limb2: 0xe9bb17bca3f2c9bf9c6316b9, + limb3: 0x11ae4620f77383c13458a748, + }, + c0b2a0: u384 { + limb0: 0xdd84f39e71545a137a1d5006, + limb1: 0xff18e0242af9fc385776e9a, + limb2: 0x8c778ea6eb2083e6ce164dba, + limb3: 0x2fc154703983ca8ea7e9d49, + }, + c0b2a1: u384 { + limb0: 0x3e70f16a55485822de1b372a, + limb1: 0xb421eaeb534097cabaf3897a, + limb2: 0x30e9c5cc101fbcccded733e8, + limb3: 0x71832c59148624feac1c14f, + }, + c1b0a0: u384 { + limb0: 0xeece328bff7b118e820865d6, + limb1: 0x4d2b9deb1beb37117d41e602, + limb2: 0xb4e1357d4a84eb038d1fd9b7, + limb3: 0xaa5e4678c25166a1ff39849, + }, + c1b0a1: u384 { + limb0: 0x8a5006c1ec188efbd080e66e, + limb1: 0xcca74147f6be1f723405095c, + limb2: 0x966e12778c1745a79a6a5f92, + limb3: 0x2eea66d71eacd0549a3e80e, + }, + c1b1a0: u384 { + limb0: 0x6288e1a5cc45782198a6416d, + limb1: 0x3dfabc08935ddd725129fb7c, + limb2: 0x307bf3262f1205544a5308cc, + limb3: 0x10e1c2b2fcd81b5d24bace4, + }, + c1b1a1: u384 { + limb0: 0xa81ad477fb3675b89cdeb3e6, + limb1: 0x11af923d79fdef7c42930b33, + limb2: 0xc1f254b8adc0da7a16febaa0, + limb3: 0x4c91dc7e07405eb215663ab, + }, + c1b2a0: u384 { + limb0: 0x151665705b7c709acb175a5a, + limb1: 0x1d878f9f9cdf5a865306f3f5, + limb2: 0xa1515607964a870c7c879b74, + limb3: 0x6179561d857010255d44936, + }, + c1b2a1: u384 { + limb0: 0xbb42e0b20426465e3e37952d, + limb1: 0xb490b6081dfc83524562be7f, + limb2: 0xcb69ca385f3f563838701a14, + limb3: 0xda2ddc3552116dd2ba4b180, + }, + }; + + let res = final_exp_bls12_381_tower(input); + assert_eq!( + res, + E12T { + c0b0a0: u384 { + limb0: 0xc47661ee2c6ec195b6465492, + limb1: 0x6923c966026d1a5202d2547f, + limb2: 0x3ca333e30f3750a593c5dd62, + limb3: 0x16211c8f3af6c885d6e7aae7, + }, + c0b0a1: u384 { + limb0: 0x18ef376237b7b85323d0d503, + limb1: 0x6e98bbb5ebf752814d657668, + limb2: 0xf72474b60f257f5566c184d6, + limb3: 0x6298b60c51ccfdaa550d764, + }, + c0b1a0: u384 { + limb0: 0x348c2c399e7bd6de56256576, + limb1: 0xf4a77fefb18543958b97e185, + limb2: 0x5d0aab75be4368260e7d2ed9, + limb3: 0x158469853e297d165ee80a77, + }, + c0b1a1: u384 { + limb0: 0x72f3c5aec1469c18e1fdbce1, + limb1: 0x51ddbb4388643f1a6efaf631, + limb2: 0x34f1e1e014398ac114bd5c0, + limb3: 0x10e831545a67da3f9fdf361a, + }, + c0b2a0: u384 { + limb0: 0xf0e118cc2ee8a943979abc0c, + limb1: 0x6e7b8556c21ea7bb63547b6d, + limb2: 0x4479c64648fd5135f004569a, + limb3: 0x9c3267b433303abded9ab0, + }, + c0b2a1: u384 { + limb0: 0xe5fa5528617a7773128a3a1f, + limb1: 0x6be496fac02353edcae1c79e, + limb2: 0x4f9bbd2d6d5199cbf179da1f, + limb3: 0x17f02c9ce45af7421efccde, + }, + c1b0a0: u384 { + limb0: 0xd2192367be40c767eecd94f0, + limb1: 0x5a094323a3c2b121fc6db025, + limb2: 0xe70f56b994092e1f7d106f54, + limb3: 0x12ac5958b941614ac10d5ff6, + }, + c1b0a1: u384 { + limb0: 0x96dcae9f5d11d83ff8ee58e0, + limb1: 0x1539f36298c543196ff7521, + limb2: 0xf4f41990abca0c681a3221f6, + limb3: 0x11aa8e62757ec2cbf6c16ffc, + }, + c1b1a0: u384 { + limb0: 0xffb243b8fb10435f6ea824db, + limb1: 0x1bda384d4058fd317cf9270f, + limb2: 0x3f176c05329fa1b37897428a, + limb3: 0x9ffc940d1185cb35015aa48, + }, + c1b1a1: u384 { + limb0: 0x74d71b12604949416f2e7fad, + limb1: 0x84b612cd1cafbc9b8af3e707, + limb2: 0xe4855dd3d16e5ae18223225e, + limb3: 0x801946300201b84e305ee6, + }, + c1b2a0: u384 { + limb0: 0xbb3b943ceffbff6187a09c3a, + limb1: 0x8c71050ce550d5e89695deb2, + limb2: 0x2fd70aa73c133a3e0e483ef2, + limb3: 0x7f835c51a9434870d20cedf, + }, + c1b2a1: u384 { + limb0: 0xcb5beb0bdcff8c233260205d, + limb1: 0x987fe621d66e1a6dca01005b, + limb2: 0xf19f8ff647ec05851ed472a9, + limb3: 0x9f783e3dcba8af017c07469, + }, + }, + ); + } + + + #[test] + fn test_expt_half_BLS12_381() { + let input = E12T { + c0b0a0: u384 { + limb0: 0xe3ac2758b1f2a23159402205, + limb1: 0x776adf14829933202da5751a, + limb2: 0x5bace5b80e293dd7b75ca30d, + limb3: 0x275df6cfc4cc34ee2e1426f, + }, + c0b0a1: u384 { + limb0: 0x6a1a0fac0380ab822cb9f49, + limb1: 0xf1a5da70f2bcb8f5e6d189b5, + limb2: 0xb9605d6164ac88b2e58734aa, + limb3: 0x6178fc2e2d96839d3ccabe6, + }, + c0b1a0: u384 { + limb0: 0xb343ef57150681832154ce9e, + limb1: 0x32d7b542146ded07806e3543, + limb2: 0xf0531ecdf071f340be23eb71, + limb3: 0x17bfe8e4c08234e0c2e85f61, + }, + c0b1a1: u384 { + limb0: 0x6a48ae9e0d45a65b46b124f0, + limb1: 0x22c3a45726890fc3e75712b9, + limb2: 0xa3e43a38db3ee9b2759e745f, + limb3: 0xb509ee1722d55991cbc266e, + }, + c0b2a0: u384 { + limb0: 0x3e65e1d198488c5b45547fde, + limb1: 0x32b590108b32373abcc44192, + limb2: 0xb6c8b2c2cacad9bd22b87f0b, + limb3: 0x17341bebcfb46b3919e1140c, + }, + c0b2a1: u384 { + limb0: 0xb9cab821cbd975c0ffdc67c8, + limb1: 0x844bfef770ab7fc0ff7c585e, + limb2: 0xc34fb405e0719e218adf4cda, + limb3: 0xb7d87719c2bab9241194b3d, + }, + c1b0a0: u384 { + limb0: 0xc8de1b0b73c9757d8479766c, + limb1: 0xa5f030312159f381a92d1668, + limb2: 0x808b453867425d4ce92ab0ca, + limb3: 0xc98aa88897c0c6b2edc28db, + }, + c1b0a1: u384 { + limb0: 0xb264c3a73b8175a6ee83c940, + limb1: 0x6a26e058e811ef6ad4df2948, + limb2: 0xb39592c43801e887c11cb17a, + limb3: 0xe67f58b04c48f601737c58c, + }, + c1b1a0: u384 { + limb0: 0x4616073a64ebfc2e37d002b4, + limb1: 0xbcedb779f425f193e5a05990, + limb2: 0x3004f59b738b8cf2dacd9d, + limb3: 0x18510173ebccf15dcfb67bb4, + }, + c1b1a1: u384 { + limb0: 0x68785e9d2a8c1f3cd22b74c9, + limb1: 0xc13aa5c90a3964b3118e07ee, + limb2: 0xdd71679943a514616d96a409, + limb3: 0x5e9a73cd8bcc623956a00f0, + }, + c1b2a0: u384 { + limb0: 0xd054b25067025ef528684ca5, + limb1: 0xb98b233f22590428ff65e7e7, + limb2: 0x863f94e6f59dd2cc1b29aa15, + limb3: 0x40a30f80f41371306ace4d3, + }, + c1b2a1: u384 { + limb0: 0x82ff7f662c94e86e681d04bc, + limb1: 0x68fbbcb98776e529c74002eb, + limb2: 0xabac2de4cc82c3c718a21a75, + limb3: 0x8f53b1c2901726845866899, + }, + }; + + let (res) = expt_half_bls12_381_tower(input); + assert_eq!( + res, + E12T { + c0b0a0: u384 { + limb0: 0x931e7dfdbe1f652c188eaa4b, + limb1: 0x82aaa351edc988786951ca9a, + limb2: 0x54412c1075ce2746c44fbaaa, + limb3: 0x194d674d95de505092e97747, + }, + c0b0a1: u384 { + limb0: 0xb22a60296aec52df8de3aa42, + limb1: 0x8be8af04ee32ae90e6f92ff0, + limb2: 0xdb264c1d022ccaa31f5f1e55, + limb3: 0x13c2c104d8418aa6c186c863, + }, + c0b1a0: u384 { + limb0: 0xf16f15e433e53d884ca450ae, + limb1: 0xbab8e1a90f84f24c7d8d7bb7, + limb2: 0x7c33ac5908cc4d224c8cb672, + limb3: 0x11c649a221098f0592d9e573, + }, + c0b1a1: u384 { + limb0: 0xa4ab60885ce8a47203eef11b, + limb1: 0x3de6b25ed023824c36351f47, + limb2: 0x257f17e0eeb3654697159a62, + limb3: 0xc742afcd12178eb714c25e4, + }, + c0b2a0: u384 { + limb0: 0x2db3c373e66b30e10f9f9d45, + limb1: 0x92e88c066844966e118c3c8d, + limb2: 0x16fd097082cf86fa0ee9b179, + limb3: 0x5c0754baecbd25ec3c53996, + }, + c0b2a1: u384 { + limb0: 0x21f88494e25abb2762bde18a, + limb1: 0x23a58e293f380741a2997a6f, + limb2: 0x76ea54dc279a3301a304e3e8, + limb3: 0x9f6038c6be05423ebd3e178, + }, + c1b0a0: u384 { + limb0: 0x18a242496526b14c50bed73d, + limb1: 0xc27c41f74df1b94a3b251ca4, + limb2: 0x147ca1df5c1a39cd188fe196, + limb3: 0x3a62857263f7afc342bdfee, + }, + c1b0a1: u384 { + limb0: 0x357719d10ab8c0520084939d, + limb1: 0x50cfb756fa9f6a5b5a853d6d, + limb2: 0xcc89f28f2729e44b3d552e9b, + limb3: 0xb4601ced0c45e2775128a73, + }, + c1b1a0: u384 { + limb0: 0xba340a1342aeb93bc2367f71, + limb1: 0x1130eb422f714c3af0319aba, + limb2: 0x5411d9cdd1e37a8eb4a23883, + limb3: 0x58ca7e22399842e52f7e7ac, + }, + c1b1a1: u384 { + limb0: 0xd91a1802a0ad0f168e57d558, + limb1: 0x3bb71c240214073cb08bb41f, + limb2: 0xc5406201fb75fb66ae611a4d, + limb3: 0x189532247da029ae9a0264af, + }, + c1b2a0: u384 { + limb0: 0xe850c7a5f139c398a432d6e3, + limb1: 0xece47d0aaef590d0e590a168, + limb2: 0xd480c1d152ba8c62fc7ca716, + limb3: 0xa0f18b8c690d4e3461ee05a, + }, + c1b2a1: u384 { + limb0: 0x76c2ba1ef05a96b90f9fdeb1, + limb1: 0xf777cac315947753c4e6f4a9, + limb2: 0x601635ad906b95586d6c73f9, + limb3: 0x90e534b3e561c1a32ac874c, + }, + }, + ); + } +} diff --git a/src/src/utils.cairo b/src/src/utils.cairo index bb7d9d1d..d92fe55d 100644 --- a/src/src/utils.cairo +++ b/src/src/utils.cairo @@ -3,10 +3,12 @@ pub mod hashing; pub mod calldata; pub mod risc0; pub mod drand; -use core::circuit::{u384, u96}; +pub mod noir; +use core::circuit::{u384, u96}; +use core::panic_with_felt252; -fn u384_assert_zero(x: u384) { +pub fn u384_assert_zero(x: u384) { if x.limb0 != 0 { panic_with_felt252('not zero l0'); } @@ -21,7 +23,7 @@ fn u384_assert_zero(x: u384) { } } -fn u384_assert_eq(x: u384, y: u384) { +pub fn u384_assert_eq(x: u384, y: u384) { if x.limb0 != y.limb0 { panic_with_felt252('not equal l0'); } @@ -35,7 +37,7 @@ fn u384_assert_eq(x: u384, y: u384) { panic_with_felt252('not equal l3'); } } -fn usize_assert_eq(x: usize, y: usize) { +pub fn usize_assert_eq(x: usize, y: usize) { if x != y { panic_with_felt252('not equal usize'); } diff --git a/src/src/utils/calldata.cairo b/src/src/utils/calldata.cairo index 52393af5..1c702134 100644 --- a/src/src/utils/calldata.cairo +++ b/src/src/utils/calldata.cairo @@ -1,33 +1,34 @@ use garaga::groth16::{Groth16Proof, Groth16ProofRaw, MPCheckHintBN254, MPCheckHintBLS12_381}; use garaga::definitions::{ - G1Point, G2Point, E12DMulQuotient, u384, u288, E12D, MillerLoopResultScalingFactor + G1Point, G2Point, E12DMulQuotient, u288, E12D, MillerLoopResultScalingFactor, }; - +use core::RangeCheck; +use core::circuit::u384; #[derive(Drop, Serde)] -struct FullProofWithHintsBN254 { - groth16_proof: Groth16Proof, - mpcheck_hint: MPCheckHintBN254, - small_Q: E12DMulQuotient, - msm_hint: Array, +pub struct FullProofWithHintsBN254 { + pub groth16_proof: Groth16Proof, + pub mpcheck_hint: MPCheckHintBN254, + pub small_Q: E12DMulQuotient, + pub msm_hint: Array, } #[derive(Drop, Serde)] -struct FullProofWithHintsBLS12_381 { - groth16_proof: Groth16Proof, - mpcheck_hint: MPCheckHintBLS12_381, - small_Q: E12DMulQuotient, - msm_hint: Array, +pub struct FullProofWithHintsBLS12_381 { + pub groth16_proof: Groth16Proof, + pub mpcheck_hint: MPCheckHintBLS12_381, + pub small_Q: E12DMulQuotient, + pub msm_hint: Array, } #[derive(Serde, Drop)] -struct FullProofWithHintsRisc0 { - groth16_proof: Groth16ProofRaw, - image_id: Span, - journal: Span, - mpcheck_hint: MPCheckHintBN254, - small_Q: E12DMulQuotient, - msm_hint: Array, +pub struct FullProofWithHintsRisc0 { + pub groth16_proof: Groth16ProofRaw, + pub image_id: Span, + pub journal: Span, + pub mpcheck_hint: MPCheckHintBN254, + pub small_Q: E12DMulQuotient, + pub msm_hint: Array, } const U288_N_LIMBS: usize = 3; @@ -53,7 +54,7 @@ fn downcast_u384(l0: felt252, l1: felt252, l2: felt252, l3: felt252) -> u384 { fn deserialize_full_proof_with_hints_risc0( - mut serialized: Span + mut serialized: Span, ) -> FullProofWithHintsRisc0 { let [ a_x_l0, @@ -112,17 +113,15 @@ fn deserialize_full_proof_with_hints_risc0( let n_image_id: u32 = (*serialized.pop_front().unwrap()).try_into().unwrap(); let mut image_id: Array = array![]; - for _ in 0 - ..n_image_id { - image_id.append((*serialized.pop_front().unwrap()).try_into().unwrap()); - }; + for _ in 0..n_image_id { + image_id.append((*serialized.pop_front().unwrap()).try_into().unwrap()); + }; let n_journal: u32 = (*serialized.pop_front().unwrap()).try_into().unwrap(); let mut journal: Array = array![]; - for _ in 0 - ..n_journal { - journal.append((*serialized.pop_front().unwrap()).try_into().unwrap()); - }; + for _ in 0..n_journal { + journal.append((*serialized.pop_front().unwrap()).try_into().unwrap()); + }; let groth16_proof = Groth16ProofRaw { a: a, b: b, c: c }; let [ @@ -262,7 +261,7 @@ fn deserialize_full_proof_with_hints_risc0( w8_l2, w10_l0, w10_l1, - w10_l2 + w10_l2, ] = (*serialized .multi_pop_front::<18>() @@ -280,13 +279,13 @@ fn deserialize_full_proof_with_hints_risc0( w8: downcast_u288(w8_l0, w8_l1, w8_l2), w10: downcast_u288(w10_l0, w10_l1, w10_l2), }; - // usize_assert_eq(mpcheck_hint.Ris.len(), 52); - // 52 * 12 * 3 = 1872 - let mut ris_slice = serialized.slice(1, 1872); + // usize_assert_eq(mpcheck_hint.Ris.len(), 35); + // 35 * 12 * 3 = 1260 + let mut ris_slice = serialized.slice(1, 1260); // println!("ris_slice.len(): {}", ris_slice.len()); let end = serialized.len(); - let serialized = serialized.slice(1873, end - 1872 - 1); + let serialized = serialized.slice(1261, end - 1260 - 1); // println!("serialized.len(): {}", serialized.len()); let mut Ris = array![]; while let Option::Some(ri) = ris_slice.multi_pop_front::<36>() { @@ -345,12 +344,12 @@ fn deserialize_full_proof_with_hints_risc0( w9: downcast_u288(w9l0, w9l1, w9l2), w10: downcast_u288(w10l0, w10l1, w10l2), w11: downcast_u288(w11l0, w11l1, w11l2), - } + }, ) }; - // usize_assert_eq(mpcheck_hint.big_Q.len(), 114); - let mut big_q_slice = serialized.slice(1, 114 * 3); - let mut serialized = serialized.slice(114 * 3 + 1, serialized.len() - 114 * 3 - 1); + // usize_assert_eq(mpcheck_hint.big_Q.len(), 190); + let mut big_q_slice = serialized.slice(1, 190 * 3); + let mut serialized = serialized.slice(190 * 3 + 1, serialized.len() - 190 * 3 - 1); let mut big_q = array![]; while let Option::Some(q) = big_q_slice.multi_pop_front::<3>() { @@ -432,12 +431,12 @@ fn deserialize_full_proof_with_hints_risc0( journal: journal.span(), mpcheck_hint: mpcheck_hint, small_Q: small_Q, - msm_hint: msm_hint + msm_hint: msm_hint, }; } fn deserialize_full_proof_with_hints_bn254( - mut serialized: Span + mut serialized: Span, ) -> FullProofWithHintsBN254 { let [ a_x_l0, @@ -496,16 +495,15 @@ fn deserialize_full_proof_with_hints_bn254( let n_public_inputs: u32 = (*serialized.pop_front().unwrap()).try_into().unwrap(); let mut public_inputs = array![]; - for _ in 0 - ..n_public_inputs { - public_inputs - .append( - u256 { - low: (*serialized.pop_front().unwrap()).try_into().unwrap(), - high: (*serialized.pop_front().unwrap()).try_into().unwrap() - } - ); - }; + for _ in 0..n_public_inputs { + public_inputs + .append( + u256 { + low: (*serialized.pop_front().unwrap()).try_into().unwrap(), + high: (*serialized.pop_front().unwrap()).try_into().unwrap(), + }, + ); + }; let groth16_proof = Groth16Proof { a: a, b: b, c: c, public_inputs: public_inputs.span() }; let [ @@ -642,7 +640,7 @@ fn deserialize_full_proof_with_hints_bn254( w8_l2, w10_l0, w10_l1, - w10_l2 + w10_l2, ] = (*serialized .multi_pop_front::<18>() @@ -660,13 +658,13 @@ fn deserialize_full_proof_with_hints_bn254( w8: downcast_u288(w8_l0, w8_l1, w8_l2), w10: downcast_u288(w10_l0, w10_l1, w10_l2), }; - // usize_assert_eq(mpcheck_hint.Ris.len(), 52); - // 52 * 12 * 3 = 1872 - let mut ris_slice = serialized.slice(1, 1872); + // usize_assert_eq(mpcheck_hint.Ris.len(), 35); + // 35 * 12 * 3 = 1260 + let mut ris_slice = serialized.slice(1, 1260); // println!("ris_slice.len(): {}", ris_slice.len()); let end = serialized.len(); - let serialized = serialized.slice(1873, end - 1872 - 1); + let serialized = serialized.slice(1261, end - 1260 - 1); // println!("serialized.len(): {}", serialized.len()); let mut Ris = array![]; while let Option::Some(ri) = ris_slice.multi_pop_front::<36>() { @@ -725,12 +723,12 @@ fn deserialize_full_proof_with_hints_bn254( w9: downcast_u288(w9l0, w9l1, w9l2), w10: downcast_u288(w10l0, w10l1, w10l2), w11: downcast_u288(w11l0, w11l1, w11l2), - } + }, ) }; - // usize_assert_eq(mpcheck_hint.big_Q.len(), 114); - let mut big_q_slice = serialized.slice(1, 114 * 3); - let mut serialized = serialized.slice(114 * 3 + 1, serialized.len() - 114 * 3 - 1); + // usize_assert_eq(mpcheck_hint.big_Q.len(), 190); + let mut big_q_slice = serialized.slice(1, 190 * 3); + let mut serialized = serialized.slice(190 * 3 + 1, serialized.len() - 190 * 3 - 1); let mut big_q = array![]; while let Option::Some(q) = big_q_slice.multi_pop_front::<3>() { @@ -806,11 +804,11 @@ fn deserialize_full_proof_with_hints_bn254( for x in serialized { msm_hint.append(*x); }; - return FullProofWithHintsBN254 { groth16_proof, mpcheck_hint, small_Q, msm_hint, }; + return FullProofWithHintsBN254 { groth16_proof, mpcheck_hint, small_Q, msm_hint }; } fn deserialize_full_proof_with_hints_bls12_381( - mut serialized: Span + mut serialized: Span, ) -> FullProofWithHintsBLS12_381 { let [ a_x_l0, @@ -869,16 +867,15 @@ fn deserialize_full_proof_with_hints_bls12_381( let n_public_inputs: u32 = (*serialized.pop_front().unwrap()).try_into().unwrap(); let mut public_inputs = array![]; - for _ in 0 - ..n_public_inputs { - public_inputs - .append( - u256 { - low: (*serialized.pop_front().unwrap()).try_into().unwrap(), - high: (*serialized.pop_front().unwrap()).try_into().unwrap() - } - ); - }; + for _ in 0..n_public_inputs { + public_inputs + .append( + u256 { + low: (*serialized.pop_front().unwrap()).try_into().unwrap(), + high: (*serialized.pop_front().unwrap()).try_into().unwrap(), + }, + ); + }; // full_len -= (1 + 2 * n_public_inputs); // assert(full_len == serialized.len(), 'C'); @@ -1068,7 +1065,7 @@ fn deserialize_full_proof_with_hints_bls12_381( w9: downcast_u384(w9l0, w9l1, w9l2, w9l3), w10: downcast_u384(w10l0, w10l1, w10l2, w10l3), w11: downcast_u384(w11l0, w11l1, w11l2, w11l3), - } + }, ) }; // usize_assert_eq(mpcheck_hint.big_Q.len(), 105); @@ -1156,5 +1153,5 @@ fn deserialize_full_proof_with_hints_bls12_381( for x in serialized { msm_hint.append(*x); }; - return FullProofWithHintsBLS12_381 { groth16_proof, mpcheck_hint, small_Q, msm_hint, }; + return FullProofWithHintsBLS12_381 { groth16_proof, mpcheck_hint, small_Q, msm_hint }; } diff --git a/src/src/utils/drand.cairo b/src/src/utils/drand.cairo index da775fe2..d500e35d 100644 --- a/src/src/utils/drand.cairo +++ b/src/src/utils/drand.cairo @@ -2,19 +2,23 @@ use core::sha256::compute_sha256_u32_array; use garaga::utils::usize_assert_eq; use core::circuit::{ RangeCheck96, AddMod, MulMod, u384, u96, CircuitElement, CircuitInput, circuit_add, circuit_sub, - circuit_mul, circuit_inverse, EvalCircuitResult, EvalCircuitTrait, CircuitOutputsTrait, - CircuitModulus, AddInputResultTrait, CircuitInputs, CircuitInputAccumulator + circuit_mul, circuit_inverse, EvalCircuitTrait, CircuitOutputsTrait, CircuitModulus, + AddInputResultTrait, CircuitInputs, }; use garaga::core::circuit::AddInputResultTrait2; -use garaga::definitions::{G1Point, G2Point, u384Serde}; +use garaga::definitions::{G1Point, G2Point, u384Serde, BLS_G2_GENERATOR}; use garaga::basic_field_ops::{u512_mod_bls12_381, is_even_u384}; use core::num::traits::Zero; use garaga::ec_ops::{ ec_safe_add, scalar_mul_g1_fixed_small_scalar, MSMHintSmallScalar, DerivePointFromXHint, - FunctionFelt, msm_g1_u128 + FunctionFelt, msm_g1_u128, }; +use garaga::ec_ops_g2; use garaga::circuits::isogeny::run_BLS12_381_APPLY_ISOGENY_BLS12_381_circuit; use garaga::circuits::ec::run_ADD_EC_POINT_circuit; + +use garaga::single_pairing_tower::{miller_loop_bls12_381_tower, final_exp_bls12_381_tower}; + // Chain: 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971 // Public Key: // G2Point(x=(2020076495541918814736776030432697997716141464538799718886374996015782362070437455929656164150586936230283253179482, @@ -30,48 +34,45 @@ use garaga::circuits::ec::run_ADD_EC_POINT_circuit; // Beacon ID: quicknet // ---------------------------------------- // Note : Negated to use in pairing check. -const DRAND_QUICKNET_PUBLIC_KEY: G2Point = - G2Point { - x0: u384 { - limb0: 0x4bc09e76eae8991ef5ece45a, - limb1: 0xbd274ca73bab4af5a6e9c76a, - limb2: 0x3aaf4bcb5ed66304de9cf809, - limb3: 0xd1fec758c921cc22b0e17e6 - }, - x1: u384 { - limb0: 0x6a0a6c3ac6a5776a2d106451, - limb1: 0xb90022d3e760183c8c4b450b, - limb2: 0xcad3912212c437e0073e911f, - limb3: 0x3cf0f2896adee7eb8b5f01f - }, - y0: u384 { - limb0: 0xdfd038b83dbad4e0fbae5838, - limb1: 0x942ea644bed4152aa6d85248, - limb2: 0x43812423f8525883c7e472fa, - limb3: 0xba35f3379c4e4d1e3a70b08 - }, - y1: u384 { - limb0: 0xd9aa8e74b5823224c149d420, - limb1: 0x1851f5129301fe6603fc716a, - limb2: 0x9b84512e61a5e814e923569d, - limb3: 0x1859fcf74bc8a580a828f6e0 - } - }; +const DRAND_QUICKNET_PUBLIC_KEY: G2Point = G2Point { + x0: u384 { + limb0: 0x4bc09e76eae8991ef5ece45a, + limb1: 0xbd274ca73bab4af5a6e9c76a, + limb2: 0x3aaf4bcb5ed66304de9cf809, + limb3: 0xd1fec758c921cc22b0e17e6, + }, + x1: u384 { + limb0: 0x6a0a6c3ac6a5776a2d106451, + limb1: 0xb90022d3e760183c8c4b450b, + limb2: 0xcad3912212c437e0073e911f, + limb3: 0x3cf0f2896adee7eb8b5f01f, + }, + y0: u384 { + limb0: 0xdfd038b83dbad4e0fbae5838, + limb1: 0x942ea644bed4152aa6d85248, + limb2: 0x43812423f8525883c7e472fa, + limb3: 0xba35f3379c4e4d1e3a70b08, + }, + y1: u384 { + limb0: 0xd9aa8e74b5823224c149d420, + limb1: 0x1851f5129301fe6603fc716a, + limb2: 0x9b84512e61a5e814e923569d, + limb3: 0x1859fcf74bc8a580a828f6e0, + }, +}; -const a_iso_swu: u384 = - u384 { - limb0: 0xa0e0f97f5cf428082d584c1d, - limb1: 0xd8e8981aefd881ac98936f8d, - limb2: 0xc96d4982b0ea985383ee66a8, - limb3: 0x144698a3b8e9433d693a02 - }; -const b_iso_swu: u384 = - u384 { - limb0: 0x316ceaa5d1cc48e98e172be0, - limb1: 0xa0b9c14fcef35ef55a23215a, - limb2: 0x753eee3b2016c1f0f24f4070, - limb3: 0x12e2908d11688030018b12e8 - }; +const a_iso_swu: u384 = u384 { + limb0: 0xa0e0f97f5cf428082d584c1d, + limb1: 0xd8e8981aefd881ac98936f8d, + limb2: 0xc96d4982b0ea985383ee66a8, + limb3: 0x144698a3b8e9433d693a02, +}; +const b_iso_swu: u384 = u384 { + limb0: 0x316ceaa5d1cc48e98e172be0, + limb1: 0xa0b9c14fcef35ef55a23215a, + limb2: 0x753eee3b2016c1f0f24f4070, + limb3: 0x12e2908d11688030018b12e8, +}; const z_iso_swu: u384 = u384 { limb0: 11, limb1: 0, limb2: 0, limb3: 0 }; @@ -80,38 +81,17 @@ const NZ_POW2_32_64: NonZero = 0x100000000; // lib_str + bytes([0]) + dst_prime // LIB_DST = b'\x00\x80\x00BLS_SIG_BLS12381G1_XMD:SHA-256_SSWU_RO_NUL_+' // bytes len : 47. -const LIB_DST: [ - u32 - ; 11] = [ - 0x800042, - 0x4c535f53, - 0x49475f42, - 0x4c533132, - 0x33383147, - 0x315f584d, - 0x443a5348, - 0x412d3235, - 0x365f5353, - 0x57555f52, - 0x4f5f4e55, +const LIB_DST: [u32; 11] = [ + 0x800042, 0x4c535f53, 0x49475f42, 0x4c533132, 0x33383147, 0x315f584d, 0x443a5348, 0x412d3235, + 0x365f5353, 0x57555f52, 0x4f5f4e55, ]; const LIB_DST_LAST_WORD: u32 = 0x4c5f2b; -const I_DST_PRIME: [ - u32 - ; 10] = [ - 0x5f534947, - 0x5f424c53, - 0x31323338, - 0x3147315f, - 0x584d443a, - 0x5348412d, - 0x3235365f, - 0x53535755, - 0x5f524f5f, - 0x4e554c5f, +const I_DST_PRIME: [u32; 10] = [ + 0x5f534947, 0x5f424c53, 0x31323338, 0x3147315f, 0x584d443a, 0x5348412d, 0x3235365f, 0x53535755, + 0x5f524f5f, 0x4e554c5f, ]; const I_DST_PRIME_LAST_WORD: u32 = 0x2b; @@ -123,7 +103,7 @@ fn get_i_dst_prime_first_word(i: usize) -> u32 { struct MapToCurveHint { gx1_is_square: bool, y1: u384, - y_flag: bool, // true if y and u have same parity, false otherwise + y_flag: bool // true if y and u have same parity, false otherwise } #[derive(Drop, Serde)] @@ -136,13 +116,13 @@ struct HashToCurveHint { // Like hash to curve but we start with the drand round number for simplicity. -fn round_to_curve_bls12_381(round: u64, hash_to_curve_hint: HashToCurveHint,) -> G1Point { +fn round_to_curve_bls12_381(round: u64, hash_to_curve_hint: HashToCurveHint) -> G1Point { let message = round_to_message(round); return hash_to_curve_bls12_381(message, hash_to_curve_hint); } #[inline] -fn hash_to_curve_bls12_381(message: [u32; 8], hash_to_curve_hint: HashToCurveHint,) -> G1Point { +fn hash_to_curve_bls12_381(message: [u32; 8], hash_to_curve_hint: HashToCurveHint) -> G1Point { let (felt0, felt1) = hash_to_two_bls_felts(message); let pt0 = map_to_curve(felt0, hash_to_curve_hint.f0_hint); let pt1 = map_to_curve(felt1, hash_to_curve_hint.f1_hint); @@ -157,7 +137,7 @@ fn hash_to_curve_bls12_381(message: [u32; 8], hash_to_curve_hint: HashToCurveHin BLS_COFACTOR, hash_to_curve_hint.scalar_mul_hint, hash_to_curve_hint.derive_point_from_x_hint, - 1 + 1, ); return res; } @@ -167,8 +147,9 @@ fn hash_to_curve_bls12_381(message: [u32; 8], hash_to_curve_hint: HashToCurveHin // n = BLS12_381 EC prime order subgroup // cofactor = (1 - (x % n)) % n // const bls_cofactor: u128 = 0xd201000000010001; -const BLS_COFACTOR_EPNS: (felt252, felt252, felt252, felt252) = - (12124305939094075449, 3008070283847567304, 1, -1); +const BLS_COFACTOR_EPNS: (felt252, felt252, felt252, felt252) = ( + 12124305939094075449, 3008070283847567304, 1, -1, +); const BLS_COFACTOR: u128 = 0xd201000000010001; // "digest function" @@ -182,15 +163,22 @@ fn round_to_message(round: u64) -> [u32; 8] { #[inline] -fn xor_u32_array(a: [u32; 8], b: [u32; 8]) -> [u32; 8] { +fn xor_u32_array_8(a: [u32; 8], b: [u32; 8]) -> [u32; 8] { let [a0, a1, a2, a3, a4, a5, a6, a7] = a; let [b0, b1, b2, b3, b4, b5, b6, b7] = b; return [a0 ^ b0, a1 ^ b1, a2 ^ b2, a3 ^ b3, a4 ^ b4, a5 ^ b5, a6 ^ b6, a7 ^ b7]; } +#[inline] +fn xor_u32_array_4(a: [u32; 4], b: [u32; 4]) -> [u32; 4] { + let [a0, a1, a2, a3] = a; + let [b0, b1, b2, b3] = b; + return [a0 ^ b0, a1 ^ b1, a2 ^ b2, a3 ^ b3]; +} + const POW_2_32: u128 = 0x100000000; const POW_2_64: u128 = 0x10000000000000000; -const POW_2_96: u128 = 0x100000000000000000000; +const POW_2_96: u128 = 0x1000000000000000000000000; fn u32_array_to_u256(d: [u32; 8]) -> u256 { let [d0, d1, d2, d3, d4, d5, d6, d7] = d; @@ -236,7 +224,7 @@ fn hash_to_two_bls_felts(message: [u32; 8]) -> (u384, u384) { }; // Total : 64 + 32 + 47 = 143 bytes = 1144 bits. let b0 = compute_sha256_u32_array( - input: array, last_input_word: LIB_DST_LAST_WORD, last_input_num_bytes: 3 + input: array, last_input_word: LIB_DST_LAST_WORD, last_input_num_bytes: 3, ); let mut array: Array = array![]; for v in b0.span() { @@ -248,9 +236,9 @@ fn hash_to_two_bls_felts(message: [u32; 8]) -> (u384, u384) { array.append(*v); }; let bi = compute_sha256_u32_array( - input: array, last_input_word: I_DST_PRIME_LAST_WORD, last_input_num_bytes: 1 + input: array, last_input_word: I_DST_PRIME_LAST_WORD, last_input_num_bytes: 1, ); - let bi_xor_b0 = xor_u32_array(bi, b0); + let bi_xor_b0 = xor_u32_array_8(bi, b0); let mut array: Array = array![]; for v in bi_xor_b0.span() { @@ -263,7 +251,7 @@ fn hash_to_two_bls_felts(message: [u32; 8]) -> (u384, u384) { let bi_1 = compute_sha256_u32_array(array, I_DST_PRIME_LAST_WORD, 1); - let bi1_xor_b0 = xor_u32_array(bi_1, b0); + let bi1_xor_b0 = xor_u32_array_8(bi_1, b0); let mut array: Array = array![]; for v in bi1_xor_b0.span() { array.append(*v); @@ -274,7 +262,7 @@ fn hash_to_two_bls_felts(message: [u32; 8]) -> (u384, u384) { }; let bi_2 = compute_sha256_u32_array(array, I_DST_PRIME_LAST_WORD, 1); - let bi2_xor_b0 = xor_u32_array(bi_2, b0); + let bi2_xor_b0 = xor_u32_array_8(bi_2, b0); let mut array: Array = array![]; for v in bi2_xor_b0.span() { array.append(*v); @@ -313,14 +301,12 @@ fn map_to_curve_inner_1(_u: u384) -> (u384, u384) { let num_x1 = circuit_mul(b, circuit_add(ta, one)); let modulus = TryInto::< - _, CircuitModulus + _, CircuitModulus, >::try_into( [ - 0xb153ffffb9feffffffffaaab, - 0x6730d2a0f6b0f6241eabfffe, - 0x434bacd764774b84f38512bf, - 0x1a0111ea397fe69a4b1ba7b6 - ] + 0xb153ffffb9feffffffffaaab, 0x6730d2a0f6b0f6241eabfffe, 0x434bacd764774b84f38512bf, + 0x1a0111ea397fe69a4b1ba7b6, + ], ) .unwrap(); // BLS12_381 prime field modulus @@ -355,7 +341,7 @@ fn map_to_curve_inner_2(_neg_ta: u384, _num_x1: u384) -> (u384, u384) { // num_gx1 = (num2_x1 + a * div2) * num_x1 + b * div3 let num_gx1 = circuit_add( - circuit_mul(circuit_add(num2_x1, circuit_mul(a, div2)), num_x1), circuit_mul(b, div3) + circuit_mul(circuit_add(num2_x1, circuit_mul(a, div2)), num_x1), circuit_mul(b, div3), ); // let num_x2 = circuit_mul(zeta_u2, num_x1); @@ -378,14 +364,12 @@ fn map_to_curve_inner_2(_neg_ta: u384, _num_x1: u384) -> (u384, u384) { // }; let modulus = TryInto::< - _, CircuitModulus + _, CircuitModulus, >::try_into( [ - 0xb153ffffb9feffffffffaaab, - 0x6730d2a0f6b0f6241eabfffe, - 0x434bacd764774b84f38512bf, - 0x1a0111ea397fe69a4b1ba7b6 - ] + 0xb153ffffb9feffffffffaaab, 0x6730d2a0f6b0f6241eabfffe, 0x434bacd764774b84f38512bf, + 0x1a0111ea397fe69a4b1ba7b6, + ], ) .unwrap(); // BLS12_381 prime field modulus @@ -404,7 +388,7 @@ fn map_to_curve_inner_2(_neg_ta: u384, _num_x1: u384) -> (u384, u384) { fn map_to_curve_inner_final_quad_res( - _num_x1: u384, _gx1: u384, _y1_hint: u384, __parity_flag: bool, _div: u384, u: u384 + _num_x1: u384, _gx1: u384, _y1_hint: u384, __parity_flag: bool, _div: u384, u: u384, ) -> G1Point { let num_x1 = CircuitElement::> {}; let gx1 = CircuitElement::> {}; @@ -417,25 +401,23 @@ fn map_to_curve_inner_final_quad_res( let y_affine = circuit_mul(parity_flag, y1_hint); let modulus = TryInto::< - _, CircuitModulus + _, CircuitModulus, >::try_into( [ - 0xb153ffffb9feffffffffaaab, - 0x6730d2a0f6b0f6241eabfffe, - 0x434bacd764774b84f38512bf, - 0x1a0111ea397fe69a4b1ba7b6 - ] + 0xb153ffffb9feffffffffaaab, 0x6730d2a0f6b0f6241eabfffe, 0x434bacd764774b84f38512bf, + 0x1a0111ea397fe69a4b1ba7b6, + ], ) .unwrap(); // BLS12_381 prime field modulus // Flag = -1 if y%2 !=u%1 ; 1 if y%2 == u%2. let _parity_flag: u384 = match __parity_flag { - true => u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0, }, + true => u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, false => crate::definitions::get_min_one(curve_index: 1), }; - let outputs = (x_affine, y_affine, check,) + let outputs = (x_affine, y_affine, check) .new_inputs() .next_2(_num_x1) .next_2(_gx1) @@ -463,7 +445,7 @@ fn map_to_curve_inner_final_quad_res( fn map_to_curve_inner_final_not_quad_res( - _num_x1: u384, _y1_hint: u384, __parity_flag: bool, _div: u384, _u: u384, _gx1: u384 + _num_x1: u384, _y1_hint: u384, __parity_flag: bool, _div: u384, _u: u384, _gx1: u384, ) -> G1Point { let num_x1 = CircuitElement::> {}; let y1_hint = CircuitElement::> {}; @@ -484,22 +466,20 @@ fn map_to_curve_inner_final_not_quad_res( // Flag = -1 if y%2 !=u%1 ; 1 if y%2 == u%2. let _parity_flag: u384 = match __parity_flag { - true => u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0, }, + true => u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, false => crate::definitions::get_min_one(curve_index: 1), }; let modulus = TryInto::< - _, CircuitModulus + _, CircuitModulus, >::try_into( [ - 0xb153ffffb9feffffffffaaab, - 0x6730d2a0f6b0f6241eabfffe, - 0x434bacd764774b84f38512bf, - 0x1a0111ea397fe69a4b1ba7b6 - ] + 0xb153ffffb9feffffffffaaab, 0x6730d2a0f6b0f6241eabfffe, 0x434bacd764774b84f38512bf, + 0x1a0111ea397fe69a4b1ba7b6, + ], ) .unwrap(); // BLS12_381 prime field modulus - let outputs = (x_affine, y_affine, check,) + let outputs = (x_affine, y_affine, check) .new_inputs() .next_2(_num_x1) .next_2(_y1_hint) @@ -518,24 +498,314 @@ fn map_to_curve_inner_final_not_quad_res( // Verify parity. base is even so high parts doesn't affect parity. match __parity_flag { true => assert( - is_even_u384(outputs.get_output(y2)) == is_even_u384(_u), 'm2cI wrong parity' + is_even_u384(outputs.get_output(y2)) == is_even_u384(_u), 'm2cI wrong parity', ), false => assert( - is_even_u384(outputs.get_output(y2)) != is_even_u384(_u), 'm2cI wrong parity' + is_even_u384(outputs.get_output(y2)) != is_even_u384(_u), 'm2cI wrong parity', ), } return G1Point { x: outputs.get_output(x_affine), y: outputs.get_output(y_affine) }; } +// The result of a timelock encryption over drand quicknet. +struct CipherText { + U: G2Point, + V: [u8; 16], + W: [u8; 16], +} + +// bytes("IBE-H2") (4 + 2 bytes) +const IBE_H2: [u32; 2] = [0x4942452d, 0x4832]; +// bytes("IBE-H4") (4 + 2 bytes) +const IBE_H4: [u32; 2] = [0x4942452d, 0x4834]; +const IBE_H3: [u32; 2] = [0x4942452d, 0x4833]; + +use core::circuit::conversions::{ + DivRemU96By32, DivRemU96By64, ConstValue, POW64, POW64_TYPED, NZ_POW64_TYPED, POW32, + POW32_TYPED, NZ_POW32_TYPED, +}; + +use core::internal::bounded_int::{BoundedInt, bounded_int_div_rem, DivRemHelper}; + +const POW80: felt252 = 0x100000000000000000000; +const NZ_POW80_TYPED: NonZero> = 0x100000000000000000000; +const POW16: felt252 = 0x10000; +const NZ_POW16_TYPED: NonZero> = 0x10000; + +const POW48: felt252 = 0x1000000000000; +const NZ_POW48_TYPED: NonZero> = 0x1000000000000; + + +const POW24: felt252 = 0x1000000; +const POW8: felt252 = 0x100; +type u64_bi = BoundedInt<0, { POW64 - 1 }>; +type u80_bi = BoundedInt<0, { POW80 - 1 }>; +type u48_bi = BoundedInt<0, { POW48 - 1 }>; +type u32_bi = BoundedInt<0, { POW32 - 1 }>; + +impl DivRemU64By32 of DivRemHelper> { + type DivT = BoundedInt<0, { POW32 - 1 }>; + type RemT = BoundedInt<0, { POW32 - 1 }>; +} + +impl DivRemU96By80 of DivRemHelper> { + type DivT = BoundedInt<0, { POW16 - 1 }>; + type RemT = BoundedInt<0, { POW80 - 1 }>; +} + +impl DivRemU80By48 of DivRemHelper> { + type DivT = BoundedInt<0, { POW32 - 1 }>; + type RemT = BoundedInt<0, { POW48 - 1 }>; +} + +impl DivRemU48By16 of DivRemHelper> { + type DivT = BoundedInt<0, { POW32 - 1 }>; + type RemT = BoundedInt<0, { POW16 - 1 }>; +} + +impl DivRemU32By16 of DivRemHelper> { + type DivT = BoundedInt<0, { POW16 - 1 }>; + type RemT = BoundedInt<0, { POW16 - 1 }>; +} + + +#[inline(always)] +pub fn append_u96_to_u32_array(ref array: Array, u: u96) { + let (u32_h, u64_l): (DivRemU96By64::DivT, DivRemU96By64::RemT) = bounded_int_div_rem( + u, NZ_POW64_TYPED, + ); + let (u32_mid, u32_low): (DivRemU64By32::DivT, DivRemU64By32::RemT) = bounded_int_div_rem( + u64_l, NZ_POW32_TYPED, + ); + let u32_hf: felt252 = u32_h.into(); + let u32_mf: felt252 = u32_mid.into(); + let u32_lf: felt252 = u32_low.into(); + array.append(u32_hf.try_into().unwrap()); + array.append(u32_mf.try_into().unwrap()); + array.append(u32_lf.try_into().unwrap()); +} +#[inline] +pub fn append_u384_be_to_u32_array(ref array: Array, u: u384) { + append_u96_to_u32_array(ref array, u.limb3); + append_u96_to_u32_array(ref array, u.limb2); + append_u96_to_u32_array(ref array, u.limb1); + append_u96_to_u32_array(ref array, u.limb0); +} + +const NZ_POW24_32: NonZero = 0x1000000; +const NZ_POW16_32: NonZero = 0x10000; +const NZ_POW8_32: NonZero = 0x100; + +#[inline(always)] +pub fn u32_to_u8_4(a: u32) -> [u8; 4] { + let (b3, r) = DivRem::div_rem(a, NZ_POW24_32); + let (b2, r) = DivRem::div_rem(r, NZ_POW16_32); + let (b1, b0) = DivRem::div_rem(r, NZ_POW8_32); + return [ + b3.try_into().unwrap(), b2.try_into().unwrap(), b1.try_into().unwrap(), + b0.try_into().unwrap(), + ]; +} + + +#[inline(always)] +pub fn u32_4_to_u8_16(a: [u32; 4]) -> [u8; 16] { + let [a3, a2, a1, a0] = a; + let [b15, b14, b13, b12] = u32_to_u8_4(a3); + let [b11, b10, b9, b8] = u32_to_u8_4(a2); + let [b7, b6, b5, b4] = u32_to_u8_4(a1); + let [b3, b2, b1, b0] = u32_to_u8_4(a0); + return [b15, b14, b13, b12, b11, b10, b9, b8, b7, b6, b5, b4, b3, b2, b1, b0]; +} + +#[inline(always)] +pub fn append_u96_with_pending_u16(ref array: Array, pending_u16: u32, u: u96) -> u32 { + let (u16_h, u80_l): (DivRemU96By80::DivT, DivRemU96By80::RemT) = bounded_int_div_rem( + u, NZ_POW80_TYPED, + ); + let (u32_mid, u48_low): (DivRemU80By48::DivT, DivRemU80By48::RemT) = bounded_int_div_rem( + u80_l, NZ_POW48_TYPED, + ); + let (u32_low, u16_low): (DivRemU48By16::DivT, DivRemU48By16::RemT) = bounded_int_div_rem( + u48_low, NZ_POW16_TYPED, + ); + let u16_hf: felt252 = u16_h.into(); + let u32_mf: felt252 = u32_mid.into(); + let u32_lf: felt252 = u32_low.into(); + let next_u16_pending: felt252 = u16_low.into(); + + array.append((pending_u16.into() * POW16 + u16_hf).try_into().unwrap()); + array.append(u32_mf.try_into().unwrap()); + array.append(u32_lf.try_into().unwrap()); + + return next_u16_pending.try_into().unwrap(); +} + + +#[inline(always)] +pub fn append_u32_with_pending_u16(ref array: Array, pending_u16: u32, u: u32) -> u32 { + let (u16_h, next_pending) = DivRem::div_rem(u, NZ_POW16_32); + let u16_hf: felt252 = u16_h.into(); + array.append((pending_u16.into() * POW16 + u16_hf).try_into().unwrap()); + return next_pending; +} + +pub fn append_u384_with_pending_u16(ref array: Array, pending_u16: u32, u: u384) -> u32 { + let pending_u16 = append_u96_with_pending_u16(ref array, pending_u16, u.limb3); + let pending_u16 = append_u96_with_pending_u16(ref array, pending_u16, u.limb2); + let pending_u16 = append_u96_with_pending_u16(ref array, pending_u16, u.limb1); + let pending_u16 = append_u96_with_pending_u16(ref array, pending_u16, u.limb0); + return pending_u16; +} + + +pub fn u8_16_to_u32_4(a: [u8; 16]) -> [u32; 4] { + let [a15, a14, a13, a12, a11, a10, a9, a8, a7, a6, a5, a4, a3, a2, a1, a0] = a; + let w3: felt252 = a15.into() * POW24 + a14.into() * POW16 + a13.into() * POW8 + a12.into(); + let w2: felt252 = a11.into() * POW24 + a10.into() * POW16 + a9.into() * POW8 + a8.into(); + let w1: felt252 = a7.into() * POW24 + a6.into() * POW16 + a5.into() * POW8 + a4.into(); + let w0: felt252 = a3.into() * POW24 + a2.into() * POW16 + a1.into() * POW8 + a0.into(); + return [ + w3.try_into().unwrap(), w2.try_into().unwrap(), w1.try_into().unwrap(), + w0.try_into().unwrap(), + ]; +} + +pub fn decrypt_at_round(signature_at_round: G1Point, ciphertext: CipherText) -> [u8; 16] { + let (M) = miller_loop_bls12_381_tower(signature_at_round, ciphertext.U); + let rgid = final_exp_bls12_381_tower(M); + + let mut array: Array = array![]; + + let [ibe_h2_0, ibe_h2_1] = IBE_H2; + array.append(ibe_h2_0); + let pending = append_u384_with_pending_u16(ref array, ibe_h2_1, rgid.c1b2a1); + let pending = append_u384_with_pending_u16(ref array, pending, rgid.c1b2a0); + let pending = append_u384_with_pending_u16(ref array, pending, rgid.c1b1a1); + let pending = append_u384_with_pending_u16(ref array, pending, rgid.c1b1a0); + let pending = append_u384_with_pending_u16(ref array, pending, rgid.c1b0a1); + let pending = append_u384_with_pending_u16(ref array, pending, rgid.c1b0a0); + let pending = append_u384_with_pending_u16(ref array, pending, rgid.c0b2a1); + let pending = append_u384_with_pending_u16(ref array, pending, rgid.c0b2a0); + let pending = append_u384_with_pending_u16(ref array, pending, rgid.c0b1a1); + let pending = append_u384_with_pending_u16(ref array, pending, rgid.c0b1a0); + let pending = append_u384_with_pending_u16(ref array, pending, rgid.c0b0a1); + let pending = append_u384_with_pending_u16(ref array, pending, rgid.c0b0a0); + + let [r7, r6, r5, r4, _, _, _, _] = compute_sha256_u32_array( + input: array, last_input_word: pending, last_input_num_bytes: 2, + ); + + let v: [u32; 4] = u8_16_to_u32_4(ciphertext.V); + let sigma: [u32; 4] = xor_u32_array_4([r7, r6, r5, r4], v); + + let mut array: Array = array![]; + let [ibe_h4_0, ibe_h4_1] = IBE_H4; + array.append(ibe_h4_0); + + let [s3, s2, s1, s0] = sigma; + let pending = append_u32_with_pending_u16(ref array, ibe_h4_1, s3); + let pending = append_u32_with_pending_u16(ref array, pending, s2); + let pending = append_u32_with_pending_u16(ref array, pending, s1); + let pending = append_u32_with_pending_u16(ref array, pending, s0); + + let [sh7, sh6, sh5, sh4, _, _, _, _] = compute_sha256_u32_array( + input: array, last_input_word: pending, last_input_num_bytes: 2, + ); + + let w = u8_16_to_u32_4(ciphertext.W); + let message: [u32; 4] = xor_u32_array_4([sh7, sh6, sh5, sh4], w); + let [m3, m2, m1, m0] = message; + // Convert to bytes : + let message_bytes = u32_4_to_u8_16(message); + + // Verify U = G^R + + let mut array: Array = array![]; + let [ibe_h3_0, ibe_h3_1] = IBE_H3; + array.append(ibe_h3_0); + // Append sigma + let pending = append_u32_with_pending_u16(ref array, ibe_h3_1, s3); + let pending = append_u32_with_pending_u16(ref array, pending, s2); + let pending = append_u32_with_pending_u16(ref array, pending, s1); + let pending = append_u32_with_pending_u16(ref array, pending, s0); + // Append message : + let pending = append_u32_with_pending_u16(ref array, pending, m3); + let pending = append_u32_with_pending_u16(ref array, pending, m2); + let pending = append_u32_with_pending_u16(ref array, pending, m1); + let pending = append_u32_with_pending_u16(ref array, pending, m0); + + // Little endian + let rh = compute_sha256_u32_array( + input: array, last_input_word: pending, last_input_num_bytes: 2, + ); + + let mut i = 1; + let mut r = expand_message_drand(rh, i); + + // r must be non-zero: + while r == 0 { + i += 1; + let _r = expand_message_drand(rh, i); + r = _r; + }; + + let U = ec_ops_g2::ec_mul(BLS_G2_GENERATOR, r, 1).unwrap(); + assert(U == ciphertext.U, 'Incorrect ciphertext proof.'); + return message_bytes; +} + +pub fn expand_message_drand(msg: [u32; 8], i: u8) -> u256 { + let mut array: Array = array![]; + let [m7, m6, m5, m4, m3, m2, m1, m0] = msg; + // i.to_bytes(2, byteorder="little") + let pending = append_u32_with_pending_u16(ref array, i.into() * 0x100, m7); + let pending = append_u32_with_pending_u16(ref array, pending, m6); + let pending = append_u32_with_pending_u16(ref array, pending, m5); + let pending = append_u32_with_pending_u16(ref array, pending, m4); + let pending = append_u32_with_pending_u16(ref array, pending, m3); + let pending = append_u32_with_pending_u16(ref array, pending, m2); + let pending = append_u32_with_pending_u16(ref array, pending, m1); + let pending = append_u32_with_pending_u16(ref array, pending, m0); + + let hash_result = compute_sha256_u32_array( + input: array, last_input_word: pending, last_input_num_bytes: 2, + ); + + let [r0, r1, r2, r3, r4, r5, r6, r7] = hash_result; + + // Mask the first byte of r0 + // Extract the leftmost byte + let first_byte = r0 & 0xFF000000; + + // Right shift the first byte by 1 bit + let shifted_byte = first_byte / 2; + + // Combine the shifted byte back with the rest of r0 + let r0 = shifted_byte | (r0 & 0x00FFFFFF); + + return hash_to_u256([r0, r1, r2, r3, r4, r5, r6, r7]); +} + + +pub fn hash_to_u256(msg: [u32; 8]) -> u256 { + let [a, b, c, d, e, f, g, h] = msg; + let low: u128 = h.into() + g.into() * POW_2_32 + f.into() * POW_2_64 + e.into() * POW_2_96; + let high: u128 = d.into() + c.into() * POW_2_32 + b.into() * POW_2_64 + a.into() * POW_2_96; + + u256 { low: low, high: high } +} + #[cfg(test)] mod tests { use super::{ DRAND_QUICKNET_PUBLIC_KEY, hash_to_two_bls_felts, u384, G1Point, MapToCurveHint, map_to_curve, HashToCurveHint, MSMHintSmallScalar, DerivePointFromXHint, - hash_to_curve_bls12_381, FunctionFelt, run_BLS12_381_APPLY_ISOGENY_BLS12_381_circuit + hash_to_curve_bls12_381, FunctionFelt, run_BLS12_381_APPLY_ISOGENY_BLS12_381_circuit, + CipherText, decrypt_at_round, G2Point, }; - use garaga::ec_ops::{G2PointTrait}; + use garaga::ec_ops_g2::G2PointTrait; #[test] fn test_drand_quicknet_public_key() { @@ -545,13 +815,7 @@ mod tests { fn test_hash_to_two_bls_felts() { // sha256("Hello, World!") let message: [u32; 8] = [ - 0xdffd6021, - 0xbb2bd5b0, - 0xaf676290, - 0x809ec3a5, - 0x3191dd81, - 0xc7f70a4b, - 0x28688a36, + 0xdffd6021, 0xbb2bd5b0, 0xaf676290, 0x809ec3a5, 0x3191dd81, 0xc7f70a4b, 0x28688a36, 0x2182986f, ]; let (a, b) = hash_to_two_bls_felts(message); @@ -562,8 +826,8 @@ mod tests { limb0: 0x3424dff585d947fedf210456, limb1: 0xd67576428da87a9356340b2e, limb2: 0x135e368f3927494b3933a985, - limb3: 0x85a31dc6b81af709df9ba4e - } + limb3: 0x85a31dc6b81af709df9ba4e, + }, ); assert_eq!( b, @@ -571,28 +835,28 @@ mod tests { limb0: 0xdb509060a0293b7d9e20ae9, limb1: 0x189ad7a1508b89604e165848, limb2: 0x74a42a64a63d7c9dd6bfec2c, - limb3: 0x1049922d5dcd716806ccfa3e - } + limb3: 0x1049922d5dcd716806ccfa3e, + }, ); } #[test] fn test_map_to_curve() { - let u = u384 { limb0: 42, limb1: 0x0, limb2: 0x0, limb3: 0x0, }; + let u = u384 { limb0: 42, limb1: 0x0, limb2: 0x0, limb3: 0x0 }; let expected = G1Point { x: u384 { limb0: 0x1c94f3121ca3e1454e60bded, limb1: 0xe09a5f66977f922ae74baf50, limb2: 0xa471b958de9a5099a84aca44, - limb3: 0x923f1e3115dc78a457fffa1 + limb3: 0x923f1e3115dc78a457fffa1, }, y: u384 { limb0: 0xaa8806e6b469554a91758ec, limb1: 0xdbfb03df4a53a534ac80def7, limb2: 0xb81c6297bbac342050bff567, - limb3: 0xfb9022e050807db4b155d87 - } + limb3: 0xfb9022e050807db4b155d87, + }, }; let hint = MapToCurveHint { gx1_is_square: false, @@ -600,9 +864,9 @@ mod tests { limb0: 0x8c74c126c6351052ebf1965, limb1: 0x979aba6acb3e5dfca5581a51, limb2: 0x49e43c123f4e034706485bde, - limb3: 0x152ffaf0e2cd3fbbb102b5e1 + limb3: 0x152ffaf0e2cd3fbbb102b5e1, }, - y_flag: false + y_flag: false, }; let res = map_to_curve(u, hint); assert_eq!(res, expected); @@ -615,14 +879,14 @@ mod tests { limb0: 0xfe95b6d6dc4c28b03aa82194, limb1: 0xc06a9cdc69f9d39a1cb3c132, limb2: 0xc0637d447baf4f55d4658b59, - limb3: 0x166e53a3af1733961f92e08 + limb3: 0x166e53a3af1733961f92e08, }, y: u384 { limb0: 0x5dc860b68c76e432263e15dc, limb1: 0x8c9990a0f89eadd580f71395, limb2: 0xaf300dff12d93cfe32b45c5d, - limb3: 0x8f6e2a59628049aecb84109 - } + limb3: 0x8f6e2a59628049aecb84109, + }, }; let expected = G1Point { @@ -630,13 +894,13 @@ mod tests { limb0: 0x5fad5b4abf0d9b5a5500069, limb1: 0x88e3293255d2172755b29514, limb2: 0x2562887a0b9a729cf8f6f807, - limb3: 0xfb545dd46e90e6f6bd679a1 + limb3: 0xfb545dd46e90e6f6bd679a1, }, y: u384 { limb0: 0xbea8d03c186753a97b5e8e0b, limb1: 0xbe3e7a1eb25cf6d7fa6f686d, limb2: 0x72026b41a862ff1fa8508191, - limb3: 0xd596c01e510faf25030e9a5 + limb3: 0xd596c01e510faf25030e9a5, }, }; let (res) = run_BLS12_381_APPLY_ISOGENY_BLS12_381_circuit(pt); @@ -645,13 +909,7 @@ mod tests { #[test] fn test_hash_to_curve() { let message: [u32; 8] = [ - 0xdffd6021, - 0xbb2bd5b0, - 0xaf676290, - 0x809ec3a5, - 0x3191dd81, - 0xc7f70a4b, - 0x28688a36, + 0xdffd6021, 0xbb2bd5b0, 0xaf676290, 0x809ec3a5, 0x3191dd81, 0xc7f70a4b, 0x28688a36, 0x2182986f, ]; let hint = HashToCurveHint { @@ -661,9 +919,9 @@ mod tests { limb0: 0xf26e7fd3c2733a0413db4463, limb1: 0xa1562d011f360461be8e36dd, limb2: 0x84a83147a7e7a1311a712501, - limb3: 0x1290f63f6daa85ad6bf7088a + limb3: 0x1290f63f6daa85ad6bf7088a, }, - y_flag: false + y_flag: false, }, f1_hint: MapToCurveHint { gx1_is_square: false, @@ -671,9 +929,9 @@ mod tests { limb0: 0xb88f6c46cebe267f9e2afa6c, limb1: 0xa845982734193f6f44e49212, limb2: 0x63e1f53f7553752da88fb12c, - limb3: 0xd613d3f488be39870f05a5c + limb3: 0xd613d3f488be39870f05a5c, }, - y_flag: false + y_flag: false, }, scalar_mul_hint: MSMHintSmallScalar { Q: G1Point { @@ -681,14 +939,14 @@ mod tests { limb0: 0x931f614913b4e856c2a5dd1b, limb1: 0xce68eade0d43210615956b1d, limb2: 0x4f2c8c74301387552679068d, - limb3: 0xcc12bfa116dae0017adb178 + limb3: 0xcc12bfa116dae0017adb178, }, y: u384 { limb0: 0x6b02cc408fda040be6918d1e, limb1: 0x325a198e22c4131c6fed473b, limb2: 0xf0bbbddfea59e5a96a11bd20, - limb3: 0xeb05659d43180b59cee2ea0 - } + limb3: 0xeb05659d43180b59cee2ea0, + }, }, SumDlogDiv: FunctionFelt { a_num: array![ @@ -696,9 +954,9 @@ mod tests { limb0: 0xe9547e3c22c368f3668c26d2, limb1: 0x75bc3174101565eeb65968d6, limb2: 0x3afe08b77f8913061d67f0b2, - limb3: 0xc3a508ed77d2e5fd684d134 + limb3: 0xc3a508ed77d2e5fd684d134, }, - u384 { limb0: 0x3f41b003a7dbf839, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x3f41b003a7dbf839, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), a_den: array![ @@ -706,15 +964,15 @@ mod tests { limb0: 0xe992bce6bcd56741b4be8dda, limb1: 0x975f2e11a8fc4e110f1b44ba, limb2: 0xc1e9530f84e3a7e0a46d33e1, - limb3: 0x88dd6a0666b7d5a4c14ea85 + limb3: 0x88dd6a0666b7d5a4c14ea85, }, u384 { limb0: 0x4d6f4786473f4ff1643a5ee, limb1: 0x25cb9788a504f44e94bddec4, limb2: 0xe8adc9bc8ead85ba812bddf7, - limb3: 0x53655ff5e6a7e350e3028ac + limb3: 0x53655ff5e6a7e350e3028ac, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] .span(), b_num: array![ @@ -722,20 +980,20 @@ mod tests { limb0: 0x743a827dc9c4737c7a70322d, limb1: 0x7bfda798292e0429f35febf0, limb2: 0x7bca28663f0d7795d8629dc2, - limb3: 0x1eb8b6c2989bb00ee12bd00 + limb3: 0x1eb8b6c2989bb00ee12bd00, }, u384 { limb0: 0xdc2fa95b1c3dadfa185f4ff4, limb1: 0x9daea3eea2647b9adc25d4ea, limb2: 0x24dbf64222ab9fcb34052520, - limb3: 0x124e8c93a451aaeb0b256a + limb3: 0x124e8c93a451aaeb0b256a, }, u384 { limb0: 0x3e58c1d601349a222ca499e8, limb1: 0x6c6aaf8d55c9039164e09e20, limb2: 0xfb431077e445c903bc81ed03, - limb3: 0xc08aa0954aa40b81be4fdf9 - } + limb3: 0xc08aa0954aa40b81be4fdf9, + }, ] .span(), b_den: array![ @@ -743,73 +1001,41 @@ mod tests { limb0: 0xf4f6f39b39569d06d2fa8cbd, limb1: 0xf64be5a5ad4042201dc112ec, limb2: 0xc4599f66af1753fd9e2fbcc6, - limb3: 0x8364897602e0ecee5380260 + limb3: 0x8364897602e0ecee5380260, }, u384 { limb0: 0x135bd1e191cfd3fc590e97b8, limb1: 0x972e5e229413d13a52f77b10, limb2: 0xa2b726f23ab616ea04af77dc, - limb3: 0x14d957fd79a9f8d438c0a2b3 + limb3: 0x14d957fd79a9f8d438c0a2b3, }, u384 { limb0: 0x4, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, u384 { limb0: 0xe992bce6bcd56741b4be8dda, limb1: 0x975f2e11a8fc4e110f1b44ba, limb2: 0xc1e9530f84e3a7e0a46d33e1, - limb3: 0x88dd6a0666b7d5a4c14ea85 + limb3: 0x88dd6a0666b7d5a4c14ea85, }, u384 { limb0: 0x4d6f4786473f4ff1643a5ee, limb1: 0x25cb9788a504f44e94bddec4, limb2: 0xe8adc9bc8ead85ba812bddf7, - limb3: 0x53655ff5e6a7e350e3028ac + limb3: 0x53655ff5e6a7e350e3028ac, }, - u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 } + u384 { limb0: 0x1, limb1: 0x0, limb2: 0x0, limb3: 0x0 }, ] - .span() + .span(), }, }, derive_point_from_x_hint: DerivePointFromXHint { y_last_attempt: u384 { - limb0: 0xb41227cd42b7ef71d89d05e6, - limb1: 0x3cc2397220b0e255eb196131, - limb2: 0x6e445b08463f6f4d96d3e54, - limb3: 0x2d18f52270acbae6773fc2d + limb0: 0x6515783d21f573c7cd61fbae, + limb1: 0x1013607aa988eeb0dbea896a, + limb2: 0xc459d27f6d3a34be79bbb31a, + limb3: 0xb32862ff9309b9044f09471, }, - g_rhs_sqrt: array![ - u384 { - limb0: 0x489c3c21e68b52fc13551cc7, - limb1: 0xbb28e4fee8814d3f2f01d56d, - limb2: 0x80fb27b5cbf818227f16956b, - limb3: 0x591848cb4740509e9519aa6 - }, - u384 { - limb0: 0x49a5971b41da691b6c54c9ce, - limb1: 0x4934d801184f79e0bd159c78, - limb2: 0xb65685c7a705678007327db4, - limb3: 0x878b66031665700502ead64 - }, - u384 { - limb0: 0x8cc9746861ef5ebb714c1aad, - limb1: 0x3f2d8a4b2b9b1e0c15f8a888, - limb2: 0x72b4b3e003c80b045232c974, - limb3: 0x6f360afb566d59ae9d3dcb1 - }, - u384 { - limb0: 0xc1dafeb229958918d6f807bf, - limb1: 0x82f92ae44451b0c83ca491d3, - limb2: 0xa547d45e3abd786d7e4bd18a, - limb3: 0xb04d1504a41448451e1bf6d - }, - u384 { - limb0: 0x62564d5dadfa6951c74d9994, - limb1: 0x938bc3286f0b2fc8671794d8, - limb2: 0xd176d81898f67fe46da9c716, - limb3: 0x297c2b03926eec52554f824 - } - ] - .span(), - } + g_rhs_sqrt: array![].span(), + }, }; let expected = G1Point { @@ -817,17 +1043,86 @@ mod tests { limb0: 0x931f614913b4e856c2a5dd1b, limb1: 0xce68eade0d43210615956b1d, limb2: 0x4f2c8c74301387552679068d, - limb3: 0xcc12bfa116dae0017adb178 + limb3: 0xcc12bfa116dae0017adb178, }, y: u384 { limb0: 0x6b02cc408fda040be6918d1e, limb1: 0x325a198e22c4131c6fed473b, limb2: 0xf0bbbddfea59e5a96a11bd20, - limb3: 0xeb05659d43180b59cee2ea0 + limb3: 0xeb05659d43180b59cee2ea0, }, }; let res = hash_to_curve_bls12_381(message, hint); assert_eq!(res, expected); } + + #[test] + fn test_decrypt_at_round() { + // msg: b'hello\x00\x00\x00\x00\x00\x00\x00\x00abc' + // round: 128 + // network: DrandNetwork.quicknet + + let signature_at_round: G1Point = G1Point { + x: u384 { + limb0: 0xc0bcbd3576ff11f14722cf6c, + limb1: 0xd452247305c00e921bd480d6, + limb2: 0x8b9980255afbf088406ce2e9, + limb3: 0x3783c94f8000028fa31f457, + }, + y: u384 { + limb0: 0x2b4d36d607cf825974c364b4, + limb1: 0x44cd6938390204bd3a17bf08, + limb2: 0x92d3ea3afc64bf69e6c4cf27, + limb3: 0x9ee7907fd3b11fa8ec81ccc, + }, + }; + + let ciph = CipherText { + U: G2Point { + x0: u384 { + limb0: 0x340fdd978d12a78af62a4938, + limb1: 0xf70620e8446a28e3d2071039, + limb2: 0xe08fd6ca0d6e9bdcb5dbf048, + limb3: 0x14fb6e4f383578999fe9250, + }, + x1: u384 { + limb0: 0x25a2b053807bd5aa950143b1, + limb1: 0x845c1664a97d715be868b2d2, + limb2: 0x5c1891819cbeaf9241827325, + limb3: 0x1db774cee6dd8860aad23b7, + }, + y0: u384 { + limb0: 0x941e76c3d4243c3a29eb37b6, + limb1: 0xeb7d54ef8c76445a546aa67e, + limb2: 0x945908b037be402a146d92cc, + limb3: 0x51401dcca71a5b8e961858, + }, + y1: u384 { + limb0: 0x83136ccccc82c994f1c19abe, + limb1: 0x638557d8f6ba3dbceffb0d86, + limb2: 0xd81843d33e29bd92ca715eca, + limb3: 0x12d802c5957e9cab6e1e8c82, + }, + }, + V: [ + 0xa7, 0x35, 0xd6, 0x12, 0x47, 0x88, 0xc9, 0x3f, 0x2c, 0xc4, 0xdd, 0xe5, 0x5d, 0x54, + 0x31, 0x15, + ], + W: [ + 0x7f, 0x10, 0x1c, 0x52, 0x8b, 0xf7, 0x63, 0x15, 0x57, 0x8d, 0x77, 0x2e, 0x79, 0x3f, + 0x01, 0x29, + ], + }; + let msg_decrypted = decrypt_at_round(signature_at_round, ciph); + assert( + msg_decrypted + .span() == [ + 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x61, 0x62, 0x63, + ] + .span(), + 'wrong msg', + ); + } } diff --git a/src/src/utils/hashing.cairo b/src/src/utils/hashing.cairo index 31970bb8..a86f468a 100644 --- a/src/src/utils/hashing.cairo +++ b/src/src/utils/hashing.cairo @@ -1,11 +1,11 @@ -use core::poseidon::hades_permutation; +pub use core::poseidon::hades_permutation; use core::circuit::{u384, u96}; use garaga::definitions::{ - E12D, u288, G1G2Pair, G1Point, E12DMulQuotient, MillerLoopResultScalingFactor + E12D, u288, G1G2Pair, G1Point, E12DMulQuotient, MillerLoopResultScalingFactor, }; #[derive(Copy, Drop)] -struct PoseidonState { +pub struct PoseidonState { s0: felt252, s1: felt252, s2: felt252, @@ -14,7 +14,7 @@ struct PoseidonState { // Apply sponge construction to a transcript of u384 elements #[inline(always)] pub fn hash_u384_transcript( - transcript: Span, mut s0: felt252, mut s1: felt252, mut s2: felt252 + transcript: Span, mut s0: felt252, mut s1: felt252, mut s2: felt252, ) -> (felt252, felt252, felt252) { let base: felt252 = 79228162514264337593543950336; // 2**96 for elmt in transcript { @@ -33,7 +33,7 @@ pub fn hash_u384_transcript( #[inline(always)] pub fn hash_u288_transcript( - transcript: Span, mut s0: felt252, mut s1: felt252, mut s2: felt252 + transcript: Span, mut s0: felt252, mut s1: felt252, mut s2: felt252, ) -> (felt252, felt252, felt252) { let base: felt252 = 79228162514264337593543950336; // 2**96 for elmt in transcript { @@ -50,7 +50,7 @@ pub fn hash_u288_transcript( #[inline(always)] pub fn hash_E12DMulQuotient_u384( - elmt: E12DMulQuotient, mut s0: felt252, mut s1: felt252, mut s2: felt252 + elmt: E12DMulQuotient, mut s0: felt252, mut s1: felt252, mut s2: felt252, ) -> (felt252, felt252, felt252) { let base: felt252 = 79228162514264337593543950336; // 2**96 @@ -92,7 +92,7 @@ pub fn hash_E12DMulQuotient_u384( #[inline(always)] pub fn hash_E12DMulQuotient_u288( - elmt: E12DMulQuotient, mut s0: felt252, mut s1: felt252, mut s2: felt252 + elmt: E12DMulQuotient, mut s0: felt252, mut s1: felt252, mut s2: felt252, ) -> (felt252, felt252, felt252) { let base: felt252 = 79228162514264337593543950336; // 2**96 @@ -136,7 +136,7 @@ pub fn hash_E12DMulQuotient_u288( // Apply sponge construction to a E12D element from an initial state (s0, s1, s2) #[inline(always)] pub fn hash_E12D_u384( - elmt: E12D, mut s0: felt252, mut s1: felt252, mut s2: felt252 + elmt: E12D, mut s0: felt252, mut s1: felt252, mut s2: felt252, ) -> (felt252, felt252, felt252) { let base: felt252 = 79228162514264337593543950336; // 2**96 @@ -181,7 +181,7 @@ pub fn hash_E12D_u384( #[inline(always)] pub fn hash_E12D_u288( - elmt: E12D, mut s0: felt252, mut s1: felt252, mut s2: felt252 + elmt: E12D, mut s0: felt252, mut s1: felt252, mut s2: felt252, ) -> (felt252, felt252, felt252) { let base: felt252 = 79228162514264337593543950336; // 2**96 @@ -228,7 +228,7 @@ pub fn hash_E12D_u288( // s1, s2) #[inline(always)] pub fn hash_MillerLoopResultScalingFactor_u384( - elmt: MillerLoopResultScalingFactor, mut s0: felt252, mut s1: felt252, mut s2: felt252 + elmt: MillerLoopResultScalingFactor, mut s0: felt252, mut s1: felt252, mut s2: felt252, ) -> (felt252, felt252, felt252) { let base: felt252 = 79228162514264337593543950336; // 2**96 @@ -255,7 +255,7 @@ pub fn hash_MillerLoopResultScalingFactor_u384( #[inline(always)] pub fn hash_MillerLoopResultScalingFactor_u288( - elmt: MillerLoopResultScalingFactor, mut s0: felt252, mut s1: felt252, mut s2: felt252 + elmt: MillerLoopResultScalingFactor, mut s0: felt252, mut s1: felt252, mut s2: felt252, ) -> (felt252, felt252, felt252) { let base: felt252 = 79228162514264337593543950336; // 2**96 @@ -283,7 +283,7 @@ pub fn hash_MillerLoopResultScalingFactor_u288( // Apply sponge construction to a sequence of E12D elements from an initial state (s0, s1, s2) #[inline(always)] pub fn hash_E12D_u384_transcript( - transcript: Span>, mut s0: felt252, mut s1: felt252, mut s2: felt252 + transcript: Span>, mut s0: felt252, mut s1: felt252, mut s2: felt252, ) -> (felt252, felt252, felt252) { let base: felt252 = 79228162514264337593543950336; // 2**96 @@ -334,7 +334,7 @@ pub fn hash_E12D_u384_transcript( #[inline(always)] pub fn hash_E12D_u288_transcript( - transcript: Span>, mut s0: felt252, mut s1: felt252, mut s2: felt252 + transcript: Span>, mut s0: felt252, mut s1: felt252, mut s2: felt252, ) -> (felt252, felt252, felt252) { let base: felt252 = 79228162514264337593543950336; // 2**96 @@ -387,7 +387,7 @@ pub fn hash_E12D_u288_transcript( // Apply sponge construction to a pair of G1 and G2 points from an initial state (s0, s1, s2) #[inline(always)] pub fn hash_G1G2Pair( - pair: G1G2Pair, s0: felt252, s1: felt252, s2: felt252 + pair: G1G2Pair, s0: felt252, s1: felt252, s2: felt252, ) -> (felt252, felt252, felt252) { let base: felt252 = 79228162514264337593543950336; // 2**96 diff --git a/src/src/utils/neg_3.cairo b/src/src/utils/neg_3.cairo index 409e4509..ed564db3 100644 --- a/src/src/utils/neg_3.cairo +++ b/src/src/utils/neg_3.cairo @@ -8,7 +8,7 @@ const STARK_MINUS_1_HALF: u256 = // Returns the sign of a felt252. // num is considered positive if num <= (STARK-1)//2 // num is considered negative if num > (STARK-1)//2 -fn sign(num: felt252) -> felt252 { +pub fn sign(num: felt252) -> felt252 { if num.into() <= STARK_MINUS_1_HALF { return 1; } else { @@ -17,7 +17,7 @@ fn sign(num: felt252) -> felt252 { } // Maps a sign returned by sign() to a u384 modulo the prime of a given curve index. -fn sign_to_u384(sign: felt252, curve_index: usize) -> u384 { +pub fn sign_to_u384(sign: felt252, curve_index: usize) -> u384 { if (sign == -1) { return get_min_one(curve_index); } else { @@ -67,8 +67,9 @@ pub fn neg_3_base_le(scalar: u128) -> Array { return digits; } -fn u256_array_to_low_high_epns( - scalars: Span, scalars_digits_decompositions: Option, Span)>> +pub fn u256_array_to_low_high_epns( + scalars: Span, + scalars_digits_decompositions: Option, Span)>>, ) -> (Array<(felt252, felt252, felt252, felt252)>, Array<(felt252, felt252, felt252, felt252)>) { let mut epns_low: Array<(felt252, felt252, felt252, felt252)> = ArrayTrait::new(); let mut epns_high: Array<(felt252, felt252, felt252, felt252)> = ArrayTrait::new(); @@ -94,18 +95,18 @@ fn u256_array_to_low_high_epns( Option::None(_) => { epns_low.append(scalar_to_epns(*scalar.low)); epns_high.append(scalar_to_epns(*scalar.high)); - } + }, } i += 1; } - } + }, } return (epns_low, epns_high); } -fn u128_array_to_epns( - scalars: Span, scalars_digits_decompositions: Option>> +pub fn u128_array_to_epns( + scalars: Span, scalars_digits_decompositions: Option>>, ) -> Array<(felt252, felt252, felt252, felt252)> { let mut epns: Array<(felt252, felt252, felt252, felt252)> = ArrayTrait::new(); @@ -121,11 +122,11 @@ fn u128_array_to_epns( let decomposition = decomposition.unbox(); epns.append(scalar_to_epns_with_digits(*scalar, *decomposition)); }, - Option::None(_) => { epns.append(scalar_to_epns(*scalar)); } + Option::None(_) => { epns.append(scalar_to_epns(*scalar)); }, } i += 1; } - } + }, } return epns; @@ -164,7 +165,7 @@ pub fn scalar_to_epns(scalar: u128) -> (felt252, felt252, felt252, felt252) { } pub fn scalar_to_epns_with_digits( - scalar: u128, mut digits: Span + scalar: u128, mut digits: Span, ) -> (felt252, felt252, felt252, felt252) { assert!(digits.len() <= 82, "The number of digits must be <= 82 for u128"); let mut sum_p = 0; @@ -187,208 +188,88 @@ pub fn scalar_to_epns_with_digits( assert!( scalar.into() == sum_p - sum_n, - "The scalar must be equal to the sum of the positive and negative digits" + "The scalar must be equal to the sum of the positive and negative digits", ); let sign_p = sign(sum_p); let sign_n = sign(sum_n); return (sign_p * sum_p, sign_n * sum_n, sign_p, sign_n); } -// #[cfg(test)] -// mod tests { -// use core::traits::TryInto; -// use core::circuit::{u384}; -// use super::{scalar_to_epns, neg_3_base_le, u384_eq_zero}; -// #[test] -// fn test_scalar_to_epns() { -// let (sum_p, sum_n, sign_p, sign_n) = scalar_to_epns(12); -// assert_eq!(sum_p, 9); -// assert_eq!(sum_n, 3); -// assert_eq!(sign_p, 1); -// assert_eq!(sign_n, -1); +#[cfg(test)] +mod tests { + use core::traits::TryInto; + use core::circuit::{u384}; + use super::{scalar_to_epns, neg_3_base_le}; + + #[test] + fn test_scalar_to_epns() { + let (sum_p, sum_n, sign_p, sign_n) = scalar_to_epns(12); + + assert_eq!(sum_p, 9); + assert_eq!(sum_n, 3); + assert_eq!(sign_p, 1); + assert_eq!(sign_n, -1); + + let (sum_p, sum_n, sign_p, sign_n) = scalar_to_epns(35); + + assert_eq!(sum_p, 9); + assert_eq!(sum_n, 26); + assert_eq!(sign_p, 1); + assert_eq!(sign_n, -1); + + let (sum_p, sum_n, _, _) = scalar_to_epns(0); + + assert_eq!(sum_p, 0); + assert_eq!(sum_n, 0); + + let (sum_p, sum_n, sign_p, sign_n) = scalar_to_epns( + 170141183460469231731687303715884105728, + ); //2**127 -// let (sum_p, sum_n, sign_p, sign_n) = scalar_to_epns(35); - -// assert_eq!(sum_p, 9); -// assert_eq!(sum_n, 26); -// assert_eq!(sign_p, 1); -// assert_eq!(sign_n, -1); - -// let (sum_p, sum_n, _, _) = scalar_to_epns(0); - -// assert_eq!(sum_p, 0); -// assert_eq!(sum_n, 0); - -// let (sum_p, sum_n, sign_p, sign_n) = scalar_to_epns( -// 170141183460469231731687303715884105728 -// ); //2**127 - -// assert_eq!(sum_p, 164253760949568696627221936579612523510); -// assert_eq!(sum_n, 5887422510900535104465367136271582218); //using STARK field -// assert_eq!(sign_p, 1); -// assert_eq!(sign_n, -1); - -// let (sum_p, sum_n, sign_p, sign_n) = scalar_to_epns( -// 85070591730234615865843651857942052864 -// ); //2 **126 - -// assert_eq!(sum_p, 97865891762673628272143863189949020615); -// assert_eq!(sum_n, 12795300032439012406300211332006967751); -// assert_eq!(sign_p, 1); -// assert_eq!(sign_n, 1); - -// let (sum_p, sum_n, sign_p, sign_n) = scalar_to_epns( -// 85070591730234615865843651857942052874 -// ); //2 **126 + 10 - -// assert_eq!(sum_p, 97865891762673628272143863189949020623); -// assert_eq!(sum_n, 12795300032439012406300211332006967749); -// assert_eq!(sign_p, 1); -// assert_eq!(sign_n, 1); -// } - -// #[test] -// fn test_scalar_to_epns_single() { -// let (sum_p, sum_n, sign_p, sign_n) = scalar_to_epns( -// 170141183460469231731687303715884105728 -// ); //2**127 - -// assert_eq!(sum_p, 164253760949568696627221936579612523510); -// assert_eq!(sum_n, 5887422510900535104465367136271582218); -// assert_eq!(sign_p, 1); -// assert_eq!(sign_n, -1); -// } - -// #[test] -// fn test_neg_3_base_le() { -// let digits: Array = neg_3_base_le(12); - -// let expected: Array = array![0, -1, 1]; - -// assert_eq!(digits, expected); - -// let digits: Array = neg_3_base_le(0); -// let expected: Array = array![0]; - -// assert_eq!(digits, expected); - -// let digits: Array = neg_3_base_le(35); - -// let expected: Array = array![-1, 0, 1, -1]; - -// assert_eq!(digits, expected); - -// let digits: Array = neg_3_base_le(22); -// let expected: Array = array![1, -1, -1, -1]; - -// assert_eq!(digits, expected); - -// let digits: Array = neg_3_base_le(16); - -// let expected: Array = array![1, 1, -1, -1]; - -// assert_eq!(digits, expected); -// let digits: Array = neg_3_base_le( -// 170141183460469231731687303715884105728 -// ); //2**127 - -// let expected: Array = array![ -// -1, -// -1, -// 0, -// 1, -// 0, -// -1, -// 0, -// 0, -// -1, -// -1, -// 1, -// 0, -// 0, -// 1, -// -1, -// 1, -// 0, -// 1, -// 1, -// 1, -// 0, -// 1, -// 1, -// 1, -// 0, -// 0, -// -1, -// -1, -// 0, -// 0, -// -1, -// -1, -// -1, -// -1, -// 1, -// 0, -// 1, -// 1, -// 0, -// 0, -// 0, -// 1, -// 1, -// -1, -// 1, -// 1, -// 0, -// 1, -// 1, -// 1, -// -1, -// 0, -// 1, -// 0, -// -1, -// -1, -// 1, -// 0, -// 0, -// 0, -// 1, -// 1, -// -1, -// -1, -// 1, -// 0, -// 1, -// 0, -// 0, -// 1, -// 0, -// -1, -// 1, -// 0, -// -1, -// -1, -// 0, -// -1, -// 1, -// 0, -// 1 -// ]; - -// assert_eq!(digits, expected); -// } - -// #[test] -// fn test_neg_3_base_le_single() { -// let digits: Array = neg_3_base_le(16); - -// let expected: Array = array![1, 1, -1, -1]; - -// assert_eq!(digits, expected); -// } -// } + assert_eq!(sum_p, 164253760949568696627221936579612523510); + assert_eq!(sum_n, 5887422510900535104465367136271582218); //using STARK field + assert_eq!(sign_p, 1); + assert_eq!(sign_n, -1); + let (sum_p, sum_n, sign_p, sign_n) = scalar_to_epns( + 85070591730234615865843651857942052864, + ); //2 **126 + + assert_eq!(sum_p, 97865891762673628272143863189949020615); + assert_eq!(sum_n, 12795300032439012406300211332006967751); + assert_eq!(sign_p, 1); + assert_eq!(sign_n, 1); + + let (sum_p, sum_n, sign_p, sign_n) = scalar_to_epns( + 85070591730234615865843651857942052874, + ); //2 **126 + 10 + + assert_eq!(sum_p, 97865891762673628272143863189949020623); + assert_eq!(sum_n, 12795300032439012406300211332006967749); + assert_eq!(sign_p, 1); + assert_eq!(sign_n, 1); + } + + #[test] + fn test_scalar_to_epns_single() { + let (sum_p, sum_n, sign_p, sign_n) = scalar_to_epns( + 170141183460469231731687303715884105728, + ); //2**127 + + assert_eq!(sum_p, 164253760949568696627221936579612523510); + assert_eq!(sum_n, 5887422510900535104465367136271582218); + assert_eq!(sign_p, 1); + assert_eq!(sign_n, -1); + } + #[test] + fn test_neg_3_base_le_single() { + let digits: Array = neg_3_base_le(16); + + let expected: Array = array![1, 1, -1, -1]; + + assert_eq!(digits, expected); + } +} diff --git a/src/src/utils/noir.cairo b/src/src/utils/noir.cairo new file mode 100644 index 00000000..2d6755c9 --- /dev/null +++ b/src/src/utils/noir.cairo @@ -0,0 +1,360 @@ +pub mod keccak_transcript; + +use garaga::definitions::{G1Point, G2Point}; +use garaga::definitions::{u288, u384}; +use garaga::core::circuit::{U64IntoU384}; + +#[derive(Drop, Copy, Serde)] +struct G1Point256 { + x: u256, + y: u256, +} + +#[derive(Drop, Copy)] +struct G1PointProof { + x0: u256, + x1: u256, + y0: u256, + y1: u256, +} + +#[derive(Drop, Serde, Copy)] +pub struct HonkProof { + pub circuit_size: u64, + pub public_inputs_size: u64, + pub public_inputs_offset: u64, + pub public_inputs: Span, + pub w1: G1Point256, + pub w2: G1Point256, + pub w3: G1Point256, + pub w4: G1Point256, + pub z_perm: G1Point256, + pub lookup_read_counts: G1Point256, + pub lookup_read_tags: G1Point256, + pub lookup_inverses: G1Point256, + pub sumcheck_univariates: Span, + pub sumcheck_evaluations: Span, + pub gemini_fold_comms: Span, + pub gemini_a_evaluations: Span, + pub shplonk_q: G1Point256, + pub kzg_quotient: G1Point256, +} + + +#[derive(Drop, Copy)] +pub struct HonkVk { + circuit_size: usize, + log_circuit_size: usize, + public_inputs_size: usize, + public_inputs_offset: usize, + qm: G1Point, + qc: G1Point, + ql: G1Point, + qr: G1Point, + qo: G1Point, + q4: G1Point, + qArith: G1Point, + qDeltaRange: G1Point, + qElliptic: G1Point, + qAux: G1Point, + qLookup: G1Point, + qPoseidon2External: G1Point, + qPoseidon2Internal: G1Point, + s1: G1Point, + s2: G1Point, + s3: G1Point, + s4: G1Point, + id1: G1Point, + id2: G1Point, + id3: G1Point, + id4: G1Point, + t1: G1Point, + t2: G1Point, + t3: G1Point, + t4: G1Point, + lagrange_first: G1Point, + lagrange_last: G1Point, +} + + +pub const G2_POINT_KZG_1: G2Point = G2Point { + x0: u384 { + limb0: 0xf75edadd46debd5cd992f6ed, + limb1: 0x426a00665e5c4479674322d4, + limb2: 0x1800deef121f1e76, + limb3: 0x0, + }, + x1: u384 { + limb0: 0x35a9e71297e485b7aef312c2, + limb1: 0x7260bfb731fb5d25f1aa4933, + limb2: 0x198e9393920d483a, + limb3: 0x0, + }, + y0: u384 { + limb0: 0xc43d37b4ce6cc0166fa7daa, + limb1: 0x4aab71808dcb408fe3d1e769, + limb2: 0x12c85ea5db8c6deb, + limb3: 0x0, + }, + y1: u384 { + limb0: 0x70b38ef355acdadcd122975b, + limb1: 0xec9e99ad690c3395bc4b3133, + limb2: 0x90689d0585ff075, + limb3: 0x0, + }, +}; + + +pub const G2_POINT_KZG_2: G2Point = G2Point { + x0: u384 { + limb0: 0x3b32078b7e231fec938883b0, + limb1: 0xbc89b5b398b5974e9f594407, + limb2: 0x118c4d5b837bcc2, + limb3: 0x0, + }, + x1: u384 { + limb0: 0x358e038b4efe30fac09383c1, + limb1: 0xe7ff4e580791dee8ea51d87a, + limb2: 0x260e01b251f6f1c7, + limb3: 0x0, + }, + y0: u384 { + limb0: 0x96e6cea2854a87d4dacc5e55, + limb1: 0x56475b4214e5615e11e6dd3f, + limb2: 0x22febda3c0c0632a, + limb3: 0x0, + }, + y1: u384 { + limb0: 0x41f99ba4ee413c80da6a5fe4, + limb1: 0xd25156c1bb9a72859cf2a046, + limb2: 0x4fc6369f7110fe3, + limb3: 0x0, + }, +}; + + +pub fn get_proof() -> HonkProof { + HonkProof { + circuit_size: 32, + public_inputs_size: 1, + public_inputs_offset: 1, + public_inputs: array![0x2].span(), + w1: G1Point256 { + x: 0x2465e9ff1629df572d7ae9fd1b9bd98946560392b669c03f9a4a496ae7e4cace, + y: 0x17bce8fc74ab3b9430b6485da928ea6951ebee411689e29dc324843ee1708142, + }, + w2: G1Point256 { + x: 0xeb93267e664634c1ae1a608b81785cfec11669ee95a1dbc6386717066310cb1, + y: 0x23169272f91d323ced584549d31020c12f7cbf314c309c0ee105c3bbfef28399, + }, + w3: G1Point256 { + x: 0xd394ffb5eb2d33c6a2540db125d27fb60665db10ae3f80d91eb189b318d7d58, + y: 0xa325d606966d0ecbf514d787c3440de179ff8427f66be54fcabe05420fc14d0, + }, + w4: G1Point256 { + x: 0xca7365a8a7d92bd713e8625cde47db105835a557cf68ce01414ede87a1ce97b, + y: 0x26bf12dceab316d64651db4ea03663d3d9478d6ea9a1f20bbe215561e139c7f7, + }, + z_perm: G1Point256 { + x: 0x69b493db1ad1bcb140505bc5a806d425af4e78b20794bc813a7669eba382a02, + y: 0x2d6c35a33c91dd52432099ee20f87ed823919ed60347a56b4678b3a485e58197, + }, + lookup_read_counts: G1Point256 { + x: 0xddfdbbdefc4ac1580ed38e12cfa490d9d719a8b9f020ad3642d60fe704e696f, + y: 0xff3e0896bdea021253b3d360fa6788289fe9754ce48cd01b7be96a861b5e157, + }, + lookup_read_tags: G1Point256 { + x: 0xddfdbbdefc4ac1580ed38e12cfa490d9d719a8b9f020ad3642d60fe704e696f, + y: 0xff3e0896bdea021253b3d360fa6788289fe9754ce48cd01b7be96a861b5e157, + }, + lookup_inverses: G1Point256 { + x: 0x1fad315eb3f489658734a3aff63bfb846255a077783e50444d60ac2b104b1ad4, + y: 0x1067a4d8157c660c69e7022dd32ab0e30dd9987dae02f54e15edab896b9469a2, + }, + sumcheck_univariates: array![ + 0x285e5ff7d3c0d15f59c2761a965696bf749065fe4cac90b7c5310afb3df3b3b, + 0x2dde687363f59313c2b41e54d81beef130eae1e894eea785c78ee4e43c20c4c6, + 0x13c19d3e42c8b355492f1d756884dea3957b5bf6e2e8193ffb4e7fc3f158efc, + 0x1e4d71cffdc20a5a19dd68d4cfe2cdf067a2aa1f44b89cecab6caaf55dae3417, + 0x1907ec4e632967f4f16250f16fa97ec7c9e8d7b72fec50a60adf7f77e14fb1b5, + 0x125582c3c04f25ef9b7c841edc3a461f112e792fed4296f2bcc67372e41bfaa3, + 0x23f1075c04d207789c601197be8d38a22a11e5d035bce960f9dc69baa6af03c2, + 0x12895dcc211378d9eb6614866aa0bb1a8cf720ee34451efcd92dc82c43504c13, + 0x2280f8067080c8f83123f8d052b5a181c0a5f3baa905f42d4549057585e69821, + 0x78dc17e403e81e7abb5353b62a897955e9596f56744cd931e7063f7937418d9, + 0x1e2c998e66e78dbfb4bb9658d8637f618baf885995fbd76d7922cc4e26dba669, + 0x262cd1b8fdc741c2073c3c669b12e6deac6705f6214410306a8ecc6bdbec8d71, + 0x2228b8dca9925fee72e5587e58bafbd45947c386446f3bdb63c4e010d72a0e56, + 0x2bda190568fdecabb525a7745c2d7d5242f264daeef67f932268e72b5adcf6d1, + 0x4266918448a9ec8cac8f881c0bc1ba9c42959111b9f2991c93b169f38dca51a, + 0x1150a038bbadb896d080e0158f85e7b0df710c1910a6503774bdcf08ef39a393, + 0x92a9fd6fe59243760042ddcaf85dcf2c9268e52c5208d75cb9125b2daa42700, + 0x123d711e98a50c8eef600161bc486d62069e13ad4d12064603d30e8f2d6e5265, + 0x25b58d132934afdccc480a8c964e477b88cbafdf91370ee9b4b4a1cc2e4e1a8e, + 0x1537803983a0459d1e3ed61aa59cbf0856a2a510df7901046b79a4257a9fcb30, + 0x13c08cf9426d1e2f7e132e9c6e13e8b93b6905ccc539cb357e69e0f5d66ddfd7, + 0x1f1cc54b85b64db929daf476a572212d852ad2e7666921e603bb50a1097c870f, + 0x17cfeb6ab26a28116fe3d4b5156c1512223d86e3528cd667536f1c170a4cb755, + 0x1610c336fc031be68c629c990e755afcbb43e7630726af1dfb32ff7de2a1f903, + 0x78c2e9fcb11a9ff1dabdc022f77c29a52ff10e9bfc25a8e1c2f38eeb9a7b314, + 0x24df74453b540fc68c0a5bd1c618d3ccf49e7513983cd8fd4cf0899ad5cef4e2, + 0x252ed9cd7ef0d0e60aa1b3fed302a1314450edf6ebce5036cc81b5f21f166a35, + 0x27b4ef390baa1c9773a170ac64b0dea0dfd02fbe3a43d8061e77c487ef097245, + 0x25b39250035ebe1756ec1085919d0a90a973aafcdc1b4cc77844dc81c81f017e, + 0x28b32ee8f4dd8c62de8140dd3730fc52de4abc0cab9289bceeffb1469484b318, + 0x53b798117b11aee0c5bccfb2a8d926dd45c7b3f560f8d3133d42f4deab22d45, + 0x9eacab815d72783fdf291121be7af695260916f8f9bd74b980317f9c6ff4cea, + 0x22fd30a934d68c2b3d1763e038f5f41eaaefa2311abbe8e38f00a4edc500b322, + 0x62e1857e2ed5546ce6ec7b4e2210329eb169f5695e3a04d48acf52f5359e55d, + 0xba09b18683d296cf830d2da7515d381e431fe1ac792c3117007dd2e7ad8de35, + 0x16bf0a5f2abce1fdc44461687d611ef8b4a2b538249fec1d8d32f25c3325ae4f, + 0x90d1aabada01c6d1ef8e122169f88bc36d80462934ac786ed7f63568a815f72, + 0x263a15eb7a5d4da20cd74bda64acd6bfd515fd57e001f571ee7f25dbbc819935, + 0x1a6da135c8b1c95f0ebac3186421c4bf62c71f27fe9b2e34279afe65270e21a0, + 0x2d928d40bc62836da72eadced3c96f846cf0440b939d746db2a987e41f8b7356, + ] + .span(), + sumcheck_evaluations: array![ + 0x1a06a87012710fd1c416ee0a81de014dc12da6bd44c812868d4d8d91705294f3, + 0x2012afa46741d05cb85c40093907abdb7574bf246de6693c0bcb500c024bed49, + 0x16d2dcca0c4c5dd38a1cbdf00f94cc0f41954ae8a21b2ef2bafb8007f380ef1, + 0x1d767c5dbac46ebf8a7013691ea0891882b5007674b35bbfde9cd4bc2e527a32, + 0x2072966d339011498d1331276eee58f2716229236f13d7ac10775b81a2c70271, + 0x29615adfdc896c3c4bc11a471fddea935de1dbcc34695acb83bc52c1535a1fc7, + 0x1cbd3abddb824aab725a3e87f5202aecf7a87932dd8cd8aa01e86841f2025a5b, + 0x2197c5a29e67ebce890221a058378114009b563c25a66c334de5a6f8dcc53094, + 0x109d8838a44b820b35b284797baa972b32ecac1e785c28bf6fd46f538ef657cb, + 0xc5ce9a7dba32f117596969c584075ba0be089b3179250b54b4de0f8b82306c9, + 0x136b79129f5cbbee2ac685099e0182bbf1b19d1a71ce8e1c988b096f63e63c9b, + 0x9ebda9fbb822762ed663d8f2900916556fd179eaaa9ea934b7e8a7d20e3e63b, + 0x219f37dedd2feb7e2fc8732ff3a4f9744a0ade748cc5ded5871788b08161f1ba, + 0x1cbe60346abb4bb1e5a18f5a3ae1bebb0131281bc771e514646801bcaaaa7b19, + 0x25c6182d057785e9974b649d809ba61f02f1b57f0285524f7fcfd846dae74449, + 0xec9d62836acb4405a03d4b6de597612ab38a7d4d7db95c84b63ac9fed6e8e64, + 0xb7c8f939f6fa71843efcea2c04a8039a8f7b8fdd6626709c4aa17ab385349d9, + 0x1654259afe3affe4832121f56a178087dbccabb19b86c25505a81befe75c45fe, + 0x172c26ec9dc7ba6a44a801982a38df0d66e7f0fba528d13f8044e081bc42b50f, + 0x28119325d0559d33e0ebd0d8a0da55ff95092c22605a33b36cf68b61d065f7b0, + 0xf8af0669a895c3c83d38e2a2d8d91df30, + 0xa30795ccb3a688c8fa73e641b6b9378c6b16ee60e343b7956d76425403ac5e7, + 0x2b0bb083ab6d90ddd5e5a21825f3a617262bc47aa93f52a20d3264284b311bb4, + 0x1eb2d76140d9256752ba21ef4ed4ee8ef021591a723b15889a1e188e2333f3a9, + 0x370704ed29ed5ba64b5690f3bac66b1fd991f58b9df2d5485c44a2880717ab2, + 0x26f2ff7fc2b01cef7d34571cf0e6c1efabb0f52fa3abc4e240ac5b74ec777aeb, + 0x2d545b9152db90404ecfaa00e4afe0d028f91370f587e97944335cf752030eea, + 0x182530062026dca5e7f8fae24ac91eefbaa64cadd9fd5ce77edb9a993aad6024, + 0x2334e657023ebe2d46fd71af9ca0d42089ae8b1b3025926e1e090e6425232ed4, + 0x4880bbfa8d664f43a1987a81d17c5346eb08bf4e2471146e1f501b38a6ef8a8, + 0x23426d30a8d4e7874c7835e9d8b5365bfc06a64aeea18fcedb89271b35a1b490, + 0x177ab630e0a4fb877db50b2a8a06e7dbc4b5ee690ed3276e50cdeb10c53fa882, + 0x1d288d5d4bb236954164d2db3bb053a79a18bdf2e29d1a0d148feba5e6807a9e, + 0x6ba070d3082e755a2f0477735bcd07d421b38db6babb576cac465d1524cccaf, + 0x6ba070d3082e755a2f0477735bcd07d421b38db6babb576cac465d1524cccaf, + 0x27c81bc615a22abf1fac518dd5e5989568a6c1a9e01c232dce80fcaae6d2483d, + 0x161ffed97d6de369ad85a1f0ece8a2b78c2ad4c18e3ce0aa68970a210fc8cdac, + 0xf4ab79878c744dc417e449d77d865f631040751c61751f26a5c47cc6103394c, + 0x104a5d1f1fcddce2daa6e7f1ab0c26493e2a01e32dedf0fb4fe5e1330eb8298f, + 0x185aa4d67dfc4877aea3c4019cdc087b504d06bdb54709c5a9e535e0a1001f6, + 0x13f4dbcb20e54a15649d2a911e55e4148fdfceb790222f87f2870ea0f2faea7a, + 0x182c615f4962dd5e9e2bcaa2148668c2967b30cbde78cdd953d5efa1ee7305e7, + 0x10e60eadf16da6ae5691b91f92bef89ba9c5a60574f6b23f8ac6fc39b0d73141, + 0x12cebf3da6a166ed7f43f707c64cb377f4cf76063f8c5afe9fb5a52c612e4cae, + ] + .span(), + gemini_fold_comms: array![ + G1Point256 { + x: 0x30f6ead299b812a9d0e34913e4897baa11cec4f4364333bd02c3ddb15b2796, + y: 0xe2c88de5ecff9e5e57f587f11a581f95e8311abc9cbc8b79f71f5043aa54178, + }, + G1Point256 { + x: 0x24c191be28e3c61bc03e45da0e82ef589a4e35476322229e437e049dbdf633a9, + y: 0x190ea556eee073ab057011ff249806fce345419ce1c38dc47e6eac312132d8c0, + }, + G1Point256 { + x: 0xdca2271951c15f10fe1bd6b142ae96d710cbe11e7f67b885ba8cf553f9b7a89, + y: 0x222d3b8adfc808eccc9b6be870295d686f2f78a47a20070faa67ac921a0d62ec, + }, + G1Point256 { + x: 0x3518fba7088a6f8103d8bc2f72a67a68cff759c9e8e70071a0c0d67a89bd684, + y: 0x2796e48e3909df2b389f68123329adb1994e35d6faad76671de81ead27b3bef0, + }, + ] + .span(), + gemini_a_evaluations: array![ + 0x6d88005bac7d50eaf47b0321f0075d0892f453254935ef79c503047f177ac3c, + 0x1f22b729740dcd28043721670fa5c3f6ec7c6e8f7150848eb590a57bb2c774a1, + 0x27af7bd3cb339be63a51d2305fc2ddf2c887b0a59511ec160aacec44308c9ffd, + 0x16368d4a8fc2dee62530847567ad8d75ecd96aaa541c487628f56c47c5bb1771, + 0xe405cd6caac953006162d7c72468986e014792ee1e09e041c69bea39def7c6d, + ] + .span(), + shplonk_q: G1Point256 { + x: 0x1e3ce2491c516e0e06eaa5dcad936bce2677c1867be2aeb5720375ffc79b6e21, + y: 0xd1133764157bc108c1e4e201a02968887c77e16afdbb635b2729af6424c9e9e, + }, + kzg_quotient: G1Point256 { + x: 0x1068dd1d211c8b30fdbfa561f69a4d062daa8998dd609fd7de22ed5babb86c4b, + y: 0x216af708e0184bcac66514720a6bffaa7fee53f2f7ae34dc374df8ede0c3c09b, + }, + } +} + +pub fn remove_unused_variables_sumcheck_evaluations(evaluations: Span) -> Span { + // Basically remove indexes 35 36 37 38. + let mut new_evaluations: Array = array![]; + for i in 0..35_usize { + new_evaluations.append(*evaluations.at(i)); + }; + for i in 39..evaluations.len() { + new_evaluations.append(*evaluations.at(i)); + }; + new_evaluations.span() +} +// #[cfg(test)] +// mod tests { +// use super::{ +// HonkProof, HonkVk, G1Point256, G1PointProof, get_proof, +// remove_unused_variables_sumcheck_evaluations, U64IntoU384 +// }; +// use core::num::traits::{Zero, One}; + +// use core::circuit::u384; +// use garaga::utils::noir::keccak_transcript::{HonkTranscriptTrait}; +// use garaga::circuits::honk_circuits::{ +// run_GRUMPKIN_HONK_SUMCHECK_SIZE_5_PUB_1_circuit, +// run_GRUMPKIN_HONK_PREPARE_MSM_SCALARS_SIZE_5_circuit, +// }; + +// #[test] +// fn test_sumcheck() { +// let proof = get_proof(); +// let (transcript, base_rlc) = HonkTranscriptTrait::from_proof(proof); +// let log_n = 5; +// let (check_rlc, check) = run_GRUMPKIN_HONK_SUMCHECK_SIZE_5_PUB_1_circuit( +// p_public_inputs: proof.public_inputs, +// p_public_inputs_offset: proof.public_inputs_offset.into(), +// sumcheck_univariate_0: (*proof.sumcheck_univariates.at(0)), +// sumcheck_univariate_1: (*proof.sumcheck_univariates.at(1)), +// sumcheck_univariate_2: (*proof.sumcheck_univariates.at(2)), +// sumcheck_univariate_3: (*proof.sumcheck_univariates.at(3)), +// sumcheck_univariate_4: (*proof.sumcheck_univariates.at(4)), +// sumcheck_evaluations: remove_unused_variables_sumcheck_evaluations( +// proof.sumcheck_evaluations +// ), +// tp_sum_check_u_challenges: transcript.sum_check_u_challenges.span().slice(0, log_n), +// tp_gate_challenges: transcript.gate_challenges.span().slice(0, log_n), +// tp_eta_1: transcript.eta.into(), +// tp_eta_2: transcript.eta_two.into(), +// tp_eta_3: transcript.eta_three.into(), +// tp_beta: transcript.beta.into(), +// tp_gamma: transcript.gamma.into(), +// tp_base_rlc: base_rlc.into(), +// tp_alphas: transcript.alphas.span(), +// ); + +// assert(check_rlc.is_zero(), 'check_rlc should be zero'); +// assert(check.is_zero(), 'check should be zero'); +// } +// } + + diff --git a/src/src/utils/noir/keccak_transcript.cairo b/src/src/utils/noir/keccak_transcript.cairo new file mode 100644 index 00000000..b15030e5 --- /dev/null +++ b/src/src/utils/noir/keccak_transcript.cairo @@ -0,0 +1,552 @@ +use core::keccak; +use core::traits::Into; +use core::poseidon::hades_permutation; +use core::array::array_slice; +use garaga::definitions::G1Point; +use garaga::utils::noir::{HonkProof, G1Point256, G1PointProof}; + +const POW2_136: u256 = 0x10000000000000000000000000000000000; +const POW2_136_NZ: NonZero = 0x10000000000000000000000000000000000; +const Fr: u256 = 21888242871839275222246405745257275088548364400416034343698204186575808495617; + +const NUMBER_OF_SUBRELATIONS: usize = 26; +const NUMBER_OF_ALPHAS: usize = NUMBER_OF_SUBRELATIONS - 1; +const CONST_PROOF_SIZE_LOG_N: usize = 28; +const BATCHED_RELATION_PARTIAL_LENGTH: usize = 8; +const NUMBER_OF_ENTITIES: usize = 44; + + +impl ProofPointIntoPoint256 of Into { + fn into(self: G1PointProof) -> G1Point256 { + G1Point256 { x: self.x0 + self.x1 * POW2_136, y: self.y0 + self.y1 * POW2_136 } + } +} + +impl Point256IntoProofPoint of Into { + fn into(self: G1Point256) -> G1PointProof { + let (x1, x0) = DivRem::div_rem(self.x, POW2_136_NZ); + let (y1, y0) = DivRem::div_rem(self.y, POW2_136_NZ); + G1PointProof { x0: x0, x1: x1, y0: y0, y1: y1 } + } +} + +impl ProofPointIntoCircuitPoint of Into { + fn into(self: G1PointProof) -> G1Point { + let pt_256: G1Point256 = self.into(); + let pt: G1Point = G1Point { x: pt_256.x.into(), y: pt_256.y.into() }; + pt + } +} + +pub impl Point256IntoCircuitPoint of Into { + fn into(self: G1Point256) -> G1Point { + G1Point { x: self.x.into(), y: self.y.into() } + } +} + +#[derive(Drop, Debug, PartialEq)] +struct HonkTranscript { + eta: u128, + eta_two: u128, + eta_three: u128, + beta: u128, + gamma: u128, + alphas: Array, + gate_challenges: Array, + sum_check_u_challenges: Array, + rho: u128, + gemini_r: u128, + shplonk_nu: u128, + shplonk_z: u128, +} + +#[generate_trait] +impl HonkTranscriptImpl of HonkTranscriptTrait { + fn from_proof(honk_proof: HonkProof) -> (HonkTranscript, felt252) { + let (etas, challenge) = get_eta_challenges( + honk_proof.circuit_size, + honk_proof.public_inputs_size, + honk_proof.public_inputs_offset, + honk_proof.public_inputs, + honk_proof.w1.into(), + honk_proof.w2.into(), + honk_proof.w3.into(), + ); + let beta_gamma = get_beta_gamma_challenges( + challenge, + honk_proof.lookup_read_counts.into(), + honk_proof.lookup_read_tags.into(), + honk_proof.w4.into(), + ); + let (alphas, challenge) = generate_alpha_challenges( + beta_gamma, honk_proof.lookup_inverses.into(), honk_proof.z_perm.into(), + ); + let (gate_challenges, challenge) = generate_gate_challenges(challenge); + + let (sum_check_u_challenges, challenge) = generate_sumcheck_u_challenges( + challenge, honk_proof.sumcheck_univariates, + ); + + let rho = generate_rho_challenge(challenge, honk_proof.sumcheck_evaluations); + let gemini_r = generate_gemini_r_challenge(rho, honk_proof.gemini_fold_comms); + + let shplonk_nu = generate_shplonk_nu_challenge(gemini_r, honk_proof.gemini_a_evaluations); + let shplonk_z = generate_shplonk_z_challenge(shplonk_nu, honk_proof.shplonk_q.into()); + + let (base_rlc, _, _) = hades_permutation(shplonk_z.low.into(), shplonk_z.high.into(), 2); + + return ( + HonkTranscript { + eta: etas.eta, + eta_two: etas.eta2, + eta_three: etas.eta3, + beta: beta_gamma.low, + gamma: beta_gamma.high, + alphas: alphas, + gate_challenges: gate_challenges, + sum_check_u_challenges: sum_check_u_challenges, + rho: rho.low, + gemini_r: gemini_r.low, + shplonk_nu: shplonk_nu.low, + shplonk_z: shplonk_z.low, + }, + base_rlc, + ); + } +} + +#[cfg(test)] +mod tests { + use super::{HonkProof, G1Point256, HonkTranscript, HonkTranscriptTrait}; + use garaga::utils::noir::get_proof; + #[test] + fn test_transcript() { + let proof = get_proof(); + let (transcript, _) = HonkTranscriptTrait::from_proof(proof); + let expected = HonkTranscript { + eta: 0xb39d3e94753aae04abee4a2d8bcf33c8, + eta_two: 0x2879f27d8c79fcf349a1614e615eb930, + eta_three: 0x6dd69c9f0d538e02614343ebbaec94c4, + beta: 0x653c95e184f5305209746f10f3401ddc, + gamma: 0x2a77ba7a2b7e471087e83275c002c987, + alphas: array![ + 0x4d024d88774eb414929f9236ddc0ff0b, + 0xc27607fec7910292d3db029784a3bd2, + 0x313ece568283901f1001c2f3e4f70ff0, + 0x29be68a73a72e703f50eb4e4a71b380c, + 0x9a145a2c018cffde9da5b9d666266ec2, + 0x1357a9f3a86780304111dee8c50c73b6, + 0x76a4d34da274f0dc6404b38d33bca0c0, + 0xf50c391d900c25cb780414d77c9af62, + 0xd3fb3e8d23f8ce6552637f50ae8f98eb, + 0x2f82e3b0482e17260316d930ecf69e0e, + 0x58b37d1b41bee394811b70cad2b6ca92, + 0x5773e20e5193913b7d7a70aa97788de, + 0xe93903034d181faa5fd2514edc34e273, + 0x1e513b7823c3abe1e85abd5716850beb, + 0x76ee74561367b62c0a6ca6ab7c4eacf1, + 0x14c0384d6e14bc51b17456006be8f882, + 0x2b1fcd8bd6155bcfc07d4089f8519861, + 0x798085a9507b0c108763e11b9a35071, + 0x43ba9d0e796c9b64267952be08d0af20, + 0x268cec13edbe6acc95ae4854d5158e42, + 0x15b120271dff8cc2b9e39e807e4b0ff4, + 0x14092616193e2bd6e5345403d64fcd59, + 0x267ac64d556df27a9cc39032e8c7d6c3, + 0xc14b848a58c80950545e4bf6dd284e1, + 0xb09e53a5fb8c5308768299c33b143bd8, + ], + gate_challenges: array![ + 0xc172dd2450a5c43df9f45a102035f4aa, + 0xd9e8e31dd1bf34b1fd2c8dc378718bad, + 0x3b18273b302fc3f7e291bde9e8f657af, + 0x63851884d3d82ee17736f752da9bac35, + 0xf209bde7aca3c49f2cadbe4dca83dde9, + 0x69f14a768158343825c27a938fbf36b5, + 0xec589c20c082a8bbc2a5358dffcbb029, + 0xcbc709637c971ff0235b30e22631d7c4, + 0xb21375f2d73fe9a9b9a0bc6ec2572958, + 0x245b66aebdb626945436091e17da60ac, + 0x62d7e222920e40d2706978b2e032cef5, + 0xd7f22806ba3855643a24874eacad3416, + 0x471214514009909e9ab6cb05b004dcd2, + 0xc5ea117fcb3a2986a4a0a3b2524e8cda, + 0xc83493ac2556971a3705619eb92a536f, + 0xc5830917428e1bac8ddffd2455fd95a4, + 0xc285c631c4c8da6a4878d427ab0ee02e, + 0xbf75c5b1da0b6a57af698f776b4739ab, + 0x276eccfb8e82d126f2c292d9708dd761, + 0x9476a0a387149c8d1b78a58476b9efff, + 0x7ffa377781a42d05905df51f7fe83dff, + 0xbe0897e28f22aaf3c50014d76d49f4a0, + 0x62bcad183fec3655f642f8bd33895c5f, + 0x2cd23571aaa192e5525b3f440c21946d, + 0xabc55392a196f776e4e6c843c9076946, + 0x609cc20bb22f811a3c24e0c1f20deb03, + 0x15356ea3058bd02736fc6ee7fae12b0d, + 0xdee13f4571cd5267161d943456bc803b, + ], + sum_check_u_challenges: array![ + 0xe61948888da551fcbd6481a7af8cf0c0, + 0x1bc9a638f9f0e48211e06f74fdc4ee30, + 0xb0494ceda348dd1ad61845b2820bb7a4, + 0xe1a0fcc92b7bfa7d75edec03b2500e70, + 0x49f16b7a01ed1d92bea9852b447cbbfa, + 0xb05ec1b687b95e039f37a9c102b6faa1, + 0x93f8c2d82054794f1d9bc5016a00093f, + 0x59690cf79013abb0d194ec0d621435cb, + 0xb092f424ff1f2dc7e55a9aec2bcd1b6a, + 0xb41ba16fc7d5b8771894145a6a4a3653, + 0xb7b0adaf7d801bae84bb10e77898104f, + 0xdcc650724f78f5544d9e4104c0c66049, + 0x9372338e1b74cefc0a9297fb6c9cdf2f, + 0xe7caf286270a5faab65e811c41b651ec, + 0xc3ecafac87e8f09ca2d644596fdf1843, + 0x680091c031e3e54068f30b1abbba4032, + 0xe923e5d1a9f802c0de0263b0847a98a7, + 0x1e082dbe7f823be4a12dc7fc18ff4ba, + 0xf97bd808c15fcecef5eafa333438370b, + 0xdfdcaff7ed6c257079dce44b5d1ad9d1, + 0x4cc20354eac16fac6ebafb10cd388f45, + 0xd0c31e08a9ca0944d44537b854c011da, + 0x65969933912dedee841ad8a92c062c7b, + 0x9ee2e4b83c5e0156a4902309cc087a9a, + 0x11e8bfbd21b91ca1bee77a21bbc35be8, + 0x10a6c496ccd27e38f0b8649a9470389f, + 0x48effcc28eda12ce3859196ddc398c76, + 0xc44b6fe342b5502bf9b7416f1f257b2e, + ], + rho: 0xa4bb7935b0320a044f9a06e7ce23f501, + gemini_r: 0x7f80d41613ee8455f306ecb97366f6fb, + shplonk_nu: 0x9f8c2321fe0106bf29aaadc94f24dea6, + shplonk_z: 0xd704d217bac677a48ad056c8aa8f9e44, + }; + assert_eq!(transcript.eta, expected.eta); + assert_eq!(transcript.eta_two, expected.eta_two); + assert_eq!(transcript.eta_three, expected.eta_three); + assert_eq!(transcript.beta, expected.beta); + assert_eq!(transcript.gamma, expected.gamma); + assert_eq!(transcript.alphas, expected.alphas); + assert_eq!(transcript.gate_challenges, expected.gate_challenges); + assert_eq!(transcript.sum_check_u_challenges, expected.sum_check_u_challenges); + assert_eq!(transcript.rho, expected.rho); + assert_eq!(transcript.gemini_r, expected.gemini_r); + assert_eq!(transcript.shplonk_nu, expected.shplonk_nu); + assert_eq!(transcript.shplonk_z, expected.shplonk_z); + } +} + + +#[derive(Drop)] +struct Etas { + eta: u128, + eta2: u128, + eta3: u128, +} + +#[inline] +fn u64_byte_reverse(word: u64) -> u64 { + (core::integer::u128_byte_reverse(word.into()) / 0x10000000000000000).try_into().unwrap() +} + +#[inline] +fn u256_byte_reverse(word: u256) -> u256 { + u256 { + low: core::integer::u128_byte_reverse(word.high), + high: core::integer::u128_byte_reverse(word.low), + } +} + + +// Add u64 as u256 to keccak input +// Expects u64 big endian. +// #[inline] +fn append_u64_as_u256(ref arr: Array, val: u64) { + arr.append(0); + arr.append(0); + arr.append(0); + arr.append(u64_byte_reverse(val)); +} + +#[inline] +fn append_proof_point(ref arr: Array, point: G1PointProof) { + keccak::keccak_add_u256_be(ref arr, point.x0); + keccak::keccak_add_u256_be(ref arr, point.x1); + keccak::keccak_add_u256_be(ref arr, point.y0); + keccak::keccak_add_u256_be(ref arr, point.y1); +} + +// Keccak little endian output to big endian challenge. +// Converts to big endian, then takes modulo Fr. +fn ke_le_out_to_ch_be(ke_le_out: u256) -> u256 { + let ke_be: u256 = u256_byte_reverse(ke_le_out); + let ch_be: u256 = ke_be % Fr; + ch_be +} + +// Return eta and last keccak output +#[inline] +pub fn get_eta_challenges( + circuit_size: u64, + pub_inputs_size: u64, + pub_inputs_offset: u64, + pub_inputs: Span, + w1: G1PointProof, + w2: G1PointProof, + w3: G1PointProof, +) -> (Etas, u256) { + let mut k_input: Array = array![]; + append_u64_as_u256(ref k_input, circuit_size); + append_u64_as_u256(ref k_input, pub_inputs_size); + append_u64_as_u256(ref k_input, pub_inputs_offset); + for pub_i in pub_inputs { + keccak::keccak_add_u256_be(ref k_input, *pub_i); + }; + append_proof_point(ref k_input, w1); + append_proof_point(ref k_input, w2); + append_proof_point(ref k_input, w3); + + let ke_out: u256 = keccak::cairo_keccak( + ref k_input, last_input_word: 0, last_input_num_bytes: 0, + ); + let ch_be: u256 = ke_le_out_to_ch_be(ke_out); + + let mut k_input_2: Array = array![]; + keccak::keccak_add_u256_be(ref k_input_2, ch_be); + + let ke_out_2: u256 = keccak::cairo_keccak( + ref k_input_2, last_input_word: 0, last_input_num_bytes: 0, + ); + + let ch_2_be: u256 = ke_le_out_to_ch_be(ke_out_2); + + (Etas { eta: ch_be.low, eta2: ch_be.high, eta3: ch_2_be.low }, ch_2_be) +} + + +// Return beta, gamma, and last keccak output. +// Outut : +// ch_be. +// beta = ch_be.low, gamma = ch_be.high, last_keccak_output = ch_be. +#[inline] +pub fn get_beta_gamma_challenges( + prev_keccak_output: u256, + lookup_read_counts: G1PointProof, + lookup_read_tags: G1PointProof, + w4: G1PointProof, +) -> u256 { + let mut k_input: Array = array![]; + keccak::keccak_add_u256_be(ref k_input, prev_keccak_output); + append_proof_point(ref k_input, lookup_read_counts); + append_proof_point(ref k_input, lookup_read_tags); + append_proof_point(ref k_input, w4); + + let ke_out: u256 = keccak::cairo_keccak( + ref k_input, last_input_word: 0, last_input_num_bytes: 0, + ); + let ch_be: u256 = ke_le_out_to_ch_be(ke_out); + + ch_be +} + + +#[inline] +pub fn generate_alpha_challenges( + prev_keccak_output: u256, lookup_inverse: G1PointProof, z_perm: G1PointProof, +) -> (Array, u256) { // -> [u256; NUMBER_OF_ALPHAS] + let mut k_input: Array = array![]; + keccak::keccak_add_u256_be(ref k_input, prev_keccak_output); + append_proof_point(ref k_input, lookup_inverse); + append_proof_point(ref k_input, z_perm); + + let mut alpha_XY: u256 = ke_le_out_to_ch_be( + keccak::cairo_keccak(ref k_input, last_input_word: 0, last_input_num_bytes: 0), + ); + + let mut alphas: Array = array![]; + alphas.append(alpha_XY.low); + alphas.append(alpha_XY.high); + + // Asumme N_alphas > 2 and N_alphas is odd. + for _ in 1..NUMBER_OF_ALPHAS / 2 { + let mut k_input_i: Array = array![]; + keccak::keccak_add_u256_be(ref k_input_i, alpha_XY); + let _alpha_XY: u256 = ke_le_out_to_ch_be( + keccak::cairo_keccak(ref k_input_i, last_input_word: 0, last_input_num_bytes: 0), + ); + + alphas.append(_alpha_XY.low); + alphas.append(_alpha_XY.high); + + alpha_XY = _alpha_XY; + }; + + // Last alpha (odd number of alphas) + + let mut k_input_last: Array = array![]; + keccak::keccak_add_u256_be(ref k_input_last, alpha_XY); + let alpha_last: u256 = ke_le_out_to_ch_be( + keccak::cairo_keccak(ref k_input_last, last_input_word: 0, last_input_num_bytes: 0), + ); + + alphas.append(alpha_last.low); + + assert(alphas.len() == NUMBER_OF_ALPHAS, 'Wrong number of alphas'); + + (alphas, alpha_last) +} + +#[inline] +pub fn generate_gate_challenges(prev_keccak_output: u256) -> (Array, u256) { + let mut gate_challenges: Array = array![]; + + let mut gate_challenge: u256 = prev_keccak_output; + for _ in 0..CONST_PROOF_SIZE_LOG_N { + let mut k_input: Array = array![]; + keccak::keccak_add_u256_be(ref k_input, gate_challenge); + let _gate_challenge: u256 = ke_le_out_to_ch_be( + keccak::cairo_keccak(ref k_input, last_input_word: 0, last_input_num_bytes: 0), + ); + gate_challenges.append(_gate_challenge.low); + gate_challenge = _gate_challenge; + }; + + (gate_challenges, gate_challenge) +} + + +#[inline] +pub fn generate_sumcheck_u_challenges( + prev_keccak_output: u256, sumcheck_univariates: Span, +) -> (Array, u256) { + let mut sum_check_u_challenges: Array = array![]; + let mut challenge: u256 = prev_keccak_output; + for i in 0..CONST_PROOF_SIZE_LOG_N { + let mut k_input: Array = array![]; + keccak::keccak_add_u256_be(ref k_input, challenge); + + match array_slice( + sumcheck_univariates.snapshot, + i * BATCHED_RELATION_PARTIAL_LENGTH, + BATCHED_RELATION_PARTIAL_LENGTH, + ) { + Option::Some(slice) => { + let sumcheck_univariates_i = Span { snapshot: slice }; + for j in 0..BATCHED_RELATION_PARTIAL_LENGTH { + keccak::keccak_add_u256_be(ref k_input, *sumcheck_univariates_i.at(j)); + }; + }, + Option::None => { + for _ in 0..BATCHED_RELATION_PARTIAL_LENGTH { + k_input.append(0); + k_input.append(0); + k_input.append(0); + k_input.append(0); + }; + }, + }; + challenge = + ke_le_out_to_ch_be( + keccak::cairo_keccak(ref k_input, last_input_word: 0, last_input_num_bytes: 0), + ); + sum_check_u_challenges.append(challenge.low); + }; + + (sum_check_u_challenges, challenge) +} + + +#[inline] +pub fn generate_rho_challenge(prev_keccak_output: u256, sumcheck_evaluations: Span) -> u256 { + let mut k_input: Array = array![]; + keccak::keccak_add_u256_be(ref k_input, prev_keccak_output); + for i in 0..NUMBER_OF_ENTITIES { + keccak::keccak_add_u256_be(ref k_input, *sumcheck_evaluations.at(i)); + }; + + ke_le_out_to_ch_be( + keccak::cairo_keccak(ref k_input, last_input_word: 0, last_input_num_bytes: 0), + ) +} + +#[inline] +pub fn generate_gemini_r_challenge( + prev_keccak_output: u256, gemini_fold_comms: Span, +) -> u256 { + let mut k_input: Array = array![]; + keccak::keccak_add_u256_be(ref k_input, prev_keccak_output); + // Log_n - 1 points + for pt in gemini_fold_comms { + append_proof_point(ref k_input, (*pt).into()); + }; + for _ in 0..(CONST_PROOF_SIZE_LOG_N - gemini_fold_comms.len() - 1) { + // Constant Gen Point (1, 2) converted into G1PointProof and correctly reversed for keccak. + k_input.append(0); + k_input.append(0); + k_input.append(0); + k_input.append(72057594037927936); + + k_input.append(0); + k_input.append(0); + k_input.append(0); + k_input.append(0); + + k_input.append(0); + k_input.append(0); + k_input.append(0); + k_input.append(144115188075855872); + + k_input.append(0); + k_input.append(0); + k_input.append(0); + k_input.append(0); + }; + ke_le_out_to_ch_be( + keccak::cairo_keccak(ref k_input, last_input_word: 0, last_input_num_bytes: 0), + ) +} + +#[inline] +pub fn generate_shplonk_nu_challenge( + prev_keccak_output: u256, gemini_a_evaluations: Span, +) -> u256 { + let mut k_input: Array = array![]; + keccak::keccak_add_u256_be(ref k_input, prev_keccak_output); + for eval in gemini_a_evaluations { + keccak::keccak_add_u256_be(ref k_input, *eval); + }; + let implied_log_n = gemini_a_evaluations.len(); + for _ in 0..(CONST_PROOF_SIZE_LOG_N - implied_log_n) { + k_input.append(0); + k_input.append(0); + k_input.append(0); + k_input.append(0); + }; + + ke_le_out_to_ch_be( + keccak::cairo_keccak(ref k_input, last_input_word: 0, last_input_num_bytes: 0), + ) +} + +#[inline] +pub fn generate_shplonk_z_challenge(prev_keccak_output: u256, shplonk_q: G1PointProof) -> u256 { + // # Shplonk Z : + // hasher.update(c7) + // x0, x1, y0, y1 = g1_to_g1_proof_point(proof.shplonk_q) + // hasher.update(int.to_bytes(x0, 32, "big")) + // hasher.update(int.to_bytes(x1, 32, "big")) + // hasher.update(int.to_bytes(y0, 32, "big")) + // hasher.update(int.to_bytes(y1, 32, "big")) + + // c8 = hasher.digest_reset() + // shplonk_z, _ = split_challenge(c8) + + let mut k_input: Array = array![]; + keccak::keccak_add_u256_be(ref k_input, prev_keccak_output); + append_proof_point(ref k_input, shplonk_q); + + ke_le_out_to_ch_be( + keccak::cairo_keccak(ref k_input, last_input_word: 0, last_input_num_bytes: 0), + ) +} + diff --git a/src/src/utils/risc0.cairo b/src/src/utils/risc0.cairo index edcdff90..41d9ba58 100644 --- a/src/src/utils/risc0.cairo +++ b/src/src/utils/risc0.cairo @@ -1,19 +1,16 @@ use core::sha256::{compute_sha256_u32_array, compute_sha256_byte_array}; use garaga::utils::usize_assert_eq; +use core::integer; // sha256(b"risc0.ReceiptClaim") = // 0xcb1fefcd1f2d9a64975cbbbf6e161e2914434b0cbb9960b84df5d717e86b48af -const TAG_DIGEST: [ - u32 - ; 8] = [ +const TAG_DIGEST: [u32; 8] = [ 0xcb1fefcd, 0x1f2d9a64, 0x975cbbbf, 0x6e161e29, 0x14434b0c, 0xbb9960b8, 0x4df5d717, 0xe86b48af, ]; // 0xA3ACC27117418996340B84E5A90F3EF4C49D22C79E44AAD822EC9C313E1EB8E2 // https://github.com/risc0/risc0-ethereum/blob/34d2fee4ca6b5fb354a8a1a00c43f8945097bfe5/contracts/src/IRiscZeroVerifier.sol#L60 -const SYSTEM_STATE_ZERO_DIGEST: [ - u32 - ; 8] = [ +const SYSTEM_STATE_ZERO_DIGEST: [u32; 8] = [ 0xa3acc271, 0x17418996, 0x340b84e5, 0xa90f3ef4, 0xc49d22c7, 0x9e44aad8, 0x22ec9c31, 0x3e1eb8e2, ]; @@ -21,9 +18,7 @@ const INPUT_ZERO: [u32; 8] = [0, 0, 0, 0, 0, 0, 0, 0]; // sha256(b"risc0.Output") = // 0x77eafeb366a78b47747de0d7bb176284085ff5564887009a5be63da32d3559d4 -const RISC0_OUTPUT_TAG: [ - u32 - ; 8] = [ +const RISC0_OUTPUT_TAG: [u32; 8] = [ 0x77eafeb3, 0x66a78b47, 0x747de0d7, 0xbb176284, 0x85ff556, 0x4887009a, 0x5be63da3, 0x2d3559d4, ]; @@ -84,7 +79,7 @@ pub fn compute_receipt_claim(image_id: Span, journal_digest: Span) -> // Append 4 << 8 = 1024 to the end of the array (2 bytes) let res_u32 = compute_sha256_u32_array( - input: array, last_input_word: 1024, last_input_num_bytes: 2 + input: array, last_input_word: 1024, last_input_num_bytes: 2, ) .span(); @@ -99,7 +94,7 @@ pub fn compute_receipt_claim(image_id: Span, journal_digest: Span) -> + (*res_u32[0]).into() * 0x1000000000000000000000000; return uint256_byte_reverse( - u256 { low: res_low.try_into().unwrap(), high: res_high.try_into().unwrap() } + u256 { low: res_low.try_into().unwrap(), high: res_high.try_into().unwrap() }, ); } @@ -131,56 +126,34 @@ mod risc0_utils_tests { #[test] fn test_receipt_claim() { let image_id: [u32; 8] = [ - 3491501487, - 2808651867, - 557489759, - 3452720932, - 2727640576, - 160202435, - 1288430228, - 1807482899 + 3491501487, 2808651867, 557489759, 3452720932, 2727640576, 160202435, 1288430228, + 1807482899, ]; let journal_digest: [u32; 8] = [ - 998783442, - 2641348904, - 1804572153, - 3329687312, - 3249394632, - 3219372246, - 356247808, - 552440254 + 998783442, 2641348904, 1804572153, 3329687312, 3249394632, 3219372246, 356247808, + 552440254, ]; let receipt_claim = compute_receipt_claim(image_id.span(), journal_digest.span()); assert_eq!( receipt_claim, - uint256_byte_reverse(0xe58e40abecebcfa4af85692fca5ed77d4ccb4b3f640f5e684e4faf3a36b0c4e0) + uint256_byte_reverse( + 0xe58e40abecebcfa4af85692fca5ed77d4ccb4b3f640f5e684e4faf3a36b0c4e0, + ), ); } #[test] fn test_output_digest() { let journal_digest: [u32; 8] = [ - 998783442, - 2641348904, - 1804572153, - 3329687312, - 3249394632, - 3219372246, - 356247808, - 552440254 + 998783442, 2641348904, 1804572153, 3329687312, 3249394632, 3219372246, 356247808, + 552440254, ]; let out = output_digest(journal_digest.span()); assert_eq!( out, [ - 0x6293f84a, - 0xf9e28fcc, - 0x43eb4d3d, - 0xf962d8d8, - 0x1364db76, - 0x22a407a1, - 0xab5be010, - 0x1a1f0a26 - ] + 0x6293f84a, 0xf9e28fcc, 0x43eb4d3d, 0xf962d8d8, 0x1364db76, 0x22a407a1, 0xab5be010, + 0x1a1f0a26, + ], ); } } diff --git a/tests/contracts_e2e/e2e_test.py b/tests/contracts_e2e/e2e_test.py index 467e3bf8..b2d0c012 100644 --- a/tests/contracts_e2e/e2e_test.py +++ b/tests/contracts_e2e/e2e_test.py @@ -21,6 +21,11 @@ from garaga.starknet.groth16_contract_generator.parsing_utils import ( find_item_from_key_patterns, ) +from garaga.starknet.honk_contract_generator.calldata import ( + HonkProof, + HonkVk, + get_ultra_keccak_honk_calldata_from_vk_and_proof, +) from garaga.starknet.tests_and_calldata_generators.drand_calldata import ( drand_round_to_calldata, ) @@ -30,6 +35,7 @@ GROTH16_EXAMPLES_PATH = Path( "hydra/garaga/starknet/groth16_contract_generator/examples" ) +NOIR_EXAMPLES_PATH = Path("hydra/garaga/starknet/honk_contract_generator/examples") ALL_GROTH16_CONTRACTS = [ @@ -129,7 +135,7 @@ async def test_groth16_contracts(account_devnet: BaseAccount, contract_info: dic print(f"Deployed contract: {contract.functions}") function_call: ContractFunction = find_item_from_key_patterns( - contract.functions, ["verify_groth16"] + contract.functions, ["verify"] ) prepare_invoke = PreparedFunctionInvokeV3( @@ -151,6 +157,9 @@ async def test_groth16_contracts(account_devnet: BaseAccount, contract_info: dic print(f"Invoke result : {invoke_result.status}") + receipt = await account.client.get_transaction_receipt(invoke_result.hash) + print(receipt.execution_resources) + @pytest.mark.asyncio @pytest.mark.parametrize( @@ -203,7 +212,7 @@ async def test_drand_contract(account_devnet: BaseAccount, contract_info: dict): print(f"Deployed contract: {contract.functions}") function_call: ContractFunction = find_item_from_key_patterns( - contract.functions, ["verify_round_and_get_randomness"] + contract.functions, ["verify"] ) for drand_round in range(1, 5): @@ -221,3 +230,89 @@ async def test_drand_contract(account_devnet: BaseAccount, contract_info: dict): invoke_result: InvokeResult = await prepare_invoke.invoke(auto_estimate=True) await invoke_result.wait_for_acceptance() + + +HONK_CONTRACTS = [ + { + "contract_project": SmartContractProject( + smart_contract_folder=CONTRACTS_PATH / "noir_ultra_keccak_honk_example", + ), + "vk_path": NOIR_EXAMPLES_PATH / "vk_ultra_keccak.bin", + "proof_path": NOIR_EXAMPLES_PATH / "proof_ultra_keccak.bin", + }, +] + + +@pytest.mark.asyncio +@pytest.mark.parametrize("contract_info", HONK_CONTRACTS) +async def test_honk_contracts(account_devnet: BaseAccount, contract_info: dict): + account = account_devnet + contract_project: SmartContractProject = contract_info["contract_project"] + vk_path: Path = contract_info["vk_path"] + proof_path: Path = contract_info["proof_path"] + + vk = HonkVk.from_bytes(open(vk_path, "rb").read()) + proof = HonkProof.from_bytes(open(proof_path, "rb").read()) + + print(f"ACCOUNT {hex(account.address)}, NONCE {await account.get_nonce()}") + + # # Declare the ECIP contract + # ecip_class_hash, _ = await ECIP_CONTRACT.declare_class_hash(account) + + # Declare the honk contract + honk_class_hash, honk_abi = await contract_project.declare_class_hash(account) + + print(f"Declared contract class hash: {hex(honk_class_hash)}") + + # Deploy the honk contract + precomputed_address = compute_address( + class_hash=honk_class_hash, + constructor_calldata=[], + salt=pedersen_hash(to_int(account.address), 1), + deployer_address=DEPLOYER_ADDRESS, + ) + + try_contract = await get_contract_if_exists(account, precomputed_address) + if try_contract is None: + deploy_result = await Contract.deploy_contract_v1( + account=account, + class_hash=honk_class_hash, + abi=honk_abi, + deployer_address=DEPLOYER_ADDRESS, + auto_estimate=True, + salt=1, + cairo_version=1, + ) + await deploy_result.wait_for_acceptance() + + contract = deploy_result.deployed_contract + else: + print(f"Contract already deployed at {hex(precomputed_address)}") + contract = try_contract + + print(f"Deployed contract address: {hex(contract.address)}") + print(f"Deployed contract: {contract.functions}") + + function_call: ContractFunction = find_item_from_key_patterns( + contract.functions, ["verify"] + ) + + prepare_invoke = PreparedFunctionInvokeV3( + to_addr=function_call.contract_data.address, + calldata=get_ultra_keccak_honk_calldata_from_vk_and_proof(vk=vk, proof=proof), + selector=function_call.get_selector(function_call.name), + l1_resource_bounds=None, + _contract_data=function_call.contract_data, + _client=function_call.client, + _account=function_call.account, + _payload_transformer=function_call._payload_transformer, + ) + + invoke_result: InvokeResult = await prepare_invoke.invoke(auto_estimate=True) + + await invoke_result.wait_for_acceptance() + + print(f"Invoke result : {invoke_result.status}") + + receipt = await account.client.get_transaction_receipt(invoke_result.hash) + print(receipt.execution_resources) diff --git a/tests/contracts_e2e/fixtures/devnet.py b/tests/contracts_e2e/fixtures/devnet.py index 7d414b2b..ac47e6cc 100644 --- a/tests/contracts_e2e/fixtures/devnet.py +++ b/tests/contracts_e2e/fixtures/devnet.py @@ -42,6 +42,8 @@ def get_start_devnet_command(devnet_port: int, fork_mode: bool = False) -> List[ "full", "--block-generation-on", "transaction", + "--request-body-size-limit", + "4089446", ] if fork_mode: diff --git a/tests/contracts_e2e/install_devnet.sh b/tests/contracts_e2e/install_devnet.sh index 91b5c58e..a00b5476 100755 --- a/tests/contracts_e2e/install_devnet.sh +++ b/tests/contracts_e2e/install_devnet.sh @@ -3,7 +3,7 @@ set -e DEVNET_INSTALL_DIR="$(git rev-parse --show-toplevel)/tests/contracts_e2e/devnet/bin" DEVNET_REPO="https://github.com/0xSpaceShard/starknet-devnet-rs" -DEVNET_VERSION="v0.2.0-rc.3" +DEVNET_VERSION="v0.2.3" require_cmd() { if ! command -v "$1" >/dev/null 2>&1; then diff --git a/tests/hydra/circuits/test_ec.py b/tests/hydra/circuits/test_ec.py new file mode 100644 index 00000000..fb29b26a --- /dev/null +++ b/tests/hydra/circuits/test_ec.py @@ -0,0 +1,89 @@ +import pytest + +from garaga.definitions import CURVES, CurveID, G1Point, G2Point, get_base_field +from garaga.modulo_circuit import WriteOps +from hydra.garaga.precompiled_circuits.ec import BasicEC, BasicECG2 + + +@pytest.mark.parametrize("curve_id", [CurveID.BLS12_381]) +def test_double_point_g1(curve_id: CurveID): + g = G1Point.get_nG(curve_id, 1) + circuit = BasicEC("test", 1) + gxys = circuit.write_elements(g.to_pyfelt_list(), WriteOps.INPUT) + field = get_base_field(CurveID.BLS12_381) + A = CURVES[CurveID.BLS12_381.value].a + a = circuit.write_element(field(A)) + + resx, resy = circuit.double_point(gxys, a) + + got = G1Point( + resx.value, + resy.value, + curve_id, + ) + + expected = G1Point.get_nG(CurveID.BLS12_381, 2) + assert got == expected, f"{got} != {expected}" + + +@pytest.mark.parametrize("curve_id", [CurveID.BLS12_381]) +def test_add_point_g1(curve_id: CurveID): + g = G1Point.get_nG(curve_id, 1) + h = G1Point.get_nG(curve_id, 2) + circuit = BasicEC("test", 1) + gxys = circuit.write_elements(g.to_pyfelt_list(), WriteOps.INPUT) + hxys = circuit.write_elements(h.to_pyfelt_list(), WriteOps.INPUT) + + resx, resy = circuit.add_points(gxys, hxys) + + got = G1Point( + resx.value, + resy.value, + curve_id, + ) + + expected = G1Point.get_nG(curve_id, 3) + assert got == expected, f"{got} != {expected}" + + +@pytest.mark.parametrize("curve_id", [CurveID.BLS12_381]) +def test_double_point_g2(curve_id: CurveID): + # Arrange + g = G2Point.get_nG(CurveID.BLS12_381, 1) + circuit = BasicECG2("test", 1) + gxys = circuit.write_elements(g.to_pyfelt_list(), WriteOps.INPUT) + + # Act + resx, resy = circuit.double_point_a_eq_0((gxys[0:2], gxys[2:4])) + + # Assert + got = G2Point( + (resx[0].value, resx[1].value), + (resy[0].value, resy[1].value), + CurveID.BLS12_381, + ) + expected = G2Point.get_nG(CurveID.BLS12_381, 2) + assert got == expected, f"{got} != {expected}" + + +@pytest.mark.parametrize("curve_id", [CurveID.BLS12_381]) +def test_add_point_g2(curve_id: CurveID): + # Arrange + g = G2Point.get_nG(curve_id, 1) + h = G2Point.get_nG(curve_id, 2) + circuit = BasicECG2("test", 1) + gxys = circuit.write_elements(g.to_pyfelt_list(), WriteOps.INPUT) + hxys = circuit.write_elements(h.to_pyfelt_list(), WriteOps.INPUT) + + # Act + resx, resy = circuit.add_points((gxys[0:2], gxys[2:4]), (hxys[0:2], hxys[2:4])) + + # Assert + got = G2Point( + (resx[0].value, resx[1].value), + (resy[0].value, resy[1].value), + CurveID.BLS12_381, + ) + + expected = G2Point.get_nG(curve_id, 3) + assert got == expected, f"{got} != {expected}" diff --git a/tests/hydra/circuits/test_honk.py b/tests/hydra/circuits/test_honk.py new file mode 100644 index 00000000..c87dd32d --- /dev/null +++ b/tests/hydra/circuits/test_honk.py @@ -0,0 +1,148 @@ +import garaga.hints.io as io +from garaga.definitions import G1G2Pair +from garaga.precompiled_circuits.honk import ( + CONST_PROOF_SIZE_LOG_N, + G2_POINT_KZG_1, + G2_POINT_KZG_2, + NUMBER_OF_ENTITIES, + CurveID, + G1Point, + HonkProof, + HonkTranscript, + HonkVerifierCircuits, + HonkVk, +) + +PATH = "hydra/garaga/starknet/honk_contract_generator/examples" + + +def test_sumcheck_circuit(): + vk = HonkVk.from_bytes(open(f"{PATH}/vk_ultra_keccak.bin", "rb").read()) + proof = HonkProof.from_bytes(open(f"{PATH}/proof_ultra_keccak.bin", "rb").read()) + tp = HonkTranscript.from_proof(proof) + + circuit = HonkVerifierCircuits(name="test", log_n=vk.log_circuit_size) + + vk_circuit = vk.to_circuit_elements(circuit) + proof_circuit = proof.to_circuit_elements(circuit) + tp = tp.to_circuit_elements(circuit) + + public_input_delta = circuit.compute_public_input_delta( + public_inputs=proof_circuit.public_inputs, + beta=tp.beta, + gamma=tp.gamma, + domain_size=vk.circuit_size, + offset=vk_circuit.public_inputs_offset, + ) + + rlc_check, check = circuit.verify_sum_check( + sumcheck_univariates=proof_circuit.sumcheck_univariates, + sumcheck_evaluations=(proof_circuit.sumcheck_evaluations), + beta=tp.beta, + gamma=tp.gamma, + public_inputs_delta=public_input_delta, + eta=tp.eta, + eta_two=tp.etaTwo, + eta_three=tp.etaThree, + sum_check_u_challenges=tp.sum_check_u_challenges, + gate_challenges=tp.gate_challenges, + alphas=tp.alphas, + log_n=vk.log_circuit_size, + base_rlc=circuit.write_element(1234), + ) + + assert rlc_check.value == 0 + assert check.value == 0 + + print(f"Pub input delta: {io.int_to_u384(public_input_delta, as_hex=False)}") + + scalars = circuit.compute_shplemini_msm_scalars( + proof_circuit.sumcheck_evaluations, + proof_circuit.gemini_a_evaluations, + tp.gemini_r, + tp.rho, + tp.shplonk_z, + tp.shplonk_nu, + tp.sum_check_u_challenges, + ) + + print([scalar.value if scalar else scalar for scalar in scalars]) + print(len(scalars)) + + points = [ + proof.shplonk_q, # 0 + vk.qm, # 1 + vk.qc, # 2 + vk.ql, # 3 + vk.qr, # 4 + vk.qo, # 5 + vk.q4, # 6 + vk.qArith, # 7 + vk.qDeltaRange, # 8 + vk.qElliptic, # 9 + vk.qAux, # 10 + vk.qLookup, # 11 + vk.qPoseidon2External, # 12 + vk.qPoseidon2Internal, # 13 + vk.s1, # 14 + vk.s2, # 15 + vk.s3, # 16 + vk.s4, # 17 + vk.id1, # 18 + vk.id2, # 19 + vk.id3, # 20 + vk.id4, # 21 + vk.t1, # 22 + vk.t2, # 23 + vk.t3, # 24 + vk.t4, # 25 + vk.lagrange_first, # 26 + vk.lagrange_last, # 27 + proof.w1, # 28 + proof.w2, # 29 + proof.w3, # 30 + proof.w4, # 31 + proof.z_perm, # 32 + proof.lookup_inverses, # 33 + proof.lookup_read_counts, # 34 + proof.lookup_read_tags, # 35 + vk.t1, # 36 + vk.t2, # 37 + vk.t3, # 38 + vk.t4, # 39 + proof.w1, # 40 + proof.w2, # 41 + proof.w3, # 42 + proof.w4, # 43 + proof.z_perm, # 44 + ] + + # t1 : 22 + 36 + # t2 : 23 + 37 + # t3 : 24 + 38 + # t4 : 25 + 39 + + # w1 : 28 + 40 + # w2 : 29 + 41 + # w3 : 30 + 42 + # w4 : 31 + 43 + + points.extend(proof.gemini_fold_comms) + points.append(G1Point.get_nG(CurveID.BN254, 1)) + points.append(proof.kzg_quotient) + + assert len(points) == NUMBER_OF_ENTITIES + CONST_PROOF_SIZE_LOG_N + 2 + + for i, (p, s) in enumerate(zip(points, scalars)): + if s: + print(i, hex(s.value)) + + P_0 = G1Point.msm( + points=points, scalars=[scalar.value if scalar else 0 for scalar in scalars] + ) + + P_1 = -proof.kzg_quotient + + pairs = [G1G2Pair(P_0, G2_POINT_KZG_1), G1G2Pair(P_1, G2_POINT_KZG_2)] + + assert G1G2Pair.pair(pairs).value_coeffs == [1] + [0] * 11 diff --git a/tests/hydra/starknet/test_calldata.py b/tests/hydra/starknet/test_calldata.py index 443292f2..918ad940 100644 --- a/tests/hydra/starknet/test_calldata.py +++ b/tests/hydra/starknet/test_calldata.py @@ -68,13 +68,13 @@ def test_msm_calldata_builder( points=points, scalars=scalars, curve_id=curve_id, + risc0_mode=risc0_mode, ) calldata1 = msm.serialize_to_calldata( include_digits_decomposition=include_digits_decomposition, include_points_and_scalars=include_points_and_scalars, serialize_as_pure_felt252_array=serialize_as_pure_felt252_array, - risc0_mode=risc0_mode, use_rust=False, ) @@ -82,7 +82,6 @@ def test_msm_calldata_builder( include_digits_decomposition=include_digits_decomposition, include_points_and_scalars=include_points_and_scalars, serialize_as_pure_felt252_array=serialize_as_pure_felt252_array, - risc0_mode=risc0_mode, use_rust=True, ) diff --git a/tests/hydra/test_drand.py b/tests/hydra/test_drand.py index 30207213..47320274 100644 --- a/tests/hydra/test_drand.py +++ b/tests/hydra/test_drand.py @@ -1,14 +1,16 @@ import hashlib +import random import pytest -from garaga.definitions import CurveID, G2Point +from garaga.definitions import CurveID, G1G2Pair, G2Point from garaga.drand.client import ( DrandNetwork, digest_func, get_randomness, print_all_chain_info, ) +from garaga.drand.tlock import decrypt_at_round, encrypt_for_round from garaga.signature import hash_to_curve @@ -31,10 +33,7 @@ def test_drand_sig_verification(round_number: int): ) print("message", msg_point) - from garaga.definitions import G1G2Pair - - # Temp fix before we figure out correct deserialization of message point. - if ( + assert ( G1G2Pair.pair( [ G1G2Pair( @@ -45,20 +44,54 @@ def test_drand_sig_verification(round_number: int): curve_id=CurveID.BLS12_381, ).value_coeffs == [1] + [0] * 11 - ): - print("Signature verification passed") - elif ( - G1G2Pair.pair( - [ - G1G2Pair( - p=round.signature_point, q=G2Point.get_nG(CurveID.BLS12_381, 1) - ), - G1G2Pair(p=msg_point, q=chain.public_key), - ], - curve_id=CurveID.BLS12_381, - ).value_coeffs - == [1] + [0] * 11 - ): - print("Signature verification passed") - else: - print("Signature verification failed") + ), "Signature verification failed" + + +@pytest.mark.parametrize("round", list(range(1, 5)) + list(range(1000, 1005))) +def test_tlock_encrypt_decrypt(round: int): + random.seed(42) + chain_infos = print_all_chain_info() + network = DrandNetwork.quicknet + chain = chain_infos[network] + + master = chain.public_key + + msg = random.randbytes(16) + + ciph = encrypt_for_round(master, round, msg) + + chain = chain_infos[network] + beacon = get_randomness(chain.hash, round) + signature_at_round = beacon.signature_point + + msg_decrypted = decrypt_at_round(signature_at_round, ciph) + assert msg_decrypted == msg + + +@pytest.mark.parametrize("round", list(range(1, 5))) +def test_tlock_encrypt_same_message_gives_different_ciphertexts(round: int): + random.seed(42) + chain_infos = print_all_chain_info() + network = DrandNetwork.quicknet + chain = chain_infos[network] + + master = chain.public_key + + msg = b"0123456789abcdef" + + ciph1 = encrypt_for_round(master, round, msg) + ciph2 = encrypt_for_round(master, round, msg) + + assert ciph1.U != ciph2.U + assert ciph1.V != ciph2.V + assert ciph1.W != ciph2.W + + chain = chain_infos[network] + beacon = get_randomness(chain.hash, round) + signature_at_round = beacon.signature_point + + msg_decrypted1 = decrypt_at_round(signature_at_round, ciph1) + msg_decrypted2 = decrypt_at_round(signature_at_round, ciph2) + + assert msg_decrypted1 == msg + assert msg_decrypted2 == msg diff --git a/tools/garaga_rs/Cargo.lock b/tools/garaga_rs/Cargo.lock index 732b9de7..5f2eeaea 100644 --- a/tools/garaga_rs/Cargo.lock +++ b/tools/garaga_rs/Cargo.lock @@ -145,9 +145,9 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "block-buffer" @@ -172,9 +172,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "cc" -version = "1.1.18" +version = "1.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b62ac837cdb5cb22e10a256099b4fc502b1dfe560cb282963a974d7abd80e476" +checksum = "c2e7962b54006dcfcc61cb72735f4d89bb97061dd6a7ed882ec6b8ee53714c6f" dependencies = [ "shlex", ] @@ -268,17 +268,21 @@ checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" [[package]] name = "garaga_rs" -version = "0.1.0" +version = "0.15.3" dependencies = [ "ark-bls12-381", "ark-bn254", "ark-ec", "ark-ff", + "hex", + "js-sys", "lambdaworks-crypto", - "lambdaworks-math", + "lambdaworks-math 0.11.0", "num-bigint", "num-traits", "pyo3", + "sha2", + "starknet-types-core", "wasm-bindgen", "wasm-bindgen-test", ] @@ -308,6 +312,12 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + [[package]] name = "indoc" version = "2.0.5" @@ -331,9 +341,9 @@ checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" [[package]] name = "js-sys" -version = "0.3.70" +version = "0.3.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a" +checksum = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9" dependencies = [ "wasm-bindgen", ] @@ -352,12 +362,18 @@ name = "lambdaworks-crypto" version = "0.11.0" source = "git+https://github.com/lambdaclass/lambdaworks.git#3bb1fa1fde12e166952c53590b8ed82ef5c66fe2" dependencies = [ - "lambdaworks-math", + "lambdaworks-math 0.11.0", "serde", "sha2", "sha3", ] +[[package]] +name = "lambdaworks-math" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1bd2632acbd9957afc5aeec07ad39f078ae38656654043bf16e046fa2730e23" + [[package]] name = "lambdaworks-math" version = "0.11.0" @@ -370,9 +386,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.158" +version = "0.2.161" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439" +checksum = "8e9489c2807c139ffd9c1794f4af0ebe86a828db53ecdc7fea2111d0fed085d1" [[package]] name = "log" @@ -397,9 +413,9 @@ dependencies = [ [[package]] name = "minicov" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c71e683cd655513b99affab7d317deb690528255a0d5f717f1024093c12b169" +checksum = "def6d99771d7c499c26ad4d40eb6645eafd3a1553b35fc26ea5a489a45e82d9a" dependencies = [ "cc", "walkdir", @@ -435,9 +451,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.19.0" +version = "1.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" [[package]] name = "paste" @@ -447,9 +463,9 @@ checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "portable-atomic" -version = "1.7.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da544ee218f0d287a911e9c99a39a8c9bc8fcad3cb8db5959940044ecfc67265" +checksum = "cc9c68a3f6da06753e9335d63e27f6b9754dd1920d941135b7ea8224f141adb2" [[package]] name = "ppv-lite86" @@ -462,18 +478,18 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.86" +version = "1.0.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" +checksum = "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e" dependencies = [ "unicode-ident", ] [[package]] name = "pyo3" -version = "0.22.4" +version = "0.23.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00e89ce2565d6044ca31a3eb79a334c3a79a841120a98f64eea9f579564cb691" +checksum = "e484fd2c8b4cb67ab05a318f1fd6fa8f199fcc30819f08f07d200809dba26c15" dependencies = [ "cfg-if", "indoc", @@ -490,9 +506,9 @@ dependencies = [ [[package]] name = "pyo3-build-config" -version = "0.22.4" +version = "0.23.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8afbaf3abd7325e08f35ffb8deb5892046fcb2608b703db6a583a5ba4cea01e" +checksum = "dc0e0469a84f208e20044b98965e1561028180219e35352a2afaf2b942beff3b" dependencies = [ "once_cell", "target-lexicon", @@ -500,9 +516,9 @@ dependencies = [ [[package]] name = "pyo3-ffi" -version = "0.22.4" +version = "0.23.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec15a5ba277339d04763f4c23d85987a5b08cbb494860be141e6a10a8eb88022" +checksum = "eb1547a7f9966f6f1a0f0227564a9945fe36b90da5a93b3933fc3dc03fae372d" dependencies = [ "libc", "pyo3-build-config", @@ -510,27 +526,27 @@ dependencies = [ [[package]] name = "pyo3-macros" -version = "0.22.4" +version = "0.23.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15e0f01b5364bcfbb686a52fc4181d412b708a68ed20c330db9fc8d2c2bf5a43" +checksum = "fdb6da8ec6fa5cedd1626c886fc8749bdcbb09424a86461eb8cdf096b7c33257" dependencies = [ "proc-macro2", "pyo3-macros-backend", "quote", - "syn 2.0.77", + "syn 2.0.85", ] [[package]] name = "pyo3-macros-backend" -version = "0.22.4" +version = "0.23.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a09b550200e1e5ed9176976d0060cbc2ea82dc8515da07885e7b8153a85caacb" +checksum = "38a385202ff5a92791168b1136afae5059d3ac118457bb7bc304c197c2d33e7d" dependencies = [ "heck", "proc-macro2", "pyo3-build-config", "quote", - "syn 2.0.77", + "syn 2.0.85", ] [[package]] @@ -626,29 +642,29 @@ checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" [[package]] name = "serde" -version = "1.0.210" +version = "1.0.214" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a" +checksum = "f55c3193aca71c12ad7890f1785d2b73e1b9f63a0bbc353c08ef26fe03fc56b5" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.210" +version = "1.0.214" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" +checksum = "de523f781f095e28fa605cdce0f8307e451cc0fd14e2eb4cd2e98a355b147766" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.85", ] [[package]] name = "serde_json" -version = "1.0.128" +version = "1.0.132" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8" +checksum = "d726bfaff4b320266d395898905d0eba0345aae23b54aee3a737e260fd46db03" dependencies = [ "itoa", "memchr", @@ -683,6 +699,18 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" +[[package]] +name = "starknet-types-core" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa1b9e01ccb217ab6d475c5cda05dbb22c30029f7bb52b192a010a00d77a3d74" +dependencies = [ + "lambdaworks-math 0.10.0", + "num-bigint", + "num-integer", + "num-traits", +] + [[package]] name = "syn" version = "1.0.109" @@ -696,9 +724,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.77" +version = "2.0.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed" +checksum = "5023162dfcd14ef8f32034d8bcd4cc5ddc61ef7a247c024a33e24e1f24d21b56" dependencies = [ "proc-macro2", "quote", @@ -719,9 +747,9 @@ checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "unicode-ident" -version = "1.0.12" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" [[package]] name = "unindent" @@ -747,9 +775,9 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.93" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5" +checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e" dependencies = [ "cfg-if", "once_cell", @@ -758,24 +786,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.93" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b" +checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.85", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.43" +version = "0.4.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61e9300f63a621e96ed275155c108eb6f843b6a26d053f122ab69724559dc8ed" +checksum = "cc7ec4f8827a71586374db3e87abdb5a2bb3a15afed140221307c3ec06b1f63b" dependencies = [ "cfg-if", "js-sys", @@ -785,9 +813,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.93" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf" +checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -795,28 +823,28 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.93" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" +checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.85", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.93" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" +checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d" [[package]] name = "wasm-bindgen-test" -version = "0.3.43" +version = "0.3.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68497a05fb21143a08a7d24fc81763384a3072ee43c44e86aad1744d6adef9d9" +checksum = "d381749acb0943d357dcbd8f0b100640679883fcdeeef04def49daf8d33a5426" dependencies = [ "console_error_panic_hook", "js-sys", @@ -829,20 +857,20 @@ dependencies = [ [[package]] name = "wasm-bindgen-test-macro" -version = "0.3.43" +version = "0.3.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b8220be1fa9e4c889b30fd207d4906657e7e90b12e0e6b0c8b8d8709f5de021" +checksum = "c97b2ef2c8d627381e51c071c2ab328eac606d3f69dd82bcbca20a9e389d95f0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.85", ] [[package]] name = "web-sys" -version = "0.3.70" +version = "0.3.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26fdeaafd9bd129f65e7c031593c24d62186301e0c72c8978fa1678be7d532c0" +checksum = "f6488b90108c040df0fe62fa815cbdee25124641df01814dd7282749234c6112" dependencies = [ "js-sys", "wasm-bindgen", @@ -948,7 +976,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.85", ] [[package]] @@ -968,5 +996,5 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.85", ] diff --git a/tools/garaga_rs/Cargo.toml b/tools/garaga_rs/Cargo.toml index d58aba55..48a60416 100644 --- a/tools/garaga_rs/Cargo.toml +++ b/tools/garaga_rs/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "garaga_rs" -version = "0.1.0" +version = "0.15.3" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html @@ -26,14 +26,14 @@ wasm-bindgen-test = "0.3" # assumes python dependencies when not on wasm32-unknown-unknown [target.'cfg(not(target_arch = "wasm32"))'.dependencies] -pyo3 = { version = "0.22", features = ["extension-module", "num-bigint"] } +pyo3 = { version = "0.23", features = ["extension-module", "num-bigint"] } # assumes wasm dependencies when on wasm32-unknown-unknown [target.'cfg(target_arch = "wasm32")'.dependencies] wasm-bindgen = "0.2" [dependencies] -pyo3 = { version = "0.22", features = ["extension-module", "num-bigint"], optional = true } +pyo3 = { version = "0.23", features = ["extension-module", "num-bigint"], optional = true } wasm-bindgen = { version = "0.2", optional = true } num-bigint = "0.4" num-traits = "0.2" @@ -41,6 +41,9 @@ ark-bn254 = "0.4" ark-bls12-381 = "0.4" ark-ec = "0.4" ark-ff = "0.4" - +hex = "0.4" +sha2 = "0.10" +js-sys = "0.3" +starknet-types-core = { version = "0.1.7", default-features = false, features = ["curve"] } lambdaworks-crypto = { git = "https://github.com/lambdaclass/lambdaworks.git" } lambdaworks-math = { git = "https://github.com/lambdaclass/lambdaworks.git" } diff --git a/tools/garaga_rs/src/algebra/polynomial.rs b/tools/garaga_rs/src/algebra/polynomial.rs index 828e1c29..864b891b 100644 --- a/tools/garaga_rs/src/algebra/polynomial.rs +++ b/tools/garaga_rs/src/algebra/polynomial.rs @@ -107,7 +107,6 @@ impl Polynomial { Polynomial::new(result_coeffs) } - pub fn divmod(self, denominator: &Self) -> (Self, Self) { let den_deg = denominator.degree(); if den_deg == -1 { @@ -127,10 +126,9 @@ impl Polynomial { let shift = rem_deg - den_deg; let coefficient = &remainder.coefficients[rem_deg as usize] * &denom_lead_inv; quotient_coeffs[shift as usize] = coefficient.clone(); - - let mut subtractee_coeffs = vec![FieldElement::::zero(); (shift) as usize]; - subtractee_coeffs.push(coefficient); - let subtractee = Polynomial::new(subtractee_coeffs).mul_with_ref(denominator); + let subtractee = denominator + .scale_by_coeff(&coefficient) + .shift(shift as usize); remainder = remainder - subtractee; rem_deg = remainder.degree(); } @@ -139,6 +137,12 @@ impl Polynomial { (quotient, remainder) } + pub fn shift(&self, shift: usize) -> Self { + let mut shifted_coeffs = vec![FieldElement::::zero(); shift]; + shifted_coeffs.extend(self.coefficients.clone()); + Self::new(shifted_coeffs) + } + pub fn divfloor(&self, denominator: &Self) -> Self { let (quotient, _remainder) = self.clone().divmod(denominator); quotient diff --git a/tools/garaga_rs/src/calldata/full_proof_with_hints.rs b/tools/garaga_rs/src/calldata/full_proof_with_hints.rs index b941fbe8..7dee562b 100644 --- a/tools/garaga_rs/src/calldata/full_proof_with_hints.rs +++ b/tools/garaga_rs/src/calldata/full_proof_with_hints.rs @@ -1 +1,64 @@ pub mod groth16; + +#[cfg(test)] +mod tests_risc0_utils { + use super::groth16::risc0_utils::{get_risc0_vk, ok_digest, split_digest}; + use super::groth16::{get_groth16_calldata, Groth16Proof}; + use crate::definitions::CurveID; + use num_bigint::BigUint; + use num_traits::Num; + use sha2::{Digest, Sha256}; + #[test] + fn test_ok_digest_1() { + let image_id = vec![ + 0xd0, 0x1c, 0x15, 0xaf, 0xa7, 0x68, 0xa0, 0x5b, 0x21, 0x3a, 0x9e, 0x5f, 0xcd, 0xcc, + 0x57, 0x24, 0xa2, 0x94, 0x7e, 0x00, 0x09, 0x8c, 0x7e, 0xc3, 0x4c, 0xcb, 0xe2, 0x94, + 0x6b, 0xbc, 0x00, 0x13, + ]; + let journal = vec![ + 0x6a, 0x75, 0x73, 0x74, 0x20, 0x61, 0x20, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x20, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, + ]; + let journal_digest = Sha256::digest(&journal); + let digest = ok_digest(&image_id, &journal_digest); + + let (claim0, claim1) = split_digest(&BigUint::from_bytes_be(&digest)); + assert_eq!( + hex::encode(digest), + "e58e40abecebcfa4af85692fca5ed77d4ccb4b3f640f5e684e4faf3a36b0c4e0" + ); + + assert_eq!( + hex::encode(claim0.to_bytes_be()), + "7dd75eca2f6985afa4cfebecab408ee5" + ); + + assert_eq!( + hex::encode(claim1.to_bytes_be()), + "e0c4b0363aaf4f4e685e0f643f4bcb4c" + ); + } + + #[test] + fn test_ok_digest_2() { + let image_id = vec![ + 0x07, 0x9f, 0x23, 0xf1, 0x3e, 0xa8, 0x1b, 0xde, 0x11, 0xa9, 0x49, 0x12, 0xba, 0xdf, + 0xe8, 0xd9, 0x2d, 0x5b, 0xe1, 0x13, 0x4b, 0x2c, 0x99, 0x1b, 0x99, 0x55, 0xe9, 0xc1, + 0x89, 0x41, 0xba, 0x69, + ]; + + let journal: Vec = vec![0x01, 0x00, 0x00, 0x78]; + let journal_digest = Sha256::digest(&journal); + let digest = ok_digest(&image_id, &journal_digest); + + let (claim0, claim1) = split_digest(&BigUint::from_bytes_be(&digest)); + assert_eq!( + hex::encode(claim0.to_bytes_be()), + "d284212f0d87311c45e710301d86639f" + ); + assert_eq!( + hex::encode(claim1.to_bytes_be()), + "8875bcad22cdcfda1e2878df4e414108" + ); + } +} diff --git a/tools/garaga_rs/src/calldata/full_proof_with_hints/groth16.rs b/tools/garaga_rs/src/calldata/full_proof_with_hints/groth16.rs index 96308ae7..55e2db7b 100644 --- a/tools/garaga_rs/src/calldata/full_proof_with_hints/groth16.rs +++ b/tools/garaga_rs/src/calldata/full_proof_with_hints/groth16.rs @@ -13,6 +13,8 @@ use crate::io::{ use lambdaworks_math::field::traits::IsPrimeField; use lambdaworks_math::traits::ByteConversion; use num_bigint::{BigInt, BigUint, Sign}; +use sha2::{Digest, Sha256}; +use starknet_types_core::felt::Felt; pub struct Groth16Proof { pub a: G1PointBigUint, @@ -87,6 +89,50 @@ impl Groth16Proof { } cd } + + pub fn from_risc0(seal: Vec, image_id: Vec, journal: Vec) -> Self { + assert!(image_id.len() <= 32, "image_id must be 32 bytes"); + + let (control_root, bn254_control_id) = risc0_utils::get_risc0_constants(); + + let (control_root_0, control_root_1) = risc0_utils::split_digest(&control_root); + + let proof = &seal[4..]; + + let mut hasher = Sha256::new(); + hasher.update(&journal); + let journal_digest = hasher.finalize(); + + let claim_digest = risc0_utils::ok_digest(&image_id, &journal_digest); + let claim_digest_biguint = BigUint::from_bytes_be(&claim_digest); + let (claim0, claim1) = risc0_utils::split_digest(&claim_digest_biguint); + + Groth16Proof { + a: G1PointBigUint { + x: BigUint::from_bytes_be(&proof[0..32]), + y: BigUint::from_bytes_be(&proof[32..64]), + }, + b: G2PointBigUint { + x0: BigUint::from_bytes_be(&proof[96..128]), + x1: BigUint::from_bytes_be(&proof[64..96]), + y0: BigUint::from_bytes_be(&proof[160..192]), + y1: BigUint::from_bytes_be(&proof[128..160]), + }, + c: G1PointBigUint { + x: BigUint::from_bytes_be(&proof[192..224]), + y: BigUint::from_bytes_be(&proof[224..256]), + }, + public_inputs: vec![ + control_root_0, + control_root_1, + claim0, + claim1, + bn254_control_id, + ], + image_id: Some(image_id), + journal: Some(journal), + } + } } pub struct Groth16VerificationKey { @@ -118,6 +164,16 @@ impl Groth16VerificationKey { } } +pub fn get_groth16_calldata_felt( + proof: &Groth16Proof, + vk: &Groth16VerificationKey, + curve_id: CurveID, +) -> Result, String> { + let calldata = get_groth16_calldata(proof, vk, curve_id)?; + + Ok(calldata.into_iter().map(|x| Felt::from(x)).collect()) +} + pub fn get_groth16_calldata( proof: &Groth16Proof, vk: &Groth16VerificationKey, @@ -230,3 +286,141 @@ where y: element_to_biguint(&vk_x.y), } } + +pub mod risc0_utils { + use super::Groth16VerificationKey; + use hex; + use num_bigint::BigUint; + use num_traits::Num; + use sha2::{Digest, Sha256}; + + pub fn get_risc0_constants() -> (BigUint, BigUint) { + let risc0_control_root = BigUint::from_str_radix( + "8CDAD9242664BE3112ABA377C5425A4DF735EB1C6966472B561D2855932C0469", + 16, + ) + .unwrap(); + let risc0_bn254_control_id = BigUint::from_str_radix( + "04446E66D300EB7FB45C9726BB53C793DDA407A62E9601618BB43C5C14657AC0", + 16, + ) + .unwrap(); + + (risc0_control_root, risc0_bn254_control_id) + } + + pub fn get_risc0_vk() -> Groth16VerificationKey { + let vk_hex = [ + "2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e2", + "14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d1926", + "e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab", + "967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c", + "1739c1b1a457a8c7313123d24d2f9192f896b7c63eea05a9d57f06547ad0cec8", + "304cfbd1e08a704a99f5e847d93f8c3caafddec46b7a0d379da69a4d112346a7", + "1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed", + "198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c2", + "12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa", + "90689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b", + "1aa085ff28179a12d922dba0547057ccaae94b9d69cfaa4e60401fea7f3e0333", + "3b03cd5effa95ac9bee94f1f5ef907157bda4812ccf0b4c91f42bb629f83a1c", + "1e60f31fcbf757e837e867178318832d0b2d74d59e2fea1c7142df187d3fc6d3", + "110c10134f200b19f6490846d518c9aea868366efb7228ca5c91d2940d030762", + "12ac9a25dcd5e1a832a9061a082c15dd1d61aa9c4d553505739d0f5d65dc3be4", + "25aa744581ebe7ad91731911c898569106ff5a2d30f3eee2b23c60ee980acd4", + "707b920bc978c02f292fae2036e057be54294114ccc3c8769d883f688a1423f", + "2e32a094b7589554f7bc357bf63481acd2d55555c203383782a4650787ff6642", + "bca36e2cbe6394b3e249751853f961511011c7148e336f4fd974644850fc347", + "2ede7c9acf48cf3a3729fa3d68714e2a8435d4fa6db8f7f409c153b1fcdf9b8b", + "1b8af999dbfbb3927c091cc2aaf201e488cbacc3e2c6b6fb5a25f9112e04f2a7", + "2b91a26aa92e1b6f5722949f192a81c850d586d81a60157f3e9cf04f679cccd6", + "2b5f494ed674235b8ac1750bdfd5a7615f002d4a1dcefeddd06eda5a076ccd0d", + "2fe520ad2020aab9cbba817fcbb9a863b8a76ff88f14f912c5e71665b2ad5e82", + "f1c3c0d5d9da0fa03666843cde4e82e869ba5252fce3c25d5940320b1c4d493", + "214bfcff74f425f6fe8c0d07b307482d8bc8bb2f3608f68287aa01bd0b69e809", + ]; + + Groth16VerificationKey::from( + vk_hex + .iter() + .map(|s| BigUint::from_str_radix(s, 16).unwrap()) + .collect::>(), + ) + } + + pub fn split_digest(digest: &BigUint) -> (BigUint, BigUint) { + // Convert to bytes, ensure 32 bytes, and reverse + let mut bytes = digest.to_bytes_be(); + bytes.resize(32, 0); + bytes.reverse(); + + // Split into two 128-bit parts + let lower = BigUint::from_bytes_be(&bytes[0..16]); + let upper = BigUint::from_bytes_be(&bytes[16..32]); + + (upper, lower) + } + + struct ExitCode { + system: u32, + user: u32, + } + + struct Output { + journal_digest: Vec, + assumptions_digest: Vec, + } + + impl Output { + fn digest(&self) -> Vec { + let mut hasher = Sha256::new(); + hasher.update(Sha256::digest(b"risc0.Output")); + hasher.update(&self.journal_digest); + hasher.update(&self.assumptions_digest); + hasher.update((2u16 << 8).to_be_bytes()); + hasher.finalize().to_vec() + } + } + + struct ReceiptClaim { + pre_state_digest: Vec, + post_state_digest: Vec, + exit_code: ExitCode, + input: Vec, + output: Vec, + tag_digest: Vec, + } + + impl ReceiptClaim { + fn digest(&self) -> Vec { + let mut hasher = Sha256::new(); + hasher.update(&self.tag_digest); + hasher.update(&self.input); + hasher.update(&self.pre_state_digest); + hasher.update(&self.post_state_digest); + hasher.update(&self.output); + hasher.update((self.exit_code.system << 24).to_be_bytes()); + hasher.update((self.exit_code.user << 24).to_be_bytes()); + hasher.update((4u16 << 8).to_be_bytes()); + hasher.finalize().to_vec() + } + } + + pub fn ok_digest(image_id: &[u8], journal_digest: &[u8]) -> Vec { + let system_state_zero_digest = + hex::decode("A3ACC27117418996340B84E5A90F3EF4C49D22C79E44AAD822EC9C313E1EB8E2") + .unwrap(); + let output = Output { + journal_digest: journal_digest.to_vec(), + assumptions_digest: vec![0; 32], + }; + let receipt_claim = ReceiptClaim { + pre_state_digest: image_id.to_vec(), + post_state_digest: system_state_zero_digest, + exit_code: ExitCode { system: 0, user: 0 }, + input: vec![0; 32], + output: output.digest(), + tag_digest: Sha256::digest(b"risc0.ReceiptClaim").to_vec(), + }; + receipt_claim.digest() + } +} diff --git a/tools/garaga_rs/src/calldata/msm_calldata.rs b/tools/garaga_rs/src/calldata/msm_calldata.rs index 6fb7df45..b186f6a9 100644 --- a/tools/garaga_rs/src/calldata/msm_calldata.rs +++ b/tools/garaga_rs/src/calldata/msm_calldata.rs @@ -1,7 +1,7 @@ use crate::algebra::{g1point::G1Point, rational_function::FunctionFelt}; use crate::definitions::{ - BLS12381PrimeField, BN254PrimeField, CurveParamsProvider, FieldElement, SECP256K1PrimeField, - SECP256R1PrimeField, Stark252PrimeField, X25519PrimeField, + BLS12381PrimeField, BN254PrimeField, CurveParamsProvider, FieldElement, GrumpkinPrimeField, + SECP256K1PrimeField, SECP256R1PrimeField, Stark252PrimeField, X25519PrimeField, }; use crate::{ ecip::core::{neg_3_base_le, run_ecip}, @@ -81,6 +81,15 @@ pub fn msm_calldata_builder( serialize_as_pure_felt252_array, risc0_mode, ), + CurveID::GRUMPKIN => handle_curve::( + values, + scalars, + curve_id as usize, + include_digits_decomposition, + include_points_and_scalars, + serialize_as_pure_felt252_array, + risc0_mode, + ), } } @@ -102,7 +111,7 @@ where let limit = if risc0_mode { &(BigUint::from(1usize) << 128) } else { - &element_to_biguint(&F::get_curve_params().n) + &F::get_curve_params().n }; if !scalars.iter().all(|x| x < limit) { if risc0_mode { @@ -147,17 +156,29 @@ where let (q_high_shifted, sum_dlog_div_high_shifted) = run_ecip::(&[q_high.clone()], &[BigUint::from(1usize) << 128]); - let x = retrieve_random_x_coordinate( + let mut transcript = hash_inputs_points_scalars_and_result_points( points, scalars, + [&q_low, &q_high, &q_high_shifted], curve_id, risc0_mode, - [&q_low, &q_high, &q_high_shifted], - [ - (&sum_dlog_div_low, scalars.len()), - (&sum_dlog_div_high, scalars.len()), - (&sum_dlog_div_high_shifted, 1), - ], + ); + let sum_dlog_div_maybe_batched = match risc0_mode { + true => &sum_dlog_div_low, + false => { + let c0 = felt252_to_element(&transcript.state[1]); + let c1 = c0.clone().square(); + let c2 = c1.clone() * c0.clone(); + &(sum_dlog_div_low.scale_by_coeff(c0) + + sum_dlog_div_high.scale_by_coeff(c1) + + sum_dlog_div_high_shifted.scale_by_coeff(c2)) + } + }; + let x = retrieve_random_x_coordinate( + &mut transcript, + sum_dlog_div_maybe_batched, + scalars.len(), + !risc0_mode, ); let (point, roots) = derive_ec_point_from_x(&x); @@ -231,22 +252,11 @@ where } } - // SumDlogDivLow, SumDlogDivHigh, SumDlogDivHighShifted - let f_n_list = [ - (&sum_dlog_div_low, scalars.len()), - (&sum_dlog_div_high, scalars.len()), - (&sum_dlog_div_high_shifted, 1), - ]; - for (f, n) in f_n_list { - let parts = padd_function_felt(f, n); - for coeffs in parts { - push(call_data_ref, coeffs.len()); - for coeff in coeffs { - push_element(call_data_ref, &coeff); - } - } - if risc0_mode { - break; + let ff_4_polys = padd_function_felt(sum_dlog_div_maybe_batched, scalars.len(), !risc0_mode); + for poly in ff_4_polys { + push(call_data_ref, poly.len()); + for coeff in poly { + push_element(call_data_ref, &coeff); } } } @@ -303,14 +313,13 @@ where const INIT_HASH: &str = "0x4D534D5F4731"; // "MSM_G1" in hex const INIT_HASH_U128: &str = "0x4D534D5F47315F55313238"; // "MSM_G1_U128" in hex -fn retrieve_random_x_coordinate( +fn hash_inputs_points_scalars_and_result_points( points: &[G1Point], scalars: &[BigUint], + q_list: [&G1Point; 3], curve_id: usize, risc0_mode: bool, - q_list: [&G1Point; 3], - f_n_list: [(&FunctionFelt, usize); 3], -) -> FieldElement +) -> CairoPoseidonTranscript where F: IsPrimeField, FieldElement: ByteConversion, @@ -322,24 +331,12 @@ where }; let mut transcript = CairoPoseidonTranscript::new(FieldElement::from_hex_unchecked(init_hash)); let transcript_ref = &mut transcript; - // curve id, msm size transcript_ref.update_sponge_state( FieldElement::::from(curve_id as u64), FieldElement::::from(scalars.len() as u64), ); - // SumDlogDivLow, SumDlogDivHigh, SumDlogDivHighShifted - for (f, msm_size) in f_n_list { - let parts = padd_function_felt(f, msm_size); - for coeffs in parts { - transcript_ref.hash_emulated_field_elements(&coeffs, Option::None); - } - if risc0_mode { - break; - } - } - // points for point in points { transcript_ref.hash_emulated_field_element(&point.x); @@ -362,6 +359,25 @@ where transcript_ref.hash_u256_multi(scalars); } + return transcript; +} + +fn retrieve_random_x_coordinate( + transcript: &mut CairoPoseidonTranscript, + sum_dlog_div_maybe_batched: &FunctionFelt, + msm_size: usize, + batched: bool, +) -> FieldElement +where + F: IsPrimeField, + FieldElement: ByteConversion, +{ + // SumDlogDivLow, SumDlogDivHigh, SumDlogDivHighShifted + let parts = padd_function_felt(sum_dlog_div_maybe_batched, msm_size, batched); + for coeffs in parts { + transcript.hash_emulated_field_elements(&coeffs, Option::None); + } + transcript.state[0] } @@ -437,560 +453,4 @@ mod tests { assert_eq!(String::from("0x") + &hex_string, INIT_HASH_U128); } } - - #[test] - fn test_msm_1p_bn254() { - let values = vec![ - "17752150426707023160896145033289182224151429257237962872500708232035549528353", - "5624652954399631991820579009793795026629257929959730223927648120625404966111", - ]; - let values = values - .iter() - .map(|s| BigUint::parse_bytes(s.as_bytes(), 10).unwrap()) - .collect::>(); - let scalars = - vec!["5488185871528857373452098697086130411467123274305500681494416103833528174182"]; - let scalars = scalars - .iter() - .map(|s| BigUint::parse_bytes(s.as_bytes(), 10).unwrap()) - .collect::>(); - let expected = vec![ - "0", - "1", - "81", - "1", - "3618502788666131213697322783095070105623107215331596699973092056135872020480", - "1", - "1", - "1", - "1", - "0", - "0", - "0", - "0", - "1", - "0", - "0", - "1", - "1", - "0", - "0", - "0", - "3618502788666131213697322783095070105623107215331596699973092056135872020480", - "3618502788666131213697322783095070105623107215331596699973092056135872020480", - "0", - "0", - "0", - "0", - "3618502788666131213697322783095070105623107215331596699973092056135872020480", - "0", - "0", - "1", - "0", - "1", - "3618502788666131213697322783095070105623107215331596699973092056135872020480", - "3618502788666131213697322783095070105623107215331596699973092056135872020480", - "0", - "1", - "0", - "3618502788666131213697322783095070105623107215331596699973092056135872020480", - "0", - "3618502788666131213697322783095070105623107215331596699973092056135872020480", - "0", - "1", - "1", - "0", - "1", - "1", - "0", - "1", - "3618502788666131213697322783095070105623107215331596699973092056135872020480", - "0", - "1", - "3618502788666131213697322783095070105623107215331596699973092056135872020480", - "1", - "1", - "1", - "0", - "0", - "0", - "1", - "0", - "3618502788666131213697322783095070105623107215331596699973092056135872020480", - "0", - "1", - "3618502788666131213697322783095070105623107215331596699973092056135872020480", - "1", - "3618502788666131213697322783095070105623107215331596699973092056135872020480", - "0", - "3618502788666131213697322783095070105623107215331596699973092056135872020480", - "3618502788666131213697322783095070105623107215331596699973092056135872020480", - "3618502788666131213697322783095070105623107215331596699973092056135872020480", - "0", - "3618502788666131213697322783095070105623107215331596699973092056135872020480", - "3618502788666131213697322783095070105623107215331596699973092056135872020480", - "0", - "3618502788666131213697322783095070105623107215331596699973092056135872020480", - "0", - "1", - "3618502788666131213697322783095070105623107215331596699973092056135872020480", - "1", - "3618502788666131213697322783095070105623107215331596699973092056135872020480", - "0", - "1", - "1", - "79", - "0", - "1", - "0", - "1", - "1", - "0", - "0", - "1", - "0", - "3618502788666131213697322783095070105623107215331596699973092056135872020480", - "3618502788666131213697322783095070105623107215331596699973092056135872020480", - "3618502788666131213697322783095070105623107215331596699973092056135872020480", - "0", - "1", - "0", - "3618502788666131213697322783095070105623107215331596699973092056135872020480", - "3618502788666131213697322783095070105623107215331596699973092056135872020480", - "3618502788666131213697322783095070105623107215331596699973092056135872020480", - "3618502788666131213697322783095070105623107215331596699973092056135872020480", - "3618502788666131213697322783095070105623107215331596699973092056135872020480", - "0", - "1", - "1", - "1", - "1", - "1", - "1", - "0", - "0", - "1", - "1", - "1", - "0", - "1", - "1", - "0", - "3618502788666131213697322783095070105623107215331596699973092056135872020480", - "1", - "1", - "1", - "3618502788666131213697322783095070105623107215331596699973092056135872020480", - "1", - "0", - "3618502788666131213697322783095070105623107215331596699973092056135872020480", - "0", - "1", - "3618502788666131213697322783095070105623107215331596699973092056135872020480", - "1", - "0", - "1", - "0", - "1", - "3618502788666131213697322783095070105623107215331596699973092056135872020480", - "3618502788666131213697322783095070105623107215331596699973092056135872020480", - "3618502788666131213697322783095070105623107215331596699973092056135872020480", - "0", - "3618502788666131213697322783095070105623107215331596699973092056135872020480", - "1", - "1", - "0", - "1", - "1", - "0", - "0", - "1", - "0", - "1", - "1", - "3618502788666131213697322783095070105623107215331596699973092056135872020480", - "3618502788666131213697322783095070105623107215331596699973092056135872020480", - "3618502788666131213697322783095070105623107215331596699973092056135872020480", - "0", - "3618502788666131213697322783095070105623107215331596699973092056135872020480", - "1", - "3618502788666131213697322783095070105623107215331596699973092056135872020480", - "0", - "0", - "0", - "1", - "55545317686235191091318856526", - "127545108061084845680916344", - "1343630505121918906", - "0", - "58050240331269443361250959434", - "52910855361298413822456220787", - "2417811551116210091", - "0", - "4386421157602274996729133530", - "48367467627753054536872356728", - "2735083941318314895", - "0", - "44762336008600836782008429893", - "22470996594338772969431406981", - "2372597256385359735", - "0", - "54174604611295383482133277186", - "55514818401533322906052683758", - "1655343276015202350", - "0", - "62408157425676898832190573451", - "70584154254754317379417117405", - "1273663894312586395", - "0", - "2", - "63766186954932314969162183645", - "22705331698219268428581026854", - "2058932832584071925", - "0", - "56709934103430165929014714024", - "68135223798443788528308290835", - "1743499133401485332", - "0", - "3", - "46557668692489516877701804648", - "19255999001899034543770310456", - "375472148113123502", - "0", - "43444440254537250118042721823", - "29263258957437461966260267120", - "2802285303484675454", - "0", - "1", - "0", - "0", - "0", - "3", - "16160736822092523854063503744", - "32931063787871913997716805887", - "871243612966920606", - "0", - "41817908413497252192812953238", - "74336255094411178490492782010", - "2223507181083018580", - "0", - "8477759942019686544266405686", - "14271698841254107733802497840", - "2779727535500518809", - "0", - "6", - "60444843563204213039561463608", - "57767997005697103631310931369", - "1126416444339370506", - "0", - "65685308438832928000570908623", - "52933369221330244568565212206", - "1432859376848085031", - "0", - "3", - "0", - "0", - "0", - "46557668692489516877701804648", - "19255999001899034543770310456", - "375472148113123502", - "0", - "43444440254537250118042721823", - "29263258957437461966260267120", - "2802285303484675454", - "0", - "1", - "0", - "0", - "0", - "2", - "16575400227436988376218826742", - "34665240465940749909297415657", - "387660307362535378", - "0", - "60775790491462369405533287485", - "68135223798443788527816512161", - "1743499133401485332", - "0", - "3", - "48079939579734708787499955289", - "69205609434058286184290922681", - "2071256972889883744", - "0", - "15375174268905828619088494483", - "60251498952009829868612777073", - "1410831867288279464", - "0", - "1", - "0", - "0", - "0", - "3", - "54506116140109294418161872003", - "63582820648449356556640852342", - "2792040469979738282", - "0", - "39453626981933823118567798792", - "43873271731120371117890972024", - "1510139911507757242", - "0", - "51267722214622535087676445281", - "48260591775451849888466082047", - "1441506848959514676", - "0", - "6", - "32687650062550377592177287108", - "71346380705287281497449047963", - "2726772651866680568", - "0", - "13801516644328074680486855026", - "44484049259141912550414611138", - "745497335061867728", - "0", - "3", - "0", - "0", - "0", - "48079939579734708787499955289", - "69205609434058286184290922681", - "2071256972889883744", - "0", - "15375174268905828619088494483", - "60251498952009829868612777073", - "1410831867288279464", - "0", - "1", - "0", - "0", - "0", - "2", - "28218073663745214356881332831", - "24839784910530090619443756822", - "868962960421267859", - "0", - "43247575710167986853886076169", - "68135223798443788525497744092", - "1743499133401485332", - "0", - "3", - "38799906529841710969635143971", - "7904731285732535980700613101", - "1844103407952427850", - "0", - "6086986555881163874694846130", - "10202284135960101480834499004", - "2583569316272424085", - "0", - "1", - "0", - "0", - "0", - "3", - "29662638243352958806310504450", - "9808206542174162505060727109", - "785746497619692964", - "0", - "55120265752532127650776989821", - "59836836337796716913053859416", - "1800450914250594101", - "0", - "7248175160897973186246200008", - "37193735822825061875385016474", - "2736897321272475420", - "0", - "6", - "4847550912871384138582853154", - "45900071288838706073766019895", - "2045311957054312884", - "0", - "32841109857129006864071231880", - "74978607271162500705831858193", - "776711415211330923", - "0", - "3", - "0", - "0", - "0", - "38799906529841710969635143971", - "7904731285732535980700613101", - "1844103407952427850", - "0", - "6086986555881163874694846130", - "10202284135960101480834499004", - "2583569316272424085", - "0", - "1", - "0", - "0", - "0", - "12901105342242691731001547399", - "47589069440988811011434198962", - "513687518442945155", - "0", - "3", - "35126167625510687633039409067", - "72109938629211885509861516725", - "924366439034055155", - "0", - "12037300279107951797048639301", - "2251139965229358461839194094", - "1377237181661091165", - "0", - "71565083873266010161214639123", - "31296437441104678384530239059", - "998939318555314304", - "0", - "1", - "44886416898270718737739628833", - "5465603585483594518274405689", - "2828080724999346971", - "0", - "31495664379410490933391258847", - "70145709189263518448437858912", - "896058912458130367", - "0", - "1", - "106625320074685558741560858198442247782", - "16128328720612160970043686497646299400", - "0", - ]; - let expected = expected - .iter() - .map(|s| BigUint::parse_bytes(s.as_bytes(), 10).unwrap()) - .collect::>(); - let result = msm_calldata_builder( - &values, - &scalars, - CurveID::BN254 as usize, - true, - true, - false, - false, - ) - .unwrap(); - assert_eq!(result, expected); - } - - #[test] - fn test_msm_1p_bn254_risc0_mode() { - let values = vec!["1", "2"]; - let values = values - .iter() - .map(|s| BigUint::parse_bytes(s.as_bytes(), 10).unwrap()) - .collect::>(); - let scalars = vec!["10"]; - let scalars = scalars - .iter() - .map(|s| BigUint::parse_bytes(s.as_bytes(), 10).unwrap()) - .collect::>(); - let expected = [ - "91", - "0", - "1", - "3", - "1", - "0", - "1", - "75759116906411131289250842036", - "1443316740970346987535705368", - "708088064087366360", - "0", - "31894839170900604627010243180", - "26562388390640533846098233871", - "1678682860455561629", - "0", - "2", - "26217156025717979489861508966", - "38732762661950955458369152605", - "1690057079767624198", - "0", - "55776084338326874385161289385", - "68135223798443788527711860040", - "1743499133401485332", - "0", - "3", - "75759116906411131289250842036", - "1443316740970346987535705368", - "708088064087366360", - "0", - "35793051770242617481071736722", - "55598968341652892474344064376", - "2778910202715604305", - "0", - "1", - "0", - "0", - "0", - "3", - "19631865022986903110643570472", - "75611758646426461743237732951", - "853236432195926662", - "0", - "11812074862058673201969127714", - "39063420668175062792989597255", - "1051876075291068046", - "0", - "20990372166390382667110319757", - "42018508523564723974054925340", - "1475001652048253687", - "0", - "6", - "68821025690704718680664625436", - "4329950222911040962607116106", - "2124264192262099080", - "0", - "42731142985949030089657953320", - "52712334859712198499272653638", - "1362734074540871585", - "0", - "3", - "0", - "0", - "0", - "75759116906411131289250842036", - "1443316740970346987535705368", - "708088064087366360", - "0", - "35793051770242617481071736722", - "55598968341652892474344064376", - "2778910202715604305", - "0", - "1", - "0", - "0", - "0", - "55393786136547617102399599652", - "54108526909404909864370672884", - "1166018927207804617", - "0", - "0", - "1", - "1", - "0", - "0", - "0", - "2", - "0", - "0", - "0", - "1", - "10", - "0", - ]; - let expected = expected - .iter() - .map(|s| BigUint::parse_bytes(s.as_bytes(), 10).unwrap()) - .collect::>(); - let result = msm_calldata_builder( - &values, - &scalars, - CurveID::BN254 as usize, - true, - true, - true, - true, - ) - .unwrap(); - assert_eq!(result, expected); - } } diff --git a/tools/garaga_rs/src/definitions.rs b/tools/garaga_rs/src/definitions.rs index 239f2e71..39a16dcb 100644 --- a/tools/garaga_rs/src/definitions.rs +++ b/tools/garaga_rs/src/definitions.rs @@ -9,6 +9,7 @@ use lambdaworks_math::field::fields::montgomery_backed_prime_fields::{ use lambdaworks_math::field::traits::IsPrimeField; use lambdaworks_math::unsigned_integer::element::U256; use num_bigint::BigUint; +use num_traits::Num; use std::cmp::PartialEq; use std::collections::HashMap; @@ -21,6 +22,7 @@ pub enum CurveID { SECP256K1 = 2, SECP256R1 = 3, X25519 = 4, + GRUMPKIN = 5, } impl TryFrom for CurveID { @@ -33,6 +35,7 @@ impl TryFrom for CurveID { 2 => Ok(CurveID::SECP256K1), 3 => Ok(CurveID::SECP256R1), 4 => Ok(CurveID::X25519), + 5 => Ok(CurveID::GRUMPKIN), _ => Err(format!("Invalid curve ID: {}", value)), } } @@ -48,6 +51,7 @@ impl TryFrom for CurveID { 2 => Ok(CurveID::SECP256K1), 3 => Ok(CurveID::SECP256R1), 4 => Ok(CurveID::X25519), + 5 => Ok(CurveID::GRUMPKIN), _ => Err(format!("Invalid curve ID: {}", value)), } } @@ -90,6 +94,17 @@ impl IsModulus for X25519FieldModulus { pub type X25519PrimeField = MontgomeryBackendPrimeField; +pub const GRUMPKIN_PRIME_FIELD_ORDER: U256 = + U256::from_hex_unchecked("0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001"); + +#[derive(Clone, Debug)] +pub struct GrumpkinFieldModulus; +impl IsModulus for GrumpkinFieldModulus { + const MODULUS: U256 = GRUMPKIN_PRIME_FIELD_ORDER; +} + +pub type GrumpkinPrimeField = MontgomeryBackendPrimeField; + pub struct CurveParams { pub curve_id: CurveID, pub a: FieldElement, @@ -98,8 +113,8 @@ pub struct CurveParams { pub b21: FieldElement, pub g_x: FieldElement, pub g_y: FieldElement, - pub n: FieldElement, // Order of the curve - pub h: u32, // Cofactor + pub n: BigUint, // Order of the curve + pub h: u32, // Cofactor pub fp_generator: FieldElement, pub irreducible_polys: HashMap, pub loop_counter: &'static [i8], @@ -144,9 +159,11 @@ impl CurveParamsProvider for SECP256K1PrimeField { g_y: FieldElement::from_hex_unchecked( "483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8", ), - n: FieldElement::from_hex_unchecked( + n: BigUint::from_str_radix( "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141", - ), + 16, + ) + .unwrap(), h: 1, fp_generator: FieldElement::from(3), irreducible_polys: HashMap::from([]), // Provide appropriate values here @@ -174,9 +191,11 @@ impl CurveParamsProvider for SECP256R1PrimeField { g_y: FieldElement::from_hex_unchecked( "4FE342E2FE1A7F9B8EE7EB4A7C0F9E162CBCE33576B315ECECBB6406837BF51F", ), - n: FieldElement::from_hex_unchecked( + n: BigUint::from_str_radix( "FFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC632551", - ), + 16, + ) + .unwrap(), h: 1, fp_generator: FieldElement::from(6), irreducible_polys: HashMap::from([]), // Provide appropriate values here @@ -202,9 +221,11 @@ impl CurveParamsProvider for X25519PrimeField { g_y: FieldElement::from_hex_unchecked( "20AE19A1B8A086B4E01EDD2C7748D14C923D4DF667ADCE0B9A9E39E969A2C0DF", ), - n: FieldElement::from_hex_unchecked( + n: BigUint::from_str_radix( "1000000000000000000000000000000014DEF9DEA2F79CD65812631A5CF5D3ED", - ), + 16, + ) + .unwrap(), h: 8, fp_generator: FieldElement::from(6), irreducible_polys: HashMap::from([]), // Provide appropriate values here @@ -214,6 +235,34 @@ impl CurveParamsProvider for X25519PrimeField { } } +impl CurveParamsProvider for GrumpkinPrimeField { + fn get_curve_params() -> CurveParams { + CurveParams { + curve_id: CurveID::GRUMPKIN, + a: FieldElement::from_hex_unchecked("0"), + b: FieldElement::from_hex_unchecked( + "0x30644e72e131a029b85045b68181585d2833e84879b9709143e1f593effffff0", + ), + b20: FieldElement::zero(), + b21: FieldElement::zero(), + g_x: FieldElement::from_hex_unchecked("0x1"), + g_y: FieldElement::from_hex_unchecked( + "0x2CF135E7506A45D632D270D45F1181294833FC48D823F272C", + ), + n: BigUint::from_str_radix( + "30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD47", + 16, + ) + .unwrap(), + h: 1, + fp_generator: FieldElement::from(5), + irreducible_polys: HashMap::from([]), // Provide appropriate values here + loop_counter: &[], // Provide appropriate values here + nr_a0: 0, // Provide appropriate values here + } + } +} + impl CurveParamsProvider for BN254PrimeField { fn get_curve_params() -> CurveParams { CurveParams { @@ -228,9 +277,11 @@ impl CurveParamsProvider for BN254PrimeField { ), g_x: FieldElement::from_hex_unchecked("1"), // Replace with actual 'g_x' g_y: FieldElement::from_hex_unchecked("2"), // Replace with actual 'g_y' - n: FieldElement::from_hex_unchecked( + n: BigUint::from_str_radix( "30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001", - ), + 16, + ) + .unwrap(), h: 1, // Replace with actual 'h' fp_generator: FieldElement::from(3), irreducible_polys: HashMap::from([ @@ -257,9 +308,11 @@ impl CurveParamsProvider for BLS12381PrimeField { b21: FieldElement::from_hex_unchecked("4"), g_x: FieldElement::from_hex_unchecked("1"), // Replace with actual 'g_x' g_y: FieldElement::from_hex_unchecked("2"), // Replace with actual 'g_y' - n: FieldElement::from_hex_unchecked( + n: BigUint::from_str_radix( "73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFF00000001", - ), + 16, + ) + .unwrap(), h: 1, // Replace with actual 'h' fp_generator: FieldElement::from(3), irreducible_polys: HashMap::from([ @@ -368,6 +421,7 @@ pub fn get_modulus_from_curve_id(curve_id: CurveID) -> BigUint { CurveID::SECP256K1 => biguint_from_hex("0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F"), CurveID::SECP256R1 => biguint_from_hex("0xFFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF"), CurveID::X25519 => biguint_from_hex("0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED"), + CurveID::GRUMPKIN => biguint_from_hex("0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001"), } } diff --git a/tools/garaga_rs/src/ecip/core.rs b/tools/garaga_rs/src/ecip/core.rs index 90830f61..e8b17996 100644 --- a/tools/garaga_rs/src/ecip/core.rs +++ b/tools/garaga_rs/src/ecip/core.rs @@ -6,8 +6,8 @@ use lambdaworks_math::traits::ByteConversion; use crate::algebra::g1point::G1Point; use crate::algebra::rational_function::{FunctionFelt, RationalFunction}; use crate::definitions::{ - BLS12381PrimeField, BN254PrimeField, CurveParamsProvider, SECP256K1PrimeField, - SECP256R1PrimeField, X25519PrimeField, + BLS12381PrimeField, BN254PrimeField, CurveParamsProvider, GrumpkinPrimeField, + SECP256K1PrimeField, SECP256R1PrimeField, X25519PrimeField, }; use crate::ecip::ff::FF; use crate::io::{ @@ -28,6 +28,7 @@ pub fn zk_ecip_hint( 2 => handle_curve::(points, scalars, field_elements_from_big_uints), 3 => handle_curve::(points, scalars, field_elements_from_big_uints), 4 => handle_curve::(points, scalars, field_elements_from_big_uints), + 5 => handle_curve::(points, scalars, field_elements_from_big_uints), _ => Err(String::from("Invalid curve ID")), } } diff --git a/tools/garaga_rs/src/io.rs b/tools/garaga_rs/src/io.rs index 4d07b54e..46d5e8c1 100644 --- a/tools/garaga_rs/src/io.rs +++ b/tools/garaga_rs/src/io.rs @@ -100,6 +100,7 @@ where pub fn padd_function_felt( f: &FunctionFelt, n: usize, + batched: bool, ) -> [Vec>; 4] { fn pad_vec(v: &mut Vec>, n: usize) { assert!(v.len() <= n); @@ -112,10 +113,12 @@ pub fn padd_function_felt( let mut a_den = f.a.denominator.coefficients.clone(); let mut b_num = f.b.numerator.coefficients.clone(); let mut b_den = f.b.denominator.coefficients.clone(); - pad_vec(&mut a_num, n + 1); - pad_vec(&mut a_den, n + 2); - pad_vec(&mut b_num, n + 2); - pad_vec(&mut b_den, n + 5); + + let extra_padding = if batched { 2 } else { 0 }; + pad_vec(&mut a_num, n + 1 + extra_padding); + pad_vec(&mut a_den, n + 2 + extra_padding); + pad_vec(&mut b_num, n + 2 + extra_padding); + pad_vec(&mut b_den, n + 5 + extra_padding); [a_num, a_den, b_num, b_den] } diff --git a/tools/garaga_rs/src/pairing/multi_pairing_check.rs b/tools/garaga_rs/src/pairing/multi_pairing_check.rs index 0afd34e9..62267bbb 100644 --- a/tools/garaga_rs/src/pairing/multi_pairing_check.rs +++ b/tools/garaga_rs/src/pairing/multi_pairing_check.rs @@ -18,10 +18,26 @@ pub fn get_max_q_degree(curve_id: CurveID, n_pairs: usize) -> usize { CurveID::BLS12_381 => 8, _ => unimplemented!(), }; + let f_degree = 11; - 4 * f_degree + 2 * line_degree * n_pairs + line_degree * n_pairs - 12 -} + let lambda_root_degree = 11; + match curve_id { + CurveID::BN254 => { + // Largest degree happens in bit_10 case where we do (f*f*C * Π_n_pairs(line)^2 * Π_n_pairs(line)) + 4 * f_degree + + 2 * lambda_root_degree + + 4 * line_degree * n_pairs + + line_degree * n_pairs + - 12 + } + CurveID::BLS12_381 => { + // Largest Q happens in bit_00 case where we do (f*f* Π_n_pairs(line)^2 * Π_n_pairs(line) + 4 * f_degree + 2 * line_degree * n_pairs + line_degree * n_pairs - 12 + } + _ => unimplemented!(), + } +} fn get_final_exp_witness(f: &[FieldElement]) -> (Vec>, Vec>) where F: IsPrimeField + CurveParamsProvider, @@ -182,6 +198,82 @@ where (new_f, new_points) } +fn bit_01_case( + f: &Polynomial, + q: &[G2Point], + q_select: &[G2Point], + y_inv: &[FieldElement], + x_neg_over_y: &[FieldElement], + c_or_c_inv: &Polynomial, + qis: &mut Vec>, + ris: &mut Vec>, +) -> (Polynomial, Vec>) +where + F: IsPrimeField + CurveParamsProvider + IsSubFieldOf, + E2: IsField; 2]>, +{ + let mut new_lines = vec![f.clone(), f.clone(), f.clone(), f.clone()]; + let mut new_points = vec![]; + for k in 0..q.len() { + let (t, l1) = double_step(&q[k], &y_inv[k], &x_neg_over_y[k]); + new_lines.push(l1.clone()); + new_lines.push(l1); + new_points.push(t); + } + + let mut new_new_points = vec![]; + for k in 0..q.len() { + let (t, l1, l2) = + double_and_add_step(&new_points[k], &q_select[k], &y_inv[k], &x_neg_over_y[k]); + new_lines.push(l1); + new_lines.push(l2); + new_new_points.push(t); + } + + new_lines.push(c_or_c_inv.clone()); + let new_f = extf_mul(new_lines, None, Some(qis), Some(ris)); + (new_f, new_new_points) +} + +fn bit_10_case( + f: &Polynomial, + q: &[G2Point], + q_select: &[G2Point], + y_inv: &[FieldElement], + x_neg_over_y: &[FieldElement], + c_or_c_inv: &Polynomial, + qis: &mut Vec>, + ris: &mut Vec>, +) -> (Polynomial, Vec>) +where + F: IsPrimeField + CurveParamsProvider + IsSubFieldOf, + E2: IsField; 2]>, +{ + let mut new_lines = vec![f.clone(), f.clone(), f.clone(), f.clone()]; + new_lines.push(c_or_c_inv.clone()); + new_lines.push(c_or_c_inv.clone()); + + let mut new_points = vec![]; + for k in 0..q.len() { + let (t, l1, l2) = double_and_add_step(&q[k], &q_select[k], &y_inv[k], &x_neg_over_y[k]); + new_lines.push(l1.clone()); + new_lines.push(l1); + new_lines.push(l2.clone()); + new_lines.push(l2); + new_points.push(t); + } + + let mut new_new_points = vec![]; + for k in 0..q.len() { + let (t, l1) = double_step(&new_points[k], &y_inv[k], &x_neg_over_y[k]); + new_lines.push(l1); + new_new_points.push(t); + } + + let new_f = extf_mul(new_lines, None, Some(qis), Some(ris)); + (new_f, new_new_points) +} + pub fn multi_pairing_check( p: &[G1Point], q: &[G2Point], @@ -202,7 +294,7 @@ where FieldElement: ByteConversion, { assert_eq!(p.len(), q.len()); - let n_pairs = p.len(); + // let n_pairs: usize = p.len(); let (y_inv, x_neg_over_y) = precompute_consts(p); @@ -210,7 +302,7 @@ where let (mut qis, mut ris) = (vec![], vec![]); - let (mut c_or_c_inv, scaling_factor, scaling_factor_sparsity) = + let (c_or_c_inv, scaling_factor, scaling_factor_sparsity) = get_root_and_scaling_factor(p, q, m); let w = Polynomial::new(scaling_factor.clone()); let compact_scaling_factor = @@ -258,43 +350,123 @@ where unimplemented!(); } - let mut i = start_index; - while i > 0 { - i -= 1; - if loop_counter[i] == 0 { - if i > 0 && loop_counter[i - 1] == 0 { - (f, qs) = bit_00_case(&f, &qs, &y_inv, &x_neg_over_y, &mut qis, &mut ris); - i -= 1; - } else { - (f, qs) = bit_0_case(&f, &qs, &y_inv, &x_neg_over_y, &mut qis, &mut ris); - } - } else if loop_counter[i] == 1 || loop_counter[i] == -1 { - let mut q_selects = vec![]; - for k in 0..n_pairs { - q_selects.push(if loop_counter[i] == 1 { - q[k].clone() + let mut i: i32 = (start_index - 1) as i32; + while i >= 0 { + let idx = i as usize; + if loop_counter[idx] == 0 { + if idx > 0 { + let next_bit = loop_counter[idx - 1]; + if next_bit == 0 { + // 00 case + let (new_f, new_points) = + bit_00_case(&f, &qs, &y_inv, &x_neg_over_y, &mut qis, &mut ris); + f = new_f; + qs = new_points; + i -= 1; // Skip next bit + } else if (next_bit == 1 || next_bit == -1) + && F::get_curve_params().curve_id == CurveID::BN254 + { + // 01 or 0(-1) case + let q_select: Vec> = qs + .iter() + .enumerate() + .map(|(k, _)| { + if next_bit == 1 { + q[k].clone() + } else { + q_neg[k].clone() + } + }) + .collect(); + let c_or_c_inv = if next_bit == 1 { + &c_inv + } else { + &c.as_ref().unwrap() + }; + let (new_f, new_points) = bit_01_case( + &f, + &qs, + &q_select, + &y_inv, + &x_neg_over_y, + c_or_c_inv, + &mut qis, + &mut ris, + ); + f = new_f; + qs = new_points; + i -= 1; // Skip next bit } else { - q_neg[k].clone() - }); + // Single 0 (BLS only) + let (new_f, new_points) = + bit_0_case(&f, &qs, &y_inv, &x_neg_over_y, &mut qis, &mut ris); + f = new_f; + qs = new_points; + } + } else { + // Single 0 at the end + let (new_f, new_points) = + bit_0_case(&f, &qs, &y_inv, &x_neg_over_y, &mut qis, &mut ris); + f = new_f; + qs = new_points; } - c_or_c_inv = if loop_counter[i] == 1 { - c_inv.clone() + } else if loop_counter[idx] == 1 || loop_counter[idx] == -1 { + let q_select: Vec> = qs + .iter() + .enumerate() + .map(|(k, _)| { + if loop_counter[idx] == 1 { + q[k].clone() + } else { + q_neg[k].clone() + } + }) + .collect(); + let c_or_c_inv = if loop_counter[idx] == 1 { + &c_inv } else { - c.clone().unwrap() + &c.clone().unwrap() }; - (f, qs) = bit_1_case( - &f, - &qs, - &q_selects, - &y_inv, - &x_neg_over_y, - &c_or_c_inv, - &mut qis, - &mut ris, - ); + + if idx > 0 + && loop_counter[idx - 1] == 0 + && F::get_curve_params().curve_id == CurveID::BN254 + { + // 10 or (-1)0 case + let (new_f, new_points) = bit_10_case( + &f, + &qs, + &q_select, + &y_inv, + &x_neg_over_y, + c_or_c_inv, + &mut qis, + &mut ris, + ); + f = new_f; + qs = new_points; + i -= 1; // Skip next bit + } else if idx == 0 || F::get_curve_params().curve_id == CurveID::BLS12_381 { + // Single ±1 at the end + let (new_f, new_points) = bit_1_case( + &f, + &qs, + &q_select, + &y_inv, + &x_neg_over_y, + c_or_c_inv, + &mut qis, + &mut ris, + ); + f = new_f; + qs = new_points; + } else { + panic!("Bit {} not implemented", loop_counter[idx]); + } } else { - unimplemented!(); + panic!("Bit {} not implemented", loop_counter[idx]); } + i -= 1; } let final_r_sparsity = if m.is_some() { @@ -314,7 +486,7 @@ where lines.insert(0, f); f = extf_mul(lines, None, Some(&mut qis), Some(&mut ris)); let c_inv_frob_1 = frobenius(&frobenius_maps, &c_inv, 1, 12); - let c_frob_2 = frobenius(&frobenius_maps, &c.unwrap(), 2, 12); + let c_frob_2 = frobenius(&frobenius_maps, &c.as_ref().unwrap(), 2, 12); let c_inv_frob_3 = frobenius(&frobenius_maps, &c_inv, 3, 12); f = extf_mul( vec![f, w, c_inv_frob_1, c_frob_2, c_inv_frob_3], diff --git a/tools/garaga_rs/src/python_bindings/ecip.rs b/tools/garaga_rs/src/python_bindings/ecip.rs index 3dbe8665..34ecf8ec 100644 --- a/tools/garaga_rs/src/python_bindings/ecip.rs +++ b/tools/garaga_rs/src/python_bindings/ecip.rs @@ -20,7 +20,10 @@ pub fn zk_ecip_hint( let v = ecip::core::zk_ecip_hint(list_values, list_scalars, curve_id) .map_err(PyErr::new::)?; - let py_list = PyList::new_bound(py, v.into_iter().map(|x| PyList::new_bound(py, x))); - + let inner_lists: Vec<_> = v + .into_iter() + .map(|x| PyList::new(py, x)) + .collect::>()?; + let py_list = PyList::new(py, inner_lists)?; Ok(py_list.into()) } diff --git a/tools/garaga_rs/src/python_bindings/extf_mul.rs b/tools/garaga_rs/src/python_bindings/extf_mul.rs index cc2abac3..358b052d 100644 --- a/tools/garaga_rs/src/python_bindings/extf_mul.rs +++ b/tools/garaga_rs/src/python_bindings/extf_mul.rs @@ -53,6 +53,8 @@ where .into_iter() .map(|x| BigUint::from_bytes_be(&x.to_bytes_be())) .collect::>(); - let py_tuple = PyTuple::new_bound(py, [PyList::new_bound(py, q), PyList::new_bound(py, r)]); + let q_list = PyList::new(py, q)?; + let r_list = PyList::new(py, r)?; + let py_tuple = PyTuple::new(py, [q_list, r_list])?; Ok(py_tuple.into()) } diff --git a/tools/garaga_rs/src/python_bindings/final_exp_witness.rs b/tools/garaga_rs/src/python_bindings/final_exp_witness.rs index 05626ff8..9495280b 100644 --- a/tools/garaga_rs/src/python_bindings/final_exp_witness.rs +++ b/tools/garaga_rs/src/python_bindings/final_exp_witness.rs @@ -20,6 +20,8 @@ pub fn get_final_exp_witness( let f_11: BigUint = py_list.get_item(11)?.extract()?; let f = [f_0, f_1, f_2, f_3, f_4, f_5, f_6, f_7, f_8, f_9, f_10, f_11]; let (c, wi) = crate::pairing::final_exp_witness::get_final_exp_witness(curve_id, f); - let py_tuple = PyTuple::new_bound(py, [PyList::new_bound(py, c), PyList::new_bound(py, wi)]); - Ok(py_tuple.into()) + let c_list = PyList::new(py, c)?; + let wi_list = PyList::new(py, wi)?; + let py_tuple = PyTuple::new(py, [c_list, wi_list])?; + Ok(Py::from(py_tuple)) } diff --git a/tools/garaga_rs/src/python_bindings/g2.rs b/tools/garaga_rs/src/python_bindings/g2.rs index 6c43b098..a6bc4328 100644 --- a/tools/garaga_rs/src/python_bindings/g2.rs +++ b/tools/garaga_rs/src/python_bindings/g2.rs @@ -27,7 +27,7 @@ pub fn g2_add( Fq2::new(Fq::from(b_2), Fq::from(b_3)), ); let c: G2Affine = (a + b).into(); - let py_tuple = PyTuple::new_bound( + let py_tuple = PyTuple::new( py, [ BigUint::from(c.x.c0.into_bigint()), @@ -36,7 +36,7 @@ pub fn g2_add( BigUint::from(c.y.c1.into_bigint()), ], ); - return Ok(py_tuple.into()); + return Ok(py_tuple?.into_any().into()); } if curve_id == CURVE_BLS12_381 { @@ -50,7 +50,7 @@ pub fn g2_add( Fq2::new(Fq::from(b_2), Fq::from(b_3)), ); let c: G2Affine = (a + b).into(); - let py_tuple = PyTuple::new_bound( + let py_tuple = PyTuple::new( py, [ BigUint::from(c.x.c0.into_bigint()), @@ -59,7 +59,7 @@ pub fn g2_add( BigUint::from(c.y.c1.into_bigint()), ], ); - return Ok(py_tuple.into()); + return Ok(py_tuple?.into()); } panic!("Curve ID {} not supported", curve_id); @@ -85,7 +85,7 @@ pub fn g2_scalar_mul( Fq2::new(Fq::from(a_2), Fq::from(a_3)), ); let c: G2Affine = a.mul_bigint(k.to_u64_digits()).into(); - let py_tuple = PyTuple::new_bound( + let py_tuple = PyTuple::new( py, [ BigUint::from(c.x.c0.into_bigint()), @@ -94,7 +94,7 @@ pub fn g2_scalar_mul( BigUint::from(c.y.c1.into_bigint()), ], ); - return Ok(py_tuple.into()); + return Ok(py_tuple?.into()); } if curve_id == CURVE_BLS12_381 { @@ -104,7 +104,7 @@ pub fn g2_scalar_mul( Fq2::new(Fq::from(a_2), Fq::from(a_3)), ); let c: G2Affine = a.mul_bigint(k.to_u64_digits()).into(); - let py_tuple = PyTuple::new_bound( + let py_tuple = PyTuple::new( py, [ BigUint::from(c.x.c0.into_bigint()), @@ -113,7 +113,7 @@ pub fn g2_scalar_mul( BigUint::from(c.y.c1.into_bigint()), ], ); - return Ok(py_tuple.into()); + return Ok(py_tuple?.into()); } panic!("Curve ID {} not supported", curve_id); diff --git a/tools/garaga_rs/src/python_bindings/groth16_calldata.rs b/tools/garaga_rs/src/python_bindings/groth16_calldata.rs index 858c8b09..ba3e8314 100644 --- a/tools/garaga_rs/src/python_bindings/groth16_calldata.rs +++ b/tools/garaga_rs/src/python_bindings/groth16_calldata.rs @@ -35,6 +35,6 @@ pub fn get_groth16_calldata( ) .map_err(PyErr::new::)?; - let py_list = PyList::new_bound(py, result); - Ok(py_list.into()) + let py_list = PyList::new(py, result); + Ok(py_list?.into()) } diff --git a/tools/garaga_rs/src/python_bindings/hades_permutation.rs b/tools/garaga_rs/src/python_bindings/hades_permutation.rs index e4534952..4386254c 100644 --- a/tools/garaga_rs/src/python_bindings/hades_permutation.rs +++ b/tools/garaga_rs/src/python_bindings/hades_permutation.rs @@ -22,13 +22,12 @@ pub fn hades_permutation( PoseidonCairoStark252::hades_permutation(&mut state); - let py_tuple = PyTuple::new_bound( + let py_tuple = PyTuple::new( py, state.iter().map(|fe| { let fe_bytes = fe.to_bytes_be(); - PyBytes::new_bound(py, &fe_bytes) + PyBytes::new(py, &fe_bytes) }), ); - - Ok(py_tuple.into()) + Ok(py_tuple?.into()) } diff --git a/tools/garaga_rs/src/python_bindings/mpc_calldata.rs b/tools/garaga_rs/src/python_bindings/mpc_calldata.rs index 643b18d3..1a8f0144 100644 --- a/tools/garaga_rs/src/python_bindings/mpc_calldata.rs +++ b/tools/garaga_rs/src/python_bindings/mpc_calldata.rs @@ -20,6 +20,6 @@ pub fn mpc_calldata_builder( curve_id, &values1, n_fixed_g2, &values2, ) .map_err(PyErr::new::)?; - let py_list = PyList::new_bound(py, result); - Ok(py_list.into()) + let py_list = PyList::new(py, result); + Ok(py_list?.into()) } diff --git a/tools/garaga_rs/src/python_bindings/msm.rs b/tools/garaga_rs/src/python_bindings/msm.rs index ef26ea02..c40896c2 100644 --- a/tools/garaga_rs/src/python_bindings/msm.rs +++ b/tools/garaga_rs/src/python_bindings/msm.rs @@ -30,6 +30,6 @@ pub fn msm_calldata_builder( risc0_mode, ) .map_err(PyErr::new::)?; - let py_list = PyList::new_bound(py, result); - Ok(py_list.into()) + let py_list = PyList::new(py, result); + Ok(py_list?.into()) } diff --git a/tools/garaga_rs/src/python_bindings/pairing.rs b/tools/garaga_rs/src/python_bindings/pairing.rs index fcb1e518..de961a0e 100644 --- a/tools/garaga_rs/src/python_bindings/pairing.rs +++ b/tools/garaga_rs/src/python_bindings/pairing.rs @@ -44,8 +44,8 @@ pub fn multi_pairing( BigUint::from(v.c1.c2.c1.into_bigint()), ] } - let py_list = PyList::new_bound(py, to(c.0)); - return Ok(py_list.into()); + let py_list = PyList::new(py, to(c.0)); + return Ok(py_list?.into()); } if curve_id == CURVE_BLS12_381 { @@ -84,8 +84,8 @@ pub fn multi_pairing( BigUint::from(v.c1.c2.c1.into_bigint()), ] } - let py_list = PyList::new_bound(py, to(c.0)); - return Ok(py_list.into()); + let py_list = PyList::new(py, to(c.0)); + return Ok(py_list?.into()); } panic!("Curve ID {} not supported", curve_id); @@ -135,8 +135,8 @@ pub fn multi_miller_loop( BigUint::from(v.c1.c2.c1.into_bigint()), ] } - let py_list = PyList::new_bound(py, to(c.0)); - return Ok(py_list.into()); + let py_list = PyList::new(py, to(c.0)); + return Ok(py_list?.into()); } if curve_id == CURVE_BLS12_381 { @@ -175,8 +175,8 @@ pub fn multi_miller_loop( BigUint::from(v.c1.c2.c1.into_bigint()), ] } - let py_list = PyList::new_bound(py, to(c.0)); - return Ok(py_list.into()); + let py_list = PyList::new(py, to(c.0)); + return Ok(py_list?.into()); } panic!("Curve ID {} not supported", curve_id); diff --git a/tools/garaga_rs/src/wasm_bindings.rs b/tools/garaga_rs/src/wasm_bindings.rs index ebd28aa0..dbae9eaf 100644 --- a/tools/garaga_rs/src/wasm_bindings.rs +++ b/tools/garaga_rs/src/wasm_bindings.rs @@ -1,8 +1,13 @@ +use crate::calldata::full_proof_with_hints::groth16; +use crate::calldata::full_proof_with_hints::groth16::{Groth16Proof, Groth16VerificationKey}; +use crate::calldata::{G1PointBigUint, G2PointBigUint}; +use crate::definitions::CurveID; use crate::definitions::{ToTwistedEdwardsCurve, ToWeierstrassCurve, X25519PrimeField}; use crate::io::{element_from_biguint, element_to_biguint}; +use js_sys::{Array, Uint8Array}; use num_bigint::BigUint; -use std::str::FromStr; -use wasm_bindgen::prelude::*; +use num_traits::Num; +use wasm_bindgen::prelude::*; // Import the Num trait #[wasm_bindgen] pub fn msm_calldata_builder( @@ -71,12 +76,96 @@ fn jsvalue_to_biguint(v: JsValue) -> Result { let s = (JsValue::from_str("") + v) .as_string() .ok_or_else(|| JsValue::from_str("Failed to convert JsValue to string"))?; - BigUint::from_str(&s).map_err(|_| JsValue::from_str("Failed to convert string to BigUint")) + + let (number_str, radix) = if s.starts_with("0x") || s.starts_with("0X") { + // It's a hexadecimal string; remove the '0x' prefix + (&s[2..], 16) + } else { + // Assume it's a decimal string + (s.as_str(), 10) + }; + BigUint::from_str_radix(number_str, radix) + .map_err(|_| JsValue::from_str("Failed to convert string to BigUint")) } fn biguint_to_jsvalue(v: BigUint) -> JsValue { JsValue::bigint_from_str(&v.to_string()) } +// Helper function to get a property from an object +fn get_property(obj: &js_sys::Object, key: &str) -> Result { + js_sys::Reflect::get(obj, &JsValue::from_str(key)) +} + +// Parsing helper for G1PointBigUint +fn parse_g1_point(value: JsValue) -> Result { + let obj = value + .dyn_into::() + .map_err(|_| JsValue::from_str("Failed to parse G1PointBigUint"))?; + + let x = jsvalue_to_biguint(get_property(&obj, "x")?)?; + + let y = jsvalue_to_biguint(get_property(&obj, "y")?)?; + + Ok(G1PointBigUint { x, y }) +} + +// Parsing helper for G2PointBigUint +fn parse_g2_point(value: JsValue) -> Result { + let obj = value + .dyn_into::() + .map_err(|_| JsValue::from_str("Failed to parse G2PointBigUint"))?; + let x_tuple = get_property(&obj, "x")? + .dyn_into::() + .map_err(|_| JsValue::from_str("x is not an array"))?; + let y_tuple = get_property(&obj, "y")? + .dyn_into::() + .map_err(|_| JsValue::from_str("y is not an array"))?; + + let x0 = jsvalue_to_biguint(x_tuple.get(0))?; + let x1 = jsvalue_to_biguint(x_tuple.get(1))?; + + let y0 = jsvalue_to_biguint(y_tuple.get(0))?; + let y1 = jsvalue_to_biguint(y_tuple.get(1))?; + + Ok(G2PointBigUint { x0, x1, y0, y1 }) +} + +// Parsing helper for an array of BigUint +fn parse_biguint_array(value: JsValue) -> Result, JsValue> { + let array = value + .dyn_into::() + .map_err(|_| JsValue::from_str("public_inputs is not an array"))?; + + array + .iter() + .map(|v| { + // let s = v + // .as_string() + // .ok_or_else(|| JsValue::from_str("public_inputs element is not a string"))?; + + // Parse the string into BigUint using the helper function + jsvalue_to_biguint(v) + }) + .collect() +} + +// Parses an array of G1 points from JsValue +fn parse_g1_point_array(value: JsValue) -> Result, JsValue> { + let array = value + .dyn_into::() + .map_err(|_| JsValue::from_str("ic is not an array"))?; + let mut points = Vec::new(); + for i in 0..array.length() { + let point = parse_g1_point(array.get(i))?; + points.push(point); + } + Ok(points) +} + +// Optional parsing helper for Uint8Array +fn parse_optional_uint8_array(value: JsValue) -> Option> { + value.dyn_into::().ok().map(|arr| arr.to_vec()) +} #[wasm_bindgen] pub fn to_weirstrass(x_twisted: JsValue, y_twisted: JsValue) -> Result, JsValue> { @@ -121,10 +210,78 @@ pub fn to_twistededwards( Ok(result) } +#[wasm_bindgen] +pub fn get_groth16_calldata( + proof_js: JsValue, + vk_js: JsValue, + curve_id_js: JsValue, +) -> Result, JsValue> { + let proof_obj = proof_js + .dyn_into::() + .map_err(|_| JsValue::from_str("proof_js is not an object"))?; + let property = get_property(&proof_obj, "a")?; + + let a = parse_g1_point(property)?; + let b = parse_g2_point(get_property(&proof_obj, "b")?)?; + let c = parse_g1_point(get_property(&proof_obj, "c")?)?; + + let public_inputs = parse_biguint_array(get_property(&proof_obj, "publicInputs")?)?; + + let image_id = parse_optional_uint8_array(get_property(&proof_obj, "imageId")?); + let journal = parse_optional_uint8_array(get_property(&proof_obj, "journal")?); + + let proof = Groth16Proof { + a, + b, + c, + public_inputs, + image_id, + journal, + }; + + let vk_obj = vk_js + .dyn_into::() + .map_err(|_| JsValue::from_str("proof_js is not an object"))?; + + let alpha = parse_g1_point(get_property(&vk_obj, "alpha")?)?; + let beta = parse_g2_point(get_property(&vk_obj, "beta")?)?; + let gamma = parse_g2_point(get_property(&vk_obj, "gamma")?)?; + let delta = parse_g2_point(get_property(&vk_obj, "delta")?)?; + let ic = parse_g1_point_array(get_property(&vk_obj, "ic")?)?; + + let vk = Groth16VerificationKey { + alpha, + beta, + gamma, + delta, + ic, + }; + + //Parse curve_id_js into usize + let curve_id_num = curve_id_js + .as_f64() + .ok_or_else(|| JsValue::from_str("curve_id_js is not a number"))? + as usize; + + // Convert usize to CurveID using TryFrom + let curve_id = CurveID::try_from(curve_id_num).map_err(|e| JsValue::from_str(&e))?; + + let groth16_calldata_biguint = groth16::get_groth16_calldata(&proof, &vk, curve_id); + + let groth16_calldata_js = groth16_calldata_biguint? + .into_iter() + .map(biguint_to_jsvalue) + .collect::>(); + + Ok(groth16_calldata_js) +} + +#[allow(dead_code)] #[cfg(test)] mod tests { use super::*; use crate::definitions::CurveParamsProvider; + use js_sys::Object; use num_bigint::BigUint; use wasm_bindgen_test::wasm_bindgen_test; @@ -184,4 +341,146 @@ mod tests { assert_eq!(x_weirstrass, x_weirstrass_back); assert_eq!(y_weirstrass, y_weirstrass_back); } + + #[wasm_bindgen_test] + pub fn test_get_groth16_calldata() { + let proof_js = mock_proof_js(); + assert!(proof_js.is_object(), "Failed to parse proof"); + + let vk_js = mock_vk_js(); + assert!(vk_js.is_object(), "Failed to parse Verifying Key"); + let curve_id_js = JsValue::from_f64(0.0); + + let result = get_groth16_calldata(proof_js, vk_js, curve_id_js); + + assert!( + result.is_ok(), + "Expected successful result, got {:?}", + result + ); + let result_values = result.unwrap(); + + // Add specific assertions here to validate expected output structure or content + assert!( + !result_values.is_empty(), + "Expected non-empty result values" + ); + } + + // Mock helper to create G1 and G2 points as JsValues + fn mock_g1_point(x: &str, y: &str) -> JsValue { + let obj = Object::new(); + js_sys::Reflect::set(&obj, &JsValue::from_str("x"), &JsValue::from_str(x)).unwrap(); + js_sys::Reflect::set(&obj, &JsValue::from_str("y"), &JsValue::from_str(y)).unwrap(); + obj.into() + } + + fn mock_g2_point(x0: &str, x1: &str, y0: &str, y1: &str) -> JsValue { + let obj = Object::new(); + let x_tuple = Array::of2(&JsValue::from_str(x0), &JsValue::from_str(x1)); + let y_tuple = Array::of2(&JsValue::from_str(y0), &JsValue::from_str(y1)); + js_sys::Reflect::set(&obj, &JsValue::from_str("x"), &x_tuple).unwrap(); + js_sys::Reflect::set(&obj, &JsValue::from_str("y"), &y_tuple).unwrap(); + obj.into() + } + + fn mock_proof_js() -> JsValue { + let obj = Object::new(); + js_sys::Reflect::set( + &obj, + &JsValue::from_str("a"), + &mock_g1_point( + "0x2abaae3dd6e4c662f5e071bca525a26d21e2400d01d02c87bce2e8363285990a", + "0x24211ff0aa742a6dd1651aadce6f72757beb89de2cff83a6162de7c15674c2", + ), + ) + .unwrap(); + js_sys::Reflect::set( + &obj, + &JsValue::from_str("b"), + &mock_g2_point( + "0x2335f1564c154d7a2ec5d11faf6d991a205bef2858f1687976d0a46502f5224a", + "0x223af0bb0912d8ebc535ed489d06cd01fcf4a8ab4596cc28164edf9041d97080", + "0x182e8fd86a44983de1d1d9dc4f12f134535b75d39f7aeb21adbf57e1a32ee603", + "0xecb11668a0dd5d5031b0837e62ba14222b45718dc101c1278f44a9ed823c16b", + ), + ) + .unwrap(); + js_sys::Reflect::set( + &obj, + &JsValue::from_str("c"), + &mock_g1_point( + "0x290243624a4c11868e7cb0c0f7cfd690dac08e4205d19795b0a8f686dddcdfd6", + "0x15de00cc8af159fbdbdc802592e83e1ac61a8026b97e8889b8c5def59ec50b16", + ), + ) + .unwrap(); + + let public_inputs = Array::new(); + public_inputs.push(&JsValue::from_str( + "0x1e17db88c1d2e83e49f692cce4bb8169309de90afb2b141156243106aa34b474", + )); + js_sys::Reflect::set(&obj, &JsValue::from_str("publicInputs"), &public_inputs).unwrap(); + + obj.into() + } + + fn mock_vk_js() -> JsValue { + let obj = Object::new(); + js_sys::Reflect::set( + &obj, + &JsValue::from_str("alpha"), + &mock_g1_point( + "0xef3cb41414ad20b4fc5891f6b41a263d9f0c0509ee5ab16f866ff6a33fb9e73", + "0x1b30646c7d96cf7830a42b1f2f7c0527c38601f1030674b0f14cf7c67de5027b", + ), + ) + .unwrap(); + js_sys::Reflect::set( + &obj, + &JsValue::from_str("beta"), + &mock_g2_point( + "0x21f7077b68f4faa9dcbfdc868e9a0b5c76eb0d62b919772a83b34a8bc1108489", + "0x8693a2418c12721dddb0d4f9f3811645c372de7400061b6c6cebc4b3b799bb2", + "0x3062e0c71d392fb15f33a8d7f87bf689709cb28f87d554e29dc92d92d1b0ce46", + "0x4976fda5a1cd2a69e5b4fd77116cf638be2063a3359e40d8f3e8ec0c90ffd90", + ), + ) + .unwrap(); + js_sys::Reflect::set( + &obj, + &JsValue::from_str("gamma"), + &mock_g2_point( + "0x3541dacedd860ef884359c76cc9c6b81d289d3389e732f5f87195d15a4ce637", + "0x2eb7d1fa8416da97272d9cc4aa2e71146c83c13be313e222b376d9a9da02f080", + "0x8dce093ad7f7fe20efcb8bbb160b0f2ecb7cd98a7d48b949e86c8b00eef73f9", + "0x29a4b793edc639746eb4af5910b954a713c49174d917839a146ea15cd7493f1d", + ), + ) + .unwrap(); + js_sys::Reflect::set( + &obj, + &JsValue::from_str("delta"), + &mock_g2_point( + "0x34fc9ba8eba1e49185580c9ee198f6cac8bc78463d786683ef471af4434acdc", + "0x17f115a16975c6f261912be284ecae3a3f0899bb161153d19ebc7f594246b9b0", + "0x17fd1ad43bbc8ef931c92abab72ef0ed83a3c195b4dbc7294e1eacf59b3e2054", + "0x1bd7d75bf918b6766ff9481052ddb780a4cc43da055b6e98c187b34ca3e7cd1b", + ), + ) + .unwrap(); + + let ic_array = Array::new(); + ic_array.push(&mock_g1_point( + "0x124e30bf4dff3ae9c9da665a8bebfd01ce6489a462587fa0f6c879156e7390bc", + "0x1fdc3a96cea49b085e101dd2383fdc600dcb4a3450c0471724e1b022791c7532", + )); + ic_array.push(&mock_g1_point( + "0x164668f89d9d6c6126a8465790ba44ddb5716750edaa0ed100691cceb974c6a1", + "0x1d9c7309625ec7cf153290e7b5c8497412386c61f3d9d0426a702f368be936da", + )); + js_sys::Reflect::set(&obj, &JsValue::from_str("ic"), &ic_array).unwrap(); + + obj.into() + } } diff --git a/tools/make/bytecode_check.sh b/tools/make/bytecode_check.sh index 097478d8..5b1a3303 100755 --- a/tools/make/bytecode_check.sh +++ b/tools/make/bytecode_check.sh @@ -2,11 +2,18 @@ c1="bn254" c2="bls12_381" + + cd src/contracts/groth16_example_$c1 scarb build bytecode_length=$(jq '.bytecode | length' ./target/dev/groth16_example_${c1}_Groth16Verifier${c1^^}.compiled_contract_class.json) echo "Bytecode length BN254: $bytecode_length" +cd ../noir_ultra_keccak_honk_example +scarb build +bytecode_length=$(jq '.bytecode | length' ./target/dev/noir_ultra_keccak_honk_example_UltraKeccakHonkVerifier.compiled_contract_class.json) +echo "Bytecode length NOIR: $bytecode_length" + cd ../groth16_example_$c2 scarb build @@ -23,3 +30,9 @@ cd ../drand_quicknet scarb build bytecode_length=$(jq '.bytecode | length' ./target/dev/drand_quicknet_DrandQuicknet.compiled_contract_class.json) echo "Bytecode length DRAND: $bytecode_length" + + +cd ../risc0_verifier_bn254 +scarb build +bytecode_length=$(jq '.bytecode | length' ./target/dev/risc0_bn254_verifier_Risc0Groth16VerifierBN254.compiled_contract_class.json) +echo "Bytecode length RISC0: $bytecode_length" diff --git a/tools/make/rewrite.sh b/tools/make/rewrite.sh index 8d09ab4d..b69bd121 100755 --- a/tools/make/rewrite.sh +++ b/tools/make/rewrite.sh @@ -3,9 +3,11 @@ rm -rf src/src/circuits/* rm -rf src/contracts/groth16_example_bls12_381/* rm -rf src/contracts/groth16_example_bn254/* rm -rf src/contracts/risc0_verifier_bn254/* +rm -rf src/contracts/noir_ultra_keccak_honk_example/* set -e # Exit immediately if a command exits with a non-zero status +python hydra/garaga/starknet/honk_contract_generator/generator_honk.py || { echo "Error in generator_honk.py"; exit 1; } python hydra/garaga/precompiled_circuits/all_circuits.py || { echo "Error in all_circuits.py"; exit 1; } python hydra/garaga/starknet/tests_and_calldata_generators/test_writer.py || { echo "Error in test_writer.py"; exit 1; } python hydra/garaga/starknet/groth16_contract_generator/generator.py || { echo "Error in generator.py"; exit 1; } diff --git a/tools/make/setup.sh b/tools/make/setup.sh index bd500de1..e937f3bb 100755 --- a/tools/make/setup.sh +++ b/tools/make/setup.sh @@ -101,8 +101,8 @@ echo "All done!" # Check Scarb version and print warning if it's not cd src/ # To use the .tool-versions file with asdf. -if ! scarb --version | grep -q "2.8.2"; then - echo "Warning: Scarb is not installed or its version is not 2.8.2." +if ! scarb --version | grep -q "2.9.1"; then + echo "Warning: Scarb is not installed or its version is not 2.9.1." echo "Got: $(scarb --version)" - echo "Please install Scarb 2.8.2 before continuing. https://docs.swmansion.com/scarb/download.html" + echo "Please install Scarb 2.9.1 before continuing. https://docs.swmansion.com/scarb/download.html" fi diff --git a/tools/noir/hello/Nargo.toml b/tools/noir/hello/Nargo.toml new file mode 100644 index 00000000..974bfa1f --- /dev/null +++ b/tools/noir/hello/Nargo.toml @@ -0,0 +1,7 @@ +[package] +name = "hello" +type = "bin" +authors = [""] +compiler_version = ">=0.36.0" + +[dependencies] diff --git a/tools/noir/hello/Prover.toml b/tools/noir/hello/Prover.toml new file mode 100644 index 00000000..8c12ebba --- /dev/null +++ b/tools/noir/hello/Prover.toml @@ -0,0 +1,2 @@ +x = "1" +y = "2" diff --git a/tools/noir/hello/src/main.nr b/tools/noir/hello/src/main.nr new file mode 100644 index 00000000..3c30bf08 --- /dev/null +++ b/tools/noir/hello/src/main.nr @@ -0,0 +1,11 @@ +fn main(x: Field, y: pub Field) { + assert(x != y); +} + +#[test] +fn test_main() { + main(1, 2); + + // Uncomment to make test fail + // main(1, 1); +} diff --git a/tools/noir/run.sh b/tools/noir/run.sh new file mode 100755 index 00000000..fd16e0dc --- /dev/null +++ b/tools/noir/run.sh @@ -0,0 +1,94 @@ +reset() { + rm -rf hello/ + nargo new hello + cd hello + nargo check + cat << EOF > Prover.toml +x = "1" +y = "2" +EOF + nargo execute witness + cd ../ +} + +reset + + +BB_PATH="bb" + + +echo "nargo version : $(nargo --version)" # 0.36.0 +echo "bb version : $($BB_PATH --version)" # 0.61.0 + + +run_noir_proof_basic() { + cd hello + local suffix="_basic" + $BB_PATH prove -b target/hello.json -w target/witness.gz -o target/proof${suffix}.bin + $BB_PATH write_vk -b target/hello.json -o target/vk${suffix}.bin + if $BB_PATH verify -p target/proof${suffix}.bin -k target/vk${suffix}.bin; then + echo "ok $suffix" + else + echo "Verification failed $suffix" + fi + $BB_PATH contract -k target/vk${suffix}.bin -o target/contract${suffix}.sol + cd ../ +} + +run_noir_proof_ultra() { + cd hello + local suffix="_ultra" + $BB_PATH prove_ultra_honk -b target/hello.json -w target/witness.gz -o target/proof${suffix}.bin + $BB_PATH write_vk_ultra_honk -b target/hello.json -o target/vk${suffix}.bin + if $BB_PATH verify_ultra_honk -p target/proof${suffix}.bin -k target/vk${suffix}.bin; then + echo "ok $suffix" + else + echo "Verification failed $suffix" + fi + $BB_PATH contract_ultra_honk -k target/vk${suffix}.bin -o target/contract${suffix}.sol + cd ../ +} + +run_noir_proof_ultra_keccak() { + cd hello + local suffix="_ultra_keccak" + + $BB_PATH prove_ultra_keccak_honk -b target/hello.json -w target/witness.gz -o target/proof${suffix}.bin + $BB_PATH write_vk_ultra_keccak_honk -b target/hello.json -o target/vk${suffix}.bin + $BB_PATH vk_as_fields_ultra_keccak_honk -b target/hello.json -k target/vk${suffix}.bin -o target/vk_fields${suffix}.bin + + if $BB_PATH verify_ultra_keccak_honk -p target/proof${suffix}.bin -k target/vk${suffix}.bin; then + echo "ok $suffix" + else + echo "Verification failed $suffix" + fi + $BB_PATH contract_ultra_honk -k target/vk${suffix}.bin -o target/contract${suffix}.sol # contract_ultra_keccak_honk does not exist + cd ../ +} + + + + +echo $'\n basic' +# reset +run_noir_proof_basic + +echo $'\n ultra honk' +# reset +run_noir_proof_ultra + +echo $'\n ultra keccak honk' +# reset +run_noir_proof_ultra_keccak + + +echo $'\n' +# Print sha256 hash of of .sol files : +for file in hello/target/*.sol; do + echo $(md5sum $file) +done + +# Print sha256 hash of of .bin files : +for file in hello/target/*.bin; do + echo $(md5sum $file) +done diff --git a/tools/noir/transcript.py b/tools/noir/transcript.py new file mode 100644 index 00000000..670194e1 --- /dev/null +++ b/tools/noir/transcript.py @@ -0,0 +1,662 @@ +x = """received: circuit_size: 32 +received: public_input_size: 1 +received: pub_inputs_offset: 1 +received: public_input_0: 0x0000000000000000000000000000000000000000000000000000000000000002 +received: W_L: { 0x2465e9ff1629df572d7ae9fd1b9bd98946560392b669c03f9a4a496ae7e4cace, 0x17bce8fc74ab3b9430b6485da928ea6951ebee411689e29dc324843ee1708142 } +received: W_R: { 0x0eb93267e664634c1ae1a608b81785cfec11669ee95a1dbc6386717066310cb1, 0x23169272f91d323ced584549d31020c12f7cbf314c309c0ee105c3bbfef28399 } +received: W_O: { 0x0d394ffb5eb2d33c6a2540db125d27fb60665db10ae3f80d91eb189b318d7d58, 0x0a325d606966d0ecbf514d787c3440de179ff8427f66be54fcabe05420fc14d0 } +received: LOOKUP_READ_COUNTS: { 0x0ddfdbbdefc4ac1580ed38e12cfa490d9d719a8b9f020ad3642d60fe704e696f, 0x0ff3e0896bdea021253b3d360fa6788289fe9754ce48cd01b7be96a861b5e157 } +received: LOOKUP_READ_TAGS: { 0x0ddfdbbdefc4ac1580ed38e12cfa490d9d719a8b9f020ad3642d60fe704e696f, 0x0ff3e0896bdea021253b3d360fa6788289fe9754ce48cd01b7be96a861b5e157 } +received: W_4: { 0x0ca7365a8a7d92bd713e8625cde47db105835a557cf68ce01414ede87a1ce97b, 0x26bf12dceab316d64651db4ea03663d3d9478d6ea9a1f20bbe215561e139c7f7 } +received: LOOKUP_INVERSES: { 0x1fad315eb3f489658734a3aff63bfb846255a077783e50444d60ac2b104b1ad4, 0x1067a4d8157c660c69e7022dd32ab0e30dd9987dae02f54e15edab896b9469a2 } +received: Z_PERM: { 0x069b493db1ad1bcb140505bc5a806d425af4e78b20794bc813a7669eba382a02, 0x2d6c35a33c91dd52432099ee20f87ed823919ed60347a56b4678b3a485e58197 } +challenge: Sumcheck:gate_challenge_0: 0x00000000000000000000000000000000c172dd2450a5c43df9f45a102035f4aa +challenge: Sumcheck:gate_challenge_1: 0x00000000000000000000000000000000d9e8e31dd1bf34b1fd2c8dc378718bad +challenge: Sumcheck:gate_challenge_2: 0x000000000000000000000000000000003b18273b302fc3f7e291bde9e8f657af +challenge: Sumcheck:gate_challenge_3: 0x0000000000000000000000000000000063851884d3d82ee17736f752da9bac35 +challenge: Sumcheck:gate_challenge_4: 0x00000000000000000000000000000000f209bde7aca3c49f2cadbe4dca83dde9 +challenge: Sumcheck:gate_challenge_5: 0x0000000000000000000000000000000069f14a768158343825c27a938fbf36b5 +challenge: Sumcheck:gate_challenge_6: 0x00000000000000000000000000000000ec589c20c082a8bbc2a5358dffcbb029 +challenge: Sumcheck:gate_challenge_7: 0x00000000000000000000000000000000cbc709637c971ff0235b30e22631d7c4 +challenge: Sumcheck:gate_challenge_8: 0x00000000000000000000000000000000b21375f2d73fe9a9b9a0bc6ec2572958 +challenge: Sumcheck:gate_challenge_9: 0x00000000000000000000000000000000245b66aebdb626945436091e17da60ac +challenge: Sumcheck:gate_challenge_10: 0x0000000000000000000000000000000062d7e222920e40d2706978b2e032cef5 +challenge: Sumcheck:gate_challenge_11: 0x00000000000000000000000000000000d7f22806ba3855643a24874eacad3416 +challenge: Sumcheck:gate_challenge_12: 0x00000000000000000000000000000000471214514009909e9ab6cb05b004dcd2 +challenge: Sumcheck:gate_challenge_13: 0x00000000000000000000000000000000c5ea117fcb3a2986a4a0a3b2524e8cda +challenge: Sumcheck:gate_challenge_14: 0x00000000000000000000000000000000c83493ac2556971a3705619eb92a536f +challenge: Sumcheck:gate_challenge_15: 0x00000000000000000000000000000000c5830917428e1bac8ddffd2455fd95a4 +challenge: Sumcheck:gate_challenge_16: 0x00000000000000000000000000000000c285c631c4c8da6a4878d427ab0ee02e +challenge: Sumcheck:gate_challenge_17: 0x00000000000000000000000000000000bf75c5b1da0b6a57af698f776b4739ab +challenge: Sumcheck:gate_challenge_18: 0x00000000000000000000000000000000276eccfb8e82d126f2c292d9708dd761 +challenge: Sumcheck:gate_challenge_19: 0x000000000000000000000000000000009476a0a387149c8d1b78a58476b9efff +challenge: Sumcheck:gate_challenge_20: 0x000000000000000000000000000000007ffa377781a42d05905df51f7fe83dff +challenge: Sumcheck:gate_challenge_21: 0x00000000000000000000000000000000be0897e28f22aaf3c50014d76d49f4a0 +challenge: Sumcheck:gate_challenge_22: 0x0000000000000000000000000000000062bcad183fec3655f642f8bd33895c5f +challenge: Sumcheck:gate_challenge_23: 0x000000000000000000000000000000002cd23571aaa192e5525b3f440c21946d +challenge: Sumcheck:gate_challenge_24: 0x00000000000000000000000000000000abc55392a196f776e4e6c843c9076946 +challenge: Sumcheck:gate_challenge_25: 0x00000000000000000000000000000000609cc20bb22f811a3c24e0c1f20deb03 +challenge: Sumcheck:gate_challenge_26: 0x0000000000000000000000000000000015356ea3058bd02736fc6ee7fae12b0d +challenge: Sumcheck:gate_challenge_27: 0x00000000000000000000000000000000dee13f4571cd5267161d943456bc803b +challenge: Sumcheck:u_0: 0x00000000000000000000000000000000e61948888da551fcbd6481a7af8cf0c0 +challenge: Sumcheck:u_1: 0x000000000000000000000000000000001bc9a638f9f0e48211e06f74fdc4ee30 +challenge: Sumcheck:u_2: 0x00000000000000000000000000000000b0494ceda348dd1ad61845b2820bb7a4 +challenge: Sumcheck:u_3: 0x00000000000000000000000000000000e1a0fcc92b7bfa7d75edec03b2500e70 +challenge: Sumcheck:u_4: 0x0000000000000000000000000000000049f16b7a01ed1d92bea9852b447cbbfa +challenge: Sumcheck:u_5: 0x00000000000000000000000000000000b05ec1b687b95e039f37a9c102b6faa1 +challenge: Sumcheck:u_6: 0x0000000000000000000000000000000093f8c2d82054794f1d9bc5016a00093f +challenge: Sumcheck:u_7: 0x0000000000000000000000000000000059690cf79013abb0d194ec0d621435cb +challenge: Sumcheck:u_8: 0x00000000000000000000000000000000b092f424ff1f2dc7e55a9aec2bcd1b6a +challenge: Sumcheck:u_9: 0x00000000000000000000000000000000b41ba16fc7d5b8771894145a6a4a3653 +challenge: Sumcheck:u_10: 0x00000000000000000000000000000000b7b0adaf7d801bae84bb10e77898104f +challenge: Sumcheck:u_11: 0x00000000000000000000000000000000dcc650724f78f5544d9e4104c0c66049 +challenge: Sumcheck:u_12: 0x000000000000000000000000000000009372338e1b74cefc0a9297fb6c9cdf2f +challenge: Sumcheck:u_13: 0x00000000000000000000000000000000e7caf286270a5faab65e811c41b651ec +challenge: Sumcheck:u_14: 0x00000000000000000000000000000000c3ecafac87e8f09ca2d644596fdf1843 +challenge: Sumcheck:u_15: 0x00000000000000000000000000000000680091c031e3e54068f30b1abbba4032 +challenge: Sumcheck:u_16: 0x00000000000000000000000000000000e923e5d1a9f802c0de0263b0847a98a7 +challenge: Sumcheck:u_17: 0x0000000000000000000000000000000001e082dbe7f823be4a12dc7fc18ff4ba +challenge: Sumcheck:u_18: 0x00000000000000000000000000000000f97bd808c15fcecef5eafa333438370b +challenge: Sumcheck:u_19: 0x00000000000000000000000000000000dfdcaff7ed6c257079dce44b5d1ad9d1 +challenge: Sumcheck:u_20: 0x000000000000000000000000000000004cc20354eac16fac6ebafb10cd388f45 +challenge: Sumcheck:u_21: 0x00000000000000000000000000000000d0c31e08a9ca0944d44537b854c011da +challenge: Sumcheck:u_22: 0x0000000000000000000000000000000065969933912dedee841ad8a92c062c7b +challenge: Sumcheck:u_23: 0x000000000000000000000000000000009ee2e4b83c5e0156a4902309cc087a9a +challenge: Sumcheck:u_24: 0x0000000000000000000000000000000011e8bfbd21b91ca1bee77a21bbc35be8 +challenge: Sumcheck:u_25: 0x0000000000000000000000000000000010a6c496ccd27e38f0b8649a9470389f +challenge: Sumcheck:u_26: 0x0000000000000000000000000000000048effcc28eda12ce3859196ddc398c76 +challenge: Sumcheck:u_27: 0x00000000000000000000000000000000c44b6fe342b5502bf9b7416f1f257b2e +challenge: rho: 0x00000000000000000000000000000000a4bb7935b0320a044f9a06e7ce23f501 +received: Gemini:FOLD_1: { 0x0030f6ead299b812a9d0e34913e4897baa11cec4f4364333bd02c3ddb15b2796, 0x0e2c88de5ecff9e5e57f587f11a581f95e8311abc9cbc8b79f71f5043aa54178 } +received: Gemini:FOLD_2: { 0x24c191be28e3c61bc03e45da0e82ef589a4e35476322229e437e049dbdf633a9, 0x190ea556eee073ab057011ff249806fce345419ce1c38dc47e6eac312132d8c0 } +received: Gemini:FOLD_3: { 0x0dca2271951c15f10fe1bd6b142ae96d710cbe11e7f67b885ba8cf553f9b7a89, 0x222d3b8adfc808eccc9b6be870295d686f2f78a47a20070faa67ac921a0d62ec } +received: Gemini:FOLD_4: { 0x03518fba7088a6f8103d8bc2f72a67a68cff759c9e8e70071a0c0d67a89bd684, 0x2796e48e3909df2b389f68123329adb1994e35d6faad76671de81ead27b3bef0 } +received: Gemini:FOLD_5: { 0x0000000000000000000000000000000000000000000000000000000000000001, 0x0000000000000000000000000000000000000000000000000000000000000002 } +received: Gemini:FOLD_6: { 0x0000000000000000000000000000000000000000000000000000000000000001, 0x0000000000000000000000000000000000000000000000000000000000000002 } +received: Gemini:FOLD_7: { 0x0000000000000000000000000000000000000000000000000000000000000001, 0x0000000000000000000000000000000000000000000000000000000000000002 } +received: Gemini:FOLD_8: { 0x0000000000000000000000000000000000000000000000000000000000000001, 0x0000000000000000000000000000000000000000000000000000000000000002 } +received: Gemini:FOLD_9: { 0x0000000000000000000000000000000000000000000000000000000000000001, 0x0000000000000000000000000000000000000000000000000000000000000002 } +received: Gemini:FOLD_10: { 0x0000000000000000000000000000000000000000000000000000000000000001, 0x0000000000000000000000000000000000000000000000000000000000000002 } +received: Gemini:FOLD_11: { 0x0000000000000000000000000000000000000000000000000000000000000001, 0x0000000000000000000000000000000000000000000000000000000000000002 } +received: Gemini:FOLD_12: { 0x0000000000000000000000000000000000000000000000000000000000000001, 0x0000000000000000000000000000000000000000000000000000000000000002 } +received: Gemini:FOLD_13: { 0x0000000000000000000000000000000000000000000000000000000000000001, 0x0000000000000000000000000000000000000000000000000000000000000002 } +received: Gemini:FOLD_14: { 0x0000000000000000000000000000000000000000000000000000000000000001, 0x0000000000000000000000000000000000000000000000000000000000000002 } +received: Gemini:FOLD_15: { 0x0000000000000000000000000000000000000000000000000000000000000001, 0x0000000000000000000000000000000000000000000000000000000000000002 } +received: Gemini:FOLD_16: { 0x0000000000000000000000000000000000000000000000000000000000000001, 0x0000000000000000000000000000000000000000000000000000000000000002 } +received: Gemini:FOLD_17: { 0x0000000000000000000000000000000000000000000000000000000000000001, 0x0000000000000000000000000000000000000000000000000000000000000002 } +received: Gemini:FOLD_18: { 0x0000000000000000000000000000000000000000000000000000000000000001, 0x0000000000000000000000000000000000000000000000000000000000000002 } +received: Gemini:FOLD_19: { 0x0000000000000000000000000000000000000000000000000000000000000001, 0x0000000000000000000000000000000000000000000000000000000000000002 } +received: Gemini:FOLD_20: { 0x0000000000000000000000000000000000000000000000000000000000000001, 0x0000000000000000000000000000000000000000000000000000000000000002 } +received: Gemini:FOLD_21: { 0x0000000000000000000000000000000000000000000000000000000000000001, 0x0000000000000000000000000000000000000000000000000000000000000002 } +received: Gemini:FOLD_22: { 0x0000000000000000000000000000000000000000000000000000000000000001, 0x0000000000000000000000000000000000000000000000000000000000000002 } +received: Gemini:FOLD_23: { 0x0000000000000000000000000000000000000000000000000000000000000001, 0x0000000000000000000000000000000000000000000000000000000000000002 } +received: Gemini:FOLD_24: { 0x0000000000000000000000000000000000000000000000000000000000000001, 0x0000000000000000000000000000000000000000000000000000000000000002 } +received: Gemini:FOLD_25: { 0x0000000000000000000000000000000000000000000000000000000000000001, 0x0000000000000000000000000000000000000000000000000000000000000002 } +received: Gemini:FOLD_26: { 0x0000000000000000000000000000000000000000000000000000000000000001, 0x0000000000000000000000000000000000000000000000000000000000000002 } +received: Gemini:FOLD_27: { 0x0000000000000000000000000000000000000000000000000000000000000001, 0x0000000000000000000000000000000000000000000000000000000000000002 } +challenge: Gemini:r: 0x000000000000000000000000000000007f80d41613ee8455f306ecb97366f6fb +received: Gemini:a_1: 0x06d88005bac7d50eaf47b0321f0075d0892f453254935ef79c503047f177ac3c +received: Gemini:a_2: 0x1f22b729740dcd28043721670fa5c3f6ec7c6e8f7150848eb590a57bb2c774a1 +received: Gemini:a_3: 0x27af7bd3cb339be63a51d2305fc2ddf2c887b0a59511ec160aacec44308c9ffd +received: Gemini:a_4: 0x16368d4a8fc2dee62530847567ad8d75ecd96aaa541c487628f56c47c5bb1771 +received: Gemini:a_5: 0x0e405cd6caac953006162d7c72468986e014792ee1e09e041c69bea39def7c6d +received: Gemini:a_6: 0x0000000000000000000000000000000000000000000000000000000000000000 +received: Gemini:a_7: 0x0000000000000000000000000000000000000000000000000000000000000000 +received: Gemini:a_8: 0x0000000000000000000000000000000000000000000000000000000000000000 +received: Gemini:a_9: 0x0000000000000000000000000000000000000000000000000000000000000000 +received: Gemini:a_10: 0x0000000000000000000000000000000000000000000000000000000000000000 +received: Gemini:a_11: 0x0000000000000000000000000000000000000000000000000000000000000000 +received: Gemini:a_12: 0x0000000000000000000000000000000000000000000000000000000000000000 +received: Gemini:a_13: 0x0000000000000000000000000000000000000000000000000000000000000000 +received: Gemini:a_14: 0x0000000000000000000000000000000000000000000000000000000000000000 +received: Gemini:a_15: 0x0000000000000000000000000000000000000000000000000000000000000000 +received: Gemini:a_16: 0x0000000000000000000000000000000000000000000000000000000000000000 +received: Gemini:a_17: 0x0000000000000000000000000000000000000000000000000000000000000000 +received: Gemini:a_18: 0x0000000000000000000000000000000000000000000000000000000000000000 +received: Gemini:a_19: 0x0000000000000000000000000000000000000000000000000000000000000000 +received: Gemini:a_20: 0x0000000000000000000000000000000000000000000000000000000000000000 +received: Gemini:a_21: 0x0000000000000000000000000000000000000000000000000000000000000000 +received: Gemini:a_22: 0x0000000000000000000000000000000000000000000000000000000000000000 +received: Gemini:a_23: 0x0000000000000000000000000000000000000000000000000000000000000000 +received: Gemini:a_24: 0x0000000000000000000000000000000000000000000000000000000000000000 +received: Gemini:a_25: 0x0000000000000000000000000000000000000000000000000000000000000000 +received: Gemini:a_26: 0x0000000000000000000000000000000000000000000000000000000000000000 +received: Gemini:a_27: 0x0000000000000000000000000000000000000000000000000000000000000000 +received: Gemini:a_28: 0x0000000000000000000000000000000000000000000000000000000000000000 +challenge: Shplonk:nu: 0x000000000000000000000000000000009f8c2321fe0106bf29aaadc94f24dea6 +received: Shplonk:Q: { 0x1e3ce2491c516e0e06eaa5dcad936bce2677c1867be2aeb5720375ffc79b6e21, 0x0d1133764157bc108c1e4e201a02968887c77e16afdbb635b2729af6424c9e9e } +challenge: Shplonk:z: 0x00000000000000000000000000000000d704d217bac677a48ad056c8aa8f9e44 +received: KZG:W: { 0x1068dd1d211c8b30fdbfa561f69a4d062daa8998dd609fd7de22ed5babb86c4b, 0x216af708e0184bcac66514720a6bffaa7fee53f2f7ae34dc374df8ede0c3c09b } +""" + +# print(x) + + +# Initialize an empty list to store the processed data +processed_data = [] +lines = x.strip().split("\n") + +# Iterate over each line + +# Iterate over each line +# ... existing code ... + +# Initialize an empty dictionary to store the processed data +processed_data = {} +lines = x.strip().split("\n") + +# Iterate over each line +for line in lines: + # Split the line into key and value based on the first occurrence of ': ' + print(f"Processing line: {line}") + parts = line.split(": ", 2) + print(f"Parts: {parts}") + op, key, value = parts + print(f"Op: {op}, Key: {key}, Value: {value}") + +# Print the processed data to verify +print(processed_data) + + +import os + +cwd = os.path.dirname(os.path.abspath(__file__)) +proof_bytes: bytes = open(f"{cwd}/hello/target/proof_ultra_keccak.bin", "rb").read() +vk_bytes: bytes = open(f"{cwd}/hello/target/vk_ultra_keccak.bin", "rb").read() +# print(proof_bytes.hex()) + + +proof = [ + 0x0000000000000000000000000000000000000000000000000000000000000020, + 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000008946560392B669C03F9A4A496AE7E4CACE, + 0x00000000000000000000000000000000002465E9FF1629DF572D7AE9FD1B9BD9, + 0x0000000000000000000000000000006951EBEE411689E29DC324843EE1708142, + 0x000000000000000000000000000000000017BCE8FC74AB3B9430B6485DA928EA, + 0x000000000000000000000000000000CFEC11669EE95A1DBC6386717066310CB1, + 0x00000000000000000000000000000000000EB93267E664634C1AE1A608B81785, + 0x000000000000000000000000000000C12F7CBF314C309C0EE105C3BBFEF28399, + 0x000000000000000000000000000000000023169272F91D323CED584549D31020, + 0x000000000000000000000000000000FB60665DB10AE3F80D91EB189B318D7D58, + 0x00000000000000000000000000000000000D394FFB5EB2D33C6A2540DB125D27, + 0x000000000000000000000000000000DE179FF8427F66BE54FCABE05420FC14D0, + 0x00000000000000000000000000000000000A325D606966D0ECBF514D787C3440, + 0x0000000000000000000000000000000D9D719A8B9F020AD3642D60FE704E696F, + 0x00000000000000000000000000000000000DDFDBBDEFC4AC1580ED38E12CFA49, + 0x0000000000000000000000000000008289FE9754CE48CD01B7BE96A861B5E157, + 0x00000000000000000000000000000000000FF3E0896BDEA021253B3D360FA678, + 0x0000000000000000000000000000000D9D719A8B9F020AD3642D60FE704E696F, + 0x00000000000000000000000000000000000DDFDBBDEFC4AC1580ED38E12CFA49, + 0x0000000000000000000000000000008289FE9754CE48CD01B7BE96A861B5E157, + 0x00000000000000000000000000000000000FF3E0896BDEA021253B3D360FA678, + 0x000000000000000000000000000000B105835A557CF68CE01414EDE87A1CE97B, + 0x00000000000000000000000000000000000CA7365A8A7D92BD713E8625CDE47D, + 0x000000000000000000000000000000D3D9478D6EA9A1F20BBE215561E139C7F7, + 0x000000000000000000000000000000000026BF12DCEAB316D64651DB4EA03663, + 0x000000000000000000000000000000846255A077783E50444D60AC2B104B1AD4, + 0x00000000000000000000000000000000001FAD315EB3F489658734A3AFF63BFB, + 0x000000000000000000000000000000E30DD9987DAE02F54E15EDAB896B9469A2, + 0x00000000000000000000000000000000001067A4D8157C660C69E7022DD32AB0, + 0x000000000000000000000000000000425AF4E78B20794BC813A7669EBA382A02, + 0x0000000000000000000000000000000000069B493DB1AD1BCB140505BC5A806D, + 0x000000000000000000000000000000D823919ED60347A56B4678B3A485E58197, + 0x00000000000000000000000000000000002D6C35A33C91DD52432099EE20F87E, + 0x0285E5FF7D3C0D15F59C2761A965696BF749065FE4CAC90B7C5310AFB3DF3B3B, + 0x2DDE687363F59313C2B41E54D81BEEF130EAE1E894EEA785C78EE4E43C20C4C6, + 0x013C19D3E42C8B355492F1D756884DEA3957B5BF6E2E8193FFB4E7FC3F158EFC, + 0x1E4D71CFFDC20A5A19DD68D4CFE2CDF067A2AA1F44B89CECAB6CAAF55DAE3417, + 0x1907EC4E632967F4F16250F16FA97EC7C9E8D7B72FEC50A60ADF7F77E14FB1B5, + 0x125582C3C04F25EF9B7C841EDC3A461F112E792FED4296F2BCC67372E41BFAA3, + 0x23F1075C04D207789C601197BE8D38A22A11E5D035BCE960F9DC69BAA6AF03C2, + 0x12895DCC211378D9EB6614866AA0BB1A8CF720EE34451EFCD92DC82C43504C13, + 0x2280F8067080C8F83123F8D052B5A181C0A5F3BAA905F42D4549057585E69821, + 0x078DC17E403E81E7ABB5353B62A897955E9596F56744CD931E7063F7937418D9, + 0x1E2C998E66E78DBFB4BB9658D8637F618BAF885995FBD76D7922CC4E26DBA669, + 0x262CD1B8FDC741C2073C3C669B12E6DEAC6705F6214410306A8ECC6BDBEC8D71, + 0x2228B8DCA9925FEE72E5587E58BAFBD45947C386446F3BDB63C4E010D72A0E56, + 0x2BDA190568FDECABB525A7745C2D7D5242F264DAEEF67F932268E72B5ADCF6D1, + 0x04266918448A9EC8CAC8F881C0BC1BA9C42959111B9F2991C93B169F38DCA51A, + 0x1150A038BBADB896D080E0158F85E7B0DF710C1910A6503774BDCF08EF39A393, + 0x092A9FD6FE59243760042DDCAF85DCF2C9268E52C5208D75CB9125B2DAA42700, + 0x123D711E98A50C8EEF600161BC486D62069E13AD4D12064603D30E8F2D6E5265, + 0x25B58D132934AFDCCC480A8C964E477B88CBAFDF91370EE9B4B4A1CC2E4E1A8E, + 0x1537803983A0459D1E3ED61AA59CBF0856A2A510DF7901046B79A4257A9FCB30, + 0x13C08CF9426D1E2F7E132E9C6E13E8B93B6905CCC539CB357E69E0F5D66DDFD7, + 0x1F1CC54B85B64DB929DAF476A572212D852AD2E7666921E603BB50A1097C870F, + 0x17CFEB6AB26A28116FE3D4B5156C1512223D86E3528CD667536F1C170A4CB755, + 0x1610C336FC031BE68C629C990E755AFCBB43E7630726AF1DFB32FF7DE2A1F903, + 0x078C2E9FCB11A9FF1DABDC022F77C29A52FF10E9BFC25A8E1C2F38EEB9A7B314, + 0x24DF74453B540FC68C0A5BD1C618D3CCF49E7513983CD8FD4CF0899AD5CEF4E2, + 0x252ED9CD7EF0D0E60AA1B3FED302A1314450EDF6EBCE5036CC81B5F21F166A35, + 0x27B4EF390BAA1C9773A170AC64B0DEA0DFD02FBE3A43D8061E77C487EF097245, + 0x25B39250035EBE1756EC1085919D0A90A973AAFCDC1B4CC77844DC81C81F017E, + 0x28B32EE8F4DD8C62DE8140DD3730FC52DE4ABC0CAB9289BCEEFFB1469484B318, + 0x053B798117B11AEE0C5BCCFB2A8D926DD45C7B3F560F8D3133D42F4DEAB22D45, + 0x09EACAB815D72783FDF291121BE7AF695260916F8F9BD74B980317F9C6FF4CEA, + 0x22FD30A934D68C2B3D1763E038F5F41EAAEFA2311ABBE8E38F00A4EDC500B322, + 0x062E1857E2ED5546CE6EC7B4E2210329EB169F5695E3A04D48ACF52F5359E55D, + 0x0BA09B18683D296CF830D2DA7515D381E431FE1AC792C3117007DD2E7AD8DE35, + 0x16BF0A5F2ABCE1FDC44461687D611EF8B4A2B538249FEC1D8D32F25C3325AE4F, + 0x090D1AABADA01C6D1EF8E122169F88BC36D80462934AC786ED7F63568A815F72, + 0x263A15EB7A5D4DA20CD74BDA64ACD6BFD515FD57E001F571EE7F25DBBC819935, + 0x1A6DA135C8B1C95F0EBAC3186421C4BF62C71F27FE9B2E34279AFE65270E21A0, + 0x2D928D40BC62836DA72EADCED3C96F846CF0440B939D746DB2A987E41F8B7356, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x1A06A87012710FD1C416EE0A81DE014DC12DA6BD44C812868D4D8D91705294F3, + 0x2012AFA46741D05CB85C40093907ABDB7574BF246DE6693C0BCB500C024BED49, + 0x016D2DCCA0C4C5DD38A1CBDF00F94CC0F41954AE8A21B2EF2BAFB8007F380EF1, + 0x1D767C5DBAC46EBF8A7013691EA0891882B5007674B35BBFDE9CD4BC2E527A32, + 0x2072966D339011498D1331276EEE58F2716229236F13D7AC10775B81A2C70271, + 0x29615ADFDC896C3C4BC11A471FDDEA935DE1DBCC34695ACB83BC52C1535A1FC7, + 0x1CBD3ABDDB824AAB725A3E87F5202AECF7A87932DD8CD8AA01E86841F2025A5B, + 0x2197C5A29E67EBCE890221A058378114009B563C25A66C334DE5A6F8DCC53094, + 0x109D8838A44B820B35B284797BAA972B32ECAC1E785C28BF6FD46F538EF657CB, + 0x0C5CE9A7DBA32F117596969C584075BA0BE089B3179250B54B4DE0F8B82306C9, + 0x136B79129F5CBBEE2AC685099E0182BBF1B19D1A71CE8E1C988B096F63E63C9B, + 0x09EBDA9FBB822762ED663D8F2900916556FD179EAAA9EA934B7E8A7D20E3E63B, + 0x219F37DEDD2FEB7E2FC8732FF3A4F9744A0ADE748CC5DED5871788B08161F1BA, + 0x1CBE60346ABB4BB1E5A18F5A3AE1BEBB0131281BC771E514646801BCAAAA7B19, + 0x25C6182D057785E9974B649D809BA61F02F1B57F0285524F7FCFD846DAE74449, + 0x0EC9D62836ACB4405A03D4B6DE597612AB38A7D4D7DB95C84B63AC9FED6E8E64, + 0x0B7C8F939F6FA71843EFCEA2C04A8039A8F7B8FDD6626709C4AA17AB385349D9, + 0x1654259AFE3AFFE4832121F56A178087DBCCABB19B86C25505A81BEFE75C45FE, + 0x172C26EC9DC7BA6A44A801982A38DF0D66E7F0FBA528D13F8044E081BC42B50F, + 0x28119325D0559D33E0EBD0D8A0DA55FF95092C22605A33B36CF68B61D065F7B0, + 0x0000000000000000000000000000000F8AF0669A895C3C83D38E2A2D8D91DF30, + 0x0A30795CCB3A688C8FA73E641B6B9378C6B16EE60E343B7956D76425403AC5E7, + 0x2B0BB083AB6D90DDD5E5A21825F3A617262BC47AA93F52A20D3264284B311BB4, + 0x1EB2D76140D9256752BA21EF4ED4EE8EF021591A723B15889A1E188E2333F3A9, + 0x0370704ED29ED5BA64B5690F3BAC66B1FD991F58B9DF2D5485C44A2880717AB2, + 0x26F2FF7FC2B01CEF7D34571CF0E6C1EFABB0F52FA3ABC4E240AC5B74EC777AEB, + 0x2D545B9152DB90404ECFAA00E4AFE0D028F91370F587E97944335CF752030EEA, + 0x182530062026DCA5E7F8FAE24AC91EEFBAA64CADD9FD5CE77EDB9A993AAD6024, + 0x2334E657023EBE2D46FD71AF9CA0D42089AE8B1B3025926E1E090E6425232ED4, + 0x04880BBFA8D664F43A1987A81D17C5346EB08BF4E2471146E1F501B38A6EF8A8, + 0x23426D30A8D4E7874C7835E9D8B5365BFC06A64AEEA18FCEDB89271B35A1B490, + 0x177AB630E0A4FB877DB50B2A8A06E7DBC4B5EE690ED3276E50CDEB10C53FA882, + 0x1D288D5D4BB236954164D2DB3BB053A79A18BDF2E29D1A0D148FEBA5E6807A9E, + 0x06BA070D3082E755A2F0477735BCD07D421B38DB6BABB576CAC465D1524CCCAF, + 0x06BA070D3082E755A2F0477735BCD07D421B38DB6BABB576CAC465D1524CCCAF, + 0x27C81BC615A22ABF1FAC518DD5E5989568A6C1A9E01C232DCE80FCAAE6D2483D, + 0x161FFED97D6DE369AD85A1F0ECE8A2B78C2AD4C18E3CE0AA68970A210FC8CDAC, + 0x0F4AB79878C744DC417E449D77D865F631040751C61751F26A5C47CC6103394C, + 0x104A5D1F1FCDDCE2DAA6E7F1AB0C26493E2A01E32DEDF0FB4FE5E1330EB8298F, + 0x0185AA4D67DFC4877AEA3C4019CDC087B504D06BDB54709C5A9E535E0A1001F6, + 0x13F4DBCB20E54A15649D2A911E55E4148FDFCEB790222F87F2870EA0F2FAEA7A, + 0x182C615F4962DD5E9E2BCAA2148668C2967B30CBDE78CDD953D5EFA1EE7305E7, + 0x10E60EADF16DA6AE5691B91F92BEF89BA9C5A60574F6B23F8AC6FC39B0D73141, + 0x12CEBF3DA6A166ED7F43F707C64CB377F4CF76063F8C5AFE9FB5A52C612E4CAE, + 0x0000000000000000000000000000007BAA11CEC4F4364333BD02C3DDB15B2796, + 0x00000000000000000000000000000000000030F6EAD299B812A9D0E34913E489, + 0x000000000000000000000000000000F95E8311ABC9CBC8B79F71F5043AA54178, + 0x00000000000000000000000000000000000E2C88DE5ECFF9E5E57F587F11A581, + 0x000000000000000000000000000000589A4E35476322229E437E049DBDF633A9, + 0x000000000000000000000000000000000024C191BE28E3C61BC03E45DA0E82EF, + 0x000000000000000000000000000000FCE345419CE1C38DC47E6EAC312132D8C0, + 0x0000000000000000000000000000000000190EA556EEE073AB057011FF249806, + 0x0000000000000000000000000000006D710CBE11E7F67B885BA8CF553F9B7A89, + 0x00000000000000000000000000000000000DCA2271951C15F10FE1BD6B142AE9, + 0x000000000000000000000000000000686F2F78A47A20070FAA67AC921A0D62EC, + 0x0000000000000000000000000000000000222D3B8ADFC808ECCC9B6BE870295D, + 0x000000000000000000000000000000A68CFF759C9E8E70071A0C0D67A89BD684, + 0x000000000000000000000000000000000003518FBA7088A6F8103D8BC2F72A67, + 0x000000000000000000000000000000B1994E35D6FAAD76671DE81EAD27B3BEF0, + 0x00000000000000000000000000000000002796E48E3909DF2B389F68123329AD, + 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x06D88005BAC7D50EAF47B0321F0075D0892F453254935EF79C503047F177AC3C, + 0x1F22B729740DCD28043721670FA5C3F6EC7C6E8F7150848EB590A57BB2C774A1, + 0x27AF7BD3CB339BE63A51D2305FC2DDF2C887B0A59511EC160AACEC44308C9FFD, + 0x16368D4A8FC2DEE62530847567AD8D75ECD96AAA541C487628F56C47C5BB1771, + 0x0E405CD6CAAC953006162D7C72468986E014792EE1E09E041C69BEA39DEF7C6D, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x0000000000000000000000000000000000000000000000000000000000000000, + 0x000000000000000000000000000000CE2677C1867BE2AEB5720375FFC79B6E21, + 0x00000000000000000000000000000000001E3CE2491C516E0E06EAA5DCAD936B, + 0x0000000000000000000000000000008887C77E16AFDBB635B2729AF6424C9E9E, + 0x00000000000000000000000000000000000D1133764157BC108C1E4E201A0296, + 0x000000000000000000000000000000062DAA8998DD609FD7DE22ED5BABB86C4B, + 0x00000000000000000000000000000000001068DD1D211C8B30FDBFA561F69A4D, + 0x000000000000000000000000000000AA7FEE53F2F7AE34DC374DF8EDE0C3C09B, + 0x0000000000000000000000000000000000216AF708E0184BCAC66514720A6BFF, +] + + +print(len(proof)) + +# Assert it's a multiple of 32 bytes +# assert len(proof) % 32 == 0, f"Proof is not a multiple of 32 bytes: {len(proof)}" + + +def deserialize_ultraproof(proof: bytes) -> list[int]: + # Extract # of field elements from the first 4 bytes : + num_field_elements = int.from_bytes(proof[:4], "big") + + assert len(proof[4:]) % 32 == 0 + # Deserialize the rest of the proof + return [int.from_bytes(proof[i : i + 32], "big") for i in range(4, len(proof), 32)] + + +assert deserialize_ultraproof(proof_bytes) == proof + + +from garaga.precompiled_circuits.honk import HonkProof, HonkTranscript, HonkVk + +for i, elmt in enumerate(proof): + print(f"element {i}: {hex(elmt)}") + + +pproof = HonkProof.from_bytes(proof_bytes) + +# print(pproof) + + +transcript = HonkTranscript.from_proof(pproof) + +# print(transcript) + +print(vk_bytes) +print(vk_bytes.hex()) +vk = HonkVk.from_bytes(vk_bytes) + +print(f"vk: {vk}") +# print(pproof) + + +print(vk.serialize_to_cairo()) diff --git a/tools/npm/garaga_ts/babel.config.cjs b/tools/npm/garaga_ts/babel.config.cjs new file mode 100644 index 00000000..58cf96ca --- /dev/null +++ b/tools/npm/garaga_ts/babel.config.cjs @@ -0,0 +1,6 @@ +module.exports = { + presets: [ + '@babel/preset-env', + '@babel/preset-typescript', + ], +}; diff --git a/tools/npm/garaga_ts/jest.config.ts b/tools/npm/garaga_ts/jest.config.ts index 1a992d4a..3c5fc9c7 100644 --- a/tools/npm/garaga_ts/jest.config.ts +++ b/tools/npm/garaga_ts/jest.config.ts @@ -1,11 +1,14 @@ -export default { +module.exports= { preset: 'ts-jest', testEnvironment: 'node', testMatch: ['**/tests/**/*.test.ts'], moduleFileExtensions: ['ts', 'js'], - transform: { - '^.+\\.ts$': 'ts-jest' - }, + // transform: { + // '^.+\\.ts$': 'ts-jest' + // }, collectCoverage: true, collectCoverageFrom: ['src/**/*.ts'], + transform: { + '^.+\\.(ts|tsx|js|jsx)$': 'babel-jest', + }, }; diff --git a/tools/npm/garaga_ts/package-lock.json b/tools/npm/garaga_ts/package-lock.json index 26feafb4..0e59291f 100644 --- a/tools/npm/garaga_ts/package-lock.json +++ b/tools/npm/garaga_ts/package-lock.json @@ -8,6 +8,8 @@ "name": "garaga", "version": "0.13.3", "devDependencies": { + "@babel/preset-env": "^7.26.0", + "@babel/preset-typescript": "^7.26.0", "@rollup/plugin-typescript": "^11.1.6", "@types/jest": "^29.5.13", "@types/node": "^22.7.4", @@ -34,13 +36,13 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", - "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/highlight": "^7.24.7", + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", "picocolors": "^1.0.0" }, "engines": { @@ -48,9 +50,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.25.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.4.tgz", - "integrity": "sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.2.tgz", + "integrity": "sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==", "dev": true, "engines": { "node": ">=6.9.0" @@ -87,29 +89,55 @@ } }, "node_modules/@babel/generator": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.6.tgz", - "integrity": "sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", + "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", "dev": true, "dependencies": { - "@babel/types": "^7.25.6", + "@babel/parser": "^7.26.2", + "@babel/types": "^7.26.0", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", + "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.25.9.tgz", + "integrity": "sha512-C47lC7LIDCnz0h4vai/tpNOI95tCd5ZT3iBt/DBH5lXKHZsyNQv18yf1wIIg2ntiQNgmAvA+DgZ82iW8Qdym8g==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz", - "integrity": "sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", + "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.25.2", - "@babel/helper-validator-option": "^7.24.8", - "browserslist": "^4.23.1", + "@babel/compat-data": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -117,29 +145,95 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz", + "integrity": "sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/traverse": "^7.25.9", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.9.tgz", + "integrity": "sha512-ORPNZ3h6ZRkOyAa/SaHU+XsLZr0UQzRwuDQ0cczIA17nAzZ+85G5cVkOJIj7QavLZGSe8QXUmNFxSZzjcZF9bw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "regexpu-core": "^6.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", + "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz", + "integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-module-imports": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", - "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", "dev": true, "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz", - "integrity": "sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-simple-access": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7", - "@babel/traverse": "^7.25.2" + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -148,52 +242,124 @@ "@babel/core": "^7.0.0" } }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz", + "integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", - "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", + "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz", + "integrity": "sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-wrap-function": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.9.tgz", + "integrity": "sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==", "dev": true, + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-simple-access": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", - "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.9.tgz", + "integrity": "sha512-c6WHXuiaRsJTyHYLJV75t9IqsmTbItYfdj99PnzYGQZkYKvan5/2jKJ7gu31J3/BJ/A18grImSPModuyG/Eo0Q==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz", + "integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==", "dev": true, "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", - "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", - "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", - "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz", + "integrity": "sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==", "dev": true, + "dependencies": { + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, "engines": { "node": ">=6.9.0" } @@ -211,35 +377,110 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/highlight": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", - "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "node_modules/@babel/parser": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz", + "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.24.7", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" + "@babel/types": "^7.26.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz", + "integrity": "sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/parser": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.6.tgz", - "integrity": "sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==", + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz", + "integrity": "sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==", "dev": true, "dependencies": { - "@babel/types": "^7.25.6" + "@babel/helper-plugin-utils": "^7.25.9" }, - "bin": { - "parser": "bin/babel-parser.js" + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.9.tgz", + "integrity": "sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { - "node": ">=6.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz", + "integrity": "sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/plugin-transform-optional-chaining": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz", + "integrity": "sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-async-generators": { @@ -278,13 +519,865 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz", + "integrity": "sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz", + "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", + "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz", + "integrity": "sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz", + "integrity": "sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.9.tgz", + "integrity": "sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-remap-async-to-generator": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz", + "integrity": "sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-remap-async-to-generator": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.25.9.tgz", + "integrity": "sha512-toHc9fzab0ZfenFpsyYinOX0J/5dgJVA2fm64xPewu7CoYHWEivIWKxkK2rMi4r3yQqLnVmheMXRdG+k239CgA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz", + "integrity": "sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz", + "integrity": "sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz", + "integrity": "sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz", + "integrity": "sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9", + "@babel/traverse": "^7.25.9", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz", + "integrity": "sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/template": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz", + "integrity": "sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz", + "integrity": "sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz", + "integrity": "sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz", + "integrity": "sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz", + "integrity": "sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.25.9.tgz", + "integrity": "sha512-KRhdhlVk2nObA5AYa7QMgTMTVJdfHprfpAk4DjZVtllqRg9qarilstTKEhpVjyt+Npi8ThRyiV8176Am3CodPA==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz", + "integrity": "sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.9.tgz", + "integrity": "sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz", + "integrity": "sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz", + "integrity": "sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz", + "integrity": "sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz", + "integrity": "sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz", + "integrity": "sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz", + "integrity": "sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.25.9.tgz", + "integrity": "sha512-dwh2Ol1jWwL2MgkCzUSOvfmKElqQcuswAZypBSUsScMXvgdT8Ekq5YA6TtqpTVWH+4903NmboMuH1o9i8Rxlyg==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-simple-access": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz", + "integrity": "sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz", + "integrity": "sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz", + "integrity": "sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz", + "integrity": "sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.25.9.tgz", + "integrity": "sha512-ENfftpLZw5EItALAD4WsY/KUWvhUlZndm5GC7G3evUsVeSJB6p0pBeLQUnRnBCBx7zV0RKQjR9kCuwrsIrjWog==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz", + "integrity": "sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz", + "integrity": "sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-transform-parameters": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz", + "integrity": "sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz", + "integrity": "sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz", + "integrity": "sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz", + "integrity": "sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz", + "integrity": "sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz", + "integrity": "sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz", + "integrity": "sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz", + "integrity": "sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "regenerator-transform": "^0.15.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regexp-modifiers": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz", + "integrity": "sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz", + "integrity": "sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -293,13 +1386,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.25.6.tgz", - "integrity": "sha512-sXaDXaJN9SNLymBdlWFA+bjzBhFD617ZaFiY13dGt7TVslVvVgA6fkZOP7Ki3IGElC45lwHdOTrCtKZGVAWeLQ==", + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz", + "integrity": "sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -308,37 +1401,44 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "node_modules/@babel/plugin-transform-spread": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz", + "integrity": "sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz", + "integrity": "sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", - "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.9.tgz", + "integrity": "sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -347,85 +1447,178 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.9.tgz", + "integrity": "sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.9.tgz", + "integrity": "sha512-7PbZQZP50tzv2KGGnhh82GSyMB01yKY9scIjf1a+GfZCtInOWqUH5+1EBU4t9fyR5Oykkkc9vFTs4OHrhHXljQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/plugin-syntax-typescript": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz", + "integrity": "sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz", + "integrity": "sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz", + "integrity": "sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz", + "integrity": "sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "node_modules/@babel/preset-env": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.26.0.tgz", + "integrity": "sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.9", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.9", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.9", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.25.9", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.9", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-import-assertions": "^7.26.0", + "@babel/plugin-syntax-import-attributes": "^7.26.0", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.25.9", + "@babel/plugin-transform-async-generator-functions": "^7.25.9", + "@babel/plugin-transform-async-to-generator": "^7.25.9", + "@babel/plugin-transform-block-scoped-functions": "^7.25.9", + "@babel/plugin-transform-block-scoping": "^7.25.9", + "@babel/plugin-transform-class-properties": "^7.25.9", + "@babel/plugin-transform-class-static-block": "^7.26.0", + "@babel/plugin-transform-classes": "^7.25.9", + "@babel/plugin-transform-computed-properties": "^7.25.9", + "@babel/plugin-transform-destructuring": "^7.25.9", + "@babel/plugin-transform-dotall-regex": "^7.25.9", + "@babel/plugin-transform-duplicate-keys": "^7.25.9", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.9", + "@babel/plugin-transform-dynamic-import": "^7.25.9", + "@babel/plugin-transform-exponentiation-operator": "^7.25.9", + "@babel/plugin-transform-export-namespace-from": "^7.25.9", + "@babel/plugin-transform-for-of": "^7.25.9", + "@babel/plugin-transform-function-name": "^7.25.9", + "@babel/plugin-transform-json-strings": "^7.25.9", + "@babel/plugin-transform-literals": "^7.25.9", + "@babel/plugin-transform-logical-assignment-operators": "^7.25.9", + "@babel/plugin-transform-member-expression-literals": "^7.25.9", + "@babel/plugin-transform-modules-amd": "^7.25.9", + "@babel/plugin-transform-modules-commonjs": "^7.25.9", + "@babel/plugin-transform-modules-systemjs": "^7.25.9", + "@babel/plugin-transform-modules-umd": "^7.25.9", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.25.9", + "@babel/plugin-transform-new-target": "^7.25.9", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.25.9", + "@babel/plugin-transform-numeric-separator": "^7.25.9", + "@babel/plugin-transform-object-rest-spread": "^7.25.9", + "@babel/plugin-transform-object-super": "^7.25.9", + "@babel/plugin-transform-optional-catch-binding": "^7.25.9", + "@babel/plugin-transform-optional-chaining": "^7.25.9", + "@babel/plugin-transform-parameters": "^7.25.9", + "@babel/plugin-transform-private-methods": "^7.25.9", + "@babel/plugin-transform-private-property-in-object": "^7.25.9", + "@babel/plugin-transform-property-literals": "^7.25.9", + "@babel/plugin-transform-regenerator": "^7.25.9", + "@babel/plugin-transform-regexp-modifiers": "^7.26.0", + "@babel/plugin-transform-reserved-words": "^7.25.9", + "@babel/plugin-transform-shorthand-properties": "^7.25.9", + "@babel/plugin-transform-spread": "^7.25.9", + "@babel/plugin-transform-sticky-regex": "^7.25.9", + "@babel/plugin-transform-template-literals": "^7.25.9", + "@babel/plugin-transform-typeof-symbol": "^7.25.9", + "@babel/plugin-transform-unicode-escapes": "^7.25.9", + "@babel/plugin-transform-unicode-property-regex": "^7.25.9", + "@babel/plugin-transform-unicode-regex": "^7.25.9", + "@babel/plugin-transform-unicode-sets-regex": "^7.25.9", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.6", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "core-js-compat": "^3.38.1", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -434,13 +1627,31 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.26.0.tgz", + "integrity": "sha512-NMk1IGZ5I/oHhoXEElcm+xUnL/szL6xflkFZmoEU9xj1qSJXpiS7rsspYo92B4DRCDvZn2erT5LdsCeXAKNCkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "@babel/plugin-syntax-jsx": "^7.25.9", + "@babel/plugin-transform-modules-commonjs": "^7.25.9", + "@babel/plugin-transform-typescript": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -449,46 +1660,43 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.25.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.4.tgz", - "integrity": "sha512-uMOCoHVU52BsSWxPOMVv5qKRdeSlPuImUCB2dlPuBSU+W2/ROE7/Zg8F2Kepbk+8yBa68LlRKxO+xgEVWorsDg==", + "node_modules/@babel/runtime": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz", + "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "regenerator-runtime": "^0.14.0" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/template": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz", - "integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/parser": "^7.25.0", - "@babel/types": "^7.25.0" + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.6.tgz", - "integrity": "sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", + "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.25.6", - "@babel/parser": "^7.25.6", - "@babel/template": "^7.25.0", - "@babel/types": "^7.25.6", + "@babel/code-frame": "^7.25.9", + "@babel/generator": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/template": "^7.25.9", + "@babel/types": "^7.25.9", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -497,14 +1705,13 @@ } }, "node_modules/@babel/types": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.6.tgz", - "integrity": "sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", "dev": true, "dependencies": { - "@babel/helper-string-parser": "^7.24.8", - "@babel/helper-validator-identifier": "^7.24.7", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1714,19 +2921,6 @@ "node": ">=8" } }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/anymatch": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", @@ -1899,6 +3093,45 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", + "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.6.2", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.10.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz", + "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.2", + "core-js-compat": "^3.38.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", + "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, "node_modules/babel-preset-current-node-syntax": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz", @@ -1970,9 +3203,9 @@ } }, "node_modules/browserslist": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz", - "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==", + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", + "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", "dev": true, "funding": [ { @@ -1989,10 +3222,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001663", - "electron-to-chromium": "^1.5.28", + "caniuse-lite": "^1.0.30001669", + "electron-to-chromium": "^1.5.41", "node-releases": "^2.0.18", - "update-browserslist-db": "^1.1.0" + "update-browserslist-db": "^1.1.1" }, "bin": { "browserslist": "cli.js" @@ -2047,9 +3280,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001663", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001663.tgz", - "integrity": "sha512-o9C3X27GLKbLeTYZ6HBOLU1tsAcBZsLis28wrVzddShCS16RujjHp9GDHKZqrB3meE0YjhawvMFsGb/igqiPzA==", + "version": "1.0.30001676", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001676.tgz", + "integrity": "sha512-Qz6zwGCiPghQXGJvgQAem79esjitvJ+CxSbSQkW9H/UX5hg8XM88d4lp2W+MEQ81j+Hip58Il+jGVdazk1z9cw==", "dev": true, "funding": [ { @@ -2066,21 +3299,6 @@ } ] }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/char-regex": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", @@ -2141,23 +3359,6 @@ "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", "dev": true }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true, - "license": "MIT" - }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -2170,6 +3371,19 @@ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true }, + "node_modules/core-js-compat": { + "version": "3.39.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.39.0.tgz", + "integrity": "sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==", + "dev": true, + "dependencies": { + "browserslist": "^4.24.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, "node_modules/create-jest": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", @@ -2364,9 +3578,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.28", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.28.tgz", - "integrity": "sha512-VufdJl+rzaKZoYVUijN13QcXVF5dWPZANeFTLNy+OSpHdDL5ynXTF35+60RSBbaQYB1ae723lQXHCrf4pyLsMw==", + "version": "1.5.50", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.50.tgz", + "integrity": "sha512-eMVObiUQ2LdgeO1F/ySTXsvqvxb6ZH2zPGaMYsWzRDdOddUa77tdmI0ltg+L16UpbWdhPmuF3wIQYyQq65WfZw==", "dev": true }, "node_modules/emittery": { @@ -2405,16 +3619,6 @@ "node": ">=6" } }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", @@ -2435,6 +3639,15 @@ "dev": true, "license": "MIT" }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/execa": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", @@ -2659,16 +3872,6 @@ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/hasown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", @@ -4556,8 +5759,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/js-yaml": { "version": "3.14.1", @@ -4573,15 +5775,15 @@ } }, "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", "dev": true, "bin": { "jsesc": "bin/jsesc" }, "engines": { - "node": ">=4" + "node": ">=6" } }, "node_modules/json-parse-even-better-errors": { @@ -4638,6 +5840,12 @@ "node": ">=8" } }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, "node_modules/lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", @@ -5019,6 +6227,74 @@ "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "dev": true }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", + "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "dev": true + }, + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regexpu-core": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.1.1.tgz", + "integrity": "sha512-k67Nb9jvwJcJmVpw0jPttR1/zVfnKf8Km0IPatrU/zJ5XeG3+Slx0xLXs9HByJSzXzrlz5EDvN6yLNMDc2qdnw==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.2.0", + "regjsgen": "^0.8.0", + "regjsparser": "^0.11.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "dev": true + }, + "node_modules/regjsparser": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.11.2.tgz", + "integrity": "sha512-3OGZZ4HoLJkkAZx/48mTXJNlmqTGOzc0o9OWQPuWpkOlXXPbyN6OafCcoXUnBqE2D3f/T5L+pWc1kdEmnfnRsA==", + "dev": true, + "dependencies": { + "jsesc": "~3.0.2" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -5300,19 +6576,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", @@ -5346,15 +6609,6 @@ "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", "dev": true }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -5518,10 +6772,50 @@ "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", "dev": true }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", + "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/update-browserslist-db": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", - "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", "dev": true, "funding": [ { @@ -5538,8 +6832,8 @@ } ], "dependencies": { - "escalade": "^3.1.2", - "picocolors": "^1.0.1" + "escalade": "^3.2.0", + "picocolors": "^1.1.0" }, "bin": { "update-browserslist-db": "cli.js" diff --git a/tools/npm/garaga_ts/package.json b/tools/npm/garaga_ts/package.json index 139e53d8..5ed14822 100644 --- a/tools/npm/garaga_ts/package.json +++ b/tools/npm/garaga_ts/package.json @@ -1,7 +1,7 @@ { "type": "module", "name": "garaga", - "version": "0.13.3", + "version": "0.15.3", "main": "./dist/index.cjs", "module": "./dist/index.mjs", "types": "./dist/index.d.ts", @@ -19,6 +19,8 @@ "test:watch": "jest --watch" }, "devDependencies": { + "@babel/preset-env": "^7.26.0", + "@babel/preset-typescript": "^7.26.0", "@rollup/plugin-typescript": "^11.1.6", "@types/jest": "^29.5.13", "@types/node": "^22.7.4", diff --git a/tools/npm/garaga_ts/src/node/api.ts b/tools/npm/garaga_ts/src/node/api.ts index a9996a78..11cb9e11 100644 --- a/tools/npm/garaga_ts/src/node/api.ts +++ b/tools/npm/garaga_ts/src/node/api.ts @@ -1,14 +1,8 @@ // This files provides a ts-like interface for garaga_rs -import { msm_calldata_builder, mpc_calldata_builder, to_twistededwards, to_weirstrass } from '../wasm/pkg/garaga_rs'; - -export enum CurveId { - BN254 = 0, - BLS12_381 = 1, - SECP256K1 = 2, - SECP256R1 = 3, - X25519 = 4, -} +import { msm_calldata_builder, mpc_calldata_builder, to_twistededwards, to_weirstrass, get_groth16_calldata } from '../wasm/pkg/garaga_rs'; +import { CurveId } from './definitions'; +import { Groth16Proof, Groth16VerifyingKey } from './starknet/groth16ContractGenerator/parsingUtils'; export type G1Point = [bigint, bigint]; export type G2Point = [[bigint, bigint], [bigint, bigint]]; @@ -64,3 +58,9 @@ export function toTwistedEdwards(x_weierstrass: bigint, y_weierstrass: bigint): return [result[0], result[1]]; } + +export function getGroth16CallData(proof: Groth16Proof, verifyingKey: Groth16VerifyingKey, curveId: CurveId){ + + return get_groth16_calldata(proof, verifyingKey, curveId); + +} diff --git a/tools/npm/garaga_ts/src/node/hints/io.ts b/tools/npm/garaga_ts/src/node/hints/io.ts index 737263fe..174810fc 100644 --- a/tools/npm/garaga_ts/src/node/hints/io.ts +++ b/tools/npm/garaga_ts/src/node/hints/io.ts @@ -80,8 +80,13 @@ export const bitLength = (x: bigint): number => { } export const split128 = (a: bigint): [bigint, bigint] => { - const MAX_UINT256 = BigInt(2) ** BigInt(256); - const MASK_128 = BigInt((1n << BigInt(128)) - 1n); + try{ + + console.log("a bigint", a); + + const MAX_UINT256 = 115792089237316195423570985008687907853269984665640564039457584007913129639936n; + + const MASK_128 = BigInt((1n << 128n) - 1n); if (a < 0n || a >= MAX_UINT256) { throw new Error(`Value ${a} is too large to fit in a u256`); @@ -91,6 +96,10 @@ export const split128 = (a: bigint): [bigint, bigint] => { const high = a >> BigInt(128); return [low, high]; + } catch(err){ + console.log("ERR split 128: ", err); + throw new Error("ERROR split 128") + } } export const modInverse = (a: bigint, p: bigint): bigint => { diff --git a/tools/npm/garaga_ts/src/node/index.ts b/tools/npm/garaga_ts/src/node/index.ts index 1e54be7c..ba02f736 100644 --- a/tools/npm/garaga_ts/src/node/index.ts +++ b/tools/npm/garaga_ts/src/node/index.ts @@ -1,9 +1,12 @@ export * from './api'; // exports "ts" interface export * from '../wasm/pkg/garaga_rs'; // export "raw" interface +export { CurveId } from './definitions'; + import pkg_init from '../wasm/pkg/garaga_rs'; import module_or_path from '../wasm/pkg/garaga_rs_bg.wasm'; + export function init(): ReturnType { return pkg_init({ module_or_path }); } diff --git a/tools/npm/garaga_ts/src/node/starknet/groth16ContractGenerator/parsingUtils.ts b/tools/npm/garaga_ts/src/node/starknet/groth16ContractGenerator/parsingUtils.ts index 41589e16..5f884ebe 100644 --- a/tools/npm/garaga_ts/src/node/starknet/groth16ContractGenerator/parsingUtils.ts +++ b/tools/npm/garaga_ts/src/node/starknet/groth16ContractGenerator/parsingUtils.ts @@ -1,12 +1,12 @@ import { CURVES, CurveId, G1Point, G2Point, findValueInStringToCurveId } from "../../definitions"; import * as fs from 'fs'; -import { bitLength, hexStringToBytes, modInverse, split128, toBigInt, toHexStr } from "../../hints/io"; +import { bitLength, hexStringToBytes, modInverse, split128, toBigInt, toHexStr } from "../../hints/io"; import { createHash } from 'crypto'; //https://github.com/risc0/risc0-ethereum/blob/main/contracts/src/groth16/ControlID.sol -const RISC0_CONTROL_ROOT = BigInt("0x8B6DCF11D463AC455361B41FB3ED053FEBB817491BDEA00FDB340E45013B852E"); -const RISC0_BN254_CONTROL_ID = BigInt("0x05A022E1DB38457FB510BC347B30EB8F8CF3EDA95587653D0EAC19E1F10D164E"); +const RISC0_CONTROL_ROOT = BigInt("0x8CDAD9242664BE3112ABA377C5425A4DF735EB1C6966472B561D2855932C0469"); +const RISC0_BN254_CONTROL_ID = BigInt("0x04446E66D300EB7FB45C9726BB53C793DDA407A62E9601618BB43C5C14657AC0"); const SYSTEM_STATE_ZERO_DIGEST = Uint8Array.from(Buffer.from( "A3ACC27117418996340B84E5A90F3EF4C49D22C79E44AAD822EC9C313E1EB8E2", "hex" @@ -61,12 +61,12 @@ export class KeyPatternNotFoundError extends Error { export const parseGroth16VerifyingKeyFromJson = (filePath: string): Groth16VerifyingKey => { - try{ + try { const data: any = JSON.parse(fs.readFileSync(filePath, 'utf8')); return parseGroth16VerifyingKeyFromObject(data); - } catch(err){ + } catch (err) { throw new Error(`Failed to parse Groth16 verifying key from ${filePath}: ${err}`); } @@ -74,13 +74,13 @@ export const parseGroth16VerifyingKeyFromJson = (filePath: string): Groth16Verif export const parseGroth16VerifyingKeyFromObject = (data: any): Groth16VerifyingKey => { - try{ + try { const curveId = tryGuessingCurveIdFromJson(data); let verifyingKey: any; - try{ + try { verifyingKey = findItemFromKeyPatterns(data, ["verifying_key"]) - } catch(err){ + } catch (err) { verifyingKey = data; } @@ -89,7 +89,7 @@ export const parseGroth16VerifyingKeyFromObject = (data: any): Groth16VerifyingK const beta = tryParseG2PointFromKey(verifyingKey, ['beta'], curveId); const gamma = tryParseG2PointFromKey(verifyingKey, ['gamma'], curveId); const delta = tryParseG2PointFromKey(verifyingKey, ['delta'], curveId); - if(curveId !== null && curveId !== undefined){ + if (curveId !== null && curveId !== undefined) { const ic: G1Point[] = findItemFromKeyPatterns(verifyingKey, ['ic']).map((point: any) => { @@ -106,14 +106,14 @@ export const parseGroth16VerifyingKeyFromObject = (data: any): Groth16VerifyingK } - if(checkGroth16VerifyingKey(vk)){ + if (checkGroth16VerifyingKey(vk)) { return vk; } throw new Error(`Invalid Groth16 verifying key: ${vk}`); } throw new Error("Curve ID not provided"); - } catch(err){ + } catch (err) { // Gnark case const g1Points = findItemFromKeyPatterns(verifyingKey, ['g1']); const g2Points = findItemFromKeyPatterns(verifyingKey, ['g2']); @@ -124,7 +124,7 @@ export const parseGroth16VerifyingKeyFromObject = (data: any): Groth16VerifyingK const delta = tryParseG2PointFromKey(g2Points, ['delta'], curveId); - if(curveId !== null && curveId !== undefined){ + if (curveId !== null && curveId !== undefined) { const ic: G1Point[] = findItemFromKeyPatterns(g1Points, ['K']).map((point: any) => tryParseG1Point(point, curveId)); const vk = { alpha, @@ -134,7 +134,7 @@ export const parseGroth16VerifyingKeyFromObject = (data: any): Groth16VerifyingK ic } - if(checkGroth16VerifyingKey(vk)){ + if (checkGroth16VerifyingKey(vk)) { return vk; } } @@ -142,7 +142,7 @@ export const parseGroth16VerifyingKeyFromObject = (data: any): Groth16VerifyingK } - } catch(err){ + } catch (err) { throw new Error(`Failed to parse Groth16 verifying key from object: ${err}`); } @@ -151,28 +151,28 @@ export const parseGroth16VerifyingKeyFromObject = (data: any): Groth16VerifyingK } -export const parseGroth16ProofFromJson = (proofPath: string, publicInputsPath?: string | null): Groth16Proof => { +export const parseGroth16ProofFromJson = (proofPath: string, publicInputsPath?: string | null): Groth16Proof => { - try{ + try { const data: any = JSON.parse(fs.readFileSync(proofPath, 'utf8')); let publicInputs: any = null; - if(publicInputsPath && publicInputsPath !== null && publicInputsPath !== undefined ){ + if (publicInputsPath && publicInputsPath !== null && publicInputsPath !== undefined) { - try{ + try { publicInputs = JSON.parse(fs.readFileSync(publicInputsPath, 'utf8')); } - catch(err){ + catch (err) { throw new Error(`Invalid public inputs format: ${publicInputsPath}`); } } return parseGroth16ProofFromObject(data, publicInputs); - } catch(err) { + } catch (err) { throw new Error(`Failed to parse Groth16 proof from ${proofPath}: ${err}`); } @@ -180,7 +180,7 @@ export const parseGroth16ProofFromJson = (proofPath: string, publicInputsPath?: export const parseGroth16ProofFromObject = (data: any, publicInputsData?: bigint[] | object): Groth16Proof => { - try{ + try { let curveId = tryGuessingCurveIdFromJson(data); @@ -188,30 +188,31 @@ export const parseGroth16ProofFromObject = (data: any, publicInputsData?: bigint try { proof = findItemFromKeyPatterns(data, ['proof']); - } catch(err) { + } catch (err) { proof = data } - try{ + try { const sealHex = toHexStr(findItemFromKeyPatterns(proof, ['seal'])); - const imageIdHex = toHexStr(findItemFromKeyPatterns(proof, [ 'image_id'])); + const imageIdHex = toHexStr(findItemFromKeyPatterns(proof, ['image_id'])); const journalHex = toHexStr(findItemFromKeyPatterns(proof, ['journal'])); const sealBytes = hexStringToBytes(sealHex); const imageIdBytes = hexStringToBytes(imageIdHex); const journalBytes = hexStringToBytes(journalHex); + return createGroth16ProofFromRisc0(sealBytes, imageIdBytes, journalBytes) - } catch(err){ + } catch (err) { } let publicInputs: bigint[] = []; - if(publicInputsData && publicInputsData !== null && publicInputsData !== undefined){ + if (publicInputsData && publicInputsData !== null && publicInputsData !== undefined) { if (typeof publicInputsData === 'object' && !Array.isArray(publicInputsData)) { // If it's an object, convert it to a list (array) of its values @@ -223,12 +224,12 @@ export const parseGroth16ProofFromObject = (data: any, publicInputsData?: bigint } else { throw new Error(`Invalid public inputs format: ${publicInputsData}`); } - } else{ + } else { try { publicInputs = findItemFromKeyPatterns(data, ['public']); - } catch(err){ - throw new Error(`Error: ${err}`); + } catch (err) { + } } const a = tryParseG1PointFromKey(proof, ['a'], curveId); @@ -242,13 +243,13 @@ export const parseGroth16ProofFromObject = (data: any, publicInputsData?: bigint publicInputs: publicInputs } - if(checkGroth16Proof(returnProof)){ + if (checkGroth16Proof(returnProof)) { return returnProof; } throw new Error(`Invalid Groth16 proof: ${returnProof}`); - } catch(err) { + } catch (err) { throw new Error(`Failed to parse Groth16 proof from object: ${err}`); } @@ -258,21 +259,26 @@ export const parseGroth16ProofFromObject = (data: any, publicInputsData?: bigint export const createGroth16ProofFromRisc0 = (seal: Uint8Array, imageId: Uint8Array, journalBytes: Uint8Array, controlRoot: bigint = RISC0_CONTROL_ROOT, bn254ControlId: bigint = RISC0_BN254_CONTROL_ID): Groth16Proof => { - if(imageId.length > 32){ + + if (imageId.length > 32) { throw new Error("imageId must be 32 bytes") } - const [constrolRoot0, controlRoot1] = splitDigest(controlRoot); + const [controlRoot0, controlRoot1] = splitDigest(controlRoot); const proof = seal.slice(4); + const journal = createHash("sha256").update(journalBytes).digest(); const claimDigest = digestReceiptClaim(ok(imageId, journal)); + const [claim0, claim1] = splitDigest(claimDigest); + + const groth16Proof: Groth16Proof = { a: { x: toBigInt(proof.slice(0, 32)), @@ -282,7 +288,7 @@ export const createGroth16ProofFromRisc0 = (seal: Uint8Array, imageId: Uint8Arra b: { x: [ toBigInt(proof.slice(96, 128)), - toBigInt(proof.slice(64, 196)) + toBigInt(proof.slice(64, 96)) ], y: [ toBigInt(proof.slice(160, 192)), @@ -290,13 +296,13 @@ export const createGroth16ProofFromRisc0 = (seal: Uint8Array, imageId: Uint8Arra ], curveId: CurveId.BN254 }, - c : { + c: { x: toBigInt(proof.slice(192, 224)), y: toBigInt(proof.slice(224, 256)), curveId: CurveId.BN254 }, publicInputs: [ - constrolRoot0, + controlRoot0, controlRoot1, claim0, claim1, @@ -305,13 +311,12 @@ export const createGroth16ProofFromRisc0 = (seal: Uint8Array, imageId: Uint8Arra imageId, journal } - if(checkGroth16Proof(groth16Proof)){ + if (checkGroth16Proof(groth16Proof)) { return groth16Proof; } throw new Error(`Invalid Groth16 proof: ${groth16Proof}`); - } @@ -320,18 +325,18 @@ export const checkGroth16Proof = (proof: Groth16Proof): boolean => { } export const checkGroth16VerifyingKey = (vk: Groth16VerifyingKey): boolean => { - if(vk.ic.length <= 1) { + if (vk.ic.length <= 1) { return false; } //check if ic points are different - for(let i = 0; i < vk.ic.length; i++){ - for(let j = i + 1; j < vk.ic.length; j++){ - if(vk.ic[i]?.x === vk.ic[j]?.x && vk.ic[i]?.y === vk.ic[j]?.y && vk.ic[i]?.curveId === vk.ic[j]?.curveId){ + for (let i = 0; i < vk.ic.length; i++) { + for (let j = i + 1; j < vk.ic.length; j++) { + if (vk.ic[i]?.x === vk.ic[j]?.x && vk.ic[i]?.y === vk.ic[j]?.y && vk.ic[i]?.curveId === vk.ic[j]?.curveId) { return false; } } - if(vk.ic[i]?.curveId !== vk.alpha.curveId){ + if (vk.ic[i]?.curveId !== vk.alpha.curveId) { return false; } } @@ -344,27 +349,38 @@ export const checkGroth16VerifyingKey = (vk: Groth16VerifyingKey): boolean => { const digestReceiptClaim = (receipt: ReceiptClaim): Uint8Array => { const { tagDigest, input, preStateDigest, postStateDigest, output, exitCode } = receipt; + + const systemExitCodeBuffer = Buffer.alloc(4); + systemExitCodeBuffer.writeUInt32BE(exitCode.system << 24); + + const userExitCodeBuffer = Buffer.alloc(4); + userExitCodeBuffer.writeUInt32BE(exitCode.user << 24); + + // Create a 2-byte big-endian representation of 4 << 8 + const twoBytes = Buffer.alloc(2); + twoBytes.writeUInt16BE(4 << 8); + + // Concatenating all parts into one Buffer const data = Buffer.concat([ - tagDigest!, - input, - preStateDigest, - postStateDigest, - output, - Buffer.alloc(4, exitCode.system << 24), // Encode exitCode.system in 4 bytes, big-endian - Buffer.alloc(4, exitCode.user << 24), // Encode exitCode.user in 4 bytes, big-endian - Buffer.alloc(2, 4 << 8) // Add the 4 << 8 equivalent to (4 << 8).to_bytes(2, 'big') + tagDigest!, + input, + preStateDigest, + postStateDigest, + output, + systemExitCodeBuffer, + userExitCodeBuffer, + twoBytes ]); - // Return the sha256 digest of the combined data return createHash('sha256').update(data).digest(); } function ok(imageId: Uint8Array, journalDigest: Uint8Array): ReceiptClaim { // Create ExitCode object with system = 0 and user = 0 (equivalent to (Halted, 0) in Python) const exitCode: ExitCode = { - system: 0, - user: 0 + system: 0, + user: 0 }; // Create Output object @@ -384,28 +400,31 @@ function ok(imageId: Uint8Array, journalDigest: Uint8Array): ReceiptClaim { output: digestOutput(output), } - } +} -const digestOutput = (output: Output): Uint8Array =>{ +const digestOutput = (output: Output): Uint8Array => { const { journalDigest, assumptionsDigest } = output; + // Compute the internal tag digest equivalent to hashlib.sha256(b"risc0.Output").digest() const tagDigest = createHash('sha256').update(Buffer.from("risc0.Output")).digest(); - // Concatenate all parts into a single Buffer - const data = Buffer.concat([ - tagDigest, - journalDigest, - assumptionsDigest, - Buffer.alloc(2, 2 << 8) // Add the 2 << 8 equivalent to (2 << 8).to_bytes(2, 'big') + const twoBytes = Buffer.alloc(2); + twoBytes.writeUInt16BE(512); + + const combined = Buffer.concat([ + tagDigest, + Buffer.from(journalDigest), + Buffer.from(assumptionsDigest), + twoBytes // Append 2 as a 2-byte big-endian integer ]); // Return the sha256 digest of the combined data - return createHash('sha256').update(data).digest(); - } + return createHash('sha256').update(combined).digest(); +} -const reverseByteOrderUint256 = (value: bigint | Uint8Array): bigint => { +const reverseByteOrderUint256 = (value: bigint | Uint8Array): bigint => { let valueBytes: Uint8Array; if (typeof value === 'bigint') { @@ -425,34 +444,34 @@ const reverseByteOrderUint256 = (value: bigint | Uint8Array): bigint => { return BigInt('0x' + Buffer.from(reversedBytes).toString('hex')); } -const splitDigest = (digest: bigint | Uint8Array): [bigint, bigint] => { +const splitDigest = (digest: bigint | Uint8Array): [bigint, bigint] => { const reversedDigest = reverseByteOrderUint256(digest); return split128(reversedDigest); } export const tryGuessingCurveIdFromJson = (data: Object): CurveId | null => { - try{ + try { const curveId = findValueInStringToCurveId(findItemFromKeyPatterns(data, ['curve'])); return curveId; - } catch(err){ + } catch (err) { let x: bigint | null = null; - for(let value in iterateNestedDictToArray(data)) { + for (let value in iterateNestedDictToArray(data)) { try { x = toBigInt(value); break; - } catch(err) { + } catch (err) { continue; } } - if(x == null || x == undefined){ + if (x == null || x == undefined) { throw new Error("No integer found in the JSON data."); } - if(bitLength(x) > 256) { + if (bitLength(x) > 256) { return CurveId.BLS12_381; } else { return CurveId.BN254; @@ -461,7 +480,7 @@ export const tryGuessingCurveIdFromJson = (data: Object): CurveId | null => { } -const iterateNestedDictToArray = (d: any): any[] =>{ +const iterateNestedDictToArray = (d: any): any[] => { const result: any[] = []; for (const key in d) { if (Object.prototype.hasOwnProperty.call(d, key)) { @@ -488,17 +507,17 @@ const findItemFromKeyPatterns = (data: { [key: string]: any }, keyPatterns: stri Object.keys(data).forEach(key => { keyPatterns.forEach(pattern => { - if(key.toLowerCase() == pattern.toLowerCase()){ + if (key.toLowerCase() == pattern.toLowerCase()) { bestMatch = data[key]; bestMatchFound = true; } - else if(!bestMatchFound && key.trim().toLowerCase().includes(pattern.trim().toLowerCase())){ + else if (!bestMatchFound && key.trim().toLowerCase().includes(pattern.trim().toLowerCase())) { //count number of matching character const re = new RegExp(pattern.toLowerCase(), 'g'); const occurences = key.toLowerCase().match(re); const score = occurences ? occurences.length : 0; - if(score > bestScore){ + if (score > bestScore) { bestScore = score; bestMatch = data[key]; } @@ -506,7 +525,7 @@ const findItemFromKeyPatterns = (data: { [key: string]: any }, keyPatterns: stri }); }); - if(bestMatch){ + if (bestMatch) { return bestMatch; } throw new KeyPatternNotFoundError(`No key found with patterns ${keyPatterns}`); @@ -516,8 +535,8 @@ export const getPFromCurveId = (curveId: CurveId): bigint => { return CURVES[curveId].p; } -const projToAffine = (x: string | number | bigint | Uint8Array, y: string | number | bigint | Uint8Array, - z: string | number | bigint | Uint8Array, curveId: CurveId): G1Point => { +const projToAffine = (x: string | number | bigint | Uint8Array, y: string | number | bigint | Uint8Array, + z: string | number | bigint | Uint8Array, curveId: CurveId): G1Point => { let xBigInt = toBigInt(x); let yBigInt = toBigInt(y); @@ -541,7 +560,7 @@ const projToAffine = (x: string | number | bigint | Uint8Array, y: string | num const tryParseG1PointFromKey = (data: any, keyPatterns: string[], curveId: CurveId | null): G1Point => { const point = findItemFromKeyPatterns(data, keyPatterns); - if(curveId === null || curveId === undefined){ + if (curveId === null || curveId === undefined) { throw new Error("Curve ID not provided"); } return tryParseG1Point(point, curveId); @@ -550,22 +569,22 @@ const tryParseG1PointFromKey = (data: any, keyPatterns: string[], curveId: Curve const tryParseG1Point = (point: any, curveId: CurveId): G1Point => { - if(typeof point === "object" && !Array.isArray(point)){ + if (typeof point === "object" && !Array.isArray(point)) { const x = toBigInt(findItemFromKeyPatterns(point, ["x"])) const y = toBigInt(findItemFromKeyPatterns(point, ["y"])) - return{ + return { x, y, curveId } - } else if(Array.isArray(point)){ - if(point.length == 2){ + } else if (Array.isArray(point)) { + if (point.length == 2) { return { x: toBigInt(point[0]), y: toBigInt(point[1]), curveId } - } else if(point.length == 3){ + } else if (point.length == 3) { return projToAffine(point[0], point[1], point[2], curveId); } @@ -577,7 +596,7 @@ const tryParseG1Point = (point: any, curveId: CurveId): G1Point => { const tryParseG2PointFromKey = (data: any, keyPatterns: string[], curveId: CurveId | null): G2Point => { const point = findItemFromKeyPatterns(data, keyPatterns); - if(curveId === null || curveId === undefined){ + if (curveId === null || curveId === undefined) { throw new Error("Curve ID not provided"); } return tryParseG2Point(point, curveId); @@ -585,7 +604,7 @@ const tryParseG2PointFromKey = (data: any, keyPatterns: string[], curveId: Curve const tryParseG2Point = (point: any, curveId: CurveId): G2Point => { - if(typeof point === "object" && !Array.isArray(point)) { + if (typeof point === "object" && !Array.isArray(point)) { const xG2 = findItemFromKeyPatterns(point, ["x"]); const yG2 = findItemFromKeyPatterns(point, ["y"]); diff --git a/tools/npm/garaga_ts/src/wasm/pkg/garaga_rs.d.ts b/tools/npm/garaga_ts/src/wasm/pkg/garaga_rs.d.ts index 85575cd9..0de2a03d 100644 --- a/tools/npm/garaga_ts/src/wasm/pkg/garaga_rs.d.ts +++ b/tools/npm/garaga_ts/src/wasm/pkg/garaga_rs.d.ts @@ -1,36 +1,43 @@ /* tslint:disable */ /* eslint-disable */ /** -* @param {any[]} values -* @param {any[]} scalars -* @param {number} curve_id -* @param {boolean} include_digits_decomposition -* @param {boolean} include_points_and_scalars -* @param {boolean} serialize_as_pure_felt252_array -* @param {boolean} risc0_mode -* @returns {any[]} -*/ + * @param {any[]} values + * @param {any[]} scalars + * @param {number} curve_id + * @param {boolean} include_digits_decomposition + * @param {boolean} include_points_and_scalars + * @param {boolean} serialize_as_pure_felt252_array + * @param {boolean} risc0_mode + * @returns {any[]} + */ export function msm_calldata_builder(values: any[], scalars: any[], curve_id: number, include_digits_decomposition: boolean, include_points_and_scalars: boolean, serialize_as_pure_felt252_array: boolean, risc0_mode: boolean): any[]; /** -* @param {number} curve_id -* @param {any[]} values1 -* @param {number} n_fixed_g2 -* @param {any[]} values2 -* @returns {any[]} -*/ + * @param {number} curve_id + * @param {any[]} values1 + * @param {number} n_fixed_g2 + * @param {any[]} values2 + * @returns {any[]} + */ export function mpc_calldata_builder(curve_id: number, values1: any[], n_fixed_g2: number, values2: any[]): any[]; /** -* @param {any} x_twisted -* @param {any} y_twisted -* @returns {any[]} -*/ + * @param {any} x_twisted + * @param {any} y_twisted + * @returns {any[]} + */ export function to_weirstrass(x_twisted: any, y_twisted: any): any[]; /** -* @param {any} x_weirstrass -* @param {any} y_weirstrass -* @returns {any[]} -*/ + * @param {any} x_weirstrass + * @param {any} y_weirstrass + * @returns {any[]} + */ export function to_twistededwards(x_weirstrass: any, y_weirstrass: any): any[]; +/** + * @param {any} proof_js + * @param {any} vk_js + * @param {any} curve_id_js + * @returns {any[]} + */ +export function get_groth16_calldata(proof_js: any, vk_js: any, curve_id_js: any): any[]; export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module; @@ -40,10 +47,12 @@ export interface InitOutput { readonly mpc_calldata_builder: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void; readonly to_weirstrass: (a: number, b: number, c: number) => void; readonly to_twistededwards: (a: number, b: number, c: number) => void; + readonly get_groth16_calldata: (a: number, b: number, c: number, d: number) => void; readonly __wbindgen_malloc: (a: number, b: number) => number; readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number; readonly __wbindgen_add_to_stack_pointer: (a: number) => number; readonly __wbindgen_free: (a: number, b: number, c: number) => void; + readonly __wbindgen_exn_store: (a: number) => void; } export type SyncInitInput = BufferSource | WebAssembly.Module; diff --git a/tools/npm/garaga_ts/src/wasm/pkg/garaga_rs.js b/tools/npm/garaga_ts/src/wasm/pkg/garaga_rs.js index 99523af2..7ab760f3 100644 --- a/tools/npm/garaga_ts/src/wasm/pkg/garaga_rs.js +++ b/tools/npm/garaga_ts/src/wasm/pkg/garaga_rs.js @@ -201,15 +201,15 @@ function getArrayJsValueFromWasm0(ptr, len) { return result; } /** -* @param {any[]} values -* @param {any[]} scalars -* @param {number} curve_id -* @param {boolean} include_digits_decomposition -* @param {boolean} include_points_and_scalars -* @param {boolean} serialize_as_pure_felt252_array -* @param {boolean} risc0_mode -* @returns {any[]} -*/ + * @param {any[]} values + * @param {any[]} scalars + * @param {number} curve_id + * @param {boolean} include_digits_decomposition + * @param {boolean} include_points_and_scalars + * @param {boolean} serialize_as_pure_felt252_array + * @param {boolean} risc0_mode + * @returns {any[]} + */ export function msm_calldata_builder(values, scalars, curve_id, include_digits_decomposition, include_points_and_scalars, serialize_as_pure_felt252_array, risc0_mode) { try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); @@ -234,12 +234,12 @@ export function msm_calldata_builder(values, scalars, curve_id, include_digits_d } /** -* @param {number} curve_id -* @param {any[]} values1 -* @param {number} n_fixed_g2 -* @param {any[]} values2 -* @returns {any[]} -*/ + * @param {number} curve_id + * @param {any[]} values1 + * @param {number} n_fixed_g2 + * @param {any[]} values2 + * @returns {any[]} + */ export function mpc_calldata_builder(curve_id, values1, n_fixed_g2, values2) { try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); @@ -264,10 +264,10 @@ export function mpc_calldata_builder(curve_id, values1, n_fixed_g2, values2) { } /** -* @param {any} x_twisted -* @param {any} y_twisted -* @returns {any[]} -*/ + * @param {any} x_twisted + * @param {any} y_twisted + * @returns {any[]} + */ export function to_weirstrass(x_twisted, y_twisted) { try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); @@ -288,10 +288,10 @@ export function to_weirstrass(x_twisted, y_twisted) { } /** -* @param {any} x_weirstrass -* @param {any} y_weirstrass -* @returns {any[]} -*/ + * @param {any} x_weirstrass + * @param {any} y_weirstrass + * @returns {any[]} + */ export function to_twistededwards(x_weirstrass, y_weirstrass) { try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); @@ -311,6 +311,39 @@ export function to_twistededwards(x_weirstrass, y_weirstrass) { } } +/** + * @param {any} proof_js + * @param {any} vk_js + * @param {any} curve_id_js + * @returns {any[]} + */ +export function get_groth16_calldata(proof_js, vk_js, curve_id_js) { + try { + const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); + wasm.get_groth16_calldata(retptr, addHeapObject(proof_js), addHeapObject(vk_js), addHeapObject(curve_id_js)); + var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); + var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); + var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true); + var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true); + if (r3) { + throw takeObject(r2); + } + var v1 = getArrayJsValueFromWasm0(r0, r1).slice(); + wasm.__wbindgen_free(r0, r1 * 4, 4); + return v1; + } finally { + wasm.__wbindgen_add_to_stack_pointer(16); + } +} + +function handleError(f, args) { + try { + return f.apply(this, args); + } catch (e) { + wasm.__wbindgen_exn_store(addHeapObject(e)); + } +} + async function __wbg_load(module, imports) { if (typeof Response === 'function' && module instanceof Response) { if (typeof WebAssembly.instantiateStreaming === 'function') { @@ -319,7 +352,7 @@ async function __wbg_load(module, imports) { } catch (e) { if (module.headers.get('Content-Type') != 'application/wasm') { - console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n", e); + console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n", e); } else { throw e; @@ -368,6 +401,63 @@ function __wbg_get_imports() { const ret = BigInt(getStringFromWasm0(arg0, arg1)); return addHeapObject(ret); }; + imports.wbg.__wbindgen_number_get = function(arg0, arg1) { + const obj = getObject(arg1); + const ret = typeof(obj) === 'number' ? obj : undefined; + getDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true); + getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true); + }; + imports.wbg.__wbg_get_5419cf6b954aa11d = function(arg0, arg1) { + const ret = getObject(arg0)[arg1 >>> 0]; + return addHeapObject(ret); + }; + imports.wbg.__wbg_length_f217bbbf7e8e4df4 = function(arg0) { + const ret = getObject(arg0).length; + return ret; + }; + imports.wbg.__wbg_get_ef828680c64da212 = function() { return handleError(function (arg0, arg1) { + const ret = Reflect.get(getObject(arg0), getObject(arg1)); + return addHeapObject(ret); + }, arguments) }; + imports.wbg.__wbg_isArray_6f3b47f09adb61b5 = function(arg0) { + const ret = Array.isArray(getObject(arg0)); + return ret; + }; + imports.wbg.__wbg_instanceof_Object_4bbac482eda9b711 = function(arg0) { + let result; + try { + result = getObject(arg0) instanceof Object; + } catch (_) { + result = false; + } + const ret = result; + return ret; + }; + imports.wbg.__wbg_buffer_ccaed51a635d8a2d = function(arg0) { + const ret = getObject(arg0).buffer; + return addHeapObject(ret); + }; + imports.wbg.__wbg_new_fec2611eb9180f95 = function(arg0) { + const ret = new Uint8Array(getObject(arg0)); + return addHeapObject(ret); + }; + imports.wbg.__wbg_set_ec2fcf81bc573fd9 = function(arg0, arg1, arg2) { + getObject(arg0).set(getObject(arg1), arg2 >>> 0); + }; + imports.wbg.__wbg_length_9254c4bd3b9f23c4 = function(arg0) { + const ret = getObject(arg0).length; + return ret; + }; + imports.wbg.__wbg_instanceof_Uint8Array_df0761410414ef36 = function(arg0) { + let result; + try { + result = getObject(arg0) instanceof Uint8Array; + } catch (_) { + result = false; + } + const ret = result; + return ret; + }; imports.wbg.__wbindgen_debug_string = function(arg0, arg1) { const ret = debugString(getObject(arg1)); const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); @@ -375,6 +465,13 @@ function __wbg_get_imports() { getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true); getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true); }; + imports.wbg.__wbindgen_throw = function(arg0, arg1) { + throw new Error(getStringFromWasm0(arg0, arg1)); + }; + imports.wbg.__wbindgen_memory = function() { + const ret = wasm.memory; + return addHeapObject(ret); + }; return imports; } @@ -398,10 +495,13 @@ function initSync(module) { if (wasm !== undefined) return wasm; - if (typeof module !== 'undefined' && Object.getPrototypeOf(module) === Object.prototype) - ({module} = module) - else - console.warn('using deprecated parameters for `initSync()`; pass a single object instead') + if (typeof module !== 'undefined') { + if (Object.getPrototypeOf(module) === Object.prototype) { + ({module} = module) + } else { + console.warn('using deprecated parameters for `initSync()`; pass a single object instead') + } + } const imports = __wbg_get_imports(); @@ -420,10 +520,13 @@ async function __wbg_init(module_or_path) { if (wasm !== undefined) return wasm; - if (typeof module_or_path !== 'undefined' && Object.getPrototypeOf(module_or_path) === Object.prototype) - ({module_or_path} = module_or_path) - else - console.warn('using deprecated parameters for the initialization function; pass a single object instead') + if (typeof module_or_path !== 'undefined') { + if (Object.getPrototypeOf(module_or_path) === Object.prototype) { + ({module_or_path} = module_or_path) + } else { + console.warn('using deprecated parameters for the initialization function; pass a single object instead') + } + } if (typeof module_or_path === 'undefined') { throw new Error(); diff --git a/tools/npm/garaga_ts/src/wasm/pkg/garaga_rs_bg.wasm.js b/tools/npm/garaga_ts/src/wasm/pkg/garaga_rs_bg.wasm.js index 2ef68b2e..db652db2 100644 --- a/tools/npm/garaga_ts/src/wasm/pkg/garaga_rs_bg.wasm.js +++ b/tools/npm/garaga_ts/src/wasm/pkg/garaga_rs_bg.wasm.js @@ -1 +1 @@ -export default 'data:application/wasm;base64,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AyADQaAqaiALQo2Vx8OW0trAl39CABC9AyADQZAqaiALQt2whYzotpGouH9CABC9AyADQYAqaiALQqnAxomuzpOyMEIAEL0DIANBoCtqIApC9v+F0vDfx9XHAEIAEL0DIANB4ClqIAMpA6AqIhQgA0GYK2opAwAgDCANVq18Ig4gDCAPVK0gA0HYKmopAwAgDyAQVK18fCIQIAMpA/ApfCISfCIRfCIPIANBuCpqKQMAIAMpA7AqIgsgDXwgC1StfHwiDCADKQOgK3wiDUIAQonHmaSu8IHph38QvQMgA0HQKWogA0HoKWopAwAiC0LH+vPD7YKjkDxCABC9AyADQcApaiALQo2Vx8OW0trAl39CABC9AyADQbApaiALQt2whYzotpGouH9CABC9AyADQaApaiALQqnAxomuzpOyMEIAEL0DIANBsCtqIApCn+rg1Zzup+wGQgAQvQMgA0GAKWogAykDwCkiFyAOIBFWrSIOIANB+ClqKQMAIBAgElatfCISIAMpA5ApfCIRfCILIAMpA5AqfCIQIAwgD1StIANBqCpqKQMAIA8gFFStfHx8Ig8gA0GoK2opAwAgDCANVq18fCITfCIMIANB2ClqKQMAIAMpA9ApIgogDXwgClStfHwiDSADKQOwK3wiFEIAQonHmaSu8IHph38QvQMgA0HwKGogA0GIKWopAwAiCkLH+vPD7YKjkDxCABC9AyADQeAoaiAKQo2Vx8OW0trAl39CABC9AyADQdAoaiAKQt2whYzotpGouH9CABC9AyADQcAoaiAKQqnAxomuzpOyMEIAEL0DAkAgA0HIKGopAwAgA0GoKWopAwAgA0GIKmopAwAgAykDgCoiFiADQZgpaikDACARIBJUrXx8IgogFlStfCAKIAogCyAOVK18Ig5WrXwgDiAOIA8gEFStIANBmCpqKQMAIAsgEFatfHx8IgpWrXwiECADKQOgKXwiCyAQVK18IAsgCyAKIAogDyATVq18Ig9WrXwiClatfCAKIAogA0G4KWopAwAgDyAPIAMpA7ApfCILVq18IAsgCyAMIA1WrSADQcgpaikDACAMIBdUrXx8fCIPVq18fCILVq18IgwgAykDwCh8IgogDFStfCAKIAsgCyAPIANBuCtqKQMAIA0gFFatfHwiDSAPVK18IgtWrXwiDyAKVK18IA8gA0HYKGopAwAgCyALIAMpA9AofCIMVq18IAwgDCADQegoaikDACANIAMpA+AoIgt8IgogC1StfCAKIANB+ChqKQMAIAMpA/AoIgsgFHwgC1StfHwiEyAKVK18fCIKVq18fCIZIA9UrXwiGkKpwMaJrs6TsjBUBEAgCiEUDAELAkAgGULdsIWM6LaRqLh/Vg0AIBlC3bCFjOi2kai4f1IEQCAKIRRCqcDGia7Ok7IwIRoMAgsgCkKNlcfDltLawJd/Vg0AAkAgCkKNlcfDltLawJd/UgRAIAohFAwBC0KNlcfDltLawJd/IRQgE0LH+vPD7YKjkDxaDQELQt2whYzotpGouH8hGUKpwMaJrs6TsjAhGgwBCyAKQvPquLzpraW/6AB8IgsgE0LH+vPD7YKjkDxUrSIPfSEUIBlCo8/685fJ7tfHAHwiDCAKQo2Vx8OW0trAl39UIAsgD1RyrSIKfSEZIBogCiAMVq19QqnAxomuzpOyMH0hGiATQsf688PtgqOQPH0hEwsCQCADKALMKyIFRQ0AIAUgBUEMbEETakF4cSIEakEJaiIFRQ0AIAMoAsgrIARrIAUQuQQLAkACQAJAAkACQAJAAkACQAJAAkAgAygCwCtBAmsOCwEAAAACAAAAAAADAAsgA0EANgLYKyADQQE2AswrIANB1JHAADYCyCsgA0IENwLQKyADQcgrakGMk8AAEIYEAAsgAkUEQEEIIQQMEgsgAkEFdCIJIQUgAkH///8fSw0TQdm+wgAtAAAaQQghByAFQQgQsAQiBEUNEyACIQUDQCAGIAlGDRIgBCAGaiIHIAEgBmoiCCkDADcDACAHQRhqIAhBGGopAwA3AwAgB0EQaiAIQRBqKQMANwMAIAdBCGogCEEIaikDADcDACAGQSBqIQYgBUEBayIFDQALDBELQdm+wgAtAAAaQcABQQgQsAQiBEUNCCACRQ0BIAJBA00NCiADQbANaiABQfgAaikDACIKIBNCABC9AyADQaAMaiAKIBRCABC9AyADQZALaiAKIBlCABC9AyADQYAKaiAKIBpCABC9AyADQaANaiADKQOwDSIPQgBCiceZpK7wgemHfxC9AyADQZANaiADQagNaikDACIKQsf688PtgqOQPEIAEL0DIANBgA1qIApCjZXHw5bS2sCXf0IAEL0DIANB8AxqIApC3bCFjOi2kai4f0IAEL0DIANB4AxqIApCqcDGia7Ok7IwQgAQvQMgA0HQDGogAUHwAGopAwAiCiATQgAQvQMgA0HAC2ogCiAUQgAQvQMgA0GwCmogCiAZQgAQvQMgA0GgCWogCiAaQgAQvQMgA0GQDGogAykDgA0iEiADQbgNaikDACIQIAMpA6AMfCIOfCILIANBmA1qKQMAIA8gAykDkA0iCnwgClStfHwiDyADKQPQDHwiDEIAQonHmaSu8IHph38QvQMgA0GADGogA0GYDGopAwAiCkLH+vPD7YKjkDxCABC9AyADQfALaiAKQo2Vx8OW0trAl39CABC9AyADQeALaiAKQt2whYzotpGouH9CABC9AyADQdALaiAKQqnAxomuzpOyMEIAEL0DIANBwAxqIAFB6ABqKQMAIgogE0IAEL0DIANBsAtqIAogFEIAEL0DIANBoApqIAogGUIAEL0DIANBkAlqIAogGkIAEL0DIANBgAtqIANB2AxqKQMAIAwgD1StfCIYIAMpA8ALfCINIANBqAxqKQMAIA4gEFStfCIXIAMpA5ALfCIQIAMpA/AMfCIOIAsgD1atIANBiA1qKQMAIAsgElStfHx8IhV8IgsgAykD8At8Ig8gA0GIDGopAwAgAykDgAwiCiAMfCAKVK18fCIMIAMpA8AMfCISQgBCiceZpK7wgemHfxC9AyADQfAKaiADQYgLaikDACIKQsf688PtgqOQPEIAEL0DIANB4ApqIApCjZXHw5bS2sCXf0IAEL0DIANB0ApqIApC3bCFjOi2kai4f0IAEL0DIANBwApqIApCqcDGia7Ok7IwQgAQvQMgA0GwDGogASkDYCIKIBNCABC9AyADQaALaiAKIBRCABC9AyADQZAKaiAKIBlCABC9AyADQYAJaiAKIBpCABC9AyADQfAJaiADQcgMaikDACAMIBJWrXwiICADKQOwC3wiESADQZgLaikDACAQIBdUrXwiHiADKQOACnwiFyADKQPgDHwiFiAOIBVWrSADQfgMaikDACAOIBBUrXx8fCIQIAMpA7AKfCIOIAsgDVStIANByAtqKQMAIA0gGFStfHx8Ig0gAykD4At8IhggDCAPVK0gA0H4C2opAwAgCyAPVq18fHwiFXwiCyADKQPgCnwiDyADQfgKaikDACADKQPwCiIKIBJ8IApUrXx8IgwgAykDsAx8IhJCAEKJx5mkrvCB6Yd/EL0DIANB4AlqIANB+AlqKQMAIgpCx/rzw+2Co5A8QgAQvQMgA0HQCWogCkKNlcfDltLawJd/QgAQvQMgA0HACWogCkLdsIWM6LaRqLh/QgAQvQMgA0GwCWogCkKpwMaJrs6TsjBCABC9AyADQbgJaikDACADQcgKaikDACADQdgLaikDACAQIBZUrSADQegMaikDACAWIBdUrXx8IANBiApqKQMAIBcgHlStfHwiFyADKQOgCXwiCiANIA5UrSADQbgKaikDACAOIBBUrXx8fCIQIAMpA9ALfCIOIBBUrXwgDiAVIBhUrSADQegLaikDACANIBhWrXx8fCINIA5UrXwgCiAQVq0gA0GoCWopAwAgCiAXVK18fHwiFyADKQOQCXwiCiADQagKaikDACANIA0gAykDoAp8IhBWrXwgECAQIAsgEVStIANBuAtqKQMAIBEgIFStfHx8Ig1WrXx8IhAgAykDwAp8Ig4gEFStfCAOIANB2ApqKQMAIA0gDSADKQPQCnwiEVatfCARIBEgDCAPVK0gA0HoCmopAwAgCyAPVq18fHwiDVatfHwiCyAOVK18IAogEFatIANBmAlqKQMAIAogF1StfHx8IhEgAykDgAl8Ig8gA0GYCmopAwAgCyADKQOQCnwiCiALVK18IAogCiADQagLaikDACADQbgMaikDACAMIBJWrXwiDCADKQOgC3wiCyAMVK18IAsgCyANfCIMVq18fCILVq18fCINIAMpA7AJfCIQIA1UrXwgECADQcgJaikDACALIAsgAykDwAl8Ig5WrXwgDiAOIANB2AlqKQMAIAwgDCADKQPQCXwiClatfCAKIANB6AlqKQMAIAMpA+AJIgsgEnwgC1StfHwiHCAKVK18fCIKVq18fCILIBBUrXwgDSAPVK0gA0GICWopAwAgDyARVK18fHwiG0KpwMaJrs6TsjBWDQMgG0KpwMaJrs6TsjBRDQIMDgtB2b7CAC0AABpBgANBCBCwBCIERQ0IIAJFDQMgAkEGTQ0KIANBsChqIAFB2AFqKQMAIgogE0IAEL0DIANBoCdqIAogFEIAEL0DIANBkCZqIAogGUIAEL0DIANBgCVqIAogGkIAEL0DIANBoChqIAMpA7AoIg9CAEKJx5mkrvCB6Yd/EL0DIANBkChqIANBqChqKQMAIgpC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aiAKIBlCABC9AyADQfAjaiAKIBpCABC9AyADQYAgaiADQYgjaikDACANIBFWrXwiJyADKQOQI3wiFyADQagiaikDACAOIBZUrXwiJCADKQOwInwiFiADKQOQIHwiGCASICJWrSADQfggaikDACAOIBJWrXx8fCIOIAMpA+AifCISIAsgEFStIANB2CJqKQMAIBAgFVStfHx8IhAgAykDkCF8IhUgDCANVq0gA0GoIWopAwAgCyAMVq18fHwiInwiCyADKQPAIHwiDCADQdggaikDACADKQPQICIKIBF8IApUrXx8Ig0gAykDwCN8IhFCAEKJx5mkrvCB6Yd/EL0DIANB8B9qIANBiCBqKQMAIgpCx/rzw+2Co5A8QgAQvQMgA0HgH2ogCkKNlcfDltLawJd/QgAQvQMgA0HQH2ogCkLdsIWM6LaRqLh/QgAQvQMgA0HAH2ogCkKpwMaJrs6TsjBCABC9AwJAAkAgA0HIH2opAwAgA0GoIGopAwAgA0GIIWopAwAgDiAYVK0gA0GYIGopAwAgFiAYVq18fCADQbgiaikDACAWICRUrXx8IhYgAykD8CJ8IgogECASVK0gA0HoImopAwAgDiASVq18fHwiDiADKQOAIXwiEiAOVK18IBIgFSAiVq0gA0GYIWopAwAgECAVVq18fHwiECASVK18IAogDlatIANB+CJqKQMAIAogFlStfHx8IhYgAykDsCN8IgogA0GoI2opAwAgECAQIAMpA6AjfCIOVq18IA4gDiALIBdUrSADQZgjaikDACAXICdUrXx8fCIQVq18fCIOIAMpA6AgfCISIA5UrXwgEiADQbggaikDACAQIBAgAykDsCB8IhdWrXwgFyAMIA1WrSADQcggaikDACALIAxWrXx8fCIMIBdUrXx8IgsgElStfCAKIA5WrSADQbgjaikDACAKIBZUrXx8fCIXIAMpA/AjfCIQIANB6CNqKQMAIAsgAykD4CN8IgogC1StfCAKIAogA0HYI2opAwAgA0HII2opAwAgDSARVq18Ig0gAykD0CN8IgsgDVStfCALIAsgDHwiDFatfHwiC1atfHwiDSADKQPAH3wiDiANVK18IA4gDiADQdgfaikDACALIAsgAykD0B98IhJWrXwgEiASIANB6B9qKQMAIAwgDCADKQPgH3wiClatfCAKIANB+B9qKQMAIAMpA/AfIgsgEXwgC1StfHwiGyAKVK18fCIKVq18fCIMVq18IA0gEFStIANB+CNqKQMAIBAgF1StfHx8IhJCqcDGia7Ok7IwVg0AAkAgEkKpwMaJrs6TsjBRBEAgDELdsIWM6LaRqLh/Vg0CIAxC3bCFjOi2kai4f1ENAUKpwMaJrs6TsjAhEgsgDCELIAohFwwCCyAKQo2Vx8OW0trAl39WDQBC3bCFjOi2kai4fyELIApCjZXHw5bS2sCXf1IEQEKpwMaJrs6TsjAhEiAKIRcMAgtCjZXHw5bS2sCXfyEXIBtCx/rzw+2Co5A8Wg0AQqnAxomuzpOyMCESDAELIApC8+q4vOmtpb/oAHwiCyAbQsf688PtgqOQPFStIg19IRcgDEKjz/rzl8nu18cAfCIQIApCjZXHw5bS2sCXf1QgCyANVHKtIgp9IQsgEiAMQt2whYzotpGouH9UIAogEFZyrX1CqcDGia7Ok7IwfSESIBtCx/rzw+2Co5A8fSEbC0KpwMaJrs6TsjAhCiABQcgAaikDACIMIAt8IgsgDFQgCyABQdAAaikDACIMIBd8Ig0gDFQgDSANIAFB2ABqKQMAIgwgG3wiFyAMVK18IgxWcq18Ig0gC1RyrSABKQNAIBJ8fCIbIQsCQAJAAkAgG0KpwMaJrs6TsjBSDQBC3bCFjOi2kai4fyEKIA0iC0LdsIWM6LaRqLh/Ug0AQo2Vx8OW0trAl38hCiAMIgtCjZXHw5bS2sCXf1INAELH+vPD7YKjkDwhCiAXIgtCx/rzw+2Co5A8UQ0BCyAKIAtYDQAgDSEiIAwhJwwBCyAMQvPquLzpraW/6AB8IgogF0LH+vPD7YKjkDxUrSILfSEnIA1Co8/685fJ7tfHAHwiECAMQo2Vx8OW0trAl39UIAogC1RyrSIKfSEiIBsgDULdsIWM6LaRqLh/VCAKIBBWcq19QqnAxomuzpOyMH0hGyAXQsf688PtgqOQPH0hFwsgAkEKTQ0BIANBwB1qIAFB2AJqKQMAIgogE0IAEL0DIANB0B1qIAogFEIAEL0DIANB4B1qIAogGUIAEL0DIANB8B1qIAogGkIAEL0DIANBsB1qIAMpA8AdIgxCAEKJx5mkrvCB6Yd/EL0DIANBoB1qIANBuB1qKQMAIgpCx/rzw+2Co5A8QgAQvQMgA0GQHWogCkKNlcfDltLawJd/QgAQvQMgA0GwHGogCkLdsIWM6LaRqLh/QgAQvQMgA0HQG2ogCkKpwMaJrs6TsjBCABC9AyADQYAeaiABQdACaikDACIKIBNCABC9AyADQZAeaiAKIBRCABC9AyADQaAeaiAKIBlCABC9AyADQbAeaiAKIBpCABC9AyADQYAdaiADKQOQHSIRIANByB1qKQMAIg4gAykD0B18IhJ8IgsgA0GoHWopAwAgDCADKQOgHSIKfCAKVK18fCIMIAMpA4AefCINQgBCiceZpK7wgemHfxC9AyADQfAcaiADQYgdaikDACIKQsf688PtgqOQPEIAEL0DIANB4BxqIApCjZXHw5bS2sCXf0IAEL0DIANB0BxqIApC3bCFjOi2kai4f0IAEL0DIANBwBxqIApCqcDGia7Ok7IwQgAQvQMgA0HAHmogAUHIAmopAwAiCiATQgAQvQMgA0HQHmogCiAUQgAQvQMgA0HgHmogCiAZQgAQvQMgA0HwHmogCiAaQgAQvQMgA0GgHGogA0GIHmopAwAgDCANVq18IiQgAykDkB58IhAgA0HYHWopAwAgDiASVq18IhggAykD4B18Ig4gAykDsBx8IhIgCyAMVq0gA0GYHWopAwAgCyARVK18fHwiKHwiCyADKQPgHHwiDCADQfgcaikDACADKQPwHCIKIA18IApUrXx8Ig0gAykDwB58IhFCAEKJx5mkrvCB6Yd/EL0DIANBkBxqIANBqBxqKQMAIgpCx/rzw+2Co5A8QgAQvQMgA0GAHGogCkKNlcfDltLawJd/QgAQvQMgA0HwG2ogCkLdsIWM6LaRqLh/QgAQvQMgA0HgG2ogCkKpwMaJrs6TsjBCABC9AyADQYAfaiABKQPAAiIKIBNCABC9AyADQZAfaiAKIBRCABC9AyADQaAfaiAKIBlCABC9AyADQbAfaiAKIBpCABC9AyADQcAbaiADQcgeaikDACANIBFWrXwiIyADKQPQHnwiFiADQegdaikDACAOIBhUrXwiKSADKQPwHXwiGCADKQPQG3wiFSASIChWrSADQbgcaikDACAOIBJWrXx8fCIOIAMpA6AefCISIAsgEFStIANBmB5qKQMAIBAgJFStfHx8IhAgAykD0Bx8IiQgDCANVq0gA0HoHGopAwAgCyAMVq18fHwiKHwiCyADKQOAHHwiDCADQZgc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ACAVIBhUrXwiHyADKQPgFHwiGCADKQOwE3wiFSALIAxWrSADQZgUaikDACALICFUrXx8fCIqfCILIAMpA+ATfCIMIANB+BNqKQMAIAMpA/ATIgogDXwgClStfHwiDSADKQPAFXwiIUIAQonHmaSu8IHph38QvQMgA0GQE2ogA0GoE2opAwAiCkLH+vPD7YKjkDxCABC9AyADQYATaiAKQo2Vx8OW0trAl39CABC9AyADQfASaiAKQt2whYzotpGouH9CABC9AyADQeASaiAKQqnAxomuzpOyMEIAEL0DIANBgBZqIAEpA6ACIgogE0IAEL0DIANBkBZqIAogFEIAEL0DIANBoBZqIAogGUIAEL0DIANBsBZqIAogGkIAEL0DIANBwBJqIANByBVqKQMAIA0gIVatfCIrIAMpA9AVfCIdIANB6BRqKQMAIBggH1StfCIsIAMpA/AUfCIfIAMpA9ASfCIlIBUgKlatIANBuBNqKQMAIBUgGFStfHx8IhggAykDoBV8IhUgCyARVK0gA0GYFWopAwAgESAmVK18fHwiESADKQPQE3wiJiAMIA1WrSADQegTaikDACALIAxWrXx8fCIqfCILIAMpA4ATfCIMIANBmBNqKQMAIAMpA5ATIgogIXwgClStfHwiDSADKQOAFnwiIUIAQonHmaSu8IHph38QvQMgA0GwEmogA0HIEmopAwAiCkLH+vPD7YKjkDxCABC9AyADQaASaiAKQo2Vx8OW0trAl39CABC9AyADQZASaiAKQt2whYzotpGouH9CABC9AyADQYASaiAKQqnAxomuzpOyMEIAEL0DAkACQCADQYgSaikDACADQegSaikDACADQcgTaikDACAYICVUrSADQdgSaikDACAfICVWrXx8IANB+BRqKQMAIB8gLFStfHwiHyADKQOwFXwiCiARIBVUrSADQagVaikDACAVIBhUrXx8fCIYIAMpA8ATfCIVIBhUrXwgFSAmICpWrSADQdgTaikDACARICZWrXx8fCIRIBVUrXwgCiAYVq0gA0G4FWopAwAgCiAfVK18fHwiHyADKQPwFXwiCiADQegVaikDACARIBEgAykD4BV8IhhWrXwgGCAYIAsgHVStIANB2BVqKQMAIB0gK1StfHx8IhFWrXx8IhggAykD4BJ8IhUgGFStfCAVIANB+BJqKQMAIBEgESADKQPwEnwiHVatfCAdIB0gDCANVq0gA0GIE2opAwAgCyAMVq18fHwiEVatfHwiCyAVVK18IAogGFatIANB+BVqKQMAIAogH1StfHx8IhUgAykDsBZ8IgogA0GoFmopAwAgCyALIAMpA6AWfCIMVq18IAwgDCADQZgWaikDACADQYgWaikDACANICFWrXwiDSADKQOQFnwiCyANVK18IAsgCyARfCINVq18fCILVq18fCIRIAMpA4ASfCIYIBFUrXwgGCAYIANBmBJqKQMAIAsgAykDkBJ8IgwgC1StfCAMIAwgA0GoEmopAwAgDSANIAMpA6ASfCINVq18IA0gDSADQbgSaikDACADKQOwEiILICF8IAtUrXx8IgtWrXx8IgxWrXx8IhhWrXwgCiARVq0gA0G4FmopAwAgCiAVVK18fHwiCkKpwMaJrs6TsjBWDQACQCAKQqnAxomuzpOyMFEEQCAYQt2whYzotpGouH9WDQIgGELdsIWM6LaRqLh/UQ0BQqnAxomuzpOyMCEKCyAYIREgDCENDAILIAxCjZXHw5bS2sCXf1YNAELdsIWM6LaRqLh/IREgDEKNlcfDltLawJd/UgRAQqnAxomuzpOyMCEKIAwhDQwCC0KNlcfDltLawJd/IQ0gC0LH+vPD7YKjkDxaDQBCqcDGia7Ok7IwIQoMAQsgDELz6ri86a2lv+gAfCIRIAtCx/rzw+2Co5A8VK0iFX0hDSAYQqPP+vOXye7XxwB8IiEgDEKNlcfDltLawJd/VCARIBVUcq0iDH0hESAKIBhC3bCFjOi2kai4f1QgDCAhVnKtfUKpwMaJrs6TsjB9IQogC0LH+vPD7YKjkDx9IQsLQqnAxomuzpOyMCEYIBEgAUHoAGopAwAiFXwiDCAVVCAMIA0gAUHwAGopAwAiEXwiFSARVCAVIBUgCyABQfgAaikDACIRfCINIBFUrXwiEVZyrXwiFSAMVHKtIAEpA2AgCnx8IgshDAJAAkACQCALQqnAxomuzpOyMFINAELdsIWM6LaRqLh/IRggFSIMQt2whYzotpGouH9SDQBCjZXHw5bS2sCXfyEYIBEiDEKNlcfDltLawJd/Ug0AQsf688PtgqOQPCEYIA0iDELH+vPD7YKjkDxRDQELIAwgGFoNACAVIRggESEhDAELIBFC8+q4vOmtpb/oAHwiCiANQsf688PtgqOQPFStIgx9ISEgFUKjz/rzl8nu18cAfCIdIBFCjZXHw5bS2sCXf1QgCiAMVHKtIgp9IRggCyAVQt2whYzotpGouH9UIAogHVZyrX1CqcDGia7Ok7IwfSELIA1Cx/rzw+2Co5A8fSENCyACQQtHBEAgA0GAEGogAUH4AmopAwAiCiATQgAQvQMgA0GQEGogCiAUQgAQvQMgA0GgEGogCiAZQgAQvQMgA0GwEGogCiAaQgAQvQMgA0HwD2ogAykDgBAiEUIAQonHmaSu8IHph38QvQMgA0HgD2ogA0H4D2opAwAiCkLH+vPD7YKjkDxCABC9AyADQdAPaiAKQo2Vx8OW0trAl39CABC9AyADQfAOaiAKQt2whYzotpGouH9CABC9AyADQZAOaiAKQqnAxomuzpOyMEIAEL0DIANBwBBqIAFB8AJqKQMAIgogE0IAEL0DIANB0BBqIAogFEIAEL0DIANB4BBqIAogGUIAEL0DIANB8BBqIAogGkIAEL0DIANBwA9qIAMpA9APIiYgA0GIEGopAwAiHyADKQOQEHwiJXwiDCADQegPaikDACARIAMpA+APIgp8IApUrXx8IhEgAykDwBB8IhVCAEKJx5mkrvCB6Yd/EL0DIANBsA9qIANByA9qKQMAIgpCx/rzw+2Co5A8QgAQvQMgA0GgD2ogCkKNlcfDltLawJd/QgAQvQMgA0GQD2ogCkLdsIWM6LaRqLh/QgAQvQMgA0GAD2ogCkKpwMaJrs6TsjBCABC9AyADQYARaiABQegCaikDACIKIBNCABC9AyADQZARaiAKIBRCABC9AyADQaARaiAKIBlCABC9AyADQbARaiAKIBpCABC9AyADQeAOaiADQcgQaikDACARIBVWrXwiKiADKQPQEHwiHSADQZgQaikDACAfICVWrXwiKyADKQOgEHwiHyADKQPwDnwiJSAMIBFWrSADQdgPaikDACAMICZUrXx8fCIsfCIMIAMpA6APfCIRIANBuA9qKQMAIAMpA7APIgogFXwgClStfHwiFSADKQOAEXwiJkIAQonHmaSu8IHph38QvQMgA0HQDmogA0HoDmopAwAiCkLH+vPD7YKjkDxCABC9AyADQcAOaiAKQo2Vx8OW0trAl39CABC9AyADQbAOaiAKQt2whYzotpGouH9CABC9AyADQaAOaiAKQqnAxomuzpOyMEIAEL0DIANBwBFqIAEpA+ACIgogE0IAEL0DIANB0BFqIAogFEIAEL0DIANB4BFqIAogGUIAEL0DIANB8BFqIAogGkIAEL0DIANBgA5qIANBiBFqKQMAIBUgJlatfCItIAMpA5ARfCIUIANBqBBqKQMAIB8gK1StfCIrIAMpA7AQfCITIAMpA5AOfCIZICUgLFatIANB+A5qKQMAIB8gJVatfHx8IhogAykD4BB8Ih8gDCAdVK0gA0HYEGopAwAgHSAqVK18fHwiHSADKQOQD3wiJSARIBVWrSADQagPaikDACAMIBFWrXx8fCIqfCIMIAMpA8AOfCIRIANB2A5qKQMAIAMpA9AOIgogJnwgClStfHwiFSADKQPAEXwiJkIAQonHmaSu8IHph38QvQMgA0HwDWogA0GIDmopAwAiCkLH+vPD7YKjkDxCABC9AyADQeANaiAKQo2Vx8OW0trAl39CABC9AyADQdANaiAKQt2whYzotpGouH9CABC9AyADQcANaiAKQqnAxomuzpOyMEIAEL0DAkACQCADQcgNaikDACADQagOaikDACADQYgPaikDACAZIBpWrSADQZgOaikDACATIBlWrXx8IANBuBBqKQMAIBMgK1StfHwiKyADKQPwEHwiCiAdIB9UrSADQegQaikDACAaIB9WrXx8fCITIAMpA4APfCIZIBNUrXwgGSAZICUgKlatIANBmA9qKQMAIB0gJVatfHx8IhpWrXwgCiATVq0gA0H4EGopAwAgCiArVK18fHwiHSADKQOwEXwiCiADQagRaikDACAaIAMpA6ARfCITIBpUrXwgEyAMIBRUrSADQZgRaikDACAUIC1UrXx8fCIUIBNUrXx8IhMgAykDoA58IhkgE1StfCAZIANBuA5qKQMAIBQgFCADKQOwDnwiGlatfCAaIBEgFVatIANByA5qKQMAIAwgEVatfHx8IhEgGlStfHwiDCAZVK18IAogE1atIANBuBFqKQMAIAogHVStfHx8Ih0gAykD8BF8IhQgA0HoEWopAwAgDCADKQPgEXwiCiAMVK18IAogCiADQdgRaikDACADQcgRaikDACAVICZWrXwiEyADKQPQEXwiDCATVK18IAwgDCARfCIRVq18fCIMVq18fCITIAMpA8ANfCIVIBNUrXwgFSAVIANB2A1qKQMAIAwgDCADKQPQDXwiGlatfCAaIBogA0HoDWopAwAgESARIAMpA+ANfCIKVq18IAogA0H4DWopAwAgAykD8A0iDCAmfCAMVK18fCIZIApUrXx8IgpWrXx8IhFWrXwgEyAUVK0gA0H4EWopAwAgFCAdVK18fHwiE0KpwMaJrs6TsjBWDQACQCATQqnAxomuzpOyMFEEQCARQt2whYzotpGouH9WDQIgEULdsIWM6LaRqLh/UQ0BQqnAxomuzpOyMCETCyARIRQgCiEMDAILIApCjZXHw5bS2sCXf1YNAELdsIWM6LaRqLh/IRQgCkKNlcfDltLawJd/UgRAQqnAxomuzpOyMCETIAohDAwCC0KNlcfDltLawJd/IQwgGULH+vPD7YKjkDxaDQBCqcDGia7Ok7IwIRMMAQsgCkLz6ri86a2lv+gAfCIUIBlCx/rzw+2Co5A8VK0iFX0hDCARQqPP+vOXye7XxwB8IhogCkKNlcfDltLawJd/VCAUIBVUcq0iCn0hFCATIBFC3bCFjOi2kai4f1QgCiAaVnKtfUKpwMaJrs6TsjB9IRMgGULH+vPD7YKjkDx9IRkLIAFBwAFqIQIgAUGAAmohBSABQcACaiEGIAFB4AFqIQcgAUGgAmohCCABQeACaiEJQqnAxomuzpOyMCERIAEpA6ABIBN8IBQgAUGoAWopAwAiE3wiCiATVCAKIAwgAUGwAWopAwAiDHwiFCAMVCAUIBQgAUG4AWopAwAiDCAZfCITIAxUrXwiDFZyrXwiFCAKVHKtfCIZIQoCQAJAAkAgGUKpwMaJrs6TsjBSDQBC3bCFjOi2kai4fyERIBQiCkLdsIWM6LaRqLh/Ug0AQo2Vx8OW0trAl38hESAMIgpCjZXHw5bS2sCXf1INAELH+vPD7YKjkDwhESATIgpCx/rzw+2Co5A8UQ0BCyAKIBFaDQAgFCEKIAwhEQwBCyAMQvPquLzpraW/6AB8IgogE0LH+vPD7YKjkDxUrSIVfSERIBRCo8/685fJ7tfHAHwiGiAMQo2Vx8OW0trAl39UIAogFVRyrSIMfSEKIBkgFELdsIWM6LaRqLh/VCAMIBpWcq19QqnAxomuzpOyMH0hGSATQsf688PtgqOQPH0hEwsgBCAZNwPAAiAEIA83AxggBCAeNwMQIAQgIDcDCCAEIBw3AwAgBEHYAmogEzcDACAEQdACaiARNwMAIARByAJqIAo3AwAgBCAJKQMANwPgAiAEIAIpAwA3AyAgBEHoAmogCUEIaikDADcDACAEQfACaiAJQRBqKQMANwMAIARB+AJqIAlBGGopAwA3AwAgBEEoaiACQQhqKQMANwMAIARBMGogAkEQaikDADcDACAEQThqIAJBGGopAwA3AwAgBEHYAGogFzcDACAEQdAAaiAnNwMAIARByABqICI3AwAgBCAbNwNAIARBmAFqIA43AwAgBEGQAWogKDcDACAEQYgBaiAkNwMAIAQgEjcDgAEgBCAFKQMANwNgIARB6ABqIAVBCGopAwA3AwAgBEHwAGogBUEQaikDADcDACAEQfgAaiAFQRhqKQMANwMAIAQgBikDADcDoAEgBEGoAWogBkEIaikDADcDACAEQbABaiAGQRBqKQMANwMAIARBuAFqIAZBGGopAwA3AwAgBEHYAWogFjcDACAEQdABaiApNwMAIARByAFqICM3AwAgBCAQNwPAASAEQfgBaiAHQRhqKQMANwMAIARB8AFqIAdBEGopAwA3AwAgBEHoAWogB0EIaikDADcDACAEIAcpAwA3A+ABIARBmAJqIA03AwAgBEGQAmogITcDACAEQYgCaiAYNwMAIAQgCzcDgAIgBEG4AmogCEEYaikDADcDACAEQbACaiAIQRBqKQMANwMAIARBqAJqIAhBCGopAwA3AwAgBCAIKQMANwOgAkEMIQIMBQtBC0ELQfySwAAQ1gMAC0EIIAJB3JLAABDWAwALQQogAkHsksAAENYDAAsgCyEQIAohDwtCqcDGia7Ok7IwIQogASkDCCIMIBB8IgsgDFQgCyAPIAEpAxAiD3wiDCAPVCAMIAwgASkDGCIPIBx8IhAgD1StfCIPVnKtfCIMIAtUcq0gASkDACAbfHwiHCELAkACQAJAIBxCqcDGia7Ok7IwUg0AQt2whYzotpGouH8hCiAMIgtC3bCFjOi2kai4f1INAEKNlcfDltLawJd/IQogDyILQo2Vx8OW0trAl39SDQBCx/rzw+2Co5A8IQogECILQsf688PtgqOQPFENAQsgCiALWA0AIAwhDSAPIREMAQsgD0Lz6ri86a2lv+gAfCIKIBBCx/rzw+2Co5A8VK0iC30hESAMQqPP+vOXye7XxwB8Ig4gD0KNlcfDltLawJd/VCAK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IANB2ClqKQMAIAMpA9ApIgogDnwgClStfHwiDiADKQOwK3wiEUIAQonHmaSu8IHph38QvQMgA0HwKGogA0GIKWopAwAiCkLH+vPD7YKjkDxCABC9AyADQeAoaiAKQo2Vx8OW0trAl39CABC9AyADQdAoaiAKQt2whYzotpGouH9CABC9AyADQcAoaiAKQqnAxomuzpOyMEIAEL0DAkAgA0HIKGopAwAgA0GoKWopAwAgA0GIKmopAwAgAykDgCoiFiADQZgpaikDACAUIBdWrXx8IgogFlStfCAKIAogCyAMVK18IgxWrXwgDCAMIA8gElatIANBmCpqKQMAIAsgD1atfHx8IgpWrXwiDyADKQOgKXwiCyAPVK18IAsgCyAKIAogEiATVq18IhJWrXwiClatfCAKIAogA0G4KWopAwAgEiASIAMpA7ApfCILVq18IAsgCyANIA5WrSADQcgpaikDACANIBBUrXx8fCISVq18fCILVq18Ig0gAykDwCh8IgogDVStfCAKIAsgCyASIANBuCtqKQMAIA4gEVatfHwiDiASVK18IgtWrXwiEiAKVK18IBIgA0HYKGopAwAgCyALIAMpA9AofCINVq18IA0gDSADQegoaikDACAOIAMpA+AoIgt8IgogC1StfCAKIANB+ChqKQMAIAMpA/AoIgsgEXwgC1StfHwiESAKVK18fCIKVq18fCIUIBJUrXwiF0KpwMaJrs6TsjBUBEAgCiESDAELAkAgFELdsIWM6LaRqLh/Vg0AIBRC3bCFjOi2kai4f1IEQCAKIRJCqcDGia7Ok7IwIRcMAgsgCkKNlcfDltLawJd/Vg0AAkAgCkKNlcfDltLawJd/UgRAIAohEgwBC0KNlcfDltLawJd/IRIgEULH+vPD7YKjkDxaDQELQt2whYzotpGouH8hFEKpwMaJrs6TsjAhFwwBCyAKQvPquLzpraW/6AB8IgsgEULH+vPD7YKjkDxUrSINfSESIBRCo8/685fJ7tfHAHwiDiAKQo2Vx8OW0trAl39UIAsgDVRyrSIKfSEUIBcgCiAOVq19QqnAxomuzpOyMH0hFyARQsf688PtgqOQPH0hEQsCQCADKALMKyIFRQ0AIAUgBUEMbEETakF4cSIEakEJaiIFRQ0AIAMoAsgrIARrIAUQuQQLAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCADKALAK0ECaw4LAQAAAAIAAAAAAAMACyADQQA2AtgrIANBATYCzCsgA0HUkcAANgLIKyADQgQ3AtArIANByCtqQdyRwAAQhgQACyACRQRAQQghBAwLCyACQQV0IgkhBSACQf///x9LDRlB2b7CAC0AABpBCCEHIAVBCBCwBCIERQ0ZIAIhBQNAIAYgCUYNCyAEIAZqIgcgASAGaiIIKQMANwMAIAdBGGogCEEYaikDADcDACAHQRBqIAhBEGopAwA3AwAgB0EIaiAIQQhqKQMANwMAIAZBIGohBiAFQQFrIgUNAAsMCgtB2b7CAC0AABpBwAFBCBCwBCIERQ0MIAJFDQEgAkEBRg0OIANBsA1qIAFBOGopAwAiCiARQgAQvQMgA0GgDGogCiASQgAQvQMgA0GQC2ogCiAUQgAQvQMgA0GACmogCiAXQgAQvQMgA0GgDWogAykDsA0iDUIAQonHmaSu8IHph38QvQMgA0GQDWogA0GoDWopAwAiCkLH+vPD7YKjkDxCABC9AyADQYANaiAKQo2Vx8OW0trAl39CABC9AyADQfAMaiAKQt2whYzotpGouH9CABC9AyADQeAMaiAKQqnAxomuzpOyMEIAEL0DIANB0AxqIAFBMGopAwAiCiARQgAQvQMgA0HAC2ogCiASQgAQvQMgA0GwCmogCiAUQgAQvQMgA0GgCWogCiAXQgAQvQMgA0GQDGogAykDgA0iEyADQbgNaikDACIMIAMpA6AMfCIQfCILIANBmA1qKQMAIA0gAykDkA0iCnwgClStfHwiDSADKQPQDHwiDkIAQonHmaSu8IHph38QvQMgA0GADGogA0GYDGopAwAiCkLH+vPD7YKjkDxCABC9AyADQfALaiAKQo2Vx8OW0trAl39CABC9AyADQeALaiAKQt2whYzotpGouH9CABC9AyADQdALaiAKQqnAxomuzpOyMEIAEL0DIANBwAxqIAFBKGopAwAiCiARQgAQvQMgA0GwC2ogCiASQgAQvQMgA0GgCmogCiAUQgAQvQMgA0GQCWogCiAXQgAQvQMgA0GAC2ogA0HYDGopAwAgDSAOVq18IhggAykDwAt8Ig8gA0GoDGopAwAgDCAQVq18IhUgAykDkAt8IgwgAykD8Ax8IhAgCyANVq0gA0GIDWopAwAgCyATVK18fHwiGXwiCyADKQPwC3wiDSADQYgMaikDACADKQOADCIKIA58IApUrXx8Ig4gAykDwAx8IhNCAEKJx5mkrvCB6Yd/EL0DIANB8ApqIANBiAtqKQMAIgpCx/rzw+2Co5A8QgAQvQMgA0HgCmogCkKNlcfDltLawJd/QgAQvQMgA0HQCmogCkLdsIWM6LaRqLh/QgAQvQMgA0HACmogCkKpwMaJrs6TsjBCABC9AyADQbAMaiABKQMgIgogEUIAEL0DIANBoAtqIAogEkIAEL0DIANBkApqIAogFEIAEL0DIANBgAlqIAogF0IAEL0DIANB8AlqIANByAxqKQMAIA4gE1atfCIbIAMpA7ALfCIWIANBmAtqKQMAIAwgFVStfCIcIAMpA4AKfCIVIAMpA+AMfCIaIBAgGVatIANB+AxqKQMAIAwgEFatfHx8IgwgAykDsAp8IhAgCyAPVK0gA0HIC2opAwAgDyAYVK18fHwiDyADKQPgC3wiGCANIA5WrSADQfgLaikDACALIA1WrXx8fCIZfCILIAMpA+AKfCINIANB+ApqKQMAIAMpA/AKIgogE3wgClStfHwiDiADKQOwDHwiE0IAQonHmaSu8IHph38QvQMgA0HgCWogA0H4CWopAwAiCkLH+vPD7YKjkDxCABC9AyADQdAJaiAKQo2Vx8OW0trAl39CABC9AyADQcAJaiAKQt2whYzotpGouH9CABC9AyADQbAJaiAKQqnAxomuzpOyMEIAEL0DIANBuAlqKQMAIANByApqKQMAIANB2AtqKQMAIAwgGlStIANB6AxqKQMAIBUgGlatfHwgA0GICmopAwAgFSAcVK18fCIVIAMpA6AJfCIKIA8gEFStIANBuApqKQMAIAwgEFatfHx8IgwgAykD0At8IhAgDFStfCAQIBggGVatIANB6AtqKQMAIA8gGFatfHx8Ig8gEFStfCAKIAxWrSADQagJaikDACAKIBVUrXx8fCIVIAMpA5AJfCIKIANBqApqKQMAIA8gDyADKQOgCnwiDFatfCAMIAwgCyAWVK0gA0G4C2opAwAgFiAbVK18fHwiD1atfHwiDCADKQPACnwiECAMVK18IBAgA0HYCmopAwAgDyAPIAMpA9AKfCIWVq18IBYgFiANIA5WrSADQegKaikDACALIA1WrXx8fCIPVq18fCILIBBUrXwgCiAM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aikDACADKQPwASIKIA58IApUrXx8Ig4gAykDwAN8IhNCAEKJx5mkrvCB6Yd/EL0DIANBkAFqIANBqAFqKQMAIgpCx/rzw+2Co5A8QgAQvQMgA0GAAWogCkKNlcfDltLawJd/QgAQvQMgA0HwAGogCkLdsIWM6LaRqLh/QgAQvQMgA0HgAGogCkKpwMaJrs6TsjBCABC9AyADQYAEaiABKQOgASIKIBFCABC9AyADQZAEaiAKIBJCABC9AyADQaAEaiAKIBRCABC9AyADQbAEaiAKIBdCABC9AyADQUBrIANByANqKQMAIA4gE1atfCIYIAMpA9ADfCISIANB6AJqKQMAIAwgFVStfCIVIAMpA/ACfCIRIAMpA1B8IhQgECAaVq0gA0G4AWopAwAgDCAQVq18fHwiDCADKQOgA3wiFyALIA9UrSADQZgDaikDACAPIBZUrXx8fCIPIAMpA9ABfCIQIA0gDlatIANB6AFqKQMAIAsgDVatfHx8IhZ8IgsgAykDgAF8Ig0gA0GYAWopAwAgAykDkAEiCiATfCAKVK18fCIOIAMpA4AEfCITQgBCiceZpK7wgemHfxC9AyADQTBqIANByABqKQMAIgpCx/rzw+2Co5A8QgAQvQMgA0EgaiAKQo2Vx8OW0trAl39CABC9AyADQRBqIApC3bCFjOi2kai4f0IAEL0DIAMgCkKpwMaJrs6TsjBCABC9AyABQYABaiEGIAFBoAFqIQECQAJAIANBCGopAwAgA0HoAGopAwAgA0HIAWopAwAgDCAUVK0gA0HYAGopAwAgESAUVq18fCADQfgCaikDACARIBVUrXx8IhQgAykDsAN8IgogDyAXVK0gA0GoA2opAwAgDCAXVq18fHwiESADKQPAAXwiDCARVK18IAwgECAWVq0gA0HYAWopAwAgDyAQVq18fHwiDyAMVK18IAogEVatIANBuANqKQMAIAogFFStfHx8IhQgAykD8AN8IgogA0HoA2opAwAgDyAPIAMpA+ADfCIRVq18IBEgCyASVK0gA0HYA2opAwAgEiAYVK18fHwiEiARVK18fCIPIAMpA2B8IhEgD1StfCARIANB+ABqKQMAIBIgEiADKQNwfCIMVq18IAwgDSAOVq0gA0GIAWopAwAgCyANVq18fHwiDSAMVK18fCILIBFUrXwgCiAPVq0gA0H4A2opAwAgCiAUVK18fHwiDCADKQOwBHwiEiADQagEaikDACALIAMpA6AEfCIKIAtUrXwgCiAKIANBmARqKQMAIANBiARqKQMAIA4gE1atfCIOIAMpA5AEfCILIA5UrXwgCyALIA18Ig1WrXx8IgtWrXx8Ig4gAykDAHwiDyAOVK18IA8gA0EYaikDACALIAsgAykDEHwiEVatfCARIBEgA0EoaikDACANIA0gAykDIHwiClatfCAKIANBOGopAwAgAykDMCILIBN8IAtUrXx8IhQgClStfHwiClatfHwiCyAPVK18IA4gElStIANBuARqKQMAIAwgElatfHx8IhFCqcDGia7Ok7IwVg0AAkAgEUKpwMaJrs6TsjBRBEAgC0LdsIWM6LaRqLh/Vg0CIAtC3bCFjOi2kai4f1IEQCAKIRIgCyENQqnAxomuzpOyMCERDAQLIApCjZXHw5bS2sCXf1YNAkLdsIWM6LaRqLh/IQ0gCkKNlcfDltLawJd/UQ0BIAohEkKpwMaJrs6TsjAhEQwDCyAKIRIgCyENDAILQo2Vx8OW0trAl38hEiAUQsf688PtgqOQPFoNAEKpwMaJrs6TsjAhEQwBCyAKQvPquLzpraW/6AB8Ig0gFELH+vPD7YKjkDxUrSIOfSESIAtCo8/685fJ7tfHAHwiDyAKQo2Vx8OW0trAl39UIA0gDlRyrSIKfSENIBEgC0LdsIWM6LaRqLh/VCAKIA9Wcq19QqnAxomuzpOyMH0hESAUQsf688PtgqOQPH0hFAsgAyAUNwPgKyADIBI3A9grIAMgDTcD0CsgAyARNwPIKyAEQUBrIAYgA0HIK2oQywIgBEH4AGogAkEYaikDADcDACAEQfAAaiACQRBqKQMANwMAIARB6ABqIAJBCGopAwA3AwAgBCACKQMANwNgIAQgBSkDADcDgAEgBEGIAWogBUEIaikDADcDACAEQZABaiAFQRBqKQMANwMAIARBmAFqIAVBGGopAwA3AwAgBCABKQMANwOgASAEQagBaiABQQhqKQMANwMAIARBsAFqIAFBEGopAwA3AwAgBEG4AWogAUEYaikDADcDACAEQRhqIANB+C5qKQMANwMAIARBEGogA0HwLmopAwA3AwAgBEEIaiADQeguaikDADcDACAEIAMpA+AuNwMAIARBOGogA0GYL2opAwA3AwAgBEEwaiADQZAvaikDADcDACAEQShqIANBiC9qKQMANwMAIAQgAykDgC83AyBBBiECDAULQQVBBUGokMAAENYDAAtBAEEAQbiQwAAQ1gMACyAPQt2whYzotpGouH9WDQAgD0LdsIWM6LaRqLh/UgRAIA4hCiAPIQtCqcDGia7Ok7IwIQwMAgsgDkKNlcfDltLawJd/Vg0AQt2whYzotpGouH8hCyAOQo2Vx8OW0trAl39SBEAgDiEKQqnAxomuzpOyMCEMDAILQo2Vx8OW0trAl38hCiANQsf688PtgqOQPFoNAEKpwMaJrs6TsjAhDAwBCyAOQvPquLzpraW/6AB8IgsgDULH+vPD7YKjkDxUrSIQfSEKIA9Co8/685fJ7tfHAHwiEyAOQo2Vx8OW0trAl39UIAsgEFRyrSIOfSELIAwgD0LdsIWM6LaRqLh/VCAOIBNWcq19QqnAxomuzpOyMH0hDCANQsf688PtgqOQPH0hDQsgAyANNwPgKyADIAo3A9grIAMgCzcD0CsgAyAMNwPIKyADQYAuaiABIANByCtqEMsCIAJBBk0NCiACQQdGDQsgA0GAImogAUH4AWopAwAiCiARQgAQvQMgA0GQImogCiASQgAQvQMgA0GgImogCiAUQgAQvQMgA0GwImogCiAXQgAQvQMgA0HwIWogAykDgCIiDUIAQonHmaSu8IHph38QvQMgA0HgIWogA0H4IWopAwAiCkLH+vPD7YKjkDxCABC9AyADQdAhaiAKQo2Vx8OW0trAl39CABC9AyADQfAgaiAKQt2whYzotpGouH9CABC9AyADQZAgaiAKQqnAxomuzpOyMEIAEL0DIANBwCJqIAFB8AFqKQMAIgogEUIAEL0DIANB0CJqIAogEkIAEL0DIANB4CJqIAogFEIAEL0DIANB8CJqIAogF0IAEL0DIANBwCFqIAMpA9AhIhMgA0GIImopAwAiDCADKQOQInwiEHwiCyADQeghaikDACANIAMpA+AhIgp8IApUrXx8Ig0gAykDwCJ8Ig5CAEKJx5mkrvCB6Yd/EL0DIANBsCFqIANByCFqKQMAIgpCx/rzw+2Co5A8QgAQvQMgA0GgIWogCkKNlcfDltLawJd/QgAQvQMgA0GQIWogCkLdsIWM6LaRqLh/QgAQvQMgA0GAIWogCkKpwMaJrs6TsjBCABC9AyADQYAjaiABQegBaikDACIKIBFCABC9AyADQZAjaiAKIBJCABC9AyADQaAjaiAKIBRCABC9AyADQbAjaiAKIBdCABC9AyADQeAgaiADQcgiaikDACANIA5WrXwiGCADKQPQInwiDyADQZgiaikDACAMIBBWrXwiFSADKQOgInwiDCADKQPwIHwiECALIA1WrSADQdghaikDACALIBNUrXx8fCIZfCILIAMpA6AhfCINIANBuCFqKQMAIAMpA7AhIgogDnwgClStfHwiDiADKQOAI3wiE0IAQonHmaSu8IHph38QvQMgA0HQIGogA0HoIGopAwAiCkLH+vPD7YKjkDxCABC9AyADQcAgaiAKQo2Vx8OW0trAl39CABC9AyADQbAgaiAKQt2whYzotpGouH9CABC9AyADQaAgaiAKQqnAxomuzpOyMEIAEL0DIANBwCNqIAEpA+ABIgogEUIAEL0DIANB0CNqIAogEkIAEL0DIANB4CNqIAogFEIAEL0DIANB8CNqIAogF0IAEL0DIANBgCBqIANBiCNqKQMAIA4gE1atfCIbIAMpA5AjfCIWIANBqCJqKQMAIAwgFVStfCIcIAMpA7AifCIVIAMpA5AgfCIaIBAgGVatIANB+CBqKQMAIAwgEFatfHx8IgwgAykD4CJ8IhAgCyAPVK0gA0HYImopAwAgDyAYVK18fHwiDyADKQOQIXwiGCANIA5WrSADQaghaikDACALIA1WrXx8fCIZfCILIAMpA8AgfCINIANB2CBqKQMAIAMpA9AgIgogE3wgClStfHwiDiADKQPAI3wiE0IAQonHmaSu8IHph38QvQMgA0HwH2ogA0GIIGopAwAiCkLH+vPD7YKjkDxCABC9AyADQeAfaiAKQo2Vx8OW0trAl39CABC9AyADQdAfaiAKQt2whYzotpGouH9CABC9AyADQcAfaiAKQqnAxomuzpOyMEIAEL0DIAFBwAFqIQUCQAJAIANByB9qKQMAIANBqCBqKQMAIANBiCFqKQMAIAwgGlStIANBmCBqKQMAIBUgGlatfHwgA0G4ImopAwAgFSAcVK18fCIVIAMpA/AifCIKIA8gEFStIANB6CJqKQMAIAwgEFatfHx8IgwgAykDgCF8IhAgDFStfCAQIBggGVatIANBmCFqKQMAIA8gGFatfHx8Ig8gEFStfCAKIAxWrSADQfgiaikDACAKIBVUrXx8fCIVIAMpA7AjfCIKIANBqCNqKQMAIA8gDyADKQOgI3wiDFatfCAMIAwgCyAWVK0gA0GYI2opAwAgFiAbVK18fHwiD1atfHwiDCADKQOgIHwiECAMVK18IBAgA0G4IGopAwAgDyAPIAMpA7AgfCIWVq18IBYgFiANIA5WrSADQcggaikDACALIA1WrXx8fCIPVq18fCILIBBUrXwgCiAMVq0gA0G4I2opAwAgCiAVVK18fHwiFiADKQPwI3wiCiADQegjaikDACALIAsgAykD4CN8Ig1WrXwgDSANIANB2CNqKQMAIANByCNqKQMAIA4gE1atfCIOIAMpA9AjfCILIA5UrXwgCyALIA98Ig5WrXx8IgtWrXx8IgwgAykDwB98IhAgDFStfCAQIBAgA0HYH2opAwAgCyALIAMpA9AffCIPVq18IA8gA0HoH2opAwAgDiAOIAMpA+AffCILVq18IAsgCyADQfgfaikDACADKQPwHyINIBN8IA1UrXx8Ig1WrXx8Ig4gD1StfHwiD1atfCAKIAxWrSADQfgjaikDACAKIBZUrXx8fCIMQqnAxomuzpOyMFYNAAJAIAxCqcDGia7Ok7IwUQRAIA9C3bCFjOi2kai4f1YNAiAPQt2whYzotpGouH9SBEAgDiEKIA8hC0KpwMaJrs6TsjAhDAwECyAOQo2Vx8OW0trAl39WDQJC3bCFjOi2kai4fyELIA5CjZXHw5bS2sCXf1ENASAOIQpCqcDGia7Ok7IwIQwMAwsgDiEKIA8hCwwCC0KNlcfDltLawJd/IQogDULH+vPD7YKjkDxaDQBCqcDGia7Ok7IwIQwMAQsgDkLz6ri86a2lv+gAfCILIA1Cx/rzw+2Co5A8VK0iEH0hCiAPQqPP+vOXye7XxwB8IhMgDkKNlcfDltLawJd/VCALIBBUcq0iDn0hCyAMIA9C3bCFjOi2kai4f1QgDiATVnKtfUKpwMaJrs6TsjB9IQwgDULH+vPD7YKjkDx9IQ0LIAMgDTcD4CsgAyAKNwPYKyADIAs3A9ArIAMgDDcDyCsgA0GgLmogBSADQcgrahDLAiADQcAdaiABQfgAaikDACIKIBFCABC9AyADQdAdaiAKIBJCABC9AyADQeAdaiAKIBRCABC9AyADQfAdaiAKIBdCABC9AyADQbAdaiADKQPAHSINQgBCiceZpK7wgemHfxC9AyADQaAdaiADQbgdaikDACIKQsf688PtgqOQPEIAEL0DIANBkB1qIApCjZXHw5bS2sCXf0IAEL0DIANBsBxqIApC3bCFjOi2kai4f0IAEL0DIANB0BtqIApCqcDGia7Ok7IwQgAQvQMgA0GAHmogAUHwAGopAwAiCiARQgAQvQMgA0GQHmogCiASQgAQvQMgA0GgHmogCiAUQgAQvQMgA0GwHmogCiAXQgAQvQMgA0GAHWogAykDkB0iEyADQcgdaikDACIMIAMpA9AdfCIQfCILIANBqB1qKQMAIA0gAykDoB0iCnwgClStfHwiDSADKQOAHnwiDkIAQonHmaSu8IHph38QvQMgA0HwHGogA0GIHWopAwAiCkLH+vPD7YKjkDxCABC9AyADQeAcaiAKQo2Vx8OW0trAl39CABC9AyADQdAcaiAKQt2whYzotpGouH9CABC9AyADQcAcaiAKQqnAxomuzpOyMEIAEL0DIANBwB5qIAFB6ABqKQMAIgogEUIAEL0DIANB0B5qIAogEkIAEL0DIANB4B5qIAogFEIAEL0DIANB8B5qIAogF0IAEL0DIANBoBxqIANBiB5qKQMAIA0gDlatfCIYIAMpA5AefCIPIANB2B1qKQMAIAwgEFatfCIVIAMpA+AdfCIMIAMpA7AcfCIQIAsgDVatIANBmB1qKQMAIAsgE1StfHx8Ihl8IgsgAykD4Bx8Ig0gA0H4HGopAwAgAykD8BwiCiAOfCAKVK18fCIOIAMpA8AefCITQgBCiceZpK7wgemHfxC9AyADQZAcaiADQagcaikDACIKQsf688PtgqOQPEIAEL0DIANBgBxqIApCjZXHw5bS2sCXf0IAEL0DIANB8BtqIApC3bCFjOi2kai4f0IAEL0DIANB4BtqIApCqcDGia7Ok7IwQgAQvQMgA0GAH2ogASkDYCIKIBFCABC9AyADQZAfaiAKIBJCABC9AyADQaAfaiAKIBRCABC9AyADQbAfaiAKIBdCABC9AyADQcAbaiADQcgeaikDACAOIBNWrXwiGyADKQPQHnwiFiADQegdaikDACAMIBVUrXwiHCADKQPwHXwiFSADKQPQG3wiGiAQIBlWrSADQbgcaikDACAMIBBWrXx8fCIMIAMpA6AefCIQIAsgD1StIANBmB5qKQMA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xomuzpOyMEIAEL0DIANBgBVqIAFBsAFqKQMAIgogEUIAEL0DIANBkBVqIAogEkIAEL0DIANBoBVqIAogFEIAEL0DIANBsBVqIAogF0IAEL0DIANBgBRqIAMpA5AUIhMgA0HIFGopAwAiDCADKQPQFHwiEHwiCyADQagUaikDACANIAMpA6AUIgp8IApUrXx8Ig0gAykDgBV8Ig5CAEKJx5mkrvCB6Yd/EL0DIANB8BNqIANBiBRqKQMAIgpCx/rzw+2Co5A8QgAQvQMgA0HgE2ogCkKNlcfDltLawJd/QgAQvQMgA0HQE2ogCkLdsIWM6LaRqLh/QgAQvQMgA0HAE2ogCkKpwMaJrs6TsjBCABC9AyADQcAVaiABQagBaikDACIKIBFCABC9AyADQdAVaiAKIBJCABC9AyADQeAVaiAKIBRCABC9AyADQfAVaiAKIBdCABC9AyADQaATaiADQYgVaikDACANIA5WrXwiGCADKQOQFXwiDyADQdgUaikDACAMIBBWrXwiFSADKQPgFHwiDCADKQOwE3wiECALIA1WrSADQZgUaikDACALIBNUrXx8fCIZfCILIAMpA+ATfCINIANB+BNqKQMAIAMpA/ATIgogDnwgClStfHwiDiADKQPAFXwiE0IAQonHmaSu8IHph38QvQMgA0GQE2ogA0GoE2opAwAiCkLH+vPD7YKjkDxCABC9AyADQYATaiAKQo2Vx8OW0trAl39CABC9AyADQfASaiAKQt2whYzotpGouH9CABC9AyADQeASaiAKQqnAxomuzpOyMEIAEL0DIANBgBZqIAEpA6ABIgogEUIAEL0DIANBkBZqIAogEkIAEL0DIANBoBZqIAogFEIAEL0DIANBsBZqIAogF0IAEL0DIANBwBJqIANByBVqKQMAIA4gE1atfCIbIAMpA9AVfCIWIANB6BRqKQMAIAwgFVStfCIcIAMpA/AUfCIVIAMpA9ASfCIaIBAgGVatIANBuBNqKQMAIAwgEFatfHx8IgwgAykDoBV8IhAgCyAPVK0gA0GYFWopAwAgDyAYVK18fHwiDyADKQPQE3wiGCANIA5WrSADQegTaikDACALIA1WrXx8fCIZfCILIAMpA4ATfCINIANBmBNqKQMAIAMpA5ATIgogE3wgClStfHwiDiADKQOAFnwiE0IAQonHmaSu8IHph38Q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2AJqIAhBGGopAwA3AwAgBEHQAmogCEEQaikDADcDACAEQcgCaiAIQQhqKQMANwMAIAQgCCkDADcDwAIgBEH4AmogAUEYaikDADcDACAEQfACaiABQRBqKQMANwMAIARB6AJqIAFBCGopAwA3AwAgBCABKQMANwPgAiAEQRhqIANBmC5qKQMANwMAIARBEGogA0GQLmopAwA3AwAgBEEIaiADQYguaikDADcDACAEIAMpA4AuNwMAIARBOGogA0G4LmopAwA3AwAgBEEwaiADQbAuaikDADcDACAEQShqIANBqC5qKQMANwMAIAQgAykDoC43AyAgBEHYAGogA0HYLmopAwA3AwAgBEHQAGogA0HQLmopAwA3AwAgBEHIAGogA0HILmopAwA3AwAgBCADKQPALjcDQCAEQfgAaiADQfguaikDADcDACAEQfAAaiADQfAuaikDADcDACAEQegAaiADQeguaikDADcDACAEIAMpA+AuNwNgIARBmAFqIANBmC9qKQMANwMAIARBkAFqIANBkC9qKQMANwMAIARBiAFqIANBiC9qKQMANwMAIAQgAykDgC83A4ABQQwhAgsgACACNgIIIAAgBDYCBCAAIAI2AgAgA0GgL2okAA8LQQtBC0GokcAAENYDAAsgA0EANgLIKyADQcQraiADQcAraiADQcgrakHIj8AAEIgEAAtBCEHAARDKBAALQQhBgAMQygQAC0EBQQFB6I/AABDWAwALQQJBAkH4j8AAENYDAAtBA0EDQYiQwAAQ1gMAC0EEQQRBmJDAABDWAwALQQFBAUHIkMAAENYDAAtBBiACQdiQwAAQ1gMAC0EHQQdB6JDAABDWAwALQQhBCEH4kMAAENYDAAtBCUEJQYiRwAAQ1gMAC0EKQQpBmJHAABDWAwALIAcgBRCoBAALiaUCAk1/F34jAEGQCWsiBSQAIAVBADYC0AMgBUKAgICAwAA3AsgDAkACQAJAAkACQAJAAkACQCAERQ0AIARBDGwhBANAIAVB8AFqIAMQZyAFKALQAyIMIAUoAsgDRgRAIAVByANqEJ4DCyADQQxqIQMgBSgCzAMgDEEMbGoiByAFKQLwATcCACAHQQhqIAVB+AFqKAIANgIAIAUgDEEBaiIHNgLQAyAEQQxrIgQNAAsgB0UNACAHQQxsIQsgBSgCzAMiBEEIaigCACEH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QTBqKQMAIVQgB0EoaikDACFSIAMpAwAhVSAHQThqKQMACyFTIAVByAdqIAdBGGopAwA3AwAgBUHAB2ogB0EQaikDADcDACAcIAdBCGopAwA3AwAgBSAHKQMANwOwBwsgBCAraiIDIAUpA7AHNwMAIANBGGogBUHIB2oiQSkDADcDACADQRBqIAVBwAdqIj0pAwA3AwAgA0EIaiAcKQMANwMAIANBOGogUzcDACADQTBqIFQ3AwAgA0EoaiBSNwMAIANBIGogVTcDACAEQUBrIQQgEiAIQQFqIghHDQALICkgKykDIDcDACApQQhqIkMgK0EoaikDADcDACApQRBqIkQgK0EwaikDADcDACApQRhqIkUgK0E4aikDADcDACAFQegEaiIOICtBCGopAwA3AwAgBUHwBGoiCCArQRBqKQMANwMAIAVB+ARqIhMgK0EYaikDADcDACA3ICkpAwA3AwAgBUGIBWoiDCBAKQMANwMAIAVBkAVqIgcgBUHgB2oiFikDADcDACAFQZgFaiIEIAVB6AdqIhEpAwA3AwAgBSArKQMANwPgBCASQQFGDQIgK0FAayEDIAVBqAdqIgogBCkDADcDACAFQaAHaiIJIAcpAwA3AwAgBUGYB2oiDSAMKQMANwMAIDkgNykDADcDACAFQYgHaiIQIBMpAwA3AwAgBUGAB2oiDCAIKQMANwMAIAVB+AZqIgcgDikDADcDACAFIAUpA+AENwPwBkEAIBJBAWtB////H3FrIQQDQCARIAopAwA3AwAgFiAJKQMANwMAIEAgDSkDADcDACApIDkpAwA3AwAgQSAQKQMANwMAID0gDCkDADcDACAcIAcpAwA3AwAgBSAFKQPwBjcDsAcgKiADQSBqKQMANwMAICpBCGogA0EoaikDADcDACAqQRBqIANBMGopAwA3AwAgKkEYaiADQThqKQMANwMAIAVBuAhqIANBCGopAwAiVDcDACAFQcAIaiADQRBqKQMAIlU3AwAgBUHICGogA0EYaikDACJTNwMAIDUgAykDACJSNwMAIDVBCGogVDcDACA1QRBqIFU3AwAgNUEYaiBTNwMAIDVBIGogKikDADcDACA1QShqIAVB2AhqKQMANwMAIDVBMGogBUHgCGopAwA3AwAgNUE4aiAFQegIaikDADcDACAFIFI3A7AIIAVB8AZqIAVBsAdq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IDZBGGoiFiAFQagEaikDADcDACA2QRBqIgwgBUGgBGopAwA3AwAgNkEIaiIHIAVBmARqKQMANwMAIDYgBSkDkAQ3AwAgBUGAAmoiBCA9KQIANwMAIAVB+AFqIgMgHCkCADcDACAFIAUpArAHNwPwASArIEYQuQQgOgRAIDMgOhC5BAsgBUGgAWoiESADKQMANwMAIAVBqAFqIgogBCkDADcDACAFQbgBaiIJIAcpAwA3AwAgBUHAAWoiDSAMKQMANwMAIAVByAFqIhAgFikDADcDACAFQdABaiIMIBMpAwA3AwAgBUHYAWoiByAIKQMANwMAIAVB4AFqIgQgDikDADcDACAFQegBaiIDIC4pAwA3AwAgBSAFKQPwATcDmAEgBSA2KQMANwOwASAFKAKUASITIAUoAowBRgRAIAVBjAFqEJ8DCyAFKAKQASIeIBNBGGxqIhYgBSkDmAE3AgAgMSAJKQMANwMAIDAgDSkDADcDACAvIBApAwA3AwAgLSAMKQMANwMAICYgBykDADcDACAiIAQpAwA3AwAgFSADKQMANwMAIBZBCGogESkDADcCACAWQRBqIAopAwA3AgAgBSAFKQOwATcDSCAFIBNBAWoiCDYClAEgBiAaRw0ACwwECyAIIAxBxIvAABDWAwALQQEgEBCoBAALQfCGwAAQuwQACyADIEYQqAQACyAIQQJPBEAgCEEBdiESIBNBGGwhCEEAIQcDQCAHIB5qIgxBCGoiASkCACFSIAEgCCAeaiIEQQhqIgEpAgA3AgAgASBSNwIAIARBFGooAgAhAyAEQRBqIgEoAgAhAiABIAxBEGoiASkCADcCACAMKQIAIVIgDCAEKQIANwIAIAQgUjcCACABIAI2AgAgDEEUaiADNgIAIAhBGGshCCAHQRhqIQcgEkEBayISDQALIAUoApABIR4gBSgClAEhCAsgBUFAayAFQegBaikDADcDACAFQThqIAVB4AFqKQMANwMAIAVBMGogBUHYAWopAwA3AwAgBUEoaiAFQdABaikDADcDACAFQSBqIAVByAFqKQMANwMAIAVBGGogBUHAAWopAwA3AwAgBUEQaiAFQbgBaikDADcDACAFIAUpA7ABNwMIIAUoAowBIS4gCyEDA0AgAygCACIBBEAgA0EEaigCACABELkECyADQQxqIQMgJEEBayIkDQALIAgh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IAZBpgRqNgKsCSAGIAQ2ArAEIAZBADYCrAQgBiAwNgKoBCMAQZABayIEJAAgBkGoBGoiDCgCBCEHIAwoAgAgBkGQCWoiHyIDKAIUIgUgAygCECIIRwR/IAUgCGshCSADKAIgIQsgAygCHCESIAMoAgAgCGohECAFIAdqIAhrIAMoAgggCEHgAGxqIQ0gDCgCCCAHQeAAbGohFCAEQTBqIQhBACEMA0AgDCANaiEDAkAgEC0AACIHIBItAABHBEAgByALLQAARwRAIARBAEHgABDRBBoMAgsCQAJAIANBwOjAAEEwENAERQRAIANBMGoiB0HA6MAAQTAQ0ARFDQELIARBiAFqIANB2ABqKQMANwMAIARBgAFqIANB0ABqKQMANwMAIARB+ABqIANByABqKQMANwMAIARB8ABqIANBQGspAwA3AwAgBEHoAGogA0E4aikDADcDACAEIANBMGopAwA3A2AgCCAEQeAAahCGAwwBCyAIIAcpAwA3AwAgCEEoaiAHQShqKQMANwMAIAhBIGogB0EgaikDADcDACAIQRhqIAdBGGopAwA3AwAgCEEQaiAHQRBqKQMANwMAIAhBCGogB0EIaikDADcDAAsgBEEoaiADQShqKQMANwMAIARBIGogA0EgaikDADcDACAEQRhqIANBGGopAwA3AwAgBEEQaiADQRBqKQMANwMAIARBCGogA0EIaikDADcDACAEIAMpAwA3AwAMAQsgBEEIaiADQQhqKQMANwMAIARBEGogA0EQaikDADcDACAEQRhqIANBGGopAwA3AwAgBEEgaiADQSBqKQMANwMAIARBKGogA0EoaikDADcDACAIQShqIANB2ABqKQMANwMAIAhBIGogA0HQAGopAwA3AwAgCEEYaiADQcgAaikDADcDACAIQRBqIANBQGspAwA3AwAgCEEIaiADQThqKQMANwMAIAggA0EwaikDADcDACAEIAMpAwA3AwALIAwgFGogBEHgABDPBBogEEEBaiEQIAxB4ABqIQwgCUEBayIJDQALBSAHCzYCACAEQZABaiQAIAYoAtgKIgdFDQIgBigC0AohOSAcIAYoAtQKIhspAzA3AwAgHEEoaiIjIBtB2ABqKQMANwMAIBxBIGoiJCAbQdAAaikDADcDACAcQRhqIiYgG0HIAGopAwA3AwAgHEEQaiItIBtBQGsp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fSJdIFkgXFYgWkKk7MO1j9S0mOcAVnKtIlp9IVlC19mumuT26Y3LACAGKQPoCCJcfSJfIFogXVYgWEK/pZScz/DSu+QAVnKtIlp9IVhCq9X+////v/+5fyBefSFeQprN/8ujvcSAGiAGKQPgCCBaIF9WIFxC19mumuT26Y3LAFZyrXx9DAELIAYpA4gJIV4gBikDgAkhVyAGKQP4CCFbIAYpA/AIIVkgBikD6AghWCAGKQPgCAshWiAOQQxqIQ4gAyAGKQOQBTcDACADIFU3A1ggAyBRNwNQIAMgVDcDSCADIFI3A0AgAyBTNwM4IAMgVjcDMCADQShqIAQpAwA3AwAgA0EgaiAIKQMANwMAIANBGGogDCkDADcDACADQRBqIBApAwA3AwAgA0EIaiAFKQMANwMAIANBuAFqIFU3AwAgA0GwAWogUTcDACADQagBaiBUNwMAIANBoAFqIFI3AwAgA0GYAWogUzcDACADQZABaiBWNwMAIANBiAFqIAQpAwA3AwAgA0GAAWogCCkDADcDACADQfgAaiAMKQMANwMAIANB8ABqIBApAwA3AwAgA0HoAGogBSkDADcDACADIAYpA5AFNwNgIANB6AFqIAQpAwA3AwAgA0HgAWogCCkDADcDACADQdgBaiAMKQMANwMAIANB0AFqIBApAwA3AwAgA0HIAWogBSkDADcDACADIAYpA5AFNwPAASADQZgCaiBVNwMAIANBkAJqIFE3AwAgA0GIAmogVDcDACADQYACaiBSNwMAIANB+AFqIFM3AwAgA0HwAWogVjcDACADQcgCaiAGQdgIaikDADcDACADQcACaiAGQdAIaikDADcDACADQbgCaiAGQcgIaikDADcDACADQbACaiAGQcAIaikDADcDACADQagCaiAGQbgIaikDADcDACADIAYpA7AINwOgAiADQfgCaiBeNwMAIANB8AJqIFc3AwAgA0HoAmogWzcDACADQeACaiBZNwMAIANB2AJqIFg3AwAgA0HQAmogWjcDACAGQQQ2AswFIAYgAzYCyAUgBkEENgLEBSAGQcQFakEEIAcQlQMgBigCyAUiHyAGKALMBSIIQeAAbCIQaiEFQQAhAwNAICMgGyADIgRqIgxB2ABqKQMANwMAICQgDEHQAGopAwA3AwAgJiAMQcgAaikDADcDACAtIAxBQGspAwA3AwAgLyAMQThqKQMANwMAIBwgDEEwaikDADcDACAlIAxBCGopAwA3AwAgISAMQRBqKQMANwMAICcgDEEYaikDADcDACAoIAxBIGopAwA3AwAgKSAMQShqKQMANwMAIAYgDCkDADcDkAkgAyAFaiAGQZAJakHgABDPBBogA0HgAGohAyAIQQFqIQggB0EBayIHDQALIAYgCDYCzAUgBigCxAUhOgJAIAgEQCAEIBBqQeAAaiEEQQAhAyAfIQcDQCAGQagEaiADIB9qIghB4AAQzwQaAkAgJSAIQeAAEM8EIjFBwOjAAEEwENAERQRAIEJBwOjAAEEwENAERQ0BCyAHIAZBqARqQeAAEM4EQeAAaiEHCyAEIANB4ABqIgNHDQALIAcgH0cNAQtB2b7CAC0AABpBDEEEELAEIgxFDQJB2b7CAC0AABpBMEEIELAEIghFDQMgCEEoakGwhcAAKQMANwMAIAhBIGpBqIXAACkDADcDACAIQRhqQaCFwAApAwA3AwAgCEEQakGYhcAAKQMANwMAIAhBCGpBkIXAACkDADcDACAIQYiFwAApAwA3AwAgBkEAOgCwBCAGIAhBMGo2AqwEIAYgCDYCqAQgBkGYCGogBkGoBGoQlAIgBigCoAgiBEECTwRAIARBAXYhByAGKAKcCCIDIARBMGxqQTBrIQQDQCADKQMAIVEgAyAEKQMANwMAICkgA0EoaiIQKQMANwMAICggA0EgaiIFKQMANwMAICcgA0EYaiIJKQMANwMAICEgA0EQaiILKQMANwMAICUgA0EIaiISKQMANwMAIBAgBEEoaiIQKQMANwMAIAUgBEEgaiIFKQMANwMAIAkgBEEYaiIJKQMANwMAIAsgBEEQaiILKQMANwMAIBIgBEEIaiISKQMANwMAIAYgUTcDkAkgECApKQMANwMAIAUgKCkDADcDACAJICcpAwA3AwAgCyAhKQMANwMAIBIgJSkDADcDACAEIAYpA5AJNwMAIARBMGshBCADQTBqIQMgB0EBayIHDQALCyAMIAYpApgINwIAIAxBCGogBkGgCGooAgA2AgAgCEEwELkEIAZBATYCiAggBiAMNgKECCAGQQE2AoAIIAZBkAlqIAZBgAhqEOYBDA0LQQAhCCAHIB9rIgRB4ABuIgxB+ABsIgNBAEggBEHgzJmzBktyDQNB2b7CAC0AABpBCCEIIANBCBCwBCIERQ0DIAZBADYCsAQgBiAENgKsBCAGIAw2AqgEIAYgBDYCmAkgBkEANgKUCSAGICs2ApAJIwBB0ANrIgQkACAGQZAJaiIIKAIEIQkgCCgCACAHIB8iA0cEQCAIKAIIIAlB+ABsaiELIAkgByADa0HgAG4iBWohCSAEQfACaiEMIARB6ABqIREgBEGQAmohECAEQbABaiESA0AgEkEoaiADQdgAaiIPKQMANwMAIBJBIGogA0HQAGoiHSkDADcDACASQRhqIANByABqIiIpAwA3AwAgEkEQaiADQUBrIiwpAwA3AwAgEkEIaiADQThqIi4pAwA3AwAgEiADQTBqIggpAwA3AwAgBEGIAWogA0EIaiINKQMANwMAIARBkAFqIANBEGoiFCkDADcDACAEQZgBaiADQRhqIhgpAwA3AwAgBEGgAWogA0EgaiIXKQMANwMAIARBqAFqIANBKGoiEykDADcDACAEIAMpAwA3A4ABIBBBKGogDykDADcDACAQQSBqIB0pAwA3AwAgEEEYaiAiKQMANwMAIBBBEGogLCkDADcDACAQQQhqIC4pAwA3AwAgECAIKQMANwMAIARB6AFqIA0pAwA3AwAgBEHwAWogFCkDADcDACAEQfgBaiAYKQMANwMAIARBgAJqIBcpAwA3AwAgBEGIAmogEykDADcDACAEIAMpAwA3A+ABAkACQCADQcDowABBMBDQBEUEQCAIQcDowABBMBDQBEUNAQsgBEHIA2ogCEEoaikDADcDACAEQcADaiAIQSBqKQMANwMAIARBuANqIAhBGGopAwA3AwAgBEGwA2ogCEEQaikDADcDACAEQagDaiAIQQhqKQMANwMAIAQgCCkDADcDoAMgDCAEQaADahCGAwwBCyAMIAgpAwA3AwAgDEEoaiAIQShqKQMANwMAIAxBIGogCEEgaikDADcDACAMQRhqIAhBGGopAwA3AwAgDEEQaiAIQRBqKQMANwMAIAxBCGogCEEIaikDADcDAAsgBEHoAmogEykDADcDACAEQeACaiAXKQMANwMAIARB2AJqIBgpAwA3AwAgBEHQAmogFCkDADcDACAEQcgCaiANKQMANwMAIAQgAykDADcDwAIgESAEQeABaiAEQcACahAnIARBCGoiCCAEQYABakHgABDPBBogCyAIQfgAEM8EQfgA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ACEBIARBMGwiAkEASCAEQarVqhVLcg0OQdm+wgAtAAAaQQghASACQQgQsAQiC0UNDkEAIQcgBCEBA0AgAiAHRg0BIAcgC2oiAyAHIBtqIggpAwA3AwAgA0EoaiAIQShqKQMANwMAIANBIGogCEEgaikDADcDACADQRhqIAhBGGopAwA3AwAgA0EQaiAIQRBqKQMANwMAIANBCGogCEEIaikDADcDACAHQTBqIQcgAUEBayIBDQALCyAFIAQ2AugJIAUgCzYC5AkgBSAENgLgCUHZvsIALQAAGkGQAUEIELAEIgNFDQQgBUHgAGoQ1AIgA0GIAWpCodWmgICAwI5uNwMAIANBgAFqQoeA8MvehIDChn83AwAgA0H4AGpC6LvQ78D4iLzPADcDACADQfAAakLRwLPPhr6cvp5/NwMAIANB6ABqQpnXtYOmi4Dv/QA3AwAgA0KFwYvk946+8A03A2AgA0IANwMwIANBOGpCADcDACADQUBrQgA3AwAgA0HIAGpCADcDACADQdAAakIANwMAIANB2ABqQgA3AwAgA0EoaiAFQbABaikDADcDACADQSBqIAVBqAFqKQMANwMAIANBGGogBUGgAWopAwA3AwAgA0EQaiAFQZgBaikDADcDACADQQhqIAVBkAFqKQMANwMAIAMgBSkDiAE3AwAgBUEAOgDICiAFIANBkAFqNgLECiAFIAM2AsAKIAVBkApqIAVBwApqEJQCIAUoApgKIgJBAk8EQCACQQF2IQcgBSgClAoiASACQTBsakEwayECA0AgASkDACFRIAEgAikDADcDACAFQZgLaiIIIAFBKGoiCikDADcDACAFQZALaiIJIAFBIGoiDikDADcDACAFQYgLaiINIAFBGGoiFCkDADcDACAFQYALaiIYIAFBEGoiFykDADcDACAFQfgKaiIRIAFBCGoiDykDADcDACAKIAJBKGoiCikDADcDACAOIAJBIGoiDikDADcDACAUIAJBGGoiFCkDADcDACAXIAJBEGoiFykDADcDACAPIAJBCGoiDykDADcDACAFIFE3A/AKIAogCCkDADcDACAOIAkpAwA3AwAgFCANKQMANwMAIBcgGCkDADcDACAPIBEpAwA3AwAgAiAFKQPwCjcDACACQTBrIQIgAUEwaiEBIAdBAWsiBw0ACwsgBUH4CmogBUGYCmooAgA2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NgLQAwJAICMgJGoiASgCCCICRQ0AQQAhCSACQTBsIhZBAEggAkGq1aoVS3INCSABKAIEIRpB2b7CAC0AABpBCCEJIBZBCBCwBCILRQ0JQQAhDiACIQEDQCAOIBZGDQEgCyAOaiIJIA4gGmoiDykDADcDACAJQShqIA9BKGopAwA3AwAgCUEgaiAPQSBqKQMANwMAIAlBGGogD0EYaikDADcDACAJQRBqIA9BEGopAwA3AwAgCUEIaiAPQQhqKQMANwMAIA5BMGohDiABQQFrIgENAAsLIAogAjYCCCAKIAs2AgQgCiACNgIAIApBxANqIApB0ANqIAoQygEgESgCACIBBEAgESgCBCABQTBsELkECyARIAopAsQDNwIAIBFBCGogCkHMA2ooAgA2AgAgDUEBaiINIBRHDQALCyAKENQCQdm+wgAtAAAaQcABQQgQsAQiAkUNAyACIAopA1g3AwAgAiAKKQMoNwMwIAJBKGogCkGAAWopAwA3AwAgAkEgaiAKQfgAaikDADcDACACQRhqIApB8ABqKQMANwMAIAJBEGogCkHoAGopAwA3AwAgAkEIaiAKQeAAaikDADcDACACQThqIApBMGopAwA3AwAgAkFAayAKQThqKQMANwMAIAJByABqIApBQGspAwA3AwAgAkHQAGogCkHIAGopAwA3AwAgAkHYAGogCkHQAGopAwA3AwAgAkGIAWpCADcDACACQYABakIANwMAIAJB+ABqQgA3AwAgAkHwAGpCADcDACACQegAakIANwMAIAJCADcDYCACQZjNwAApAwA3A5ABIAJBmAFqQaDNwAApAwA3AwAgAkGgAWpBqM3AACkDADcDACACQagBakGwzcAAKQMANwMAIAJBsAFqQbjNwAApAwA3AwAgAkG4AWpBwM3AACkDADcDACAKQQA6AMwDIAogAkHAAWo2AsgDIAogAjYCxAMgCkG4A2ogCkHEA2oQlAIgCigCwAMiCUECTwRAIAlBAXYhDiAKKAK8AyIBIAlBMGxqQTBrIQkDQCABKQMAIVEgASAJKQMANwMAIApB+ANqIgsgAUEoaiINKQMANwMAIApB8ANqIhEgAUEgaiIPKQMANwMAIApB6ANqIhYgAUEYaiIaKQMANwMAIApB4ANqIiMgAUEQaiIkKQMANwMAIApB2ANqIiYgAUEIaiItKQMANwMA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BmogAkEIaikDADcDACAFQZAGaiACQRBqKQMANwMAIAVBmAZqIAJBGGopAwA3AwAgBSACKQMANwOABiAFIFs3A/AFIAUgUTcD+AUgBUHACGogBUGoBWogBUHwBWoQlwIgBSgCuAUhDgJAAkACQCAFKAK8BSICRQ0AQQAhASACQTBsIglBAEggAkGq1aoVS3INAUHZvsIALQAAGkEIIQEgCUEIELAEIgpFDQFBACEBIAIhAwNAIAEgCUYNASABIApqIgggASAOaiIHKQMANwMAIAhBKGogB0EoaikDADcDACAIQSBqIAdBIGopAwA3AwAgCEEYaiAHQRhqKQMANwMAIAhBEGogB0EQaikDADcDACAIQQhqIAdBCGopAwA3AwAgAUEwaiEBIANBAWsiAw0ACwsgBSACNgLcBiAFIAo2AtgGIAUgAjYC1AYgAkEwbCEBAkADQCABRQ0BIAJBAWshAiABQTBrIgEgDmoiA0Gg7sAAQTAQ0ARFDQALIAJBAE4NAgsMAgsgASAJEKgEAAsgBUG4B2oiASADQShqKQMANwMAIAVBsAdqIgIgA0EgaikDADcDACAFQagHaiIIIANBGGopAwA3AwAgBUGgB2oiByADQRBqKQMANwMAIAVBmAdqIgogA0EIaikDADcDACAFIAMpAwA3A5AHAkAgBUGQB2pBmILAAEEwENAEBEBCACFbIAVBgApqQgA3AwAgBUH4CWpCADcDACAFQfAJakIANwMAIAVB6AlqQgA3AwAgBUIANwPgCSAFQgE3A4gKIAVBuApqIAEpAwA3AwAgBUGwCmogAikDADcDACAFQagKaiAIKQMANwMAIAVBoApqIAcpAwA3AwAgBUGYCmogCikDADcDACAFIAUpA5AHNwOQCiAFQegKakHwgsAAKQMANwMAIAVB4ApqQeiCwAApAwA3AwAgBUHYCmpB4ILAACkDADcDACAFQdAKakHYgsAAKQMANwMAIAVByApqQdCCwAApAwA3AwAgBUHIgsAAKQMANwPACiAFQZgLakGgg8AAKQMANwMAIAVBkAtqQZiDwAApAwA3AwAgBUGIC2pBkIPAACkDADcDACAFQYALaiICQYiDwAApAwA3AwAgBUH4CmpBgIPAACkDADcDACAFQfiCwAApAwA3A/AKIAVBiAFqQgA3AwAgBUGAAWpCADcDACAFQfgAakIANwMAIAVB8ABqIgFCADcDACAFQegAakIANwMAIAVCADcDYCAFQZAKaiAFQeAJakEwENAERQRAQq2q5qjb0M+8mn8hUUKqx6uW2fyjzBEhWwwCCyAFQcAKaiAFQeAJakEwENAERQRAIAEhAkIAIVEMAgtCq9X+////v/+5fyFVA0AgBS0AuApBAXFFBEADQCAFQZAKahDDAiAFKQOYCyJRQgGDUEUEQCAFKQOQCyFUIAUgUULVqoGAgIDAgMYAfSJTNwOYCyAFIFRC///Piuv//9UefCJSIFEgU1atfCJTNwOQCyAFIAUpA4gLIlVCpOzDtY/UtJjnAHwiUSBSIFRUIFIgU1ZyrXwiUjcDiAsgBSAFKQOACyJTQr+llJzP8NK75AB8IlQgUSBVVCBRIFJWcq18IlI3A4ALIAUgBSkD+AoiVULX2a6a5PbpjcsAfCJRIFIgVFQgUyBUVnKtfCJUNwP4CiAFIAUpA/AKIFEgVVQgUSBUVnKtfEKazf/Lo73EgBp8NwPwCgsgBUHwCmoQwwIgBS0AuApBAXFFDQALIAUpA+gKIVULIFWnQQFxRQRAA0AgBUHACmoQwwIgBSkDiAEiUUIBg1BFBEAgBSkDgAEhVCAFIFFC1aqBgICAwIDGAH0iUzcDiAEgBSBUQv//z4rr///VHnwiUiBRIFNWrXwiUzcDgAEgBSAFKQN4IlVCpOzDtY/UtJjnAHwiUSBSIFRUIFIgU1ZyrXwiUjcDeCAFIAUpA3AiU0K/pZScz/DSu+QAfCJUIFEgVVQgUSBSVnKtfCJSNwNwIAUgBSkDaCJVQtfZrprk9umNywB8IlEgUiBUVCBTIFRWcq18IlQ3A2ggBSAFKQNgIFEgVVQgUSBUVnKtfEKazf/Lo73EgBp8NwNgCyAFQeAAahDDAiAFKQPoCiJVQgGDUA0ACwsgBSkDmAohWgJAIAUCfgJAAkACQAJ+IAUpA8AKIl0gBSkDkAoiX1IEQCAFKQPQCiFSIAUpA8gKIVQgXSFRIF8hWyAFKQOgCgwBCyAFKQPQCiFSIAUpA6AKIVYgWiAFKQPICiJUUgRAIFQhUSBaIVsgVgwBCyBSIFZSBEAgWiFUIFIhUSBWIVsgVgwBCyAFKQPYCiJRIAUpA6gKIltSBEAgWiFUIFYiUgwBCyAFKQPgCiJTIAUpA7AKIltSBEAgWiFUIFMhUSBWIlIMAQsgVSAFKQO4CiJbUQ0BIFohVCBVIVEgViJSCyFZIFEgW1QgBSkDYCFeIAUpA/AKIVsgBSkD4AohUyAFKQPYCiFRIAUpA7gKIVcgBSkDsAohWCAFKQOoCiFcBEAgUiFWDAILIAUgVSBXfSJgNwPoCiAFIFMgWH0iViBVIFdUrSJVfTcD4AogBSBRIFx9IlcgUyBYVCBVIFZWcq0iU303A9gKIAUgUiBZfSJVIFEgXFQgUyBXVnKtIlF9NwPQCiAFIFQgWn0iUyBSIFlUIFEgVVZyrSJRfTcDyAogBSBdIF99IFQgWlQgUSBTVnKtfTcDwAogBSkDaCFaAkACQCBbIF5SBEAgBSkDgAshVCAFKQP4CiFRIAUpA3AhVyBeIVUgWyFSDAELIAUpA4ALIVQgBSkDcCFXIAUpA/gKIlEgWlIEQCBaIVUgUSFSDAELIFQgV1IEQCBaIVEgVyFVIFQhUgwBCyAFKQN4IlMgBSkDiAsiUlIEQCBXIVQgWiFRIFMhVQwBCyAFKQOAASJZIAUpA5ALIlJSBEAgVyFUIFohUSBZIVUMAQsgVyFUIFohUSAFKQOIASJVIVggWSFcIFMhViBVIAUpA5gLIlJRDQELIFIgVVYgBSkDmAshVSAFKQOQCyFZIAUpA4gLIVMgBSkDiAEhWCAFKQOAASFcIAUpA3ghVg0DCyAFIFggVX03A4gBIAUgXCBZfSJSIFUgWFatIlV9NwOAASAFIFYgU30iWCBSIFVUIFkgXFZyrSJSfTcDeCAFIFcgVH0iVSBTIFZWIFIgWFZyrSJSfTcDcCAFIFogUX0iUyBSIFVWIFQgV1ZyrSJSfSJUNwNoIF4gW30gUiBTViBRIFpWcq19DAMLIAUpA2AhXiAFKQPwCiFbIFohVCBVIVcgUyFYIFEhXCBWIVkLIAUgVyBVfTcDuAogBSBYIFN9IlIgVSBXVq0iV303A7AKIAUgXCBRfSJgIFIgV1QgUyBYVnKtIlJ9NwOoCiAFIFkgVn0iUyBSIGBWIFEgXFZyrSJRfTcDoAogBSBaIFR9IlIgUSBTViBWIFlWcq0iUX03A5gKIAUgXyBdfSBRIFJWIFQgWlZyrX03A5AKIAUpA/gKIV0gBQJ+AkACQAJAIFsgXlIEQCAFKQNwIVMgBSkDaCFUIAUpA4ALIVggWyFRIF4hWgwBCyAFKQNwIVMgBSkDgAshWCAFKQNoIlQgXVIEQCBdIVEgVCFaDAELIFMgWFIEQCBdIVQgWCFRIFMhWgwBCyAFKQOICyJZIAUpA3giWlIEQCBYIVMgXSFUIFkhUQwBCyAFKQOQCyJXIAUpA4ABIlpSBEAgWCFTIF0hVCBXIVEMAQsgWCFTIF0hVCAFKQOYCyJRIVwgVyFWIFkhUiBRIAUpA4gBIlpRDQELIFEgWlQgBSkDiAEhUSAFKQOAASFXIAUpA3ghWSAFKQOYCyFcIAUpA5ALIVYgBSkDiAshUg0BCyAFIFwgUX03A5gLIAUgViBXfSJaIFEgXFatIlF9NwOQCyAFIFIgWX0iXCBWIFdUIFEgWlZyrSJRfTcDiAsgBSBYIFN9IlYgUiBZVCBRIFxWcq0iUX03A4ALIAUgXSBUfSJSIFEgVlYgUyBYVnKtIlN9IlE3A/gKIFsgXn0gUiBTVCBUIF1Wcq19DAELIAVCq9X+////v/+5fyBRfSJaIFx8Ilw3A5gLIAUgVkL//8+K6///1R4gV30iXyBRQqvV/v///7//uX9WrSJgfSJhfCJRIFogXFatfCJWNwOQCyAFIFJCpOzDtY/UtJjnACBZfSJaIF8gYFQgV0L//8+K6///1R5Wcq0iV30iXHwiUiBRIGFUIFEgVlZyrXwiVjcDiAsgBSBYQr+llJzP8NK75AAgU30iXyBXIFpWIFlCpOzDtY/UtJjnAFZyrSJXfSJZfCJRIFIgXFQgUiBWVnKtfCJWNwOACyAFQtfZrprk9umNywAgVH0iWCBXIF9WIFNCv6WUnM/w0rvkAFZyrSJTfSJXIF18IlIgUSBZVCBRIFZWcq18IlE3A/gKIFEgUlQgUiBXVHKtIFsgXn0gUyBYViBUQtfZrprk9umNywBWcq19fEKazf/Lo73EgBp8CyJbNwPwCgwCCyAFIFhCq9X+////v/+5fyBVfSJdfCJYNwOIASAFIFxC///Piuv//9UeIFl9Il8gVUKr1f7///+//7l/Vq0iVX0iYXwiUiBYIF1UrXwiWDcDgAEgBSBWQqTsw7WP1LSY5wAgU30iXCBVIF9WIFlC///Piuv//9UeVnKtIll9Il18IlUgUiBhVCBSIFhWcq18IlY3A3ggBSBXQr+llJzP8NK75AAgVH0iWCBZIFxWIFNCpOzDtY/UtJjnAFZyrSJTfSJZfCJSIFUgXVQgVSBWVnKtfCJVNwNwIAVC19mumuT26Y3LACBRfSJWIFMgWFYgVEK/pZScz/DSu+QAVnKtIld9IlggWnwiUyBSIFlUIFIgVVZyrXwiVDcDaCBTIFhUIFMgVFZyrSBeIFt9IFYgV1QgUULX2a6a5PbpjcsAVnKtfXxCms3/y6O9xIAafAsiXjcDYCBgIVULIAVBkApqIAVB4AlqIgNBMBDQBEUNAiAFQcAKaiADQTAQ0AQNAAsgASECIF4hWyBUIVEMAQsgBUICNwNgQYCHwABBKyAFQeAAakH8iMAAQayJwAAQvgMACyAFQYgJaiACQRhqKQMAIlQ3AwAgBUH4BmogAkEIaikDADcDACAFQYAHaiACQRBqKQMANwMAIAVBiAdqIFQ3AwAgBSACKQMANwPwBiAFIFE3A+gGIAUgWzcD4AYgBUHkBWogBUHUBmogBUHgBmoQlwIgBUHgBWogBUHICGooAgA2AgAgBSAFKQLACDcD2AUgBSgChAUiAkEwbCEBIAUoAoAFIQgDQCABRQ0BIAJBAWshAiABQTBrIgEgCGoiA0Gg7sAAQTAQ0ARFDQALIAJBAEgNACAFQagIaiIBIANBKGopAwA3AwAgBUGgCGoiAiADQSBqKQMANwMAIAVBmAhqIgggA0EYaikDADcDACAFQZAIaiIHIANBEGopAwA3AwAgBUGICGoiCiADQQhqKQMANwMAIAUgAykDADcDgAgCQCAFQYAIakGYgsAAQTAQ0AQEQEIAIVsgBUGACmpCADcDACAFQfgJakIANwMAIAVB8AlqQgA3AwAgBUHoCWpCADcDACAFQgA3A+AJIAVCATcDiAogBUG4CmogASkDADcDACAFQbAKaiACKQMANwMAIAVBqApqIAgpAwA3AwAgBUGgCmogBykDADcDACAFQZgKaiAKKQMANwMAIAUgBSkDgAg3A5AKIAVB6ApqQfCCwAApAwA3AwAgBUHgCmpB6ILAACkDADcDACAFQdgKakHggsAAKQMANwMAIAVB0ApqQdiCwAApAwA3AwAgBUHICmpB0ILAACkDADcDACAFQciCwAApAwA3A8AKIAVBmAtqQaCDwAApAwA3AwAgBUGQC2pBmIPAACkDADcDACAFQYgLakGQg8AAKQMANwMAIAVBgAtqIgJBiIPAACkDADcDACAFQfgKakGAg8AAKQMANwMAIAVB+ILAACkDADcD8AogBUGIAWpCADcDACAFQYABakIANwMAIAVB+ABqQgA3AwAgBUHwAGoiAUIANwMAIAVB6ABqQgA3AwAgBUIANwNgIAVBkApqIAVB4AlqQTAQ0ARFBEBCrarmqNvQz7yafyFRQqrHq5bZ/KPMESFbDAILIAVBwApqIAVB4AlqQTAQ0ARFBEAgASECQgAhUQwCC0Kr1f7///+//7l/IVUDQCAFLQC4CkEBcUUEQANAIAVBkApqEMMCIAUpA5gLIlFCAYNQRQRAIAUpA5ALIVQgBSBRQtWqgYCAgMCAxgB9IlM3A5gLIAUgVEL//8+K6///1R58IlIgUSBTVq18IlM3A5ALIAUgBSkDiAsiVUKk7MO1j9S0mOcAfCJRIFIgVFQgUiBTVnKtfCJSNwOICyAFIAUpA4ALIlNCv6WUnM/w0rvkAHwiVCBRIFVUIFEgUlZyrXwiUjcDgAsgBSAFKQP4CiJVQtfZrprk9umNywB8IlEgUiBUVCBTIFRWcq18IlQ3A/gKIAUgBSkD8AogUSBVVCBRIFRWcq18QprN/8ujvcSAGnw3A/AKCyAFQfAKahDDAiAFLQC4CkEBcUUNAAsgBSkD6AohVQsgVadBAXFFBEADQCAFQcAKahDDAiAFKQOIASJRQgGDUEUEQCAFKQOAASFUIAUgUULVqoGAgIDAgMYAfSJTNwOIASAFIFRC///Piuv//9UefCJSIFEgU1atfCJTNwOAASAFIAUpA3giVUKk7MO1j9S0mOcAfCJRIFIgVFQgUiBTVnKtfCJSNwN4IAUgBSkDcCJTQr+llJzP8NK75AB8IlQgUSBVVCBRIFJWcq18IlI3A3AgBSAFKQNoIlVC19mumuT26Y3LAHwiUSBSIFRUIFMgVFZyrXwiVDcDaCAFIAUpA2AgUSBVVCBRIFRWcq18QprN/8ujvcSAGnw3A2ALIAVB4ABqEMMCIAUpA+gKIlVCAYNQDQALCyAFKQOYCiFaAkAgBQJ+AkACQAJAAn4gBSkDwAoiXSAFKQOQCiJfUgRAIAUpA9AKIVIgBSkDyAohVCBdIVEgXyFbIAUpA6AKDAELIAUpA9AKIVIgBSkDoAohViBaIAUpA8gKIlRSBEAgVCFRIFohWyBWDAELIFIgVlIEQCBaIVQgUiFRIFYhWyBWDAELIAUpA9gKIlEgBSkDqAoiW1IEQCBaIVQgViJSDAELIAUpA+AKIlMgBSkDsAoiW1IEQCBaIVQgUyFRIFYiUgwBCyBVIAUpA7gKIltRDQEgWiFUIFUhUSBWIlILIVkgUSBbVCAFKQNgIV4gBSkD8AohWyAFKQPgCiFTIAUpA9gKIVEgBSkDuAohVyAFKQOwCiFYIAUpA6gKIVwEQCBSIVYMAgsgBSBVIFd9ImA3A+gKIAUgUyBYfSJWIFUgV1StIlV9NwPgCiAFIFEgXH0iVyBTIFhUIFUgVlZyrSJTfTcD2AogBSBSIFl9IlUgUSBcVCBTIFdWcq0iUX03A9AKIAUgVCBafSJTIFIgWVQgUSBVVnKtIlF9NwPICiAFIF0gX30gVCBaVCBRIFNWcq19NwPACiAFKQNoIVoCQAJAIFsgXlIEQCAFKQOACyFUIAUpA/gKIVEgBSkDcCFXIF4hVSBbIVIMAQsgBSkDgAshVCAFKQNwIVcgBSkD+AoiUSBaUgRAIFohVSBRIVIMAQsgVCBXUgRAIFohUSBXIVUgVCFSDAELIAUpA3giUyAFKQOICyJSUgRAIFchVCBaIVEgUyFVDAELIAUpA4ABIlkgBSkDkAsiUlIEQCBXIVQgWiFRIFkhVQwBCyBXIVQgWiFRIAUpA4gBIlUhWCBZIVwgUyFWIFUgBSkDmAsiUlENAQsgUiBVViAFKQOYCyFVIAUpA5ALIVkgBSkDiAshUyAFKQOIASFYIAUpA4ABIVwgBSkDeCFWDQMLIAUgWCBVfTcDiAEgBSBcIFl9IlIgVSBYVq0iVX03A4ABIAUgViBTfSJYIFIgVVQgWSBcVnKtIlJ9NwN4IAUgVyBUfSJVIFMgVlYgUiBYVnKtIlJ9NwNwIAUgWiBRfSJTIFIgVVYgVCBXVnKtIlJ9IlQ3A2ggXiBbfSBSIFNWIFEgWlZyrX0MAwsgBSkDYCFeIAUpA/AKIVsgWiFUIFUhVyBTIVggUSFcIFYhWQsgBSBXIFV9NwO4CiAFIFggU30iUiBVIFdWrSJXfTcDsAogBSBcIFF9ImAgUiBXVCBTIFhWcq0iUn03A6gKIAUgWSBWfSJTIFIgYFYgUSBcVnKtIlF9NwOgCiAFIFogVH0iUiBRIFNWIFYgWVZyrSJRfTcDmAogBSBfIF19IFEgUlYgVCBaVnKtfTcDkAogBSkD+AohXSAFAn4CQAJAAkAgWyBeUgRAIAUpA3AhUyAFKQNoIVQgBSkDgAshWCBbIVEgXiFaDAELIAUpA3AhUyAFKQOACyFYIAUpA2giVCBdUgRAIF0hUSBUIVoMAQsgUyBYUgRAIF0hVCBYIVEgUyFaDAELIAUpA4gLIlkgBSkDeCJaUgRAIFghUyBdIVQgWSFRDAELIAUpA5ALIlcgBSkDgAEiWlIEQCBYIVMgXSFUIFchUQwBCyBYIVMgXSFUIAUpA5gLIlEhXCBXIVYgWSFSIFEgBSkDiAEiWlENAQsgUSBaVCAFKQOIASFRIAUpA4ABIVcgBSkDeCFZIAUpA5gLIVwgBSkDkAshViAFKQOICyFSDQELIAUgXCBRfTcDmAsgBSBWIFd9IlogUSBcVq0iUX03A5ALIAUgUiBZfSJcIFYgV1QgUSBaVnKtIlF9NwOICyAFIFggU30iViBSIFlUIFEgXFZyrSJRfTcDgAsgBSBdIFR9IlIgUSBWViBTIFhWcq0iU30iUTcD+AogWyBefSBSIFNUIFQgXVZyrX0MAQsgBUKr1f7///+//7l/IFF9IlogXHwiXDcDmAsgBSBWQv//z4rr///VHiBXfSJfIFFCq9X+////v/+5f1atImB9ImF8IlEgWiBcVq18IlY3A5ALIAUgUkKk7MO1j9S0mOcAIFl9IlogXyBgVCBXQv//z4rr///VHlZyrSJXfSJcfCJSIFEgYVQgUSBWVnKtfCJWNwOICyAFIFhCv6WUnM/w0rvkACBTfSJfIFcgWlYgWUKk7MO1j9S0mOcAVnKtIld9Ill8IlEgUiBcVCBSIFZWcq18IlY3A4ALIAVC19mumuT26Y3LACBUfSJYIFcgX1YgU0K/pZScz/DSu+QAVnKtIlN9IlcgXXwiUiBRIFlUIFEgVlZyrXwiUTcD+AogUSBSVCBSIFdUcq0gWyBefSBTIFhWIFRC19mumuT26Y3LAFZyrX18QprN/8ujvcSAGnwLIls3A/AKDAILIAUgWEKr1f7///+//7l/IFV9Il18Ilg3A4gBIAUgXEL//8+K6///1R4gWX0iXyBVQqvV/v///7//uX9WrSJVfSJhfCJSIFggXVStfCJYNwOAASAFIFZCpOzDtY/UtJjnACBTfSJcIFUgX1YgWUL//8+K6///1R5Wcq0iWX0iXXwiVSBSIGFUIFIgWFZyrXwiVjcDeCAFIFdCv6WUnM/w0rvkACBUfSJYIFkgXFYgU0Kk7MO1j9S0mOcAVnKtIlN9Ill8IlIgVSBdVCBVIFZWcq18IlU3A3AgBULX2a6a5PbpjcsAIFF9IlYgUyBYViBUQr+llJzP8NK75ABWcq0iV30iWCBafCJTIFIgWVQgUiBVVnKtfCJUNwNoIFMgWFQgUyBUVnKtIF4gW30gViBXVCBRQtfZrprk9umNywBWcq19fEKazf/Lo73EgBp8CyJeNwNgIGAhVQsgBUGQCmogBUHgCWoiA0EwENAERQ0CIAVBwApqIANBMBDQBA0ACyABIQIgXiFbIFQhUQwBCyAFQgI3A2BBgIfAAEErIAVB4ABqQfyIwABBnInAABC+AwALIAVB2AlqIAJBGGopAwAiVDcDACAFQdAJaiACQRBqKQMAIlI3AwBBCCEKIAVByAlqIAJBCGopAwAiUzcDACAFQegHaiBTNwMAIAVB8AdqIFI3AwAgBUH4B2ogVDcDACAFIAIpAwAiVDcDwAkgBSBRNwPYByAFIFs3A9AHIAUgVDcD4AcgBUHEB2ogBUHABWogBUHQB2oQlwIgBSgC0AUhCwJAIAUoAtQFIghFDQBBACEBIAhBMGwiAkEASCAIQarVqhVLcg0FQdm+wgAtAAAaQQghASACQQgQsAQiCkUNBUEAIQcgCCEDA0AgAiAHRg0BIAcgCmoiASAHIAtqIgkpAwA3AwAgAUEoaiAJQShqKQMANwMAIAFBIGogCUEgaikDADcDACABQRhqIAlBGGopAwA3AwAgAUEQaiAJQRBqKQMANwMAIAFBCGogCUEIaikDADcDACAHQTBqIQcgA0EBayIDDQALCyAFIAg2ArwIIAUgCjYCuAggBSAINgK0CCAIQTBsIQEgCCECA0AgAUUNASACQQFrIQIgAUEwayIBIAtqIgNBoO7AAEEwENAERQ0ACwJAIAJBAE4NAAwBCyAFQZgJaiIBIANBKGopAwA3AwAgBUGQCWoiAiADQSBqKQMANwMAIAVBiAlqIgcgA0EYaikDADcDACAFQYAJaiIJIANBEGopAwA3AwAgBUH4CGoiDSADQQhqKQMANwMAIAUgAykDADcD8AgCQCAFQfAIakGYgsAAQTAQ0AQEQEIAIVEgBUGACmpCADcDACAFQfgJakIANwMAIAVB8AlqQgA3AwAgBUHoCWpCADcDACAFQgA3A+AJIAVCATcDiAogBUG4CmogASkDADcDACAFQbAKaiACKQMANwMAIAVBqApqIAcpAwA3AwAgBUGgCmogCSkDADcDACAFQZgKaiANKQMANwMAIAUgBSkD8Ag3A5AKIAVB6ApqQfCCwAApAwA3AwAgBUHgCmpB6ILAACkDADcDACAFQdgKakHggsAAKQMANwMAIAVB0ApqQdiCwAApAwA3AwAgBUHICmpB0ILAACkDADcDACAFQciCwAApAwA3A8AKIAVBmAtqQaCDwAApAwA3AwAgBUGQC2pBmIPAACkDADcDACAFQYgLakGQg8AAKQMANwMAIAVBgAtqIgJBiIPAACkDADcDACAFQfgKakGAg8AAKQMANwMAIAVB+ILAACkDADcD8AogBUGIAWpCADcDACAFQYABakIANwMAIAVB+ABqQgA3AwAgBUHwAGoiAUIANwMAIAVB6ABqQgA3AwAgBUIANwNgIAVBkApqIAVB4AlqQTAQ0ARFBEBCqserltn8o8wRIVtCrarmqNvQz7yafyFRDAILIAVBwApqIAVB4AlqQTAQ0ARFBEAgASECQgAhWwwCC0Kr1f7///+//7l/IVUDQCAFLQC4CkEBcUUEQANAIAVBkApqEMMCIAUpA5gLIlFCAYNQRQRAIAUpA5ALIVQgBSBRQtWqgYCAgMCAxgB9IlM3A5gLIAUgVEL//8+K6///1R58IlIgUSBTVq18IlM3A5ALIAUgBSkDiAsiVUKk7MO1j9S0mOcAfCJRIFIgVFQgUiBTVnKtfCJSNwOICyAFIAUpA4ALIlNCv6WUnM/w0rvkAHwiVCBRIFVUIFEgUlZyrXwiUjcDgAsgBSAFKQP4CiJVQtfZrprk9umNywB8IlEgUiBUVCBTIFRWcq18IlQ3A/gKIAUgBSkD8AogUSBVVCBRIFRWcq18QprN/8ujvcSAGnw3A/AKCyAFQfAKahDDAiAFLQC4CkEBcUUNAAsgBSkD6AohVQsgVadBAXFFBEADQCAFQcAKahDDAiAFKQOIASJRQgGDUEUEQCAFKQOAASFUIAUgUULVqoGAgIDAgMYAfSJTNwOIASAFIFRC///Piuv//9UefCJSIFEgU1atfCJTNwOAASAFIAUpA3giVUKk7MO1j9S0mOcAfCJRIFIgVFQgUiBTVnKtfCJSNwN4IAUgBSkDcCJTQr+llJzP8NK75AB8IlQgUSBVVCBRIFJWcq18IlI3A3AgBSAFKQNoIlVC19mumuT26Y3LAHwiUSBSIFRUIFMgVFZyrXwiVDcDaCAFIAUpA2AgUSBVVCBRIFRWcq18QprN/8ujvcSAGnw3A2ALIAVB4ABqEMMCIAUpA+gKIlVCAYNQDQALCyAFKQOYCiFaAkAgBQJ+AkACQAJAAn4gBSkDwAoiXSAFKQOQCiJfUgRAIAUpA9AKIVIgBSkDyAohVCBdIVEgXyFbIAUpA6AKDAELIAUpA9AKIVIgBSkDoAohViBaIAUpA8gKIlRSBEAgVCFRIFohWyBWDAELIFIgVlIEQCBaIVQgUiFRIFYhWyBWDAELIAUpA9gKIlEgBSkDqAoiW1IEQCBaIVQgViJSDAELIAUpA+AKIlMgBSkDsAoiW1IEQCBaIVQgUyFRIFYiUgwBCyBVIAUpA7gKIltRDQEgWiFUIFUhUSBWIlILIVkgUSBbVCAFKQNgIV4gBSkD8AohWyAFKQPgCiFTIAUpA9gKIVEgBSkDuAohVyAFKQOwCiFYIAUpA6gKIVwEQCBSIVYMAgsgBSBVIFd9ImA3A+gKIAUgUyBYfSJWIFUgV1StIlV9NwPgCiAFIFEgXH0iVyBTIFhUIFUgVlZyrSJTfTcD2AogBSBSIFl9IlUgUSBcVCBTIFdWcq0iUX03A9AKIAUgVCBafSJTIFIgWVQgUSBVVnKtIlF9NwPICiAFIF0gX30gVCBaVCBRIFNWcq19NwPACiAFKQNoIVoCQAJAIFsgXlIEQCAFKQOACyFUIAUpA/gKIVEgBSkDcCFXIF4hVSBbIVIMAQsgBSkDgAshVCAFKQNwIVcgBSkD+AoiUSBaUgRAIFohVSBRIVIMAQsgVCBXUgRAIFohUSBXIVUgVCFSDAELIAUpA3giUyAFKQOICyJSUgRAIFchVCBaIVEgUyFVDAELIAUpA4ABIlkgBSkDkAsiUlIEQCBXIVQgWiFRIFkhVQwBCyBXIVQgWiFRIAUpA4gBIlUhWCBZIVwgUyFWIFUgBSkDmAsiUlENAQsgUiBVViAFKQOYCyFVIAUpA5ALIVkgBSkDiAshUyAFKQOIASFYIAUpA4ABIVwgBSkDeCFWDQMLIAUgWCBVfTcDiAEgBSBcIFl9IlIgVSBYVq0iVX03A4ABIAUgViBTfSJYIFIgVVQgWSBcVnKtIlJ9NwN4IAUgVyBUfSJVIFMgVlYgUiBYVnKtIlJ9NwNwIAUgWiBRfSJTIFIgVVYgVCBXVnKtIlJ9IlQ3A2ggXiBbfSBSIFNWIFEgWlZyrX0MAwsgBSkDYCFeIAUpA/AKIVsgWiFUIFUhVyBTIVggUSFcIFYhWQsgBSBXIFV9NwO4CiAFIFggU30iUiBVIFdWrSJXfTcDsAogBSBcIFF9ImAgUiBXVCBTIFhWcq0iUn03A6gKIAUgWSBWfSJTIFIgYFYgUSBcVnKtIlF9NwOgCiAFIFogVH0iUiBRIFNWIFYgWVZyrSJRfTcDmAogBSBfIF19IFEgUlYgVCBaVnKtfTcDkAogBSkD+AohXSAFAn4CQAJAAkAgWyBeUgRAIAUpA3AhUyAFKQNoIVQgBSkDgAshWCBbIVEgXiFaDAELIAUpA3AhUyAFKQOACyFYIAUpA2giVCBdUgRAIF0hUSBUIVoMAQsgUyBYUgRAIF0hVCBYIVEgUyFaDAELIAUpA4gLIlkgBSkDeCJaUgRAIFghUyBdIVQgWSFRDAELIAUpA5ALIlcgBSkDgAEiWlIEQCBYIVMgXSFUIFchUQwBCyBYIVMgXSFUIAUpA5gLIlEhXCBXIVYgWSFSIFEgBSkDiAEiWlENAQsgUSBaVCAFKQOIASFRIAUpA4ABIVcgBSkDeCFZIAUpA5gLIVwgBSkDkAshViAFKQOICyFSDQELIAUgXCBRfTcDmAsgBSBWIFd9IlogUSBcVq0iUX03A5ALIAUgUiBZfSJcIFYgV1QgUSBaVnKtIlF9NwOICyAFIFggU30iViBSIFlUIFEgXFZyrSJRfTcDgAsgBSBdIFR9IlIgUSBWViBTIFhWcq0iU30iUTcD+AogWyBefSBSIFNUIFQgXVZyrX0MAQsgBUKr1f7///+//7l/IFF9IlogXHwiXDcDmAsgBSBWQv//z4rr///VHiBXfSJfIFFCq9X+////v/+5f1atImB9ImF8IlEgWiBcVq18IlY3A5ALIAUgUkKk7MO1j9S0mOcAIFl9IlogXyBgVCBXQv//z4rr///VHlZyrSJXfSJcfCJSIFEgYVQgUSBWVnKtfCJWNwOICyAFIFhCv6WUnM/w0rvkACBTfSJfIFcgWlYgWUKk7MO1j9S0mOcAVnKtIld9Ill8IlEgUiBcVCBSIFZWcq18IlY3A4ALIAVC19mumuT26Y3LACBUfSJYIFcgX1YgU0K/pZScz/DSu+QAVnKtIlN9IlcgXXwiUiBRIFlUIFEgVlZyrXwiUTcD+AogUSBSVCBSIFdUcq0gWyBefSBTIFhWIFRC19mumuT26Y3LAFZyrX18QprN/8ujvcSAGnwLIls3A/AKDAILIAUgWEKr1f7///+//7l/IFV9Il18Ilg3A4gBIAUgXEL//8+K6///1R4gWX0iXyBVQqvV/v///7//uX9WrSJVfSJhfCJSIFggXVStfCJYNwOAASAFIFZCpOzDtY/UtJjnACBTfSJcIFUgX1YgWUL//8+K6///1R5Wcq0iWX0iXXwiVSBSIGFUIFIgWFZyrXwiVjcDeCAFIFdCv6WUnM/w0rvkACBUfSJYIFkgXFYgU0Kk7MO1j9S0mOcAVnKtIlN9Ill8IlIgVSBdVCBVIFZWcq18IlU3A3AgBULX2a6a5PbpjcsAIFF9IlYgUyBYViBUQr+llJzP8NK75ABWcq0iV30iWCBafCJTIFIgWVQgUiBVVnKtfCJUNwNoIFMgWFQgUyBUVnKtIF4gW30gViBXVCBRQtfZrprk9umNywBWcq19fEKazf/Lo73EgBp8CyJeNwNgIGAhVQsgBUGQCmogBUHgCWoiA0EwENAERQ0CIAVBwApqIANBMBDQBA0ACyABIQIgVCFRIF4hWwwBCyAFQgI3A2BBgIfAAEErIAVB4ABqQfyIwABBjInAABC+AwALIAVBuAlqIAJBGGopAwAiVDcDACAFQbAJaiACQRBqKQMAIlI3AwAgBUGoCWogAkEIaikDACJTNwMAIAVB2AhqIFM3AwAgBUHgCGogUjcDACAFQegIaiBUNwMAIAUgAikDACJUNwOgCSAFIFE3A8gIIAUgWzcDwAggBSBUNwPQCCAFQewAaiAFQbQIaiAFQcAIahCXAiAFQegAaiIBIAVBzAdqKAIANgIAIAUgBSkCxAciUTcDYCATQRBqIAVB6AVqKQMANwIAIBNBCGogBUHgBWopAwA3AgAgEyAFKQPYBTcCACATIFE3AhggE0EgaiABKQMANwIAIBNBKGogBUHwAGopAwA3AgAgBSgCzAUiAQRAIAsgAUEwbBC5BAsgBSgCwAUiAQRAIAUoAsQFIAFBMGwQuQQLIAUoArQFIgEEQCAOIAFBMGwQuQQLIAUoAqgFIgEEQCAFKAKsBSABQTBsELkECyAFKAKYBSIBBEAgBSgCnAUgAUEwbBC5BAsgBSgCiAUiAQRAIAUoAowFIAFBMGwQuQQLIAUoAvwEIgEEQCAFKAKABSABQTBsELkECyAFKALoBCEDIAUoAuwEIgIEQCADIQEDQCABKAIAIgcEQCABQQRqKAIAIAdBMGwQuQQLIAFBDGohASACQQFrIgINAAsLIAUoAuQEIgEEQCADIAFBDGwQuQQLIAUoAvAEIgEEQCAFKAL0BCABQTBsELkECyAFKALQBCEDIAUoAtQEIgIEQCADIQEDQCABKAIAIgcEQCABQQRqKAIAIAdBMGwQuQQLIAFBDGohASACQQFrIgINAAsLIAUoAswEIgEEQCADIAFBDGwQuQQLIAUoAtgEIgEEQCAFKALcBCABQTBsELkECyAEBEAgGyAEQTBsELkECyAFKAIoIQMgBSgCLCICBEAgAyEBA0AgASgCACIEBEAgAUEEaigCACAEQTBsELkECyABQQxqIQEgAkEBayICDQALCyAFKAIkIgEEQCADIAFBDGwQuQQLIAUoAjAiAQRAIAUoAjQgAUEwbBC5BAsgBSgCECEDIAUoAhQiAgRAIAMhAQNAIAEoAgAiBARAIAFBBGooAgAgBEEwbBC5BAsgAUEMaiEBIAJBAWsiAg0ACwsgBSgCDCIBBEAgAyABQQxsELkECyAFKAIYIgEEQCAFKAIcIAFBMGwQuQQLIAogCEEwbBC5BCAFKALUBiIBBEAgBSgC2AYgAUEwbBC5BAsgFSgCCCICBEAgFSgCBCEBA0AgASgCACIDBEAgAUEEaigCACADQTBsELkECyABQQxqIQEgAkEBayICDQALCyAVKAIAIgEEQCAVKAIEIAFBDGwQuQQLIBUoAgwiAQRAIBUoAhAgAUEwbBC5BAsgBUGgC2okAAwFC0G888AAQSsgBUHgAGpB6PPAAEH488AAEL4DAAsgASAKEKgEAAsgASAKEKgEAAtBBEEYEMoEAAsgASACEKgEAAsgJyAMQTBsaiIBQShqIBlBMGopAgA3AgAgAUEgaiAZQShqKQIANwIAIAFBGGogGUEgaikCADcCACABQRBqIBlBGGopAgA3AgAgAUEIaiAZQRBqKQIANwIAIAEgGSkCCDcCACAMQQFqIQwgEEEBaiIQIChHDQALCyAlIAw2AgAgGUHQAGokAAwBCyACIAcQqAQACyAGQfABaiAgKAIAIhg2AgAgBiAGKQLIAjcD6AEgGEUNAQJAIAYoAuwBIhEoAggiAUUNAEEAIQMgAUEwbCIEQQBIIAFBqtWqFUtyDQ8gESgCBCEMQdm+wgAtAAAaQQghAyAEQQgQsAQiKkUND0EAIQcgASEIA0AgBCAHRg0BIAcgKmoiAiAHIAxqIgMpAwA3AwAgAkEoaiADQShqKQMANwMAIAJBIGogA0EgaikDADcDACACQRhqIANBGGopAwA3AwAgAkEQaiADQRBqKQMANwMAIAJBCGogA0EIaikDADcDACAHQTBqIQcgCEEBayIIDQALC0EIIQ9BCCEWAkAgESgCFCIMRQ0AQQAhAyAMQTBsIgRBAEggDEGq1aoVS3INDyARKAIQIRBB2b7CAC0AABpBCCEDIARBCBCwBCIWRQ0PQQAhByAMIQgDQCAEIAdGDQEgByAWaiICIAcgEGoiAykDADcDACACQShqIANBKGopAwA3AwAgAkEgaiADQSBqKQMANwMAIAJBGGogA0EYaikDADcDACACQRBqIANBEGopAwA3AwAgAkEIaiADQQhqKQMANwMAIAdBMGohByAIQQFrIggNAAsLAkAgESgCICIJRQ0AQQAhAyAJQTBsIgRBAEggCUGq1aoVS3INDyARKAIcIRBB2b7CAC0AABpBCCEDIARBCBCwBCIPRQ0PQQAhByAJIQgDQCAEIAdGDQEgByAPaiICIAcgEGoiAykDADcDACACQShqIANBKGopAwA3AwAgAkEgaiADQSBqKQMANwMAIAJBGGogA0EYaikDADcDACACQRBqIANBEGopAwA3AwAgAkEIaiADQQhqKQMANwMAIAdBMGohByAIQQFrIggNAAsLQQghGwJAIBEoAiwiAkUNAEEAIQMgAkEwbCIQQQBIIAJBqtWqFUtyDQMgESgCKCEFQdm+wgAtAAAaQQghAyAQQQgQsAQiG0UNA0EAIQcgAiEIA0AgByAQRg0BIAcgG2oiAyAFIAdqIgQpAwA3AwAgA0EoaiAEQShqKQMANwMAIANBIGogBEEgaikDADcDACADQRhqIARBGGopAwA3AwAgA0EQaiAEQRBqKQMANwMAIANBCGogBEEIaikDADcDACAHQTBqIQcgCEEBayIIDQALCyAGQfACakIANwMAIAZB6AJqQgA3AwAgBkHgAmpCADcDACAGQdgCakIANwMAIAZB0AJqQgA3AwAgBkIANwPIAiAGQqHVpoCAgMCObjcDuAkgBkKHgPDL3oSAwoZ/NwOwCSAGQui70O/A+Ii8zwA3A6gJIAZC0cCzz4a+nL6efzcDoAkgBkKZ17WDpouA7/0ANwOYCSAGQoXBi+T3jr7wDTcDkAkgBkHQBWogBkHIAmogBkGQCWoQ/wEgBkHYCGpBsIXAACkDADcDACAGQdAIakGohcAAKQMANwMAIAZByAhqQaCFwAApAwA3AwAgBkHACGpBmIXAACkDADcDACAGQbgIakGQhcAAKQMANwMAIAZBiIXAACkDADcDsAggGEEBRgRAIAEhDiAMIRkgCSEUIAIhFwwMCyAGQbgJaiAGQfgFaikDADcDACAGQbAJaiAGQfAFaikDADcDACAGQagJaiAGQegFaikDADcDACAGQaAJaiAGQeAFaikDADcDAEEIIQsgBkGYCWogBkHYBWopAwA3AwAgBiAGKQPQBTcDkAkgBkGwCGogBkGQCWoQsgFBCCETAkAgEUE4aigCACIERQ0AQQAhAyAEQTBsIgVBAEggBEGq1aoVS3INBCARQTRqKAIAIQpB2b7CAC0AABpBCCEDIAVBCBCwBCITRQ0EQQAhByAEIQgDQCAFIAdGDQEgByATaiIDIAcgCmoiECkDADcDACADQShqIBBBKGopAwA3AwAgA0EgaiAQQSBqKQMANwMAIANBGGogEEEYaikDADcDACADQRBqIBBBEGopAwA3AwAgA0EIaiAQQQhqKQMANwMAIAdBMGohByAIQQFrIggNAAsLAkAgEUHEAGooAgAiBUUNAEEAIQMgBUEwbCIKQQBIIAVBqtWqFUtyDQUgEUFAaygCACEOQdm+wgAtAAAaQQghAyAKQQgQsAQiC0UNBUEAIQcgBSEIA0AgByAKRg0BIAcgC2oiAyAHIA5qIhApAwA3AwAgA0EoaiAQQShqKQMANwMAIANBIGogEEEgaikDADcDACADQRhqIBBBGGopAwA3AwAgA0EQaiAQQRBqKQMANwMAIANBCGogEEEIaikDADcDACAHQTBqIQcgCEEBayIIDQALC0EIIQ5BCCEQAkAgEUHQAGooAgAiCkUNAEEAIQMgCkEwbCINQQBIIApBqtWqFUtyDQYgEUHMAGooAgAhFEHZvsIALQAAGkEIIQMgDUEIELAEIhBFDQZBACEHIAohCANAIAcgDUYNASAHIBBqIgMgByAUaiIZKQMANwMAIANBKGogGUEoaikDADcDACADQSBqIBlBIGopAwA3AwAgA0EYaiAZQRhqKQMANwMAIANBEGogGUEQaikDADcDACADQQhqIBlBCGopAwA3AwAgB0EwaiEHIAhBAWsiCA0ACwsCQCARQdwAaigCACIZRQ0AQQAhAyAZQTBsIhRBAEggGUGq1aoVS3INByARQdgAaigCACEXQdm+wgAtAAAaQQghAyAUQQgQsAQiDkUNB0EAIQcgGSEIA0AgByAURg0BIAcgDmoiAyAHIBdqIg0pAwA3AwAgA0EoaiANQShqKQMANwMAIANBIGogDUEgaikDADcDACADQRhqIA1BGGopAwA3AwAgA0EQaiANQRBqKQMANwMAIANBCGogDUEIaikDADcDACAHQTBqIQcgCEEBayIIDQALCyAGIBk2AvQCIAYgDjYC8AIgBiAZNgLsAiAGIAo2AugCIAYgEDYC5AIgBiAKNgLgAiAGIAU2AtwCIAYgCzYC2AIgBiAFNgLUAiAGIAQ2AtACIAYgEzYCzAIgBiAENgLIAiAGQbgJaiAGQdgIaikDADcDACAGQbAJaiAGQdAIaikDADcDACAGQagJaiAGQcgIaikDADcDACAGQaAJaiIDIAZBwAhqKQMANwMAIAZBmAlqIgQgBkG4CGopAwA3AwAgBiAGKQOwCDcDkAkgBkGoBGogBkHIAmogBkGQCWoiCBD4ASAGIAw2AtQDIAYgFjYC0AMgBiAMNgLMAyAGIAE2AsgDIAYgKjYCxAMgBiABNgLAAyADIAZBuARqKQIANwMAIAQgBkGwBGopAgA3AwAgBiAGKQKoBDcDkAkgBkHQCmogBkHAA2oiASAIEBkgBiACNgLUAyAGIBs2AtADIAYgAjYCzAMgBiAJNgLIAyAGIA82AsQDIAYgCTYCwAMgAyAGQdAEaikCADcDACAEIAZByARqKQIANwMAIAYgBikCwAQ3A5AJIAZB6ApqIiUgASAIEBkgBigC0AohASAGKALUCiEqIAYoAtgKIQ4gBigC3AohDCAGKALgCiEWIAYoAuQKIRkgBigC6AohCSAGKALsCiEPIAYoAvAKIRQgBigC9AohAiAGKAL4CiEbIAYoAvwKIRcgBigCyAIiAwRAIAYoAswCIANBMGwQuQQLIAYoAtQCIgMEQCAGKALYAiADQTBsELkECyAGKALgAiIDBEAgBigC5AIgA0EwbBC5BAsgEUHgAGohBSAGKALsAiIDBEAgBigC8AIgA0EwbBC5BAsgGEEwbCARaiInIAVGDQsgBkHABGohHgNAIAZBuAlqIiggBkH4BWopAwA3AwAgBkGwCWoiKSAGQfAFaikDADcDACAGQagJaiIdIAZB6AVqKQMANwMAIAZBoAlqIhogBkHgBWopAwA3AwAgBkGYCWoiICAGQdgFaikDADcDACAGIAYpA9AFNwOQCSAGQbAIaiAGQZAJahCyAUEIIRMCQCAFKAIIIgRFDQBBACEDIARBMGwiCkEASCAEQarVqhVLcg0JIAUoAgQhC0HZvsIALQAAGkEIIQMgCkEIELAEIhNFDQlBACEHIAQhCANAIAcgCkYNASAHIBNqIgMgByALaiIQKQMANwMAIANBKGogEEEoaikDADcDACADQSBqIBBBIGopAwA3AwAgA0EYaiAQQRhqKQMANwMAIANBEGogEEEQaikDADcDACADQQhqIBBBCGopAwA3AwAgB0EwaiEHIAhBAWsiCA0ACwtBCCEQQQghCwJAIAUoAhQiCkUNAEEAIQMgCkEwbCIYQQBIIApBqtWqFUtyDQogBSgCECEVQdm+wgAtAAAaQQghAyAYQQgQsAQiC0UNCkEAIQcgCiEIA0AgByAYRg0BIAcgC2oiAyAHIBVqIg0pAwA3AwAgA0EoaiANQShqKQMANwMAIANBIGogDUEgaikDADcDACADQRhqIA1BGGopAwA3AwAgA0EQaiANQRBqKQMANwMAIANBCGogDUEIaikDADcDACAHQTBqIQcgCEEBayIIDQALCwJAIAUoAiAiDUUNAEEAIQMgDUEwbCIVQQBIIA1BqtWqFUtyDQsgBSgCHCEcQdm+wgAtAAAaQQghAyAVQQgQsAQiEEUNC0EAIQcgDSEIA0AgByAVRg0BIAcgEGoiAyAHIBxqIhgpAwA3AwAgA0EoaiAYQShqKQMANwMAIANBIGogGEEgaikDADcDACADQRhqIBhBGGopAwA3AwAgA0EQaiAYQRBqKQMANwMAIANBCGogGEEIaikDADcDACAHQTBqIQcgCEEBayIIDQALCwJAIAUoAiwiGEUEQEEIIRUMAQtBACEDIBhBMGwiIUEASCAYQarVqhVLcg0MIAUoAighI0HZvsIALQAAGkEIIQMgIUEIELAEIhVFDQxBACEHIBghCANAIAcgIUYNASAHIBVqIgMgByAjaiIcKQMANwMAIANBKGogHEEoaikDADcDACADQSBqIBxBIGopAwA3AwAgA0EYaiAcQRhqKQMANwMAIANBEGogHEEQaikDADcDACADQQhqIBxBCGopAwA3AwAgB0EwaiEHIAhBAWsiCA0ACwsgBiAYNgL0AiAGIBU2AvACIAYgGDYC7AIgBiANNgLoAiAGIBA2AuQCIAYgDTYC4AIgBiAKNgLcAiAGIAs2AtgCIAYgCjYC1AIgBiAENgLQAiAGIBM2AswCIAYgBDYCyAIgKCAGQdgIaikDADcDACApIAZB0AhqKQMANwMAIB0gBkHICGopAwA3AwAgGiAGQcAIaikDADcDACAgIAZBuAhqKQMANwMAIAYgBikDsAg3A5AJIAZBqARqIAZByAJqIAZBkAlqIgMQ+AEgBiAZNgLUAyAGIBY2AtADIAYgDDYCzAMgBiAONgLIAyAGICo2AsQDIAYgATYCwAMgGiAGQbgEaikCADcDACAgIAZBsARqKQIANwMAIAYgBikCqAQ3A5AJIAZB0ApqIAZBwANqIgEgAxAZIAYgFzYC1AMgBiAbNgLQAyAGIAI2AswDIAYgFDYCyAMgBiAPNgLEAyAGIAk2AsADIBogHkEQaikCADcDACAgIB5BCGopAgA3AwAgBiAeKQIANwOQCSAlIAEgAxAZIAYoAtAKIQEgBigC1AohKiAGKALYCiEOIAYoAtwKIQwgBigC4AohFiAGKALkCiEZIAYoAugKIQkgBigC7AohDyAGKALwCiEUIAYoAvQKIQIgBigC+AohGyAGKAL8CiEXIAYoAsgCIgMEQCAGKALMAiADQTBsELkECyAGKALUAiIDBEAgBigC2AIgA0EwbBC5BAsgBigC4AIiAwRAIAYoAuQCIANBMGwQuQQLIAYoAuwCIgMEQCAGKALwAiADQTBsELkECyAnIAVBMGoiBUcNAAsMCwsgByABEKgEAAtBAEEAQcyHwAAQ1gMACyADIBAQqAQACyADIAUQqAQACyADIAoQqAQACyADIA0QqAQACyADIBQQqAQACyADIAoQqAQACyADIBgQqAQACyADIBUQqAQACyADICEQqAQACyAAIAZB4AAQzwQiACAXNgKMASAAIBs2AogBIAAgAjYChAEgACAUNgKAASAAIA82AnwgACAJNgJ4IAAgGTYCdCAAIBY2AnAgACAMNgJsIAAgDjYCaCAAICo2AmQgACABNgJgIAZB6AFqIgAoAggiAQRAIAAoAgQhAANAIAAoAgAiAgRAIABBBGooAgAgAkEwbBC5BAsgAEEMaigCACICBEAgAEEQaigCACACQTBsELkECyAAQRhqKAIAIgIEQCAAQRxqKAIAIAJBMGwQuQQLIABBJGooAgAiAgRAIABBKGooAgAgAkEwbBC5BAsgAEEwaiEAIAFBAWsiAQ0ACwsgBigC6AEiAARAIBEgAEEwbBC5BAsgHwRAQQAhEwNAIBIgE0EYbGoiACgCCCIEBEAgACgCBCEDA0AgAygCACIBBEAgA0EEaigCACABQTBsELkECyADQQxqIQMgBEEBayIEDQALCyAAKAIAIgEEQCAAKAIEIAFBDGwQuQQLIAAoAgwiAQRAIAAoAhAgAUEwbBC5BAsgE0EBaiITIB9HDQALCyArBEAgEiArQRhsELkECyAGQbALaiQADwsgAyAHEKgEAAsgBCADEKgEAAsgAyAEEKgEAAsgAyASEKgEAAutnQICS38XfiMAQZAJayIGJAAgBkEANgLQAyAGQoCAgIDAADcCyAMCQAJAAkACQAJAAkACQAJAIARFDQAgBEEMbCEEA0AgBkHwAWogAxBnIAYoAtADIgogBigCyANGBEAgBkHIA2oQngMLIANBDGohAyAGKALMAyAKQQxsaiIJIAYpAvABNwIAIAlBCGogBkH4AWooAgA2AgAgBiAKQQFqIgk2AtADIARBDGsiBA0ACyAJRQ0AIAlBDGwhEyAGKALMAyIEQQhqKAIAIQkCQCAKRQ0AIBNBDGtBDG4iCkEDcSEHIApBAWtBA08EQCAEQThqIQMgCkH8////AXEhCgNAIAkgA0EkaygCACIIIAggCUkbIgkgA0EYaygCACIIIAggCUkbIgkgA0EMaygCACIIIAggCUkbIgkgAygCACIIIAggCUkbIQkgA0EwaiEDIAogDkEEaiIORw0ACwsgB0UNACAOQQxsIARqQRRqIQMDQCAJIAMoAgAiCiAJIApLGyEJIANBDGohAyAHQQFrIgcNAAsLIAQgE2ohCgNAIAkgBCgCCCIDSwRAA0AgBCgCACADRgRAIAQQpwMLIAQoAgQgA2pBADoAACAEIANBAWoiAzYCCCADIAlHDQALCyAEQQxqIgQgCkcNAAsgBkEANgK4ByAGQoCAgIDAADcCsAcCQAJAIAkEf0EAIQcDQEEBIRQgBigC0AMiCgRAIAYoAswDQdm+wgAtAAAaIApBARCwBCIURQ0EQQRqIQNBACEEA0AgByADQQRqKAIAIhNPDQQgBCAUaiADKAIAIAdqLQAAOgAAIANBDGohAyAKIARBAWoiBEcNAAsgBigCuAchGwsgBigCsAcgG0YEQCAGQbAHahCeAwsgBigCtAcgG0EMbGoiAyAKNgIIIAMgFDYCBCADIAo2AgAgBiAbQQFqIhs2ArgHIAdBAWoiByAJRw0ACyAGKAKwByE+IAYoArQHBUEECyEIIAYoAtADIgQEQCAGKALMAyEDA0AgAygCACIJBEAgA0EEaigCACAJELkECyADQQxqIQMgBEEBayIEDQALCyAGKALIAyIDBEAgBigCzAMgA0EMbBC5BAsgCCAbQQxsaiE/IBtBAk8EQCAbQQF2IQcgP0EMayEDIAghBANAIAQoAgAhCSAEIAMoAgA2AgAgAyAJNgIAIARBBGoiCSkCACFQIAkgA0EEaiIJKQIANwIAIAkgUDcCACADQQxrIQMgBEEMaiEEIAdBAWsiBw0ACwsgBkGAAWoiQEIANwMAIAZB+ABqIkFCADcDACAGQfAAaiJCQgA3AwAgBkHoAGoiQ0IANwMAIAZB4ABqIkRCADcDACAGQdgAaiJFQgA3AwAgBkHQAGoiRkIANwMAIAZCADcDSEEAIRMgBkEANgKUASAGQoCAgIDAADcCjAEgG0UEQCAGQUBrQgA3AwAgBkE4akIANwMAIAZBMGpCADcDACAGQShqQgA3AwAgBkEgakIANwMAIAZBGGpCADcDACAGQRBqQgA3AwAgBkIANwMIQQQhGAwGCyAGQdAHaiEfIAZB0AhqIR0gBkHYB2ohJiAGQbgHaiEcIAZB8AdqISMgBkGIAmohICAGQegDaiEeIAZBkAdqISQgBkGABWohISAGQdADaiEUIAghFQNAIBUoAgQhBEEBIQMCQAJAAkACQCAVKAIIIiUEQEEAIQcgJUEASA0BQdm+wgAtAAAaQQEhByAlQQEQsAQiA0UNAQsgAyAEICUQzwQhRyAGQYADaiBAKQMANwMAIAZB+AJqIEEpAwA3AwAgBkHwAmogQikDADcDACAGQegCaiBDKQMANwMAIAZB4AJqIEQpAwA3AwAgBkHYAmogRSkDADcDACAGQdACaiBGKQMANwMAIAYgBikDSDcDyAIgJSACIAIgJUsbIg5FDQEgDkEGdCEyIA5B////D0sEQEEAIQMMCQtB2b7CAC0AABpBCCEDIDJBCBCwBCIZRQ0IIBVBDGohFUEAIQRBACEHA0AgASAEaiEDAkAgByBHai0AACIJQf8BRwRAIAlBAUYEQCAcIANBCGopAwA3AwAgBkHAB2ogA0EQaikDADcDACAGQcgHaiADQRhqKQMANwMAIAYgAykDADcDsAcgA0E4aikDACFTIANBMGopAwAhUCADQShqKQMAIVQgA0EgaikDACFRDAILQgAhUyAGQcgHakIANwMAIAZBwAdqQgA3AwAgHEIANwMAIAZCADcDsAdCACFQQgAhVEIAIVEMAQsCfgJAIANBoOjAAEEgENAERQRAIANBIGoiCUGg6MAAQSAQ0ARFDQELIAZByAdqIANBOGopAwA3AwAgBkHAB2ogA0EwaikDADcDACAcIANBKGopAwA3AwAgBiADQSBqKQMANwOwByAGQbAHakGo1cEAQSAQ0AQEQCAGKQPAB0J/hSJRIAYpA8gHIlNCr/j//29WrSJUfSFQIAYpA7gHQn+FIlUgUSBUVK0iUX0hVCAGKQOwB0J/hSBRIFVWrX0hUUKv+P//byBTfQwCCyAGKQPAByFQIAYpA7gHIVQgBikDsAchUSAGKQPIBwwBCyADQTBqKQMAIVAgA0EoaikDACFUIAkpAwAhUSADQThqKQMACyFTIAZByAdqIANBGGopAwA3AwAgBkHAB2ogA0EQaikDADcDACAcIANBCGopAwA3AwAgBiADKQMANwOwBwsgBCAZaiIDIAYpA7AHNwMAIANBGGogBkHIB2oiJykDADcDACADQRBqIAZBwAdqIikpAwA3AwAgA0EIaiAcKQMANwMAIANBOGogUzcDACADQTBqIFA3AwAgA0EoaiBUNwMAIANBIGogUTcDACAEQUBrIQQgDiAHQQFqIgdHDQALIB8gGSkDIDcDACAfQQhqIi4gGUEoaikDADcDACAfQRBqIi8gGUEwaikDADcDACAfQRhqIjAgGUE4aikDADcDACAGQegEaiIJIBlBCGopAwA3AwAgBkHwBGoiCiAZQRBqKQMANwMAIAZB+ARqIhMgGUEYaikDADcDACAhIB8pAwA3AwAgBkGIBWoiBCAmKQMANwMAIAZBkAVqIgUgBkHgB2oiBykDADcDACAGQZgFaiILIAZB6AdqIg0pAwA3AwAgBiAZKQMANwPgBCAOQQFGDQIgGUFAayEDIAZBqAdqIhAgCykDADcDACAGQaAHaiILIAUpAwA3AwAgBkGYB2oiBSAEKQMANwMAICQgISkDADcDACAGQYgHaiIRIBMpAwA3AwAgBkGAB2oiEiAKKQMANwMAIAZB+AZqIhggCSkDADcDACAGIAYpA+AENwPwBkEAIA5BAWtB////H3FrIQQDQCANIBApAwA3AwAgByALKQMANwMAICYgBSkDADcDACAfICQpAwA3AwAgJyARKQMANwMAICkgEikDADcDACAcIBgpAwA3AwAgBiAGKQPwBjcDsAcgHSADQSBqKQMANwMAIB1BCGogA0EoaikDADcDACAdQRBqIANBMGopAwA3AwAgHUEYaiADQThqKQMANwMAIAZBuAhqIANBCGopAwAiUDcDACAGQcAIaiADQRBqKQMAIlE3AwAgBkHICGogA0EYaikDACJTNwMAICMgAykDACJUNwMAICNBCGogUDcDACAjQRBqIFE3AwAgI0EYaiBTNwMAICNBIGogHSkDADcDACAjQShqIAZB2AhqKQMANwMAICNBMGogBkHgCGopAwA3AwAgI0E4aiAGQegIaikDADcDACAGIFQ3A7AIIAZB8AZqIAZBsAdqICMQHyADQUBrIQMgBEEBaiIEDQALIBQgBikD8AY3AwAgFEE4aiAQKQMANwMAIBRBMGogCykDADcDACAUQShqIAUpAwA3AwAgFEEgaiAkKQMANwMAIBRBGGogESkDADcDACAUQRBqIBIpAwA3AwAgFEEIaiAYKQMANwMADAMLIAcgJRCoBAALQbyIwAAQuwQACyAUIAYpA+AENwMAIBRBOGogCykDADcDACAUQTBqIAUpAwA3AwAgFEEoaiAEKQMANwMAIBRBIGogISkDADcDACAUQRhqIBMpAwA3AwAgFEEQaiAKKQMANwMAIBRBCGogCSkDADcDAAsgBkGQA2ogFEEIaikDADcDACAGQZgDaiAUQRBqKQMANwMAIAZBoANqIBRBGGopAwA3AwAgBkGoA2ogFEEgaikDADcDACAGQbADaiAUQShqKQMANwMAIAZBuANqIBRBMGopAwA3AwAgBkHAA2ogFEE4aikDADcDACAGIBQpAwA3A4gDIAZBsAdqIQQjAEGgAWsiAyQAIAMgBkHIAmoiCyIFIAUQHyADQUBrIhAgBSADEB8CQAJAIBBBoOjAAEEgENAERQRAIANB4ABqIgVBoOjAAEEgENAERQ0BCyADQZgBaiADQfgAaikDADcDACADQZABaiADQfAAaikDADcDACADQYgBaiADQegAaikDADcDACADIAMpA2A3A4ABAn4gA0GAAWpBqNXBAEEgENAEBEAgAykDkAFCf4UiUSADKQOYASJTQq/4//9vVq0iVH0hUCADKQOIAUJ/hSJVIFEgVFStIlR9IVFCr/j//28gU30hUyADKQOAAUJ/hSBUIFVWrX0MAQsgAykDmAEhUyADKQOQASFQIAMpA4gBIVEgAykDgAELIVQgBCBTNwM4IAQgUDcDMCAEIFE3AyggBCBUNwMgDAELIAQgBSkDADcDICAEQThqIAVBGGopAwA3AwAgBEEwaiAFQRBqKQMANwMAIARBKGogBUEIaikDADcDAAsgBCADKQNANwMAIARBGGogA0HYAGopAwA3AwAgBEEQaiADQdAAaikDADcDACAEQQhqIANByABqKQMANwMAIANBoAFqJAAgBkGQBGoiESAEIAZBiANqEB8gBkHgBGogCxDnAkHZvsIALQAAGgJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAQYACQQgQsAQiAwRAICQgISkDADcDACAGQYgHaiIzIBMpAwA3AwAgBkGAB2oiNCAKKQMANwMAIAZB+AZqIiggCSkDADcDACAkQQhqICFBCGoiBSkDADcDACAkQRBqICFBEGoiCykDADcDACAkQRhqICFBGGoiECkDADcDACAGIAYpA+AENwPwBiAGQcgIaiI1IBMpAwA3AwAgBkHACGoiNiAKKQMANwMAIAZBuAhqIjcgCSkDADcDACAdICEpAwA3AwAgHUEIaiJJIAUpAwA3AwAgHUEQaiJKIAspAwA3AwAgHUEYaiJLIBApAwA3AwAgBiAGKQPgBDcDsAggBkHgA2oiKiATKQMANwMAIAZB2ANqIisgCikDADcDACAUIAkpAwA3AwAgHiAhKQMANwMAIB5BCGoiOCAFKQMANwMAIB5BEGoiOSALKQMANwMAIB5BGGoiOiAQKQMANwMAIAYgBikD4AQ3A8gDIAQgERDnAiADQThqIAZBqAdqKQMANwMAIANBMGogBkGgB2opAwA3AwAgA0EoaiAGQZgHaikDADcDACADQSBqICQpAwA3AwAgA0EYaiAzKQMANwMAIANBEGogNCkDADcDACADQQhqICgpAwA3AwAgAyAGKQPwBjcDACADIAYpA7AINwNAIANByABqIDcpAwA3AwAgA0HQAGogNikDADcDACADQdgAaiA1KQMANwMAIANB4ABqIB0pAwA3AwAgA0HoAGogBkHYCGoiTCkDADcDACADQfAAaiAGQeAIaiJNKQMANwMAIANB+ABqIAZB6AhqIk4pAwA3AwAgA0G4AWogBkGABGoiEykDADcDACADQbABaiAGQfgDaiILKQMANwMAIANBqAFqIAZB8ANqIhApAwA3AwAgA0GgAWogHikDADcDACADQZgBaiAqKQMANwMAIANBkAFqICspAwA3AwAgA0GIAWogFCkDADcDACADIAYpA8gDNwOAASADQfgBaiANKQMANwMAIANB8AFqIAcpAwA3AwAgA0HoAWogJikDADcDACADQeABaiAfKQMANwMAIANB2AFqICcpAwA3AwAgA0HQAWogKSkDADcDACADQcgBaiAcKQMANwMAIAMgBikDsAc3A8ABIAZBBDYC3AQgBiADNgLYBCAGQQQ2AtQEIAZB1ARqQQQgDhCWAyAGKALYBCIFIAYoAtwEIhJBBnQiEWohGEEAIQMDQCAfIBkgAyIEaiIJQSBqKQMANwMAIC4gCUEoaikDADcDACAvIAlBMGopAwA3AwAgMCAJQThqKQMANwMAIAlBGGopAwAhUCAJQRBqKQMAIVEgCUEIaikDACFTIAMgGGoiCiAJKQMANwMAIApBCGogUzcDACAKQRBqIFE3AwAgCkEYaiBQNwMAIApBIGogHykDADcDACAKQShqICYpAwA3AwAgCkEwaiAHKQMANwMAIApBOGogDSkDADcDACADQUBrIQMgEkEBaiESIA5BAWsiDg0ACyAGIBI2AtwEIAYoAtQEIUgCQCASBEAgBCARakFAayEJQQAhByAFIQQDQCATIAUgB2oiA0E4aiIKKQMANwMAIAsgA0EwaiIN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NwOwByAsIANBIGopAwA3AwAgLEEIaiADQShqKQMANwMAICxBEGogA0EwaikDADcDACAsQRhqIANBOGopAwA3AwAgBUG4CGogA0EIaikDACJVNwMAIAVBwAhqIANBEGopAwAiVDcDACAFQcgIaiADQRhqKQMAIlM3AwAgNSADKQMAIlI3AwAgNUEIaiBVNwMAIDVBEGogVDcDACA1QRhqIFM3AwAgNUEgaiAsKQMANwMAIDVBKGogBUHYCGopAwA3AwAgNUEwaiAFQeAIaikDADcDACA1QThqIAVB6AhqKQMANwMAIAUgUjcDsAggBUHwBmogBUGwB2ogNRAcIANBQGshAyAEQQFqIgQNAAsgGiAFKQPwBjcDACAaQThqIAspAwA3AwAgGkEwaiAJKQMANwMAIBpBKGogCikDADcDACAaQSBqIDkpAwA3AwAgGkEYaiAQKQMANwMAIBpBEGogDCkDADcDACAaQQhqIAcpAwA3AwAMAwsgCCA6EKgEAAtBvIjAABC7BAALIBogBSkD4AQ3AwAgGkE4aiAEKQMANwMAIBpBMGogBykDADcDACAaQShqIAwpAwA3AwAgGkEgaiA3KQMANwMAIBpBGGogFSkDADcDACAaQRBqIAgpAwA3AwAgGkEIaiAPKQMANwMACyAFQZADaiAaQQhqKQMANwMAIAVBmANqIBpBEGopAwA3AwAgBUGgA2ogGkEYaikDADcDACAFQagDaiAaQSBqKQMANwMAIAVBsANqIBpBKGopAwA3AwAgBUG4A2ogGkEwaikDADcDACAFQcADaiAaQThqKQMANwMAIAUgGikDADcDiAMgBUGwB2ohECMAQaABayIHJAAgByAFQcgCaiIEIAQQHCAHQUBrIgMgBCAHEBwCQAJAIANBoOjAAEEgENAERQRAIAdB4ABqIgNBoOjAAEEgENAERQ0BCyAHQZgBaiAHQfgAaikDADcDACAHQZABaiAHQfAAaikDADcDACAHQYgBaiAHQegAaikDADcDACAHIAcpA2A3A4ABAn4gB0GAAWpBqNXBAEEgENAEBEAgBykDkAFCf4UiVCAHKQOYASJTQm1WrSJSfSFVIAcpA4gBQn+FIlkgUiBUVq0iUn0hVEJtIFN9IVNCf0IAIFIgWVYbIAcpA4ABfUL///////////8AfAwBCyAHKQOYASFTIAcpA5AB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JkE4aiAgIAxBGGxqIgIQ2AJBCCEJAkAgAigCFCIBRQ0AIAFBBXQhDiABQf///x9LBEBBACEEDAQLIAIoAhAhA0HZvsIALQAAGkEIIQQgDkEIELAEIglFDQNBACEEIAEhAgNAIAQgDkYNASAEIAlqIgogAyAEaiIRKQMANwMAIApBGGogEUEYaikDADcDACAKQRBqIBFBEGopAwA3AwAgCkEIaiARQQhqKQMANwMAIARBIGohBCACQQFrIgINAAsLICYgATYCTCAmIAk2AkggJiABNgJEICZBCGohO0EAIQJCACFWQgAhV0IAIVpCACFbQgAhXUIAIV5CACFfQQAhKCMAQaAIayIGJAAgBkEMaiAmQThqIhwQewJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgBigCFCIBQQJGBEBB2b7CAC0AABpBGEEEELAEIgFFDQ8gBkHAB2ogBigCECIDEFYgBkHgAGogA0EMahBWQQghKSABQQhqIAZByAdqKAIANgIAIAEgBikCwAc3AgAgASAGKQJgNwIMIAFBFGogBkHoAGooAgA2AgAgBkECNgKoByAGIAE2AqQHIAZBAjYCoAcgBkEkaiAGQaAHahCeAgJAIANBFGooAgAiEUUNACARQQV0IQEgEUH///8fSw0OIANBEGooAgAhBEEAIQNB2b7CAC0AABpBCCECIAFBCBCwBCIpRQ0OIAEhAiARIQEDQCACIANGDQEgAyApaiIOIAMgBGoiCikDADcDACAOQRhqIApBGGopAwA3AwAgDkEQaiAKQRBqKQMANwMAIA5BCGogCkEIaikDADcDACADQSBqIQMgAUEBayIBDQALC0HZvsIALQAAGkEYQQQQsAQiDkUNDyAGQYAHahDsAkHZvsIALQAAGkEgQQgQsAQiCUUNBCAJQgA3AwAgCULMADcDGCAJQRBqQgA3AwAgCUEIakIANwMAIAZBADoAaCAGIAlBIGo2AmQgBiAJNgJgIAZBwAdqIAZB4ABqELMCIAYoAsgHIgFBAk8EQCABQQF2IQ8gBigCxAciAyABQQV0akEgayECA0AgAykDACFVIAMgAikDADcDACADQRhqIgEpAwAhVCABIAJBGGoiCikDADcDACADQRBqIgEpAwAhUyABIAJBEGoiBCkDADcDACADQQhqIgEpAwAhUiABIAJB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AwAgAkEgaiECIAFBAWsiAQ0ACwsgEyADNgLMAiATIDQ2AsgCIBMgAzYCxAICQCALIA1qIgEoAggiA0UNACADQQV0IRsgA0H///8fSwRAQQAhAgwECyABKAIEIQlB2b7CAC0AABpBCCECIBtBCBCwBCIzRQ0DQQAhAiADIQEDQCACIBtGDQEgAiAzaiIYIAIgCWoiCykDADcDACAYQRhqIAtBGGopAwA3AwAgGEEQaiALQRBqKQMANwMAIBhBCGogC0EIaikDADcDACACQSBqIQIgAUEBayIBDQALCyATIAM2AgggEyAzNgIEIBMgAzYCACATQbgCaiATQcQCaiATEO0BIB4oAgAiAQRAIB4oAgQgAUEFdBC5BAsgHiATKQK4AjcCACAeQQhqIBNBwAJqKAIANgIAIChBAWoiKCAvRw0BDAMLCyAxIDFB9NHAABDWAwALIAIgGxCoBAALIBNBKGoiA0HRoMEAQcIAEKwBIBNByABqIgJBk6HBAEHCABCsASATQagBakHVocEAQQEQrAEgE0HIAWpB1qHBAEHAABCsASATQegBakGWosEAQcAAEKwBEN0DIgEgASkDAEIBfDcDAEHZvsIALQAAGkGAAUEIELAEIg0EQCANQgA3A0AgDSACKQMANwMAIA0gAykDADcDICANQcgAakIANwMAIA1B0ABqQgA3AwAgDUHYAGpCADcDACANQRhqIAJBGGopAwA3AwAgDUEQaiACQRBqKQMANwMAIA1BCGogAkEIaikDADcDACANQShqIANBCGopAwA3AwAgDUEwaiADQRBqKQMANwMAIA1BOGogA0EYaikDADcDACANQfgAakGAzsAAKQMANwMAIA1B8ABqQfjNwAApAwA3AwAgDUHoAGpB8M3AACkDADcDACANQejNwAApAwA3A2AgE0EAOgDMAiATIA1BgAFqNgLIAiATIA02AsQCIBNBuAJqIBNBxAJqELMCIBMoAsACIgFBAk8EQCABQQF2ISggEygCvAIiAiABQQV0akEgayELA0AgAikDACFVIAIgCykDADcDACACQRhqIgEpAwAhVCABIAtBGGoiCSkDADcDACACQRBqIgEpAwAhUyABIAtBEGoiAykDADcDACACQQhqIgEpAwAhUiABIAtBCGoiASkDADcDACALIFU3AwAgCSBUNwMAIAMgUzcDACABIFI3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QQFBAUHsiMAAENYDAAtBAEEAQdyIwAAQ1gMAC0EBIAFBzIjAABDWAwALQQhB4AAQygQAC0EIQSAQygQACyAGQgI3A2BBgIfAAEErIAZB4ABqQfyIwABBjInAABC+AwALIAZCAjcDYEGAh8AAQSsgBkHgAGpB/IjAAEGcicAAEL4DAAsgAiAKEKgEAAsgBkICNwNgQYCHwABBKyAGQeAAakH8iMAAQayJwAAQvgMACyAGQgI3A2BBgIfAAEErIAZB4ABqQfyIwABBvInAABC+AwALIAEgAhCoBAALIA8gAhCoBAALIA8gAhCoBAALIAIgARCoBAALQbzzwABBKyAGQeAAakHo88AAQfjzwAAQvgMAC0EEQRgQygQACyAPIAEQqAQACyAVIAdBMGxqIgFBKGogJkEwaikCADcCACABQSBqICZBKGopAgA3AgAgAUEYaiAmQSBqKQIANwIAIAFBEGogJkEYaikCADcCACABQQhqICZBEGopAgA3AgAgASAmKQIINwIAIAdBAWohByAMQQFqIgwgIkcNAAsLIAggBzYCACAmQdAAaiQADAELIAQgDhCoBAALIAVBmARqICQoAgAiJDYCACAFIAUpAvABNwOQBAJAAkACQAJAAkACQCAkBEACQCAFKAKUBCIcKAIIIgJFDQAgAkEFdCEBIAJB////H0sEQEEAIQgMCAsgHCgCBCEEQQAhA0HZvsIALQAAGkEIIQggAUEIELAEIi5FDQcgAkEFdCEBIAIhBwNAIAEgA0YNASADIC5qIhEgAyAEaiIMKQMANwMAIBFBGGogDEEYaikDADcDACARQRBqIAxBEGopAwA3AwAgEUEIaiAMQQhqKQMANwMAIANBIGohAyAHQQFrIgcNAAsLQQghKUEIISoCQCAcKAIUIgRFDQAgBEEFdCEBIARB////H0sEQEEAIQgMCwsgHCgCECEMQQAhA0HZvsIALQAAGkEIIQggAUEIELAEIipFDQogBEEFdCEBIAQhBwNAIAEgA0YNASADICpqIgogAyAMaiIRKQMANwMAIApBGGogEUEYaikDADcDACAKQRBqIBFBEGopAwA3AwAgCkEIaiARQQhqKQMANwMAIANBIGohAyAHQQFrIgcNAAsLAkAgHCgCICIMRQ0AIAxBBXQhASAMQf///x9LBEBBACEIDAsLIBwoAhwhEUEAIQNB2b7CAC0AABpBCCEIIAFBCBCwBCIpRQ0KIAxBBXQhASAMIQcDQCABIANGDQEgAyApaiIOIAMgEWoiCikDADcDACAOQRhqIApBGGopAwA3AwAgDkEQaiAKQRBqKQMANwMAIA5BCGogCkEIaikDADcDACADQSBqIQMgB0EBayIHDQALC0EIISUCQCAcKAIsIgFFDQAgAUEFdCEHIAFB////H0sEQEEAIQgMDAsgHCgCKCEKQQAhA0HZvsIALQAAGkEIIQggB0EIELAEIiVFDQsgAUEFdCERIAEhBwNAIAMgEUYNASADICVqIgkgAyAKaiIOKQMANwMAIAlBGGogDkEYaikDADcDACAJQRBqIA5BEGopAwA3AwAgCUEIaiAOQQhqKQMANwMAIANBIGohAyAHQQFrIgcNAAsLIAVBiAdqQfCFwAApAwA3AwAgBUGAB2pB6IXAACkDADcDACAFQfgGakHghcAAKQMANwMAIAVB2IXAACkDADcD8AYgJEEBRgRAIAIhESAEIRUgDCEOIAEhFAwGCyAFQcAHakJ/NwMAIAVCfzcDuAcgBUL///////////8ANwOwByAFQvt+NwPIByAFQfAGaiAFQbAHahCGAUEIIRICQCAcQThqKAIAIglFDQAgCUEFdCEHIAlB////H0sEQEEAIQgMDAsgHEE0aigCACEKQQAhA0HZvsIALQAAGkEIIQggB0EIELAEIhJFDQsgCUEFdCERIAkhBwNAIAMgEUYNASADIBJqIgsgAyAKaiIOKQMANwMAIAtBGGogDkEYaikDADcDACALQRBqIA5BEGopAwA3AwAgC0EIaiAOQQhqKQMANwMAIANBIGohAyAHQQFrIgcNAAsLQQghHgJAIBxBxABqKAIAIg5FDQAgDkEFdCEHIA5B////H0sEQEEAIQgMDAsgHEFAaygCACEKQQAhA0HZvsIALQAAGkEIIQggB0EIELAEIh5FDQsgDkEFdCERIA4hBwNAIAMgEUYNASADIB5qIg0gAyAKaiILKQMANwMAIA1BGGogC0EYaikDADcDACANQRBqIAtBEGopAwA3AwAgDUEIaiALQQhqKQMANwMAIANBIGohAyAHQQFrIgcNAAsLQQghI0EIIRcCQCAcQdAAaigCACIKRQ0AIApBBXQhByAKQf///x9LBEBBACEIDAwLIBxBzABqKAIAIQtB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BUGoEGoiAkHgABDPBBogAiABEPUDIAUoAqwQIQEgBSgCqBAhAiAFKAKwECIJQQJHDQEgCyABQThqKQMANwMAIAggAUFAaykDADcDACAKIAFByABqKQMANwMAIAcgAUHQAGopAwA3AwAgBiABQdgAaikDADcDACAFIAEpAzA3A6gQIAEpAyghIyABKQMgIScgASkDGCEfIAEpAxAhHSABKQMIISUgATUCBCESIAEoAgAhBiACBEAgASACQTBsELkEC60gEEIghoQhLiAFQbgUaiAFQdAQaikDADcDACAFQbAUaiAFQcgQaikDADcDACAFQagUaiAFQcAQaikDADcDACAFQaAUaiAFQbgQaikDADcDACAFQZgUaiAFQbAQaikDADcDACAFIAUpA6gQNwOQFCAGrSASQiCGhCEpAkACQAJAIAwOAgECAAtBgN/AAEEPQZDfwAAQ9AMAC0HZvsIALQAAGkHABEEIELAEIgJFDQNCuKr1gICAgKwQISogBUK4qvWAgICArBA3A9AQQpiAgNmwjoDw9AAhJCAFQpiAgNmwjoDw9AA3A8gQQpXHrZmzleabh38hHiAFQpXHrZmzleabh383A8AQQrSchtLEyYL/9gAhFyAFQrSchtLEyYL/9gA3A7gQQvWr8u+Nq5a/LiEcIAVC9avy742rlr8uNwOwEEL29aLgw+/10A8hGSAFQvb1ouDD7/XQDzcDqBAgBUGoEGpByNTBAEEwENAEBEBC86qJ////v9OpfyEqQuf/z7G68f/lqX8hJEKOpZac3L7O/F8hHkKKiY7KiqfQvG0hF0Lhrbyq1svTzhwhHEKk19zr383OrwohGQtBKCEBQgAhEkIAIRADQCAFQYgJaiAFQeATaiABaikDACIUICpCABC9AyAFQZgJaiAUICRCABC9AyAFQagJaiAUIB5CABC9AyAFQbgJaiAUIBdCABC9AyAFQcgJaiAUIBxCABC9AyAFQdgJaiAUIBlCABC9AyAFQfgIaiAFKQOICSIaIBF8IhFCAEL9//P/z///+Yl/EL0DIAVB6AhqIAVBgAlqKQMAIhRCq9X+////v/+5f0IAEL0DIAVB2AhqIBRC///Piuv//9UeQgAQvQMgBUHICGogFEKk7MO1j9S0mOcAQgAQvQMgBUG4CGogFEK/pZScz/DSu+QAQgAQvQMgBUGoCGogFELX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IBEgFkIAEL0DIAVBmAxqIAUpA6gMIhwgHnwiGEIAQv3/8//P///5iX8QvQMgBUGIDGogBUGgDGopAwAiEUKr1f7///+//7l/QgAQvQMgBUH4C2ogEUL//8+K6///1R5CABC9AyAFQegLaiARQqTsw7WP1LSY5wBCABC9AyAFQdgLaiARQr+llJzP8NK75ABCABC9AyAFQcgLaiARQtfZrprk9umNywBCABC9AyAFQbgLaiARQprN/8ujvcSAGkIAEL0DIAVBwAtqKQMAIAUpA/gMIiAgFXwiESAFQfAMaikDACAFKQPoDCIVIBN8IhMgFVStfCATIBMgBUHgDGopAwAgBSkD2AwiFSASfCISIBVUrXwgEiASIAVB0AxqKQMAIAUpA8gMIhUgEHwiECAVVK18IBAgECAFQcAMaikDACAXIAUpA7gMIhd8IhUgF1StfCAVIAVBsAxqKQMAIBggHFStfHwiFyAVVK18fCIQVq18fCISVq18fCITVq18fCIVIAUpA7gLfCIcIBVUrXwgHCAFQdALaikDACATIBMgBSkDyAt8IhNWrXwgEyAFQeALaikDACASIBIgBSkD2At8IhJWrXwgEiAFQfALaikDACAQIBAgBSkD6At8IhBWrXwgECAFQYAMaikDACAFKQP4CyIeIBd8IhcgHlStfCAXIAVBkAxqKQMAIBggBSkDiAwiGHwgGFStfHwiHiAXVK18fCIXIBBUrXx8IhAgElStfHwiEiATVK18fCITIBxUrXwgESAVVq0gBUGADWopAwAgESAgVK18fHwhFSABQQhrIgFBeEcNAAsCQAJAIBVCms3/y6O9xIAaVg0AAkACQAJAAkACQCAVQprN/8ujvcSAGlINACATQtfZrprk9umNywBWDQUgE0LX2a6a5PbpjcsAUgRAQprN/8ujvcSAGiEVDAELIBJCv6WUnM/w0rvkAFYNBULX2a6a5PbpjcsAISAgEkK/pZScz/DSu+QAUgRAQprN/8ujvcSAGiEVDAILIBBCpOzDtY/UtJjnAFYNBUK/pZScz/DSu+QAISsgEEKk7MO1j9S0mOcAUgRAQprN/8ujvcSAGiEVDAMLIBdC///Piuv//9UeVg0FQqTsw7WP1LSY5wAhKCAXQv//z4rr///VHlINAyAeQqrV/v///7//uX9WDQUMAwsgEyEgCyASISsLIBAh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EH0hGCAPIBN9IRcgDiARfSEZIA0gFX0hGyAcQtWqgYCAgMCAxgB8IRwMAgsgA0EANgLYFCADQdQUaiADQdAUaiADQdgUakHskcAAEIgEAAtCv6WUnM/w0rvkACEZQtfZrprk9umNywAhGwsCQCADKALcFCIERQ0AIAQgBEEMbEETakF4cSIFakEJaiIERQ0AIAMoAtgUIAVrIAQQuQQLAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCACQQJrDgsBAAAAAgAAAAAAAwALIANBADYC6BQgA0EBNgLcFCADQdSRwAA2AtgUIANCBDcC4BQgA0HYFGpBjJPAABCGBAALQdm+wgAtAAAaQeAAQQgQsAQiBEUNBCAEIAEpAwA3AwAgBCABKQMwNwMwIARBKGogAUEoaikDADcDACAEQSBqIAFBIGopAwA3AwAgBEEYaiABQRhqKQMANwMAIARBEGogAUEQaikDADcDACAEQQhqIAFBCGopAwA3AwAgBEE4aiABQThqKQMANwMAIARBQGsgAUFAaykDADcDACAEQcgAaiABQcgAaikDADcDACAEQdAAaiABQdAAaikDADcDACAEQdgAaiABQdgAaikDADcDAAwLC0HZvsIALQAAGkGgAkEIELAEIgQNAUEIQaACEMoEAAtB2b7CAC0AABpBwARBCBCwBCIEDQFBCEHABBDKBAALIAFBkAFqIQdBuAEhBUIAIRJCACERQgAhEEIAIQ5CACENQgAhFgNAIANBkARqIAEgBWopAwAiDyAcQgAQvQMgA0GgBGogDyAYQgAQvQMgA0GwBGogDyAXQgAQvQMgA0HABGogDyAZQgAQvQMgA0HQBGogDyAbQgAQvQMgA0HgBGogDyAdQgAQvQMgA0GABGogAykDkAQiFSAWfCIUQgBC/f/z/8////mJfxC9AyADQfADaiADQYgEaikDACIPQqvV/v///7//uX9CABC9AyADQeADaiAPQv//z4rr///VHkIAEL0DIANB0ANqIA9CpOzDtY/UtJjnAEIAEL0DIANBwANqIA9Cv6WUnM/w0rvkAEIAEL0DIANBsANqIA9C19mumuT26Y3LAEIAEL0DIANBoANqIA9Cms3/y6O9xIAaQgAQvQMgA0GoA2opAwAgEiADKQPgBCIafCIPIANB2ARqKQMAIBEgAykD0AQiEnwiEyASVK18IBMgA0HIBGopAwAgAykDwAQiESAQfCIQIBFUrXwgECADQbgEaikDACADKQOwBCIRIA58Ig4gEVStfCAOIANBqARqKQMAIAMpA6AEIhEgDXwiDSARVK18IA0gA0GYBGopAwAgFCAVVK18fCISIA1UrXx8Ig0gDlStfHwiDiAQVK18fCIQIBNUrXx8IhMgAykDoAN8IhUgE1StfCAVIBUgA0G4A2opAwAgECAQIAMpA7ADfCIRVq18IBEgESADQcgDaikDACAOIA4gAykDwAN8IhBWrXwgECAQIANB2ANqKQMAIA0gDSADKQPQA3wiDlatfCAOIA4gA0HoA2opAwAgEiADKQPgAyISfCINIBJUrXwgDSADQfgDaikDACAUIAMpA/ADIhJ8IBJUrXx8IhYgDVStfHwiDVatfHwiDlatfHwiEFatfHwiEVatfCAPIBNWrSADQegEaikDACAPIBpUrXx8fCESIAVBCGsiBUGIAUcNAAsgEkKazf/Lo73EgBpYDQUMBgsgAUGgAmohB0HIAiEFQgAhEkIAIRFCACEQQgAhDkIAIQ1CACEWA0AgA0HwDWogASAFaikDACIPIBxCABC9AyADQYAOaiAPIBhCABC9AyADQZAOaiAPIBdCABC9AyADQaAOaiAPIBlCABC9AyADQbAOaiAPIBtCABC9AyADQcAOaiAPIB1CABC9AyADQeANaiADKQPwDSIVIBZ8IhRCAEL9//P/z///+Yl/EL0DIANB0A1qIANB6A1qKQMAIg9Cq9X+////v/+5f0IAEL0DIANBwA1qIA9C///Piuv//9UeQgAQvQMgA0GwDWogD0Kk7MO1j9S0mOcAQgAQvQMgA0GgDWogD0K/pZScz/DSu+QAQgAQvQMgA0GQDWogD0LX2a6a5PbpjcsAQgAQvQMgA0GADWogD0Kazf/Lo73EgBpCABC9AyADQYgNaikDACASIAMpA8AOIhp8Ig8gA0G4DmopAwAgESADKQOwDiISfCITIBJUrXwgEyADQagOaikDACADKQOgDiIRIBB8IhAgEVStfCAQIANBmA5qKQMAIAMpA5AOIhEgDnwiDiARVK18IA4gA0GIDmopAwAgAykDgA4iESANfCINIBFUrXwgDSADQfgNaikDACAUIBVUrXx8IhIgDVStfHwiDSAOVK18fCIOIBBUrXx8IhAgE1StfHwiEyADKQOADXwiFSATVK18IBUgFSADQZgNaikDACAQIBAgAykDkA18IhFWrXwgESARIANBqA1qKQMAIA4gDiADKQOgDXwiEFatfCAQIBAgA0G4DWopAwAgDSANIAMpA7ANfCIOVq18IA4gDiADQcgNaikDACASIAMpA8ANIhJ8Ig0gElStfCANIANB2A1qKQMAIBQgAykD0A0iEnwgElStfHwiFiANVK18fCINVq18fCIOVq18fCIQVq18fCIRVq18IA8gE1atIANByA5qKQMAIA8gGlStfHx8IRIgBUEIayIFQZgCRw0ACyASQprN/8ujvcSAGlgNAQwCC0EIQeAAEKgEAAsgEkKazf/Lo73EgBpSBEAgDSEPIA4hFCAQIRMgESEVDAILIBFC19mumuT26Y3LAFYNACARQtfZrprk9umNywBSBEAgDSEPIA4hFCAQIRMgESEVQprN/8ujvcSAGiESDAILIBBCv6WUnM/w0rvkAFYNAELX2a6a5PbpjcsAIRUgEEK/pZScz/DSu+QAUgRAIA0hDyAOIRQgECETQprN/8ujvcSAGiESDAILIA5CpOzDtY/UtJjnAFYNAEK/pZScz/DSu+QAIRMgDkKk7MO1j9S0mOcAUgRAIA0hDyAOIRRCms3/y6O9xIAaIRIMAgsgDUL//8+K6///1R5WDQBCpOzDtY/UtJjnACEUIA1C///Piuv//9UeUgRAIA0hD0Kazf/Lo73EgBohEgwCC0L//8+K6///1R4hDyAWQqrV/v///7//uX9WDQBCms3/y6O9xIAaIRIMAQsgDUL//8+K6///1R59IhQgFkKr1f7///+//7l/VK0iE30hDyAOQqTsw7WP1LSY5wB9IhUgDUL//8+K6///1R5UIBMgFFZyrSINfSEUIBBCv6WUnM/w0rvkAH0iGiAOQqTsw7WP1LSY5wBUIA0gFVZyrSINfSETIBFC19mumuT26Y3LAH0iDiAQQr+llJzP8NK75ABUIA0gGlZyrSINfSEVIBIgEULX2a6a5PbpjcsAVCANIA5Wcq19QprN/8ujvcSAGn0hEiAWQtWqgYCAgMCAxgB8IRYLIAMgFjcDgBUgAyAPNwP4FCADIBQ3A/AUIAMgEzcD6BQgAyAVNwPgFCADIBI3A9gUIANBkBhqIAEgA0HYFGoQxAIgAUGoA2ohBiABQYADaiEIQQAhBUIAIRJCACERQgAhEEIAIQ5CACENQgAhFgNAIANBoAxqIAUgBmopAwAiDyAcQgAQvQMgA0GwDGogDyAYQgAQvQMgA0HADGogDyAXQgAQvQMgA0HQDGogDyAZQgAQvQMgA0HgDGogDyAbQgAQvQMgA0HwDGogDyAdQgAQvQMgA0GQDGogAykDoAwiFSAWfCIUQgBC/f/z/8////mJfxC9AyADQYAMaiADQZgMaikDACIPQqvV/v///7//uX9CABC9AyADQfALaiAPQv//z4rr///VHkIAEL0DIANB4AtqIA9CpOzDtY/UtJjnAEIAEL0DIANB0AtqIA9Cv6WUnM/w0rvkAEIAEL0DIANBwAtqIA9C19mumuT26Y3LAEIAEL0DIANBsAtqIA9Cms3/y6O9xIAaQgAQvQMgA0G4C2opAwAgEiADKQPwDCIafCIPIANB6AxqKQMAIBEgAykD4AwiEnwiEyASVK18IBMgA0HYDGopAwAgAykD0AwiESAQfCIQIBFUrXwgECADQcgMaikDACADKQPADCIRIA58Ig4gEVStfCAOIANBuAxqKQMAIAMpA7AMIhEgDXwiDSARVK18IA0gA0GoDGopAwAgFCAVVK18fCISIA1UrXx8Ig0gDlStfHwiDiAQVK18fCIQIBNUrXx8IhMgAykDsAt8IhUgE1StfCAVIBUgA0HIC2opAwAgECAQIAMpA8ALfCIRVq18IBEgESADQdgLaikDACAOIA4gAykD0At8IhBWrXwgECAQIANB6AtqKQMAIA0gDSADKQPgC3wiDlatfCAOIA4gA0H4C2opAwAgEiADKQPwCyISfCINIBJUrXwgDSADQYgMaikDACAUIAMpA4AMIhJ8IBJUrXx8IhYgDVStfHwiDVatfHwiDlatfHwiEFatfHwiEVatfCAPIBNWrSADQfgMaikDACAPIBpUrXx8fCESIAVBCGsiBUFQRw0ACyABQeAAaiEFAkACQCASQprN/8ujvcSAGlYNACASQprN/8ujvcSAGlIEQCANIQ8gDiEUIBAhEyARIRUMAgsgEULX2a6a5PbpjcsAVg0AAkAgEULX2a6a5PbpjcsAUgRAIA0hDyAOIRQgECETIBEhFQwBCyAQQr+llJzP8NK75ABWDQFC19mumuT26Y3LACEVIBBCv6WUnM/w0rvkAFIEQCANIQ8gDiEUIBAhEwwBCyAOQqTsw7WP1LSY5wBWDQFCv6WUnM/w0rvkACETIA5CpOzDtY/UtJjnAFIEQCANIQ8gDiEUDAELIA1C///Piuv//9UeVg0BQqTsw7WP1LSY5wAhFCANQv//z4rr///VHlIEQCANIQ8MAQtC///Piuv//9UeIQ8gFkKq1f7///+//7l/Vg0BC0Kazf/Lo73EgBohEgwBCyANQv//z4rr///VHn0iFCAWQqvV/v///7//uX9UrSITfSEPIA5CpOzDtY/UtJjnAH0iFSANQv//z4rr///VHlQgEyAUVnKtIg19IRQgEEK/pZScz/DSu+QAfSIaIA5CpOzDtY/UtJjnAFQgDSAVVnKtIg19IRMgEULX2a6a5PbpjcsAfSIOIBBCv6WUnM/w0rvkAFQgDSAaVnKtIg19IRUgEiARQtfZrprk9umNywBUIA0gDlZyrX1Cms3/y6O9xIAafSESIBZC1aqBgICAwIDGAHwhFgsgAyAWNwOAFSADIA83A/gUIAMgFDcD8BQgAyATNwPoFCADIBU3A+AUIAMgEjcD2BQgA0HAGGogBSADQdgUahDEAiABQYgEaiEJIAFB4ANqIQZBACEFQgAhEkIAIRFCACEQQgAhDkIAIQ1CACEWA0AgA0HQCmogBSAJaikDACIPIBxCABC9AyADQeAKaiAPIBhCABC9AyADQfAKaiAPIBdCABC9AyADQYALaiAPIBlCABC9AyADQZALaiAPIBtCABC9AyADQaALaiAPIB1CABC9AyADQcAKaiADKQPQCiIVIBZ8IhRCAEL9//P/z///+Yl/EL0DIANBsApqIANByApqKQMAIg9Cq9X+////v/+5f0IAEL0DIANBoApqIA9C///Piuv//9UeQgAQvQMgA0GQCmogD0Kk7MO1j9S0mOcAQgAQvQMgA0GACmogD0K/pZScz/DSu+QAQgAQvQMgA0HwCWogD0LX2a6a5PbpjcsAQgAQvQMgA0HgCWogD0Kazf/Lo73EgBpCABC9AyADQegJaikDACASIAMpA6ALIhp8Ig8gA0GYC2opAwAgESADKQOQCyISfCITIBJUrXwgEyADQYgLaikDACADKQOACyIRIBB8IhAgEVStfCAQIANB+ApqKQMAIAMpA/AKIhEgDnwiDiARVK18IA4gA0HoCmopAwAgAykD4AoiESANfCINIBFUrXwgDSADQdgKaikDACAUIBVUrXx8IhIgDVStfHwiDSAOVK18fCIOIBBUrXx8IhAgE1StfHwiEyADKQPgCXwiFSATVK18IBUgFSADQfgJaikDACAQIBAgAykD8Al8IhFWrXwgESARIANBiApqKQMAIA4gDiADKQOACnwiEFatfCAQIBAgA0GYCmopAwAgDSANIAMpA5AKfCIOVq18IA4gDiADQagKaikDACASIAMpA6AKIhJ8Ig0gElStfCANIANBuApqKQMAIBQgAykDsAoiEnwgElStfHwiFiANVK18fCINVq18fCIOVq18fCIQVq18fCIRVq18IA8gE1atIANBqAtqKQMAIA8gGlStfHx8IRIgBUEIayIFQVBHDQALIAFBwAFqIQUCQAJAIBJCms3/y6O9xIAaVg0AIBJCms3/y6O9xIAaUgRAIA0hDyAOIRQgECETIBEhFQwCCyARQtfZrprk9umNywBWDQACQCARQtfZrprk9umNywBSBEAgDSEPIA4hFCAQIRMgESEVDAELIBBCv6WUnM/w0rvkAFYNAULX2a6a5PbpjcsAIRUgEEK/pZScz/DSu+QAUgRAIA0hDyAOIRQgECETDAELIA5CpOzDtY/UtJjnAFYNAUK/pZScz/DSu+QAIRMgDkKk7MO1j9S0mOcAUgRAIA0hDyAOIRQMAQsgDUL//8+K6///1R5WDQFCpOzDtY/UtJjnACEUIA1C///Piuv//9UeUgRAIA0hDwwBC0L//8+K6///1R4hDyAWQqrV/v///7//uX9WDQELQprN/8ujvcSAGiESDAELIA1C///Piuv//9UefSIUIBZCq9X+////v/+5f1StIhN9IQ8gDkKk7MO1j9S0mOcAfSIVIA1C///Piuv//9UeVCATIBRWcq0iDX0hFCAQQr+llJzP8NK75AB9IhogDkKk7MO1j9S0mOcAVCANIBVWcq0iDX0hEyARQtfZrprk9umNywB9Ig4gEEK/pZScz/DSu+QAVCANIBpWcq0iDX0hFSASIBFC19mumuT26Y3LAFQgDSAOVnKtfUKazf/Lo73EgBp9IRIgFkLVqoGAgIDAgMYAfCEWCyADIBY3A4AVIAMgDzcD+BQgAyAUNwPwFCADIBM3A+gUIAMgFTcD4BQgAyASNwPYFCADQfAYaiAFIANB2BRqEMQCIAFB+AJqIQogAUHQ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IBFUrXwgDSADQbgHaikDACAUIBVUrXx8IhIgDVStfHwiDSAOVK18fCIOIBBUrXx8IhAgE1StfHwiEyADKQPABnwiFSATVK18IBUgFSADQdgGaikDACAQIBAgAykD0AZ8IhFWrXwgESARIANB6AZqKQMAIA4gDiADKQPgBnwiEFatfCAQIBAgA0H4BmopAwAgDSANIAMpA/AGfCIOVq18IA4gDiADQYgHaikDACASIAMpA4AHIhJ8Ig0gElStfCANIANBmAdqKQMAIBQgAykDkAciEnwgElStfHwiFiANVK18fCINVq18fCIOVq18fCIQVq18fCIRVq18IA8gE1atIANBiAhqKQMAIA8gGlStfHx8IRIgBUEIayIFQVBHDQALIAFBkAFqIQUCQAJAIBJCms3/y6O9xIAaVg0AIBJCms3/y6O9xIAaUgRAIA0hDyAOIRQgECETIBEhFQwCCyARQtfZrprk9umNywBWDQACQCARQtfZrprk9umNywBSBEAgDSEPIA4hFCAQIRMgESEVDAELIBBCv6WUnM/w0rvkAFYNAULX2a6a5PbpjcsAIRUgEEK/pZScz/DSu+QAUgRAIA0hDyAOIRQgECETDAELIA5CpOzDtY/UtJjnAFYNAUK/pZScz/DSu+QAIRMgDkKk7MO1j9S0mOcAUgRAIA0hDyAOIRQMAQsgDUL//8+K6///1R5WDQFCpOzDtY/UtJjnACEUIA1C///Piuv//9UeUgRAIA0hDwwBC0L//8+K6///1R4hDyAWQqrV/v///7//uX9WDQELQprN/8ujvcSAGiESDAELIA1C///Piuv//9UefSIUIBZCq9X+////v/+5f1StIhN9IQ8gDkKk7MO1j9S0mOcAfSIVIA1C///Piuv//9UeVCATIBRWcq0iDX0hFCAQQr+llJzP8NK75AB9IhogDkKk7MO1j9S0mOcAVCANIBVWcq0iDX0hEyARQtfZrprk9umNywB9Ig4gEEK/pZScz/DSu+QAVCANIBpWcq0iDX0hFSASIBFC19mumuT26Y3LAFQgDSAOVnKtfUKazf/Lo73EgBp9IRIgFkLVqoGAgIDAgMYAfCEWCyADIBY3A4AVIAMgDzcD+BQgAyAUNwPwFCADIBM3A+gUIAMgFTcD4BQgAyASNwPYFCADQdAZaiAFIANB2BRqEMQCIAFBuARqIQwgAUGQBGohC0EAIQVCACEWQgAhDUIAIQ5CACEQQgAhEUIAIRIDQCADQeAFaiAFIAxqKQMAIg8gHEIAEL0DIANB8AVqIA8gGEIAEL0DIANBgAZqIA8gF0IAEL0DIANBkAZqIA8gGUIAEL0DIANBoAZqIA8gG0IAEL0DIANBsAZqIA8gHUIAEL0DIANB0AVqIAMpA+AFIhUgFnwiFEIAQv3/8//P///5iX8QvQMgA0HABWogA0HYBWopAwAiD0Kr1f7///+//7l/QgAQvQMgA0GwBWogD0L//8+K6///1R5CABC9AyADQaAFaiAPQqTsw7WP1LSY5wBCABC9AyADQZAFaiAPQr+llJzP8NK75ABCABC9AyADQYAFaiAPQtfZrprk9umNywBCABC9AyADQfAEaiAPQprN/8ujvcSAGkIAEL0DIANB+ARqKQMAIBIgAykDsAYiGnwiDyADQagGaikDACARIAMpA6AGIhJ8IhMgElStfCATIANBmAZqKQMAIAMpA5AGIhEgEHwiECARVK18IBAgA0GIBmopAwAgAykDgAYiESAOfCIOIBFUrXwgDiADQfgFaikDACADKQPwBSIRIA18Ig0gEVStfCANIANB6AVqKQMAIBQgFVStfHwiEiANVK18fCINIA5UrXx8Ig4gEFStfHwiECATVK18fCITIAMpA/AEfCIVIBNUrXwgFSAVIANBiAVqKQMAIBAgECADKQOABXwiEVatfCARIBEgA0GYBWopAwAgDiAOIAMpA5AFfCIQVq18IBAgECADQagFaikDACANIA0gAykDoAV8Ig5WrXwgDiAOIANBuAVqKQMAIBIgAykDsAUiEnwiDSASVK18IA0gA0HIBWopAwAgFCADKQPABSISfCASVK18fCIWIA1UrXx8Ig1WrXx8Ig5WrXx8IhBWrXx8IhFWrXwgDyATVq0gA0G4BmopAwAgDyAaVK18fHwhEiAFQQhrIgVBUEcNAAsgAUHwAWohAQJAAkAgEkKazf/Lo73EgBpWDQAgEkKazf/Lo73EgBpSBEAgDSEXIA4hGCAQIRkgESEbDAILIBFC19mumuT26Y3LAFYNAAJAIBFC19mumuT26Y3LAFIEQCANIRcgDiEYIBAhGSARIRsMAQsgEEK/pZScz/DSu+QAVg0BQtfZrprk9umNywAhGyAQQr+llJzP8NK75ABSBEAgDSEXIA4hGCAQIRkMAQsgDkKk7MO1j9S0mOcAVg0BQr+llJzP8NK75AAhGSAOQqTsw7WP1LSY5wBSBEAgDSEXIA4hGAwBCyANQv//z4rr///VHlYNAUKk7MO1j9S0mOcAIRggDUL//8+K6///1R5SBEAgDSEXDAELQv//z4rr///VHiEXIBZCqtX+////v/+5f1YNAQtCms3/y6O9xIAaIRIMAQsgDUL//8+K6///1R59Ig8gFkKr1f7///+//7l/VK0iFH0hFyAOQqTsw7WP1LSY5wB9IhMgDUL//8+K6///1R5UIA8gFFRyrSINfSEYIBBCv6WUnM/w0rvkAH0iDyAOQqTsw7WP1LSY5wBUIA0gE1ZyrSINfSEZIBFC19mumuT26Y3LAH0iDiAQQr+llJzP8NK75ABUIA0gD1ZyrSINfSEbIBIgEULX2a6a5PbpjcsAVCANIA5Wcq19QprN/8ujvcSAGn0hEiAWQtWqgYCAgMCAxgB8IRYLIAMgFjcDgBUgAyAXNwP4FCADIBg3A/AUIAMgGTcD6BQgAyAbNwPgFCADIBI3A9gUIARB4ANqIAEgA0HYFGoQxAIgBCADKQOQGDcDACAEQQhqIANBmBhqKQMANwMAIARBEGogA0GgGGopAwA3AwAgBEEYaiADQagYaikDADcDACAEQSBqIANBsBhqKQMANwMAIARBKGogA0G4GGopAwA3AwAgBEG4BGogC0EoaikDADcDACAEQbAEaiALQSBqKQMANwMAIARBqARqIAtBGGopAwA3AwAgBEGgBGogC0EQaikDADcDACAEQZgEaiALQQhqKQMANwMAIAQgCykDADcDkAQgBEHYAGogB0EoaikDADcDACAEQdAAaiAHQSBqKQMANwMAIARByABqIAdBGGopAwA3AwAgBEFAayAHQRBqKQMANwMAIARBOGogB0EIaikDADcDACAEIAcpAwA3AzAgBEGIAWogA0HoGGopAwA3AwAgBEGAAWogA0HgGGopAwA3AwAgBEH4AGogA0HYGGopAwA3AwAgBEHwAGogA0HQGGopAwA3AwAgBEHoAGogA0HIGGopAwA3AwAgBCADKQPAGDcDYCAEQbgBaiAIQShqKQMANwMAIARBsAFqIAhBIGopAwA3AwAgBEGoAWogCEEYaikDADcDACAEQaABaiAIQRBqKQMANwMAIARBmAFqIAhBCGopAwA3AwAgBCAIKQMANwOQASAEQegBaiADQZgZaikDADcDACAEQeABaiADQZAZaikDADcDACAEQdgBaiADQYgZaikDADcDACAEQdABaiADQYAZaikDADcDACAEQcgBaiADQfgYaikDADcDACAEIAMpA/AYNwPAASAEQZgCaiAGQShqKQMANwMAIARBkAJqIAZBIGopAwA3AwAgBEGIAmogBkEYaikDADcDACAEQYACaiAGQRBqKQMANwMAIARB+AFqIAZBCGopAwA3AwAgBCAGKQMANwPwASAEQcgCaiADQcgZaikDADcDACAEQcACaiADQcAZaikDADcDACAEQbgCaiADQbgZaikDADcDACAEQbACaiADQbAZaikDADcDACAEQagCaiADQagZaikDADcDACAEIAMpA6AZNwOgAiAEQfgCaiAJQShqKQMANwMAIARB8AJqIAlBIGopAwA3AwAgBEHoAmogCUEYaikDADcDACAEQeACaiAJQRBqKQMANwMAIARB2AJqIAlBCGopAwA3AwAgBCAJKQMANwPQAiAEQagDaiADQfgZaikDADcDACAEQaADaiADQfAZaikDADcDACAEQZgDaiADQegZaikDADcDACAEQZADaiADQeAZaikDADcDACAEQYgDaiADQdgZaikDADcDACAEIAMpA9AZNwOAAyAEQdgDaiAKQShqKQMANwMAIARB0ANqIApBIGopAwA3AwAgBEHIA2ogCkEYaikDADcDACAEQcADaiAKQRBqKQMANwMAIARBuANqIApBCGopAwA3AwAgBCAKKQMANwOwAwwDCyASQprN/8ujvcSAGlIEQCANIQ8gDiEUIBAhEyARIRUMAgsgEULX2a6a5PbpjcsAVg0AIBFC19mumuT26Y3LAFIEQCANIQ8gDiEUIBAhEyARIRVCms3/y6O9xIAaIRIMAgsgEEK/pZScz/DSu+QAVg0AQtfZrprk9umNywAhFSAQQr+llJzP8NK75ABSBEAgDSEPIA4hFCAQIRNCms3/y6O9xIAaIRIMAgsgDkKk7MO1j9S0mOcAVg0AQr+llJzP8NK75AAhEyAOQqTsw7WP1LSY5wBSBEAgDSEPIA4hFEKazf/Lo73EgBohEgwCCyANQv//z4rr///VHlYNAEKk7MO1j9S0mOcAIRQgDUL//8+K6///1R5SBEAgDSEPQprN/8ujvcSAGiESDAILQv//z4rr///VHiEPIBZCqtX+////v/+5f1YNAEKazf/Lo73EgBohEgwBCyANQv//z4rr///VHn0iFCAWQqvV/v///7//uX9UrSITfSEPIA5CpOzDtY/UtJjnAH0iFSANQv//z4rr///VHlQgEyAUVnKtIg19IRQgEEK/pZScz/DSu+QAfSIaIA5CpOzDtY/UtJjnAFQgDSAVVnKtIg19IRMgEULX2a6a5PbpjcsAfSIOIBBCv6WUnM/w0rvkAFQgDSAaVnKtIg19IRUgEiARQtfZrprk9umNywBUIA0gDlZyrX1Cms3/y6O9xIAafSESIBZC1aqBgICAwIDGAHwhFgsgAyAWNwOAFSADIA83A/gUIAMgFDcD8BQgAyATNwPoFCADIBU3A+AUIAMgEjcD2BQgA0GgGWogASADQdgUahDEAiABQegBaiEGIAFBwAFqIQhBACEFQgAhEkIAIRFCACEQQgAhDkIAIQ1CACEWA0AgA0HAAmogBSAGaikDACIPIBxCABC9AyADQdACaiAPIBhCABC9AyADQeACaiAPIBdCABC9AyADQfACaiAPIBlCABC9AyADQYADaiAPIBtCABC9AyADQZADaiAPIB1CABC9AyADQbACaiADKQPAAiIVIBZ8IhRCAEL9//P/z///+Yl/EL0DIANBoAJqIANBuAJqKQMAIg9Cq9X+////v/+5f0IAEL0DIANBkAJqIA9C///Piuv//9UeQgAQvQMgA0GAAmogD0Kk7MO1j9S0mOcAQgAQvQMgA0HwAWogD0K/pZScz/DSu+QAQgAQvQMgA0HgAWogD0LX2a6a5PbpjcsAQgAQvQMgA0HQAWogD0Kazf/Lo73EgBpCABC9AyADQdgBaikDACASIAMpA5ADIhp8Ig8gA0GIA2opAwAgESADKQOAAyISfCITIBJUrXwgEyADQfgCaikDACADKQPwAiIRIBB8IhAgEVStfCAQIANB6AJqKQMAIAMpA+ACIhEgDnwiDiARVK18IA4gA0HYAmopAwAgAykD0AIiESANfCINIBFUrXwgDSADQcgCaikDACAUIBVUrXx8IhIgDVStfHwiDSAOVK18fCIOIBBUrXx8IhAgE1StfHwiEyADKQPQAXwiFSATVK18IBUgFSADQegBaikDACAQIBAgAykD4AF8IhFWrXwgESARIANB+AFqKQMAIA4gDiADKQPwAXwiEFatfCAQIBAgA0GIAmopAwAgDSANIAMpA4ACfCIOVq18IA4gDiADQZgCaikDACASIAMpA5ACIhJ8Ig0gElStfCANIANBqAJqKQMAIBQgAykDoAIiEnwgElStfHwiFiANVK18fCINVq18fCIOVq18fCIQVq18fCIRVq18IA8gE1atIANBmANqKQMAIA8gGlStfHx8IRIgBUEIayIFQVBHDQALIAFBMGohBQJAAkAgEkKazf/Lo73EgBpWDQAgEkKazf/Lo73EgBpSBEAgDSEPIA4hFCAQIRMgESEVDAILIBFC19mumuT26Y3LAFYNAAJAIBFC19mumuT26Y3LAFIEQCANIQ8gDiEUIBAhEyARIRUMAQsgEEK/pZScz/DSu+QAVg0BQtfZrprk9umNywAhFSAQQr+llJzP8NK75ABSBEAgDSEPIA4hFCAQIRMMAQsgDkKk7MO1j9S0mOcAVg0BQr+llJzP8NK75AAhEyAOQqTsw7WP1LSY5wBSBEAgDSEPIA4hFAwBCyANQv//z4rr///VHlYNAUKk7MO1j9S0mOcAIRQgDUL//8+K6///1R5SBEAgDSEPDAELQv//z4rr///VHiEPIBZCqtX+////v/+5f1YNAQtCms3/y6O9xIAaIRIMAQsgDUL//8+K6///1R59IhQgFkKr1f7///+//7l/VK0iE30hDyAOQqTsw7WP1LSY5wB9IhUgDUL//8+K6///1R5UIBMgFFZyrSINfSEUIBBCv6WUnM/w0rvkAH0iGiAOQqTsw7WP1LSY5wBUIA0gFVZyrSINfSETIBFC19mumuT26Y3LAH0iDiAQQr+llJzP8NK75ABUIA0gGlZyrSINfSEVIBIgEULX2a6a5PbpjcsAVCANIA5Wcq19QprN/8ujvcSAGn0hEiAWQtWqgYCAgMCAxgB8IRYLIAMgFjcDgBUgAyAPNwP4FCADIBQ3A/AUIAMgEzcD6BQgAyAVNwPgFCADIBI3A9gUIANB0BlqIAUgA0HYFGoQxAIgAUGYAmohCSABQfABaiEGQQAhBUIAIRJCACERQgAhEEIAIQ5CACENQgAhFgNAIANB8ABqIAUgCWopAwAiDyAcQgAQvQMgA0GAAWogDyAYQgAQvQMgA0GQAWogDyAXQgAQvQMgA0GgAWogDyAZQgAQvQMgA0GwAWogDyAbQgAQvQMgA0HAAWogDyAdQgAQvQMgA0HgAGogAykDcCIVIBZ8IhRCAEL9//P/z///+Yl/EL0DIANB0ABqIANB6ABqKQMAIg9Cq9X+////v/+5f0IAEL0DIANBQGsgD0L//8+K6///1R5CABC9AyADQTBqIA9CpOzDtY/UtJjnAEIAEL0DIANBIGogD0K/pZScz/DSu+QAQgAQvQMgA0EQaiAPQtfZrprk9umNywBCABC9AyADIA9Cms3/y6O9xIAaQgAQvQMgA0EIaikDACASIAMpA8ABIhp8Ig8gA0G4AWopAwAgESADKQOwASISfCITIBJUrXwgEyADQagBaikDACADKQOgASIRIBB8IhAgEVStfCAQIANBmAFqKQMAIAMpA5ABIhEgDnwiDiARVK18IA4gA0GIAWopAwAgAykDgAEiESANfCINIBFUrXwgDSADQfgAaikDACAUIBVUrXx8IhIgDVStfHwiDSAOVK18fCIOIBBUrXx8IhAgE1StfHwiEyADKQMAfCIVIBNUrXwgFSAVIANBGGopAwAgECAQIAMpAxB8IhFWrXwgESARIANBKGopAwAgDiAOIAMpAyB8IhBWrXwgECAQIANBOGopAwAgDSANIAMpAzB8Ig5WrXwgDiAOIANByABqKQMAIBIgAykDQCISfCINIBJUrXwgDSADQdgAaikDACAUIAMpA1AiEnwgElStfHwiFiANVK18fCINVq18fCIOVq18fCIQVq18fCIRVq18IA8gE1atIANByAFqKQMAIA8gGlStfHx8IRIgBUEIayIFQVBHDQALIAFB4ABqIQECQAJAIBJCms3/y6O9xIAaVg0AIBJCms3/y6O9xIAaUgRAIA0hFyAOIRggECEZIBEhGwwCCyARQtfZrprk9umNywBWDQACQCARQtfZrprk9umNywBSBEAgDSEXIA4hGCAQIRkgESEbDAELIBBCv6WUnM/w0rvkAFYNAULX2a6a5PbpjcsAIRsgEEK/pZScz/DSu+QAUgRAIA0hFyAOIRggECEZDAELIA5CpOzDtY/UtJjnAFYNAUK/pZScz/DSu+QAIRkgDkKk7MO1j9S0mOcAUgRAIA0hFyAOIRgMAQsgDUL//8+K6///1R5WDQFCpOzDtY/UtJjnACEYIA1C///Piuv//9UeUgRAIA0hFwwBC0L//8+K6///1R4hFyAWQqrV/v///7//uX9WDQELQprN/8ujvcSAGiESDAELIA1C///Piuv//9UefSIPIBZCq9X+////v/+5f1StIhR9IRcgDkKk7MO1j9S0mOcAfSITIA1C///Piuv//9UeVCAPIBRUcq0iDX0hGCAQQr+llJzP8NK75AB9Ig8gDkKk7MO1j9S0mOcAVCANIBNWcq0iDX0hGSARQtfZrprk9umNywB9Ig4gEEK/pZScz/DSu+QAVCANIA9Wcq0iDX0hGyASIBFC19mumuT26Y3LAFQgDSAOVnKtfUKazf/Lo73EgBp9IRIgFkLVqoGAgIDAgMYAfCEWCyADIBY3A4AVIAMgFzcD+BQgAyAYNwPwFCADIBk3A+gUIAMgGzcD4BQgAyASNwPYFCAEQcABaiABIANB2BRqEMQCIAQgAykDoBk3AwAgBEEIaiADQagZaikDADcDACAEQRBqIANBsBlqKQMANwMAIARBGGogA0G4GWopAwA3AwAgBEEgaiADQcAZaikDADcDACAEQShqIANByBlqKQMANwMAIARBmAJqIAZBKGopAwA3AwAgBEGQAmogBkEgaikDADcDACAEQYgCaiAGQRhqKQMANwMAIARBgAJqIAZBEGopAwA3AwAgBEH4AWogBkEIaikDADcDACAEIAYpAwA3A/ABIARB2ABqIAdBKGopAwA3AwAgBEHQAGogB0EgaikDADcDACAEQcgAaiAHQRhqKQMANwMAIARBQGsgB0EQaikDADcDACAEQThqIAdBCGopAwA3AwAgBCAHKQMANwMwIARBiAFqIANB+BlqKQMANwMAIARBgAFqIANB8BlqKQMANwMAIARB+ABqIANB6BlqKQMANwMAIARB8ABqIANB4BlqKQMANwMAIARB6ABqIANB2BlqKQMANwMAIAQgAykD0Bk3A2AgBEG4AWogCEEoaikDADcDACAEQbABaiAIQSBqKQMANwMAIARBqAFqIAhBGGopAwA3AwAgBEGgAWogCEEQaikDADcDACAEQZgBaiAIQQhqKQMANwMAIAQgCCkDADcDkAELIAAgAjYCCCAAIAQ2AgQgACACNgIAIANBgBpqJAAL6YgBAgp/G34jAEGAGmsiAyQAIAMgAjYC1BQgA0EMNgLQFAJAAkAgAkEMRgRAIANB2BRqENQCIANB8BNqIAMpA4AYIg1Cxq7Q4cHmx+90QgAQvQMgA0HgE2ogAykD8BNCfoMiFEIAQv3/8//P///5iX8QvQMgA0HQE2ogA0HoE2opAwAiDkKr1f7///+//7l/QgAQvQMgA0HAE2ogDkL//8+K6///1R5CABC9AyADQcASaiAOQqTsw7WP1LSY5wBCABC9AyADQcARaiAOQr+llJzP8NK75ABCABC9AyADQcAQaiAOQtfZrprk9umNywBCABC9AyADQcAPaiAOQprN/8ujvcSAGkIAEL0DIANBgBRqIA1C8YnEzuDUubsKQgAQvQMgA0GwE2ogAykDgBQiECADKQPAEyITIANB+BNqKQMAfCIPIANB2BNqKQMAIAMpA9ATIg4gFHwgDlStfHwiEXwiFEIAQv3/8//P///5iX8QvQMgA0GgE2ogA0G4E2opAwAiDkKr1f7///+//7l/QgAQvQMgA0GQE2ogDkL//8+K6///1R5CABC9AyADQYATaiAOQqTsw7WP1LSY5wBCABC9AyADQfASaiAOQr+llJzP8NK75ABCABC9AyADQeASaiAOQtfZrprk9umNywBCABC9AyADQdASaiAOQprN/8ujvcSAGkIAEL0DIANBkBRqIA1C1e3W5MTt0fKNf0IAEL0DIANBsBJqIAMpA5AUIhUgAykDkBMiFyADQYgUaikDACAQIBRWrXwiECADKQPAEiIYIA8gEVatIANByBNqKQMAIA8gE1StfHx8IhN8IhF8Ig8gA0GoE2opAwAgAykDoBMiDiAUfCAOVK18fCIZfCIUQgBC/f/z/8////mJfxC9AyADQaASaiADQbgSaikDACIOQqvV/v///7//uX9CABC9AyADQZASaiAOQv//z4rr///VHkIAEL0DIANBgBJqIA5CpOzDtY/UtJjnAEIAEL0DIANB8BFqIA5Cv6WUnM/w0rvkAEIAEL0DIANB4BFqIA5C19mumuT26Y3LAEIAEL0DIANB0BFqIA5Cms3/y6O9xIAaQgAQvQMgA0GgFGogDULAh/acmZXi9ecAQgAQvQMgA0GwEWogAykDoBQiGyADKQOQEiISIANBmBRqKQMAIBQgFVStfCIVIBAgEVatIhEgAykDwBEiFiADQcgSaikDACATIBhUrXx8Ihh8IhAgAykDgBN8IhMgDyAZVq0gA0GYE2opAwAgDyAXVK18fHwiF3wiGXwiDyADQagSaikDACADKQOgEiIOIBR8IA5UrXx8Ihx8IhRCAEL9//P/z///+Yl/EL0DIANBoBFqIANBuBFqKQMAIg5Cq9X+////v/+5f0IAEL0DIANBkBFqIA5C///Piuv//9UeQgAQvQMgA0GAEWogDkKk7MO1j9S0mOcAQgAQvQMgA0HwEGogDkK/pZScz/DSu+QAQgAQvQMgA0HgEGogDkLX2a6a5PbpjcsAQgAQvQMgA0HQEGogDkKazf/Lo73EgBpCABC9AyADQbAUaiANQq2q5qjb0M+8mn9CABC9AyADQbAQaiADKQOwFCIdIAMpA5ARIhogA0GoFGopAwAgFCAbVK18IhsgFSAZVq0iGSAQIBFUrSIeIAMpA8AQIh8gA0HIEWopAwAgFiAYVq18fCIYfCIRIAMpA/ASfCIVIBMgF1atIANBiBNqKQMAIBAgE1atfHx8IhZ8IhAgAykDgBJ8IhMgDyAcVq0gA0GYEmopAwAgDyASVK18fHwiEnwiF3wiDyADQagRaikDACADKQOgESIOIBR8IA5UrXx8Ihx8IhRCAEL9//P/z///+Yl/EL0DIANBoBBqIANBuBBqKQMAIg5Cq9X+////v/+5f0IAEL0DIANBkBBqIA5C///Piuv//9UeQgAQvQMgA0GAEGogDkKk7MO1j9S0mOcAQgAQvQMgA0HwD2ogDkK/pZScz/DSu+QAQgAQvQMgA0HgD2ogDkLX2a6a5PbpjcsAQgAQvQMgA0HQD2ogDkKazf/Lo73EgBpCABC9AyADQcAUaiANQqrHq5bZ/KPMEUIAEL0DIANBsA9qIAMpA8AUIiAgAykDkBAiISADQbgUaikDACAUIB1UrXwiHSAXIBtUrSIbIBAgGVStIhkgESAeVK0iHiADKQPADyIiIANByBBqKQMAIBggH1StfHwiGHwiDiADKQPgEnwiFyAVIBZWrSADQfgSaikDACARIBVWrXx8fCIWfCIRIAMpA/ARfCIVIBIgE1StIANBiBJqKQMAIBAgE1atfHx8IhJ8IhAgAykDgBF8IhMgDyAcVq0gA0GYEWopAwAgDyAaVK18fHwiHHwiGnwiDyADQagQaikDACADKQOgECINIBR8IA1UrXx8Ih98IhRCAEL9//P/z///+Yl/EL0DIANBoA9qIANBuA9qKQMAIg1Cq9X+////v/+5f0IAEL0DIANBkA9qIA1C///Piuv//9UeQgAQvQMgA0GAD2ogDUKk7MO1j9S0mOcAQgAQvQMgA0HwDmogDUK/pZScz/DSu+QAQgAQvQMgA0HgDmogDULX2a6a5PbpjcsAQgAQvQMgA0HQDmogDUKazf/Lo73EgBpCABC9AyADQdgOaikDACADKQPQDiIjIANB2A9qKQMAIAMpA9APIiQgA0HYEGopAwAgAykD0BAiJSADQdgRaikDACADKQPQESImIANB2BJqKQMAIAMpA9ASIicgDiAeVK0gA0HID2opAwAgGCAiVK18fHwiDSAnVK18IA0gDSAWIBdUrSADQegSaikDACAOIBdWrXx8fCIOVq18IA4gESAZVK0iDnwiDSAOVK18fCIOICZUrXwgDiAOIANB6BFqKQMAIA0gDSADKQPgEXwiF1atfCAXIBcgEiAVVK0gA0H4EWopAwAgESAVVq18fHwiDVatfHwiEVatfCARIBAgG1StIg4gDXwiDSAOVK0iFXwiDiAVVK18fCIRICVUrXwgESADQegQaikDACAOIA4gAykD4BB8IhVWrXwgFSAVIANB+BBqKQMAIA0gDSADKQPwEHwiDlatfCAOIA4gEyAcVq0gA0GIEWopAwAgECATVq18fHwiDVatfHwiDlatfHwiECARVK18IBAgDiAaIB1UrSITIA18Ig0gE1StIhN8Ig4gE1StIhN8IhAgE1StfHwiEyAkVK18IBMgA0HoD2opAwAgECAQIAMpA+APfCIRVq18IBEgA0H4D2opAwAgDiAOIAMpA/APfCIQVq18IBAgECADQYgQaikDACANIA0gAykDgBB8Ig5WrXwgDiAOIA8gH1atIANBmBBqKQMAIA8gIVStfHx8Ig1WrXx8Ig5WrXx8Ig8gEVStfHwiECATVK18IBAgDyAOIA0gA0HIFGopAwAgFCAgVK18IhN8IhEgE1StIhN8Ig0gE1StIhN8Ig4gE1StIhN8Ig8gE1StfHwiECAjVK18IBAgA0HoDmopAwAgDyAPIAMpA+AOfCITVq18IBMgA0H4DmopAwAgDiAOIAMpA/AOfCIPVq18IA8gA0GID2opAwAgDSANIAMpA4APfCIOVq18IA4gA0GYD2opAwAgESADKQOQDyIRfCINIBFUrXwgDSADQagPaikDACAUIAMpA6APIhF8IBFUrXx8IhwgDVStfHwiGCAOVK18fCIXIA9UrXx8IhkgE1StfHwiGyAQVK18Ih1Cms3/y6O9xIAaUg0CAkAgG0LX2a6a5PbpjcsAVg0AQprN/8ujvcSAGiEdIBtC19mumuT26Y3LAFINAyAZQr+llJzP8NK75ABWDQAgGUK/pZScz/DSu+QAUgRAQtfZrprk9umNywAhGwwECyAXQqTsw7WP1LSY5wBWDQAgF0Kk7MO1j9S0mOcAUg0CIBhC///Piuv//9UeVg0AIBhC///Piuv//9UeUgRAQqTsw7WP1LSY5wAhFwwDCyAcQqvV/v///7//uX9aDQBC///Piuv//9UeIRhCpOzDtY/UtJjnACEXDAILQn9CACAbQtfZrprk9umNywB9Ig0gGUK/pZScz/DSu+QAVCAZQr+llJzP8NK75AB9Ig4gF0Kk7MO1j9S0mOcAVCAXQqTsw7WP1LSY5wB9Ig8gGEL//8+K6///1R5UIBhC///Piuv//9UefSIUIBxCq9X+////v/+5f1StIhBUcq0iE1RyrSIRVHKtIhVUGyEdIBQgEH0hGCAPIBN9IRcgDiARfSEZIA0gFX0hGyAcQtWqgYCAgMCAxgB8IRwMAgsgA0EANgLYFCADQdQUaiADQdAUaiADQdgUakHIj8AAEIgEAAtCv6WUnM/w0rvkACEZQtfZrprk9umNywAhGwsCQCADKALcFCIERQ0AIAQgBEEMbEETakF4cSIFakEJaiIERQ0AIAMoAtgUIAVrIAQQuQQLAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCACQQJrDgsBAAAAAgAAAAAAAwALIANBADYC6BQgA0EBNgLcFCADQdSRwAA2AtgUIANCBDcC4BQgA0HYFGpB3JHAABCGBAALQdm+wgAtAAAaQeAAQQgQsAQiBEUNBCAEIAEpAwA3AwAgBCABKQMwNwMwIARBKGogAUEoaikDADcDACAEQSBqIAFBIGopAwA3AwAgBEEYaiABQRhqKQMANwMAIARBEGogAUEQaikDADcDACAEQQhqIAFBCGopAwA3AwAgBEE4aiABQThqKQMANwMAIARBQGsgAUFAaykDADcDACAEQcgAaiABQcgAaikDADcDACAEQdAAaiABQdAAaikDADcDACAEQdgAaiABQdgAaikDADcDAAwLC0HZvsIALQAAGkGgAkEIELAEIgQNAUEIQaACEMoEAAtB2b7CAC0AABpBwARBCBCwBCIEDQFBCEHABBDKBAALIAFBMGohB0HYACEFQgAhEkIAIRFCACEQQgAhDkIAIQ1CACEWA0AgA0GQBGogASAFaikDACIPIBxCABC9AyADQaAEaiAPIBhCABC9AyADQbAEaiAPIBdCABC9AyADQcAEaiAPIBlCABC9AyADQdAEaiAPIBtCABC9AyADQeAEaiAPIB1CABC9AyADQYAEaiADKQOQBCIVIBZ8IhRCAEL9//P/z///+Yl/EL0DIANB8ANqIANBiARqKQMAIg9Cq9X+////v/+5f0IAEL0DIANB4ANqIA9C///Piuv//9UeQgAQvQMgA0HQA2ogD0Kk7MO1j9S0mOcAQgAQvQMgA0HAA2ogD0K/pZScz/DSu+QAQgAQvQMgA0GwA2ogD0LX2a6a5PbpjcsAQgAQvQMgA0GgA2ogD0Kazf/Lo73EgBpCABC9AyADQagDaikDACASIAMpA+AEIhp8Ig8gA0HYBGopAwAgESADKQPQBCISfCITIBJUrXwgEyADQcgEaikDACADKQPABCIRIBB8IhAgEVStfCAQIANBuARqKQMAIAMpA7AEIhEgDnwiDiARVK18IA4gA0GoBGopAwAgAykDoAQiESANfCINIBFUrXwgDSADQZgEaikDACAUIBVUrXx8IhIgDVStfHwiDSAOVK18fCIOIBBUrXx8IhAgE1StfHwiEyADKQOgA3wiFSATVK18IBUgFSADQbgDaikDACAQIBAgAykDsAN8IhFWrXwgESARIANByANqKQMAIA4gDiADKQPAA3wiEFatfCAQIBAgA0HYA2opAwAgDSANIAMpA9ADfCIOVq18IA4gDiADQegDaikDACASIAMpA+ADIhJ8Ig0gElStfCANIANB+ANqKQMAIBQgAykD8AMiEnwgElStfHwiFiANVK18fCINVq18fCIOVq18fCIQVq18fCIRVq18IA8gE1atIANB6ARqKQMAIA8gGlStfHx8IRIgBUEIayIFQShHDQALIBJCms3/y6O9xIAaWA0FDAYLIAFBMGohB0HYACEFQgAhEkIAIRFCACEQQgAhDkIAIQ1CACEWA0AgA0HwDWogASAFaikDACIPIBxCABC9AyADQYAOaiAPIBhCABC9AyADQZAOaiAPIBdCABC9AyADQaAOaiAPIBlCABC9AyADQbAOaiAPIBtCABC9AyADQcAOaiAPIB1CABC9AyADQeANaiADKQPwDSIVIBZ8IhRCAEL9//P/z///+Yl/EL0DIANB0A1qIANB6A1qKQMAIg9Cq9X+////v/+5f0IAEL0DIANBwA1qIA9C///Piuv//9UeQgAQvQMgA0GwDWogD0Kk7MO1j9S0mOcAQgAQvQMgA0GgDWogD0K/pZScz/DSu+QAQgAQvQMgA0GQDWogD0LX2a6a5PbpjcsAQgAQvQMgA0GADWogD0Kazf/Lo73EgBpCABC9AyADQYgNaikDACASIAMpA8AOIhp8Ig8gA0G4DmopAwAgESADKQOwDiISfCITIBJUrXwgEyADQagOaikDACADKQOgDiIRIBB8IhAgEVStfCAQIANBmA5qKQMAIAMpA5AOIhEgDnwiDiARVK18IA4gA0GIDmopAwAgAykDgA4iESANfCINIBFUrXwgDSADQfgNaikDACAUIBVUrXx8IhIgDVStfHwiDSAOVK18fCIOIBBUrXx8IhAgE1StfHwiEyADKQOADXwiFSATVK18IBUgFSADQZgNaikDACAQIBAgAykDkA18IhFWrXwgESARIANBqA1qKQMAIA4gDiADKQOgDXwiEFatfCAQIBAgA0G4DWopAwAgDSANIAMpA7ANfCIOVq18IA4gDiADQcgNaikDACASIAMpA8ANIhJ8Ig0gElStfCANIANB2A1qKQMAIBQgAykD0A0iEnwgElStfHwiFiANVK18fCINVq18fCIOVq18fCIQVq18fCIRVq18IA8gE1atIANByA5qKQMAIA8gGlStfHx8IRIgBUEIayIFQShHDQALIBJCms3/y6O9xIAaWA0BDAILQQhB4AAQqAQACyASQprN/8ujvcSAGlIEQCANIQ8gDiEUIBAhEyARIRUMAgsgEULX2a6a5PbpjcsAVg0AIBFC19mumuT26Y3LAFIEQCANIQ8gDiEUIBAhEyARIRVCms3/y6O9xIAaIRIMAgsgEEK/pZScz/DSu+QAVg0AQtfZrprk9umNywAhFSAQQr+llJzP8NK75ABSBEAgDSEPIA4hFCAQIRNCms3/y6O9xIAaIRIMAgsgDkKk7MO1j9S0mOcAVg0AQr+llJzP8NK75AAhEyAOQqTsw7WP1LSY5wBSBEAgDSEPIA4hFEKa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A0GwB2ogBSALaikDACIPIBxCABC9AyADQcAHaiAPIBhCABC9AyADQdAHaiAPIBdCABC9AyADQeAHaiAPIBlCABC9AyADQfAHaiAPIBtCABC9AyADQYAIaiAPIB1CABC9AyADQaAHaiADKQOwByIVIBZ8IhRCAEL9//P/z///+Yl/EL0DIANBkAdqIANBqAdqKQMAIg9Cq9X+////v/+5f0IAEL0DIANBgAdqIA9C///Piuv//9UeQgAQvQMgA0HwBmogD0Kk7MO1j9S0mOcAQgAQvQMgA0HgBmogD0K/pZScz/DSu+QAQgAQvQMgA0HQBmogD0LX2a6a5PbpjcsAQgAQvQMgA0HABmogD0Kazf/Lo73EgBpCABC9AyADQcgGaikDACASIAMpA4AIIhp8Ig8gA0H4B2opAwAgESADKQPwByISfCITIBJUrXwgEyADQegHaikDACADKQPgByIRIBB8IhAgEVStfCAQIANB2AdqKQMAIAMpA9AHIhEgDnwiDiARVK18IA4gA0HIB2opAwAgAykDwAciESANfCINIBFUrXwgDSADQbgHaikDACAUIBVUrXx8IhIgDVStfHwiDSAOVK18fCIOIBBUrXx8IhAgE1StfHwiEyADKQPABnwiFSATVK18IBUgFSADQdgGaikDACAQIBAgAykD0AZ8IhFWrXwgESARIANB6AZqKQMAIA4gDiADKQPgBnwiEFatfCAQIBAgA0H4BmopAwAgDSANIAMpA/AGfCIOVq18IA4gDiADQYgHaikDACASIAMpA4AHIhJ8Ig0gElStfCANIANBmAdqKQMAIBQgAykDkAciEnwgElStfHwiFiANVK18fCINVq18fCIOVq18fCIQVq18fCIRVq18IA8gE1atIANBiAhqKQMAIA8gGlStfHx8IRIgBUEIayIFQVBHDQALIAFBwAFqIQUCQAJAIBJCms3/y6O9xIAaVg0AIBJCms3/y6O9xIAaUgRAIA0hDyAOIRQgECETIBEhFQwCCyARQtfZrprk9umNywBWDQACQCARQtfZrprk9umNywBSBEAgDSEPIA4hFCAQIRMgESEVDAELIBBCv6WUnM/w0rvkAFYNAULX2a6a5PbpjcsAIRUgEEK/pZScz/DSu+QAUgRAIA0hDyAOIRQgECETDAELIA5CpOzDtY/UtJjnAFYNAUK/pZScz/DS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GGopAwA3AwAgBEGwAmogB0EQaikDADcDACAEQagCaiAHQQhqKQMANwMAIAQgBykDADcDoAIgBCAIKQMANwPQAiAEQdgCaiAIQQhqKQMANwMAIARB4AJqIAhBEGopAwA3AwAgBEHoAmogCEEYaikDADcDACAEQfACaiAIQSBqKQMANwMAIARB+AJqIAhBKGopAwA3AwAgBEGoA2ogBkEoaikDADcDACAEQaADaiAGQSBqKQMANwMAIARBmANqIAZBGGopAwA3AwAgBEGQA2ogBkEQaikDADcDACAEQYgDaiAGQQhqKQMANwMAIAQgBikDADcDgAMgBEHYA2ogCUEoaikDADcDACAEQdADaiAJQSBqKQMANwMAIARByANqIAlBGGopAwA3AwAgBEHAA2ogCUEQaikDADcDACAEQbgDaiAJQQhqKQMANwMAIAQgCSkDADcDsAMgBEGIBGogCkEoaikDADcDACAEQYAEaiAKQSBqKQMANwMAIARB+ANqIApBGGopAwA3AwAgBEHwA2ogCkEQaikDADcDACAEQegDaiAKQQhqKQMANwMAIAQgCikDADcD4AMgBEG4BGogC0EoaikDADcDACAEQbAEaiALQSBqKQMANwMAIARBqARqIAtBGGopAwA3AwAgBEGgBGogC0EQaikDADcDACAEQZgEaiALQQhqKQMANwMAIAQgCykDADcDkAQgBEEoaiADQbgYaikDADcDACAEQSBqIANBsBhqKQMANwMAIARBGGogA0GoGGopAwA3AwAgBEEQaiADQaAYaikDADcDACAEQQhqIANBmBhqKQMANwMAIAQgAykDkBg3AwAgBEHYAGogA0HoGGopAwA3AwAgBEHQAGogA0HgGGopAwA3AwAgBEHIAGogA0HYGGopAwA3AwAgBEFAayADQdAYaikDADcDACAEQThqIANByBhqKQMANwMAIAQgAykDwBg3AzAgBEGIAWogA0GYGWopAwA3AwAgBEGAAWogA0GQGWopAwA3AwAgBEH4AGogA0GIGWopAwA3AwAgBEHwAGogA0GAGWopAwA3AwAgBEHoAGogA0H4GGopAwA3AwAgBCADKQPwGDcDYCAEQbgBaiADQcgZaikDADcDACAEQbABaiADQcAZaikDADcDACAEQagBaiADQbgZaikDADcDACAEQaABaiADQbAZaikDADcDACAEQZgBaiADQagZaikDADcDACAEIAMpA6AZNwOQASAEQegBaiADQfgZaikDADcDACAEQeABaiADQfAZaikDADcDACAEQdgBaiADQegZaikDADcDACAEQdABaiADQeAZaikDADcDACAEQcgBaiADQdgZaikDADcDACAEIAMpA9AZNwPAAQwDCyASQprN/8ujvcSAGlIEQCANIQ8gDiEUIBAhEyARIRUMAgsgEULX2a6a5PbpjcsAVg0AIBFC19mumuT26Y3LAFIEQCANIQ8gDiEUIBAhEyARIRVCms3/y6O9xIAaIRIMAgsgEEK/pZScz/DSu+QAVg0AQtfZrprk9umNywAhFSAQQr+llJzP8NK75ABSBEAgDSEPIA4hFCAQIRNCms3/y6O9xIAaIRIMAgsgDkKk7MO1j9S0mOcAVg0AQr+llJzP8NK75AAhEyAOQqTsw7WP1LSY5wBSBEAgDSEPIA4hFEKazf/Lo73EgBohEgwCCyANQv//z4rr///VHlYNAEKk7MO1j9S0mOcAIRQgDUL//8+K6///1R5SBEAgDSEPQprN/8ujvcSAGiESDAILQv//z4rr///VHiEPIBZCqtX+////v/+5f1YNAEKazf/Lo73EgBohEgwBCyANQv//z4rr///VHn0iFCAWQqvV/v///7//uX9UrSITfSEPIA5CpOzDtY/UtJjnAH0iFSANQv//z4rr///VHlQgEyAUVnKtIg19IRQgEEK/pZScz/DSu+QAfSIaIA5CpOzDtY/UtJjnAFQgDSAVVnKtIg19IRMgEULX2a6a5PbpjcsAfSIOIBBCv6WUnM/w0rvkAFQgDSAaVnKtIg19IRUgEiARQtfZrprk9umNywBUIA0gDlZyrX1Cms3/y6O9xIAafSESIBZC1aqBgICAwIDGAHwhFgsgAyAWNwOAFSADIA83A/gUIAMgFDcD8BQgAyATNwPoFCADIBU3A+AUIAMgEjcD2BQgA0GgGWogASADQdgUahD/ASABQbgBaiEGIAFBkAFqIQhBACEFQgAhEkIAIRFCACEQQgAhDkIAIQ1CACEWA0AgA0HAAmogBSAGaikDACIPIBxCABC9AyADQdACaiAPIBhCABC9AyADQeACaiAPIBdCABC9AyADQfACaiAPIBlCABC9AyADQYADaiAPIBtCABC9AyADQZADaiAPIB1CABC9AyADQbACaiADKQPAAiIVIBZ8IhRCAEL9//P/z///+Yl/EL0DIANBoAJqIANBuAJqKQMAIg9Cq9X+////v/+5f0IAEL0DIANBkAJqIA9C///Piuv//9UeQgAQvQMgA0GAAmogD0Kk7MO1j9S0mOcAQgAQvQMgA0HwAWogD0K/pZScz/DSu+QAQgAQvQMgA0HgAWogD0LX2a6a5PbpjcsAQgAQvQMgA0HQAWogD0Kazf/Lo73EgBpCABC9AyADQdgBaikDACASIAMpA5ADIhp8Ig8gA0GIA2opAwAgESADKQOAAyISfCITIBJUrXwgEyADQfgCaikDACADKQPwAiIRIBB8IhAgEVStfCAQIANB6AJqKQMAIAMpA+ACIhEgDnwiDiARVK18IA4gA0HYAmopAwAgAykD0AIiESANfCINIBFUrXwgDSADQcgCaikDACAUIBVUrXx8IhIgDVStfHwiDSAOVK18fCIOIBBUrXx8IhAgE1StfHwiEyADKQPQAXwiFSATVK18IBUgFSADQegBaikDACAQIBAgAykD4AF8IhFWrXwgESARIANB+AFqKQMAIA4gDiADKQPwAXwiEFatfCAQIBAgA0GIAmopAwAgDSANIAMpA4ACfCIOVq18IA4gDiADQZgCaikDACASIAMpA5ACIhJ8Ig0gElStfCANIANBqAJqKQMAIBQgAykDoAIiEnwgElStfHwiFiANVK18fCINVq18fCIOVq18fCIQVq18fCIRVq18IA8gE1atIANBmANqKQMAIA8gGlStfHx8IRIgBUEIayIFQVBHDQALIAFB4ABqIQUCQAJAIBJCms3/y6O9xIAaVg0AIBJCms3/y6O9xIAaUgRAIA0hDyAOIRQgECETIBEhFQwCCyARQtfZrprk9umNywBWDQACQCARQtfZrprk9umNywBSBEAgDSEPIA4hFCAQIRMgESEVDAELIBBCv6WUnM/w0rvkAFYNAULX2a6a5PbpjcsAIRUgEEK/pZScz/DSu+QAUgRAIA0hDyAOIRQgECETDAELIA5CpOzDtY/UtJjnAFYNAUK/pZScz/DSu+QAIRMgDkKk7MO1j9S0mOcAUgRAIA0hDyAOIRQMAQsgDUL//8+K6///1R5WDQFCpOzDtY/UtJjnACEUIA1C///Piuv//9UeUgRAIA0hDwwBC0L//8+K6///1R4hDyAW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IARB4AFqIAhBIGopAwA3AwAgBEHoAWogCEEoaikDADcDACAEQZgCaiAGQShqKQMANwMAIARBkAJqIAZBIGopAwA3AwAgBEGIAmogBkEYaikDADcDACAEQYACaiAGQRBqKQMANwMAIARB+AFqIAZBCGopAwA3AwAgBCAGKQMANwPwASAEQShqIANByBlqKQMANwMAIARBIGogA0HAGWopAwA3AwAgBEEYaiADQbgZaikDADcDACAEQRBqIANBsBlqKQMANwMAIARBCGogA0GoGWopAwA3AwAgBCADKQOgGTcDACAEQdgAaiADQfgZaikDADcDACAEQdAAaiADQfAZaikDADcDACAEQcgAaiADQegZaikDADcDACAEQUBrIANB4BlqKQMANwMAIARBOGogA0HYGWopAwA3AwAgBCADKQPQGTcDMAsgACACNgIIIAAgBDYCBCAAIAI2AgAgA0GAGmokAAu3pQICRH8XfiMAQdAIayIFJAAgBUEANgKYAyAFQoCAgIDAADcCkAMCQAJAAkACQAJAAkACQCAERQ0AIARBDGwhBANAIAVB8AFqIAMQZyAFKAKYAyIOIAUoApADRgRAIAVBkANqEJ4DCyADQQxqIQMgBSgClAMgDkEMbGoiByAFKQLwATcCACAHQQhqIAVB+AFqKAIANgIAIAUgDkEBaiIHNgKYAyAEQQxrIgQNAAsgB0UNACAHQQxsIQggBSgClAMiBEEIaigCACEHAkAgDkUNACAIQQxrQQxuIg5BA3EhCiAOQQFrQQNPBEAgBEE4aiEDIA5B/P///wFxIQkDQCAHIANBJGsoAgAiDiAHIA5LGyIOIANBGGsoAgAiByAHIA5JGyIOIANBDGsoAgAiByAHIA5JGyIOIAMoAgAiByAHIA5JGyEHIANBMGohAyAJIAxBBGoiDEcNAAsLIApFDQAgDEEMbCAEakEUaiEDA0AgByADKAIAIg4gByAOSxshByADQQxqIQMgCkEBayIKDQALCyAEIAhqIQ4DQCAHIAQoAggiA0sEQANAIAQoAgAgA0YEQCAEEKcDCyAEKAIEIANqQQA6AAAgBCADQQFqIgM2AgggAyAHRw0ACwsgBEEMaiIEIA5HDQALIAVBADYC2AYgBUKAgICAwAA3AtAGAkACQCAHBH9BACEKA0BBASEPIAUoApgDIgkEQCAFKAKUA0HZ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FUEIaikDADcDACADQThqIEo3AwAgA0EwaiBMNwMAIANBKGogSTcDACADQSBqIE03AwAgCEEBaiEIIAdBQGshByAKQQFrIgoNAAsFIAcLNgIAIBVBIGokACAFKALYByIIRQ0BIAUoAtAHISQgKSAFKALUByIwKQMgNwMAIClBGGoiOyAwQThqKQMANwMAIClBEGoiPCAwQTBqKQMANwMAIClBCGoiPSAwQShqKQMANwMAIAVBoARqIiggMEEYaikDADcDACAFQZgEaiIhIDBBEGopAwA3AwAgBUGQBGoiHiAwQQhqKQMANwMAIAVBqARqIiogKSkDADcDACAFQcAEaiITIAVBiAdqIhkpAwA3AwAgBUG4BGoiCiAFQYAHaiIVKQMANwMAIAVBsARqIg0gOSkDADcDACAFIDApAwA3A4gEIAhBAUYNAiAwQUBrIQMgBUHIBmoiEiATKQMANwMAIAVBwAZqIhEgCikDADcDACAFQbgGaiILIA0pAwA3AwAgNCAqKQMANwMAIAVBqAZqIg8gKCkDADcDACAFQaAGaiIJICEpAwA3AwAgBUGYBmoiByAeKQMANwMAIAUgBSkDiAQ3A5AGIAhBAWtB////H3EhBANAIBkgEikDADcDACAVIBEpAwA3AwAgOSALKQMANwMAICkgNCkDADcDACAFQegGaiAPKQMANwMAIAVB4AZqIAkpAwA3AwAgIiAHKQMANwMAIAUgBSkDkAY3A9AGIC4gA0EgaikDADcDACAuQQhqIANBKGopAwA3AwAgLkEQaiADQTBqKQMANwMAIC5BGGogA0E4aikDADcDACADQRhqKQMAIUwgA0EQaikDACFNIANBCGopAwAhSSA1IAMpAwAiSjcDACA1QQhqIEk3AwAgNUEQaiBNNwMAIDVBGGogTDcDACA6IEk3AwAgBUHgB2ogTTcDACAFQegHaiBMNwMAIDVBIGogLikDADcDACA1QShqIAVB+AdqKQMANwMAIDVBMGogBUGACGopAwA3AwAgNUE4aiAFQYgIaikDADcDACAFIEo3A9AHIAVBkAZqIAVB0AZqIDUQJiADQUBrIQMgBEEBayIEDQALIB8gBSkDkAY3AwAgH0E4aiASKQMANwMAIB9BMGogESkDADcDACAfQShqIAspAwA3AwAgH0EgaiA0KQMANwMAIB9BGGogDykDADcDACAfQRBqIAkpAwA3AwAgH0EIaiAHKQMANwMADAMLIAogLxCoBAALQbyIwAAQuwQACyAfIAUpA4gENwMAIB9BOGogEykDADcDACAfQTBqIAopAwA3AwAgH0EoaiANKQMANwMAIB9BIGogKikDADcDACAfQRhqICgpAwA3AwAgH0EQaiAhKQMANwMAIB9BCGogHikDADcDAAsgHiAfQQhqKQMANwMAICEgH0EQaikDADcDACAoIB9BGGopAwA3AwAgKiAfQSBqKQMANwMAIA0gH0EoaikDADcDACAKIB9BMGopAwA3AwAgEyAfQThqKQMANwMAIAUgHykDADcDiAQgBUHQBmohByMAQaABayIJJAAgCSAFQcgCaiIEIAQQJiAJQUBrIgMgBCAJECYCQAJAIANBoOjAAEEgENAERQRAIAlB4ABqIgNBoOjAAEEgENAERQ0BCyAJQZgBaiAJQfgAaikDADcDACAJQZABaiAJQfAAaikDADcDACAJQYgBaiAJQegAaikDADcDACAJIAkpA2A3A4ABIAcCfiAJQYABakGo1cEAQSAQ0AQEQEIAIAkpA4gBIkt9Ik0gCSkDkAEiSUL/////D1atIkp9IUxCgYCAgHAgCSkDgAEgS0IAUiBKIE1Wcq18fSFNQv////8PIEl9IUkgCSkDmAFCf4UMAQsgCSkDkAEhSSAJKQOIASFMIAkpA4ABIU0gCSkDmAELNwM4IAcgSTcDMCAHIEw3AyggByBNNwMgDAELIAcgAykDADcDICAHQThqIANBGGopAwA3AwAgB0EwaiADQRBqKQMANwMAIAdBKGogA0EIaikDADcDAAsgByAJKQNANwMAIAdBGGogCUHYAGopAwA3AwAgB0EQaiAJQdAAaikDADcDACAHQQhqIAlByABqKQMANwMAIAlBoAFqJAAgBUGQBmogByAFQYgEahAmAn4CQCAEQaDowABBIBDQBEUEQCA4QaDowABBIBDQBEUNAQsgBUHoBmogOEEYaikDADcDACAFQeAGaiIDIDhBEGopAwA3AwAgIiA4QQhqKQMANwMAIAUgOCkDADcD0AYgAykDACFMIAVB0AZqQajVwQBBIBDQBARAQgAgBSkD2AYiS30iSSBMQv////8PVq0iSn0hTUKBgICAcCAFKQPQBiBLQgBSIEkgSlRyrXx9IUlC/////w8gTH0h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IUogCSAEKQIANwIAIAQgSjcCACABIAI2AgAgCUEUaiADNgIAIApBGGshCiAHQRhqIQcgDEEBayIMDQALIAUoApABIRsgBSgClAEhCgsgBUFAayAFQegBaikDADcDACAFQThqIAVB4AFqKQMANwMAIAVBMGogBUHYAWopAwA3AwAgBUEoaiAFQdABaikDADcDACAFQSBqIAVByAFqKQMANwMAIAVBGGogBUHAAWopAwA3AwAgBUEQaiAFQbgBaikDADcDACAFIAUpA7ABNwMIIAUoAowBISogDiEDA0AgAygCACIBBEAgA0EEaigCACABELkECyADQQxqIQMgLEEBayIsDQALIAohEgsgQwRAIA4gQ0EMbBC5BAsCQAJAAkACQAJAAkACQAJAAkACQAJAIBJFBEBBBCEDDAELQQAhCiASQTBsIgFBAEggEkGq1aoVS3INAUHZvsIALQAAGkEEIQogAUEEELAEIgNFDQELQQghKyAFQfgBaiIKQQA2AgAgBSADNgL0ASAFIBI2AvABIAUgAzYC2AYgBUEANgLUBiAFIAo2AtAGQQAhDyMAQdAAayIkJAAgBUHQBmoiAigCBCEHIAIoAgAhGQJAAkAgGyASQRhsaiIBIBtHBEAgAigCCCEVIAEgG2tBGG4hFANAICRBOGogGyAPQRhsaiICENgCQQghCAJAIAIoAhQiAUUNACABQQV0IQsgAUH///8fSwRAQQAhBAwECyACKAIQIQNB2b7CAC0AABpBCCEEIAtBCBCwBCIIRQ0DQQAhBCABIQIDQCAEIAtGDQEgBCAIaiIJIAMgBGoiDikDADcDACAJQRhqIA5BGGopAwA3AwAgCUEQaiAOQRBqKQMANwMAIAlBCGogDkEIaikDADcDACAEQSBqIQQgAkEBayICDQALCyAkIAE2AkwgJCAINgJIICQgATYCRCAkQQhqIR1CACFQQgAhUUIAIVRCACFWQQAhJiMAQaAIayIGJAAgBkEMaiAkQThqIiAQfgJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAYoAhQiAUECRgRAQdm+wgAtAAAaQRhBBBCwBCICRQ0OIAZBwAdqIAYoAhAiARBhIAZB4ABqIAFBDGoQYUEIIScgAkEIaiAGQcgHaigCADYCACACIAYpAsAHNwIAIAIgBikCYDcCDCACQRRqIAZB6ABqKAIANgIAIAZBAjYCqAcgBiACNgKkByAGQQI2AqAHIAZBJGogBkGgB2oQnQICQCABQRRqKAIAIglFDQAgCUEFdCEDIAlB////H0sEQEEAIQEMDgsgAUEQaigCACEEQQAhAkHZvsIALQAAGkEIIQEgA0EIELAEIidFDQ0gCUEFdCEDIAkhAQNAIAIgA0YNASACICdqIgggAiAEaiIOKQMANwMAIAhBGGogDkEYaikDADcDACAIQRBqIA5BEGopAwA3AwAgCEEIaiAOQQhqKQMANwMAIAJBIGohAiABQQFrIgENAAsLQdm+wgAtAAAaQRhBBBCwBCIIRQ0OIAZBgAdqEOwCQdm+wgAtAAAaQSBBCBCwBCILRQ0EIAtCAjcDGCALQoCAgIBgNwMQIAtCfzcDCCALQv3///8fNwMAIAZBADoAaCAGIAtBIGo2AmQgBiALNgJgIAZBwAdqIAZB4ABqELMCIAYoAsgHIgFBAk8EQCABQQF2IRMgBigCxAciAiABQQV0akEgayEBA0AgAikDACFMIAIgASkDADcDACACQRhqIgMpAwAhTSADIAFBGGoiDikDADcDACACQRBqIgMpAwAhSSADIAFBEGoiBCkDADcDACACQQhqIgMpAwAhSiADIAFBCGoiAykDADcDACABIEw3AwAgDiBNNwMAIAQgSTcDACADIEo3AwAgAUEgayEBIAJBIGohAiATQQFrIhMNAAsLIAZBqAdqIgEgBkHIB2ooAgA2AgAgBiAGKQLABzcDoAcgC0EgELkEIAhBCGogBkGIB2ooAgA2AgAgCCAGKQKABzcCACAIIAYpA6AHNwIMIAhBFGogASgCADYCACAGQQI2AmggBiAINgJkIAZBAjYCYCAGQTxqIAZB4ABqEJ0CQQghCAJAIAlFDQAgCUEFdCEBIAlB////H0sEQEEAIRMMEQtBACECQdm+wgAtAAAaQQghEyABQQgQsAQiCEUNECAJQQV0IQMgCSEBA0AgAiADRg0BIAIgCGoiDiACICdqIgQpAwA3AwAgDkEYaiAEQRhqKQMANwMAIA5BEGogBEEQaikDADcDACAOQQhqIARBCGopAwA3AwAgAkEgaiECIAFBAWsiAQ0ACwsgBiAJNgLoBiAGIAg2AuQGIAYgCTYC4AZB2b7CAC0AABpB4ABBCBCwBCILRQ0DIAZBiAFqQZGewQAQmgEgBkGoAWpB0Z7BABCaASAGQYgCakGRn8EAEJoBIAZBqAJqQdGfwQAQmgEgBkHIAmpBkaDBABCaASAGQgY3A4ADIAZCgICAgKB/NwP4AiAGQn83A/ACIAZC+f///98ANwPoAhDdAyEBIAZB0AFqQgA3AwAgBkHYAWpCADcDACAGQeABakIANwMAIAZB6AFqQgA3AwAgBkHwAWpCADcDACAGQfgBakIANwMAIAZBgAJqQgA3AwAgBkHoAGpB8M7BACkDADcDACABIAEpAwAiSkIBfDcDACAGQQM6AJQDIAZCADcDyAEgBkHozsEAKQMANwNgIAYgASkDCDcDeCAGIEo3A3AgC0L8////LzcDQCALQcgAakJ/NwMAIAtB0ABqQoCAgIBQNwMAIAtB2ABqQgM3AwAgC0IANwMgIAtBKGpCADcDACALQTBqQgA3AwAgC0E4akIANwMAIAsgBikDiAE3AwAgC0EIaiAGQZABaikDADcDACALQRBqIAZBmAFqKQMANwMAIAtBGGogBkGgAWopAwA3AwAgBkIANwOIAyAGQgE3A4ABIAZBATYCkAMgBkEAOgDIByAGIAtB4ABqNgLEByAGIAs2AsAHIAZBoAdqIAZBwAdqELMCIAYoAqgHIgFBAk8EQCABQQF2IRMgBigCpAciAiABQQV0akEgayEBA0AgAikDACFMIAIgASkDADcDACACQRhqIgMpAwAhTSADIAFBGGoiDikDADcDACACQRBqIgMpAwAhSSADIAFBEGoiBCkDADcDACACQQhqIgMpAwAhSiADIAFBCGoiAykDADcDACABIEw3AwAgDiBNNwMAIAQgSTcDACADIEo3AwAgAUEgayEBIAJBIGohAiATQQFrIhMNAAsLIAZBiAdqIAZBqAdqKAIANgIAIAYgBikCoAc3A4AHIAtB4AAQuQQgBkHUAGogBkHgBmogBkGAB2oQaCAGKAKAByIBBEAgBigChAcgAUEFdBC5BAsgCQRAIAggCUEFdBC5BAsgBkHAB2ogBkEkahDYAkEIIQhBCCEDAkAgBigCOCIERQ0AIARBBXQhASAEQf///x9LBEBBACETDBELIAYoAjQhC0EAIQJB2b7CAC0AABpBCCETIAFBCBCwBCIDRQ0QIARBBXQhDiAEIQEDQCACIA5GDQEgAiADaiIYIAIgC2oiECkDADcDACAYQRhqIBBBGGopAwA3AwAgGEEQaiAQQRBqKQMANwMAIBhBCGogEEEIaikDADcDACACQSBqIQIgAUEBayIBDQALCyAGIAQ2AtQHIAYgAzYC0AcgBiAENgLMByAGQeAAaiAGQTxqENgCAkAgBigCUCIDRQ0AIANBBXQhASADQf///x9LBEBBACETDBELIAYoAkwhDkEAIQJB2b7CAC0AABpBCCETIAFBCBCwBCIIRQ0QIANBBXQhBCADIQEDQCACIARGDQEgAiAIaiIQIAIgDmoiCykDADcDACAQQRhqIAtBGGopAwA3AwAgEEEQaiALQRBqKQMANwMAIBBBCGogC0EIaikDADcDACACQSBqIQIgAUEBayIBDQALCyAGIAM2AnQgBiAINgJwIAYgAzYCbCAGQaAHaiICIAZBwAdqIg0gBkHgAGoiAxB3Qdm+wgAtAAAaQRhBBBCwBCIBRQ0OQQghCCADEOwCIAFBCGogBkHcAGooAgA2AgAgASAGKQJUNwIAIAEgBikCYDcCDCABQRRqIAZB6ABqIhcoAgA2AgAgBkECNgLIByAGIAE2AsQHIAZBAjYCwAcgAyANEJ0CIAZBnANqIS1BACEBIwBB8AJrIhYkACADIg4oAgghMSACIgQoAgghMiAWQcQCahDsAgJAAkACQAJAAkACQAJAIDIgMSAxIDJJGyIDRQRAQQQhEwwBCyADQQxsIgJBAEggA0Gq1arVAEtyDQFB2b7CAC0AABpBBCEBIAJBBBCwBCITRQ0BCyAWQQA2AgggFiATNgIEIBYgAzYCACAWIAMgFkHEAmoQqgIgFigCCCEzIBYoAgQhKCAWKAIAIREgMkUNAyAEKAIEIRgDQCAmIDNGDQJBCCEMQQghGgJAICggJkEMbCIQaiIcKAIIIgNFDQAgA0EFdCEhIANB////H0sEQEEAIQIMBwsgHCgCBCELQdm+wgAtAAAaQQghAiAhQQgQsAQiGkUNBkEAIQIgAyEBA0AgAiAhRg0BIAIgGmoiHiACIAtqIhMpAwA3AwAgHkEYaiATQRhqKQMANwMAIB5BEGogE0EQaikDADcDACAeQQhqIBNBCGopAwA3AwAgAkEgaiECIAFBAWsiAQ0ACwsgFiADNgLMAiAWIBo2AsgCIBYgAzYCxAICQCAQIBhqIgEoAggiA0UNACADQQV0IR4gA0H///8fSwRAQQAhAgwFCyABKAIEIQtB2b7CAC0AABpBCCECIB5BCBCwBCIMRQ0EQQAhAiADIQEDQCACIB5GDQEgAiAMaiITIAIgC2oiECkDADcDACATQRhqIBBBGGopAwA3AwAgE0EQaiAQQRBqKQMANwMAIBNBCGogEEEIaikDADcDACACQSBqIQIgAUEBayIBDQALCyAWIAM2AgggFiAMNgIEIBYgAzYCACAWQbgCaiAWQcQCaiAWEPYBIBwoAgAiAQRAIBwoAgQgAUEFdBC5BAsgHCAWKQK4AjcCACAcQQhqIBZBwAJqKAIANgIAICZBAWoiJiAyRw0ACwwDCyABIAIQqAQACyAzIDNBhNLAABDWAwALIAIgHhCoBAALAkACQCAxRQ0AIA4oAgQhGEEAISYCQANAICYgM0cEQEEIIQxBCCEaAkAgKCAmQQxsIhBqIhwoAggiA0UNACADQQV0ISEgA0H///8fSwRAQQAhAgwGCyAcKAIEIQtB2b7CAC0AABpBCCECICFBCBCwBCIaRQ0FQQAhAiADIQEDQCACICFGDQEgAiAaaiIeIAIgC2oiEykDADcDACAeQRhqIBNBGGopAwA3AwAgHkEQaiATQRBqKQMANwMAIB5BCGogE0EIaikDADcDACACQSBqIQIgAUEBayIBDQALCyAWIAM2AswCIBYgGjYCyAIgFiADNgLEAgJAIBAgGGoiASgCCCIDRQ0AIANBBXQhHiADQf///x9LBEBBACECDAQLIAEoAgQhC0HZvsIALQAAGkEIIQIgHkEIELAEIgxFDQNBACECIAMhAQNAIAIgHkYNASACIAxqIhMgAiALaiIQKQMANwMAIBNBGGogEEEYaikDADcDACATQRBqIBBBEGopAwA3AwAgE0EIaiAQQQhqKQMANwMAIAJBIGohAiABQQFrIgENAAsLIBYgAzYCCCAWIAw2AgQgFiADNgIAIBZBuAJqIBZBxAJqIBYQ9gEgHCgCACIBBEAgHCgCBCABQQV0ELkECyAcIBYpArgCNwIAIBxBCGogFkHAAmooAgA2AgAgJkEBaiImIDFHDQEMAwsLIDMgM0H00cAAENYDAAsgAiAeEKgEAAsgFkEoaiIDQZGewQAQmgEgFkHIAGoiAkHRnsEAEJoBIBZBqAFqQZGfwQAQmgEgFkHIAWpB0Z/BABCaASAWQegBakGRoMEAEJoBEN0DIgEgASkDAEIBfDcDAEHZvsIALQAAGkGAAUEIELAEIhAEQCAQQgA3A0AgECACKQMANwMAIBAgAykDADcDICAQQcgAakIANwMAIBBB0ABqQgA3AwAgEEHYAGpCADcDACAQQRhqIAJBGGopAwA3AwAgEEEQaiACQRBqKQMANwMAIBBBCGogAkEIaikDADcDACAQQShqIANBCGopAwA3AwAgEEEwaiADQRBqKQMANwMAIBBBOGogA0EYaikDADcDACAQQfgAakHgzcAAKQMANwMAIBBB8ABqQdjNwAApAwA3AwAgEEHoAGpB0M3AACkDADcDACAQQcjNwAApAwA3A2AgFkEAOgDMAiAWIBBBgAFqNgLIAiAWIBA2AsQCIBZBuAJqIBZBxAJqELMCIBYoAsACIgFBAk8EQCABQQF2ISYgFigCvAIiAiABQQV0akEgayETA0AgAikDACFMIAIgEykDADcDACACQRhqIgEpAwAhTSABIBNBGGoiCykDADcDACACQRBqIgEpAwAhSSABIBNBEGoiAykDADcDACACQQhqIgEpAwAhSiABIBNBCGoiASkDADcDACATIEw3AwAgCyBNNwMAIAMgSTcDACABIEo3AwAgE0EgayETIAJBIGohAiAmQQFrIiYNAAsLIC1BDGoiASAWKQK4AjcCACABQQhqIBZBwAJqKAIANgIAIBBBgAEQuQQgLSAzNgIIIC0gKDYCBCAtIBE2AgAgDigCBCEBIDEEQCABIQIDQCACKAIAIgMEQCACQQRqKAIAIANBBXQQuQQLIAJBDGohAiAxQQFrIjENAAsLIA4oAgAiAgRAIAEgAkEMbBC5BAsgDigCDCIBBEAgDigCECABQQV0ELkECyAEKAIEIQEgMgRAIAEhAgNAIAIoAgAiAwRAIAJBBGooAgAgA0EFdBC5BAsgAkEMaiECIDJBAWsiMg0ACwsgBCgCACICBEAgASACQQxsELkECyAEKAIMIgEEQCAEKAIQIAFBBXQQuQQLIBZB8AJqJAAMAwtBCEGAARDKBAALIAIgIRCoBAALIAIgIRCoBAALIA0gBkEMahDYAkEIIQMCQCAGKAIgIgRFDQAgBEEFdCEBIARB////H0sEQEEAIRMMEQsgBigCHCELQQAhAkHZvsIALQAAGkEIIRMgAUEIELAEIgNFDRAgBEEFdCEOIAQhAQNAIAIgDkYNASACIANqIhggAiALaiIQKQMANwMAIBhBGGogEEEYaikDADcDACAYQRBqIBBBEGopAwA3AwAgGEEIaiAQQQhqKQMANwMAIAJBIGohAiABQQFrIgENAAsLIAYgBDYC1AcgBiADNgLQByAGIAQ2AswHIAZB8ABqIAZBzABqKQIANwMAIBcgBkHEAGopAgA3AwAgBiAGKQI8NwNgIAZBtANqIgIgBkHgAGoiASAGQcAHahB3IAEgAhDYAiAGKALEAyEOAkAgBigCyAMiBEUNACAEQQV0IQEgBEH///8fSwRAQQAhEwwRC0EAIQJB2b7CAC0AABpBCCETIAFBCBCwBCIIRQ0QIARBBXQhASAEIQMDQCABIAJGDQEgAiAIaiIQIAIgDmoiCykDADcDACAQQRhqIAtBGGopAwA3AwAgEEEQaiALQRBqKQMANwMAIBBBCGogC0EIaikDADcDACACQSBqIQIgA0EBayIDDQALCyAGIAQ2AnQgBiAINgJwIAYgBDYCbCAGQcAHaiIBIAZB4ABqIgIQ9AEgAiAGQZwDaiABEHcgBkHMA2ogAhB+IAYoAmgiAQRAIAYoAmQhAgNAIAIoAgAiAwRAIAJBBGooAgAgA0EFdBC5BAsgAkEMaiECIAFBAWsiAQ0ACwsgBigCYCIBBEAgBigCZCABQQxsELkECyAGKAJsIgEEQCAGKAJwIAFBBXQQuQQLIAZBoAdqIAZBtANqENgCQQghCAJAIARFDQAgBEEFdCEBIARB////H0sEQEEAIRMMEQtBACECQdm+wgAtAAAaQQghEyABQQgQsAQiCEUNECAEQQV0IQEgBCEDA0AgASACRg0BIAIgCGoiECACIA5qIgspAwA3AwAgEEEYaiALQRhqKQMANwMAIBBBEGogC0EQaikDADcDACAQQQhqIAtBCGopAwA3AwAgAkEgaiECIANBAWsiAw0ACwsgBiAENgK0ByAGIAg2ArAHIAYgBDYCrAcgBkHwAGogBkHEA2opAgA3AwAgBkHoAGogBkG8A2opAgA3AwAgBiAGKQK0AzcDYCAGQcAHaiIBIAZB4ABqIgIQ9AEgAiAGQaAHaiABEHcgBkHkA2ogAhB+IAYoAmgiAQRAIAYoAmQhAgNAIAIoAgAiAwRAIAJBBGooAgAgA0EFdBC5BAsgAkEMaiECIAFBAWsiAQ0ACwsgBigCYCIBBEAgBigCZCABQQxsELkECyAGKAJsIgEEQCAGKAJwIAFBBXQQuQQLIAYoAuwDIgFBAU0NAiAGKALoAyIOQRRqKAIAQQV0IQIgDkEQaigCAEEgayEDA0AgAkUNAiACIANqIAJBIGshAkGw78AAQSAQ0ARFDQALIA5BDGoQ6QMhACAGIAZBoAdqrUKAgICAIIQ3A8AHIAYgADYCoAcgBkEBNgJkIAZB4InAADYCYCAGQgE3AmwgBiAGQcAHajYCaCAGQeAAakHoicAAEIYEAAsgBkECNgJkIAZBiIrAADYCYCAGQgI3AmwgBiABNgKgByAGIAZBDGqtQoCAgIDAAIQ3A8gHIAYgBkGgB2qtQoCAgIAQhDcDwAcgBiAGQcAHajYCaCAGQeAAakGYisAAEIYEAAsCQCAOKAIIIgRFBEBBCCEDDAELIARBBXQhASAEQf///x9LBEBBACETDAsLIA4oAgQhCEEAIQJB2b7CAC0AABpBCCETIAFBCBCwBCIDRQ0KIARBBXQhDiAEIQEDQCACIA5GDQEgAiADaiIQIAIgCGoiCykDADcDACAQQRhqIAtBGGopAwA3AwAgEEEQaiALQRBqKQMANwMAIBBBCGogC0EIaikDADcDACACQSBqIQIgAUEBayIBDQALCyAGIAQ2AoQEIAYgAzYCgAQgBiAENgL8AyAGKALUAyICBEAgBkHgAGogBigC0AMiGCAGQfwDahBDIAZBkARqIAZBgAFqKAIANgIAIAYgBikCeDcDiAQgBigCYCIBBEAgBigCZCABQQV0ELkECyAGKAJsIgEEQCAGKAJwIAFBBXQQuQQLIAJBAUcEQCAGQeAAaiAYQQxqIAZB/ANqEEMgBkGgBGogBkGAAWooAgA2AgAgBiAGKQJ4NwOYBCAGKAJgIgEEQCAGKAJkIAFBBXQQuQQLIAYoAmwiAQRAIAYoAnAgAUEFdBC5BAsCQCAYKAIIIgRFBEBBCCEDDAELIARBBXQhASAEQf///x9LBEBBACETDBELIBgoAgQhCEEAIQJB2b7CAC0AABpBCCETIAFBCBCwBCIDRQ0QIARBBXQhDiAEIQEDQCACIA5GDQEgAiADaiIQIAIgCGoiCykDADcDACAQQRhqIAtBGGopAwA3AwAgEEEQaiALQRBqKQMANwMAIBBBCGogC0EIaikDADcDACACQSBqIQIgAUEBayIBDQALCyAGIAQ2AmggBiADNgJkIAYgBDYCYCAGQagEaiAGQeAAaiAGQYgEahD9AiAGKAJgIgEEQCAGKAJkIAFBBXQQuQQLAkAgBigChAQiBEUEQEEIIQMMAQsgBEEFdCEBIARB////H0sEQEEAIRMMEQsgBigCgAQhCEEAIQJB2b7CAC0AABpBCCETIAFBCBCwBCIDRQ0QIARBBXQhDiAEIQEDQCACIA5GDQEgAiADaiIQIAIgCGoiCykDADcDACAQQRhqIAtBGGopAwA3AwAgEEEQaiALQRBqKQMANwMAIBBBCGogC0EIaikDADcDACACQSBqIQIgAUEBayIBDQALCyAGIAQ2AmggBiADNgJkIAYgBDYCYCAGQbQEaiAGQeAAaiAGQYgEahD9AiAGKAJgIgEEQCAGKAJkIAFBBXQQuQQLAkAgGEEUaigCACIERQRAQQghAwwBCyAEQQV0IQEgBEH///8fSwRAQQAhEwwRCyAYQRBqKAIAIQhBACECQdm+wgAtAAAaQQghEyABQQgQsAQiA0UNECAEQQV0IQ4gBCEBA0AgAiAORg0BIAIgA2oiECACIAhqIgspAwA3AwAgEEEYaiALQRhqKQMANwMAIBBBEGogC0EQaikDADcDACAQQQhqIAtBCGopAwA3AwAgAkEgaiECIAFBAWsiAQ0ACwsgBiAENgJoIAYgAzYCZCAGIAQ2AmAgBkHABGogBkHgAGogBkGYBGoQ/QIgBigCYCIBBEAgBigCZCABQQV0ELkECwJAIAYoAoQEIgRFBEBBCCEDDAELIARBBXQhASAEQf///x9LBEBBACETDBELIAYoAoAEIQhBACECQdm+wgAtAAAaQQghEyABQQgQsAQiA0UNECAEQQV0IQ4gBCEBA0AgAiAORg0BIAIgA2oiECACIAhqIgspAwA3AwAgEEEYaiALQRhqKQMANwMAIBBBEGogC0EQaikDADcDACAQQQhqIAtBCGopAwA3AwAgAkEgaiECIAFBAWsiAQ0ACwsgBiAENgJoIAYgAzYCZCAGIAQ2AmAgBkHMBGogBkHgAGogBkGYBGoQ/QIgBigCYCIBBEAgBigCZCABQQV0ELkECyAGKAKEBCIBQQV0IQIgBigCgAQhAwJAA0AgAkUNASABQQFrIQEgAkEgayICIANqIgRBsO/AAEEgENAERQ0ACyABQQBIDQAgBkGoBWogBEEYaiIDKQMANwMAIAZBoAVqIARBEGoiAikDADcDACAGQZgFaiAEQQhqIgEpAwA3AwAgBiAEKQMANwOQBSAGQZAFakGog8AAQSAQ0ARFDQogBkGwB2pCADcDACAGQagHakIANwMAIAZCADcDoAcgBkIBNwO4ByAGQdgHaiADKQMANwMAIAZB0AdqIAIpAwA3AwAgBkHIB2ogASkDADcDACAGIAQpAwA3A8AHIAZB+ABqQcCEwAApAwA3AwAgBkHwAGpBuITAACkDADcDACAGQegAakGwhMAAKQMANwMAIAZBqITAACkDADcDYAJAIAZBwAdqIAZBoAdqQSAQ0ARFBEBCfiFPQv3////PACFTQgMhUkL/////v38hTgwBC0L9////zwAhU0J+IU9C/////79/IU5CAyFSIAYpA9gHIUkgBikDwAchXCAGKQPIByFMIAYpA9AHIVhCfyFKQoGAgIBwIVtCACFNQv////8PIVcDQCAGQeAAaiAGQaAHakEgENAERQRAIFAhTiBUIVIgViFTIFEhTwwCCyBJp0EBcUUEQANAIFhCP4YgSUIBiIQhSQJ+IFKnQQFxRQRAIFNCP4YgT0I/hiFLIE5CP4YgUkIBiIQhUiBTQgGIIVMgT0IBiIQhTyBLIE5CAYiEDAELIFNC/////w99IlkgTyBOQoCAgIAQfCJaUCBOQv////8PfCBOVHKtfCJOIE9UrXwiT0IBiCJVQoCAgICAgICAgH+EIksgSyBVIE8gWVQbIFMgWVYbIVMgT0I/hiBOQgGIhCFPIFpCP4YgUkIBfUIBiIQhUiBOQj+GIFpCAYiECyFOIFxCP4YgTEI/hiBYQgGIhCFYIFxCAYghXCBMQgGIhCFMIElCAYNQDQALIAYgWDcD0AcgBiBJNwPYByAGIEw3A8gHIAYgXDcDwAcLIEqnQQFxRQRAA0AgV0I/hiBKQgGIhCFKAkAgVEIBg1BFBEAgVkL/////D30iWSBRIFBCgICAgBB8IlpQIFBC/////w98IFBUcq18IlAgUVStfCJRQgGIIlVCgICAgICAgICAf4QiSyBLIFUgUSBZVBsgViBZVhshViBRQj+GIFBCAYiEIVEgWkI/hiBUQgF9QgGIhCFUIFBCP4YgWkIBiIQhUAwBCyBWQj+GIFBCP4YgVEIBiIQhVCBWQgGIIVYgUUI/hiBQQgGIhCFQIFFCAYiEIVELIFtCP4YgTUI/hiBXQgGIhCFXIFtCAYghWyBNQgGIhCFNIEpCAYNQDQALIAYgVzcDcCAGIEo3A3ggBiBNNwNoIAYgWzcDYAsCQAJAAkACQCBcIlUgWyJLUg0AIEwhVSBNIksgTFINACBYIlUgVyJLUg0AIEohSyBJIVUgSSBKUQ0BCyBLIFVUDQAgBiBKIEl9Ilo3A3ggBiBXIFh9IksgSSBKVq0iSn0iVTcDcCAGIE0gTH0iWSBXIFhUIEogS1ZyrSJKfSJLNwNoIAYgWyBcfSBKIFlWIEwgTVZyrX0iWzcDYAJAAkAgUyJNIFYiSlINACBPIU0gUSJKIE9SDQAgTiFNIFAiSiBOUg0AIFIiTSBUIkpRDQELIEogTVQNAgsgViBTfSBRIE99Il8gUCBOfSJeIFIgVFatIl1UIE4gUFZyrSJZVCBPIFFWcq19IVYgVCBSfSFUIFUhVyBLIU0gWiFKIF4gXX0hUCBfIFl9IVEMAgsgBiBJIEp9Ilo3A9gHIAYgWCBXfSJLIEkgSlStIkl9IlU3A9AHIAYgTCBNfSJZIFcgWFYgSSBLVnKtIkl9Iks3A8gHIAYgXCBbfSBMIE1UIEkgWVZyrX0iXDcDwAcCQAJAAkAgUyJJIFYiTFINACBPIkkgUSJMUg0AIFAhTCBQIE4iSVINACBSIkkgVCJMUQ0BCyBJIExUDQELIFMgVn0gTyBRVCBPIFF9Il0gTiBQVCBOIFB9IlkgUiBUVK0iTlRyrSJPVHKtfSFTIFIgVH0hUiBVIVggSyFMIFohSSBdIE99IU8gWSBOfSFODAILIFMgVn0gUUIAUkIAIFF9IkwgUEL/////D1atIklUcq19IEwgSX0iSSBPfCJYIElUIFggTkL/////DyBQfSJJfCJMIElUIEwgVEJ/hSJJIFJ8IlIgSVStfCJOIExUcq18Ik8gWFRyrXxC/////w99IVMgVSFYIEshTCBaIUkMAQsgViBPQgBSQgAgT30iTSBOQv////8PVq0iSlRyrSBTfH0gTSBKfSJKIFF8IlcgSlQgVyBQQv////8PIE59Ikp8Ik0gSlQgTSBSQn+FIkogVHwiVCBKVK18IlAgTVRyrXwiUSBXVHKtfEL/////D30hViBVIVcgSyFNIFohSgsgBkHAB2ogBkGgB2pBIBDQBA0ACwsgBiBSNwOIBSAGIE43A4AFIAYgTzcD+AQgBiBTNwPwBCAGQYAHaiAGQagEaiAGQfAEahDJAiAGKAK4BCEYAkAgBigCvAQiDkUEQEEIIRcMAQsgDkEFdCEDIA5B////H0sEQEEAIQEMDQtBACECQdm+wgAtAAAaQQghASADQQgQsAQiF0UNDCAOQQV0IQEgDiEDA0AgASACRg0BIAIgF2oiCCACIBhqIgQpAwA3AwAgCEEYaiAEQRhqKQMANwMAIAhBEGogBEEQaikDADcDACAIQQhqIARBCGopAwA3AwAgAkEgaiECIANBAWsiAw0ACwsgBiAONgK8BSAGIBc2ArgFIAYgDjYCtAUgDkEFdCECIA4hAQJAA0AgAkUNASABQQFrIQEgAkEgayICIBhqIgRBsO/AAEEgENAERQ0ACyABQQBIDQAgBkH4BWogBEEYaiIDKQMANwMAIAZB8AVqIARBEGoiAikDADcDACAGQegFaiAEQQhqIgEpAwA3AwAgBiAEKQMANwPgBSAGQeAFakGog8AAQSAQ0ARFDQogBkGwB2pCADcDACAGQagHakIANwMAIAZCADcDoAcgBkIBNwO4ByAGQdgHaiADKQMANwMAIAZB0AdqIAIpAwA3AwAgBkHIB2ogASkDADcDACAGIAQpAwA3A8AHIAZB+ABqQcCEwAApAwA3AwAgBkHwAGpBuITAACkDADcDACAGQegAakGwhMAAKQMANwMAIAZBqITAACkDADcDYAJAIAZBwAdqIAZBoAdqQSAQ0ARFBEBCfiFPQv3////PACFTQgMhUkL/////v38hTgwBC0L9////zwAhU0J+IU9C/////79/IU5CAyFSIAYpA9gHIUkgBikDwAchTCAGKQPIByFcIAYpA9AHIVhCACFWQgAhUUIAIVBCACFUQn8hSkKBgICAcCFbQgAhTUL/////DyFXA0AgBkHgAGogBkGgB2pBIBDQBEUEQCBQIU4gVCFSIFYhUyBRIU8MAgsgSadBAXFFBEADQCBYQj+GIElCAYiEIUkCfiBSp0EBcUUEQCBTQj+GIE9CP4YhSyBOQj+GIFJCAYiEIVIgU0IBiCFTIE9CAYiEIU8gSyBOQgGIhAwBCyBTQv////8PfSJZIE8gTkKAgICAEHwiWlAgTkL/////D3wgTlRyrXwiTiBPVK18Ik9CAYgiVUKAgICAgICAgIB/hCJLIEsgVSBPIFlUGyBTIFlWGyFTIE9CP4YgTkIBiIQhTyBaQj+GIFJCAX1CAYiEIVIgTkI/hiBaQgGIhAshTiBMQj+GIFxCP4YgWEIBiIQhWCBMQgGIIUwgXEIBiIQhXCBJQgGDUA0ACyAGIFg3A9AHIAYgSTcD2AcgBiBcNwPIByAGIEw3A8AHCyBKp0EBcUUEQANAIFdCP4YgSkIBiIQhSgJAIFRCAYNQRQRAIFZC/////w99IlkgUSBQQoCAgIAQfCJaUCBQQv////8PfCBQVHKtfCJQIFFUrXwiUUIBiCJVQoCAgICAgICAgH+EIksgSyBVIFEgWVQbIFYgWVYbIVYgUUI/hiBQQgGIhCFRIFpCP4YgVEIBfUIBiIQhVCBQQj+GIFpCAYiEIVAMAQsgVkI/hiBQQj+GIFRCAYiEIVQgVkIBiCFWIFFCP4YgUEIBiIQhUCBRQgGIhCFRCyBbQj+GIE1CP4YgV0IBiIQhVyBbQgGIIVsgTUIBiIQhTSBKQgGDUA0ACyAGIFc3A3AgBiBKNwN4IAYgTTcDaCAGIFs3A2ALIEwhVQJAAkACQAJAIFsiSyBMUg0AIFwiVSBNIktSDQAgWCJVIFciS1INACBKIUsgSSFVIEkgSlENAQsgSyBVVA0AIAYgSiBJfSJaNwN4IAYgVyBYfSJLIEkgSlatIkp9IlU3A3AgBiBNIFx9IlkgVyBYVCBKIEtWcq0iSn0iSzcDaCAGIFsgTH0gTSBcVCBKIFlWcq19Ils3A2ACQAJAIFMiTSBWIkpSDQAgTyFNIFEiSiBPUg0AIE4hTSBQIkogTlINACBSIk0gVCJKUQ0BCyBKIE1UDQILIFYgU30gUSBPfSJfIFAgTn0iXiBSIFRWrSJdVCBOIFBWcq0iWVQgTyBRVnKtfSFWIFQgUn0hVCBVIVcgSyFNIFohSiBeIF19IVAgXyBZfSFRDAILIAYgSSBKfSJaNwPYByAGIFggV30iSyBJIEpUrSJJfSJVNwPQByAGIFwgTX0iWSBXIFhWIEkgS1ZyrSJJfSJLNwPIByAGIEwgW30gSSBZViBNIFxWcq19Ikw3A8AHIFYhXAJAAkACQCBWIFMiSVINACBRIVwgUSBPIklSDQAgUCFcIFAgTiJJUg0AIFQhXCBUIFIiSVENAQsgSSBcVA0BCyBTIFZ9IE8gUVQgTyBRfSJdIE4gUFQgTiBQfSJZIFIgVFStIk5Ucq0iT1RyrX0hUyBSIFR9IVIgVSFYIEshXCBaIUkgXSBPfSFPIFkgTn0hTgwCCyBTIFZ9IFFCAFJCACBRfSJYIFBC/////w9WrSJJVHKtfSBPIFggSX0iSXwiUyBJVCBTQv////8PIFB9IkkgTnwiWCBJVCBYIFggVEJ/hSJJIFJ8IlIgSVStfCJOVnKtfCJPIFNUcq18Qv////8PfSFTIFUhWCBLIVwgWiFJDAELIFYgT0IAUkIAIE99Ik0gTkL/////D1atIkpUcq0gU3x9IE0gSn0iSiBRfCJXIEpUIFcgUEL/////DyBOfSJKfCJNIEpUIE0gUkJ/hSJKIFR8IlQgSlStfCJQIE1Ucq18IlEgV1RyrXxC/////w99IVYgVSFXIEshTSBaIUoLIAZBwAdqIAZBoAdqQSAQ0AQNAAsLIAYgUjcD2AUgBiBONwPQBSAGIE83A8gFIAYgUzcDwAUgBkHkBGogBkG0BWogBkHABWoQyQIgBkHgBGogBkGIB2ooAgA2AgAgBiAGKQKABzcD2AQgBigChAQiAUEFdCECIAYoAoAEIQMDQCACRQ0QIAFBAWshASACQSBrIgIgA2oiBEGw78AAQSAQ0ARFDQALIAFBAEgNDyAGQcgGaiAEQRhqIgMpAwA3AwAgBkHABmogBEEQaiICKQMANwMAIAZBuAZqIARBCGoiASkDADcDACAGIAQpAwA3A7AGIAZBsAZqQaiDwABBIBDQBEUNCCAGQbAHakIANwMAIAZBqAdqQgA3AwAgBkIANwOgByAGQgE3A7gHIAZB2AdqIAMpAwA3AwAgBkHQB2ogAikDADcDACAGQcgHaiABKQMANwMAIAYgBCkDADcDwAcgBkH4AGpBwITAACkDADcDACAGQfAAakG4hMAAKQMANwMAIAZB6ABqQbCEwAApAwA3AwAgBkGohMAAKQMANwNgAkAgBkHAB2ogBkGgB2pBIBDQBEUEQEJ+IU9C/f///88AIVNCAyFSQv////+/fyFODAELQv3////PACFTQn4hT0L/////v38hTkIDIVIgBikD2AchSSAGKQPAByFcIAYpA8gHIUwgBikD0AchWEIAIVZCACFRQgAhUEIAIVRCfyFKQoGAgIBwIVtCACFNQv////8PIVcDQCAGQeAAaiAGQaAHakEgENAERQRAIFAhTiBUIVIgViFTIFEhTwwCCyBJp0EBcUUEQANAIFhCP4YgSUIBiIQhSQJ+IFKnQQFxRQRAIFNCP4YgT0I/hiFLIE5CP4YgUkIBiIQhUiBTQgGIIVMgT0IBiIQhTyBLIE5CAYiEDAELIFNC/////w99IlkgTyBOQoCAgIAQfCJaUCBOQv////8PfCBOVHKtfCJOIE9UrXwiT0IBiCJVQoCAgICAgICAgH+EIksgSyBVIE8gWVQbIFMgWVYbIVMgT0I/hiBOQgGIhCFPIFpCP4YgUkIBfUIBiIQhUiBOQj+GIFpCAYiECyFOIFxCP4YgTEI/hiBYQgGIhCFYIFxCAYghXCBMQgGIhCFMIElCAYNQDQALIAYgWDcD0AcgBiBJNwPYByAGIEw3A8gHIAYgXDcDwAcLIEqnQQFxRQRAA0AgV0I/hiBKQgGIhCFKAkAgVEIBg1BFBEAgVkL/////D30iWSBRIFBCgICAgBB8IlpQIFBC/////w98IFBUcq18IlAgUVStfCJRQgGIIlVCgICAgICAgICAf4QiSyBLIFUgUSBZVBsgViBZVhshViBRQj+GIFBCAYiEIVEgWkI/hiBUQgF9QgGIhCFUIFBCP4YgWkIBiIQhUAwBCyBWQj+GIFBCP4YgVEIBiIQhVCBWQgGIIVYgUUI/hiBQQgGIhCFQIFFCAYiEIVELIFtCP4YgTUI/hiBXQgGIhCFXIFtCAYghWyBNQgGIhCFNIEpCAYNQDQALIAYgVzcDcCAGIEo3A3ggBiBNNwNoIAYgWzcDYAsCQAJAAkACQCBcIlUgWyJLUg0AIEwhVSBNIksgTFINACBYIlUgVyJLUg0AIEohSyBJIVUgSSBKUQ0BCyBLIFVUDQAgBiBKIEl9Ilo3A3ggBiBXIFh9IksgSSBKVq0iSn0iVTcDcCAGIE0gTH0iWSBXIFhUIEogS1ZyrSJKfSJLNwNoIAYgWyBcfSBKIFlWIEwgTVZyrX0iWzcDYAJAAkAgUyJNIFYiSlINACBPIU0gUSJKIE9SDQAgTiFNIFAiSiBOUg0AIFIiTSBUIkpRDQELIEogTVQNAgsgViBTfSBRIE99Il8gUCBOfSJeIFIgVFatIl1UIE4gUFZyrSJZVCBPIFFWcq19IVYgVCBSfSFUIFUhVyBLIU0gWiFKIF4gXX0hUCBfIFl9IVEMAgsgBiBJIEp9Ilo3A9gHIAYgWCBXfSJLIEkgSlStIkl9IlU3A9AHIAYgTCBNfSJZIFcgWFYgSSBLVnKtIkl9Iks3A8gHIAYgXCBbfSBMIE1UIEkgWVZyrX0iXDcDwAcCQAJAAkAgUyJJIFYiTFINACBPIkkgUSJMUg0AIFAhTCBQIE4iSVINACBSIkkgVCJMUQ0BCyBJIExUDQELIFMgVn0gTyBRVCBPIFF9Il0gTiBQVCBOIFB9IlkgUiBUVK0iTlRyrSJPVHKtfSFTIFIgVH0hUiBVIVggSyFMIFohSSBdIE99IU8gWSBOfSFODAILIFMgVn0gUUIAUkIAIFF9IkwgUEL/////D1atIklUcq19IEwgSX0iSSBPfCJYIElUIFggTkL/////DyBQfSJJfCJMIElUIEwgVEJ/hSJJIFJ8IlIgSVStfCJOIExUcq18Ik8gWFRyrXxC/////w99IVMgVSFYIEshTCBaIUkMAQsgViBPQgBSQgAgT30iTSBOQv////8PVq0iSlRyrSBTfH0gTSBKfSJKIFF8IlcgSlQgVyBQQv////8PIE59Ikp8Ik0gSlQgTSBSQn+FIkogVHwiVCBKVK18IlAgTVRyrXwiUSBXVHKtfEL/////D30hViBVIVcgSyFNIFohSgsgBkHAB2ogBkGgB2pBIBDQBA0ACwsgBiBSNwOoBiAGIE43A6AGIAYgTzcDmAYgBiBTNwOQBiAGQYQGaiAGQcAEaiAGQZAGahDJAiAGKALQBCEQAkAgBigC1AQiBEUEQEEIIREMAQsgBEEFdCEBIARB////H0sEQEEAIQMMCwtBACECQdm+wgAtAAAaQQghAyABQQgQsAQiEUUNCiAEQQV0IQEgBCEIA0AgASACRg0BIAIgEWoiCyACIBBqIgMpAwA3AwAgC0EYaiADQRhqKQMANwMAIAtBEGogA0EQaikDADcDACALQQhqIANBCGopAwA3AwAgAkEgaiECIAhBAWsiCA0ACwsgBiAENgLcBiAGIBE2AtgGIAYgBDYC1AYgBEEFdCECIAQhAQJAA0AgAkUNASABQQFrIQEgAkEgayICIBBqIghBsO/AAEEgENAERQ0ACyABQQBIDQAgBkGYB2ogCEEYaiIDKQMANwMAIAZBkAdqIAhBEGoiAikDADcDACAGQYgHaiAIQQhqIgEpAwA3AwAgBiAIKQMANwOAByAGQYAHakGog8AAQSAQ0ARFDQggBkGwB2pCADcDACAGQagHakIANwMAIAZCADcDoAcgBkIBNwO4ByAGQdgHaiADKQMANwMAIAZB0AdqIAIpAwA3AwAgBkHIB2ogASkDADcDACAGIAgpAwA3A8AHIAZB+ABqQcCEwAApAwA3AwAgBkHwAGpBuITAACkDADcDACAGQegAakGwhMAAKQMANwMAIAZBqITAACkDADcDYAJAIAZBwAdqIAZBoAdqQSAQ0ARFBEBC/f///88AIVNCfiFPQv////+/fyFOQgMhUgwBC0IDIVJC/////79/IU5CfiFPQv3////PACFTIAYpA9gHIUkgBikDwAchXCAGKQPIByFMIAYpA9AHIVhCACFUQgAhUEIAIVFCACFWQn8hSkKBgICAcCFNQgAhW0L/////DyFXA0AgBkHgAGogBkGgB2pBIBDQBEUEQCBUIVIgUCFOIFEhTyBWIVMMAgsgSadBAXFFBEADQCBYQj+GIElCAYiEIUkCQCBSp0EBcUUEQCBTQj+GIE5CP4YgUkIBiIQhUiBTQgGIIVMgT0I/hiBOQgGIhCFOIE9CAYiEIU8MAQsgU0L/////D30iWSBPIE5CgICAgBB8IlpQIE5C/////w98IE5Ucq18Ik4gT1StfCJPQgGIIlVCgICAgICAgICAf4QiSyBLIFUgTyBZVBsgUyBZVhshUyBPQj+GIE5CAYiEIU8gWkI/hiBSQgF9QgGIhCFSIE5CP4YgWkIBiIQhTgsgXEI/hiBMQj+GIFhCAYiEIVggXEIBiCFcIExCAYiEIUwgSUIBg1ANAAsgBiBYNwPQByAGIEk3A9gHIAYgTDcDyAcgBiBcNwPABwsgSqdBAXFFBEADQCBXQj+GIEpCAYiEIUoCfiBUQgGDUEUEQCBWQv////8PfSJZIFEgUEKAgICAEHwiWlAgUEL/////D3wgUFRyrXwiUCBRVK18IlFCAYgiVUKAgICAgICAgIB/hCJLIEsgVSBRIFlUGyBWIFlWGyFWIFFCP4YgUEIBiIQhUSBaQj+GIFRCAX1CAYiEIVQgUEI/hiBaQgGIhAwBCyBWQj+GIFFCP4YhSyBQQj+GIFRCAYiEIVQgVkIBiCFWIFFCAYiEIVEgSyBQQgGIhAshUCBNQj+GIFtCP4YgV0IBiIQhVyBNQgGIIU0gW0IBiIQhWyBKQgGDUA0ACyAGIFc3A3AgBiBKNwN4IAYgWzcDaCAGIE03A2ALAkACQAJAAkAgXCJVIE0iS1INACBMIVUgWyJLIExSDQAgWCJVIFciS1INACBKIUsgSSFVIEkgSlENAQsgSyBVVA0AIAYgSiBJfSJaNwN4IAYgVyBYfSJLIEkgSlatIkp9IlU3A3AgBiBbIEx9IlkgVyBYVCBKIEtWcq0iSn0iSzcDaCAGIE0gXH0gSiBZViBMIFtWcq19Ik03A2AgUyFbAkACQCBWIkogU1INACBPIVsgUSJKIE9SDQAgTiFbIFAiSiBOUg0AIFIhWyBUIkogUlENAQsgSiBbVA0CCyBWIFN9IFEgT30iXiBQIE59Il0gUiBUVq0iWVQgTiBQVnKtIlBUIE8gUVZyrX0hViBUIFJ9IVQgVSFXIEshWyBaIUogXiBQfSFRIF0gWX0hUAwCCyAGIEkgSn0iWjcD2AcgBiBYIFd9IksgSSBKVK0iSX0iVTcD0AcgBiBMIFt9IlkgVyBYViBJIEtWcq0iSX0iSzcDyAcgBiBcIE19IEwgW1QgSSBZVnKtfSJcNwPABwJAAkACQCBTIkkgViJMUg0AIE8iSSBRIkxSDQAgTiJJIFAiTFINACBSIkkgVCJMUQ0BCyBJIExUDQELIFMgVn0gTyBRVCBPIFF9Il0gTiBQVCBOIFB9IlkgUiBUVK0iTlRyrSJPVHKtfSFTIFIgVH0hUiBVIVggSyFMIFohSSBZIE59IU4gXSBPfSFPDAILIFMgVn0gUUIAUkIAIFF9IkwgUEL/////D1atIklUcq19IEwgSX0iSSBPfCJYIElUIFggTkL/////DyBQfSJJfCJMIElUIEwgVEJ/hSJJIFJ8IlIgSVStfCJOIExUcq18Ik8gWFRyrXxC/////w99IVMgVSFYIEshTCBaIUkMAQsgViBPQgBSQgAgT30iVyBOQv////8PVq0iSlRyrSBTfH0gUSBXIEp9Ikp8IlYgSlQgVkL/////DyBOfSJKIFB8IlcgSlQgVyBXIFJCf4UiSiBUfCJUIEpUrXwiUFZyrXwiUSBWVHKtfEL/////D30hViBVIVcgSyFbIFohSgsgBkHAB2ogBkGgB2pBIBDQBA0ACwsgBiBSNwP4BiAGIE43A/AGIAYgTzcD6AYgBiBTNwPgBiAGQewAaiAGQdQGaiAGQeAGahDJAiAGQegAaiIBIAZBjAZqKAIANgIAIAYgBikChAYiSjcDYCAdQRBqIAZB6ARqKQMANwIAIB1BCGogBkHgBGopAwA3AgAgHSAGKQPYBDcCACAdIEo3AhggHUEgaiABKQMANwIAIB1BKGogBkHwAGopAwA3AgAgBigCzAQiAQRAIBAgAUEFdBC5BAsgBigCwAQiAQRAIAYoAsQEIAFBBXQQuQQLIAYoArQEIgEEQCAYIAFBBXQQuQQLIAYoAqgEIgEEQCAGKAKsBCABQQV0ELkECyAGKAKYBCIBBEAgBigCnAQgAUEFdBC5BAsgBigCiAQiAQRAIAYoAowEIAFBBXQQuQQLIAYoAvwDIgEEQCAGKAKABCABQQV0ELkECyAGKALoAyEDIAYoAuwDIgEEQCADIQIDQCACKAIAIggEQCACQQRqKAIAIAhBBXQQuQQLIAJBDGohAiABQQFrIgENAAsLIAYoAuQDIgEEQCADIAFBDGwQuQQLIAYoAvADIgEEQCAGKAL0AyABQQV0ELkECyAGKALQAyEDIAYoAtQDIgEEQCADIQIDQCACKAIAIggEQCACQQRqKAIAIAhBBXQQuQQLIAJBDGohAiABQQFrIgENAAsLIAYoAswDIgEEQCADIAFBDGwQuQQLIAYoAtgDIgEEQCAGKALcAyABQQV0ELkECyAJBEAgJyAJQQV0ELkECyAGKAIoIQMgBigCLCIBBEAgAyECA0AgAigCACIJBEAgAkEEaigCACAJQQV0ELkECyACQQxqIQIgAUEBayIBDQALCyAGKAIkIgEEQCADIAFBDGwQuQQLIAYoAjAiAQRAIAYoAjQgAUEFdBC5BAsgBigCECEDIAYoAhQiAQRAIAMhAgNAIAIoAgAiCQRAIAJBBGooAgAgCUEFdBC5BAsgAkEMaiECIAFBAWsiAQ0ACwsgBigCDCIBBEAgAyABQQxsELkECyAGKAIYIgEEQCAGKAIcIAFBBXQQuQQLIBEgBEEFdBC5BCAXIA5BBXQQuQQgICgCCCIBBEAgICgCBCECA0AgAigCACIDBEAgAkEEaigCACADQQV0ELkECyACQQxqIQIgAUEBayIBDQALCyAgKAIAIgEEQCAgKAIEIAFBDGwQuQQLICAoAgwiAQRAICAoAhAgAUEFdBC5BAsgBkGgCGokAAwTCwwPCwwOCwwNC0EBQQFB7IjAABDWAwALQQBBAEHciMAAENYDAAtBASABQcyIwAAQ1gMAC0EIQeAAEMoEAAtBCEEgEMoEAAsgBkICNwNgQYCHwABBKyAGQeAAakH8iMAAQYyJwAAQvgMACyAGQgI3A2BBgIfAAEErIAZB4ABqQfyIwABBnInAABC+AwALIAMgARCoBAALIAZCAjcDYEGAh8AAQSsgBkHgAGpB/IjAAEGsicAAEL4DAAsgBkICNwNgQYCHwABBKyAGQeAAakH8iMAAQbyJwAAQvgMACyABIAMQqAQACyATIAEQqAQACyABIAMQqAQAC0G888AAQSsgBkHgAGpB6PPAAEH488AAEL4DAAtBBEEYEMoEAAsgEyABEKgEAAsgFSAHQTBsaiIBQShqICRBMGopAgA3AgAgAUEgaiAkQShqKQIANwIAIAFBGGogJEEgaikCADcCACABQRBqICRBGGopAgA3AgAgAUEIaiAkQRBqKQIANwIAIAEgJCkCCDcCACAHQQFqIQcgD0EBaiIPIBRHDQALCyAZIAc2AgAgJEHQAGokAAwBCyAEIAsQqAQACyAFQdACaiAKKAIAIg02AgAgBSAFKQLwATcDyAIgDUUNAQJAIAUoAswCIh0oAggiAUUNACABQQV0IQIgAUH///8fSwRAQQAhCgwLCyAdKAIEIQRBACEDQdm+wgAtAAAaQQghCiACQQgQsAQiK0UNCiABQQV0IQIgASEHA0AgAiADRg0BIAMgK2oiCSADIARqIg4pAwA3AwAgCUEYaiAOQRhqKQMANwMAIAlBEGogDkEQaikDADcDACAJQQhqIA5BCGopAwA3AwAgA0EgaiEDIAdBAWsiBw0ACwtBCCEaQQghIAJAIB0oAhQiAkUNACACQQV0IQQgAkH///8fSwRAQQAhCgwKCyAdKAIQIQ5BACEDQdm+wgAtAAAaQQghCiAEQQgQsAQiIEUNCSACQQV0IQQgAiEHA0AgAyAERg0BIAMgIGoiCCADIA5qIgkpAwA3AwAgCEEYaiAJQRhqKQMANwMAIAhBEGogCUEQaikDADcDACAIQQhqIAlBCGopAwA3AwAgA0EgaiEDIAdBAWsiBw0ACwsCQCAdKAIgIglFDQAgCUEFdCEEIAlB////H0sEQEEAIQoMCQsgHSgCHCEOQQAhA0HZvsIALQAAGkEIIQogBEEIELAEIhpFDQggCUEFdCEEIAkhBwNAIAMgBEYNASADIBpqIg8gAyAOaiIIKQMANwMAIA9BGGogCEEYaikDADcDACAPQRBqIAhBEGopAwA3AwAgD0EIaiAIQQhqKQMANwMAIANBIGohAyAHQQFrIgcNAAsLQQghHAJAIB0oAiwiBEUNACAEQQV0IQcgBEH///8fSwRAQQAhCgwOCyAdKAIoIQhBACEDQdm+wgAtAAAaQQghCiAHQQgQsAQiHEUNDSAEQQV0IQ4gBCEHA0AgAyAORg0BIAMgHGoiCyADIAhqIg8pAwA3AwAgC0EYaiAPQRhqKQMANwMAIAtBEGogD0EQaikDADcDACALQQhqIA9BCGopAwA3AwAgA0EgaiEDIAdBAWsiBw0ACwsgBUGoBmpB0IXAACkDADcDACAFQaAGakHIhcAAKQMANwMAIAVBmAZqQcCFwAApAwA3AwAgBUG4hcAAKQMANwOQBiANQQFGBEAgASEYIAIhFSAJIRAgBCEODAcLIAVCfDcD6AYgBUL/////PzcD4AYgBUIANwPYBiAFQoSAgIBANwPQBiAFQZAGaiAFQdAGahCXAUEIIQ9BCCEMAkAgHUE4aigCACIQRQ0AIBBBBXQhByAQQf///x9LBEBBACEKDA4LIB1BNGooAgAhCEEAIQNB2b7CAC0AABpBCCEKIAdBCBCwBCIMRQ0NIBBBBXQhDiAQIQcDQCADIA5GDQEgAyAMaiIYIAMgCGoiCykDADcDACAYQRhqIAtBGGopAwA3AwAgGEEQaiALQRBqKQMANwMAIBhBCGogC0EIaikDADcDACADQSBqIQMgB0EBayIHDQALCwJAIB1BxABqKAIAIgtFDQAgC0EFdCEHIAtB////H0sEQEEAIQoMDgsgHUFAaygCACEIQQAhA0HZvsIALQAAGkEIIQogB0EIELAEIg9FDQ0gC0EFdCEOIAshBwNAIAMgDkYNASADIA9qIhEgAyAIaiIYKQMANwMAIBFBGGogGEEYaikDADcDACARQRBqIBhBEGopAwA3AwAgEUEIaiAYQQhqKQMANwMAIANBIGohAyAHQQFrIgcNAAsLQQghJ0EIIRkCQCAdQdAAaigCACIIRQ0AIAhBBXQhByAIQf///x9LBEBBACEKDA4LIB1BzABqKAIAIRhBACEDQdm+wgAtAAAaQQghCiAHQQgQsAQiGUUNDSAIQQV0IQ4gCCEHA0AgAyAORg0BIAMgGWoiFyADIBhqIhEpAwA3AwAgF0EYaiARQRhqKQMANwMAIBdBEGogEUEQaikDADcDACAXQQhqIBFBCGopAwA3AwAgA0EgaiEDIAdBAWsiBw0ACwsCQCAdQdwAaigCACIORQ0AIA5BBXQhByAOQf///x9LBEBBACEKDA4LIB1B2ABqKAIAIRFBACEDQdm+wgAtAAAaQQghCiAHQQgQsAQiJ0UNDSAOQQV0IRggDiEHA0AgAyAYRg0BIAMgJ2oiFCADIBFqIhcpAwA3AwAgFEEYaiAXQRhqKQMANwMAIBRBEGogF0EQaikDADcDACAUQQhqIBdBCGopAwA3AwAgA0EgaiEDIAdBAWsiBw0ACwsgBSAONgL8BiAFICc2AvgGIAUgDjYC9AYgBSAINgLwBiAFIBk2AuwGIAUgCDYC6AYgBSALNgLkBiAFIA82AuAGIAUgCzYC3AYgBSAQNgLYBiAFIAw2AtQGIAUgEDYC0AYgBUHoB2ogBUGoBmopAwA3AwAgBUHgB2oiDiAFQaAGaikDADcDACAFQdgHaiIHIAVBmAZqKQMANwMAIAUgBSkDkAY3A9AHIAVB8AFqIAVB0AZqIAVB0AdqIgMQjwIgBSACNgKcBCAFICA2ApgEIAUgAjYClAQgBSABNgKQBCAFICs2AowEIAUgATYCiAQgDiAFQYACaikCADcDACAHIAVB+AFqKQIANwMAIAUgBSkC8AE3A9AHIAVBkANqIAVBiARqIgEgAxArIAUgBDYCnAQgBSAcNgKYBCAFIAQ2ApQEIAUgCTYCkAQgBSAaNgKMBCAFIAk2AogEIA4gBUGYAmopAgA3AwAgByAFQZACaikCADcDACAFIAUpAogCNwPQByAFQagDaiITIAEgAxArIAUoApADIQEgBSgClAMhKyAFKAKYAyEYIAUoApwDIQIgBSgCoAMhICAFKAKkAyEVIAUoAqgDIQkgBSgCrAMhGiAFKAKwAyEQIAUoArQDIQQgBSgCuAMhHCAFKAK8AyEOIAUoAtAGIgMEQCAFKALUBiADQQV0ELkECyAFKALcBiIDBEAgBSgC4AYgA0EFdBC5BAsgBSgC6AYiAwRAIAUoAuwGIANBBXQQuQQLIB1B4ABqIQggBSgC9AYiAwRAIAUoAvgGIANBBXQQuQQLIA1BMGwgHWoiCiAIRg0GIAVBiAJqIS0DQCAFQnw3A+gGIAVC/////z83A+AGIAVCADcD2AYgBUKEgICAQDcD0AYgBUGQBmogBUHQBmoQlwFBCCEMAkAgCCgCCCIURQ0AIBRBBXQhFyAUQf///x9LBEBBACEDDAgLIAgoAgQhD0HZvsIALQAAGkEIIQMgF0EIELAEIgxFDQdBACEDIBQhBwNAIAMgF0YNASADIAxqIhEgAyAPaiILKQMANwMAIBFBGGogC0EYaikDADcDACARQRBqIAtBEGopAwA3AwAgEUEIaiALQQhqKQMANwMAIANBIGohAyAHQQFrIgcNAAsLQQghGUEIIQ8CQCAIKAIUIhdFDQAgF0EFdCEeIBdB////H0sEQEEAIQMMBwsgCCgCECELQdm+wgAtAAAaQQghAyAeQQgQsAQiD0UNBkEAIQMgFyEHA0AgAyAeRg0BIAMgD2oiDSADIAtqIhEpAwA3AwAgDUEYaiARQRhqKQMANwMAIA1BEGogEUEQaikDADcDACANQQhqIBFBCGopAwA3AwAgA0EgaiEDIAdBAWsiBw0ACwsCQCAIKAIgIhFFDQAgEUEFdCEhIBFB////H0sEQEEAIQMMBgsgCCgCHCELQdm+wgAtAAAaQQghAyAhQQgQsAQiGUUNBUEAIQMgESEHA0AgAyAhRg0BIAMgGWoiHiADIAtqIg0pAwA3AwAgHkEYaiANQRhqKQMANwMAIB5BEGogDUEQaikDADcDACAeQQhqIA1BCGopAwA3AwAgA0EgaiEDIAdBAWsiBw0ACwsCQCAIKAIsIgtFBEBBCCEnDAELIAtBBXQhKCALQf///x9LBEBBACEDDAULIAgoAighDUHZvsIALQAAGkEIIQMgKEEIELAEIidFDQRBACEDIAshBwNAIAMgKEYNASADICdqIiEgAyANaiIeKQMANwMAICFBGGogHkEYaikDADcDACAhQRBqIB5BEGopAwA3AwAgIUEIaiAeQQhqKQMANwMAIANBIGohAyAHQQFrIgcNAAsLIAUgCzYC/AYgBSAnNgL4BiAFIAs2AvQGIAUgETYC8AYgBSAZNgLsBiAFIBE2AugGIAUgFzYC5AYgBSAPNgLgBiAFIBc2AtwGIAUgFDYC2AYgBSAMNgLUBiAFIBQ2AtAGIAVB6AdqIAVBqAZqKQMANwMAIAVB4AdqIg8gBUGgBmopAwA3AwAgBUHYB2oiByAFQZgGaikDADcDACAFIAUpA5AGNwPQByAFQfABaiAFQdAGaiAFQdAHaiIDEI8CIAUgFTYCnAQgBSAgNgKYBCAFIAI2ApQEIAUgGDYCkAQgBSArNgKMBCAFIAE2AogEIA8gBUGAAmopAgA3AwAgByAFQfgBaikCADcDACAFIAUpAvABNwPQByAFQZADaiAFQYgEaiIBIAMQKyAFIA42ApwEIAUgHDYCmAQgBSAENgKUBCAFIBA2ApAEIAUgGjYCjAQgBSAJNgKIBCAPIC1BEGopAgA3AwAgByAtQQhqKQIANwMAIAUgLSkCADcD0AcgEyABIAMQKyAFKAKQAyEBIAUoApQDISsgBSgCmAMhGCAFKAKcAyECIAUoAqADISAgBSgCpAMhFSAFKAKoAyEJIAUoAqwDIRogBSgCsAMhECAFKAK0AyEEIAUoArgDIRwgBSgCvAMhDiAFKALQBiIDBEAgBSgC1AYgA0EFdBC5BAsgBSgC3AYiAwRAIAUoAuAGIANBBXQQuQQLIAUoAugGIgMEQCAFKALsBiADQQV0ELkECyAFKAL0BiIDBEAgBSgC+AYgA0EFdBC5BAsgCiAIQTBqIghHDQALDAYLIAogARCoBAALQQBBAEHMh8AAENYDAAsgAyAoEKgEAAsgAyAhEKgEAAsgAyAeEKgEAAsgAyAXEKgEAAsgACAFKQMINwMAIAAgDjYCbCAAIBw2AmggACAENgJkIAAgEDYCYCAAIBo2AlwgACAJNgJYIAAgFTYCVCAAICA2AlAgACACNgJMIAAgGDYCSCAAICs2AkQgACABNgJAIABBOGogBUFAaykDADcDACAAQTBqIAVBOGopAwA3AwAgAEEoaiAFQTBqKQMANwMAIABBIGogBUEoaikDADcDACAAQRhqIAVBIGopAwA3AwAgAEEQaiAFQRhqKQMANwMAIABBCGogBUEQaikDADcDACAFQcgCahCqAyAFKALIAiIABEAgHSAAQTBsELkECyASBEBBACEMA0AgGyAMQRhsaiIBKAIIIgQEQCABKAIEIQMDQCADKAIAIgAEQCADQQRqKAIAIABBBXQQuQQLIANBDGohAyAEQQFrIgQNAAsLIAEoAgAiAARAIAEoAgQgAEEMbBC5BAsgASgCDCIABEAgASgCECAAQQV0ELkECyAMQQFqIgwgEkcNAAsLICoEQCAbICpBGGwQuQQLIAVB0AhqJAAPCyAKIAQQqAQACyAKIAQQqAQACyAKIAIQqAQACyAEIAMQqAQACyADIAoQqAQACyAKIAcQqAQAC7mTAQIyfhR/IwBBgAdrIjMkACAzQcAEaiI0QcDLwQBBwAEQzwQaIDQQ8wIiNEFAaxDzAhogNEGAAWoQ8wIaIDNBwAFqIjUgNEHAARDPBBoCQAJAAkBBgMrBACA1EM0DRQRAIABBwAFqITQgACkDOCEJIAApAxAhByAAKQMIIQIgACkDACEOAkAgACkD2AEiCyAAKQMYIgpUDQACQCAKIAtUDQAgByAAKQPQASIBVg0BIAEgB1YNACACIAApA8gBIgFWDQEgASACVg0AIDQpAwAgDlYNAAwBCyAKIAdCjpXHw5bS2sCXf0KNlcfDltLawJd/IA5CuIWMvJL93O9DVhsiASACfCICIAFUrXwiASAHVK0gAUKjz/rzl8nu18cAfSIHIAFUrXx8QqnAxomuzpOyMHwhCiAOQsf688PtgqOQPHwhDgsgACkDWCEEIAApAzAhBiAAKQMoIQggACkDICENIAcgACkD0AEiAX0iGiACIAApA8gBIgNUrSACIAN9IhsgDiAAKQPAASIVVK0iE1StfEIBUa0iFFStIQMgASAHVq0CQCAJIAApA/gBIgxWDQACQCAJIAxUDQAgBiAAKQPwASIBVg0BIAEgBlYNACAIIAApA+gBIgFWDQEgASAIVg0AIAApA+ABIA1WDQAMAQsgCSAGQo6Vx8OW0trAl39CjZXHw5bS2sCXfyANQriFjLyS/dzvQ1YbIgEgCHwiCCABVK18IgEgBlStIAFCo8/685fJ7tfHAH0iBiABVK18fEKpwMaJrs6TsjB8IQkgDULH+vPD7YKjkDx8IQ0LIAN8IAApA3ghAiAAKQNQIQEgACkDSCEFIAApA0AhByAGIAApA/ABIg9UrSAGIA99IhYgCCAAKQPoASIGVK0gCCAGfSIXIA0gACkD4AEiGFStIhJUrXxCAVGtIhlUrXwhBiAAQYACaiE5AkAgBCAAKQOYAiIQVg0AAkAgBCAQVA0AIAEgACkDkAIiCFYNASABIAhUDQAgBSAAKQOIAiIIVg0BIAUgCFQNACA5KQMAIAdWDQAMAQsgBCABIAFCjpXHw5bS2sCXf0KNlcfDltLawJd/IAdCuIWMvJL93O9DVhsiCCAFfCIFIAhUrXwiAVatIAEgAUKjz/rzl8nu18cAfSIBVq18fEKpwMaJrs6TsjB8IQQgB0LH+vPD7YKjkDx8IQcLQgFRIAZCAVEhNiAAKQOYASEIIAApA3AhAyAAKQNoIQ8gACkDYCEGIAEgACkDkAIiEVStIAEgEX0iHCAFIAApA4gCIgFUrSAFIAF9Ih0gByAAKQOAAiIeVK0iH1StfEIBUa0iIFStfEIBUSE3AkAgAiAAKQO4AiIRVgRAIAMhAQwBCwJAIAIgEVQNACADIAApA7ACIgFWBEAgAyEBDAILIAEgA1YNACAPIAApA6gCIgFWBEAgAyEBDAILIAEgD1YNACAAKQOgAiAGVg0AIAMhAQwBCyACIANCjpXHw5bS2sCXf0KNlcfDltLawJd/IAZCuIWMvJL93O9DVhsiASAPfCIPIAFUrXwiASADVK0gASABQqPP+vOXye7XxwB9IgFWrXx8QqnAxomuzpOyMHwhAiAGQsf688PtgqOQPHwhBgutISEgCiALfSA2rSEiIAkgDH0hDCA3rSEjIAQgEH0hECAAKQO4ASEJIAApA5ABIQogACkDiAEhBSAAKQOAASEEIAEgACkDsAIiA1StIAEgA30iJCAPIAApA6gCIgFUrSAPIAF9IiUgBiAAKQOgAiImVK0iJ1StfEIBUa0iKFStfEIBUa0hKSACIBF9IREgAEHAAmohOwJAIAggACkD2AIiA1YNAAJAIAMgCFYNACAKIAApA9ACIgFWDQEgASAKVg0AIAUgACkDyAIiAVYNASABIAVWDQAgOykDACAEVg0ADAELIAggCkKOlcfDltLawJd/Qo2Vx8OW0trAl38gBEK4hYy8kv3c70NWGyIBIAV8IgUgAVStfCIBIApUrSABQqPP+vOXye7XxwB9IgogAVStfHxCqcDGia7Ok7IwfCEIIARCx/rzw+2Co5A8fCEECyAAKQOwASEBIAApA6gBIQ8gACkDoAEhAiAbIBN9IRsgGiAUfSEaICF9IQsgDiAVfSEVIBcgEn0hEyAWIBl9IQ4gDCAifSEMIA0gGH0hDSAdIB99IRQgHCAgfSEWIBAgI30hECAHIB59IQcgJSAnfSEXICQgKH0hGCARICl9IREgBiAmfSEGIAUgACkDyAIiEn0iGSAEIAApA8ACIhxUrSIdfSEeIAogACkD0AIiH30iICAFIBJUrSAZIB1UrXxCAVGtIgV9IRIgCCADfSAKIB9UrSAFICBWrXxCAVGtfSEFIAQgHH0hCgJAIAkgACkD+AIiA1YEQCABIQQMAQsCQCADIAlWDQAgASAAKQPwAiIEVgRAIAEhBAwCCyABIARUDQAgDyAAKQPoAiIEVgRAIAEhBAwCCyAEIA9WDQAgACkD4AIgAlYNACABIQQMAQsgCSABIAFCjpXHw5bS2sCXf0KNlcfDltLawJd/IAJCuIWMvJL93O9DVhsiBCAPfCIPIARUrXwiAVatIAFCo8/685fJ7tfHAH0iBCABVK18fEKpwMaJrs6TsjB8IQkgAkLH+vPD7YKjkDx8IQILIDMgBTcDmAEgMyASNwOQASAzIB43A4gBIDMgCjcDgAEgMyARNwN4IDMgGDcDcCAzIBc3A2ggMyAGNwNgIDMgEDcDWCAzIBY3A1AgMyAUNwNIIDMgBzcDQCAzIAw3AzggMyAONwMwIDMgEzcDKCAzIA03AyAgMyALNwMYIDMgGjcDECAzIBs3AwggMyAVNwMAIDMgAiAAKQPgAiIBfTcDoAEgMyAPIAApA+gCIgV9IgYgASACVq0iAX03A6gBIDMgBCAAKQPwAiICfSIHIAUgD1atIAEgBlatfEIBUa0iAX03A7ABIDMgCSADfSACIARWrSABIAdWrXxCAVGtfTcDuAEgM0HAAWogNEHAARDPBBogM0G4BmogM0G4AmoiNSkDADcDACAzQbAGaiAzQbACaiI2KQMANwMAIDNBqAZqIDNBqAJqIjcpAwA3AwAgM0GgBmogM0GgAmoiOCkDADcDACAzQZgGaiAzQZgCaiI6KQMANwMAIDNBkAZqIDNBkAJqIjwpAwA3AwAgM0GIBmogM0GIAmoiPSkDADcDACA9IDRBCGopAwA3AwAgPCA0QRBqKQMANwMAIDogNEEYaikDADcDACA4IDRBIGopAwA3AwAgNyA0QShqKQMANwMAIDYgNEEwaikDADcDACA1IDRBOGopAwA3AwAgMyAzKQOAAjcDgAYgMyA0KQMANwOAAiAzQfgBaiI2IDNB+AJqKQMAIgE3AwAgM0HwAWoiNyAzQfACaikDACIDNwMAIDNB6AFqIjggM0HoAmopAwAiAjcDACAzQeABaiI6IDNB4AJqKQMAIgU3AwAgM0HYAWogM0HYAmopAwAiBDcDACAzQdABaiAzQdACaikDACIGNwMAIDNByAFqIDNByAJqKQMAIgc3AwAgMyAzKQPAAiIKNwPAASAzQfgEaiABNwMAIDNB8ARqIAM3AwAgM0HoBGogAjcDACAzQeAEaiAFNwMAIDNB2ARqIAQ3AwAgM0HQBGogBjcDACAzQcgEaiAHNwMAIDMgCjcDwAQgM0HABGoQwAIQwAIQwAIhNSAzQfgGaiA2KQMANwMAIDNB8AZqIDcpAwA3AwAgM0HoBmogOCkDADcDACAzIDopAwA3A+AGIDMpA+AGIQkCQCAzQeAGakGA0cEAQSAQ0ARFBEAgMykD+AYhBCAzKQPwBiECIDMpA+gGIQgMAQtCf0IAQn9CAEJ/QgAgCULH+vPD7YKjkDxWGyIBIAEgMykD6AYiA1StfSABIAN9IgFC8+q4vOmtpb/oAH0iCCABVK18Qn9RGyIBIAEgMykD8AYiA1StfSABIAN9IgFCo8/685fJ7tfHAH0iAiABVK18Qn9RGyAzKQP4Bn1CqcDGia7Ok7IwfCEEQsf688PtgqOQPCAJfSEJCyA1KQMYIAR8IDUpAxAiASACfCIDIAFUrSADIAMgNSkDCCICIAh8IgEgAlStIAEgASA1KQMAIgIgCXwiBCACVK18IgFWrXx8IgNWrXx8IglCqcDGia7Ok7IwVA0BAkAgCUKpwMaJrs6TsjBSDQAgA0LdsIWM6LaRqLh/VARAQqnAxomuzpOyMCEJDAMLIANC3bCFjOi2kai4f1INAEKNlcfDltLawJd/IQJC3bCFjOi2kai4fyEFIAFCjZXHw5bS2sCXf1QEQEKpwMaJrs6TsjAhCSABIQIMBAsgAUKNlcfDltLawJd/UiAEQsb688PtgqOQPFZyDQBCqcDGia7Ok7IwIQkMAwsgCSADIAFC8uq4vOmtpb/oAELz6ri86a2lv+gAIARCx/rzw+2Co5A8VBt8IgIgAVqtIgF9IgZCo8/685fJ7tfHAHwiBSAGVK0gASADVq1RrX1CqcDGia7Ok7IwfSEJIARCx/rzw+2Co5A8fSEEDAILIDNBwAFqIABBwAEQzwQaIDNBwARqIABBwAEQzwQaIABBwAFqITQCQCAAKQPYASIFIDMpA9gEIgRUBEAgMykD0AQhAgwBCwJAIAQgBVQEQCAzKQPQBCECDAELAkAgACkD0AEiASAzKQPQBCICVA0AIAEgAlYNASAAKQPIASIBIDMpA8gEIgNUDQAgASADVg0BIDQpAwAgMykDwARWDQELDAELIDMgMykDwAQiAULH+vPD7YKjkDx8NwPABCAzQo6Vx8OW0trAl39CjZXHw5bS2sCXfyABQriFjLyS/dzvQ1YbIgEgMykDyAR8IgM3A8gEIAQgAiABIANWrXwiASACVK0gAUKjz/rzl8nu18cAfSICIAFUrXx8QqnAxomuzpOyMHwhBAsgMyAzKQPABCIGIAApA8ABIgF9NwPABCAzIDMpA8gEIgcgACkDyAEiA30iCiABIAZWrSIGfTcDyAQgMyACIAApA9ABIgx9IgggAyAHVq0gBiAKVq18QgFRrSIGfTcD0AQgMyAEIAV9IAIgDFStIAYgCFatfEIBUa19NwPYBAJAIAApA/gBIgQgMykD+AQiAlQEQCAzKQPwBCEIDAELAkAgAiAEVARAIDMpA/AEIQgMAQsCQCAAKQPwASIGIDMpA/AEIghUDQAgBiAIVg0BIAApA+gBIgYgMykD6AQiB1QNACAGIAdWDQEgACkD4AEgMykD4ARWDQELDAELIDMgMykD4AQiBkLH+vPD7YKjkDx8NwPgBCAzQo6Vx8OW0trAl39CjZXHw5bS2sCXfyAGQriFjLyS/dzvQ1YbIgYgMykD6AR8Igc3A+gEIAIgCCAGIAdWrXwiBiAIVK0gBkKjz/rzl8nu18cAfSIIIAZUrXx8QqnAxomuzpOyMHwhAgsgMyAzKQPgBCIGIAApA+ABIhB9NwPgBCAzIDMpA+gEIgcgACkD6AEiEX0iCiAGIBBUrSIGfTcD6AQgMyAIIAApA/ABIhp9IgsgByARVK0gBiAKVq18QgFRrSIGfTcD8AQgMyACIAR9IAggGlStIAYgC1atfEIBUa19NwP4BCAAQYACaiE1AkAgACkDmAIiBiAzKQOYBSIIVARAIDMpA5AFIQ4MAQsCQCAGIAhWBEAgMykDkAUhDgwBCwJAIAApA5ACIgIgMykDkAUiDlQNACACIA5WDQEgACkDiAIiAiAzKQOIBSIHVA0AIAIgB1YNASA1KQMAIDMpA4AFVg0BCwwBCyAzIDMpA4AFIgJCx/rzw+2Co5A8fDcDgAUgM0KOlcfDltLawJd/Qo2Vx8OW0trAl38gAkK4hYy8kv3c70NWGyICIDMpA4gFfCIHNwOIBSAIIA4gAiAHVq18IgIgDlStIAJCo8/685fJ7tfHAH0iDiACVK18fEKpwMaJrs6TsjB8IQgLIDMgMykDgAUiAiAAKQOAAiIbfTcDgAUgMyAzKQOIBSIHIAApA4gCIhV9IgogAiAbVK0iAn03A4gFIDMgDiAAKQOQAiITfSILIAcgFVStIAIgClatfEIBUa0iAn03A5AFIDMgCCAGfSAOIBNUrSACIAtWrXxCAVGtfTcDmAUCQCAAKQO4AiIKIDMpA7gFIg5UBEAgMykDsAUhDQwBCwJAIAogDlYEQCAzKQOwBSENDAELAkAgACkDsAIiAiAzKQOwBSINVA0AIAIgDVYNASAAKQOoAiICIDMpA6gFIgdUDQAgAiAHVg0BIAApA6ACIDMpA6AFVg0BCwwBCyAzIDMpA6AFIgJCx/rzw+2Co5A8fDcDoAUgM0KOlcfDltLawJd/Qo2Vx8OW0trAl38gAkK4hYy8kv3c70NWGyICIDMpA6gFfCIHNwOoBSAOIA0gAiAHVq18IgIgDVStIAJCo8/685fJ7tfHAH0iDSACVK18fEKpwMaJrs6TsjB8IQ4LIDMgMykDoAUiAiAAKQOgAiIJfTcDoAUgMyAzKQOoBSIHIAApA6gCIhR9IgggAiAJVK0iAn03A6gFIDMgDSAAKQOwAiIWfSILIAcgFFStIAIgCFatfEIBUa0iAn03A7AFIDMgDiAKfSANIBZUrSACIAtWrXxCAVGtfTcDuAUgAEHAAmohNgJAIAApA9gCIgggMykD2AUiDVQEQCAzKQPQBSEHDAELAkAgCCANVgRAIDMpA9AFIQcMAQsCQCAAKQPQAiICIDMpA9AFIgdUDQAgAiAHVg0BIAApA8gCIgIgMykDyAUiC1QNACACIAtWDQEgNikDACAzKQPABVYNAQsMAQsgMyAzKQPABSICQsf688PtgqOQPHw3A8AFIDNCjpXHw5bS2sCXf0KNlcfDltLawJd/IAJCuIWMvJL93O9DVhsiAiAzKQPIBXwiCzcDyAUgDSAHIAIgC1atfCICIAdUrSACQqPP+vOXye7XxwB9IgcgAlStfHxCqcDGia7Ok7IwfCENCyAzIDMpA8AFIgIgACkDwAIiDn03A8AFIDMgMykDyAUiCyAAKQPIAiIXfSIPIAIgDlStIgJ9NwPIBSAzIAcgACkD0AIiGH0iEiALIBdUrSACIA9WrXxCAVGtIgJ9NwPQBSAzIA0gCH0gByAYVK0gAiASVq18QgFRrX03A9gFAkAgACkD+AIiDyAzKQP4BSIHVARAIDMpA/AFIQsMAQsCQCAHIA9UBEAgMykD8AUhCwwBCwJAIAApA/ACIgIgMykD8AUiC1QNACACIAtWDQEgACkD6AIiAiAzKQPoBSINVA0AIAIgDVYNASAAKQPgAiAzKQPgBVYNAQsMAQsgMyAzKQPgBSICQsf688PtgqOQPHw3A+AFIDNCjpXHw5bS2sCXf0KNlcfDltLawJd/IAJCuIWMvJL93O9DVhsiAiAzKQPoBXwiDTcD6AUgByALIAIgDVatfCICIAtUrSACQqPP+vOXye7XxwB9IgsgAlStfHxCqcDGia7Ok7IwfCEHCyAAIAEgACkDACIBfCICNwMAIAAgASACVq0iDSADfCIDIAApAwh8IgE3AwggACAAKQMQIhIgDHwiDCADIA1UrSABIANUrXx8IgM3AxAgACAAKQMYIAV8IAwgElStIAMgDFStfHwiBTcDGCAzIDMpA+AFIhIgACkD4AIiDH03A+AFIDMgMykD6AUiGSAAKQPoAiINfSIcIAwgElatIh19NwPoBSAzIAsgACkD8AIiEn0iHiANIBlWrSAcIB1UrXxCAVGtIhl9NwPwBSAzIAcgD30gCyASVK0gGSAeVq18QgFRrX03A/gFAkAgBUKpwMaJrs6TsjBUDQACQCAFQqnAxomuzpOyMFINACADQt2whYzotpGouH9UDQEgA0LdsIWM6LaRqLh/Ug0AIAFCjZXHw5bS2sCXf1QNASACQsb688PtgqOQPFYNACABQo2Vx8OW0trAl39RDQELIAAgAkLH+vPD7YKjkDx9NwMAIAAgAULy6ri86a2lv+gAQvPquLzpraW/6AAgAkLH+vPD7YKjkDxUG3wiAjcDCCAAIAMgASACWK0iAX0iAkKjz/rzl8nu18cAfCIHNwMQIAAgBSACIAdWrSABIANWrVGtfUKpwMaJrs6TsjB9NwMYCyAAIAApAyAiASAQfCICNwMgIAAgASACVq0iByARfCIDIAApAyh8IgE3AyggACAAKQMwIgsgGnwiBSADIAdUrSABIANUrXx8IgM3AzAgACAAKQM4IAR8IAUgC1StIAMgBVStfHwiBTcDOAJAIAVCqcDGia7Ok7IwVA0AAkAgBUKpwMaJrs6TsjBSDQAgA0LdsIWM6LaRqLh/VA0BIANC3bCFjOi2kai4f1INACABQo2Vx8OW0trAl39UDQEgAkLG+vPD7YKjkDxWDQAgAUKNlcfDltLawJd/UQ0BCyAAIAJCx/rzw+2Co5A8fTcDICAAIAFC8uq4vOmtpb/oAELz6ri86a2lv+gAIAJCx/rzw+2Co5A8VBt8IgI3AyggACADIAEgAlitIgF9IgJCo8/685fJ7tfHAHwiBDcDMCAAIAUgAiAEVq0gASADVq1RrX1CqcDGia7Ok7IwfTcDOAsgACAAKQNAIgEgG3wiAjcDQCAAIAEgAlatIgQgFXwiAyAAKQNIfCIBNwNIIAAgACkDUCIHIBN8IgUgAyAEVK0gASADVK18fCIDNwNQIAAgACkDWCAGfCAFIAdUrSADIAVUrXx8IgU3A1gCQCAFQqnAxomuzpOyMFQNAAJAIAVCqcDGia7Ok7IwUg0AIANC3bCFjOi2kai4f1QNASADQt2whYzotpGouH9SDQAgAUKNlcfDltLawJd/VA0BIAJCxvrzw+2Co5A8Vg0AIAFCjZXHw5bS2sCXf1ENAQsgACACQsf688PtgqOQPH03A0AgACABQvLquLzpraW/6ABC8+q4vOmtpb/oACACQsf688PtgqOQPFQbfCICNwNIIAAgAyABIAJYrSIBfSICQqPP+vOXye7XxwB8IgQ3A1AgACAFIAIgBFatIAEgA1atUa19QqnAxomuzpOyMH03A1gLIAAgACkDYCIBIAl8IgI3A2AgACABIAJWrSIEIBR8IgMgACkDaHwiATcDaCAAIAApA3AiBiAWfCIFIAMgBFStIAEgA1StfHwiAzcDcCAAIAApA3ggCnwgBSAGVK0gAyAFVK18fCIFNwN4AkAgBUKpwMaJrs6TsjBUDQACQCAFQqnAxomuzpOyMFINACADQt2whYzotpGouH9UDQEgA0LdsIWM6LaRqLh/Ug0AIAFCjZXHw5bS2sCXf1QNASACQsb688PtgqOQPFYNACABQo2Vx8OW0trAl39RDQELIAAgAkLH+vPD7YKjkDx9NwNgIAAgAULy6ri86a2lv+gAQvPquLzpraW/6AAgAkLH+vPD7YKjkDxUG3wiAjcDaCAAIAMgASACWK0iAX0iAkKjz/rzl8nu18cAfCIENwNwIAAgBSACIARWrSABIANWrVGtfUKpwMaJrs6TsjB9NwN4CyAAIAApA4ABIgEgDnwiAjcDgAEgACABIAJWrSIEIBd8IgMgACkDiAF8IgE3A4gBIAAgACkDkAEiBiAYfCIFIAMgBFStIAEgA1StfHwiAzcDkAEgACAAKQOYASAIfCAFIAZUrSADIAVUrXx8IgU3A5gBAkAgBUKpwMaJrs6TsjBUDQACQCAFQqnAxomuzpOyMFINACADQt2whYzotpGouH9UDQEgA0LdsIWM6LaRqLh/Ug0AIAFCjZXHw5bS2sCXf1QNASACQsb688PtgqOQPFYNACABQo2Vx8OW0trAl39RDQELIAAgAkLH+vPD7YKjkDx9NwOAASAAIAFC8uq4vOmtpb/oAELz6ri86a2lv+gAIAJCx/rzw+2Co5A8VBt8IgI3A4gBIAAgAyABIAJYrSIBfSICQqPP+vOXye7XxwB8IgQ3A5ABIAAgBSACIARWrSABIANWrVGtfUKpwMaJrs6TsjB9NwOYAQsgACAAKQOgASIBIAx8IgI3A6ABIAAgASACVq0iBCANfCIDIAApA6gBfCIBNwOoASAAIAApA7ABIgYgEnwiBSADIARUrSABIANUrXx8IgM3A7ABIAAgACkDuAEgD3wgBSAGVK0gAyAFVK18fCIFNwO4AQJAIAVCqcDGia7Ok7IwVA0AAkAgBUKpwMaJrs6TsjBSDQAgA0LdsIWM6LaRqLh/VA0BIANC3bCFjOi2kai4f1INACABQo2Vx8OW0trAl39UDQEgAkLG+vPD7YKjkDxWDQAgAUKNlcfDltLawJd/UQ0BCyAAIAJCx/rzw+2Co5A8fTcDoAEgACABQvLquLzpraW/6ABC8+q4vOmtpb/oACACQsf688PtgqOQPFQbfCICNwOoASAAIAMgASACWK0iAX0iAkKjz/rzl8nu18cAfCIENwOwASAAIAUgAiAEVq0gASADVq1RrX1CqcDGia7Ok7IwfTcDuAELIAAgM0HABGoQDSA0EMACIDUQwAIaIDYQwAIaIDNBwAFqEA0MAgsgAyEFIAEhAgsgMyAzKQPAASIGIAR8IgQ3A+AGIDMgMykDyAEiByACfCIDIAQgBlStfCIBNwPoBiAzIAUgMykD0AEiBXwiAiADIAdUrSABIANUrXx8IgM3A/AGIDMgMykD2AEiCiAJfCACIAVUrSACIANWrXx8IgI3A/gGAkAgAkKpwMaJrs6TsjBUDQACQCACQqnAxomuzpOyMFINACADQt2whYzotpGouH9UDQEgA0LdsIWM6LaRqLh/Ug0AIAFCjZXHw5bS2sCXf1QNASAEQsb688PtgqOQPFYNACABQo2Vx8OW0trAl39RDQELIDMgBELH+vPD7YKjkDx9NwPgBiAzIAFC8uq4vOmtpb/oAELz6ri86a2lv+gAIARCx/rzw+2Co5A8VBt8IgQ3A+gGIDMgAyABIARYrSIBfSIEQqPP+vOXye7XxwB8Igg3A/AGIDMgAiAEIAhWrSABIANWrVGtfUKpwMaJrs6TsjB9NwP4BgsCQCAzKQP4ASA1KQM4fCAzKQPwASIBIDUpAzB8IgMgAVStIAMgAyAzKQPoASICIDUpAyh8IgEgAlStIAEgASAzKQPgASICIDUpAyB8IgkgAlStfCIBVq18fCIDVq18fCIEQqnAxomuzpOyMFQEQCABIQIgAyEIDAELAkAgBEKpwMaJrs6TsjBSDQAgA0LdsIWM6LaRqLh/VARAIAEhAiADIQhCqcDGia7Ok7IwIQQMAgsgA0LdsIWM6LaRqLh/Ug0AQo2Vx8OW0trAl38hAkLdsIWM6LaRqLh/IQggAUKNlcfDltLawJd/VARAIAEhAkKpwMaJrs6TsjAhBAwCCyABQo2Vx8OW0trAl39SIAlCxvrzw+2Co5A8VnINAEKpwMaJrs6TsjAhBAwBCyAEIAMgAULy6ri86a2lv+gAQvPquLzpraW/6AAgCULH+vPD7YKjkDxUG3wiAiABWq0iAX0iBEKjz/rzl8nu18cAfCIIIARUrSABIANWrVGtfUKpwMaJrs6TsjB9IQQgCULH+vPD7YKjkDx9IQkLIDNBwAJqITUCQCAEIAp8IAUgCHwiASAIVK0gASACIAd8IgMgAlStIAMgAyAGIAl8Ig0gCVStfCIDVq18fCICIAFUrXx8IglCqcDGia7Ok7IwVARAIAMhASACIQ8MAQsCQCAJQqnAxomuzpOyMFINACACQt2whYzotpGouH9UBEAgAyEBIAIhD0KpwMaJrs6TsjAhCQwCCyACQt2whYzotpGouH9SDQBCjZXHw5bS2sCXfyEBQt2whYzotpGouH8hDyADQo2Vx8OW0trAl39UBEAgAyEBQqnAxomuzpOyMCEJDAILIANCjZXHw5bS2sCXf1IgDULG+vPD7YKjkDxWcg0AQqnAxomuzpOyMCEJDAELIAkgAiADQvLquLzpraW/6ABC8+q4vOmtpb/oACANQsf688PtgqOQPFQbfCIBIANarSIDfSIFQqPP+vOXye7XxwB8Ig8gBVStIAIgA1StUa19QqnAxomuzpOyMH0hCSANQsf688PtgqOQPH0hDQsgM0HYAWoiNiAzQfgGaikDADcDACAzQdABaiAzQfAGaikDADcDACAzQcgBaiAzQegGaikDADcDACAzIDMpA+AGNwPAASA1QThqIDNBuAZqKQMANwMAIDVBMGogM0GwBmopAwA3AwAgNUEoaiAzQagGaikDADcDACA1QSBqIDNBoAZqKQMANwMAIDVBGGogM0GYBmopAwA3AwAgNUEQaiAzQZAGaikDADcDACA1QQhqIDNBiAZqKQMANwMAIDUgMykDgAY3AwAgACkDOCEEIAApAxAhBSAAKQMIIQggACkDACEHAkAgNikDACIMIAApAxgiFFQNAAJAIAwgFFYNACAFIDMpA9ABIgNWDQEgAyAFVg0AIAggMykDyAEiA1YNASADIAhWDQAgMykDwAEgB1YNAAwBCyAUIAVCjpXHw5bS2sCXf0KNlcfDltLawJd/IAdCuIWMvJL93O9DVhsiAyAIfCIIIANUrXwiAyAFVK0gA0Kjz/rzl8nu18cAfSIFIANUrXx8QqnAxomuzpOyMHwhFCAHQsf688PtgqOQPHwhBwsgACkDWCECIAApAzAhAyAAKQMoIQ4gACkDICEGIAUgMykD0AEiCn0iGiAIIDMpA8gBIgtUrSAIIAt9IhsgByAzKQPAASIVVK0iE1StfEIBUa0iFlStIQggBSAKVK0CQCAEIAlWDQACQCAEIAlUDQAgAyAPVg0BIAMgD1QNACABIA5UDQEgBiANVCABIA5Wcg0ADAELIAQgAyADQo6Vx8OW0trAl39CjZXHw5bS2sCXfyAGQriFjLyS/dzvQ1YbIgogDnwiDiAKVK18IgNWrSADIANCo8/685fJ7tfHAH0iA1atfHxCqcDGia7Ok7IwfCEEIAZCx/rzw+2Co5A8fCEGCyAIfCAAKQN4IQggACkDUCELIAApA0ghCiAAKQNAIQUgAyAPVK0gAyAPfSIXIAEgDlatIA4gAX0iGCAGIA1UrSISVK18QgFRrSIZVK18IQ8CQCACIDMpA5gCIhBWBEAgCyEDDAELAkAgAiAQVA0AIAsgMykDkAIiAVYEQCALIQMMAgsgASALVg0AIAogMykDiAIiAVYEQCALIQMMAgsgASAKVg0AIDMpA4ACIAVWDQAgCyEDDAELIAIgC0KOlcfDltLawJd/Qo2Vx8OW0trAl38gBUK4hYy8kv3c70NWGyIBIAp8IgogAVStfCIBIAtUrSABQqPP+vOXye7XxwB9IgMgAVStfHxCqcDGia7Ok7IwfCECIAVCx/rzw+2Co5A8fCEFC0IBUSAPQgFRITYgACkDmAEhDiAAKQNwIQsgACkDaCEBIAApA2AhDyADIDMpA5ACIhFUrSADIBF9IhwgCiAzKQOIAiIDVK0gCiADfSIdIAUgMykDgAIiHlStIh9UrXxCAVGtIiBUrXxCAVEhNwJAIAggMykDuAIiEVYEQCALIQMMAQsCQCAIIBFUDQAgCyAzKQOwAiIDVgRAIAshAwwCCyADIAtWDQAgASAzKQOoAiIDVgRAIAshAwwCCyABIANUDQAgMykDoAIgD1YNACALIQMMAQsgCCALQo6Vx8OW0trAl39CjZXHw5bS2sCXfyAPQriFjLyS/dzvQ1YbIgMgAXwiASADVK18IgMgC1StIAMgA0Kjz/rzl8nu18cAfSIDVq18fEKpwMaJrs6TsjB8IQggD0LH+vPD7YKjkDx8IQ8LrSEhIBQgDH0gNq0hFCAEIAl9ISIgN60hIyACIBB9IRAgACkDuAEhCSAAKQOQASECIAApA4gBIQogACkDgAEhBCADIDMpA7ACIgtUrSADIAt9IiQgASAzKQOoAiIDVK0gASADfSIlIA8gMykDoAIiJlStIidUrXxCAVGtIihUrXxCAVGtISkgCCARfSERAkAgDiAzKQPYAiILVgRAIAIhAQwBCwJAIAsgDlYNACACIDMpA9ACIgFWBEAgAiEBDAILIAEgAlYNACAKIDMpA8gCIgFWBEAgAiEBDAILIAEgClYNACAzKQPAAiAEVg0AIAIhAQwBCyAOIAJCjpXHw5bS2sCXf0KNlcfDltLawJd/IARCuIWMvJL93O9DVhsiASAKfCIKIAFUrXwiASACVK0gASABQqPP+vOXye7XxwB9IgFWrXx8QqnAxomuzpOyMHwhDiAEQsf688PtgqOQPHwhBAsgAEGAAWohNSAAQUBrITYgAEEgaiE3IAApA7ABIQMgACkDqAEhCCAAKQOgASECIBsgE30hGyAaIBZ9IRogIX0hDCAHIBV9IQcgGCASfSEVIBcgGX0hEyAiIBR9IRQgBiANfSEGIB0gH30hDSAcICB9IRYgECAjfSEQIAUgHn0hBSAlICd9IRcgJCAofSEYIBEgKX0hESAPICZ9IQ8gCiAzKQPIAiISfSIZIAQgMykDwAIiHFStIh19IR4gASAzKQPQAiIffSIgIAogElStIBkgHVStfEIBUa0iCn0hEiAOIAt9IAEgH1StIAogIFatfEIBUa19IQogBCAcfSELAkAgCSAzKQP4AiIBVgRAIAMhBAwBCwJAIAEgCVYNACADIDMpA/ACIgRWBEAgAyEEDAILIAMgBFQNACAIIDMpA+gCIgRWBEAgAyEEDAILIAQgCFYNACAzKQPgAiACVg0AIAMhBAwBCyAJIAMgA0KOlcfDltLawJd/Qo2Vx8OW0trAl38gAkK4hYy8kv3c70NWGyIEIAh8IgggBFStfCIDVq0gA0Kjz/rzl8nu18cAfSIEIANUrXx8QqnAxomuzpOyMHwhCSACQsf688PtgqOQPHwhAgsgMyAKNwPYAiAzIBI3A9ACIDMgHjcDyAIgMyALNwPAAiAzIBE3A7gCIDMgGDcDsAIgMyAXNwOoAiAzIA83A6ACIDMgEDcDmAIgMyAWNwOQAiAzIA03A4gCIDMgBTcDgAIgMyAUNwP4ASAzIBM3A/ABIDMgFTcD6AEgMyAGNwPgASAzIAw3A9gBIDMgGjcD0AEgMyAbNwPIASAzIAc3A8ABIDMgAiAzKQPgAiIDfTcD4AIgMyAIIDMpA+gCIgV9IgYgAiADVK0iA303A+gCIDMgBCAzKQPwAiICfSIHIAUgCFatIAMgBlatfEIBUa0iA303A/ACIDMgCSABfSACIARWrSADIAdWrXxCAVGtfTcD+AIgM0HABGoiPiAAQcABEM8EGiA+IDQQDSAzQYADaiI4ID5BwAEQzwQaIDMgM0HAAWoQDSA0IDhBwAEQzwQQwAIaIDkQwAIaIDsQwAIaIAAgOEHAARDPBCI0QThqIjkpAwAhHCA0QTBqIjspAwAhHSA0QShqIjgpAwAhHiA0QSBqIjopAwAhHyA0QRhqIjwpAwAhICA0QRBqIj0pAwAhISA0QQhqIj8pAwAhGSA0KQO4ASEiIDQpA7ABISMgNCkDqAEhJCA0KQOgASElIDQpA5gBISYgNCkDkAEhJyA0KQOIASEoIDQpA4ABISkgNCkDeCEqIDQpA3AhKyA0KQNoISwgNCkDYCEtIDQpA1ghLiA0KQNQIS8gNCkDSCEwIDQpA0AhMSA0KQMAITIgM0G4BmogNkE4aiJAKQMANwMAIDNBsAZqIDZBMGoiQSkDADcDACAzQagGaiA2QShqIkIpAwA3AwAgM0GgBmogNkEgaiJDKQMANwMAIDNBmAZqIDZBGGoiRCkDADcDACAzQZAGaiA2QRBqIkUpAwA3AwAgM0GIBmogNkEIaiJGKQMANwMAIDYpAwAhASA2IDMpA4ADNwMAIEYgM0GIA2opAwA3AwAgRSAzQZADaikDADcDACBEIDNBmANqKQMANwMAIEMgM0GgA2opAwA3AwAgQiAzQagDaikDADcDACBBIDNBsANqKQMANwMAIEAgM0G4A2opAwA3AwAgMyABNwOABiA5IDVBOGoiNikDADcDACA7IDVBMGoiOSkDADcDACA4IDVBKGoiOykDADcDACA6IDVBIGoiOCkDADcDACA8IDVBGGoiOikDADcDACA9IDVBEGoiPCkDADcDACA/IDVBCGoiPSkDADcDACA0IDUpAwA3AwAgM0H4BGogNikDADcDACAzQfAEaiA5KQMANwMAIDNB6ARqIDspAwA3AwAgM0HgBGogOCkDADcDACAzQdgEaiA6KQMANwMAIDNB0ARqIDwpAwA3AwAgM0HIBGogPSkDADcDACAzIDUpAwA3A8AEID4QwAIQwAIQwAIhNiAzQdgGaiA3QRhqKQMANwMAIDNB0AZqIDdBEGopAwA3AwAgM0HIBmogN0EIaikDADcDACAzIDcpAwA3A8AGIDMpA8AGIQkCQCAzQcAGakGA0cEAQSAQ0ARFBEAgMykD2AYhBCAzKQPQBiECIDMpA8gGIQgMAQtCf0IAQn9CAEJ/QgAgCULH+vPD7YKjkDxWGyIBIAEgMykDyAYiA1StfSABIAN9IgFC8+q4vOmtpb/oAH0iCCABVK18Qn9RGyIBIAEgMykD0AYiA1StfSABIAN9IgFCo8/685fJ7tfHAH0iAiABVK18Qn9RGyAzKQPYBn1CqcDGia7Ok7IwfCEEQsf688PtgqOQPCAJfSEJCwJAAkAgNikDGCAEfCA2KQMQIgEgAnwiAyABVK0gAyADIDYpAwgiAiAIfCIBIAJUrSABIAEgNikDACICIAl8IgQgAlStfCIBVq18fCIDVq18fCIJQqnAxomuzpOyMFQNAAJAIAlCqcDGia7Ok7IwUg0AIANC3bCFjOi2kai4f1QEQEKpwMaJrs6TsjAhCQwCCyADQt2whYzotpGouH9SDQBCjZXHw5bS2sCXfyECQt2whYzotpGouH8hBSABQo2Vx8OW0trAl39UBEBCqcDGia7Ok7IwIQkgASECDAMLIAFCjZXHw5bS2sCXf1IgBELG+vPD7YKjkDxWcg0AQqnAxomuzpOyMCEJDAILIAkgAyABQvLquLzpraW/6ABC8+q4vOmtpb/oACAEQsf688PtgqOQPFQbfCICIAFarSIBfSIGQqPP+vOXye7XxwB8IgUgBlStIAEgA1atUa19QqnAxomuzpOyMH0hCSAEQsf688PtgqOQPH0hBAwBCyADIQUgASECCyAzIDQpAwAiBiAEfCIENwPABiAzIDQpAwgiByACfCIDIAQgBlStfCIBNwPIBiAzIAUgNCkDECIFfCICIAMgB1StIAEgA1StfHwiAzcD0AYgMyA0KQMYIgogCXwgAiAFVK0gAiADVq18fCICNwPYBgJAIAJCqcDGia7Ok7IwVA0AAkAgAkKpwMaJrs6TsjBSDQAgA0LdsIWM6LaRqLh/VA0BIANC3bCFjOi2kai4f1INACABQo2Vx8OW0trAl39UDQEgBELG+vPD7YKjkDxWDQAgAUKNlcfDltLawJd/UQ0BCyAzIARCx/rzw+2Co5A8fTcDwAYgMyABQvLquLzpraW/6ABC8+q4vOmtpb/oACAEQsf688PtgqOQPFQbfCIENwPIBiAzIAMgASAEWK0iAX0iBEKjz/rzl8nu18cAfCIINwPQBiAzIAIgBCAIVq0gASADVq1RrX1CqcDGia7Ok7IwfTcD2AYLAkAgNCkDOCA2KQM4fCA0KQMwIgEgNikDMHwiAyABVK0gAyADIDQpAygiAiA2KQMofCIBIAJUrSABIAEgNCkDICICIDYpAyB8IgkgAlStfCIBVq18fCIDVq18fCIEQqnAxomuzpOyMFQEQCABIQIgAyEIDAELAkAgBEKpwMaJrs6TsjBSDQAgA0LdsIWM6LaRqLh/VARAIAEhAiADIQhCqcDGia7Ok7IwIQQMAgsgA0LdsIWM6LaRqLh/Ug0AQo2Vx8OW0trAl38hAkLdsIWM6LaRqLh/IQggAUKNlcfDltLawJd/VARAIAEhAkKpwMaJrs6TsjAhBAwCCyABQo2Vx8OW0trAl39SIAlCxvrzw+2Co5A8VnINAEKpwMaJrs6TsjAhBAwBCyAEIAMgAULy6ri86a2lv+gAQvPquLzpraW/6AAgCULH+vPD7YKjkDxUG3wiAiABWq0iAX0iBEKjz/rzl8nu18cAfCIIIARUrSABIANWrVGtfUKpwMaJrs6TsjB9IQQgCULH+vPD7YKjkDx9IQkLAkAgBCAKfCAFIAh8IgMgCFStIAMgAyACIAd8IgEgAlStIAEgASAGIAl8IgIgCVStfCIBVq18fCIDVq18fCIEQqnAxomuzpOyMFQEQCABIQYgAyEFDAELAkAgBEKpwMaJrs6TsjBSDQAgA0LdsIWM6LaRqLh/VARAIAEhBiADIQVCqcDGia7Ok7IwIQQMAgsgA0LdsIWM6LaRqLh/Ug0AQo2Vx8OW0trAl38hBkLdsIWM6LaRqLh/IQUgAUKNlcfDltLawJd/VARAIAEhBkKpwMaJrs6TsjAhBAwCCyABQo2Vx8OW0trAl39SIAJCxvrzw+2Co5A8VnINAEKpwMaJrs6TsjAhBAwBCyAEIAMgAULy6ri86a2lv+gAQvPquLzpraW/6AAgAkLH+vPD7YKjkDxUG3wiBiABWq0iAX0iBEKjz/rzl8nu18cAfCIFIARUrSABIANWrVGtfUKpwMaJrs6TsjB9IQQgAkLH+vPD7YKjkDx9IQILIDQgMykDwAY3AwAgNEEYaiI2IDNB2AZqKQMANwMAIDRBEGoiNyAzQdAGaikDADcDACA0QQhqIjkgM0HIBmopAwA3AwAgNUE4aiAzQbgGaikDADcDACA1QTBqIDNBsAZqKQMANwMAIDVBKGogM0GoBmopAwA3AwAgNUEgaiAzQaAGaikDADcDACA1QRhqIDNBmAZqKQMANwMAIDVBEGogM0GQBmopAwA3AwAgNUEIaiAzQYgGaikDADcDACA1IDMpA4AGNwMAAkACQCA2KQMAIDMpAxh8IDcpAwAiASAzKQMQfCIHIAFUrSAHIDQpAwAiAyAzKQMAfCIBIANUrSIKIDMpAwh8IgMgClStIAMgAyA5KQMAfCIDVq18fCIJIAdUrXx8IhRCqcDGia7Ok7IwVA0AAkAgFEKpwMaJrs6TsjBSDQAgCULdsIWM6LaRqLh/VARAQqnAxomuzpOyMCEUDAILIAlC3bCFjOi2kai4f1INAEKNlcfDltLawJd/IQcgA0KNlcfDltLawJd/VARAQqnAxomuzpOyMCEUQt2whYzotpGouH8hCQwCCyADQo2Vx8OW0trAl39SIAFCxvrzw+2Co5A8VnINAEKpwMaJrs6TsjAhFELdsIWM6LaRqLh/IQkgASEQDAILIDQgAULH+vPD7YKjkDx9IhA3AwAgNCADQvLquLzpraW/6ABC8+q4vOmtpb/oACABQsf688PtgqOQPFQbfCIHNwMIIDRCos/685fJ7tfHAEKjz/rzl8nu18cAIAMgB1gbIgEgCXwiCTcDECA0IBQgASAJWK19QqnAxomuzpOyMH0iFDcDGAwBCyADIQcgASEQCwJAAkAgMykDOCAEfCAzKQMwIgEgBXwiAyABVK0gAyAzKQMoIgEgBnwiBSABVK0gBSACIDMpAyAiAnwiASACVK18IgIgBVStfHwiBCADVK18fCIDQqnAxomuzpOyMFQNAAJAIANCqcDGia7Ok7IwUg0AIARC3bCFjOi2kai4f1QEQEKpwMaJrs6TsjAhAwwCCyAEQt2whYzotpGouH9SDQBCjZXHw5bS2sCXfyEGIAJCjZXHw5bS2sCXf1QEQEKpwMaJrs6TsjAhA0LdsIWM6LaRqLh/IQQMAgsgAkKNlcfDltLawJd/UiABQsb688PtgqOQPFZyDQBCqcDGia7Ok7IwIQNC3bCFjOi2kai4fyEEIAEhEQwCCyA0IAFCx/rzw+2Co5A8fSIRNwMgIDQgAkLy6ri86a2lv+gAQvPquLzpraW/6AAgAULH+vPD7YKjkDxUG3wiBjcDKCA0QqLP+vOXye7XxwBCo8/685fJ7tfHACACIAZYGyIBIAR8IgQ3AzAgNCADIAEgBFitfUKpwMaJrs6TsjB9IgM3AzgMAQsgAiEGIAEhEQsCQAJAIDQpA1ggMykDWHwgNCkDUCIBIDMpA1B8IgIgAVStIAIgAiA0KQNAIgUgMykDQHwiASAFVK0iCiAzKQNIfCIFIApUrSAFIDQpA0h8IgogBVStfHwiAlatfHwiFkKpwMaJrs6TsjBUDQACQCAWQqnAxomuzpOyMFINACACQt2whYzotpGouH9UBEBCqcDGia7Ok7IwIRYMAgsgAkLdsIWM6LaRqLh/Ug0AQo2Vx8OW0trAl38hBSAKQo2Vx8OW0trAl39UBEBCqcDGia7Ok7IwIRZC3bCFjOi2kai4fyECDAILIApCjZXHw5bS2sCXf1IgAULG+vPD7YKjkDxWcg0AQqnAxomuzpOyMCEWQt2whYzotpGouH8hAiABIRoMAgsgNCABQsf688PtgqOQPH0iGjcDQCA0IApC8uq4vOmtpb/oAELz6ri86a2lv+gAIAFCx/rzw+2Co5A8VBt8IgU3A0ggNEKiz/rzl8nu18cAQqPP+vOXye7XxwAgBSAKWhsiASACfCICNwNQIDQgFiABIAJYrX1CqcDGia7Ok7IwfSIWNwNYDAELIAohBSABIRoLAkACQCA0KQN4IDMpA3h8IDQpA3AiASAzKQNwfCIIIAFUrSAIIAggNCkDYCIKIDMpA2B8IgEgClStIgsgMykDaHwiCiALVK0gCiAKIDQpA2h8IgpWrXx8IghWrXx8IhdCqcDGia7Ok7IwVA0AAkAgF0KpwMaJrs6TsjBSDQAgCELdsIWM6LaRqLh/VARAQqnAxomuzpOyMCEXDAILIAhC3bCFjOi2kai4f1INAEKNlcfDltLawJd/IQ8gCkKNlcfDltLawJd/VARAQqnAxomuzpOyMCEXQt2whYzotpGouH8hCAwCCyAKQo2Vx8OW0trAl39SIAFCxvrzw+2Co5A8VnINAEKpwMaJrs6TsjAhF0LdsIWM6LaRqLh/IQggASEbDAILIDQgAULH+vPD7YKjkDx9Ihs3A2AgNCAKQvLquLzpraW/6ABC8+q4vOmtpb/oACABQsf688PtgqOQPFQbfCIPNwNoIDRCos/685fJ7tfHAEKjz/rzl8nu18cAIAogD1gbIgEgCHwiCDcDcCA0IBcgASAIWK19QqnAxomuzpOyMH0iFzcDeAwBCyAKIQ8gASEbCwJAAkAgNCkDmAEgMykDmAF8IDQpA5ABIgEgMykDkAF8IgogAVStIAogNCkDgAEiCyAzKQOAAXwiASALVK0iDCAzKQOIAXwiCyAMVK0gCyA0KQOIAXwiDCALVK18fCIOIApUrXx8IhhCqcDGia7Ok7IwVA0AAkAgGEKpwMaJrs6TsjBSDQAgDkLdsIWM6LaRqLh/VARAQqnAxomuzpOyMCEYDAILIA5C3bCFjOi2kai4f1INAEKNlcfDltLawJd/IQogDEKNlcfDltLawJd/VARAQqnAxomuzpOyMCEYQt2whYzotpGouH8hDgwCCyAMQo2Vx8OW0trAl39SIAFCxvrzw+2Co5A8VnINAEKpwMaJrs6TsjAhGELdsIWM6LaRqLh/IQ4gASELDAILIDQgAULH+vPD7YKjkDx9Igs3A4ABIDQgDELy6ri86a2lv+gAQvPquLzpraW/6AAgAULH+vPD7YKjkDxUG3wiCjcDiAEgNEKiz/rzl8nu18cAQqPP+vOXye7XxwAgCiAMWhsiASAOfCIONwOQASA0IBggASAOWK19QqnAxomuzpOyMH0iGDcDmAEMAQsgDCEKIAEhCwsCQAJAIDQpA7gBIDMpA7gBfCA0KQOwASIMIDMpA7ABfCIBIAxUrSABIDQpA6ABIhUgMykDoAF8IgwgFVStIhMgMykDqAF8IhUgE1StIBUgNCkDqAF8IhMgFVStfHwiDSABVK18fCISQqnAxomuzpOyMFQNAAJAIBJCqcDGia7Ok7IwUg0AIA1C3bCFjOi2kai4f1QEQEKpwMaJrs6TsjAhEgwCCyANQt2whYzotpGouH9SDQBCjZXHw5bS2sCXfyEBIBNCjZXHw5bS2sCXf1QEQEKpwMaJrs6TsjAhEkLdsIWM6LaRqLh/IQ0MAgsgE0KNlcfDltLawJd/UiAMQsb688PtgqOQPFZyDQBCqcDGia7Ok7IwIRJC3bCFjOi2kai4fyENIAwhFQwCCyA0IAxCx/rzw+2Co5A8fSIVNwOgASA0IBNC8uq4vOmtpb/oAELz6ri86a2lv+gAIAxCx/rzw+2Co5A8VBt8IgE3A6gBIDRCos/685fJ7tfHAEKjz/rzl8nu18cAIAEgE1obIgwgDXwiDTcDsAEgNCASIAwgDVitfUKpwMaJrs6TsjB9IhI3A7gBDAELIBMhASAMIRULIDQgECAyfCITNwMAIDQgByAZfCIZIBAgE1atfCIMNwMIIDQgCSAhfCIQIAcgGVatIAwgGVStfHwiBzcDECA0IBQgIHwgCSAQVq0gByAQVK18fCIQNwMYAkAgEEKpwMaJrs6TsjBUDQACQCAQQqnAxomuzpOyMFINACAHQt2whYzotpGouH9UDQEgB0LdsIWM6LaRqLh/Ug0AIAxCjZXHw5bS2sCXf1QNASATQsb688PtgqOQPFYNACAMQo2Vx8OW0trAl39RDQELIDQgE0LH+vPD7YKjkDx9NwMAIDQgDELy6ri86a2lv+gAQvPquLzpraW/6AAgE0LH+vPD7YKjkDxUG3wiEzcDCCA0IAcgDCATWK0iDH0iE0Kjz/rzl8nu18cAfCIJNwMQIDQgECAJIBNUrSAHIAxUrVGtfUKpwMaJrs6TsjB9NwMYCyA0IBEgH3wiDDcDICA0IAYgHnwiECAMIBFUrXwiBzcDKCA0IAQgHXwiESAGIBBWrSAHIBBUrXx8IgY3AzAgNCADIBx8IAQgEVatIAYgEVStfHwiAzcDOAJAIANCqcDGia7Ok7IwVA0AAkAgA0KpwMaJrs6TsjBSDQAgBkLdsIWM6LaRqLh/VA0BIAZC3bCFjOi2kai4f1INACAHQo2Vx8OW0trAl39UDQEgDELG+vPD7YKjkDxWDQAgB0KNlcfDltLawJd/UQ0BCyA0IAxCx/rzw+2Co5A8fTcDICA0IAdC8uq4vOmtpb/oAELz6ri86a2lv+gAIAxCx/rzw+2Co5A8VBt8IgQ3AyggNCAGIAQgB1qtIgR9IgdCo8/685fJ7tfHAHwiDDcDMCA0IAMgByAMVq0gBCAGVq1RrX1CqcDGia7Ok7IwfTcDOAsgNCAaIDF8IgQ3A0AgNCAFIDB8IgYgBCAaVK18IgM3A0ggNCACIC98IgcgBSAGVq0gAyAGVK18fCIFNwNQIDQgFiAufCACIAdWrSAFIAdUrXx8IgI3A1gCQCACQqnAxomuzpOyMFQNAAJAIAJCqcDGia7Ok7IwUg0AIAVC3bCFjOi2kai4f1QNASAFQt2whYzotpGouH9SDQAgA0KNlcfDltLawJd/VA0BIARCxvrzw+2Co5A8Vg0AIANCjZXHw5bS2sCXf1ENAQsgNCAEQsf688PtgqOQPH03A0AgNCADQvLquLzpraW/6ABC8+q4vOmtpb/oACAEQsf688PtgqOQPFQbfCIENwNIIDQgBSADIARYrSIDfSIEQqPP+vOXye7XxwB8IgY3A1AgNCACIAQgBlatIAMgBVatUa19QqnAxomuzpOyMH03A1gLIDQgGyAtfCIFNwNgIDQgDyAsfCICIAUgG1StfCIDNwNoIDQgCCArfCIEIAIgD1StIAIgA1atfHwiAjcDcCA0IBcgKnwgBCAIVK0gAiAEVK18fCIENwN4AkAgBEKpwMaJrs6TsjBUDQACQCAEQqnAxomuzpOyMFINACACQt2whYzotpGouH9UDQEgAkLdsIWM6LaRqLh/Ug0AIANCjZXHw5bS2sCXf1QNASAFQsb688PtgqOQPFYNACADQo2Vx8OW0trAl39RDQELIDQgBULH+vPD7YKjkDx9NwNgIDQgA0Ly6ri86a2lv+gAQvPquLzpraW/6AAgBULH+vPD7YKjkDxUG3wiBTcDaCA0IAIgAyAFWK0iA30iBUKjz/rzl8nu18cAfCIGNwNwIDQgBCAFIAZWrSACIANUrVGtfUKpwMaJrs6TsjB9NwN4CyA0IAsgKXwiBTcDgAEgNCAKICh8IgIgBSALVK18IgM3A4gBIDQgDiAnfCIEIAIgClStIAIgA1atfHwiAjcDkAEgNCAYICZ8IAQgDlStIAIgBFStfHwiBDcDmAECQCAEQqnAxomuzpOyMFQNAAJAIARCqcDGia7Ok7IwUg0AIAJC3bCFjOi2kai4f1QNASACQt2whYzotpGouH9SDQAgA0KNlcfDltLawJd/VA0BIAVCxvrzw+2Co5A8Vg0AIANCjZXHw5bS2sCXf1ENAQsgNCAFQsf688PtgqOQPH03A4ABIDQgA0Ly6ri86a2lv+gAQvPquLzpraW/6AAgBULH+vPD7YKjkDxUG3wiBTcDiAEgNCACIAMgBVitIgN9IgVCo8/685fJ7tfHAHwiBjcDkAEgNCAEIAUgBlatIAIgA1StUa19QqnAxomuzpOyMH03A5gBCyA0IBUgJXwiAjcDoAEgNCABICR8IgUgAiAVVK18IgM3A6gBIDQgDSAjfCIEIAEgBVatIAMgBVStfHwiATcDsAEgNCASICJ8IAQgDVStIAEgBFStfHwiBTcDuAEgBUKpwMaJrs6TsjBUDQACQCAFQqnAxomuzpOyMFINACABQt2whYzotpGouH9UDQEgAULdsIWM6LaRqLh/Ug0AIANCjZXHw5bS2sCXf1QNASACQsb688PtgqOQPFYNACADQo2Vx8OW0trAl39RDQELIDQgAkLH+vPD7YKjkDx9NwOgASA0IANC8uq4vOmtpb/oAELz6ri86a2lv+gAIAJCx/rzw+2Co5A8VBt8IgI3A6gBIDQgASACIANarSIDfSICQqPP+vOXye7XxwB8IgQ3A7ABIDQgBSACIARWrSABIANUrVGtfUKpwMaJrs6TsjB9NwO4AQsgM0GAB2okACAAC76GAQIbfzp+IwBBgAVrIgIkACAAQThqIgMpAwAhTSAAQTBqIggpAwAhTiAAQShqIgopAwAhTyAAQSBqIgspAwAhUCAAQRhqIgQpAwAhUSAAQRBqIgUpAwAhUiAAQQhqIgYpAwAhUyAAKQO4ASE7IAApA7ABISogACkDqAEhMiAAKQOgASEzIAApA5gBIT8gACkDkAEhNCAAKQOIASE1IAApA4ABITYgACkDeCEuIAApA3AhKyAAKQNoISwgACkDYCEtIAApA1ghNyAAKQNQIS8gACkDSCEwIAApA0AhMSAAKQMAIVQgASkDuAEhRSABKQOwASE8IAEpA6gBIT0gASkDoAEhPiABKQOYASFGIAEpA5ABIUEgASkDiAEhQiABKQOAASFDIAEpA3ghQCABKQNwIUcgASkDaCFIIAEpA2AhSSABKQNYITggASkDUCE5IAEpA0ghOiABKQNAIUogAkG4AmoiCSADKQMANwMAIAJBsAJqIgcgCCkDADcDACACQagCaiIIIAopAwA3AwAgAkGgAmoiAyALKQMANwMAIAJBmAJqIgogBCkDADcDACACQZACaiILIAUpAwA3AwAgAkGIAmoiDiAGKQMANwMAIAIgACkDADcDgAIgAkHYAmogBCkDADcDACACQdACaiAFKQMANwMAIAJByAJqIAYpAwA3AwAgAiAAKQMANwPAAiACQegCaiIMIAgpAwA3AwAgAkHwAmoiDSAHKQMANwMAIAJB+AJqIhAgCSkDADcDACACIAMpAwA3A+ACIANBkLLBAEEgENAEBEAgAkLH+vPD7YKjkDwgAikDoAIiHX03A6ACIAJCf0IAIB1Cx/rzw+2Co5A8VhsiHSACKQOoAiIefSIfQvPquLzpraW/6AB9IiA3A6gCIAJCf0IAIB8gIFatIB0gHSAeVK19fEJ/URsiHSACKQOwAiIefSIfQqPP+vOXye7XxwB9IiA3A7ACIAJCf0IAIB8gIFatIB0gHSAeVK19fEJ/URsgAikDuAJ9QqnAxomuzpOyMHw3A7gCCyACQdgDaiAEKQMANwMAIAJB0ANqIAUpAwA3AwAgAkHIA2ogBikDADcDACACQegDaiADQQhqKQMANwMAIAJB8ANqIANBEGopAwA3AwAgAkH4A2ogA0EYaikDADcDACACIAApAwA3A8ADIAIgAykDADcD4AMgAkG4BGogAUE4aiIEKQMANwMAIAJBsARqIAFBMGoiBSkDADcDACACQagEaiABQShqIgYpAwA3AwAgAkGIBGogAUEIaiIPKQMANwMAIAJBkARqIAFBEGoiESkDADcDACACQZgEaiABQRhqIhIpAwA3AwAgAiABKQMgNwOgBCACIAEpAwA3A4AEIAJBgANqIAJBwANqIAJBgARqEGIgAkHYBGogBCkDADcDACACQdAEaiAFKQMANwMAIAJByARqIAYpAwA3AwAgAkHoBGogDykDADcDACACQfAEaiARKQMANwMAIAJB+ARqIBIpAwA3AwAgAiABKQMgNwPABCACIAEpAwA3A+AEIAJBoANqIgQgAkHAAmogAkHABGoQYiAJIAJBuANqKQMANwMAIAcgAkGwA2opAwA3AwAgCCACQagDaikDADcDACADIAQpAwA3AwAgCiACQZgDaikDADcDACALIAJBkANqKQMANwMAIA4gAkGIA2opAwA3AwAgAiACKQOAAzcDgAIgAkE4aiAJKQMANwMAIAJBMGogBykDADcDACACQShqIAgpAwA3AwAgAkEgaiADKQMANwMAIAJBGGogCikDADcDACACQRBqIAspAwA3AwAgAkEIaiAOKQMANwMAIAIgAikDgAI3AwAgAiAuNwO4AiACICs3A7ACIAIgLDcDqAIgAiAtNwOgAiACIDc3A5gCIAIgLzcDkAIgAiAwNwOIAiACIDE3A4ACIAwgLDcDACANICs3AwAgECAuNwMAIAIgNzcD2AIgAiAvNwPQAiACIDA3A8gCIAIgMTcDwAIgAiAtNwPgAiADQZCywQBBIBDQBARAIAJCx/rzw+2Co5A8IC19NwOgAiACQn9CACAtQsf688PtgqOQPFYbIh0gLH0iHkLz6ri86a2lv+gAfSIfNwOoAiACQn9CACAeIB9WrSAdIB0gLFStfXxCf1EbIh0gK30iHkKjz/rzl8nu18cAfSIfNwOwAiACQn9CACAeIB9WrSAdIB0gK1StfXxCf1EbIC59QqnAxomuzpOyMHw3A7gCCyACQdgDaiILIAJBmAJqIgQpAwA3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o5A8VBt8Ih0gJVobIiAgH3wiHyAgWq19QqnAxomuzpOyMH0hICAnQsf688PtgqOQPH0hJwsgAkHYAmogAkGYAmoiAykDADcDACACQdACaiACQZACaiIEKQMANwMAIAJByAJqIAJBiAJqIgUpAwA3AwAgAkHoAmogAUEIaiIGKQMANwMAIAJB8AJqIAFBEGoiCSkDADcDACACQfgCaiABQRhqIgcpAwA3AwAgAiACKQOAAjcDwAIgAiABKQMANwPgAiABQZCywQBBIBDQBARAIAJCx/rzw+2Co5A8ICR9NwOgAiACQn9CACAkQsf688PtgqOQPFYbIiQgIX0iJULz6ri86a2lv+gAfSIvNwOoAiACQn9CACAlIC9WrSAkICEgJFatfXxCf1EbIiQgIn0iIUKjz/rzl8nu18cAfSIlNwOwAiACQn9CACAhICVWrSAkICIgJFatfXxCf1EbICh9QqnAxomuzpOyMHw3A7gCCyACQdgDaiADKQMANwMAIAJB0ANqIAQpAwA3AwAgAkHIA2ogBSkDADcDACACQegDaiAGKQMANwMAIAJB8ANqIAkpAwA3AwAgAkH4A2ogBykDADcDACACIAIpA4ACNwPAAyACIAEpAwA3A+ADIAJBuARqICA3AwAgAkGwBGogHzcDACACQagEaiAdNwMAIAIgJzcDoAQgAiAjNwOYBCACIB43A5AEIAIgJjcDiAQgAiAqNwOABCACQYADaiACQcADaiACQYAEahBiIAJB+ARqIgEgIzcDACACQfAEaiIGIB43AwAgAkHoBGoiCSAmNwMAIAIgKjcD4AQgAiAgNwPYBCACIB83A9AEIAIgHTcDyAQgAiAnNwPABCACQaADaiIHIAJBwAJqIAJBwARqIg0QYiACQbgCaiIIIAJBuANqKQMANwMAIAJBsAJqIgogAkGwA2opAwA3AwAgAkGoAmoiCyACQagDaikDADcDACACQaACaiIMIAcpAwA3AwAgAyACQZgDaikDADcDACAEIAJBkANqKQMANwMAIAUgAkGIA2opAwA3AwAgAiACKQOAAzcDgAIgASAIKQMANwMAIAYgCikDADcDACAJIAspAwA3AwAgAkHgBGoiByAMKQMANwMAIAJB2ARqIgggAykDADcDACACQdAEaiIDIAQpAwA3AwAgAkHIBGoiBCAFKQMANwMAIAIgAikD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AwAgBiALVK18fHwiBjcACCADIAQgBVatIAJB+A5qKQMAIAQgDFStfHwiCCACKQOwDnwiBCAGIAdUrSACQagOaikDACAFIAdWrXx8fCIFNwAQIAMgBCAFVq0gAkG4DmopAwAgBCAIVK18fDcAGCAAQTBqIANBIEEIENICIANBIBC5BEHZvsIALQAAGiABKQO4ASEIIAEpA7ABIQcgASkDqAEhBiABKQOgASEFQSBBARCwBCIDRQ0AIAJB8A1qIAVCiceZpK7wgemHf34iBEKpwMaJrs6TsjBCABC9AyACQeANaiAEQt2whYzotpGouH9CABC9AyACQdANaiAEQo2Vx8OW0trAl39CABC9AyACQcANaiAEQsf688PtgqOQPEIAEL0DIAJBsA1qIAIpA9ANIgkgBnwiBiACQcgNaikDACACKQPADSIEIAV8IARUrXx8IgVCiceZpK7wgemHf34iBEKpwMaJrs6TsjBCABC9AyACQaANaiAEQt2whYzotpGouH9CABC9AyACQZANaiAEQo2Vx8OW0trAl39CABC9AyACQYANaiAEQsf688PtgqOQPEIAEL0DIAJB8AxqIAIpA5ANIgogAikD4A0iCyAHfCIHIAUgBlStIAJB2A1qKQMAIAYgCVStfHx8Igl8IgYgAkGIDWopAwAgAikDgA0iBCAFfCAEVK18fCIFQonHmaSu8IHph39+IgRCqcDGia7Ok7IwQgAQvQMgAkHgDGogBELdsIWM6LaRqLh/QgAQvQMgAkHQDGogBEKNlcfDltLawJd/QgAQvQMgAkHADGogBELH+vPD7YKjkDxCABC9AyACQbAMaiACKQPQDCIMIAIpA/ANIg0gCHwiCCAHIAlWrSACQegNaikDACAHIAtUrXx8fCIHIAIpA6ANfCIJIAUgBlStIAJBmA1qKQMAIAYgClStfHx8Igp8IgYgAkHIDGopAwAgAikDwAwiBCAFfCAEVK18fCIFQonHmaSu8IHph39+IgRCqcDGia7Ok7IwQgAQvQMgAkGgDGogBELdsIWM6LaRqLh/QgAQvQMgAkGQDGogBEKNlcfDltLawJd/QgAQvQMgAkGADGogBELH+vPD7YKjkDxCABC9AyADIAIpA5AMIgsgByAIVK0gAkH4DWopAwAgCCANVK18fCINIAIpA7ANfCIEIAkgClatIAJBqA1qKQMAIAcgCVatfHx8IgcgAikD4Ax8IgggBSAGVK0gAkHYDGopAwAgBiAMVK18fHwiCXwiBiACQYgMaikDACAFIAIpA4AMIgV8IAVUrXx8Igo3AAAgAyAEIAdWrSACQbgNaikDACAEIA1UrXx8IgwgAikD8Ax8IgQgCCAJVq0gAkHoDGopAwAgByAIVq18fHwiBSACKQOgDHwiByAGIApWrSACQZgMaikDACAGIAtUrXx8fCIGNwAIIAMgBCAFVq0gAkH4DGopAwAgBCAMVK18fCIIIAIpA7AMfCIEIAYgB1StIAJBqAxqKQMAIAUgB1atfHx8IgU3ABAgAyAEIAVWrSACQbgMaikDACAEIAhUrXx8NwAYIABBPGogA0EgQQgQ0gIgA0EgELkEQdm+wgAtAAAaIAEpA9gBIQggASkD0AEhByABKQPIASEGIAEpA8ABIQVBIEEBELAEIgNFDQAgAkHwC2ogBUKJx5mkrvCB6Yd/fiIEQqnAxomuzpOyMEIAEL0DIAJB4AtqIARC3bCFjOi2kai4f0IAEL0DIAJB0AtqIARCjZXHw5bS2sCXf0IAEL0DIAJBwAtqIARCx/rzw+2Co5A8QgAQvQMgAkGwC2ogAikD0AsiCSAGfCIGIAJByAtqKQMAIAIpA8ALIgQgBXwgBFStfHwiBUKJx5mkrvCB6Yd/fiIEQqnAxomuzpOyMEIAEL0DIAJBoAtqIARC3bCFjOi2kai4f0IAEL0DIAJBkAtqIARCjZXHw5bS2sCXf0IAEL0DIAJBgAtqIARCx/rzw+2Co5A8QgAQvQMgAkHwCmogAikDkAsiCiACKQPgCyILIAd8IgcgBSAGVK0gAkHYC2opAwAgBiAJVK18fHwiCXwiBiACQYgLaikDACACKQOACyIEIAV8IARUrXx8IgVCiceZpK7wgemHf34iBEKpwMaJrs6TsjBCABC9AyACQeAKaiAEQt2whYzotpGouH9CABC9AyACQdAKaiAEQo2Vx8OW0trAl39CABC9AyACQcAKaiAEQsf688PtgqOQPEIAEL0DIAJBsApqIAIpA9AKIgwgAikD8AsiDSAIfCIIIAcgCVatIAJB6AtqKQMAIAcgC1StfHx8IgcgAikDoAt8IgkgBSAGVK0gAkGYC2opAwAgBiAKVK18fHwiCnwiBiACQcgKaikDACACKQPACiIEIAV8IARUrXx8IgVCiceZpK7wgemHf34iBEKpwMaJrs6TsjBCABC9AyACQaAKaiAEQt2whYzotpGouH9CABC9AyACQZAKaiAEQo2Vx8OW0trAl39CABC9AyACQYAKaiAEQsf688PtgqOQPEIAEL0DIAMgAikDkAoiCyAHIAhUrSACQfgLaikDACAIIA1UrXx8Ig0gAikDsAt8IgQgCSAKVq0gAkGoC2opAwAgByAJVq18fHwiByACKQPgCnwiCCAFIAZUrSACQdgKaikDACAGIAxUrXx8fCIJfCIGIAJBiApqKQMAIAUgAikDgAoiBXwgBVStfHwiCjcAACADIAQgB1atIAJBuAtqKQMAIAQgDVStfHwiDCACKQPwCnwiBCAIIAlWrSACQegKaikDACAHIAhWrXx8fCIFIAIpA6AKfCIHIAYgClatIAJBmApqKQMAIAYgC1StfHx8IgY3AAggAyAEIAVWrSACQfgKaikDACAEIAxUrXx8IgggAikDsAp8IgQgBiAHVK0gAkGoCmopAwAgBSAHVq18fHwiBTcAECADIAQgBVatIAJBuApqKQMAIAQgCFStfHw3ABggAEHIAGogA0EgQQgQ0gIgA0EgELkEQdm+wgAtAAAaIAEpA/gBIQggASkD8AEhByABKQPoASEGIAEpA+ABIQVBIEEBELAEIgNFDQAgAkHwCWogBUKJx5mkrvCB6Yd/fiIEQqnAxomuzpOyMEIAEL0DIAJB4AlqIARC3bCFjOi2kai4f0IAEL0DIAJB0AlqIARCjZXHw5bS2sCXf0IAEL0DIAJBwAlqIARCx/rzw+2Co5A8QgAQvQMgAkGwCWogAikD0AkiCSAGfCIGIAJByAlqKQMAIAIpA8AJIgQgBXwgBFStfHwiBUKJx5mkrvCB6Yd/fiIEQqnAxomuzpOyMEIAEL0DIAJBoAlqIARC3bCFjOi2kai4f0IAEL0DIAJBkAlqIARCjZXHw5bS2sCXf0IAEL0DIAJBgAlqIARCx/rzw+2Co5A8QgAQvQMgAkHwCGogAikDkAkiCiACKQPgCSILIAd8IgcgBSAGVK0gAkHYCWopAwAgBiAJVK18fHwiCXwiBiACQYgJaikDACACKQOACSIEIAV8IARUrXx8IgVCiceZpK7wgemHf34iBEKpwMaJrs6TsjBCABC9AyACQeAIaiAEQt2whYzotpGouH9CABC9AyACQdAIaiAEQo2Vx8OW0trAl39CABC9AyACQcAIaiAEQsf688PtgqOQPEIAEL0DIAJBsAhqIAIpA9AIIgwgAikD8AkiDSAIfCIIIAcgCVatIAJB6AlqKQMAIAcgC1StfHx8IgcgAikDoAl8IgkgBSAGVK0gAkGYCWopAwAgBiAKVK18fHwiCnwiBiACQcgIaikDACACKQPACCIEIAV8IARUrXx8IgVCiceZpK7wgemHf34iBEKpwMaJrs6TsjBCABC9AyACQaAIaiAEQt2whYzotpGouH9CABC9AyACQZAIaiAEQo2Vx8OW0trAl39CABC9AyACQYAIaiAEQsf688PtgqOQPEIAEL0DIAMgAikDkAgiCyAHIAhUrSACQfgJaikDACAIIA1UrXx8Ig0gAikDsAl8IgQgCSAKVq0gAkGoCWopAwAgByAJVq18fHwiByACKQPgCHwiCCAFIAZUrSACQdgIaikDACAGIAxUrXx8fCIJfCIGIAJBiAhqKQMAIAUgAikDgAgiBXwgBVStfHwiCjcAACADIAQgB1atIAJBuAlqKQMAIAQgDVStfHwiDCACKQPwCHwiBCAIIAlWrSACQegIaikDACAHIAhWrXx8fCIFIAIpA6AIfCIHIAYgClatIAJBmAhqKQMAIAYgC1StfHx8IgY3AAggAyAEIAVWrSACQfgIaikDACAEIAxUrXx8IgggAikDsAh8IgQgBiAHVK0gAkGoCGopAwAgBSAHVq18fHwiBTcAECADIAQgBVatIAJBuAhqKQMAIAQgCFStfHw3ABggAEHUAGogA0EgQQgQ0gIgA0EgELkEQdm+wgAtAAAaIAEpA5gCIQggASkDkAIhByABKQOIAiEGIAEpA4ACIQVBIEEBELAEIgNFDQAgAkHwB2ogBUKJx5mkrvCB6Yd/fiIEQqnAxomuzpOyMEIAEL0DIAJB4AdqIARC3bCFjOi2kai4f0IAEL0DIAJB0AdqIARCjZXHw5bS2sCXf0IAEL0DIAJBwAdqIARCx/rzw+2Co5A8QgAQvQMgAkGwB2ogAikD0AciCSAGfCIGIAJByAdqKQMAIAIpA8AHIgQgBXwgBFStfHwiBUKJx5mkrvCB6Yd/fiIEQqnAxomuzpOyMEIAEL0DIAJBoAdqIARC3bCFjOi2kai4f0IAEL0DIAJBkAdqIARCjZXHw5bS2sCXf0IAEL0DIAJBgAdqIARCx/rzw+2Co5A8QgAQvQMgAkHwBmogAikDkAciCiACKQPgByILIAd8IgcgBSAGVK0gAkHYB2opAwAgBiAJVK18fHwiCXwiBiACQYgHaikDACACKQOAByIEIAV8IARUrXx8IgVCiceZpK7wgemHf34iBEKpwMaJrs6TsjBCABC9AyACQeAGaiAEQt2whYzotpGouH9CABC9AyACQdAGaiAEQo2Vx8OW0trAl39CABC9AyACQcAGaiAEQsf688PtgqOQPEIAEL0DIAJBsAZqIAIpA9AGIgwgAikD8AciDSAIfCIIIAcgCVatIAJB6AdqKQMAIAcgC1StfHx8IgcgAikDoAd8IgkgBSAGVK0gAkGYB2opAwAgBiAKVK18fHwiCnwiBiACQcgGaikDACACKQPABiIEIAV8IARUrXx8IgVCiceZpK7wgemHf34iBEKpwMaJrs6TsjBCABC9AyACQaAGaiAEQt2whYzotpGouH9CABC9AyACQZAGaiAEQo2Vx8OW0trAl39CABC9AyACQYAGaiAEQsf688PtgqOQPEIAEL0DIAMgAikDkAYiCyAHIAhUrSACQfgHaikDACAIIA1UrXx8Ig0gAikDsAd8IgQgCSAKVq0gAkGoB2opAwAgByAJVq18fHwiByACKQPgBnwiCCAFIAZUrSACQdgGaikDACAGIAxUrXx8fCIJfCIGIAJBiAZqKQMAIAUgAikDgAYiBXwgBVStfHwiCjcAACADIAQgB1atIAJBuAdqKQMAIAQgDVStfHwiDCACKQPwBnwiBCAIIAlWrSACQegGaikDACAHIAhWrXx8fCIFIAIpA6AGfCIHIAYgClatIAJBmAZqKQMAIAYgC1StfHx8IgY3AAggAyAEIAVWrSACQfgGaikDACAEIAxUrXx8IgggAikDsAZ8IgQgBiAHVK0gAkGoBmopAwAgBSAHVq18fHwiBTcAECADIAQgBVatIAJBuAZqKQMAIAQgCFStfHw3ABggAEHgAGogA0EgQQgQ0gIgA0EgELkEQdm+wgAtAAAaIAEpA7gCIQggASkDsAIhByABKQOoAiEGIAEpA6ACIQVBIEEBELAEIgNFDQAgAkHwBWogBUKJx5mkrvCB6Yd/fiIEQqnAxomuzpOyMEIAEL0DIAJB4AVqIARC3bCFjOi2kai4f0IAEL0DIAJB0AVqIARCjZXHw5bS2sCXf0IAEL0DIAJBwAVqIARCx/rzw+2Co5A8QgAQvQMgAkGwBWogAikD0AUiCSAGfCIGIAJByAVqKQMAIAIpA8AFIgQgBXwgBFStfHwiBUKJx5mkrvCB6Yd/fiIEQqnAxomuzpOyMEIAEL0DIAJBoAVqIARC3bCFjOi2kai4f0IAEL0DIAJBkAVqIARCjZXHw5bS2sCXf0IAEL0DIAJBgAVqIARCx/rzw+2Co5A8QgAQvQMgAkHwBGogAikDkAUiCiACKQPgBSILIAd8IgcgBSAGVK0gAkHYBWopAwAgBiAJVK18fHwiCXwiBiACQYgFaikDACACKQOABSIEIAV8IARUrXx8IgVCiceZpK7wgemHf34iBEKpwMaJrs6TsjBCABC9AyACQeAEaiAEQt2whYzotpGouH9CABC9AyACQdAEaiAEQo2Vx8OW0trAl39CABC9AyACQcAEaiAEQsf688PtgqOQPEIAEL0DIAJBsARqIAIpA9AEIgwgAikD8AUiDSAIfCIIIAcgCVatIAJB6AVqKQMAIAcgC1StfHx8IgcgAikDoAV8IgkgBSAGVK0gAkGYBWopAwAgBiAKVK18fHwiCnwiBiACQcgEaikDACACKQPABCIEIAV8IARUrXx8IgVCiceZpK7wgemHf34iBEKpwMaJrs6TsjBCABC9AyACQaAEaiAEQt2whYzotpGouH9CABC9AyACQZAEaiAEQo2Vx8OW0trAl39CABC9AyACQYAEaiAEQsf688PtgqOQPEIAEL0DIAMgAikDkAQiCyAHIAhUrSACQfgFaikDACAIIA1UrXx8Ig0gAikDsAV8IgQgCSAKVq0gAkGoBWopAwAgByAJVq18fHwiByACKQPgBHwiCCAFIAZUrSACQdgEaikDACAGIAxUrXx8fCIJfCIGIAJBiARqKQMAIAUgAikDgAQiBXwgBVStfHwiCjcAACADIAQgB1atIAJBuAVqKQMAIAQgDVStfHwiDCACKQPwBHwiBCAIIAlWrSACQegEaikDACAHIAhWrXx8fCIFIAIpA6AEfCIHIAYgClatIAJBmARqKQMAIAYgC1StfHx8IgY3AAggAyAEIAVWrSACQfgEaikDACAEIAxUrXx8IgggAikDsAR8IgQgBiAHVK0gAkGoBGopAwAgBSAHVq18fHwiBTcAECADIAQgBVatIAJBuARqKQMAIAQgCFStfHw3ABggAEHsAGogA0EgQQgQ0gIgA0EgELkEQdm+wgAtAAAaIAEpA9gCIQggASkD0AIhByABKQPIAiEGIAEpA8ACIQVBIEEBELAEIgNFDQAgAkHwA2ogBUKJx5mkrvCB6Yd/fiIEQqnAxomuzpOyMEIAEL0DIAJB4ANqIARC3bCFjOi2kai4f0IAEL0DIAJB0ANqIARCjZXHw5bS2sCXf0IAEL0DIAJBwANqIARCx/rzw+2Co5A8QgAQvQMgAkGwA2ogAikD0AMiCSAGfCIGIAJByANqKQMAIAIpA8ADIgQgBXwgBFStfHwiBUKJx5mkrvCB6Yd/fiIEQqnAxomuzpOyMEIAEL0DIAJBoANqIARC3bCFjOi2kai4f0IAEL0DIAJBkANqIARCjZXHw5bS2sCXf0IAEL0DIAJBgANqIARCx/rzw+2Co5A8QgAQvQMgAkHwAmogAikDkAMiCiACKQPgAyILIAd8IgcgBSAGVK0gAkHYA2opAwAgBiAJVK18fHwiCXwiBiACQYgDaikDACACKQOAAyIEIAV8IARUrXx8IgVCiceZpK7wgemHf34iBEKpwMaJrs6TsjBCABC9AyACQeACaiAEQt2whYzotpGouH9CABC9AyACQdACaiAEQo2Vx8OW0trAl39CABC9AyACQcACaiAEQsf688PtgqOQPEIAEL0DIAJBsAJqIAIpA9ACIgwgAikD8AMiDSAIfCIIIAcgCVatIAJB6ANqKQMAIAcgC1StfHx8IgcgAikDoAN8IgkgBSAGVK0gAkGYA2opAwAgBiAKVK18fHwiCnwiBiACQcgCaikDACACKQPAAiIEIAV8IARUrXx8IgVCiceZpK7wgemHf34iBEKpwMaJrs6TsjBCABC9AyACQaACaiAEQt2whYzotpGouH9CABC9AyACQZACaiAEQo2Vx8OW0trAl39CABC9AyACQYACaiAEQsf688PtgqOQPEIAEL0DIAMgAikDkAIiCyAHIAhUrSACQfgDaikDACAIIA1UrXx8Ig0gAikDsAN8IgQgCSAKVq0gAkGoA2opAwAgByAJVq18fHwiByACKQPgAnwiCCAFIAZUrSACQdgCaikDACAGIAxUrXx8fCIJfCIGIAJBiAJqKQMAIAUgAikDgAIiBXwgBVStfHwiCjcAACADIAQgB1atIAJBuANqKQMAIAQgDVStfHwiDCACKQPwAnwiBCAIIAlWrSACQegCaikDACAHIAhWrXx8fCIFIAIpA6ACfCIHIAYgClatIAJBmAJqKQMAIAYgC1StfHx8IgY3AAggAyAEIAVWrSACQfgCaikDACAEIAxUrXx8IgggAikDsAJ8IgQgBiAHVK0gAkGoAmopAwAgBSAHVq18fHwiBTcAECADIAQgBVatIAJBuAJqKQMAIAQgCFStfHw3ABggAEH4AGogA0EgQQgQ0gIgA0EgELkEQdm+wgAtAAAaIAEpA/gCIQggASkD8AIhByABKQPoAiEGIAEpA+ACIQVBIEEBELAEIgFFDQAgAkHwAWogBUKJx5mkrvCB6Yd/fiIEQqnAxomuzpOyMEIAEL0DIAJB4AFqIARC3bCFjOi2kai4f0IAEL0DIAJB0AFqIARCjZXHw5bS2sCXf0IAEL0DIAJBwAFqIARCx/rzw+2Co5A8QgAQvQMgAkGwAWogAikD0AEiCSAGfCIGIAJByAFqKQMAIAIpA8ABIgQgBXwgBFStfHwiBUKJx5mkrvCB6Yd/fiIEQqnAxomuzpOyMEIAEL0DIAJBoAFqIARC3bCFjOi2kai4f0IAEL0DIAJBkAFqIARCjZXHw5bS2sCXf0IAEL0DIAJBgAFqIARCx/rzw+2Co5A8QgAQvQMgAkHwAGogAikDkAEiCiACKQPgASILIAd8IgcgBSAGVK0gAkHYAWopAwAgBiAJVK18fHwiCXwiBiACQYgBaikDACACKQOAASIEIAV8IARUrXx8IgVCiceZpK7wgemHf34iBEKpwMaJrs6TsjBCABC9AyACQeAAaiAEQt2whYzotpGouH9CABC9AyACQdAAaiAEQo2Vx8OW0trAl39CABC9AyACQUBrIARCx/rzw+2Co5A8QgAQvQMgAkEwaiACKQNQIgwgAikD8AEiDSAIfCIIIAcgCVatIAJB6AFqKQMAIAcgC1StfHx8IgcgAikDoAF8IgkgBSAGVK0gAkGYAWopAwAgBiAKVK18fHwiCnwiBiACQcgAaikDACACKQNAIgQgBXwgBFStfHwiBUKJx5mkrvCB6Yd/fiIEQqnAxomuzpOyMEIAEL0DIAJBIGogBELdsIWM6LaRqLh/QgAQvQMgAkEQaiAEQo2Vx8OW0trAl39CABC9AyACIARCx/rzw+2Co5A8QgAQvQMgASACKQMQIgsgByAIVK0gAkH4AWopAwAgCCANVK18fCINIAIpA7ABfCIEIAkgClatIAJBqAFqKQMAIAcgCVatfHx8IgcgAikDYHwiCCAFIAZUrSACQdgAaikDACAGIAxUrXx8fCIJfCIGIAJBCGopAwAgBSACKQMAIgV8IAVUrXx8Igo3AAAgASAEIAdWrSACQbgBaikDACAEIA1UrXx8IgwgAikDcHwiBCAIIAlWrSACQegAaikDACAHIAhWrXx8fCIFIAIpAyB8IgcgBiAKVq0gAkEYaikDACAGIAtUrXx8fCIGNwAIIAEgBCAFVq0gAkH4AGopAwAgBCAMVK18fCIIIAIpAzB8IgQgBiAHVK0gAkEoaikDACAFIAdWrXx8fCIFNwAQIAEgBCAFVq0gAkE4aikDACAEIAhUrXx8NwAYIABBhAFqIAFBIEEIENICIAFBIBC5BCACQYAYaiQADwsLQQFBIBCoBAAL7loCGX8CfiMAQfACayIGJAACQAJAAkACQANAAkACQCADBH8gAigCAEUNASADBUEACyEKIAIhCwwBCyADQQJ0QQRrIQdBACEJA0AgB0UNBSAAQQRqIQAgB0EEayEHIAlBAWohCSACQQRqIQsgCyICKAIARQ0ACyABIAlBAWtLBEAgASAJayEBIAMgCWshCgwBCyAJIAFBkN/BABDVAwALAkACQAJAIAVFBEBBACEFDAELIAQoAgBFDQELIAQhCAwBC0EAIQcgBUECdEEEayICRQ0EA0ACQCAAQQRqIQAgAkEEayECIAdBAWohByAEQQRqIgggCCEEKAIADQAgAg0BDAYLCyABIAdBAWtLBEAgASAHayEBIAUgB2shBQwBCyAHIAFBoN/BABDVAwALIAogBSAFIApJGyEOIAggCyAFIApLIgMbIREgCyAIIAMbIQICQCAKIAUgAxsiA0EhTwRAIANBAXQgDk0NASADQYECSQ0DIAYgAiADIA5BA24iDEEBaiILIAMgC0kbIgQQ7QIgAyADIARrIgUgCyAFIAtJGyIHIARqIgVPDQQgBSADQbDfwQAQ1wMACyADRQ0EIAIgA0ECdGohDCABQQJ0IQMgDkF+cSEQIA5BAXEhDyAFIAogBSAKSxtBAnRBBGohCEEAIQUgACELAkACQAJAA0AgASAFTwRAAkAgAigCACIERQ0AIA4gASAFayIKSw0DIAAgBUECdGohDSAOBH8gBK0hIEEAIQlCACEfIA5BAUcEQCARIQcgCyEEA0AgBCAfIAQ1AgB8IAc1AgAgIH58Ih8+AgAgBEEEaiISIBI1AgAgH0IgiHwgB0EEajUCACAgfnwiHz4CACAfQiCIIR8gB0EIaiEHIARBCGohBCAQIAlBAmoiCUcNAAsLIA8EfiANIAlBAnQiBGoiByAfIAc1AgB8IAQgEWo1AgAgIH58Ih8+AgAgH0IgiAUgHwunBUEACyEEIAogDkYNBCANIA5BAnRqIgcgBygCACIHIARqIg02AgAgCCEEIAcgDU0NAANAIAMgBEYNBiAEIAtqIgcgBygCAEEBaiIHNgIAIARBBGohBCAHRQ0ACwsgBUEBaiEFIANBBGshAyALQQRqIQsgDCACQQRqIgJHDQEMCQsLIAUgAUHA4MEAENUDAAsgBkEANgLoAiAGQQE2AtwCIAZBzNzBADYC2AIgBkIENwLgAiAGQdgCakG83sEAEIYEAAsgBkEANgLoAiAGQQE2AtwCIAZBzNzBADYC2AIgBkIENwLgAiAGQdgCakG83cEAEIYEAAsgBkEBNgKoAiAGQgA3AuQCIAZCgYCAgMAANwLcAiAGQfTewQA2AtgCIwBBEGsiACQAIABB/N7BADYCDCAAIAZBqAJqNgIIIABBCGpBhIvCACAAQQxqQYSLwgAgBkHYAmpBgN/BABDmAgALIAAgASACIAMgESAOQQF2IgQQFSABIARPBEAgASAEayEBIA4gBGshBSAAIARBAnQiBGohACAEIBFqIQQMAQsLIAQgAUGw4MEAENUDAAsgA0EBdiIPIA5NBEACQAJAIA4gD2siGiADIA9rIhtqIhRBAWoiDEUEQEEEIQkMAQsgDEECdCEEIAxB/////wFLBEBBACEHDAILQQQhByAEQQQQsQQiCUUNAQsgBiAMNgKwAiAGIAk2AqwCIAYgDDYCqAIgCSAMIAIgD0ECdCIEaiIcIBsgBCARaiIdIBoQFQJAAkACQAJAAn9BACAMRQ0AGiAMIAkgFEECdGooAgANABogBSAKIAUgCkkbIAUgCiAFIApLG2oiBCAPQQF0a0ECaiEHIARBAnQgD0EDdGshBAJAA0AgBEF8RgRAQQAhBwwCCyAHQQFrIQcgBCAJaiAEQQRrIQQoAgBFDQALIAwgByAMSw0BGgsgBiAHNgKwAiAMQQJ2IAdLBEAgDEECdCEEAkAgB0UEQCAJIAQQuQRBBCEJDAELIAkgBEEEIAdBAnQiBBCpBCIJRQ0DCyAGIAc2AqgCIAYgCTYCrAILIAcLIRAgASAPSQ0BIBAgASAPayIVSw0IIAAgD0ECdGohDSAQRQ0DIBBBAXEhEyAQQQFGBEBBACEIQQAhCwwDCyAQQX5xIRZBACEIIAkhByANIQRBACELA0AgBCAIIAQoAgAiFyAHKAIAaiIIaiIYNgIAIARBBGoiEiASKAIAIhkgB0EEaigCAGoiEiAIIBdJIAggGEtyaiIINgIAIAggEkkgEiAZSXIhCCAHQQhqIQcgBEEIaiEEIBYgC0ECaiILRw0ACwwCC0EEIAQQqAQACyAPIAFBkODBABDVAwALIBMEfyANIAtBAnQiBGoiByAHKAIAIgcgBCAJaigCAGoiBCAIaiIINgIAIAQgB0kgBCAIS3IFIAgLQQFxRQ0AIA0gEEECdCIHaiEEIAFBAnQgB2sgD0ECdGshBwNAIAdFDQEgBCAEKAIAQQFqIgg2AgAgB0EEayEHIARBBGohBCAIRQ0ACwsCQAJAIANB/gNxIgQgAU0EQCAGKAKwAiISIAEgBGtLDQcgEkUNAiAAIARBAnRqIQkgBigCrAIhECASQQFxIRYgEkEBRgRAQQAhCEEAIQsMAgsgEkF+cSEXQQAhCCAQIQcgCSEEQQAhCwNAIAQgCCAEKAIAIhggBygCAGoiCGoiGTYCACAEQQRqIhMgEygCACIeIAdBBGooAgBqIhMgCCAYSSAIIBlLcmoiCDYCACAIIBNJIBMgHklyIQggB0EIaiEHIARBCGohBCAXIAtBAmoiC0cNAAsMAQsgBCABQaDgwQAQ1QMACyAWBH8gCSALQQJ0IgRqIgcgBygCACIHIAQgEGooAgBqIgQgCGoiCDYCACAEIAdJIAQgCEtyBSAIC0EBcUUNACAJIBJBAnQiB2ohBCAHIAFBAnRrIA9B/wFxQQN0aiEHA0AgB0UNASAEIAQoAgBBAWoiCDYCACAHQQRqIQcgBEEEaiEEIAhFDQALC0EAIQkgBkEANgKwAgJAIAxFBEBBACEKIAYoAqwCIgdBACACIA8gESAPEBUMAQsgDCAGKAKoAksEQCAGQagCakEAIAwQmAMgBigCsAIhCQsgBigCrAIiByAJQQJ0aiEEIAxBAUcEQCAEQQAgBSAKaiADQf4DcWtBAnQQ0QQaIAcgAyAJaiAOakECdCAPQQN0a2ohBCAJIBRqIQkLQQAhCiAEQQA2AgAgBiAJQQFqIgM2ArACIAcgAyACIA8gESAPEBUgA0UNAAJAIAcgCUECdCIEaigCAA0AIAlBAmohCgNAIARBfEYEQEEAIQogBkEANgKwAgwDCyAKQQFrIQogBCAHaiAEQQRrIQQoAgBFDQALIAMgCkkNACAGIAo2ArACDAELIAMhCgsCQAJAAkACQCAGKAKoAiIDQQJ2IApNBEAgByEDDAELIANBAnQhBAJAIApFBEBBBCEDIAcgBBC5BAwBCyAHIARBBCAKQQJ0IgQQqQQiA0UNAgsgBiAKNgKoAiAGIAM2AqwCCyABIApJDQcgCkUNAiAKQQFxIQkgCkEBRgRAQQAhCEEAIQsMAgsgCkF+cSEQQQAhCCADIQcgACEEQQAhCwNAIAQgBCgCACIOIAcoAgBqIgUgCGoiEjYCACAEQQRqIgggCCgCACIUIAdBBGooAgBqIgggBSAOSSAFIBJLcmoiBTYCACAFIAhJIAggFElyIQggB0EIaiEHIARBCGohBCAQIAtBAmoiC0cNAAsMAQtBBCAEEKgEAAsgCQR/IAAgC0ECdCIEaiIFIAUoAgAiBSADIARqKAIAaiIDIAhqIgQ2AgAgAyAFSSADIARLcgUgCAtBAXFFDQAgACAKQQJ0IgNqIQQgAUECdCADayEAA0AgAEUNASAEIAQoAgBBAWoiAzYCACAAQQRrIQAgBEEEaiEEIANFDQALCwJAAkAgFSAGKAKwAiIFTwRAIAVFDQIgBigCrAIhAyAFQQFxIQogBUEBRgRAQQAhCUEAIQgMAgsgBUF+cSEQQQAhCSADIQAgDSEEQQAhCANAIAQgCSAEKAIAIg4gACgCAGoiB2oiCTYCACAEQQRqIgsgCygCACISIABBBGooAgBqIgsgByAOSSAHIAlLcmoiBzYCACAHIAtJIAsgEklyIQkgAEEIaiEAIARBCGohBCAQIAhBAmoiCEcNAAsMAQsMBgsgCgR/IA0gCEECdCIAaiIEIAQoAgAiBCAAIANqKAIAaiIAIAlqIgM2AgAgACAESSAAIANLcgUgCQtBAXFFDQAgDSAFQQJ0IgBqIQQgAUECdCAAayAPQQJ0ayEAA0AgAEUNASAEIAQoAgBBAWoiATYCACAAQQRrIQAgBEEEaiEEIAFFDQALCyAGQdgCaiIBIBwgGyACIA8QiAEgBigC5AIhCCAGKALgAiEFIAYoAtwCIQsgBi0A2AIhACABIB0gGiARIA8QiAEgBigC4AIhByAGKALcAiEKAkAgAEEBRg0AIAYoAuQCIQkCQAJAAkACQCAGLQDYAkEBaw4CBAABCyAARQ0BDAILIABFDQELIA0gFSAFIAggByAJEBUMAQsgBkEANgKwAiAGQagCaiICIAIoAggiACAMSQR/IAwgACIBayIEIAIoAgAgAWtLBEAgAiABIAQQmAMgAigCCCEBCyACKAIEIAFBAnRqIQMgBEECTwRAIABBf3MgDGoiDEEHcSEAIARBAmtBB08EQCAMQXhxIQwDQCADQQA2AgAgA0EcakEANgIAIANBGGpBADYCACADQRRqQQA2AgAgA0EQakEANgIAIANBDGpBADYCACADQQhqQQA2AgAgA0EEakEANgIAIANBIGohAyAMQQhrIgwNAAsLIAAEQANAIANBADYCACADQQRqIQMgAEEBayIADQALCyABIARqQQFrIQELIANBADYCACABQQFqBSAMCzYCCCAGKAKsAiAGKAKwAiAFIAggByAJEBUCQAJAAkACQAJAIAIoAggiAARAIABBAnQiASACKAIEIgNqQQRrKAIARQ0BDAILIAIoAgAiAEEESQ0EIABBAnQhASACKAIEIQMMAgsgA0EEayEEIAAhAwJAA0AgAUUEQEEAIQEMAgsgA0EBayEDIAEgBGogAUEEayEBKAIARQ0ACyAAIANBAWoiAUkNAQsgAiABNgIIIAEhAAsgACACKAIAIgFBAnZPDQIgAUECdCEBIAIoAgQhAyAARQ0AIAMgAUEEIABBAnQiARCpBCIEDQFBBCABEKgEAAtBBCEEIAMgARC5BEEAIQALIAIgADYCACACIAQ2AgQLIA0gFSAGKAKsAiAGKAKwAhDFAgsgCgRAIAcgCkECdBC5BAsgCwRAIAUgC0ECdBC5BAsgBigCqAIiAEUNAyAGKAKsAiAAQQJ0ELkEDAMLIAcgBBCoBAALIAZBADYC6AIgBkEBNgLcAiAGQczcwQA2AtgCIAZCBDcC4AIgBkHYAmpBgODBABCGBAALIAZBEGoiCCACIARBAnRqIAcQ7QIgBkEgaiIEIAIgBUECdGogAyAFaxDtAgJAAkACQCAMIA5JBEAgBkEwaiIDIBEgCxDtAiAOIA4gC2siAiALIAIgC0kbIgUgC2oiAkkNASAGQUBrIgcgESALQQJ0aiAFEO0CIAZB0ABqIgUgESACQQJ0aiAOIAJrEO0CIAZB4ABqIgIgBiAEEK8BIAZB8ABqIgQgAyAFEK8BIAZBgAFqIAIgCBCpASAGQZABaiAEIAcQqQFBASEEQQEhAiAGLQAMIgNBAUYNAwJAAkACQCAGLQA8IgJBAWsOAgYBAAsgAw0BDAQLIAMNAwtBACEEQQAhAgwDCyALIA5BwN/BABDXAwALIAIgDkHQ38EAENcDAAtBAiECQQAhBAsCQAJAIAYoAggiAwRAIAYoAjgiBQ0BCyAGQeACakHY4MEAKAIANgIAIAZB0ODBACkCADcD2AIMAQsgBigCNCEHIAVBAUYEQCAHKAIAIQMgBkHYAmogBhDPAyAGQbACaiIFIAZB4AJqIgcoAgA2AgAgBiAGKQLYAjcDqAIgBkGoAmogAxC0AiAHIAUoAgA2AgAgBiAGKQOoAjcD2AIMAQsgBigCBCEIIANBAUYEQCAIKAIAIQMgBkHYAmogBkEwahDPAyAGQbACaiIFIAZB4AJqIgcoAgA2AgAgBiAGKQLYAjcDqAIgBkGoAmogAxC0AiAHIAUoAgA2AgAgBiAGKQOoAjcD2AIMAQsgBkHYAmogCCADIAcgBRD2AgsCQCAEBEAgBkEANgLgAkEBIQQgBigC2AJBBEkNASAGQdgCahDRAwwBCyACQQEgBigC4AIbIQQLIAZBqAFqIAZB4AJqKAIANgIAIAYgBikD2AI3A6ABIAYgBDoArAFBASEEQQEhAgJAIAYtACwiA0EBRg0AAkACQAJAAkAgBi0AXCICQQFrDgIEAQALIAMNAQwCCyADDQELQQAhBEEAIQIMAQtBAiECQQAhBAsCQAJAIAYoAigiAwRAIAYoAlgiBQ0BCyAGQeACakHY4MEAKAIANgIAIAZB0ODBACkCADcD2AIMAQsgBigCVCEHIAVBAUYEQCAHKAIAIQMgBkHYAmogBkEgahDPAyAGQbACaiIFIAZB4AJqIgcoAgA2AgAgBiAGKQLYAjcDqAIgBkGoAmogAxC0AiAHIAUoAgA2AgAgBiAGKQOoAjcD2AIMAQsgBigCJCEIIANBAUYEQCAIKAIAIQMgBkHYAmogBkHQAGoQzwMgBkGwAmoiBSAGQeACaiIHKAIANgIAIAYgBikC2AI3A6gCIAZBqAJqIAMQtAIgByAFKAIANgIAIAYgBikDqAI3A9gCDAELIAZB2AJqIAggAyAHIAUQ9gILAkAgBARAIAZBADYC4AJBASECIAYoAtgCQQRJDQEgBkHYAmoQ0QMMAQsgAkEBIAYoAuACGyECCyAGQbgBaiAGQeACaiIDKAIANgIAIAYgBikD2AI3A7ABIAYgAjoAvAEgBkGwAmoiAiAGQegAaikCADcDACAGIAYpAmA3A6gCIAMgBkEYaikCADcDACAGIAYpAhA3A9gCIAZBgAJqIAZBqAJqIgQgBkHYAmoiBRDRASACIAZB+ABqKQIANwMAIAYgBikCcDcDqAIgAyAGQcgAaikCADcDACAGIAYpAkA3A9gCIAZBkAJqIAQgBRDRASAGQfgBaiAGQZgCaigCADYCACAGQdACaiAGQYgCaigCADYCACAGIAYpApACNwPwASAGIAYpAoACNwPIAgJAAkAgBi0AjAIiAkEBRg0AAn8CQAJAAkAgBi0AnAJBAWsOAgQBAAsgAg0BQQIMAgtBAiACDQEaC0EACyAGQagCaiAGQYACaiAGQZACahD/AkEBIAYoArACGyEEDAELIAYoAvQBIQICQAJAAkAgBigC0AIiAwRAIAYoAvgBIgQNAQsgBkGwAmpB2ODBACgCADYCACAGQdDgwQApAgA3A6gCDAELIARBAUYEQCACKAIAIQIgBkHgAmoiAyAGQYgCaigCADYCACAGIAYpAoACNwPYAiAGQdgCaiACELQCIAZBsAJqIAMoAgA2AgAgBiAGKQPYAjcDqAIgBkHwAWohBAwCCyAGKALMAiEFIANBAUYEQCAFKAIAIQIgBkHgAmoiAyAGQZgCaigCADYCACAGIAYpApACNwPYAiAGQdgCaiACELQCIAZBsAJqIAMoAgA2AgAgBiAGKQPYAjcDqAIgBkHIAmohBAwCCyAGQagCaiAFIAMgAiAEEPYCCyAGQcgCaiEEIAYoAvABIgNFDQAgAiADQQJ0ELkECyAEKAIAIgIEQCAEKAIEIAJBAnQQuQQLIAZBADYCsAJBASEEIAYoAqgCQQRJDQAgBkGoAmoQ0QMLIAZByAFqIAZBsAJqKAIANgIAIAYgBikDqAI3A8ABIAYgBDoAzAFBASEEQQEhAgJAIAYtAIwBIgNBAUYNAAJAAkACQAJAIAYtAJwBIgJBAWsOAgQBAAsgAw0BDAILIAMNAQtBACEEQQAhAgwBC0ECIQJBACEECwJAAkAgBigCiAEiAwRAIAYoApgBIgUNAQsgBkHgAmpB2ODBACgCADYCACAGQdDgwQApAgA3A9gCDAELIAYoApQBIQcgBUEBRgRAIAcoAgAhAyAGQdgCaiAGQYABahDPAyAGQbACaiIFIAZB4AJqIgcoAgA2AgAgBiAGKQLYAjcDqAIgBkGoAmogAxC0AiAHIAUoAgA2AgAgBiAGKQOoAjcD2AIMAQsgBigChAEhCCADQQFGBEAgCCgCACEDIAZB2AJqIAZBkAFqEM8DIAZBsAJqIgUgBkHgAmoiBygCADYCACAGIAYpAtgCNwOoAiAGQagCaiADELQCIAcgBSgCADYCACAGIAYpA6gCNwPYAgwBCyAGQdgCaiAIIAMgByAFEPYCCwJAIAQEQCAGQQA2AuACQQEhBCAGKALYAkEESQ0BIAZB2AJqENEDDAELIAJBASAGKALgAhshBAsgBkHYAWogBkHgAmoiAigCADYCACAGIAYpA9gCNwPQASAGIAQ6ANwBIAIgBkEoaikCADcDACAGIAYpAiA3A9gCIAZBqAJqIAZBgAFqIAZB2AJqENEBIAYtALQCIQMgBigCrAIhAiAGKAKwAiEFAkACQAJAAkACfwJAAkAgBigCqAIiBEGAgICAeEYEQCACKAIIRQ0BDAILIAUNAUEADAILQQEhCUEEIQgMAgsgBiAFNgLgAiAGIAI2AtwCIAYgBDYC2AIgBkGQAmogBkHYAmpBAEEBEIwBIAYoApQCIQIgBigCkAIhBCAGKAKYAgshB0EBIQkgA0EBRw0BQQQhCEEAIQcgBEEESQ0CIAIgBEECdBC5BAtBACEHQQAhBAwCCyADQQEgBxshCQsgAiEICyAGIAk6AJwCIAYgBzYCmAIgBiAINgKUAiAGIAQ2ApACIAZB4AJqIgIgBkEIaikCADcDACAGIAYpAgA3A9gCIAZBgAJqIAZBkAJqIAZB2AJqIgMQtQEgAiAGQdgAaikCADcDACAGIAYpAlA3A9gCIAZBqAJqIAZBkAFqIAMQ0QEgBi0AtAIhAyAGKAKsAiECIAYoArACIQUCQAJAAkACQAJ/AkACQCAGKAKoAiIEQYCAgIB4RgRAIAIoAghFDQEMAgsgBQ0BQQAMAgtBASEJQQQhCAwCCyAGIAU2AuACIAYgAjYC3AIgBiAENgLYAiAGQZACaiAGQdgCakEAQQEQjAEgBigClAIhAiAGKAKQAiEEIAYoApgCCyEHQQEhCSADQQFHDQFBBCEIQQAhByAEQQRJDQIgAiAEQQJ0ELkEC0EAIQdBACEEDAILIANBASAHGyEJCyACIQgLIAYgCToAnAIgBiAHNgKYAiAGIAg2ApQCIAYgBDYCkAIgBkHgAmogBkE4aikCADcDACAGIAYpAjA3A9gCIAZBqAJqIAZBkAJqIAZB2AJqELUBIAZB+AFqIAZBsAJqKAIANgIAIAZB0AJqIAZBiAJqKAIANgIAIAYgBikCqAI3A/ABIAYgBikCgAI3A8gCAkACQCAGLQCMAiICQQFGDQACfwJAAkACQCAGLQC0AkEBaw4CBAEACyACDQFBAgwCC0ECIAINARoLQQALIAZBkAJqIAZBgAJqIAZBqAJqEP8CQQEgBigCmAIbIQQMAQsgBigC9AEhAgJAAkACQCAGKALQAiIDBEAgBigC+AEiBA0BCyAGQZgCakHY4MEAKAIANgIAIAZB0ODBACkCADcDkAIMAQsgBEEBRgRAIAIoAgAhAiAGQeACaiIDIAZBiAJqKAIANgIAIAYgBikCgAI3A9gCIAZB2AJqIAIQtAIgBkGYAmogAygCADYCACAGIAYpA9gCNwOQAiAGQfABaiEEDAILIAYoAswCIQUgA0EBRgRAIAUoAgAhAiAGQeACaiIDIAZBsAJqKAIANgIAIAYgBikCqAI3A9gCIAZB2AJqIAIQtAIgBkGYAmogAygCADYCACAGIAYpA9gCNwOQAiAGQcgCaiEEDAILIAZBkAJqIAUgAyACIAQQ9gILIAZByAJqIQQgBigC8AEiA0UNACACIANBAnQQuQQLIAQoAgAiAgRAIAQoAgQgAkECdBC5BAsgBkEANgKYAkEBIQQgBigCkAJBBEkNACAGQZACahDRAwsgBkHoAWogBkGYAmooAgA2AgAgBiAGKQOQAjcD4AEgBiAEOgDsASAGQdgCaiAGQeABaiAGQcABahDMASAGLQDkAiEIIAYoAtwCIQUgBigC2AIhBwJAAkAgBigC4AIiA0UNACAFQQRrIQ0gA0ECdCEEQQAhAgNAIAQgDWoiCiACQRB0IAooAgAiAkEQdnIiCiAKQQNuIgpBA2xrQRB0IAJB//8DcXIiAkEDbiIJIApBEHRyNgIAIAIgCUEDbGshAiAEQQRrIgQNAAsgA0ECdCIEIAVqQQRrKAIADQEgBUEEayENIAMhAgNAIARFDQEgAkEBayECIAQgDWogBEEEayEEKAIARQ0ACyADIAJBAWoiAiACIANLGyEDDAELQQAhAwsCQAJAAkAgAyAHQQJ2Tw0AIAdBAnQhAiADBEAgBSACQQQgAyIHQQJ0IgIQqQQiBQ0BQQQgAhCoBAALIAUgAhC5BCAGIAM2ArACIAZCgICAgMAANwKoAkEBIQQgCEEBRw0BIAZBADYCsAIMAgsgBiADNgKwAiAGIAU2AqwCIAYgBzYCqAJBASEEIAhBAUcNACAGQQA2ArACIAdBBEkNASAGQagCahDRAwwBCyAIQQEgAxshBAsgBkH4AWoiAiAGQbACaigCADYCACAGIAYpAqgCNwPwASAGIAQ6APwBIAZB4AJqIgMgBkHIAWopAwA3AwAgBiAGKQPAATcD2AIgBkGoAmoiBCAGQdgCaiIFIAZB0AFqEMwBIAZBgAJqIAQQhgIgAyAGQdgBaikDADcDACAGIAYpA9ABNwPYAiAGQZACaiAFIAZBoAFqEMwBIAYtAJwCIQggBigC9AEhDSAGKALwASEKAkACQAJAIAYtAPwBIgRBAUYEQCAGKAKUAiEEAkAgBigCmAIiA0UEQEEEIQVBACECDAELIANBAnQhAiADQf////8BSwRAQQAhBwwFC0HZvsIALQAAGkEEIQcgAkEEELAEIgVFDQQLIAUgBCACEM8EIQIgBiAIOgDkAiAGIAM2AuACIAYgAjYC3AIgBiADNgLYAgwBCyACKAIAIQUCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgCEEBaw4CAAIBCyAGQf0BaiECIAZB4AJqIAZB+AFqKAIANgIAIAYgBikD8AE3A9gCIAZB5QJqIQMgBARAIAMgAi8AADsAACADQQJqIAJBAmotAAA6AAAgBkEAOgDkAgwQCyADIAIvAAA7AAAgBkECOgDkAiADQQJqIAJBAmotAAA6AAAMDwsgBEUNAQwCCyAERQ0BCwJAQX8gBigCmAIiAiAFRyACIAVJGyIDDQAgAkECdCEEIAYoApQCQQRrIQcgDUEEayEJIAVBAnQhAgNAIAQEQCACRQ0GIAQgB2ohAyACIAlqIREgBEEEayEEIAJBBGshAkF/IBEoAgAiESADKAIAIgNHIAMgEUkbIgNFDQEMAgsLQX9BACACGyEDCyADQf8BcQ4CAgMBCyAGQbACaiAGQfgBaigCADYCACAGIAYpA/ABNwOoAiAGQcgCaiAGQagCaiAGQZACahDSASAGQeACaiAGQdACaigCACICNgIAIAYgBikCyAI3A9gCIAYgCEEBIAIbOgDkAgwLC0ECIQQgCEEBaw4CAgMECyAGQeACakG43MEAKQIANwMAIAZBsNzBACkCADcD2AIMCAsgBiAFNgLgAiAGIA02AtwCIAYgCjYC2AIgBkGoAmoiAiAGQZACaiAGQdgCahCqASAIQQFGBEBBACEHIAZBADYCsAIgAhDrAyAGKAKwAiIDRQ0GIANBAnQiBCAGKAKsAiICakEEaygCAARAIAMhBwwHCyACQQRrIQUgAyECAkADQCAERQRAQQAhBAwCCyACQQFrIQIgBCAFaiAEQQRrIQQoAgBFDQALIAJBAWoiBCADIgdLDQcLIAYgBDYCsAIgBCEHDAYLIAhBASAGKAKwAhshBAwGCyAGIAU2AuACIAYgDTYC3AIgBiAKNgLYAiAGQagCaiICIAZB2AJqIAZBkAJqEIACQQAhByAGQQA2ArACIAIQ6wMgBigCsAIiA0UNAiADQQJ0IgQgBigCrAIiAmpBBGsoAgAEQCADIQcMAwsgAkEEayEFIAMhAgJAA0AgBEUEQEEAIQQMAgsgAkEBayECIAQgBWogBEEEayEEKAIARQ0ACyACQQFqIgQgAyIHSw0DCyAGIAQ2ArACIAQhBwwCC0EAIQQLIAYgBTYC4AIgBiANNgLcAiAGIAo2AtgCIAZBqAJqIAZB2AJqIAZBkAJqEIACIARBASAGKAKwAhshBAwBC0EBIQQgByAGKAKoAkECdk8NACAGQagCahDRAwsgBkHgAmogBkGwAmooAgA2AgAgBiAGKQKoAjcD2AIgBiAEOgDkAgwDC0EBIQQgByAGKAKoAkECdk8NACAGQagCahDRAwsgBkHgAmogBkGwAmooAgA2AgAgBiAGKQKoAjcD2AIgBiAEOgDkAgwBCyAKRQ0AIA0gCkECdBC5BAsgBkGoAmogBkHYAmoiAhCGAiAGLQC8ASEDAkAgBigCuAFFBEAgBkGAgICAeDYC2AIgBiAGQbABajYC3AIgBkHIAmogAhCuAwwBCyAGQYCAgIB4NgLYAiAGIAZBsAFqNgLcAiAGQcgCaiAGQdgCakEAQQEQjAELQQEhAgJAIANBAUYEQCAGQQA2AtACIAYoAsgCQQRJDQEgBkHIAmoQ0QMMAQsgA0EBIAYoAtACGyECCyAGQeACaiAGQdACaigCADYCACAGIAYpAsgCNwPYAiAGIAI6AOQCIAZB8AFqIAZBqAJqIgIgBkHYAmoQ0QEgAiAGQYACaiAGQbABahCpASAGQZgCaiICKAIAIQMgBkGfAmotAAAhBCAGLQCcAiENIAYvAJ0CIQcgAkG43MEAKQIANwMAIAZBpgJqIgIgBDoAACAGKAKQAiEFIAYoApQCIQggBkGw3MEAKQIANwOQAiAGIAc7AaQCAkAgBi0AtAIiCkEBRgRAIAZB5wJqIAItAAA6AAAgBiANOgDkAiAGIAM2AuACIAYgCDYC3AIgBiAFNgLYAiAGIAYvAaQCOwDlAgwBCwJAAkACQAJAAkACQAJAAkACQCANQQFrDgIDAAELIApFDQEMBwsgCkUNBgsCQEF/IAMgBigCsAIiAkcgAiADSxsiBw0AIANBAnQhBCAIQQRrIQkgBigCrAJBBGshESACQQJ0IQIDQCAEBEAgAkUNBiAEIAlqIQcgAiARaiEQIARBBGshBCACQQRrIQJBfyAQKAIAIhAgBygCACIHRyAHIBBJGyIHRQ0BDAILC0F/QQAgAhshBwsgB0H/AXEOAgIDAQsgBkHYAmogBkGoAmoQzwMgBiAKOgDkAgwDCyAGIAM2AtACIAYgCDYCzAIgBiAFNgLIAiAGQbwCaiAGQagCaiAGQcgCahCqASAGQeACaiAGQcQCaigCACICNgIAIAYgBikCvAI3A9gCIAYgCkEBIAIbOgDkAgwECyAGQeACakG43MEAKQIANwMAIAZBsNzBACkCADcD2AIMAQsgBiADNgLgAiAGIAg2AtwCIAYgBTYC2AIgBkHIAmoiAiAGQdgCaiAGQagCahCAAgJAAkAgDUEBRgRAQQAhByAGQQA2AtACIAIQ6wMgBigC0AIiA0UNASADQQJ0IgQgBigCzAIiAmpBBGsoAgAEQCADIQcMAgsgAkEEayEFIAMhAgJAA0AgBEUEQEEAIQQMAgsgAkEBayECIAQgBWogBEEEayEEKAIARQ0ACyACQQFqIgQgAyIHSw0CCyAGIAQ2AtACIAQhBwwBCyANQQEgBigC0AIbIQQMAQtBASEEIAcgBigCyAJBAnZPDQAgBkHIAmoQ0QMLIAZB4AJqIAZB0AJqKAIANgIAIAYgBikCyAI3A9gCIAYgBDoA5AIMAgsgBUUNASAIIAVBAnQQuQQMAQsgBiADNgLQAiAGIAg2AswCIAYgBTYCyAIgBkG8AmogBkHIAmogBkGoAmoQ0gEgBkHgAmogBkHEAmooAgAiAjYCACAGIAYpArwCNwPYAiAGIA1BASACGzoA5AILIAYoApACIgIEQCAGKAKUAiACQQJ0ELkECyAGQZgCaiAGQeACaikDADcDACAGIAYpA9gCNwOQAiAGKAKoAiICBEAgBigCrAIgAkECdBC5BAsgBkGIAmoiAikDACEfIAJBuNzBACkCADcDACAGQbACaiAfNwMAIAYpA4ACIR8gBkGw3MEAKQIANwOAAiAGIB83A6gCIAZB2AJqIAZBqAJqIAZB8AFqEMwBIAYoAoACIgIEQCAGKAKEAiACQQJ0ELkECyAGQYgCaiAGQeACaikCADcDACAGIAYpAtgCNwOAAgJAAkACQAJAAkACQAJAAkACQCAGLQC8AUEBaw4CAgEACyABIAtBAnQiBEkNBSAAIARBAnRqIAEgBGsgBigCtAEgBigCuAEQxQIMAQsgASALQQJ0IgRJDQEgACAEQQJ0aiABIARrIAYoArQBIAYoArgBENoCCwJAAkACQCAGLQD8AUEBaw4CAgABCyABIAtBA2wiBEkNAiAAIARBAnRqIAEgBGsgBigC9AEgBigC+AEQ2gIMAQsgASALQQNsIgRJDQQgACAEQQJ0aiABIARrIAYoAvQBIAYoAvgBEMUCCwJAAkACQCAGLQCcAkEBaw4CAgABCyABIAtBAXQiBEkNAiAAIARBAnRqIAEgBGsgBigClAIgBigCmAIQ2gIMAQsgASALQQF0IgRJDQQgACAEQQJ0aiABIARrIAYoApQCIAYoApgCEMUCCwJAIAYtAIwCQQFrDgIGAAMLIAEgDEsNASALIQQLIAQgAUHw38EAENUDAAsgACALQQJ0aiABIAtrIAYoAoQCIAYoAogCENoCDAMLIAEgDEsNASALIQQLIAQgAUHg38EAENUDAAsgACALQQJ0aiABIAtrIAYoAoQCIAYoAogCEMUCCwJAAkACQCAGLQCsAUEBaw4CAgABCyAAIAEgBigCpAEgBigCqAEQ2gIMAQsgACABIAYoAqQBIAYoAqgBEMUCCyAGKAKQAiIABEAgBigClAIgAEECdBC5BAsgBigCgAIiAARAIAYoAoQCIABBAnQQuQQLIAYoAvABIgAEQCAGKAL0ASAAQQJ0ELkECyAGKAKwASIABEAgBigCtAEgAEECdBC5BAsgBigCoAEiAEUNASAGKAKkASAAQQJ0ELkEDAELIAcgAhCoBAALIAZB8AJqJAAPCyAGQQA2AugCIAZBATYC3AIgBkGwjMIANgLYAiAGQgQ3AuACIAZB2AJqQaCNwgAQhgQAC6NVAmB/An4jAEGwI2siBSQAIAUgAjYCECAFQQw2AgwCQAJAAkACQAJAAkACQCACQQxGBEAgBSAENgIUIAIgBEcNAQJAAkACQAJAAkACQAJAIAJBAmsOCwEAAAACAAAAAAADAAsgBUEANgKoCSAFQQE2ApwJIAVB1JHAADYCmAkgBUIENwKgCSAFQZgJakGMlMAAEIYEAAtB2b7CAC0AABpB4ABBCBCwBCICDQIMCgtB2b7CAC0AABpBoAJBCBCwBCICDQIMCgtB2b7CAC0AABpBwARBCBCwBCICDQIMCgsgAiABKQMANwMAIAIgASkDMDcDMCACQShqIAFBKGopAwA3AwAgAkEgaiABQSBqKQMANwMAIAJBGGogAUEYaikDADcDACACQRBqIAFBEGopAwA3AwAgAkEIaiIEIAFBCGopAwA3AwAgAkE4aiABQThqKQMANwMAIAJBQGsgAUFAaykDADcDACACQcgAaiABQcgAaikDADcDACACQdAAaiABQdAAaikDADcDACACQdgAaiABQdgAaikDADcDACACKQMAIWUgBUEgaiAEQdgAEM8EGiACQeAAELkEQdm+wgAtAAAaIAUgZTcDGEHgAEEIELAEIgFFDQcgASADKQMANwMAIAEgAykDMDcDMCABQShqIANBKGopAwA3AwAgAUEgaiADQSBqKQMANwMAIAFBGGogA0EYaikDADcDACABQRBqIANBEGopAwA3AwAgAUEIaiICIANBCGopAwA3AwAgAUE4aiADQThqKQMANwMAIAFBQGsgA0FAaykDADcDACABQcgAaiADQcgAaikDADcDACABQdAAaiADQdAAaikDADcDACABQdgAaiADQdgAaikDADcDACABKQMAIWUgBUGAAWogAkHYABDPBBogAUHgABC5BCAFIGU3A3ggBUHYAWoiASAFQRhqIAVB+ABqENADIAVBmAlqIAEQ9QMgBSgCnAkhASAFKAKYCSECIAUoAqAJIgNBAkcNBCABKAIEIQMgASgCACEEIAVB2A1qIAFBCGpB2AAQzwQaIAIEQCABIAJBMGwQuQQLQdm+wgAtAAAaQeAAQQgQsAQiAUUNByABIAM2AgQgASAENgIAIAEgBSkD2A03AwggASAFKQOADjcDMCABQRBqIAVB4A1qKQMANwMAIAFBGGogBUHoDWopAwA3AwAgAUEgaiAFQfANaikDADcDACABQShqIAVB+A1qKQMANwMAIAFBOGogBUGIDmopAwA3AwAgAUFAayAFQZAOaikDADcDACABQcgAaiAFQZgOaikDADcDACABQdAAaiAFQaAOaikDADcDACABQdgAaiAFQagOaikDADcDACAAQQI2AgggACABNgIEIABBAjYCAAwGCyACIAEpAwA3AwAgAiABKQMwNwMwIAJBKGogAUEoaikDADcDACACQSBqIAFBIGopAwA3AwAgAkEYaiABQRhqKQMANwMAIAJBEGogAUEQaikDADcDACACQQhqIgYgAUEIaikDADcDACACQThqIAFBOGopAwA3AwAgAkFAayABQUBrKQMANwMAIAJByABqIAFByABqKQMANwMAIAJB0ABqIAFB0ABqKQMANwMAIAJB2ABqIAFB2ABqKQMANwMAIAJBiAFqIAFBiAFqKQMANwMAIAJBgAFqIAFBgAFqKQMANwMAIAJB+ABqIAFB+ABqKQMANwMAIAJB8ABqIAFB8ABqKQMANwMAIAJB6ABqIAFB6ABqKQMANwMAIAIgASkDYDcDYCACIAEpA5ABNwOQASACQZgBaiABQZgBaikDADcDACACQaABaiABQaABaikDADcDACACQagBaiABQagBaikDADcDACACQbABaiABQbABaikDADcDACACQbgBaiABQbgBaikDADcDACACQegBaiABQegBaikDADcDACACQeABaiABQeABaikDADcDACACQdgBaiABQdgBaikDADcDACACQdABaiABQdABaikDADcDACACQcgBaiABQcgBaikDADcDACACIAEpA8ABNwPAASACQZgCaiABQZgCaikDADcDACACQZACaiABQZACaikDADcDACACQYgCaiABQYgCaikDADcDACACQYACaiABQYACaikDADcDACACQfgBaiABQfgBaikDADcDACACIAEpA/ABNwPwASACKQMAIWUgBUGYCWoiBCAGQZgCEM8EGiACQaACELkEIAVB6A5qIAVByAlqIiIpAwA3AwAgBUHwDmogBUHQCWoiCSkDADcDACAFQfgOaiAFQdgJaiIKKQMANwMAIAVBgA9qIAVB4AlqIgspAwA3AwAgBUGID2ogBUHoCWoiDCkDADcDACAFQbggaiIjIAVB+AlqIiQpAwA3AwAgBUHAIGoiJSAFQYAKaiINKQMANwMAIAVByCBqIiYgBUGICmoiDikDADcDACAFQdAgaiInIAVBkApqIg8pAwA3AwAgBUHYIGoiKCAFQZgKaiIQKQMANwMAIAUgBSkDwAk3A+AOIAUgBSkD8Ak3A7AgIAVBiCFqIikgBUHICmoiESkDADcDACAFQYAhaiIqIAVBwApqIhIpAwA3AwAgBUH4IGoiKyAFQbgKaiITKQMANwMAIAVB8CBqIiwgBUGwCmoiFCkDADcDACAFQeggaiItIAVBqApqIi4pAwA3AwAgBUGYIWoiLyAFQdgKaiIwKQMANwMAIAVBoCFqIjEgBUHgCmoiFSkDADcDACAFQaghaiIyIAVB6ApqIhYpAwA3AwAgBUGwIWoiMyAFQfAKaiIXKQMANwMAIAVBuCFqIjQgBUH4CmoiGCkDADcDACAFIAUpA6AKNwPgICAFIAUpA9AKNwOQISAFQeghaiI1IAVBqAtqIhkpAwA3AwAgBUHgIWoiNiAFQaALaiIaKQMANwMAIAVB2CFqIjcgBUGYC2oiGykDADcDACAFQdAhaiI4IAVBkAtqIhwpAwA3AwAgBUHIIWoiOSAFQYgLaiIHKQMANwMAIAVB2A5qIAVBuAlqIh0pAwA3AwAgBUHQDmogBUGwCWoiHikDADcDACAFQcgOaiAFQagJaiIfKQMANwMAIAVBwA5qIAVBoAlqIgIpAwA3AwAgBSAFKQOACzcDwCEgBSAFKQOYCTcDuA4gBSBlNwOwDiAFQZAPaiAFQbAgaiIIQeAAEM8EGiAFQfAPaiAFQZAhaiIGQeAAEM8EGkHZvsIALQAAGkGgAkEIELAEIgFFDQcgASADKQMANwMAIAEgAykDMDcDMCABQShqIANBKGopAwA3AwAgAUEgaiADQSBqKQMANwMAIAFBGGogA0EYaikDADcDACABQRBqIANBEGopAwA3AwAgAUEIaiIgIANBCGopAwA3AwAgAUE4aiADQThqKQMANwMAIAFBQGsgA0FAaykDADcDACABQcgAaiADQcgAaikDADcDACABQdAAaiADQdAAaikDADcDACABQdgAaiADQdgAaikDADcDACABQYgBaiADQYgBaikDADcDACABQYABaiADQYABaikDADcDACABQfgAaiADQfgAaikDADcDACABQfAAaiADQfAAaikDADcDACABQegAaiADQegAaikDADcDACABIAMpA2A3A2AgASADKQOQATcDkAEgAUGYAWogA0GYAWopAwA3AwAgAUGgAWogA0GgAWopAwA3AwAgAUGoAWogA0GoAWopAwA3AwAgAUGwAWogA0GwAWopAwA3AwAgAUG4AWogA0G4AWopAwA3AwAgAUHoAWogA0HoAWopAwA3AwAgAUHgAWogA0HgAWopAwA3AwAgAUHYAWogA0HYAWopAwA3AwAgAUHQAWogA0HQAWopAwA3AwAgAUHIAWogA0HIAWopAwA3AwAgASADKQPAATcDwAEgAUGYAmogA0GYAmopAwA3AwAgAUGQAmogA0GQAmopAwA3AwAgAUGIAmogA0GIAmopAwA3AwAgAUGAAmogA0GAAmopAwA3AwAgAUH4AWogA0H4AWopAwA3AwAgASADKQPwATcD8AEgASkDACFlIAQgIEGYAhDPBBogAUGgAhC5BCAFQYgRaiAiKQMANwMAIAVBkBFqIAkpAwA3AwAgBUGYEWogCikDADcDACAFQaARaiALKQMANwMAIAVBqBFqIAwpAwA3AwAgIyAkKQMANwMAICUgDSkDADcDACAmIA4pAwA3AwAgJyAPKQMANwMAICggECkDADcDACAFIAUpA8AJNwOAESAFIAUpA/AJNwOwICApIBEpAwA3AwAgKiASKQMANwMAICsgEykDADcDACAsIBQpAwA3AwAgLSAuKQMANwMAIC8gMCkDADcDACAxIBUpAwA3AwAgMiAWKQMANwMAIDMgFykDADcDACA0IBgpAwA3AwAgBSAFKQOgCjcD4CAgBSAFKQPQCjcDkCEgNSAZKQMANwMAIDYgGikDADcDACA3IBspAwA3AwAgOCAcKQMANwMAIDkgBykDADcDACAFQfgQaiAdKQMANwMAIAVB8BBqIB4pAwA3AwAgBUHoEGogHykDADcDACAFQeAQaiACKQMANwMAIAUgBSkDgAs3A8AhIAUgBSkDmAk3A9gQIAUgZTcD0BAgBUGwEWogCEHgABDPBBogBUGQEmogBkHgABDPBBogBCAFQdAQahCKAiAFKQOYCVBFDQQgBiACQaACEM8EGiAFQbgCaiIBIAVBsA5qIAYQwQIgBCABELABQdm+wgAtAAAaQaACQQgQsAQiAUUNByABIAUpA5gJNwMAIAEgBSkDyAk3AzAgAUEoaiAFQcAJaikDADcDACABQSBqIB0pAwA3AwAgAUEYaiAeKQMANwMAIAFBEGogHykDADcDACABQQhqIAIpAwA3AwAgAUE4aiAJKQMANwMAIAFBQGsgCikDADcDACABQcgAaiALKQMANwMAIAFB0ABqIAwpAwA3AwAgAUHYAGogBUHwCWopAwA3AwAgAUGIAWogBUGgCmopAwA3AwAgAUGAAWogECkDADcDACABQfgAaiAPKQMANwMAIAFB8ABqIA4pAwA3AwAgAUHoAGogDSkDADcDACABIAUpA/gJNwNgIAFBuAFqIAVB0ApqKQMANwMAIAFBsAFqIBEpAwA3AwAgAUGoAWogEikDADcDACABQaABaiATKQMANwMAIAFBmAFqIBQpAwA3AwAgASAFKQOoCjcDkAEgAUHoAWogBUGAC2opAwA3AwAgAUHgAWogGCkDADcDACABQdgBaiAXKQMANwMAIAFB0AFqIBYpAwA3AwAgAUHIAWogFSkDADcDACABIAUpA9gKNwPAASABQZgCaiAFQbALaikDADcDACABQZACaiAZKQMANwMAIAFBiAJqIBopAwA3AwAgAUGAAmogGykDADcDACABQfgBaiAcKQMANwMAIAEgBSkDiAs3A/ABIABBBjYCCCAAIAE2AgQgAEEGNgIADAULIAIgASkDADcDACACIAEpAzA3AzAgAkEoaiABQShqKQMANwMAIAJBIGogAUEgaikDADcDACACQRhqIAFBGGopAwA3AwAgAkEQaiABQRBqKQMANwMAIAJBCGoiBiABQQhqKQMANwMAIAJBOGogAUE4aikDADcDACACQUBrIAFBQGspAwA3AwAgAkHIAGogAUHIAGopAwA3AwAgAkHQAGogAUHQAGopAwA3AwAgAkHYAGogAUHYAGopAwA3AwAgAkGIAWogAUGIAWopAwA3AwAgAkGAAWogAUGAAWopAwA3AwAgAkH4AGogAUH4AGopAwA3AwAgAkHwAGogAUHwAGopAwA3AwAgAkHoAGogAUHoAGopAwA3AwAgAiABKQNgNwNgIAIgASkDkAE3A5ABIAJBmAFqIAFBmAFqKQMANwMAIAJBoAFqIAFBoAFqKQMANwMAIAJBqAFqIAFBqAFqKQMANwMAIAJBsAFqIAFBsAFqKQMANwMAIAJBuAFqIAFBuAFqKQMANwMAIAJB6AFqIAFB6AFqKQMANwMAIAJB4AFqIAFB4AFqKQMANwMAIAJB2AFqIAFB2AFqKQMANwMAIAJB0AFqIAFB0AFqKQMANwMAIAJByAFqIAFByAFqKQMANwMAIAIgASkDwAE3A8ABIAJBmAJqIAFBmAJqKQMANwMAIAJBkAJqIAFBkAJqKQMANwMAIAJBiAJqIAFBiAJqKQMANwMAIAJBgAJqIAFBgAJqKQMANwMAIAJB+AFqIAFB+AFqKQMANwMAIAIgASkD8AE3A/ABIAJByAJqIAFByAJqKQMANwMAIAJBwAJqIAFBwAJqKQMANwMAIAJBuAJqIAFBuAJqKQMANwMAIAJBsAJqIAFBsAJqKQMANwMAIAJBqAJqIAFBqAJqKQMANwMAIAIgASkDoAI3A6ACIAJB+AJqIAFB+AJqKQMANwMAIAJB8AJqIAFB8AJqKQMANwMAIAJB6AJqIAFB6AJqKQMANwMAIAJB4AJqIAFB4AJqKQMANwMAIAJB2AJqIAFB2AJqKQMANwMAIAIgASkD0AI3A9ACIAJBqANqIAFBqANqKQMANwMAIAJBoANqIAFBoANqKQMANwMAIAJBmANqIAFBmANqKQMANwMAIAJBkANqIAFBkANqKQMANwMAIAJBiANqIAFBiANqKQMANwMAIAIgASkDgAM3A4ADIAJB2ANqIAFB2ANqKQMANwMAIAJB0ANqIAFB0ANqKQMANwMAIAJByANqIAFByANqKQMANwMAIAJBwANqIAFBwANqKQMANwMAIAJBuANqIAFBuANqKQMANwMAIAIgASkDsAM3A7ADIAJBiARqIAFBiARqKQMANwMAIAJBgARqIAFBgARqKQMANwMAIAJB+ANqIAFB+ANqKQMANwMAIAJB8ANqIAFB8ANqKQMANwMAIAJB6ANqIAFB6ANqKQMANwMAIAIgASkD4AM3A+ADIAJBuARqIAFBuARqKQMANwMAIAJBsARqIAFBsARqKQMANwMAIAJBqARqIAFBqARqKQMANwMAIAJBoARqIAFBoARqKQMANwMAIAJBmARqIAFBmARqKQMANwMAIAIgASkDkAQ3A5AEIAIpAwAhZSAFQZgJaiIEIAZBuAQQzwQaIAJBwAQQuQQgBUGoE2ogBUHICWoiBykDADcDACAFQbATaiAFQdAJaiIGKQMANwMAIAVBuBNqIAVB2AlqIgkpAwA3AwAgBUHAE2ogBUHgCWoiCikDADcDACAFQcgTaiAFQegJaiILKQMANwMAIAVBuBdqIAVB+AlqIggpAwA3AwAgBUHAF2ogBUGACmoiDCkDADcDACAFQcgXaiAFQYgKaiINKQMANwMAIAVB0BdqIAVBkApqIg4pAwA3AwAgBUHYF2ogBUGYCmoiDykDADcDACAFIAUpA8AJNwOgEyAFIAUpA/AJNwOwFyAFQYgYaiAFQcgKaiIQKQMANwMAIAVBgBhqIAVBwApqIhEpAwA3AwAgBUH4F2ogBUG4CmoiEikDADcDACAFQfAXaiAFQbAKaiITKQMANwMAIAVB6BdqIAVBqApqIiApAwA3AwAgBUGYGGogBUHYCmoiOikDADcDACAFQaAYaiAFQeAKaiIUKQMANwMAIAVBqBhqIAVB6ApqIhUpAwA3AwAgBUGwGGogBUHwCmoiFikDADcDACAFQbgYaiAFQfgKaiIXKQMANwMAIAUgBSkDoAo3A+AXIAUgBSkD0Ao3A5AYIAVB6BhqIAVBqAtqIhgpAwA3AwAgBUHgGGogBUGgC2oiGSkDADcDACAFQdgYaiAFQZgLaiIaKQMANwMAIAVB0BhqIAVBkAtqIhspAwA3AwAgBUHIGGogBUGIC2oiOykDADcDACAFQZgTaiAFQbgJaiIcKQMANwMAIAVBkBNqIAVBsAlqIh0pAwA3AwAgBUGIE2ogBUGoCWoiHikDADcDACAFQYATaiAFQaAJaiIfKQMANwMAIAUgBSkDgAs3A8AYIAUgBSkDmAk3A/gSIAVByB9qIiEgBUGIDGoiIikDADcDACAFQcAfaiI8IAVBgAxqIiMpAwA3AwAgBUG4H2oiPSAFQfgLaiIkKQMANwMAIAVBsB9qIj4gBUHwC2oiJSkDADcDACAFQagfaiI/IAVB6AtqIkApAwA3AwAgBSAFKQPgCzcDoB8gBUHYH2oiQSAFQZgMaiJCKQMANwMAIAVB4B9qIkMgBUGgDGoiJikDADcDACAFQegfaiJEIAVBqAxqIicpAwA3AwAgBUHwH2oiRSAFQbAMaiIoKQMANwMAIAVB+B9qIkYgBUG4DGoiKSkDADcDACAFIAUpA5AMNwPQHyAFQaggaiJHIAVB6AxqIiopAwA3AwAgBUGgIGoiSCAFQeAMaiIrKQMANwMAIAVBmCBqIkkgBUHYDGoiLCkDADcDACAFQZAgaiJKIAVB0AxqIi0pAwA3AwAgBUGIIGoiSyAFQcgMaiJMKQMANwMAIAUgBSkDwAw3A4AgIAVB2CBqIk0gBUGYDWoiLikDADcDACAFQdAgaiJOIAVBkA1qIi8pAwA3AwAgBUHIIGoiTyAFQYgNaiIwKQMANwMAIAVBwCBqIlAgBUGADWoiMSkDADcDACAFQbggaiJRIAVB+AxqIlIpAwA3AwAgBSAFKQPwDDcDsCAgBUGIIWoiUyAFQcgNaiIyKQMANwMAIAVBgCFqIlQgBUHADWoiMykDADcDACAFQfggaiJVIAVBuA1qIjQpAwA3AwAgBUHwIGoiViAFQbANaiI1KQMANwMAIAVB6CBqIlcgBUGoDWoiWCkDADcDACAFIAUpA6ANNwPgICAFQZgfaiJZIAVB2AtqIjYpAwA3AwAgBUGQH2oiWiAFQdALaiI3KQMANwMAIAVBiB9qIlsgBUHIC2oiOCkDADcDACAFQYAfaiJcIAVBwAtqIjkpAwA3AwAgBUH4HmoiXSAFQbgLaiJeKQMANwMAIAUgBSkDsAs3A/AeIAVBkCFqIgIgBUHwHmoiX0HgABDPBBogBUHwIWogBUHQH2oiYEHgABDPBCAFQdAiaiAFQbAgaiJiQeAAEM8EIWMgBSBlNwPwEiAFQdATaiAFQbAXakHgABDPBBogBUGwFGogBUGQGGpB4AAQzwQaIAVBkBVqIAJBoAIQzwQaQdm+wgAtAAAaQcAEQQgQsAQiAUUNByABIAMpAwA3AwAgASADKQMwNwMwIAFBKGogA0EoaikDADcDACABQSBqIANBIGopAwA3AwAgAUEYaiADQRhqKQMANwMAIAFBEGogA0EQaikDADcDACABQQhqImQgA0EIaikDADcDACABQThqIANBOGopAwA3AwAgAUFAayADQUBrKQMANwMAIAFByABqIANByABqKQMANwMAIAFB0ABqIANB0ABqKQMANwMAIAFB2ABqIANB2ABqKQMANwMAIAFBiAFqIANBiAFqKQMANwMAIAFBgAFqIANBgAFqKQMANwMAIAFB+ABqIANB+ABqKQMANwMAIAFB8ABqIANB8ABqKQMANwMAIAFB6ABqIANB6ABqKQMANwMAIAEgAykDYDcDYCABIAMpA5ABNwOQASABQZgBaiADQZgBaikDADcDACABQaABaiADQaABaikDADcDACABQagBaiADQagBaikDADcDACABQbABaiADQbABaikDADcDACABQbgBaiADQbgBaikDADcDACABQegBaiADQegBaikDADcDACABQeABaiADQeABaikDADcDACABQdgBaiADQdgBaikDADcDACABQdABaiADQdABaikDADcDACABQcgBaiADQcgBaikDADcDACABIAMpA8ABNwPAASABQZgCaiADQZgCaikDADcDACABQZACaiADQZACaikDADcDACABQYgCaiADQYgCaikDADcDACABQYACaiADQYACaikDADcDACABQfgBaiADQfgBaikDADcDACABIAMpA/ABNwPwASABQcgCaiADQcgCaikDADcDACABQcACaiADQcACaikDADcDACABQbgCaiADQbgCaikDADcDACABQbACaiADQbACaikDADcDACABQagCaiADQagCaikDADcDACABIAMpA6ACNwOgAiABQfgCaiADQfgCaikDADcDACABQfACaiADQfACaikDADcDACABQegCaiADQegCaikDADcDACABQeACaiADQeACaikDADcDACABQdgCaiADQdgCaikDADcDACABIAMpA9ACNwPQAiABQagDaiADQagDaikDADcDACABQaADaiADQaADaikDADcDACABQZgDaiADQZgDaikDADcDACABQZADaiADQZADaikDADcDACABQYgDaiADQYgDaikDADcDACABIAMpA4ADNwOAAyABQdgDaiADQdgDaikDADcDACABQdADaiADQdADaikDADcDACABQcgDaiADQcgDaikDADcDACABQcADaiADQcADaikDADcDACABQbgDaiADQbgDaikDADcDACABIAMpA7ADNwOwAyABQYgEaiADQYgEaikDADcDACABQYAEaiADQYAEaikDADcDACABQfgDaiADQfgDaikDADcDACABQfADaiADQfADaikDADcDACABQegDaiADQegDaikDADcDACABIAMpA+ADNwPgAyABQbgEaiADQbgEaikDADcDACABQbAEaiADQbAEaikDADcDACABQagEaiADQagEaikDADcDACABQaAEaiADQaAEaikDADcDACABQZgEaiADQZgEaikDADcDACABIAMpA5AENwOQBCABKQMAIWUgBCBkQbgEEM8EGiABQcAEELkEIAVBqBlqIAcpAwA3AwAgBUGwGWogBikDADcDACAFQbgZaiAJKQMANwMAIAVBwBlqIAopAwA3AwAgBUHIGWogCykDADcDACAFQbgdaiAIKQMANwMAIAVBwB1qIAwpAwA3AwAgBUHIHWogDSkDADcDACAFQdAdaiAOKQMANwMAIAVB2B1qIA8pAwA3AwAgBSAFKQPACTcDoBkgBSAFKQPwCTcDsB0gBUGIHmogECkDADcDACAFQYAeaiARKQMANwMAIAVB+B1qIBIpAwA3AwAgBUHwHWogEykDADcDACAFQegdaiAgKQMANwMAIAVBmB5qIDopAwA3AwAgBUGgHmogFCkDADcDACAFQageaiAVKQMANwMAIAVBsB5qIBYpAwA3AwAgBUG4HmogFykDADcDACAFIAUpA6AKNwPgHSAFIAUpA9AKNwOQHiAFQegeaiAYKQMANwMAIAVB4B5qIBkpAwA3AwAgBUHYHmogGikDADcDACAFQdAeaiAbKQMANwMAIAVByB5qIDspAwA3AwAgBUGYGWogHCkDADcDACAFQZAZaiAdKQMANwMAIAVBiBlqIB4pAwA3AwAgBUGAGWogHykDADcDACAFIAUpA4ALNwPAHiAFIAUpA5gJNwP4GCAhICIpAwA3AwAgPCAjKQMANwMAID0gJCkDADcDACA+ICUpAwA3AwAgPyBAKQMANwMAIAUgBSkD4As3A6AfIEEgQikDADcDACBDICYpAwA3AwAgRCAnKQMANwMAIEUgKCkDADcDACBGICkpAwA3AwAgBSAFKQOQDDcD0B8gRyAqKQMANwMAIEggKykDADcDACBJICwpAwA3AwAgSiAtKQMANwMAIEsgTCkDADcDACAFIAUpA8AMNwOAICBNIC4pAwA3AwAgTiAvKQMANwMAIE8gMCkDADcDACBQIDEpAwA3AwAgUSBSKQMANwMAIAUgBSkD8Aw3A7AgIFMgMikDADcDACBUIDMpAwA3AwAgVSA0KQMANwMAIFYgNSkDADcDACBXIFgpAwA3AwAgBSAFKQOgDTcD4CAgWSA2KQMANwMAIFogNykDADcDACBbIDgpAwA3AwAgXCA5KQMANwMAIF0gXikDADcDACAFIAUpA7ALNwPwHiACIF9B4AAQzwQaIGBB4AAQzwQaIGMgYkHgABDPBBogBSBlNwPwGCAFQdAZaiAFQbAdakHgABDPBBogBUGwGmogBUGQHmpB4AAQzwQaIAVBkBtqIAJBoAIQzwQaIAVB2ARqIQggBUHwEmohICMAQYASayIBJAAgAUHADWoiByAFQfAYaiICEHEgAUGoCWpBgPvAACkDADcDACABQaAJakH4+sAAKQMANwMAIAFBmAlqIjpB8PrAACkDADcDACABQZAJaiI7Qej6wAApAwA3AwAgAUGICWpB4PrAACkDADcDACABQbgJakIANwMAIAFBwAlqQgA3AwAgAUHICWpCADcDACABQdAJakIANwMAIAFB2AlqQgA3AwAgAUHY+sAAKQMANwOACSABQgA3A7AJIAFB4A9qIiFBAEHgABDRBBogAUHAEGogAUGACWoiA0HgABDPBBogAUGgEWpBAEHgABDRBBogAyACQaACaiI8EHEgASAhIAMQwQIgAUHgBmoiISAHIAEQlAEgAUHAB2ogAUGgDmoiPSABQeAAahCUASABQaAIaiABQYAPaiI+IAFBwAFqEJQBIAMgIRCKAiABKQOQCSFlIAEpA4gJIWYCQCABKQOACVAEQCABQdAEaiA6QZACEM8EGiABIGU3A8gEIAEgZjcDwAQgAyACIAFBwARqIgMQwQIgByA8EKMCID0gAkGAA2oQowIgPiACQeADahCjAiABIANBoAIQzwQiAUGgC2ogAUHADWogARDBAiABKQOACSFlIAEpA4gJIWYgAUEQaiA7QbAEEM8EGiABIGY3AwggASBlNwMAIAggICABEKYCIAFBgBJqJAAMAQsgASBlNwOICSABIGY3A4AJQYD4wABBKyABQYAJakGs+MAAQaj5wAAQvgMACyAEIAgQpAFB2b7CAC0AABpBwARBCBCwBCIBRQ0HIAEgBSkDmAk3AwAgASAFKQPICTcDMCABQShqIAVBwAlqKQMANwMAIAFBIGogHCkDADcDACABQRhqIB0pAwA3AwAgAUEQaiAeKQMANwMAIAFBCGogHykDADcDACABQThqIAYpAwA3AwAgAUFAayAJKQMANwMAIAFByABqIAopAwA3AwAgAUHQAGogCykDADcDACABQdgAaiAFQfAJaikDADcDACABQYgBaiAFQaAKaikDADcDACABQYABaiAPKQMANwMAIAFB+ABqIA4pAwA3AwAgAUHwAGogDSkDADcDACABQegAaiAMKQMANwMAIAEgBSkD+Ak3A2AgAUG4AWogBUHQCmopAwA3AwAgAUGwAWogECkDADcDACABQagBaiARKQMANwMAIAFBoAFqIBIpAwA3AwAgAUGYAWogEykDADcDACABIAUpA6gKNwOQASABQegBaiAFQYALaikDADcDACABQeABaiAXKQMANwMAIAFB2AFqIBYpAwA3AwAgAUHQAWogFSkDADcDACABQcgBaiAUKQMANwMAIAEgBSkD2Ao3A8ABIAFBmAJqIAVBsAtqKQMANwMAIAFBkAJqIBgpAwA3AwAgAUGIAmogGSkDADcDACABQYACaiAaKQMANwMAIAFB+AFqIBspAwA3AwAgASAFKQOICzcD8AEgAUHIAmogBUHgC2opAwA3AwAgAUHAAmogNikDADcDACABQbgCaiA3KQMANwMAIAFBsAJqIDgpAwA3AwAgAUGoAmogOSkDADcDACABIAUpA7gLNwOgAiABQfgCaiAFQZAMaikDADcDACABQfACaiAiKQMANwMAIAFB6AJqICMpAwA3AwAgAUHgAmogJCkDADcDACABQdgCaiAlKQMANwMAIAEgBSkD6As3A9ACIAFBqANqIAVBwAxqKQMANwMAIAFBoANqICkpAwA3AwAgAUGYA2ogKCkDADcDACABQZADaiAnKQMANwMAIAFBiANqICYpAwA3AwAgASAFKQOYDDcDgAMgAUHYA2ogBUHwDGopAwA3AwAgAUHQA2ogKikDADcDACABQcgDaiArKQMANwMAIAFBwANqICwpAwA3AwAg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aiAEQQJLGyILIA0gD1atIANB0AVqKQMAIA0gDlStfHwiDiADKQO4BXwiDSALKQMAfCIPNwMAIANBqAVqIAxCv6WUnM/w0rvkAEIAEL0DIAdBEGogBUFAayAEQQNLGyILIA0gD1atIANBwAVqKQMAIA0gDlStfHwiDiADKQOoBXwiDSALKQMAfCIPNwMAIANBmAVqIAxC19mumuT26Y3LAEIAEL0DIANBoAVqKQMAIA0gD1atIANBsAVqKQMAIA0gDlStfHwiDiADKQOYBXwiDSAOVK18IQ4CQAJAIARBBE0EQCAFQThqIgcgDSAHKQMAfCIPNwMAIA4gDSAPVq18IQ9CACERDAELIAdBCGoiCyANIAspAwB8Ig83AwAgDiANIA9WrXwhD0IAIREgBkEESw0BCyADQZAOaiAEQQN0aiEHCyADQYgFaiAMQprN/8ujvcSAGkIAEL0DIAcgDyADKQOIBXwiDCAHKQMAfCINNwMAQQAhBAJAIAwgDVatIAwgD1StIBEgA0GQBWopAwB8fHwiDFANACAFQShqIgQgDCAEKQMAfCINNwMAIAwgDVYiBK0iDFAgCEFYRnINACAFQSBqIgQgDCAEKQMAfCINNwMAIAwgDVYiBK0iDFAgBkECSXINACAFQRhqIgQgDCAEKQMAfCINNwMAIAwgDVYiBK0iDFAgBkEDSXINACAFQRBqIgQgDCAEKQMAfCINNwMAIAwgDVYiBK0iDFAgBkEESXINACAFQQhqIgQgDCAEKQMAfCINNwMAIAwgDVYiBK0iDFAgBkEFSXINACAFIAwgBSkDAHwiDTcDACAMIA1WIgStIQwLIAQgCnIhCiAIQQhrIghBUEcNAQwFCwsMBwsgACACKQMwNwMwIAAgAikDADcDACAAQdgAaiACQdgAaikDADcDACAAQdAAaiACQdAAaikDADcDACAAQcgAaiACQcgAaikDADcDACAAQUBrIAJBQGspAwA3AwAgAEE4aiACQThqKQMANwMAIABBCGogAkEIaikDADcDACAAQRBqIAJBEGopAwA3AwAgAEEYaiACQRhqKQMANwMAIABBIGogAkEgaikDADcDACAAQShqIAJBKGopAwA3AwAMBQsgACABKQMwNwMwIAAgASkDADcDACAAQdgAaiABQdgAaikDADcDACAAQdAAaiABQdAAaikDADcDACAAQcgAaiABQcgAaikDADcDACAAQUBrIAFBQGspAwA3AwAgAEE4aiABQThqKQMANwMAIABBCGogAUEIaikDADcDACAAQRBqIAFBEGopAwA3AwAgAEEYaiABQRhqKQMANwMAIABBIGogAUEgaikDADcDACAAQShqIAFBKGopAwA3AwAMBAtCpOzDtY/UtJjnACABKQNIIgwgAikDSCIQfSIUIAEpA1AiEiACKQNQIhNUIBIgE30iEiABKQNYIhMgAikDWCIVVK0iDVRyrSIXfSIOfSIWIBIgDX0iEkL//8+K6///1R5WQv//z4rr///VHiASfSINIBMgFX0iE0Kr1f7///+//7l/Vq0iGFRyrSIVfSESQr+llJzP8NK75AAgASkDQCIZIAIpA0AiG30iHCAMIBBUIBQgF1RyrSIMfSIQfSIUIBUgFlYgDkKk7MO1j9S0mOcAVnKtIhd9IRVC19mumuT26Y3LACABKQM4IhYgAikDOCIefSIdIBkgG1QgDCAcVnKtIgx9Ig59IhkgFCAXVCAQQr+llJzP8NK75ABWcq0iEH0hFCAQIBlWIA5C19mumuT26Y3LAFZyIQQgDSAYfSEOIBYgHlQgDCAdVnKtIBEgD318QprN/8ujvcSAGnwhD0Kr1f7///+//7l/IBN9IQwMAQsCQAJAIAxCAFIgCnJBAXEgAykDkA4iDEKazf/Lo73EgBpWcg0AIAxCms3/y6O9xIAaUg0BIAMpA5gOIg1C19mumuT26Y3LAFYNACANQtfZrprk9umNywBSDQEgAykDoA4iDUK/pZScz/DSu+QAVg0AIA1Cv6WUnM/w0rvkAFINASADKQOoDiINQqTsw7WP1LSY5wBWDQAgDUKk7MO1j9S0mOcAUg0BIAMpA7AOIg1C///Piuv//9UeVg0AIA1C///Piuv//9UeUg0BIAMpA7gOQqrV/v///7//uX9YDQELIAMgAykDuA4iDULVqoGAgIDAgMYAfDcDuA4gAyADKQOwDiIOQv//z4rr///VHn0iDyANQqvV/v///7//uX9UrSINfTcDsA4gAyADKQOoDiIRQqTsw7WP1LSY5wB9IhYgDkL//8+K6///1R5UIA0gD1ZyrSINfTcDqA4gAyADKQOgDiIOQr+llJzP8NK75AB9Ig8gEUKk7MO1j9S0mOcAVCANIBZWcq0iDX03A6AOIAMgAykDmA4iEULX2a6a5PbpjcsAfSIWIA5Cv6WUnM/w0rvkAFQgDSAPVnKtIg19NwOYDiADIAwgEULX2a6a5PbpjcsAVCANIBZWcq19QprN/8ujvcSAGn03A5AOCyADQYgOaiADQbgOaikDADcDACADQYAOaiADQbAOaikDADcDACADQfgNaiADQagOaikDADcDACADQfANaiADQaAOaikDADcDACADQegNaiADQZgOaikDADcDACADIAMpA5AONwPgDSADQZgJaiIEIANBgA1qIANB4A1qELEBIANB0AxqIgYgBCADQegIahDEAiADQs+qmYCAgMCJMjcDwAkgA0KFgJC2jYOAnrl/NwO4CSADQtH29obbwZew1wA3A7AJIANCy7f+6J6k2ZKLfzcDqAkgA0KD2IiLkK+j+ewANwOgCSADQozFh9zb8+r1ETcDmAkgA0GwDWoiBSAEIAkQsQEgA0G4CGogBiAFEE0MAQsgAyAMNwO4DiADIA43A7AOIAMgEjcDqA4gAyAVNwOgDiADIBQ3A5gOIAMgDyAErX03A5AOIAEpAwAiFyEQIAIpAwAiDCEPAn4CQAJ+AkAgDCAXUg0AIAEpAwgiEiACKQMIIg9SBEAgEiEQDAELIAEpAxAiFCACKQMQIg9SBEAgFCEQDAELIAEpAxgiEyACKQMYIg9SBEAgEyEQDAELIAEpAyAiFSACKQMgIg9SBEAgFSEQDAELIBIhFiATIQ4gFSERIAEpAygiECEYIBQgECACKQMoIg9RDQEaCyABKQMgIRUgDyAQWA0BIAEpAwghEiACKQMIIRYgASkDECEUIAEpAxghEyACKQMYIQ4gAikDICERIAEpAyghECACKQMoIRggAikDEAshDSARIBV9IhkgECAYVq0iG30hDyAOIBN9IhwgESAVVCAZIBtUcq0iGX0hESANIBR9IhsgDiATVCAZIBxWcq0iGX0hDiAWIBJ9IhwgDSAUVCAZIBtWcq0iGX0hDSAZIBxWIBIgFlZyIQQgGCAQfSEWIAwgF30MAQtCpOzDtY/UtJjnACABKQMYIhMgAikDGCISfSINIBUgAikDICIQVCAVIBB9IhQgASkDKCIQIAIpAygiDlStIg9Ucq0iFn0iGH0iGSAUIA99IhRC///Piuv//9UeVkL//8+K6///1R4gFH0iDyAQIA59IhtCq9X+////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IBpWcq0iFH0hESAMIBJUIBQgGFZyIQQgDyAXfSEMIBYgEH0LNwPACSADIA03A7gJIAMgFTcDsAkgAyAONwOoCSADIBE3A6AJIAMgDCAErX03A5gJIANB4A1qIgYgA0GYCWoiBSACEP8BQSghBCADQcAJaiABQShqKQMANwMAIANBuAlqIAFBIGopAwA3AwAgA0GwCWogAUEYaikDADcDACADQagJaiABQRBqKQMANwMAIANBoAlqIAFBCGopAwA3AwAgAyABKQMANwOYCSADQZAOaiAFIAYQ/wFCACERQgAhDkIAIRBCACESQgAhE0IAIQ8DQCADQfgAaiADQZAOaiAEaikDACIMIBtCABC9AyADQYgBaiAMIBlCABC9AyADQZgBaiAMIBxCABC9AyADQagBaiAMIB5CABC9AyADQbgBaiAMIB1CABC9AyADQcgBaiAMICBCABC9AyADQegAaiADKQN4Ig0gD3wiFEIAQv3/8//P///5iX8QvQMgA0HYAGogA0HwAGopAwAiDEKr1f7///+//7l/QgAQvQMgA0HIAGogDEL//8+K6///1R5CABC9AyADQThqIAxCpOzDtY/UtJjnAEIAEL0DIANBKGogDEK/pZScz/DSu+QAQgAQvQMgA0EYaiAMQtfZrprk9umNywBCABC9AyADQQhqIAxCms3/y6O9xIAaQgAQvQMgA0EQaikDACARIAMpA8gBIhF8IgwgA0HAAWopAwAgAykDuAEiFyAOfCIVIBdUrXwgFSADQbABaikDACADKQOoASIXIBB8IhAgF1StfCAQIBAgA0GgAWopAwAgAykDmAEiFyASfCISIBdUrXwgEiASIANBkAFqKQMAIAMpA4gBIhcgE3wiEyAXVK18IBMgA0GAAWopAwAgDSAUVq18fCIOIBNUrXx8IhJWrXx8IhBWrXx8IhMgFVStfHwiFSADKQMIfCINIBVUrXwgDSADQSBqKQMAIBMgAykDGHwiFyATVK18IBcgA0EwaikDACAQIBAgAykDKHwiEFatfCAQIANBQGspAwAgEiASIAMpAzh8IhJWrXwgEiADQdAAaikDACAOIAMpA0giDnwiEyAOVK18IBMgA0HgAGopAwAgFCADKQNYIhR8IBRUrXx8Ig8gE1StfHwiEyASVK18fCISIBBUrXx8IhAgF1StfHwiDiANVK18IAwg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BCIFBEAgAygCkAQgBUEwbBC5BAtBCCELAkACQCADKAJEIghFDQBBACEEIAhBMGwiCkEASCAIQarVqhVLcg0BIAMoAkAhCUHZvsIALQAAGkEIIQQgCkEIELAEIgtFDQFBACEEIAghBQNAIAQgCkYNASAEIAtqIgYgBCAJaiIHKQMANwMAIAZBKGogB0EoaikDADcDACAGQSBqIAdBIGopAwA3AwAgBkEYaiAHQRhqKQMANwMAIAZBEGogB0EQaikDADcDACAGQQhqIAdBCGopAwA3AwAgBEEwaiEEIAVBAWsiBQ0ACwsgAyAINgLYAyADIAs2AtQDIAMgCDYC0AMgA0GABGogA0HQA2ogA0HIAGoQIyADQfAAaiADQYgEaigCADYCACADIAMpAoAENwNoIAMoAowEIgUEQCADKAKQBCAFQTBsELkECyADKAJEIgVBMGwhBCADKAJAIQYCQANAIARFDQEgBUEBayEFIARBMGsiBCAGaiIIQaDuwABBMBDQBEUNAAsgBUEASA0AIANB2AFqIgUgCEEoaikDADcDACADQdABaiIGIAhBIGopAwA3AwAgA0HIAWoiByAIQRhqKQMANwMAIANBwAFqIgQgCEEQaikDADcDACADQbgBaiILIAhBCGopAwA3AwAgAyAIKQMANwOwASADQbABakHI1MEAQTAQ0ARFDQkgA0HgAmpCADcDACADQdgCakIANwMAIANB0AJqQgA3AwAgA0HIAmpCADcDACADQgA3A8ACIANCATcD6AIgA0GYA2ogBSkDADcDACADQZADaiAGKQMANwMAIANBiANqIAcpAwA3AwAgA0GAA2ogBCkDADcDACADQfgCaiALKQMANwMAIAMgAykDsAE3A/ACIANByANqQdjSwQApAwA3AwAgA0HAA2pB0NLBACkDADcDACADQbgDakHI0sEAKQMANwMAIANBsANqQcDSwQApAwA3AwAgA0GoA2pBuNLBACkDADcDACADQbDSwQApAwA3A6ADIANB+ANqQaDVwQApAwA3AwAgA0HwA2pBmNXBACkDADcDACADQegDakGQ1cEAKQMANwMAIANB4ANqIgVBiNXBACkDADcDACADQdgDakGA1cEAKQMANwMAIANB+NTBACkDADcD0AMgA0GoBGpCADcDACADQaAEakIANwMAIANBmARqQgA3AwAgA0GQBGoiCEIANwMAIANBiARqQgA3AwAgA0IANwOABAJAIANB8AJqIANBwAJqQTAQ0ARFBEBCqserltn8o8wRIR1CrarmqNvQz7yafyESDAELIANBoANqIANBwAJqQTAQ0ARFBEAgCCEFDAELQqvV/v///7//uX8hGgNAIAMtAJgDQQFxRQRAA0AgA0HwAmoQwwIgAykD+AMiEkIBg1BFBEAgAykD8AMhEyADIBJC1aqBgICAwIDGAH0iFjcD+AMgAyATQv//z4rr///VHnwiFCASIBZWrXwiFjcD8AMgAyADKQPoAyIVQqTsw7WP1LSY5wB8IhIgEyAUViAUIBZWcq18IhQ3A+gDIAMgAykD4AMiFkK/pZScz/DSu+QAfCITIBIgFVQgEiAUVnKtfCIUNwPgAyADIAMpA9gDIhVC19mumuT26Y3LAHwiEiATIBZUIBMgFFZyrXwiEzcD2AMgAyADKQPQAyASIBVUIBIgE1ZyrXxCms3/y6O9xIAafDcD0AMLIANB0ANqEMMCIAMtAJgDQQFxRQ0ACyADKQPIAyEaCyAap0EBcUUEQANAIANBoANqEMMCIAMpA6gEIhJCAYNQRQRAIAMpA6AEIRMgAyASQtWqgYCAgMCAxgB9IhY3A6gEIAMgE0L//8+K6///1R58IhQgEiAWVq18IhY3A6AEIAMgAykDmAQiFUKk7MO1j9S0mOcAfCISIBMgFFYgFCAWVnKtfCIUNwOYBCADIAMpA5AEIhZCv6WUnM/w0rvkAHwiEyASIBVUIBIgFFZyrXwiFDcDkAQgAyADKQOIBCIVQtfZrprk9umNywB8IhIgEyAWVCATIBRWcq18IhM3A4gEIAMgAykDgAQgEiAVVCASIBNWcq18QprN/8ujvcSAGnw3A4AECyADQYAEahDDAiADKQPIAyIaQgGDUA0ACwsgAykD+AIhFwJAIAMCfgJAAkACQAJ+IAMpA6ADIh4gAykD8AIiIFIEQCADKQOwAyEVIAMpA6gDIRYgHiESICAhHSADKQOAAwwBCyADKQOwAyEVIAMpA4ADIRMgFyADKQOoAyIWUgRAIBYhEiAXIR0gEwwBCyATIBVSBEAgFyEWIBUhEiATIR0gEwwBCyADKQO4AyISIAMpA4gDIh1SBEAgEyEVIBchFiATDAELIAMpA8ADIhggAykDkAMiHVIEQCATIRUgFyEWIBghEiATDAELIBogAykDmAMiHVENASATIRUgFyEWIBohEiATCyEUIBIgHVQgAykDgAQhHyADKQPQAyEdIAMpA8ADIRggAykDuAMhEiADKQOYAyEZIAMpA5ADIRsgAykDiAMhHARAIBUhEwwCCyADIBogGX0iITcDyAMgAyAYIBt9IhMgGSAaVq0iGn03A8ADIAMgEiAcfSIZIBggG1QgEyAaVHKtIhN9NwO4AyADIBUgFH0iGCASIBxUIBMgGVZyrSISfTcDsAMgAyAWIBd9IhMgFCAVViASIBhWcq0iEn03A6gDIAMgHiAgfSAWIBdUIBIgE1ZyrX03A6ADIAMpA4gEIRcCQAJAIB0gH1IEQCADKQPgAyEWIAMpA9gDIRIgAykDkAQhGSAfIRogHSEVDAELIAMpA+ADIRYgAykDkAQhGSADKQPYAyISIBdSBEAgFyEaIBIhFQwBCyAWIBlSBEAgFyESIBkhGiAWIRUMAQsgAykDmAQiGCADKQPoAyIVUgRAIBkhFiAXIRIgGCEaDAELIAMpA6AEIhQgAykD8AMiFVIEQCAZIRYgFyESIBQhGgwBCyAZIRYgFyESIAMpA6gEIhohGyAUIRwgGCETIBogAykD+AMiFVENAQsgFSAaViADKQP4AyEaIAMpA/ADIRQgAykD6AMhGCADKQOoBCEbIAMpA6AEIRwgAykDmAQhEw0DCyADIBsgGn03A6gEIAMgHCAUfSIVIBogG1atIhp9NwOgBCADIBMgGH0iGyAVIBpUIBQgHFZyrSIUfTcDmAQgAyAZIBZ9IhUgEyAYVCAUIBtWcq0iE303A5AEIAMgFyASfSIUIBMgFVYgFiAZVnKtIhN9IhY3A4gEIB8gHX0gEyAUViASIBdWcq19DAMLIAMpA4AEIR8gAykD0AMhHSAXIRYgGiEZIBghGyASIRwgEyEUCyADIBkgGn03A5gDIAMgGyAYfSIVIBkgGlStIhl9NwOQAyADIBwgEn0iISAVIBlUIBggG1ZyrSIVfTcDiAMgAyAUIBN9IhggFSAhViASIBxWcq0iEn03A4ADIAMgFyAWfSIVIBMgFFYgEiAYVnKtIhJ9NwP4AiADICAgHn0gEiAVViAWIBdWcq19NwPwAiADKQPYAyEeIAMCfgJAAkACQCAdIB9SBEAgAykDkAQhGCADKQOIBCEWIAMpA+ADIRsgHSESIB8hFwwBCyADKQOQBCEYIAMpA+ADIRsgAykDiAQiFiAeUgRAIB4hEiAWIRcMAQsgGCAbUgRAIB4hFiAbIRIgGCEXDAELIAMpA+gDIhQgAykDmAQiF1IEQCAeIRYgGyEYIBQhEgwBCyADKQPwAyIZIAMpA6AEIhdSBEAgHiEWIBshGCAZIRIMAQsgHiEWIBshGCADKQP4AyISIRwgGSETIBQhFSASIAMpA6gEIhdRDQELIBIgF1QgAykDqAQhEiADKQOgBCEZIAMpA5gEIRQgAykD+AMhHCADKQPwAyETIAMpA+gDIRUNAQsgAyAcIBJ9NwP4AyADIBMgGX0iFyASIBxWrSISfTcD8AMgAyAVIBR9IhwgEyAZVCASIBdWcq0iEn03A+gDIAMgGyAYfSITIBQgFVYgEiAcVnKtIhJ9NwPgAyADIB4gFn0iFCASIBNWIBggG1ZyrSITfSISNwPYAyAdIB99IBMgFFYgFiAeVnKtfQwBCyADQqvV/v///7//uX8gEn0iFyAcfCIcNwP4AyADIBNC///Piuv//9UeIBl9IhMgEkKr1f7///+//7l/Vq0iIH0iIXwiEiAXIBxWrXwiFzcD8AMgAyAVQqTsw7WP1LSY5wAgFH0iFSATICBUIBlC///Piuv//9UeVnKtIhl9Ihx8IhMgEiAhVCASIBdWcq18Ihc3A+gDIAMgG0K/pZScz/DSu+QAIBh9IhsgFSAZVCAUQqTsw7WP1LSY5wBWcq0iFH0iFXwiEiATIBxUIBMgF1ZyrXwiGTcD4AMgA0LX2a6a5PbpjcsAIBZ9IhcgFCAbViAYQr+llJzP8NK75ABWcq0iFH0iGCAefCITIBIgFVQgEiAZVnKtfCISNwPYAyASIBNUIBMgGFRyrSAdIB99IBQgF1YgFkLX2a6a5PbpjcsAVnKtfXxCms3/y6O9xIAafAsiHTcD0AMMAgsgAyAbQqvV/v///7//uX8gGn0iG3wiHjcDqAQgAyAcQv//z4rr///VHiAUfSIcIBpCq9X+////v/+5f1atIhp9IiB8IhUgGyAeVq18Ihs3A6AEIANCpOzDtY/UtJjnACAYfSIeIBogHFYgFEL//8+K6///1R5Wcq0iFH0iGiATfCITIBUgIFQgFSAbVnKtfCIVNwOYBCADIBlCv6WUnM/w0rvkACAWfSIZIBQgHlYgGEKk7MO1j9S0mOcAVnKtIhh9Iht8IhQgEyAaVCATIBVWcq18IhU3A5AEIANC19mumuT26Y3LACASfSIaIBggGVYgFkK/pZScz/DSu+QAVnKtIhh9IhkgF3wiEyAUIBtUIBQgFVZyrXwiFjcDiAQgEyAZVCATIBZWcq0gHyAdfSAYIBpWIBJC19mumuT26Y3LAFZyrX18QprN/8ujvcSAGnwLIh83A4AEICEhGgsgA0HwAmogA0HAAmoiBkEwENAERQ0BIANBoANqIAZBMBDQBA0ACyAWIRIgHyEdIAghBQsgA0GoAWogBUEYaikDADcDACADQaABaiAFQRBqKQMANwMAIANBmAFqIAVBCGopAwA3AwAgAyAFKQMANwOQASADIBI3A4gBIAMgHTcDgAEgA0H0AGogA0HYAGogA0GAAWoQlwIgAygCcCIFQTBsIQQgAygCbCEGAkADQCAERQ0BIAVBAWshBSAEQTBrIgQgBmoiCEGg7sAAQTAQ0ARFDQALIAVBAEgNACADQbgCaiIFIAhBKGopAwA3AwAgA0GwAmoiByAIQSBqKQMANwMAIANBqAJqIgQgCEEYaikDADcDACADQaACaiILIAhBEGopAwA3AwAgA0GYAmoiCiAIQQhqKQMANwMAIAMgCCkDADcDkAIgA0GQAmpByNTBAEEwENAERQ0JQgAhEiADQeACakIANwMAIANB2AJqQgA3AwAgA0HQAmpCADcDACADQcgCakIANwMAIANCADcDwAIgA0IBNwPoAiADQZgDaiAFKQMANwMAIANBkANqIAcpAwA3AwAgA0GIA2ogBCkDADcDACADQYADaiALKQMANwMAIANB+AJqIAopAwA3AwAgAyADKQOQAjcD8AIgA0HIA2pB2NLBACkDADcDACADQcADakHQ0sEAKQMANwMAIANBuANqQcjSwQApAwA3AwAgA0GwA2pBwNLBACkDADcDACADQagDakG40sEAKQMANwMAIANBsNLBACkDADcDoAMgA0H4A2pBoNXBACkDADcDACADQfADakGY1cEAKQMANwMAIANB6ANqQZDVwQApAwA3AwAgA0HgA2oiBUGI1cEAKQMANwMAIANB2ANqQYDVwQApAwA3AwAgA0H41MEAKQMANwPQAyADQagEakIANwMAIANBoARqQgA3AwAgA0GYBGpCADcDACADQZAEaiII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tY/UtJjnAFZyrSIYfSIbfCIUIBMgGlQgEyAVVnKtfCIVNwOQBCADQtfZrprk9umNywAgEn0iGiAYIBlWIBZCv6WUnM/w0rvkAFZyrSIYfSIZIBd8IhMgFCAbVCAUIBVWcq18IhY3A4gEIBMgGVQgEyAWVnKtIB8gHX0gGCAaViASQtfZrprk9umNywBWcq19fEKazf/Lo73EgBp8CyIfNwOABCAhIRoLIANB8AJqIANBwAJqIgdBMBDQBEUNDCADQaADaiAHQTAQ0AQNAAsgFiESIB8hHSAIIQUMCwsMCwsMCgsMCgsMCQsMCQsMCAsgBCAPEKgEAAsMBgsMBQsgA0ICNwOABEGA08EAQSsgA0GABGpBrNPBAEGY18EAEL4DAAsgA0ICNwOABEGA08EAQSsgA0GABGpBrNPBAEGo18EAEL4DAAsgA0GIAmogBUEYaikDADcDACADQYACaiAFQRBqKQMANwMAIANB+AFqIAVBCGopAwA3AwAgAyAFKQMANwPwASADIBI3A+gBIAMgHTcD4AEgAEEMaiADQegAaiADQeABahCXAiAAQQhqIANB/ABqKAIANgIAIAAgAykCdDcCACADKAJoIgAEQCAGIABBMGwQuQQLIAMoAlgiAARAIAMoAlwgAEEwbBC5BAsgAygCSCIABEAgAygCTCAAQTBsELkECyADKAIwIgAEQCADKAI0IABBMGwQuQQLIAMoAjwiAARAIAMoAkAgAEEwbBC5BAsgAigCACIABEAgESAAQTBsELkECyACKAIMIgAEQCANIABBMGwQuQQLIAEoAgAiAARAIBAgAEEwbBC5BAsgASgCDCIABEAgDiAAQTBsELkECyADQbAEaiQADwtBvPPAAEErIANBgARqQejzwABB+PPAABC+AwALIAQgChCoBAALIAQgDBCoBAALgkwCBX8ffiMAQeAMayICJAAgAkGoCmogASkDECIaIAEpAxgiG0IAEL0DIAJBiApqIAEpAwgiHCAbQgAQvQMgAkHYCWogASkDACIdIBtCABC9AyACQfgJaiAcIBpCABC9AyACQcgJaiAdIBpCABC9AyACQbgJaiAdIBxCABC9AyACQfgKaiAbIBtCABC9AyACQZgKaiAaIBpCABC9AyACQegJaiAcIBxCABC9AyACQagJaiAdIB1CABC9AyACQegKaiACKQP4CiILQonHmaSu8IHph39+IgdCx/rzw+2Co5A8QgAQvQMgAkHYCmogB0KNlcfDltLawJd/QgAQvQMgAkHICmogB0LdsIWM6LaRqLh/QgAQvQMgAkG4CmogB0KpwMaJrs6TsjBCABC9AyACQfAJaikDACEOIAIgAkGgCmopAwAgAikDmAoiCiACQbAKaikDACIJIAIpA4gKfCIHQgGGIAIpA6gKIg9CP4iEfCIIIApUrXwgCCACQYALaikDACIKIA9CAYZ8Ig8gClStfCINIAhUrXwiESACQZAKaikDACAHIAlUrXwiCSACKQPYCXwiCCACKQP4CXwiCkIBhiAHQj+IhHwiECARVK0iESACKQPoCXwiByACQeAJaikDACAIIAlUrXwiDCACKQPICXwiCSACQYAKaikDACAIIApWrXx8IghCAYYgCkI/iIR8Igo3A8gMIAIgByAKVq0gDiAHIBFUrXx8IgogCCAJVK0gAkHQCWopAwAgCSAMVK18fCIJIAIpA7gJfCIHQgGGIAhCP4iEfCIINwPQDCACIAIpA6gJIg4gAkHACWopAwAgByAJVK18IglCAYYgB0I/iIR8IgcgCCAKVK18Igg3A9gMIAcgCFatIAJBsAlqKQMAIAcgDlStfHwgCUI/iHwhDCACQeAKaikDACEIIAIgAkHwCmopAwAgAikD6AoiByALQn2DfCAHVK18IgogAikD2Ap8IgcgD3wiCTcDiAwgAkHQCmopAwAhCyACIAcgCVatIAggByAKVK18fCIIIAIpA8gKfCIHIA18Igo3A6gMIAJBwApqKQMAIQkgAiAHIApWrSALIAcgCFStfHwiCCACKQO4CnwiByAQfCIKNwPICwJAIAcgClatIAkgByAIVK18fCIHUARADAELIAIgByACKQPIDHwiCDcDyAwgByAIViIDRQ0AIAIgA60iByACKQPQDHwiCDcD0AwgByAIViEDIAcgCFgNACACIAOtIgcgAikD2Ax8Igg3A9gMIAcgCFYhAyAHIAhYDQAgA60iByAMfCIMIAdUIQMLIAJBmAlqIAIpA4gMIghCiceZpK7wgemHf34iB0LH+vPD7YKjkDxCABC9AyACQYgJaiAHQo2Vx8OW0trAl39CABC9AyACQfgIaiAHQt2whYzotpGouH9CABC9AyACQegIaiAHQqnAxomuzpOyMEIAEL0DIAIg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IAkgClatfHx8Ihd8IgkgAykDgAF8IgogA0GYAWopAwAgAykDkAEiDSATfCANVK18fCIPIAMpA7AEfCITQgBCiceZpK7wgemHfxC9AyADQTBqIANByABqKQMAIg1Cx/rzw+2Co5A8QgAQvQMgA0EgaiANQo2Vx8OW0trAl39CABC9AyADQRBqIA1C3bCFjOi2kai4f0IAEL0DIAMgDUKpwMaJrs6TsjBCABC9AwJAAkAgA0EIaikDACADQegAaikDACADQcgBaikDACARIBVUrSADQagCaikDACAOIBVWrXx8IANB2ABqKQMAIA4gFFStfHwiDiADKQOAA3wiDSALIAxWrSADQZgDaikDACALIBFUrXx8fCIRIAMpA8ABfCILIBFUrXwgCyAWIBdWrSADQdgBaikDACAMIBZWrXx8fCIMIAtUrXwgDSARVq0gA0GIA2opAwAgDSAOVK18fHwiDiADKQPAA3wiDSADQdgDaikDACAMIAwgAykD0AN8IgxWrXwgDCAMIAkgEFStIANB6ANqKQMAIBAgElStfHx8IgxWrXx8IhEgAykDYHwiCyARVK18IAsgA0H4AGopAwAgDCAMIAMpA3B8IgxWrXwgDCAMIAogD1atIANBiAFqKQMAIAkgClatfHx8IgxWrXx8IgkgC1StfCANIBFWrSADQcgDaikDACANIA5UrXx8fCIRIAMpA4AEfCINIANBmARqKQMAIAkgCSADKQOQBHwiCVatfCAJIAkgA0GoBGopAwAgA0G4BGopAwAgDyATVq18Ig8gAykDoAR8IgogD1StfCAKIAogDHwiClatfHwiCVatfHwiDCADKQMAfCIPIAxUrXwgDyAPIANBGGopAwAgCSAJIAMpAxB8IglWrXwgCSADQShqKQMAIAogCiADKQMgfCIKVq18IAogA0E4aikDACADKQMwIgsgE3wgC1StfHwiCyAKVK18fCIKIAlUrXx8Ig9WrXwgDCANVK0gA0GIBGopAwAgDSARVK18fHwiDkKpwMaJrs6TsjBWDQACQCAOQqnAxomuzpOyMFEEQCAPQt2whYzotpGouH9WDQIgD0LdsIWM6LaRqLh/UgRAIAohCSAPIQ1CqcDGia7Ok7IwIQ4MBAsgCkKNlcfDltLawJd/Vg0CQt2whYzotpGouH8hDSAKQo2Vx8OW0trAl39RDQEgCiEJ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CyADKQPoDHwiCTcD6AwgCSALVCEHIAkgC1oNAyAHrSIJIAp8IgogCVQhBwwDCyAAIAIpAyA3AyAgACACKQMANwMAIABBOGogAkE4aikDADcDACAAQTBqIAJBMGopAwA3AwAgAEEoaiACQShqKQMANwMAIABBCGogAkEIaikDADcDACAAQRBqIAJBEGopAwA3AwAgAEEYaiACQRhqKQMANwMADAULIAAgASkDIDcDICAAIAEpAwA3AwAgAEE4aiABQThqKQMANwMAIABBMGogAUEwaikDADcDACAAQShqIAFBKGopAwA3AwAgAEEIaiABQQhqKQMANwMAIABBEGogAUEQaikDADcDACAAQRhqIAFBGGopAwA3AwAMBAsgASkDMCIPIAIpAzAiCVQgDyAJfSIKIAEpAzgiCyACKQM4Ig9UrSIJVHKtIhAgASkDKCITIAIpAygiDX0iEUJ/hXwiDCAKQn+FIAl8IgogCyAPfSISQm1WrSIPVK0iCX0hCyAJIAxWIQUgCiAPfSEKIA0gE1YgECARVnKtIBQgF318Qv///////////wB8IRFCbSASfSEPDAELIANBoAdqIAMpA/AMIglCm5Svw/K1qN6Gf34iC0JtQgAQvQMgA0GQB2ogC0J/QgAQvQMgA0GAB2ogC0L///////////8AQgAQvQMgAyAJIAMpA6AHIgt8Igk3A/AMIANBmAdqKQMAIRAgAyADQagHaikDACAJIAtUrXwiCyADKQOQByIMfCINIAMpA/gMfCIJNwP4DCADIAwgCSANVK0gECALIA1WrXx8Igt8Ig0gAykD+At8Igk3A/gLIANBiAdqKQMAIQwgAyAJIA1UrSAQIAsgDVatfHwiCyADKQOAB3wiDSADKQPYDHwiCTcD2AwCQCAJIA1UrSAMIAsgDVatfHwiC1ANACADIAsgAykD4Ax8Igk3A+AMIAkgC1QhBiAJIAtaDQAgAyAGrSILIAMpA+gMfCIJNwPoDCAJIAtUIQYgCSALWg0AIAatIgkgCnwiCiAJVCEGCyADQfAGaiADKQP4DCIJQpuUr8Pytajehn9+IgtCbUIAEL0DIANB4AZqIAtCf0IAEL0DIANB0AZqIAtC////////////AEIAEL0DIAMgCSADKQPwBiILfCIJNwP4DCADQegGaikDACEQIAMgA0H4BmopAwAgCSALVK18IgsgAykD4AYiDHwiDSADKQP4C3wiCTcD+AsgAyAMIAkgDVStIBAgCyANVq18fCILfCINIAMpA9gMfCIJNwPYDCADQdgGaikDACEMIAMgCSANVK0gECALIA1WrXx8IgsgAykD0AZ8Ig0gAykD4Ax8Igk3A+AMQQAhBCAJIA1UrSAMIAsgDVatfHwiC1BFBEAgAyALIAMpA+gMfCIJNwPoDCAJIAtUIgStIgsgCnwiCSAKIAQbIQogBCAJIAtUcSEECyADQcAGaiADKQP4CyIJQpuUr8Pytajehn9+IgtCbUIAEL0DIANBsAZqIAtCf0IAEL0DIANBoAZqIAtC////////////AEIAEL0DIAMgCSADKQPABiILfCIJNwP4CyADQbgGaikDACEQIAMgA0HIBmopAwAgCSALVK18IgsgAykDsAYiDHwiDSADKQPYDHwiCTcD2AwgAyAMIAkgDVStIBAgCyANVq18fCILfCINIAMpA+AMfCIJNwPgDCADQagGaikDACEMIAMgCSANVK0gECALIA1WrXx8IgsgAykDoAZ8Ig0gAykD6Ax8Igk3A+gMIAkgDVStIAwgCyANVq18fCILIAp8IgkgCiALQgBSIgUbIQoCQAJAIAYgB3IgBHIgCSALVCIErSALIAUbQgBSciAEIAVxckUEQCADKQPoDCEMIAMpA+AMIQsgAykD2AwhECAKQgBTBEAgCiEJDAILQv///////////wAhCSAKQv///////////wBSIAxCf1JyIAtCf1JyDQJCfyEMQn8hCyAQQm1UDQIMAQsgAykD6AwhDCADKQPgDCELIAMpA9gMIRAgCiEJCyADIBBCE3w3A9gMIAMgC0IBfCIOIBBCbVStIgp9NwPgDCADIAxCAXwiDSALQn9SIAogDlZyrSIKfTcD6AwgCSAMQn9SIAogDVZyrX1C////////////AH0hCgsgAyAKNwOgCSADIAMpA+gMNwOoCSADIAMpA+AMNwOwCSADIAMpA9gMNwO4CSADQfgLaiADQbgMaiADQaAJahCFASADKQP4CyIMIBt8IhAgAykDgAwiCSAZfCINIAlUIA0gAykDiAwiCSAWfCILIAlUIAsgCyADKQOQDCIJIBd8IgogCVStfCILVnKtfCIOIA1Ucq18IQkCQAJAAkAgCSAQVCAMIBBWcg0AQv///////////wAhECAJIgxC////////////AFEEQEJ/IRBC////////////ACEMIA5Cf1INAiALQn9SBEAgCyENDAQLQm0hECAKIQwgCkJtUQ0BCyAMIBBaDQAgCSEMDAELIAtCAXwiFCAKQm1UrSIQfSENIA5CAXwiDCALQn9SIBAgFFZyrSILfSEQIAkgDkJ/UiALIAxWcq19Qv///////////wB9IQwgCkITfCEKDAELIA4hECALIQ0LIAMgCjcD8AsgAyANNwPoCyADIBA3A+ALIAMgDDcD2AsgA0GwCWpCADcDACADQagJakIANwMAIANCADcDoAkgA0LMADcDuAkgA0GYDGoiBCADQaAJaiAIEIUBIANBgAlqIANB2AtqIAQQVQwBCyADIA83A9AMIAMgCjcDyAwgAyALNwPADCADIBEgBa19NwO4DCABKQMAIhMhESACKQMAIhYhDAJ+AkACfgJAIBMgFlINACABKQMIIg8gAikDCCIMUgRAIA8hEQwBCyABKQMQIhIgAikDECIMUgRAIBIhEQwBCyAPIRAgASkDGCIRIQ4gEiARIAIpAxgiDFENARoLIAEpAxAhEiAMIBFYDQEgASkDCCEPIAIpAwghECABKQMYIREgAikDGCEOIAIpAxALIgsgEn0iDSAOIBFUrSIJfSEMIBAgD30iCiALIBJUIAkgDVZyrSIJfSELIAkgClYgDyAQVnIhBSAOIBF9IRAgFiATfQwBCyASIAIpAxAiCVQgEiAJfSILIAEpAxgiESACKQMYIgpUrSIJVHKtIhcgASkDCCIPIAIpAwgiFH0iDkJ/hXwiECALQn+FIAl8IgwgESAKfSINQm1WrSIKVK0iCX0hCyAJIBBWIQUgDCAKfSEMQm0gDX0hECAPIBRUIA4gF1RyrSAWIBN9fEL///////////8AfAshCiADIBA3A7gJIAMgDDcDsAkgAyALNwOoCSADIAogBa19NwOgCSADQYAJaiADQbgMaiADQaAJahBVCyADQbAFaiADKQOQCSIcIAMpA5gJIhpCABC9AyADQaAFaiADKQOICSIYIBpCABC9AyADQZAFaiADKQOACSIVIBpCABC9AyADQeAFaiAYIBxCABC9AyADQdAFaiAVIBxCABC9AyADQYAGaiAVIBhCABC9AyADQYAFaiAaIBpCABC9AyADQcAFaiAcIBxCABC9AyADQfAFaiAYIBhCABC9AyADQZAGaiAVIBVCABC9AyADQfAEaiADKQOABSIXQpuUr8Pytajehn9+IglCbUIAEL0DIANB4ARqIAlCf0IAEL0DIANB0ARqIAlC////////////AEIAEL0DIANB+AVqKQMAIQwgAyADQcgFaikDACADKQPABSIJIANBuAVqKQMAIgsgAykDoAV8Ig5CAYYgAykDsAUiCkI/iIR8Ig0gCVStfCANIANBiAVqKQMAIgkgCkIBhnwiFCAJVK18IhAgDVStfCIKIANBqAVqKQMAIAsgDlatfCIJIAMpA5AFfCIWIAMpA+AFfCIbQgGGIA5CP4iEfCINIApUrSILIAMpA/AFfCIZIANBmAVqKQMAIAkgFlatfCIKIAMpA9AFfCIOIANB6AVqKQMAIBYgG1atfHwiFkIBhiAbQj+IhHwiCTcD6AwgAyAJIBlUrSAMIAsgGVatfHwiDCAOIBZWrSADQdgFaikDACAKIA5WrXx8IgogAykDgAZ8Ig5CAYYgFkI/iIR8Igk3A/AMIAMgAykDkAYiCyADQYgGaikDACAKIA5WrXwiCkIBhiAOQj+IhHwiDiAJIAxUrXwiCTcD+AwgCSAOVK0gA0GYBmopAwAgCyAOVq18fCAKQj+IfCEOIANB6ARqKQMAIRYgAyADQfgEaikDACADKQPwBCIJIBdCfYN8IAlUrXwiCiADKQPgBCILfCIMIBR8Igk3A/gLIAMgCyAJIAxUrSAWIAogDFatfHwiCnwiDCAQfCIJNwO4DCADQdgEaikDACELIAMgCSAMVK0gFiAKIAxWrXx8IgogAykD0AR8IgwgDXwiCTcDoAlBACEFAkAgCSAMVK0gCyAKIAxWrXx8IgpQBEBBACEGDAELIAMgCiADKQPoDHwiCTcD6AwgCSAKVCIGRQ0AIAMgBq0iCiADKQPwDHwiCTcD8AwgCSAKVCEGIAkgCloNACADIAatIgogAykD+Ax8Igk3A/gMIAkgClQhBiAJIApaDQAgBq0iCSAOfCIOIAlUIQYLIANBwARqIAMpA/gLIglCm5Svw/K1qN6Gf34iCkJtQgAQvQMgA0GwBGogCkJ/QgAQvQMgA0GgBGogCkL///////////8AQgAQvQMgAyAJIAMpA8AEIgp8Igk3A/gLIANBuARqKQMAIQ0gAyADQcgEaikDACAJIApUrXwiCiADKQOwBCILfCIMIAMpA7gMfCIJNwO4DCADIAsgCSAMVK0gDSAKIAxWrXx8Igp8IgwgAykDoAl8Igk3A6AJIANBqARqKQMAIQsgAyAJIAxUrSANIAogDFatfHwiCiADKQOgBHwiDCADKQPoDHwiCTcD6AwCQCAJIAxUrSALIAogDFatfHwiClANACADIAogAykD8Ax8Igk3A/AMIAkgClQhBSAJIApaDQAgAyAFrSIKIAMpA/gMfCIJNwP4DCAJIApUIQUgCSAKWg0AIAWtIgkgDnwiDiAJVCEFCyADQZAEaiADKQO4DCIJQpuUr8Pytajehn9+IgpCbUIAEL0DIANBgARqIApCf0IAEL0DIANB8ANqIApC////////////AEIAEL0DIAMgCSADKQOQBCIKfCIJNwO4DCADQYgEaikDACENIAMgA0GYBGopAwAgCSAKVK18IgogAykDgAQiC3wiDCADKQOgCXwiCTcDoAkgAyALIAkgDFStIA0gCiAMVq18fCIKfCIMIAMpA+gMfCIJNwPoDCADQfgDaikDACELIAMgCSAMVK0gDSAKIAxWrXx8IgogAykD8AN8IgwgAykD8Ax8Igk3A/AMQQAhBCAJIAxUrSALIAogDFatfHwiClBFBEAgAyAKIAMpA/gMfCIJNwP4DCAJIApUIgStIgogDnwiCSAOIAQbIQ4gBCAJIApUcSEECyADQeADaiADKQOgCSIJQpuUr8Pytajehn9+IgpCbUIAEL0DIANB0ANqIApCf0IAEL0DIANBwANqIApC////////////AEIAEL0DIAMgCSADKQPgAyIKfCIJNwOgCSADQdgDaikDACENIAMgA0HoA2opAwAgCSAKVK18IgogAykD0AMiC3wiDCADKQPoDHwiCTcD6AwgAyALIAkgDFStIA0gCiAMVq18fCIKfCIMIAMpA/AMfCIJNwPwDCADQcgDaikDACELIAMgCSAMVK0gDSAKIAxWrXx8IgogAykDwAN8IgwgAykD+Ax8Igk3A/gMIAkgDFStIAsgCiAMVq18fCIKIA58IgkgDiAKQgBSIggbIQ4CQAJAIAUgBnIgBHIgCSAKVCIErSAKIAgbQgBSciAEIAhxckUEQCADKQP4DCENIAMpA/AMIQsgAykD6AwhDCAOQgBTBEAgDiEQIA0hCSALIQoMAgtC////////////ACEQIA5C////////////AFIgDUJ/UnIgC0J/UnINAkJ/IQlCfyEKIAxCbVQNAgwBCyADKQP4DCEJIAMpA/AMIQogAykD6AwhDCAOIRALIApCAXwiFCAMQm1UrSINfSELIAlCAXwiDiAKQn9SIA0gFFZyrSIKfSENIBAgCUJ/UiAKIA5Wcq19Qv///////////wB9IQ4gDEITfCEMCyADAn4CQAJAIBMiCSAOIgpSDQAgDyIJIA0iClINACALIQogCyASIglSDQAgESIJIAwiClENAQsgCSAKVA0AIBIgC30iCiAMIBFWrSIJVCALIBJWcq0iFiAPIA19IhdCf4V8IhQgCSAKQn+FfCIQIBEgDH0iDEJtVq0iClStIgl9IQsgCSAUViEFIBAgCn0hCSANIA9WIBYgF1ZyrSAOIBN9fEL///////////8AfCEOQm0gDH0MAQsgCyASfSIUIAwgEVStIgp9IQkgDSAPfSIQIAsgElQgCiAUVnKtIgp9IQsgDSAPVCAKIBBWciEFIA4gE30hDiAMIBF9CzcDuAkgAyAJNwOwCSADIAs3A6gJIAMgDiAFrX03A6AJIANBuAxqIANBoAlqIAIQ0AIgAykDuAwiGSEOIANB8AJqAn4CQAJ+AkAgGSATIgtSDQAgDyILIAMpA8AMIg5SDQAgEiILIAMpA8gMIg5SDQAgCyEKIBEiCyEMIA8gAykD0AwiDiALUQ0BGgsgAykD0AwhDCALIA5YDQEgAykDyAwhCiADKQPADAshCSASIAp9IhAgDCARVq0iDX0hDiAPIAl9IgsgCiASViANIBBWcq0iCn0hEiAJIA9WIAogC1ZyIQIgEyAZfSEJIBEgDH0MAQsgAykDyAwiCSASVCAJIBJ9IgogDCARVK0iCVRyrSIWIAMpA8AMIhcgD30iFEJ/hXwiECAKQn+FIAl8Ig0gDCARfSILQm1WrSIKVK0iCX0hEiAJIBBWIQIgDSAKfSEOIBQgFlQgDyAXVnKtIBMgGX18Qv///////////wB8IQlCbSALfQsiDyAaQgAQvQMgA0GwAmogDyAcQgAQvQMgA0GgAmogDyAYQgAQvQMgA0GQAmogDyAVQgAQvQMgA0HgAmogAykD8AIiDEKblK/D8rWo3oZ/fiIPQm1CABC9AyADQdACaiAPQn9CABC9AyADQcACaiAPQv///////////wBCABC9AyADQYACaiAOIBpCABC9AyADQcABaiAOIBxCABC9AyADQbABaiAOIBhCABC9AyADQaABaiAOIBVCABC9AyADQfABaiADKQPQAiIQIANB+AJqKQMAIgsgAykDsAJ8Igp8IhMgA0HoAmopAwAgDCADKQPgAiIPfCAPVK18fCIRIAMpA4ACfCIMQpuUr8Pytajehn9+Ig9CbUIAEL0DIANB4AFqIA9Cf0IAEL0DIANB0AFqIA9C////////////AEIAEL0DIANBkAFqIBIgGkIAEL0DIANB0ABqIBIgHEIAEL0DIANBEGogEiAYQgAQvQMgAyASIBVCABC9AyADQYABaiADQYgCaikDACAMIBFUrXwiDSADKQPAAXwiHSAQIANBuAJqKQMAIAogC1StfCISIAMpA6ACfCIbfCIOIBEgE1StIANB2AJqKQMAIhEgECATVq18fHwiC3wiGSADKQPgASIKfCIWIANB+AFqKQMAIAMpA/ABIg8gDHwgD1StfHwiFCADKQOQAXwiF0KblK/D8rWo3oZ/fiIPQm1CABC9AyADQfAAaiAPQn9CABC9AyADQeAAaiAPQv///////////wBCABC9AyADQbADaiAJIAKtfSIJIBpCABC9AyADQaADaiAJIBxCABC9AyADQZADaiAJIBhCABC9AyADQYADaiAJIBVCABC9AyADQUBrIANBmAFqKQMAIBQgF1atfCIMIAMpA1B8IhggCiADQagCaikDACASIBtWrXwiEiADKQOQAnwiECADKQPAAnwiEyALIA5UrSARIA4gG1StfHx8IhUgAykDsAF8IhsgGSAdVK0gA0HIAWopAwAgDSAdVq18fHwiDnwiESAUIBZUrSADQegBaikDACILIBYgGVStfHx8Igp8IhkgAykDcCIPfCIUIANBiAFqKQMAIAMpA4ABIgkgF3wgCVStfHwiFiADKQOwA3wiF0KblK/D8rWo3oZ/fiIJQm1CABC9AyADQTBqIAlCf0IAEL0DIANBIGogCUL///////////8AQgAQvQMCQAJAIANBKGopAwAgA0HoAGopAwAgA0HYAWopAwAgEyAVVq0gA0HIAmopAwAgECATVq18fCIJIANBmAJqKQMAIBAgElStfHwiECADKQOgAXwiEyAOIBtUrSADQbgBaikDACAVIBtWrXx8fCINIAMpA9ABfCISIA1UrXwgEiAKIBFUrSALIA4gEVatfHx8IhEgElStfCISIA0gE1StIANBqAFqKQMAIBAgE1atfHwiCyAJIBBWrXwiCnwiDiADKQMAfCIQIANBGGopAwAgESADKQMQfCIJIBFUrXwgCSAYIBlWrSADQdgAaikDACAMIBhWrXx8fCINIAlUrXx8IhEgAykDYHwiDCARVK18IAwgA0H4AGopAwAiCSANIA98Ig8gDVStfCAPIA8gFCAWVq0gCSAUIBlUrXx8fCIPVq18fCIJIAxUrXwiEyAQIBFWrSADQQhqKQMAIA4gEFatfHwiDSAOIBJUrSAKIAtUrXx8Igp8IhQgAykDgAN8Ig4gA0GYA2opAwAgCSADKQOQA3wiEiAJVK18IBIgA0GoA2opAwAgA0G4A2opAwAgFiAXVq18IgkgAykDoAN8IgsgCVStfCALIA98IhEgC1StfHwiCyASVK18fCIQIAMpAyB8IgwgEFStfCAMIANBOGopAwAiDyALIAMpAzAiCXwiEiALVK18IBIgDyAJIBF8IgsgEVStfCALIANByABqKQMAIAMpA0AiCSAXfCAJVK18fCIRIAtUrXx8IgkgElStfHwiCyAMVK18IgwgDiAQVq0gA0GIA2opAwAgDiAUVK18fCISIBMgFFatIAogDVStfHwiCnwiD0IAUyAMIA9WrUIAIAogElStfVJyDQACQCAPQv///////////wBRBEBCfyETIAtCf1ENAUL///////////8AIQ8LIAshEyAJIQoMAgsgCUJ/UgRAQv///////////wAhDyAJIQoMAgsgEUJtWg0AQv///////////wAhD0J/IQoMAQsgCUIBfCINIBFCbVStIgx9IQogC0IBfCISIAlCf1IgDCANVnKtIgl9IRMgDyALQn9SIAkgElZyrX1C////////////AH0hDyARQhN8IRELIAMgETcDuAkgAyAKNwOwCSADIBM3A6gJIAMgDzcDoAkgAEEgaiADQaAJaiABQSBqENACIABBGGogA0HQDGopAwA3AwAgAEEQaiADQcgMaikDADcDACAAQQhqIANBwAxqKQMANwMAIAAgAykDuAw3AwALIANBgA1qJAALqUcCAX83fiMAQeASayIDJAAgA0HwEWogASkDGCIJIAIpAxgiDEIAEL0DIANBkBFqIAEpAxAiECAMQgAQvQMgA0GAEWogASkDCCISIAxCABC9AyADQfAQaiABKQMAIgogDEIAEL0DIANB4BFqIAMpA/ARIgZCAEKJx5mkrvCB6Yd/EL0DIANB0BFqIANB6BFqKQMAIgVCx/rzw+2Co5A8QgAQvQMgA0HAEWogBUKNlcfDltLawJd/QgAQvQMgA0GwEWogBULdsIWM6LaRqLh/QgAQvQMgA0GgEWogBUKpwMaJrs6TsjBCABC9AyADQeAQaiACKQMQIhMgCUIAEL0DIANBgBBqIBMgEEIAEL0DIANB8A9qIBMgEkIAEL0DIANB4A9qIBMgCkIAEL0DIANB0BBqIAMpA8ARIhkgA0H4EWopAwAiDSADKQOQEXwiEXwiBCADQdgRaikDACAGIAMpA9ARIgV8IAVUrXx8IgYgAykD4BB8IgdCAEKJx5mkrvCB6Yd/EL0DIANBwBBqIANB2BBqKQMAIgVCx/rzw+2Co5A8QgAQvQMgA0GwEGogBUKNlcfDltLawJd/QgAQvQMgA0GgEGogBULdsIWM6LaRqLh/QgAQvQMgA0GQEGogBUKpwMaJrs6TsjBCABC9AyADQdAPaiACKQMIIhggCUIAEL0DIANB8A5qIBggEEIAEL0DIANB4A5qIBggEkIAEL0DIANB0A5qIBggCkIAEL0DIANBwA9qIANB6BBqKQMAIAYgB1atfCIVIAMpA4AQfCIIIANBmBFqKQMAIA0gEVatfCIOIAMpA4ARfCINIAMpA7ARfCIRIAQgBlatIANByBFqKQMAIAQgGVStfHx8Igt8IgQgAykDsBB8IgYgA0HIEGopAwAgAykDwBAiBSAHfCAFVK18fCIHIAMpA9APfCIWQgBCiceZpK7wgemHfxC9AyADQbAPaiADQcgPaikDACIFQsf688PtgqOQPEIAEL0DIANBoA9qIAVCjZXHw5bS2sCXf0IAEL0DIANBkA9qIAVC3bCFjOi2kai4f0IAEL0DIANBgA9qIAVCqcDGia7Ok7IwQgAQvQMgA0HADmogAikDACIZIAlCABC9AyADQeANaiAZIBBCABC9AyADQdANaiAZIBJCABC9AyADQcANaiAZIApCABC9AyADQbAOaiADQdgPaikDACAHIBZWrXwiDyADKQPwDnwiGiADQYgRaikDACANIA5UrXwiFCADKQPwEHwiDiADKQOgEXwiFyALIBFUrSADQbgRaikDACANIBFWrXx8fCINIAMpA/APfCIRIAQgCFStIANBiBBqKQMAIAggFVStfHx8IgggAykDoBB8IhUgBiAHVq0gA0G4EGopAwAgBCAGVq18fHwiC3wiBCADKQOgD3wiBiADQbgPaikDACADKQOwDyIFIBZ8IAVUrXx8IgcgAykDwA58IhZCAEKJx5mkrvCB6Yd/EL0DIANBoA5qIANBuA5qKQMAIgVCx/rzw+2Co5A8QgAQvQMgA0GQDmogBUKNlcfDltLawJd/QgAQvQMgA0GADmogBULdsIWM6LaRqLh/QgAQvQMgA0HwDWogBUKpwMaJrs6TsjBCABC9AwJAAkAgA0H4DWopAwAgA0GID2opAwAgA0GYEGopAwAgDSAXVK0gA0GoEWopAwAgDiAXVq18fCADQfgQaikDACAOIBRUrXx8Ig4gAykD4A98IgUgCCARVK0gA0H4D2opAwAgDSARVq18fHwiDSADKQOQEHwiESANVK18IBEgCyAVVK0gA0GoEGopAwAgCCAVVq18fHwiCCARVK18IAUgDVatIANB6A9qKQMAIAUgDlStfHx8Ig4gAykD0A58IgUgA0HoDmopAwAgCCAIIAMpA+AOfCIIVq18IAggCCAEIBpUrSADQfgOaikDACAPIBpWrXx8fCIIVq18fCINIAMpA4APfCIRIA1UrXwgESADQZgPaikDACAIIAggAykDkA98IghWrXwgCCAIIAYgB1atIANBqA9qKQMAIAQgBlatfHx8IghWrXx8IgQgEVStfCAFIA1WrSADQdgOaikDACAFIA5UrXx8fCIRIAMpA8ANfCIFIANB2A1qKQMAIAQgBCADKQPQDXwiBFatfCAEIAQgA0HoDWopAwAgA0HIDmopAwAgByAWVq18IgcgAykD4A18IgYgB1StfCAGIAYgCHwiBlatfHwiBFatfHwiCCADKQPwDXwiByAIVK18IAcgByADQYgOaikDACAEIAQgAykDgA58IgRWrXwgBCAEIANBmA5qKQMAIAYgBiADKQOQDnwiBlatfCAGIANBqA5qKQMAIAMpA6AOIg0gFnwgDVStfHwiDSAGVK18fCIEVq18fCIHVq18IAUgCFatIANByA1qKQMAIAUgEVStfHx8IgVCqcDGia7Ok7IwVg0AAkAg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gqOQPEIAEL0DIANB4ARqIAVCjZXHw5bS2sCXf0IAEL0DIANB0ARqIAVC3bCFjOi2kai4f0IAEL0DIANBwARqIAVCqcDGia7Ok7IwQgAQvQMgA0GYBmopAwAhCyADQagIaikDACEbIANB6AZqKQMAIRwgA0H4CGopAwAhICADKQPgCCEdIAMpA4AGIR4gAykDkAghISADQZgIaikDACEiIANB2AdqKQMAISMgA0GIBmopAwAhJCADQegIaikDACElIAMpA9AIISYgAykDoAUhJyADKQOwBSEoIANBuAVqKQMAISkgA0HIBWopAwAhKiADKQOACCErIANBiAhqKQMAISwgA0GYBWopAwAhLSADKQPAByEuIANByAdqKQMAIS8gA0GoBWopAwAhMCADQdgIaikDACExIAMpA8AIITIgAykDwAQhMyADQcgEaikDACE0IAMpA9AEITUgA0HYBGopAwAhNiADKQPgBCE3IANB6ARqKQMAITggAykD8AQhBSADQfgEaikDACE5IANByAhqKQMAITogA0GAEmogA0GgEmogA0HAEmoQywICQAJAIDQgMyAyIDAgJyAmICQgHiAdIAogElStIBwgECASVq18fCAgIA8gEFatfHwiD3wiECAIIA5UrSAbIAogDlatfHx8IhJ8IgogElStfCAKIBQgF1StIAsgCCAXVq18fHwiCCAKVK18IBAgElatICUgDyAQVq18fHwiCnwiECAiIAggCCAhfCIIVq18IAggCCAEIAlUrSAjIAkgH1StfHx8IghWrXx8Igl8IhIgCVStfCASICkgCCAIICh8IghWrXwgCCAGIAdWrSAqIAQgBlatfHx8Ig4gCFStfHwiBCASVK18IAkgEFStIDEgCiAQVq18fHwiEnwiCCAsIAQgBCArfCIEVq18IAQgBCAvIC4gLSAHIBVWrXwiB3wiBiAHVK18IAYgBiAOfCIGVq18fCIEVq18fCIHfCIJIAdUrXwgCSA2IAQgBCA1fCIEVq18IAQgBCA4IAYgBiA3fCIGVq18IAYgOSAFIBV8IAVUrXx8IhAgBlStfHwiBFatfHwiBiAJVK18IAcgCFStIDogCCASVK18fHwiEkKpwMaJrs6TsjBWDQACQCASQqnAxomuzpOyMFEEQCAGQt2whYzotpGouH9WDQIgBkLdsIWM6LaRqLh/UgRAIAQhBSAGIQhCqcDGia7Ok7IwIRIMBAsgBEKNlcfDltLawJd/Vg0CQt2whYzotpGouH8hCCAEQo2Vx8OW0trAl39RDQEgBCEFQqnAxomuzpOyMCESDAMLIAQhBSAGIQgMAgtCjZXHw5bS2sCXfyEFIBBCx/rzw+2Co5A8Wg0AQqnAxomuzpOyMCESDAELIARC8+q4vOmtpb/oAHwiByAQQsf688PtgqOQPFStIgh9IQUgBkKjz/rzl8nu18cAfCIJIARCjZXHw5bS2sCXf1QgByAIVHKtIgR9IQggEiAGQt2whYzotpGouH9UIAQgCVZyrX1CqcDGia7Ok7IwfSESIBBCx/rzw+2Co5A8fSEQCyADQfACaiANIAxCABC9AyADQZACaiARIAxCABC9AyADQbABaiAWIAxCABC9AyADQdAAaiAaIAxCABC9AyADQeACaiADKQPwAiIHQgBCiceZpK7wgemHfxC9AyADQdACaiADQegCaikDACIEQsf688PtgqOQPEIAEL0DIANBwAJqIARCjZXHw5bS2sCXf0IAEL0DIANBsAJqIARC3bCFjOi2kai4f0IAEL0DIANBoAJqIARCqcDGia7Ok7IwQgAQvQMgA0GwA2ogDSATQgAQvQMgA0GgA2ogESATQgAQvQMgA0GQA2ogFiATQgAQvQMgA0GAA2ogGiATQgAQvQMgA0GAAmogAykDwAIiDiADQfgCaikDACIKIAMpA5ACfCITfCIGIANB2AJqKQMAIAcgAykD0AIiBHwgBFStfHwiByADKQOwA3wiCUIAQonHmaSu8IHph38QvQMgA0HwAWogA0GIAmopAwAiBELH+vPD7YKjkDxCABC9AyADQeABaiAEQo2Vx8OW0trAl39CABC9AyADQdABaiAEQt2whYzotpGouH9CABC9AyADQcABaiAEQqnAxomuzpOyMEIAEL0DIANB8ANqIA0gGEIAEL0DIANB4ANqIBEgGEIAEL0DIANB0ANqIBYgGEIAEL0DIANBwANqIBogGEIAEL0DIANBoAFqIANBuANqKQMAIAcgCVatfCIXIAMpA6ADfCIMIANBmAJqKQMAIAogE1atfCIVIAMpA7ABfCIKIAMpA7ACfCITIAYgB1atIANByAJqKQMAIAYgDlStfHx8Ig58IgYgAykD4AF8IgcgA0H4AWopAwAgAykD8AEiBCAJfCAEVK18fCIJIAMpA/ADfCIYQgBCiceZpK7wgemHfxC9AyADQZABaiADQagBaikDACIEQsf688PtgqOQPEIAEL0DIANBgAFqIARCjZXHw5bS2sCXf0IAEL0DIANB8ABqIARC3bCFjOi2kai4f0IAEL0DIANB4ABqIARCqcDGia7Ok7IwQgAQvQMgA0GwBGogDSAZQgAQvQMgA0GgBGogESAZQgAQvQMgA0GQBGogFiAZQgAQvQMgA0GABGogGiAZQgAQvQMgA0FAayADQfgDaikDACAJIBhWrXwiGiADKQPgA3wiGSADQbgBaikDACAKIBVUrXwiFSADKQNQfCINIAMpA6ACfCIRIA4gE1StIANBuAJqKQMAIAogE1atfHx8IgogAykDkAN8IhMgBiAMVK0gA0GoA2opAwAgDCAXVK18fHwiDCADKQPQAXwiFiAHIAlWrSADQegBaikDACAGIAdWrXx8fCIOfCIGIAMpA4ABfCIHIANBmAFqKQMAIAMpA5ABIgQgGHwgBFStfHwiCSADKQOwBHwiGEIAQonHmaSu8IHph38QvQMgA0EwaiADQcgAaikDACIEQsf688PtgqOQPEIAEL0DIANBIGogBEKNlcfDltLawJd/QgAQvQMgA0EQaiAEQt2whYzotpGouH9CABC9AyADIARCqcDGia7Ok7IwQgAQvQMCQAJAIANBCGopAwAgA0HoAGopAwAgA0HIAWopAwAgCiARVK0gA0GoAmopAwAgDSARVq18fCADQdgAaikDACANIBVUrXx8Ig0gAykDgAN8IgQgDCATVK0gA0GYA2opAwAgCiATVq18fHwiCiADKQPAAXwiEyAKVK18IBMgDiAWVK0gA0HYAWopAwAgDCAWVq18fHwiDCATVK18IAQgClatIANBiANqKQMAIAQgDVStfHx8Ig0gAykDwAN8IgQgA0HYA2opAwAgDCAMIAMpA9ADfCIMVq18IAwgDCAGIBlUrSADQegDaikDACAZIBpUrXx8fCIMVq18fCIKIAMpA2B8IhMgClStfCATIANB+ABqKQMAIAwgDCADKQNwfCIMVq18IAwgByAJVq0gA0GIAWopAwAgBiAHVq18fHwiByAMVK18fCIGIBNUrXwgBCAKVq0gA0HIA2opAwAgBCANVK18fHwiEyADKQOABHwiCiADQZgEaikDACAGIAMp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NwMAIAVBwAlqIAFBMGopAwA3AwAgBUHICWogAUE4aikDADcDACAFIAEpAwg3A5gJIAEoAgQhAyABKAIAIQQgAgRAIAEgAkEFdBC5BAtB2b7CAC0AABpBwABBCBCwBCIBRQ0HIAEgAzYCBCABIAQ2AgAgASAFKQOYCTcDCCABIAUpA7AJNwMgIABBAjYCCCAAIAE2AgQgAEECNgIAIAFBEGogBUGgCWopAwA3AwAgAUEYaiAFQagJaikDADcDACABQShqIAVBuAlqKQMANwMAIAFBMGogBUHACWopAwA3AwAgAUE4aiAFQcgJaikDADcDAAwGCyACIAEpAwA3AwAgAiABKQMgNwMgIAIgASkDQDcDQCACQRhqIAFBGGopAwA3AwAgAkEQaiABQRBqKQMANwMAIAJBCGoiBiABQQhqKQMANwMAIAJBKGogAUEoaikDADcDACACQTBqIAFBMGopAwA3AwAgAkE4aiABQThqKQMANwMAIAJByABqIAFByABqKQMANwMAIAJB0ABqIAFB0ABqKQMANwMAIAJB2ABqIAFB2ABqKQMANwMAIAJB+ABqIAFB+ABqKQMANwMAIAJB8ABqIAFB8ABqKQMANwMAIAJB6ABqIAFB6ABqKQMANwMAIAIgASkDYDcDYCACIAEpA4ABNwOAASACQYgBaiABQYgBaikDADcDACACQZABaiABQZABaikDADcDACACQZgBaiABQZgBaikDADcDACACIAEpA6ABNwOgASACQagBaiABQagBaikDADcDACACQbABaiABQbABaikDADcDACACQbgBaiABQbgBaikDADcDACACKQMAIV8gBUGYBmoiBCAGQbgBEM8EGiACQcABELkEIAVB+AlqIAVBuAZqIiApAwA3AwAgBUGACmogBUHABmoiEykDADcDACAFQYgKaiAFQcgGaiIUKQMANwMAIAVB2BVqIhUiASAFQdgGaiIhKQMANwMAIAVB4BVqIgIgBUHgBmoiFikDADcDACAFQegVaiIGIAVB6AZqIhcpAwA3AwAgBUHwFWoiCiAFKQPwBjcDACAFQfgVaiILIAVB+AZqIiIpAwA3AwAgBUGAFmoiDCAFQYAHaiIYKQMANwMAIAVBiBZqIgcgBUGIB2oiGSkDADcDACAFIAUpA7AGNwPwCSAFIAUpA9AGNwPQFSAFQagWaiIIIAVBqAdqIhopAwA3AwAgBUGgFmoiCSAFQaAHaiIbKQMANwMAIAVBmBZqIg0gBUGYB2oiIykDADcDACAFQbAWaiIOIAUpA7AHNwMAIAVBuBZqIg8gBUG4B2oiJCkDADcDACAFQcAWaiIQIAVBwAdqIhwpAwA3AwAgBUHIFmoiESAFQcgHaiIdKQMANwMAIAVB4AlqIAVBoAZqIhIpAwA3AwAgBUHoCWogBUGoBmoiHikDADcDACAFIAUpA5AHNwOQFiAFIAUpA5gGNwPYCSAFQcgKaiAHKQMANwMAIAVBwApqIAwpAwA3AwAgBUG4CmogCykDADcDACAFQbAKaiAKKQMANwMAIAVBqApqIAYpAwA3AwAgBUGgCmogAikDADcDACAFQZgKaiABKQMANwMAIAVBiAtqIBEpAwA3AwAgBUGAC2ogECkDADcDACAFQfgKaiAPKQMANwMAIAVB8ApqIA4pAwA3AwAgBUHoCmogCCkDADcDACAFQeAKaiAJKQMANwMAIAVB2ApqIA0pAwA3AwAgBSBfNwPQCSAFIAUpA9AVNwOQCiAFIAUpA5AWNwPQCkHZvsIALQAAGkHAAUEIELAEIgFFDQcgASADKQMANwMAIAEgAykDIDcDICABIAMpA0A3A0AgAUEYaiADQRhqKQMANwMAIAFBEGogA0EQaikDADcDACABQQhqIiUgA0EIaikDADcDACABQShqIANBKGopAwA3AwAgAUEwaiADQTBqKQMANwMAIAFBOGogA0E4aikDADcDACABQcgAaiADQcgAaikDADcDACABQdAAaiADQdAAaikDADcDACABQdgAaiADQdgAaikDADcDACABQfgAaiADQfgAaikDADcDACABQfAAaiADQfAAaikDADcDACABQegAaiADQegAaikDADcDACABIAMpA2A3A2AgASADKQOAATcDgAEgAUGIAWogA0GIAWopAwA3AwAgAUGQAWogA0GQAWopAwA3AwAgAUGYAWogA0GYAWopAwA3AwAgASADKQOgATcDoAEgAUGoAWogA0GoAWopAwA3AwAgAUGwAWogA0GwAWopAwA3AwAgAUG4AWogA0G4AWopAwA3AwAgASkDACFfIAQgJUG4ARDPBBogAUHAARC5BCAFQbgLaiAgKQMANwMAIAVBwAtqIBMpAwA3AwAgBUHIC2ogFCkDADcDACAVICEpAwA3AwAgAiAWKQMANwMAIAYgFykDADcDACAKIAUpA/AGNwMAIAsgIikDADcDACAMIBgpAwA3AwAgByAZKQMANwMAIAUgBSkDsAY3A7ALIAUgBSkD0AY3A9AVIAggGikDADcDACAJIBspAwA3AwAgDSAjKQMANwMAIA4gBSkDsAc3AwAgDyAkKQMANwMAIBAgHCkDADcDACARIB0pAwA3AwAgBUGgC2ogEikDADcDACAFQagLaiAeKQMANwMAIAUgBSkDkAc3A5AWIAUgBSkDmAY3A5gLIAVBiAxqIAcpAwA3AwAgBUGADGogDCkDADcDACAFQfgLaiALKQMANwMAIAVB8AtqIAopAwA3AwAgBUHoC2ogBikDADcDACAFQeALaiACKQMANwMAIAVB2AtqIBUpAwA3AwAgBUHIDGogESkDADcDACAFQcAMaiAQKQMANwMAIAVBuAxqIA8pAwA3AwAgBUGwDGogDikDADcDACAFQagMaiAIKQMANwMAIAVBoAxqIAkpAwA3AwAgBUGYDGogDSkDADcDACAFIF83A5ALIAUgBSkD0BU3A9ALIAUgBSkDkBY3A5AMIAQgBUGQC2oQ+wEgBSkDmAZQRQ0EIAVBkBZqIgEgEkHAARDPBBogBUHYAWoiAiAFQdAJaiABEOoBIAQgAhCgAUHZvsIALQAAGkHAAUEIELAEIgFFDQcgASAFKQOYBjcDACABIAUpA7gGNwMgIAEgBSkD2AY3A0AgAUEYaiAFQbAGaikDADcDACABQRBqIB4pAwA3AwAgAUEIaiASKQMANwMAIAFBKGogEykDADcDACABQTBqIBQpAwA3AwAgAUE4aiAFQdAGaikDADcDACABQcgAaiAWKQMANwMAIAFB0ABqIBcpAwA3AwAgAUHYAGogBUHwBmopAwA3AwAgAUH4AGogBUGQB2opAwA3AwAgAUHwAGogGSkDADcDACABQegAaiAYKQMANwMAIAEgBSkD+AY3A2AgAUGYAWogBUGwB2opAwA3AwAgAUGQAWogGikDADcDACABQYgBaiAbKQMANwMAIAEgBSkDmAc3A4ABIAFBuAFqIAVB0AdqKQMANwMAIAFBsAFqIB0pAwA3AwAgAUGoAWogHCkDADcDACABIAUpA7gHNwOgASAAQQY2AgggACABNgIEIABBBjYCAAwFCyACIAEpAwA3AwAgAiABKQMgNwMgIAIgASkDQDcDQCACQRhqIAFBGGopAwA3AwAgAkEQaiABQRBqKQMANwMAIAJBCGoiBCABQQhqKQMANwMAIAJBKGogAUEoaikDADcDACACQTBqIAFBMGopAwA3AwAgAkE4aiABQThqKQMANwMAIAJByABqIAFByABqKQMANwMAIAJB0ABqIAFB0ABqKQMANwMAIAJB2ABqIAFB2ABqKQMANwMAIAJB+ABqIAFB+ABqKQMANwMAIAJB8ABqIAFB8ABqKQMANwMAIAJB6ABqIAFB6ABqKQMANwMAIAIgASkDYDcDYCACIAEpA4ABNwOAASACQYgBaiABQYgBaikDADcDACACQZABaiABQZABaikDADcDACACQZgBaiABQZgBaikDADcDACACIAEpA6ABNwOgASACQagBaiABQagBaikDADcDACACQbABaiABQbABaikDADcDACACQbgBaiABQbgBaikDADcDACACQdgBaiABQdgBaikDADcDACACQdABaiABQdABaikDADcDACACQcgBaiABQcgBaikDADcDACACIAEpA8ABNwPAASACQfgBaiABQfgBaikDADcDACACQfABaiABQfABaikDADcDACACQegBaiABQegBaikDADcDACACIAEpA+ABNwPgASACQZgCaiABQZgCaikDADcDACACQZACaiABQZACaikDADcDACACQYgCaiABQYgCaikDADcDACACIAEpA4ACNwOAAiACQbgCaiABQbgCaikDADcDACACQbACaiABQbACaikDADcDACACQagCaiABQagCaikDADcDACACIAEpA6ACNwOgAiACQdgCaiABQdgCaikDADcDACACQdACaiABQdACaikDADcDACACQcgCaiABQcgCaikDADcDACACIAEpA8ACNwPAAiACQfgCaiABQfgCaikDADcDACACQfACaiABQfACaikDADcDACACQegCaiABQegCaikDADcDACACIAEpA+ACNwPgAiACKQMAIV8gBUGYBmoiGSAEQfgCEM8EGiACQYADELkEIAVB+AxqIAVBuAZqIiYpAwA3AwAgBUGADWogBUHABmoiGikDADcDACAFQYgNaiAFQcgGaiIbKQMANwMAIAVB2A9qIgEgBUHYBmoiJykDADcDACAFQeAPaiIoIAVB4AZqIhwpAwA3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BSkDsAg3AwAgCSBGKQMANwMAIA0gNykDADcDACAOIDgpAwA3AwAgDyA5KQMANwMAIBAgOikDADcDACARIEcpAwA3AwAgBSAFKQPQCDcD0BUgEiA7KQMANwMAIBMgPCkDADcDACAUIEgpAwA3AwAgFSAFKQPwCDcDACAWID0pAwA3AwAgFyA+KQMANwMAIBggSSkDADcDACAFIAUpA9AHNwPQFCBKIAopAwA3AwAgSyALKQMANwMAIEwgDCkDADcDACBNIAcpAwA3AwAgTiAWKQMANwMAIE8gFykDADcDACBQIBgpAwA3AwAgBSAFKQPQFDcDkBYgUSAOKQMANwMAIFIgDSkDADcDACBTIAkpAwA3AwAgVCAIKQMANwMAIFUgBikDADcDACBWIAQpAwA3AwAgVyACKQMANwMAIAUgBSkDkBU3A9AWIFggEikDADcDACBZIBMpAwA3AwAgWiAUKQMANwMAIFsgFSkDADcDACBcIA8pAwA3AwAgXSAQKQMANwMAIF4gESkDADcDACAFIAUpA9AVNwOQFyAFIF83A9AQIAVByBFqICopAwA3AwAgBUHAEWogKSkDADcDACAFQbgRaiAfKQMANwMAIAVBsBFqICcpAwA3AwAgBUGoEWogJikDADcDACAFQaARaiADKQMANwMAIAVBmBFqIAEpAwA3AwAgBSAFKQPQEzcDkBEgBUGIEmogMSkDADcDACAFQYASaiAwKQMANwMAIAVB+BFqIC8pAwA3AwAgBUHwEWogLikDADcDACAFQegRaiArKQMANwMAIAVB4BFqICwpAwA3AwAgBUHYEWogLSkDADcDACAFIAUpA5AUNwPQESAFQZASaiAoQcABEM8EGiAFQZgDaiELIAVB0AxqIQwjAEGADGsiASQAIAFBgAlqIgQgBUHQEGoiAhBpIAFByApqQgA3AwAgAUHQCmpCADcDACABQdgKakIANwMAIAFB4ApqQgA3AwAgAUHoCmpCADcDACABQfAKakIANwMAIAFB+ApqQgA3AwAgAUGYBmoiBkGw+sAAKQMANwMAIAFBkAZqIgpBqPrAACkDADcDACABQYgGaiIDQaD6wAApAwA3AwAgAUGgBmpCADcDACABQagGaiIHQgA3AwAgAUGwBmoiCEIANwMAIAFBuAZqIglCADcDACABQgA3A8AKIAFBmPrAACkDADcDgAYgAUGgC2pCADcDACABQcgLakIANwMAIAFB0AtqQgA3AwAgAUHYC2pCADcDACABQeALakIANwMAIAFB6AtqQgA3AwAgAUHwC2pCADcDACABQfgLakIANwMAIAFBuAtqIAkpAwA3AwAgAUGwC2ogCCkDADcDACABQagLaiAHKQMANwMAIAFBmAtqIAYpAwA3AwAgAUGQC2ogCikDADcDACABQYgLaiADKQMANwMAIAFCADcDwAsgASABKQOABjcDgAsgAUGABmoiAyACQcABaiIHEGkgASABQcAKaiADEOoBIAFBwARqIgggBCABEM8BIAFBgAVqIAFBwAlqIgkgAUFAaxDPASABQcAFaiABQYAKaiINIAFBgAFqEM8BIAMgCBD7ASABKQOQBiFfIAEpA4gGIWACQCABKQOABlAEQCABQZADaiAGQbABEM8EGiABIF83A4gDIAEgYDcDgAMgAyACIAFBgANqIgMQ6gEgBCAHEOUCIAkgAkGAAmoQ5QIgDSACQcACahDlAiABIANBwAEQzwQiAUHAB2ogAUGACWogARDqASABKQOABiFfIAEpA4gGIWAgAUEQaiAKQfACEM8EGiABIGA3AwggASBfNwMAIAsgDCABEPkBIAFBgAxqJAAMAQsgASBfNwOIBiABIGA3A4AGQYD4wABBKyABQYAGakGs+MAAQaj5wAAQvgMACyAZIAsQ1AFB2b7CAC0AABpBgANBCBCwBCIBRQ0HIAEgBSkDmAY3AwAgASAFKQO4BjcDICABIAUpA9gGNwNAIAFBGGogBUGwBmopAwA3AwAgAUEQaiAyKQMANwMAIAFBCGogJSkDADcDACABQShqIBopAwA3AwAgAUEwaiAbKQMANwMAIAFBOGogBUHQBmopAwA3AwAgAUHIAGogHCkDADcDACABQdAAaiAdKQMANwMAIAFB2ABqIAVB8AZqKQMANwMAIAFB+ABqIAVBkAdqKQMANwMAIAFB8ABqICApAwA3AwAgAUHoAGogHikDADcDACABIAUpA/gGNwNgIAFBmAFqIAVBsAdqKQMANwMAIAFBkAFqICEpAwA3AwAgAUGIAWogIikDADcDACABIAUpA5gHNwOAASABQbgBaiAFQdAHaikDADcDACABQbABaiAkKQMANwMAIAFBqAFqICMpAwA3AwAgASAFKQO4BzcDoAEgAUHY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AykDkAciEnwiC3wiCTcDsAsgAyASIAkgC1StIBQgCiALVq18fCIKfCILIA58Igk3A7gLIAMgEiAJIAtUrSAUIAogC1atfHwiCnwiCyAPfCIJNwO4CiAJIAtUrSAUIAogC1atfHwiClAEQAwECyADIAogAykDmAt8Igk3A5gLIAkgClQiB0UNAyADIAetIgogAykDoAt8Igk3A6ALIAkgClQhByAJIApaDQMgAyAHrSIKIAMpA6gLfCIJNwOoCyAJIApUIQcgCSAKWg0DIAetIgkgDHwiDCAJVCEHDAMLIAAgAikDIDcDICAAIAIpAwA3AwAgAEE4aiACQThqKQMANwMAIABBMGogAkEwaikDADcDACAAQShqIAJBKGopAwA3AwAgAEEIaiACQQhqKQMANwMAIABBEGogAkEQaikDADcDACAAQRhqIAJBGGopAwA3AwAMBQsgACABKQMgNwMgIAAgASkDADcDACAAQThqIAFBOGopAwA3AwAgAEEwaiABQTBqKQMANwMAIABBKGogAUEoaikDADcDACAAQQhqIAFBCGopAwA3AwAgAEEQaiABQRBqKQMANwMAIABBGGogAUEYaikDADcDAAwECyABKQMwIgkgAikDMCINVCAJIA19IgogASkDOCIQIAIpAzgiCVStIg1Ucq0iEiABKQMoIg4gAikDKCIPfSITQn+FfCILIApCf4UgDXwiESAQIAl9IgpCr/j//29WrSIQVK0iDX0hCSALIA1UIQUgESAQfSEMIA4gD1QgEiATVnKtIBYgFEJ/hXx8IRFCr/j//28gCn0hDQwBCyADQfAFaiADKQOwCyILQrHqlJHdo4KcWH4iCUKv+P//b0IAEL0DIANB4AVqIAlCf0IAEL0DIAMgCyADKQPwBSIKfCIJNwOwCyADQegFaikDACEOIAMgA0H4BWopAwAgCSAKVK18IgogAykD4AUiD3wiCyADKQO4C3wiCTcDuAsgAyAPIAkgC1StIA4gCiALVq18fCIKfCILIAMpA7gKfCIJNwO4CiADIA8gCSALVK0gDiAKIAtWrXx8Igp8IgsgAykDmAt8Igk3A5gLAkAgCSALVK0gDiAKIAtWrXx8IgpQDQAgAyAKIAMpA6ALfCIJNwOgCyAJIApUIQYgCSAKWg0AIAMgBq0iCiADKQOoC3wiCTcDqAsgCSAKVCEGIAkgCloNACAGrSIJIAx8IgwgCVQhBgsgA0HQBWogAykDuAsiC0Kx6pSR3aOCnFh+IglCr/j//29CABC9AyADQcAFaiAJQn9CABC9AyADIAsgAykD0AUiCnwiCTcDuAsgA0HIBWopAwAhDiADIANB2AVqKQMAIAkgClStfCIKIAMpA8AFIg98IgsgAykDuAp8Igk3A7gKIAMgDyAJIAtUrSAOIAogC1atfHwiCnwiCyADKQOYC3wiCTcDmAsgAyAPIAkgC1StIA4gCiALVq18fCIKfCILIAMpA6ALfCIJNwOgC0EAIQQgCSALVK0gDiAKIAtWrXx8IgpQRQRAIAMgCiADKQOoC3wiCTcDqAsgCSAKVCIErSIKIAx8IgkgDCAEGyEMIAQgCSAKVHEhBAsgA0GwBWogAykDuAoiC0Kx6pSR3aOCnFh+IglCr/j//29CABC9AyADQaAFaiAJQn9CABC9AyADIAsgAykDsAUiCnwiCTcDuAogAyADQbgFaikDACAJIApUrXwiCSADKQOgBSIPfCIKIAMpA5gLfCISNwOYCyADIA8gCiASVq0gA0GoBWopAwAiCyAJIApWrXx8Igl8IgogAykDoAt8Ig43A6ALIAMgDyAKIA5WrSALIAkgClatfHwiCXwiCiADKQOoC3wiDzcDqAsgCiAPVq0gCyAJIApWrXx8IgogDHwiCSAMIApCAFIiBRshDAJAIAYgB3IgBHIgCSAKVCIErSAKIAUbQgBSciAEIAVxckUEQCAOQn9SIBJCr/j//29UciAMIA+DQn9Scg0BCyADIBJC0YeAgBB8NwOYCyADIA5CAXwiCyASQq/4//9vVK0iCX03A6ALIAMgD0IBfCIKIA5Cf1IgCSALVnKtIgl9NwOoCyAMIA9Cf1IgCSAKVnKtfUIBfCEMCyADIAw3A+AHIAMgAykDqAs3A+gHIAMgAykDoAs3A/AHIAMgAykDmAs3A/gHIANBuApqIANB+ApqIANB4AdqEIkBIAMpA8AKIQwgAykDyAohCSADKQPQCiEKAkAgAykDuAoiC0J/Ug0AIAxCf1IEQEJ/IQsMAQtCfyELIAlCf1IEQEJ/IQwMAQsgCkKv+P//b1QEQEJ/IQxCfyEJDAELIApC0YeAgBB8IQpCACELQgAhDEIAIQkLIAMgCjcDsAogAyAJNwOoCiADIAw3A6AKIAMgCzcDmAogA0HwB2pCADcDACADQegHakIANwMAIANCADcD4AcgA0Kij4CAIDcD+AcgA0HYCmoiBCADQeAHaiAIEIkBIANBwAdqIANBmApqIAQQUwwBCyADIA03A5ALIAMgDDcDiAsgAyAJNwOACyADIBEgBa19NwP4CiABKQMAIhMhESACKQMAIhUhCyADAn4CQAJ+AkAgEyAVUg0AIAEpAwgiDSACKQMIIgtSBEAgDSERDAELIAEpAxAiECACKQMQIgtSBEAgECERDAELIA0hCiABKQMYIhEhDiAQIBEgAikDGCILUQ0BGgsgASkDECEQIAsgEVgNASABKQMIIQ0gAikDCCEKIAEpAxghESACKQMYIQ4gAikDEAsiCSAQfSISIA4gEVStIgx9IQsgCiANfSIPIAkgEFQgDCASVnKtIgx9IQkgCiANVCAMIA9WciEFIBUgE30hDCAOIBF9DAELIBAgAikDECINVCAQIA19IgsgASkDGCIRIAIpAxgiClStIglUcq0iFCABKQMIIg0gAikDCCIWfSISQn+FfCIOIAtCf4UgCXwiDCARIAp9Ig9Cr/j//29WrSILVK0iCn0hCSAKIA5WIQUgDCALfSELIA0gFlQgEiAUVHKtIBUgE0J/hXx8IQxCr/j//28gD30LNwP4ByADIAs3A/AHIAMgCTcD6AcgAyAMIAWtfTcD4AcgA0HAB2ogA0H4CmogA0HgB2oQUwsgA0GwBGogAykD0AciHCADKQPYByIZQgAQvQMgA0GgBGogAykDyAciGiAZQgAQvQMgA0GQBGogAykDwAciGyAZQgAQvQMgA0HgBGogGiAcQgAQvQMgA0HQBGogGyAcQgAQvQMgA0GABWogGyAaQgAQvQMgA0GABGogGSAZQgAQvQMgA0HABGogHCAcQgAQvQMgA0HwBGogGiAaQgAQvQMgA0GQBWogGyAbQgAQvQMgA0HwA2ogAykDgAQiFEKx6pSR3aOCnFh+IglCr/j//29CABC9AyADQeADaiAJQn9CABC9AyADQfgEaikDACEMIAMgA0HIBGopAwAgAykDwAQiCSADQbgEaikDACILIAMpA6AEfCIOQgGGIAMpA7AEIgpCP4iEfCIPIAlUrXwgDyADQYgEaikDACIJIApCAYZ8IhYgCVStfCISIA9UrXwiCiADQagEaikDACALIA5WrXwiCSADKQOQBHwiFSADKQPgBHwiF0IBhiAOQj+IhHwiDiAKVK0iCyADKQPwBHwiGCADQZgEaikDACAJIBVWrXwiCiADKQPQBHwiDyADQegEaikDACAVIBdWrXx8IhVCAYYgF0I/iIR8Igk3A6gLIAMgCSAYVK0gDCALIBhWrXx8IgwgDyAVVq0gA0HYBGopAwAgCiAPVq18fCIKIAMpA4AFfCIPQgGGIBVCP4iEfCIJNwOwCyADIAMpA5AFIgsgA0GIBWopAwAgCiAPVq18IgpCAYYgD0I/iIR8Ig8gCSAMVK18Igk3A7gLIAkgD1StIANBmAVqKQMAIAsgD1atfHwgCkI/iHwhDyADQegDaikDACEVIAMgA0H4A2opAwAgAykD8AMiCSAUQn2DfCAJVK18IgogAykD4AMiDHwiCyAWfCIJNwO4CiADIAwgCSALVK0gFSAKIAtWrXx8Igp8IgsgEnwiCTcD+AogAyAMIAkgC1StIBUgCiALVq18fCIKfCILIA58Igk3A+AHQQAhBQJAIAkgC1StIBUgCiALVq18fCIKUARAQQAhBgwBCyADIAogAykDqAt8Igk3A6gLIAkgClQiBkUNACADIAatIgogAykDsAt8Igk3A7ALIAkgClQhBiAJIApaDQAgAyAGrSIKIAMpA7gLfCIJNwO4CyAJIApUIQYgCSAKWg0AIAatIgkgD3wiDyAJVCEGCyADQdADaiADKQO4CiILQrHqlJHdo4KcWH4iCUKv+P//b0IAEL0DIANBwANqIAlCf0IAEL0DIAMgCyADKQPQAyIKfCIJNwO4CiADQcgDaikDACEOIAMgA0HYA2opAwAgCSAKVK18IgogAykDwAMiDHwiCyADKQP4CnwiCTcD+AogAyAMIAkgC1StIA4gCiALVq18fCIKfCILIAMpA+AHfCIJNwPgByADIAwgCSALVK0gDiAKIAtWrXx8Igp8IgsgAykDqAt8Igk3A6gLAkAgCSALVK0gDiAKIAtWrXx8IgpQDQAgAyAKIAMpA7ALfCIJNwOwCyAJIApUIQUgCSAKWg0AIAMgBa0iCiADKQO4C3wiCTcDuAsgCSAKVCEFIAkgCloNACAFrSIJIA98Ig8gCVQhBQsgA0GwA2ogAykD+AoiC0Kx6pSR3aOCnFh+IglCr/j//29CABC9AyADQaADaiAJQn9CABC9AyADIAsgAykDsAMiCnwiCTcD+AogA0GoA2opAwAhDiADIANBuANqKQMAIAkgClStfCIKIAMpA6ADIgx8IgsgAykD4Ad8Igk3A+AHIAMgDCAJIAtUrSAOIAogC1atfHwiCnwiCyADKQOoC3wiCTcDqAsgAyAMIAkgC1StIA4gCiALVq18fCIKfCILIAMpA7ALfCIJNwOwC0EAIQQgCSALVK0gDiAKIAtWrXx8IgpQRQRAIAMgCiADKQO4C3wiCTcDuAsgCSAKVCIErSIKIA98IgkgDyAEGyEPIAQgCSAKVHEhBAsgA0GQA2ogAykD4AciC0Kx6pSR3aOCnFh+IglCr/j//29CABC9AyADQYADaiAJQn9CABC9AyADIAsgAykDkAMiCnwiCTcD4AcgAyADQZgDaikDACAJIApUrXwiCSADKQOAAyIMfCIKIAMpA6gLfCIONwOoCyADIAwgCiAOVq0gA0GIA2opAwAiEiAJIApWrXx8Igp8IgsgAykDsAt8Igk3A7ALIAMgDCAJIAtUrSASIAogC1atfHwiC3wiDCADKQO4C3wiCjcDuAsgCiAMVK0gEiALIAxWrXx8IgwgD3wiCyAPIAxCAFIiCBshDwJAAkAgBSAGciAEciALIAxUIgStIAwgCBtCAFJyIAQgCHFyRQRAIAlCf1IgDkKv+P//b1RyIAogD4NCf1JyDQELIAlCAXwiFiAOQq/4//9vVK0iC30hDCAKQgF8IhIgCUJ/UiALIBZWcq0iC30hCSAPIApCf1IgCyASVnKtfUIBfCEPIA5C0YeAgBB8IQ4MAQsgCSEMIAohCQsCfgJAAkAgEyILIA8iClINACAJIQogCSANIgtSDQAgECILIAwiClINACARIgsgDiIKUQ0BCyAKIAtWDQAgECAMfSILIA4gEVatIgpUIAwgEFZyrSIVIA0gCX0iFEJ/hXwiFiAKIAtCf4V8IhIgESAOfSIOQq/4//9vVq0iDFStIgp9IQsgCiAWViEFIBIgDH0hCkKv+P//byAOfSEOIBQgFVQgCSANVnKtIA8gE0J/hXx8DAELIAwgEH0iFiAOIBFUrSILfSEKIAkgDX0iEiAMIBBUIAsgFlZyrSIMfSELIAkgDVQgDCASVnIhBSAOIBF9IQ4gDyATfQshDyADIA43A/gHIAMgCjcD8AcgAyALNwPoByADIA8gBa19NwPgByADQfgKaiADQeAHaiACEM8CIAMpA/gKIhUhDiADQbACagJ+AkAgEAJ+AkAgFSATIglSDQAgDSIJIAMpA4ALIg5SDQAgECIJIAMpA4gLIg5SDQAgDSEMIBEiCSEPIBAgAykDkAsiDiAJUQ0BGgsgAykDkAshDyAJIA5YDQEgAykDgAshDCADKQOICwsiCn0iEiAPIBFWrSIJfSEOIA0gDH0iCyAKIBBWIAkgElZyrSIJfSEQIAwgDVYgCSALVnIhAiATIBV9IRggESAPfQwBCyADKQOICyIJIBBUIAkgEH0iECAPIBFUrSIJVHKtIhQgAykDgAsiFiANfSISQn+FfCIMIBBCf4UgCXwiCyAPIBF9IhFCr/j//29WrSIKVK0iCX0hECAJIAxWIQIgCyAKfSEOIBIgFFQgDSAWVnKtIBMgFUJ/hXx8IRhCr/j//28gEX0LIg0gGUIAEL0DIANBgAJqIA0gHEIAEL0DIANB8AFqIA0gGkIAEL0DIANB4AFqIA0gG0IAEL0DIANBoAJqIAMpA7ACIgpCseqUkd2jgpxYfiINQq/4//9vQgAQvQMgA0GQAmogDUJ/QgAQvQMgA0HQAWogDiAZQgAQvQMgA0GgAWogDiAcQgAQvQMgA0GQAWogDiAaQgAQvQMgA0GAAWogDiAbQgAQvQMgA0HAAWogAykDkAIiFyADQbgCaikDACIRIAMpA4ACfCIJfCIPIANBqAJqKQMAIAogAykDoAIiDXwgDVStfHwiEyADKQPQAXwiDEKx6pSR3aOCnFh+Ig1Cr/j//29CABC9AyADQbABaiANQn9CABC9AyADQfAAaiAQIBlCABC9AyADQUBrIBAgHEIAEL0DIANBEGogECAaQgAQvQMgAyAQIBtCABC9AyADQeAAaiADQdgBaikDACAMIBNUrXwiCiADKQOgAXwiFSAXIANBiAJqKQMAIAkgEVStfCIQIAMpA/ABfCIOfCILIA8gE1atIANBmAJqKQMAIh0gDyAXVK18fHwiCXwiFCADKQOwASIefCIWIANByAFqKQMAIAMpA8ABIg0gDHwgDVStfHwiEiADKQNwfCIPQrHqlJHdo4KcWH4iDUKv+P//b0IAEL0DIANB0ABqIA1Cf0IAEL0DIANB8AJqIBggAq19Ig0gGUIAEL0DIANB4AJqIA0gHEIAEL0DIANB0AJqIA0gGkIAEL0DIANBwAJqIA0gG0IAEL0DIANBMGogA0H4AGopAwAgDyASVK18IhEgAykDQHwiGSAeIBcgA0H4AWopAwAgDiAQVK18IhAgAykD4AF8IhN8IgwgCSALVK0gHSALIA5UrXx8fCIaIAMpA5ABfCILIBQgFVStIANBqAFqKQMAIAogFVatfHx8Iht8Ig4gEiAWVK0gA0G4AWopAwAiCiAUIBZWrXx8fCIJfCIXIAMpA1AiFnwiEiADQegAaikDACADKQNgIg0gD3wgDVStfHwiGCADKQPwAnwiFUKx6pSR3aOCnFh+Ig1Cr/j//29CABC9AyADQSBqIA1Cf0IAEL0DAkACQAJAIANBKGopAwAiFCADQdgAaikDACIPIBYgCiAeIAwgGlatIB0gDCATVK18fCINIANB6AFqKQMAIBAgE1atfHwiEyADKQOAAXwiDCALIBtWrSADQZgBaikDACALIBpUrXx8fCILfCIQIAtUrXwgECAJIA5UrSAKIA4gG1StfHx8IgkgEFStfCIKIAsgDFStIANBiAFqKQMAIAwgE1StfHwiECANIBNWrXwiDXwiDiADKQMAfCIMIANBGGopAwAgCSAJIAMpAxB8IglWrXwgCSAJIBcgGVStIANByABqKQMAIBEgGVatfHx8IglWrXx8Igt8IhEgC1StfCARIBEgDyAJIAkgFnwiCVatfCAJIAkgEiAYVq0gDyASIBdUrXx8fCIJVq18fCIRVq18Ig8gCyAMVK0gA0EIaikDACAMIA5UrXx8IhMgCiAOVq0gDSAQVK18fCIKfCIWIAMpA8ACfCISIANB2AJqKQMAIBEgAykD0AJ8IgsgEVStfCALIANB6AJqKQMAIANB+AJqKQMAIBUgGFStfCINIAMpA+ACfCIQIA1UrXwgCSAQfCIRIBBUrXx8IgkgC1StfHwiDiADKQMgIg18IgsgDlStfCALIBQgCSANfCIQIAlUrXwgECAUIA0gEXwiCSARVK18IAkgA0E4aikDACADKQMwIg0gFXwgDVStfHwiESAJVK18fCIJIBBUrXx8IhAgC1StfCIMIA4gElStIANByAJqKQMAIBIgFlStfHwiCyAPIBZWrSAKIBNUrXx8Igp8Ig0gDFStQgAgCiALVK19Ug0AIA1Cf1INASAQQn9SBEBCfyENDAILQn8hEyAJQn9SBEBCfyENIAkhDAwDCyARQq/4//9vWg0AQn8hDUJ/IQwMAgsgCUIBfCITIBFCr/j//29UrSILfSEMIBBCAXwiCiAJQn9SIAsgE1ZyrSIJfSETIA0gEEJ/UiAJIApWcq19QgF8IQ0gEULRh4CAEHwhEQwBCyAQIRMgCSEMCyADIBE3A/gHIAMgDDcD8AcgAyATNwPoByADIA03A+AHIABBIGogA0HgB2ogAUEgahDPAiAAQRhqIANBkAtqKQMANwMAIABBEGogA0GIC2opAwA3AwAgAEEIaiADQYALaikDADcDACAAIAMpA/gKNwMACyADQcALaiQAC+4/Ahd/K34jAEGwA2siAyQAIANBADYC4AEgA0KAgICAgAE3AtgBIANBADYC7AEgA0KAgICAgAE3AuQBAkACQCACRQ0AIAFBMGoiBEHA18AAQTAQ0ARFDQEgASACQeAAbGohCUHQ1cAAKQMAIT1ByNXAACkDACE+QcDVwAApAwAhP0G41cAAKQMAIUBBsNXAACkDACFBQajVwAApAwAhQgNAIANBwAJqIgpCADcDACADQbgCaiILQgA3AwAgA0GwAmoiDEIANwMAIANBqAJqIg1CADcDACADQgA3A6ACIANCATcDyAIgA0H4AmoiDiAEQShqIg8pAwA3AwAgA0HwAmoiECAEQSBqIhEpAwA3AwAgA0HoAmoiEiAEQRhqIhMpAwA3AwAgA0HgAmoiFCAEQRBqIhUpAwA3AwAgA0HYAmoiFiAEQQhqIhcpAwA3AwAgAyAEKQMANwPQAiADQagDaiIYID03AwAgA0GgA2oiGSA+NwMAIANBmANqIgUgPzcDACADQZADaiIHIEA3AwAgA0GIA2oiAiBBNwMAIAMgQjcDgAMCQCADQdACaiADQaACakEwENAERQRAQsau0OHB5sfvdCEgQvGJxM7g1Lm7CiEmQtXt1uTE7dHyjX8hJ0LAh/acmZXi9ecAISNCrarmqNvQz7yafyE0QqrHq5bZ/KPMESEiDAELQv//z4rr///VHiEwQqTsw7WP1LSY5wAhLUK/pZScz/DSu+QAISxC19mumuT26Y3LACEaQprN/8ujvcSAGiExQqvV/v///7//uX8hG0Kqx6uW2fyjzBEhIkKtquao29DPvJp/ITRCwIf2nJmV4vXnACEjQtXt1uTE7dHyjX8hJ0LxicTO4NS5uwohJkLGrtDhwebH73QhIEIAISEgAykD+AIhHiADKQPQAiEyIAMpA/ACIS8gAykD6AIhLiADKQPgAiEzIAMpA9gCIRxCACEpQgAhKkIAIStCACEkQgAhKANAIANBgANqIANBoAJqQTAQ0ARFBEAgKCEiICQhNCArISMgKiEnICkhJiAhISAMAgsgHqdBAXFFBEADQCAvQj+GIB5CAYiEIR4CQCAgp0EBcUUEQCA0Qj+GICNCP4YhHSAnQj+GIR8gJkI/hiAgQgGIhCEgICJCP4YgNEIBiIQhNCAjQgGIhCEjIB0gJ0IBiIQhJyAfICZCAYiEISYMAQsgJ0Kk7MO1j9S0mOcAfCIlICZC///Piuv//9UefCIdICZUIB0gIELVqoGAgIDAgMYAfSIfICBUrXwiNiAdVHKtfCIgQj+GIDZCAYiEISYgI0K/pZScz/DSu+QAfCIdICUgJ1QgICAlVHKtfCIlQj+GICBCAYiEIScgNELX2a6a5PbpjcsAfCIgIB0gI1QgHSAlVnKtfCIdQj+GICVCAYiEISMgIiAgIDRUIB0gIFRyrXxCms3/y6O9xIAafCIiQj+GIB1CAYiEITQgNkI/hiAfQgGIhCEgCyAyQj+GIBxCP4YhHSAzQj+GIR8gLkI/hiAvQgGIhCEvIDJCAYghMiAiQgGIISIgHEIBiIQhHCAdIDNCAYiEITMgHyAuQgGIhCEuIB5CAYNQDQALIAMgLjcD6AIgAyAvNwPwAiADIDM3A+ACIAMgHDcD2AILIAMgMjcD0AIgAyAeNwP4AiAbp0EBcUUEQANAIDBCP4YgG0IBiIQhGwJAICFCAYNQRQRAICpCpOzDtY/UtJjnAHwiJSApQv//z4rr///VHnwiHSApVCAdICFC1aqBgICAwIDGAH0iHyAhVK18IjYgHVRyrXwiIUI/hiA2QgGIhCEpICtCv6WUnM/w0rvkAHwiHSAlICpUICEgJVRyrXwiJUI/hiAhQgGIhCEqICRC19mumuT26Y3LAHwiISAdICtUIB0gJVZyrXwiHUI/hiAlQgGIhCErICggISAkVCAdICFUcq18QprN/8ujvcSAGnwiKEI/hiAdQgGIhCEkIDZCP4YgH0IBiIQhIQwBCyAkQj+GICtCP4YhHSAqQj+GIR8gKUI/hiAhQgGIhCEhIChCP4YgJEIBiIQhJCArQgGIhCErIB0gKkIBiIQhKiAfIClCAYiEISkLIDFCP4YgGkI/hiEdICxCP4YhHyAtQj+GIDBCAYiEITAgMUIBiCExIChCAYghKCAaQgGIhCEaIB0gLEIBiIQhLCAfIC1CAYiEIS0gG0IBg1ANAAsgAyAtNwOYAyADIDA3A6ADIAMgLDcDkAMgAyAaNwOIAwsgAyAbNwOoAyADIDE3A4ADAkACQAJAAkAgMSIdIDIiH1INACAaIR0gHCEfIBogHFINACAsIh0gMyIfUg0AIC0iHSAuIh9SDQAgMCIdIC8iH1INACAbIR0gHiEfIBsgHlENAQsgHSAfVA0AIAMgGyAefSI5NwOoAyADIDAgL30iHyAbIB5UrSIbfSI2NwOgAyADIC0gLn0iHSAvIDBWIBsgH1ZyrSIbfSIlNwOYAyADICwgM30iHyAtIC5UIBsgHVZyrSIbfSIdNwOQAyADIBogHH0iLSAsIDNUIBsgH1ZyrSIbfSIfNwOIAyADIDEgMn0gGiAcVCAbIC1Wcq19IjE3A4ADAkACQCAiIhogKCIbUg0AIDQiGiAkIhtSDQAgIyIaICsiG1INACAnIhogKiIbUg0AICYiGiApIhtSDQAgICIaICEiG1ENAQsgGiAbVg0CCyAoICJ9ICQgNH0iPCArICN9IjsgKiAnfSI6ICkgJn0iNyAgICFWrSI4VCAmIClWcq0iKVQgJyAqVnKtIipUICMgK1ZyrSIrVCAkIDRUcq19ISggISAgfSEhIDYhMCAlIS0gHSEsIB8hGiA5IRsgPCArfSEkIDsgKn0hKyA6ICl9ISogNyA4fSEpDAILIAMgHiAbfSI2NwP4AiADIC8gMH0iHyAbIB5WrSIefSIlNwPwAiADIC4gLX0iHSAvIDBUIB4gH1ZyrSIefSIvNwPoAiADIDMgLH0iHyAdIB5UIC0gLlZyrSIefSIdNwPgAiADIBwgGn0iLiAeIB9WICwgM1ZyrSIefSIfNwPYAiADIDIgMX0gHiAuViAaIBxWcq19IjI3A9ACAkACQAJAICIiHiAoIhxSDQAgNCIeICQiHFINACAjIh4gKyIcUg0AICciHiAqIhxSDQAgJiIeICkiHFINACAgIh4gISIcUQ0BCyAcIB5WDQELICIgKH0gJCA0ViA0ICR9IjQgIyArVCAjICt9IjogJyAqVCAnICp9IjcgJiApVCAmICl9IjggICAhVK0iOVRyrSImVHKtIidUcq0iI1RyrX0hIiAgICF9ISAgHyEcIB0hMyAvIS4gJSEvIDYhHiA0ICN9ITQgOiAnfSEjIDcgJn0hJyA4IDl9ISYMAgsgIiAofULX2a6a5PbpjcsAICR9IjdCv6WUnM/w0rvkACArfSI4QqTsw7WP1LSY5wAgKn0iOUL//8+K6///1R4gKX0iLiAhQqvV/v///7//uX9WrSIzVCApQv//z4rr///VHlZyrSIiVCAqQqTsw7WP1LSY5wBWcq0iHlQgK0K/pZScz/DSu+QAVnKtIhxUICRC19mumuT26Y3LAFZyrX0gNyAcfSIcIDR8IjQgHFQgNCA0IDggHn0iHCAjfCIjIBxUICMgIyA5ICJ9IhwgJ3wiIiAcVCAiIC4gM30iHCAmfCIeIBxUIB5Cq9X+////v/+5fyAhfSIcICB8IiAgHFStfCImIB5Ucq18IicgIlRyrXwiI1ZyrXwiNFZyrXxCms3/y6O9xIAafCEiIB8hHCAdITMgLyEuICUhLyA2IR4MAQsgKELX2a6a5PbpjcsAIDR9IjdCv6WUnM/w0rvkACAjfSI4QqTsw7WP1LSY5wAgJ30iKEL//8+K6///1R4gJn0iMCAgQqvV/v///7//uX9WrSItVCAmQv//z4rr///VHlZyrSIsVCAnQqTsw7WP1LSY5wBWcq0iG1QgI0K/pZScz/DSu+QAVnKtIhpUIDRC19mumuT26Y3LAFZyrSAifH0gNyAafSIaICR8IjcgGlQgNyA4IBt9IhogK3wiJCAaVCAkICggLH0iGiAqfCIsIBpUICwgMCAtfSIaICl8IhsgGlQgG0Kr1f7///+//7l/ICB9IhogIXwiISAaVK18IikgG1RyrXwiKiAsVHKtfCIrICRUcq18IiQgN1RyrXxCms3/y6O9xIAafCEoIDYhMCAlIS0gHSEsIB8hGiA5IRsLIANB0AJqIANBoAJqQTAQ0AQNAAsLIAMoAuABIgggAygC2AFGBEAgA0HYAWoQoQMLIAMoAtwBIAhBMGxqIgYgIDcDKCAGICY3AyAgBiAnNwMYIAYgIzcDECAGIDQ3AwggBiAiNwMAIAMgCEEBajYC4AECQAJAIARBwNfAAEEwENAEBEAgCkIANwMAIAtCADcDACAMQgA3AwAgDUIANwMAIANCADcDoAIgA0IBNwPIAiAOIA8pAwA3AwAgECARKQMANwMAIBIgEykDADcDACAUIBUpAwA3AwAgFiAXKQMANwMAIAMgBCkDADcD0AIgGCA9NwMAIBkgPjcDACAFID83AwAgByBANwMAIAIgQTcDACADIEI3A4ADAkAgA0HQAmogA0GgAmpBMBDQBEUEQEKqx6uW2fyjzBEhIkKtquao29DPvJp/ITVCxq7Q4cHmx+90ISBC8YnEzuDUubsKISZC1e3W5MTt0fKNfyEnQsCH9pyZleL15wAhIwwBC0L//8+K6///1R4hMEKk7MO1j9S0mOcAIS1Cv6WUnM/w0rvkACEsQtfZrprk9umNywAhGkKazf/Lo73EgBohMUKr1f7///+//7l/IRtCACEoQsau0OHB5sfvdCEgQvGJxM7g1Lm7CiEmQtXt1uTE7dHyjX8hJ0LAh/acmZXi9ecAISNCrarmqNvQz7yafyE1QqrHq5bZ/KPMESEiIAMpA/gCIR4gAykD0AIhMiADKQPwAiEvIAMpA+gCIS4gAykD4AIhMyADKQPYAiEcQgAhJEIAIStCACEqQgAhKUIAISEDQCADQYADaiADQaACakEwENAERQRAICshIyAqIScgKSEmICEhICAkITUgKCEiDAILIB6nQQFxRQRAA0AgL0I/hiAeQgGIhCEeAkAgIKdBAXFFBEAgJkI/hiAgQgGIhCEgICdCP4YgJkIBiIQhJiAjQj+GICdCAYiEIScgNUI/hiAjQgGIhCEjICJCP4YgNUIBiIQhNQwBCyAnQqTsw7WP1LSY5wB8IiUgJkL//8+K6///1R58Ih0gJlQgHSAgQtWqgYCAgMCAxgB9Ih8gIFStfCI2IB1Ucq18IiBCP4YgNkIBiIQhJiAjQr+llJzP8NK75AB8Ih0gJSAnVCAgICVUcq18IiVCP4YgIEIBiIQhJyA1QtfZrprk9umNywB8IiAgHSAjVCAdICVWcq18Ih1CP4YgJUIBiIQhIyAiICAgNVQgHSAgVHKtfEKazf/Lo73EgBp8IiJCP4YgHUIBiIQhNSA2Qj+GIB9CAYiEISALIDJCP4YgHEI/hiEdIDNCP4YhHyAuQj+GIC9CAYiEIS8gMkIBiCEyICJCAYghIiAcQgGIhCEcIB0gM0IBiIQhMyAfIC5CAYiEIS4gHkIBg1ANAAsgAyAuNwPoAiADIC83A/ACIAMgMzcD4AIgAyAcNwPYAgsgAyAyNwPQAiADIB43A/gCIBunQQFxRQRAA0AgMEI/hiAbQgGIhCEbAkAgIUIBg1BFBEAgKkKk7MO1j9S0mOcAfCIlIClC///Piuv//9UefCIdIClUIB0gIULVqoGAgIDAgMYAfSIfICFUrXwiNiAdVHKtfCIhQj+GIDZCAYiEISkgK0K/pZScz/DSu+QAfCIdICUgKlQgISAlVHKtfCIlQj+GICFCAYiEISogJELX2a6a5PbpjcsAfCIhIB0gK1QgHSAlVnKtfCIdQj+GICVCAYiEISsgKCAhICRUIB0gIVRyrXxCms3/y6O9xIAafCIoQj+GIB1CAYiEISQgNkI/hiAfQgGIhCEhDAELIClCP4YgIUIBiIQhISAqQj+GIClCAYiEISkgK0I/hiAqQgGIhCEqICRCP4YgK0IBiIQhKyAoQj+GICRCAYiEISQLIDFCP4YgGkI/hiEdICxCP4YhHyAtQj+GIDBCAYiEITAgMUIBiCExIChCAYghKCAaQgGIhCEaIB0gLEIBiIQhLCAfIC1CAYiEIS0gG0IBg1ANAAsgAyAtNwOYAyADIDA3A6ADIAMgLDcDkAMgAyAaNwOIAwsgAyAbNwOoAyADIDE3A4ADAkACQAJAAkAgMSIdIDIiH1INACAaIR0gHCEfIBogHFINACAsIh0gMyIfUg0AIC0iHSAuIh9SDQAgMCIdIC8iH1INACAeIR8gHiAbIh1RDQELIB0gH1QNACADIBsgHn0iOTcDqAMgAyAwIC99Ih8gGyAeVK0iG30iNjcDoAMgAyAtIC59Ih0gLyAwViAbIB9Wcq0iG30iJTcDmAMgAyAsIDN9Ih8gLSAuVCAbIB1Wcq0iG30iHTcDkAMgAyAaIBx9Ii0gLCAzVCAbIB9Wcq0iG30iHzcDiAMgAyAxIDJ9IBogHFQgGyAtVnKtfSIxNwOAAwJAAkAgIiIaICgiG1INACAkIhsgNSIaUg0AICMiGiArIhtSDQAgJyIaICoiG1INACAmIhogKSIbUg0AICAiGiAhIhtRDQELIBogG1YNAgsgKCAifSAkIDVUICQgNX0iQyArICN9IkQgKiAnfSI8ICkgJn0iOyAgICFWrSI6VCAmIClWcq0iN1QgJyAqVnKtIjhUICMgK1ZyrSIkVHKtfSEoICEgIH0hISA2ITAgJSEtIB0hLCAfIRogOSEbIDsgOn0hKSA8IDd9ISogRCA4fSErIEMgJH0hJAwCCyADIB4gG30iNjcD+AIgAyAvIDB9Ih8gGyAeVq0iHn0iJTcD8AIgAyAuIC19Ih0gLyAwVCAeIB9Wcq0iHn0iLzcD6AIgAyAzICx9Ih8gHSAeVCAtIC5Wcq0iHn0iHTcD4AIgAyAcIBp9Ii4gHiAfViAsIDNWcq0iHn0iHzcD2AIgAyAyIDF9IB4gLlYgGiAcVnKtfSIyNwPQAgJAAkACQCAiIh4gKCIcUg0AICQiHCA1Ih5SDQAgIyIeICsiHFINACAnIh4gKiIcUg0AICYiHiApIhxSDQAgICIeICEiHFENAQsgHCAeVg0BCyAiICh9IDUgJH0iOyAjICtUICMgK30iOiAnICpUICcgKn0iNyAmIClUICYgKX0iOCAgICFUrSImVHKtIidUcq0iI1RyrSI5VCAkIDVWcq19ISIgICAhfSEgIB8hHCAdITMgLyEuICUhLyA2IR4gOCAmfSEmIDcgJ30hJyA6ICN9ISMgOyA5fSE1DAILICIgKH1C19mumuT26Y3LACAkfSI3Qr+llJzP8NK75AAgK30iOEKk7MO1j9S0mOcAICp9IjlC///Piuv//9UeICl9Ii4gIUKr1f7///+//7l/Vq0iM1QgKUL//8+K6///1R5Wcq0iIlQgKkKk7MO1j9S0mOcAVnKtIh5UICtCv6WUnM/w0rvkAFZyrSIcVCAkQtfZrprk9umNywBWcq19IDcgHH0iHCA1fCI1IBxUIDUgNSA4IB59IhwgI3wiIyAcVCAjICMgOSAifSIcICd8IiIgHFQgIiAuIDN9IhwgJnwiHiAcVCAeQqvV/v///7//uX8gIX0iHCAgfCIgIBxUrXwiJiAeVHKtfCInICJUcq18IiNWcq18IjVWcq18QprN/8ujvcSAGnwhIiAfIRwgHSEzIC8hLiAlIS8gNiEeDAELIChC19mumuT26Y3LACA1fSI3Qr+llJzP8NK75AAgI30iOEKk7MO1j9S0mOcAICd9IihC///Piuv//9UeICZ9IjAgIEKr1f7///+//7l/Vq0iLVQgJkL//8+K6///1R5Wcq0iLFQgJ0Kk7MO1j9S0mOcAVnKtIhtUICNCv6WUnM/w0rvkAFZyrSIaVCA1QtfZrprk9umNywBWcq0gInx9IDcgGn0iGiAkfCI3IBpUIDcgOCAbfSIaICt8IiQgGlQgJCAoICx9IhogKnwiLCAaVCAsIDAgLX0iGiApfCIbIBpUIBtCq9X+////v/+5fyAgfSIaICF8IiEgGlStfCIpIBtUcq18IiogLFRyrXwiKyAkVHKtfCIkIDdUcq18QprN/8ujvcSAGnwhKCA2ITAgJSEtIB0hLCAfIRogOSEbCyADQdACaiADQaACakEwENAEDQALCyABQeAAaiECIAMgIDcDmAIgAyAmNwOQAiADICc3A4gCIAMgIzcDgAIgAyA1NwP4ASADICI3A/ABIAEpAwAhMSABKQMIIS0gASkDECEsIAEpAxghLiABKQMgITMgASkDKCEiQgAhIEEoIQRCACEhQgAhHkIAIRtCACEcQgAhKANAIANB+ABqIANB8AFqIARqKQMAIhogIkIAEL0DIANBiAFqIBogM0IAEL0DIANBmAFqIBogLkIAEL0DIANBqAFqIBogLEIAEL0DIANBuAFqIBogLUIAEL0DIANByAFqIBogMUIAEL0DIANB6ABqIAMpA3giHSAofCIkQgBC/f/z/8////mJfxC9AyADQdgAaiADQfAAaikDACIaQqvV/v///7//uX9CABC9AyADQcgAaiAaQv//z4rr///VHkIAEL0DIANBOGogGkKk7MO1j9S0mOcAQgAQvQMgA0EoaiAaQr+llJzP8NK75ABCABC9AyADQRhqIBpC19mumuT26Y3LAEIAEL0DIANBCGogGkKazf/Lo73EgBpCABC9AyADQRBqKQMAIAMpA8gBIh8gIHwiMiADQcABaikDACADKQO4ASIaICF8IiEgGlStfCAhIANBsAFqKQMAIAMpA6gBIhogHnwiHiAaVK18IB4gA0GgAWopAwAgAykDmAEiGiAbfCIbIBpUrXwgGyADQZABaikDACADKQOIASIaIBx8IhwgGlStfCAcIANBgAFqKQMAIB0gJFatfHwiGiAcVK18fCIwIBtUrXx8IhsgHlStfHwiHCAhVK18fCIvIAMpAwh8IiEgL1StfCAhICEgA0EgaikDACAcIAMpAxh8Ih0gHFStfCAdIANBMGopAwAgGyADKQMofCIeIBtUrXwgHiADQUBrKQMAIDAgAykDOHwiGyAwVK18IBsgA0HQAGopAwAgGiADKQNIIhp8IhwgGlStfCAcIANB4ABqKQMAIAMpA1gi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IAMpA+AIISADQCADQbACaiADKQOwCSIOIAMpA7gJIg9CABC9AyADQcACaiADKQOoCSIRIA9CABC9AyADQdACaiADKQOgCSIUIA9CABC9AyADQeACaiADKQOYCSIVIA9CABC9AyADQfACaiADKQOQCSIWIA9CABC9AyADQZADaiARIA5CABC9AyADQaADaiAUIA5CABC9AyADQbADaiAVIA5CABC9AyADQcADaiAWIA5CABC9AyADQeADaiAUIBFCABC9AyADQfADaiAVIBFCABC9AyADQYAEaiAWIBFCABC9AyADQaAEaiAVIBRCABC9AyADQbAEaiAWIBRCABC9AyADQdAEaiAWIBVCABC9AyADQYADaiAPIA9CABC9AyADQdADaiAOIA5CABC9AyADQZAEaiARIBFCABC9AyADQcAEaiAUIBRCABC9AyADQeAEaiAVIBVCABC9AyADQfAEaiAWIBZCABC9AyADQcgDaikDACEVIANB+ANqKQMAIRYgAykDgAQhGSADQYgEaikDACEbIAMpA6AEISEgA0GoBGopAwAhIiADKQOwBCEqIANByARqKQMAIScgAyADQZgEaikDACADQdgDaikDACADQYgDaikDACIOIAMpA7ACIg9CAYZ8IisgDlStIhEgA0G4AmopAwAiFCADKQPAAnwiDkIBhiAPQj+IhHwiDyARVK18IA8gAykD0AN8IiwgD1StfCIjIANByAJqKQMAIA4gFFStfCIUIAMpA9ACfCIPIAMpA5ADfCIRQgGGIA5CP4iEfCItICNUrSIjIANBmANqKQMAIA8gEVatfCIkIANB2AJqKQMAIA8gFFStfCIUIAMpA+ACfCIlfCIOIAMpA6ADfCIPQgGGIBFCP4iEfCIRICNUrXwgESADKQOQBHwiIyARVK18IiggDiAPVq0gA0GoA2opAwAgDiAkVK18fCIkIANB6AJqKQMAIBQgJVatfCIlIAMpA/ACfCIpfCIOIAMpA7ADfCIRIAMpA+ADfCIUQgGGIA9CP4iEfCIuIChUrSIoIANB6ANqKQMAIBEgFFatfCIvIA4gEVatIANBuANqKQMAIA4gJFStfHwiJCADQfgCaikDACAlIClWrXx8Ig4gAykDwAN8IiV8Ig8gAykD8AN8IhFCAYYgFEI/iIR8IhQgAykDwAR8Iik3A+gJIAMgFCApVq0g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ACADQagJaiADQdgJaikDADcDACADQaAJaiADQdAJaikDADcDACADQZgJaiADQcgJaikDADcDACADIAMpA8AJNwOQCSADIBwgAikDKIM3A5gKIAMgJiACKQMggzcDkAogAyAdIAIpAxiDNwOICiADIB4gAikDEIM3A4AKIAMgHyACKQMIgzcD+AkgAyAgIAIpAwCDNwPwCQJAIANB8AlqIANB4AhqQTAQ0AQNAEIAIRZBKCEBQgAhFEIAIRFCACEPQgAhDkIAIRUDQCADQfAAaiADQZAJaiABaikDACIZIBpCABC9AyADQYABaiAZIBJCABC9AyADQZABaiAZIBNCABC9AyADQaABaiAZIBdCABC9AyADQbABaiAZIBBCABC9AyADQcABaiAZIBhCABC9AyADQeAAaiADKQNwIhsgFXwiGUIAQv3/8//P///5iX8QvQMgA0HQAGogA0HoAGopAwAiFUKr1f7///+//7l/QgAQvQMgA0FAayAVQv//z4rr///VHkIAEL0DIANBMGogFUKk7MO1j9S0mOcAQgAQvQMgA0EgaiAVQr+llJzP8NK75ABCABC9AyADQRBqIBVC19mumuT26Y3LAEIAEL0DIAMgFUKazf/Lo73EgBpCABC9AyADQQhqKQMAIAMpA8ABIiEgFnwiFiADQbgBaikDACADKQOwASIVIBR8IhQgFVStfCAUIANBqAFqKQMAIAMpA6ABIhUgEXwiESAVVK18IBEgA0GYAWopAwAgAykDkAEiFSAPfCIPIBVUrXwgDyADQYgBaikDACADKQOAASIVIA58Ig4gFVStfCAOIANB+ABqKQMAIBkgG1StfHwiFSAOVK18fCIOIA9UrXx8Ig8gEVStfHwiESAUVK18fCIbIAMpAwB8IhQgG1StfCAUIBQgA0EYaikDACARIBEgAykDEHwiEVatfCARIBEgA0EoaikDACAPIA8gAykDIHwiD1atfCAPIA8gA0E4aikDACAOIA4gAykDMHwiDlatfCAOIA4gA0HIAGopAwAgAykDQCIiIBV8IhUgIlStfCAVIBUgA0HYAGopAwAgGSADKQNQIhl8IBlUrXx8IhVWrXx8Ig5WrXx8Ig9WrXx8IhFWrXx8IhRWrXwgFiAbVq0gA0HIAWopAwAgFiAhVK18fHwhFiABQQhrIgFBeEcNAAsCQCAWQprN/8ujvcSAGlYNAAJAIBZCms3/y6O9xIAaUgRAIBYhGCAUIRAgESEXIA8hEyAOIRIMAQsgFELX2a6a5PbpjcsAVg0BQprN/8ujvcSAGiEYIBRC19mumuT26Y3LAFIEQCAUIRAgESEXIA8hEyAOIRIMAQsgEUK/pZScz/DSu+QAVg0BQtfZrprk9umNywAhECARQr+llJzP8NK75ABSBEAgESEXIA8hEyAOIRIMAQsgD0Kk7MO1j9S0mOcAVg0BQr+llJzP8NK75AAhFyAPQqTsw7WP1LSY5wBSBEAgDyETIA4hEgwBCyAOQv//z4rr///VHlYNAUKk7MO1j9S0mOcAIRMgDkL//8+K6///1R5SBEAgDiESDAELQv//z4rr///VHiESIBVCqtX+////v/+5f1YNAQsgFSEaDAELIA5C///Piuv//9UefSIQIBVCq9X+////v/+5f1StIhN9IRIgD0Kk7MO1j9S0mOcAfSIXIA5C///Piuv//9UeVCAQIBNUcq0iDn0hEyARQr+llJzP8NK75AB9IhAgD0Kk7MO1j9S0mOcAVCAOIBdWcq0iDn0hFyAUQtfZrprk9umNywB9Ig8gEUK/pZScz/DSu+QAVCAOIBBWcq0iDn0hECAWIBRC19mumuT26Y3LAFQgDiAPVnKtfUKazf/Lo73EgBp9IRggFULVqoGAgIDAgMYAfCEaCyACEMMCIAIgA0GwCGpBMBDQBA0ACwsgACAaNwMoIAAgEjcDICAAIBM3AxggACAXNwMQIAAgEDcDCCAAIBg3AwAMAgsgAEEoakGA+8AAKQMANwMAIABBIGpB+PrAACkDADcDACAAQRhqQfD6wAApAwA3AwAgAEEQakHo+sAAKQMANwMAIABBCGpB4PrAACkDADcDACAAQdj6wAApAwA3AwAMAQsgACABKQMANwMAIABBKGogAUEoaikDADcDACAAQSBqIAFBIGopAwA3AwAgAEEYaiABQRhqKQMANwMAIABBEGogAUEQaikDADcDACAAQQhqIAFBCGopAwA3AwALIANBoApqJAAPCyABQQJrQQZBiP7AABDWAwALzz0CBn8ZfiMAQdALayIDJAAgA0HgCmpCADcDACADQdgKakIANwMAIANB0ApqQgA3AwAgA0HwCmpCADcDACADQfgKakIANwMAIANCADcDyAogA0IANwPoCiADQgE3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A0GAB2opAwAhDSADIANBkAdqKQMAIBUgAykDiAciCnwgClStfCIRIAMpA/gGfCIKIBN8IhU3A8ALIANB8AZqKQMAIRYgAyAKIBVWrSANIAogEVStfHwiDSADKQPoBnwiCiAXfCIRNwPICyADQeAGaikDACEVIAMgCiARVq0gFiAKIA1UrXx8Ig0gAykD2AZ8IgogGXwiETcDiAtBACEBAkAgCiARVq0gFSAKIA1UrXx8IgpQBEBBACEEDAELIAMgCiADKQOoC3wiDTcDqAsgCiANViIERQ0AIAMgBK0iCiADKQOwC3wiDTcDsAsgCiANViEEIAogDVgNACADIAStIgogAykDuAt8Ig03A7gLIAogDVYhBCAKIA1YDQAgBK0iCiAPfCIPIApUIQQLIANBuAVqIAMpA8ALIg1CiceZpK7wgemHf34iCkLH+vPD7YKjkDxCABC9AyADQagFaiAKQo2Vx8OW0trAl39CABC9AyADQZgFaiAKQt2whYzotpGouH9CABC9AyADQYgFaiAKQqnAxomuzpOyMEIAEL0DIAMgDSADKQO4BSIKfCINNwPACyADQbAFaikDACERIAMgA0HABWopAwAgCiANVq18Ig0gAykDqAV8IgogAykDyAt8IhU3A8gLIANBoAVqKQMAIRYgAyAKIBVWrSARIAogDVStfHwiDSADKQOYBXwiCiADKQOIC3wiETcDiAsgA0GQBWopAwAhFSADIAogEVatIBYgCiANVK18fCINIAMpA4gFfCIKIAMpA6gLfCIRNwOoCwJAIAogEVatIBUgCiANVK18fCIKUA0AIAMgCiADKQOwC3wiDTcDsAsgCiANViEBIAogDVgNACADIAGtIgogAykDuAt8Ig03A7gLIAogDVYhASAKIA1YDQAgAa0iCiAPfCIPIApUIQELIANB+ARqIAMpA8gLIg1CiceZpK7wgemHf34iCkLH+vPD7YKjkDxCABC9AyADQegEaiAKQo2Vx8OW0trAl39CABC9AyADQdgEaiAKQt2whYzotpGouH9CABC9AyADQcgEaiAKQqnAxomuzpOyMEIAEL0DIAMgDSADKQP4BCIKfCINNwPICyADQfAEaikDACERIAMgA0GABWopAwAgCiANVq18Ig0gAykD6AR8IgogAykDiAt8IhU3A4gLIANB4ARqKQMAIRYgAyAKIBVW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vQMgA0EIaiARIBJCABC9AyADQegAaiADQYACaikDACAXIBtWrXwiISADKQOoAXwiCyADQaADaikDACAZIB1UrXwiHSADKQOIA3wiDCADKQO4A3wiECAaICBWrSADQdADaikDACAZIBpWrXx8fCISIAMpA5gCfCIZIA4gGFStIANBsAJqKQMAIBggHlStfHx8IhggAykDyAJ8IhogEyAXVq0gA0HgAmopAwAgDiATVq18fHwiHnwiDiADKQPYAXwiEyADQfABaikDACADKQPoASIJIBt8IAlUrXx8IhcgAykDeHwiG0KJx5mkrvCB6Yd/fiIJQsf688PtgqOQPEIAEL0DIANB2ABqIAlCjZXHw5bS2sCXf0IAEL0DIANByABqIAlC3bCFjOi2kai4f0IAEL0DIANBOGogCUKpwMaJrs6TsjBCABC9AwJAIANBQGspAwAgA0HAAWopAwAgA0HAAmopAwAgECASVq0gA0HAA2opAwAgDCAQVq18fCADQZADaikDACAMIB1UrXx8Ih0gAykDiAJ8IgkgGCAZVK0gA0GgAmopAwAgEiAZVq18fHwiDCADKQO4AnwiECAMVK18IBAgECAaIB5WrSADQdACaikDACAYIBpWrXx8fCIQVq18IAkgDFatIANBkAJqKQMAIAkgHVStfHx8IhIgAykDiAF8IgkgA0GgAWopAwAgECADKQOYAXwiDCAQVK18IAwgCyAOVq0gA0GwAWopAwAgCyAhVK18fHwiCyAMVK18fCIMIAMpA7gBfCIQIAxUrXwgECADQdABaikDACALIAsgAykDyAF8IgtWrXwgCyATIBdWrSADQeABaikDACAOIBNWrXx8fCIOIAtUrXx8IgsgEFStfCAJIAxWrSADQZABaikDACAJIBJUrXx8fCITIAMpAwh8IgkgA0EgaikDACALIAsgAykDGHwiC1atfCALIAsgA0EwaikDACADQYABaikDACAXIBtWrXwiECADKQMofCIMIBBUrXwgDCAMIA58IgxWrXx8IgtWrXx8IhIgAykDOHwiDiASVK18IA4gDiADQdAAaikDACALIAsgAykDSHwiC1atfCALIANB4ABqKQMAIAwgDCADKQNYfCIMVq18IAwgA0HwAGopAwAgAykDaCIQIBt8IBBUrXx8IhAgDFStfHwiDCALVK18fCIOVq18IAkgElatIANBEGopAwAgCSATVK18fHwiEkKpwMaJrs6TsjBWDQAgEkKpwMaJrs6TsjBSBEAgDCEJIA4hCwwCCyAOQt2whYzotpGouH9WDQAgDkLdsIWM6LaRqLh/UgRAIAwhCSAOIQtCqcDGia7Ok7IwIRIMAgsgDEKNlcfDltLawJd/Vg0AQt2whYzotpGouH8hCyAMQo2Vx8OW0trAl39SBEAgDCEJQqnAxomuzpOyMCESDAILQo2Vx8OW0trAl38hCSAQQsf688PtgqOQPFoNAEKpwMaJrs6TsjAhEgwBCyAMQvPquLzpraW/6AB8IgsgEELH+vPD7YKjkDxUrSITfSEJIA5Co8/685fJ7tfHAHwiFyAMQo2Vx8OW0trAl39UIAsgE1RyrSIMfSELIBIgDkLdsIWM6LaRqLh/VCAMIBdWcq19QqnAxomuzpOyMH0hEiAQQsf688PtgqOQPH0hEAsgAiAVQgGIIg43AwAgAiAUQj+GIBZCAYiEIgw3AxAgAiAWQj+GIBxCAYiEIhw3AxggAiAVQj+GIBRCAYiEIhQ3AwggAiADQcgKakEgENAEDQALCyAAIBA3AxggACAJNwMQIAAgCzcDCCAAIBI3AwAMAgsgAEEYakGw+sAAKQMANwMAIABBEGpBqPrAACkDADcDACAAQQhqQaD6wAApAwA3AwAgAEGY+sAAKQMANwMADAELIAAgASkDADcDACAAQRhqIAFBGGopAwA3AwAgAEEQaiABQRBqKQMANwMAIABBCGogAUEIaikDADcDAAsgA0HQC2okAAvHPQIWfxF+IwBB8ARrIgMkACACKAIIIghBMGwhBCACKAIEIg9BMGshBiAIIQoCQAJAAkACQAJAAkACQAJAAkACQANAIARFDQEgCkEBayEKIAQgBmogBEEwayEEQaDuwABBMBDQBEUNAAsgCkEBaiEQIApBf3MhESABKAIIIgZBMGwhBCABKAIEIRIgBiEFA0AgBARAIAVBAWshBSAEQTBrIgQgEmpBoO7AAEEwENAERQ0BDAMLC0F/IQUgBg0BQQghCUEBIQsMAgsgA0EANgLQBCADQQE2AsQEIANBtPTAADYCwAQgA0IENwLIBCADQcAEakG89MAAEIYEAAtBACEEIAZBMGwiDUEASCAGQarVqhVLcg0BQdm+wgAtAAAaQQghBCANQQgQsAQiCUUNASAGIQQDQCAHIA1GDQEgByAJaiIOIAcgEmoiDCkDADcDACAOQShqIAxBKGopAwA3AwAgDkEgaiAMQSBqKQMANwMAIA5BGGogDEEYaikDADcDACAOQRBqIAxBEGopAwA3AwAgDkEIaiAMQQhqKQMANwMAIAdBMGohByAEQQFrIgQNAAsLIAMgBjYC3AEgAyAJNgLYASADIAY2AtQBIAUgCkgNBCAFIAprQQFqIQwCQCAKIAVrQQFGBEBBCCEODAELQQAhByAMQTBsIgRBAEggDEGq1aoVS3INA0HZvsIALQAAGkEIIQcgBEEIELAEIg5FDQMgDiEEIAUgCkcEQCAFQQFqIQcDQCAEQgA3AwAgBEEoakIANwMAIARBIGpCADcDACAEQRhqQgA3AwAgBEEQakIANwMAIARBCGpCADcDACAEQTBqIQQgECAHQQFrIgdHDQALCyAEQgA3AwAgBEEoakIANwMAIARBIGpCADcDACAEQRhqQgA3AwAgBEEQakIANwMAIARBCGpCADcDAAsgCEEwbCEEA0AgBEUNAiAIQQFrIQggBEEwayIEIA9qIgdBoO7AAEEwENAERQ0ACyAIQQBIDQEgA0G4AmoiBCAHQShqKQMANwMAIANBsAJqIgggB0EgaikDADcDACADQagCaiINIAdBGGopAwA3AwAgA0GgAmoiCyAHQRBqKQMANwMAIANBmAJqIg8gB0EIaikDADcDACADIAcpAwA3A5ACIANBkAJqQaDuwABBMBDQBEUNAyADQZADakIANwMAIANBiANqQgA3AwAgA0GAA2pCADcDACADQfgCakIANwMAIANCADcD8AIgA0IBNwOYAyADQcgDaiAEKQMANwMAIANBwANqIAgpAwA3AwAgA0G4A2ogDSkDADcDACADQbADaiALKQMANwMAIANBqANqIA8pAwA3AwAgAyADKQOQAjcDoAMgA0H4A2pB+O7AACkDADcDACADQfADakHw7sAAKQMANwMAIANB6ANqQejuwAApAwA3AwAgA0HgA2pB4O7AACkDADcDACADQdgDakHY7sAAKQMANwMAIANB0O7AACkDADcD0AMgA0GoBGpBqO/AACkDADcDACADQaAEakGg78AAKQMANwMAIANBmARqQZjvwAApAwA3AwAgA0GQBGoiB0GQ78AAKQMANwMAIANBiARqQYjvwAApAwA3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aiAZQtfZrprk9umNywBCABC9AyADIBlCms3/y6O9xIAaQgAQvQMgA0EIaikDACAiIAMpA8ABIiJ8Ih0gA0G4AWopAwAgAykDsAEiHiAmfCIZIB5UrXwgGSAZIANBqAFqKQMAIAMpA6ABIh4gHHwiHCAeVK18IBwgHCADQZgBaikDACADKQOQASIhICB8Ih4gIVStfCAeIANBiAFqKQMAIAMpA4ABIiEgG3wiGyAhVK18IBsgA0H4AGopAwAgGiAfVK18fCIgIBtUrXx8IhsgHlStfHwiHFatfHwiGVatfHwiHiADKQMAfCIfIB5UrXwgHyADQRhqKQMAIBkgAykDEHwiISAZVK18ICEgA0EoaikDACAcIBwgAykDIHwiHFatfCAcIANBOGopAwAgGyAbIAMpAzB8IhtWrXwgGyAbIANByABqKQMAICAgAykDQCIgfCIZICBUrXwgGSAZIANB2ABqKQMAIBogAykDUCIafCAaVK18fCIZVq18fCIbVq18fCIgIBxUrXx8IhwgIVStfHwiJiAfVK18IB0gHlatIANByAFqKQMAIB0gIlStfHx8ISIgBEEIayIEQXhHDQALICJCms3/y6O9xIAaVg0GICJCms3/y6O9xIAaUQ0BDAILIAUgBkHM9MAAENYDAAsgJkLX2a6a5PbpjcsAVg0EICZC19mumuT26Y3LAFIEQEKazf/Lo73EgBohIgwBCyAcQr+llJzP8NK75ABWDQRC19mumuT26Y3LACEfIBxCv6WUnM/w0rvkAFIEQEKazf/Lo73EgBohIgwCCyAgQqTsw7WP1LSY5wBWDQRCv6WUnM/w0rvkACEeICBCpOzDtY/UtJjnAFIEQEKazf/Lo73EgBohIgwDCyAbQv//z4rr///VHlYNBEKk7MO1j9S0mOcAISMgG0L//8+K6///1R5RDQNCms3/y6O9xIAaISIgGyEdDAULICYhHwsgHCEeCyAgISMgGyEdDAILQv//z4rr///VHiEdIBlCqtX+////v/+5f1YNAEKazf/Lo73EgBohIgwBCyAbQv//z4rr///VHn0iGiAZQqvV/v///7//uX9UrSIefSEdICBCpOzDtY/UtJjnAH0iHyAbQv//z4rr///VHlQgGiAeVHKtIhp9ISMgHEK/pZScz/DSu+QAfSIbICBCpOzDtY/UtJjnAFQgGiAfVnKtIhp9IR4gJkLX2a6a5PbpjcsAfSIhIBxCv6WUnM/w0rvkAFQgGiAbVnKtIhp9IR8gIiAmQtfZrprk9umNywBUIBogIVZyrX1Cms3/y6O9xIAafSEiIBlC1aqBgICAwIDGAHwhGQsgByAMSQRAIA4gB0EwbCIIaiIGIBk3AyggBiAdNwMgIAYgIzcDGCAGIB43AxAgBiAfNwMIIAYgIjcDACADAn8gBSAKRgRAQQghBkEADAELQQAhBCAIQQBIIAdBqtWqFUtyDQNB2b7CAC0AABpBCCEEIAhBCBCwBCIGRQ0DIAYhBAJAIAogC0YNACAFIA1qQQFrIglBB3EgCiAFa0EBakF4TQRAIAlBeHEhCQNAIARCADcDACAEQShqQgA3AwAgBEEgakIANwMAIARBGGpCADcDACAEQRBqQgA3AwAgBEEIakIANwMAIARBMGpCADcDACAEQThqQgA3AwAgBEFAa0IANwMAIARByABqQgA3AwAgBEHQAGpCADcDACAEQdgAakIANwMAIARB4ABqQgA3AwAgBEHoAGpCADcDACAEQfAAakIANwMAIARB+ABqQgA3AwAgBEGAAWpCADcDACAEQYgBakIANwMAIARBuAFqQgA3AwAgBEGwAWpCADcDACAEQagBakIANwMAIARBoAFqQgA3AwAgBEGYAWpCADcDACAEQZABakIANwMAIARBwAFqQgA3AwAgBEHIAWpCADcDACAEQdABakIANwMAIARB2AFqQgA3AwAgBEHgAWpCADcDACAEQegBakIANwMAIARB8AFqQgA3AwAgBEH4AWpCADcDACAEQYACakIANwMAIARBiAJqQgA3AwAgBEGQAmpCADcDACAEQZgCakIANwMAIARByAJqQgA3AwAgBEHAAmpCADcDACAEQbgCakIANwMAIARBsAJqQgA3AwAgBEGoAmpCADcDACAEQaACakIANwMAIARB+AJqQgA3AwAgBEHwAmpCADcDACAEQegCakIANwMAIARB4AJqQgA3AwAgBEHYAmpCADcDACAEQdACakIANwMAIARBgANqIQQgCUEIayIJDQALC0UNACAFIBFqQQdxIQUDQCAEQgA3AwAgBEEoakIANwMAIARBIGpCADcDACAEQRhqQgA3AwAgBEEQakIANwMAIARBCGpCADcDACAEQTBqIQQgBUEBayIFDQALCyAEQgA3AwAgBEEoakIANwMAIARBIGpCADcDACAEQRhqQgA3AwAgBEEQakIANwMAIARBCGpCADcDACAHCzYCqAMgAyAGNgKkAyADIAc2AqADIANBoANqEKEDIAMoAqQDIAhqIgYgGTcDKCAGIB03AyAgBiAjNwMYIAYgHjcDECAGIB83AwggBiAiNwMAIAMgB0EBaiIENgKoAyADKAKgAyEHIAMoAqQDIQYgA0EAOgCIBCADIAYgBEEwbGo2AoQEIAMgBjYCgAQgA0HQA2ogA0GABGoQlAIgAygC2AMiBUECTwRAIAVBAXYhCSADKALUAyIEIAVBMGxqQTBrIQUDQCAEKQMAIRkgBCAFKQMANwMAIANB6ARqIgggBEEoaiILKQMANwMAIANB4ARqIg8gBEEgaiIQKQMANwMAIANB2ARqIhYgBEEYaiITKQMANwMAIANB0ARqIhcgBEEQaiIUKQMANwMAIANByARqIhggBEEIaiIVKQMANwMAIAsgBUEoaiILKQMANwMAIBAgBUEgaiIQKQMANwMAIBMgBUEYaiITKQMANwMAIBQgBUEQaiIUKQMANwMAIBUgBUEIaiIVKQMANwMAIAMgGTcDwAQgCyAIKQMANwMAIBAgDykDADcDACATIBYpAwA3AwAgFCAXKQMANwMAIBUgGCkDADcDACAFIAMpA8AENwMAIAVBMGshBSAEQTBqIQQgCUEBayIJDQALCyADQcgEaiADQdgDaigCADYCACADIAMpAtADNwPABCAHBEAgBiAHQTBsELkECyADQcQCaiADQcAEaiACEGYgAygCwAQiBgRAIAMoAsQEIAZBMGwQuQQLIANBiARqIANB3AFqIgYoAgA2AgAgAyADKQLUATcDgAQgA0HABGoiBCADQcQCahCEAiADQdQBaiADQYAEaiAEEMoBIAYoAgAiBkEwbCEEIAMoAtgBIQkgBiEFA0ACQCAERQRAQX8hBQwBCyAFQQFrIQUgBEEwayIEIAlqQaDuwABBMBDQBEUNAQsLIAUgCkgNAwwBCwsgBSAKayAMQdz0wAAQ1gMACyAEIAgQqAQACyADQQA6AIgEIAMgDjYCgAQgAyAOIAxBMGwiBmo2AoQEIANBtARqIANBgARqEJQCIAMoArwEIgJBAk8EQCACQQF2IQkgAygCuAQiBCACQTBsakEwayEFA0AgBCkDACEZIAQgBSkDADcDACADQegEaiICIARBKGoiBykDADcDACADQeAEaiIKIARBIGoiCCkDADcDACADQdgEaiIMIARBGGoiDSkDADcDACADQdAEaiILIARBEGoiDykDADcDACADQcgEaiIQIARBCGoiESkDADcDACAHIAVBKGoiBykDADcDACAIIAVBIGoiCCkDADcDACANIAVBGGoiDSkDADcDACAPIAVBEGoiDykDADcDACARIAVBCGoiESkDADcDACADIBk3A8AEIAcgAikDADcDACAIIAopAwA3AwAgDSAMKQMANwMAIA8gCykDADcDACARIBApAwA3AwAgBSADKQPABDcDACAFQTBrIQUgBEEwaiEEIAlBAWsiCQ0ACwsgDiAGELkEIABBFGogA0HcAWooAgA2AgAgACADKQLUATcCDCAAIAMpArQENwIAIABBCGogA0G8BGooAgA2AgAgASgCACIARQ0AIBIgAEEwbBC5BAsgA0HwBGokAAuoNgIIfx1+QgIhHCMAQbAJayICJAAgASkDKCEVIAEpAyAhDCABKQMYIQ8gASkDECESIAEpAwghDiABKQMAIRQCQANAIBwhCyACQYAIaiAMIBVCABC9AyACQeAHaiAPIBVCABC9AyACQbAHaiASIBVCABC9AyACQfAGaiAOIBVCABC9AyACQaAGaiAUIBVCABC9AyACQdAHaiAPIAxCABC9AyACQaAHaiASIAxCABC9AyACQeAGaiAOIAxCABC9AyACQZAGaiAUIAxCABC9AyACQZAHaiASIA9CABC9AyACQdAGaiAOIA9CABC9AyACQYAGaiAUIA9CABC9AyACQcAGaiAOIBJCABC9AyACQfAFaiAUIBJCABC9AyACQeAFaiAUIA5CABC9AyACQZAIaiAVIBVCABC9AyACQfAHaiAMIAxCABC9AyACQcAHaiAPIA9CABC9AyACQYAHaiASIBJCABC9AyACQbAGaiAOIA5CABC9AyACQdAFaiAUIBRCABC9AyACQZgGaikDACESIAJB2AZqKQMAIQ0gAikDgAYhFCACQYgGaikDACEQIAIpA8AGIRwgAkHIBmopAwAhESACKQPwBSEVIAJBiAdqKQMAIRMgAiACQcgHaikDACACQfgHaikDACACQZgIaikDACIKIAIpA4AIIgxCAYZ8IhogClStIg4gAkGICGop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IBMgE0IAEL0DIAJBuANqKQMAIREgAkHoA2opAwAhEyACKQPwAyEaIAJB+ANqKQMAIRYgAikDkAQhFyACQZgEaikDACEdIAIpA6AEIRggAkG4BGopAwAhGSACIAJBiARqKQMAIAJByANqKQMAIAJB+AJqKQMAIgogAikDoAIiC0IBhnwiHiAKVK0iDSAIKQMAIhAgAikDsAJ8IgpCAYYgC0I/iIR8IgsgDVStfCALIAIpA8ADfCIfIAtUrXwiGyACQbgCaikDACAKIBBUrXwiECACKQPAAnwiCyACKQOAA3wiDUIBhiAKQj+IhHwiIiAbVK0iGyACQYgDaikDACALIA1WrXwiICACQcgCaikDACALIBBUrXwiECACKQPQAnwiIXwiCiACKQOQA3wiC0IBhiANQj+IhHwiDSAbVK18IA0gAikDgAR8IhsgDVStfCIjIAogC1atIAJBmANqKQMAIAogIFStfHwiICACQdgCaikDACAQICFWrXwiISACKQPgAnwiJHwiCiACKQOgA3wiDSACKQPQA3wiEEIBhiALQj+IhHwiJSAjVK0iIyACQdgDaikDACANIBBWrXwiJiAKIA1WrSACQagDaikDACAKICBUrXx8IiAgAkHoAmopAwAgISAkVq18fCIKIAIpA7ADfCIhfCILIAIpA+ADfCINQgGGIBBCP4iEfCIQIAIpA7AEfCIkNwP4CCACIBAgJFatIBkgECAjVK18fCIZIBcgGiALIA1WrSATIAsgJlStfHwiEyAKICFWrSARIAogIFStfHx8Igp8Igt8IhBCAYYgDUI/iIR8Ig03A/AIIAIgDSAZVK0iESAYIB0gCyAQVq18IhogCiALVq0gFiAKIBNUrXx8fCIKfCILQgGGIBBCP4iEfCINIAIpA9AEfCIQNwPoCCACIA0gEFatIAJB2ARqKQMAIA0gEVStfHwiDSAKIAtWrSACQagEaikDACAKIBpUrXx8IhAgAikDwAR8IgpCAYYgC0I/iIR8Igs3A+AIIAJB6ARqKQMAIREgAiALIA1UrSILIAJByARqKQMAIAogEFStfCINQgGGIApCP4iEfCIKIAIpA+AEfCIQNwPYCCACIAogEFatIBEgCiALVK18fCANQj+IfDcD0AggAiACKQPwAjcDqAkgAiAeNwOgCSACIB83A5gJIAIgIjcDkAkgAiAbNwOICSACICU3A4AJIBwiGkIBiCEcQQAhBkEGIQRBACEHAkADQAJAIAJBkAJqIAJBgAlqIAZqIgVBKGoiASkDACILQv3/8//P///5iX9+IgpCq9X+////v/+5f0IAEL0DIAEgCyACKQOQAiINfCILNwMAIAJBmAJqKQMAIRAgBCIBQQFNBH8gAiAGakGgCWoFIAFBAmsiBEEFSw0BIAJBgAlqIARBA3RqCyEDIAFBAWshBCACQYACaiAKQv//z4rr///VHkIAEL0DIAMgECALIA1UrXwiDSACKQOAAnwiCyADKQMAfCIQNwMAIAJB8AFqIApCpOzDtY/UtJjnAEIAEL0DIAVBGGogAkHQCGogBmoiA0HIAGogAUECSxsiCSALIBBWrSACQYgCaikDACALIA1UrXx8Ig0gAikD8AF8IgsgCSkDAHwiEDcDACACQeABaiAKQr+llJzP8NK75ABCABC9AyAFQRBqIANBQGsgAUEDSxsiCSALIBBWrSACQfgBaikDACALIA1UrXx8Ig0gAikD4AF8IgsgCSkDAHwiEDcDACACQdABaiAKQtfZrprk9umNywBCABC9AyACQdgBaikDACALIBBWrSACQegBaikDACALIA1UrXx8Ig0gAikD0AF8IgsgDVStfCENAkACQCABQQRNBEAgA0E4aiIFIAsgBSkDAHwiEDcDACANIAsgEFatfCERDAELIAVBCGoiCSALIAkpAwB8IhA3AwAgDSALIBBWrXwhESAEQQRLDQELIAJB0AhqIAFBA3RqIQULIAJBwAFqIApCms3/y6O9xIAaQgAQvQMgBSARIAIpA8ABfCIKIAUpAwB8Igs3AwBBACEBAkAgCiALVq0gAkHIAWopAwAgCiARVK18fCIKUA0AIANBKGoiASAKIAEpAwB8Igs3AwAgCiALViIBrSIKUCAGQVhGcg0AIANBIGoiASAKIAEpAwB8Igs3AwAgCiALViIBrSIKUCAEQQJJcg0AIANBGGoiASAKIAEpAwB8Igs3AwAgCiALViIBrSIKUCAEQQNJcg0AIANBEGoiASAKIAEpAwB8Igs3AwAgCiALViIBrSIKUCAEQQRJcg0AIANBCGoiASAKIAEpAwB8Igs3AwAgCiALViIBrSIKUCAEQQVJcg0AIAMgCiADKQMAfCILNwMAIAogC1YiAa0hCgsgASAHciEHIAZB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EyAQQtfZrprk9umNywBUIAogC1ZyrX1Cms3/y6O9xIAafSEUIBFC1aqBgICAwIDGAHwhFQsgGkIEWg0ACwsgACAVNwMoIAAgDDcDICAAIA83AxggACASNwMQIAAgDjcDCCAAIBQ3AwAgAkGwCWokAA8LIAFBAmtBBkGEkcIAENYDAAuzNAIGfxt+IwBBkAprIgMkACADQaAJakIANwMAIANBmAlqQgA3AwAgA0GQCWpCADcDACADQbAJakIANwMAIANBuAlqQgA3AwAgA0IANwOICSADQgA3A6gJIANCATcDwAkCQAJAIAIgA0GICWoiBUEgENAEBEAgAiADQagJakEgENAERQ0BIAIpAxAhGiACKQMIIQsgAikDACEMIAEpAxghECABKQMQIQkgASkDCCEKIAEpAwAhESACKQMYIRIgA0HYCWoiB0IANwMAIANB0AlqIghCADcDACADQgA3A8gJIAMgEkIBgzcD4AkgA0HICWogBUEgENAERQRAA0AgA0G4CGogCSAQQgAQvQMgA0GYCGogCiAQQgAQvQMgA0HoB2ogESAQQgAQvQMgA0GICGogCiAJQgAQvQMgA0HYB2ogESAJQgAQvQMgA0HIB2ogESAKQgAQvQMgA0H4CGogECAQQgAQvQMgA0GoCGogCSAJQgAQvQMgA0H4B2ogCiAKQgAQvQMgA0G4B2ogESARQgAQvQMgA0HoCGogAykD+AgiEEKblK/D8rWo3oZ/fiIJQm1CABC9AyADQdgIaiAJQn9CABC9AyADQcgIaiAJQv///////////wBCABC9AyADQYAIaikDACERIAMgA0GwCGopAwAgAykDqAgiDSADQcAIaikDACIOIAMpA5gIfCIJQgGGIAMpA7gIIg9CP4iEfCIKIA1UrXwgCiADQYAJaikDACINIA9CAYZ8Ig8gDVStfCIWIApUrXwiFCADQaAIaikDACAJIA5UrXwiDiADKQPoB3wiCiADKQOICHwiDUIBhiAJQj+IhHwiGyAUVK0iFCADKQP4B3wiCSADQfAHaikDACAKIA5UrXwiEyADKQPYB3wiDiADQZAIaikDACAKIA1WrXx8IgpCAYYgDUI/iIR8Ig03A+gJIAMgCSANVq0gESAJIBRUrXx8Ig0gCiAOVK0gA0HgB2opAwAgDiATVK18fCIOIAMpA8gHfCIJQgGGIApCP4iEfCIKNwPwCSADIAMpA7gHIhEgA0HQB2opAwAgCSAOVK18Ig5CAYYgCUI/iIR8IgkgCiANVK18Igo3A/gJIAkgClatIANBwAdqKQMAIAkgEVStfHwgDkI/iHwhESADQeAIaikDACEJIAMgA0HwCGopAwAgECADKQPoCCIKfCAKVK18Ig0gAykD2AgiDnwiCiAPfCIQNwOACiADIA4gCiAQVq0gCSAKIA1UrXx8Ig18IgogFnwiDjcDiAogA0HQCGopAwAhECADIAogDlatIAkgCiANVK18fCIKIAMpA8gIfCIJIBt8Ig03A8gJQQAhAQJAIAkgDVatIBAgCSAKVK18fCIJUARAQQAhBAwBCyADIAkgAykD6Al8Igo3A+gJIAkgClYiBEUNACADIAStIgkgAykD8Al8Igo3A/AJIAkgClYhBCAJIApYDQAgAyAErSIJIAMpA/gJfCIKNwP4CSAJIApWIQQgCSAKWA0AIAStIgkgEXwiESAJVCEECyADQagHaiADKQOACiIKQpuUr8Pytajehn9+IglCbUIAEL0DIANBmAdqIAlCf0IAEL0DIANBiAdqIAlC////////////AEIAEL0DIAMgCiADKQOoByINfCIKNwOACiADQaAHaikDACEJIAMgA0GwB2opAwAgCiANVK18Ig0gAykDmAciDnwiCiADKQOICnwiEDcDiAogAyAOIAogEFatIAkgCiANVK18fCINfCIKIAMpA8gJfCIONwPICSADQZAHaikDACEQIAMgCiAOVq0gCSAKIA1UrXx8IgogAykDiAd8IgkgAykD6Al8Ig03A+gJAkAgCSANVq0gECAJIApUrXx8IglQDQAgAyAJIAMpA/AJfCIKNwPwCSAJIApWIQEgCSAKWA0AIAMgAa0iCSADKQP4CXwiCjcD+AkgCSAKViEBIAkgClgNACABrSIJIBF8IhEgCVQhAQsgA0H4BmogAykDiAoiCkKblK/D8rWo3oZ/fiIJQm1CABC9AyADQegGaiAJQn9CABC9AyADQdgGaiAJQv///////////wBCABC9AyADIAogAykD+AYiDXwiCjcDiAogA0HwBmopAwAhCSADIANBgAdqKQMAIAogDVStfCINIAMpA+gGIg58IgogAykDyAl8IhA3A8gJIAMgDiAKIBBWrSAJIAogDVStfHwiDXwiCiADKQPoCXwiDjcD6AkgA0HgBmopAwAhECADIAogDlatIAkgCiANVK18fCIKIAMpA9gGfCIJIAMpA/AJfCINNwPwCUEAIQUgCSANVq0gECAJIApUrXx8IglQRQRAIAMgCSADKQP4CXwiCjcD+AkgCSAKViIFrSIJIBF8IgogESAFGyERIAUgCSAKVnEhBQsgGiENIANByAZqIAMpA8gJIgpCm5Svw/K1qN6Gf34iCUJtQgAQvQMgA0G4BmogCUJ/QgAQvQMgA0GoBmogCUL///////////8AQgAQvQMgAyAKIAMpA8gGIg58Igo3A8gJIANBwAZqKQMAIQkgAyADQdAGaikDACAKIA5UrXwiDiADKQO4BiIQfCIKIAMpA+gJfCIPNwPoCSADIBAgCiAPVq0gCSAKIA5UrXx8Ig58IgogAykD8Al8IhA3A/AJIANBsAZqKQMAIQ8gAyAKIBBWrSAJIAogDlStfHwiCiADKQOoBnwiCSADKQP4CXwiDjcD+AkgCSAOVq0gDyAJIApUrXx8IgkgEXwiCiARIAlCAFIiBhshEQJAAkAgASAEciAFciAJIApWIgGtIAkgBhtCAFJyIAEgBnEgEUIAU3JyRQRAIAMpA+gJIRAgEUL///////////8AUiADKQP4CSIKQn9SciADKQPwCSIJQn9Scg0CQn8hGkL///////////8AIRFCfyEbQn8hCUJ/IQogEEJtVA0CDAELIAMpA/gJIRogAykD8AkhGyADKQPoCSEQCyAbQgF8IgogEEJtVK0iDn0hCSAaQgF8Ig8gG0J/UiAKIA5Ucq0iDn0hCiARIBpCf1IgDiAPVnKtfUL///////////8AfSERIBBCE3whEAsgAiALQj+GIA1CAYiEIho3AxAgAiANQj+GIBJCAYiEIhI3AxggAiAMQj+GIAtCAYiEIgs3AwggAiAMQgGIIgw3AwAgB0IANwMAIAhCADcDACADQgA3A8gJIAMgEkIBgzcD4AkgA0HICWogA0GICWpBIBDQBEUNAAsLAkAgAiADQYgJakEgENAERQ0AIAIgDEIBiCINNwMAIAIgC0I/hiAaQgGIhCIONwMQIAIgGkI/hiASQgGIhCIaNwMYIAIgDEI/hiALQgGIhCIbNwMIIAIgA0GICWpBIBDQBEUNACADKQPACSEhIANB2AlqIQcgESESIAohDCAJIQ8gECELA0AgA0HYBWogDyALQgAQvQMgA0G4BWogDCALQgAQvQMgA0GIBWogEiALQgAQvQMgA0GoBWogDCAPQgAQvQMgA0H4BGogEiAPQgAQvQMgA0HoBGogEiAMQgAQvQMgA0GYBmogCyALQgAQvQMgA0HIBWogDyAPQgAQvQMgA0GYBWogDCAMQgAQvQMgA0HYBGogEiASQgAQvQMgA0GIBmogAykDmAYiFkKblK/D8rWo3oZ/fiISQm1CABC9AyADQfgFaiASQn9CABC9AyADQegFaiASQv///////////wBCABC9AyADQaAFaikDACEUIAMgA0HQBWopAwAgAykDyAUiDCADQeAFaikDACIPIAMpA7gFfCISQgGGIAMpA9gFIhNCP4iEfCILIAxUrXwgCyADQaAGaikDACIMIBNCAYZ8IhMgDFStfCIXIAtUrXwiFSADQcAFaikDACAPIBJWrXwiDyADKQOIBXwiCyADKQOoBXwiDEIBhiASQj+IhHwiGCAVVK0iFSADKQOYBXwiEiADQZAFaikDACALIA9UrXwiGSADKQP4BHwiDyADQbAFaikDACALIAxWrXx8IgtCAYYgDEI/iIR8Igw3A+gJIAMgDCASVK0gFCASIBVUrXx8IgwgCyAPVK0gA0GABWopAwAgDyAZVK18fCIPIAMpA+gEfCISQgGGIAtCP4iEfCILNwPwCSADIAMpA9gEIhQgA0HwBGopAwAgDyASVq18Ig9CAYYgEkI/iIR8IhIgCyAMVK18Igs3A/gJIAsgElStIANB4ARqKQMAIBIgFFStfHwgD0I/iHwhEiADQYAGaikDACELIAMgA0GQBmopAwAgFiADKQOIBiIMfCAMVK18Ig8gAykD+AUiFnwiDCATfCIUNwOACiADIBYgDCAUVq0gCyAMIA9UrXx8Ig98IgwgF3wiFjcDiAogA0HwBWopAwAhFCADIAwgFlatIAsgDCAPVK18fCIMIAMpA+gFfCILIBh8Ig83A8gJQQAhAQJAIAsgD1atIBQgCyAMVK18fCILUARAQQAhBAwBCyADIAsgAykD6Al8Igw3A+gJIAsgDFYiBEUNACADIAStIgsgAykD8Al8Igw3A/AJIAsgDFYhBCALIAxYDQAgAyAErSILIAMpA/gJfCIMNwP4CSALIAxWIQQgCyAMWA0AIAStIgsgEnwiEiALVCEECyADQcgEaiADKQOACiIMQpuUr8Pytajehn9+IgtCbUIAEL0DIANBuARqIAtCf0IAEL0DIANBqARqIAtC////////////AEIAEL0DIAMgDCADKQPIBCIPfCIMNwOACiADQcAEaikDACELIAMgA0HQBGopAwAgDCAPVK18Ig8gAykDuAQiFnwiDCADKQOICnwiFDcDiAogAyAWIAwgFFatIAsgDCAPVK18fCIPfCIMIAMpA8gJfCIWNwPICSADQbAEaikDACEUIAMgDCAWVq0gCyAMIA9UrXx8IgwgAykDqAR8IgsgAykD6Al8Ig83A+gJAkAgCyAPVq0gFCALIAxUrXx8IgtQDQAgAyALIAMpA/AJfCIMNwPwCSALIAxWIQEgCyAMWA0AIAMgAa0iCyADKQP4CXwiDDcD+AkgCyAMViEBIAsgDFgNACABrSILIBJ8IhIgC1QhAQsgA0GYBGogAykDiAoiDEKblK/D8rWo3oZ/fiILQm1CABC9AyADQYgEaiALQn9CABC9AyADQfgDaiALQv///////////wBCABC9AyADIAwgAykDmAQiD3wiDDcDiAogA0GQBGopAwAhCyADIANBoARqKQMAIAwgD1StfCIPIAMpA4gEIhZ8IgwgAykDyAl8IhQ3A8gJIAMgFiAMIBRWrSALIAwgD1StfHwiD3wiDCADKQPoCXwiFjcD6AkgA0GABGopAwAhFCADIAwgFlatIAsgDCAPVK18fCIMIAMpA/gDfCILIAMpA/AJfCIPNwPwCUEAIQUgCyAPVq0gFCALIAxUrXx8IgtQRQRAIAMgCyADKQP4CXwiDDcD+AkgCyAMViIFrSILIBJ8IgwgEiAFGyESIAUgCyAMVnEhBQsgDSEWIA4hFCADQegDaiADKQPICSIOQpuUr8Pytajehn9+Ig1CbUIAEL0DIANB2ANqIA1Cf0IAEL0DIANByANqIA1C////////////AEIAEL0DIAMgDiADKQPoAyILfCIONwPICSADQeADaikDACENIAMgA0HwA2opAwAgCyAOVq18IgsgAykD2AMiDHwiDiADKQPoCXwiDzcD6AkgAyAMIA4gD1atIA0gCyAOVq18fCILfCIOIAMpA/AJfCIMNwPwCSADQdADaikDACEPIAMgDCAOVK0gDSALIA5WrXx8Ig4gAykDyAN8Ig0gAykD+Al8Igs3A/gJIAsgDVStIA8gDSAOVK18fCINIBJ8Ig4gEiANQgBSIgYbIRICQAJAIAEgBHIgBXIgDSAOViIBrSANIAYbQgBSciABIAZxIBJCAFNyckUEQCADKQPoCSELIBJC////////////AFIgAykD+AkiDEJ/UnIgAykD8AkiD0J/UnINAkJ/IQ1C////////////ACESQn8hDkJ/IQ9CfyEMIAtCbVQNAgwBCyADKQP4CSENIAMpA/AJIQ4gAykD6AkhCwsgDkIBfCIMIAtCbVStIhN9IQ8gDUIBfCIXIA5Cf1IgDCATVHKtIg59IQwgEiANQn9SIA4gF1ZyrX1C////////////AH0hEiALQhN8IQsLIAdCADcDACADQdAJakIANwMAIANCADcDyAkgAyAaICGDNwPgCQJAIANByAlqIANBqAlqQSAQ0AQNACADQbgDaiALIBBCABC9AyADQfgCaiALIAlCABC9AyADQegCaiALIApCABC9AyADQdgCaiALIBFCABC9AyADQagDaiADKQO4AyITQpuUr8Pytajehn9+Ig1CbUIAEL0DIANBmANqIA1Cf0IAEL0DIANBiANqIA1C////////////AEIAEL0DIANByAJqIA8gEEIAEL0DIANBiAJqIA8gCUIAEL0DIANB+AFqIA8gCkIAEL0DIANB6AFqIA8gEUIAEL0DIANBuAJqIAMpA5gDIg0gA0HAA2opAwAiGCADKQP4AnwiGXwiDiADQbADaikDACATIAMpA6gDIhd8IBdUrXx8IhMgAykDyAJ8IhdCm5Svw/K1qN6Gf34iFUJtQgAQvQMgA0GoAmogFUJ/QgAQvQMgA0GYAmogFUL///////////8AQgAQvQMgA0HYAWogDCAQQgAQvQMgA0GYAWogDCAJQgAQvQMgA0GIAWogDCAKQgAQvQMgA0H4AGogDCARQgAQvQMgA0HIAWogA0HQAmopAwAgEyAXVq18Ih0gAykDiAJ8IhUgDSADQYADaikDACAYIBlWrXwiHiADKQPoAnwiGHwiGSAOIBNWrSADQaADaikDACIfIA0gDlatfHx8IiB8Ig0gAykDqAIiInwiDiADQcACaikDACADKQO4AiITIBd8IBNUrXx8IhMgAykD2AF8IhdCm5Svw/K1qN6Gf34iHEJtQgAQvQMgA0G4AWogHEJ/QgAQvQMgA0GoAWogHEL///////////8AQgAQvQMgA0HoAGogEiAQQgAQvQMgA0EoaiASIAlCABC9AyADQRhqIBIgCkIAEL0DIANBCGogEiARQgAQvQMgA0HYAGogA0HgAWopAwAgEyAXVq18IiMgAykDmAF8IgkgIiADQfACaikDACAYIB5UrXwiHiADKQPYAnwiCiADKQOIA3wiESAZICBWrSAfIBggGVatfHx8IhAgAykD+AF8IhggDSAVVK0gA0GQAmopAwAgFSAdVK18fHwiFXwiGSAOIBNWrSADQbACaikDACIdIA0gDlatfHx8Ih98Ig0gAykDuAEiIHwiDiADQdABaikDACADKQPIASITIBd8IBNUrXx8IhMgAykDaHwiF0KblK/D8rWo3oZ/fiIcQm1CABC9AyADQcgAaiAcQn9CABC9AyADQThqIBxC////////////AEIAEL0DAkAgA0FAaykDACADQbABaikDACADQaACaikDACAQIBFUrSADQZADaikDACAKIBFWrXx8IhwgA0HgAmopAwAgCiAeVK18fCIKIAMpA+gBfCIRIBUgGFStIANBgAJqKQMAIBAgGFatfHx8IhAgAykDmAJ8IhggEFStfCAYIBkgH1atIB0gFSAZVq18fHwiFSAYVK18IhggECARVK0gA0HwAWopAwAgCiARVq18fCIZIAogHFStfCIcfCIKIAMpA3h8IhEgA0GQAWopAwAgFSADKQOIAXwiECAVVK18IBAgCSANVq0gA0GgAWopAwAgCSAjVK18fHwiCSAQVK18fCIQIAMpA6gBfCIVIBBUrXwgFSADQcABaikDACIdIAkgCSAgfCIJVq18IAkgDiATVq0gHSANIA5WrXx8fCIOIAlUrXx8IgkgFVStfCIVIBAgEVStIANBgAFqKQMAIAogEVatfHwiHSAKIBhUrSAZIBxWrXx8Ihh8IgogAykDCHwiESADQSBqKQMAIAkgCSADKQMYfCIJVq18IAkgCSADQTBqKQMAIANB8ABqKQMAIBMgF1atfCIQIAMpAyh8Ig0gEFStfCANIA0gDnwiDVatfHwiCVatfHwiEyADKQM4fCIOIBNUrXwgDiAOIANB0ABqKQMAIhAgCSAJIAMpA0giGXwiCVatfCAJIBAgDSANIBl8Ig1WrXwgDSADQeAAaikDACADKQNYIhAgF3wgEFStfHwiECANVK18fCINIAlUrXx8Ig5WrXwiCSARIBNWrSADQRBqKQMAIAogEVatfHwiEyAKIBVUrSAYIB1UrXx8Igp8IhFCAFMgCSARVq1CACAKIBNUrX1Scg0AIBFC////////////AFIEQCANIQkgDiEKDAILIA5Cf1IEQCANIQkgDiEKQv///////////wAhEQwCC0J/IQogDUJ/UgRAIA0hCUL///////////8AIREMAgtCfyEJIBBCbVoNAEL///////////8AIREMAQsgDUIBfCIKIBBCbVStIhN9IQkgDkIBfCIXIA1Cf1IgCiATVHKtIg19IQogESAOQn9SIA0gF1ZyrX1C////////////AH0hESAQQhN8IRALIAIgFkIBiCINNwMAIAIgG0I/hiAUQgGIhCIONwMQIAIgFEI/hiAaQgGIhCIaNwMYIAIgFkI/hiAbQgGIhCIbNwMIIAIgA0GICWpBIBDQBA0ACwsgACAQNwMYIAAgCTcDECAAIAo3AwggACARNwMADAILIABBGGpBwPvAACkDADcDACAAQRBqQbj7wAApAwA3AwAgAEEIakGw+8AAKQMANwMAIABBqPvAACkDADcDAAwBCyAAIAEpAwA3AwAgAEEYaiABQRhqKQMANwMAIABBEGogAUEQaikDADcDACAAQQhqIAFBCGopAwA3AwALIANBkApqJAALjjMCBn8TfiMAQeAJayIDJAACQAJAAkACQAJAAkACQAJAIAFBoOjAAEEgENAERQRAIAFBIGpBoOjAAEEgENAERQ0BCyACQaDowABBIBDQBEUEQCACQSBqQaDowABBIBDQBEUNAgsCQCABIAJBIBDQBEUEQCABQSBqIgggAkEgakEgENAERQ0BIABCADcDACAAQThqQgA3AwAgAEEwakIANwMAIABBKGpCADcDACAAQSBqQgA3AwAgAEEYakIANwMAIABBEGpCADcDACAAQQhqQgA3AwAMCQsgASkDICIRIQ8gAikDICITIQoCfgJAIBEgE1INACABKQMoIgsgAikDKCIKUgRAIAshDwwBCyABKQMwIgkgAikDMCIKUgRAIAkhDwwBCyALIQwgASkDOCIPIQ0gCSAPIAIpAzgiClENARoLIAogD1gNBCABKQMoIQsgAikDKCEMIAEpAzAhCSABKQM4IQ8gAikDOCENIAIpAzALIhAgCX0iDiANIA9UrSIWfSEKIAwgC30iFSAOIBZUIAkgEFZyrSIQfSEJIBAgFVYgCyAMVnIhBCATIBF9IREgDSAPfSEPDAYLIANB0AZqQZGewQAQmgEgA0HwBmpB0Z7BABCaASADQdAHakGRn8EAEJoBIANB8AdqQdGfwQAQmgEgA0GQCGpBkaDBABCaARDdAyIFIAUpAwBCAXw3AwAgAykD0AYhFiADKQPYBiEVIAMpA+AGIRggAykD6AYhGSADQgM3A9gJIANCgICAgFA3A9AJIANCfzcDyAkgA0L8////LzcDwAkgA0HYBWogASkDECIQIAEpAxgiEUIAEL0DIANBuAVqIAEpAwgiDyARQgAQvQMgA0GIBWogASkDACITIBFCABC9AyADQagFaiAPIBBCABC9AyADQfgEaiATIBBCABC9AyADQegEaiATIA9CABC9AyADQfgFaiARIBFCABC9AyADQcgFaiAQIBBCABC9AyADQZgFaiAPIA9CABC9AyADQdgEaiATIBNCABC9AyADQegFaiADKQP4BSISQn2DIhRCgYCAgHBCABC9AyADQfAEaikDACADQYAFaikDACADQZAFaikDACADQcAFaikDACADQeAFaikDACIMIAMpA7gFfCIJIAxUrXwiCiADKQOIBXwiDCAKVK18IgsgAykD+AR8IgogC1StfCAKIAogA0GwBWopAwAgDCAMIAMpA6gFfCIMVq18fCIKVq18Ig0gAykD6AR8IgsgDVStfCINQj+IIANB4ARqKQMAIAMpA9gEIhcgDUIBhiALQj+IhHwiDiAXVK18IA4gA0GgBWopAwAgA0HQBWopAwAgAykDyAUiFyAJQgGGIAMpA9gFIhpCP4iEfCINIBdUrXwgDSADQYAGaikDACIXIBpCAYZ8IhogF1StfCIXIA1UrXwiDSAMQgGGIAlCP4iEfCIbIA1UrSINIAMpA5gFfCIJIA1UrXwgCSAKQgGGIAxCP4iEfCINIAlUrXwiCSALQgGGIApCP4iEfCILIAlUrXwiCSAOVK18fCEKIANB8AVqKQMAIBRCIIYiDiAafCIMIA5UrSASQiCIfCIOIBd8IhIgDlStIhQgAykD6AV8Ig4gFFStfCAOIBt8IhQgDlStfCIOUEUNA0EAIQUMBAsgACACKQMgNwMgIAAgAikDADcDACAAQThqIAJBOGopAwA3AwAgAEEwaiACQTBqKQMANwMAIABBKGogAkEoaikDADcDACAAQQhqIAJBCGopAwA3AwAgAEEQaiACQRBqKQMANwMAIABBGGogAkEYaikDADcDAAwGCyAAIAEpAyA3AyAgACABKQMANwMAIABBOGogAUE4aikDADcDACAAQTBqIAFBMGopAwA3AwAgAEEoaiABQShqKQMANwMAIABBCGogAUEIaikDADcDACAAQRBqIAFBEGopAwA3AwAgAEEYaiABQRhqKQMANwMADAULIAEpAzAiDyACKQMwIglUIA8gCX0iCSABKQM4IgwgAikDOCILVK0iClRyrSIPIAEpAygiDSACKQMoIg59IhB9IhYgCSAKfSIKQv////8PVq0iFX0hCSAPIBBSIBUgFlZyIQRC/////w8gCn0hCiANIA5UIA8gEFZyrSATIBF9fEL/////D30hESALIAxCf4V8IQ8MAgsgDSAOfCINIA5UIgVFDQAgBa0iDiALfCILIA5UIQUgCyAOWg0AIAWtIg4gCXwiCSAOVCEFIAkgDloNACAFrSIOIAp8IgogDlQhBQsgA0HIBGogDEKBgICAcEIAEL0DAkAgA0HQBGopAwAgEiAMQiCGIhJ8Ig4gElStIAxCIIh8IgwgFHwiEiAMVK0iFCADKQPIBHwiDCAUVK18IAwgDXwiDSAMVK18IgxQDQAgCyAMfCILIAxUIQQgCyAMWg0AIAStIgwgCXwiCSAMVCEEIAkgDFoNACAErSIMIAp8IgogDFQhBAsgA0G4BGogDkKBgICAcEIAEL0DIANBwARqKQMAIA0gDkIghiINIBJ8IgwgDVStIA5CIIh8Ig18Ig4gDVStIhIgAykDuAR8Ig0gElStfCANIAsgDXwiDVatfCILUEUEQCAJIAt8IgkgC1QiBq0iCyAKfCISIAogBhshCiAGIAsgElZxIQYLIANBqARqIAxCgYCAgHBCABC9AyADQbAEaikDACANIAxCIIYiDSAOfCILIA1UrSAMQiCIfCINfCIMIA1UrSIOIAMpA6gEfCINIA5UrXwgDSAJIA18Ig1WrXwiCSAKfCIOIAogCUIAUiIHGyEKAkACQCAEIAVyIAZyIAkgDlYiBK0gCSAHG0IAUnIgBCAHcSAKQoGAgIBwVnJyDQACQCAKQoGAgIBwUg0AIA1CAFIgDEL/////D1ZyDQEgDEL/////D1INACALQn9RDQELIAwhCSANIQwMAQsgDEL/////D30iDiALQn9SrSISfSEJIA0gDEL/////D1QgDiASVHKtIg59IQwgCiANIA5UrX1C/////w98IQogC0IBfCELCyADIAs3A8AGIAMgCTcDuAYgAyAMNwOwBiADIAo3A6gGIANBgAlqIANBwAlqIANBqAZqEJYBAkACQCADKQOACSINIBZ8IgwgAykDiAkiCSAVfCIKIAlUIAogAykDkAkiCyAYfCIJIAtUIAkgCSADKQOYCSIOIBl8IgsgDlStfCIJVnKtfCIOIApUcq18IgogDFQgDCANVHINAEKBgICAcCENAkAgCiIMQoGAgIBwUg0AIA5CAFINAUL/////DyENIAkiDEL/////D1INACALQn9RDQFCACEMQoGAgIBwIQoMAgsgDCANWg0AIA4hDCAJIQ0MAQsgCUL/////D30iDCALQn9SrSIWfSENIA4gCUL/////D1QgDCAWVHKtIgl9IQwgCkL+////D0L/////DyAJIA5WG3whCiALQgF8IQsLIAMgCzcD+AggAyANNwPwCCADIAw3A+gIIAMgCjcD4AggA0ICNwPABiADQoCAgIBgNwO4BiADQn83A7AGIANC/f///x83A6gGIANBoAlqIgUgA0GoBmogCBCWASADQYgGaiADQeAIaiAFEFsMAQsgAyAPNwPYCSADIAo3A9AJIAMgCTcDyAkgAyARIAStfTcDwAkgASkDACITIREgAikDACIKIQsgAwJ+AkACfgJAIAogE1INACABKQMIIg8gAikDCCILUgRAIA8hEQwBCyABKQMQIhAgAikDECILUgRAIBAhEQwBCyAPIQwgASkDGCIRIQ0gECARIAIpAxgiC1ENARoLIAsgEVgNASABKQMIIQ8gAikDCCEMIAEpAxAhECABKQMYIREgAikDGCENIAIpAxALIgkgEH0iDiANIBFUrSIWfSELIAwgD30iFSAJIBBUIA4gFlRyrSIOfSEJIAwgD1QgDiAVVnIhBCAKIBN9IQogDSARfQwBCyABKQMQIhAgAikDECIPVCAQIA99IgkgASkDGCIRIAIpAxgiDlStIgtUcq0iDCABKQMIIg8gAikDCCIWfSINfSIVIAkgC30iC0L/////D1atIhh9IQkgDCANUiAVIBhUciEEQv////8PIAt9IQsgDyAWVCAMIA1Wcq0gCiATfXxC/////w99IQogDiARQn+FfAs3A8AGIAMgCzcDuAYgAyAJNwOwBiADIAogBK19NwOoBiADQYgGaiADQcAJaiADQagGahBbCyADQbgDaiADKQOYBiIWIAMpA6AGIhVCABC9AyADQagDaiADKQOQBiIYIBVCABC9AyADQZgDaiADKQOIBiIZIBVCABC9AyADQegDaiAYIBZCABC9AyADQdgDaiAZIBZCABC9AyADQYgEaiAZIBhCABC9AyADQYgDaiAVIBVCABC9AyADQcgDaiAWIBZCABC9AyADQfgDaiAYIBhCABC9AyADQZgEaiAZIBlCABC9AyADQfgCaiADKQOIAyISQn2DIhRCgYCAgHBCABC9AyADQZAEaikDACADQeADaikDACADQaADaikDACADQbADaikDACADQcADaikDACIMIAMpA6gDfCIJIAxUrXwiCiADKQOYA3wiDCAKVK18IgsgAykD2AN8IgogC1StfCAKIANB8ANqKQMAIAwgDCADKQPoA3wiDFatfHwiCyAKVK18IgogAykDiAR8Ig0gClStfCIKQj+IIANBoARqKQMAIAMpA5gEIhcgCkIBhiANQj+IhHwiDiAXVK18IA4gDiADQYAEaikDACADQdADaikDACADKQPIAyIXIAlCAYYgAykDuAMiGkI/iIR8IgogF1StfCAKIANBkANqKQMAIhcgGkIBhnwiGiAXVK18IhcgClStfCIKIAxCAYYgCUI/iIR8IhsgClStIgogAykD+AN8IgkgClStfCAJIAtCAYYgDEI/iIR8IgogCVStfCIJIA1CAYYgC0I/iIR8IgwgCVStfCIOVq18fCENQQAhBAJAIANBgANqKQMAIBRCIIYiCyAafCIJIAtUrSASQiCIfCILIBd8IhIgC1StIhQgAykD+AJ8IgsgFFStfCALIBt8IhQgC1StfCILUARAQQAhBgwBCyAKIAt8IgogC1QiBkUNACAGrSILIAx8IgwgC1QhBiALIAxYDQAgBq0iCyAOfCIOIAtUIQYgCyAOWA0AIAatIgsgDXwiDSALVCEGCyADQegCaiAJQoGAgIBwQgAQvQMCQCADQfACaikDACASIAlCIIYiEnwiCyASVK0gCUIgiHwiCSAUfCISIAlUrSIUIAMpA+gCfCIJIBRUrXwgCSAKfCIKIAlUrXwiCVANACAJIAx8IgwgCVQhBCAJIAxYDQAgBK0iCSAOfCIOIAlUIQQgCSAOWA0AIAStIgkgDXwiDSAJVCEECyADQdgCaiALQoGAgIBwQgAQvQNBACEFIANB4AJqKQMAIAogC0IghiIKIBJ8IgkgClStIAtCIIh8Igp8IgsgClStIhIgAykD2AJ8IgogElStfCAKIAogDHwiClatfCIMUEUEQCAMIA58Ig4gDFQiBa0iDCANfCISIA0gBRshDSAFIAwgElZxIQULIANByAJqIAlCgYCAgHBCABC9AyADQdACaikDACAKIAlCIIYiCiALfCIMIApUrSAJQiCIfCIJfCIKIAlUrSILIAMpA8gCfCIJIAtUrXwgCSAOfCILIAlUrXwiCSANfCIOIA0gCUIAUiIHGyENAkACQCAEIAZyIAVyIAkgDlYiBK0gCSAHG0IAUnIgBCAHcSANQoGAgIBwVnJyDQAgDUKBgICAcFIEQCAKIQkgCyEODAILIAtCAFIgCkL/////D1ZyDQBCACEOIApC/////w9RIAxCf1FxDQAgCiEJQoGAgIBwIQ0MAQsgCkL/////D30iDiAMQn9SrSISfSEJIAsgCkL/////D1QgDiASVHKtIgp9IQ4gDSAKIAtWrX1C/////w98IQ0gDEIBfCEMCyADAn4CQAJAIBMiCyANIgpSDQAgDyILIA4iClINACAJIQogCSAQIgtSDQAgDCEKIAwgESILUQ0BCyAKIAtWDQAgCSAQViAQIAl9IgkgDCARVq0iC1RyrSIKIA8gDn0iEn0iFCAJIAt9IgtC/////w9WrSIXfSEJIAogElIgFCAXVHIhBEL/////DyALfSELIA4gD1YgCiASVnKtIA0gE318Qv////8PfSENIAwgEUJ/hXwMAQsgCSAQfSIKIAwgEVStIhJ9IQsgDiAPfSIUIAogElQgCSAQVHKtIgp9IQkgDiAPVCAKIBRWciEEIA0gE30hDSAMIBF9CzcDwAYgAyALNwO4BiADIAk3A7AGIAMgDSAErX03A6gGIANBwAlqIANBqAZqIAIQ0wIgAykDwAkiDiENIANB+AFqAn4CQCAQAn4CQCAOIBMiCVINACAPIgkgAykDyAkiDVINACAQIgkgAykD0AkiDVINACAPIQsgESIJIQwgECADKQPYCSINIAlRDQEaCyADKQPYCSEMIAkgDVgNASADKQPICSELIAMpA9AJCyIKfSIJIAwgEVatIhJ9IQ0gDyALfSIUIAkgElQgCiAQVnKtIgl9IRAgCyAPViAJIBRWciECIBMgDn0hDiARIAx9DAELIAMpA9AJIgkgEFQgCSAQfSIQIAwgEVStIgtUcq0iCSADKQPICSISIA99Igp9Ig0gECALfSILQv////8PVq0iFH0hECAJIApSIA0gFFRyIQJC/////w8gC30hDSAPIBJWIAkgClZyrSATIA59fEL/////D30hDiARIAxCf4V8CyIPIBVCABC9AyADQdgBaiAPIBZCABC9AyADQcgBaiAPIBhCABC9AyADQbgBaiAPIBlCABC9AyADQegBaiADKQP4ASIJQoGAgIBwQgAQvQMgA0GoAWogDSAVQgAQvQMgA0GIAWogDSAWQgAQvQMgA0H4AGogDSAYQgAQvQMgA0HoAGogDSAZQgAQvQMgA0GYAWogCUIghiIMIANBgAJqKQMAIgogAykD2AF8Igt8IhEgAykDqAF8Ig9CgYCAgHBCABC9AyADQdgAaiAQIBVCABC9AyADQThqIBAgFkIAEL0DIANBGGogECAYQgAQvQMgA0EIaiAQIBlCABC9AyADQcgAaiAPQiCGIhMgDCARVq0gCUIgiHwiDSADQeABaikDACAKIAtWrXwiCyADKQPIAXwiEnwiDCADKQOIAXwiCiADQbABaikDACAPIBFUrXx8IhR8IhEgAykDWHwiCUKBgICAcEIAEL0DIANBuAJqIA4gAq19IhAgFUIAEL0DIANBqAJqIBAgFkIAEL0DIANBmAJqIBAgGEIAEL0DIANBiAJqIBAgGUIAEL0DIANBKGogCUIghiIWIBEgE1StIA9CIIh8IhUgA0HQAWopAwAgCyASVq18IhggAykDuAF8IhAgAykD6AF8IgsgDCANVK18IhMgAykDeHwiDSAKIBRWrSADQZABaikDACAKIAxUrXx8fCIZfCIMIAMpAzh8IgogA0HgAGopAwAgCSARVK18fCISfCIRIAMpA7gCfCIPQoGAgIBwQgAQvQMCQAJAIANBMGopAwAgA0GwAmopAwAgA0HAAmopAwAgDyARVK18IhQgAykDqAJ8Ig4gFFStfCAOIAogElatIANBQGspAwAgCiAMVK18fCISIAMpAxh8IgogDCAVVK0iFSADKQOYAXwiDCALIBNWrSADQfABaikDACALIBBUrXx8IhQgA0HAAWopAwAgECAYVK18fCIQIAMpA2h8IgsgDSAZVq0gA0GAAWopAwAgDSATVK18fHwiGHwiGXwiEyARIBZUrSAJQiCIfHwiCXwiESAOVK18IhYgAykDmAJ8Ig0gCSATVK0iFyADKQNIfCIOIAwgGVatIANBoAFqKQMAIAwgFVStfHwiFSALIBhWrSADQfAAaikDACALIBBUrXx8IgsgECAUVK18Ihh8IhAgAykDCHwiDCAKIBNWrSADQSBqKQMAIAogElStfHx8IhN8Ihl8IgogD0IghiIJIBF8IhEgCVStIA9CIIh8fCIJIApUrSISIAMpAyh8Ig8gElStfCAPIA4gGVatIANB0ABqKQMAIA4gF1StfHwiDiAMIBNWrSADQRBqKQMAIAwgEFStfHwiEyAQIBVUrSALIBhWrXx8IhV8IgwgAykDiAJ8IgsgCiANVK0gA0GgAmopAwAgDSAWVK18fHwiCnwiECAPVK18Ig0gCiALVK0gA0GQAmopAwAgCyAMVK18fCIKIAwgDlStIBMgFVatfHwiDHwiD0KBgICAcFYgDSAPVq1CACAKIAxWrX1Scg0AAkAgD0KBgICAcFEEQCAJQv////8PVg0CQgAhEyAQQgBSDQJC/////w8hCiAJQv////8PWg0BQoGAgIBwIQ8gCSEKDAMLIBAhEyAJIQoMAgsgEUJ/UQ0AQoGAgIBwIQ8MAQsgCUL/////D30iDCARQn9SrSILfSEKIBAgCUL/////D1QgCyAMVnKtIgl9IRMgDyAJIBBWrX1C/////w98IQ8gEUIBfCERCyADIBE3A8AGIAMgCjcDuAYgAyATNwOwBiADIA83A6gGIABBIGogA0GoBmogAUEgahDTAiAAQRhqIANB2AlqKQMANwMAIABBEGogA0HQCWopAwA3AwAgAEEIaiADQcgJaikDADcDACAAIAMpA8AJNwMACyADQeAJaiQAC6A7Ahl/CX4jAEGAB2siAyQAAkACQAJAAkACQAJAAkACQAJAIAFBwOjAAEEwENAERQRAIAFBMGpBwOjAAEEwENAEIQUgAkHA6MAAQTAQ0AQNASACQTBqQcDowABBMBDQBCEEIAVFDQIgBA0EDAULIAJBwOjAAEEwENAEDQMgAkEwakHA6MAAQTAQ0ARFDQQMAwsgBQ0CDAELIAQNAEHZvsIALQAAGgJAQQxBBBCwBCILBEBB2b7CAC0AABpBMEEIELAEIgRFDQEgBEEoakGwhcAAKQMANwMAIARBIGpBqIXAACkDADcDACAEQRhqQaCFwAApAwA3AwAgBEEQakGYhcAAKQMANwMAIARBCGpBkIXAACkDADcDACAEQYiFwAApAwA3AwAgA0EAOgDABiADIARBMGo2ArwGIAMgBDYCuAYgA0GIBmogA0G4BmoQlAIgAygCkAYiAUECTwRAIAFBAXYhBSADKAKMBiICIAFBMGxqQTBrIQEDQCACKQMAIRwgAiABKQMANwMAIANB2ABqIgwgAkEoaiIHKQMANwMAIANB0ABqIg0gAkEgaiIIKQMANwMAIANByABqIg4gAkEYaiIJKQMANwMAIANBQGsiDyACQRBqIgYpAwA3AwAgA0E4aiIQIAJBCGoiCikDADcDACAHIAFBKGoiBykDADcDACAIIAFBIGoiCCkDADcDACAJIAFBGGoiCSkDADcDACAGIAFBEGoiBikDADcDACAKIAFBCGoiCikDADcDACADIBw3AzAgByAMKQMANwMAIAggDSkDADcDACAJIA4pAwA3AwAgBiAPKQMANwMAIAogECkDADcDACABIAMpAzA3AwAgAUEwayEBIAJBMGohAiAFQQFrIgUNAAsLIAsgAykCiAY3AgAgC0EIaiADQZAGaigCADYCACAEQTAQuQQgA0EBNgI4IAMgCzYCNCADQQE2AjAMBQsMBQsMBQtB2b7CAC0AABoCQEEMQQQQsAQiCwRAQdm+wgAtAAAaQeAAQQgQsAQiBEUNASAEIAIQhgMgBEHYAGpBsIXAACkDADcDACAEQdAAakGohcAAKQMANwMAIARByABqQaCFwAApAwA3AwAgBEFAa0GYhcAAKQMANwMAIARBOGpBkIXAACkDADcDACAEQYiFwAApAwA3AzAgA0EAOgDABiADIARB4ABqNgK8BiADIAQ2ArgGIANBiAZqIANBuAZqEJQCIAMoApAGIgFBAk8EQCABQQF2IQUgAygCjAYiAiABQTBsakEwayEBA0AgAikDACEcIAIgASkDADcDACADQdgAaiIMIAJBKGoiBykDADcDACADQdAAaiINIAJBIGoiCCkDADcDACADQcgAaiIOIAJBGGoiCSkDADcDACADQUBrIg8gAkEQaiIGKQMANwMAIANBOGoiECACQQhqIgopAwA3AwAgByABQShqIgcpAwA3AwAgCCABQSBqIggpAwA3AwAgCSABQRhqIgkpAwA3AwAgBiABQRBqIgYpAwA3AwAgCiABQQhqIgopAwA3AwAgAyAcNwMwIAcgDCkDADcDACAIIA0pAwA3AwAgCSAOKQMANwMAIAYgDykDADcDACAKIBApAwA3AwAgASADKQMwNwMAIAFBMGshASACQTBqIQIgBUEBayIFDQALCyALIAMpAogGNwIAIAtBCGogA0GQBmooAgA2AgAgBEHgABC5BCADQQE2AjggAyALNgI0IANBATYCMAwECwwECwwFCyABQTBqIQUCQAJAAkACQAJ+AkACQCABIAJBMBDQBEUEQCAFIAJBMGpBMBDQBEUNAQsCQAJAIAJBwOjAAEEwENAEDQAgAkEwaiIEQcDowABBMBDQBA0AIANBiAFqIARBKGopAwA3AwAgA0GAAWogBEEgaikDADcDACADQfgAaiAEQRhqKQMANwMAIANB8ABqIARBEGopAwA3AwAgA0HoAGogBEEIaikDADcDACADIAQpAwA3A2AMAQsCfiACQTBqQcjUwQBBMBDQBARAQv//z4rr///VHiACKQNQIiB9Ih4gAikDWCIhQqvV/v///7//uX9WrSIffSEcQqTsw7WP1LSY5wAgAikDSCIdfSIiIB4gH1QgIEL//8+K6///1R5Wcq0iHn0hIEK/pZScz/DSu+QAIAIpA0AiH30iIyAeICJWIB1CpOzDtY/UtJjnAFZyrSIdfSEeQtfZrprk9umNywAgAikDOCIifSIkIB0gI1YgH0K/pZScz/DSu+QAVnKtIh19IR9Cq9X+////v/+5fyAhfSEhQprN/8ujvcSAGiACKQMwIB0gJFYgIkLX2a6a5PbpjcsAVnKtfH0MAQsgAikDWCEhIAIpA1AhHCACKQNIISAgAikDQCEeIAIpAzghHyACKQMwCyEdIAMgITcDiAEgAyAcNwOAASADICA3A3ggAyAeNwNwIAMgHzcDaCADIB03A2ALIANB2ABqIAJBKGopAwA3AwAgA0HQAGogAkEgaikDADcDACADQcgAaiACQRhqKQMANwMAIANBQGsgAkEQaikDADcDACADQThqIAJBCGopAwA3AwAgAyACKQMANwMwIAEgA0EwakEwENAERQRAIAUgA0HgAGpBMBDQBEUNBAsgA0HABGogAkEoaiINKQMANwMAIANBuARqIAJBIGoiCCkDADcDACADQbAEaiACQRhqIg4pAwA3AwAgA0GoBGogAkEQaiIJKQMANwMAIANBoARqIAJBCGoiDykDADcDACADIAIpAwA3A5gEIANBsAZqIAJB2ABqIgQpAwA3AwAgA0GoBmogAkHQAGoiCykDADcDACADQaAGaiACQcgAaiIMKQMANwMAIANBmAZqIAJBQGsiBykDADcDACADQZAGaiACQThqIgYpAwA3AwAgAyACKQMwNwOIBiADQeAGaiIQIAVBKGopAwA3AwAgA0HYBmoiCiAFQSBqKQMANwMAIANB0AZqIhMgBUEYaikDADcDACADQcgGaiIUIAVBEGopAwA3AwAgA0HABmoiESAFQQhqKQMANwMAIAMgBSkDADcDuAYgA0HYAGoiBSAEKQMANwMAIANB0ABqIgQgCykDADcDACADQcgAaiILIAwpAwA3AwAgA0FAayIMIAcpAwA3AwAgA0E4aiIHIAYpAwA3AwAgAyACKQMwNwMwIANB+ARqIhUgA0G4BmoiBiADQTBqIhIQ/wEgECABQShqKQMANwMAIAogAUEgaikDADcDACATIAFBGGopAwA3AwAgFCABQRBqKQMANwMAIBEgAUEIaikDADcDACADIAEpAwA3A7gGIAUgDSkDADcDACAEIAgpAwA3AwAgCyAOKQMANwMAIAwgCSkDADcDACAHIA8pAwA3AwAgAyACKQMANwMwIANBqAVqIgEgBiASEP8BIANByARqIBUgARBNIAUgA0HwBGopAwA3AwAgBCADQegEaikDADcDACALIANB4ARqKQMANwMAIAwgA0HYBGopAwA3AwAgByADQdAEaikDADcDACADIAMpA8gENwMwIAYgEiADQZgEahCxASADQdgFaiIBIANBiAZqIAYQ/wFB2b7CAC0AABpBGEEEELAEIgtFDQVB2b7CAC0AABpB4ABBCBCwBCIERQ0LIAFByNTBAEEwENAERQ0BQv//z4rr///VHiADKQP4BSIgfSIeIAMpA4AGIiFCq9X+////v/+5f1atIh99IRxCpOzDtY/UtJjnACADKQPwBSIdfSIiIB4gH1QgIEL//8+K6///1R5Wcq0iHn0hIEK/pZScz/DSu+QAIAMpA+gFIh99IiMgHiAiViAdQqTsw7WP1LSY5wBWcq0iHX0hHkLX2a6a5PbpjcsAIAMpA+AFIiJ9IiQgHSAjViAfQr+llJzP8NK75ABWcq0iHX0hH0Kr1f7///+//7l/ICF9ISFCms3/y6O9xIAaIAMpA9gFIB0gJFYgIkLX2a6a5PbpjcsAVnKtfH0MAgsgA0Kh1aaAgIDAjm43A+AGIANCh4Dwy96EgMKGfzcD2AYgA0Lou9DvwPiIvM8ANwPQBiADQtHAs8+Gvpy+nn83A8gGIANCmde1g6aLgO/9ADcDwAYgA0KFwYvk946+8A03A7gGIANB2ABqIgIgAUEoaiIEKQMANwMAIANB0ABqIgsgAUEgaiIMKQMANwMAIANByABqIgcgAUEYaiINKQMANwMAIANBQGsiCCABQRBqIg4pAwA3AwAgA0E4aiIJIAFBCGoiDykDADcDACADIAEpAwA3AzAgA0GIBmoiEiADQbgGaiIVIANBMGoiBhCxASACIAQpAwA3AwAgCyAMKQMANwMAIAcgDSkDADcDACAIIA4pAwA3AwAgCSAPKQMANwMAIAMgASkDADcDMCADQagFaiIRIBIgBhCxASAGENQCIANB4AZqIgYgA0GAAWopAwA3AwAgA0HYBmoiECADQfgAaikDADcDACADQdAGaiIKIANB8ABqKQMANwMAIANByAZqIhMgA0HoAGopAwA3AwAgA0HABmoiFCADQeAAaikDADcDACADIAMpA1g3A7gGIANB+ARqIhYgESAVEMQCIANCz6qZgICAwIkyNwOwBiADQoWAkLaNg4CeuX83A6gGIANC0fb2htvBl7DXADcDoAYgA0LLt/7onqTZkot/NwOYBiADQoPYiIuQr6P57AA3A5AGIANCjMWH3Nvz6vURNwOIBiAGIAVBKGoiFykDADcDACAQIAVBIGoiGCkDADcDACAKIAVBGGoiGSkDADcDACATIAVBEGoiGikDADcDACAUIAVBCGoiGykDADcDACADIAUpAwA3A7gGIBEgEiAVELEBIAMgFiAREE0CQCADKAI0IhFFDQAgESARQQxsQRNqQXhxIhJqQQlqIhFFDQAgAygCMCASayARELkECyADQdAFaiAXKQMANwMAIANByAVqIBgpAwA3AwAgA0HABWogGSkDADcDACADQbgFaiAaKQMANwMAIANBsAVqIBspAwA3AwAgAyAFKQMANwOoBSAGIANBKGopAwA3AwAgECADQSBqKQMANwMAIAogA0EYaikDADcDACATIANBEGopAwA3AwAgFCADQQhqKQMANwMAIAMgAykDADcDuAYgAiAEKQMANwMAIAsgDCkDADcDACAHIA0pAwA3AwAgCCAOKQMANwMAIAkgDykDADcDACADIAEpAwA3AzAgA0GIBmoiASADQbgGaiADQTBqELEBIANB6ANqIgIgA0GoBWogARD/AUHZvsIALQAAGkEYQQQQsAQiC0UNA0HZvsIALQAAGkHgAEEIELAEIgRFDQoCfiACQcjUwQBBMBDQBARAQv//z4rr///VHiADKQOIBCIgfSIeIAMpA5AEIiFCq9X+////v/+5f1atIh99IRxCpOzDtY/UtJjnACADKQOABCIdfSIiIB4gH1QgIEL//8+K6///1R5Wcq0iHn0hIEK/pZScz/DSu+QAIAMpA/gDIh99IiMgHiAiViAdQqTsw7WP1LSY5wBWcq0iHX0hHkLX2a6a5PbpjcsAIAMpA/ADIiJ9IiQgHSAjViAfQr+llJzP8NK75ABWcq0iHX0hH0Kr1f7///+//7l/ICF9ISFCms3/y6O9xIAaIAMpA+gDIB0gJFYgIkLX2a6a5PbpjcsAVnKtfH0MAQsgAykDkAQhISADKQOIBCEcIAMpA4AEISAgAykD+AMhHiADKQPwAyEfIAMpA+gDCyEdIARBMGogAxCGAyAEICE3AyggBCAcNwMgIAQgIDcDGCAEIB43AxAgBCAfNwMIIAQgHTcDACADQQA6AMAGIAMgBEHgAGo2ArwGIAMgBDYCuAYgA0HoBmogA0G4BmoQlAIgAygC8AYiAUECTwRAIAFBAXYhBSADKALsBiICIAFBMGxqQTBrIQEDQCACKQMAIRwgAiABKQMANwMAIANB2ABqIgwgAkEoaiIHKQMANwMAIANB0ABqIg0gAkEgaiIIKQMANwMAIANByABqIg4gAkEYaiIJKQMANwMAIANBQGsiDyACQRBqIgYpAwA3AwAgA0E4aiIQIAJBCGoiCikDADcDACAHIAFBKGoiBykDADcDACAIIAFBIGoiCCkDADcDACAJIAFBGGoiCSkDADcDACAGIAFBEGoiBikDADcDACAKIAFBCGoiCikDADcDACADIBw3AzAgByAMKQMANwMAIAggDSkDADcDACAJIA4pAwA3AwAgBiAPKQMANwMAIAogECkDADcDACABIAMpAzA3AwAgAUEwayEBIAJBMGohAiAFQQFrIgUNAAsLIARB4AAQuQRB2b7CAC0AABpBMEEIELAEIgRFDQkgBEEoakGwhcAAKQMANwMAIARBIGpBqIXAACkDADcDACAEQRhqQaCFwAApAwA3AwAgBEEQakGYhcAAKQMANwMAIARBCGpBkIXAACkDADcDACAEQYiFwAApAwA3AwAgA0EAOgDABiADIARBMGo2ArwGIAMgBDYCuAYgA0GIBmogA0G4BmoQlAIgAygCkAYiAUECTwRAIAFBAXYhBSADKAKMBiICIAFBMGxqQTBrIQEDQCACKQMAIRwgAiABKQMANwMAIANB2ABqIgwgAkEoaiIHKQMANwMAIANB0ABqIg0gAkEgaiIIKQMANwMAIANByABqIg4gAkEYaiIJKQMANwMAIANBQGsiDyACQRBqIgYpAwA3AwAgA0E4aiIQIAJBCGoiCikDADcDACAHIAFBKGoiBykDADcDACAIIAFBIGoiCCkDADcDACAJIAFBGGoiCSkDADcDACAGIAFBEGoiBikDADcDACAKIAFBCGoiCikDADcDACADIBw3AzAgByAMKQMANwMAIAggDSkDADcDACAJIA4pAwA3AwAgBiAPKQMANwMAIAogECkDADcDACABIAMpAzA3AwAgAUEwayEBIAJBMGohAiAFQQFrIgUNAAsLIAtBDGoiASADKQKIBjcCACABQQhqIANBkAZqKAIANgIAIARBMBC5BCALQQhqIANB8AZqKAIANgIAIAsgAykC6AY3AgAgA0ECNgI4IAMgCzYCNCADQQI2AjAMBwsgAykDgAYhISADKQP4BSEcIAMpA/AFISAgAykD6AUhHiADKQPgBSEfIAMpA9gFCyEdIARBMGogA0HIBGoQhgMgBCAhNwMoIAQgHDcDICAEICA3AxggBCAeNwMQIAQgHzcDCCAEIB03AwAgA0EAOgDABiADIARB4ABqNgK8BiADIAQ2ArgGIANB9AZqIANBuAZqEJQCIAMoAvwGIgFBAk8EQCABQQF2IQUgAygC+AYiAiABQTBsakEwayEBA0AgAikDACEcIAIgASkDADcDACADQdgAaiIMIAJBKGoiBykDADcDACADQdAAaiINIAJBIGoiCCkDADcDACADQcgAaiIOIAJBGGoiCSkDADcDACADQUBrIg8gAkEQaiIGKQMANwMAIANBOGoiECACQQhqIgopAwA3AwAgByABQShqIgcpAwA3AwAgCCABQSBqIggpAwA3AwAgCSABQRhqIgkpAwA3AwAgBiABQRBqIgYpAwA3AwAgCiABQQhqIgopAwA3AwAgAyAcNwMwIAcgDCkDADcDACAIIA0pAwA3AwAgCSAOKQMANwMAIAYgDykDADcDACAKIBApAwA3AwAgASADKQMwNwMAIAFBMGshASACQTBqIQIgBUEBayIFDQALCyAEQeAAELkEQdm+wgAtAAAaQTBBCBCwBCIERQ0HIARBKGpBsIXAACkDADcDACAEQSBqQaiFwAApAwA3AwAgBEEYakGghcAAKQMANwMAIARBEGpBmIXAACkDADcDACAEQQhqQZCFwAApAwA3AwAgBEGIhcAAKQMANwMAIANBADoAwAYgAyAEQTBqNgK8BiADIAQ2ArgGIANBiAZqIANBuAZqEJQCIAMoApAGIgFBAk8EQCABQQF2IQUgAygCjAYiAiABQTBsakEwayEBA0AgAikDACEcIAIgASkDADcDACADQdgAaiIMIAJBKGoiBykDADcDACADQdAAaiINIAJBIGoiCCkDADcDACADQcgAaiIOIAJBGGoiCSkDADcDACADQUBrIg8gAkEQaiIGKQMANwMAIANBOGoiECACQQhqIgopAwA3AwAgByABQShqIgcpAwA3AwAgCCABQSBqIggpAwA3AwAgCSABQRhqIgkpAwA3AwAgBiABQRBqIgYpAwA3AwAgCiABQQhqIgopAwA3AwAgAyAcNwMwIAcgDCkDADcDACAIIA0pAwA3AwAgCSAOKQMANwMAIAYgDykDADcDACAKIBApAwA3AwAgASADKQMwNwMAIAFBMGshASACQTBqIQIgBUEBayIFDQALCyALQQxqIgEgAykCiAY3AgAgAUEIaiADQZAGaigCADYCACAEQTAQuQQgC0EIaiADQfwGaigCADYCACALIAMpAvQGNwIAIANBAjYCOCADIAs2AjQgA0ECNgIwDAULQdm+wgAtAAAaQQxBBBCwBCILRQ0FQdm+wgAtAAAaQeAAQQgQsAQiBEUNAiAEIAEQhgMgBEHYAGpBsIXAACkDADcDACAEQdAAakGohcAAKQMANwMAIARByABqQaCFwAApAwA3AwAgBEFAa0GYhcAAKQMANwMAIARBOGpBkIXAACkDADcDACAEQYiFwAApAwA3AzAgA0EAOgDABiADIARB4ABqNgK8BiADIAQ2ArgGIANBiAZqIANBuAZqEJQCIAMoApAGIgFBAk8EQCABQQF2IQUgAygCjAYiAiABQTBsakEwayEBA0AgAikDACEcIAIgASkDADcDACADQdgAaiIMIAJBKGoiBykDADcDACADQdAAaiINIAJBIGoiCCkDADcDACADQcgAaiIOIAJBGGoiCSkDADcDACADQUBrIg8gAkEQaiIGKQMANwMAIANBOGoiECACQQhqIgopAwA3AwAgByABQShqIgcpAwA3AwAgCCABQSBqIggpAwA3AwAgCSABQRhqIgkpAwA3AwAgBiABQRBqIgYpAwA3AwAgCiABQQhqIgopAwA3AwAgAyAcNwMwIAcgDCkDADcDACAIIA0pAwA3AwAgCSAOKQMANwMAIAYgDykDADcDACAKIBApAwA3AwAgASADKQMwNwMAIAFBMGshASACQTBqIQIgBUEBayIFDQALCyALIAMpAogGNwIAIAtBCGogA0GQBmooAgA2AgAgBEHgABC5BCADQQE2AjggAyALNgI0IANBATYCMAwEC0EEQRgQygQAC0EEQRgQygQACwwEC0HZvsIALQAAGkEMQQQQsAQiC0UNAUHZvsIALQAAGkHgAEEIELAEIgRFDQMgBCABEIYDIARB2ABqQbCFwAApAwA3AwAgBEHQAGpBqIXAACkDADcDACAEQcgAakGghcAAKQMANwMAIARBQGtBmIXAACkDADcDACAEQThqQZCFwAApAwA3AwAgBEGIhcAAKQMANwMwIANBADoAwAYgAyAEQeAAajYCvAYgAyAENgK4BiADQYgGaiADQbgGahCUAiADKAKQBiIBQQJPBEAgAUEBdiEFIAMoAowGIgIgAUEwbGpBMGshAQNAIAIpAwAhHCACIAEpAwA3AwAgA0HYAGoiDCACQShqIgcpAwA3AwAgA0HQAGoiDSACQSBqIggpAwA3AwAgA0HIAGoiDiACQRhqIgkpAwA3AwAgA0FAayIPIAJBEGoiBikDADcDACADQThqIhAgAkEIaiIKKQMANwMAIAcgAUEoaiIHKQMANwMAIAggAUEgaiIIKQMANwMAIAkgAUEYaiIJKQMANwMAIAYgAUEQaiIGKQMANwMAIAogAUEIaiIKKQMANwMAIAMgHDcDMCAHIAwpAwA3AwAgCCANKQMANwMAIAkgDikDADcDACAGIA8pAwA3AwAgCiAQKQMANwMAIAEgAykDMDcDACABQTBrIQEgAkEwaiECIAVBAWsiBQ0ACwsgCyADKQKIBjcCACALQQhqIANBkAZqKAIANgIAIARB4AAQuQQgA0EBNgI4IAMgCzYCNCADQQE2AjALIAAgA0EwahDmASADQYAHaiQADwtBBEEMEMoEAAtBCEEwEMoEAAtBCEHgABDKBAAL4TUCDX8kfiMAQeANayIDJAAgA0GIB2ogAUEoaikDADcDACADQYAHaiABQSBqKQMANwMAIANB+AZqIAFBGGopAwA3AwAgA0HwBmogAUEQaikDADcDACADQegGaiABQQhqKQMANwMAIANBmAdqIAJBCGopAwA3AwAgA0GgB2ogAkEQaikDADcDACADQagHaiACQRhqKQMANwMAIANBsAdqIAJBIGopAwA3AwAgA0G4B2ogAkEoaikDADcDACADIAEpAwA3A+AGIAMgAikDADcDkAcgA0GQB2ohDQJAAkACQAJAIANB4AZqQcDowABBMBDQBEUEQCANQcDowABBMBDQBEUNAQsgA0HQB2oQ1AIgA0GwC2ogA0GgCGopAwA3AwAgA0GoC2ogA0GYCGopAwA3AwAgA0GgC2ogA0GQCGopAwA3AwAgA0GYC2ogA0GICGopAwA3AwAgA0GQC2ogA0GACGopAwA3AwAgA0HAC2ogA0GwCGopAwA3AwAgA0HIC2ogA0G4CGopAwA3AwAgA0HQC2ogA0HACGopAwA3AwAgA0HYC2ogA0HICGopAwA3AwAgA0HgC2ogA0HQCGopAwA3AwAgAyADKQP4BzcDiAsgAyADKQOoCDcDuAsgA0GQBGogAykDsAciECADKQO4ByIRQgAQvQMgA0GgBGogAykDqAciEiARQgAQvQMgA0GwBGogAykDoAciEyARQgAQvQMgA0HABGogAykDmAciFCARQgAQvQMgA0HQBGogAykDkAciFSARQgAQvQMgA0HwBGogEiAQQgAQvQMgA0GABWogEyAQQgAQvQMgA0GQBWogFCAQQgAQvQMg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ACAEQSBqIgEgECABKQMAfCIRNwMAIBAgEVYiAa0iEFAgB0ECSXINACAEQRhqIgEgECABKQMAfCIRNwMAIBAgEVYiAa0iEFAgB0EDSXINACAEQRBqIgEgECABKQMAfCIRNwMAIBAgEVYiAa0iEFAgB0EESXINACAEQQhqIgEgECABKQMAfCIRNwMAIBAgEVYiAa0iEFAgB0EFSXINACAEIBAgBCkDAHwiETcDACAQIBFWIgGtIRALIAhBAWshCCAFQQFrIQUgASAJciEJIAJBCGsiAkFQRw0BDAILCyAFQQZB/OnAABDWAwALAkACQCAQQgBSIAlyQQFxIAMpA8gMIhBCms3/y6O9xIAaVnINACAQQprN/8ujvcSAGlINASADKQPQDCIRQtfZrprk9umNywBWDQAgEULX2a6a5PbpjcsAUg0BIAMpA9gMIhFCv6WUnM/w0rvkAFYNACARQr+llJzP8NK75ABSDQEgAykD4AwiEUKk7MO1j9S0mOcAVg0AIBFCpOzDtY/UtJjnAFINASADKQPoDCIRQv//z4rr///VHlYNACARQv//z4rr///VHlINASADKQPwDEKq1f7///+//7l/WA0BCyADIAMpA/AMIhFC1aqBgICAwIDGAHw3A/AMIAMgAykD6AwiEkL//8+K6///1R59IhMgEUKr1f7///+//7l/VK0iEX03A+gMIAMgAykD4AwiFEKk7MO1j9S0mOcAfSIVIBJC///Piuv//9UeVCARIBNWcq0iEX03A+AMIAMgAykD2AwiEkK/pZScz/DSu+QAfSITIBRCpOzDtY/UtJjnAFQgESAVVnKtIhF9NwPYDCADIAMpA9AMIhRC19mumuT26Y3LAH0iFSASQr+llJzP8NK75ABUIBEgE1ZyrSIRfTcD0AwgAyAQIBRC19mumuT26Y3LAFQgESAVVnKtfUKazf/Lo73EgBp9NwPIDAsgA0GQDGogA0HwDGopAwA3AwAgA0GIDGogA0HoDGopAwA3AwAgA0GADGogA0HgDGopAwA3AwAgA0H4C2ogA0HYDGopAwA3AwAgA0HwC2ogA0HQDGopAwA3AwAgAyADKQPIDDcD6AsgA0HgAGogAykDgAciECADKQOIByIRQgAQvQMgA0HwAGogAykD+AYiEiARQgAQvQMgA0GAAWogAykD8AYiEyARQgAQvQMgA0GQAWogAykD6AYiFCARQgAQvQMgA0GgAWogAykD4AYiFSARQgAQvQMgA0HAAWogEiAQQgAQvQMgA0HQAWogEyAQQgAQvQMgA0HgAWogFCAQQgAQvQMgA0HwAWogFSAQQgAQvQMgA0GQAmogEyASQgAQvQMgA0GgAmogFCASQgAQvQMgA0GwAmogFSASQgAQvQMgA0HQAmogFCATQgAQvQMgA0HgAmogFSATQgAQvQMgA0GAA2ogFSAUQgAQvQMgA0GwAWogESARQgAQvQMgAyADKQOwATcD0A0gA0GAAmogECAQQgAQvQMgA0HAAmogEiASQgAQvQMgA0HwAmogEyATQgAQvQMgA0GQA2ogFCAUQgAQvQMgA0GgA2ogFSAVQgAQvQMgA0HoAGopAwAhFSADKQNwIRAgA0H4AGopAwAhFyADKQOAASEYIANBiAFqKQMAIRogAykDkAEhGSADQZgBaikDACEbIAMpA6ABIR0gA0GoAWopAwAhICADKQPwASEhIANB+AFqKQMAISIgAykD4AEhIyADQegBaikDACEkIAMpA9ABISUgA0HYAWopAwAhJiADKQPAASEnIANByAFqKQMAISggAykDsAIhKSADQbgCaikDACEqIAMpA5ACISsgA0GYAmopAwAhLCADKQOgAiEcIANBqAJqKQMAIR4gAykD4AIhLSADQegCaikDACEuIAMpA9ACIS8gA0HYAmopAwAhMCADKQOAAyExIANBiANqKQMAITIgAykDoAMhESADKQOQAyESIAMpA/ACIRMgAykDgAIhFCADIANBuAFqKQMAIh8gAykDYCIWQgGGfCIzNwPIDSADIBQgECAVfCIVQgGGIBZCP4iEfCIWIB8gM1atfCIfNwPADSADIBYgH1atIANBiAJqKQMAIBQgFlatfHwiHyAnIBggFyAQIBVWrXwiFnwiEHwiFEIBhiAVQj+IhHwiFzcDuA0gAyADKQPAAiIYICUgGSAaIBAgFlStfCIafCIVfCIWICggECAUVq18fCIQQgGGIBRCP4iEfCIUIBcgH1StfCIXNwOwDSADIBQgF1atIANByAJqKQMAIBQgGFStfHwiGSArICMgHSAbIBUgGlStfCIYfCIUfCIXIBAgFlStICYgFSAWVq18fHwiFXwiFkIBhiAQQj+IhHwiGjcDqA0gAyATIBwgLCAVIBZWrXwi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mA1qIgIpAwA3AwAgA0HgDGogA0GQDWoiBSkDADcDACADQdgMaiADQYgNaiIIKQMANwMAIANB0AxqIANBgA1qIgQpAwA3AwAgAyADKQP4DDcDyAwgASADQYgHaiIJKQMANwMAIAIgA0GAB2oiBykDADcDACAFIANB+AZqIgYpAwA3AwAgCCADQfAGaiIKKQMANwMAIAQgA0HoBmoiDikDADcDACADIAMpA+AGNwP4DCADQZgMaiIPIANByAxqIgsgA0H4DGoiDBCxASABIAkpAwA3AwAgAiAHKQMANwMAIAUgBikDADcDACAIIAopAwA3AwAgBCAOKQMANwMAIAMgAykD4AY3A/gMIAsgA0GIC2ogDBCxASAMIA8gCxDEAiALIAwgA0G4C2oQxAIgA0HoC2ogC0EwENAEAkAgAygC1AciAUUNACABIAFBDGxBE2pBeHEiBWpBCWoiAUUNACADKALQByAFayABELkECw0BCyAAQQhqIANB4AZqQeAAEM8EGiAAQQA2AgAMAQsgA0H4DGoiASADQeAGahClASADQQA2AtAMIANCgICAgBA3AsgMIANBAzoA8AcgA0EgNgLgByADQQA2AuwHIANBwOrAADYC6AcgA0EANgLYByADQQA2AtAHIAMgA0HIDGoiAjYC5AcgASADQdAHaiIBEMwCDQEgA0HIB2ogA0HQDGooAgA2AgAgAyADKQLIDDcDwAcgASANEKUBIANBADYCwAsgA0KAgICAEDcCuAsgA0EDOgDoDCADQSA2AtgMIANBADYC5AwgA0HA6sAANgLgDCADQQA2AtAMIANBADYCyAwgAyADQbgLajYC3AwgASACEMwCDQEgA0GQC2ogA0HAC2ooAgA2AgAgAyADKQK4CzcDiAsgA0EDNgKcDCADQbztwAA2ApgMIANCAjcCpAwgA0KAgICA4AciECADQYgLaq2ENwPwCyADIBAgA0HAB2qthDcD6AsgAyADQegLajYCoAwgAEEEaiADQZgMahDdAiADKAKICyIBBEAgAygCjAsgARC5BAsgAygCwAciAQRAIAMoAsQHIAEQuQQLIABBATYCAAsgA0HgDWokAA8LQdjqwABBNyADQd8NakGQ68AAQezrwAAQvgMAC6UzAg9/FH4jAEGgA2siAyQAIAEoAgQhD0EIIQhBCCEKAkACQAJAAkAgASgCCCIH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IA1Ucq18fSEPIAIpAxhCf4UhC0L/////DyAMfQwBCyACKQMYIQsgAikDCCEOIAIpAwAhDyACKQMQCyEKIAQgCzcDGCAEIAo3AxAgBCAONwMIIAQgDzcDACAEQbiFwAApAwA3AyAgBEEoakHAhcAAKQMANwMAIARBMGpByIXAACkDADcDACAEQThqQdCFwAApAwA3AwAgA0EAOgBQIAMgBEFAazYCTCADIAQ2AkggA0HgBGogA0HIAGoQswIgAygC6AQiAUECTwRAIAFBAXYhBSADKALkBCICIAFBBXRqQSBrIQEDQCACKQMAIQogAiABKQMANwMAIAJBGGoiBikDACELIAYgAUEYaiIGKQMANwMAIAJBEGoiBykDACEMIAcgAUEQaiIHKQMANwMAIAJBCGoiCCkDACENIAggAUEIaiIIKQMANwMAIAEgCjcDACAGIAs3AwAgByAMNwMAIAggDTcDACABQSBrIQEgAkEgaiECIAVBAWsiBQ0ACwsgCSADKQLgBDcCACAJQQhqIANB6ARqKAIANgIAIARBwAAQuQQgA0EBNgLIAyADIAk2AsQDIANBATYCwAMgACADQcADahCdAgwECwwECwwFCyABQSBqIQQgASkDOCEUIAEpAzAhDCABKQMoIRAgASkDICEXIAEpAxghFSABKQMQIRMgASkDCCERIAEpAwAhDQJAAkACQAJAAkAgAwJ+AkACQCABIAJBIBDQBEUEQCAEIAJBIGpBIBDQBEUNAQsCQAJAIAJBoOjAAEEgENAEDQAgAkEgaiIFQaDowABBIBDQBA0AIANBgAFqIAVBGGopAwA3AwAgA0H4AGogBUEQaikDADcDACADQfAAaiAFQQhqKQMANwMAIAMgBSkDADcDaAwBCyADQfgEaiACQThqKQMANwMAIANB8ARqIAJBMGopAwA3AwAgA0HoBGogAkEoaikDADcDACADIAIpAyA3A+AEAn4gA0HgBGpBqNXBAEEgENAEBEBCACADKQPoBCIKfSILIAMpA/AEIhJC/////w9WrSIPfSEOQoGAgIBwIAMpA+AEIApCAFIgCyAPVHKtfH0hDyADKQP4BEJ/hSELQv////8PIBJ9DAELIAMpA/gEIQsgAykD6AQhDiADKQPgBCEPIAMpA/AECyEKIAMgCzcDgAEgAyAKNwN4IAMgDjcDcCADIA83A2gLIANB4ABqIAJBGGopAwA3AwAgA0HYAGogAkEQaikDADcDACADQdAAaiACQQhqKQMANwMAIAMgAikDADcDSCABIANByABqQSAQ0ARFBEAgBCADQegAakEgENAERQ0ECyADQfgDaiACQRhqKQMANwMAIANB8ANqIAJBEGopAwA3AwAgA0HoA2ogAkEIaikDADcDACADIAIpAwA3A+ADIAIpAyghDiACKQMwIQ8gAikDOCESIAIpAyAiGCELAkAgGCAXIgpSDQAgECIKIA4iC1INACAMIgogDyILUg0AIBQiCiASIgtRDQILIAogC1YNASAPIAx9IgsgEiAUVK0iFlQgDCAPVnKtIgogDiAQfSIMfSIZIAsgFn0iC0L/////D1atIhp9IRYgCiAMUiAZIBpUciECQv////8PIAt9IQsgDiAQVCAKIAxWcq0gFyAYfXxC/////w99IRAgFCASQn+FfAwCCyADQgM3A/gEIANCgICAgFA3A/AEIANCfzcD6AQgA0L8////LzcD4AQgAyAVNwNgIAMgEzcDWCADIBE3A1AgAyANNwNIIANBwANqIgkgA0HgBGoiAiADQcgAaiIBEJYBIAMgFTcDYCADIBM3A1ggAyARNwNQIAMgDTcDSCACIAkgARCWASADQfAAakGRnsEAEJoBIANBkAFqQdGewQAQmgEgA0HwAWpBkZ/BABCaASADQZACakHRn8EAEJoBIANBsAJqQZGgwQAQmgEQ3QMiASABKQMAQgF8NwMAAkACQCADKQPgBCIWIAMpA3B8IgogAykD6AQiDiADKQN4fCILIA5UIAsgAykD8AQiDyADKQOAAXwiDiAPVCAOIAMpA/gEIhIgAykDiAF8Ig8gElStfCISIA5Ucq18IhggC1RyrXwiDiAKVCAKIBZUcg0AQoGAgIBwIQsCQCAOIgpCgYCAgHBSDQAgGEIAUg0BQv////8PIQsgEiIKQv////8PUg0AIA9Cf1ENAUIAIQpCgYCAgHAhDgwCCyAKIAtaDQAgGCEKIBIhCwwBCyASQv////8PfSIKIA9Cf1KtIhZ9IQsgGCASQv////8PVCAKIBZUcq0iEn0hCiAOQv7///8PQv////8PIBIgGFYbfCEOIA9CAXwhDwsgAyAPNwNAIAMgCzcDOCADIAo3AzAgAyAONwMoIANCAjcD2AMgA0KAgICAYDcD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IAdqIgggBSAJaiIKKQMANwMAIAhBGGogCkEYaikDADcDACAIQRBqIApBEGopAwA3AwAgCEEIaiAKQQhqKQMANwMAIAVBIGohBSAEQQFrIgQNAAsLIAMgBjYCiAMgAyAHNgKEAyADIAY2AoADIANB0ABqIANBgANqIANBQGsQOSADQYABaiADQdgAaigCADYCACADIAMpAlA3A3ggAygCXCIEBEAgAygCYCAEQQV0ELkEC0EIIQcCQAJAIAMoAjwiBkUNACAGQQV0IQggBkH///8fSwRAQQAhBAwCCyADKAI4IQlBACEFQdm+wgAtAAAaQQghBCAIQQgQsAQiB0UNASAGQQV0IQsgBiEEA0AgBSALRg0BIAUgB2oiCCAFIAlqIgopAwA3AwAgCEEYaiAKQRhqKQMANwMAIAhBEGogCkEQaikDADcDACAIQQhqIApBCGopAwA3AwAgBUEgaiEFIARBAWsiBA0ACwsgAyAGNgKIAyADIAc2AoQDIAMgBjYCgAMgA0HQAGogA0GAA2ogA0FAaxA5IANBkAFqIANB2ABqKAIANgIAIAMgAykCUDcDiAEgAygCXCIEBEAgAygCYCAEQQV0ELkECyADKAI8IgZBBXQhBSADKAI4IQcCQAJAAkADQCAFRQ0MIAZBAWshBiAFQSBrIgUgB2oiBEGw78AAQSAQ0ARFDQALIAZBAEgNCyADQdgBaiAEQRhqIgUpAwA3AwAgA0HQAWogBEEQaiIGKQMANwMAIANByAFqIARBCGoiBykDADcDACADIAQpAwA3A8ABIANBwAFqQajVwQBBIBDQBEUNASADQbACakIANwMAIANBqAJqQgA3AwAgA0IANwOgAiADQgE3A7gCIANB2AJqIAUpAwA3AwAgA0HQAmogBikDADcDACADQcgCaiAHKQMANwMAIAMgBCkDADcDwAIgA0H4AmpBqNLBACkDADcDACADQfACakGg0sEAKQMANwMAIANB6AJqQZjSwQApAwA3AwAgA0GQ0sEAKQMANwPgAiADQZADaiEFIANBgANqIQYCQCADQcACaiADQaACakEgENAERQRAQv3////PACEdQn4hFkL/////v38hEkIDIRoMAQsgA0HgAGohBEIDIRpC/////79/IRJCfiEWQv3////PACEdIAMpA9gCIRMgAykDwAIhJSADKQPIAiEXIAMp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IAc2AhQgAyAFNgIQQdm+wgAtAAAaQTBBCBCwBCICBEAgAkEoakG48cAAKQMANwMAIAJBIGpBsPHAACkDADcDACACQRhqQajxwAApAwA3AwAgAkEQakGg8cAAKQMANwMAIAJBCGpBmPHAACkDADcDACACQZDxwAApAwA3AwAgA0EAOgCYAyADIAJBMGo2ApQDIAMgAjYCkAMgA0HgAmogA0GQA2oQlAIgAygC6AIiBEECTwRAIARBAXYhBiADKALkAiIBIARBMGxqQTBrIQQDQCABKQMAIRIgASAEKQMANwMAIANB6ANqIgkgAUEoaiIIKQMANwMAIANB4ANqIgsgAUEgaiIKKQMANwMAIANB2ANqIg8gAUEYaiIMKQMANwMAIANB0ANqIhAgAUEQaiINKQMANwMAIANByANqIhEgAUEIaiIOKQMANwMAIAggBEEoaiIIKQMANwMAIAogBEEgaiIKKQMANwMAIAwgBEEYaiIMKQMANwMAIA0gBEEQaiINKQMANwMAIA4gBEEIaiIOKQMANwMAIAMgEjcDwAMgCCAJKQMANwMAIAogCykDADcDACAMIA8pAwA3AwAgDSAQKQMANwMAIA4gESkDADcDACAEIAMpA8ADNwMAIARBMGshBCABQTBqIQEgBkEBayIGDQALCyADQShqIANB6AJqKAIANgIAIAMgAykC4AI3AyAgAkEwELkEIANBMGoQugIgA0FAaxC6AkHZvsIALQAAGkEwQQgQsAQiAgRAIAJBKGpBuPHAACkDADcDACACQSBqQbDxwAApAwA3AwAgAkEYakGo8cAAKQMANwMAIAJBEGpBoPHAACkDADcDACACQQhqQZjxwAApAwA3AwAgAkGQ8cAAKQMANwMAIANBADoAmAMgAyACQTBqNgKUAyADIAI2ApADIANB4AJqIANBkANqEJQCIAMoAugCIgRBAk8EQCAEQQF2IQYgAygC5AIiASAEQTBsakEwayEEA0AgASkDACESIAEgBCkDADcDACADQegDaiIJIAFBKGoiCCkDADcDACADQeADaiILIAFBIGoiCikDADcDACADQdgDaiIPIAFBGGoiDCkDADcDACADQdADaiIQIAFBEGoiDSkDADcDACADQcgDaiIRIAFBCGoiDikDADcDACAIIARBKGoiCCkDADcDACAKIARBIGoiCikDADcDACAMIARBGGoiDCkDADcDACANIARBEGoiDSkDADcDACAOIARBCGoiDikDADcDACADIBI3A8ADIAggCSkDADcDACAKIAspAwA3AwAgDCAPKQMANwMAIA0gECkDADcDACAOIBEpAwA3AwAgBCADKQPAAzcDACAEQTBrIQQgAUEwaiEBIAZBAWsiBg0ACwsgA0HYAGoiCyADQegCaigCADYCACADIAMpAuACNwNQIAJBMBC5BAJAA0AgBUEwbCEBAkACQAJAAkADQCABRQ0BIAFBMGsiASAHakGg7sAAQTAQ0ARFDQALIAMoAggiAg0BQQghCQwCCyADKAIIIgRBMGwhASADKAIEIQUCQAJAA0AgAUUNASAEQQFrIQQgAUEwayIBIAVqIgJBoO7AAEEwENAERQ0ACyAEQQBIDQAgA0HYAWoiASACQShqKQMANwMAIANB0AFqIgQgAkEgaikDADcDACADQcgBaiIFIAJBGGopAwA3AwAgA0HAAWoiBiACQRBqKQMANwMAIANBuAFqIgkgAkEIaikDADcDACADIAIpAwA3A7ABIANBsAFqQaDuwABBMBDQBEUNAUIAIRIgA0GgAmpCADcDACADQZgCakIANwMAIANBkAJqQgA3AwAgA0GIAmpCADcDACADQgA3A4ACIANCATcDqAIgA0HYAmogASkDADcDACADQdACaiAEKQMANwMAIANByAJqIAUpAwA3AwAgA0HAAmogBikDADcDACADQbgCaiAJKQMANwMAIAMgAykDsAE3A7ACIANBiANqQfjuwAApAwA3AwAgA0GAA2pB8O7AACkDADcDACADQfgCakHo7sAAKQMANwMAIANB8AJqQeDuwAApAwA3AwAgA0HoAmpB2O7AACkDADcDACADQdDuwAApAwA3A+ACIANBuANqQajvwAApAwA3AwAgA0GwA2pBoO/AACkDADcDACADQagDakGY78AAKQMANwMAIANBoANqIgRBkO/AACkDADcDACADQZgDakGI78AAKQMANwMAIANBgO/AACkDADcDkAMgA0HoA2pCADcDACADQeADakIANwMAIANB2ANqQgA3AwAgA0HQA2oiAUIANwMAIANByANqQgA3AwAgA0IANwPAAyADQbACaiADQYACakEwENAERQRAQqrHq5bZ/KPMESEeQq2q5qjb0M+8mn8hEgwMCyADQeAC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IBp8IhMgFCAbVCAUIBZWcq18IhU3A8gDIBMgGFQgEyAVVnKtIB8gHn0gFyAZViASQtfZrprk9umNywBWcq19fEKazf/Lo73EgBp8CyIfNwPAAyAhIRkLIANBsAJqIANBgAJqIgJBMBDQBEUNDCADQeACaiACQTAQ0AQNAAsgASEEIBUhEiAfIR4MCwtBvPPAAEErIANBwANqQejzwABB+PPAABC+AwALIANCAjcDwANBvPPAAEErIANBwANqQez0wABBnPXAABC+AwALQQAhASACQTBsIgVBAEggAkGq1aoVS3INASADKAIEIQhB2b7CAC0AABpBCCEBIAVBCBCwBCIJRQ0BQQAhBiACIQcDQCAFIAZGDQEgBiAJaiIBIAYgCGoiBCkDADcDACABQShqIARBKGopAwA3AwAgAUEgaiAEQSBqKQMANwMAIAFBGGogBEEYaikDADcDACABQRBqIARBEGopAwA3AwAgAUEIaiAEQQhqKQMANwMAIAZBMGohBiAHQQFrIgcNAAsLIAMgAjYCmAMgAyAJNgKUAyADIAI2ApADIANBwANqIANBkANqIANBEGoQIyADKALIAyECIAMoAsQDIQkgAygCwAMhCiADKALMAyIBBEAgAygC0AMgAUEwbBC5BAsCQCACRQRAQQghBAwBC0EAIQEgAkEwbCIIQQBIIAJBqtWqFUtyDQlB2b7CAC0AABpBCCEBIAhBCBCwBCIERQ0JQQAhBiACIQEDQCAGIAhGDQEgBCAGaiIHIAYgCWoiBSkDADcDACAHQShqIAVBKGopAwA3AwAgB0EgaiAFQSBqKQMANwMAIAdBGGogBUEYaikDADcDACAHQRBqIAVBEGopAwA3AwAgB0EIaiAFQQhqKQMANwMAIAZBMGohBiABQQFrIgENAAsLIAMgAjYCmAMgAyAENgKUAyADIAI2ApADIANB4AJqIgUgA0GQA2ogA0EQahBmIANBwANqIgEgBRCEAiADQdwAaiADIAEQygECQCACRQRAQQghBCADQRhqIgEoAgAhByABIANB5ABqKAIANgIAIANBCGogBzYCACADKQMQIRIgAyADKQJcNwMQIAMgEjcDACADQbgCaiADQShqKAIANgIAIAMgAykDIDcDsAIMAQsgBCACQTBsIggQuQQgA0EYaiIBKAIAIQQgASADQeQAaigCADYCACADQQhqIAQ2AgAgAykDECESIAMgAykCXDcDECADIBI3AwAgA0G4AmogA0EoaigCADYCACADIAMpAyA3A7ACQQAhASAIQQBIIAJBqtWqFUtyDQlB2b7CAC0AABpBCCEBIAhBCBCwBCIERQ0JQQAhBiACIQEDQCAGIAhGDQEgBCAGaiIHIAYgCWoiBSkDADcDACAHQShqIAVBKGopAwA3AwAgB0EgaiAFQSBqKQMANwMAIAdBGGogBUEYaikDADcDACAHQRBqIAVBEGopAwA3AwAgB0EIaiAFQQhqKQMANwMAIAZBMGohBiABQQFrIgENAAsLIAMgAjYCmAMgAyAENgKUAyADIAI2ApADIANB4AJqIgUgA0GQA2ogA0EwahBmIANBwANqIgEgBRCEAiADQegAaiADQbACaiABEMoBAkAgAkUEQEEIIQQgA0E4aiIBKAIAIQcgASADQfAAaigCADYCACADQShqIAc2AgAgAykDMCESIAMgAykCaDcDMCADIBI3AyAgA0G4AmogA0HIAGooAgA2AgAgAyADKQJANwOwAgwBCyAEIAJBMGwiCBC5BCADQThqIgEoAgAhBCABIANB8ABqKAIANgIAIANBKGogBDYCACADKQMwIRIgAyADKQJoNwMwIAMgEjcDICADQbgCaiADQcgAaigCADYCACADIAMpAkA3A7ACQQAhASAIQQBIIAJBqtWqFUtyDQNB2b7CAC0AABpBCCEBIAhBCBCwBCIERQ0DQQAhBiACIQEDQCAGIAhGDQEgBCAGaiIHIAYgCWoiBSkDADcDACAHQShqIAVBKGopAwA3AwAgB0EgaiAFQSBqKQMANwMAIAdBGGogBUEYaikDADcDACAHQRBqIAVBEGopAwA3AwAgB0EIaiAFQQhqKQMANwMAIAZBMGohBiABQQFrIgENAAsLIAMgAjYCmAMgAyAENgKUAyADIAI2ApADIANB4AJqIgUgA0GQA2ogA0HQAGoQZiADQcADaiIBIAUQhAIgA0H0AGogA0GwAmogARDKASACBEAgBCACQTBsELkECyALKAIAIQEgCyADQfwAaigCADYCACADQcgAaiABNgIAIAMpA1AhEiADIAMpAnQ3A1AgAyASNwNAIAoEQCAJIApBMGwQuQQLIAMoAhghBSADKAIUIQcMAQsLIAEgBRCoBAALDAULQQhBMBDKBAALQQhBMBDKBAALIAEgCRCoBAALIAQgCxCoBAALIANB+AFqIARBGGopAwAiEzcDACADQfABaiAEQRBqKQMAIhQ3AwAgA0HoAWogBEEIaikDACIVNwMAIANBmAFqIBU3AwAgA0GgAWogFDcDACADQagBaiATNwMAIAMgBCkDACITNwPgASADIBI3A4gBIAMgHjcDgAEgAyATNwOQASAAIANBIGogA0GAAWoiARCXAiAAQQxqIANBQGsgARCXAiAAQRhqIAMgARCXAiADKAJQIgAEQCADKAJUIABBMGwQuQQLIAMoAkAiAARAIAMoAkQgAEEwbBC5BAsgAygCMCIABEAgAygCNCAAQTBsELkECyADKAIgIgAEQCADKAIkIABBMGwQuQQLIAMoAhAiAARAIAcgAEEwbBC5BAsgAygCACIABEAgAygCBCAAQTBsELkECyADQfADaiQADwsgASAIEKgEAAvXMAIGfx1+IwBB0AhrIgMkACADQeAHakIANwMAIANB2AdqQgA3AwAgA0HQB2pCADcDACADQfAHakIANwMAIANB+AdqQgA3AwAgA0IANwPIByADQgA3A+gHIANCATcDgAgCQAJAIAIgA0HIB2oiBUEgENAEBEAgAiADQegHakEgENAERQ0BIAIpAxAhESACKQMIIQwgAikDACEKIAEpAxghEiABKQMQIQsgASkDCCEJIAEpAwAhDiACKQMYIQ8gA0GYCGoiB0IANwMAIANBkAhqIghCADcDACADQgA3A4gIIAMgD0IBgzcDoAggA0GICGogBUEgENAERQRAA0AgA0GIB2ogCyASQgAQvQMgA0HoBmogCSASQgAQvQMgA0G4BmogDiASQgAQvQMgA0HYBmogCSALQgAQvQMgA0GoBmogDiALQgAQvQMgA0GYBmogDiAJQgAQvQMgA0G4B2ogEiASQgAQvQMgA0H4BmogCyALQgAQvQMgA0HIBmogCSAJQgAQvQMgA0GIBmogDiAOQgAQvQMgA0GoB2ogAykDuAciDkKx6pSR3aOCnFh+IglCr/j//29CABC9AyADQZgHaiAJQn9CABC9AyADQdAGaikDACEQIAMgA0GAB2opAwAgAykD+AYiDSADQZAHaikDACISIAMpA+gGfCIJQgGGIAMpA4gHIhNCP4iEfCILIA1UrXwgCyADQcAHaikDACINIBNCAYZ8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fCILfCIKIBggIFatIBMgFyAYVq18fHwiEiADKQPYAXwiDiANIBZUrSADQfABaikDACAWIB9UrXx8fCIWfCIXIBQgHlStIANBgAJqKQMAIhQgDSAeVq18fHwiJXwiDSADKQOYASIYfCIeIANBsAFqKQMAIBogAykDqAEiGnwgGlStfHwiGiADKQNYfCIfQrHqlJHdo4KcWH4iG0Kv+P//b0IAEL0DIANBOGogG0J/QgAQvQMCQCADQUBrKQMAIhsgA0GgAWopAwAiICAYIBQgIiAKIBJWrSATIAogC1StfHwiEyADQbACaikDACALICRUrXx8IgsgAykDyAF8IgogDiAWVq0gA0HgAWopAwAgDiASVK18fHwiEnwiDiASVK18IA4gDiAXICVWrSAUIBYgF1atfHx8Ig5WrXwiFCAKIBJWrSADQdABaikDACAKIAtUrXx8IhYgCyATVK18IhN8IgsgAykDaHwiCiADQYABaikDACAOIAMpA3h8IhIgDlStfCASIAkgDVatIANBkAFqKQMAIAkgIVStfHx8IgkgElStfHwiEnwiDiASVK18IA4gICAJIAkgGHwiCVatfCAJIBogHlStICAgDSAeVq18fHwiDSAJVK18fCIJIA5UrXwiFyAKIBJWrSADQfAAaikDACAKIAtUrXx8IhggCyAUVK0gEyAWVK18fCIWfCILIAMpAwh8Ig4gA0EgaikDACAJIAkgAykDGHwiCVatfCAJIAkgA0EwaikDACADQeAAaikDACAaIB9WrXwiEiADKQMofCIKIBJUrXwgCiAKIA18IgpWrXx8IglWrXx8IhMgAykDOCINfCIUIBNUrXwgFCAbIAkgCSANfCIJVq18IAkgGyAKIAogDXwiClatfCAKIANB0ABqKQMAIAMpA0giDSAffCANVK18fCISIApUrXx8IgogCVStfHwiDSAUVK18IgkgDiATVq0gA0EQaikDACALIA5WrXx8IhMgCyAXVK0gFiAYVK18fCILfCIOIAlUrUIAIAsgE1StfVINACAOQn9SBEAgCiELIA0hCQwCCyANQn9SBEAgCiELIA0hCUJ/IQ4MAgtCfyEJIApCf1IEQCAKIQtCfyEODAILQn8hCyASQq/4//9vWg0AQn8hDgwBCyAKQgF8IgkgEkKv+P//b1StIhN9IQsgDUIBfCIUIApCf1IgCSAT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AkACQCADKAIwIgZFDQAgBkEFdCEIIAZB////H0sEQEEAIQQMAgsgAygCLCEJQQAhBUHZvsIALQAAGkEIIQQgCEEIELAEIgdFDQEgBkEFdCELIAYhBANAIAUgC0YNASAFIAdqIgggBSAJaiIKKQMANwMAIAhBGGogCkEYaikDADcDACAIQRBqIApBEGopAwA3AwAgCEEIaiAKQQhqKQMANwMAIAVBIGohBSAEQQFrIgQNAAsLIAMgBjYCiAMgAyAHNgKEAyADIAY2AoADIANB0ABqIANBgANqIANBQGsQMyADQYABaiADQdgAaigCADYCACADIAMpAlA3A3ggAygCXCIEBEAgAygCYCAEQQV0ELkEC0EIIQcCQAJAIAMoAjwiBkUNACAGQQV0IQggBkH///8fSwRAQQAhBAwCCyADKAI4IQlBACEFQdm+wgAtAAAaQQghBCAIQQgQsAQiB0UNASAGQQV0IQsgBiEEA0AgBSALRg0BIAUgB2oiCCAFIAlqIgopAwA3AwAgCEEYaiAKQRhqKQMANwMAIAhBEGogCkEQaikDADcDACAIQQhqIApBCGopAwA3AwAgBUEgaiEFIARBAWsiBA0ACwsgAyAGNgKIAyADIAc2AoQDIAMgBjYCgAMgA0HQAGogA0GAA2ogA0FAaxAzIANBkAFqIANB2ABqKAIANgIAIAMgAykCUDcDiAEgAygCXCIEBEAgAygCYCAEQQV0ELkECyADKAI8IgZBBXQhBSADKAI4IQcCQAJAAkADQCAFRQ0MIAZBAWshBiAFQSBrIgUgB2oiBEGw78AAQSAQ0ARFDQALIAZBAEgNCyADQdgBaiAEQRhqIgUpAwA3AwAgA0HQAWogBEEQaiIGKQMANwMAIANByAFqIARBCGoiBykDADcDACADIAQpAwA3A8ABIANBwAFqQajVwQBBIBDQBEUNASADQbACakIANwMAIANBqAJqQgA3AwAgA0IANwOgAiADQgE3A7gCIANB2AJqIAUpAwA3AwAgA0HQAmogBikDADcDACADQcgCaiAHKQMANwMAIAMgBCkDADcDwAIgA0H4AmpB+NLBACkDADcDACADQfACakHw0sEAKQMANwMAIANB6AJqQejSwQApAwA3AwAgA0Hg0sEAKQMANwPgAiADQZADaiEFIANBgANqIQYCQCADQcACaiADQaACakEg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aiIIKQMANwMAIAFBCGoiBSkDACEKIAUgAkEIaiIFKQMANwMAIAIgDTcDACAJIAw3AwAgCCALNwMAIAUgCjcDACACQSBrIQIgAUEgaiEBIAdBAWsiBw0ACwsgBiADKQLABDcCACAGQQhqIANByARqKAIANgIAIARBwAAQuQQgA0EBNgLIAyADIAY2AsQDIANBATYCwAMgACADQcADahCeAgwECwwECwwFCyABQSBqIQUgASkDOCEUIAEpAzAhFSABKQMoIRAgASkDICEZIAEpAxghFyABKQMQIRYgASkDCCETIAEpAwAhEQJAAkACQAJAAkAgAwJ+AkACQAJAAkACQCABIAJBIBDQBA0AIAUgAkEgakEgENAEDQAgA0HQBGpCADcDACADQcgEakIANwMAIANCADcDwAQgA0LyADcD2AQgAyAXNwNgIAMgFjcDWCADIBM3A1AgAyARNwNIIANBwANqIgEgA0HABGoiAiADQcgAaiIEEIUBIAMgFzcDYCADIBY3A1ggAyATNwNQIAMgETcDSCACIAEgBBCFASADQfAAakHRoMEAQcIAEKwBIANBkAFqQZOhwQBBwgAQrAEgA0HwAWpB1aHBAEEBEKwBIANBkAJqQdahwQBBwAAQrAEgA0GwAmpBlqLBAEHAABCsARDdAyIBIAEpAwBCAXw3AwAgAykDwAQiCyADKQNwfCIPIAMpA8gEIgogAykDeHwiGCAKVCAYIBggAykD0AQiCiADKQOAAXwiDCAKVCAMIAMpA9gEIgogAykDiAF8Ig4gClStfCINIAxUcq18IhhWcq18IQwgDCAPVCALIA9Wcg0DQv///////////wAhDyAMIgpC////////////AFINAkJ/IQ9C////////////ACEKIBhCf1ENAQwJCyADQcgAaiIEIAIQ5AIgASAEQSAQ0ARFBEAgBSADQegAakEgENAERQ0GCyADQfgDaiACQRhqKQMANwMAIANB8ANqIAJBEGopAwA3AwAgA0HoA2ogAkEIaikDADcDACADIAIpAwA3A+ADIAIpAyghDiACKQMwIQ0gAikDOCEMIAIpAyAiGCELAkAgGCAZIgpSDQAgECIKIA4iC1INACAVIgogDSILUg0AIBQiCiAMIgtRDQQLIAogC1YNAyANIBV9IgsgDCAUVK0iClQgDSAVVHKtIhogDiAQfSISQn+FfCIPIAogC0J/hXwiFSAMIBR9IhRCbVatIgtUrSIKfSEbIAogD1YhASAVIAt9IQsgDiAQVCASIBpUcq0gGSAYfXxC////////////AHwhEEJtIBR9DAQLIA1Cf1IEQCANIQsMCQtCbSEPIA4iCkJtUQ0BCyAKIA9aDQAgDCEKDAYLIA1CAXwiDyAOQm1UrSIKfSELIBhCAXwiEiANQn9SIAogD1ZyrSIKfSEPIAwgGEJ/UiAKIBJWcq19Qv///////////wB9IQogDkITfCEODAYLIBUgDX0iEiAMIBRWrSIKfSELIBAgDn0iDyANIBVWIAogElZyrSIKfSEbIA4gEFYgCiAPVnIhASAZIBh9IRAgFCAMfQs3A9gEIAMgCzcD0AQgAyAbNwPIBCADIBAgAa19NwPABCADKQP4AyEVIAMpA/ADIRAgAykD6AMhFCADKQPgAyIaIQsgAwJ+AkACQCAaIBEiClINACATIgogFCILUg0AIBYiCiAQIgtSDQAgFyIKIBUiC1ENAQsgCiALVg0AIBAgFn0iCyAVIBdUrSIKVCAQIBZUcq0iEiAUIBN9Ig9Cf4V8IhYgCiALQn+FfCIZIBUgF30iFUJtVq0iEFStIgt9IQogCyAWViEBIBkgEH0hCyAPIBJUIBMgFFZyrSARIBp9fEL///////////8AfCERQm0gFX0MAQsgFiAQfSIPIBUgF1atIgp9IQsgEyAUfSIZIBAgFlYgCiAPVnKtIhB9IQogEyAUVCAQIBlWciEBIBEgGn0hESAXIBV9CzcDYCADIAs3A1ggAyAKNwNQIAMgESABrX03A0ggA0GABGogA0HABGoiASADQcgAaiICEFUgA0HgAGogA0GYBGopAwA3AwAgA0HYAGogA0GQBGopAwA3AwAgA0HQAGogA0GIBGopAwA3AwAgAyADKQOABDcDSCABIAIgA0HgA2oQhQEgAykDwAQiDyERAn4CQCAPIBgiClINACAOIgogAykDyAQiEVINACANIgogAykD0AQiEVINACAKIRcgDiAMIgoiEyADKQPYBCIRUQ0BGgsgAykD2AQhEyAKIBFYDQIgAykD0AQhFyADKQPIBAshFiANIBd9IhQgDCATVK0iCn0hESAOIBZ9IgsgDSAXVCAKIBRWcq0iCn0hEiAOIBZUIAogC1ZyIQEgGCAPfSELIAwgE30hDgwCC0HZvsIALQAAGkEMQQQQsAQiBkUNBkHZvsIALQAAGkHAAEEIELAEIgRFDQggAyAXNwNgIAMgFjcDWCADIBM3A1AgAyARNwNIIAQgA0HIAGpBqNXBAEEgENAEBH4gFkJ/hSIMIBdCbVatIgp9IRYgE0J/hSILIAogDFatIgp9IRNCf0IAIAogC1YbIBF9Qv///////////wB8IRFCbSAXfQUgFws3AxggBCAWNwMQIAQgEzcDCCAEIBE3AwAgBEE4akHwhcAAKQMANwMAIARBMGpB6IXAACkDADcDACAEQShqQeCFwAApAwA3AwAgBEHYhcAAKQMANwMgIANBADoAUCADIARBQGs2AkwgAyAENgJIIANBwARqIANByABqELMCIAMoAsgEIgJBAk8EQCACQQF2IQcgAygCxAQiASACQQV0akEgayECA0AgASkDACENIAEgAikDADcDACABQRhqIgUpAwAhDCAFIAJBGGoiCSkDADcDACABQRBqIgUpAwAhCyAFIAJBEGoiCCkDADcDACABQQhqIgUpAwAhCiAFIAJBCGoiBSkDADcDACACIA03AwAgCSAMNwMAIAggCzcDACAFIAo3AwAgAkEgayECIAFBIGohASAHQQFrIgcNAAsLIAYgAykCwAQ3AgAgBkEIaiADQcgEaigCADYCACAEQcAAELkEIANBATYCyAMgAyAGNgLEAyADQQE2AsADIAAgA0HAA2oQngIMBQsgAykD0AQiCiANVCAKIA19IgsgDCATVq0iClRyrSIZIAMpA8gEIhUgDn0iEEJ/hXwiFCALQn+FIAp8Ig0gEyAMfSIMQm1WrSILVK0iCn0hEiAKIBRWIQEgDSALfSERIBAgGVQgDiAVVnKtIBggD318Qv///////////wB8IQtCbSAMfSEODAALIAMgDjcDuAQgAyARNwOwBCADIBI3A6gEIAMgCyABrX0iCzcDoARB2b7CAC0AABoCQEEYQQQQsAQiBgRAQdm+wgAtAAAaQcAAQQgQsAQiBEUNCCADQaAEakGo1cEAQSAQ0AQEQCARQn+FIg0gDkJtVq0iCn0hESASQn+FIgwgCiANVq0iCn0hEkJtIA59IQ5Cf0IAIAogDFYbIAt9Qv///////////wB8IQsLIANB4ABqIANBmARqKQMANwMAIANB2ABqIANBkARqKQMANwMAIANB0ABqIANBiARqKQMANwMAIAMgAykDgAQ3A0gCfiADQcgAakGo1cEAQSAQ0AQEQCADKQNYQn+FIhQgAykDYCINQm1WrSIKfSEPIAMpA1BCf4UiDCAKIBRWrSIKfSETQn9CACAKIAxWGyADKQNIfUL///////////8AfCEQQm0gDX0MAQsgAykDWCEPIAMpA1AhEyADKQNIIRAgAykDYAshCiAEIBA3AyAgBEE4aiAKNwMAIARBMGogDzcDACAEQShqIBM3AwAgBCAONwMYIAQgETcDECAEIBI3AwggBCALNwMAIANBADoAUCADIARBQGs2AkwgAyAENgJIIANB1AVqIANByABqELMCIAMoAtwFIgJBAk8EQCACQQF2IQcgAygC2AUiASACQQV0akEgayECA0AgASkDACENIAEgAikDADcDACABQRhqIgUpAwAhDCAFIAJBGGoiCSkDADcDACABQRBqIgUpAwAhCyAFIAJBEGoiCCkDADcDACABQQhqIgUpAwAhCiAFIAJBCGoiBSkDADcDACACIA03AwAgCSAMNwMAIAggCzcDACAFIAo3AwAgAkEgayECIAFBIGohASAHQQFrIgcNAAsLIARBwAAQuQRB2b7CAC0AABpBIEEIELAEIgRFDQEgBEEYakHwhcAAKQMANwMAIARBEGpB6IXAACkDADcDACAEQQhqQeCFwAApAwA3AwAgBEHYhcAAKQMANwMAIANBADoAUCADIARBIGo2AkwgAyAENgJIIANBwARqIANByABqELMCIAMoAsgEIgJBAk8EQCACQQF2IQcgAygCxAQiASACQQV0akEgayECA0AgASkDACENIAEgAikDADcDACABQRhqIgUpAwAhDCAFIAJBGGoiCSkDADcDACABQRBqIgUpAwAhCyAFIAJBEGoiCCkDADcDACABQQhqIgUpAwAhCiAFIAJBCGoiBSkDADcDACACIA03AwAgCSAMNwMAIAggCzcDACAFIAo3AwAgAkEgayECIAFBIGohASAHQQFrIgcNAAsLIAZBDGoiASADKQLABDcCACABQQhqIANByARqKAIANgIAIARBIBC5BCAGQQhqIANB3AVqKAIANgIAIAYgAykC1AU3AgAgA0ECNgJQIAMgBjYCTCADQQI2AkggACADQcgAahCeAgwFC0EEQRgQygQACwwFCyAYIQ8gDSELCyADIA43A0AgAyALNwM4IAMgDzcDMCADIAo3AyggA0HQA2pCADcDACADQcgDakIANwMAIANCADcDwAMgA0LMADcD2AMgAyAUNwPYBCADIBU3A9AEIAMgEDcDyAQgAyAZNwPABCADQYADaiIBIANBwANqIgIgA0HABGoiBBCFASADQQhqIANBKGogARBVIANB2ARqIANBIGopAwA3AwAgA0HQBGogA0EYaikDADcDACADQcgEaiADQRBqKQMANwMAIAMgAykDCDcDwAQgAyAXNwNgIAMgFjcDWCADIBM3A1AgAyARNwNIIAIgBCADQcgAahCFASADKQPAAyIYIRICfwJAIBUCfgJAIBggGSILUg0AIBAiCyADKQPIAyISUg0AIBUiCyADKQPQAyISUg0AIBAhESALIBQiCyIOIAMpA9gDIhJRDQEaCyADKQPYAyEOIAsgElgNASADKQPIAyERIAMpA9ADCyITfSILIA4gFFatIgp9IRIgECARfSIMIAogC1YgEyAVVnKtIgp9IQsgGSAYfSEPIBQgDn0hDiAQIBFUIAogDFZyDAELIAMpA9ADIgogFVQgCiAVfSILIA4gFFStIgpUcq0iESADKQPIAyIXIBB9IhZCf4V8IhMgC0J/hSAKfCIVIA4gFH0iDUJtVq0iDFStIgp9IQsgFSAMfSESIBAgF1YgESAWVnKtIBkgGH18Qv///////////wB8IQ9CbSANfSEOIAogE1YLIQEgAyAONwO4AyADIBI3A7ADIAMgCzcDqAMgAyAPIAGtfSIPNwOgA0HZvsIALQAAGgJAQRhBBBCwBCIGBEBB2b7CAC0AABpBwABBCBCwBCIERQ0GIANBoANqQajVwQBBIBDQBARAIBJCf4UiDSAOQm1WrSIKfSESIAtCf4UiDCAKIA1WrSIKfSELQn9CACAKIAxWGyAPfUL///////////8AfCEPQm0gDn0hDgsgA0HgAGogA0EgaikDADcDACADQdgAaiADQRhqKQMANwMAIANB0ABqIANBEGopAwA3AwAgAyADKQMINwNIAn4gA0HIAGpBqNXBAEEgENAEBEAgAykDWEJ/hSIUIAMpA2AiDUJtVq0iCn0hESADKQNQQn+FIgwgCiAUVq0iCn0hE0J/QgAgCiAMVhsgAykDSH1C////////////AHwhEEJtIA19DAELIAMpA1ghESADKQNQIRMgAykDSCEQIAMpA2ALIQogBCAQNwMgIARBOGogCjcDACAEQTBqIBE3AwAgBEEoaiATNwMAIAQgDjcDGCAEIBI3AxAgBCALNwMIIAQgDzcDACADQQA6AFAgAyAEQUBrNgJMIAMgBDYCSCADQYQFaiADQcgAahCzAiADKAKMBSICQQJPBEAgAkEBdiEHIAMoAogFIgEgAkEFdGpBIGshAgNAIAEpAwAhDSABIAIpAwA3AwAgAUEYaiIFKQMAIQwgBSACQRhqIgkpAwA3AwAgAUEQaiIFKQMAIQsgBSACQRBqIggpAwA3AwAgAUEIaiIFKQMAIQogBSACQQhqIgUpAwA3AwAgAiANNwMAIAkgDDcDACAIIAs3AwAgBSAKNwMAIAJBIGshAiABQSBqIQEgB0EBayIHDQALCyAEQcAAELkEQdm+wgAtAAAaQSBBCBCwBCIERQ0BIARBGGpB8IXAACkDADcDACAEQRBqQeiFwAApAwA3AwAgBEEIakHghcAAKQMANwMAIARB2IXAACkDADcDACADQQA6AFAgAyAEQSBqNgJMIAMgBDYCSCADQcAEaiADQcgAahCzAiADKALIBCICQQJPBEAgAkEBdiEHIAMoAsQEIgEgAkEFdGpBIGshAgNAIAEpAwAhDSABIAIpAwA3AwAgAUEYaiIFKQMAIQwgBSACQRhqIgkpAwA3AwAgAUEQaiIFKQMAIQsgBSACQRBqIggpAwA3AwAgAUEIaiIFKQMAIQogBSACQQhqIgUpAwA3AwAgAiANNwMAIAkgDDcDACAIIAs3AwAgBSAKNwMAIAJBIGshAiABQSBqIQEgB0EBayIHDQALCyAGQQxqIgEgAykCwAQ3AgAgAUEIaiADQcgEaigCADYCACAEQSAQuQQgBkEIaiADQYwFaigCADYCACAGIAMpAoQFNwIAIANBAjYCUCADIAY2AkwgA0ECNgJIIAAgA0HIAGoQngIMAwtBBEEYEMoEAAsMAwtB2b7CAC0AABpBDEEEELAEIgZFDQFB2b7CAC0AABpBwABBCBCwBCIERQ0DAn4gAUGo1cEAQSAQ0AQEQCABKQMQQn+FIg0gASkDGCIMQm1WrSIKfSEOIAEpAwhCf4UiCyAKIA1WrSIKfSESQm0gDH0hD0J/QgAgCiALVhsgASkDAH1C////////////AHwMAQsgASkDGCEPIAEpAxAhDiABKQMIIRIgASkDAAshCyAEIA83AxggBCAONwMQIAQgEjcDCCAEIAs3AwAgBEHYhcAAKQMANwMgIARBKGpB4IXAACkDADcDACAEQTBqQeiFwAApAwA3AwAgBEE4akHwhcAAKQMANwMAIANBADoAUCADIARBQGs2AkwgAyAENgJIIANBwARqIANByABqELMCIAMoAsgEIgJBAk8EQCACQQF2IQcgAygCxAQiASACQQV0akEgayECA0AgASkDACENIAEgAikDADcDACABQRhqIgUpAwAhDCAFIAJBGGoiCSkDADcDACABQRBqIgUpAwAhCyAFIAJBEGoiCCkDADcDACABQQhqIgUpAwAhCiAFIAJBCGoiBSkDADcDACACIA03AwAgCSAMNwMAIAggCzcDACAFIAo3AwAgAkEgayECIAFBIGohASAHQQFrIgcNAAsLIAYgAykCwAQ3AgAgBkEIaiADQcgEaigCADYCACAEQcAAELkEIANBATYCyAMgAyAGNgLEAyADQQE2AsADIAAgA0HAA2oQngILIANBgAdqJAAPC0EEQQwQygQAC0EIQSAQygQAC0EIQcAAEMoEAAuTMQIPfxR+IwBBoANrIgMkACABKAIEIQ9BCCEIQQghCgJAAkACQAJAIAEoAggiB0UNACAHQQV0IQYgB0H///8fSwRADAILQdm+wgAtAAAaQQghBCAGQQgQsAQiCkUNASAHQQV0IQ4gByEEA0AgBSAORg0BIAUgCmoiBiAFIA9qIgkpAwA3AwAgBkEYaiAJQRhqKQMANwMAIAZBEGogCUEQaikDADcDACAGQQhqIAlBCGopAwA3AwAgBUEgaiEFIARBAWsiBA0ACwsgAyAHNgKIAyADIAo2AoQDIAMgBzYCgAMgAigCECEOAkACQCACKAIUIgZFDQAgBkEFdCEJIAZB////H0sEQEEAIQQMAgtBACEFQdm+wgAtAAAaQQghBCAJQQgQsAQiCEUNASAGQQV0IQsgBiEEA0AgBSALRg0BIAUgCGoiCSAFIA5qIgwpAwA3AwAgCUEYaiAMQRhqKQMANwMAIAlBEGogDEEQaikDADcDACAJQQhqIAxBCGopAwA3AwAgBUEgaiEFIARBAWsiBA0ACwsgAyAGNgJYIAMgCDYCVCADIAY2AlAgA0EEaiAD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ADcDACADQagCakIANwMAIANCADcDoAIgA0IBNwO4AiADQdgCaiAFKQMANwMAIANB0AJqIAYpAwA3AwAgA0HIAmogBykDADcDACADIAQpAwA3A8ACIANB+AJqQYjSwQApAwA3AwAgA0HwAmpBgNLBACkDADcDACADQegCakH40cEAKQMANwMAIANB8NHBACkDADcD4AIgA0GQA2ohBSADQYADaiEGAkAgA0HAAmogA0GgAmpBIBDQBEUEQEKkCyEaDAELIANB4ABqIQRCpAshGiADKQPYAiESIAMpA8ACISUgAykDyAIhFCADKQPQAiEiQm0hE0L///////////8AIR5CfyEfQn8hIQNAIANB4AJqIANBoAJqQSAQ0ARFBEAgA0HQAGohBiAEIQUMAgsgEqdBAXFFBEADQCAiQj+GIBJCAYiEIRICQCAaQgGDUARAIBYhGSAVISAgGiEjDAELIBwgFkIAUiAWQgF9IhYgFUIAUiAVQgF9IhkgGkITfSIjIBpUrXwiICAZVHKtfCIZIBZUcq18Qv///////////wB8IRwLICVCP4YgFEI/hiAiQgGIhCEiICVCAYghJSAcQj+GIBlCAYiEIRYgGUI/hiAgQgGIhCEVICBCP4YgI0IBiIQhGiAcQgGIIRwgFEIBiIQhFCASQgGDUA0ACyADICI3A9ACIAMgEjcD2AIgAyAUNwPIAiADICU3A8ACCyATp0EBcUUEQANAICFCP4YgE0IBiIQhEwJAIBtCAYNQBEAgGCEZIBchICAbISMMAQsgHSAYQgBSIBhCAX0iGCAXQgBSIBdCAX0iGSAbQhN9IiMgG1StfCIgIBlUcq18IhkgGFRyrXxC////////////AHwhHQsgHkI/hiAfQj+GICFCAYiEISEgHkIBiCEeIB1CP4YgGUIBiIQhGCAZQj+GICBCAYiEIRcgIEI/hiAjQgGIhCEbIB1CAYghHSAfQgGIhCEfIBNCAYNQDQALIAMgITcD8AIgAyATNwP4AiADIB83A+gCIAMgHjcD4AILIB4hGQJAAkACQAJAAkAgHiAlIiBSDQAgHyEZIBQhICAUIB9SDQAgISEZICIhICAhICJSDQAgEyEZIBIhICASIBNRDQELIBkgIFQNACADIBMgEn0iGTcD+AIgAyAhICJ9IiMgEiATVq0iE30iIDcD8AIgAyAfIBR9IiQgISAiVCATICNWcq0iE30iIzcD6AIgAyAeICV9IBMgJFYgFCAfVnKtfSIeNwPgAiAcIR8CQAJAIB0iEyAcUg0AIBYhHyAYIhMgFlINACAVIR8gFyITIBVSDQAgGiEfIBogGyITUQ0BCyATIB9UDQILIB0gHH0gGCAWfSITIBcgFX0iHyAaIBtWrSIhVCAVIBdWcq0iJFQgFiAYVnKtfSEdIBsgGn0hGyAfICF9IRcgEyAkfSEYDAILIAMgEiATfSIZNwPYAiADICIgIX0iIyASIBNUrSISfSIgNwPQAiADIBQgH30iJCAhICJWIBIgI1ZyrSISfSIjNwPIAiADICUgHn0gFCAfVCASICRWcq19IiU3A8ACAkACQAJAAkAgHCISIB0iFFINACAWIhIgGCIUUg0AIBUiEiAXIhRSDQAgGyIUIBoiElENAQsgEiAUVA0BCyAcIB19IBYgGFQgFiAYfSIUIBUgF1QgFSAXfSISIBogG1StIhVUcq0iFlRyrX0hHCAaIBt9IRogEiAVfSEVIBQgFn0hFgwBCyAcIB19IBhCf4UiFCAXQn+FIhIgG0JtVq0iHFStIiJUrX0gFiAUICJ9IhZ8IhQgFlQgFCAVIBIgHH0iFXwiEiAVVCASQm0gG30iFSAafCIaIBVUrXwiFSASVHKtfCIWIBRUcq18Qv///////////wB8IRwLICAhIiAjIRQgGSESDAILIB0gHH0gFkJ/hSITIBVCf4UiHyAaQm1WrSIdVK0iIVStfSAYIBMgIX0iGHwiEyAYVCATIBcgHyAdfSIXfCIfIBdUIB9CbSAafSIXIBt8IhsgF1StfCIXIB9Ucq18IhggE1RyrXxC////////////AHwhHQsgICEhICMhHyAZIRMLIANBwAJqIANBoAJqQSAQ0AQNAAsLIAMgGzcDaCADIBc3A2AgAyAVNwOQAyADIBo3A5gDIANBuAFqIAVBCGopAwA3AwAgAyAcNwOAAyADIB03A1AgAyAYNwNYIAMgFjcDiAMgAyAFKQMANwOwASAGKQMAIRQgAyAGKQMINwOoASADIBQ3A6ABIANBlAFqIANB+ABqIANBoAFqEMcCIAMoApABIgZBBXQhBSADKAKMASEHAkADQCAFRQ0BIAZBAWshBiAFQSBrIgUgB2oiBEGw78AAQSAQ0ARFDQALIAZBAEgNACADQZgCaiAEQRhqIgUpAwA3AwAgA0GQAmogBEEQaiIGKQMANwMAIANBiAJqIARBCGoiCCkDADcDACADIAQpAwA3A4ACIANBgAJqQajVwQBBIBDQBEUNAUIAIRsgA0GwAmpCADcDACADQagCakIANwMAIANCADcDoAIgA0IBNwO4AiADQdgCaiAFKQMANwMAIANB0AJqIAYpAwA3AwAgA0HIAmogCCkDADcDACADIAQpAwA3A8ACIANB+AJqQYjSwQApAwA3AwAgA0HwAmpBgNLBACkDADcDACADQegCakH40cEAKQMANwMAIANB8NHBACkDADcD4AIgA0GQA2ohBSADQYADaiEGIANBwAJqIANBoAJqQSAQ0ARFBEBCpAshGkIAIRVCACEXQgAhFkIAIRhCACEcQgAhHQwECyADQeAAaiEEQqQLIRogAykD2AIhEiADKQPAAiElIAMpA8gCIRQgAykD0AIhIkJtIRNC////////////ACEfQn8hHkJ/ISFCACEdQgAhHEIAIRhCACEWQgAhF0IAIRUDQCADQeACaiADQaACakEgENAERQRAIANB0ABqIQYgBCEFDAULIBKnQQFxRQRAA0AgIkI/hiASQgGIhCESAkAgGkIBg1AEQCAWIRkgFSEgIBohIwwBCyAcIBZCAFIgFkIBfSIWIBVCAFIgFUIBfSIZIBpCE30iIyAaVK18IiAgGVRyrXwiGSAWVHKtfEL///////////8AfCEcCyAlQj+GIBRCP4YgIkIBiIQhIiAlQgGIISUgHEI/hiAZQgGIhCEWIBlCP4YgIEIBiIQhFSAgQj+GICNCAYiEIRogHEIBiCEcIBRCAYiEIRQgEkIBg1ANAAsgAyAiNwPQAiADIBI3A9gCIAMgFDcDyAIgAyAlNwPAAgsgE6dBAXFFBEADQCAhQj+GIBNCAYiEIRMCQCAbQgGDUARAIBghGSAXISAgGyEjDAELIB0gGEIAUiAYQgF9IhggF0IAUiAXQgF9IhkgG0ITfSIjIBtUrXwiICAZVHKtfCIZIBhUcq18Qv///////////wB8IR0LIB9CP4YgHkI/hiAhQgGIhCEhIB9CAYghHyAdQj+GIBlCAYiEIRggGUI/hiAgQgGIhCEXICBCP4YgI0IBiIQhGyAdQgGIIR0gHkIBiIQhHiATQgGDUA0ACyADICE3A/ACIAMgEzcD+AIgAyAeNwPoAiADIB83A+ACCyAfIRkCQAJAAkACQAJAIB8gJSIgUg0AIB4hGSAUISAgFCAeUg0AICEhGSAiISAgISAiUg0AIBMhGSASISAgEiATUQ0BCyAZICBUDQAgAyATIBJ9Ihk3A/gCIAMgISAifSIjIBIgE1atIhN9IiA3A/ACIAMgHiAUfSIkICEgIlQgEyAjVnKtIhN9IiM3A+gCIAMgHyAlfSATICRWIBQgHlZyrX0iHzcD4AIgHCEeAkACQCAdIhMgHFINACAWIR4gGCITIBZSDQAgFSEeIBciEyAVUg0AIBohHiAaIBsiE1ENAQsgEyAeVA0CCyAdIBx9IBggFn0iEyAXIBV9Ih4gGiAbVq0iIVQgFSAXVnKtIiRUIBYgGFZyrX0hHSAbIBp9IRsgHiAhfSEXIBMgJH0hGAwCCyADIBIgE30iGTcD2AIgAyAiICF9IiMgEiATVK0iEn0iIDcD0AIgAyAUIB59IiQgISAiViASICNWcq0iEn0iIzcDyAIgAyAlIB99IBQgHlQgEiAkVnKtfSIlNwPAAgJAAkACQAJAIBwiEiAdIhRSDQAgFiISIBgiFFINACAVIhIgFyIUUg0AIBsiFCAaIhJRDQELIBIgFFQNAQsgHCAdfSAWIBhUIBYgGH0iFCAVIBdUIBUgF30iEiAaIBtUrSIVVHKtIhZUcq19IRwgGiAbfSEaIBIgFX0hFSAUIBZ9IRYMAQsgHCAdfSAYQn+FIhQgF0J/hSISIBtCbVatIhxUrSIiVK19IBYgFCAifSIWfCIUIBZUIBQgFSASIBx9IhV8IhIgFVQgEkJtIBt9IhUgGnwiGiAVVK18IhUgElRyrXwiFiAUVHKtfEL///////////8AfCEcCyAgISIgIyEUIBkhEgwCCyAdIBx9IBZCf4UiEyAVQn+FIh4gGkJtVq0iHVStIiFUrX0gGCATICF9Ihh8IhMgGFQgEyAXIB4gHX0iF3wiHiAXVCAeQm0gGn0iFyAbfCIbIBdUrXwiFyAeVHKtfCIYIBNUcq18Qv///////////wB8IR0LICAhISAjIR4gGSETCyADQcACaiADQaACakEgENAEDQALDAMLDAsLIANCAjcDUEGA08EAQSsgA0HQAGpBrNPBAEGY18EAEL4DAAsgA0ICNwNQQYDTwQBBKyADQdAAakGs08EAQajXwQAQvgMACyADIBs3A2ggAyAXNwNgIAMgFTcDkAMgAyAaNwOYAyADQfgBaiAFQQhqKQMANwMAIAMgHDcDgAMgAyAdNwNQIAMgGDcDWCADIBY3A4gDIAMgBSkDADcD8AEgBikDACEUIAMgBikDCDcD6AEgAyAUNwPgASAAQQxqIANBiAFqIANB4AFqEMcCIABBCGogA0GcAWooAgA2AgAgACADKQKUATcCACADKAKIASIABEAgByAAQQV0ELkECyADKAJ4IgAEQCADKAJ8IABBBXQQuQQLIAMoAkAiAARAIAMoAkQgAEEFdBC5BAsgAygCKCIABEAgAygCLCAAQQV0ELkECyADKAI0IgAEQCADKAI4IABBBXQQuQQLIAIoAgAiAARAIBAgAEEFdBC5BAsgAigCDCIABEAgDiAAQQV0ELkECyABKAIAIgAEQCAPIABBBXQQuQQLIAEoAgwiAARAIAwgAEEFdBC5BAsgA0GgA2okAA8LDAgLDAcLDAYLDAULIAQgCxCoBAALIAQgBxCoBAALIAQgCRCoBAALIAQgBhCoBAALQbzzwABBKyADQdAAakHo88AAQfjzwAAQvgMACyAEIAgQqAQAC8ozAgd/En4jAEGAB2siAyQAAkACQAJAAkACQAJAAkACQAJAIAFBoOjAAEEgENAERQRAIAFBIGpBoOjAAEEgENAEIQUgAkGg6MAAQSAQ0AQNASACQSBqQaDowABBIBDQBCEEIAVFDQIgBA0EDAULIAJBoOjAAEEgENAEDQMgAkEgakGg6MAAQSAQ0ARFDQQMAwsgBQ0CDAELIAQNAEHZvsIALQAAGgJAQQxBBBCwBCIJBEBB2b7CAC0AABpBIEEIELAEIgRFDQEgBEEYakHghMAAKQMANwMAIARBEGpB2ITAACkDADcDACAEQQhqQdCEwAApAwA3AwAgBEHIhMAAKQMANwMAIANBADoAUCADIARBIGo2AkwgAyAENgJIIANBwARqIANByABqELMCIAMoAsgEIgJBAk8EQCACQQF2IQUgAygCxAQiASACQQV0akEgayECA0AgASkDACEKIAEgAikDADcDACABQRhqIgYpAwAhDCAGIAJBGGoiBikDADcDACABQRBqIgcpAwAhCyAHIAJBEGoiBykDADcDACABQQhqIggpAwAhDSAIIAJBCGoiCCkDADcDACACIAo3AwAgBiAMNwMAIAcgCzcDACAIIA03AwAgAkEgayECIAFBIGohASAFQQFrIgUNAAsLIAkgAykCwAQ3AgAgCUEIaiADQcgEaigCADYCACAEQSAQuQQgA0EBNgLIAyADIAk2AsQDIANBATYCwAMgACADQcADahClAgwFCwwFCwwFC0HZvsIALQAAGgJAQQxBBBCwBCIJBEBB2b7CAC0AABpBwABBCBCwBCIERQ0BAn4gAkGo1cEAQSAQ0AQEQCACKQMQQn+FIgogAikDGCILQq/4//9vVq0iDX0hDCACKQMIQn+FIg4gCiANVK0iCn0hD0Kv+P//byALfSERIAIpAwBCf4UgCiAOVq19DAELIAIpAxghESACKQMQIQwgAikDCCEPIAIpAwALIQogBCARNwMYIAQgDDcDECAEIA83AwggBCAKNwMAIARByITAACkDADcDICAEQShqQdCEwAApAwA3AwAgBEEwakHYhMAAKQMANwMAIARBOGpB4ITAACkDADcDACADQQA6AFAgAyAEQUBrNgJMIAMgBDYCSCADQcAEaiADQcgAahCzAiADKALIBCICQQJPBEAgAkEBdiEFIAMoAsQEIgEgAkEFdGpBIGshAgNAIAEpAwAhCiABIAIpAwA3AwAgAUEYaiIGKQMAIQwgBiACQRhqIgYpAwA3AwAgAUEQaiIHKQMAIQsgByACQRBqIgcpAwA3AwAgAUEIaiIIKQMAIQ0gCCACQQhqIggpAwA3AwAgAiAKNwMAIAYgDDcDACAHIAs3AwAgCCANNwMAIAJBIGshAiABQSBqIQEgBUEBayIFDQALCyAJIAMpAsAENwIAIAlBCGogA0HIBGooAgA2AgAgBEHAABC5BCADQQE2AsgDIAMgCTYCxAMgA0EBNgLAAyAAIANBwANqEKUCDAQLDAQLDAULIAFBIGohBSABKQM4IRIgASkDMCELIAEpAyghDiABKQMgIRYgASkDGCETIAEpAxAhFCABKQMIIRAgASkDACENAkACQAJAAkACQCADAn4CQAJAAkACQCABIAJBIBDQBA0AIAUgAkEgakEgENAEDQAgA0HQBGoiAUIANwMAIANByARqIgJCADcDACADQgA3A8AEIANC85aAgDA3A9gEIAMgEzcDYCADIBQ3A1ggAyAQNwNQIAMgDTcDSCADQcADaiIEIANBwARqIgUg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/28gE30hEyANQn+FIAogC1atfSENCyAEIBM3AxggBCAUNwMQIAQgEDcDCCAEIA03AwAgBEE4akHghMAAKQMANwMAIARBMGpB2ITAACkDADcDACAEQShqQdCEwAApAwA3AwAgBEHIhMAAKQMANwMgIANBADoAUCADIARBQGs2AkwgAyAENgJIIANBwARqIANByABqELMCIAMoAsgEIgJBAk8EQCACQQF2IQUgAygCxAQiASACQQV0akEgayECA0AgASkDACEKIAEgAikDADcDACABQRhqIgYpAwAhDCAGIAJBGGoiBikDADcDACABQRBqIgcpAwAhCyAHIAJBEGoiBykDADcDACABQQhqIggpAwAhDSAIIAJBCGoiCCkDADcDACACIAo3AwAgBiAMNwMAIAcgCzcDACAIIA03AwAgAkEgayECIAFBIGohASAFQQFrIgUNAAsLIAkgAykCwAQ3AgAgCUEIaiADQcgEaigCADYCACAEQcAAELkEIANBATYCyAMgAyAJNgLEAyADQQE2AsADIAAgA0HAA2oQpQIMBQsgAykD0AMiCiALVCAKIAt9IgogDCASVK0iC1RyrSINIAMpA8gDIhUgDn0iEEJ/hXwiDyAKQn+FIAt8IgsgDCASfSIMQq/4//9vVq0iElStIhN9IQogDyATVCEBIAsgEn0hDyAOIBVWIA0gEFZyrSAWIBFCf4V8fCERQq/4//9vIAx9IQwMAgsgAykD0AQiDCAPVCAMIA99IgwgDSAVVK0iC1RyrSIOIAMpA8gEIhIgEX0iE0J/hXwiECAMQn+FIAt8IgwgDSAVfSILQq/4//9vVq0iDVStIhV9IQ8gECAVVCEBIAwgDX0hECARIBJWIA4gE1ZyrSAZIApCf4V8fCEKQq/4//9vIAt9IQwMAAsgAyAMNwO4BCADIBA3A7AEIAMgDzcDqAQgAyAKIAGtfSIKNwOgBEHZvsIALQAAGgJAQRhBBBCwBCIJBEBB2b7CAC0AABpBwABBCBCwBCIERQ0HIANBoARqQajVwQBBIBDQBARAIBBCf4UiCyAMQq/4//9vVq0iDX0hECAPQn+FIg4gCyANVK0iC30hD0Kv+P//byAMfSEMIApCf4UgCyAOVq19IQoLIANB4ABqIANBmARqKQMANwMAIANB2ABqIANBkARqKQMANwMAIANB0ABqIANBiARqKQMANwMAIAMgAykDgAQ3A0gCfiADQcgAakGo1cEAQSAQ0AQEQCADKQNYQn+FIgsgAykDYCISQq/4//9vVq0iDX0hESADKQNQQn+FIg4gCyANVK0iC30hDSADKQNIQn+FIAsgDlatfSEOQq/4//9vIBJ9DAELIAMpA1ghESADKQNQIQ0gAykDSCEOIAMpA2ALIQsgBCAONwMgIARBOGogCzcDACAEQTBqIBE3AwAgBEEoaiANNwMAIAQgDDcDGCAEIBA3AxAgBCAPNwMIIAQgCjcDACADQQA6AFAgAyAEQUBrNgJMIAMgBDYCSCADQdQFaiADQcgAahCzAiADKALcBSICQQJPBEAgAkEBdiEFIAMoAtgFIgEgAkEFdGpBIGshAgNAIAEpAwAhCiABIAIpAwA3AwAgAUEYaiIGKQMAIQwgBiACQRhqIgYpAwA3AwAgAUEQaiIHKQMAIQsgByACQRBqIgcpAwA3AwAgAUEIaiIIKQMAIQ0gCCACQQhqIggpAwA3AwAgAiAKNwMAIAYgDDcDACAHIAs3AwAgCCANNwMAIAJBIGshAiABQSBqIQEgBUEBayIFDQALCyAEQcAAELkEQdm+wgAtAAAaQSBBCBCwBCIERQ0BIARBGGpB4ITAACkDADcDACAEQRBqQdiEwAApAwA3AwAgBEEIakHQhMAAKQMANwMAIARByITAACkDADcDACADQQA6AFAgAyAEQSBqNgJMIAMgBDYCSCADQcAEaiADQcgAahCzAiADKALIBCICQQJPBEAgAkEBdiEFIAMoAsQEIgEgAkEFdGpBIGshAgNAIAEpAwAhCiABIAIpAwA3AwAgAUEYaiIGKQMAIQwgBiACQRhqIgYpAwA3AwAgAUEQaiIHKQMAIQsgByACQRBqIgcpAwA3AwAgAUEIaiIIKQMAIQ0gCCACQQhqIggpAwA3AwAgAiAKNwMAIAYgDDcDACAHIAs3AwAgCCANNwMAIAJBIGshAiABQSBqIQEgBUEBayIFDQALCyAJQQxqIgEgAykCwAQ3AgAgAUEIaiADQcgEaigCADYCACAEQSAQuQQgCUEIaiADQdwFaigCADYCACAJIAMpAtQFNwIAIANBAjYCUCADIAk2AkwgA0ECNgJIIAAgA0HIAGoQpQIMBAtBBEEYEMoEAAsMBAsgAyAMNwO4AyADIA83A7ADIAMgCjcDqAMgAyARIAGtfSIRNwOgA0HZvsIALQAAGgJAQRhBBBCwBCIJBEBB2b7CAC0AABpBwABBCBCwBCIERQ0GIANBoANqQajVwQBBIBDQBARAIA9Cf4UiCyAMQq/4//9vVq0iDX0hDyAKQn+FIg4gCyANVK0iC30hCiARQn+FIAsgDlatfSERQq/4//9vIAx9IQwLIANB4ABqIANBIGopAwA3AwAgA0HYAGogA0EYaikDADcDACADQdAAaiADQRBqKQMANwMAIAMgAykDCDcDSAJ+IANByABqQajVwQBBIBDQBARAIAMpA1hCf4UiCyADKQNgIhJCr/j//29WrSINfSEQIAMpA1BCf4UiDiALIA1UrSILfSENIAMpA0hCf4UgCyAOVq19IQ5Cr/j//28gEn0MAQsgAykDWCEQIAMpA1AhDSADKQNIIQ4gAykDYAshCyAEIA43AyAgBEE4aiALNwMAIARBMGogEDcDACAEQShqIA03AwAgBCAMNwMYIAQgDzcDECAEIAo3AwggBCARNwMAIANBADoAUCADIARBQGs2AkwgAyAENgJIIANBhAVqIANByABqELMCIAMoAowFIgJBAk8EQCACQQF2IQUgAygCiAUiASACQQV0akEgayECA0AgASkDACEKIAEgAikDADcDACABQRhqIgYpAwAhDCAGIAJBGGoiBikDADcDACABQRBqIgcpAwAhCyAHIAJBEGoiBykDADcDACABQQhqIggpAwAhDSAIIAJBCGoiCCkDADcDACACIAo3AwAgBiAMNwMAIAcgCzcDACAIIA03AwAgAkEgayECIAFBIGohASAFQQFrIgUNAAsLIARBwAAQuQRB2b7CAC0AABpBIEEIELAEIgRFDQEgBEEYakHghMAAKQMANwMAIARBEGpB2ITAACkDADcDACAEQQhqQdCEwAApAwA3AwAgBEHIhMAAKQMANwMAIANBADoAUCADIARBIGo2AkwgAyAENgJIIANBwARqIANByABqELMCIAMoAsgEIgJBAk8EQCACQQF2IQUgAygCxAQiASACQQV0akEgayECA0AgASkDACEKIAEgAikDADcDACABQRhqIgYpAwAhDCAGIAJBGGoiBikDADcDACABQRBqIgcpAwAhCyAHIAJBEGoiBykDADcDACABQQhqIggpAwAhDSAIIAJBCGoiCCkDADcDACACIAo3AwAgBiAMNwMAIAcgCzcDACAIIA03AwAgAkEgayECIAFBIGohASAFQQFrIgUNAAsLIAlBDGoiASADKQLABDcCACABQQhqIANByARqKAIANgIAIARBIBC5BCAJQQhqIANBjAVqKAIANgIAIAkgAykChAU3AgAgA0ECNgJQIAMgCTYCTCADQQI2AkggACADQcgAahClAgwDC0EEQRgQygQACwwDC0HZvsIALQAAGkEMQQQQsAQiCUUNAUHZvsIALQAAGkHAAEEIELAEIgRFDQMCfiABQajVwQBBIBDQBARAIAEpAxBCf4UiCiABKQMYIgtCr/j//29WrSINfSEMIAEpAwhCf4UiDiAKIA1UrSIKfSEPQq/4//9vIAt9IREgASkDAEJ/hSAKIA5WrX0MAQsgASkDGCERIAEpAxAhDCABKQMIIQ8gASkDAAshCiAEIBE3AxggBCAMNwMQIAQgDzcDCCAEIAo3AwAgBEHIhMAAKQMANwMgIARBKGpB0ITAACkDADcDACAEQTBqQdiEwAApAwA3AwAgBEE4akHghMAAKQMANwMAIANBADoAUCADIARBQGs2AkwgAyAENgJIIANBwARqIANByABqELMCIAMoAsgEIgJBAk8EQCACQQF2IQUgAygCxAQiASACQQV0akEgayECA0AgASkDACEKIAEgAikDADcDACABQRhqIgYpAwAhDCAGIAJBGGoiBikDADcDACABQRBqIgcpAwAhCyAHIAJBEGoiBykDADcDACABQQhqIggpAwAhDSAIIAJBCGoiCCkDADcDACACIAo3AwAgBiAMNwMAIAcgCzcDACAIIA03AwAgAkEgayECIAFBIGohASAFQQFrIgUNAAsLIAkgAykCwAQ3AgAgCUEIaiADQcgEaigCADYCACAEQcAAELkEIANBATYCyAMgAyAJNgLEAyADQQE2AsADIAAgA0HAA2oQpQILIANBgAdqJAAPC0EEQQwQygQAC0EIQSAQygQAC0EIQcAAEMoEAAvSMwIPfxt+IwBBwAVrIgMkACADQQA2AtAEIANCgICAgIABNwLIBCADQQA2AtwEIANCgICAgIABNwLUBAJAAkACQCACRQ0AIAFBIGoiBEHw18AAQSAQ0ARFDQIgASACQQZ0aiEIQfDVwAApAwAhKUHo1cAAKQMAISpB4NXAACkDACErQdjVwAAp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IBMgFlStfCIWIAMpA8gDfCIcIAMpA/gDfCIfIBUgF1StIANBkARqKQMAIBQgF1atfHx8IhN8IiAgAykD+AJ8Ih4gA0GQA2opAwAgEiADKQOIAyISfCASVK18fCIXIAMpA5gCfCISQgBCiceZpK7wgemHfxC9AyADQfgBaiADQZACaikDACIUQsf688PtgqOQPEIAEL0DIANB6AFqIBRCjZXHw5bS2sCXf0IAEL0DIANB2AFqIBRC3bCFjOi2kai4f0IAEL0DIANByAFqIBRCqcDGia7Ok7IwQgAQvQMgA0GIAWogJCAZQgAQvQMgA0EoaiAlIBlCABC9AyADQRhqICEgGUIAEL0DIANBCGogGyAZQgAQvQMgA0H4AGogA0GgAmopAwAgEiAXVK18IhQgAykDuAF8IiEgA0HQA2opAwAgFiAcVq18IhYgAykDuAN8IhkgAykD6AN8IhUgEyAfVK0gA0GABGopAwAgHCAfVq18fHwiGiADKQO4AnwiGyAdICBWrSADQdACaikDACAYIB1WrXx8fCIdIAMpA+gCfCIcIBcgHlStIANBgANqKQMAIB4gIFStfHx8IhN8Ih8gAykD6AF8IhcgA0GAAmopAwAgEiADKQP4ASISfCASVK18fCIgIAMpA4gBfCIeQgBCiceZpK7wgemHfxC9AyADQegAaiADQYABaikDACISQsf688PtgqOQPEIAEL0DIANB2ABqIBJCjZXHw5bS2sCXf0IAEL0DIANByABqIBJC3bCFjOi2kai4f0IAEL0DIANBOGogEkKpwMaJrs6TsjBCABC9AwJAAkACQCADQUBrKQMAIANB0AFqKQMAIANB4AJqKQMAIBUgGlatIANB8ANqKQMAIBUgGVStfHwgA0HAA2opAwAgFiAZVq18fCISIAMpA6gCfCIVIBsgHVatIANBwAJqKQMAIBogG1atfHx8IhggAykD2AJ8IhYgGFStfCAWIBMgHFStIANB8AJqKQMAIBwgHVStfHx8IhMgFlStfCAVIBhWrSADQbACaikDACASIBVWrXx8fCISIAMpA5gBfCIVIANBsAFqKQMAIBMgEyADKQOoAXwiE1atfCATIBMgHyAhVK0gA0HAAWopAwAgFCAhVq18fHwiE1atfHwiGCADKQPIAXwiFiAYVK18IBYgA0HgAWopAwAgEyATIAMpA9gBfCITVq18IBMgEyAXICBWrSADQfABaikDACAXIB9UrXx8fCITVq18fCIUIBZUrXwgFSAYVq0gA0GgAWopAwAgEiAVVq18fHwiFiADKQMIfCIXIANBIGopAwAgFCADKQMYfCIYIBRUrXwgGCADQTBqKQMAIANBkAFqKQMAIB4gIFStfCISIAMpAyh8IhQgElStfCATIBR8IhMgFFStfHwiEiAYVK18fCIVIAMpAzh8IhggFVStfCAYIANB0ABqKQMAIBIgAykDSHwiFCASVK18IBQgA0HgAGopAwAgEyATIAMpA1h8IhNWrXwgEyADQfAAaikDACADKQNoIhIgHnwgElStfHwiGSATVK18fCISIBRUrXx8IhMgGFStfCAVIBdUrSADQRBqKQMAIBYgF1atfHx8IhtCqcDGia7Ok7IwVg0AIBtCqcDGia7Ok7IwUgRAIBIhGCATIRUMAwsgE0LdsIWM6LaRqLh/Vg0AIBNC3bCFjOi2kai4f1IEQCASIRggEyEVQqnAxomuzpOyMCEbDAMLIBJCjZXHw5bS2sCXf1YNAELdsIWM6LaRqLh/IRUgEkKNlcfDltLawJd/UiAZQsf688PtgqOQPFRyDQELIBJC8+q4vOmtpb/oAHwiFSAZQsf688PtgqOQPFStIhR9IRggE0Kjz/rzl8nu18cAfCIWIBJCjZXHw5bS2sCXf1QgFCAVVnKtIhJ9IRUgGyATQt2whYzotpGouH9UIBIgFlZyrX1CqcDGia7Ok7IwfSEbIBlCx/rzw+2Co5A8fSEZDAELIBIhGEKpwMaJrs6TsjAhGwsgAyAZNwO4BSADIBg3A7AFIAMgFTcDqAUgAyAbNwOgBQJAIANBoAVqQfDXwABBIBDQBEUEQCAVIRYgGCEUDAELQo2Vx8OW0trAl38gGH0iFiAZQsf688PtgqOQPFatIhJ9IRRC3bCFjOi2kai4fyAVfSITIBIgFlYgGEKNlcfDltLawJd/VnKtIhJ9IRZCqcDGia7Ok7IwIBIgE1YgFULdsIWM6LaRqLh/VnKtIBt8fSEbQsf688PtgqOQPCAZfSEZCyADKALcBCICIAMoAtQERgRAIANB1ARqEJoDCyADKALYBCACQQV0aiIFIBk3AxggBSAUNwMQIAUgFjcDCCAFIBs3AwAgAyACQQFqNgLcBCABQUBrIgIgCEYNASABQeAAaiEEIAIhASAEQfDXwABBIBDQBA0ACwwCCyAAIAMpAsgENwIAIAAgAykC1AQ3AgwgAEEIaiADQdAEaigCADYCACAAQRRqIANB3ARqKAIANgIAIANBwAVqJAAPCyADICI3A6gFIANCAjcDoAVB+NXAAEErIANBoAVqQaTWwABBsNfAABC+AwALIAMgIzcDqAUgA0ICNwOgBUH41cAAQSsgA0GgBWpBpNbAAEHw3sAAEL4DAAu5MgIQfxd+IwBBsAZrIgMkACACKAIIIgpBBXQhBCACKAIEIg5BIGshBiAKIQgCQAJAAkACQANAIARFDQEgCEEBayEIIAQgBmogBEEgayEEQbDvwABBIBDQBEUNAAsgCEEBaiEPIAhBf3MhESABKAIIIgZBBXQhBCABKAIEIRAgBiEFA0AgBARAIAVBAWshBSAEQSBrIgQgEGpBsO/AAEEgENAERQ0BDAMLC0F/IQUgBg0BQQghCUEBIQsMAgsgA0EANgLQBSADQQE2AsQFIANBtPTAADYCwAUgA0IENwLIBSADQcAFakG89MAAEIYEAAsgBkEFdCELIAZB////H0sEQAwCC0EAIQRB2b7CAC0AABpBCCEHIAtBCBCwBCIJRQ0BIAZBBXQhEiAGIQcDQEEAIQsgBCASRg0BIAQgCWoiDCAEIBBqIg0pAwA3AwAgDEEYaiANQRhqKQMANwMAIAxBEGogDUEQaikDADcDACAMQQhqIA1BCGopAwA3AwAgBEEgaiEEIAdBAWsiBw0ACwsgAyAGNgLMBCADIAk2AsgEIAMgBjYCxAQCQAJAIAUgCE4EQCAFIAhrQQFqIQwCQCAIIAVrQQFGBEBBCCELDAELIAxBBXQhBCAMQf///x9LBEBBACEHDAQLQdm+wgAtAAAaQQghByAEQQgQsAQiC0UNAyALIQQgBSAIRwRAIAVBAWohBwNAIARCADcDACAEQRhqQgA3AwAgBEEQakIANwMAIARBCGpCADcDACAEQSBqIQQgDyAHQQFrIgdHDQALCyAEQgA3AwAgBEEYakIANwMAIARBEGpCADcDACAEQQhqQgA3AwALIApBBXQhBAJAAkACQAJAA0AgBEUNASAKQQFrIQogBEEgayIEIA5qIgdBsO/AAEEgENAERQ0ACyAKQQBIDQAgA0HoBGogB0EYaiIEKQMANwMAIANB4ARqIAdBEGoiCikDADcDACADQdgEaiAHQQhqIg0pAwA3AwAgAyAHKQMANwPQBCADQdAEakGw78AAQSAQ0ARFDQMgA0GQBWpCADcDACADQYgFakIANwMAIANCADcDgAUgA0IBNwOYBSADQbgFaiAEKQMANwMAIANBsAVqIAopAwA3AwAgA0GoBWogDSkDADcDACADIAcpAwA3A6AFIANB2AVqQajwwAApAwA3AwAgA0HQBWpBoPDAACkDADcDACADQcgFakGY8MAAKQMANwMAIANBkPDAACkDADcDwAUCQCADQaAFaiADQYAFakEgENAERQRAQon1q5y1i7+WcyEeQvuDlKKdosbztX8hGkL2/4XS8N/H1ccAIR1Cn+rg1Zzup+wGISEMAQtCifWrnLWLv5ZzIR5C+4OUop2ixvO1fyEaQvb/hdLw38fVxwAhHUKf6uDVnO6n7AYhISADKQO4BSEWIAMpA6AFIR8gAykDqAUhEyADKQOwBSEgQsf688PtgqOQPCEVQqnAxomuzpOyMCElQt2whYzotpGouH8hFEKNlcfDltLawJd/ISMDQCADQcAFaiADQYAFakEgENAERQRAIBshISAcIR0gFyEaIBkhHgwCCyAWp0EBcUUEQANAICBCP4YgFkIBiIQhFgJAIB5CAYNQBEAgHiEYIBohHiAdIRoMAQsgISAdIB1Co8/685fJ7tfHAH0iHVYgHSAaIBpC8+q4vOmtpb/oAH0iGlYgGiAeQsf688PtgqOQPHwiGCAeVK18Ih4gGlRyrXwiGiAdVHKtfEKpwMaJrs6TsjB8ISELIB9CP4YgE0I/hiAgQgGIhCEgIB9CAYghHyAhQj+GIBpCAYiEIR0gGkI/hiAeQgGIhCEaIB5CP4YgGEIBiIQhHiAhQgGIISEgE0IBiIQhEyAWQgGDUA0ACyADICA3A7AFIAMgFjcDuAUgAyATNwOoBSADIB83A6AFCyAVp0EBcUUEQANAICNCP4YgFUIBiIQhFQJAIBlCAYNQBEAgGSEYIBchGSAcIRcMAQsgGyAcIBxCo8/685fJ7tfHAH0iHFYgHCAXIBdC8+q4vOmtpb/oAH0iF1YgFyAZQsf688PtgqOQPHwiGCAZVK18IhkgF1RyrXwiFyAcVHKtfEKpwMaJrs6TsjB8IRsLICVCP4YgFEI/hiAjQgGIhCEjICVCAYghJSAbQj+GIBdCAYiEIRwgF0I/hiAZQgGIhCEXIBlCP4YgGEIBiIQhGSAbQgGIIRsgFEIBiIQhFCAVQgGDUA0ACyADICM3A9AFIAMgFTcD2AUgAyAUNwPIBSADICU3A8AFCyAfISICQAJAAkACQCAlIhggH1INACAUIRggEyEiIBMgFFINACAgISIgIyIYICBSDQAgFSEYIBYhIiAVIBZRDQELIBggIlQNACADIBUgFn0iGDcD2AUgAyAjICB9IiQgFSAWVK0iFX0iIjcD0AUgAyAUIBN9IiYgFSAkViAgICNWcq0iFX0iJDcDyAUgAyAlIB99IBUgJlYgEyAUVnKtfSIlNwPABQJAAkAgGyIVICEiFFINACAdIhQgHCIVUg0AIBoiFCAXIhVSDQAgHiIUIBkiFVENAQsgFCAVVg0CCyAbICF9IBwgHX0iJiAXIBp9IicgGSAeVK0iKFQgFyAaVHKtIilUIBwgHVRyrX0hGyAZIB59IRkgIiEjICQhFCAYIRUgJyAofSEXICYgKX0hHAwCCyADIBYgFX0iGDcDuAUgAyAgICN9IiQgFSAWVq0iFn0iIjcDsAUgAyATIBR9IiYgICAjVCAWICRWcq0iFn0iJDcDqAUgAyAfICV9IBMgFFQgFiAmVnKtfSIfNwOgBQJAAkACQCAbIhMgISIWUg0AIB0iFiAcIhNSDQAgGiIWIBciE1INACAeIhYgGSITUQ0BCyATIBZWDQELICEgG30gHCAdViAdIBx9Ih0gFyAaViAaIBd9IhogGSAeVq0iJlRyrSInVHKtfSEhIB4gGX0hHiAiISAgJCETIBghFiAaICZ9IRogHSAnfSEdDAILICEgG31C3bCFjOi2kai4fyAcfSITQo2Vx8OW0trAl38gF30iFiAZQsf688PtgqOQPFatIiFUIBdCjZXHw5bS2sCXf1ZyrSIgVCAcQt2whYzotpGouH9Wcq19IB0gEyAgfSIdfCITIB1UIBMgGiAWICF9Ihp8IhYgGlQgFkLH+vPD7YKjkDwgGX0iGiAefCIeIBpUrXwiGiAWVHKtfCIdIBNUcq18QqnAxomuzpOyMHwhISAiISAgJCETIBghFgwBCyAbQt2whYzotpGouH8gHX0iFUKNlcfDltLawJd/IBp9IhQgHkLH+vPD7YKjkDxWrSIbVCAaQo2Vx8OW0trAl39Wcq0iI1QgHULdsIWM6LaRqLh/VnKtICF8fSAcIBUgI30iHHwiFSAcVCAVIBcgFCAbfSIXfCIUIBdUIBRCx/rzw+2Co5A8IB59IhcgGXwiGSAXVK18IhcgFFRyrXwiHCAVVHKtfEKpwMaJrs6TsjB8IRsgIiEjICQhFCAYIRULIANBoAVqIANBgAVqQSAQ0AQNAAsLQQAgCGshDQNAAkACQCAFIAZJBEAgA0GABGogCSAFQQV0aiIEKQMYIhUgHkIAEL0DIANB8AJqIAQpAxAiEyAeQgAQvQMgA0HgAWogBCkDCCIUIB5CABC9AyADQdAAaiAEKQMAIhYgHkIAEL0DIANB8ANqIAMpA4AEIhdCAEKJx5mkrvCB6Yd/EL0DIANB4ANqIANB+ANqKQMAIhhCx/rzw+2Co5A8QgAQvQMgA0HQA2ogGEKNlcfDltLawJd/QgAQvQMgA0HAA2ogGELdsIWM6LaRqLh/QgAQvQMgA0GwA2ogGEKpwMaJrs6TsjBCABC9AyADQZAEaiAVIBpCABC9AyADQYADaiATIBpCABC9AyADQfABaiAUIBpCABC9AyADQeAAaiAWIBpCABC9AyADQeACaiADKQPQAyIgIANBiARqKQMAIhsgAykD8AJ8Ih98IhkgA0HoA2opAwAgFyADKQPgAyIYfCAYVK18fCIXIAMpA5AEfCIcQgBCiceZpK7wgemHfxC9AyADQdACaiADQegCaikDACIYQsf688PtgqOQPEIAEL0DIANBwAJqIBhCjZXHw5bS2sCXf0IAEL0DIANBsAJqIBhC3bCFjOi2kai4f0IAEL0DIANBoAJqIBhCqcDGia7Ok7IwQgAQvQMgA0GgBGogFSAdQgAQvQMgA0GQA2ogEyAdQgAQvQMgA0GAAmogFCAdQgAQvQMgA0HwAGogFiAdQgAQvQMgA0HQAWogA0GYBGopAwAgFyAcVq18IiMgAykDgAN8IiIgA0H4AmopAwAgGyAfVq18IiQgAykD4AF8IhsgAykDwAN8Ih8gFyAZVK0gA0HYA2opAwAgGSAgVK18fHwiJXwiGSADKQPAAnwiFyADQdgCaikDACADKQPQAiIYIBx8IBhUrXx8IhwgAykDoAR8IiBCAEKJx5mkrvCB6Yd/EL0DIANBwAFqIANB2AFqKQMAIhhCx/rzw+2Co5A8QgAQvQMgA0GwAWogGEKNlcfDltLawJd/QgAQvQMgA0GgAWogGELdsIWM6LaRqLh/QgAQvQMgA0GQAWogGEKpwMaJrs6TsjBCABC9AyADQbAEaiAVICFCABC9AyADQaADaiATICFCABC9AyADQZACaiAUICFCABC9AyADQYABaiAWICFCABC9AyADQUBrIANBqARqKQMAIBwgIFatfCImIAMpA5ADfCITIANB6AFqKQMAIBsgJFStfCIkIAMpA1B8IhQgAykDsAN8IhYgHyAlVq0gA0HIA2opAwAgGyAfVq18fHwiGCADKQPwAXwiGyAZICJUrSADQYgDaikDACAiICNUrXx8fCIiIAMpA7ACfCIfIBcgHFatIANByAJqKQMAIBcgGVStfHx8IiN8IhkgAykDsAF8IhcgA0HIAWopAwAgAykDwAEiFSAgfCAVVK18fCIcIAMpA7AEfCIgQgBCiceZpK7wgemHfxC9AyADQTBqIANByABqKQMAIhVCx/rzw+2Co5A8QgAQvQMgA0EgaiAVQo2Vx8OW0trAl39CABC9AyADQRBqIBVC3bCFjOi2kai4f0IAEL0DIAMgFUKpwMaJrs6TsjBCABC9AyADQQhqKQMAIANBmAFqKQMAIANBqAJqKQMAIBYgGFatIANBuANqKQMAIBQgFlatfHwgA0HYAGopAwAgFCAkVK18fCIkIAMpA2B8IhUgGyAiVq0gA0H4AWopAwAgGCAbVq18fHwiFCADKQOgAnwiFiAUVK18IBYgFiAfICNWrSADQbgCaikDACAfICJUrXx8fCIWVq18IBQgFVStIANB6ABqKQMAIBUgJFStfHx8IhggAykDcHwiFSADQYgCaikDACAWIAMpA4ACfCIUIBZUrXwgFCATIBlWrSADQZgDaikDACATICZUrXx8fCITIBRUrXx8IhQgAykDkAF8IhYgFFStfCAWIANBqAFqKQMAIBMgEyADKQOgAXwiE1atfCATIBcgHFatIANBuAFqKQMAIBcgGVStfHx8IhkgE1StfHwiEyAWVK18IBQgFVStIANB+ABqKQMAIBUgGFStfHx8IhcgAykDgAF8IhUgA0GYAmopAwAgEyATIAMpA5ACfCITVq18IBMgEyADQagDaikDACADQbgEaikDACAcICBWrXwiFiADKQOgA3wiFCAWVK18IBQgFCAZfCIUVq18fCITVq18fCIWIAMpAwB8IhggFlStfCAY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AykD8AchFCADKQP4ByEXIAMpA4AIIRggAykDiAghGSADIANB8AVqKQMAIAMpA+gFIg0gA0HgBWopAwAiDiADKQPIBXwiC0IBhiADKQPYBSIRQj+IhHwiDCANVK18IAwgA0GwBWopAwAiDSARQgGGfCIRIA1UrXwiEyAMVK18IhIgA0HQBWopAwAgCyAOVK18Ig4gAykDuAV8IgwgAykDiAZ8Ig1CAYYgC0I/iIR8IhUgElStIhIgAykDmAZ8IgsgA0HABWopAwAgDCAOVK18IhYgAykD+AV8Ig4gA0GQBmopAwAgDCANVq18fCIMQgGGIA1CP4iEfCINNwOICyADIAsgDVatIA8gCyASVK18fCINIAwgDlStIANBgAZqKQMAIA4gFlStfHwiDiADKQOoBnwiC0IBhiAMQj+IhHwiDDcDiAcgAyADKQO4BiIPIANBsAZqKQMAIAsgDlStfCIOQgGGIAtCP4iEfCILIAwgDVStfCIMNwOYByALIAxWrSADQcAGaikDACALIA9UrXx8IA5CP4h8IQ8gA0GQBWopAwAhDCADIANBoAVqKQMAIAMpA5gFIgsgEEJ9g3wgC1StfCINIAMpA4gFfCILIBF8Ig43A6AKIANBgAVqKQMAIRAgAyALIA5WrSAMIAsgDVStfHwiDCADKQP4BHwiCyATfCINNwPACiADQfAEaikDACEOIAMgCyANVq0gECALIAxUrXx8IgwgAykD6AR8IgsgFXwiDTcD4ApBACEBAkAgCyANVq0gDiALIAxUrXx8IgtQBEBBACECDAELIAMgCyADKQOIC3wiDDcDiAsgCyAMViICRQ0AIAMgAq0iCyADKQOIB3wiDDcDiAcgCyAMViECIAsgDFgNACADIAKtIgsgAykDmAd8Igw3A5gHIAsgDFYhAiALIAxYDQAgAq0iCyAPfCIPIAtUIQILIANB2ARqIAMpA6AKIgxCiceZpK7wgemHf34iC0LH+vPD7YKjkDxCABC9AyADQcgEaiALQo2Vx8OW0trAl39CABC9AyADQbgEaiALQt2whYzotpGouH9CABC9AyADQagEaiALQqnAxomuzpOyMEIAEL0DIAMgDCADKQPYBCILfCIMNwOgCiADQdAEaikDACENIAMgA0HgBGopAwAgCyAMVq18IgwgAykDyAR8IgsgAykDwAp8Ig43A8AKIANBwARqKQMAIRAgAyALIA5WrSANIAsgDFStfHwiDCADKQO4BHwiCyADKQPgCnwiDTcD4AogA0GwBGopAwAhDiADIAsgDVatIBAgCyAMVK18fCIMIAMpA6gEfCILIAMpA4gLfCINNwOICwJAIAsgDVatIA4gCyAMVK18fCILUA0AIAMgCyADKQOIB3wiDDcDiAcgCyAMViEBIAsgDFgNACADIAGtIgsgAykDmAd8Igw3A5gHIAsgDFYhASALIAxYDQAgAa0iCyAPfCIPIAtUIQELIANBmARqIAMpA8AKIgxCiceZpK7wgemHf34iC0LH+vPD7YKjkDxCABC9AyADQYgEaiALQo2Vx8OW0trAl39CABC9AyADQfgDaiALQt2whYzotpGouH9CABC9AyADQegDaiALQqnAxomuzpOyMEIAEL0DIAMgDCADKQOYBCILfCIMNwPACiADQZAEaikDACENIAMgA0GgBGopAwAgCyAMVq18IgwgAykDiAR8IgsgAykD4Ap8Ig43A+AKIANBgARqKQMAIRAgAyALIA5WrSANIAsgDFStfHwiDCADKQP4A3wiCyADKQOIC3wiDTcDiAsgA0HwA2opAwAhDiADIAsgDVatIBAgCyAMVK18fCIMIAMpA+gDfCILIAMpA4gHfCINNwOIByALIA1WrSAOIAsgDFStfHwiC1BFBEAgAyALIAMpA5gHfCIMNwOYByALIAxWIgStIgsgD3wiDCAPIAQbIQ8gBCALIAxWcSEECyADQdgDaiADKQPgCiIMQonHmaSu8IHph39+IgtCx/rzw+2Co5A8QgAQvQMgA0HIA2ogC0KNlcfDltLawJd/QgAQvQMgA0G4A2ogC0LdsIWM6LaRqLh/QgAQvQMgA0GoA2ogC0KpwMaJrs6TsjBCABC9AyADIAwgAykD2AMiC3wiDDcD4AogA0HQA2opAwAhDSADIANB4ANqKQMAIAsgDFatfCIMIAMpA8gDfCILIAMpA4gLfCIONwOICyADQcADaikDACEQIAMgCyAOVq0gDSALIAxUrXx8IgwgAykDuAN8IgsgAykDiAd8Ig03A4gHIANBsANqKQMAIQ4gAyALIA1WrSAQIAsgDFStfHwiDCADKQOoA3wiCyADKQOYB3wiDTcDmAcgCyANVq0gDiALIAxUrXx8IgsgD3wiDCAPIAtCAFIiBRshDwJAAkAgASACciAEciALIAxWIgGtIAsgBRtCAFJyIAEgBXEgD0KpwMaJrs6TsjBWcnINACAPQqnAxomuzpOyMFINASADKQOYByILQt2whYzotpGouH9WDQAgC0LdsIWM6LaRqLh/Ug0BIAMpA4gHIgtCjZXHw5bS2sCXf1YNACALQo2Vx8OW0trAl39SDQEgAykDiAtCxvrzw+2Co5A8WA0BCyADIAMpA4gLIgtCx/rzw+2Co5A8fTcDiAsgAyADKQOIByIMQvPquLzpraW/6AB8Ig0gC0LH+vPD7YKjkDxUrSILfTcDiAcgAyADKQOYByIOQqPP+vOXye7XxwB8IhAgDEKNlcfDltLawJd/VCALIA1Wcq0iC303A5gHIA8gDkLdsIWM6LaRqLh/VCALIBBWcq19QqnAxomuzpOyMH0hDwsgAyAPNwOACiADIAMpA5gHNwOICiADIAMpA4gHNwOQCiADIAMpA4gLNwOYCiADQbgCaiADKQPYBiILIAMpA+AGIgxCABC9AyADQagCaiADKQPQBiINIAxCABC9AyADQZgCaiADKQPIBiIOIAxCABC9AyADQegCaiANIAtCABC9AyADQdgCaiAOIAtCABC9AyADQYgDaiAOIA1CABC9AyADQYgCaiAMIAxCABC9AyADQcgCaiALIAtCABC9AyADQfgCaiANIA1CABC9AyADQZgDaiAOIA5CABC9AyADQfgBaiADKQOIAiIQQonHmaSu8IHph39+IgtCx/rzw+2Co5A8QgAQvQMgA0HoAWogC0KNlcfDltLawJd/QgAQvQMgA0HYAWogC0LdsIWM6LaRqLh/QgAQvQMgA0HIAWogC0KpwMaJrs6TsjBCABC9AyADQYADaikDACEPIAMgA0HQAmopAwAgAykDyAIiDSADQcACaikDACIOIAMpA6gCfCILQgGGIAMpA7gCIhFCP4iEfCIMIA1UrXwgDCADQZACaikDACINIBFCAYZ8IhEgDVStfCITIAxUrXwiEiADQbACaikDACALIA5UrXwiDiADKQOYAnwiDCADKQPoAnwiDUIBhiALQj+IhHwiFSASVK0iEiADKQP4AnwiCyADQaACaikDACAMIA5UrXwiFiADKQPYAnwiDiADQfACaikDACAMIA1WrXx8IgxCAYYgDUI/iIR8Ig03A4ALIAMgCyANVq0gDyALIBJU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3bCFjOi2kai4f1QgDSAUVnKtfUKpwMaJrs6TsjB9IQ8gEELH+vPD7YKjkDx9IRALIAMgEDcD+AogAyAMNwPwCiADIAs3A+gKIAMgDzcD4AogA0GACmogA0HgCmpBIBDQBAJAIAMoAqwHIgFFDQAgASABQQxsQRNqQXhxIgRqQQlqIgFFDQAgAygCqAcgBGsgARC5BAtFDQAgA0HACmoiAiADQcgGahC4ASADQQA2AugKIANCgICAgBA3AuAKIANBAzoAyAcgA0EgNgK4ByADQQA2AsQHIANBwOrAADYCwAcgA0EANgKwByADQQA2AqgHIAMgA0HgCmoiATYCvAcgAiADQagHaiICENkCDQIgA0GQB2ogA0HoCmooAgA2AgAgAyADKQLgCjcDiAcgASAGELgBIANBADYC6AkgA0KAgICAEDcC4AkgA0EDOgDIByADQSA2ArgHIANBADYCxAcgA0HA6sAANgLAByADQQA2ArAHIANBADYCqAcgAyADQeAJajYCvAcgASACENkCDQIgA0GgB2ogA0HoCWooAgA2AgAgAyADKQLgCTcDmAcgA0EDNgKkCiADQbztwAA2AqAKIANCAjcCrAogA0KAgICA4AciCyADQZgHaq2ENwOICiADIAsgA0GIB2qthDcDgAogAyADQYAKajYCqAogAEEEaiADQaAKahDdAiADKAKYByIBBEAgAygCnAcgARC5BAsgAygCiAciAQRAIAMoAowHIAEQuQQLIABBATYCAAwBCyAAIAMpA8gGNwMIIABBADYCACAAQUBrIANBgAdqKQMANwMAIABBOGogA0H4BmopAwA3AwAgAEEwaiADQfAGaikDADcDACAAQShqIANB6AZqKQMANwMAIABBIGogA0HgBmopAwA3AwAgAEEYaiADQdgGaikDADcDACAAQRBqIANB0AZqKQMANwMADAALIANBkAtqJAAPC0HY6sAAQTcgA0GIC2pBkOvAAEHs68AAEL4DAAu7LQIQfxl+IwBB8ARrIgMkACACKAIIIgpBBXQhBCACKAIEIg1BIGshBSAKIQkCQAJAAkACQANAIARFDQEgCUEBayEJIAQgBWogBEEgayEEQbDvwABBIBDQBEUNAAsgCUEBaiEPIAlBf3MhEiABKAIIIgZBBXQhBCABKAIEIRAgBiEFA0AgBARAIAVBAWshBSAEQSBr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vQMgA0GgAWogJSAdQgAQvQMgA0FAayAkIB1CABC9AyADQfAAaiADQdgCaikDACAWIBtUrXwiFyADKQPwAXwiJyAmIANB6AFqKQMAIBQgFVStfCIVIAMpA4ABfCIafCIZIBsgIlStIANBqAJqKQMAIiogIiAmVK18fHwiFHwiGCADKQPAASIrfCIcIANB2AFqKQMAIAMpA9ABIhMgFnwgE1StfHwiHiADKQPgAnwiI0Kx6pSR3aOCnFh+IhNCr/j//29CABC9AyADQeAAaiATQn9CABC9AyADQfACaiAoICBCABC9AyADQZACaiApICBCABC9AyADQbABaiAlICBCABC9AyADQdAAaiAkICBCABC9AyADQRBqIANB6AJqKQMAIB4gI1atfCIWIAMpA4ACfCIoICsgJiADQYgBaikDACAVIBpWrXwiFSADKQMgfCIifCIbIBQgGVStICogGSAaVK18fHwiKSADKQOQAXwiGSAYICdUrSADQfgBaikDACAXICdWrXx8fCIlfCIaIBwgHlatIANByAFqKQMAIhcgGCAcVq18fHwiFHwiJCADKQNgIhx8Ih4gA0H4AGopAwAgAykDcCITICN8IBNUrXx8IiYgAykD8AJ8IidCseqUkd2jgpxYfiITQq/4//9vQgAQvQMgAyATQn9CABC9AwJAAkAgA0EIaikDACIYIANB6ABqKQMAIiMgHCAXICsgGyApVq0gKiAbICJUrXx8IhMgA0EoaikDACAVICJWrXx8IiIgAykDMHwiGyAZICVWrSADQZgBaikDACAZIClUrXx8fCIZfCIVIBlUrXwgFSAUIBpUrSAXIBogJVStfHx8IhQgFVStfCIXIBkgG1StIANBOGopAwAgGyAiVK18fCIVIBMgIlatfCITfCIaIAMpA0B8IhsgA0GoAWopAwAgFCAUIAMpA6ABfCIUVq18IBQgFCAkIChUrSADQYgCaikDACAWIChWrXx8fCIUVq18fCIZfCIWIBlUrXwgFiAWICMgFCAUIBx8IhRWrXwgFCAUIB4gJlatICMgHiAkVK18fHwiFFatfHwiFlatfCIjIBkgG1StIANByABqKQMAIBogG1atfHwiIiAXIBpWrSATIBVUrXx8Iht8IhwgAykDUHwiHiADQbgBaikDACAWIBYgAykDsAF8IhZWrXwgFiADQZgCaikDACAD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KCAfQgAQvQMgA0GgAWogBikDCCInIB9CABC9AyADQTBqIAYpAwAiJSAfQgAQvQMgA0HwAmogAykDgAMiFkKblK/D8rWo3oZ/fiITQm1CABC9AyADQeACaiATQn9CABC9AyADQdACaiATQv///////////wBCABC9AyADQZADaiAqIB5CABC9AyADQaACaiAoIB5CABC9AyADQbABaiAnIB5CABC9AyADQUBrICUgHkIAEL0DIANBgAJqIAMpA+ACIh0gA0GIA2opAwAiFSADKQOQAnwiFHwiHCADQfgCaikDACAWIAMpA/ACIhN8IBNUrXx8IhYgAykDkAN8IhpCm5Svw/K1qN6Gf34iE0JtQgAQvQMgA0HwAWogE0J/QgAQvQMgA0HgAWogE0L///////////8AQgAQvQMgA0GgA2ogKiAgQgAQvQMgA0GwAmogKCAgQgAQvQMgA0HAAWogJyAgQgAQvQMgA0HQAGogJSAgQgAQvQMgA0GQAWogA0GYA2opAwAgFiAaVq18IhcgAykDoAJ8IikgHSADQZgCaikDACAUIBVUrXwiGCADKQOgAXwiIXwiGyAWIBxUrSADQegCaikDACIWIBwgHVStfHx8IhV8IiMgAykD8AEiFHwiJCADQYgCaikDACADKQOAAiITIBp8IBNUrXx8IhkgAykDoAN8IiZCm5Svw/K1qN6Gf34iE0JtQgAQvQMgA0GAAWogE0J/QgAQvQMgA0HwAGogE0L///////////8AQgAQvQMgA0GwA2ogKiAiQgAQvQMgA0HAAmogKCAiQgAQvQMgA0HQAWogJyAiQgAQvQMgA0HgAGogJSAiQgAQvQMgA0EgaiADQagDaikDACAZICZWrXwiGiADKQOwAnwiJyAUIANBqAFqKQMAIBggIVatfCIYIAMpAzB8Ih0gAykD0AJ8IhwgFSAbVK0gFiAbICFUrXx8fCIlIAMpA7ABfCIbICMgKVStIANBqAJqKQMAIBcgKVatfHx8IiF8IhcgGSAkVK0gA0H4AWopAwAiFiAjICRWrXx8fCIVfCIjIAMpA4ABIhR8IhkgA0GYAWopAwAgAykDkAEiEyAmfCATVK18fCIkIAMpA7ADfCImQpuUr8Pytajehn9+IhNCbUIAEL0DIANBEGogE0J/QgAQvQMgAyATQv///////////wBCABC9AyAD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ABpBIEEIELAEIgRFDQEgBEEYakGAhcAAKQMANwMAIARBEGpB+ITAACkDADcDACAEQQhqQfCEwAApAwA3AwAgBEHohMAAKQMANwMAIANBADoAMCADIARBIGo2AiwgAyAENgIoIANBwARqIANBKGoQswIgAygCyAQiAUECTwRAIAFBAXYhBSADKALEBCICIAFBBXRqQSBrIQEDQCACKQMAIRAgAiABKQMANwMAIAJBGGoiBikDACESIAYgAUEYaiIGKQMANwMAIAJBEGoiBykDACERIAcgAUEQaiIHKQMANwMAIAJBCGoiCCkDACETIAggAUEIaiIIKQMANwMAIAEgEDcDACAGIBI3AwAgByARNwMAIAggEzcDACABQSBrIQEgAkEgaiECIAVBAWsiBQ0ACwsgCSADKQLABDcCACAJQQhqIANByARqKAIANgIAIARBIBC5BCADQQE2AqgEIAMgCTYCpAQgA0EBNgKgBCAAIANBoARqEKECDAULDAULDAULQdm+wgAtAAAaAkBBDEEEELAEIgkEQEHZvsIALQAAGkHAAEEIELAEIgRFDQECfiACQajVwQBBIBDQBARAQo2Vx8OW0trAl38gAikDECIQfSISIAIpAxgiEULH+vPD7YKjkDxWrSITfSEVQt2whYzotpGouH8gAikDCCIUfSIWIBIgE1QgEEKNlcfDltLawJd/VnKtIhB9IRNCx/rzw+2Co5A8IBF9IRFCqcDGia7Ok7IwIAIpAwAgECAWViAUQt2whYzotpGouH9Wcq18fQwBCyACKQMYIREgAikDECEVIAIpAwghEyACKQMACyESIAQgETcDGCAEIBU3AxAgBCATNwMIIAQgEjcDACAEQeiEwAApAwA3AyAgBEEoakHwhMAAKQMANwMAIARBMGpB+ITAACkDADcDACAEQThqQYCFwAApAwA3AwAgA0EAOgAwIAMgBEFAazYCLCADIAQ2AiggA0HABGogA0EoahCzAiADKALIBCIBQQJPBEAgAUEBdiEFIAMoAsQEIgIgAUEFdGpBIGshAQNAIAIpAwAhECACIAEpAwA3AwAgAkEYaiIGKQMAIRIgBiABQRhqIgYpAwA3AwAgAkEQaiIHKQMAIREgByABQRBqIgcpAwA3AwAgAkEIaiIIKQMAIRMgCCABQQhqIggpAwA3AwAgASAQNwMAIAYgEjcDACAHIBE3AwAgCCATNwMAIAFBIGshASACQSBqIQIgBUEBayIFDQALCyAJIAMpAsAENwIAIAlBCGogA0HIBGooAgA2AgAgBEHAABC5BCADQQE2AqgEIAMgCTYCpAQgA0EBNgKgBCAAIANBoARqEKECDAQLDAQLDAULIAFBIGohBQJAAkACQAJAAn4CQAJAAkACQCABIAJBIBDQBA0AIAUgAkEgakEgENAEDQAgA0LX0bSFldXyi/oANwPYBCADQrnD1Iqur7C1HzcD0AQgA0KEpa/L5sn6pTM3A8gEIANCjrve8Mzo2Y8qNwPABCADQUBrIgIgAUEYaiIEKQMANwMAIANBOGoiCSABQRBqIgYpAwA3AwAgA0EwaiIHIAFBCGoiCCkDADcDACADIAEpAwA3AyggA0GgBGoiCyADQcAEaiIMIANBKGoiChCCASACIAQpAwA3AwAgCSAGKQMANwMAIAcgCCkDADcDACADIAEpAwA3AyggDCALIAoQggEgChDjAkKpwMaJrs6TsjAhFCADKQPIBCISIAMpA1h8IhAgElQgECADKQPQBCIRIAMpA2B8IhIgEVQgEiASIAMpA9gEIhEgAykDaHwiEyARVK18IhJWcq18IhEgEFRyrSADKQPABCADKQNQfHwiFSEQAkAgFUKpwMaJrs6TsjBSDQBC3bCFjOi2kai4fyEUIBEiEELdsIWM6LaRqLh/Ug0AQo2Vx8OW0trAl38hFCASIhBCjZXHw5bS2sCXf1INAELH+vPD7YKjkDwhFCATIhBCx/rzw+2Co5A8UQ0CCyAQIBRaDQEgESEUIBIhEAwCCyADQShqIgQgAhDcAiABIARBIBDQBEUEQCAFIANByABqQSAQ0ARFDQULIANBmANqIAJBGGoiBikDADcDACADQZADaiACQRBqIgcpAwA3AwAgA0GIA2ogAkEIaiIIKQMANwMAIAMgAikDADcDgAMgA0G4BGogAkE4aiIEKQMANwMAIANBsARqIAJBMGoiCSkDADcDACADQagEaiACQShqIgopAwA3AwAgAyACKQMgNwOgBCADQdgEaiILIAVBGGopAwA3AwAgA0HQBGoiDSAFQRBqKQMANwMAIANByARqIg4gBUEIaikDADcDACADIAUpAwA3A8AEIANBQGsiBSAEKQMANwMAIANBOGoiBCAJKQMANwMAIANBMGoi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IBE3AwAgCCATNwMAIAFBIGshASACQSBqIQIgBUEBayIFDQALCyAEQcAAELkEQdm+wgAtAAAaQSBBCBCwBCIERQ0JIARBGGpBgIXAACkDADcDACAEQRBqQfiEwAApAwA3AwAgBEEIakHwhMAAKQMANwMAIARB6ITAACkDADcDACADQQA6ADAgAyAEQSBqNgIsIAMgBDYCKCADQcAEaiADQShqELMCIAMoAsgEIgFBAk8EQCABQQF2IQUgAygCxAQiAiABQQV0akEgayEBA0AgAikDACEQIAIgASkDADcDACACQRhqIgYpAwAhEiAGIAFBGGoiBikDADcDACACQRBqIgcpAwAhESAHIAFBEGoiBykDADcDACACQQhqIggpAwAhEyAIIAFBCGoiCCkDADcDACABIBA3AwAgBiASNwMAIAcgETcDACAIIBM3AwAgAUEgayEBIAJBIGohAiAFQQFrIgUNAAsLIAlBDGoiASADKQLABDcCACABQQhqIANByARqKAIANgIAIARBIBC5BCAJQQhqIANBjAVqKAIANgIAIAkgAykChAU3AgAgA0ECNgIwIAMgCTYCLCADQQI2AiggACADQShqEKECDAcLIAMpA5gEIREgAykDkAQhFSADKQOIBCETIAMpA4AECyESIANBQGsgA0G4A2opAwA3AwAgA0E4aiADQbADaikDADcDACADQTBqIANBqANqKQMANwMAIAMgAykDoAM3AyggBAJ+IANBKGpBqNXBAEEgENAEBEBCjZXHw5bS2sCXfyADKQM4IhB9IhYgAykDQCIXQsf688PtgqOQPFatIhh9IRRC3bCFjOi2kai4fyADKQMwIhl9IhogFiAYVCAQQo2Vx8OW0trAl39Wcq0iFn0hEELH+vPD7YKjkDwgF30hF0KpwMaJrs6TsjAgAykDKCAWIBpWIBlC3bCFjOi2kai4f1ZyrXx9DAELIAMpA0AhFyADKQM4IRQgAykDMCEQIAMpAygLNwMgIARBOGogFzcDACAEQTBqIBQ3AwAgBEEoaiAQNwMAIAQgETcDGCAEIBU3AxAgBCATNwMIIAQgEjcDACADQQA6ADAgAyAEQUBrNgIsIAMgBDYCKCADQdQFaiADQShqELMCIAMoAtwFIgFBAk8EQCABQQF2IQUgAygC2AUiAiABQQV0akEgayEBA0AgAikDACEQIAIgASkDADcDACACQRhqIgYpAwAhEiAGIAFBGGoiBikDADcDACACQRBqIgcpAwAhESAHIAFBEGoiBykDADcDACACQQhqIggpAwAhEyAIIAFBCGoiCCkDADcDACABIBA3AwAgBiASNwMAIAcgETcDACAIIBM3AwAgAUEgayEBIAJBIGohAiAFQQFrIgUNAAsLIARBwAAQuQRB2b7CAC0AABpBIEEIELAEIgRFDQcgBEEYakGAhcAAKQMANwMAIARBEGpB+ITAACkDADcDACAEQQhqQfCEwAApAwA3AwAgBEHohMAAKQMANwMAIANBADoAMCADIARBIGo2AiwgAyAENgIoIANBwARqIANBKGoQswIgAygCyAQiAUECTwRAIAFBAXYhBSADKALEBCICIAFBBXRqQSBrIQEDQCACKQMAIRAgAiABKQMANwMAIAJBGGoiBikDACESIAYgAUEYaiIGKQMANwMAIAJBEGoiBykDACERIAcgAUEQaiIHKQMANwMAIAJBCGoiCCkDACETIAggAUEIaiIIKQMANwMAIAEgEDcDACAGIBI3AwAgByARNwMAIAggEzcDACABQSBrIQEgAkEgaiECIAVBAWsiBQ0ACwsgCUEMaiIBIAMpAsAENwIAIAFBCGogA0HIBGooAgA2AgAgBEEgELkEIAlBCGogA0HcBWooAgA2AgAgCSADKQLUBTcCACADQQI2AjAgAyAJNgIsIANBAjYCKCAAIANBKGoQoQIMBQtB2b7CAC0AABpBDEEEELAEIglFDQVB2b7CAC0AABpBwABBCBCwBCIERQ0CAn4gAUGo1cEAQSAQ0AQEQEKNlcfDltLawJd/IAEpAxAiEH0iEiABKQMYIhFCx/rzw+2Co5A8Vq0iE30hFULdsIWM6LaRqLh/IAEpAwgiFH0iFiASIBNUIBBCjZXHw5bS2sCXf1ZyrSIQfSETQsf688PtgqOQPCARfSERQqnAxomuzpOyMCABKQMAIBAgFlYgFELdsIWM6LaRqLh/VnKtfH0MAQsgASkDGCERIAEpAxAhFSABKQMIIRMgASkDAAshEiAEIBE3AxggBCAVNwMQIAQgEzcDCCAEIBI3AwAgBEHohMAAKQMANwMgIARBKGpB8ITAACkDADcDACAEQTBqQfiEwAApAwA3AwAgBEE4akGAhcAAKQMANwMAIANBADoAMCADIARBQGs2AiwgAyAENgIoIANBwARqIANBKGoQswIgAygCyAQiAUECTwRAIAFBAXYhBSADKALEBCICIAFBBXRqQSBrIQEDQCACKQMAIRAgAiABKQMANwMAIAJBGGoiBikDACESIAYgAUEYaiIGKQMANwMAIAJBEGoiBykDACERIAcgAUEQaiIHKQMANwMAIAJBCGoiCCkDACETIAggAUEIaiIIKQMANwMAIAEgEDcDACAGIBI3AwAgByARNwMAIAggEzcDACABQSBrIQEgAkEgaiECIAVBAWsiBQ0ACwsgCSADKQLABDcCACAJQQhqIANByARqKAIANgIAIARBwAAQuQQgA0EBNgKoBCADIAk2AqQEIANBATYCoAQgACADQaAEahChAgwEC0EEQRgQygQAC0EEQRgQygQACwwEC0HZvsIALQAAGkEMQQQQsAQiCUUNAUHZvsIALQAAGkHAAEEIELAEIgRFDQMCfiABQajVwQBBIBDQBARAQo2Vx8OW0trAl38gASkDECIQfSISIAEpAxgiEULH+vPD7YKjkDxWrSITfSEVQt2whYzotpGouH8gASkDCCIUfSIWIBIgE1QgEEKNlcfDltLawJd/VnKtIhB9IRNCx/rzw+2Co5A8IBF9IRFCqcDGia7Ok7IwIAEpAwAgECAWViAUQt2whYzotpGouH9Wcq18fQwBCyABKQMYIREgASkDECEVIAEpAwghEyABKQMACyESIAQgETcDGCAEIBU3AxAgBCATNwMIIAQgEjcDACAEQeiEwAApAwA3AyAgBEEoakHwhMAAKQMANwMAIARBMGpB+ITAACkDADcDACAEQThqQYCFwAApAwA3AwAgA0EAOgAwIAMgBEFAazYCLCADIAQ2AiggA0HABGogA0EoahCzAiADKALIBCIBQQJPBEAgAUEBdiEFIAMoAsQEIgIgAUEFdGpBIGshAQNAIAIpAwAhECACIAEpAwA3AwAgAkEYaiIGKQMAIRIgBiABQRhqIgYpAwA3AwAgAkEQaiIHKQMAIREgByABQRBqIgcpAwA3AwAgAkEIaiIIKQMAIRMgCCABQQhqIggpAwA3AwAgASAQNwMAIAYgEjcDACAHIBE3AwAgCCATNwMAIAFBIGshASACQSBqIQIgBUEBayIFDQALCyAJIAMpAsAENwIAIAlBCGogA0HIBGooAgA2AgAgBEHA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BCAIaiIRIAQgEGoiDikDADcDACARQRhqIA5BGGopAwA3AwAgEUEQaiAOQRBqKQMANwMAIBFBCGogDkEIaikDADcDACAEQSBqIQQgB0EBayIHDQALCyADIAY2AswCIAMgCDYCyAIgAyAGNgLEAgJAAkAgBSAJTgRAIAUgCWtBAWohDgJAIAkgBWtBAUYEQEEIIQsMAQsgDkEFdCEEIA5B////H0sEQEEAIQcMBAtB2b7CAC0AABpBCCEHIARBCBCwBCILRQ0DIAshBCAFIAlHBEAgBUEBaiEHA0AgBEIANwMAIARBGGpCADcDACAEQRBqQgA3AwAgBEEIakIANwMAIARBIGohBCAPIAdBAWsiB0cNAAsLIARCADcDACAEQRhqQgA3AwAgBEEQakIANwMAIARBCGpCADcDAAsgCkEFdCEEAkACQAJAAkADQCAERQ0BIApBAWshCiAEQSBrIgQgDWoiDEGw78AAQSAQ0ARFDQALIApBAEgNACADQegCaiAMQRhqIgopAwA3AwAgA0HgAmogDEEQaiIHKQMANwMAIANB2AJqIAxBCGoiBCkDADcDACADIAwpAwA3A9ACIANB0AJqQbDvwABBIBDQBEUNAyADQZADakIANwMAIANBiANqQgA3AwAgA0IANwOAAyADQgE3A5gDIANBuANqIAopAwA3AwAgA0GwA2ogBykDADcDACADQagDaiAEKQMANwMAIAMgDCkDADcDoAMgA0HYA2pByPDAACkDADcDACADQdADakHA8MAAKQMANwMAIANByANqQbjwwAApAwA3AwAgA0Gw8MAAKQMANwPAAwJAIANBoANqIANBgANqQSAQ0ARFBEBCAyEjQv////+/fyEcQn4hHUL9////zwAhJAwBC0IDISNC/////79/IRxCfiEdQv3////PACEkIAMpA7gDIRUgAykDoAMhHiADKQOoAyEWIAMpA7ADIR9CfyETQoGAgIBwISZC/////w8hIANAIANBwANqIANBgANqQSAQ0ARFBEAgIiEkIBkhHSAUIRwgGiEjDAILIBWnQQFxRQRAA0AgH0I/hiAVQgGIhCEVAkAgI6dBAXFFBEAgJEI/hiAcQj+GICNCAYiEISMgJEIBiCEkIB1CP4YgHEIBiIQhHCAdQgGIhCEdDAELICRC/////w99IiUgHSAcQoCAgIAQfCIhUCAc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fCIeIAMpA/ABfCIhIBogG1StfCImIAMpA3B8IhQgEyAiVK0gA0HIAWopAwAgGiAiVq18fHwiFnwiGiADKQPQAXwiGyADQagCaikDACAfICVWrXx8Ihd8IhkgAykDsAJ8IihCgYCAgHBCABC9AyADQQhqKQMAIANB6AFqKQMAIANBuAJqKQMAIBkgKFatfCITIAMpA+ABfCIfIBNUrXwgHyAXIBtUrSADQdgBaikDACAaIBtWrXx8IiIgAykDgAF8IikgGCAaVq0iGyADKQOgAXwiGiAhICZWrSADQfgBaikDACAeICFWrXx8IhggA0EYaikDACAVIB5WrXx8Ih4gAykDIHwiISAUIBZWrSADQfgAaikDACAUICZUrXx8fCIVfCIWfCIUIBkgIFStICVCIIh8fCIXfCITIB9UrXwiGSADKQOQAXwiJyAUIBdWrSIfIAMpA1B8IiUgFiAaVK0gA0GoAWopAwAgGiAbVK18fCIaIBUgIVStIANBKGopAwAgHiAhVq18fCIgIBggHlatfCIbfCImIAMpAzB8Ih4gFCApVK0gA0GIAWopAwAgIiApVq18fHwiGHwiFnwiISATIChCIIYiE3wiFSATVK0gKEIgiHx8IhcgIVStIhMgAykDAHwiFCATVK18IBQgFiAlVK0gA0HYAGopAwAgHyAlVq18fCIiIBggHlStIANBOGopAwAgHiAmVK18fCIfIBogJlatIBsgIFStfHwiIHwiGiADKQNAfCIYICEgJ1StIANBmAFqKQMAIBkgJ1atfHx8IhN8IhYgFFStfCIbIBMgGFStIANByABqKQMAIBggGlStfHwiGCAaICJUrSAfICBWrXx8IhN8IhRCgYCAgHBWIBQgG1StQgAgEyAYVK19UnINAQJAAkAgFEKBgICAcFEEQCAWQgBSIBdC/////w9Wcg0EQgAhHiAXQv////8PWg0BIBchEwwCCyAXIRMgFiEeDAQLQv////8PIRMgFUJ/UQ0CC0KBgICAcCEUDAILIAUgBkHM9MAAENYDAAsgF0L/////D30iGyAVQn9SrSIYfSETIBYgF0L/////D1QgGCAbVnKtIhd9IR4gFCAWIBdUrX1C/////w98IRQgFUIBfCEVCyAOIAUgD2oiBksEQCALIAZBBXQiDWoiBCAVNwMYIAQgEzcDECAEIB43AwggBCAUNwMA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IAQgAiADWq19QqnAxomuzpOyMH03A5gBCyAcIBwpA6ABIgIgGykDoAF8Igc3A6ABIBwgAiAHVq0iAiAbKQOoAXwiAyAcKQOoAXwiBTcDqAEgHCACIANWrSADIAVWrXwiAiAbKQOwAXwiAyAcKQOwAXwiBjcDsAEgHCAcKQO4ASAbKQO4ASACIANWrSADIAZWrXx8fCIENwO4AQJAIARCqcDGia7Ok7IwVA0AAkAgBEKpwMaJrs6TsjBSDQAgBkLdsIWM6LaRqLh/VA0BIAZC3bCFjOi2kai4f1INACAFQo2Vx8OW0trAl39UDQEgB0LG+vPD7YKjkDxWDQAgBUKNlcfDltLawJd/UQ0BCyAcIAdCx/rzw+2Co5A8fTcDoAEgHCAFQvLquLzpraW/6ABC8+q4vOmtpb/oACAHQsf688PtgqOQPFQbfCICNwOoASAcQqLP+vOXye7XxwBCo8/685fJ7tfHACACIAVaGyIDIAZ8IgI3A7ABIBwgBCACIANarX1CqcDGia7Ok7IwfTcDuAELIBtBoAVqJAAL/S4CD38bfiMAQaAIayICJAACQAJAIAEoAggiBkECTwRAAkAgBkEBayIHQTBsIgpBAEggB0Gq1aoVS3INAEHZvsIALQAAGkEIIQMgCkEIELAEIglFDQAgCSEDAkAgB0EBRg0AIAZBAmsiBUEHcSEEIAZBA2tBB08EQCAFQXhxIQUDQCADQgA3AwAgA0EoakIANwMAIANBIGpCADcDACADQRhqQgA3AwAgA0EQakIANwMAIANBCGpCADcDACADQTBqQgA3AwAgA0E4akIANwMAIANBQGtCADcDACADQcgAakIANwMAIANB0ABqQgA3AwAgA0HYAGpCADcDACADQeAAakIANwMAIANB6ABqQgA3AwAgA0HwAGpCADcDACADQfgAakIANwMAIANBgAFqQgA3AwAgA0GIAWpCADcDACADQbgBakIANwMAIANBsAFqQgA3AwAgA0GoAWpCADcDACADQaABakIANwMAIANBmAFqQgA3AwAgA0GQAWpCADcDACADQcABakIANwMAIANByAFqQgA3AwAgA0HQAWpCADcDACADQdgBakIANwMAIANB4AFqQgA3AwAgA0HoAWpCADcDACADQfABakIANwMAIANB+AFqQgA3AwAgA0GAAmpCADcDACADQYgCakIANwMAIANBkAJqQgA3AwAgA0GYAmpCADcDACADQcgCakIANwMAIANBwAJqQgA3AwAgA0G4AmpCADcDACADQbACakIANwMAIANBqAJqQgA3AwAgA0GgAmpCADcDACADQfgCakIANwMAIANB8AJqQgA3AwAgA0HoAmpCADcDACADQeACakIANwMAIANB2AJqQgA3AwAgA0HQAmpCADcDACADQYADaiEDIAVBCGsiBQ0ACwsgBEUNAANAIANCADcDACADQShqQgA3AwAgA0EgakIANwMAIANBGGpCADcDACADQRBqQgA3AwAgA0EIakIANwMAIANBMGohAyAEQQFrIgQNAAsLIANCADcDACADQShqQgA3AwAgA0EgakIANwMAIANBGGpCADcDACADQRBqQgA3AwAgA0EIakIANwMAIAEoAgQiAyAGQTBsaiEIQQAhAUEBIQVBACEEA0ACQCABQQFxBEAgAyAIRw0BDAULIAggA2tBMG4gBU0NBCAEIAVqIQQgAyAFQTBsaiEDCyACQcgHaiAErSISQsau0OHB5sfvdEIAEL0DIAJBuAdqIAIpA8gHQn6DIhhCAEL9//P/z///+Yl/EL0DIAJBqAdqIAJBwAdqKQMAIhFCq9X+////v/+5f0IAEL0DIAJBmAdqIBFC///Piuv//9UeQgAQvQMgAkGIB2ogEUKk7MO1j9S0mOcAQgAQvQMgAkH4BmogEUK/pZScz/DSu+QAQgAQvQMgAkHoBmogEULX2a6a5PbpjcsAQgAQvQMgAkHYBmogEUKazf/Lo73EgBpCABC9AyACQcgGaiASQvGJxM7g1Lm7CkIAEL0DIAJBuAZqIAIpA8gGIhMgAikDmAciFiACQdAHaikDAHwiFCACQbAHaikDACACKQOoByIRIBh8IBFUrXx8IhV8IhhCAEL9//P/z///+Yl/EL0DIAJBqAZqIAJBwAZqKQMAIhFCq9X+////v/+5f0IAEL0DIAJBmAZqIBFC///Piuv//9UeQgAQvQMgAkGIBmogEUKk7MO1j9S0mOcAQgAQvQMgAkH4BWogEUK/pZScz/DSu+QAQgAQvQMgAkHoBWogEULX2a6a5PbpjcsAQgAQvQMgAkHYBWogEUKazf/Lo73EgBpCABC9AyACQcgFaiASQtXt1uTE7dHyjX9CABC9AyACQbgFaiACKQPIBSIXIAIpA5gGIhogAkHQBmopAwAgEyAYVq18IhMgAikDiAciGSAUIBVWrSACQaAHaikDACAUIBZUrXx8fCIWfCIVfCIUIAJBsAZqKQMAIAIpA6gGIhEgGHwgEVStfHwiG3wiGEIAQv3/8//P///5iX8QvQMgAkGoBWogAkHABWopAwAiEUKr1f7///+//7l/QgAQvQMgAkGYBWogEUL//8+K6///1R5CABC9AyACQYgFaiARQqTsw7WP1LSY5wBCABC9AyACQfgEaiARQr+llJzP8NK75ABCABC9AyACQegEaiARQtfZrprk9umNywBCABC9AyACQdgEaiARQprN/8ujvcSAGkIAEL0DIAJByARqIBJCwIf2nJmV4vXnAEIAEL0DIAJBuARqIAIpA8gEIhwgAikDmAUiHSACQdAFaikDACAXIBhWrXwiFyATIBVWrSIVIAIpA/gGIh4gAkGQB2opAwAgFiAZVK18fCIZfCITIAIpA4gGfCIWIBQgG1atIAJBoAZqKQMAIBQgGlStfHx8Ihp8Iht8IhQgAkGwBWopAwAgAikDqAUiESAYfCARVK18fCIffCIYQgBC/f/z/8////mJfxC9AyACQagEaiACQcAEaikDACIRQqvV/v///7//uX9CABC9AyACQZgEaiARQv//z4rr///VHkIAEL0DIAJBiARqIBFCpOzDtY/UtJjnAEIAEL0DIAJB+ANqIBFCv6WUnM/w0rvkAEIAEL0DIAJB6ANqIBFC19mumuT26Y3LAEIAEL0DIAJB2ANqIBFCms3/y6O9xIAaQgAQvQMgAkHIA2ogEkKtquao29DPvJp/QgAQvQMgAkG4A2ogAikDyAMiICACKQOYBCIhIAJB0ARqKQMAIBggHFStfCIcIBcgG1atIhsgEyAVVK0iIiACKQPoBiIjIAJBgAdqKQMAIBkgHlStfHwiGXwiFSACKQP4BXwiFyAWIBpWrSACQZAGaikDACATIBZWrXx8fCIefCITIAIpA4gFfCIWIBQgH1atIAJBoAVqKQMAIBQgHVStfHx8Ih18Ihp8IhQgAkGwBGopAwAgAikDqAQiESAYfCARVK18fCIffCIYQgBC/f/z/8////mJfxC9AyACQagDaiACQcADaikDACIRQqvV/v///7//uX9CABC9AyACQZgDaiARQv//z4rr///VHkIAEL0DIAJBiANqIBFCpOzDtY/UtJjnAEIAEL0DIAJB+AJqIBFCv6WUnM/w0rvkAEIAEL0DIAJB6AJqIBFC19mumuT26Y3LAEIAEL0DIAJB2AJqIBFCms3/y6O9xIAaQgAQvQMgAkHIAmogEkKqx6uW2fyjzBFCABC9AyACQbgCaiACKQPIAiIkIAIpA5gDIiUgAkHQA2opAwAgGCAgVK18IiAgGiAcVK0iHCATIBtUrSIbIBUgIlStIiIgAikD2AYiJiACQfAGaikDACAZICNUrXx8Ihl8IhEgAikD6AV8IhogFyAeVq0gAkGABmopAwAgFSAXVq18fHwiHnwiFSACKQP4BHwiFyAWIB1WrSACQZAFaikDACATIBZWrXx8fCIdfCITIAIpA4gEfCIWIBQgH1atIAJBoARqKQMAIBQgIVStfHx8Ih98IiF8IhQgAkGwA2opAwAgAikDqAMiEiAYfCASVK18fCIjfCIYQgBC/f/z/8////mJfxC9AyACQagCaiACQcACaikDACISQqvV/v///7//uX9CABC9AyACQZgCaiASQv//z4rr///VHkIAEL0DIAJBiAJqIBJCpOzDtY/UtJjnAEIAEL0DIAJB+AFqIBJCv6WUnM/w0rvkAEIAEL0DIAJB6AFqIBJC19mumuT26Y3LAEIAEL0DIAJB2AFqIBJCms3/y6O9xIAaQgAQvQMCQCACQeABaikDACACKQPYASInIAJB4AJqKQMAIAIpA9gCIiggAkHgA2opAwAgAikD2AMiKSACQeAEaikDACACKQPYBCIqIAJB4AVqKQMAIAIpA9gFIisgESAiVK0gAkHgBmopAwAgGSAmVK18fHwiEiArVK18IBIgEiAaIB5WrSACQfAFaikDACARIBpWrXx8fCISVq18IBUgG1StIhEgEnwiEiARVK18fCIRICpUrXwgESARIAJB8ARqKQMAIBIgEiACKQPoBHwiElatfCASIBIgFyAdVq0gAkGABWopAwAgFSAXVq18fHwiElatfHwiEVatfCARIBMgHFStIhEgEnwiEiARVK0iFXwiESAVVK18fCIVIClUrXwgFSACQfADaikDACARIBEgAikD6AN8IhFWrXwgESARIAJBgARqKQMAIBIgEiACKQP4A3wiElatfCASIBIgFiAfVq0gAkGQBGopAwAgEyAWVq18fHwiElatfHwiEVatfHwiEyAVVK18IBMgESAgICFWrSIRIBJ8IhIgEVStIhN8IhEgE1StIhZ8IhMgFlStfHwiFiAoVK18IBYgAkHwAmopAwAgEyATIAIpA+gCfCITVq18IBMgAkGAA2opAwAgESARIAIpA/gCfCIRVq18IBEgESACQZADaikDACASIBIgAikDiAN8IhJWrXwgEiASIBQgI1atIAJBoANqKQMAIBQgJVStfHx8IhJWrXx8IhFWrXx8IhQgE1StfHwiEyAWVK18IBMgFCARIBIgAkHQAmopAwAgGCAkVK18IhJ8IhMgElStIhF8IhIgEVStIhR8IhEgFFStIhZ8IhQgFlStfHwiFiAnVK18IBYgAkHwAWopAwAgFCAUIAIpA+gBfCIUVq18IBQgAkGAAmopAwAgESARIAIpA/gBfCIRVq18IBEgAkGQAmopAwAgEiASIAIpA4gCfCISVq18IBIgAkGgAmopAwAgAikDmAIiFSATfCITIBVUrXwgEyATIAJBsAJqKQMAIBggAikDqAIiGHwgGFStfHwiE1atfHwiFSASVK18fCIaIBFUrXx8IhkgFFStfHwiFyAWVK18IhRCms3/y6O9xIAaUg0AAkAgF0LX2a6a5PbpjcsAVg0AQprN/8ujvcSAGiEUIBdC19mumuT26Y3LAFINASAZQr+llJzP8NK75ABWDQAgGUK/pZScz/DSu+QAUgRAQtfZrprk9umNywAhFwwCCyAaQqTsw7WP1LSY5wBWDQAgGkKk7MO1j9S0mOcAUgRAQtfZrprk9umNywAhF0K/pZScz/DSu+QAIRkMAgsgFUL//8+K6///1R5WDQAgFUL//8+K6///1R5SBEBC19mumuT26Y3LACEXQr+llJzP8NK75AAhGUKk7MO1j9S0mOcAIRoMAgsgE0Kr1f7///+//7l/Wg0AQtfZrprk9umNywAhF0K/pZScz/DSu+QAIRlCpOzDtY/UtJjnACEaQv//z4rr///VHiEVDAELQn9CACAXQtfZrprk9umNywB9IhIgGUK/pZScz/DSu+QAVCAZQr+llJzP8NK75AB9IhEgGkKk7MO1j9S0mOcAVCAaQqTsw7WP1LSY5wB9IhggFUL//8+K6///1R5UIBVC///Piuv//9UefSIWIBNCq9X+////v/+5f1StIhVUcq0iF1RyrSIZVHKtIhtUGyEUIBYgFX0hFSAYIBd9IRogESAZfSEZIBIgG30hFyATQtWqgYCAgMCAxgB8IRMLIANBMGohBiACIBM3A5gIIAIgFTcDkAggAiAaNwOICCACIBk3A4AIIAIgFzcD+AcgAiAUNwPwByADKQMAIRsgAykDCCEcIAMpAxAhHSADKQMYIR4gAykDICEfIAMpAyghIEIAIRpBKCEDQgAhFUIAIRNCACEUQgAhEkIAIRkDQCACQfgAaiACQfAHaiADaikDACIRICBCABC9AyACQYgBaiARIB9CABC9AyACQZgBaiARIB5CABC9AyACQagBaiARIB1CABC9AyACQbgBaiARIBxCABC9AyACQcgBaiARIBtCABC9AyACQegAaiACKQN4IhcgGXwiGEIAQv3/8//P///5iX8QvQMgAkHYAGogAkHwAGopAwAiEUKr1f7///+//7l/QgAQvQMgAkHIAGogEUL//8+K6///1R5CABC9AyACQThqIBFCpOzDtY/UtJjnAEIAEL0DIAJBKGogEUK/pZScz/DSu+QAQgAQvQMgAkEYaiARQtfZrprk9umNywBCABC9AyACQQhqIBFCms3/y6O9xIAaQgAQvQMgAkEQaikDACAaIAIpA8gBIhp8IhEgAkHAAWopAwAgFSACKQO4ASIVfCIWIBVUrXwgFiACQbABaikDACACKQOoASIVIBN8IhMgFVStfCATIAJBoAFqKQMAIAIpA5gBIhUgFHwiFCAVVK18IBQgAkGQAWopAwAgAikDiAEiFSASfCISIBVUrXwgEiACQYABaikDACAXIBhWrXx8IhcgElStfHwiEiAUVK18fCIUIBNUrXx8IhMgFlStfHwiFiACKQMIfCIVIBZUrXwgFSAVIAJBIGopAwAgEyATIAIpAxh8IhNWrXwgEyATIAJBMGopAwAgFCAUIAIpAyh8IhRWrXwgFCAUIAJBQGspAwAgEiASIAIpAzh8IhJWrXwgEiASIAJB0ABqKQMAIAIpA0giGSAXfCIXIBlUrXwgFyACQeAAaikDACAYIAIpA1giGHwgGFStfHwiGSAXVK18fCISVq18fCIUVq18fCITVq18fCIVVq18IBEgFlatIAJB0AFqKQMAIBEgGlStfHx8IRogA0EIayIDQXhHDQALAkACQCAaQprN/8ujvcSAGlYNACAaQprN/8ujvcSAGlIEQCASIREgFCEY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A0GgCGogAykDqAkiHyAlQgAQvQMgA0HgAGogDEKazf/Lo73EgBpCABC9AyADQdAEaiAbICRCABC9AyADQZAEaiADKQOgBCIPIAMpA6AFIg0gA0HIBGopAwB8IhN8IhIgA0G4BGopAwAgDiADKQOwBCIMfCAMVK18fCIOIAMpA9AEfCIMQv3/8//P///5iX9+IhBCq9X+////v/+5f0IAEL0DIANBsAVqICYgJEIAEL0DIANBgARqIBBC///Piuv//9UeQgAQvQMgA0GQBmogJyAkQgAQvQMgA0HwA2ogEEKk7MO1j9S0mOcAQgAQvQMgA0HwBmogKCAkQgAQvQMgA0HgA2ogEEK/pZScz/DSu+QAQgAQvQMgA0HQB2ogKSAkQgAQvQMgA0HQA2ogEELX2a6a5PbpjcsAQgAQvQMgA0GwCGogHyAkQgAQvQMgA0HAA2ogEEKazf/Lo73EgBpCABC9AyADQeAEaiAbICNCABC9AyADQaADaiADQagFaikDACANIBNWrXwiEyADKQOABnwiFCADKQOwA3wiFSAOIBJUrSADQagEaikDACAPIBJWrXx8fCIQIAMpA7AFfCIPIANB2ARqKQMAIAwgDlStfHwiEiADKQOABHwiDiADQZgEaikDACAMIAMpA5AEIgx8IAxUrXx8Ig0gAykD4AR8IgxC/f/z/8////mJf34iEUKr1f7///+//7l/QgAQvQMgA0HABWogJiAjQgAQvQMgA0GQA2ogEUL//8+K6///1R5CABC9AyADQaAGaiAnICNCABC9AyADQYADaiARQqTsw7WP1LSY5wBCABC9AyADQYAHaiAoICNCABC9AyADQfACaiARQr+llJzP8NK75ABCABC9AyADQeAHaiApICNCABC9AyADQeACaiARQtfZrprk9umNywBCABC9AyADQcAIaiAfICNCABC9AyADQdACaiARQprN/8ujvcSAGkIAEL0DIANB8ARqIBsgIkIAEL0DIANBsAJqIANBiAZqKQMAIBMgFFatfCITIAMpA+AGfCIXIAMpA8ACfCIYIBAgFVStIANBuANqKQMAIBQgFVatfHx8IhkgAykDkAZ8IhQgDyASVq0gA0G4BWopAwAgDyAQVK18fHwiFSADKQPwA3wiDyANIA5UrSADQYgEaikDACAOIBJUrXx8fCIRIAMpA8AFfCIQIANB6ARqKQMAIAwgDVStfHwiEiADKQOQA3wiDiADQagDaikDACAMIAMpA6ADIgx8IAxUrXx8Ig0gAykD8AR8IgxC/f/z/8////mJf34iFkKr1f7///+//7l/QgAQvQMgA0HQBWogJiAiQgAQvQMgA0GgAmogFkL//8+K6///1R5CABC9AyADQbAGaiAnICJCABC9AyADQZACaiAWQqTsw7WP1LSY5wBCABC9AyADQZAHaiAoICJCABC9AyADQYACaiAWQr+llJzP8NK75ABCABC9AyADQfAHaiApICJCABC9AyADQfABaiAWQtfZrprk9umNywBCABC9AyADQdAIaiAfICJCABC9AyADQeABaiAWQprN/8ujvcSAGkIAEL0DIANBgAVqIBsgIUIAEL0DIANBwAFqIANB6AZqKQMAIBMgF1atfCITIAMpA8AHfCIcIAMpA9ABfCIdIBggGVatIANByAJqKQMAIBcgGFatfHx8Ih4gAykD8AZ8IhcgFCAVVq0gA0GYBmopAwAgFCAZVK18fHwiGCADKQPgA3wiFCAPIBFWrSADQfgDaikDACAPIBVUrXx8fCIVIAMpA6AGfCIPIBAgElatIANByAVqKQMAIBAgEVStfHx8IhYgAykDgAN8IhAgDSAOVK0gA0GYA2opAwAgDiASVK18fHwiEiADKQPQBXwiDiADQfgEaikDACAMIA1UrXx8IhkgAykDoAJ8IhEgA0G4AmopAwAgDCADKQOwAiIMfCAMVK18fCINIAMpA4AFfCIMQv3/8//P///5iX9+IhpCq9X+////v/+5f0IAEL0DIANB4AVqICYgIUIAEL0DIANBsAFqIBpC///Piuv//9UeQgAQvQMgA0HABmogJyAhQgAQvQMgA0GgAWogGkKk7MO1j9S0mOcAQgAQvQMgA0GgB2ogKCAhQgAQvQMgA0GQAWogGkK/pZScz/DSu+QAQgAQvQMgA0GACGogKSAhQgAQvQMgA0GAAWogGkLX2a6a5PbpjcsAQgAQvQMgA0HgCGogHyAhQgAQvQMgA0HwAGogGkKazf/Lo73EgBpCABC9AyADQZAFaiAbICBCABC9AyADQdAAaiADQcgHaikDACATIBxWrXwiEyADKQOgCHwiKiADKQNgfCIrIB0gHlatIANB2AFqKQMAIBwgHVatfHx8IiwgAykD0Ad8IhwgFyAY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CGopAwAgDSATVq18fCANIA9UrSADQfgIaikDACAMIA9WrXx8fCIPNwOoCQJAIA9Cms3/y6O9xIAaVA0AAkAgD0Kazf/Lo73EgBpSDQAgDkLX2a6a5PbpjcsAVA0BIA5C19mumuT26Y3LAFINACARQr+llJzP8NK75ABUDQEgEUK/pZScz/DSu+QAUg0AIBZCpOzDtY/UtJjnAFQNASAWQqTsw7WP1LSY5wBSDQAgGkL//8+K6///1R5UDQEgGkL//8+K6///1R5SDQAgH0Kr1f7///+//7l/VA0BCyADIB9C1aqBgICAwIDGAHw3A4AJIAMgGiAfQqvV/v///7//uX9UrSINfSITQv//z4rr///VHn0iDDcDiAkgAyAWIAwgE1StIA0gGlatUa0iDX0iE0Kk7MO1j9S0mOcAfSIMNwOQCSADIBEgDCATVK0gDSAWVq1RrSINfSITQr+llJzP8NK75AB9Igw3A5gJIAMgDiAMIBNUrSANIBFWrVGtIg19IhNC19mumuT26Y3LAH0iDDcDoAkgAyAPIAwgE1StIA0gDlatUa19QprN/8ujvcSAGn03A6gJCyAIIApqMQAAIQwgBEIANwMAIAJCADcDACABQgA3AwAgBUEIakIANwMAIAVCADcDACADIAw3A7AJIANBqApqIANBsAlqIgkQRiADKQOoClANBiADQdgJaiAGQShqKQMANwMAIANB0AlqIAZBIGopAwA3AwAgA0HICWogBkEYaikDADcDACADQcAJaiAGQRBqKQMANwMAIAUgBkEIaikDADcDACADIAYpAwA3A7AJIANBgAlqIAkQygIgCkEBayIKDQALCyAAIAMpA4AJNwMAIABBKGogA0GoCWopAwA3AwAgAEEgaiADQaAJaikDADcDACAAQRhqIANBmAlqKQMANwMAIABBEGogA0GQCWopAwA3AwAgAEEIaiADQYgJaikDADcDACADQeAKaiQADwsgBCAELQAAIAMoArAKLQAAcToAACAIIQQgBiEFDAELC0GI0MEAELsEAAtBwNHBABC7BAALQbDRwQAQuwQAC6gnAhV+DH8jAEGgBGsiFyQAIAFBBXRB4P/AAGohIUHrACABIAFB6wBPG0EFdCEiQaBlIRkDQAJAAkAgGSAiagRAQpGAgICAgICACCEMIBkgIWoiG0HgGmopAwAgACAZaiIY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CkKRgICAgICAgAghC0IAIQlCAAwBCyADIA1QrSIEfSEJIAIgAyAEVK0iA30hCiALIAIgA1StfUKRgICAgICAgAh9IQsgDUIBfQshAiAeIAo3AwAgHSALNwMAIB8gCTcDACAgIAI3AwAgAUEBaiEBIBlBIGoiGUGAZkcNAAtCkYCAgICAgIAIIQ8gACkDCCITIABBKGopAwAiEnwiAyATVCADIAApAxAiDSAAQTBqKQMAIhF8IgIgDVQgAiAAKQMYIgggAEE4aikDACIQfCIEIAhUrXwiBiACVHKtfCIKIANUcq0gACkDICIOIAApAwAiB3x8IgshAwJAAkAgC0KRgICAgICAgAhRBEBCASEPIARCAVENASAEIQMgBiAKhEIAUg0BCyADIA9aDQAgCiEDIAYhAiAEIQUMAQsgBEIBfSEFIAYgBFCtIgN9IQIgCiADIAZWrSIEfSEDQu7/////////d0Lv/////////3cgBCAKVhsgC3whCwsgAAJ+QpGAgICAgICACCEMIAMgAEHIAGopAwAiFHwiCiADVCAKIAIgAiAAQdAAaikDACIVfCIDViADIAUgAEHYAGopAwAiFnwiAiAFVK18IgQgA1RyrXwiAyAKVHKtIAApA0AiDyALfHwiCyEKAkACQCALQpGAgICAgICACFEEQEIBIQwgAkIBUSADQgBScg0BIAIhCiAEQgBSDQELIAogDFoNACADIQogBCEMIAIhCQwBCyACQgF9IQkgBCACUK0iAn0hDCADIAIgBFatIgJ9IQpC7v////////93Qu//////////dyACIANWGyALfCELC0KRgICAgICAgAghBCATIBN8IgMgE1QgAyANIA18IgIgDVQgAiAIIAh8IgUgCFStfCIIIAJUcq18IgYgA1RyrSAHQgGGhCIHIQICQAJAIAdCkYCAgICAgIAIUQRAIAVCAVENASAFIQJCASEEIAYgCIRCAFINAQsgAiAEWg0AIAYhAiAIIQQgBSEDDAELIAVCAX0hAyAIIAVQrSICfSEEIAYgAiAIVq0iBX0hAkLu/////////3dC7/////////93IAUgBlYbIAd8IQcLQpGAgICAgICACCEFIAIgCnwiDSAKVCANIA0gBCAMfCIEIAxUIAQgAyAJfCICIAlUrXwiCCAEVHKtfCIGVnKtIAcgC3x8IgchBAJAAkAg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BSAMVK18fCIKIBUpA2B8IgUgBiALVq0iDCAVKQPQAXwiCyAIIAlWrSAVQagCaikDACAEIAhWrXx8IBVByABqKQMAIAQgDlStfHwiDiAVKQMgfCIEIAYgB1StIBVB+ABqKQMAIAcgCVStfHx8Igd8Ig18IgYgASACVq18IgF8IgIgD1StfCIPIBUpA1B8IgggASAGVK0iECAVKQOAAXwiCSALIA1WrSAVQdgBaikDACALIAxUrXx8IAQgB1atIBVBKGopAwAgBCAOVK18fHwiByAVKQMQfCIEIAUgBlatIBVB6ABqKQMAIAUgClStfHx8Igt8Igp8IgYgAiACIANCAFKtfCIBVq18IgIgBlStIgMgFSkDMHwiBSADVK18IAUgCSAKVq0gFUGIAWopAwAgCSAQVK18fCAEIAtWrSAVQRhqKQMAIAQgB1StfHx8IgQgFSkDAHwiAyAGIAhUrSAVQdgAaikDACAIIA9UrXx8fCIIfCIGIAVUrXwgAyAIVq0gFUEIaikDACADIARUrXx8fCIKQpGAgICAgICACFYNACAKQpGAgICAgICACFEEQCABIAKEIAaEUEUNAUIAIQlCkYCAgICAgIAIIQpCACEPQgAhDgwCCyAGIQkgAiEPIAEhDgwBCyABQgF9IQ4gAiABUK0iAX0hDyAGIAEgAlatIgF9IQkgCiABIAZWrX1CkYCAgICAgIAIfSEKC0KRgICAgICAgAghCCAAKQMIIgcgACkDKCIQfCICIAdUIAIgACkDECILIAApAzAiEXwiBSALVCAFIAUgACkDGCINIAApAzgiEnwiASANVK18IgZWcq18IgMgAlRyrSAAKQMgIhQgACkDACITfHwiDCEFAkACQCAMQpGAgICAgICACFEEQEIBIQggAUIBUQ0BIAEhBSADIAaEQgBSDQELIAUgCFoNACADIQUgBiEIIAEhAgwBCyABQgF9IQIgBiABUK0iAX0hCCADIAEgBlatIgF9IQVC7v////////93Qu//////////dyABIANWGyAMfCEMC0KRgICAgICAgAghAyAFIAl8IgYgBVQgBiAIIA98IgUgCFQgBSACIA58IgEgAlStfCICIAVUcq18IgQgBlRyrSAKIAx8fCIMIQYCQAJAIAxCkYCAgICAgIAIUQRAQgEhAyABQgFRIARCAFJyDQEgASEGIAJCAFINAQsgAyAGWA0AIAQhBiACIQUgASEIDAELIAFCAX0hCCACIAFQrSIBfSEFIAQgASACVq0iAX0hBkLu/////////3dC7/////////93IAEgBFYbIAx8IQwLQpGAgICAgICACCEBIAcgB3wiAyAHVCADIAsgC3wiBCALVCAEIA0gDXwiAiANVK18IgsgBFRyrXwiDSADVHKtIBNCAYaEIgchBAJAAkAgB0KRgICAgICAgAhRBEBCASEBIAJCAVENASACIQQgCyANhEIAUg0BCyABIARYDQAgDSEEIAshASACIQMMAQsgAkIBfSEDIAsgAlCtIgJ9IQEgDSACIAtWrSICfSEEQu7/////////d0Lv/////////3cgAiANVhsgB3whBwtCkYCAgICAgIAIIQIgBCAGfCITIAZUIBMgEyABIAV8IgEgBVQgASADIAh8IgQgCFStfCILIAFUcq18Ig1Wcq0gByAMfHwiByEBAkACQCAHQpGAgICAgICACFEEQCALIA2EQgBSDQFCASECIAQiAUIBUQ0BCyABIAJaDQAgDSECIAshASAEIQMMAQsgBEIBfSEDIAsgBFCtIgJ9IQEgDSACIAtWrSIEfSECQu7/////////d0Lv/////////3cgBCANVhsgB3whBwsgACADNwMYIAAgATcDECAAIAI3AwggACAHNwMAQpGAgICAgICACCEBIBAgEHwiAiAQVCACIBEgEXwiByARVCAHIAcgEiASfCIDIBJUrXwiBFZyrXwiDSACVHKtIBRCAYaEIgchAgJAAkAgB0KRgICAgICAgAhRBEBCASEBIANCAVENASADIQIgBCANhEIAUg0BCyABIAJYDQAgDSECIAQhASADIQsMAQsgA0IBfSELIAQgA1CtIgJ9IQEgDSACIARWrSIDfSECQu7/////////d0Lv/////////3cgAyANVhsgB3whBwsgAAJ+AkACQAJAIAwiBCAHIgNSDQAgAiEDIAIgBiIEUg0AIAEhAyABIAUiBFINAEIAIQ0gCCIEIAsiA1ENAQsgDCAHfSENIAMgBFoNAQsgBSABfSIDIAggC1StIgR9IQcgBiACfSIQIAMgBFQgASAFVnKtIgN9IQEgAyAQViACIAZWciEWIAggC30MAQsgASAFVCAIIAtWrSIDIAEgBX0iAVZyrSIEIAIgBn0iEH0iByABIANSIAMgAX0iAyALIAh9IgtCAVatIhFUcq0iEn0hASAEIBBSIAcgElRyIRYgAyARfSEHIA0gAiAGVCAEIBBWcq18QpGAgICAgICACHwhDUIBIAt9CzcDOCAAIAc3AzAgACABNwMoIAAgDSAWrX03AyBCkYCAgICAgIAIIQ0gCSAJfCIBIAlUIAEgDyAPfCIEIA9UIAQgBCAOIA58IgIgDlStfCIDVnKtfCIEIAFUcq0gCkIBhoQiByEBAkACQCAHQpGAgICAgICACFEEQEIBIQ0gAkIBUSAEQgBScg0BIAIhASADQgBSDQELIAEgDVoNACAEIQEgAyENIAIhCwwBCyACQgF9IQsgAyACUK0iAX0hDSAEIAEgA1atIgJ9IQFC7v////////93Qu//////////dyACIARWGyAHfCEHC0KRgICAgICAgAghAyABIAl8IgkgAVQgCSAJIA0gD3wiBCANVCAEIAQgCyAOfCIBIAtUrXwiAlZyrXwiBFZyrSAHIAp8fCIKIQkCQAJAIApCkYCAgICAgIAIUQRAIAIgBIRCAFINAUIBIQMgASIJQgFRDQELIAMgCVgNACAEIQkgAiEPIAEhBwwBCyABQgF9IQcgAiABUK0iAX0hDyAEIAEgAlatIgF9IQlC7v////////93Qu//////////dyABIARWGyAKfCEKCwJ+AkACQAJAIAwiASAKIgJSDQAgBiIBIAkiAlINACAPIgIgBSIBUg0AQgAhDiAIIgEgByICUQ0BCyAMIAp9IQ4gASACWA0BCyAFIA99IgEgByAIVq0iAn0hCiAGIAl9IgMgASACVCAFIA9Ucq0iAX0hDCAGIAlUIAEgA1ZyIRYgCCAHfQwBCyAFIA9WIAcgCFStIgEgDyAFfSICVnKtIgUgCSAGfSIDfSIEIAEgAlIgASACfSIBIAcgCH0iAkIBVq0iCFRyrSIHfSEMIAMgBVIgBCAHVHIhFiABIAh9IQogDiADIAVUIAYgCVZyrXxCkYCAgICAgIAIfCEOQgEgAn0LIQYgDiAWrX0hCSAYQSBqIhgNAAsgACAKNwNQIAAgBjcDWCAAIAw3A0ggACAJNwNAIABB3wAQPiAAQeIAED4gAEHlABA+IABB6AAQPiAVQaAEaiQAC5glAgZ/GX4jAEHgBmsiAyQAIANBmAZqQgA3AwAgA0GQBmpCADcDACADQYgGakIANwMAIANBqAZqQgA3AwAgA0GwBmpCADcDACADQgA3A4AGIANCADcDoAYgA0IBNwO4BgJAAkACQAJAIAIgA0GABmoiBUEgENAEBEAgAiADQaAGakEgENAERQ0DIAIpAxAhECACKQMIIQwgAikDACENIAEpAxghESABKQMQIQogASkDCCELIAEpAwAhDiACKQMYIRkgA0HQBmoiB0IANwMAIANByAZqIghCADcDACADQgA3A8AGIAMgGUIBgzcD2AYgA0HABmogBUEgENAEDQIDQCAMIRYgA0HQBWogCiARQgAQvQMgA0GwBWogCyARQgAQvQMgA0GABWogDiARQgAQvQMgA0GgBWogCyAKQgAQvQMgA0HwBGogDiAKQgAQvQMgA0HgBGogDiALQgAQvQMgA0HwBWogESARQgAQvQMgA0HABWogCiAKQgAQvQMgA0GQBWogCyALQgAQvQMgA0HQBGogDiAOQgAQvQMgA0HgBWogAykD8AUiCUKBgICAcEIAEL0DIANB6ARqKQMAIANB+ARqKQMAIANBiAVqKQMAIANBuAVqKQMAIANB2AVqKQMAIgsgAykDsAV8IgogC1StfCIMIAMpA4AFfCILIAxUrXwiFSADKQPwBHwiDCAVVK18IAwgDCADQagFaikDACALIAsgAykDoAV8IgtWrXx8IgxWrXwiDiADKQPgBHwiFSAOVK18Ig5CP4ggA0HYBGopAwAgAykD0AQiDyAOQgGGIBVCP4iEfCIOIA9UrXwgDiADQZgFaikDACADQcgFaikDACADKQPABSIRIApCAYYgAykD0AUiE0I/iIR8Ig8gEVStfCAPIANB+AVqKQMAIhEgE0IBhnwiEyARVK18IhEgD1StfCIPIAtCAYYgCkI/iIR8Ih0gD1StIg8gAykDkAV8IgogD1StfCAKIAxCAYYgC0I/iIR8IgsgClStfCIKIBVCAYYgDEI/iIR8IgwgClStfCIPIA5UrXx8IQ5BACEBAkAgA0HoBWopAwAgCUIghiIVIBN8IgogFVStIAlCIIh8IgkgEXwiFSAJVK0iESADKQPgBXwiCSARVK18IAkgHXwiESAJVK18IglQBEBBACEEDAELIAkgC3wiCyAJVCIERQ0AIAStIgkgDHwiDCAJVCEEIAkgDFgNACAErSIJIA98Ig8gCVQhBCAJIA9Y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IANBQGsgDCARQgAQvQMgA0EgaiAMIApCABC9AyADQRBqIAwgC0IAEL0DIAMgDCAOQgAQvQMgA0EwaiAWQiCGIiAgEiAaVK0gCUIgiHwiGiADQYgCaikDACAYIB5WrXwiHiADKQPwAXwiCyADKQOgAnwiCSAUIBtUrXwiDiADKQOwAXwiESAXIBxWrSADQcgBaikDACAUIBdWrXx8fCIbfCIUIAMpA3B8IhcgA0GYAWopAwAgEiAWVq18fCIcfCISIAMpA0B8IgpCgYCAgHBCABC9AwJAIANBOGopAwAgA0EoaikDACADQcgAaikDACAKIBJUrXwiHyADKQMgfCIYIB9UrXwgGCAYIBcgHFatIANB+ABqKQMAIBQgF1atfHwiHCADKQNgfCIXIBQgGlStIhogAykD0AF8IhQgCSAOVq0gA0GoAmopAwAgCSALVK18fCIfIANB+AFqKQMAIAsgHlStfHwiCyADKQOgAXwiCSARIBtWrSADQbgBaikDACAOIBFWrXx8fCIRfCIbfCIOIBIgIFStIBZCIIh8fCISfCIYVq18Ih4gAykDEHwiFiAOIBJWrSIgIAMpA4ABfCISIBQgG1atIANB2AFqKQMAIBQgGlStfHwiGiAJIBFWrSADQagBaikDACAJIAtUrXx8IhsgCyAfVK18Ih98IgsgAykDUHwiFCAOIBdUrSADQegAaikDACAXIBxUrXx8fCIXfCIcfCIOIApCIIYiCSAYfCIRIAlUrSAKQiCIfHwiCSAOVK0iGCADKQMwfCIKIBhUrXwgCiASIBxWrSADQYgBaikDACASICBUrXx8IhggFCAXVq0gA0HYAGopAwAgCyAUVq18fCIUIAsgGlStIBsgH1atfHwiF3wiCyADKQMAfCISIA4gFlStIANBGGopAwAgFiAeVK18fHwiDnwiFiAKVK18IgogDiASVK0gA0EIaikDACALIBJWrXx8IhIgCyAYVK0gFCAXVq18fCILfCIOQoGAgIBwViAKIA5WrUIAIAsgElStfVJyDQAgDkKBgICAcFIEQCAJIQogFiELDAILIBZCAFIgCUL/////D1ZyDQBCACELIAlC/////w9UBEAgCSEKQoGAgIBwIQ4MAgtC/////w8hCiARQn9RDQBCgYCAgHAhDgwBCyAJQv////8PfSILIBFCf1KtIhJ9IQogFiAJQv//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IQEgBEEBayIEDQALCyADIAg2AgggAyAGNgIEIAMgCDYCAAJAAkAgAigCCCIIRQ0AIAhBBXQhBCAIQf///x9LBEBBACEFDAILIAIoAgQhBkEAIQFB2b7CAC0AABpBCCEFIARBCBCwBCIJRQ0BIAhBBXQhByAIIQQDQCABIAdGDQEgASAJaiICIAEgBmoiBSkDADcDACACQRhqIAVBGGopAwA3AwAgAkEQaiAFQRBqKQMANwMAIAJBCGogBUEIaikDADcDACABQSBqIQEgBEEBayIEDQALCyADIAg2AhggAyAJNgIUIAMgCDYCEEHZvsIALQAAGgJAQSBBCBCwBCIEBEAgBEEYakHo8MAAKQMANwMAIARBEGpB4PDAACkDADcDACAEQQhqQdjwwAApAwA3AwAgBEHQ8MAAKQMANwMAIANBADoAiAIgAyAEQSBqNgKEAiADIAQ2AoACIANB4AFqIANBgAJqELMCIAMoAugBIgJBAk8EQCACQQF2IQUgAygC5AEiASACQQV0akEgayECA0AgASkDACEMIAEgAikDADcDACABQRhqIgYpAwAhESAGIAJBGGoiBikDADcDACABQRBqIgcpAwAhDiAHIAJBEGoiBykDADcDACABQQhqIgopAwAhDyAKIAJBCGoiCikDADcDACACIAw3AwAgBiARNwMAIAcgDjcDACAKIA83AwAgAkEgayECIAFBIGohASAFQQFrIgUNAAsLIANBKGogA0HoAWooAgA2AgAgAyADKQLgATcDICAEQSAQuQQgA0EwahDsAiADQUBrEOwCQdm+wgAtAAAaQSBBCBCwBCIEBEAgBEEYakHo8MAAKQMANwMAIARBEGpB4PDAACkDADcDACAEQQhqQdjwwAApAwA3AwAgBEHQ8MAAKQMANwMAIANBADoAiAIgAyAEQSBqNgKEAiADIAQ2AoACIANB4AFqIANBgAJqELMCIAMoAugBIgJBAk8EQCACQQF2IQUgAygC5AEiASACQQV0akEgayECA0AgASkDACEMIAEgAikDADcDACABQRhqIgYpAwAhESAGIAJBGGoiBikDADcDACABQRBqIgcpAwAhDiAHIAJBEGoiBykDADcDACABQQhqIgopAwAhDyAKIAJBCGoiCikDADcDACACIAw3AwAgBiARNwMAIAcgDjcDACAKIA83AwAgAkEgayEC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CwsgAyACNgLoASADIAU2AuQBIAMgAjYC4AEgA0HAAWoiASADQeABaiADQRBqEGAgA0GAAmoiBCABEL4CIANB3ABqIAMgBBDwAQJAIAJFBEBBCCEFIANBGGoiASgCACEEIAEgA0HkAGooAgA2AgAgA0EIaiAENgIAIAMpAxAhDCADIAMpAlw3AxAgAyAMNwMAIANBqAFqIANBKGooAgA2AgAgAyADKQMgNwOgAQwBCyAFIAJBBXQiCRC5BCADQRhqIgEoAgAhBCABIANB5ABqKAIANgIAIANBCGogBDYCACADKQMQIQwgAyADKQJcNwMQIAMgDDcDACADQagBaiADQShqKAIANgIAIAMgAykDIDcDoAEgAkH///8fSwRAQQAhAQwIC0HZvsIALQAAGkEIIQEgCUEIELAEIgVFDQdBACEBIAIhBANAIAEgCUYNASABIAVqIgYgASAIaiIHKQMANwMAIAZBGGogB0EYaikDADcDACAGQRBqIAdBEGopAwA3AwAgBkEIaiAHQQhqKQMANwMAIAFBIGohASAEQQFrIgQNAAsLIAMgAjYC6AEgAyAFNgLkASADIAI2AuABIANBwAFqIgEgA0HgAWogA0EwahBgIANBgAJqIgQgARC+AiADQegAaiADQaABaiAEEPABAkAgAkUEQEEIIQUgA0E4aiIBKAIAIQQgASADQfAAaigCADYCACADQShqIAQ2AgAgAykDMCEMIAMgAykCaDcDMCADIAw3AyAgA0GoAWogA0HIAGooAgA2AgAgAyADKQJANwOgAQwBCyAFIAJBBXQiCRC5BCADQThqIgEoAgAhBCABIANB8ABqKAIANgIAIANBKGogBDYCACADKQMwIQwgAyADKQJoNwMwIAMgDDcDICADQagBaiADQcgAaigCADYCACADIAMpAkA3A6ABIAJB////H0sEQEEAIQEMCAtB2b7CAC0AABpBCCEBIAlBCBCwBCIFRQ0HQQAhASACIQQDQCABIAlGDQEgASAFaiIGIAEgCGoiBykDADcDACAGQRhqIAdBGGopAwA3AwAgBkEQaiAHQRBqKQMANwMAIAZBCGogB0EIaikDADcDACABQSBqIQEgBEEBayIEDQALCyADIAI2AugBIAMgBTYC5AEgAyACNgLgASADQcABaiIBIANB4AFqIANB0ABqEGAgA0GAAmoiBCABEL4CIANB9ABqIANBoAFqIAQQ8AEgAgRAIAUgAkEFdBC5BAsgCigCACEBIAogA0H8AGooAgA2AgAgA0HIAGogATYCACADKQNQIQwgAyADKQJ0NwNQIAMgDDcDQCALBEAgCCALQQV0ELkECyADKAIYIQggAygCFCEJDAALAAtBCEEgEMoEAAtBCEEgEMoEAAsgASAIEKgEAAsgBSAEEKgEAAsgBSAEEKgEAAsgASAJEKgEAAuDJgIJfxd+IwBB4AJrIgMkAEEIIQlBCCEGAkACQAJAIAEoAggiCEUNACAIQQV0IQQgCEH///8fSwRADAILIAEoAgQhCkEAIQFB2b7CAC0AABpBCCEFIARBCBCwBCIGRQ0BIAhBBXQhCyAIIQQDQCABIAtGDQEgASAGaiIFIAEgCmoiBykDADcDACAFQRhqIAdBGGopAwA3AwAgBUEQaiAHQRBqKQMANwMAIAVBCGogB0EIaikDADcDACABQSBqIQEgBEEBayIEDQALCyADIAg2AgggAyAGNgIEIAMgCDYCAAJAAkAgAigCCCIIRQ0AIAhBBXQhBCAIQf///x9LBEBBACEFDAILIAIoAgQhBkEAIQFB2b7CAC0AABpBCCEFIARBCBCwBCIJRQ0BIAhBBXQhByAIIQQDQCABIAdGDQEgASAJaiICIAEgBmoiBSkDADcDACACQRhqIAVBGGopAwA3AwAgAkEQaiAFQRBqKQMANwMAIAJBCGogBUEIaikDADcDACABQSBqIQEgBEEBayIEDQALCyADIAg2AhggAyAJNgIUIAMgCDYCEEHZvsIALQAAGgJAQSBBCBCwBCIEBEAgBEEYakHY8cAAKQMANwMAIARBEGpB0PHAACkDADcDACAEQQhqQcjxwAApAwA3AwAgBEHA8cAAKQMANwMAIANBADoAiAIgAyAEQSBqNgKEAiADIAQ2AoACIANB4AFqIANBgAJqELMCIAMoAugBIgJBAk8EQCACQQF2IQUgAygC5AEiASACQQV0akEgayECA0AgASkDACEMIAEgAikDADcDACABQRhqIgYpAwAhECAGIAJBGGoiBikDADcDACABQRBqIgcpAwAhDSAHIAJBEGoiBykDADcDACABQQhqIgopAwAhDiAKIAJBCGoiCikDADcDACACIAw3AwAgBiAQNwMAIAcgDTcDACAKIA43AwAgAkEgayECIAFBIGohASAFQQFrIgUNAAsLIANBKGogA0HoAWooAgA2AgAgAyADKQLgATcDICAEQSAQuQQgA0EwahDsAiADQUBrEOwCQdm+wgAtAAAaQSBBCBCwBCIEBEAgBEEYakHY8cAAKQMANwMAIARBEGpB0PHAACkDADcDACAEQQhqQcjxwAApAwA3AwAgBEHA8cAAKQMANwMAIANBADoAiAIgAyAEQSBqNgKEAiADIAQ2AoACIANB4AFqIANBgAJqELMCIAMoAugBIgJBAk8EQCACQQF2IQUgAygC5AEiASACQQV0akEgayECA0AgASkDACEMIAEgAikDADcDACABQRhqIgYpAwAhECAGIAJBGGoiBikDADcDACABQRBqIgcpAwAhDSAHIAJBEGoiBykDADcDACABQQhqIgopAwAhDiAKIAJBCGoiCikDADcDACACIAw3AwAgBiAQNwMAIAcgDTcDACAKIA43AwAgAkEgayECIAFBIGohASAFQQFrIgUNAAsLIANB2ABqIgogA0HoAWooAgA2AgAgAyADKQLgATcDUCAEQSAQuQQDQCAIQQV0IQECQAJAAkADQCABRQ0BIAFBIGsiASAJakGw78AAQSAQ0ARFDQALIAMoAggiAg0BQQghBAwCCyADKAIIIgJBBXQhASADKAIEIQUCQAJAA0AgAUUNASACQQFrIQIgAUEgayIBIAVqIgRBsO/AAEEgENAERQ0ACyACQQBIDQAgA0G4AWogBEEYaiIBKQMANwMAIANBsAFqIARBEGoiAikDADcDACADQagBaiAEQQhqIggpAwA3AwAgAyAEKQMANwOgASADQaABakGw78AAQSAQ0ARFDQEgA0HQAWpCADcDACADQcgBakIANwMAIANCADcDwAEgA0IBNwPYASADQfgBaiABKQMANwMAIANB8AFqIAIpAwA3AwAgA0HoAWogCCkDADcDACADIAQpAwA3A+ABIANBmAJqQcjwwAApAwA3AwAgA0GQAmpBwPDAACkDADcDACADQYgCakG48MAAKQMANwMAIANBsPDAACkDADcDgAICQCADQeABaiADQcABakEgENAERQRAQv3////PACEXQn4hEUIDIRVC/////79/IQ8MAQtC/f///88AIRdCfiERQv////+/fyEPQgMhFSADKQP4ASENIAMpA+ABIR4gAykD6AEh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ACADQShqIAQ2AgAgAykDMCEMIAMgAykCaDcDMCADIAw3AyAgA0GoAWogA0HIAGooAgA2AgAgAyADKQJANwOgAQwBCyAFIAJBBXQiCRC5BCADQThqIgEoAgAhBCABIANB8ABqKAIANgIAIANBKGogBDYCACADKQMwIQwgAyADKQJoNwMwIAMgDDcDICADQagBaiADQcgAaigCADYCACADIAMpAkA3A6ABIAJB////H0sEQEEAIQEMCAtB2b7CAC0AABpBCCEBIAlBCBCwBCIFRQ0HQQAhASACIQQDQCABIAlGDQEgASAFaiIGIAEgCGoiBykDADcDACAGQRhqIAdBGGopAwA3AwAgBkEQaiAHQRBqKQMANwMAIAZBCGogB0EIaikDADcDACABQSBqIQEgBEEBayIEDQALCyADIAI2AugBIAMgBTYC5AEgAyACNgLgASADQcABaiIBIANB4AFqIANB0ABqEGggA0GAAmoiBCABELwCIANB9ABqIANBoAFqIAQQ9gEgAgRAIAUgAkEFdBC5BAsgCigCACEBIAogA0H8AGooAgA2AgAgA0HIAGogATYCACADKQNQIQwgAyADKQJ0NwNQIAMgDDcDQCALBEAgCCALQQV0ELkECyADKAIYIQggAygCFCEJDAALAAtBCEEgEMoEAAtBCEEgEMoEAAsgASAIEKgEAAsgBSAEEKgEAAsgBSAEEKgEAAsgASAJEKgEAAufKgIHfxF+IwBBkAVrIgIkACACQeAEaiIEIAEQJCACQdACaiIFIAFBMGoiBxAkIAJB8AFqIgMgBCAFEMQCAkACQAJAAkACQAJAAkACQCADQaCWwgBBMBDQBARAIAJB8ANqQgA3AwAgAkHoA2pCADcDACACQeADakIANwMAIAJB2ANqQgA3AwAgAkIANwPQAyACQgE3A/gDQSghBiACQagEaiACQZgCaikDADcDACACQaAEaiACQZACaikDADcDACACQZgEaiACQYgCaikDADcDACACQZAEaiACQYACaikDADcDACACQYgEaiACQfgBaikDADcDACACIAIpA/ABNwOABCACQdgEakG4l8IAKQMANwMAIAJB0ARqQbCXwgApAwA3AwAgAkHIBGpBqJfCACkDADcDACACQcAEakGgl8IAKQMANwMAIAJBuARqQZiXwgApAwA3AwAgAkGQl8IAKQMA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gBpCABC9AyACQQhqKQMAIAIpA7ABIgogEXwiGCACQagBaikDACACKQOgASIJIBR8IhQgCVStfCAUIAJBmAFqKQMAIAIpA5ABIgkgC3wiESAJVK18IBEgAkGIAWopAwAgAikDgAEiCSAPfCIPIAlUrXwgDyACQfgAaikDACACKQNwIgkgDnwiCyAJVK18IAsgAkHoAGopAwAgDSAZVq18fCIJIAtUrXx8Ig4gD1StfHwiCyARVK18fCINIBRUrXx8IhcgAikDAHwiFCAXVK18IBQgFCACQRhqKQMAIA0gAikDEHwiESANVK18IBEgAkEoaikDACALIAIpAyB8Ig8gC1StfCAPIA8gAkE4aikDACAOIAIpAzB8IgsgDlStfCALIAJByABqKQMAIAkgAikDQCIJfCINIAlUrXwgDSACQdgAaikDACACKQNQIgkgGXwgCVStfHwiCSANVK18fCIOIAtUrXx8Ig9WrXx8IgsgEVStfHwiFFatfCAXIBhUrSACQbgBaikDACAKIBhWrXx8fCERIAZBCGsiBkF4Rw0ACyARQprN/8ujvcSAGlYNBiARQprN/8ujvcSAGlENAQwCCyAAQgE3AwAgAEICNwMIDAcLIBRC19mumuT26Y3LAFYNBCAUQtfZrprk9umNywBSBEBCms3/y6O9xIAaIREMAQsgC0K/pZScz/DSu+QAVg0EQtfZrprk9umNywAhECALQr+llJzP8NK75ABSBEBCms3/y6O9xIAaIREMAgsgD0Kk7MO1j9S0mOcAVg0EQr+llJzP8NK75AAhEiAPQqTsw7WP1LSY5wBSBEBCms3/y6O9xIAaIREMAwsgDkL//8+K6///1R5WDQRCpOzDtY/UtJjnACETIA5C///Piuv//9UeUQ0DQprN/8ujvcSAGiERIA4hDQwFCyAUIRALIAshEgsgDyETIA4hDQwCC0L//8+K6///1R4hDSAJQqrV/v///7//uX9WDQBCms3/y6O9xIAaIREMAQsgDkL//8+K6///1R59IhAgCUKr1f7///+//7l/VK0iCn0hDSAPQqTsw7WP1LSY5wB9IgwgDkL//8+K6///1R5UIAogEFZyrSIKfSETIAtCv6WUnM/w0rvkAH0iECAPQqTsw7WP1LSY5wBUIAogDFZyrSIKfSESIBRC19mumuT26Y3LAH0iDCALQr+llJzP8NK75ABUIAogEFZyrSIKfSEQIBEgFELX2a6a5PbpjcsAVCAKIAxWcq19QprN/8ujvcSAGn0hESAJQtWqgYCAgMCAxgB8IQkLIAICfiAHQaCWwgBBMBDQBARAQv//z4rr///VHiABQdAAaikDACIOfSILIAFB2ABqKQMAIhdCq9X+////v/+5f1atIgp9IRRCpOzDtY/UtJjnACABQcgAaikDACIPfSIMIAogC1YgDkL//8+K6///1R5Wcq0iCn0hC0K/pZScz/DSu+QAIAFBQGspAwAiFX0iDiAKIAxWIA9CpOzDtY/UtJjnAFZyrSIKfSEPQtfZrprk9umNywAgAUE4aikDACIWfSIMIAogDlYgFUK/pZScz/DSu+QAVnKtIgp9IQ5Cms3/y6O9xIAaIAEpAzAgCiAMViAWQtfZrprk9umNywBWcq18fSEVQqvV/v///7//uX8gF30MAQsgAUHQAGopAwAhFCABQcgAaikDACELIAFBQGspAwAhDyABQThqKQMAIQ4gASkDMCEVIAFB2ABqKQMACzcDiAUgAiAUNwOABSACIAs3A/gEIAIgDzcD8AQgAiAONwPoBCACIBU3A+AEIAJBgANqIAJB4ARqIAJBoAJqELYBIAIgCTcD+AIgAiANNwPwAiACIBM3A+gCIAIgEjcD4AIgAiAQNwPYAiACIBE3A9ACIABBCGogAkHQAmpB4AAQzwQaIABCADcDAAsgAkGQBWokAAuXJwIJfxd+IwBB4AJrIgMkAEEIIQlBCCEGAkACQAJAIAEoAggiCEUNACAIQQV0IQQgCEH///8fSwRADAILIAEoAgQhCkEAIQFB2b7CAC0AABpBCCEFIARBCBCwBCIGRQ0BIAhBBXQhCyAIIQQDQCABIAtGDQEgASAGaiIFIAEgCmoiBykDADcDACAFQRhqIAdBGGopAwA3AwAgBUEQaiAHQRBqKQMANwMAIAVBCGogB0EIaikDADcDACABQSBqIQEgBEEBayIEDQALCyADIAg2AgggAyAGNgIEIAMgCDYCAAJAAkAgAigCCCIIRQ0AIAhBBXQhBCAIQf///x9LBEBBACEFDAILIAIoAgQhBkEAIQFB2b7CAC0AABpBCCEFIARBCBCwBCIJRQ0BIAhBBXQhByAIIQQDQCABIAdGDQEgASAJaiICIAEgBmoiBSkDADcDACACQRhqIAVBGGopAwA3AwAgAkEQaiAFQRBqKQMANwMAIAJBCGogBUEIaikDADcDACABQSBqIQEgBEEBayIEDQALCyADIAg2AhggAyAJNgIUIAMgCDYCEEHZvsIALQAAGgJAQSBBCBCwBCIEBEAgBEEYakGI8cAAKQMANwMAIARBEGpBgPHAACkDADcDACAEQQhqQfjwwAApAwA3AwAgBEHw8MAAKQMANwMAIANBADoAiAIgAyAEQSBqNgKEAiADIAQ2AoACIANB4AFqIANBgAJqELMCIAMoAugBIgJBAk8EQCACQQF2IQUgAygC5AEiASACQQV0akEgayECA0AgASkDACEMIAEgAikDADcDACABQRhqIgYpAwAhECAGIAJBGGoiBikDADcDACABQRBqIgcpAwAhDSAHIAJBEGoiBykDADcDACABQQhqIgopAwAhDiAKIAJBCGoiCikDADcDACACIAw3AwAgBiAQNwMAIAcgDTcDACAKIA43AwAgAkEgayECIAFBIGohASAFQQFrIgUNAAsLIANBKGogA0HoAWooAgA2AgAgAyADKQLgATcDICAEQSAQuQQgA0EwahDsAiADQUBrEOwCQdm+wgAtAAAaQSBBCBCwBCIEBEAgBEEYakGI8cAAKQMANwMAIARBEGpBgPHAACkDADcDACAEQQhqQfjwwAApAwA3AwAgBEHw8MAAKQMANwMAIANBADoAiAIgAyAEQSBqNgKEAiADIAQ2AoACIANB4AFqIANBgAJqELMCIAMoAugBIgJBAk8EQCACQQF2IQUgAygC5AEiASACQQV0akEgayECA0AgASkDACEMIAEgAikDADcDACABQRhqIgYpAwAhECAGIAJBGGoiBikDADcDACABQRBqIgcpAwAhDSAHIAJBEGoiBykDADcDACABQQhqIgopAwAhDiAKIAJBCGoiCikDADcDACACIAw3AwAgBiAQNwMAIAcgDTcDACAKIA43AwAgAkEgayECIAFBIGohASAFQQFrIgUNAAsLIANB2ABqIgogA0HoAWooAgA2AgAgAyADKQLgATcDUCAEQSAQuQQDQCAIQQV0IQECQAJAAkADQCABRQ0BIAFBIGsiASAJakGw78AAQSAQ0ARFDQALIAMoAggiAg0BQQghBAwCCyADKAIIIgJBBXQhASADKAIEIQUCQAJAA0AgAUUNASACQQFrIQIgAUEgayIBIAVqIgRBsO/AAEEgENAERQ0ACyACQQBIDQAgA0G4AWogBEEYaiIBKQMANwMAIANBsAFqIARBEGoiAikDADcDACADQagBaiAEQQhqIggpAwA3AwAgAyAEKQMANwOgASADQaABakGw78AAQSAQ0ARFDQEgA0HQAWpCADcDACADQcgBakIANwMAIANCADcDwAEgA0IBNwPYASADQfgBaiABKQMANwMAIANB8AFqIAIpAwA3AwAgA0HoAWogCCkDADcDACADIAQpAwA3A+ABIANBmAJqQajwwAApAwA3AwAgA0GQAmpBoPDAACkDADcDACADQYgCakGY8MAAKQMANwMAIANBkPDAACkDADcDgAICQCADQeABaiADQcABakEgENAERQRAQp/q4NWc7qfsBiEXQvb/hdLw38fVxwAhD0KJ9auctYu/lnMhFEL7g5SinaLG87V/IRUMAQtCn+rg1Zzup+wGIRdC9v+F0vDfx9XHACEPQvuDlKKdosbztX8hFUKJ9auctYu/lnMhFCADKQP4ASENIAMpA+ABIR0gAykD6AEhDCADKQPwASEaQsf688PtgqOQPCEOQqnAxomuzpOyMCEeQt2whYzotpGouH8hEEKNlcfDltLawJd/IRsDQCADQYACaiADQcABakEgENAERQRAIBkhFSATIRQgESEPIBghFwwCCyANp0EBcUUEQANAIBpCP4YgDUIBiIQhDQJAIBRCAYNQBEAgDyESIBUhFgwBCyAXIA9Co8/685fJ7tfHAH0iEiAPVCASIBIgFULz6ri86a2lv+gAfSIWIBVUIBYgFiAUIBRCx/rzw+2Co5A8fCIUVq18IhZWcq18IhJWcq18QqnAxomuzpOyMHwhFwsgHUI/hiAMQj+GIBpCAYiEIRogHUIBiCEdIBdCP4YgEkIBiIQhDyASQj+GIBZCAYiEIRUgFkI/hiAUQgGIhCEUIBdCAYghFyAMQgGIhCEMIA1CAYNQDQALIAMgGjcD8AEgAyANNwP4ASADIAw3A+gBIAMgHTcD4AELIA6nQQFxRQRAA0AgG0I/hiAOQgGIhCEOAkAgE0IBg1AEQCATIRYgGSETIBEhEgwBCyAYIBFCo8/685fJ7tfHAH0iEiARVCASIBIgGULz6ri86a2lv+gAfSIRIBlUIBEgE0LH+vPD7YKjkDx8IhYgE1St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AjYC6AEgAyAFNgLkASADIAI2AuABIANBwAFqIgEgA0HgAWogA0EQahBaIANBgAJqIgQgARC7AiADQdwAaiADIAQQ9wECQCACRQRAQQghBSADQRhqIgEoAgAhBCABIANB5ABqKAIANgIAIANBCGogBDYCACADKQMQIQwgAyADKQJcNwMQIAMgDDcDACADQagBaiADQShqKAIANgIAIAMgAykDIDcDoAEMAQsgBSACQQV0IgkQuQQgA0EYaiIBKAIAIQQgASADQeQAaigCADYCACADQQhqIAQ2AgAgAykDECEMIAMgAykCXDcDECADIAw3AwAgA0GoAWogA0EoaigCADYCACADIAMpAyA3A6ABIAJB////H0sEQEEAIQEMCAtB2b7CAC0AABpBCCEBIAlBCBCwBCIFRQ0HQQAhASACIQQDQCABIAlGDQEgASAFaiIGIAEgCGoiBykDADcDACAGQRhqIAdBGGopAwA3AwAgBkEQaiAHQRBqKQMANwMAIAZBCGogB0EIaikDADcDACABQSBqIQEgBEEBayIEDQALCyADIAI2AugBIAMgBTYC5AEgAyACNgLgASADQcABaiIBIANB4AFqIANBMGoQWiADQYACaiIEIAEQuwIgA0HoAGogA0GgAWogBBD3AQJAIAJFBEBBCCEFIANBOGoiASgCACEEIAEgA0HwAGooAgA2AgAgA0EoaiAENgIAIAMpAzAhDCADIAMpAmg3AzAgAyAMNwMgIANBqAFqIANByABqKAIANgIAIAMgAykCQDcDoAEMAQsgBSACQQV0IgkQuQQgA0E4aiIBKAIAIQQgASADQfAAaigCADYCACADQShqIAQ2AgAgAykDMCEMIAMgAykCaDcDMCADIAw3AyAgA0GoAWogA0HIAGooAgA2AgAgAyADKQJANwOgASACQf///x9LBEBBACEBDAgLQdm+wgAtAAAaQQghASAJQQgQsAQiBUUNB0EAIQEgAiEEA0AgASAJRg0BIAEgBWoiBiABIAhqIgcpAwA3AwAgBkEYaiAHQRhqKQMANwMAIAZBEGogB0EQaikDADcDACAGQQhqIAdBCGopAwA3AwAgAUEgaiEBIARBAWsiBA0ACwsgAyACNgLoASADIAU2AuQBIAMgAjYC4AEgA0HAAWoiASADQeABaiADQdAAahBaIANBgAJqIgQgARC7AiAD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ABC9AyACQdAHaiAdQq2q5qjb0M+8mn9CABC9AyACQfAAaiAWQprN/8ujvcSAGkIAEL0DIAJBkAVqIBdCqserltn8o8wRQgAQvQMgAkHQAGogAkH4CGopAwAgDiAYVq18Ig4gAikDkAh8IiAgAikDYHwiISAZIBpWrSACQdgBaikDACAYIBlWrXx8fCIiIAIpA+AIfCIYIBMgFFatIAJB+AZqKQMAIBMgGlStfHx8IhkgAikD0AN8IhMgECARVq0gAkHoA2opAwAgECAUVK18fHwiFCACKQOAB3wiECALIBJWrSACQagGaikDACALIBFUrXx8fCIRIAIpA/ACfCILIAwgD1atIAJBiANqKQMAIAwgElStfHx8IhcgAikDsAZ8IgwgCiAVVq0gAkHYBWopAwAgCiAPVK18fHwiDyACKQOQAnwiCiAJIA1UrSACQagCaikDACANIBVUrXx8fCIVIAIpA+AFfCINIAJBiAVqKQMAIAggCVStfHwiGiACKQOwAXwiEiACQcgBaikDACAIIAIpA8ABIgh8IAhUrXx8IhYgAikDkAV8IghC/f/z/8////mJf34iCUKr1f7///+//7l/QgAQvQMgAkHwBWogHkKqx6uW2fyjzBFCABC9AyACQUBrIAlC///Piuv//9UeQgAQvQMgAkHQBmogH0Kqx6uW2fyjzBFCABC9AyACQTBqIAlCpOzDtY/UtJjnAEIAEL0DIAJBsAdqIBtCqserltn8o8wRQgAQvQMgAkEgaiAJQr+llJzP8NK75ABCABC9AyACQaAIaiAcQqrHq5bZ/KPMEUIAEL0DIAJBEGogCULX2a6a5PbpjcsAQgAQvQMgAkHAB2ogHUKqx6uW2fyjzBFCABC9AyACIAlCms3/y6O9xIAaQgAQvQMgAiACKQOACCIJICEgIlatIAJB6ABqKQMAICAgIVatfHwgAkGYCGopAwAgDiAgVq18fHwiICAYIBlWrSACQegIaikDACAYICJUrXx8fCIhIAIpA8ADfCIYIBMgFFatIAJB2ANqKQMAIBMgGVStfHx8IhkgAikD0Ah8IhMgECARVq0gAkGIB2opAwAgECAUVK18fHwiFCACKQPgAnwiECALIBdWrSACQfgCaikDACALIBFUrXx8fCIRIAIpA5AHfCILIAwgD1atIAJBuAZqKQMAIAwgF1StfHx8IiIg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AUHZvsIALQAAGkEIIQUgBEEIELAEIgZFDQEgCEEFdCELIAghBANAIAEgC0YNASABIAZqIgUgASAKaiIHKQMANwMAIAVBGGogB0EYaikDADcDACAFQRBqIAdBEGopAwA3AwAgBUEIaiAHQQhqKQMANwMAIAFBIGohASAEQQFrIgQNAAsLIAMgCDYCCCADIAY2AgQgAyAINgIAAkACQCACKAIIIghFDQAgCEEFdCEEIAhB////H0sEQEEAIQUMAgsgAigCBCEGQQAhAUHZvsIALQAAGkEIIQUgBEEIELAEIglFDQEgCEEFdCEHIAghBANAIAEgB0YNASABIAlqIgIgASAGaiIFKQMANwMAIAJBGGogBUEYaikDADcDACACQRBqIAVBEGopAwA3AwAgAkEIaiAFQQhqKQMANwMAIAFBIGohASAEQQFrIgQNAAsLIAMgCDYCGCADIAk2AhQgAyAINgIQQdm+wgAtAAAaAkBBIEEIELAEIgQEQCAEQRhqQfjxwAApAwA3AwAgBEEQakHw8cAAKQMANwMAIARBCGpB6PHAACkDADcDACAEQeDxwAApAwA3AwAgA0EAOgCIAiADIARBIGo2AoQCIAMgBDYCgAIgA0HgAWogA0GAAmoQswIgAygC6AEiAkECTwRAIAJBAXYhBSADKALkASIBIAJBBXRqQSBrIQIDQCABKQMAIQwgASACKQMANwMAIAFBGGoiBikDACEPIAYgAkEYaiIGKQMANwMAIAFBEGoiBykDACENIAcgAkEQaiIHKQMANwMAIAFBCGoiCikDACEOIAogAkEIaiIKKQMANwMAIAIgDDcDACAGIA83AwAgByANNwMAIAogDjcDACACQSBrIQIgAUEgaiEBIAVBAWsiBQ0ACwsgA0EoaiADQegBaigCADYCACADIAMpAuABNwMgIARBIBC5BCADQTBqEOwCIANBQGsQ7AJB2b7CAC0AABpBIEEIELAEIgQEQCAEQRhqQfjxwAApAwA3AwAgBEEQakHw8cAAKQMANwMAIARBCGpB6PHAACkDADcDACAEQeDxwAApAwA3AwAgA0EAOgCIAiADIARBIGo2AoQCIAMgBDYCgAIgA0HgAWogA0GAAmoQswIgAygC6AEiAkECTwRAIAJBAXYhBSADKALkASIBIAJBBXRqQSBrIQIDQCABKQMAIQwgASACKQMANwMAIAFBGGoiBikDACEPIAYgAkEYaiIGKQMANwMAIAFBEGoiBykDACENIAcgAkEQaiIHKQMANwMAIAFBCGoiCikDACEOIAogAkEIaiIKKQMANwMAIAIgDDcDACAGIA83AwAgByANNwMAIAogDjcDACACQSBrIQIgAUEgaiEBIAVBAWsiBQ0ACwsgA0HYAGoiCiADQegBaigCADYCACADIAMpAuABNwNQIARBIBC5BANAIAhBBXQhAQJAAkACQANAIAFFDQEgAUEgayIBIAlqQbDvwABBIBDQBEUNAAsgAygCCCICDQFBCCEEDAILIAMoAggiAkEFdCEBIAMoAgQhBQJAAkADQCABRQ0BIAJBAWshAiABQSBrIgEgBWoiBEGw78AAQSAQ0ARFDQALIAJBAEgNACADQbgBaiAEQRhqIgEpAwA3AwAgA0GwAWogBEEQaiICKQMANwMAIANBqAFqIARBCGoiCCkDADcDACADIAQpAwA3A6ABIANBoAFqQbDvwABBIBDQBEUNASADQdABakIANwMAIANByAFqQgA3AwAgA0IANwPAASADQgE3A9gBIANB+AFqIAEpAwA3AwAgA0HwAWogAikDADcDACADQegBaiAIKQMANwMAIAMgBCkDADcD4AEgA0GYAmpB6O/AACkDADcDACADQZACakHg78AAKQMANwMAIANBiAJqQdjvwAApAwA3AwAgA0HQ78AAKQMANwOAAgJAIANB4AFqIANBwAFqQSAQ0ARFBEBCpAshFQwBC0KkCyEVIAMpA/gBIQ0gAykD4AEhHSADKQPoASEMIAMpA/ABIRpCbSEOQv///////////wAhHkJ/IQ9CfyEbA0AgA0GAAmogA0HAAWpBIBDQBEUEQCAZIRAgFCEVIBIhESAYIRYMAgsgDadBAXFFBEADQCAaQj+GIA1CAYiEIQ0CQCAVQgGDUARAIBEhEyAQIRcMAQsgFiARQgBSIBFCAX0iESAQQgBSIBBCAX0iEyAVIBVCE30iFVatfCIXIBNUcq18IhMgEVRyrXxC////////////AHwhFgsgHUI/hiAMQj+GIBpCAYiEIRogHUIBiCEdIBZCP4YgE0IBiIQhESATQj+GIBdCAYiEIRAgF0I/hiAVQgGIhCEVIBZCAYghFiAMQgGIhCEMIA1CAYNQDQALIAMgGjcD8AEgAyANNwP4ASADIAw3A+gBIAMgHTcD4AELIA6nQQFxRQRAA0AgG0I/hiAOQgGIhCEOAkAgFEIBg1AEQCAUIRcgGSEUIBIhEwwBCyAYIBJCAFIgEkIBfSISIBlCAFIgGUIBfSITIBRCE30iFyAUVK18IhQgE1RyrXwiEyASVHKtfEL///////////8AfCEYCyAeQj+GIA9CP4YgG0IBiIQhGyAeQgGIIR4gGEI/hiATQgGIhCESIBNCP4YgFEIBiIQhGSAUQj+GIBdCAYiEIRQgGEIBiCEYIA9CAYiEIQ8gDkIBg1ANAAsgAyAbNwOQAiADIA43A5gCIAMgDzcDiAIgAyAeNwOAAgsCQAJAAkACQCAdIhcgHiITUg0AIA8hEyAMIRcgDCAPUg0AIBohFyAbIhMgGlINACAOIRMgDSEXIA0gDlENAQsgEyAXVA0AIAMgDiANfSITNwOYAiADIBsgGn0iHCANIA5WrSIOfSIXNwOQAiADIA8gDH0iHyAOIBxWIBogG1ZyrSIOfSIcNwOIAiADIB4gHX0gDiAfViAMIA9Wcq19Ih43A4ACAkACQCAWIg8gGCIOUg0AIBEhDyASIg4gEVINACAQIQ8gGSIOIBBSDQAgFSIPIBQiDlENAQsgDiAPVA0CCyAYIBZ9IBIgEX0iHyAZIBB9IiAgFCAVVK0iIVQgECAZVnKtIiJUIBEgElZyrX0hGCAUIBV9IRQgFyEbIBwhDyATIQ4gICAhfSEZIB8gIn0hEgwCCyADIA0gDn0iEzcD+AEgAyAaIBt9IhwgDSAOVK0iDX0iFzcD8AEgAyAMIA99Ih8gGiAbVCANIBxWcq0iDX0iHDcD6AEgAyAdIB59IAwgD1QgDSAfVnKtfSIdNwPgAQJAAkACQCAWIg0gGCIMUg0AIBEiDSASIgxSDQAgECINIBkiDFINACAVIg0gFCIMUQ0BCyAMIA1WDQELIBYgGH0gESASVCARIBJ9IhEgECAZVCAQIBl9IhAgFCAVVq0iH1RyrSIgVHKtfSEWIBUgFH0hFSAXIRogHCEMIBMhDSARICB9IREgECAffSEQDAILIBYgGH0gEkJ/hSIMIBlCf4UiDSAUQm1WrSIWVK0iGlStfSARIAwgGn0iEXwiDCARVCAMIBAgDSAWfSIQfCINIBBUIA1CbSAUfSIQIBV8IhUgEFStfCIQIA1Ucq18IhEgDFRyrXxC////////////AHwhFiAXIRogHCEMIBMhDQwBCyAYQn9CACARQn+FIg8gEEJ/hSIOIBVCbVatIhhUrSIbVBsgFn18IBIgDyAbfSISfCIPIBJUIA8gDiAYfSISIBl8Ig4gElQgDkJtIBV9IhIgFHwiFCASVK18IhkgDlRyrXwiEiAPVHKtfEL///////////8AfCEYIBchGyAcIQ8gEyEOCyADQeABaiADQcABakEgENAEDQALCyADIBU3A5gBIAMgEDcDkAEgAyARNwOIASADIBY3A4ABIAAgA0EgaiADQYABaiIBEMcCIABBDGogA0FAayABEMcCIABBGGogAyABEMcCIAMoAlAiAARAIAMoAlQgAEEFdBC5BAsgAygCQCIABEAgAygCRCAAQQV0ELkECyADKAIwIgAEQCADKAI0IABBBXQQuQQLIAMoAiAiAARAIAMoAiQgAEEFdBC5BAsgAygCECIABEAgCSAAQQV0ELkECyADKAIAIgAEQCAFIABBBXQQuQQLIANB4AJqJAAPC0G888AAQSsgA0GAAmpB6PPAAEH488AAEL4DAAsgA0ICNwOAAkG888AAQSsgA0GAAmpB7PTAAEGc9cAAEL4DAAsgAkEFdCEIIAJB////H0sEQEEAIQEMBQsgAygCBCEHQdm+wgAtAAAaQQghASAIQQgQsAQiBEUNBEEAIQEgAiEFA0AgASAIRg0BIAEgBGoiCSABIAdqIgYpAwA3AwAgCUEYaiAGQRhqKQMANwMAIAlBEGogBkEQaikDADcDACAJQQhqIAZBCGopAwA3AwAgAUEgaiEBIAVBAWsiBQ0ACwsgAyACNgLoASADIAQ2AuQBIAMgAjYC4AEgA0GAAmogA0HgAWogA0EQahA2IAMoAogCIQIgAygChAIhCCADKAKAAiELIAMoAowCIgEEQCADKAKQAiABQQV0ELkECwJAIAJFBEBBCCEFDAELIAJBBXQhCSACQf///x9LBEBBACEBDAgLQdm+wgAtAAAaQQghASAJQQgQsAQiBUUNB0EAIQEgAiEEA0AgASAJRg0BIAEgBWoiBiABIAhqIgcpAwA3AwAgBkEYaiAHQRhqKQMANwMAIAZBEGogB0EQaikDADcDACAGQQhqIAdBCGopAwA3AwAgAUEgaiEBIARBAWsiBA0ACwsgAyACNgLoASADIAU2AuQBIAMgAjYC4AEgA0HAAWoiASADQeABaiADQRBqEF0gA0GAAmoiBCABEL0CIANB3ABqIAMgBBDtAQJAIAJFBEBBCCEFIANBGGoiASgCACEEIAEgA0HkAGooAgA2AgAgA0EIaiAENgIAIAMpAxAhDCADIAMpAlw3AxAgAyAMNwMAIANBqAFqIANBKGooAgA2AgAgAyADKQMgNwOgAQwBCyAFIAJBBXQiCRC5BCADQRhqIgEoAgAhBCABIANB5ABqKAIANgIAIANBCGogBDYCACADKQMQIQwgAyADKQJcNwMQIAMgDDcDACADQagBaiADQShqKAIANgIAIAMgAykDIDcDoAEgAkH///8fSwRAQQAhAQwIC0HZvsIALQAAGkEIIQEgCUEIELAEIgVFDQdBACEBIAIhBANAIAEgCUYNASABIAVqIgYgASAIaiIHKQMANwMAIAZBGGogB0EYaikDADcDACAGQRBqIAdBEGopAwA3AwAgBkEIaiAHQQhqKQMANwMAIAFBIGohASAEQQFrIgQNAAsLIAMgAjYC6AEgAyAFNgLkASADIAI2AuABIANBwAFqIgEgA0HgAWogA0EwahBdIANBgAJqIgQgARC9AiADQegAaiADQaABaiAEEO0BAkAgAkUEQEEIIQUgA0E4aiIBKAIAIQQgASADQfAAaigCADYCACADQShqIAQ2AgAgAykDMCEMIAMgAykCaDcDMCADIAw3AyAgA0GoAWogA0HIAGooAgA2AgAgAyADKQJANwOgAQwBCyAFIAJBBXQiCRC5BCADQThqIgEoAgAhBCABIANB8ABqKAIANgIAIANBKGogBDYCACADKQMwIQwgAyADKQJoNwMwIAMgDDcDICADQagBaiADQcgAaigCADYCACADIAMpAkA3A6ABIAJB////H0sEQEEAIQEMCAtB2b7CAC0AABpBCCEBIAlBCBCwBCIFRQ0HQQAhASACIQQDQCABIAlGDQEgASAFaiIGIAEgCGoiBykDADcDACAGQRhqIAdBGGopAwA3AwAgBkEQaiAHQRBqKQMANwMAIAZBCGogB0EIaikDADcDACABQSBqIQEgBEEBayIEDQALCyADIAI2AugBIAMgBTYC5AEgAyACNgLgASADQcABaiIBIANB4AFqIANB0ABqEF0gA0GAAmoiBCABEL0CIANB9ABqIANBoAFqIAQQ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IiQ3AwAgBUG4BmogAUEIaikDACIlNwMAIA0gAUEgaikDADcDACANQRhqIgcgAUE4aikDADcDACANQRBqIg4gAUEwaikDADcDACANQQhqIhcgAUEoaikDADcDACAFIAEpAwAiJjcDsAYgBUH4A2ogIzcDACAFQfADaiAkNwMAIAVB6ANqICU3AwAgBUGYBGogBUHoBmoiECkDADcDACAFQZAEaiAFQeAGaiIRKQMANwMAIAVBiARqIAVB2AZqIhIpAwA3AwAgBUGABGogDSkDADcDACAFICY3A+ADDAELIA1BGGoiByADIAlqIgFBOGopAwA3AwAgDUEQaiIOIAFBMGopAwA3AwAgDUEIaiIXIAFBKGopAwA3AwAgDSABQSBqKQMANwMAIAVB+ANqIAFBGGopAwA3AwAgBUHwA2ogAUEQaikDADcDACAFQegDaiABQQhqKQMANwMAIAVBmARqIAVB6AZqIhApAwA3AwAgBUGQBGogBUHgBmoiESkDADcDACAFQYgEaiAFQdgGaiISKQMANwMAIAVBgARqIA0pAwA3AwAgBSABKQMANwPgAwsgDSABQeAAaikDADcDACAXIAFB6ABqKQMANwMAIA4gAUHwAGopAwA3AwAgByABQfgAaikDADcDACAMIAFBQGspAwA3AwAgDEEIaiABQcgAaikDADcDACAMQRBqIAFB0ABqKQMANwMAIAxBGGogAUHYAGopAwA3AwAgDEEgaiANKQMANwMAIAxBKGogEikDADcDACAMQTBqIBEpAwA3AwAgDEE4aiAQKQMANwMAIAUoAqwDIAZGBEAgBUGsA2oQnAMgBSgCsAMhCwsgCSALaiAFQeADakGAARDPBBogBSAGQQFqIgY2ArQDIAlBgAFqIQkgAiAGRw0ACwwCC0GA38AAQQ9BgOXAABD0AwALIAYgAUHw5MAAENYDAAtB2b7CAC0AABpBGEEEELAEIgkEQCAFKALMAiEXAkAgBSgC0AIiB0UEQEEIIRBBCCERDAELIAdBBXQhDiAHQf///x9LBEBBACEBDAgLQdm+wgAtAAAaQQghASAOQQgQsAQiEEUNB0EAIQEgByEEA0AgASAORwRAIAEgEGoiESABIBdqIhIpAwA3AwAgEUEYaiASQRhqKQMANwMAIBFBEGogEkEQaikDADcDACARQQhqIBJBCGopAwA3AwAg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CUGgBWoiFyAJQUBrKQMANwMAIAlBmAVqIhggCUE4aikDADcDACALQQhqIhogCUEIaikDADcDACALQRBqIhsgCUEQaikDADcDACALQRhqIhwgCUEYaikDADcDACALQSBqIh0gCUEgaikDADcDACALQShqIh4gCUEoaikDADcDACAJIAkpAzA3A5AFIAlB4AZqIiAgCUGQBWoiIUHgABDPBBogDCADICVqIgpBKGoiKikDADcDACAOIApBIGoiKykDADcDACAWIApBGGoiLCkDADcDACAXIApBEGoiLSkDADcDACAYIApBCGoiLikDADcDACALIApBMGoiLykDADcDACAaIApBOGoiMCkDADcDACAbIApBQGsiMSkDADcDACAcIApByABqIjIpAwA3AwAgHSAKQdAAaiIzKQMANwMAIB4gCkHYAGoiNCkDADcDACAJIAopAwA3A5AFIAlB8AlqIiIgIUHgABDPBBogISAiEKICIAlBgAJqIjUgICAhEFQgDCAJQbgBaikDADcDACAOIAlBsAFqKQMANwMAIBYgCUGoAWopAwA3AwAgFyAJQaABaikDADcDACAYIAlBmAFqKQMANwMAIAsgCSkDYDcDACAaIAlB6ABqKQMANwMAIBsgCUHwAGopAwA3AwAgHCAJQfgAaikDADcDACAdIAlBgAFqKQMANwMAIB4gCUGIAWopAwA3AwAgCSAJKQOQATcDkAUgCUHgBmogCUGQBWpB4AAQzwQaIAwgCkGIAWoiNikDADcDACAOIApBgAFqIjcpAwA3AwAgFiAKQfgAaiI4KQMANwMAIBcgCkHwAGoiOSkDADcDACAYIApB6ABqIjopAwA3AwAgCyAKQZABaiI7KQMANwMAIBogCkGYAWoiHykDADcDACAbIApBoAFqIiMpAwA3AwAgHCAKQagBaiIkKQMANwMAIB0gCkGwAWoiFCkDADcDACAeIApBuAFqIg0pAwA3AwAgCSAKQeAAaiIRKQMANwOQBSAJQfAJaiAJQZAFakHgABDPBBogISAiEKICIAlB4AJqIhkgICAhEFQgCUGIB2ogCUHoAWopAwA3AwAgCUGAB2ogCUHgAWopAwA3AwAgCUH4BmogCUHYAWopAwA3AwAgCUHwBmogCUHQAWopAwA3AwAgCUHoBmogCUHIAWopAwA3AwAgCSAJKQPAATcD4AYg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akIANwMAIANBMGpCADcDACADQThqQgA3AwAgA0FAa0IANwMAIANByABqQgA3AwAgA0HQAGpCADcDACADQdgAakIANwMAIANB4ABqQgA3AwAgA0HoAGpCADcDACADQfAAakIANwMAIANB+ABqQgA3AwAgA0GYAWpCADcDACADQZABakIANwMAIANBiAFqQgA3AwAgA0GAAWpCADcDACADQbgBakIANwMAIANBsAFqQgA3AwAgA0GoAWpCADcDACADQaABakIANwMAIANBwAFqQgA3AwAgA0HIAWpCADcDACADQdABakIANwMAIANB2AFqQgA3AwAgA0HgAWpCADcDACADQegBakIANwMAIANB8AFqQgA3AwAgA0H4AWpCADcDACADQYACaiEDIAVBCGsiBQ0ACwsgBEUNAANAIANCADcDACADQRhqQgA3AwAgA0EQakIANwMAIANBCGpCADcDACADQSBqIQMgBEEBayIEDQALCyADQgA3AwAgA0EYakIANwMAIANBEGpCADcDACADQQhqQgA3AwAgASgCBCIDIAZBBXRqIQZBACEBQQEhBUEAIQQDQAJAIAFBAXEEQCADIAZHDQEMBQsgBiADa0EFdiAFTQ0EIAQgBWohBCADIAVBBXRqIQMLIAJB+AZqIAStIgpCifWrnLWLv5ZzQgAQvQMgAkG4BmogAikD+AYiDUKJx5mkrvCB6Yd/fiILQsf688PtgqOQPEIAEL0DIAJBqAZqIAtCjZXHw5bS2sCXf0IAEL0DIAJBmAZqIAtC3bCFjOi2kai4f0IAEL0DIAJBiAZqIAtCqcDGia7Ok7IwQgAQvQMgAkHoBmogCkL7g5SinaLG87V/QgAQvQMgAkH4BWogAikDqAYiDyACQYAHaikDAHwiDCACQcAGaikDACANIAIpA7gGIgt8IAtUrXx8Ig0gAikD6AZ8Ig5CiceZpK7wgemHf34iC0LH+vPD7YKjkDxCABC9AyACQegFaiALQo2Vx8OW0trAl39CABC9AyACQdgFaiALQt2whYzotpGouH9CABC9AyACQcgFaiALQqnAxomuzpOyMEIAEL0DIAJB2AZqIApC9v+F0vDfx9XHAEIAEL0DIAJBuAVqIAIpA+gFIhAgAkHwBmopAwAgDSAOVq18IhEgDCANVq0gAkGwBmopAwAgDCAPVK18fCIPIAIpA5gG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kDxCABC9AyACQegBaiAKQo2Vx8OW0trAl39CABC9AyACQdgBaiAKQt2whYzotpGouH9CABC9AyACQcgBaiAKQqnAxomuzpOyMEIAEL0DIAJBiAFqIAsgDEIAEL0DIAJBKGogDSAMQgAQvQMgAkEYaiAQIAxCABC9AyACQQhqIBEgDEIAEL0DIAJB+ABqIAJBoAJqKQMAIBMgFlatfCIaIAIpA7gBfCILIAJB0ANqKQMAIBQgGFStfCIYIAIpA7gDfCIMIAIpA+gDfCINIBUgGVatIAJBgARqKQMAIBQgFVatfHx8IhAgAikDuAJ8IhEgDiAPVK0gAkHQAmopAwAgDyAXVK18fHwiDyACKQPoAnwiFCASIBNWrSACQYADaikDACAOIBJWrXx8fCIXfCIOIAIpA+gBfCISIAJBgAJqKQMAIAIpA/gBIgogFnwgClStfHwiEyACKQOIAXwiFUIAQonHmaSu8IHph38QvQMgAkHoAGogAkGAAWopAwAiCkLH+vPD7YKjkDxCABC9AyACQdgAaiAKQo2Vx8OW0trAl39CABC9AyACQcgAaiAKQt2whYzotpGouH9CABC9AyACQThqIApCqcDGia7Ok7IwQgAQvQMCQAJAIAJBQGspAwAgAkHQAWopAwAgAkHgAmopAwAgDSAQVq0gAkHwA2opAwAgDCANVq18fCACQcADaikDACAMIBhUrXx8IhYgAikDqAJ8IgogDyARVK0gAkHAAmopAwAgECARVq18fHwiDCACKQPYAnwiDSAMVK18IA0gDSAUIBdWrSACQfACaikDACAPIBRWrXx8fCINVq18IAogDFatIAJBsAJqKQMAIAogFlStfHx8Ig8gAikDmAF8IgogAkGwAWopAwAgDSACKQOoAXwiDCANVK18IAwgCyAOVq0gAkHAAWopAwAgCyAaVK18fHwiCyAMVK18fCIMIAIpA8gBfCINIAxUrXwgDSACQeABaikDACALIAsgAikD2AF8IgtWrXwgCyASIBNWrSACQfABaikDACAOIBJWrXx8fCIOIAtUrXx8IgsgDVStfCAKIAxWrSACQaABaikDACAKIA9UrXx8fCIQIAIpAwh8IgogAkEgaikDACALIAsgAikDGHwiC1atfCALIAsgAkEwaikDACACQZABaikDACATIBVWrXwiDSACKQMofCIMIA1UrXwg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IAQpA+ADIhd8IhIgCCAMVK0gBEHIBGopAwAiGyAKIAxWrXx8fCIKIAQpA6AFfCIMIApUrXwgDCAUIBZWrSAVIAggFFatfHx8IgggDFStfCIUIAogElStIARB6ANqKQMAIhUgDyASVq18fCISIA8gE1StfCITfCIKIAQpA9ADIhZ8IgwgBEG4BGopAwAgCCAIIAQpA7AEfCIIVq18IAggCCAFIA1UrSAbIA0gGFStfHx8IghWrXx8Ig0gBCkD0AR8Ig8gDVStfCAPIARB6ARqKQMAIhggCCAIIBp8IghWrXwgCCAIIAYgB1atIBggBSAGVq18fHwiCFatfHwiBSAPVK18Ig8gDCANVq0gBEHYA2opAwAiBiAKIAxWrXx8Ig0gCiAUVK0gEiATVq18fCISfCIKIAQpA8ADfCIMIAYgBSAFIBZ8IgVWrXwgBSAFIBUgGSAHIAlWrXwiByAXfCIGIAdUrXwgBiAGIAh8IgZWrXx8IgVWrXx8IgcgBCkD8AN8IgggB1StfCAIIAggBEGIBGopAwAiFCAFIAUgBCkDgAQiE3wiBVatfCAFIAUgFCAGIAYgE3wiBlatfCAGIAYgBEGYBGopAwAgCSAEKQOQBCIJfCAJVK18fCIGVq18fCIFVq18fCIIVq18IgkgByAMVK0gBEHIA2opAwAgCiAMVq18fCIMIAogD1StIA0gElatfHwiCnwiB0IAUyAHIAlUrUIAIAogDFStfVJyDQACQCAHQv///////////wBRBEBCfyEKIAhCf1ENAUL///////////8AIQcLIAghCiAFIQkMAgsgBUJ/UgRAQv///////////wAhByAFIQkMAgsgBkJtWg0AQv///////////wAhB0J/IQkMAQsgBUIBfCIKIAZCbVStIgx9IQkgCEIBfCINIAVCf1IgCiAMVHKtIgV9IQogByAIQn9SIAUgDVZyrX1C////////////AH0hByAGQhN8IQYLIAQgBjcD2AYgBCAJNwPQBiAEIAo3A8gGIAQgBzcDwAYgBEGgBmogBEHABmogAxCFASAEQYADaiABKQMYIgUgC0IAEL0DIARBkAJqIAEpAxAiBiALQgAQvQMgBEGgAWogASkDCCIHIAtCABC9AyAEQTBqIAEpAwAiCSALQgAQvQMgBEHwAmogBCkDgAMiC0KblK/D8rWo3oZ/fiIIQm1CABC9AyAEQeACaiAIQn9CABC9AyAEQdACaiAIQv///////////wBCABC9AyAEQZADaiAFIA5CABC9AyAEQaACaiAGIA5CABC9AyAEQbABaiAHIA5CABC9AyAEQUBrIAkgDkIAEL0DIARBgAJqIAQpA+ACIgggBEGIA2opAwAiDSAEKQOQAnwiD3wiCiAEQfgCaikDACALIAQpA/ACIg58IA5UrXx8IgsgBCkDkAN8Ig5Cm5Svw/K1qN6Gf34iDEJtQgAQvQMgBEHwAWogDEJ/QgAQvQMgBEHgAWogDEL///////////8AQgAQvQMgBEGgA2ogBSAQQgAQvQMgBEGwAmogBiAQQgAQvQMgBEHAAWogByAQQgAQvQMgBEHQAGogCSAQQgAQvQMgBEGQAWogBEGYA2opAwAgCyAOVq18IhIgBCkDoAJ8IhAgCCAEQZgCaikDACANIA9WrXwiFCAEKQOgAXwiDHwiDSAKIAtWrSAEQegCaikDACITIAggClatfHx8IhV8IgggBCkD8AEiFnwiCiAEQYgCaikDACAEKQOAAiILIA58IAtUrXx8IgsgBCkDoAN8Ig5Cm5Svw/K1qN6Gf34iD0JtQgAQvQMgBEGAAWogD0J/QgAQvQMgBEHwAGogD0L///////////8AQgAQvQMgBEGwA2ogBSARQgAQvQMgBEHAAmogBiARQgAQvQMgBEHQAWogByARQgAQvQMgBEHgAGogCSARQgAQvQMgBEEgaiAEQagDaikDACALIA5WrXwiDyAEKQOwAnwiBSAWIARBqAFqKQMAIAwgFFStfCIUIAQpAzB8IgYgBCkD0AJ8IgcgDSAVVq0gEyAMIA1WrXx8fCIJIAQpA7ABfCIRIAggEFStIARBqAJqKQMAIBAgElStfHx8IhB8IgwgCiALVq0gBEH4AWopAwAiEiAIIApWrXx8fCITfCIIIAQpA4ABIhV8IgogBEGYAWopAwAgBCkDkAEiCyAOfCALVK18fCILIAQpA7ADfCIOQpuUr8Pytajehn9+Ig1CbUIAEL0DIARBEGogDUJ/QgAQvQMgBCANQv///////////wBCABC9AwJAAkAgBEEIaikDACAEQfgAaikDACAEQegBaikDACAHIAlWrSAEQdgCaikDACAGIAdWrXx8Ig0gBEE4aikDACAGIBRUrXx8IgYgBCkDQHwiByAQIBFUrSAEQbgBaikDACAJIBFWrXx8fCIJIAQpA+ABfCIRIAlUrXwgESAMIBNWrSASIAwgEFStfHx8IhAgEVStfCIRIAcgCVatIARByABqKQMAIAYgB1atfHwiDCAGIA1UrXwiDXwiBiAEKQNQfCIHIARByAFqKQMAIBAgBCkDwAF8IgkgEFStfCAJIAUgCFatIARBuAJqKQMAIAUgD1StfHx8IgUgCVStfHwiCSAEKQNwfCIQIAlUrXwgECAEQYgBaikDACIPIAUgBSAVfCIFVq18IAUgCiALVq0gDyAIIApWrXx8fCIKIAVUrXx8IgUgEFStfCIQIAcgCVatIARB2ABqKQMAIAYgB1atfHwiDyAGIBFUrSAMIA1WrXx8IhF8IgYgBCkDYHwiCCAEQdgBaikDACAFIAUgBCkD0AF8IgVWrXwgBSAFIARByAJqKQMAIARBuANqKQMAIAsgDlatfCIJIAQpA8ACfCIHIAlUrXwgByAHIAp8IgdWrXx8IgVWrXx8IgogBCkDAHwiCSAKVK18IAkgCSAEQRhqKQMAIgsgBSAFIAQpAxAiDHwiBVatfCAFIAsgByAHIAx8IgdWrXwgByAEQShqKQMAIAQpAyAiCyAOfCALVK18fCILIAdUrXx8IgcgBVStfHwiCVatfCIFIAggClatIARB6ABqKQMAIAYgCFatfHwiCCAGIBBUrSAPIBFWrXx8IgZ8IgpCAFMgBSAKVq1CACAGIAhUrX1Scg0AAkAgCkL///////////8AUQRAQn8hBiAJQn9RDQFC////////////ACEKCyAJIQYgByEFDAILIAdCf1IEQEL///////////8AIQogByEFDAILIAtCbVoNAEL///////////8AIQpCfyEFDAELIAdCAXwiBiALQm1UrSIIfSEFIAlCAXwiDiAHQn9SIAYgCFRyrSIHfSEGIAogCUJ/UiAHIA5Wcq19Qv///////////wB9IQogC0ITfCELCyAEKQOgBiIOIAp8IgcgBCkDqAYiCSAGfCIGIAlUIAYgBCkDsAYiCSAFfCIFIAlUIAUgBCkDuAYiCSALfCIKIAlUrXwiCSAFVHKtfCILIAZUcq18IQgCQAJAAkAgByAOVCAHIAhWcg0AQv///////////wAhBiAIIgVC////////////AFEEQEJ/IQZC////////////ACEFIAtCf1INAiAJQn9SBEAgCSEHDAQLQm0hBiAKIgVCbVENAQsgBSAGWg0AIAghBQwBCyAJQgF8IgUgCkJtVK0iBn0hByALQgF8Ig4gCUJ/UiAFIAZUcq0iBX0hBiAIIAtCf1IgBSAOVnKtfUL///////////8AfSEFIApCE3whCgwBCyALIQYgCSEHCyAFIAIpAwB8IgggBiAGIAIpAwh8IgZWIAYgByAHIAIpAxB8IgdWIAcgByAKIAIpAxh8IgsgClStfCIHVnKtfCIKIAZUcq18IQkCQAJAAkAgBSAIViAIIAlWcg0AQv///////////wAhBSAJIgZC////////////AFEEQEJ/IQVC////////////ACEGIApCf1INAiAHQn9SBEAgByEIDAQLQm0hBSALIgZCbVENAQsgBSAGWA0AIAkhBgwBCyAHQgF8IgUgC0JtVK0iBn0hCCAKQgF8Ig4gB0J/UiAFIAZUcq0iBn0hBSAJIApCf1IgBiAOVnKtfUL///////////8AfSEGIAtCE3whCwwBCyAKIQUgByEICyAAIAs3AxggACAINwMQIAAgBTcDCCAAIAY3AwAgBEHgBmokAAvtJQIEfxF+IwBBkARrIgMkAAJAIAJByNTBAEEwENAEBEAgA0HAAmpCADcDACADQbgCakIANwMAIANBsAJqQgA3AwAgA0GoAmpCADcDACADQgA3A6ACIANCATcDyAJBKCEGIANB+AJqIAJBKGopAwA3AwAgA0HwAmogAkEgaikDADcDACADQegCaiACQRhqKQMANwMAIANB4AJqIAJBEGopAwA3AwAgA0HYAmogAkEIaikDADcDACADIAIpAwA3A9ACIANBqANqQdjSwQApAwA3AwAgA0GgA2pB0NLBACkDADcDACADQZgDakHI0sEAKQMANwMAIANBkANqQcDSwQApAwA3AwAgA0GIA2pBuNLBACkDADcDACADQbDSwQApAwA3A4ADIANB2ANqQaDVwQApAwA3AwAgA0HQA2pBmNXBACkDADcDACADQcgDakGQ1cEAKQMANwMAIANBwANqIgVBiNXBACkDADcDACADQbgDakGA1cEAKQMANwMAIANB+NTBACkDADcDsAMgA0GIBGpCADcDACADQYAEakIANwMAIANB+ANqQgA3AwAgA0HwA2oiAkIANwMAIANB6ANqQgA3AwAgA0IANwPgAyADQdACaiADQaACakEwENAERQRAQqrHq5bZ/KPMESEPQq2q5qjb0M+8mn8hBwwCCyADQYADaiADQaACakEwENAERQRAIAIhBQwCC0Kr1f7///+//7l/IQ0DQCADLQD4AkEBcUUEQANAIANB0AJqEMMCIAMpA9gDIghCAYNQRQRAIAMpA9ADIQogAyAIQtWqgYCAgMCAxgB9Igc3A9gDIAMgCkL//8+K6///1R58IgsgByAIVK18Igc3A9ADIAMgAykDyAMiCEKk7MO1j9S0mOcAfCIJIAcgC1QgCiALVnKtfCIHNwPIAyADIAMpA8ADIgtCv6WUnM/w0rvkAHwiCiAHIAlUIAggCVZyrXwiBzcDwAMgAyADKQO4AyIIQtfZrprk9umNywB8IgkgCiALVCAHIApUcq18Igc3A7gDIAMgAykDsAMgByAJVCAIIAlWcq18QprN/8ujvcSAGnw3A7ADCyADQbADahDDAiADLQD4AkEBcUUNAAsgAykDqAMhDQsgDadBAXFFBEADQCADQYADahDDAiADKQOIBCIIQgGDUEUEQCADKQOABCEKIAMgCELVqoGAgIDAgMYAfSIHNwOIBCADIApC///Piuv//9UefCILIAcgCFStfCIHNwOABCADIAMpA/gDIghCpOzDtY/UtJjnAHwiCSAHIAtUIAogC1ZyrXwiBzcD+AMgAyADKQPwAyILQr+llJzP8NK75AB8IgogByAJVCAIIAlWcq18Igc3A/ADIAMgAykD6AMiCELX2a6a5PbpjcsAfCIJIAogC1QgByAKVHKtfCIHNwPoAyADIAMpA+ADIAcgCVQgCCAJVnKtfEKazf/Lo73EgBp8NwPgAwsgA0HgA2oQwwIgAykDqAMiDUIBg1ANAAsLIAMpA9gCIQkCQCADAn4CQAJAAkACfiADKQOAAyIWIAMpA9ACIhVSBEAgAykDkAMhCiADKQOIAyEMIBYhByAVIQ8gAykD4AIMAQsgAykDkAMhCiADKQPgAiEIIAkgAykDiAMiDFIEQCAMIQcgCSEPIAgMAQsgCCAKUgRAIAkhDCAKIQcgCCEPIAgMAQsgAykDmAMiByADKQPoAiIPUgRAIAghCiAJIQwgCAwBCyADKQOgAyIQIAMpA/ACIg9SBEAgCCEKIAkhDCAQIQcgCAwBCyANIAMpA/gCIg9RDQEgCCEKIAkhDCANIQcgCAshCyAHIA9UIAMpA+ADIRIgAykDsAMhDyADKQOgAyEQIAMpA5gDIQcgAykD+AIhDiADKQPwAiERIAMpA+gCIRMEQCAKIQgMAgsgAyANIA59IhQ3A6gDIAMgECARfSIXIA0gDlStIgh9NwOgAyADIAcgE30iDiAQIBFUIAggF1ZyrSIIfTcDmAMgAyAKIAt9Ig0gByATVCAIIA5Wcq0iB303A5ADIAMgDCAJfSIIIAogC1QgByANVnKtIgd9NwOIAyADIBYgFX0gCSAMViAHIAhWcq19NwOAAyADKQPoAyEMAkACQCAPIBJSBEAgAykDwAMhCSADKQO4AyEHIAMpA/ADIQ4gEiENIA8hCgwBCyADKQPAAyEJIAMpA/ADIQ4gAykDuAMiByAMUgRAIAwhDSAHIQoMAQsgCSAOUgRAIAwhByAOIQ0gCSEKDAELIAMpA/gDIhAgAykDyAMiClIEQCAOIQkgDCEHIBAhDQwBCyADKQOABCILIAMpA9ADIgpSBEAgDiEJIAwhByALIQ0MAQsgDiEJIAwhByADKQOIBCINIREgCyETIBAhCCANIAMpA9gDIgpRDQELIAogDVYgAykD2AMhDSADKQPQAyELIAMpA8gDIRAgAykDiAQhESADKQOABCETIAMpA/gDIQgNAwsgAyARIA19NwOIBCADIBMgC30iFSANIBFWrSIKfTcDgAQgAyAIIBB9Ig0gCiAVViALIBNWcq0iC303A/gDIAMgDiAJfSIKIAggEFQgCyANVnKtIgh9NwPwAyADIAwgB30iCyAIIApWIAkgDlZyrSIIfSIJNwPoAyASIA99IAggC1YgByAMVnKtfQwDCyADKQPgAyESIAMpA7ADIQ8gCSEMIA0hDiAQIREgByETIAghCwsgAyAOIA19NwP4AiADIBEgEH0iFCANIA5WrSIKfTcD8AIgAyATIAd9Ig4gCiAUViAQIBFWcq0iCn03A+gCIAMgCyAIfSIQIAogDlYgByATVnKtIgd9NwPgAiADIAkgDH0iCiAIIAtWIAcgEFZyrSIHfTcD2AIgAyAVIBZ9IAkgDFQgByAKVnKtfTcD0AIgAykDuAMhDCADAn4CQAJAAkAgDyASUgRAIAMpA/ADIRAgAykD6AMhCSADKQPAAyERIA8hByASIRQMAQsgAykD8AMhECADKQPAAyERIAMpA+gDIgkgDFIEQCAMIQcgCSEUDAELIBAgEVIEQCAMIQkgESEHIBAhFAwBCyADKQPIAyILIAMpA/gDIhRSBEAgESEQIAwhCSALIQcMAQsgAykD0AMiDiADKQOABCIUUgRAIBEhECAMIQkgDiEHDAELIBEhECAMIQkgAykD2AMiByETIA4hCCALIQogByADKQOIBCIUUQ0BCyAHIBRUIAMpA4gEIQcgAykDgAQhDiADKQP4AyELIAMpA9gDIRMgAykD0AMhCCADKQPIAyEKDQELIAMgEyAHfTcD2AMgAyAIIA59IhUgByATVq0iB303A9ADIAMgCiALfSIUIAggDlQgByAVVnKtIgd9NwPIAyADIBEgEH0iCCAKIAtUIAcgFFZyrSIHfTcDwAMgAyAMIAl9IgsgByAIViAQIBFWcq0iCH0iBzcDuAMgDyASfSAIIAtWIAkgDFZyrX0MAQsgA0Kr1f7///+//7l/IAd9IhYgE3wiFDcD2AMgAyAIQv//z4rr///VHiAOfSIVIAdCq9X+////v/+5f1atIgh9IhN8IhcgFCAWVK18Igc3A9ADIAMgCkKk7MO1j9S0mOcAIAt9IhQgCCAVViAOQv//z4rr///VHlZyrSIIfSIKfCIVIAcgF1QgEyAXVnKtfCIHNwPIAyADIBFCv6WUnM/w0rvkACAQfSIRIAggFFYgC0Kk7MO1j9S0mOcAVnKtIgh9Ig58IhQgByAVVCAKIBVWcq18Igc3A8ADIANC19mumuT26Y3LACAJfSIKIAggEVYgEEK/pZScz/DSu+QAVnKtIgt9IgggDHwiECAHIBRUIA4gFFZyrXwiBzcDuAMgByAQVCAIIBBWcq0gDyASfSAKIAtUIAlC19mumuT26Y3LAFZyrX18QprN/8ujvcSAGnwLIg83A7ADDAILIAMgEUKr1f7///+//7l/IA19IhF8Igo3A4gEIAMgE0L//8+K6///1R4gC30iFSANQqvV/v///7//uX9WrSINfSITfCIWIAogEVStfCIKNwOABCADIAhCpOzDtY/UtJjnACAQfSIRIA0gFVYgC0L//8+K6///1R5Wcq0iCH0iDXwiFSAKIBZUIBMgFlZyrXwiCjcD+AMgA0K/pZScz/DSu+QAIAl9IgsgCCARViAQQqTsw7WP1LSY5wBWcq0iCH0iECAOfCIRIAogFVQgDSAVVnKtfCINNwPwAyADQtfZrprk9umNywAgB30iCiAIIAtWIAlCv6WUnM/w0rvkAFZyrSILfSIIIAx8Ig4gDSARVCAQIBFWcq18Igk3A+gDIAkgDlQgCCAOVnKtIBIgD30gCiALVCAHQtfZrprk9umNywBWcq19fEKazf/Lo73EgBp8CyISNwPgAyAUIQ0LIANB0AJqIANBoAJqIgRBMBDQBEUNAiADQYADaiAEQTAQ0AQNAAsgAiEFIAkhByASIQ8MAQsgA0ICNwPgA0GA08EAQSsgA0HgA2pBrNPBAEG41MEAEL4DAAsgA0GYAmogBUEYaikDACILNwMAIANBkAJqIAVBEGopAwAiCDcDACADQegBaiAFQQhqKQMANwMAIANB8AFqIAg3AwAgA0H4AWogCzcDACADIAc3A9gBIAMgDzcD0AEgAyAFKQMANwPgASABKQMAIRMgASkDCCEUIAEpAxAhESABKQMYIRAgASkDICENIAEpAyghCkIAIQdCACEOQgAhDEIAIQlCACESQgAhDwNAIANB8ABqIANB0AFqIAZqKQMAIgggCkIAEL0DIANBgAFqIAggDUIAEL0DIANBkAFqIAggEEIAEL0DIANBoAFqIAggEUIAEL0DIANBsAFqIAggFEIAEL0DIANBwAFqIAggE0IAEL0DIANB4ABqIAMpA3AiCyAHfCIXQgBC/f/z/8////mJfxC9AyADQdAAaiADQegAaikDACIHQqvV/v///7//uX9CABC9AyADQUBrIAdC///Piuv//9UeQgAQvQMgA0EwaiAHQqTsw7WP1LSY5wBCABC9AyADQSBqIAdCv6WUnM/w0rvkAEIAEL0DIANBEGogB0LX2a6a5PbpjcsAQgAQvQMgAyAHQprN/8ujvcSAGkIAEL0DIANBCGopAwAgAykDwAEiCCAPfCIWIANBuAFqKQMAIAMpA7ABIgcgEnwiEiAHVK18IBIgA0GoAWopAwAgAykDoAEiByAJfCIPIAdUrXwgDyADQZgBaikDACADKQOQASIHIAx8IgwgB1StfCAMIANBiAFqKQMAIAMpA4ABIgcgDnwiCSAHVK18IAkgA0H4AGopAwAgCyAXVq18fCIHIAlUrXx8Ig4gDFStfHwiCSAPVK18fCILIBJUrXx8IhUgAykDAHwiEiAVVK18IBIgEiADQRhqKQMAIAsgAykDEHwiDyALVK18IA8gA0EoaikDACAJIAMpAyB8IgwgCVStfCAMIAwgA0E4aikDACAOIAMpAzB8IgkgDlStfCAJIANByABqKQMAIAcgAykDQCIHfCILIAdUrXwgCyADQdgAaikDACADKQNQIgcgF3wgB1StfHwiByALVK18fCIOIAlUrXx8IgxWrXx8IgkgD1StfHwiElatfCAVIBZUrSADQcgBaikDACAIIBZWrXx8fCEPIAZBCGsiBkF4Rw0ACwJAAkAgD0Kazf/Lo73EgBpWDQACQAJAAkACQCAPQprN/8ujvcSAGlINACASQtfZrprk9umNywBWDQQgEkLX2a6a5PbpjcsAUgRAQprN/8ujvcSAGiEPDAELIAlCv6WUnM/w0rvkAFYNBELX2a6a5PbpjcsAIQ0gCUK/pZScz/DSu+QAUgRAQprN/8ujvcSAGiEPDAILIAxCpOzDtY/UtJjnAFYNBEK/pZScz/DSu+QAIRAgDEKk7MO1j9S0mOcAUgRAQprN/8ujvcSAGiEPDAMLIA5C///Piuv//9UeVg0EQqTsw7WP1LSY5wAhESAOQv//z4rr///VHlENA0Kazf/Lo73EgBohDyAOIQsMBQsgEiENCyAJIRALIAwhESAOIQsMAgtC///Piuv//9UeIQsgB0Kq1f7///+//7l/Vg0AQprN/8ujvcSAGiEPDAELIA5C///Piuv//9UefSINIAdCq9X+////v/+5f1StIgh9IQsgDEKk7MO1j9S0mOcAfSIKIA5C///Piuv//9UeVCAIIA1Wcq0iCH0hESAJQr+llJzP8NK75AB9Ig0gDEKk7MO1j9S0mOcAVCAIIApWcq0iCH0hECASQtfZrprk9umNywB9IgogCUK/pZScz/DSu+QAVCAIIA1Wcq0iCH0hDSAPIBJC19mumuT26Y3LAFQgCCAKVnKtfUKazf/Lo73EgBp9IQ8gB0LVqoGAgIDAgMYAfCEHCyAAIAc3AyggACALNwMgIAAgETcDGCAAIBA3AxAgACANNwMIIAAgDzcDACADQZAEaiQAC/EhAgF/FH4jAEGACWsiAyQAIANBgAdqIAEpAxgiCSACKQMYIgRCABC9AyADQZAHaiABKQMQIgggBEIAEL0DIANBoAdqIAEpAwgiBiAEQgAQvQMgA0GwB2ogASkDACINIARCABC9AyADQfAGaiADKQOAByIFQgBCiceZpK7wgemHfxC9AyADQeAGaiADQfgGaikDACIEQsf688PtgqOQPEIAEL0DIANB0AZqIARCjZXHw5bS2sCXf0IAEL0DIANB8AVqIARC3bCFjOi2kai4f0IAEL0DIANBkAVqIARCqcDGia7Ok7IwQgAQvQMgA0HAB2ogAikDECIEIAlCABC9AyADQdAHaiAEIAhCABC9AyADQeAHaiAEIAZCABC9AyADQfAHaiAEIA1CABC9AyADQcAGaiADKQPQBiIOIANBiAdqKQMAIgwgAykDkAd8Igd8IgsgA0HoBmopAwAgBSADKQPgBiIEfCAEVK18fCIFIAMpA8AHfCIPQgBCiceZpK7wgemHfxC9AyADQbAGaiADQcgGaikDACIEQsf688PtgqOQPEIAEL0DIANBoAZqIARCjZXHw5bS2sCXf0IAEL0DIANBkAZqIARC3bCFjOi2kai4f0IAEL0DIANBgAZqIARCqcDGia7Ok7IwQgAQvQMgA0GACGogAikDCCIEIAlCABC9AyADQZAIaiAEIAhCABC9AyADQaAIaiAEIAZCABC9AyADQbAIaiAEIA1CABC9AyADQeAFaiADQcgHaikDACAFIA9WrXwiESADKQPQB3wiCiADQZgHaikDACAHIAxUrXwiECADKQOgB3wiDCADKQPwBXwiByAFIAtUrSADQdgGaikDACALIA5UrXx8fCIUfCILIAMpA6AGfCIFIANBuAZqKQMAIAMpA7AGIgQgD3wgBFStfHwiDyADKQOACHwiDkIAQonHmaSu8IHph38QvQMgA0HQBWogA0HoBWopAwAiBELH+vPD7YKjkDxCABC9AyADQcAFaiAEQo2Vx8OW0trAl39CABC9AyADQbAFaiAEQt2whYzotpGouH9CABC9AyADQaAFaiAEQqnAxomuzpOyMEIAEL0DIANBwAhqIAIpAwAiBCAJQgAQvQMgA0HQCGogBCAIQgAQvQMgA0HgCGogBCAGQgAQvQMgA0HwCGogBCANQgAQvQMgA0GABWogA0GICGopAwAgDiAPVK18IhUgAykDkAh8IhMgA0GoB2opAwAgDCAQVK18IhYgAykDsAd8IhAgAykDkAV8IhIgByAUVq0gA0H4BWopAwAgByAMVK18fHwiDCADKQPgB3wiByAKIAtWrSADQdgHaikDACAKIBFUrXx8fCIKIAMpA5AGfCIRIAUgD1atIANBqAZqKQMAIAUgC1StfHx8IhR8IgsgAykDwAV8IgUgA0HYBWopAwAgAykD0AUiBCAOfCAEVK18fCIPIAMpA8AIfCIOQgBCiceZpK7wgemHfxC9AyADQfAEaiADQYgFaikDACIEQsf688PtgqOQPEIAEL0DIANB4ARqIARCjZXHw5bS2sCXf0IAEL0DIANB0ARqIARC3bCFjOi2kai4f0IAEL0DIANBwARqIARCqcDGia7Ok7IwQgAQvQMCQAJAIANByARqKQMAIANBqAVqKQMAIANBiAZqKQMAIAwgElStIANBmAVqKQMAIBAgElatfHwgA0G4B2opAwAgECAWVK18fCIQIAMpA/AHfCIEIAcgClatIANB6AdqKQMAIAcgDFStfHx8IgwgAykDgAZ8IgcgDFStfCAHIBEgFFatIANBmAZqKQMAIAogEVatfHx8IgogB1StfCAEIAxWrSADQfgHaikDACAEIBBUrXx8fCIQIAMpA7AIfCIEIANBqAhqKQMAIAogCiADKQOgCHwiClatfCAKIAogCyATVK0gA0GYCGopAwAgEyAVVK18fHwiClatfHwiDCADKQOgBXwiByAMVK18IAcgA0G4BWopAwAgCiAKIAMpA7AFfCIKVq18IAogBSAPVq0gA0HIBWopAwAgBSALVK18fHwiBSAKVK18fCILIAdUrXwgBCAMVq0gA0G4CGopAwAgBCAQVK18fHwiByADKQPwCHwiCiADQegIaikDACALIAMpA+AIfCIEIAtUrXwgBCAEIANB2AhqKQMAIANByAhqKQMAIA4gD1StfCIPIAMpA9AIfCILIA9UrXwgCyAFIAt8IgtWrXx8IgRWrXx8Ig8gAykDwAR8IgUgD1StfCAFIAUgA0HYBGopAwAgBCAEIAMpA9AEfCIEVq18IAQgBCADQegEaikDACALIAsgAykD4AR8IgtWrXwgCyADQfgEaikDACADKQPwBCIMIA58IAxUrXx8IgwgC1StfHwiBFatfHwiBVatfCAKIA9WrSADQfgIaikDACAHIApWrXx8fCIKQqnAxomuzpOyMFYNAAJAIApCqcDGia7Ok7IwUQRAIAVC3bCFjOi2kai4f1YNAiAFQt2whYzotpGouH9SBEAgBCELIAUhD0KpwMaJrs6TsjAhCgwECyAEQo2Vx8OW0trAl39WDQJC3bCFjOi2kai4fyEPIARCjZXHw5bS2sCXf1ENASAEIQtCqcDGia7Ok7IwIQoMAwsgBCELIAUhDwwCC0KNlcfDltLawJd/IQsgDELH+vPD7YKjkDxaDQBCqcDGia7Ok7IwIQoMAQsgBELz6ri86a2lv+gAfCIPIAxCx/rzw+2Co5A8VK0iB30hCyAFQqPP+vOXye7XxwB8Ig4gBEKNlcfDltLawJd/VCAHIA9Wcq0iBH0hDyAKIAVC3bCFjOi2kai4f1QgBCAOVnKtfUKpwMaJrs6TsjB9IQogDELH+vPD7YKjkDx9IQwLIANBwAJqIAJBOGopAwAiBCAJQgAQvQMgA0HQAmogBCAIQgAQvQMgA0HgAmogBCAGQgAQvQMgA0HwAmogBCANQgAQvQMgA0GwAmogAykDwAIiB0IAQonHmaSu8IHph38QvQMgA0GgAmogA0G4AmopAwAiBELH+vPD7YKjkDxCABC9AyADQZACaiAEQo2Vx8OW0trAl39CABC9AyADQbABaiAEQt2whYzotpGouH9CABC9AyADQdAAaiAEQqnAxomuzpOyMEIAEL0DIANBgANqIAJBMGopAwAiBCAJQgAQvQMgA0GQA2ogBCAIQgAQvQMgA0GgA2ogBCAGQgAQvQMgA0GwA2ogBCANQgAQvQMgA0GAAmogAykDkAIiESADQcgCaikDACIQIAMpA9ACfCISfCIFIANBqAJqKQMAIAcgAykDoAIiBHwgBFStfHwiByADKQOAA3wiDkIAQonHmaSu8IHph38QvQMgA0HwAWogA0GIAmopAwAiBELH+vPD7YKjkDxCABC9AyADQeABaiAEQo2Vx8OW0trAl39CABC9AyADQdABaiAEQt2whYzotpGouH9CABC9AyADQcABaiAEQqnAxomuzpOyMEIAEL0DIANBwANqIAJBKGopAwAiBCAJQgAQvQMgA0HQA2ogBCAIQgAQvQMgA0HgA2ogBCAGQgAQvQMgA0HwA2ogBCANQgAQvQMgA0GgAWogA0GIA2opAwAgByAOVq18IhQgAykDkAN8IhMgA0HYAmopAwAgECASVq18IhUgAykD4AJ8IhAgAykDsAF8IhIgBSAHVq0gA0GYAmopAwAgBSARVK18fHwiFnwiBSADKQPgAXwiByADQfgBaikDACADKQPwASIEIA58IARUrXx8Ig4gAykDwAN8IhFCAEKJx5mkrvCB6Yd/EL0DIANBkAFqIANBqAFqKQMAIgRCx/rzw+2Co5A8QgAQvQMgA0GAAWogBEKNlcfDltLawJd/QgAQvQMgA0HwAGogBELdsIWM6LaRqLh/QgAQvQMgA0HgAGogBEKpwMaJrs6TsjBCABC9AyADQYAEaiACKQMgIgQgCUIAEL0DIANBkARqIAQgCEIAEL0DIANBoARqIAQgBkIAEL0DIANBsARqIAQgDUIAEL0DIANBQGsgA0HIA2opAwAgDiARVq18IhcgAykD0AN8IgkgA0HoAmopAwAgECAVVK18IhUgAykD8AJ8IgggAykDUHwiBiASIBZWrSADQbgBaikDACAQIBJWrXx8fCINIAMpA6ADfCIQIAUgE1StIANBmANqKQMAIBMgFFStfHx8IhMgAykD0AF8IhIgByAOVq0gA0HoAWopAwAgBSAHVq18fHwiFHwiBSADKQOAAXwiByADQZgBaikDACADKQOQASIEIBF8IARUrXx8Ig4gAykDgAR8IhFCAEKJx5mkrvCB6Yd/EL0DIANBMGogA0HIAGopAwAiBELH+vPD7YKjkDxCABC9AyADQSBqIARCjZXHw5bS2sCXf0IAEL0DIANBEGogBELdsIWM6LaRqLh/QgAQvQMgAyAEQqnAxomuzpOyMEIAEL0DAkACQCADQQhqKQMAIANB6ABqKQMAIANByAFqKQMAIAYgDVatIANB2ABqKQMAIAYgCFStfHwgA0H4AmopAwAgCCAVVK18fCIVIAMpA7ADfCIEIBAgE1atIANBqANqKQMAIA0gEFatfHx8IgggAykDwAF8IgYgCFStfCAGIAYgEiAUVq0gA0HYAWopAwAgEiATVK18fHwiBlatfCAEIAhWrSADQbgDaikDACAEIBVUrXx8fCINIAMpA/ADfCIEIANB6ANqKQMAIAYgAykD4AN8IgggBlStfCAIIAUgCVStIANB2ANqKQMAIAkgF1StfHx8IgkgCFStfHwiCCADKQNgfCIGIAhUrXwgBiADQfgAaikDACAJIAkgAykDcHwiCVatfCAJIAkgByAOVq0gA0GIAWopAwAgBSAHVq18fHwiCVatfHwiBSAGVK18IAQgCFatIANB+ANqKQMAIAQgDVSt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IgUgEVQgBSAPIAggDH0iD3wiCCAPVCAIQsf688PtgqOQPCANfSIPIAp8IgogD1StfCIPIAhUcq18IhEgBVRyrXxCqcDGia7Ok7IwfCEMIAkhEyAUIQUgByEICyADQaAEaiADQYAEakEgENAEDQALCyADQfADaiABKQMYIgYgDUIAEL0DIANBoANqIAEpAxAiBCANQgAQvQMgA0GQA2ogASkDCCIFIA1CABC9AyADQYADaiABKQMAIgggDUIAEL0DIANB4ANqIAMpA/ADIgpCiceZpK7wgemHf34iB0LH+vPD7YKjkDxCABC9AyADQdADaiAHQo2Vx8OW0trAl39CABC9AyADQcADaiAHQt2whYzotpGouH9CABC9AyADQbADaiAHQqnAxomuzpOyMEIAEL0DIANB8AJqIAYgC0IAEL0DIANBoAJqIAQgC0IAEL0DIANBkAJqIAUgC0IAEL0DIANBgAJqIAggC0IAEL0DIANB4AJqIAMpA9ADIhEgA0H4A2opAwAiDyADKQOgA3wiDHwiCSADQegDaikDACAKIAMpA+ADIgd8IAdUrXx8IgogAykD8AJ8Ig1CiceZpK7wgemHf34iB0LH+vPD7YKjkDxCABC9AyADQdACaiAHQo2Vx8OW0trAl39CABC9AyADQcACaiAHQt2whYzotpGouH9CABC9AyADQbACaiAHQqnAxomuzpOyMEIAEL0DIANB8AFqIAYgDkIAEL0DIANBoAFqIAQgDkIAEL0DIANBkAFqIAUgDkIAEL0DIANBgAFqIAggDkIAEL0DIANB4AFqIANB+AJqKQMAIAogDVatfCISIAMpA6ACfCILIANBqANqKQMAIAwgD1StfCIMIAMpA5ADfCIOIAMpA8ADfCIPIAkgClatIANB2ANqKQMAIAkgEVStfHx8IhN8IgkgAykD0AJ8IgogA0HoAmopAwAgAykD4AIiByANfCAHVK18fCINIAMpA/ABfCIRQonHmaSu8IHph39+IgdCx/rzw+2Co5A8QgAQvQMgA0HQAWogB0KNlcfDltLawJd/QgAQvQMgA0HAAWogB0LdsIWM6LaRqLh/QgAQvQMgA0GwAWogB0KpwMaJrs6TsjBCABC9AyADQfAAaiAGIBBCABC9AyADQSBqIAQgEEIAEL0DIANBEGogBSAQQgAQvQMgAyAIIBBCABC9AyADQeAAaiADQfgBaikDACANIBFWrXwiECADKQOgAXwiBCADQZgDaikDACAMIA5WrXwiDCADKQOAA3wiBSADKQOwA3wiCCAPIBNWrSADQcgDaikDACAOIA9WrXx8fCIHIAMpA5ACfCIOIAkgC1StIANBqAJqKQMAIAsgElStfHx8IgsgAykDwAJ8Ig8gCiANVq0gA0HYAmopAwAgCSAKVq18fHwiEnwiCSADKQPQAXwiCiADQegBaikDACADKQPgASIGIBF8IAZUrXx8Ig0gAykDcHwiEUKJx5mkrvCB6Yd/fiIGQsf688PtgqOQPEIAEL0DIANB0ABqIAZCjZXHw5bS2sCXf0IAEL0DIANBQGsgBkLdsIWM6LaRqLh/QgAQvQMgA0EwaiAGQqnAxomuzpOyMEIAEL0DAkAgA0E4aikDACADQbgBaikDACADQbgCaikDACAHIAhUrSADQbgDaikDACAFIAhWrXx8IANBiANqKQMAIAUgDFStfHwiDCADKQOAAnwiBiALIA5UrSADQZgCaikDACAHIA5WrXx8fCIFIAMpA7ACfCIIIAVUrXwgCCAIIA8gElatIANByAJqKQMAIAsgD1atfHx8IghWrXwgBSAGVK0gA0GIAmopAwAgBiAMVK18fHwiByADKQOAAXwiBiADQZgBaikDACAIIAMpA5ABfCIFIAhUrXwgBSAEIAlWrSADQagBaikDACAEIBBUrXx8fCIEIAVUrXx8IgUgAykDsAF8IgggBVStfCAIIANByAFqKQMAIAQgBCADKQPAAXwiBFatfCAEIAogDVatIANB2AFqKQMAIAkgClatfHx8IgkgBFStfHwiBCAIVK18IAUgBlStIANBiAFqKQMAIAYgB1StfHx8IgogAykDAHwiBiADQRhqKQMAIAQgBCADKQMQfCIEVq18IAQgBCADQShqKQMAIANB+ABqKQMAIA0gEVatfCIIIAMpAyB8IgUgCFStfCAFIAUgCXwiBVatfHwiBFatfHwiCCADKQMwfCIHIAhUrXwgByADQcgAaikDACAEIAQgAykDQHwiBFatfCAEIAQgA0HYAGopAwAgBSAFIAMpA1B8IgVWrXwgBSADQegAaikDACADKQNgIgkgEXwgCVStfHwiECAFVK18fCIEVq18fCIFIAdUrXwgBiAIVq0gA0EIaikDACAGIApUrXx8fCIM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EB0gCyAJKQNANwMAIBIgCUHIAGopAwA3AwAgDSAJQdAAaikDADcDACAMIAlB2ABqKQMANwMAIBQgCUHoAGopAwA3AwAgJyAJQfAAaikDADcDACAoIAlB+ABqKQMANwMAICkgCykDADcDACAqIA4pAwA3AwAgKyATKQMANwMAICwgESkDADcDACAJIAkpA2A3A9AEIAsgCkHgAGoiNCkDADcDACASIApB6ABqIjUpAwA3AwAgDSAKQfAAaiI2KQMANwMAIAwgCkH4AGoiNykDADcDACAeIApByABqIjgpAwA3AwAgHyAKQdAAaiI5KQMANwMAICAgCkHYAGoiOikDADcDACAhIAspAwA3AwAgIiAOKQMANwMAICMgEykDADcDACAkIBEpAwA3AwAgCSAKQUBrIjspAwA3A+AGIBcgGBCwAiAJQfABaiAVIBcQHSAoIAlBmAFqKQMANwMAICcgCUGQAWopAwA3AwAgFCAJQYgBaikDADcDACAJIAkpA4ABNwPQBCALIC0pAwA3AwAgEiAuKQMANwMAIA0gLykDADcDACAMIDApAwA3AwAgHiAxKQMANwMAIB8gMikDADcDACAgIDMpAwA3AwAgISALKQMANwMAICIgDikDADcDACAjIBMpAwA3AwAgJCARKQMANwMAIAkgCikDADcD4AYgCUGwAmogFSAYEE4gCSA/NwPoBCAJIDw3A+AEIAkgPjcD2AQgCSA9NwPQBCALIDQpAwA3AwAgEiA1KQMANwMAIA0gNikDADcDACAMIDcpAwA3AwAgHiA4KQMANwMAIB8gOSkDADcDACAgIDopAwA3AwAgISALKQMANwMAICIgDikDADcDACAjIBMpAwA3AwAgJCARKQMANwMAIAkgOykDADcD4AYgCUHwAmogFSAYEE4gAiAWRg0IIBAgCSkD8AE3AwAgLCAJQegBaikDADcDACArIAlB4AFqKQMANwMAICogCUHYAWopAwA3AwAgKSAJQdABaikDADcDACAoIAlByAFqKQMANwMAICcgCUHAAWopAwA3AwAgFCAJQbgBaikDADcDACAQQQhqIAlB+AFqKQMANwMAIBBBEGogCUGAAmopAwA3AwAgEEEYaiAJQYgCaikDADcDACAQQSBqIAlBkAJqKQMANwMAIBBBKGogCUGYAmopAwA3AwAgEEEwaiAJQaACaikDADcDACAQQThqIAlBqAJqKQMANwMAIAkgCSkDsAE3A9AEIAYgFkYNCSAIIBZGDQIgCUHgCGoiDSABIBlqIgpBQGsiEiAQEM8BIAlBoAlqIgwgCiAVEM8BIAlB4AVqIhQgDSAMEIcDIA0gFCAUEB0gDCAKIBUQlgIgCUGgBmoiFSANIAwQzwEgDCAKIBUQzwEgDSAUIAwQHSAlIA0gEhDPASAeIAlBqAZqKQMANwMAIB8gCUGwBmopAwA3AwAgICAJQbgGaikDADcDACAhIAlBwAZqKQMANwMAICIgCUHIBmopAwA3AwAgIyAJQdAGaikDADcDACAkIAlB2AZqKQMANwMAIAlB6AdqIAlB6AVqKQMANwMAIAlB8AdqIAlB8AVqKQMANwMAIAlB+AdqIAlB+AVqKQMANwMAIAkgCSkDoAY3A+AGIAkgCSkD4AU3A+AHIB1BGGogG0EYaikDADcDACAdQRBqIBtBEGopAwA3AwAgHUEIaiAbQQhqKQMANwMAIB0gGykDADcDACAMIBQgChAdIA0gDCASEM8BICYgCUHgB2ogDSAFIAcQByAXIBhBgAEQzwQaIBggF0GAARDPBBogCUG4A2oiEiAmQQhqKAIANgIAIAkgJikCADcDsAMgCSgCrAEiCiAJKAKkAUYEQCAJQaQBahCeAwsgCSgCqAEgCkEMbGoiDSAJKQOwAzcCACANQQhqIBIoAgA2AgAgCSAKQQFqNgKsASARIAlB6AJqKQMANwMAIBMgCUHgAmopAwA3AwAgDiAJQdgCaikDADcDACALIAlB0AJqKQMANwMAIAlB2ANqIAlByAJqKQMANwMAIAlB0ANqIAlBwAJqKQMANwMAIAlByANqIAlBuAJqKQMANwMAIAkgCSkDsAI3A8ADIA8gCSkD8AI3AwAgD0EIaiAJQfgCaikDADcDACAPQRBqIAlBgANqKQMANwMAIA9BGGogCUGIA2opAwA3AwAgD0EgaiAJQZADaikDADcDACAPQShqIAlBmANqKQMANwMAIA9BMGogCUGgA2opAwA3AwAgD0E4aiAJQagDaikDADcDACAJQaAJaiIOICUgDxDPASAJQdAEaiIRIAlB4AZqIgogCUHAA2oQzwEgCUHgCGoiEyAOIBEQhwMgCUGoCGogCUHoCGopAwA3AwAgCUGwCGogCUHwCGopAwA3AwAgCUG4CGogCUH4CGopAwA3AwAgHCAaKQMANwMAIBxBCGogGkEIaikDADcDACAcQRBqIBpBEGopAwA3AwAgHEEYaiAaQRhqKQMANwMAIAkgCSkD4Ag3A6AIIBEgEyAKEB0gDiARICUQzwEgCUHUBWogCUGgCGogDiAFIAcQByAJKAKsASIKIAkoAqQBRgRAIAlBpAFqEJ4DCyAJKAKoASAKQQxsaiIOIAkpAtQFNwIAIA5BCGogCUHcBWooAgA2AgAgCSAKQQFqNgKsASAZQYABaiEZIAVBIGohBSAHQSBqIQcgBCAWQQFqIhZHDQALCyAAIAkpAqQBNwIAIABBCGogCUGsAWooAgA2AgAgCUHgCWokAA8LIAggCEGw48AAENYDAAsgCSAJLQDBAzoAwANB+NXAAEErIAlBwANqQcDjwABBoOTAABC+AwALIAkgCS0AwQM6AMADQfjVwABBKyAJQcADakHA48AAQZDkwAAQvgMACyAJIAktAMEDOgDAA0H41cAAQSsgCUHAA2pBwOPAAEGA5MAAEL4DAAsgCSAJLQDBAzoAwANB+NXAAEErIAlBwANqQcDjwABB8OPAABC+AwALIAkgCS0AwQM6AMADQfjVwABBKyAJQcADakHA48AAQeDjwAAQvgMACyACIAJBkOPAABDWAwALIAYgBkGg48AAENYDAAsgCSAJLQDBAzoAwANB+NXAAEErIAlBwANqQcDjwABB0OPAABC+AwAL5RoCAX8WfiMAQeADayIDJAACQAJAIAJBqNXBAEEgENAEBEAgA0GQA2pCADcDACADQYgDakIANwMAIANCADcDgANCASELIANCATcDmAMgA0G4A2ogAkEYaikDADcDACADQbADaiACQRBqKQMANwMAIANBqANqIAJBCGopAwA3AwAgAyACKQMANwOgAyADQdgDakHo0cEAKQMANwMAIANB0ANqQeDRwQApAwA3AwAgA0HIA2pB2NHBACkDADcDACADQdDRwQApAwA3A8ADAkAgA0GgA2ogA0GAA2pBIBDQBEUEQEKhobqAoPQBIQgMAQtCoaG6gKD0ASEIIAMpA7gDIQUgAykDoAMhFiADKQOoAyEGIAMpA7ADIRNCr/j//28hBEJ/IRdCfyEHQn8hEgNAIANBwANqIANBgANqQSAQ0ARFBEAgESEQIA8hDSAOIQsgCiEIDAILIAWn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VnKtIgV9Igx9IhwgCSAbViAHQr+llJzP8NK75ABWcq0iB30hCSAHIBxWIAxC19mumuT26Y3LAFZyIQQgDSARfSEHQqvV/v///7//uX8gEH0hDCATIBRWIAUgClZyrSASIA99fEKazf/Lo73EgBp8DAELIBUgC30iBSAWIBdUrSIGfSEHIBkgGn0iCSAFIAZUIAsgFVZyrSIFfSEIIBggDn0iCiAZIBpUIAUgCVZyrSIFfSEGIBMgFH0iDSAFIApWIA4gGFZyrSIFfSEJIBMgFFQgBSANVnIhBCAWIBd9IQwgEiAPfQshBSADIBY3A4gEIAMgFTcDgAQgAyAZNwP4AyADIBg3A/ADIAMgEzcD6AMgAyASNwPgAyADQbADaiIBIANBgANqIANB4ANqIgIQ/wEgAyAXNwOIBCADIAs3A4AEIAMgGjcD+AMgAyAONwPwAyADIBQ3A+gDIAMgDzcD4AMgAEEwaiABIAIQ/wEgACAMNwMoIAAgBzcDICAAIAg3AxggACAGNwMQIAAgCTcDCCAAIAUgBK19NwMAIANBkARqJAALiRsCAX8WfiMAQaAEayIDJAACQAJAIAJBqNXBAEEgENAEBEAgA0HQA2pCADcDACADQcgDakIANwMAIANCADcDwAMgA0IBNwPYAyADQfgDaiACQRhqKQMANwMAIANB8ANqIAJBEGopAwA3AwAgA0HoA2ogAkEIaikDADcDACADIAIpAwA3A+ADIANBmARqQYjSwQApAwA3AwAgA0GQBGpBgNLBACkDADcDACADQYgEakH40cEAKQMANwMAIANB8NHBACkDADcDgAQCQCADQeADaiADQcADakEgENAERQRAQqQLIQsMAQtCpAshCyADKQP4AyEHIAMpA+ADIRYgAykD6AMhBCADKQPwAyETQm0hBUL///////////8AIRdCfyEGQn8hFANAIANBgARqIANBwANqQSAQ0ARFBEAgESEOIBAhCCAPIQwgCiELDAILIAenQQFxRQRAA0AgE0I/hiAHQgGIhCEHAkAgC0IBg1AEQCAIIQkgDCENIAshEgwBCyAOIAhCAFIgCEIBfSIIIAxCAFIgDEIBfSIJIAtCE30iEiALVK18Ig0gCVRyrXwiCSAIVHKtfEL///////////8AfCEOCyAWQj+GIARCP4YgE0IBiIQhEyAWQgGIIRYgDkI/hiAJQgGIhCEIIAlCP4YgDUIBiIQhDCANQj+GIBJCAYiEIQsgDkIBiCEOIARCAYiEIQQgB0IBg1ANAAsgAyATNwPwAyADIAc3A/gDIAMgBDcD6AMgAyAWNwPgAwsgBadBAXFFBEADQCAUQj+GIAVCAYiEIQUCQCAKQgGDUARAIBAhCSAPIQ0gCiESDAELIBEgEEIAUiAQQgF9IhAgD0IAUiAPQgF9IgkgCkITfSISIApUrXwiDSAJVHKtfCIJIBBUcq18Qv///////////wB8IRELIBdCP4YgBkI/hiAUQgGIhCEUIBdCAYghFyARQj+GIAlCAYiEIRAgCUI/hiANQgGIhCEPIA1CP4YgEkIBiIQhCiARQgGIIREgBkIBiIQhBiAFQgGDUA0ACyADIBQ3A5AEIAMgBTcDmAQgAyAGNwOIBCADIBc3A4AECwJAAkACQAJAIBYiDSAXIglSDQAgBiEJIAQhDSAEIAZSDQAgEyINIBQiCVINACAFIQkgByENIAUgB1ENAQsgCSANVA0AIAMgBSAHfSIJNwOYBCADIBQgE30iEiAFIAdUrSIFfSINNwOQBCADIAYgBH0iFSAFIBJWIBMgFFZyrSIFfSISNwOIBCADIBcgFn0gBSAVViAEIAZWcq19Ihc3A4AEAkACQCAOIgYgESIFUg0AIAgiBiAQIgVSDQAgDCIGIA8iBVINACALIgYgCiIFUQ0BCyAFIAZUDQILIBEgDn0gECAIfSIVIA8gDH0iGCAKIAtUrSIZVCAMIA9Wcq0iD1QgCCAQVnKtfSERIAogC30hCiANIRQgEiEGIAkhBSAVIA99IRAgGCAZfSEPDAILIAMgByAFfSIJNwP4AyADIBMgFH0iEiAFIAdWrSIHfSINNwPwAyADIAQgBn0iFSATIBRUIAcgElZyrSIHfSISNwPoAyADIBYgF30gBCAGVCAHIBVWcq19IhY3A+ADAkACQAJAIA4iByARIgRSDQAgCCIHIBAiBFINACAMIgcgDyIEUg0AIAsiByAKIgRRDQELIAQgB1YNAQsgDiARfSAIIBBUIAggEH0iCCAMIA9UIAwgD30iDCAKIAtWrSIVVHKtIhhUcq19IQ4gCyAKfSELIA0hEyASIQQgCSEHIAggGH0hCCAMIBV9IQwMAgsgDiARfSAQQn+FIgQgD0J/hSIHIApCbVatIg5UrSITVK19IAggBCATfSIIfCIEIAhUIAQgByAOfSIIIAx8IgcgCFQgB0JtIAp9IgggC3wiCyAIVK18IgwgB1RyrXwiCCAEVHKtfEL///////////8AfCEOIA0hEyASIQQgCSEHDAELIBFCf0IAIAhCf4UiBiAMQn+FIgUgC0JtVq0iEVStIhRUGyAOfXwgECAGIBR9IhB8IgYgEFQgBiAPIAUgEX0iD3wiBSAPVCAFQm0gC30iDyAKfCIKIA9UrXwiDyAFVHKtfCIQIAZUcq18Qv///////////wB8IREgDSEUIBIhBiAJIQULIANB4ANqIANBwANqQSAQ0AQNAAsLIANBsANqIAEpAxgiBCALQgAQvQMgA0HwAmogASkDECIGIAtCABC9AyADQeACaiABKQMIIgcgC0IAEL0DIANB0AJqIAEpAwAiBSALQgAQvQMgA0GgA2ogAykDsAMiDUKblK/D8rWo3oZ/fiIKQm1CABC9AyADQZADaiAKQn9CABC9AyADQYADaiAKQv///////////wBCABC9AyADQcACaiAEIAxCABC9AyADQYACaiAGIAxCABC9AyADQfABaiAHIAxCABC9AyADQeABaiAFIAxCABC9AyADQbACaiADKQOQAyIKIANBuANqKQMAIg8gAykD8AJ8IhB8IgkgA0GoA2opAwAgDSADKQOgAyILfCALVK18fCINIAMpA8ACfCILQpuUr8Pytajehn9+IgxCbUIAEL0DIANBoAJqIAxCf0IAEL0DIANBkAJqIAxC////////////AEIAEL0DIANB0AFqIAQgCEIAEL0DIANBkAFqIAYgCEIAEL0DIANBgAFqIAcgCEIAEL0DIANB8ABqIAUgCEIAEL0DIANBwAFqIANByAJqKQMAIAsgDVStfCIRIAMpA4ACfCIIIAogA0H4AmopAwAgDyAQVq18IhMgAykD4AJ8Igx8Ig8gCSANVq0gA0GYA2opAwAiFCAJIApUrXx8fCISfCIKIAMpA6ACIhZ8IgkgA0G4AmopAwAgAykDsAIiDSALfCANVK18fCINIAMpA9ABfCILQpuUr8Pytajehn9+IhBCbUIAEL0DIANBsAFqIBBCf0IAEL0DIANBoAFqIBBC////////////AEIAEL0DIANB4ABqIAQgDkIAEL0DIANBIGogBiAOQgAQvQMgA0EQaiAHIA5CABC9AyADIAUgDkIAEL0DIANB0ABqIANB2AFqKQMAIAsgDVStfCIOIAMpA5ABfCIEIBYgA0HoAmopAwAgDCATVK18IhMgAykD0AJ8IgYgAykDgAN8IgcgDyASVq0gFCAMIA9WrXx8fCIFIAMpA/ABfCIMIAggClatIANBiAJqKQMAIAggEVStfHx8Igh8Ig8gCSANVq0gA0GoAmopAwAiESAJIApUrXx8fCIUfCIKIAMpA7ABIhJ8IgkgA0HIAWopAwAgAykDwAEiDSALfCANVK18fCINIAMpA2B8IgtCm5Svw/K1qN6Gf34iEEJtQgAQvQMgA0FAayAQQn9CABC9AyADQTBqIBBC////////////AEIAEL0DAkAgA0E4aikDACADQagBaikDACADQZgCaikDACAFIAdUrSADQYgDaikDACAGIAdWrXx8IhAgA0HYAmopAwAgBiATVK18fCIGIAMpA+ABfCIHIAggDFStIANB+AFqKQMAIAUgDFatfHx8IgUgAykDkAJ8IgwgBVStfCAMIA8gFFatIBEgCCAPVq18fHwiCCAMVK18IgwgBSAHVK0gA0HoAWopAwAgBiAHVq18fCIPIAYgEFStfCIQfCIGIAMpA3B8IgcgA0GIAWopAwAgCCADKQOAAXwiBSAIVK18IAUgBCAKVq0gA0GYAWopAwAgBCAOVK18fHwiBCAFVK18fCIFIAMpA6ABfCIIIAVUrXwgCCADQbgBaikDACIOIAQgBCASfCIEVq18IAQgCSANVq0gDiAJIApUrXx8fCIKIARUrXx8IgQgCFStfCIIIAUgB1StIANB+ABqKQMAIAYgB1atfHwiDiAGIAxUrSAPIBBWrXx8Igx8IgcgAykDAHwiBSADQRhqKQMAIAQgBCADKQMQfCIEVq18IAQgBCADQShqKQMAIANB6ABqKQMAIAsgDVStfCIJIAMpAyB8IgYgCVStfCAGIAYgCnwiBlatfHwiBFatfHwiCiADKQMwfCIJIApUrXwgCSADQcgAaikDACINIAQgBCADKQNAIg98IgRWrXwgBCAEIA0gBiAGIA98IgZWrXwgBiADQdgAaikDACADKQNQIg0gC3wgDVStfHwiESAGVK18fCIEVq18fCIGIAlUrXwiCSAFIApWrSADQQhqKQMAIAUgB1StfHwiBSAHIAhUrSAMIA5UrXx8Igd8Ig5CAFMgCSAOVq1CACAFIAdWrX1Scg0AIA5C////////////AFINAkJ/IQsgBkJ/UgRAQv///////////wAhDgwDCyAEQn9SBEBC////////////ACEOIAQhCgwECyARQm1aDQBC////////////ACEOQn8hCgwDCyAEQgF8IgcgEUJtVK0iBX0hCiAGQgF8IgkgBEJ/UiAFIAdWcq0iBH0hCyAOIAZCf1IgBCAJVnKtfUL///////////8AfSEOIBFCE3whEQwCCyADQgI3A4AEQYDTwQBBKyADQYAEakGs08EAQbjUwQAQvgMACyAGIQsgBCEKCyAAIBE3AxggACAKNwMQIAAgCzcDCCAAIA43AwAgA0GgBGokAAupHAIIfxJ+IwBBwAVrIgIkAAJAAkACQAJAIAEoAggiBkECTwRAIAZBAWsiB0EFdCEJIAdB////H0sEQAwFC0HZvsIALQAAGkEIIQMgCUEIELAEIghFDQQgCCEDAkAgB0EBRg0AIAZBAmsiBUEHcSEEIAZBA2tBB08EQCAFQXhxIQUDQCADQgA3AwAgA0EYakIANwMAIANBEGpCADcDACADQQhqQgA3AwAgA0EgakIANwMAIANBKGpCADcDACADQTBqQgA3AwAgA0E4akIANwMAIANBQGtCADcDACADQcgAakIANwMAIANB0ABqQgA3AwAgA0HYAGpCADcDACADQeAAakIANwMAIANB6ABqQgA3AwAgA0HwAGpCADcDACADQfgAakIANwMAIANBmAFqQgA3AwAgA0GQAWpCADcDACADQYgBakIANwMAIANBgAFqQgA3AwAgA0G4AWpCADcDACADQbABakIANwMAIANBqAFqQgA3AwAgA0GgAWpCADcDACADQcABakIANwMAIANByAFqQgA3AwAgA0HQAWpCADcDACADQdgBakIANwMAIANB4AFqQgA3AwAgA0HoAWpCADcDACADQfABakIANwMAIANB+AFqQgA3AwAgA0GAAmohAyAFQQhrIgUNAAsLIARFDQADQCADQgA3AwAgA0EYakIANwMAIANBEGpCADcDACADQQhqQgA3AwAgA0EgaiEDIARBAWsiBA0ACwsgA0IANwMAIANBGGpCADcDACADQRBqQgA3AwAgA0EIakIANwMAIAEoAgQiAyAGQQV0aiEGQQAhAUEBIQVBACEEA0ACQCABQQFxBEAgAyAGRw0BDAULIAYgA2tBBXYgBU0NBCAEIAVqIQQgAyAFQQV0aiEDCyACQfgEaiAErSIMQswAfiIKQm1CABC9AyACQegEaiAKQn9CABC9AyACQfgDaiAKQv///////////wBCABC9AyACQdgEaiACQYAFaikDACACKQP4BCIKIAxCpAt+fCAKVK18IgsgAikD6AQiD3wiCkKblK/D8rWo3oZ/fiIMQm1CABC9AyACQcgEaiAMQn9CABC9AyACQYgEaiAMQv///////////wBCABC9AyACQbgEaiACKQPIBCIMIA8gAkHwBGopAwAiDSAKIAtUrXwiDnwiEHwiCyACQeAEaikDACAKIAIpA9gEIgp8IApUrXx8IgpCm5Svw/K1qN6Gf34iD0JtQgAQvQMgAkGoBGogD0J/QgAQvQMgAkGYBGogD0L///////////8AQgAQvQMgAkHoA2ogAikDqAQiDyAMIA0gDiAQVq18IhAgAikD+AN8Ig18Ig4gCiALVK0gAkHQBGopAwAiEiALIAxUrXx8fCIRfCIMIAJBwARqKQMAIAogAikDuAQiCnwgClStfHwiCkKblK/D8rWo3oZ/fiILQm1CABC9AyACQdgDaiALQn9CABC9AyACQcgDaiALQv///////////wBCABC9AwJAIAJB0ANqKQMAIAJBoARqKQMAIAJBkARqKQMAIAJBgARqKQMAIA0gEFStfCIQIAIpA4gEfCILIBBUrXwgCyALIA4gEVatIBIgDSAOVq18fHwiC1atfCIOIAIpA5gEfCINIA5UrXwgDSACQbAEaikDACIOIAsgCyAPfCILVq18IAsgCiAMVK0gDiAMIA9UrXx8fCIOIAtUrXx8IgwgDVStfCILIAIpA8gDfCIPIAtUrXwgDyACQeADaikDACINIAwgDCACKQPYAyILfCIMVq18IAwgDSALIAsgDnwiC1atfCALIAJB8ANqKQMAIAogAikD6AMiCnwgClStfHwiCiALVK18fCILIAxUrXx8Ig0gD1StfCIOQv///////////wBSDQBC////////////ACEOIA1Cf1INAEJ/IQ0gC0J/Ug0AQn8hCyAKQm1UBEAMAQsgCkITfCEKQgAhC0IAIQ1CACEOCyACQbgDaiADKQMYIgwgCkIAEL0DIAJB+AJqIAMpAxAiDyAKQgAQvQMgAkHoAmogAykDCCIQIApCABC9AyACQdgCaiADKQMAIhIgCkIAEL0DIAJBqANqIAIpA7gDIhFCm5Svw/K1qN6Gf34iCkJtQgAQvQMgAkGYA2ogCkJ/QgAQvQMgAkGIA2ogCkL///////////8AQgAQvQMgAkHIAmogDCALQgAQvQMgAkGIAmogDyALQgAQvQMgAkH4AWogECALQgAQvQMgAkHoAWogEiALQgAQvQMgAkG4AmogAikDmAMiCiACQcADaikDACITIAIpA/gCfCIUfCILIAJBsANqKQMAIBEgAikDqAMiFXwgFVStfHwiESACKQPIAnwiFUKblK/D8rWo3oZ/fiIWQm1CABC9AyACQagCaiAWQn9CABC9AyACQZgCaiAWQv///////////wBCABC9AyACQdgBaiAMIA1CABC9AyACQZgBaiAPIA1CABC9AyACQYgBaiAQIA1CABC9AyACQfgAaiASIA1CABC9AyACQcgBaiACQdACaikDACARIBVWrXwiFyACKQOIAnwiDSAKIAJBgANqKQMAIBMgFFatfCIYIAIpA+gCfCIWfCITIAsgEVatIAJBoANqKQMAIhkgCiALVq18fHwiGnwiCiACKQOoAiIbfCILIAJBwAJqKQMAIAIpA7gCIhEgFXwgEVStfHwiESACKQPYAXwiFUKblK/D8rWo3oZ/fiIUQm1CABC9AyACQbgBaiAUQn9CABC9AyACQagBaiAUQv///////////wBCABC9AyACQegAaiAMIA5CABC9AyACQShqIA8gDkIAEL0DIAJBGGogECAOQgAQvQMgAkEIaiASIA5CABC9AyACQdgAaiACQeABaikDACARIBVWrXwiFCACKQOYAXwiDCAbIAJB8AJqKQMAIBYgGFStfCIYIAIpA9gCfCIPIAIpA4gDfCIOIBMgGlatIBkgEyAWVK18fHwiECACKQP4AXwiEiAKIA1UrSACQZACaikDACANIBdUrXx8fCINfCIWIAsgEVatIAJBsAJqKQMAIhcgCiALVq18fHwiGXwiCiACKQO4ASIafCILIAJB0AFqKQMAIAIpA8gBIhEgFXwgEVStfHwiESACKQNofCIVQpuUr8Pytajehn9+IhNCbUIAEL0DIAJByABqIBNCf0IAEL0DIAJBOGogE0L///////////8AQgAQvQMCQAJAIAJBQGspAwAgAkGwAWopAwAgAkGgAmopAwAgDiAQVq0gAkGQA2opAwAgDiAPVK18fCITIAJB4AJqKQMAIA8gGFStfHwiDyACKQPoAXwiDiANIBJUrSACQYACaikDACAQIBJWrXx8fCIQIAIpA5gCfCISIBBUrXwgEiAWIBlWrSAXIA0gFlatfHx8Ig0gElStfCISIA4gEFatIAJB8AFqKQMAIA4gD1StfHwiFiAPIBNUrXwiE3wiDyACKQN4fCIOIAJBkAFqKQMAIA0gDSACKQOIAXwiDVatfCANIAogDFStIAJBoAFqKQMAIAwgFFStfHx8IgwgDVStfHwiDSACKQOoAXwiECANVK18IBAgAkHAAWopAwAiFCAMIAwgGnwiDFatfCAMIAsgEVatIBQgCiALVq18fHwiFCAMVK18fCIKIBBUrXwiFyANIA5UrSACQYABaikDACAOIA9UrXx8IhggDyASVK0gEyAWVK18fCISfCILIAIpAwh8Ig0gAkEgaikDACAKIAogAikDGHwiClatfCAKIAogAkEwaikDACACQfAAaikDACARIBVWrXwiDyACKQMofCIMIA9UrXwgDCAMIBR8IgxWrXx8IgpWrXx8IhAgAikDOHwiDyAQVK18IA8gDyACQdAAaikDACIOIAogCiACKQNIIhF8IgpWrXwgCiAOIAwgDCARfCIMVq18IAwgAkHgAGopAwAgAikDWCIOIBV8IA5UrXx8Ig4gDFStfHwiDCAKVK18fCIPVq18IgogCyAXVK0gEiAYVK18IA0gEFatIAJBEGopAwAgCyANVq18fHx8Ig1CAFkgCiANWHFFDQACQCANQv///////////wBRBEAgD0J/UQ0BQv///////////wAhDQsgDyELIAwhCgwCC0J/IQsgDEJ/UgRAQv///////////wAhDSAMIQoMAgsgDkJtWg0AQv///////////wAhDUJ/IQoMAQsgDEIBfCILIA5CbVStIhB9IQogD0IBfCISIAxCf1IgCyAQVHKtIgx9IQsgDSAPQn9SIAwgElZyrX1C////////////AH0hDSAOQhN8IQ4LIARBAWsiASAHTw0CIARBAWohBCADQSBqIQMgCCABQQV0aiIBIA43AxggASAKNwMQIAEgCzcDCCABIA03AwBBACEFQQEhAQwACwALIAAQ7AIMAgsgASAHQYz1wAAQ1gMACyACQQA6AJwFIAIgCDYClAUgAiAIIAdBBXRqNgKYBSACQYgFaiACQZQFahCzAiACKAKQBSIBQQJPBEAgAUEBdiEFIAIoAowFIgMgAUEFdGpBIGshBANAIAMpAwAhCiADIAQpAwA3AwAgA0EYaiIBKQMAIQwgASAEQRhqIgEpAwA3AwAgA0EQaiIHKQMAIQsgByAEQRBqIgcpAwA3AwAgA0EIaiIGKQMAIQ8gBiAEQQhqIgYpAwA3AwAgBCAKNwMAIAEgDDcDACAHIAs3AwAgBiAPNwMAIARBIGshBCADQSBqIQMgBUEBayIFDQALCyAAIAIpAogFNwIAIABBCGogAkGQBWooAgA2AgAgCCAJELkECyACQcAFaiQADwsgAyAJEKgEAAvhGgIIfxR+IwBB0ARrIgIkAAJAAkACQCABKAIIIgZBAk8EQCAGQQFrIgdBBXQhCSAHQf///x9LBEAMBAtB2b7CAC0AABpBCCEDIAlBCBCwBCIIRQ0DIAghAwJAIAdBAUYNACAGQQJrIgVBB3EhBCAGQQNrQQdPBEAgBUF4cSEFA0AgA0IANwMAIANBGGpCADcDACADQRBqQgA3AwAgA0EIakIANwMAIANBIGpCADcDACADQShqQgA3AwAgA0EwakIANwMAIANBOGpCADcDACADQUBrQgA3AwAgA0HIAGpCADcDACADQdAAakIANwMAIANB2ABqQgA3AwAgA0HgAGpCADcDACADQegAakIANwMAIANB8ABqQgA3AwAgA0H4AGpCADcDACADQZgBakIANwMAIANBkAFqQgA3AwAgA0GIAWpCADcDACADQYABakIANwMAIANBuAFqQgA3AwAgA0GwAWpCADcDACADQagBakIANwMAIANBoAFqQgA3AwAgA0HAAWpCADcDACADQcgBakIANwMAIANB0AFqQgA3AwAgA0HYAWpCADcDACADQeABakIANwMAIANB6AFqQgA3AwAgA0HwAWpCADcDACADQfgBakIANwMAIANBgAJqIQMgBUEIayIFDQALCyAERQ0AA0AgA0IANwMAIANBGGpCADcDACADQRBqQgA3AwAgA0EIakIANwMAIANBIGohAyAEQQFrIgQNAAsLIANCADcDACADQRhqQgA3AwAgA0EQakIANwMAIANBCGpCADcDACABKAIEIgMgBkEFdGohBkEAIQFBASEFQQAhBANAAkAgAUEBcQRAIAMgBkcNAQwECyAGIANrQQV2IAVNDQMgBCAFaiEEIAMgBUEFdGohAwsgAkGIBGogBK0iCkKhobqAoPQBQgAQvQMgAkH4A2ogAikDiAQiDkKx6pSR3aOCnFh+IgtCr/j//29CABC9AyACQegDaiALQn9CABC9AyACQdgDaiAKIAIpA+gDIgsgAkGQBGopAwB8Ig0gAkGABGopAwAgDiACKQP4AyIKfCAKVK18fCIOfCIMQrHqlJHdo4KcWH4iCkKv+P//b0IAEL0DIAJByANqIApCf0IAEL0DIAJBuANqIAIpA8gDIgogDCAOVK0iECALIA0gDlatIAJB8ANqKQMAIg4gCyANVq18fCITfCISfCIRfCIPIAJB4ANqKQMAIAIpA9gDIg0gDHwgDVStfHwiDEKx6pSR3aOCnFh+Ig1Cr/j//29CABC9AyACQagDaiANQn9CABC9AyACQZgDaiACKQOoAyINIAogECARVq0iFCALIA4gEiATVK18IhV8Ihd8Igt8IhAgDCAPVK0gAkHQA2opAwAiEyAKIA9WrXx8fCIWfCIPIAJBwANqKQMAIAwgAikDuAMiDHwgDFStfHwiDEKx6pSR3aOCnFh+IhJCr/j//29CABC9AyACQYgDaiASQn9CABC9AwJAIAJBkANqKQMAIhIgAkGwA2opAwAiESANIBMgCiAKIA4gFSAXVq18fCIKVq18IAogCiALIBRUrXwiClatfCAKIAogECAWVq0gEyALIBBWrXx8fCIKVq18Ig58IgsgDlStfCALIAsgESAKIAogDXwiClatfCAKIAwgD1StIBEgDSAPVq18fHwiDSAKVK18fCILVq18Ig8gAikDiAMiCnwiDiAPVK18IA4gEiALIAogC3wiC1atfCALIBIgCiAKIA18IgpWrXwgCiAKIAJBoANqKQMAIAIpA5gDIg0gDHwgDVStfHwiClatfHwiDSALVK18fCIMIA5UrXwiD0J/Ug0AQn8hDyAMQn9SDQBCfyEMIA1Cf1IEQAwBC0J/IQ0gCkKv+P//b1QEQAwBCyAKQtGHgIAQfCEKQgAhDUIAIQxCACEPCyACQfgCaiADKQMYIgsgCkIAEL0DIAJByAJqIAMpAxAiDiAKQgAQvQMgAkG4AmogAykDCCIQIApCABC9AyACQagCaiADKQMAIhMgCkIAEL0DIAJB6AJqIAIpA/gCIhJCseqUkd2jgpxYfiIKQq/4//9vQgAQvQMgAkHYAmogCkJ/QgAQvQMgAkGYAmogCyANQgAQvQMgAkHoAWogDiANQgAQvQMgAkHYAWogECANQgAQvQMgAkHIAWogEyANQgAQvQMgAkGIAmogAikD2AIiCiACQYADaikDACIUIAIpA8gCfCIVfCINIAJB8AJqKQMAIBIgAikD6AIiEXwgEVStfHwiEiACKQOYAnwiEUKx6pSR3aOCnFh+IhdCr/j//29CABC9AyACQfgBaiAXQn9CABC9AyACQbgBaiALIAxCABC9AyACQYgBaiAOIAxCABC9AyACQfgAaiAQIAxCABC9AyACQegAaiATIAxCABC9AyACQagBaiACQaACaikDACARIBJUrXwiGCACKQPoAXwiDCAKIAJB0AJqKQMAIBQgFVatfCIaIAIpA7gCfCIUfCIVIA0gElatIAJB4AJqKQMAIhIgCiANVq18fHwiG3wiDSACKQP4ASIXfCIWIAJBkAJqKQMAIBEgAikDiAIiEXwgEVStfHwiESACKQO4AXwiGUKx6pSR3aOCnFh+IhxCr/j//29CABC9AyACQZgBaiAcQn9CABC9AyACQdgAaiALIA9CABC9AyACQShqIA4gD0IAEL0DIAJBGGogECAPQgAQvQMgAkEIaiATIA9CABC9AyACQcgAaiACQcABaikDACARIBlWrXwiHCACKQOIAXwiCyAXIAogAkHAAmopAwAgFCAaVK18Ih0gAikDqAJ8Ig58IgogFSAbVq0gEiAUIBVWrXx8fCIPIAIpA9gBfCIQIAwgDVatIAJB8AFqKQMAIAwgGFStfHx8Igx8IhMgESAWVK0gAkGAAmopAwAiESANIBZWrXx8fCIbfCINIAIpA5gBIhR8IhUgAkGwAWopAwAgAikDqAEiFiAZfCAWVK18fCIWIAIpA1h8IhlCseqUkd2jgpxYfiIYQq/4//9vQgAQvQMgAkE4aiAYQn9CABC9AwJAAkACQCACQUBrKQMAIhggAkGgAWopAwAiGiAUIBEgFyAKIA9WrSASIAogDlStfHwiEiACQbACaikDACAOIB1UrXx8IgogAikDyAF8Ig4gDCAQVK0gAkHgAWopAwAgDyAQVq18fHwiD3wiECAPVK18IBAgEyAbVq0gESAMIBNWrXx8fCIMIBBUrXwiECAOIA9WrSACQdABaikDACAKIA5WrXx8IhMgCiASVK18IhJ8IgogAikDaHwiDiACQYABaikDACAMIAwgAikDeHwiDFatfCAMIAsgDVatIAJBkAFqKQMAIAsgHFStfHx8IgsgDFStfHwiDHwiDyAMVK18IA8gGiALIAsgFHwiC1atfCALIBUgFlatIBogDSAVVq18fHwiESALVK18fCILIA9UrXwiFCAMIA5UrSACQfAAaikDACAKIA5WrXx8IhUgCiAQVK0gEiATVK18fCITfCIKIAIpAwh8Ig0gAkEgaikDACALIAsgAikDGHwiC1atfCALIAsgAkEwaikDACACQeAAaikDACAWIBlWrXwiDCACKQMofCIOIAxUrXwgDiAOIBF8Ig5WrXx8IgtWrXx8IgwgAikDOCIPfCIQIAxUrXwgECAYIAsgCyAPfCILVq18IAsgCyAYIA4gDiAPfCIOVq18IA4gAkHQAGopAwAgAikDSCIPIBl8IA9UrXx8Ig8gDlStfHwiC1atfHwiDiAQVK18IhAgDCANVK0gAkEQaikDACAKIA1WrXx8Ig0gCiAUVK0gEyAVVK18fCIKfCIMIBBUrUIAIAogDVStfVINACAMQn9SDQEgDkJ/UgRAQn8hDAwCC0J/IQ0gC0J/UgRAQn8hDCALIQoMAwsgD0Kv+P//b1oNAEJ/IQxCfyEKDAILIAtCAXwiDSAPQq/4//9vVK0iEH0hCiAOQgF8IhMgC0J/UiANIBBUcq0iC30hDSAMIA5Cf1IgCyATVnKtfUIBfCEMIA9C0YeAgBB8IQ8MAQsgDiENIAshCgsgByAEQQFrIgFLBEAgBEEBaiEEIANBIGohAyAIIAFBBXRqIgEgDzcDGCABIAo3AxAgASANNwMIIAEgDDcDAEEAIQVBASEBDAELCyABIAdBjPXAABDWAwALIAAQ7AIMAQsgAkEAOgCsBCACIAg2AqQEIAIgCCAHQQV0ajYCqAQgAkGYBGogAkGkBGoQswIgAigCoAQiAUECTwRAIAFBAXYhBSACKAKcBCIDIAFBBXRqQSBrIQQDQCADKQMAIQogAyAEKQMANwMAIANBGGoiASkDACELIAEgBEEYaiIBKQMANwMAIANBEGoiBykDACENIAcgBEEQaiIHKQMANwMAIANBCGoiBikDACEOIAYgBEEIaiIGKQMANwMAIAQgCjcDACABIAs3AwAgByANNwMAIAYgDjcDACAEQSBrIQQgA0EgaiEDIAVBAWsiBQ0ACwsgACACKQKYBDcCACAAQQhqIAJBoARqKAIANgIAIAggCRC5BAsgAkHQBGokAA8LIAMgCRCoBAAL8yECEX8pfiMAQYACayIDJAAgA0EEaiABEMgBQdm+wgAtAAAaAkACQAJAAkACQAJAAkACQAJAAkBBwARBCBCwBCIEBEACQAJAAkAgAygCDCIFDgIAAQILQQBBAEGw3cAAENYDAAtBAUEBQcDdwAAQ1gMACwJ+IAMoAggiAkEwakHA18AAQTAQ0AQEQEL//8+K6///1R4gAkHQAGopAwAiMH0iHiACQdgAaikDACIxQqvV/v///7//uX9WrSIffSEyQqTsw7WP1LSY5wAgAkHIAGopAwAiGH0iICAeIB9UIDBC///Piuv//9UeVnKtIh59ITBCv6WUnM/w0rvkACACQUBrKQMAIh99IiEgHiAgViAYQqTsw7WP1LSY5wBWcq0iGH0hHkLX2a6a5PbpjcsAIAJBOGopAwAiIH0iEyAYICFWIB9Cv6WUnM/w0rvkAFZyrSIYfSEfQqvV/v///7//uX8gMX0hMUKazf/Lo73EgBogAikDMCATIBhUICBC19mumuT26Y3LAFZyrXx9DAELIAJB2ABqKQMAITEgAkHQAGopAwAhMiACQcgAaikDACEwIAJBQGspAwAhHiACQThqKQMAIR8gAikDMAshGCAFQQJNDQEgA0E4aiACQYgBaikDADcDACADQTBqIAJBgAFqKQMANwMAIANBKGogAkH4AGopAwA3AwAgA0EgaiACQfAAaikDADcDACADQRhqIAJB6ABqKQMANwMAIAMgAikDYDcDECAFQQNGDQICfiACQZABakHA18AAQTAQ0AQEQEL//8+K6///1R4gAkGwAWopAwAiIX0iEyACQbgBaikDACIzQqvV/v///7//uX9WrSIifSEgQqTsw7WP1LSY5wAgAkGoAWopAwAiGX0iIyATICJUICFC///Piuv//9UeVnKtIhN9ISFCv6WUnM/w0rvkACACQaABaikDACIifSIkIBMgI1YgGUKk7MO1j9S0mOcAVnKtIhl9IRNC19mumuT26Y3LACACQZgBaikDACIjfSIUIBkgJFYgIkK/pZScz/DSu+QAVnKtIhl9ISJCq9X+////v/+5fyAzfSEzQprN/8ujvcSAGiACKQOQASAUIBlUICNC19mumuT26Y3LAFZyrXx9DAELIAJBuAFqKQMAITMgAkGwAWopAwAhICACQagBaikDACEhIAJBoAFqKQMAIRMgAkGYAWopAwAhIiACKQOQAQshGSAFQQRNDQMgA0HoAGogAkHoAWopAwA3AwAgA0HgAGogAkHgAWopAwA3AwAgA0HYAGogAkHYAWopAwA3AwAgA0HQAGogAkHQAWopAwA3AwAgA0HIAGogAkHIAWopAwA3AwAgAyACKQPAATcDQCAFQQVGDQQCfiACQfABakHA18AAQTAQ0AQEQEL//8+K6///1R4gAkGQAmopAwAiJH0iFCACQZgCaikDACI0QqvV/v///7//uX9WrSIlfSEjQqTsw7WP1LSY5wAgAkGIAmopAwAiGn0iJiAUICVUICRC///Piuv//9UeVnKtIhR9ISRCv6WUnM/w0rvkACACQYACaikDACIlfSInIBQgJlYgGkKk7MO1j9S0mOcAVnKtIhp9IRRC19mumuT26Y3LACACQfgBaikDACImfSIVIBogJ1YgJUK/pZScz/DSu+QAVnKtIhp9ISVCq9X+////v/+5fyA0fSE0QprN/8ujvcSAGiACKQPwASAVIBpUICZC19mumuT26Y3LAFZyrXx9DAELIAJBmAJqKQMAITQgAkGQAmopAwAhIyACQYgCaikDACEkIAJBgAJqKQMAIRQgAkH4AWopAwAhJSACKQPwAQshGiAFQQZNDQUgA0GYAWogAkHIAmopAwA3AwAgA0GQAWogAkHAAmopAwA3AwAgA0GIAWogAkG4AmopAwA3AwAgA0GAAWogAkGwAmopAwA3AwAgA0H4AGogAkGoAmopAwA3AwAgAyACKQOgAjcDcCAFQQdGDQYCfiACQdACakHA18AAQTAQ0AQEQEL//8+K6///1R4gAkHwAmopAwAiJ30iFSACQfgCaikDACI1QqvV/v///7//uX9WrSIofSEmQqTsw7WP1LSY5wAgAkHoAmopAwAiG30iKSAVIChUICdC///Piuv//9UeVnKtIhV9ISdCv6WUnM/w0rvkACACQeACaikDACIofSIqIBUgKVYgG0Kk7MO1j9S0mOcAVnKtIht9IRVC19mumuT26Y3LACACQdgCaikDACIpfSIWIBsgKlYgKEK/pZScz/DSu+QAVnKtIht9IShCq9X+////v/+5fyA1fSE1QprN/8ujvcSAGiACKQPQAiAWIBtUIClC19mumuT26Y3LAFZyrXx9DAELIAJB+AJqKQMAITUgAkHwAmopAwAhJiACQegCaikDACEnIAJB4AJqKQMAIRUgAkHYAmopAwAhKCACKQPQAgshGyAFQQhNDQcgA0HIAWogAkGoA2opAwA3AwAgA0HAAWogAkGgA2opAwA3AwAgA0G4AWogAkGYA2opAwA3AwAgA0GwAWogAkGQA2opAwA3AwAgA0GoAWogAkGIA2opAwA3AwAgAyACKQOAAzcDoAEgBUEJRg0IAn4gAkGwA2pBwNfAAEEwENAEBEBC///Piuv//9UeIAJB0ANqKQMAIip9IhYgAkHYA2opAwAiNkKr1f7///+//7l/Vq0iK30hKUKk7MO1j9S0mOcAIAJByANqKQMAIhx9IiwgFiArVCAqQv//z4rr///VHlZyrSIWfSEqQr+llJzP8NK75AAgAkHAA2opAwAiK30iLSAWICxWIBxCpOzDtY/UtJjnAFZyrSIcfSEWQtfZrprk9umNywAgAkG4A2opAwAiLH0iFyAcIC1WICtCv6WUnM/w0rvkAFZyrSIcfSErQqvV/v///7//uX8gNn0hNkKazf/Lo73EgBogAikDsAMgFyAcVCAsQtfZrprk9umNywBWcq18fQwBCyACQdgDaikDACE2IAJB0ANqKQMAISkgAkHIA2opAwAhKiACQcADaikDACEWIAJBuANqKQMAISsgAikDsAMLIRwgBUEKTQ0JIANB+AFqIAJBiARqKQMANwMAIANB8AFqIAJBgARqKQMANwMAIANB6AFqIAJB+ANqKQMANwMAIANB4AFqIAJB8ANqKQMANwMAIANB2AFqIAJB6ANqKQMANwMAIAMgAikD4AM3A9ABIAVBC0YNCgJ+IAJBkARqQcDXwABBMBDQBARAQv//z4rr///VHiACQbAEaikDACItfSIXIAJBuARqKQMAIjdCq9X+////v/+5f1atIi59ISxCpOzDtY/UtJjnACACQagEaikDACIdfSIvIBcgLlQgLUL//8+K6///1R5Wcq0iF30hLUK/pZScz/DSu+QAIAJBoARqKQMAIi59IjggFyAvViAdQqTsw7WP1LSY5wBWcq0iHX0hF0LX2a6a5PbpjcsAIAJBmARqKQMAIi99IjkgHSA4ViAuQr+llJzP8NK75ABWcq0iHX0hLkKr1f7///+//7l/IDd9ITdCms3/y6O9xIAaIAIpA5AEIB0gOVYgL0LX2a6a5PbpjcsAVnKtfH0MAQsgAkG4BGopAwAhNyACQbAEaikDACEsIAJBqARqKQMAIS0gAkGgBGopAwAhFyACQZgEaikDACEuIAIpA5AECyEdIAJBCGopAwAhLyACQRBqKQMAITggAkEYaikDACE5IAJBIGopAwAhOiACKQMAITsgBEEoaiACQShqKQMANwMAIARBIGogOjcDACAEQRhqIDk3AwAgBEEQaiA4NwMAIARBCGogLzcDACAEIDs3AwAgBEHYAGogMTcDACAEQdAAaiAyNwMAIARByABqIDA3AwAgBEFAayAeNwMAIARBOGogHzcDACAEIBg3AzAgBCADKQMQNwNgIARB6ABqIANBGGopAwA3AwAgBEHwAGogA0EgaikDADcDACAEQfgAaiADQShqKQMANwMAIARBgAFqIANBMGopAwA3AwAgBEGIAWogA0E4aikDADcDACAEQbgBaiAzNwMAIARBsAFqICA3AwAgBEGoAWogITcDACAEQaABaiATNwMAIARBmAFqICI3AwAgBCAZNwOQASAEQegBaiADQegAaikDADcDACAEQeABaiADQeAAaikDADcDACAEQdgBaiADQdgAaikDADcDACAEQdABaiADQdAAaikDADcDACAEQcgBaiADQcgAaikDADcDACAEIAMpA0A3A8ABIARBmAJqIDQ3AwAgBEGQAmogIzcDACAEQYgCaiAkNwMAIARBgAJqIBQ3AwAgBEH4AWogJTcDACAEIBo3A/ABIARByAJqIANBmAFqKQMANwMAIARBwAJqIANBkAFqKQMANwMAIARBuAJqIANBiAFqKQMANwMAIARBsAJqIANBgAFqKQMANwMAIARBqAJqIANB+ABqIhIpAwA3AwAgBCADKQNwNwOgAiAEQfgCaiA1NwMAIARB8AJqICY3AwAgBEHoAmogJzcDACAEQeACaiAVNwMAIARB2AJqICg3AwAgBCAbNwPQAiAEQagDaiADQcgBaikDADcDACAEQaADaiADQcABaikDADcD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IgYgBVQgBSALVHINAEKBgICAcCEIAkAgBiIFQoGAgIBwUg0AIApCAFINAUL/////DyEIIAciBUL/////D1INACAJQn9RDQFCACEFQoGAgIBwIQYMAgsgBSAIWg0AIAohBSAHIQgMAQsgB0L/////D30iBSAJQn9SrSILfSEIIAogB0L/////D1QgBSALVHKtIgd9IQUgBkL+////D0L/////DyAHIApWG3whBiAJQgF8IQkLAkACQCAGIAIpAwB8IgsgBSAFIAIpAwh8IgVWIAUgCCACKQMQfCIHIAhUIAcgByAJIAIpAxh8IgggCVStfCIHVnKtfCIKIAVUcq18IgkgC1QgBiALVnINAEKBgICAcCEGAkAgCSIFQoGAgIBwUg0AIApCAFINAUL/////DyEGIAciBUL/////D1INACAIQn9RDQFCACEFQoGAgIBwIQkMAgsgBSAGWg0AIAohBSAHIQYMAQsgB0L/////D30iBSAIQn9SrSILfSEGIAogB0L/////D1QgBSALVHKtIgd9IQUgCUL+////D0L/////DyAHIApWG3whCSAIQgF8IQgLIAAgCDcDGCAAIAY3AxAgACAFNwMIIAAgCTcDACAEQeAEaiQAC8wcAg9/EH4jAEGABWsiAyQAIAEoAgQiCUEgayEHIAkgASgCCCIGQQV0IgFqIQsCQAJAAkADQCABRQ0BIAEgB2ogAUEgayEBQbDvwABBIBDQBEUNAAsgAigCCCIEQQV0IQEgAigCBCIMQSBrIQIDQCABRQ0BIAEgAmogAUEgayEBQbDvwABBIBDQBEUNAAtBCCEHIAQgBmoiBkEBayIIBEAgCEEFdCEBIAhB////H0sEQEEAIQIMBAtB2b7CAC0AABpBCCECIAFBCBCwBCIHRQ0DIAchAQJAIAhBAUYNACAGQQJrIgVBB3EhAiAGQQNrQQdPBEAgBUF4cSEFA0AgAUIANwMAIAFBGGpCADcDACABQRBqQgA3AwAgAUEIakIANwMAIAFBIGpCADcDACABQShqQgA3AwAgAUEwakIANwMAIAFBOGpCADcDACABQUBrQgA3AwAgAUHIAGpCADcDACABQdAAakIANwMAIAFB2ABqQgA3AwAgAUHgAGpCADcDACABQegAakIANwMAIAFB8ABqQgA3AwAgAUH4AGpCADcDACABQZgBakIANwMAIAFBkAFqQgA3AwAgAUGIAWpCADcDACABQYABakIANwMAIAFBuAFqQgA3AwAgAUGwAWpCADcDACABQagBakIANwMAIAFBoAFqQgA3AwAgAUHAAWpCADcDACABQcgBakIANwMAIAFB0AFqQgA3AwAgAUHYAWpCADcDACABQeABakIANwMAIAFB6AFqQgA3AwAgAUHwAWpCADcDACABQfgBakIANwMAIAFBgAJqIQEgBUEIayIFDQALCyACRQ0AA0AgAUIANwMAIAFBGGpCADcDACABQRBqQgA3AwAgAUEIakIANwMAIAFBIGohASACQQFrIgINAAsLIAFCADcDACABQRhqQgA3AwAgAUEQakIANwMAIAFBCGpCADcDAAsgBEEFdCENQQAhBiAHIQQDQCAGIgIgCCACIAhLGyEOIAJBAWohBiAJIgFBIGohCUEAIQUCQANAIAIgDkcEQCADQZgEaiABKQMYIhQgBSAMaiIKQRhqKQMAIhJCABC9AyADQZgDaiABKQMQIhMgEkIAEL0DIANBmAJqIAEpAwgiFSASQgAQvQMgA0GYAWogASkDACIXIBJCABC9AyADQYgEaiADKQOYBCIYQgBCiceZpK7wgemHfxC9AyADQfgDaiADQZAEaikDACISQsf688PtgqOQPEIAEL0DIANB6ANqIBJCjZXHw5bS2sCXf0IAEL0DIANB2ANqIBJC3bCFjOi2kai4f0IAEL0DIANByANqIBJCqcDGia7Ok7IwQgAQvQMgA0GoBGogCkEQaikDACISIBRCABC9AyADQagDaiASIBNCABC9AyADQagCaiASIBVCABC9AyADQagBaiASIBdCABC9AyADQYgDaiADKQPoAyIaIANBoARqKQMAIhsgAykDmAN8Ihx8IhYgA0GABGopAwAgGCADKQP4AyISfCASVK18fCIYIAMpA6gEfCIZQgBCiceZpK7wgemHfxC9AyADQfgCaiADQZADaikDACISQsf688PtgqOQPEIAEL0DIANB6AJqIBJCjZXHw5bS2sCXf0IAEL0DIANB2AJqIBJC3bCFjOi2kai4f0IAEL0DIANByAJqIBJCqcDGia7Ok7IwQgAQvQMgA0G4BGogCkEIaikDACISIBRCABC9AyADQbgDaiASIBNCABC9AyADQbgCaiASIBVCABC9AyADQbgBaiASIBdCABC9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AiADIBQgEn0iCiAEIAdUrSIEfSINNwPwAiADIAggBn0iFiASIBRWIAQgClZyrSIEfSIKNwPoAiADIBEgF30gBiAIViAEIBZWcq19IhE3A+ACAkACQAJAIA4iBCATIghSDQAgCyEIIAsgDCIEUg0AIAUhBCAJIQggBSAJUg0AIBAiBCAPIghRDQELIAQgCFQNAQsgDiATfSALIAxWIAwgC30iGCAFIAlUIAUgCX0iFiAPIBBWrSIFVHKtIgxUcq19IQ4gECAPfSEQIA0hFCAKIQggFSEEIBggDH0hDCAWIAV9IQUMAgsgDiATfSALQgBSQgAgC30iBCAJQv////8PVq0iCFRyrX0gBCAIfSIIIAx8IhQgCFQgFEL/////DyAJfSIIIAV8IgQgCFQgBCAPQn+FIgggEHwiECAIVK18IgUgBFRyrXwiDCAUVHKtfEL/////D30hDiANIRQgCiEIIBUhBAwBCyATIAxCAFJCACAMfSIHIAVC/////w9WrSIGVHKtIA58fSAHIAZ9IgYgC3wiEiAGVCASQv////8PIAV9IgYgCXwiByAGVCAHIBBCf4UiBiAPfCIPIAZUrXwiCSAHVHKtfCILIBJUcq18Qv////8PfSETIA0hEiAKIQYgFSEHCyADQeACaiADQcACakEgENAEDQALCyADQbACaiABKQMYIhUgEEIAEL0DIANBkAJqIAEpAxAiCSAQQgAQvQMgA0GAAmogASkDCCILIBBCABC9AyADQfABaiABKQMAIhIgEEIAEL0DIANBoAJqIAMpA7ACIg1CgYCAgHBCABC9AyADQeABaiAVIAVCABC9AyADQcABaiAJIAVCABC9AyADQbABaiALIAVCABC9AyADQaABaiASIAVCABC9AyADQdABaiANQiCGIgQgA0G4AmopAwAiCCADKQOQAnwiBnwiCiADKQPgAXwiD0KBgICAcEIAEL0DIANBkAFqIBUgDEIAEL0DIANB8ABqIAkgDEIAEL0DIANB4ABqIAsgDEIAEL0DIANB0ABqIBIgDEIAEL0DIANBgAFqIA9CIIYiByAEIApWrSANQiCIfCINIANBmAJqKQMAIAYgCFStfCIEIAMpA4ACfCIIfCITIAMpA8ABfCIRIANB6AFqKQMAIAogD1atfHwiBnwiFCADKQOQAXwiBUKBgICAcEIAEL0DIANBQGsg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IQwgCCAGQRBqIggpAwA3AwAgAUEIaiIJKQMAIQ8gCSAGQQhqIgkpAwA3AwAgBiALNwMAIAcgCjcDACAIIAw3AwAgCSAPNwMAIAZBIGshBiABQSBqIQEgA0EBayIDDQALCyAAIAQpAtgENwIAIABBCGogBEHgBGooAgA2AgAgAgRAIAUgAkEFdBC5BAsgBEGQBWokAA8LQayVwAAQuwQAC60ZAg9/En4jAEGABGsiAyQAIAEoAgQiCUEgayEHIAkgASgCCCIGQQV0IgFqIQsCQAJAAkADQCABRQ0BIAEgB2ogAUEgayEBQbDvwABBIBDQBEUNAAsgAigCCCIEQQV0IQEgAigCBCIMQSBrIQIDQCABRQ0BIAEgAmogAUEgayEBQbDvwABBIBDQBEUNAAtBCCEHIAQgBmoiBkEBayIIBEAgCEEFdCEBIAhB////H0sEQEEAIQIMBAtB2b7CAC0AABpBCCECIAFBCBCwBCIHRQ0DIAchAQJAIAhBAUYNACAGQQJrIgVBB3EhAiAGQQNrQQdPBEAgBUF4cSEFA0AgAUIANwMAIAFBGGpCADcDACABQRBqQgA3AwAgAUEIakIANwMAIAFBIGpCADcDACABQShqQgA3AwAgAUEwakIANwMAIAFBOGpCADcDACABQUBrQgA3AwAgAUHIAGpCADcDACABQdAAakIANwMAIAFB2ABqQgA3AwAgAUHgAGpCADcDACABQegAakIANwMAIAFB8ABqQgA3AwAgAUH4AGpCADcDACABQZgBakIANwMAIAFBkAFqQgA3AwAgAUGIAWpCADcDACABQYABakIANwMAIAFBuAFqQgA3AwAgAUGwAWpCADcDACABQagBakIANwMAIAFBoAFqQgA3AwAgAUHAAWpCADcDACABQcgBakIANwMAIAFB0AFqQgA3AwAgAUHYAWpCADcDACABQeABakIANwMAIAFB6AFqQgA3AwAgAUHwAWpCADcDACABQfgBakIANwMAIAFBgAJqIQEgBUEIayIFDQALCyACRQ0AA0AgAUIANwMAIAFBGGpCADcDACABQRBqQgA3AwAgAUEIakIANwMAIAFBIGohASACQQFrIgINAAsLIAFCADcDACABQRhqQgA3AwAgAUEQakIANwMAIAFBCGpCADcDAAsgBEEFdCENQQAhBiAHIQQDQCAGIgIgCCACIAhLGyEOIAJBAWohBiAJIgFBIGohCUEAIQUDQAJAAkAgAiAORwRAIANBmANqIAEpAxgiEyAFIAxqIgpBGGopAwAiEkIAEL0DIANBuAJqIAEpAxAiFSASQgAQvQMgA0HYAWogASkDCCIUIBJCABC9AyADQfgAaiABKQMAIhcgEkIAEL0DIANBiANqIAMpA5gDIhlCm5Svw/K1qN6Gf34iEkJtQgAQvQMgA0H4AmogEkJ/QgAQvQMgA0HoAmogEkL///////////8AQgAQvQMgA0GoA2ogCkEQaikDACISIBNCABC9AyADQcgCaiASIBVCABC9AyADQegBaiASIBRCABC9AyADQYgBaiASIBdCABC9AyADQagCaiADKQP4AiIWIANBoANqKQMAIhsgAykDuAJ8Ihp8IhggA0GQA2opAwAgGSADKQOIAyISfCASVK18fCIZIAMpA6gDfCIdQpuUr8Pytajehn9+IhJCbUIAEL0DIANBmAJqIBJCf0IAEL0DIANBiAJqIBJC////////////AEIAEL0DIANBuANqIApBCGopAwAiEiATQgAQvQMgA0HYAmogEiAVQgAQvQMgA0H4AWogEiAUQgAQvQMgA0GYAWogEiAXQgAQvQMgA0HIAWogA0GwA2opAwAgGSAdVq18Ih4gAykDyAJ8IhwgFiADQcACaikDACAaIBtUrXwiHyADKQPYAXwiG3wiGiAYIBlWrSADQYADaikDACIgIBYgGFatfHx8IiF8IhYgAykDmAIiInwiGCADQbACaikDACADKQOoAiISIB18IBJUrXx8IhkgAykDuAN8Ih1Cm5Svw/K1qN6Gf34iEkJtQgAQvQMgA0G4AWogEkJ/QgAQvQMgA0GoAWogEkL///////////8AQgAQvQMgA0E4aiAKKQMAIhIgE0IAEL0DIANByABqIBIgFUIAEL0DIANB2ABqIBIgFEIAEL0DIANB6ABqIBIgF0IAEL0DIANBKGogA0HAA2opAwAgGSAdVq18IiMgAykD2AJ8IhMgIiADQeABaikDACAbIB9UrXwiHyADKQN4fCISIAMpA+gCfCIVIBogIVatICAgGiAbVK18fHwiFCADKQPoAXwiFyAWIBxUrSADQdACaikDACAcIB5UrXx8fCIcfCIbIBggGVatIANBoAJqKQMAIh4gFiAYVq18fHwiIHwiFiADKQO4ASIhfCIYIANB0AFqKQMAIAMpA8gBIhkgHXwgGVStfHwiGSADKQM4fCIdQpuUr8Pytajehn9+IhpCbUIAEL0DIANBGGogGkJ/QgAQvQMgA0EIaiAaQv///////////wBCABC9AwJAAkAgA0EQaikDACADQbABaikDACADQZACaikDACAUIBVUrSADQfACaikDACASIBVWrXx8IhogA0GAAWopAwAgEiAfVK18fCISIAMpA4gBfCIVIBcgHFatIANB8AFqKQMAIBQgF1atfHx8IhQgAykDiAJ8IhcgFFStfCAXIBcgGyAgVq0gHiAbIBxUrXx8fCIXVq18IhwgFCAVVK0gA0GQAWopAwAgEiAVVq18fCIbIBIgGlStfCIafCISIAMpA5gBfCIVIANBgAJqKQMAIBcgAykD+AF8IhQgF1StfCAUIBMgFlatIANB4AJqKQMAIBMgI1StfHx8IhMgFFStfHwiFCADKQOoAXwiFyAUVK18IBcgA0HAAWopAwAiHiATIBMgIXwiE1atfCATIBggGVatIB4gFiAYVq18fHwiFiATVK18fCITIBdUrXwiHiAUIBVUrSADQaABaikDACASIBVWrXx8Ih8gEiAcVK0gGiAbVK18fCIcfCISIAMpA2h8IhUgA0HgAGopAwAgEyATIAMpA1h8IhNWrXwgEyATIANB0ABqKQMAIANBQGspAwAgGSAdVq18IhcgAykDSHwiFCAXVK18IBQgFCAWfCIUVq18fCITVq18fCIWIAMpAwh8IhggFlStfCAYIANBIGopAwAiFyATIBMgAykDGCIZfCITVq18IBMgEyAXIBQgFCAZfCIUVq18IBQgA0EwaikDACADKQMoIhcgHXwgF1StfHwiFyAUVK18fCITVq18fCIUIBhUrXwiGCAVIBZWrSADQfAAaikDACASIBVWrXx8IhUgEiAeVK0gHCAfVK18fCISfCIWQgBTIBYgGFStQgAgEiAVVK19UnINAAJAIBZC////////////AFEEQCAUQn9RDQFC////////////ACEWCyAUIRIgEyEVDAILQn8hEiATQn9SBEBC////////////ACEWIBMhFQwCCyAXQm1aDQBC////////////ACEWQn8hFQwBCyATQgF8IhIgF0JtVK0iGH0hFSAUQgF8IhkgE0J/UiASIBhUcq0iE30hEiAWIBRCf1IgEyAZVnKtfUL///////////8AfSEWIBdCE3whFwsgFiAEIAVqIgopAwB8IhMgEiAKQQhqIg8pAwB8IhQgElQgFCAVIBUgCkEQaiIQKQMAfCIVViAVIBUgFyAKQRhqIhEpAwB8IhIgF1StfCIVVnKtfCIYIBRUcq18IRQCQCATIBZUIBMgFFZyDQBC////////////ACEWIBQiE0L///////////8AUQRAIBhCf1INA0J/IRMgFUJ/UgRAIBUhFwwFC0JtIRYgEiETIBJCbVENAQsgEyAWWg0AIBQhFgwCCyAVQgF8IhMgEkJtVK0iFn0hFyAYQgF8IhkgFUJ/UiATIBZUcq0iFX0hEyAUIBhCf1IgFSAZVnKtfUL///////////8AfSEWIBJCE3whEgwCCyACIAhBiPTAABDWAwALIBghEyAVIRcLIAogFjcDACAPIBM3AwAgECAXNwMAIBEgEjcDACACQQFqIQIgDSAFQSBqIgVHDQALIARBIGohBCAJIAtHDQALIANBADoA3AMgAyAHNgLUAyADIAcgCEEFdGo2AtgDIANByANqIANB1ANqELMCIAMoAtADIgJBAk8EQCACQQF2IQUgAygCzAMiASACQQV0akEgayECA0AgASkDACETIAEgAikDADcDACABQRhqIgkpAwAhEiAJIAJBGGoiCSkDADcDACABQRBqIgQpAwAhFSAEIAJBEGoiBCkDADcDACABQQhqIgYpAwAhFCAGIAJBCGoiBikDADcDACACIBM3AwAgCSASNwMAIAQgFTcDACAGIBQ3AwAgAkEgayECIAFBIGohASAFQQFrIgUNAAsLIAAgAykCyAM3AgAgAEEIaiADQdADaigCADYCACAIRQ0BIAcgCEEFdBC5BAwBCyAAEOwCCyADQYAEaiQADwsgAiABEKgEAAvvGwIEfy9+IwBB4AZrIgIkACACQbgGaiABQRhqKQMANwMAIAJBsAZqIAFBEGopAwA3AwAgAkGoBmogAUEIaikDADcDACACQcgGaiABQShqKQMANwMAIAJB0AZqIAFBMGopAwA3AwAgAkHYBmogAUE4aikDADcDACACIAEpAwA3A6AGIAIgASkDIDcDwAYgAkHgBWogAkGgBmoQrQMgAigC5AUhAyACKALgBSEFIAIoAugFIgRBAkYEQCADKQM4IQ4gAykDMCEQIAMpAyghESADKQMgIQwgAykDGCETIAMpAxAhDyADKQMIIQ0gAzUCBCEHIAMoAgAhBCAFBEAgAyAFQQV0ELkEC0KpwMaJrs6TsjAhCiANIBF8IgkgDVQgCSAJIA8gEHwiCCAPVCAIIA4gE3wiBiATVK18IgsgCFRyrXwiCVZyrSAMIAStIAdCIIaEIhJ8fCIIIQcCQAJAAkAgCEKpwMaJrs6TsjBSDQBC3bCFjOi2kai4fyEKIAkiB0LdsIWM6LaRqLh/Ug0AQo2Vx8OW0trAl38hCiALIgdCjZXHw5bS2sCXf1INAELH+vPD7YKjkDwhCiAGIQcgBkLH+vPD7YKjkDxRDQELIAcgCloNACAJIQogCyEHDAELIAtC8+q4vOmtpb/oAHwiFCAGQsf688PtgqOQPFStIgp9IQcgCUKjz/rzl8nu18cAfCIVIAtCjZXHw5bS2sCXf1QgCiAUVnKtIgt9IQogCCAJQt2whYzotpGouH9UIAsgFVZyrX1CqcDGia7Ok7IwfSEIIAZCx/rzw+2Co5A8fSEGCyACIAY3A9gFIAIgBzcD0AUgAiAKNwPIBSACIAg3A8AFIAICfgJAAkAgDCIIIBIiBlINACARIgggDSIGUg0AIBAiCCAPIgZSDQAgDiIIIBMiBlENAQsgBiAIVg0AQt2whYzotpGouH8gESANfSIYIBAgD30iByAOIBNUrSIGVCAPIBBWcq0iFH0iFX0iCiAHIAZ9IgZCjZXHw5bS2sCXf1ZCjZXHw5bS2sCXfyAGfSILIA4gE30iCULH+vPD7YKjkDxWrSIHVHKtIgZ9IQggBiAKViAVQt2whYzotpGouH9WciEEIAsgB30hBiANIBFWIBQgGFZyrSASIAx9fEKpwMaJrs6TsjB8IQtCx/rzw+2Co5A8IAl9DAELIA8gEH0iCCAOIBNWrSIHfSEGIA0gEX0iCSAPIBBUIAcgCFZyrSIHfSEIIA0gEVQgByAJVnIhBCASIAx9IQsgEyAOfQs3A/gFIAIgBjcD8AUgAiAINwPoBSACIAsgBK19NwPgBSACQaAFaiIDIAJBwAVqIAJB4AVqIgQQggEgAkLX0bSFldXyi/oANwP4BSACQrnD1Iqur7C1HzcD8AUgAkKEpa/L5sn6pTM3A+gFIAJCjrve8Mzo2Y8qNwPgBSACQbAEaiAOIBNCABC9AyACQdADaiAOIA9CABC9AyACQcADaiAOIA1CABC9AyACQbADaiAOIBJCABC9AyACQaAEaiACKQOwBCIJQgBCiceZpK7wgemHfxC9AyACQZAEaiACQagEaikDACIGQsf688PtgqOQPEIAEL0DIAJBgARqIAZCjZXHw5bS2sCXf0IAEL0DIAJB8ANqIAZC3bCFjOi2kai4f0IAEL0DIAJB4ANqIAZCqcDGia7Ok7IwQgAQvQMgAkGgA2ogECATQgAQvQMgAkHAAmogECAPQgAQvQMgAkGwAmogECANQgAQvQMgAkGgAmogECASQgAQvQMgAkGQA2ogAikDgAQiCyACQbgEaikDACIIIAIpA9ADfCIHfCIUIAJBmARqKQMAIAkgAikDkAQiBnwgBlStfHwiCiACKQOgA3wiBkIAQonHmaSu8IHph38QvQMgAkGAA2ogAkGYA2opAwAiCULH+vPD7YKjkDxCABC9AyACQfACaiAJQo2Vx8OW0trAl39CABC9AyACQeACaiAJQt2whYzotpGouH9CABC9AyACQdACaiAJQqnAxomuzpOyMEIAEL0DIAJBkAJqIBEgE0IAEL0DIAJBsAFqIBEgD0IAEL0DIAJBoAFqIBEgDUIAEL0DIAJBkAFqIBEgEkIAEL0DIAJBgAJqIAJBqANqKQMAIAYgClStfCIJIAIpA8ACfCIVIAJB2ANqKQMAIAcgCFStfCIIIAIpA8ADfCIOIAIpA/ADfCIQIAogFFStIAJBiARqKQMAIAsgFFatfHx8Igd8IhEgAikD8AJ8IgogAkGIA2opAwAgBiACKQOAAyIGfCAGVK18fCILIAIpA5ACfCIGQgBCiceZpK7wgemHfxC9AyACQfABaiACQYgCaikDACIUQsf688PtgqOQPEIAEL0DIAJB4AFqIBRCjZXHw5bS2sCXf0IAEL0DIAJB0AFqIBRC3bCFjOi2kai4f0IAEL0DIAJBwAFqIBRCqcDGia7Ok7IwQgAQvQMgAkGAAWogDCATQgAQvQMgAkEgaiAMIA9CABC9AyACQRBqIAwgDUIAEL0DIAIgDCASQgAQvQMgAkHwAGogAkGYAmopAwAgBiALVK18IiwgAikDsAF8IiAgAkHIA2opAwAgCCAOVq18Ii0gAikDsAN8IiEgAikD4AN8IiIgByAQVK0gAkH4A2opAwAgDiAQVq18fHwiIyACKQOwAnwiJCARIBVUrSACQcgCaikDACAJIBVWrXx8fCIlIAIpA+ACfCImIAogC1atIAJB+AJqKQMAIAogEVStfHx8Ii58IicgAikD4AF8IiggAkH4AWopAwAgBiACKQPwASIGfCAGVK18fCIpIAIpA4ABfCIqQgBCiceZpK7wgemHfxC9AyACQeAAaiACQfgAaikDACIGQsf688PtgqOQPEIAEL0DIAJB0ABqIAZCjZXHw5bS2sCXf0IAEL0DIAJBQGsgBkLdsIWM6LaRqLh/QgAQvQMgAkEwaiAGQqnAxomuzpOyMEIAEL0DIAJB6AJqKQMAIS8gAkG4AmopAwAhMCACQegDaikDACEZIAJBuANqKQMAIQYgAikDoAIhGiACKQPQAiEWIAIpA6ABITEgAkGoAWopAwAhMiACQbgBaikDACEzIAJB2AJqKQMAIRsgAkGoAmopAwAhHCACKQOQASEXIAIpA8ABIR0gAikD0AEhNCACQdgBaikDACEeIAJB6AFqKQMAIR8gAikDECEYIAJBGGopAwAhFCACQYgBaikDACEVIAIpAyAhEyACQShqKQMAIQ8gAkHIAWopAwAhByACQZgBaikDACEIIAIpAwAhDSACKQMwIQ4gAkE4aikDACEQIAIpA0AhESACQcgAaikDACEMIAIpA1AhEiACQdgAaikDACEKIAIpA2AhKyACQegAaikDACEJIAJBCGopAwAhCyACQYAFaiADIAQQggECQAJAIBAgDiANIAcgHSAXIBsgFiAaICIgI1atIBkgISAiVq18fCAGICEgLVStfHwiBnwiGSAkICVWrSAwICMgJFatfHx8Ihp8IhYgGlStfCAWIBYgJiAuVq0gLyAlICZWrXx8fCIWVq18IBkgGlatIBwgBiAZVq18fHwiBnwiGyAyIBYgMXwiFyAWVK18IBcgICAnVq0gMyAgICxUrXx8fCIcIBdUrXx8Ihd8Ih0gF1StfCAdIB4gHCA0fCIHIBxUrXwgByAHICggKVatIB8gJyAoVq18fHwiB1atfHwiHiAdVK18IBcgG1StIAggBiAbVq18fHwiCHwiHyAUIBggHnwiGCAeVK18IBggDyATIBUgKSAqVq18IgZ8Ig0gBlStfCAHIA18Ig8gDVStfHwiBiAYVK18fCINfCIOIA1UrXwgDiAMIAYgEXwiByAG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AEE4aiACQThqKQMANwMAIABBMGogAkEwaikDADcDACAAQShqIAJBKGopAwA3AwAgAEEgaiACQSBqKQMANwMAIABBGGogAkEYaikDADcDACAAQRBqIAJBEGopAwA3AwAgAEEIaiACQQhqKQMANwMAIAJBoAFqJAAL8BcCD38UfiMAQcADayIDJAAgASgCBCIJQSBrIQcgCSABKAIIIgZBBXQiAWohCwJAAkACQANAIAFFDQEgASAHaiABQSBrIQFBsO/AAEEgENAERQ0ACyACKAIIIgRBBXQhASACKAIEIgxBIGshAgNAIAFFDQEgASACaiABQSBrIQFBsO/AAEEgENAERQ0AC0EIIQcgBCAGaiIGQQFrIggEQCAIQQV0IQEgCEH///8fSwRAQQAhAgwEC0HZvsIALQAAGkEIIQIgAUEIELAEIgdFDQMgByEBAkAgCEEBRg0AIAZBAmsiBUEHcSECIAZBA2tBB08EQCAFQXhxIQUDQCABQgA3AwAgAUEYakIANwMAIAFBEGpCADcDACABQQhqQgA3AwAgAUEgakIANwMAIAFBKGpCADcDACABQTBqQgA3AwAgAUE4akIANwMAIAFBQGtCADcDACABQcgAakIANwMAIAFB0ABqQgA3AwAgAUHYAGpCADcDACABQeAAakIANwMAIAFB6ABqQgA3AwAgAUHwAGpCADcDACABQfgAakIANwMAIAFBmAFqQgA3AwAgAUGQAWpCADcDACABQYgBakIANwMAIAFBgAFqQgA3AwAgAUG4AWpCADcDACABQbABakIANwMAIAFBqAFqQgA3AwAgAUGgAWpCADcDACABQcABakIANwMAIAFByAFqQgA3AwAgAUHQAWpCADcDACABQdgBakIANwMAIAFB4AFqQgA3AwAgAUHoAWpCADcDACABQfABakIANwMAIAFB+AFqQgA3AwAgAUGAAmohASAFQQhrIgUNAAsLIAJFDQADQCABQgA3AwAgAUEYakIANwMAIAFBEGpCADcDACABQQhqQgA3AwAgAUEgaiEBIAJBAWsiAg0ACwsgAUIANwMAIAFBGGpCADcDACABQRBqQgA3AwAgAUEIakIANwMACyAEQQV0IQ1BACEGIAchBANAIAYiAiAIIAIgCEsbIQ4gAkEBaiEGIAkiAUEgaiEJQQAhBQNAAkACQCACIA5HBEAgA0HYAmogASkDGCISIAUgDGoiCkEYaikDACIUQgAQvQMgA0GIAmogASkDECIXIBRCABC9AyADQbgBaiABKQMIIhMgFEIAEL0DIANB6ABqIAEpAwAiFSAUQgAQvQMgA0HIAmogAykD2AIiFkKx6pSR3aOCnFh+IhRCr/j//29CABC9AyADQbgCaiAUQn9CABC9AyADQegCaiAKQRBqKQMAIhQgEkIAEL0DIANBmAJqIBQgF0IAEL0DIANByAFqIBQgE0IAEL0DIANB+ABqIBQgFUIAEL0DIANB+AFqIAMpA7gCIhQgA0HgAmopAwAiGyADKQOIAnwiHHwiGCADQdACaikDACAWIAMpA8gCIhl8IBlUrXx8IhkgAykD6AJ8IhpCseqUkd2jgpxYfiIWQq/4//9vQgAQvQMgA0HoAWogFkJ/QgAQvQMgA0H4AmogCkEIaikDACIWIBJCABC9AyADQagCaiAWIBdCABC9AyADQdgBaiAWIBNCABC9AyADQYgBaiAWIBVCABC9AyADQagBaiADQfACaikDACAZIBpWrXwiHyADKQOYAnwiHSAUIANBkAJqKQMAIBsgHFatfCIhIAMpA7gBfCIbfCIcIBggGVatIANBwAJqKQMAIhkgFCAYVq18fHwiInwiGCADKQPoASIjfCIeIANBgAJqKQMAIAMpA/gBIhYgGnwgFlStfHwiGiADKQP4AnwiIEKx6pSR3aOCnFh+IhZCr/j//29CABC9AyADQZgBaiAWQn9CABC9AyADQShqIAopAwAiFiASQgAQvQMgA0E4aiAWIBdCABC9AyADQcgAaiAWIBNCABC9AyADQdgAaiAWIBVCABC9AyADQRhqIANBgANqKQMAIBogIFatfCIkIAMpA6gCfCISICMgFCADQcABaikDACAbICFUrXwiJSADKQNofCIXfCIUIBwgIlatIBkgGyAcVq18fHwiEyADKQPIAXwiFSAYIB1UrSADQaACaikDACAdIB9UrXx8fCIWfCIdIBogHlStIANB8AFqKQMAIhogGCAeVq18fHwiInwiGCADKQOYASIbfCIcIANBsAFqKQMAIAMpA6gBIh4gIHwgHlStfHwiHiADKQMofCIgQrHqlJHdo4KcWH4iH0Kv+P//b0IAEL0DIANBCGogH0J/QgAQvQMCQCADQRBqKQMAIh8gA0GgAWopAwAiISAb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QgA3AwAgA0HgAWpCADcDACADQegBakIANwMAIANB8AFqQgA3AwAgA0H4AWpCADcDACADQYACaiEDIAVBCGsiBQ0ACwsgBEUNAANAIANCADcDACADQRhqQgA3AwAgA0EQakIANwMAIANBCGpCADcDACADQSBqIQMgBEEBayIEDQALCyADQgA3AwAgA0EYakIANwMAIANBEGpCADcDACADQQhqQgA3AwAgASgCBCIDIAZBBXRqIQZBACEBQQEhBUEAIQQDQAJAIAFBAXEEQCADIAZHDQEMBQsgBiADa0EFdiAFTQ0EIAQgBWohBCADIAVBBXRqIQMLIAJB+AJqIAStIg1CA34iCkKBgICAcEIAEL0DIAJBqANqIA1C/////79/QgAQvQMgAkHoAmogAikDqAMiDCANQoCAgIAwfnwiDkKBgICAcEIAEL0DIAJBmANqIA1CfkIAEL0DIAJByAJqIA5CIIYiCyACQbADaikDACAMIA5WrXwgCkIgiHx8IgwgAikDmAN8IgpCgYCAgHBCABC9AyACQYgDaiANQv3////PAEIAEL0DIAJB2AJqIApCIIYiDyACQaADaikDACAKIAxUrXwiECALIAxWrSAOQiCIfCILIAIpA/gCfCIRfCISfCIOIAIpA4gDfCINQoGAgIBwQgAQvQMCQCACQeACaikDACACQdACaikDACACQfACaikDACACKQPoAiITIAJBgANqKQMAfCIMIBNUrXwgDCAMIAsgEVatfCIMVq18IhEgAikDyAJ8IgsgEVStfCALIAwgECASVq18IhAgDFStfCIMIAtUrXwgDCAOIA9UrSAKQiCIfCIKIBB8IgsgClStfCIKIAxUrXwiDyACKQPYAnwiDCAPVK18IAwgCiAKIAJBkANqKQMAIA0gDlStfCIOIAt8IgsgDlStfCIKVq18Ig4gDFStfCAOIAogDUIghiIKIAt8IgsgClStIA1CIIh8Ig18IgogDVStfCIMIA5UrXwiD0KBgICAcFQEQCAKIQ4gDCENDAELAkAgDEIAUiAKQv////8PVnINAEIAIQ0gCkL/////D1QEQCAKIQ5CgYCAgHAhDwwCC0L/////DyEOIAtCf1ENAEKBgICAcCEPDAELIApC/////w99Ig0gC0J/Uq0iEH0hDiAMIApC/////w9UIA0gEFRyrSIKfSENIA8gCiAMVq19Qv////8PfCEPIAtCAXwhCwsgAkG4AmogAykDGCIKIAtCABC9AyACQZgCaiADKQMQIgwgC0IAEL0DIAJBiAJqIAMpAwgiECALQgAQvQMgAkH4AWogAykDACIRIAtCABC9AyACQagCaiACKQO4AiILQoGAgIBwQgAQvQMgAkHoAWogCiAOQgAQvQMgAkHIAWogDCAOQgAQvQMgAkG4AWogECAOQgAQvQMgAkGoAWogESAOQgAQvQMgAkHYAWogC0IghiITIAJBwAJqKQMAIhQgAikDmAJ8IhV8IhIgAikD6AF8Ig5CgYCAgHBCABC9AyACQZgBaiAKIA1CABC9AyACQfgAaiAMIA1CABC9AyACQegAaiAQIA1CABC9AyACQdgAaiARIA1CABC9AyACQYgBaiAOQiCGIhcgEiATVK0gC0IgiHwiFiACQaACaikDACAUIBVWrXwiFCACKQOIAnwiFXwiCyACKQPIAXwiEyACQfABaikDACAOIBJUrXx8Ihh8IhIgAikDmAF8Ig1CgYCAgHBCABC9AyACQcgAaiAKIA9CABC9AyACQShqIAwgD0IAEL0DIAJBGGogECAPQgAQvQMgAkEIaiARIA9CABC9AyACQThqIA1CIIYiGSASIBdUrSAOQiCIfCIXIAJBkAJqKQMAIBQgFVatfCIUIAIpA/gBfCIKIAIpA6gCfCIMIAsgFlStfCIPIAIpA7gBfCIQIBMgGFatIAJB0AFqKQMAIAsgE1atfHx8IhV8IgsgAikDeHwiESACQaABaikDACANIBJUrXx8IhZ8IhIgAikDSHwiDkKBgICAcEIAEL0DAkACQCACQUBrKQMAIAJBMGopAwAgAkHQAGopAwAgDiASVK18IhggAikDKHwiEyAYVK18IBMgESAWVq0gAkGAAWopAwAgCyARVq18fCIWIAIpA2h8IhEgCyAXVK0iFyACKQPYAXwiCyAMIA9WrSACQbACaikDACAKIAxWrXx8IhggAkGAAmopAwAgCiAUVK18fCIKIAIpA6gBfCIMIBAgFVatIAJBwAFqKQMAIA8gEFatfHx8IhR8IhV8Ig8gEiAZVK0gDUIgiHx8IhB8IhIgE1StfCITIAIpAxh8Ig0gDyAQVq0iGSACKQOIAXwiECALIBVWrSACQeABaikDACALIBdUrXx8IhUgDCAUVq0gAkGwAWopAwAgCiAMVq18fCIUIAogGFStfCIXfCIKIAIpA1h8IgwgDyARVK0gAkHwAGopAwAgESAWVK18fHwiFnwiGHwiCyAOQiCGIhEgEnwiDyARVK0gDkIgiHx8Ig4gC1StIhIgAikDOHwiESASVK18IBEgECAYVq0gAkGQAWopAwAgECAZVK18fCISIAwgFlatIAJB4ABqKQMAIAogDFatfHwiFiAKIBVUrSAUIBdWrXx8IhR8IgogAikDCHwiECALIA1UrSACQSBqKQMAIA0gE1StfHx8Ig18IgwgEVStfCIRIA0gEFStIAJBEGopAwAgCiAQVq18fCINIAogElStIBQgFlStfHwiCnwiC0KBgICAcFYgCyARVK1CACAKIA1UrX1Scg0AAkAgC0KBgICAcFEEQCAMQgBSIA5C/////w9Wcg0CQgAhDSAOQv////8PWg0BQoGAgIBwIQsgDiEKDAMLIAwhDSAOIQoMAgtC/////w8hCiAPQn9RDQBCgYCAgHAhCwwBCyAOQv////8PfSINIA9Cf1KtIhB9IQogDCAOQv////8PVCANIBBUcq0iDn0hDSALIAwgDlStfUL/////D3whCyAPQgF8IQ8LIARBAWsiASAHTw0CIARBAWohBCADQSBqIQMgCCABQQV0aiIBIA83AxggASAKNwMQIAEgDTcDCCABIAs3AwBBACEFQQEhAQwACwALIAAQ7AIMAgsgASAHQYz1wAAQ1gMACyACQQA6AMwDIAIgCDYCxAMgAiAIIAdBBXRqNgLIAyACQbgDaiACQcQDahCzAiACKALAAyIBQQJPBEAgAUEBdiEFIAIoArwDIgMgAUEFdGpBIGshBANAIAMpAwAhDSADIAQpAwA3AwAgA0EYaiIBKQMAIQ4gASAEQRhqIgEpAwA3AwAgA0EQaiIHKQMAIQogByAEQRBqIgcpAwA3AwAgA0EIaiIGKQMAIQwgBiAEQQhqIgYpAwA3AwAgBCANNwMAIAEgDjcDACAHIAo3AwAgBiAMNwMAIARBIGshBCADQSBqIQMgBUEBayIFDQALCyAAIAIpArgDNwIAIABBCGogAkHAA2ooAgA2AgAgCCAJELkECyACQfADaiQADwsgAyAJEKgEAAusFwIBfyZ+IwBBgAZrIgMkACADQcAFaiACKQMAIgQgASkDACIFQgAQvQMgA0GABWogAikDCCIHIAVCABC9AyADQcAEaiACKQMQIgggBUIAEL0DIANBgARqIAIpAxgiCSAFQgAQvQMgA0HAA2ogAikDICIFIAEpAyAiBkIAEL0DIANBwAJqIAJBKGopAwAiDSAGQgAQvQMgA0HAAWogAkEwaikDACIOIAZCABC9AyADQUBrIAJBOGopAwAiDyAGQgAQvQMgA0GwA2ogAykDwAMiCyADKQPABXwiCkKJx5mkrvCB6Yd/fiIGQsf688PtgqOQPEIAEL0DIANBoANqIAZCjZXHw5bS2sCXf0IAEL0DIANBkANqIAZC3bCFjOi2kai4f0IAEL0DIANBgANqIAZCqcDGia7Ok7IwQgAQvQMgA0HQBWogBCABKQMIIgZCABC9AyADQZAFaiAHIAZCABC9AyADQdAEaiAIIAZCABC9AyADQZAEaiAJIAZCABC9AyADQdADaiAFIAFBKGopAwAiBkIAEL0DIANB0AJqIA0gBkIAEL0DIANB0AFqIA4gBkIAEL0DIANB0ABqIA8gBkIAEL0DIANBsAJqIAMpA9ADIhAgAykD0AUiESADKQOgAyIUIAMpA8ACIhIgAykDgAUiEyADQcgFaikDAHwiFXwiDCADQcgDaikDACAKIAtUrXx8IhZ8IgsgA0G4A2opAwAgAykDsAMiBiAKfCAGVK18fCIXfCIYfCIKQonHmaSu8IHph39+IgZCx/rzw+2Co5A8QgAQvQMgA0GgAmogBkKNlcfDltLawJd/QgAQvQMgA0GQAmogBkLdsIWM6LaRqLh/QgAQvQMgA0GAAmogBkKpwMaJrs6TsjBCABC9AyADQeAFaiAEIAEpAxAiBkIAEL0DIANBoAVqIAcgBkIAEL0DIANB4ARqIAggBkIAEL0DIANBoARqIAkgBkIAEL0DIANB4ANqIAUgAUEwaikDACIGQgAQvQMgA0HgAmogDSAGQgAQvQMgA0HgAWogDiAGQgAQvQMgA0HgAGogDyAGQgAQvQMgA0GwAWogAykD4AMiGSADKQPgBSIaIAMpA6ACIhsgAykD0AIiHCADKQOQBSIdIAMpA8ABIh4gAykDwAQiHyADQYgFaikDACATIBVWrXx8IhV8IhMgDCAWVq0gA0HIAmopAwAgDCASVK18fHwiDCADKQOQA3wiEiALIBdWrSADQagDaikDACALIBRUrXx8fCIUfCILIANB2AVqKQMAIBEgGFatfHwiFnwiESADQdgDaikDACAKIBBUrXx8Ihd8IhAgA0G4AmopAwAgAykDsAIiBiAKfCAGVK18fCIYfCIgfCIKQonHmaSu8IHph39+IgZCx/rzw+2Co5A8QgAQvQMgA0GgAWogBkKNlcfDltLawJd/QgAQvQMgA0GQAWogBkLdsIWM6LaRqLh/QgAQvQMgA0GAAWogBkKpwMaJrs6TsjBCABC9AyADQfAFaiAEIAEpAxgiBEIAEL0DIANBsAVqIAcgBEIAEL0DIANB8ARqIAggBEIAEL0DIANBsARqIAkgBEIAEL0DIANB8ANqIAUgAUE4aikDACIEQgAQvQMgA0HwAmogDSAEQgAQvQMgA0HwAWogDiAEQgAQvQMgA0HwAGogDyAEQgAQvQMgA0EwaiADKQPwAyIhIAMpA/AFIiIgAykDoAEiIyADKQPgAiIkIAMpA6AFIiUgAykD0AEiJiADKQPQBCInIAMpA0AiKCADKQOABCIpIANByARqKQMAIBUgH1StfHwiFXwiBSAMIBNUrSADQcgBaikDACATIB5UrXx8fCIHIAMpA4ADfCIIIBIgFFatIANBmANqKQMAIAwgElatfHx8IhN8IgkgCyAWVq0gA0GYBWopAwAgCyAdVK18fHwiEnwiBiARIBdWrSADQdgCaikDACARIBxUrXx8fCINIAMpA5ACfCIOIBAgGFatIANBqAJqKQMAIBAgG1StfHx8IhF8Ig8gA0HoBWopAwAgGiAgVq18fCIQfCIMIANB6ANqKQMAIAogGVStfHwiFHwiCyADQbgBaikDACADKQOwASIEIAp8IARUrXx8IhZ8Ihd8IgpCiceZpK7wgemHf34iBELH+vPD7YKjkDxCABC9AyADQSBqIARCjZXHw5bS2sCXf0IAEL0DIANBEGogBELdsIWM6LaRqLh/QgAQvQMgAyAEQqnAxomuzpOyMEIAEL0DAkAgA0G4BGopAwAgAykDsAQiGCADQagEaikDACADKQOgBCIZIANBmARqKQMAIAMpA5AEIhogA0GIBGopAwAgFSApVK18IgQgBSAHVq0gA0HIAGopAwAgBSAoVK18fHwiBSAEIAVWrXwgCCATVq0gA0GIA2opAwAgByAIVq18fHx8IgQgGlStfCAEIAQgCSASVq0gA0HYBGopAwAgCSAnVK18fHwiBFatfCIFIANB2ABqKQMAIAMpA1AiByAEfCIEIAdUrXwgBCAEIAYgDVatIANB2AFqKQMAIAYgJlStfHx8IgRWrXx8IgcgBSAHVq18IANBiAJqKQMAIAQgBCADKQOAAnwiBFatfCAEIA4gEVatIANBmAJqKQMAIA0gDlatfHx8IgUgBFStfHx8IgQgGVStfCAEIAQgA0HoBGopAwAgAykD4AQiByAFfCIFIAdUrXwgBSAFIA8gEFatIANBqAVqKQMAIA8gJVStfHx8IgVWrXx8IgRWrXwiByADQegAaikDACADKQNgIgggBHwiBCAIVK18IAQgBCADQegBaikDACADKQPgASIIIAV8IgUgCFStfCAFIAUgDCAUVq0gA0HoAmopAwAgDCAkVK18fHwiBVatfHwiBFatfHwiCCAHIAhWrXwgA0GIAWopAwAgBCAEIAMpA4ABfCIEVq18IAQgA0GYAWopAwAgBSAFIAMpA5ABfCIFVq18IAUgCyAWVq0gA0GoAWopAwAgCyAjVK18fHwiByAFVK18fCIFIARUrXx8fCIEIBhUrXwgBCAEIANB+ARqKQMAIAMpA/AEIgggBXwiBSAIVK18IAUgBSADQbgFaikDACADKQOwBSIIIAd8IgcgCFStfCAHIAcgA0H4BWopAwAgFyAiVK18fCIHVq18fCIFVq18fCIEVq18IgggA0H4AGopAwAgAykDcCIJIAR8IgQgCVStfCAEIAQgA0H4AWopAwAgAykD8AEiCSAFfCIFIAlUrXwgBSAFIANB+AJqKQMAIAMpA/ACIgkgB3wiByAJVK18IAcgA0H4A2opAwAgCiAhVK18fCIJIAdUrXx8IgVWrXx8IgRWrXx8IgcgByAIVK18IANBCGopAwAgBCADKQMAfCIHIARUrXwgByAHIANBGGopAwAgBSADKQMQfCIEIAVUrXwgBCAEIANBKGopAwAgAykDICIIIAl8IgUgCFStfCAFIANBOGopAwAgAykDMCIIIAp8IAhUrXx8IgYgBVStfHwiBFatfHwiB1atfHwiCUKpwMaJrs6TsjBUBEAgBCEFIAchCAwBCwJAIAlCqcDGia7Ok7IwUg0AIAdC3bCFjOi2kai4f1QEQCAEIQUgByEIQqnAxomuzpOyMCEJDAILIAdC3bCFjOi2kai4f1INAEKNlcfDltLawJd/IQVC3bCFjOi2kai4fyEIIARCjZXHw5bS2sCXf1QEQCAEIQVCqcDGia7Ok7IwIQkMAgsgBEKNlcfDltLawJd/UiAGQsf688PtgqOQPFpyDQBCqcDGia7Ok7IwIQkMAQsgCSAHIAQgBkLH+vPD7YKjkDxUrSIIfSIJQvPquLzpraW/6AB8IgUgCVStIAQgCFStUa0iBH0iCUKjz/rzl8nu18cAfCIIIAlUrSAEIAdWrVGtfUKpwMaJrs6TsjB9IQkgBkLH+vPD7YKjkDx9IQYLIAAgCTcDGCAAIAg3AxAgACAFNwMIIAAgBjcDACADQYAGaiQAC/0ZAgF/F34jAEGgBWsiAiQAIAJBsARqIAEpAxgiCyABQThqKQMAIhNCABC9AyACQdADaiABKQMQIgogE0IAEL0DIAJBwANqIAEpAwgiDiATQgAQvQMgAkGwA2ogASkDACIUIBNCABC9AyACQaAEaiACKQOwBCIGQgBCiceZpK7wgemHfxC9AyACQZAEaiACQagEaikDACIDQsf688PtgqOQPEIAEL0DIAJBgARqIANCjZXHw5bS2sCXf0IAEL0DIAJB8ANqIANC3bCFjOi2kai4f0IAEL0DIAJB4ANqIANCqcDGia7Ok7IwQgAQvQMgAkGgA2ogAUEwaikDACIVIAtCABC9AyACQcACaiAVIApCABC9AyACQbACaiAVIA5CABC9AyACQaACaiAVIBRCABC9AyACQZADaiACKQOABCIRIAJBuARqKQMAIgcgAikD0AN8Igh8IgQgAkGYBGopAwAgBiACKQOQBCIDfCADVK18fCIGIAIpA6ADfCIJQgBCiceZpK7wgemHfxC9AyACQYADaiACQZgDaikDACIDQsf688PtgqOQPEIAEL0DIAJB8AJqIANCjZXHw5bS2sCXf0IAEL0DIAJB4AJqIANC3bCFjOi2kai4f0IAEL0DIAJB0AJqIANCqcDGia7Ok7IwQgAQvQMgAkGQAmogAUEoaikDACISIAtCABC9AyACQbABaiASIApCABC9AyACQaABaiASIA5CABC9AyACQZABaiASIBRCABC9AyACQYACaiACQagDaikDACAGIAlWrXwiDCACKQPAAnwiBSACQdgDaikDACAHIAhWrXwiDyACKQPAA3wiByACKQPwA3wiCCAEIAZWrSACQYgEaikDACAEIBFUrXx8fCIX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AkGQBWogAUEQaikDADcDACACQZgFaiABQRhqKQMANwMAIAJBoAVqIAFBIGopAwA3AwAgAkGoBWogAUEoaikDADcDACACQbgFaiABQThqKQMANwMAIAJBwAVqIAFBQGspAwA3AwAgAkHIBWogAUHIAGopAwA3AwAgAkHQBWogAUHQAGopAwA3AwAgAkHYBWogAUHYAGopAwA3AwAgAiABKQMANwOABSACIAEpAzA3A7AFIAJBoARqIgYgAkGABWoQ9QMgAigCpAQhBCACKAKgBCEFAkACQAJAIAIoAqgEIgNBAkYEQCAEKAIEIQcgBCgCACEIIAYgBEEIakHYABDPBBogBQRAIAQgBUEwbBC5BAsgAkHgAWoiBiACQagEaikDADcDACACQegBaiIJIAJBsARqKQMANwMAIAJB8AFqIgogAkG4BGopAwA3AwAgAkH4AWoiCyACQcAEaikDADcDACACQYgCaiIMIAJB0ARqKQMANwMAIAJBkAJqIg0gAkHYBGopAwA3AwAgAkGYAmoiBCACQeAEaikDADcDACACQaACaiIFIAJB6ARqKQMANwMAIAJBqAJqIgMgAkHwBGopAwA3AwAgAiAHNgLUASACIAg2AtABIAIgAikDoAQ3A9gBIAIgAikDyAQ3A4ACQprN/8ujvcSAGiEYIAIpA9gBIhsgDCkDACIhfCIUIBtUIBQgBikDACIcIA0pAwAiInwiESAcVCARIAkpAwAiHSAEKQMAIhZ8IhAgHVQgECAKKQMAIh4gBSkDACIffCIPIB5UIA8gCykDACIgIAMpAwAiGnwiDiAgVK18IhUgD1RyrXwiEiAQVHKtfCITIBFUcq18IhEgFFRyrSACKQOAAiIXIAIpA9ABIiN8fCIPIRACQAJAAkAgD0Kazf/Lo73EgBpSDQBC19mumuT26Y3LACEYIBEhECARQtfZrprk9umNywBSDQBCv6WUnM/w0rvkACEYIBMiEEK/pZScz/DSu+QAUg0AQqTsw7WP1LSY5wAhGCASIRAgEkKk7MO1j9S0mOcAUg0AQv//z4rr///VHiEYIBUiEEL//8+K6///1R5SDQBCq9X+////v/+5fyEYIA4hECAOQqvV/v///7//uX9RDQELIBAgGFoNACARIRAgEyEYIBIhGSAVIRQMAQsgFUL//8+K6///1R59IhkgDkKr1f7///+/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QQFrIgcEQEEAIQQgB0EwbCIBQQBIIAdBqtWqFUtyDQFB2b7CAC0AABpBCCEEIAFBCBCwBCIGRQ0BIAYhAQJAIAdBAUYNACACQQJrIgVBB3EhBCACQQNrQQdPBEAgBUF4cSECA0AgAUIANwMAIAFBKGpCADcDACABQSBqQgA3AwAgAUEYakIANwMAIAFBEGpCADcDACABQQhqQgA3AwAgAUEwakIANwMAIAFBOGpCADcDACABQUBrQgA3AwAgAUHIAGpCADcDACABQdAAakIANwMAIAFB2ABqQgA3AwAgAUHgAGpCADcDACABQegAakIANwMAIAFB8ABqQgA3AwAgAUH4AGpCADcDACABQYABakIANwMAIAFBiAFqQgA3AwAgAUG4AWpCADcDACABQbABakIANwMAIAFBqAFqQgA3AwAgAUGgAWpCADcDACABQZgBakIANwMAIAFBkAFqQgA3AwAgAUHAAWpCADcDACABQcgBakIANwMAIAFB0AFqQgA3AwAgAUHYAWpCADcDACABQeABakIANwMAIAFB6AFqQgA3AwAgAUHwAWpCADcDACABQfgBakIANwMAIAFBgAJqQgA3AwAgAUGIAmpCADcDACABQZACakIANwMAIAFBmAJqQgA3AwAgAUHIAmpCADcDACABQcACakIANwMAIAFBuAJqQgA3AwAgAUGwAmpCADcDACABQagCakIANwMAIAFBoAJqQgA3AwAgAUH4AmpCADcDACABQfACakIANwMAIAFB6AJqQgA3AwAgAUHgAmpCADcDACABQdgCakIANwMAIAFB0AJqQgA3AwAgAUGAA2ohASACQQhrIgINAAsLIARFDQADQCABQgA3AwAgAUEoakIANwMAIAFBIGpCADcDACABQRhqQgA3AwAgAUEQakIANwMAIAFBCGpCADcDACABQTBqIQEgBEEBayIEDQALCyABQgA3AwAgAUEoakIANwMAIAFBIGpCADcDACABQRhqQgA3AwAgAUEQakIANwMAIAFBCGpCADcDAAsDQCAPIg1BAWohDyAIIgVBMGohCCAHIA0gByANSxsgDGohEUEAIQIgCSEEA0AgAiANaiEKAkACQAJAAkACQAJAAkAgAiARRwRAIAJBAWohAiAEQTBqIQ4gBSkDACEbIAUpAwghHCAFKQMQIR0gBSkDGCEeIAUpAyAhHyAFKQMoISBCACEYQSghAUIAIRVCACESQgAhF0IAIRNCACEWA0AgA0H4AGogASAEaikDACIUICBCABC9AyADQYgBaiAUIB9CABC9AyADQZgBaiAUIB5CABC9AyADQagBaiAUIB1CABC9AyADQbgBaiAUIBxCABC9AyADQcgBaiAUIBtCABC9AyADQegAaiADKQN4IhkgFnwiGkIAQv3/8//P///5iX8QvQMgA0HYAGogA0HwAGopAwAiFEKr1f7///+//7l/QgAQvQMgA0HIAGogFEL//8+K6///1R5CABC9AyADQThqIBRCpOzDtY/UtJjnAEIAEL0DIANBKGogFEK/pZScz/DSu+QAQgAQvQMgA0EYaiAUQtfZrprk9umNywBCABC9AyADQQhqIBRCms3/y6O9xIAaQgAQvQMgA0EQaikDACADKQPIASIhIBh8IhQgA0HAAWopAwAgAykDuAEiFiAVfCIVIBZUrXwgFSAVIANBsAFqKQMAIAMpA6gBIhYgEnwiEiAWVK18IBIgEiADQaABaikDACADKQOYASIWIBd8IhcgFlStfCAXIANBkAFqKQMAIAMpA4gBIhYgE3wiEyAWVK18IBMgA0GAAWopAwAgGSAaVq18fCIWIBNUrXx8IhMgF1StfHwiElatfHwiFVatfHwiGSADKQMIfCIYIBlUrXwgGCADQSBqKQMAIBUgFSADKQMYfCIVVq18IBUgA0EwaikDACASIBIgAykDKHwiElatfCASIANBQGspAwAgEyATIAMpAzh8IhNWrXwgEyATIANB0ABqKQMAIBYgAykDSCIWfCIXIBZUrXwgFyADQeAAaikDACAaIAMpA1giGnwgGlStfHwiFiAXVK18fCITVq18fCIXIBJUrXx8IhIgFVStfHwiFSAYVK18IBQgGVatIANB0AFqKQMAIBQgIVStfHx8IRggAUEIayIBQXhHDQALIAYgCkEwbGohASAYQprN/8ujvcSAGlYNBiAYQprN/8ujvcSAGlENAQwCCyAKIAdBiPTAABDWAwALIBVC19mumuT26Y3LAFYNBCAVQtfZrprk9umNywBSBEBCms3/y6O9xIAaIRgMAQsgEkK/pZScz/DSu+QAVg0EQtfZrprk9umNywAhGyASQr+llJzP8NK75ABSBEBCms3/y6O9xIAaIRgMAgsgF0Kk7MO1j9S0mOcA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BANAIAEpAwAhFiABIAQpAwA3AwAgAUEYaiICKQMAIRUgAiAEQRhqIgUpAwA3AwAgAUEQaiICKQMAIRQgAiAEQRBqIgYpAwA3AwAgAUEIaiICKQMAIRIgAiAEQQhqIgIpAwA3AwAgBCAWNwMAIAUgFTcDACAGIBQ3AwAgAiASNwMAIARBIGshBCABQSBqIQEgCEEBayIIDQALCyAAIAMpAsgCNwIAIABBCGogA0HQAmooAgA2AgAgCUUNASAHIAlBBXQQuQQMAQsgABDsAgsgA0GAA2okAA8LIAQgARCoBAALpw0CJH8JfkICISwjAEHAB2siAyQAIANByARqIgUgAUEIaikDACItNwMAIANB0ARqIgYgAUEQaikDACInNwMAIANB4ARqIgcgASkDICIoNwMAIANB6ARqIgkgAUEoaikDACIpNwMAIANB8ARqIgogAUEwaikDACIqNwMAIANB+ARqIgsgAUE4aikDACIrNwMAIANB2ARqIgQgAUEYaikDACImNwMAIANBiANqIg4gLTcDACADQZADaiIPICc3AwAgA0GYA2oiECAmNwMAIANBoANqIgggKDcDACADQagDaiIRICk3AwAgA0GwA2oiEiAqNwMAIANBuANqIhMgKzcDACADIAEpAwAiJjcDwAQgAyAmNwOAAyAFIAFByABqKQMAIi03AwAgBiABQdAAaikDACInNwMAIAQgAUHYAGopAwAiKDcDACAHIAFB4ABqKQMAIik3AwAgCSABQegAaikDACIqNwMAIAogAUHwAGopAwAiKzcDACALIAFB+ABqKQMAIiY3AwAgA0H4A2oiFCAmNwMAIANB8ANqIhUgKzcDACADQegDaiIWICo3AwAgA0HgA2oiFyApNwMAIANB2ANqIhggKDcDACADQdADaiIZICc3AwAgA0HIA2oiGiAtNwMAIAMgASkDQCImNwPABCADICY3A8ADIANB2AFqIhsgAUGYAWopAwAiLjcDACADQdABaiIcIAFBkAFqKQMAIi03AwAgA0HIAWoiHSABQYgBaikDACInNwMAIANB4AFqIh4gAUGgAWopAwAiKDcDACADQegBaiIfIAFBqAFqKQMAIik3AwAgA0HwAWoiICABQbABaikDACIqNwMAIANB+AFqIiEgAUG4AWopAwAiKzcDACADIAEpA4ABIiY3A8ABIAsgKzcDACAKICo3AwAgCSApNwMAIAcgKDcDACAEIC43AwAgBiAtNwMAIAUgJzcDACADICY3A8AEIANBuARqIiIgCykDADcDACADQbAEaiIjIAopAwA3AwAgA0GoBGoiJCAJKQMANwMAIANBoARqIgkgBykDADcDACADQZgEaiIKIAQpAwA3AwAgA0GQBGoiCyAGKQMANwMAIANBiARqIgQgBSkDADcDACADIAMpA8AENwOABCADIANBgANqQcABEM8EIQIDQCACQYADaiIlIgEgAiACEOoBIAIgAUHAARDPBBogLEICgyAsQgGIISxQDQALIAJB4AZqIgwgAikDICImNwMAIAggJjcDACACQcgGaiINIAJBCGopAwAiJzcDACACQdAGaiIFIAJBEGopAwAiKDcDACACQegGaiIGIAJBKGopAwAiKTcDACACQfAGaiIHIAJBMGopAwAiKjcDACACQfgGaiIIIAJBOGopAwAiKzcDACACQdgGaiIBIAJBGGopAwAiJjcDACAOICc3AwAgDyAoNwMAIBAgJjcDACARICk3AwAgEiAqNwMAIBMgKzcDACACIAIpAwAiJjcDwAYgAiAmNwOAAyANIAJByABqKQMANwMAIAUgAkHQAGopAwA3AwAgASACQdgAaikDADcDACAMIAJB4ABqKQMANwMAIAYgAkHoAGopAwA3AwAgByACQfAAaikDADcDACAIIAJB+ABqKQMANwMAIAIgAikDQDcDwAYgFCAIKQMANwMAIBUgBykDADcDACAWIAYpAwA3AwAgFyAMKQMANwMAIBggASkDADcDACAZIAUpAwA3AwAgGiANKQMANwMAIAIgAikDwAY3A8ADIBsgAkGYAWopAwAiLjcDACAcIAJBkAFqKQMAIi03AwAgHSACQYgBaikDACInNwMAIAIgAikDgAEiKDcDwAEgHiACQaABaikDACIpNwMAIB8gAkGoAWopAwAiKjcDACAgIAJBsAFqKQMAIis3AwAgISACQbgBaikDACImNwMAIAggJjcDACAHICs3AwAgBiAqNwMAIAwgKTcDACABIC43AwAgBSAtNwMAIA0gJzcDACACICg3A8AGICIgCCkDADcDACAjIAcpAwA3AwAgJCAGKQMANwMAIAkgDCkDADcDACAKIAEpAwA3AwAgCyAFKQMANwMAIAQgDSkDADcDACACIAIp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rXwiByACVHKtfCIGIANUcq18IgQgClRyrYQiAyECAkACQAJAIANCms3/y6O9xIAaUg0AQtfZrprk9umNywAhBSAEIgJC19mumuT26Y3LAFINAEK/pZScz/DSu+QAIQUgBiICQr+llJzP8NK75ABSDQBCpOzDtY/UtJjnACEFIAciAkKk7MO1j9S0mOcAUg0AQv//z4rr///VHiEFIAgiAkL//8+K6///1R5SDQBCq9X+////v/+5fyEFIAkiAkKr1f7///+//7l/UQ0BCyACIAVaDQAgBCECIAYhCyAHIQUgCCEMDAELIAhC///Piuv//9UefSIFIAlCq9X+////v/+5f1StIgJ9IQwgB0Kk7MO1j9S0mOcAfSILIAhC///Piuv//9UeVCACIAVWcq0iAn0hBSAGQr+llJzP8NK75AB9IgggB0Kk7MO1j9S0mOcAVCACIAtWcq0iAn0hCyAEQtfZrprk9umNywB9IgcgBkK/pZScz/DSu+QAVCACIAhWcq0iBn0hAiADIARC19mumuT26Y3LAFQgBiAHVnKtfUKazf/Lo73EgBp9IQMgCULVqoGAgIDAgMYAfCEJCyAAIB4pA8ABNwMAIAAgAzcDMCAAQdgAaiAJNwMAIABB0ABqIAw3AwAgAEHIAGogBTcDACAAQUBrIAs3AwAgAEE4aiACNwMAIABBKGogHkHoAWopAwA3AwAgAEEgaiAeQeABaikDADcDACAAQRhqIB5B2AFqKQMANwMAIABBEGogHkHQAWopAwA3AwAgAEEIaiAeQcgBaikDADcDACAeQdACaiQAC8AVAhp/AX4jAEGQBGsiAyQAIAIoAgghFSABKAIIIRYgA0HgA2oQugICQAJAAkAgFSAWakEBayIERQRAQQQhBgwBCyAEQQxsIhBBAEggBEGq1arVAEtyDQFB2b7CAC0AABpBBCEFIBBBBBCwBCIGRQ0BCyADQQA2AhggAyAGNgIUIAMgBDYCECADQRBqIgUgBCADQeADahCkAiADKAIYIREgAygCFCEQIAMoAhAhFwJAAkAgFkEAIBUbRQRAQdm+wgAtAAAaQQxBBBCwBCIORQ0CIA4QugIgBRDUAkHZvsIALQAAGkHAAUEIELAEIgRFDQEgBCADKQNoNwMAIAQgAykDODcDMCAEQShqIANBkAFqKQMANwMAIARBIGogA0GIAWopAwA3AwAgBEEYaiADQYABaikDADcDACAEQRBqIANB+ABqKQMANwMAIARBCGogA0HwAGopAwA3AwAgBEE4aiADQUBrKQMANwMAIARBQGsgA0HIAGopAwA3AwAgBEHIAGogA0HQAGopAwA3AwAgBEHQAGogA0HYAGopAwA3AwAgBEHYAGogA0HgAGopAwA3AwAgBEGIAWpCADcDACAEQYABakIANwMAIARB+ABqQgA3AwAgBEHwAGpCADcDACAEQegAakIANwMAIARCADcDYCAEQZjNwAApAwA3A5ABIARBmAFqQaDNwAApAwA3AwAgBEGgAWpBqM3AACkDADcDACAEQagBakGwzcAAKQMANwMAIARBsAFqQbjNwAApAwA3AwAgBEG4AWpBwM3AACkDADcDACADQQA6ANwDIAMgBEHAAWo2AtgDIAMgBDYC1AMgA0HIA2ogA0HUA2oQlAIgAygC0AMiBkECTwRAIAZBAXYhByADKALMAyIFIAZBMGxqQTBrIQYDQCAFKQMAIR0gBSAGKQMANwMAIANBiARqIgwgBUEoaiIPKQMANwMAIANBgARqIhIgBUEgaiITKQMANwMAIANB+ANqIgggBUEYaiIJKQMANwMAIANB8ANqIgogBUEQaiILKQMANwMAIANB6ANqIg0gBUEIaiIUKQMANwMAIA8gBkEoaiIPKQMANwMAIBMgBkEgaiITKQMANwMAIAkgBkEYaiIJKQMANwMAIAsgBkEQaiILKQMANwMAIBQgBkEIaiIUKQMANwMAIAMgHTcD4AMgDyAMKQMANwMAIBMgEikDADcDACAJIAgpAwA3AwAgCyAKKQMANwMAIBQgDSkDADcDACAGIAMpA+ADNwMAIAZBMGshBiAFQTBqIQUgB0EBayIHDQALCyAAQQxqIgUgAykCyAM3AgAgBUEIaiADQdADaigCADYCACAEQcABELkEIABBATYCCCAAIA42AgQgAEEBNgIAAkAgAygCFCIARQ0AIAAgAEEMbEETakF4cSIFakEJaiIARQ0AIAMoAhAgBWsgABC5BAsgEQRAIBAhBQNAIAUoAgAiAARAIAVBBGooAgAgAEEwbBC5BAsgBUEMaiEFIBFBAWsiEQ0ACwsgF0UNBCAQIBdBDGwQuQQMBAsgAigCBCISIBVBDGxqIRkgASgCBCIGIBZBDGxqIRoDQCAPIg5BAWohDyAGIhNBDGohBiARIA4gDiARSRsgDWohG0EAIQsgEiEMAkACQANAAkAgA0EEaiATIAwQZiALIA5qIQUgCyAbRg0AAkAgECAFQQxsaiIIKAIIIgRFBEBBCCEUDAELQQAhBSAEQTBsIhhBAEggBEGq1aoVS3INAyAIKAIEIRxB2b7CAC0AABpBCCEFIBhBCBCwBCIURQ0DQQAhByAEIQUDQCAHIBhGDQEgByAUaiIJIAcgHGoiCikDADcDACAJQShqIApBKGopAwA3AwAgCUEgaiAKQSBqKQMANwMAIAlBGGogCkEYaikDADcDACAJQRBqIApBEGopAwA3AwAgCUEIaiAKQQhqKQMANwMAIAdBMGohByAFQQFrIgUNAAsLIAMgBDYCGCADIBQ2AhQgAyAENgIQIANB4ANqIANBEGogA0EEahDKASAIKAIAIgUEQCAIKAIEIAVBMGwQuQQLIAtBAWohCyAIIAMpAuADNwIAIAhBCGogA0HoA2ooAgA2AgAgGSAMQQxqIgxHDQEMAwsLIAUgEUGU0sAAENYDAAsgBSAYEKgEAAsgDUEBayENIAYgGkcNAAsgA0EQahDUAkHZvsIALQAAGkHAAUEIELAEIgQEQCAEIAMpA2g3AwAgBCADKQM4NwMwIARBKGogA0GQAWopAwA3AwAgBEEgaiADQYgBaikDADcDACAEQRhqIANBgAFqKQMANwMAIARBEGogA0H4AGopAwA3AwAgBEEIaiADQfAAaikDADcDACAEQThqIANBQGspAwA3AwAgBEFAayADQcgAaikDADcDACAEQcgAaiADQdAAaikDADcDACAEQdAAaiADQdgAaikDADcDACAEQdgAaiADQeAAaikDADcDACAEQYgBakIANwMAIARBgAFqQgA3AwAgBEH4AGpCADcDACAEQfAAakIANwMAIARB6ABqQgA3AwAgBEIANwNgIARBmM3AACkDADcDkAEgBEGYAWpBoM3AACkDADcDACAEQaABakGozcAAKQMANwMAIARBqAFqQbDNwAApAwA3AwAgBEGwAWpBuM3AACkDADcDACAEQbgBakHAzcAAKQMANwMAIANBADoA3AMgAyAEQcABajYC2AMgAyAENgLUAyADQcgDaiADQdQDahCUAiADKALQAyIGQQJPBEAgBkEBdiEHIAMoAswDIgUgBkEwbGpBMGshBgNAIAUpAwAhHSAFIAYpAwA3AwAgA0GIBGoiDiAFQShqIgwpAwA3AwAgA0GABGoiDyAFQSBqIhIpAwA3AwAgA0H4A2oiEyAFQRhqIggpAwA3AwAgA0HwA2oiCSAFQRBqIgopAwA3AwAgA0HoA2oiCyAFQQhqIg0pAwA3AwAgDCAGQShqIgwpAwA3AwAgEiAGQSBqIhIpAwA3AwAgCCAGQRhqIggpAwA3AwAgCiAGQRBqIgopAwA3AwAgDSAGQQhqIg0pAwA3AwAgAyAdNwPgAyAMIA4pAwA3AwAgEiAPKQMANwMAIAggEykDADcDACAKIAkpAwA3AwAgDSALKQMANwMAIAYgAykD4AM3AwAgBkEwayEGIAVBMGohBSAHQQFrIgcNAAsLIABBDGoiBSADKQLIAzcCACAFQQhqIANB0ANqKAIANgIAIARBwAEQuQQgACARNgIIIAAgEDYCBCAAIBc2AgAgAygCFCIARQ0EIAAgAEEMbEETakF4cSIFakEJaiIARQ0EIAMoAhAgBWsgABC5BAwEC0EIQcABEMoEAAtBCEHAARDKBAALQQRBDBDKBAALIAUgEBCoBAALIAIoAgQhACAVBEAgACEFA0AgBSgCACIEBEAgBUEEaigCACAEQTBsELkECyAFQQxqIQUgFUEBayIVDQALCyACKAIAIgUEQCAAIAVBDGwQuQQLIAIoAgwiAARAIAIoAhAgAEEwbBC5BAsgASgCBCEAIBYEQCAAIQUDQCAFKAIAIgIEQCAFQQRqKAIAIAJBMGwQuQQLIAVBDGohBSAWQQFrIhYNAAsLIAEoAgAiAgRAIAAgAkEMbBC5BAsgASgCDCIABEAgASgCECAAQTBsELkECyADQZAEaiQAC/cWAgp/G34jAEHQAWsiAyQAIANBBGogARDuAUHZvsIALQAAGgJAAkACQAJAAkACQAJAAkACQAJAQYADQQgQsAQiBARAAkACQAJAIAMoAgwiBQ4CAAECC0EAQQBBsN3AABDWAwALQQFBAUHA3cAAENYDAAsCfiADKAIIIgJBIGpB8NfAAEEgENAEBEBCjZXHw5bS2sCXfyACQTBqKQMAIhJ9IgwgAkE4aikDACITQsf688PtgqOQPFatIhl9IRpC3bCFjOi2kai4fyACQShqKQMAIhR9Ig0gDCAZVCASQo2Vx8OW0trAl39Wcq0iDH0hEkLH+vPD7YKjkDwgE30hE0KpwMaJrs6TsjAgAikDICAMIA1WIBRC3bCFjOi2kai4f1ZyrXx9DAELIAJBOGopAwAhEyACQTBqKQMAIRogAkEoaikDACESIAIpAyALIQwgBUECTQ0BIANBKGogAkHYAGopAwA3AwAgA0EgaiACQdAAaikDADcDACADQRhqIAJByABqKQMANwMAIAMgAikDQDcDECAFQQNGDQICfiACQeAAakHw18AAQSAQ0AQEQEKNlcfDltLawJd/IAJB8ABqKQMAIhR9Ig0gAkH4AGopAwAiG0LH+vPD7YKjkDxWrSIcfSEZQt2whYzotpGouH8gAkHoAGopAwAiFX0iDiANIBxUIBRCjZXHw5bS2sCXf1ZyrSINfSEUQsf688PtgqOQPCAbfSEbQqnAxomuzpOyMCACKQNgIA0gDlYgFULdsIWM6LaRqLh/VnKtfH0MAQsgAkH4AGopAwAhGyACQfAAaikDACEZIAJB6ABqKQMAIRQgAikDYAshDSAFQQRNDQMgA0HIAGogAkGYAWopAwA3AwAgA0FAayACQZABaikDADcDACADQThqIAJBiAFqKQMANwMAIAMgAikDgAE3AzAgBUEFRg0EAn4gAkGgAWpB8NfAAEEgENAEBEBCjZXHw5bS2sCXfyACQbABaikDACIVfSIOIAJBuAFqKQMAIh1Cx/rzw+2Co5A8Vq0iHn0hHELdsIWM6LaRqLh/IAJBqAFqKQMAIhZ9Ig8gDiAeVCAVQo2Vx8OW0trAl39Wcq0iDn0hFULH+vPD7YKjkDwgHX0hHUKpwMaJrs6TsjAgAikDoAEgDiAPViAWQt2whYzotpGouH9Wcq18fQwBCyACQbgBaikDACEdIAJBsAFqKQMAIRwgAkGoAWopAwAhFSACKQOgAQshDiAFQQZNDQUgA0HoAGogAkHYAWopAwA3AwAgA0HgAGogAkHQAWopAwA3AwAgA0HYAGogAkHIAWopAwA3AwAgAyACKQPAATcDUCAFQQdGDQYCfiACQeABakHw18AAQSAQ0AQEQEKNlcfDltLawJd/IAJB8AFqKQMAIhZ9Ig8gAkH4AWopAwAiH0LH+vPD7YKjkDxWrSIgfSEeQt2whYzotpGouH8gAkHoAWopAwAiF30iECAPICBUIBZCjZXHw5bS2sCXf1ZyrSIPfSEWQsf688PtgqOQPCAffSEfQqnAxomuzpOyMCACKQPgASAPIBBWIBdC3bCFjOi2kai4f1ZyrXx9DAELIAJB+AFqKQMAIR8gAkHwAWopAwAhHiACQegBaikDACEWIAIpA+ABCyEPIAVBCE0NByADQYgBaiACQZgCaikDADcDACADQYABaiACQZACaikDADcDACADQfgAaiACQYgCaikDADcDACADIAIpA4ACNwNwIAVBCUYNCAJ+IAJBoAJqQfDXwABBIBDQBARAQo2Vx8OW0trAl38gAkGwAmopAwAiF30iECACQbgCaikDACIhQsf688PtgqOQPFatIiJ9ISBC3bCFjOi2kai4fyACQagCaikDACIYfSIRIBAgIlQgF0KNlcfDltLawJd/VnKtIhB9IRdCx/rzw+2Co5A8ICF9ISFCqcDGia7Ok7IwIAIpA6ACIBAgEVYgGELdsIWM6LaRqLh/VnKtfH0MAQsgAkG4AmopAwAhISACQbACaikDACEgIAJBqAJqKQMAIRcgAikDoAILIRAgBUEKTQ0JIANBqAFqIAJB2AJqKQMANwMAIANBoAFqIAJB0AJqKQMANwMAIANBmAFqIAJByAJqKQMANwMAIAMgAikDwAI3A5ABIAVBC0YNCgJ+IAJB4AJqQfDXwABBIBDQBARAQo2Vx8OW0trAl38gAkHwAmopAwAiGH0iESACQfgCaikDACIjQsf688PtgqOQPFatIiR9ISJC3bCFjOi2kai4fyACQegCaikDACIlfSImIBEgJFQgGEKNlcfDltLawJd/VnKtIhF9IRhCx/rzw+2Co5A8ICN9ISNCqcDGia7Ok7IwIAIpA+ACIBEgJlYgJULdsIWM6LaRqLh/VnKtfH0MAQsgAkH4AmopAwAhIyACQfACaikDACEiIAJB6AJqKQMAIRggAikD4AILIREgAkEIaikDACEkIAJBEGopAwAhJSACKQMAISYgBEEYaiACQRhqKQMANwMAIARBEGogJTcDACAEQQhqICQ3AwAgBCAmNwMAIARBOGogEzcDACAEQTBqIBo3AwAgBEEoaiASNwMAIAQgDDcDICAEIAMpAxA3A0AgBEHIAGogA0EYaikDADcDACAEQdAAaiADQSBqKQMANwMAIARB2ABqIANBKGopAwA3AwAgBEH4AGogGzcDACAEQfAAaiAZNwMAIARB6ABqIBQ3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OgAAIAUgAUF/c0EMbGohAUH/AUYNAiADLQABIQQgAyABLQABOgABIAMtAAIhBiADIAEtAAI6AAIgAy0AAyEKIAMgAS0AAzoAAyADLQAAIQwgAyABLQAAOgAAIAEgBDoAASABIAY6AAIgASAKOgADIAEgDDoAACADLQAFIQQgAyABLQAFOgAFIAMtAAYhBiADIAEtAAY6AAYgAy0AByEKIAMgAS0ABzoAByADLQAEIQwgAyABLQAEOgAEIAEgBDoABSABIAY6AAYgASAKOgAHIAEgDDoABCADLQAJIQQgAyABLQAJOgAJIAMtAAohBiADIAEtAAo6AAogAy0ACyEKIAMgAS0ACzoACyADLQAIIQwgAyABLQAIOgAIIAEgBDoACSABIAY6AAogASAKOgALIAEgDDoACAwBCwsgCyAKQRl2IgE6AAAgCSACQQhrIAhxaiABOgAADAELIAtB/wE6AAAgCSACQQhrIAhxakH/AToAACABQQhqIANBCGooAAA2AAAgASADKQAANwAACyACQQFqIQEgAiAIRw0ACwsgACAHIA5rNgIICyANQSBqJAALsgsCEH8CfkICIRIjAEGACWsiAiQAIAJB6AZqIAFBCGopAwA3AwAgAkHwBmogAUEQaikDADcDACACQfgGaiABQRhqKQMANwMAIAJBgAdqIAFBIGopAwA3AwAgAkGIB2ogAUEoaikDADcDACACQZgHaiABQThqKQMANwMAIAJBoAdqIAFBQGspAwA3AwAgAkGoB2ogAUHIAGopAwA3AwAgAkGwB2ogAUHQAGopAwA3AwAgAkG4B2ogAUHYAGopAwA3AwAgAiABKQMANwPgBiACIAEpAzA3A5AHIAJBwARqIgUgAkHgBmoiA0HgABDPBBogAkHIAmoiBCABQYgBaikDADcDACACQcACaiIGIAFBgAFqKQMANwMAIAJBuAJqIgcgAUH4AGopAwA3AwAgAkGwAmoiCCABQfAAaikDADcDACACQagCaiIJIAFB6ABqKQMANwMAIAJB2AJqIgogAUGYAWopAwA3AwAgAkHgAmoiCyABQaABaikDADcDACACQegCaiIMIAFBqAFqKQMANwMAIAJB8AJqIg0gAUGwAWopAwA3AwAgAkH4AmoiDiABQbgBaikDADcDACACIAEpA2A3A6ACIAIgAUGQAWopAwA3A9ACIAMgAkGgAmoiD0HgABDPBBogAkGgBWogA0HgABDPBCAEIAFB6AFqKQMANwMAIAYgAUHgAWopAwA3AwAgByABQdgBaikDADcDACAIIAFB0AFqKQMANwMAIAkgAUHIAWopAwA3AwAgCiABQfgBaikDADcDACALIAFBgAJqKQMANwMAIAwgAUGIAmopAwA3AwAgDSABQZACaikDADcDACAOIAFBmAJqKQMANwMAIAIgASkDwAE3A6ACIAIgAUHwAWopAwA3A9ACIAMgD0HgABDPBBogAkGABmogA0HgABDPBCEPIAIgBUGgAhDPBCEBA0AgAUHABGoiBSIDIAEgARDBAiABIANBoAIQzwQaIBJCAoMgEkIBiCESUA0ACyABQagIaiABQQhqKQMANwMAIAFBsAhqIAFBEGopAwA3AwAgAUG4CGogAUEYaikDADcDACABQcAIaiABQSBqKQMANwMAIAFByAhqIAFBKGopAwA3AwAgAUHYCGogAUE4aikDADcDACABQeAIaiABQUBrKQMANwMAIAFB6AhqIAFByABqKQMANwMAIAFB8AhqIAFB0ABqKQMANwMAIAFB+AhqIAFB2ABqKQMANwMAIAEgASkDADcDoAggASABKQMwNwPQCCAFIAFBoAhqIgNB4AAQzwQaIAQgAUGIAWopAwA3AwAgBiABQYABaikDADcDACAHIAFB+ABqKQMANwMAIAggAUHwAGopAwA3AwAgCSABQegAaikDADcDACAKIAFBmAFqKQMANwMAIAsgAUGgAWopAwA3AwAgDCABQagBaikDADcDACANIAFBsAFqKQMANwMAIA4gAUG4AWopAwA3AwAgASABKQNgNwOgAiABIAFBkAFqKQMANwPQAiADIAFBoAJqIhBB4AAQzwQaIANB4AAQzwQaIAQgAUHoAWopAwA3AwAgBiABQeABaikDADcDACAHIAFB2AFqKQMANwMAIAggAUHQAWopAwA3AwAgCSABQcgBaikDADcDACAKIAFB+AFqKQMANwMAIAsgAUGAAmopAwA3AwAgDCABQYgCaikDADcDACANIAFBkAJqKQMANwMAIA4gAUGYAmopAwA3AwAgASABKQPAATcDoAIgASABQfABaikDADcD0AIgAyAQQeAAEM8EGiAPIANB4AAQzwQaIBAgBUGgAhDPBBogEkIBUgRAA0AgAUHABGoiAyABQaACaiIEIAQQwQIgBCADQaACEM8EGiASQgKDUEUEQCADIAEgBBDBAiABIANBoAIQzwQaCyASQgRUIBJCAYghEkUNAAsLIAAgAUGgAhDPBBogAkGACWokAAutFAIBfxZ+IwBBgANrIgMkACABKQMAIQ4gASkDCCEPIAEpAxAhESABKQMYIRUgASkDICEWIAEpAyghF0EoIQEDQCADQaACaiABIAJqKQMAIgkgF0IAEL0DIANBsAJqIAkgFkIAEL0DIANBwAJqIAkgFUIAEL0DIANB0AJqIAkgEUIAEL0DIANB4AJqIAkgD0IAEL0DIANB8AJqIAkgDkIAEL0DIANBkAJqIAMpA6ACIgwgEnwiB0L9//P/z///+Yl/fiIJQqvV/v///7//uX9CABC9AyADQYACaiAJQv//z4rr///VHkIAEL0DIANB8AFqIAlCpOzDtY/UtJjnAEIAEL0DIANB4AFqIAlCv6WUnM/w0rvkAEIAEL0DIANB0AFqIAlC19mumuT26Y3LAEIAEL0DIANBwAFqIAlCms3/y6O9xIAaQgAQvQMgA0HIAWopAwAgAykD8AIiEyAQfCIJIANB6AJqKQMAIAMpA+ACIgogCHwiCCAKVK18IAggA0HYAmopAwAgAykD0AIiCiAGfCIGIApUrXwgBiADQcgCaikDACADKQPAAiIKIAV8IgUgClStfCAFIANBuAJqKQMAIAMpA7ACIgogBHwiBCAKVK18IAQgA0GoAmopAwAgByAMVK18fCIKIARUrXx8IgQgBVStfHwiBSAGVK18fCIGIAhUrXx8IgwgAykDwAF8IgggDFStfCAIIAggA0HYAWopAwAgBiAGIAMpA9ABfCIGVq18IAYgBiADQegBaikDACAFIAUgAykD4AF8IgVWrXwgBSAFIANB+AFqKQMAIAQgBCADKQPwAXwiBFatfCAEIAQgA0GIAmopAwAgAykDgAIiECAKfCIKIBBUrXwgCiADQZgCaikDACAHIAMpA5ACIgd8IAdUrXx8IhIgClStfHwiBFatfHwiBVatfHwiBlatfHwiCFatfCAJIAxWrSADQfgCaikDACAJIBNUrXx8fCEQIAFBCGsiAUF4Rw0ACwJAAkAgEEKazf/Lo73EgBpWDQAgEEKazf/Lo73EgBpSBEAgBCEJIAUhDCAGIQogCCETDAILIAhC19mumuT26Y3LAFYNAAJAIAhC19mumuT26Y3LAFIEQCAEIQkgBSEMIAYhCiAIIRMMAQsgBkK/pZScz/DSu+QAVg0BQtfZrprk9umNywAhEyAGQr+llJzP8NK75ABSBEAgBCEJIAUhDCAGIQoMAQsgBUKk7MO1j9S0mOcAVg0BQr+llJzP8NK75AAhCiAFQqTsw7WP1LSY5wBSBEAgBCEJIAUhDAwBCyAEQv//z4rr///VHlYNAUKk7MO1j9S0mOcAIQwgBEL//8+K6///1R5SBEAgBCEJDAELQv//z4rr///VHiEJIBJCqtX+////v/+5f1YNAQtCms3/y6O9xIAaIRAMAQsgBEL//8+K6///1R59IgcgEkKr1f7///+//7l/VK0iDH0hCSAFQqTsw7WP1LSY5wB9IgogBEL//8+K6///1R5UIAcgDFRyrSIEfSEMIAZCv6WUnM/w0rvkAH0iByAFQqTsw7WP1LSY5wBUIAQgClZyrSIEfSEKIAhC19mumuT26Y3LAH0iBSAGQr+llJzP8NK75ABUIAQgB1ZyrSIEfSETIBAgCELX2a6a5PbpjcsAVCAEIAVWcq19QprN/8ujvcSAGn0hECASQtWqgYCAgMCAxgB8IRILQdgAIQFCACEIQgAhBkIAIQVCACEEA0AgA0HgAGogASACaikDACIHIBdCABC9AyADQfAAaiAHIBZCABC9AyADQYABaiAHIBVCABC9AyADQZABaiAHIBFCABC9AyADQaABaiAHIA9CABC9AyADQbABaiAHIA5CABC9AyADQdAAaiADKQNgIhQgDXwiDUL9//P/z///+Yl/fiIHQqvV/v///7//uX9CABC9AyADQUBrIAdC///Piuv//9UeQgAQvQMgA0EwaiAHQqTsw7WP1LSY5wBCABC9AyADQSBqIAdCv6WUnM/w0rvkAEIAEL0DIANBEGogB0LX2a6a5PbpjcsAQgAQvQMgAyAHQprN/8ujvcSAGkIAEL0DIANBCGopAwAgAykDsAEiGCALfCIHIANBqAFqKQMAIAMpA6ABIgsgCHwiCCALVK18IAggA0GYAWopAwAgAykDkAEiCyAGfCIGIAtUrXwgBiADQYgBaikDACADKQOAASILIAV8IgUgC1StfCAFIANB+ABqKQMAIAMpA3AiCyAEfCIEIAtUrXwgBCADQegAaikDACANIBRU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QZABaiADQt2whYzotpGouH9CABC9AyACQbADaiAQQon1q5y1i7+Wc0IAEL0DIAJBQGsgA0KpwMaJrs6TsjBCABC9AyACQZACaiANQvuDlKKdosbztX9CABC9AyACQdABaiACKQPgASIFIAIpA8ACIgYgAkGIAmopAwB8Igd8IgogAkH4AWopAwAgBCACKQPwASIDfCADVK18fCIEIAIpA5ACfCIDQonHmaSu8IHph39+IghCx/rzw+2Co5A8QgAQvQMgAkHQAmogDkL7g5SinaLG87V/QgAQvQMgAkHAAWogCEKNlcfDltLawJd/QgAQvQMgAkHgA2ogD0L7g5SinaLG87V/QgAQvQMgAkGwAWogCELdsIWM6LaRqLh/QgAQvQMgAkGgA2ogEEL7g5SinaLG87V/QgAQvQMgAkGgAWogCEKpwMaJrs6TsjBCABC9AyACQaACaiANQvb/hdLw38fVxwBCABC9AyACQYABaiACQcgCaikDACAGIAdWrXwiByACKQPwA3wiCyACKQOQAXwiDCAEIApUrSACQegBaikDACAFIApWrXx8fCIIIAIpA9ACfCIFIAJBmAJqKQMAIAMgBFStfHwiCiACKQPAAXwiBCACQdgBaikDACADIAIpA9ABIgN8IANUrXx8IgYgAikDoAJ8IgNCiceZpK7wgemHf34iCULH+vPD7YKjkDxCABC9AyACQeACaiAOQvb/hdLw38fVxwBCABC9AyACQfAAaiAJQo2Vx8OW0trAl39CABC9AyACQdADaiAPQvb/hdLw38fVxwBCABC9AyACQeAAaiAJQt2whYzotpGouH9CABC9AyACQZADaiAQQvb/hdLw38fVxwBCABC9AyACQdAAaiAJQqnAxomuzpOyMEIAEL0DIAJBsAJqIA1Cn+rg1Zzup+wGQgAQvQMgAkEwaiACQfgDaikDACAHIAtWrXwiByACKQOwA3wiESACKQNAfCISIAggDFStIAJBmAFqKQMAIAsgDFatfHx8IhMgAikD4AN8IgsgBSAKVq0gAkHYAmopAwAgBSAIVK18fHwiDCACKQOwAXwiBSAEIAZWrSACQcgBaikDACAEIApUrXx8fCINIAIpA+ACfCIIIAJBqAJqKQMAIAMgBlStfHwiCiACKQNwfCIEIAJBiAFqKQMAIAMgAikDgAEiA3wgA1StfHwiCSAC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IBhBGGopAwA3AwAgF0EQaiAYQRBqKQMANwMAIBdBCGogGEEIaikDADcDACADQSBqIQMgD0EBayIPDQALCyAEIAc2AhggBCAVNgIUIAQgBzYCECAEQfQCaiAEQRBqIARBBGoQ7QEgECgCACIDBEAgECgCBCADQQV0ELkECyASQQFqIRIgECAEKQL0AjcCACAQQQhqIARB/AJqKAIANgIAIBkgBkEMaiIGRw0BDAMLCyADIAtBlNLAABDWAwALIAMgFhCoBAALIBRBAWshFCAIIBpHDQALIARBOGoiCUHRoMEAQcIAEKwBIARB2ABqIgVBk6HBAEHCABCsASAEQbgBakHVocEAQQEQrAEgBEHYAWpB1qHBAEHAABCsASAEQfgBakGWosEAQcAAEKwBEN0DIgMgAykDAEIBfDcDAEHZvsIALQAAGkGAAUEIELAEIgYEQCAGQgA3A0AgBiAFKQMANwMAIAYgCSkDADcDICAGQcgAakIANwMAIAZB0ABqQgA3AwAgBkHYAGpCADcDACAGQRhqIAVBGGopAwA3AwAgBkEQaiAFQRBqKQMANwMAIAZBCGogBUEIaikDADcDACAGQShqIAlBCGopAwA3AwAgBkEwaiAJQRBqKQMANwMAIAZBOGogCUEYaikDADcDACAGQfgAakGAzsAAKQMANwMAIAZB8ABqQfjNwAApAwA3AwAgBkHoAGpB8M3AACkDADcDACAGQejNwAApAwA3A2AgBEEAOgD8AiAEIAZBgAFqNgL4AiAEIAY2AvQCIARB6AJqIARB9AJqELMCIAQoAvACIgVBAk8EQCAFQQF2IQogBCgC7AIiAyAFQQV0akEgayEIA0AgAykDACEdIAMgCCkDADcDACADQRhqIgUpAwAhHiAFIAhBGGoiDikDADcDACADQRBqIgUpAwAhHyAFIAhBEGoiCSkDADcDACADQQhqIgUpAwAhICAFIAhBCGoiBSkDADcDACAIIB03AwAgDiAeNwMAIAkgHzcDACAFICA3AwAgCEEgayEIIANBIGohAyAKQQFrIgoNAAsLIABBDGoiAyAEKQLoAjcCACADQQhqIARB8AJqKAIANgIAIAZBgAEQuQQgACALNgIIIAAgETYCBCAAIBM2AgAMBAtBCEGAARDKBAALQQhBgAEQygQAC0EEQQwQygQACyAPIAMQqAQACyACKAIE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WDcDACAHIAQpAzg3AyAgB0IANwNAIAdByABqQgA3AwAgB0HQAGpCADcDACAHQdgAakIANwMAIAdBGGogBEHwAGopAwA3AwAgB0EQaiAEQegAaikDADcDACAHQQhqIARB4ABqKQMANwMAIAdBKGogBEFAaykDADcDACAHQTBqIARByABqKQMANwMAIAdBOGogBEHQAGopAwA3AwAgB0H4AGpBkM3AACkDADcDACAHQfAAakGIzcAAKQMANwMAIAdB6ABqQYDNwAApAwA3AwAgB0H4zMAAKQMANwNgIARBADoA/AIgBCAHQYABajYC+AIgBCAHNgL0AiAEQegCaiAFELMCIAQoAvACIgVBAk8EQCAFQQF2IQkgBCgC7AIiAyAFQQV0akEgayEIA0AgAykDACEdIAMgCCkDADcDACADQRhqIgUpAwAhHiAFIAhBGGoiDSkDADcDACADQRBqIgUpAwAhHyAFIAhBEGoiDykDADcDACADQQhqIgUpAwAhICAFIAhBCGoiBSkDADcDACAIIB03AwAgDSAeNwMAIA8gHzcDACAFICA3AwAgCEEgayEIIANBIGohAyAJQQFrIgkNAAsLIABBDGoiAyAEKQLoAjcCACADQQhqIARB8AJqKAIANgIAIAdBgAEQuQQgAEEBNgIIIAAgBjYCBCAAQQE2AgACQCAEKAIUIgBFDQAgACAAQQxsQRNqQXhxIgNqQQlqIgBFDQAgBCgCECADayAAELkECyAKBEAgESEDA0AgAygCACIABEAgA0EEaigCACAAQQV0ELkECyADQQxqIQMgCkEBayIKDQALCyATRQ0EIBEgE0EMbBC5BAwECyACKAIEIg8gC0EMbGohGSABKAIEIgggDEEMbGohGgNAIA0iCUEBaiENIAgiBUEMaiEIIAogCSAJIApJGyAUaiEbQQAhEiAPIQYCQAJAA0ACQCAEQQRqIAUgBhBaIAkgEmohAyASIBtGDQACQCARIANBDGxqIhAoAggiB0UEQEEIIRUMAQsgB0EFdCEWIAdB////H0sEQEEAIQMMBAsgECgCBCEcQdm+wgAtAAAaQQghAyAWQQgQsAQiFUUNA0EAIQMgByEOA0AgAyAWRg0BIAMgFWoiFyADIBxqIhgpAwA3AwAgF0EYaiAYQRhqKQMANwMAIBdBEGogGEEQaikDADcDACAXQQhqIBhBCGopAwA3AwAgA0EgaiEDIA5BAWsiDg0ACwsgBCAHNgIYIAQgFTYCFCAEIAc2AhAgBEH0AmogBEEQaiAEQQRqEPcBIBAoAgAiAwRAIBAoAgQgA0EFdBC5BAsgEkEBaiESIBAgBCkC9AI3AgAgEEEIaiAEQfwCaigCADYCACAZIAZBDGoiBkcNAQwDCwsgAyAKQZTSwAAQ1gMACyADIBYQqAQACyAUQQFrIRQgCCAaRw0ACyAEQRBqEOMCQdm+wgAtAAAaQYABQQgQsAQiBgRAIAYgBCkDWDcDACAGIAQpAzg3AyAgBkIANwNAIAZByABqQgA3AwAgBkHQAGpCADcDACAGQdgAakIANwMAIAZBGGogBEHwAGopAwA3AwAgBkEQaiAEQegAaikDADcDACAGQQhqIARB4ABqKQMANwMAIAZBKGogBEFAaykDADcDACAGQTBqIARByABqKQMANwMAIAZBOGogBEHQAGopAwA3AwAgBkH4AGpBkM3AACkDADcDACAGQfAAakGIzcAAKQMANwMAIAZB6ABqQYDNwAApAwA3AwAgBkH4zMAAKQMANwNgIARBADoA/AIgBCAGQYABajYC+AIgBCAGNgL0AiAEQegCaiAEQfQCahCzAiAEKALwAiIFQQJPBEAgBUEBdiEJIAQoAuwCIgMgBUEFdGpBIGshCANAIAMpAwAhHSADIAgpAwA3AwAgA0EYaiIFKQMAIR4gBSAIQRhqIg0pAwA3AwAgA0EQaiIFKQMAIR8gBSAIQRBqIg8pAwA3AwAgA0EIaiIFKQMAISAgBSAIQQhqIgUpAwA3AwAgCCAdNwMAIA0gHjcDACAPIB83AwAgBSAgNwMAIAhBIGshCCADQSBqIQMgCUEBayIJDQALCyAAQQxqIgMgBCkC6AI3AgAgA0EIaiAEQfACaigCADYCACAGQYABELkEIAAgCjYCCCAAIBE2AgQgACATNgIAIAQoAhQiAEUNBCAAIABBDGxBE2pBeHEiA2pBCWoiAEUNBCAEKAIQIANrIAAQuQQMBAtBCEGAARDKBAALQQhBgAEQygQAC0EEQQwQygQACyAOIAMQqAQACyACKAIEIQAgCwRAIAAhAwNAIAMoAgAiBQRAIANBBGooAgAgBUEFdBC5BAsgA0EMaiEDIAtBAWsiCw0ACwsgAigCACIDBEAgACADQQxsELkECyACKAIMIgAEQCACKAIQIABBBXQQuQQLIAEoAgQhACAMBEAgACEDA0AgAygCACICBEAgA0EEaigCACACQQV0ELkECyADQQxqIQMgDEEBayIMDQALCyABKAIAIgIEQCAAIAJBDGwQuQQLIAEoAgwiAARAIAEoAhAgAEEFdBC5BAsgBEGgA2okAAv8EAIBfxB+IwBBwARrIgMkACADQcACaiABKQMYIgUgAikDGCIEQgAQvQMgA0HQAmogASkDECIGIARCABC9AyADQeACaiABKQMIIgcgBEIAEL0DIANB8AJqIAEpAwAiCCAEQgAQvQMgA0GwAmogAykDwAIiCkIAQonHmaSu8IHph38QvQMgA0GgAmogA0G4AmopAwAiBELH+vPD7YKjkDxCABC9AyADQZACaiAEQo2Vx8OW0trAl39CABC9AyADQbABaiAEQt2whYzotpGouH9CABC9AyADQdAAaiAEQqnAxomuzpOyMEIAEL0DIANBgANqIAIpAxAiBCAFQgAQvQMgA0GwA2ogBCAGQgAQvQMgA0HgA2ogBCAHQgAQvQMgA0GQBGogBCAIQgAQvQMgA0GAAmogAykDkAIiDCADQcgCaikDACINIAMpA9ACfCIOfCIJIANBqAJqKQMAIAogAykDoAIiBHwgBFStfHwiCiADKQOAA3wiC0IAQonHmaSu8IHph38QvQMgA0HwAWogA0GIAmopAwAiBELH+vPD7YKjkDxCABC9AyADQeABaiAEQo2Vx8OW0trAl39CABC9AyADQdABaiAEQt2whYzotpGouH9CABC9AyADQcABaiAEQqnAxomuzpOyMEIAEL0DIANBkANqIAIpAwgiBCAFQgAQvQMgA0HAA2ogBCAGQgAQvQMgA0HwA2ogBCAHQgAQvQMgA0GgBGogBCAIQgAQvQMgA0GgAWogA0GIA2opAwAgCiALVq18IhEgAykDsAN8Ig8gA0HYAmopAwAgDSAOVq18IhAgAykD4AJ8Ig0gAykDsAF8Ig4gCSAKVq0gA0GYAmopAwAgCSAMVK18fHwiEnwiCSADKQPgAXwiCiADQfgBaikDACADKQPwASIEIAt8IARUrXx8IgsgAykDkAN8IgxCAEKJx5mkrvCB6Yd/EL0DIANBkAFqIANBqAFqKQMAIgRCx/rzw+2Co5A8QgAQvQMgA0GAAWogBEKNlcfDltLawJd/QgAQvQMgA0HwAGogBELdsIWM6LaRqLh/QgAQvQMgA0HgAGogBEKpwMaJrs6TsjBCABC9AyADQaADaiACKQMAIgQgBUIAEL0DIANB0ANqIAQgBkIAEL0DIANBgARqIAQgB0IAEL0DIANBsARqIAQgCEIAEL0DIANBQGsgA0GYA2opAwAgCyAMVq18IhMgAykDwAN8IgQgA0HoAmopAwAgDSAQVK18IhAgAykD8AJ8IgYgAykDUHwiByAOIBJWrSADQbgBaikDACANIA5WrXx8fCIIIAMpA+ADfCINIAkgD1StIANBuANqKQMAIA8gEVStfHx8Ig8gAykD0AF8Ig4gCiALVq0gA0HoAWopAwAgCSAKVq18fHwiEXwiCSADKQOAAXwiCiADQZgBaikDACADKQOQASIFIAx8IAVUrXx8IgsgAykDoAN8IgxCAEKJx5mkrvCB6Yd/EL0DIANBMGogA0HIAGopAwAiBULH+vPD7YKjkDxCABC9AyADQSBqIAVCjZXHw5bS2sCXf0IAEL0DIANBEGogBULdsIWM6LaRqLh/QgAQvQMgAyAFQqnAxomuzpOyMEIAEL0DAkACQCADQQhqKQMAIANB6ABqKQMAIANByAFqKQMAIAcgCFatIANB2ABqKQMAIAYgB1atfHwgA0H4AmopAwAgBiAQVK18fCIQIAMpA5AEfCIFIA0gD1atIANB6ANqKQMAIAggDVatfHx8IgYgAykDwAF8IgcgBlStfCAHIAcgDiARVq0gA0HYAWopAwAgDiAPVK18fHwiB1atfCAFIAZWrSADQZgEaikDACAFIBBUrXx8fCIIIAMpA6AEfCIFIANB+ANqKQMAIAcgAykD8AN8IgYgB1StfCAGIAQgCVatIANByANqKQMAIAQgE1StfHx8IgQgBlStfHwiBiADKQNgfCIHIAZUrXwgByADQfgAaikDACAEIAQgAykDcHwiBFatfCAEIAogC1atIANBiAFqKQMAIAkgClatfHx8IgkgBFStfHwiBCAHVK18IAUgBlatIANBqARqKQMAIAUgCFStfHx8IgogAykDsAR8IgcgA0GIBGopAwAgBCADKQOABHwiBSAEVK18IAUgBSADQdgDaikDACADQagDaikDACALIAxWrXwiBiADKQPQA3wiBCAGVK18IAQgBCAJfCIEVq18fCIFVq18fCII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IA0gDlStIg4gDyASVq0iDSAMfCIPfCISfCIMfUKRgICAgICAgAhCABC9AwJAIANBEGopAwAgA0EgaikDACADQTBqKQMAIA0gD1atQpCAgICAgICACEIAIAEbhCIPIAMpAyh8Ig0gD1StfCANIA4gElatfCIOIA1UrXwiDyADKQMYfCINIA9UrXwgDSANIA4gDCARVK0iD3wiDiAPVK18IhJWrXwiDSADKQMIfCIPIA1UrXwgDyAPIBIgDEIAUq0iDSAOfCIMIA1UrSIOfCINIA5UrXwiDlatfCIRQpGAgICAgICACFQEQCARIRAgDiETIA0hDyAMIRIMAQtCACEPQgAhEiAMIA2EIA6EUA0AIAxCAX0hEiANIAxQrSIMfSEPIA4gDCANVq0iDH0hEyARIAwgDlatfUKRgICAgICAgAh9IRALIAMgEjcD2AEgAyAPNwPQASADIBM3A8gBIAMgEDcDwAEgA0EANgKoASADQoCAgIAQNwKgASADQQM6AHggA0EgNgJoIANBADYCdCADQZj+wAA2AnAgA0EANgJgIANBADYCWCADIANBoAFqNgJsIANBwAFqIANB2ABqIgEQ2QINAyADKAKgASECIAEgAygCpAEiCCADKAKoARCRAyADKAJgIgZFBEAgAygCWEUEQCABEKIDCyADKAJcQQA2AgAgA0EBNgJgQQEhBgsgAygCXCIBIAEoAgBBAWoiBDYCAAJAIAQNACABQQRqIQQgBkECdEEEayEFA0AgBQRAIAQgBCgCAEEBaiIBNgIAIAVBBGshBSAEQQRqIQQgAUUNAQwCCwsgAygCYCIBIAMoAlhGBEAgA0HYAGoQogMLIAMoAlwgAUECdGpBATYCACADIAFBAWo2AmALIANB0ABqIANB4ABqKAIANgIAIAMgAykCWDcDSCACBEAgCCACELkECyADQdgAaiADQTxqIANByABqEIkCAkAgAygCYEUEQEHZvsIALQAAGkEBIQJBAUEBELAEIgFFDQYgAUEAOgAAIANBATYCwAEMAQsgA0HAAWogA0HYAGoQqwIgAygCxAEhASADKALIASICQQJJDQAgASACaiACQQF2IgZrIQhBACEEIAZBAUcEQCACQQFrIQUgBkH+////B3EhCgNAIAEgBWoiBy0AACEJIAcgASAEaiIHLQAAOgAAIAcgCToAACAIIAYgBEF+c2pqIgktAAAhCyAJIAdBAWoiBy0AADoAACAHIAs6AAAgBUECayEFIAogBEECaiIERw0ACwsgAkECcUUNACABIARqIgUtAAAhByAFIAggBiAEQX9zamoiBC0AADoAACAEIAc6AAALIAAgASACEIABIAMoAsABIgAEQCABIAAQuQQLIAMoAlgiAEUNACADKAJcIABBAnQQuQQLIANB4AFqJAAPCyAGIAQQqAQACyAEIAIQqAQAC0Gw/sAAQTcgA0GAAWpB6P7AAEHE/8AAEL4DAAtBAUEBEMoEAAsgAyADLQBZOgCgAUGA+MAAQSsgA0GgAWpB3KfBAEH4p8EAEL4DAAvPEQIBfxB+IwBBoARrIgMkACADQYAEaiABIAIQvwIgA0GAAmogAykDmAQiBEKJ9auctYu/lnNCABC9AyADQcACaiADKQOQBCIHQon1q5y1i7+Wc0IAEL0DIANBgANqIAMpA4gEIgZCifWrnLWLv5ZzQgAQvQMgA0HAA2ogAykDgAQiCEKJ9auctYu/lnNCABC9AyADQfABaiADKQOAAiIKQonHmaSu8IHph39+IgVCx/rzw+2Co5A8QgAQvQMgA0HgAWogBUKNlcfDltLawJd/QgAQvQMgA0GQAWogBULdsIWM6LaRqLh/QgAQvQMgA0FAayAFQqnAxomuzpOyMEIAEL0DIANBkAJqIARC+4OUop2ixvO1f0IAEL0DIANB0AJqIAdC+4OUop2ixvO1f0IAEL0DIANBkANqIAZC+4OUop2ixvO1f0IAEL0DIANB0ANqIAhC+4OUop2ixvO1f0IAEL0DIANB0AFqIAMpA+ABIgwgA0GIAmopAwAiDSADKQPAAnwiDnwiCSADQfgBaikDACAKIAMpA/ABIgV8IAVUrXx8IgogAykDkAJ8IgtCiceZpK7wgemHf34iBULH+vPD7YKjkDxCABC9AyADQcABaiAFQo2Vx8OW0trAl39CABC9AyADQbABaiAFQt2whYzotpGouH9CABC9AyADQaABaiAFQqnAxomuzpOyMEIAEL0DIANBoAJqIARC9v+F0vDfx9XHAEIAEL0DIANB4AJqIAdC9v+F0vDfx9XHAEIAEL0DIANBoANqIAZC9v+F0vDfx9XHAEIAEL0DIANB4ANqIAhC9v+F0vDfx9XHAEIAEL0DIANBgAFqIANBmAJqKQMAIAogC1atfCIQIAMpA9ACfCIPIANByAJqKQMAIA0gDlatfCIRIAMpA4ADfCINIAMpA5ABfCIOIAkgClatIANB6AFqKQMAIAkgDFStfHx8IhJ8IgkgAykDwAF8IgogA0HYAWopAwAgAykD0AEiBSALfCAFVK18fCILIAMpA6ACfCIMQonHmaSu8IHph39+IgVCx/rzw+2Co5A8QgAQvQMgA0HwAGogBUKNlcfDltLawJd/QgAQvQMgA0HgAGogBULdsIWM6LaRqLh/QgAQvQMgA0HQAGogBUKpwMaJrs6TsjBCABC9AyADQbACaiAEQp/q4NWc7qfsBkIAEL0DIANB8AJqIAdCn+rg1Zzup+wGQgAQvQMgA0GwA2ogBkKf6uDVnO6n7AZCABC9AyADQfADaiAIQp/q4NWc7qfsBkIAEL0DIANBMGogA0GoAmopAwAgCyAMVq18IhMgAykD4AJ8IgcgA0GIA2opAwAgDSARVK18IhEgAykDwAN8IgYgAykDQHwiCCAOIBJWrSADQZgBaikDACANIA5WrXx8fCIFIAMpA5ADfCINIAkgD1StIANB2AJqKQMAIA8gEFStfHx8Ig8gAykDsAF8Ig4gCiALVq0gA0HIAWopAwAgCSAKVq18fHwiEHwiCSADKQNwfCIKIANBiAFqKQMAIAMpA4ABIgQgDHwgBFStfHwiCyADKQOwAnwiDEKJx5mkrvCB6Yd/fiIEQsf688PtgqOQPEIAEL0DIANBIGogBEKNlcfDltLawJd/QgAQvQMgA0EQaiAEQt2whYzotpGouH9CABC9AyADIARCqcDGia7Ok7IwQgAQvQMCQAJAIANBCGopAwAgA0HoA2opAwAgAykD4AMgBSAIVK0gA0HIAGopAwAgBiAIVq18fCIIIANByANqKQMAIAYgEVStfHwiBCAIVK2EIgggA0HYA2opAwAgBCAEIAMpA9ADfCIEVq18IAQgBCANIA9WrSADQZgDaikDACAFIA1WrXx8fCIEVq18fCIGIAhUrXwgBiAGIANBqAFqKQMAIAQgBCADKQOgAXwiBFatfCAEIAQgDiAQVq0gA0G4AWopAwAgDiAPVK18fHwiBFatfHwiBlatfCAGIANBqANqKQMAIAQgBCADKQOgA3wiBFatfCAEIAQgByAJVq0gA0HoAmopAwAgByATVK18fHwiBFatfHwiByAGVK18Ig8gAykD8AN8IgggA0HYAGopAwAgByAHIAMpA1B8IgdWrXwgByADQegAaikDACAEIAQgAykDYHwiBFatfCAEIAogC1atIANB+ABqKQMAIAkgClatfHx8IgUgBFStfHwiBCAHVK18fCIHIANBuANqKQMAIAQgBCADKQOwA3wiBFatfCAEIAQgA0H4AmopAwAgA0G4AmopAwAgCyAMVq18IgkgAykD8AJ8IgYgCVStfCAGIAUgBnwiBlatfHwiBFatfHwiBSADKQMAfCIKIAVUrXwgCiADQRhqKQMAIAQgBCADKQMQfCIEVq18IAQgBCADQShqKQMAIAYgBiADKQMgfCIGVq18IAYgA0E4aikDACADKQMwIgkgDHwgCVStfHwiCSAGVK18fCIEVq18fCIGIApUrXwgBSAHVK0gByAIVK0gA0H4A2opAwAgCCAPVK18fHx8IgVCqcDGia7Ok7IwVg0AAkAgBUKpwMaJrs6TsjBRBEAgBkLdsIWM6LaRqLh/Vg0CIAZC3bCFjOi2kai4f1IEQCAEIQcgBiEIQqnAxomuzpOyMCEFDAQLIARCjZXHw5bS2sCXf1YNAkLdsIWM6LaRqLh/IQggBEKNlcfDltLawJd/UQ0BIAQhB0KpwMaJrs6TsjAhBQwDCyAEIQcgBiEIDAILQo2Vx8OW0trAl38hByAJQsf688PtgqOQPFoNAEKpwMaJrs6TsjAhBQwBCyAEQvPquLzpraW/6AB8IgggCULH+vPD7YKjkDxUrSIKfSEHIAZCo8/685fJ7tfHAHwiCyAEQo2Vx8OW0trAl39UIAggClRyrSIEfSEIIAUgBkLdsIWM6LaRqLh/VCAEIAtWcq19QqnAxomuzpOyMH0hBSAJQsf688PtgqOQPH0hCQsgACAJNwMYIAAgBzcDECAAIAg3AwggACAFNwMAIANBoARqJAALrxACAX8QfiMAQYAEayIDJAAgA0GAAmogASkDGCIFIAIpAxgiBEIAEL0DIANBkAJqIAEpAxAiBiAEQgAQvQMgA0GgAmogASkDCCIHIARCABC9AyADQbACaiABKQMAIgggBEIAEL0DIANB8AFqIAMpA4ACIgpCiceZpK7wgemHf34iBELH+vPD7YKjkDxCABC9AyADQeABaiAEQo2Vx8OW0trAl39CABC9AyADQZABaiAEQt2whYzotpGouH9CABC9AyADQUBrIARCqcDGia7Ok7IwQgAQvQMgA0HAAmogAikDECIEIAVCABC9AyADQfACaiAEIAZCABC9AyADQaADaiAEIAdCABC9AyADQdADaiAEIAhCABC9AyADQdABaiADKQPgASIMIANBiAJqKQMAIg0gAykDkAJ8Ig58IgkgA0H4AWopAwAgCiADKQPwASIEfCAEVK18fCIKIAMpA8ACfCILQonHmaSu8IHph39+IgRCx/rzw+2Co5A8QgAQvQMgA0HAAWogBEKNlcfDltLawJd/QgAQvQMgA0GwAWogBELdsIWM6LaRqLh/QgAQvQMgA0GgAWogBEKpwMaJrs6TsjBCABC9AyADQdACaiACKQMIIgQgBUIAEL0DIANBgANqIAQgBkIAEL0DIANBsANqIAQgB0IAEL0DIANB4ANqIAQgCEIAEL0DIANBgAFqIANByAJqKQMAIAogC1atfCIRIAMpA/ACfCIPIANBmAJqKQMAIA0gDlatfCIQIAMpA6ACfCINIAMpA5ABfCIOIAkgClatIANB6AFqKQMAIAkgDFStfHx8IhJ8IgkgAykDwAF8IgogA0HYAWopAwAgAykD0AEiBCALfCAEVK18fCILIAMpA9ACfCIMQonHmaSu8IHph39+IgRCx/rzw+2Co5A8QgAQvQMgA0HwAGogBEKNlcfDltLawJd/QgAQvQMgA0HgAGogBELdsIWM6LaRqLh/QgAQvQMgA0HQAGogBEKpwMaJrs6TsjBCABC9AyADQeACaiACKQMAIgQgBUIAEL0DIANBkANqIAQgBkIAEL0DIANBwANqIAQgB0IAEL0DIANB8ANqIAQgCEIAEL0DIANBMGogA0HYAmopAwAgCyAMVq18IhMgAykDgAN8IgQgA0GoAmopAwAgDSAQVK18IhAgAykDsAJ8IgYgAykDQHwiByAOIBJWrSADQZgBaikDACANIA5WrXx8fCIIIAMpA6ADfCINIAkgD1StIANB+AJqKQMAIA8gEVStfHx8Ig8gAykDsAF8Ig4gCiALVq0gA0HIAWopAwAgCSAKVq18fHwiEXwiCSADKQNwfCIKIANBiAFqKQMAIAMpA4ABIgUgDHwgBVStfHwiCyADKQPgAnwiDEKJx5mkrvCB6Yd/fiIFQsf688PtgqOQPEIAEL0DIANBIGogBUKNlcfDltLawJd/QgAQvQMgA0EQaiAFQt2whYzotpGouH9CABC9AyADIAVCqcDGia7Ok7IwQgAQvQMCQAJAIANBCGopAwAgA0HYAGopAwAgA0GoAWopAwAgByAIVq0gA0HIAGopAwAgBiAHVq18fCADQbgCaikDACAGIBBUrXx8IhAgAykD0AN8IgUgDSAPVq0gA0GoA2opAwAgCCANVq18fHwiBiADKQOgAXwiByAGVK18IAcgByAOIBFWrSADQbgBaikDACAOIA9UrXx8fCIHVq18IAUgBlatIANB2ANqKQMAIAUgEFStfHx8IgggAykD4AN8IgUgA0G4A2opAwAgByADKQOwA3wiBiAHVK18IAYgBCAJVq0gA0GIA2opAwAgBCATVK18fHwiBCAGVK18fCIGIAMpA1B8IgcgBlStfCAHIANB6ABqKQMAIAQgBCADKQNgfCIEVq18IAQgCiALVq0gA0H4AGopAwAgCSAKVq18fHwiCSAEVK18fCIEIAdUrXwgBSAGVq0gA0HoA2opAwAgBSAIVK18fHwiCiADKQPwA3wiByADQcgDaikDACAEIAMpA8ADfCIFIARUrXwgBSAFIANBmANqKQMAIANB6AJqKQMAIAsgDFatfCIGIAMpA5ADfCIEIAZUrXwgBCAEIAl8IgRWrXx8IgVWrXx8IgggAykDAHwiBiAIVK18IAYgBiADQRhqKQMAIAUgBSADKQMQfCIFVq18IAUgBSADQShqKQMAIAQgBCADKQMgfCIEVq18IAQgA0E4aikDACADKQMwIgkgDHwgCVStfHwiCSAEVK18fCIFVq18fCIGVq18IAcgCFatIANB+ANqKQMAIAcgClStfHx8IghCqcDGia7Ok7IwVg0AAkAgCEKpwMaJrs6TsjBRBEAgBkLdsIWM6LaRqLh/Vg0CIAZC3bCFjOi2kai4f1IEQCAFIQQgBiEHQqnAxomuzpOyMCEIDAQLIAVCjZXHw5bS2sCXf1YNAkLdsIWM6LaRqLh/IQcgBUKNlcfDltLawJd/UQ0BIAUhBEKpwMaJrs6TsjAhCAwDCyAFIQQgBiEHDAILQo2Vx8OW0trAl38hBCAJQsf688PtgqOQPFoNAEKpwMaJrs6TsjAhCAwBCyAFQvPquLzpraW/6AB8IgcgCULH+vPD7YKjkDxUrSIKfSEEIAZCo8/685fJ7tfHAHwiCyAFQo2Vx8OW0trAl39UIAcgClRyrSIFfSEHIAggBkLdsIWM6LaRqLh/VCAFIAtWcq19QqnAxomuzpOyMH0hCCAJQsf688PtgqOQPH0hCQsgACAJNwMYIAAgBDcDECAAIAc3AwggACAINwMAIANBgARqJAALrxACAX8QfiMAQYAEayICJAAgAkGAAmogASkDGCIEIAApAxgiA0IAEL0DIAJBkAJqIAEpAxAiBSADQgAQvQMgAkGgAmogASkDCCIGIANCABC9AyACQbACaiABKQMAIgcgA0IAEL0DIAJB8AFqIAIpA4ACIglCiceZpK7wgemHf34iA0LH+vPD7YKjkDxCABC9AyACQeABaiADQo2Vx8OW0trAl39CABC9AyACQZABaiADQt2whYzotpGouH9CABC9AyACQUBrIANCqcDGia7Ok7IwQgAQvQMgAkHAAmogACkDECIDIARCABC9AyACQfACaiADIAVCABC9AyACQaADaiADIAZCABC9AyACQdADaiADIAdCABC9AyACQdABaiACKQPgASILIAJBiAJqKQMAIgwgAikDkAJ8Ig18IgggAkH4AWopAwAgCSACKQPwASIDfCADVK18fCIJIAIpA8ACfCIKQonHmaSu8IHph39+IgNCx/rzw+2Co5A8QgAQvQMgAkHAAWogA0KNlcfDltLawJd/QgAQvQMgAkGwAWogA0LdsIWM6LaRqLh/QgAQvQMgAkGgAWogA0KpwMaJrs6TsjBCABC9AyACQdACaiAAKQMIIgMgBEIAEL0DIAJBgANqIAMgBUIAEL0DIAJBsANqIAMgBkIAEL0DIAJB4ANqIAMgB0IAEL0DIAJBgAFqIAJByAJqKQMAIAkgClatfCIQIAIpA/ACfCIOIAJBmAJqKQMAIAwgDVatfCIPIAIpA6ACfCIMIAIpA5ABfCINIAggCVatIAJB6AFqKQMAIAggC1StfHx8IhF8IgggAikDwAF8IgkgAkHYAWopAwAgAikD0AEiAyAKfCADVK18fCIKIAIpA9ACfCILQonHmaSu8IHph39+IgNCx/rzw+2Co5A8QgAQvQMgAkHwAGogA0KNlcfDltLawJd/QgAQvQMgAkHgAGogA0LdsIWM6LaRqLh/QgAQvQMgAkHQAGogA0KpwMaJrs6TsjBCABC9AyACQeACaiAAKQMAIgMgBEIAEL0DIAJBkANq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ACAuQcAPaiAuQcASaiIxKQMANwMAIC5BuA9qIC5BuBJqIjIpAwA3AwAgLkGwD2ogASkDADcDACAuQagPaiAuQagSaiIzKQMANwMAIC5BoA9qIC5BoBJqIjQpAwA3AwAgLkGYD2ogLkGYEmoiOykDADcDACAuQdgPaiAuQfgSaiI1KQMANwMAIC5B4A9qIC5BgBNqIjYpAwA3AwAgLkHoD2ogLkGIE2oiNykDADcDACAuQfAPaiACKQMANwMAIC5B+A9qIC5BmBNqIjgpAwA3AwAgLkGAEGogLkGgE2oiOSkDADcDACAuQYgQaiAuQagTaiI6KQMANwMAIC4gLikDkBI3A5APIC4gLikD8BI3A9APIC5ByBBqIC5BiB1qIjwpAwA3AwAgLkHAEGogLkGAHWoiPSkDADcDACAuQbgQaiAuQfgcaiI+KQMANwMAIC5BsBBqICwpAwA3AwAgLkGoEGogLkHoHGoiPykDADcDACAuQaAQaiAuQeAcaiJAKQMANwMAIC5BmBBqIC5B2BxqIkEpAwA3AwAgLiAuKQPQHDcDkBAgLkGwEWogLkHwAGoQtAMgLkHQEWoiQiAuQYABahC0AyAtIC5BkAFqELQDIAEgLkGgAWoQtAMgMCAuQbABahC0AyACIC5BwAFqELQDIDwgLkHoEWopAwA3AwAgPSAuQeARaikDADcDACA+IC5B2BFqKQMANwMAICwgQikDADcDACA/IC5ByBFqKQMANwMAIEAgLkHAEWopAwA3AwAgQSAuQbgRaikDADcDACAuQZgdaiA7KQMANwMAIC5BoB1qIDQpAwA3AwAgLkGoHWogMykDADcDACAuQbAdaiABKQMANwMAIC5BuB1qIDIpAwA3AwAgLkHAHWogMSkDADcDACAuQcgdaiAvKQMANwMAIC4gLikDsBE3A9AcIC4gLikDkBI3A5AdIC5BiB5qIDopAwA3AwAgLkGAHmogOSkDADcDACAuQfgdaiA4KQMANwMAIC5B8B1qIAIpAwA3AwAgLkHoHWogNykDADcDACAuQeAdaiA2KQMANwMAIC5B2B1qIDUpAwA3AwAgLiAuKQPwEjcD0B0gLkHQAWoiMSAuQZAPakHAARDPBBogLkGQA2ogQ0HAARDPBBojAEGQImsiASQAIAFBwBlqIixBgL/BAEHMABCOAQJAAkACQCABKQPAGVAEQCABQdgWaiICIAFB4BlqIi0pAwA3AwAgAUHQFmoiMiABQdgZaiIwKQMANwMAIAFByBZqIjMgAUHQGWoiLykDADcDACABIAEpA8gZNwPAFiAsQcy/wQBBzQAQjgEgASkDwBlQBEAgAUGwH2oiNCABKQPIGTcDACABQcgfaiI7IC0pAwA3AwAgAUHAH2oiNSAwKQMANwMAIAFBuB9qIjYgLykDADcDACABQZgfaiI3IDMpAwA3AwAgAUGgH2oiMyAyKQMANwMAIAFBqB9qIjIgAikDADcDACABIAEpA8AWNwOQH0EAIQIgLEEAQYABENEEGiABQfgaaiA7KQMANwMAIAFB8BpqIDUpAwA3AwAgAUHoGmogNikDADcDACABQeAaaiA0KQMANwMAIAFB2BpqIDIpAwA3AwAgAUHQGmogMykDADcDACABQcgaaiA3KQMANwMAIAEgASkDkB83A8AaIAEgLEHAARDPBCIsQcABakEAQcABENEEGiAsQYADaiAxQYADEM8EGiAsQYgMakGItsEAKQMANwMAICxBkAxqQZC2wQApAwA3AwAgLEGYDGpBmLbBACkDADcDACAsQaAMakGgtsEAKQMANwMAICxBqAxqQai2wQApAwA3AwAgLEGwDGpBsLbBACkDADcDACAsQbgMakG4tsEAKQMANwMAICxBgLbBACkDADcDgAwgLEHADGpBAEGAARDRBBogLEHAB2pBAEHAARDRBBogLEGABmogLEGADGpBwAEQzwQaICxB+BlqQfjNwQApAwA3AwAgLEHwGWpB8M3BACkDADcDACAsQegZakHozcEAKQMANwMAIC1B4M3BACkDADcDACAwQdjNwQApAwA3AwAgL0HQzcEAKQMANwMAICxByBlqQcjNwQApAwA3AwAgLEHAzcEAKQMANwPAGSAsQYAaakEAQYABENEEGiAsQdAgakEAQcABENEEGiAsQZAfaiAsQcAZaiIBQcABEM8EGiABQcC2wQBBgAMQzwQaICxBADoAyBxBgBghAQNAAkAgAQRAICwgAUEBayIBNgLAHCAsQcAZaiABQQN2Qfj///8BcWopAwBCASABQT9xrYaDQgBSIi0gAnJFDQIgLEGQH2oQEiAtRQ0BICxBgANqEDgMAQsgLEHAFmoiASAsQZAfakGAAxDPBBogLEGAG2pBAEHAARDRBCECICxB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wJd/VARAIAMhBEKpwMaJrs6TsjAhBwwCCyADQo2Vx8OW0trAl39SIAlCxvrzw+2Co5A8VnINAEKpwMaJrs6TsjAhBwwBCyAHIAUgA0Ly6ri86a2lv+gAQvPquLzpraW/6AAgCULH+vPD7YKjkDxUG3wiBCADWq0iA30iBkKjz/rzl8nu18cAfCIIIAZUrSADIAVWrVGtfUKpwMaJrs6TsjB9IQcgCULH+vPD7YKjkDx9IQkLIAJBwAJqITACQCAHIAp8IAggDnwiBSAIVK0gBSAFIAQgBCAMfCIDVq0gAyADIAkgC3wiCyAJVK18IgRWrXx8IgNWrXx8IglCqcDGia7Ok7IwVARAIAQhBSADIQ4MAQsCQCAJQqnAxomuzpOyMFINACADQt2whYzotpGouH9UBEAgBCEFIAMhDkKpwMaJrs6TsjAhCQwCCyADQt2whYzotpGouH9SDQBCjZXHw5bS2sCXfyEFQt2whYzotpGouH8hDiAEQo2Vx8OW0trAl39UBEAgBCEFQqnAxomuzpOyMCEJDAILIARCjZXHw5bS2sCXf1IgC0LG+vPD7YKjkDxWcg0AQqnAxomuzpOyMCEJDAELIAkgAyAEQvLquLzpraW/6ABC8+q4vOmtpb/oACALQsf688PtgqOQPFQbfCIFIARarSIEfSIGQqPP+vOXye7XxwB8Ig4gBlStIAMgBFStUa19QqnAxomuzpOyMH0hCSALQsf688PtgqOQPH0hCwsgAkHYAWoiLSACQdgMaikDADcDACACQdABaiACQdAMaikDADcDACACQcgBaiACQcgMaikDADcDACACIAIpA8AMNwPAASAwQThqIAJBuA1qKQMANwMAIDBBMGogAkGwDWopAwA3AwAgMEEoaiACQagNaikDADcDACAwQSBqIAJBoA1qKQMANwMAIDBBGGogAkGYDWopAwA3AwAgMEEQaiACQZANaikDADcDACAwQQhqIAJBiA1qKQMANwMAIDAgAikDgA03AwAgAikDuAMhByACKQOQAyEKIAIpA4gDIQggAikDgAMhBgJAIC0pAwAiESACKQOYAyISVA0AAkAgESASVg0AIAogAikD0AEiBFYNASAEIApWDQAgCCACKQPIASIEVg0BIAQgCFYNACACKQPAASAGVg0ADAELIBIgCkKOlcfDltLawJd/Qo2Vx8OW0trA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ACA2IC1BEGopAwA3AwAgOiAtQRhqKQMANwMAIAIgAikDwAs3A4ANIAIgLSkDADcDoA0gPCACQaAIaiItQRhqIjQpAwA3AwAgPSAtQRBqIjUpAwA3AwAgPiAtQQhqIjYpAwA3AwAgAiAtKQMANwPgDiACQcgOaiACQYgIaiI3KQMANwMAIAJB0A5qIAJBkAhqIjgpAwA3AwAgAkHYDmogAkGYCGoiOSkDADcDACACIAIpA4AINwPADiACQcAMaiACQYANaiIwIAJBwA5qIjMQYiBBIDcpAwA3AwAgQCA4KQMANwMAID8gOSkDADcDACACQZgDaiA0KQMANwMAIAJBkANqIDUpAwA3AwAgAkGIA2ogNikDADcDACACIAIpA4AINwOgAyACIC0pAwA3A4ADIAJB4AxqIjQgAkGADGogAkGAA2oiLRBiIAJB+AtqIjUgSSkDADcDACACQfALaiI2IEspAwA3AwAgAkHoC2oiNyBNKQMANwMAIAJB4AtqIjggNCkDADcDACAvIAJB2AxqKQMANwMAIDEgAkHQDGopAwA3AwAgMiACQcgMaikDADcDACACIAIpA8AMNwPACyACQbgJaiACQfgKaikDADcDACACQbAJaiACQfAKaikDADcDACACQagJaiACQegKaikDADcDACACQaAJaiACQeAKaikDADcDACACQZgJaiACQdgKaikDADcDACACQZAJaiACQdAKaikDADcDACACQYgJaiACQcgKaikDADcDACACIAIpA8AKNwOACSACQfgJaiBIKQMANwMAIAJB8AlqIEopAwA3AwAgAkHoCWogTCkDADcDACACQeAJaiACQaALaikDADcDACACQdgJaiACQZgLaikDADcDACACQdAJaiACQZALaikDADcDACACQcgJaiACQYgLaikDADcDACACIAIpA4ALNwPACSACQbgKaiA1KQMANwMAIAJBsApqIDYpAwA3AwAgAkGoCmogNykDADcDACACQaAKaiA4KQMANwMAIAJBmApqIC8pAwA3AwAgAkGQCmogMSkDADcDACACQYgKaiAyKQMANwMAIAIgAikDwAs3A4AKIDAgAUHAARDPBBogMCACQYAJaiIBEA0gLSBPQcABEM8EGiAtIAEQDSAzIC1BwAEQzwQaIDMQ8wIiAUFAaxDzAhogAUGAAWoQ8wIaIAJBwARq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BBDPBBogLkGQGGoiAiAuQZAhakHABBDPBBogACABEKcBIABBkAFqIAIQpwEMAQsgLkECNgLUHCAuQZiAwAA2AtAcIC5CATcC3BwgLiAuQQxqrUKAgICAEIQ3A5APIC4gLkGQD2o2AtgcIC5B0BxqQcyAwAAQhgQACyAuQdAlaiQAC7YOAgF/En4jAEHAA2siAyQAIANBwAFqIAEpAxgiBSACKQMYIgRCABC9AyADQdABaiABKQMQIgggBEIAEL0DIANB4AFqIAEpAwgiByAEQgAQvQMgA0HwAWogASkDACIGIARCABC9AyADQbABaiADKQPAASIKQpuUr8Pytajehn9+IgRCbUIAEL0DIANBoAFqIARCf0IAEL0DIANBMGogBEL///////////8AQgAQvQMgA0GAAmogAikDECIEIAVCABC9AyADQbACaiAEIAhCABC9AyADQeACaiAEIAdCABC9AyADQZADaiAEIAZCABC9AyADQZABaiADKQOgASIJIANByAFqKQMAIg0gAykD0AF8Igx8IgsgA0G4AWopAwAgCiADKQOwASIEfCAEVK18fCIKIAMpA4ACfCIPQpuUr8Pytajehn9+IgRCbUIAEL0DIANBgAFqIARCf0IAEL0DIANBQGsgBEL///////////8AQgAQvQMgA0GQAmogAikDCCIEIAVCABC9AyADQcACaiAEIAhCABC9AyADQfACaiAEIAdCABC9AyADQaADaiAEIAZCABC9AyADQfAAaiADQYgCaikDACAKIA9WrXwiECADKQOwAnwiDiAJIANB2AFqKQMAIAwgDVStfCIRIAMpA+ABfCINfCIMIAogC1StIANBqAFqKQMAIhIgCSALVq18fHwiE3wiCSADKQOAASIUfCILIANBmAFqKQMAIAMpA5ABIgQgD3wgBFStfHwiCiADKQOQAnwiD0KblK/D8rWo3oZ/fiIEQm1CABC9AyADQeAAaiAEQn9CABC9AyADQdAAaiAEQv///////////wBCABC9AyADQaACaiACKQMAIgQgBUIAEL0DIANB0AJqIAQgCEIAEL0DIANBgANqIAQgB0IAEL0DIANBsANqIAQgBkIAEL0DIANBIGogA0GYAmopAwAgCiAPVq18IhUgAykDwAJ8IgUgFCADQegBaikDACANIBFUrXwiESADKQPwAXwiBCADKQMwfCIIIAwgE1atIBIgDCANVK18fHwiByADKQPgAnwiBiAJIA5UrSADQbgCaikDACAOIBBUrXx8fCIOfCINIAogC1StIANBiAFqKQMAIhAgCSALVq18fHwiEnwiCSADKQNgIhN8IgsgA0H4AGopAwAgAykDcCIKIA98IApUrXx8IgogAykDoAJ8Ig9Cm5Svw/K1qN6Gf34iDEJtQgAQvQMgA0EQaiAMQn9CABC9AyADIAxC////////////AEIAEL0DAkACQCADQQhqKQMAIANB2ABqKQMAIANByABqKQMAIAcgCFStIANBOGopAwAgBCAIVq18fCIMIANB+AFqKQMAIAQgEVStfHwiBCADKQOQA3wiCCAGIA5WrSADQegCaikDACAGIAdUrXx8fCIHIAMpA0B8IgYgB1StfCAGIAYgDSASVq0gECANIA5UrXx8fCIGVq18Ig4gByAIVK0gA0GYA2opAwAgBCAIVq18fCINIAQgDFStfCIMfCIEIAMpA6ADfCIIIANB+AJqKQMAIAYgAykD8AJ8IgcgBlStfCAHIAUgCVatIANByAJqKQMAIAUgFVStfHx8IgUgB1StfHwiByADKQNQfCIGIAdUrXwgBiADQegAaikDACIQIAUgBSATfCIFVq18IAUgCiALVK0gECAJIAtWrXx8fCIJIAVUrXx8IgUgBlStfCIQIAcgCFStIANBqANqKQMAIAQgCFatfHwiESAEIA5UrSAMIA1UrXx8Ig58IgQgAykDsAN8IgcgA0GIA2opAwAgBSAFIAMpA4ADfCIFVq18IAUgBSADQdgCaikDACADQagCaikDACAKIA9WrXwiBiADKQPQAnwiCCAGVK18IAggCCAJfCIIVq18fCIFVq18fCIGIAMpAwB8IgsgBlStfCALIANBGGopAwAiCSAFIAUgAykDECIKfCIFVq18IAUgBSAJIAggCCAKfCIIVq18IAggA0EoaikDACADKQMgIgkgD3wgCVStfHwiCSAIVK18fCIFVq18fCIIIAtUrXwiCyAGIAdUrSADQbgDaikDACAEIAdWrXx8IgcgBCAQVK0gDiARVK18fCIEfCIGQgBTIAYgC1StQgAgBCAHVK19UnINAAJAIAZC////////////AFEEQEJ/IQcgCEJ/UgRAIAUhBCAIIQdC////////////ACEGDAQLIAVCf1ENASAFIQRC////////////ACEGDAMLIAUhBCAIIQcMAgtCfyEEIAlCbVoNAEL///////////8AIQYMAQsgBUIBfCIHIAlCbVStIgt9IQQgCEIBfCIKIAVCf1IgByALVHKtIgV9IQcgBiAIQn9SIAUgClZyrX1C////////////AH0hBiAJQhN8IQkLIAAgCTcDGCAAIAQ3AxAgACAHNwMIIAAgBjcDACADQcADaiQAC7YOAgF/En4jAEHAA2siAiQAIAJBwAFqIAEpAxgiBCAAKQMYIgNCABC9AyACQdABaiABKQMQIgcgA0IAEL0DIAJB4AFqIAEpAwgiBiADQgAQvQMgAkHwAWogASkDACIFIANCABC9AyACQbABaiACKQPAASIJQpuUr8Pytajehn9+IgNCbUIAEL0DIAJBoAFqIANCf0IAEL0DIAJBMGogA0L///////////8AQgAQvQMgAkGAAmogACkDECIDIARCABC9AyACQbACaiADIAdCABC9AyACQeACaiADIAZCABC9AyACQZADaiADIAVCABC9AyACQZABaiACKQOgASIIIAJByAFqKQMAIgwgAikD0AF8Igt8IgogAkG4AWopAwAgCSACKQOwASIDfCADVK18fCIJIAIpA4ACfCIOQpuUr8Pytajehn9+IgNCbUIAEL0DIAJBgAFqIANCf0IAEL0DIAJBQGsgA0L///////////8AQgAQvQMgAkGQAmogACkDCCIDIARCABC9AyACQcACaiADIAdCABC9AyACQfACaiADIAZCABC9AyACQaADaiADIAVCABC9AyACQfAAaiACQYgCaikDACAJIA5WrXwiDyACKQOwAnwiDSAIIAJB2AFqKQMAIAsgDFStfCIQIAIpA+ABfCIMfCILIAkgClStIAJBqAFqKQMAIhEgCCAKVq18fHwiEnwiCCACKQOAASITfCIKIAJBmAFqKQMAIAIpA5ABIgMgDnwgA1StfHwiCSACKQOQAnwiDkKblK/D8rWo3oZ/fiIDQm1CABC9AyACQeAAaiADQn9CABC9AyACQdAAaiADQv///////////wBCABC9AyACQaACaiAAKQMAIgMgBEIAEL0DIAJB0AJqIAMgB0IAEL0DIAJBgANqIAMgBkIAEL0DIAJBsANqIAMgBUIAEL0DIAJBIGogAkGYAmopAwAgCSAOVq18IhQgAikDwAJ8IgQgEyACQegBaikDACAMIBBUrXwiECACKQPwAXwiAyACKQMwfCIHIAsgElatIBEgCyAMVK18fHwiBiACKQPgAnwiBSAIIA1UrSACQbgCaikDACANIA9UrXx8fCINfCIMIAkgClStIAJBiAFqKQMAIg8gCCAKVq18fHwiEXwiCCACKQNgIhJ8IgogAkH4AGopAwAgAikDcCIJIA58IAlUrXx8IgkgAikDoAJ8Ig5Cm5Svw/K1qN6Gf34iC0JtQgAQvQMgAkEQaiALQn9CABC9AyACIAtC////////////AEIAEL0DAkACQCACQQhqKQMAIAJB2ABqKQMAIAJByABqKQMAIAYgB1StIAJBOGopAwAgAyAHVq18fCILIAJB+AFqKQMAIAMgEFStfHwiAyACKQOQA3wiByAFIA1WrSACQegCaikDACAFIAZUrXx8fCIGIAIpA0B8IgUgBlStfCAFIAUgDCARVq0gDyAMIA1UrXx8fCIFVq18Ig0gBiAHVK0gAkGYA2opAwAgAyAHVq18fCIMIAMgC1StfCILfCIDIAIpA6ADfCIHIAJB+AJqKQMAIAUgAikD8AJ8IgYgBVStfCAGIAQgCFatIAJByAJqKQMAIAQgFFStfHx8IgQgBlStfHwiBiACKQNQfCIFIAZUrXwgBSACQegAaikDACIPIAQgBCASfCIEVq18IAQgCSAKVK0gDyAIIApWrXx8fCIIIARUrXx8IgQgBVStfCIPIAYgB1StIAJBqANqKQMAIAMgB1atfHwiECADIA1UrSALIAxUrXx8Ig18IgMgAikDsAN8IgYgAkGIA2opAwAgBCAEIAIpA4ADfCIEVq18IAQgBCACQdgCaikDACACQagCaikDACAJIA5WrXwiBSACKQPQAnwiByAFVK18IAcgByAIfCIHVq18fCIEVq18fCIFIAIpAwB8IgogBVStfCAKIAJBGGopAwAiCCAEIAQgAikDECIJfCIEVq18IAQgBCAIIAcgByAJfCIHVq18IAcgAkEoaikDACACKQMgIgggDnwgCFStfHwiCCAHVK18fCIEVq18fCIHIApUrXwiCiAFIAZUrSACQbgDaikDACADIAZWrXx8IgYgAyAPVK0gDSAQVK18fCIDfCIFQgBTIAUgClStQgAgAyAGVK19UnINAAJAIAVC////////////AFEEQEJ/IQYgB0J/UgRAIAQhAyAHIQZC////////////ACEFDAQLIARCf1ENASAEIQNC////////////ACEFDAMLIAQhAyAHIQYMAgtCfyEDIAhCbVoNAEL///////////8AIQUMAQsgBEIBfCIGIAhCbVStIgp9IQMgB0IBfCIJIARCf1IgBiAKVHKtIgR9IQYgBSAHQn9SIAQgCVZyrX1C////////////AH0hBSAIQhN8IQgLIAAgCDcDGCAAIAM3AxAgACAGNwMIIAAgBTcDACACQcADaiQAC8wPAgF/En4jAEGABGsiAiQAIAJBgAJqIAEpAwAiByAAKQMAIg1CABC9AyACQfABaiACKQOAAiIEQonHmaSu8IHph39+IgNCx/rzw+2Co5A8QgAQvQMgAkHAAmogACkDCCISIAdCABC9AyACQeABaiADQo2Vx8OW0trAl39CABC9AyACQdACaiAAKQMQIhMgB0IAEL0DIAJBkAFqIANC3bCFjOi2kai4f0IAEL0DIAJB4AJqIAApAxgiFCAHQgAQvQMgAkFAayADQqnAxomuzpOyMEIAEL0DIAJBkAJqIAEpAwgiCCANQgAQvQMgAkHQAWogAikD4AEiBSACKQPAAiIGIAJBiAJqKQMAfCIHfCILIAJB+AFqKQMAIAQgAikD8AEiA3wgA1StfHwiBCACKQOQAnwiA0KJx5mkrvCB6Yd/fiIJQsf688PtgqOQPEIAEL0DIAJB8AJqIAggEkIAEL0DIAJBwAFqIAlCjZXHw5bS2sCXf0IAEL0DIAJBoANqIAggE0IAEL0DIAJBsAFqIAlC3bCFjOi2kai4f0IAEL0DIAJB0ANqIAggFEIAEL0DIAJBoAFqIAlCqcDGia7Ok7IwQgAQvQMgAkGgAmogASkDECIOIA1CABC9AyACQYABaiACQcgCaikDACAGIAdWrXwiByACKQPQAnwiDCACKQOQAXwiCCAEIAtUrSACQegBaikDACAFIAtWrXx8fCIJIAIpA/ACfCIFIAJBmAJqKQMAIAMgBFStfHwiCyACKQPAAXwiBCACQdgBaikDACADIAIpA9ABIgN8IANUrXx8IgYgAikDoAJ8IgNCiceZpK7wgemHf34iCkLH+vPD7YKjkDxCABC9AyACQYADaiAOIBJCABC9AyACQfAAaiAKQo2Vx8OW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IAMgBVStIgUgDSkDCHwiB3wiA31CkYCAgICAgIAIQgAQvQMgAUEgakIAIANCAFKtIgggAiADVq0iAiABKQMwIgkgDSkDAHwiAyAFIAdWrXwiB3wiCnwiBX1CkYCAgICAgIAIQgAQvQMCQCABQShqKQMAIAFBGGopAwAgAUEIaikDACADIAdWrSABQThqKQMAIAMgCVStfHwiByABKQMAfCIDIAdUrXwgAyACIApWrXwiAiADVK18IgcgASkDEHwiAyAHVK18IAMgAyACIAUgCFStIgJ8IgggAlStfCIDVq18IgIgASkDIHwiByACVK18IAcgByADIAVCAFKtIgUgCHwiAyAFVK0iAnwiBSACVK18IgJWrXwiCUKRgICAgICAgAhUBEAgAyEEIAUhByACIQggCSEGDAELQgAhB0IAIQggAyAFhCAChFANACADQgF9IQQgBSADUK0iA30hByACIAMgBVatIgN9IQggCSACIANUrX1CkYCAgICAgIAIfSEGCyABIAQ3A1ggASAHNwNQIAEgCDcDSCABIAY3A0AgASABQeAAaiINNgKMASABQQA2AnQgAUEANgJgIAEgAUFAazYCiAEgDRCvAiABQZABaiQAIBIoAgghFAJAAkACQCASKAIMIgFFBEAgD0EIakGs9sAAKAIANgIAIA9BpPbAACkCADcCAAwBCyABQQBIDQFB2b7CAC0AABpBASEOIAFBARCwBCINRQ0BIA8gDSAUIAEQzwQiDwJ/QQEgAUEBRg0AGiABIA9qIAFBAXYiDWshFUEAIQ4gDUEBRwRAIAFBAWshESANQf7///8DcSEWA0AgDyARaiIQLQAAIRMgECAOIA9qIhAtAAA6AAAgECATOgAAIBUgDSAOQX5zamoiEy0AACEXIBMgEEEBaiIQLQAAOgAAIBAgFzoAACARQQJrIREgFiAOQQJqIg5HDQALCyABIAFBAnFFDQAaIA4gD2oiES0AACEQIBEgFSANIA5Bf3NqaiIOLQAAOgAAIA4gEDoAACABC0EIENICIA8gARC5BAsgEigCBCIBBEAgFCABELkECyASQRBqJAAMAQsgDiABEKgEAAsgACgCCCIBIAAoAgBGBEAgABCeAwsgACgCBCABQQxsaiIOIAwpAqQCNwIAIA5BCGogDEGsAmooAgA2AgAgACABQQFqNgIIIAxBsAJqJAAL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BEAgAkEBayEFIAZB/v///wNxIQoDQCABIAVqIgctAAAhCSAHIAEgBGoiBy0AADoAACAHIAk6AAAgCCAGIARBfnNqaiIJLQAAIQsgCSAHQQFqIgctAAA6AAAgByALOgAAIAVBAmshBSAKIARBAmoiBEcNAAsLIAIgAkECcUUNABogASAEaiIFLQAAIQcgBSAIIAYgBEF/c2pqIgQtAAA6AAAgBCAHOgAAIAILQQgQ0gIgASACELkEAkBB2PrAAEHQ98AAQTAQ0AQEQCADQq7V8v/////6wwA3A1AgA0L9/5/qrv7/2zI3A0ggA0LpuqaXmsmO9Ac3A0AgA0L69sqZmOa81Gw3AzggA0LpgNOH6qOjim83AzAgA0KGhPz34+SshQQ3AygMAQsgA0HQAGpBgPvAACkDADcDACADQcgAakH4+sAAKQMANwMAIANBQGtB8PrAACkDADcDACADQThqQej6wAApAwA3AwAgA0EwakHg+sAAKQMANwMAIANB2PrAACkDADcDKAsgA0HAAWoiASADQShqIgIQpQEgA0EANgKYASADQoCAgIAQNwKQASADQQM6AEggA0EgNgI4IANBADYCRCADQZj+wAA2AkAgA0EANgIwIANBADYCKCADIANBkAFqNgI8IAEgAhDMAg0DIAMoApABIQYgAiADKAKUASIIIAMoApgBEJEDIAMoAjAiAUUEQCADKAIoRQRAIAIQogMLIAMoAixBADYCACADQQE2AjBBASEBCyADKAIsIgIgAigCAEEBaiIENgIAAkAgBA0AIAJBBGohBCABQQJ0QQRrIQUDQCAFBEAgBCAEKAIAQQFqIgE2AgAgBUEEayEFIARBBGohBCABRQ0BDAILCyADKAIwIgEgAygCKEYEQCADQShqEKIDCyADKAIsIAFBAnRqQQE2AgAgAyABQQFqNgIwCyADQSBqIANBMGooAgA2AgAgAyADKQIoNwMYIAYEQCAIIAYQuQQLIANBKGogA0EMaiADQRhqEIkCAkAgAygCMEUEQEHZvsIALQAAGkEBIQFBAUEBELAEIgZFDQYgBkEAOgAAIANBATYCwAEMAQsgA0HAAWogA0EoahCrAiADKALEASEGIAMoAsgBIgFBAkkNACABIAZqIAFBAXYiAmshCEEAIQQgAkEBRwRAIAFBAWshBSACQf7///8HcSEKA0AgBSAG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IQIgASADKAJ0IgggAygCeBCRAyADKAIwIgZFBEAgAygCKEUEQCABEKIDCyADKAIsQQA2AgAgA0EBNgIwQQEhBgsgAygCLCIBIAEoAgBBAWoiBDYCAAJAIAQNACABQQRqIQQgBkECdEEEayEFA0AgBQRAIAQgBCgCAEEBaiIBNgIAIAVBBGshBSAEQQRqIQQgAUUNAQwCCwsgAygCMCIBIAMoAihGBEAgA0EoahCiAwsgAygCLCABQQJ0akEBNgIAIAMgAUEBajYCMAsgA0EgaiADQTBqKAIANgIAIAMgAykCKDcDGCACBEAgCCACELkECyADQShqIANBDGogA0EYahCJAgJAIAMoAjBFBEBB2b7CAC0AABpBASECQQFBARCwBCIBRQ0GIAFBADoAACADQQE2ApABDAELIANBkAFqIANBKGoQqwIgAygClAEhASADKAKYASICQQJJDQAgASACaiACQQF2IgZrIQhBACEEIAZBAUcEQCACQQFrIQUgBkH+////B3EhCgNAIAEgBWoiBy0AACEJIAcgASAEaiIHLQAAOgAAIAcgCToAACAIIAYgBEF+c2pqIgktAAAhCyAJIAdBAWoiBy0AADoAACAHIAs6AAAgBUECayEFIAogBEECaiIERw0ACwsgAkECcUUNACABIARqIgUtAAAhByAFIAggBiAEQX9zamoiBC0AADoAACAEIAc6AAALIAAgASACEJEBIAMoApABIgAEQCABIAAQuQQLIAMoAigiAEUNACADKAIsIABBAnQQuQQLIANBsAFqJAAPCyAGIAQQqAQACyAEIAIQqAQAC0Gw/sAAQTcgA0HQAGpB6P7AAEHE/8AAEL4DAAtBAUEBEMoEAAsgAyADLQApOgBwQYD4wABBKyADQfAAakHcp8EAQfinwQAQvgMAC6UNAgJ/F34jAEGgAmsiAyQAIAJB2ABqKQMAIQ4gAkHQAGopAwAhDyACQcgAaikDACEQIAJBQGspAwAhESACQThqKQMAIRIgAikDKCETIAIpAyAhFCACKQMYIRUgAikDECEWIAIpAwghFyACKQMAIRggAikDMCEZQQAhAgNAIANB4ABqIBggASACaiIEKQMAIgVCABC9AyADQfAAaiAXIAVCABC9AyADQYABaiAWIAVCABC9AyADQZABaiAVIAVCABC9AyADQaABaiAUIAVCABC9AyADQbABaiATIAVCABC9AyADQcABaiAZIARBMGopAwAiBUIAEL0DIANB0AFqIBIgBUIAEL0DIANB4AFqIBEgBUIAEL0DIANB8AFqIBAgBUIAEL0DIANBgAJqIA8gBUIAEL0DIANBkAJqIA4gBUIAEL0DIANB0ABqIAMpA8ABIhogDSADKQNgIg18Iht8IgxC/f/z/8////mJf34iBUKr1f7///+//7l/QgAQvQMgA0FAayAFQv//z4rr///VHkIAEL0DIANBMGogBUKk7MO1j9S0mOcAQgAQvQMgA0EgaiAFQr+llJzP8NK75ABCABC9AyADQRBqIAVC19mumuT26Y3LAEIAEL0DIAMgBUKazf/Lo73EgBpCABC9AyADQbgBaikDACADKQOwASIKIAt8IgUgClStfCAFIANBqAFqKQMAIAkgAykDoAEiCXwiCiAJVK18IAogA0GYAWopAwAgAykDkAEiCSAIfCIIIAlUrXwgCCADQYgBaikDACADKQOAASIJIAd8IgcgCVStfCAHIANB+ABqKQMAIAMpA3AiCSAGfCIGIAlUrXwgBiADQegAaikDACANIBtWrXx8IgkgBlStfHwiCyAHVK18fCIHIAhUrXx8IgggClStfHwiBiAFVK18Ig0gA0GYAmopAwAgAykDkAIiBSAGfCIGIAVUrXwgBiAGIANBiAJqKQMAIAggAykDgAIiCHwiBSAIVK18IAUgBSADQfgBaikDACADKQPwASIIIAd8IgcgCFStfCAHIAcgA0HoAWopAwAgAykD4AEiCiALfCIIIApUrXwgCCAIIANB2AFqKQMAIAkgAykD0AEiCXwiCiAJVK18IAogA0HIAWopAwAgDCAaVK18fCIJIApUrXx8IghWrXx8IgdWrXx8IgVWrXx8IgZWrXx8IgogCiANVK18IANBCGopAwAgBiADKQMAfCIKIAZUrXwgCiADQRhqKQMAIAUgBSADKQMQfCIFVq18IAUgA0EoaikDACAHIAcgAykDIHwiB1atfCAHIAcgA0E4aikDACAIIAMpAzB8IgYgCFStfCAGIAYgA0HIAGopAwAgCSADKQNAIgl8IgggCVStfCAIIANB2ABqKQMAIAwgAykDUCIMfCAMVK18fCINIAhUrXx8IgZWrXx8IgdWrXx8IgggBVStfHwiCSAKVK18fCELIAJBCGoiAkEw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iEKAgPwHg4QgDEIoiEKA/gODIAxCOIiEhIRCpAtCABC9AyABQTBqIAUpAAAiDEI4hiAMQoD+A4NCKIaEIAxCgID8B4NCGIYgDEKAgID4D4NCCIaEhCAMQgiIQoCAgPgPgyAMQhiIQoCA/AeDhCAMQiiIQoD+A4MgDEI4iISEhEKkC0IAEL0DIAFB0AFqIAEpA+ABIg5Cm5Svw/K1qN6Gf34iDEJtQgAQvQMgAUHAAWogDEJ/QgAQvQMgAUGAAWogDEL///////////8AQgAQvQMgAUGwAWogASkDwAEiDCABQegBaikDACIPIAEpA/ABfCIQfCIRIAFB2AFqKQMAIAEpA9ABIg0gDkJ8g3wgDVStfHwiDkKblK/D8rWo3oZ/fiINQm1CABC9AyABQaABaiANQn9CABC9AyABQZABaiANQv///////////wBCABC9AyABQeAAaiABKQOgASINIAwgAUH4AWopAwAgDyAQVq18IhIgASkDcHwiD3wiECAOIBFUrSABQcgBaikDACIUIAwgEVatfHx8IhV8IgwgAUG4AWopAwAgASkDsAEiESAOfCARVK18fCIRQpuUr8Pytajehn9+Ig5CbUIAEL0DIAFB0ABqIA5Cf0IAEL0DIAFBQGsgDkL///////////8AQgAQvQMgAUEgaiABKQNQIg4gDSABQfgAaikDACAPIBJUrXwiFiABKQMwfCISIAEpA4ABfCITIBAgFVatIBQgDyAQVq18fHwiD3wiECAMIBFWrSABQagBaikDACIUIAwgDVStfHx8IhV8IgwgAUHoAGopAwAgESABKQNgIg18IA1UrXx8IhFCm5Svw/K1qN6Gf34iDUJtQgAQvQMgAUEQaiANQn9CABC9AyABIA1C////////////AEIAEL0DAkACQCABQQhqKQMAIAFByABqKQMAIAFBmAFqKQMAIAEpA5ABIhcgAUE4aikDACASIBZUrXx8Ig0gF1StfCANIA0gDyATVK0gAUGIAWopAwAgEiATVq18fHwiElatfCASIBIgECAVVq0gFCAPIBBWrXx8fCINVq18IhAgASkDQHwiDyAQVK18IA8gAUHYAGopAwAiEiANIA0gDnwiEFatfCAQIBAgDCARVq0gEiAMIA5UrXx8fCIQVq18fCIMIA9UrXwiDiABKQMAfCINIA5UrXwgDSANIAFBGGopAwAiEiAMIAwgASkDECIOfCIPVq18IA8gDyASIA4gDiAQfCIMVq18IAwgAUEoaikDACARIAEpAyAiDnwgDlStfHwiECAMVK18fCIMVq18fCIOVq18Ig9CAFMNAAJAIA9C////////////AFoEQEJ/IQ0gDkJ/UQ0BQv///////////wAhDwsgDiENIAwhEQwCCyAMQn9SBEBC////////////ACEPIAwhEQwCCyAQQm1aDQBC////////////ACEPQn8hEQwBCyAMQgF8Ig0gEEJtVK0iEn0hESAOQgF8IhMgDEJ/UiANIBJUcq0iDH0hDSAPIA5Cf1IgDCATVnKtfUL///////////8AfSEPIBBCE3whEAsgBiAQNwMgIAYgETcDGCAGIA03AxAgBiAPNwMIQQAMAQsgBkEAOgABQQELOgAAIAFBgAJqJAAgAy0AKA0GIAAgAykDMDcDACAAQRhqIANByABqKQMANwMAIABBEGogA0FAaykDADcDACAAQQhqIANBOGopAwA3AwAgAygCkAEiAEUNASAFIAAQuQQMAQtBACEEIAJBAEgNAkHZvsIALQAAGkEBIQQgAkEBELAEIgVFDQIgA0EMaiAFIAEgAhDPBCIBAn9BASACQQFGDQAaIAEgAmogAkEBdiIGayEIQQAhBCAGQQFHBEAgAkEBayEFIAZB/v///wNxIQoDQCABIAVqIgctAAAhCSAHIAEgBGoiBy0AADoAACAHIAk6AAAgCCAGIARBfnNqaiIJLQAAIQsgCSAHQQFqIgctAAA6AAAgByALOgAAIAVBAmshBSAKIARBAmoiBEcNAAsLIAIgAkECcUUNABogASAEaiIFLQAAIQcgBSAIIAYgBEF/c2pqIgQtAAA6AAAgBCAHOgAAIAILQQgQ0gIgASACELkEAkBBqPvAAEHY+cAAQSAQ0AQEQCADQThqQn83AwAgA0J/NwMwIANC////////////ADcDKCADQkc3A0AMAQsgA0FAa0HA+8AAKQMANwMAIANBOGpBuPvAACkDADcDACADQTBqQbD7wAApAwA3AwAgA0Go+8AAKQMANwMoCyADQZABaiIBIANBKGoiAhDHASADQQA2AnggA0KAgICAEDcCcCADQQM6AEggA0EgNgI4IANBADYCRCADQZj+wAA2AkAgA0EANgIwIANBADYCKCADIANB8ABqNgI8IAEgAhDZAg0DIAMoAnAhBiACIAMoAnQiCCADKAJ4EJEDIAMoAjAiAUUEQCADKAIoRQRAIAIQogMLIAMoAixBADYCACADQQE2AjBBASEBCyADKAIsIgIgAigCAEEBaiIENgIAAkAgBA0AIAJBBGohBCABQQJ0QQRrIQUDQCAFBEAgBCAEKAIAQQFqIgE2AgAgBUEEayEFIARBBGohBCABRQ0BDAILCyADKAIwIgEgAygCKEYEQCADQShqEKIDCyADKAIsIAFBAnRqQQE2AgAgAyABQQFqNgIwCyADQSBqIANBMGooAgA2AgAgAyADKQIoNwMYIAYEQCAIIAYQuQQLIANBKGogA0EMaiADQRhqEIkCAkAgAygCMEUEQEHZvsIALQAAGkEBIQFBAUEBELAEIgZFDQYgBkEAOgAAIANBATYCkAEMAQsgA0GQAWogA0EoahCrAiADKAKUASEGIAMoApgBIgFBAkkNACABIAZqIAFBAXYiAmshCEEAIQQgAkEBRwRAIAFBAWshBSACQf7///8HcSEKA0AgBSAGaiIHLQAAIQkgByAEIAZqIgctAAA6AAAgByAJOgAAIAggAiAEQX5zamoiCS0AACELIAkgB0EBaiIHLQAAOgAAIAcgCzoAACAFQQJrIQUgCiAEQQJqIgRHDQALCyABQQJxRQ0AIAQgBmoiBS0AACEHIAUgCCACIARBf3NqaiICLQAAOgAAIAIgBzoAAAsgACAGIAEQlQEgAygCkAEiAARAIAYgABC5BAsgAygCKCIARQ0AIAMoAiwgAEECdBC5BAsgA0GwAWokAA8LIAYgBBCoBAALIAQgAhCoBAALQbD+wABBNyADQdAAakHo/sAAQcT/wAAQvgMAC0EBQQEQygQACyADIAMtACk6AHBBgPjAAEErIANB8ABqQdynwQBB+KfBABC+AwALgAsCAX8RfiMAQcACayIDJAAgA0FAayABKQMYIgkgAikDGCIEQgAQvQMgA0HQAGogASkDECIHIARCABC9AyADQeAAaiABKQMIIgUgBEIAEL0DIANB8ABqIAEpAwAiCCAEQgAQvQMgA0EQaiADKQNAIgZCgYCAgHBCABC9AyADQYABaiACKQMQIgQgCUIAEL0DIANBsAFqIAQgB0IAEL0DIANB4AFqIAQgBUIAEL0DIANBkAJqIAQgCEIAEL0DIANBIGogBkIghiILIANByABqKQMAIg0gAykDUHwiDnwiDCADKQOAAXwiBEKBgICAcEIAEL0DIANBkAFqIAIpAwgiCiAJQgAQvQMgA0HAAWogCiAHQgAQvQMgA0HwAWogCiAFQgAQvQMgA0GgAmogCiAIQgAQvQMgA0EwaiAEQiCGIg8gCyAMVq0gBkIgiHwiECADQdgAaikDACANIA5WrXwiDiADKQNgfCIRfCILIAMpA7ABfCINIANBiAFqKQMAIAQgDFStfHwiEnwiDCADKQOQAXwiCkKBgICAcEIAEL0DIANBoAFqIAIpAwAiBiAJQgAQvQMgA0HQAWogBiAHQgAQvQMgA0GAAmogBiAFQgAQvQMgA0GwAmogBiAIQgAQvQMgAyAKQiCGIhMgDCAPVK0gBEIgiHwiDyADQegAaikDACAOIBFWrXwiDiADKQNwfCIEIAMpAxB8IgcgCyAQVK18IgUgAykD4AF8IgggDSASVq0gA0G4AWopAwAgCyANVq18fHwiEHwiBiADKQPAAXwiCyADQZgBaikDACAKIAxUrXx8IhF8IgwgAykDoAF8IglCgYCAgHBCABC9AwJAAkAgA0EIaikDACADQdgBaikDACADQagBaikDACAJIAxUrXwiEiADKQPQAXwiDSASVK18IA0gDSALIBFWrSADQcgBaikDACAGIAtWrXx8IhEgAykD8AF8IgsgBiAPVK0iDyADKQMgfCIGIAUgB1StIANBGGopAwAgBCAHVq18fCISIANB+ABqKQMAIAQgDlStfHwiBCADKQOQAnwiByAIIBBWrSADQegBaikDACAFIAhWrXx8fCIOfCIQfCIFIAwgE1StIApCIIh8fCIKfCINVq18IhMgAykDgAJ8IgggBSAKVq0iFCADKQMwfCIMIAYgEFatIANBKGopAwAgBiAPVK18fCIPIAcgDlatIANBmAJqKQMAIAQgB1atfHwiDiAEIBJUrXwiEHwiBCADKQOgAnwiByAFIAtUrSADQfgBaikDACALIBFUrXx8fCILfCIRfCIFIAlCIIYiBiANfCIKIAZUrSAJQiCIfHwiCSAFVK0iDSADKQMAfCIGIA1UrXwgBiAMIBFWrSADQThqKQMAIAwgFFStfHwiDSAHIAtWrSADQagCaikDACAEIAdWrXx8IgsgBCAPVK0gDiAQVq18fCIOfCIEIAMpA7ACfCIMIAUgCFStIANBiAJqKQMAIAggE1StfHx8IgV8IgcgBlStfCIGIAUgDFStIANBuAJqKQMAIAQgDFatfHwiBSAEIA1UrSALIA5WrXx8IgR8IghCgYCAgHBWIAYgCFatQgAgBCAFVK19UnINAAJAIAhCgYCAgHBRBEAgCUL/////D1YNAkIAIQUgB0IAUg0CQv////8PIQQgCUL/////D1oNASAJIQRCgYCAgHAhCAwDCyAJIQQgByEFDAILIApCf1ENAEKBgICAcCEIDAELIAlC/////w99IgUgCkJ/Uq0iBn0hBCAHIAlC/////w9UIAUgBlRyrSIJfSEFIAggByAJVK19Qv////8PfCEIIApCAXwhCgsgACAKNwMYIAAgBDcDECAAIAU3AwggACAINwMAIANBwAJqJAALgAsCAX8RfiMAQcACayICJAAgAkFAayABKQMYIgggACkDGCIDQgAQvQMgAkHQAGogASkDECIGIANCABC9AyACQeAAaiABKQMIIgQgA0IAEL0DIAJB8ABqIAEpAwAiByADQgAQvQMgAkEQaiACKQNAIgVCgYCAgHBCABC9AyACQYABaiAAKQMQIgMgCEIAEL0DIAJBsAFqIAMgBkIAEL0DIAJB4AFqIAMgBEIAEL0DIAJBkAJqIAMgB0IAEL0DIAJBIGogBUIghiIKIAJByABqKQMAIgwgAikDUHwiDXwiCyACKQOAAXwiA0KBgICAcEIAEL0DIAJBkAFqIAApAwgiCSAIQgAQvQMgAkHAAWogCSAGQgAQvQMgAkHwAWogCSAEQgAQvQMgAkGgAmogCSAHQgAQvQMgAkEwaiADQiCGIg4gCiALVq0gBUIgiHwiDyACQdgAaikDACAMIA1WrXwiDSACKQNgfCIQfCIKIAIpA7ABfCIMIAJBiAFqKQMAIAMgC1StfHwiEXwiCyACKQOQAXwiCUKBgICAcEIAEL0DIAJBoAFqIAApAwAiBSAIQgAQvQMgAkHQAWogBSAGQgAQvQMgAkGAAmogBSAEQgAQvQMgAkGwAmogBSAHQgAQvQMgAiAJQiCGIhIgCyAOVK0gA0IgiHwiDiACQegAaikDACANIBBWrXwiDSACKQNwfCIDIAIpAxB8IgYgCiAPVK18IgQgAikD4AF8IgcgDCARVq0gAkG4AWopAwAgCiAMVq18fHwiD3wiBSACKQPAAXwiCiACQZgBaikDACAJIAtUrXx8IhB8IgsgAikDoAF8IghCgYCAgHBCABC9AwJAAkAgAkEIaikDACACQdgBaikDACACQagBaikDACAIIAtUrXwiESACKQPQAXwiDCARVK18IAwgDCAKIBBWrSACQcgBaikDACAFIApWrXx8IhAgAikD8AF8IgogBSAOVK0iDiACKQMgfCIFIAQgBlStIAJBGGopAwAgAyAGVq18fCIRIAJB+ABqKQMAIAMgDVStfHwiAyACKQOQAnwiBiAHIA9WrSACQegBaikDACAEIAdWrXx8fCINfCIPfCIEIAsgElStIAlCIIh8fCIJfCIMVq18IhIgAikDgAJ8IgcgBCAJVq0iEyACKQMwfCILIAUgD1atIAJBKGopAwAgBSAOVK18fCIOIAYgDVatIAJBmAJqKQMAIAMgBlatfHwiDSADIBFUrXwiD3wiAyACKQOgAnwiBiAEIApUrSACQfgBaikDACAKIBBUrXx8fCIKfCIQfCIEIAhCIIYiBSAMfCIJIAVUrSAIQiCIfHwiCCAEVK0iDCACKQMAfCIFIAxUrXwgBSALIBBWrSACQThqKQMAIAsgE1StfHwiDCAGIApWrSACQagCaikDACADIAZWrXx8IgogAyAOVK0gDSAPVq18fCINfCIDIAIpA7ACfCILIAQgB1StIAJBiAJqKQMAIAcgElStfHx8IgR8IgYgBVStfCIFIAQgC1StIAJBuAJqKQMAIAMgC1atfHwiBCADIAxUrSAKIA1WrXx8IgN8IgdCgYCAgHBWIAUgB1atQgAgAyAEVK19UnINAAJAIAdCgYCAgHBRBEAgCEL/////D1YNAkIAIQQgBkIAUg0CQv////8PIQMgCEL/////D1oNASAIIQNCgYCAgHAhBwwDCyAIIQMgBiEEDAILIAlCf1ENAEKBgICAcCEHDAELIAhC/////w99IgQgCUJ/Uq0iBX0hAyAGIAhC/////w9UIAQgBVRyrSIIfSEEIAcgBiAIVK19Qv////8PfCEHIAlCAXwhCQsgACAJNwMYIAAgAzcDECAAIAQ3AwggACAHNwMAIAJBwAJqJAALsBoCCX8PfiMAQbABayIDJAAgA0HgAGpCADcDACADQdgAakIANwMAIANCADcDUCADQgE3A2hBhwIhBANAIANCfjcDQCADQv////8PNwM4IANCADcDMCADQoGAgIBwNwMoIANBkAFqIANBKGogBEEIaxCyAiADQfgAakIANwMAIANBgAFqQgA3AwAgA0IANwNwIAMgAykDqAFCAYM3A4gBIANB8ABqIANB0ABqQSAQ0AQEQCAEQQFrIQQMAQsLAkACQAJAAkACQAJAIAIgBEEDdiIETQRAAkAgBCACayIERQRAQQEhBQwBCyAEQQBIDQNBASEGIARBARCxBCIFRQ0DCyADIAQ2ApgBIAMgBTYClAEgAyAENgKQASACBEAgA0GQAWogBCACEKUDIAMoApQBIQUgAygCmAEhBAsgBCAFaiABIAIQzwQaIwBBwAJrIgEkACADQShqIgYCfyACIARqQSBPBEAgAUHwAWogBSkAGCIMQjiGIAxCgP4Dg0IohoQgDEKAgPwHg0IYhiAMQoCAgPgPg0IIhoSEIAxCCIhCgICA+A+DIAxCGIhCgID8B4OEIAxCKIhCgP4DgyAMQjiIhISEIhBCA0IAEL0DIAFBsAJqIAUpABAiDEI4hiAMQoD+A4NCKIaEIAxCgID8B4NCGIYgDEKAgID4D4NCCIaEhCAMQgiIQoCAgPgPgyAMQhiIQoCA/AeDhCAMQiiIQoD+A4MgDEI4iISEhCIOQgNCABC9AyABQZABaiAFKQAIIgxCOIYgDEKA/gODQiiGhCAMQoCA/AeDQhiGIAxCgICA+A+DQgiGhIQgDEIIiEKAgID4D4MgDEIYiEKAgPwHg4QgDEIoiEKA/gODIAxCOIiEhIQiD0IDQgAQvQMgAUFAayAFKQAAIgxCOIYgDEKA/gODQiiGhCAMQoCA/AeDQhiGIAxCgICA+A+DQgiGhIQgDEIIiEKAgID4D4MgDEIYiEKAgPwHg4QgDEIoiEKA/gODIAxCOIiEhIQiDEIDQgAQvQMgAUHgAWogASkD8AEiEkKBgICAcEIAEL0DIAFB0AFqIBBC/////79/QgAQvQMgAUGgAmogDkL/////v39CABC9AyABQfAAaiAPQv////+/f0IAEL0DIAFBIGogDEL/////v39CABC9AyABQcABaiASQiCGIhMgAUH4AWopAwAiFCABKQOwAnwiFXwiESABKQPQAXwiDUKBgICAcEIAEL0DIAFBsAFqIBBCfkIAEL0DIAFBkAJqIA5CfkIAEL0DIAFB4ABqIA9CfkIAEL0DIAFBEGogDEJ+QgAQvQMgAUGAAWogDUIghiIWIBEgE1StIBJCIIh8IhggAUG4AmopAwAgFCAVVq18IhUgASkDkAF8Ihd8IhMgASkDoAJ8IhQgAUHYAWopAwAgDSARVK18fCIZfCIRIAEpA7ABfCISQoGAgIBwQgAQvQMgAUGgAWogEEL9////zwBCABC9AyABQYACaiAOQv3////PAEIAEL0DIAFB0ABqIA9C/f///88AQgAQvQMgASAMQv3////PAEIAEL0DIAFBMGogEkIghiIaIBEgFlStIA1CIIh8IhYgAUGYAWopAwAgFSAXVq18IhcgASkDQHwiECABKQPgAXwiDiATIBhUrXwiDyABKQNwfCINIBQgGVatIAFBqAJqKQMAIBMgFFatfHx8Ihh8IhMgASkDkAJ8IhQgAUG4AWopAwAgESASVq18fCIZfCIRIAEpA6ABfCIMQoGAgIBwQgAQvQMCQAJAIAFBCGopAwAgAUEYaikDACABQcgBaikDACATIBZUrSIWIAEpA8ABfCIVIBZUrXwgFSABQcgAaikDACAQIBdUrXwiFyABKQMgfCIWIA4gD1atIAFB6AFqKQMAIA4gEFStfHx8IhAgDSAYVq0gAUH4AGopAwAgDSAPVK18fHwiDnwiDSAVVK18IhUgDiAQVK0gECAWVK0gAUEoaikDACAWIBdUrXx8fHwiECABKQMQfCIOIBBUrXwgDiABQegAaikDACAUIBlWrSABQZgCaikDACATIBRWrXx8IhMgASkDYHwiDyATVK18IA8gDSAPfCINVq18fCIPIA5UrXwiEyAQIBVUrXwiECABQYgBaikDACANIBEgGlStIBJCIIh8fCISIA1UrSINIAEpA4ABfCIOIA1UrXwgDiAPfCIUIA5UrXx8Ig4gASkDAHwiDyAOVK18IA8gDyABQdgAaikDACABQYgCaikDACABQagBaikDACAMIBFUrXwiESABKQOAAnwiDSARVK18IA0gEnwiEiANVK18IhEgASkDUHwiDSARVK18IA0gDSAUfCIRVq18fCINVq18Ig8gECATVK0gDiAQVK18fCIQIA9UrSAQIAFBOGopAwAgESAMQiCGIg4gEnwiEiAOVK0gDEIgiHx8IgwgEVStIg4gASkDMHwiDyAOVK18IA8gDSAPfCIOVq18fCINIBBUrXxCAFIgDUKBgICAcFZyDQACQCANQoGAgIBwUQRAIAxC/////w9WDQJCACEPIA5CAFINAkL/////DyEQIAxC/////w9aDQFCgYCAgHAhDSAMIRAMAwsgDiEPIAwhEAwCCyASQn9RDQBCgYCAgHAhDQwBCyAMQv////8PfSIPIBJCf1KtIhF9IRAgDiAMQv////8PVCAPIBFUcq0iDH0hDyANIAwgDlatfUL/////D3whDSASQgF8IRILIAYgEjcDICAGIBA3AxggBiAPNwMQIAYgDTcDCEEADAELIAZBADoAAUEBCzoAACABQcACaiQAIAMtACgNBiAAIAMpAzA3AwAgAEEYaiADQcgAaikDADcDACAAQRBqIANBQGspAwA3AwAgAEEIaiADQThqKQMANwMAIAMoApABIgBFDQEgBSAAELkEDAELQQAhBCACQQBIDQJB2b7CAC0AABpBASEEIAJBARCwBCIFRQ0CIANBDGogBSABIAIQzwQiAQJ/QQEgAkEBRg0AGiABIAJqIAJBAXYiBmshCEEAIQQgBkEBRwRAIAJBAWshBSAGQf7///8DcSEKA0AgASAFaiIHLQAAIQkgByABIARqIgctAAA6AAAgByAJOgAAIAggBiAEQX5zamoiCS0AACELIAkgB0EBaiIHLQAAOgAAIAcgCzoAACAFQQJrIQUgCiAEQQJqIgRHDQALCyACIAJBAnFFDQAaIAEgBGoiBS0AACEHIAUgCCAGIARBf3NqaiIELQAAOgAAIAQgBzoAACACC0EIENICIAEgAhC5BAJAQYj7wABB2PnAAEEgENAEBEAgA0J+NwNAIANC/////x83AzggA0IANwMwIANCgoCAgGA3AygMAQsgA0FAa0Gg+8AAKQMANwMAIANBOGpBmPvAACkDADcDACADQTBqQZD7wAApAwA3AwAgA0GI+8AAKQMANwMoCyADQZABaiIBIANBKGoiAhCVAiADQQA2AnggA0KAgICAEDcCcCADQQM6AEggA0EgNgI4IANBADYCRCADQZj+wAA2AkAgA0EANgIwIANBADYCKCADIANB8ABqNgI8IAEgAhDZAg0DIAMoAnAhBiACIAMoAnQiCCADKAJ4EJEDIAMoAjAiAUUEQCADKAIoRQRAIAIQogMLIAMoAixBADYCACADQQE2AjBBASEBCyADKAIsIgIgAigCAEEB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KQMANwMAIABBCGogA0E4aikDADcDACADKAKQASIARQ0BIAUgABC5BAwBC0EAIQQgAkEASA0CQdm+wgAtAAAaQQEhBCACQQEQsAQiBUUNAiADQQxqIAUgASACEM8EIgECf0EBIAJBAUYNABogASACaiACQQF2IgZrIQhBACEEIAZBAUcEQCACQQFrIQUgBkH+////A3EhCgNAIAEgBWoiBy0AACEJIAcgASAEaiIHLQAAOgAAIAcgCToAACAIIAYgBEF+c2pqIgktAAAhCyAJIAdBAWoiBy0AADoAACAHIAs6AAAgBUECayEFIAogBEECaiIERw0ACwsgAiACQQJxRQ0AGiABIARqIgUtAAAhByAFIAggBiAEQX9zamoiBC0AADoAACAEIAc6AAAgAgtBCBDSAiABIAIQuQQCQEGY+sAAQdj5wABBIBDQBARAIANCqt+3l5GR0uHoADcDQCADQs/+qpWH7Z+EjX83AzggA0KxpKDI8Mjo8NEANwMwIANC+oGnuZTW9awiNwMoDAELIANBQGtBsPrAACkDADcDACADQThqQaj6wAApAwA3AwAgA0EwakGg+sAAKQMANwMAIANBmPrAACkDADcDKAsgA0GQAWoiASADQShqIgIQuAEgA0EANgJ4IANCgICAgBA3AnAgA0EDOgBIIANBIDYCOCADQQA2AkQgA0GY/sAANgJAIANBADYCMCADQQA2AiggAyADQfAAajYCPCABIAIQ2QINAyADKAJwIQYgAiADKAJ0IgggAygCeBCRAyADKAIwIgFFBEAgAygCKEUEQCACEKIDCyADKAIsQQA2AgAgA0EBNgIwQQEhAQsgAygCLCICIAIoAgBBAWoiBDYCAAJAIAQNACACQQRqIQQgAUECdEEEayEFA0AgBQRAIAQgBCgCAEEBaiIBNgIAIAVBBGshBSAEQQRqIQQgAUUNAQwCCwsgAygCMCIBIAMoAihGBEAgA0EoahCiAwsgAygCLCABQQJ0akEBNgIAIAMgAUEBajYCMAsgA0EgaiADQTBqKAIANgIAIAMgAykCKDcDGCAGBEAgCCAGELkECyADQShqIANBDGogA0EYahCJAgJAIAMoAjBFBEBB2b7CAC0AABpBASEBQQFBARCwBCIGRQ0GIAZBADoAACADQQE2ApABDAELIANBkAFqIANBKGoQqwIgAygClAEhBiADKAKYASIBQQJJDQAgASAGaiABQQF2IgJrIQhBACEEIAJBAUcEQCABQQFrIQUgAkH+////B3EhCgNAIAUgBmoiBy0AACEJIAcgBCAGaiIHLQAAOgAAIAcgCToAACAIIAIgBEF+c2pqIgktAAAhCyAJIAdBAWoiBy0AADoAACAHIAs6AAAgBUECayEFIAogBEECaiIERw0ACwsgAUECcUUNACAEIAZqIgUtAAAhByAFIAggAiAEQX9zamoiAi0AADoAACACIAc6AAALIAAgBiABEJkBIAMoApABIgAEQCAGIAAQuQQLIAMoAigiAEUNACADKAIsIABBAnQQuQQLIANBsAFqJAAPCyAGIAQQqAQACyAEIAIQqAQAC0Gw/sAAQTcgA0HQAGpB6P7AAEHE/8AAEL4DAAtBAUEBEMoEAAsgAyADLQApOgBwQYD4wABBKyADQfAAakHcp8EAQfinwQAQvgMAC5cLAgF/D34jAEHgAmsiAiQAIAJBwAJqIAFBwAAQvwIgAkFAayACKQPYAiIIQgNCABC9AyACQYABaiACKQPQAiIGQgNCABC9AyACQcABaiACKQPIAiIEQgNCABC9AyACQYACaiACKQPAAiIFQgNCABC9AyACQRBqIAIpA0AiCUKBgICAcEIAEL0DIAJB0ABqIAhC/////79/QgAQvQMgAkGQAWogBkL/////v39CABC9AyACQdABaiAEQv////+/f0IAEL0DIAJBkAJqIAVC/////79/QgAQvQMgAkEgaiAJQiCGIgogAkHIAGopAwAiCyACKQOAAXwiDHwiByACKQNQfCIDQoGAgIBwQgAQvQMgAkHgAGogCEJ+QgAQvQMgAkGgAWogBkJ+QgAQvQMgAkHgAWogBEJ+QgAQvQMgAkGgAmogBUJ+QgAQvQMgAkEwaiADQiCGIg0gByAKVK0gCUIgiHwiDyACQYgBaikDACALIAxWrXwiDCACKQPAAXwiDnwiCiACKQOQAXwiCyACQdgAaikDACADIAdUrXx8IhB8IgcgAikDYHwiCUKBgICAcEIAEL0DIAJB8ABqIAhC/f///88AQgAQvQMgAkGwAWogBkL9////zwBCABC9AyACQfABaiAEQv3////PAEIAEL0DIAJBsAJqIAVC/f///88AQgAQvQMgAiAJQiCGIhEgByANVK0gA0IgiHwiDSACQcgBaikDACAMIA5WrXwiDiACKQOAAnwiBiACKQMQfCIEIAogD1StfCIFIAIpA9ABfCIDIAsgEFatIAJBmAFqKQMAIAogC1atfHx8Ig98IgogAikDoAF8IgsgAkHoAGopAwAgByAJVq18fCIQfCIHIAIpA3B8IghCgYCAgHBCABC9AwJAAkAgAkG4AmopAwAgAkGoAmopAwAgAkEoaikDACAKIA1UrSINIAIpAyB8IgwgDVStfCAMIAJBiAJqKQMAIAYgDlStfCIOIAIpA5ACfCINIAQgBVatIAJBGGopAwAgBCAGVK18fHwiBiADIA9WrSACQdgBaikDACADIAVUrXx8fCIEfCIDIAxUrXwiDCAEIAZUrSAGIA1UrSACQZgCaikDACANIA5UrXx8fHwiBiACKQOgAnwiBCAGVK18IAQgAkHoAWopAwAgCyAQVq0gAkGoAWopAwAgCiALVq18fCIKIAIpA+ABfCIFIApUrXwgBSADIAV8IgNWrXx8IgUgBFStfCIKIAYgDFStfCIGIAJBOGopAwAgAyAHIBFUrSAJQiCIfHwiCSADVK0iAyACKQMwfCIEIANUrXwgBCAFfCILIARUrXx8IgQgAikDsAJ8IgUgBFStfCAFIAUgAkH4AWopAwAgAkG4AWopAwAgAkH4AGopAwAgByAIVq18IgcgAikDsAF8IgMgB1StfCADIAl8IgkgA1StfCIHIAIpA/ABfCIDIAdUrXwgAyADIAt8IgdWrXx8IgNWrXwiBSAGIApUrSAEIAZUrXx8IgYgBVStIAYgAkEIaikDACAHIAhCIIYiBCAJfCIJIARUrSAIQiCIfHwiCCAHVK0iBCACKQMAfCIFIARUrXwgBSADIAV8IgRWrXx8IgMgBlStfEIAUiADQoGAgIBwVnINAAJAIANCgYCAgHBRBEAgCEL/////D1YNAkIAIQUgBEIAUg0CQv////8PIQYgCEL/////D1oNASAIIQZCgYCAgHAhAwwDCyAIIQYgBCEFDAILIAlCf1ENAEKBgICAcCEDDAELIAhC/////w99IgUgCUJ/Uq0iB30hBiAEIAhC/////w9UIAUgB1RyrSIIfSEFIAMgBCAIVK19Qv////8PfCEDIAlCAXwhCQsgACAJNwMYIAAgBjcDECAAIAU3AwggACADNwMAIAJB4AJqJAAL1wsCGX8HfiADQQFrIRECQCADBEAgA0ECayEFAkACQCADQQFHBEAgASgCCCIOIANrIhJBAWoiB0UNASAHQQJ0IQQgB0H/////AUsEQEEAIAQQqAQACyACIBFBAnRqKAIAIRMgAiAFQQJ0ajUCACEgIARBBBCxBCIMDQJBBCAEEKgEAAsgBUEBQfyGwgAQ1gMACyABKAIAIQZBBCEMIA4hCQwCCyAOQQJ0IANBAnRrIQ8gA0EBcSIUIANB/////wNxIhZrIRdBACADQX5xayEYQgAgE60iH0IghiIhfSEiIA4hCSAHIQ0CQANAAn8CQAJAIAkiBARAIARBAUYNASABKAIEIgsgBEEBayIJQQJ0aiIZKAIAIQUgBEECdCALakEIazUCACEeIAggE0kNAiAFrSAIrXwhHUF/DAMLQYyHwgAQuwQAC0F/QQFBnIfCABDWAwALIAWtIAitQiCGhCIdIB0gH4AiIyAffn0hHSAjpwshCgJAIB1C/////w9WDQAgIiAdQiCGfCAefCEeA0AgHiAhfCIeIAqtICB+Wg0BIApBAWshCiAdIB98Ih1CgICAgBBUDQALCyANQQFrIg0gBEsNASANQQJ0IRUCQCAEIA1GDQAgCq0hHgJ/IBZBAUYEQEL/////DyEdQQAMAQsgCyAPaiEGQv////8PIR1BACEFIAIhBANAIAYgHSAGNQIAfCAENQIAIB5+fUL/////H30iHT4CACAGQQRqIhAgEDUCACAdQiCIfCAEQQRqNQIAIB5+fUL/////H30iHT4CACAdQiCIIR0gBkEIaiEGIARBCGohBCAXIAVBAmsiBUcNAAtBACAFawshBiALIBVqIRAgCCAUBH4gECAGQQJ0IgRqIgUgHSAFNQIAfCACIARqNQIAIB5+fUL/////H30iHT4CACAdQiCIBSAdC6dBf3NPDQACfyARRQRAQQAhBUEADAELIAsgD2ohBkEAIQggAiEEQQAhBQNAIAYgBSAGKAIAIhogBCgCAGoiBWoiGzYCACAGQQRqIgsgCygCACIcIARBBGooAgBqIgsgBSAaSSAFIBtLcmoiBTYCACALIBxJIAUgC0lyIQUgBkEIaiEGIARBCGohBCAYIAhBAmsiCEcNAAtBACAIawshBiAKQQFrIQogFEUNACAQIAZBAnQiBGoiBiAGKAIAIAIgBGooAgBqIAVqNgIACyAMIBVqIAo2AgAgASAJNgIIIA9BBGshDyAZKAIAIQggDQ0ACyABKAIAIQYMAgsgDSAEQayHwgAQ1QMACyARQQBB7IbCABDWAwALIAYgCUYEQCABEKIDCyAJQQJ0IgIgASgCBGogCDYCACABIAlBAWoiBTYCCAJAAkACQAJAAkAgBQRAIAIgASgCBCICaigCAEUNAQwCCyABKAIAIgJBBEkNBCACQQJ0IQYgASgCBCEEDAILIAlBAmohBCAJQQJ0IQYCQANAIAZBfEYEQEEAIQQMAgsgBEEBayEEIAIgBmogBkEEayEGKAIARQ0ACyAEIAVLDQELIAEgBDYCCCAEIQULIAUgASgCACICQQJ2Tw0CIAJBAnQhBiABKAIEIQQgBUUNACAEIAZBBCAFQQJ0IgIQqQQiCg0BQQQgAhCoBAALQQQhCiAEIAYQuQRBACEFCyABIAU2AgAgASAKNgIEC0EAIQUCQAJAAkAgB0UNACAMIBJBAnRqKAIABEAgByEFIAwhBgwCCyAOQQJ0IANBAnRrIQYgEkECaiEEA0AgBkF8Rg0BIARBAWshBCAGIAxqIAZBBGshBigCAEUNAAsgByAEIAQgB0sbIQULIAdBAnYgBU0EQCAMIQYMAQsgB0ECdCECIAVFBEBBBCEGIAwgAhC5BEEAIQVBACEHDAELIAUhByAMIAJBBCAFQQJ0IgIQqQQiBkUNAQsgACAFNgIIIAAgBjYCBCAAIAc2AgAgACABKQIANwIMIABBFGogAUEIaigCADYCAA8LQQQgAhCoBAALpQsCAX8QfiMAQfACayIDJAAgA0HIAmogASACEKcCIAACfyADLQDIAkUEQCADQcgAaiADKQPoAiIOQoGIgPC3rn9CABC9AyADQYgBaiADKQPgAiIPQoGIgPC3rn9CABC9AyADQcgBaiADKQPYAiIQQoGIgPC3rn9CABC9AyADQYgCaiADKQPQAiIMQoGIgPC3rn9CABC9AyADQRhqQgAgAykDSCIEfUKRgICAgICAgAhCABC9AyADQdgAaiAOQv//v5gTQgAQvQMgA0GYAWogD0L//7+YE0IAEL0DIANB2AFqIBBC//+/mBNCABC9AyADQZgCaiAMQv//v5gTQgAQvQMgA0EoakIAIARCAFKtIgkgA0HQAGopAwAiBiADKQOIAXwiBHwiCiADKQNYfCILfUKRgICAgICAgAhCABC9AyADQegAaiAOQoCAvntCABC9AyADQagBaiAPQoCAvntCABC9AyADQegBaiAQQoCAvntCABC9AyADQagCaiAMQoCAvntCABC9AyADQThqQgAgC0IAUq0iCCAJIApWrSIHIANBkAFqKQMAIAQgBlStfCIFIAMpA8gBfCIGfCIRIAMpA5gBfCINIANB4ABqKQMAIAogC1atfHwiBHwiEiADKQNofCITfUKRgICAgICAgAhCABC9AyADQfgAaiAOQpCQgvC1lfX/B0IAEL0DIANBuAFqIA9CkJCC8LWV9f8HQgAQvQMgA0H4AWogEEKQkILwtZX1/wdCABC9AyADQbgCaiAMQpCQgvC1lfX/B0IAEL0DIANBCGpCACADQfAAaikDACASIBNWrXwiCSADKQOoAXwiCyADQdABaikDACAFIAZWrXwiBiADKQOIAnwiCiADKQMYfCIFIAcgEVatfCIOIAMpA9gBfCIMIAQgDVStIANBoAFqKQMAIA0gEVStfHx8Ig0gCCASVq18IgR8IgcgE0IAUq18Ig8gAykDeHwiEH1CkYCAgICAgIAIQgAQvQMCQAJAIANBwAJqKQMAIANBQGspAwAgByALVK0gA0GwAWopAwAgCSALVq18fCILIAMpA+gBfCIRIAQgDVStIgggAykDKHwiEiAFIA5WrSADQSBqKQMAIAUgClStfHwiBSADQZACaikDACAGIApWrXx8IhMgAykDmAJ8IgogDCANVq0gA0HgAWopAwAgDCAOVK18fHwiCXwiBnwiDCAHIA9WrXwiByAMVK0iBCADKQM4fCINIARUrXwgDSADKQOoAiAFIBNWrYQiBSAJIApUrSADQaACaikDACAKIBNUrXx8fCIKIAYgElStIANBMGopAwAgCCASVq18fHwiCCAMIBFUrSADQfABaikDACALIBFWrXx8fCIEfCIJIA1UrXwiBiAEIAhUrSAIIApUrSADQbACaikDACAFIApWrXx8fHwiCyADKQO4AnwiCCALVK18IAggA0GAAmopAwAgA0HAAWopAwAgA0GAAWopAwAgDyAQVq18IgQgAykDuAF8IgUgBFStfCAFIAd8IgcgBVStfCIEIAMpA/gBfCIFIARUrXwgBSAJfCIEIAVUrXx8IgUgCFStfCAGIAtWrXwgA0EQaikDACAEIAQgByAQQgBSrXwi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ACAIIBJWrXx8fCIIIAwgEVStIANB6AFqKQMAIAsgEVatfHx8IgR8IgkgDVStfCIGIAQgCFStIAggClStIANBqAJqKQMAIAUgClatfHx8fCILIAMpA7ACfCIIIAtUrXwgCCADQfgBaikDACADQbgBaikDACADQfgAaikDACAPIBBWrXwiBCADKQOwAXwiBSAEVK18IAUgB3wiByAFVK18IgQgAykD8AF8IgUgBFStfCAFIAl8IgQgBVStfHwiBSAIVK18IAYgC1atfCADQQhqKQMAIAQgBCAHIBBCAFKtfCIGIAdUrXwiBFatIgkgAykDAHwiByAJVK18IAUgB3wiBSAHVK18fCIIQpGAgICAgICACFYNACAIQpGAgICAgICACFEEQCAEIAaEIAWEUEUNAUKRgICAgICAgAghCEIAIQlCACEGQgAhBAwCCyAGIQkgBCEGIAUhBAwBCyAGQgF9IQkgBCAGUK0iB30hBiAFIAQgB1StIgd9IQQgCCAFIAdUrX1CkYCAgICAgIAIfSEICyAAIAk3AxggACAGNwMQIAAgBDcDCCAAIAg3AwAgA0HgAmokAAuSCgIBfxJ+IwBBwAJrIgMkACADQUBrIAEpAxgiDSACKQMYIgRCABC9AyADQdAAaiABKQMQIg4gBEIAEL0DIANB4ABqIAEpAwgiDyAEQgAQvQMgA0HwAGogASkDACIKIARCABC9AyADQRBqQgAgAykDQCIEfUKRgICAgICAgAhCABC9AyADQYABaiACKQMQIgUgDUIAEL0DIANBsAFqIAUgDkIAEL0DIANB4AFqIAUgD0IAEL0DIANBkAJqIAUgCkIAEL0DIANBIGpCACAEQgBSrSIHIANByABqKQMAIgUgAykDUHwiBHwiDCADKQOAAXwiBn1CkYCAgICAgIAIQgAQvQMgA0GQAWogAikDCCIIIA1CABC9AyADQcABaiAIIA5CABC9AyADQfABaiAIIA9CABC9AyADQaACaiAIIApCABC9AyADQTBqQgAgBkIAUq0iCSAHIAxWrSIIIANB2ABqKQMAIAQgBVStfCIHIAMpA2B8IgV8IhAgAykDsAF8IgsgA0GIAWopAwAgBiAMVK18fCIEfCIRIAMpA5ABfCIMfUKRgICAgICAgAhCABC9AyADQaABaiACKQMAIgYgDUIAEL0DIANB0AFqIAYgDkIAEL0DIANBgAJqIAYgD0IAEL0DIANBsAJqIAYgCkIAEL0DIANCACADQZgBaikDACAMIBFUrXwiBiADKQPAAXwiCiADQegAaikDACAFIAdUrXwiByADKQNwfCISIAMpAxB8IhMgCCAQVq18Ig0gAykD4AF8Ig4gBCALVK0gA0G4AWopAwAgCyAQVK18fHwiCyAJIBFWrXwiBXwiDyAMQgBSrXwiESADKQOgAXwiFH1CkYCAgICAgIAIQgAQvQMCQAJAIANBCGopAwAgA0HYAWopAwAgA0GoAWopAwAgESAUVq18IgQgAykD0AF8IgwgBFStfCAMIAogD1atIANByAFqKQMAIAYgClatfHwiCiADKQPwAXwiFSAFIAtUrSIIIAMpAyB8IhAgDSATVK0gA0EYaikDACASIBNWrXx8IANB+ABqKQMAIAcgElatfHwiBiADKQOQAnwiCSALIA5UrSADQegBaikDACANIA5WrXx8fCIHfCIFfCILIA8gEVatfCIEfCINIAxUrXwiESADKQOAAnwiDiAEIAtUrSIMIAMpAzB8Ig8gBSAQVK0gA0EoaikDACAIIBBWrXx8IAcgCVStIANBmAJqKQMAIAYgCVatfHx8IgkgAykDoAJ8IhAgCyAVVK0gA0H4AWopAwAgCiAVVq18fHwiCHwiBnwiCyANIBRCAFKtfCIFIA1UrXwiBCALVK0iByADKQMAfCIKIAdUrXwgCiAGIA9UrSADQThqKQMAIAwgD1atfHwgCCAQVK0gA0GoAmopAwAgCSAQVq18fHwiCCADKQOwAnwiCSALIA5UrSADQYgCaikDACAOIBFUrXx8fCIHfCIGIApUrXwgByAJVK0gA0G4AmopAwAgCCAJVq18fHwiCUKRgICAgICAgAhWDQAgCUKRgICAgICAgAhRBEAgBCAFhCAGhFBFDQFCkYCAgICAgIAIIQlCACEHQgAhBUIAIQQMAgsgBSEHIAQhBSAGIQQMAQsgBUIBfSEHIAQgBVCtIgh9IQUgBiAEIAhUrSIIfSEEIAkgBiAIVK19QpGAgICAgICACH0hCQsgACAHNwMYIAAgBTcDECAAIAQ3AwggACAJNwMAIANBwAJqJAALzgsBDX8jAEGABWsiAiQAIAJBuANqIgMgAUHAARDPBBogAkKAgICAMDcD+AQgAkGEAmohCSMAQdABayIIJAACQAJAAkACQCADKALEASIGIAMoAsABIgpHBEAgBiAKayIHQQZ0IQEgB0H///8PTQ0BDAMLQQghCwwBC0HZvsIALQAAGkEIIQQgAUEIELAEIgtFDQEgCEEIaiIBIANBwAEQzwQaIAggBjYCzAEgCCAKNgLIASALIApBBnQgAWogB0EGdBDPBBoLIAkgBzYCCCAJIAs2AgQgCSAHNgIAIAhB0AFqJAAMAQsgBCABEKgEAAsgAigChAIhBiACKAKIAiEEAkAgAigCjAIiAUEDRgRAIAQoAgQhAyAEKAIAIQEgAkHIAGogBEEIakG4ARDPBBogBgRAIAQgBkEGdBC5BAsgAkEYaiACQdAAaikDADcDACACQSBqIAJB2ABqKQMANwMAIAJBKGogAkHgAGopAwA3AwAgAkEwaiACQegAaikDADcDACACQThqIAJB8ABqKQMANwMAIAJBQGsgAkH4AGopAwA3AwAgAiADNgIMIAIgATYCCCACIAIpA0g3AxAgAkG4A2ogAkEIahCtAyACKAK8AyEBIAIoArgDIQUgAigCwAMiA0ECRw0BIAJBmAJqIAFBEGopAwA3AwAgAkGgAmogAUEYaikDADcDACACQagCaiABQSBqKQMANwMAIAJBsAJqIAFBKGopAwA3AwAgAkG4AmogAUEwaikDADcDACACQcACaiABQThqKQMANwMAIAIgASkDCDcDkAIgASgCBCEMIAEoAgAhDSAFBEAgASAFQQV0ELkECyACQbgDaiACQYABahCtAyACKAK8AyEBIAIoArgDIQUgAigCwAMiA0ECRw0BIAJB0AJqIAFBEGopAwA3AwAgAkHYAmogAUEYaikDADcDACACQeACaiABQSBqKQMANwMAIAJB6AJqIAFBKGopAwA3AwAgAkHwAmogAUEwaikDADcDACACQfgCaiABQThqKQMANwMAIAIgASkDCDcDyAIgASgCBCEOIAEoAgAhByAFBEAgASAFQQV0ELkECyACQbgDaiACQcABahCtAyACKAK8AyEBIAIoArgDIQUgAigCwAMiA0ECRw0BIAJBiANqIgggAUEQaikDADcDACACQZADaiIJIAFBGGopAwA3AwAgAkGYA2ogAUEgaikDADcDACACQaADaiIKIAFBKGopAwA3AwAgAkGoA2oiCyABQTBqKQMANwMAIAJBsANqIgQgAUE4aikDADcDACACIAEpAwg3A4ADIAEoAgQhBiABKAIAIQMgBQRAIAEgBUEFdBC5BAsgACACKQOYAzcDoAEgACAGNgKEASAAIAM2AoABIAAgDDYCBCAAIA02AgAgAEGIAWogAikDgAM3AwAgAEGYAWogCSkDADcDACAAQZABaiAIKQMANwMAIABBqAFqIAopAwA3AwAgAEGwAWogCykDADcDACAAQbgBaiAEKQMANwMAIAAgDjYCRCAAIAc2AkAgAEEYaiACQaACaikDADcDACAAQRBqIAJBmAJqKQMANwMAIAAgAikDkAI3AwggAEE4aiACQcACaikDADcDACAAQTBqIAJBuAJqKQMANwMAIABBKGogAkGwAmopAwA3AwAgACACKQOoAjcDICAAQcgAaiACKQPIAjcDACAAQdAAaiACQdACaikDADcDACAAQdgAaiACQdgCaikDADcDACAAQfgAaiACQfgCaikDADcDACAAQfAAaiACQfACaikDADcDACAAQegAaiACQegCaikDADcDACAAIAIpA+ACNwNgIAJBgAVqJAAPCyACIAE2AsADIAIgBDYCvAMgAiAGNgK4A0G8jsAAQSsgAkG4A2pB3JTAAEHMlMAAEL4DAAsgAiADNgLAAyACIAE2ArwDIAIgBTYCuANBvI7AAEErIAJBuANqQbyTwABBrJTAABC+AwALzgsCCn8BfiMAQeAAayIDJAACQAJAAkACQCACKAIIIgYEQCABKAIIIgRFBEAgAEEIakHYhsIAKAIAIgE2AgAgAEHQhsIAKQIAIg03AgAgACANNwIMIABBFGogATYCAAwECyACKAIEIQkCQAJAAkAgBkEBRwRAAkBBfyAEIAZHIAQgBkkbIggNACAEQQJ0IQcgCUEEayELIAZBAnQhBSABKAIEQQRrIQwDQCAHBEAgBUUNBiAHIAxqIQggBSALaiEKIAdBBGshByAFQQRrIQVBfyAKKAIAIgogCCgCACIIRyAIIApJGyIIRQ0BDAILC0F/QQAgBRshCAsgCEH/AXEOAgIDAQsgCSgAAEEBRwRAIARBAnQhAiAEQf////8BSwRAQQAhAQwJCyABKAIEIQVB2b7CAC0AABpBBCEBIAJBBBCwBCIGRQ0IIAYgBSACEM8EIQEgAyAENgJcIAMgATYCWCADIAQ2AlQgA0EwaiIFIANB1ABqIAkoAgAQggIgA0EIaiIEIANBOGoiASgCADYCACADIAMpAjA3AwAgAygCPCECIAFB2IbCACgCADYCACADQdCGwgApAgA3AzAgAgRAIAUQogMgAygCNCACNgIAIANBATYCOAsgACADKQMwNwIMIABBFGogASgCADYCACAAQQhqIAQoAgA2AgAgACADKQMANwIADAcLIARBAnQhAiAEQf////8BSwRAQQAhAQwICyABKAIEIQVB2b7CAC0AABpBBCEBIAJBBBCwBCIGRQ0HIAYgBSACEM8EIQEgACAENgIIIAAgATYCBCAAIAQ2AgAgAEHQhsIAKQIANwIMIABBFGpB2IbCACgCADYCAAwGCyAEQQJ0IQIgBEH/////AUsEQEEAIQEMBwsgASgCBCEFQdm+wgAtAAAaQQQhASACQQQQsAQiBkUNBiAGIAUgAhDPBCEBIAAgBDYCFCAAIAE2AhAgACAENgIMIABB0IbCACkCADcCACAAQQhqQdiGwgAoAgA2AgAMBQtB2b7CAC0AABpBBEEEELAEIgFFDQIgAEEBNgIIIAAgATYCBCAAQQE2AgAgAUEBNgIAIABB0IbCACkCADcCDCAAQRRqQdiGwgAoAgA2AgAMBAsgBkECdCAJakEEaygCACIFZyIHRQRAIARBAnQhAiAEQf////8BSwRAQQAhAQwGCyABKAIEIQVB2b7CAC0AABpBBCEBIAJBBBCwBCIHRQ0FIAcgBSACEM8EIQEgAyAENgI4IAMgATYCNCADIAQ2AjAgACADQTBqIAkgBhCbAQwECyADIAE2AjQgA0GAgICAeDYCMCADQcgAaiIGIANBMGoiASAFRSIEIAdBH3EiBRCMASADIAI2AjQgA0GAgICAeDYCMCADQdQAaiABIAQgBRCMASABIAYgAygCWCIBIAMoAlwQmwEgA0EYaiADQThqKAIANgIAIANBKGogA0HEAGooAgA2AgAgAyADKQIwNwMQIAMgAykCPDcDICADKAJUIgIEQCABIAJBAnQQuQQLAkAgAygCJCIBIANBIGogAygCICICQYCAgIB4RhsoAghFBEAgAkGAgICAeEYEQCABKAIEIQYCQCABKAIIIgJFBEBBBCEEQQAhBQwBCyACQQJ0IQUgAkH/////AUsEQEEAIQEMBwtB2b7CAC0AABpBBCEBIAVBBBCwBCIERQ0GCyAEIAYg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ADYCACAFIAUpAkw3AwAgBUEQaiAFEMgBAkACQCACKAIAIgpBgICAgHhGDQAgAigCBCEIIAIoAgghASAFKAIUIQkgBSAFKAIYIgY2AiQgBSABNgIgIAEgBkcNASAFQQA2AkggBUKAgICAgAE3AkAgBgRAQQAhAQNAAn4gASAIai0AAEUEQEIAIRhCACEZQgAhGkIAIRtCACEcQgAMAQsgByAJaiICKQMAIRggAkEoaikDACEcIAJBIGopAwAhGyACQRhqKQMAIRogAkEQaikDACEZIAJBCGopAwALIR0gBSgCQCABRgRAIAVBQGsQoQMLIAUoAkQgB2oiAiAYNwMAIAJBKGogHDcDACACQSBqIBs3AwAgAkEYaiAaNwMAIAJBEGogGTcDACACQQhqIB03AwAgBSABQQFqIgE2AkggB0EwaiEHIAEgBkcNAAsLIAVBOGoiASAFQcgAaigCADYCACAFIAUpAkA3AzAgBSgCECICBEAgCSACQTBsELkECyAFQRhqIAEoAgA2AgAgBSAFKQMwNwMQIApFDQAgCCAKELkECyAFKAIQIQkgBSgCGCEBIAUoAhQhCCAFQQA6ADggBSAINgIwIAUgCCABQTBsajYCNCAFQSRqIAVBMGoQlAIgBSgCKCEKIAUoAiwiBkECTwRAIAZBAXYhByAGQTBsIApqQTBrIQIgCiEBA0AgASkDACEYIAEgAikDADcDACAFQegAaiINIAFBKGoiDikDADcDACAFQeAAaiIUIAFBIGoiDykDADcDACAFQdgAaiIVIAFBGGoiECkDADcDACAFQdAAaiIWIAFBEGoiESkDADcDACAFQcgAaiIXIAFBCGoiEikDADcDACAOIAJBKGoiDikDADcDACAPIAJBIGoiDykDADcDACAQIAJBGGoiECkDADcDACARIAJBEGoiESkDADcDACASIAJBCGoiEikDADcDACAFIBg3A0AgDiANKQMANwMAIA8gFCkDADcDACAQIBUpAwA3AwAgESAWKQMANwMAIBIgFykDADcDACACIAUpA0A3AwAgAkEwayECIAFBMGohASAHQQFrIgcNAAsLIAUoAiQhDSAJBEAgCCAJQTBsELkECyADBEAgAygCCCIBIAMoAgBGBEAgAxCeAwsgAygCBCABQQxsaiICIAs2AgggAiATNgIEIAIgDDYCACADIAFBAWo2AggLAkAgBARAAkAgBkUEQEEIIQkMAQtBACECIAZBMGwiC0EASCAGQarVqhVLcg0CQdm+wgAtAAAaQQghAiALQQgQsAQiCUUNAkEAIQcgBiEBA0AgByALRg0BIAcgCWoiAiAHIApqIggpAwA3AwAgAkEoaiAIQShqKQMANwMAIAJBIGogCEEgaikDADcDACACQRhqIAhBGGopAwA3AwAgAkEQaiAIQRBqKQMANwMAIAJBCGogCEEIaikDADcDACAHQTBqIQcgAUEBayIBDQALCyAEKAIIIgEgBCgCAEYEQCAEEJ4DCyAEKAIEIAFBDGxqIgIgBjYCCCACIAk2AgQgAiAGNgIAIAQgAUEBajYCCAsgACAGNgIIIAAgCjYCBCAAIA02AgAgBSgCACIABEAgBSgCBCAAQTBsELkECyADIAxFckUEQCATIAxBMGwQuQQLIAVB8ABqJAAPCyACIAsQqAQACyAFQQA2AkAgBUEgaiAFQSRqIAVBQGtBgN3AABCIBAALsQwBH38jAEGwC2siAiQAIAJB6AZqIgUgAUHABBDPBBogAkKAgICAIDcDqAsgAkHcBmohCCMAQdAEayIHJAACQAJAIAUoAsQEIgQgBSgCwAQiCUcEQCAEIAlrIgZBoAJsIgFBAEggBkGcjscDS3INAUHZvsIALQAAGkEIIQMgAUEIELAEIgpFDQEgB0EIaiIBIAVBwAQQzwQaIAcgBDYCzAQgByAJNgLIBCAKIAlBoAJsIAFqIAZBoAJsEM8EGgwCC0EIIQoMAQsgAyABEKgEAAsgCCAGNgIIIAggCjYCBCAIIAY2AgAgB0HQBGokACACKALcBiEEIAIoAuAGIQMgAigC5AYiAUECRgRAIAMoAgQhBSADKAIAIQEgAkGgAmogA0EIakG4BBDPBBogBARAIAMgBEGgAmwQuQQLIAIgBTYCBCACIAE2AgAgAkEIaiACQaACakGYAhDPBBogAkHoBmoiCyACELABIABBKGogAkGQB2oiDCkDADcDACAAQSBqIAJBiAdqIg0pAwA3AwAgAEEYaiACQYAHaiIOKQMANwMAIABBEGogAkH4BmoiDykDADcDACAAQQhqIAJB8AZqIhApAwA3AwAgACACKQPoBjcDACAAIAIpA5gHNwMwIABBOGogAkGgB2oiESkDADcDACAAQUBrIAJBqAdqIhIpAwA3AwAgAEHIAGogAkGwB2oiEykDADcDACAAQdAAaiACQbgHaiIUKQMANwMAIABB2ABqIAJBwAdqIhUpAwA3AwAgAEGIAWogAkHwB2oiFikDADcDACAAQYABaiACQegHaiIXKQMANwMAIABB+ABqIAJB4AdqIhgpAwA3AwAgAEHwAGogAkHYB2oiGSkDADcDACAAQegAaiACQdAHaiIaKQMANwMAIAAgAikDyAc3A2AgAEG4AWogAkGgCGoiGykDADcDACAAQbABaiACQZgIaiIcKQMANwMAIABBqAFqIAJBkAhqIh0pAwA3AwAgAEGgAWogAkGICGoiHikDADcDACAAQZgBaiACQYAIaiIfKQMANwMAIAAgAikD+Ac3A5ABIABB6AFqIAJB0AhqIiApAwA3AwAgAEHgAWogAkHICGoiBikDADcDACAAQdgBaiACQcAIaiIHKQMANwMAIABB0AFqIAJBuAhqIggpAwA3AwAgAEHIAWogAkGwCGoiCSkDADcDACAAIAIpA6gINwPAASAAQZgCaiACQYAJaiIKKQMANwMAIABBkAJqIAJB+AhqIgMpAwA3AwAgAEGIAmogAkHwCGoiBCkDADcDACAAQYACaiACQegIaiIFKQMANwMAIABB+AFqIAJB4AhqIgEpAwA3AwAgACACKQPYCDcD8AEgCyACQbgEahCwASAAQcgCaiAMKQMANwMAIABBwAJqIA0pAwA3AwAgAEG4AmogDikDADcDACAAQbACaiAPKQMANwMAIABBqAJqIBApAwA3AwAgACACKQPoBjcDoAIgACACKQOYBzcD0AIgAEHYAmogESkDADcDACAAQeACaiASKQMANwMAIABB6AJqIBMpAwA3AwAgAEHwAmogFCkDADcDACAAQfgCaiAVKQMANwMAIABBqANqIBYpAwA3AwAgAEGgA2ogFykDADcDACAAQZgDaiAYKQMANwMAIABBkANqIBkpAwA3AwAgAEGIA2ogGikDADcDACAAIAIpA8gHNwOAAyAAQdgDaiAbKQMANwMAIABB0ANqIBwpAwA3AwAgAEHIA2ogHSkDADcDACAAQcADaiAeKQMANwMAIABBuANqIB8pAwA3AwAgACACKQP4BzcDsAMgAEGIBGogICkDADcDACAAQYAEaiAGKQMANwMAIABB+ANqIAcpAwA3AwAgAEHwA2ogCCkDADcDACAAQegDaiAJKQMANwMAIAAgAikDqAg3A+ADIABBuARqIAopAwA3AwAgAEGwBGogAykDADcDACAAQagEaiAEKQMANwMAIABBoARqIAUpAwA3AwAgAEGYBGogASkDADcDACAAIAIpA9gINwOQBCACQbALaiQADwsgAiABNgLwBiACIAM2AuwGIAIgBDYC6AZBvI7AAEErIAJB6AZqQeyUwABB/JTAABC+AwALuwsCAX8RfiMAQYACayICJAAgAkHwAWpCADcDACACQegBakIANwMAIAJB4AFqQgA3AwAgAkHYAWpCADcDACACQgA3A9ABIAJCATcD+AEgASkDACENIAEpAwghDiABKQMQIQ8gASkDGCEQIAEpAyAhESABKQMoIRJBKCEBA0AgAkHwAGogAkHQAWogAWopAwAiBSASQgAQvQMgAkGAAWogBSARQgAQvQMgAkGQAWogBSAQQgAQvQMgAkGgAWogBSAPQgAQvQMgAkGwAWogBSAOQgAQvQMgAkHAAWogBSANQgAQvQMgAkHgAGogAikDcCILIAx8IgpCAEL9//P/z///+Yl/EL0DIAJB0ABqIAJB6ABqKQMAIgVCq9X+////v/+5f0IAEL0DIAJBQGsgBUL//8+K6///1R5CABC9AyACQTBqIAVCpOzDtY/UtJjnAEIAEL0DIAJBIGogBUK/pZScz/DSu+QAQgAQvQMgAkEQaiAFQtfZrprk9umNywBCABC9AyACIAVCms3/y6O9xIAaQgAQvQMgAkEIaikDACACKQPAASITIAR8IgUgAkG4AWopAwAgAikDsAEiBCAIfCIIIARUrXwgCCACQagBaikDACACKQOgASIEIAd8IgcgBFStfCAHIAJBmAFqKQMAIAIpA5ABIgQgBnwiBiAEVK18IAYgAkGIAWopAwAgAikDgAEiBCADfCIDIARUrXwgAyACQfgAaikDACAKIAtUrXx8IgQgA1StfHwiAyAGVK18fCIGIAdUrXx8IgcgCFStfHwiCyACKQMAfCIIIAtUrXwgCCAIIAJBGGopAwAgByAHIAIpAxB8IgdWrXwgByAHIAJBKGopAwAgBiAGIAIpAyB8IgZWrXwgBiAGIAJBOGopAwAgAyADIAIpAzB8IgNWrXwgAyADIAJByABqKQMAIAIpA0AiDCAEfCIEIAxUrXwgBCACQdgAaikD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DzcDICAAIBE3AxggACASNwMQIAAgCzcDCEEADAELIAAgAy0A2QE6AAFBAQs6AAAgA0GQAmokAAveCgECfyMAQTBrIgMkACADIAEQdUHZvsIALQAAGkEwQQEQsAQiAgRAAkAgAiADKQMANwAAIAIgAykDCDcACCACIAMpAxA3ABAgAiADKQMYNwAYIAIgAykDIDcAICACIAMpAyg3ACggACACQTBBCBDSAiACQTAQuQQgAyABQTBqEHVB2b7CAC0AABpBMEEBELAEIgJFDQAgAiADKQMANwAAIAIgAykDCDcACCACIAMpAxA3ABAgAiADKQMYNwAYIAIgAykDIDcAICACIAMpAyg3ACggAEEMaiACQTBBCBDSAiACQTAQuQQgAyABQeAAahB1Qdm+wgAtAAAaQTBBARCwBCICRQ0AIAIgAykDADcAACACIAMpAwg3AAggAiADKQMQNwAQIAIgAykDGDcAGCACIAMpAyA3ACAgAiADKQMoNwAoIABBGGogAkEwQQgQ0gIgAkEwELkEIAMgAUGQAWoQdUHZvsIALQAAGkEwQQEQsAQiAkUNACACIAMpAwA3AAAgAiADKQMINwAIIAIgAykDEDcAECACIAMpAxg3ABggAiADKQMgNwAgIAIgAykDKDcAKCAAQSRqIAJBMEEIENICIAJBMBC5BCADIAFBwAFqEHVB2b7CAC0AABpBMEEBELAEIgJFDQAgAiADKQMANwAAIAIgAykDCDcACCACIAMpAxA3ABAgAiADKQMYNwAYIAIgAykDIDcAICACIAMpAyg3ACggAEEwaiACQTBBCBDSAiACQTAQuQQgAyABQfABahB1Qdm+wgAtAAAaQTBBARCwBCICRQ0AIAIgAykDADcAACACIAMpAwg3AAggAiADKQMQNwAQIAIgAykDGDcAGCACIAMpAyA3ACAgAiADKQMoNwAoIABBPGogAkEwQQgQ0gIgAkEwELkEIAMgAUGgAmoQdUHZvsIALQAAGkEwQQEQsAQiAkUNACACIAMpAwA3AAAgAiADKQMINwAIIAIgAykDEDcAECACIAMpAxg3ABggAiADKQMgNwAgIAIgAykDKDcAKCAAQcgAaiACQTBBCBDSAiACQTAQuQQgAyABQdACahB1Qdm+wgAtAAAaQTBBARCwBCICRQ0AIAIgAykDADcAACACIAMpAwg3AAggAiADKQMQNwAQIAIgAykDGDcAGCACIAMpAyA3ACAgAiADKQMoNwAoIABB1ABqIAJBMEEIENICIAJBMBC5BCADIAFBgANqEHVB2b7CAC0AABpBMEEBELAEIgJFDQAgAiADKQMANwAAIAIgAykDCDcACCACIAMpAxA3ABAgAiADKQMYNwAYIAIgAykDIDcAICACIAMpAyg3ACggAEHgAGogAkEwQQgQ0gIgAkEwELkEIAMgAUGwA2oQdUHZvsIALQAAGkEwQQEQsAQiAkUNACACIAMpAwA3AAAgAiADKQMINwAIIAIgAykDEDcAECACIAMpAxg3ABggAiADKQMgNwAgIAIgAykDKDcAKCAAQewAaiACQTBBCBDSAiACQTAQuQQgAyABQeADahB1Qdm+wgAtAAAaQTBBARCwBCICRQ0AIAIgAykDADcAACACIAMpAwg3AAggAiADKQMQNwAQIAIgAykDGDcAGCACIAMpAyA3ACAgAiADKQMoNwAoIABB+ABqIAJBMEEIENICIAJBMBC5BCADIAFBkARqEHVB2b7CAC0AABpBMEEBELAEIgFFDQAgASADKQMANwAAIAEgAykDCDcACCABIAMpAxA3ABAgASADKQMYNwAYIAEgAykDIDcAICABIAMpAyg3ACggAEGEAWogAUEwQQgQ0gIgAUEwELkEIANBMGokAA8LC0EBQTAQqAQAC5AJAgF/En4jAEHgAWsiAyQAIANBwAFqIAEgAhC/AiADQYABaiADKQPYASIHQqGhuoCg9AFCABC9AyADQZABaiADKQPQASIIQqGhuoCg9AFCABC9AyADQaABaiADKQPIASINQqGhuoCg9AFCABC9AyADQbABaiADKQPAASISQqGhuoCg9AFCABC9AyADQfAAaiADKQOAASIEQrHqlJHdo4KcWH4iBUKv+P//b0IAEL0DIANB4ABqIAVCf0IAEL0DIANB0ABqIAcgAykDYCIFIANBiAFqKQMAIgkgAykDkAF8Igt8IgYgA0H4AGopAwAgBCADKQNwIgp8IApUrXx8IgR8IgdCseqUkd2jgpxYfiIKQq/4//9vQgAQvQMgA0FAayAKQn9CABC9AyADQTBqIAggBCAHVq0iDnwiCCAFIANBmAFqKQMAIAkgC1atfCIPIAMpA6ABfCIJfCILIAQgBlStIANB6ABqKQMAIgQgBSAG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//+//7l/VK0iC30hBiAHQqTsw7WP1LSY5wB9IgwgBEL//8+K6///1R5UIAogC1RyrSIEfSEKIAhCv6WUnM/w0rvkAH0iDiAHQqTsw7WP1LSY5wBUIAQgDFZyrSIEfSELIAlC19mumuT26Y3LAH0iByAIQr+llJzP8NK75ABUIAQgDlZyrSIEfSEMIAUgCULX2a6a5PbpjcsAVCAEIAdWcq19QprN/8ujvcSAGn0hBSANQtWqgYCAgMCAxgB8IQ0LIAAgDTcDKCAAIAY3AyAgACAKNwMYIAAgCzcDECAAIAw3AwggACAFNwMAIANBgAJqJAALsAkCAX8MfiMAQaACayIDJAAgA0GAAmogASACEL8CIANBwAFqIAMpA5gCQqQLQgAQvQMgA0HQAWogAykDkAJCpAtCABC9AyADQeABaiADKQOIAkKkC0IAEL0DIANB8AFqIAMpA4ACQqQLQgAQvQMgA0GwAWogAykDwAEiCEKblK/D8rWo3oZ/fiIFQm1CABC9AyADQaABaiAFQn9CABC9AyADQTBqIAVC////////////AEIAEL0DIANBkAFqIAMpA6ABIgUgA0HIAWopAwAiBiADKQPQAXwiCXwiByADQbgBaikDACADKQOwASIEIAhCfIN8IARUrXx8IghCm5Svw/K1qN6Gf34iBEJtQgAQvQMgA0GAAWogBEJ/QgAQvQMgA0FAayAEQv///////////wBCABC9AyADQfAAaiADKQOAASIEIAUgA0HYAWopAwAgBiAJVq18IgogAykD4AF8IgZ8IgkgByAIVq0gA0GoAWopAwAiDCAFIAdWrXx8fCINfCIFIANBmAFqKQMAIAMpA5ABIgcgCHwgB1StfHwiB0KblK/D8rWo3oZ/fiIIQm1CABC9AyADQeAAaiAIQn9CABC9AyADQdAAaiAIQv///////////wBCABC9AyADQSBqIAMpA2AiCCAEIANB6AFqKQMAIAYgClStfCIOIAMpA/ABfCIKIAMpAzB8IgsgCSANVq0gDCAGIAlWrXx8fCIGfCIJIAUgB1atIANBiAFqKQMAIgwgBCAFVq18fHwiDXwiBSADQfgAaikDACAHIAMpA3AiB3wgB1StfHwiB0KblK/D8rWo3oZ/fiIEQm1CABC9AyADQRBqIARCf0IAEL0DIAMgBEL///////////8AQgAQvQMCQAJAIANBCGopAwAgA0HYAGopAwAgA0HIAGopAwAgAykDQCIPIANB+AFqKQMAIAogDlStfHwiBCAPVK18IAQgBCAGIAtUrSADQThqKQMAIAogC1atfHx8IgRWrXwgBCAEIAkgDVatIAwgBiAJVq18fHwiBFatfCIJIAMpA1B8IgYgCVStfCAGIANB6ABqKQMAIgkgBCAEIAh8IgRWrXwgBCAFIAdWrSAJIAUgCFStfHx8IgkgBFStfHwiBSAGVK18IgQgAykDAHwiCCAEVK18IAggCCADQRhqKQMAIgYgBSAFIAMpAxAiBHwiBVatfCAFIAUgBiAEIAQgCXwiBFatfCAEIANBKGopAwAgByADKQMgIgd8IAdUrXx8IgkgBFStfHwiBVatfHwiCFatfCIGQgBTDQACQCAGQv///////////wBaBEBCfyEEIAhCf1IEQCAFIQcgCCEEQv///////////wAhBgwECyAFQn9RDQEgBSEHQv///////////wAhBgwDCyAFIQcgCCEEDAILQn8hByAJQm1aDQBC////////////ACEGDAELIAVCAXwiBCAJQm1UrSIKfSEHIAhCAXwiCyAFQn9SIAQgClRyrSIFfSEEIAYgCEJ/UiAFIAtWcq19Qv///////////wB9IQYgCUITfCEJCyAAIAk3AxggACAHNwMQIAAgBDcDCCAAIAY3AwAgA0GgAmokAAvwIQISfwR+IwBB0AVrIgQkAAJAIAACfgJAAkACQAJAAkACQAJAAkACQCABKAIEIgUEQCABIAUgBSABKAIIIgggBSAISRsiBms2AgQgASABKAIAIgMgBkEFdGo2AgAgCEUNAiAEQagFaiIHIANBGGopAwA3AwAgBEGgBWoiCSADQRBqKQMANwMAIARBmAVqIgogA0EIaikDADcDACAEIAMpAwA3A5AFIAZBAUYNAyAEQaADaiILIANBOGopAwA3AwAgBEGYA2oiDCADQTBqKQMANwMAIARBkANqIg4gA0EoaikDADcDACAEIAMpAyA3A4gDIARBwAFqIgggBEGQBWoiASAEQYgDaiIFEDQgBCgCwAENBCAEQTxqIARBgAJqKQMAIhU3AgAgBEE0aiAEQfgBaikDACIWNwIAIARBLGogBEHwAWopAwAiFzcCACAEQSRqIARB6AFqKQMAIhg3AgAgBEHYBGogBEHQAWopAwA3AwAgBEHgBGogBEHYAWopAwA3AwAgBEHoBGogBEHgAWopAwA3AwAgBEHwBGogGDcDACAEQfgEaiAXNwMAIARBgAVqIBY3AwAgBEGIBWogFTcDACAEIAQpA8gBNwPQBCAGQQJNDQUgBkEDRg0GIARByAVqIANB+ABqKQMANwMAIARBwAVqIANB8ABqKQMANwMAIARBuAVqIANB6ABqKQMANwMAIAogA0HIAGopAwA3AwAgCSADQdAAaikDADcDACAHIANB2ABqKQMANwMAIAQgAykDYDcDsAUgBCADKQNANwOQBSAGQQRNDQcgBkEFRg0IIARBwANqIANBuAFqKQMANwMAIARBuANqIANBsAFqKQMANwMAIARBsANqIANBqAFqKQMANwMAIA4gA0GIAWopAwA3AwAgDCADQZABaikDADcDACALIANBmAFqKQMANwMAIAQgAykDoAE3A6gDIAQgAykDgAE3A4gDIwBB0AhrIgMkACADQThqIAFBOGopAwA3AwAgA0EwaiABQTBqKQMANwMAIANBKGogAUEoaikDADcDACADQSBqIAFBIGopAwA3AwAgA0EYaiABQRhqKQMANwMAIANBEGogAUEQaikDADcDACADQQhqIAFBCGopAwA3AwAgA0HIAGogBUEIaikDADcDACADQdAAaiAFQRBqKQMANwMAIANB2ABqIAVBGGopAwA3AwAgA0HgAGogBUEgaikDADcDACADQegAaiAFQShqKQMANwMAIANB8ABqIAVBMGopAwA3AwAgA0H4AGogBUE4aikDADcDACADIAEpAwA3AwAgAyAFKQMANwNAIANB6AFqQgA3AwAgA0HgAWpCADcDACADQdgBakIANwMAIANB0AFqQgA3AwAgA0HIAWpCADcDACADQcABakIANwMAIANBuAFqQgA3AwAgA0IANwOwASADQUBrIQECQAJAAkACQAJAAkACQCADIANBsAFqIgUQjwQEQCABIAUQjwQNAQsgA0HoAWpCADcDACADQeABakIANwMAIANB2AFqQgA3AwAgA0HQAWpCADcDACADQcgBakIANwMAIANBwAFqQgA3AwAgA0G4AWpCADcDACADQgA3A7ABIAMgA0GwAWoiBRCPBARAIAEgBRCPBA0BCyADQbABahDjAiADQYAEaiADQfABaikDADcDACADQfgDaiADQegBaikDADcDACADQfADaiADQeABaikDADcDACADQZAEaiADQaACaikDADcDACADQZgEaiADQagCaikDADcDACADQaAEaiADQbACaikDADcDACADQbAEaiADQcACaikDADcDACADQbgEaiADQcgCaikDADcDACADQcAEaiADQdACaikDADcDACADIAMpA9gBNwPoAyADIAMpA5gCNwOIBCADIAMpA7gCNwOoBCADQcgEaiIPIAEQYyADQZAHaiIFIANBCGoiBikDADcDACADQZgHaiINIANBEGoiBykDADcDACADQaAHaiIQIANBGGoiCSkDADcDACADQagHaiIRIAMpAyA3AwAgA0GwB2oiEiADQShqIgopAwA3AwAgA0G4B2oiEyADQTBqIgspAwA3AwAgA0HAB2oiFCADQThqIgwpAwA3AwAgAyADKQMANwOIByADQZAGaiAFKQMANwMAIANBmAZqIA0pAwA3AwAgA0GgBmogECkDADcDACADQagGaiARKQMANwMAIANBsAZqIBIpAwA3AwAgA0G4BmogEykDADcDACADQcAGaiAUKQMANwMAIAMgAykDiAc3A4gGIANByAZqIgUgA0GIBmoQYyADQeAHaiAJKQMANwMAIANB2AdqIAcpAwA3AwAgA0HQB2ogBikDADcDACADQfAHaiAKKQMANwMAIANB+AdqIAspAwA3AwAgA0GACGogDCkDADcDACADIAMpAwA3A8gHIAMgAykDIDcD6AcgA0HIBWoiDSAFIANByAdqEB0gA0GQCGogBikDADcDACADQZgIaiAHKQMANwMAIANBoAhqIAkpAwA3AwAgA0GwCGogCikDADcDACADQbgIaiALKQMANwMAIANBwAhqIAwpAwA3AwAgAyADKQMANwOICCADIAMpAyA3A6gIIAUgA0HoA2ogA0GICGoQTiADQYgFaiIGIA0gBRCWAiAFIAYgA0GIBGoQlgIgDyAFEI8EAkAgAygCtAEiBUUNACAFIAVBDGxBE2pBeHEiB2pBCWoiBUUNACADKAKwASAHayAFELkECw0AIANB6AFqIANBOGopAwA3AwAgA0HgAWogA0EwaikDADcDACADQdgBaiADQShqKQMANwMAIANB0AFqIANBIGopAwA3AwAgA0HIAWogA0EYaikDADcDACADQcABaiADQRBqKQMANwMAIANBuAFqIANBCGopAwA3AwAgAyADKQMANwOwASADQYgIaiADQbABahCtAyADKAKMCCEFIAMoAogIIQYgAygCkAgiB0ECRw0BIANBkAhqIAVBEGopAwA3AwAgA0GYCGogBUEYaikDADcDACADQaAIaiAFQSBqKQMANwMAIANBqAhqIAVBKGopAwA3AwAgA0GwCGogBUEwaikDADcDACADQbgIaiAFQThqKQMANwMAIAMgBSkDCDcDiAggBSgCBCEHIAUoAgAhCSAGBEAgBSAGQQV0ELkECyADQdgHaiADQZAIaikDADcDACADQeAHaiADQZgIaikDADcDACADQfAHaiADQagIaikDADcDACADQfgHaiADQbAIaikDADcDACADQYAIaiADQbgIaikDADcDACADIAc2AswHIAMgCTYCyAcgAyADKQOICDcD0AcgAyADKQOgCDcD6AcgA0HoAWogAUE4aikDADcDACADQeABaiABQTBqKQMANwMAIANB2AFqIAFBKGopAwA3AwAgA0HQAWogAUEgaikDADcDACADQcgBaiABQRhqKQMANwMAIANBwAFqIAFBEGopAwA3AwAgA0G4AWogAUEIaikDADcDACADIAEpAwA3A7ABIANBiAhqIANBsAFqEK0DIAMoAowIIQEgAygCiAghBSADKAKQCCIGQQJHDQIgA0GQB2ogAUEQaikDADcDACADQZgHaiABQRhqKQMANwMAIANBoAdqIAFBIGopAwA3AwAgA0GoB2ogAUEoaikDADcDACADQbAHaiABQTBqKQMANwMAIANBuAdqIAFBOGopAwA3AwAgAyABKQMINwOIByABKAIEIQYgASgCACEHIAUEQCABIAVBBXQQuQQLIANBmAhqIANBkAdqIgUpAwA3AwAgA0GgCGogA0GYB2opAwA3AwAgA0GwCGogA0GoB2opAwA3AwAgA0G4CGogA0GwB2opAwA3AwAgA0HACGogA0G4B2opAwA3AwAgAyAGNgKMCCADIAc2AogIIAMgAykDiAc3A5AIIAMgAykDoAc3A6gIIANByAVqIgYgA0HIB2oQuAEgA0EANgKQByADQoCAgIAQNwKIByADQQM6ANABIANBIDYCwAEgA0EANgLMASADQcDqwAA2AsgBIANBADYCuAEgA0EANgKwASADIANBiAdqIgE2AsQBIAYgA0GwAWoiBhDZAg0FIANBiAFqIAUoAgA2AgAgAyADKQKIBzcDgAEgA0GIBmoiByADQegHahC4ASADQQA2ApAHIANCgICAgBA3AogHIANBAzoA0AEgA0EgNgLAASADQQA2AswBIANBwOrAADYCyAEgA0EANgK4ASADQQA2ArABIAMgATYCxAEgByAGENkCDQUgA0GYAWogBSgCADYCACADIAMpAogHNwOQASADQcgGaiIHIANBiAhqELgBIANBADYCkAcgA0KAgICAEDcCiAcgA0EDOgDQASADQSA2AsABIANBADYCzAEgA0HA6sAANgLIASADQQA2ArgBIANBADYCsAEgAyABNgLEASAHIAYQ2QINBSADQagBaiAFKAIANgIAIAMgAykCiAc3A6ABIAEgA0GoCGoQuAEgA0EANgKQBCADQoCAgIAQNwKIBCADQQM6ANABIANBIDYCwAEgA0EANgLMASADQcDqwAA2AsgBIANBADYCuAEgA0EANgKwASADIANBiARqNgLEASABIAYQ2QINBSADQfADaiADQZAEaigCADYCACADIAMpAogENwPoAyADQQU2AswEIANB+O3AADYCyAQgA0IENwLUBCADIANB6ANqrUKAgICA4AeENwOgBSADIANBoAFqrUKAgICA4AeENwOYBSADIANBkAFqrUKAgICA4AeENwOQBSADIANBgAFqrUKAgICA4AeENwOIBSADIANBiAVqNgLQBCAIQQRqIANByARqEN0CIAMoAugDIgEEQCADKALsAyABELkECyADKAKgASIBBEAgAygCpAEgARC5BAsgAygCkAEiAQRAIAMoApQBIAEQuQQLIAMoAoABIgEEQCADKAKEASABELkECyAIQQE2AgAMAwsgCEEIaiADQYABEM8EGiAIQQA2AgAMAgsgAyAHNgKQCCADIAU2AowIIAMgBjYCiAgMAgsgAyAGNgKQCCADIAE2AowIIAMgBTYCiAgMAQsgA0HQCGokAAwCC0G8jsAAQSsgA0GICGpBvJPAAEGslMAAEL4DAAtB2OrAAEE3IANBzwhqQZDrwABB7OvAABC+AwALIAQoAsABRQ0BIA4gBEHMAWooAgA2AgAMCQsgAEICNwMADAoLIARBwAFqIgEgBEEEciAEQcgBakGAARDPBEGAARDPBBogBEHIAmogBEHYBGopAwA3AwAgBEHQAmogBEHgBGopAwA3AwAgBEHYAmogBEHoBGopAwA3AwAgBEHgAmogBEHwBGopAwA3AwAgBEHoAmogBEH4BGopAwA3AwAgBEHwAmogBEGABWopAwA3AwAgBEH4AmogBEGIBWopAwA3AwAgBCAEKQPQBDcDwAIgBEGIA2oiAkEEciABQcABEM8EGiABIAJBxAEQzwQaIAQgBEHEAWpBwAEQzwQaQgEMCAtBAEEAQYCMwAAQ1gMAC0EBQQFBkIzAABDWAwALIARBkANqIARBzAFqKAIANgIADAQLQQJBAkGgjMAAENYDAAtBA0EDQbCMwAAQ1gMAC0EEQQRBwIzAABDWAwALQQVBBUHQjMAAENYDAAsgBCAEKQLEATcDiAMgAigCACIBQYCAgIB4RiABRXJFBEAgAigCBCABELkECyACIAQpA4gDNwIAIAJBCGogBEGQA2ooAgA2AgBCAAs3AwAgAEEIaiAEQcABEM8EGgsgBEHQBWokAAu9CQILfwp+IwBB4ABrIgQkACADBEAgBEEIaiIDQdTFwAAoAgA2AgAgBEHMxcAAKQIANwMAIAIEQCAEEKIDIAQoAgQgAjYCACAEQQE2AggLIARB2ABqIAMoAgA2AgAgBCAEKQMANwNQIAAoAggiAyAAKAIARgRAIAAQngMLIAAoAgQgA0EMbGoiBSAEKQNQNwIAIAVBCGogBEHYAGooAgA2AgAgACADQQFqNgIICyACBEAgASACQTBsaiELIARBOGohDCAEQShqIQ0gBEEYaiEOQdTFwAAoAgAhCkHMxcAAKQIAIRcDQCAEIAEQ2QEgDCkDACEPIA0pAwAhECAOKQMAIREgBEEIaikDACESIAQpAzAhEyAEKQMgIRQgBCkDECEVIAQpAwAhFiAEQdgAaiIFIAo2AgAgBCAXNwNQIBIgFoRQRQRAQQEhAkEAIQMDQCAEKAJQIAJBAWtGBEAgBEHQAGoQogMLIAQoAlQgA2ogFj4CACASQiCGIBZCgICAgBBUIQYgElAhByADQQRqIQMgEkIgiCESIAQgAjYCWCACQQFqIQIgFkIgiIQhFiAGIAdxRQ0ACwsgBEHIAGoiBiAFKAIANgIAIAQgBCkDUDcDQCAAKAIIIgIgACgCAEYEQCAAEJ4DCyAAKAIEIAJBDGxqIgMgBCkDQDcCACADQQhqIAYoAgA2AgAgACACQQFqIgI2AgggBSAKNgIAIAQgFzcDUCARIBWEUEUEQEEBIQJBACEDA0AgBCgCUCACQQFrRgRAIARB0ABqEKIDCyAEKAJUIANqIBU+AgAgFUL/////D1YgEUIAUiARUCARQiCGIBVCIIiEIRUgA0EEaiEDIBFCIIghESAEIAI2AlggAkEBaiECGw0ACyAAKAIIIQILIAYgBSgCADYCACAEIAQpA1A3A0AgACgCACACRgRAIAAQngMLIAAoAgQgAkEMbGoiAyAEKQNANwIAIANBCGogBigCADYCACAAIAJBAWoiAjYCCCAFIAo2AgAgBCAXNwNQIBAgFIRQRQRAQQEhAkEAIQMDQCAEKAJQIAJBAWtGBEAgBEHQAGoQogMLIAQoAlQgA2ogFD4CACAUQv////8PViAQQgBSIBBQIBBCIIYgFEIgiIQhFCADQQRqIQMgEEIgiCEQIAQgAjYCWCACQQFqIQIbDQALIAAoAgghAgsgBiAFKAIANgIAIAQgBCkDUDcDQCAAKAIAIAJGBEAgABCeAwsgACgCBCACQQxsaiIDIAQpA0A3AgAgA0EIaiAGKAIANgIAIAAgAkEBaiICNgIIIAUgCjYCACAEIBc3A1AgDyAThFBFBEBBASECQQAhAwNAIAQoAlAgAkEBa0YEQCAEQdAAahCiAwsgBCgCVCADaiATPgIAIBNC/////w9WIA9CAFIgD1AgD0IghiATQiCIhCETIANBBGohAyAPQiCIIQ8gBCACNgJYIAJBAWohAhsNAAsgACgCCCECCyAGIAUoAgA2AgAgBCAEKQNQNwNAIAAoAgAgAkYEQCAAEJ4DCyAAKAIEIAJBDGxqIgMgBCkDQDcCACADQQhqIAYoAgA2AgAgACACQQFqNgIIIAFBMGoiASALRw0ACwsgBEHgAGokAAuSCgELfyMAQSBrIgMkACABLQAMIQkCQAJAIAItAAwiCkEBRgRAIAEoAgQhBgJAIAEoAggiAUUEQEEEIQRBACECDAELIAFBAnQhAiABQf////8BSwRADAQLQdm+wgAtAAAaQQQhBSACQQQQsAQiBEUNAwsgBCAGIAIQzwQhAiAAIAk6AAwgACABNgIIIAAgAjYCBCAAIAE2AgAMAQsCQAJAAkACQAJAAkACQCAJQQFrDgIGAQALIApFDQEMAgsgCkUNAQsCQCABKAIIIgQgAigCCCIFSQRAIAVBAnQhBCAFQf////8BSwRADAULIAIoAgQhAkHZvsIALQAAGkEEIQYgBEEEELAEIgdFDQQgByACIAQQzwQhAiADIAU2AhwgAyACNgIYIAMgBTYCFCADQQhqIANBFGogARDSAQwBCyABKAIEIQcCQCAERQRAQQQhBUEAIQEMAQsgBEECdCEBIARB/////wFLBEAMBAtB2b7CAC0AABpBBCEGIAFBBBCwBCIFRQ0DCyAFIAcgARDPBCEBIAMgBDYCHCADIAE2AhggAyAENgIUIANBCGogA0EUaiACENIBC0EBIQECQCAJQQFGBEAgA0EANgIQIAMoAggiAkEESQ0BIAMoAgwgAkECdBC5BCADQoCAgIDAADcCCAwBCyAJQQEgAygCEBshAQsgACADKQIINwIAIAAgAToADCAAQQhqIANBEGooAgA2AgAMBAsCQAJAAkBBfyABKAIIIgcgAigCCCIIRyAHIAhJGyIGDQAgB0ECdCEEIAhBAnQhBSACKAIEQQRrIQwgASgCBCELA0AgBARAIAVFDQMgBSAMaiEGIAVBBGshBUF/IAYoAgAiBiAEQQRrIgQgC2ooAgAiDUcgBiANSxsiBkUNAQwCCwtBf0EAIAUbIQYLAkACQAJAIAZB/wFxDgIBAgALIAIoAgQhBQJAIAhFBEBBBCEGQQAhAgwBCyAIQQJ0IQIgCEH/////AUsEQEEAIQQMBQtB2b7CAC0AABpBBCEEIAJBBBCwBCIGRQ0ECyAGIAUgAhDPBCECIAMgCDYCHCADIAI2AhggAyAINgIUIANBCGogA0EUaiABEIACIAAgAykCCDcCACAAQQhqIANBEGooAgAiATYCACAAIApBASABGzoADAwHCyAAQQhqQbjcwQApAgA3AgAgAEGw3MEAKQIANwIADAYLIAEoAgQhCwsCQAJAIAdFBEBBBCEFQQAhAQwBCyAHQQJ0IQEgB0H/////AUsEQEEAIQQMAgtB2b7CAC0AABpBBCEEIAFBBBCwBCIFRQ0BCyAFIAsgARDPBCEBIAMgBzYCHCADIAE2AhggAyAHNgIUIANBCGoiBCADQRRqIAIQgAJBASEBAkAgCUEBRgRAIANBADYCECADKAIIQQRJDQEgBBDRAwwBCyAJQQEgAygCEBshAQsgACADKQIINwIAIAAgAToADCAAQQhqIANBEGooAgA2AgAMBQsgBCABEKgEAAsgBCACEKgEAAsgBiABEKgEAAsgBiAEEKgEAAsgAigCBCEFAkACQCACKAIIIgFFBEBBBCEGQQAhAgwBCyABQQJ0IQIgAUH/////AUsEQAwCC0HZvsIALQAAGkEEIQQgAkEEELAEIgZFDQELIAYgBSACEM8EIQIgACAKOgAMIAAgATYCCCAAIAI2AgQgACABNgIADAELIAQgAhCoBAALIANBIGokAA8LIAUgAhCoBAALtQoBCX8jAEHAB2siAiQAIAJBmAVqIgQgAUGgAhDPBBogAkKAgICAMDcDuAcgAkGEA2ohByMAQbACayIDJAACQAJAIAQoAqQCIgYgBCgCoAIiCUcEQCAGIAlrIghB4ABsIgFBAEggCEHVqtUKS3INAUHZvsIALQAAGkEIIQUgAUEIELAEIgpFDQEgA0EIaiIBIARBoAIQzwQaIAMgBjYCrAIgAyAJNgKoAiAKIAlB4ABsIAFqIAhB4ABsEM8EGgwCC0EIIQoMAQsgBSABEKgEAAsgByAINgIIIAcgCjYCBCAHIAg2AgAgA0GwAmokACACKAKEAyEGIAIoAogDIQUCQCACKAKMAyIBQQNGBEAgBSgCBCEEIAUoAgAhASACQegAaiAFQQhqQZgCEM8EGiAGBEAgBSAGQeAAbBC5BAsgAiAENgIMIAIgATYCCCACQRBqIAJB6ABqQdgAEM8EGiACQZgFaiACQQhqEPUDIAIoApwFIQEgAigCmAUhAyACKAKgBSIEQQJHDQEgASgCBCEHIAEoAgAhCSACQZADaiABQQhqQdgAEM8EGiADBEAgASADQTBsELkECyACQZgFaiACQcABahD1AyACKAKcBSEBIAIoApgFIQMgAigCoAUiBEECRw0BIAEoAgQhCiABKAIAIQUgAkHoA2ogAUEIakHYABDPBBogAwRAIAEgA0EwbBC5BAsgAkGYBWogAkGgAmoQ9QMgAigCnAUhASACKAKYBSEDIAIoAqAFIgRBAkcNASABKAIEIQYgASgCACEEIAJBwARqIAFBCGpB2AAQzwQaIAMEQCABIANBMGwQuQQLIAAgAikD6AQ3A/ABIABByAFqIAIpA8AENwMAIABB6AFqIAJB4ARqKQMANwMAIABB4AFqIAJB2ARqKQMANwMAIABB2AFqIAJB0ARqKQMANwMAIABB0AFqIAJByARqKQMANwMAIABB+AFqIAJB8ARqKQMANwMAIABBgAJqIAJB+ARqKQMANwMAIABBiAJqIAJBgAVqKQMANwMAIABBkAJqIAJBiAVqKQMANwMAIABBmAJqIAJBkAVqKQMANwMAIAAgBjYCxAEgACAENgLAASAAIAk2AgAgACAHNgIEIAAgAikDkAM3AwggAEEQaiACQZgDaikDADcDACAAQRhqIAJBoANqKQMANwMAIABBIGogAkGoA2opAwA3AwAgAEEoaiACQbADaikDADcDACAAQdgAaiACQeADaikDADcDACAAQdAAaiACQdgDaikDADcDACAAQcgAaiACQdADaikDADcDACAAQUBrIAJByANqKQMANwMAIABBOGogAkHAA2opAwA3AwAgACACKQO4AzcDMCAAIAo2AmQgACAFNgJgIABBiAFqIAJBiARqKQMANwMAIABBgAFqIAJBgARqKQMANwMAIABB+ABqIAJB+ANqKQMANwMAIABB8ABqIAJB8ANqKQMANwMAIABB6ABqIAIpA+gDNwMAIABBuAFqIAJBuARqKQMANwMAIABBsAFqIAJBsARqKQMANwMAIABBqAFqIAJBqARqKQMANwMAIABBoAFqIAJBoARqKQMANwMAIABBmAFqIAJBmARqKQMANwMAIAAgAikDkAQ3A5ABIAJBwAdqJAAPCyACIAE2AqAFIAIgBTYCnAUgAiAGNgKYBUG8jsAAQSsgAkGYBWpBvJTAAEHMlMAAEL4DAAsgAiAENgKgBSACIAE2ApwFIAIgAzYCmAVBvI7AAEErIAJBmAVqQdyTwABBrJTAABC+AwALsAoCAX8QfiMAQdABayIDJAAgASkDACEOIAEpAwghDyABKQMQIRAgASkDGCERIAEpAyAhEiABKQMoIRNBKCEBA0AgA0HwAGogASACaikDACIFIBNCABC9AyADQYABaiAFIBJCABC9AyADQZABaiAFIBFCABC9AyADQaABaiAFIBBCABC9AyADQbABaiAFIA9CABC9AyADQcABaiAFIA5CABC9AyADQeAAaiADKQNwIgkgDXwiCkIAQv3/8//P///5iX8QvQMgA0HQAGogA0HoAGopAwAiBUKr1f7///+//7l/QgAQvQMgA0FAayAFQv//z4rr///VHkIAEL0DIANBMGogBUKk7MO1j9S0mOcAQgAQvQMgA0EgaiAFQr+llJzP8NK75ABCABC9AyADQRBqIAVC19mumuT26Y3LAEIAEL0DIAMgBUKazf/Lo73EgBpCABC9AyADQQhqKQMAIAwgAykDwAEiDHwiBSADQbgBaikDACAHIAMpA7ABIgd8IgsgB1StfCALIANBqAFqKQMAIAMpA6ABIgcgCHwiCCAHVK18IAggA0GYAWopAwAgAykDkAEiByAGfCIGIAdUrXwgBiADQYgBaikDACADKQOAASIHIAR8IgQgB1StfCAEIANB+ABqKQMAIAkgClatfHwiCSAEVK18fCIEIAZUrXx8IgYgCFStfHwiCCALVK18fCILIAMpAwB8IgcgC1StfCAHIAcgA0EYaikDACAIIAggAykDEHwiCFatfCAIIAggA0EoaikDACAGIAYgAykDIHwiBlatfCAGIAYgA0E4aikDACAEIAQgAykDMHwiBFatfCAEIAQgA0HIAGopAwAgAykDQCINIAl8IgkgDVStfCAJIANB2ABqKQMAIAogAykDUCIKfCAKVK18fCINIAlUrXx8IgRWrXx8IgZWrXx8IghWrXx8IgdWrXwgBSALVq0gA0HIAWopAwAgBSAMVK18fHwhDCABQQhrIgFBeEcNAAsCQAJAIAxCms3/y6O9xIAaVg0AIAxCms3/y6O9xIAaUgRAIAQhBSAGIQogCCELIAchCQwCCyAHQtfZrprk9umNywBWDQACQCAHQtfZrprk9umNywBSBEAgBCEFIAYhCiAIIQsgByEJDAELIAhCv6WUnM/w0rvkAFYNAULX2a6a5PbpjcsAIQkgCEK/pZScz/DSu+QAUgRAIAQhBSAGIQogCCELDAELIAZCpOzDtY/UtJjnAFYNAUK/pZScz/DSu+QAIQsgBkKk7MO1j9S0mOcAUgRAIAQhBSAGIQoMAQsgBEL//8+K6///1R5WDQFCpOzDtY/UtJjnACEKIARC///Piuv//9UeUgRAIAQhBQwBC0L//8+K6///1R4hBSANQqrV/v///7//uX9WDQELQprN/8ujvcSAGiEMDAELIARC///Piuv//9UefSIKIA1Cq9X+////v/+5f1StIgt9IQUgBkKk7MO1j9S0mOcAfSIJIARC///Piuv//9UeVCAKIAtUcq0iBH0hCiAIQr+llJzP8NK75AB9Ig4gBkKk7MO1j9S0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A0EgaiADQTBqIAIQgAIgAigCACIBBEAgAigCBCABQQJ0ELkEC0EBIQICQCAHQQFGBEAgA0EANgIoIAMoAiBBBEkNASADQSBqENEDDAELIAdBASADKAIoGyECCyAAIAMpAiA3AgAgACACOgAMIABBCGogA0EoaigCADYCAAwDCyADQThqIAJBCGooAgA2AgAgAyACKQIANwMwIANBIGogA0EwaiABEIACIAEoAgAiAgRAIAEoAgQgAkECdBC5BAsCQCAHQQFxBEAgA0EANgIoQQEhAiADKAIgQQRJDQEgA0EgahDRAwwBC0ECIAdrQQEgAygCKBshAgsgACADKQIgNwIAIAAgAjoADCAAQQhqIANBKGooAgA2AgAMAgsgAkENaiEEAkACQAJAIAVBAWsOAgABAgsgAEEBOgAMIAAgAikCADcCACAAIAQvAAA7AA0gAEEIaiACQQhqKAIANgIAIABBD2ogBEECai0AADoAAAwCCyAAQQA6AAwgACACKQIANwIAIAAgBC8AADsADSAAQQhqIAJBCGooAgA2AgAgAEEPaiAEQQJqLQAAOgAADAELIABBAjoADCAAIAIpAgA3AgAgACAELwAAOwANIABBCGogAkEIaigCADYCACAAQQ9qIARBAmotAAA6AAALIAEoAgAiAEUNACABKAIEIABBAnQQuQQLIANBQGskAAucCgIBfxB+IwBBwAFrIgMkACABKQMAIQ4gASkDCCEPIAEpAxAhECABKQMYIREgASkDICESIAEpAyghE0EoIQEDQCADQeAAaiABIAJqKQMAIgUgE0IAEL0DIANB8ABqIAUgEkIAEL0DIANBgAFqIAUgEUIAEL0DIANBkAFqIAUgEEIAEL0DIANBoAFqIAUgD0IAEL0DIANBsAFqIAUgDkIAEL0DIANB0ABqIAMpA2AiCSANfCIKQv3/8//P///5iX9+IgVCq9X+////v/+5f0IAEL0DIANBQGsgBUL//8+K6///1R5CABC9AyADQTBqIAVCpOzDtY/UtJjnAEIAEL0DIANBIGogBUK/pZScz/DSu+QAQgAQvQMgA0EQaiAFQtfZrprk9umNywBCABC9AyADIAVCms3/y6O9xIAaQgAQvQMgA0EIaikDACAMIAMpA7ABIgx8IgUgA0GoAWopAwAgByADKQOgASIHfCILIAdUrXwgCyADQZgBaikDACADKQOQASIHIAh8IgggB1StfCAIIANBiAFqKQMAIAMpA4ABIgcgBnwiBiAHVK18IAYgA0H4AGopAwAgAykDcCIHIAR8IgQgB1StfCAEIANB6ABqKQMAIAkgClatfHwiCSAEVK18fCIEIAZUrXx8IgYgCFStfHwiCCALVK18fCILIAMpAwB8IgcgC1StfCAHIAcgA0EYaikDACAIIAggAykDEHwiCFatfCAIIAggA0EoaikDACAGIAYgAykDIHwiBlatfCAGIAYgA0E4aikDACAEIAQgAykDMHwiBFatfCAEIAQgA0HIAGopAwAgAykDQCINIAl8IgkgDVStfCAJIANB2ABqKQMAIAogAykDUCIKfCAKVK18fCINIAlUrXx8IgRWrXx8IgZWrXx8IghWrXx8IgdWrXwgBSALVq0gA0G4AWopAwAgBSAMVK18fHwhDCABQQhrIgFBeEcNAAsCQAJAIAxCms3/y6O9xIAaVg0AIAxCms3/y6O9xIAaUgRAIAQhBSAGIQogCCELIAchCQwCCyAHQtfZrprk9umNywBWDQACQCAHQtfZrprk9umNywBSBEAgBCEFIAYhCiAIIQsgByEJDAELIAhCv6WUnM/w0rvkAFYNAULX2a6a5PbpjcsAIQkgCEK/pZScz/DSu+QAUgRAIAQhBSAGIQogCCELDAELIAZCpOzDtY/UtJjnAFYNAUK/pZScz/DSu+QAIQsgBkKk7MO1j9S0mOcAUgRAIAQhBSAGIQoMAQsgBEL//8+K6///1R5WDQFCpOzDtY/UtJjnACEKIARC///Piuv//9UeUgRAIAQhBQwBC0L//8+K6///1R4hBSANQqrV/v///7//uX9WDQELQprN/8ujvcSAGiEMDAELIARC///Piuv//9UefSIKIA1Cq9X+////v/+5f1StIgt9IQUgBkKk7MO1j9S0mOcAfSIJIARC///Piuv//9UeVCAKIAtUcq0iBH0hCiAIQr+llJzP8NK75AB9Ig4gBkKk7MO1j9S0mOcAVCAEIAlWcq0iBH0hCyAHQtfZrprk9umNywB9IgYgCEK/pZScz/DSu+QAVCAEIA5Wcq0iBH0hCSAMIAdC19mumuT26Y3LAFQgBCAGVnKtfUKazf/Lo73EgBp9IQwgDULVqoGAgIDAgMYAfCENCyAAIA03AyggACAFNwMgIAAgCjcDGCAAIAs3AxAgACAJNwMIIAAgDDcDACADQcABaiQAC9sJAgh+An8jAEHAAWsiCiQAIAogASkDACABQQhqKQMAENUCIApBIGoiCyABKQMQIAFBGGopAwAQ1QIgCkFAayABKQMgIAFBKGopAwAQ1QIgCkHgAGogASkDMCABQThqKQMAENUCIApBuAFqQeDSwAApAwA3AwAgCkGwAWpB2NLAACkDADcDACAKQagBakHQ0sAAKQMANwMAIApByNLAACkDADcDoAEgCkGAAWogCkGgAWogCxCfAUKRgICAgICAgAghAiAKKQMIIgUgCikDiAF8IgQgBVQgBCAKKQMQIgMgCikDkAF8IgUgA1QgBSAKKQMYIgYgCikDmAF8IgMgBlStfCIGIAVUcq18IgcgBFRyrSAKKQOAASAKKQMAfHwiCCEEAkACQCAIQpGAgICAgICACFEEQEIBIQIgA0IBUQ0BIAMhBCAGIAeEQgBSDQELIAIgBFgNACAHIQIgBiEEIAMhBQwBCyADQgF9IQUgBiADUK0iAn0hBCAHIAIgBlatIgN9IQIgCELu/////////3dC7/////////93IAMgB1YbfCEIC0KRgICAgICAgAghCSACIAIgACkDKHwiAlYgAiAEIAQgACkDMHwiBFYgBCAFIAApAzh8IgMgBVStfCIGIARUcq18IgcgAlRyrSAAKQMgIAh8fCIIIQICQAJAIAhCkYCAgICAgIAIUQRAQgEhCSADQgFRDQEgAyECIAYgB4RCAFINAQsgAiAJWg0AIAchAiAGIQQgAyEFDAELIANCAX0hBSAGIANQrSICfSEEIAcgAiAGVq0iA30hAiAIQu7/////////d0Lv/////////3cgAyAHVht8IQgLIAAgBTcDOCAAIAQ3AzAgACACNwMoIAAgCDcDICAKQbgBakHg0sAAKQMANwMAIApBsAFqQdjSwAApAwA3AwAgCkGoAWpB0NLAACkDADcDACAKQcjSwAApAwA3A6ABIApBgAFqIApBoAFqIApB4ABqEJ8BQpGAgICAgICACCECIAopA0giBSAKKQOIAXwiBCAFVCAEIAopA1AiAyAKKQOQAXwiBSADVCAFIAopA1giBiAKKQOYAXwiAyAGVK18IgYgBVRyrXwiByAEVHKtIAopA4ABIAopA0B8fCIIIQQCQAJAIAhCkYCA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A0EoaiIIIAFBKGopAwA3AwAgA0EwaiIJIAFBMGopAwA3AwAgA0E4aiIKIAFBOGopAwA3AwAgAyABKQMANwMAIARBAXFFDQEMAgsgACABKQMANwMAIABBIGogASkDIDcDACAAQQhqIAFBCGopAwA3AwAgAEEQaiABQRBqKQMANwMAIABBGGogAUEYaikDADcDACAAQShqIAFBKGopAwA3AwAgAEEwaiABQTBqKQMANwMAIABBOGogAUE4aikDADcDAAwDCwNAIANBgAFqIAMQYyAKIANBuAFqKQMANwMAIAkgA0GwAWopAwA3AwAgCCADQagBaikDADcDACALIANBoAFqKQMANwMAIAcgA0GYAWopAwA3AwAgBiADQZABaikDADcDACAFIANBiAFqKQMANwMAIAMgAykDgAE3AwAgAkICgyACQgGIIQJQDQALCyADQeAAaiADKQMgNwMAIANByABqIAUpAwA3AwAgA0HQAGogBikDADcDACADQdgAaiAHKQMANwMAIANB6ABqIAgpAwA3AwAgA0HwAGogCSkDADcDACADQfgAaiAKKQMANwMAIAMgAykDADcDQCACQgFSBEADQCADQYABaiIKIANBQGsiCxBjIANB+ABqIANBuAFqIgEpAwA3AwAgA0HwAGogA0GwAWoiBCkDADcDACADQegAaiADQagBaiIFKQMANwMAIANB4ABqIANBoAFqIgYpAwA3AwAgA0HYAGogA0GYAWoiBykDADcDACADQdAAaiADQZABaiIIKQMANwMAIANByABqIANBiAFqIgkpAwA3AwAgAyADKQOAATcDQCACQgKDUEUEQCAKIAMgCxAdIANBOGogASkDADcDACADQTBqIAQpAwA3AwAgA0EoaiAFKQMANwMAIANBIGogBikDADcDACADQRhqIAcpAwA3AwAgA0EQaiAIKQMANwMAIANBCGogCSkDADcDACADIAMpA4ABNwMACyACQgRUIAJCAYghAkUNAAsLIAAgAykDADcDACAAQThqIANBOGopAwA3AwAgAEEwaiADQTBqKQMANwMAIABBKGogA0EoaikDADcDACAAQSBqIANBIGopAwA3AwAgAEEYaiADQRhqKQMANwMAIABBEGogA0EQaikDADcDACAAQQhqIANBCGopAwA3AwAMAQsgAEIANwMgIABBGGpBqNjAACkDADcDACAAQRBqQaDYwAApAwA3AwAgAEEIakGY2MAAKQMANwMAIABBkNjAACkDADcDACAAQShqQgA3AwAgAEEwakIANwMAIABBOGpCADcDAAsgA0GAA2okAAvBCQIJfwd+IwBBwAFrIgMkACADQeAAaiIKQQA6AAAgA0HYAGoiBkIANwMAIANB0ABqQgA3AwAgA0HIAGpCADcDACADQgA3A0AgAkEfIAIgAkEfTxsiBWshCSACBEAgASAJaiEHIANBQGshCANAIAVBCCAFIAVBCE8bIgtrIQUCQCAEQQRPBEAgAyAHLQAAOgBgDAELIAggByALEM8EGgsgByALaiEHIAhBCGohCCAEQQFqIQQgBQ0ACwsgA0L//////////z83A2hBACEFIANBADoAcCAKIQQCQAJAA0ACfwJAAn8gBkUgBiAKRnJFBEAgBCEIIAZBAWoMAQtBACEIIARFDQEgBCEGQQALIQcgBUEJRgRAQQAhBEEJIQVBBAwCCyADQegAaiAFaiEEIAMgBjYCnAEgBUEBaiEFQQgMAQtBACEHQQAhBEEECyADQZgBaiIGaiAENgIAAkAgAygCnAEiBEUEQCADIAMpA1g3A5ABIAMgAykDUDcDiAEgAyADKQNINwOAASADIAMpA0A3A3ggBiADQfgAahB0IAMpA5gBUA0BIANBDGogA0GsAWopAgA3AgAgA0EUaiADQbQBaikCADcCACADQRxqIANBvAFqKAIANgIAIAMgAykCpAE3AgQgAyADKAKgATYCACADQdgAakIANwMAIANB0ABqQgA3AwAgA0IANwNIIANCgAI3A0AgBiADQUBrEHQgAykDmAFQDQMgA0E4aiADQbgBaikDADcDACADQTBqIANBsAFqKQMANwMAIANBKGogA0GoAWopAwA3AwAgAyADKQOgATcDICACQSBPBEAgAUEBayECIANByABqIgRBEGohAQNAIAMgA0EgahCHASACIAlqMQAAIQwgAUIANwMAIARBCGpCADcDACAEQgA3AwAgAyAMNwNAIANBmAFqIANBQGsQdCADKQOYAVANBiADIAMpAwAiDCADKQOgAXwiEDcDACADIAwgEFatIhIgAykDqAF8Ig0gAykDCHwiDjcDCCADIAMpAxAiDCADKQOwAXwiESANIBJUrSANIA5WrXx8Ig83AxAgAyADKQMYIAMpA7gBfCAMIBFWrSAPIBFUrXx8Ig03AxgCQCANQqnAxomuzpOyMFQNAAJAIA1CqcDGia7Ok7IwUg0AIA9C3bCFjOi2kai4f1QNASAPQt2whYzotpGouH9SDQAgDkKNlcfDltLawJd/VA0BIBBCxvrzw+2Co5A8Vg0AIA5CjZXHw5bS2sCXf1ENAQsgAyAQQsf688PtgqOQPH03AwAgAyAOQvLquLzpraW/6ABC8+q4vOmtpb/oACAQQsf688PtgqOQPFQbfCIMNwMIIAMgDyAMIA5arSIRfSISQqPP+vOXye7XxwB8Igw3AxAgAyANIAwgElStIA8gEVStUa19QqnAxomuzpOyMH03AxgLIAlBAWsiCQ0ACwsgACADKQMANwMAIABBGGogA0EYaikDADcDACAAQRBqIANBEGopAwA3AwAgAEEIaiADQQhqKQMANwMAIANBwAFqJAAPCyAEIAQtAAAgAygCoAEtAABxOgAAIAghBCAHIQYMAQsLQYjQwQAQuwQAC0HA0cEAELsEAAtBsNHBABC7BAAL6QgCDH8EfiMAQeADayICJAAgAkEoaiAAQShqIgQpAwA3AwAgAkEgaiAAQSBqIgUpAwA3AwAgAkEYaiAAQRhqIgYpAwA3AwAgAkEQaiAAQRBqIgcpAwA3AwAgAkEIaiAAQQhqIggpAwA3AwAgAkE4aiAAQThqKQMANwMAIAJBQGsgAEFAaykDADcDACACQcgAaiAAQcgAaikDADcDACACQdAAaiAAQdAAaikDADcDACACQdgAaiAAQdgAaikDADcDACACIAApAwA3AwAgAiAAKQMwNwMwIABBMGoiA0HQ98AAQTAQ0AQEQCAAQqvV/v///7//uX8gACkDMCIOfTcDMCAAQn9CACAOQqvV/v///7//uX9WGyIOIAApAzgiD30iEEL//8+K6///1R58IhE3AzggAEJ/QgAgECARVq0gDiAOIA9UrX18Qn9RGyIOIAApA0AiD30iEEKk7MO1j9S0mOcAfCIRNwNAIABCf0IAIBAgEVatIA4gDiAPVK19fEJ/URsiDiAAKQNIIg99IhBCv6WUnM/w0rvkAHwiETcDSCAAQn9CACAQIBFWrSAOIA4gD1StfXxCf1EbIg4gACkDUCIPfSIQQtfZrprk9umNywB8IhE3A1AgAEJ/QgAgECARVq0gDiAOIA9UrX18Qn9RGyAAKQNYfUKazf/Lo73EgBp8NwNYCyACQegBaiAEKQMANwMAIAJB4AFqIAUpAwA3AwAgAkHYAWogBikDADcDACACQdABaiAHKQMANwMAIAJByAFqIAgpAwA3AwAgAkH4AWogA0EIaikDADcDACACQYACaiADQRBqKQMANwMAIAJBiAJqIANBGGopAwA3AwAgAkGQAmogA0EgaikDADcDACACQZgCaiADQShqKQMANwMAIAIgACkDADcDwAEgAiADKQMANwPwASACQfgCaiABQdgAaiIDKQMANwMAIAJB8AJqIAFB0ABqIgQpAwA3AwAgAkHoAmogAUHIAGoiBSkDADcDACACQeACaiABQUBrIgYpAwA3AwAgAkHYAmogAUE4aiIHKQMANwMAIAJBqAJqIAFBCGoiCCkDADcDACACQbACaiABQRBqIgkpAwA3AwAgAkG4AmogAUEYaiIKKQMANwMAIAJBwAJqIAFBIGoiCykDADcDACACQcgCaiABQShqIgwpAwA3AwAgAiABKQMwNwPQAiACIAEpAwA3A6ACIAJB4ABqIg0gAkHAAWogAkGgAmoQkgEgAkGoA2ogAykDADcDACACQaADaiAEKQMANwMAIAJBmANqIAUpAwA3AwAgAkGQA2ogBikDADcDACACQYgDaiAHKQMANwMAIAJBuANqIAgpAwA3AwAgAkHAA2ogCSkDADcDACACQcgDaiAKKQMANwMAIAJB0ANqIAspAwA3AwAgAkHYA2ogDCkDADcDACACIAEpAzA3A4ADIAIgASkDADcDsAMgAkGQAWogAiACQYADahCSASAAIA1B4AAQzwQaIAJB4ANqJAAL6QgCDH8EfiMAQeADayICJAAgAkEoaiAAQShqIgQpAwA3AwAgAkEgaiAAQSBqIgUpAwA3AwAgAkEYaiAAQRhqIgYpAwA3AwAgAkEQaiAAQRBqIgcpAwA3AwAgAkEIaiAAQQhqIggpAwA3AwAgAkE4aiAAQThqKQMANwMAIAJBQGsgAEFAaykDADcDACACQcgAaiAAQcgAaikDADcDACACQdAAaiAAQdAAaikDADcDACACQdgAaiAAQdgAaikDADcDACACIAApAwA3AwAgAiAAKQMwNwMwIABBMGoiA0H4zsEAQTAQ0AQEQCAAQqvV/v///7//uX8gACkDMCIOfTcDMCAAQn9CACAOQqvV/v///7//uX9WGyIOIAApAzgiD30iEEL//8+K6///1R58IhE3AzggAEJ/QgAgECARVq0gDiAOIA9UrX18Qn9RGyIOIAApA0AiD30iEEKk7MO1j9S0mOcAfCIRNwNAIABCf0IAIBAgEVatIA4gDiAPVK19fEJ/URsiDiAAKQNIIg99IhBCv6WUnM/w0rvkAHwiETcDSCAAQn9CACAQIBFWrSAOIA4gD1StfXxCf1EbIg4gACkDUCIPfSIQQtfZrprk9umNywB8IhE3A1AgAEJ/QgAgECARVq0gDiAOIA9UrX18Qn9RGyAAKQNYfUKazf/Lo73EgBp8NwNYCyACQegBaiAEKQMANwMAIAJB4AFqIAUpAwA3AwAgAkHYAWogBikDADcDACACQdABaiAHKQMANwMAIAJByAFqIAgpAwA3AwAgAkH4AWogA0EIaikDADcDACACQYACaiADQRBqKQMANwMAIAJBiAJqIANBGGopAwA3AwAgAkGQAmogA0EgaikDADcDACACQZgCaiADQShqKQMANwMAIAIgACkDADcDwAEgAiADKQMANwPwASACQfgCaiABQdgAaiIDKQMANwMAIAJB8AJqIAFB0ABqIgQpAwA3AwAgAkHoAmogAUHIAGoiBSkDADcDACACQeACaiABQUBrIgYpAwA3AwAgAkHYAmogAUE4aiIHKQMANwMAIAJBqAJqIAFBCGoiCCkDADcDACACQbACaiABQRBqIgkpAwA3AwAgAkG4AmogAUEYaiIKKQMANwMAIAJBwAJqIAFBIGoiCykDADcDACACQcgCaiABQShqIgwpAwA3AwAgAiABKQMwNwPQAiACIAEpAwA3A6ACIAJB4ABqIg0gAkHAAWogAkGgAmoQkgEgAkGoA2ogAykDADcDACACQaADaiAEKQMANwMAIAJBmANqIAUpAwA3AwAgAkGQA2ogBikDADcDACACQYgDaiAHKQMANwMAIAJBuANqIAgpAwA3AwAgAkHAA2ogCSkDADcDACACQcgDaiAKKQMANwMAIAJB0ANqIAspAwA3AwAgAkHYA2ogDCkDADcDACACIAEpAzA3A4ADIAIgASkDADcDsAMgAkGQAWogAiACQYADahCSASAAIA1B4AAQzwQaIAJB4ANqJAAL7QgCDH8EfiMAQfAAayIFJAAgBUEoaiABEIMCIAUoAjAhDCAFKAIsIRAgBSgCKCENIAVBCGogBUE8aigCADYCACAFIAUpAjQ3AwAgBUEQaiAFEO4BAkACQAJAIAIoAgAiCkGAgICAeEYNACACKAIEIQggAigCCCECIAUoAhQhCSAFIAUoAhgiATYCJCAFIAI2AiAgASACRw0BIAVBADYCMCAFQoCAgICAATcCKCABBEBBACECA0ACfiACIAhqLQAARQRAQgAhEUIAIRJCACETQgAMAQsgByAJaiIGKQMAIREgBkEYaikDACETIAZBEGopAwAhEiAGQQhqKQMACyEUIAUoAiggAkYEQCAFQShqEJoDCyAFKAIsIAdqIgYgETcDACAGQRhqIBM3AwAgBkEQaiASNwMAIAZBCGogFDcDACAFIAJBAWoiAjYCMCAHQSBqIQcgASACRw0ACwsgBUHIAGoiASAFQTBqKAIANgIAIAUgBSkCKDcDQCAFKAIQIgIEQCAJIAJBBXQQuQQLIAVBGGogASgCADYCACAFIAUpA0A3AxAgCkUNACAIIAoQuQQLIAUoAhAhCSAFKAIYIQEgBSgCFCEIIAVBADoAMCAFIAg2AiggBSAIIAFBBXRqNgIsIAVBQGsgBUEoahCzAiAFKAJEIQogBSgCSCIGQQJPBEAgBkEBdiEHIAZBBXQgCmpBIGshAiAKIQEDQCABKQMAIREgASACKQMANwMAIAFBGGoiCykDACEUIAsgAkEYaiILKQMANwMAIAFBEGoiDikDACESIA4gAkEQaiIOKQMANwMAIAFBCGoiDykDACETIA8gAkEIaiIPKQMANwMAIAIgETcDACALIBQ3AwAgDiASNwMAIA8gEzcDACACQSBrIQIgAUEgaiEBIAdBAWsiBw0ACwsgBSgCQCELIAkEQCAIIAlBBXQQuQQLIAMEQCADKAIIIgEgAygCAEYEQCADEJ4DCyADKAIEIAFBDGxqIgIgDDYCCCACIBA2AgQgAiANNgIAIAMgAUEBajYCCAsgBARAAkAgBkUEQEEIIQgMAQsgBkEFdCEBIAZB////H0sEQEEAIQcMBAtBACECQdm+wgAtAAAaQQghByABQQgQsAQiCEUNAyAGQQV0IQwgBiEBA0AgAiAMRg0BIAIgCGoiByACIApqIgkpAwA3AwAgB0EYaiAJQRhqKQMANwMAIAdBEGogCUEQaikDADcDACAHQQhqIAlBCGopAwA3AwAgAkEgaiECIAFBAWsiAQ0ACwsgBCgCCCIBIAQoAgBGBEAgBBCeAwsgBCgCBCABQQxsaiICIAY2AgggAiAINgIEIAIgBjYCACAEIAFBAWo2AggLIAAgBjYCCCAAIAo2AgQgACALNgIAIAUoAgAiAARAIAUoAgQgAEEFdBC5BAsgAyANRXJFBEAgECANQQV0ELkECyAFQfAAaiQADwsgBUEANgIoIAVBIGogBUEkaiAFQShqQYDdwAAQiAQACyAHIAEQqAQAC9YdARF/IwBBsAhrIgUkAAJAIAACfgJAAkACQAJAAkACQAJAAkACQCABKAIEIgMEQCABIAMgAyABKAIIIgcgAyAHSRsiBGs2AgQgASABKAIAIgMgBEEwbGo2AgAgB0UNAiAFQfgHaiIHIANBKGopAwA3AwAgBUHwB2oiBiADQSBqKQMANwMAIAVB6AdqIgggA0EYaikDADcDACAFQeAHaiIJIANBEGopAwA3AwAgBUHYB2oiCiADQQhqKQMANwMAIAUgAykDADcD0AcgBEEBRg0DIAVB8ARqIgsgA0HYAGopAwA3AwAgBUHoBGoiDCADQdAAaikDADcDACAFQeAEaiINIANByABqKQMANwMAIAVB2ARqIg4gA0FAaykDADcDACAFQdAEaiISIANBOGopAwA3AwAgBSADKQMwNwPIBCAFQaACaiIBIAVB0AdqIg8gBUHIBGoiEBAoIAUoAqACDQQgBUHwBmogBUEEciAFQagCakHgABDPBEHgABDPBBogBEECTQ0FIARBA0YNBiAFQagIaiADQbgBaikDADcDACAFQaAIaiADQbABaikDADcDACAFQZgIaiADQagBaikDADcDACAFQZAIaiADQaABaikDADcDACAFQYgIaiADQZgBaikDADcDACAKIANB6ABqKQMANwMAIAkgA0HwAGopAwA3AwAgCCADQfgAaikDADcDACAGIANBgAFqKQMANwMAIAcgA0GIAWopAwA3AwAgBSADKQOQATcDgAggBSADKQNgNwPQByAEQQRNDQcgBEEFRg0IIAVBoAVqIANBmAJqKQMANwMAIAVBmAVqIANBkAJqKQMANwMAIAVBkAVqIANBiAJqKQMANwMAIAVBiAVqIANBgAJqKQMANwMAIAVBgAVqIANB+AFqKQMANwMAIBIgA0HIAWopAwA3AwAgDiADQdABaikDADcDACANIANB2AFqKQMANwMAIAwgA0HgAWopAwA3AwAgCyADQegBaikDADcDACAFIAMpA/ABNwP4BCAFIAMpA8ABNwPIBCMAQcAMayIDJAAgAyAPQeAAEM8EIgNB4ABqIBBB4AAQzwQhByADQfABaiIEQQBB4AAQ0QQaAkACQAJAAkACQAJAAkAgAyAEEJAEBEAgByAEEJAEDQELIANB8AFqIgRBAEHgABDRBBogAyAEEJAEBEAgByAEEJAEDQELIANB8AFqENQCIANB0AVqIANBwAJqKQMANwMAIANByAVqIANBuAJqKQMANwMAIANBwAVqIANBsAJqKQMANwMAIANBuAVqIANBqAJqKQMANwMAIANBsAVqIANBoAJqKQMANwMAIANB4AVqIANBgANqKQMANwMAIANB6AVqIANBiANqKQMANwMAIANB8AVqIANBkANqKQMANwMAIANB+AVqIANBmANqKQMANwMAIANBgAZqIANBoANqKQMANwMAIAMgAykDmAI3A6gFIAMgAykD+AI3A9gFIANBsAZqIANB0ANqKQMANwMAIANBqAZqIANByANqKQMANwMAIANBoAZqIANBwANqKQMANwMAIANBmAZqIANBuANqKQMANwMAIANBkAZqIANBsANqKQMANwMAIAMgAykDqAM3A4gGIANBuAZqIhMgBxBqIANBoApqIANBCGoiBikDADcDACADQagKaiADQRBqIggpAwA3AwAgA0GwCmogA0EYaiIJKQMANwMAIANBuApqIANBIGoiCikDADcDACADQcAKaiADQShqIgspAwA3AwAgA0HQCmogA0E4aiIMKQMANwMAIANB2ApqIANBQGsiDSkDADcDACADQeAKaiADQcgAaiIOKQMANwMAIANB6ApqIANB0ABqIg8pAwA3AwAgA0HwCmogA0HYAGoiECkDADcDACADIAMpAwA3A5gKIAMgAykDMDcDyAogA0HYCGoiESADQZgKakHgABDPBBogA0G4CWoiBCAREGogA0GgC2ogCykDADcDACADQZgLaiAKKQMANwMAIANBkAtqIAkpAwA3AwAgA0GIC2ogCCkDADcDACADQYALaiAGKQMANwMAIANBsAtqIAwpAwA3AwAgA0G4C2ogDSkDADcDACADQcALaiAOKQMANwMAIANByAtqIA8pAwA3AwAgA0HQC2ogECkDADcDACADIAMpAwA3A/gKIAMgAykDMDcDqAsgA0H4B2oiESAEIANB+ApqEFQgA0HgC2ogBikDADcDACADQegLaiAIKQMANwMAIANB8AtqIAkpAwA3AwAgA0H4C2ogCikDADcDACADQYAMaiALKQMANwMAIANBkAxqIAwpAwA3AwAgA0GYDGogDSkDADcDACADQaAMaiAOKQMANwMAIANBqAxqIA8pAwA3AwAgA0GwDGogECkDADcDACADIAMpAwA3A9gLIAMgAykDMDcDiAwgBCADQagFaiADQdgLahByIANBmAdqIgYgESAEEMsBIAQgBiADQdgFahDLASATIAQQkAQCQCADKAL0ASIERQ0AIAQgBEEMbEETakF4cSIIakEJaiIERQ0AIAMoAvABIAhrIAQQuQQLDQAgA0HwAWoiBCADQeAAEM8EGiADQdgLaiIIIAQQ9QMgAygC3AshBCADKALYCyEGIAMoAuALIglBAkcNASAEKAIEIQkgBCgCACEKIAggBEEIakHYABDPBBogBgRAIAQgBkEwbBC5BAsgA0GIC2ogA0HgC2opAwA3AwAgA0GQC2ogA0HoC2opAwA3AwAgA0GYC2ogA0HwC2opAwA3AwAgA0GgC2ogA0H4C2opAwA3AwAgA0GwC2ogA0GIDGopAwA3AwAgA0G4C2ogA0GQDGopAwA3AwAgA0HAC2ogA0GYDGopAwA3AwAgA0HIC2ogA0GgDGopAwA3AwAgA0HQC2ogA0GoDGopAwA3AwAgAyAJNgL8CiADIAo2AvgKIAMgAykD2As3A4ALIAMgAykDgAw3A6gLIANB8AFqIgQgB0HgABDPBBogA0HYC2ogBBD1AyADKALcCyEEIAMoAtgLIQcgAygC4AsiBkECRw0CIAQoAgQhCCAEKAIAIQkgA0GYCmogBEEIakHYABDPBBogBwRAIAQgB0EwbBC5BAsgA0HoC2ogA0GgCmoiBikDADcDACADQfALaiADQagKaikDADcDACADQfgLaiADQbAKaikDADcDACADQYAMaiADQbgKaikDADcDACADQZAMaiADQcgKaikDADcDACADQZgMaiADQdAKaikDADcDACADQaAMaiADQdgKaikDADcDACADQagMaiADQeAKaikDADcDACADQbAMaiADQegKaikDADcDACADIAg2AtwLIAMgCTYC2AsgAyADKQOYCjcD4AsgAyADKQPACjcDiAwgA0HYCGoiBCADQfgKahClASADQQA2AqAKIANCgICAgBA3ApgKIANBAzoAkAIgA0EgNgKAAiADQQA2AowCIANBwOrAADYCiAIgA0EANgL4ASADQQA2AvABIAMgA0GYCmoiBzYChAIgBCADQfABaiIEEMwCDQUgA0HIAWogBigCADYCACADIAMpApgKNwPAASADQbgJaiIIIANBqAtqEKUBIANBADYCoAogA0KAgICAEDcCmAogA0EDOgCQAiADQSA2AoACIANBADYCjAIgA0HA6sAANgKIAiADQQA2AvgBIANBADYC8AEgAyAHNgKEAiAIIAQQzAINBSADQdgBaiAGKAIANgIAIAMgAykCmAo3A9ABIAcgA0HYC2oQpQEgA0EANgKACCADQoCAgIAQNwL4ByADQQM6AJACIANBIDYCgAIgA0EANgKMAiADQcDqwAA2AogCIANBADYC+AEgA0EANgLwASADIANB+AdqIgY2AoQCIAcgBBDMAg0FIANB6AFqIANBgAhqKAIANgIAIAMgAykC+Ac3A+ABIAQgA0GIDGoQpQEgA0EANgLgBSADQoCAgIAQNwLYBSADQQM6AJgIIANBIDYCiAggA0EANgKUCCADQcDqwAA2ApAIIANBADYCgAggA0EANgL4ByADIANB2AVqNgKMCCAEIAYQzAINBSADQbAFaiADQeAFaigCADYCACADIAMpAtgFNwOoBSADQQU2ArwGIANB+O3AADYCuAYgA0IENwLEBiADIANBqAVqrUKAgICA4AeENwOwByADIANB4AFqrUKAgICA4AeENwOoByADIANB0AFqrUKAgICA4AeENwOgByADIANBwAFqrUKAgICA4AeENwOYByADIANBmAdqNgLABiABQQRqIANBuAZqEN0CIAMoAqgFIgQEQCADKAKsBSAEELkECyADKALgASIEBEAgAygC5AEgBBC5BAsgAygC0AEiBARAIAMoAtQBIAQQuQQLIAMoAsABIgQEQCADKALEASAEELkECyABQQE2AgAMAwsgAUEIaiADQcABEM8EGiABQQA2AgAMAgsgAyAJNgLgCyADIAQ2AtwLIAMgBjYC2AsMAgsgAyAGNgLgCyADIAQ2AtwLIAMgBzYC2AsMAQsgA0HADGok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////D1YgCUIAUiAJUCAJQiCGIApCIIiEIQogA0EEaiEDIAlCIIghCSACIAE2AmggAUEBaiEBGw0ACwsgBCAFKAIANgIAIAIgAikDYDcDUCAAKAIIIgEgACgCAEYEQCAAEJ4DCyAAKAIEIAFBDGxqIgMgAikDUDcCACADQQhqIAJB2ABqIgQoAgA2AgAgACABQQFqNgIIIAJBQGspAwAhCSACKQM4IQpBACEDIAJB6ABqIgVB0LPBACgCADYCACACQcizwQApAgA3A2AgCSAKhFBFBEBBASEBA0AgAigCYCABQQFrRgRAIAJB4ABqEKIDCyACKAJkIANqIAo+AgAgCkL/////D1YgCUIAUiAJUCAJQiCGIApCIIiEIQogA0EEaiEDIAlCIIghCSACIAE2AmggAUEBaiEBGw0ACwsgBCAFKAIANgIAIAIgAikDYDcDUCAAKAIIIgEgACgCAEYEQCAAEJ4DCyAAKAIEIAFBDGxqIgMgAikDUDcCACADQQhqIAJB2ABqKAIANgIAIAAgAUEBajYCCCACQfAAaiQAC7EIAgF/Cn4jAEGQAmsiAiQAIAJBsAFqIAEpAxgiBUKblK/D8rWo3oZ/fiIEQm1CABC9AyACQaABaiAEQn9CABC9AyACQZABaiAEQv///////////wBCABC9AyACQYABaiACKQOgASIEIAEpAxB8IgcgAkG4AWopAwAgBSACKQOwASIDfCADVK18fCIFQpuUr8Pytajehn9+IgNCbUIAEL0DIAJB8ABqIANCf0IAEL0DIAIgA0L///////////8AQgAQvQMgAkHgAGogAikDcCIDIAQgASkDCHwiBiAFIAdUrSACQagBaikDACIKIAQgB1atfHx8Igt8IgcgAkGIAWopAwAgBSACKQOAASIFfCAFVK18fCIFQpuUr8Pytajehn9+IghCbUIAEL0DIAJB0ABqIAhCf0IAEL0DIAJBEGogCEL///////////8AQgAQvQMgAkFAayACKQNQIgggAyACKQOQASIMIAEpAwB8IgkgBiALVq0gCiAEIAZWrXx8fCIEfCIGIAUgB1StIAJB+ABqKQMAIgogAyAHVq18fHwiC3wiByACQegAaikDACAFIAIpA2AiBXwgBVStfHwiBUKblK/D8rWo3oZ/fiIDQm1CABC9AyACQTBqIANCf0IAEL0DIAJBIGogA0L///////////8AQgAQvQMCQAJAIAJBKGopAwAgAkEYaikDACACQQhqKQMAIAQgCVStIAJBmAFqKQMAIAkgDFStfHwiCSACKQMAfCIDIAlUrXwgAyAGIAtWrSAKIAQgBlatfHx8IgQgA1StfCIGIAIpAxB8IgMgBlStfCADIAJB2ABqKQMAIgYgBCAEIAh8IgRWrXwgBCAFIAdUrSAGIAcgCFStfHx8IgYgBFStfHwiBCADVK18IgMgAikDIHwiByADVK18IAcgAkE4aikDACIIIAQgBCACKQMwIgN8IgRWrXwgBCAEIAggAyADIAZ8IgNWrXwgAyACQcgAaikDACAFIAIpA0AiBXwgBVStfHwiCCADVK18fCIEVq18fCIFIAdUrXwiBkIAUw0AAkAgBkL///////////8AWgRAQn8hAyAFQn9SBEAgBCEHIAUhA0L///////////8AIQYMBAsgBEJ/UQ0BIAQhB0L///////////8AIQYMAwsgBCEHIAUhAwwCC0J/IQcgCEJtWg0AQv///////////wAhBgwBCyAEQgF8IgMgCEJtVK0iCX0hByAFQgF8IgogBEJ/UiADIAlUcq0iBH0hAyAGIAVCf1IgBCAKVnKtfUL///////////8AfSEGIAhCE3whCAsgAiAINwPYASACIAc3A9ABIAIgAzcDyAEgAiAGNwPAASACIAJB4AFqIgE2AowCIAJBADYC9AEgAkEANgLgASACIAJBwAFqNgKIAiAAIAEQrwIgAkGQAmokAAvvBwEPfyMAQcANayIBJAAgAUGACWoiAkHgx8EAQaACEM8EGiACEK4CIgJB4ABqEK4CGiACQcABahCuAhogAUGgAmoiAyACQaACEM8EGgJAAkACQEHAxcEAIANBMBDQBA0AQfDFwQAgAUHQAmpBMBDQBA0AQaDGwQAgAUGAA2pBMBDQBA0AQdDGwQAgAUGwA2pBMBDQBA0AQYDHwQAgAUHgA2pBMBDQBA0AQbDHwQAgAUGQBGoiBEEwENAERQ0BCyABQcAEaiIKIABBoAIQzwQaIAogAEGgAmoiAhCoAiABQfAEaiIHIABB0AJqEKgCIAFBoAVqIgggAEGAA2oiAxCoAiABQdAFaiINIABBsANqEKgCIAFBgAZqIg4gAEHgA2oiBBCoAiABQbAGaiIPIABBkARqEKgC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f34iBEJtQgAQvQMgAkGgAWogBEJ/QgAQvQMgAkGQAWogBEL///////////8AQgAQvQMgAkGAAWogAikDoAEiBCABKQMQfCIHIAJBuAFqKQMAIAUgAikDsAEiA3wgA1StfHwiBUKblK/D8rWo3oZ/fiIDQm1CABC9AyACQfAAaiADQn9CABC9AyACIANC////////////AEIAEL0DIAJB4ABqIAIpA3AiAyAEIAEpAwh8IgYgBSAHVK0gAkGoAWopAwAiCiAEIAdWrXx8fCILfCIHIAJBiAFqKQMAIAUgAikDgAEiBXwgBVStfHwiBUKblK/D8rWo3oZ/fiIIQm1CABC9AyACQdAAaiAIQn9CABC9AyACQRBqIAhC////////////AEIAEL0DIAJBQGsgAikDUCIIIAMgAikDkAEiDCABKQMAfCIJIAYgC1atIAogBCAGVq18fHwiBHwiBiAFIAdUrSACQfgAaikDACIKIAMgB1atfHx8Igt8IgcgAkHoAGopAwAgBSACKQNgIgV8IAVUrXx8IgVCm5Svw/K1qN6Gf34iA0JtQgAQvQMgAkEwaiADQn9CABC9AyACQSBqIANC////////////AEIAEL0DAkACQCACQShqKQMAIAJBGGopAwAgAkEIaikDACAEIAlUrSACQZgBaikDACAJIAxUrXx8IgkgAikDAHwiAyAJVK18IAMgBiALVq0gCiAEIAZWrXx8fCIEIANUrXwiBiACKQMQfCIDIAZUrXwgAyACQdgAaikDACIGIAQgBCAIfCIEVq18IAQgBSAHVK0gBiAHIAhUrXx8fCIGIARUrXx8IgQgA1StfCIDIAIpAyB8IgcgA1StfCAHIAJBOGopAwAiCCAEIAQgAikDMCIDfCIEVq18IAQgBCAIIAMgAyAGfCIDVq18IAMgAkHIAGopAwAgBSACKQNAIgV8IAVUrXx8IgggA1StfHwiBFatfHwiBSAHVK18IgZCAFMNAAJAIAZC////////////AFoEQEJ/IQMgBUJ/UgRAIAQhByAFIQNC////////////ACEGDAQLIARCf1ENASAEIQdC////////////ACEGDAMLIAQhByAFIQMMAgtCfyEHIAhCbVoNAEL///////////8AIQYMAQsgBEIBfCIDIAhCbVStIgl9IQcgBUIBfCIKIARCf1IgAyAJVHKtIgR9IQMgBiAFQn9SIAQgClZyrX1C////////////AH0hBiAIQhN8IQgLIAAgCDcDGCAAIAc3AxAgACADNwMIIAAgBjcDACACQcABaiQAC7cIAQl/QQwhCCMAQRBrIgUkAAJAIAEoAggiAkEMTQRAAkAgAkUEQEEIIQYMAQsgAkEwbCIJQQBIIAJBqtWqFUtyDQIgASgCBCEKQdm+wgAtAAAaQQghAyAJQQgQsAQiBkUNAiACIQEDQCAHIAlGDQEgBiAHaiIDIAcgCmoiBCkDADcDACADQShqIARBKGopAwA3AwAgA0EgaiAEQSBqKQMANwMAIANBGGogBEEYaikDADcDACADQRBqIARBEGopAwA3AwAgA0EIaiAEQQhqKQMANwMAIAdBMGohByABQQFrIgENAAsLIAUgAjYCDCAFIAY2AgggBSACNgIEIAJBDEkEQCAFQQRqIAJBDCACayIEEJcDIAUoAgggBSgCDCIGQTBsaiEBIARBAk8EQCACQX9zQQxqIgJBB3EhAyAEQQJrQQdPBEAgAkF4cSEHA0AgAUIANwMAIAFBKGpCADcDACABQSBqQgA3AwAgAUEYakIANwMAIAFBEGpCADcDACABQQhqQgA3AwAgAUEwakIANwMAIAFBOGpCADcDACABQUBrQgA3AwAgAUHIAGpCADcDACABQdAAakIANwMAIAFB2ABqQgA3AwAgAUHgAGpCADcDACABQegAakIANwMAIAFB8ABqQgA3AwAgAUH4AGpCADcDACABQYABakIANwMAIAFBiAFqQgA3AwAgAUG4AWpCADcDACABQbABakIANwMAIAFBqAFqQgA3AwAgAUGgAWpCADcDACABQZgBakIANwMAIAFBkAFqQgA3AwAgAUHAAWpCADcDACABQcgBakIANwMAIAFB0AFqQgA3AwAgAUHYAWpCADcDACABQeABakIANwMAIAFB6AFqQgA3AwAgAUHwAWpCADcDACABQfgBakIANwMAIAFBgAJqQgA3AwAgAUGIAmpCADcDACABQZACakIANwMAIAFBmAJqQgA3AwAgAUHIAmpCADcDACABQcACakIANwMAIAFBuAJqQgA3AwAgAUGwAmpCADcDACABQagCakIANwMAIAFBoAJqQgA3AwAgAUH4AmpCADcDACABQfACakIANwMAIAFB6AJqQgA3AwAgAUHgAmpCADcDACABQdgCakIANwMAIAFB0AJqQgA3AwAgAUGAA2ohASAHQQhrIgcNAAsLIAMEQANAIAFCADcDACABQShqQgA3AwAgAUEgakIANwMAIAFBGGpCADcDACABQRBqQgA3AwAgAUEIakIANwMAIAFBMGohASADQQFrIgMNAAsLIAQgBmpBAWshBgsgAUIANwMAIAFBKGpCADcDACABQSBqQgA3AwAgAUEYakIANwMAIAFBEGpCADcDACABQQhqQgA3AwAgBkEBaiEICyAAIAUpAgQ3AgAgAEEIaiAINgIAIAVBEGokAA8LQdzywABBN0Gs88AAEPQDAAsgAyAJEKgEAAv0BwEPfyMAQcACayICJAAgAkE4akIANwMAIAJBMGpCADcDACACQShqQgA3AwAgAkEgakIANwMAIAJBGGpCADcDACACQRBqQgA3AwAgAkEIakIANwMAIAJCADcDAAJAAkAgASACEI8EBEAgAUFAayIDIAIQjwQNAQsgAkHgAGoiAyABKQMgNwMAIAJB2ABqIgQgAUEYaikDADcDACACQdAAaiIFIAFBEGopAwA3AwAgAkHIAGoiBiABQQhqKQMANwMAIAJB6ABqIgcgAUEoaikDADcDACACQfAAaiIIIAFBMGopAwA3AwAgAkH4AGoiCSABQThqKQMANwMAIAJBiAFqIAFByABqKQMANwMAIAJBkAFqIAFB0ABqKQMANwMAIAJBmAFqIAFB2ABqKQMANwMAIAIgASkDADcDQCACIAEpA0A3A4ABIAJBuAFqIAFB+ABqKQMANwMAIAJBsAFqIAFB8ABqKQMANwMAIAJBqAFqIAFB6ABqKQMANwMAIAIgASkDYDcDoAEgAEFAayACQYABahDlAiAAQThqIAkpAwA3AwAgAEEwaiAIKQMANwMAIABBKGogBykDADcDACAAQSBqIAMpAwA3AwAgAEEYaiAEKQMANwMAIABBEGogBSkDADcDACAAQQhqIAYpAwA3AwAgACACKQNANwMADAELIAJB4AFqIgQgASkDIDcDACACQdgBaiIFIAFBGGopAwA3AwAgAkHQAWoiBiABQRBqKQMANwMAIAJByAFqIgcgAUEIaikDADcDACACQegBaiIIIAFBKGopAwA3AwAgAkHwAWoiCSABQTBqKQMANwMAIAJB+AFqIgogAUE4aikDADcDACACQYgCaiILIANBCGopAwA3AwAgAkGQAmoiDCADQRBqKQMANwMAIAJBmAJqIg0gA0EYaikDADcDACACIAEpAwA3A8ABIAIgAykDADcDgAIgAkG4AmoiAyABQfgAaikDADcDACACQbACaiIOIAFB8ABqKQMANwMAIAJBqAJqIg8gAUHoAGopAwA3AwAgAkGgAmoiECABKQNgNwMAIABBOGogCikDADcDACAAQTBqIAkpAwA3AwAgAEEoaiAIKQMANwMAIABBIGogBCkDADcDACAAQRhqIAUpAwA3AwAgAEEQaiAGKQMANwMAIABBCGogBykDADcDACAAIAIpA8ABNwMAIABB+ABqIAMpAwA3AwAgAEHwAGogDikDADcDACAAQegAaiAPKQMANwMAIABB4ABqIBApAwA3AwAgAEHYAGogDSkDADcDACAAQdAAaiAMKQMANwMAIABByABqIAspAwA3AwAgACACKQOAAjcDQAsgAkHAAmokAAuKDAIOfwt+IwBBsAFrIgMkACABKAIIIgUgAigCCCIEIAQgBUkbIQcgAiABIAQgBUsiBhsiCCgCACEPIAgoAgQhCCABIAIgBhsiASgCACELIAEoAgQhCgJAIAUgBCAGGyIBRQ0AIAFBMGwhCSAHQQFqIQwgA0EMaiEFIANB9ABqIQQgCCEBIAohAgNAAkAgBCACKQIANwIAIARBKGogAkEoaikCADcCACAEQSBqIAJBIGopAgA3AgAgBEEYaiACQRhqKQIANwIAIARBEGogAkEQaikCADcCACAEQQhqIAJBCGopAgA3AgAgA0EQaiADQfgAaikCADcDACADQRhqIANBgAFqKQIANwMAIANBIGogA0GIAWopAgA3AwAgA0EoaiADQZABaikCADcDACADQTBqIANBmAFqKQIANwMAIANBOGogA0GgAWooAgA2AgAgAyADKQJwNwMIIANByABqIAVBCGopAgA3AwAgA0HQAGogBUEQaikCADcDACADQdgAaiAFQRhqKQIANwMAIANB4ABqIAVBIGopAgA3AwAgA0HoAGogBUEoaikCADcDACADIAUpAgA3A0AgDEEBayIMRQ0AQprN/8ujvcSAGiETIANBQGsiBikDCCISIAEpAwh8IhEgElQgESAGKQMQIhIgASkDEHwiFiASVCAWIBYgBikDGCISIAEpAxh8IhQg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AgA2AgAgAyABKQIANwMQIANBBGoiBCADQRBqIAIQgAJBASEBAkAgB0EBRgRAIANBADYCDCADKAIEQQRJDQEgBBDRAwwBCyAHQQEgAygCDBshAQsgACADKQIENwIAIAAgAToADCAAQQhqIANBDGooAgA2AgAMCQsgA0EYaiABQQhqKAIANgIAIAMgASkCADcDECADQQRqIgEgAiADQRBqEKoBQQAhBCADQQA2AgwgARDrAyADKAIMIgVFDQMgBUECdCIBIAMoAggiAmpBBGsoAgAEQCAFIQQMBAsgAkEEayEEIAUhAgJAA0AgAUUEQEEAIQEMAgsgAkEBayECIAEgBGogAUEEayEBKAIARQ0ACyACQQFqIgEgBSIESw0ECyADIAE2AgwgASEEDAMLQQAhBAsgA0EYaiABQQhqKAIANgIAIAMgASkCADcDECADQQRqIAIgA0EQahCqASAEQQEgAygCDBshAQwCCyAAQQhqQbjcwQApAgA3AgAgAEGw3MEAKQIANwIADAMLQQEhASAEIAMoAgRBAnZPDQAgA0EEahDRAwsgACADKQIENwIAIAAgAToADCAAQQhqIANBDGooAgA2AgAMAwsgAigCBCEIAkAgAigCCCICRQRAQQQhBwwBCyACQQJ0IQUgAkH/////AUsEQAwDC0HZvsIALQAAGkEEIQYgBUEEELAEIgdFDQILIAcgCCAFEM8EIQUgAEECIARrOgAMIAAgAjYCCCAAIAU2AgQgACACNgIACyABKAIAIgBFDQEgASgCBCAAQQJ0ELkEDAELIAYgBRCoBAALIANBIGokAAvTBwIMfwF+IwBBoAJrIgMkACACpyEEAkACQAJAAkACQCACQgFYBEAgBEEBaw0EDAELIANB6AFqIgUgAUEoaikDADcDACADQeABaiIGIAFBIGopAwA3AwAgA0HYAWoiByABQRhqKQMANwMAIANB0AFqIgggAUEQaikDADcDACADQcgBaiIJIAFBCGopAwA3AwAgA0H4AWoiCiABQThqKQMANwMAIANBgAJqIgsgAUFAaykDADcDACADQYgCaiIMIAFByABqKQMANwMAIANBkAJqIg0gAUHQAGopAwA3AwAgA0GYAmoiDiABQdgAaikDADcDACADIAEpAwA3A8ABIAMgASkDMDcD8AEgAyADQcABakHgABDPBCEBIARBAXFFDQEMAgsgA0HoAWogAUEoaikDADcDACADQeABaiABQSBqKQMANwMAIANB2AFqIAFBGGopAwA3AwAgA0HQAWogAUEQaikDADcDACADQcgBaiABQQhqKQMANwMAIANB+AFqIAFBOGopAwA3AwAgA0GAAmogAUFAaykDADcDACADQYgCaiABQcgAaikDADcDACADQZACaiABQdAAaikDADcDACADQZgCaiABQdgAaikDADcDACADIAEpAwA3A8ABIAMgASkDMDcD8AEgACADQcABakHgABDPBBoMAwsDQCABQcABaiIEIAEQaiABIARB4AAQzwQaIAJCAoMgAkIBiCECUA0ACwsgBSABQShqKQMANwMAIAYgAUEgaikDADcDACAHIAFBGGopAwA3AwAgCCABQRBqKQMANwMAIAkgAUEIaikDADcDACAKIAFBOGopAwA3AwAgCyABQUBrKQMANwMAIAwgAUHIAGopAwA3AwAgDSABQdAAaikDADcDACAOIAFB2ABqKQMANwMAIAEgASkDADcDwAEgASABKQMwNwPwASABQeAAaiABQcABakHgABDPBBogAkIBUgRAA0AgAUHAAWoiBCABQeAAaiIFEGogBSAEQeAAEM8EGiACQgKDUEUEQCAEIAEgBRBUIAEgBEHgABDPBBoLIAJCBFQgAkIBiCECRQ0ACwsgACABQeAAEM8EGgwBCyAAQgA3AzAgAEEoakGg2sAAKQMANwMAIABBIGpBmNrAACkDADcDACAAQRhqQZDawAApAwA3AwAgAEEQakGI2sAAKQMANwMAIABBCGpBgNrAACkDADcDACAAQfjZwAApAwA3AwAgAEE4akIANwMAIABBQGtCADcDACAAQcgAakIANwMAIABB0ABqQgA3AwAgAEHYAGpCADcDAAsgA0GgAmokAAvVDAIKfwh+IwBB0ABrIgQkACADBEAgBEEIaiIDQdTFwAAoAgA2AgAgBEHMxcAAKQIANwMAIAIEQCAEEKIDIAQoAgQgAjYCACAEQQE2AggLIARByABqIAMoAgA2AgAgBCAEKQMANwNAIAAoAggiBSAAKAIARgRAIAAQngMLIAAoAgQgBUEMbGoiAyAEKQNANwIAIANBCGogBEHIAGooAgA2AgAgACAFQQFqNgIICyACBEAgASACQQV0aiELIARBKGohDCAEQRhqIQ1B1MXA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ViAJQt2whYzotpGouH9WciEVIAYgBX0hFELH+vPD7YKjkDwgBH0hDCALIA9UIAogEFZyrSAOIA19fEKpwMaJrs6TsjB8CyEJIAIpAyAiEiEEIAEpAyAiEyEHAn4CQAJ+AkAgEiATUg0AIAJBKGopAwAiAyABQShqKQMAIgdSBEAgAyEEDAELIAJBMGopAwAiBSABQTBqKQMAIgdSBEAgBSEEDAELIAMhCCACQThqKQMAIgQhCyAFIAQgAUE4aikDACIHUQ0BGgsgBCAHWg0BIAJBKGopAwAhAyABQShqKQMAIQggAkEwaikDACEFIAFBOGopAwAhCyACKQM4IQQgAUEwaikDAAsiBiAFfSIPIAQgC1atIhB9IQcgCCADfSIKIA8gEFQgBSAGVnKtIgZ9IQUgBiAKViADIAhWciECIAsgBH0hBCATIBJ9DAELQt2whYzotpGouH8gAkEoaikDACINIAFBKGopAwAiDn0iCyACQTBqKQMAIgUgAUEwaikDACIDVCAFIAN9IgYgAikDOCIEIAFBOGopAwAiBVStIgNUcq0iD30iEH0iCiAGIAN9IgNCjZXHw5bS2sCXf1ZCjZXHw5bS2sCXfyADfSIIIAQgBX0iBkLH+vPD7YKjkDxWrSIEVHKtIgN9IQUgEELdsIWM6LaRqLh/ViADIApWciECIAggBH0hB0LH+vPD7YKjkDwgBn0hBCANIA5UIAsgD1RyrSATIBJ9fEKpwMaJrs6TsjB8CyEDIAAgDDcDGCAAIBQ3AxAgACARNwMIIABBOGogBDcDACAAQTBqIAc3AwAgAEEoaiAFNwMAIAAgAyACrX03AyAgACAJIBWtfTcDAAuUBwECfyMAQeADayICJAACQAJAIAEgAkEAQeAAENEEIgIQkAQEQCABQeAAaiIDIAIQkAQNAQsgAkGIAWogAUEoaikDADcDACACQYABaiABQSBqKQMANwMAIAJB+ABqIAFBGGopAwA3AwAgAkHwAGogAUEQaikDADcDACACQegAaiABQQhqKQMANwMAIAJBmAFqIAFBOGopAwA3AwAgAkGgAWogAUFAaykDADcDACACQagBaiABQcgAaikDADcDACACQbABaiABQdAAaikDADcDACACQbgBaiABQdgAaikDADcDACACIAEpAwA3A2AgAiABKQMwNwOQASACQegBaiABQYgBaikDADcDACACQeABaiABQYABaikDADcDACACQdgBaiABQfgAaikDADcDACACQdABaiABQfAAaikDADcDACACQcgBaiABQegAaikDADcDACACQZgCaiABQbgBaikDADcDACACQZACaiABQbABaikDADcDACACQYgCaiABQagBaikDADcDACACQYACaiABQaABaikDADcDACACQfgBaiABQZgBaikDADcDACACIAEpA2A3A8ABIAIgASkDkAE3A/ABIABB4ABqIAJBwAFqEKMCIAAgAkHgAGpB4AAQzwQaDAELIAJByAJqIAFBKGopAwA3AwAgAkHAAmogAUEgaikDADcDACACQbgCaiABQRhqKQMANwMAIAJBsAJqIAFBEGopAwA3AwAgAkGoAmogAUEIaikDADcDACACQdgCaiABQThqKQMANwMAIAJB4AJqIAFBQGspAwA3AwAgAkHoAmogAUHIAGopAwA3AwAgAkHwAmogAUHQAGopAwA3AwAgAkH4AmogAUHYAGopAwA3AwAgAiABKQMANwOgAiACIAEpAzA3A9ACIAJBqANqIANBKGopAwA3AwAgAkGgA2ogA0EgaikDADcDACACQZgDaiADQRhqKQMANwMAIAJBkANqIANBEGopAwA3AwAgAkGIA2ogA0EIaikDADcDACACQdgDaiABQbgBaikDADcDACACQdADaiABQbABaikDADcDACACQcgDaiABQagBaikDADcDACACQcADaiABQaABaikDADcDACACQbgDaiABQZgBaikDADcDACACIAMpAwA3A4ADIAIgASkDkAE3A7ADIAAgAkGgAmpB4AAQzwRB4ABqIAJBgANqQeAAEM8EGgsgAkHgA2okAAvDBwIJfwJ+IwBBQGoiAyQAAkAgAi0ADCIHQQFGBEAgACABKQIANwIAIABBCGogAUEIaikCADcCACACKAIAIgBFDQEgAigCBCAAQQJ0ELkEDAELAkACQAJAAkACQAJAIAEtAAwiCEEBaw4CAAIBCyAAIAIpAgA3AgAgAEEIaiACQQhqKQIANwIADAQLIAdFDQEMAgsgB0UNAQsgA0EYaiABQQhqIgcoAgA2AgAgAyABKQIAIgw3AxAgA0EoaiACQQhqIgYoAgA2AgAgAyACKQIAIg03AyACfyAMpyIEIA2nIgVJBEAgA0E4aiAGKAIANgIAIAMgAikCADcDMCADQQRqIANBMGogA0EQaiIBENIBIAEMAQsgA0E4aiAHKAIANgIAIAMgASkCADcDMCADQQRqIANBMGogA0EgaiIBENIBIAUhBCABCyECIAQEQCACKAIEIARBAnQQuQQLQQEhAgJAIAhBAUYEQCADQQA2AgwgAygCBCIBQQRJDQEgAygCCCABQQJ0ELkEIANCgICAgMAANwIEDAELIAhBASADKAIMGyECCyAAIAMpAgQ3AgAgACACOgAMIABBCGogA0EMaigCADYCAAwCCwJAAkBBfyABKAIIIgQgAigCCCIFRyAEIAVJGyIGDQAgBEECdCEEIAVBAnQhBSABKAIEQQRrIQogAigCBEEEayELA0AgBARAIAVFDQMgBCAKaiEGIAUgC2ohCSAEQQRrIQQgBUEEayEFQX8gCSgCACIJIAYoAgAiBkcgBiAJSRsiBkUNAQwCCwtBf0EAIAUbIQYLAkACQCAGQf8BcQ4CAQIACyADQThqIAJBCGooAgA2AgAgAyACKQIANwMwIANBIGogA0EwaiABEIACIAEoAgAiAgRAIAEoAgQgAkECdBC5BAsgACADKQIgNwIAIABBCGogA0EoaigCACIBNgIAIAAgB0EBIAEbOgAMDAMLIABBCGpBuNzBACkCADcCACAAQbDcwQApAgA3AgAgAigCACIARQ0BIAIoAgQgAEECdBC5BAwBCyADQThqIAFBCGooAgA2AgAgAyABKQIANwMwIANBIGogA0EwaiACEIACIAIoAgAiAQRAIAIoAgQgAUECdBC5BAtBASECAkAgCEEBRgRAIANBADYCKCADKAIgQQRJDQEgA0EgahDRAwwBCyAIQQEgAygCKBshAgsgACADKQIgNwIAIAAgAjoADCAAQQhqIANBKGooAgA2AgAMAQsgASgCACIARQ0AIAEoAgQgAEECdBC5BAsgA0FAayQAC+gGAQ9/IwBBIGsiCyQAIAEoAgQhCCACKAIEIQUCQAJAAkACQCACKAIIIgogASgCCCIHTQRAIApFDQIgCkEBcQJAIApBAUYEQAwBCyAKQX5xIQ8gBSEDIAghAgNAIAIgAigCACIQIAMoAgBqIgwgBmoiETYCACACQQRqIgQgBCgCACIGIANBBGooAgBqIg0gDCAQSSAMIBFLcmoiBDYCACAEIA1JIAYgDUtyIQYgA0EI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GiAHIAQ2AowDIAcgCTYCiAMgCiAJQcABbCABaiAGQcABbBDPBBoMAgtBCCEKDAELIAMgARCoBAALIAggBjYCCCAIIAo2AgQgCCAGNgIAIAdBkANqJAAgAigCvAQhBCACKALABCEDIAIoAsQEIgFBAkYEQCADKAIEIQUgAygCACEBIAJBwAFqIANBCGpB+AIQzwQaIAQEQCADIARBwAFsELkECyACIAU2AgQgAiABNgIAIAJBCGogAkHAAWpBuAEQzwQaIAJByARqIgsgAhCgASAAQRhqIAJB4ARqIgwpAwA3AwAgAEEQaiACQdgEaiINKQMANwMAIABBCGogAkHQBGoiDikDADcDACAAIAIpA8gENwMAIAAgAikD6AQ3AyAgAEEoaiACQfAEaiIPKQMANwMAIABBMGogAkH4BGoiECkDADcDACAAQThqIAJBgAVqIhEpAwA3AwAgACACKQOIBTcDQCAAQcgAaiACQZAFaiISKQMANwMAIABB0ABqIAJBmAVqIhMpAwA3AwAgAEHYAGogAkGgBWoiFCkDADcDACAAQfgAaiACQcAFaiIGKQMANwMAIABB8ABqIAJBuAVqIgcpAwA3AwAgAEHoAGogAkGwBWoiCCkDADcDACAAIAIpA6gFNwNgIABBmAFqIAJB4AVqIgkpAwA3AwAgAEGQAWogAkHYBWoiCikDADcDACAAQYgBaiACQdAFaiIDKQMANwMAIAAgAikDyAU3A4ABIABBuAFqIAJBgAZqIgQpAwA3AwAgAEGwAWogAkH4BWoiBSkDADcDACAAQagBaiACQfAFaiIBKQMANwMAIAAgAikD6AU3A6ABIAsgAkH4AmoQoAEgAEHYAWogDCkDADcDACAAQdABaiANKQMANwMAIABByAFqIA4pAwA3AwAgACACKQPIBDcDwAEgACACKQPoBDcD4AEgAEHoAWogDykDADcDACAAQfABaiAQKQMANwMAIABB+AFqIBEpAwA3AwAgACACKQOIBTcDgAIgAEGIAmogEikDADcDACAAQZACaiATKQMANwMAIABBmAJqIBQpAwA3AwAgAEG4AmogBikDADcDACAAQbACaiAHKQMANwMAIABBqAJqIAgpAwA3AwAgACACKQOoBTcDoAIgAEHYAmogCSkDADcDACAAQdACaiAKKQMANwMAIABByAJqIAMpAwA3AwAg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CkHwAWogCCAJEKMBIABBFGogCkEcaigCADYCACAAIAopAhQ3AgwgCkHQA2okAA8LIAcgB0G0x8AAENYDAAtBBEEYEMoEAAsgCyAMEKgEAAtBCCAMEKgEAAsgBSAFQaTHwAAQ1gMAC8gFAQd/IwBBwAZrIgUkACAFQcAFaiIHIAFBQGsiCCACQUBrEM8BIAVBgAZqIgYgASACEM8BIAUgByAGEIcDIAcgBSAFEB0gBiABIAIQlgIgBUFAayIKIAcgBhDPASAFQcgEaiAFQQhqKQMANwMAIAVB0ARqIAVBEGopAwA3AwAgBUHYBGogBUEYaikDADcDACAFQegEaiAFQShqKQMANwMAIAVB8ARqIAVBMGopAwA3AwAgBUH4BGogBUE4aikDADcDACAFIAUpAwA3A8AEIAUgBSkDIDcD4AQgBiAFIAEQHSAFQYABaiILIAYgCBDPASAFQcABaiICIAggCBCWAiAFQYACaiIJIAogARDPASAGIAIgCRCHAyAHIAUgBhCWAiAFQcACaiICIAcQ5QIgBiACIAIQHSAHIAYgARDPASAFQYADaiIJIAcgChDPASAGIAEgCRDPASAHIAIgBhAdIAVBgARqIAcgCBDPASAFQcgDaiAFQYgDaikDADcDACAFQdADaiAFQZADaikDADcDACAFQdgDaiAFQZgDaikDADcDACAFQeADaiAFQaADaikDADcDACAFQegDaiAFQagDaikDADcDACAFQfADaiAFQbADaikDADcDACAFQfgDaiAFQbgDaikDADcDACAFQYgFaiAFQcgCaikDADcDACAFQZAFaiAFQdACaikDADcDACAFQZgFaiAFQdgCaikDADcDACAFIAUpA4ADNwPAAyAFIAUpA8ACNwOABSAFQbgFaiAFQfgCaikDADcDACAFQbAFaiAFQfACaikDADcDACAFQagFaiAFQegCaikDADcDACAFIAUpA+ACNwOgBSAGIAIgARAdIAcgBiAIEM8BIABBgAFqIAVBwARqIAsgAyAEEAcgAEGMAWogBUGABWogByADIAQQByAAIAVBwANqQYABEM8EGiAFQcAGaiQAC48HAQp/IwBB0ANrIggkAEHZvsIALQAAGgJAAkACQEEYQQQQsAQiDQRAAkAgASgCCCILRQRAQQghD0EIIQ4MAQsgC0EwbCIKQQBIIAtBqtWqFUty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7MO1j9S0mOcAUg0AQv//z4rr///VHiEWICMiHEL//8+K6///1R5SDQBCq9X+////v/+5fyEWIBoiHEKr1f7///+//7l/UQ0BCyAWIBxYDQAgJiEXICUhGSAeIRsgIyEcDAELICNC///Piuv//9UefSIWIBpCq9X+////v/+5f1StIhd9IRwgHkKk7MO1j9S0mOcAfSIZICNC///Piuv//9UeVCAWIBdUcq0iFn0hGyAlQr+llJzP8NK75AB9IhcgHkKk7MO1j9S0mOcAVCAWIBlWcq0iFn0hGSAmQtfZrprk9umNywB9IiMgJUK/pZScz/DSu+QAVCAWIBdWcq0iFn0hFyAYICZC19mumuT26Y3LAFQgFiAjVnKtfUKazf/Lo73EgBp9IRggGkLVqoGAgIDAgMYAfCEaCyACIBo3A4gMIAIgHDcDgAwgAiAbNwP4CyACIBk3A/ALIAIgFzcD6AsgAiAYNwPgCyACQeALahCPA0H/AXENAAsLIAJBuAxqIg4gAkHICmoiBCkDADcDACACQbAMaiIPIAJBwApqIgcpAwA3AwAgAkGoDGoiECACQbgKaiIIKQMANwMAIAJBoAxqIhIgAkGwCmoiCSkDADcDACACQZgMaiITIAJBqApqIgopAwA3AwAgAiACKQOgCjcDkAwgAkHQCmogAkHgC2oiCyACQZAMaiIMECEgAiAEKQMAQgF8IhY3A7gMIAIgBykDACIXIBZQrXwiFjcDsAwgAiAIKQMAIhkgFiAXVK18IhY3A6gMIAIgCSkDACIXIBYgGVStfCIWNwOgDCACIAopAwAiGSAWIBdUrXwiFjcDmAwgAiACKQOgCiAWIBlUrXw3A5AMIAsgDEEBEPoBIAJBgAtqIAEgCxAhIA4gBCkDADcDACAPIAcpAwA3AwAgECAIKQMANwMAIBIgCSkDADcDACATIAopAwA3AwAgAiACKQOgCjcDkAwgAkGwC2oiBCABIAwQISACKQOACyEuIAIpA4gLISwgAikDkAshKSACKQOYCyElIAIpA6ALISMgAikDqAshLyAEQdj6wABBMBDQBARAIAIpA9AKISQgAikD2AohHSACKQPgCiEfIAIpA+gKISEgAikD8AohHiACKQP4CiEoIAIpA9gLITkgAikD0AshJiACKQPICyEqIAIpA8ALITAgAikDuAshMSACKQOwCyEzQdj6wABB0PfAAEEwENAEIRQDQCACQYgMaiACQdgLaikDADcDACACQYAMaiACQdALaikDADcDACACQfgLaiACQcgLaikDADcDACACQfALaiACQcALaikDADcDACACQegLaiACQbgLaikDADcDACACIAIpA7ALNwPgCwJAIBQEQCACQq7V8v/////6wwA3A7gMIAJC/f+f6q7+/9syNwOwDCACQum6ppeayY70BzcDqAwgAkL69sqZmOa81Gw3A6AMIAJC6YDTh+qjo4pvNwOYDCACQoaE/Pfj5KyFBDcDkAwMAQsgDkGA+8AAKQMANwMAIA9B+PrAACkDADcDACAQQfD6wAApAwA3AwAgEkHo+sAAKQMANwMAIBNB4PrAACkDADcDACACQdj6wAApAwA3A5AMCwJAIAJB4AtqIAJBkAxqQTAQ0ARFBEBBACEIDAELQQAhCCACKQOIDCE1IAIpA4AMIRggAikD+AshICACKQPwCyEiIAIpA+gLIScgAikD4AshLQNAQgAhHEEoIQFCACEbQgAhGUIAIRdCACEWQgAhGgNAIAJBkAlqIAJB4AtqIAFqKQMAIisgNUIAEL0DIAJBoAlqICsgGEIAEL0DIAJBsAlqICsgIEIAEL0DIAJBwAlqICsgIkIAEL0DIAJB0AlqICsgJ0IAEL0DIAJB4AlqICsgLUIAEL0DIAJBgAlqIAIpA5AJIjIgGnwiK0IAQv3/8//P///5iX8QvQMgAkHwCGogAkGICWopAwAiGkKr1f7///+//7l/QgAQvQMgAkHgCGogGkL//8+K6///1R5CABC9AyACQdAIaiAaQqTsw7WP1LSY5wBCABC9AyACQcAIaiAaQr+llJzP8NK75ABCABC9AyACQbAIaiAaQtfZrprk9umNywBCABC9AyACQaAIaiAaQprN/8ujvcSAGkIAEL0DIAJBqAhqKQMAIAIpA+AJIjcgHHwiHCACQdgJaikDACACKQPQCSIaIBt8IhsgGlStfCAbIAJByAlqKQMAIAIpA8AJIhogGXwiGSAaVK18IBkgAkG4CWopAwAgAikDsAkiGiAXfCIXIBpUrXwgFyACQagJaikDACACKQOgCSIaIBZ8IhYgGlStfCAWIAJBmAlqKQMAICsgMlStfHwiGiAWVK18fCIWIBdUrXx8IhcgGVStfHwiGSAbVK18fCIyIAIp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AyACQYABaiAYICZCABC9AyACQZABaiAYICpCABC9AyACQaABaiAYIDBCABC9AyACQbABaiAYIDFCABC9AyACQcABaiAYIDNCABC9AyACQeAAaiAaIAIpA3AiGnwiIEIAQv3/8//P///5iX8QvQMgAkHQAGogAkHoAGopAwAiGEKr1f7///+//7l/QgAQvQMgAkFAayAYQv//z4rr///VHkIAEL0DIAJBMGogGEKk7MO1j9S0mOcAQgAQvQMgAkEgaiAYQr+llJzP8NK75ABCABC9AyACQRBqIBhC19mumuT26Y3LAEIAEL0DIAIgGEKazf/Lo73EgBpCABC9AyACQQhqKQMAIAIpA8ABIicgHHwiHCACQbgBaikDACACKQOwASIYIBt8IhsgGFStfCAbIAJBqAFqKQMAIAIpA6ABIhggGXwiGSAYVK18IBkgAkGYAWopAwAgAikDkAEiGCAXfCIXIBhUrXwgFyACQYgBaikDACACKQOAASIYIBZ8IhYgGFStfCAWIAJB+ABqKQMAIBogIFatfHwiGiAWVK18fCIWIBdUrXx8IhcgGVStfHwiGSAbVK18fCIYIAIpAwB8IiIgGFStfCAiICIgAkEYaikDACAZIBkgAikDEHwiG1atfCAbIBsgAkEoaikDACAXIBcgAikDIHwiGVatfCAZIBkgAkE4aikDACAWIBYgAikDMHwiF1atfCAXIBcgAkHIAGopAwAgGiACKQNAIhp8IhYgGlStfCAWIBYgAkHYAGopAwAgICACKQNQIhp8IBpUrXx8IhpWrXx8IhZWrXx8IhdWrXx8IhlWrXx8IhtWrXwgGCAcVK0gAkHIAWopAwAgHCAnVK18fHwhHCABQQhrIgFBeEcNAAsgAgJ+AkAgHEKazf/Lo73EgBpWDQACQCAcQprN/8ujvcSAGlIEQCAcITMgGyExIBkhMCAXISogFiEmDAELIBtC19mumuT26Y3LAFYNAUKazf/Lo73EgBohMyAbQtfZrprk9umNywBSBEAgGyExIBkhMCAXISogFiEmDAELIBlCv6WUnM/w0rvkAFYNAULX2a6a5PbpjcsAITEgGUK/pZScz/DSu+QAUgRAIBkhMCAXISogFiEmDAELIBdCpOzDtY/UtJjnAFYNAUK/pZScz/DSu+QAITAgF0Kk7MO1j9S0mOcAUgRAIBchKiAWISYMAQsgFkL//8+K6///1R5WDQFCpOzDtY/UtJjnACEqIBZC///Piuv//9UeUgRAIBYhJgwBC0L//8+K6///1R4hJiAaQqrV/v///7//uX9WDQELIBoMAQsgFkL//8+K6///1R59IhggGkKr1f7///+//7l/VK0iKn0hJiAXQqTsw7WP1LSY5wB9IiAgFkL//8+K6///1R5UIBggKlRyrSIWfSEqIBlCv6WUnM/w0rvkAH0iGCAXQqTsw7WP1LSY5wBUIBYgIFZyrSIWfSEwIBtC19mumuT26Y3LAH0iFyAZQr+llJzP8NK75ABUIBYgGFZyrSIWfSExIBwgG0LX2a6a5PbpjcsAVCAWIBdWcq19QprN/8ujvcSAGn0hMyAaQtWqgYCAgMCAxgB8CyI5NwPYCyACICY3A9ALIAIgKjcDyAsgAiAwNwPACyACIDE3A7gLIAIgMzcDsAsgAkGwC2pB2PrAAEEwENAEDQALCyACICM3A6ALIAIgLzcDqAsgAiAlNwOYCyACICk3A5ALIAIgLDcDiAsgAiAuNwOACwJAIAJBgAtqQdD3wABBMBDQBEUEQCAsIRggKSEaICUhHCAjIRsMAQtC///Piuv//9UeICN9IhYgL0Kr1f7///+//7l/Vq0iF30hG0Kk7MO1j9S0mOcAICV9IhkgFiAXVCAjQv//z4rr///VHlZyrSIWfSEcQr+llJzP8NK75AAgKX0iFyAWIBlWICVCpOzDtY/UtJjnAFZyrSIWfSEaQtfZrprk9umNywAgLH0iGSAWIBdWIClCv6WUnM/w0rvkAFZyrSIWfSEYQprN/8ujvcSAGiAWIBlWICxC19mumuT26Y3LAFZyrSAufH0hLkKr1f7///+//7l/IC99IS8LIAYgAikDgAs3AwggBiAvNwNgIAYgGzcDWCAGIBw3A1AgBiAaNwNIIAYgGDcDQCAGIC43AzggBkEwaiACQagLaikDADcDACAGQShqIAJBoAtqKQMANwMAIAZBIGogAkGYC2opAwA3AwAgBkEYaiACQZALaikDADcDACAGQRBqIAJBiAtqKQMANwMAIAZCATcDAAsgAkHADGokAAJAAkAgAykDSFBFBEAgA0GIAmoiASADQfgAaikDADcDACADQYACaiICIANB8ABqIgUpAwA3AwAgA0H4AWoiBCADQegAaiIHKQMANwMAIANB8AFqIgggA0HgAGoiCSkDADcDACADQegBaiIKIANB2ABqIgspAwA3AwAgA0G4AWoiDCADQYgBaikDADcDACADQcABaiINIANBkAFqKQMANwMAIANByAFqIg4gA0GYAWopAwA3AwAgA0HQAWoiDyADQaABaikDADcDACADQdgBaiIQIANBqAFqKQMANwMAIAMgAykDUDcD4AEgAyADKQOAATcDsAEgA0EoaiABKQMANwMAIANBIGogAikDADcDACADQRhqIAQpAwA3AwAgA0EQaiAIKQMANwMAIANBCGogCikDADcDACADIAMpA+ABNwMAIAUgECkDADcDACAHIA8pAwA3AwAgCSAOKQMANwMAIAsgDSkDADcDACADQdAAaiAMKQMANwMAIAMgAykDsAE3A0ggA0EwaiADEN4CIANBPGogBhDeAgJAAkAgAygCOCIBIAMoAkQiAkYEQCADKAI0QQRrIQIgAygCQEEEayEGIAFBAnQhAQNAIAFFDQIgASACaiEFIAEgBmogAUEEayEBKAIAIgQgBSgCACIFRg0ACyAEIAVNDQQMAgsgASACSQ0BDAMLIAFFDQILIAMoAjwiAQRAIAMoAkAgAUECdBC5BAsgAygCMCIBBEAgAygCNCABQQJ0ELkECyAAIAMpAwA3AwAgAEEoaiADQShqKQMANwMAIABBIGogA0EgaikDADcDACAAQRhqIANBGGopAwA3AwAgAEEQaiADQRBqKQMANwMAIABBCGogA0EIaikDADcDAAwCC0HetcEAQRBB8LXBABDoAwALIAMoAjwiAQRAIAMoAkAgAUECdBC5BAsgAygCMCIBBEAgAygCNCABQQJ0ELkECyAAIAMpA0g3AwAgAEEoaiADQfAAaikDADcDACAAQSBqIANB6ABqKQMANwMAIABBGGogA0HgAGopAwA3AwAgAEEQaiADQdgAaikDADcDACAAQQhqIANB0ABqKQMANwMACyADQZACaiQAC7IGAQd/AkAgACgCACIJIAAoAggiA3IEQAJAIANFDQAgASACaiEIAkAgACgCDCIGRQRAIAEhBAwBCyABIQQDQCAEIgMgCEYNAgJ/IANBAWogAywAACIHQQBODQAaIANBAmogB0FgSQ0AGiADQQNqIAdBcEkNABogB0H/AXFBEnRBgIDwAHEgAy0AA0E/cSADLQACQT9xQQZ0IAMtAAFBP3FBDHRycnJBgIDEAEYNAyADQQRqCyIEIAUgA2tqIQUgBkEBayIGDQALCyAEIAhGDQAgBCwAACIDQQBOIANBYElyIANBcElyRQRAIANB/wFxQRJ0QYCA8ABxIAQtAANBP3EgBC0AAkE/cUEGdCAELQABQT9xQQx0cnJyQYCAxABGDQELAkACQCAFRQ0AIAIgBU0EQEEAIQMgAiAFRg0BDAILQQAhAyABIAVqLAAAQUBIDQELIAEhAwsgBSACIAMbIQIgAyABIAMbIQELIAlFDQEgACgCBCEHAkAgAkEQTwRAIAEgAhDVASEDDAELIAJFBEBBACEDDAELIAJBA3EhBgJAIAJBBEkEQEEAIQNBACEFDAELIAJBDHEhCEEAIQNBACEFA0AgAyABIAVqIgQsAABBv39KaiAEQQFqLAAAQb9/SmogBEECaiwAAEG/f0pqIARBA2osAABBv39KaiEDIAggBUEEaiIFRw0ACwsgBkUNACABIAVqIQQDQCADIAQsAABBv39KaiEDIARBAWohBCAGQQFrIgYNAAsLAkAgAyAHSQRAIAcgA2shBEEAIQMCQAJAAkAgAC0AIEEBaw4CAAECCyAEIQNBACEEDAELIARBAXYhAyAEQQFqQQF2IQQLIANBAWohAyAAKAIQIQYgACgCGCEFIAAoAhQhAANAIANBAWsiA0UNAiAAIAYgBSgCEBECAEUNAAtBAQ8LDAILQQEhAyAAIAEgAiAFKAIMEQMABH8gAwVBACEDAn8DQCAEIAMgBEYNARogA0EBaiEDIAAgBiAFKAIQEQIARQ0ACyADQQFrCyAESQsPCyAAKAIUIAEgAiAAKAIYKAIMEQMADwsgACgCFCABIAIgACgCGCgCDBEDAAvaBgEPfyMAQTBrIgMkAAJAAkACQAJAAkAgASgCCCINQQJPBEAgA0EMaiABEM4CQQEhBSADKAIUIgpBAWsiAkEAIAIgCk0bIgJBAXYgAkEBcWoiDkUNAyADKAIQIQ8DQCAFIApPDQICQCAPIAVBDGxqIgYoAggiBEUEQEEIIQsMAQtBACECIARBMGwiDEEASCAEQarVqhVLcg0EIAYoAgQhEEHZvsIALQAAGkEIIQIgDEEIELAEIgtFDQRBACEHIAQhAgNAIAcgDEYNASAHIAtqIgggByAQaiIJKQMANwMAIAhBKGogCUEoaikDADcDACAIQSBqIAlBIGopAwA3AwAgCEEYaiAJQRhqKQMANwMAIAhBEGogCUEQaikDADcDACAIQQhqIAlBCGopAwA3AwAgB0EwaiEHIAJBAWsiAg0ACwsgAyAENgIsIAMgCzYCKCADIAQ2AiQgA0EYaiADQSRqEIQCIAYoAgAiAgRAIAYoAgQgAkEwbBC5BAsgBUECaiEFIAYgAykCGDcCACAGQQhqIANBIGooAgA2AgAgDkEBayIODQALDAMLIAAgASkCADcCACAAQRBqIAFBEGopAgA3AgAgAEEIaiABQQhqKQIANwIADAMLIAUgCkHA0MAAENYDAAsgAiAMEKgEAAsgACADKQIMNwIAIABBCGogA0EUaigCADYCACABKAIQIQpBCCEIAkAgASgCFCIERQ0AQQAhAiAEQTBsIglBAEggBEGq1aoVS3INAkHZvsIALQAAGkEIIQIgCUEIELAEIghFDQJBACEHIAQhAgNAIAcgCUYNASAHIAhqIgUgByAKaiIGKQMANwMAIAVBKGogBkEoaikDADcDACAFQSBqIAZBIGopAwA3AwAgBUEYaiAGQRhqKQMANwMAIAVBEGogBkEQaikDADcDACAFQQhqIAZBCGopAwA3AwAgB0EwaiEHIAJBAWsiAg0ACwsgACAENgIUIAAgCDYCECAAIAQ2AgwgASgCBCIAIQIDQCACKAIAIgQEQCACQQRqKAIAIARBMGwQuQQLIAJBDGohAiANQQFrIg0NAAsgASgCACICBEAgACACQQxsELkECyABKAIMIgBFDQAgCiAAQTBsELkECyADQTBqJAAPCyACIAkQqAQAC7cFAQl/IwBBgAlrIgQkACAEIAEQZCAEQegHaiAEQShqKQMANwMAIARB4AdqIARBIGopAwA3AwAgBEHYB2ogBEEYaikDADcDACAEQdAHaiAEQRBqKQMANwMAIARByAdqIARBCGopAwA3AwAgBEH4B2ogBEE4aikDADcDACAEQYAIaiAEQUBrKQMANwMAIARBiAhqIARByABqKQMANwMAIARBkAhqIARB0ABqKQMANwMAIARBmAhqIARB2ABqKQMANwMAIAQgBCkDADcDwAcgBCAEKQMwNwPwByAEQaAFaiIFIAQgARBUIARB4ABqIgsgBSABQeAAaiIHEJQBIARBwARqIgYgBCAEEFQgBSABIAEQywEgBEHAAWoiCiAGIAUQlAEgBiAHIAcQywEgBSABIAoQlAEgBEHgA2oiCCAGIAUQ0AMgBEGgAmoiCSAIIAQQlAEgBEGoCGogBEGoAmopAwA3AwAgBEGwCGogBEGwAmopAwA3AwAgBEG4CGogBEG4AmopAwA3AwAgBEHACGogBEHAAmopAwA3AwAgBEHICGogBEHIAmopAwA3AwAgBEHYCGogBEHYAmopAwA3AwAgBEHgCGogBEHgAmopAwA3AwAgBEHoCGogBEHoAmopAwA3AwAgBEHwCGogBEHwAmopAwA3AwAgBEH4CGogBEH4AmopAwA3AwAgBCAEKQOgAjcDoAggBCAEKQPQAjcD0AggBSAJIAEQVCAEQYADaiIMIAUgBxCUASAGIAkgCRBUIAUgASAKEMsBIAggBiAFEJQBIAUgASAIEJQBIAYgCSAFEFQgBEHgBmogBiAHEJQBIARBgAZqIgEgCEHgABDPBBogAEHAAWogBEHAB2ogCyACIAMQDiAAQcwBaiAEQaAIaiAMIAIgAxAOIAAgAUHAARDPBBogBEGACWokAAuBBgINfgF/IwBBgAFrIg8kACAPQfAAaiABKQMYIgNCseqUkd2jgpxYfiICQq/4//9vQgAQvQMgD0HgAGogAkJ/QgAQvQMgD0HQAGogDykDYCICIAEpAxB8IgQgD0H4AGopAwAgAyAPKQNwIgV8IAVUrXx8IgVCseqUkd2jgpxYfiIDQq/4//9vQgAQvQMgD0FAayADQn9CABC9AyAPQTBqIA8pA0AiAyACIAEpAwh8IgYgBCAFVq0gD0HoAGopAwAiByACIARWrXx8fCIJfCIIIA9B2ABqKQMAIA8pA1AiBCAFfCAEVK18fCIFQrHqlJHdo4KcWH4iBEKv+P//b0IAEL0DIA9BIGogBEJ/QgAQvQMgD0EQaiAPKQMgIgQgAyACIAEpAwB8IgsgBiAJVq0gByACIAZWrXx8fCIGfCIJIAUgCFStIA9ByABqKQMAIgwgAyAIVq18fHwiDnwiCCAPQThqKQMAIAUgDykDMCIFfCAFVK18fCIFQrHqlJHdo4KcWH4iCkKv+P//b0IAEL0DIA8gCkJ/QgAQvQMCQCAPQQhqKQMAIgogD0EoaikDACINIAQgDCADIAYgC1StIAcgAiALVq18fCIHfCICIAdUrXwgAiACIAkgDlatIAwgBiAJVq18fHwiAlatfCIGfCIDIAZUrXwgAyADIA0gAiACIAR8IgJWrXwgAiAFIAhUrSANIAQgCFatfHx8IgQgAlStfHwiA1atfCIHIA8pAwAiAnwiBiAHVK18IAYgCiADIAIgA3wiA1atfCADIAogAiACIAR8IgJWrXwgAiAPQRhqKQMAIA8pAxAiBCAFfCAEVK18fCIEIAJUrXx8IgUgA1StfHwiAiAGVK18IgNCf1INACACQn9SBEBCfyEDDAELQn8hAiAFQn9SBEBCfyEDDAELQn8hBSAEQq/4//9vVARAQn8hAwwBCyAEQtGHgIAQfCEEQgAhBUIAIQJCACEDCyAAIAQ3AxggACAFNwMQIAAgAjcDCCAAIAM3AwAgD0GAAWokAAuIBwIPfwF+IwBBgARrIgIkACACENQCQdm+wgAtAAAaQcABQQgQsAQiAwRAIAMgAikDWDcDACADIAIpAyg3AzAgA0EoaiACQYABaikDADcDACADQSBqIAJB+ABqKQMANwMAIANBGGogAkHwAGopAwA3AwAgA0EQaiACQegAaikDADcDACADQQhqIAJB4ABqKQMANwMAIANBOGogAkEwaikDADcDACADQUBrIAJBOGopAwA3AwAgA0HIAGogAkFAaykDADcDACADQdAAaiACQcgAaikDADcDACADQdgAaiACQdAAaikDADcDACADQYgBakIANwMAIANBgAFqQgA3AwAgA0H4AGpCADcDACADQfAAakIANwMAIANB6ABqQgA3AwAgA0IANwNgIANBmM3AACkDADcDkAEgA0GYAWpBoM3AACkDADcDACADQaABakGozcAAKQMANwMAIANBqAFqQbDNwAApAwA3AwAgA0GwAWpBuM3AACkDADcDACADQbgBakHAzcAAKQMANwMAIAJBADoAzAMgAiADQcABajYCyAMgAiADNgLEAyACQbgDaiACQcQDahCUAiACKALAAyIEQQJPBEAgBEEBdiELIAIoArwDIgUgBEEwbGpBMGshBANAIAUpAwAhESAFIAQpAwA3AwAgAkH4A2oiDCAFQShqIgYpAwA3AwAgAkHwA2oiDSAFQSBqIgcpAwA3AwAgAkHoA2oiDiAFQRhqIggpAwA3AwAgAkHgA2oiDyAFQRBqIgkpAwA3AwAgAkHYA2oiECAFQQhqIgopAwA3AwAgBiAEQShqIgYpAwA3AwAgByAEQSBqIgcpAwA3AwAgCCAEQRhqIggpAwA3AwAgCSAEQRBqIgkpAwA3AwAgCiAEQQhqIgopAwA3AwAgAiARNwPQAyAGIAwpAwA3AwAgByANKQMANwMAIAggDikDADcDACAJIA8pAwA3AwAgCiAQKQMANwMAIAQgAikD0AM3AwAgBEEwayEEIAVBMGohBSALQQFrIgsNAAsLIABBDGoiBSACKQK4AzcCACAFQQhqIAJBwANqKAIANgIAIANBwAEQuQQgAEEIaiABQQhqKAIANgIAIAAgASkCADcCAAJAIAIoAgQiAEUNACAAIABBDGxBE2pBeHEiAWpBCWoiAEUNACACKAIAIAFrIAAQuQQLIAJBgARqJAAPC0EIQcABEMoEAAujBQEJfyMAQYAGayIEJAAgBCABEF4gBEGYBWogBEEYaikDADcDACAEQZAFaiAEQRBqKQMANwMAIARBiAVqIARBCGopAwA3AwAgBEGoBWogBEEoaikDADcDACAEQbAFaiAEQTBqKQMANwMAIARBuAVqIARBOGopAwA3AwAgBCAEKQMANwOABSAEIAQpAyA3A6AFIARBwANqIgUgBCABEB0gBEFAayILIAUgAUFAayIHEM8BIARBgANqIgYgBCAEEB0gBSABIAEQlgIgBEGAAWoiCiAGIAUQzwEgBiAHIAcQlgIgBSABIAoQzwEgBEHAAmoiCSAGIAUQhwMgBEHAAWoiCCAJIAQQzwEgBEHIBWogBEHIAWopAwA3AwAgBEHQBWogBEHQAWopAwA3AwAgBEHYBWogBEHYAWopAwA3AwAgBEHoBWogBEHoAWopAwA3AwAgBEHwBWogBEHwAWopAwA3AwAgBEH4BWogBEH4AWopAwA3AwAgBCAEKQPAATcDwAUgBCAEKQPgATcD4AUgBSAIIAEQHSAEQYACaiIMIAUgBxDPASAGIAggCBAdIAUgASAKEJYCIAkgBiAFEM8BIAUgASAJEM8BIAYgCCAFEB0gBEHABGogBiAHEM8BIARBiARqIARByAJqKQMANwMAIARBkARqIARB0AJqKQMANwMAIARBmARqIARB2AJqKQMANwMAIARBoARqIARB4AJqKQMANwMAIARBqARqIARB6AJqKQMANwMAIARBsARqIARB8AJqKQMANwMAIARBuARqIARB+AJqKQMA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JAAgAyABIAIQHSADQUBrIgcgAUFAayIIIAJBQGsiCRAdIANBgAFqIgwgAUGAAWoiCiACQYABaiILEB0gA0HAAWoiDRDsAyADQcACaiIFIAggChCWAiADQYADaiIEIAkgCxCWAiADQYACaiIGIAUgBBAdIAQgBiAHEM8BIAUgBCAMEM8BIAQgDSAFEB0gACADIAQQlgIgBSABIAgQlgIgBCACIAkQlgIgBiAFIAQQHSAEIAYgAxDPASAGIAQgBxDPASAEEOwDIAUgBCAMEB0gAEFAayAGIAUQlgIgBSABIAoQlgIgBCACIAsQlgIgBiAFIAQQHSADQbgDaiIBIANBOGopAwA3AwAgA0GwA2oiAiADQTBqKQMANwMAIANBqANqIgggA0EoaikDADcDACADQaADaiIJIANBIGopAwA3AwAgA0GYA2oiCiADQRhqKQMANwMAIANBkANqIgsgA0EQaikDADcDACADQYgDaiIHIANBCGopAwA3AwAgAyADKQMANwOAAyAFIAYgBBDPASABIANB+ABqKQMANwMAIAIgA0HwAGopAwA3AwAgCCADQegAaikDADcDACAJIANB4ABqKQMANwMAIAogA0HYAGopAwA3AwAgCyADQdAAaikDADcDACAHIANByABqKQMANwMAIAMgAykDQDcDgAMgBiAFIAQQlgIgASADQbgBaikDADcDACACIANBsAFqKQMANwMAIAggA0GoAWopAwA3AwAgCSADQaABaikDADcDACAKIANBmAFqKQMANwMAIAsgA0GQAWopAwA3AwAgByADQYgBaikDADcDACADIAMpA4ABNwOAAyAAQYABaiAGIAQQzwEgA0HAA2okAAuuBQERfyMAQYAMayICJAAgAiABQeAAaiIEQeAAEM8EIgJB4ABqIAFBwAFqIg9B4AAQzwQaIAJBwAFqIgUgAEHgABDPBBogAkGgAmogAEHgAGoiCkHgABDPBBogAkGAA2ogAEHAAWoiC0HgABDPBBogAkHACmoiCCAAQeAAEM8EGiAIIAEQvAEgAkHgA2oiDCAKQeAAEM8EGiAMIAQQvAEgAkHABGoiDSALQeAAEM8EGiANIA8QvAEgAkGABmoiAyAKQeAAEM8EGiADIAsQygIgAkGwBmoiBiACQbADaiIOEMoCIAJB4AZqIgcgBEHgABDPBBogByAPEMoCIAJBkAdqIAJBkAFqIhEQygIgAyAHELwBIAMgDBCoAiAGIAJBkARqIhAQqAIgAyANEKgCIAYgAkHwBGoiEhCoAiACQaAFaiIHIANB4AAQzwQaIAJBoAtqIgMgAEHgABDPBBogAyAKEMoCIAJB0AtqIgYgAkHQAmoQygIgAkHAB2oiCSABQeAAEM8EGiAJIAQQygIgAkHwB2ogAkEwahDKAiADIAkQvAEgAyAIEKgCIAYgAkHwCmoiCRCoAiADIAwQqAIgBiAQEKgCIAUgCxDKAiACQfABaiIEIA4QygIgAkGgCGoiDiABQeAAEM8EGiAOIA8QygIgAkHQCGogERDKAiAFIA4QvAEgBSAIEKgCIAQgCRCoAiAFIAwQygIgBCAQEMoCIAUgDRCoAiAEIBIQqAIgBxDGASACQeAJaiIBIAdB4AAQzwQaIAggBxDKAiAJIAJBkApqEMoCIAAgCEHgABDPBBogASANQeAAEM8EGiABEMYBIAJBgAlqIgAgAUHgABDPBBogAyAAEMoCIAYgAkGwCWoQygIgCiADQeAAEM8EGiALIAVB4AAQzwQaIAJBgAxqJAAL8xgDDX8GfAJ+IwBBMGsiCCQAAkACQAJAAkACQCADQQJrQSNJBEACQCACRQ0AIAEtAAAiBEErRgRAIAJBAWsiBkUNASABIAFBAWogAS0AASIEQStGIgcbIQEgAiAGIAcbIQILIARB/wFxQd8ARwRAIAJBAEgNB0EAIQRB2b7CAC0AABpBASEFIAJBARCwBCIGRQ0HIAhBADYCFCAIIAY2AhAgCCACNgIMA0ACQAJAAkACQCABLQAAIgZBMGsiBUH/AXFBCkkNACAGQeEAa0H/AXFBGk8EQCAGQcEAa0H/AXFBGk8EQCAGQd8ARg0FIAgoAgwhBgwDCyAGQTdrIQUMAQsgBkHXAGshBQsgCCgCDCEGIAVB/wFxIANB/wFxSQ0BCyAAQYCAgIB4NgIAIABBAToABCAGRQ0JIAgoAhAgBhC5BAwJCyAEIAZGBEAgCEEMahCnAwsgCCgCECAEaiAFOgAAIAggBEEBaiIENgIUCyABQQFqIQEgAkEBayICDQALIANpQQFHDQQgCCgCECEGQR8gA2drIQkgBEECTwRAIAQgBmogBEEBdiICayEDQQAhASACQQFHBEAgBEEBayEFIAJB/v///wdxIQwDQCAFIAZqIgctAAAhCiAHIAEgBmoiBy0AADoAACAHIAo6AAAgAyACIAFBfnNqaiIKLQAAIQsgCiAHQQFqIgctAAA6AAAgByALOgAAIAVBAmshBSAMIAFBAmoiAUcNAAsLIARBAnEEQCABIAZqIgQtAAAhBiAEIAMgAiABQX9zamoiAS0AADoAACABIAY6AAALIAgoAhAhBiAIKAIUIQQLQSAgCUH/AXFwDQMgCEEkaiAGIAQgCRDSAgwFCyAAQYCAgIB4NgIAIABBAToABAwFCyAAQYCAgIB4NgIAIABBADoABAwECyAIQQA2AhwgCEEBNgIQIAhBsNvBADYCDCAIQgQ3AhQgCEEMakGg3MEAEIYEAAsgCEEkaiEMIAYhAUEAIQIjAEEQayIHJAACQAJAAkBBfyAEIgatIAmtQv8Bg34iF0IFiCAXQh+DQgBSrXwiF6ciBCAXQoCAgIAQWhsiA0UEQEEEIQVBACEEDAELIANBAnQhCiADQf////8BSwRAQQAhAwwCC0HZvsIALQAAGkEEIQMgCkEEELAEIgVFDQELIAdBADYCDCAHIAU2AgggByAENgIEAkAgBkUNAEEAIQNBACEFA0AgAS0AACIKIAN0IAVyIQUCfyADIAlqIgRB/wFxQR9NBEAgBAwBCyAHKAIEIAJGBEAgB0EEahCiAwsgBygCCCACQQJ0aiAFNgIAIAcgAkEBaiICNgIMIApBACADa3YhBSAEQSBrCyEDIAFBAWohASAGQQFrIgYNAAsgA0H/AXEEQCAHKAIEIAJGBEAgB0EEahCiAwsgBygCCCACQQJ0aiAFNgIAIAcgAkEBaiICNgIMCyAHKAIIIQUgBygCBCEEIAJFBEBBACECDAELIAJBAnQiAyAFakEEaygCAA0AIAIiAQJ/A0BBACADRQ0BGiABQQFrIQEgA0EEayIDIAVqKAIARQ0ACyABQQFqCyIBIAEgAksbIQILAkACQCAEQQJ2IAJNBEAgBSEDDAELIARBAnQhASACRQRAQQQhAyAFIAEQuQRBACEEDAELIAUgAUEEIAIiBEECdCIBEKkEIgNFDQELIAwgAjYCCCAMIAM2AgQgDCAENgIAIAdBEGokAAwCC0EEIAEQqAQACyADIAoQqAQACwwBCyAIQSRqIQogCCgCECELIAQhAkEAIQFBACEHIwBBMGsiBSQAQQQhDQJAAkACf0EAAnwCQAJAAkACQCADuCIRvSIXQgBTDQAgF0IgiKciBEGAgMAASQ0AIARB//+//wdLDQNBgIDA/wMhBkGBeCEJIARBgIDA/wNHBEAgBCEGDAILIBenDQFEAAAAAAAAAAAMBAtEAAAAAAAA8L8gESARoqMgEb1C////////////AINQDQMaIBdCAFMNASARRAAAAAAAAFBDor0iF0IgiKchBkHLdyEJCyAXQv////8PgyAGQeK+JWoiBEH//z9xQZ7Bmv8Daq1CIIaEv0QAAAAAAADwv6AiESARIBFEAAAAAAAA4D+ioiISob1CgICAgHCDvyITRAAAIGVHFfc/oiIUIARBFHYgCWq3IhWgIhYgFCAVIBahoCARIBOhIBKhIBEgEUQAAAAAAAAAQKCjIhEgEiARIBGiIhIgEqIiESARIBFEn8Z40Amawz+iRK94jh3Fccw/oKJEBPqXmZmZ2T+goiASIBEgESARRERSPt8S8cI/okTeA8uWZEbHP6CiRFmTIpQkSdI/oKJEk1VVVVVV5T+goqCgoqAiEUQAACBlRxX3P6IgESAToEQAou8u/AXnPaKgoKAMAgsgESARoUQAAAAAAAAAAKMhEQsgEQsgAriiRAAAAAAAAKA/opsiEUQAAAAAAADwv2RFDQAaQQAgEUQAAAAAAADwQWNFDQAaQQAgEasiBEUNABogBEECdCEGIARB/////wFLDQFB2b7CAC0AABpBBCEBIAZBBBCwBCINRQ0BIAQLIQ4gBUEANgIUIAUgDTYCECAFIA42AgwCQAJAAkACQAJAAkACQAJAAkACQCADQYECSQRAAkACQAJAIANBA3QiD0GY5cEAaigCACIMBEAgAiACIAxwIgEgDCABGyIJSQ0BIAlBA3EhASAJQQRPDQJBACEEDAMLIwBBIGsiACQAIABBADYCGCAAQQE2AgwgAEHwt8IANgIIIABCBDcCECAAQQhqQejjwQAQhgQACyAFQQA2AiggBUEBNgIcIAVBiOHBADYCGCAFQgQ3AiAgBUEYakH448EAEIYEAAsgCUF8cSEQQQAhBANAIAcgC2oiBi0AACADIARsaiADbCAGQQFqLQAAaiADbCAGQQJqLQAAaiADbCAGQQNqLQAAaiEEIBAgB0EEaiIHRw0ACwsgAQRAIAcgC2ohBwNAIActAAAgAyAEbGohBCAHQQFqIQcgAUEBayIBDQALCyAPQZTlwQBqNQIAIRggAiAJayEGIA4EfyANBSAFQQxqEKIDIAUoAhALIAQ2AgAgBUEBNgIUIAZFBEBBASEBIAUoAhAhAiAFKAIMIQYMBAsgCSALaiECQQEhAQNAIAYgDCAGIAxJGyEJAkACQCABBEAgBSgCECIEIAFBAnRqIgdBBGsoAgBFDQELIAUoAgwgAUYEQCAFQQxqEKIDCyAFKAIQIAFBAnRqQQA2AgAgBSABQQFqIgE2AhQgAUUNASAFKAIQIgQgAUECdGohBwtCACEXA0AgBCAENQIAIBh+IBd8Ihc+AgAgF0IgiCEXIARBBGoiBCAHRw0ACwsgCUEDcSEBQQAhBEEAIQcgCUEETwRAIAlBfHEhDQNAIAIgB2oiCy0AACADIARsaiADbCALQQFqLQAAaiADbCALQQJqLQAAaiADbCALQQNqLQAAaiEEIA0gB0EEaiIHRw0ACwsgAQRAIAIgB2ohBwNAIActAAAgAyAEbGohBCAHQQFqIQcgAUEBayIBDQALCyAFKAIUIgdFDQIgBiAJayEGIAUoAhAiASAEIAEoAgAiC2oiBDYCAAJAIAQgC08NACABQQRqIQQgB0ECdEEEayEHA0AgB0UNASAEIAQoAgBBAWoiATYCACAEQQRqIQQgB0EEayEHIAFFDQALCyACIAlqIQIgBSgCFCEBIAYNAAsMAgsgA0GBAkHY48EAENYDAAsgBUEANgIoIAVBATYCHCAFQbCMwgA2AhggBUIENwIgIAVBGGpBoI3CABCGBAALIAUoAhAhAiAFKAIMIQYgAUUNAQsgAUECdCIDIAJqQQRrKAIARQ0BDAILQQAhASAGQQRJBEAgAiEDDAULIAZBAnQhBAwCCyACQQRrIQcgASEEIAECfwNAQQAgA0UNARogBEEBayEEIAMgB2ogA0EEayEDKAIARQ0ACyAEQQFqCyIDIAEgA0kbIQELIAZBAnYgAU0EQCACIQMMAwsgBkECdCEEIAENAQtBBCEDIAIgBBC5BEEAIQFBACEGDAELIAEhBiACIARBBCABQQJ0IgIQqQQiA0UNAQsgCiABNgIIIAogAzYCBCAKIAY2AgAgBUEwaiQADAILQQQgAhCoBAALIAEgBhCoBAALCyAAIAgpAiQ3AgAgAEEIaiAIQSxqKAIANgIAIAgoAgwiAEUNACAIKAIQIAAQuQQLIAhBMGokAA8LIAUgAhCoBAALmwYCCH4LfyMAQUBqIgwkACABKAIIIgsgAigCCCINIAsgDUsbIQ8gAiABIAsgDUkiDhsiECgCACERIBAoAgQhECABIAIgDhsiASgCACESIAEoAgQhEyALIA0gDhsiAQRAIAFBBXQhDiAPQQFqIQ1BACEBA0ACQAJAIA1BAWsiDQRAIAEgE2oiCykDACIHIAEgEGoiAikDAHwiBCALQQhqKQMAIgMgAkEIaiIUKQMAfCIFIANUIAUgC0EQaikDACIIIAJBEGoiFSkDAHwiAyAIVCADIAMgC0EYaikDACIGIAJBGGoiCykDAHwiCCAGVK18IgNWcq18IgkgBVRyrXwhBQJAIAQgB1QgBCAFVnINAEL///////////8AIQYgBSEEIAVC////////////AFEEQCAJQn9SDQNCfyEEIANCf1IEQCADIQcMBQtCbSEGIAgiBEJtUQ0BCyAEIAZaDQAgBSEGDAILIANCAXwiBCAIQm1UrSIGfSEHIAlCAXwiCiADQn9SIAQgBlRyrSIDfSEEIAUgCUJ/UiADIApWcq19Qv///////////wB9IQYgCEITfCEIDAILIA8gD0Gs9cAAENYDAAsgCSEEIAMhBwsgAiAGNwMAIBQgBDcDACAVIAc3AwAgCyAINwMAIA4gAUEgaiIBRw0ACwsgEgRAIBMgEkEFdBC5BAsgDEEAOgAcIAwgEDYCFCAMIBAgD0EFdGo2AhggDEEIaiAMQRRqELMCIAwoAhAiAUECTwRAIAFBAXYhDyAMKAIMIgIgAUEFdGpBIGshAQNAIAIpAwAhBCACIAEpAwA3AwAgAkEYaiILKQMAIQMgCyABQRhqIgspAwA3AwAgAkEQaiINKQMAIQUgDSABQRBqIg0pAwA3AwAgAkEIaiIOKQMAIQcgDiABQQhqIg4pAwA3AwAgASAENwMAIAsgAzcDACANIAU3AwAgDiAHNwMAIAFBIGshASACQSBqIQIgD0EBayIPDQALCyAAIAwpAgg3AgAgAEEIaiAMQRBqKAIANgIAIBEEQCAQIBFBBXQQuQQLIAxBQGskAAvBBgEJf0EMIQgjAEEQayIEJAACQCABKAIIIgJBDE0EQAJAIAJFBEBBCCEFDAELIAJBBXQiByEDIAJB////H0sNAiABKAIEIQpBACEBQdm+wgAtAAAaQQghBiADQQgQsAQiBUUNAiACIQMDQCABIAdGDQEgASAFaiIJIAEgCmoiBikDADcDACAJQRhqIAZBGGopAwA3AwAgCUEQaiAGQRBqKQMANwMAIAlBCGogBkEIaikDADcDACABQSBqIQEgA0EBayIDDQALCyAEIAI2AgwgBCAFNgIIIAQgAjYCBCACQQxJBEAgBEEEaiACQQwgAmsiBxCUAyAEKAIIIAQoAgwiBUEFdGohASAHQQJPBEAgAkF/c0EMaiICQQdxIQMgB0ECa0EHTwRAIAJBeHEhBgNAIAFCADcDACABQRhqQgA3AwAgAUEQakIANwMAIAFBCGpCADcDACABQSBqQgA3AwAgAUEoakIANwMAIAFBMGpCADcDACABQThqQgA3AwAgAUFAa0IANwMAIAFByABqQgA3AwAgAUHQAGpCADcDACABQdgAakIANwMAIAFB4ABqQgA3AwAgAUHoAGpCADcDACABQfAAakIANwMAIAFB+ABqQgA3AwAgAUGYAWpCADcDACABQZABakIANwMAIAFBiAFqQgA3AwAgAUGAAWpCADcDACABQbgBakIANwMAIAFBsAFqQgA3AwAgAUGoAWpCADcDACABQaABakIANwMAIAFBwAFqQgA3AwAgAUHIAWpCADcDACABQdABakIANwMAIAFB2AFqQgA3AwAgAUHgAWpCADcDACABQegBakIANwMAIAFB8AFqQgA3AwAgAUH4AWpCADcDACABQYACaiEBIAZBCGsiBg0ACwsgAwRAA0AgAUIANwMAIAFBGGpCADcDACABQRBqQgA3AwAgAUEIakIANwMAIAFBIGohASADQQFrIgMNAAsLIAUgB2pBAWshBQsgAUIANwMAIAFBGGpCADcDACABQRBqQgA3AwAgAUEIakIANwMAIAVBAWohCAsgACAEKQIENwIAIABBCGogCDYCACAEQRBqJAAPC0Hc8sAAQTdBrPPAABD0AwALIAYgAxCoBAALoAYCBn4HfyABKQMYIgQgAq0iBYVC88rRy6eM2bLwAIUiBkIQiSAGIAEpAxAiB0Lh5JXz1uzZvOwAhXwiBoUiCCAEQu3ekfOWzNy35ACFIgQgB0L1ys2D16zbt/MAhXwiB0IgiXwiCSAFQoCAgICAgICABISFIARCDYkgB4UiBCAGfCIFIARCEYmFIgR8IgYgBEINiYUiBCAIQhWJIAmFIgcgBUIgiUL/AYV8IgV8IgggBEIRiYUiBEINiSAEIAUgB0IQiYUiBSAGQiCJfCIGfCIEhSIHQhGJIAcgBUIViSAGhSIFIAhCIIl8IgZ8IgeFIghCDYkgCCAFQhCJIAaFIgUgBEIgiXwiBHyFIgZCEYkgBUIViSAEhSIEQhCJIAQgB0IgiXwiBIVCFYmFIAQgBnwiBEIgiIUgBIUhBCABKAIIRQRAIAFBASABQRBqEG4LIARCGYgiBkL/AINCgYKEiJCgwIABfiEHIASnIQogASgCBCEOIAEoAgAhCwNAIAsgCiAOcSIKaikAACIFIAeFIgRCf4UgBEKBgoSIkKDAgAF9g0KAgYKEiJCgwIB/gyEEA0AgBFAEQCAFQoCBgoSIkKDAgH+DIQRBASEMIA9BAUcEQCAEeqdBA3YgCmogDnEhDSAEQgBSIQwLIAQgBUIBhoNQBEAgCiAQQQhqIhBqIQogDCEPDAMLIAsgDWosAAAiCkEATgRAIAsgCykDAEKAgYKEiJCgwIB/g3qnQQN2Ig1qLQAAIQoLIAsgDWogBqdB/wBxIg86AAAgCyANQQhrIA5xakEIaiAPOgAAIABBgICAgHg2AgAgASABKAIIIApBAXFrNgIIIAEgASgCDEEBajYCDCALIA1BBHRrQRBrIgBBDGogA0EIaigCADYCACAAQQRqIAMpAgA3AgAgACACNgIADwsgBHohCCAEQgF9IASDIQQgCyAIp0EDdiAKaiAOcUEEdGsiDEEQaygCACACRw0ACwsgAEEIaiAMQRBrIgFBDGoiAigCADYCACAAIAFBBGoiACkCADcCACAAIAMpAgA3AgAgAiADQQhqKAIANgIAC4MGAgh+C38jAEFAaiIMJAAgASgCCCILIAIoAggiDSALIA1LGyEPIAIgASALIA1JIg4bIhAoAgAhESAQKAIEIRAgASACIA4bIgEoAgAhEiABKAIEIRMgCyANIA4bIgEEQCABQQV0IQ4gD0EBaiENQQAhAQNAAkACQCANQQFrIg0EQAJAIAEgE2oiCykDACIFIAEgEGoiAikDAHwiBiALQQhqKQMAIgMgAkEIaiIUKQMAfCIHIANUIAcgByALQRBqKQMAIgQgAkEQaiIVKQMAfCIDIARUIAMgAyALQRhqKQMAIgQgAkEYaiILKQMAfCIIIARUrXwiA1ZyrXwiB1ZyrXwiBCAGVCAFIAZWcg0AIARCf1INAiAHQn9SBEBCfyEEDAMLQn8hBSADQn9SBEBCfyEEIAMhBgwECyAIQq/4//9vWg0AQn8hBEJ/IQYMAwsgA0IBfCIFIAhCr/j//29UrSIJfSEGIAdCAXwiCiADQn9SIAUgCVRyrSIDfSEFIAQgB0J/UiADIApWcq19QgF8IQQgCELRh4CAEHwhCAwCCyAPIA9BrPXAABDWAwALIAchBSADIQYLIAIgBDcDACAUIAU3AwAgFSAGNwMAIAsgCDcDACAOIAFBIGoiAUcNAAsLIBIEQCATIBJBBXQQuQQLIAxBADoAHCAMIBA2AhQgDCAQIA9BBXRqNgIYIAxBCGogDEEUahCzAiAMKAIQIgFBAk8EQCABQQF2IQ8gDCgCDCICIAFBBXRqQSBrIQEDQCACKQMAIQMgAiABKQMANwMAIAJBGGoiCykDACEGIAsgAUEYaiILKQMANwMAIAJBEGoiDSkDACEHIA0gAUEQaiINKQMANwMAIAJBCGoiDikDACEFIA4gAUEIaiIOKQMANwMAIAEgAzcDACALIAY3AwAgDSAHNwMAIA4gBTcDACABQSBrIQEgAkEgaiECIA9BAWsiDw0ACwsgACAMKQIINwIAIABBCGogDEEQaigCADYCACARBEAgECARQQV0ELkECyAMQUBrJAALnwYBD38jAEEwayIEJAACQAJAAkACQAJAIAEoAggiDUECTwRAIARBDGogARDYAkEBIQUgBCgCFCIJQQFrIgNBACADIAlNGyIDQQF2IANBAXFqIg5FDQMgBCgCECEPA0AgBSAJTw0CAkAgDyAFQQxsaiIHKAIIIgZFBEBBCCEIDAELIAZBBXQhCiAGQf///x9LBEBBACECDAULIAcoAgQhEEHZvsIALQAAGkEIIQIgCkEIELAEIghFDQRBACECIAYhAwNAIAIgCkYNASACIAhqIgsgAiAQaiIMKQMANwMAIAtBGGogDEEYaikDADcDACALQRBqIAxBEGopAwA3AwAgC0EIaiAMQQhqKQMANwMAIAJBIGohAiADQQFrIgMNAAsLIAQgBjYCLCAEIAg2AiggBCAGNgIkIARBGGogBEEkahC9AiAHKAIAIgMEQCAHKAIEIANBBXQQuQQLIAVBAmohBSAHIAQpAhg3AgAgB0EIaiAEQSBqKAIANgIAIA5BAWsiDg0ACwwDCyAAIAEpAgA3AgAgAEEQaiABQRBqKQIANwIAIABBCGogAUEIaikCADcCAAwDCyAFIAlBwNDAABDWAwALIAIgChCoBAALIAAgBCkCDDcCACAAQQhqIARBFGooAgA2AgAgASgCECEJQQghCAJAIAEoAhQiBkUNACAGQQV0IQMgBkH///8fSwRAQQAhBQwDC0EAIQJB2b7CAC0AABpBCCEFIANBCBCwBCIIRQ0CIAZBBXQhCiAGIQMDQCACIApGDQEgAiAIaiIFIAIgCWoiBykDADcDACAFQRhqIAdBGGopAwA3AwAgBUEQaiAHQRBqKQMANwMAIAVBCGogB0EIaikDADcDACACQSBqIQIgA0EBayIDDQALCyAAIAY2AhQgACAINgIQIAAgBjYCDCABKAIEIgAhAgNAIAIoAgAiAwRAIAJBBGooAgAgA0EFdBC5BAsgAkEMaiECIA1BAWsiDQ0ACyABKAIAIgMEQCAAIANBDGwQuQQLIAEoAgwiAEUNACAJIABBBXQQuQQLIARBMGokAA8LIAUgAxCoBAALnwYBD38jAEEwayIEJAACQAJAAkACQAJAIAEoAggiDUECTwRAIARBDGogARDYAkEBIQUgBCgCFCIJQQFrIgNBACADIAlNGyIDQQF2IANBAXFqIg5FDQMgBCgCECEPA0AgBSAJTw0CAkAgDyAFQQxsaiIHKAIIIgZFBEBBCCEIDAELIAZBBXQhCiAGQf///x9LBEBBACECDAULIAcoAgQhEEHZvsIALQAAGkEIIQIgCkEIELAEIghFDQRBACECIAYhAwNAIAIgCkYNASACIAhqIgsgAiAQaiIMKQMANwMAIAtBGGogDEEYaikDADcDACALQRBqIAxBEGopAwA3AwAgC0EIaiAMQQhqKQMANwMAIAJBIGohAiADQQFrIgMNAAsLIAQgBjYCLCAEIAg2AiggBCAGNgIkIARBGGogBEEkahC+AiAHKAIAIgMEQCAHKAIEIANBBXQQuQQLIAVBAmohBSAHIAQpAhg3AgAgB0EIaiAEQSBqKAIANgIAIA5BAWsiDg0ACwwDCyAAIAEpAgA3AgAgAEEQaiABQRBqKQIANwIAIABBCGogAUEIaikCADcCAAwDCyAFIAlBwNDAABDWAwALIAIgChCoBAALIAAgBCkCDDcCACAAQQhqIARBFGooAgA2AgAgASgCECEJQQghCAJAIAEoAhQiBkUNACAGQQV0IQMgBkH///8fSwRAQQAhBQwDC0EAIQJB2b7CAC0AABpBCCEFIANBCBCwBCIIRQ0CIAZBBXQhCiAGIQMDQCACIApGDQEgAiAIaiIFIAIgCWoiBykDADcDACAFQRhqIAdBGGopAwA3AwAgBUEQaiAHQRBqKQMANwMAIAVBCGogB0EIaikDADcDACACQSBqIQIgA0EBayIDDQALCyAAIAY2AhQgACAINgIQIAAgBjYCDCABKAIEIgAhAgNAIAIoAgAiAwRAIAJBBGooAgAgA0EFdBC5BAsgAkEMaiECIA1BAWsiDQ0ACyABKAIAIgMEQCAAIANBDGwQuQQLIAEoAgwiAEUNACAJIABBBXQQuQQLIARBMGokAA8LIAUgAxCoBAALnwYBD38jAEEwayIEJAACQAJAAkACQAJAIAEoAggiDUECTwRAIARBDGogARDYAkEBIQUgBCgCFCIJQQFrIgNBACADIAlNGyIDQQF2IANBAXFqIg5FDQMgBCgCECEPA0AgBSAJTw0CAkAgDyAFQQxsaiIHKAIIIgZFBEBBCCEIDAELIAZBBXQhCiAGQf///x9LBEBBACECDAULIAcoAgQhEEHZvsIALQAAGkEIIQIgCkEIELAEIghFDQRBACECIAYhAwNAIAIgCkYNASACIAhqIgsgAiAQaiIMKQMANwMAIAtBGGogDEEYaikDADcDACALQRBqIAxBEGopAwA3AwAgC0EIaiAMQQhqKQMANwMAIAJBIGohAiADQQFrIgMNAAsLIAQgBjYCLCAEIAg2AiggBCAGNgIkIARBGGogBEEkahC7AiAHKAIAIgMEQCAHKAIEIANBBXQQuQQLIAVBAmohBSAHIAQpAhg3AgAgB0EIaiAEQSBqKAIANgIAIA5BAWsiDg0ACwwDCyAAIAEpAgA3AgAgAEEQaiABQRBqKQIANwIAIABBCGogAUEIaikCADcCAAwDCyAFIAlBwNDAABDWAwALIAIgChCoBAALIAAgBCkCDDcCACAAQQhqIARBFGooAgA2AgAgASgCECEJQQghCAJAIAEoAhQiBkUNACAGQQV0IQMgBkH///8fSwRAQQAhBQwDC0EAIQJB2b7CAC0AABpBCCEFIANBCBCwBCIIRQ0CIAZBBXQhCiAGIQMDQCACIApGDQEgAiAIaiIFIAIgCWoiBykDADcDACAFQRhqIAdBGGopAwA3AwAgBUEQaiAHQRBqKQMANwMAIAVBCGogB0EIaikDADcDACACQSBqIQIgA0EBayIDDQALCyAAIAY2AhQgACAINgIQIAAgBjYCDCABKAIEIgAhAgNAIAIoAgAiAwRAIAJBBGooAgAgA0EFdBC5BAsgAkEMaiECIA1BAWsiDQ0ACyABKAIAIgMEQCAAIANBDGwQuQQLIAEoAgwiAEUNACAJIABBBXQQuQQLIARBMGokAA8LIAUgAxCoBAALnwYBD38jAEEwayIEJAACQAJAAkACQAJAIAEoAggiDUECTwRAIARBDGogARDYAkEBIQUgBCgCFCIJQQFrIgNBACADIAlNGyIDQQF2IANBAXFqIg5FDQMgBCgCECEPA0AgBSAJTw0CAkAgDyAFQQxsaiIHKAIIIgZFBEBBCCEIDAELIAZBBXQhCiAGQf///x9LBEBBACECDAULIAcoAgQhEEHZvsIALQAAGkEIIQIgCkEIELAEIghFDQRBACECIAYhAwNAIAIgCkYNASACIAhqIgsgAiAQaiIMKQMANwMAIAtBGGogDEEYaikDADcDACALQRBqIAxBEGopAwA3AwAgC0EIaiAMQQhqKQMANwMAIAJBIGohAiADQQFrIgMNAAsLIAQgBjYCLCAEIAg2AiggBCAGNgIkIARBGGogBEEkahC8AiAHKAIAIgMEQCAHKAIEIANBBXQQuQQLIAVBAmohBSAHIAQpAhg3AgAgB0EIaiAEQSBqKAIANgIAIA5BAWsiDg0ACwwDCyAAIAEpAgA3AgAgAEEQaiABQRBqKQIANwIAIABBCGogAUEIaikCADcCAAwDCyAFIAlBwNDAABDWAwALIAIgChCoBAALIAAgBCkCDDcCACAAQQhqIARBFGooAgA2AgAgASgCECEJQQghCAJAIAEoAhQiBkUNACAGQQV0IQMgBkH///8fSwRAQQAhBQwDC0EAIQJB2b7CAC0AABpBCCEFIANBCBCwBCIIRQ0CIAZBBXQhCiAGIQMDQCACIApGDQEgAiAIaiIFIAIgCWoiBykDADcDACAFQRhqIAdBGGopAwA3AwAgBUEQaiAHQRBqKQMANwMAIAVBCGogB0EIaikDADcDACACQSBqIQIgA0EBayIDDQALCyAAIAY2AhQgACAINgIQIAAgBjYCDCABKAIEIgAhAgNAIAIoAgAiAwRAIAJBBGooAgAgA0EFdBC5BAsgAkEMaiECIA1BAWsiDQ0ACyABKAIAIgMEQCAAIANBDGwQuQQLIAEoAgwiAEUNACAJIABBBXQQuQQLIARBMGokAA8LIAUgAxCoBAALlAgBB34gACAAKQMAIgJCAYYiATcDACAAIAApAwgiBEIBhiACQj+IhCIDNwMIIAAgACkDECIFQgGGIARCP4iEIgI3AxAgACAAKQMYIgZCAYYgBUI/iIQiBDcDGCAAIAApAyAiB0IBhiAGQj+IhCIFNwMgIAAgACkDKEIBhiAHQj+IhCIGNwMoAkAgBkKazf/Lo73EgBpUDQACQCAGQprN/8ujvcSAGlINACAFQtfZrprk9umNywBUDQEgBULX2a6a5PbpjcsAUg0AIARCv6WUnM/w0rvkAFQNASAEQr+llJzP8NK75ABSDQAgAkKk7MO1j9S0mOcAVA0BIAJCpOzDtY/UtJjnAFINACADQv//z4rr///VHlQNASABQqrV/v///7//uX9WDQAgA0L//8+K6///1R5RDQELIAAgAULVqoGAgIDAgMYAfDcDACAAQoCAsPWUgICqYUKBgLD1lICAqmEgAUKr1f7///+//7l/VBsiASADfCIDNwMIIAAgAiABIANYrSIBfSIDQqTsw7WP1LSY5wB9Igc3AxAgACAEIAMgB1atIAEgAlatUa0iAn0iAUK/pZScz/DSu+QAfSIDNwMYIAAgBSABIANWrSACIARWrVGtIgJ9IgRC19mumuT26Y3LAH0iATcDICAAIAYgASAEVK0gAiAFVq1RrX1Cms3/y6O9xIAafTcDKAsgACAAKQMwIgJCAYYiATcDMCAAIAApAzgiBEIBhiACQj+IhCIDNwM4IAAgACkDQCIFQgGGIARCP4iEIgI3A0AgACAAKQNIIgZCAYYgBUI/iIQiBDcDSCAAIAApA1AiB0IBhiAGQj+IhCIFNwNQIAAgACkDWEIBhiAHQj+IhCIGNwNYAkAgBkKazf/Lo73EgBpUDQACQCAGQprN/8ujvcSAGlINACAFQtfZrprk9umNywBUDQEgBULX2a6a5PbpjcsAUg0AIARCv6WUnM/w0rvkAFQNASAEQr+llJzP8NK75ABSDQAgAkKk7MO1j9S0mOcAVA0BIAJCpOzDtY/UtJjnAFINACADQv//z4rr///VHlQNASABQqrV/v///7//uX9WDQAgA0L//8+K6///1R5RDQELIAAgAULVqoGAgIDAgMYAfDcDMCAAQoCAsPWUgICqYUKBgLD1lICAqmEgAUKr1f7///+//7l/VBsiASADfCIDNwM4IAAgAiABIANYrSIBfSIDQqTsw7WP1LSY5wB9Igc3A0AgACAEIAMgB1atIAEgAlatUa0iAn0iAUK/pZScz/DSu+QAfSIDNwNIIAAgBSABIANWrSACIARWrVGtIgJ9IgRC19mumuT26Y3LAH0iATcDUCAAIAYgASAEVK0gAiAFVq1RrX1Cms3/y6O9xIAafTcDWAsgAAuXBgIHfgt/IwBBQGoiCyQAIAEoAggiCiACKAIIIgwgCiAMSxshDiACIAEgCiAMSSINGyIPKAIAIRAgDygCBCEPIAEgAiANGyIBKAIAIREgASgCBCESAkAgCiAMIA0bIgFFDQAgAUEFdCENIA5BAWohDEEAIQEDQCAMQQFrIgwEQAJAAkAgASASaiIKKQMAIgYgASAPaiICKQMAfCIEIApBCGopAwAiAyACQQhqIhMpAwB8IgUgA1QgBSAKQRBqKQMAIgcgAkEQaiIUKQMAfCIDIAdUIAMgAyAKQRhqKQMAIgcgAkEYaiIKKQMAfCIIIAdUrXwiA1ZyrXwiByAFVHKtfCIFIARUIAQgBlRyDQBCgYCAgHAhBiAFIQQCQCAFQoGAgIBwUg0AIAdCAFINAUL/////DyEGIAMhBCADQv////8PUg0AIAhCf1ENAUIAIQRCgYCAgHAhBQwCCyAEIAZaDQAgByEEIAMhBgwBCyADQv////8PfSIEIAhCf1KtIgl9IQYgByADQv////8PVCAEIAlUcq0iA30hBCAFQv7///8PQv////8PIAMgB1YbfCEFIAhCAXwhCAsgAiAFNwMAIBMgBDcDACAUIAY3AwAgCiAINwMAIA0gAUEgaiIBRw0BDAILCyAOIA5BrPXAABDWAwALIBEEQCASIBFBBXQQuQQLIAtBADoAHCALIA82AhQgCyAPIA5BBXRqNgIYIAtBCGogC0EUahCzAiALKAIQIgFBAk8EQCABQQF2IQ4gCygCDCICIAFBBXRqQSBrIQEDQCACKQMAIQQgAiABKQMANwMAIAJBGGoiCikDACEDIAogAUEYaiIKKQMANwMAIAJBEGoiDCkDACEFIAwgAUEQaiIMKQMANwMAIAJBCGoiDSkDACEGIA0gAUEIaiINKQMANwMAIAEgBDcDACAKIAM3AwAgDCAFNwMAIA0gBjcDACABQSBrIQEgAkEgaiECIA5BAWsiDg0ACwsgACALKQIINwIAIABBCGogC0EQaigCADYCACAQBEAgDyAQQQV0ELkECyALQUBrJAAL8AYCCH4LfyMAQUBqIgwkACABKAIIIg0gAigCCCIOIA0gDksbIRAgAiABIA0gDkkiDxsiCygCACETIAsoAgQhESABIAIgDxsiASgCACEUIAEoAgQhFQJAIA0gDiAPGyIBRQ0AIAFBBXQhDiAQQQFqIQ1BACEBA0AgDUEBayINBEBCqcDGia7Ok7IwIQUgASARaiISKQMAIAEgFWoiAikDAHwgAkEIaikDACIDIBJBCGoiDykDAHwiCCADVCAIIAJBEGopAwAiAyASQRBqIgspAwB8IgQgA1QgBCACQRhqKQMAIgMgEkEYaiICKQMAfCIHIANUrXwiBiAEVHKtfCIEIAhUcq18IgkhAwJAAkACQCAJQqnAxomuzpOyMFINAELdsIWM6LaRqLh/IQUgBCEDIARC3bCFjOi2kai4f1INAEKNlcfDltLawJd/IQUgBiEDIAZCjZXHw5bS2sCXf1INAELH+vPD7YKjkDwhBSAHIgNCx/rzw+2Co5A8UQ0BCyADIAVaDQAgBCEFIAYhAwwBCyAGQvPquLzpraW/6AB8IgogB0LH+vPD7YKjkDxUrSIFfSEDIARCo8/685fJ7tfHAHwiCCAGQo2Vx8OW0trAl39UIAUgClZyrSIGfSEFIAkgBELdsIWM6LaRqLh/VCAGIAhWcq19QqnAxomuzpOyMH0hCSAHQsf688PtgqOQPH0hBwsgEiAJNwMAIA8gBTcDACALIAM3AwAgAiAHNwMAIA4gAUEgaiIBRw0BDAILCyAQIBBBrPXAABDWAwALIBQEQCAVIBRBBXQQuQQLIAxBADoAHCAMIBE2AhQgDCARIBBBBXRqNgIYIAxBCGogDEEUahCzAiAMKAIQIgFBAk8EQCABQQF2IQ0gDCgCDCICIAFBBXRqQSBrIQEDQCACKQMAIQcgAiABKQMANwMAIAJBGGoiCykDACEGIAsgAUEYaiIOKQMANwMAIAJBEGoiCykDACEEIAsgAUEQaiIPKQMANwMAIAJBCGoiCykDACEDIAsgAUEIaiILKQMANwMAIAEgBzcDACAOIAY3AwAgDyAENwMAIAsgAzcDACABQSBrIQEgAkEgaiECIA1BAWsiDQ0ACwsgACAMKQIINwIAIABBCGogDEEQaigCADYCACATBEAgESATQQV0ELkECyAMQUBrJAALkAYBFH8jAEHgAGsiAyQAIANB2ABqIgwgAkEoaiINKQMANwMAIANB0ABqIg4gAkEgaiIPKQMANwMAIANByABqIhAgAkEYaiIRKQMANwMAIANBQGsiEiACQRBqIhMpAwA3AwBBCCEJIANBOGoiFCACQQhqIhUpAwA3AwAgAyACKQMANwMwIAMgASADQTBqEJcCQQghCgJAAkACQCABKAIUIgRFDQAgBEEwbCILQQBIIARBqtWqFUtyDQEgASgCECEWQdm+wgAtAAAaQQghBSALQQgQsAQiCkUNASAEIQUDQCAGIAtGDQEgBiAKaiIHIAYgFmoiCCkDADcDACAHQShqIAhBKGopAwA3AwAgB0EgaiAIQSBqKQMANwMAIAdBGGogCEEYaikDADcDACAHQRBqIAhBEGopAwA3AwAgB0EIaiAIQQhqKQMANwMAIAZBMGohBiAFQQFrIgUNAAsLIAMgBDYCFCADIAo2AhAgAyAENgIMIAwgDSkDADcDACAOIA8pAwA3AwAgECARKQMANwMAIBIgEykDADcDACAUIBUpAwA3AwAgAyACKQMANwMwIANBGGogAUEYaiADQTBqEJcCAkAgASgCLCICRQ0AQQAhBSACQTBsIgdBAEggAkGq1aoVS3INAiABKAIoIQhB2b7CAC0AABpBCCEFIAdBCBCwBCIJRQ0CQQAhBiACIQUDQCAGIAdGDQEgBiAJaiIBIAYgCGoiBCkDADcDACABQShqIARBKGopAwA3AwAgAUEgaiAEQSBqKQMANwMAIAFBGGogBEEYaikDADcDACABQRBqIARBEGopAwA3AwAgAUEIaiAEQQhqKQMANwMAIAZBMGohBiAFQQFrIgUNAAsLIANBKGoiASAJNgIAIAMgAjYCLCADIAI2AiQgAEEQaiADQRBqKQIANwIAIABBCGogA0EIaikCADcCACAAIAMpAgA3AgAgACADKQIYNwIYIABBIGogA0EgaikCADcCACAAQShqIAEpAgA3AgAgA0HgAGokAA8LIAUgCxCoBAALIAUgBxCoBAAL5QUBCH8jAEGACWsiAyQAIANBmAZqIgVBsPrAACkDADcDACADQZAGaiIHQaj6wAApAwA3AwAgA0GIBmoiCEGg+sAAKQMANwMAIANBoAZqQgA3AwAgA0GoBmoiCUIANwMAIANBsAZqIgRCADcDACADQbgGaiIGQgA3AwAgA0HIB2pCADcDACADQdAHakIANwMAIANB2AdqQgA3AwAgA0HgB2pCADcDACADQegHakIANwMAIANB8AdqQgA3AwAgA0H4B2pCADcDACADQgA3A8AHIANBmPrAACkDADcDgAYgA0GgCGpCADcDACADQfgIakIANwMAIANB8AhqQgA3AwAgA0HoCGpCADcDACADQeAIakIANwMAIANB2AhqQgA3AwAgA0HQCGpCADcDACADQcgIakIANwMAIANBuAhqIAYpAwA3AwAgA0GwCGogBCkDADcDACADQagIaiAJKQMANwMAIANBmAhqIAUpAwA3AwAgA0GQCGogBykDADcDACADQYgIaiAIKQMANwMAIANCADcDwAggAyADKQOABjcDgAggAyABIAIQ6gEgA0HAAWoiCiABQcABaiIFIAJBwAFqIgkQ6gEgA0HABGoiBiABIAUQlgIgA0GABWoiByABQUBrIAFBgAJqEJYCIANBwAVqIgggAUGAAWogAUHAAmoQlgIgA0GABmoiBCACIAkQlgIgA0HABmoiASACQUBrIAJBgAJqEJYCIANBgAdqIgUgAkGAAWogAkHAAmoQlgIgA0GAA2oiAiAGIAQQ6gEgBCAKIANBwAdqEOoBIAAgAyAEEJYCIABBQGsgA0FAayABEJYCIABBgAFqIANBgAFqIAUQlgIgBCADQcABEM8EGiAGIAIgBBDPASAHIANBwANqIAEQzwEgCCADQYAEaiAFEM8BIAQgCkHAARDPBBogAEHAAWogBiAEEM8BIABBgAJqIAcgARDPASAAQcACaiAIIAUQzwEgA0GACWokAAvgBQIEfwN+IwBBMGsiBCQAIARBKGpCADcDACAEQSBqQgA3AwAgBEEYakIANwMAIARBEGpCADcDACAEQQhqQgA3AwAgBEIANwMAIAJBBnYhAwJAAkAgAkE/cSIFRQRAIANBBkYNASACQf8CSw0CIAQgA0EDdGogASkDADcDACADQQVrQQJJDQEgA0EBaiEFQQYgA2siBkEAIAZBBk0bIgZBAUYEQCAFIQMMAwsgBCAFQQN0aiABKQMINwMAIANBBEYNASADQQJqIQUgBkECRgRAIAUhAwwDCyAEIAVBA3RqIAEpAxA3AwAgA0EDRg0BIANBA2ohBSAGQQNGBEAgBSEDDAMLIAQgBUEDdGogASkDGDcDACADQQJGDQEgA0EEaiEFIAZBBEYEQCAFIQMMAwsgBCAFQQN0aiABKQMgNwMAIANBAUYNASADQQVqIQMgBkEFRg0CIAQgA0EDdGogASkDKDcDACACQcAASQ0BQQZBBkHE2cAAENYDAAsgAkGAA08EQCADQQZB5NnAABDWAwALIAQgA0EDdCIGaiABKQMAIgggBa0iCYg3AwAgAkG/AksNACAEIANBAWoiBUEDdGogCEEAIAJrQT9xrSIIhiABKQMIIgcgCYiENwMAIAVBBUYNACAEIANBAmoiAkEDdGogByAIhiABKQMQIgcgCYiENwMAIAJBBUYNACAEIANBA2oiAkEDdGogByAIhiABKQMYIgcgCYiENwMAIAJBBUYNACAEIANBBGoiAkEDdGogByAIhiABKQMgIgcgCYiENwMAIAJBBUYNACAEIAZqQShqIAcgCIYgASkDKCAJiIQ3AwALIAAgBCkDADcDACAAQShqIARBKGopAwA3AwAgAEEgaiAEQSBqKQMANwMAIABBGGogBEEYaikDADcDACAAQRBqIARBEGopAwA3AwAgAEEIaiAEQQhqKQMANwMAIARBMGokAA8LIANBBkHU2cAAENYDAAu7EAIKfw1+IwBBgAVrIgMkACMAQcACayICJAAgAkGwAmpCA0KJ9auctYu/lnNCABC9AyACQfABaiACKQOwAiIOQonHmaSu8IHph39+IgxCx/rzw+2Co5A8QgAQvQMgAkHgAWogDEKNlcfDltLawJd/QgAQvQMgAkHQAWogDELdsIWM6LaRqLh/QgAQvQMgAkHAAWogDEKpwMaJrs6TsjBCABC9AyACQaACakIDQvuDlKKdosbztX9CABC9AyACQbABaiACKQPgASINIAJBuAJqKQMAfCIPIAJB+AFqKQMAIA4gAikD8AEiDHwgDFStfHwiDiACKQOgAnwiDEKJx5mkrvCB6Yd/fiITQsf688PtgqOQPEIA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BGogE0LX2a6a5PbpjcsAQgAQvQMgAkGABGogE0Kazf/Lo73EgBpCABC9AyACQcAFaiAUQtXt1uTE7dHyjX9CABC9AyACQeADaiACKQPABSIaIAIpA8AEIhsgAkG4BWopAwAgFyAYVq18IhcgAikD8AMiHCAVIBlWrSACQfgEaikDACAVIBZUrXx8fCIWfCIZfCIVIAJB2ARqKQMAIAIpA9AEIhMgGHwgE1StfHwiHXwiGEIAQv3/8//P///5iX8QvQMgAkHQA2ogAkHoA2opAwAiE0Kr1f7///+//7l/QgAQvQMgAkHAA2ogE0L//8+K6///1R5CABC9AyACQbADaiATQqTsw7WP1LSY5wBCABC9AyACQaADaiATQr+llJzP8NK75ABCABC9AyACQZADaiATQtfZrprk9umNywBCABC9AyACQYADaiATQprN/8ujvcSAGkIAEL0DIAJB0AVqIBRCwIf2nJmV4vXnAEIAEL0DIAJB4AJqIAIpA9AFIh4gAikDwAMiHyACQcgFaikDACAYIBpUrXwiGiAXIBlWrSIZIAIpA/ACIiAgAkH4A2opAwAgFiAcVK18fCIcfCIXIAIpA7AEfCIWIBUgHVatIAJByARqKQMAIBUgG1StfHx8Iht8Ih18IhUgAkHYA2opAwAgAikD0AMiEyAYfCATVK18fCIhfCIYQgBC/f/z/8////mJfxC9AyACQdACaiACQegCaikDACITQqvV/v///7//uX9CABC9AyACQcACaiATQv//z4rr///VHkIAEL0DIAJBsAJqIBNCpOzDtY/UtJjnAEIAEL0DIAJBoAJqIBNCv6WUnM/w0rvkAEIAEL0DIAJBkAJqIBNC19mumuT26Y3LAEIAEL0DIAJBgAJqIBNCms3/y6O9xIAaQgAQvQMgAkHgBWogFEKtquao29DPvJp/QgAQvQMgAkHgAWogAikD4AUiIiACKQPAAiIjIAJB2AVqKQMAIBggHlStfCIeIBogHVatIh0gFyAZVK0iJCACKQPwASIlIAJB+AJqKQMAIBwgIFStfHwiHHwiGSACKQOgBHwiGiAWIBtWrSACQbgEaikDACAWIBdUrXx8fCIgfCIXIAIpA7ADfCIWIBUgIVatIAJByANqKQMAIBUgH1StfHx8Ih98Iht8IhUgAkHYAmopAwAgAikD0AIiEyAYfCATVK18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ACAEQQhqIgUpAwAhDCAFIApBCGoiBSkDADcDACAKIA83AwAgAiANNwMAIAYgDjcDACAFIAw3AwAgCkEgayEKIARBIGohBCAHQQFrIgcNAAsLIAsgCCkCxAI3AgAgC0EIaiAIQcwCaigCADYCACABBEAgCSABQQV0ELkECyAIQfACaiQADAILIAcgBBCoBAALQdTXwQBBFkH818EAEOgDAAsgA0HIAGoiASADQQhqKAIANgIAIAMgAykDADcDQCADQShqIANBQGsgCxAzIANBIGogA0EwaigCADYCACADIAMpAig3AxggASADQTxqKAIAIgc2AgAgAyADKQI0NwNAIAdBDEsEQEHnjsAAQTpBuI/AABD0AwALIAdBDEkEQEEMIAciAWsiBSADKAJAIAFrSwRAIANBQGsgASAFEJQDIAMoAkghAQsgAygCRCIEIAFBBXQiCWohBiAFQQJPBEAgBkEAIAdBf3NBDGpBBXQQ0QQaIAkgB0EFdGsgBGpB4AJqIQYgASAFakEBayEBCyAGQgA3AwAgBkEYakIANwMAIAZBEGpCADcDACAGQQhqQgA3AwAgAyABQQFqNgJICyAAIAMpA0A3AgwgACADKQMYNwIAIABBFGogA0HIAGooAgA2AgAgAEEIaiADQSBqKAIANgIAIAMoAgwiAARAIAMoAhAgAEEFdBC5BAsgA0HQAGokAAupBQIPfwF+IwBB8ABrIgIkACABKAIAIQ4gASgCBCIHIQQgASgCCCIBBEAgByABQTBsIgNqIQQgByEBA0AgAkHoAGogAUEoaiIIKQMANwMAIAJB4ABqIAFBIGoiBSkDADcDACACQdgAaiABQRhqIgkpAwA3AwAgAkHQAGogAUEQaiIGKQMANwMAIAJByABqIAFBCGoiCikDADcDACACIAEpAwA3A0AgAkEQaiACQUBrEIYDIAggAkE4aikDADcDACAFIAJBMGopAwA3AwAgCSACQShqKQMANwMAIAYgAkEgaikDADcDACAKIAJBGGopAwA3AwAgASACKQMQNwMAIAFBMGohASADQTBrIgMNAAsLIAJBADoAGCACIAQ2AhQgAiAHNgIQIAJBBGogAkEQahCUAiACKAIMIgNBAk8EQCADQQF2IQQgAigCCCIBIANBMGxqQTBrIQMDQCABKQMAIREgASADKQMANwMAIAJB6ABqIgggAUEoaiIFKQMANwMAIAJB4ABqIgkgAUEgaiIGKQMANwMAIAJB2ABqIgogAUEYaiILKQMANwMAIAJB0ABqIg8gAUEQaiIMKQMANwMAIAJByABqIhAgAUEIaiINKQMANwMAIAUgA0EoaiIFKQMANwMAIAYgA0EgaiIGKQMANwMAIAsgA0EYaiILKQMANwMAIAwgA0EQaiIMKQMANwMAIA0gA0EIaiINKQMANwMAIAIgETcDQCAFIAgpAwA3AwAgBiAJKQMANwMAIAsgCikDADcDACAMIA8pAwA3AwAgDSAQKQMANwMAIAMgAikDQDcDACADQTBrIQMgAUEwaiEBIARBAWsiBA0ACwsgACACKQIENwIAIABBCGogAkEMaigCADYCACAOBEAgByAOQTBsELkECyACQfAAaiQAC44FAgF/CH4jAEGgAWsiAiQAIAJBMGogASkDGCIEQv////8PQgAQvQMgAkFAayAEQoGAgIBwQgAQvQMgAiAEIAEpAxAiA3wiBSACKQMwfCIEQoGAgIBwQgAQvQMgAkEQaiAEQiCGIgcgBCAFVK0gAkE4aikDACADIAVWrXx8IgYgASkDCHwiCHwiBUKBgICAcEIAEL0DIAJBIGogBUIghiIJIAUgB1StIARCIIh8IgcgAikDQCIKIAEpAwB8IgMgBiAIVq18IgZ8Igh8IgRCgYCAgHBCABC9AwJAIAJBKGopAwAgAkEYaikDACACQQhqKQMAIAMgBlatIAJByABqKQMAIAMgClStfHwiBiACKQMAfCIDIAZUrXwgAyAHIAhWrXwiByADVK18IgYgAikDEHwiAyAGVK18IAMgAyAEIAlUrSAFQiCIfCIFIAd8IgcgBVStfCIDVq18IgYgAikDIHwiBSAGVK18IAUgAyAEQiCGIgMgB3wiBiADVK0gBEIgiHwiA3wiBCADVK18IgMgBVStfCIIQoGAgIBwVARAIAQhBSADIQcMAQsCQCAEQv////8PVg0AQgAhByADQgBSDQBC/////w8hBSAEQv////8PVARAIAQhBUKBgICAcCEIDAILIAZCf1ENAEKBgICAcCEIDAELIARC/////w99IgcgBkJ/Uq0iCX0hBSADIARC/////w9UIAcgCVRyrSIEfSEHIAggAyAEVK19Qv////8PfCEIIAZCAXwhBgsgAiAGNwNoIAIgBTcDYCAC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CAwBCyAEQgF9IQggByAEUK0iBn0hBSAJIAYgB1atIgR9IQYgCkLu/////////3dC7/////////93IAQgCVYbfCEKCyABIAg3AzggASAFNwMwIAEgBjcDKCABIAo3AyBCkYCAgICAgIAIIQYgCykDKCIEIAEpA0h8IgUgBFQgBSALKQMwIgQgASkDUHwiCCAEVCAIIAspAzgiByABKQNYfCIEIAdUrXwiByAIVHKtfCIJIAVUcq0gASkDQCALKQMgfHwiCiEFAkACQCAKQpGAgICAgICACFEEQEIBIQYgBEIBUQ0BIAQhBSAHIAmEQgBSDQELIAUgBloNACAJIQYgByEFIAQhCAwBCyAEQgF9IQggByAEUK0iBn0hBSAJIAYgB1atIgR9IQYgCkLu/////////3dC7/////////93IAQgCVYbfCEKCyACQQxqIQIgASAINwNYIAEgBTcDUCABIAY3A0ggASAKNwNAIAwQPyADQQxrIgMNAAsLIAAgASkDIDcDACAAQRhqIAFBOGopAwA3AwAgAEEQaiABQTBqKQMANwMAIABBCGogAUEoaikDADcDACALQeAAaiQAC4kRAgt/A34jAEFAaiIGJAACQAJAAkACfwJAAkAgAigCCCIDRQ0AIAIoAgQiCCgCACEEAkACQAJAIANBAWsOAgEAAgsgCCgCBA0BCyAERQ0BIAEoAgghAyABKAIEIQUCQAJAIARBgIAETwRAIANFDQIgA0ECdCEHIAStIQ4gA0H/////A2oiCUH/////A3EiAw0BIAUgB2oMBgsgA0UNASAFQQRrIQkgA0ECdCEDA0AgB0EQdCADIAlqKAIAIgdBEHZyIARwQRB0IAdB//8DcXIgBHAhByADQQRrIgMNAAsMBgsgA0EBakH+////B3EhBCAFIAdqQQhrIQMDQCADNQIAIANBBGo1AgAgD0IghoQgDoJCIIaEIA6CIQ8gA0EIayEDIARBAmsiBA0ACwwDCyAGQTBqQaz2wAAoAgA2AgAgBkGk9sAAKQIANwMoDAULIAZBEGogAUEIaigCADYCACAGIAEpAgA3AwggBkEgaiACQQhqKAIANgIAIAYgAikCADcDGCAGQShqIQIgBkEIaiEEIwBB8ABrIgEkAAJAAkAgBkEYaiIDKAIIIgcEQCAEKAIIIgtFBEAgAkEIakHYhsIAKAIAIgU2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/8////mJf34iDEKr1f7///+//7l/QgAQvQMgAkGgBGogDEL//8+K6///1R5CABC9AyACQZAEaiAMQqTsw7WP1LSY5wBCABC9AyACQYAEaiAMQr+llJzP8NK75ABCABC9AyACQfADaiAMQtfZrprk9umNywBCABC9AyACQeADaiAMQprN/8ujvcSAGkIAEL0DIAJBgAVqQgNC8YnEzuDUubsKQgAQvQMgAkHQA2ogAikDgAUiDiACKQOgBCIQIAJBmAVqKQMAfCIPIAJBuARqKQMAIAIpA7AEIgwgEUJ+g3wgDFStfHwiDXwiEUL9//P/z///+Yl/fiIMQqvV/v///7//uX9CABC9AyACQcADaiAMQv//z4rr///VHkIAEL0DIAJBsANqIAxCpOzDtY/UtJjnAEIAEL0DIAJBoANqIAxCv6WUnM/w0rvkAEIAEL0DIAJBkANqIAxC19mumuT26Y3LAEIAEL0DIAJBgANqIAxCms3/y6O9xIAaQgAQvQMgAkHwBGpCA0LV7dbkxO3R8o1/QgAQvQMgAkHwAmogAikD8AQiEiACKQPAAyITIAJBiAVqKQMAIA4gEVatfCIOIAIpA5AEIhQgDSAPVK0gAkGoBGopAwAgDyAQVK18fHwiEHwiDXwiDyACQdgDaikDACACKQPQAyIMIBF8IAxUrXx8IhV8IhFC/f/z/8////mJf34iDEKr1f7///+//7l/QgAQvQMgAkHgAmogDEL//8+K6///1R5CABC9AyACQdACaiAMQqTsw7WP1LSY5wBCABC9AyACQcACaiAMQr+llJzP8NK75ABCABC9AyACQbACaiAMQtfZrprk9umNywBCABC9AyACQaACaiAMQprN/8ujvcSAGkIAEL0DIAJB4ARqQgNCwIf2nJmV4vXnAEIAEL0DIAJBkAJqIAIpA+AEIhYgAikD4AIiFyACQfgEaikDACARIBJUrXwiEiANIA5UrSINIAIpA4AEIhggAkGYBGopAwAgECAUVK18fCIUfCIOIAIpA7ADfCIQIA8gFVatIAJByANqKQMAIA8gE1StfHx8IhN8IhV8Ig8gAkH4AmopAwAgAikD8AIiDCARfCAMVK18fCIZfCIRQv3/8//P///5iX9+IgxCq9X+////v/+5f0IAEL0DIAJBgAJqIAxC///Piuv//9UeQgAQvQMgAkHwAWog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j9S0mOcAUg0BIA9C///Piuv//9UeVg0AIA9C///Piuv//9UeUgRAQqTsw7WP1LSY5wAhDAwCCyAQQqvV/v///7//uX9aDQBC///Piuv//9UeIQ9CpOzDtY/UtJjnACEMDAELQn9CACAOQtfZrprk9umNywB9Ig4gEUK/pZScz/DSu+QAVCARQr+llJzP8NK75AB9IhEgDEKk7MO1j9S0mOcAVCAMQqTsw7WP1LSY5wB9IgwgD0L//8+K6///1R5UIA9C///Piuv//9UefSIPIBBCq9X+////v/+5f1StIhJUcq0iE1RyrSIUVHKtIhVUGyENIA8gEn0hDyAMIBN9IQwgESAUfSERIA4gFX0hDiAQQtWqgYCAgMCAxgB8IRAMAQtCv6WUnM/w0rvkACERQtfZrprk9umNywAhDgsgA0IANwMwIAMgEDcDKCADIA83AyAgAyAMNwMYIAMgETcDECADIA43AwggAyANNwMAIANBOGpCADcDACADQUBrQgA3AwAgA0HIAGpCADcDACADQdAAakIANwMAIANB2ABqQgA3AwAgAkGgBWokACADQaAFaiIGIAFCAxDNASADQeAGaiICIAFB4ABqIgdCAxDNASADQaACaiIEEG0gA0GABmoiBSACIAQQVCADQcAEaiIKIAYgBRDLASACIAFBwAFqIghCAxDNASAGEG0gBCAGQgIQzQEgBSACIAQQVCADQcABaiIJIAogBRDLASAEIAMgARBUIAIgBCAHEFQgBSACIAgQVCAEEG0gAiAFIAQQVCADQeAAaiILIAkgAhCUASAEIAsQRCADKQOwAiEMIAMpA6gCIQ8CQCADKQOgAlAEQCADQdABaiADQbgCakHQABDPBBogAyAMNwPIASADIA83A8ABIAYgAUICEM0BIAIgByAIEFQgBBBtIAUgAiAEEFQgAiAGIAUQlAEgBCACIAkQVCACIAEQowIgCiACIAcQVCAFIAhCAhDNASACEG0gBiAFIAIQVCACIAogBhDLASADQYADaiACIAkQVCACIAEQowIgBSACIAgQVCACIAdCAhDNASAGIAUgAhDLASADQeADaiAGIAkQVCAAQQhqIARBoAIQzwQaDAELIAAgDDcDECAAIA83AwhCASEnCyAAICc3AwAgA0HAB2okAAutWQIMfyF+IwBBwAFrIgMkACADQThqIQQjAEGgEWsiAiQAAkACQAJAAkACQAJAIAEQhQNB/wFxQQFrDgIAAQILIARCADcDCCAEQgE3AwAgBEFAa0IANwMAIARBOGpCADcDACAEQTBqQgA3AwAgBEEoakIANwMAIARBIGpCADcDACAEQRhqQgA3AwAgBEEQakIANwMADAQLIAJBsA9qQgA3AwAgAkGoD2pCADcDACACQgA3A6APIAJCATcDuA8CQEGo+8AAQdj5wABBIBDQBCIKBEAgAkHwEGpCfzcDACACQn83A+gQIAJC////////////ADcD4BAgAkJHNwP4EAwBCyACQfgQakHA+8AAKQMANwMAIAJB8BBqQbj7wAApAwA3AwAgAkHoEGpBsPvAACkDADcDACACQaj7wAApAwA3A+AQCyACQcAPaiACQeAQaiIHEMcBIAIpA8APIRggAikDyA8hHiACKQPQDyEcIAIpA9gPIRQgAkHwEGoiCUIANwMAIAJB6BBqIgVCADcDACACQgA3A+AQIAIgFEIBgzcD+BAgByACQaAPakEgENAEDQEMAgsgBEIANwMADAILIB4hEgNAIAlCADcDACAFQgA3AwAgAkIANwPgECACIBxCP4YgFEIBiIQiFEIBgzcD+BAgGEI/hiASQj+GIBxCAYiEIRwgGEIBiCEYIAhBAWohCCASQgGIhCIeIRIgAkHgEGogAkGgD2pBIBDQBA0ACwsgAiAUNwPYDyACIBw3A9APIAIgHjcDyA8gAiAYNwPADyACQdAQakIANwMAIAJByBBqQgA3AwAgAkIANwPAEELMACEPIAJCzAA3A9gQIAJBwBBqEIUDQf8BcQRAQgAhEkIAIQ4DQCACAn4CQAJAIA4gEiAQIA9CJnwiEyAPVK18IhYgEFStfCIPIBJUrXwiESAOVA0AQv///////////wAhEiARIg5C////////////AFEEQEL///////////8AIQ4gD0J/UgRAIA8hEgwDC0J/IRIgFkJ/Ug0CQm0hEiATIg5CbVENAQsgDiASWg0AIBEhDiAPIRIMAQsgFkIBfCISIBNCbVStIg59IRAgD0IBfCIkIBZCf1IgDiASVnKtIg59IRIgESAPQn9SIA4gJFZyrX1C////////////AH0hDiATQhN8DAELIBYhECATCyIPNwPYECACIBA3A9AQIAIgEjcDyBAgAiAONwPAECACQcAQ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IBUgJlatIBIgE1StfHwiEnwiHSACKQPADHwiGyAOIB8gDyAffCIVVq18IBUgFSAUICAgKSArVK18Ig4gGnwiDyAOVK18IA8gDyAQfCITVq18fCIPVq18fCIaIAIpA/AMfCIVIBpUrXwgFSACQYgNaikDACIQIA8gAikDgA0iDnwiFCAPVK18IBQgFCAQIA4gE3wiDyATVK18IA8gDyACQZgNaikDACACKQOQDSIOICl8IA5UrXx8Ig5WrXx8IhNWrXx8IhQgFVStfCIVIBogG1StIAJByAxqKQMAIBsgHVStfHwiDyAZIB1WrSASIBdUrXx8IhB8IhJCAFMgEiAVVK1CACAPIBBWrX1Scg0AAkAgEkL///////////8AUQRAIBRCf1ENAUL///////////8AIRILIBQhDyATIRAMAgtCfyEPIBNCf1IEQEL///////////8AIRIgEyEQDAILIA5CbVoNAEL///////////8AIRJCfyEQDAELIBNCAXwiFyAOQm1UrSIPfSEQIBRCAXwiFSATQn9SIA8gF1ZyrSITfSEPIBIgFEJ/UiATIBVWcq19Qv///////////wB9IRIgDkITfCEOCyACIA43A9gQIAIgEDcD0BAgAiAPNwPIECACIBI3A8AQIAdBAWohByACQcAQaiACQeAQakEgENAEDQALCwJAIAggB2tBAmsiCUUEQCAcIQ4gFiEPIBEhECAYIRIMAQsgGCESIBEhECAWIQ8gHCEOA0AgAkHwC2ogECASQgAQvQMgAkHQC2ogDyASQgAQvQMgAkGgC2ogDiASQgAQvQMgAkHAC2ogDyAQQgAQvQMgAkGQC2ogDiAQQgAQvQMgAkGAC2ogDiAPQgAQvQMgAkGwDGogEiASQgAQvQMgAkHgC2ogECAQQgAQvQMgAkGwC2ogDyAPQgAQvQMgAkHwCmogDiAOQgAQvQMgAkGgDGogAikDsAwiHEKblK/D8rWo3oZ/fiIOQm1CABC9AyACQZAMaiAOQn9CABC9AyACQYAMaiAOQv///////////wBCABC9AyACQbgLaikDACESIAIgAkHoC2opAwAgAikD4AsiDiACQfgLaikDACIQIAIpA9ALfCITQgGGIAIpA/ALIhFCP4iEfCIPIA5UrXwgDyACQbgMaikDACIOIBFCAYZ8IhggDlStfCIWIA9UrXwiESACQdgLaikDACAQIBNWrXwiDiACKQOgC3wiFCACKQPAC3wiF0IBhiATQj+IhHwiDyARVK0iECACKQOwC3wiFSACQagLaikDACAOIBRWrXwiESACKQOQC3wiEyACQcgLaikDACAUIBdWrXx8IhRCAYYgF0I/iIR8Ig43A4ARIAIgDiAVVK0gEiAQIBVWrXx8IhIgEyAUVq0gAkGYC2opAwAgESATVq18fCIRIAIpA4ALfCITQgGGIBRCP4iEfCIONwOIESACIAIpA/AKIhAgAkGIC2opAwAgESATVq18IhFCAYYgE0I/iIR8IhMgDiASVK18Ig43A5ARIA4gE1StIAJB+ApqKQMAIBAgE1atfHwgEUI/iHwhEiACQZgMaikDACETIAIgGCACQagMaikDACAcIAIpA6AMIg58IA5UrXwiESACKQOQDCIQfCIYfCIONwOYESACIBYgECAOIBhUrSATIBEgGFatfHwiEXwiFnwiDjcDwBAgAkGIDGopAwAhECACIA8gDiAWVK0gEyARIBZWrXx8IhEgAikDgAx8Ig98Ig43A+AQQQAhCAJAIA4gD1StIBAgDyARVK18fCIRUARAQQAhBgwBCyACIBEgAikDgBF8Ig43A4ARIA4gEVQiBkUNACACIAatIhEgAikDiBF8Ig43A4gRIA4gEVQhBiAOIBFaDQAgAiAGrSIRIAIpA5ARfCIONwOQESAOIBFUIQYgDiARWg0AIAatIg4gEnwiEiAOVCEGCyACQeAKaiACKQOYESIOQpuUr8Pytajehn9+IhFCbUIAEL0DIAJB0ApqIBFCf0IAEL0DIAJBwApqIBFC////////////AEIAEL0DIAIgDiACKQPgCiIRfCIONwOYESACQdgKaikDACEWIAIgAkHoCmopAwAgDiARVK18IhEgAikD0AoiEHwiDyACKQPAEHwiDjcDwBAgAiAQIA4gD1StIBYgDyARVK18fCIRfCIPIAIpA+AQfCIONwPgECACQcgKaikDACEQIAIgDiAPVK0gFiAPIBFUrXx8IhEgAikDwAp8Ig8gAikDgBF8Ig43A4ARAkAgDiAPVK0gECAPIBFUrXx8IhFQDQAgAiARIAIpA4gRfCIONwOIESAOIBFUIQggDiARWg0AIAIgCK0iESACKQOQEXwiDjcDkBEgDiARVCEIIA4gEVoNACAIrSIOIBJ8IhIgDlQhCAsgAkGwCmogAikDwBAiDkKblK/D8rWo3oZ/fiIRQm1CABC9AyACQaAKaiARQn9CABC9AyACQZAKaiARQv///////////wBCABC9AyACIA4gAikDsAoiEXwiDjcDwBAgAkGoCmopAwAhFiACIAJBuApqKQMAIA4gEVStfCIRIAIpA6AKIhB8Ig8gAikD4BB8Ig43A+AQIAIgECAOIA9UrSAWIA8gEVStfHwiEXwiDyACKQOAEXwiDjcDgBEgAkGYCmopAwAhECACIA4gD1StIBYgDyARVK18fCIRIAIpA5AKfCIPIAIpA4gRfCIONwOIEUEAIQEgDiAPVK0gECAPIBFUrXx8IhFQRQRAIAIgESACKQOQEXwiDjcDkBEgDiARVCIBrSIRIBJ8Ig4gEiABGyESIAEgDiARVHEhAQsgAkGACmogAikD4BAiDkKblK/D8rWo3oZ/fiIRQm1CABC9AyACQfAJaiARQn9CABC9AyACQeAJaiARQv///////////wBCABC9AyACIA4gAikDgAoiEXwiDjcD4BAgAkH4CWopAwAhFiACIAJBiApqKQMAIA4gEVStfCIRIAIpA/AJIhB8Ig8gAikDgBF8Ig43A4ARIAIgECAOIA9UrSAWIA8gEVStfHwiEXwiDyACKQOIEXwiDjcDiBEgAkHoCWopAwAhECACIA4gD1StIBYgDyARVK18fCIRIAIpA+AJfCIPIAIpA5ARfCIONwOQESAOIA9UrSAQIA8gEVStfHwiECASfCIRIBIgEEIAUiIFGyEOAkACQCAGIAhyIAFyIBAgEVYiAa0gECAFG0IAUnIgASAFcXJFBEAgAikDkBEhDyACKQOIESEQIAIpA4ARIRIgDkIAUwRAIA4hESAPIRwgECEYDAILQv///////////wAhESAOQv///////////wBSIA9Cf1JyIBBCf1JyDQJCfyEcQn8hGCASQm1UDQIMAQsgAikDkBEhHCACKQOIESEYIAIpA4ARIRIgDiERCyAYQgF8Ig8gEkJtVK0iDn0hECAcQgF8IhYgGEJ/UiAOIA9Wcq0iDn0hDyARIBxCf1IgDiAWVnKtfUL///////////8AfSEOIBJCE3whEgsgCUEBayIJDQALCyACQdAJaiASIBJCABC9AyACQZAJaiASIBBCABC9AyACQcAIaiASIA9CABC9AyACQeAHaiASIA5CABC9AyACQcAJaiACKQPQCSITQpuUr8Pytajehn9+IhFCbUIAEL0DIAJBsAlqIBFCf0IAEL0DIAJBoAlqIBFC////////////AEIAEL0DIAJB0AhqIBAgEEIAEL0DIAJBgAhqIBAgD0IAEL0DIAJBoAdqIBAgDkIAEL0DIAJBgAlqIAIpA7AJIhogAkHYCWopAwAiHCACKQOQCSIYfCIWfCIZIAJByAlqKQMAIBMgAikDwAkiEXwgEVStfHwiFCAYfCIXQpuUr8Pytajehn9+IhFCbUIAEL0DIAJB8AhqIBFCf0IAEL0DIAJB4AhqIBFC////////////AEIAEL0DIAJB8AdqIA8gD0IAEL0DIAJBkAdqIA8gDkIAEL0DIAJBsAhqIAJBmAlqKQMAIhEgFCAXVq18IhUgAikD0Ah8IikgGiARIBYgHFStfCITIAIpA8AIIhZ8IiJ8Ih8gFCAZVK0gAkG4CWopAwAiFCAZIBpUrXx8fCIcfCImIAIpA/AIIhh8Ih0gAkGICWopAwAgAikDgAkiESAXfCARVK18fCIXIBZ8IiBCm5Svw/K1qN6Gf34iEUJtQgAQvQMgAkGgCGogEUJ/QgAQvQMgAkGQCGogEUL///////////8AQgAQvQMgAkGAB2ogDiAOQgAQvQMgAkHQB2ogAkHICGopAwAiFiAXICBWrXwiGSACKQOACCIRfCIsIBggESAWIBMgIlatfCITIAIpA+AHIhZ8IhsgAikDoAl8IhogHCAfVK0gFCAfICJUrXx8fCIifCIUICYgKVStIAJB2AhqKQMAIBUgKVatfHx8Ih98IhUgFyAdVK0gAkH4CGopAwAiHCAdICZUrXx8fCIYfCItIAIpA6AIIhd8IisgAkG4CGopAwAgAikDsAgiESAgfCARVK18fCIpIBZ8IiZCm5Svw/K1qN6Gf34iEUJtQgAQvQMgAkHAB2ogEUJ/QgAQvQMgAkGwB2ogEUL///////////8AQgAQvQMCQAJAAkAgAkG4B2opAwAgAkGYCGopAwAgAkHoCGopAwAgGiAiVq0gAkGoCWopAwAgGiAbVK18fCIWIAJB6AdqKQMAIiAgEyAbVq18fCIdIAIpA6AHIhp8IhsgFCAfVq0gAkGICGopAwAiESAUICJUrXx8fCIUIAIpA+AIfCITIBRUrXwgEyAVIBhWrSAcIBUgH1StfHx8Ih8gE1StfCIVIBQgG1StIAJBqAdqKQMAIhQgGyAdVK18fCITIBYgHVatfCIcfCIiIAIpA5AHIhh8Ih0gAkH4B2opAwAgHyAfIAIpA/AHfCIbVq18IBsgGyAsIC1WrSARIBkgLFatfHx8IhZWrXx8IhsgAikDkAh8IhkgG1StfCAZIAJBqAhqKQMAIhEgFiAWIBd8IhdWrXwgFyAXICkgK1StIBEgKyAtVK18fHwiFlatfHwiHyAZVK18IhkgGyAdVK0gAkGYB2opAwAiESAdICJUrXx8IhcgFSAiVq0gEyAcVq18fCIcfCIdIAIpA4AHfCIbIBEgHyAYIB98IhNWrXwgEyATIBQgICAmIClUrXwiESAafCIYIBFUrXwgGCAWIBh8IhRWrXx8IhhWrXx8IhogAikDsAd8IhUgGlStfCAVIBUgAkHIB2opAwAiFiAYIBggAikDwAciEXwiE1atfCATIBMgFiAUIBEgFHwiGFatfCAYIBggAkHYB2opAwAgJiACKQPQByIRfCARVK18fCIYVq18fCITVq18fCIUVq18IhUgGiAbVK0gAkGIB2opAwAgGyAdVK18fCIWIBkgHVatIBcgHFatfHwiEXwiHEIAUyAVIBxWrUIAIBEgFlStfVJyDQAgHEL///////////8AUg0BIBRCf1IEQEL///////////8AIRwMAgtCfyEWIBNCf1IEQEL///////////8AIRwgEyERDAMLIBhCbVoNAEL///////////8AIRxCfyERDAILIBNCAXwiFyAYQm1UrSIWfSERIBRCAXwiFSATQn9SIBYgF1ZyrSITfSEWIBwgFEJ/UiATIBVWcq19Qv///////////wB9IRwgGEITfCEYDAELIBQhFiATIRELIAJB8AZqICcgEkIAEL0DIAJBgAZqIB4gEkIAEL0DIAJBkAVqICEgEkIAEL0DIAJBoARqICUgEkIAEL0DIAJB4AZqIAIpA/AGIhRCm5Svw/K1qN6Gf34iEkJtQgAQvQMgAkHQBmogEkJ/QgAQvQMgAkHABmogEkL///////////8AQgAQvQMgAkGwBmogJyAQQgAQvQMgAkHABWogHiAQQgAQvQMgAkHQBGogISAQQgAQvQMgAkHgA2ogJSAQQgAQvQMgAkHwBWogAikD0AYiICACQfgGaikDACITIAIpA4AGfCISfCIaIAJB6AZqKQMAIBQgAikD4AYiEHwgEFStfHwiFCACKQOwBnwiGUKblK/D8rWo3oZ/fiIQQm1CABC9AyACQeAFaiAQQn9CABC9AyACQdAFaiAQQv///////////wBCABC9AyACQaAGaiAnIA9CABC9AyACQbAFaiAeIA9CABC9AyACQcAEaiAhIA9CABC9AyACQdADaiAlIA9CABC9AyACQYAFaiACQbgGaikDACAUIBlWrXwiFyACKQPABXwiKSAgIAJBiAZqKQMAIBIgE1StfCIVIAIpA5AFfCIffCIdIBQgGlStIAJB2AZqKQMAIhQgGiAgVK18fHwiD3wiGyACKQPgBSISfCIaIAJB+AVqKQMAIAIpA/AFIhAgGXwgEFStfHwiGSACKQOgBnwiIEKblK/D8rWo3oZ/fiIQQm1CABC9AyACQfAEaiAQQn9CABC9AyACQeAEaiAQQv///////////wBCABC9AyACQZAGaiAnIA5CABC9AyACQaAFaiAeIA5CABC9AyACQbAEaiAhIA5CABC9AyACQcADaiAlIA5CABC9AyACQZAEaiACQagGaikDACAZICBWrXwiEyACKQOwBXwiJiASIAJBmAVqKQMAIBUgH1atfCIeIAIpA6AEfCIiIAIpA8AGfCIVIA8gHVStIBQgHSAfVK18fHwiHyACKQPQBHwiISAbIClUrSACQcgFaikDACAXIClWrXx8fCIdfCIUIBkgGlStIAJB6AVqKQMAIg8gGiAbVK18fHwiEnwiGiACKQPwBCIQfCIZIAJBiAVqKQMAIAIpA4AFIg4gIHwgDlStfHwiGyACKQOQBnwiIEKblK/D8rWo3oZ/fiIOQm1CABC9AyACQYAEaiAOQn9CABC9AyACQfADaiAOQv///////////wBCABC9AwJAAkAgAkH4A2opAwAgAkHoBGopAwAgAkHYBWopAwAgFSAfVq0gAkHIBmopAwAgFSAiVK18fCIOIAJBqARqKQMAIB4gIlatfHwiFyACKQPgA3wiFSAdICFUrSACQdgEaikDACAfICFWrXx8fCIhIAIpA9AFfCIeICFUrXwgHiASIBRUrSAPIBQgHVStfHx8IhQgHlStfCIeIBUgIVatIAJB6ANqKQMAIBUgF1StfHwiDyAOIBdWrXwiEnwiFyACKQPQA3wiFSACQcgEaikDACAUIBQgAikDwAR8Ig5WrXwgDiAaICZUrSACQbgFaikDACATICZWrXx8fCIUIA5UrXx8IiEgAikD4AR8IhMgIVStfCATIAJB+ARqKQMAIg4gFCAQIBR8IhBWrXwgECAQIBkgG1atIA4gGSAaVK18fHwiEFatfHwiDiATVK18IhQgFSAhVq0gAkHYA2opAwAgFSAXVK18fCITIBcgHlStIA8gElatfHwiEnwiGiACKQPAA3wiGSACQbgEaikDACAOIA4gAikDsAR8Ih5WrXwgHiAeIAJBqAVqKQMAIAJBmAZqKQMAIBsgIFatfCIOIAIpA6AFfCIPIA5UrXwgDyAPIBB8IhdWrXx8Ig9WrXx8IhUgAikD8AN8IiEgFVStfCAhIAJBiARqKQMAIhAgDyAPIAIpA4AEIg58Ih5WrXwgHiAeIBAgFyAOIBd8Ig9WrXwgDyACQZgEaikDACAgIAIpA5AEIg58IA5UrXx8IicgD1StfHwiDlatfHwiECAhVK18Ih4gFSAZVK0gAkHIA2opAwAgGSAaVK18fCIPIBQgGlatIBIgE1StfHwiEnwiJUIAUyAeICVWrUIAIA8gElatfVJyDQACQCAlQv///////////wBRBEAgEEJ/UQ0BQv///////////wAhJQsgECEhIA4hHgwCC0J/ISEgDkJ/UgRAQv///////////wAhJSAOIR4MAgsgJ0JtWg0AQv///////////wAhJUJ/IR4MAQsgDkIBfCITICdCbVStIg99IR4gEEIBfCISIA5Cf1IgDyATVnKtIg59ISEgJSAQQn9SIA4gElZyrX1C////////////AH0hJSAnQhN8IScLIAJBsANqICogGEIAEL0DIAJB8AJqICQgGEIAEL0DIAJB4AJqICMgGEIAEL0DIAJB0AJqICggGEIAEL0DIAJBoANqIAIpA7ADIg9Cm5Svw/K1qN6Gf34iDkJtQgAQvQMgAkGQA2ogDkJ/QgAQvQMgAkGAA2ogDkL///////////8AQgAQvQMgAkHAAmogKiARQgAQvQMgAkGAAmogJCARQgAQvQMgAkHwAWogIyARQgAQvQMgAkHgAWogKCARQgAQvQMgAkGwAmogAikDkAMiGSACQbgDaikDACISIAIpA/ACfCIQfCIXIAJBqANqKQMAIA8gAikDoAMiDnwgDlStfHwiDyACKQPAAnwiFUKblK/D8rWo3oZ/fiIOQm1CABC9AyACQaACaiAOQn9CABC9AyACQZACaiAOQv///////////wBCABC9AyACQdABaiAqIBZCABC9AyACQZABaiAkIBZCABC9AyACQYABaiAjIBZCABC9AyACQfAAaiAoIBZCABC9AyACQcABaiACQcgCaikDACAPIBVWrXwiFCACKQOAAnwiJiAZIAJB+AJqKQMAIBAgElStfCITIAIpA+ACfCIffCIdIA8gF1StIAJBmANqKQMAIg8gFyAZVK18fHwiEnwiGyACKQOgAiIQfCIaIAJBuAJqKQMAIAIpA7ACIg4gFXwgDlStfHwiGSACKQPQAXwiIEKblK/D8rWo3oZ/fiIOQm1CABC9AyACQbABaiAOQn9CABC9AyACQaABaiAOQv///////////wBCABC9AyACQeAAaiAqIBxCABC9AyACQSBqICQgHEIAEL0DIAJBEGogIyAcQgAQvQMgAiAoIBxCABC9AyACQdAAaiACQdgBaikDACAZICBWrXwiJCACKQOQAXwiIiAQIAJB6AJqKQMAIBMgH1atfCITIAIpA9ACfCIXIAIpA4ADfCIVIBIgHVStIA8gHSAfVK18fHwiHyACKQPwAXwiIyAbICZUrSACQYgCaikDACAUICZWrXx8fCIdfCIUIBkgGlStIAJBqAJqKQMAIg8gGiAbVK18fHwiEnwiGiACKQOwASIQfCIZIAJByAFqKQMAIAIpA8ABIg4gIHwgDlStfHwiGyACKQNgfCIgQpuUr8Pytajehn9+Ig5CbUIAEL0DIAJBQGsgDkJ/QgAQvQMgAkEwaiAOQv///////////wBCABC9AwJAAkAgAkE4aikDACACQagBaikDACACQZgCaikDACAVIB9WrSACQYgDaikDACAVIBdUrXx8Ig4gAkHYAmopAwAgEyAXVq18fCIXIAIpA+ABfCIVIB0gI1StIAJB+AFqKQMAIB8gI1atfHx8IiMgAikDkAJ8IhMgI1StfCATIBIgFFStIA8gFCAdVK18fHwiFCATVK18IhMgFSAjVq0gAkHoAWopAwAgFSAXVK18fCIPIA4gF1atfCISfCIXIAIpA3B8IhUgAkGIAWopAwAgFCAUIAIpA4ABfCIOVq18IA4gGiAiVK0gAkGYAWopAwAgIiAkVK18fHwiFCAOVK18fCIjIAIpA6ABfCIkICNUrXwgJCACQbgBaikDACIOIBQgECAUfCIQVq18IBAgECAZIBtWrSAOIBkgGlStfHx8IhBWrXx8Ig4gJFStfCIUIBUgI1atIAJB+ABqKQMAIBUgF1StfHwiJCATIBdWrSAPIBJWrXx8IhJ8IhogAikDAHwiGSACQRhqKQMAIA4gDiACKQMQfCITVq18IBMgEyACQShqKQMAIAJB6ABqKQMAIBsgIFatfCIOIAIpAyB8Ig8gDlStfCAPIA8gEHwiF1atfHwiD1atfHwiFSACKQMwfCIjIBVUrXwgIyACQcgAaikDACIQIA8gDyACKQNAIg58IhNWrXwgEyATIBAgFyAOIBd8Ig9WrXwgDyACQdgAaikDACAgIAIpA1AiDnwgDlStfHwiKiAPVK18fCIOVq18fCIQICNUrXwiEyAVIBlUrSACQQhqKQMAIBkgGlStfHwiDyAUIBpWrSASICRUrXx8IhJ8IihCAFMgEyAoVq1CACAPIBJWrX1Scg0AAkAgKEL///////////8AUQRAIBBCf1ENAUL///////////8AISgLIBAhIyAOISQMAgtCfyEjIA5Cf1IEQEL///////////8AISggDiEkDAILICpCbVoNAEL///////////8AIShCfyEkDAELIA5CAXwiEyAqQm1UrSIPfSEkIBBCAXwiEiAOQn9SIA8gE1ZyrSIOfSEjICggEEJ/UiAOIBJWcq19Qv///////////wB9ISggKkITfCEqCyAHQQFqIQggAiAqNwO4ECACICQ3A7AQIAIgIzcDqBAgAiAoNwOgECACQaAQakGo+8AAQSAQ0AQNAAsLIAIgHjcDkBAgAiAnNwOYECACICE3A4gQIAIgJTcDgBAgAkGAEGpB2PnAAEEgENAEBEAgHkJ/hSIQICdCbVatIg59IR4gIUJ/hSIRIA4gEFatIg59ISFCf0IAIA4gEVYbICV9Qv///////////wB8ISVCbSAnfSEnCyAEIAIpA4AQNwMIIAQgJzcDQCAEIB43AzggBCAhNwMwIAQgJTcDKCAEQgE3AwAgBEEgaiACQZgQaikDADcDACAEQRhqIAJBkBBqKQMANwMAIARBEGogAkGIEGopAwA3AwALIAJBoBFqJAACQAJAIAMpAzhQRQRAIANBuAFqIgYgA0HYAGopAwA3AwAgA0GwAWogA0HQAGoiCikDACIQNwMAIANBqAFqIANByABqIgcpAwAiETcDACADQYgBaiIJIANB6ABqKQMANwMAIANBkAFqIgUgA0HwAGopAwA3AwAgA0GYAWoiASADQfgAaikDADcDACADIAMpA0AiDjcDoAEgAyADKQNgNwOAASADQRBqIBA3AwAgA0EIaiARNwMAIANBGGogBikDADcDACADIA43AwAgCiABKQMANwMAIAcgBSkDADcDACADQUBrIAkpAwA3AwAgAyADKQOAATcDOCADQSBqIAMQ4QIgA0EsaiAEEOECAkACQCADKAIoIgUgAygCNCIBRgRAIAMoAiRBBGshBiADKAIwQQRrIQogBUECdCEBA0AgAUUNAiABIAZqIQcgASAKaiABQQRrIQEoAgAiCSAHKAIAIgVGDQALIAUgCU8NBAwCCyABIAVLDQEMAwsgAUUNAgsgAygCLCIBBEAgAygCMCABQQJ0ELkECyADKAIgIgEEQCADKAIkIAFBAnQQuQQLIAAgAykDADcDACAAQRhqIANBGGopAwA3AwAgAEEQaiADQRBqKQMANwMAIABBCGogA0EIaikDADcDAAwCC0HetcEAQRBB8LXBABDoAwALIAMoAiwiAQRAIAMoAjAgAUECdBC5BAsgAygCICIBBEAgAygCJCABQQJ0ELkECyAAIAMpAzg3AwAgAEEYaiADQdAAaikDADcDACAAQRBqIANByABqKQMANwMAIABBCGogA0FAaykDADcDAAsgA0HAAWokAAvZRQIMfyB+IwBBwAFrIgMkACADQThqIQQjAEGADGsiAiQAAkACQAJAAkACQAJAIAEQiANB/wFxQQFrDgIAAQILIARCADcDCCAEQgE3AwAgBEFAa0IANwMAIARBOGpCADcDACAEQTBqQgA3AwAgBEEoakIANwMAIARBIGpCADcDACAEQRhqQgA3AwAgBEEQakIANwMADAQLIAJBsApqQgA3AwAgAkGoCmpCADcDACACQgA3A6AKIAJCATcDuAoCQEGI+8AAQdj5wABBIBDQBCINBEAgAkJ+NwP4CyACQv////8fNwPwCyACQgA3A+gLIAJCgoCAgGA3A+ALDAELIAJB+AtqQaD7wAApAwA3AwAgAkHwC2pBmPvAACkDADcDACAC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QegAaikDADcDACADQZABaiIHIANB8ABqKQMANwMAIANBmAFqIgkgA0H4AGopAwA3AwAgAyADKQNAIh03A6ABIAMgAykDYDcDgAEgA0EQaiARNwMAIANBCGogFzcDACADQRhqIAEpAwA3AwAgAyAdNwMAIAIgCSkDADcDACAFIAcpAwA3AwAgA0FAayAGKQMANwMAIAMgAykDgAE3AzggA0EgaiADEN8CIANBLGogBBDfAgJAAkAgAygCKCIBIAMoAjQiAkYEQCADKAIkQQRrIQIgAygCMEEEayEEIAFBAnQhAQNAIAFFDQIgASACaiEFIAEgBGogAUEEayEBKAIAIgYgBSgCACIFRg0ACyAFIAZPDQQMAgsgASACSQ0BDAMLIAFFDQILIAMoAiwiAQRAIAMoAjAgAUECdBC5BAsgAygCICIBBEAgAygCJCABQQJ0ELkECyAAIAMpAwA3AwAgAEEYaiADQRhqKQMANwMAIABBEGogA0EQaikDADcDACAAQQhqIANBCGopAwA3AwAMAgtB3rXBAEEQQfC1wQAQ6AMACyADKAIsIgEEQCADKAIwIAFBAnQQuQQLIAMoAiAiAQRAIAMoAiQgAUECdBC5BAsgACADKQM4NwMAIABBGGogA0HQAGopAwA3AwAgAEEQaiADQcgAaikDADcDACAAQQhqIANBQGspAwA3AwALIANBwAFqJAALilICDH8jfiMAQcABayIDJAAgA0E4aiEEIwBB4A5rIgIkAAJAAkACQAJAAkACQCABEIIDQf8BcUEBaw4CAAECCyAEQgA3AwggBEIBNwMAIARBQGtCADcDACAEQThqQgA3AwAgBEEwakIANwMAIARBKGpCADcDACAEQSBqQgA3AwAgBEEYakIANwMAIARBEGpCADcDAAwECyACQfAMakIANwMAIAJB6AxqQgA3AwAgAkIANwPgDCACQgE3A/gMAkBB+PnAAEHY+cAAQSAQ0AQiDQRAIAJBsA5qQn83AwAgAkGoDmpCfzcDACACQn83A6AOIAJC3vD//183A7gODAELIAJBuA5qQZD6wAApAwA3AwAgAkGwDmpBiPrAACkDADcDACACQagOakGA+sAAKQMANwMAIAJB+PnAACkDADcDoA4LIAJBgA1qIAJBoA5qIgUQ5QEgAikDgA0hHiACKQOIDSETIAIpA5ANIRcgAikD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o5A8QgAQvQMgAkHQBWogDkKNlcfDltLawJd/QgAQvQMgAkHABWogDkLdsIWM6LaRqLh/QgAQvQMgAkGwBWogDkKpwMaJrs6TsjBCABC9AyACQYAHaiAiIBFCABC9AyACQYAGaiAaIBFCABC9AyACQYAFaiAbIBFCABC9AyACQYAEaiAfIBFCABC9AyACQeAEaiACQZgHaikDACAUIBxWrXwiJiACKQOQBnwiESACQfgFaikDACAVICRUrXwiJCACKQPwBHwiGiACKQOwB3wiGyAXICNWrSACQcgHaikDACAVIBdWrXx8fCIfIAIpA6AFfCIiIA8gEFStIAJBqAZqKQMAIBAgHlStfHx8IhAgAikDwAZ8IhUgEiAUVq0gAkHYBmopAwAgDyASVq18fHwiHnwiDyACKQPQBXwiEiACQegFaikDACACKQPgBSIOIBx8IA5UrXx8IhQgAikDgAd8IhdCiceZpK7wgemHf34iDkLH+vPD7YKjkDxCABC9AyACQdAEaiAOQo2Vx8OW0trAl39CABC9AyACQcAEaiAOQt2whYzotpGouH9CABC9AyACQbAEaiAOQqnAxomuzpOyMEIAEL0DAkACQCACQbgEaikDACACQbgFaikDACACQbgGaikDACAbIB9WrSACQbgHaikDACAaIBtWrXx8IAJB+ARqKQMAIBogJFStfHwiHCACKQOgBHwiDiAQICJUrSACQagFaikDACAfICJWrXx8fCIaIAIpA7AGfCIbIBpUrXwgGyAVIB5WrSACQcgGaikDACAQIBVWrXx8fCIQIBtUrXwgDiAaVq0gAkGoBGopAwAgDiAcVK18fHwiHyACKQOQBHwiDiACQZgFaikDACAQIBAgAikDkAV8IhpWrXwgGiAPIBFUrSACQZgGaikDACARICZUrXx8fCIRIBpUrXx8IhAgAikDsAV8IhogEFStfCAaIAJByAVqKQMAIBEgESACKQPABXwiG1atfCAbIBsgEiAUVq0gAkHYBWopAwAgDyASVq18fHwiG1atfHwiDyAaVK18IA4gEFatIAJBmARqKQMAIA4gH1StfHx8Ih8gAikDgAR8IhEgAkGIBWopAwAgDyACKQOABXwiDiAPVK18IA4gDiACQYgGaikDACACQYgHaikDACAUIBdWrXwiECACKQOABnwiDyAQVK18IA8gDyAbfCIQ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f1ZyrSAffH0hH0LH+vPD7YKjkDwgIn0hIgsgBCACKQPAEjcDCCAEICI3A0AgBCAQNwM4IAQgETcDMCAEIB83AyggBEIBNwMAIARBIGogAkHYEmopAwA3AwAgBEEYaiACQdASaikDADcDACAEQRBqIAJByBJqKQMANwMACyACQeATaiQAAkACQCADKQM4UEUEQCADQbgBaiIBIANB2ABqKQMANwMAIANBsAFqIANB0ABqIgIpAwAiDjcDACADQagBaiADQcgAaiIFKQMAIg83AwAgA0GIAWoiBiADQegAaikDADcDACADQZABaiIIIANB8ABqKQMANwMAIANBmAFqIgogA0H4AGopAwA3AwAgAyADKQNAIhE3A6ABIAMgAykDYDcDgAEgA0EQaiAONwMAIANBCGogDzcDACADQRhqIAEpAwA3AwAgAyARNwMAIAIgCikDADcDACAFIAgpAwA3AwAgA0FAayAGKQMANwMAIAMgAykDgAE3AzggA0EgaiADEOICIANBLGogBBDiAgJAAkAgAygCKCIBIAMoAjQiAkYEQCADKAIkQQRrIQIgAygCMEEEayEEIAFBAnQhAQNAIAFFDQIgASACaiEFIAEgBGogAUEEayEBKAIAIgYgBSgCACIFRg0ACyAFIAZPDQQMAgsgASACSQ0BDAMLIAFFDQILIAMoAiwiAQRAIAMoAjAgAUECdBC5BAsgAygCICIBBEAgAygCJCABQQJ0ELkECyAAIAMpAwA3AwAgAEEYaiADQRhqKQMANwMAIABBEGogA0EQaikDADcDACAAQQhqIANBCGopAwA3AwAMAgtB3rXBAEEQQfC1wQAQ6AMACyADKAIsIgEEQCADKAIwIAFBAnQQuQQLIAMoAiAiAQRAIAMoAiQgAUECdBC5BAsgACADKQM4NwMAIABBGGogA0HQAGopAwA3AwAgAEEQaiADQcgAaikDADcDACAAQQhqIANBQGspAwA3AwALIANBwAFqJAALngUBEH8jAEHQAGsiAyQAIANByABqIgsgAkEYaiIMKQMANwMAIANBQGsiDSACQRBqIg4pAwA3AwBBCCEJIANBOGoiDyACQQhqIhApAwA3AwAgAyACKQMANwMwIAMgASADQTBqEMkCQQghCAJAAkAgASgCFCIERQ0AIARBBXQhByAEQf///x9LBEAMAgsgASgCECERQdm+wgAtAAAaQQghBSAHQQgQsAQiCEUNASAEQQV0IRIgBCEFA0AgBiASRg0BIAYgCGoiByAGIBFqIgopAwA3AwAgB0EYaiAKQRhqKQMANwMAIAdBEGogCkEQaikDADcDACAHQQhqIApBCGopAwA3AwAgBkEgaiEGIAVBAWsiBQ0ACwsgAyAENgIUIAMgCDYCECADIAQ2AgwgCyAMKQMANwMAIA0gDikDADcDACAPIBApAwA3AwAgAyACKQMANwMwIANBGGogAUEYaiADQTBqEMkCAkACQCABKAIsIgJFDQAgAkEFdCEEIAJB////H0sEQEEAIQUMAgsgASgCKCEIQQAhBkHZvsIALQAAGkEIIQUgBEEIELAEIglFDQEgAkEFdCEHIAIhBQNAIAYgB0YNASAGIAlqIgEgBiAIaiIEKQMANwMAIAFBGGogBEEYaikDADcDACABQRBqIARBEGopAwA3AwAgAUEIaiAEQQhqKQMANwMAIAZBIGohBiAFQQFrIgUNAAsLIANBKGoiASAJNgIAIAMgAjYCLCADIAI2AiQgAEEQaiADQRBqKQIANwIAIABBCGogA0EIaikCADcCACAAIAMpAgA3AgAgACADKQIYNwIYIABBIGogA0EgaikCADcCACAAQShqIAEpAgA3AgAgA0HQAGokAA8LIAUgBBCoBAALIAUgBxCoBAALngUBEH8jAEHQAGsiAyQAIANByABqIgsgAkEYaiIMKQMANwMAIANBQGsiDSACQRBqIg4pAwA3AwBBCCEJIANBOGoiDyACQQhqIhApAwA3AwAgAyACKQMANwMwIAMgASADQTBqEMYCQQghCAJAAkAgASgCFCIERQ0AIARBBXQhByAEQf///x9LBEAMAgsgASgCECERQdm+wgAtAAAaQQghBSAHQQgQsAQiCEUNASAEQQV0IRIgBCEFA0AgBiASRg0BIAYgCGoiByAGIBFqIgopAwA3AwAgB0EYaiAKQRhqKQMANwMAIAdBEGogCkEQaikDADcDACAHQQhqIApBCGopAwA3AwAgBkEgaiEGIAVBAWsiBQ0ACwsgAyAENgIUIAMgCDYCECADIAQ2AgwgCyAMKQMANwMAIA0gDikDADcDACAPIBApAwA3AwAgAyACKQMANwMwIANBGGogAUEYaiADQTBqEMYCAkACQCABKAIsIgJFDQAgAkEFdCEEIAJB////H0sEQEEAIQUMAgsgASgCKCEIQQAhBkHZvsIALQAAGkEIIQUgBEEIELAEIglFDQEgAkEFdCEHIAIhBQNAIAYgB0YNASAGIAlqIgEgBiAIaiIEKQMANwMAIAFBGGogBEEYaikDADcDACABQRBqIARBEGopAwA3AwAgAUEIaiAEQQhqKQMANwMAIAZBIGohBiAFQQFrIgUNAAsLIANBKGoiASAJNgIAIAMgAjYCLCADIAI2AiQgAEEQaiADQRBqKQIANwIAIABBCGogA0EIaikCADcCACAAIAMpAgA3AgAgACADKQIYNwIYIABBIGogA0EgaikCADcCACAAQShqIAEpAgA3AgAgA0HQAGokAA8LIAUgBBCoBAALIAUgBxCoBAALngUBEH8jAEHQAGsiAyQAIANByABqIgsgAkEYaiIMKQMANwMAIANBQGsiDSACQRBqIg4pAwA3AwBBCCEJIANBOGoiDyACQQhqIhApAwA3AwAgAyACKQMANwMwIAMgASADQTBqEMcCQQghCAJAAkAgASgCFCIERQ0AIARBBXQhByAEQf///x9LBEAMAgsgASgCECERQdm+wgAtAAAaQQghBSAHQQgQsAQiCEUNASAEQQV0IRIgBCEFA0AgBiASRg0BIAYgCGoiByAGIBFqIgopAwA3AwAgB0EYaiAKQRhqKQMANwMAIAdBEGogCkEQaikDADcDACAHQQhqIApBCGopAwA3AwAgBkEgaiEGIAVBAWsiBQ0ACwsgAyAENgIUIAMgCDYCECADIAQ2AgwgCyAMKQMANwMAIA0gDikDADcDACAPIBApAwA3AwAgAyACKQMANwMwIANBGGogAUEYaiADQTBqEMcCAkACQCABKAIsIgJFDQAgAkEFdCEEIAJB////H0sEQEEAIQUMAgsgASgCKCEIQQAhBkHZvsIALQAAGkEIIQUgBEEIELAEIglFDQEgAkEFdCEHIAIhBQNAIAYgB0YNASAGIAlqIgEgBiAIaiIEKQMANwMAIAFBGGogBEEYaikDADcDACABQRBqIARBEGopAwA3AwAgAUEIaiAEQQhqKQMANwMAIAZBIGohBiAFQQFrIgUNAAsLIANBKGoiASAJNgIAIAMgAjYCLCADIAI2AiQgAEEQaiADQRBqKQIANwIAIABBCGogA0EIaikCADcCACAAIAMpAgA3AgAgACADKQIYNwIYIABBIGogA0EgaikCADcCACAAQShqIAEpAgA3AgAgA0HQAGokAA8LIAUgBBCoBAALIAUgBxCoBAALngUBEH8jAEHQAGsiAyQAIANByABqIgsgAkEYaiIMKQMANwMAIANBQGsiDSACQRBqIg4pAwA3AwBBCCEJIANBOGoiDyACQQhqIhApAwA3AwAgAyACKQMANwMwIAMgASADQTBqEMgCQQghCAJAAkAgASgCFCIERQ0AIARBBXQhByAEQf///x9LBEAMAgsgASgCECERQdm+wgAtAAAaQQghBSAHQQgQsAQiCEUNASAEQQV0IRIgBCEFA0AgBiASRg0BIAYgCGoiByAGIBFqIgopAwA3AwAgB0EYaiAKQRhqKQMANwMAIAdBEGogCkEQaikDADcDACAHQQhqIApBCGopAwA3AwAgBkEgaiEGIAVBAWsiBQ0ACwsgAyAENgIUIAMgCDYCECADIAQ2AgwgCyAMKQMANwMAIA0gDikDADcDACAPIBApAwA3AwAgAyACKQMANwMwIANBGGogAUEYaiADQTBqEMgCAkACQCABKAIsIgJFDQAgAkEFdCEEIAJB////H0sEQEEAIQUMAgsgASgCKCEIQQAhBkHZvsIALQAAGkEIIQUgBEEIELAEIglFDQEgAkEFdCEHIAIhBQNAIAYgB0YNASAGIAlqIgEgBiAIaiIEKQMANwMAIAFBGGogBEEYaikDADcDACABQRBqIARBEGopAwA3AwAgAUEIaiAEQQhqKQMANwMAIAZBIGohBiAFQQFrIgUNAAsLIANBKGoiASAJNgIAIAMgAjYCLCADIAI2AiQgAEEQaiADQRBqKQIANwIAIABBCGogA0EIaikCADcCACAAIAMpAgA3AgAgACADKQIYNwIYIABBIGogA0EgaikCADcCACAAQShqIAEpAgA3AgAgA0HQAGokAA8LIAUgBBCoBAALIAUgBxCoBAALuwUCC38BfiMAQSBrIgMkACABKAIMIgggASgCBCIEa0EEayEJIAEoAhAhBQJAA0ACQAJAIAQgCEYEQCAAQQA2AgggAEKAgICAwAA3AgAMAQsgASAEQQRqIgciAjYCBCADQRRqIAQoAgAQjQMgAykCGCENIAMoAhQiBkGAgICAeEcNASAHIQQgDachBgJAIAUoAgBFDQAgBSgCBCICQYQBSQ0AIAIQAAsgBSAGNgIEIAVBATYCACAAQQA2AgggAEKAgICAwAA3AgAgBCAIRg0AIAlBAnYhAgNAIAQoAgAiAEGEAU8EQCAAEAALIARBBGohBCACQQFrIgINAAsLIAEoAggiAEUNAiABKAIAIABBAnQQuQQMAgsgCUEEayEJIAIhBCAGQYGAgIB4Rg0AC0HZvsIALQAAGkEwQQQQsAQiBwRAIAcgDTcCBCAHIAY2AgAgA0EBNgIQIAMgBzYCDCADQQQ2AgggCEEEayEGIAEoAgghCyABKAIAIQlBASEKA0AgBiACayEEA0ACQAJAIAIgCEYNACADQRRqIAIoAgAQjQMgAykCGCENIAMoAhQiDEGAgICAeEcNASACQQRqIQIgDachBgJAIAUoAgBFDQAgBSgCBCIBQYQBSQ0AIAEQAAsgBSAGNgIEIAVBATYCACACIAhGDQAgBEECdiEEA0AgAigCACIBQYQBTwRAIAEQAAsgAkEEaiECIARBAWsiBA0ACwsgCwRAIAkgC0ECdBC5BAsgACADKQIINwIAIABBCGogA0EQaigCADYCAAwECyACQQRqIQIgBEEEayEEIAxBgYCAgHhGDQALIAMoAgggCkYEQCADQQhqIApBARCTAyADKAIMIQcLIAcgCkEMbGoiASANNwIEIAEgDDYCACADIApBAWoiCjYCEAwACwALQQRBMBCoBAALIANBIGokAAuTBQELfyMAQUBqIgIkACABKAIEIQMgASgCACEHAkACQAJAIAEtAAhFBEADQCADIAdGDQMgASADQTBrIgM2AgQgA0GI08AAQTAQ0ARFDQAMAgsACyADIAdGDQEgASADQTBrIgM2AgQLIAFBAToACCACQRhqIgQgA0EIaikDADcDACACQSBqIgUgA0EQaikDADcDACACQShqIgYgA0EYaikDADcDACACQTBqIgggA0EgaikDADcDACACQThqIgkgA0EoaikDADcDACACIAMpAwA3AxBB2b7CAC0AABpBwAFBCBCwBCIBBEAgASACKQMQNwMAIAFBKGogCSkDADcDACABQSBqIAgpAwA3AwAgAUEYaiAGKQMANwMAIAFBEGogBSkDADcDACABQQhqIAQpAwA3AwAgAkEBNgIMIAIgATYCCCACQQQ2AgQgAyAHRwRAQQIhBUEwIQYDQCACQThqIgggA0EwayIDQShqKQMANwMAIAJBMGoiCSADQSBqKQMANwMAIAJBKGoiCiADQRhqKQMANwMAIAJBIGoiCyADQRBqKQMANwMAIAJBGGoiDCADQQhqKQMANwMAIAIgAykDADcDECAFQQFrIgQgAigCBEYEQCACQQRqIARBARCXAyACKAIIIQELIAEgBmoiBCACKQMQNwMAIARBKGogCCkDADcDACAEQSBqIAkpAwA3AwAgBEEYaiAKKQMANwMAIARBEGogCykDADcDACAEQQhqIAwpAwA3AwAgBkEwaiEGIAIgBTYCDCAFQQFqIQUgAyAHRw0ACwsgACACKQIENwIAIABBCGogAkEMaigCADYCAAwCC0EIQcABEKgEAAsgAEEANgIIIABCgICAgIABNwIACyACQUBrJAAL3gQCCH4BfyMAQdAAayIKJAAgCkEwaiABKQMYIgNC/////w9CABC9AyAKQUBrIANCgYCAgHBCABC9AyAKIAMgASkDECICfCIEIAopAzB8IgNCgYCAgHBCABC9AyAKQRBqIANCIIYiBiADIARUrSAKQThqKQMAIAIgBFatfHwiBSABKQMIfCIHfCIEQoGAgIBwQgAQvQMgCkEgaiAEQiCGIgggBCAGVK0gA0IgiHwiBiAKKQNAIgkgASkDAHwiAiAFIAdWrXwiBXwiB3wiA0KBgICAcEIAEL0DAkAgCkEoaikDACAKQRhqKQMAIApBCGopAwAgAiAFVq0gCkHIAGopAwAgAiAJVK18fCIFIAopAwB8IgIgBVStfCACIAYgB1atfCIGIAJUrXwiBSAKKQMQfCICIAVUrXwgAiACIAMgCFStIARCIIh8IgQgBnwiBiAEVK18IgJWrXwiBSAKKQMgfCIEIAVUrXwgBCACIANCIIYiAiAGfCIFIAJUrSADQiCIfCICfCIDIAJUrXwiAiAEVK18IgdCgYCAgHBUBEAgAyEEIAIhBgwBCwJAIANC/////w9WDQBCACEGIAJCAFINAEL/////DyEEIANC/////w9UBEAgAyEEQoGAgIBwIQcMAgsgBUJ/UQ0AQoGAgIBwIQcMAQsgA0L/////D30iBiAFQn9SrSIIfSEEIAIgA0L/////D1QgBiAIVHKtIgN9IQYgByACIANUrX1C/////w98IQcgBUIBfCEFCyAAIAU3AxggACAENwMQIAAgBjcDCCAAIAc3AwAgCkHQAGokAAuzBgEMfkKpwMaJrs6TsjAhBiABKQMIIgMgAikDCHwiCSADVCAJIAEpAxAiAyACKQMQfCIEIANUIAQgASkDGCIDIAIpAxh8IgogA1StfCIFIARUcq18IgQgCVRyrSACKQMAIAEpAwB8fCILIQMCQAJAAkAgC0KpwMaJrs6TsjBSDQBC3bCFjOi2kai4fyEGIAQhAyAEQt2whYzotpGouH9SDQBCjZXHw5bS2sCXfyEGIAUiA0KNlcfDltLawJd/Ug0AQsf688PtgqOQPCEGIAoiA0LH+vPD7YKjkDxRDQELIAMgBloNACAEIQYgBSEJDAELIAVC8+q4vOmtpb/oAHwiBiAKQsf688PtgqOQPFStIgN9IQkgBEKjz/rzl8nu18cAfCIIIAVCjZXHw5bS2sCXf1QgAyAGVnKtIgN9IQYgCyAEQt2whYzotpGouH9UIAMgCFZyrX1CqcDGia7Ok7IwfSELIApCx/rzw+2Co5A8fSEKC0KpwMaJrs6TsjAhByABQShqKQMAIgMgAkEoaikDAHwiDCADVCAMIAFBMGopAwAiAyACQTBqKQMAfCIEIANUIAQgAUE4aikDACIDIAJBOGopAwB8IgggA1StfCIFIARUcq18IgQgDFRyrSACKQMgIAEpAyB8fCINIQMCQAJAAkAgDUKpwMaJrs6TsjBSDQBC3bCFjOi2kai4fyEHIAQhAyAEQt2whYzotpGouH9SDQBCjZXHw5bS2sCXfyEHIAUiA0KNlcfDltLawJd/Ug0AQsf688PtgqOQPCEHIAgiA0LH+vPD7YKjkDxRDQELIAMgB1oNACAEIQcgBSEDDAELIAVC8+q4vOmtpb/oAHwiDiAIQsf688PtgqOQPFStIgd9IQMgBEKjz/rzl8nu18cAfCIMIAVCjZXHw5bS2sCXf1QgByAOVnKtIgV9IQcgDSAEQt2whYzotpGouH9UIAUgDFZyrX1CqcDGia7Ok7IwfSENIAhCx/rzw+2Co5A8fSEICyAAIA03AyAgACAKNwMYIAAgCTcDECAAIAY3AwggACALNwMAIABBOGogCDcDACAAQTBqIAM3AwAgAEEoaiAHNwMAC48QAg5/EX4jAEHQAGsiBCQAIAQgAjYCBCABKAIIIgZBMGwhBSABKAIEIQJBCCEBAkAgBgRAIAZBqtWqFUsNAUHZvsIALQAAGkEIIQ0gBUEIELAEIgFFDQELIARBADYCQCAEIAE2AjwgBCAGNgI4IAQgAiAFajYCSCAEIAI2AkQgBCAEQQRqNgJMIAQgATYCECAEQQA2AgwgBCAEQUBrNgIIIwBB0AFrIgMkACAEQQhqIgUoAgQhByAFKAIAIARBxABqIgoiAigCACIIIAIoAgQiAUcEQCAFKAIIIQYgAigCCCEFIAEgCGtBMG4hAgNAIAggC0EwbGoiASkDACEdIAEpAwghHiABKQMQIR8gASkDGCEgIAEpAyAhISABKQMoIRggBSgCACEBQSghDEIAIRRCACEVQgAhFkIAIRNCACESQgAhGQNAIANB8ABqIAEgDGopAwAiESAYQgAQvQMgA0GAAWogESAhQgAQvQMgA0GQAWogESAgQgAQvQMgA0GgAWogESAfQgAQvQMgA0GwAWogESAeQgAQvQMgA0HAAWogESAdQgAQvQMgA0HgAGogAykDcCIXIBl8IhlCAEL9//P/z///+Yl/EL0DIANB0ABqIANB6ABqKQMAIhFCq9X+////v/+5f0IAEL0DIANBQGsgEUL//8+K6///1R5CABC9AyADQTBqIBFCpOzDtY/UtJjnAEIAEL0DIANBIGogEUK/pZScz/DSu+QAQgAQvQMgA0EQaiARQtfZrprk9umNywBCABC9AyADIBFCms3/y6O9xIAaQgAQvQMgA0EIaikDACAUIAMpA8ABIhp8IhsgA0G4AWopAwAgFSADKQOwASIRfCIUIBFUrXwgFCADQagBaikDACADKQOgASIRIBZ8IhUgEVStfCAVIANBmAFqKQMAIAMpA5ABIhEgE3wiEyARVK18IBMgA0GIAWopAwAgAykDgAEiESASfCISIBFUrXwgEiADQfgAaikDACAXIBlWrXx8IhEgElStfHwiFiATVK18fCITIBVUrXx8IhIgFFStfHwiHCADKQMAfCIUIBxUrXwgFCAUIANBGGopAwAgEiASIAMpAxB8IhVWrXwgFSAVIANBKGopAwAgEyATIAMpAyB8IhdWrXwgFyAXIANBOGopAwAgFiAWIAMpAzB8IhNWrXwgEyATIANByABqKQMAIBEgAykDQCIRfCISIBFUrXwgEiADQdgAaikDACAZIAMpA1AiEXwgEVStfHwiGSASVK18fCISVq18fCITVq18fCIWVq18fCIVVq18IBsgHFatIANByAFqKQMAIBogG1atfHx8IRQgDEEIayIMQXhHDQALAkACQCAUQprN/8ujvcSAGlYNACAUQprN/8ujvcSAGlIEQCASIREgEyEaIBYhFyAVIRgMAgsgFULX2a6a5PbpjcsAVg0AAkAgFULX2a6a5PbpjcsAUgRAIBIhESATIRogFiEXIBUhGAwBCyAWQr+llJzP8NK75ABWDQFC19mumuT26Y3LACEYIBZCv6WUnM/w0rvkAFIEQCASIREgEyEaIBYhFwwBCyATQqTsw7WP1LSY5wBWDQFCv6WUnM/w0rvkACEXIBNCpOzDtY/UtJjnAFIEQCASIREgEyEaDAELIBJC///Piuv//9UeVg0BQqTsw7WP1LSY5wAhGiASQv//z4rr///VHlIEQCASIREMAQtC///Piuv//9UeIREgGUKq1f7///+//7l/Vg0BC0Kazf/Lo73EgBohFAwBCyASQv//z4rr///VHn0iGCAZQqvV/v///7//uX9UrSIafSERIBNCpOzDtY/UtJjnAH0iFyASQv//z4rr///VHlQgGCAaVHKtIhJ9IRogFkK/pZScz/DSu+QAfSIYIBNCpOzDtY/UtJjnAFQgEiAXVnKtIhJ9IRcgFULX2a6a5PbpjcsAfSITIBZCv6WUnM/w0rvkAFQgEiAYVnKtIhJ9IRggFCAVQtfZrprk9umNywBUIBIgE1ZyrX1Cms3/y6O9xIAafSEUIBlC1aqBgICAwIDGAHwhGQsgBiAHQTBsaiIBIBk3AyggASARNwMgIAEgGjcDGCABIBc3AxAgASAYNwMIIAEgFDcDACAHQQFqIQcgC0EBaiILIAJHDQALCyAHNgIAIANB0AFqJAAgBCgCOCEPIAQoAjwhDiAEKAJAIQEgBEEAOgBMIAQgDiABQTBsajYCSCAEIA42AkQgBEE4aiAKEJQCIAQoAkAiAUECTwRAIAFBAXYhDSAEKAI8IgIgAUEwbGpBMGshAQNAIAIpAwAhESACIAEpAwA3AwAgBEEwaiIQIAJBKGoiCCkDADcDACAEQShqIgMgAkEgaiIJKQMANwMAIARBIGoiByACQRhqIgopAwA3AwAgBEEYaiILIAJBEGoiBikDADcDACAEQRBqIgwgAkEIaiIFKQMANwMAIAggAUEoaiIIKQMANwMAIAkgAUEgaiIJKQMANwMAIAogAUEYaiIKKQMANwMAIAYgAUEQaiIGKQMANwMAIAUgAUEIaiIFKQMANwMAIAQgETcDCCAIIBApAwA3AwAgCSADKQMANwMAIAogBykDADcDACAGIAspAwA3AwAgBSAMKQMANwMAIAEgBCkDCDcDACABQTBrIQEgAkEwaiECIA1BAWsiDQ0ACwsgACAEKQI4NwIAIABBCGogBEFAaygCADYCACAPBEAgDiAPQTBsELkECyAEQdAAaiQADwsgDSAFEKgEAAvtBAEDfyMAQdABayIDJAACQAJAAkAgAAJ+AkAgASgCBCIEBEAgASAEIAQgASgCCCIFIAQgBUkbIgRrNgIEIAEgASgCACIBIARBBXRqNgIAIAVFDQQgA0EYaiABQRhqKQMANwMAIANBEGogAUEQaikDADcDACADQQhqIAFBCGopAwA3AwAgAyABKQMANwMAIARBAUYNBSADQdgAaiABQThqKQMANwMAIANB0ABqIAFBMGopAwA3AwAgA0HIAGogAUEoaikDADcDACADIAEpAyA3A0AgA0GIAWoiASADIANBQGsiBBA0IAMoAogBIAQgAUEEciIBQcQAEM8EGkUNASACKAIAIgRBgICAgHhGIARFckUEQCACKAIEIAQQuQQLIAIgASkCADcCACACQQhqIAFBCGooAgA2AgBCAAwCCyAAQgI3AwAMAgsgA0E4aiADQfwAaikCADcDACADQTBqIANB9ABqKQIANwMAIANBKGogA0HsAGopAgA3AwAgA0EgaiADQeQAaikCADcDACADQRhqIANB3ABqKQIANwMAIANBEGogA0HUAGopAgA3AwAgA0EIaiADQcwAaikCADcDACADIAMpAkQ3AwBCAQs3AwAgACADKQMANwMIIABBEGogA0EIaikDADcDACAAQRhqIANBEGopAwA3AwAgAEEgaiADQRhqKQMANwMAIABBKGogA0EgaikDADcDACAAQTBqIANBKGopAwA3AwAgAEE4aiADQTBqKQMANwMAIABBQGsgA0E4aikDADcDAAsgA0HQAWokAA8LQQBBAEHgi8AAENYDAAtBAUEBQfCLwAAQ1gMAC+I1Ag9+DH8jAEHQAWsiEyQAAkACQAJAIAACfgJAIAEoAgQiEgRAIAEgEiASIAEoAggiFCASIBRJGyISazYCBCABIAEoAgAiASASQQV0ajYCACAURQ0EIBNBGGoiGCABQRhqKQMANwMAIBNBEGoiGSABQRBqKQMANwMAIBNBCGoiGiABQQhqKQMANwMAIBMgASkDADcDACASQQFGDQUgE0HYAGogAUE4aikDADcDACATQdAAaiABQTBqKQMANwMAIBNByABqIAFBKGopAwA3AwAgEyABKQMgNwNAIBNBiAFqIRYjAEGQCmsiASQAIAFB4AVqIBgpAwA3AwAgAUHYBWogGSkDADcDACABQdAFaiAaKQMANwMAIAFB8AVqIBNBQGsiHCISQQhqKQMANwMAIAFB+AVqIBJBEGopAwA3AwAgAUGABmogEkEYaikDADcDACABIBMpAwA3A8gFIAEgEikDADcD6AUgAUHoBWohGwJAAkACQAJAIAFByAVqQaDowABBIBDQBEUEQCAbQaDowABBIBDQBEUNAQsgAUHQBmpB0aDBAEHCABCsASABQfAGakGTocEAQcIAEKwBIAFB0AdqQdWhwQBBARCsASABQfAHakHWocEAQcAAEKwBIAFBkAhqQZaiwQBBwAAQrAEgAUHACGpCADcDACABQbgIakIANwMAIAFCADcDsAggAULkATcDyAhBACESEN0DIRQgAUGYB2pCADcDACABQaAHakIANwMAIAFBqAdqQgA3AwAgAUGwB2pCADcDACABQbgHakIANwMAIAFBwAdqQgA3AwAgAUHIB2pCADcDACABQbAGakHwzsEAKQMANwMAIBQgFCkDACIEQgF8NwMAIAFBBDoA3AggAUIANwOQByABQejOwQApAwA3A6gGIAEgFCkDCDcDwAYgASAENwO4BiABQegIaiABQdgGaikDADcDACABQfAIaiABQeAGaikDADcDACABQfgIaiABQegGaikDADcDACABQgA3A9AIIAFBCDYC2AggAUIBNwPIBiABIAEpA9AGNwPgCCABQagEaiABKQP4BSIEIAEpA4AGIgZCABC9AyABQbgEaiABKQPwBSIDIAZCABC9AyABQcgEaiABKQPoBSIFIAZCABC9AyABQegEaiADIARCABC9AyABQfgEaiAFIARCABC9AyABQZgFaiAFIANCABC9AyABQdgEaiAGIAZCABC9AyABQYgFaiAEIARCABC9AyABQagFaiADIANCABC9AyABQbgFaiAFIAVCABC9AyABQZgEaiABKQPYBCIIQpuUr8Pytajehn9+IgRCbUIAEL0DIAFBiARqIARCf0IAEL0DIAFB+ANqIARC////////////AEIAEL0DIAFBsAVqKQMAIQcgASkD8AYhDCABKQP4BiEPIAEpA4AHIRAgASkDiAchESABIAFBkAVqKQMAIAEpA4gFIgMgAUGwBGopAwAiBSABKQO4BHwiBEIBhiABKQOoBCIJQj+IhHwiBiADVK18IAYgAUHgBGopAwAiAyAJQgGGfCIJIANUrXwiCyAGVK18IgogAUHABGopAwAgBCAFVK18IgUgASkDyAR8IgYgASkD6AR8IgNCAYYgBEI/iIR8Ig0gClStIgogASkDqAV8IgQgAUHQBGopAwAgBSAGVq18Ig4gASkD+AR8IgUgAUHwBGopAwAgAyAGVK18fCIGQgGGIANCP4iEfCIDNwOICiABIAMgBFStIAcgBCAKVK18fCIDIAUgBlatIAFBgAVqKQMAIAUgDlStfHwiBSABKQOYBXwiBEIBhiAGQj+IhHwiBjcDiAYgASABKQO4BSIHIAFBoAVqKQMAIAQgBVStfCIFQgGGIARCP4iEfCIEIAMgBlatfCIGNwOYBiAEIAZWrSABQcAFaikDACAEIAdUrXx8IAVCP4h8IQYgAUGQBGopAwAhBCABIAFBoARqKQMAIAEpA5gEIgMgCEJ9g3wgA1StfCIFIAEpA4gEIgh8IgMgCXwiBzcDoAkgASAIIAMgB1atIAQgAyAFVK18fCIFfCIDIAt8Igg3A8AJIAFBgARqKQMAIQcgASADIAhWrSAEIAMgBVStfHwiAyABKQP4A3wiBCANfCIFNwPgCQJAIAQgBVatIAcgAyAEVq18fCIEUARAQQAhFAwBCyABIAQgASkDiAp8IgM3A4gKIAMgBFQiFEUNACABIBStIgQgASkDiAZ8IgM3A4gGIAMgBFQhFCADIARaDQAgASAUrSIEIAEpA5gGfCIDNwOYBiADIARUIRQgAyAEWg0AIBStIgQgBnwiBiAEVCEUCyABQegDaiABKQOgCSIDQpuUr8Pytajehn9+IgRCbUIAEL0DIAFB2ANqIARCf0IAEL0DIAFByANqIARC////////////AEIAEL0DIAEgAyABKQPoAyIFfCIDNwOgCSABQeADaikDACEEIAEgAUHwA2opAwAgAyAFVK18IgUgASkD2AMiCHwiAyABKQPACXwiBzcDwAkgASAIIAMgB1atIAQgAyAFVK18fCIFfCIDIAEpA+AJfCIINwPgCSABQdADaikDACEHIAEgAyAIVq0gBCADIAVUrXx8IgMgASkDyAN8IgQgASkDiAp8IgU3A4gKAkAgBCAFVq0gByADIARWrXx8IgRQDQAgASAEIAEpA4gGfCIDNwOIBiADIARUIRIgAyAEWg0AIAEgEq0iBCABKQOYBnwiAzcDmAYgAyAEVCESIAMgBFoNACASrSIEIAZ8IgYgBFQhEgsgAUG4A2ogASkDwAkiA0KblK/D8rWo3oZ/fiIEQm1CABC9AyABQagDaiAEQn9CABC9AyABQZgDaiAEQv///////////wBCABC9AyABIAMgASkDuAMiBXwiAzcDwAkgAUGwA2opAwAhBCABIAFBwANqKQMAIAMgBVStfCIFIAEpA6gDIgh8IgMgASkD4Al8Igc3A+AJIAEgCCADIAdWrSAEIAMgBVStfHwiBXwiAyABKQOICnwiCDcDiAogAUGgA2opAwAhByABIAMgCFatIAQgAyAFVK18fCIDIAEpA5gDfCIEIAEpA4gGfCIFNwOIBiAEIAVWrSAHIAMgBFatfHwiBFBFBEAgASAEIAEpA5gGfCIDNwOYBiADIARUIhWtIgQgBnwiAyAGIBUbIQYgFSADIARUcSEVCyABQYgDaiABKQPgCSIDQpuUr8Pytajehn9+IgRCbUIAEL0DIAFB+AJqIARCf0IAEL0DIAFB6AJqIARC////////////AEIAEL0DIAEgAyABKQOIAyIFfCIDNwPgCSABQYADaikDACEEIAEgAUGQA2opAwAgAyAFVK18IgUgASkD+AIiCHwiAyABKQOICnwiBzcDiAogASAIIAMgB1atIAQgAyAFVK18fCIFfCIDIAEpA4gGfCIINwOIBiABQfACaikDACEHIAEgAyAIVq0gBCADIAVUrXx8IgMgASkD6AJ8IgQgASkDmAZ8IgU3A5gGIAQgBVatIAcgAyAEVq18fCIEIAZ8IgMgBiAEQgBSIhcbIQYCQAJAIBIgFHIgFXIgAyAEVCISrSAEIBcbQgBSciASIBdxckUEQCABKQOYBiEJIAEpA4gGIQcgASkDiAohAyAGQgBTBEAgBiEEDAILQv///////////wAhBCAGQv///////////wBSIAlCf1JyIAdCf1JyDQJCfyEJQn8hByADQm1UDQIMAQsgASkDmAYhCSABKQOIBiEHIAEpA4gKIQMgBiEECyABIANCE3w3A4gKIAEgB0IBfCIGIANCbVStIgN9NwOIBiABIAlCAXwiBSAHQn9SIAMgBlZyrSIGfTcDmAYgBCAJQn9SIAUgBlRyrX1C////////////AH0hBgsgASAGNwOACSABIAEpA5gGNwOICSABIAEpA4gGNwOQCSABIAEpA4gKNwOYCSABQfgBaiABKQPYBSIEIAEpA+AFIgZCABC9AyABQegBaiABKQPQBSIDIAZCABC9AyABQdgBaiABKQPIBSIFIAZCABC9AyABQagCaiADIARCABC9AyABQZgCaiAFIARCABC9AyABQcgCaiAFIANCABC9AyABQcgBaiAGIAZCABC9AyABQYgCaiAEIARCABC9AyABQbgCaiADIANCABC9AyABQdgCaiAFIAVCABC9AyABQbgBaiABKQPIASIIQpuUr8Pytajehn9+IgRCbUIAEL0DIAFBqAFqIARCf0IAEL0DIAFBmAFqIARC////////////AEIAEL0DIAFBwAJqKQMAIQcgASABQZACaikDACABKQOIAiIDIAFBgAJqKQMAIgUgASkD6AF8IgRCAYYgASkD+AEiCUI/iIR8IgYgA1StfCAGIAFB0AFqKQMAIgMgCUIBhnwiCSADVK18IgsgBlStfCIKIAFB8AFqKQMAIAQgBVStfCIFIAEpA9gBfCIGIAEpA6gCfCIDQgGGIARCP4iEfCINIApUrSIKIAEpA7gCfCIEIAFB4AFqKQMAIAUgBlatfCIOIAEpA5gCfCIFIAFBsAJqKQMAIAMgBlStfHwiBkIBhiADQj+IhHwiAzcDgAogASADIARUrSAHIAQgClStfHwiAyAFIAZWrSABQaACaikDACAFIA5UrXx8IgUgASkDyAJ8IgRCAYYgBkI/iIR8IgY3A4gKIAEgASkD2AIiByABQdACaikDACAEIAVUrXwiBUIBhiAEQj+IhHwiBCADIAZWrXwiBjcDiAYgBCAGVq0gAUHgAmopAwAgBCAHVK18fCAFQj+IfCEGIAFBsAFqKQMAIQQgASABQcABaikDACABKQO4ASIDIAhCfYN8IANUrXwiBSABKQOoASIIfCIDIAl8Igc3A5gGIAEgCCADIAdWrSAEIAMgBVStfHwiBXwiAyALfCIINwOgCSABQaABaikDACEHIAEgAyAIVq0gBCADIAVUrXx8IgMgASkDmAF8IgQgDXwiBTcD4AlBACEUAkAgBCAFVq0gByADIARWrXx8IgRQBEBBACESDAELIAEgBCABKQOACnwiAzcDgAogAyAEVCISRQ0AIAEgEq0iBCABKQOICnwiAzcDiAogAyAEVCESIAMgBFoNACABIBKtIgQgASkDiAZ8IgM3A4gGIAMgBFQhEiADIARaDQAgEq0iBCAGfCIGIARUIRILIAFBiAFqIAEpA5gGIgNCm5Svw/K1qN6Gf34iBEJtQgAQvQMgAUH4AGogBEJ/QgAQvQMgAUHoAGogBEL///////////8AQgAQvQMgASADIAEpA4gBIgV8IgM3A5gGIAFBgAFqKQMAIQQgASABQZABaikDACADIAVUrXwiBSABKQN4Igh8IgMgASkDoAl8Igc3A6AJIAEgCCADIAdWrSAEIAMgBVStfHwiBXwiAyABKQPgCXwiCDcD4AkgAUHwAGopAwAhByABIAMgCFatIAQgAyAFVK18fCIDIAEpA2h8IgQgASkDgAp8IgU3A4AKAkAgBCAFVq0gByADIARWrXx8IgRQDQAgASAEIAEpA4gKfCIDNwOICiADIARUIRQgAyAEWg0AIAEgFK0iBCABKQOIBnwiAzcDiAYgAyAEVCEUIAMgBFoNACAUrSIEIAZ8IgYgBFQhFAsgAUHYAGogASkDoAkiA0KblK/D8rWo3oZ/fiIEQm1CABC9AyABQcgAaiAEQn9CABC9AyABQThqIARC////////////AEIAEL0DIAEgAyABKQNYIgV8IgM3A6AJIAFB0ABqKQMAIQQgASABQeAAaikDACADIAVUrXwiBSABKQNIIgh8IgMgASkD4Al8Igc3A+AJIAEgCCADIAdWrSAEIAMgBVStfHwiBXwiAyABKQOACnwiCDcDgAogAUFAaykDACEHIAEgAyAIVq0gBCADIAVUrXx8IgMgASkDOHwiBCABKQOICnwiBTcDiApBACEVIAQgBVatIAcgAyAEVq18fCIEUEUEQCABIAQgASkDiAZ8IgM3A4gGIAMgBFQiFa0iBCAGfCIDIAYgFRshBiAVIAMgBFRxIRULIAFBKGogASkD4AkiA0KblK/D8rWo3oZ/fiIEQm1CABC9AyABQRhqIARCf0IAEL0DIAFBCGogBEL///////////8AQgAQvQMgASADIAEpAygiBXwiAzcD4AkgAUEgaikDACEEIAEgAUEwaikDACADIAVUrXwiBSABKQMYIgh8IgMgASkDgAp8Igc3A4AKIAEgCCADIAdWrSAEIAMgBVStfHwiBXwiAyABKQOICnwiCDcDiAogAUEQaikDACEHIAEgAyAIVq0gBCADIAVUrXx8IgMgASkDCHwiBCABKQOIBnwiBTcDiAYgBCAFVq0gByADIARWrXx8IgQgBnwiAyAGIARCAFIiFxshBgJAAkAgEiAUciAVciADIARUIhKtIAQgFxtCAFJyIBIgF3FyBEAgASkDiAYhCSABKQOICiEHIAEpA4AKIQMgBiEEDAELIAEpA4gGIQkgASkDiAohByABKQOACiEDIAZCAFMEQCAGIQQMAQtC////////////ACEEIAZC////////////AFIgCUJ/UnIgB0J/UnINAUJ/IQlCfyEHIANCbVQNAQsgASADQhN8NwOACiABIAdCAXwiBiADQm1UrSIDfTcDiAogASAJQgF8IgUgB0J/UiADIAZWcq0iBn03A4gGIAQgCUJ/UiAFIAZUcq19Qv///////////wB9IQYLIAEgBjcDwAkgASABKQOIBjcDyAkgASABKQOICjcD0AkgASABKQOACjcD2AkgAUH4CWoiEiABQeAFaiIUKQMANwMAIAFB8AlqIhUgAUHYBWoiFykDADcDACABQegJaiIdIAFB0AVqIhgpAwA3AwAgASABKQPIBTcD4AkgAUGgCWogAUHACWoiGSABQeAJaiIaEIUBIBIgFCkDADcDACAVIBcpAwA3AwAgHSAYKQMANwMAIAEgASkDyAU3A+AJIBkgAUHgCGogGhCFASABKQOgCSIHIAEpA8AJfCIEIAEpA6gJIgYgASkDyAl8IgMgBlQgAyABKQOwCSIGIAEpA9AJfCIIIAZUIAggCCABKQO4CSIFIAEpA9gJfCIGIAVUrXwiBVZyrXwiCSADVHKtfCEIAkACQAJAIAQgB1QgBCAIVnINAEL///////////8AIQcgCCIDQv///////////wBRBEBCfyEHQv///////////wAhAyAJQn9SDQIgBUJ/UgRAIAUhBAwEC0JtIQcgBiIDQm1RDQELIAMgB1oNACAIIQMMAQsgBUIBfCIDIAZCbVStIgd9IQQgCUIBfCILIAVCf1IgAyAHVHKtIgN9IQcgCCAJQn9SIAMgC1ZyrX1C////////////AH0hAyAGQhN8IQYMAQsgCSEHIAUhBAsgAyAMfCIIIAcgD3wiBSAHVCAFIAQgBCAQfCIHViAHIAYgEXwiCSAGVK18IgYgB1RyrXwiByAFVHKtfCEFAkACQAJAIAUgCFQgAyAIVnINAEL///////////8AIQMgBSIEQv///////////wBRBEBCfyEDQv///////////wAhBCAHQn9SDQIgBkJ/UgRAIAYhCAwEC0JtIQMgCSIEQm1RDQELIAMgBFgNACAFIQQMAQsgBkIBfCIEIAlCbVStIgN9IQggB0IBfCIMIAZCf1IgAyAEVnKtIgR9IQMgBSAHQn9SIAQgDFZyrX1C////////////AH0hBCAJQhN8IQkMAQsgByEDIAYhCAsgASAJNwP4CSABIAg3A/AJIAEgAzcD6AkgASAENwPgCSABQYAJaiIUIAFB4AlqIhJBIBDQBEUNACABQcAJaiIVIAFByAVqEMcBIAFBADYC6AkgAUKAgICAEDcC4AkgAUEDOgDIBiABQSA2ArgGIAFBADYCxAYgAUHA6sAANgLABiABQQA2ArAGIAFBADYCqAYgASASNgK8BiAVIAFBqAZqIhUQ2QINAiABQZAGaiABQegJaigCADYCACABIAEpAuAJNwOIBiASIBsQxwEgAUEANgLoCCABQoCAgIAQNwLgCCABQQM6AMgGIAFBIDYCuAYgAUEANgLEBiABQcDqwAA2AsAGIAFBADYCsAYgAUEANgKoBiABIAFB4AhqNgK8BiASIBUQ2QINAiABQaAGaiABQegIaigCADYCACABIAEpAuAINwOYBiABQQM2AqQJIAFBvO3AADYCoAkgAUICNwKsCSABIAFBmAZqrUKAgICA4AeENwOICSABIAFBiAZqrUKAgICA4AeENwOACSABIBQ2AqgJIBZBBGogAUGgCWoQ3QIgASgCmAYiEgRAIAEoApwGIBIQuQQLIAEoAogGIhIEQCABKAKMBiASELkECyAWQQE2AgAMAQsgFiABKQPIBTcDCCAWQQA2AgAgFkFAayABQYAGaikDADcDACAWQThqIAFB+AVqKQMANwMAIBZBMGogAUHwBWopAwA3AwAgFkEoaiABQegFaikDADcDACAWQSBqIAFB4AVqKQMANwMAIBZBGGogAUHYBWopAwA3AwAgFkEQaiABQdAFaikDADcDAAsgAUGQCmokAAwBC0HY6sAAQTcgAUGICmpBkOvAAEHs68AAEL4DAAsgEygCiAEgHCAWQQRyIgFBxAAQzwQaRQ0BIAIoAgAiEkGAgICAeEYgEkVyRQRAIAIoAgQgEhC5BAsgAiABKQIANwIAIAJBCGogAUEIaigCADYCAEIADAILIABCAjcDAAwCCyATQThqIBNB/ABqKQIANwMAIBNBMGogE0H0AGopAgA3AwAgE0EoaiATQewAaikCADcDACATQSBqIBNB5ABqKQIANwMAIBNBGGogE0HcAGopAgA3AwAgE0EQaiATQdQAaikCADcDACATQQhqIBNBzABqKQIANwMAIBMgEykCRDcDAEIBCzcDACAAIBMpAwA3AwggAEEQaiATQQhqKQMANwMAIABBGGogE0EQaikDADcDACAAQSBqIBNBGGopAwA3AwAgAEEoaiATQSBqKQMANwMAIABBMGogE0EoaikDADcDACAAQThqIBNBMGopAwA3AwAgAEFAayATQThqKQMANwMACyATQdABaiQADwtBAEEAQeCLwAAQ1gMAC0EBQQFB8IvAABDWAwAL5ioCDX4LfyMAQdABayIRJAACQAJAAkAgAAJ+AkAgASgCBCIQBEAgASAQIBAgASgCCCITIBAgE0kbIhBrNgIEIAEgASgCACIBIBBBBXRqNgIAIBNFDQQgEUEYaiIUIAFBGGopAwA3AwAgEUEQaiIWIAFBEGopAwA3AwAgEUEIaiIXIAFBCGopAwA3AwAgESABKQMANwMAIBBBAUYNBSARQdgAaiABQThqKQMANwMAIBFB0ABqIAFBMGopAwA3AwAgEUHIAGogAUEoaikDADcDACARIAEpAyA3A0AgEUGIAWohEyMAQbAIayIBJAAgAUHgA2ogFCkDADcDACABQdgDaiAWKQMANwMAIAFB0ANqIBcpAwA3AwAgAUHwA2ogEUFAayIXIhBBCGopAwA3AwAgAUH4A2ogEEEQaikDADcDACABQYAEaiAQQRhqKQMANwMAIAEgESkDADcDyAMgASAQKQMANwPoAyABQegDaiEWAkACQAJAAkAgAUHIA2pBoOjAAEEgENAERQRAIBZB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VK18IgZWcq18IgggA1RyrXwiAyAEVCAEIAlUcg0AQoGAgIBwIQcCQCADIgRCgYCAgHBSDQAgCEIAUg0BQv////8PIQcgBiIEQv////8PUg0AIAVCf1ENAUIAIQRCgYCAgHAhAwwCCyAEIAdaDQAgCCEEIAYhBwwBCyAGQv////8PfSIEIAVCf1KtIgl9IQcgCCAGQv////8PVCAEIAlUcq0iBn0hBCADQv7///8PQv////8PIAYgCFYbfCEDIAVCAXwhBQsCQAJAIAMgC3wiCyAEIAQgDHwiDFYgDCAHIA58IgQgB1QgBCAEIAUgD3wiCCAFVK18IgZWcq18IgcgDFRyrXwiBSALVCADIAtWcg0AQoGAgIBwIQMCQCAFIgRCgYCAgHBSDQAgB0IAUg0BQv////8PIQMgBiIEQv////8PUg0AIAhCf1ENAUIAIQRCgYCAgHAhBQwCCyADIARYDQAgByEEIAYhAwwBCyAGQv////8PfSIEIAhCf1KtIgt9IQMgByAGQv////8PVCAEIAtUcq0iBn0hBCAFQv7///8PQv////8PIAYgB1YbfCEFIAhCAXwhCAsgASAINwPYByABIAM3A9AHIAEgBDcDyAcgASAFNwPAByABQeAHaiABQcAHaiIQQSAQ0ARFDQAgAUGgB2oiEiABQcgDahCVAiABQQA2AsgHIAFCgICAgBA3AsAHIAFBAzoAyAQgAUEgNgK4BCABQQA2AsQEIAFBwOrAADYCwAQgAUEANgKwBCABQQA2AqgEIAEgEDYCvAQgEiABQagEaiISENkCDQIgAUGQBGogAUHIB2ooAgA2AgAgASABKQLABzcDiAQgECAWEJUCIAFBADYCqAggAUKAgICAEDcCoAggAUEDOgDIBCABQSA2ArgEIAFBADYCxAQgAUHA6sAANgLABCABQQA2ArAEIAFBADYCqAQgASABQaAIajYCvAQgECASENkCDQIgAUGgBGogAUGoCGooAgA2AgAgASABKQKgCDcDmAQgAUEDNgKEByABQbztwAA2AoAHIAFCAjcCjAcgASABQZgEaq1CgICAgOAHhDcD6AYgASABQYgEaq1CgICAgOAHhDcD4AYgASABQeAGajYCiAcgE0EEaiABQYAHahDdAiABKAKYBCIQBEAgASgCnAQgEBC5BAsgASgCiAQiEARAIAEoAowEIBAQuQQLIBNBATYCAAwBCyATIAEpA8gDNwMIIBNBADYCACATQUBrIAFBgARqKQMANwMAIBNBOGogAUH4A2opAwA3AwAgE0EwaiABQfADaikDADcDACATQShqIAFB6ANqKQMANwMAIBNBIGogAUHgA2opAwA3AwAgE0EYaiABQdgDaikDADcDACATQRBqIAFB0ANqKQMANwMACyABQbAIaiQADAELQdjqwABBNyABQa8IakGQ68AAQezrwAAQvgMACyARKAKIASAXIBNBBHIiAUHEABDPBBpFDQEgAigCACIQQYCAgIB4RiAQRXJFBEAgAigCBCAQELkECyACIAEpAgA3AgAgAkEIaiABQQhqKAIANgIAQgAMAgsgAEICNwMADAILIBFBOGogEUH8AGopAgA3AwAgEUEwaiARQfQAaikCADcDACARQShqIBFB7ABqKQIANwMAIBFBIGogEUHkAGopAgA3AwAgEUEYaiARQdwAaikCADcDACARQRBqIBFB1ABqKQIANwMAIBFBCGogEUHMAGopAgA3AwAgESARKQJENwMAQgELNwMAIAAgESkDADcDCCAAQRBqIBFBCGopAwA3AwAgAEEYaiARQRBqKQMANwMAIABBIGogEUEYaikDADcDACAAQShqIBFBIGopAwA3AwAgAEEwaiARQShqKQMANwMAIABBOGogEUEwaikDADcDACAAQUBrIBFBOGopAwA3AwALIBFB0AFqJAAPC0EAQQBB4IvAABDWAwALQQFBAUHwi8AAENYDAAuvMQIPfgx/IwBB0AFrIhMkAAJAAkACQCAAAn4CQCABKAIEIhIEQCABIBIgEiABKAIIIhQgEiAUSRsiEms2AgQgASABKAIAIgEgEkEFdGo2AgAgFEUNBCATQRhqIhQgAUEYaikDADcDACATQRBqIhcgAUEQaikDADcDACATQQhqIhggAUEIaikDADcDACATIAEpAwA3AwAgEkEBRg0FIBNB2ABqIAFBOGopAwA3AwAgE0HQAGogAUEwaikDADcDACATQcgAaiABQShqKQMANwMAIBMgASkDIDcDQCATQYgBaiEWIwBBkAlrIgEkACABQeAEaiAUKQMANwMAIAFB2ARqIBcpAwA3AwAgAUHQBGogGCkDADcDACABQfAEaiATQUBrIhkiEkEIaikDADcDACABQfgEaiASQRBqKQMANwMAIAFBgAVqIBJBGGopAwA3AwAgASATKQMANwPIBCABIBIpAwA3A+gEIAFB6ARqIRgCQAJAAkACQCABQcgEakGg6MAAQSAQ0ARFBEAgGEGg6MAAQSAQ0ARFDQELIAFB8AVqQdCcwQBBARCoASABQdAGakHRnMEAQcAAEKgBIAFB8AZqQZGdwQBBwAAQqAEgAUGQB2pB0Z3BAEHAABCoASABQcAHakIANwMAIAFBuAdqQgA3AwAgAUIANwOwByABQvOWgIAwNwPIB0EAIRIQ3QMhFCABQdgFakIANwMAIAFB4AVqQgA3AwAgAUHoBWpCADcDACABQZgGakIANwMAIAFBoAZqQgA3AwAgAUGoBmpCADcDACABQbAGakIANwMAIAFBuAZqQgA3AwAgAUHABmpCADcDACABQcgGakIANwMAIAFBsAVqQfDOwQApAwA3AwAgFCAUKQMAIgRCAXw3AwAgAUECOgDcByABQgA3A9AFIAFCADcDkAYgAUHozsEAKQMANwOoBSABIBQpAwg3A8AFIAEgBDcDuAUgAUHoB2pCADcDACABQfAHakIANwMAIAFB+AdqQgA3AwAgAUIANwPQByABQQE2AtgHIAFCATcDyAUgAUIANwPgByABQagDaiABKQP4BCIEIAEpA4AFIgNCABC9AyABQbgDaiABKQPwBCIGIANCABC9AyABQcgDaiABKQPoBCIFIANCABC9AyABQegDaiAGIARCABC9AyABQfgDaiAFIARCABC9AyABQZgEaiAFIAZCABC9AyABQdgDaiADIANCABC9AyABQYgEaiAEIARCABC9AyABQagEaiAGIAZCABC9AyABQbgEaiAFIAVCABC9AyABQZgDaiABKQPYAyIIQrHqlJHdo4KcWH4iBEKv+P//b0IAEL0DIAFBiANqIARCf0IAEL0DIAFBsARqKQMAIQcgASkD8AUhCyABKQP4BSEMIAEpA4AGIRAgASkDiAYhESABIAFBkARqKQMAIAEpA4gEIgYgAUGwA2opAwAiBSABKQO4A3wiBEIBhiABKQOoAyIJQj+IhHwiAyAGVK18IAMgAUHgA2opAwAiBiAJQgGGfCIJIAZUrXwiDSADVK18IgogAUHAA2opAwAgBCAFVK18IgUgASkDyAN8IgMgASkD6AN8IgZCAYYgBEI/iIR8Ig4gClStIgogASkD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BAsgASgCiAUiEgRAIAEoAowFIBIQuQQLIBZBATYCAAwBCyAWIAEpA8gENwMIIBZBADYCACAWQUBrIAFBgAVqKQMANwMAIBZBOGogAUH4BGopAwA3AwAgFkEwaiABQfAEaikDADcDACAWQShqIAFB6ARqKQMANwMAIBZBIGogAUHgBGopAwA3AwAgFkEYaiABQdgEaikDADcDACAWQRBqIAFB0ARqKQMANwMACyABQZAJaiQADAELQdjqwABBNyABQYgJakGQ68AAQezrwAAQvgMACyATKAKIASAZIBZBBHIiAUHEABDPBBpFDQEgAigCACISQYCAgIB4RiASRXJFBEAgAigCBCASELkECyACIAEpAgA3AgAgAkEIaiABQQhqKAIANgIAQgAMAgsgAEICNwMADAILIBNBOGogE0H8AGopAgA3AwAgE0EwaiATQfQAaikCADcDACATQShqIBNB7ABqKQIANwMAIBNBIGogE0HkAGopAgA3AwAgE0EYaiATQdwAaikCADcDACATQRBqIBNB1ABqKQIANwMAIBNBCGogE0HMAGopAgA3AwAgEyATKQJENwMAQgELNwMAIAAgEykDADcDCCAAQRBqIBNBCGopAwA3AwAgAEEYaiATQRBqKQMANwMAIABBIGogE0EYaikDADcDACAAQShqIBNBIGopAwA3AwAgAEEwaiATQShqKQMANwMAIABBOGogE0EwaikDADcDACAAQUBrIBNBOGopAwA3AwALIBNB0AFqJAAPC0EAQQBB4IvAABDWAwALQQFBAUHwi8AAENYDAAutBAILfwR+IwBBEGsiBiQAAkACQAJAIAEoAghFBEBB2b7CAC0AABpBASECQQFBARCwBCIDRQ0CIANBADoAACAGQQE2AgQgA0EBaiEHDAELIAZBBGogARCrAiAGKAIIIgMgBigCDCICaiEHIAJBAkkNACAHIAJBAXYiBWshCkEAIQEgBUEBRwRAIAJBAWshCCAFQf7///8HcSELA0AgAyAIaiIELQAAIQkgBCABIANqIgQtAAA6AAAgBCAJOgAAIAogBSABQX5zamoiCS0AACEMIAkgBEEBaiIELQAAOgAAIAQgDDoAACAIQQJrIQggCyABQQJqIgFHDQALCyACQQJxBEAgASADaiIILQAAIQQgCCAKIAUgAUF/c2pqIgEtAAA6AAAgASAEOgAACyACQSFPDQILIAIgAkEQayIBQQAgASACTRsiBUcEQCADIAVqIQEDQCAPQgiGIA5COIiEIQ8gATEAACAOQgiGhCEOIAFBAWoiASAHRw0ACwsgAkEgayIBQQAgASACTRsiASAFRwRAQSAgAiACQSBPG0EQIAIgAkEQTxtrIQcgASADaiEBA0AgEEIIhiANQjiIhCEQIAExAAAgDUIIhoQhDSABQQFqIQEgB0EBayIHDQALCyAAIA03AxAgACAONwMAIABBGGogEDcDACAAIA83AwggBigCBCIABEAgAyAAELkECyAGQRBqJAAPC0EBQQEQygQAC0G4qMEAQS1B6KjBABD0AwALlgUCCH8EfiMAQfACayIDJAAgA0EoaiIFQZGewQAQmgEgA0HIAGoiBEHRnsEAEJoBIANBqAFqQZGfwQAQmgEgA0HIAWpB0Z/BABCaASADQegBakGRoMEAEJoBEN0DIgIgAikDAEIBfDcDAEHZvsIALQAAGkGAAUEIELAEIgIEQCACQgA3A0AgAiAEKQMANwMAIAIgBSkDADcDICACQcgAakIANwMAIAJB0ABqQgA3AwAgAkHYAGpCADcDACACQRhqIARBGGopAwA3AwAgAkEQaiAEQRBqKQMANwMAIAJBCGogBEEIaikDADcDACACQShqIAVBCGopAwA3AwAgAkEwaiAFQRBqKQMANwMAIAJBOGogBUEYaikDADcDACACQfgAakHgzcAAKQMANwMAIAJB8ABqQdjNwAApAwA3AwAgAkHoAGpB0M3AACkDADcDACACQcjNwAApAwA3A2AgA0EAOgDMAiADIAJBgAFqNgLIAiADIAI2AsQCIANBuAJqIANBxAJqELMCIAMoAsACIgRBAk8EQCAEQQF2IQkgAygCvAIiBSAEQQV0akEgayEEA0AgBSkDACEKIAUgBCkDADcDACAFQRhqIgYpAwAhCyAGIARBGGoiBikDADcDACAFQRBqIgcpAwAhDCAHIARBEGoiBykDADcDACAFQQhqIggpAwAhDSAIIARBCGoiCCkDADcDACAEIAo3AwAgBiALNwMAIAcgDDcDACAIIA03AwAgBEEgayEEIAVBIGohBSAJQQFrIgkNAAsLIAAgAykCuAI3AgwgAEEUaiADQcACaigCADYCACACQYABELkEIABBCGogAUEIaigCADYCACAAIAEpAgA3AgAgA0HwAmokAA8LQQhBgAEQygQAC6QFAgh/BH4jAEHwAmsiAyQAIANBKGoiBUHRoMEAQcIAEKwBIANByABqIgRBk6HBAEHCABCsASADQagBakHVocEAQQEQrAEgA0HIAWpB1qHBAEHAABCsASADQegBakGWosEAQcAAEKwBEN0DIgIgAikDAEIBfDcDAEHZvsIALQAAGkGAAUEIELAEIgIEQCACQgA3A0AgAiAEKQMANwMAIAIgBSkDADcDICACQcgAakIANwMAIAJB0ABqQgA3AwAgAkHYAGpCADcDACACQRhqIARBGGopAwA3AwAgAkEQaiAEQRBqKQMANwMAIAJBCGogBEEIaikDADcDACACQShqIAVBCGopAwA3AwAgAkEwaiAFQRBqKQMANwMAIAJBOGogBUEYaikDADcDACACQfgAakGAzsAAKQMANwMAIAJB8ABqQfjNwAApAwA3AwAgAkHoAGpB8M3AACkDADcDACACQejNwAApAwA3A2AgA0EAOgDMAiADIAJBgAFqNgLIAiADIAI2AsQCIANBuAJqIANBxAJqELMCIAMoAsACIgRBAk8EQCAEQQF2IQkgAygCvAIiBSAEQQV0akEgayEEA0AgBSkDACEKIAUgBCkDADcDACAFQRhqIgYpAwAhCyAGIARBGGoiBikDADcDACAFQRBqIgcpAwAhDCAHIARBEGoiBykDADcDACAFQQhqIggpAwAhDSAIIARBCGoiCCkDADcDACAEIAo3AwAgBiALNwMAIAcgDDcDACAIIA03AwAgBEEgayEEIAVBIGohBSAJQQFrIgkNAAsLIAAgAykCuAI3AgwgAEEUaiADQcACaigCADYCACACQYABELkEIABBCGogAUEIaigCADYCACAAIAEpAgA3AgAgA0HwAmokAA8LQQhBgAEQygQAC8YEAQt/IwBBEGsiByQAAkACQAJAAkACQCAAKAIIRQRAQdm+wgAtAAAaQQEhAkEBQQEQsAQiA0UNASADQTA6AAAgAUEBQQFBACADQQEQ/gEhAAwECyAHQQRqIAAQPCAHKAIIIQMgBygCDCIFRQ0BIAMhACAFQQNxIgIEQANAIAAgAC0AACIEQTByIARB1wBqIARBCkkbOgAAIABBAWohACACQQFrIgINAAsLIAMgBWohBCAFQQRPBEADQCAAIAAtAAAiAkEwciACQdcAaiACQQpJGzoAACAAQQFqIgIgAi0AACICQTByIAJB1wBqIAJBCkkbOgAAIABBAmoiAiACLQAAIgJBMHIgAkHXAGogAkEKSRs6AAAgAEEDaiICIAItAAAiAkEwciACQdcAaiACQQpJGzoAACAAQQRqIgAgBEcNAAsLIAcoAgQhAiAFQQFGDQIgBCAFQQF2IgRrIQpBACEAIARBAUcEQCAFQQFrIQggBEH+////B3EhCwNAIAMgCGoiBi0AACEJIAYgACADaiIGLQAAOgAAIAYgCToAACAKIAQgAEF+c2pqIgktAAAhDCAJIAZBAWoiBi0AADoAACAGIAw6AAAgCEECayEIIAsgAEECaiIARw0ACwsgBUECcUUNAiAAIANqIggtAAAhBiAIIAogBCAAQX9zamoiAC0AADoAACAAIAY6AAAMAgtBAUEBEMoEAAsgBygCBCECCyABQQFBAUEAIAMgBRD+ASEAIAJFDQELIAMgAhC5BAsgB0EQaiQAIAAL7gQBCn8jAEEwayIDJAAgA0EDOgAsIANBIDYCHCADQQA2AiggAyABNgIkIAMgADYCICADQQA2AhQgA0EANgIMAn8CQAJAAkAgAigCECIKRQRAIAIoAgwiAEUNASACKAIIIQEgAEEDdCEFIABBAWtB/////wFxQQFqIQcgAigCACEAA0AgAEEEaigCACIEBEAgAygCICAAKAIAIAQgAygCJCgCDBEDAA0ECyABKAIAIANBDGogASgCBBECAA0DIAFBCGohASAAQQhqIQAgBUEIayIFDQALDAELIAIoAhQiAEUNACAAQQV0IQsgAEEBa0H///8/cUEBaiEHIAIoAgghCCACKAIAIQADQCAAQQRqKAIAIgEEQCADKAIgIAAoAgAgASADKAIkKAIMEQMADQMLIAMgBSAKaiIBQRBqKAIANgIcIAMgAUEcai0AADoALCADIAFBGGooAgA2AiggAUEMaigCACEEQQAhCUEAIQYCQAJAAkAgAUEIaigCAEEBaw4CAAIBCyAEQQN0IAhqIgwoAgQNASAMKAIAIQQLQQEhBgsgAyAENgIQIAMgBjYCDCABQQRqKAIAIQQCQAJAAkAgASgCAEEBaw4CAAIBCyAEQQN0IAhqIgYoAgQNASAGKAIAIQQLQQEhCQsgAyAENgIYIAMgCTYCFCAIIAFBFGooAgBBA3RqIgEoAgAgA0EMaiABKAIEEQIADQIgAEEIaiEAIAsgBUEgaiIFRw0ACwsgByACKAIETw0BIAMoAiAgAigCACAHQQN0aiIAKAIAIAAoAgQgAygCJCgCDBEDAEUNAQtBAQwBC0EACyADQTBqJAAL/AQCCH8EfiMAQfACayICJAAgAhDjAkHZvsIALQAAGkGAAUEIELAEIgMEQCADIAIpA0g3AwAgAyACKQMoNwMgIANCADcDQCADQcgAakIANwMAIANB0ABqQgA3AwAgA0HYAGpCADcDACADQRhqIAJB4ABqKQMANwMAIANBEGogAkHYAGopAwA3AwAgA0EIaiACQdAAaikDADcDACADQShqIAJBMGopAwA3AwAgA0EwaiACQThqKQMANwMAIANBOGogAkFAaykDADcDACADQfgAakGQzcAAKQMANwMAIANB8ABqQYjNwAApAwA3AwAgA0HoAGpBgM3AACkDADcDACADQfjMwAApAwA3A2AgAkEAOgDMAiACIANBgAFqNgLIAiACIAM2AsQCIAJBuAJqIAJBxAJqELMCIAIoAsACIgRBAk8EQCAEQQF2IQkgAigCvAIiBSAEQQV0akEgayEEA0AgBSkDACEKIAUgBCkDADcDACAFQRhqIgYpAwAhCyAGIARBGGoiBikDADcDACAFQRBqIgcpAwAhDCAHIARBEGoiBykDADcDACAFQQhqIggpAwAhDSAIIARBCGoiCCkDADcDACAEIAo3AwAgBiALNwMAIAcgDDcDACAIIA03AwAgBEEgayEEIAVBIGohBSAJQQFrIgkNAAsLIABBDGoiBSACKQK4AjcCACAFQQhqIAJBwAJqKAIANgIAIANBgAEQuQQgAEEIaiABQQhqKAIANgIAIAAgASkCADcCAAJAIAIoAgQiAEUNACAAIABBDGxBE2pBeHEiAWpBCWoiAEUNACACKAIAIAFrIAAQuQQLIAJB8AJqJAAPC0EIQYABEMoEAAu3BQIEfwl+IwBBoAFrIgIkACACQZQBaiABEPUDIAIoApgBIQEgAigClAEhAyACKAKcASIEQQJGBEAgASgCBCEEIAEoAgAhBSACQThqIAFBCGpB2AAQzwQaIAMEQCABIANBMGwQuQQLIAJBMGogAkGIAWopAwA3AwAgAkEoaiACQYABaikDADcDACACQSBqIAJB+ABqKQMANwMAIAJBGGogAkHwAGopAwA3AwAgAkEQaiACQegAaikDADcDACACIAIpA2A3AwgCfiACQQhqQcjUwQBBMBDQBARAQv//z4rr///VHiACKQMoIgl9IgcgAikDMCIKQqvV/v///7//uX9WrSIIfSEMQqTsw7WP1LSY5wAgAikDICIGfSILIAcgCFQgCUL//8+K6///1R5Wcq0iB30hCUK/pZScz/DSu+QAIAIpAxgiCH0iDSAHIAtWIAZCpOzDtY/UtJjnAFZyrSIGfSEHQtfZrprk9umNywAgAikDECILfSIOIAYgDVYgCEK/pZScz/DSu+QAVnKtIgZ9IQhCq9X+////v/+5fyAKfSEKQprN/8ujvcSAGiACKQMIIAYgDlYgC0LX2a6a5PbpjcsAVnKtfH0MAQsgAikDMCEKIAIpAyghDCACKQMgIQkgAikDGCEHIAIpAxAhCCACKQMICyEGIAAgBDYCBCAAIAU2AgAgACACKQM4NwMIIAAgCjcDWCAAIAw3A1AgACAJNwNIIAAgBzcDQCAAIAg3AzggACAGNwMwIABBEGogAkFAaykDADcDACAAQRhqIAJByABqKQMANwMAIABBIGogAkHQAGopAwA3AwAgAEEoaiACQdgAaikDADcDACACQaABaiQADwsgAiAENgKcASACIAE2ApgBIAIgAzYClAFBvI7AAEErIAJBlAFqQdyTwABBrJTAABC+AwAL5wUBD34CfiABQaCWwgBBMBDQBARAQv//z4rr///VHiABKQMgIgp9IgQgASkDKCILQqvV/v///7//uX9WrSIFfSEOQqTsw7WP1LSY5wAgASkDGCIDfSIGIAQgBVQgCkL//8+K6///1R5Wcq0iBH0hCkK/pZScz/DSu+QAIAEpAxAiBX0iByAEIAZWIANCpOzDtY/UtJjnAFZyrSIDfSEEQtfZrprk9umNywAgASkDCCIGfSICIAMgB1YgBUK/pZScz/DSu+QAVnKtIgN9IQVCq9X+////v/+5fyALfSELQprN/8ujvcSAGiABKQMAIAIgA1QgBkLX2a6a5PbpjcsAVnKtfH0MAQsgASkDKCELIAEpAyAhDiABKQMYIQogASkDECEEIAEpAwghBSABKQMACyEDIAACfiABQTBqQaCWwgBBMBDQBARAQv//z4rr///VHiABQdAAaikDACIHfSICIAFB2ABqKQMAIgxCq9X+////v/+5f1atIgh9IQZCpOzDtY/UtJjnACABQcgAaikDACIJfSINIAIgCFQgB0L//8+K6///1R5Wcq0iAn0hB0K/pZScz/DSu+QAIAFBQGspAwAiCH0iDyACIA1WIAlCpOzDtY/UtJjnAFZyrSIJfSECQtfZrprk9umNywAgAUE4aikDACINfSIQIAkgD1YgCEK/pZScz/DSu+QAVnKtIgl9IQhCq9X+////v/+5fyAMfSEMQprN/8ujvcSAGiABKQMwIAkgEFYgDULX2a6a5PbpjcsAVnKtfH0MAQsgAUHYAGopAwAhDCABQdAAaikDACEGIAFByABqKQMAIQcgAUFAaykDACECIAFBOGopAwAhCCABKQMwCzcDMCAAIAs3AyggACAONwMgIAAgCjcDGCAAIAQ3AxAgACAFNwMIIAAgAzcDACAAQdgAaiAMNwMAIABB0ABqIAY3AwAgAEHIAGogBzcDACAAQUBrIAI3AwAgAEE4aiAINwMAC8sEAQt/IAEgACgCACAAKAIIIgVrSwRAIAAgBSABEJMDIAAoAgghBQsgACgCBCAFQQxsaiEDAkACQCABQQJJDQAgASAFakEBayEFIAIoAggiBkUEQCABQQFrIgZBA3EhBCABQQJrQQNPBEAgBkF8cSEBA0AgA0IANwIIIANCgICAgIABNwIAIANBKGpCCDcCACADQSBqQgA3AgAgA0EYakKAgICAgAE3AgAgA0EQakIINwIAIANBMGohAyABQQRrIgENAAsLIARFDQIDQCADQQA2AgggA0KAgICAgAE3AgAgA0EMaiEDIARBAWsiBA0ACwwCCwJAIAZBMGwiCkEASCAGQarVqhVLcg0AIAIoAgQhDUHZvsIALQAAGkEIIQQgCkEIELAEIgtFDQBBAiEMA0BBACEHIAYhBANAIAcgCkcEQCAHIAtqIgggByANaiIJKQMANwMAIAhBKGogCUEoaikDADcDACAIQSBqIAlBIGopAwA3AwAgCEEYaiAJQRhqKQMANwMAIAhBEGogCUEQaikDADcDACAIQQhqIAlBCGopAwA3AwAgB0EwaiEHIARBAWsiBA0BCwsgAyAGNgIIIAMgCzYCBCADIAY2AgAgA0EMaiEDIAEgDEYNAkHZvsIALQAAGiAMQQFqIQxBCCEEIApBCBCwBCILDQALCyAEIAoQqAQACyABDQAgACAFNgIIIAIoAgAiAARAIAIoAgQgAEEwbBC5BAsPCyADIAIpAgA3AgAgA0EIaiACQQhqKAIANgIAIAAgBUEBajYCCAuABQIIfwR+IwBB8AJrIgMkACADQcgAaiIEQdCcwQBBARCoASADQagBakHRnMEAQcAAEKgBIANByAFqQZGdwQBBwAAQqAEgA0HoAWpB0Z3BAEHAABCoARDdAyICIAIpAwBCAXw3AwBB2b7CAC0AABpBgAFBCBCwBCICBEAgAkIANwMgIAIgBCkDADcDACACQShqQgA3AwAgAkEwakIANwMAIAJBOGpCADcDACACQUBrQgA3AwAgAkHIAGpCADcDACACQdAAakIANwMAIAJB2ABqQgA3AwAgAkHYzMAAKQMANwNgIAJB6ABqQeDMwAApAwA3AwAgAkHwAGpB6MzAACkDADcDACACQfgAakHwzMAAKQMANwMAIAJBGGogBEEYaikDADcDACACQRBqIARBEGopAwA3AwAgAkEIaiAEQQhqKQMANwMAIANBADoAzAIgAyACQYABajYCyAIgAyACNgLEAiADQbgCaiADQcQCahCzAiADKALAAiIFQQJPBEAgBUEBdiEJIAMoArwCIgQgBUEFdGpBIGshBQNAIAQpAwAhCiAEIAUpAwA3AwAgBEEYaiIGKQMAIQsgBiAFQRhqIgYpAwA3AwAgBEEQaiIHKQMAIQwgByAFQRBqIgcpAwA3AwAgBEEIaiIIKQMAIQ0gCCAFQQhqIggpAwA3AwAgBSAKNwMAIAYgCzcDACAHIAw3AwAgCCANNwMAIAVBIGshBSAEQSBqIQQgCUEBayIJDQALCyAAIAMpArgCNwIMIABBFGogA0HAAmooAgA2AgAgAkGAARC5BCAAQQhqIAFBCGooAgA2AgAgACABKQIANwIAIANB8AJqJAAPC0EIQYABEMoEAAuoBAEIfyMAQcANayIDJAAgA0GoCWpBgPvAACkDADcDACADQaAJakH4+sAAKQMANwMAIANBmAlqQfD6wAApAwA3AwAgA0GQCWpB6PrAACkDADcDACADQYgJakHg+sAAKQMANwMAIANBuAlqQgA3AwAgA0HACWpCADcDACADQcgJakIANwMAIANB0AlqQgA3AwAgA0HYCWpCADcDACADQgA3A7AJIANB2PrAACkDADcD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IgsgBEEoaiIFKQMANwMAIAFBQGsiDCAEQSBqIgYpAwA3AwAgAUE4aiINIARBGGoiBykDADcDACABQTBqIg4gBEEQaiIIKQMANwMAIAFBKGoiDyAEQQhqIgkpAwA3AwAgBSACQShqIgUpAwA3AwAgBiACQSBqIgYpAwA3AwAgByACQRhqIgcpAwA3AwAgCCACQRBqIggpAwA3AwAgCSACQQhqIgkpAwA3AwAgASAQNwMgIAUgCykDADcDACAGIAwpAwA3AwAgByANKQMANwMAIAggDikDADcDACAJIA8pAwA3AwAgAiABKQMgNwMAIAJBMGshAiAEQTBqIQQgCkEBayIKDQALCyAAIAEpAgg3AgAgAEEIaiABQRBqKAIANgIAIANBMBC5BCABQdAAaiQADwtBCEEwEMoEAAuVBAEHfkKRgICAgICAgAghBSABKQMIIgMgACkDKHwiBCADVCAEIAEpAxAiAyAAKQMwfCIHIANUIAcgASkDGCIGIAApAzh8IgMgBlStfCIGIAdUcq18IgggBFRyrSAAKQMgIAEpAwB8fCIJIQQCQAJAIAlCkYCAgICAgIAIUQRAQgEhBSADQgFRDQEgAyEEIAYgCIRCAFINAQsgBCAFWg0AIAghBSAGIQQgAyEHDAELIANCAX0hByAGIANQrSIFfSEEIAggBSAGVq0iA30hBSAJQu7/////////d0Lv/////////3cgAyAIVht8IQkLIABBIGogACAHNwM4IAAgBDcDMCAAIAU3AyggACAJNwMgQpGAgICAgICACCEFIAIpAwgiAyAAKQNIfCIEIANUIAQgAikDECIDIAApA1B8IgcgA1QgByACKQMYIgYgACkDWHwiAyAGVK18IgYgB1RyrXwiCCAEVHKtIAApA0AgAikDAHx8IgkhBAJAAkAgCUKRgICAgICAgAhRBEBCASEFIANCAVENASADIQQgBiAIhEIAUg0BCyAEIAVaDQAgCCEFIAYhBCADIQcMAQsgA0IBfSEHIAYgA1CtIgV9IQQgCCAFIAZWrSIDfSEFIAlC7v////////93Qu//////////dyADIAhWG3whCQsgACAHNwNYIAAgBDcDUCAAIAU3A0ggACAJNwNAED8LyQUCCX8BfiMAQZAHayICJAAgAkHgBGogASABKAIMEL4BAkACQAJAAkACQCACKQPgBCIL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DCAQVq19DAELIAQpAxghDiAEKQMQIQ8gBCkDCCENIAQpAwALIQwgBSAONwMYIAUgDzcDECAFIA03AwggBSAMNwMAIAcgAkE4aikDADcDACAKIAJBMGopAwA3AwAgCyACQShqKQMANwMAIAEgAikDIDcDACABQSBqIQEgA0EgayIDDQALCyACQQA6AEggAiAGNgJEIAIgCDYCQCACQSBqIAJBQGsQswIgAigCKCIDQQJPBEAgA0EBdiEGIAIoAiQiASADQQV0akEgayEDA0AgASkDACEPIAEgAykDADcDACABQRhqIgQpAwAhDSAEIANBGGoiBCkDADcDACABQRBqIgUpAwAhDiAFIANBEGoiBSkDADcDACABQQhqIgcpAwAhDCAHIANBCGoiBykDADcDACADIA83AwAgBCANNwMAIAUgDjcDACAHIAw3AwAgA0EgayEDIAFBIGohASAGQQFrIgYNAAsLIAAgAikCIDcCACAAQQhqIAJBKGooAgA2AgAgCQRAIAggCUEFdBC5BAsgAkHgAGokAAvNAwIGfwJ+IwBBQGoiAyQAIANBIGpCADcDACADQRhqQgA3AwAgA0EQakIANwMAIANCADcDCAJAIAJBAk0NACABLQAAQTBHDQAgAS0AAUH4AEZBAXQhBwtBAyEEAkAgAiAHTQ0AIAJBAWshBQJAA0ACQCACIAUiCEsEQEJQIQogASAFai0AACIFQTBrQf8BcUEKSQ0BQql/IQogBUHhAGtB/wFxQQZJDQFCSSEKIAVBwQBrQf8BcUEGSQ0BIANBADYCOCADQQE2AiwgA0Hs2MAANgIoIANCBDcCMCADQShqQfTYwAAQhgQACyAIIAJBwNjAABDWAwALIAogBa1C/wGDfCAGQT9xrYYgCYQhCQJAIARFIAZBBGoiBkHAAEdyRQRAIARBBE8NASADQQhqIARBA3RqIAk3AwBCACEJQQAhBiAEQQFrIQQLIAhBAWshBSAHIAhPDQIMAQsLIARBBEGE2cAAENYDAAsgBEEESQ0AIARBBEGw2MAAENYDAAsgA0EIaiAEQQN0aiAJNwMAIAAgAykDCDcDACAAQQhqIANBEGopAwA3AwAgAEEQaiADQRhqKQMANwMAIABBGGogA0EgaikDADcDACADQUBrJAALmgUBBX4gACAAKQMAIgNCAYYiATcDACAAIAApAwgi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DSABKQOQA3wiCnwiCyABQfgCaikDACAIIAEpA/ACIgN8IANUrXx8IgggASkDkAJ8Ig5Cm5Svw/K1qN6Gf34iA0JtQgAQvQMgAUHwAWogA0J/QgAQvQMgAUHgAWogA0L///////////8AQgAQvQMgAUGgAWogGCkDCCIDIARCABC9AyABQbABaiADIAdCABC9AyABQcABaiADIAVCABC9AyABQdABaiADIAZCABC9AyABQZABaiABQZgCaikDACAIIA5WrXwiECABKQOgAnwiDCAJIAFBmANqKQMAIAogDVStfCIPIAEpA6ADfCINfCIKIAggC1StIAFB6AJqKQMAIhEgCSALVq18fHwiEnwiCSABKQPwASITfCILIAFBiAJqKQMAIAEpA4ACIgMgDnwgA1StfHwiCCABKQOgAXwiDkKblK/D8rWo3oZ/fiIDQm1CABC9AyABQYABaiADQn9CABC9AyABQfAAaiADQv///////////wBCABC9AyABQTBqIBgpAwAiAyAEQgAQvQMgAUFAayADIAdCABC9AyABQdAAaiADIAVCABC9AyABQeAAaiADIAZCABC9AyABQSBqIAFBqAFqKQMAIAggDlatfCIUIAEpA7ABfCIEIBMgAUGoA2opAwAgDSAPVK18Ig8gASkDsAN8IgMgASkD0AJ8IgcgCiASVq0gESAKIA1UrXx8fCIFIAEpA7ACfCIGIAkgDFStIAFBqAJqKQMAIAwgEFStfHx8Igx8Ig0gCCALVK0gAUH4AWopAwAiECAJIAtWrXx8fCIRfCIJIAEpA4ABIhJ8IgsgAUGYAWopAwAgASkDkAEiCCAOfCAIVK18fCIIIAEpAzB8Ig5Cm5Svw/K1qN6Gf34iCkJtQgAQvQMgAUEQaiAKQn9CABC9AyABIApC////////////AEIAEL0DAkACQCABQQhqKQMAIAFB+ABqKQMAIAFB6AFqKQMAIAUgB1StIAFB2AJqKQMAIAMgB1atfHwiCiABQbgDaikDACADIA9UrXx8IgMgASkDwAJ8IgcgBiAMVq0gAUG4AmopAwAgBSAGVq18fHwiBSABKQPgAXwiBiAFVK18IAYgBiANIBFWrSAQIAwgDVatfHx8IgxWrXwiDSAFIAdUrSABQcgCaikDACADIAdWrXx8IhAgAyAKVK18Igp8IgMgASkD0AF8IgcgAUHIAWopAwAgDCABKQPAAXwiBSAMVK18IAUgBCAJVq0gAUG4AWopAwAgBCAUVK18fHwiBCAFVK18fCIFIAEpA3B8IgYgBVStfCAGIAFBiAFqKQMAIg8gBCAEIBJ8IgxWrXwgDCAIIAtUrSAPIAkgC1atfHx8IgkgDFStfHwiBCAGVK18IgwgBSAHVK0gAUHYAWopAwAgAyAHVq18fCIPIAMgDVStIAogEFStfHwiDXwiAyABKQNgfCIFIAFB2ABqKQMAIAQgBCABKQNQfCIHVq18IAcgByABQcgAaikDACABQThqKQMAIAggDlatfCIGIAEpA0B8IgQgBlStfCAEIAQgCXwiBlatfHwiBFatfHwiCyABKQMAfCIHIAtUrXwgByAHIAFBGGopAwAiCSAEIAQgASkDECIKfCIIVq18IAggCCAJIAYgBiAKfCIEVq18IAQgAUEoaikDACABKQMgIgYgDnwgBlStfHwiCSAEVK18fCIEVq18fCIHVq18IgggBSALVq0gAUHoAGopAwAgAyAFVq18fCIFIAMgDFStIA0gD1StfHwiA3wiBkIAUyAGIAhUrUIAIAMgBVStfVJyDQACQCAGQv///////////wBRBEAgB0J/UgRAIAQhAyAHIQVC////////////ACEGDAQLQn8hBSAEQn9RDQEgBCEDQv///////////wAhBgwDCyAEIQMgByEFDAILQn8hAyAJQm1aDQBC////////////ACEGDAELIARCAXwiBSAJQm1UrSILfSEDIAdCAXwiCCAEQn9SIAUgC1RyrSIEfSEFIAYgB0J/UiAEIAhWcq19Qv///////////wB9IQYgCUITfCEJCyAXIB9qIhYgBjcDACAWQRhqIAk3AwAgFkEQaiADNwMAIBZBCGogBTcDACAXQSBqIRcgGkEBayIaDQALCyACNgIAIAFBwANqJAAgFSgCLCEWIBUoAjAhFyAVKAI0IQEgFUEAOgBMIBUgFyABQQV0ajYCSCAVIBc2AkQgHSAbELMCIBUoAkAiAkECTwRAIAJBAXYhGCAVKAI8IgEgAkEFdGpBIGshAgNAIAEpAwAhBCABIAIpAwA3AwAgAUEYaiIZKQMAIQMgGSACQRhqIhkpAwA3AwAgAUEQaiIaKQMAIQcgGiACQRBqIhopAwA3AwAgAUEIaiIbKQMAIQUgGyAC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19mumuT26Y3LAH0iBDcDICAAIAYgAyAEVq0gAiAFVq1RrX1Cms3/y6O9xIAafTcDKAsL4QMBDX4gAikDACIKIQYgASkDACILIQQgAAJ+AkACfgJAIAogC1INACACKQMIIgcgASkDCCIEUgRAIAchBgwBCyACKQMQIgMgASkDECIEUgRAIAMhBgwBCyADIQUgAikDGCIGIQggByAGIAEpAxgiBFENARoLIAQgBlgNASACKQMIIQcgAikDECEDIAEpAxAhBSACKQMYIQYgASkDGCEIIAEpAwgLIQkgBSADfSIMIAYgCFatIg19IQQgCSAHfSIOIAwgDVQgAyAFVnKtIgV9IQMgBSAOViAHIAlWciECIAsgCn0hByAIIAZ9DAELQt2whYzotpGouH8gAikDCCIGIAEpAwgiB30iCSACKQMQIgMgASkDECIFVCADIAV9IgMgAikDGCIFIAEpAxgiBFStIghUcq0iDH0iDX0iDiADIAh9IgNCjZXHw5bS2sCXf1ZCjZXHw5bS2sCXfyADfSIIIAUgBH0iBULH+vPD7YKjkDxWrSIEVHKtIg99IQMgDiAPVCANQt2whYzotpGouH9WciECIAggBH0hBCAGIAdUIAkgDFRyrSALIAp9fEKpwMaJrs6TsjB8IQdCx/rzw+2Co5A8IAV9CzcDGCAAIAQ3AxAgACADNwMIIAAgByACrX03AwALxgMCBX8BfiMAQdAAayICJABBCCEDAkACQAJAAn8gACAAKQMAUEUNABogACkDCFBFBEBBECEDIABBCGoMAQsgACkDEFBFBEBBGCEDIABBEGoMAQsgACkDGFBFBEBBICEDIABBGGoMAQsgACkDIFBFBEBBKCEDIABBIGoMAQsgACkDKFANAUEwIQNBASEFIABBKGoLIQQgASgCFCIGQe/TwABBAiABKAIYIgEoAgwRAwANASACIAQ2AiggAkEBNgI0IAJB9NPAADYCMCACQgE3AjwgAkKAgICAsAYiByACQShqrYQ3AxAgAiACQRBqNgI4IAYgASACQTBqEKACDQFBACEEIAUNAiAHIAJBDGqthCEHA0AgAiAAIANqNgIMIAIgBzcDKCACQQE2AiQgAkEBNgIUIAJB9NPAADYCECACQQE2AhwgAkEDOgBMIAJBCDYCSCACQiA3AkAgAkKAgICAgAI3AjggAkECNgIwIAIg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rMLCAEGswsIAKAIAQX4gAUEDdndxNgIADwsgAiADNgIYIAAoAhAiAQRAIAIgATYCECABIAI2AhgLIAAoAhQiAEUNACACIAA2AhQgACACNgIYCwv1AgIIfwR+IwBBQGoiASQAQdm+wgAtAAAaQSBBCBCwBCIDBEAgA0EYakGI8cAAKQMANwMAIANBEGpBgPHAACkDADcDACADQQhqQfjwwAApAwA3AwAgA0Hw8MAAKQMANwMAIAFBADoAHCABIANBIGo2AhggASADNgIUIAFBCGogAUEUahCzAiABKAIQIgJBAk8EQCACQQF2IQggASgCDCIEIAJBBXRqQSBrIQIDQCAEKQMAIQkgBCACKQMANwMAIARBGGoiBSkDACEKIAUgAkEYaiIFKQMANwMAIARBEGoiBikDACELIAYgAkEQaiIGKQMANwMAIARBCGoiBykDACEMIAcgAkEIaiIHKQMANwMAIAIgCTcDACAFIAo3AwAgBiALNwMAIAcgDDcDACACQSBrIQIgBEEgaiEEIAhBAWsiCA0ACwsgACABKQIINwIAIABBCGogAUEQaigCADYCACADQSAQuQQgAUFAayQADwtBCEEgEMoEAAvdAgIIfwR+IwBBQGoiASQAQdm+wgAtAAAaQSBBCBCwBCIDBEAgA0IANwMAIANBGGpCADcDACADQRBqQgA3AwAgA0EIakIANwMAIAFBADoAHCABIANBIGo2AhggASADNgIUIAFBCGogAUEUahCzAiABKAIQIgJBAk8EQCACQQF2IQggASgCDCIEIAJBBXRqQSBrIQIDQCAEKQMAIQkgBCACKQMANwMAIARBGGoiBSkDACEKIAUgAkEYaiIFKQMANwMAIARBEGoiBikDACELIAYgAkEQaiIGKQMANwMAIARBCGoiBykDACEMIAcgAkEIaiIHKQMANwMAIAIgCTcDACAFIAo3AwAgBiALNwMAIAcgDDcDACACQSBrIQIgBEEgaiEEIAhBAWsiCA0ACwsgACABKQIINwIAIABBCGogAUEQaigCADYCACADQSAQuQQgAUFAayQADwtBCEEgEMoEAAvRAgEDfwJAAkACfyACRQRAQQQhBEEADAELIAJBAnQhBSACQf////8BSwRADAMLQdm+wgAtAAAaQQQhAyAFQQQQsAQiBEUNAiACQQJ0IgMgBCABIAUQzwQiBWpB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AXFBAWsOBAYFBAMBC0HZvsIALQAAGkEuQQEQsAQiAUUNCiAXQS42AgwgFyABNgIIIBdCgYCAgOAFNwIAIAFBJmpBvrPBACkAADcAACABQSBqQbizwQApAAA3AAAgAUEYakGws8EAKQAANwAAIAFBEGpBqLPBACkAADcAACABQQhqQaCzwQApAAA3AAAgAUGYs8EAKQAANwAADAkLAkAgCEUEQEEIISEMAQsgCEEFdCEHIAhB////H0sNE0HZvsIALQAAGkEIIQsgB0EIELAEIiFFDRMgISEHIAghCwNAIApB0B1qIAEQ8AIgB0EYaiAKQegdaikDADcDACAHQRBqIApB4B1qKQMANwMAIAdBCGogCkHYHWopAwA3AwAgByAKKQPQHTcDACAHQSBqIQcgAUEMaiEBIAtBAWsiCw0ACwsgCkGAgICAeDYC8BwgCkECNgLYHSAKIAg2AtQdIAogITYC0B0gCiAKQfAcajYC3B0gCkHwI2ohEyMAQfABayIBJAAgAUGgAWogCkHQHWoiBSAFKAIMEJgCAkACQCABKQOgASItQgJSBEAgAUGYAWoiByABQeABaikDADcDACABQZABaiILIAFB2AFqKQMANwMAIAFBiAFqIhYgAUHQAWopAwA3AwAgAUGAAWoiDCABQcgBaikDADcDACABQfgAaiIRIAFBwAFqKQMANwMAIAFB8ABqIg8gAUG4AWopAwA3AwAgAUHoAGoiDiABQbABaikDADcDACABIAEpA6gBNwNgIC1CAFINAQsgE0EANgIIIBNCgICAgIABNwIADAELIAFB2ABqIAcpAwA3AwAgAUHQAGogCykDADcDACABQcgAaiAWKQMANwMAIAFBQGsgDCkDADcDACABQThqIBEpAwA3AwAgAUEwaiAPKQMANwMAIAFBKGogDikDADcDACABIAEpA2A3AyACQCAFKAIMKAIAQYCAgIB4Rw0AIAUoAgRFDQAgBSgCCEUNFQtB2b7CAC0AABpBgAJBCBCwBCIHRQ0VIAcgASkDIDcDACAHQThqIAFB2ABqIhEpAwA3AwAgB0EwaiABQdAAaiIPKQMANwMAIAdBKGogAUHIAGoiDikDADcDACAHQSBqIAFBQGsiEikDADcDACAHQRhqIAFBOGoiECkDADcDACAHQRBqIAFBMGoiDSkDADcDACAHQQhqIAFBKGopAwA3AwAgAUEBNgIMIAEgBzYCCCABQQQ2AgQgAUEYaiAFQQhqKQIANwMAIAEgBSkCADcDECABQaABaiABQRBqIAEoAhwQmAICQCABKQOgASItQgJRDQAgAUGoAWohBUHAACEWQQEhDANAIAFBmAFqIgsgBUE4aikDADcDACABQZABaiIYIAVBMGopAwA3AwAgAUGIAWoiHCAFQShqKQMANwMAIAFBgAFqIhkgBUEgaikDADcDACABQfgAaiIUIAVBGGopAwA3AwAgAUHwAGoiIiAFQRBqKQMANwMAIAFB6ABqIiMgBUEIaikDADcDACABIAUpAwA3A2AgLVANASARIAspAwA3AwAgDyAYKQMANwMAIA4gHCkDADcDACASIBkpAwA3AwAgECAUKQMANwMAIA0gIikDADcDACABQShqIhwgIykDADcDACABIAEpA2A3AyAgASgCHCEYIAEoAgQgDEYEQAJAIBgoAgBBgICAgHhHDQAgASgCFEUNACABKAIYRQ0YCyABQQRqIAxBARCWAyABKAIIIQcLIAcgFmoiCyABKQMgNwMAIAtBOGogESkDADcDACALQTBqIA8pAwA3AwAgC0EoaiAOKQMANwMAIAtBIGogEikDADcDACALQRhqIBApAwA3AwAgC0EQaiANKQMANwMAIAtBCGogHCkDADcDACABIAxBAWoiDDYCDCABQaABaiABQRBqIBgQmAIgFkFAayEWIAEpA6ABIi1CAlINAAsLIBNBCGogAUEMaigCADYCACATIAEpAgQ3AgALIAFB8AFqJAAgCigC8BwiAUGAgICAeEcEQCAKKAL4HCEFIAooAvQcIQYgCigC8CMiBwRAIAooAvQjIAdBBnQQuQQLIBcgBTYCDCAXIAY2AgggFyABNgIEIBdBATYCAAwICyAKKAL4IyEYIAooAvQjIRYgCigC8CMhHAJ/IBpFBEAgCkHQHWoiARDjAiAKQewhaiIFIApBuB9qEOICIAEQ7wMgBQwBCyAKQdgdakHQs8EAKAIANgIAIApByLPBACkCADcD0B0gCkHQHWoiBRCiAyAKKALUHUEBNgIAIAooAtQdIQECQCAKKALQHSIHQYCAgIB4Rw0AIAEoAggNACAKQQE2AtgdIAogATYC1B0gCkGAgICAeDYC0B0gCkHsIWoiASAFEK4DIAEMAQsgCkEBNgLYHSAK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A0AgCigC0B0gAUEBa0YEQCAKQdAdahCiAwsgCigC1B0gB2ogMz4CACAsQiCGIDNCgICAgBBUIRMgLFAhEiAHQQRqIQcgLEIgiCEsIAogATYC2B0gAUEBaiEBIDNCIIiEITMgEiATcUUNAAsLIApB+CNqIhMgCygCADYCACAKIAopA9AdNwPwIyAKKAKAIiIBIAooAvghRgRAIApB+CFqEJ4DCyAKKAL8ISABQQxsaiIHIAopA/AjNwIAIAdBCGogEygCADYCACAKIAFBAWo2AoAiIAsgDzYCACAKIC03A9AdICsgNIRQRQRAQQEhAUEAIQcDQCAKKALQHSABQQFrRgRAIApB0B1qEKIDCyAKKALUHSAHaiA0PgIAICtCIIYgNEKAgICAEFQhEiArUCEQIAdBBGohByArQiCIISsgCiABNgLYHSABQQFqIQEgNEIgiIQhNCAQIBJxRQ0ACwsgEyALKAIANgIAIAogCikD0B03A/AjIAooAowiIgEgCigChCJGBEAgCkGEImoQngMLIAooAogiIAFBDGxqIgcgCikD8CM3AgAgB0EIaiATKAIANgIAIAogAUEBajYCjCIgBUEMaiIFIBFHDQALIAooAoAiIQcgCigC/CELIAcQDCAKQdgZaiAKQYgeaiILKQMANwMAIApB0BlqIApBgB5qIhMpAwA3AwAgCkHIGWogCkH4HWoiESkDADcDACAKQcAZaiAKQfAdaiIPKQMANwMAIApBuBlqIApB6B1qIgUpAwA3AwAgCkGwGWogCkHgHWoiBykDADcDACAKQagZaiAKQdgdaiIBKQMANwMAIAogCikD0B03A6AZIApBuCJqIApBuB5qIg4pAwA3AwAgCkGwImogCkGwHmoiEikDADcDACAKQagiaiAKQageaiIQKQMANwMAIApBoCJqIApBoB5qIg0pAwA3AwAgCkGYImogCkGYHmoiGSkDADcDACAKIAopA5AeNwOQIiAMIBYgGCAKKAKIIiAKKAKMIhAMIApB6BpqIhQgCykDADcDACAKQeAaaiILIBMpAwA3AwAgCkHYGmoiEyARKQMANwMAIApB0BpqIhEgDykDADcDACAKQcgaaiIPIAUpAwA3AwAgCkHAGmoiIiAHKQMANwMAIApBuBpqIiMgASkDADcDACAKIAopA9AdNwOwGiAKQegiaiAOKQMANwMAIApB4CJqIBIpAwA3AwAgCkHYImogECkDADcDACAKQdAiaiANKQMANwMAIApByCJqIBkpAwA3AwAgCiAKKQOQHjcDwCIgBSAPKQMAIi03AwAgByAiKQMAIi43AwAgASAjKQMAIi83AwAgCkH4I2ogLzcDACAKQYAkaiAuNwMAIApBiCRqIC03AwAgCiAKKQOwGiItNwPQHSAKQZAkaiARKQMANwMAIApBmCRqIBMpAwA3AwAgCkGgJGogCykDADcDACAKQagkaiAUKQMANwMAIAogLTcD8CMgAUHQs8EAKAIANgIAIApByLPBACkCADcD0B0gDBCiAyAKKALUHUEBNgIAIAooAtQdIQECQAJAIAooAtAdIgVBgICAgHhHDQAgASgCCA0AIApBATYC2B0gCiABNgLUHSAKQYCAgIB4NgLQHSAKQfAcaiAMEK4DDAELIApBATYC2B0gCiABNgLUHSAKIAU2AtAdIApB8BxqIApB0B1qQQRBABCMAQsgCkHII2ogCkH4HGoiASgCADYCACAKIAopAvAcNwPAIyAKQdAdaiAKQfAjakEBIApBwCNqQQEQDCAKQfgbaiAKQYgeaikDADcDACAKQfAbaiAKQYAeaikDADcDACAKQegbaiAKQfgdaikDADcDACAKQeAbaiAKQfAdaiIHKQMANwMAIApB2BtqIApB6B1qIgspAwA3AwAgCkHQG2ogCkHgHWoiDCkDADcDACAKQcgbaiAKQdgdaiIRKQMANwMAIAogCikD0B03A8AbIApBmCNqIApBuB5qKQMANwMAIApBkCNqIApBsB5qKQMANwMAIApBiCNqIApBqB5qKQMANwMAIApBgCNqIApBoB5qKQMANwMAIApB+CJqIApBmB5qKQMANwMAIAogCikDkB43A/AiIAooAsAjIgUEQCAKKALEIyAFQQJ0ELkECyAKQfAcakHGtcEAQbi1wQAgGhtBGEEOIBobEJ4BIApBiCRqIApBiB1qIg8pAwA3AwAgCkGAJGoiDiAKQYAdaiISKQMANwMAIApB+CNqIAEpAwA3AwAgCkGYJGpCADcDACAKQaAkakIANwMAIApBqCRqQgA3AwAgCkG4JGpBsNLAACkDADcDACAKQcAkakG40sAAKQMANwMAIApByCRqQcDSwAApAwA3AwAgCiAKKQPwHDcD8CMgCkIANwOQJCAK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QgBSICtQICtCIIYgLEIgiIQhLCAHQQRqIQcgK0IgiCErIAogATYCyCMgAUEBaiEBGw0ACyAKKAKIGiEBCyALIAUoAgA2AgAgCiAKKQPAIzcDuCEgCigCgBogAUYEQCAKQYAaahCeAwsgCigChBogAUEMbGoiByAKKQO4ITcCACAHQQhqIAsoAgA2AgAgCiABQQFqIgE2AogaIA4pAwAhKyAKKQOAHiEsIAUgDDYCACAKIC03A8AjICsgLIRQRQRAQQEhAUEAIQcDQCAKKALAIyABQQFrRgRAIApBwCNqEKIDCyAKKALEIyAHaiAsPgIAICxC/////w9WICtCAFIgK1AgK0IghiAsQiCIhCEsIAdBBGohByArQiCIISsgCiABNgLIIyABQQFqIQEbDQALIAooAogaIQELIAsgBSgCADYCACAKIAopA8AjNwO4ISAKKAKAGiABRgRAIApBgBpqEJ4DCyAKKAKEGiABQQxsaiIHIAopA7ghNwIAIAdBCGogCygCADYCACAKIAFBAWoiATYCiBogCkHQHWogEEEgahDaASAKQoCAgIDAADcDkB4gDSkDACErIAopA9AdISwgBSAMNgIAIAogLTcDwCMgKyAshFBFBEBBASEBQQAhBwNAIAooAsAjIAFBAWtGBEAgCkHAI2oQogMLIAooAsQjIAdqICw+AgAgK0IghiAsQoCAgIAQVCEQICtQIQ0gB0EEaiEHICtCIIghKyAKIAE2AsgjIAFBAWohASAsQiCIhCEsIA0gEHFFDQALIAooAogaIQELIAsgBSgCADYCACAKIAopA8AjNwO4ISAKKAKAGiABRgRAIApBgBpqEJ4DCyAKKAKEGiABQQxsaiIHIAopA7ghNwIAIAdBCGogCygCADYCACAKIAFBAWoiATYCiBogESkDACErIAopA+AdISwgBSAMNgIAIAogLTcDwCMgKyAshFBFBEBBASEBQQAhBwNAIAooAsAjIAFBAWtGBEAgCkHAI2oQogMLIAooAsQjIAdqICw+AgAgLEL/////D1YgK0IAUiArUCArQiCGICxCIIiEISwgB0EEaiEHICtCIIghKyAKIAE2AsgjIAFBAWohARsNAAsgCigCiBohAQsgCyAFKAIANgIAIAogCikDwCM3A7ghIAooAoAaIAFGBEAgCkGAGmoQngMLIAooAoQaIAFBDGxq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K0IAUiArUCArQiCGICxCIIiEISwgB0EEaiEHICtCIIghKyAKIAE2AsAhIAFBAWohARsNAAsgCigCiBohAQsgCyAGKAIANgIAIAogCikDuCE3A4ghIAooAoAaIAFGBEAgCkGAGmoQngMLIAooAoQaIAFBDGxqIgcgCikDiCE3AgAgB0EIaiALKAIANgIAIAogAUEBaiIBNgKIGiAOKQMAISsgCikD8B0hLCAGIAw2AgAgCiAtNwO4ISArICyEUEUEQEEBIQFBACEHA0AgCigCuCEgAUEBa0YEQCAKQbghahCiAwsgCigCvCEgB2ogLD4CACAsQv////8PViArQgBSICtQICtCIIYgLEIgiIQhLCAHQQRqIQcgK0IgiCErIAogATYCwCEgAUEBaiEBGw0ACyAKKAKIGiEBCyALIAYoAgA2AgAgCiAKKQO4ITcDiCEgCigCgBogAUYEQCAKQYAaahCeAwsgCigChBogAUEMbGoiByAKKQOIITcCACAHQQhqIAsoAgA2AgAgCiABQQFqIgE2AogaIBIpAwAhKyAKKQOAHiEsIAYgDDYCACAKIC03A7ghICsgLIRQRQRAQQEhAUEAIQcDQCAKKAK4ISABQQFrRgRAIApBuCFqEKIDCyAKKAK8ISAHaiAsPgIAICxC/////w9WICtCAFIgK1AgK0IghiAsQiCIhCEsIAdBBGohByArQiCIISsgCiABNgLAISABQQFqIQEbDQALIAooAogaIQELIAsgBigCADYCACAKIAopA7ghNwOIISAKKAKAGiABRgRAIApBgBpqEJ4DCyAKKAKEGiABQQxsaiIGIAopA4ghNwIAIAZBCGogCygCADYCACAKIAFBAWo2AogaIAVBIGoiBSAPRw0ACwsgIwRAIBMgI0EFdBC5BAsCQCAVRQ0AIApB2B1qIgFB0LPBACgCADYCACAKQcizwQApAgA3A9AdIBgEQCAKQdAdahCiAyAKKALUHSAYNgIAIApBATYC2B0LIApB+BxqIAEoAgA2AgAgCiAKKQPQHTcD8BwgCigCiBoiASAKKAKAGkYEQCAKQYAaahCeAwsgCigChBogAUEMbGoiBSAKKQPwHDcCACAFQQhqIApB+BxqIgUoAgA2AgAgCiABQQFqIgE2AogaIBgEQEHQs8EAKAIAIRVByLPBACkCACEtIApB6B1qIQwgCkH4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AwsgCigC1B0gB2ogMz4CACAsQiCGIDNCgICAgBBUIRMgLFAhEiAHQQRqIQcgLEIgiCEsIAogATYC2B0gAUEBaiEBIDNCIIiEITMgEiATcUUNAAsLIApB+CNqIhMgCygCADYCACAKIAopA9AdNwPwIyAKKAKAIiIBIAooAvghRgRAIApB+CFqEJ4DCyAKKAL8ISABQQxsaiIHIAopA/AjNwIAIAdBCGogEygCADYCACAKIAFBAWo2AoAiIAsgDzYCACAKIC03A9AdICsgNIRQRQRAQQEhAUEAIQcDQCAKKALQHSABQQFrRgRAIApB0B1qEKIDCyAKKALUHSAHaiA0PgIAICtCIIYgNEKAgICAEFQhEiArUCEQIAdBBGohByArQiCIISsgCiABNgLYHSABQQFqIQEgNEIgiIQhNCAQIBJxRQ0ACwsgEyALKAIANgIAIAogCikD0B03A/AjIAooAowiIgEgCigChCJGBEAgCkGEImoQngMLIAooAogiIAFBDGxqIgcgCikD8CM3AgAgB0EIaiATKAIANgIAIAogAUEBajYCjCIgBUEMaiIFIBFHDQALIAooAoAiIQcgCigC/CELIAcQESAKQdgZaiAKQYgeaiILKQMANwMAIApB0BlqIApBgB5qIhMpAwA3AwAgCkHIGWogCkH4HWoiESkDADcDACAKQcAZaiAKQfAdaiIPKQMANwMAIApBuBlqIApB6B1qIgUpAwA3AwAgCkGwGWogCkHgHWoiBykDADcDACAKQagZaiAKQdgdaiIBKQMANwMAIAogCikD0B03A6AZIApBuCJqIApBuB5qIg4pAwA3AwAgCkGwImogCkGwHmoiEikDADcDACAKQagiaiAKQageaiIQKQMANwMAIApBoCJqIApBoB5qIg0pAwA3AwAgCkGYImogCkGYHmoiGSkDADcDACAKIAopA5AeNwOQIiAMIBYgGCAKKAKIIiAKKAKMIhARIApB6BpqIhQgCykDADcDACAKQeAaaiILIBMpAwA3AwAgCkHYGmoiEyARKQMANwMAIApB0BpqIhEgDykDADcDACAKQcgaaiIPIAUpAwA3AwAgCkHAGmoiIiAHKQMANwMAIApBuBpqIiMgASkDADcDACAKIAopA9AdNwOwGiAKQegiaiAOKQMANwMAIApB4CJqIBIpAwA3AwAgCkHYImogECkDADcDACAKQdAiaiANKQMANwMAIApByCJqIBkpAwA3AwAgCiAKKQOQHjcDwCIgBSAPKQMAIi03AwAgByAiKQMAIi43AwAgASAjKQMAIi83AwAgCkH4I2ogLzcDACAKQYAkaiAuNwMAIApBiCRqIC03AwAgCiAKKQOwGiItNwPQHSAKQZAkaiARKQMANwMAIApBmCRqIBMpAwA3AwAgCkGgJGogCykDADcDACAKQagkaiAUKQMANwMAIAogLTcD8CMgAUHQs8EAKAIANgIAIApByLPBACkCADcD0B0gDBCiAyAKKALUHUEBNgIAIAooAtQdIQECQAJAIAooAtAdIgVBgICAgHhHDQAgASgCCA0AIApBATYC2B0gCiABNgLUHSAKQYCAgIB4NgLQHSAKQfAcaiAMEK4DDAELIApBATYC2B0gCiABNgLUHSAKIAU2AtAdIApB8BxqIApB0B1qQQRBABCMAQsgCkHII2ogCkH4HGoiASgCADYCACAKIAopAvAcNwPAIyAKQdAdaiAKQfAjakEBIApBwCNqQQEQESAKQfgbaiAKQYgeaikDADcDACAKQfAbaiAKQYAeaikDADcDACAKQegbaiAKQfgdaikDADcDACAKQeAbaiAKQfAdaiIHKQMANwMAIApB2BtqIApB6B1qIgspAwA3AwAgCkHQG2ogCkHgHWoiDCkDADcDACAKQcgbaiAKQdgdaiIRKQMANwMAIAogCikD0B03A8AbIApBmCNqIApBuB5qKQMANwMAIApBkCNqIApBsB5qKQMANwMAIApBiCNqIApBqB5qKQMANwMAIApBgCNqIApBoB5qKQMANwMAIApB+CJqIApBmB5qKQMANwMAIAogCikDkB43A/AiIAooAsAjIgUEQCAKKALEIyAFQQJ0ELkECyAKQfAcakHGtcEAQbi1wQAgGhtBGEEOIBobEJ4BIApBiCRqIApBiB1qIg8pAwA3AwAgCkGAJGoiDiAKQYAdaiISKQMANwMAIApB+CNqIAEpAwA3AwAgCkGYJGpCADcDACAKQaAkakIANwMAIApBqCRqQgA3AwAgCkG4JGpBsNLAACkDADcDACAKQcAkakG40sAAKQMANwMAIApByCRqQcDSwAApAwA3AwAgCiAKKQPwHDcD8CMgCkIANwOQJCAKQajSwAApAwA3A7AkIApB8CNqIgUQPyAHIAVB4AAQzwQhEyALIA8pAwA3AwAgDCASKQMANwMAIBEgASkDADcDACAKIAopA/AcNwPQHSAOQn83AwAgCkJ/NwP4IyAKQrDz////////BzcD8CMgCkKhfzcDiCQgBRDOAwRAIApCoH83A4gkIApCn3M3A/AjCyAKQdgjaiAKQYgkaiIBKQMANwMAIApB0CNqIApBgCRqIgUpAwA3AwAgCkHII2ogCkH4I2oiBykDADcDACAKIAopA/AjNwPAIyAKQcATaiAJrSItQoGIgPC3rn9CABC9AyAKQYATakIAIAopA8ATIi99QpGAgICAgICACEIAEL0DIApBsBNqIC1C//+/mBNCABC9AyAKQfASakIAIApByBNqKQMAIjAgCikDsBN8Ii4gL0IAUq18Ii99QpGAgICAgICACEIAEL0DIApBoBNqIC1CgIC+e0IAEL0DIApB4BJqQgAgL0IAUq0iMSAuIC9WrSAKQbgTaikDACAuIDBUrXx8fCIuIAopA6AThCIvfUKRgICAgICAgAhCABC9AyAKQZATaiAtQpCQgvC1lfX/B0IAEL0DIApB0BJqQgAgL0IAUq0iLyAKQagTaikDACAuIDFUrYQiMCAKKQOAE3wiMXwiLSAKKQOQE3wiLn1CkYCAgICAgIAIQgAQvQMgCiAuQgBSrSIyIApBmBNqKQMAIC0gLlatfCIuIC0gL1StIisgMCAxVq0iMCAKKQPwEiIvIApBiBNqKQMAfCIxfCIzfCIsfCI0fCItNwOIJCAKIC0gMlStIjIgCikD4BIiOSAKQfgSaikDACAvIDFWrXx8Ii8gMCAzVq18IjAgKyAsVq18IjEgLiA0Vq18Iit8Ii43A4AkIAogMCAxVq0gLyAwVq0gCkHoEmopAwAgLyA5VK18fHwiMyAKKQPQEnwiMCArIDFUrXwiMSAuIDJUrXwiLzcD+CMgCiAvIDFUrSAwIDFWrSAKQdgSaikDACAwIDNUrXx8fCIwNwPwIyAKQfAjahDOAwRAIAogLUIBfTcDiCQgCiAuIC1QrSItfTcDgCQgCiAvIC0gLlatIi19NwP4IyAKIDAgLSAvVq19QpGAgICAgICACH03A/AjCyAKQYgdaiILIAEpAwA3AwAgCkGAHWoiASAFKQMANwMAIApB+BxqIgUgBykDADcDACAKIAopA/AjNwPwHCAKQdAdaiAKQcAjaiIHIApB8BxqELYCAkAgGgRAIAcgCkGQImogCRCdASAKQZgdaiAKQegjaikCADcDACAKQZAdaiAKQeAjaikCADcDACALIApB2CNqKQIANwMAIAEgCkHQI2opAgA3AwAgBSAKQcgjaikCADcDACAKIAopAsAjNwPwHCAKQQQ2AqQdQQAhAQNAAkAgCiABQQFqNgKgHSAKQfAcaiABQQxsaiIBKAIAIgtBgICAgHhGDQAgASkCBCItpyEFIC1CIIinIgEEQCABQQV0IQcgBSEBA0AgCkHwI2oiDCABENsBIAFBIGohASAKQdAdaiAMELcBIAdBIGsiBw0ACwsgCwRAIAUgC0EFdBC5BAsgCigCoB0iASAKKAKkHUcNAQsLIApB8BxqEN4DDAELIApBwCNqIApBkCJqIAkQnQEgCkGYHWogCkHoI2opAgA3AwAgCkGQHWogCkHgI2opAgA3AwAgCkGIHWogCkHYI2opAgA3AwAgCkGAHWogCkHQI2opAgA3AwAgCkH4HGogCkHII2opAgA3AwAgCiAKKQLAIyItNwPwHCAKQoGAgIDAADcDoB0CQAJAIC2nIgtBgICAgHhGBEBBASEMQQQhBwwBCyAKQfAcaiEBA0AgASkCBCItpyEFIC1CIIinIgEEQCABQQV0IQcgBSEBA0AgCkHwI2oiDCABENsBIAFBIGohASAKQdAdaiAMELcBIAdBIGsiBw0ACwsgCwRAIAUgC0EFdBC5BAsgCigCpB0iByAKKAKgHSIBRg0CIAogAUEBaiIMNgKgHSAKQfAcaiABQQxsaiIBKAIAIgtBgICAgHhHDQALCyAHIAxGDQAgByAMayEHIApB8BxqIAxBDGxqIQEDQCABKAIAIgUEQCABQQRqKAIAIAVBBXQQuQQLIAFBDGohASAHQQFrIgcNAAsLIApBwCNqIApBwCJqIAkQnQEgCkGYHWogCkHoI2opAgA3AwAgCkGQHWogCkHgI2opAgA3AwAgCkGIHWogCkHYI2opAgA3AwAgCkGAHWogCkHQI2opAgA3AwAgCkH4HGogCkHII2opAgA3AwAgCiAKKQLAIyItNwPwHCAKQoGAgIDAADcDoB0CQAJAIC2nIgtBgICAgHhGBEBBASEMQQQhBwwBCyAKQfAcaiEBA0AgASkCBCItpyEFIC1CIIinIgEEQCABQQV0IQcgBSEBA0AgCkHwI2oiDCABENsBIAFBIGohASAKQdAdaiAMELcBIAdBIGsiBw0ACwsgCwRAIAUgC0EFdBC5BAsgCigCpB0iByAKKAKgHSIBRg0CIAogAUEBaiIMNgKgHSAKQfAcaiABQQxsaiIBKAIAIgtBgICAgHhHDQALCyAHIAxGDQAgByAMayEHIApB8BxqIAxBDGxqIQEDQCABKAIAIgUEQCABQQRqKAIAIAVBBXQQuQQLIAFBDGohASAHQQFrIgcNAAsLQQEhDCAKQcAjaiAKQfAiakEBEJ0BIApBmB1qIApB6CNqKQIANwMAIApBkB1qIApB4CNqKQIANwMAIApBiB1qIApB2CNqKQIANwMAIApBgB1qIApB0CNqKQIANwMAIApB+BxqIApByCNqKQIANwMAIAogCikCwCMiLTcD8BwgCkKBgICAwAA3A6AdQQQhByAtpyILQYCAgIB4RwRAIApB8BxqIQEDQCABKQIEIi2nIQUgLUIgiKciAQRAIAFBBXQhByAFIQEDQCAKQfAjaiIMIAEQ2wEgAUEgaiEBIApB0B1qIAwQtwEgB0EgayIHDQALCyALBEAgBSALQQV0ELkECyAKKAKkHSIHIAooAqAdIgFGDQIgCiABQQFqIgw2AqAdIApB8BxqIAFBDGxqIgEoAgAiC0GAgICAeEcNAAsLIAcgDEYNACAHIAxrIQcgCkHwHGogDEEMbGohAQNAIAEoAgAiBQRAIAFBBGooAgAgBUEFdBC5BAsgAUEMaiEBIAdBAWsiBw0ACwsgFiAYQQZ0aiEiIBgEQCAWIQEDQCAKQfAjaiIFIAEQ2wEgCkHQHWoiByAFELcBIAUgAUEgahDbASAHIAUQtwEgAUFAayIBICJHDQALCwJAIBpFBEAgCkHwI2oiASAKQaAZahDbASAKQdAdaiIFIAEQtwEgASAKQcAZahDbASAFIAEQtwEgASAKQbAaahDbASAFIAEQtwEgASAKQdAaahDbASAFIAEQtwEgASAKQcAbahDbASAFIAEQtwEgASAKQeAbahDbASAFIAEQtwEgASAFIAQgCRCIAgwBCyAKQfAjaiIBIApBoBlqENsBIApB0B1qIgUgARC3ASABIApBwBlqENsBIAUgARC3ASABIAUgBCAJENcCCyAKQbgjaiIBIBNBGGopAwA3AwAgCkGwI2oiBSATQRBqKQMANwMAIApBqCNqIhEgE0EIaikDADcDACAKIBMpAwA3A6AjIApB0B1qEIsDIApBmBpqIApBkB5qKQMANwMAIApBkBpqIApBiB5qKQMANwMAIApBiBpqIApBgB5qKQMANwMAIAogCikD+B03A4AaIApBqBtqIApBsB5qKQMANwMAIApBoBtqIApBqB5qKQMANwMAIApBmBtqIApBoB5qKQMANwMAIAogCikDmB43A5AbIAopA/AfITMgCikD6B8hNCAKKQPgHyE5IAopA9gfITogCkG4HGoiByABKQMANwMAIApBsBxqIgsgBSkDADcDACAKQagcaiIMIBEpAwA3AwAgCiAKKQOgIzcDoBwgCkHwI2oiASAKQaAcahCVBCAKQYghaiIFIApBgBpqIApBkBtqIAEQWUEAIQEgCkEANgLYHCAKQoCAgICAATcC0BwgBRCIA0H/AXFBAkcEQCAKQbgkaiETQgAhKwNAIApBgBFqIAopA6AhIi0gM0IAEL0DIApBwBFqIAopA5ghIi4gM0IAEL0DIApBgBJqIAopA5AhIi8gM0IAEL0DIApBwBJqIAopA4ghIjAgM0IAEL0DIApB8BBqIAopA4ARIjJCgYCAgHBCABC9AyAKQeAQaiAtIDRCABC9AyAKQbARaiAuIDRCABC9AyAKQfARaiAvIDRCABC9AyAKQbASaiAwIDRCABC9AyAKQdAQaiAKQYgRaikDACI2IAopA8ARfCIsIDJCIIZ8IjUgCikD4BB8IjFCgYCAgHBCABC9AyAKQcAQaiAtIDlCABC9AyAKQaARaiAuIDlCABC9AyAKQeARaiAvIDlCABC9AyAKQaASaiAwIDlCABC9AyAKQbAQaiAsIDVWrSAyQiCIfCI4IApByBFqKQMAICwgNlStfCI7IAopA4ASfCI9fCIsIAopA7ARfCI2IApB6BBqKQMAIDEgNVStfHwiNSAxQiCGfCI3IAopA8AQfCIyQoGAgIBwQgAQvQMgCkGgEGogLSA6QgAQvQMgCkGQEWogLiA6QgAQvQMgCkHQEWogLyA6QgAQvQMgCkGQEmogMCA6QgAQvQMgCkGQEGogCkHIEGopAwAgMiA3VK18IjwgCikDoBF8Ii4gCkGIEmopAwAgOyA9Vq18Ij0gCikDwBJ8Ii8gCikD8BB8IjAgLCA4VK18IjggCikD8BF8IjsgNSA2VK0gCkG4EWopAwAgLCA2Vq18fHwiLCA1IDdWrSAxQiCIfHwiN3wiMSAyQiCGfCI1IAopA6AQfCItQoGAgIBwQgAQvQMCQAJAIApBmBBqKQMAIApBmBFqKQMAIApBqBBqKQMAIC0gNVStfCI+IAopA5ARfCI2ID5UrXwgNiAuIDFWrSAKQagRaikDACAuIDxUrXx8IjwgCikD4BF8Ii4gLCA3Vq0iPiAKKQPQEHwiNyAwIDhWrSAKQfgQaikDACAvIDBWrXx8Ij8gCkHIEmopAwAgLyA9VK18fCIvIAopA7ASfCIwICwgO1StIApB+BFqKQMAIDggO1atfHx8Ijh8Ijt8IiwgMSA1Vq0gMkIgiHx8IjV8IjEgNlStfCI9IAopA9ARfCIyICwgNVatIkAgCikDsBB8IjUgNyA7Vq0gCkHYEGopAwAgNyA+VK18fCI7IDAgOFatIApBuBJqKQMAIC8gMFatfHwiOCAvID9UrXwiPnwiNiAKKQOgEnwiNyAsIC5UrSAKQegRaikDACAuIDxUrXx8fCIsfCI8fCIuIDEgLUIghnwiMCAxVK0gLUIgiHx8Ii8gLlStIjEgCikDkBB8Ii0gMVStfCAtIDUgPFatIApBuBBqKQMAIDUgQFStfHwiPCAsIDdUrSAKQagSaikDACA2IDdWrXx8IjcgNiA7VK0gOCA+Vq18fCI2fCIsIAopA5ASfCI1IC4gMlStIApB2BFqKQMAIDIgPVStfHx8Ii58IjEgLVStfCItIC4gNVStIApBmBJqKQMAICwgNVatfHwiLiAsIDxUrSA2IDdUrXx8IjJ8IixCgYCAgHBWICwgLVStQgAgLiAyVq19UnINAAJAICxCgYCAgHBRBEAgMUIAUiAvQv////8PVnINAkIAIS4gL0L/////D1oNAUKBgICAcCEsIC8hLQwDCyAxIS4gLyEtDAILQv////8PIS0gMEJ/UQ0AQoGAgIBwISwMAQsgL0L/////D30iLiAwQn9SrSIyfSEtIDEgL0L/////D1QgLiAyVHKtIi99IS4gLCAvIDFWrX1C/////w98ISwgMEIBfCEwCyAKIDA3A9AhIAogLTcDyCEgCiAuNwPAISAKICw3A7ghIApB8CNqIApBuCFqEIwCIAooAtgcIhEgCigC0BxGBEAgCkHQHGoQmgMLIAooAtQcIBFBBXRqIgUgCikD8CM3AwAgBUEIaiAKQfgjaiIPKQMANwMAIAVBEGogCkGAJGoiDikDADcDACAFQRhqIApBiCRqIgUpAwA3AwAgCiARQQFqNgLYHCAKQYAQaiArQoGIgPC3rn9CABC9AyAKQfAPakIAIAopA4AQIi59QpGAgICAgICACEIAEL0DIApB4A9qICtC//+/mBNCABC9AyAKQdAPakIAIApBiBBqKQMAIi8gCikD4A98Ii0gLkIAUq18Ii59QpGAgICAgICACEIAEL0DIApBwA9qICtCgIC+e0IAEL0DIApBsA9qQgAgLSAuVq0gCkHoD2opAwAgLSAvVK18fCIvIAopA8APfCItIC5CAFKtfCIufUKRgICAgICAgAhCABC9AyAKQaAPaiArQpCQgvC1lfX/B0IAEL0DIApBkA9qQgAgLkIAUq0iMSAtIC5WrSAKQcgPaikDACAtIC9UrXx8IjAgCikD8A98IjJ8Ii0gCikDoA98Ii59QpGAgICAgICACEIAEL0DAkAgCkGYD2opAwAgCkG4D2opAwAgCikDsA8iLCAKQdgPaikDACAKKQPQDyIvIApB+A9qKQMAfCI1IC9UrXx8Ii8gLFStfCAvIC8gMCAyVq0iMCA1fCIyIDBUrXwiMFatfCAwIDAgLSAxVK0iLyAyfCIxIC9UrXwiL1atfCIyIAopA5APfCIwIDJUrXwgMCAvIC8gCkGoD2opAwAgLSAuVq18Ii0gMXwiMSAtVK18IjJWrXwiLSAwVK18IC0gLkIAUq0iLiAxfCIwIC5UrSIuIDJ8IjEgLlStfCIyIC1UrXwiLEKRgICAgICAgAhUBEAgMiEvIDEhLSAwIS4MAQsgMCAxhCAyhFAEQEIAIS9CkYCAgICAgIAIISxCACEtQgAhLgwBCyAwQgF9IS4gMSAwUK0iL30hLSAyIC8gMVatIjB9IS8gLCAwIDJWrX1CkYCAgICAgIAIfSEsCyATQn83AwAgE0EIakJ/NwMAIA8gDCkDADcDACAOIAspAwA3AwAgBSAHKQMANwMAIApC0Pf///////8HNwOwJCAKQkE3A8gkIAogCikDoBw3A/AjIAogLjcDqCQgCiAtNwOgJCAKIC83A5gkIAogLDcDkCQgCkHwI2oQPyAHIAUpAwA3AwAgCyAOKQMANwMAIAwgDykDADcDACAKIAopA/AjNwOgHCAKQfAcaiIFIApBoBxqENYCIApBwCNqIhEgBUEgEJgBIAUgCkGAGmogCkGQG2ogERBZIApBoCFqIApBiB1qKQMANwMAIApBmCFqIApBgB1qKQMANwMAIApBkCFqIApB+BxqKQMANwMAIAogCikD8Bw3A4ghICtCAXwhKyAKQYghahCIA0H/AXFBAkcNAAsLIApBwCNqIApBiCFqEIwCIApB8CNqIApBoBxqEJUEIApB+BxqIgUgCkH4I2oiBykDADcDACAKQYAdaiILIApBgCRqIgwpAwA3AwAgCkGIHWoiESAKQYgkaiIPKQMANwMAIApBkB1qIg4gCikDwCM3AwAgCkGYHWoiEiAKQcgjaikDADcDACAKQaAdaiIQIApB0CNqKQMANwMAIApBqB1qIg0gCkHYI2opAwA3AwAgCiAKKQPwIzcD8BwgCigC0BwhIyAKKALUHCETIAooAtgcIRkgCkHQHWoQ7wMgCkGoJGogDSkDADcDACAKQaAkaiAQKQMANwMAIApBmCRqIBIpAwA3AwAgCkGQJGogDikDADcDACAPIBEpAwA3AwAgDCALKQMANwMAIAcgBSkDADcDACAKIAopA/AcNwPwIyAKQQA2AogaIApCgICAgMAANwKAGiAmBEAgCkGAGmoQngMgCigChBoiAUHIs8EAKQIANwIAIAFBCGpB0LPBACgCADYCACAKQQE2AogaQQEhAQsgCkHYHWoiBUHQs8EAKAIANgIAIApByLPBACkCADcD0B0gBkUEQCAKQdAdahCiAyAKKALUHUEBNgIAIApBATYC2B0gCigCiBohAQsgCkH4HGogBSgCADYCACAKIAopA9AdNwPwHCAKKAKAGiABRgRAIApBgBpqEJ4DCyAKKAKEGiABQQxsaiIFIAopA/AcNwIAIAVBCGogCkH4HGoiEigCADYCACAKIAFBAWoiATYCiBoCQCAGRQ0AIApB2B1qQdCzwQAoAgA2AgAgCkHIs8EAKQIANwPQHSAJBEAgCkHQHWoQogMgCigC1B0gCTYCACAKQQE2AtgdIAooAogaIQELIApB+BxqIgUgCkHYHWooAgA2AgAgCiAKKQPQHTcD8BwgCigCgBogAUYEQCAKQYAaahCeAwsgCigChBogAUEMbGoiBiAKKQPwHDcCACAGQQhqIAUoAgA2AgAgCiABQQFqNgKIGiAJRQ0AIApB2B1qIQZBACELA0ACQCAKKAKAIiIBIAtLBEAgCyAKKAKMIiIBTw0PIAooAogiIREgCkGQG2ogC0EMbCIPIAooAvwhahBnIAooApgbIQcgBkHQs8EAKAIAIg42AgAgCkHIs8EAKQIAIi03A9AdIAcEQCAKQdAdahCiAyAKKALUHSAHNgIAIApBATYC2B0LIApB+BxqIgUgBigCADYCACAKIAopA9AdNwPwHCAKKAKIGiIBIAooAoAaRgRAIApBgBpqEJ4DCyAKKAKEGiABQQxsaiIMIAopA/AcNwIAIAxBCGogBSgCADYCACAKIAFBAWo2AogaIAooApAbIQwgCigClBsiECEBIAdFDQEDQCAKQYAaaiABLQAAEI0BIAFBAWohASAHQQFrIgcNAAsMAQsMDQsgDARAIBAgDBC5BAsCQCAaDQAgCkGQG2ogDyARahBnIAooApgbIQcgBiAONgIAIAogLTcD0B0gBwRAIApB0B1qEKIDIAooAtQdIAc2AgAgCkEBNgLYHQsgBSAGKAIANgIAIAogCikD0B03A/AcIAooAogaIgEgCigCgBpGBEAgCkGAGmoQngMLIAooAoQaIAFBDGxqIgwgCikD8Bw3AgAgDEEIaiAFKAIANgIAIAogAUEBajYCiBogCigClBshBSAKKAKQGyEMIAcEQCAFIQEDQCAKQYAaaiABLQAAEI0BIAFBAWohASAHQQFrIgcNAAsLIAxFDQAgBSAMELkECyALQQFqIgsgCUcNAAsLIApCgICAgDA3AvAcIAogCkHAG2o2AoAdIAogCkGwGmo2AvwcIAogCkGgGWo2AvgcAkAgGkUEQEHQs8EAKAIAIQxByLPBACkCACEtIApB6B1qIREgCkH4HWohDyAKQYgeaiEOQQAhBgNAIApB0B1qIBIgBkECdGooAgAiEBDbASAKQoCAgIDAADcDkB4gCkHYHWoiDSkDACErIAopA9AdISwgCkHII2oiBSAMNgIAIAogLTcDwCMgKyAshFBFBEBBASEBQQAhBwNAIAooAsAjIAFBAWtGBEAgCkHAI2oQogMLIAooAsQjIAdqICw+AgAgK0IghiAsQoCAgIAQVCELICtQIRQgB0EEaiEHICtCIIghKyAKIAE2AsgjIAFBAWohASAsQiCIhCEsIAsgFHFFDQALCyAKQcAhaiILIAUoAgA2AgAgCiAKKQPAIzcDuCEgCigCiBoiASAKKAKAGkYEQCAKQYAaahCeAwsgCigChBogAUEMbGoiByAKKQO4ITcCACAHQQhqIAsoAgA2AgAgCiABQQFqIgE2AogaIBEpAwAhKyAKKQPgHSEsIAUgDDYCACAKIC03A8AjICsgLIRQRQRAQQEhAUEAIQcDQCAKKALAIyABQQFrRgRAIApBwCNqEKIDCyAKKALEIyAHaiAsPgIAICxC/////w9WICtCAFIgK1AgK0IghiAsQiCIhCEsIAdBBGohByArQiCIISsgCiABNgLIIyABQQFqIQEbDQALIAooAogaIQELIAsgBSgCADYCACAKIAopA8AjNwO4ISAKKAKAGiABRgRAIApBgBpqEJ4DCyAKKAKEGiABQQxsaiIHIAopA7ghNwIAIAdBCGogCygCADYCACAKIAFBAWoiATYCiBogDykDACErIAopA/AdISwgBSAMNgIAIAogLTcDwCMgKyAshFBFBEBBASEBQQAhBwNAIAooAsAjIAFBAWtGBEAgCkHAI2oQogMLIAooAsQjIAdqICw+AgAgLEL/////D1YgK0IAUiArUCArQiCGICxCIIiEISwgB0EEaiEHICtCIIghKyAKIAE2AsgjIAFBAWohARsNAAsgCigCiBohAQsgCyAFKAIANgIAIAogCikDwCM3A7ghIAooAoAaIAFGBEAgCkGAGmoQngMLIAooAoQaIAFBDGxqIgcgCikDuCE3AgAgB0EIaiALKAIANgIAIAogAUEBaiIBNgKIGiAOKQMAISsgCikDgB4hLCAFIAw2AgAgCiAtNwPAIyArICyEUEUEQEEBIQFBACEHA0AgCigCwCMgAUEBa0YEQCAKQcAjahCiAwsgCigCxCMgB2ogLD4CACAsQv////8PViArQgBSICtQICtCIIYgLEIgiIQhLCAHQQRqIQcgK0IgiCErIAogATYCyCMgAUEBaiEBGw0ACyAKKAKIGiEBCyALIAUoAgA2AgAgCiAKKQPAIzcDuCEgCigCgBogAUYEQCAKQYAaahCeAwsgCigChBogAUEMbGoiByAKKQO4ITcCACAHQQhqIAsoAgA2AgAgCiABQQFqIgE2AogaIApB0B1qIBBBIGoQ2wEgCkKAgICAwAA3A5AeIA0pAwAhKyAKKQPQHSEsIAUgDDYCACAKIC03A8AjICsgLIRQRQRAQQEhAUEAIQcDQCAKKALAIyABQQFrRgRAIApBwCNqEKIDCyAKKALEIyAHaiAsPgIAICtCIIYgLEKAgICAEFQhECArUCENIAdBBGohByArQiCIISsgCiABNgLIIyABQQFqIQEgLEIgiIQhLCANIBBxRQ0ACyAKKAKIGiEBCyALIAUoAgA2AgAgCiAKKQPAIzcDuCEgCigCgBogAUYEQCAKQYAaahCeAwsgCigChBogAUEMbGoiByAKKQO4ITcCACAHQQhqIAsoAgA2AgAgCiABQQFqIgE2AogaIBEpAwAhKyAKKQPgHSEsIAUgDDYCACAKIC03A8AjICsgLIRQRQRAQQEhAUEAIQcDQCAKKALAIyABQQFrRgRAIApBwCNqEKIDCyAKKALEIyAHaiAsPgIAICxC/////w9WICtCAFIgK1AgK0IghiAsQiCIhCEsIAdBBGohByArQiCIISsgCiABNgLIIyABQQFqIQEbDQALIAooAogaIQELIAsgBSgCADYCACAKIAopA8AjNwO4ISAKKAKAGiABRgRAIApBgBpqEJ4DCyAKKAKEGiABQQxsaiIHIAopA7ghNwIAIAdBCGogCygCADYCACAKIAFBAWoiATYCiBogDykDACErIAopA/AdISwgBSAMNgIAIAogLTcDwCMgKyAshFBFBEBBASEBQQAhBwNAIAooAsAjIAFBAWtGBEAgCkHAI2oQogMLIAooAsQjIAdqICw+AgAgLEL/////D1YgK0IAUiArUCArQiCGICxCIIiEISwgB0EEaiEHICtCIIghKyAKIAE2AsgjIAFBAWohARsNAAsgCigCiBohAQsgCyAFKAIANgIAIAogCikDwCM3A7ghIAooAoAaIAFGBEAgCkGAGmoQngMLIAooAoQaIAFBDGxqIgcgCikDuCE3AgAgB0EIaiALKAIANgIAIAogAUEBaiIBNgKIGiAOKQMAISsgCikDgB4hLCAFIAw2AgAgCiAtNwPAIyArICyEUEUEQEEBIQFBACEHA0AgCigCwCMgAUEBa0YEQCAKQcAjahCiAwsgCigCxCMgB2ogLD4CACAsQv////8PViArQgBSICtQICtCIIYgLEIgiIQhLCAHQQRqIQcgK0IgiCErIAogATYCyCMgAUEBaiEBGw0ACyAKKAKIGiEBCyALIAUoAgA2AgAgCiAK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NwPAIyAKQYgdaiAuNwMAIApBgB1qIC83AwAgESAwNwMAIAogMTcD8BwgCkHQHWogCkHwHGoQ2wEgCkKAgICAwAA3A5AeIApB2B1qKQMAISsgCikD0B0hLCAKQcAhaiIGIAw2AgAgCiAtNwO4ISArICyEUEUEQEEBIQFBACEHA0AgCigCuCEgAUEBa0YEQCAKQbghahCiAwsgCigCvCEgB2ogLD4CACArQiCGICxCgICAgBBUIQsgK1AhECAHQQRqIQcgK0IgiCErIAogATYCwCEgAUEBaiEBICxCIIiEISwgCyAQcUUNAAsLIApBkCFqIgsgBigCADYCACAKIAopA7ghNwOIISAKKAKIGiIBIAooAoAaRgRAIApBgBpqEJ4DCyAKKAKEGiABQQxsaiIHIAopA4ghNwIAIAdBCGogCygCADYCACAKIAFBAWoiATYCiBogCkHoHWopAwAhKyAKKQPgHSEsIAYgDDYCACAKIC03A7ghICsgLIRQRQRAQQEhAUEAIQcDQCAKKAK4ISABQQFrRgRAIApBuCFqEKIDCyAKKAK8ISAHaiAsPgIAICxC/////w9WICtCAFIgK1AgK0IghiAsQiCIhCEsIAdBBGohByArQiCIISsgCiABNgLAISABQQFqIQEbDQALIAooAogaIQELIAsgBigCADYCACAKIAopA7ghNwOIISAKKAKAGiABRgRAIApBgBpqEJ4DCyAKKAKEGiABQQxsaiIHIAopA4ghNwIAIAdBCGogCygCADYCACAKIAFBAWoiATYCiBogDikDACErIAopA/AdISwgBiAMNgIAIAogLTcDuCEgKyAshFBFBEBBASEBQQAhBwNAIAooArghIAFBAWtGBEAgCkG4IWoQogMLIAooArwhIAdqICw+AgAgLEL/////D1YgK0IAUiArUCArQiCGICxCIIiEISwgB0EEaiEHICtCIIghKyAKIAE2AsAhIAFBAWohARsNAAsgCigCiBohAQsgCyAGKAIANgIAIAogCikDuCE3A4ghIAooAoAaIAFGBEAgCkGAGmoQngMLIAooAoQaIAFBDGxqIgcgCikDiCE3AgAgB0EIaiALKAIANgIAIAogAUEBaiIBNgKIGiASKQMAISsgCikDgB4hLCAGIAw2AgAgCiAtNwO4ISArICyEUEUEQEEBIQFBACEHA0AgCigCuCEgAUEBa0YEQCAKQbghahCiAwsgCigCvCEgB2ogLD4CACAsQv////8PViArQgBSICtQICtCIIYgLEIgiIQhLCAHQQRqIQcgK0IgiCErIAogATYCwCEgAUEBaiEBGw0ACyAKKAKIGiEBCyALIAYoAgA2AgAgCiAKKQO4ITcDiCEgCigCgBogAUYEQCAKQYAaahCeAwsgCigChBogAUEMbGoiBiAKKQOIITcCACAGQQhqIAsoAgA2AgAgCiABQQFqNgKIGiAFQSBqIgUgD0cNAAsLICMEQCATICNBBXQQuQQLAkAgFUUNACAKQdgdaiIBQdCzwQAoAgA2AgAgCkHIs8EAKQIANwPQHSAYBEAgCkHQHWoQogMgCigC1B0gGDYCACAKQQE2AtgdCyAKQfgcaiABKAIANgIAIAogCikD0B03A/AcIAooAogaIgEgCigCgBpGBEAgCkGAGmoQngMLIAooAoQaIAFBDGxqIgUgCikD8Bw3AgAgBUEIaiAKQfgcaiIFKAIANgIAIAogAUEBaiIBNgKIGiAYBEBB0LPBACgCACEVQcizwQApAgAhLSAKQegdaiEMIApB+B1qIRMgCkGIHmohESAWIQYDQCAKQdAdaiAGENsBIApCgICAgMAANwOQHiAKQdgdaiIPKQMAISsgCikD0B0hLCAFIBU2AgAgCiAtNwPwHCArICyEUEUEQEEBIQFBACEHA0AgCigC8BwgAUEBa0YEQCAKQfAcahCiAwsgCigC9BwgB2ogLD4CACArQiCGICxCgICAgBBUIQsgK1AhDiAHQQRqIQcgK0IgiCErIAogATYC+BwgAUEBaiEBICxCIIiEISwgCyAOcUUNAAsLIApByCNqIgsgBSgCADYCACAKIAopA/AcNwPAIyAKKAKIGiIBIAooAoAaRgRAIApBgBpqEJ4DCyAKKAKEGiABQQxsaiIHIAopA8AjNwIAIAdBCGogCygCADYCACAKIAFBAWoiATYCiBogDCkDACErIAopA+AdISwgBSAVNgIAIAogLTcD8BwgKyAshFBFBEBBASEBQQAhBwNAIAooAvAcIAFBAWtGBEAgCkHwHGoQogMLIAooAvQcIAdqICw+AgAgLEL/////D1YgK0IAUiArUCArQiCGICxCIIiEISwgB0EEaiEHICtCIIghKyAKIAE2AvgcIAFBAWohARsNAAsgCigCiBohAQsgCyAFKAIANgIAIAogCikD8Bw3A8AjIAooAoAaIAFGBEAgCkGAGmoQngMLIAooAoQaIAFBDGxqIgcgCikDwCM3AgAgB0EIaiALKAIANgIAIAogAUEBaiIBNgKIGiATKQMAISsgCikD8B0hLCAFIBU2AgAgCiAtNwPwHCArICyEUEUEQEEBIQFBACEHA0AgCigC8BwgAUEBa0YEQCAKQfAcahCiAwsgCigC9BwgB2ogLD4CACAsQv////8PViArQgBSICtQICtCIIYgLEIgiIQhLCAHQQRqIQcgK0IgiCErIAogATYC+BwgAUEBaiEBGw0ACyAKKAKIGiEBCyALIAUoAgA2AgAgCiAKKQPwHDcDwCMgCigCgBogAUYEQCAKQYAaahCeAwsgCigChBogAUEMbGoiByAKKQPAIzcCACAHQQhqIAsoAgA2AgAgCiABQQFqIgE2AogaIBEpAwAhKyAKKQOAHiEsIAUgFTYCACAKIC03A/AcICsgLIRQRQRAQQEhAUEAIQcDQCAKKALwHCABQQFrRgRAIApB8BxqEKIDCyAKKAL0HCAHaiAsPgIAICxC/////w9WICtCAFIgK1AgK0IghiAsQiCIhCEsIAdBBGohByArQiCIISsgCiABNgL4HCABQQFqIQEbDQALIAooAogaIQELIAsgBSgCADYCACAKIAopA/AcNwPAIyAKKAKAGiABRgRAIApBgBpqEJ4DCyAKKAKEGiABQQxsaiIHIAopA8AjNwIAIAdBCGogCygCADYCACAKIAFBAWoiATYCiBogCkHQHWogBkEgahDbASAKQoCAgIDAADcDkB4gDykDACErIAopA9AdISwgBSAVNgIAIAogLTcD8BwgKyAshFBFBEBBASEBQQAhBwNAIAooAvAcIAFBAWtGBEAgCkHwHGoQogMLIAooAvQcIAdqICw+AgAgK0IghiAsQoCAgIAQVCEPICtQIQ4gB0EEaiEHICtCIIghKyAKIAE2AvgcIAFBAWohASAsQiCIhCEsIA4gD3FFDQALIAooAogaIQELIAsgBSgCADYCACAKIAopA/AcNwPAIyAKKAKAGiABRgRAIApBgBpqEJ4DCyAKKAKEGiABQQxsaiIHIAopA8AjNwIAIAdBCGogCygCADYCACAKIAFBAWoiATYCiBogDCkDACErIAopA+AdISwgBSAVNgIAIAogLTcD8BwgKyAshFBFBEBBASEBQQAhBwNAIAooAvAcIAFBAWtGBEAgCkHwHGoQogMLIAooAvQcIAdqICw+AgAgLEL/////D1YgK0IAUiArUCArQiCGICxCIIiEISwgB0EEaiEHICtCIIghKyAKIAE2AvgcIAFBAWohARsNAAsgCigCiBohAQsgCyAFKAIANgIAIAogCikD8Bw3A8AjIAooAoAaIAFGBEAgCkGAGmoQngMLIAooAoQaIAFBDGxqIgcgCikDwCM3AgAgB0EIaiALKAIANgIAIAogAUEBaiIBNgKIGiATKQMAISsgCikD8B0hLCAFIBU2AgAgCiAtNwPwHCArICyEUEUEQEEBIQFBACEHA0AgCigC8BwgAUEBa0YEQCAKQfAcahCiAwsgCigC9BwgB2ogLD4CACAsQv////8PViArQgBSICtQICtCIIYgLEIgiIQhLCAHQQRqIQcgK0IgiCErIAogATYC+BwgAUEBaiEBGw0ACyAKKAKIGiEBCyALIAUoAgA2AgAgCiAKKQPwHDcDwCMgCigCgBogAUYEQCAKQYAaahCeAwsgCigChBogAUEMbGoiByAKKQPAIzcCACAHQQhqIAsoAgA2AgAgCiABQQFqIgE2AogaIBEpAwAhKyAKKQOAHiEsIAUgFTYCACAKIC03A/AcICsgLIRQRQRAQQEhAUEAIQcDQCAKKALwHCABQQFrRgRAIApB8BxqEKIDCyAKKAL0HCAHaiAsPgIAICxC/////w9WICtCAFIgK1AgK0IghiAsQiCIhCEsIAdBBGohByArQiCIISsgCiABNgL4HCABQQFqIQEbDQALIAooAogaIQELIAsgBSgCADYCACAKIAopA/AcNwPAIyAKKAKAGiABRgRAIApBgBpqEJ4DCyAKKAKEGiABQQxsaiIHIAopA8AjNwIAIAdBCGogCygCADYCACAKIAFBAWoiATYCiBogBkFAayIGICJHDQALCyAKQdgdakHQs8EAKAIANgIAIApByLPBACkCADcD0B0gCQRAIApB0B1qEKIDIAooAtQdIAk2AgAgCkEBNgLYHSAKKAKIGiEBCyAKQfgcaiIFIApB2B1qKAIANgIAIAogCikD0B03A/AcIAooAoAaIAFGBEAgCkGAGmoQngMLIAooAoQaIAFBDGxqIgYgCikD8Bw3AgAgBkEI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ayILDQALCyAKQYCAgIB4NgLwHCAKQQI2AtgdIAogCDYC1B0gCiAhNgLQHSAKIApB8BxqNgLcHSAKQfAjaiETIwBB8AFrIgEkACABQaABaiAKQdAdaiIFIAUoAgwQmwICQAJAIAEpA6ABIi1CAlIEQCABQZgBaiIHIAFB4AFqKQMANwMAIAFBkAFqIgsgAUHYAWopAwA3AwAgAUGIAWoiFiABQdABaikDADcDACABQYABaiIMIAFByAFqKQMANwMAIAFB+ABqIhEgAUHAAWopAwA3AwAgAUHwAGoiDyABQbgBaikDADcDACABQegAaiIOIAFBsAFqKQMANwMAIAEgASkDqAE3A2AgLUIAUg0BCyATQQA2AgggE0KAgICAgAE3AgAMAQsgAUHYAGogBykDADcDACABQdAAaiALKQMANwMAIAFByABqIBYpAwA3AwAgAUFAayAMKQMANwMAIAFBOGogESkDADcDACABQTBqIA8pAwA3AwAgAUEoaiAOKQMANwMAIAEgASkDYDcDIAJAIAUoAgwoAgBBgICAgHhHDQAgBSgCBEUNACAFKAIIRQ0SC0HZvsIALQAAGkGAAkEIELAEIgdFDRIgByABKQMgNwMAIAdBOGogAUHYAGoiESkDADcDACAHQTBqIAFB0ABqIg8pAwA3AwAgB0EoaiABQcgAaiIOKQMANwMAIAdBIGogAUFAayISKQMANwMAIAdBGGogAUE4aiIQKQMANwMAIAdBEGogAUEwaiINKQMANwMAIAdBCGogAUEoaikDADcDACABQQE2AgwgASAHNgIIIAFBBDYCBCABQRhqIAVBCGopAgA3AwAgASAFKQIANwMQIAFBoAFqIAFBEGogASgCHBCbAgJAIAEpA6ABIi1CAlENACABQagBaiEFQcAAIRZBASEMA0AgAUGYAWoiCyAFQThqKQMANwMAIAFBkAFqIhggBUEwaikDADcDACABQYgBaiIcIAVBKGopAwA3AwAgAUGAAWoiGSAFQSBqKQMANwMAIAFB+ABqIhQgBUEYaikDADcDACABQfAAaiIiIAVBEGopAwA3AwAgAUHoAGoiIyAFQQhqKQMANwMAIAEgBSkDADcDYCAtUA0BIBEgCykDADcDACAPIBgpAwA3AwAgDiAcKQMANwMAIBIgGSkDADcDACAQIBQpAwA3AwAgDSAiKQMANwMA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CkGIHmoiCykDADcDACAKQdAZaiAKQYAeaiITKQMANwMAIApByBlqIApB+B1qIhEpAwA3AwAgCkHAGWogCkHwHWoiDykDADcDACAKQbgZaiAKQegdaiIFKQMANwMAIApBsBlqIApB4B1qIgcpAwA3AwAgCkGoGWogCkHYHWoiASkDADcDACAKIAopA9AdNwOgGSAKQbgiaiAKQbgeaiIOKQMANwMAIApBsCJqIApBsB5qIhIpAwA3AwAgCkGoImogCkGoHmoiECkDADcDACAKQaAiaiAKQaAeaiINKQMANwMAIApBmCJqIApBmB5qIhkpAwA3AwAgCiAKKQOQHjcDkCIgDCAWIBggCigCiCIgCigCjCIQCyAKQegaaiIUIAspAwA3AwAgCkHgGmoiCyATKQMANwMAIApB2BpqIhMgESkDADcDACAKQdAaaiIRIA8pAwA3AwAgCkHIGmoiDyAFKQMANwMAIApBwBpqIiIgBykDADcDACAKQbgaaiIjIAEpAwA3AwAgCiAKKQPQHTcDsBogCkHoImogDikDADcDACAKQeAiaiASKQMANwMAIApB2CJqIBApAwA3AwAgCkHQImogDSkDADcDACAKQcgiaiAZKQMANwMAIAogCikDkB43A8AiIAUgDykDACItNwMAIAcgIikDACIuNwMAIAEgIykDACIvNwMAIApB+CNqIC83AwAgCkGAJGogLjcDACAKQYgkaiAtNwMAIAogCikDsBoiLTcD0B0gCkGQJGogESkDADcDACAKQZgkaiATKQMANwMAIApBoCRqIAspAwA3AwAgCkGoJGogFCkDADcDACAKIC03A/AjIAFB0LPBACgCADYCACAKQcizwQApAgA3A9AdIAwQogMgCigC1B1BATYCACAKKALUHSEBAkACQCAKKALQHSIFQYCAgIB4Rw0AIAEoAggNACAKQQE2AtgdIAogATYC1B0gCkGAgICAeDYC0B0gCkHwHGogDBCuAwwBCyAKQQE2AtgdIAogATYC1B0gCiAFNgLQHSAKQfAcaiAKQdAdakEEQQAQjAELIApByCNqIApB+BxqIgEoAgA2AgAgCiAKKQLwHDcDwCMgCkHQHWogCkHwI2pBASAKQcAjakEBEAsgCkH4G2ogCkGIHmopAwA3AwAgCkHwG2ogCkGAHmopAwA3AwAgCkHoG2ogCkH4HWop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AwA3AwAgCkGAHWoiCyAKQYAkaiIMKQMANwMAIApBiB1qIhEgCkGIJGoiDykDADcDACAKQZAdaiIOIAopA8AjNwMAIApBmB1qIhIgCkHII2opAwA3AwAgCkGgHWoiECAKQdAjaikDADcDACAKQagdaiINIApB2CNqKQMANwMAIAogCikD8CM3A/AcIAooAtAcISMgCigC1BwhEyAKKALYHCEZIApB0B1qEO8DIApBqCRqIA0pAwA3AwAgCkGgJGogECkDADcDACAKQZgkaiASKQMANwMAIApBkCRqIA4pAwA3AwAgDyARKQMANwMAIAwgCykDADcDACAHIAUpAwA3AwAgCiAKKQPwHDcD8CMgCkEANgKIGiAKQoCAgIDAADcCgBogJgRAIApBgBpqEJ4DIAooAoQaIgFByLPBACkCADcCACABQQhqQdCzwQAoAgA2AgAgCkEBNgKIGkEBIQELIApB2B1qIgVB0LPBACgCADYCACAKQcizwQApAgA3A9AdIAZFBEAgCkHQHWoQogMgCigC1B1BATYCACAKQQE2AtgdIAooAogaIQELIApB+BxqIAUoAgA2AgAgCiAKKQPQHTcD8BwgCigCgBogAUYEQCAKQYAaahCeAwsgCigChBogAUEMbGoiBSAKKQPwHDcCACAFQQhqIApB+BxqIhIoAgA2AgAgCiABQQFqIgE2AogaAkAgBkUNACAKQdgdakHQs8EAKAIANgIAIApByLPBACkCADcD0B0gCQRAIApB0B1qEKIDIAooAtQdIAk2AgAgCkEBNgLYHSAKKAKIGiEBCyAKQfgcaiIFIApB2B1qKAIANgIAIAogCikD0B03A/AcIAooAoAaIAFGBEAgCkGAGmoQngMLIAooAoQaIAFBDGxqIgYgCikD8Bw3AgAgBkEIaiAFKAIANgIAIAogAUEBajYCiBogCUUNACAKQdgdaiEGQQAhCwNAAkAgCigCgCIiASALSwRAIAsgCigCjCIiAU8NDiAKKAKIIiERIApBkBtqIAtBDGwiDyAKKAL8IWoQZyAKKAKYGyEHIAZB0LPBACgCACIONgIAIApByLPBACkCACItNwPQHSAHBEAgCkHQHWoQogMgCigC1B0gBzYCACAKQQE2AtgdCyAKQfgcaiIFIAYoAgA2AgAgCiAKKQPQHTcD8BwgCigCiBoiASAKKAKAGkYEQCAKQYAaahCeAwsgCigChBogAUEMbGoiDCAKKQPwHDcCACAMQQhqIAUoAgA2AgAgCiABQQFqNgKIGiAKKAKQGyEMIAooApQbIhAhASAHRQ0BA0AgCkGAGmogAS0AABCNASABQQFqIQEgB0EBayIHDQALDAELDAwLIAwEQCAQIAwQuQQLAkAgGg0AIApBkBtqIA8gEWoQZyAKKAKYGyEHIAYgDjYCACAKIC03A9AdIAcEQCAKQdAdahCiAyAKKALUHSAHNgIAIApBATYC2B0LIAUgBigCADYCACAKIAopA9AdNwPwHCAKKAKIGiIBIAooAoAaRgRAIApBgBpqEJ4DCyAKKAKEGiABQQxsaiIMIAopA/AcNwIAIAxBCGogBSgCADYCACAKIAFBAWo2AogaIAooApQbIQUgCigCkBshDCAHBEAgBSEBA0AgCkGAGmogAS0AABCNASABQQFqIQEgB0EBayIHDQALCyAMRQ0AIAUgDBC5BAsgC0EBaiILIAlHDQALCyAKQoCAgIAwNwLwHCAKIApBwBtqNgKAHSAKIApBsBpqNgL8HCAKIApBoBlqNgL4HAJAIBpFBEBB0LPBACgCACEMQcizwQApAgAhLSAKQegdaiERIApB+B1qIQ8gCkGIHmohDkEAIQYDQCAKQdAdaiASIAZBAnRqKAIAIhAQ3AEgCkKAgICAwAA3A5AeIApB2B1qIg0pAwAhKyAKKQPQHSEsIApByCNqIgUgDDYCACAKIC03A8AjICsgLIRQRQRAQQEhAUEAIQcDQCAKKALAIyABQQFrRgRAIApBwCNqEKIDCyAKKALEIyAHaiAsPgIAICtCIIYgLEKAgICAEFQhCyArUCEUIAdBBGohByArQiCIISsgCiABNgLIIyABQQFqIQEgLEIgiIQhLCALIBRxRQ0ACwsgCkHAIWoiCyAFKAIANgIAIAogCikDwCM3A7ghIAooAogaIgEgCigCgBpGBEAgCkGAGmoQngMLIAooAoQaIAFBDGxqIgcgCikDuCE3AgAgB0EIaiALKAIANgIAIAogAUEBaiIBNgKIGiARKQMAISsgCikD4B0hLCAFIAw2AgAgCiAtNwPAIyArICyEUEUEQEEBIQFBACEHA0AgCigCwCMgAUEBa0YEQCAKQcAjahCiAwsgCigCxCMgB2ogLD4CACAsQv////8PViArQgBSICtQICtCIIYgLEIgiIQhLCAHQQRqIQcgK0IgiCErIAogATYCyCMgAUEBaiEBGw0ACyAKKAKIGiEBCyALIAUoAgA2AgAgCiAKKQPAIzcDuCEgCigCgBogAUYEQCAKQYAaahCeAwsgCigChBogAUEMbGoiByAKKQO4ITcCACAHQQhqIAsoAgA2AgAgCiABQQFqIgE2AogaIA8pAwAhKyAKKQPwHSEsIAUgDDYCACAKIC03A8AjICsgLIRQRQRAQQEhAUEAIQcDQCAKKALAIyABQQFrRgRAIApBwCNqEKIDCyAKKALEIyAHaiAsPgIAICxC/////w9WICtCAFIgK1AgK0IghiAsQiCIhCEsIAdBBGohByArQiCIISsgCiABNgLIIyABQQFqIQEbDQALIAooAogaIQELIAsgBSgCADYCACAKIAopA8AjNwO4ISAKKAKAGiABRgRAIApBgBpqEJ4DCyAKKAKEGiABQQxsaiIHIAopA7ghNwIAIAdBCGogCygCADYCACAKIAFBAWoiATYCiBogDikDACErIAopA4AeISwgBSAMNgIAIAogLTcDwCMgKyAshFBFBEBBASEBQQAhBwNAIAooAsAjIAFBAWtGBEAgCkHAI2oQogMLIAooAsQjIAdqICw+AgAgLEL/////D1YgK0IAUiArUCArQiCGICxCIIiEISwgB0EEaiEHICtCIIghKyAKIAE2AsgjIAFBAWohARsNAAsgCigCiBohAQsgCyAFKAIANgIAIAogCikDwCM3A7ghIAooAoAaIAFGBEAgCkGAGmoQngMLIAooAoQaIAFBDGxqIgcgCikDuCE3AgAgB0EIaiALKAIANgIAIAogAUEBaiIBNgKIGiAKQdAdaiAQQSBqENwBIApCgICAgMAANwOQHiANKQMAISsgCikD0B0hLCAFIAw2AgAgCiAtNwPAIyArICyEUEUEQEEBIQFBACEHA0AgCigCwCMgAUEBa0YEQCAKQcAjahCiAwsgCigCxCMgB2ogLD4CACArQiCGICxCgICAgBBUIRAgK1AhDSAHQQRqIQcgK0IgiCErIAogATYCyCMgAUEBaiEBICxCIIiEISwgDSAQcUUNAAsgCigCiBohAQsgCyAFKAIANgIAIAogCikDwCM3A7ghIAooAoAaIAFGBEAgCkGAGmoQngMLIAooAoQaIAFBDGxqIgcgCikDuCE3AgAgB0EIaiALKAIANgIAIAogAUEBaiIBNgKIGiARKQMAISsgCikD4B0hLCAFIAw2AgAgCiAtNwPAIyArICyEUEUEQEEBIQFBACEHA0AgCigCwCMgAUEBa0YEQCAKQcAjahCiAwsgCigCxCMgB2ogLD4CACAsQv////8PViArQgBSICtQICtCIIYgLEIgiIQhLCAHQQRqIQcgK0IgiCErIAogATYCyCMgAUEBaiEBGw0ACyAKKAKIGiEBCyALIAUoAgA2AgAgCiAKKQPAIzcDuCEgCigCgBogAUYEQCAKQYAaahCeAwsgCigChBogAUEMbGoiByAKKQO4ITcCACAHQQhqIAsoAgA2AgAgCiABQQFqIgE2AogaIA8pAwAhKyAKKQPwHSEsIAUgDDYCACAKIC03A8AjICsgLIRQRQRAQQEhAUEAIQcDQCAKKALAIyABQQFrRgRAIApBwCNqEKIDCyAKKALEIyAHaiAsPgIAICxC/////w9WICtCAFIgK1AgK0IghiAsQiCIhCEsIAdBBGohByArQiCIISsgCiABNgLIIyABQQFqIQEbDQALIAooAogaIQELIAsgBSgCADYCACAKIAopA8AjNwO4ISAKKAKAGiABRgRAIApBgBpqEJ4DCyAKKAKEGiABQQxsaiIHIAopA7ghNwIAIAdBCGogCygCADYCACAKIAFBAWoiATYCiBogDikDACErIAopA4AeISwgBSAMNgIAIAogLTcDwCMgKyAshFBFBEBBASEBQQAhBwNAIAooAsAjIAFBAWtGBEAgCkHAI2oQogMLIAooAsQjIAdqICw+AgAgLEL/////D1YgK0IAUiArUCArQiCGICxCIIiEISwgB0EEaiEHICtCIIghKyAKIAE2AsgjIAFBAWohARsNAAsgCigCiBohAQsgCyAFKAIANgIAIAogCikDwCM3A7ghIAooAoAaIAFGBEAgCkGAGmoQngMLIAooAoQaIAFBDGxqIgUgCikDuCE3AgAgBUEIaiALKAIANgIAIAogAUEBajYCiBogBkEBaiIGQQNHDQALDAELIApBgBpqIgEgCkGgGWoQwQEgASAKQcAZahDBAQsgCkEDNgLUISAKQgE3AswhIAogCTYCxCEgCiAJNgK8ISAKIApB8CJqNgLIISAKIApBwCJqNgLAISAKIApBkCJqNgK4ISAK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aiEHICtCIIghKyAKIAE2AsAhIAFBAWohASAsQiCIhCEsIAsgEHFFDQALCyAKQZAhaiILIAYoAgA2AgAgCiAKKQO4ITcDiCEgCigCiBoiASAKKAKAGkYEQCAKQYAaahCeAwsgCigChBogAUEMbGoiByAKKQOIITcCACAHQQhqIAsoAgA2AgAgCiABQQFqIgE2AogaIApB6B1qKQMAISsgCikD4B0hLCAGIAw2AgAgCiAtNwO4ISArICyEUEUEQEEBIQFBACEHA0AgCigCuCEgAUEBa0YEQCAKQbghahCiAwsgCigCvCEgB2ogLD4CACAsQv////8PViArQgBSICtQICtCIIYgLEIgiIQhLCAHQQRqIQcgK0IgiCErIAogATYCwCEgAUEBaiEBGw0ACyAKKAKIGiEBCyALIAYoAgA2AgAgCiAKKQO4ITcDiCEgCigCgBogAUYEQCAKQYAaahCeAwsgCigChBogAUEMbGoiByAKKQOIITcCACAHQQhqIAsoAgA2AgAgCiABQQFqIgE2AogaIA4pAwAhKyAKKQPwHSEsIAYgDDYCACAKIC03A7ghICsgLIRQRQRAQQEhAUEAIQcDQCAKKAK4ISABQQFrRgRAIApBuCFqEKIDCyAKKAK8ISAHaiAsPgIAICxC/////w9WICtCAFIgK1AgK0IghiAsQiCIhCEsIAdBBGohByArQiCIISsgCiABNgLAISABQQFqIQEbDQALIAooAogaIQELIAsgBigCADYCACAKIAopA7ghNwOIISAKKAKAGiABRgRAIApBgBpqEJ4DCyAKKAKEGiABQQxsaiIHIAopA4ghNwIAIAdBCGogCygCADYCACAKIAFBAWoiATYCiBogEikDACErIAopA4AeISwgBiAMNgIAIAogLTcDuCEgKyAshFBFBEBBASEBQQAhBwNAIAooArghIAFBAWtGBEAgCkG4IWoQogMLIAooArwhIAdqICw+AgAgLEL/////D1YgK0IAUiArUCArQiCGICxCIIiEISwgB0EEaiEHICtCIIghKyAKIAE2AsAhIAFBAWohARsNAAsgCigCiBohAQsgCyAGKAIANgIAIAogCikDuCE3A4ghIAooAoAaIAFGBEAgCkGAGmoQngMLIAooAoQaIAFBDGxqIgYgCikDiCE3AgAgBkEIaiALKAIANgIAIAogAUEBajYCiBogBUEgaiIFIA9HDQALCyAjBEAgEyAjQQV0ELkECwJAIBVFDQAgCkHYHWoiAUHQs8EAKAIANgIAIApByLPBACkCADcD0B0gGARAIApB0B1qEKIDIAooAtQdIBg2AgAgCkEBNgLYHQsgCkH4HGogASgCADYCACAKIAopA9AdNwPwHCAKKAKIGiIBIAooAoAaRgRAIApBgBpqEJ4DCyAKKAKEGiABQQxsaiIFIAopA/AcNwIAIAVBCGogCkH4HGoiBSgCADYCACAKIAFBAWoiATYCiBogGARAQdCzwQAoAgAhFUHIs8EAKQIAIS0gCkHoHWohDCAKQfgdaiETIApBiB5qIREgFiEGA0AgCkHQHWogBhDcASAKQoCAgIDAADcDkB4gCkHYHWoiDykDACErIAopA9AdISwgBSAVNgIAIAogLTcD8BwgKyAshFBFBEBBASEBQQAhBwNAIAooAvAcIAFBAWtGBEAgCkHwHGoQogMLIAooAvQcIAdqICw+AgAgK0IghiAsQoCAgIAQVCELICtQIQ4gB0EEaiEHICtCIIghKyAKIAE2AvgcIAFBAWohASAsQiCIhCEsIAsgDnFFDQALCyAKQcgjaiILIAUoAgA2AgAgCiAKKQPwHDcDwCMgCigCiBoiASAKKAKAGkYEQCAKQYAaahCeAwsgCigChBogAUEMbGoiByAKKQPAIzcCACAHQQhqIAsoAgA2AgAgCiABQQFqIgE2AogaIAwpAwAhKyAKKQPgHSEsIAUgFTYCACAKIC03A/AcICsgLIRQRQRAQQEhAUEAIQcDQCAKKALwHCABQQFrRgRAIApB8BxqEKIDCyAKKAL0HCAHaiAsPgIAICxC/////w9WICtCAFIgK1AgK0IghiAsQiCIhCEsIAdBBGohByArQiCIISsgCiABNgL4HCABQQFqIQEbDQALIAooAogaIQELIAsgBSgCADYCACAKIAopA/AcNwPAIyAKKAKAGiABRgRAIApBgBpqEJ4DCyAKKAKEGiABQQxsaiIHIAopA8AjNwIAIAdBCGogCygCADYCACAKIAFBAWoiATYCiBogEykDACErIAopA/AdISwgBSAVNgIAIAogLTcD8BwgKyAshFBFBEBBASEBQQAhBwNAIAooAvAcIAFBAWtGBEAgCkHwHGoQogMLIAooAvQcIAdqICw+AgAgLEL/////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IApBqBtqIAspAwA3AwAgCkGgG2ogDCkDADcDACAKQZgbaiATKQMANwMAIAogCikDsB43A5AbIApB+B1qIApB2BpqKQMANwMAIApB8B1qIApB0BpqKQMANwMAIApB6B1qIApByBpqKQMANwMAIApB4B1qIApBwBpqKQMANwMAIApB2B1qIgUgCkG4GmopAwA3AwAgCiAKKQOwGjcD0B0gCkGIHmogCkHoGmopAwA3AwAgCkGQHmogCkHwGmopAwA3AwAgCkGYHmogCkH4GmopAwA3AwAgCkGgHmogCkGAG2opAwA3AwAgCkGoHmogCkGIG2opAwA3AwAgCiAKKQPgGjcDgB4gCkHwI2ogAUHgABDPBBogBUHQs8EAKAIANgIAIApByLPBACkCADcD0B0gARCiAyAKKALUHUEBNgIAIAooAtQdIQUCQAJAIAooAtAdIgdBgICAgHhHDQAgBSgCCA0AIApBATYC2B0gCiAFNgLUHSAKQYCAgIB4NgLQHSAKQfAcaiABEK4DDAELIApBATYC2B0gCiAFNgLUHSAKIAc2AtAdIApB8BxqIApB0B1qQQRBABCMAQsgCkHII2ogCkH4HGoiASgCADYCACAKIAopAvAcNwPAIyAKQdAdaiIFIApB8CNqQQEgCkHAI2pBARAKIApBwBtqIAVB4AAQzwQaIApByBxqIApB2B5qKQMANwMAIApBwBxqIApB0B5qKQMANwMAIApBuBxqIApByB5qKQMANwMAIApBsBxqIApBwB5qKQMANwMAIApBqBxqIApBuB5qKQMANwMAIAogCikDsB43A6AcIAooAsAjIgUEQCAKKALEIyAFQQJ0ELkECyAKQfAcakHGtcEAQbi1wQAgGhtBGEEOIBobEJ4BIApBiCRqIApBiB1qIgcpAwA3AwAgCkGAJGoiCyAKQYAdaiIMKQMANwMAIApB+CNqIAEpAwA3AwAgCkGYJGpCADcDACAKQaAkakIANwMAIApBqCRqQgA3AwAgCkG4JGpBsNLAACkDADcDACAKQcAkakG40sAAKQMANwMAIApByCRqQcDSwAApAwA3AwAgCiAKKQPwHDcD8CMgCkIANwOQJCAKQajSwAApAwA3A7AkIApB8CNqIgUQPyAKQfAdaiAFQeAAEM8EIRMgCkHoHWogBykDADcDACAKQeAdaiAMKQMANwMAIApB2B1qIAEpAwA3AwAgCiAKKQPwHDcD0B0gC0J/NwMAIApCfzcD+CMgCkLw+////////wc3A/AjIApCYTcDiCQgBRDOAwRAIApCYDcDiCQgCkLfezcD8CMLIApB2CNqIApBiCRqIgEpAwA3AwAgCkHQI2ogCkGAJGoiBSkDADcDACAKQcgjaiAKQfgjaiIHKQMANwMAIAogCikD8CM3A8AjIApBgApqIAmtIi1CgYiA8Leuf0IAEL0DIApBwAlqQgAgCikDgAoiL31CkYCAgICAgIAIQgAQvQMgCkHwCWogLUL//7+YE0IAEL0DIApBsAlqQgAgCkGICmopAwAiMCAKKQPwCXwiLiAvQgBSrXwiL31CkYCAgICAgIAIQgAQvQMgCkHgCWogLUKAgL57QgAQvQMgCkGgCWpCACAvQgBSrSIxIC4gL1atIApB+AlqKQMAIC4gMFStfHx8Ii4gCikD4AmEIi99QpGAgICAgICACEIAEL0DIApB0AlqIC1CkJCC8LWV9f8HQgAQvQMgCkGQCWpCACAvQgBSrSIvIApB6AlqKQMAIC4gMVSthCIwIAopA8AJfCIxfCItIAopA9AJfCIufUKRgICAgICAgAhCABC9AyAKIC5CAFKtIjIgCkHYCWopAwAgLSAuVq18Ii4gLSAvVK0iKyAwIDFWrSIwIAopA7AJIi8gCkHICWopAwB8IjF8IjN8Iix8IjR8Ii03A4gkIAogLSAyVK0iMiAKKQOgCSI5IApBuAlqKQMAIC8gMVatfHwiLyAwIDNWrXwiMCArICxWrXwiMSAuIDRWrXwiK3wiLjcDgCQgCiAwIDFWrSAvIDBWrSAKQagJaikDACAvIDlUrXx8fCIzIAopA5AJfCIwICsgMVStfCIxIC4gMlStfCIvNwP4IyAKIC8gMVStIDAgMVatIApBmAlqKQMAIDAgM1StfHx8IjA3A/AjIApB8CNqEM4DBEAgCiAtQgF9NwOIJCAKIC4gLVCtIi19NwOAJCAKIC8gLSAuVq0iLX03A/gjIAogMCAtIC9WrX1CkYCAgICAgIAIfTcD8CMLIApBiB1qIgsgASkDADcDACAKQYAdaiIBIAUpAwA3AwAgCkH4HGoiBSAHKQMANwMAIAogCikD8CM3A/AcIApB0B1qIApBwCNqIgcgCkHwHGoQtgICQCAaBEAgByAKQYAaaiAJEJABIApBmB1qIApB6CNqKQIANwMAIApBkB1qIApB4CNqKQIANwMAIAsgCkHYI2opAgA3AwAgASAKQdAjaikCADcDACAFIApByCNqKQIANwMAIAogCikCwCM3A/AcIApBBDYCpB1BACEBA0ACQCAKIAFBAWo2AqAdIApB8BxqIAFBDGxqIgEoAgAiC0GAgICAeEYNACABKQIEIi2nIQUgLUIgiKciAQRAIAFBMGwhByAFIQEDQCAKQfAjaiIMIAEQ2QEgAUEwaiEBIApB0B1qIAwQtwEgB0EwayIHDQALCyALBEAgBSALQTBsELkECyAKKAKgHSIBIAooAqQdRw0BCwsgCkHwHGoiASgCNCIFIAEoAjAiB0cEQCAFIAdrIQUgASAHQQxsaiEBA0AgASgCACIHBEAgAUEEaigCACAHQTBsELkECyABQQxqIQEgBUEBayIFDQALCwwBCyAKQcAjaiAKQYAaaiAJEJABIApBmB1qIApB6CNqKQIANwMAIApBkB1qIApB4CNqKQIANwMAIApBiB1qIApB2CNqKQIANwMAIApBgB1qIApB0CNqKQIANwMAIApB+BxqIApByCNqKQIANwMAIAogCikCwCMiLTcD8BwgCkKBgICAwAA3A6AdAkACQCAtpyILQYCAgIB4RgRAQQEhDEEEIQcMAQsgCkHwHGohAQNAIAEpAgQiLachBSAtQiCIpyIBBEAgAUEwbCEHIAUhAQNAIApB8CNqIgwgARDZASABQTBqIQEgCkHQHWogDBC3ASAHQTBrIgcNAAsLIAsEQCAFIAtBMGwQuQQLIAooAqQdIgcgCigCoB0iAUYNAiAKIAFBAWoiDDYCoB0gCkHwHGogAUEMbGoiASgCACILQYCAgIB4Rw0ACwsgByAMRg0AIAcgDGshByAKQfAcaiAMQQxsaiEBA0AgASgCACIFBEAgAUEEaigCACAFQTBsELkECyABQQxqIQEgB0EBayIHDQALCyAKQcAjaiAKQZAbaiAJEJABIApBmB1qIApB6CNqKQIANwMAIApBkB1qIApB4CNqKQIANwMAIApBiB1qIApB2CNqKQIANwMAIApBgB1qIApB0CNqKQIANwMAIApB+BxqIApByCNqKQIANwMAIAogCikCwCMiLTcD8BwgCkKBgICAwAA3A6AdAkACQCAtpyILQYCAgIB4RgRAQQEhDEEEIQcMAQsgCkHwHGohAQNAIAEpAgQiLachBSAtQiCIpyIBBEAgAUEwbCEHIAUhAQNAIApB8CNqIgwgARDZASABQTBqIQEgCkHQHWogDBC3ASAHQTBrIgcNAAsLIAsEQCAFIAtBMGwQuQQLIAooAqQdIgcgCigCoB0iAUYNAiAKIAFBAWoiDDYCoB0gCkHwHGogAUEMbGoiASgCACILQYCAgIB4Rw0ACwsgByAMRg0AIAcgDGshByAKQfAcaiAMQQxsaiEBA0AgASgCACIFBEAgAUEEaigCACAFQTBsELkECyABQQxqIQEgB0EBayIHDQALC0EBIQwgCkHAI2ogCkGgHGpBARCQASAKQZgdaiAKQegjaikCADcDACAKQZAdaiAKQeAjaikCADcDACAKQYgdaiAKQdgjaikCADcDACAKQYAdaiAKQdAjaikCADcDACAKQfgcaiAKQcgjaikCADcDACAKIAopAsAjIi03A/AcIApCgYCAgMAANwOgHUEEIQcgLaciC0GAgICAeEcEQCAKQfAcaiEBA0AgASkCBCItpyEFIC1CIIinIgEEQCABQTBsIQcgBSEBA0AgCkHwI2oiDCABENkBIAFBMGohASAKQdAdaiAMELcBIAdBMGsiBw0ACwsgCwRAIAUgC0EwbBC5BAsgCigCpB0iByAKKAKgHSIBRg0CIAogAUEBaiIMNgKgHSAKQfAcaiABQQxsaiIBKAIAIgtBgICAgHhHDQALCyAHIAxGDQAgByAMayEHIApB8BxqIAxBDGxqIQEDQCABKAIAIgUEQCABQQRqKAIAIAVBMGwQuQQLIAFBDGohASAHQQFrIgcNAAsLIBYgGEHgAGxqISIgGARAIBYhAQNAIApB8CNqIgUgARDZASAKQdAdaiIHIAUQtwEgBSABQTBqENkBIAcgBRC3ASABQeAAaiIBICJHDQALCwJAIBpFBEAgCkHwI2oiASAKQaAZahDZASAKQdAdaiIFIAEQtwEgASAKQdAZahDZASAFIAEQtwEgASAKQbAaahDZASAFIAEQtwEgASAKQeAaahDZASAFIAEQtwEgASAKQcAbahDZASAFIAEQtwEgASAKQfAbahDZASAFIAEQtwEgASAFIAQgCRCIAgwBCyAKQfAjaiIBIApBoBlqENkBIApB0B1qIgUgARC3ASABIApB0BlqENkBIAUgARC3ASABIAUgBCAJENcCCyAKQegcaiIBIBNBGGopAwA3AwAgCkHgHGoiBSATQRBqKQMANwMAIApB2BxqIhEgE0EIaikDADcDACAKIBMpAwA3A9AcIApB0B1qENQCIApBsCFqIApBoB5qKQMANwMAIApBqCFqIApBmB5qKQMANwMAIApBoCFqIApBkB5qKQMANwMAIApBmCFqIApBiB5qKQMANwMAIApBkCFqIApBgB5qKQMANwMAIAogCikD+B03A4ghIApB4CFqIApB0B5qKQMANwMAIApB2CFqIApByB5qKQMANwMAIApB0CFqIApBwB5qKQMANwMAIApByCFqIApBuB5qKQMANwMAIApBwCFqIApBsB5qKQMANwMAIAogCikDqB43A7ghIApBuCJqIApB8CBqKQMANwMAIApBsCJqIApB6CBqKQMANwMAIApBqCJqIApB4CBqKQMANwMAIApBoCJqIApB2CBqKQMANwMAIApBmCJqIApB0CBqKQMANwMAIAogCikDyCA3A5AiIApBuCNqIgcgASkDADcDACAKQbAjaiILIAUpAwA3AwAgCkGoI2oiDCARKQMANwMAIAogCikD0Bw3A6AjIApB8CNqIgEgCkGgI2oQkwQgCkHAImoiEyAKQYghaiAKQbghaiABEG9BACEFIApBADYCjCIgCkKAgICAgAE3AoQiIBMQjwNB/wFxQQJHBEAgCkG4JGohE0IAITkDQEEoIQEgCikDwCIhOiAKKQPIIiE1IAopA9AiITYgCikD2CIhNyAKKQPgIiE4IAopA+giITtCACE0QgAhM0IAITJCACExQgAhLUIAISwDQCAKQbAIaiAKQZAiaiABaikDACIuIDtCABC9AyAKQcAIaiAuIDhCABC9AyAKQdAIaiAuIDdCABC9AyAKQeAIaiAuIDZCABC9AyAKQfAIaiAuIDVCABC9AyAKQYAJaiAuIDpCABC9AyAKQaAIaiAKKQOwCCIrICx8Ii9CAEL9//P/z///+Yl/EL0DIApBkAhqIApBqAhqKQMAIi5Cq9X+////v/+5f0IAEL0DIApBgAhqIC5C///Piuv//9UeQgAQvQMgCkHwB2ogLkKk7MO1j9S0mOcAQgAQvQMgCkHgB2ogLkK/pZScz/DSu+QAQgAQvQMgCkHQB2ogLkLX2a6a5PbpjcsAQgAQvQMgCkHA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LX0hLCAvIC0gLlatIi19ITQgKyAtIC9WrX1CkYCAgICAgIAIfSErCyATQn83AwAgE0EIakJ/NwMAIA8gDCkDADcDACAOIAspAwA3AwAgEiAHKQMANwMAIApC0Pf///////8HNwOwJCAKQkE3A8gkIAogCikDoCM3A/AjIAogMjcDqCQgCiAsNwOgJCAKIDQ3A5gkIAogKzcDkCQgCkHwI2oQPyAHIBIpAwA3AwAgCyAOKQMANwMAIAwgDykDADcDACAKIAopA/AjNwOgIyAKQcAjaiIBIApBoCNqENYCIApB8BxqIhEgAUEgEI8BIAEgCkGIIWogCkG4IWogERBvIApB6CJqIApB6CNqKQMANwMAIApB4CJqIApB4CNqKQMANwMAIApB2CJqIApB2CNqKQMANwMAIApB0CJqIApB0CNqKQMANwMAIApByCJqIApByCNqKQMANwMAIAogCikDwCM3A8AiIDlCAXwhOSAKQcAiahCPA0H/AXFBAkcNAAsLIApBwCNqIApBwCJqEOEBIApB8CNqIgEgCkGgI2oQkwQgCkHIJGogCkHoI2opAwA3AwAgCkHAJGogCkHgI2opAwA3AwAgCkG4JGogCkHYI2opAwA3AwAgCkGwJGogCkHQI2opAwA3AwAgCkGoJGogCkHII2opAwA3AwAgCiAKKQPAIzcDoCQgCigChCIhIyAKKAKIIiETIAooAowiIRkgCkHwHGoiByABQeAAEM8EGiAKQdAdaiIBEO8DIAEgB0HgABDPBBogCkEANgKQISAKQoCAgIDAADcCiCEgJgRAIApBiCFqEJ4DIAooAowhIgFByLPBACkCADcCACABQQhqQdCzwQAoAgA2AgAgCkEBNgKQIUEBIQULIApB+CNqIgFB0LPBACgCADYCACAKQcizwQApAgA3A/AjIAZFBEAgCkHwI2oQogMgCigC9CNBATYCACAKQQE2AvgjIAooApAhIQULIApB+BxqIAEoAgA2AgAgCiAKKQPwIzcD8BwgCigCiCEgBUYEQCAKQYghahCeAwsgCigCjCEgBUEMbGoiASAKKQPwHDcCACABQQhqIApB+BxqIhIoAgA2AgAgCiAFQQFqIgE2ApAhAkAgBkUNACAKQfgjakHQs8EAKAIANgIAIApByLPBACkCADcD8CMgCQRAIApB8CNqEKIDIAooAvQjIAk2AgAgCkEBNgL4IyAKKAKQISEBCyAKQfgcaiIFIApB+CNqKAIANgIAIAogCikD8CM3A/AcIAooAoghIAFGBEAgCkGIIWoQngMLIAooAowhIAFBDGxqIgYgCikD8Bw3AgAgBkEIaiAFKAIANgIAIAogAUEBajYCkCEgCUUNACAKQfgjaiEGQQAhCwNAAkAgCigC9CEiASALSwRAIAsgCigCgCIiAU8NDCAKKAL8ISERIApBuCFqIAtBDGwiDyAKKALwIWoQZyAKKALAISEHIAZB0LPBACgCACIONgIAIApByLPBACkCACItNwPwIyAHBEAgCkHwI2oQogMgCigC9CMgBzYCACAKQQE2AvgjCyAKQfgcaiIFIAYoAgA2AgAgCiAKKQPwIzcD8BwgCigCkCEiASAKKAKIIUYEQCAKQYghahCeAwsgCigCjCEgAUEMbGoiDCAKKQPwHDcCACAMQQhqIAUoAgA2AgAgCiABQQFqNgKQISAKKAK4ISEMIAooArwhIhAhASAHRQ0BA0AgCkGIIWogAS0AABCNASABQQFqIQEgB0EBayIHDQALDAELDAoLIAwEQCAQIAwQuQQLAkAgGg0AIApBuCFqIA8gEWoQZyAKKALAISEHIAYgDjYCACAKIC03A/AjIAcEQCAKQfAjahCiAyAKKAL0IyAHNgIAIApBATYC+CMLIAUgBigCADYCACAKIAopA/AjNwPwHCAKKAKQISIBIAooAoghRgRAIApBiCFqEJ4DCyAKKAKMISABQQxsaiIMIAopA/AcNwIAIAxBCGogBSgCADYCACAKIAFBAWo2ApAhIAooArwhIQUgCigCuCEhDCAHBEAgBSEBA0AgCkGIIWogAS0AABCNASABQQFqIQEgB0EBayIHDQALCyAMRQ0AIAUgDBC5BAsgC0EBaiILIAlHDQALCyAKQoCAgIAwNwLwHCAKIApBwBtqNgKAHSAKIApBsBpqNgL8HCAKIApBoBlqNgL4HAJAIBpFBEBB0LPBACgCACEMQcizwQApAgAhLSAKQYgkaiERIApBmCRqIQ8gCkGoJGohDkEAIQYDQCAKQfAjaiASIAZBAnRqKAIAIhAQ2QEgCkKAgICAwAA3A7AkIApB+CNqIg0pAwAhKyAKKQPwIyEsIApByCNqIgUgDDYCACAKIC03A8AjICsgLIRQRQRAQQEhAUEAIQcDQCAKKALAIyABQQFrRgRAIApBwCNqEKIDCyAKKALEIyAHaiAsPgIAICtCIIYgLEKAgICAEFQhCyArUCEUIAdBBGohByArQiCIISsgCiABNgLIIyABQQFqIQEgLEIgiIQhLCALIBRxRQ0ACwsgCkH4ImoiCyAFKAIANgIAIAogCikDwCM3A/AiIAooApAhIgEgCigCiCFGBEAgCkGIIWoQngMLIAooAowhIAFBDGxqIgcgCikD8CI3AgAgB0EIaiALKAIANgIAIAogAUEBaiIBNgKQISARKQMAISsgCikDgCQhLCAFIAw2AgAgCiAtNwPAIyArICyEUEUEQEEBIQFBACEHA0AgCigCwCMgAUEBa0YEQCAKQcAjahCiAwsgCigCxCMgB2ogLD4CACAsQv////8PViArQgBSICtQICtCIIYgLEIgiIQhLCAHQQRqIQcgK0IgiCErIAogATYCyCMgAUEBaiEBGw0ACyAKKAKQISEBCyALIAUoAgA2AgAgCiAKKQPAIzcD8CIgCigCiCEgAUYEQCAKQYghahCeAwsgCigCjCEgAUEMbGoiByAKKQPwIjcCACAHQQhqIAsoAgA2AgAgCiABQQFqIgE2ApAhIA8pAwAhKyAKKQOQJCEsIAUgDDYCACAKIC03A8AjICsgLIRQRQRAQQEhAUEAIQcDQCAKKALAIyABQQFrRgRAIApBwCNqEKIDCyAKKALEIyAHaiAsPgIAICxC/////w9WICtCAFIgK1AgK0IghiAsQiCIhCEsIAdBBGohByArQiCIISsgCiABNgLIIyABQQFqIQEbDQALIAooApAhIQELIAsgBSgCADYCACAKIAopA8AjNwPwIiAKKAKIISABRgRAIApBiCFqEJ4DCyAKKAKMISABQQxsaiIHIAopA/AiNwIAIAdBCGogCygCADYCACAKIAFBAWoiATYCkCEgDikDACErIAopA6AkISwgBSAMNgIAIAogLTcDwCMgKyAshFBFBEBBASEBQQAhBwNAIAooAsAjIAFBAWtGBEAgCkHAI2oQogMLIAooAsQjIAdqICw+AgAgLEL/////D1YgK0IAUiArUCArQiCGICxCIIiEISwgB0EEaiEHICtCIIghKyAKIAE2AsgjIAFBAWohARsNAAsgCigCkCEhAQsgCyAFKAIANgIAIAogCikDwCM3A/AiIAooAoghIAFGBEAgCkGIIWoQngMLIAooAowhIAFBDGxqIgcgCikD8CI3AgAgB0EIaiALKAIANgIAIAogAUEBaiIBNgKQISAKQfAjaiAQQTBqENkBIApCgICAgMAANwOwJCANKQMAISsgCikD8CMhLCAFIAw2AgAgCiAtNwPAIyArICyEUEUEQEEBIQFBACEHA0AgCigCwCMgAUEBa0YEQCAKQcAjahCiAwsgCigCxCMgB2ogLD4CACArQiCGICxCgICAgBBUIRAgK1AhDSAHQQRqIQcgK0IgiCErIAogATYCyCMgAUEBaiEBICxCIIiEISwgDSAQcUUNAAsgCigCkCEhAQsgCyAFKAIANgIAIAogCikDwCM3A/AiIAooAoghIAFGBEAgCkGIIWoQngMLIAooAowhIAFBDGxqIgcgCikD8CI3AgAgB0EIaiALKAIANgIAIAogAUEBaiIBNgKQISARKQMAISsgCikDgCQhLCAFIAw2AgAgCiAtNwPAIyArICyEUEUEQEEBIQFBACEHA0AgCigCwCMgAUEBa0YEQCAKQcAjahCiAwsgCigCxCMgB2ogLD4CACAsQv////8PViArQgBSICtQICtCIIYgLEIgiIQhLCAHQQRqIQcgK0IgiCErIAogATYCyCMgAUEBaiEBGw0ACyAKKAKQISEBCyALIAUoAgA2AgAgCiAKKQPAIzcD8CIgCigCiCEgAUYEQCAKQYghahCeAwsgCigCjCEgAUEMbGoiByAKKQPwIjcCACAHQQhqIAsoAgA2AgAgCiABQQFqIgE2ApAhIA8pAwAhKyAKKQOQJCEsIAUgDDYCACAKIC03A8AjICsgLIRQRQRAQQEhAUEAIQcDQCAKKALAIyABQQFrRgRAIApBwCNqEKIDCyAKKALEIyAHaiAsPgIAICxC/////w9WICtCAFIgK1AgK0IghiAsQiCIhCEsIAdBBGohByArQiCIISsgCiABNgLIIyABQQFqIQEbDQALIAooApAhIQELIAsgBSgCADYCACAKIAopA8AjNwPwIiAKKAKIISABRgRAIApBiCFqEJ4DCyAKKAKMISABQQxsaiIHIAopA/AiNwIAIAdBCGogCygCADYCACAKIAFBAWoiATYCkCEgDikDACErIAopA6AkISwgBSAMNgIAIAogLTcDwCMgKyAshFBFBEBBASEBQQAhBwNAIAoo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IWoQngMLIAooAowhIAFBDGxqIgUgCikD8Bw3AgAgBUEIaiAKQfgcaiIRKAIANgIAIAogAUEBajYCkCEgGQRAIBMgGUEwbGohD0HQs8EAKAIAIQxByLPBACkCACEtIApBqCRqIQ4gEyEFA0AgCkHoI2ogBUEoaikDACIuNwMAIApB4CNqIAVBIGopAwAiLzcDACAKQdgjaiAFQRhqKQMAIjA3AwAgCkHQI2ogBUEQaikDACIxNwMAIApByCNqIAVBCGopAwAiMjcDACAKIAUpAwAiKzcDwCMgCkGYHWogLjcDACAKQZAdaiAvNwMAIApBiB1qIDA3AwAgCkGAHWogMTcDACARIDI3AwAgCiArNwPwHCAKQfAjaiAKQfAcahDZASAKQoCAgIDAADcDsCQgCkH4I2opAwAhKyAKKQPwIyEsIApB+CJqIgYgDDYCACAKIC03A/AiICsgLIRQRQRAQQEhAUEAIQcDQCAKKALwIiABQQFrRgRAIApB8CJqEKIDCyAKKAL0IiAHaiAsPgIAICtCIIYgLEKAgICAEFQhCyArUCESIAdBBGohByArQiCIISsgCiABNgL4IiABQQFqIQEgLEIgiIQhLCALIBJxRQ0ACwsgCkHIImoiCyAGKAIANgIAIAogCikD8CI3A8AiIAooApAhIgEgCigCiCFGBEAgCkGIIWoQngMLIAooAowhIAFBDGxqIgcgCikDwCI3AgAgB0EIaiALKAIANgIAIAogAUEBaiIBNgKQISAKQYgkaikDACErIAopA4AkISwgBiAMNgIAIAogLTcD8CIgKyAshFBFBEBBASEBQQAhBwNAIAooAvAiIAFBAWtGBEAgCkHwImoQogMLIAooAvQiIAdqICw+AgAgLEL/////D1YgK0IAUiArUCArQiCGICxCIIiEISwgB0EEaiEHICtCIIghKyAKIAE2AvgiIAFBAWohARsNAAsgCigCkCEhAQsgCyAGKAIANgIAIAogCikD8CI3A8AiIAooAoghIAFGBEAgCkGIIWoQngMLIAooAowhIAFBDGxqIgcgCikDwCI3AgAgB0EIaiALKAIANgIAIAogAUEBaiIBNgKQISAKQZgkaikDACErIAopA5AkISwgBiAMNgIAIAogLTcD8CIgKyAshFBFBEBBASEBQQAhBwNAIAooAvAiIAFBAWtGBEAgCkHwImoQogMLIAooAvQiIAdqICw+AgAgLEL/////D1YgK0IAUiArUCArQiCGICxCIIiEISwgB0EEaiEHICtCIIghKyAKIAE2AvgiIAFBAWohARsNAAsgCigCkCEhAQsgCyAGKAIANgIAIAogCikD8CI3A8AiIAooAoghIAFGBEAgCkGIIWoQngMLIAooAowhIAFBDGxqIgcgCikDwCI3AgAgB0EIaiALKAIANgIAIAogAUEBaiIBNgKQISAOKQMAISsgCikDoCQhLCAGIAw2AgAgCiAtNwPwIiArICyEUEUEQEEBIQFBACEHA0AgCigC8CIgAUEBa0YEQCAKQfAiahCiAwsgCigC9CIgB2ogLD4CACAsQv////8PViArQgBSICtQICtCIIYgLEIgiIQhLCAHQQRqIQcgK0IgiCErIAogATYC+CIgAUEBaiEBGw0ACyAKKAKQISEBCyALIAYoAgA2AgAgCiAKKQPwIjcDwCIgCigCiCEgAUYEQCAKQYghahCeAwsgCigCjCEgAUEMbGoiBiAKKQPAIjcCACAGQQhqIAsoAgA2AgAgCiABQQFqNgKQISAFQTBqIgUgD0cNAAsLICMEQCATICNBMGwQuQQLIBUEQCAKQfgjaiIBQdCzwQAoAgA2AgAgCkHIs8EAKQIANwPwIyAYBEAgCkHwI2oQogMgCigC9CMgGDYCACAKQQE2AvgjCyAKQfgcaiABKAIANgIAIAogCikD8CM3A/AcIAooApAhIgEgCigCiCFGBEAgCkGIIWoQngMLIAooAowhIAFBDGxqIgUgCikD8Bw3AgAgBUEIaiAKQfgcaiIFKAIANgIAIAogAUEBaiIBNgKQISAYBEBB0LPBACgCACEVQcizwQApAgAhLSAKQYgkaiEMIApBmCRqIRMgCkGoJGohESAWIQYDQCAKQfAjaiAGENkBIApCgICAgMAANwOwJCAKQfgjaiIPKQMAISsgCikD8CMhLCAFIBU2AgAgCiAtNwPwHCArICyEUEUEQEEBIQFBACEHA0AgCigC8BwgAUEBa0YEQCAKQfAcahCiAwsgCigC9BwgB2ogLD4CACArQiCGICxCgICAgBBUIQsgK1AhDiAHQQRqIQcgK0IgiCErIAogATYC+BwgAUEBaiEBICxCIIiEISwgCyAOcUUNAAsLIApByCNqIgsgBSgCADYCACAKIAopA/AcNwPAIyAKKAKQISIBIAooAoghRgRAIApBiCFqEJ4DCyAKKAKMISABQQxsaiIHIAopA8AjNwIAIAdBCGogCygCADYCACAKIAFBAWoiATYCkCEgDCkDACErIAopA4AkISwgBSAVNgIAIAogLTcD8BwgKyAshFBFBEBBASEBQQAhBwNAIAooAvAcIAFBAWtGBEAgCkHwHGoQogMLIAooAvQcIAdqICw+AgAgLEL/////D1YgK0IAUiArUCArQiCGICxCIIiEISwgB0EEaiEHICtCIIghKyAKIAE2AvgcIAFBAWohARsNAAsgCigCkCEhAQsgCyAFKAIANgIAIAogCikD8Bw3A8AjIAooAoghIAFGBEAgCkGIIWoQngMLIAooAowhIAFBDGxqIgcgCikDwCM3AgAgB0EIaiALKAIANgIAIAogAUEBaiIBNgKQISATKQMAISsgCikDkCQhLCAFIBU2AgAgCiAtNwPwHCArICyEUEUEQEEBIQFBACEHA0AgCigC8BwgAUEBa0YEQCAKQfAcahCiAwsgCigC9BwgB2ogLD4CACAsQv////8PViArQgBSICtQICtCIIYgLEIgiIQhLCAHQQRqIQcgK0IgiCErIAogATYC+BwgAUEBaiEBGw0ACyAKKAKQISEBCyALIAUoAgA2AgAgCiAKKQPwHDcDwCMgCigCiCEgAUYEQCAKQYghahCeAwsgCigCjCEgAUEMbGoiByAKKQPAIzcCACAHQQhqIAsoAgA2AgAgCiABQQFqIgE2ApAhIBEpAwAhKyAKKQOgJCEsIAUgFTYCACAKIC03A/AcICsgLIRQRQRAQQEhAUEAIQcDQCAKKALwHCABQQFrRgRAIApB8BxqEKIDCyAKKAL0HCAHaiAsPgIAICxC/////w9WICtCAFIgK1AgK0IghiAsQiCIhCEsIAdBBGohByArQiCIISsgCiABNgL4HCABQQFqIQEbDQALIAooApAhIQELIAsgBSgCADYCACAKIAopA/AcNwPAIyAKKAKIISABRgRAIApBiCFqEJ4DCyAKKAKMISABQQxsaiIHIAopA8AjNwIAIAdBCGogCygCADYCACAKIAFBAWoiATYCkCEgCkHwI2ogBkEwahDZASAKQoCAgIDAADcDsCQgDykDACErIAopA/AjISwgBSAVNgIAIAogLTcD8BwgKyAshFBFBEBBASEBQQAhBwNAIAooAvAcIAFBAWtGBEAgCkHwHGoQogMLIAooAvQcIAdqICw+AgAgK0IghiAsQoCAgIAQVCEPICtQIQ4gB0EEaiEHICtCIIghKyAKIAE2AvgcIAFBAWohASAsQiCIhCEsIA4gD3FFDQALIAooApAhIQELIAsgBSgCADYCACAKIAopA/AcNwPAIyAKKAKIISABRgRAIApBiCFqEJ4DCyAKKAKMISABQQxsaiIHIAopA8AjNwIAIAdBCGogCygCADYCACAKIAFBAWoiATYCkCEgDCkDACErIAopA4AkISwgBSAVNgIAIAogLTcD8BwgKyAshFBFBEBBASEBQQAhBwNAIAooAvAcIAFBAWtGBEAgCkHwHGoQogMLIAooAvQcIAdqICw+AgAgLEL/////D1YgK0IAUiArUCArQiCGICxCIIiEISwgB0EEaiEHICtCIIghKyAKIAE2AvgcIAFBAWohARsNAAsgCigCkCEhAQsgCyAFKAIANgIAIAogCikD8Bw3A8AjIAooAoghIAFGBEAgCkGIIWoQngMLIAooAowhIAFBDGxqIgcgCikDwCM3AgAgB0EIaiALKAIANgIAIAogAUEBaiIBNgKQISATKQMAISsgCikDkCQhLCAFIBU2AgAgCiAtNwPwHCArICyEUEUEQEEBIQFBACEHA0AgCigC8BwgAUEBa0YEQCAKQfAcahCiAwsgCigC9BwgB2ogLD4CACAsQv////8PViArQgBSICtQICtCIIYgLEIgiIQhLCAHQQRqIQcgK0IgiCErIAogATYC+BwgAUEBaiEBGw0ACyAKKAKQISEBCyALIAUoAgA2AgAgCiAKKQPwHDcDwCMgCigCiCEgAUYEQCAKQYghahCeAwsgCigCjCEgAUEMbGoiByAKKQPAIzcCACAHQQhqIAsoAgA2AgAgCiABQQFqIgE2ApAhIBEpAwAhKyAKKQOgJCEsIAUgFTYCACAKIC03A/AcICsgLIRQRQRAQQEhAUEAIQcDQCAKKALwHCABQQFrRgRAIApB8BxqEKIDCyAKKAL0HCAHaiAsPgIAICxC/////w9WICtCAFIgK1AgK0IghiAsQiCIhCEsIAdBBGohByArQiCIISsgCiABNgL4HCABQQFqIQEbDQALIAooApAhIQELIAsgBSgCADYCACAKIAopA/AcNwPAIyAKKAKIISABRgRAIApBiCFqEJ4DCyAKKAKMISABQQxsaiIHIAopA8AjNwIAIAdBCGogCygCADYCACAKIAFBAWoiATYCkCEgBkHgAGoiBiAiRw0ACwsgCkH4I2pB0LPBACgCADYCACAKQcizwQApAgA3A/AjIAkEQCAKQfAjahCiAyAKKAL0IyAJNgIAIApBATYC+CMgCigCkCEhAQsgCkH4HGoiBSAKQfgjaigCADYCACAKIAopA/AjNwPwHCAKKAKIISABRgRAIApBiCFqEJ4DCyAKKAKMISABQQxsaiIGIAopA/AcNwIAIAZBCGogBSgCADYCACAKIAFBAWo2ApAhAkAgCUUNAEEEIQtBACEHAkADQCAKKAL0ISIBIAdLBEAgCigC8CEgC2oiBSgCACEVQQQhAQJAIAVBBGooAgAiBkUEQEEAIQwMAQsgBkECdCEMIAZB/////wFLBEBBACEFDAQLQdm+wgAtAAAaQQQhBSAMQQQQsAQiAUUNAwsgASAVIAwQzwQhFSAKKAKQISIBIAooAoghRgRAIApBiCFqEJ4DCyAKKAKMISABQQxsaiIFIAY2AgggBSAVNgIEIAUgBjYCACAKIAFBAWo2ApAhIBpFBEAgByAKKAKAIiIBTw0RIAooAvwhIAtqIgUoAgAhFUEEIQECQCAFQQRqKAIAIgZFBEBBACEMDAELIAZBAnQhDCAGQf////8BSwRAQQAhBQwUC0HZvsIALQAAGkEEIQUgDEEEELAEIgFFDRMLIAEgFSAMEM8EIRUgCigCkCEiASAKKAKIIUYEQCAKQYghahCeAwsgCigCjCEgAUEMbGoiBSAGNgIIIAUgFTYCBCAFIAY2AgAgCiABQQFqNgKQIQsgC0EMaiELIAkgB0EBaiIHRw0BDAMLCwwNCwwOCyAKQfgjakHQs8EAKAIANgIAIApByLPBACkCADcD8CMgCkHwI2oQogMgCigC9CNBATYCACAKQfgcaiIFQQE2AgAgCiAKKQPwIzcD8BwgCigCkCEiASAKKAKIIUYEQCAKQYghahCeAwsgCigCjCEgAUEMbGoiBiAKKQPwHDcCACAGQQhqIAUoAgA2AgAgCiABQQFqNgKQIQsCQCAmRQ0AIAooApAhIQEgCkH4I2pB0LPBACgCACIFNgIAIApByLPBACkCACItNwPwIwJAAkAgAUEBayIBRQRAIApB+BxqIAU2AgAgCiAtNwPwHAwBCyAKQfAjahCiAyAKKAL0IyABNgIAIApB+BxqQQE2AgAgCiAKKQPwIzcD8BwgCigCkCFFDQELIAooAowhIgEoAgAiBQRAIAEoAgQgBUECdBC5BAsgASAKKQPwHDcCACABQQhqIApB+BxqKAIANgIADAELDA4LIBcgCikCiCE3AgQgF0EMaiAKQZAhaigCADYCACAKKAKgHCIBBEAgCigCpBwgAUEwbBC5BAsgCigCrBwiAQRAIAooArAcIAFBMGwQuQQLIAooArgcIgEEQCAKKAK8HCABQTBsELkECyAKKALEHCIBBEAgCigCyBwgAUEwbBC5BAsgCigCkBsiAQRAIAooApQbIAFBMGwQuQQLIAooApwbIgEEQCAKKAKgGyABQTBsELkECyAKKAKoGyIBBEAgCigCrBsgAUEwbBC5BAsgCigCtBsiAQRAIAooArgbIAFBMGwQuQQLIAooAoAaIgEEQCAKKAKEGiABQTBsELkECyAKKAKMGiIBBEAgCigCkBogAUEwbBC5BAsgCigCmBoiAQRAIAooApwaIAFBMGwQuQQLIAooAqQaIgEEQCAKKAKoGiABQTBsELkECyAKQfghahDqAyAKKAL4ISIBBEAgCigC/CEgAUEMbBC5BAsgCkHsIWoQ6gMgCigC7CEiAQRAIAooAvAhIAFBDGwQuQQLIBdBADYCAAJAIBpFBEAgCigClBkiAUUNASAKKAKYGSABQQJ0ELkEDAELIAooApQZIgFFDQAgCigCmBkgAUECdBC5BAsgHARAIBYgHEHgAGwQuQQLIAhFDQQgISAIQTBsELkEDAQLIAhFDQMgISAIQTBsELkEDAMLIAooAoAiIQcgCigC/CELIQUgCkHQHWoiASAWIBggBSAHEAkgCkHYGWogCkGIHmoiDCkDADcDACAKQdAZaiAKQYAeaiITKQMANwMAIApByBlqIApB+B1qIhEpAwA3AwAgCkHAGWogCkHwHWoiDykDADcDACAKQbgZaiAKQegdaiIHKQMANwMAIApBsBlqIApB4B1qIgspAwA3AwAgCkGoGWogCkHYHWoiBSkDADcDACAKIAopA9AdNwOgGSAKQbgiaiAKQbgeaiIOKQMANwMAIApBsCJqIApBsB5qIhIpAwA3AwAgCkGoImogCkGoHmoiECkDADcDACAKQaAiaiAKQaAeaiINKQMANwMAIApBmCJqIApBmB5qIhkpAwA3AwAgCiAKKQOQHjcDkCIgASAWIBggCigCiCIgCigCjCIQCSAKQegaaiIUIAwpAwA3AwAgCkHgGmoiDCATKQMANwMAIApB2BpqIhMgESkDADcDACAKQdAaaiIRIA8pAwA3AwAgCkHIGmoiDyAHKQMANwMAIApBwBpqIiIgCykDADcDACAKQbgaaiIjIAUpAwA3AwAgCiAKKQPQHTcDsBogCkHoImogDikDADcDACAKQeAiaiASKQMANwMAIApB2CJqIBApAwA3AwAgCkHQImogDSkDADcDACAKQcgiaiAZKQMANwMAIAogCikDkB43A8AiIAcgDykDACItNwMAIAsgIikDACIuNwMAIAUgIykDACIvNwMAIApB+CNqIC83AwAgCkGAJGogLjcDACAKQYgkaiAtNwMAIAogCikDsBoiLTcD0B0gCkGQJGogESkDADcDACAKQZgkaiATKQMANwMAIApBoCRqIAwpAwA3AwAgCkGoJGogFCkDADcDACAKIC03A/AjIAVB0LPBACgCADYCACAKQcizwQApAgA3A9AdIAEQogMgCigC1B1BATYCACAKKALUHSEFAkACQCAKKALQHSIHQYCAgIB4Rw0AIAUoAggNACAKQQE2AtgdIAogBTYC1B0gCkGAgICAeDYC0B0gCkHwHGogARCuAwwBCyAKQQE2AtgdIAogBTYC1B0gCiAHNgLQHSAKQfAcaiAKQdAdakEEQQAQjAELIApByCNqIApB+BxqIgEoAgA2AgAgCiAKKQLwHDcDwCMgCkHQHWogCkHwI2pBASAKQcAjakEBEAkgCkH4G2ogCkGIHmopAwA3AwAgCkHwG2ogCkGAHmopAwA3AwAgCkHoG2ogCkH4HWopAwA3AwAgCkHgG2ogCkHwHWoiDCkDADcDACAKQdgbaiAKQegdaiIRKQMANwMAIApB0BtqIApB4B1qIg8pAwA3AwAgCkHIG2ogCkHYHWoiDikDADcDACAKIAopA9AdNwPAGyAKQZgjaiAKQbgeaikDADcDACAKQZAjaiAKQbAeaikDADcDACAKQYgjaiAKQageaikDADcDACAKQYAjaiAKQaAeaikDADcDACAKQfgiaiAKQZgeaikDADcDACAKIAopA5AeNwPwIiAKKALA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CkJBNwPIJCAKIAopA6AcNwPwIyAKIC83A6gkIAogMDcDoCQgCiAuNwOYJCAKIDE3A5AkIApB8CNqED8gByAFKQMANwMAIAsgDikDADcDACAMIA8pAwA3AwAgCiAKKQPwIzcDoBwgCkHwHGoiBSAKQaAcahDWAiAKQcAjaiIRIAVBIBCZASAFIApBgBpqIApBkBtqIBEQSSAKQaAhaiAKQYgdaikDADcDACAKQZghaiAKQYAdaikDADcDACAKQZAhaiAKQfgcaikDADcDACAKIAopA/AcNwOIISArQgF8ISsgCkGIIWoQiQNB/wFxQQJHDQALCyAKQcAjaiAKQYghahCOAiAKQfAjaiAKQaAcahCXBCAKQfgcaiIFIApB+CNqIgcpAwA3AwAgCkGAHWoiCyAKQYAkaiIMKQMANwMAIApBiB1qIhEgCkGIJGoiDykDADcDACAKQZAdaiIOIAopA8AjNwMAIApBmB1qIhIgCkHII2opAwA3AwAgCkGgHWoiECAKQdAjaikDADcDACAKQagdaiINIApB2CNqKQMANwMAIAogCikD8CM3A/AcIAooAtAcISMgCigC1BwhEyAKKALYHCEZIApB0B1qEO8DIApBqCRqIA0pAwA3AwAgCkGgJGogECkDADcDACAKQZgkaiASKQMANwMAIApBkCRqIA4pAwA3AwAgDyARKQMANwMAIAwgCykDADcDACAHIAUpAwA3AwAgCiAKKQPwHDcD8CMgCkEANgKIGiAKQoCAgIDAADcCgBogJgRAIApBgBpqEJ4DIAooAoQaIgFByLPBACkCADcCACABQQhqQdCzwQAoAgA2AgAgCkEBNgKIGkEBIQELIApB2B1qIgVB0LPBACgCADYCACAKQcizwQApAgA3A9AdIAZFBEAgCkHQHWoQogMgCigC1B1BATYCACAKQQE2AtgdIAooAogaIQELIApB+BxqIAUoAgA2AgAgCiAKKQPQHTcD8BwgCigCgBogAUYEQCAKQYAaahCeAwsgCigChBogAUEMbGoiBSAKKQPwHDcCACAFQQhqIApB+BxqIhIoAgA2AgAgCiABQQFqIgE2AogaAkAgBkUNACAKQdgdakHQs8EAKAIANgIAIApByLPBACkCADcD0B0gCQRAIApB0B1qEKIDIAooAtQdIAk2AgAgCkEBNgLYHSAKKAKIGiEBCyAKQfgcaiIFIApB2B1qKAIANgIAIAogCikD0B03A/AcIAooAoAaIAFGBEAgCkGAGmoQngMLIAooAoQaIAFBDGxqIgYgCikD8Bw3AgAgBkEIaiAFKAIANgIAIAogAUEBajYCiBogCUUNACAKQdgdaiEGQQAhCwNAAkAgCigCgCIiASALSwRAIAsgCigCjCIiAU8NCSAKKAKIIiERIApBkBtqIAtBDGwiDyAKKAL8IWoQZyAKKAKYGyEHIAZB0LPBACgCACIONgIAIApByLPBACkCACItNwPQHSAHBEAgCkHQHWoQogMgCigC1B0gBzYCACAKQQE2AtgdCyAKQfgcaiIFIAYoAgA2AgAgCiAKKQPQHTcD8BwgCigCiBoiASAKKAKAGkYEQCAKQYAaahCeAwsgCigChBogAUEMbGoiDCAKKQPwHDcCACAMQQhqIAUoAgA2AgAgCiABQQFqNgKIGiAKKAKQGyEMIAooApQbIhAhASAHRQ0BA0AgCkGAGmogAS0AABCNASABQQFqIQEgB0EBayIHDQALDAELDAcLIAwEQCAQIAwQuQQLAkAgGg0AIApBkBtqIA8gEWoQZyAKKAKYGyEHIAYgDjYCACAKIC03A9AdIAcEQCAKQdAdahCiAyAKKALUHSAHNgIAIApBATYC2B0LIAUgBigCADYCACAKIAopA9AdNwPwHCAKKAKIGiIBIAooAoAaRgRAIApBgBpqEJ4DCyAKKAKEGiABQQxsaiIMIAopA/AcNwIAIAxBCGogBSgCADYCACAKIAFBAWo2AogaIAooApQbIQUgCigCkBshDCAHBEAgBSEBA0AgCkGAGmogAS0AABCNASABQQFqIQEgB0EBayIHDQALCyAMRQ0AIAUgDBC5BAsgC0EBaiILIAlHDQALCyAKQoCAgIAwNwLwHCAKIApBwBtqNgKAHSAKIApBsBpqNgL8HCAKIApBoBlqNgL4HAJAIBpFBEBB0LPBACgCACEMQcizwQApAgAhLSAKQegdaiERIApB+B1qIQ8gCkGIHmohDkEAIQYDQCAKQdAdaiASIAZBAnRqKAIAIhAQ2AEgCkKAgICAwAA3A5AeIApB2B1qIg0pAwAhKyAKKQPQHSEsIApByCNqIgUgDDYCACAKIC03A8AjICsgLIRQRQRAQQEhAUEAIQcDQCAKKALAIyABQQFrRgRAIApBwCNqEKIDCyAKKALEIyAHaiAsPgIAICtCIIYgLEKAgICAEFQhCyArUCEUIAdBBGohByArQiCIISsgCiABNgLIIyABQQFqIQEgLEIgiIQhLCALIBRxRQ0ACwsgCkHAIWoiCyAFKAIANgIAIAogCikDwCM3A7ghIAooAogaIgEgCigCgBpGBEAgCkGAGmoQngMLIAooAoQaIAFBDGxqIgcgCikDuCE3AgAgB0EIaiALKAIANgIAIAogAUEBaiIBNgKIGiARKQMAISsgCikD4B0hLCAFIAw2AgAgCiAtNwPAIyArICyEUEUEQEEBIQFBACEHA0AgCigCwCMgAUEBa0YEQCAKQcAjahCiAwsgCigCxCMgB2ogLD4CACAsQv////8PViArQgBSICtQICtCIIYgLEIgiIQhLCAHQQRqIQcgK0IgiCErIAogATYCyCMgAUEBaiEBGw0ACyAKKAKIGiEBCyALIAUoAgA2AgAgCiAKKQPAIzcDuCEgCigCgBogAUYEQCAKQYAaahCeAwsgCigChBogAUEMbGoiByAKKQO4ITcCACAHQQhqIAsoAgA2AgAgCiABQQFqIgE2AogaIA8pAwAhKyAKKQPwHSEsIAUgDDYCACAKIC03A8AjICsgLIRQRQRAQQEhAUEAIQcDQCAKKALAIyABQQFrRgRAIApBwCNqEKIDCyAKKALEIyAHaiAsPgIAICxC/////w9WICtCAFIgK1AgK0IghiAsQiCIhCEsIAdBBGohByArQiCIISsgCiABNgLIIyABQQFqIQEbDQALIAooAogaIQELIAsgBSgCADYCACAKIAopA8AjNwO4ISAKKAKAGiABRgRAIApBgBpqEJ4DCyAKKAKEGiABQQxsaiIHIAopA7ghNwIAIAdBCGogCygCADYCACAKIAFBAWoiATYCiBogDikDACErIAopA4AeISwgBSAMNgIAIAogLTcDwCMgKyAshFBFBEBBASEBQQAhBwNAIAooAsAjIAFBAWtGBEAgCkHAI2oQogMLIAooAsQjIAdqICw+AgAgLEL/////D1YgK0IAUiArUCArQiCGICxCIIiEISwgB0EEaiEHICtCIIghKyAKIAE2AsgjIAFBAWohARsNAAsgCigCiBohAQsgCyAFKAIANgIAIAogCikDwCM3A7ghIAooAoAaIAFGBEAgCkGAGmoQngMLIAooAoQaIAFBDGxqIgcgCikDuCE3AgAgB0EIaiALKAIANgIAIAogAUEBaiIBNgKIGiAKQdAdaiAQQSBqENgBIApCgICAgMAANwOQHiANKQMAISsgCikD0B0hLCAFIAw2AgAgCiAtNwPAIyArICyEUEUEQEEBIQFBACEHA0AgCigCwCMgAUEBa0YEQCAKQcAjahCiAwsgCigCxCMgB2ogLD4CACArQiCGICxCgICAgBBUIRAgK1AhDSAHQQRqIQcgK0IgiCErIAogATYCyCMgAUEBaiEBICxCIIiEISwgDSAQcUUNAAsgCigCiBohAQsgCyAFKAIANgIAIAogCikDwCM3A7ghIAooAoAaIAFGBEAgCkGAGmoQngMLIAooAoQaIAFBDGxqIgcgCikDuCE3AgAgB0EIaiALKAIANgIAIAogAUEBaiIBNgKIGiARKQMAISsgCikD4B0hLCAFIAw2AgAgCiAtNwPAIyArICyEUEUEQEEBIQFBACEHA0AgCigCwCMgAUEBa0YEQCAKQcAjahCiAwsgCigCxCMgB2ogLD4CACAsQv////8PViArQgBSICtQICtCIIYgLEIgiIQhLCAHQQRqIQcgK0IgiCErIAogATYCyCMgAUEBaiEBGw0ACyAKKAKIGiEBCyALIAUoAgA2AgAgCiAKKQPAIzcDuCEgCigCgBogAUYEQCAKQYAaahCeAwsgCigChBogAUEMbGoiByAKKQO4ITcCACAHQQhqIAsoAgA2AgAgCiABQQFqIgE2AogaIA8pAwAhKyAKKQPwHSEsIAUgDDYCACAKIC03A8AjICsgLIRQRQRAQQEhAUEAIQcDQCAKKALAIyABQQFrRgRAIApBwCNqEKIDCyAKKALEIyAHaiAsPgIAICxC/////w9WICtCAFIgK1AgK0IghiAsQiCIhCEsIAdBBGohByArQiCIISsgCiABNgLIIyABQQFqIQEbDQALIAooAogaIQELIAsgBSgCADYCACAKIAopA8AjNwO4ISAKKAKAGiABRgRAIApBgBpqEJ4DCyAKKAKEGiABQQxsaiIHIAopA7ghNwIAIAdBCGogCygCADYCACAKIAFBAWoiATYCiBogDikDACErIAopA4AeISwgBSAMNgIAIAogLTcDwCMgKyAshFBFBEBBASEBQQAhBwNAIAooAsAjIAFBAWtGBEAgCkHAI2oQogML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IQxByLPBACkCACEtIApB+B1qIQ4gCkGIHmohEiATIQUDQCAKQdgjaiAFQRhqKQMAIi43AwAgCkHQI2ogBUEQaikDACIvNwMAIApByCNqIAVBCGopAwAiMDcDACAKIAUpAwAiMTcDwCMgCkGIHWogLjcDACAKQYAdaiAvNwMAIBEgMDcDACAKIDE3A/AcIApB0B1qIApB8BxqENgBIApCgICAgMAANwOQHiAKQdgdaikDACErIAopA9AdISwgCkHAIWoiBiAMNgIAIAogLTcDuCEgKyAshFBFBEBBASEBQQAhBwNAIAooArghIAFBAWtGBEAgCkG4IWoQogMLIAooArwhIAdqICw+AgAgK0IghiAsQoCAgIAQVCELICtQIRAgB0EEaiEHICtCIIghKyAKIAE2AsAhIAFBAWohASAsQiCIhCEsIAsgEHFFDQALCyAKQZAhaiILIAYoAgA2AgAgCiAKKQO4ITcDiCEgCigCiBoiASAKKAKAGkYEQCAKQYAaahCeAwsgCigChBogAUEMbGoiByAKKQOIITcCACAHQQhqIAsoAgA2AgAgCiABQQFqIgE2AogaIApB6B1qKQMAISsgCikD4B0hLCAGIAw2AgAgCiAtNwO4ISArICyEUEUEQEEBIQFBACEHA0AgCigCuCEgAUEBa0YEQCAKQbghahCiAwsgCigCvCEgB2ogLD4CACAsQv////8PViArQgBSICtQICtCIIYgLEIgiIQhLCAHQQRqIQcgK0IgiCErIAogATYCwCEgAUEBaiEBGw0ACyAKKAKIGiEBCyALIAYoAgA2AgAgCiAKKQO4ITcDiCEgCigCgBogAUYEQCAKQYAaahCeAwsgCigChBogAUEMbGoiByAKKQOIITcCACAHQQhqIAsoAgA2AgAgCiABQQFqIgE2AogaIA4pAwAhKyAKKQPwHSEsIAYgDDYCACAKIC03A7ghICsgLIRQRQRAQQEhAUEAIQcDQCAKKAK4ISABQQFrRgRAIApBuCFqEKIDCyAKKAK8ISAHaiAsPgIAICxC/////w9WICtCAFIgK1AgK0IghiAsQiCIhCEsIAdBBGohByArQiCIISsgCiABNgLAISABQQFqIQEbDQALIAooAogaIQELIAsgBigCADYCACAKIAopA7ghNwOIISAKKAKAGiABRgRAIApBgBpqEJ4DCyAKKAKEGiABQQxsaiIHIAopA4ghNwIAIAdBCGogCygCADYCACAKIAFBAWoiATYCiBogEikDACErIAopA4AeISwgBiAMNgIAIAogLTcDuCEgKyAshFBFBEBBASEBQQAhBwNAIAooArghIAFBAWtGBEAgCkG4IWoQogMLIAooArwhIAdqICw+AgAgLEL/////D1YgK0IAUiArUCArQiCGICxCIIiEISwgB0EEaiEHICtCIIghKyAKIAE2AsAhIAFBAWohARsNAAsgCigCiBohAQsgCyAGKAIANgIAIAogCikDuCE3A4ghIAooAoAaIAFGBEAgCkGAGmoQngMLIAooAoQaIAFBDGxqIgYgCikDiCE3AgAgBkEIaiALKAIANgIAIAogAUEBajYCiBogBUEgaiIFIA9HDQALCyAjBEAgEyAjQQV0ELkECyAVBEAgCkHYHWoiAUHQs8EAKAIANgIAIApByLPBACkCADcD0B0gGARAIApB0B1qEKIDIAooAtQdIBg2AgAgCkEBNgLYHQsgCkH4HGogASgCADYCACAKIAopA9AdNwPwHCAKKAKIGiIBIAooAoAaRgRAIApBgBpqEJ4DCyAKKAKEGiABQQxsaiIFIAopA/AcNwIAIAVBCGogCkH4HGoiBSgCADYCACAKIAFBAWoiATYCiBogGARAQdCzwQAoAgAhFUHIs8EAKQIAIS0gCkHoHWohDCAKQfgdaiETIApBiB5qIREgFiEGA0AgCkHQHWogBhDYASAKQoCAgIDAADcDkB4gCkHYHWoiDykDACErIAopA9AdISwgBSAVNgIAIAogLTcD8BwgKyAshFBFBEBBASEBQQAhBwNAIAooAvAcIAFBAWtGBEAgCkHwHGoQogMLIAooAvQcIAdqICw+AgAgK0IghiAsQoCAgIAQVCELICtQIQ4gB0EEaiEHICtCIIghKyAKIAE2AvgcIAFBAWohASAsQiCIhCEsIAsgDnFFDQALCyAKQcgjaiILIAUoAgA2AgAgCiAKKQPwHDcDwCMgCigCiBoiASAKKAKAGkYEQCAKQYAaahCeAwsgCigChBogAUEMbGoiByAKKQPAIzcCACAHQQhqIAsoAgA2AgAgCiABQQFqIgE2AogaIAwpAwAhKyAKKQPgHSEsIAUgFTYCACAKIC03A/AcICsgLIRQRQRAQQEhAUEAIQcDQCAKKALwHCABQQFrRgRAIApB8BxqEKIDCyAKKAL0HCAHaiAsPgIAICxC/////w9WICtCAFIgK1AgK0IghiAsQiCIhCEsIAdBBGohByArQiCIISsgCiABNgL4HCABQQFqIQEbDQALIAooAogaIQELIAsgBSgCADYCACAKIAopA/AcNwPAIyAKKAKAGiABRgRAIApBgBpqEJ4DCyAKKAKEGiABQQxsaiIHIAopA8AjNwIAIAdBCGogCygCADYCACAKIAFBAWoiATYCiBogEykDACErIAopA/AdISwgBSAVNgIAIAogLTcD8BwgKyAshFBFBEBBASEBQQAhBwNAIAooAvAcIAFBAWtGBEAgCkHwHGoQogMLIAooAvQcIAdqICw+AgAgLEL/////D1YgK0IAUiArUCArQiCGICxCIIiEISwgB0EEaiEHICtCIIghKyAKIAE2AvgcIAFBAWohARsNAAsgCigCiBohAQsgCyAFKAIANgIAIAogCikD8Bw3A8AjIAooAoAaIAFGBEAgCkGAGmoQngMLIAooAoQaIAFBDGxqIgcgCikDwCM3AgAgB0EIaiALKAIANgIAIAogAUEBaiIBNgKIGiARKQMAISsgCikDgB4hLCAFIBU2AgAgCiAtNwPwHCArICyEUEUEQEEBIQFBACEHA0AgCigC8BwgAUEBa0YEQCAKQfAcahCiAwsgCigC9BwgB2ogLD4CACAsQv////8PViArQgBSICtQICtCIIYgLEIgiIQhLCAHQQRqIQcgK0IgiCErIAogATYC+BwgAUEBaiEBGw0ACyAKKAKIGiEBCyALIAUoAgA2AgAgCiAKKQPwHDcDwCMgCigCgBogAUYEQCAKQYAaahCeAwsgCigChBogAUEMbGoiByAKKQPAIzcCACAHQQhqIAsoAgA2AgAgCiABQQFqIgE2AogaIApB0B1qIAZBIGoQ2AEgCkKAgICAwAA3A5AeIA8pAwAhKyAKKQPQHSEsIAUgFTYCACAKIC03A/AcICsgLIRQRQRAQQEhAUEAIQcDQCAKKALwHCABQQFrRgRAIApB8BxqEKIDCyAKKAL0HCAHaiAsPgIAICtCIIYgLEKAgICAEFQhDyArUCEOIAdBBGohByArQiCIISsgCiABNgL4HCABQQFqIQEgLEIgiIQhLCAOIA9xRQ0ACyAKKAKIGiEBCyALIAUoAgA2AgAgCiAKKQPwHDcDwCMgCigCgBogAUYEQCAKQYAaahCeAwsgCigChBogAUEMbGoiByAKKQPAIzcCACAHQQhqIAsoAgA2AgAgCiABQQFqIgE2AogaIAwpAwAhKyAKKQPgHSEsIAUgFTYCACAKIC03A/AcICsgLIRQRQRAQQEhAUEAIQcDQCAKKALwHCABQQFrRgRAIApB8BxqEKIDCyAKKAL0HCAHaiAsPgIAICxC/////w9WICtCAFIgK1AgK0IghiAsQiCIhCEsIAdBBGohByArQiCIISsgCiABNgL4HCABQQFqIQEbDQALIAooAogaIQELIAsgBSgCADYCACAKIAopA/AcNwPAIyAKKAKAGiABRgRAIApBgBpqEJ4DCyAKKAKEGiABQQxsaiIHIAopA8AjNwIAIAdBCGogCygCADYCACAKIAFBAWoiATYCiBogEykDACErIAopA/AdISwgBSAVNgIAIAogLTcD8BwgKyAshFBFBEBBASEBQQAhBwNAIAooAvAcIAFBAWtGBEAgCkHwHGoQogMLIAooAvQcIAdqICw+AgAgLEL/////D1YgK0IAUiArUCArQiCGICxCIIiEISwgB0EEaiEHICtCIIghKyAKIAE2AvgcIAFBAWohARsNAAsgCigCiBohAQsgCyAFKAIANgIAIAogCikD8Bw3A8AjIAooAoAaIAFGBEAgCkGAGmoQngMLIAooAoQaIAFBDGxqIgcgCikDwCM3AgAgB0EIaiALKAIANgIAIAogAUEBaiIBNgKIGiARKQMAISsgCikDgB4hLCAFIBU2AgAgCiAtNwPwHCArICyEUEUEQEEBIQFBACEHA0AgCigC8BwgAUEBa0YEQCAKQfAcahCiAwsgCigC9BwgB2ogLD4CACAsQv////8PViArQgBSICtQICtCIIYgLEIgiIQhLCAHQQRqIQcgK0IgiCErIAogATYC+BwgAUEBaiEBGw0ACyAKKAKIGiEBCyALIAUoAgA2AgAgCiAKKQPwHDcDwCMgCigCgBogAUYEQCAKQYAaahCeAwsgCigChBogAUEMbGoiByAKKQPAIzcCACAHQQhqIAsoAgA2AgAgCiABQQFqIgE2AogaIAZBQGsiBiAiRw0ACwsgCkHYHWpB0LPBACgCADYCACAKQcizwQApAgA3A9AdIAkEQCAKQdAdahCiAyAKKALUHSAJNgIA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IgJ9IgcgAyAEVCAFQv//z4rr///VHlZyrSIDfSEFQr+llJzP8NK75AAgASkDECIEfSIJIAMgB1YgAkKk7MO1j9S0mOcAVnKtIgJ9IQNC19mumuT26Y3LACABKQMIIgd9IgogAiAJViAEQr+llJzP8NK75ABWcq0iAn0hBEKr1f7///+//7l/IAZ9IQZCms3/y6O9xIAaIAEpAwAgAiAKViAHQtfZrprk9umNywBWcq18fQwBCyABKQMoIQYgASkDICEIIAEpAxghBSABKQMQIQMgASkDCCEEIAEpAwALIQIgACAGNwMoIAAgCDcDICAAIAU3AxggACADNwMQIAAgBDcDCCAAIAI3AwAL5AEBAX8jAEGQAWsiAyQAIANByABqIAIQGiADKQNIUARAIANBQGsgA0GIAWopAwA3AwAgA0E4aiADQYABaikDADcDACADQTBqIANB+ABqKQMANwMAIANBKGogA0HwAGopAwA3AwAgA0EgaiADQegAaikDADcDACADQRhqIANB4ABqKQMANwMAIANBEGogA0HYAGopAwA3AwAgAyADKQNQNwMIIAAgASADQQhqEB0gA0GQAWokAA8LIAMgAykDWDcDECADIAMpA1A3AwhBoJPCAEErIANBCGpBkJTCAEGwlcIAEL4DAAubAgICfwN+IwBB4ABrIgEkAAJAQYj7wABB2PnAAEEgENAEBEAgAUJ+NwNYIAFC/////x83A1AgAUIANwNIIAFCgoCAgGA3A0AMAQsgAUHYAGpBoPvAACkDADcDACABQdAAakGY+8AAKQMANwMAIAFByABqQZD7wAApAwA3AwAgAUGI+8AAKQMANwNACyABQSBqIAFBQGsiAhCVAiABIAEpAyAiA0IBiDcDACABIAEpAzAiBEI/hiABKQM4QgGIhDcDGCABIAEpAygiBUI/hiAEQgGIhDcDECABIANCP4YgBUIBiIQ3AwggAiAAIAEQQCACQdj5wABBIBDQBAR/IAFBQGtBiPvAAEEgENAERUEBdAVBAQsgAUHgAGokAAu2AgICfwN+IwBB4ABrIgEkAAJAQZj6wABB2PnAAEEgENAEBEAgAUKq37eXkZHS4egANwNYIAFCz/6qlYftn4SNfzcDUCABQrGkoMjwyOjw0QA3A0ggAUL6gae5lNb1rCI3A0AMAQsgAUHYAGpBsPrAACkDADcDACABQdAAakGo+sAAKQMANwMAIAFByABqQaD6wAApAwA3AwAgAUGY+sAAKQMANwNACyABQSBqIAFBQGsiAhC4ASABIAEpAyAiA0IBiDcDACABIAEpAzAiBEI/hiABKQM4QgGIhDcDGCABIAEpAygiBUI/hiAEQgGIhDcDECABIANCP4YgBUIBiIQ3AwggAiAAIAEQIiACQdj5wABBIBDQBAR/IAFBQGtBmPrAAEEgENAERUEBdAVBAQsgAUHgAGokAAu1AgIBfwF+IABBKGpB0aDBAEHCABCsASAAQcgAakGTocEAQcIAEKwBIABBqAFqQdWhwQBBARCsASAAQcgBakHWocEAQcAAEKwBIABB6AFqQZaiwQBBwAAQrAEgAEGYAmpCADcDACAAQZACakIANwMAIABCADcDiAIgAELkATcDoAIQ3QMhASAAQQQ6ALQCIABCADcDaCAAQfAAakIANwMAIABB+ABqQgA3AwAgAEGAAWpCADcDACAAQYgBakIANwMAIABBkAFqQgA3AwAgAEGYAWpCADcDACAAQaABakIANwMAIABB6M7BACkDADcDACAAQQhqQfDOwQApAwA3AwAgACABKQMINwMYIAAgASkDACICNwMQIAEgAkIBfDcDACAAQgA3A6gCIABBCDYCsAIgAEIBNwMgC6oCAgF/AX4gAEEoakGRnsEAEJoBIABByABqQdGewQAQmgEgAEGoAWpBkZ/BABCaASAAQcgBakHRn8EAEJoBIABB6AFqQZGgwQAQmgEgAEIGNwOgAiAAQoCAgICgfzcDmAIgAEJ/NwOQAiAAQvn////fADcDiAIQ3QMhASAAQQM6ALQCIABCADcDaCAAQfAAakIANwMAIABB+ABqQgA3AwAgAEGAAWpCADcDACAAQYgBakIANwMAIABBkAFqQgA3AwAgAEGYAWpCADcDACAAQaABakIANwMAIABB6M7BACkDADcDACAAQQhqQfDOwQApAwA3AwAgACABKQMINwMYIAAgASkDACICNwMQIAEgAkIBfDcDACAAQgA3A6gCIABBATYCsAIgAEIBNwMgC/vPCAKEAX8KfiMAQTBrIkskACBLIAM2AhQgSyACNgIQIEsgAzYCDCBLIAY2AiAgSyAFNgIcIEsgBjYCGCBLQSRqIVEgS0EYaiEDIwBBMGsiPiQAIEtBDGoiBSgCACEGIAUoAgQhAiAFKAIIIQUgPkEANgIAID4gAiAFQQJ0ajYCJCA+IAY2AiAgPiACNgIcID4gAjYCGCA+ID42AiggPkEMaiA+QRhqEJMCAkACQAJAAkACQAJAAkAgPigCAARAID4oAhAhASA+KAIEIVcgPigCFCJDBEAgASECA0AgAigCACIEBEAgAkEEaigCACAEQQJ0ELkECyACQQxqIQIgQ0EBayJDDQALCyA+KAIMIgJFDQEgASACQQxsELkEDAELID4oAhAhVyA+KAIMImRBgICAgHhGDQAgPigCFCFDIAMoAgAhBSADKAIEIQIgAygCCCEDID5BADYCACA+IAIgA0ECdGo2AiQgPiAFNgIgID4gAjYCHCA+IAI2AhggPiA+NgIoID5BDGogPkEYahCTAgJAAkAgPigCAARAID4oAhAhASA+KAIEIUYgPigCFCJTBEAgASECA0AgAigCACIDBEAgAkEEaigCACADQQJ0ELkECyACQQxqIQIgU0EBayJTDQALCyA+KAIMIgJFDQEgASACQQxsELkEDAELID4oAhAhRiA+KAIMImVBgICAgHhGDQAgPkEYaiECID4oAhQiUyEFIwBBMGsiSiQAAkACQAJAAkACQAJAAkACQAJAIEMgQ0EGbiIDQQZsRgRAIENBDEkNASAFDgcDAgICAgIDAgtB2b7CAC0AABpBK0EBELAEIgFFDQQgAkErNgIMIAIgATYCCCACQoGAgICwBTcCACABQSdqQf/BwAAoAAA2AAAgAUEgakH4wcAAKQAANwAAIAFBGGpB8MHAACkAADcAACABQRBqQejBwAApAAA3AAAgAUEIakHgwcAAKQAANwAAIAFB2MHAACkAADcAAAwDC0HZvsIALQAAGkEnQQEQsAQiAUUNBCACQSc2AgwgAiABNgIIIAJCgYCAgPAENwIAIAFBH2pB0MHAACkAADcAACABQRhqQcnBwAApAAA3AAAgAUEQakHBwcAAKQAANwAAIAFBCGpBucHAACkAADcAACABQbHBwAApAAA3AAAMAgtB2b7CAC0AABpBKEEBELAEIgFFDQQgAkEoNgIMIAIgATYCCCACQoGAgICABTcCACABQSBqQanBwAApAAA3AAAgAUEYakGhwcAAKQAANwAAIAFBEGpBmcHAACkAADcAACABQQhqQZHBwAApAAA3AAAgAUGJwcAAKQAANwAADAELAkACQAJAAkAgAyAETwRAIEogATYCDCABQQRLBEAgSkEBNgIUIEpBzNfBADYCECBKQgE3AhwgSiBKQQxqrUKAgICAEIQ3AyggSiBKQShqNgIYIEogSkEQahDdAiBKLQAEIQEgSigCACIDQYCAgIB4Rw0CCyABQf8BcQ4CAwQCC0HZvsIALQAAGkE4QQEQsAQiAUUNCCACQTg2AgwgAiABNgIIIAJCgYCAgIAHNwIAIAFBMGpBgcHAACkAADcAACABQShqQfnAwAApAAA3AAAgAUEgakHxwMAAKQAANwAAIAFBGGpB6cDAACkAADcAACABQRBqQeHAwAApAAA3AAAgAUEIakHZwMAAKQAANwAAIAFB0cDAACkAADcAAAwECyACIEooAAU2AAkgAkEMaiBKQQhqKAAANgAAIAIgAToACCACIAM2AgQgAkEBNgIADAMLIAJBBGohA0HZvsIALQAAGgJAQRFBARCwBCIBBEAgA0ERNgIIIAMgATYCBCADQRE2AgAgAUEQakHQwMAALQAAOgAAIAFBCGpByMDAACkAADcAACABQcDAwAApAAA3AAAMAQtBAUEREKgEAAsgAkEBNgIADAILIAIhQSBXIQNBACECIwBB0AVrIg0kAAJAAkACQCBDRQRAQQghTAwBCyBDQQV0IQEgQ0H///8fSw0BQdm+wgAtAAAaQQghAiABQQgQsAQiTEUNASBMIQEgQyECA0AgDUEIaiADEPACIAFBGGogDUEgaikDADcDACABQRBqIA1BGGopAwA3AwAgAUEIaiANQRBqKQMANwMAIAEgDSkDCDcDACABQSBqIQEgA0EMaiEDIAJBAWsiAg0ACwsgDUGAgICAeDYC0AMgDUEGNgIQIA0gQzYCDCANIEw2AgggDSANQdADajYCFCANQdABaiANQQhqELgCAkAgDSgC0AMiAUGAgICAeEcEQCANKALYAyECIA0oAtQDIQMgDSgC0AEiBARAIA0oAtQBIARBwAFsELkECyBBIAI2AgwgQSADNgIIIEEgATYCBCBBQQE2AgAMAQsgDSgC2AEhOCANKALUASFOIA0oAtABITkCQAJAAkACQAJAAkACQAJAIAVBBkcEQCANQgA3AwgMAQtB2b7CAC0AABpBwAFBCBCwBCIBRQ0BIA1B0AFqIgIgRhDwAiABQRhqIA1B6AFqIgMpAwA3AwAgAUEQaiANQeABaiIFKQMANwMAIAFBCGogDUHYAWoiBikDADcDACABIA0pA9ABNwMAIAIgRkEMahDwAiABQThqIAMpAwA3AwAgAUEwaiAFKQMANwMAIAFBKGogBikDADcDACABIA0pA9ABNwMgIAIgRkEYahDwAiABQdgAaiADKQMANwMAIAFB0ABqIAUpAwA3AwAgAUHIAGogBikDADcDACABIA0pA9ABNwNAIAIgRkEkahDwAiABQfgAaiADKQMANwMAIAFB8ABqIAUpAwA3AwAgAUHoAGogBikDADcDACABIA0pA9ABNwNgIAIgRkEwahDwAiABQZgBaiADKQMANwMAIAFBkAFqIAUpAwA3AwAgAUGIAWogBikDADcDACABIA0pA9ABNwOAASACIEZBPGoQ8AIgAUG4AWogAykDADcDACABQbABaiAFKQMANwMAIAFBqAFqIAYpAwA3AwAgASANKQPQATcDoAEgDUGAgICAeDYCkAUgDUKGgICA4AA3AtQBIA0gATYC0AEgDSANQZAFajYC3AEgDUHQA2ogAhC4AiANKAKQBSICQYCAgIB4RwRAIA0oApgFIQMgDSgClAUhBCANKALQAyIFBEAgDSgC1AMgBUHAAWwQuQQLIEEgAzYCDCBBIAQ2AgggQSACNgIEIEFBATYCACABQcABELkEIDlFDQkgTiA5QcABbBC5BAwJCyANKALYA0UNAiANKALQAyEDIA1BqANqIgUgDSgC1AMiAkGYAWopAwA3AwAgDUGgA2oiBiACQZABaikDADcDACANQZgDaiIKIAJBiAFqKQMANwMAIA1BsANqIgkgAikDoAE3AwAgDUG4A2oiDCACQagBaikDADcDACANQcADaiILIAJBsAFqKQMANwMAIA1ByANqIhMgAkG4AWopAwA3AwAgDSACKQOAATcDkAMgDUHYBGoiDyACQQhqKQMANwMAIA1B4ARqIg4gAkEQaikDADcDACANQegEaiIjIAJBGGopAwA3AwAgDSACKQMANwPQBCANQYgFaiIzIAJBOGopAwA3AwAgDUGABWoiOiACQTBqKQMANwMAIA1B+ARqIhYgAkEoaikDADcDACANQfAEaiIeIAIpAyA3AwAgDUGoBWoiJyACQdgAaikDADcDACANQaAFaiIVIAJB0ABqKQMANwMAIA1BmAVqIhsgAkHIAGopAwA3AwAgDSACKQNANwOQBSANQcgFaiJAIAJB+ABqKQMANwMAIA1BwAVqIj8gAkHwAGopAwA3AwAgDUG4BWoiFCACQegAaikDADcDACANQbAFaiIIIAIpA2A3AwAgDUGIBGogMykDADcDACANQYAEaiA6KQMANwMAIA1B+ANqIBYpAwA3AwAgDUHwA2ogHikDADcDACANQegDaiAjKQMANwMAIA1B4ANqIA4pAwA3AwAgDUHYA2ogDykDADcDACANIA0pA9AENwPQAyANQcgEaiBAKQMANwMAIA1BwARqID8pAwA3AwAgDUG4BGogFCkDADcDACANQbAEaiAIKQMANwMAIA1BqARqICcpAwA3AwAgDUGgBGogFSkDADcDACANQZgEaiAbKQMANwMAIA0gDSkDkAU3A5AEIA1BiANqIBMpAwA3AwAgDUGAA2ogCykDADcDACANQfgCaiAMKQMANwMAIA1B8AJqIAkpAwA3AwAgDUHoAmogBSkDADcDACANQeACaiAGKQMANwMAIA1B2AJqIAopAwA3AwAgDSANKQOQAzcD0AIgDUHQAWoiBSANQdADakGAARDPBBogDUEQaiAFQcABEM8EGiANQgE3AwggAwRAIAIgA0HAAWwQuQQLIAFBwAEQuQQLIA1B0AFqITAgTiEPIAQhCCANQQhqIQFBACFAIwBBgAxrIgckAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIDhBAUsEQCAEIDhLDQECQCABKQMAIpIBUARAIAdBgICAgHg2AhAMAQsgB0HgAGogAUGQAWopAwA3AwAgB0HoAGogAUGYAWopAwA3AwAgB0HwAGogAUGgAWopAwA3AwAgB0H4AGogASkDqAE3AwAgB0GAAWogAUGwAWopAwA3AwAgB0GIAWogAUG4AWopAwA3AwAgB0GQAWogAUHAAWopAwA3AwAgByABKQOIATcDWCAHQfgFaiICIAFBIGopAwA3AwAgB0HwBWoiAyABQRhqKQMANwMAIAdB6AVqIgQgAUEQaikDADcDACAHIAEpAwg3A+AFIAdBmAZqIgUgAUFAaykDADcDACAHQZAGaiIGIAFBOGopAwA3AwAgB0GIBmoiCiABQTBqKQMANwMAIAdBgAZqIgkgASkDKDcDACAHQYgHaiIMIAFB4ABqKQMANwMAIAdB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BjYCFCAEIAZHDQECQAJAAkACQAJAAkACQCAEQQJrDgsBAAAAAgAAAAAAAwALIAFBADYCqAYgAUEBNgKcBiABQdSRwAA2ApgGIAFCBDcCoAYgAUGYBmpBzJPAABCGBAALQdm+wgAtAAAaQcAAQQgQsAQiBA0CDAkLQdm+wgAtAAAaQcABQQgQsAQiBA0CDAkLQdm+wgAtAAAaQYADQQgQsAQiBA0CDAkLIAQgAykDACKLATcDACAEIAMpAyAijAE3AyAgAUE4aiCMATcDACAEQRhqIANBGGopAwAijAE3AwAgBEEQaiADQRBqKQMAIo0BNwMAIARBCGogA0EIaikDACKPATcDACAEQShqIANBKGopAwAikAE3AwAgBEEwaiADQTBqKQMAIpMBNwMAIARBOGogA0E4aikDACKUATcDACABQShqII0BNwMAIAFBMGogjAE3AwAgAUFAayCQATcDACABQcgAaiCTATcDACABQdAAaiCUATcDACABII8BNwMgIARBwAAQuQRB2b7CAC0AABogASCLATcDGEHAAEEIELAEIgNFDQYgAyACKQMAIosBNwMAIAMgAikDICKMATcDICABQfgAaiCMATcDACADQRhqIAJBGGopAwAijAE3AwAgA0EQaiACQRBqKQMAIo0BNwMAIANBCGogAkEIaikDACKPATcDACADQShqIAJBKGopAwAikAE3AwAgA0EwaiACQTBqKQMAIpMBNwMAIANBOGogAkE4aikDACKUATcDACABQegAaiCNATcDACABQfAAaiCMATcDACABQYABaiCQATcDACABQYgBaiCTATcDACABQZABaiCUATcDACABII8BNwNgIANBwAAQuQQgASCLATcDWCABQZgBaiIDIAFBGGogAUHYAGoQHSABQZgGaiADEK0DIAEoApwGIQMgASgCmAYhBCABKAKgBiIGQQJHDQQgAUGgCWogA0EQaikDADcDACABQagJaiADQRhqKQMANwMAIAFBsAlqIANBIGopAwA3AwAgAUG4CWogA0EoaikDADcDACABQcAJaiADQTBqKQMANwMAIAFByAlqIANBOGopAwA3AwAgASADKQMINwOYCSADKAIEIQYgAygCACEKIAQEQCADIARBBXQQuQQLQdm+wgAtAAAaQcAAQQgQsAQiA0UNBiADIAY2AgQgAyAKNgIAIAMgASkDmAk3AwggAyABKQOwCTcDICAFQQI2AgggBSADNgIEIAVBAjYCACADQRBqIAFBoAlqKQMANwMAIANBGGogAUGoCWopAwA3AwAgA0EoaiABQbgJaikDADcDACADQTBqIAFBwAlqKQMANwMAIANBOGogAUHICWopAwA3AwAMBQsgBCADKQMANwMAIAQgAykDIDcDICAEIAMpA0A3A0AgBEEYaiADQRhqKQMANwMAIARBEGogA0EQaikDADcDACAEQQhqIgYgA0EIaikDADcDACAEQShqIANBKGopAwA3AwAgBEEwaiADQTBqKQMANwMAIARBOGogA0E4aikDADcDACAEQcgAaiADQcgAaikDADcDACAEQdAAaiADQdAAaikDADcDACAEQdgAaiADQdgAaikDADcDACAEQfgAaiADQfgAaikDADcDACAEQfAAaiADQfAAaikDADcDACAEQegAaiADQegAaikDADcDACAEIAMpA2A3A2AgBCADKQOAATcDgAEgBEGIAWogA0GIAWopAwA3AwAgBEGQAWogA0GQAWopAwA3AwAgBEGYAWogA0GYAWopAwA3AwAgBCADKQOgATcDoAEgBEGoAWogA0GoAWopAwA3AwAgBEGwAWogA0GwAWopAwA3AwAgBEG4AWogA0G4AWopAwA3AwAgBCkDACGLASABQZgGaiIUIAZBuAEQzwQaIARBwAEQuQQgAUH4CWogAUG4BmoiHCkDADcDACABQYAKaiABQcAGaiIYKQMANwMAIAFBiApqIAFByAZqIhopAwA3AwAgAUGYF2oiEiIDIAFB2AZqIjEpAwA3AwAgAUGgF2oiBCABQeAGaiIQKQMANwMAIAFBqBdqIgYgAUHoBmoiFykDADcDACABQbAXaiIKIAEpA/AGNwMAIAFBuBdqIgkgAUH4BmoiKCkDADcDACABQcAXaiIMIAFBgAdqIhkpAwA3AwAgAUHIF2oiCyABQYgHaiIkKQMANwMAIAEgASkDsAY3A/AJIAEgASkD0AY3A5AXIAFB6BRqIhMgAUGoB2oiJikDADcDACABQeAUaiIOIAFBoAdqIiEpAwA3AwAgAUHYFGoiFiABQZgHaiIpKQMANwMAIAFB8BRqIh4gASkDsAc3AwAgAUH4FGoiJyABQbgHaiIqKQMANwMAIAFBgBVqIhsgAUHAB2oiICkDADcDACABQYgVaiI/IAFByAdqIh8pAwA3AwAgAUHgCWogAUGgBmoiIikDADcDACABQegJaiABQagGaiItKQMANwMAIAEgASkDkAc3A9AUIAEgASkDmAY3A9gJIAFByApqIAspAwA3AwAgAUHACmogDCkDADcDACABQbgKaiAJKQMANwMAIAFBsApqIAopAwA3AwAgAUGoCmogBikDADcDACABQaAKaiAEKQMANwMAIAFBmApqIAMpAwA3AwAgAUGIC2ogPykDADcDACABQYALaiAbKQMANwMAIAFB+ApqICcpAwA3AwAgAUHwCmogHikDADcDACABQegKaiATKQMANwMAIAFB4ApqIA4pAwA3AwAgAUHYCmogFikDADcDACABIIsBNwPQCSABIAEpA5AXNwOQCiABIAEpA9AUNwPQCkHZvsIALQAAGkHAAUEIELAEIgNFDQYgAyACKQMANwMAIAMgAikDIDcDICADIAIpA0A3A0AgA0EYaiACQRhqKQMANwMAIANBEGogAkEQaikDADcDACADQQhqIisgAkEIaikDADcDACADQShqIAJBKGopAwA3AwAgA0EwaiACQTBqKQMANwMAIANBOGogAkE4aikDADcDACADQcgAaiACQcgAaikDADcDACADQdAAaiACQdAAaikDADcDACADQdgAaiACQdgAaikDADcDACADQfgAaiACQfgAaikDADcDACADQfAAaiACQfAAaikDADcDACADQegAaiACQegAaikDADcDACADIAIpA2A3A2AgAyACKQOAATcDgAEgA0GIAWogAkGIAWopAwA3AwAgA0GQAWogAkGQAWopAwA3AwAgA0GYAWogAkGYAWopAwA3AwAgAyACKQOgATcDoAEgA0GoAWogAkGoAWopAwA3AwAgA0GwAWogAkGwAWopAwA3AwAgA0G4AWogAkG4AWopAwA3AwAgAykDACGLASAUICtBuAEQzwQaIANBwAEQuQQgAUG4C2ogHCkDADcDACABQcALaiAYKQMANwMAIAFByAtqIBopAwA3AwAgEiAxKQMANwMAIAQgECkDADcDACAGIBcpAwA3AwAgCiABKQPwBjcDACAJICgpAwA3AwAgDCAZKQMANwMAIAsgJCkDADcDACABIAEpA7AGNwOwCyABIAEpA9AGNwOQFyATICYpAwA3AwAgDiAhKQMANwMAIBYgKSkDADcDACAeIAEpA7AHNwMAICcgKikDADcDACAbICApAwA3AwAgPyAfKQMANwMAIAFBoAtqICIpAwA3AwAgAUGoC2ogLSkDADcDACABIAEpA5AHNwPQFCABIAEpA5gGNwOYCyABQYgMaiALKQMANwMAIAFBgAxqIAwpAwA3AwAgAUH4C2ogCSkDADcDACABQfALaiAKKQMANwMAIAFB6AtqIAYpAwA3AwAgAUHgC2ogBCkDADcDACABQdgLaiASKQMANwMAIAFByAxqID8pAwA3AwAgAUHADGogGykDADcDACABQbgMaiAnKQMANwMAIAFBsAxqIB4pAwA3AwAgAUGoDGogEykDADcDACABQaAMaiAOKQMANwMAIAFBmAxqIBYpAwA3AwAgASCLATcDkAsgASABKQOQFzcD0AsgASABKQPQFDcDkAwgAUHYAWoiAyABQdAJaiABQZALahDqASAUIAMQoAFB2b7CAC0AABpBwAFBCBCwBCIDRQ0GIAMgASkDmAY3AwAgAyABKQO4BjcDICADIAEpA9gGNwNAIANBGGogAUGwBmopAwA3AwAgA0EQaiAtKQMANwMAIANBCGogIikDADcDACADQShqIBgpAwA3AwAgA0EwaiAaKQMANwMAIANBOGogAUHQBmopAwA3AwAgA0HIAGogECkDADcDACADQdAAaiAXKQMANwMAIANB2ABqIAFB8AZqKQMANwMAIANB+ABqIAFBkAdqKQMANwMAIANB8ABqICQpAwA3AwAgA0HoAGogGSkDADcDACADIAEpA/gGNwNgIANBmAFqIAFBsAdqKQMANwMAIANBkAFqICYpAwA3AwAgA0GIAWogISkDADcDACADIAEpA5gHNwOAASADQbgBaiABQdAHaikDADcDACADQbABaiAfKQMANwMAIANBqAFqICApAwA3AwAgAyABKQO4BzcDoAEgBUEGNgIIIAUgAzYCBCAFQQY2AgAMBAsgBCADKQMANwMAIAQgAykDIDcDICAEIAMpA0A3A0AgBEEYaiADQRhqKQMANwMAIARBEGogA0EQaikDADcDACAEQQhqIgYgA0EIaikDADcDACAEQShqIANBKGopAwA3AwAgBEEwaiADQTBqKQMANwMAIARBOGogA0E4aikDADcDACAEQcgAaiADQcgAaikDADcDACAEQdAAaiADQdAAaikDADcDACAEQdgAaiADQdgAaikDADcDACAEQfgAaiADQfgAaikDADcDACAEQfAAaiADQfAAaikDADcDACAEQegAaiADQegAaikDADcDACAEIAMpA2A3A2AgBCADKQOAATcDgAEgBEGIAWogA0GIAWopAwA3AwAgBEGQAWogA0GQAWopAwA3AwAgBEGYAWogA0GYAWopAwA3AwAgBCADKQOgATcDoAEgBEGoAWogA0GoAWopAwA3AwAgBEGwAWogA0GwAWopAwA3AwAgBEG4AWogA0G4AWopAwA3AwAgBEHYAWogA0HYAWopAwA3AwAgBEHQAWogA0HQAWopAwA3AwAgBEHIAWogA0HIAWopAwA3AwAgBCADKQPAATcDwAEgBEH4AWogA0H4AWopAwA3AwAgBEHwAWogA0HwAWopAwA3AwAgBEHoAWogA0HoAWopAwA3AwAgBCADKQPgATcD4AEgBEGYAmogA0GYAmopAwA3AwAgBEGQAmogA0GQAmopAwA3AwAgBEGIAmogA0GIAmopAwA3AwAgBCADKQOAAjcDgAIgBEG4AmogA0G4AmopAwA3AwAgBEGwAmogA0GwAmopAwA3AwAgBEGoAmogA0GoAmopAwA3AwAgBCADKQOgAjcDoAIgBEHYAmogA0HYAmopAwA3AwAgBEHQAmogA0HQAmopAwA3AwAgBEHIAmogA0HIAmopAwA3AwAgBCADKQPAAjcDwAIgBEH4AmogA0H4AmopAwA3AwAgBEHwAmogA0HwAmopAwA3AwAgBEHoAmogA0HoAmopAwA3AwAgBCADKQPgAjcD4AIgBCkDACGLASABQZgGaiImIAZB+AIQzwQaIARBgAMQuQQgAUH4DGogAUG4BmoiVCkDADcDACABQYANaiABQcAGaiIhKQMANwMAIAFBiA1qIAFByAZqIiApAwA3AwAgAUHYD2oiAyABQdgGaiJYKQMANwMAIAFB4A9qIlkgAUHgBmoiHykDADcDACABQegPaiJNIAFB6AZqIiIpAwA3AwAgAUHwD2oiWiABKQPwBjcDACABQfgPaiJbIAFB+AZqIlwpAwA3AwAgAUGAEGoiUCABQYAHaiItKQMANwMAIAFBiBBqIl0gAUGIB2oiHCkDADcDACABIAEpA7AGNwPwDCABIAEpA9AGNwPQDyABQagQaiJVIAFBqAdqIjEpAwA3AwAgAUGgEGoiXiABQaAHaiIoKQMANwMAIAFBmBBqIl8gAUGYB2oiYCkDADcDACABQbAQaiJhIAEpA7AHNwMAIAFBuBBqImYgAUG4B2oiZykDADcDACABQcAQaiJoIAFBwAdqIikpAwA3AwAgAUHIEGoiaSABQcgHaiIqKQMANwMAIAFB4AxqIAFBoAZqIispAwA3AwAgAUHoDGogAUGoBmoiLikDADcDACABIAEpA5AHNwOQECABIAEpA5gGNwPYDCABQdgWaiIEIAFBmAhqImopAwA3AwAgAUHgFmoiBiABQaAIaiI8KQMANwMAIAFB6BZqIgogAUGoCGoiJSkDADcDACABQcgWaiIJIAFBiAhqIjIpAwA3AwAgAUHAFmoiDCABQYAIaiIvKQMANwMAIAFBuBZqIgsgAUH4B2oiaykDADcDACABQbAWaiITIAEpA/AHNwMAIAEgASkDkAg3A9AWIAFB8BZqIg4gASkDsAg3AwAgAUH4FmoiFiABQbgIaiJsKQMANwMAIAFBgBdqIh4gAUHACGoiNCkDADcDACABQYgXaiInIAFByAhqIjcpAwA3AwAgAUGoF2oiGyABQegIaiI9KQMANwMAIAFBoBdqIj8gAUHgCGoiRCkDADcDACABQZgXaiIUIAFB2AhqIm0pAwA3AwAgASABKQPQCDcDkBcgAUHIF2oiGCABQYgJaiJFKQMANwMAIAFBwBdqIhogAUGACWoiSCkDADcDACABQbgXaiISIAFB+AhqIm4pAwA3AwAgAUGwF2oiECABKQPwCDcDACABQagWaiIXIAFB6AdqIkkpAwA3AwAgAUGgFmoiGSABQeAHaiJSKQMANwMAIAFBmBZqIiQgAUHYB2oibykDADcDACABIAEpA9AHNwOQFiABQYgVaiJwIAkpAwA3AwAgAUGAFWoicSAMKQMANwMAIAFB+BRqInIgCykDADcDACABQfAUaiJzIBMpAwA3AwAgAUHoFGoidCAXKQMANwMAIAFB4BRqInUgGSkDADcDACABQdgUaiJ2ICQpAwA3AwAgASABKQOQFjcD0BQgAUHIFWoidyAnKQMANwMAIAFBwBVqInggHikDADcDACABQbgVaiJ5IBYpAwA3AwAgAUGwFWoieiAOKQMANwMAIAFBqBVqInsgCikDADcDACABQaAVaiJ8IAYpAwA3AwAgAUGYFWoifSAEKQMANwMAIAEgASkD0BY3A5AVIAFBiBZqIn4gGCkDADcDACABQYAWaiJ/IBopAwA3AwAgAUH4FWoigAEgEikDADcDACABQfAVaiKBASAQKQMANwMAIAFB6BVqIoIBIBspAwA3AwAgAUHgFWoigwEgPykDADcDACABQdgVaiKEASAUKQMANwMAIAEgASkDkBc3A9AVIAEgiwE3A9AMIAFByA1qIF0pAwA3AwAgAUHADWogUCkDADcDACABQbgNaiBbKQMANwMAIAFBsA1qIFopAwA3AwAgAUGoDWogTSkDADcDACABQaANaiBZKQMANwMAIAFBmA1qIAMpAwA3AwAgASABKQPQDzcDkA0gAUGIDmogaSkDADcDACABQYAOaiBoKQMANwMAIAFB+A1qIGYpAwA3AwAgAUHwDWogYSkDADcDACABQegNaiBVKQMANwMAIAFB4A1qIF4pAwA3AwAgAUHYDWogXykDADcDACABIAEpA5AQNwPQDSABQZAOaiABQdAUaiJZQcABEM8EGkHZvsIALQAAGkGAA0EIELAEIgNFDQYgAyACKQMANwMAIAMgAikDIDcDICADIAIpA0A3A0AgA0EYaiACQRhqKQMANwMAIANBEGogAkEQaikDADcDACADQQhqIk0gAkEIaikDADcDACADQShqIAJBKGopAwA3AwAgA0EwaiACQTBqKQMANwMAIANBOGogAkE4aikDADcDACADQcgAaiACQcgAaikDADcDACADQdAAaiACQdAAaikDADcDACADQdgAaiACQdgAaikDADcDACADQfgAaiACQfgAaikDADcDACADQfAAaiACQfAAaikDADcDACADQegAaiACQegAaikDADcDACADIAIpA2A3A2AgAyACKQOAATcDgAEgA0GIAWogAkGIAWopAwA3AwAgA0GQAWogAkGQAWopAwA3AwAgA0GYAWogAkGYAWopAwA3AwAgAyACKQOgATcDoAEgA0GoAWogAkGoAWopAwA3AwAgA0GwAWogAkGwAWopAwA3AwAgA0G4AWogAkG4AWopAwA3AwAgA0HYAWogAkHYAWopAwA3AwAgA0HQAWogAkHQAWopAwA3AwAgA0HIAWogAkHIAWopAwA3AwAgAyACKQPAATcDwAEgA0H4AWogAkH4AWopAwA3AwAgA0HwAWogAkHwAWopAwA3AwAgA0HoAWogAkHoAWopAwA3AwAgAyACKQPgATcD4AEgA0GYAmogAkGYAmopAwA3AwAgA0GQAmogAkGQAmopAwA3AwAgA0GIAmogAkGIAmopAwA3AwAgAyACKQOAAjcDgAIgA0G4AmogAkG4AmopAwA3AwAgA0GwAmogAkGwAmopAwA3AwAgA0GoAmogAkGoAmopAwA3AwAgAyACKQOgAjcDoAIgA0HYAmogAkHYAmopAwA3AwAgA0HQAmogAkHQAmopAwA3AwAgA0HIAmogAkHIAmopAwA3AwAgAyACKQPAAjcDwAIgA0H4AmogAkH4AmopAwA3AwAgA0HwAmogAkHwAmopAwA3AwAgA0HoAmogAkHoAmopAwA3AwAgAyACKQPgAjcD4AIgAykDACGLASAmIE1B+AIQzwQaIANBgAMQuQQgAUH4EGogVCkDADcDACABQYARaiAhKQMANwMAIAFBiBFqICApAwA3AwAgAUHYE2oiAyBYKQMANwMAIAFB4BNqIlQgHykDADcDACABQegTaiJYICIpAwA3AwAgAUHwE2oiTSABKQPwBjcDACABQfgTaiJaIFwpAwA3AwAgAUGAFGoiWyAtKQMANwMAIAFBiBRqIlwgHCkDADcDACABIAEpA7AGNwPwECABIAEpA9AGNwPQEyABQagUaiJQIDEpAwA3AwAgAUGgFGoiXSAoKQMANwMAIAFBmBRqIlUgYCkDADcDACABQbAUaiJeIAEpA7AHNwMAIAFBuBRqIl8gZykDADcDACABQcAUaiJgICkpAwA3AwAgAUHIFGoiYSAqKQMANwMAIAFB4BBqICspAwA3AwAgAUHoEGogLikDADcDACABIAEpA5AHNwOQFCABIAEpA5gGNwPYECAEIGopAwA3AwAgBiA8KQMANwMAIAogJSkDADcDACAJIDIpAwA3AwAgDCAvKQMANwMAIAsgaykDADcDACATIAEpA/AHNwMAIAEgASkDkAg3A9AWIA4gASkDsAg3AwAgFiBsKQMANwMAIB4gNCkDADcDACAnIDcpAwA3AwAgGyA9KQMANwMAID8gRCkDADcDACAUIG0pAwA3AwAgASABKQPQCDcDkBcgGCBFKQMANwMAIBogSCkDADcDACASIG4pAwA3AwAgECABKQPwCDcDACAXIEkpAwA3AwAgGSBSKQMANwMAICQgbykDADcDACABIAEpA9AHNwOQFiBwIAkpAwA3AwAgcSAMKQMANwMAIHIgCykDADcDACBzIBMpAwA3AwAgdCAXKQMANwMAIHUgGSkDADcDACB2ICQpAwA3AwAgASABKQOQFjcD0BQgdyAnKQMANwMAIHggHikDADcDACB5IBYpAwA3AwAgeiAOKQMANwMAIHsgCikDADcDACB8IAYpAwA3AwAgfSAEKQMANwMAIAEgASkD0BY3A5AVIH4gGCkDADcDACB/IBopAwA3AwAggAEgEikDADcDACCBASAQKQMANwMAIIIBIBspAwA3AwAggwEgPykDADcDACCEASAUKQMANwMAIAEgASkDkBc3A9AVIAEgiwE3A9AQIAFByBFqIFwpAwA3AwAgAUHAEWogWykDADcDACABQbgRaiBaKQMANwMAIAFBsBFqIE0pAwA3AwAgAUGoEWogWCkDADcDACABQaARaiBUKQMANwMAIAFBmBFqIAMpAwA3AwAgASABKQPQEzcDkBEgAUGIEmogYSkDADcDACABQYASaiBgKQMANwMAIAFB+BFqIF8pAwA3AwAgAUHwEWogXikDADcDACABQegRaiBQKQMANwMAIAFB4BFqIF0pAwA3AwAgAUHYEWogVSkDADcDACABIAEpA5AUNwPQESABQZASaiBZQcABEM8EGiABQZgDaiIDIAFB0AxqIAFB0BBqEPkBICYgAxDUAUHZvsIALQAAGkGAA0EIELAEIgNFDQYgAyABKQOYBjcDACADIAEpA7gGNwMgIAMgASkD2AY3A0AgA0EYaiABQbAGaikDADcDACADQRBqIC4pAwA3AwAgA0EIaiArKQMANwMAIANBKGogISkDADcDACADQTBqICApAwA3AwAgA0E4aiABQdAGaikDADcDACADQcgAaiAfKQMANwMAIANB0ABqICIpAwA3AwAgA0HYAGogAUHwBmopAwA3AwAgA0H4AGogAUGQB2opAwA3AwAgA0HwAGogHCkDADcDACADQegAaiAtKQMANwMAIAMgASkD+AY3A2AgA0GYAWogAUGwB2opAwA3AwAgA0GQAWogMSkDADcDACADQYgBaiAoKQMANwMAIAMgASkDmAc3A4ABIANBuAFqIAFB0AdqKQMANwMAIANBsAFqICopAwA3AwAgA0GoAWogKSkDADcDACADIAEpA7gHNwOgASADQdgBaiABQfAHaikDADcDACADQdABaiBJKQMANwMAIANByAFqIFIpAwA3AwAgAyABKQPYBzcDwAEgA0H4AWogAUGQCGopAwA3AwAgA0HwAWogMikDADcDACADQegBaiAvKQMANwMAIAMgASkD+Ac3A+ABIANBmAJqIAFBsAhqKQMANwMAIANBkAJqICUpAwA3AwAgA0GIAmogPCkDADcDACADIAEpA5gINwOAAiADQbgCaiABQdAIaikDADcDACADQbACaiA3KQMANwMAIANBqAJqIDQpAwA3AwAgAyABKQO4CDcDoAIgA0HYAmogAUHwCGopAwA3AwAgA0HQAmogPSkDADcDACADQcgCaiBEKQMANwMAIAMgASkD2Ag3A8ACIANB+AJqIAFBkAlqKQMANwMAIANB8AJqIEUpAwA3AwAgA0HoAmogSCkDADcDACADIAEpA/gINwPgAiAFQQw2AgggBSADNgIEIAVBDDYCAAwDCyABQQA2ApgGIAFBEGogAUEMaiABQZgGakGck8AAEIgEAAsgAUEANgKYBiABQRRqIAFBDGogAUGYBmpBrJPAABCIBAALIAEgBjYCoAYgASADNgKcBiABIAQ2ApgGQbyOwABBKyABQZgGakG8k8AAQayUwAAQvgMACyABQdAXaiQADAMLQQhBwAAQqAQAC0EIQcABEKgEAAtBCEGAAxCoBAALIAcoAqgIIgEEQCBPIAFBBXQQuQQLIAdBsAhqIAdB8AhqKAIANgIAIAcgBykC6Ag3A6gIIAcoAvAGIgFFDQAgAiABQQV0ELkECyAHKAKsCCEEAkAgBygCsAgiA0UEQEEEIQIMAQtB2b7CAC0AABogA0EMbCIBQQQQsAQiAkUNKCAEIQogAiEBIAMhBgNAIAdB6AhqIAoQ4gIgAUEIaiAHQfAIaigCADYCACABIAcpAugINwIAIAFBDGohASAKQSBqIQogBkEBayIGDQALCyAHQegIahDjAiAHLQCcCyEJAkAgBygC7AgiAUUNACABIAFBDGxBE2pBeHEiBWpBCWoiAUUNACAHKALoCCAFayABELkECyADQQxHBEAgAiEKIAMhBgwHCyACKAIMIQMgAigCCCEKIAIoAgQhBiACKAIAIQUgB0HoCGoiASACQRBqQYABEM8EGiACQZABELkEIAVBgICAgHhGDQYgByADNgL8BiAHIAo2AvgGIAcgBjYC9AYgByAFNgLwBiAHQYAHaiABQYABEM8EGiABIAkgB0HwBmoiCRCEASAHQeAFaiIMIAFBkAEQzwQaIAkgB0H4CWpBkAEQzwQaQdm+wgAtAAAaQYADQQgQsAQiAkUNByABIAwQ8AIgAkEYaiAHQYAJaiIDKQMANwMAIAJBEGogB0H4CGoiBikDADcDACACQQhqIAdB8AhqIgopAwA3AwAgAiAHKQPoCDcDACABIAdB7AVqEPACIAJBOGogAykDADcDACACQTBqIAYpAwA3AwAgAkEoaiAKKQMANwMAIAIgBykD6Ag3AyAgASAHQfgFahDwAiACQdgAaiADKQMANwMAIAJB0ABqIAYpAwA3AwAgAkHIAGogCikDADcDACACIAcpA+gINwNAIAEgB0GEBmoQ8AIgAkH4AGogAykDADcDACACQfAAaiAGKQMANwMAIAJB6ABqIAopAwA3AwAgAiAHKQPoCDcDYCABIAdBkAZqEPACIAJBmAFqIAMpAwA3AwAgAkGQAWogBikDADcDACACQYgBaiAKKQMANwMAIAIgBykD6Ag3A4ABIAEgB0GcBmoQ8AIgAkG4AWogAykDADcDACACQbABaiAGKQMANwMAIAJBqAFqIAopAwA3AwAgAiAHKQPoCDcDoAEgASAHQagGahDwAiACQdgBaiADKQMANwMAIAJB0AFqIAYpAwA3AwAgAkHIAWogCikDADcDACACIAcpA+gINwPAASABIAdBtAZqEPACIAJB+AFqIAMpAwA3AwAgAkHwAWogBikDADcDACACQegBaiAKKQMANwMAIAIgBykD6Ag3A+ABIAEgB0HABmoQ8AIgAkGYAmogAykDADcDACACQZACaiAGKQMANwMAIAJBiAJqIAopAwA3AwAgAiAHKQPoCDcDgAIgASAHQcwGahDwAiACQbgCaiADKQMANwMAIAJBsAJqIAYpAwA3AwAgAkGoAmogCikDADcDACACIAcpA+gINwOgAiABIAdB2AZqEPACIAJB2AJqIAMpAwA3AwAgAkHQAmogBikDADcDACACQcgCaiAKKQMANwMAIAIgBykD6Ag3A8ACIAEgB0HkBmoQ8AIgAkH4AmogAykDADcDACACQfACaiAGKQMANwMAIAJB6AJqIAopAwA3AwAgAiAHKQPoCDcD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QAJAAn8CQAJAAkACfwJAAkACQAJ/AkACQAJAAn8CQAJAAkACfyAaLQAABEAgB0HoCGoQmgMgBygC6AghHSAHKALsCCInIBgpAwA3AwAgJ0EIaiAYQQhqKQMANwMAICdBEGogGEEQaikDADcDACAnQRhqIBhBGGopAwA3AwBBASERIAdBATYC8AggGi0AAUUNA0EBIQYgGEEgaiIBIB1BAUYNARoMAgsgGi0AAUUNA0EAIQYgGEEgagshASAHQegIahCaAyAHKALoCCEdIAcoAuwIIScLICcgBkEFdGoiAiABKQMANwMAIAJBGGogAUEYaikDADcDACACQRBqIAFBEGopAwA3AwAgAkEIaiABQQhqKQMANwMAIAcgBkEBaiIRNgLwCAsgGi0AAkUNAyAYQUBrIgEgESAdRg0BGgwCCyAaLQACRQ0DIBhBQGsLIQEgB0HoCGoQmgMgBygC6AghHSAHKALsCCEnCyAnIBFBBXRqIgIgASkDADcDACACQRhqIAFBGGopAwA3AwAgAkEQaiABQRBqKQMANwMAIAJBCGogAUEIaikDADcDACAHIBFBAWoiETYC8AgLIBotAANFDQMgGEHgAGoiASARIB1GDQEaDAILIBotAANFDQMgGEHgAGoLIQEgB0HoCGoQmgMgBygC6AghHSAHKALsCCEnCyAnIBFBBXRqIgIgASkDADcDACACQRhqIAFBGGopAwA3AwAgAkEQaiABQRBqKQMANwMAIAJBCGogAUEIaikDADcDACAHIBFBAWoiETYC8AgLIBotAARFDQMgGEGAAWoiASARIB1GDQEaDAILIBotAARFDQMgGEGAAWoLIQEgB0HoCGoQmgMgBygC6AghHSAHKALsCCEnCyAnIBFBBXRqIgIgASkDADcDACACQRhqIAFBGGopAwA3AwAgAkEQaiABQRBqKQMANwMAIAJBCGogAUEIaikDADcDACAHIBFBAWoiETYC8AgLIBotAAVFDQMgGEGgAWoiASARIB1GDQEaDAILIBotAAVFDQMgGEGgAWoLIQEgB0HoCGoQmgMgBygC6AghHSAHKALsCCEnCyAnIBFBBXRqIgIgASkDADcDACACQRhqIAFBGGopAwA3AwAgAkEQaiABQRBqKQMANwMAIAJBCGogAUEIaikDADcDACAHIBFBAWoiETYC8AgLIBotAAZFDQMgGEHAAWoiASARIB1GDQEaDAILIBotAAZFDQMgGEHAAWoLIQEgB0HoCGoQmgMgBygC6AghHSAHKALsCCEnCyAnIBFBBXRqIgIgASkDADcDACACQRhqIAFBGGopAwA3AwAgAkEQaiABQRBqKQMANwMAIAJBCGogAUEIaikDADcDACAHIBFBAWoiETYC8AgLIBotAAdFDQMgGEHgAWoiASARIB1GDQEaDAILIBotAAdFDQMgGEHgAWoLIQEgB0HoCGoQmgMgBygC6AghHSAHKALsCCEnCyAnIBFBBXRqIgIgASkDADcDACACQRhqIAFBGGopAwA3AwAgAkEQaiABQRBqKQMANwMAIAJBCGogAUEIaikDADcDACAHIBFBAWoiETYC8AgLIBotAAhFDQMgGEGAAmoiASARIB1GDQEaDAILIBotAAhFDQMgGEGAAmoLIQEgB0HoCGoQmgMgBygC6AghHSAHKALsCCEnCyAnIBFBBXRqIgIgASkDADcDACACQRhqIAFBGGopAwA3AwAgAkEQaiABQRBqKQMANwMAIAJBCGogAUEIaikDADcDACAHIBFBAWoiETYC8AgLIBotAAlFDQMgGEGgAmoiASARIB1GDQEaDAILIBotAAlFDQMgGEGgAmoLIQEgB0HoCGoQmgMgBygC6AghHSAHKALsCCEnCyAnIBFBBXRqIgIgASkDADcDACACQRhqIAFBGGopAwA3AwAgAkEQaiABQRBqKQMANwMAIAJBCGogAUEIaikDADcDACAHIBFBAWoiETYC8AgLIBotAApFDQMgGEHAAmoiASARIB1GDQEaDAILIBotAApFDQMgGEHAAmoLIQEgB0HoCGoQmgMgBygC6AghHSAHKALsCCEnCyAnIBFBBXRqIgIgASkDADcDACACQRhqIAFBGGopAwA3AwAgAkEQaiABQRBqKQMANwMAIAJBCGogAUEIaikDADcDACAHIBFBAWoiETYC8AgLIBotAAtFDQMgGEHgAmoiASARIB1GDQEaDAILIBotAAtFBEBBCCEnDAMLIBhB4AJqCyEBIAdB6AhqEJoDIAcoAugIIR0gBygC7AghJwsgJyARQQV0aiICIAEpAwA3AwAgAkEYaiABQRhqKQMANwMAIAJBEGogAUEQaikDADcDACACQQhqIAFBCGopAwA3AwAgEUEBaiERCyAHQegIahDj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AiAHQfAIaigCADYCACAHIAcpAugINwPABSAHKAL0CCEBIAcoAvgIIQMgBygC/AghIyAHKAL4BCIEBEAgBygC/AQgBEEFdBC5BAsgISACKAIANgIAIAcgBykDwAU3A/gEIAtFDQsgPyALQQd0ELkEDAsLQdm+wgAtAAAaQTBBBBCwBCICRQ0CIAcoAvwEIRsCQCAHKAKABSIBRQRAQQghCUEIIQxBCCEFQQghBgwBCyABQQV0IRMgAUH///8fSwRAQQAhCgwYC0HZvsIALQAAGkEIIQogE0EIELAEIgxFDRdBACEKIAEhBANAIAogE0cEQCAKIAxqIgMgCiAbaiIFKQMANwMAIANBGGogBUEYaikDADcDACADQRBqIAVBEGopAwA3AwAgA0EIaiAFQQhqKQMANwMAIApBIGohCiAEQQFrIgQNAQsLQdm+wgAtAAAaIBNBCBCwBCIFRQ0WQQAhCiABIQQDQCAKIBNHBEAgBSAKaiIDIAogG2oiBikDADcDACADQRhqIAZBGGopAwA3AwAgA0EQaiAGQRBqKQMANwMAIANBCGogBkEIaikDADcDACAKQSBqIQogBEEBayIEDQELC0HZvsIALQAAGiATQQgQsAQiCUUNFkEAIQogASEEA0AgCiATRwRAIAkgCmoiAyAKIBtqIgYpAwA3AwAgA0EYaiAGQRhqKQMANwMAIANBEGogBkEQaikDADcDACADQQhqIAZBCGopAwA3AwAgCkEgaiEKIARBAWsiBA0BCwtB2b7CAC0AABogE0EIELAEIgZFDRZBACEKIAEhBANAIAogE0YNASAGIApqIgMgCiAbaiISKQMANwMAIANBGGogEkEYaikDADcDACADQRBqIBJBEGopAwA3AwAgA0EIaiASQQhqKQMANwMAIApBIGohCiAEQQFrIgQNAAsLIAIgATYCJCACIAE2AhggAiABNgIMIAIgATYCCCACIAw2AgQgAiABNgIAIAJBLGogATYCACACQShqIAY2AgAgAkEgaiABNgIAIAJBHGogCTYCACACQRRqIAE2AgAgAkEQaiAFNgIAIAdBBDYCjAggByACNgKICCAHQQQ2AoQIIAdBADYCmAggB0KAgICAgAE3ApAIICMEQEEAIQwCQANAAkACQCAMICxHBEAgDCA2Rg0EIAdB6AhqIgEgPyAMQQd0aiA6IAxBBXQiAmogAiAzahC5AiAHQeAFaiABQYABEM8EGiAHKALsCSEFIAcoAugJIQYgBygC8AkiAQ0BQQghCQwCCyAsICxB9MfAABDWAwALIAFBBXQhEyABQf///x9LBEBBACEKDBsLQdm+wgAtAAAaQQghCiATQQgQsAQiCUUNGkEAIQogASEDA0AgCiATRg0BIAkgCmoiAiAFIApqIgQpAwA3AwAgAkEYaiAEQRhqKQMANwMAIAJBEGogBEEQaikDADcDACACQQhqIARBCGopAwA3AwAgCkEgaiEKIANBAWsiAw0ACwsgBygCjAgiAiAHKAKECEYEQCAHQYQIahCeAwsgBygCiAggAkEMbGoiAyABNgIIIAMgCTYCBCADIAE2AgAgByACQQFqIgM2AowIIAcoAoQIIANGBEAgB0GECGoQngMLIAcoAogIIANBDGxqIgMgATYCCCADIAU2AgQgAyAGNgIAIAcgAkECajYCjAggBygCmAgiASAHKAKQCEYEQCAHQZAIahCcAwsgBygClAggAUEHdGogB0HgBWpBgAEQzwQaIAcgAUEBajYCmAggDEEBaiIMICNHDQALQQAhBiAHQQA2AqQIIAdCgICAgIABNwKcCCAzIQIgOiEDQQAhCgwICyA2IDZBhMjAABDWAwALIAdBADYCpAggB0KAgICAgAE3ApwIDAcLIAJB/wFHDQQLQQAhAiAHQQA2AowIIAdCgICAgIABNwKECEEIIQNBACEGA0ACQCABLQAAQQFHBEAgBiAHKAKMBSIETw0EIAdBiAdqIAcoAogFIAJqIhZBGGopAwAikQE3AwAgB0GAB2ogFkEQaikDACKLATcDACAHQfgGaiAWQQhqKQMAIowBNwMAIBcgFkEgaikDADcDACAXQRhqIhMgFkE4aikDADcDACAXQRBqIgogFkEwaikDADcDACAXQQhqIgwgFkEoaikDADcDACAHIBYpAwAijQE3A/AGIAdBgAlqIJEBNwMAIAdB+AhqIIsBNwMAIAdB8AhqIIwBNwMAIAdBoAlqIAdBqAdqIgkpAwA3AwAgB0GYCWogB0GgB2oiBSkDADcDACAHQZAJaiAHQZgHaiIEKQMANwMAIAdBiAlqIBcpAwA3AwAgByCNATcD6AgMAQsgF0EYaiITIAIgFWoiFkE4aikDADcDACAXQRBqIgogFkEwaikDADcDACAXQQhqIgwgFkEoaikDADcDACAXIBZBIGopAwA3AwAgB0GACWogFkEYaikDADcDACAHQfgIaiAWQRBqKQMANwMAIAdB8AhqIBZBCGopAwA3AwAgB0GgCWogB0GoB2oiCSkDADcDACAHQZgJaiAHQaAHaiIFKQMANwMAIAdBkAlqIAdBmAdqIgQpAwA3AwAgB0GICWogFykDADcDACAHIBYpAwA3A+gICyAXIBZB4ABqKQMANwMAIAwgFkHoAGopAwA3AwAgCiAWQfAAaikDADcDACATIBZB+ABqKQMANwMAICQgFkFAaykDADcDACAkQQhqIBZByABqKQMANwMAICRBEGogFkHQAGopAwA3AwAgJEEYaiAWQdgAaikDADcDACAkQSBqIBcpAwA3AwAgJEEoaiAEKQMANwMAICRBMGogBSkDADcDACAkQThqIAkpAwA3AwAgBygChAggBkYEQCAHQYQIahCcAyAHKAKICCEDCyACIANqIAdB6AhqQYABEM8EGiAHIAZBAWoiBjYCjAggAkGAAWohAiAGIDFHDQALDAILQQRBMBDKBAALIAYgBEHEycAAENYDAAsCQAJAAkACQAJAIAEtAABBAUYiA0UgHkGAgICAeEZxRQRAAkAgBygC8AQgHiADGyIBRQRAQQghBAwBCyABQQV0IQUgAUH///8fSwRAQQAhAgwHCyAHKALsBEHZvsIALQAAGkEIIQIgBUEIELAEIgRFDQYgNSADGyEJQQAhCiABIQMDQCAFIApGDQEgBCAKaiICIAkgCmoiBikDADcDACACQRhqIAZBGGopAwA3AwAgAkEQaiAGQRBqKQMANwMAIAJBCGogBkEIaikDADcDACAKQSBqIQogA0EBayIDDQALCyAHKALIBCICBEAgBygCzAQgAkEFdBC5BAsgByABNgLQBCAHIAQ2AswEIAcgATYCyARB2b7CAC0AABogBygCiAghAiAHKAKMCCEWQSRBBBCwBCIGRQ0VQQghBSAHKAL8BCEgQQghEkEIIQwCQCAHKAKABSIBRQ0AIAFBBXQhEyABQf///x9LBEBBACEKDBkLQdm+wgAtAAAaQQghCiATQQgQsAQiEkUNGEEAIQogASEJA0AgCiATRwRAIAogEmoiAyAKICBqIgQpAwA3AwAgA0EYaiAEQRhqKQMANwMAIANBEGogBEEQaikDADcD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QgA3AAEgAUEBOgAAIAFBCGpBADYAACABrUKAgICAwAGEIZEBCyAHQegIaiEyIwBB8BdrIgMkAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCA9DgIBAgALQaS/wABBD0G0v8AAEPQDAAtB2b7CAC0AABpBkAFBBBCwBCIbRQ1OQdm+wgAtAAAaQdAAQQgQsAQiEkUNTyADQZCWwABBARB6IAMtAAANASADQagXaiIBIANBEGoiAikDACKLATcDACADQbgXaiIEIANBIGoiBSkDACKMATcDACADQbAXaiIGIANBGGoiCSkDACKNATcDACADQcwWaiCMATcCACADQcQWaiCNATcCACADQbwWaiCLATcCACADIAMpAwg3ArQWIANBkZbAAEECEHogAy0AAEUNAiADIAMtAAE6AABBvI7AAEErIANBqKvAAEG4ssAAEL4DAAtB2b7CAC0AABpBkAFBBBCwBCIBRQ1NQdm+wgAtAAAaQdAAQQgQsAQiCUUNTiADQZCWwABBARB6IAMtAAANAiADQagXaiICIANBEGoiBCkDACKLATcDACADQbgXaiIFIANBIGoiBikDACKMATcDACADQbAXaiIMIANBGGoiEykDACKNATcDACADQcwWaiCMATcCACADQcQWaiCNATcCACADQbwWaiCLATcCACADIAMpAwg3ArQWIANB2LLAAEEBEHogAy0AAEUNAyADIAMtAAE6AABBvI7AAEErIANBqKvAAEGEv8AAEL4DAAsgAyADLQABOgAAQbyOwABBKyADQairwABByLLAABC+AwALIANBiBdqIhcgAikDACKLATcDACADQZgXaiIZIAUpAwAijAE3AwAgA0GQF2oiJCAJKQMAIo0BNwMAIANBvBdqIgwgjAE3AgAgA0G0F2oiEyCNATcCACADQawXaiIWIIsBNwIAIAMgAykDCDcCpBcgEkEANgIAIBJBBjYCKCASIAMpArAWNwIEIBJBDGogA0G4FmoiYiItKQIANwIAIBJBFGogA0HAFmoiYyIfKQIANwIAIBJBHGogA0HIFmoiViIiKQIANwIAIBJBJGogA0HQFmooAgA2AgAgEkEsaiADKQKgFzcCACASQTRqIAEpAgA3AgAgEkE8aiAGKQIANwIAIBJBxABqIAQpAgA3AgAgEkHMAGogA0HAF2ooAgA2AgBB2b7CAC0AABpB0ABBCBCwBCIQRQ1MIANBk5bAAEHAABB6IAMtAAANAiADQagXaiIFIANBEGoiAikDACKLATcDACADQbgXaiIGIANBIGoiBCkDACKMATcDACADQbAXaiIJIANBGGoiASkDACKNATcDACADQcwWaiImIIwBNwIAIANBxBZqIiEgjQE3AgAgA0G8FmoiICCLATcCACADIAMpAwg3ArQWIANB05bAAEHAABB6IAMtAAANAyAXIAIpAwAiiwE3AwAgGSAEKQMAIowBNwMAICQgASkDACKNATcDACAMIIwBNwIAIBMgjQE3AgAgFiCLATcCACADIAMpAwg3AqQXIBBBATYCACAQQQc2AiggECADKQKwFjcCBCAQQQxqIC0pAgA3AgAgEEEUaiAfKQIANwIAIBBBHGogIikCADcCACAQQSRqIANB0BZqKAIANgIAIBBBLGogAykCoBc3AgAgEEE0aiAFKQIANwIAIBBBPGogCSkCADcCACAQQcQAaiAGKQIANwIAIBBBzABqIANBwBdqKAIANgIAQdm+wgAtAAAaQdAAQQgQsAQiHEUNTCADQZOXwABBwAAQeiADLQAADQQgBSACKQMAIosBNwMAIAYgBCkDACKMATcDACAJIAEpAwAijQE3AwAgJiCMATcCACAhII0BNwIAICAgiwE3AgAgAyADKQMINwK0FiADQdOXwABBPxB6IAMtAAANBSAXIAIpAwAiiwE3AwAgGSAEKQMAIowBNwMAICQgASkDACKNATcDACAMIIwBNwIAIBMgjQE3AgAgFiCLATcCACADIAMpAwg3AqQXIBxBAjYCACAcQQg2AiggHCADKQKwFjcCBCAcQQxqIC0pAgA3AgAgHEEUaiAfKQIANwIAIBxBHGogIikCADcCACAcQSRqIANB0BZqKAIANgIAIBxBLGogAykCoBc3AgAgHEE0aiAFKQIANwIAIBxBPGogCSkCADcCACAcQcQAaiAGKQIANwIAIBxBzABqIANBwBdqKAIANgIAQdm+wgAtAAAaQdAAQQgQsAQiMUUNTCADQZKYwABBwAAQeiADLQAADQYgBSACKQMAIosBNwMAIAYgBCkDACKMATcDACAJIAEpAwAijQE3AwAgJiCMATcCACAhII0BNwIAICAgiwE3AgAgAyADKQMINwK0FiADQdKYwABBwAAQeiADLQAADQcgFyACKQMAIosBNwMAIBkgBCkDACKMATcDACAkIAEpAwAijQE3AwAgDCCMATcCACATII0BNwIAIBYgiwE3AgAgAyADKQMINwKkFyAxQQM2AgAgMUEJNgIoIDEgAykCsBY3AgQgMUEMaiAtKQIANwIAIDFBFGogHykCADcCACAxQRxqICIpAgA3AgAgMUEkaiADQdAWaigCADYCACAxQSxqIAMpAqAXNwIAIDFBNGogBSkCADcCACAxQTxqIAkpAgA3AgAgMUHEAGogBikCADcCACAxQcwAaiADQcAXaigCADYCAEHZvsIALQAAGkHQAEEIELAEIihFDUwgA0GSmcAAQcAAEHogAy0AAA0IIAUgAikDACKLATcDACAGIAQpAwAijAE3AwAgCSABKQMAIo0BNwMAICYgjAE3AgAgISCNATcCACAgIIsBNwIAIAMgAykDCDcCtBYgA0HSmcAAQT8QeiADLQAADQkgFyACKQMAIosBNwMAIBkgBCkDACKMATcDACAkIAEpAwAijQE3AwAgDCCMATcCACATII0BNwIAIBYgiwE3AgAgAyADKQMINwKkFyAoQQQ2AgAgKEEKNgIoICggAykCsBY3AgQgKEEMaiBiKQIANwIAIChBFGogYykCADcCACAoQRxqIFYpAgA3AgAgKEEkaiADQdAWaigCADYCACAoQSxqIAMpAqAXNwIAIChBNGogBSkCADcCACAoQTxqIAkpAgA3AgAgKEHEAGogBikCADcCACAoQcwAaiADQcAXaigCADYCAEHZvsIALQAAGkHQAEEIELAEIilFDUwgA0GRmsAAQcAAEHogAy0AAA0KIAUgAikDACKLATcDACAGIAQpAwAijAE3AwAgCSABKQMAIo0BNwMAICYgjAE3AgAgISCNATcCACAgIIsBNwIAIAMgAykDCDcCtBYgA0HRmsAAQcAAEHogAy0AAA0LIBcgAikDACKLATcDACAZIAQpAwAijAE3AwAgJCABKQMAIo0BNwMAIAwgjAE3AgAgEyCNATcCACAWIIsBNwIAIAMgAykDCDcCpBcgKUEFNgIAIClBCzYCKCApIAMpArAWNwIEIClBDGogA0G4FmopAgA3AgAgKUEUaiADQcAWaikCADcCACApQRxqIANByBZqKQIANwIAIClBJGogA0HQFmooAgA2AgAgKUEsaiADKQKgFzcCACApQTRqIAUpAgA3AgAgKUE8aiAJKQIANwIAIClBxABqIAYpAgA3AgAgKUHMAGogA0HAF2ooAgA2AgBB2b7CAC0AABpBKEEIELAEIi9FDU0gA0GRm8AAQcAAEHogAy0AAA0MIC0gAikDACKLATcDACAiIAQpAwAijAE3AwAgHyABKQMAIo0BNwMAIAwgjAE3AgAgEyCNATcCACAWIIsBNwIAIAMgAykDCDcCpBcgL0EGNgIAIC8gAykCoBc3AgQgL0EMaiAFKQIANwIAIC9BFGogCSkCADcCACAvQRxqIAYpAgA3AgAgL0EkaiADQcAXaigCADYCAEHZvsIALQAAGkHQAEEIELAEIipFDUwgA0HRm8AAQcAAEHogAy0AAA0NIAUgAikDACKLATcDACAGIAQpAwAijAE3AwAgCSABKQMAIo0BNwMAICYgjAE3AgAgISCNATcCACAgIIsBNwIAIAMgAykDCDcCtBYgA0GRnMAAQcAAEHogAy0AAA0OIBcgAikDACKLATcDACAZIAQpAwAijAE3AwAgJCABKQMAIo0BNwMAIAwgjAE3AgAgEyCNATcCACAWIIsBNwIAIAMgAykDCDcCpBcgKkEBNgIAICpBBzYCKCAqIAMpArAWNwIEICpBDGogA0G4FmopAgA3AgAgKkEUaiADQcAWaikCADcCACAqQRxqIANByBZqKQIANwIAICpBJGogA0HQFmooAgA2AgAgKkEsaiADKQKgFzcCACAqQTRqIAUpAgA3AgAgKkE8aiAJKQIANwIAICpBxABqIAYpAgA3AgAgKkHMAGogA0HAF2ooAgA2AgBB2b7CAC0AABpB0ABBCBCwBCIrRQ1MIANB0ZzAAEHAABB6IAMtAAANDyAFIAIpAwAiiwE3AwAgBiAEKQMAIowBNwMAIAkgASkDACKNATcDACAmIIwBNwIAICEgjQE3AgAgICCLATcCACADIAMpAwg3ArQWIANBkZ3AAEE/EHogAy0AAA0QIBcgAikDACKLATcDACAZIAQpAwAijAE3AwAgJCABKQMAIo0BNwMAIAwgjAE3AgAgEyCNATcCACAWIIsBNwIAIAMgAykDCDcCpBcgK0ECNgIAICtBCDYCKCArIAMpArAWNwIEICtBDGogA0G4FmopAgA3AgAgK0EUaiADQcAWaikCADcCACArQRxqIANByBZqKQIANwIAICtBJGogA0HQFmooAgA2AgAgK0EsaiADKQKgFzcCACArQTRqIAUpAgA3AgAgK0E8aiAJKQIANwIAICtBxABqIAYpAgA3AgAgK0HMAGogA0HAF2ooAgA2AgBB2b7CAC0AABpB0ABBCBCwBCIuRQ1MIANB0J3AAEE/EHogAy0AAA0RIAUgAikDACKLATcDACAGIAQpAwAijAE3AwAgCSABKQMAIo0BNwMAICYgjAE3AgAgISCNATcCACAgIIsBNwIAIAMgAykDCDcCtBYgA0GPnsAAQT8QeiADLQAADRIgFyACKQMAIosBNwMAIBkgBCkDACKMATcDACAkIAEpAwAijQE3AwAgDCCMATcCACATII0BNwIAIBYgiwE3AgAgAyADKQMINwKkFyAuQQM2AgAgLkEJNgIoIC4gAykCsBY3AgQgLkEMaiADQbgWaikCADcCACAuQRRqIANBwBZqKQIANwIAIC5BHGogA0HIFmopAgA3AgAgLkEkaiADQdAWaigCADYCACAuQSxqIAMpAqAXNwIAIC5BNGogBSkCADcCACAuQTxqIAkpAgA3AgAgLkHEAGogBikCADcCACAuQcwAaiADQcAXaigCADYCAEHZvsIALQAAGkHQAEEIELAEIjxFDUwgA0HOnsAAQcAAEHogAy0AAA0TIAUgAikDACKLATcDACAGIAQpAwAijAE3AwAgCSABKQMAIo0BNwMAICYgjAE3AgAgISCNATcCACAgIIsBNwIAIAMgAykDCDcCtBYgA0GOn8AAQT8QeiADLQAADRQgFyACKQMAIosBNwMAIBkgBCkDACKMATcDACAkIAEpAwAijQE3AwAgDCCMATcCACATII0BNwIAIBYgiwE3AgAgAyADKQMINwKkFyA8QQQ2AgAgPEEKNgIoIDwgAykCsBY3AgQgPEEMaiADQbgWaikCADcCACA8QRRqIANBwBZqKQIANwIAIDxBHGogA0HIFmopAgA3AgAgPEEkaiADQdAWaigCADYCACA8QSxqIAMpAqAXNwIAIDxBNGogBSkCADcCACA8QTxqIAkpAgA3AgAgPEHEAGogBikCADcCACA8QcwAaiADQcAXaigCADYCAEHZvsIALQAAGkHQAEEIELAEIiVFDUwgA0HNn8AAQcAAEHogAy0AAA0VIAUgAikDACKLATcDACAGIAQpAwAijAE3AwAgCSABKQMAIo0BNwMAICYgjAE3AgAgISCNATcCACAgIIsBNwIAIAMgAykDCDcCtBYgA0GNoMAAQcAAEHogAy0AAA0WIBcgAikDACKLATcDACAZIAQpAwAijAE3AwAgJCABKQMAIo0BNwMAIAwgjAE3AgAgEyCNATcCACAWIIsBNwIAIAMgAykDCDcCpBcgJUEFNgIAICVBCzYCKCAlIAMpArAWNwIEICVBDGogA0G4FmopAgA3AgAgJUEUaiADQcAWaikCADcCACAlQRxqIANByBZqKQIANwIAICVBJGogA0HQFmooAgA2AgAgJUEsaiADKQKgFzcCACAlQTRqIAUpAgA3AgAgJUE8aiAJKQIANwIAICVBxABqIAYpAgA3AgAgJUHMAGogA0HAF2ooAgA2AgAgG0GMAWpBAjYCACAbQYgBaiAlNgIAIBtBgAFqQoKAgIAgNwIAIBtB/ABqIDw2AgAgG0H0AGpCgoCAgCA3AgAgG0HwAGogLjYCACAbQegAakKCgICAIDcCACAbQeQAaiArNgIAIBtB3ABqQoKAgIAgNwIAIBtB2ABqICo2AgAgG0HQAGpCgYCAgCA3AgAgG0HMAGogLzYCACAbQcQAakKCgICAEDcCACAbQUBrICk2AgAgG0E4akKCgICAIDcCACAbQTRqICg2AgAgG0EsakKCgICAIDcCACAbQShqIDE2AgAgG0EgakKCgICAIDcCACAbQRxqIBw2AgAgG0EUakKCgICAIDcCACAbQRBqIBA2AgAgG0KCgICAIDcCCCAbIBI2AgQgG0ECNgIAQdm+wgAtAAAaQZABQQQQsAQiEkUNS0HZvsIALQAAGkEoQQgQsAQiEEUNTSADQZCWwABBARB6IAMtAAANFyAtIAIpAwAiiwE3AwAgIiAEKQMAIowBNwMAIB8gASkDACKNATcDACAMIIwBNwIAIBMgjQE3AgAgFiCLATcCACADIAMpAwg3AqQXIBBBADYCACAQIAMpAqAXNwIEIBBBDGogBSkCADcCACAQQRRqIAkpAgA3AgAgEEEcaiAGKQIANwIAIBBBJGogA0HAF2ooAgA2AgBB2b7CAC0AABpBKEEIELAEIhxFDU0gA0HNoMAAQcAAEHogAy0AAA0YIC0gAikDACKLATcDACAiIAQpAwAijAE3AwAgHyABKQMAIo0BNwMAIAwgjAE3AgAgEyCNATcCACAWIIsBNwIAIAMgAykDCDcCpBcgHEEBNgIAIBwgAykCoBc3AgQgHEEMaiAFKQIANwIAIBxBFGogCSkCADcCACAcQRxqIAYpAgA3AgAgHEEkaiADQcAXaigCADYCAEHZvsIALQAAGkEoQQgQsAQiMUUNTSADQY2hwABBwAAQeiADLQAADRkgLSACKQMAIosBNwMAICIgBCkDACKMATcDACAfIAEpAwAijQE3AwAgDCCMATcCACATII0BNwIAIBYgiwE3AgAgAyADKQMINwKkFyAxQQI2AgAgMSADKQKgFzcCBCAxQQxqIAUpAgA3AgAgMUEUaiAJKQIANwIAIDFBHGogBikCADcCACAxQSRqIANBwBdqKAIANgIAQdm+wgAtAAAaQShBCBCwBCIoRQ1NIANBkZvAAEHAABB6IAMtAAANGiAtIAIpAwAiiwE3AwAgIiAEKQMAIowBNwMAIB8gASkDACKNATcDACAMIIwBNwIAIBMgjQE3AgAgFiCLATcCACADIAMpAwg3AqQXIChBAzYCACAoIAMpAqAXNwIEIChBDGogBSkCADcCACAoQRRqIAkpAgA3AgAgKEEcaiAGKQIANwIAIChBJGogA0HAF2ooAgA2AgBB2b7CAC0AABpBKEEIELAEIilFDU0gA0HNocAAQTAQeiADLQAADRsgLSADQRBqKQMAIosBNwMAICIgA0EgaikDACKMATcDACAfIANBGGopAwAijQE3AwAgDCCMATcCACATII0BNwIAIBYgiwE3AgAgAyADKQMINwKkFyApQQQ2AgAgKSADKQKgFzcCBCApQQxqIANBqBdqKQIANwIAIClBFGogA0GwF2opAgA3AgAgKUEcaiADQbgXaikCADcCACApQSRqIANBwBdqKAIANgIAQdm+wgAtAAAaQShBCBCwBCIqRQ1NIANB/aHAAEEwEHogAy0AAA0cIC0gA0EQaikDACKLATcDACAiIANBIGopAwAijAE3AwAgHyADQRhqKQMAIo0BNwMAIAwgjAE3AgAgEyCNATcCACAWIIsBNwIAIAMgAykDCDcCpBcgKkEFNgIAICogAykCoBc3AgQgKkEMaiADQagXaikCADcCACAqQRRqIANBsBdqKQIANwIAICpBHGogA0G4F2opAgA3AgAgKkEkaiADQcAXaigCADYCAEHZvsIALQAAGkEoQQgQsAQiK0UNTSADQZCWwABBARB6IAMtAAANHSAtIANBEGopAwAiiwE3AwAgIiADQSBqKQMAIowBNwMAIB8gA0EYaikDACKNATcDACAMIIwBNwIAIBMgjQE3AgAgFiCLATcCACADIAMpAwg3AqQXICtBBjYCACArIAMpAqAXNwIEICtBDGogA0GoF2opAgA3AgAgK0EUaiADQbAXaikCADcCACArQRxqIANBuBdqKQIANwIAICtBJGogA0HAF2ooAgA2AgBB2b7CAC0AABpBKEEIELAEIi5FDU0gA0HNoMAAQcAAEHogAy0AAA0eIC0gA0EQaikDACKLATcDACAiIANBIGopAwAijAE3AwAgHyADQRhqKQMAIo0BNwMAIAwgjAE3AgAgEyCNATcCACAWIIsBNwIAIAMgAykDCDcCpBcgLkEHNgIAIC4gAykCoBc3AgQgLkEMaiADQagXaikCADcCACAuQRRqIANBsBdqKQIANwIAIC5BHGogA0G4F2opAgA3AgAgLkEkaiADQcAXaigCADYCAEHZvsIALQAAGkEoQQgQsAQiPEUNTSADQY2hwABBwAAQeiADLQAADR8gLSADQRBqKQMAIosBNwMAICIgA0EgaikDACKMATcDACAfIANBGGopAwAijQE3AwAgDCCMATcCACATII0BNwIAIBYgiwE3AgAgAyADKQMINwKkFyA8QQg2AgAgPCADKQKgFzcCBCA8QQxqIANBqBdqKQIANwIAIDxBFGogA0GwF2opAgA3AgAgPEEcaiADQbgXaikCADcCACA8QSRqIANBwBdqKAIANgIAQdm+wgAtAAAaQShBCBCwBCIlRQ1NIANBkZvAAEHAABB6IAMtAAANICAtIANBEGopAwAiiwE3AwAgIiADQSBqKQMAIowBNwMAIB8gA0EYaikDACKNATcDACAMIIwBNwIAIBMgjQE3AgAgFiCLATcCACADIAMpAwg3AqQXICVBCTYCACAlIAMpAqAXNwIEICVBDGogA0GoF2opAgA3AgAgJUEUaiADQbAXaikCADcCACAlQRxqIANBuBdqKQIANwIAICVBJGogA0HAF2ooAgA2AgBB2b7CAC0AABpBKEEIELAEIi9FDU0gA0HNocAAQTAQeiADLQAADSEgLSADQRBqKQMAIosBNwMAICIgA0EgaikDACKMATcDACAfIANBGGopAwAijQE3AwAgDCCMATcCACATII0BNwIAIBYgiwE3AgAgAyADKQMINwKkFyAvQQo2AgAgLyADKQKgFzcCBCAvQQxqIANBqBdqKQIANwIAIC9BFGogA0GwF2opAgA3AgAgL0EcaiADQbgXaikCADcCACAvQSRqIANBwBdqKAIANgIAQdm+wgAtAAAaQShBCBCwBCI0RQ1NIANB/aHAAEEwEHogAy0AAA0iIC0gA0EQaikDACKLATcDACAiIANBIGopAwAijAE3AwAgHyADQRhqKQMAIo0BNwMAIAwgjAE3AgAgEyCNATcCACAWIIsBNwIAIAMgAykDCDcCpBcgNEELNgIAIDQgAykCoBc3AgQgNEEMaiADQagXaikCADcCACA0QRRqIANBsBdqKQIANwIAIDRBHGogA0G4F2opAgA3AgAgNEEkaiADQcAXaigCADYCACASQYwBakEBNgIAIBJBiAFqIDQ2AgAgEkGAAWpCgYCAgBA3AgAgEkH8AGogLzYCACASQfQAakKBgICAEDcCACASQfAAaiAlNgIAIBJB6ABqQoGAgIAQNwIAIBJB5ABqIDw2AgAgEkHcAGpCgYCAgBA3AgAgEkHYAGogLjYCACASQdAAakKBgICAEDcCACASQcwAaiArNgIAIBJBxABqQoGAgIAQNwIAIBJBQGsgKjYCACASQThqQoGAgIAQNwIAIBJBNGogKTYCACASQSxqQoGAgIAQNwIAIBJBKGogKDYCACASQSBqQoGAgIAQNwIAIBJBHGogMTYCACASQRRqQoGAgIAQNwIAIBJBEGogHDYCACASQoGAgIAQNwIIIBIgEDYCBCASQQE2AgBB2b7CAC0AABpBkAFBBBCwBCIQRQ1LQdm+wgAtAAAaQdAAQQgQsAQiHEUNTCADQZCWwABBARB6IAMtAAANIyAFIAIpAwAiiwE3AwAgBiAEKQMAIowBNwMAIAkgASkDACKNATcDACAmIIwBNwIAICEgjQE3AgAgICCLATcCACADIAMpAwg3ArQWIANBkZbAAEECEHogAy0AAA0kIBcgAikDACKLATcDACAZIAQpAwAijAE3AwAgJCABKQMAIo0BNwMAIAwgjAE3AgAgEyCNATcCACAWIIsBNwIAIAMgAykDCDcCpBcgHEEANgIAIBxBBjYCKCAcIAMpArAWNwIEIBxBDGogA0G4FmopAgA3AgAgHEEUaiADQcAWaikCADcCACAcQRxqIANByBZqKQIANwIAIBxBJGogA0HQFmooAgA2AgAgHEEsaiADKQKgFzcCACAcQTRqIAUpAgA3AgAgHEE8aiAJKQIANwIAIBxBxABqIAYpAgA3AgAgHEHMAGogA0HAF2ooAgA2AgBB2b7CAC0AABpB0ABBCBCwBCIxRQ1MIANBraLAAEHAABB6IAMtAAANJSAFIAIpAwAiiwE3AwAgBiAEKQMAIowBNwMAIAkgASkDACKNATcDACAmIIwBNwIAICEgjQE3AgAgICCLATcCACADIAMpAwg3ArQWIANB7aLAAEHAABB6IAMtAAANJiAXIAIpAwAiiwE3AwAgGSAEKQMAIowBNwMAICQgASkDACKNATcDACAMIIwBNwIAIBMgjQE3AgAgFiCLATcCACADIAMpAwg3AqQXIDFBATYCACAxQQc2AiggMSADKQKwFjcCBCAxQQxqIANBuBZqKQIANwIAIDFBFGogA0HAFmopAgA3AgAgMUEcaiADQcgWaikCADcCACAxQSRqIANB0BZqKAIANgIAIDFBLGogAykCoBc3AgAgMUE0aiAFKQIANwIAIDFBPGogCSkCADcCACAxQcQAaiAGKQIANwIAIDFBzABqIANBwBdqKAIANgIAQdm+wgAtAAAaQdAAQQgQsAQiKEUNTCADQa2jwABBPxB6IAMtAAANJyAFIAIpAwAiiwE3AwAgBiAEKQMAIowBNwMAIAkgASkDACKNATcDACAmIIwBNwIAICEgjQE3AgAgICCLATcCACADIAMpAwg3ArQWIANB7KPAAEHAABB6IAMtAAANKCAXIAIpAwAiiwE3AwAgGSAEKQMAIowBNwMAICQgASkDACKNATcDACAMIIwBNwIAIBMgjQE3AgAgFiCLATcCACADIAMpAwg3AqQXIChBAjYCACAoQQg2AiggKCADKQKwFjcCBCAoQQxqIANBuBZqKQIANwIAIChBFGogA0HAFmopAgA3AgAgKEEcaiADQcgWaikCADcCACAoQSRqIANB0BZqKAIANgIAIChBLGogAykCoBc3AgAgKEE0aiAFKQIANwIAIChBPGogCSkCADcCACAoQcQAaiAGKQIANwIAIChBzABqIANBwBdqKAIANgIAQdm+wgAtAAAaQdAAQQgQsAQiKUUNTCADQY+ewABBPxB6IAMtAAANKSAFIAIpAwAiiwE3AwAgBiAEKQMAIowBNwMAIAkgASkDACKNATcDACAmIIwBNwIAICEgjQE3AgAgICCLATcCACADIAMpAwg3ArQWIANBrKTAAEHAABB6IAMtAAANKiAXIAIpAwAiiwE3AwAgGSAEKQMAIowBNwMAICQgASkDACKNATcDACAMIIwBNwIAIBMgjQE3AgAgFiCLATcCACADIAMpAwg3AqQXIClBAzYCACApQQk2AiggKSADKQKwFjcCBCApQQxqIANBuBZqKQIANwIAIClBFGogA0HAFmopAgA3AgAgKUEcaiADQcgWaikCADcCACApQSRqIANB0BZqKAIANgIAIClBLGogAykCoBc3AgAgKUE0aiAFKQIANwIAIClBPGogCSkCADcCACApQcQAaiAGKQIANwIAIClBzABqIANBwBdqKAIANgIAQdm+wgAtAAAaQdAAQQgQsAQiKkUNTCADQeykwABBwAAQeiADLQAADSsgBSACKQMAIosBNwMAIAYgBCkDACKMATcDACAJIAEpAwAijQE3AwAgJiCMATcCACAhII0BNwIAICAgiwE3AgAgAyADKQMINwK0FiADQaylwABBPxB6IAMtAAANLCAXIAIpAwAiiwE3AwAgGSAEKQMAIowBNwMAICQgASkDACKNATcDACAMIIwBNwIAIBMgjQE3AgAgFiCLATcCACADIAMpAwg3AqQXICpBBDYCACAqQQo2AiggKiADKQKwFjcCBCAqQQxqIANBuBZqKQIANwIAICpBFGogA0HAFmopAgA3AgAgKkEcaiADQcgWaikCADcCACAqQSRqIANB0BZqKAIANgIAICpBLGogAykCoBc3AgAgKkE0aiAFKQIANwIAICpBPGogCSkCADcCACAqQcQAaiAGKQIANwIAICpBzABqIANBwBdqKAIANgIAQdm+wgAtAAAaQdAAQQgQsAQiK0UNTCADQeulwABBPxB6IAMtAAANLSAFIAIpAwAiiwE3AwAgBiAEKQMAIowBNwMAIAkgASkDACKNATcDACAmIIwBNwIAICEgjQE3AgAgICCLATcCACADIAMpAwg3ArQWIANBqqbAAEHAABB6IAMtAAANLiAXIAIpAwAiiwE3AwAgGSAEKQMAIowBNwMAICQgASkDACKNATcDACAMIIwBNwIAIBMgjQE3AgAgFiCLATcCACADIAMpAwg3AqQXICtBBTYCACArQQs2AiggKyADKQKwFjcCBCArQQxqIANBuBZqKQIANwIAICtBFGogA0HAFmopAgA3AgAgK0EcaiADQcgWaikCADcCACArQSRqIANB0BZqKAIANgIAICtBLGogAykCoBc3AgAgK0E0aiAFKQIANwIAICtBPGogCSkCADcCACArQcQAaiAGKQIANwIAICtBzABqIANBwBdqKAIANgIAQdm+wgAtAAAaQShBCBCwBCI8RQ1NIANBkZvAAEHAABB6IAMtAAANLyAtIANBEGopAwAiiwE3AwAgIiADQSBqKQMAIowBNwMAIB8gA0EYaikDACKNATcDACAMIIwBNwIAIBMgjQE3AgAgFiCLATcCACADIAMpAwg3AqQXIDxBBjYCACA8IAMpAqAXNwIEIDxBDGogA0GoF2opAgA3AgAgPEEUaiADQbAXaikCADcCACA8QRxqIANBuBdqKQIANwIAIDxBJGogA0HAF2ooAgA2AgBB2b7CAC0AABpB0ABBCBCwBCIfRQ1MIANB6qbAAEE+EHogAy0AAA0wIAUgAikDACKLATcDACAGIAQpAwAijAE3AwAgCSABKQMAIo0BNwMAICYgjAE3AgAgISCNATcCACAgIIsBNwIAIAMgAykDCDcCtBYgA0Gop8AAQcAAEHogAy0AAA0xIBcgAikDACKLATcDACAZIAQpAwAijAE3AwAgJCABKQMAIo0BNwMAIAwgjAE3AgAgEyCNATcCACAWIIsBNwIAIAMgAykDCDcCpBcgH0EBNgIAIB9BBzYCKCAfIAMpArAWNwIEIB9BDGogA0G4FmopAgA3AgAgH0EUaiADQcAWaikCADcCACAfQRxqIANByBZqKQIANwIAIB9BJGogA0HQFmooAgA2AgAgH0EsaiADKQKgFzcCACAfQTRqIAUpAgA3AgAgH0E8aiAJKQIANwIAIB9BxABqIAYpAgA3AgAgH0HMAGogA0HAF2ooAgA2AgBB2b7CAC0AABpB0ABBCBCwBCIiRQ1MIANB6KfAAEE/EHogAy0AAA0yIAUgAikDACKLATcDACAGIAQpAwAijAE3AwAgCSABKQMAIo0BNwMAICYgjAE3AgAgISCNATcCACAgIIsBNwIAIAMgAykDCDcCtBYgA0GnqMAAQcAAEHogAy0AAA0zIBcgAikDACKLATcDACAZIAQpAwAijAE3AwAgJCABKQMAIo0BNwMAIAwgjAE3AgAgEyCNATcCACAWIIsBNwIAIAMgAykDCDcCpBcgIkECNgIAICJBCDYCKCAiIAMpArAWNwIEICJBDGogA0G4FmopAgA3AgAgIkEUaiADQcAWaikCADcCACAiQRxqIANByBZqKQIANwIAICJBJGogA0HQFmooAgA2AgAgIkEsaiADKQKgFzcCACAiQTRqIAUpAgA3AgAgIkE8aiAJKQIANwIAICJBxABqIAYpAgA3AgAgIkHMAGogA0HAF2ooAgA2AgBB2b7CAC0AABpB0ABBCBCwBCItRQ1MIANB56jAAEHAABB6IAMtAAANNCAFIAIpAwAiiwE3AwAgBiAEKQMAIowBNwMAIAkgASkDACKNATcDACAmIIwBNwIAICEgjQE3AgAgICCLATcCACADIAMpAwg3ArQWIANBkpjAAEHAABB6IAMtAAANNSAXIAIpAwAiiwE3AwAgGSAEKQMAIowBNwMAICQgASkDACKNATcDACAMIIwBNwIAIBMgjQE3AgAgFiCLATcCACADIAMpAwg3AqQXIC1BAzYCACAtQQk2AiggLSADKQKwFjcCBCAtQQxqIANBuBZqKQIANwIAIC1BFGogA0HAFmopAgA3AgAgLUEcaiADQcgWaikCADcCACAtQSRqIANB0BZqKAIANgIAIC1BLGogAykCoBc3AgAgLUE0aiAFKQIANwIAIC1BPGogCSkCADcCACAtQcQAaiAGKQIANwIAIC1BzABqIANBwBdqKAIANgIAQdm+wgAtAAAaQdAAQQgQsAQiLkUNTCADQaepwABBwAAQeiADLQAADTYgBSACKQMAIosBNwMAIAYgBCkDACKMATcDACAJIAEpAwAijQE3AwAgJiCMATcCACAhII0BNwIAICAgiwE3AgAgAyADKQMINwK0FiADQeepwABBwAAQeiADLQAADTcgFyACKQMAIosBNwMAIBkgBCkDACKMATcDACAkIAEpAwAijQE3AwAgDCCMATcCACATII0BNwIAIBYgiwE3AgAgAyADKQMINwKkFyAuQQQ2AgAgLkEKNgIoIC4gAykCsBY3AgQgLkEMaiADQbgWaikCADcCACAuQRRqIANBwBZqKQIANwIAIC5BHGogA0HIFmopAgA3AgAgLkEkaiADQdAWaigCADYCACAuQSxqIAMpAqAXNwIAIC5BNGogBSkCADcCACAuQTxqIAkpAgA3AgAgLkHEAGogBikCADcCACAuQcwAaiADQcAXaigCADYCAEHZvsIALQAAGkHQAEEIELAEIgxFDUwgA0GnqsAAQcAAEHogAy0AAA04IAUgAikDACKLATcDACAGIAQpAwAijAE3AwAgCSABKQMAIo0BNwMAICYgjAE3AgAgISCNATcCACAgIIsBNwIAIAMgAykDCDcCtBYgA0HnqsAAQcAAEHogAy0AAA05IANBrhdqIAIpAwAijAE3AQAgA0G2F2ogASkDACKLATcBACAXIIwBNwMAIBkgBCkDACKMATcDACAkIIsBNwMAIAMgAykDCCKNATcDgBcgA0EcaiIFIIwBNwIAIANBFGoiBiCLATcCACADQQxqIBcpAwA3AgAgAyCNATcCBCAMQQU2AgAgDEELNgIoIAwgAykCsBY3AgQgDEEMaiADQbgWaikCADcCACAMQRRqIANBwBZqKQIANwIAIAxBHGogA0HIFmopAgA3AgAgDEEkaiADQdAWaigCADYCACAMQSxqIAMpAgA3AgAgDEE0aiADQQhqKQIANwIAIAxBPGogAikCADcCACAMQcQAaiABKQIANwIAIAxBzABqIAQoAgA2AgAgEEGMAWpBAjYCACAQQYgBaiAMNgIAIBBBgAFqQoKAgIAgNwIAIBBB/ABqIC42AgAgEEH0AGpCgoCAgCA3AgAgEEHwAGogLTYCACAQQegAakKCgICAIDcCACAQQeQAaiAiNgIAIBBB3ABqQoKAgIAgNwIAIBBB2ABqIB82AgAgEEHQAGpCgYCAgCA3AgAgEEHMAGogPDYCACAQQcQAakKCgICAEDcCACAQQUBrICs2AgAgEEE4akKCgICAIDcCACAQQTRqICo2AgAgEEEsakKCgICAIDcCACAQQShqICk2AgAgEEEgakKCgICAIDcCACAQQRxqICg2AgAgEEEUakKCgICAIDcCACAQQRBqIDE2AgAgEEKCgICAIDcCCCAQIBw2AgQgEEECNgIAIANBLGpBDDYCACADQShqIBA2AgAgA0EkakEMNgIAIAZBDDYCACABIBI2AgAgBUKMgICAMDcCACADIBs2AgggA0KBgICAwAE3AgAgA0KMgICAIDcCDBDdAyIBIAEpAwAiiwFCAXw3AwAgASkDCCGMASADQdAXaiITQfDOwQApAwA3AwAgA0HgF2oiFiCMATcDACADQdgXaiIbIIsBNwMAIANB6M7BACkDADcDyBcjAEEgayIEJABBAkEDIANByBdqIgYoAgwbIgEgBigCCEsEQCAGIAEgBkEQahBuCyAEQQhqIhIgA0EIaikCADcDACAEIAMpAgAiiwE3AwAgBEEUaiAGIIsBpyAEQQRyIgkQ7wECQCAEKAIUIgxBgICAgHhGDQAgBCgCGCECIAQoAhwiBQRAIAIhAQNAIAEoAgAiEARAIAFBBGooAgAgEEEobBC5BAsgAUEMaiEBIAVBAWsiBQ0ACwsgDEUNACACIAxBDGwQuQQLIBIgA0EYaikCADcDACAEIAMpAhAiiwE3AwAgBEEUaiAGIIsBpyAJEO8BAkAgBCgCFCIMQYCAgIB4Rg0AIAQoAhghAiAEKAIcIgUEQCACIQEDQCABKAIAIhIEQCABQQRqKAIAIBJBKGwQuQQLIAFBDGohASAFQQFrIgUNAAsLIAxFDQAgAiAMQQxsELkECyAEQQhqIANBKGopAgA3AwAgBCADKQIgIosBNwMAIARBFGogBiCLAacgCRDvAQJAIAQoAhQiBkGAgICAeEYNACAEKAIYIQIgBCgCHCIFBEAgAiEBA0AgASgCACIJBEAgAUEEaigCACAJQShsELkECyABQQxqIQEgBUEBayIFDQALCyAGRQ0AIAIgBkEMbBC5BAsgBEEgaiQAIDJBGGogFikDADcDACAyQRBqIBspAwA3AwAgMkEIaiATKQMANwMAIDIgAykDyBc3AwAMSgsgAyADLQABOgAAQbyOwABBKyADQairwABBlL/AABC+AwALIANBiBdqIiEgBCkDACKLATcDACADQZgXaiIoIAYpAwAijAE3AwAgA0GQF2oiKSATKQMAIo0BNwMAIANBvBdqIhAgjAE3AgAgA0G0F2oiJCCNATcCACADQawXaiImIIsBNwIAIAMgAykDCDcCpBcgCUEANgIAIAlBBjYCKCAJIAMpArAWNwIEIAlBDGogA0G4FmoihQEiLSIWIispAgA3AgAgCUEUaiADQcAWaiKGASISIiopAgA3AgAgCUEcaiADQcgWaiJiIiApAgA3AgAgCUEkaiADQdAWaigCADYCACAJQSxqIAMpAqAXNwIAIAlBNGogAikCADcCACAJQTxqIAwpAgA3AgAgCUHEAGogBSkCADcCACAJQcwAaiADQcAXaigCADYCAEHZvsIALQAAGkHQAEEIELAEIgxFDUogA0HZssAAQeAAEHogAy0AAA04IANBqBdqImMiGSIbIANBEGoiBCkDACKLATcDACADQbgXaiJWIhciEyADQSBqIgIpAwAijAE3AwAgA0GwF2oiBiADQRhqIgUpAwAijQE3AwAgA0HMFmoiLiCMATcCACADQcQWaiI8II0BNwIAIANBvBZqIiUgiwE3AgAgAyADKQMINwK0FiADQdmywABB4AAQeiADLQAADTkgISAEKQMAIosBNwMAICggAikDACKMATcDACApIAUpAwAijQE3AwAgECCMATcCACAkII0BNwIAICYgiwE3AgAgAyADKQMINwKkFyAMQQE2AgAgDEEHNgIoIAwgAykCsBY3AgQgDEEMaiAWKQIANwIAIAxBFGogKikCADcCACAMQRxqICApAgA3AgAgDEEkaiADQdAWaigCADYCACAMQSxqIAMpAqAXNwIAIAxBNGogGykCADcCACAMQTxqIAYpAgA3AgAgDEHEAGogEykCADcCACAMQcwAaiADQcAXaigCADYCAEHZvsIALQAAGkEoQQgQsAQiH0UNSyADQbmzwABB0AAQeiADLQAADTogKyAEKQMAIosBNwMAICAgAikDACKMATcDACAqIAUpAwAijQE3AwAgECCMATcCACAkII0BNwIAICYgiwE3AgAgAyADKQMINwKkFyAfQQI2AgAgHyADKQKgFzcCBCAfQQxqIBkpAgA3AgAgH0EUaiAGKQIANwIAIB9BHGogFykCADcCACAfQSRqIANBwBdqKAIANgIAQdm+wgAtAAAaQShBCBCwBCIiRQ1LIANBibTAAEHfABB6IAMtAAANOyArIAQpAwAiiwE3AwAgICACKQMAIowBNwMAICogBSkDACKNATcDACAQIIwBNwIAICQgjQE3AgAgJiCLATcCACADIAMpAwg3AqQXICJBCTYCACAiIAMpAqAXNwIEICJBDGogGykCADcCACAiQRRqIAYpAgA3AgAgIkEcaiATKQIANwIAICJBJGogA0HAF2ooAgA2AgBB2b7CAC0AABpB0ABBCBCwBCITRQ1KIANB6LTAAEHgABB6IAMtAAANPCAZIAQpAwAiiwE3AwAgFyACKQMAIowBNwMAIAYgBSkDACKNATcDACAuIIwBNwIAIDwgjQE3AgAgJSCLATcCACADIAMpAwg3ArQWIANByLXAAEHgABB6IAMtAAANPSAhIAQpAwAiiwE3AwAgKCACKQMAIowBNwMAICkgBSkDACKNATcDACAQIIwBNwIAICQgjQE3AgAgJiCLATcCACADIAMpAwg3AqQXIBNBBDYCACATQQo2AiggEyADKQKwFjcCBCATQQxqIBYpAgA3AgAgE0EUaiASKQIANwIAIBNBHGogICkCADcCACATQSRqIANB0BZqKAIANgIAIBNBLGogAykCoBc3AgAgE0E0aiAZKQIANwIAIBNBPGogBikCADcCACATQcQAaiAXKQIANwIAIBNBzABqIANBwBdqKAIANgIAQdm+wgAtAAAaQdAAQQgQsAQiFkUNSiADQai2wABB3wAQeiADLQAADT4gGSAEKQMAIosBNwMAIBcgAikDACKMATcDACAGIAUpAwAijQE3AwAgLiCMATcCACA8II0BNwIAICUgiwE3AgAgAyADKQMINwK0FiADQai2wABB3wAQeiADLQAADT8gISAEKQMAIosBNwMAICggAikDACKMATcDACApIAUpAwAijQE3AwAgECCMATcCACAkII0BNwIAICYgiwE3AgAgAyADKQMINwKkFyAWQQU2AgAgFkELNgIoIBYgAykCsBY3AgQgFkEMaiAtKQIANwIAIBZBFGogEikCADcCACAWQRxqICApAgA3AgAgFkEkaiADQdAWaigCADYCACAWQSxqIAMpAqAXNwIAIBZBNGogGSkCADcCACAWQTxqIAYpAgA3AgAgFkHEAGogFykCADcCACAWQcwAaiADQcAXaigCADYCAEHZvsIALQAAGkEoQQgQsAQiLUUNSyADQYe3wABB4AAQeiADLQAADUAgKyAEKQMAIosBNwMAICAgAikDACKMATcDACAqIAUpAwAijQE3AwAgECCMATcCACAkII0BNwIAICYgiwE3AgAgAyADKQMINwKkFyAtQQY2AgAgLSADKQKgFzcCBCAtQQxqIBspAgA3AgAgLUEUaiAGKQIANwIAIC1BHGogFykCADcCACAtQSRqIANBwBdqKAIANgIAQdm+wgAtAAAaQdAAQQgQsAQiG0UNSiADQee3wABB3gAQeiADLQAADUEgGSAEKQMAIosBNwMAIBcgAikDACKMATcDACAGIAUpAwAijQE3AwAgLiCMATcCACA8II0BNwIAICUgiwE3AgAgAyADKQMINwK0FiADQcW4wABB3wAQeiADLQAADUIgISAEKQMAIosBNwMAICggAikDACKMATcDACApIAUpAwAijQE3AwAgECCMATcCACAkII0BNwIAICYgiwE3AgAgAyADKQMINwKkFyAbQQE2AgAgG0EHNgIoIBsgAykCsBY3AgQgG0EMaiCFASkCADcCACAbQRRqIIYBKQIANwIAIBtBHGogYikCADcCACAbQSRqIANB0BZqKAIANgIAIBtBLGogAykCoBc3AgAgG0E0aiAZKQIANwIAIBtBPGogBikCADcCACAbQcQAaiAXKQIANwIAIBtBzABqIANBwBdqKAIANgIAQdm+wgAtAAAaQdAAQQgQsAQiEkUNSiADQaS5wABB4AAQeiADLQAADUMgGSAEKQMAIosBNwMAIBcgAikDACKMATcDACAGIAUpAwAijQE3AwAgLiCMATcCACA8II0BNwIAICUgiwE3AgAgAyADKQMINwK0FiADQaS5wABB4AAQeiADLQAADUQgISAEKQMAIosBNwMAICggAikDACKMATcDACApIAUpAwAijQE3AwAgECCMATcCACAkII0BNwIAICYgiwE3AgAgAyADKQMINwKkFyASQQI2AgAgEkEINgIoIBIgAykCsBY3AgQgEkEMaiADQbgWaikCADcCACASQRRqIANBwBZqKQIANwIAIBJBHGogA0HIFmopAgA3AgAgEkEkaiADQdAWaigCADYCACASQSxqIAMpAqAXNwIAIBJBNGogGSkCADcCACASQTxqIAYpAgA3AgAgEkHEAGogFykCADcCACASQcwAaiADQcAXaigCADYCAEHZvsIALQAAGkEoQQgQsAQiHEUNSyADQYS6wABB3wAQeiADLQAADUUgKyAEKQMAIosBNwMAICAgAikDACKMATcDACAqIAUpAwAijQE3AwAgECCMATcCACAkII0BNwIAICYgiwE3AgAgAyADKQMINwKkFyAcQQM2AgAgHCADKQKgFzcCBCAcQQxqIBkpAgA3AgAgHEEUaiAGKQIANwIAIBxBHGogFykCADcCACAcQSRqIANBwBdqKAIANgIAQdm+wgAtAAAaQShBCBCwBCIxRQ1LIANB47rAAEHQABB6IAMtAAANRiArIAQpAwAiiwE3AwAgICACKQMAIowBNwMAICogBSkDACKNATcDACAQIIwBNwIAICQgjQE3AgAgJiCLATcCACADIAMpAwg3AqQXIDFBCjYCACAxIAMpAqAXNwIEIDFBDGogYykCADcCACAxQRRqIAYpAgA3AgAgMUEcaiBWKQIANwIAIDFBJGogA0HAF2ooAgA2AgBB2b7CAC0AABpB0ABBCBCwBCIQRQ1KIANBs7vAAEHgABB6IAMtAAANRyAZIAQpAwAiiwE3AwAgFyACKQMAIowBNwMAIAYgBSkDACKNATcDACAuIIwBNwIAIDwgjQE3AgAgJSCLATcCACADIAMpAwg3ArQWIANBk7zAAEHfABB6IAMtAABFBEAgA0GuF2ogBCkDACKMATcBACADQbYXaiAFKQMAIosBNwEAICEgjAE3AwAgKCACKQMAIowBNwMAICkgiwE3AwAgAyADKQMIIo0BNwOAFyADQRxqIIwBNwIAIANBFGogiwE3AgAgA0EMaiAhKQMANwIAIAMgjQE3AgQgEEEFNgIAIBBBCzYCKCAQIAMpArAWNwIEIBBBDGogA0G4FmopAgA3AgAgEEEUaiADQcAWaikCADcCACAQQRxqIANByBZqKQIANwIAIBBBJGogA0HQFmooAgA2AgAgEEEsaiADKQIANwIAIBBBNGogA0EIaiIXKQIANwIAIBBBPGogBCkCADcCACAQQcQAaiAFKQIANwIAIBBBzABqIAIoAgA2AgAgAUGMAWpBAjYCACABQYgBaiAQNgIAIAFBgAFqQoGAgIAgNwIAIAFB/ABqIDE2AgAgAUH0AGpCgYCAgBA3AgAgAUHwAGogHDYCACABQegAakKCgICAEDcCACABQeQAaiASNgIAIAFB3ABqQoKAgIAgNwIAIAFB2ABqIBs2AgAgAUHQAGpCgYCAgCA3AgAgAUHMAGogLTYCACABQcQAakKCgICAEDcCACABQUBrIBY2AgAgAUE4akKCgICAIDcCACABQTRqIBM2AgAgAUEsakKBgICAIDcCACABQShqICI2AgAgAUEgakKBgICAEDcCACABQRxqIB82AgAgAUEUakKCgICAEDcCACABQRBqIAw2AgAgAUKCgICAIDcCCCABIAk2AgQgAUECNgIAIANBDDYC1BcgAyABNgLQFyADQoGAgIDAATcCyBcQ3QMiASABKQMAIosBQgF8NwMAIAEpAwghjAEgF0HwzsEAKQMANwMAIAUgjAE3AwAgBCCLATcDACADQejOwQApAwA3AwAjAEEwayIGJAAgAygCCEUEQCADQQEgBBBuCyAGQRBqIANByBdqIgFBCGopAgA3AwAgBkEBNgIcIAYgASkCACKLATcDCCAGQSRqIAMgiwGnIAZBCGpBBHIQ7wECQCAGKAIkIgxBgICAgHhGDQAgBigCKCECIAYoAiwiCQRAIAIhAQNAIAEoAgAiEwRAIAFBBGooAgAgE0EobBC5BAsgAUEMaiEBIAlBAWsiCQ0ACwsgDEUNACACIAxBDGwQuQQLIAZBMGokACAyQRhqIAUpAwA3AwAgMkEQaiAEKQMANwMAIDJBCGogFykDADcDACAyIAMpAwA3AwAMSQsgAyADLQABOgAAQbyOwABBKyADQairwABB9LzAABC+AwALIAMgAy0AAToAAEG8jsAAQSsgA0Goq8AAQaiywAAQvgMACyADIAMtAAE6AABBvI7AAEErIANBqKvAAEGYssAAEL4DAAsgAyADLQABOgAAQbyOwABBKyADQairwABBiLLAABC+AwALIAMgAy0AAToAAEG8jsAAQSsgA0Goq8AAQfixwAAQvgMACyADIAMtAAE6AABBvI7AAEErIANBqKvAAEHoscAAEL4DAAsgAyADLQABOgAAQbyOwABBKyADQairwABB2LHAABC+AwALIAMgAy0AAToAAEG8jsAAQSsgA0Goq8AAQcixwAAQvgMACyADIAMtAAE6AABBvI7AAEErIANBqKvAAEG4scAAEL4DAAsgAyADLQABOgAAQbyOwABBKyADQairwABBqLHAABC+AwALIAMgAy0AAToAAEG8jsAAQSsgA0Goq8AAQZixwAAQvgMACyADIAMtAAE6AABBvI7AAEErIANBqKvAAEGIscAAEL4DAAsgAyADLQABOgAAQbyOwABBKyADQairwABB+LDAABC+AwALIAMgAy0AAToAAEG8jsAAQSsgA0Goq8AAQeiwwAAQvgMACyADIAMtAAE6AABBvI7AAEErIANBqKvAAEHYsMAAEL4DAAsgAyADLQABOgAAQbyOwABBKyADQairwABByLDAABC+AwALIAMgAy0AAToAAEG8jsAAQSsgA0Goq8AAQbiwwAAQvgMACyADIAMtAAE6AABBvI7AAEErIANBqKvAAEGosMAAEL4DAAsgAyADLQABOgAAQbyOwABBKyADQairwABBmLDAABC+AwALIAMgAy0AAToAAEG8jsAAQSsgA0Goq8AAQYiwwAAQvgMACyADIAMtAAE6AABBvI7AAEErIANBqKvAAEH4r8AAEL4DAAsgAyADLQABOgAAQbyOwABBKyADQairwABB6K/AABC+AwALIAMgAy0AAToAAEG8jsAAQSsgA0Goq8AAQdivwAAQvgMACyADIAMtAAE6AABBvI7AAEErIANBqKvAAEHIr8AAEL4DAAsgAyADLQABOgAAQbyOwABBKyADQairwABBuK/AABC+AwALIAMgAy0AAToAAEG8jsAAQSsgA0Goq8AAQaivwAAQvgMACyADIAMtAAE6AABBvI7AAEErIANBqKvAAEGYr8AAEL4DAAsgAyADLQABOgAAQbyOwABBKyADQairwABBiK/AABC+AwALIAMgAy0AAToAAEG8jsAAQSsgA0Goq8AAQfiuwAAQvgMACyADIAMtAAE6AABBvI7AAEErIANBqKvAAEHorsAAEL4DAAsgAyADLQABOgAAQbyOwABBKyADQairwABB2K7AABC+AwALIAMgAy0AAToAAEG8jsAAQSsgA0Goq8AAQciuwAAQvgMACyADIAMtAAE6AABBvI7AAEErIANBqKvAAEG4rsAAEL4DAAsgAyADLQABOgAAQbyOwABBKyADQairwABBqK7AABC+AwALIAMgAy0AAToAAEG8jsAAQSsgA0Goq8AAQZiuwAAQvgMACyADIAMtAAE6AABBvI7AAEErIANBqKvAAEGIrsAAEL4DAAsgAyADLQABOgAAQbyOwABBKyADQairwABB+K3AABC+AwALIAMgAy0AAToAAEG8jsAAQSsgA0Goq8AAQeitwAAQvgMACyADIAMtAAE6AABBvI7AAEErIANBqKvAAEHYrcAAEL4DAAsgAyADLQABOgAAQbyOwABBKyADQairwABByK3AABC+AwALIAMgAy0AAToAAEG8jsAAQSsgA0Goq8AAQbitwAAQvgMACyADIAMtAAE6AABBvI7AAEErIANBqKvAAEGorcAAEL4DAAsgAyADLQABOgAAQbyOwABBKyADQairwABBmK3AABC+AwALIAMgAy0AAToAAEG8jsAAQSsgA0Goq8AAQYitwAAQvgMACyADIAMtAAE6AABBvI7AAEErIANBqKvAAEH4rMAAEL4DAAsgAyADLQABOgAAQbyOwABBKyADQairwABB6KzAABC+AwALIAMgAy0AAToAAEG8jsAAQSsgA0Goq8AAQdiswAAQvgMACyADIAMtAAE6AABBvI7AAEErIANBqKvAAEHIrMAAEL4DAAsgAyADLQABOgAAQbyOwABBKyADQairwABBuKzAABC+AwALIAMgAy0AAToAAEG8jsAAQSsgA0Goq8AAQaiswAAQvgMACyADIAMtAAE6AABBvI7AAEErIANBqKvAAEGYrMAAEL4DAAsgAyADLQABOgAAQbyOwABBKyADQairwABBiKzAABC+AwALIAMgAy0AAToAAEG8jsAAQSsgA0Goq8AAQfirwAAQvgMACyADIAMtAAE6AABBvI7AAEErIANBqKvAAEHoq8AAEL4DAAsgAyADLQABOgAAQbyOwABBKyADQairwABB2KvAABC+AwALIAMgAy0AAToAAEG8jsAAQSsgA0Goq8AAQcirwAAQvgMACyADIAMtAAE6AABBvI7AAEErIANBqKvAAEG4q8AAEL4DAAsgAyADLQABOgAAQbyOwABBKyADQairwABB9L7AABC+AwALIAMgAy0AAToAAEG8jsAAQSsgA0Goq8AAQeS+wAAQvgMACyADIAMtAAE6AABBvI7AAEErIANBqKvAAEHUvsAAEL4DAAsgAyADLQABOgAAQbyOwABBKyADQairwABBxL7AABC+AwALIAMgAy0AAToAAEG8jsAAQSsgA0Goq8AAQbS+wAAQvgMACyADIAMtAAE6AABBvI7AAEErIANBqKvAAEGkvsAAEL4DAAsgAyADLQABOgAAQbyOwABBKyADQairwABBlL7AABC+AwALIAMgAy0AAToAAEG8jsAAQSsgA0Goq8AAQYS+wAAQvgMA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NwOoCSAHQegIaiIGED8gB0GYAmogBkHgABDPBBogB0GQAmogAikDADcDACAHQYgCaiAEKQMANwMAIAdBgAJqIAEpAwA3AwAgByAHKQOoCDcD+AEgOEHAAWwhCiAHQZAHaiEeIAdBgAZqIRsgB0GoCWohBgNAIAdB4AhqIA9BmAFqKQMANwMAIAdB2AhqIA9BkAFqKQMANwMAIAdB0AhqIA9BiAFqKQMANwMAIAcgDykDgAE3A8gIIAdB8ABqIA9BuAFqKQMANwMAIAdB6ABqIA9BsAFqKQMANwMAIAdB4ABqIA9BqAFqKQMANwMAIAcgDykDoAE3A1ggB0HoCGoiAiAHQcgIahDYASAHQfgBaiIOIAIQtwEgAiAHQdgAahDYASAOIAIQtwEjAEHwAWsiASQAIAFBQGsgD0EIaikDADcDACABQcgAaiAPQRBqKQMANwMAIAFB0ABqIA9BGGopAwA3AwAgAUHgAGogD0EoaikDADcDACABQegAaiAPQTBqKQMANwMAIAFB8ABqIA9BOGopAwA3AwAgASAPKQMANwM4IAEgDykDIDcDWCABQbgBaiABQThqEK0DIAEoArwBIQQgASgCuAEhCQJAAkACQCABKALAASIXQQJGBEAgAUHAAWogBEEQaikDADcDACABQcgBaiAEQRhqKQMANwMAIAFB0AFqIARBIGopAwA3AwAgAUHYAWoiFyAEQShqKQMANwMAIAFB4AFqIARBMGopAwA3AwAgAUHoAWogBEE4aikDADcDACABIAQpAwg3A7gBIAQoAgQhGSAEKAIAISQgCQRAIAQgCUEFdBC5BAsgAUEwaiABQcgBaiImKQMANwMAIAFBKGogAUHAAWoiISkDADcDACABQQhqIBcpAwA3AwAgAUEQaiABQeABaiIXKQMANwMAIAFBGGogAUHoAWoiICkDADcDACABIAEpA7gBNwMgIAEgASkD0AE3AwAgAUGAAWogD0FAayIEQQhqKQMANwMAIAFBiAFqIARBEGopAwA3AwAgAUGQAWogBEEYaikDADcDACABIAQpAwA3A3ggAUGwAWogD0H4AGopAwA3AwAgAUGoAWogD0HwAGopAwA3AwAgAUGgAWogD0HoAGopAwA3AwAgASAPKQNgNwOYASABQbgBaiABQfgAahCtAyABKAK8ASEEIAEoArgBIQkgASgCwAEiH0ECRw0BICEgBEEQaikDADcDACAmIARBGGopAwA3AwAgAUHQAWogBEEgaikDADcDACABQdgBaiImIARBKGopAwA3AwAgFyAEQTBqKQMANwMAICAgBEE4aikDADcDACABIAQpAwg3A7gBIAQoAgQhFyAEKAIAISEgCQRAIAQgCUEFdBC5BAsgAiAXNgJEIAIgITYCQCACIAEpA7gBNwNIIAIgASkD0AE3A2AgAkHQAGogAUHAAWopAwA3AwAgAkHYAGogAUHIAWopAwA3AwAgAkHoAGogJikDADcDACACQfAAaiABQeABaikDADcDACACQfgAaiABQegBaikDADcDACACIBk2AgQgAiAkNgIAIAIgASkDIDcDCCACQRBqIAFBKGopAwA3AwAgAkEYaiABQTBqKQMANwMAIAIgASkDADcDICACQShqIAFBCGopAwA3AwAgAkEwaiABQRBqKQMANwMAIAJBOGogAUEYaikDADcDACABQfABaiQADAMLIAEgFzYCwAEMAQsgASAfNgLAAQsgASAENgK8ASABIAk2ArgBQbyOwABBKyABQbgBakG8k8AAQayUwAAQvgMACyAHQZgGaiAYKQMANwMAIAdBkAZqIAgpAwA3AwAgB0GIBmogPykDADcDACAbIEApAwA3AwAgB0H4BWogFikDADcDACAHQfAFaiA6KQMANwMAIAdB6AVqIBopAwA3AwAgByAHKQPoCDcD4AUgB0GoB2ogBkE4aikDADcDACAHQaAHaiAGQTBqKQMANwMAIAdBmAdqIAZBKGopAwA3AwAgHiAGQSBqKQMANwMAIAdBiAdqIAZBGGopAwA3AwAgB0GAB2ogBkEQaikDADcDACAHQfgGaiAGQQhqKQMANwMAIAcgBikDADcD8AYgAiAHQeAFahDYASAOIAIQtwEgAiAbENgBIA4gAhC3ASACIAdB8AZqIgEQ2AEgDiACELcBIAIgHhDYASAPQcABaiEPIA4gAhC3ASAKQcABayIKDQALAkACQAJAAkAgFEGAgICAeEYNACAzDQEgASAHQSBqEO4BIAcoAvQGIQIgBygC+AYiAQRAIAFBBXQhCiACIQEDQCAHQegIaiIEIAEQ2AEgAUEgaiEBIAdB+AFqIAQQtwEgCkEgayIKDQALCyAHKALwBiIBRQ0AIAIgAUEFdBC5BAsgB0HwBmogB0Es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KQMANwMAIARBKGoiHiABQdgAaikDADcDACAIIAEpAwA3A9gBIAMgCEHYAWoiA0HgABDPBBogBiABQYgBaikDADcDACAKIAFBgAFqKQMANwMAIAkgAUH4AGopAwA3AwAgDCABQfAAaikDADcDACAOIAFB6ABqKQMANwMAIAQgAUGQAWopAwA3AwAgIyABQZgBaikDADcDACAzIAFBoAFqKQMANwMAIDogAUGoAWopAwA3AwAgFiABQbABaikDADcDACAeIAFBuAFqKQMANwMAIAggAUHgAGopAwA3A9gBIA8gA0HgABDPBBogEyIGIAgoAsQBRgRAIAhBxAFqEJ0DCyAIKALIASIWIAZBwAFsaiAIQagKaiIBQcABEM8EGiAIIAZBAWoiEzYCzAEgCyACQaACaiICRw0ACyAIKAK8ASECIAggCCgCwAEiAzYC0AEgCCATNgLUASADIBNHDQIgASACIBMQICAIKAK8CiFHIAgoArgKITMgCCgCtAohWyAIKAKwCiFEIAgoAqwKITogCCgCqAohXCAIQdgBahDUAiAIQQA2ApgFIAhCgICAgMAANwKQBSAIQQA2AqQFIAhCgICAgMAANwKcBSATQQFNDQMgCEHMCWoiAyACIBMgFiATEEEgASADEMgBIAhB4A1qIAgoAqwKIgEgCCgCsAoQDyAIKAKoCiICBEAgASACQTBsELkECwJAIAgoAhAiWUGAgICAeEYNACAIQagKaiAIQRBqEMgBIAhBiAhqIAgoAqwKIgEgCCgCsAoQDyAIKAKoCiICBEAgASACQTBsELkECyAIQagKaiEFIAgoAuQNIk8hAyAIKALoDSEEIAgoAowIIQIgCCgCkAghCiMAQbAjayIBJAAgASAENgIQIAFBDDYCDAJAAkACQAJAAkACQCAEQQxGBEAgASAKNgIUIAQgCkcNAQJAAkACQAJAAkACQAJAIARBAmsOCwEAAAACAAAAAAADAAsgAUEANgKoCSABQQE2ApwJIAFB1JHAADYCmAkgAUIENwKgCSABQZgJakHMk8AAEIYEAAtB2b7CAC0AABpB4ABBCBCwBCIEDQIMCQtB2b7CAC0AABpBoAJBCBCwBCIEDQIMCQtB2b7CAC0AABpBwARBCBCwBCIEDQIMFgsgBCADKQMANwMAIAQgAykDMDcDMCAEQShqIANBKGopAwA3AwAgBEEgaiADQSBqKQMANwMAIARBGGogA0EYaikDADcDACAEQRBqIANBEGopAwA3AwAgBEEIaiIKIANBCGopAwA3AwAgBEE4aiADQThqKQMANwMAIARBQGsgA0FAaykDADcDACAEQcgAaiADQcgAaikDADcDACAEQdAAaiADQdAAaikDADcDACAEQdgAaiADQdgAaikDADcDACAEKQMAIY4BIAFBIGogCkHYABDPBBogBEHgABC5BEHZvsIALQAAGiABII4BNwMYQeAAQQgQsAQiA0UNBiADIAIpAwA3AwAgAyACKQMwNwMwIANBKGogAkEoaikDADcDACADQSBqIAJBIGopAwA3AwAgA0EYaiACQRhqKQMANwMAIANBEGogAkEQaikDADcDACADQQhqIgQgAkEIaikDADcDACADQThqIAJBOGopAwA3AwAgA0FAayACQUBrKQMANwMAIANByABqIAJByABqKQMANwMAIANB0ABqIAJB0ABqKQMANwMAIANB2ABqIAJB2ABqKQMANwMAIAMpAwAhjgEgAUGAAWogBEHYABDPBBogA0HgABC5BCABII4BNwN4IAFB2AFqIgMgAUEYaiABQfgAahBUIAFBmAlqIAMQ9QMgASgCnAkhAyABKAKYCSEEIAEoAqAJIgpBAkcNBCADKAIEIQogAygCACEJIAFB2A1qIANBCGpB2AAQzwQaIAQEQCADIARBMGwQuQQLQdm+wgAtAAAaQeAAQQgQsAQiA0UNBiADIAo2AgQgAyAJNgIAIAMgASkD2A03AwggAyABKQOADjcDMCADQRBqIAFB4A1qKQMANwMAIANBGGogAUHoDWopAwA3AwAgA0EgaiABQfANaikDADcDACADQShqIAFB+A1qKQMANwMAIANBOGogAUGIDmopAwA3AwAgA0FAayABQZAOaikDADcDACADQcgAaiABQZgOaikDADcDACADQdAAaiABQaAOaikDADcDACADQdgAaiABQagOaikDADcDACAFQQI2AgggBSADNgIEIAVBAjYCAAwFCyAEIAMpAwA3AwAgBCADKQMwNwMwIARBKGogA0EoaikDADcDACAEQSBqIANBIGopAwA3AwAgBEEYaiADQRhqKQMANwMAIARBEGogA0EQaikDADcDACAEQQhqIgkgA0EIaikDADcDACAEQThqIANBOGopAwA3AwAgBEFAayADQUBrKQMANwMAIARByABqIANByABqKQMANwMAIARB0ABqIANB0ABqKQMANwMAIARB2ABqIANB2ABqKQMANwMAIARBiAFqIANBiAFqKQMANwMAIARBgAFqIANBgAFqKQMANwMAIARB+ABqIANB+ABqKQMANwMAIARB8ABqIANB8ABqKQMANwMAIARB6ABqIANB6ABqKQMANwMAIAQgAykDYDcDYCAEIAMpA5ABNwOQASAEQZgBaiADQZgBaikDADcDACAEQaABaiADQaABaikDADcDACAEQagBaiADQagBaikDADcDACAEQbABaiADQbABaikDADcDACAEQbgBaiADQbgBaikDADcDACAEQegBaiADQegBaikDADcDACAEQeABaiADQeABaikDADcDACAEQdgBaiADQdgBaikDADcDACAEQdABaiADQdABaikDADcDACAEQcgBaiADQcgBaikDADcDACAEIAMpA8ABNwPAASAEQZgCaiADQZgCaikDADcDACAEQZACaiADQZACaikDADcDACAEQYgCaiADQYgCaikDADcDACAEQYACaiADQYACaikDADcDACAEQfgBaiADQfgBaikDADcDACAEIAMpA/ABNwPwASAEKQMAIY4BIAFBmAlqIgogCUGYAhDPBBogBEGgAhC5BCABQegOaiABQcgJaiIwKQMANwMAIAFB8A5qIAFB0AlqIgQpAwA3AwAgAUH4DmogAUHYCWoiCSkDADcDACABQYAPaiABQeAJaiIMKQMANwMAIAFBiA9qIAFB6AlqIgspAwA3AwAgAUHYImoiHyABQfgJaiIiKQMANwMAIAFB4CJqIi0gAUGACmoiDykDADcDACABQegiaiI2IAFBiApqIg4pAwA3AwAgAUHwImoiLCABQZAKaiIjKQMANwMAIAFB+CJqIhwgAUGYCmoiHikDADcDACABIAEpA8AJNwPgDiABIAEpA/AJNwPQIiABQagjaiIoIAFByApqIicpAwA3AwAgAUGgI2oiKSABQcAKaiIVKQMANwMAIAFBmCNqIiogAUG4CmoiQSkDADcDACABQZAjaiIrIAFBsApqIhQpAwA3AwAgAUGII2oiLiABQagKaiIlKQMANwMAIAFB+B5qIjIgAUHYCmoiLykDADcDACABQYAfaiI0IAFB4ApqIg0pAwA3AwAgAUGIH2oiNSABQegKaiIRKQMANwMAIAFBkB9qIjggAUHwCmoiGCkDADcDACABQZgfaiI3IAFB+ApqIhopAwA3AwAgASABKQOgCjcDgCMgASABKQPQCjcD8B4gAUHIH2oiOSABQagLaiISKQMANwMAIAFBwB9qIjsgAUGgC2oiECkDADcDACABQbgfaiI9IAFBmAtqIh0pAwA3AwAgAUGwH2oiQiABQZALaiIXKQMANwMAIAFBqB9qIkggAUGIC2oiSSkDADcDACABQdgOaiABQbgJaiIZKQMANwMAIAFB0A5qIAFBsAlqIiYpAwA3AwAgAUHIDmogAUGoCWoiISkDADcDACABQcAOaiABQaAJaiIgKQMANwMAIAEgASkDgAs3A6AfIAEgASkDmAk3A7gOIAEgjgE3A7AOIAFBkA9qIAFB0CJqIk1B4AAQzwQaIAFB8A9qIAFB8B5qIlBB4AAQzwQaQdm+wgAtAAAaQaACQQgQsAQiA0UNBiADIAIpAwA3AwAgAyACKQMwNwMwIANBKGogAkEoaikDADcDACADQSBqIAJBIGopAwA3AwAgA0EYaiACQRhqKQMANwMAIANBEGogAkEQaikDADcDACADQQhqIlUgAkEIaikDADcDACADQThqIAJBOGopAwA3AwAgA0FAayACQUBrKQMANwMAIANByABqIAJByABqKQMANwMAIANB0ABqIAJB0ABqKQMANwMAIANB2ABqIAJB2ABqKQMANwMAIANBiAFqIAJBiAFqKQMANwMAIANBgAFqIAJBgAFqKQMANwMAIANB+ABqIAJB+ABqKQMANwMAIANB8ABqIAJB8ABqKQMANwMAIANB6ABqIAJB6ABqKQMANwMAIAMgAikDYDcDYCADIAIpA5ABNwOQASADQZgBaiACQZgBaikDADcDACADQaABaiACQaABaikDADcDACADQagBaiACQagBaikDADcDACADQbABaiACQbABaikDADcDACADQbgBaiACQbgBaikDADcDACADQegBaiACQegBaikDADcDACADQeABaiACQeABaikDADcDACADQdgBaiACQdgBaikDADcDACADQdABaiACQdABaikDADcDACADQcgBaiACQcgBaikDADcDACADIAIpA8ABNwPAASADQZgCaiACQZgCaikDADcDACADQZACaiACQZACaikDADcDACADQYgCaiACQYgCaikDADcDACADQYACaiACQYACaikDADcDACADQfgBaiACQfgBaikDADcDACADIAIpA/ABNwPwASADKQMAIY4BIAogVUGYAhDPBBogA0GgAhC5BCABQYgRaiAwKQMANwMAIAFBkBFqIAQpAwA3AwAgAUGYEWogCSkDADcDACABQaARaiAMKQMANwMAIAFBqBFqIAspAwA3AwAgHyAiKQMANwMAIC0gDykDADcDACA2IA4pAwA3AwAgLCAjKQMANwMAIBwgHikDADcDACABIAEpA8AJNwOAESABIAEpA/AJNwPQIiAoICcpAwA3AwAgKSAVKQMANwMAICogQSkDADcDACArIBQpAwA3AwAgLiAlKQMANwMAIDIgLykDADcDACA0IA0pAwA3AwAgNSARKQMANwMAIDggGCkDADcDACA3IBopAwA3AwAgASABKQOgCjcDgCMgASABKQPQCjcD8B4gOSASKQMANwMAIDsgECkDADcDACA9IB0pAwA3AwAgQiAXKQMANwMAIEggSSkDADcDACABQfgQaiAZKQMANwMAIAFB8BBqICYpAwA3AwAgAUHoEGogISkDADcDACABQeAQaiAgKQMANwMAIAEgASkDgAs3A6AfIAEgASkDmAk3A9gQIAEgjgE3A9AQIAFBsBFqIE1B4AAQzwQaIAFBkBJqIFBB4AAQzwQaIAFBuAJqIgMgAUGwDmogAUHQEGoQwQIgCiADELABQdm+wgAtAAAaQaACQQgQsAQiA0UNBiADIAEpA5gJNwMAIAMgASkDyAk3AzAgA0EoaiABQcAJaikDADcDACADQSBqIBkpAwA3AwAgA0EYaiAmKQMANwMAIANBEGogISkDADcDACADQQhqICApAwA3AwAgA0E4aiAEKQMANwMAIANBQGsgCSkDADcDACADQcgAaiAMKQMANwMAIANB0ABqIAspAwA3AwAgA0HYAGogAUHwCWopAwA3AwAgA0GIAWogAUGgCmopAwA3AwAgA0GAAWogHikDADcDACADQfgAaiAjKQMANwMAIANB8ABqIA4pAwA3AwAgA0HoAGogDykDADcDACADIAEpA/gJNwNgIANBuAFqIAFB0ApqKQMANwMAIANBsAFqICcpAwA3AwAgA0GoAWogFSkDADcDACADQaABaiBBKQMANwMAIANBmAFqIBQpAwA3AwAgAyABKQOoCjcDkAEgA0HoAWogAUGAC2opAwA3AwAgA0HgAWogGikDADcDACADQdgBaiAYKQMANwMAIANB0AFqIBEpAwA3AwAgA0HIAWogDSkDADcDACADIAEpA9gKNwPAASADQZgCaiABQbALaikDADcDACADQZACaiASKQMANwMAIANBiAJqIBApAwA3AwAgA0GAAmogHSkDADcDACADQfgBaiAXKQMANwMAIAMgASkDiAs3A/ABIAVBBjYCCCAFIAM2AgQgBUEGNgIADAQLIAQgAykDADcDACAEIAMpAzA3AzAgBEEoaiADQShqKQMANwMAIARBIGogA0EgaikDADcDACAEQRhqIANBGGopAwA3AwAgBEEQaiADQRBqKQMANwMAIARBCGoiCSADQQhqKQMANwMAIARBOGogA0E4aikDADcDACAEQUBrIANBQGspAwA3AwAgBEHIAGogA0HIAGopAwA3AwAgBEHQAGogA0HQAGopAwA3AwAgBEHYAGogA0HYAGopAwA3AwAgBEGIAWogA0GIAWopAwA3AwAgBEGAAWogA0GAAWopAwA3AwAgBEH4AGogA0H4AGopAwA3AwAgBEHwAGogA0HwAGopAwA3AwAgBEHoAGogA0HoAGopAwA3AwAgBCADKQNgNwNgIAQgAykDkAE3A5ABIARBmAFqIANBmAFqKQMANwMAIARBoAFqIANBoAFqKQMANwMAIARBqAFqIANBqAFqKQMANwMAIARBsAFqIANBsAFqKQMANwMAIARBuAFqIANBuAFqKQMANwMAIARB6AFqIANB6AFqKQMANwMAIARB4AFqIANB4AFqKQMANwMAIARB2AFqIANB2AFqKQMANwMAIARB0AFqIANB0AFqKQMANwMAIARByAFqIANByAFqKQMANwMAIAQgAykDwAE3A8ABIARBmAJqIANBmAJqKQMANwMAIARBkAJqIANBkAJqKQMANwMAIARBiAJqIANBiAJqKQMANwMAIARBgAJqIANBgAJqKQMANwMAIARB+AFqIANB+AFqKQMANwMAIAQgAykD8AE3A/ABIARByAJqIANByAJqKQMANwMAIARBwAJqIANBwAJqKQMANwMAIARBuAJqIANBuAJqKQMANwMAIARBsAJqIANBsAJqKQMANwMAIARBqAJqIANBqAJqKQMANwMAIAQgAykDoAI3A6ACIARB+AJqIANB+AJqKQMANwMAIARB8AJqIANB8AJqKQMANwMAIARB6AJqIANB6AJqKQMANwMAIARB4AJqIANB4AJqKQMANwMAIARB2AJqIANB2AJqKQMANwMAIAQgAykD0AI3A9ACIARBqANqIANBqANqKQMANwMAIARBoANqIANBoANqKQMANwMAIARBmANqIANBmANqKQMANwMAIARBkANqIANBkANqKQMANwMAIARBiANqIANBiANqKQMANwMAIAQgAykDgAM3A4ADIARB2ANqIANB2ANqKQMANwMAIARB0ANqIANB0ANqKQMANwMAIARByANqIANByANqKQMANwMAIARBwANqIANBwANqKQMANwMAIARBuANqIANBuANqKQMANwMAIAQgAykDsAM3A7ADIARBiARqIANBiARqKQMANwMAIARBgARqIANBgARqKQMANwMAIARB+ANqIANB+ANqKQMANwMAIARB8ANqIANB8ANqKQMANwMAIARB6ANqIANB6ANqKQMANwMAIAQgAykD4AM3A+ADIARBuARqIANBuARqKQMANwMAIARBsARqIANBsARqKQMANwMAIARBqARqIANBqARqKQMANwMAIARBoARqIANBoARqKQMANwMAIARBmARqIANBmARqKQMANwMAIAQgAykDkAQ3A5AEIAQpAwAhjgEgAUGYCWoiCiAJQbgEEM8EGiAEQcAEELkEIAFBqBNqIAFByAlqIk0pAwA3AwAgAUGwE2ogAUHQCWoiCSkDADcDACABQbgTaiABQdgJaiIMKQMANwMAIAFBwBNqIAFB4AlqIgspAwA3AwAgAUHIE2ogAUHoCWoiDykDADcDACABQbgXaiABQfgJaiJQKQMANwMAIAFBwBdqIAFBgApqIg4pAwA3AwAgAUHIF2ogAUGICmoiIykDADcDACABQdAXaiABQZAKaiIeKQMANwMAIAFB2BdqIAFBmApqIicpAwA3AwAgASABKQPACTcDoBMgASABKQPwCTcDsBcgAUGIGGogAUHICmoiFSkDADcDACABQYAYaiABQcAKaiJBKQMANwMAIAFB+BdqIAFBuApqIhQpAwA3AwAgAUHwF2ogAUGwCmoiDSkDADcDACABQegXaiABQagKaiJVKQMANwMAIAFBmBhqIAFB2ApqIl4pAwA3AwAgAUGgGGogAUHgCmoiESkDADcDACABQagYaiABQegKaiIYKQMANwMAIAFBsBhqIAFB8ApqIhopAwA3AwAgAUG4GGogAUH4CmoiEikDADcDACABIAEpA6AKNwPgFyABIAEpA9AKNwOQGCABQegYaiABQagLaiIQKQMANwMAIAFB4BhqIAFBoAtqIh0pAwA3AwAgAUHYGGogAUGYC2oiFykDADcDACABQdAYaiABQZALaiIZKQMANwMAIAFByBhqIAFBiAtqIl8pAwA3AwAgAUGYE2ogAUG4CWoiJikDADcDACABQZATaiABQbAJaiIhKQMANwMAIAFBiBNqIAFBqAlqIiApAwA3AwAgAUGAE2ogAUGgCWoiMCkDADcDACABIAEpA4ALNwPAGCABIAEpA5gJNwP4EiABQeghaiJgIAFBiAxqIh8pAwA3AwAgAUHgIWoiYSABQYAMaiIiKQMANwMAIAFB2CFqImYgAUH4C2oiLSkDADcDACABQdAhaiJnIAFB8AtqIjYpAwA3AwAgAUHIIWoiaCABQegLaiJpKQMANwMAIAEgASkD4As3A8AhIAFB+CFqImogAUGYDGoiaykDADcDACABQYAiaiJsIAFBoAxqIiwpAwA3AwAgAUGIImoibSABQagMaiIcKQMANwMAIAFBkCJqIm4gAUGwDGoiKCkDADcDACABQZgiaiJvIAFBuAxqIikpAwA3AwAgASABKQOQDDcD8CEgAUHIImoicCABQegMaiIqKQMANwMAIAFBwCJqInEgAUHgDGoiKykDADcDACABQbgiaiJyIAFB2AxqIi4pAwA3AwAgAUGwImoicyABQdAMaiIlKQMANwMAIAFBqCJqInQgAUHIDGoidSkDADcDACABIAEpA8AMNwOgIiABQfgiaiJ2IAFBmA1qIjIpAwA3AwAgAUHwImoidyABQZANaiIvKQMANwMAIAFB6CJqInggAUGIDWoiNCkDADcDACABQeAiaiJ5IAFBgA1qIjUpAwA3AwAgAUHYImoieiABQfgMaiJ7KQMANwMAIAEgASkD8Aw3A9AiIAFBqCNqInwgAUHIDWoiOCkDADcDACABQaAjaiJ9IAFBwA1qIjcpAwA3AwAgAUGYI2oifiABQbgNaiI5KQMANwMAIAFBkCNqIn8gAUGwDWoiOykDADcDACABQYgjaiKAASABQagNaiKBASkDADcDACABIAEpA6ANNwOAIyABQbghaiKCASABQdgLaiI9KQMANwMAIAFBsCFqIoMBIAFB0AtqIkIpAwA3AwAgAUGoIWoihAEgAUHIC2oiSCkDADcDACABQaAhaiKHASABQcALaiJJKQMANwMAIAFBmCFqIogBIAFBuAtqIokBKQMANwMAIAEgASkDsAs3A5AhIAFB8B5qIgQgAUGQIWoiigFB4AAQzwQaIAFB0B9qIAFB8CFqIoUBQeAAEM8EIAFBsCBqIAFB0CJqImJB4AAQzwQhYyABII4BNwPwEiABQdATaiABQbAXakHgABDPBBogAUGwFGogAUGQGGpB4AAQzwQaIAFBkBVqIARBoAIQzwQaQdm+wgAtAAAaQcAEQQgQsAQiA0UNEyADIAIpAwA3AwAgAyACKQMwNwMwIANBKGogAkEoaikDADcDACADQSBqIAJBIGopAwA3AwAgA0EYaiACQRhqKQMANwMAIANBEGogAkEQaikDADcDACADQQhqIlYgAkEIaikDADcDACADQThqIAJBOGopAwA3AwAgA0FAayACQUBrKQMANwMAIANByABqIAJByABqKQMANwMAIANB0ABqIAJB0ABqKQMANwMAIANB2ABqIAJB2ABqKQMANwMAIANBiAFqIAJBiAFqKQMANwMAIANBgAFqIAJBgAFqKQMANwMAIANB+ABqIAJB+ABqKQMANwMAIANB8ABqIAJB8ABqKQMANwMAIANB6ABqIAJB6ABqKQMANwMAIAMgAikDYDcDYCADIAIpA5ABNwOQASADQZgBaiACQZgBaikDADcDACADQaABaiACQaABaikDADcDACADQagBaiACQagBaikDADcDACADQbABaiACQbABaikDADcDACADQbgBaiACQbgBaikDADcDACADQegBaiACQegBaikDADcDACADQeABaiACQeABaikDADcDACADQdgBaiACQdgBaikDADcDACADQdABaiACQdABaikDADcDACADQcgBaiACQcgBaikDADcDACADIAIpA8ABNwPAASADQZgCaiACQZgCaikDADcDACADQZACaiACQZACaikDADcDACADQYgCaiACQYgCaikDADcDACADQYACaiACQYACaikDADcDACADQfgBaiACQfgBaikDADcDACADIAIpA/ABNwPwASADQcgCaiACQcgCaikDADcDACADQcACaiACQcACaikDADcDACADQbgCaiACQbgCaikDADcDACADQbACaiACQbACaikDADcDACADQagCaiACQagCaikDADcDACADIAIpA6ACNwOgAiADQfgCaiACQfgCaikDADcDACADQfACaiACQfACaikDADcDACADQegCaiACQegCaikDADcDACADQeACaiACQeACaikDADcDACADQdgCaiACQdgCaikDADcDACADIAIpA9ACNwPQAiADQagDaiACQagDaikDADcDACADQaADaiACQaADaikDADcDACADQZgDaiACQZgDaikDADcDACADQZADaiACQZADaikDADcDACADQYgDaiACQYgDaikDADcDACADIAIpA4ADNwOAAyADQdgDaiACQdgDaikDADcDACADQdADaiACQdADaikDADcDACADQcgDaiACQcgDaikDADcDACADQcADaiACQcADaikDADcDACADQbgDaiACQbgDaikDADcDACADIAIpA7ADNwOwAyADQYgEaiACQYgEaikDADcDACADQYAEaiACQYAEaikDADcDACADQfgDaiACQfgDaikDADcDACADQfADaiACQfADaikDADcDACADQegDaiACQegDaikDADcDACADIAIpA+ADNwPgAyADQbgEaiACQbgEaikDADcDACADQbAEaiACQbAEaikDADcDACADQagEaiACQagEaikDADcDACADQaAEaiACQaAEaikDADcDACADQZgEaiACQZgEaikDADcDACADIAIpA5AENwOQBCADKQMAIY4BIAogVkG4BBDPBBogA0HABBC5BCABQagZaiBNKQMANwMAIAFBsBlqIAkpAwA3AwAgAUG4GWogDCkDADcDACABQcAZaiALKQMANwMAIAFByBlqIA8pAwA3AwAgAUG4HWogUCkDADcDACABQcAdaiAOKQMANwMAIAFByB1qICMpAwA3AwAgAUHQHWogHikDADcDACABQdgdaiAnKQMANwMAIAEgASkDwAk3A6AZIAEgASkD8Ak3A7AdIAFBiB5qIBUpAwA3AwAgAUGAHmogQSkDADcDACABQfgdaiAUKQMANwMAIAFB8B1qIA0pAwA3AwAgAUHoHWogVSkDADcDACABQZgeaiBeKQMANwMAIAFBoB5qIBEpAwA3AwAgAUGoHmogGCkDADcDACABQbAeaiAaKQMANwMAIAFBuB5qIBIpAwA3AwAgASABKQOgCjcD4B0gASABKQPQCjcDkB4gAUHoHmogECkDADcDACABQeAeaiAdKQMANwMAIAFB2B5qIBcpAwA3AwAgAUHQHmogGSkDADcDACABQcgeaiBfKQMANwMAIAFBmBlqICYpAwA3AwAgAUGQGWogISkDADcDACABQYgZaiAgKQMANwMAIAFBgBlqIDApAwA3AwAgASABKQOACzcDwB4gASABKQOYCTcD+BggYCAfKQMANwMAIGEgIikDADcDACBmIC0pAwA3AwAgZyA2KQMANwMAIGggaSkDADcDACABIAEpA+ALNwPAISBqIGspAwA3AwAgbCAsKQMANwMAIG0gHCkDADcDACBuICgpAwA3AwAgbyApKQMANwMAIAEgASkDkAw3A/AhIHAgKikDADcDACBxICspAwA3AwAgciAuKQMANwMAIHMgJSkDADcDACB0IHUpAwA3AwAgASABKQPADDcDoCIgdiAyKQMANwMAIHcgLykDADcDACB4IDQpAwA3AwAgeSA1KQMANwMAIHogeykDADcDACABIAEpA/AMNwPQIiB8IDgpAwA3AwAgfSA3KQMANwMAIH4gOSkDADcDACB/IDspAwA3AwAggAEggQEpAwA3AwAgASABKQOgDTcDgCMgggEgPSkDADcDACCDASBCKQMANwMAIIQBIEgpAwA3AwAghwEgSSkDADcDACCIASCJASkDADcDACABIAEpA7ALNwOQISAEIIoBQeAAEM8EGiCFAUHgABDPBBogYyBiQeAAEM8EGiABII4BNwPwGCABQdAZaiABQbAdakHgABDPBBogAUGwGmogAUGQHmpB4AAQzwQaIAFBkBtqIARBoAIQzwQaIAFB2ARqIgMgAUHwEmogAUHwGGoQpgIgCiADEKQBQdm+wgAtAAAaQcAEQQgQsAQiA0UNEyADIAEpA5gJNwMAIAMgASkDyAk3AzAgA0EoaiABQcAJaikDADcDACADQSBqICYpAwA3AwAgA0EYaiAhKQMANwMAIANBEGogICkDADcDACADQQhqIDApAwA3AwAgA0E4aiAJKQMANwMAIANBQGsgDCkDADcDACADQcgAaiALKQMANwMAIANB0ABqIA8pAwA3AwAgA0HYAGogAUHwCWopAwA3AwAgA0GIAWogAUGgCmopAwA3AwAgA0GAAWogJykDADcDACADQfgAaiAeKQMANwMAIANB8ABqICMpAwA3AwAgA0HoAGogDikDADcDACADIAEpA/gJNwNgIANBuAFqIAFB0ApqKQMANwMAIANBsAFqIBUpAwA3AwAgA0GoAWogQSkDADcDACADQaABaiAUKQMANwMAIANBmAFqIA0pAwA3AwAgAyABKQOoCjcDkAEgA0HoAWogAUGAC2opAwA3AwAgA0HgAWogEikDADcDACADQdgBaiAaKQMANwMAIANB0AFqIBgpAwA3AwAgA0HIAWogESkDADcDACADIAEpA9gKNwPAASADQZgCaiABQbALaikDADcDACADQZACaiAQKQMANwMAIANBiAJqIB0pAwA3AwAgA0GAAmogFykDADcDACADQfgBaiAZKQMANwMAIAMgASkDiAs3A/ABIANByAJqIAFB4AtqKQMANwMAIANBwAJqID0pAwA3AwAgA0G4AmogQikDADcDACADQbACaiBIKQMANwMAIANBqAJqIEkpAwA3AwAgAyABKQO4CzcDoAIgA0H4AmogAUGQDGopAwA3AwAgA0HwAmogHykDADcDACADQegCaiAiKQMANwMAIANB4AJqIC0pAwA3AwAgA0HYAmogNikDADcDACADIAEpA+gLNwPQAiADQagDaiABQcAMaikDADcDACADQaADaiApKQMANwMAIANBmANqICgpAwA3AwAgA0GQA2ogHCkDADcDACADQYgDaiAsKQMANwMAIAMgASkDmAw3A4ADIANB2ANqIAFB8AxqKQMANwMAIANB0ANqICopAwA3AwAgA0HIA2ogKykDADcDACADQcADaiAuKQMANwMAIANBuANqICUpAwA3AwAgAyABKQPIDDcDsAMgA0GIBGogAUGgDWopAwA3AwAgA0GABGogMikDADcDACADQfgDaiAvKQMANwMAIANB8ANqIDQpAwA3AwAgA0HoA2ogNSkDADcDACADIAEpA/gMNwPgAyADQbgEaiABQdANaikDADcDACADQbAEaiA4KQMANwMAIANBqARqIDcpAwA3AwAgA0GgBGogOSkDADcDACADQZgEaiA7KQMANwMAIAMgASkDqA03A5AEIAVBDDYCCCAFIAM2AgQgBUEMNgIADAMLIAFBADYCmAkgAUEQaiABQQxq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uQQLQQghCiAIQbAFaiAIQbAKaigCADYCACAIIAgpA6gKNwOoBQJAAkACQAJAAkACQAJAAkAgBEUNAEEAIQtB2b7CAC0AABogBEEwbCIFQQgQsAQiCkUNASAEIQIDQCAFIAtGDQEgCiALaiIBIAsgJmoiAykDADcDACABQShqIANBKGopAwA3AwAgAUEgaiADQSBqKQMANwMAIAFBGGogA0EYaikDADcDACABQRBqIANBEGopAwA3AwAgAUEIaiADQQhqKQMANwMAIAtBMGohCyACQQFrIgINAAsLIAhBADoAkAggCCAKNgKICCAIIAogBEEwbGo2AowIIAhByAZqIAhBiAhqEJQCIAgoAtAGIgJBAk8EQCACQQF2IQsgCCgCzAYiASACQTBsakEwayEDA0AgASkDACGRASABIAMpAwA3AwAgCEHQCmoiAiABQShqIgUpAwA3AwAgCEHICmoiCSABQSBqIgwpAwA3AwAgCEHACmoiDyABQRhqIg4pAwA3AwAgCEG4CmoiIyABQRBqIh4pAwA3AwAgCEGwCmoiJyABQQhqIhUpAwA3AwAgBSADQShqIgUpAwA3AwAgDCADQSBqIgwpAwA3AwAgDiADQRhqIg4pAwA3AwAgHiADQRBqIh4pAwA3AwAgFSADQQhqIhUpAwA3AwAgCCCRATcDqAogBSACKQMANwMAIAwgCSkDADcDACAOIA8pAwA3AwAgHiAjKQMANwMAIBUgJykDADcDACADIAgpA6gKNwMAIANBMGshAyABQTBqIQEgC0EBayILDQALCyAIQcAFaiAIQdAGaigCADYCACAIIAgpAsgGNwO4BSAERQRAIAggBDYCiAggCEEMNgLIBgwHCyAKIARBMGwQuQQgCCAENgKICCAIQQw2AsgGIARBDEcNBiAIQQA2ArAKIAhCgICAgIABNwKoCgJAAkACfwJAAkACQAJ/AkACQAJAAn8CQAJAAkACfwJAAkACQAJ/AkACQAJAAn8CQAJAAkACfwJAAkACQAJ/AkACQAJAAn8CQAJAAkACfwJAAkACQAJ/IC0tAAAEQCAIQagKahChAyAIKAKoCiExIAgoAqwKIh4gJikDADcDACAeQQhqICZBCGopAwA3AwAgHkEQaiAmQRBqKQMANwMAIB5BGGogJkEYaikDADcDACAeQSBqICZBIGopAwA3AwAgHkEoaiAmQShqKQMANwMAQQEhJCAIQQE2ArAKIC0tAAFFDQNBASELICZBMGoiASAxQQFGDQEaDAILIC0tAAFFDQNBACELICZBMGoLIQEgCEGoCmoQoQMgCCgCqAohMSAIKAKsCiEeCyAeIAtBMGxqIgIgASkDADcDACACQShqIAFBKGopAwA3AwAgAkEgaiABQSBqKQMANwMAIAJBGGogAUEYaikDADcDACACQRBqIAFBEGopAwA3AwAgAkEIaiABQQhqKQMANwMAIAggC0EBaiIkNgKwCgsgLS0AAkUNAyAmQeAAaiIBICQgMUYNARoMAgsgLS0AAkUNAyAmQeAAagshASAIQagKahChAyAIKAKoCiExIAgoAqwKIR4LIB4gJEEwbGoiAiABKQMANwMAIAJBKGogAUEoaikDADcDACACQSBqIAFBIGopAwA3AwAgAkEYaiABQRhqKQMANwMAIAJBEGogAUEQaikDADcDACACQQhqIAFBCGopAwA3AwAgCCAkQQFqIiQ2ArAKCyAtLQADRQ0DICZBkAFqIgEgJCAxRg0BGgwCCyAtLQADRQ0DICZBkAFqCyEBIAhBqApqEKEDIAgoAqgKITEgCCgCrAohHgsgHiAkQTBsaiICIAEpAwA3AwAgAkEoaiABQShqKQMANwMAIAJBIGogAUEgaikDADcDACACQRhqIAFBGGopAwA3AwAgAkEQaiABQRBqKQMANwMAIAJBCGogAUEIaikDADcDACAIICRBAWoiJDYCsAoLIC0tAARFDQMgJkHAAWoiASAkIDFGDQEaDAILIC0tAARFDQMgJkHAAWoLIQEgCEGoCmoQoQMgCCgCqAohMSAIKAKsCiEeCyAeICRBMGxqIgIgASkDADcDACACQShqIAFBKGopAwA3AwAgAkEgaiABQSBqKQMANwMAIAJBGGogAUEYaikDADcDACACQRBqIAFBEGopAwA3AwAgAkEIaiABQQhqKQMANwMAIAggJEEBaiIkNgKwCgsgLS0ABUUNAyAmQfABaiIBICQgMUYNARoMAgsgLS0ABUUNAyAmQfABagshASAIQagKahChAyAIKAKoCiExIAgoAqwKIR4LIB4gJEEwbGoiAiABKQMANwMAIAJBKGogAUEoaikDADcDACACQSBqIAFBIGopAwA3AwAgAkEYaiABQRhqKQMANwMAIAJBEGog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IAlBQGsiBBDIASABQRRqIAEoAlQiBSABKAJYEA8gASgCUCIKBEAgBSAKQTBsELkECyABQSBqIAEoAgwiIyABKAIQIAEoAhgiJyABKAIcEBYgAUEsaiABKAIkIhQgASgCKBAQIAFBADoATCABIAEoAjAiDDYCRCABIAwgASgCNEEwbGo2AkggAUE4aiABQcQAahCUAiABKAJAIgpBAk8EQCAKQQF2IQ4gASgCPCIFIApBMGxqQTBrIQoDQCAFKQMAIZIBIAUgCikDADcDACABQfgAaiIRIAVBKGoiGCkDADcDACABQfAAaiIaIAVBIGoiEikDADcDACABQegAaiIQIAVBGGoiHSkDADcDACABQeAAaiIXIAVBEGoiGSkDADcDACABQdgAaiIhIAVBCGoiICkDADcDACAYIApBKGoiGCkDADcDACASIApBIGoiEikDADcDACAdIApBGGoiHSkDADcDACAZIApBEGoiGSkDADcDACAgIApBCGoiICkDADcDACABIJIBNwNQIBggESkDADcDACASIBopAwA3AwAgHSAQKQMANwMAIBkgFykDADcDACAgICEpAwA3AwAgCiABKQNQNwMAIApBMGshCiAFQTBqIQUgDkEBayIODQALCyAJQQxqIgUgASkCODcCACAFQQhqIAFBQGsoAgA2AgAgASgCLCIFBEAgDCAFQTBsELkECyABKAIgIgUEQCAUIAVBMGwQuQQLIAEoAhQiBQRAICcgBUEwbBC5BAsgASgCCCIFBEAgIyAFQTBsELkECyAEKAIAIgUEQCAEKAIEIAVBMGwQuQQLIAkoAgAiBARAIAkoAgQgBEEwbBC5BAsgAUGAAWokAEHZvsIALQAAGkEYQQQQsAQiBUUNJ0EIIQxBCCEnAkAgCSgCFCIERQ0AQQAhASAEQTBsIhRBAEggBEGq1aoVS3INAiAJKAIQIRFB2b7CAC0AABpBCCEBIBRBCBCwBCInRQ0CQQAhCiAEIQEDQCAKIBRGDQEgCiAnaiIOIAogEWoiIykDADcDACAOQShqICNBKGopAwA3AwAgDkEgaiAjQSBqKQMANwMAIA5BGGogI0EYaikDADcDACAOQRBqICNBEGopAwA3AwAgDkEIaiAjQQhqKQMANwMAIApBMGohCiABQQFrIgENAAsLAkAgAkUNAEEAIQEgAkEwbCIUQQBIIAJB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ADcDACABQRBqIANBEGopAwA3AwAgAUEIaiADQQhqKQMANwMAIAtBMGohCyACQQFrIgINAQsLQQAhC0HZvsIALQAAGiAKQQgQsAQiA0UNBCAjQTBsIQUgIyECA0AgBSALRg0BIAMgC2oiASALIE9qIgQpAwA3AwAgAUEoaiAEQShqKQMANwMAIAFBIGogBEEgaikDADcDACABQRhqIARBGGopAwA3AwAgAUEQaiAEQRBqKQMANwMAIAFBCGogBEEIaikDADcDACALQTBqIQsgAkEBayICDQALCyAIICM2ArAKIAggAzYCrAogCCAjNgKoCiAIQYgIaiAIQagKahBYIAhB0AVqIAhBkAhqKAIAIgU2AgAgCCAIKQKICDcDyAVBgICAgHghJyAIKALMBSEEQYCAgIB4IUEgIwshVQJAIAVFBEBBCCEMDAELQQAhASAFQTBsIgpBAEggBUGq1aoVS3INJEHZvsIALQAAGkEIIQEgCkEIELAEIgxFDSRBACELIAUhAgNAIAogC0YNASALIAxqIgEgBCALaiIDKQMANwMAIAFBKGogA0EoaikDADcDACABQSBqIANBIGopAwA3AwAgAUEYaiADQRhqKQMANwMAIAFBEGogA0EQaikDADcDACABQQhqIANBCGopAwA3AwAgC0EwaiELIAJBAWsiAg0ACwsgCCAFNgLgBSAIIAw2AtwFIAggBTYC2AUgCEEANgLsBSAIQoCAgICAATcC5AUgCCgC+AEhDQJAIAgoAvwBIhRBB00EQCAURQRAQX4hCgwHCyANLQAAQf8BRg0BIBRBAUYNBSANLQABQf8BRg0BIBRBAkYNBSANLQACQf8BRg0BIBRBA0YNBSANLQADQf8BRg0BIBRBBEYNBSANLQAEQf8BRg0BIBRBBUYNBSANLQAFQf8BRg0BIBRBBkYNBSANLQAGQf8BRg0BDAULIAhBCGogDSAUEPgCIAgoAghBAUYNACAUQQJrIQoMBgsgBkHAAWxBwAFqIQsgFiEBA0AgCEGoCmogARDQASAIKALsBSICIAgoAuQFRgRAIAhB5AVqEJ0DCyABQcABaiEBIAgoAugFIAJBwAFsaiAIQagKakHAARDPBBogCCACQQFqNgLsBSALQcABayILDQALDAMLQQggBRCoBAALIAEgBRCoBAALQQggChCoBAALIBRBAmshCiAU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KQMANwMAIBhBGGoiHSABQcgAaikDADcDACAYQSBqIhcgAUHQAGopAwA3AwAgGEEoaiIiIAFB2ABqKQMANwMAIAggASkDADcDiAggCEGoCmogCEGICGoiNkHgABDPBBogESABQYgBaikDADcDACAEIAFBgAFqKQMANwMAIAogAUH4AGopAwA3AwAgDCABQfAAaikDADcDACAPIAFB6ABqKQMANwMAIBggAUGQAWopAwA3AwAgDiABQZgBaikDADcDACAaIAFBoAFqKQMANwMAIB0gAUGoAWopAwA3AwAgFyABQbABaikDADcDACAiIAFBuAFqKQMANwMAIAggAUHgAGopAwA3A4gIIB8gNkHgABDPBBogCCgCvAYgC0YEQCAIQbwGahCdAyAIKALABiECCyACIAlqIAhBqApqQcABEM8EGiAIIAtBAWoiCzYCxAYgCUHAAWohCSALIDBHDQALDAILQQRBMBDKBAALIAsgAUHEycAAENYDAAsCQAJAAkACQAJAAkAgAy0AAEEBRiICRSAnQYCAgIB4RnFFBEACQCAIKALQBSAnIAIbIgFFBEBBCCEDDAELQQAhCyABQTBsIgxBAEggAUGq1aoVS3INAiAIKALMBUHZvsIALQAAGkEIIQsgDEEIELAEIgNFDQIgUiACGyELQQAhCSABIQIDQCAJIAxGDQEgAyAJaiIEIAkgC2oiCikDADcDACAEQShqIApBKGopAwA3AwAgBEEgaiAKQSBqKQMANwMAIARBGGogCkEYaikDADcDACAEQRBqIApBEGopAwA3AwAgBEEIaiAKQQhqKQMANwMAIAlBMGohCSACQQFrIgINAAsLIAgoAqgFIgIEQCAIKAKsBSACQTBsELkECyAIIAE2ArAFIAggAzYCrAUgCCABNgKoBUHZvsIALQAAGiAIKALABiEJIAgoAsQGIRpBJEEEELAEIhFFDRNBCCEOIAgoAtwFIR1BCCEPQQghDAJAIAgoAuAFIgpFDQBBACEBIApBMGwiC0EASCAKQarVqhVLcg0YQdm+wgAtAAAaQQghASALQQgQsAQiD0UNGEEAIQIgCiEDA0AgAiALRwRAIAIgD2oiASACIB1qIgQpAwA3AwAgAUEoaiAEQShqKQMANwMAIAFBIGogBEEgaikDADcDACABQRhqIARBGGopAwA3AwAgAUEQaiAEQRBq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QcgAaiIYIARBuAFqIgopAwAijAE3AQAgBEHQAGoiGiAEQcABaiICKQMAIo0BNwEAIARB2ABqIhIgBEHIAWoiCSkDACKPATcBACAEQeAAaiIQIIsBNwEAIARB6ABqIh0gjgE3AQAgBCAEKQOwASKQATcBQCABII4BNwMAIAkgiwE3AwAgAiCPATcDACAKII0BNwMAIARBsAFqIlYiDSCMATcDACAEIJABNwOoASAEQTBqIiggASkDADcCACAEQShqIikgCSkDADcCACAEQSBqIiogAikDADcCACAEQRhqIisgCikDADcCACAEQRBqIi4gDSkDADcCACAEIAQpA6gBNwIIIBFB05bAAEHAABCmASAELQCoAQ0DIBcgDCkDACKOATcBACAZIAEpAwAiiwE3AQAgGCAKKQMAIowBNwEAIBogAikDACKNATcBACASIAkpAwAijwE3AQAgECCLATcBACAdII4BNwEAIAQgBCkDsAEikAE3AUAgFCCOATcDACAPIIsBNwMAIAsgjwE3AwAgDiCNATcDACAVIIwBNwMAIAQgkAE3A3AgISAUKQMANwIAICAgDykDADcCACAwIAspAwA3AgAgHyAOKQMANwIAICIgFSkDADcCACAEIAQpA3A3AqwBIBxBATYCACAcQQc2AjggHCAEKQIENwIEIBxBDGogBEEMaikCADcCACAcQRRqIARBFGopAgA3AgAgHEEcaiAEQRxqKQIANwIAIBxBJGogBEEkaikCADcCACAcQSxqIARBLGopAgA3AgAgHEE0aiAEQTRqKAIANgIAIBxBPGogBCkCqAE3AgAgHEHEAGogDSkCADcCACAcQcwAaiAKKQIANwIAIBxB1ABqIAIpAgA3AgAgHEHcAGogCSkCADcCACAcQeQAaiABKQIANwIAIBxB7ABqIAwoAgA2AgBB2b7CAC0AABpB8ABBCBCwBCIlRQ1MIBFBk5fAAEHAABCmASAELQCoAQ0EIBcgDCkDACKOATcBACAZIAEpAwAiiwE3AQAgGCAKKQMAIowBNwEAIBogAikDACKNATcBACASIAkpAwAijwE3AQAgECCLATcBACAdII4BNwEAIAQgBCkDsAEikAE3AUAgASCOATcDACAJIIsBNwMAIAIgjwE3AwAgCiCNATcDACANIIwBNwMAIAQgkAE3A6gBICggASkDADcCACApIAkpAwA3AgAgKiACKQMANwIAICsgCikDADcCACAuIA0pAwA3AgAgBCAEKQOoATcCCCARQdOXwABBPxCmASAELQCoAQ0FIBcgDCkDACKOATcBACAZIAEpAwAiiwE3AQAgGCAKKQMAIowBNwEAIBogAikDACKNATcBACASIAkpAwAijwE3AQAgECCLATcBACAdII4BNwEAIAQgBCkDsAEikAE3AUAgFCCOATcDACAPIIsBNwMAIAsgjwE3AwAgDiCNATcDACAVIIwBNwMAIAQgkAE3A3AgISAUKQMANwIAICAgDykDADcCACAwIAspAwA3AgAgHyAOKQMANwIAICIgFSkDADcCACAEIAQpA3A3AqwBICVBAjYCACAlQQg2AjggJSAEKQIENwIEICVBDGogBEEMaikCADcCACAlQRRqIARBFGopAgA3AgAgJUEcaiAEQRxqKQIANwIAICVBJGogBEEkaikCADcCACAlQSxqIARBLGopAgA3AgAgJUE0aiAEQTRqKAIANgIAICVBPGogBCkCqAE3AgAgJUHEAGogDSkCADcCACAlQcwAaiAKKQIANwIAICVB1ABqIAIpAgA3AgAgJUHcAGogCSkCADcCACAlQeQAaiABKQIANwIAICVB7ABqIAwoAgA2AgBB2b7CAC0AABpB8ABBCBCwBCIyRQ1MIBFBkpjAAEHAABCmASAELQCoAQ0GIBcgDCkDACKOATcBACAZIAEpAwAiiwE3AQAgGCAKKQMAIowBNwEAIBogAikDACKNATcBACASIAkpAwAijwE3AQAgECCLATcBACAdII4BNwEAIAQgBCkDsAEikAE3AUAgASCOATcDACAJIIsBNwMAIAIgjwE3AwAgCiCNATcDACANIIwBNwMAIAQgkAE3A6gBICggASkDADcCACApIAkpAwA3AgAgKiACKQMANwIAICsgCikDADcCACAuIA0pAwA3AgAgBCAEKQOoATcCCCARQdKYwABBwAAQpgEgBC0AqAENByAXIAwpAwAijgE3AQAgGSABKQMAIosBNwEAIBggCikDACKMATcBACAaIAIpAwAijQE3AQAgEiAJKQMAIo8BNwEAIBAgiwE3AQAgHSCOATcBACAEIAQpA7ABIpABNwFAIBQgjgE3AwAgDyCLATcDACALII8BNwMAIA4gjQE3AwAgFSCMATcDACAEIJABNwNwICEgFCkDADcCACAgIA8pAwA3AgAgMCALKQMANwIAIB8gDikDADcCACAiIBUpAwA3AgAgBCAEKQNwNwKsASAyQQM2AgAgMkEJNgI4IDIgBCkCBDcCBCAyQQxqIARBDGopAgA3AgAgMkEUaiAEQRRqKQIANwIAIDJBHGogBEEcaikCADcCACAyQSRqIARBJGopAgA3AgAgMkEsaiAEQSxqKQIANwIAIDJBNGogBEE0aigCADYCACAyQTxqIAQpAqgBNwIAIDJBxABqIA0pAgA3AgAgMkHMAGogCikCADcCACAyQdQAaiACKQIANwIAIDJB3ABqIAkpAgA3AgAgMkHkAGogASkCADcCACAyQewAaiAMKAIANgIAQdm+wgAtAAAaQfAAQQgQsAQiL0UNTCARQZKZwABBwAAQpgEgBC0AqAENCCAXIAwpAwAijgE3AQAgGSABKQMAIosBNwEAIBggCikDACKMATcBACAaIAIpAwAijQE3AQAgEiAJKQMAIo8BNwEAIBAgiwE3AQAgHSCOATcBACAEIAQpA7ABIpABNwFAIAEgjgE3AwAgCSCLATcDACACII8BNwMAIAogjQE3AwAgDSCMATcDACAEIJABNwOoASAoIAEpAwA3AgAgKSAJKQMANwIAICogAikDADcCACArIAopAwA3AgAgLiANKQMANwIAIAQgBCkDqAE3AgggEUHSmcAAQT8QpgEgBC0AqAENCSAXIAwpAwAijgE3AQAgGSABKQMAIosBNwEAIBggCikDACKMATcBACAaIAIpAwAijQE3AQAgEiAJKQMAIo8BNwEAIBAgiwE3AQAgHSCOATcBACAEIAQpA7ABIpABNwFAIBQgjgE3AwAgDyCLATcDACALII8BNwMAIA4gjQE3AwAgFSCMATcDACAEIJABNwNwICEgFCkDADcCACAgIA8pAwA3AgAgMCALKQMANwIAIB8gDikDADcCACAiIBUpAwA3AgAgBCAEKQNwNwKsASAvQQQ2AgAgL0EKNgI4IC8gBCkCBDcCBCAvQQxqIARBDGopAgA3AgAgL0EUaiAEQRRqKQIANwIAIC9BHGogBEEcaikCADcCACAvQSRqIARBJGopAgA3AgAgL0EsaiAEQSxqKQIANwIAIC9BNGogBEE0aigCADYCACAvQTxqIAQpAqgBNwIAIC9BxABqIA0pAgA3AgAgL0HMAGogCikCADcCACAvQdQAaiACKQIANwIAIC9B3ABqIAkpAgA3AgAgL0HkAGogASkCADcCACAvQewAaiAMKAIANgIAQdm+wgAtAAAaQfAAQQgQsAQiNEUNTCARQZGawABBwAAQpgEgBC0AqAENCiAXIAwpAwAijgE3AQAgGSABKQMAIosBNwEAIBggCikDACKMATcBACAaIAIpAwAijQE3AQAgEiAJKQMAIo8BNwEAIBAgiwE3AQAgHSCOATcBACAEIAQpA7ABIpABNwFAIAEgjgE3AwAgCSCLATcDACACII8BNwMAIAogjQE3AwAgDSCMATcDACAEIJABNwOoASAoIAEpAwA3AgAgKSAJKQMANwIAICogAikDADcCACArIAopAwA3AgAgLiANKQMANwIAIAQgBCkDqAE3AgggEUHRmsAAQcAAEKYBIAQtAKgBDQsgFyAMKQMAIo4BNwEAIBkgASkDACKLATcBACAYIAopAwAijAE3AQAgGiACKQMAIo0BNwEAIBIgCSkDACKPATcBACAQIIsBNwEAIB0gjgE3AQAgBCAEKQOwASKQATcBQCAUII4BNwMAIA8giwE3AwAgCyCPATcDACAOII0BNwMAIBUgjAE3AwAgBCCQATcDcCAhIBQpAwA3AgAgICAPKQMANwIAIDAgCykDADcCACAfIA4pAwA3AgAgIiAVKQMANwIAIAQgBCkDcDcCrAEgNEEFNgIAIDRBCzYCOCA0IAQpAgQ3AgQgNEEMaiAEQQxqKQIANwIAIDRBFGogBEEUaikCADcCACA0QRxqIARBHGopAgA3AgAgNEEkaiAEQSRqKQIANwIAIDRBLGogBEEsaikCADcCACA0QTRqIARBNGooAgA2AgAgNEE8aiAEKQKoATcCACA0QcQAaiANKQIANwIAIDRBzABqIAopAgA3AgAgNEHUAGogAikCADcCACA0QdwAaiAJKQIANwIAIDRB5ABqIAEpAgA3AgAgNEHsAGogDCgCADYCAEHZvsIALQAAGkE4QQgQsAQiPUUNTSARQZGbwABBwAAQpgEgBC0AqAENDCAXIAwpAwAijgE3AQAgGSABKQMAIosBNwEAIBggCikDACKMATcBACAaIAIpAwAijQE3AQAgEiAJKQMAIo8BNwEAIBAgiwE3AQAgHSCOATcBACAEIAQpA7ABIpABNwFAIBQgjgE3AwAgDyCLATcDACALII8BNwMAIA4gjQE3AwAgFSCMATcDACAEIJABNwNwICEgFCkDADcCACAgIA8pAwA3AgAgMCALKQMANwIAIB8gDikDADcCACAiIBUpAwA3AgAgBCAEKQNwNwKsASA9QQY2AgAgPSAEKQKoATcCBCA9QQxqIA0pAgA3AgAgPUEUaiAKKQIANwIAID1BHGogAikCADcCACA9QSRqIAkpAgA3AgAgPUEsaiABKQIANwIAID1BNGogDCgCADYCAEHZvsIALQAAGkHwAEEIELAEIjVFDUwgEUHRm8AAQcAAEKYBIAQtAKgBDQ0gFyAMKQMAIo4BNwEAIBkgASkDACKLATcBACAYIAopAwAijAE3AQAgGiACKQMAIo0BNwEAIBIgCSkDACKPATcBACAQIIsBNwEAIB0gjgE3AQAgBCAEKQOwASKQATcBQCABII4BNwMAIAkgiwE3AwAgAiCPATcDACAKII0BNwMAIA0gjAE3AwAgBCCQATcDqAEgKCABKQMANwIAICkgCSkDADcCACAqIAIpAwA3AgAgKyAKKQMANwIAIC4gDSkDADcCACAEIAQpA6gBNwIIIBFBkZzAAEHAABCmASAELQCoAQ0OIBcgDCkDACKOATcBACAZIAEpAwAiiwE3AQAgGCAKKQMAIowBNwEAIBogAikDACKNATcBACASIAkpAwAijwE3AQAgECCLATcBACAdII4BNwEAIAQgBCkDsAEikAE3AUAgFCCOATcDACAPIIsBNwMAIAsgjwE3AwAgDiCNATcDACAVIIwBNwMAIAQgkAE3A3AgISAUKQMANwIAICAgDykDADcCACAwIAspAwA3AgAgHyAOKQMANwIAICIgFSkDADcCACAEIAQpA3A3AqwBIDVBATYCACA1QQc2AjggNSAEKQIENwIEIDVBDGogBEEMaikCADcCACA1QRRqIARBFGopAgA3AgAgNUEcaiAEQRxqKQIANwIAIDVBJGogBEEkaikCADcCACA1QSxqIARBLGopAgA3AgAgNUE0aiAEQTRqKAIANgIAIDVBPGogBCkCqAE3AgAgNUHEAGogDSkCADcCACA1QcwAaiAKKQIANwIAIDVB1ABqIAIpAgA3AgAgNUHcAGogCSkCADcCACA1QeQAaiABKQIANwIAIDVB7ABqIAwoAgA2AgBB2b7CAC0AABpB8ABBCBCwBCI4RQ1MIBFB0ZzAAEHAABCmASAELQCoAQ0PIBcgDCkDACKOATcBACAZIAEpAwAiiwE3AQAgGCAKKQMAIowBNwEAIBogAikDACKNATcBACASIAkpAwAijwE3AQAgECCLATcBACAdII4BNwEAIAQgBCkDsAEikAE3AUAgASCOATcDACAJIIsBNwMAIAIgjwE3AwAgCiCNATcDACANIIwBNwMAIAQgkAE3A6gBICggASkDADcCACApIAkpAwA3AgAgKiACKQMANwIAICsgCikDADcCACAuIA0pAwA3AgAgBCAEKQOoATcCCCARQZGdwABBPxCmASAELQCoAQ0QIBcgDCkDACKOATcBACAZIAEpAwAiiwE3AQAgGCAKKQMAIowBNwEAIBogAikDACKNATcBACASIAkpAwAijwE3AQAgECCLATcBACAdII4BNwEAIAQgBCkDsAEikAE3AUAgFCCOATcDACAPIIsBNwMAIAsgjwE3AwAgDiCNATcDACAVIIwBNwMAIAQgkAE3A3AgISAUKQMANwIAICAgDykDADcCACAwIAspAwA3AgAgHyAOKQMANwIAICIgFSkDADcCACAEIAQpA3A3AqwBIDhBAjYCACA4QQg2AjggOCAEKQIENwIEIDhBDGogBEEMaikCADcCACA4QRRqIARBFGopAgA3AgAgOEEcaiAEQRxqKQIANwIAIDhBJGogBEEkaikCADcCACA4QSxqIARBLGopAgA3AgAgOEE0aiAEQTRqKAIANgIAIDhBPGogBCkCqAE3AgAgOEHEAGogDSkCADcCACA4QcwAaiAKKQIANwIAIDhB1ABqIAIpAgA3AgAgOEHcAGogCSkCADcCACA4QeQAaiABKQIANwIAIDhB7ABqIAwoAgA2AgBB2b7CAC0AABpB8ABBCBCwBCI3RQ1MIBFB0J3AAEE/EKYBIAQtAKgBDREgFyAMKQMAIo4BNwEAIBkgASkDACKLATcBACAYIAopAwAijAE3AQAgGiACKQMAIo0BNwEAIBIgCSkDACKPATcBACAQIIsBNwEAIB0gjgE3AQAgBCAEKQOwASKQATcBQCABII4BNwMAIAkgiwE3AwAgAiCPATcDACAKII0BNwMAIA0gjAE3AwAgBCCQATcDqAEgKCABKQMANwIAICkgCSkDADcCACAqIAIpAwA3AgAgKyAKKQMANwIAIC4gDSkDADcCACAEIAQpA6gBNwIIIBFBj57AAEE/EKYBIAQtAKgBDRIgFyAMKQMAIo4BNwEAIBkgASkDACKLATcBACAYIAopAwAijAE3AQAgGiACKQMAIo0BNwEAIBIgCSkDACKPATcBACAQIIsBNwEAIB0gjgE3AQAgBCAEKQOwASKQATcBQCAUII4BNwMAIA8giwE3AwAgCyCPATcDACAOII0BNwMAIBUgjAE3AwAgBCCQATcDcCAhIBQpAwA3AgAgICAPKQMANwIAIDAgCykDADcCACAfIA4pAwA3AgAgIiAVKQMANwIAIAQgBCkDcDcCrAEgN0EDNgIAIDdBCTYCOCA3IAQpAgQ3AgQgN0EMaiAEQQxqKQIANwIAIDdBFGogBEEUaikCADcCACA3QRxqIARBHGopAgA3AgAgN0EkaiAEQSRqKQIANwIAIDdBLGogBEEsaikCADcCACA3QTRqIARBNGooAgA2AgAgN0E8aiAEKQKoATcCACA3QcQAaiANKQIANwIAIDdBzABqIAopAgA3AgAgN0HUAGogAikCADcCACA3QdwAaiAJKQIANwIAIDdB5ABqIAEpAgA3AgAgN0HsAGogDCgCADYCAEHZvsIALQAAGkHwAEEIELAEIjlFDUwgEUHOnsAAQcAAEKYBIAQtAKgBDRMgFyAMKQMAIo4BNwEAIBkgASkDACKLATcBACAYIAopAwAijAE3AQAgGiACKQMAIo0BNwEAIBIgCSkDACKPATcBACAQIIsBNwEAIB0gjgE3AQAgBCAEKQOwASKQATcBQCABII4BNwMAIAkgiwE3AwAgAiCPATcDACAKII0BNwMAIA0gjAE3AwAgBCCQATcDqAEgKCABKQMANwIAICkgCSkDADcCACAqIAIpAwA3AgAgKyAKKQMANwIAIC4gDSkDADcCACAEIAQpA6gBNwIIIBFBjp/AAEE/EKYBIAQtAKgBDRQgFyAMKQMAIo4BNwEAIBkgASkDACKLATcBACAYIAopAwAijAE3AQAgGiACKQMAIo0BNwEAIBIgCSkDACKPATcBACAQIIsBNwEAIB0gjgE3AQAgBCAEKQOwASKQATcBQCAUII4BNwMAIA8giwE3AwAgCyCPATcDACAOII0BNwMAIBUgjAE3AwAgBCCQATcDcCAhIBQpAwA3AgAgICAPKQMANwIAIDAgCykDADcCACAfIA4pAwA3AgAgIiAVKQMANwIAIAQgBCkDcDcCrAEgOUEENgIAIDlBCjYCOCA5IAQpAgQ3AgQgOUEMaiAEQQxqKQIANwIAIDlBFGogBEEUaikCADcCACA5QRxqIARBHGopAgA3AgAgOUEkaiAEQSRqKQIANwIAIDlBLGogBEEsaikCADcCACA5QTRqIARBNGooAgA2AgAgOUE8aiAEKQKoATcCACA5QcQAaiANKQIANwIAIDlBzABqIAopAgA3AgAgOUHUAGogAikCADcCACA5QdwAaiAJKQIANwIAIDlB5ABqIAEpAgA3AgAgOUHsAGogDCgCADYCAEHZvsIALQAAGkHwAEEIELAEIjtFDUwgEUHNn8AAQcAAEKYBIAQtAKgBDRUgFyAMKQMAIo4BNwEAIBkgASkDACKLATcBACAYIAopAwAijAE3AQAgGiACKQMAIo0BNwEAIBIgCSkDACKPATcBACAQIIsBNwEAIB0gjgE3AQAgBCAEKQOwASKQATcBQCABII4BNwMAIAkgiwE3AwAgAiCPATcDACAKII0BNwMAIA0gjAE3AwAgBCCQATcDqAEgKCABKQMANwIAICkgCSkDADcCACAqIAIpAwA3AgAgKyAKKQMANwIAIC4gDSkDADcCACAEIAQpA6gBNwIIIBFBjaDAAEHAABCmASAELQCoAQ0WIBcgDCkDACKOATcBACAZIAEpAwAiiwE3AQAgGCAKKQMAIowBNwEAIBogAikDACKNATcBACASIAkpAwAijwE3AQAgECCLATcBACAdII4BNwEAIAQgBCkDsAEikAE3AUAgFCCOATcDACAPIIsBNwMAIAsgjwE3AwAgDiCNATcDACAVIIwBNwMAIAQgkAE3A3AgISAUKQMANwIAICAgDykDADcCACAwIAspAwA3AgAgHyAOKQMANwIAICIgFSkDADcCACAEIAQpA3A3AqwBIDtBBTYCACA7QQs2AjggOyAEKQIENwIEIDtBDGogBEEMaikCADcCACA7QRRqIARBFGopAgA3AgAgO0EcaiAEQRxqKQIANwIAIDtBJGogBEEkaikCADcCACA7QSxqIARBLGopAgA3AgAgO0E0aiAEQTRqKAIANgIAIDtBPGogBCkCqAE3AgAgO0HEAGogDSkCADcCACA7QcwAaiAKKQIANwIAIDtB1ABqIAIpAgA3AgAgO0HcAGogCSkCADcCACA7QeQAaiABKQIANwIAIDtB7ABqIAwoAgA2AgAgNkGMAWpBAjYCACA2QYgBaiA7NgIAIDZBgAFqQoKAgIAgNwIAIDZB/ABqIDk2AgAgNkH0AGpCgoCAgCA3AgAgNkHwAGogNzYCACA2QegAakKCgICAIDcCACA2QeQAaiA4NgIAIDZB3ABqQoKAgIAgNwIAIDZB2ABqIDU2AgAgNkHQAGpCgYCAgCA3AgAgNkHMAGogPTYCACA2QcQAakKCgICAEDcCACA2QUBrIDQ2AgAgNkE4akKCgICAIDcCACA2QTRqIC82AgAgNkEsakKCgICAIDcCACA2QShqIDI2AgAgNkEgakKCgICAIDcCACA2QRxqICU2AgAgNkEUakKCgICAIDcCACA2QRBqIBw2AgAgNkKCgICAIDcCCCA2ICw2AgQgNkECNgIAQdm+wgAtAAAaQZABQQQQsAQiLEUNS0HZvsIALQAAGkE4QQgQsAQiHEUNTSARQZCWwABBARCmASAELQCoAQ0XIBcgDCkDACKOATcBACAZIAEpAwAiiwE3AQAgGCAKKQMAIowBNwEAIBogAikDACKNATcBACASIAkpAwAijwE3AQAgECCLATcBACAdII4BNwEAIAQgBCkDsAEikAE3AUAgFCCOATcDACAPIIsBNwMAIAsgjwE3AwAgDiCNATcDACAVIIwBNwMAIAQgkAE3A3AgISAUKQMANwIAICAgDykDADcCACAwIAspAwA3AgAgHyAOKQMANwIAICIgFSkDADcCACAEIAQpA3A3AqwBIBxBADYCACAcIAQpAqgBNwIEIBxBDGogDSkCADcCACAcQRRqIAopAgA3AgAgHEEcaiACKQIANwIAIBxBJGogCSkCADcCACAcQSxqIAEpAgA3AgAgHEE0aiAMKAIANgIAQdm+wgAtAAAaQThBCBCwBCIlRQ1NIBFBzaDAAEHAABCmASAELQCoAQ0YIBcgDCkDACKOATcBACAZIAEpAwAiiwE3AQAgGCAKKQMAIowBNwEAIBogAikDACKNATcBACASIAkpAwAijwE3AQAgECCLATcBACAdII4BNwEAIAQgBCkDsAEikAE3AUAgFCCOATcDACAPIIsBNwMAIAsgjwE3AwAgDiCNATcDACAVIIwBNwMAIAQgkAE3A3AgISAUKQMANwIAICAgDykDADcCACAwIAspAwA3AgAgHyAOKQMANwIAICIgFSkDADcCACAEIAQpA3A3AqwBICVBATYCACAlIAQpAqgBNwIEICVBDGogDSkCADcCACAlQRRqIAopAgA3AgAgJUEcaiACKQIANwIAICVBJGogCSkCADcCACAlQSxqIAEpAgA3AgAgJUE0aiAMKAIANgIAQdm+wgAtAAAaQThBCBCwBCIyRQ1NIBFBjaHAAEHAABCmASAELQCoAQ0ZIBcgDCkDACKOATcBACAZIAEpAwAiiwE3AQAgGCAKKQMAIowBNwEAIBogAikDACKNATcBACASIAkpAwAijwE3AQAgECCLATcBACAdII4BNwEAIAQgBCkDsAEikAE3AUAgFCCOATcDACAPIIsBNwMAIAsgjwE3AwAgDiCNATcDACAVIIwBNwMAIAQgkAE3A3AgISAUKQMANwIAICAgDykDADcCACAwIAspAwA3AgAgHyAOKQMANwIAICIgFSkDADcCACAEIAQpA3A3AqwBIDJBAjYCACAyIAQpAqgBNwIEIDJBDGogDSkCADcCACAyQRRqIAopAgA3AgAgMkEcaiACKQIANwIAIDJBJGogCSkCADcCACAyQSxqIAEpAgA3AgAgMkE0aiAMKAIANgIAQdm+wgAtAAAaQThBCBCwBCIvRQ1NIBFBkZvAAEHAABCmASAELQCoAQ0aIBcgDCkDACKOATcBACAZIAEpAwAiiwE3AQAgGCAKKQMAIowBNwEAIBogAikDACKNATcBACASIAkpAwAijwE3AQAgECCLATcBACAdII4BNwEAIAQgBCkDsAEikAE3AUAgFCCOATcDACAPIIsBNwMAIAsgjwE3AwAgDiCNATcDACAVIIwBNwMAIAQgkAE3A3AgISAUKQMANwIAICAgDykDADcCACAwIAspAwA3AgAgHyAOKQMANwIAICIgFSkDADcCACAEIAQpA3A3AqwBIC9BAzYCACAvIAQpAqgBNwIEIC9BDGogVikCADcCACAvQRRqIAopAgA3AgAgL0EcaiACKQIANwIAIC9BJGogCSkCADcCACAvQSxqIAEpAgA3AgAgL0E0aiAMKAIANgIAQdm+wgAtAAAaQThBCBCwBCI0RQ1NIBFBzaHAAEEwEKYBIAQtAKgBDRsgFyAMKQMAIo4BNwEAIBkgASkDACKLATcBACAYIAopAwAijAE3AQAgGiACKQMAIo0BNwEAIBIgCSkDACKPATcBACAQIIsBNwEAIB0gjgE3AQAgBCAEKQOwASKQATcBQCAUII4BNwMAIA8giwE3AwAgCyCPATcDACAOII0BNwMAIBUgjAE3AwAgBCCQATcDcCAhIBQpAwA3AgAgICAPKQMANwIAIDAgCykDADcCACAfIA4pAwA3AgAgIiAVKQMANwIAIAQgBCkDcDcCrAEgNEEENgIAIDQgBCkCqAE3AgQgNEEMaiAEQbABaikCADcCACA0QRRqIAopAgA3AgAgNEEcaiACKQIANwIAIDRBJGogCSkCADcCACA0QSxqIAEpAgA3AgAgNEE0aiAMKAIANgIAQdm+wgAtAAAaQThBCBCwBCI1RQ1NIBFB/aHAAEEwEKYBIAQtAKgBDRwgFyAMKQMAIo4BNwEAIBkgASkDACKLATcBACAYIAopAwAijAE3AQAgGiACKQMAIo0BNwEAIBIgCSkDACKPATcBACAQIIsBNwEAIB0gjgE3AQAgBCAEKQOwASKQATcBQCAUII4BNwMAIA8giwE3AwAgCyCPATcDACAOII0BNwMAIBUgjAE3AwAgBCCQATcDcCAhIBQpAwA3AgAgICAPKQMANwIAIDAgCykDADcCACAfIA4pAwA3AgAgIiAVKQMANwIAIAQgBCkDcDcCrAEgNUEFNgIAIDUgBCkCqAE3AgQgNUEMaiAEQbABaikCADcCACA1QRRqIAopAgA3AgAgNUEcaiACKQIANwIAIDVBJGogCSkCADcCACA1QSxqIAEpAgA3AgAgNUE0aiAMKAIANgIAQdm+wgAtAAAaQThBCBCwBCI4RQ1NIBFBkJbAAEEBEKYBIAQtAKgBDR0gFyAMKQMAIo4BNwEAIBkgASkDACKLATcBACAYIAopAwAijAE3AQAgGiACKQMAIo0BNwEAIBIgCSkDACKPATcBACAQIIsBNwEAIB0gjgE3AQAgBCAEKQOwASKQATcBQCAUII4BNwMAIA8giwE3AwAgCyCPATcDACAOII0BNwMAIBUgjAE3AwAgBCCQATcDcCAhIBQpAwA3AgAgICAPKQMANwIAIDAgCykDADcCACAfIA4pAwA3AgAgIiAVKQMANwIAIAQgBCkDcDcCrAEgOEEGNgIAIDggBCkCqAE3AgQgOEEMaiAEQbABaikCADcCACA4QRRqIAopAgA3AgAgOEEcaiACKQIANwIAIDhBJGogCSkCADcCACA4QSxqIAEpAgA3AgAgOEE0aiAMKAIANgIAQdm+wgAtAAAaQThBCBCwBCI3RQ1NIBFBzaDAAEHAABCmASAELQCoAQ0eIBcgDCkDACKOATcBACAZIAEpAwAiiwE3AQAgGCAKKQMAIowBNwEAIBogAikDACKNATcBACASIAkpAwAijwE3AQAgECCLATcBACAdII4BNwEAIAQgBCkDsAEikAE3AUAgFCCOATcDACAPIIsBNwMAIAsgjwE3AwAgDiCNATcDACAVIIwBNwMAIAQgkAE3A3AgISAUKQMANwIAICAgDykDADcCACAwIAspAwA3AgAgHyAOKQMANwIAICIgFSkDADcCACAEIAQpA3A3AqwBIDdBBzYCACA3IAQpAqgBNwIEIDdBDGogBEGwAWopAgA3AgAgN0EUaiAKKQIANwIAIDdBHGogAikCADcCACA3QSRqIAkpAgA3AgAgN0EsaiABKQIANwIAIDdBNGogDCgCADYCAEHZvsIALQAAGkE4QQgQsAQiOUUNTSARQY2hwABBwAAQpgEgBC0AqAENHyAXIAwpAwAijgE3AQAgGSABKQMAIosBNwEAIBggCikDACKMATcBACAaIAIpAwAijQE3AQAgEiAJKQMAIo8BNwEAIBAgiwE3AQAgHSCOATcBACAEIAQpA7ABIpABNwFAIBQgjgE3AwAgDyCLATcDACALII8BNwMAIA4gjQE3AwAgFSCMATcDACAEIJABNwNwICEgFCkDADcCACAgIA8pAwA3AgAgMCALKQMANwIAIB8gDikDADcCACAiIBUpAwA3AgAgBCAEKQNwNwKsASA5QQg2AgAgOSAEKQKoATcCBCA5QQxqIARBsAFqKQIANwIAIDlBFGogCikCADcCACA5QRxqIAIpAgA3AgAgOUEkaiAJKQIANwIAIDlBLGogASkCADcCACA5QTRqIAwoAgA2AgBB2b7CAC0AABpBOEEIELAEIjtFDU0gEUGRm8AAQcAAEKYBIAQtAKgBDSAgFyAMKQMAIo4BNwEAIBkgASkDACKLATcBACAYIAopAwAijAE3AQAgGiACKQMAIo0BNwEAIBIgCSkDACKPATcBACAQIIsBNwEAIB0gjgE3AQAgBCAEKQOwASKQATcBQCAUII4BNwMAIA8giwE3AwAgCyCPATcDACAOII0BNwMAIBUgjAE3AwAgBCCQATcDcCAhIBQpAwA3AgAgICAPKQMANwIAIDAgCykDADcCACAfIA4pAwA3AgAgIiAVKQMANwIAIAQgBCkDcDcCrAEgO0EJNgIAIDsgBCkCqAE3AgQgO0EMaiAEQbABaikCADcCACA7QRRqIAopAgA3AgAgO0EcaiACKQIANwIAIDtBJGogCSkCADcCACA7QSxqIAEpAgA3AgAgO0E0aiAMKAIANgIAQdm+wgAtAAAaQThBCBCwBCI9RQ1NIBFBzaHAAEEwEKYBIAQtAKgBDSEgFyAMKQMAIo4BNwEAIBkgASkDACKLATcBACAYIAopAwAijAE3AQAgGiACKQMAIo0BNwEAIBIgCSkDACKPATcBACAQIIsBNwEAIB0gjgE3AQAgBCAEKQOwASKQATcBQCAUII4BNwMAIA8giwE3AwAgCyCPATcDACAOII0BNwMAIBUgjAE3AwAgBCCQATcDcCAhIBQpAwA3AgAgICAPKQMANwIAIDAgCykDADcCACAfIA4pAwA3AgAgIiAVKQMANwIAIAQgBCkDcDcCrAEgPUEKNgIAID0gBCkCqAE3AgQgPUEMaiAEQbABaikCADcCACA9QRRqIAopAgA3AgAgPUEcaiACKQIANwIAID1BJGogCSkCADcCACA9QSxqIAEpAgA3AgAgPUE0aiAMKAIANgIAQdm+wgAtAAAaQThBCBCwBCJCRQ1NIBFB/aHAAEEwEKYBIAQtAKgBDSIgFyAMKQMAIo4BNwEAIBkgASkDACKLATcBACAYIAopAwAijAE3AQAgGiACKQMAIo0BNwEAIBIgCSkDACKPATcBACAQIIsBNwEAIB0gjgE3AQAgBCAEKQOwASKQATcBQCAUII4BNwMAIA8giwE3AwAgCyCPATcDACAOII0BNwMAIBUgjAE3AwAgBCCQATcDcCAhIBQpAwA3AgAgICAPKQMANwIAIDAgCykDADcCACAfIA4pAwA3AgAgIiAVKQMANwIAIAQgBCkDcDcCrAEgQkELNgIAIEIgBCkCqAE3AgQgQkEMaiAEQbABaikCADcCACBCQRRqIAopAgA3AgAgQkEcaiACKQIANwIAIEJBJGogCSkCADcCACBCQSxqIAEpAgA3AgAgQkE0aiAMKAIANgIAICxBjAFqQQE2AgAgLEGIAWogQjYCACAsQYABakKBgICAEDcCACAsQfwAaiA9NgIAICxB9ABqQoGAgIAQNwIAICxB8ABqIDs2AgAgLEHoAGpCgYCAgBA3AgAgLEHkAGogOTYCACAsQdwAakKBgICAEDcCACAsQdgAaiA3NgIAICxB0ABqQoGAgIAQNwIAICxBzABqIDg2AgAgLEHEAGpCgYCAgBA3AgAgLEFAayA1NgIAICxBOGpCgYCAgBA3AgAgLEE0aiA0NgIAICxBLGpCgYCAgBA3AgAgLEEoaiAvNgIAICxBIGpCgYCAgBA3AgAgLEEcaiAyNgIAICxBFGpCgYCAgBA3AgAgLEEQaiAlNgIAICxCgYCAgBA3AgggLCAcNgIEICxBATYCAEHZvsIALQAAGkGQAUEEELAEIhxFDUtB2b7CAC0AABpB8ABBCBCwBCIlRQ1MIBFBkJbAAEEBEKYBIAQtAKgBDSMgFyAMKQMAIo4BNwEAIBkgASkDACKLATcBACAYIAopAwAijAE3AQAgGiACKQMAIo0BNwEAIBIgCSkDACKPATcBACAQIIsBNwEAIB0gjgE3AQAgBCAEKQOwASKQATcBQCABII4BNwMAIAkgiwE3AwAgAiCPATcDACAKII0BNwMAIA0gjAE3AwAgBCCQATcDqAEgKCABKQMANwIAICkgCSkDADcCACAqIAIpAwA3AgAgKyAKKQMANwIAIC4gDSkDADcCACAEIAQpA6gBNwIIIBFBkZbAAEECEKYBIAQtAKgBDSQgFyAMKQMAIo4BNwEAIBkgASkDACKLATcBACAYIAopAwAijAE3AQAgGiACKQMAIo0BNwEAIBIgCSkDACKPATcBACAQIIsBNwEAIB0gjgE3AQAgBCAEKQOwASKQATcBQCAUII4BNwMAIA8giwE3AwAgCyCPATcDACAOII0BNwMAIBUgjAE3AwAgBCCQATcDcCAhIBQpAwA3AgAgICAPKQMANwIAIDAgCykDADcCACAfIA4pAwA3AgAgIiAVKQMANwIAIAQgBCkDcDcCrAEgJUEANgIAICVBBjYCOCAlIAQpAgQ3AgQgJUEMaiAEQQxqKQIANwIAICVBFGogBEEUaikCADcCACAlQRxqIARBHGopAgA3AgAgJUEkaiAEQSRqKQIANwIAICVBLGogBEEsaikCADcCACAlQTRqIARBNGooAgA2AgAgJUE8aiAEKQKoATcCACAlQcQAaiANKQIANwIAICVBzABqIAopAgA3AgAgJUHUAGogAikCADcCACAlQdwAaiAJKQIANwIAICVB5ABqIAEpAgA3AgAgJUHsAGogDCgCADYCAEHZvsIALQAAGkHwAEEIELAEIjJFDUwgEUGtosAAQcAAEKYBIAQtAKgBDSUgFyAMKQMAIo4BNwEAIBkgASkDACKLATcBACAYIAopAwAijAE3AQAgGiACKQMAIo0BNwEAIBIgCSkDACKPATcBACAQIIsBNwEAIB0gjgE3AQAgBCAEKQOwASKQATcBQCABII4BNwMAIAkgiwE3AwAgAiCPATcDACAKII0BNwMAIA0gjAE3AwAgBCCQATcDqAEgKCABKQMANwIAICkgCSkDADcCACAqIAIpAwA3AgAgKyAKKQMANwIAIC4gDSkDADcCACAEIAQpA6gBNwIIIBFB7aLAAEHAABCmASAELQCoAQ0mIBcgDCkDACKOATcBACAZIAEpAwAiiwE3AQAgGCAKKQMAIowBNwEAIBogAikDACKNATcBACASIAkpAwAijwE3AQAgECCLATcBACAdII4BNwEAIAQgBCkDsAEikAE3AUAgFCCOATcDACAPIIsBNwMAIAsgjwE3AwAgDiCNATcDACAVIIwBNwMAIAQgkAE3A3AgISAUKQMANwIAICAgDykDADcCACAwIAspAwA3AgAgHyAOKQMANwIAICIgFSkDADcCACAEIAQpA3A3AqwBIDJBATYCACAyQQc2AjggMiAEKQIENwIEIDJBDGogBEEMaikCADcCACAyQRRqIARBFGopAgA3AgAgMkEcaiAEQRxqKQIANwIAIDJBJGogBEEkaikCADcCACAyQSxqIARBLGopAgA3AgAgMkE0aiAEQTRqKAIANgIAIDJBPGogBCkCqAE3AgAgMkHEAGogDSkCADcCACAyQcwAaiAKKQIANwIAIDJB1ABqIAIpAgA3AgAgMkHcAGogCSkCADcCACAyQeQAaiABKQIANwIAIDJB7ABqIAwoAgA2AgBB2b7CAC0AABpB8ABBCBCwBCIvRQ1MIBFBraPAAEE/EKYBIAQtAKgBDScgFyAMKQMAIo4BNwEAIBkgASkDACKLATcBACAYIAopAwAijAE3AQAgGiACKQMAIo0BNwEAIBIgCSkDACKPATcBACAQIIsBNwEAIB0gjgE3AQAgBCAEKQOwASKQATcBQCABII4BNwMAIAkgiwE3AwAgAiCPATcDACAKII0BNwMAIA0gjAE3AwAgBCCQATcDqAEgKCABKQMANwIAICkgCSkDADcCACAqIAIpAwA3AgAgKyAKKQMANwIAIC4gDSkDADcCACAEIAQpA6gBNwIIIBFB7KPAAEHAABCmASAELQCoAQ0oIBcgDCkDACKOATcBACAZIAEpAwAiiwE3AQAgGCAKKQMAIowBNwEAIBogAikDACKNATcBACASIAkpAwAijwE3AQAgECCLATcBACAdII4BNwEAIAQgBCkDsAEikAE3AUAgFCCOATcDACAPIIsBNwMAIAsgjwE3AwAgDiCNATcDACAVIIwBNwMAIAQgkAE3A3AgISAUKQMANwIAICAgDykDADcCACAwIAspAwA3AgAgHyAOKQMANwIAICIgFSkDADcCACAEIAQpA3A3AqwBIC9BAjYCACAvQQg2AjggLyAEKQIENwIEIC9BDGogBEEMaikCADcCACAvQRRqIARBFGopAgA3AgAgL0EcaiAEQRxqKQIANwIAIC9BJGogBEEkaikCADcCACAvQSxqIARBLGopAgA3AgAgL0E0aiAEQTRqKAIANgIAIC9BPGogBCkCqAE3AgAgL0HEAGogDSkCADcCACAvQcwAaiAKKQIANwIAIC9B1ABqIAIpAgA3AgAgL0HcAGogCSkCADcCACAvQeQAaiABKQIANwIAIC9B7ABqIAwoAgA2AgBB2b7CAC0AABpB8ABBCBCwBCI0RQ1MIBFBj57AAEE/EKYBIAQtAKgBDSkgFyAMKQMAIo4BNwEAIBkgASkDACKLATcBACAYIAopAwAijAE3AQAgGiACKQMAIo0BNwEAIBIgCSkDACKPATcBACAQIIsBNwEAIB0gjgE3AQAgBCAEKQOwASKQATcBQCABII4BNwMAIAkgiwE3AwAgAiCPATcDACAKII0BNwMAIA0gjAE3AwAgBCCQATcDqAEgKCABKQMANwIAICkgCSkDADcCACAqIAIpAwA3AgAgKyAKKQMANwIAIC4gDSkDADcCACAEIAQpA6gBNwIIIBFBrKTAAEHAABCmASAELQCoAQ0qIBcgDCkDACKOATcBACAZIAEpAwAiiwE3AQAgGCAKKQMAIowBNwEAIBogAikDACKNATcBACASIAkpAwAijwE3AQAgECCLATcBACAdII4BNwEAIAQgBCkDsAEikAE3AUAgFCCOATcDACAPIIsBNwMAIAsgjwE3AwAgDiCNATcDACAVIIwBNwMAIAQgkAE3A3AgISAUKQMANwIAICAgDykDADcCACAwIAspAwA3AgAgHyAOKQMANwIAICIgFSkDADcCACAEIAQpA3A3AqwBIDRBAzYCACA0QQk2AjggNCAEKQIENwIEIDRBDGogBEEMaikCADcCACA0QRRqIARBFGopAgA3AgAgNEEcaiAEQRxqKQIANwIAIDRBJGogBEEkaikCADcCACA0QSxqIARBLGopAgA3AgAgNEE0aiAEQTRqKAIANgIAIDRBPGogBCkCqAE3AgAgNEHEAGogDSkCADcCACA0QcwAaiAKKQIANwIAIDRB1ABqIAIpAgA3AgAgNEHcAGogCSkCADcCACA0QeQAaiABKQIANwIAIDRB7ABqIAwoAgA2AgBB2b7CAC0AABpB8ABBCBCwBCI1RQ1MIBFB7KTAAEHAABCmASAELQCoAQ0rIBcgDCkDACKOATcBACAZIAEpAwAiiwE3AQAgGCAKKQMAIowBNwEAIBogAikDACKNATcBACASIAkpAwAijwE3AQAgECCLATcBACAdII4BNwEAIAQgBCkDsAEikAE3AUAgASCOATcDACAJIIsBNwMAIAIgjwE3AwAgCiCNATcDACANIIwBNwMAIAQgkAE3A6gBICggASkDADcCACApIAkpAwA3AgAgKiACKQMANwIAICsgCikDADcCACAuIA0pAwA3AgAgBCAEKQOoATcCCCARQaylwABBPxCmASAELQCoAQ0sIBcgDCkDACKOATcBACAZIAEpAwAiiwE3AQAgGCAKKQMAIowBNwEAIBogAikDACKNATcBACASIAkpAwAijwE3AQAgECCLATcBACAdII4BNwEAIAQgBCkDsAEikAE3AUAgFCCOATcDACAPIIsBNwMAIAsgjwE3AwAgDiCNATcDACAVIIwBNwMAIAQgkAE3A3AgISAUKQMANwIAICAgDykDADcCACAwIAspAwA3AgAgHyAOKQMANwIAICIgFSkDADcCACAEIAQpA3A3AqwBIDVBBDYCACA1QQo2AjggNSAEKQIENwIEIDVBDGogBEEMaikCADcCACA1QRRqIARBFGopAgA3AgAgNUEcaiAEQRxqKQIANwIAIDVBJGogBEEkaikCADcCACA1QSxqIARBLGopAgA3AgAgNUE0aiAEQTRqKAIANgIAIDVBPGogBCkCqAE3AgAgNUHEAGogDSkCADcCACA1QcwAaiAKKQIANwIAIDVB1ABqIAIpAgA3AgAgNUHcAGogCSkCADcCACA1QeQAaiABKQIANwIAIDVB7ABqIAwoAgA2AgBB2b7CAC0AABpB8ABBCBCwBCI4RQ1MIBFB66XAAEE/EKYBIAQtAKgBDS0gFyAMKQMAIo4BNwEAIBkgASkDACKLATcBACAYIAopAwAijAE3AQAgGiACKQMAIo0BNwEAIBIgCSkDACKPATcBACAQIIsBNwEAIB0gjgE3AQAgBCAEKQOwASKQATcBQCABII4BNwMAIAkgiwE3AwAgAiCPATcDACAKII0BNwMAIA0gjAE3AwAgBCCQATcDqAEgKCABKQMANwIAICkgCSkDADcCACAqIAIpAwA3AgAgKyAKKQMANwIAIC4gDSkDADcCACAEIAQpA6gBNwIIIBFBqqbAAEHAABCmASAELQCoAQ0uIBcgDCkDACKOATcBACAZIAEpAwAiiwE3AQAgGCAKKQMAIowBNwEAIBogAikDACKNATcBACASIAkpAwAijwE3AQAgECCLATcBACAdII4BNwEAIAQgBCkDsAEikAE3AUAgFCCOATcDACAPIIsBNwMAIAsgjwE3AwAgDiCNATcDACAVIIwBNwMAIAQgkAE3A3AgISAUKQMANwIAICAgDykDADcCACAwIAspAwA3AgAgHyAOKQMANwIAICIgFSkDADcCACAEIAQpA3A3AqwBIDhBBTYCACA4QQs2AjggOCAEKQIENwIEIDhBDGogBEEMaikCADcCACA4QRRqIARBFGopAgA3AgAgOEEcaiAEQRxqKQIANwIAIDhBJGogBEEkaikCADcCACA4QSxqIARBLGopAgA3AgAgOEE0aiAEQTRqKAIANgIAIDhBPGogBCkCqAE3AgAgOEHEAGogDSkCADcCACA4QcwAaiAKKQIANwIAIDhB1ABqIAIpAgA3AgAgOEHcAGogCSkCADcCACA4QeQAaiABKQIANwIAIDhB7ABqIAwoAgA2AgBB2b7CAC0AABpBOEEIELAEIkhFDU0gEUGRm8AAQcAAEKYBIAQtAKgBDS8gFyAMKQMAIo4BNwEAIBkgASkDACKLATcBACAYIAopAwAijAE3AQAgGiACKQMAIo0BNwEAIBIgCSkDACKPATcBACAQIIsBNwEAIB0gjgE3AQAgBCAEKQOwASKQATcBQCAUII4BNwMAIA8giwE3AwAgCyCPATcDACAOII0BNwMAIBUgjAE3AwAgBCCQATcDcCAhIBQpAwA3AgAgICAPKQMANwIAIDAgCykDADcCACAfIA4pAwA3AgAgIiAVKQMANwIAIAQgBCkDcDcCrAEgSEEGNgIAIEggBCkCqAE3AgQgSEEMaiAEQbABaikCADcCACBIQRRqIAopAgA3AgAgSEEcaiACKQIANwIAIEhBJGogCSkCADcCACBIQSxqIAEpAgA3AgAgSEE0aiAMKAIANgIAQdm+wgAtAAAaQfAAQQgQsAQiN0UNTCARQeqmwABBPhCmASAELQCoAQ0wIBcgDCkDACKOATcBACAZIAEpAwAiiwE3AQAgGCAKKQMAIowBNwEAIBogAikDACKNATcBACASIAkpAwAijwE3AQAgECCLATcBACAdII4BNwEAIAQgBCkDsAEikAE3AUAgASCOATcDACAJIIsBNwMAIAIgjwE3AwAgCiCNATcDACANIIwBNwMAIAQgkAE3A6gBICggASkDADcCACApIAkpAwA3AgAgKiACKQMANwIAICsgCikDADcCACAuIA0pAwA3AgAgBCAEKQOoATcCCCARQainwABBwAAQpgEgBC0AqAENMSAXIAwpAwAijgE3AQAgGSABKQMAIosBNwEAIBggCikDACKMATcBACAaIAIpAwAijQE3AQAgEiAJKQMAIo8BNwEAIBAgiwE3AQAgHSCOATcBACAEIAQpA7ABIpABNwFAIBQgjgE3AwAgDyCLATcDACALII8BNwMAIA4gjQE3AwAgFSCMATcDACAEIJABNwNwICEgFCkDADcCACAgIA8pAwA3AgAgMCALKQMANwIAIB8gDikDADcCACAiIBUpAwA3AgAgBCAEKQNwNwKsASA3QQE2AgAgN0EHNgI4IDcgBCkCBDcCBCA3QQxqIARBDGopAgA3AgAgN0EUaiAEQRRqKQIANwIAIDdBHGogBEEcaikCADcCACA3QSRqIARBJGopAgA3AgAgN0EsaiAEQSxqKQIANwIAIDdBNGogBEE0aigCADYCACA3QTxqIAQpAqgBNwIAIDdBxABqIA0pAgA3AgAgN0HMAGogCikCADcCACA3QdQAaiACKQIANwIAIDdB3ABqIAkpAgA3AgAgN0HkAGogASkCADcCACA3QewAaiAMKAIANgIAQdm+wgAtAAAaQfAAQQgQsAQiOUUNTCARQeinwABBPxCmASAELQCoAQ0yIBcgDCkDACKOATcBACAZIAEpAwAiiwE3AQAgGCAKKQMAIowBNwEAIBogAikDACKNATcBACASIAkpAwAijwE3AQAgECCLATcBACAdII4BNwEAIAQgBCkDsAEikAE3AUAgASCOATcDACAJIIsBNwMAIAIgjwE3AwAgCiCNATcDACANIIwBNwMAIAQgkAE3A6gBICggASkDADcCACApIAkpAwA3AgAgKiACKQMANwIAICsgCikDADcCACAuIA0pAwA3AgAgBCAEKQOoATcCCCARQaeowABBwAAQpgEgBC0AqAENMyAXIAwpAwAijgE3AQAgGSABKQMAIosBNwEAIBggCikDACKMATcBACAaIAIpAwAijQE3AQAgEiAJKQMAIo8BNwEAIBAgiwE3AQAgHSCOATcBACAEIAQpA7ABIpABNwFAIBQgjgE3AwAgDyCLATcDACALII8BNwMAIA4gjQE3AwAgFSCMATcDACAEIJABNwNwICEgFCkDADcCACAgIA8pAwA3AgAgMCALKQMANwIAIB8gDikDADcCACAiIBUpAwA3AgAgBCAEKQNwNwKsASA5QQI2AgAgOUEINgI4IDkgBCkCBDcCBCA5QQxqIARBDGopAgA3AgAgOUEUaiAEQRRqKQIANwIAIDlBHGogBEEcaikCADcCACA5QSRqIARBJGopAgA3AgAgOUEsaiAEQSxqKQIANwIAIDlBNGogBEE0aigCADYCACA5QTxqIAQpAqgBNwIAIDlBxABqIA0pAgA3AgAgOUHMAGogCikCADcCACA5QdQAaiACKQIANwIAIDlB3ABqIAkpAgA3AgAgOUHkAGogASkCADcCACA5QewAaiAMKAIANgIAQdm+wgAtAAAaQfAAQQgQsAQiO0UNTCARQeeowABBwAAQpgEgBC0AqAENNCAXIAwpAwAijgE3AQAgGSABKQMAIosBNwEAIBggCikDACKMATcBACAaIAIpAwAijQE3AQAgEiAJKQMAIo8BNwEAIBAgiwE3AQAgHSCOATcBACAEIAQpA7ABIpABNwFAIAEgjgE3AwAgCSCLATcDACACII8BNwMAIAogjQE3AwAgDSCMATcDACAEIJABNwOoASAoIAEpAwA3AgAgKSAJKQMANwIAICogAikDADcCACArIAopAwA3AgAgLiANKQMANwIAIAQgBCkDqAE3AgggEUGSmMAAQcAAEKYBIAQtAKgBDTUgFyAMKQMAIo4BNwEAIBkgASkDACKLATcBACAYIAopAwAijAE3AQAgGiACKQMAIo0BNwEAIBIgCSkDACKPATcBACAQIIsBNwEAIB0gjgE3AQAgBCAEKQOwASKQATcBQCAUII4BNwMAIA8giwE3AwAgCyCPATcDACAOII0BNwMAIBUgjAE3AwAgBCCQATcDcCAhIBQpAwA3AgAgICAPKQMANwIAIDAgCykDADcCACAfIA4pAwA3AgAgIiAVKQMANwIAIAQgBCkDcDcCrAEgO0EDNgIAIDtBCTYCOCA7IAQpAgQ3AgQgO0EMaiAEQQxqKQIANwIAIDtBFGogBEEUaikCADcCACA7QRxqIARBHGopAgA3AgAgO0EkaiAEQSRqKQIANwIAIDtBLGogBEEsaikCADcCACA7QTRqIARBNGooAgA2AgAgO0E8aiAEKQKoATcCACA7QcQAaiANKQIANwIAIDtBzABqIAopAgA3AgAgO0HUAGogAikCADcCACA7QdwAaiAJKQIANwIAIDtB5ABqIAEpAgA3AgAgO0HsAGogDCgCADYCAEHZvsIALQAAGkHwAEEIELAEIj1FDUwgEUGnqcAAQcAAEKYBIAQtAKgBDTYgFyAMKQMAIo4BNwEAIBkgASkDACKLATcBACAYIAopAwAijAE3AQAgGiACKQMAIo0BNwEAIBIgCSkDACKPATcBACAQIIsBNwEAIB0gjgE3AQAgBCAEKQOwASKQATcBQCABII4BNwMAIAkgiwE3AwAgAiCPATcDACAKII0BNwMAIA0gjAE3AwAgBCCQATcDqAEgKCABKQMANwIAICkgCSkDADcCACAqIAIpAwA3AgAgKyAKKQMANwIAIC4gDSkDADcCACAEIAQpA6gBNwIIIBFB56nAAEHAABCmASAELQCoAQ03IBcgDCkDACKOATcBACAZIAEpAwAiiwE3AQAgGCAKKQMAIowBNwEAIBogAikDACKNATcBACASIAkpAwAijwE3AQAgECCLATcBACAdII4BNwEAIAQgBCkDsAEikAE3AUAgFCCOATcDACAPIIsBNwMAIAsgjwE3AwAgDiCNATcDACAVIIwBNwMAIAQgkAE3A3AgISAUKQMANwIAICAgDykDADcCACAwIAspAwA3AgAgHyAOKQMANwIAICIgFSkDADcCACAEIAQpA3A3AqwBID1BBDYCACA9QQo2AjggPSAEKQIENwIEID1BDGogBEEMaikCADcCACA9QRRqIARBFGopAgA3AgAgPUEcaiAEQRxqKQIANwIAID1BJGogBEEkaikCADcCACA9QSxqIARBLGopAgA3AgAgPUE0aiAEQTRqKAIANgIAID1BPGogBCkCqAE3AgAgPUHEAGogDSkCADcCACA9QcwAaiAKKQIANwIAID1B1ABqIAIpAgA3AgAgPUHcAGogCSkCADcCACA9QeQAaiABKQIANwIAID1B7ABqIAwoAgA2AgBB2b7CAC0AABpB8ABBCBCwBCJCRQ1MIBFBp6rAAEHAABCmASAELQCoAQ04IBcgDCkDACKOATcBACAZIAEpAwAiiwE3AQAgGCAKKQMAIowBNwEAIBogAikDACKNATcBACASIAkpAwAijwE3AQAgECCLATcBACAdII4BNwEAIAQgBCkDsAEikAE3AUAgASCOATcDACAJIIsBNwMAIAIgjwE3AwAgCiCNATcDACANIIwBNwMAIAQgkAE3A6gBICggASkDADcCACApIAkpAwA3AgAgKiACKQMANwIAICsgCikDADcCACAuIA0pAwA3AgAgBCAEKQOoATcCCCARQeeqwABBwAAQpgEgBC0AqAENOSAXIAwpAwAijgE3AQAgGSABKQMAIosBNwEAIARBjgFqIAkpAwAijAE3AQAgGCAKKQMANwEAIBogAikDADcBACASIIwBNwEAIBAgiwE3AQAgHSCOATcBACAEIAQpA7ABNwFAIBQgHSkBADcDACAPIBApAQA3AwAgCyASKQEANwMAIA4gGikBADcDACAVIBgpAQA3AwAgBCAEKQFANwNwICEgFCkDADcCACAgIA8pAwA3AgAgMCALKQMANwIAIB8gDikDADcCACAiIBUpAwA3AgAgBCAEKQNwNwKsASBCQQU2AgAgQkELNgI4IEIgBCkCBDcCBCBCQQxqIARBDGopAgA3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AGoiHyIXIARBuAFqIgopAwAijAE3AQAgBEHQAGoiIiIZIARBwAFqIgkpAwAijQE3AQAgBEHYAGoiNiIhIARByAFqIgIpAwAijwE3AQAgBEHgAGoiLCIgIIsBNwEAIARB6ABqIhAgjgE3AQAgBCAEKQOwASKQATcBQCABII4BNwMAIAIgiwE3AwAgCSCPATcDACAKII0BNwMAIARBsAFqIlYiDSCMATcDACAEIJABNwOoASAEQTBqIjggASkDADcCACAEQShqIjcgAikDADcCACAEQSBqIjkgCSkDADcCACAEQRhqIjsgCikDADcCACAEQRBqIj0gDSkDADcCACAEIAQpA6gBNwIIIBhB2bLAAEHgABCmASAELQCoAQ05IDAgDCkDACKOATcBACAdIAEpAwAiiwE3AQAgFyAKKQMAIowBNwEAIBkgCSkDACKNATcBACAhIAIpAwAijwE3AQAgICCLATcBACAQII4BNwEAIAQgBCkDsAEikAE3AUAgESCOATcDACAPIIsBNwMAIA4gjwE3AwAgFSCNATcDACAUIIwBNwMAIAQgkAE3A3AgKCARKQMANwIAICkgDykDADcCACAqIA4pAwA3AgAgKyAVKQMANwIAIC4gFCkDADcCACAEIAQpA3A3AqwBIBJBATYCACASQQc2AjggEiAEKQIENwIEIBJBDGogBEEMaikCADcCACASQRRqIARBFGopAgA3AgAgEkEcaiAEQRxqKQIANwIAIBJBJGogBEEkaikCADcCACASQSxqIARBLGopAgA3AgAgEkE0aiAEQTRqKAIANgIAIBJBPGogBCkCqAE3AgAgEkHEAGogDSkCADcCACASQcwAaiAKKQIANwIAIBJB1ABqIAkpAgA3AgAgEkHcAGogAikCADcCACASQeQAaiABKQIANwIAIBJB7ABqIAwoAgA2AgBB2b7CAC0AABpBOEEIELAEIiVFDUsgGEG5s8AAQdAAEKYBIAQtAKgBDTogMCAMKQMAIo4BNwEAIBwgASkDACKLATcBACAfIAopAwAijAE3AQAgIiAJKQMAIo0BNwEAIDYgAikDACKPATcBACAsIIsBNwEAIBAgjgE3AQAgBCAEKQOwASKQATcBQCARII4BNwMAIA8giwE3AwAgDiCPATcDACAVII0BNwMAIBQgjAE3AwAgBCCQATcDcCAoIBEpAwA3AgAgKSAPKQMANwIAICogDikDADcCACArIBUpAwA3AgAgLiAUKQMANwIAIAQgBCkDcDcCrAEgJUECNgIAICUgBCkCqAE3AgQgJUEMaiANKQIANwIAICVBFGogCikCADcCACAlQRxqIAkpAgA3AgAgJUEkaiACKQIANwIAICVBLGogASkCADcCACAlQTRqIAwoAgA2AgBB2b7CAC0AABpBOEEIELAEIjJFDUsgGEGJtMAAQd8AEKYBIAQtAKgBDTsgMCAMKQMAIo4BNwEAIBwgASkDACKLATcBACAfIAopAwAijAE3AQAgIiAJKQMAIo0BNwEAIDYgAikDACKPATcBACAsIIsBNwEAIBAgjgE3AQAgBCAEKQOwASKQATcBQCARII4BNwMAIA8giwE3AwAgDiCPATcDACAVII0BNwMAIBQgjAE3AwAgBCCQATcDcCAoIBEpAwA3AgAgKSAPKQMANwIAICogDikDADcCACArIBUpAwA3AgAgLiAUKQMANwIAIAQgBCkDcDcCrAEgMkEJNgIAIDIgBCkCqAE3AgQgMkEMaiANKQIANwIAIDJBFGogCikCADcCACAyQRxqIAkpAgA3AgAgMkEkaiACKQIANwIAIDJBLGogASkCADcCACAyQTRqIAwoAgA2AgBB2b7CAC0AABpB8ABBCBCwBCIdRQ1KIBhB6LTAAEHgABCmASAELQCoAQ08IDAgDCkDACKOATcBACAcIAEpAwAiiwE3AQAgHyAKKQMAIowBNwEAICIgCSkDACKNATcBACA2IAIpAwAijwE3AQAgLCCLATcBACAQII4BNwEAIAQgBCkDsAEikAE3AUAgASCOATcDACACIIsBNwMAIAkgjwE3AwAgCiCNATcDACANIIwBNwMAIAQgkAE3A6gBIDggASkDADcCACA3IAIpAwA3AgAgOSAJKQMANwIAIDsgCikDADcCACA9IA0pAwA3AgAgBCAEKQOoATcCCCAYQci1wABB4AAQpgEgBC0AqAENPSAwIAwpAwAijgE3AQAgHCABKQMAIosBNwEAIB8gCikDACKMATcBACAiIAkpAwAijQE3AQAgNiACKQMAIo8BNwEAICwgiwE3AQAgECCOATcBACAEIAQpA7ABIpABNwFAIBEgjgE3AwAgDyCLATcDACAOII8BNwMAIBUgjQE3AwAgFCCMATcDACAEIJABNwNwICggESkDADcCACApIA8pAwA3AgAgKiAOKQMANwIAICsgFSkDADcCACAuIBQpAwA3AgAgBCAEKQNwNwKsASAdQQQ2AgAgHUEKNgI4IB0gBCkCBDcCBCAdQQxqIARBDGopAgA3AgAgHUEUaiAEQRRqKQIANwIAIB1BHGogBEEcaikCADcCACAdQSRqIARBJGopAgA3AgAgHUEsaiAEQSxqKQIANwIAIB1BNGogBEE0aigCADYCACAdQTxqIAQpAqgBNwIAIB1BxABqIA0pAgA3AgAgHUHMAGogCikCADcCACAdQdQAaiAJKQIANwIAIB1B3ABqIAIpAgA3AgAgHUHkAGogASkCADcCACAdQewAaiAMKAIANgIAQdm+wgAtAAAaQfAAQQgQsAQiF0UNSiAYQai2wABB3wAQpgEgBC0AqAENPiAwIAwpAwAijgE3AQAgHCABKQMAIosBNwEAIB8gCikDACKMATcBACAiIAkpAwAijQE3AQAgNiACKQMAIo8BNwEAICwgiwE3AQAgECCOATcBACAEIAQpA7ABIpABNwFAIAEgjgE3AwAgAiCLATcDACAJII8BNwMAIAogjQE3AwAgDSCMATcDACAEIJABNwOoASA4IAEpAwA3AgAgNyACKQMANwIAIDkgCSkDADcCACA7IAopAwA3AgAgPSANKQMANwIAIAQgBCkDqAE3AgggGEGotsAAQd8AEKYBIAQtAKgBDT8gMCAMKQMAIo4BNwEAIBwgASkDACKLATcBACAfIAopAwAijAE3AQAgIiAJKQMAIo0BNwEAIDYgAikDACKPATcBACAsIIsBNwEAIBAgjgE3AQAgBCAEKQOwASKQATcBQCARII4BNwMAIA8giwE3AwAgDiCPATcDACAVII0BNwMAIBQgjAE3AwAgBCCQATcDcCAoIBEpAwA3AgAgKSAPKQMANwIAICogDikDADcCACArIBUpAwA3AgAgLiAUKQMANwIAIAQgBCkDcDcCrAEgF0EFNgIAIBdBCzYCOCAXIAQpAgQ3AgQgF0EMaiAEQQxqKQIANwIAIBdBFGogBEEUaikCADcCACAXQRxqIARBHGopAgA3AgAgF0EkaiAEQSRqKQIANwIAIBdBLGogBEEsaikCADcCACAXQTRqIARBNGooAgA2AgAgF0E8aiAEKQKoATcCACAXQcQAaiANKQIANwIAIBdBzABqIAopAgA3AgAgF0HUAGogCSkCADcCACAXQdwAaiACKQIANwIAIBdB5ABqIAEpAgA3AgAgF0HsAGogDCgCADYCAEHZvsIALQAAGkE4QQgQsAQiL0UNSyAYQYe3wABB4AAQpgEgBC0AqAENQCAwIAwpAwAijgE3AQAgHCABKQMAIosBNwEAIB8gCikDACKMATcBACAiIAkpAwAijQE3AQAgNiACKQMAIo8BNwEAICwgiwE3AQAgECCOATcBACAEIAQpA7ABIpABNwFAIBEgjgE3AwAgDyCLATcDACAOII8BNwMAIBUgjQE3AwAgFCCMATcDACAEIJABNwNwICggESkDADcCACApIA8pAwA3AgAgKiAOKQMANwIAICsgFSkDADcCACAuIBQpAwA3AgAgBCAEKQNwNwKsASAvQQY2AgAgLyAEKQKoATcCBCAvQQxqIA0pAgA3AgAgL0EUaiAKKQIANwIAIC9BHGogCSkCADcCACAvQSRqIAIpAgA3AgAgL0EsaiABKQIANwIAIC9BNGogDCgCADYCAEHZvsIALQAAGkHwAEEIELAEIhlFDUogGEHnt8AAQd4AEKYBIAQtAKgBDUEgMCAMKQMAIo4BNwEAIBwgASkDACKLATcBACAfIAopAwAijAE3AQAgIiAJKQMAIo0BNwEAIDYgAikDACKPATcBACAsIIsBNwEAIBAgjgE3AQAgBCAEKQOwASKQATcBQCABII4BNwMAIAIgiwE3AwAgCSCPATcDACAKII0BNwMAIA0gjAE3AwAgBCCQATcDqAEgOCABKQMANwIAIDcgAikDADcCACA5IAkpAwA3AgAgOyAKKQMANwIAID0gDSkDADcCACAEIAQpA6gBNwIIIBhBxbjAAEHfABCmASAELQCoAQ1CIDAgDCkDACKOATcBACAcIAEpAwAiiwE3AQAgHyAKKQMAIowBNwEAICIgCSkDACKNATcBACA2IAIpAwAijwE3AQAgLCCLATcBACAQII4BNwEAIAQgBCkDsAEikAE3AUAgESCOATcDACAPIIsBNwMAIA4gjwE3AwAgFSCNATcDACAUIIwBNwMAIAQgkAE3A3AgKCARKQMANwIAICkgDykDADcCACAqIA4pAwA3AgAgKyAVKQMANwIAIC4gFCkDADcCACAEIAQpA3A3AqwBIBlBATYCACAZQQc2AjggGSAEKQIENwIEIBlBDGogBEEMaikCADcCACAZQRRqIARBFGopAgA3AgAgGUEcaiAEQRxqKQIANwIAIBlBJGogBEEkaikCADcCACAZQSxqIARBLGopAgA3AgAgGUE0aiAEQTRqKAIANgIAIBlBPGogBCkCqAE3AgAgGUHEAGogDSkCADcCACAZQcwAaiAKKQIANwIAIBlB1ABqIAkpAgA3AgAgGUHcAGogAikCADcCACAZQeQAaiABKQIANwIAIBlB7ABqIAwoAgA2AgBB2b7CAC0AABpB8ABBCBCwBCIhRQ1KIBhBpLnAAEHgABCmASAELQCoAQ1DIDAgDCkDACKOATcBACAcIAEpAwAiiwE3AQAgHyAKKQMAIowBNwEAICIgCSkDACKNATcBACA2IAIpAwAijwE3AQAgLCCLATcBACAQII4BNwEAIAQgBCkDsAEikAE3AUAgASCOATcDACACIIsBNwMAIAkgjwE3AwAgCiCNATcDACANIIwBNwMAIAQgkAE3A6gBIDggASkDADcCACA3IAIpAwA3AgAgOSAJKQMANwIAIDsgCikDADcCACA9IA0pAwA3AgAgBCAEKQOoATcCCCAYQaS5wABB4AAQpgEgBC0AqAENRCAwIAwpAwAijgE3AQAgHCABKQMAIosBNwEAIB8gCikDACKMATcBACAiIAkpAwAijQE3AQAgNiACKQMAIo8BNwEAICwgiwE3AQAgECCOATcBACAEIAQpA7ABIpABNwFAIBEgjgE3AwAgDyCLATcDACAOII8BNwMAIBUgjQE3AwAgFCCMATcDACAEIJABNwNwICggESkDADcCACApIA8pAwA3AgAgKiAOKQMANwIAICsgFSkDADcCACAuIBQpAwA3AgAgBCAEKQNwNwKsASAhQQI2AgAgIUEINgI4ICEgBCkCBDcCBCAhQQxqIARBDGopAgA3AgAgIUEUaiAEQRRqKQIANwIAICFBHGogBEEcaikCADcCACAhQSRqIARBJGopAgA3AgAgIUEsaiAEQSxqKQIANwIAICFBNGogBEE0aigCADYCACAhQTxqIAQpAqgBNwIAICFBxABqIA0pAgA3AgAgIUHMAGogCikCADcCACAhQdQAaiAJKQIANwIAICFB3ABqIAIpAgA3AgAgIUHkAGogASkCADcCACAhQewAaiAMKAIANgIAQdm+wgAtAAAaQThBCBCwBCI0RQ1LIBhBhLrAAEHfABCmASAELQCoAQ1FIDAgDCkDACKOATcBACAcIAEpAwAiiwE3AQAgHyAKKQMAIowBNwEAICIgCSkDACKNATcBACA2IAIpAwAijwE3AQAgLCCLATcBACAQII4BNwEAIAQgBCkDsAEikAE3AUAgESCOATcDACAPIIsBNwMAIA4gjwE3AwAgFSCNATcDACAUIIwBNwMAIAQgkAE3A3AgKCARKQMANwIAICkgDykDADcCACAqIA4pAwA3AgAgKyAVKQMANwIAIC4gFCkDADcCACAEIAQpA3A3AqwBIDRBAzYCACA0IAQpAqgBNwIEIDRBDGogDSkCADcCACA0QRRqIAopAgA3AgAgNEEcaiAJKQIANwIAIDRBJGogAikCADcCACA0QSxqIAEpAgA3AgAgNEE0aiAMKAIANgIAQdm+wgAtAAAaQThBCBCwBCI1RQ1LIBhB47rAAEHQABCmASAELQCoAQ1GIDAgDCkDACKOATcBACAcIAEpAwAiiwE3AQAgHyAKKQMAIowBNwEAICIgCSkDACKNATcBACA2IAIpAwAijwE3AQAgLCCLATcBACAQII4BNwEAIAQgBCkDsAEikAE3AUAgESCOATcDACAPIIsBNwMAIA4gjwE3AwAgFSCNATcDACAUIIwBNwMAIAQgkAE3A3AgKCARKQMANwIAICkgDykDADcCACAqIA4pAwA3AgAgKyAVKQMANwIAIC4gFCkDADcCACAEIAQpA3A3AqwBIDVBCjYCACA1IAQpAqgBNwIEIDVBDGogVikCADcCACA1QRRqIAopAgA3AgAgNUEcaiAJKQIANwIAIDVBJGogAikCADcCACA1QSxqIAEpAgA3AgAgNUE0aiAMKAIANgIAQdm+wgAtAAAaQfAAQQgQsAQiIEUNSiAYQbO7wABB4AAQpgEgBC0AqAENRyAwIAwpAwAijgE3AQAgHCABKQMAIosBNwEAIB8gCikDACKMATcBACAiIAkpAwAijQE3AQAgNiACKQMAIo8BNwEAICwgiwE3AQAgECCOATcBACAEIAQpA7ABIpABNwFAIAEgjgE3AwAgAiCLATcDACAJII8BNwMAIAogjQE3AwAgDSCMATcDACAEIJABNwOoASA4IAEpAwA3AgAgNyACKQMANwIAIDkgCSkDADcCACA7IAopAwA3AgAgPSANKQMANwIAIAQgBCkDqAE3AgggGEGTvMAAQd8AEKYBIAQtAKgBRQRAIDAgDCkDACKOATcBACAcIAEpAwAiiwE3AQAgBEGOAWogAikDACKMATcBACAfIAopAwA3AQAgIiAJKQMANwEAIDYgjAE3AQAgLCCLATcBACAQII4BNwEAIAQgBCkDsAE3AUAgESAQKQEANwMAIA8gLCkBADcDACAOIDYpAQA3AwAgFSAiKQEANwMAIBQgHykBADcDACAEIAQpAUA3A3AgKCARKQMANwIAICkgDykDADcCACAqIA4pAwA3AgAgKyAVKQMANwIAIC4gFCkDADcCACAEIAQpA3A3AqwBICBBBTYCACAgQQs2AjggICAEKQIENwIEICBBDGogBEEMaikCADcCACAgQRRqIARBFGopAgA3AgAgIEEcaiAEQRxqKQIANwIAICBBJGogBEEkaikCADcCACAgQSxqIARBLGopAgA3AgAgIEE0aiAEQTRqKAIANgIAICBBPGogBCkCqAE3AgAgIEHEAGogDSkCADcCACAgQcwAaiAKKQIANwIAICBB1ABqIAkpAgA3AgAgIEHcAGogAikCADcCACAgQeQAaiABKQIANwIAICBB7ABqIAwoAgA2AgAgC0GMAWpBAjYCACALQYgBaiAgNgIAIAtBgAFqQoGAgIAgNwIAIAtB/ABqIDU2AgAgC0H0AGpCgYCAgBA3AgAgC0HwAGogNDYCACALQegAakKCgICAEDcCACALQeQAaiAhNgIAIAtB3ABqQoKAgIAgNwIAIAtB2ABqIBk2AgAgC0HQAGpCgYCAgCA3AgAgC0HMAGogLzYCACALQcQAakKCgICAEDcCACALQUBrIBc2AgAgC0E4akKCgICAIDcCACALQTRqIB02AgAgC0EsakKBgICAIDcCACALQShqIDI2AgAgC0EgakKBgICAEDcCACALQRxqICU2AgAgC0EUakKCgICAEDcCACALQRBqIBI2AgAgC0KCgICAIDcCCCALIBo2AgQgC0ECNgIAIARBDDYCfCAEIAs2AnggBEKBgICAwAE3AnAQ3QMiASABKQMAIo4BQgF8NwMAIAEpAwghiwEgDUHwzsEAKQMANwMAIAkgiwE3AwAgCiCOATcDACAEQejOwQApAwA3A6gBIwBBMGsiCyQAIBgoAghFBEAg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ACGNAUIAIZABIAsgBEEkayIBQQAgASAETRsiBUcEQEEkIAQgBEEkTxtBGCAEIARBGE8bayEDIAIgBWohAQNAIJABQgiGII0BQjiIhCGQASABMQAAII0BQgiGhCGNASABQQFqIQEgA0EBayIDDQALC0IAIYsBAkAgBEElSQ0AIAVBA3EhAyACIQEgBEEla0EDTwRAIAVBPHEhCwNAIJIBQiCIQoCA/P8PgyCLAUIghoQgkgFCEIYikgFCMIiEIYsBIAFBA2oxAAAgAUEBajEAACCSASABMQAAQgiGhIRCEIYgAUECajEAAEIIhoSEIZIBIAFBBGohASALQQRrIgsNAAsLIANFDQADQCCLAUIIhiCSAUI4iIQhiwEgATEAACCSAUIIhoQhkgEgAUEBaiEBIANBAWsiAw0ACwsgMyCLATcDACAMIJABNwMAIAkgjwE3AwAgCCCSATcD2AogCCCNATcDyAogCCCMATcDuAogCCCRATcDqAogCCCOATcDsAogCCgCiAgiAQRAIAIgARC5BAsgCEHYAWogCEGoCmoiBRC3ASMAQfACayIEJAAgBEHgAGogG0EIaikDADcDACAEQegAaiAbQRBqKQMANwMAIARB8ABqIBtBGGopAwA3AwAgBEH4AGogG0EgaikDADcDACAEQYABaiAbQShqKQMANwMAIARBkAFqIBtBOGopAwA3AwAgBEGYAWogG0FAaykDADcDACAEQaABaiAbQcgAaikDADcDACAEQagBaiAbQdAAaikDADcDACAEQbABaiAbQdgAaikDADcDACAEIBspAwA3A1ggBCAbKQMwNwOIASAEQZgCaiILIARB2ABqEPUDIAQoApwCIQIgBCgCmAIhAwJAIAQoAqACIgFBAkYEQAJAIAIoAgQhTiACKAIAIREgCyACQQhqQdgAEM8EGiADBEAgAiADQTBsELkECyAEQdAAaiAEQbgCaikDADcDACAEQcgAaiAEQbACaikDADcDACAEQUBrIARBqAJqKQMANwMAIARBOGogBEGgAmopAwA3AwAgBEEIaiAEQcgCaikDADcDACAEQRBqIARB0AJqKQMANwMAIARBGGogBEHYAmopAwA3AwAgBEEgaiAEQeACaikDADcDACAEQShqIARB6AJqKQMANwMAIAQgBCkDmAI3AzAgBCAEKQPAAjcDACAEQcABaiAbQeAAaiIBQQhqKQMANwMAIARByAFqIAFBEGopAwA3AwAgBEHQAWogAUEYaikDADcDACAEQdgBaiABQSBqKQMANwMAIARB4AFqIAFBKGopAwA3AwAgBEHwAWogG0GYAWopAwA3AwAgBEH4AWogG0GgAWopAwA3AwAgBEGAAmogG0GoAWopAwA3AwAgBEGIAmogG0GwAWopAwA3AwAgBEGQAmogG0G4AWopAwA3AwAgBCABKQMANwO4ASAEIBspA5ABNwPoASAEQZgCaiILIARBuAFqEPUDIAQoApwCIQIgBCgCmAIhAyAEKAKgAiIBQQJHDQAgAigCBCEBIAIoAgAhGiALIAJBCGpB2AAQzwQaIAMEQCACIANBMGwQuQQLIAUgATYCZCAFIBo2AmAgBSAEKQOYAjcDaCAFIAQpA8ACNwOQASAFQfAAaiAEQaACaikDADcDACAFQfgAaiAEQagCaikDADcDACAFQYABaiAEQbACaikDADcDACAFQYgBaiAEQbgCaikDADcDACAFQZgBaiAEQcgCaikDADcDACAFQaABaiAEQdACaikDADcDACAFQagBaiAEQdgCaikDADcDACAFQbABaiAEQeACaikDADcDACAFQbgBaiAEQegCaikDADcDACAFIE42AgQgBSARNgIAIAUgBCkDMDcDCCAFQRBqIARBOGopAwA3AwAgBUEYaiAEQUBrKQMANwMAIAVBIGogBEHIAGopAwA3AwAgBUEoaiAEQdAAaikDADcDACAFIAQpAwA3AzAgBUE4aiAEQQhqKQMANwMAIAVBQGsgBEEQaikDADcDACAFQcgAaiAEQRhqKQMANwMAIAVB0ABqIARBIGopAwA3AwAgBUHYAGogBEEoaikDADcDACAEQfACaiQADAILCyAEIAE2AqACIAQgAjYCnAIgBCADNgKYAkG8jsAAQSsgBEGYAmpB3JPAAEGslMAAEL4DAAsgCEHIBmoiASAFQeAAEM8EGiAIQYgIaiAUQeAAEM8EGiAIQeANaiABEKIBIAgoAugNIgRBMU8NByAIKALkDSECQgAhjAFCACGRAUIAIY4BAkAgBEEMayIBQQAgASAETRsiBSAERg0AIAIgBWohAUEMIAQgBEEMTxsiC0EDcSEDIAtBAWtBA08EQCALQQxxIQsDQCCRAUIgiEKAgPz/D4MgjgFCIIaEIJEB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+AlqELoCIAhBgAJqIgUgCEGwCGopAwA3AwAgCEH4AWoiCSAIQagIaikDADcDACAIQfABaiIMIAhBoAhqKQMANwMAIAhB6AFqIiMgCEGYCGopAwA3AwAgCEHgAWoiMyAIQZAIaikDADcDACAIIAgpA4gINwPYASABIApqIg5FDQIgFSANQQxsaiE6IBUhDwNAIA8gOkYNA0HZvsIALQAAGkEwQQgQsAQiAkUNAiACIAgpA9gBNwMAIAJBKGogBSkDADcDACACQSBqIAkpAwA3AwAgAkEYaiAMKQMANwMAIAJBEGogIykDADcDACACQQhqIDMpAwA3AwAgCEEAOgDQBiAIIAJBMGo2AswGIAggAjYCyAYgCEHYAGogCEHIBmoQlAIgCCgCYCIDQQJPBEAgA0EBdiELIAgoAlwiASADQTBsakEwayEDA0AgASkDACGRASABIAMpAwA3AwAgCEHQCmoiFiABQShqIicpAwA3AwAgCEHICmoiGyABQSBqIkEpAwA3AwAgCEHACmoiFCABQRhqIk4pAwA3AwAgCEG4CmoiESABQRBqIhopAwA3AwAgCEGwCmoiEiABQQhqIhApAwA3AwAgJyADQShqIicpAwA3AwAgQSADQSBqIkEpAwA3AwAgTiADQRhqIk4pAwA3AwAgGiADQRBqIhopAwA3AwAgECADQQhqIhApAwA3AwAgCCCRATcDqAogJyAWKQMANwMAIEEgGykDADcDACBOIBQpAwA3AwAgGiARKQMANwMAIBAgEikDADcDACADIAgpA6gKNwMAIANBMGshAyABQTBqIQEgC0EBayILDQALCyAIQbAKaiIBIAhB4ABqIgMoAgA2AgAgCCAIKQJYNwOoCiACQTAQuQQgCEHIBmoiAiAPIAhBqApqEGYgCEHYAGogCEH4CWogAhDKASAIQYAKaiADKAIANgIAIAggCCkCWDcD+AkgCCgCqAoiAgRAIAgoAqwKIAJBMGwQuQQLIA9BDGohDyAIQdAKaiAFKQMANwMAIAhByApqIAkpAwA3AwAgCEHACmogDCkDADcDACAIQbgKaiAjKQMANwMAIAEgMykDADcDACAIIAgpA9gBNwOoCiAIQdgBaiAIQagKahCyASAOQQFrIg4NAAsMAgsgCEEANgKoCiAIQaAGaiAIQagKahCJBAALQQhBMBDKBAALQRshAQJAAkACQCAEDgICAQALQdDCwABBD0GUxsAAEPQDAAtBGCEBCyAIQbAKaiICIAhBgApqKAIAIgM2AgAgCCAIKQP4CTcDqAogASBUbEEhaiIEIANLBEAgA0EwbCELA0AgCCgCqAogA0YEQCAIQagKahChAwsgCCgCrAogC2oiAUIANwMAIAFBCGpCADcDACABQRBqQgA3AwAgAUEYakIANwMAIAFBIGpCADcDACABQShqQgA3AwAgCCADQQFqIgM2ArAKIAtBMGohCyADIARJDQALCyAIQdAAaiACKAIANgIAIAggCCkDqAo3A0gCQAJAAkAgkwFQBEBBgICAgHghAwwBCyANQQFrIQEgDUUNAQJAAkAgFSABQQxsaiIBKAIIIgNFBEAgCEEANgKwCiAIQoCAgICAATcCqAoMAQtBACELIANBMGwiBUEASCADQarVqhVLcg0EIAEoAgQhD0HZvsIALQAAGkEIIQsgBUEIELAEIgxFDQRBACEJIAMhAgNAIAUgCUcEQCAJIAxqIgEgCSAPaiIEKQMANwMAIAFBKGogBEEoaikDADcDACABQSBqIARBIGopAwA3AwAgAUEYaiAEQRhqKQMANwMAIAFBEGogBEEQaikDADcDACABQQhqIARBCGopAwA3AwAgCUEwaiEJIAJBAWsiAg0BCwsgCCADNgKwCiAIIAw2AqwKIAggAzYCqAogA0EKSw0BCyADQTBsIQsDQCAIKAKoCiADRgRAIAhBqApqEKEDCyAIKAKsCiALaiIBQgA3AwAgAUEIakIANwMAIAFBEGpCADcDACABQRhqQgA3AwAgAUEgakIANwMAIAFBKGpCADcDACAIIANBAWoiAzYCsAogC0EwaiELIANBC0kNAAsgCCgCqAohAwsgCCkCrAohkQELIDwgCCkDODcCACA8IAgpAiA3AjwgPCAIKQIsNwIMIDwgCjYCLCA8IBM2AiggPCAGNgIkIDwgJDYCICA8IB42AhwgPCAxNgIYIDxBCGogCEFAaygCADYCACA8QcQAaiAIQShqKAIANgIAIDxBFGogCEE0aigCADYCACA8IAM2AkggPCCRATcCTCA8QThqIAhB0ABqKAIANgIAIDwgCCkDSDcCMCANBEAgFSEBA0AgASgCACICBEAgAUEEaigCACACQTBsELkECyABQQxqIQEgDUEBayINDQALCyAY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QQJ0NgIcIAEgACgCBDYCFAsgASAFNgIYIAFBCGogAiAGIAFBFGoQrAMgASgCCARAIAEoAgwgASgCEBCoBAALIAEoAgwhAyAAIAQ2AgAgACADNgIEIAFBIGokAAvYPAIffhN/IwBBEGsiKSQAIClBBGohKiMAQcABayIiJAAgIkHoAGoiJSABEI0DAkACQCAiKAJoQYCAgIB4RwRAICJBEGogIkHwAGoiASgCADYCACAiICIpAmg3AwggIkEYaiIoICJBCGoQ7gIgJSACEI0DICIoAmhBgICAgHhHBEAgIkFAayABKAIANgIAICIgIikCaDcDOCAiQcgAaiIkICJBOGoQ7gIjAEGAA2siAiQAIAJB4AJqIgFBg6bBAEHCABCRAyACIAEQ7gIgAigC4AIiAQRAIAIoAuQCIAFBAnQQuQQLIAJB4AJqIgFBxabBAEHCABCRAyACQSBqIAEQ7gIgAigC4AIiAQRAIAIoAuQCIAFBAnQQuQQLICUhASACQdACaiIjQgA3AwAgAkHIAmoiJkIANwMAIAJCADcDwAIgAkK+ATcD2AIgAkEIaiInKQMAIRsgAkEQaiIrKQMAIRwgAikDACEdIAJB+AJqIiwgAkEYaiItKQMAIh83AwAgAkHwAmoiLiAcNwMAIAJB6AJqIi8gGzcDACACIB03A+ACIAJB4AFqIAJBwAJqIjAgAkHgAmoiMRCFASACQegAaiAkQQhqIjIpAwA3AwAgAkHwAGogJEEQaiIzKQMANwMAIAJB+ABqICRBGGoiNCkDADcDACACICQpAwA3A2AgAkHYAmogLSkDADcDACAjICspAwA3AwAgJiAnKQMANwMAIAIgAikDADcDwAIgLCA0KQMANwMAIC4gMykDADcDACAvIDIpAwA3AwAgAiAkKQMANwPgAiACQaACaiAwIDEQhQEgAikD4AEiCSACKQOgAnwiByACKQPoASIEIAIpA6gCfCIDIARUIAMgAikD8AEiBCACKQOwAnwiCCAEVCAIIAggAikD+AEiBCACKQO4AnwiBiAEVK18IgRWcq18IgUgA1RyrXwhAwJAAkACQCAHIAlUIAMgB1RyDQBC////////////ACEJIAMiB0L///////////8AUQRAQn8hCUL///////////8AIQcgBUJ/Ug0CIARCf1IEQCAEIQgMBAtCbSEJIAYhByAGQm1RDQELIAcgCVoNACADIQcMAQsgBEIBfCIHIAZCbVStIgl9IQggBUIBfCIKIARCf1IgByAJVHKtIgR9IQkgAyAFQn9SIAQgClZyrX1C////////////AH0hByAGQhN8IQYMAQsgBSEJIAQhCAsgAkGIAWogAkEoaiIjKQMANwMAIAJBkAFqIAJBMGoiJikDADcDACACQZgBaiACQThqIicpAwA3AwAgAkHQAmpCADcDACACQcgCakIANwMAIAIgAikDIDcDgAEgAkIANwPAAiACQr4BNwPYAiACQfgCaiIrICcpAwA3AwAgAkHwAmoiJyAmKQMANwMAIAJB6AJqIiYgIykDADcDACACIAIpAyA3A+ACIAJBoAJqIiMgAkHAAmoiLCACQeACaiItEIUBICsgJEEYaikDADcDACAnICRBEGopAwA3AwAgJiAkQQhqKQMANwMAIAIgJCkDADcD4AIgLCAjIC0QhQEgAikDwAIiCiEDAn4CQCAIAn4CQCAKIAciBFINACAJIgQgAikDyAIiA1INACAIIgQgAikD0AIiA1INACAJIRAgBiIEIQUgCCACKQPYAiIDIARRDQEaCyACKQPYAiEFIAMgBFoNASACKQPIAiEQIAIpA9ACCyIEfSILIAUgBlatIgx9IQMgCSAQfSINIAsgDFQgBCAIVnKtIgR9IQggCSAQVCAEIA1WciEjIAYgBX0hBiAHIAp9DAELIAIpA9ACIgQgCFQgBCAIfSIEIAUgBlStIgNUcq0iCyACKQPIAiIMIAl9Ig1Cf4V8Ig4gBEJ/hSADfCIEIAUgBn0iBUJtVq0iA1StIgZ9IQggBiAOViEjIAQgA30hA0JtIAV9IQYgCSAMViALIA1Wcq0gByAKfXxC////////////AHwLIAIpAzghFiACKQMwIRggAikDKCEVIAIpAyAiGiEHICOtfSIEIQUCfgJAAkAgBCAaUg0AIAgiBSAVIgdSDQAgAyEFIBgiByADUg0AIAYiBSAWIgdRDQELIAUgB1YNACAYIAN9IgcgBiAWVq0iBVQgAyAYVnKtIgMgFSAIfSIJQn+FfCIKIAUgB0J/hXwiBSAWIAZ9IgZCbVatIgtUrSIMfSEHIAogDFQhIyAFIAt9IQVCbSAGfSEGIAggFVYgAyAJVnKtIAQgGn18Qv///////////wB8DAELIAMgGH0iByAGIBZUrSIJfSEFIAggFX0iCiADIBhUIAcgCVRyrSIDfSEHIAggFVQgAyAKVnIhIyAGIBZ9IQYgBCAafQshBCACIAY3A7gBIAIgBTcDsAEgAiAHNwOoASACIAQgI619NwOgAUIAIQggAkHQAmpCADcDACACQcgCakIANwMAIAJCADcDwAJCyAMhAyACQsgDNwPYAiACQfgCaiAkQRhqKQMANwMAIAJB8AJqICRBEGopAwA3AwAgAkHoAmogJEEIaikDADcDACACICQpAwA3A+ACIAJBoAJqIAJBwAJqIAJB4AJqEIUBIAIpA7gCIQQgAgJ+IAIpA7ACIgcgAikDoAIiCiACKQOoAiIJhIRQBEBBACEjQgAhBUIAIARCyQNUDQEaCyAHIARCyANUrSIDVK0iCCAJQn+FfCIGIAMgB0J/hXwiByAEQrYDfUISVK0iC1StIgN9IQUgAyAGViEjIAggCVatIAp9Qv///////////wB8IQhCtQMhAyAHIAt9CzcD8AEgAiAFNwPoASACIAMgBH03A/gBIAIgCCAjrX03A+ABAkACQCACQeABakHY+cAAQSAQ0AQEQEIAIQ4gAkGwAmpCADcDACACQagCakIANwMAIAJCADcDoAIgAkIBNwO4AiACQdgCaiACQfgBaikDADcDACACQdACaiACQfABaikDADcDACACQcgCaiACQegBaikDADcDACACIAIpA+ABNwPAAiACQfgCaiIjQdD5wAApAwA3AwAgAkHwAmoiJkHI+cAAKQMANwMAIAJB6AJqIidBwPnAACkDADcDACACQbj5wAApAwA3A+ACAkAgAkHAAmogAkGgAmpBIBDQBEUEQEKkCyEHQgAhBkIAIQ0MAQtCpAshByACKQPYAiEDIAIpA8ACIREgAikDyAIhBCACKQPQAiETQgAhCUIAIQhCACENQgAhBkJtIQVC////////////ACEQQn8hCkJ/IRQDQCACQeACaiACQaACakEgENAERQRAIBIhDiAIIQcgCSEGIA8hDQwCCyADp0EBcUUEQANAIBNCP4YgA0IBiIQhAwJAIAdCAYNQBEAgDSELIA4hDAwBCyAGIA1CAFIgDUIBfSINIA5CAFIgDkIBfSILIAcgB0ITfSIHVq18IgwgC1RyrXwiCyANVHKtfEL///////////8AfCEGCyARQj+GIARCP4YgE0IBiIQhEyARQgGIIREgBkI/hiALQgGIhCENIAtCP4YgDEIBiIQhDiAMQj+GIAdCAYiEIQcgBkIBiCEGIARCAYiEIQQgA0IBg1ANAAsgAiATNwPQAiACIAM3A9gCIAIgBDcDyAIgAiARNwPAAgsgBadBAXFFBEADQCAUQj+GIAVCAYiEIQUCQCAIQgGDUARAIAghDCASIQggDyELDAELIAkgD0IAUiAPQgF9Ig8gEkIAUiASQgF9IgsgCEITfSIMIAhUrXwiCCALVHKtfCILIA9Ucq18Qv///////////wB8IQkLIBBCP4YgCkI/hiAUQgGIhCEUIBBCAYghECAJQj+GIAtCAYiEIQ8gC0I/hiAIQgGIhCESIAhCP4YgDEIBiIQhCCAJQgGIIQkgCkIBiIQhCiAFQgGDUA0ACyACIBQ3A/ACIAIgBTcD+AIgAiAKNwPoAiACIBA3A+ACCwJAAkACQAJAIBEiDCAQIgtSDQAgCiELIAQhDCAEIApSDQAgEyIMIBQiC1INACAFIQsgAyEMIAMgBVENAQsgCyAMVA0AIAIgBSADfSILNwP4AiACIBQgE30iFyADIAVWrSIFfSIMNwPwAiACIAogBH0iGSAFIBdWIBMgFFZyrSIFfSIXNwPoAiACIBAgEX0gBSAZViAEIApWcq19IhA3A+ACIAYhCgJAAkAgCSIFIAZSDQAgDSIKIA8iBVINACAOIgogEiIFUg0AIAchCiAHIAgiBVENAQsgBSAKVA0CCyAJIAZ9IA8gDX0iGSASIA59Ih4gByAIVq0iIFQgDiASVnKtIiFUIA0gD1ZyrX0hCSAIIAd9IQggDCEUIBchCiALIQUgHiAgfSESIBkgIX0hDwwCCyACIAMgBX0iCzcD2AIgAiATIBR9IhcgAyAFVK0iA30iDDcD0AIgAiAEIAp9IhkgEyAUVCADIBdWcq0iA30iFzcDyAIgAiARIBB9IAQgClQgAyAZVnKtfSIRNwPAAgJAAkACQCAGIgMgCSIEUg0AIA0iAyAPIgRSDQAgDiIDIBIiBFINACAIIgQgByIDUQ0BCyADIARUDQELIAYgCX0gDSAPVCANIA99Ig0gDiASVCAOIBJ9Ig4gByAIVK0iGVRyrSIeVHKtfSEGIAcgCH0hByAMIRMgFyEEIAshAyANIB59IQ0gDiAZfSEODAILIAYgCX0gD0J/hSIEIBJCf4UiAyAIQm1WrSIGVK0iE1StfSANIAQgE30iE3wiBCATVCAEIAMgBn0iBiAOfCIDIAZUIANCbSAIfSIGIAd8IgcgBlStfCIOIANUcq18Ig0gBFRyrXxC////////////AHwhBiAMIRMgFyEEIAshAwwBCyAJQn9CACANQn+FIgUgDkJ/hSIKIAdCbVatIhRUrSIZVBsgBn18IA8gBSAZfSIJfCIFIAlUIAUgCiAUfSIKIBJ8IgkgClQgCUJtIAd9IgogCHwiCCAKVK18IhIgCVRyrXwiDyAFVHKtfEL///////////8AfCEJIAwhFCAXIQogCyEFCyACQcACaiACQaACakEgENAEDQALCyACIAc3A9gBIAIgDjcD0AEgAiANNwPIASACIAY3A8ABIAJBQGsgAkGgAWogAkHAAWoQhQEgIyAkQRhqKQMANwMAICYgJEEQaikDADcDACAnICRBCGopAwA3AwAgAiAkKQMANwPgAiACQcACaiACIAJB4AJqEIUBIB0gAikDwAJ8IgcgGyACKQPIAnwiAyAbVCADIBwgAikD0AJ8IgggHFQgCCAIIB8gAikD2AJ8IgYgH1StfCIEVnKtfCIFIANUcq18IQMCQCAHIB1UIAMgB1RyDQBC////////////ACEJIAMiB0L///////////8AUQRAQn8hCUL///////////8AIQcgBUJ/Ug0DIARCf1IEQCAEIQgMBQtCbSEJIAYhByAGQm1RDQELIAcgCVoNACADIQcMAgsgBEIBfCIHIAZCbVStIgl9IQggBUIBfCIKIARCf1IgByAJVHKtIgR9IQkgAyAFQn9SIAQgClZyrX1C////////////AH0hByAGQhN8IQYMAgsgAkICNwPgAkGA+MAAQSsgAkHgAmpBrPjAAEGsp8EAEL4DAAsgBSEJIAQhCAsgAkHgAmogAkGAAWogAkHgAGoQhQEgAikD4AIiBSERAn4CQCAIAn4CQCAFIAciBFINACAJIgQgAikD6AIiEVINACAIIgQgAikD8AIiEVINACAJIRAgBCAGIgQiAyACKQP4AiIRUQ0BGgsgAikD+AIhAyAEIBFYDQEgAikD6AIhECACKQPwAgsiBH0iCiADIAZWrSILfSERIAkgEH0iDCAKIAtUIAQgCFZyrSIEfSEIIAkgEFQgBCAMVnIhIyAGIAN9IQMgByAFfQwBCyACKQPwAiIEIAhUIAQgCH0iBCADIAZUrSIIVHKtIgogAikD6AIiCyAJfSIMQn+FfCINIARCf4UgCHwiBCADIAZ9IgNCbVatIgZUrSIOfSEIIA0gDlQhIyAEIAZ9IRFCbSADfSEDIAkgC1YgCiAMVnKtIAcgBX18Qv///////////wB8CyAjrX0iBSEHIAICfgJAAn4CQCAFIBoiCVINACAIIQcgFSIJIAhSDQAgESIHIBgiCVINACAJIQQgFiIJIRAgFSAJIAMiB1ENARoLIAcgCVgNASARIQQgAyEQIAgLIQMgBCAYfSIHIBAgFlStIgh9IQkgAyAVfSIKIAQgGFQgByAIVHKtIgR9IQcgAyAVVCAEIApWciEjIAUgGn0hBiAQIBZ9DAELIBggEX0iBCADIBZWrSIHVCARIBhWcq0iCiAVIAh9IgZCf4V8IgkgByAEQn+FfCIEIBYgA30iA0JtVq0iC1StIgx9IQcgCSAMVCEjIAQgC30hCSAGIApUIAggFVZyrSAFIBp9fEL///////////8AfCEGQm0gA30LNwO4ASACIAk3A7ABIAIgBzcDqAEgAiAGICOtfTcDoAEgAkHQAmpCADcDACACQcgCakIANwMAIAJBiAJqIChBCGoiIykDADcDACACQZACaiAoQRBqIiYpAwA3AwAgAkGYAmogKEEYaiInKQMANwMAIAJCADcDwAIgAkKYATcD2AIgAiAoKQMANwOAAiACQfgCaiAnKQMANwMAIAJB8AJqIicgJikDADcDACACQegCaiImICMpAwA3AwAgAiAoKQMANwPgAiACQaACaiACQcACaiIjIAJB4AJqIigQhQEgJ0IANwMAICZCADcDACACQgA3A+ACIAJCmAE3A/gCICMgKCACQYACahCFASAoICMgJBCFASACKQPgAiIEIQYgAikDoAIiByEIAn8CQAJ+AkAgBCAHUg0AIAIpA+gCIgMgAikDqAIiCFIEQCADIQYMAQsgAikD8AIiBSACKQOwAiIIUgRAIAUhBgwBCyADIREgAikD+AIiBiEQIAUgBiACKQO4AiIIUQ0BGgsgBiAIWg0BIAIpA+gCIQMgAikDqAIhESACKQPwAiEFIAIpA/gCIQYgAikDuAIhECACKQOwAgsiCSAFfSIKIAYgEFatIgt9IQggESAD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ICZWrSISVCAVICRWcq0iFCAjIBd9IhhCf4V8IhkgEiARQn+FfCIRICYgE30iEkJtVq0iE1StIhp9IRUgGSAaVCEEIBEgE30hESAXICNWIBQgGFZyrSAWICt9fEL///////////8AfCEXQm0gEn0MAQsgFSAkfSISIBMgJlStIhR9IREgFyAjfSIYIBUgJFQgEiAUVHKtIhJ9IRUgFyAjVCASIBhWciEEIBYgK30hFyATICZ9CzcDuAEgAyARNwOwASADIBU3A6gBIAMgFyAErX03A6ABIANBkANqQgA3AwAgA0GIA2pCADcDACADQgA3A4ADIANCyAM3A5gDIANCpXxCyAMgA0GAA2oiBkHY+cAAQSAQ0AQiBBs3A/gCIANCf0IAIAQbIhE3A/ACIAMgETcD6AIgA0L///////////8AQgAgBBs3A+ACIAYgA0HgAmogA0HgAGoQhQEgAykDgAMiESEUAn4CQAJ+AkAgESAsIhVSDQAgAykDiAMiFCAnIhVSDQAgAykDkAMiFCAoIhVSDQAgFSESICcgAykDmAMiFCAqIhUiE1ENARoLIAMpA5gDIRMgFCAVWA0BIAMpA5ADIRIgAykDiAMLIRYgEiAofSIUIBMgKlStIhd9IRUgFiAnfSIYIBQgF1QgEiAoVHKtIhJ9IRQgFiAnVCASIBhWciEEIBEgLH0hESATICp9DAELICggAykDkAMiElQgKCASfSISIBMgKlatIhZUcq0iFyAnIAMpA4gDIhh9IhlCf4V8IhUgEkJ/hSAWfCISICogE30iFkJtVq0iE1StIhp9IRQgFSAaVCEEIBIgE30hFSAYICdWIBcgGVZyrSARICx9fEL///////////8AfCERQm0gFn0LIRIgA0HwAmpCADcDACADQegCakIANwMAIANCADcD4AIgA0K+ATcD+AIgA0GYA2ogA0E4aikDADcDACADQZADaiADQTBqKQMANwMAIANBiANqIANBKGopAwA3AwAgAyADKQMgNwOAAyADQcACaiADQeACaiADQYADahCFASARIAStfSIYIAMpA8ACfCIRIBQgFCADKQPIAnwiF1YgFyAXIBUgFSADKQPQAnwiFFYgFCAUIBIgAykD2AJ8IhMgElStfCIWVnKtfCIXVnKtfCEVAkACQAJAIBEgGFQgESAVVnINAEL///////////8AIRQgFSIRQv///////////wBRBEBCfyEUQv///////////wAhESAXQn9SDQIgFkJ/UgRAIBYhEgwEC0JtIRQgEyIRQm1RDQELIBEgFFoNACAVIREMAQsgFkIBfCIRIBNCbVStIhR9IRIgF0IBfCIYIBZCf1IgESAUVHKtIhF9IRQgFSAXQn9SIBEgGFZyrX1C////////////AH0hESATQhN8IRMMAQsgFyEUIBYhEgsgAyATNwOYAiADIBI3A5ACIAMgFDcDiAIgAyARNwOAAgJAAkAgA0GAAmpB2PnAAEEgENAEBEBCACEcIANB0AJqQgA3AwAgA0HIAmpCADcDACADQgA3A8ACIANCATcD2AIgA0H4AmogA0GYAmopAwA3AwAgA0HwAmogA0GQAmopAwA3AwAgA0HoAmogA0GIAmopAwA3AwAgAyADKQOAAjcD4AIgA0GYA2oiBEHQ+cAAKQMANwMAIANBkANqIgZByPnAACkDADcDACADQYgDaiIHQcD5wAApAwA3AwAgA0G4+cAAKQMANwOAAwJAIANB4AJqIANBwAJqQSAQ0ARFBEBCpAshFUIAIRNCACEbDAELQqQLIRUgAykD+AIhESADKQPgAiEdIAMpA+gCIRYgAykD8AIhIUIAIRdCACEUQgAhG0IAIRNCbSESQv///////////wAhH0J/IRhCfyEiA0AgA0GAA2ogA0HAAmpBIBDQBEUEQCAgIRwgFCEVIBchEyAeIRsMAgsgEadBAXFFBEADQCAhQj+GIBFCAYiEIRECQCAVQgGDUARAIBshGSAcIRoMAQsgEyAbQgBSIBtCAX0iGyAcQgBSIBxCAX0iGSAVIBVCE30iFVatfCIaIBlUcq18IhkgG1RyrXxC////////////AHwhEwsgHUI/hiAWQj+GICFCAYiEISEgHUIBiCEdIBNCP4YgGUIBiIQhGyAZQj+GIBpCAYiEIRwgGkI/hiAVQgGIhCEVIBNCAYghEyAWQgGIhCEWIBFCAYNQDQALIAMgITcD8AIgAyARNwP4AiADIBY3A+gCIAMgHTcD4AILIBKnQQFxRQRAA0AgIkI/hiASQgGIhCESAkAgFEIBg1AEQCAUIRogICEUIB4hGQwBCyAXIB5CAFIgHkIBfSIeICBCAFIgIEIBfSIZIBRCE30iGiAUVK18IhQgGVRyrXwiGSAeVHKtfEL///////////8AfCEXCyAfQj+GIBhCP4YgIkIBiIQhIiAfQgGIIR8gF0I/hiAZQgGIhCEeIBlCP4YgFEIBiIQhICAUQj+GIBpCAYiEIRQgF0IBiCEXIBhCAYiEIRggEkIBg1ANAAsgAyAiNwOQAyADIBI3A5gDIAMgGDcDiAMgAyAfNwOAAwsCQAJAAkACQCAdIhogHyIZUg0AIBghGSAWIRogFiAYUg0AICEiGiAiIhlSDQAgEiEZIBEhGiARIBJRDQELIBkgGlQNACADIBIgEX0iGTcDmAMgAyAiICF9IiUgESASVq0iEn0iGjcDkAMgAyAYIBZ9IikgEiAlViAhICJWcq0iEn0iJTcDiAMgAyAfIB19IBIgKVYgFiAYVnKtfSIfNwOAAyATIRgCQAJAIBciEiATUg0AIBsiGCAeIhJSDQAgHCIYICAiElINACAVIRggFSAUIhJRDQELIBIgGFQNAgsgFyATfSAeIBt9IikgICAcfSItIBQgFVStIi5UIBwgIFZyrSIvVCAbIB5Wcq19IRcgFCAVfSEUIBohIiAlIRggGSESIC0gLn0hICApIC99IR4MAgsgAyARIBJ9Ihk3A/gCIAMgISAifSIlIBEgElStIhF9Iho3A/ACIAMgFiAYfSIpICEgIlQgESAlVnKtIhF9IiU3A+gCIAMgHSAffSAWIBhUIBEgKVZyrX0iHTcD4AICQAJAAkAgEyIRIBciFlINACAbIhEgHiIWUg0AIBwiESAgIhZSDQAgFCEWIBUiESAUUQ0BCyARIBZUDQELIBMgF30gGyAeVCAbIB59IhsgHCAgVCAcICB9IhwgFCAVVq0iKVRyrSItVHKtfSETIBUgFH0hFSAaISEgJSEWIBkhESAbIC19IRsgHCApfSEcDAILIBMgF30gHkJ/hSIRICBCf4UiFiAUQm1WrSITVK0iIVStfSAbIBEgIX0iIXwiESAhVCARIBYgE30iEyAcfCIWIBNUIBZCbSAUfSITIBV8IhUgE1StfCIcIBZUcq18IhsgEVRyrXxC////////////AHwhEyAaISEgJSEWIBkhEQwBCyAXQn9CACAbQn+FIhIgHEJ/hSIYIBVCbVatIiJUrSIpVBsgE318IB4gEiApfSIXfCISIBdUIBIgGCAifSIYICB8IhcgGFQgF0JtIBV9IhggFHwiFCAYVK18IiAgF1RyrXwiHiASVHKtfEL///////////8AfCEXIBohIiAlIRggGSESCyADQeACaiADQcACakEgENAEDQALCyADIBU3A/gBIAMgHDcD8AEgAyAbNwPoASADIBM3A+ABIANBQGsgA0GgAWogA0HgAWoQhQEgA0HIAWogA0HIAGoiCykDADcDACADQdABaiADQdAAaiIMKQMANwMAIANB2AFqIANB2ABqIg0pAwA3AwAgAyADKQNANwPAASADICw3A+ACIAMgJzcD6AIgAyAqNwP4AiADICg3A/ACIAQgDSkDADcDACAGIAwpAwA3AwAgByALKQMANwMAIAMgAykDQDcDgAMgA0HAAmogA0HgAmogA0GAA2oQhQEgLCADKQPAAnwiFSAnIAMpA8gCfCISICdUIBIgKCADKQPQAnwiFiAoVCAWIBYgKiADKQPYAnwiEyAqVK18IhFWcq18IhYgElRyrXwhEgJAIBUgLFQgEiAVVHINAEL///////////8AIRcgEiIVQv///////////wBRBEBCfyEXQv///////////wAhFSAWQn9SDQMgEUJ/UgRAIBEhFAwFC0JtIRcgEyEVIBNCbVENAQsgFSAXWg0AIBIhFQwCCyARQgF8IhUgE0JtVK0iF30hFCAWQgF8IhggEUJ/UiAVIBdUcq0iEX0hFyASIBZCf1IgESAYVnKtfUL///////////8AfSEVIBNCE3whEwwCCyADQgI3A4ADQYD4wABBKyADQYADakGs+MAAQcynwQAQvgMACyAWIRcgESEUCyADQZgDaiADQdgAaikDADcDACADQZADaiADQdAAaikDADcDACADQYgDaiADQcgAaikDADcDACADIAMpA0A3A4ADIANB4AJqIANBgAFqIANBgANqEIUBIAMpA+ACIhIhHQJ/AkAgFAJ+AkAgEiAVIhZSDQAgFyIWIAMpA+gCIh1SDQAgFCIWIAMpA/ACIh1SDQAgEyEWIBchHyAUIBMiESADKQP4AiIdUQ0BGgsgAykD+AIhESAWIB1YDQEgAykD6AIhHyADKQPwAgsiFn0iGCARIBNWrSIZfSEdIBcgH30iGiAUIBZUIBggGVRyrSIWfSEUIBUgEn0hFSATIBF9IREgFyAfVCAWIBpWcgwBCyADKQPwAiIWIBRUIBYgFH0iFiARIBNUrSIUVHKtIhggAykD6AIiGSAXfSIaQn+FfCIbIBZCf4UgFHwiFiARIBN9IhFCbVatIhNUrSIcfSEUIBYgE30hHSAXIBlWIBggGlZyrSAVIBJ9fEL///////////8AfCEVQm0gEX0hESAbIBxUCyEEIBUgBK19IhIhFSADAn4CQAJ+AkAgEiArIhdSDQAgFCIVICMiF1INACAdIhUgJCIXUg0AIBchFiAmIhchHyAjIBcgESIVUQ0BGgsgFSAXWA0BIB0hFiARIR8gFAshESAWICR9IhUgHyAmVK0iE30hFyARICN9IhQgFiAkVCATIBVWcq0iFn0hFSAUIBZUIBEgI1RyIQQgEiArfSETIB8gJn0MAQsgJCAdfSIWIBEgJlatIhVUIB0gJFZyrSITICMgFH0iGEJ/hXwiFyAVIBZCf4V8IhYgJiARfSIRQm1WrSIZVK0iGn0hFSAXIBpUIQQgFiAZfSEXIBQgI1YgEyAYVnKtIBIgK318Qv///////////wB8IRNCbSARfQs3A7gBIAMgFzcDsAEgAyAVNwOoASADIBMgBK19NwOgASADQfACakIANwMAIANB6AJqQgA3AwAgA0GoAmogAkEIaiIEKQMANwMAIANBsAJqIAJBEGoiBikDADcDACADQbgCaiACQRhqIgcpAwA3AwAgA0IANwPgAiADQpgBNwP4AiADIAIpAwA3A6ACIANBmANqIAcpAwA3AwAgA0GQA2oiByAGKQMANwMAIANBiANqIgYgBCkDADcDACADIAIpAwA3A4ADIANBwAJqIANB4AJqIgIgA0GAA2oiBBCFASAHQgA3AwAgBkIANwMAIANCADcDgAMgA0KYATcDmAMgAiAEIANBoAJqEIUBIAQgAiADQcABahCFASADKQOAAyIWIRMgAykDwAIiFSEUAn8CQAJ+AkAgFSAWUg0AIAMpA4gDIhEgAykDyAIiFFIEQCARIRMMAQsgAykDkAMiEiADKQPQAiIUUgRAIBIhEwwBCyARIR0gAykDmAMiEyEfIBIgEyADKQPYAiIUUQ0BGgsgEyAUWg0BIAMpA4gDIREgAykDyAIhHSADKQOQAyESIAMpA5gDIRMgAykD2AIhHyADKQPQAgsiFyASfSIYIBMgH1atIhl9IRQgHSARfSIaIBggGVQgEiAXVnKtIhh9IRIgFSAWfSEXIB8gE30hEyAYIBpWIBEgHVZyDAELIAMpA5ADIhEgAykD0AIiElQgESASfSIRIAMpA5gDIhIgAykD2AIiE1StIhRUcq0iFyADKQOIAyIYIAMpA8gCIhl9IhpCf4V8IhsgEUJ/hSAUfCIRIBIgE30iE0JtVq0iFFStIhx9IRIgESAUfSEUIBggGVQgFyAaVnKtIBUgFn18Qv///////////wB8IRdCbSATfSETIBsgHFQLIQIgAyATNwOYAiADIBQ3A5ACIAMgEjcDiAIgAyAXIAKtfTcDgAICQCADQYACakHY+cAAQSAQ0AQEQEIAIRwgA0HQAmpCADcDACADQcgCakIANwMAIANCADcDwAIgA0IBNwPYAiADQfgCaiADQZgCaikDADcDACADQfACaiADQZACaikDADcDACADQegCaiADQYgCaikDADcDACADIAMpA4ACNwPgAiADQZgDakHQ+cAAKQMANwMAIANBkANqQcj5wAApAwA3AwAgA0GIA2pBwPnAACkDADcDACADQbj5wAApAwA3A4ADAkAgA0HgAmogA0HAAmpBIBDQBEUEQEKkCyEVQgAhE0IAIRsMAQtCpAshFSADKQP4AiERIAMpA+ACIR0gAykD6AIhFiADKQPwAiEhQgAhF0IAIR5CACEgQgAhFEIAIRtCACETQm0hEkL///////////8AIR9CfyEYQn8hIgNAIANBgANqIANBwAJqQSAQ0ARFBEAgICEcIBQhFSAXIRMgHiEbDAILIBGnQQFxRQRAA0AgIUI/hiARQgGIhCERAkAgFUIBg1AEQCAbIRkgHCEaDAELIBMgG0IAUiAbQgF9IhsgHEIAUiAcQgF9IhkgFSAVQhN9IhVWrXwiGiAZVHKtfCIZIBtUcq18Qv///////////wB8IRMLIB1CP4YgFkI/hiAhQgGIhCEhIB1CAYghHSATQj+GIBlCAYiEIRsgGUI/hiAaQgGIhCEcIBpCP4YgFUIBiIQhFSATQgGIIRMgFkIBiIQhFiARQgGDUA0ACyADICE3A/ACIAMgETcD+AIgAyAWNwPoAiADIB03A+ACCyASp0EBcUUEQANAICJCP4YgEkIBiIQhEgJAIBRCAYNQBEAgFCEaICAhFCAeIRkMAQsgFyAeQgBSIB5CAX0iHiAgQgBSICBCAX0iGSAUQhN9IhogFFStfCIUIBlUcq18IhkgHlRyrXxC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AyAFNgIcIAMgACgCBDYCFAsgAyABNgIYIANBCGogBCACIANBFGoQqAMgAygCCARAIAMoAgwgAygCEBCoBAALIAMoAgwhASAAIAI2AgAgACABNgIEIANBIGokAAurAQEEfyMAQSBrIgEkACAAKAIAIgNBAWoiAkUEQEEAQQAQqAQAC0EIIANBAXQiBCACIAIgBEkbIgIgAkEITRsiAkF/c0EfdiEEIAEgAwR/IAEgAzYCHCABIAAoAgQ2AhRBAQVBAAs2AhggAUEIaiAEIAIgAUEUahCsAyABKAIIBEAgASgCDCABKAIQEKgEAAsgASgCDCEDIAAgAjYCACAAIAM2AgQgAUEgaiQAC64BAQN/QQEhBEEEIQYgAUUgAkEASHJFBEACfwJAAkACfyADKAIEBEAgAygCCCIBRQRAIAJFBEAMBAtB2b7CAC0AABogAkEBELAEDAILIAMoAgAgAUEBIAIQqQQMAQsgAkUEQAwCC0HZvsIALQAAGiACQQEQsAQLIgRFDQELIAAgBDYCBEEADAELIABBATYCBEEBCyEEQQghBiACIQULIAAgBmogBTYCACAAIAQ2AgALvgEBBH8jAEFAaiIBJAAgAUEANgIUIAFCgICAgBA3AgwgAUEDOgA4IAFBIDYCKCABQQA2AjQgAUGo2sAANgIwIAFBADYCICABQQA2AhggASABQQxqNgIsIAAgAUEYahCfAkUEQCABKAIMIQIgASgCECIDIAEoAhQQBCACBEAgAyACELkECyAAKAIAIgIEQCAAKAIEIAJBAnQQuQQLIAFBQGskAA8LQcDawABBNyABQT9qQfjawABB1NvAABC+AwALmQEBAn8gACgCCCICBEAgACgCBCEAA0AgACgCACIBBEAgAEEEaigCACABQQV0ELkECyAAQQxqKAIAIgEEQCAAQRBqKAIAIAFBBXQQuQQLIABBGGooAgAiAQRAIABBHGooAgAgAUEFdBC5BAsgAEEkaigCACIBBEAgAEEoaigCACABQQV0ELkECyAAQTBqIQAgAkEBayICDQALCwucBAIEfwF+IwBBEGsiByQAIAAoAhQgASACIAAoAhgoAgwRAwAhASAHQQA6AA0gByABOgAMIAcgADYCCCMAQUBqIgAkAEEBIQgCQCAHQQhqIgItAAQNACACLQAFIQkgAigCACIBKAIcIgpBBHFFBEAgASgCFEHzosIAQfCiwgAgCRtBAkEDIAkbIAEoAhgoAgwRAwANASABKAIUIAMgBCABKAIYKAIMEQMADQEgASgCFEHAosIAQQIgASgCGCgCDBEDAA0BIAUgASAGKAIMEQIAIQgMAQsgCUUEQCABKAIUQfWiwgBBAyABKAIYKAIMEQMADQEgASgCHCEKCyAAQQE6ABsgACABKQIUNwIMIABB1KLCADYCNCAAIABBG2o2AhQgACABKQIINwIkIAEpAgAhCyAAIAo2AjggACABKAIQNgIsIAAgAS0AIDoAPCAAIAs3AhwgACAAQQxqIgE2AjAgASADIAQQqQINACABQcCiwgBBAhCpAg0AIAUgAEEcaiAGKAIMEQIADQAgACgCMEH4osIAQQIgACgCNCgCDBEDACEICyACQQE6AAUgAiAIOgAEIABBQGskAAJ/IActAAwiAEEARyAHLQANRQ0AGkEBIAANABogAigCACIALQAcQQRxRQRAIAAoAhRB+6LCAEECIAAoAhgoAgwRAwAMAQsgACgCFEH6osIAQQEgACgCGCgCDBEDAAsgB0EQaiQAC5sBAQF/AkACQCABBEAgAkEASA0BAn8gAygCBARAAkAgAygCCCIERQRADAELIAMoAgAgBCABIAIQqQQMAgsLIAEgAkUNABpB2b7CAC0AABogAiABELAECyIDBEAgACACNgIIIAAgAzYCBCAAQQA2AgAPCyAAIAI2AgggACABNgIEDAILIABBADYCBAwBCyAAQQA2AgQLIABBATYCAAuzAQEBf0HZvsIALQAAGkHAAEEIELAEIgJFBEBBCEHAABCoBAALIABBAjYCCCAAIAI2AgQgAEECNgIAIAIgASkDADcDACACQThqIAFBOGopAwA3AwAgAkEwaiABQTBqKQMANwMAIAJBKGogAUEoaikDADcDACACQSBqIAFBIGopAwA3AwAgAkEYaiABQRhqKQMANwMAIAJBEGogAUEQaikDADcDACACQQhqIAFBCGopAwA3AwALqAEBBH8CQCABKAIAQYCAgIB4RgRAIAEoAgQiASgCBCEFAkAgASgCCCIBRQRAQQQhAwwBCyABQQJ0IQIgAUH/////AUsEQAwDC0HZvsIALQAAGkEEIQQgAkEEELAEIgNFDQILIAMgBSACEM8EIQIgACABNgIIIAAgAjYCBCAAIAE2AgAPCyAAIAEpAgA3AgAgAEEIaiABQQhqKAIANgIADwsgBCACEKgEAAujAQEBfyMAQUBqIgIkACAAKAIAIQAgAkIANwM4IAJBOGogABAFIAIgAigCPCIANgI0IAIgAigCODYCMCACIAA2AiwgAiACQSxqrUKAgICAoAuENwMgIAJBAjYCDCACQejYwQA2AgggAkIBNwIUIAIgAkEgajYCECABKAIUIAEoAhggAkEIahCgAiACKAIsIgEEQCACKAIwIAEQuQQLIAJBQGskAAuYAQICfwF+IwBBgAFrIgMkACAAKQMAIQRBACEAA0AgACADakH/AGogBKdBD3EiAkEwciACQdcAaiACQQpJGzoAACAAQQFrIQAgBEIQVCAEQgSIIQRFDQALIABBgAFqIgJBgAFLBEAgAkGAAUGgo8IAENUDAAsgAUEBQZ2jwgBBAiAAIANqQYABakEAIABrEP4BIANBgAFqJAALlgEBAn8jAEEQayICJAAgACgCACEAIAJBBGoiAyABEJIEIAIgADYCDCADIAJBDGpB2M7AABCAAyACIABBCGo2AgwgAkEEaiACQQxqQdjOwAAQgAMgAiAAQRBqNgIMIAJBBGogAkEMakHYzsAAEIADIAIgAEEYajYCDCACQQRqIAJBDGpB2M7AABCAAyADEJEEIAJBEGokAAuRAQEDfyMAQYABayIEJAAgACgCACEAA0AgAiAEakH/AGogAEEPcSIDQTByIANB1wBqIANBCkkbOgAAIAJBAWshAiAAQRBJIABBBHYhAEUNAAsgAkGAAWoiAEGAAUsEQCAAQYABQaCjwgAQ1QMACyABQQFBnaPCAEECIAIgBGpBgAFqQQAgAmsQ/gEgBEGAAWokAAuQAQEDfyMAQYABayIEJAAgACgCACEAA0AgAiAEakH/AGogAEEPcSIDQTByIANBN2ogA0EKSRs6AAAgAkEBayECIABBEEkgAEEEdiEARQ0ACyACQYABaiIAQYABSwRAIABBgAFBoKPCABDVAwALIAFBAUGdo8IAQQIgAiAEakGAAWpBACACaxD+ASAEQYABaiQAC58BAQN/IwBBEGsiAiQAAkACQAJAIAEoAghFBEBB2b7CAC0AABpBASEEQQFBARCwBCIDRQ0DIANBADoAACAAIANBARC6AQwBCyACQQRqIAEQqwIgAigCBCEEIAAgAigCCCIDIAIoAgwQugEgBEUNAQsgAyAEELkECyABKAIAIgAEQCABKAIEIABBAnQQuQQLIAJBEGokAA8LQQFBARDKBAALnQEBA38jAEEQayICJAACQAJAAkAgASgCCEUEQEHZvsIALQAAGkEBIQRBAUEBELAEIgNFDQMgA0EAOgAAIAAgA0EBED0MAQsgAkEEaiABEKsCIAIoAgQhBCAAIAIoAggiAyACKAIMED0gBEUNAQsgAyAEELkECyABKAIAIgAEQCABKAIEIABBAnQQuQQLIAJBEGokAA8LQQFBARDKBAALkwEBBH8jAEEQayICJABBASEEAkAgASgCFCIDQScgASgCGCIFKAIQIgERAgANACACQQRqIAAoAgBBgQIQ/AECQCACLQAEQYABRgRAIAMgAigCCCABEQIARQ0BDAILIAMgAi0ADiIAIAJBBGpqIAItAA8gAGsgBSgCDBEDAA0BCyADQScgARECACEECyACQRBqJAAgBAuQAQIDfwF+IwBBIGsiAiQAIAEoAgBBgICAgHhGBEAgASgCDCEDIAJBHGoiBEEANgIAIAJCgICAgBA3AhQgAkEUakHUmcIAIAMQoAIaIAJBEGogBCgCACIDNgIAIAIgAikCFCIFNwMIIAFBCGogAzYCACABIAU3AgALIABBnJzCADYCBCAAIAE2AgAgAkEgaiQAC3wBAn8jAEEQayICJAAgACgCACEAIAJBBGoiAyABEJIEIAIgADYCDCADIAJBDGpB+M7AABCAAyACIABB4ABqNgIMIAJBBGogAkEMakH4zsAAEIADIAIgAEHAAWo2AgwgAkEEaiACQQxqQfjOwAAQgAMgAxCRBCACQRBqJAALewECfyMAQRBrIgIkACAAKAIAIQAgAkEEaiIDIAEQkgQgAiAANgIMIAMgAkEMakHIz8AAEIADIAIgAEFAazYCDCACQQRqIAJBDGpByM/AABCAAyACIABBgAFqNgIMIAJBBGogAkEMakHIz8AAEIADIAMQkQQgAkEQaiQAC3cBAn8jAEEQayICJAAgACgCACIAQQhqKAIAIQMgAEEEaigCACEAIAJBBGogARCSBCADBEAgA0EFdCEBA0AgAiAANgIMIAJBBGogAkEMakGYzsAAEIADIABBIGohACABQSBrIgENAAsLIAJBBGoQkQQgAkEQaiQAC3cBAn8jAEEQayICJAAgACgCACIAQQhqKAIAIQMgAEEEaigCACEAIAJBBGogARCSBCADBEAgA0EFdCEBA0AgAiAANgIMIAJBBGogAkEMakGYz8AAEIADIABBIGohACABQSBrIgENAAsLIAJBBGoQkQQgAkEQaiQAC3cBAn8jAEEQayICJAAgACgCACIAQQhqKAIAIQMgAEEEaigCACEAIAJBBGogARCSBCADBEAgA0EFdCEBA0AgAiAANgIMIAJBBGogAkEMakGozsAAEIADIABBIGohACABQSBrIgENAAsLIAJBBGoQkQQgAkEQaiQAC2gBBX4gACACQv////8PgyIEIAFC/////w+DIgV+IgYgBSACQiCIIgd+IgUgBCABQiCIIgh+fCICQiCGfCIENwMAIAAgBCAGVK0gByAIfiACIAVUrUIghiACQiCIhHx8IAEgA358NwMIC3wBAX8jAEFAaiIFJAAgBSABNgIMIAUgADYCCCAFIAM2AhQgBSACNgIQIAVBAjYCHCAFQcSiwgA2AhggBUICNwIkIAUgBUEQaq1CgICAgJAOhDcDOCAFIAVBCGqtQoCAgICgDoQ3AzAgBSAFQTBqNgIgIAVBGGogBBCGBAALcQECfyMAQRBrIgIkACAAKAIAIgAoAgghAyAAKAIEIQAgAkEEaiABEJIEIAMEQCADQTBsIQEDQCACIAA2AgwgAkEEaiACQQxqQbjOwAAQgAMgAEEwaiEAIAFBMGsiAQ0ACwsgAkEEahCRBCACQRBqJAALcQECfyMAQRBrIgIkACAAKAIAIgAoAgghAyAAKAIEIQAgAkEEaiABEJIEIAMEQCADQQV0IQEDQCACIAA2AgwgAkEEaiACQQxqQajPwAAQgAMgAEEgaiEAIAFBIGsiAQ0ACwsgAkEEahCRBCACQRBqJAALbAECfyMAQRBrIgIkACAAKAIIIQMgACgCBCEAIAJBBGogARCSBCADBEAgA0EMbCEBA0AgAiAANgIMIAJBBGogAkEMakHYz8AAEIADIABBDGohACABQQxrIgENAAsLIAJBBGoQkQQgAkEQaiQAC28BAn8jAEEQayICJAAgACgCCCEDIAAoAgQhACACQQRqIAEQkgQgAwRAIANBwAFsIQEDQCACIAA2AgwgAkEEaiACQQxqQYjPwAAQgAMgAEHAAWohACABQcABayIBDQALCyACQQRqEJEEIAJB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IQAgAkEEaiIDIAEQkgQgAiAANgIMIAMgAkEMakGoz8AAEIADIAIgAEEgajYCDCACQQRqIAJBDGpBqM/AABCAAyADEJEEIAJBEGokAAtsAQF/IwBBMGsiACQAIABBADYCBCAAQQA2AgAgAEEDNgIMIABB+J/CADYCCCAAQgI3AhQgACAAQQRqrUKAgICAEIQ3AyggACAArUKAgICAEIQ3AyAgACAAQSBqNgIQIABBCGpBjIjAABCGBAALaQIBfwF+IwBBMGsiAyQAIAMgADYCACADIAE2AgQgA0ECNgIMIANB6KXCADYCCCADQgI3AhQgA0KAgICAECIEIANBBGqthDcDKCADIAQgA62ENwMgIAMgA0EgajYCECADQQhqIAIQhgQAC2kCAX8BfiMAQTBrIgMkACADIAE2AgQgAyAANgIAIANBAjYCDCADQaChwgA2AgggA0ICNwIUIANCgICAgBAiBCADrYQ3AyggAyAEIANBBGqthDcDICADIANBIGo2AhAgA0EIaiACEIYEAAtpAgF/AX4jAEEwayIDJAAgAyAANgIAIAMgATYCBCADQQI2AgwgA0GIpsIANgIIIANCAjcCFCADQoCAgIAQIgQgA0EEaq2ENwMoIAMgBCADrYQ3AyAgAyADQSBqNgIQIANBCGogAhCGBAALaQIBfwF+IwBBMGsiAyQAIAMgADYCACADIAE2AgQgA0ECNgIMIANBvKbCADYCCCADQgI3AhQgA0KAgICAECIEIANBBGqthDcDKCADIAQgA62ENwMgIAMgA0EgajYCECADQQhqIAIQhgQAC1oBBH8gACgCBCECIAAoAggiAwRAIAIhAQNAIAEoAgAiBARAIAFBBGooAgAgBEECdBC5BAsgAUEMaiEBIANBAWsiAw0ACwsgACgCACIABEAgAiAAQQxsELkECwtmACMAQTBrIgAkAEHYvsIALQAABEAgAEECNgIMIABBuJvCADYCCCAAQgE3AhQgACABNgIsIAAgAEEsaq1CgICAgBCENwMgIAAgAEEgajYCECAAQQhqQeCbwgAQhgQACyAAQTBqJAALZwEDfyABKAIEIQQCQCABKAIIIgFFBEBBASECDAELIAFBAE4EQEHZvsIALQAAGkEBIQMgAUEBELAEIgINAQsgAyABEKgEAAsgAiAEIAEQzwQhAiAAIAE2AgggACACNgIE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AkUNAANAIAAtAAAiBCABLQAAIgVGBEAgAEEBaiEAIAFBAWohASACQQFrIgINAQwCCwsgBCAFayEDCyADC68BAQN/IAEhBQJAIAJBEEkEQCAAIQEMAQsgAEEAIABrQQNxIgNqIQQgAwRAIAAhAQNAIAEgBToAACABQQFqIgEgBEkNAAsLIAQgAiADayICQXxxIgNqIQEgA0EASgRAIAVB/wFxQYGChAhsIQMDQCAEIAM2AgAgBEEEaiIEIAFJDQALCyACQQNxIQILIAIEQCABIAJqIQIDQCABIAU6AAAgAUEBaiIBIAJJDQALCyAACwuzrwJAAEGAgMAAC5ECQ3VydmUgSUQgIG5vdCBzdXBwb3J0ZWQAAAAQAAkAAAAJABAADgAAAHNyYy9wYWlyaW5nL2ZpbmFsX2V4cF93aXRuZXNzL21vZC5ycygAEAAkAAAATgAAAAUAAAAAAAAABAAAAAAAAAABAAAAAAAAAAQAAAAAAAAAYXR0ZW1wdCB0byBkaXZpZGUgYnkgemVybwAAAHgAEAAZAAAAL3Vzci9sb2NhbC9jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvbnVtLWJpZ2ludC0wLjQuNi9zcmMvYmlndWludC9kaXZpc2lvbi5ycwCcABAAZwAAAHAAAAAJAEHIgsAAC2Ca5n856hEBGtesS0O2pxtLvxKF84RLd2Qk9rD2oNIwZ///U7H+/6seq6r//////rmq48qS5Y+YES2VGbWFPnmawIOdk6mI62fVtpVMbEfljfEE0Qmm5nYKRhc0HDQf3/QAQciDwAALgAH/////////f//////////////////////t/////////////////////////////////////////y/8///+////KaAx4XJOZDBdWIGBtkVQuI3KcWiRaoGXR/182BaMIDwBAAAA/////wAAAAAAAAAA/////wAAAAD//////////wBB4ITAAAtx0QMAAAEAAAAv3weawXcKDixGeXhvo25mPQvH9SjreAqdDY/FjUNd05PkgPrDXvYVbexWopcaB1xFV1JwU1jOd7pYx1NXmEhfAgAMxAsA9Ov9/wIAAAAJdv7///8AAAAA//////////8AAAAA/////wEAQfCFwAALzQcmAAAA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AAAOAAAAoQcQABcAAADEAAAACAAAAKEHEAAXAAAA7QAAADMAAAAXAAAADAAAAAQAAAAYAAAAoQcQABcAAAD3AAAANwAAABkAAAAMAAAABAAAABoAAAAbAAAADAAAAAQAAAAcAAAAoQcQABcAAAAFAQAAMwAAAB0AAAAMAAAABAAAAB4AAABzcmMvZnJvYmVuaXVzLnJznAoQABAAAAAPAAAAOQAAAGFzc2VydGlvbiBmYWlsZWQ6IHguY29lZmZpY2llbnRzLmxlbigpIDw9IGV4dF9kZWdyZWWcChAAEAAAABAAAAAFAAAAnAoQABAAAAAVAAAALAAAADExMjFkOGM4ZGFlZjNlZWUxZTgxYjI1MjJlYzVlYjI4ZGVkNjg5NWUxY2RmZGU2YTQzZjVkYWE5NzFmM2ZhNjU5NTUyMTdlNDAwZGM5MzUxZTc3NGUzNGUyYWMwNmVhZDQwMDBkMTRkMWUyNDJiMjljNTY3ZTljMzg1Y2U0ODBhNzFhMjQyYjcxOTA2MmY2NzM3Yjg0ODFkMjJjNjkzNGNlODQ0ZDcyZjI1MGZkMjhkMTAyYzBkMTQ3YjJmNGQ1MjFhNzM1OTgwOTA5NGJkNWM4ZTFiOWMyMmQ4MTI0NmZmYzJlNzk0ZTE3NjQzYWMxOTg0ODRiOGQ5MDk0YWE4MjUzNjIxNDM2ZDQ4ZmNiNTBjYzYwZGQ0ZWYxZTY5YTBjMWYwZGQyOTQ5ZmE2ZGY3YjQ0Y2JiMjU5ZWY3Y2I1OGQ1ZWQxODg1N2E1OGYzYjViYjMwMzhhNDMxMWE4NjkxOWQ5YzdjNmMxNWY4OGE0ZjRmMDgzMTM2NGNmMzVmNzhmNzcxMmM4NGJiYWQyN2MzNjcxNTYyYjdhZGVmZDQ0MDM4YWIzYzBiYmFkOTZmYzAwOGU3ZDY5OThjODJmN2ZjMDQ4YmMzM2IxYzcwZTRmZDExYjZkMWVhYjZmY2QxOGI5OWFkNGFmZDA5NmE4Njk3ZTBjOWMzNmQ4Y2EzMzM5YTdiNTFiMDA3Mjk0YTU1YWNjY2UxM2ZlMDhiZWE3MzMwNWZmNmJkYWM3N2M1MzcxYzU0NmQ0Mjg3ODBhNmUzZGNmYTgyMTVkNDJlN2FjN2JkMTdjZWZlODhkZDhlNjk2NWIzYWRhZTkyYzk3NGY1MDFmZTgxMTQ5M2Q3MjU0M2EzOTc3MzA2NDRlNzJlMTMxYTAyOWI4NTA0NWI2ODE4MTU4NWQ5NzgxNmE5MTY4NzFjYThkM2MyMDhjMTZkODdjZmQ0NjI0Njk5NmYzYjRmYWU3ZTZhNjMyN2NmZTEyMTUwYjhlNzQ3OTkyNzc4ZWVlYzdlNWNhNWNmMDVmODBmMzYyYWMxMmQ3YzBjM2VkNDJiZTQxOWQyYjIyY2EyMmNlY2E3MDJlZWI4OGMzNmE4YjI2NGRkZTc1ZjRmNzk4ZDZhM2YyMTZjOWU1NTA2MWViYWUyMDRiYTRjYzhiZDc1YTA3OTQzMmFlMmExZDBiN2M5ZGNlMTY2NWQ1MWM2NDBmY2JhMmMzOGRjZTI3ZTNiMmNhZTMzY2U3MzhhMTg0Yzg5ZDk0YTBlNzg0MDZiNDhmOThhN2I0ZjQ0NjNlM2E3ZGJhMDdjMDNjYmNhYzQxMDQ5YTA3MDRiNWE3ZWM3OTZmMmIyMTgwN2RjOThmYTI1YmQyODJkMzdmNjMyNjIzYjBlM2YyMGUxMjllNDdjOTM2M2FhN2I1Njk4MTdlMDk2NmNiYTU4MjA5NmZhN2ExNjQwODBmYWVkMWYwZDI0Mjc1YTJjMTQ1ZWRiZTdmZDhhZWU5ZjNhODBiMDNiMGIxYzkyMzY4NWQyZWExYmRlYzc2M2MxM2I0NzExY2QyYjgxMjYzZGY5MmM1Yjk2ZTM5MTQ1NTk4OTdjNmFkNDExZmIyNWI3NWFmYjdmOGIxYzFhNTY1ODZmZjkzZTA4MGY4YmMxMmFjZjJjYTc2ZmQwNjc1YTI3ZmIyNDZjNzcyOWY3ZGIwODBjYjk5Njc4ZTJhYzAyNGM2YjhlZTZlMGMyYzRiMTU2M2RiZGUzYmQ2ZDM1YmE0NTIzY2Y3ZGE0ZTUyNWUyYmE2YTMxNTE1MDAwNTQ2NjdmODE0MGM2YTNmMmQ5ZjMwNjQ0ZTcyZTEzMWEwMjk1ZTZkZDllN2UwYWNjY2IwYzI4ZjA2OWZiYjk2NmUzZGU0YmQ0NGU1NjA3Y2ZkNDkzMDY0NGU3MmUxMzFhMDI5NWU2ZGQ5ZTdlMGFjY2NiMGMyOGYwNjlmYmI5NjZlM2RlNGJkNDRlNTYwN2NmZDQ4NTllMjZiY2VhMGQ0OGJhY2Q0ZjI2M2YxYWNkYjVjNGY1NzYzNDczMTc3ZmZmZmZlNTllMjZiY2VhMGQ0OGJhY2Q0ZjI2M2YxYWNkYjVjNGY1NzYzNDczMTc3ZmZmZmZmMTNkMGMzNjk2MTVmN2JiMGIyYmRmYThmZWY4NWZhMDcxMjJiZGU4ZDY3ZGZjOGZhYmQzNTgxYWQ4NDBkZGQ3NjE4YTBmNDIxOWY0ZmRmZjZmYzJiZjUzMWViMzMxYTA1M2EzNTc0NGNhYzI4NWFmNTY4NWQzZjkwZWFjZjdhNjZjM2E1ZTljNDYyYTY1NDc3OWMzZTA1MGM5Y2EyYTQyODkwOGE4MTI2NGUyYjVhNWJmMjJmNjc2NTQ4ODNhZTYyY2UwMmFhNWY5YmY4Y2Q2NWJkZDIwNTVjMjU1Y2Y5ZDllMDhjMWQ5MzQ1NTgyY2M5MmZkOTczYzc0YmQ3N2Y0MTdkZWQ0MTllZDdiZTRmOTdmYWMxNDliZmFlZmJhYzExYjE1NTQ5OGRlMjI3Yjg1MGFlYTNmMjM3OTA0MDVkNjFiZmU3YjIxNGMwMjk0MjQyZmI4MWE4ZGNjZDhhOWI0NDQxZDY0ZjM0MTUwYTc5NzUzZmIwY2QzMWNjOTljYzA2OTdiOWM1MjNlMDM5MGVkMTVkYTBlYzk3YTliODM0NjUxMzI5N2I5ZWZhZjBmMGYxYTIyOGYwZDU2NjJmYmQ3YTBlMDUyZjJiMWM0NDNiNTE4NmQ2YWM0YzcyM2I4NWQzZjc4YTMxODJkMmRiMGM0MTM5MDFjMzJiMGM2ZmUxYjc2YTM3ZmJhODVmM2NkNWRjNzk4MjRhMzc5MjU5NzM1NmM4OTJjMzljMGQwNmIyMjA1MDA5MzM5NDUyNjdmYWJmOGI2MGJlNzdkNzMwNmNiZWVlMzM1NzYxMzlkN2YwM2E1ZTM5N2Q0MzllYzc2OTRhYTJiZjRjMGMxMDExYzkzOGIwOTdmZDIyNDc5MDU5MjRiMjY5MWZiNWU1Njg1NTU4YzA0MDA5MjAxOTI3ZWViMGE2OTU0NmYxZmQxNGYxZGU0MWIzZDE3NjZmYTlmMzBlNmRlYzI2MDk0ZjBmZGYzMWJmOThmZjI2MzEzODBjYWIyYmFhYTU4NmRlMjQyOWVmZDY5YjA3M2FlMjNlOGM2NTY1YjdiNzJlMWIwZTc4YzI3ZjAzOGYxNGU3N2NmZDk1YTA4M2Y0YzI2MTI4YTQxMWI2MzRmMDliOGZiMTRiOTAwZTk1MDdlOTMyNzYwMGVjYzdkOGNmNmViYWI5NGQwY2IzYjI1OTRjNjQyM2Q1ZTk5OWUxOTEwYTEyZmViMGY2ZWYwY2QyMWQwNGE0NGE5ZTA4NzM3Zjk2ZTU1ZmUzZWQ5ZDczMGMyMzlmMTQ2NWQzNTE5NTJmMGMwNTg4OTgyYjI4YjRhOGFlYTk1MzY0MDU5ZTI3MjEyMmY1ZTgyNTdmNDNiYmIzNjA4NzE2ZGIzNjZhNTliMWRkMGI5ZmIxYjIyODJhNDg2MzNkM2UyZGRhZWEyMDAyODAyMTFmMjUwNDEzODQyODI0OTkyOGMzNmUxZmVlN2ZkYmU2MDMzN2Q4NGJiY2JhMzRhNTNhNDFmMWVlNTA0NDljZGM3ODBjZmJmYWE1Y2MzNjQ5AAAAAAABAAAAAQAAAB8AAACcChAAEAAAAKYAAAB1AAAAnAoQABAAAAClAAAAdAAAAJwKEAAQAAAAogAAAHUAAACcChAAEAAAAKEAAAB0AAAAnAoQABAAAACeAAAAdAAAAJwKEAAQAAAAnQAAAHQAAACcChAAEAAAAJoAAAB0AAAAnAoQABAAAACZAAAAcwAAAJwKEAAQAAAAlgAAAHQAAACcChAAEAAAAJUAAAByAAAAnAoQABAAAACSAAAAdAAAAJwKEAAQAAAAjwAAAHUAAACcChAAEAAAAI4AAABzAAAAnAoQABAAAACLAAAAdAAAAJwKEAAQAAAAigAAAHQAAACcChAAEAAAAIcAAAB0AAAAnAoQABAAAACGAAAAcwAAAJwKEAAQAAAAgwAAAHQAAACcChAAEAAAAIIAAABzAAAAnAoQABAAAAB/AAAAdAAAAJwKEAAQAAAAfgAAAHQAAACcChAAEAAAAHsAAAA2AAAAnAoQABAAAAB6AAAANQAAAJwKEAAQAAAAdQAAAGUAAACcChAAEAAAAHIAAABlAAAAnAoQABAAAABvAAAAdAAAAJwKEAAQAAAAbAAAAHQAAACcChAAEAAAAGkAAAB0AAAAnAoQABAAAABmAAAANQAAAJwKEAAQAAAAYwAAAGQAAACcChAAEAAAAGAAAABkAAAAnAoQABAAAABdAAAAdAAAAJwKEAAQAAAAWgAAAHQAAACcChAAEAAAAFcAAAB0AAAAnAoQABAAAABUAAAANQAAAJwKEAAQAAAATwAAAHUAAACcChAAEAAAAE4AAAB0AAAAnAoQABAAAABLAAAAdAAAAJwKEAAQAAAASgAAAHQAAACcChAAEAAAAEcAAABzAAAAnAoQABAAAABGAAAAcwAAAJwKEAAQAAAAQwAAAHMAAACcChAAEAAAAEIAAAB0AAAAnAoQABAAAAA/AAAAdAAAAJwKEAAQAAAAPgAAAHQAAACcChAAEAAAADsAAAB0AAAAnAoQABAAAAA4AAAAdQAAAJwKEAAQAAAANwAAAHQAAACcChAAEAAAADQAAAB0AAAAnAoQABAAAAAzAAAAdAAAAJwKEAAQAAAAMAAAAHQAAACcChAAEAAAAC8AAAB0AAAAnAoQABAAAAAsAAAAcwAAAJwKEAAQAAAAKwAAAHQAAACcChAAEAAAACgAAAB0AAAAnAoQABAAAAAnAAAAdAAAAJwKEAAQAAAAJAAAADYAAACcChAAEAAAACMAAAA1AAAAMjE4MDg5NTkzY2JmNjI2MzUzOTQ3ZDViMWZkMGM2ZDY2YmIzNGJjNzU4NWY1YWJkZjhmMTdiNTBlMTJjNDdkNjVjZTUxNGE3YzE2N2IwMjdiNjAwZmViZGIyNDQ3MTRjNTVmMTk2NzJmZGY3NmNlNTFiYTY5YzYwNzZhMGY3N2VhZGRiM2E5M2JlNmY4OTY4OGRlMTdkODEzNjIwYTAwMDIyZTAxZmZmZmZmZmVmZmZmZDVlMWMwODZmZmU4MDE2ZDA2M2M2ZGFkN2EyZmZmYzkwNzJiYjU3ODVhNjg2YmNlZmVlZGMyZTAxMjQ4MzhiZGNjZjMyNWVlNWQ4MGJlOTkwMjEwOWY3ZGJjNzk4MTIxYTAxMTFlYTM5N2ZlNjk5ZWMwMjQwODY2M2Q0ZGU4NWFhMGQ4NTdkODk3NTlhZDQ4OTdkMjk2NTBmYjg1ZjliNDA5NDI3ZWI0ZjQ5ZmZmZDhiZmQwMDAwMDAwMGFhYWQxYTAxMTFlYTM5N2ZlNjk5OGNlOGQ5NTY4NDVlMTAzM2VmYTNiZjc2MWY2NjIyZTlhYmM5ODAyOTI4YmZjOTEyNjI3YzRmZDdlZDNmZmZmYjVkZmIwMDAwMDAwMWFhYWZiNjU5ZmIyMDI3NGJmYjFiZThmZjRkNjkxNjNjMDhiZTczMDJjNDgxODE3MWZkZDE3ZDViZTliMWQzODBhY2Q4Yzc0N2NkYzRhZmYwZTY1MzYzMWY1ZDMwMDBmMDIyYzFhMDExMWVhMzk3ZmU2OWE0YjFiYTdiNjQzNGJhY2Q3NjQ3NzRiODRmMzg1MTJiZjY3MzBkMmEwZjZiMGY2MjQxZWFiZmZmZWIxNTNmZmZmYjlmZWZmZmZmZmZmYWFhYWZjM2UyYjM2YzRlMDMyODhlOWU5MDIyMzFmOWZiODU0YTE0Nzg3YjZjN2IzNmZlYzBjOGVjOTcxZjYzYzVmMjgyZDVhYzE0ZDZjN2VjMjJjZjc4YTEyNmRkYzRhZjMxZjg3YzU2NmQ4OWMwNjUxMWQzZDIwNDQ2M2YzZjcwYTk0MjhmMGY2ZDhmNjZkZmQ4MTkxZDkyZTNlYzc4YmU1MDVhYjU4MjlhZDhmZDg0NTllZjE0MjRkYmI4OTVlNjFhMDExMWVhMzk3ZmU2OTllYzAyNDA4NjYzZDRkZTg1YWEwZDg1N2Q4OTc1OWFkNDg5N2QyOTY1MGZiODVmOWI0MDk0MjdlYjRmNDlmZmZkOGJmZDAwMDAwMDAwYWFhYzZhZjBlMDQzN2ZmNDAwYjY4MzFlMzZkNmJkMTdmZmU0ODM5NWRhYmMyZDM0MzVlNzdmNzZlMTcwMDkyNDFjNWVlNjc5OTJmNzJlYzA1ZjRjODEwODRmYmVkZTNjYzA5NWYxOTY3MmZkZjc2Y2U1MWJhNjljNjA3NmEwZjc3ZWFkZGIzYTkzYmU2Zjg5Njg4ZGUxN2Q4MTM2MjBhMDAwMjJlMDFmZmZmZmZmZWZmZmUxNDRlNDIxMTM4NDU4NmMxNmJkM2FkNGFmYTk5Y2M5MTcwZGYzNTYwZTc3OTgyZDBkYjQ1ZjM1MzY4MTRmMGJkNTg3MWMxOTA4YmQ0NzhjZDFlZTYwNTE2N2ZmODI5OTVlOWI3MjM4MzcwYjI2ZTg4YzhiYjJkZmIxZTdlYzRiN2Q0NzFmM2NkYjZkZjJlMjRmNWIxNDA1ZDk3OGViNTY5MjM3ODMyMjY2NTRmMTlhODNjZDBhMmNmZmYwYTg3ZgAAnAoQABAAAADWAAAAlAAAAJwKEAAQAAAA1QAAAJQAAACcChAAEAAAANIAAACFAAAAnAoQABAAAADPAAAAkwAAAJwKEAAQAAAAzAAAAJQAAACcChAAEAAAAMsAAACUAAAAnAoQABAAAADIAAAAkwAAAJwKEAAQAAAAxwAAAJIAAACcChAAEAAAAMQAAACUAAAAnAoQABAAAADBAAAAlAAAAJwKEAAQAAAAwAAAAJMAAACcChAAEAAAAL0AAACVAAAAnAoQABAAAAC8AAAAlAAAAJwKEAAQAAAAuQAAAJMAAACcChAAEAAAALYAAACEAAAAnAoQABAAAACzAAAAlAAAAJwKEAAQAAAAsgAAAJQAAACcChAAEAAAAK8AAAA1AAAAnAoQABAAAACuAAAANQAAAG5vdCBpbXBsZW1lbnRlZACcChAAEAAAANoAAAAKAAAAEAAAABAAAAARAAAACwAAAAAHEAAQBxAAIAcQADEHEABFcnJvcgAAACIAAAAMAAAABAAAACMAAAAkAAAAJQAAAEludmFsaWRIZXhTdHJpbmdJbnZhbGlkRGVjU3RyaW5nSGV4U3RyaW5nSXNUb29CaWdFbXB0eVN0cmluZ1Vuc3VwcG9ydGVkIGN1cnZlRml4ZWQgRzIgY291bnQgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gcGFpcnMgY291bnRQdWJsaWMgcGFpciB2YWx1ZXMgbGVuZ3RoIG11c3QgYmUgMCBvciA2QSBtaW5pbXVtIG51bWJlciBvZiAyIHBhaXJzIGlzIHJlcXVpcmVkUGFpcnMgdmFsdWVzIGxlbmd0aCBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgNnNyYy9jYWxsZGF0YS9tcGNfY2FsbGRhdGEucnMAAyEQABwAAABUAAAAEwAAAAMhEAAcAAAAgQAAAB4AAAADIRAAHAAAAIgAAAAMAAAAbm90IGltcGxlbWVudGVkAAMhEAAcAAAAgwAAAA4AAABCTjI1NEJMUzEyXzM4MU1QQ0hFQ0tfX1BfRgAAfiEQAAgAAACGIRAAAQAAAIchEAACAAAAiSEQAAEAAAAAAAAAAyEQABwAAAC8AAAACQAAAGNhbGxlZCBgUmVzdWx0Ojp1bndyYXAoKWAgb24gYW4gYEVycmAgdmFsdWUAAAAAAAEAAAABAAAAJgAAAAMhEAAcAAAAsQAAADwAAAADIRAAHAAAAKUAAAAOAAAAAQBBrMTAAAv3BQEAAAAnAAAAAyEQABwAAACuAAAAMgAAAAMhEAAcAAAA1gAAAA4AAABhc3NlcnRpb24gZmFpbGVkOiBuX3BhaXJzID49IDIAAAMhEAAcAAAA+wAAAAUAAABhc3NlcnRpb24gZmFpbGVkOiBuX2ZpeGVkX2cyIDw9IG5fcGFpcnMAAyEQABwAAAD8AAAABQAAAAMhEAAcAAAAEAEAAB0AAAAAAAAABAAAAAAAAABQYWlyaW5nIGNoZWNrIGlzIG5vdCA9PSAxc3JjL3BhaXJpbmcvbXVsdGlfcGFpcmluZ19jaGVjay5ycwDxIhAAIgAAABMAAAAOAAAAKAAAAAwAAAAEAAAAKQAAAPEiEAAiAAAAIwAAABYAAABhc3NlcnRpb24gZmFpbGVkOiBwLmxlbigpID49IDIAAPEiEAAiAAAANgAAAAUAAADxIhAAIgAAAEoAAAAkAAAA8SIQACIAAABLAAAADQAAAPEiEAAiAAAAQgAAAA4AAADxIhAAIgAAAGAAAAArAAAA8SIQACIAAABgAAAANgAAAPEiEAAiAAAAfgAAAC4AAADxIhAAIgAAAH4AAAA0AAAA8SIQACIAAAB+AAAAPwAAAPEiEAAiAAAAdwAAACsAAADxIhAAIgAAAHcAAAA2AAAA8SIQACIAAACWAAAALwAAAPEiEAAiAAAAlgAAADoAAADxIhAAIgAAALAAAAA3AAAA8SIQACIAAACwAAAARQAAAPEiEAAiAAAAsAAAAFAAAADxIhAAIgAAAMwAAAAFAAAA8SIQACIAAAD9AAAACAAAAPEiEAAiAAAAPQEAADoAAADxIhAAIgAAAFIBAAAOAAAA8SIQACIAAAAIAQAADAAAAPEiEAAiAAAAGwEAABsAAADxIhAAIgAAABUBAAAaAAAA8SIQACIAAAAoAQAADQAAAPEiEAAiAAAAAgEAAAkAAADxIhAAIgAAAO4AAAAOAAAAEAAAABAAAAARAAAACwAAAAQgEAAUIBAAJCAQADUgEABB2MrAAAtgmuZ/OeoRARrXrEtDtqcbS78ShfOES3dkJPaw9qDSMGf//1Ox/v+rHquq//////65quPKkuWPmBEtlRm1hT55msCDnZOpiOtn1baVTGxH5Y3xBNEJpuZ2CkYXNBw0H9/0AEHYy8AAC4AB/////////3//////////////////////7f////////////////////////////////////////8v/P///v///ymgMeFyTmQwXViBgbZFULiNynFokWqBl0f9fNgWjCA8AQAAAP////8AAAAAAAAAAP////8AAAAA//////////8AQfDMwAALcdEDAAABAAAAL98HmsF3Cg4sRnl4b6NuZj0Lx/Uo63gKnQ2PxY1DXdOT5ID6w172FW3sVqKXGgdcRVdScFNYzne6WMdTV5hIXwIADMQLAPTr/f8CAAAACXb+////AAAAAP//////////AAAAAP////8BAEGAzsAACwEmAEGMzsAAC9oEBAAAAAQAAAAqAAAAAAAAAAQAAAAEAAAADwAAAAAAAAAEAAAABAAAAA8AAAAAAAAABAAAAAQAAAAQAAAAAAAAAAQAAAAEAAAADQAAAAAAAAAEAAAABAAAAAkAAAAAAAAABAAAAAQAAAArAAAAAAAAAAQAAAAEAAAALAAAAAAAAAAEAAAABAAAAC0AAAAAAAAABAAAAAQAAAAPAAAAAAAAAAQAAAAEAAAADwAAAAAAAAAEAAAABAAAAA4AAAAAAAAABAAAAAQAAAAuAAAAAAAAAAQAAAAEAAAALwAAAAAAAAAEAAAABAAAADAAAAAAAAAABAAAAAQAAAAxAAAARGl2aXNpb25CeVplcm9Sb290T2ZVbml0eUVycm9ySW52WmVyb0Vycm9yc3JjL2VjaXAvZmYucnMyKBAADgAAACcAAAAqAAAAMigQAA4AAABSAAAAIAAAADIoEAAOAAAAUgAAADAAAABjYWxsZWQgYFJlc3VsdDo6dW53cmFwKClgIG9uIGFuIGBFcnJgIHZhbHVlAAAAAAAQAAAACAAAADIAAAAyKBAADgAAAFMAAAA2AAAAYXNzZXJ0aW9uIGZhaWxlZDogc2VsZi5jb2VmZnMubGVuKCkgPT0gMTIoEAAOAAAAYAAAAAkAAAAyKBAADgAAAJcAAAAfAAAAMigQAA4AAACTAAAAHwAAADIoEAAOAAAArAAAACcAAAAAAAAA8P3//////wf/////////////////////4f///////////////4MEAP//////////AAAAAOD///8AAAAAAEQAQbjTwAALhQRVbnNpZ25lZEludGVnZXJsaW1icwAAAAAEAAAABAAAADQAAAAAAAAABAAAAAQAAAA1AAAAMHgwMHgAAAABAAAAAAAAAC91c3IvbG9jYWwvY2FyZ28vZ2l0L2NoZWNrb3V0cy9sYW1iZGF3b3Jrcy1mNzJhNTZmZTcyY2IwZTNiLzNiYjFmYTEvbWF0aC9zcmMvdW5zaWduZWRfaW50ZWdlci9lbGVtZW50LnJz/CkQAGgAAAA7AQAAGAAAAPwp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hQMBAAAAQwAAAC9ydXN0Yy8zZjVmZDhkZDQxMTUzYmM1ZmRjYTk0MjdlOWUwNWJlMmM3NjdiYTIzL2xpYnJhcnkvYWxsb2Mvc3JjL3N0cmluZy5ycwCgNRAASwAAAAMKAAAOAAAARXJyb3JEaXZpc2lvbkJ5WmVyb1Jvb3RPZlVuaXR5RXJyb3IAAAAAAAQAAAAEAAAACQAAAEludlplcm9FcnJvci9ydXN0Yy8zZjVmZDhkZDQxMTUzYmM1ZmRjYTk0MjdlOWUwNWJlMmM3NjdiYTIzL2xpYnJhcnkvY29yZS9zcmMvc2xpY2UvaXRlci5ycwAAPDYQAE4AAADcBQAAFQAAAFBvaW50ICgsICkgaXMgbm90IG9uIHRoZSBjdXJ2ZQAAnDYQAAcAAACjNhAAAgAAAKU2EAAVAAAAUG9pbnQgKCgpLCAoKSkgaXMgbm90IG9uIHRoZSBjdXJ2ZQAA1DYQAAgAAACjNhAAAgAAANw2EAAEAAAAozYQAAIAAADgNhAAFgBB0O7AAAtgmuZ/OeoRARrXrEtDtqcbS78ShfOES3dkJPaw9qDSMGf//1Ox/v+rHquq//////65quPKkuWPmBEtlRm1hT55msCDnZOpiOtn1baVTGxH5Y3xBNEJpuZ2CkYXNBw0H9/0AEHQ78AAC4AB/////////3//////////////////////7f////////////////////////////////////////8v/P///v///ymgMeFyTmQwXViBgbZFULiNynFokWqBl0f9fNgWjCA8AQAAAP////8AAAAAAAAAAP////8AAAAA//////////8AQejwwAALcdEDAAABAAAAL98HmsF3Cg4sRnl4b6NuZj0Lx/Uo63gKnQ2PxY1DXdOT5ID6w172FW3sVqKXGgdcRVdScFNYzne6WMdTV5hIXwIADMQLAPTr/f8CAAAACXb+////AAAAAP//////////AAAAAP////8BAEH48cAAC+8BJgAAAAAAAABUcnlGcm9tSW50RXJyb3IAAAAAAAQAAAAEAAAARAAAAERpdmlzaW9uQnlaZXJvUm9vdE9mVW5pdHlFcnJvcgAAAAAAAAQAAAAEAAAACQAAAEludlplcm9FcnJvcmFzc2VydGlvbiBmYWlsZWQ6IHNlbGYuY29lZmZpY2llbnRzLmxlbigpIDw9IGV4dF9kZWdyZWVzcmMvYWxnZWJyYS9wb2x5bm9taWFsLnJzkzkQABkAAAALAAAACQAAAGNhbGxlZCBgUmVzdWx0Ojp1bndyYXAoKWAgb24gYW4gYEVycmAgdmFsdWUAQfDzwAAL2QMBAAAARQAAAJM5EAAZAAAAUwAAADUAAACTORAAGQAAAGgAAAAeAAAARGl2aXNpb24gYnkgemVybyBwb2x5bm9taWFsABg6EAAbAAAAkzkQABkAAAByAAAADQAAAJM5EAAZAAAAgAAAADYAAACTORAAGQAAAIEAAAAcAAAAAAAAABAAAAAIAAAARgAAAJM5EAAZAAAAewAAAEYAAACTORAAGQAAAJ0AAAAXAAAAkzkQABkAAAC/AAAANwAAAJM5EAAZAAAA/QAAABMAAABQb2x5bm9taWFsY29lZmZpY2llbnRzAAAAAAAABAAAAAQAAABHAAAAAAAAAAQAAAAEAAAASAAAAAAAAAAEAAAABAAAAEkAAAAAAAAABAAAAAQAAABKAAAAAAAAAAQAAAAEAAAASwAAAAAAAAAEAAAAAAAAAGF0dGVtcHQgdG8gZGl2aWRlIGJ5IHplcm8AAAAwOxAAGQAAAC91c3IvbG9jYWwvY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL251bS1iaWdpbnQtMC40LjYvc3JjL2JpZ3VpbnQvZGl2aXNpb24ucnMAVDsQAGcAAABwAAAACQBBgPjAAAvYAWNhbGxlZCBgUmVzdWx0Ojp1bndyYXAoKWAgb24gYW4gYEVycmAgdmFsdWUAAAAAABAAAAAIAAAATAAAAC91c3IvbG9jYWwvY2FyZ28vZ2l0L2NoZWNrb3V0cy9sYW1iZGF3b3Jrcy1mNzJhNTZmZTcyY2IwZTNiLzNiYjFmYTEvbWF0aC9zcmMvZmllbGQvZXh0ZW5zaW9ucy9xdWFkcmF0aWMucnMAADw8EABqAAAAegAAADEAAAD/////////f//////////////////////t/////////wBBkPrAAAuRAdEDAAABAAAAL98HmsF3Cg4sRnl4b6NuZj0Lx/Uo63gKnQ2PxY1DXdPw/f//////B//////////////////////h/////////5PkgPrDXvYVbexW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NDE0MWZmZmZmZmZmMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmM1YWM2MzVkOGFhM2E5M2U3YjNlYmJkNTU3Njk4ODZiYzY1MWQwNmIwY2M1M2IwZjYzYmNlM2MzZTI3ZDI2MDRiNkIxN0QxRjJFMTJDNDI0N0Y4QkNFNkU1NjNBNDQwRjI3NzAzN0Q4MTJERUIzM0EwRjRBMTM5NDVEODk4QzI5NjRGRTM0MkUyRkUxQTdGOUI4RUU3RUI0QTdDMEY5RTE2MkNCQ0UzMzU3NkIzMTVFQ0VDQkI2NDA2ODM3QkY1MUZGRkZGRkZGRjAwMDAwMDAwRkZGRkZGRkZGRkZGRkZGRkJDRTZGQUFEQTcxNzlFODRGM0I5Q0FDMkZDNjMyNTUxMHg1ZDRlYWNkM2E1YjliZWU2MzE5N2UxMGQ2MTdiM2RkNjZiYjhiNjVkMGNhNTJhZjdhYzcxZTE4ZWY4YmMxNzJkMHgxZDExYjI5YmNmZDBiM2UwNTUwZGRiMDYxMDU3ODBkNWY1NDgzMTk3NmI5ZmJjMzI5MDA0ZWJjMWYzNjRiMmE0OTIwQUUxOUExQjhBMDg2QjRFMDFFREQyQzc3NDhEMTRDOTIzRDRERjY2N0FEQ0UwQjlBOUUzOUU5NjlBMkMwREYxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE0REVGOURFQTJGNzlDRDY1ODEyNjMxQTVDRjVEM0VEMkIxNDlENDBDRUI4QUFBRTgxQkUxODk5MUJFMDZBQzNCNUI0QzVFNTU5REJFRkEzMzI2N0U2REMyNEExMzhFNTAwOTcxM0IwM0FGMEZFRDRDRDJDQUZBREVFRDhGREY0QTc0RkEwODRFNTJEMTg1MkU0QTJCRDA2ODVDMzE1RDIxMjMwNjQ0RTcyRTEzMUEwMjlCODUwNDVCNjgxODE1ODVEMjgzM0U4NDg3OUI5NzA5MTQzRTFGNTkzRjAwMDAwMDFSAADuAAABUgAAAAAA7gAAAAAAAQAAAP//AP8AAAD/AAAAAQAA/wD/AAAAAQD/AAAAAP8AAAEA/wAAAQAAAAAA/wAAAQEAAP8AAAD/AP8AAAABAP8AATQ3M0VEQTc1MzI5OUQ3RDQ4MzMzOUQ4MDgwOUExRDgwNTUz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MC40LjIvc3JjL2ZpZWxkcy9wcmltZS5ycwCoZxAAXwAAAFMAAABLAAAAL3Vzci9sb2NhbC9jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvYXJrLWZmLTAuNC4yL3NyYy9maWVsZHMvbW9kZWxzL2ZwL21vZC5ycwBBoNHBAAulAxhoEABnAAAACgQAACAAAAAYaBAAZwAAAPEBAAA0AAAAGGgQAGcAAACyAQAANAAAAP///////////////////////////////y/8///+/////////////3//////////////////////7f////////8BAAAA/////wAAAAAAAAAA/////wAAAAD//////////5rmfznqEQEa16xLQ7anG0u/EoXzhEt3ZCT2sPag0jBn//9Tsf7/qx6rqv/////+uSmgMeFyTmQwXViBgbZFULiNynFokWqBl0f9fNgWjCA8Y2FsbGVkIGBSZXN1bHQ6OnVud3JhcCgpYCBvbiBhbiBgRXJyYCB2YWx1ZQAAAAAAEAAAAAgAAABTAAAAL3Vzci9sb2NhbC9jYXJnby9naXQvY2hlY2tvdXRzL2xhbWJkYXdvcmtzLWY3MmE1NmZlNzJjYjBlM2IvM2JiMWZhMS9tYXRoL3NyYy9maWVsZC9maWVsZHMvbW9udGdvbWVyeV9iYWNrZWRfcHJpbWVfZmllbGRzLnJzALxpEAB7AAAA+wAAACQAQfjUwQALMKrjypLlj5gRLZUZtYU+eZrAg52TqYjrZ9W2lUxsR+WN8QTRCabmdgpGFzQcNB/f9ABByNXBAAvJD0RpdmlzaW9uQnlaZXJvUm9vdE9mVW5pdHlFcnJvcgAAAAAAAAQAAAAEAAAACQAAAEludlplcm9FcnJvckZpZWxkRWxlbWVudHZhbHVlAAAAAAAAAAQAAAAEAAAAVAAAAAAAAAAEAAAABAAAAFUAAAAAAAAABAAAAAQAAABWAAAAAAAAAAQAAAAEAAAAVwAAAAAAAAAEAAAABAAAAFgAAAAAAAAABAAAAAQAAABZAAAAc3JjL2FsZ2VicmEvcmF0aW9uYWxfZnVuY3Rpb24ucnN4axAAIAAAABoAAABXAAAAeGsQACAAAAAZAAAAWQAAAEludmFsaWQgY3VydmUgSUQ6IAAAuGsQABIAAABubyBlbnRyeSBmb3VuZCBmb3Iga2V5c3JjL2RlZmluaXRpb25zLnJz6msQABIAAABwAAAAOwAAAEJOMjU0QkxTMTJfMzgxU0VDUDI1NksxU0VDUDI1NlIxWDI1NTE5AAAFAAAACQAAAAkAAAAJAAAABgAAAAxsEAARbBAAGmwQACNsEAAsbBAASnNWYWx1ZSgpAAAAXGwQAAgAAABkbBAAAQAAAG1pZCA+IGxlbgAAAHhsEAAJAAAAL3Vzci9sb2NhbC9jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvbnVtLWJpZ2ludC0wLjQuNi9zcmMvYmlndWludC9hZGRpdGlvbi5ycwCMbBAAZwAAADsAAAAaAAAAjGwQAGcAAABqAAAAIgAAAC91c3IvbG9jYWwvY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL251bS1iaWdpbnQtMC40LjYvc3JjL2JpZ3VpbnQvc3VidHJhY3Rpb24ucnMAABRtEABqAAAAhwAAACUAAABUaGUgcmFkaXggbXVzdCBiZSB3aXRoaW4gMi4uLjM2AJBtEAAfAAAAL3Vzci9sb2NhbC9jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvbnVtLWJpZ2ludC0wLjQuNi9zcmMvYmlndWludC9jb252ZXJ0LnJzAAC4bRAAZgAAAN4AAAAJAAAAAAAAAAQAAAAAAAAAAQAAAG1pZCA+IGxlbgAAAEBuEAAJAAAAL3Vzci9sb2NhbC9jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvbnVtLWJpZ2ludC0wLjQuNi9zcmMvYmlndWludC9hZGRpdGlvbi5ycwBUbhAAZwAAADsAAAAaAAAAL3Vzci9sb2NhbC9jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvbnVtLWJpZ2ludC0wLjQuNi9zcmMvYmlndWludC9tdWx0aXBsaWNhdGlvbi5ycwAAAMxuEABtAAAALAAAABwAAABjYXJy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NWZkY2E5NDI3ZTllMDViZTJjNzY3YmEyMy9saWJyYXJ5L2NvcmUvc3JjL3NsaWNlL2l0ZXIucnMAAKCEEABOAAAA3AUAABUAAAAvdXNyL2xvY2FsL2NhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9udW0tYmlnaW50LTAuNC42L3NyYy9iaWd1aW50L3NoaWZ0LnJzAIUQAGQAAAAoAAAAGQAAAACFEABkAAAASgAAACMAAAAAAAAABAAAAAQAAABbAAAAbmVnYXRpdmUgdmFsdWVzIGFyZSBub24temVyby91c3IvbG9jYWwvY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL251bS1iaWdpbnQtMC40LjYvc3JjL2JpZ2ludC9zaGlmdC5ycwCwhRAAYwAAAGYAAAAoAAAAbWlkID4gbGVuAAAAJIYQAAkAAAAvdXNyL2xvY2FsL2NhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9udW0tYmlnaW50LTAuNC42L3NyYy9iaWd1aW50L2FkZGl0aW9uLnJzADiGEABnAAAAOwAAABoAAAAvdXNyL2xvY2FsL2NhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9udW0tYmlnaW50LTAuNC42L3NyYy9iaWd1aW50L3N1YnRyYWN0aW9uLnJzQ2Fubm90IHN1YnRyYWN0IGIgZnJvbSBhIGJlY2F1c2UgYiBpcyBsYXJnZXIgdGhhbiBhLgAAGocQADQAAACwhhAAagAAAEUAAAAFAAAAsIYQAGoAAABlAAAABQAAAC91c3IvbG9jYWwvY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL251bS1pbnRlZ2VyLTAuMS40Ni9zcmMvcm9vdHMucnMAAHiHEABeAAAAgwEAAAEAAACT5ID6w172FW3sVqKXGgdcRVdScFNYzne6WMdTV5hIXwIADMQLAPTr/f8CAAAACXYvdXNyL2xvY2FsL2NhcmdvL2dpdC9jaGVja291dHMvbGFtYmRhd29ya3MtZjcyYTU2ZmU3MmNiMGUzYi8zYmIxZmExL21hdGgvc3JjL3Vuc2lnbmVkX2ludGVnZXIvbW9udGdvbWVyeS5ycwAYiBAAawAAAKsAAAAeAAAAL3Vzci9sb2NhbC9jYXJnby9naXQvY2hlY2tvdXRzL2xhbWJkYXdvcmtzLWY3MmE1NmZlNzJjYjBlM2IvM2JiMWZhMS9tYXRoL3NyYy91bnNpZ25lZF9pbnRlZ2VyL2VsZW1lbnQucnOUiBAAaAAAADsBAAAYAAAAlIgQAGgAAABAAQAADQAAAJSIEABoAAAAPgEAACIAAACUiBAAaAAAAD4BAAA9AAAAlIgQAGgAAADzAQAACQAAAJSIEABoAAAA5AEAABsAAABNYWxmb3JtZWQgaGV4IGV4cHJlc3Npb24uAAAAXIkQABkAAACUiBAAaAAAAOgBAAAWAAAAlIgQAGgAAADsAQAAEQAAAGNhbGxlZCBgUmVzdWx0Ojp1bndyYXAoKWAgb24gYW4gYEVycmAgdmFsdWUAAAAAACmgMeFyTmQwXViBgbZFULiNynFokWqBl0f9fNgWjCA8AEGUlMIAC4gCEAAAAAgAAABcAAAAL3Vzci9sb2NhbC9jYXJnby9naXQvY2hlY2tvdXRzL2xhbWJkYXdvcmtzLWY3MmE1NmZlNzJjYjBlM2IvM2JiMWZhMS9tYXRoL3NyYy9lbGxpcHRpY19jdXJ2ZS9zaG9ydF93ZWllcnN0cmFzcy9jdXJ2ZXMvYm5fMjU0L2ZpZWxkX2V4dGVuc2lvbi5ycwAAIIoQAI4AAABNAAAAMQAAAC/fB5rBdwoOLEZ5eG+jbmY9C8f1KOt4Cp0Nj8WNQ13TRGl2aXNpb25CeVplcm9Sb290T2ZVbml0eUVycm9yAAAAAAAABAAAAAQAAABdAAAASW52WmVyb0Vycm9yAEHQlsIAC5EGY2FsbGVkIGBSZXN1bHQ6OnVud3JhcCgpYCBvbiBhbiBgRXJyYCB2YWx1ZQAAAAAAEAAAAAgAAABeAAAAMQAAAJrmfznqEQEa16xLQ7anG0u/EoXzhEt3ZCT2sPag0jBn//9Tsf7/qx6rqv/////+uS91c3IvbG9jYWwvY2FyZ28vZ2l0L2NoZWNrb3V0cy9sYW1iZGF3b3Jrcy1mNzJhNTZmZTcyY2IwZTNiLzNiYjFmYTEvbWF0aC9zcmMvZWxsaXB0aWNfY3VydmUvc2hvcnRfd2VpZXJzdHJhc3MvY3VydmVzL2JsczEyXzM4MS9maWVsZF9leHRlbnNpb24ucnMAAADAixAAkQAAAEsAAAAxAAAAAAAAAKrjypLlj5gRLZUZtYU+eZrAg52TqYjrZ9W2lUxsR+WN8QTRCabmdgpGFzQcNB/f9ERpdmlzaW9uQnlaZXJvUm9vdE9mVW5pdHlFcnJvcgAAAAAAAAQAAAAEAAAAXQAAAEludlplcm9FcnJvcmAAAAAMAAAABAAAAGEAAABiAAAAYwAAAC9ydXN0L2RlcHMvZGxtYWxsb2MtMC4yLjYvc3JjL2RsbWFsbG9jLnJzYXNzZXJ0aW9uIGZhaWxlZDogcHNpemUgPj0gc2l6ZSArIG1pbl9vdmVyaGVhZADsjBAAKQAAAKgEAAAJAAAAYXNzZXJ0aW9uIGZhaWxlZDogcHNpemUgPD0gc2l6ZSArIG1heF9vdmVyaGVhZAAA7IwQACkAAACuBAAADQAAAG1lbW9yeSBhbGxvY2F0aW9uIG9mICBieXRlcyBmYWlsZWQAAJSNEAAVAAAAqY0QAA0AAABsaWJyYXJ5L3N0ZC9zcmMvYWxsb2MucnPIjRAAGAAAAGIBAAAJAAAAbGlicmFyeS9zdGQvc3JjL3Bhbmlja2luZy5yc/CNEAAcAAAAiwIAAB4AAABgAAAADAAAAAQAAABkAAAAAAAAAAgAAAAEAAAAZQAAAAAAAAAIAAAABAAAAGYAAABnAAAAaAAAABAAAAAEAAAAaQAAAGoAQeycwgALpgIBAAAAawAAAEhhc2ggdGFibGUgY2FwYWNpdHkgb3ZlcmZsb3d0jhAAHAAAAC9ydXN0L2RlcHMvaGFzaGJyb3duLTAuMTQuNS9zcmMvcmF3L21vZC5ycwAAmI4QACoAAABWAAAAKAAAAEVycm9yAAAAbAAAAAwAAAAEAAAAbQAAAG4AAABvAAAAY2FwYWNpdHkgb3ZlcmZsb3cAAAD0jhAAEQAAAGxpYnJhcnkvYWxsb2Mvc3JjL3Jhd192ZWMucnMQjxAAHAAAABkAAAAFAAAAYSBmb3JtYXR0aW5nIHRyYWl0IGltcGxlbWVudGF0aW9uIHJldHVybmVkIGFuIGVycm9yIHdoZW4gdGhlIHVuZGVybHlpbmcgc3RyZWFt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'; \ No newline at end of file +export default 'data:application/wasm;base64,AGFzbQEAAAAB3AEdYAJ/fwBgA39/fwBgAn9/AX9gA39/fwF/YAF/AGAEf39/fwBgAX8Bf2AFf39/f38AYAp/f39/f39/f39/AGAGf39/f39/AGAFf39/f38Bf2AAAGAEf39/fwF/YAABf2AJf39/f39/f39/AGADf39+AGAIf39/f39/f38AYAZ/f39/f38Bf2AHf39/f39/fwBgB39/f39/f38Bf2ADf35+AGADfn9/AX9gBH9+fn4AYAV/f3x/fwBgBH98f38AYAV/f31/fwBgBH99f38AYAV/f35/fwBgBH9+f38AAvAEEwN3YmcaX193YmluZGdlbl9vYmplY3RfZHJvcF9yZWYABAN3YmcVX193YmluZGdlbl9zdHJpbmdfbmV3AAIDd2JnDl9fd2JpbmRnZW5fYWRkAAIDd2JnFV9fd2JpbmRnZW5fc3RyaW5nX2dldAAAA3diZxpfX3diaW5kZ2VuX2JpZ2ludF9mcm9tX3N0cgACA3diZxVfX3diaW5kZ2VuX251bWJlcl9nZXQAAAN3YmcaX193YmdfZ2V0XzU0MTljZjZiOTU0YWExMWQAAgN3YmcdX193YmdfbGVuZ3RoX2YyMTdiYmJmN2U4ZTRkZjQABgN3YmcaX193YmdfZ2V0X2VmODI4NjgwYzY0ZGEyMTIAAgN3YmceX193YmdfaXNBcnJheV82ZjNiNDdmMDlhZGI2MWI1AAYDd2JnKF9fd2JnX2luc3RhbmNlb2ZfT2JqZWN0XzRiYmFjNDgyZWRhOWI3MTEABgN3YmcdX193YmdfYnVmZmVyX2NjYWVkNTFhNjM1ZDhhMmQABgN3YmcaX193YmdfbmV3X2ZlYzI2MTFlYjkxODBmOTUABgN3YmcaX193Ymdfc2V0X2VjMmZjZjgxYmM1NzNmZDkAAQN3YmcdX193YmdfbGVuZ3RoXzkyNTRjNGJkM2I5ZjIzYzQABgN3YmcsX193YmdfaW5zdGFuY2VvZl9VaW50OEFycmF5X2RmMDc2MTQxMDQxNGVmMzYABgN3YmcXX193YmluZGdlbl9kZWJ1Z19zdHJpbmcAAAN3YmcQX193YmluZGdlbl90aHJvdwAAA3diZxFfX3diaW5kZ2VuX21lbW9yeQANA58FnQUIAQcBAAcHBwcHBwEBBwYAAAAJBwEBAAEBAQEHAQEBAQEBAAEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEABAEHAQEABwEBAAEOBQEFBQAAAQUGAQEOAQEBAAAABQEFAQEBAQAAAQAABQEAAQAAAAAEAQUBAAEAAAABAQAAAAAAAQEBAQAAAQEAAAcBAAAFAAUBAQEBAQUBAQEAAQABAQEABQUBAQEAAQYABwAAAQABAQEBAAEBAQEBAQEFAQAAAQAAAAABAQAAAA8ABwEBAAAAAAAAAAQAAAAAAQEBDwEAAQEFBAACBwAAAAAAAAAIBxAAAwAABQAFCBABBQEAAAUBAAAAAAAAAQEBAQEBAAEEAREBAQASAQAAAAAEBQEAAAAAAAAAAQEBAQEAAAQEBAAAAAAAAAEBBAABAQEBAQACAwAAAQEAAQAAAwEAAQQAAAEAAAQAAQAAAAQFBAAAAAAAAQYBAQQBBQEBAQEBAQEAAgAAAQEFAAUBFAAFAAQCBQIAAAAAAAAAAAAAAAkABBMEAAQEAAEAAAAAAhUBBwIBAgABAQEBAQEAAAEGAAAGCAEGBgYSAAYCAQkBAQEBAQEKBAQEBAQEBAQEBQEBAQEEBQYEEwUACQACAgICAgAAAgACAgICAgIWBwICAgICAgICAgICAgICAgACAgABBAQCAgsBAQEBBAAABg0EBAICAgICAgICAQUGBAQECwECBAMAAAMCAQAKAgIEAgICAgICAgICAgICAgIAAgIABQIMBAICAgICBgACAAAAAAAAAhECAgEBAQEBAQICBxcZGwoEBAQCBAQEBAQEBQQDBAQADAEDAgcCAgICAgAAAAACAgAGBgIEBgICAgICAgICAgILAgICAAICAwMDAwMEBwFwAYYBhgEFAwEAEQYJAX8BQYCAwAALB/EBCwZtZW1vcnkCABRtc21fY2FsbGRhdGFfYnVpbGRlcgDEAxRtcGNfY2FsbGRhdGFfYnVpbGRlcgDJAw10b193ZWlyc3RyYXNzAOADEXRvX3R3aXN0ZWRlZHdhcmRzAOEDFGdldF9ncm90aDE2X2NhbGxkYXRhAN8DEV9fd2JpbmRnZW5fbWFsbG9jALgEEl9fd2JpbmRnZW5fcmVhbGxvYwDTBB9fX3diaW5kZ2VuX2FkZF90b19zdGFja19wb2ludGVyAJkFD19fd2JpbmRnZW5fZnJlZQCFBRRfX3diaW5kZ2VuX2V4bl9zdG9yZQD/BAmRAgEAQQELhQGXBdIEgQSFBIYEhASIBIIEngW8BPYEzgSiBMgEwgS/BMwEwQTABKIFyQTKBMMEywTHBMQEowSdBdYEpAT+A/oD+AP5A/sD/wOfBYkFoAXMA+8DgQW0BLUDmgWbBeUE5gSlBPYDxQSVBMYE9wOUBNwEpgT3BM8EnAWbBIwE1wSKBYEFtAS1A6EFggXtA+MEvQT7BIME+gSJBPkEigT4BIsE/ASABP0EhwTtBKcEgQWKBe4E8wTrA+8E8wTkBIAF/gTvBO8E8QTwBPIEjQW9BKgEvASpBJwEgQW0BLMDpQWOBY8FtgSRBfQEygP1A5AFgQW3BKkFpgWnBYcFkgWTBdUE9AOQBd4CsgSqBQrejm+dBfiHCAIWfxp+IwBBsMMAayIKJAACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAIgBEEBdEYEQCAKIAU2AtBCAkACQAJAAkACQAJAIAUOBgcAAQIDBAULQQEhDAwGC0ECIQwMBQtBAyEMDAQLQQQhDAwDC0EFIQwgCkEFOgDsLwwCCyAKQQE2Auw5IApB3J3BADYC6DkgCkIBNwL0OSAKIApB0MIAaq1CgICAgBCENwOwQCAKIApBsMAAajYC8DkgCkHoL2ogCkHoOWoQmAMgCi0A7C8hDCAKKALoLyIFQYCAgIB4Rg0BIAAgCigA7S82AAkgAEEMaiAKQfAvaigAADYAACAAIAw6AAggACAFNgIEIABBATYCAAwCC0G50cIALQAAGkEuQQEQiwUiAQRAIABBLjYCDCAAIAE2AgggAEKBgICA4AU3AgAgAUEmakHmlsEAKQAANwAAIAFBIGpB4JbBACkAADcAACABQRhqQdiWwQApAAA3AAAgAUEQakHQlsEAKQAANwAAIAFBCGpByJbBACkAADcAACABQcCWwQApAAA3AAAMAgsMAgsCQAJAAn8CQAJAAkACQAJAAkACQCAMQf8BcUEBaw4FBQQDAgEACwJAIAJFBEBBCCEfDAELIAJBBXQhBSACQf///x9LBEBBACEMDAoLQbnRwgAtAAAaQQghDCAFQQgQiwUiH0UNCSAfIQUgAiEMA0AgCkHoOWogARCsAyAFQRhqIApBgDpqKQMANwMAIAVBEGogCkH4OWopAwA3AwAgBUEIaiAKQfA5aikDADcDACAFIAopA+g5NwMAIAVBIGohBSABQQxqIQEgDEEBayIMDQALCyAKQYCAgIB4NgKwQCAKQQI2AvA5IAogAjYC7DkgCiAfNgLoOSAKIApBsMAAajYC9DkgCkHoL2ogCkHoOWoQ0wEgCigCsEAiBUGAgICAeEcEQCAKKAK4QCEEIAooArRAIQMgCigC6C8iAQRAIAooAuwvIAFBBnQQlAULIAAgBDYCDCAAIAM2AgggACAFNgIEIABBATYCAAwICyAKKALwLyEeIAooAuwvIRsgCigC6C8hHAJ/IAlFBEAgCkHoL2oQpAIgCkH8MWoMAQsgCkHwOWpB+JbBACgCADYCACAKQfCWwQApAgA3A+g5IApB6DlqIgUQ2wMgCigC7DlBATYCACAKKALsOSELAkAgCigC6DkiAUGAgICAeEcNACALKAIIDQAgCkEBNgLwOSAKIAs2Auw5IApBgICAgHg2Aug5IApB6C9qIgEgBRDsAyABDAELIApBATYC8DkgCiALNgLsOSAKIAE2Aug5IApB6C9qIgEgCkHoOWpBBEEAEKMBIAELIQEgAyAEQQxsaiEPIAQEQCABKAIEQQRrIRAgASgCCCIOQQJ0IQUgAyELA0ACQAJAAkAgC0EIaigCACIBIA5GBEAgC0EEaigCAEEEayESIAUhAQNAIAFFDQIgASASaiERIAEgEGogAUEEayEBKAIAIhQgESgCACIMRg0ACyAMIBRJDQMMAgsgASAOTw0BDAILIAENAQtBudHCAC0AABoCQAJAAkAgCUUEQEEuQQEQiwUiAQ0BDBELQSVBARCLBSIBDQEMEQsgAEEuNgIMIAAgATYCCCAAQoGAgIDgBTcCACABQSZqQaKXwQApAAA3AAAgAUEgakGcl8EAKQAANwAAIAFBGGpBlJfBACkAADcAACABQRBqQYyXwQApAAA3AAAgAUEIakGEl8EAKQAANwAAIAFB/JbBACkAADcAACAKKAL8MSIABEAgCigCgDIgAEECdBCUBQsgCkHIMWoQswQMAQsgAEElNgIMIAAgATYCCCAAQoGAgIDQBDcCACABQR1qQceXwQApAAA3AAAgAUEYakHCl8EAKQAANwAAIAFBEGpBupfBACkAADcAACABQQhqQbKXwQApAAA3AAAgAUGql8EAKQAANwAAIAooAugvIgBFDQAgCigC7C8gAEECdBCUBQsgHEUNCiAbIBxBBnQQlAUMCgsgC0EMaiILIA9HDQALCyAKQQA2ApA4IApCgICAgMAANwKIOCAKQQA2Arg9IApCgICAgMAANwKwPSAERQRAQQAhBUEEDAcLIApBgDpqIRFB+JbBACgCACESQfCWwQApAgAhIyADIQsDQCAKQeg5aiALENMCIBEpAwAhICAKQfA5aiIOKQMAISIgCikD+DkhKSAKKQPoOSEoIA4gEjYCACAKICM3A+g5ICIgKIRQRQRAQQEhAUEAIQUDQCAKKALoOSABQQFrRgRAIApB6DlqENsDCyAKKALsOSAFaiAoPgIAICJCIIYgKEKAgICAEFQhFCAiUCEMIAVBBGohBSAiQiCIISIgCiABNgLwOSABQQFqIQEgKEIgiIQhKCAMIBRxRQ0ACwsgCkG4wABqIhAgDigCADYCACAKIAopA+g5NwOwQCAKKAKQOCIFIAooAog4RgRAIApBiDhqENwDCyAKKAKMOCAFQQxsaiIBIAopA7BANwIAIAFBCGogECgCADYCACAKIAVBAWo2ApA4IA4gEjYCACAKICM3A+g5ICAgKYRQRQRAQQEhAUEAIQUDQCAKKALoOSABQQFrRgRAIApB6DlqENsDCyAKKALsOSAFaiApPgIAICBCIIYgKUKAgICAEFQhFCAgUCEMIAVBBGohBSAgQiCIISAgCiABNgLwOSABQQFqIQEgKUIgiIQhKSAMIBRxRQ0ACwsgECAOKAIANgIAIAogCikD6Dk3A7BAIAooArg9IgUgCigCsD1GBEAgCkGwPWoQ3AMLIAooArQ9IAVBDGxqIgEgCikDsEA3AgAgAUEIaiAQKAIANgIAIAogBUEBajYCuD0gDyALQQxqIgtHDQALDAULAkACQCACRQRAQQghHwwBCyACQQV0IQUgAkH///8fSwRAQQAhDAwCC0G50cIALQAAGkEIIQwgBUEIEIsFIh9FDQEgHyEFIAIhDANAIApB6DlqIREjAEEQayIVJAACQAJAIAEoAghFBEBBudHCAC0AABpBASEWQQFBARCLBSIaRQ0YIBpBADoAACAVQQE2AgQMAQsgFUEEaiABEOACIBUoAgghGiAVKAIMIhZBAkkNACAWIBpqIBZBAXYiD2shEEEAIRMgD0EBRwRAIBZBAWshDiAPQf7///8HcSEUA0AgDiAaaiIbLQAAIQsgGyATIBpqIhItAAA6AAAgEiALOgAAIBAgDyATQX5zamoiCy0AACEbIAsgEkEBaiILLQAAOgAAIAsgGzoAACAOQQJrIQ4gFCATQQJqIhNHDQALCyAWQQJxRQ0AIBMgGmoiCy0AACEbIAsgECAPIBNBf3NqaiILLQAAOgAAIAsgGzoAAAsgESAaIBYQswEgFSgCBCILBEAgGiALEJQFCyAVQRBqJAAMAAsgBUEYaiAKQYA6aikDADcDACAFQRBqIApB+DlqKQMANwMAIAVBCGogCkHwOWopAwA3AwAgBSAKKQPoOTcDACAFQSBqIQUgAUEMaiEBIAxBAWsiDA0ACwsgCkGAgICAeDYCsEAgCkECNgLwOSAKIAI2Auw5IAogHzYC6DkgCiAKQbDAAGo2AvQ5IApB6C9qIR0jAEHwAWsiDSQAIA1BoAFqIApB6DlqIhUgFSgCDBDPAgJAAkACQCANKQOgASIhQgJSBEAgDUGYAWoiESANQeABaikDADcDACANQZABaiIUIA1B2AFqKQMANwMAIA1BiAFqIhsgDUHQAWopAwA3AwAgDUGAAWoiDCANQcgBaikDADcDACANQfgAaiILIA1BwAFqKQMANwMAIA1B8ABqIgUgDUG4AWopAwA3AwAgDUHoAGoiASANQbABaikDADcDACANIA0pA6gBNwNgICFCAFINAQsgHUEANgIIIB1CgICAgIABNwIADAELIA1B2ABqIBEpAwA3AwAgDUHQAGogFCkDADcDACANQcgAaiAbKQMANwMAIA1BQGsgDCkDADcDACANQThqIAspAwA3AwAgDUEwaiAFKQMANwMAIA1BKGogASkDADcDACANIA0pA2A3AyACQCAVKAIMKAIAQYCAgIB4Rw0AIBUoAgRFDQAgFSgCCEUNFwtBudHCAC0AABpBgAJBCBCLBSIcRQ0XIBwgDSkDIDcDACAcQThqIA1B2ABqIhYpAwA3AwAgHEEwaiANQdAAaiITKQMANwMAIBxBKGogDUHIAGoiDykDADcDACAcQSBqIA1BQGsiDikDADcDACAcQRhqIA1BOGoiECkDADcDACAcQRBqIA1BMGoiEikDADcDACAcQQhqIA1BKGopAwA3AwAgDUEBNgIMIA0gHDYCCCANQQQ2AgQgDUEYaiAVQQhqKQIANwMAIA0gFSkCADcDECANQaABaiANQRBqIA0oAhwQzwICQCANKQOgASIhQgJRDQAgDUGoAWohF0HAACEVQQEhGgNAIA1BmAFqIhEgF0E4aikDADcDACANQZABaiIUIBdBMGopAwA3AwAgDUGIAWoiGyAXQShqKQMANwMAIA1BgAFqIgwgF0EgaikDADcDACANQfgAaiILIBdBGGopAwA3AwAgDUHwAGoiASAXQRBqKQMANwMAIA1B6ABqIgUgF0EIaikDADcDACANIBcpAwA3A2AgIVANASAWIBEpAwA3AwAgEyAUKQMANwMAIA8gGykDADcDACAOIAwpAwA3AwAgECALKQMANwMAIBIgASkDADcDACANQShqIgEgBSkDADcDACANIA0pA2A3AyAgDSgCHCEFIA0oAgQgGkYEQAJAIAUoAgBBgICAgHhHDQAgDSgCFEUNACANKAIYRQ0aCyANQQRqIBpBARDRAyANKAIIIRwLIBUgHGoiCyANKQMgNwMAIAtBOGogFikDADcDACALQTBqIBMpAwA3AwAgC0EoaiAPKQMANwMAIAtBIGogDikDADcDACALQRhqIBApAwA3AwAgC0EQaiASKQMANwMAIAtBCGogASkDADcDACANIBpBAWoiGjYCDCANQaABaiANQRBqIAUQzwIgFUFAayEVIA0pA6ABIiFCAlINAAsLIB1BCGogDUEMaigCADYCACAdIA0pAgQ3AgALIA1B8AFqJAAMAAsCQCAKKAKwQCIFQYCAgIB4RwRAIAooArhAIQQgCigCtEAhAyAKKALoLyIBBEAgCigC7C8gAUEGdBCUBQsgACAENgIMIAAgAzYCCCAAIAU2AgQgAEEBNgIADAELIAooAvAvIR4gCigC7C8hGyAKKALoLyEcAn8gCUUEQCAKQegvahDDAiAKQfwxagwBCyAKQfA5akH4lsEAKAIANgIAIApB8JbBACkCADcD6DkgCkHoOWoiBRDbAyAKKALsOUEBNgIAIAooAuw5IQsCQCAKKALoOSIBQYCAgIB4Rw0AIAsoAggNACAKQQE2AvA5IAogCzYC7DkgCkGAgICAeDYC6DkgCkHoL2oiASAFEOwDIAEMAQsgCkEBNgLwOSAKIAs2Auw5IAogATYC6DkgCkHoL2oiASAKQeg5akEEQQAQowEgAQshASADIARBDGxqIQ8gBARAIAEoAgRBBGshECABKAIIIg5BAnQhBSADIQsDQAJAAkACQCALQQhqKAIAIgEgDkYEQCALQQRqKAIAQQRrIRIgBSEBA0AgAUUNAiABIBJqIREgASAQaiABQQRrIQEoAgAiFCARKAIAIgxGDQALIAwgFEkNAwwCCyABIA5PDQEMAgsgAQ0BC0G50cIALQAAGgJAAkACQCAJRQRAQS5BARCLBSIBDQEMEgtBJUEBEIsFIgENAQwSCyAAQS42AgwgACABNgIIIABCgYCAgOAFNwIAIAFBJmpBopfBACkAADcAACABQSBqQZyXwQApAAA3AAAgAUEYakGUl8EAKQAANwAAIAFBEGpBjJfBACkAADcAACABQQhqQYSXwQApAAA3AAAgAUH8lsEAKQAANwAAIAooAvwxIgAEQCAKKAKAMiAAQQJ0EJQFCyAKQcgxahCzBAwBCyAAQSU2AgwgACABNgIIIABCgYCAgNAENwIAIAFBHWpBx5fBACkAADcAACABQRhqQcKXwQApAAA3AAAgAUEQakG6l8EAKQAANwAAIAFBCGpBspfBACkAADcAACABQaqXwQApAAA3AAAgCigC6C8iAEUNACAKKALsLyAAQQJ0EJQFCyAcRQ0DIBsgHEEGdBCUBQwDCyALQQxqIgsgD0cNAAsLIApBADYCkDggCkKAgICAwAA3Aog4IApBADYCuD0gCkKAgICAwAA3ArA9IApB6DlqIhcgGyAeAn8gBEUEQEEAIQVBBAwBCyAKQYA6aiERQfiWwQAoAgAhEkHwlsEAKQIAISMgAyELA0AgCkHoOWogCxDTAiARKQMAISAgCkHwOWoiDikDACEiIAopA/g5ISkgCikD6DkhKCAOIBI2AgAgCiAjNwPoOSAiICiEUEUEQEEBIQFBACEFA0AgCigC6DkgAUEBa0YEQCAKQeg5ahDbAwsgCigC7DkgBWogKD4CACAiQiCGIChCgICAgBBUIRQgIlAhDCAFQQRqIQUgIkIgiCEiIAogATYC8DkgAUEBaiEBIChCIIiEISggDCAUcUUNAAsLIApBuMAAaiIQIA4oAgA2AgAgCiAKKQPoOTcDsEAgCigCkDgiBSAKKAKIOEYEQCAKQYg4ahDcAwsgCigCjDggBUEMbGoiASAKKQOwQDcCACABQQhqIBAoAgA2AgAgCiAFQQFqNgKQOCAOIBI2AgAgCiAjNwPoOSAgICmEUEUEQEEBIQFBACEFA0AgCigC6DkgAUEBa0YEQCAKQeg5ahDbAwsgCigC7DkgBWogKT4CACAgQiCGIClCgICAgBBUIRQgIFAhDCAFQQRqIQUgIEIgiCEgIAogATYC8DkgAUEBaiEBIClCIIiEISkgDCAUcUUNAAsLIBAgDigCADYCACAKIAopA+g5NwOwQCAKKAK4PSIFIAooArA9RgRAIApBsD1qENwDCyAKKAK0PSAFQQxsaiIBIAopA7BANwIAIAFBCGogECgCADYCACAKIAVBAWo2Arg9IAtBDGoiCyAPRw0ACyAKKAKQOCEFIAooAow4CyAFEBkgCkHQM2ogCkGgOmoiDCkDADcDACAKQcgzaiAKQZg6aiILKQMANwMAIApBwDNqIApBkDpqIgUpAwA3AwAgCkG4M2ogCkGIOmoiASkDADcDACAKQbAzaiAKQYA6aiIaKQMANwMAIApBqDNqIApB+DlqIhUpAwA3AwAgCkGgM2ogCkHwOWoiHSkDADcDACAKIAopA+g5NwOYMyAKQcg/aiAKQdA6aiIWKQMANwMAIApBwD9qIApByDpqIhMpAwA3AwAgCkG4P2ogCkHAOmoiDykDADcDACAKQbA/aiAKQbg6aiIOKQMANwMAIApBqD9qIApBsDpqIhApAwA3AwAgCiAKKQOoOjcDoD8gFyAbIB4gCigCtD0gCigCuD0QGSAKQeA0aiISIAwpAwA3AwAgCkHYNGoiESALKQMANwMAIApB0DRqIhQgBSkDADcDACAKQcg0aiIMIAEpAwA3AwAgCkHANGoiCyAaKQMANwMAIApBuDRqIgUgFSkDADcDACAKQbA0aiIBIB0pAwA3AwAgCiAKKQPoOTcDqDQgCkH4P2ogFikDADcDACAKQfA/aiATKQMANwMAIApB6D9qIA8pAwA3AwAgCkHgP2ogDikDADcDACAKQdg/aiAQKQMANwMAIAogCikDqDo3A9A/IBogCykDACIkNwMAIBUgBSkDACIjNwMAIB0gASkDACIhNwMAIApBuMAAaiAhNwMAIApBwMAAaiAjNwMAIApByMAAaiAkNwMAIAogCikDqDQiITcD6DkgCkHQwABqIAwpAwA3AwAgCkHYwABqIBQpAwA3AwAgCkHgwABqIBEpAwA3AwAgCkHowABqIBIpAwA3AwAgCiAhNwOwQCAdQfiWwQAoAgA2AgAgCkHwlsEAKQIANwPoOSAXENsDIAooAuw5QQE2AgAgCigC7DkhBQJAAkAgCigC6DkiAUGAgICAeEcNACAFKAIIDQAgCkEBNgLwOSAKIAU2Auw5IApBgICAgHg2Aug5IApB0MIAaiAXEOwDDAELIApBATYC8DkgCiAFNgLsOSAKIAE2Aug5IApB0MIAaiAKQeg5akEEQQAQowELIApBsDhqIApB2MIAaiIPKAIANgIAIAogCikC0EI3A6g4IApB6DlqIApBsMAAakEBIApBqDhqQQEQGSAKQfA1aiAKQaA6aikDADcDACAKQeg1aiAKQZg6aikDADcDACAKQeA1aiAKQZA6aikDADcDACAKQdg1aiAKQYg6aiISKQMANwMAIApB0DVqIApBgDpqIhEpAwA3AwAgCkHINWogCkH4OWoiFCkDADcDACAKQcA1aiAKQfA5aiIMKQMANwMAIAogCikD6Dk3A7g1IApBqMAAaiAKQdA6aikDADcDACAKQaDAAGogCkHIOmopAwA3AwAgCkGYwABqIApBwDpqKQMANwMAIApBkMAAaiAKQbg6aikDADcDACAKQYjAAGogCkGwOmopAwA3AwAgCiAKKQOoOjcDgEAgCigCqDgiAQRAIAooAqw4IAFBAnQQlAULIApB0MIAakHumMEAQeCYwQAgCRtBGEEOIAkbELkBIApByMAAaiAKQejCAGoiCykDADcDACAKQcDAAGoiBSAKQeDCAGoiASkDADcDACAKQbjAAGoiDiAPKQMANwMAIApB2MAAakIANwMAIApB4MAAakIANwMAIApB6MAAakIANwMAIApB+MAAakGIl8AAKQMANwMAIApBgMEAakGQl8AAKQMANwMAIApBiMEAakGYl8AAKQMANwMAIAogCikD0EI3A7BAIApCADcD0EAgCkGAl8AAKQMANwPwQCAKQbDAAGoiEBBTIBIgEEHgABCtBRogESALKQMANwMAIBQgASkDADcDACAMIA8pAwA3AwAgCiAKKQPQQjcD6DkgBUJ/NwMAIApCfzcDuEAgCkLw6v///////wc3A7BAIApC4X43A8hAQcCYwQAgEBCPBARAIA5CfzcDACAOQQhqQn83AwAgCkLfajcDsEAgCkLgfjcDyEALIApBwDhqIApByMAAaiILKQMANwMAIApBuDhqIApBwMAAaiIFKQMANwMAIApBsDhqIApBuMAAaiIBKQMANwMAIAogCikDsEA3A6g4IApBmC9qIAStIiZCgYiA8Leuf0IAEPwDIApB2C5qQgAgCikDmC8iI31CkYCAgICAgIAIQgAQ/AMgCkGIL2ogJkL//7+YE0IAEPwDIApByC5qQgAgCkGgL2opAwAiISAKKQOIL3wiJSAjQgBSrXwiI31CkYCAgICAgIAIQgAQ/AMgCkH4LmogJkKAgL57QgAQ/AMgCkG4LmpCACAjQgBSrSIkICMgJVStIApBkC9qKQMAICEgJVatfHx8IiMgCikD+C6EIiF9QpGAgICAgICACEIAEPwDIApB6C5qICZCkJCC8LWV9f8HQgAQ/AMgCkGoLmpCACAhQgBSrSIlIApBgC9qKQMAICMgJFSthCIkIAopA9gufCIjfCInIAopA+gufCImfUKRgICAgICAgAhCABD8AyAKICZCAFKtIiEgCkHwLmopAwAgJiAnVK18IiIgJSAnVq0iKSAjICRUrSIgIAopA8guIiggCkHgLmopAwB8Iid8IiZ8IiV8IiN8Iio3A8hAIAogISAqVq0iJCAKKQO4LiIhIApB0C5qKQMAICcgKFStfHwiKCAgICZWrXwiJyAlIClUrXwiJiAiICNWrXwiI3wiIDcDwEAgCiAmICdUrSAnIChUrSAKQcAuaikDACAhIChWrXx8fCIhIAopA6gufCIlICMgJlStfCIjICAgJFStfCIkNwO4QCAKICMgJFatICMgJVStIApBsC5qKQMAICEgJVatfHx8IiM3A7BAQcCYwQAgCkGwwABqEI8EBEAgCiAqQgF9NwPIQCAKICAgKlCtIiF9NwPAQCAKICQgICAhVK0iIX03A7hAIAogIyAhICRWrX1CkYCAgICAgIAIfTcDsEALIApB6MIAaiALKQMANwMAIApB4MIAaiAFKQMANwMAIApB2MIAaiABKQMANwMAIAogCikDsEA3A9BCIBsgHkEGdGohHSAKQeg5aiAKQag4aiAKQdDCAGoQ6gIgHgRAIBshAQNAIApBsMAAaiILIAEQ/gEgCkHoOWoiBSALENsBIAsgAUEgahD+ASAFIAsQ2wEgAUFAayIBIB1HDQALCyAKQdDCAGoiCwJ/AkACQCAJRQRAIApBsMAAaiIBIApBmDNqEP4BIApB6DlqIgUgARDbASABIApBuDNqEP4BIAUgARDbASABIApBqDRqEP4BIAUgARDbASABIApByDRqEP4BIAUgARDbASABIApBuDVqEP4BIAUgARDbASABIApB2DVqEP4BIAUgARDbASABIAUgAyAEELECIAEgBUGAARCtBRogCkGwwQBqIApB8MAAahDiBCAKQYgtaiAKKQPIQSIsIAopA8BBIitCABD8AyAKQZgtaiAsIAopA7hBIipCABD8AyAKQagtaiAsIAopA7BBIilCABD8AyAKQcgtaiArICpCABD8AyAKQdgtaiArIClCABD8AyAKQfgtaiAqIClCABD8AyAKQgA3A4A6IAogCikDiC03A/g5IAogCkGQLWopAwAiIyAKKQOYLXwiITcD8DkgCiAKQaAtaikDACAhICNUrXwiISAKKQOoLXwiICAKKQPILXwiLTcD6DkgCyIBIAUQuQIgCikD0EIhIiAKKQPYQiEnIAopA+BCISYgCikD6EIhJSAKQgA3A+g5IApB4C1qKQMAISQgCiAKQbAtaikDACAgICFUrXwiIyAKKQPYLXwiKCAKQdAtaikDACAgIC1WrXx8IiE3A4A6IAogISAoVK0gJCAjIChWrXx8IiMgCikD+C18IiE3A/g5IAogCkGALmopAwAgISAjVK18NwPwOSABIAUQuQIgCkG4LWogLCAsQgAQ/AMgCkHoLWogKyArQgAQ/AMgCkGILmogKiAqQgAQ/AMgCkGYLmogKSApQgAQ/AMgCkGQLmopAwAhJCAKKQPQQiEpIAopA9hCISAgCikD4EIhKCAKICIgCkHwLWopAwAgJyAKKQPoLSIhfCIjICFUrXwgIyAmIApBwC1qKQMAICUgCikDuC0iIXwiKiAhVK18IiF8IiUgIVStfCInICNUrXwiIXwiJiAhVK0iIyAKKQOILnwiIiAKKQPoQiAtQj+IhHwiITcDgDogCiAoICEgIlStICQgIiAjVK18fCIkfCIhNwP4OSAKICAgCikDmC4iI3wiKCAhICRUrXwiITcD8DkgCiApICEgKFStIApBoC5qKQMAICMgKFatfHx8NwPoOSAKQfgsaiAqQv////++sv3wQn4iIUKBgICAv7L98MMAQgAQ/AMgCkHoLGogIUKR4eXNh4n6mShCABD8AyAKQdgsaiAhQt2whYzotpGouH9CABD8AyAKQcgsaiAhQqnAxomuzpOyMEIAEPwDIApB8CxqKQMAISQgCiAKQYAt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JH0hISAlICQgJlatIiZ9ISQgJyAlICZUrX1CkYCAgICAgIAIfSEnIChCAX0LISMgDEJ/NwMAIAxBCGpCfzcDACAFIBQpAwA3AwAgAyARKQMANwMAIAEgEikDADcDACAKQtD3////////BzcDkEMgCkJBNwOoQyAKIAopA4g5NwPQQiAKICM3A4hDIAogITcDgEMgCiAkNwP4QiAKICc3A/BCIApB0MIAahBTIBIgASkDADcDACARIAMpAwA3AwAgFCAFKQMANwMAIAogCikD0EI3A4g5IApBqDhqIgMgCkGIOWoQjwMgCkGgwgBqIgEgA0EgELMBIAMgCkGoN2ogCkHYN2ogARBhIApB0DlqIApBwDhqKQMANwMAIApByDlqIApBuDhqKQMANwMAIApBwDlqIApBsDhqKQMANwMAIAogCikDqDg3A7g5ICBCAXwhICAKQbg5ahDGA0H/AXFBAkcNAAsLIApBoMIAaiAKQbg5ahC0AiAKQdDCAGogCkGIOWoQ4gQgCkGwOGogCkHYwgBqKQMANwMAIApBuDhqIApB4MIAaikDADcDACAKQcA4aiAKQejCAGopAwA3AwAgCkHIOGoiAyAKKQOgQjcDACAKQdA4aiAKQajCAGopAwA3AwAgCkHYOGogCkGwwgBqKQMANwMAIApB4DhqIApBuMIAaikDADcDACAKIAopA9BCNwOoOCAKKAL4MyEaIAooAvwzIRQgCigCgDQhFyAKKAL8OyIBBEAgCigCgDwgAUECdBCUBQsgCkHIO2oQswQgCkGIwwBqIApB4DhqKQMANwMAIApBgMMAaiAKQdg4aikDADcDACAKQfjCAGogCkHQOGopAwA3AwAgCkHwwgBqIAMpAwA3AwAgCkHowgBqIApBwDhqKQMANwMAIApB4MIAaiAKQbg4aikDADcDACAKQdjCAGogCkGwOGopAwA3AwAgCiAKKQOoODcD0EIgCkEANgKANCAKQoCAgIDAADcC+DNBACEBIAgEQCAKQfgzahDcAyAKKAL8MyIBQfCWwQApAgA3AgAgAUEIakH4lsEAKAIANgIAIApBATYCgDRBASEBCyAKQfA5akH4lsEAKAIANgIAIApB8JbBACkCADcD6DkgBkUEQCAKQeg5ahDbAyAKKALsOUEBNgIAIApBATYC8DkgCigCgDQhAQsgCkGwOGoiBSAK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ADcDACAcQRhqIA1BOGoiECkDADcDACAcQRBqIA1BMGoiEikDADcDACAcQQhqIA1BKGopAwA3AwAgDUEBNgIMIA0gHDYCCCANQQQ2AgQgDUEYaiAVQQhqKQIANwMAIA0gFSkCADcDECANQaABaiANQRBqIA0oAhwQ0gICQCANKQOgASIhQgJRDQAgDUGoAWohF0HAACEVQQEhGgNAIA1BmAFqIhEgF0E4aikDADcDACANQZABaiIUIBdBMGopAwA3AwAgDUGIAWoiGyAXQShqKQMANwMAIA1BgAFqIgwgF0EgaikDADcDACANQfgAaiILIBdBGGopAwA3AwAgDUHwAGoiASAXQRBqKQMANwMAIA1B6ABqIgUgF0EIaikDADcDACANIBcpAwA3A2AgIVANASAWIBEpAwA3AwAgEyAUKQMANwMAIA8gGykDADcDACAOIAwpAwA3AwAgECALKQMANwMAIBIgASkDADcDACANQShqIgEgBSkDADcDACANIA0pA2A3AyAgDSgCHCEFIA0oAgQgGkYEQAJAIAUoAgBBgICAgHhHDQAgDSgCFEUNACANKAIYRQ0ZCyANQQRqIBpBARDRAyANKAIIIRwLIBUgHGoiCyANKQMgNwMAIAtBOGogFikDADcDACALQTBqIBMpAwA3AwAgC0EoaiAPKQMANwMAIAtBIGogDikDADcDACALQRhqIBApAwA3AwAgC0EQaiASKQMANwMAIAtBCGogASkDADcDACANIBpBAWoiGjYCDCANQaABaiANQRBqIAUQ0gIgFUFAayEVIA0pA6ABIiFCAlINAAsLIB1BCGogDUEMaigCADYCACAdIA0pAgQ3AgALIA1B8AFqJAAMAAsCQCAKKAKwQCIFQYCAgIB4RwRAIAooArhAIQQgCigCtEAhAyAKKALoLyIBBEAgCigC7C8gAUEGdBCUBQsgACAENgIMIAAgAzYCCCAAIAU2AgQgAEEBNgIADAELIAooAvAvIR4gCigC7C8hGyAKKALoLyEcAn8gCUUEQCAKQegvahDBAiAKQfwxagwBCyAKQfA5akH4lsEAKAIANgIAIApB8JbBACkCADcD6DkgCkHoOWoiBRDbAyAKKALsOUEBNgIAIAooAuw5IQsCQCAKKALoOSIBQYCAgIB4Rw0AIAsoAggNACAKQQE2AvA5IAogCzYC7DkgCkGA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IApByMAAaiAkNwMAIAogCikDqDQiITcD6DkgCkHQwABqIAwpAwA3AwAgCkHYwABqIBQpAwA3AwAgCkHgwABqIBEpAwA3AwAgCkHowABqIBIpAwA3AwAgCiAhNwOwQCAdQfiWwQAoAgA2AgAgCkHwlsEAKQIANwPoOSAXENsDIAooAuw5QQE2AgAgCigC7DkhBQJAAkAgCigC6DkiAUGAgICAeEcNACAFKAIIDQAgCkEBNgLwOSAKIAU2Auw5IApBgICAgHg2Aug5IApB0MIAaiAXEOwDDAELIApBATYC8DkgCiAFNgLsOSAKIAE2Aug5IApB0MIAaiAKQeg5akEEQQAQowELIApBsDhqIApB2MIAaiIPKAIANgIAIAogCikC0EI3A6g4IApB6DlqIApBsMAAakEBIApBqDhqQQEQHSAKQfA1aiAKQaA6aikDADcDACAKQeg1aiAKQZg6aikDADcDACAKQeA1aiAKQZA6aikDADcDACAKQdg1aiAKQYg6aiISKQMANwMAIApB0DVqIApBgDpqIhEpAwA3AwAgCkHINWogCkH4OWoiFCkDADcDACAKQcA1aiAKQfA5aiIMKQMANwMAIAogCikD6Dk3A7g1IApBqMAAaiAKQdA6aikDADcDACAKQaDAAGogCkHIOmopAwA3AwAgCkGYwABqIApBwDpqKQMANwMAIApBkMAAaiAKQbg6aikDADcDACAKQYjAAGogCkGwOmopAwA3AwAgCiAKKQOoOjcDgEAgCigCqDgiAQRAIAooAqw4IAFBAnQQlAULIApB0MIAakHumMEAQeCYwQAgCRtBGEEOIAkbELkBIApByMAAaiAKQejCAGoiCykDADcDACAKQcDAAGoiBSAKQeDCAGoiASkDADcDACAKQbjAAGoiDiAPKQMANwMAIApB2MAAakIANwMAIApB4MAAakIANwMAIApB6MAAakIANwMAIApB+MAAakGIl8AAKQMANwMAIApBgMEAakGQl8AAKQMANwMAIApBiMEAakGYl8AAKQMANwMAIAogCikD0EI3A7BAIApCADcD0EAgCkGAl8AAKQMANwPwQCAKQbDAAGoiEBBTIBIgEEHgABCtBRogESALKQMANwMAIBQgASkDADcDACAMIA8pAwA3AwAgCiAKKQPQQjcD6DkgBUJ/NwMAIApCfzcDuEAgCkKQ7////////wc3A7BAIApCgX83A8hAQcCYwQAgEBCPBARAIA5CfzcDACAOQQhqQn83AwAgCkL/bjcDsEAgCkKAfzcDyEALIApBwDhqIApByMAAaiILKQMANwMAIApBuDhqIApBwMAAaiIFKQMANwMAIApBsDhqIApBuMAAaiIBKQMANwMAIAogCikDsEA3A6g4IApB+CVqIAStIiZCgYiA8Leuf0IAEPwDIApBuCVqQgAgCikD+CUiI31CkYCAgICAgIAIQgAQ/AMgCkHoJWogJkL//7+YE0IAEPwDIApBqCVqQgAgCkGAJmopAwAiISAKKQPoJXwiJSAjQgBSrXwiI31CkYCAgICAgIAIQgAQ/AMgCkHYJWogJkKAgL57QgAQ/AMgCkGYJWpCACAjQgBSrSIkICMgJVStIApB8CVqKQMAICEgJVatfHx8IiMgCikD2CWEIiF9QpGAgICAgICACEIAEPwDIApByCVqICZCkJCC8LWV9f8HQgAQ/AMgCkGIJWpCACAhQgBSrSIlIApB4CVqKQMAICMgJFSthCIkIAopA7glfCIjfCInIAopA8glfCImfUKRgICAgICAgAhCABD8AyAKICZCAFKtIiEgCkHQJWopAwAgJiAnVK18IiIgJSAnVq0iKSAjICRUrSIgIAopA6glIiggCkHAJWopAwB8Iid8IiZ8IiV8IiN8Iio3A8hAIAogISAqVq0iJCAKKQOYJSIhIApBsCVqKQMAICcgKFStfHwiKCAgICZWrXwiJyAlIClUrXwiJiAiICNWrXwiI3wiIDcDwEAgCiAmICdUrSAnIChUrSAKQaAlaikDACAhIChWrXx8fCIhIAopA4glfCIlICMgJlStfCIjICAgJFStfCIkNwO4QCAKICMgJFatICMgJVStIApBkCVqKQMAICEgJVatfHx8IiM3A7BAQcCYwQAgCkGwwABqEI8EBEAgCiAqQgF9NwPIQCAKICAgKlCtIiF9NwPAQCAKICQgICAhVK0iIX03A7hAIAogIyAhICRWrX1CkYCAgICAgIAIfTcDsEALIApB6MIAaiALKQMANwMAIApB4MIAaiAFKQMANwMAIApB2MIAaiABKQMANwMAIAogCikDsEA3A9BCIBsgHkEGdGohHSAKQeg5aiAKQag4aiAKQdDCAGoQ6gIgHgRAIBshAQNAIApBsMAAaiILIAEQ/wEgCkHoOWoiBSALENsBIAsgAUEgahD/ASAFIAsQ2wEgAUFAayIBIB1HDQALCyAKQdDCAGoiCwJ/AkACQCAJRQRAIApBsMAAaiIBIApBmDNqEP8BIApB6DlqIgUgARDbASABIApBuDNqEP8BIAUgARDbASABIApBqDRqEP8BIAUgARDbASABIApByDRqEP8BIAUgARDbASABIApBuDVqEP8BIAUgARDbASABIApB2DVqEP8BIAUgARDbASABIAUgAyAEELECIAEgBUGAARCtBRogCkHgPmogCkHwwABqEN4EIApB6CNqIAopA/g+IiwgCikD8D4iK0IAEPwDIApB+CNqICwgCikD6D4iKkIAEPwDIApBiCRqICwgCikD4D4iKUIAEPwDIApBqCRqICsgKkIAEPwDIApBuCRqICsgKUIAEPwDIApB2CRqICogKUIAEPwDIApCADcDgDogCiAKKQPoIzcD+DkgCiAKQfAjaikDACIjIAopA/gjfCIhNwPwOSAKIApBgCRqKQMAICEgI1StfCIhIAopA4gkfCIgIAopA6gkfCItNwPoOSALIgEgBRC5AiAKKQPQQiEiIAopA9hCIScgCikD4EIhJiAKKQPoQiElIApCADcD6DkgCkHAJGopAwAhJCAKIApBkCRqKQMAICAgIVStfCIjIAopA7gkfCIoIApBsCRqKQMAICAgLVatfHwiITcDgDogCiAhIChUrSAkICMgKFatfHwiIyAKKQPYJHwiITcD+DkgCiAKQeAkaikDACAhICNUrXw3A/A5IAEgBRC5AiAKQZgkaiAsICxCABD8AyAKQcgkaiArICtCABD8AyAKQegkaiAqICpCABD8AyAKQfgkaiApIClCABD8AyAKQfAkaikDACEkIAopA9BCISkgCikD2EIhICAKKQPgQiEoIAogIiAKQdAkaikDACAnIAopA8gkIiF8IiMgIVStfCAjICYgCkGgJGopAwAgJSAKKQOYJCIhfCIqICFUrXwiIXwiJyAhVK18IiYgI1StfCIhfCIlICFUrSIjIAopA+gkfCIiIAopA+hCIC1CP4iEfCIhNwOAOiAKICggISAiVK0gJCAiICNUrXx8IiR8IiE3A/g5IAogICAKKQP4JCIjfCIoICEgJFStfCIhNwPwOSAKICkgISAoVK0gCkGAJWopAwAgIyAoVq18fHw3A+g5IApB2CNqICpCm5Svw/K1qN6Gf34iIUJtQgAQ/AMgCkHII2ogIUJ/QgAQ/AMgCkG4I2ogIUL///////////8AQgAQ/AMgCkHQI2opAwAhKCAKICcgCkHgI2opAwAgKiAKKQPYIyIhfCAhVK18IiMgCikDyCMiJHwiJ3wiITcDoEIgCiAmICQgISAnVK0gKCAjICdWrXx8IiN8IiZ8IiE3A6g4IApBwCNqKQMAISQgCiAlICEgJlStICggIyAmVq18fCIjIAopA7gjfCIlfCIhNwPQQkEAIQVBACEBICEgJVStICQgIyAlVq18fCIjQgBSDQEMAgsgCkGwwABqIgUgCkGYM2oQ/wEgCkHoOWoiASAFENsBIAUgCkG4M2oQ/wEgASAFENsBIAUgASADIAQQkAMgBSABQYABEK0FGiAKQaA/agwCCyAKICMgCikDgDp8IiE3A4A6ICEgI1QiAUUNACAKIAGtIiMgCikD+Dl8IiE3A/g5ICEgI1QhASAhICNaDQAgCiABrSIjIAopA/A5fCIhNwPwOSAhICNUIQEgISAjWg0AIAogAa0iIyAKKQPoOXwiITcD6DkgISAjVCEBCyAKQagjaiAKKQOgQiIhQpuUr8Pytajehn9+IiNCbUIAEPwDIApBmCNqICNCf0IAEPwDIApBiCNqICNC////////////AEIAEPwDIAogISAKKQOoIyIjfCIhNwOgQiAKQaAjaikDACEmIAogCkGwI2opAwAgISAjVK18IiMgCikDmCMiJHwiJSAKKQOoOHwiITcDqDggCiAkICEgJVStICYgIyAlVq18fCIjfCIlIAopA9BCfCIhNwPQQiAKQZAjaikDACEkIAogISAlVK0gJiAjICVWrXx8IiMgCikDiCN8IiUgCikDgDp8IiE3A4A6AkAgISAlVK0gJCAjICVWrXx8IiNQDQAgCiAjIAopA/g5fCIhNwP4OSAhICNUIQUgISAjWg0AIAogBa0iIyAKKQPwOXwiITcD8DkgISAjVCEFICEgI1oNACAKIAWtIiMgCikD6Dl8IiE3A+g5ICEgI1QhBQsgCkH4ImogCikDqDgiIUKblK/D8rWo3oZ/fiIjQm1CABD8AyAKQegiaiAjQn9CABD8AyAKQdgiaiAjQv///////////wBCABD8AyAKICEgCikD+CIiI3wiITcDqDggCkHwImopAwAhJiAKIApBgCNqKQMAICEgI1StfCIjIAopA+giIiR8IiUgCikD0EJ8IiE3A9BCIAogJCAhICVUrSAmICMgJVatfHwiI3wiJSAKKQOAOnwiITcDgDogCkHgImopAwAhJCAKICEgJVStICYgIyAlVq18fCIjIAopA9gifCIlIAopA/g5fCIhNwP4OUEAIQsCf0EAICEgJVStICQgIyAlVq18fCIjUA0AGiAKICMgCikD8Dl8IiE3A/A5ICEgI1QiAyAhICNaDQAaIAogA60iIyAKKQPoOXwiITcD6DkgISAjVAshAyAKQcgiaiAKKQPQQiIhQpuUr8Pytajehn9+IiNCbUIAEPwDIApBuCJqICNCf0IAEPwDIApBqCJqICNC////////////AEIAEPwDIAogISAKKQPIIiIjfCIhNwPQQiAKQcAiaikDACEmIAogCkHQImopAwAgISAjVK18IiMgCikDuCIiJHwiJSAKKQOAOnwiITcDgDogCiAkICEgJVStICYgIyAlVq18fCIjfCIlIAopA/g5fCIhNwP4OSAKQbAiaikDACEkIAogISAlVK0gJiAjICVWrXx8IiMgCikDqCJ8IiUgCikD8Dl8IiE3A/A5ICEgJVStICQgIyAlVq18fCIgUEUEQCAKICAgCikD6Dl8IiE3A+g5ICAgIVYiC60hIAsCQCABIAVyIANyIAtyICBCAFJyRQRAQYCVwQAgCkHoOWoQjwRFDQELIAogCikDgDoiIUITfDcDgDogCiAKKQP4OSImQgF8IiUgIUJtVK0iIX03A/g5IAogCikD8DkiJEIBfCIjICZCf1IgISAlVnKtIiF9NwPwOSAKIAopA+g5ICRCf1IgISAjVnKtfUL///////////8AfTcD6DkLIApBmD9qIApBgDpqIgUpAwAiJTcDACAKQZA/aiAKQfg5aiIDKQMAIiQ3AwAgCkGIP2ogCkHwOWoiASkDACIjNwMAIAogCikD6DkiITcDgD8gCkHowgBqICU3AwAgCkHgwgBqICQ3AwAgCkHYwgBqICM3AwAgCiAhNwPQQiAFIApB+D5qKQMANwMAIAMgCkHwPmopAwA3AwAgASAKQeg+aikDADcDACAKIAopA+A+NwPoOSAKQYg1aiIBIApB0MIAaiIFIApB6DlqIgsQnAEgBSAKQaA/aiAKQeA+ahC+AiALIApB0D9qIApBgD9qEL4CIApBqDhqIgMgBSALEOkEIAsgCkGAQGsgARC+AiAKQfDBAGoiASADIAsQ6QQgAQsiDyAEIAlBAXMiDhC3ASAKQQQ2AoRDQQAhAQNAAkAgCiABQQFqNgKAQyAKQdDCAGogAUEMbGoiASgCACIMQYCAgIB4Rg0AIAEpAgQiIachAyAhQiCIpyIBBEAgAUEFdCEFIAMhAQNAIApB6DlqIgsgARD/ASABQSBqIQEgCkGwwABqIAsQ2wEgBUEgayIFDQALCyAMBEAgAyAMQQV0EJQFCyAKKAKAQyIBIAooAoRDRw0BCwsgCkHQwgBqIgsQoQQgCkGgNmoiBSAKQdjAAGopAwA3AwAgCkGoNmoiAyAKQeDAAGopAwA3AwAgCkGwNmoiASAKQejAAGopAwA3AwAgCiAKKQPQQDcDmDYgCkHoOWoQwQIgCkHAN2ogCkGAOmopAwA3AwAgCkG4N2ogCkH4OWopAwA3AwAgCkGwN2ogCkHwOWopAwA3AwAgCiAKKQPoOTcDqDcgCkHwN2ogCkGgOmopAwA3AwAgCkHoN2ogCkGYOmopAwA3AwAgCkHgN2ogCkGQOmopAwA3AwAgCiAKKQOIOjcD2DcgCikDwDshOCAKKQO4OyE1IAopA7A7ITYgCikDqDshNyAKQaA5aiISIAEpAwA3AwAgCkGYOWoiESADKQMANwMAIApBkDlqIhQgBSkDADcDACAKIAopA5g2NwOIOSALIApBiDlqEN4EIApBuDlqIgEgCkGoN2ogCkHYN2ogCxBfIApBADYCgDQgCkKAgICAgAE3AvgzIAEQwwNB/wFxQQJHBEAgCkGYwwBqIQxCACEgA0AgCkHYIGogCikD0DkiNCA4QgAQ/AMgCkGYIWogCikDyDkiMiA4QgAQ/AMgCkHYIWogCikDwDkiMSA4QgAQ/AMgCkGYImogCikDuDkiLiA4QgAQ/AMgCkGYIGogCikD2CAiJUKblK/D8rWo3oZ/fiIhQm1CABD8AyAKQYggaiAhQn9CABD8AyAKQfgfaiAhQv///////////wBCABD8AyAKQcggaiA0IDVCABD8AyAKQYghaiAyIDVCABD8AyAKQcghaiAxIDVCABD8AyAKQYgiaiAuIDVCABD8AyAKQegfaiAKKQOIICIqIApB4CBqKQMAIiQgCikDmCF8IiN8IiIgCkGgIGopAwAgJSAKKQOYICIhfCAhVK18fCIlIAopA8ggfCInQpuUr8Pytajehn9+IiFCbUIAEPwDIApB2B9qICFCf0IAEPwDIApByB9qICFC////////////AEIAEPwDIApBuCBqIDQgNkIAEPwDIApB+CBqIDIgNkIAEPwDIApBuCFqIDEgNkIAEPwDIApB+CFqIC4gNkIAEPwDIApBuB9qIApB0CBqKQMAICUgJ1atfCIoIAopA4ghfCIzICogCkGgIWopAwAgIyAkVK18IiYgCikD2CF8Ii18IikgIiAlVq0gCkGQIGopAwAiJSAiICpUrXx8fCIkfCIwIAopA9gfIiN8Ii8gCkHwH2opAwAgCikD6B8iISAnfCAhVK18fCIrIAopA7ggfCIsQpuUr8Pytajehn9+IiFCbUIAEPwDIApBqB9qICFCf0IAEPwDIApBmB9qICFC////////////AEIAEPwDIApBqCBqIDQgN0IAEPwDIApB6CBqIDIgN0IAEPwDIApBqCFqIDEgN0IAEPwDIApB6CFqIC4gN0IAEPwDIApBiB9qIApBwCBqKQMAICsgLFatfCInIAopA/ggfCIxICMgCkHgIWopAwAgJiAtVq18IiYgCikDmCJ8IiogCikD+B98IiIgJCApVK0gJSApIC1UrXx8fCIuIAopA8ghfCIpIDAgM1StIApBkCFqKQMAICggM1atfHx8Ii18IiggKyAvVK0gCkHgH2opAwAiJSAvIDBUrXx8fCIkfCIwIAopA6gfIiN8IisgCkHAH2opAwAgCikDuB8iISAsfCAhVK18fCIvIAopA6ggfCIsQpuUr8Pytajehn9+IiFCbUIAEPwDIApB+B5qICFCf0IAEPwDIApB6B5qICFC////////////AEIAEPwDAkACQAJAIApB8B5qKQMAIApBoB9qKQMAIApB0B9qKQMAICIgLlatIApBgCBqKQMAICIgKlStfHwiISAKQaAiaikDACAmICpWrXx8IiogCikDiCJ8IiIgKSAtVq0gCkHQIWopAwAgKSAuVK18fHwiKSAKKQPIH3wiJiApVK18ICYgJCAoVK0gJSAoIC1UrXx8fCIoICZUrXwiJiAiIClWrSAKQZAiaikDACAiICpUrXx8IiUgISAqVq18IiR8Ii0gCikD+CF8IiogCkHAIWopAwAgKCAKKQO4IXwiISAoVK18ICEgMCAxVK0gCkGAIWopAwAgJyAxVq18fHwiKSAhVK18fCIoIAopA5gffCInIChUrXwgJyAKQbAfaikDACIhICkgIyApfCIjVq18ICMgIyArIC9WrSAhICsgMFStfHx8IiNWrXx8IiEgJ1StfCIiICggKlStIApBgCJqKQMAICogLVStfHwiKSAmIC1WrSAkICVUrXx8Iih8IisgCikD6CF8Ii0gCkGwIWopAwAgISAhIAopA6ghfCIlVq18ICUgJSAKQfAgaikDACAKQbAgaikDACAsIC9UrXwiISAKKQPoIHwiJCAhVK18ICQgIyAkfCImVq18fCIkVq18fCIqIAopA+gefCInICpUrXwgJyAnIApBgB9qKQMAIiMgJCAkIAopA/geIiF8IiVWrXwgJSAjICYgISAmfCIkVq18ICQgCkGQH2opAwAgCikDiB8iISAsfCAhVK18fCImICRUrXx8IiQgJVStfHwiJVatfCInICogLVStIApB8CFqKQMAICsgLVatfHwiIyAiICtWrSAoIClUrXx8IiF8IiJCAFMgIiAnVK1CACAhICNUrX1Scg0AICJC////////////AFINASAlQn9SBEBC////////////ACEiDAILQn8hIyAkQn9SBEBC////////////ACEiICQhIQwDCyAmQm1aDQBC////////////ACEiQn8hIQwCCyAkQgF8IiggJkJtVK0iI30hISAlQgF8IicgJEJ/UiAjIChWcq0iJH0hIyAiICVCf1IgJCAnVnKtfUL///////////8AfSEiICZCE3whJgwBCyAlISMgJCEhCyAKICY3A5g9IAogITcDkD0gCiAjNwOIPSAKICI3A4A9IApB0MIAaiAKQYA9ahC1AiAKKAKANCILIAooAvgzRgRAIApB+DNqENkDCyAKKAL8MyALQQV0aiIBIAopA9BCNwMAIAFBCGogCkHYwgBqIgUpAwA3AwAgAUEQaiAKQeDCAGoiAykDADcDACABQRhqIApB6MIAaiIBKQMANwMAIAogC0EBajYCgDQgCkHYHmogIEKBiIDwt65/QgAQ/AMgCkHIHmpCACAKKQPYHiIjfUKRgICAgICAgAhCABD8AyAKQbgeaiAgQv//v5gTQgAQ/AMgCkGoHmpCACAKQeAeaikDACIhIAopA7gefCIkICNCAFKtfCIjfUKRgICAgICAgAhCABD8AyAKQZgeaiAgQoCAvntCABD8AyAKQYgeakIAICMgJFStIApBwB5qKQMAICEgJFatfHwiISAKKQOYHnwiJCAjQgBSrXwiI31CkYCAgICAgIAIQgAQ/AMgCkH4HWogIEKQkILwtZX1/wdCABD8AyAKQegdakIAICNCAFKtIicgIyAkVK0gCkGgHmopAwAgISAkVq18fCImIAopA8gefCIlfCIiIAopA/gdfCIpfUKRgICAgICAgAhCABD8AwJ+IApB8B1qKQMAIApBkB5qKQMAIAopA4geIiQgCkGwHmopAwAgCikDqB4iIyAKQdAeaikDAHwiISAjVK18fCIoICRUrXwgKCAoICUgJlStIiMgIXwiISAjVK18IiRWrXwgJCAkICEgIiAnVK0iIXwiIyAhVK18IiVWrXwiISAKKQPoHXwiJCAhVK18ICQgJCAlICUgCkGAHmopAwAgIiApVq18IiEgI3wiIyAhVK18IiFWrXwiJFatfCAkICEgKUIAUq0iISAjfCInICFUrSIhfCImICFUrXwiJSAkVK18IiJCkYCAgICAgIAIVARAICUhJCAmISEgJwwBCyAmICeEICWEUARAQgAhJEKRgICAgICAgAghIkIAISFCAAwBCyAmICdQrSIkfSEhICUgJCAmVq0iJn0hJCAiICUgJlStfUKRgICAgICAgAh9ISIgJ0IBfQshIyAMQn83AwAgDEEIakJ/NwMAIAUgFCkDADcDACADIBEpAwA3AwAgASASKQMANwMAIApC0Pf///////8HNwOQQyAKQkE3A6hDIAogCikDiDk3A9BCIAogIzcDiEMgCiAhNwOAQyAKICQ3A/hCIAogIjcD8EIgCkHQwgBqEFMgEiABKQMANwMAIBEgAykDADcDACAUIAUpAwA3AwAgCiAKKQPQQjcDiDkgCkGoOGoiAyAKQYg5ahCPAyAKQaDCAGoiASADQSAQrgEgAyAKQag3aiAKQdg3aiABEF8gCkHQOWogCkHAOGopAwA3AwAgCkHIOWogCkG4OGopAwA3AwAgCkHAOWogCkGwOGopAwA3AwAgCiAKKQOoODcDuDkgIEIBfCEgIApBuDlqEMMDQf8BcUECRw0ACwsgCkGgwgBqIApBuDlqELUCIApB0MIAaiAK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ISIgGCANNgIAIAogIzcDoEIgICAihFBFBEBBASEBQQAhBQNAIAooAqBCIAFBAWtGBEAgCkGgwgBqENsDCyAKKAKkQiAFaiAiPgIAICJC/////w9WICBCAFIgIFAgIEIghiAiQiCIhCEiIAVBBGohBSAgQiCIISAgCiABNgKoQiABQQFqIQEbDQALIAooAoA0IQELIBkgGCgCADYCACAKIAopA6BCNwOAPSAKKAL4MyABRgRAIApB+DNqENwDCyAKKAL8MyABQQxsaiIDIAopA4A9NwIAIANBCGogGSgCADYCACAKIAFBAWoiATYCgDQgFikDACEgIAopA4g6ISIgGCANNgIAIAogIzcDoEIgICAihFBFBEBBASEBQQAhBQNAIAooAqBCIAFBAWtGBEAgCkGgwgBqENsDCyAKKAKkQiAFaiAiPgIAICJC/////w9WICBCAFIgIFAgIEIghiAiQiCIhCEiIAVBBGohBSAgQiCIISAgCiABNgKoQiABQQFqIQEbDQALIAooAoA0IQELIBkgGCgCADYCACAKIAopA6BCNwOAPSAKKAL4MyABRgRAIApB+DNqENwDCyAKKAL8MyABQQxsaiIDIAopA4A9NwIAIANBCGogGSgCADYCACAKIAFBAWoiATYCgDQgEykDACEgIAopA5g6ISIgGCANNgIAIAogIzcDoEIgICAihFBFBEBBASEBQQAhBQNAIAooAqBCIAFBAWtGBEAgCkGgwgBqENsDCyAKKAKkQiAFaiAiPgIAICJC/////w9WICBCAFIgIFAgIEIghiAiQiCIhCEiIAVBBGohBSAgQiCIISAgCiABNgKoQiABQQFqIQEbDQALIAooAoA0IQELIBkgGCgCADYCACAKIAopA6BCNwOAPSAKKAL4MyABRgRAIApB+DNqENwDCyAKKAL8MyABQQxsaiIDIAopA4A9NwIAIANBCGogGSgCADYCACAKIAFBAWoiATYCgDQgCkHoOWogEkEgahD/ASAKQoCAgIDAADcDqDogESkDACEgIAopA+g5ISIgGCANNgIAIAogIzcDoEIgICAihFBFBEBBASEBQQAhBQNAIAooAqBCIAFBAWtGBEAgCkGgwgBqENsDCyAKKAKkQiAFaiAiPgIAICBCIIYgIkKAgICAEFQhCyAgUCEDIAVBBGohBSAgQiCIISAgCiABNgKo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ArA4IAFBAWohASAiQiCIhCEiIAMgB3FFDQALIAooAoA0IQELIA4gDygCADYCACAKIAopA6g4NwOgQiAKKAL4MyABRgRAIApB+DNqENwDCyAKKAL8MyABQQxsaiIDIAopA6BCNwIAIANBCGogDigCADYCACAKIAFBAWoiATYCgDQgEikDACEgIAopA/g5ISIgDyAQNgIAIAogIzcDqDggICAihFBFBEBBASEBQQAhBQNAIAooAqg4IAFBAWtGBEAgCkGoOGoQ2wMLIAooAqw4IAVqICI+AgAgIkL/////D1YgIEIAUiAgUCAgQiCGICJCIIiEISIgBUEEaiEFICBCIIghICAKIAE2ArA4IAFBAWohARsNAAsgCigCgDQhAQsgDiAPKAIANgIAIAogCikDqDg3A6BCIAooAvgzIAFGBEAgCkH4M2oQ3AMLIAooAvwzIAFBDGxqIgMgCikDoEI3AgAgA0EIaiAOKAIANgIAIAogAUEBaiIBNgKANCARKQMAISAgCikDiDohIiAPIBA2AgAgCiAjNwOoOCAgICKEUEUEQEEBIQFBACEFA0AgCigCqDggAUEBa0YEQCAKQag4ahDbAwsgCigCrDggBWogIj4CACAiQv////8PViAgQgBSICBQICBCIIYgIkIgiIQhIiAFQQRqIQUgIEIgiCEgIAogATYCsDggAUEBaiEBGw0ACyAKKAKANCEBCyAOIA8oAgA2AgAgCiAKKQOoODcDoEIgCigC+DMgAUYEQCAKQfgzahDcAwsgCigC/DMgAUEMbGoiAyAKKQOgQjcCACADQQhqIA4oAgA2AgAgCiABQQFqIgE2AoA0IBQpAwAhICAKKQOYOiEiIA8gEDYCACAKICM3A6g4ICAgIoRQRQRAQQEhAUEAIQUDQCAKKAKoOCABQQFrRgRAIApBqDhqENsDCyAKKAKsOCAFaiAiPgIAICJC/////w9WICBCAFIgIFAgIEIghiAiQiCIhCEiIAVBBGohBSAgQiCIISAgCiABNgKwOCABQQFqIQEbDQALIAooAoA0IQELIA4gDygCADYCACAKIAopA6g4NwOgQiAKKAL4MyABRgRAIApB+DNqENwDCyAKKAL8MyABQQxsaiIDIAopA6BCNwIAIANBCGogDigCADYCACAKIAFBAWoiATYCgDQgBkFAayIGIB1HDQALCyAKQfA5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ABCjASABCyEBIAMgBEEMbGohDyAEBEAgASgCBEEEayEQIAEoAggiDkECdCEFIAMhCwNAAkACQAJAIAtBCGooAgAiASAORgRAIAtBBGooAgBBBGshEiAFIQEDQCABRQ0CIAEgEmohESABIBBqIAFBBGshASgCACIUIBEoAgAiDEYNAAsgDCAUSQ0DDAILIAEgDk8NAQwCCyABDQELQbnRwgAtAAAaAkACQAJAIAlFBEBBLkEBEIsFIgENAQwQC0ElQQEQiwUiAQ0BDBALIABBLjYCDCAAIAE2AgggAEKBgICA4AU3AgAgAUEmakGil8EAKQAANwAAIAFBIGpBnJfBACkAADcAACABQRhqQZSXwQApAAA3AAAgAUEQakGMl8EAKQAANwAAIAFBCGpBhJfBACkAADcAACABQfyWwQApAAA3AAAgCigC/DEiAARAIAooAoAyIABBAnQQlAULIApByDFqELMEDAELIABBJTYCDCAAIAE2AgggAEKBgICA0AQ3AgAgAUEdakHHl8EAKQAANwAAIAFBGGpBwpfBACkAADcAACABQRBqQbqXwQApAAA3AAAgAUEIakGyl8EAKQAANwAAIAFBqpfBACkAADcAACAKKALoLyIARQ0AIAooAuwvIABBAnQQlAULIBxFDQMgGyAcQQZ0EJQFDAMLIAtBDGoiCyAPRw0ACwsgCkEANgKQOCAKQoCAgIDAADcCiDggCkEANgK4PSAKQoCAgIDAADcCsD0gCkHoOWoiFyAbIB4CfyAERQRAQQAhBUEEDAELIApBgDpqIRFB+JbBACgCACESQfCWwQApAgAhIyADIQsDQCAKQeg5aiALENMCIBEpAwAhICAKQfA5aiIOKQMAISIgCikD+DkhKSAKKQPoOSEoIA4gEjYCACAKICM3A+g5ICIgKIRQRQRAQQEhAUEAIQUDQCAKKALoOSABQQFrRgRAIApB6DlqENsDCyAKKALsOSAFaiAoPgIAICJCIIYgKEKAgICAEFQhFCAiUCEMIAVBBGohBSAiQiCIISIgCiABNgLwOSABQQFqIQEgKEIgiIQhKCAMIBRxRQ0ACwsgCkG4wABqIhAgDigCADYCACAKIAopA+g5NwOwQCAKKAKQOCIFIAooAog4RgRAIApBiDhqENwDCyAKKAKMOCAFQQxsaiIBIAopA7BANwIAIAFBCGogECgCADYCACAKIAVBAWo2ApA4IA4gEjYCACAKICM3A+g5ICAgKYRQRQRAQQEhAUEAIQUDQCAKKALoOSABQQFrRgRAIApB6DlqENsDCyAKKALsOSAFaiApPgIAICBCIIYgKUKAgICAEFQhFCAgUCEMIAVBBGohBSAgQiCIISAgCiABNgLwOSABQQFqIQEgKUIgiIQhKSAMIBRxRQ0ACwsgECAOKAIANgIAIAogCikD6Dk3A7BAIAooArg9IgUgCigCsD1GBEAgCkGwPWoQ3AMLIAooArQ9IAVBDGxqIgEgCikDsEA3AgAgAUEIaiAQKAIANgIAIAogBUEBajYCuD0gC0EMaiILIA9HDQALIAooApA4IQUgCigCjDgLIAUQICAKQdAzaiAKQaA6aiIMKQMANwMAIApByDNqIApBmDpqIgspAwA3AwAgCkHAM2ogCkGQOmoiBSkDADcDACAKQbgzaiAKQYg6aiIBKQMANwMAIApBsDNqIApBgDpqIhopAwA3AwAgCkGoM2ogCkH4OWoiFSkDADcDACAKQaAzaiAKQfA5aiIdKQMANwMAIAogCikD6Dk3A5gzIApByD9qIApB0DpqIhYpAwA3AwAgCkHAP2ogCkHIOmoiEykDADcDACAKQbg/aiAKQcA6aiIPKQMANwMAIApBsD9qIApBuDpqIg4pAwA3AwAgCkGoP2ogCkGwOmoiECkDADcDACAKIAopA6g6NwOgPyAXIBsgHiAKKAK0PSAKKAK4PRAgIApB4DRqIhIgDCkDADcDACAKQdg0aiIRIAspAwA3AwAgCkHQNGoiFCAFKQMANwMAIApByDRqIgwgASkDADcDACAKQcA0aiILIBopAwA3AwAgCkG4NGoiBSAVKQMANwMAIApBsDRqIgEgHSkDADcDACAKIAopA+g5NwOoNCAKQfg/aiAWKQMANwMAIApB8D9qIBMpAwA3AwAgCkHoP2ogDykDADcDACAKQeA/aiAOKQMANwMAIApB2D9qIBApAwA3AwAgCiAKKQOoOjcD0D8gGiALKQMAIiQ3AwAgFSAFKQMAIiM3AwAgHSABKQMAIiE3AwAgCkG4wABqICE3AwAgCkHAwABqICM3AwAgCkHIwABqICQ3AwAgCiAKKQOoNCIhNwPoOSAKQdDAAGogDCkDADcDACAKQdjAAGogFCkDADcDACAKQeDAAGogESkDADcDACAKQejAAGogEikDADcDACAKICE3A7BAIB1B+JbBACgCADYCACAKQfCWwQApAgA3A+g5IBcQ2wMgCigC7DlBATYCACAKKALsOSEFAkACQCAKKALoOSIBQYCAgIB4Rw0AIAUoAggNACAKQQE2AvA5IAogBTYC7DkgCkGAgICAeDYC6DkgCkHQwgBqIBcQ7AMMAQsgCkEBNgLwOSAKIAU2Auw5IAogATYC6DkgCkHQwgBqIApB6DlqQQRBABCjAQsgCkGwOGogCkHYwgBqIg8oAgA2AgAgCiAKKQLQQjcDqDggCkHoOWogCkGwwABqQQEgCkGoOGpBARAgIApB8DVqIApBoDpqKQMANwMAIApB6DVqIApBmDpqKQMANwMAIApB4DVqIApBkDpqKQMANwMAIApB2DVqIApBiDpqIhIpAwA3AwAgCkHQNWogCkGAOmoiESkDADcDACAKQcg1aiAKQfg5aiIUKQMANwMAIApBwDVqIApB8DlqIgwpAwA3AwAgCiAKKQPoOTcDuDUgCkGowABqIApB0DpqKQMANwMAIApBoMAAaiAKQcg6aikDADcDACAKQZjAAGogCkHAOmopAwA3AwAgCkGQwABqIApBuDpqKQMANwMAIApBiMAAaiAKQbA6aikDADcDACAKIAopA6g6NwOAQCAKKAKoOCIBBEAgCigCrDggAUECdBCUBQsgCkHQwgBqQe6YwQBB4JjBACAJG0EYQQ4gCRsQuQEgCkHIwABqIApB6MIAaiILKQMANwMAIApBwMAAaiIFIApB4MIAaiIBKQMANwMAIApBuMAAaiIOIA8pAwA3AwAgCkHYwABqQgA3AwAgCkHgwABqQgA3AwAgCkHowABqQgA3AwAgCkH4wABqQYiXwAApAwA3AwAgCkGAwQBqQZCXwAApAwA3AwAgCkGIwQBqQZiXwAApAwA3AwAgCiAKKQPQQjcDsEAgCkIANwPQQCAKQYCXwAApAwA3A/BAIApBsMAAaiIQEFMgEiAQQeAAEK0FGiARIAspAwA3AwAgFCABKQMANwMAIAwgDykDADcDACAKIAopA9BCNwPoOSAFQn83AwAgCkJ/NwO4QCAKQrDz////////BzcDsEAgCkKhfzcDyEBBwJjBACAQEI8EBEAgDkJ/NwMAIA5BCGpCfzcDACAKQp9zNwOwQCAKQqB/NwPIQAsgCkHAOGogCkHIwABqIgspAwA3AwAgCkG4OGogCkHAwABqIgUpAwA3AwAgCkGwOGogCkG4wABqIgEpAwA3AwAgCiAKKQOwQDcDqDggCkHYHWogBK0iJkKBiIDwt65/QgAQ/AMgCkGYHWpCACAKKQPYHSIjfUKRgICAgICAgAhCABD8AyAKQcgdaiAmQv//v5gTQgAQ/AMgCkGIHWpCACAKQeAdaikDACIhIAopA8gdfCIlICNCAFKtfCIjfUKRgICAgICAgAhCABD8AyAKQbgdaiAmQoCAvntCABD8AyAKQfgcakIAICNCAFKtIiQgIyAlVK0gCkHQHWopAwAgISAlVq18fHwiIyAKKQO4HYQiIX1CkYCAgICAgIAIQgAQ/AMgCkGoHWogJkKQkILwtZX1/wdCABD8AyAKQegcakIAICFCAFKtIiUgCkHAHWopAwAgIyAkVK2EIiQgCikDmB18IiN8IicgCikDqB18IiZ9QpGAgICAgICACEIAEPwDIAogJkIAUq0iISAKQbAdaikDACAmICdUrXwiIiAlICdWrSIpICMgJFStIiAgCikDiB0iKCAKQaAdaikDAHwiJ3wiJnwiJXwiI3wiKjcDyEAgCiAhICpWrSIkIAopA/gcIiEgCkGQHWopAwAgJyAoVK18fCIoICAgJlatfCInICUgKVStfCImICIgI1atfCIjfCIgNwPAQCAKICYgJ1StICcgKFStIApBgB1qKQMAICEgKFatfHx8IiEgCikD6Bx8IiUgIyAmVK18IiMgICAkVK18IiQ3A7hAIAogIyAkVq0gIyAlVK0gCkHwHGopAwAgISAlVq18fHwiIzcDsEBBwJjBACAKQbDAAGoQjwQEQCAKICpCAX03A8hAIAogICAqUK0iIX03A8BAIAogJCAgICFUrSIhfTcDuEAgCiAjICEgJFatfUKRgICAgICAgAh9NwOwQAsgCkHowgBqIAspAwA3AwAgCkHgwgBqIAUpAwA3AwAgCkHYwgBqIAEpAwA3AwAgCiAKKQOwQDcD0EIgGyAeQQZ0aiEdIApB6DlqIApBqDhqIApB0MIAahDqAiAeBEAgGyEBA0AgCkGwwABqIgsgARCAAiAKQeg5aiIFIAsQ2wEgCyABQSBqEIACIAUgCxDbASABQUBrIgEgHUcNAAsLIApB0MIAaiILAn8CQAJAAkAgCUUEQCAKQbDAAGoiASAKQZgzahCAAiAKQeg5aiIFIAEQ2wEgASAKQbgzahCAAiAFIAEQ2wEgASAKQag0ahCAAiAFIAEQ2wEgASAKQcg0ahCAAiAFIAEQ2wEgASAKQbg1ahCAAiAFIAEQ2wEgASAKQdg1ahCAAiAFIAEQ2wEgASAFIAMgBBCxAiABIAVBgAEQrQUaIApBoD5qIApB8MAAahDdBCAKQcgbaiAKKQO4PiIsIAopA7A+IitCABD8AyAKQdgbaiAsIAopA6g+Ii1CABD8AyAKQegbaiAsIAopA6A+IipCABD8AyAKQYgcaiArIC1CABD8AyAKQZgcaiArICpCABD8AyAKQbgcaiAtICpCABD8AyAKQgA3A4A6IAogCikDyBs3A/g5IAogCkHQG2opAwAiIyAKKQPYG3wiITcD8DkgCiAKQeAbaikDACAhICNUrXwiISAKKQPoG3wiKCAKKQOIHHwiIjcD6DkgCyIBIAUQuQIgCikD0EIhKSAKKQPYQiEgIAopA+BCISYgCikD6EIhJSAKQgA3A+g5IApBoBxqKQMAISQgCiAKQfAbaikDACAhIChWrXwiIyAKKQOYHHwiJyAKQZAcaikDACAiIChUrXx8IiE3A4A6IAogISAnVK0gJCAjICdWrXx8IiMgCikDuBx8IiE3A/g5IAogCkHAHGopAwAgISAjVK18NwPwOSABIAUQuQIgCkH4G2ogLCAsQgAQ/AMgCkGoHGogKyArQgAQ/AMgCkHIHGogLSAtQgAQ/AMgCkHYHGogKiAqQgAQ/AMgCikD0EIhKCAKKQPYQiEnIAopA+BCISMgCiApIApBsBxqKQMAICAgCikDqBwiIXwiJCAhVK18ICQgJiAKQYAcaikDACAlIAopA/gbIiF8IiogIVStfCIhfCIgICFUrXwiJiAkVK18IiF8IiUgIVStIiEgCikDyBx8IiQgCikD6EIgIkI/iIR8IiI3A4A6IAogIyAiICRUrSAKQdAcaikDACAhICRWrXx8IiR8IiE3A/g5IAogJyAKKQPYHCIjfCInICEgJFStfCIhNwPwOSAKICggISAnVK0gCkHgHGopAwAgIyAnVq18fHw3A+g5IApBuBtqICpCgYCAgHBCABD8A0EAIQVBACEBIApBwBtqKQMAICAgKkIghnwiJyAgVK0gKkIgiHwiISAmfCIkICFUrSIhIAopA7gbfCIjICFUrXwgIyAjICV8IiVWrXwiI1ANAyAKICMgCikDgDp8IiE3A4A6ICEgI1QiAQ0BDAILIApBsMAAaiIFIApBmDNqEIACIApB6DlqIgEgBRDbASAFIApBuDNqEIACIAEgBRDbASAFIAEgAyAEEJADIAUgAUGAARCtBRogCkGgP2oMAwsgCiABrSIjIAopA/g5fCIhNwP4OSAhICNUIQEgISAjWg0AIAogAa0iIyAKKQPwOXwiITcD8DkgISAjVCEBICEgI1oNACAKIAGtIiMgCikD6Dl8IiE3A+g5ICEgI1QhAQsgCikDgDohIgsgCkGoG2ogJ0KBgICAcEIAEPwDIAogJSAlICQgJCAnQiCGfCImVq0gJ0IgiHx8IiRWrSIhIAopA6gbfCIjICJ8IiI3A4A6ICIgI1StIApBsBtqKQMAICEgI1atfHwiI1BFBEAgCiAjIAopA/g5fCIhNwP4OQJ/ICEgI1QiAyAhICNaDQAaIAogA60iIyAKKQPwOXwiITcD8DkgISAjVCIDICEgI1oNABogCiADrSIjIAopA+g5fCIhNwPoOSAhICNUCyEFIAopA4A6ISILIApBmBtqICZCgYCAgHBCABD8A0EAIQwgCikD8DkhKAJ/QQAgCkGgG2opAwAgJCAmQiCGfCInICRUrSAmQiCIfCIhICJ8IiQgIVStIiEgCikDmBt8IiMgIVStfCAjICMgCikD+Dl8IiNWrXwiIVANABpBACAhICEgKHwiKFgNABogCiAKKQPoOUIBfCIhNwPoOSAhUAshAyAKICQgJ0IghnwiJjcDgDogCiAjICQgJlatICdCIIh8fCIlNwP4OSAKQYgbaiAnQoGAgIBwQgAQ/AMgCiAjICVWrSIhIAopA4gbfCIjICh8IiQ3A/A5ICMgJFatIApBkBtqKQMAICEgI1atfHwiIFBFBEAgCiAgIAopA+g5fCIhNwPoOSAgICFWIgytISALAkAgASAFciADciAMciAgQgBSckUEQEHglMEAIApB6DlqEI8ERQ0BCyAKICZCAXw3A4A6IAogJUL/////D30iIyAmQn9SrSIhfTcD+DkgCiAkICVC/////w9UICEgI1ZyrSIhfTcD8DkgCiAKKQPoOUL+////D0L/////DyAhICRWG3w3A+g5CyAKQdg+aiAKQYA6aiIFKQMAIiU3AwAgCkHQPmogCkH4OWoiAykDACIkNwMAIApByD5qIApB8DlqIgEpAwAiIzcDACAKIAopA+g5IiE3A8A+IApB6MIAaiAlNwMAIApB4MIAaiAkNwMAIApB2MIAaiAjNwMAIAogITcD0EIgBSAKQbg+aikDADcDACADIApBsD5qKQMANwMAIAEgCkGoPmopAwA3AwAgCiAKKQOgPjcD6DkgCkGINWoiASAKQdDCAGoiBSAKQeg5aiILELABIAUgCkGgP2ogCkGgPmoQugIgCyAKQdA/aiAKQcA+ahC6AiAKQag4aiIDIAUgCxDsBCALIApBgEBrIAEQugIgCkHwwQBqIgEgAyALEOwEIAELIg8gBCAJQQFzIg4QtwEgCkEENgKEQ0EAIQEDQAJAIAogAUEBajYCgEMgCkHQwgBqIAFBDGxqIgEoAgAiDEGAgICAeEYNACABKQIEIiGnIQMgIUIgiKciAQRAIAFBBXQhBSADIQEDQCAKQeg5aiILIAEQgAIgAUEgaiEBIApBsMAAaiALENsBIAVBIGsiBQ0ACwsgDARAIAMgDEEFdBCUBQsgCigCgEMiASAKKAKEQ0cNAQsLIApB0MIAaiILEKEEIApBoDZqIgUgCkHYwABqKQMANwMAIApBqDZqIgMgCkHgwABqKQMANwMAIApBsDZqIgEgCkHowABqKQMANwMAIAogCikD0EA3A5g2IApB6DlqEMICIApBwDdqIApBgDpqKQMANwMAIApBuDdqIApB+DlqKQMANwMAIApBsDdqIApB8DlqKQMANwMAIAogCikD6Dk3A6g3IApB8DdqIApBoDpqKQMANwMAIApB6DdqIApBmDpqKQMANwMAIApB4DdqIApBkDpqKQMANwMAIAogCikDiDo3A9g3IAopA8A7ITUgCikDuDshNiAKKQOwOyE3IAopA6g7ITQgCkGgOWoiEiABKQMANwMAIApBmDlqIhEgAykDADcDACAKQZA5aiIUIAUpAwA3AwAgCiAKKQOYNjcDiDkgCyAKQYg5ahDdBCAKQbg5aiIBIApBqDdqIApB2DdqIAsQcSAKQQA2AoA0IApCgICAgIABNwL4MyABEMgDQf8BcUECRwRAIApBmMMAaiEMQgAhIANAIApBuBlqIAopA9A5IiwgNUIAEPwDIApB+BlqIAopA8g5IisgNUIAEPwDIApBuBpqIAopA8A5IiggNUIAEPwDIApB+BpqIAopA7g5IicgNUIAEPwDIApBqBlqIAopA7gZIiVCgYCAgHBCABD8AyAKQZgZaiAsIDZCABD8AyAKQegZaiArIDZCABD8AyAKQagaaiAoIDZCABD8AyAKQegaaiAnIDZCABD8AyAKQYgZaiAKQcAZaikDACIhIAopA/gZfCIjICVCIIZ8IiQgCikDmBl8IjFCgYCAgHBCABD8AyAKQfgYaiAsIDdCABD8AyAKQdgZaiArIDdCABD8AyAKQZgaaiAoIDdCABD8AyAKQdgaaiAnIDdCABD8AyAKQegYaiAjICRWrSAlQiCIfCImIApBgBpqKQMAICEgI1atfCIjIAopA7gafCIhfCItIAopA+gZfCIqIApBoBlqKQMAICQgMVatfHwiIiAxQiCGfCIpIAopA/gYfCIuQoGAgIBwQgAQ/AMgCkHYGGogLCA0QgAQ/AMgCkHIGWogKyA0QgAQ/AMgCkGIGmogKCA0QgAQ/AMgCkHIGmogJyA0QgAQ/AMgCkHIGGogCkGAGWopAwAgKSAuVq18IiUgCikD2Bl8IiggCkHAGmopAwAgISAjVK18IiQgCikD+Bp8Ii8gCikDqBl8IicgJiAtVq18IjAgCikDqBp8IiwgIiAqVK0gCkHwGWopAwAgKiAtVK18fHwiKyAiIClWrSAxQiCIfHwiI3wiLSAuQiCGfCIqIAopA9gYfCIyQoGAgIBwQgAQ/AMCQAJAIApB0BhqKQMAIApB0BlqKQMAIApB4BhqKQMAICogMlatfCIhIAopA8gZfCIpICFUrXwgKSAoIC1WrSAKQeAZaikDACAlIChWrXx8IiIgCikDmBp8IjMgIyArVK0iJiAKKQOIGXwiKCAnIDBWrSAKQbAZaikDACAnIC9UrXx8IiUgCkGAG2opAwAgJCAvVq18fCIvIAopA+gafCInICsgLFStIApBsBpqKQMAICwgMFStfHx8IiR8IiN8IiwgKiAtVK0gLkIgiHx8IiF8IisgKVStfCItIAopA4gafCIxICEgLFStIikgCikD6Bh8Ii4gIyAoVK0gCkGQGWopAwAgJiAoVq18fCIqICQgJ1StIApB8BpqKQMAICcgL1StfHwiKCAlIC9WrXwiJ3wiMCAKKQPYGnwiLyAsIDNUrSAKQaAaaikDACAiIDNWrXx8fCIlfCIjfCIsICsgKyAyQiCGfCImVq0gMkIgiHx8IiQgLFStIiEgCikDyBh8IisgIVStfCArICMgLlStIApB8BhqKQMAICkgLlatfHwiIiAlIC9UrSAKQeAaaikDACAvIDBUrXx8IikgKiAwVq0gJyAoVK18fCIofCIqIAopA8gafCIjICwgMVStIApBkBpqKQMAIC0gMVatfHx8IiF8IiUgK1StfCInICEgI1StIApB0BpqKQMAICMgKlStfHwiIyAiICpWrSAoIClUrXx8IiF8IiJCgYCAgHBWICIgJ1StQgAgISAjVK19UnINACAiQoGAgIBwUgRAICUhISAkISMMAgsgJUIAUiAkQv////8PVnINAEIAISEgJEL/////D1QEQEKBgICAcCEiICQhIwwCC0L/////DyEjICZCf1ENAEKBgICAcCEiDAELICRC/////w99IicgJkJ/Uq0iIX0hIyAlICRC/////w9UICEgJ1ZyrSIkfSEhICIgJCAlVq19Qv////8PfCEiICZCAXwhJgsgCiAmNwOYPSAKICM3A5A9IAogITcDiD0gCiAiNwOAPSAKQdDCAGogCkGAPWoQtgIgCigCgDQiCyAKKAL4M0YEQCAKQfgzahDZAwsgCigC/DMgC0EFdGoiASAKKQPQQjcDACABQQhqIApB2MIAaiIFKQMANwMAIAFBEGogCkHgwgBqIgMpAwA3AwAgAUEYaiAKQejCAGoiASkDADcDACAKIAtBAWo2AoA0IApBuBhqICBCgYiA8Leuf0IAEPwDIApBqBhqQgAgCikDuBgiI31CkYCAgICAgIAIQgAQ/AMgCkGYGGogIEL//7+YE0IAEPwDIApBiBhqQgAgCkHAGGopAwAiISAKKQOYGHwiJCAjQgBSrXwiI31CkYCAgICAgIAIQgAQ/AMgCkH4F2ogIEKAgL57QgAQ/AMgCkHoF2pCACAjICRUrSAKQaAYaikDACAhICRWrXx8IiEgCikD+Bd8IiQgI0IAUq18IiN9QpGAgICAgICACEIAEPwDIApB2BdqICBCkJCC8LWV9f8HQgAQ/AMgCkHIF2pCACAjQgBSrSInICMgJFStIApBgBhqKQMAICEgJFatfHwiJiAKKQOoGHwiJXwiIiAKKQPYF3wiKX1CkYCAgICAgIAIQgAQ/AMCfiAKQdAXaikDACAKQfAXaikDACAKKQPoFyIkIApBkBhqKQMAIAopA4gYIiMgCkGwGGopAwB8IiEgI1StfHwiKCAkVK18ICggKCAlICZUrSIjICF8IiEgI1StfCIkVq18ICQgJCAhICIgJ1StIiF8IiMgIVStfCIlVq18IiEgCikDyBd8IiQgIVStfCAkICQgJSAlIApB4BdqKQMAICIgKVatfCIhICN8IiMgIVStfCIhVq18IiRWrXwgJCAhIClCAFKtIiEgI3wiJyAhVK0iIXwiJiAhVK18IiUgJFStfCIiQpGAgICAgICACFQEQCAlISQgJiEhICcMAQsgJiAnhCAlhFAEQEIAISRCkYCAgICAgIAIISJCACEhQgAMAQsgJiAnUK0iJH0hISAlICQgJlatIiZ9ISQgIiAlICZUrX1CkYCAgICAgIAIfSEiICdCAX0LISMgDEJ/NwMAIAxBCGpCfzcDACAFIBQpAwA3AwAgAyARKQMANwMAIAEgEikDADcDACAKQtD3////////BzcDkEMgCkJBNwOoQyAKIAopA4g5NwPQQiAKICM3A4hDIAogITcDgEMgCiAkNwP4QiAKICI3A/BCIApB0MIAahBTIBIgASkDADcDACARIAMpAwA3AwAgFCAFKQMANwMAIAogCikD0EI3A4g5IApBqDhqIgMgCkGIOWoQjwMgCkGgwgBqIgEgA0EgELQBIAMgCkGoN2ogCkHYN2ogARBxIApB0DlqIApBwDhqKQMANwMAIApByDlqIApBuDhqKQMANwMAIApBwDlqIApBsDhqKQMANwMAIAogCikDqDg3A7g5ICBCAXwhICAKQbg5ahDIA0H/AXFBAkcNAAsLIApBoMIAaiAKQbg5ahC2AiAKQdDCAGogCkGIOWoQ3QQgCkGwOGogCkHYwgBqKQMANwMAIApBuDhqIApB4MIAaikDADcDACAKQcA4aiAKQejCAGopAwA3AwAgCkHIOGoiAyAKKQOgQjcDACAKQdA4aiAKQajCAGopAwA3AwAgCkHYOGogCkGwwgBqKQMANwMAIApB4DhqIApBuMIAaikDADcDACAKIAopA9BCNwOoOCAKKAL4MyEaIAooAvwzIRQgCigCgDQhFyAKKAL8OyIBBEAgCigCgDwgAUECdBCUBQsgCkHIO2oQswQgCkGIwwBqIApB4DhqKQMANwMAIApBgMMAaiAKQdg4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aiIWIA82AgAgCiAmNwOAPSAgICKEUEUEQEEBIQFBACEFA0AgCigCgD0gAUEBa0YEQCAKQYA9ahDbAwsgCigChD0gBWogIj4CACAgQiCGICJCgICAgBBUIQYgIFAhAyAFQQRqIQUgIEIgiCEgIAogATYCiD0gAUEBaiEBICJCIIiEISIgAyAGcUUNAAsLIApBwDlqIhMgFigCADYCACAKIAopA4A9NwO4OSAKKAKANCIDIAooAvgzRgRAIApB+DNqENwDCyAKKAL8MyADQQxsaiIBIAopA7g5NwIAIAFBCGogEygCADYCACAKIANBAWoiATYCgDQgCkGAOmopAwAhICAKKQP4OSEiIBYgDzYCACAKICY3A4A9ICAgIoRQRQRAQQEhAUEAIQUDQCAKKAKAPSABQQFrRgRAIApBgD1qENsDCyAKKAKEPSAFaiAiPgIAICJC/////w9WICBCAFIgIFAgIEIghiAiQiCIhCEiIAVBBGohBSAgQiCIISAgCiABNgKIPSABQQFqIQEbDQALIAooAoA0IQELIBMgFigCADYCACAKIAopA4A9NwO4OSAKKAL4MyABRgRAIApB+DNqENwDCyAKKAL8MyABQQxsaiIDIAopA7g5NwIAIANBCGogEygCADYCACAKIAFBAWoiATYCgDQgEikDACEgIAopA4g6ISIgFiAPNgIAIAogJjcDgD0gICAihFBFBEBBASEBQQAhBQNAIAooAoA9IAFBAWtGBEAgCkGAPWoQ2wMLIAooAoQ9IAVqICI+AgAgIkL/////D1YgIEIAUiAgUCAgQiCGICJCIIiEISIgBUEEaiEFICBCIIghICAKIAE2Aog9IAFBAWohARsNAAsgCigCgDQhAQsgEyAWKAIANgIAIAogCikDgD03A7g5IAooAvgzIAFGBEAgCkH4M2oQ3AMLIAooAvwzIAFBDGxqIgMgCikDuDk3AgAgA0EIaiATKAIANgIAIAogAUEBaiIBNgKANCARKQMAISAgCikDmDohIiAWIA82AgAgCiAmNwOAPSAgICKEUEUEQEEBIQFBACEFA0AgCigCgD0gAUEBa0YEQCAKQYA9ahDbAwsgCigChD0gBWogIj4CACAiQv////8PViAgQgBSICBQICBCIIYgIkIgiIQhIiAFQQRqIQUgIEIgiCEgIAogATYCiD0gAUEBaiEBGw0A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QiCIhCEiIAVBBGohBSAgQiCIISAgCiABNgKwOCABQQFqIQEbDQALIAooAoA0IQELIA4gDygCADYCACAKIAopA6g4NwOgQiAKKAL4MyABRgRAIApB+DNqENwDCyAKKAL8MyABQQxsaiIDIAopA6BCNwIAIANBCGogDigCADYCACAKIAFBAWoiATYCgDQgESkDACEgIAopA4g6ISIgDyAQNgIAIAogIzcDqDggICAihFBFBEBBASEBQQAhBQNAIAooAqg4IAFBAWtGBEAgCkGoOGoQ2wMLIAooAqw4IAVqICI+AgAgIkL/////D1YgIEIAUiAgUCAgQiCGICJCIIiEISIgBUEEaiEFICBCIIghICAKIAE2ArA4IAFBAWohARsNAAsgCigCgDQhAQsgDiAPKAIANgIAIAogCikDqDg3A6BCIAooAvgzIAFGBEAgCkH4M2oQ3AMLIAooAvwzIAFBDGxqIgMgCikDoEI3AgAgA0EIaiAOKAIANgIAIAogAUEBaiIBNgKANCAUKQMAISAgCikDmDohIiAPIBA2AgAgCiAjNwOoOCAgICKEUEUEQEEBIQFBACEFA0AgCigCqDggAUEBa0YEQCAKQag4ahDbAwsgCigCrDggBWogIj4CACAiQv////8PViAgQgBSICBQICBCIIYgIkIgiIQhIiAFQQRqIQUgIEIgiCEgIAogATYCsDggAUEBaiEBGw0ACyAKKAKANCEBCyAOIA8oAgA2AgAgCiAKKQOoODcDoEIgCigC+DMgAUYEQCAKQfgzahDcAwsgCigC/DMgAUEMbGoiAyAKKQOgQjcCACADQQhqIA4oAgA2AgAgCiABQQFqIgE2AoA0IAZBQGsiBiAdRw0ACwsgCkHwOWpB+JbBACgCADYCACAKQfCWwQApAgA3A+g5IAQEQCAKQeg5ahDbAyAKKALsOSAENgIAIApBATYC8DkgCigCgDQhAQsgCkGwOGoiBSAKQfA5aigCADYCACAKIAopA+g5NwOoOCAKKAL4MyABRgRAIApB+DNqENwDCyAKKAL8MyABQQxsaiIDIAopA6g4NwIAIANBCGogBSgCADYCACAKIAFBAWo2AoA0AkAgBARAQQQhDEEAIQUDQCAFIAooApA4IgFPDREgCigCjDggDGoiAygCACEBQQQhBgJAIANBBGooAgAiB0UEQEEAIQsMAQsg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+DlqKQMANwMAIAVBCGogCkHwOWopAwA3AwAgBSAKKQPoOTcDACAFQSBqIQUgAUEMaiEBIAxBAWsiDA0ACwsgCkGAgICAeDYCsEAgCkECNgLwOSAKIAI2Auw5IAogHzYC6DkgCiAKQbDAAGo2AvQ5IApB6C9qIR0jAEHwAWsiDSQAIA1BoAFqIApB6DlqIhUgFSgCDBDRAgJAAkACQCANKQOgASIhQgJSBEAgDUGYAWoiESANQeABaikDADcDACANQZABaiIUIA1B2AFqKQMANwMAIA1BiAFqIhsgDUHQAWopAwA3AwAgDUGAAWoiDCANQcgBaikDADcDACANQfgAaiILIA1BwAFqKQMANwMAIA1B8ABqIgUgDUG4AWopAwA3AwAgDUHoAGoiASANQbABaikDADcDACANIA0pA6gBNwNgICFCAFINAQsgHUEANgIIIB1CgICAgIABNwIADAELIA1B2ABqIBEpAwA3AwAgDUHQAGogFCkDADcDACANQcgAaiAbKQMANwMAIA1BQGsgDCkDADcDACANQThqIAspAwA3AwAgDUEwaiAFKQMANwMAIA1BKGogASkDADcDACANIA0pA2A3AyACQCAVKAIMKAIAQYCAgIB4Rw0AIBUoAgRFDQAgFSgCCEUNFAtBudHCAC0AABpBgAJBCBCLBSIcRQ0UIBwgDSkDIDcDACAcQThqIA1B2ABqIhYpAwA3AwAgHEEwaiANQdAAaiITKQMANwMAIBxBKGogDUHIAGoiDykDADcDACAcQSBqIA1BQGsiDikDADcDACAcQRhqIA1BOGoiECkDADcDACAcQRBqIA1BMGoiEikDADcDACAcQQhqIA1BKGopAwA3AwAgDUEBNgIMIA0gHDYCCCANQQQ2AgQgDUEYaiAVQQhqKQIANwMAIA0gFSkCADcDECANQaABaiANQRBqIA0oAhwQ0QICQCANKQOgASIhQgJRDQAgDUGoAWohF0HAACEVQQEhGgNAIA1BmAFqIhEgF0E4aikDADcDACANQZABaiIUIBdBMGopAwA3AwAgDUGIAWoiGyAXQShqKQMANwMAIA1BgAFqIgwgF0EgaikDADcDACANQfgAaiILIBdBGGopAwA3AwAgDUHwAGoiASAXQRBqKQMANwMAIA1B6ABqIgUgF0EIaikDADcDACANIBcpAwA3A2AgIVANASAW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akEBIApBqDhqQQEQHCAKQfA1aiAKQaA6aikDADcDACAKQeg1aiAKQZg6aikDADcDACAKQeA1aiAKQZA6aikDADcDACAKQdg1aiAKQYg6aiISKQMANwMAIApB0DVqIApBgDpqIhEpAwA3AwAgCkHINWogCkH4OWoiFCkDADcDACAKQcA1aiAKQfA5aiIMKQMANwMAIAogCikD6Dk3A7g1IApBqMAAaiAKQdA6aikDADcDACAKQaDAAGogCkHIOmopAwA3AwAgCkGYwABqIApBwDpqKQMANwMAIApBkMAAaiAKQbg6aikDADcDACAKQYjAAGogCkGwOmopAwA3AwAgCiAKKQOoOjcDgEAgCigCqDgiAQRAIAooAqw4IAFBAnQQlAULIApB0MIAakHumMEAQeCYwQAgCRtBGEEOIAkbELkBIApByMAAaiAKQejCAGoiCykDADcDACAKQcDAAGoiBSAKQeDCAGoiASkDADcDACAKQbjAAGoiDiAPKQMANwMAIApB2MAAakIANwMAIApB4MAAakIANwMAIApB6MAAakIANwMAIApB+MAAakGIl8AAKQMANwMAIApBgMEAakGQl8AAKQMANwMAIApBiMEAakGYl8AAKQMANwMAIAogCikD0EI3A7BAIApCADcD0EAgCkGAl8AAKQMANwPwQCAKQbDAAGoiEBBTIBIgEEHgABCtBRogESALKQMANwMAIBQgASkDADcDACAMIA8pAwA3AwAgCiAKKQPQQjcD6DkgBUJ/NwMAIApCfzcDuEAgCkLQ9////////wc3A7BAIApCQTcDyEBBwJjBACAQEI8EBEAgDkJ/NwMAIA5BCGpCfzcDACAKQr93NwOwQCAKQkA3A8hACyAKQcA4aiAKQcjAAGoiCykDADcDACAKQbg4aiAKQcDAAGoiBSkDADcDACAKQbA4aiAKQbjAAGoiASkDADcDACAKIAopA7BANwOoOCAKQbgXaiAErSImQoGIgPC3rn9CABD8AyAKQfgWakIAIAopA7gXIiN9QpGAgICAgICACEIAEPwDIApBqBdqICZC//+/mBNCABD8AyAKQegWakIAIApBwBdqKQMAIiEgCikDqBd8IiUgI0IAUq18IiN9QpGAgICAgICACEIAEPwDIApBmBdqICZCgIC+e0IAEPwDIApB2BZqQgAgI0IAUq0iJCAjICVU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CikDyBN8IicgLCAvVK0gCkGQE2opAwAgJSAvVq18fHwiMXwiKiArIC1WrSAKQfARaikDACIlICsgLFStfHx8IiN8Ii4gCikDyBEiK3wiLSAKQeARaikDACAiIAopA9gRIiF8ICFUrXx8IjAgCikDqBJ8Ii9CseqUkd2jgpxYfiIhQq/4//9vQgAQ/AMgCkGoEWogIUJ/QgAQ/AMCQAJAAkAgCkGwEWopAwAiLCAKQdARaikDACIiICsgJSA0ICggM1atIDcgKCApVK18fCIhIApBoBRqKQMAICQgKVatfHwiKSAKKQOIFHwiKCAnIDFWrSAKQdATaikDACAnIDNUrXx8fCInfCIkICdUrXwgJCAkICMgKlStICUgKiAxVK18fHwiI1atfCIlICcgKFStIApBkBRqKQMAICggKVStfHwiJCAhIClWrXwiIXwiKiAKKQP4E3wiKSAKQcATaikDACAjICMgCikDuBN8IiNWrXwgIyAuIDJUrSAKQYATaikDACAmIDJWrXx8fCIoICNUrXx8Iid8IiYgJ1StfCAmICIgKCAoICt8IiNWrXwgIyAjIC0gMFatICIgLSAuVK18fHwiI1atfHwiKCAmVK18IiIgJyApVK0gCkGAFGopAwAgKSAqVK18fCIpICUgKlatICEgJFStfHwiJ3wiKyAKKQPoE3wiLSAKQbATaikDACAoICggCikDqBN8IiZWrXwgJiAmIApB8BJqKQMAIApBsBJqKQMAIC8gMFStfCIhIAopA+gSfCIkICFUrXwgJCAjICR8IiVWrXx8IiNWrXx8IiogCikDqBEiIXwiKCAqVK18ICggKCAsICMgISAjfCIkVq18ICQgJCAsICUgISAlfCIjVq18ICMgCkHAEWopAwAgCikDuBEiISAvfCAhVK18fCImICNUrXx8IiRWrXx8IiVWrXwiKCAqIC1UrSAKQfATaikDACArIC1WrXx8IiMgIiArVq0gJyApVK18fCIhfCInIChUrUIAICEgI1StfVINACAnQn9SDQEgJUJ/UgRAQn8hJwwCC0J/ISMgJEJ/UgRAQn8hJyAkISEMAwsgJkKv+P//b1oNAEJ/ISdCfyEhDAILICRCAXwiKSAmQq/4//9vVK0iI30hISAlQgF8IiggJEJ/UiAjIClWcq0iJH0hIyAnICVCf1IgJCAoVnKtfUIBfCEnICZC0YeAgBB8ISYMAQsgJSEjICQhIQsgCiAmNwOYPSAKICE3A5A9IAogIzcDiD0gCiAnNwOAPSAKQdDCAGogCkGAPWoQtwIgCigCgDQiCyAKKAL4M0YEQCAKQfgzahDZAwsgCigC/DMgC0EFdGoiASAKKQPQQjcDACABQQhqIApB2MIAaiIFKQMANwMAIAFBEGogCkHgwgBqIgMpAwA3AwAgAUEYaiAKQejCAGoiASkDADcDACAKIAtBAWo2AoA0IApBmBFqICBCgYiA8Leuf0IAEPwDIApBiBFqQgAgCikDmBEiI31CkYCAgICAgIAIQgAQ/AMgCkH4EGogIEL//7+YE0IAEPwDIApB6BBqQgAgCkGgEWopAwAiISAKKQP4EHwiJCAjQgBSrXwiI31CkYCAgICAgIAIQgAQ/AMgCkHYEGogIEKAgL57QgAQ/AMgCkHIEGpCACAjICRUrSAKQYARaikDACAhICRWrXx8IiEgCikD2BB8IiQgI0IAUq18IiN9QpGAgICAgICACEIAEPwDIApBuBBqICBCkJCC8LWV9f8HQgAQ/AMgCkGoEGpCACAjQgBSrSInICMgJFStIApB4BBqKQMAICEgJFatfHwiJiAKKQOIEXwiJXwiIiAKKQO4EHwiKX1CkYCAgICAgIAIQgAQ/AMCfiAKQbAQaikDACAKQdAQaikDACAKKQPIECIkIApB8BBqKQMAIAopA+gQIiMgCkGQEWopAwB8IiEgI1StfHwiKCAkVK18ICggKCAlICZUrSIjICF8IiEgI1StfCIkVq18ICQgJCAhICIgJ1StIiF8IiMgIVStfCIlVq18IiEgCikDqBB8IiQgIVStfCAkICQgJSAlIApBwBBqKQMAICIgKVatfCIhICN8IiMgIVStfCIhVq18IiRWrXwgJCAhIClCAFKtIiEgI3wiKCAhVK0iIXwiJiAhVK18IiUgJFStfCInQpGAgICAgICACFQEQCAlISQgJiEhICgMAQsgJiAohCAlhFAEQEIAISRCkYCAgICAgIAIISdCACEhQgAMAQsgJiAoUK0iJH0hISAlICQgJlatIiZ9ISQgJyAlICZUrX1CkYCAgICAgIAIfSEnIChCAX0LISMgDEJ/NwMAIAxBCGpCfzcDACAFIBQpAwA3AwAgAyARKQMANwMAIAEgEikDADcDACAKQtD3////////BzcDkEMgCkJBNwOoQyAKIAopA4g5NwPQQiAKICM3A4hDIAogITcDgEMgCiAkNwP4QiAKICc3A/BCIApB0MIAahBTIBIgASkDADcDACARIAMpAwA3AwAgFCAFKQMANwMAIAogCikD0EI3A4g5IApBqDhqIgMgCkGIOWoQjwMgCkGgwgBqIgEgA0EgEKcBIAMgCkGoN2ogCkHYN2ogARBmIApB0DlqIApBwDhqKQMANwMAIApByDlqIApBuDhqKQMANwMAIApBwDlqIApBsDhqKQMANwMAIAogCikDqDg3A7g5ICBCAXwhICAKQbg5ahDAA0H/AXFBAkcNAAsLIApBoMIAaiAKQbg5ahC3AiAKQdDCAGogCkGIOWoQ4QQgCkGwOGogCkHYwgBqKQMANwMAIApBuDhqIApB4MIAaikDADcDACAKQcA4aiAKQejCAGopAwA3AwAgCkHIOGoiAyAKKQOgQjcDACAKQdA4aiAKQajCAGopAwA3AwAgCkHYOGogCkGwwgBqKQMANwMAIApB4DhqIApBuMIAaikDADcDACAKIAopA9BCNwOoOCAKKAL4MyEaIAooAvwzIRQgCigCgDQhFyAKKAL8OyIBBEAgCigCgDwgAUECdBCUBQsgCkHIO2oQswQgCkGIwwBqIApB4DhqKQMANwMAIApBgMMAaiAKQdg4aikDADcDACAKQfjCAGogCkHQOGopAwA3AwAgCkHwwgBqIAMpAwA3AwAgCkHowgBqIApBwDhqKQMANwMAIApB4MIAaiAKQbg4aikDADcDACAKQdjCAGogCkGwOGopAwA3AwAgCiAKKQOoODcD0EIgCkEANgKANCAKQoCAgIDAADcC+DNBACEBIAgEQCAKQfgzahDcAyAKKAL8MyIBQfCWwQApAgA3AgAgAUEIakH4lsEAKAIANgIAIApBATYCgDRBASEBCyAKQfA5akH4lsEAKAIANgIAIApB8JbBACkCADcD6DkgBkUEQCAKQeg5ahDbAyAKKALsOUEBNgIAIApBATYC8DkgCigCgDQhAQsgCkGwOGoiBSAKQfA5aigCADYCACAKIAopA+g5NwOoOCAKKAL4MyABRgRAIApB+DNqENwDCyAKKAL8MyABQQxsaiIDIAopA6g4NwIAIANBCGogBSgCADYCACAKIAFBAWoiATYCgDQCQCAGRQ0AIApB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QCAKQYg5ahDbAwsgCigCjDkgBWogIj4CACAgQiCGICJCgICAgBBUIQwgIFAhBiAFQQRqIQUgIEIgiCEgIAogATYCkDkgAUEBaiEBICJCIIiEISIgBiAMcUUNAAsLIApB4DdqIhUgDSgCADYCACAKIAopA4g5NwPYNyAKKAKANCIFIAooAvgzRgRAIApB+DNqENwDCyAKKAL8MyAFQQxsaiIBIAopA9g3NwIAIAFBCGogFSgCADYCACAKIAVBAWoiATYCgDQgCkGAOmopAwAhICAKKQP4OSEiIA0gFjYCACAKICY3A4g5ICAgIoRQRQRAQQEhAUEAIQUDQCAKKAKIOSABQQFrRgRAIApBiDlqENsDCyAKKAKMOSAFaiAiPgIAICJC/////w9WICBCAFIgIFAgIEIghiAiQiCIhCEiIAVBBGohBSAgQiCIISAgCiABNgKQOSABQQFqIQEbDQALIAooAoA0IQELIBUgDSgCADYCACAKIAopA4g5NwPYNyAKKAL4MyABRgRAIApB+DNqENwDCyAKKAL8MyABQQxsaiIFIAopA9g3NwIAIAVBCGogFSgCADYCACAKIAFBAWoiATYCgDQgCkGQOmopAwAhICAKKQOIOiEiIA0gFjYCACAKICY3A4g5ICAgIoRQRQRAQQEhAUEAIQUDQCAKKAKIOSABQQFrRgRAIApBiDlqENsDCyAKKAKMOSAFaiAiPgIAICJC/////w9WICBCAFIgIFAgIEIghiAiQiCIhCEiIAVBBGohBSAgQiCIISAgCiABNgKQOSABQQFqIQEbDQALIAooAoA0IQELIBUgDSgCADYCACAKIAopA4g5NwPYNyAKKAL4MyABRgRAIApB+DNqENwDCyAKKAL8MyABQQxsaiIFIAopA9g3NwIAIAVBCGogFSgCADYCACAKIAFBAWoiATYCgDQgECkDACEgIAopA5g6ISIgDSAWNgIAIAogJjcDiDkgICAihFBFBEBBASEBQQAhBQNAIAooAog5IAFBAWtGBEAgCkGIOWoQ2wMLIAooAow5IAVqICI+AgAgIkL/////D1YgIEIAUiAgUCAgQiCGICJCIIiEISIgBUEEaiEFICBCIIghICAKIAE2ApA5IAFBAWohARsNAAsgCigCgDQhAQsgFSANKAIANgIAIAogCikDiDk3A9g3IAooAvgzIAFGBEAg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ECgCADYCACAKIAVBAWo2ApQzIA8gC0EMaiILRw0ACyAKKAKIMyEFIAooAoQzCyEBIApB6DlqIhEgGyAeIAEgBRAaIApBmDNqIBFB4AAQrQUaIApBoDRqIApB8DpqIhQpAwA3AwAgCkGYNGogCkHoOmoiDCkDADcDACAKQZA0aiAKQeA6aiILKQMANwMAIApBiDRqIApB2DpqIgUpAwA3AwAgCkGANGogCkHQOmoiASkDADcDACAKIAopA8g6NwP4MyARIBsgHiAKKAKQMyAKKAKUMxAaIApBqDRqIBFB4AAQrQUaIApBsDVqIBQpAwA3AwAgCkGoNWogDCkDADcDACAKQaA1aiALKQMANwMAIApBmDVqIAUpAwA3AwAgCkGQNWogASkDADcDACAKIAopA8g6NwOINSAKQZA6aiAKQdA0aikDADcDACAKQYg6aiAKQcg0aikDADcDACAKQYA6aiAKQcA0aikDADcDACAKQfg5aiAKQbg0aikDADcDACAKQfA5aiIBIApBsDRqKQMANwMAIAogCikDqDQ3A+g5IApBoDpqIApB4DRqKQMANwMAIApBqDpqIApB6DRqKQMANwMAIApBsDpqIApB8DRqKQMANwMAIApBuDpqIApB+DRqKQMANwMAIApBwDpqIApBgDVqKQMANwMAIAogCikD2DQ3A5g6IApBsMAAaiARQeAAEK0FGiABQfiWwQAoAgA2AgAgCkHwlsEAKQIANwPoOSARENsDIAooAuw5QQE2AgAgCigC7DkhBQJAAkAgCigC6DkiAUGAgICAeEcNACAFKAIIDQAgCkEBNgLwOSAKIAU2Auw5IApBgICAgHg2Aug5IApB0MIAaiAREOwDDAELIApBATYC8DkgCiAFNgLsOSAKIAE2Aug5IApB0MIAaiAKQeg5akEEQQAQowELIApBsDhqIApB2MIAaiIRKAIANgIAIAogCikC0EI3A6g4IApB6DlqIgEgCkGwwABqQQEgCkGoOGpBARAaIApBuDVqIAFB4AAQrQUaIApBwDZqIApB8DpqKQMANwMAIApBuDZqIApB6DpqKQMANwMAIApBsDZqIApB4DpqKQMANwMAIApBqDZqIApB2DpqKQMANwMAIApBoDZqIApB0DpqKQMANwMAIAogCikDyDo3A5g2IAooAqg4IgEEQCAKKAKsOCABQQJ0EJQF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AyAKQZgOaiAvICtCABD8AyAKQeANaikDACEmIApBoA1qKQMAISQgCikD6A0hIyAKIApBkA1qKQMAICEgKFatfCIhIAopA5gNfCIqIAopA9gNfCIiICUgJ1StIApB0A1qKQMAICcgKFStfHx8IikgCikDiA58IiA3A7g5IApBsDlqIhQgCkGQDmopAwAgICApVK18IiUgCikDmA58IiggIyAkICEgKlatfCIkfCInICIgKVatICYgIiAqVK18fHwiI3wiITcDACAKQagOaiAvIC1CABD8AyAKQcgOaiAsICtCABD8AyAKQag5aiIOICMgJ1StIApB8A1qKQMAICQgJ1atfHwiIyAKKQOoDnwiJCAhIChUrSAKQaAOaikDACAlIChWrXx8fCIlIAopA8gOfCIhNwMAIApB2A5qICwgLUIAEPwDIApBoDlqIhAgJCAlVq0gCkGwDmopAwAgIyAkVq18fCIjIAopA9gOfCIkIApB0A5qKQMAICEgJVStfHwiITcDACAKQfgOaiArIC1CABD8AyAKQZg5aiISICEgJFStIApB4A5qKQMAICMgJFatfHwiIyAKKQP4DnwiITcDACAKQZA5aiIRIApBgA9qKQMAICEgI1StfDcDACAKQgA3A4g5IBcgCkG4OWoQmwIgGiAKQZA6aiIMKQMANwMAIBUgCkGIOmoiCykDADcDACAWIApBgDpqIgUpAwA3AwAgEyAKQfg5aiIDKQMANwMAIA8gCkHwOWoiASkDADcDACAKIAopA+g5NwO4OSAXIApBiDlqEJsCIBQgDCkDACIlNwMAIA4gCykDADcDACAQIAUpAwA3AwAgEiADKQMANwMAIBEgASkDADcDACAKQagNaiAuIC5CABD8AyAaIAopA6gNIiMgGikDAHwiITcDACAVIApBsA1qKQMAICEgI1StfCIkIBUpAwB8IiE3AwAgCkH4DWogMCAwQgAQ/AMgFiAKKQP4DSIjIBYpAwB8IiYgISAkVK18IiE3AwAgCiAKKQPoOTcDiDkgEyAhICZUrSAKQYAOaikDACAjICZWrXx8IiQgEykDAHwiITcDACAKQbgOaiAvIC9CABD8AyAPIAopA7gOIiMgDykDAHwiJyAhICRUrXwiITcDACAKQegOaiAsICxCABD8AyAKKQPoDiEmIAogISAnVK0gCkHADmopAwAgIyAn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AwA3AwAgCkGoP2ogCkHAOmopAwA3AwAgCiAKKQO4OjcDoD8gCkH4P2ogCkHQPGopAwA3AwAgCkHwP2ogCkHIPGopAwA3AwAgCkHoP2ogCkHAPGopAwA3AwAgCkHgP2ogCkG4PGopAwA3AwAgCkHYP2ogCkGwPGopAwA3AwAgCiAKKQOoPDcD0D8gCkHIPWoiEiABKQMANwMAIApBwD1qIhEgAykDADcDACAKQbg9aiIUIAUpAwA3AwAgCiAKKQOIODcDsD0gCyAKQbA9ahDgBCAKQYBAayIBIApBgD1qIApBoD9qIAsQhwEgCkEANgLcPSAKQoCAgICAATcC1D0gARDLA0H/AXFBAkcEQCAKQZjDAGohDANAQSghASAKKQOAQCEvIAopA4hAISwgCikDkEAhKyAKKQOYQCEtIAopA6BAISogCikDqEAhIEIAISlCACEoQgAhJUIAISdCACEhQgAhIgNAIApBmAtqIApB0D9qIAFqKQMAIiMgIEIAEPwDIApBqAtqICMgKkIAEPwDIApBuAtqICMgLUIAEPwDIApByAtqICMgK0IAEPwDIApB2AtqICMgLEIAEPwDIApB6AtqICMgL0IAEPwDIApBiAtqIAopA5gLIiYgInwiIkIAQv3/8//P///5iX8Q/AMgCkH4CmogCkGQC2opAwAiI0Kr1f7///+//7l/QgAQ/AMgCkHoCmogI0L//8+K6///1R5CABD8AyAKQdgKaiAjQqTsw7WP1LSY5wBCABD8AyAKQcgKaiAjQr+llJzP8NK75ABCABD8AyAKQbgKaiAjQtfZrprk9umNywBCABD8AyAKQagKaiAjQprN/8ujvcSAGkIAEPwDIApBsApqKQMAICkgCikD6AsiJHwiLiAKQeALaikDACAoIAopA9gLIiN8IikgI1StfCApICkgCkHQC2opAwAgCikDyAsiIyAlfCIoICNUrXwgKCAKQcALaikDACAKKQO4CyIjICd8IiUgI1StfCAlIApBsAtqKQMAICEgCikDqAsiIXwiIyAhVK18ICMgIyAKQaALaikDACAiICZUrXx8IiNWrXx8IicgJVStfHwiJSAoVK18fCIhVq18fCIwIAopA6gKfCIpIDBUrXwgKSApIApBwApqKQMAICEgISAKKQO4CnwiKFatfCAoIApB0ApqKQMAICUgJSAKKQPICnwiJlatfCAmICYgCkHgCmopAwAgJyAnIAopA9gKfCIlVq18ICUgJSAKQfAKaikDACAjIAopA+gKIiF8IiMgIVStfCAjIApBgAtqKQMAICIgCikD+AoiIXwgIVStfHwiIiAjVK18fCIhVq18fCInVq18fCIlIChUrXx8IihWrXwgLiAwVq0gCkHwC2opAwAgJCAuVq18fHwhKSABQQhrIgFBeEcNAAsCQAJAIClCms3/y6O9xIAaVg0AIClCms3/y6O9xIAaUgRAICEhIyAnISQgJSEmICghIAwCCyAoQtfZrprk9umNywBWDQACQCAoQtfZrprk9umNywBSBEAgISEjICchJCAlISYgKCEgDAELICVCv6WUnM/w0rvkAFYNAULX2a6a5PbpjcsAISAgJUK/pZScz/DSu+QAUgRAICEhIyAnISQgJSEmDAELICdCpOzDtY/UtJjnAFYNAUK/pZScz/DSu+QAISYgJ0Kk7MO1j9S0mOcAUgRAICEhIyAnISQMAQsgIUL//8+K6///1R5WDQFCpOzDtY/UtJjnACEkICFC///Piuv//9UeUgRAICEhIwwBC0L//8+K6///1R4hIyAiQqrV/v///7//uX9WDQELQprN/8ujvcSAGiEpDAELICFC///Piuv//9UefSIgICJCq9X+////v/+5f1StIiR9ISMgJ0Kk7MO1j9S0mOcAfSImICFC///Piuv//9UeVCAgICRUcq0iIX0hJCAlQr+llJzP8NK75AB9IiAgJ0Kk7MO1j9S0mOcAVCAhICZWcq0iIX0hJiAoQtfZrprk9umNywB9IicgJUK/pZScz/DSu+QAVCAgICFUcq0iIX0hICApIChC19mumuT26Y3LAFQgISAnVnKtfUKazf/Lo73EgBp9ISkgIkLVqoGAgIDAgMYAfCEiCyAKICI3A5hCIAogIzcDkEIgCiAkNwOIQiAKICY3A4BCIAogIDcD+EEgCiApNwPwQSAKQdDCAGogCkHwwQBqEIYCIAooAtw9IgsgCigC1D1GBEAgCkHUPWoQ2AMLIAooAtg9IAtBMGxqIhAgCikD0EI3AwAgEEEIaiAKQdjCAGoiBSkDADcDACAQQRBqIApB4MIAaiIDKQMANwMAIBBBGGogCkHowgBqIgEpAwA3AwAgEEEgaiAKQfDCAGopAwA3AwAgEEEoaiAKQfjCAGopAwA3AwAgCiALQQFqNgLcPSAKQZgKaiAxQoGIgPC3rn9CABD8AyAKQYgKakIAIAopA5gKIiN9QpGAgICAgICACEIAEPwDIApB+AlqIDFC//+/mBNCABD8AyAKQegJakIAIApBoApqKQMAIiEgCikD+Al8IiQgI0IAUq18IiN9QpGAgICAgICACEIAEPwDIApB2AlqIDFCgIC+e0IAEPwDIApByAlqQgAgIyAkVK0gCkGACmopAwAgISAkVq18fCIhIAopA9gJfCIkICNCAFKtfCIjfUKRgICAgICAgAhCABD8AyAKQbgJaiAxQpCQgvC1lfX/B0IAEPwDIApBqAlqQgAgI0IAUq0iJyAjICRUrSAKQeAJaikDACAhICRWrXx8IiYgCikDiAp8IiV8IikgCikDuAl8IiB9QpGAgICAgICACEIAEPwDAkAgCkGwCWopAwAgCkHQCWopAwAgCikDyAkiJCAKQfAJaikDACAKKQPoCSIjIApBkApqKQMAfCIhICNUrXx8IiggJFStfCAoICggJSAmVK0iIyAhfCIhICNUrXwiJFatfCAkICQgISAnIClWrSIhfCIjICFUrXwiJVatfCIhIAopA6gJfCIkICFUrXwgJCAlICMgCkHACWopAwAgICApVK18IiN8IiEgI1StfCIjICVUrXwiJSAkVK18ICUgJSAjICEgIEIAUq0iIXwiJCAhVK0iIXwiIyAhVK18IiFWrXwiIEKRgICAgICAgAhUBEAgJCElICMhIiAhISkMAQsgIyAkhCAhhFAEQEKRgICAgICAgAghIEIAISVCACEiQgAhKQwBCyAkQgF9ISUgIyAkUK0iJH0hIiAhICMgJFStIiN9ISkgICAhICNUrX1CkYCAgICAgIAIfSEgCyAMQn83AwAgDEEIakJ/NwMAIAUgFCkDADcDACADIBEpAwA3AwAgASASKQMANwMAIApC0Pf///////8HNwOQQyAKQkE3A6hDIAogCikDsD03A9BCIAogJTcDiEMgCiAiNwOAQyAKICk3A/hCIAogIDcD8EIgCkHQwgBqEFMgEiABKQMANwMAIBEgAykDADcDACAUIAUpAwA3AwAgCiAKKQPQQjcDsD0gCkGgwgBqIgMgCkGwPWoQjwMgCkGoOGoiASADQSAQpgEgAyAKQYA9aiAKQaA/aiABEIcBIApBqMAAaiAK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2wMgCigC1EIgFzYCACAKQQE2AthCCyAKQbA4aiABKAIANgIAIAogCikD0EI3A6g4IAooArg9IgMgCigCsD1GBEAgCkGwPWoQ3AMLIAooArQ9IANBDGxqIgEgCikDqDg3AgAgAUEIaiAKQbA4aiIQKAIANgIAIAogA0EBajYCuD0gFwRAIBQgF0EwbGohEkH4lsEAKAIAIQ5B8JbBACkCACEoIApBiMMAaiERIBQhCwNAIApByMIAaiALQShqKQMAIic3AwAgCkHAwgBqIAtBIGopAwAiJjcDACAKQbjCAGogC0EYaikDACIlNwMAIApBsMIAaiALQRBqKQMAIiQ3AwAgCkGowgBqIAtBCGopAwAiIzcDACAKIAspAwAiITcDoEIgCkHQOGogJzcDACAKQcg4aiAmNwMAIApBwDhqICU3AwAgCkG4OGogJDcDACAQICM3AwAgCiAhNwOoOCAKQdDCAGogCkGoOGoQ/AEgCkKAgICAwAA3A5BDIApB2MIAaikDACEgIAopA9BCISIgCkH4wQBqIhMgDjYCACAKICg3A/BBICAgIoRQRQRAQQEhAUEAIQUDQCAKKALwQSABQQFrRgRAIApB8MEAahDbAwsgCigC9EEgBWogIj4CACAgQiCGICJCgICAgBBUIQYgIFAhAyAFQQRqIQUgIEIgiCEgIAogATYC+EEgAUEBaiEBICJCIIiEISIgAyAGcUUNAAsLIApBiMAAaiIPIBMoAgA2AgAgCiAKKQPwQTcDgEAgCigCuD0iAyAKKAKwPUYEQCAKQbA9ahDcAwsgCigCtD0gA0EMbGoiASAKKQOAQDcCACABQQhqIA8oAgA2AgAgCiADQQFqIgE2Arg9IApB6MIAaikDACEgIAopA+BCISIgEyAONgIAIAogKDcD8EEgICAihFBFBEBBASEBQQAhBQNAIAooAvBBIAFBAWtGBEAgCkHwwQBqENsDCyAKKAL0QSAFaiAiPgIAICJC/////w9WICBCAFIgIFAgIEIghiAiQiCIhCEiIAVBBGohBSAgQiCIISAgCiABNgL4QSABQQFqIQEbDQALIAooArg9IQELIA8gEygCADYCACAKIAopA/BBNwOAQCAKKAKwPSABRgRAIApBsD1qENwDCyAKKAK0PSABQQxsaiIDIAopA4BANwIAIANBCGogDygCADYCACAKIAFB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qDhqQQEQGCAKQfA1aiAKQaA6aikDADcDACAKQeg1aiAKQZg6aikDADcDACAKQeA1aiAKQZA6aikDADcDACAKQdg1aiAKQYg6aiIOKQMANwMAIApB0DVqIApBgDpqIhApAwA3AwAgCkHINWogCkH4OWoiEikDADcDACAKQcA1aiAKQfA5aiIRKQMANwMAIAogCikD6Dk3A7g1IApBqMAAaiAKQdA6aikDADcDACAKQaDAAGogCkHIOmopAwA3AwAgCkGYwABqIApBwDpqKQMANwMAIApBkMAAaiAKQbg6aikDADcDACAKQYjAAGogCkGwOmopAwA3AwAgCiAKKQOoOjcDgEAgCigCqDgiAQRAIAooAqw4IAFBAnQQlAULIApB0MIAakHumMEAQeCYwQAgCRtBGEEOIAkbELkBIApByMAAaiIUIApB6MIAaiIMKQMANwMAIApBwMAAaiILIApB4MIAaiIFKQMANwMAIApBuMAAaiIBIBMpAwA3AwAgCkHYwABqQgA3AwAgCkHgwABqQgA3AwAgCkHowABqQgA3AwAgCkH4wABqQYiXwAApAwA3AwAgCkGAwQBqQZCXwAApAwA3AwAgCkGIwQBqQZiXwAApAwA3AwAgCiAKKQPQQjcDsEAgCkIANwPQQCAKQYCXwAApAwA3A/BAIApBsMAAaiIPEFMgDiAPQeAAEK0FGiAQIAwpAwA3AwAgEiAFKQMANwMAIBEgEykDADcDACAKIAopA9BCNwPoOSAUQgA3AwAgC0IANwMAIAFCADcDACAKQgA3A7BAQcCYwQAgDxCPBARAIAtCfzcDACAUQn83AwAgCkJ/NwO4QCAKQu7/////////dzcDsEALIApBwDhqIApByMAAaiILKQMANwMAIApBuDhqIApBwMAAaiIFKQMANwMAIApBsDhqIApBuMAAaiIBKQMANwMAIAogCikDsEA3A6g4IApBmAlqIAStIiZCgYiA8Leuf0IAEPwDIApB2AhqQgAgCikDmAkiI31CkYCAgICAgIAIQgAQ/AMgCkGICWogJkL//7+YE0IAEPwDIApByAhqQgAgCkGgCWopAwAiISAKKQOICXwiJSAjQgBSrXwiI31CkYCAgICAgIAIQgAQ/AMgCkH4CGogJkKAgL57QgAQ/AMgCkG4CGpCACAjQgBSrSIkICMgJVStIApBkAlqKQMAICEgJVatfHx8IiMgCikD+AiEIiF9QpGAgICAgICACEIAEPwDIApB6AhqICZCkJCC8LWV9f8HQgAQ/AMgCkGoCGpCACAhQgBSrSIlIApBgAlqKQMAICMgJFSthCIkIAopA9gIfCIjfCInIAopA+gIfCImfUKRgICAgICAgAhCABD8AyAKICZCAFKtIiEgCkHwCGopAwAgJiAnVK18IiIgJSAnVq0iKSAjICRUrSIgIAopA8gIIiggCkHgCGopAwB8Iid8IiZ8IiV8IiN8Iio3A8hAIAogISAqVq0iJCAKKQO4CCIhIApB0AhqKQMAICcgKFStfHwiKCAgICZWrXwiJyAlIClUrXwiJiAiICNWrXwiI3wiIDcDwEAgCiAmICdUrSAnIChUrSAKQcAIaikDACAhIChWrXx8fCIhIAopA6gIfCIlICMgJlStfCIjICAgJFStfCIkNwO4QCAKICMgJFatICMgJVStIApBsAhqKQMAICEgJVatfHx8IiM3A7BAQcCYwQAgCkGwwABqEI8EBEAgCiAqQgF9NwPIQCAKICAgKlCtIiF9NwPAQCAKICQgICAhVK0iIX03A7hAIAogIyAhICRWrX1CkYCAgICAgIAIfTcDsEALIApB6MIAaiALKQMANwMAIApB4MIAaiAFKQMANwMAIApB2MIAaiABKQMANwMAIAogCikDsEA3A9BCIBsgHkEGdGohHSAKQeg5aiAKQag4aiAKQdDCAGoQ6gIgHgRAIBshAQNAIApBsMAAaiILIAEQ/QEgCkHoOWoiBSALENsBIAsgAUEgahD9ASAFIAsQ2wEgAUFAayIBIB1HDQALCyAKQdDCAGoiCwJ/AkACQCAJRQRAIApBsMAAaiIBIApBmDNqEP0BIApB6DlqIgUgARDbASABIApBuDNqEP0BIAUgARDbASABIApBqDRqEP0BIAUgARDbASABIApByDRqEP0BIAUgARDbASABIApBuDVqEP0BIAUgARDbASABIApB2DVqEP0BIAUgARDbASABIAUgAyAEELECIAEgBUGAARCtBRogCkGoL2ogCkHwwABqEN8EIApBiAdqIAopA8AvIiwgCikDuC8iK0IAEPwDIApBmAdqICwgCikDsC8iKkIAEPwDIApBqAdqICwgCikDqC8iKUIAEPwDIApByAdqICsgKkIAEPwDIApB2AdqICsgKUIAEPwDIApB+AdqICogKUIAEPwDIApCADcDgDogCiAKKQOIBzcD+DkgCiAKQZAHaikDACIjIAopA5gHfCIhNwPwOSAKIApBoAdqKQMAICEgI1StfCIhIAopA6gHfCIgIAopA8gHfCItNwPoOSALIgEgBRC5AiAKKQPQQiEiIAopA9hCIScgCikD4EIhJiAKKQPoQiElIApCADcD6DkgCkHgB2opAwAhJCAKIApBsAdqKQMAICAgIVStfCIjIAopA9gHfCIoIApB0AdqKQMAICAgLVatfHwiITcDgDogCiAhIChUrSAkICMgKFatfHwiIyAKKQP4B3wiITcD+DkgCiAKQYAIaikDACAhICNUrXw3A/A5IAEgBRC5AiAKQbgHaiAsICxCABD8AyAKQegHaiArICtCABD8AyAKQYgIaiAqICpCABD8AyAKQZgIaiApIClCABD8AyAKQZAIaikDACEkIAopA9BCISkgCikD2EIhICAKKQPgQiEoIAogIiAKQfAHaikDACAnIAopA+gHIiF8IiMgIVStfCAjICYgCkHAB2opAwAgJSAKKQO4ByIhfCIqICFUrXwiIXwiJSAhVK18IicgI1StfCIhfCImICFUrSIjIAopA4gIfCIiIAopA+hCIC1CP4iEfCIhNwOAOiAKICggISAiVK0gJCAiICNUrXx8IiR8IiE3A/g5IAogICAKKQOYCCIjfCIoICEgJFStfCIhNwPwOSAKICkgISAoVK0gCkGgCGopAwAgIyAoVq18fHw3A+g5IApB+AZqICpCiceZpK7wgemHf34iIULH+vPD7YKjkDxCABD8AyAKQegGaiAhQo2Vx8OW0trAl39CABD8AyAKQdgGaiAhQt2whYzotpGouH9CABD8AyAKQcgGaiAhQqnAxomuzpOyMEIAEPwDIApB8AZqKQMAISQgCiAKQYAHaikDACAKKQP4BiIhICp8ICFUrXwiIyAKKQPoBnwiKCAlfCIhNwOgQiAKQeAGaikDACElIAogJyAhIChUrSAkICMgKFatfHwiIyAKKQPYBnwiJ3wiITcDqDggCkHQBmopAwAhJCAKICEgJ1StICUgIyAnVq18fCIjIAopA8gGfCIlICZ8IiE3A9BCQQAhBUEAIQEgISAlVK0gJCAjICVWrXx8IiNCAFINAQwCCyAKQbDAAGoiBSAKQZgzahD9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CigC+DNGBEAgCkH4M2oQ2QMLIAooAvwzIAtBBXRqIgEgCikD0EI3AwAgAUEIaiAKQdjCAGoiBSkDADcDACABQRBqIApB4MIAaiIDKQMANwMAIAFBGGogCkHowgBqIgEpAwA3AwAgCiALQQFqNgKANCAKQfgAaiAgQoGIgPC3rn9CABD8AyAKQegAakIAIAopA3giI31CkYCAgICAgIAIQgAQ/AMgCkHYAGogIEL//7+YE0IAEPwDIApByABqQgAgCkGAAWopAwAiISAKKQNYfCIkICNCAFKtfCIjfUKRgICAgICAgAhCABD8AyAKQThqICBCgIC+e0IAEPwDIApBKGpCACAjICRUrSAKQeAAaikDACAhICRWrXx8IiEgCikDOHwiJCAjQgBSrXwiI31CkYCAgICAgIAIQgAQ/AMgCkEYaiAgQpCQgvC1lfX/B0IAEPwDIApBCGpCACAjQgBSrSInICMgJFStIApBQGspAwAgISAkVq18fCImIAopA2h8IiV8IiIgCikDGHwiKX1CkYCAgICAgIAIQgAQ/AMCQCAKQRBqKQMAIApBMGopAwAgCikDKCIkIApB0ABqKQMAIAopA0giIyAKQfAAaikDAHwiISAjVK18fCIoICRUrXwgKCAoICUgJlStIiMgIXwiISAjVK18IiVWrXwgJSAlICEgIiAnVK0iIXwiIyAhVK18IiRWrXwiISAKKQMIfCIlICFUrXwgJSAlICQgIyAKQSBqKQMAICIgKVatfCIjfCIhICNUrXwiIyAkVK18IiRWrXwgJCAjICEgKUIAUq0iIXwiJSAhVK0iIXwiIyAhVK18IiEgJFStfCInQpGAgICAgICACFQEQCAlISQgIyEmICEhIwwBCyAjICWEICGEUARAQpGAgICAgICACCEnQgAhJEIAISZCACEjDAELICVCAX0hJCAjICVQrSIlfSEmICEgIyAlVK0iJX0hIyAnICEgJVStfUKRgICAgICAgAh9IScLIAxCfzcDACAMQQhqQn83AwAgBSAUKQMANwMAIAMgESkDADcDACABIBIpAwA3AwAgCkLQ9////////wc3A5BDIApCQTcDqEMgCiAKKQOIOTcD0EIgCiAkNwOIQyAKICY3A4BDIAogIzcD+EIgCiAnNwPwQiAKQdDCAGoQUyASIAEpAwA3AwAgESADKQMANwMAIBQg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gD03AgAgA0EIaiAZKAIANgIAIAogAUEBaiIBNgKANCAKQeg5aiASQSBqEP0BIApCgICAgMAANwOoOiARKQMAISAgCikD6DkhIiAYIA02AgAgCiAjNwOgQiAgICKEUEUEQEEBIQFBACEFA0AgCigCoEIgAUEBa0YEQCAKQaDCAGoQ2wMLIAooAqRCIAVqICI+AgAgIEIghiAiQoCAgIAQVCELICBQIQMgBUEEaiEFICBCIIghICAKIAE2AqhCIAFBAWohASAiQiCIhCEiIAMgC3FFDQALIAooAoA0IQELIBkgGCgCADYCACAKIAopA6BCNwOAPSAKKAL4MyABRgRAIApB+DNqENwDCyAKKAL8MyABQQxsaiIDIAopA4A9NwIAIANBCGogGSgCADYCACAKIAFBAWoiATYCgDQgFSkDACEgIAopA/g5ISIgGCANNgIAIAogIzcDoEIgICAihFBFBEBBASEBQQAhBQNAIAooAqBCIAFBAWtGBEAgCkGgwgBqENsDCyAKKAKkQiAFaiAiPgIAICJC/////w9WICBCAFIgIFAgIEIghiAiQiCIhCEiIAVBBGohBSAgQiCIISAgCiABNgKoQiABQQFqIQEbDQALIAooAoA0IQELIBkgGCgCADYCACAKIAopA6BCNwOAPSAKKAL4MyABRgRAIApB+DNqENwDCyAKKAL8MyABQQxsaiIDIAopA4A9NwIAIANBCGogGSgCADYCACAKIAFBAWoiATYCgDQgFikDACEgIAopA4g6ISIgGCANNgIAIAogIzcDoEIgICAihFBFBEBBASEBQQAhBQNAIAooAqBCIAFBAWtGBEAgCkGgwgBqENsDCyAKKAKkQiAFaiAiPgIAICJC/////w9WICBCAFIgIFAgIEIghiAiQiCIhCEiIAVBBGohBSAgQiCIISAgCiABNgKoQiABQQFqIQEbDQALIAooAoA0IQELIBkgGCgCADYCACAKIAopA6BCNwOAPSAKKAL4MyABRgRAIApB+DNqENwDCyAKKAL8MyABQQxsaiIDIAopA4A9NwIAIANBCGogGSgCADYCACAKIAFBAWoiATYCgDQgEykDACEgIAopA5g6ISIgGCANNgIAIAogIzcDoEIgICAihFBFBEBBASEBQQAhBQNAIAooAqBCIAFBAWtGBEAgCkGgwgBqENsDCyAKKAKkQiAF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A0GIDWopAwAgCyASVK18fHwiFXwiCyADKQPwC3wiDyADQYgMaikDACADKQOADCIKIAx8IApUrXx8IgwgAykDwAx8IhJCAEKJx5mkrvCB6Yd/EPwDIANB8ApqIANBiAtqKQMAIgpCx/rzw+2Co5A8QgAQ/AMgA0HgCmogCkKNlcfDltLawJd/QgAQ/AMgA0HQCmogCkLdsIWM6LaRqLh/QgAQ/AMgA0HACmogCkKpwMaJrs6TsjBCABD8AyADQbAMaiABKQNgIgogE0IAEPwDIANBoAtqIAogFEIAEPwDIANBkApqIAogGUIAEPwDIANBgAlqIAogGkIAEPwDIANB8AlqIANByAxqKQMAIAwgElatfCIgIAMpA7ALfCIRIANBmAtqKQMAIBAgF1StfCIeIAMpA4AKfCIXIAMpA+AMfCIWIA4gFVatIANB+AxqKQMAIA4gEFStfHx8IhAgAykDsAp8Ig4gCyANVK0gA0HIC2opAwAgDSAYVK18fHwiDSADKQPgC3wiGCAMIA9UrSADQfgLaikDACALIA9WrXx8fCIVfCILIAMpA+AKfCIPIANB+ApqKQMAIAMpA/AKIgogEnwgClStfHwiDCADKQOwDHwiEkIAQonHmaSu8IHph38Q/AMgA0HgCWogA0H4CWopAwAiCkLH+vPD7YKjkDxCABD8AyADQdAJaiAKQo2Vx8OW0trAl39CABD8AyADQcAJaiAKQt2whYzotpGouH9CABD8AyADQbAJaiAKQqnAxomuzpOyMEIAEPwDIANBuAlqKQMAIANByApqKQMAIANB2AtqKQMAIBAgFlStIANB6AxqKQMAIBYgF1StfHwgA0GICmopAwAgFyAeVK18fCIXIAMpA6AJfCIKIA0gDlStIANBuApqKQMAIA4gEFStfHx8IhAgAykD0At8Ig4gEFStfCAOIBUgGFStIANB6AtqKQMAIA0gGFatfHx8Ig0gDlStfCAKIBBWrSADQagJaikDACAKIBdUrXx8fCIXIAMpA5AJfCIKIANBqApqKQMAIA0gDSADKQOgCnwiEFatfCAQIBAgCyARVK0gA0G4C2opAwAgESAgVK18fHwiDVatfHwiECADKQPACnwiDiAQVK18IA4gA0HYCmopAwAgDSANIAMpA9AKfCIRVq18IBEgESAMIA9UrSADQegKaikDACALIA9WrXx8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yCFqKQMAIgpCx/rzw+2Co5A8QgAQ/AMgA0GgIWogCkKNlcfDltLawJd/QgAQ/AMgA0GQIWogCkLdsIWM6LaRqLh/QgAQ/AMgA0GAIWogCkKpwMaJrs6TsjBCABD8AyADQYAjaiABQYgCaikDACIKIBNCABD8AyADQZAjaiAKIBRCABD8AyADQaAjaiAKIBlCABD8AyADQbAjaiAKIBpCABD8AyADQeAgaiADQcgiaikDACAMIA1WrXwiFSADKQPQInwiECADQZgiaikDACAOIBJWrXwiFiADKQOgInwiDiADKQPwIHwiEiALIAxWrSADQdghaikDACALIBFUrXx8fCIifCILIAMpA6AhfCIMIANBuCFqKQMAIAMpA7AhIgogDXwgClStfHwiDSADKQOAI3wiEUIAQonHmaSu8IHph38Q/AMgA0HQIGogA0HoIGopAwAiCkLH+vPD7YKjkDxCABD8AyADQcAgaiAKQo2Vx8OW0trAl39CABD8AyADQbAgaiAKQt2whYzotpGouH9CABD8AyADQaAgaiAKQqnAxomuzpOyMEIAEPwDIANBwCNqIAEpA4ACIgogE0IAEPwDIANB0CNqIAogFEIAEPwDIANB4CNqIAogGUIAEPwDIANB8CNqIAogGkIAEPwDIANBgCBqIANBiCNqKQMAIA0gEVatfCInIAMpA5AjfCIXIANBqCJqKQMAIA4gFlStfCIkIAMpA7AifCIWIAMpA5AgfCIYIBIgIlatIANB+CBqKQMAIA4gElatfHx8Ig4gAykD4CJ8IhIgCyAQVK0gA0HYImopAwAgECAVVK18fHwiECADKQOQIXwiFSAMIA1WrSADQaghaikDACALIAxWrXx8fCIifCILIAMpA8AgfCIMIANB2CBqKQMAIAMpA9AgIgogEXwgClStfHwiDSADKQPAI3wiEUIAQonHmaSu8IHph38Q/AMgA0HwH2ogA0GIIGopAwAiCkLH+vPD7YKjkDxCABD8AyADQeAfaiAKQo2Vx8OW0trAl39CABD8AyADQdAfaiAKQt2whYzotpGouH9CABD8AyADQcAfaiAKQqnAxomuzpOyMEIAEPwDAkACQCADQcgfaikDACADQaggaikDACADQYghaikDACAOIBhUrSADQZggaikDACAWIBhWrXx8IANBuCJqKQMAIBYgJFStfHwiFiAD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IBJWrXwiGCADKQPgHXwiDiADKQOwHHwiEiALIAxWrSADQZgdaikDACALIBFUrXx8fCIofCILIAMpA+AcfCIMIANB+BxqKQMAIAMpA/AcIgogDXwgClStfHwiDSADKQPAHnwiEUIAQonHmaSu8IHph38Q/AMgA0GQHGogA0GoHGopAwAiCkLH+vPD7YKjkDxCABD8AyADQYAcaiAKQo2Vx8OW0trAl39CABD8AyADQfAbaiAKQt2whYzotpGouH9CABD8AyADQeAbaiAKQqnAxomuzpOyMEIAEPwDIANBgB9qIAEpA8ACIgogE0IAEPwDIANBkB9qIAogFEIAEPwDIANBoB9qIAogGUIAEPwDIANBsB9qIAogGkIAEPwDIANBwBtqIANByB5qKQMAIA0gEVatfCIjIAMpA9AefCIWIANB6B1qKQMAIA4gGFStfCIpIAMpA/AdfCIYIAMpA9AbfCIVIBIgKFatIANBuBxqKQMAIA4gElatfHx8Ig4gAykDoB58IhIgCyAQVK0gA0GYHmopAwAgECAkVK18fHwiECADKQPQHHwiJCAMIA1WrSADQegcaikDACALIAxWrXx8fCIofCILIAMpA4AcfCIMIANBmBxqKQMAIAMpA5AcIgogEXwgClStfHwiDSADKQOAH3wiEUIAQonHmaSu8IHph38Q/AMgA0GwG2ogA0HIG2opAwAiCkLH+vPD7YKjkDxCABD8AyADQaAbaiAKQo2Vx8OW0trAl39CABD8AyADQZAbaiAKQt2whYzotpGouH9CABD8AyADQYAbaiAKQqnAxomuzpOyMEIAEPwDAkACQCADQYgbaikDACADQegbaikDACADQcgcaikDACAOIBVUrSADQdgbaikDACAVIBhUrXx8IANB+B1qKQMAIBggKVStfHwiGCADKQOwHnwiCiAQIBJUrSADQageaikDACAOIBJWrXx8fCIOIAMpA8AcfCISIA5UrXwgEiAkIChWrSADQdgcaikDACAQICRWrXx8fCIQIBJUrXwgCiAOVq0gA0G4HmopAwAgCiAYVK18fHwiGCADKQPwHnwiCiADQegeaikDACAQIBAgAykD4B58Ig5WrXwgDiAOIAsgFlStIANB2B5qKQMAIBYgI1StfHx8IhBWrXx8Ig4gAykD4Bt8IhIgDlStfCASIANB+BtqKQMAIBAgECAD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MEIAEPwDIANBwBpqIAEpA+ABIgogE0IAEPwDIANB0BpqIAogFEIAEPwDIANB4BpqIAogGUIAEPwDIANB8BpqIAogGkIAEPwDIANBgBdqIANBiBpqKQMAIA0gGFatfCIfIAMpA5AafCIVIANBqBlqKQMAIBEgI1StfCIlIAMpA7AZfCIjIAMpA5AXfCIpIBYgHVatIANB+BdqKQMAIBEgFlatfHx8IhEgAykD4Bl8IhYgCyAQVK0gA0HYGWopAwAgECAhVK18fHwiECADKQOQGHwiISAMIA1WrSADQagYaikDACALIAxWrXx8fCIdfCILIAMpA8AXfCIMIANB2BdqKQMAIAMpA9AXIgogGHwgClStfHwiDSADKQPAGnwiGEIAQonHmaSu8IHph38Q/AMgA0HwFmogA0GIF2opAwAiCkLH+vPD7YKjkDxCABD8AyADQeAWaiAKQo2Vx8OW0trAl39CABD8AyADQdAWaiAKQt2whYzotpGouH9CABD8AyADQcAWaiAKQqnAxomuzpOyMEIAEPwDAkACQCADQcgWaikDACADQagXaikDACADQYgYaikDACARIClUrSADQZgXaikDACAjIClWrXx8IANBuBlqKQMAICMgJVStfHwiIyADKQPwGXwiCiAQIBZUrSADQegZaikDACARIBZWrXx8fCIRIAMpA4AYfCIWIBFUrXwgFiAdICFUrSADQZgYaikDACAQICFWrXx8fCIQIBZUrXwgCiARVq0gA0H4GWopAwAgCiAjVK18fHwiIyADKQOwGnwiCiADQagaaikDACAQIBAgAykDoBp8IhFWrXwgESARIAsgFVStIANBmBpqKQMAIBUgH1StfHx8IhBWrXx8IhEgAykDoBd8IhYgEVStfCAWIANBuBdqKQMAIBAgECADKQOwF3wiFVatfCAVIBUgDCANVq0gA0HIF2opAwAgCyAMVq18fHwiEFatfHwiCyAWVK18IAogEVatIANBuBpqKQMAIAogI1StfHx8IiMgAykD8Bp8IgwgA0HoGmopAwAgCyADKQPgGnwiCiALVK18IAogCiADQdgaaikDACADQcgaaikDACANIBhWrXwiDSADKQPQGnwiCyANVK18IAsgCyAQfCINVq18fCILVq18fCIRIAMpA8AWfCIWIBFUrXwgFiAWIANB2BZqKQMAIAsgCyADKQPQ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gqOQPH0hGQsgAUHAAWohAiABQYACaiEFIAFBwAJqIQYgAUHgAWohByABQaACaiEIIAFB4AJqIQlCqcDGia7Ok7IwIREgASkDoAEgE3wgFCABQagBaikDACITfCIKIBNUIAogDCABQbABaikDACIMfCIUIAxUIBQgFCABQbgBaikDACIMIBl8IhMgDFStfCIMVnKtfCIUIApUcq18IhkhCgJAAkACQCAZQqnAxomuzpOyMFINAELdsIWM6LaRqLh/IREgFCIKQt2whYzotpGouH9SDQBCjZXHw5bS2sCXfyERIAwiCkKNlcfDltLawJd/Ug0AQsf688PtgqOQPCERIBMiCkLH+vPD7YKjkDxRDQELIAogEVoNACAUIQogDCERDAELIAxC8+q4vOmtpb/oAHwiCiATQsf688PtgqOQPFStIhV9IREgFEKjz/rzl8nu18cAfCIaIAxCjZXHw5bS2sCXf1QgCiAVVHKtIgx9IQogGSAUQt2whYzotpGouH9UIAwgGlZyrX1CqcDGia7Ok7IwfSEZIBNCx/rzw+2Co5A8fSETCyAEIBk3A8ACIAQgDzcDGCAEIB43AxAgBCAgNwMIIAQgHDcDACAEQdgCaiATNwMAIARB0AJqIBE3AwAgBEHIAmogCjcDACAEIAkpAwA3A+ACIAQgAikDADcDICAEQegCaiAJQQhqKQMANwMAIARB8AJqIAlBEGopAwA3AwAgBEH4AmogCUEYaikDADcDACAEQShqIAJBCGopAwA3AwAgBEEwaiACQRBqKQMANwMAIARBOGogAkEYaikDADcDACAEQdgAaiAXNwMAIARB0ABqICc3AwAgBEHIAGogIjcDACAEIBs3A0AgBEGYAWogDjcDACAEQZABaiAoNwMAIARBiAFqICQ3AwAgBCASNwOAASAEIAUpAwA3A2AgBEHoAGogBUEIaikDADcDACAEQfAAaiAFQRBqKQMANwMAIARB+ABqIAVBGGopAwA3AwAgBCAGKQMANwOgASAEQagBaiAGQQhqKQMANwMAIARBsAFqIAZBEGopAwA3AwAgBEG4AWogBkEYaikDADcDACAEQdgBaiAWNwMAIARB0AFqICk3AwAgBEHIAWogIzcDACAEIBA3A8ABIARB+AFqIAdBGGopAwA3AwAgBEHwAWogB0EQaikDADcDACAEQegBaiAHQQhq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aikDACAVIBZUrXwiHiADKQPgAnwiFiADKQOwAXwiFSAOIA9UrSADQZgCaikDACAPICBUrXx8fCInfCIPIAMpA+ABfCIOIANB+AFqKQMAIAMpA/ABIgogEnwgClStfHwiEiADKQPAA3wiIEIAQonHmaSu8IHph38Q/AMgA0GQAWogA0GoAWopAwAiCkLH+vPD7YKjkDxCABD8AyADQYABaiAKQo2Vx8OW0trAl39CABD8AyADQfAAaiAKQt2whYzotpGouH9CABD8AyADQeAAaiAKQqnAxomuzpOyMEIAEPwDIANBgARqIAEpA6ABIgogE0IAEPwDIANBkARqIAogFEIAEPwDIANBoARqIAogGUIAEPwDIANBsARqIAogGkIAEPwDIANBQGsgA0HIA2opAwAgEiAgVq18IiQgAykD0AN8IhQgA0HoAmopAwAgFiAeVK18IiggAykD8AJ8IhMgAykDUHwiHiAVICdWrSADQbgBaikDACAVIBZUrXx8fCIWIAMpA6ADfCIVIA8gF1StIANBmANqKQMAIBcgIlStfHx8IhcgAykD0AF8IiIgDiASVq0gA0HoAWopAwAgDiAPVK18fHwiJ3wiDyADKQOAAXwiDiADQZgBaikDACADKQOQASIKICB8IApUrXx8IhIgAykDgAR8IiBCAEKJx5mkrvCB6Yd/EPwDIANBMGogA0HIAGopAwAiCkLH+vPD7YKjkDxCABD8AyADQSBqIApCjZXHw5bS2sCXf0IAEPwDIANBEGogCkLdsIWM6LaRqLh/QgAQ/AMgAyAKQqnAxomuzpOyMEIAEPwDAkACQCADQQhqKQMAIANB6ABqKQMAIANByAFqKQMAIBYgHlStIANB2ABqKQMAIBMgHlatfHwgA0H4AmopAwAgEyAoVK18fCIeIAMpA7ADfCIKIBUgF1atIANBqANqKQMAIBUgFlStfHx8IhMgAykDwAF8IhYgE1StfCAWICIgJ1atIANB2AFqKQMAIBcgIlatfHx8IhcgFlStfCAKIBNWrSADQbgDaikDACAKIB5UrXx8fCIVIAMpA/ADfCIKIANB6ANqKQMAIBcgFyADKQPgA3wiE1atfCATIA8gFFStIANB2ANqKQMAIBQgJFStfHx8IhQgE1StfHwiFyADKQNgfCITIBdUrXwgEyADQfgAaikDACAUIBQgAykDcHwi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KWopAwAgAykD0CkiCiAOfCAKVK18fCIOIAMpA7ArfCIRQgBCiceZpK7wgemHfxD8AyADQfAoaiADQYgpaikDACIKQsf688PtgqOQPEIAEPwDIANB4ChqIApCjZXHw5bS2sCXf0IAEPwDIANB0ChqIApC3bCFjOi2kai4f0IAEPwDIANBwChqIApCqcDGia7Ok7IwQgAQ/AMCQCADQcgoaikDACADQagpaikDACADQYgqaikDACADKQOAKiIWIANBmClqKQMAIBQgF1atfHwiCiAWVK18IAogCiALIAxUrXwiDFatfCAMIAwgDyASVq0gA0GYKmopAwAgCyAPVq18fHwiClatfCIPIAMpA6ApfCILIA9UrXwgCyALIAogCiASIBNWrXwiElatfCIKVq18IAogCiADQbgpaikDACASIBIgAykDsCl8IgtWrXwgCyALIA0gDlatIANByClqKQMAIA0gEFStfHx8IhJWrXx8IgtWrXwiDSADKQPAKHwiCiANVK18IAogCyALIBIgA0G4K2opAwAgDiARVq18fCIOIBJUrXwiC1atfCISIApUrXwgEiADQdgoaikDACALIAsgAykD0Ch8Ig1WrXwgDSANIANB6ChqKQMAIA4gAykD4CgiC3wiCiALVK18IAogA0H4KGopAwAgAykD8CgiCyARfCALVK18fCIRIApUrXx8IgpWrXx8IhQgElStfCIXQqnAxomuzpOyMFQEQCAKIRIMAQsCQCAUQt2whYzotpGouH9WDQAgFELdsIWM6LaRqLh/UgRAIAohEkKpwMaJrs6TsjAhFwwCCyAKQo2Vx8OW0trAl39WDQACQCAKQo2Vx8OW0trAl39SBEAgCiESDAELQo2Vx8OW0trAl38hEiARQsf688PtgqOQPFoNAQtC3bCFjOi2kai4fyEUQqnAxomuzpOyMCEXDAELIApC8+q4vOmtpb/oAHwiCyARQsf688PtgqOQPFStIg19IRIgFEKjz/rzl8nu18cAfCIOIApCjZXHw5bS2sCXf1QgCyANVHKtIgp9IRQgFyAKIA5WrX1CqcDGia7Ok7IwfSEXIBFCx/rzw+2Co5A8fSERCyADKALcLSIFBEAgAygC4C0gBUECdBCUBQsCQCADKAKsLSIFRQ0AIAUgBUEMbEETakF4cSIEakEJaiIFRQ0AIAMoAqgtIARrIAUQlAULAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCADKALAK0ECaw4LAQAAAAIAAAAAAAMACyADQQA2AtgrIANBATYCzCsgA0HIq8EANgLIKyADQgQ3AtArIANByCtqQdCrwQAQzQQACyACRQRAQQghBAwLCyACQQV0IgkhBSACQf///x9LDRlBudHCAC0AABpBCCEHIAVBCBCLBSIERQ0ZIAIhBQNAIAYgCUYNCyAEIAZqIgcgASAGaiIIKQMANwMAIAdBGGogCEEYaikDADcDACAHQRBqIAhBEGopAwA3AwAgB0EIaiAIQQhqKQMANwMAIAZBIGohBiAFQQFrIgUNAAsMCgtBudHCAC0AABpBwAFBCBCLBSIERQ0MIAJFDQEgAkEBRg0OIANBsA1qIAFBOGopAwAiCiARQgAQ/AMgA0GgDGogCiASQgAQ/AMgA0GQC2ogCiAUQgAQ/AMgA0GACmogCiAXQgAQ/AMgA0GgDWogAykDsA0iDUIAQonHmaSu8IHph38Q/AMgA0GQDWogA0GoDWopAwAiCkLH+vPD7YKjkDxCABD8AyADQYANaiAKQo2Vx8OW0trAl39CABD8AyADQfAMaiAKQt2whYzotpGouH9CABD8AyADQeAMaiAKQqnAxomuzpOyMEIAEPwDIANB0AxqIAFBMGopAwAiCiARQgAQ/AMgA0HAC2ogCiASQgAQ/AMgA0GwCmogCiAUQgAQ/AMgA0GgCWogCiAXQgAQ/AMgA0GQDGogAykDgA0iEyADQbgNaikDACIMIAMpA6AMfCIQfCILIANBmA1qKQMAIA0gAykDkA0iCnwgClStfHwiDSADKQPQDHwiDkIAQonHmaSu8IHph38Q/AMgA0GADGogA0GYDGopAwAiCkLH+vPD7YKjkDxCABD8AyADQfALaiAKQo2Vx8OW0trAl39CABD8AyADQeALaiAKQt2whYzotpGouH9CABD8AyADQdALaiAKQqnAxomuzpOyMEIAEPwDIANBwAxqIAFBKGopAwAiCiARQgAQ/AMgA0GwC2ogCiASQgAQ/AMgA0GgCmogCiAUQgAQ/AMgA0GQCWogCiAXQgAQ/AMgA0GAC2ogA0HYDGopAwAgDSAOVq18IhggAykDwAt8Ig8gA0GoDGopAwAgDCAQVq18IhUgAykDkAt8IgwgAykD8Ax8IhAgCyANVq0gA0GIDWopAwAgCyATVK18fHwiGXwiCyADKQPwC3wiDSADQYgMaikDACADKQOADCIKIA58IApUrXx8Ig4gAykDwAx8IhNCAEKJx5mkrvCB6Yd/EPwDIANB8ApqIANBiAtqKQMAIgpCx/rzw+2Co5A8QgAQ/AMgA0HgCmogCkKNlcfDltLawJd/QgAQ/AMgA0HQCmogCkLdsIWM6LaRqLh/QgAQ/AMgA0HACmogCkKpwMaJrs6TsjBCABD8AyADQbAMaiABKQMgIgogEUIAEPwDIANBoAtqIAogEkIAEPwDIANBkApqIAogFEIAEPwDIANBgAlqIAogF0IAEPwDIANB8AlqIANByAxqKQMAIA4gE1atfCIbIAMpA7ALfCIWIANBmAtqKQMAIAwgFVStfCIcIAMpA4AKfCIVIAMpA+AMfCIaIBAgGVatIANB+AxqKQMAIAwgEFatfHx8IgwgAykDsAp8IhAgCyAPVK0gA0HIC2opAwAgDyAYVK18fHwiDyADKQPgC3wiGCANIA5WrSADQfgLaikDACALIA1WrXx8fCIZfCILIAMpA+AKfCINIANB+ApqKQMAIAMpA/AKIgogE3wgClStfHwiDiADKQOwDHwiE0IAQonHmaSu8IHph38Q/AMgA0HgCWogA0H4CWopAwAiCkLH+vPD7YKjkDxCABD8AyADQdAJaiAKQo2Vx8OW0trAl39CABD8AyADQcAJaiAKQt2whYzotpGouH9CABD8AyADQbAJaiAKQqnAxomuzpOyMEIAEPwDIANBuAlqKQMAIANByApqKQMAIANB2AtqKQMAIAwgGlStIANB6AxqKQMAIBUgGlatfHwgA0GICmopAwAgFSAcVK18fCIVIAMpA6AJfCIKIA8gEFStIANBuApqKQMAIAwgEFatfHx8IgwgAykD0At8IhAgDFStfCAQIBggGVatIANB6AtqKQMAIA8gGFatfHx8Ig8gEFStfCAKIAxWrSADQagJaikDACAKIBVUrXx8fCIVIAMpA5AJfCIKIANBqApqKQMAIA8gDyADKQOgCnwiDFatfCAMIAwgCyAWVK0gA0G4C2opAwAgFiAbVK18fHwiD1atfHwiDCADKQPACnwiECAMVK18IBAgA0HYCmopAwAgDyAPIAMpA9AKfCIWVq18IBYgFiANIA5WrSADQegKaikDACALIA1W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CkKpwMaJrs6TsjBCABD8AyADQYAjaiABQegBaikDACIKIBFCABD8AyADQZAjaiAKIBJCABD8AyADQaAjaiAKIBRCABD8AyADQbAjaiAKIBdCABD8AyADQeAgaiADQcgiaikDACANIA5WrXwiGCADKQPQInwiDyADQZgiaikDACAMIBBWrXwiFSADKQOgInwiDCADKQPwIHwiECALIA1WrSADQdghaikDACALIBNUrXx8fCIZfCILIAMpA6AhfCINIANBuCFqKQMAIAMpA7AhIgogDnwgClStfHwiDiADKQOAI3wiE0IAQonHmaSu8IHph38Q/AMgA0HQIGogA0HoIGopAwAiCkLH+vPD7YKjkDxCABD8AyADQcAgaiAKQo2Vx8OW0trAl39CABD8AyADQbAgaiAKQt2whYzotpGouH9CABD8AyADQaAgaiAKQqnAxomuzpOyMEIAEPwDIANBwCNqIAEpA+ABIgogEUIAEPwDIANB0CNqIAogEkIAEPwDIANB4CNqIAogFEIAEPwDIANB8CNqIAogF0IAEPwDIANBgCBqIANBiCNqKQMAIA4gE1atfCIbIAMpA5AjfCIWIANBqCJqKQMAIAwgFVStfCIcIAMpA7AifCIVIAMpA5AgfCIaIBAgGVatIANB+CBqKQMAIAwgEFatfHx8IgwgAykD4CJ8IhAgCyAPVK0gA0HYImopAwAgDyAYVK18fHwiDyADKQOQIXwiGCANIA5WrSADQaghaikDACALIA1WrXx8fCIZfCILIAMpA8AgfCINIANB2CBqKQMAIAMpA9AgIgogE3wgClStfHwiDiADKQPAI3wiE0IAQonHmaSu8IHph38Q/AMgA0HwH2ogA0GIIGopAwAiCkLH+vPD7YKjkDxCABD8AyADQeAfaiAKQo2Vx8OW0trAl39CABD8AyADQdAfaiAKQt2whYzotpGouH9CABD8AyADQcAfaiAKQqnAxomuzpOyMEIAEPwDIAFBwAFqIQUCQAJAIANByB9qKQMAIANBqCBqKQMAIANBiCFqKQMAIAwgGlStIANBmCBqKQMAIBUgGlatfHwgA0G4ImopAwAgFSAcVK18fCIVIAMpA/AifCIKIA8gEFStIANB6CJqKQMAIAwgEFatfHx8IgwgAykDgCF8IhAgDFStfCAQIBggGVatIANBmCFqKQMAIA8gGFat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aikDADcDACAEIAcpAwA3A6ACIARB2AJqIAhBGGopAwA3AwAgBEHQAmogCEEQaikDADcDACAEQcgCaiAIQQhqKQMANwMAIAQgCCkDADcDwAIgBEH4AmogAUEYaikDADcDACAEQfACaiABQRBqKQMANwMAIARB6AJqIAFBCGopAwA3AwAgBCABKQMANwPgAiAEQRhqIANBiC5qKQMANwMAIARBEGogA0GALmopAwA3AwAgBEEIaiADQfgtaikDADcDACAEIAMpA/AtNwMAIARBOGogA0GoLmopAwA3AwAgBEEwaiADQaAuaikDADcDACAEQShqIANBmC5qKQMANwMAIAQgAykDkC43AyAgBEHYAGogA0HILmopAwA3AwAgBEHQAGogA0HALmopAwA3AwAgBEHIAGogA0G4LmopAwA3AwAgBCADKQOwLjcDQCAEQfgAaiADQeguaikDADcDACAEQfAAaiADQeAuaikDADcDACAEQegAaiADQdguaikDADcDACAEIAMpA9AuNwNgIARBmAFqIANBiC9qKQMANwMAIARBkAFqIANBgC9qKQMANwMAIARBiAFqIANB+C5qKQMANwMAIAQgAykD8C43A4ABQQwhAgsgACACNgIIIAAgBDYCBCAAIAI2AgAgA0GQL2okAA8LQQtBC0Gcq8EAEJgEAAsgA0EANgLIKyADQcQraiADQcAraiADQcgrakG8qcEAENEEAAtBCEHAARCoBQALQQhBgAMQqAUAC0EBQQFB3KnBABCYBAALQQJBAkHsqcEAEJgEAAtBA0EDQfypwQAQmAQAC0EEQQRBjKrBABCYBAALQQFBAUG8qsEAEJgEAAtBBiACQcyqwQAQmAQAC0EHQQdB3KrBABCYBAALQQhBCEHsqsEAEJgEAAtBCUEJQfyqwQAQmAQAC0EKQQpBjKvBABCYBAALIAcgBRCDBQALsKUBAhh/On4jAEGABWsiAiQAIABBOGoiAykDACFKIABBMGoiCCkDACFLIABBKGoiCikDACFMIABBIGoiCykDACFNIABBGGoiBCkDACFOIABBEGoiBikDACFPIABBCGoiBykDACFQIAApA7gBITkgACkDsAEhIyAAKQOoASErIAApA6ABIS0gACkDmAEhOiAAKQOQASEuIAApA4gBIS8gACkDgAEhNCAAKQN4ITMgACkDcCEoIAAp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AwA3AwAgBSAsKQMANwPgBCARQQFGDQIgLEFAayEDIAVBqAdqIgogBCkDADcDACAFQaAHaiIJIAcpAwA3AwAgBUGYB2oiDCALKQMANwMAIDcgNikDADcDACAFQYgHaiIPIBIpAwA3AwAgBUGAB2oiCyAIKQMANwMAIAVB+AZqIgcgFSkDADcDACAFIAUpA+AENwPwBkEAIBFBAWtB////H3FrIQQDQCAQIAopAwA3AwAgFCAJKQMANwMAID8gDCkDADcDACAqIDcpAwA3AwAgQCAPKQMANwMAIDwgCykDADcDACAdIAcpAwA3AwAgBSAFKQPwBjcDsAcgKyADQSBqKQMANwMAICtBCGogA0EoaikDADcDACArQRBqIANBMGopAwA3AwAgK0EYaiADQThqKQMANwMAIAVBuAhqIANBCGopAwAiVDcDACAFQcAIaiADQRBqKQMAIlU3AwAgBUHICGogA0EYaikDACJTNwMAIDQgAykDACJSNwMAIDRBCGogVDcDACA0QRBqIFU3AwAgNEEYaiBTNwMAIDRBIGogKykDADcDACA0QShqIAVB2AhqKQMANwMAIDRBMGogBUHgCGopAwA3AwAgNEE4aiAFQegIaikDADcDACAFIFI3A7AIIAVB8AZqIAVBsAdqIDQQKiADQUBrIQMgBEEBaiIEDQALIBkgBSkD8AY3AwAgGUE4aiAKKQMANwMAIBlBMGogCSkDADcDACAZQShqIAwpAwA3AwAgGUEgaiA3KQMANwMAIBlBGGogDykDADcDACAZQRBqIAspAwA3AwAgGUEIaiAHKQMANwMADAMLIAggOBCDBQALQfyIwAAQmAUACyAZIAUpA+AENwMAIBlBOGogBCkDADcDACAZQTBqIAcpAwA3AwAgGUEoaiALKQMANwMAIBlBIGogNikDADcDACAZQRhqIBIpAwA3AwAgGUEQaiAIKQMANwMAIBlBCGogFSkDADcDAAsgBUGQA2ogGUEIaikDADcDACAFQZgDaiAZQRBqKQMANwMAIAVBoANqIBlBGGopAwA3AwAgBUGoA2ogGUEgaikDADcDACAFQbADaiAZQShqKQMANwMAIAVBuANqIBlBMGopAwA3AwAgBUHAA2ogGUE4aikDADcDACAFIBkpAwA3A4gDIAVBsAdqIQ8jAEGgAWsiByQAIAcgBUHIAmoiBCAE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KAIEIQIDQCACKAIAIgMEQCACQQRqKAIAIANBBXQQlAULIAJBDGohAiABQQFrIgENAAsLIDooAgAiAQRAIDooAgQgAUEMbBCUBQsgOigCDCIBBEAgOigCECABQQV0EJQFCyAGQZAIaiQADBMLDA8LDA4LDA0LQQFBAUGsicAAEJgEAAtBAEEAQZyJwAAQmAQAC0EBIAFBjInAABCYBAALQQhB4AAQqAUAC0EIQSAQqAUACyAGQgI3A2BBwIfAAEErIAZB4ABqQbyJwABBzInAABD9AwALIAZCAjcDYEHAh8AAQSsgBkHgAGpBvInAAEHcicAAEP0DAAsgAyABEIMFAAsgBkICNwNgQcCHwABBKyAGQeAAakG8icAAQeyJwAAQ/QMACyAGQgI3A2BBwIfAAEErIAZB4ABqQbyJwABB/InAABD9AwALIAEgAxCDBQALIAogARCDBQALIAEgAxCDBQALQZydwABBKyAGQeAAakHIncAAQdidwAAQ/QMAC0EEQRgQqAUACyAKIAEQgwUACyAUIAdBMGxqIgFBKGogJUEwaikCADcCACABQSBqICVBKGopAgA3AgAgAUEYaiAlQSBqKQIANwIAIAFBEGogJUEYaikCADcCACABQQhqICVBEGopAgA3AgAgASAlKQIINwIAIAdBAWohByALQQFqIgsgG0cNAAsLICIgBzYCACAlQdAAaiQADAELIAQgDhCDBQALIAVBkANqIBUoAgAiEzYCACAFIAUpAvABNwOIAwJAAkACQAJAAkACQCATBEACQCAFKAKMAyIcKAIIIgJFDQAgAkEFdCEBIAJB////H0sEQEEAIQgMCAsgHCgCBCEEQQAhA0G50cIALQAAGkEIIQggAUEIEIsFIi9FDQcgAkEFdCEBIAIhBwNAIAEgA0YNASADIC9qIg0gAyAEaiILKQMANwMAIA1BGGogC0EYaikDADcDACANQRBqIAtBEGopAwA3AwAgDUEIaiALQQhqKQMANwMAIANBIGohAyAHQQFrIgcNAAsLQQghIEEIISgCQCAcKAIUIgRFDQAgBEEFdCEBIARB////H0sEQEEAIQgMCwsgHCgCECELQQAhA0G50cIALQAAGkEIIQggAUEIEIsFIihFDQogBEEFdCEBIAQhBwNAIAEgA0YNASADIChqIgwgAyALaiINKQMANwMAIAxBGGog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NgKgCSAGIEE2ApwJIAYgATYCmAkgBiAeIDJqNgKUCSAGIDI2ApAJIAYgBkGnBGo2ArAJIAYgBkGmBGo2AqwJIAYgBDYCsAQgBkEANgKsBCAGIDA2AqgEIwBBkAFrIgQkACAGQagEaiILKAIEIQcgCygCACAGQZAJaiIfIgMoAhQiCSADKAIQIghHBH8gCSAIayEKIAMoAiAhDCADKAIcIRIgAygCACAIaiEPIAcgCWogCGsgAygCCCAIQeAAbGohDSALKAIIIAdB4ABsaiEWIARBMGohCEEAIQsDQCALIA1qIQMCQCAPLQAAIgcgEi0AAEcEQCAHIAwtAABHBEAgBEEAQeAAEK8FGgwCCwJAAkAgA0GomcEAQTAQrgVFBEAgA0EwaiIHQaiZwQBBMBCuBUUNAQsgBEGIAWogA0HYAGopAwA3AwAgBEGAAWogA0HQAGopAwA3AwAgBEH4AGogA0HIAGopAwA3AwAgBEHwAGogA0FAaykDADcDACAEQegAaiADQThqKQMANwMAIAQgA0EwaikDADcDYCAIIARB4ABqEMIDDAELIAggBykDADcDACAIQShqIAdBKGopAwA3AwAgCEEgaiAHQSBqKQMANwMAIAhBGGogB0EYaikDADcDACAIQRBqIAdBEGopAwA3AwAgCEEIaiAHQQhqKQMANwMACyAEQShqIANBKGopAwA3AwAgBEEgaiADQSBqKQMANwMAIARBGGogA0EYaikDADcDACAEQRBqIANBEGopAwA3AwAgBEEIaiADQQhqKQMANwMAIAQgAykDADcDAAwBCyAEQQhqIANBCGopAwA3AwAgBEEQaiADQRBqKQMANwMAIARBGGogA0EYaikDADcDACAEQSBqIANBIGopAwA3AwAgBEEoaiADQShqKQMANwMAIAhBKGogA0HYAGopAwA3AwAgCEEgaiADQdAAaikDADcDACAIQRhqIANByABqKQMANwMAIAhBEGogA0FAaykDADcDACAIQQhqIANBOGopAwA3AwAgCCADQTBqKQMANwMAIAQgAykDADcDAAsgCyAWaiAEQeAAEK0FGiAPQQFqIQ8gC0HgAGohCyAKQQFrIgoNAAsFIAcLNgIAIARBkAFqJAAgBigC2AoiB0UNAiAGKALQCiE5IBogBigC1AoiGykDMDcDACAaQShqIiQgG0HYAGopAwA3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KQP4CCJafSJcIFggWVYgW0L//8+K6///1R5Wcq0iWX0hW0K/pZScz/DSu+QAIAYpA/AIIlh9Il0gWSBcViBaQqTsw7WP1LSY5wBWcq0iWn0hWULX2a6a5PbpjcsAIAYpA+gIIlx9Il8gWiBdViBYQr+llJzP8NK75ABWcq0iWn0hWEKr1f7///+//7l/IF59IV5Cms3/y6O9xIAaIAYpA+AIIFogX1YgXELX2a6a5PbpjcsAVnKtfH0MAQsgBikDiAkhXiAGKQOACSFXIAYpA/gIIVsgBikD8AghWSAGKQPoCCFYIAYpA+AICyFaIA5BDGohDiADIAYpA5AFNwMAIAMgVTcDWCADIFE3A1AgAyBUNwNIIAMgUjcDQCADIFM3AzggAyBWNwMwIANBKGogBCkDADcDACADQSBqIAgpAwA3AwAgA0EYaiALKQMANwMAIANBEGogDykDADcDACADQQhqIAkpAwA3AwAgA0G4AWogVTcDACADQbABaiBRNwMAIANBqAFqIFQ3AwAgA0GgAWogUjcDACADQZgBaiBTNwMAIANBkAFqIFY3AwAgA0GIAWogBCkDADcDACADQYABaiAIKQMANwMAIANB+ABqIAspAwA3AwAgA0HwAGogDykDADcDACADQegAaiAJKQMANwMAIAMgBikDkAU3A2AgA0HoAWogBCkDADcDACADQeABaiAIKQMANwMAIANB2AFqIAspAwA3AwAgA0HQAWogDykDADcDACADQcgBaiAJKQMANwMAIAMgBikDkAU3A8ABIANBmAJqIFU3AwAgA0GQAmogUTcDACADQYgCaiBUNwMAIANBgAJqIFI3AwAgA0H4AWogUzcDACADQfABaiBWNwMAIANByAJqIAZB2AhqKQMANwMAIANBwAJqIAZB0AhqKQMANwMAIANBuAJqIAZByAhqKQMANwMAIANBsAJqIAZBwAhqKQMANwMAIANBqAJqIAZBuAhqKQMANwMAIAMgBikDsAg3A6ACIANB+AJqIF43AwAgA0HwAmogVzcDACADQegCaiBbNwMAIANB4AJqIFk3AwAgA0HYAmogWDcDACADQdACaiBaNwMAIAZBBDYCzAUgBiADNgLIBSAGQQQ2AsQFIAZBxAVqQQQgBxDTAyAGKALIBSIfIAYoAswFIghB4ABsIg9qIQlBACEDA0AgJCAbIAMiBGoiC0HYAGopAwA3AwAgKyALQdAAaikDADcDACAtIAtByABqKQMANwMAIC4gC0FAaykDADcDACAvIAtBOGopAwA3AwAgGiALQTBqKQMANwMAICMgC0EIaikDADcDACAhIAtBEGopAwA3AwAgJSALQRhqKQMANwMAICYgC0EgaikDADcDACAnIAtBKGopAwA3AwAgBiALKQMANwOQCSADIAlqIAZBkAlqQeAAEK0FGiADQeAAaiEDIAhBAWohCCAHQQFrIgcNAAsgBiAINgLMBSAGKALEBSE6AkAgCARAIAQgD2pB4ABqIQRBACEDIB8hBwNAIAZBqARqIAMgH2oiCEHgABCtBRoCQCAjIAhB4AAQrQUiMUGomcEAQTAQrgVFBEAgQkGomcEAQTAQrgVFDQELIAcgBkGoBGpB4AAQrAVB4ABqIQcLIAQgA0HgAGoiA0cNAAsgByAfRw0BC0G50cIALQAAGkEMQQQQiwUiC0UNAkG50cIALQAAGkEwQQgQiwUiCEUNAyAIQShqQdCFwAApAwA3AwAgCEEgakHIhcAAKQMANwMAIAhBGGpBwIXAACkDADcDACAIQRBqQbiFwAApAwA3AwAgCEEIakGwhcAAKQMANwMAIAhBqIXAACkDADcDACAGQQA6ALAEIAYgCEEwajYCrAQgBiAINgKoBCAGQZgIaiAGQagEahDAAiAGKAKgCCIEQQJPBEAgBEEBdiEHIAYoApwIIgMgBEEwbGpBMGshBANAIAMpAwAhUSADIAQpAwA3AwAgJyADQShqIg8pAwA3AwAgJiADQSBqIgkpAwA3AwAgJSADQRhqIgopAwA3AwAgISADQRBqIgwpAwA3AwAgIyADQQhqIhIpAwA3AwAgDyAEQShqIg8pAwA3AwAgCSAEQSBqIgkpAwA3AwAgCiAEQRhqIgopAwA3AwAgDCAEQRBqIgwpAwA3AwAgEiAEQQhqIhIpAwA3AwAgBiBRNwOQCSAPICcpAwA3AwAgCSAmKQMANwMAIAogJSkDADcDACAMICEpAwA3AwAgEiAjKQMANwMAIAQgBikDkAk3AwAgBEEwayEEIANBMGohAyAHQQFrIgcNAAsLIAsgBikCmAg3AgAgC0EIaiAGQaAIaigCADYCACAIQTAQlAUgBkEBNgKICCAGIAs2AoQIIAZBATYCgAggBkGQCWogBkGACGoQiAIMDQtBACEIIAcgH2siBEHgAG4iC0H4AGwiA0EASCAEQeDMmbMGS3INA0G50cIALQAAGkEIIQggA0EIEIsFIgRFDQMgBkEANgKwBCAGIAQ2AqwEIAYgCzYCqAQgBiAENgKYCSAGQQA2ApQJIAYgKTYCkAkjAEHQA2siBCQAIAZBkAlqIggoAgQhCiAIKAIAIAcgHyIDRwRAIAgoAgggCkH4AGxqIQwgCiAHIANrQeAAbiIJaiEKIARB8AJqIQsgBEHoAGohECAEQZACaiEPIARBsAFqIRIDQCASQShqIANB2ABqIhEpAwA3AwAgEkEgaiADQdAAaiIcKQMANwMAIBJBGGogA0HIAGoiIikDADcDACASQRBqIANBQGsiKikDADcDACASQQhqIANBOGoiLCkDADcDACASIANBMGoiCCkDADcDACAEQYgBaiADQQhqIg0pAwA3AwAgBEGQAWogA0EQaiIWKQMANwMAIARBmAFqIANBGGoiFCkDADcDACAEQaABaiADQSBqIhkpAwA3AwAgBEGoAWogA0EoaiITKQMANwMAIAQgAykDADcDgAEgD0EoaiARKQMANwMAIA9BIGogHCkDADcDACAPQRhqICIpAwA3AwAgD0EQaiAqKQMANwMAIA9BCGogLCkDADcDACAPIAgpAwA3AwAgBEHoAWogDSkDADcDACAEQfABaiAWKQMANwMAIARB+AFqIBQpAwA3AwAgBEGAAmogGSkDADcDACAEQYgCaiATKQMANwMAIAQgAykDADcD4AECQAJAIANBqJnBAEEwEK4FRQRAIAhBqJnBAEEwEK4FRQ0BCyAEQcgDaiAIQShqKQMANwMAIARBwANqIAhBIGopAwA3AwAgBEG4A2ogCEEYaikDADcDACAEQbADaiAIQRBqKQMANwMAIARBqANqIAhBCGopAwA3AwAgBCAIKQMANwOgAyALIARBoANqEMIDDAELIAsgCCkDADcDACALQShqIAhBKGopAwA3AwAgC0EgaiAIQSBqKQMANwMAIAtBGGogCEEYaikDADcDACALQRBqIAhBEGopAwA3AwAgC0EIaiAIQQhqKQMANwMACyAEQegCaiATKQMANwMAIARB4AJqIBkpAwA3AwAgBEHYAmogFCkDADcDACAEQdACaiAWKQMANwMAIARByAJqIA0pAwA3AwAgBCADKQMA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0ABqKQMANwMAIAVBgBFqIAFB2ABqKQMANwMAIAUgASkDADcDqBAgBSABKQMwNwPYECAFQaAUaiIBIAVBqBBqIgZB4AAQrQUaIAYgARC6BCAFKAKsECEBIAUoAqgQIQYCQAJAAkACQAJAAn8CQAJAAkACQCAFKAKwECIMQQJGBEAgCSABQThqKQMANwMAIAsgAUFAaykDADcDACAHIAFByABqKQMANwMAIAogAUHQAGopAwA3AwAgCCABQdgAaikDADcDACAFIAEpAzA3A6gQIAEpAyghIyABKQMgISIgASkDGCEVIAEpAxAhISABKQMIIRogASgCBCEIIAEoAgAhCiAGBEAgASAGQTBsEJQFCyAFQegTaiAFQdAQaiIGKQMANwMAIAVB4BNqIAVByBBqIgcpAwA3AwAgBUHYE2ogBUHAEGoiCykDADcDACAFQdATaiAFQbgQaiIJKQMANwMAIAVByBNqIAVBsBBqIgwpAwA3AwAgBSAFKQOoEDcDwBMgBiACQShqKQMANwMAIAcgAkEgaikDADcDACALIAJBGGopAwA3AwAgCSACQRBqKQMANwMAIAwgAkEIaikDADcDACAFQeAQaiACQThqKQMANwMAIAVB6BBqIAJBQGspAwA3AwAgBUHwEGogAkHIAGopAwA3AwAgBUH4EGogAkHQAGopAwA3AwAgBUGAEWogAkHYAGopAwA3AwAgBSACKQMANwOoECAFIAIpAzA3A9gQIAVBoBRqIgEgBUGoEGoiAkHgABCtBRogAiABELoEIAUoAqwQIQEgBSgCqBAhAiAFKAKwECIOQQJHDQEgDCABQThqKQMANwMAIAkgAUFAaykDADcDACALIAFByABqKQMANwMAIAcgAUHQAGopAwA3AwAgBiABQdgAaikDADcDACAFIAEpAzA3A6gQIAEpAyghKCABKQMgIScgASkDGCEgIAEpAxAhHiABKQMIISYgASgCBCEGIAEoAgAhByACBEAgASACQTBsEJQFCyAFQZgUaiAFQdAQaikDADcDACAFQZAUaiAFQcgQaikDADcDACAFQYgUaiAFQcAQaikDADcDACAFQYAUaiAFQbgQaikDADcDACAFQfgTaiAFQbAQaikDADcDACAFIAUpA6gQNwPwEwJAAkACQCANDgIBAgALQcDkwQBBD0HQ5MEAELkEAAtBudHCAC0A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KQMANwMAIAZB+AZqIhggBykDADcDACAGIAYpA+AENwPwBkEAIBBBAWtB////H3FrIQQDQCAKIA4pAwA3AwAgBSALKQMANwMAICcgDCkDADcDACAdICQpAwA3AwAgKCAPKQMANwMAICkgESkDADcDACAbIBgpAwA3AwAgBiAGKQPwBjcDsAcgFyADQSBqKQMANwMAIBdBCGogA0EoaikDADcDACAXQRBqIANBMGopAwA3AwAgF0EYaiADQThqKQMANwMAIAZBuAhqIANBCGopAwAiUDcDACAGQcAIaiADQRBqKQMAIlE3AwAgBkHICGogA0EYaikDACJTNwMAICMgAykDACJVNwMAICNBCGogUDcDACAjQRBqIFE3AwAgI0EYaiBTNwMAICNBIGogFykDADcDACAjQShqIAZB2AhqKQMANwMAICNBMGogBkHgCGopAwA3AwAgI0E4aiAGQegIaikDADcDACAGIFU3A7AIIAZB8AZqIAZBsAdqICMQLyADQUBrIQMgBEEBaiIEDQALIBMgBikD8AY3AwAgE0E4aiAOKQMANwMAIBNBMGogCykDADcDACATQShqIAwpAwA3AwAgE0EgaiAkKQMANwMAIBNBGGogDykDADcDACATQRBqIBEpAwA3AwAgE0EIaiAYKQMANwMADAMLIAUgJRCDBQALQfyIwAAQmAUACyATIAYpA+AENwMAIBNBOGogCykDADcDACATQTBqIAwpAwA3AwAgE0EoaiAEKQMANwMAIBNBIGogISkDADcDACATQRhqIBIpAwA3AwAgE0EQaiAJKQMANwMAIBNBCGogBykDADcDAAsgBkGQA2ogE0EIaikDADcDACAGQZgDaiATQRBqKQMANwMAIAZBoANqIBNBGGopAwA3AwAgBkGoA2ogE0EgaikDADcDACAGQbADaiATQShqKQMANwMAIAZBuANqIBNBMGopAwA3AwAgBkHAA2ogE0E4aikDADcDACAGIBMpAwA3A4gDIAZBsAdqIQQjAEGgAWsiAyQAIAMgBkHIAmoiCyIMIAwQLyADQUBrIg4gDCADEC8CQAJAIA5B2JnBAEEgEK4FRQRAIANB4ABqIgxB2JnBAEEgEK4FRQ0BCyADQZgBaiADQfgAaikDADcDACADQZABaiADQfAAaikDADcDACADQYgBaiADQegAaikDADcDACADIAMpA2A3A4ABAn4gA0GAAWpB+LLAAEEgEK4FBEAgAykDkAFCf4UiUSADKQOYASJTQq/4//9vVq0iVX0hUCADKQOIAUJ/hSJUIFEgVVStIlV9IVFCr/j//28gU30hUyADKQOAAUJ/hSBUIFVUrX0MAQsgAykDmAEhUyADKQOQASFQIAMpA4gBIVEgAykDgAELIVUgBCBTNwM4IAQgUDcDMCAEIFE3AyggBCBVNwMgDAELIAQgDCkDADcDICAEQThqIAxBGGopAwA3AwAgBEEwaiAMQRBqKQMANwMAIARBKGogDEEIaikDADcDAAsgBCADKQNANwMAIARBGGogA0HYAGopAwA3AwAgBEEQaiADQdAAaikDADcDACAEQQhqIANByABqKQMANwMAIANBoAFqJAAgBkGQBGoiDyAEIAZBiANqEC8gBkHgBGogCxCiA0G50cIALQAAGgJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAQYACQQgQiwUiAwRAICQgISkDADcDACAGQYgHaiIzIBIpAwA3AwAgBkGAB2oiNCAJKQMANwMAIAZB+AZqIiwgBykDADcDACAkQQhqICFBCGoiDCkDADcDACAkQRBqICFBEGoiCykDADcDACAkQRhqICFBGGoiDikDADcDACAGIAYpA+AENwPwBiAGQcgIaiI1IBIpAwA3AwAgBkHACGoiNiAJKQMANwMAIAZBuAhqIjcgBykDADcDACAXICEpAwA3AwAgF0EIaiJJIAwpAwA3AwAgF0EQaiJKIAspAwA3AwAgF0EYaiJLIA4pAwA3AwAgBiAGKQPgBDcDsAggBkHgA2oiKiASKQMANwMAIAZB2ANqIiYgCSkDADcDACATIAcpAwA3AwAgHyAhKQMANwMAIB9BCGoiOCAMKQMANwMAIB9BEGoiOSALKQMANwMAIB9BGGoiOiAOKQMANwMAIAYgBikD4AQ3A8gDIAQgDxCiAyADQThqIAZBqAdqKQMANwMAIANBMGogBkGgB2opAwA3AwAgA0EoaiAGQZgHaikDADcDACADQSBqICQpAwA3AwAgA0EYaiAzKQMANwMAIANBEGogNCkDADcDACADQQhqICwpAwA3AwAgAyAGKQPwBjcDACADIAYpA7AINwNAIANByABqIDcpAwA3AwAgA0HQAGogNikDADcDACADQdgAaiA1KQMA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AWogKykDADcDACAJQdgBaiBAKQMANwMAIAlB0AFqIDwpAwA3AwAgCUHIAWogHikDADcDACAJIAUpA7AHNwPAASAFQQQ2AtwEIAUgCTYC2AQgBUEENgLUBCAFQdQEakEEIBIQ0QMgBSgC2AQiCSAFKALcBCIWQQZ0IgxqIQdBACEDA0AgKyAtIAMiBGoiCkEgaikDADcDACBCIApBKGopAwA3AwAgQyAKQTBqKQMANwMAIEQgCkE4aikDADcDACAKQRhqKQMAIVQgCkEQaikDACFTIApBCGopAwAhUiADIAdqIhAgCikDADcDACAQQQhqIFI3AwAgEEEQaiBTNwMAIBBBGGogVDcDACAQQSBqICspAwA3AwAgEEEoaiA/KQMANwMAIBBBMGogEykDADcDACAQQThqIA8pAwA3AwAgA0FAayEDIBZBAWohFiASQQFrIhINAAsgBSAWNgLcBCAFKALUBCE3AkAgFgRAIAQgDGpBQGshE0EAIQggCSEEA0AgJCAIIAlqIhhBOGoiDykDADcDACAOIBhBMGoiCykDADcDACAUIBhBKGoiCikDADcDACAyIBhBIGoiECkDADcDACA9IBhBGGoiDCkDADcDACA+IBhBEGoiBykDADcDACAaIBhBCGoiAykDADcDACAFIBgpAwA3A8gDIB5BOGogDykDADcDACAeQTBqIAspAwA3AwAgHkEoaiAKKQMANwMAIB5BIGogECkDADcDACAeQRhqIAwpAwA3AwAgHkEQaiAHKQMANwMAIB5BCGogAykDADcDACAeIBgpAwA3AwACQCAeQdiZwQBBIBCuBUUEQCA/QdiZwQBBIBCuBUUNAQsgGikDACFXID4pAwAhXCA9KQMAIVkgMikDACFVIBQpAwAhVCAOKQMAIVMgBSkDyAMhUiAEQThqICQpAwA3AwAgBEEwaiBTNwMAIARBKGogVDcDACAEQSBqIFU3AwAgBEEYaiBZNwMAIARBEGogXDcDACAEQQhqIFc3AwAgBCBSNwMAIARBQGshBAsgEyAIQUBrIghHDQALIAQgCUcNAQtBudHCAC0AABpBDEEEEIsFIgpFDQJBudHCAC0AABpBIEEIEIsFIgtFDQMgC0EYakHwhcAAKQMANwMAIAtBEGpB6IXAACkDADcDACALQQhqQeCFwAApAwA3AwAgC0HYhcAAKQMANwMA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AyAoaiINIAMgEWoiCSkDADcDACANQRhqIAlBGGopAwA3AwAgDUEQaiAJQRBqKQMANwMAIA1BCGogCUEIaikDADcDACADQSBqIQMgB0EBayIHDQALC0EIISYCQCAcKAIsIgFFDQAgAUEFdCEHIAFB////H0sEQEEAIQgMDAsgHCgCKCEJQQAhA0G50cIALQAAGkEIIQggB0EIEIsFIiZFDQsgAUEFdCERIAEhBwNAIAMgEUYNASADICZqIgogAyAJaiINKQMANwMAIApBGGogDUEYaikDADcDACAKQRBqIA1BEGopAwA3AwAgCkEIaiANQQhqKQMANwMAIANBIGohAyAHQQFrIgcNAAsLIAVBiAdqQfCFwAApAwA3AwAgBUGAB2pB6IXAACkDADcDACAFQfgGakHghcAAKQMANwMAIAVB2IXAACkDADcD8AYgJEEBRgRAIAIhESAEIRQgDCENIAEhEwwGCyAFQcAHakJ/NwMAIAVCfzcDuAcgBUL///////////8ANwOwByAFQvt+NwPIByAFQfAGaiAFQbAHahCdAUEIIRICQCAcQThqKAIAIgpFDQAgCkEFdCEHIApB////H0sEQEEAIQgMDAsgHEE0aigCACEJQQAhA0G50cIALQAAGkEIIQggB0EIEIsFIhJFDQsgCkEFdCERIAohBwNAIAMgEUYNASADIBJqIgsgAyAJaiINKQMANwMAIAtBGGogDUEYaikDADcDACALQRBqIA1BEGopAwA3AwAgC0EIaiANQQhqKQMANwMAIANBIGohAyAHQQFrIgcNAAsLQQghHQJAIBxBxABqKAIAIg1FDQAgDUEFdCEHIA1B////H0sEQEEAIQgMDAsgHEFAaygCACEJQQAhA0G50cIALQAAGkEIIQggB0EIEIsFIh1FDQsgDUEFdCERIA0hBwNAIAMgEUYNASADIB1qIg8gAyAJaiILKQMANwMAIA9BGGogC0EYaikDADcDACAPQRBqIAtBEGopAwA3AwAgD0EIaiALQQhqKQMANwMAIANBIGohAyAHQQFrIgcNAAsLQQghI0EIIRYCQCAcQdAAaigCACIJRQ0AIAlBBXQhByAJQf///x9LBEBBACEIDAwLIBxBzABqKAIAIQtBACEDQbnRwgAtAAAaQQghCCAHQQgQiwUiFkUNCyAJQQV0IREgCSEHA0AgAyAR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AUEYaikDADcDACAEQRBqIAFBEGopAwA3AwAgBEEIaiABQQhqKQMANwMAIARBOGogAUE4aikDADcDACAEQUBrIAFBQGspAwA3AwAgBEHIAGogAUHIAGopAwA3AwAgBEHQAGogAUHQAGopAwA3AwAgBEHYAGogAUHYAGopAwA3AwAMCwtBudHCAC0AABpBoAJBCBCLBSIEDQFBCEGgAhCoBQALQbnRwgAtAAAaQcAEQQgQiwUiBA0BQQhBwAQQqAUACyABQZABaiEHQbgBIQVCACESQgAhEUIAIRBCACEOQgAhDUIAIRYDQCADQZAEaiABIAVqKQMAIg8gHEIAEPwDIANBoARqIA8gGEIAEPwDIANBsARqIA8gF0IAEPwDIANBwARqIA8gGUIAEPwDIANB0ARqIA8gG0IAEPwDIANB4ARqIA8gHUIAEPwDIANBgARqIAMpA5AEIhUgFnwiFEIAQv3/8//P///5iX8Q/AMgA0HwA2ogA0GIBGopAwAiD0Kr1f7///+//7l/QgAQ/AMgA0HgA2ogD0L//8+K6///1R5CABD8AyADQdADaiAPQqTsw7WP1LSY5wBCABD8AyADQcADaiAPQr+llJzP8NK75ABCABD8AyADQbADaiAPQtfZrprk9umNywBCABD8AyADQaADaiAPQprN/8ujvcSAGkIAEPwDIANBqANqKQMAIBIgAykD4AQiGnwiDyADQdgEaikDACARIAMpA9AEIhJ8IhMgElStfCATIANByARqKQMAIAMpA8AEIhEgEHwiECARVK18IBAgA0G4BGopAwAgAykDsAQiESAOfCIOIBFUrXwgDiADQagEaikDACADKQOgBCIRIA18Ig0gEVStfCANIANBmARqKQMAIBQgFVStfHwiEiANVK18fCINIA5UrXx8Ig4gEFStfHwiECATVK18fCITIAMpA6ADfCIVIBNUrXwgFSAVIANBuANqKQMAIBAgECADKQOwA3wiEVatfCARIBEgA0HIA2opAwAgDiAOIAMpA8ADfCIQVq18IBAgECADQdgDaikDACANIA0gAykD0AN8Ig5WrXwgDiAOIANB6ANqKQMAIBIgAykD4AMiEnwiDSASVK18IA0gA0H4A2opAwAgFCADKQPwAyISfCASVK18fCIWIA1UrXx8Ig1WrXx8Ig5WrXx8IhBWrXx8IhFWrXwgDyAT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Ig8gA0HICWopAwAgESADKQPACSISfCITIBJUrXwgEyADQbgJaikDACADKQOwCSIRIBB8IhAgEVStfCAQIANBqAlqKQMAIAMpA6AJIhEgDnwiDiARVK18IA4gA0GYCWopAwAgAykDkAkiESANfCINIBFUrXwgDSADQYgJaikDACAUIBVUrXx8IhIgDVStfHwiDSAOVK18fCIOIBBUrXx8IhAgE1StfHwiEyADKQOQCHwiFSATVK18IBUgFSADQagIaikDACAQIBAgAykDoAh8IhFWrXwgESARIANBuAhqKQMAIA4gDiADKQOwCHwiEFatfCAQIBAgA0HICGopAwAgDSANIAMpA8AIfCIOVq18IA4gDiADQdgIaikDACASIAMpA9AIIhJ8Ig0gElStfCANIANB6AhqKQMAIBQgAykD4AgiEnwgElStfHwiFiANVK18fCINVq18fCIOVq18fCIQVq18fCIRVq18IA8gE1atIANB2AlqKQMAIA8gGlStfHx8IRIgBUEIayIFQVBHDQALIAFBMGohBQJAAkAgEkKazf/Lo73EgBpWDQAgEkKazf/Lo73EgBpSBEAgDSEPIA4hFCAQIRMgESEVDAILIBFC19mumuT26Y3LAFYNAAJAIBFC19mumuT26Y3LAFIEQCANIQ8gDiEUIBAhEyARIRUMAQsgEEK/pZScz/DSu+QAVg0BQtfZrprk9umNywAhFSAQQr+llJzP8NK75ABSBEAgDSEPIA4hFCAQIRMMAQsgDkKk7MO1j9S0mOcAVg0BQr+llJzP8NK75AAhEyAOQqTsw7WP1LSY5wBSBEAgDSEPIA4hFAwBCyANQv//z4rr///VHlYNAUKk7MO1j9S0mOcAIRQgDUL//8+K6///1R5SBEAgDSEPDAELQv//z4rr///VHiEPIBZCqtX+////v/+5f1YNAQtCms3/y6O9xIAaIRIMAQsgDUL//8+K6///1R59IhQgFkKr1f7///+//7l/VK0iE30hDyAOQqTsw7WP1LSY5wB9IhUgDUL//8+K6///1R5UIBMgFFZyrSINfSEUIBBCv6WUnM/w0rvkAH0iGiAOQqTsw7WP1LSY5wBUIA0gFVZyrSINfSETIBFC19mumuT26Y3LAH0iDiAQQr+llJzP8NK75ABUIA0gGlZyrSINfSEVIBIgEULX2a6a5PbpjcsAVCAN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Ihp8Ig8gA0GoBmopAwAgESADKQOgBiISfCITIBJUrXwgEyADQZgGaikDACADKQOQBiIRIBB8IhAgEVStfCAQIANBiAZqKQMAIAMpA4AGIhEgDnwiDiARVK18IA4gA0H4BWopAwAgAykD8AUiESANfCINIBFUrXwgDSADQegFaikDACAUIBVUrXx8IhIgDVStfHwiDSAOVK18fCIOIBBUrXx8IhAgE1StfHwiEyADKQPwBHwiFSATVK18IBUgFSADQYgFaikDACAQIBAgAykDgAV8IhFWrXwgESARIANBmAVqKQMAIA4gDiADKQOQBXwiEFatfCAQIBAgA0GoBWopAwAgDSANIAMpA6AFfCIOVq18IA4gDiADQbgFaikDACASIAMpA7AFIhJ8Ig0gElStfCANIANByAVqKQMAIBQgAykDwAUiEnwgElStfHwiFiANVK18fCINVq18fCIOVq18fCIQVq18fCIRVq18IA8gE1atIANBuAZqKQMAIA8gGlStfHx8IRIgBUEIayIFQVBHDQALIAFB8AFqIQECQAJAIBJCms3/y6O9xIAaVg0AIBJCms3/y6O9xIAaUgRAIA0hFyAOIRggECEZIBEhGwwCCyARQtfZrprk9umNywBWDQACQCARQtfZrprk9umNywBSBEAgDSEXIA4hGCAQIRkgESEbDAELIBBCv6WUnM/w0rvkAFYNAULX2a6a5PbpjcsAIRsgEEK/pZScz/DSu+QAUgRAIA0hFyAOIRggECEZDAELIA5CpOzDtY/UtJjnAFYNAUK/pZScz/DSu+QAIRkgDkKk7MO1j9S0mOcAUgRAIA0hFyAOIRgMAQsgDUL//8+K6///1R5WDQFCpOzDtY/UtJjnACEYIA1C///Piuv//9UeUgRAIA0hFwwBC0L//8+K6///1R4hFyAWQqrV/v///7//uX9WDQELQprN/8ujvcSAGiESDAELIA1C///Piuv//9UefSIPIBZCq9X+////v/+5f1StIhR9IRcgDkKk7MO1j9S0mOcAfSITIA1C///Piuv//9UeVCAPIBRUcq0iDX0hGCAQQr+llJzP8NK75AB9Ig8gDkKk7MO1j9S0mOcAVCANIBNWcq0iDX0hGSARQtfZrprk9umNywB9Ig4gEEK/pZScz/DSu+QAVCANIA9Wcq0iDX0hGyASIBFC19mumuT26Y3LAFQgDSAOVnKtfUKazf/Lo73EgBp9IRIgFkLVqoGAgIDAgMYAfCEWCyADIBY3A4AVIAMgFzcD+BQgAyAYNwPwFCADIBk3A+gUIAMgGzcD4BQgAyASNwPYFCAEQeADaiABIANB2BRqEPsCIAQgAykD8Bc3AwAgBEEIaiADQfgXaikDADcDACAEQRBqIANBgBhqKQMANwMAIARBGGogA0GIGGopAwA3AwAgBEEgaiADQZAYaikDADcDACAEQShqIANBmBhqKQMANwMAIARBuARqIAtBKGopAwA3AwAgBEGwBGogC0EgaikDADcDACAEQagEaiALQRhqKQMANwMAIARBoARqIAtBEGopAwA3AwAgBEGYBGogC0EIaikDADcDACAEIAspAwA3A5AEIARB2ABqIAdBKGopAwA3AwAgBEHQAGogB0EgaikDADcDACAEQcgAaiAHQRhqKQMANwMAIARBQGsgB0EQaikDADcDACAEQThqIAdBCGopAwA3AwAgBCAHKQMANwMwIARBiAFqIANByBhqKQMANwMAIARBgAFqIANBwBhqKQMANwMAIARB+ABqIANBuBhqKQMANwMAIARB8ABqIANBsBhqKQMANwMAIARB6ABqIANBqBhqKQMANwMAIAQgAykDoBg3A2AgBEG4AWogCEEoaikDADcDACAEQbABaiAIQSBqKQMANwMAIARBqAFqIAhBGGopAwA3AwAgBEGgAWogCEEQaikDADcDACAEQZgBaiAIQQhqKQMANwMAIAQgCCkDADcDkAEgBEHoAWogA0H4GGopAwA3AwAgBEHgAWogA0HwGGopAwA3AwAgBEHYAWogA0HoGGopAwA3AwAgBEHQAWogA0HgGGopAwA3AwAgBEHIAWogA0HYGGopAwA3AwAgBCADKQPQGDcDwAEgBEGYAmogBkEoaikDADcDACAEQZACaiAGQSBqKQMANwMAIARBiAJqIAZBGGopAwA3AwAgBEGAAmogBkEQaikDADcDACAEQfgBaiAGQQhqKQMANwMAIAQgBikDADcD8AEgBEHIAmogA0GoGWopAwA3AwAgBEHAAmogA0GgGWopAwA3AwAgBEG4AmogA0GYGWopAwA3AwAgBEGwAmogA0GQGWopAwA3AwAgBEGoAmogA0GIGWopAwA3AwAgBCADKQOAGTcDoAIgBEH4AmogCUEoaikD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IARBCGogA0GIGWopAwA3AwAgBEEQaiADQZAZaikDADcDACAEQRhqIANBmBlqKQMANwMAIARBIGogA0GgGWopAwA3AwAgBEEoaiADQagZaikDADcDACAEQZgCaiAGQShqKQMANwMAIARBkAJqIAZBIGopAwA3AwAgBEGIAmogBkEYaikDADcDACAEQYACaiAGQRBqKQMANwMAIARB+AFqIAZBCGopAwA3AwAgBCAGKQMANwPwASAEQdgAaiAHQShqKQMANwMAIARB0ABqIAdBIGopAwA3AwAgBEHIAGogB0EYaikDADcDACAEQUBrIAdBEGopAwA3AwAgBEE4aiAHQQhqKQMANwMAIAQgBykDADcDMCAEQYgBaiADQdgZaikDADcDACAEQYABaiADQdAZaikDADcDACAEQfgAaiADQcgZaikDADcDACAEQfAAaiADQcAZaikDADcDACAEQegAaiADQbgZaikDADcDACAEIAMpA7AZNwNgIARBuAFqIAhBKGopAwA3AwAgBEGwAWogCEEgaikDADcDACAEQagBaiAIQRhqKQMANwMAIARBoAFqIAhBEGopAwA3AwAgBEGYAWogCEEIaikDADcDACAEIAgpAwA3A5ABCyAAIAI2AgggACAENgIEIAAgAjYCACADQeAZaiQAC4KJAQIKfxt+IwBB4BlrIgMkACADIAI2AtQUIANBDDYC0BQCQAJAIAJBDEYEQCADQdgUahD4ASADQfATaiADKQPIFyINQsau0OHB5sfvdEIAEPwDIANB4BNqIAMpA/ATQn6DIhRCAEL9//P/z///+Yl/EPwDIANB0BNqIANB6BNqKQMAIg5Cq9X+////v/+5f0IAEPwDIANBwBNqIA5C///Piuv//9UeQgAQ/AMgA0HAEmogDkKk7MO1j9S0mOcAQgAQ/AMgA0HAEWogDkK/pZScz/DSu+QAQgAQ/AMgA0HAEGogDkLX2a6a5PbpjcsAQgAQ/AMgA0HAD2ogDkKazf/Lo73EgBpCABD8AyADQYAUaiANQvGJxM7g1Lm7CkIAEPwDIANBsBNqIAMpA4AUIhAgAykDwBMiEyADQfgTaikDAHwiDyADQdgTaikDACADKQPQEyIOIBR8IA5UrXx8IhF8IhRCAEL9//P/z///+Yl/EPwDIANBoBNqIANBuBNqKQMAIg5Cq9X+////v/+5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7MO1j9S0mOcAfSIPIBhC///Piuv//9UeVCAYQv//z4rr///VHn0iFCAcQqvV/v///7//uX9UrSIQVHKtIhNUcq0iEVRyrSIVVBshHSAUIBB9IRggDyATfSEXIA4gEX0hGSANIBV9IRsgHELVqoGAgIDAgMYAfCEcDAILIANBADYC2BQgA0HUFGogA0HQFGogA0HYFGpBvKnBABDRBAALQr+llJzP8NK75AAhGULX2a6a5PbpjcsAIRsLIAMoAtwXIgQEQCADKALgFyAEQQJ0EJQFCwJAIAMoAtwUIgRFDQAgBCAEQQxsQRNqQXhxIgVqQQlqIgRFDQAgAygC2BQgBWsgBBCUBQsCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAJBAmsOCwEAAAACAAAAAAADAAsgA0EANgLoFCADQQE2AtwUIANByKvBADYC2BQgA0IENwLgFCADQdgUakHQq8EAEM0EAAtBudHCAC0AABpB4ABBCBCLBSIERQ0EIAQgASkDADcDACAEIAEpAzA3AzAgBEEoaiABQShqKQMANwMAIARBIGogAUEgaikDADcDACAEQRhqIAFBGGopAwA3AwAgBEEQaiABQRBqKQMANwMAIARBCGogAUEIaikDADcDACAEQThqIAFBOGopAwA3AwAgBEFAayABQUBrKQMANwMAIARByABqIAFByABqKQMANwMAIARB0ABqIAFB0ABqKQMANwMAIARB2ABqIAFB2ABqKQMANwMADAsLQbnRwgAtAAAaQaACQQgQiwUiBA0BQQhBoAIQqAUAC0G50cIALQAAGkHABEEIEIsFIgQNAUEIQcAEEKgFAAsgAUEwaiEHQdgAIQVCACESQgAhEUIAIRBCACEOQgAhDUIAIRYDQCADQZAEaiABIAVqKQMAIg8gHEIAEPwDIANBoARqIA8gGEIAEPwDIANBsARqIA8gF0IAEPwDIANBwARqIA8gGUIAEPwDIANB0ARqIA8gG0IAEPwDIANB4ARqIA8gHUIAEPwDIANBgARqIAMpA5AEIhUgFnwiFEIAQv3/8//P///5iX8Q/AMgA0HwA2ogA0GIBGopAwAiD0Kr1f7///+//7l/QgAQ/AMgA0HgA2ogD0L//8+K6///1R5CABD8AyADQdADaiAPQqTsw7WP1LSY5wBCABD8AyADQcADaiAPQr+llJzP8NK75ABCABD8AyADQbADaiAPQtfZrprk9umNywBCABD8AyADQaADaiAPQprN/8ujvcSAGkIAEPwDIANBqANqKQMAIBIgAykD4AQiGnwiDyADQdgEaikDACARIAMpA9AEIhJ8IhMgElStfCATIANByARqKQMAIAMpA8AEIhEgEHwiECARVK18IBAgA0G4BGopAwAgAykDsAQiESAOfCIOIBFUrXwgDiADQagEaikDACADKQOgBCIRIA18Ig0gEVStfCANIANBmARqKQMAIBQgFVStfHwiEiANVK18fCINIA5UrXx8Ig4gEFStfHwiECATVK18fCITIAMpA6ADfCIVIBNUrXwgFSAVIANBuANqKQMAIBAgECADKQOwA3wiEVatfCARIBEgA0HIA2opAwAgDiAOIAMpA8ADfCIQVq18IBAgECADQdgDaikDACANIA0gAykD0AN8Ig5WrXwgDiAOIANB6ANqKQMAIBIgAykD4AMiEnwiDSASVK18IA0gA0H4A2opAwAgFCADKQPwAyISfCASVK18fCIWIA1UrXx8Ig1WrXx8Ig5WrXx8IhBWrXx8IhFWrXwgDyATVq0gA0HoBGopAwAgDyAaVK18fHwhEiAFQQhrIgVBKEcNAAsgEkKazf/Lo73EgBpYDQUMBgsgAUEwaiEHQdgAIQVCACESQgAhEUIAIRBCACEOQgAhDUIAIRYDQCADQfANaiABIAVqKQMAIg8gHEIAEPwDIANBgA5qIA8gGEIAEPwDIANBkA5qIA8gF0IAEPwDIANBoA5qIA8gGUIAEPwDIANBsA5qIA8gG0IAEPwDIANBwA5qIA8gHUIAEPwDIANB4A1qIAMpA/ANIhUgFnwiFEIAQv3/8//P///5iX8Q/AMgA0HQDWogA0HoDWopAwAiD0Kr1f7///+//7l/QgAQ/AMgA0HADWogD0L//8+K6///1R5CABD8AyADQbANaiAPQqTsw7WP1LSY5wBCABD8AyADQaANaiAPQr+llJzP8NK75ABCABD8AyADQZANaiAPQtfZrprk9umNywBCABD8AyADQYANaiAPQprN/8ujvcSAGkIAEPwDIANBiA1qKQMAIBIgAykDwA4iGnwiDyADQbgOaikDACARIAMpA7AOIhJ8IhMgElStfCATIANBqA5qKQMAIAMpA6AOIhEgEHwiECARVK18IBAgA0GY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xIAafSESIBZC1aqBgICAwIDGAHwhFgsgAyAWNwOAFSADIA83A/gUIAMgFDcD8BQgAyATNwPoFCADIBU3A+AUIAMgEjcD2BQgA0HQGGogBSADQdgUahCnAiABQdgDaiEKIAFBsANqIQlBACEFQgAhEkIAIRFCACEQQgAhDkIAIQ1CACEWA0AgA0GACWogBSAKaikDACIPIBxCABD8AyADQZAJaiAPIBhCABD8AyADQaAJaiAPIBdCABD8AyADQbAJaiAPIBlCABD8AyADQcAJaiAPIBtCABD8AyADQdAJaiAPIB1CABD8AyADQfAIaiADKQOACSIVIBZ8IhRCAEL9//P/z///+Yl/EPwDIANB4AhqIANB+AhqKQMAIg9Cq9X+////v/+5f0IAEPwDIANB0AhqIA9C///Piuv//9UeQgAQ/AMgA0HACGogD0Kk7MO1j9S0mOcAQgAQ/AMgA0GwCGogD0K/pZScz/DSu+QAQgAQ/AMgA0GgCGogD0LX2a6a5PbpjcsAQgAQ/AMgA0GQCGogD0Kazf/Lo73EgBpCABD8AyADQZgIaikDACASIAMpA9AJIhp8Ig8gA0HICWopAwAgESADKQPACSISfCITIBJUrXwgEyADQbgJaikDACADKQOwCSIRIBB8IhAgEVStfCAQIANBqAlqKQMAIAMpA6AJIhEgDnwiDiARVK18IA4gA0GYCWopAwAgAykDkAkiESANfCINIBFUrXwgDSADQYgJaikDACAUIBVUrXx8IhIgDVStfHwiDSAOVK18fCIOIBBUrXx8IhAgE1StfHwiEyADKQOQCHwiFSATVK18IBUgFSADQagIaikDACAQIBAgAykDoAh8IhFWrXwgESARIANBuAhqKQMAIA4gDiADKQOwCHwiEFatfCAQIBAgA0HICGopAwAgDSANIAMpA8AIfCIOVq18IA4gDiADQdgIaikDACASIAMpA9AIIhJ8Ig0gElStfCANIANB6AhqKQMAIBQgAykD4AgiEnwgElStfHwiFiANVK18fCINVq18fCIOVq18fCIQVq18fCIRVq18IA8gE1atIANB2AlqKQMAIA8gGlStfHx8IRIgBUEIayIFQVBHDQALIAFBgANqIQUCQAJAIBJCms3/y6O9xIAaVg0AIBJCms3/y6O9xIAaUgRAIA0hDyAOIRQgECETIBEhFQwCCyAR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IARBuANqIAlBCGopAwA3AwAgBCAJKQMANwOwAyAEQYgEaiAKQShqKQMANwMAIARBgARqIApBIGopAwA3AwAgBEH4A2ogCkEYaikDADcDACAEQfADaiAKQRBqKQMANwMAIARB6ANqIApBCGopAwA3AwAgBCAKKQMANwPgAyAEQbgEaiALQShqKQMANwMAIARBsARqIAtBIGopAwA3AwAgBEGoBGogC0EYaikDADcDACAEQaAEaiALQRBqKQMANwMAIARBmARqIAtBCGopAwA3AwAgBCALKQMANwOQBCAEQShqIANBmBhqKQMANwMAIARBIGogA0GQGGopAwA3AwAgBEEYaiADQYgYaikDADcDACAEQRBqIANBgBhqKQMANwMAIARBCGogA0H4F2opAwA3AwAgBCADKQPwFzcDACAEQdgAaiADQcgYaikDADcDACAEQdAAaiADQcAYaikDADcDACAEQcgAaiADQbgYaikDADcDACAEQUBrIANBsBhqKQMANwMAIARBOGogA0GoGGopAwA3AwAgBCADKQOgGDcDMCAEQYgBaiADQfgYaikDADcDACAEQYABaiADQfAYaikDADcDACAEQfgAaiADQegYaikDADcDACAEQfAAaiADQeAYaikDADcDACAEQegAaiADQdgYaikDADcDACAEIAMpA9AYNwNgIARBuAFqIANBqBlqKQMANwMAIARBsAFqIANBoBlqKQMANwMAIARBqAFqIANBmBlqKQMANwMAIARBoAFqIANBkBlqKQMANwMAIARBmAFqIANBiBlqKQMANwMAIAQgAykDgBk3A5ABIARB6AFqIANB2BlqKQMANwMAIARB4AFqIANB0BlqKQMANwMAIARB2AFqIANByBlqKQMANwMAIARB0AFqIANBwBlqKQMANwMAIARByAFqIANBuBlqKQMANwMAIAQgAykDsBk3A8ABDAMLIBJCms3/y6O9xIAaUgRAIA0hDyAOIRQgECETIBEhFQwCCyARQtfZrprk9umNywBWDQAgEULX2a6a5PbpjcsAUgRAIA0hDyAOIRQgECETIBEhFUKazf/Lo73EgBohEgwCCyAQQr+llJzP8NK75ABWDQBC19mumuT26Y3LACEVIBBCv6WUnM/w0rvkAFIEQCANIQ8gDiEUIBAhE0Kazf/Lo73EgBohEgwCCyAOQqTsw7WP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AmohCSABQfABaiEGQQAhBUIAIRJCACERQgAhEEIAIQ5CACENQgAhFgNAIANB8ABqIAUgCWopAwAiDyAcQgAQ/AMgA0GAAWogDyAYQgAQ/AMgA0GQAWogDyAXQgAQ/AMgA0GgAWogDyAZQgAQ/AMgA0GwAWogDyAbQgAQ/AMgA0HAAWogDyAdQgAQ/AMgA0HgAGogAykDcCIVIBZ8IhRCAEL9//P/z///+Yl/EPwDIANB0ABqIANB6ABqKQMAIg9Cq9X+////v/+5f0IAEPwDIANBQGsgD0L//8+K6///1R5CABD8AyADQTBqIA9CpOzDtY/UtJjnAEIAEPwDIANBIGogD0K/pZScz/DSu+QAQgAQ/AMgA0EQaiAPQtfZrprk9umNywBCABD8AyADIA9Cms3/y6O9xIAaQgAQ/AMgA0EIaikDACASIAMpA8ABIhp8Ig8gA0G4AWopAwAgESADKQOwASISfCITIBJUrXwgEyADQagBaikDACADKQOgASIRIBB8IhAgEVStfCAQIANBmAFqKQMAIAMpA5ABIhEgDnwiDiARVK18IA4gA0GIAWopAwAgAykDgAEiESANfCINIBFUrXwgDSADQfgAaikDACAUIBVUrXx8IhIgDVStfHwiDSAOVK18fCIOIBBUrXx8IhAgE1StfHwiEyADKQMAfCIVIBNUrXwgFSAVIANBGGopAwAgECAQIAMpAxB8IhFWrXwgESARIANBKGopAwAgDiAOIAMpAyB8IhBWrXwgECAQIANBOGopAwAgDSANIAMpAzB8Ig5WrXwgDiAOIANByABqKQMAIBIgAykDQCISfCINIBJUrXwgDSADQdgAaikDACAUIAMpA1AiEnwgElStfHwiFiANVK18fCINVq18fCIOVq18fCIQVq18fCIRVq18IA8gE1atIANByAFqKQMAIA8gGlStfHx8IRIgBUEIayIFQVBHDQALIAFBwAFqIQECQAJAIBJCms3/y6O9xIAaVg0AIBJCms3/y6O9xIAaUgRAIA0hFyAOIRggECEZIBEhGwwCCyARQtfZrprk9umNywBWDQACQCARQtfZrprk9umNywBSBEAgDSEXIA4hGCAQIRkgESEbDAELIBBCv6WUnM/w0rvkAFYNAULX2a6a5PbpjcsAIRsgEEK/pZScz/DSu+QAUgRAIA0hFyAOIRggECEZDAELIA5CpOzDtY/UtJjnAFYNAUK/pZScz/DSu+QAIRkgDkKk7MO1j9S0mOcAUgRAIA0hFyAOIRgMAQsgDUL//8+K6///1R5WDQFCpOzDtY/UtJjnACEYIA1C///Piuv//9UeUgRAIA0hFwwBC0L//8+K6///1R4hFyAWQqrV/v///7//uX9WDQELQprN/8ujvcSAGiESDAELIA1C///Piuv//9UefSIPIBZCq9X+////v/+5f1StIhR9IRcgDkKk7MO1j9S0mOcAfSITIA1C///Piuv//9UeVCAPIBRUcq0iDX0hGCAQQr+llJzP8NK75AB9Ig8gDkKk7MO1j9S0mOcAVCANIBNWcq0iDX0hGSARQtfZrprk9umNywB9Ig4gEEK/pZScz/DSu+QAVCANIA9Wcq0iDX0hGyASIBFC19mumuT26Y3LAFQgDSAOVnKtfUKazf/Lo73EgBp9IRIgFkLVqoGAgIDAgMYAfCEWCyADIBY3A4AVIAMgFzcD+BQgAyAYNwPwFCADIBk3A+gUIAMgGzcD4BQgAyASNwPYFCAEQeAAaiABIANB2BRqEKcCIARBuAFqIAdBKGopAwA3AwAgBEGwAWogB0EgaikDADcDACAEQagBaiAHQRhqKQMANwMAIARBoAFqIAdBEGopAwA3AwAgBEGYAWogB0EIaikDADcDACAEIAcpAwA3A5ABIAQgCCkDADcDwAEgBEHIAWogCEEIaikDADcDACAEQdABaiAIQRBqKQMANwMAIARB2AFqIAhBGGopAwA3AwAgBEHgAWogCEEgaikDADcDACAEQegBaiAIQShqKQMANwMAIARBmAJqIAZBKGopAwA3AwAgBEGQAmogBkEgaikDADcDACAEQYgCaiAGQRhqKQMANwMAIARBgAJqIAZBEGopAwA3AwAgBEH4AWogBkEIaikDADcDACAEIAYpAwA3A/ABIARBKGogA0GoGWopAwA3AwAgBEEgaiADQaAZaikDADcDACAEQRhqIANBmBlqKQMANwMAIARBEGogA0GQGWopAwA3AwAgBEEIaiADQYgZaikDADcDACAEIAMpA4AZNwMAIARB2ABqIANB2BlqKQMANwMAIARB0ABqIANB0BlqKQMANwMAIARByABqIANByBlqKQMANwMAIARBQGsgA0HAGWopAwA3AwAgBEE4aiADQbgZaikDADcD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IB42AtAGIwBBwAJrIgskACAFQdAGaiIHKAIEIQggBygCACAEIA8iA0cEQCAHKAIIIAhB2ABsaiErIAggBCADa0EGdiIXaiEIIAtBgAJqIR8gC0HIAGohEyALQcABaiEbIAtBgAFqIRwDQCAcQRhqIANBOGoiFSkDADcDACAcQRBqIANBMGoiESkDADcDACAcQQhqIANBKGoiBCkDADcDACAcIANBIGoiGSkDADcDACALQegAaiIQIANBCGoiISkDADcDACALQfAAaiIJIANBEGoiDCkDADcDACALQfgAaiIHIANBGGoiFCkDADcDACALIAMpAwA3A2AgG0EYaiAVKQMANwMAIBtBEGogESkDADcDACAbQQhqIAQpAwA3AwAgGyAZKQMANwMAIAtBqAFqICEpAwA3AwAgC0GwAWogDCkDADcDACALQbgBaiAUKQMANwMAIAsgAykDADcDoAECQAJAIANB2JnBAEEgEK4FRQRAIBlB2JnBAEEgEK4FRQ0BCyALQbgCaiAZQRhqKQMANwMAIAtBsAJqIgQgGUEQaikDADcDACALQagCaiAZQQhqKQMANwMAIAsgGSkDADcDoAIgBCkDACFMIAsCfiALQaACakH4ssAAQSAQrgUEQEIAIAspA6gCIkt9IkkgTEL/////D1atIkp9IU1CgYCAgHAgCykDoAIgS0IAUiBJIEpUcq18fSFJQv////8PIEx9IUwgCykDuAJCf4UMAQsgCykDqAIhTSALKQOgAiFJIAspA7gCCzcDmAIgCyBMNwOQAiALIE03A4gCIAsgSTcDgAIMAQsgHyAZKQMANwMAIB9BGGogGUEYaikDADcDACAfQRBqIBlBEGopAwA3AwAgH0EIaiAZQQhqKQMANwMACyALQfgBaiAUKQMANwMAIAtB8AFqIAwpAwA3AwAgC0HoAWogISkDADcDACALIAMpAwA3A+ABIBMgC0GgAWogC0HgAWoQPCALQRBqIBApAwA3AwAgC0EYaiAJKQMANwMAIAtBIGogBykDADcDACALQShqIBwpAwA3AwAgC0EwaiALQYgBaikDADcDACALQThqIAtBkAFqKQMANwMAIAtBQGsgC0GYAWopAwA3AwAgCyALKQNgNwMIIANBQGshAyArIAtBCGpB2AAQrQVB2ABqISsgF0EBayIXDQALCyAINgIAIAtBwAJq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IDUgBSkDkAY3AwAgBUGAAmoiBCAFQeAGaikCADcDACAFQfgBaiIDICIpAgA3AwAgBSAFKQLQBjcD8AEgGARAIDAgGEEGdBCUBQsgLwRAID8gLxCUBQsgBUGgAWoiFSADKQMANwMAIAVBqAFqIhEgBCkDADcDACAFQbgBaiIPIAcpAwA3AwAgBUHAAWoiECAJKQMANwMAIAVByAFqIgggEykDADcDACAFQdABaiIJIBIpAwA3AwAgBUHYAWoiByAUKQMANwMAIAVB4AFqIgQgFykDADcDACAFQegBaiIDIAwpAwA3AwAgBSAFKQPwATcDmAEgBSA1KQMANwOwASAFKAKUASISIAUoAowBRgRAIAVBjAFqENoDCyAFKAKQASIaIBJBGGxqIhMgBSkDmAE3AgAgJyAPKQMANwMAIAYgECkDADcDACBIIAgpAwA3AwAgRyAJKQMANwMAIEYgBykDADcDACBFIAQpAwA3AwAgRCADKQMANwMAIBNBCGogFSkDADcCACATQRBqIBEpAwA3AgAgBSAFKQOwATcDSCAFIBJBAWoiCjYClAEgFiBDRw0ACwwECyAKIA1BkIzAABCYBAALQQEgCRCDBQALQbCHwAAQmAUACyAHIAMQgwUACyAKQQJPBEAgCkEBdiELIBJBGGwhCkEAIQcDQCAHIBpqIglBCGoiASkCACFKIAEgCiAaaiIEQQhqIgEpAgA3AgAgASBKNwIAIARBFGooAgAhAyAEQRBqIgEoAgAhAiABIAlBEGoiASkCADcCACAJKQIAIUogCSAEKQIANwIAIAQgSjcCACABIAI2AgAgCUEUaiADNgIAIApBGGshCiAHQRhqIQcgC0EBayILDQALIAUoApABIRogBSgClAEhCgsgBUFAayAFQegBaikDADcDACAFQThqIAVB4AFqKQMANwMAIAVBMGogBUHYAWopAwA3AwAgBUEoaiAFQdABaikDADcDACAFQSBqIAVByAFqKQMANwMAIAVBGGogBUHAAWopAwA3AwAgBUEQaiAFQbgBaikDADcDACAFIAUpA7ABNwMIIAUoAowBISsgDSEDA0AgAygCACIBBEAgA0EEaigCACABEJQFCyADQQxqIQMgLUEBayItDQALIAohEgsgQgRAIA0gQkEMbBCUBQsCQAJAAkACQAJAAkACQAJAAkACQAJAIBJFBEBBBCEDDAELQQAhCiASQTBsIgFBAEggEkGq1aoVS3INAUG50cIALQAAGkEEIQogAUEEEIsFIgNFDQELQQghLCAFQfgBaiIhQQA2AgAgBSADNgL0ASAFIBI2AvABIAUgAzYC2AYgBUEANgLUBiAFICE2AtAGQQAhECMAQdAAayIlJAAgBUHQBmoiAigCBCEHIAIoAgAhFwJAAkAgGiASQRhsaiIBIBpHBEAgAigCCCEUIAEgGmtBGG4hEwNAICVBOGogGiAQQRhsaiICEJEDQQghCAJAIAIoAhQiAUUNACABQQV0IQ8gAUH///8fSwRAQQAhBAwECyACKAIQIQNBudHCAC0AABpBCCEEIA9BCBCLBSIIRQ0DQQAhBCABIQIDQCAEIA9GDQEgBCAIaiIJIAMgBGoiDSkDADcDACAJQRhqIA1BGGopAwA3AwAgCUEQaiANQRBqKQMANwMAIAlBCGogDUEIaikDADcDACAEQSBqIQQgAkEBayICDQALCyAlIAE2AkwgJSAINgJIICUgATYCRCAlQQhqIRlCACFQQgAhUUIAIVRCACFWQQAhKSMAQZAIayIGJAAgBkEMaiAlQThqIhwQkQECQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAGKAIUIgFBAkYEQEG50cIALQAAGkEYQQQQiwUiAkUNDiAGQbAHaiAGKAIQIgEQeCAGQeAAaiABQQxqEHhBCCEnIAJBCGogBkG4B2ooAgA2AgAgAiAGKQKwBzcCACACIAYpAmA3AgwgAkEUaiAGQegAaigCADYCACAGQQI2ApgHIAYgAjYClAcgBkECNgKQByAGQSRqIAZBkAdqEMcCAkAgAUEUaigCACIJRQ0AIAlBBXQhAyAJQf///x9LBEBBACEBDA4LIAFBEGooAgAhBEEAIQJBudHCAC0AABpBCCEBIANBCBCLBSInRQ0NIAlBBXQhAyAJIQEDQCACIANGDQEgAiAnaiIIIAIgBGoiDSkDADcDACAIQRhqIA1BGGopAwA3AwAgCEEQaiANQRBqKQMANwMAIAhBCGogDUEIaikDADcDACACQSBqIQIgAUEBayIBDQALC0G50cIALQAAGkEYQQQQiwUiCEUNDiAGQfAGahCoA0G50cIALQAAGkEgQQgQiwUiD0UNBCAPQgI3AxggD0KAgICAYDcDECAPQn83AwggD0L9////HzcDACAGQQA6AGggBiAPQSBqNgJkIAYgDzYCYCAGQbAHaiAGQeAAahDmAiAGKAK4ByIBQQJPBEAgAUEBdiEOIAYoArQHIgIgAUEFdGpBIGshAQNAIAIpAwAhTCACIAEpAwA3AwAgAkEYaiIDKQMAIU0gAyABQRhqIg0pAwA3AwAgAkEQaiIDKQMAIUkgAyABQRBqIgQpAwA3AwAgAkEIaiIDKQMAIUogAyABQQhqIgMpAwA3AwAgASBMNwMAIA0gTTcDACAEIEk3AwAgAyBKNwMAIAFBIGshASACQSBqIQIgDkEBayIODQALCyAGQZgHaiIBIAZBuAdqKAIANgIAIAYgBikCsAc3A5AHIA9BIBCUBSAIQQhqIAZB+AZqKAIANgIAIAggBikC8AY3AgAgCCAGKQOQBzcCDCAIQRRqIAEoAgA2AgAgBkECNgJoIAYgCDYCZCAGQQI2AmAgBkE8aiAGQeAAahDHAkEIIQgCQCAJRQ0AIAlBBXQhASAJQf///x9LBEBBACEODBELQQAhAkG50cIALQAAGkEIIQ4gAUEIEIsFIghFDRAgCUEFdCEDIAkhAQNAIAIgA0YNASACIAhqIg0gAiAnaiIEKQMANwMAIA1BGGogBEEYaikDADcDACANQRBqIARBEGopAwA3AwAgDUEIaiAEQQhqKQMANwMAIAJBIGohAiABQQFrIgENAAsLIAYgCTYC2AYgBiAINgLUBiAGIAk2AtAGQbnRwgAtAAAaQeAAQQgQiwUiD0UNAyAGQeAAahDCAiAPQdgAakIDNwMAIA9B0ABqQoCAgIBQNwMAIA9ByABqQn83AwAgD0L8////LzcDQCAPQgA3AyAgD0EoakIANwMAIA9BMGpCADcDACAPQThqQgA3AwAgD0EYaiAGQfgAaikDADcDACAPQRBqIAZB8ABqKQMANwMAIA9BCGogBkHoAGopAwA3AwAgDyAGKQNgNwMAIAZBADoAuAcgBiAPQeAAajYCtAcgBiAPNgKwByAGQZAHaiAGQbAHahDmAiAGKAKYByIBQQJPBEAgAUEBdiEOIAYoApQHIgIgAUEFdGpBIGshAQNAIAIpAwAhTCACIAEpAwA3AwAgAkEYaiIDKQMAIU0gAyABQRhqIg0pAwA3AwAgAkEQaiIDKQMAIUkgAyABQRBqIgQpAwA3AwAgAkEIaiIDKQMAIUogAyABQQhqIgMpAwA3AwAgASBMNwMAIA0gTTcDACAEIEk3AwAgAyBKNwMAIAFBIGshASACQSBqIQIgDkEBayIODQALCyAGQfgGaiAGQZgHaigCADYCACAGIAYpApAHNwPwBiAPQeAAEJQFIAZB1ABqIAZB0AZqIAZB8AZqEIABIAYoAvAGIgEEQCAGKAL0BiABQQV0EJQFCyAJBEAgCCAJQQV0EJQFCyAGKAL0AiIBBEAgBigC+AIgAUECdBCUBQsCQCAGKALEAiIBRQ0AIAEgAUEMbEETakF4cSICakEJaiIBRQ0AIAYoAsACIAJrIAEQlAULIAZBsAdqIAZBJGoQkQNBCCEPQQghAwJAIAYoAjgiBEUNACAEQQV0IQEgBEH///8fSwRAQQAhDgwRCyAGKAI0IQhBACECQbnRwgAtAAAaQQghDiABQQgQiwUiA0UNECAEQQV0IQ0gBCEBA0AgAiANRg0BIAIgA2oiFiACIAhqIg4pAwA3AwAgFkEYaiAOQRhqKQMANwMAIBZBEGogDkEQaikDADcDACAWQQhqIA5BCGopAwA3AwAgAkEgaiECIAFBAWsiAQ0ACwsgBiAENgLEByAGIAM2AsAHIAYgBDYCvAcgBkHgAGogBkE8ahCRAwJAIAYoAlAiA0UNACADQQV0IQEgA0H///8fSwRAQQAhDgwRCyAGKAJMIQ1BACECQbnRwgAtAAAaQQghDiABQQgQiwUiD0UNECADQQV0IQQgAyEBA0AgAiAERg0BIAIgD2oiDiACIA1qIggpAwA3AwAgDkEYaiAIQRhqKQMANwMAIA5BEGogCEEQaikDADcDACAOQQhqIAhBCGopAwA3AwAgAkEgaiECIAFBAWsiAQ0ACwsgBiADNgJ0IAYgDzYCcCAGIAM2AmwgBkGQB2oiAiAGQbAHaiIKIAZB4ABqIgMQzQFBudHCAC0AABpBGEEEEIsFIgFFDQ5BCCEPIAMQqAMgAUEIaiAGQdwAaigCADYCACABIAYpAlQ3AgAgASAGKQJgNwIMIAFBFGogBkHoAGoiFSgCADYCACAGQQI2ArgHIAYgATYCtAcgBkECNgKwByADIAoQxwIgBkGMA2ohDEEAIQEjAEEwayIYJAAgAyIIKAIIIR8gAiINKAIIITEgGEEYahCoAwJAAkACQAJAAkACQAJAIDEgHyAfIDFJGyIERQRAQQQhAwwBCyAEQQxsIgJBAEggBEGq1arVAEtyDQFBudHCAC0AABpBBCEBIAJBBBCLBSIDRQ0BCyAYQSxqIgFBADYCACAYIAM2AiggGCAENgIkIBhBJGogBCAYQRhqEN8CIBhBCGogASgCADYCACAYIBgpAiQ3AwAgMUUNAyANKAIEIREgGCgCBCEWIBgoAgghKANAICggKUYNAkEIITJBCCELAkAgFiApQQxsIg5qIhsoAggiA0UNACADQQV0ISMgA0H///8fSwRAQQAhAgwHCyAbKAIEIQRBudHCAC0AABpBCCECICNBCBCLBSILRQ0GQQAhAiADIQEDQCACICNGDQEgAiALaiIgIAIgBGoiHSkDADcDACAgQRhqIB1BGGopAwA3AwAgIEEQaiAdQRBqKQMANwMAICBBCGogHUEIaikDADcDACACQSBqIQIgAUEBayIBDQALCyAYIAM2AiAgGCALNgIcIBggAzYCGAJAIA4gEWoiASgCCCIDRQ0AIANBBXQhICADQf///x9LBEBBACECDAULIAEoAgQhBEG50cIALQAAGkEIIQIgIEEIEIsFIjJFDQRBACECIAMhAQNAIAIgIEYNASACIDJqIh0gAiAEaiIOKQMANwMAIB1BGGogDkEYaikDADcDACAdQRBqIA5BEGopAwA3AwAgHUEIaiAOQQhqKQMANwMAIAJBIGohAiABQQFrIgENAAsLIBggAzYCLCAYIDI2AiggGCADNgIkIBhBDGogGEEYaiAYQSRqEJwCIBsoAgAiAQRAIBsoAgQgAUEFdBCUBQsgGyAYKQIMNwIAIBtBCGogGEEUaigCADYCACApQQFqIikgMUcNAAsMAwsgASACEIMFAAsgKCAoQdyWwAAQmAQACyACICAQgwUACwJAIB9FBEAgDCAYEMcCIAgoAgQhAwwBCyAIKAIEIQMgGCgCBCERIBgoAgghKEEAISkCQAJAAkADQCAoIClHBEBBCCEyQQghCwJAIBEgKUEMbCIWaiIbKAIIIgRFDQAgBEEFdCEjIARB////H0sEQEEAIQIMBQsgGygCBCEOQbnRwgAtAAAaQQghAiAjQQgQiwUiC0UNBEEAIQIgBCEBA0AgAiAjRg0BIAIgC2oiICACIA5qIh0pAwA3AwAgIEEYaiAdQRhqKQMANwMAICBBEGogHUEQaikDADcDACAgQQhqIB1BCGopAwA3AwAgAkEgaiECIAFBAWsiAQ0ACwsgGCAENgIgIBggCzYCHCAYIAQ2AhgCQCADIBZqIgEoAggiBEUNACAEQQV0ISAgBEH///8fSwRAQQAhAgwECyABKAIEIQ5BudHCAC0AABpBCCECICBBCBCLBSIyRQ0DQQAhAiAEIQEDQCACICBGDQEgAiAyaiIdIAIgDmoiFikDADcDACAdQRhqIBZBGGopAwA3AwAgHUEQaiAWQRBqKQMANwMAIB1BCGogFkEIaikDADcDACACQSBqIQIgAUEBayIBDQALCyAYIAQ2AiwgGCAyNgIoIBggBDYCJCAYQQxqIBhBGGogGEEkahCcAiAbKAIAIgEEQCAbKAIEIAFBBXQQlAULIBsgGCkCDDcCACAbQQhqIBhBFGooAgA2AgAgHyApQQFqIilHDQEMBAsLICggKEHMlsAAEJgEAAsgAiAgEIMFAAsgAiAjEIMFAAsgDCAYEMcCIAMhAgNAIAIoAgAiAQRAIAJBBGooAgAgAUEFdBCUBQsgAkEMaiECIB9BAWsiHw0ACwsgCCgCACIBBEAgAyABQQxsEJQFCyAIKAIMIgEEQCAIKAIQIAFBBXQQlAULIA0oAgQhASAxBEAgASECA0AgAigCACIDBEAgAkEEaigCACADQQV0EJQFCyACQQxqIQIgMUEBayIxDQALCyANKAIAIgIEQCABIAJBDGwQlAULIA0oAgwiAQRAIA0oAhAgAUEFdBCUBQsgGEEwaiQADAELIAIgIxCDBQALIAogBkEMahCRA0EIIQMCQCAGKAIgIgRFDQAgBEEFdCEBIARB////H0sEQEEAIQ4MEQsgBigCHCEIQQAhAkG50cIALQAAGkEIIQ4gAUEIEIsFIgNFDRAgBEEFdCENIAQhAQNAIAIgDUYNASACIANqIhYgAiAIaiIOKQMANwMAIBZBGGogDkEYaikDADcDACAWQRBqIA5BEGopAwA3AwAgFkEIaiAOQQhqKQMANwMAIAJBIGohAiABQQFrIgENAAsLIAYgBDYCxAcgBiADNgLAByAGIAQ2ArwHIAZB8ABqIAZBzABqKQIANwMAIBUgBkHEAGopAgA3AwAgBiAGKQI8NwNgIAZBpANqIgIgBkHgAGoiASAGQbAHahDNASABIAIQkQMgBigCtAMhDQJAIAYoArgDIgRFDQAgBEEFdCEBIARB////H0sEQEEAIQ4MEQtBACECQbnRwgAtAAAaQQghDiABQQgQiwUiD0UNECAEQQV0IQEgBCEDA0AgASACRg0BIAIgD2oiDiACIA1qIggpAwA3AwAgDkEYaiAIQRhqKQMANwMAIA5BEGogCEEQaikDADcDACAOQQhqIAhBCGopAwA3AwAgAkEgaiECIANBAWsiAw0ACwsgBiAENgJ0IAYgDzYCcCAGIAQ2AmwgBkGwB2oiASAGQeAAaiICEJkCIAIgBkGMA2ogARDNASAGQbwDaiACEJEBIAYoAmgiAQRAIAYoAmQhAgNAIAIoAgAiAwRAIAJBBGooAgAgA0EFdBCUBQsgAkEMaiECIAFBAWsiAQ0ACwsgBigCYCIBBEAgBigCZCABQQxsEJQFCyAGKAJsIgEEQCAGKAJwIAFBBXQQlAULIAZBkAdqIAZBpANqEJEDQQghDwJAIARFDQAgBEEFdCEBIARB////H0sEQEEAIQ4MEQtBACECQbnRwgAtAAAaQQghDiABQQgQiwUiD0UNECAEQQV0IQEgBCEDA0AgASACRg0BIAIgD2oiDiACIA1qIggpAwA3AwAgDkEYaiAIQRhqKQMANwMAIA5BEGogCEEQaikDADcDACAOQQhqIAhBCGopAwA3AwAgAkEgaiECIANBAWsiAw0ACwsgBiAENgKkByAGIA82AqAHIAYgBDYCnAcgBkHwAGogBkG0A2opAgA3AwAgBkHoAGogBkGsA2opAgA3AwAgBiAGKQKkAzcDYCAGQbAHaiIBIAZB4ABqIgIQmQIgAiAGQZAHaiABEM0BIAZB1ANqIAIQkQEgBigCaCIBBEAgBigCZCECA0AgAigCACIDBEAgAkEEaigCACADQQV0EJQFCyACQQxqIQIgAUEBayIBDQALCyAGKAJgIgEEQCAGKAJkIAFBDGwQlAULIAYoAmwiAQRAIAYoAnAgAUEFdBCUBQsgBigC3AMiAUEBTQ0CIAYoAtgDIg1BFGooAgBBBXQhAiANQRBqKAIAQSBrIQMDQCACRQ0CIAIgA2ogAkEgayECQcCXwABBIBCuBUUNAAsgDUEMahCsBCEAIAYgBkGQB2qtQoCAgIAghDcDsAcgBiAANgKQByAGQQE2AmQgBkGgisAANgJgIAZCATcCbCAGIAZBsAdqNgJoIAZB4ABqQaiKwAAQzQQACyAGQQI2AmQgBkHIisAANgJgIAZCAjcCbCAGIAE2ApAHIAYgBkEMaq1CgICAgOAAhDcDuAcgBiAGQZAHaq1CgICAgBCENwOwByAGIAZBsAdqNgJoIAZB4ABqQdiKwAAQzQQACwJAIA0oAggiBEUEQEEIIQMMAQsgBEEFdCEBIARB////H0sEQEEAIQ4MCwsgDSgCBCEIQQAhAkG50cIALQAAGkEIIQ4gAUEIEIsFIgNFDQogBEEFdCENIAQhAQNAIAIgDUYNASACIANqIg4gAiAIaiIPKQMANwMAIA5BGGogD0EYaikDADcDACAOQRBqIA9BEGopAwA3AwAgDkEIaiAPQQhqKQMANwMAIAJBIGohAiABQQFrIgENAAsLIAYgBDYC9AMgBiADNgLwAyAGIAQ2AuwDIAYoAsQDIgIEQCAGQeAAaiAGKALAAyIWIAZB7ANqEFcgBkGABGogBkGAAWooAgA2AgAgBiAGKQJ4NwP4AyAGKAJgIgEEQCAGKAJkIAFBBXQQlAULIAYoAmwiAQRAIAYoAnAgAUEFdBCUBQsgAkEBRwRAIAZB4ABqIBZBDGogBkHsA2oQVyAGQZAEaiAGQYABaigCADYCACAGIAYpAng3A4gEIAYoAmAiAQRAIAYoAmQgAUEFdBCUBQsgBigCbCIBBEAgBigCcCABQQV0EJQFCwJAIBYoAggiBEUEQEEIIQMMAQsgBEEFdCEBIARB////H0sEQEEAIQ4MEQsgFigCBCEIQQAhAkG50cIALQAAGkEIIQ4gAUEIEIsFIgNFDRAgBEEFdCENIAQhAQNAIAIgDUYNASACIANqIg4gAiAIaiIPKQMANwMAIA5BGGogD0EYaikDADcDACAOQRBqIA9BEGopAwA3AwAgDkEIaiAPQQhqKQMANwMAIAJBIGohAiABQQFrIgENAAsLIAYgBDYCaCAGIAM2AmQgBiAENgJgIAZBmARqIAZB4ABqIAZB+ANqELoDIAYoAmAiAQRAIAYoAmQgAUEFdBCUBQsCQCAGKAL0AyIERQRAQQghAwwBCyAEQQV0IQEgBEH///8fSwRAQQAhDgwRCyAGKALwAyEIQQAhAkG50cIALQAAGkEIIQ4gAUEIEIsFIgNFDRAgBEEFdCENIAQhAQNAIAIgDUYNASACIANqIg4gAiAIaiIPKQMANwMAIA5BGGogD0EYaikDADcDACAOQRBqIA9BEGopAwA3AwAgDkEIaiAPQQhqKQMANwMAIAJBIGohAiABQQFrIgENAAsLIAYgBDYCaCAGIAM2AmQgBiAENgJgIAZBpARqIAZB4ABqIAZB+ANqELoDIAYoAmAiAQRAIAYoAmQgAUEFdBCUBQsCQCAWQRRqKAIAIgRFBEBBCCEDDAELIARBBXQhASAEQf///x9LBEBBACEODBELIBZBEGooAgAhCEEAIQJBudHCAC0AABpBCCEOIAFBCBCLBSIDRQ0QIARBBXQhDSAEIQEDQCACIA1GDQEgAiADaiIOIAIgCGoiDykDADcDACAOQRhqIA9BGGopAwA3AwAgDkEQaiAPQRBqKQMANwMAIA5BCGogD0EIaikDADcDACACQSBqIQIgAUEBayIBDQALCyAGIAQ2AmggBiADNgJkIAYgBDYCYCAGQbAEaiAGQeAAaiAGQYgEahC6AyAGKAJgIgEEQCAGKAJkIAFBBXQQlAULAkAgBigC9AMiBEUEQEEIIQMMAQsgBEEFdCEBIARB////H0sEQEEAIQ4MEQsgBigC8AMhCEEAIQJBudHCAC0AABpBCCEOIAFBCBCLBSIDRQ0QIARBBXQhDSAEIQEDQCACIA1GDQEgAiADaiIOIAIgCGoiDykDADcDACAOQRhqIA9BGGopAwA3AwAgDkEQaiAPQRBqKQMANwMAIA5BCGogD0EIaikDADcDACACQSBqIQIgAUEBayIBDQALCyAGIAQ2AmggBiADNgJkIAYgBDYCYCAGQbwEaiAGQeAAaiAGQYgEahC6AyAGKAJgIgEEQCAGKAJkIAFBBXQQlAULIAYoAvQDIgFBBXQhAiAGKALwAyEDAkADQCACRQ0BIAFBAWshASACQSBrIgIgA2oiBEHAl8AAQSAQrgVFDQALIAFBAEgNACAGQZgFaiAEQRhqIgMpAwA3AwAgBkGQBWogBEEQaiICKQMANwMAIAZBiAVqIARBCGoiASkDADcDACAGIAQpAwA3A4AFIAZBgAVqQZiCwABBIBCuBUUNCiAGQaAHakIANwMAIAZBmAdqQgA3AwAgBkIANwOQByAGQgE3A6gHIAZByAdqIAMpAwA3AwAgBkHAB2ogAikDADcDACAGQbgHaiABKQMANwMAIAYgBCkDADcDsAcgBkH4AGpBsIPAACkDADcDACAGQfAAakGog8AAKQMANwMAIAZB6ABqQaCDwAApAwA3AwAgBkGYg8AAKQMANwNgAkAgBkGwB2ogBkGQB2pBIBCuBUUEQEJ+IU9C/f///88AIVNCAyFSQv////+/fyFODAELQv3////PACFTQn4hT0L/////v38hTkIDIVIgBikDyAchSSAGKQOwByFcIAYpA7gHIUwgBikDwAchWEJ/IUpCgYCAgHAhW0IAIU1C/////w8hVwNAIAZB4ABqIAZBkAdqQSAQrgVFBEAgUCFOIFQhUiBWIVMgUSFPDAILIEmnQQFxRQRAA0AgWEI/hiBJQgGIhCFJAn4gUqdBAXFFBEAgU0I/hiBPQj+GIUsgTkI/hiBSQgGIhCFSIFNCAYghUyBPQgGIhCFPIEsgTkIBiIQMAQsgU0L/////D30iWSBPIE5CgICAgBB8IlpQIE5C/////w98IE5Ucq18Ik4gT1StfCJPQgGIIlVCgICAgICAgICAf4QiSyBLIFUgTyBZVBsgUyBZVhshUyBPQj+GIE5CAYiEIU8gWkI/hiBSQgF9QgGIhCFSIE5CP4YgWkIBiIQLIU4gXEI/hiBMQj+GIFhCAYiEIVggXEIBiCFcIExCAYiEIUwgSUIBg1ANAAsgBiBYNwPAByAGIEk3A8gHIAYgTDcDuAcgBiBcNwOwBwsgSqdBAXFFBEADQCBXQj+GIEpCAYiEIUoCQCBUQgGDUEUEQCBWQv////8PfSJZIFEgUEKAgICAEHwiWlAgUEL/////D3wgUFRyrXwiUCBRVK18IlFCAYgiVUKAgICAgICAgIB/hCJLIEsgVSBRIFlUGyBWIFlWGyFWIFFCP4YgUEIBiIQhUSBaQj+GIFRCAX1CAYiEIVQgUEI/hiBaQgGIhCFQDAELIFZCP4YgUEI/hiBUQgGIhCFUIFZCAYghViBRQj+GIFBCAYiEIVAgUUIBiIQhUQsgW0I/hiBNQj+GIFdCAYiEIVcgW0IBiCFbIE1CAYiEIU0gSkIBg1ANAAsgBiBXNwNwIAYgSjcDeCAGIE03A2ggBiBbNwNgCwJAAkACQAJAIFwiVSBbIktSDQAgTCFVIE0iSyBMUg0AIFgiVSBXIktSDQAgSiFLIEkhVSBJIEpRDQELIEsgVVQNACAGIEogSX0iWjcDeCAGIFcgWH0iSyBJIEpWrSJKfSJVNwNwIAYgTSBMfSJZIFcgWFQgSiBLVnKtIkp9Iks3A2ggBiBbIFx9IEogWVYgTCBNVnKtfSJbNwNgAkACQCBTIk0gViJKUg0AIE8hTSBRIkogT1INACBOIU0gUCJKIE5SDQAgUiJNIFQiSlENAQsgSiBNVA0CCyBWIFN9IFEgT30iXyBQIE59Il4gUiBUVq0iXVQgTiBQVnKtIllUIE8gUVZyrX0hViBUIFJ9IVQgVSFXIEshTSBaIUogXiBdfSFQIF8gWX0hUQwCCyAGIEkgSn0iWjcDyAcgBiBYIFd9IksgSSBKVK0iSX0iVTcDwAcgBiBMIE19IlkgVyBYViBJIEtWcq0iSX0iSzcDuAcgBiBcIFt9IEwgTVQgSSBZVnKtfSJcNwOwBwJAAkACQCBTIkkgViJMUg0AIE8iSSBRIkxSDQAgUCFMIFAgTiJJUg0AIFIiSSBUIkxRDQELIEkgTFQNAQsgUyBWfSBPIFFUIE8gUX0iXSBOIFBUIE4gUH0iWSBSIFRUrSJOVHKtIk9Ucq19IVMgUiBUfSFSIFUhWCBLIUwgWiFJIF0gT30hTyBZIE59IU4MAgsgUyBWfSBRQgBSQgAgUX0iTCBQQv////8PVq0iSVRyrX0gTCBJfSJJIE98IlggSVQgWCBOQv////8PIFB9Ikl8IkwgSVQgTCBUQn+FIkkgUnwiUiBJVK18Ik4gTFRyrXwiTyBYVHKtfEL/////D30hUyBVIVggSyFMIFohSQwBCyBWIE9CAFJCACBPfSJNIE5C/////w9WrSJKVHKtIFN8fSBNIEp9IkogUXwiVyBKVCBXIFBC/////w8gTn0iSnwiTSBKVCBNIFJCf4UiSiBUfCJUIEpUrXwiUCBNVHKtfCJRIFdUcq18Qv////8PfSFWIFUhVyBLIU0gWiFKCyAGQbAHaiAGQZAHakEgEK4FDQALCyAGIFI3A/gEIAYgTjcD8AQgBiBPNwPoBCAGIFM3A+AEIAZB8AZqIAZBmARqIAZB4ARqEP0CIAYoAqgEIRYCQCAGKAKsBCINRQRAQQghFQwBCyANQQV0IQMgDUH///8fSwRAQQAhAQwNC0EAIQJBudHCAC0AABpBCCEBIANBCBCLBSIVRQ0MIA1BBXQhASANIQMDQCABIAJGDQEgAiAVaiIIIAIgFmoiBCkDADcDACAIQRhqIARBGGopAwA3AwAgCEEQaiAEQRBqKQMANwMAIAhBCGogBEEIaikDADcDACACQSBqIQIgA0EBayIDDQALCyAGIA02AqwFIAYgFTYCqAUgBiANNgKkBSANQQV0IQIgDSEBAkADQCACRQ0BIAFBAWshASACQSBrIgIgFmoiBEHAl8AAQSAQrgVFDQALIAFBAEgNACAGQegFaiAEQRhqIgMpAwA3AwAgBkHgBWogBEEQaiICKQMANwMAIAZB2AVqIARBCGoiASkDADcDACAGIAQpAwA3A9AFIAZB0AVqQZiCwABBIBCuBUUNCiAGQaAHakIANwMAIAZBmAdqQgA3AwAgBkIANwOQByAGQgE3A6gHIAZByAdqIAMpAwA3AwAgBkHAB2ogAikDADcDACAGQbgHaiABKQMANwMAIAYgBCkDADcDsAcgBkH4AGpBsIPAACkDADcDACAGQfAAakGog8AAKQMANwMAIAZB6ABqQaCDwAApAwA3AwAgBkGYg8AAKQMANwNgAkAgBkGwB2ogBkGQB2pBIBCuBUUEQEJ+IU9C/f///88AIVNCAyFSQv////+/fyFODAELQv3////PACFTQn4hT0L/////v38hTkIDIVIgBikDyAchSSAGKQOwByFMIAYpA7gHIVwgBikDwAchWEIAIVZCACFRQgAhUEIAIVRCfyFKQoGAgIBwIVtCACFNQv////8PIVcDQCAGQeAAaiAGQZAHakEgEK4FRQRAIFAhTiBUIVIgViFTIFEhTwwCCyBJp0EBcUUEQANAIFhCP4YgSUIBiIQhSQJ+IFKnQQFxRQRAIFNCP4YgT0I/hiFLIE5CP4YgUkIBiIQhUiBTQgGIIVMgT0IBiIQhTyBLIE5CAYiEDAELIFNC/////w99IlkgTyBOQoCAgIAQfCJaUCBOQv////8PfCBOVHKtfCJOIE9UrXwiT0IBiCJVQoCAgICAgICAgH+EIksgSyBVIE8gWVQbIFMgWVYbIVMgT0I/hiBOQgGIhCFPIFpCP4YgUkIBfUIBiIQhUiBOQj+GIFpCAYiECyFOIExCP4YgXEI/hiBYQgGIhCFYIExCAYghTCBcQgGIhCFcIElCAYNQDQALIAYgWDcDwAcgBiBJNwPIByAGIFw3A7gHIAYgTDcDsAcLIEqnQQFxRQRAA0AgV0I/hiBKQgGIhCFKAkAgVEIBg1BFBEAgVkL/////D30iWSBRIFBCgICAgBB8IlpQIFBC/////w98IFBUcq18IlAgUVStfCJRQgGIIlVCgICAgICAgICAf4QiSyBLIFUgUSBZVBsgViBZVhshViBRQj+GIFBCAYiEIVEgWkI/hiBUQgF9QgGIhCFUIFBCP4YgWkIBiIQhUAwBCyBWQj+GIFBCP4YgVEIBiIQhVCBWQgGIIVYgUUI/hiBQQgGIhCFQIFFCAYiEIVELIFtCP4YgTUI/hiBXQgGIhCFXIFtCAYghWyBNQgGIhCFNIEpCAYNQDQALIAYgVzcDcCAGIEo3A3ggBiBNNwNoIAYgWzcDYAsgTCFVAkACQAJAAkAgWyJLIExSDQAgXCJVIE0iS1INACBYIlUgVyJLUg0AIEohSyBJIVUgSSBKUQ0BCyBLIFVUDQAgBiBKIEl9Ilo3A3ggBiBXIFh9IksgSSBKVq0iSn0iVTcDcCAGIE0gXH0iWSBXIFhUIEogS1ZyrSJKfSJLNwNoIAYgWyBMfSBNIFxUIEogWVZyrX0iWzcDYAJAAkAgUyJNIFYiSlINACBPIU0gUSJKIE9SDQAgTiFNIFAiSiBOUg0AIFIiTSBUIkpRDQELIEogTVQNAgsgViBTfSBRIE99Il8gUCBOfSJeIFIgVFatIl1UIE4gUFZyrSJZVCBPIFFWcq19IVYgVCBSfSFUIFUhVyBLIU0gWiFKIF4gXX0hUCBfIFl9IVEMAgsgBiBJIEp9Ilo3A8gHIAYgWCBXfSJLIEkgSlStIkl9IlU3A8AHIAYgXCBNfSJZIFcgWFYgSSBLVnKtIkl9Iks3A7gHIAYgTCBbfSBJIFlWIE0gXFZyrX0iTDcDsAcgViFcAkACQAJAIFYgUyJJUg0AIFEhXCBRIE8iSVINACBQIVwgUCBOIklSDQAgVCFcIFQgUiJJUQ0BCyBJIFxUDQELIFMgVn0gTyBRVCBPIFF9Il0gTiBQVCBOIFB9IlkgUiBUVK0iTlRyrSJPVHKtfSFTIFIgVH0hUiBVIVggSyFcIFohSSBdIE99IU8gWSBOfSFODAILIFMgVn0gUUIAUkIAIFF9IlggUEL/////D1atIklUcq19IE8gWCBJfSJJfCJTIElUIFNC/////w8gUH0iSSBOfCJYIElUIFggWCBUQn+FIkkgUnwiUiBJVK18Ik5Wcq18Ik8gU1RyrXxC/////w99IVMgVSFYIEshXCBaIUkMAQsgViBPQgBSQgAgT30iTSBOQv////8PVq0iSlRyrSBTfH0gTSBKfSJKIFF8IlcgSlQgVyBQQv////8PIE59Ikp8Ik0gSlQgTSBSQn+FIkogVHwiVCBKVK18IlAgTVRyrXwiUSBXVHKtfEL/////D30hViBVIVcgSyFNIFohSgsgBkGwB2ogBkGQB2pBIBCuBQ0ACwsgBiBSNwPIBSAGIE43A8AFIAYgTzcDuAUgBiBTNwOwBSAGQdQEaiAGQaQFaiAGQbAFahD9AiAGQdAEaiAGQfgGaigCADYCACAGIAYpAvAGNwPIBCAGKAL0AyIBQQV0IQIgBigC8AMhAwNAIAJFDRAgAUEBayEBIAJBIGsiAiADaiIEQcCXwABBIBCuBUUNAAsgAUEASA0PIAZBuAZqIARBGGoiAykDADcDACAGQbAGaiAEQRBqIgIpAwA3AwAgBkGoBmogBEEIaiIBKQMANwMAIAYgBCkDADcDoAYgBkGgBmpBmILAAEEgEK4FRQ0IIAZBoAdqQgA3AwAgBkGYB2pCADcDACAGQgA3A5AHIAZCATcDqAcgBkHIB2ogAykDADcDACAGQcAHaiACKQMANwMAIAZBuAdqIAEpAwA3AwAgBiAEKQMANwOwByAGQfgAakGwg8AAKQMANwMAIAZB8ABqQaiDwAApAwA3AwAgBkHoAGpBoIPAACkDADcDACAGQZiDwAApAwA3A2ACQCAGQbAHaiAGQZAHakEgEK4FRQRAQn4hT0L9////zwAhU0IDIVJC/////79/IU4MAQtC/f///88AIVNCfiFPQv////+/fyFOQgMhUiAGKQPIByFJIAYpA7AHIVwgBikDuAchTCAGKQPAByFYQgAhVkIAIVFCACFQQgAhVEJ/IUpCgYCAgHAhW0IAIU1C/////w8hVwNAIAZB4ABqIAZBkAdqQSAQrgVFBEAgUCFOIFQhUiBWIVMgUSFPDAILIEmnQQFxRQRAA0AgWEI/hiBJQgGIhCFJAn4gUqdBAXFFBEAgU0I/hiBPQj+GIUsgTkI/hiBSQgGIhCFSIFNCAYghUyBPQgGIhCFPIEsgTkIBiIQMAQsgU0L/////D30iWSBPIE5CgICAgBB8IlpQIE5C/////w98IE5Ucq18Ik4gT1StfCJPQgGIIlVCgICAgICAgICAf4QiSyBLIFUgTyBZVBsgUyBZVhshUyBPQj+GIE5CAYiEIU8gWkI/hiBSQgF9QgGIhCFSIE5CP4YgWkIBiIQLIU4gXEI/hiBMQj+GIFhCAYiEIVggXEIBiCFcIExCAYiEIUwgSUIBg1ANAAsgBiBYNwPAByAGIEk3A8gHIAYgTDcDuAcgBiBcNwOwBwsgSqdBAXFFBEADQCBXQj+GIEpCAYiEIUoCQCBUQgGDUEUEQCBWQv////8PfSJZIFEgUEKAgICAEHwiWlAgUEL/////D3wgUFRyrXwiUCBRVK18IlFCAYgiVUKAgICAgICAgIB/hCJLIEsgVSBRIFlUGyBWIFlWGyFWIFFCP4YgUEIBiIQhUSBaQj+GIFRCAX1CAYiEIVQgUEI/hiBaQgGIhCFQDAELIFZCP4YgUEI/hiBUQgGIhCFUIFZCAYghViBRQj+GIFBCAYiEIVAgUUIBiIQhUQsgW0I/hiBNQj+GIFdCAYiEIVcgW0IBiCFbIE1CAYiEIU0gSkIBg1ANAAsgBiBXNwNwIAYgSjcDeCAGIE03A2ggBiBbNwNgCwJAAkACQAJAIFwiVSBbIktSDQAgTCFVIE0iSyBMUg0AIFgiVSBXIktSDQAgSiFLIEkhVSBJIEpRDQELIEsgVVQNACAGIEogSX0iWjcDeCAGIFcgWH0iSyBJIEpWrSJKfSJVNwNwIAYgTSBMfSJZIFcgWFQgSiBLVnKtIkp9Iks3A2ggBiBbIFx9IEogWVYgTCBNVnKtfSJbNwNgAkACQCBTIk0gViJKUg0AIE8hTSBRIkogT1INACBOIU0gUCJKIE5SDQAgUiJNIFQiSlENAQsgSiBNVA0CCyBWIFN9IFEgT30iXyBQIE59Il4gUiBUVq0iXVQgTiBQVnKtIllUIE8gUVZyrX0hViBUIFJ9IVQgVSFXIEshTSBaIUogXiBdfSFQIF8gWX0hUQwCCyAGIEkgSn0iWjcDyAcgBiBYIFd9IksgSSBKVK0iSX0iVTcDwAcgBiBMIE19IlkgVyBYViBJIEtWcq0iSX0iSzcDuAcgBiBcIFt9IEwgTVQgSSBZVnKtfSJcNwOwBwJAAkACQCBTIkkgViJMUg0AIE8iSSBRIkxSDQAgUCFMIFAgTiJJUg0AIFIiSSBUIkxRDQELIEkgTFQNAQsgUyBWfSBPIFFUIE8gUX0iXSBOIFBUIE4gUH0iWSBSIFRUrSJOVHKtIk9Ucq19IVMgUiBUfSFSIFUhWCBLIUwgWiFJIF0gT30hTyBZIE59IU4MAgsgUyBWfSBRQgBSQgAgUX0iTCBQQv////8PVq0iSVRyrX0gTCBJfSJJIE98IlggSVQgWCBOQv////8PIFB9Ikl8IkwgSVQgTCBUQn+FIkkgUnwiUiBJVK18Ik4gTFRyrXwiTyBYVHKtfEL/////D30hUyBVIVggSyFMIFohSQwBCyBWIE9CAFJCACBPfSJNIE5C/////w9WrSJKVHKtIFN8fSBNIEp9IkogUXwiVyBKVCBXIFBC/////w8gTn0iSnwiTSBKVCBNIFJCf4UiSiBUfCJUIEpUrXwiUCBNVHKtfCJRIFdUcq18Qv////8PfSFWIFUhVyBLIU0gWiFKCyAGQbAHaiAGQZAHakEgEK4FDQALCyAGIFI3A5gGIAYgTjcDkAYgBiBPNwOIBiAGIFM3A4AGIAZB9AVqIAZBsARqIAZBgAZqEP0CIAYoAsAEIQ4CQCAGKALEBCIERQRAQQghEQwBCyAEQQV0IQEgBEH///8fSwRAQQAhAwwLC0EAIQJBudHCAC0AABpBCCEDIAFBCBCLBSIRRQ0KIARBBXQhASAEIQ8DQCABIAJGDQEgAiARaiIIIAIgDmoiAykDADcDACAIQRhqIANBGGopAwA3AwAgCEEQaiADQRBqKQMANwMAIAhBCGogA0EIaikDADcDACACQSBqIQIgD0EBayIPDQALCyAGIAQ2AswGIAYgETYCyAYgBiAENgLEBiAEQQV0IQIgBCEBAkADQCACRQ0BIAFBAWshASACQSBrIgIgDmoiCEHAl8AAQSAQrgVFDQALIAFBAEgNACAGQYgHaiAIQRhqIgMpAwA3AwAgBkGAB2ogCEEQaiICKQMANwMAIAZB+AZqIAhBCGoiASkDADcDACAGIAgpAwA3A/AGIAZB8AZqQZiCwABBIBCuBUUNCCAGQaAHakIANwMAIAZBmAdqQgA3AwAgBkIANwOQByAGQgE3A6gHIAZByAdqIAMpAwA3AwAgBkHAB2ogAikDADcDACAGQbgHaiABKQMANwMAIAYgCCkDADcDsAcgBkH4AGpBsIPAACkDADcDACAGQfAAakGog8AAKQMANwMAIAZB6ABqQaCDwAApAwA3AwAgBkGYg8AAKQMANwNgAkAgBkGwB2ogBkGQB2pBIBCuBUUEQEL9////zwAhU0J+IU9C/////79/IU5CAyFSDAELQgMhUkL/////v38hTkJ+IU9C/f///88AIVMgBikDyAchSSAGKQOwByFcIAYpA7gHIUwgBikDwAchWEIAIVRCACFQQgAhUUIAIVZCfyFKQoGAgIBwIU1CACFbQv////8PIVcDQCAGQeAAaiAGQZAHakEgEK4FRQRAIFQhUiBQIU4gUSFPIFYhUwwCCyBJp0EBcUUEQANAIFhCP4YgSUIBiIQhSQJAIFKnQQFxRQRAIFNCP4YgTkI/hiBSQgGIhCFSIFNCAYghUyBPQj+GIE5CAYiEIU4gT0IBiIQhTwwBCyBTQv////8PfSJZIE8gTkKAgICAEHwiWlAgTkL/////D3wgTlRyrXwiTiBPVK18Ik9CAYgiVUKAgICAgICAgIB/hCJLIEsgVSBPIFlUGyBTIFlWGyFTIE9CP4YgTkIBiIQhTyBaQj+GIFJCAX1CAYiEIVIgTkI/hiBaQgGIhCFOCyBcQj+GIExCP4YgWEIBiIQhWCBcQgGIIVwgTEIBiIQhTCBJQgGDUA0ACyAGIFg3A8AHIAYgSTcDyAcgBiBMNwO4ByAGIFw3A7AHCyBKp0EBcUUEQANAIFdCP4YgSkIBiIQhSgJ+IFRCAYNQRQRAIFZC/////w99IlkgUSBQQoCAgIAQfCJaUCBQQv////8PfCBQVHKtfCJQIFFUrXwiUUIBiCJVQoCAgICAgICAgH+EIksgSyBVIFEgWVQbIFYgWVYbIVYgUUI/hiBQQgGIhCFRIFpCP4YgVEIBfUIBiIQhVCBQQj+GIFpCAYiEDAELIFZCP4YgUUI/hiFLIFBCP4YgVEIBiIQhVCBWQgGIIVYgUUIBiIQhUSBLIFBCAYiECyFQIE1CP4YgW0I/hiBXQgGIhCFXIE1CAYghTSBbQgGIhCFbIEpCAYNQDQALIAYgVzcDcCAGIEo3A3ggBiBbNwNoIAYgTTcDYAsCQAJAAkACQCBcIlUgTSJLUg0AIEwhVSBbIksgTFINACBYIlUgVyJLUg0AIEohSyBJIVUgSSBKUQ0BCyBLIFVUDQAgBiBKIEl9Ilo3A3ggBiBXIFh9IksgSSBKVq0iSn0iVTcDcCAGIFsgTH0iWSBXIFhUIEogS1ZyrSJKfSJLNwNoIAYgTSBcfSBKIFlWIEwgW1ZyrX0iTTcDYCBTIVsCQAJAIFYiSiBTUg0AIE8hWyBRIkogT1INACBOIVsgUCJKIE5SDQAgUiFbIFQiSiBSUQ0BCyBKIFtUDQILIFYgU30gUSBPfSJeIFAgTn0iXSBSIFRWrSJZVCBOIFBWcq0iUFQgTyBRVnKtfSFWIFQgUn0hVCBVIVcgSyFbIFohSiBeIFB9IVEgXSBZfSFQDAILIAYgSSBKfSJaNwPIByAGIFggV30iSyBJIEpUrSJJfSJVNwPAByAGIEwgW30iWSBXIFhWIEkgS1ZyrSJJfSJLNwO4ByAGIFwgTX0gTCBbVCBJIFlWcq19Ilw3A7AHAkACQAJAIFMiSSBWIkxSDQAgTyJJIFEiTFINACBQIUwgUCBOIklSDQAgUiJJIFQiTFENAQsgSSBMVA0BCyBTIFZ9IE8gUVQgTyBRfSJdIE4gUFQgTiBQfSJZIFIgVFStIk5Ucq0iT1RyrX0hUyBSIFR9IVIgVSFYIEshTCBaIUkgWSBOfSFOIF0gT30hTwwCCyBTIFZ9IFFCAFJCACBRfSJMIFBC/////w9WrSJJVHKtfSBMIEl9IkkgT3wiWCBJVCBYIE5C/////w8gUH0iSXwiTCBJVCBMIFRCf4UiSSBSfCJSIElUrXwiTiBMVHKtfCJPIFhUcq18Qv////8PfSFTIFUhWCBLIUwgWiFJDAELIFYgT0IAUkIAIE99IlcgTkL/////D1atIkpUcq0gU3x9IFEgVyBKfSJKfCJWIEpUIFZC/////w8gTn0iSiBQfCJXIEpUIFcgVyBSQn+FIkogVHwiVCBKVK18IlBWcq18IlEgVlRyrXxC/////w99IVYgVSFXIEshWyBaIUoLIAZBsAdqIAZBkAdqQSAQrgUNAAsLIAYgUjcD6AYgBiBONwPgBiAGIE83A9gGIAYgUzcD0AYgBkHsAGogBkHEBmogBkHQBmoQ/QIgBkHoAGoiASAGQfwFaigCADYCACAGIAYpAvQFIko3A2AgGUEQaiAGQdgEaikDADcCACAZQQhqIAZB0ARqKQMANwIAIBkgBikDyAQ3AgAgGSBKNwIYIBlBIGogASkDADcCACAZQShqIAZB8ABqKQMANwIAIAYoArwEIgEEQCAOIAFBBXQQlAULIAYoArAEIgEEQCAGKAK0BCABQQV0EJQFCyAGKAKkBCIBBEAgFiABQQV0EJQFCyAGKAKYBCIBBEAgBigCnAQgAUEFdBCUBQsgBigCiAQiAQRAIAYoAowEIAFBBXQQlAULIAYoAvgDIgEEQCAGKAL8AyABQQV0EJQFCyAGKALsAyIBBEAgBigC8AMgAUEFdBCUBQsgBigC2AMhAyAGKALcAyIBBEAgAyECA0AgAigCACIIBEAgAkEEaigCACAIQQV0EJQFCyACQQxqIQIgAUEBayIBDQALCyAGKALUAyIBBEAgAyABQQxsEJQFCyAGKALgAyIBBEAgBigC5AMgAUEFdBCUBQsgBigCwAMhAyAGKALEAyIBBEAgAyECA0AgAigCACIIBEAgAkEEaigCACAIQQV0EJQFCyACQQxqIQIgAUEBayIBDQALCyAGKAK8AyIBBEAgAyABQQxsEJQFCyAGKALIAyIBBEAgBigCzAMgAUEFdBCUBQsgCQRAICcgCUEFdBCUBQsgBigCKCEDIAYoAiwiAQRAIAMhAgNAIAIoAgAiCQRAIAJBBGooAgAgCUEFdBCUBQsgAkEMaiECIAFBAWsiAQ0ACwsgBigCJCIBBEAgAyABQQxsEJQFCyAGKAIwIgEEQCAGKAI0IAFBBXQQlAULIAYoAhAhAyAGKAIUIgEEQCADIQIDQCACKAIAIgkEQCACQQRqKAIAIAlBBXQQlAULIAJBDGohAiABQQFrIgENAAsLIAYoAgwiAQRAIAMgAUEMbBCUBQsgBigCGCIBBEAgBigCHCABQQV0EJQFCyARIARBBXQQlAUgFSANQQV0EJQFIBwoAggiAQRAIBwoAgQhAgNAIAIoAgAiAwRAIAJBBGooAgAgA0EFdBCUBQsgAkEMaiECIAFBAWsiAQ0ACwsgHCgCACIBBEAgHCgCBCABQQxsEJQFCyAcKAIMIgEEQCAcKAIQIAFBBXQQlAULIAZBkAhqJAAMEwsMDwsMDgsMDQtBAUEBQayJwAAQmAQAC0EAQQBBnInAABCYBAALQQEgAUGMicAAEJgEAAtBCEHgABCoBQALQQhBIBCoBQALIAZCAjcDYEHAh8AAQSsgBkHgAGpBvInAAEHMicAAEP0DAAsgBkICNwNgQcCHwABBKyAGQeAAakG8icAAQdyJwAAQ/QMACyADIAEQgwUACyAGQgI3A2BBwIfAAEErIAZB4ABqQbyJwABB7InAABD9AwALIAZCAjcDYEHAh8AAQSsgBkHgAGpBvInAAEH8icAAEP0DAAsgASADEIMFAAsgDiABEIMFAAsgASADEIMFAAtBnJ3AAEErIAZB4ABqQcidwABB2J3AABD9AwALQQRBGBCoBQALIA4gARCDBQALIBQgB0EwbGoiAUEoaiAlQTBqKQIANwIAIAFBIGogJUEoaikCADcCACABQRhqICVBIGopAgA3AgAgAUEQaiAlQRhqKQIANwIAIAFBCGogJUEQaikCADcCACABICUpAgg3AgAgB0EBaiEHIBBBAWoiECATRw0ACwsgFyAHNgIAICVB0ABqJAAMAQsgBCAPEIMFAAsgBUHQAmogISgCACIMNgIAIAUgBSkC8AE3A8gCIAxFDQECQCAFKALMAiIcKAIIIgFFDQAgAUEFdCECIAFB////H0sEQEEAIQoMCwsgHCgCBCEEQQAhA0G50cIALQAAGkEIIQogAkEIEIsFIixFDQogAUEFdCECIAEhBwNAIAIgA0YNASADICxqIgkgAyAEaiINKQMANwMAIAlBGGogDUEYaikDADcDACAJQRBqIA1BEGopAwA3AwAgCUEIaiANQQhqKQMANwMAIANBIGohAyAHQQFrIgcNAAsLQQghGUEIIR8CQCAcKAIUIgJFDQAgAkEFdCEEIAJB////H0sEQEEAIQoMCgsgHCgCECENQQAhA0G50cIALQAAGkEIIQogBEEIEIsFIh9FDQkgAkEFdCEEIAIhBwNAIAMgBEYNASADIB9qIgggAyANaiIJKQMANwMAIAhBGGogCUEYaikDADcDACAIQRBqIAlBEGopAwA3AwAgCEEIaiAJQQhqKQMANwMAIANBIGohAyAHQQFrIgcNAAsLAkAgHCgCICIJRQ0AIAlBBXQhBCAJQf///x9LBEBBACEKDAkLIBwoAhwhDUEAIQNBudHCAC0AABpBCCEKIARBCBCLBSIZRQ0IIAlBBXQhBCAJIQcDQCADIARGDQEgAyAZaiIQIAMgDWoiCCkDADcDACAQQRhqIAhBGGopAwA3AwAgEEEQaiAIQRBqKQMANwMAIBBBCGogCEEIaikDADcDACADQSBqIQMgB0EBayIHDQALC0EIIRsCQCAcKAIsIgRFDQAgBEEFdCEHIARB////H0sEQEEAIQoMDgsgHCgCKCEIQQAhA0G50cIALQAAGkEIIQogB0EIEIsFIhtFDQ0gBEEFdCENIAQhBwNAIAMgDUYNASADIBtqIg8gAyAIaiIQKQMANwMAIA9BGGogEEEYaikDADcDACAPQRBqIBBBEGopAwA3AwAgD0EIaiAQQQhqKQMANwMAIANBIGohAyAHQQFrIgcNAAsLIAVBqAZqQYCFwAApAwA3AwAgBUGgBmpB+ITAACkDADcDACAFQZgGakHwhMAAKQMANwMAIAVB6ITAACkDADcDkAYgDEEBRgRAIAEhFiACIRQgCSEOIAQhDQwHCyAFQnw3A+gGIAVC/////z83A+AGIAVCADcD2AYgBUKEgICAQDcD0AYgBUGQBmogBUHQBmoQsQFBCCEQQQghCwJAIBxBOGooAgAiDkUNACAOQQV0IQcgDkH///8fSwRAQQAhCgwOCyAcQTRqKAIAIQhBACEDQbnRwgAtAAAaQQghCiAHQQgQiwUiC0UNDSAOQQV0IQ0gDiEHA0AgAyANRg0BIAMgC2oiFiADIAhqIg8pAwA3AwAgFkEYaiAPQRhqKQMANwMAIBZBEGogD0EQaikDADcDACAWQQhqIA9BCGopAwA3AwAgA0EgaiEDIAdBAWsiBw0ACwsCQCAcQcQAaigCACIPRQ0AIA9BBXQhByAPQf///x9LBEBBACEKDA4LIBxBQGsoAgAhCEEAIQNBudHCAC0AABpBCCEKIAdBCBCLBSIQRQ0NIA9BBXQhDSAPIQcDQCADIA1GDQEgAyAQaiIRIAMgCGoiFikDADcDACARQRhqIBZBGGopAwA3AwAgEUEQaiAWQRBqKQMANwMAIBFBCGogFkEIaikDADcDACADQSBqIQMgB0EBayIHDQALC0EIISdBCCEXAkAgHEHQAGooAgAiCEUNACAIQQV0IQcgCEH///8fSwRAQQAhCgwOCyAcQcwAaigCACEWQQAhA0G50cIALQAAGkEIIQogB0EIEIsFIhdFDQ0gCEEFdCENIAghBwNAIAMgDUYNASADIBdqIhUgAyAWaiIRKQMANwMAIBVBGGogEUEYaikDADcDACAVQRBqIBFBEGopAwA3AwAgFUEIaiARQQhqKQMANwMAIANBIGohAyAHQQFrIgcNAAsLAkAgHEHcAGooAgAiDUUNACANQQV0IQcgDUH///8fSwRAQQAhCgwOCyAcQdgAaigCACERQQAhA0G50cIALQAAGkEIIQogB0EIEIsFIidFDQ0gDUEFdCEWIA0hBwNAIAMgFkYNASADICdqIhMgAyARaiIVKQMANwMAIBNBGGogFUEYaikDADcDACATQRBqIBVBEGopAwA3AwAgE0EIaiAVQQhqKQMANwMAIANBIGohAyAHQQFrIgcNAAsLIAUgDTYC/AYgBSAnNgL4BiAFIA02AvQGIAUgCDYC8AYgBSAXNgLsBiAFIAg2AugGIAUgDzYC5AYgBSAQNgLgBiAFIA82AtwGIAUgDjYC2AYgBSALNgLUBiAFIA42AtAGIAVB6AdqIAVBqAZqKQMANwMAIAVB4AdqIg0gBUGgBmopAwA3AwAgBUHYB2oiByAFQZgGaikDADcDACAFIAUpA5AGNwPQByAFQfABaiAFQdAGaiAFQdAHaiIDELoCIAUgAjYCnAQgBSAfNgKYBCAFIAI2ApQEIAUgATYCkAQgBSAsNgKMBCAFIAE2AogEIA0gBUGAAmopAgA3AwAgByAFQfgBaikCADcDACAFIAUpAvABNwPQByAFQZADaiAFQYgEaiIBIAMQPSAFIAQ2ApwEIAUgGzYCmAQgBSAENgKUBCAFIAk2ApAEIAUgGTYCjAQgBSAJNgKIBCANIAVBmAJqKQIANwMAIAcgBUGQAmopAgA3AwAgBSAFKQKIAjcD0AcgBUGoA2oiISABIAMQPSAFKAKQAyEBIAUoApQDISwgBSgCmAMhFiAFKAKcAyECIAUoAqADIR8gBSgCpAMhFCAFKAKoAyEJIAUoAqwDIRkgBSgCsAMhDiAFKAK0AyEEIAUoArgDIRsgBSgCvAMhDSAFKALQBiIDBEAgBSgC1AYgA0EFdBCUBQsgBSgC3AYiAwRAIAUoAuAGIANBBXQQlAULIAUoAugGIgMEQCAFKALsBiADQQV0EJQFCyAcQeAAaiEIIAUoAvQGIgMEQCAFKAL4BiADQQV0EJQFCyAMQTBsIBxqIgogCEYNBiAFQYgCaiEoA0AgBUJ8NwPoBiAFQv////8/NwPgBiAFQgA3A9gGIAVChICAgEA3A9AGIAVBkAZqIAVB0AZqELEBQQghCwJAIAgoAggiE0UNACATQQV0IRUgE0H///8fSwRAQQAhAwwICyAIKAIEIRBBudHCAC0AABpBCCEDIBVBCBCLBSILRQ0HQQAhAyATIQcDQCADIBVGDQEgAyALaiIRIAMgEGoiDykDADcDACARQRhqIA9BGGopAwA3AwAgEUEQaiAPQRBqKQMANwMAIBFBCGogD0EIaikDADcDACADQSBqIQMgB0EBayIHDQALC0EIIRdBCCEQAkAgCCgCFCIVRQ0AIBVBBXQhHSAVQf///x9LBEBBACEDDAcLIAgoAhAhD0G50cIALQAAGkEIIQMgHUEIEIsFIhBFDQZBACEDIBUhBwNAIAMgHUYNASADIBBqIgwgAyAPaiIRKQMANwMAIAxBGGogEUEYaikDADcDACAMQRBqIBFBEGopAwA3AwAgDEEIaiARQQhqKQMANwMAIANBIGohAyAHQQFrIgcNAAsLAkAgCCgCICIRRQ0AIBFBBXQhICARQf///x9LBEBBACEDDAYLIAgoAhwhD0G50cIALQAAGkEIIQMgIEEIEIsFIhdFDQVBACEDIBEhBwNAIAMgIEYNASADIBdqIh0gAyAPaiIMKQMANwMAIB1BGGogDEEYaikDADcDACAdQRBqIAxBEGopAwA3AwAgHUEIaiAMQQhqKQMANwMAIANBIGohAyAHQQFrIgcNAAsLAkAgCCgCLCIPRQRAQQghJwwBCyAPQQV0ISMgD0H///8fSwRAQQAhAwwFCyAIKAIoIQxBudHCAC0AABpBCCEDICNBCBCLBSInRQ0EQQAhAyAPIQcDQCADICNGDQEgAyAnaiIgIAMgDGoiHSkDADcDACAgQRhqIB1BGGopAwA3AwAgIEEQaiAdQRBqKQMANwMAICBBCGogHUEIaikDADcDACADQSBqIQMgB0EBayIHDQALCyAFIA82AvwGIAUgJzYC+AYgBSAPNgL0BiAFIBE2AvAGIAUgFzYC7AYgBSARNgLoBiAFIBU2AuQGIAUgEDYC4AYgBSAVNgLcBiAFIBM2AtgGIAUgCzYC1AYgBSATNgLQBiAFQegHaiAFQagGaikDADcDACAFQeAHaiIQIAVBoAZqKQMANwMAIAVB2AdqIgcgBUGYBmopAwA3AwAgBSAFKQOQBjcD0AcgBUHwAWogBUHQBmogBUHQB2oiAxC6AiAFIBQ2ApwEIAUgHzYCmAQgBSACNgKUBCAFIBY2ApAEIAUgLDYCjAQgBSABNgKIBCAQIAVBgAJqKQIANwMAIAcgBUH4AWopAgA3AwAgBSAFKQLwATcD0AcgBUGQA2ogBUGIBGoiASADED0gBSANNgKcBCAFIBs2ApgEIAUgBDYClAQgBSAONgKQBCAFIBk2AowEIAUgCTYCiAQgECAoQRBqKQIANwMAIAcgKEEIaikCADcDACAFICgpAgA3A9AHICEgASADED0gBSgCkAMhASAFKAKUAyEsIAUoApgDIRYgBSgCnAMhAiAFKAKgAyEfIAUoAqQDIRQgBSgCqAMhCSAFKAKsAyEZIAUoArADIQ4gBSgCtAMhBCAFKAK4AyEbIAUoArwDIQ0gBSgC0AYiAwRAIAUoAtQGIANBBXQQlAULIAUoAtwGIgMEQCAFKALgBiADQQV0EJQFCyAFKALoBiIDBEAgBSgC7AYgA0EFdBCUBQsgBSgC9AYiAwRAIAUoAvgGIANBBXQQlAULIAogCEEwaiIIRw0ACwwGCyAKIAEQgwUAC0EAQQBBjIjAABCYBAALIAMgIxCDBQALIAMgIBCDBQALIAMgHRCDBQALIAMgFRCDBQALIAAgBSkDCDcDACAAIA02AmwgACAbNgJoIAAgBDYCZCAAIA42AmAgACAZNgJcIAAgCTYCWCAAIBQ2AlQgACAfNgJQIAAgAjYCTCAAIBY2AkggACAsNgJEIAAgATYCQCAAQThqIAVBQGspAwA3AwAgAEEwaiAFQThqKQMANwMAIABBKGogBUEwaikDADcDACAAQSBqIAVBKGopAwA3AwAgAEEYaiAFQSBqKQMANwMAIABBEGogBUEYaikDADcDACAAQQhqIAVBEGopAwA3AwAgBUHIAmoQ5wMgBSgCyAIiAARAIBwgAEEwbBCUBQsgEgRAQQAhCwNAIBogC0EYbGoiASgCCCIEBEAgASgCBCEDA0AgAygCACIABEAgA0EEaigCACAAQQV0EJQFCyADQQxqIQMgBEEBayIEDQALCyABKAIAIgAEQCABKAIEIABBDGwQlAULIAEoAgwiAARAIAEoAhAgAEEFdBCUBQsgC0EBaiILIBJHDQALCyArBEAgGiArQRhsEJQFCyAFQdAIaiQADwsgCiAEEIMFAAsgCiAEEIMFAAsgCiACEIMFAAsgBCADEIMFAAsgAyAKEIMFAAsgCiAHEIMFAAuJpgECMn4SfyMAQYAFayI0JAAgNEGAA2oiOUHYg8EAQcABEK0FGiA5QaCWwQBBIBCuBQRAIDRC+oGnuZTW9awiNwOYAyA0QrGkoMjwyOjw0QA3A5ADIDRCz/6qlYftn4SNfzcDiAMgNEKq37eXkZHS4egANwOAAwsgNEGgA2pBoJbBAEEgEK4FBEAgNEKpwMaJrs6TsjA3A7gDIDRC3bCFjOi2kai4fzcDsAMgNEKNlcfDltLawJd/NwOoAyA0Qsf688PtgqOQPDcDoAMLIDRBwANqQaCWwQBBIBCuBQRAIDRCqcDGia7Ok7IwNwPYAyA0Qt2whYzotpGouH83A9ADIDRCjZXHw5bS2sCXfzcDyAMgNELH+vPD7YKjkDw3A8ADCyA0QeADakGglsEAQSAQrgUEQCA0QqnAxomuzpOyMDcD+AMgNELdsIWM6LaRqLh/NwPwAyA0Qo2Vx8OW0trAl383A+gDIDRCx/rzw+2Co5A8NwPgAwsgNEGABGpBoJbBAEEgEK4FBEAgNEKpwMaJrs6TsjA3A5gEIDRC3bCFjOi2kai4fzcDkAQgNEKNlcfDltLawJd/NwOIBCA0Qsf688PtgqOQPDcDgAQLIDRBoARqQaCWwQBBIBCuBQRAIDRCqcDGia7Ok7IwNwO4BCA0Qt2whYzotpGouH83A7AEIDRCjZXHw5bS2sCXfzcDqAQgNELH+vPD7YKjkDw3A6AECyA0QcABaiI5IDRBgANqIjpBwAEQrQUaIABB4AJqITMgAEHAAmohNiAAQaACaiE3IABBgAJqITggAEHgAWohNQJAAkACQEGYgsEAIDkQjgRFBEAgOiAAQcABEK0FGiA6IABBwAFqIjwQrgMgNEGgA2oiOyA1EK4DIDRBwANqIDgQrgMgNEHgA2ogNxCuAyA0QYAEaiA2EK4DIDRBoARqIDMQrgMgNCA6QcABEK0FIjNBwAFqIDxBwAEQrQUaIDNBuANqIDNBuAJqIjYpAwA3AwAgM0GwA2ogM0GwAmoiNykDADcDACAzQagDaiAzQagCaiI4KQMANwMAIDsgM0GgAmoiOykDADcDACAzQZgDaiAzQZgCaiI9KQMANwMAIDNBkANqIDNBkAJqIj4pAwA3AwAgM0GIA2ogM0GIAmoiPykDADcDACA/IABByAFqKQMANwMAID4gAEHQAWopAwA3AwAgPSAAQdgBaikDADcDACA7IDUpAwA3AwAgOCAAQegBaikDADcDACA3IABB8AFqKQMANwMAIDYgAEH4AWopAwA3AwAgMyAzKQOAAjcDgAMgMyAAKQPAATcDgAIgM0H4AWogM0H4AmopAwAiDTcDACAzQfABaiAzQfACaikDACIFNwMAIDNB6AFqIDNB6AJqKQMAIgQ3AwAgM0HgAWogM0HgAmoiNikDACIKNwMAIDNB2AFqIDNB2AJqKQMAIgg3AwAgM0HQAWogM0HQAmopAwAiATcDACAzQcgBaiAzQcgCaikDACIDNwMAIDMgMykDwAIiBjcDwAEgAUIBhiADQj+IhCECIANCAYYgBkI/iIQhAyAGQgGGIQcCQCAIQgGGIAFCP4iEIglCqcDGia7Ok7IwVARAIAIhAQwBCwJAIAlCqcDGia7Ok7IwUg0AIAJC3bCFjOi2kai4f1QEQCACIQFCqcDGia7Ok7IwIQkMAgsgAkLdsIWM6LaRqLh/Ug0AQt2whYzotpGouH8hASADQo2Vx8OW0trAl39UBEBCqcDGia7Ok7IwIQkMAgsgA0KNlcfDltLawJd/UiAHQsb688PtgqOQPFZyDQBCjZXHw5bS2sCXfyEDQqnAxomuzpOyMCEJDAELIAkgAkLy6ri86a2lv+gAQvPquLzpraW/6AAgB0LH+vPD7YKjkDxUGyIBIAN8IgMgAVqtIgZ9IghCo8/685fJ7tfHAHwiASAIVK0gAiAGVK1RrX1CqcDGia7Ok7IwfSEJIAdCx/rzw+2Co5A8fSEHCyAFQgGGIARCP4iEIQYgBEIBhiAKQj+IhCEEIApCAYYhCAJAIA1CAYYgBUI/iIQiBUKpwMaJrs6TsjBUBEAgBiECDAELAkAgBUKpwMaJrs6TsjBSDQAgBkLdsIWM6LaRqLh/VARAIAYhAkKpwMaJrs6TsjAhBQwCCyAGQt2whYzotpGouH9SDQBC3bCFjOi2kai4fyECIARCjZXHw5bS2sCXf1QEQEKpwMaJrs6TsjAhBQwCCyAEQo2Vx8OW0trAl39SIAhCxvrzw+2Co5A8VnINAEKNlcfDltLawJd/IQRCqcDGia7Ok7IwIQUMAQsgBSAGQvLquLzpraW/6ABC8+q4vOmtpb/oACAIQsf688PtgqOQPFQbIgIgBHwiBCACWq0iBX0iCkKjz/rzl8nu18cAfCICIApUrSAFIAZWrVGtfUKpwMaJrs6TsjB9IQUgCELH+vPD7YKjkDx9IQgLIAFCAYYgA0I/iIQhBiADQgGGIAdCP4iEIQMgB0IBhiEHAkAgCUIBhiABQj+IhCIJQqnAxomuzpOyMFQEQCAGIQEMAQsCQCAJQqnAxomuzpOyMFINACAGQt2whYzotpGouH9UBEAgBiEBQqnAxomuzpOyMCEJDAILIAZC3bCFjOi2kai4f1INAELdsIWM6LaRqLh/IQEgA0KNlcfDltLawJd/VARAQqnAxomuzpOyMCEJDAILIANCjZXHw5bS2sCXf1IgB0LG+vPD7YKjkDxWcg0AQo2Vx8OW0trAl38hA0KpwMaJrs6TsjAhCQwBCyAJIAZC8uq4vOmtpb/oAELz6ri86a2lv+gAIAdCx/rzw+2Co5A8VBsiASADfCIDIAFarSIKfSIJQqPP+vOXye7XxwB8IgEgCVStIAYgClStUa19QqnAxomuzpOyMH0hCSAHQsf688PtgqOQPH0hBwsgAkIBhiAEQj+IhCEGIARCAYYgCEI/iIQhBCAIQgGGIQgCQCAFQgGGIAJCP4iEIgVCqcDGia7Ok7IwVARAIAYhAgwBCwJAIAVCqcDGia7Ok7IwUg0AIAZC3bCFjOi2kai4f1QEQCAGIQJCqcDGia7Ok7IwIQUMAgsgBkLdsIWM6LaRqLh/Ug0AQt2whYzotpGouH8hAiAEQo2Vx8OW0trAl39UBEBCqcDGia7Ok7IwIQUMAgsgBEKNlcfDltLawJd/UiAIQsb688PtgqOQPFZyDQBCjZXHw5bS2sCXfyEEQqnAxomuzpOyMCEFDAELIAUgBkLy6ri86a2lv+gAQvPquLzpraW/6AAgCELH+vPD7YKjkDxUGyICIAR8IgQgAlqtIgV9IgpCo8/685fJ7tfHAHwiAiAKVK0gBSAGVq1RrX1CqcDGia7Ok7IwfSEFIAhCx/rzw+2Co5A8fSEICyABQgGGIANCP4iEIQYgA0IBhiAHQj+IhCENIAdCAYYhEAJAIAlCAYYgAUI/iIQiA0KpwMaJrs6TsjBUBEAgBiEBDAELAkAgA0KpwMaJrs6TsjBSDQAgBkLdsIWM6LaRqLh/VARAIAYhAUKpwMaJrs6TsjAhAwwCCyAGQt2whYzotpGouH9SDQBC3bCFjOi2kai4fyEBIA1CjZXHw5bS2sCXf1QEQEKpwMaJrs6TsjAhAwwCCyANQo2Vx8OW0trAl39SIBBCxvrzw+2Co5A8VnINAEKNlcfDltLawJd/IQ1CqcDGia7Ok7IwIQMMAQsgAyAGQvLquLzpraW/6ABC8+q4vOmtpb/oACAQQsf688PtgqOQPFQbIgEgDXwiDSABWq0iA30iCkKjz/rzl8nu18cAfCIBIApUrSADIAZWrVGtfUKpwMaJrs6TsjB9IQMgEELH+vPD7YKjkDx9IRALIAJCAYYgBEI/iIQhBiAEQgGGIAhCP4iEIREgCEIBhiEEAkAgBUIBhiACQj+IhCIIQqnAxomuzpOyMFQEQCAGIQoMAQsCQCAIQqnAxomuzpOyMFINACAGQt2whYzotpGouH9UBEAgBiEKQqnAxomuzpOyMCEIDAILIAZC3bCFjOi2kai4f1INAELdsIWM6LaRqLh/IQogEUKNlcfDltLawJd/VARAQqnAxomuzpOyMCEIDAILIBFCjZXHw5bS2sCXf1IgBELG+vPD7YKjkDxWcg0AQo2Vx8OW0trAl38hEUKpwMaJrs6TsjAhCAwBCyAIIAZC8uq4vOmtpb/oAELz6ri86a2lv+gAIARCx/rzw+2Co5A8VBsiAiARfCIRIAJarSICfSIFQqPP+vOXye7XxwB8IgogBVStIAIgBlatUa19QqnAxomuzpOyMH0hCCAEQsf688PtgqOQPH0hBAsgM0H4BGogM0H4AWopAwA3AwAgM0HwBGogM0HwAWopAwA3AwAgM0HoBGogM0HoAWopAwA3AwAgMyAzKQPgATcD4AQgMykD4AQhBwJAIDNB4ARqQZCJwQBBIBCuBUUEQCAzKQP4BCECIDMpA/AEIQkgMykD6AQhBQwBC0J/QgBCf0IAQn9CACAHQsf688PtgqOQPFYbIgIgAiAzKQPoBCIFVK19IAIgBX0iAkLz6ri86a2lv+gAfSIFIAJUrXxCf1EbIgIgAiAzKQPwBCIGVK19IAIgBn0iAkKjz/rzl8nu18cAfSIJIAJUrXxCf1EbIDMpA/gEfUKpwMaJrs6TsjB8IQJCx/rzw+2Co5A8IAd9IQcLIAIgA3wgASAJfCIBIAlUrSABIAUgDXwiAiAFVK0gAiAHIBB8IgMgB1StfCIFIAJUrXx8IgYgAVStfHwiB0KpwMaJrs6TsjBUDQECQCAHQqnAxomuzpOyMFINACAGQt2whYzotpGouH9UBEBCqcDGia7Ok7IwIQcMAwsgBkLdsIWM6LaRqLh/Ug0AQo2Vx8OW0trAl38hAULdsIWM6LaRqLh/IQIgBUKNlcfDltLawJd/VARAQqnAxomuzpOyMCEHIAUhAQwECyAFQo2Vx8OW0trAl39SIANCxvrzw+2Co5A8VnINAEKpwMaJrs6TsjAhBwwDCyAHIAYgBULy6ri86a2lv+gAQvPquLzpraW/6AAgA0LH+vPD7YKjkDxUG3wiASAFWq0iBX0iB0Kjz/rzl8nu18cAfCICIAdUrSAFIAZWrVGtfUKpwMaJrs6TsjB9IQcgA0LH+vPD7YKjkDx9IQMMAgsgNEHAAWogAEHAARCtBRogNEGAA2oiOSAAQcABEK0FGiA5IABBwAFqIjwQrgMgNEGgA2ogNRCuAyA0QcADaiA4EK4DIDRB4ANqIDcQrgMgNEGABGogNhCuAyA0QaAEaiAzEK4DIAApA/gCIQUgACkD8AIhBiAAKQPoAiEKIAApA+ACIQcgACkD2AIhCCAAKQPQAiEJIAApA8gCIQ0gACkDwAIhESAAKQO4AiEQIAApA7ACIRIgACkDqAIhEyAAKQOgAiELIAApA5gCIQ8gACkDkAIhFSAAKQOIAiEXIAApA4ACIRsgACkD+AEhHCAAKQPwASEYIAApA+gBIRkgACkD4AEhDCAAKQPYASEOIAApA9ABIQMgACkDyAEhASAAIAApAwAiBCAAKQPAAXwiAjcDACAAIAEgAiAEVK0iFHwiBCAAKQMIfCIBNwMIIAAgAyAAKQMQIhZ8IgMgBCAUVK0gASAEVK18fCIENwMQIAAgDiAAKQMYfCADIBZUrSADIARWrXx8IgM3AxgCQCADQqnAxomuzpOyMFQNAAJAIANCqcDGia7Ok7IwUg0AIARC3bCFjOi2kai4f1QNASAEQt2whYzotpGouH9SDQAgAUKNlcfDltLawJd/VA0BIAJCxvrzw+2Co5A8Vg0AIAFCjZXHw5bS2sCXf1ENAQsgACACQsf688PtgqOQPH03AwAgACABQvLquLzpraW/6ABC8+q4vOmtpb/oACACQsf688PtgqOQPFQbfCICNwMIIABCos/685fJ7tfHAEKjz/rzl8nu18cAIAEgAlgbIgEgBHwiAjcDECAAIAMgASACWK19QqnAxomuzpOyMH03AxgLIAAgACkDICIBIAx8IgI3AyAgACAZIAEgAlatIhl8IgQgACkDKHwiATcDKCAAIBggACkDMCIYfCIDIAQgGVStIAEgBFStfHwiBDcDMCAAIAApAzggHHwgAyAYVK0gAyAEVq18fCIDNwM4AkAgA0KpwMaJrs6TsjBUDQACQCADQqnAxomuzpOyMFINACAEQt2whYzotpGouH9UDQEgBELdsIWM6LaRqLh/Ug0AIAFCjZXHw5bS2sCXf1QNASACQsb688PtgqOQPFYNACABQo2Vx8OW0trAl39RDQELIAAgAkLH+vPD7YKjkDx9NwMgIAAgAULy6ri86a2lv+gAQvPquLzpraW/6AAgAkLH+vPD7YKjkDxUG3wiAjcDKCAAQqLP+vOXye7XxwBCo8/685fJ7tfHACABIAJYGyIBIAR8IgI3AzAgACADIAEgAlitfUKpwMaJrs6TsjB9NwM4CyAAIAApA0AiASAbfCICNwNAIAAgFyABIAJWrSIXfCIEIAApA0h8IgE3A0ggACAVIAApA1AiFXwiAyAEIBdUrSABIARUrXx8IgQ3A1AgACAAKQNYIA98IAMgFVStIAMgBFatfHwiAzcDWAJAIANCqcDGia7Ok7IwVA0AAkAgA0KpwMaJrs6TsjBSDQAgBELdsIWM6LaRqLh/VA0BIARC3bCFjOi2kai4f1INACABQo2Vx8OW0trAl39UDQEgAkLG+vPD7YKjkDxWDQAgAUKNlcfDltLawJd/UQ0BCyAAIAJCx/rzw+2Co5A8fTcDQCAAIAFC8uq4vOmtpb/oAELz6ri86a2lv+gAIAJCx/rzw+2Co5A8VBt8IgI3A0ggAEKiz/rzl8nu18cAQqPP+vOXye7XxwAgASACWBsiASAEfCICNwNQIAAgAyABIAJYrX1CqcDGia7Ok7IwfTcDWAsgACAAKQNgIgEgC3wiAjcDYCAAIBMgASACVq0iE3wiBCAAKQNofCIBNwNoIAAgEiAAKQNwIhJ8IgMgBCATVK0gASAEVK18fCIENwNwIAAgACkDeCAQfCADIBJUrSADIARWrXx8IgM3A3gCQCADQqnAxomuzpOyMFQNAAJAIANCqcDGia7Ok7IwUg0AIARC3bCFjOi2kai4f1QNASAEQt2whYzotpGouH9SDQAgAUKNlcfDltLawJd/VA0BIAJCxvrzw+2Co5A8Vg0AIAFCjZXHw5bS2sCXf1ENAQsgACACQsf688PtgqOQPH03A2AgACABQvLquLzpraW/6ABC8+q4vOmtpb/oACACQsf688PtgqOQPFQbfCICNwNoIABCos/685fJ7tfHAEKjz/rzl8nu18cAIAEgAlgbIgEgBHwiAjcDcCAAIAMgASACWK19QqnAxomuzpOyMH03A3gLIAAgACkDgAEiASARfCICNwOAASAAIA0gASACVq0iDXwiBCAAKQOIAXwiATcDiAEgACAJIAApA5ABIgl8IgMgBCANVK0gASAEVK18fCIENwOQASAAIAApA5gBIAh8IAMgCVStIAMgBFatfHwiAzcDmAECQCADQqnAxomuzpOyMFQNAAJAIANCqcDGia7Ok7IwUg0AIARC3bCFjOi2kai4f1QNASAEQt2whYzotpGouH9SDQAgAUKNlcfDltLawJd/VA0BIAJCxvrzw+2Co5A8Vg0AIAFCjZXHw5bS2sCXf1ENAQsgACACQsf688PtgqOQPH03A4ABIAAgAULy6ri86a2lv+gAQvPquLzpraW/6AAgAkLH+vPD7YKjkDxUG3wiAjcDiAEgAEKiz/rzl8nu18cAQqPP+vOXye7XxwAgASACWBsiASAEfCICNwOQASAAIAMgASACWK19QqnAxomuzpOyMH03A5gBCyAAIAApA6ABIgEgB3wiAjcDoAEgACAKIAEgAlatIgp8IgQgACkDqAF8IgE3A6gBIAAgBiAAKQOwASIGfCIDIAQgClStIAEgBFStfHwiBDcDsAEgACAAKQO4ASAFfCADIAZUrSADIARWrXx8IgM3A7gBAkAgA0KpwMaJrs6TsjBUDQACQCADQqnAxomuzpOyMFINACAEQt2whYzotpGouH9UDQEgBELdsIWM6LaRqLh/Ug0AIAFCjZXHw5bS2sCXf1QNASACQsb688PtgqOQPFYNACABQo2Vx8OW0trAl39RDQELIAAgAkLH+vPD7YKjkDx9NwOgASAAIAFC8uq4vOmtpb/oAELz6ri86a2lv+gAIAJCx/rzw+2Co5A8VBt8IgI3A6gBIABCos/685fJ7tfHAEKjz/rzl8nu18cAIAEgAlgbIgEgBHwiAjcDsAEgACADIAEgAlitfUKpwMaJrs6TsjB9NwO4AQsgACA0QYADahAXIAAgACkDwAEiAUIBhiICNwPAASAAIAApA8gBIgNCAYYgAUI/iIQiBDcDyAEgACAAKQPQASIFQgGGIANCP4iEIgE3A9ABIAAgACkD2AFCAYYgBUI/iIQiAzcD2AECQCADQqnAxomuzpOyMFQNAAJAIANCqcDGia7Ok7IwUg0AIAFC3bCFjOi2kai4f1QNASABQt2whYzotpGouH9SDQAgBEKNlcfDltLawJd/VA0BIAJCxvrzw+2Co5A8Vg0AIARCjZXHw5bS2sCXf1ENAQsgACACQsf688PtgqOQPH03A8ABIABC8uq4vOmtpb/oAELz6ri86a2lv+gAIAJCx/rzw+2Co5A8VBsiAiAEfCIENwPIASAAIAEgAiAEWK0iAn0iBEKjz/rzl8nu18cAfCIFNwPQASAAIAMgBCAFVq0gASACVK1RrX1CqcDGia7Ok7IwfTcD2AELIAAgACkD4AEiAUIBhiICNwPgASAAIAApA+gBIgNCAYYgAUI/iIQiBDcD6AEgACAAKQPwASIFQgGGIANCP4iEIgE3A/ABIAAgACkD+AFCAYYgBUI/iIQiAzcD+AECQCADQqnAxomuzpOyMFQNAAJAIANCqcDGia7Ok7IwUg0AIAFC3bCFjOi2kai4f1QNASABQt2whYzotpGouH9SDQAgBEKNlcfDltLawJd/VA0BIAJCxvrzw+2Co5A8Vg0AIARCjZXHw5bS2sCXf1ENAQsgACACQsf688PtgqOQPH03A+ABIABC8uq4vOmtpb/oAELz6ri86a2lv+gAIAJCx/rzw+2Co5A8VBsiAiAEfCIENwPoASAAIAEgAiAEWK0iAn0iBEKjz/rzl8nu18cAfCIFNwPwASAAIAMgBCAFVq0gASACVK1RrX1CqcDGia7Ok7IwfTcD+AELIAAgACkDgAIiAUIBhiICNwOAAiAAIAApA4gCIgNCAYYgAUI/iIQiBDcDiAIgACAAKQOQAiIFQgGGIANCP4iEIgE3A5ACIAAgACkDmAJCAYYgBUI/iIQiAzcDmAICQCADQqnAxomuzpOyMFQNAAJAIANCqcDGia7Ok7IwUg0AIAFC3bCFjOi2kai4f1QNASABQt2whYzotpGouH9SDQAgBEKNlcfDltLawJd/VA0BIAJCxvrzw+2Co5A8Vg0AIARCjZXHw5bS2sCXf1ENAQsgACACQsf688PtgqOQPH03A4ACIABC8uq4vOmtpb/oAELz6ri86a2lv+gAIAJCx/rzw+2Co5A8VBsiAiAEfCIENwOIAiAAIAEgAiAEWK0iAn0iBEKjz/rzl8nu18cAfCIFNwOQAiAAIAMgBCAFVq0gASACVK1RrX1CqcDGia7Ok7IwfTcDmAILIAAgACkDoAIiAUIBhiICNwOgAiAAIAApA6gCIgNCAYYgAUI/iIQiBDcDqAIgACAAKQOwAiIFQgGGIANCP4iEIgE3A7ACIAAgACkDuAJCAYYgBUI/iIQiAzcDuAICQCADQqnAxomuzpOyMFQNAAJAIANCqcDGia7Ok7IwUg0AIAFC3bCFjOi2kai4f1QNASABQt2whYzotpGouH9SDQAgBEKNlcfDltLawJd/VA0BIAJCxvrzw+2Co5A8Vg0AIARCjZXHw5bS2sCXf1ENAQsgACACQsf688PtgqOQPH03A6ACIABC8uq4vOmtpb/oAELz6ri86a2lv+gAIAJCx/rzw+2Co5A8VBsiAiAEfCIENwOoAiAAIAEgAiAEWK0iAn0iBEKjz/rzl8nu18cAfCIFNwOwAiAAIAMgBCAFVq0gASACVK1RrX1CqcDGia7Ok7IwfTcDuAILIAAgACkDwAIiAUIBhiICNwPAAiAAIAApA8gCIgNCAYYgAUI/iIQiBDcDyAIgACAAKQPQAiIFQgGGIANCP4iEIgE3A9ACIAAgACkD2AJCAYYgBUI/iIQiAzcD2AICQCADQqnAxomuzpOyMFQNAAJAIANCqcDGia7Ok7IwUg0AIAFC3bCFjOi2kai4f1QNASABQt2whYzotpGouH9SDQAgBEKNlcfDltLawJd/VA0BIAJCxvrzw+2Co5A8Vg0AIARCjZXHw5bS2sCXf1ENAQsgACACQsf688PtgqOQPH03A8ACIABC8uq4vOmtpb/oAELz6ri86a2lv+gAIAJCx/rzw+2Co5A8VBsiAiAEfCIENwPIAiAAIAEgAiAEWK0iAn0iBEKjz/rzl8nu18cAfCIFNwPQAiAAIAMgBCAFVq0gASACVK1RrX1CqcDGia7Ok7IwfTcD2AILIAAgACkD4AIiAUIBhiICNwPgAiAAIAApA+gCIgNCAYYgAUI/iIQiBDcD6AIgACAAKQPwAiIFQgGGIANCP4iEIgE3A/ACIAAgACkD+AJCAYYgBUI/iIQiAzcD+AICQCADQqnAxomuzpOyMFQNAAJAIANCqcDGia7Ok7IwUg0AIAFC3bCFjOi2kai4f1QNASABQt2whYzotpGouH9SDQAgBEKNlcfDltLawJd/VA0BIAJCxvrzw+2Co5A8Vg0AIARCjZXHw5bS2sCXf1ENAQsgACACQsf688PtgqOQPH03A+ACIABC8uq4vOmtpb/oAELz6ri86a2lv+gAIAJCx/rzw+2Co5A8VBsiAiAEfCIENwPoAiAAIAEgAiAEWK0iAn0iBEKjz/rzl8nu18cAfCIFNwPwAiAAIAMgBCAFVq0gASACVK1RrX1CqcDGia7Ok7IwfTcD+AILIDwgNEHAAWoQFwwCCyAGIQIgBSEBCyAzIDMpA8ABIgYgA3wiAzcD4AQgMyAzKQPIASIJIAF8IgUgAyAGVK18IgE3A+gEIDMgMykD0AEiDSACfCIQIAUgCVStIAEgBVStfHwiAjcD8AQgMyAzKQPYASISIAd8IA0gEFatIAIgEFStfHwiBTcD+AQCQCAFQqnAxomuzpOyMFQNAAJAIAVCqcDGia7Ok7IwUg0AIAJC3bCFjOi2kai4f1QNASACQt2whYzotpGouH9SDQAgAUKNlcfDltLawJd/VA0BIANCxvrzw+2Co5A8Vg0AIAFCjZXHw5bS2sCXf1ENAQsgMyADQsf688PtgqOQPH03A+AEIDMgAULy6ri86a2lv+gAQvPquLzpraW/6AAgA0LH+vPD7YKjkDxUG3wiAzcD6AQgMyACIAEgA1itIgF9IgNCo8/685fJ7tfHAHwiBzcD8AQgMyAFIAMgB1atIAEgAlatUa19QqnAxomuzpOyMH03A/gECwJAIDMpA/gBIAh8IDMpA/ABIgEgCnwiAiABVK0gAiACIDMpA+gBIgMgEXwiASADVK0gASABIAQgMykD4AEiBHwiByAEVK18IgFWrXx8IgJWrXx8IghCqcDGia7Ok7IwVARAIAEhAyACIQQMAQsCQCAIQqnAxomuzpOyMFINACACQt2whYzotpGouH9UBEAgASEDIAIhBEKpwMaJrs6TsjAhCAwCCyACQt2whYzotpGouH9SDQBCjZXHw5bS2sCXfyEDQt2whYzotpGouH8hBCABQo2Vx8OW0trAl39UBEAgASEDQqnAxomuzpOyMCEIDAILIAFCjZXHw5bS2sCXf1IgB0LG+vPD7YKjkDxWcg0AQqnAxomuzpOyMCEIDAELIAggAiABQvLquLzpraW/6ABC8+q4vOmtpb/oACAHQsf688PtgqOQPFQbfCIDIAFarSIBfSIFQqPP+vOXye7XxwB8IgQgBVStIAEgAlatUa19QqnAxomuzpOyMH0hCCAHQsf688PtgqOQPH0hBwsgM0HAAmohNSAzQYACaiE3IDNB4AFqITgCQCAIIBJ8IAQgDXwiAiAEVK0gAiACIAMgCXwiASADVK0gASABIAYgB3wiCCAHVK18IgFWrXx8IgJWrXx8IgdCqcDGia7Ok7IwVARAIAEhBCACIQUMAQsCQCAHQqnAxomuzpOyMFINACACQt2whYzotpGouH9UBEAgASEEIAIhBUKpwMaJrs6TsjAhBwwCCyACQt2whYzotpGouH9SDQBCjZXHw5bS2sCXfyEEQt2whYzotpGouH8hBSABQo2Vx8OW0trAl39UBEAgASEEQqnAxomuzpOyMCEHDAILIAFCjZXHw5bS2sCXf1IgCELG+vPD7YKjkDxWcg0AQqnAxomuzpOyMCEHDAELIAcgAiABQvLquLzpraW/6ABC8+q4vOmtpb/oACAIQsf688PtgqOQPFQbfCIEIAFarSIBfSIDQqPP+vOXye7XxwB8IgUgA1StIAEgAlatUa19QqnAxomuzpOyMH0hByAIQsf688PtgqOQPH0hCAsgM0HYAWogM0H4BGopAwA3AwAgM0HQAWogM0HwBGopAwA3AwAgM0HIAWogM0HoBGopAwA3AwAgMyAzKQPgBDcDwAEgMyAHNwP4ASAzIAU3A/ABIDMgBDcD6AEgMyAINwPgASA1QThqIDNBuANqKQMANwMAIDVBMGogM0GwA2opAwA3AwAgNUEoaiAzQagDaikDADcDACA1QSBqIDNBoANqIjspAwA3AwAgNUEYaiAzQZgDaikDADcDACA1QRBqIDNBkANqKQMANwMAIDVBCGogM0GIA2opAwA3AwAgNSAzKQOAAzcDACAzQYADaiI6IABBwAEQrQUaIDogM0HAAWoiORCuAyA7IDgQrgMgM0HAA2ogNxCuAyAzQeADaiAzQaACahCuAyAzQYAEaiA1EK4DIDNBoARqIDYQrgMgOSA6QcABEK0FGiAzQYADaiAAQcABEK0FGiA6IDwQFyAzKQOAAyEaIDMpA4gDIR0gMykDmAMhLiAzKQOQAyEeIDMpA6ADIRYgMykDqAMhHyAzKQOwAyEgIDMpA7gDISEgMykDwAMhIiAzKQPIAyEjIDMpA9ADISQgMykD2AMhLyAzKQPgAyElIDMpA+gDISYgMykD8AMhJyAzKQP4AyEwIDMpA4AEISggMykDiAQhKSAzKQOQBCEqIDMpA5gEITEgMykDoAQhKyAzKQOoBCEsIDMpA7AEIS0gMykDuAQhMiAzIDkQFyAAIDI3A/gCIAAgLTcD8AIgACAsNwPoAiAAICs3A+ACIAAgMTcD2AIgACAqNwPQAiAAICk3A8gCIAAgKDcDwAIgACAwNwO4AiAAICc3A7ACIAAgJjcDqAIgACAlNwOgAiAAIC83A5gCIAAgJDcDkAIgACAjNwOIAiAAICI3A4ACIAAgITcD+AEgACAgNwPwASAAIB83A+gBIAAgFjcD4AEgACAuQgGGIB5CP4iEIgI3A9gBIAAgHkIBhiAdQj+IhCIBNwPQASAAIB1CAYYgGkI/iIQiBDcDyAEgACAaQgGGIgM3A8ABAkAgAkKpwMaJrs6TsjBUDQACQCACQqnAxomuzpOyMFINACABQt2whYzotpGouH9UDQEgAULdsIWM6LaRqLh/Ug0AIARCjZXHw5bS2sCXf1QNASADQsb688PtgqOQPFYNACAEQo2Vx8OW0trAl39RDQELIAAgA0LH+vPD7YKjkDx9NwPAASAAIARC8uq4vOmtpb/oAELz6ri86a2lv+gAIANCx/rzw+2Co5A8VBsiBHwiAzcDyAEgACABIAMgBFqtIgR9IgNCo8/685fJ7tfHAHwiBTcD0AEgACACIAMgBVatIAEgBFStUa19QqnAxomuzpOyMH03A9gBCyAAIBZCAYYiAjcD4AEgACAhQgGGICBCP4iEIgQ3A/gBIAAgIEIBhiAfQj+IhCIBNwPwASAAIB9CAYYgFkI/iIQiAzcD6AECQCAEQqnAxomuzpOyMFQNAAJAIARCqcDGia7Ok7IwUg0AIAFC3bCFjOi2kai4f1QNASABQt2whYzotpGouH9SDQAgA0KNlcfDltLawJd/VA0BIAJCxvrzw+2Co5A8Vg0AIANCjZXHw5bS2sCXf1ENAQsgACACQsf688PtgqOQPH03A+ABIABC8uq4vOmtpb/oAELz6ri86a2lv+gAIAJCx/rzw+2Co5A8VBsiAiADfCIDNwPoASAAIAEgAiADWK0iAn0iA0Kjz/rzl8nu18cAfCIFNwPwASAAIAQgAyAFVq0gASACVK1RrX1CqcDGia7Ok7IwfTcD+AELIAAgIkIBhiICNwOAAiAAIC9CAYYgJEI/iIQiBDcDmAIgACAkQgGGICNCP4iEIgE3A5ACIAAgI0IBhiAiQj+IhCIDNwOIAgJAIARCqcDGia7Ok7IwVA0AAkAgBEKpwMaJrs6TsjBSDQAgAULdsIWM6LaRqLh/VA0BIAFC3bCFjOi2kai4f1INACADQo2Vx8OW0trAl39UDQEgAkLG+vPD7YKjkDxWDQAgA0KNlcfDltLawJd/UQ0BCyAAIAJCx/rzw+2Co5A8fTcDgAIgAELy6ri86a2lv+gAQvPquLzpraW/6AAgAkLH+vPD7YKjkDxUGyICIAN8IgM3A4gCIAAgASACIANYrSICfSIDQqPP+vOXye7XxwB8IgU3A5ACIAAgBCADIAVWrSABIAJUrVGtfUKpwMaJrs6TsjB9NwOYAgsgACAlQgGGIgI3A6ACIAAgMEIBhiAnQj+IhCIENwO4AiAAICdCAYYgJkI/iIQiATcDsAIgACAmQgGGICVCP4iEIgM3A6gCAkAgBEKpwMaJrs6TsjBUDQACQCAEQqnAxomuzpOyMFINACABQt2whYzotpGouH9UDQEgAULdsIWM6LaRqLh/Ug0AIANCjZXHw5bS2sCXf1QNASACQsb688PtgqOQPFYNACADQo2Vx8OW0trAl39RDQELIAAgAkLH+vPD7YKjkDx9NwOgAiAAQvLquLzpraW/6ABC8+q4vOmtpb/oACACQsf688PtgqOQPFQbIgIgA3wiAzcDqAIgACABIAIgA1itIgJ9IgNCo8/685fJ7tfHAHwiBTcDsAIgACAEIAMgBVatIAEgAlStUa19QqnAxomuzpOyMH03A7gCCyAAIChCAYYiBjcDwAIgACAxQgGGICpCP4iEIgE3A9gCIAAgKkIBhiApQj+IhCIENwPQAiAAIClCAYYgKEI/iIQiCzcDyAICQCABQqnAxomuzpOyMFQNAAJAIAFCqcDGia7Ok7IwUg0AIARC3bCFjOi2kai4f1QNASAEQt2whYzotpGouH9SDQAgC0KNlcfDltLawJd/VA0BIAZCxvrzw+2Co5A8Vg0AIAtCjZXHw5bS2sCXf1ENAQsgACAGQsf688PtgqOQPH03A8ACIABC8uq4vOmtpb/oAELz6ri86a2lv+gAIAZCx/rzw+2Co5A8VBsiAiALfCIDNwPIAiAAIAQgAiADWK0iAn0iA0Kjz/rzl8nu18cAfCIFNwPQAiAAIAEgAyAFVq0gAiAEVq1RrX1CqcDGia7Ok7IwfTcD2AILIAAgK0IBhiIDNwPgAiAAIDJCAYYgLUI/iIQiAjcD+AIgACAtQgGGICxCP4iEIgU3A/ACIAAgLEIBhiArQj+IhCIMNwPoAgJAIAJCqcDGia7Ok7IwVA0AAkAgAkKpwMaJrs6TsjBSDQAgBULdsIWM6LaRqLh/VA0BIAVC3bCFjOi2kai4f1INACAMQo2Vx8OW0trAl39UDQEgA0LG+vPD7YKjkDxWDQAgDEKNlcfDltLawJd/UQ0BCyAAIANCx/rzw+2Co5A8fTcD4AIgAELy6ri86a2lv+gAQvPquLzpraW/6AAgA0LH+vPD7YKjkDxUGyIKIAx8Igc3A+gCIAAgBSAHIAparSIKfSIHQqPP+vOXye7XxwB8Igg3A/ACIAAgAiAHIAhWrSAFIApUrVGtfUKpwMaJrs6TsjB9NwP4AgsgACAoNwOAASAAICI3A0AgACAaNwMAIABBuAFqIj4gMjcDACAAQbABaiI/IC03AwAgAEGoAWoiQCAsNwMAIABBoAFqIkEgKzcDACAAQZgBaiJCIDE3AwAgAEGQAWoiQyAqNwMAIABBiAFqIkQgKTcDACAAQfgAaiI1IDA3AwAgAEHwAGoiNiAnNwMAIABB6ABqIjcgJjcDACAAQeAAaiI4ICU3AwAgAEHYAGoiPCAvNwMAIABB0ABqIjsgJDcDACAAQcgAaiI9ICM3AwAgAEEQaiI6IB43AwAgAEEIaiI5IB03AwAgM0G4A2ogNSkDADcDACAzQbADaiA2KQMANwMAIDNBqANqIDcpAwA3AwAgM0GgA2ogOCkDADcDACAzQZgDaiA8KQMANwMAIDNBkANqIDspAwA3AwAgM0GIA2ogPSkDADcDACA1ICE3AwAgNiAgNwMAIDcgHzcDACA4IBY3AwAgPCAuNwMAIDsgHjcDACA9IB03AwAgACkDQCEKIAAgGjcDQCAzIAo3A4ADIABBOGogPikDADcDACAAQTBqID8pAwA3AwAgAEEoaiBAKQMANwMAIABBIGoiNSBBKQMANwMAIABBGGogQikDADcDACA6IEMpAwA3AwAgOSBEKQMANwMAIAAgACkDgAE3AwACQCABQqnAxomuzpOyMFQEQCAEIQoMAQsCQCABQqnAxomuzpOyMFINACAEQt2whYzotpGouH9UBEAgBCEKQqnAxomuzpOyMCEBDAILIARC3bCFjOi2kai4f1INAELdsIWM6LaRqLh/IQogC0KNlcfDltLawJd/VARAQqnAxomuzpOyMCEBDAILIAtCjZXHw5bS2sCXf1IgBkLG+vPD7YKjkDxWcg0AQo2Vx8OW0trAl38hC0KpwMaJrs6TsjAhAQwBCyABIARC8uq4vOmtpb/oAELz6ri86a2lv+gAIAZCx/rzw+2Co5A8VBsiASALfCILIAFarSIBfSIHQqPP+vOXye7XxwB8IgogB1StIAEgBFatUa19QqnAxomuzpOyMH0hASAGQsf688PtgqOQPH0hBgsCQCACQqnAxomuzpOyMFQEQCAFIQcMAQsCQCACQqnAxomuzpOyMFINACAFQt2whYzotpGouH9UBEAgBSEHQqnAxomuzpOyMCECDAILIAVC3bCFjOi2kai4f1INAELdsIWM6LaRqLh/IQcgDEKNlcfDltLawJd/VARAQqnAxomuzpOyMCECDAILIAxCjZXHw5bS2sCXf1IgA0LG+vPD7YKjkDxWcg0AQo2Vx8OW0trAl38hDEKpwMaJrs6TsjAhAgwBCyACIAVC8uq4vOmtpb/oAELz6ri86a2lv+gAIANCx/rzw+2Co5A8VBsiAiAMfCIMIAJarSICfSIEQqPP+vOXye7XxwB8IgcgBFStIAIgBVatUa19QqnAxomuzpOyMH0hAiADQsf688PtgqOQPH0hAwsgCkIBhiALQj+IhCEFIAtCAYYgBkI/iIQhCyAGQgGGIQYCQCABQgGGIApCP4iEIg5CqcDGia7Ok7IwVARAIAUhBAwBCwJAIA5CqcDGia7Ok7IwUg0AIAVC3bCFjOi2kai4f1QEQCAFIQRCqcDGia7Ok7IwIQ4MAgsgBULdsIWM6LaRqLh/Ug0AQt2whYzotpGouH8hBCALQo2Vx8OW0trAl39UBEBCqcDGia7Ok7IwIQ4MAgsgC0KNlcfDltLawJd/UiAGQsb688PtgqOQPFZyDQBCjZXHw5bS2sCXfyELQqnAxomuzpOyMCEODAELIA4gBULy6ri86a2lv+gAQvPquLzpraW/6AAgBkLH+vPD7YKjkDxUGyIBIAt8IgsgAVqtIgF9IgpCo8/685fJ7tfHAHwiBCAKVK0gASAFVq1RrX1CqcDGia7Ok7IwfSEOIAZCx/rzw+2Co5A8fSEGCyAHQgGGIAxCP4iEIQUgDEIBhiADQj+IhCEMIANCAYYhAQJAIAJCAYYgB0I/iIQiAkKpwMaJrs6TsjBUBEAgBSEDDAELAkAgAkKpwMaJrs6TsjBSDQAgBULdsIWM6LaRqLh/VARAIAUhA0KpwMaJrs6TsjAhAgwCCyAFQt2whYzotpGouH9SDQBC3bCFjOi2kai4fyEDIAxCjZXHw5bS2sCXf1QEQEKpwMaJrs6TsjAhAgwCCyAMQo2Vx8OW0trAl39SIAFCxvrzw+2Co5A8VnINAEKNlcfDltLawJd/IQxCqcDGia7Ok7IwIQIMAQsgAiAFQvLquLzpraW/6ABC8+q4vOmtpb/oACABQsf688PtgqOQPFQbIgIgDHwiDCACWq0iAn0iCkKjz/rzl8nu18cAfCIDIApUrSACIAVWrVGtfUKpwMaJrs6TsjB9IQIgAULH+vPD7YKjkDx9IQELIARCAYYgC0I/iIQhBSALQgGGIAZCP4iEIQogBkIBhiELAkAgDkIBhiAEQj+IhCIGQqnAxomuzpOyMFQEQCAFIQQMAQsCQCAGQqnAxomuzpOyMFINACAFQt2whYzotpGouH9UBEAgBSEEQqnAxomuzpOyMCEGDAILIAVC3bCFjOi2kai4f1INAELdsIWM6LaRqLh/IQQgCkKNlcfDltLawJd/VARAQqnAxomuzpOyMCEGDAILIApCjZXHw5bS2sCXf1IgC0LG+vPD7YKjkDxWcg0AQo2Vx8OW0trAl38hCkKpwMaJrs6TsjAhBgwBCyAGIAVC8uq4vOmtpb/oAELz6ri86a2lv+gAIAtCx/rzw+2Co5A8VBsiBCAKfCIKIARarSIGfSIHQqPP+vOXye7XxwB8IgQgB1StIAUgBlStUa19QqnAxomuzpOyMH0hBiALQsf688PtgqOQPH0hCwsgA0IBhiAMQj+IhCEFIAxCAYYgAUI/iIQhByABQgGGIQwCQCACQgGGIANCP4iEIgJCqcDGia7Ok7IwVARAIAUhCAwBCwJAIAJCqcDGia7Ok7IwUg0AIAVC3bCFjOi2kai4f1QEQCAFIQhCqcDGia7Ok7IwIQIMAgsgBULdsIWM6LaRqLh/Ug0AQt2whYzotpGouH8hCCAHQo2Vx8OW0trAl39UBEBCqcDGia7Ok7IwIQIMAgsgB0KNlcfDltLawJd/UiAMQsb688PtgqOQPFZyDQBCjZXHw5bS2sCXfyEHQqnAxomuzpOyMCECDAELIAIgBULy6ri86a2lv+gAQvPquLzpraW/6AAgDELH+vPD7YKjkDxUGyIBIAd8IgcgAVqtIgF9IgJCo8/685fJ7tfHAHwiCCACVK0gASAFVq1RrX1CqcDGia7Ok7IwfSECIAxCx/rzw+2Co5A8fSEMCyAzQdgEaiA1QRhqKQMANwMAIDNB0ARqIDVBEGopAwA3AwAgM0HIBGogNUEIaikDADcDACAzIDUpAwA3A8AEIDMpA8AEIQECQCAzQcAEakGQicEAQSAQrgVFBEAgMykD2AQhFCAzKQPQBCEDIDMpA8gEIQ4MAQtCf0IAQn9CAEJ/QgAgAULH+vPD7YKjkDxWGyIDIAMgMykDyAQiBVStfSADIAV9IgNC8+q4vOmtpb/oAH0iDiADVK18Qn9RGyIDIAMgMykD0AQiBVStfSADIAV9IgVCo8/685fJ7tfHAH0iAyAFVK18Qn9RGyAzKQPYBH1CqcDGia7Ok7IwfCEUQsf688PtgqOQPCABfSEBCwJAAkAgBiAUfCADIAR8IgQgA1StIAQgCiAOfCIDIA5UrSADIAMgASALfCIGIAFUrXwiA1atfHwiCiAEVK18fCIBQqnAxomuzpOyMFQNAAJAIAFCqcDGia7Ok7IwUg0AIApC3bCFjOi2kai4f1QEQEKpwMaJrs6TsjAhAQwCCyAKQt2whYzotpGouH9SDQBCjZXHw5bS2sCXfyEEQt2whYzotpGouH8hBSADQo2Vx8OW0trAl39UBEBCqcDGia7Ok7IwIQEgAyEEDAMLIANCjZXHw5bS2sCXf1IgBkLG+vPD7YKjkDxWcg0AQqnAxomuzpOyMCEBDAILIAEgCiADQvLquLzpraW/6ABC8+q4vOmtpb/oACAGQsf688PtgqOQPFQbfCIEIANarSIBfSIDQqPP+vOXye7XxwB8IgUgA1StIAEgClatUa19QqnAxomuzpOyMH0hASAGQsf688PtgqOQPH0hBgwBCyAKIQUgAyEECyAzIAApAwAiCiAGfCIGNwPABCAzIAApAwgiCSAEfCIDIAYgClStfCIENwPIBCAzIAApAxAiDSAFfCIFIAMgCVStIAMgBFatfHwiAzcD0AQgMyAAKQMYIhEgAXwgBSANVK0gAyAFVK18fCIBNwPYBAJAIAFCqcDGia7Ok7IwVA0AAkAgAUKpwMaJrs6TsjBSDQAgA0LdsIWM6LaRqLh/VA0BIANC3bCFjOi2kai4f1INACAEQo2Vx8OW0trAl39UDQEgBkLG+vPD7YKjkDxWDQAgBEKNlcfDltLawJd/UQ0BCyAzIAZCx/rzw+2Co5A8fTcDwAQgMyAEQvLquLzpraW/6ABC8+q4vOmtpb/oACAGQsf688PtgqOQPFQbfCIFNwPIBCAzIAMgBCAFWK0iBH0iBUKjz/rzl8nu18cAfCIGNwPQBCAzIAEgBSAGVq0gAyAEVK1RrX1CqcDGia7Ok7IwfTcD2AQLAkACQCAAKQM4IAJ8IAApAzAiASAIfCICIAFUrSACIAApAygiASAHfCIEIAFUrSAEIAQgACkDICIDIAx8IgEgA1StfCIEVq18fCIFIAJUrXx8IgJCqcDGia7Ok7IwVA0AAkAgAkKpwMaJrs6TsjBSDQAgBULdsIWM6LaRqLh/VARAQqnAxomuzpOyMCECDAILIAVC3bCFjOi2kai4f1INAEKNlcfDltLawJd/IQZC3bCFjOi2kai4fyEDIARCjZXHw5bS2sCXf1QEQEKpwMaJrs6TsjAhAiAEIQYMAwsgBEKNlcfDltLawJd/UiABQsb688PtgqOQPFZyDQBCqcDGia7Ok7IwIQIMAgsgAiAFIARC8uq4vOmtpb/oAELz6ri86a2lv+gAIAFCx/rzw+2Co5A8VBt8IgYgBFqtIgJ9IgRCo8/685fJ7tfHAHwiAyAEVK0gAiAFVq1RrX1CqcDGia7Ok7IwfSECIAFCx/rzw+2Co5A8fSEBDAELIAUhAyAEIQYLIABBgAFqITUCQAJAIAIgEXwgAyANfCICIANUrSACIAYgCXwiBCAGVK0gBCABIAp8IgMgAVStfCIBIARUrXx8IgQgAlStfHwiBkKpwMaJrs6TsjBUDQACQCAGQqnAxomuzpOyMFINACAEQt2whYzotpGouH9UBEBCqcDGia7Ok7IwIQYMAgsgBELdsIWM6LaRqLh/Ug0AQo2Vx8OW0trAl38hAkLdsIWM6LaRqLh/IQsgAUKNlcfDltLawJd/VARAQqnAxomuzpOyMCEGIAEhAgwDCyABQo2Vx8OW0trAl39SIANCxvrzw+2Co5A8VnINAEKpwMaJrs6TsjAhBgwCCyAGIAQgAULy6ri86a2lv+gAQvPquLzpraW/6AAgA0LH+vPD7YKjkDxUG3wiAiABWq0iAX0iBUKjz/rzl8nu18cAfCILIAVUrSABIARWrVGtfUKpwMaJrs6TsjB9IQYgA0LH+vPD7YKjkDx9IQMMAQsgBCELIAEhAgsgACAzKQPABDcDACAAIAY3AzggACALNwMwIAAgAjcDKCA1IDMpA4ADNwMAIABBGGoiNiAzQdgEaikDADcDACAAQRBqIjcgM0HQBGopAwA3AwAgAEEIaiI4IDNByARqKQMANwMAIDVBCGogM0GIA2opAwA3AwAgNUEQaiAzQZADaikDADcDACA1QRhqIDNBmANqKQMANwMAIDVBIGogM0GgA2opAwA3AwAgNUEoaiAzQagDaikDADcDACA1QTBqIDNBsANqKQMANwMAIDVBOGogM0G4A2opAwA3AwACQAJAIDYpAwAgMykDGCAAKQMAIgEgMykDAHwiBCABVK0iBSAzKQMIfCIBIAVUrSABIDgpAwB8IgogAVStfCIFIDMpAxB8IgEgBVStIAEgASA3KQMAfCIBVq18fHwiDkKpwMaJrs6TsjBUDQACQCAOQqnAxomuzpOyMFINACABQt2whYzotpGouH9UBEBCqcDGia7Ok7IwIQ4MAgsgAULdsIWM6LaRqLh/Ug0AQo2Vx8OW0trAl38hFSAKQo2Vx8OW0trAl39UBEBCqcDGia7Ok7IwIQ5C3bCFjOi2kai4fyEBDAILIApCjZXHw5bS2sCXf1IgBELG+vPD7YKjkDxWcg0AQqnAxomuzpOyMCEOQt2whYzotpGouH8hASAEIQUMAgsgACAEQsf688PtgqOQPH0iBTcDACAAIApC8uq4vOmtpb/oAELz6ri86a2lv+gAIARCx/rzw+2Co5A8VBt8IhU3AwggAEKiz/rzl8nu18cAQqPP+vOXye7XxwAgCiAVWBsiBCABfCIBNwMQIAAgDiABIARarX1CqcDGia7Ok7IwfSIONwMYDAELIAohFSAEIQULAkACQCAGIDMpAzggMykDICIEIAN8IgMgBFStIgYgMykDKHwiBCAGVK0gAiAEfCIGIARUrXwiBCAzKQMwfCICIARUrSACIAIgC3wiAlatfHx8IgRCqcDGia7Ok7IwVA0AAkAgBEKpwMaJrs6TsjBSDQAgAkLdsIWM6LaRqLh/VARAQqnAxomuzpOyMCEEDAILIAJC3bCFjOi2kai4f1INAEKNlcfDltLawJd/IRcgBkKNlcfDltLawJd/VARAQqnAxomuzpOyMCEEQt2whYzotpGouH8hAgwCCyAGQo2Vx8OW0trAl39SIANCxvrzw+2Co5A8VnINAEKpwMaJrs6TsjAhBELdsIWM6LaRqLh/IQIgAyENDAILIAAgA0LH+vPD7YKjkDx9Ig03AyAgACAGQvLquLzpraW/6ABC8+q4vOmtpb/oACADQsf688PtgqOQPFQbfCIXNwMoIABCos/685fJ7tfHAEKjz/rzl8nu18cAIAYgF1gbIgMgAnwiAjcDMCAAIAQgAiADWq19QqnAxomuzpOyMH0iBDcDOAwBCyAGIRcgAyENCwJAAkAgMykDWCAzKQNAIgYgGnwiAyAGVK0iCiAzKQNIfCIGIApUrSAGIB18IgcgBlStfCIKIDMpA1B8IgYgClStIAYgBiAefCIGVq18fCAufCIKQqnAxomuzpOyMFQNAAJAIApCqcDGia7Ok7IwUg0AIAZC3bCFjOi2kai4f1QEQEKpwMaJrs6TsjAhCgwCCyAGQt2whYzotpGouH9SDQBCjZXHw5bS2sCXfyEbIAdCjZXHw5bS2sCXf1QEQEKpwMaJrs6TsjAhCkLdsIWM6LaRqLh/IQYMAgsgB0KNlcfDltLawJd/UiADQsb688PtgqOQPFZyDQBCqcDGia7Ok7IwIQpC3bCFjOi2kai4fyEGIAMhEQwCCyAAIANCx/rzw+2Co5A8fSIRNwNAIAAgB0Ly6ri86a2lv+gAQvPquLzpraW/6AAgA0LH+vPD7YKjkDxUG3wiGzcDSCAAQqLP+vOXye7XxwBCo8/685fJ7tfHACAHIBtYGyIDIAZ8IgY3A1AgACAKIAMgBlitfUKpwMaJrs6TsjB9Igo3A1gMAQsgByEbIAMhEQsCQAJAIDMpA3ggFiAzKQNgfCIIIBZUrSIHIDMpA2h8IgMgB1StIAMgH3wiCSADVK18IgcgMykDcHwiAyAHVK0gAyADICB8IgNWrXx8ICF8IgdCqcDGia7Ok7IwVA0AAkAgB0KpwMaJrs6TsjBSDQAgA0LdsIWM6LaRqLh/VARAQqnAxomuzpOyMCEHDAILIANC3bCFjOi2kai4f1INAEKNlcfDltLawJd/IRwgCUKNlcfDltLawJd/VARAQqnAxomuzpOyMCEHQt2whYzotpGouH8hAwwCCyAJQo2Vx8OW0trAl39SIAhCxvrzw+2Co5A8VnINAEKpwMaJrs6TsjAhB0LdsIWM6LaRqLh/IQMgCCEQDAILIAAgCELH+vPD7YKjkDx9IhA3A2AgACAJQvLquLzpraW/6ABC8+q4vOmtpb/oACAIQsf688PtgqOQPFQbfCIcNwNoIABCos/685fJ7tfHAEKjz/rzl8nu18cAIAkgHFgbIgggA3wiAzcDcCAAIAcgAyAIWq19QqnAxomuzpOyMH0iBzcDeAwBCyAJIRwgCCEQCwJAAkAgACkDmAEgMykDmAEgACkDgAEiCSAzKQOAAXwiCCAJVK0iEiAzKQOIAXwiCSASVK0gCSAJIAApA4gBfCIJVq18IhMgMykDkAF8IhIgE1StIBIgACkDkAF8IgsgElStfHx8IhRCqcDGia7Ok7IwVA0AAkAgFEKpwMaJrs6TsjBSDQAgC0LdsIWM6LaRqLh/VARAQqnAxomuzpOyMCEUDAILIAtC3bCFjOi2kai4f1INAEKNlcfDltLawJd/IRggCUKNlcfDltLawJd/VARAQqnAxomuzpOyMCEUQt2whYzotpGouH8hCwwCCyAJQo2Vx8OW0trAl39SIAhCxvrzw+2Co5A8VnINAEKpwMaJrs6TsjAhFELdsIWM6LaRqLh/IQsgCCESDAILIAAgCELH+vPD7YKjkDx9IhI3A4ABIAAgCULy6ri86a2lv+gAQvPquLzpraW/6AAgCELH+vPD7YKjkDxUG3wiGDcDiAEgAEKiz/rzl8nu18cAQqPP+vOXye7XxwAgCSAYWBsiCCALfCILNwOQASAAIBQgCCALWK19QqnAxomuzpOyMH0iFDcDmAEMAQsgCSEYIAghEgsCQAJAIAApA7gBIDMpA7gBIAApA6ABIgggMykDoAF8IgkgCFStIhMgMykDqAF8IgggE1StIAggACkDqAF8Ig8gCFStfCITIDMpA7ABfCIIIBNUrSAIIAApA7ABfCIMIAhUrXx8fCIIQqnAxomuzpOyMFQNAAJAIAhCqcDGia7Ok7IwUg0AIAxC3bCFjOi2kai4f1QEQEKpwMaJrs6TsjAhCAwCCyAMQt2whYzotpGouH9SDQBCjZXHw5bS2sCXfyEZIA9CjZXHw5bS2sCXf1QEQEKpwMaJrs6TsjAhCELdsIWM6LaRqLh/IQwMAgsgD0KNlcfDltLawJd/UiAJQsb688PtgqOQPFZyDQBCqcDGia7Ok7IwIQhC3bCFjOi2kai4fyEMIAkhEwwCCyAAIAlCx/rzw+2Co5A8fSITNwOgASAAIA9C8uq4vOmtpb/oAELz6ri86a2lv+gAIAlCx/rzw+2Co5A8VBt8Ihk3A6gBIABCos/685fJ7tfHAEKjz/rzl8nu18cAIA8gGVgbIgkgDHwiDDcDsAEgACAIIAkgDFitfUKpwMaJrs6TsjB9Igg3A7gBDAELIA8hGSAJIRMLIAAgBSAafCIJNwMAIAAgBSAJVq0iGiAdfCIPIBV8IgU3AwggACABIB58IhUgDyAaVK0gBSAPVK18fCIPNwMQIAAgDiAufCABIBVWrSAPIBVUrXx8IgE3AxgCQCABQqnAxomuzpOyMFQNAAJAIAFCqcDGia7Ok7IwUg0AIA9C3bCFjOi2kai4f1QNASAPQt2whYzotpGouH9SDQAgBUKNlcfDltLawJd/VA0BIAlCxvrzw+2Co5A8Vg0AIAVCjZXHw5bS2sCXf1ENAQsgACAJQsf688PtgqOQPH03AwAgACAFQvLquLzpraW/6ABC8+q4vOmtpb/oACAJQsf688PtgqOQPFQbfCIJNwMIIABCos/685fJ7tfHAEKjz/rzl8nu18cAIAUgCVgbIgUgD3wiCTcDECAAIAEgBSAJWK19QqnAxomuzpOyMH03AxgLIAAgDSAWfCIFNwMgIAAgBSANVK0iDyAffCIJIBd8IgE3AyggACACICB8Ig0gCSAPVK0gASAJVK18fCIJNwMwIAAgBCAhfCACIA1WrSAJIA1UrXx8IgI3AzgCQCACQqnAxomuzpOyMFQNAAJAIAJCqcDGia7Ok7IwUg0AIAlC3bCFjOi2kai4f1QNASAJQt2whYzotpGouH9SDQAgAUKNlcfDltLawJd/VA0BIAVCxvrzw+2Co5A8Vg0AIAFCjZXHw5bS2sCXf1ENAQsgACAFQsf688PtgqOQPH03AyAgACABQvLquLzpraW/6ABC8+q4vOmtpb/oACAFQsf688PtgqOQPFQbfCIENwMoIABCos/685fJ7tfHAEKjz/rzl8nu18cAIAEgBFgbIgEgCXwiBDcDMCAAIAIgASAEWK19QqnAxomuzpOyMH03AzgLIAAgESAifCICNwNAIAAgAiARVK0iCSAjfCIEIBt8IgE3A0ggACAGICR8IgUgBCAJVK0gASAEVK18fCIENwNQIAAgCiAvfCAFIAZUrSAEIAVUrXx8IgU3A1gCQCAFQqnAxomuzpOyMFQNAAJAIAVCqcDGia7Ok7IwUg0AIARC3bCFjOi2kai4f1QNASAEQt2whYzotpGouH9SDQAgAUKNlcfDltLawJd/VA0BIAJCxvrzw+2Co5A8Vg0AIAFCjZXHw5bS2sCXf1ENAQsgACACQsf688PtgqOQPH03A0AgACABQvLquLzpraW/6ABC8+q4vOmtpb/oACACQsf688PtgqOQPFQbfCICNwNIIABCos/685fJ7tfHAEKjz/rzl8nu18cAIAEgAlgbIgEgBHwiAjcDUCAAIAUgASACWK19QqnAxomuzpOyMH03A1gLIAAgECAlfCICNwNgIAAgAiAQVK0iBiAmfCIEIBx8IgE3A2ggACADICd8IgUgBCAGVK0gASAEVK18fCIENwNwIAAgByAwfCADIAVWrSAEIAVUrXx8IgM3A3gCQCADQqnAxomuzpOyMFQNAAJAIANCqcDGia7Ok7IwUg0AIARC3bCFjOi2kai4f1QNASAEQt2whYzotpGouH9SDQAgAUKNlcfDltLawJd/VA0BIAJCxvrzw+2Co5A8Vg0AIAFCjZXHw5bS2sCXf1ENAQsgACACQsf688PtgqOQPH03A2AgACABQvLquLzpraW/6ABC8+q4vOmtpb/oACACQsf688PtgqOQPFQbfCICNwNoIABCos/685fJ7tfHAEKjz/rzl8nu18cAIAEgAlgbIgEgBHwiAjcDcCAAIAMgASACWK19QqnAxomuzpOyMH03A3gLIAAgEiAofCICNwOAASAAIAIgElStIgUgKXwiBCAYfCIBNwOIASAAIAsgKnwiAyAEIAVUrSABIARUrXx8IgQ3A5ABIAAgFCAxfCADIAtUrSADIARWrXx8IgM3A5gBAkAgA0KpwMaJrs6TsjBUDQACQCADQqnAxomuzpOyMFINACAEQt2whYzotpGouH9UDQEgBELdsIWM6LaRqLh/Ug0AIAFCjZXHw5bS2sCXf1QNASACQsb688PtgqOQPFYNACABQo2Vx8OW0trAl39RDQELIAAgAkLH+vPD7YKjkDx9NwOAASAAIAFC8uq4vOmtpb/oAELz6ri86a2lv+gAIAJCx/rzw+2Co5A8VBt8IgI3A4gBIABCos/685fJ7tfHAEKjz/rzl8nu18cAIAEgAlgbIgEgBHwiAjcDkAEgACADIAEgAlitfUKpwMaJrs6TsjB9NwOYAQsgACATICt8IgI3A6ABIAAgAiATVK0iBSAsfCIEIBl8IgE3A6gBIAAgDCAtfCIDIAQgBVStIAEgBFStfHwiBDcDsAEgACAIIDJ8IAMgDFStIAMgBFatfHwiAzcDuAEgA0KpwMaJrs6TsjBUDQACQCADQqnAxomuzpOyMFINACAEQt2whYzotpGouH9UDQEgBELdsIWM6LaRqLh/Ug0AIAFCjZXHw5bS2sCXf1QNASACQsb688PtgqOQPFYNACABQo2Vx8OW0trAl39RDQELIAAgAkLH+vPD7YKjkDx9NwOgASAAIAFC8uq4vOmtpb/oAELz6ri86a2lv+gAIAJCx/rzw+2Co5A8VBt8IgI3A6gBIABCos/685fJ7tfHAEKjz/rzl8nu18cAIAEgAlgbIgEgBHwiAjcDsAEgACADIAEgAlitfUKpwMaJrs6TsjB9NwO4AQsgNEGABWokACAAC76GAQIbfzp+IwBBgAVrIgIkACAAQThqIgMpAwAhTSAAQTBqIggpAwAhTiAAQShqIgopAwAhTyAAQSBqIgspAwAhUCAAQRhqIgQpAwAhUSAAQRBqIgUpAwAhUiAAQQhqIgYpAwAhUyAAKQO4ASE7IAApA7ABISogACkDqAEhMiAAKQOgASEzIAApA5gBIT8gACkDkAEhNCAAKQOIASE1IAApA4ABITYgACkDeCEuIAApA3AhKyAAKQNoISwgACkDYCEtIAApA1ghNyAAKQNQIS8gACkDSCEwIAApA0AhMSAAKQMAIVQgASkDuAEhRSABKQOwASE8IAEpA6gBIT0gASkDoAEhPiABKQOYASFGIAEpA5ABIUEgASkDiAEhQiABKQOAASFDIAEpA3ghQCABKQNwIUcgASkDaCFIIAEpA2AhSSABKQNYITggASkDUCE5IAEpA0ghOiABKQNAIUogAkG4AmoiCSADKQMANwMAIAJBsAJqIgcgCCkDADcDACACQagCaiIIIAopAwA3AwAgAkGgAmoiAyALKQMANwMAIAJBmAJqIgogBCkDADcDACACQZACaiILIAUpAwA3AwAgAkGIAmoiDiAGKQMANwMAIAIgACkDADcDgAIgAkHYAmogBCkDADcDACACQdACaiAFKQMANwMAIAJByAJqIAYpAwA3AwAgAiAAKQMANwPAAiACQegCaiIMIAgpAwA3AwAgAkHwAmoiDSAHKQMANwMAIAJB+AJqIhAgCSkDADcDACACIAMpAwA3A+ACIANBkLjAAEEgEK4FBEAgAkLH+vPD7YKjkDwgAikDoAIiHX03A6ACIAJCf0IAIB1Cx/rzw+2Co5A8VhsiHSACKQOoAiIefSIfQvPquLzpraW/6AB9IiA3A6gCIAJCf0IAIB8gIFatIB0gHSAeVK19fEJ/URsiHSACKQOwAiIefSIfQqPP+vOXye7XxwB9IiA3A7ACIAJCf0IAIB8gIFatIB0gHSAeVK19fEJ/URsgAikDuAJ9QqnAxomuzpOyMHw3A7gCCyACQdgDaiAEKQMANwMAIAJB0ANqIAUpAwA3AwAgAkHIA2ogBikDADcDACACQegDaiADQQhqKQMANwMAIAJB8ANqIANBEGopAwA3AwAgAkH4A2ogA0EYaikDADcDACACIAApAwA3A8ADIAIgAykDADcD4AMgAkG4BGogAUE4aiIEKQMANwMAIAJBsARqIAFBMGoiBSkDADcDACACQagEaiABQShqIgYpAwA3AwAgAkGIBGogAUEIaiIPKQMANwMAIAJBkARqIAFBEGoiESkDADcDACACQZgEaiABQRhqIhIpAwA3AwAgAiABKQMgNwOgBCACIAEpAwA3A4AEIAJBgANqIAJBwANqIAJBgARqEHogAkHYBGogBCkDADcDACACQdAEaiAFKQMANwMAIAJByARqIAYpAwA3AwAgAkHoBGogDykDADcDACACQfAEaiARKQMANwMAIAJB+ARqIBIpAwA3AwAgAiABKQMgNwPABCACIAEpAwA3A+AEIAJBoANqIgQgAkHAAmogAkHABGoQeiAJIAJBuANqKQMANwMAIAcgAkGwA2opAwA3AwAgCCACQagDaikDADcDACADIAQpAwA3AwAgCiACQZgDaikDADcDACALIAJBkANqKQMANwMAIA4gAkGIA2opAwA3AwAgAiACKQOAAzcDgAIgAkE4aiAJKQMANwMAIAJBMGogBykDADcDACACQShqIAgpAwA3AwAgAkEg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w+2Co5A8QgAQ/AMgAkHwFmogAikDkBciCiACKQPgFyILIAd8IgcgBSAGVK0gAkHYF2opAwAgBiAJVK18fHwiCXwiBiACQYgXaikDACACKQOAFyIEIAV8IARUrXx8IgVCiceZpK7wgemHf34iBEKpwMaJrs6TsjBCABD8AyACQeAWaiAEQt2whYzotpGouH9CABD8AyACQdAWaiAEQo2Vx8OW0trAl39CABD8AyACQcAWaiAEQsf688PtgqOQPEIAEPwDIAJBsBZqIAIpA9AWIgwgAikD8BciDSAIfCIIIAcgCVatIAJB6BdqKQMAIAcgC1StfHx8IgcgAikDoBd8IgkgBSAGVK0gAkGYF2opAwAgBiAKVK18fHwiCnwiBiACQcgWaikDACACKQPAFiIEIAV8IARUrXx8IgVCiceZpK7wgemHf34iBEKpwMaJrs6TsjBCABD8AyACQaAWaiAEQt2whYzotpGouH9CABD8AyACQZAWaiAEQo2Vx8OW0trAl39CABD8AyACQYAWaiAEQsf688PtgqOQPEIAEPwDIAMgAikDkBYiCyAHIAhUrSACQfgXaikDACAIIA1UrXx8Ig0gAikDsBd8IgQgCSAKVq0gAkGoF2opAwAgByAJVq18fHwiByACKQPgFnwiCCAFIAZUrSACQdgWaikDACAGIAxUrXx8fCIJfCIGIAJBiBZqKQMAIAUgAikDgBYiBXwgBVStfHwiCjcAACADIAQgB1atIAJBuBdqKQMAIAQgDVStfHwiDCACKQPwFnwiBCAIIAlWrSACQegWaikDACAHIAhWrXx8fCIFIAIpA6AWfCIHIAYgClatIAJBmBZqKQMAIAYgC1StfHx8IgY3AAggAyAEIAVWrSACQfgWaikDACAEIAxUrXx8IgggAikDsBZ8IgQgBiAHVK0gAkGoFmopAwAgBSAHVq18fHwiBTcAECADIAQgBVatIAJBuBZqKQMAIAQgCFStfHw3ABggACADQSBBCBCMAyADQSAQlAVBudHCAC0AABogASkDOCEIIAEpAzAhByABKQMoIQYgASkDICEFQSBBARCLBSIDRQ0AIAJB8BVqIAVCiceZpK7wgemHf34iBEKpwMaJrs6TsjBCABD8AyACQeAVaiAEQt2whYzotpGouH9CABD8AyACQdAVaiAEQo2Vx8OW0trAl39CABD8AyACQcAVaiAEQsf688PtgqOQPEIAEPwDIAJBsBVqIAIpA9AVIgkgBnwiBiACQcgVaikDACACKQPAFSIEIAV8IARUrXx8IgVCiceZpK7wgemHf34iBEKpwMaJrs6TsjBCABD8AyACQaAVaiAEQt2whYzotpGouH9CABD8AyACQZAVaiAEQo2Vx8OW0trAl39CABD8AyACQYAVaiAEQsf688PtgqOQPEIAEPwDIAJB8BRqIAIpA5AVIgogAikD4BUiCyAHfCIHIAUgBlStIAJB2BVqKQMAIAYgCVStfHx8Igl8IgYgAkGIFWopAwAgAikDgBUiBCAFfCAEVK18fCIFQonHmaSu8IHph39+IgRCqcDGia7Ok7IwQgAQ/AMgAkHgFGogBELdsIWM6LaRqLh/QgAQ/AMgAkHQFGogBEKNlcfDltLawJd/QgAQ/AMgAkHAFGogBELH+vPD7YKjkDxCABD8AyACQbAUaiACKQPQFCIMIAIpA/AVIg0gCHwiCCAHIAlWrSACQegVaikDACAHIAtUrXx8fCIHIAIpA6AVfCIJIAUgBlStIAJBmBVqKQMAIAYgClStfHx8Igp8IgYgAkHIFGopAwAgAikDwBQiBCAFfCAEVK18fCIFQonHmaSu8IHph39+IgRCqcDGia7Ok7IwQgAQ/AMgAkGgFGogBELdsIWM6LaRqLh/QgAQ/AMgAkGQFGogBEKNlcfDltLawJd/QgAQ/AMgAkGAFGogBELH+vPD7YKjkDxCABD8AyADIAIpA5AUIgsgByAIVK0gAkH4FWopAwAgCCANVK18fCINIAIpA7AVfCIEIAkgClatIAJBqBVqKQMAIAcgCVatfHx8IgcgAikD4BR8IgggBSAGVK0gAkHYFGopAwAgBiAMVK18fHwiCXwiBiACQYgUaikDACAFIAIpA4AUIgV8IAVUrXx8Igo3AAAgAyAEIAdWrSACQbgVaikDACAEIA1UrXx8IgwgAikD8BR8IgQgCCAJVq0gAkHoFGopAwAgByAIVq18fHwiBSACKQOgFHwiByAGIApWrSACQZgUaikDACAGIAtUrXx8fCIGNwAIIAMgBCAFVq0gAkH4FGopAwAgBCAMVK18fCIIIAIpA7AUfCIEIAYgB1StIAJBqBRqKQMAIAUgB1atfHx8IgU3ABAgAyAEIAVWrSACQbgUaikDACAEIAhUrXx8NwAYIABBDGogA0EgQQgQjAMgA0EgEJQFQbnRwgAtAAAaIAEpA1ghCCABKQNQIQcgASkDSCEGIAEpA0AhBUEgQQEQiwUiA0UNACACQfATaiAFQonHmaSu8IHph39+IgRCqcDGia7Ok7IwQgAQ/AMgAkHgE2ogBELdsIWM6LaRqLh/QgAQ/AMgAkHQE2ogBEKNlcfDltLawJd/QgAQ/AMgAkHAE2ogBELH+vPD7YKjkDxCABD8AyACQbATaiACKQPQEyIJIAZ8IgYgAkHIE2opAwAgAikDwBMiBCAFfCAEVK18fCIFQonHmaSu8IHph39+IgRCqcDGia7Ok7IwQgAQ/AMgAkGgE2ogBELdsIWM6LaRqLh/QgAQ/AMgAkGQE2ogBEKNlcfDltLawJd/QgAQ/AMgAkGAE2ogBELH+vPD7YKjkDxCABD8AyACQfASaiACKQOQEyIKIAIpA+ATIgsgB3wiByAFIAZUrSACQdgTaikDACAGIAlUrXx8fCIJfCIGIAJBiBNqKQMAIAIpA4ATIgQgBXwgBFStfHwiBUKJx5mkrvCB6Yd/fiIEQqnAxomuzpOyMEIAEPwDIAJB4BJqIARC3bCFjOi2kai4f0IAEPwDIAJB0BJqIARCjZXHw5bS2sCXf0IAEPwDIAJBwBJqIARCx/rzw+2Co5A8QgAQ/AMgAkGwEmogAikD0BIiDCACKQPwEyINIAh8IgggByAJVq0gAkHoE2opAwAgByALVK18fHwiByACKQOgE3wiCSAFIAZUrSACQZgTaikDACAGIApUrXx8fCIKfCIGIAJByBJqKQMAIAIpA8ASIgQgBXwgBFStfHwiBUKJx5mkrvCB6Yd/fiIEQqnAxomuzpOyMEIAEPwDIAJBoBJqIARC3bCFjOi2kai4f0IAEPwDIAJBkBJqIARCjZXHw5bS2sCXf0IAEPwDIAJBgBJqIARCx/rzw+2Co5A8QgAQ/AMgAyACKQOQEiILIAcgCFStIAJB+BNqKQMAIAggDVStfHwiDSACKQOwE3wiBCAJIApWrSACQagTaikDACAHIAlWrXx8fCIHIAIpA+ASfCIIIAUgBlStIAJB2BJqKQMAIAYgDFStfHx8Igl8IgYgAkGIEmopAwAgBSACKQOAEiIFfCAFVK18fCIKNwAAIAMgBCAHVq0gAkG4E2opAwAgBCANVK18fCIMIAIpA/ASfCIEIAggCVatIAJB6BJqKQMAIAcgCFatfHx8IgUgAikDoBJ8IgcgBiAKVq0gAkGYEmopAwAgBiALVK18fHwiBjcACCADIAQgBVatIAJB+BJqKQMAIAQgDFStfHwiCCACKQOwEnwiBCAGIAdUrSACQagSaikDACAFIAdWrXx8fCIFNwAQIAMgBCAFVq0gAkG4EmopAwAgBCAIVK18fDcAGCAAQRhqIANBIEEIEIwDIANBIBCUBUG50cIALQAAGiABKQN4IQggASkDcCEHIAEpA2ghBiABKQNgIQVBIEEBEIsFIgNFDQAgAkHwEWogBUKJx5mkrvCB6Yd/fiIEQqnAxomuzpOyMEIAEPwDIAJB4BFqIARC3bCFjOi2kai4f0IAEPwDIAJB0BFqIARCjZXHw5bS2sCXf0IAEPwDIAJBwBFqIARCx/rzw+2Co5A8QgAQ/AMgAkGwEWogAikD0BEiCSAGfCIGIAJByBFqKQMAIAIpA8ARIgQgBXwgBFStfHwiBUKJx5mkrvCB6Yd/fiIEQqnAxomuzpOyMEIAEPwDIAJBoBFqIARC3bCFjOi2kai4f0IAEPwDIAJBkBFqIARCjZXHw5bS2sCXf0IAEPwDIAJBgBFqIARCx/rzw+2Co5A8QgAQ/AMgAkHwEGogAikDkBEiCiACKQPgESILIAd8IgcgBSAGVK0gAkHYEWopAwAgBiAJVK18fHwiCXwiBiACQYgRaikDACACKQOAESIEIAV8IARUrXx8IgVCiceZpK7wgemHf34iBEKpwMaJrs6TsjBCABD8AyACQeAQaiAEQt2whYzotpGouH9CABD8AyACQdAQaiAEQo2Vx8OW0trAl39CABD8AyACQcAQaiAEQsf688PtgqOQPEIAEPwDIAJBsBBqIAIpA9AQIgwgAikD8BEiDSAIfCIIIAcgCVatIAJB6BFqKQMAIAcgC1StfHx8IgcgAikDoBF8IgkgBSAGVK0gAkGYEWopAwAgBiAKVK18fHwiCnwiBiACQcgQaikDACACKQPAECIEIAV8IARUrXx8IgVCiceZpK7wgemHf34iBEKpwMaJrs6TsjBCABD8AyACQaAQaiAEQt2whYzotpGouH9CABD8AyACQZAQaiAEQo2Vx8OW0trAl39CABD8AyACQYAQaiAEQsf688PtgqOQPEIAEPwDIAMgAikDkBAiCyAHIAhUrSACQfgRaikDACAIIA1UrXx8Ig0gAikDsBF8IgQgCSAKVq0gAkGoEWopAwAgByAJVq18fHwiByACKQPgEHwiCCAFIAZUrSACQdgQaikDACAGIAxUrXx8fCIJfCIGIAJBiBBqKQMAIAUgAikDgBAiBXwgBVStfHwiCjcAACADIAQgB1atIAJBuBFqKQMAIAQgDVStfHwiDCACKQPwEHwiBCAIIAlWrSACQegQaikDACAHIAhWrXx8fCIFIAIpA6AQfCIHIAYgClatIAJBmBBqKQMAIAYgC1StfHx8IgY3AAggAyAEIAVWrSACQfgQaikDACAEIAxUrXx8IgggAikDsBB8IgQgBiAHVK0gAkGoEGopAwAgBSAHVq18fHwiBTcAECADIAQgBVatIAJBuBBqKQMAIAQgCFStfHw3ABggAEEkaiADQSBBCBCMAyADQSAQlAVBudHCAC0AABogASkDmAEhCCABKQOQASEHIAEpA4gBIQYgASkDgAEhBUEgQQEQiwUiA0UNACACQfAPaiAFQonHmaSu8IHph39+IgRCqcDGia7Ok7IwQgAQ/AMgAkHgD2ogBELdsIWM6LaRqLh/QgAQ/AMgAkHQD2ogBEKNlcfDltLawJd/QgAQ/AMgAkHAD2ogBELH+vPD7YKjkDxCABD8AyACQbAPaiACKQPQDyIJIAZ8IgYgAkHID2opAwAgAikDwA8iBCAFfCAEVK18fCIFQonHmaSu8IHph39+IgRCqcDGia7Ok7IwQgAQ/AMgAkGgD2ogBELdsIWM6LaRqLh/QgAQ/AMgAkGQD2ogBEKNlcfDltLawJd/QgAQ/AMgAkGAD2ogBELH+vPD7YKjkDxCABD8AyACQfAOaiACKQOQDyIKIAIpA+APIgsgB3wiByAFIAZUrSACQdgPaikDACAGIAlUrXx8fCIJfCIGIAJBiA9qKQMAIAIpA4APIgQgBXwgBFStfHwiBUKJx5mkrvCB6Yd/fiIEQqnAxomuzpOyMEIAEPwDIAJB4A5qIARC3bCFjOi2kai4f0IAEPwDIAJB0A5qIARCjZXHw5bS2sCXf0IAEPwDIAJBwA5qIARCx/rzw+2Co5A8QgAQ/AMgAkGwDmogAikD0A4iDCACKQPwDyINIAh8IgggByAJVq0gAkHoD2opAwAgByALVK18fHwiByACKQOgD3wiCSAFIAZUrSACQZgPaikDACAGIApUrXx8fCIKfCIGIAJByA5qKQMAIAIpA8AOIgQgBXwgBFStfHwiBUKJx5mkrvCB6Yd/fiIEQqnAxomuzpOyMEIAEPwDIAJBoA5qIARC3bCFjOi2kai4f0IAEPwDIAJBkA5qIARCjZXHw5bS2sCXf0IAEPwDIAJBgA5qIARCx/rzw+2Co5A8QgAQ/AMgAyACKQOQDiILIAcgCFStIAJB+A9qKQMAIAggDVStfHwiDSACKQOwD3wiBCAJIApWrSACQagPaikDACAHIAlWrXx8fCIHIAIpA+AOfCIIIAUgBlStIAJB2A5qKQMAIAYgDFStfHx8Igl8IgYgAkGIDmopAwAgBSACKQOADiIFfCAFVK18fCIKNwAAIAMgBCAHVq0gAkG4D2opAwAgBCANVK18fCIMIAIpA/AOfCIEIAggCVatIAJB6A5qKQMAIAcgCFatfHx8IgUgAikDoA58IgcgBiAKVq0gAkGYDmopAwAgBiALVK18fHwiBjcACCADIAQgBVatIAJB+A5qKQMAIAQgDFStfHwiCCACKQOwDnwiBCAGIAdUrSACQagOaikDACAFIAdWrXx8fCIFNwAQIAMgBCAFVq0gAkG4DmopAwAgBCAIVK18fDcAGCAAQTBqIANBIEEIEIwDIANBIBCUBUG50cIALQAAGiABKQO4ASEIIAEpA7ABIQcgASkDqAEhBiABKQOgASEFQSBBARCLBSIDRQ0AIAJB8A1qIAVCiceZpK7wgemHf34iBEKpwMaJrs6TsjBCABD8AyACQeANaiAEQt2whYzotpGouH9CABD8AyACQdANaiAEQo2Vx8OW0trAl39CABD8AyACQcANaiAEQsf688PtgqOQPEIAEPwDIAJBsA1qIAIpA9ANIgkgBnwiBiACQcgNaikDACACKQPADSIEIAV8IARUrXx8IgVCiceZpK7wgemHf34iBEKpwMaJrs6TsjBCABD8AyACQaANaiAEQt2whYzotpGouH9CABD8AyACQZANaiAEQo2Vx8OW0trAl39CABD8AyACQYANaiAEQsf688PtgqOQPEIAEPwDIAJB8AxqIAIpA5ANIgogAikD4A0iCyAHfCIHIAUgBlStIAJB2A1qKQMAIAYgCVStfHx8Igl8IgYgAkGIDWopAwAgAikDgA0iBCAFfCAEVK18fCIFQonHmaSu8IHph39+IgRCqcDGia7Ok7IwQgAQ/AMgAkHgDGogBELdsIWM6LaRqLh/QgAQ/AMgAkHQDGogBEKNlcfDltLawJd/QgAQ/AMgAkHADGogBELH+vPD7YKjkDxCABD8AyACQbAMaiACKQPQDCIMIAIpA/ANIg0gCHwiCCAHIAlWrSACQegNaikDACAHIAtUrXx8fCIHIAIpA6ANfCIJIAUgBlStIAJBmA1qKQMAIAYgClStfHx8Igp8IgYgAkHIDGopAwAgAikDwAwiBCAFfCAEVK18fCIFQonHmaSu8IHph39+IgRCqcDGia7Ok7IwQgAQ/AMgAkGgDGogBELdsIWM6LaRqLh/QgAQ/AMgAkGQDGogBEKNlcfDltLawJd/QgAQ/AMgAkGADGogBELH+vPD7YKjkDxCABD8AyADIAIpA5AMIgsgByAIVK0gAkH4DWopAwAgCCANVK18fCINIAIpA7ANfCIEIAkgClatIAJBqA1qKQMAIAcgCVatfHx8IgcgAikD4Ax8IgggBSAGVK0gAkHYDGopAwAgBiAMVK18fHwiCXwiBiACQYgMaikDACAFIAIpA4AMIgV8IAVUrXx8Igo3AAAgAyAEIAdWrSACQbgNaikDACAEIA1UrXx8IgwgAikD8Ax8IgQgCCAJVq0gAkHoDGopAwAgByAIVq18fHwiBSACKQOgDHwiByAGIApWrSACQZgMaikDACAGIAtUrXx8fCIGNwAIIAMgBCAFVq0gAkH4DGopAwAgBCAMVK18fCIIIAIpA7AMfCIEIAYgB1StIAJBqAxqKQMAIAUgB1atfHx8IgU3ABAgAyAEIAVWrSACQbgMaikDACAEIAhUrXx8NwAYIABBPGogA0EgQQgQjAMgA0EgEJQFQbnRwgAtAAAaIAEpA9gBIQggASkD0AEhByABKQPIASEGIAEpA8ABIQVBIEEBEIsFIgNFDQAgAkHwC2ogBUKJx5mkrvCB6Yd/fiIEQqnAxomuzpOyMEIAEPwDIAJB4AtqIARC3bCFjOi2kai4f0IAEPwDIAJB0AtqIARCjZXHw5bS2sCXf0IAEPwDIAJBwAtqIARCx/rzw+2Co5A8QgAQ/AMgAkGwC2ogAikD0AsiCSAGfCIGIAJByAtqKQMAIAIpA8ALIgQgBXwgBFStfHwiBUKJx5mkrvCB6Yd/fiIEQqnAxomuzpOyMEIAEPwDIAJBoAtqIARC3bCFjOi2kai4f0IAEPwDIAJBkAtqIARCjZXHw5bS2sCXf0IAEPwDIAJBgAtqIARCx/rzw+2Co5A8QgAQ/AMgAkHwCmogAikDkAsiCiACKQPgCyILIAd8IgcgBSAGVK0gAkHYC2opAwAgBiAJVK18fHwiCXwiBiACQYgLaikDACACKQOACyIEIAV8IARUrXx8IgVCiceZpK7wgemHf34iBEKpwMaJrs6TsjBCABD8AyACQeAKaiAEQt2whYzotpGouH9CABD8AyACQdAKaiAEQo2Vx8OW0trAl39CABD8AyACQcAKaiAEQsf688PtgqOQPEIAEPwDIAJBsApqIAIpA9AKIgwgAikD8AsiDSAIfCIIIAcgCVatIAJB6AtqKQMAIAcgC1StfHx8IgcgAikDoAt8IgkgBSAGVK0gAkGYC2opAwAgBiAKVK18fHwiCnwiBiACQcgKaikDACACKQPACiIEIAV8IARUrXx8IgVCiceZpK7wgemHf34iBEKpwMaJrs6TsjBCABD8AyACQaAKaiAEQt2whYzotpGouH9CABD8AyACQZAKaiAEQo2Vx8OW0trAl39CABD8AyACQYAKaiAEQsf688PtgqOQPEIAEPwDIAMgAikDkAoiCyAHIAhUrSACQfgLaikDACAIIA1UrXx8Ig0gAikDsAt8IgQgCSAKVq0gAkGoC2opAwAgByAJVq18fHwiByACKQPgCnwiCCAFIAZUrSACQdgKaikDACAGIAxUrXx8fCIJfCIGIAJBiApqKQMAIAUgAikDgAoiBXwgBVStfHwiCjcAACADIAQgB1atIAJBuAtqKQMAIAQgDVStfHwiDCACKQPwCnwiBCAIIAlWrSACQegKaikDACAHIAhWrXx8fCIFIAIpA6AKfCIHIAYgClatIAJBmApqKQMAIAYgC1StfHx8IgY3AAggAyAEIAVWrSACQfgKaikDACAEIAxUrXx8IgggAikDsAp8IgQgBiAHVK0gAkGoCmopAwAgBSAHVq18fHwiBTcAECADIAQgBVatIAJBuApqKQMAIAQgCFStfHw3ABggAEHIAGogA0EgQQgQjAMgA0EgEJQFQbnRwgAtAAAaIAEpA/gBIQggASkD8AEhByABKQPoASEGIAEpA+ABIQVBIEEBEIsFIgNFDQAgAkHwCWogBUKJx5mkrvCB6Yd/fiIEQqnAxomuzpOyMEIAEPwDIAJB4AlqIARC3bCFjOi2kai4f0IAEPwDIAJB0AlqIARCjZXHw5bS2sCXf0IAEPwDIAJBwAlqIARCx/rzw+2Co5A8QgAQ/AMgAkGwCWogAikD0AkiCSAGfCIGIAJByAlqKQMAIAIpA8AJIgQgBXwgBFStfHwiBUKJx5mkrvCB6Yd/fiIEQqnAxomuzpOyMEIAEPwDIAJBoAlqIARC3bCFjOi2kai4f0IAEPwDIAJBkAlqIARCjZXHw5bS2sCXf0IAEPwDIAJBgAlqIARCx/rzw+2Co5A8QgAQ/AMgAkHwCGogAikDkAkiCiACKQPgCSILIAd8IgcgBSAGVK0gAkHYCWopAwAgBiAJVK18fHwiCXwiBiACQYgJaikDACACKQOACSIEIAV8IARUrXx8IgVCiceZpK7wgemHf34iBEKpwMaJrs6TsjBCABD8AyACQeAIaiAEQt2whYzotpGouH9CABD8AyACQdAIaiAEQo2Vx8OW0trAl39CABD8AyACQcAIaiAEQsf688PtgqOQPEIAEPwDIAJBsAhqIAIpA9AIIgwgAikD8AkiDSAIfCIIIAcgCVatIAJB6AlqKQMAIAcgC1StfHx8IgcgAikDoAl8IgkgBSAGVK0gAkGYCWopAwAgBiAKVK18fHwiCnwiBiACQcgIaikDACACKQPACCIEIAV8IARUrXx8IgVCiceZpK7wgemHf34iBEKpwMaJrs6TsjBCABD8AyACQaAIaiAEQt2whYzotpGouH9CABD8AyACQZAIaiAEQo2Vx8OW0trAl39CABD8AyACQYAIaiAEQsf688PtgqOQPEIAEPwDIAMgAikDkAgiCyAHIAhUrSACQfgJaikDACAIIA1UrXx8Ig0gAikDsAl8IgQgCSAKVq0gAkGoCWopAwAgByAJVq18fHwiByACKQPgCHwiCCAFIAZUrSACQdgIaikDACAGIAxUrXx8fCIJfCIGIAJBiAhqKQMAIAUgAikDgAgiBXwgBVStfHwiCjcAACADIAQgB1atIAJBuAlqKQMAIAQgDVStfHwiDCACKQPwCHwiBCAIIAlWrSACQegIaikDACAHIAhWrXx8fCIFIAIpA6AIfCIHIAYgClatIAJBmAhqKQMAIAYgC1StfHx8IgY3AAggAyAEIAVWrSACQfgIaikDACAEIAxUrXx8IgggAikDsAh8IgQgBiAHVK0gAkGoCGopAwAgBSAHVq18fHwiBTcAECADIAQgBVatIAJBuAhqKQMAIAQgCFStfHw3ABggAEHUAGogA0EgQQgQjAMgA0EgEJQFQbnRwgAtAAAaIAEpA5gCIQggASkDkAIhByABKQOIAiEGIAEpA4ACIQVBIEEBEIsFIgNFDQAgAkHwB2ogBUKJx5mkrvCB6Yd/fiIEQqnAxomuzpOyMEIAEPwDIAJB4AdqIARC3bCFjOi2kai4f0IAEPwDIAJB0AdqIARCjZXHw5bS2sCXf0IAEPwDIAJBwAdqIARCx/rzw+2Co5A8QgAQ/AMgAkGwB2ogAikD0AciCSAGfCIGIAJByAdqKQMAIAIpA8AHIgQgBXwgBFStfHwiBUKJx5mkrvCB6Yd/fiIEQqnAxomuzpOyMEIAEPwDIAJBoAdqIARC3bCFjOi2kai4f0IAEPwDIAJBkAdqIARCjZXHw5bS2sCXf0IAEPwDIAJBgAdqIARCx/rzw+2Co5A8QgAQ/AMgAkHwBmogAikDkAciCiACKQPgByILIAd8IgcgBSAGVK0gAkHYB2opAwAgBiAJVK18fHwiCXwiBiACQYgHaikDACACKQOAByIEIAV8IARUrXx8IgVCiceZpK7wgemHf34iBEKpwMaJrs6TsjBCABD8AyACQeAGaiAEQt2whYzotpGouH9CABD8AyACQdAGaiAEQo2Vx8OW0trAl39CABD8AyACQcAGaiAEQsf688PtgqOQPEIAEPwDIAJBsAZqIAIpA9AGIgwgAikD8AciDSAIfCIIIAcgCVatIAJB6AdqKQMAIAcgC1StfHx8IgcgAikDoAd8IgkgBSAGVK0gAkGYB2opAwAgBiAKVK18fHwiCnwiBiACQcgGaikDACACKQPABiIEIAV8IARUrXx8IgVCiceZpK7wgemHf34iBEKpwMaJrs6TsjBCABD8AyACQaAGaiAEQt2whYzotpGouH9CABD8AyACQZAGaiAEQo2Vx8OW0trAl39CABD8AyACQYAGaiAEQsf688PtgqOQPEIAEPwDIAMgAikDkAYiCyAHIAhUrSACQfgHaikDACAIIA1UrXx8Ig0gAikDsAd8IgQgCSAKVq0gAkGoB2opAwAgByAJVq18fHwiByACKQPgBnwiCCAFIAZUrSACQdgGaikDACAGIAxUrXx8fCIJfCIGIAJBiAZqKQMAIAUgAikDgAYiBXwgBVStfHwiCjcAACADIAQgB1atIAJBuAdqKQMAIAQgDVStfHwiDCACKQPwBnwiBCAIIAlWrSACQegGaikDACAHIAhWrXx8fCIFIAIpA6AGfCIHIAYgClatIAJBmAZqKQMAIAYgC1StfHx8IgY3AAggAyAEIAVWrSACQfgGaikDACAEIAxUrXx8IgggAikDsAZ8IgQgBiAHVK0gAkGoBmopAwAgBSAHVq18fHwiBTcAECADIAQgBVatIAJBuAZqKQMAIAQgCFStfHw3ABggAEHgAGogA0EgQQgQjAMgA0EgEJQFQbnRwgAtAAAaIAEpA7gCIQggASkDsAIhByABKQOoAiEGIAEpA6ACIQVBIEEBEIsFIgNFDQAgAkHwBWogBUKJx5mkrvCB6Yd/fiIEQqnAxomuzpOyMEIAEPwDIAJB4AVqIARC3bCFjOi2kai4f0IAEPwDIAJB0AVqIARCjZXHw5bS2sCXf0IAEPwDIAJBwAVqIARCx/rzw+2Co5A8QgAQ/AMgAkGwBWogAikD0AUiCSAGfCIGIAJByAVqKQMAIAIpA8AFIgQgBXwgBFStfHwiBUKJx5mkrvCB6Yd/fiIEQqnAxomuzpOyMEIAEPwDIAJBoAVqIARC3bCFjOi2kai4f0IAEPwDIAJBkAVqIARCjZXHw5bS2sCXf0IAEPwDIAJBgAVqIARCx/rzw+2Co5A8QgAQ/AMgAkHwBGogAikDkAUiCiACKQPgBSILIAd8IgcgBSAGVK0gAkHYBWopAwAgBiAJVK18fHwiCXwiBiACQYgFaikDACACKQOABSIEIAV8IARUrXx8IgVCiceZpK7wgemHf34iBEKpwMaJrs6TsjBCABD8AyACQeAEaiAEQt2whYzotpGouH9CABD8AyACQdAEaiAEQo2Vx8OW0trAl39CABD8AyACQcAEaiAEQsf688PtgqOQPEIAEPwDIAJBsARqIAIpA9AEIgwgAikD8AUiDSAIfCIIIAcgCVatIAJB6AVqKQMAIAcgC1StfHx8IgcgAikDoAV8IgkgBSAGVK0gAkGYBWopAwAgBiAKVK18fHwiCnwiBiACQcgEaikDACACKQPABCIEIAV8IARUrXx8IgVCiceZpK7wgemHf34iBEKpwMaJrs6TsjBCABD8AyACQaAEaiAEQt2whYzotpGouH9CABD8AyACQZAEaiAEQo2Vx8OW0trAl39CABD8AyACQYAEaiAEQsf688PtgqOQPEIAEPwDIAMgAikDkAQiCyAHIAhUrSACQfgFaikDACAIIA1UrXx8Ig0gAikDsAV8IgQgCSAKVq0gAkGoBWopAwAgByAJVq18fHwiByACKQPgBHwiCCAFIAZUrSACQdgEaikDACAGIAxUrXx8fCIJfCIGIAJBiARqKQMAIAUgAikDgAQiBXwgBVStfHwiCjcAACADIAQgB1atIAJBuAVqKQMAIAQgDVStfHwiDCACKQPwBHwiBCAIIAlWrSACQegEaikDACAHIAhWrXx8fCIFIAIpA6AEfCIHIAYgClatIAJBmARqKQMAIAYgC1StfHx8IgY3AAggAyAEIAVWrSACQfgEaikDACAEIAxUrXx8IgggAikDsAR8IgQgBiAHVK0gAkGoBGopAwAgBSAHVq18fHwiBTcAECADIAQgBVatIAJBuARqKQMAIAQgCFStfHw3ABggAEHsAGogA0EgQQgQjAMgA0EgEJQFQbnRwgAtAAAaIAEpA9gCIQggASkD0AIhByABKQPIAiEGIAEpA8ACIQVBIEEBEIsFIgNFDQAgAkHwA2ogBUKJx5mkrvCB6Yd/fiIEQqnAxomuzpOyMEIAEPwDIAJB4ANqIARC3bCFjOi2kai4f0IAEPwDIAJB0ANqIARCjZXHw5bS2sCXf0IAEPwDIAJBwANqIARCx/rzw+2Co5A8QgAQ/AMgAkGwA2ogAikD0AMiCSAGfCIGIAJByANqKQMAIAIpA8ADIgQgBXwgBFStfHwiBUKJx5mkrvCB6Yd/fiIEQqnAxomuzpOyMEIAEPwDIAJBoANqIARC3bCFjOi2kai4f0IAEPwDIAJBkANqIARCjZXHw5bS2sCXf0IAEPwDIAJBgANqIARCx/rzw+2Co5A8QgAQ/AMgAkHwAmogAikDkAMiCiACKQPgAyILIAd8IgcgBSAGVK0gAkHYA2opAwAgBiAJVK18fHwiCXwiBiACQYgDaikDACACKQOAAyIEIAV8IARUrXx8IgVCiceZpK7wgemHf34iBEKpwMaJrs6TsjBCABD8AyACQeACaiAEQt2whYzotpGouH9CABD8AyACQdACaiAEQo2Vx8OW0trAl39CABD8AyACQcACaiAEQsf688PtgqOQPEIAEPwDIAJBsAJqIAIpA9ACIgwgAikD8AMiDSAIfCIIIAcgCVatIAJB6ANqKQMAIAcgC1StfHx8IgcgAikDoAN8IgkgBSAGVK0gAkGYA2opAwAgBiAKVK18fHwiCnwiBiACQcgCaikDACACKQPAAiIEIAV8IARUrXx8IgVCiceZpK7wgemHf34iBEKpwMaJrs6TsjBCABD8AyACQaACaiAEQt2whYzotpGouH9CABD8AyACQZACaiAEQo2Vx8OW0trAl39CABD8AyACQYACaiAEQsf688PtgqOQPEIAEPwDIAMgAikDkAIiCyAHIAhUrSACQfgDaikDACAIIA1UrXx8Ig0gAikDsAN8IgQgCSAKVq0gAkGoA2opAwAgByAJVq18fHwiByACKQPgAnwiCCAFIAZUrSACQdgCaikDACAGIAxUrXx8fCIJfCIGIAJBiAJqKQMAIAUgAikDgAIiBXwgBVStfHwiCjcAACADIAQgB1atIAJBuANqKQMAIAQgDVStfHwiDCACKQPwAnwiBCAIIAlWrSACQegCaikDACAHIAhWrXx8fCIFIAIpA6ACfCIHIAYgClatIAJBmAJqKQMAIAYgC1StfHx8IgY3AAggAyAEIAVWrSACQfgCaikDACAEIAxUrXx8IgggAikDsAJ8IgQgBiAHVK0gAkGoAmopAwAgBSAHVq18fHwiBTcAECADIAQgBVatIAJBuAJqKQMAIAQgCFStfHw3ABggAEH4AGogA0EgQQgQjAMgA0EgEJQFQbnRwgAtAAAaIAEpA/gCIQggASkD8AIhByABKQPoAiEGIAEpA+ACIQVBIEEBEIsFIgFFDQAgAkHwAWogBUKJx5mkrvCB6Yd/fiIEQqnAxomuzpOyMEIAEPwDIAJB4AFqIARC3bCFjOi2kai4f0IAEPwDIAJB0AFqIARCjZXHw5bS2sCXf0IAEPwDIAJBwAFqIARCx/rzw+2Co5A8QgAQ/AMgAkGwAWogAikD0AEiCSAGfCIGIAJByAFqKQMAIAIpA8ABIgQgBXwgBFStfHwiBUKJx5mkrvCB6Yd/fiIEQqnAxomuzpOyMEIAEPwDIAJBoAFqIARC3bCFjOi2kai4f0IAEPwDIAJBkAFqIARCjZXHw5bS2sCXf0IAEPwDIAJBgAFqIARCx/rzw+2Co5A8QgAQ/AMgAkHwAGogAikDkAEiCiACKQPgASILIAd8IgcgBSAGVK0gAkHYAWopAwAgBiAJVK18fHwiCXwiBiACQYgBaikDACACKQOAASIEIAV8IARUrXx8IgVCiceZpK7wgemHf34iBEKpwMaJrs6TsjBCABD8AyACQeAAaiAEQt2whYzotpGouH9CABD8AyACQdAAaiAEQo2Vx8OW0trAl39CABD8AyACQUBrIARCx/rzw+2Co5A8QgAQ/AMgAkEwaiACKQNQIgwgAikD8AEiDSAIfCIIIAcgCVatIAJB6AFqKQMAIAcgC1StfHx8IgcgAikDoAF8IgkgBSAGVK0gAkGYAWopAwAgBiAKVK18fHwiCnwiBiACQcgAaikDACACKQNAIgQgBXwgBFStfHwiBUKJx5mkrvCB6Yd/fiIEQqnAxomuzpOyMEIAEPwDIAJBIGogBELdsIWM6LaRqLh/QgAQ/AMgAkEQaiAEQo2Vx8OW0trAl39CABD8AyACIARCx/rzw+2Co5A8QgAQ/AMgASACKQMQIgsgByAIVK0gAkH4AWopAwAgCCANVK18fCINIAIpA7ABfCIEIAkgClatIAJBqAFqKQMAIAcgCVatfHx8IgcgAikDYHwiCCAFIAZUrSACQdgAaikDACAGIAxUrXx8fCIJfCIGIAJBCGopAwAgBSACKQMAIgV8IAVUrXx8Igo3AAAgASAEIAdWrSACQbgBaikDACAEIA1UrXx8IgwgAikDcHwiBCAIIAlWrSACQegAaikDACAHIAhWrXx8fCIFIAIpAyB8IgcgBiAKVq0gAkEYaikDACAGIAtUrXx8fCIGNwAIIAEgBCAFVq0gAkH4AGopAwAgBCAMVK18fCIIIAIpAzB8IgQgBiAHVK0gAkEoaikDACAFIAdWrXx8fCIFNwAQIAEgBCAFVq0gAkE4aikDACAEIAhUrXx8NwAYIABBhAFqIAFBIEEIEIwDIAFBIBCUBSACQYAYaiQADwsLQQFBIBCDBQALtH8CD38sfiMAQcAFayICJAAgAkEIaiABQYgBaiIDKQMANwMAIAJBEGogAUGQAWoiBCkDADcDACACQRhqIAFBmAFqIgUpAwA3AwAgAkEgaiABQaABaiIGKQMANwMAIAJBKGogAUGoAWoiBykDADcDACACQTBqIAFBsAFqIgkpAwA3AwAgAkE4aiABQbgBaiIIKQMANwMAIAIgASkDgAE3AwAgASkDQCERIAEpA0ghEyABKQNQIRUgASkDWCEUIAEpA2AhEiABKQNoIRcgASkDcCEWIAIgASkDeDcDeCACIBY3A3AgAiAXNwNoIAIgEjcDYCACIBQ3A1ggAiAVNwNQIAIgEzcDSCACIBE3A0AgAkG4AWogCCkDADcDACACQbABaiAJKQMANwMAIAJBqAFqIAcpAwA3AwAgAkGgAWogBikDADcDACACQZgBaiAFKQMANwMAIAJBkAFqIAQpAwA3AwAgAkGIAWogAykDADcDACACIAEpA4ABNwOAASACQcABaiABEIMBIAJB+AJqIgUgAUE4aikDADcDACACQfACaiIGIAFBMGopAwA3AwAgAkHoAmoiByABQShqKQMANwMAIAJB4AJqIgMgAUEgaikDADcDACACQdgCaiIJIAFBGGoiBCkDADcDACACQdACaiIIIAFBEGoiCikDADcDACACQcgCaiILIAFBCGoiDCkDADcDACACIAEpAwA3A8ACIAJBmANqIAQpAwA3AwAgAkGQA2ogCikDADcDACACQYgDaiAMKQMANwMAIAIgASkDADcDgAMgAkGoA2ogBykDADcDACACQbADaiAGKQMANwMAIAJBuANqIAUpAwA3AwAgAiADKQMANwOgAyADQZCJwQBBIBCuBQRAIAJCx/rzw+2Co5A8IAIpA+ACIhF9NwPgAiACQn9CACARQsf688PtgqOQPFYbIhEgAikD6AIiE30iFULz6ri86a2lv+gAfSIUNwPoAiACQn9CACAUIBVUrSARIBEgE1StfXxCf1EbIhEgAikD8AIiE30iFUKjz/rzl8nu18cAfSIUNwPwAiACQn9CACAUIBVUrSARIBEgE1StfXxCf1EbIAIpA/gCfUKpwMaJrs6TsjB8NwP4AgsgAkGYBGogBCkDADcDACACQZAEaiAKKQMANwMAIAJBiARqIAwpAwA3AwAgAkGoBGogA0EIaikDADcDACACQbAEaiADQRBqKQMANwMAIAJBuARqIANBGGopAwA3AwAgAiABKQMANwOABCACIAMpAwA3A6AEIAJB+ARqIAJB4ABqIgRBGGoiCikDADcDACACQfAEaiAEQRBqIgwpAwA3AwAgAkHoBGogBEEIaiINKQMANwMAIAIgBCkDADcD4AQgAkHIBGogAkHIAGoiDikDADcDACACQdAEaiACQdAAaiIPKQMANwMAIAJB2ARqIAJB2ABqIhApAwA3AwAgAiACKQNANwPABCACQcADaiACQYAEaiACQcAEahB6IAJBqAVqIA4pAwA3AwAgAkGwBWogDykDADcDACACQbgFaiAQKQMANwMAIAJBmAVqIAopAwA3AwAgAkGQBWogDCkDADcDACACQYgFaiANKQMANwMAIAIgAikDQDcDoAUgAiAEKQMANwOABSACQeADaiIKIAJBgANqIAJBgAVqEHogBSACQfgDaikDADcDACAGIAJB8ANqKQMANwMAIAcgAkHoA2opAwA3AwAgAyAKKQMANwMAIAkgAkHYA2opAwA3AwAgCCACQdADaikDADcDACALIAJByANqKQMANwMAIAIgAikDwAM3A8ACIAgpAwAiEkIBhiALKQMAIhNCP4iEIREgE0IBhiACKQPAAiITQj+IhCEtIBNCAYYhKSAFKQMAIRcgBikDACETIAcpAwAhFSADKQMAIRQCQCAJKQMAQgGGIBJCP4iEIidCqcDGia7Ok7IwVARAIBEhIgwBCwJAICdCqcDGia7Ok7IwUg0AIBFC3bCFjOi2kai4f1QEQCARISJCqcDGia7Ok7IwIScMAgsgEULdsIWM6LaRqLh/Ug0AQt2whYzotpGouH8hIiAtQo2Vx8OW0trAl39UBEBCqcDGia7Ok7IwIScMAgsgLUKNlcfDltLawJd/UiApQsb688PtgqOQPFZyDQBCjZXHw5bS2sCXfyEtQqnAxomuzpOyMCEnDAELICcgEULy6ri86a2lv+gAQvPquLzpraW/6AAgKULH+vPD7YKjkDxUGyISIC18Ii0gElqtIhJ9IhZCo8/685fJ7tfHAHwiIiAWVK0gESASVK1RrX1CqcDGia7Ok7IwfSEnIClCx/rzw+2Co5A8fSEpCyATQgGGIBVCP4iEIREgFUIBhiAUQj+IhCEuIBRCAYYhKgJAIBdCAYYgE0I/iIQiKEKpwMaJrs6TsjBUBEAgESErDAELAkAgKEKpwMaJrs6TsjBSDQAgEULdsIWM6LaRqLh/VARAIBEhK0KpwMaJrs6TsjAhKAwCCyARQt2whYzotpGouH9SDQBC3bCFjOi2kai4fyErIC5CjZXHw5bS2sCXf1QEQEKpwMaJrs6TsjAhKAwCCyAuQo2Vx8OW0trAl39SICpCxvrzw+2Co5A8VnINAEKNlcfDltLawJd/IS5CqcDGia7Ok7IwISgMAQsgKCARQvLquLzpraW/6ABC8+q4vOmtpb/oACAqQsf688PtgqOQPFQbIhMgLnwiLiATWq0iE30iFUKjz/rzl8nu18cAfCIrIBVUrSARIBNUrVGtfUKpwMaJrs6TsjB9ISggKkLH+vPD7YKjkDx9ISoLIAJBuAVqIgUgAUE4aikDADcDACACQbAFaiIGIAFBMGopAwA3AwAgAkGoBWoiByABQShqKQMANwMAIAJBoAVqIgMgAUEgaikDADcDACACQZgFaiIJIAFBGGopAwA3AwAgAkGQBWoiCCABQRBqKQMANwMAIAJBiAVqIgogAUEIaikDADcDACACIAEpAwA3A4AFIAJBgAVqIAJBQGsQrgMgAyAEEK4DIAUpAwAhFSAGKQMAIRQgBykDACESIAMpAwAhFwJAIAIpA5gBIAkpAwB8IAIpA5ABIhEgCCkDAHwiEyARVK0gEyACKQOIASIWIAopAwB8IhEgFlStIBEgESACKQOAASIWIAIpA4AFfCIYIBZUrXwiEVatfHwiISATVK18fCIgQqnAxomuzpOyMFQEQCARISMMAQsCQCAgQqnAxomuzpOyMFINACAhQt2whYzotpGouH9UBEBCqcDGia7Ok7IwISAgESEjDAILICFC3bCFjOi2kai4f1INAEKNlcfDltLawJd/ISMgEUKNlcfDltLawJd/VARAQqnAxomuzpOyMCEgQt2whYzotpGouH8hISARISMMAgsgEUKNlcfDltLawJd/UiAYQsb688PtgqOQPFZyDQBCqcDGia7Ok7IwISBC3bCFjOi2kai4fyEhDAELICBCos/685fJ7tfHAEKjz/rzl8nu18cAIBFC8uq4vOmtpb/oAELz6ri86a2lv+gAIBhCx/rzw+2Co5A8VBt8IiMgEVobIhEgIXwiISARWq19QqnAxomuzpOyMH0hICAYQsf688PtgqOQPH0hGAsCQCACKQO4ASAVfCACKQOwASIRIBR8IhMgEVStIBMgAikDqAEiFSASfCIRIBVUrSARIBEgAikDoAEiFSAXfCIaIBVUrXwiEVatfHwiHSATVK18fCIeQqnAxomuzpOyMFQEQCARIRwMAQsCQCAeQqnAxomuzpOyMFINACAdQt2w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xwBCo8/685fJ7tfHACARQvLquLzpraW/6ABC8+q4vOmtpb/oACAlQsf688PtgqOQPFQbfCIXIBFaGyIRIBR8IhQgEVqtfUKpwMaJrs6TsjB9IRkgJULH+vPD7YKjkDx9ISULAkAgGCAofCASICt8IhEgElStIBEgEyATIC58IhNWrSATIBMgGiAqfCIbIBpUrXwiE1atfHwiFSARVK18fCIWQqnAxomuzpOyMFQEQCATIREMAQsCQCAWQqnAxomuzpOyMFINACAVQt2whYzotpGouH9UBEBCqcDGia7Ok7IwIRYgEyERDAILIBVC3bCFjOi2kai4f1INAEKNlcfDltLawJd/IREgE0KNlcfDltLawJd/VARAQqnAxomuzpOyMCEWQt2whYzotpGouH8hFSATIREMAgsgE0KNlcfDltLawJd/UiAbQsb688PtgqOQPFZyDQBCqcDGia7Ok7IwIRZC3bCFjOi2kai4fyEVDAELIBZCos/685fJ7tfHAEKjz/rzl8nu18cAIBNC8uq4vOmtpb/oAELz6ri86a2lv+gAIBtCx/rzw+2Co5A8VBt8IhEgE1obIhMgFXwiFSATWq19QqnAxomuzpOyMH0hFiAbQsf688PtgqOQPH0hGwsCQCACKQOYAiAnfCACKQOQAiITICJ8IiIgE1StICIgAikDiAIiEyAtfCISIBNUrSASIBIgKSACKQOAAiIpfCITIClUrXwiElatfHwiGCAiVK18fCInQqnAxomuzpOyMFQEQCASISkMAQsCQCAnQqnAxomuzpOyMFINACAYQt2whYzotpGouH9UBEBCqcDGia7Ok7IwIScgEiEpDAILIBhC3bCFjOi2kai4f1INAEKNlcfDltLawJd/ISkgEkKNlcfDltLawJd/VARAQqnAxomuzpOyMCEnQt2whYzotpGouH8hGCASISkMAgsgEkKNlcfDltLawJd/UiATQsb688PtgqOQPFZyDQBCqcDGia7Ok7IwISdC3bCFjOi2kai4fyEYDAELICdCos/685fJ7tfHAEKjz/rzl8nu18cAIBJC8uq4vOmtpb/oAELz6ri86a2lv+gAIBNCx/rzw+2Co5A8VBt8IikgElobIhIgGHwiGCASWq19QqnAxomuzpOyMH0hJyATQsf688PtgqOQPH0hEwsCQCACKQO4AiAofCACKQOwAiIS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AAMACyAFQQA2AqgJIAVBATYCnAkgBUHIq8EANgKYCSAFQgQ3AqAJIAVBmAlqQYCuwQAQzQQAC0G50cIALQAAGkHgAEEIEIsFIgINAgwKC0G50cIALQAAGkGgAkEIEIsFIgINAgwKC0G50cIALQAAGkHABEEIEIsFIgINAgwKCyACIAEpAwA3AwAgAiABKQMwNwMwIAJBKGogAUEoaikDADcDACACQSBqIAFBIGopAwA3AwAgAkEYaiABQRhqKQMANwMAIAJBEGogAUEQaikDADcDACACQQhqIgQgAUEIaikDADcDACACQThqIAFBOGopAwA3AwAgAkFAayABQUBrKQMANwMAIAJByABqIAFByABqKQMANwMAIAJB0ABqIAFB0ABqKQMANwMAIAJB2ABqIAFB2ABqKQMANwMAIAIpAwAhZSAFQSBqIARB2AAQrQUaIAJB4AAQlAVBudHCAC0AABogBSBlNwMYQeAAQQgQiwUiAUUNByABIAMpAwA3AwAgASADKQMwNwMwIAFBKGogA0EoaikDADcDACABQSBqIANBIGopAwA3AwAgAUEYaiADQRhqKQMANwMAIAFBEGogA0EQaikDADcDACABQQhqIgIgA0EIaikDADcDACABQThqIANBOGopAwA3AwAgAUFAayADQUBrKQMANwMAIAFByABqIANByABqKQMANwMAIAFB0ABqIANB0ABqKQMANwMAIAFB2ABqIANB2ABqKQMANwMAIAEpAwAhZSAFQYABaiACQdgAEK0FGiABQeAAEJQFIAUgZTcDeCAFQdgBaiIBIAVBGGogBUH4AGoQkQQgBUGYCWogARC6BCAFKAKcCSEBIAUoApgJIQIgBSgCoAkiA0ECRw0EIAEoAgQhAyABKAIAIQQgBUHYDWogAUEIakHYABCtBRogAgRAIAEgAkEwbBCUBQtBudHCAC0AABpB4ABBCBCLBSIBRQ0HIAEgAzYCBCABIAQ2AgAgASAFKQPYDTcDCCABIAUpA4AONwMwIAFBEGogBUHgDWopAwA3AwAgAUEYaiAFQegNaikDADcDACABQSBqIAVB8A1qKQMANwMAIAFBKGogBUH4DWopAwA3AwAgAUE4aiAFQYgOaikDADcDACABQUBrIAVBkA5qKQMANwMAIAFByABqIAVBmA5qKQMANwMAIAFB0ABqIAVBoA5qKQMANwMAIAFB2ABqIAVBqA5qKQMANwMAIABBAjYCCCAAIAE2AgQgAEECNgIADAYLIAIgASkDADcDACACIAEpAzA3AzAgAkEoaiABQShqKQMANwMAIAJBIGogAUEgaikDADcDACACQRhqIAFBGGopAwA3AwAgAkEQaiABQRBqKQMANwMAIAJBCGoiBiABQQhqKQMANwMAIAJBOGogAUE4aikDADcDACACQUBrIAFBQGspAwA3AwAgAkHIAGogAUHIAGopAwA3AwAgAkHQAGogAUHQAGopAwA3AwAgAkHYAGogAUHYAGopAwA3AwAgAkGIAWogAUGIAWopAwA3AwAgAkGAAWogAUGAAWopAwA3AwAgAkH4AGogAUH4AGopAwA3AwAgAkHwAGogAUHwAGopAwA3AwAgAkHoAGogAUHoAGopAwA3AwAgAiABKQNgNwNgIAIgASkDkAE3A5ABIAJBmAFqIAFBmAFqKQMANwMAIAJBoAFqIAFBoAFqKQMANwMAIAJBqAFqIAFBqAFqKQMANwMAIAJBsAFqIAFBsAFqKQMANwMAIAJBuAFqIAFBuAFqKQMANwMAIAJB6AFqIAFB6AFqKQMANwMAIAJB4AFqIAFB4AFqKQMANwMAIAJB2AFqIAFB2AFqKQMANwMAIAJB0AFqIAFB0AFqKQMANwMAIAJByAFqIAFByAFqKQMANwMAIAIgASkDwAE3A8ABIAJBmAJqIAFBmAJqKQMANwMAIAJBkAJqIAFBkAJqKQMANwMAIAJBiAJqIAFBiAJqKQMANwMAIAJBgAJqIAFBgAJqKQMANwMAIAJB+AFqIAFB+AFqKQMANwMAIAIgASkD8AE3A/ABIAIpAwAhZSAFQZgJaiIEIAZBmAIQrQUaIAJBoAIQlAUgBUHoDmogBUHICWoiIikDADcDACAFQfAOaiAFQdAJaiIJKQMANwMAIAVB+A5qIAVB2AlqIgopAwA3AwAgBUGAD2ogBUHgCWoiCykDADcDACAFQYgPaiAFQegJaiIMKQMANwMAIAVBuCBqIiMgBUH4CWoiJCkDADcDACAFQcAgaiIlIAVBgApqIg0pAwA3AwAgBUHIIGoiJiAFQYgKaiIOKQMANwMAIAVB0CBqIicgBUGQCmoiDykDADcDACAFQdggaiIoIAVBmApqIhApAwA3AwAgBSAFKQPACTcD4A4gBSAFKQPwCTcDsCAgBUGIIWoiKSAFQcgKaiIRKQMANwMAIAVBgCFqIiogBUHACmoiEikDADcDACAFQfggaiIrIAVBuApqIhMpAwA3AwAgBUHwIGoiLCAFQbAKaiIUKQMANwMAIAVB6CBqIi0gBUGoCmoiLikDADcDACAFQZghaiIvIAVB2ApqIjApAwA3AwAgBUGgIWoiMSAFQeAKaiIVKQMANwMAIAVBqCFqIjIgBUHoCmoiFikDADcDACAFQbAhaiIzIAVB8ApqIhcpAwA3AwAgBUG4IWoiNCAFQfgKaiIYKQMANwMAIAUgBSkDoAo3A+AgIAUgBSkD0Ao3A5AhIAVB6CFqIjUgBUGoC2oiGSkDADcDACAFQeAhaiI2IAVBoAtqIhopAwA3AwAgBUHYIWoiNyAFQZgLaiIbKQMANwMAIAVB0CFqIjggBUGQC2oiHCkDADcDACAFQcghaiI5IAVBiAtqIgcpAwA3AwAgBUHYDmogBUG4CWoiHSkDADcDACAFQdAOaiAFQbAJaiIeKQMANwMAIAVByA5qIAVBqAlqIh8pAwA3AwAgBUHADmogBUGgCWoiAikDADcDACAFIAUpA4ALNwPAISAFIAUpA5gJNwO4DiAFIGU3A7AOIAVBkA9qIAVBsCBqIghB4AAQrQUaIAVB8A9qIAVBkCFqIgZB4AAQrQUaQbnRwgAtAAAaQaACQQgQiwUiAUUNByABIAMpAwA3AwAgASADKQMwNwMwIAFBKGogA0EoaikDADcDACABQSBqIANBIGopAwA3AwAgAUEYaiADQRhqKQMANwMAIAFBEGogA0EQaikDADcDACABQQhqIiAgA0EIaikDADcDACABQThqIANBOGopAwA3AwAgAUFAayADQUBrKQMANwMAIAFByABqIANByABqKQMANwMAIAFB0ABqIANB0ABqKQMANwMAIAFB2ABqIANB2ABqKQMANwMAIAFBiAFqIANBiAFqKQMANwMAIAFBgAFqIANBgAFqKQMANwMAIAFB+ABqIANB+ABqKQMANwMAIAFB8ABqIANB8ABqKQMANwMAIAFB6ABqIANB6ABqKQMANwMAIAEgAykDYDcDYCABIAMpA5ABNwOQASABQZgBaiADQZgBaikDADcDACABQaABaiADQaABaikDADcDACABQagBaiADQagBaikDADcDACABQbABaiADQbABaikDADcDACABQbgBaiADQbgBaikDADcDACABQegBaiADQegBaikDADcDACABQeABaiADQeABaikDADcDACABQdgBaiADQdgBaikDADcDACABQdABaiADQdABaikDADcDACABQcgBaiADQcgBaikDADcDACABIAMpA8ABNwPAASABQZgCaiADQZgCaikDADcDACABQZACaiADQZACaikDADcDACABQYgCaiADQYgCaikDADcDACABQYACaiADQYACaikDADcDACABQfgBaiADQfgBaikDADcDACABIAMpA/ABNwPwASABKQMAIWUgBCAgQZgCEK0FGiABQaACEJQFIAVBiBFqICIpAwA3AwAgBUGQEWogCSkDADcDACAFQZgRaiAKKQMANwMAIAVBoBFqIAspAwA3AwAgBUGoEWogDCkDADcDACAjICQpAwA3AwAgJSANKQMANwMAICYgDikDADcDACAnIA8pAwA3AwAgKCAQKQMANwMAIAUgBSkDwAk3A4ARIAUgBSkD8Ak3A7AgICkgESkDADcDACAqIBIpAwA3AwAgKyATKQMANwMAICwgFCkDADcDACAtIC4pAwA3AwAgLyAwKQMANwMAIDEgFSkDADcDACAyIBYpAwA3AwAgMyAXKQMANwMAIDQgGCkDADcDACAFIAUpA6AKNwPgICAFIAUpA9AKNwOQISA1IBkpAwA3AwAgNiAaKQMANwMAIDcgGykDADcDACA4IBwpAwA3AwAgOSAHKQMANwMAIAVB+BBqIB0pAwA3AwAgBUHwEGogHikDADcDACAFQegQaiAfKQMANwMAIAVB4BBqIAIpAwA3AwAgBSAFKQOACzcDwCEgBSAFKQOYCTcD2BAgBSBlNwPQECAFQbARaiAIQeAAEK0FGiAFQZASaiAGQeAAEK0FGiAEIAVB0BBqELMCIAUpA5gJUEUNBCAGIAJBoAIQrQUaIAVBuAJqIgEgBUGwDmogBhD4AiAEIAEQ0gFBudHCAC0AABpBoAJBCBCLBSIBRQ0HIAEgBSkDmAk3AwAgASAFKQPICTcDMCABQShqIAVBwAlqKQMANwMAIAFBIGogHSkDADcDACABQRhqIB4pAwA3AwAgAUEQaiAfKQMANwMAIAFBCGogAikDADcDACABQThqIAkpAwA3AwAgAUFAayAKKQMANwMAIAFByABqIAspAwA3AwAgAUHQAGogDCkDADcDACABQdgAaiAFQfAJaikDADcDACABQYgBaiAFQaAKaikDADcDACABQYABaiAQKQMANwMAIAFB+ABqIA8pAwA3AwAgAUHwAGogDikDADcDACABQegAaiANKQMANwMAIAEgBSkD+Ak3A2AgAUG4AWogBUHQCmopAwA3AwAgAUGwAWogESkDADcDACABQagBaiASKQMANwMAIAFBoAFqIBMpAwA3AwAgAUGYAWogFCkDADcDACABIAUpA6gKNwOQASABQegBaiAFQYALaikDADcDACABQeABaiAYKQMANwMAIAFB2AFqIBcpAwA3AwAgAUHQAWogFikDADcDACABQcgBaiAVKQMANwMAIAEgBSkD2Ao3A8ABIAFBmAJqIAVBsAtqKQMANwMAIAFBkAJqIBkpAwA3AwAgAUGIAmogGikDADcDACABQYACaiAbKQMANwMAIAFB+AFqIBwpAwA3AwAgASAFKQOICzcD8AEgAEEGNgIIIAAgATYCBCAAQQY2AgAMBQsgAiABKQMANwMAIAIgASkDMDcDMCACQShqIAFBKGopAwA3AwAgAkEgaiABQSBqKQMANwMAIAJBGGogAUEYaikDADcDACACQRBqIAFBEGopAwA3AwAgAkEIaiIGIAFBCGopAwA3AwAgAkE4aiABQThqKQMANwMAIAJBQGsgAUFAaykDADcDACACQcgAaiABQcgAaikDADcDACACQdAAaiABQdAAaikDADcDACACQdgAaiABQdgAaikDADcDACACQYgBaiABQYgBaikDADcDACACQYABaiABQYABaikDADcDACACQfgAaiABQfgAaikDADcDACACQfAAaiABQfAAaikDADcDACACQegAaiABQegAaikDADcDACACIAEpA2A3A2AgAiABKQOQATcDkAEgAkGYAWogAUGYAWopAwA3AwAgAkGgAWogAUGgAWopAwA3AwAgAkGoAWogAUGoAWopAwA3AwAgAkGwAWogAUGwAWopAwA3AwAgAkG4AWogAUG4AWopAwA3AwAgAkHoAWogAUHoAWopAwA3AwAgAkHgAWogAUHgAWopAwA3AwAgAkHYAWogAUHYAWopAwA3AwAgAkHQAWogAUHQAWopAwA3AwAgAkHIAWogAUHIAWopAwA3AwAgAiABKQPAATcDwAEgAkGYAmogAUGYAmopAwA3AwAgAkGQAmogAUGQAmopAwA3AwAgAkGIAmogAUGIAmopAwA3AwAgAkGAAmogAUGAAmopAwA3AwAgAkH4AWogAUH4AWopAwA3AwAgAiABKQPwATcD8AEgAkHIAmogAUHIAmopAwA3AwAgAkHAAmogAUHAAmopAwA3AwAgAkG4AmogAUG4AmopAwA3AwAgAkGwAmogAUGwAmopAwA3AwAgAkGoAmogAUGoAmopAwA3AwAgAiABKQOgAjcDoAIgAkH4AmogAUH4AmopAwA3AwAgAkHwAmogAUHwAmopAwA3AwAgAkHoAmogAUHoAmopAwA3AwAgAkHgAmogAUHgAmopAwA3AwAgAkHYAmogAUHYAmopAwA3AwAgAiABKQPQAjcD0AIgAkGoA2ogAUGoA2opAwA3AwAgAkGgA2ogAUGgA2opAwA3AwAgAkGYA2ogAUGYA2opAwA3AwAgAkGQA2ogAUGQA2opAwA3AwAgAkGIA2ogAUGIA2opAwA3AwAgAiABKQOAAzcDgAMgAkHYA2ogAUHYA2opAwA3AwAgAkHQA2ogAUHQA2opAwA3AwAgAkHIA2ogAUHIA2opAwA3AwAgAkHAA2ogAUHAA2opAwA3AwAgAkG4A2ogAUG4A2opAwA3AwAgAiABKQOwAzcDsAMgAkGIBGogAUGIBGopAwA3AwAgAkGABGogAUGABGopAwA3AwAgAkH4A2ogAUH4A2opAwA3AwAgAkHwA2ogAUHwA2opAwA3AwAgAkHoA2ogAUHoA2opAwA3AwAgAiABKQPgAzcD4AMgAkG4BGogAUG4BGopAwA3AwAgAkGwBGogAUGwBGopAwA3AwAgAkGoBGogAUGoBGopAwA3AwAgAkGgBGogAUGgBGopAwA3AwAgAkGYBGogAUGYBGopAwA3AwAgAiABKQOQBDcDkAQgAikDACFlIAVBmAlqIgQgBkG4BBCtBRogAkHABBCUBSAFQagTaiAFQcgJaiIHKQMANwMAIAVBsBNqIAVB0AlqIgYpAwA3AwAgBUG4E2ogBUHYCWoiCSkDADcDACAFQcATaiAFQeAJaiIKKQMANwMAIAVByBNqIAVB6AlqIgspAwA3AwAgBUG4F2ogBUH4CWoiCCkDADcDACAFQcAXaiAFQYAKaiIMKQMANwMAIAVByBdqIAVBiApqIg0pAwA3AwAg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2AFqIANB2AFqKQMANwMAIAFB0AFqIANB0AFqKQMANwMAIAFByAFqIANByAFqKQMANwMAIAEgAykDwAE3A8ABIAFBmAJqIANBmAJqKQMANwMAIAFBkAJqIANBkAJqKQMANwMAIAFBiAJqIANBiAJqKQMANwMAIAFBgAJqIANBgAJqKQMANwMAIAFB+AFqIANB+AFqKQMANwMAIAEgAykD8AE3A/ABIAFByAJqIANByAJqKQMANwMAIAFBwAJqIANBwAJqKQMANwMAIAFBuAJqIANBuAJqKQMANwMAIAFBsAJqIANBsAJqKQMANwMAIAFBqAJqIANBqAJqKQMANwMAIAEgAykDoAI3A6ACIAFB+AJqIANB+AJqKQMANwMAIAFB8AJqIANB8AJqKQMANwMAIAFB6AJqIANB6AJqKQMANwMAIAFB4AJqIANB4AJqKQMANwMAIAFB2AJqIANB2AJqKQMANwMAIAEgAykD0AI3A9ACIAFBqANqIANBqANqKQMANwMAIAFBoANqIANBoANqKQMANwMAIAFBmANqIANBmANqKQMANwMAIAFBkANqIANBkANqKQMANwMAIAFBiANqIANBiANqKQMANwMAIAEgAykDgAM3A4ADIAFB2ANqIANB2ANqKQMANwMAIAFB0ANqIANB0ANqKQMANwMAIAFByANqIANByANqKQMANwMAIAFBwANqIANBwANqKQMANwMAIAFBuANqIANBuANqKQMANwMAIAEgAykDsAM3A7ADIAFBiARqIANBiARqKQMANwMAIAFBgARqIANBgARqKQMANwMAIAFB+ANqIANB+ANqKQMANwMAIAFB8ANqIANB8ANqKQMANwMAIAFB6ANqIANB6ANqKQMANwMAIAEgAykD4AM3A+ADIAFBuARqIANBuARqKQMANwMAIAFBsARqIANBsARqKQMANwMAIAFBqARqIANBqARqKQMANwMAIAFBoARqIANBoARqKQMANwMAIAFBmARqIANBmARqKQMANwMAIAEgAykDkAQ3A5AEIAEpAwAhZSAEIGRBuAQQrQUaIAFBwAQQlAUgBUGoGWogBykDADcDACAFQbAZaiAGKQMANwMAIAVBuBlqIAkpAwA3AwAgBUHAGWogCikDADcDACAFQcgZaiALKQMANwMAIAVBuB1qIAgpAwA3AwAgBUHAHWogDCkDADcDACAFQcgdaiANKQMANwMAIAVB0B1qIA4pAwA3AwAgBUHYHWogDykDADcDACAFIAUpA8AJNwOgGSAFIAUpA/AJNwOwHSAFQYgeaiAQKQMANwMAIAVBgB5qIBEpAwA3AwAgBUH4HWogEikDADcDACAFQfAdaiATKQMANwMAIAVB6B1qICApAwA3AwAgBUGYHmogOikDADcDACAFQaAeaiAUKQMANwMAIAVBqB5qIBUpAwA3AwAgBUGwHmogFikDADcDACAFQbgeaiAXKQMANwMAIAUgBSkDoAo3A+AdIAUgBSkD0Ao3A5AeIAVB6B5qIBgpAwA3AwAgBUHgHmogGSkDADcDACAFQdgeaiAaKQMANwMAIAVB0B5qIBspAwA3AwAgBUHIHmogOykDADcDACAFQZgZaiAcKQMANwMAIAVBkBlqIB0pAwA3AwAgBUGIGWogHikDADcDACAFQYAZaiAfKQMANwMAIAUgBSkDgAs3A8AeIAUgBSkDmAk3A/gYICEgIikDADcDACA8ICMpAwA3AwAgPSAkKQMANwMAID4gJSkDADcDACA/IEApAwA3AwAgBSAFKQPgCzcDoB8gQSBCKQMANwMAIEMgJikDADcDACBEICcpAwA3AwAgRSAoKQMANwMAIEYgKSkDADcDACAFIAUpA5AMNwPQHyBHICopAwA3AwAgSCArKQMANwMAIEkgLCkDADcDACBKIC0pAwA3AwAgSyBMKQMANwMAIAUgBSkDwAw3A4AgIE0gLikDADcDACBOIC8pAwA3AwAgTyAwKQMANwMAIFAgMSkDADcDACBRIFIpAwA3AwAgBSAFKQPwDDcDsCAgUyAyKQMANwMAIFQgMykDADcDACBVIDQpAwA3AwAgViA1KQMANwMAIFcgWCkDADcDACAFIAUpA6ANNwPgICBZIDYpAwA3AwAgWiA3KQMANwMAIFsgOCkDADcDACBcIDkpAwA3AwAgXSBeKQMANwMAIAUgBSkDsAs3A/AeIAIgX0HgABCtBRogYEHgABCtBRogYyBiQeAAEK0FGiAFIGU3A/AYIAVB0BlqIAVBsB1qQeAAEK0FGiAFQbAaaiAFQZAeakHgABCtBRogBUGQG2ogAkGgAhCtBRogBUHYBGohCCAFQfASaiEgIwBBgBJrIgEkACABQcANaiIHIAVB8BhqIgIQiQEgAUGoCWpByLnAACkDADcDACABQaAJakHAucAAKQMANwMAIAFBmAlqIjpBuLnAACkDADcDACABQZAJaiI7QbC5wAApAwA3AwAgAUGICWpBqLnAACkDADcDACABQbgJakIANwMAIAFBwAlqQgA3AwAgAUHICWpCADcDACABQdAJakIANwMAIAFB2AlqQgA3AwAgAUGgucAAKQMANwOACSABQgA3A7AJIAFB4A9qIiFBAEHgABCvBRogAUHAEGogAUGACWoiA0HgABCtBRogAUGgEWpBAEHgABCvBRogAyACQaACaiI8EIkBIAEgISADEPgCIAFB4AZqIiEgByABEKwBIAFBwAdqIAFBoA5qIj0gAUHgAGoQrAEgAUGgCGogAUGAD2oiPiABQcABahCsASADICEQswIgASkDkAkhZSABKQOICSFmAkAgASkDgAlQBEAgAUHQBGogOkGQAhCtBRogASBlNwPIBCABIGY3A8AEIAMgAiABQcAEaiIDEPgCIAcgPBDXAiA9IAJBgANqENcCID4gAkHgA2oQ1wIgASADQaACEK0FIgFBoAtqIAFBwA1qIAEQ+AIgASkDgAkhZSABKQOICSFmIAFBEGogO0GwBBCtBRogASBmNwMIIAEgZTcDACAIICAgARDZAiABQYASaiQADAELIAEgZTcDiAkgASBmNwOACUG4tsAAQSsgAUGACWpB5LbAAEHgt8AAEP0DAAsgBCAIEMABQbnRwgAtAAAaQcAEQQgQiwUiAUUNByABIAUpA5gJNwMAIAEgBSkDyAk3AzAgAUEoaiAFQcAJaikDADcDACABQSBqIBwpAwA3AwAgAUEYaiAdKQMANwMAIAFBEGogHikDADcDACABQQhqIB8pAwA3AwAgAUE4aiAGKQMANwMAIAFBQGsgCSkDADcDACABQcgAaiAKKQMANwMAIAFB0ABqIAspAwA3AwAgAUHYAGogBUHwCWopAwA3AwAgAUGIAWogBUGgCmopAwA3AwAgAUGAAWogDykDADcDACABQfgAaiAOKQMANwMAIAFB8ABqIA0pAwA3AwAgAUHoAGogDCkDADcDACABIAUpA/gJNwNgIAFBuAFqIAVB0ApqKQMANwMAIAFBsAFqIBApAwA3AwAgAUGoAWogESkDADcDACABQaABaiASKQMANwMAIAFBmAFqIBMpAwA3AwAgASAFKQOoCjcDkAEgAUHoAWogBUGAC2opAwA3AwAgAUHgAWogFykDADcDACABQdgBaiAWKQMANwMAIAFB0AFqIBUpAwA3AwAgAUHIAWogFCkDADcDACABIAUpA9gKNwPAASABQZgCaiAFQbALaikDADcDACABQZACaiAYKQMANwMAIAFBiAJqIBkpAwA3AwAgAUGAAmogGikDADcDACABQfgBaiAbKQMANwMAIAEgBSkDiAs3A/ABIAFByAJqIAVB4AtqKQMANwMAIAFBwAJqIDYpAwA3AwAgAUG4AmogNykDADcDACABQbACaiA4KQMANwMAIAFBqAJqIDkpAwA3AwAgASAFKQO4CzcDoAIgAUH4AmogBUGQDGopAwA3AwAgAUHwAmogIikDADcDACABQegCaiAjKQMANwMAIAFB4AJqICQpAwA3AwAgAUHYAmogJSkDADcDACABIAUpA+gLNwPQAiABQagDaiAFQcAMaikDADcDACABQaADaiApKQMANwMAIAFBmANqICgpAwA3AwAgAUGQA2ogJykDADcDACABQYgDaiAmKQMANwMAIAEgBSkDmAw3A4ADIAFB2ANqIAVB8AxqKQMANwMAIAFB0ANqICopAwA3AwAgAUHIA2ogKykDADcDACABQcADaiAsKQMANwMAIAFBuANqIC0pAwA3AwAgASAFKQPIDDcDsAMgAUGIBGogBUGgDWopAwA3AwAgAUGABGogLikDADcDACABQfgDaiAvKQMANwMAIAFB8ANqIDApAwA3AwAgAUHoA2ogMSkDADcDACABIAUpA/gMNwPgAyABQbgEaiAFQdANaikDADcDACABQbAEaiAyKQMANwMAIAFBqARqIDMpAwA3AwAgAUGgBGogNCkDADcDACABQZgEaiA1KQMANwMAIAEgBSkDqA03A5AEIABBDDYCCCAAIAE2AgQgAEEMNgIADAQLIAVBADYCmAkgBUEQaiAFQQxqIAVBmAlqQeCtwQAQ0QQACyAFQQA2ApgJIAVBFGogBUEMaiAFQZgJakHwrcEAENEEAAsgBSADNgKgCSAFIAE2ApwJIAUgAjYCmAlBhKbBAEErIAVBmAlqQbCtwQBBoK7BABD9AwALIAUgBSkDqAk3A5ghIAUgBSkDoAk3A5AhQeTZwQBBKyAFQZAhakGQ2sEAQYjbwQAQ/QMACyAFQbAjaiQADwtBCEHgABCD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VK0gESADQZAFaikDAHx8fCIMUA0AIAZBKGoiBCAMIAQpAwB8Ig03AwAgDCANViIErSIMUCAIQVhGcg0AIAZBIGoiBCAMIAQpAwB8Ig03AwAgDCANViIErSIMUCAFQQJJcg0AIAZBGGoiBCAMIAQpAwB8Ig03AwAgDCANViIErSIMUCAFQQNJcg0AIAZBEGoiBCAMIAQpAwB8Ig03AwAgDCANViIErSIMUCAFQQRJcg0AIAZBCGoiBCAMIAQpAwB8Ig03AwAgDCANViIErSIMUCAFQQVJcg0AIAYgDCAGKQMAfCINNwMAIAwgDVYiBK0hDAsgBCAKciEKIAhBCGsiCEFQRw0BDAULCwwHCyAAIAIpAzA3AzAgACACKQMANwMAIABB2ABqIAJB2ABqKQMANwMAIABB0ABqIAJB0ABqKQMANwMAIABByABqIAJByABqKQMANwMAIABBQGsgAkFAaykDADcDACAAQThqIAJBOGopAwA3AwAgAEEIaiACQQhqKQMANwMAIABBEGogAkEQaikDADcDACAAQRhqIAJBGGopAwA3AwAgAEEgaiACQSBqKQMANwMAIABBKGogAkEoaikDADcDAAwFCyAAIAEpAzA3AzAgACABKQMANwMAIABB2ABqIAFB2ABqKQMANwMAIABB0ABqIAFB0ABqKQMANwMAIABByABqIAFByABqKQMANwMAIABBQGsgAUFAaykDADcDACAAQThqIAFBOGopAwA3AwAgAEEIaiABQQhqKQMANwMAIABBEGogAUEQaikDADcDACAAQRhqIAFBGGopAwA3AwAgAEEgaiABQSBqKQMANwMAIABBKGogAUEoaikDADcDAAwEC0Kk7MO1j9S0mOcAIAEpA0giDCACKQNIIhB9IhQgASkDUCISIAIpA1AiE1QgEiATfSISIAEpA1giEyACKQNYIhVUrSINVHKtIhd9Ig59IhYgEiANfSISQv//z4rr///VHlZC///Piuv//9UeIBJ9Ig0gEyAVfSITQqvV/v///7//uX9WrSIYVHKtIhV9IRJCv6WUnM/w0rvkACABKQNAIhkgAikDQCIbfSIcIAwgEFQgFCAXVHKtIgx9IhB9IhQgFSAWViAOQqTsw7WP1LSY5wBWcq0iF30hFULX2a6a5PbpjcsAIAEpAzgiFiACKQM4Ih59Ih0gGSAbVCAMIBxW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QdgCaiADKQPACCIdIBtCABD8AyADQcgCaiADKQO4CCIgIBtCABD8AyADQdgDaiAcIBlCABD8AyADQcgDaiAeIBlCABD8AyADQbgDaiAdIBlCABD8AyADQagDaiAgIBlCABD8AyADQZgEaiAeIBxCABD8AyADQYgEaiAdIBxCABD8AyADQfgDaiAgIBxCABD8AyADQcgEaiAdIB5CABD8AyADQbgEaiAgIB5CABD8AyADQegEaiAgIB1CABD8AyADQbgCaiAbIBtCABD8AyADQZgDaiAZIBlCABD8AyADQegDaiAcIBxCABD8AyADQagEaiAeIB5CABD8AyADQdgEaiAdIB1CABD8AyADQfgEaiAgICBCABD8AyADQbADaikDACERIANBkARqKQMAIRYgAykD+AMhGCADQYAEaikDACEaIAMpA8gEIR8gA0HQBGopAwAhIiADKQO4BCEjIANBsARqKQMAISEgAyADQfADaikDACADQaADaikDACADQcACaikDACIMIAMpA4gDIg1CAYZ8IiUgDFStIg4gA0GQA2opAwAiDyADKQP4AnwiDEIBhiANQj+IhHwiDSAOVK18IA0gAykDmAN8IiYgDVStfCIkIANBgANqKQMAIAwgD1StfCIPIAMpA+gCfCINIAMpA9gDfCIOQgGGIAxCP4iEfCIpICRUrSIkIANB4ANqKQMAIA0gDlatfCInIANB8AJqKQMAIA0gD1StfCIPIAMpA9gCfCIofCIMIAMpA8gDfCINQgGGIA5CP4iEfCIOICRUrXwgDiADKQPoA3wiJCAOVK18IiogDCANVq0gA0HQA2opAwAgDCAnVK18fCInIANB4AJqKQMAIA8gKFatfCIoIAMpA8gCfCIrfCIMIAMpA7gDfCIOIAMpA5gEfCIPQgGGIA1CP4iEfCIsICpUrSIqIANBoARqKQMAIA4gD1atfCItIAwgDlatIANBwANqKQMAIAwgJ1StfHwiJyADQdACaikDACAoICtWrXx8IgwgAykDqAN8Iih8Ig0gAykDiAR8Ig5CAYYgD0I/iIR8Ig8gAykDqAR8Iis3A5gOIAMgDyArVq0gISAPICpUrXx8IiEgHyAYIA0gDlatIBYgDSAtVK18fCIWIAwgKFatIBEgDCAnVK18fHwiDHwiDXwiD0IBhiAOQj+IhHwiDjcDkA4gAyAOICFU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aiADQfAAaikDACIMQqvV/v///7//uX9CABD8AyADQcgAaiAMQv//z4rr///VHkIAEPwDIANBOGogDEKk7MO1j9S0mOcAQgAQ/AMgA0EoaiAMQr+llJzP8NK75ABCABD8AyADQRhqIAxC19mumuT26Y3LAEIAEPwDIANBCGogDEKazf/Lo73EgBpCABD8AyADQRBqKQMAIBEgAykDyAEiEXwiDCADQcABaikDACADKQO4ASIXIA58IhUgF1StfCAVIANBsAFqKQMAIAMpA6gBIhcgEHwiECAXVK18IBAgECADQaABaikDACADKQOYASIXIBJ8IhIgF1StfCASIBIgA0GQAWopAwAgAykDiAEiFyATfCITIBdUrXwgEyADQYABaikDACANIBRWrXx8Ig4gE1StfHwiElatfHwiEFatfHwiEyAVVK18fCIVIAMpAwh8Ig0gFVStfCANIANBIGopAwAgEyADKQMYfCIXIBNUrXwgFyADQTBqKQMAIBAgECADKQMofCIQVq18IBAgA0FAaykDACASIBIgAykDOHwiElatfCASIANB0ABqKQMAIA4gAykDSCIOfCITIA5UrXwgEyADQeAAaikDACAUIAMpA1giFHwgFFStfHwiDyATVK18fCITIBJUrXx8IhIgEFStfHwiECAXVK18fCIOIA1UrXwgDCAVVq0gA0HQAWopAwAgDCARVK18fHwhESAEQQhrIgRBeEcNAAsCQAJAIBFCms3/y6O9xIAaVg0AIBFCms3/y6O9xIAaUgRAIBMhFCASIRcgECEVIA4hDAwCCyAOQtfZrprk9umNywBWDQACQCAOQtfZrprk9umNywBSBEAgEyEUIBIhFyAQIRUgDiEMDAELIBBCv6WUnM/w0rvkAFYNAULX2a6a5PbpjcsAIQwgEEK/pZScz/DSu+QAUgRAIBMhFCASIRcgECEVDAELIBJCpOzDtY/UtJjnAFYNAUK/pZScz/DSu+QAIRUgEkKk7MO1j9S0mOcAUgRAIBMhFCASIRcMAQsgE0L//8+K6///1R5WDQFCpOzDtY/UtJjnACEXIBNC///Piuv//9UeUgRAIBMhFAwBC0L//8+K6///1R4hFCAPQqrV/v///7//uX9WDQELQprN/8ujvcSAGiERDAELIBNC///Piuv//9UefSIMIA9Cq9X+////v/+5f1StIhV9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QCAERQ0BIAVBAWshBSAEQTBrIgQgBmoiCEHgmMAAQTAQrgVFDQALIAVBAEgNACADQdgBaiIFIAhBKGopAwA3AwAgA0HQAWoiBiAIQSBqKQMANwMAIANByAFqIgcgCEEYaikDADcDACADQcABaiIEIAhBEGopAwA3AwAgA0G4AWoiCyAIQQhqKQMANwMAIAMgCCkDADcDsAEgA0GwAWpBmLPAAEEwEK4FRQ0JIANB4AJqQgA3AwAgA0HYAmpCADcDACADQdACakIANwMAIANByAJqQgA3AwAgA0IANwPAAiADQgE3A+gCIANBmANqIAUpAwA3AwAgA0GQA2ogBikDADcDACADQYgDaiAHKQMANwMAIANBgANqIAQpAwA3AwAgA0H4AmogCykDADcDACADIAMpA7ABNwPwAiADQcgDakHIsMAAKQMANwMAIANBwANqQcCwwAApAwA3AwAgA0G4A2pBuLDAACkDADcDACADQbADakGwsMAAKQMANwMAIANBqANqQaiwwAApAwA3AwAgA0GgsMAAKQMANwOgAyADQfgDakHws8AAKQMANwMAIANB8ANqQeizwAApAwA3AwAgA0HoA2pB4LPAACkDADcDACADQeADaiIFQdizwAApAwA3AwAgA0HYA2pB0LPAACkDADcDACADQcizwAApAwA3A9ADIANBqARqQgA3AwAgA0GgBGpCADcDACADQZgEakIANwMAIANBkARqIghCADcDACADQYgEakIANwMAIANCADcDgAQCQCADQfACaiADQcACakEwEK4FRQRAQqrHq5bZ/KPMESEdQq2q5qjb0M+8mn8hEgwBCyADQaADaiADQcACakEwEK4FRQRAIAghBQwBC0Kr1f7///+//7l/IRoDQCADLQCYA0EBcUUEQANAIANB8AJqEPoCIAMpA/gDIhJCAYNQRQRAIAMpA/ADIRMgAyASQtWqgYCAgMCAxgB9IhY3A/gDIAMgE0L//8+K6///1R58IhQgEiAWVq18IhY3A/ADIAMgAykD6AMiFUKk7MO1j9S0mOcAfCISIBMgFFYgFCAWVnKtfCIUNwPoAyADIAMpA+ADIhZCv6WUnM/w0rvkAHwiEyASIBVUIBIgFFZyrXwiFDcD4AMgAyADKQPYAyIVQtfZrprk9umNywB8IhIgEyAWVCATIBRWcq18IhM3A9gDIAMg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QQFrIQUgBEEwayIEIAZqIghB4JjAAEEwEK4FRQ0ACyAFQQBIDQAgA0G4AmoiBSAIQShqKQMANwMAIANBsAJqIgcgCEEgaikDADcDACADQagCaiIEIAhBGGopAwA3AwAgA0GgAmoiCyAIQRBqKQMANwMAIANBmAJqIgogCEEIaikDADcDACADIAgpAwA3A5ACIANBkAJqQZizwABBMBCuBUUNCUIAIRIgA0HgAmpCADcDACADQdgCakIANwMAIANB0AJqQgA3AwAgA0HIAmpCADcDACADQgA3A8ACIANCATcD6AIgA0GYA2ogBSkDADcDACADQZADaiAHKQMANwMAIANBiANqIAQpAwA3AwAgA0GAA2ogCykDADcDACADQfgCaiAKKQMANwMAIAMgAykDkAI3A/ACIANByANqQciwwAApAwA3AwAgA0HAA2pBwLDAACkDADcDACADQbgDakG4sMAAKQMANwMAIANBsANqQbCwwAApAwA3AwAgA0GoA2pBqLDAACkDADcDACADQaCwwAApAwA3A6ADIANB+ANqQfCzwAApAwA3AwAgA0HwA2pB6LPAACkDADcDACADQegDakHgs8AAKQMANwMAIANB4ANqIgVB2LPAACkDADcDACADQdgDakHQs8AAKQMANwMAIANByLPAACkDADcD0AMgA0GoBGpCADcDACADQaAEakIANwMAIANBmARqQgA3AwAgA0GQBGoiCEIANwMAIANBiARqQgA3AwAgA0IANwOABCADQfACaiADQcACakEwEK4FRQRAQqrHq5bZ/KPMESEdQq2q5qjb0M+8mn8hEgwMCyADQaADaiADQcACakEwEK4FRQRAQgAhHSAIIQUMDAtCq9X+////v/+5fyEaA0AgAy0AmANBAXFFBEADQCADQfACahD6AiADKQP4AyISQgGDUEUEQCADKQPwAyETIAMgEkLVqoGAgIDAgMYAfSIWNwP4AyADIBNC///Piuv//9UefCIUIBIgFlatfCIWNwPwAyADIAMpA+gDIhVCpOzDtY/UtJjnAHwiEiATIBRWIBQgFlZyrXwiFDcD6AMgAyADKQPgAyIWQr+llJzP8NK75AB8IhMgEiAVVCASIBRWcq18IhQ3A+ADIAMgAykD2AMiFULX2a6a5PbpjcsAfCISIBMgFlQgEyAUVnKtfCITNwPYAyADIAMp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IAcgCVStfHwiCCACKQOYBnwiByASfCIJNwOoDCACQZAGaikDACENIAIgByAJVq0gESAHIAhUrXx8IgggAikDiAZ8IgcgFHwiCTcDyAtBACEEAkAgByAJVq0gDSAHIAhUrXx8IgdQBEBBACEDDAELIAIgByACKQPIDHwiCDcDyAwgByAIViIDRQ0AIAIgA60iByACKQPQDHwiCDcD0AwgByAIViEDIAcgCFgNACACIAOtIgcgAikD2Ax8Igg3A9gMIAcgCFYhAyAHIAhYDQAgA60iByAMfCIMIAdUIQMLIAJB+AVqIAIpA4gMIghCiceZpK7wgemHf34iB0LH+vPD7YKjkDxCABD8AyACQegFaiAHQo2Vx8OW0trAl39CABD8AyACQdgFaiAHQt2whYzotpGouH9CABD8AyACQcgFaiAHQqnAxomuzpOyMEIAEPwDIAIgCCACKQP4BSIHfCIINwOIDCACQfAFaikDACEJIAIgAkGABmopAwAgByAIVq18IgggAikD6AV8IgcgAikDqAx8Ig03A6gMIAJB4AVqKQMAIREgAiAHIA1WrSAJIAcgCFStfHwiCCACKQPYBXwiByACKQPIC3wiCTcDyAsgAkHQBWopAwAhDSACIAcgCVatIBEgByAIVK18fCIIIAIpA8gFfCIHIAIpA8gMfCIJNwPIDAJAIAcgCVatIA0gByAIVK18fCIHUA0AIAIgByACKQPQDHwiCDcD0AwgByAIViEEIAcgCFgNACACIAStIgcgAikD2Ax8Igg3A9gMIAcgCFYhBCAHIAhYDQAgBK0iByAMfCIMIAdUIQQLIAJBuAVqIAIpA6gMIghCiceZpK7wgemHf34iB0LH+vPD7YKjkDxCABD8AyACQagFaiAHQo2Vx8OW0trAl39CABD8AyACQZgFaiAHQt2whYzotpGouH9CABD8AyACQYgFaiAHQqnAxomuzpOyMEIAEPwDIAIgCCACKQO4BSIHfCIINwOoDCACQbAFaikDACEJIAIgAkHABWopAwAgByAIVq18IgggAikDqAV8IgcgAikDyAt8Ig03A8gLIAJBoAVqKQMAIREgAiAHIA1WrSAJIAcgCFStfHwiCCACKQOYBXwiByACKQPIDHwiCTcDyAwgAkGQBWopAwAhDSACIAcgCVatIBEgByAIVK18fCIIIAIpA4gFfCIHIAIp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rXx8IAtCP4h8IQwgA0HoBWopAwAhCiADIANB+AVqKQMAIAMpA/AFIgkgEEJ9g3wgCVStfCILIAMpA+AFfCIJIBd8IhA3A8gNIANB2AVqKQMAIQ4gAyAJIBBWrSAKIAkgC1StfHwiCiADKQPQBXwiCSAYfCILNwPoDSADQcgFaikDACEQIAMgCSALVq0gDiAJIApUrXx8IgogAykDwAV8IgkgGnwiCzcD4ApBACEEAkAgCSALVq0gECAJIApUrXx8IglQBEBBACEGDAELIAMgCSADKQOYDnwiCjcDmA4gCSAKViIGRQ0AIAMgBq0iCSADKQOgDnwiCjcDoA4gCSAKViEGIAkgClgNACADIAatIgkgAykDqA58Igo3A6gOIAkgClYhBiAJIApYDQAgBq0iCSAMfCIMIAlUIQYLIANBsAVqIAMpA8gNIgpCiceZpK7wgemHf34iCULH+vPD7YKjkDxCABD8AyADQaAFaiAJQo2Vx8OW0trAl39CABD8AyADQZAFaiAJQt2whYzotpGouH9CABD8AyADQYAFaiAJQqnAxomuzpOyMEIAEPwDIAMgCiADKQOwBSIJfCIKNwPIDSADQagFaikDACELIAMgA0G4BWopAwAgCSAKVq18IgogAykDoAV8IgkgAykD6A18IhA3A+gNIANBmAVqKQMAIQ4gAyAJIBBWrSALIAkgClStfHwiCiADKQOQBXwiCSADKQPgCnwiCzcD4AogA0GIBWopAwAhECADIAkgC1atIA4gCSAKVK18fCIKIAMpA4AFfCIJIAMpA5gOfCILNwOYDgJAIAkgC1atIBAgCSAKVK18fCIJUA0AIAMgCSADKQOgDnwiCjcDoA4gCSAKViEEIAkgClgNACADIAStIgkgAykDqA58Igo3A6gOIAkgClYhBCAJIApYDQAgBK0iCSAMfCIMIAlUIQQLIANB8ARqIAMpA+gNIgpCiceZpK7wgemHf34iCULH+vPD7YKjkDxCABD8AyADQeAEaiAJQo2Vx8OW0trAl39CABD8AyADQdAEaiAJQt2whYzotpGouH9CABD8AyADQcAEaiAJQqnAxomuzpOyMEIAEPwDIAMgCiADKQPwBCIJfCIKNwPoDSADQegEaikDACELIAMgA0H4BGopAwAgCSAKVq18IgogAykD4AR8IgkgAykD4Ap8IhA3A+AKIANB2ARqKQMAIQ4gAyAJIBBWrSALIAkgClStfHwiCiADKQPQBHwiCSADKQOYDnwiCzcDmA4gA0HIBGopAwAhECADIAkgC1atIA4gCSAKVK18fCIKIAMpA8AEfCIJIAMpA6AOfCILNwOgDkEAIQUgCSALVq0gECAJIApUrXx8IglQRQRAIAMgCSADKQOoDnwiCjcDqA4gCSAKViIFrSIJIAx8IgogDCAFGyEMIAUgCSAKVnEhBQsgA0GwBGogAykD4AoiCkKJx5mkrvCB6Yd/fiIJQsf688PtgqOQPEIAEPwDIANBoARqIAlCjZXHw5bS2sCXf0IAEPwDIANBkARqIAlC3bCFjOi2kai4f0IAEPwDIANBgARqIAlCqcDGia7Ok7IwQgAQ/AMgAyAKIAMpA7AEIgl8Igo3A+AKIANBqARqKQMAIQsgAyADQbgEaikDACAJIApWrXwiCiADKQOgBHwiCSADKQOYDnwiEDcDmA4gA0GYBGopAwAhDiADIAkgEFatIAsgCSAKVK18fCIKIAMpA5AEfCIJIAMpA6AOfCILNwOgDiADQYgEaikDACEQIAMgCSALVq0gDiAJIApUrXx8IgogAykDgAR8IgkgAykDqA58Igs3A6gOIAkgC1atIBAgCSAKVK18fCIJIAx8IgogDCAJQgBSIgcbIQsCQAJAAkAgBCAGciAFciAJIApWIgStIAkgBxtCAFJyIAQgB3FyRQRAIAMpA6gOIQwgC0KpwMaJrs6TsjBWBEAgDCEKDAMLIAtCqcDGia7Ok7IwUQ0BIAMpA6AOIRAgCyEJDAMLIAMpA6gOIQoMAQsgDELdsIWM6LaRqLh/VgRAIAwhCgwBC0KpwMaJrs6TsjAhCSADKQOgDiEQIAxC3bCFjOi2kai4f1INAULdsIWM6LaRqLh/IQogEEKNlcfDltLawJd/Vg0AIBBCjZXHw5bS2sCXf1IEQELdsIWM6LaRqLh/IQwMAgtC3bCFjOi2kai4fyEMIAMpA5gOQsb688PtgqOQPFgNAQsgAyADKQOYDiIJQsf688PtgqOQPH03A5gOIAMpA6AOIgxC8+q4vOmtpb/oAHwiDiAJQsf688PtgqOQPFStIgl9IRAgCkKjz/rzl8nu18cAfCIXIAxCjZXHw5bS2sCXf1QgCSAOVnKtIgl9IQwgCyAKQt2whYzotpGouH9UIAkgF1ZyrX1CqcDGia7Ok7IwfSEJCyADKQOYDiEOIAkhCyADAn4CQAJAIAkgEyIKUg0AIA8iCiAMIgtSDQAgESIKIBAiC1INACANIgogDiILUQ0BCyAKIAtUDQBC3bCFjOi2kai4fyAPIAx9IgsgECARViARIBB9IgogDSAOVK0iEVRyrSIQfSIXfSIYIAogEX0iCkKNlcfDltLawJd/VkKNlcfDltLawJd/IAp9IgogDSAOfSINQsf688PtgqOQPFatIg5Ucq0iGX0hESAYIBlUIBdC3bCFjOi2kai4f1ZyIQQgCiAOfSEKIAsgEFQgDCAPVnKtIAkgE318QqnAxomuzpOyMHwhD0LH+vPD7YKjkDwgDX0MAQsgECARfSILIA0gDlatIhd9IQogDCAPfSIYIAsgF1QgECARVHKtIgt9IREgDCAPVCALIBhWciEEIAkgE30hDyAOIA19CzcD+AogAyAKNwPwCiADIBE3A+gKIAMgDyAErX03A+AKIANByA1qIgQgA0HgCmoiBSACEIIDIANB+ApqIAFBGGopAwA3AwAgA0HwCmogAUEQaikDADcDACADQegKaiABQQhqKQMANwMAIAMgASkDADcD4AogA0HoDWogBSAEEIIDIANBsAJqIAMpA4AOIg0gFkIAEPwDIANBoAJqIA0gFUIAEPwDIANBkAJqIA0gEkIAEPwDIANBgAJqIA0gFEIAEPwDIANB8AFqIAMpA7ACIgpCiceZpK7wgemHf34iDULH+vPD7YKjkDxCABD8AyADQeABaiANQo2Vx8OW0trAl39CABD8AyADQdABaiANQt2whYzotpGouH9CABD8AyADQcABaiANQqnAxomuzpOyMEIAEPwDIANB8AJqIAMpA/gNIg0gFkIAEPwDIANB4AJqIA0gFUIAEPwDIANB0AJqIA0gEkIAEPwDIANBwAJqIA0gFEIAEPwDIANBsAFqIAMpA+ABIhMgA0G4AmopAwAiESADKQOgAnwiC3wiCSADQfgBaikDACAKIAMpA/ABIg18IA1UrXx8IgogAykD8AJ8Ig9CiceZpK7wgemHf34iDULH+vPD7YKjkDxCABD8AyADQaABaiANQo2Vx8OW0trAl39CABD8AyADQZABaiANQt2whYzotpGouH9CABD8AyADQYABaiANQqnAxomuzpOyMEIAEPwDIANBsANqIAMp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QaAGaiADKQPICiISIBZCABD8AyADQZAGaiADKQPACiIUIBZCABD8AyADQeAGaiASIBVCABD8AyADQdAGaiAUIBVCABD8AyADQYAHaiAUIBJCABD8AyADQYAGaiAWIBZCABD8AyADQcAGaiAVIBVCABD8AyADQfAGaiASIBJCABD8AyADQZAHaiAUIBRCABD8AyADQfAFaiADKQOABiIQQv////++sv3wQn4iCUKBgICAv7L98MMAQgAQ/AMgA0HgBWogCUKR4eXNh4n6mShCABD8AyADQdAFaiAJQt2whYzotpGouH9CABD8AyADQcAFaiAJQqnAxomuzpOyMEIAEPwDIANB+AZqKQMAIQ4gAyADQcgGaikDACADKQPABiIMIANBuAZqKQMAIgsgAykDoAZ8IglCAYYgAykDsAYiF0I/iIR8IgogDFStfCAKIANBiAZqKQMAIgwgF0IBhnwiFyAMVK18IhggClStfCIZIANBqAZqKQMAIAkgC1StfCILIAMpA5AGfCIKIAMpA+AGfCIMQgGGIAlCP4iEfCIaIBlUrSIZIAMpA/AGfCIJIANBmAZqKQMAIAogC1StfCIbIAMpA9AGfCILIANB6AZqKQMAIAogDFatfHwiCkIBhiAMQj+IhHwiDDcDmA4gAyAJIAxWrSAOIAkgGVStfHwiDCAKIAtUrSADQdgGaikDACALIBtUrXx8IgsgAykDgAd8IglCAYYgCkI/iIR8Igo3A6AOIAMgAykDkAciDiADQYgHaikDACAJIAtUrXwiC0IBhiAJQj+IhHwiCSAKIAxUrXwiCjcDqA4gCSAKVq0gA0GYB2opAwAgCSAOVK18fCALQj+IfCEMIANB6AVqKQMAIQogAyADQfgFaikDACADKQPwBSIJIBBCfYN8IAlUrXwiCyADKQPgBXwiCSAXfCIQNwPIDSADQdgFaikDACEOIAMgCSAQVq0gCiAJIAtUrXx8IgogAykD0AV8IgkgGHwiCzcD6A0gA0HIBWopAwAhECADIAkgC1atIA4gCSAKVK18fCIKIAMpA8AFfCIJIBp8Igs3A+AKQQAhBAJAIAkgC1atIBAgCSAKVK18fCIJUARAQQAhBgwBCyADIAkgAykDmA58Igo3A5gOIAkgClYiBkUNACADIAatIgkgAykDoA58Igo3A6AOIAkgClYhBiAJIApYDQAg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QgAQ/AMgA0FAayANQqnAxomuzpOyMEIAEPwDIANB8ANqIAMpA+gNIg0gFkIAEPwDIANB4ANqIA0gFUIAEPwDIANB0ANqIA0gEkIAEPwDIANBwANqIA0gFEIAEPwDIANBMGogA0G4A2opAwAgDyATVq18IhIgAykDoAN8IhAgA0GYAmopAwAgDiARVq18IhQgAykDgAJ8Ig4gAykDwAF8IhUgCyAYVq0gA0HYAWopAwAgCyARVK18fHwiESADKQPQAnwiCyAJIAxUrSADQegCaikDACAMIBdUrXx8fCIMIAMpA5ABfCIWIAogD1atIANBqAFqKQMAIAkgClatfHx8Ihd8IgkgAykDYHwiCiADQfgAaikDACADKQNwIg0gE3wgDVStfHwiDyADKQPwA3wiE0L/////vrL98EJ+Ig1CgYCAgL+y/fDDAEIAEPwDIANBIGogDUKR4eXNh4n6mShCABD8AyADQRBqIA1C3bCFjOi2kai4f0IAEPwDIAMgDUKpwMaJrs6TsjBCABD8AwJAAkAgA0EIaikDACADQcgAaikDACADQYgBaikDACARIBVUrSADQcgBaikDACAOIBVWrXx8IANBiAJqKQMAIA4gFFStfHwiDiADKQPAAnwiDSALIAxWrSADQdgCaikDACALIBFUrXx8fCIRIAMpA4ABfCILIBFUrXwgCyAWIBdWrSADQZgBaikDACAMIBZWrXx8fCIMIAtUrXwgDSARVq0gA0HIAmopAwAgDSAOVK18fHwiDiADKQOAA3wiDSADQZgDaikDACAMIAwgAykDkAN8IgxWrXwgDCAMIAkgEFStIANBqANqKQMAIBAgElStfHx8IgxWrXx8IhEgAykDQHwiCyARVK18IAsgA0HYAGopAwAgDCAMIAMpA1B8IgxWrXwgDCAMIAogD1atIANB6ABqKQMAIAkgClatfHx8IgxWrXx8IgkgC1StfCANIBFWrSADQYgDaikDACANIA5UrXx8fCIRIAMpA8ADfCINIANB2ANqKQMAIAkgCSADKQPQA3wiCVatfCAJIAkgA0HoA2opAwAgA0H4A2opAwAgDyATVq18Ig8gAykD4AN8IgogD1StfCAKIAogDHwiClatfHwiCVatfHwiDCADKQMAfCIPIAxUrXwgDyAPIANBGGopAwAgCSAJIAMpAxB8IglWrXwgCSADQShq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4AgiCSAUQn2DfCAJVK18IgsgAykD0AgiDHwiDnwiCTcD4AwgAyAQIAwgCSAOVK0gFSALIA5WrXx8Igt8IhB8Igk3A+gMIANByAhqKQMAIQwgAyANIAkgEFStIBUgCyAQVq18fCILIAMpA8AIfCINfCIJNwPoCyAJIA1UrSAMIAsgDVatfHwiC1AEQAwECyADIAsgAykDyAx8Igk3A8gMIAkgC1QiB0UNAyADIAetIgsgAykD0Ax8Igk3A9AMIAkgC1QhByAJIAtaDQMgAyAHrSILIAMpA9gMfCIJNwPYDCAJIAtUIQcgCSALWg0DIAetIgkgCnwiCiAJVCEHDAMLIAAgAikDIDcDICAAIAIpAwA3AwAgAEE4aiACQThqKQMANwMAIABBMGogAkEwaikDADcDACAAQShqIAJBKGopAwA3AwAgAEEIaiACQQhqKQMANwMAIABBEGogAkEQaikDADcDACAAQRhqIAJBGGopAwA3AwAMBQsgACABKQMgNwMgIAAgASkDADcDACAAQThqIAFBOGopAwA3AwAgAEEwaiABQTBqKQMANwMAIABBKGogAUEoaikDADcDACAAQQhqIAFBCGopAwA3AwAgAEEQaiABQRBqKQMANwMAIABBGGogAUEYaikDADcDAAwECyABKQMwIg8gAikDMCIJVCAPIAl9IgogASkDOCILIAIpAzgiD1StIglUcq0iECABKQMoIhMgAikDKCINfSIRQn+FfCIMIApCf4UgCXwiCiALIA99IhJCbVatIg9UrSIJfSELIAkgDFYhBSAKIA99IQogDSATViAQIBFWcq0gFCAXfXxC////////////AHwhEUJtIBJ9IQ8MAQsgA0GgB2ogAykD4AwiCUKblK/D8rWo3oZ/fiILQm1CABD8AyADQZAHaiALQn9CABD8AyADQYAHaiALQv///////////wBCABD8AyADIAkgAykDoAciC3wiCTcD4AwgA0GYB2opAwAhECADIANBqAdqKQMAIAkgC1StfCILIAMpA5AHIgx8Ig0gAykD6Ax8Igk3A+gMIAMgDCAJIA1UrSAQIAsgDVatfHwiC3wiDSADKQPoC3wiCTcD6AsgA0GIB2opAwAhDCADIAkgDVStIBAgCyANVq18fCILIAMpA4AHfCINIAMpA8gMfCIJNwPIDAJAIAkgDVStIAwgCyANVq18fCILUA0AIAMgCyADKQPQDHwiCTcD0AwgCSALVCEGIAkgC1oNACADIAatIgsgAykD2Ax8Igk3A9gMIAkgC1QhBiAJIAtaDQAgBq0iCSAKfCIKIAlUIQYLIANB8AZqIAMpA+gMIglCm5Svw/K1qN6Gf34iC0JtQgAQ/AMgA0HgBmogC0J/QgAQ/AMgA0HQBmogC0L///////////8AQgAQ/AMgAyAJIAMpA/AGIgt8Igk3A+gMIANB6AZqKQMAIRAgAyADQfgGaikDACAJIAtUrXwiCyADKQPgBiIMfCINIAMpA+gLfCIJNwPoCyADIAwgCSANVK0gECALIA1WrXx8Igt8Ig0gAykDyAx8Igk3A8gMIANB2AZqKQMAIQwgAyAJIA1UrSAQIAsgDVatfHwiCyADKQPQBnwiDSADKQPQDHwiCTcD0AxBACEEIAkgDVStIAwgCyANVq18fCILUEUEQCADIAsgAykD2Ax8Igk3A9gMIAkgC1QiBK0iCyAKfCIJIAogBBshCiAEIAkgC1RxIQQLIANBwAZqIAMpA+gLIglCm5Svw/K1qN6Gf34iC0JtQgAQ/AMgA0GwBmogC0J/QgAQ/AMgA0GgBmogC0L///////////8AQgAQ/AMgAyAJIAMpA8AGIgt8Igk3A+gLIANBuAZqKQMAIRAgAyADQcgGaikDACAJIAtUrXwiCyADKQOwBiIMfCINIAMpA8gMfCIJNwPIDCADIAwgCSANVK0gECALIA1WrXx8Igt8Ig0gAykD0Ax8Igk3A9AMIANBqAZqKQMAIQwgAyAJIA1UrSAQIAsgDVatfHwiCyADKQOgBnwiDSADKQPYDHwiCTcD2AwgCSANVK0gDCALIA1WrXx8IgsgCnwiCSAKIAtCAFIiCBshCgJAAkAgBiAHciAEciAJIAtUIgStIAsgCBtCAFJyIAQgCHFyRQRAIAMpA9gMIQwgAykD0AwhCyADKQPIDCEQIApCAFMEQCAKIQkMAgtC////////////ACEJIApC////////////AFIgDEJ/UnIgC0J/UnINAkJ/IQxCfyELIBBCbVQNAgwBCyADKQPYDCEMIAMpA9AMIQsgAykDyAwhECAKIQkLIAMgEEITfDcDyAwgAyALQgF8Ig4gEEJtVK0iCn03A9AMIAMgDEIBfCINIAtCf1IgCiAOVnKtIgp9NwPYDCAJIAxCf1IgCiANVnKtfUL///////////8AfSEKCyADIAo3A6AJIAMgAykD2Aw3A6gJIAMgAykD0Aw3A7AJIAMgAykDyAw3A7gJIANB6AtqIANBqAxqIANBoAlqEJwBIAMpA+gLIgwgF3wiECADKQPwCyIJIBZ8Ig0gCVQgDSADKQP4CyIJIBl8IgsgCVQgCyALIAMpA4AMIgkgG3wiCiAJVK18IgtWcq18Ig4gDVRyrXwhCQJAAkACQCAJIBBUIAwgEFZyDQBC////////////ACEQIAkiDEL///////////8AUQRAQn8hEEL///////////8AIQwgDkJ/Ug0CIAtCf1IEQCALIQ0MBAtCbSEQIAohDCAKQm1RDQELIAwgEFoNACAJIQwMAQsgC0IBfCIUIApCbVStIhB9IQ0gDkIBfCIMIAtCf1IgECAUVnKtIgt9IRAgCSAOQn9SIAsgDFZyrX1C////////////AH0hDCAKQhN8IQoMAQsgDiEQIAshDQsgAyAKNwPgCyADIA03A9gLIAMgEDcD0AsgAyAMNwPICyADQbAJakIANwMAIANBqAlqQgA3AwAgA0IANwOgCSADQswANwO4CSADQYgMaiIEIANBoAlqIAUQnAEgA0GACWogA0HIC2ogBBBtDAELIAMgDzcDwAwgAyAKNwO4DCADIAs3A7AMIAMgESAFrX03A6gMIAEpAwAiEyERIAIpAwAiFiEMAn4CQAJ+AkAgEyAWUg0AIAEpAwgiDyACKQMIIgxSBEAgDyERDAELIAEpAxAiEiACKQMQIgxSBEAgEiERDAELIA8hECABKQMYIhEhDiASIBEgAikDGCIMUQ0BGgsgASkDECESIAwgEVgNASABKQMIIQ8gAikDCCEQIAEpAxghESACKQMYIQ4gAikDEAsiCyASfSINIA4gEVStIgl9IQwgECAPfSIKIAsgElQgCSANVnKtIgl9IQsgCSAKViAPIBBWciEFIA4gEX0hECAWIBN9DAELIBIgAikDECIJVCASIAl9IgsgASkDGCIRIAIpAxgiClStIglUcq0iFyABKQMIIg8gAikDCCIUfSIOQn+FfCIQIAtCf4UgCXwiDCARIAp9Ig1CbVatIgpUrSIJfSELIAkgEFYhBSAMIAp9IQxCbSANfSEQIA8gFFQgDiAXVHKtIBYgE318Qv//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DCADIAsgCSAMVK0gDSAKIAxWrXx8Igp8IgwgAykD4Ax8Igk3A+AMIANByANqKQMAIQsgAyAJIAxUrSANIAogDFatfHwiCiADKQPAA3wiDCADKQPoDHwiCTcD6AwgCSAMVK0gCyAKIAxWrXx8IgogDnwiCSAOIApCAFIiCBshDgJAAkAgBSAGciAEciAJIApUIgStIAogCBtCAFJyIAQgCHFyRQRAIAMpA+gMIQ0gAykD4AwhCyADKQPYDCEMIA5CAFMEQCAOIRAgDSEJIAshCgwCC0L///////////8AIRAgDkL///////////8AUiANQn9SciALQn9Scg0CQn8hCUJ/IQogDEJtVA0CDAELIAMpA+gMIQkgAykD4AwhCiADKQPYDCEMIA4hEAsgCkIBfCIUIAxCbVStIg19IQsgCUIBfCIOIApCf1IgDSAUVnKtIgp9IQ0gECAJQn9SIAogDlZyrX1C////////////AH0hDiAMQhN8IQwLIAMCfgJAAkAgEyIJIA4iClINACAPIgkgDSIKUg0AIAshCiALIBIiCVINACARIgkgDCIKUQ0BCyAJIApUDQAgEiALfSIKIAwgEVatIglUIAsgElZyrSIWIA8gDX0iF0J/hXwiFCAJIApCf4V8IhAgESAMfSIMQm1WrSIKVK0iCX0hCyAJIBRWIQUgECAKfSEJIA0gD1YgFiAXVnKtIA4gE318Qv///////////wB8IQ5CbSAMfQwBCyALIBJ9IhQgDCARVK0iCn0hCSANIA99IhAgCyASVCAKIBRWcq0iCn0hCyANIA9UIAogEFZyIQUgDiATfSEOIAwgEX0LNwO4CSADIAk3A7AJIAMgCzcDqAkgAyAOIAWtfTcDoAkgA0GoDGogA0GgCWogAhCIAyADKQOoDCIZIQ4gA0HwAmoCfgJAAn4CQCAZIBMiC1INACAPIgsgAykDsAwiDlINACASIgsgAykDuAwiDlINACALIQogESILIQwgDyADKQPADCIOIAtRDQEaCyADKQPADCEMIAsgDlgNASADKQO4DCEKIAMpA7AMCyEJIBIgCn0iECAMIBFWrSINfSEOIA8gCX0iCyAKIBJWIA0gEFZyrSIKfSESIAkgD1YgCiALVnIhAiATIBl9IQkgESAMfQwBCyADKQO4DCIJIBJUIAkgEn0iCiAMIBFUrSIJVHKtIhYgAykDsAwiFyAPfSIUQn+FfCIQIApCf4UgCXwiDSAMIBF9IgtCbVatIgpUrSIJfSESIAkgEFYhAiANIAp9IQ4gFCAWVCAPIBdWcq0gEyAZfXxC////////////AHwhCUJtIAt9CyIPIBpCABD8AyADQbACaiAPIBxCABD8AyADQaACaiAPIBhCABD8AyADQZACaiAPIBVCABD8AyADQeACaiADKQPwAiIMQpuUr8Pytajehn9+Ig9CbUIAEPwDIANB0AJqIA9Cf0IAEPwDIANBwAJqIA9C////////////AEIAEPwDIANBgAJqIA4gGkIAEPwDIANBwAFqIA4gHEIAEPwDIANBsAFqIA4gGEIAEPwDIANBoAFqIA4gFUIAEPwDIANB8AFqIAMpA9ACIhAgA0H4AmopAwAiCyADKQOwAnwiCnwiEyADQegCaikDACAMIAMpA+ACIg98IA9UrXx8IhEgAykDgAJ8IgxCm5Svw/K1qN6Gf34iD0JtQgAQ/AMgA0HgAWogD0J/QgAQ/AMgA0HQAWogD0L///////////8AQgAQ/AMgA0GQAWogEiAaQgAQ/AMgA0HQAGogEiAcQgAQ/AMgA0EQaiASIBhCABD8AyADIBIgFUIAEPwDIANBgAFqIANBiAJqKQMAIAwgEVStfCINIAMpA8ABfCIdIBAgA0G4AmopAwAgCiALVK18IhIgAykDoAJ8Iht8Ig4gESATVK0gA0HYAmopAwAiESAQIBNWrXx8fCILfCIZIAMpA+ABIgp8IhYgA0H4AWopAwAgAykD8AEiDyAMfCAPVK18fCIUIAMpA5ABfCIXQpuUr8Pytajehn9+Ig9CbUIAEPwDIANB8ABqIA9Cf0IAEPwDIANB4ABqIA9C////////////AEIAEPwDIANBsANqIAkgAq19IgkgGkIAEPwDIANBoANqIAkgHEIAEPwDIANBkANqIAkgGEIAEPwDIANBgANqIAkgFUIAEPwDIANBQGsgA0GYAWopAwAgFCAXVq18IgwgAykDUHwiGCAKIANBqAJqKQMAIBIgG1atfCISIAMpA5ACfCIQIAMpA8ACfCITIAsgDlStIBEgDiAbVK18fHwiFSADKQOwAXwiGyAZIB1UrSADQcgBaikDACANIB1WrXx8fCIOfCIRIBQgFlStIANB6AFqKQMAIgsgFiAZVK18fHwiCnwiGSADKQNwIg98IhQgA0GIAWopAwAgAykDgAEiCSAXfCAJVK18fCIWIAMpA7ADfCIXQpuUr8Pytajehn9+IglCbUIAEPwDIANBMGogCUJ/QgAQ/AMgA0EgaiAJQv///////////wBCABD8AwJAAkAgA0EoaikDACADQegAaikDACADQdgBaikDACATIBVWrSADQcgCaikDACAQIBNWrXx8IgkgA0GYAmopAwAgECASVK18fCIQIAMpA6ABfCITIA4gG1StIANBuAFqKQMAIBUgG1atfHx8Ig0gAykD0AF8IhIgDVStfCASIAogEVStIAsgDiARVq18fHwiESASVK18IhIgDSATVK0gA0GoAWopAwAgECATVq18fCILIAkgEFatfCIKfCIOIAMpAwB8IhAgA0EYaikDACARIAMpAxB8IgkgEVStfCAJIBggGVatIANB2ABqKQMAIAwgGFatfHx8Ig0gCVStfHwiESADKQNgfCIMIBFUrXwgDCADQfgAaikDACIJIA0gD3wiDyANVK18IA8gDyAUIBZWrSAJIBQgGVStfHx8Ig9WrXx8IgkgDFStfCITIBAgEVatIANBCGopAwAgDiAQVq18fCINIA4gElStIAogC1StfHwiCnwiFCADKQOAA3wiDiADQZgDaikDACAJIAMpA5ADfCISIAlUrXwgEiADQagDaikDACADQbgDaikDACAWIBdWrXwiCSADKQOgA3wiCyAJVK18IAsgD3wiESALVK18fCILIBJUrXx8IhAgAykDIHwiDCAQVK18IAwgA0E4aikDACIPIAsgAykDMCIJfCISIAtUrXwgEiAPIAkgEXwiCyARVK18IAsgA0HIAGopAwAgAykDQCIJIBd8IAlUrXx8IhEgC1StfHwiCSASVK18fCILIAxUrXwiDCAOIBBWrSADQYgDaikDACAOIBRUrXx8IhIgEyAUVq0gCiANVK18fCIKfCIPQgBTIAwgD1atQgAgCiASVK19UnINAAJAIA9C////////////AFEEQEJ/IRMgC0J/UQ0BQv///////////wAhDwsgCyETIAkhCgwCCyAJQn9SBEBC////////////ACEPIAkhCgwCCyARQm1aDQBC////////////ACEPQn8hCgwBCyAJQgF8Ig0gEUJtVK0iDH0hCiALQgF8IhIgCUJ/UiAMIA1Wcq0iCX0hEyAPIAtCf1IgCSASVnKtfUL///////////8AfSEPIBFCE3whEQsgAyARNwO4CSADIAo3A7AJIAMgEzcDqAkgAyAPNwOgCSAAQSBqIANBoAlqIAFBIGoQiAMgAEEYaiADQcAMaikDADcDACAAQRBqIANBuAxqKQMANwMAIABBCGogA0GwDGopAwA3AwAgACADKQOoDDcDAAsgA0HwDGokAAupRwIBfzd+IwBB4BJrIgMkACADQfARaiABKQMYIgkgAikDGCIMQgAQ/AMgA0GQEWogASkDECIQIAxCABD8AyADQYARaiABKQMIIhIgDEIAEPwDIANB8BBqIAEpAwAiCiAMQgAQ/AMgA0HgEWogAykD8BEiBkIAQonHmaSu8IHph38Q/AMgA0HQEWogA0HoEWopAwAiBULH+vPD7YKjkDxCABD8AyADQcARaiAFQo2Vx8OW0trAl39CABD8AyADQbARaiAFQt2whYzotpGouH9CABD8AyADQaARaiAFQqnAxomuzpOyMEIAEPwDIANB4BBqIAIpAxAiEyAJQgAQ/AMgA0GAEGogEyAQQgAQ/AMgA0HwD2ogEyASQgAQ/AMgA0HgD2ogEyAKQgAQ/AMgA0HQEGogAykDwBEiGSADQfgRaikDACINIAMpA5ARfCIRfCIEIANB2BFqKQMAIAYgAykD0BEiBXwgBVStfHwiBiADKQPgEHwiB0IAQonHmaSu8IHph38Q/AMgA0HAEGogA0HYEGopAwAiBULH+vPD7YKjkDxCABD8AyADQbAQaiAFQo2Vx8OW0trAl39CABD8AyADQaAQaiAFQt2whYzotpGouH9CABD8AyADQZAQaiAFQqnAxomuzpOyMEIAEPwDIANB0A9qIAIpAwgiGCAJQgAQ/AMgA0HwDmogGCAQQgAQ/AMgA0HgDmogGCASQgAQ/AMgA0HQDmogGCAKQgAQ/AMgA0HAD2ogA0HoEGopAwAgBiAHVq18IhUgAykDgBB8IgggA0GYEWopAwAgDSARVq18Ig4gAykDgBF8Ig0gAykDsBF8IhEgBCAGVq0gA0HIEWopAwAgBCAZVK18fHwiC3wiBCADKQOwEHwiBiADQcgQaikDACADKQPAECIFIAd8IAVUrXx8IgcgAykD0A98IhZCAEKJx5mkrvCB6Yd/EPwDIANBsA9qIANByA9qKQMAIgVCx/rzw+2Co5A8QgAQ/AMgA0GgD2ogBUKNlcfDltLawJd/QgAQ/AMgA0GQD2ogBULdsIWM6LaRqLh/QgAQ/AMgA0GAD2ogBUKpwMaJrs6TsjBCABD8AyADQcAOaiACKQMAIhkgCUIAEPwDIANB4A1qIBkgEEIAEPwDIANB0A1qIBkgEkIAEPwDIANBwA1qIBkgCkIAEPwDIANBsA5qIANB2A9qKQMAIAcgFlatfCIPIAMpA/AOfCIaIANBiBFqKQMAIA0gDlStfCIUIAMpA/AQfCIOIAMpA6ARfCIXIAsgEVStIANBuBFqKQMAIA0gEVatfHx8Ig0gAykD8A98IhEgBCAIVK0gA0GIEGopAwAgCCAVVK18fHwiCCADKQOgEHwiFSAGIAdWrSADQbgQaikDACAEIAZWrXx8fCILfCIEIAMpA6APfCIGIANBuA9qKQMAIAMpA7APIgUgFnwgBVStfHwiByADKQPADnwiFkIAQonHmaSu8IHph38Q/AMgA0GgDmogA0G4DmopAwAiBULH+vPD7YKjkDxCABD8AyADQZAOaiAFQo2Vx8OW0trAl39CABD8AyADQYAOaiAFQt2whYzotpGouH9CABD8AyADQfANaiAFQqnAxomuzpOyMEIAEPwDAkACQCADQfgNaikDACADQYgPaikDACADQZgQaikDACANIBdUrSADQagRaikDACAOIBdWrXx8IANB+BBqKQMAIA4gFFStfHwiDiADKQPgD3wiBSAIIBFUrSADQfgPaikDACANIBFWrXx8fCINIAMpA5AQfCIRIA1UrXwgESALIBVUrSADQagQaikDACAIIBVWrXx8fCIIIBFUrXwgBSANVq0gA0HoD2opAwAgBSAOVK18fHwiDiADKQPQDnwiBSADQegOaikDACAIIAggAykD4A58IghWrXwgCCAIIAQgGlStIANB+A5qKQMAIA8gGlatfHx8IghWrXx8Ig0gAykDgA98IhEgDVStfCARIANBmA9qKQMAIAggCCADKQOQD3wiCFatfCAIIAggBiAHVq0gA0GoD2opAwAgBCAGVq18fHwiCFatfHwiBCARVK18IAUgDVatIANB2A5qKQMAIAUgDlStfHx8IhEgAykDwA18IgUgA0HYDWopAwAgBCAEIAMpA9ANfCIEVq18IAQgBCADQegNaikDACADQcgO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IA9UrXwiDyADKQPwCHwiECADKQPgBnwiEiAXIBtWrSADQfgGaikDACAOIBdWrXx8fCIKIAMpA6AIfCIOIAQgCFStIANB6AdqKQMAIAggFFStfHx8IgggAykDkAZ8IhcgBiAHVq0gA0GoBmopAwAgBCAGVq18fHwiFHwiBCADKQPABXwiBiADQdgFaikDACADKQPQBSIFIAt8IAVUrXx8IgcgAykDkAV8IhVCAEKJx5mkrvCB6Yd/EPwDIANB8ARqIANBiAVqKQMAIgVCx/rzw+2Co5A8QgAQ/AMgA0HgBGogBUKNlcfDltLawJd/QgAQ/AMgA0HQBGogBULdsIWM6LaRqLh/QgAQ/AMgA0HABGogBUKpwMaJrs6TsjBCABD8AyADQZgGaikDACELIANBqAhqKQMAIRsgA0HoBmopAwAhHCADQfgIaikDACEgIAMpA+AIIR0gAykDgAYhHiADKQOQCCEhIANBmAhqKQMAISIgA0HYB2opAwAhIyADQYgGaikDACEkIANB6AhqKQMAISUgAykD0AghJiADKQOgBSEnIAMpA7AFISggA0G4BWopAwAhKSADQcgFaikDACEqIAMpA4AIISsgA0GICGopAwAhLCADQZgFaikDACEtIAMpA8AHIS4gA0HIB2opAwAhLyADQagFaikDACEwIANB2AhqKQMAITEgAykDwAghMiADKQPABCEzIANByARqKQMAITQgAykD0AQhNSADQdgEaikDACE2IAMpA+AEITcgA0HoBGopAwAhOCADKQPwBCEFIANB+ARqKQMAITkgA0HICGopAwAhOiADQYASaiADQaASaiADQcASahCCAwJAAkAgNCAzIDIgMCAnICYgJCAeIB0gCiASVK0gHCAQIBJWrXx8ICAgDyAQVq18fCIPfCIQIAggDlStIBsgCiAOVq18fHwiEnwiCiASVK18IAogFCAXVK0gCyAIIBdWrXx8fCIIIApUrXwgECASVq0gJSAPIBBWrXx8fCIKfCIQICIgCCAIICF8IghWrXwgCCAIIAQgCVStICMgCSAfVK18fHwiCFatfHwiCXwiEiAJVK18IBIgKSAIIAggKHwiCFatfCAIIAYgB1atICogBCAGVq18fHwiDiAIVK18fCIEIBJUrXwgCSAQVK0gMSAKIBBWrXx8fCISfCIIICwgBCAEICt8IgRWrXwg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BEKNlcfDltLawJd/Ug0AQsf688PtgqOQPCEHIAwiBULH+vPD7YKjkDxRDQELIAUgB1oNACAGIQUgBCEHDAELIARC8+q4vOmtpb/oAHwiBSAMQsf688PtgqOQPFStIgh9IQcgBkKjz/rzl8nu18cAfCIJIARCjZXHw5bS2sCXf1QgBSAIVHKtIgR9IQUgECAGQt2whYzotpGouH9UIAQgCVZyrX1CqcDGia7Ok7IwfSEQIAxCx/rzw+2Co5A8fSEMCyAAIBA3AyAgACADKQOAEjcDACAAQThqIAw3AwAgAEEwaiAHNwMAIABBKGogBTcDACAAQQhqIANBiBJqKQMANwMAIABBEGogA0GQEmopAwA3AwAgAEEYaiADQZgSaikDADcDACADQeASaiQAC5BKAlp/B34jAEHQF2siBSQAIAUgAjYCECAFQQw2AgwCQAJAAkACQAJAAkACQCACQQxGBEAgBSAENgIUIAIgBEcNAQJAAkACQAJAAkACQAJAIAJBAmsOCwEAAAACAAAAAAADAAsgBUEANgKoBiAFQQE2ApwGIAVByKvBADYCmAYgBUIENwKgBiAFQZgGakGArsEAEM0EAAtBudHCAC0AABpBwABBCBCLBSICDQIMCgtBudHCAC0AABpBwAFBCBCLBSICDQIMCgtBudHCAC0AABpBgANBCBCLBSICDQIMCgsgAiABKQMAIl83AwAgAiABKQMgImA3AyAgBUE4aiBgNwMAIAJBGGogAUEYaikDACJgNwMAIAJBEGogAUEQaikDACJhNwMAIAJBCGogAUEIaikDACJiNwMAIAJBKGogAUEoaikDACJjNwMAIAJBMGogAUEwaikDACJkNwMAIAJBOGogAUE4aikDACJlNwMAIAVBKGogYTcDACAFQTBqIGA3AwAgBUFAayBjNwMAIAVByABqIGQ3AwAgBUHQAGogZTcDACAFIGI3AyAgAkHAABCUBUG50cIALQAAGiAFIF83AxhBwABBCBCLBSIBRQ0HIAEgAykDACJfNwMAIAEgAykDICJgNwMgIAVB+ABqIGA3AwAgAUEYaiADQRhqKQMAImA3AwAgAUEQaiADQRBqKQMAImE3AwAgAUEIaiADQQhqKQMAImI3AwAgAUEoaiADQShqKQMAImM3AwAgAUEwaiADQTBqKQMAImQ3AwAgAUE4aiADQThqKQMA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AykDYDcDYCABIAMpA4ABNwOAASABQYgBaiADQYgBaikDADcDACABQZABaiADQZABaikDADcDACABQZgBaiADQZgBaikDADcDACABIAMpA6ABNwOgASABQagBaiADQagBaikDADcDACABQbABaiADQbABaikDADcDACABQbgBaiADQbgBaikDADcDACABKQMAIV8gBCAlQbgBEK0FGiABQcABEJQFIAVBuAtqICApAwA3AwAgBUHAC2ogEykDADcDACAFQcgLaiAUKQMANwMAIBUgISkDADcDACACIBYpAwA3AwAgBiAXKQMANwMAIAogBSkD8AY3AwAgCyAiKQMANwMAIAwgGCkDADcDACAHIBkpAwA3AwAgBSAFKQOwBjcDsAsgBSAFKQPQBjcD0BUgCCAaKQMANwMAIAkgGykDADcDACANICMpAwA3AwAgDiAFKQOwBzcDACAPICQpAwA3AwAgECAcKQMANwMAIBEgHSkDADcDACAFQaALaiASKQMANwMAIAVBqAtqIB4pAwA3AwAgBSAFKQOQBzcDkBYgBSAFKQOYBjcDmAsgBUGIDGogBykDADcDACAFQYAMaiAMKQMANwMAIAVB+AtqIAspAwA3AwAgBUHwC2ogCikDADcDACAFQegLaiAGKQMANwMAIAVB4AtqIAIpAwA3AwAgBUHYC2ogFSkDADcDACAFQcgMaiARKQMANwMAIAVBwAxqIBApAwA3AwAgBUG4DGogDykDADcDACAFQbAMaiAOKQMANwMAIAVBqAxqIAgpAwA3AwAgBUGgDGogCSkDADcDACAFQZgMaiANKQMANwMAIAUgXzcDkAsgBSAFKQPQFTcD0AsgBSAFKQOQFjcDkAwgBCAFQZALahCiAiAFKQOYBlBFDQQgBUGQFmoiASASQcABEK0FGiAFQdgBaiICIAVB0AlqIAEQjwIgBCACELsBQbnRwgAtAAAaQcABQQgQiwUiAUUNByABIAUpA5gGNwMAIAEgBSkDuAY3AyAgASAFKQPYBjcDQCABQRhqIAVBsAZqKQMANwMAIAFBEGogHikDADcDACABQQhqIBIpAwA3AwAgAUEoaiATKQMANwMAIAFBMGogFCkDADcDACABQThqIAVB0AZqKQMANwMAIAFByABqIBYpAwA3AwAgAUHQAGogFykDADcDACABQdgAaiAFQfAGaikD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aikDADcDACABQcgAaiADQcgAaikDADcDACABQdAAaiADQdAAaikDADcDACABQdgAaiADQdgAaikDADcDACABQfgAaiADQfgAaikDADcDACABQfAAaiADQfAAaikDADcDACABQegAaiADQegAaikDADcDACABIAMpA2A3A2AgASADKQOAATcDgAEgAUGIAWogA0GIAWopAwA3AwAgAUGQAWogA0GQAWopAwA3AwAgAUGYAWogA0GYAWopAwA3AwAgASADKQOgATcDoAEgAUGoAWogA0GoAWopAwA3AwAgAUGwAWogA0GwAWopAwA3AwAgAUG4AWogA0G4AWopAwA3AwAgAUHYAWogA0HYAWopAwA3AwAgAUHQAWogA0HQAWopAwA3AwAgAUHIAWogA0HIAWopAwA3AwAgASADKQPAATcDwAEgAUH4AWogA0H4AWopAwA3AwAgAUHwAWogA0HwAWopAwA3AwAgAUHoAWogA0HoAWopAwA3AwAgASADKQPgATcD4AEgAUGYAmogA0GYAmopAwA3AwAgAUGQAmogA0GQAmopAwA3AwAgAUGIAmogA0GIAmopAwA3AwAgASADKQOAAjcDgAIgAUG4AmogA0G4AmopAwA3AwAgAUGwAmogA0GwAmopAwA3AwAgAUGoAmogA0GoAmopAwA3AwAgASADKQOgAjcDoAIgAUHYAmogA0HYAmopAwA3AwAgAUHQAmogA0HQAmopAwA3AwAgAUHIAmogA0HIAmopAwA3AwAgASADKQPAAjcDwAIgAUH4AmogA0H4AmopAwA3AwAgAUHwAmogA0HwAmopAwA3AwAgAUHoAmogA0HoAmopAwA3AwAgASADKQPgAjcD4AIgASkDACFfIBkgH0H4AhCtBRogAUGAAxCUBSAFQfgQaiAmKQMANwMAIAVBgBFqIBopAwA3AwAgBUGIEWogGykDADcDACAFQdgTaiIBICcpAwA3AwAgBUHgE2oiAyAcKQMANwMAIAVB6BNqIiYgHSkDADcDACAFQfATaiInIAUpA/AGNwMAIAVB+BNqIh8gKykDADcDACAFQYAUaiIpIB4pAwA3AwAgBUGIFGoiKiAgKQMANwMAIAUgBSkDsAY3A/AQIAUgBSkD0AY3A9ATIAVBqBRqIisgISkDADcDACAFQaAUaiIsICIpAwA3AwAgBUGYFGoiLSAxKQMANwMAIAVBsBRqIi4gBSkDsAc3AwAgBUG4FGoiLyBBKQMANwMAIAVBwBRqIjAgIykDADcDACAFQcgUaiIxICQpAwA3AwAgBUHgEGogJSkDADcDACAFQegQaiAyKQMANwMAIAUgBSkDkAc3A5AUIAUgBSkDmAY3A9gQIAIgRCkDADcDACAEIDMpAwA3AwAgBiA0KQMANwMAIAogNSkDADcDACALIDYpAwA3AwAgDCBFKQMANwMAIAcgBSkD8Ac3AwAgBSAFKQOQCDcDkBUgCCAFKQOwCDcDACAJIEYpAwA3AwAgDSA3KQMANwMAIA4gOCkDADcDACAPIDkpAwA3AwAgECA6KQMANwMAIBEgRykDADcDACAFIAUpA9AINwPQFSASIDspAwA3AwAgEyA8KQMANwMAIBQgSCkDADcDACAVIAUpA/AINwMAIBYgPSkDADcDACAXID4pAwA3AwAgGCBJKQMANwMAIAUgBSkD0Ac3A9AUIEogCikDADcDACBLIAspAwA3AwAgTCAMKQMANwMAIE0gBykDADcDACBOIBYpAwA3AwAgTyAXKQMANwMAIFAgGCkDADcDACAFIAUpA9AUNwOQFiBRIA4pAwA3AwAgUiANKQMANwMAIFMgCSkDADcDACBUIAgpAwA3AwAgVSAGKQMANwMAIFYgBCkDADcDACBXIAIpAwA3AwAgBSAFKQOQFTcD0BYgWCASKQMANwMAIFkgEykDADcDACBaIBQpAwA3AwAgWyAVKQMANwMAIFwgDykDADcDACBdIBApAwA3AwAgXiARKQMANwMAIAUgBSkD0BU3A5AXIAUgXzcD0BAgBUHIEWogKikDADcDACAFQcARaiApKQMANwMAIAVBuBFqIB8pAwA3AwAgBUGwEWogJykDADcDACAFQagRaiAmKQMANwMAIAVBoBFqIAMpAwA3AwAgBUGYEWogASkDADcDACAFIAUpA9ATNwOQESAFQYgSaiAxKQMANwMAIAVBgBJqIDApAwA3AwAgBUH4EWogLykDADcDACAFQfARaiAuKQMANwMAIAVB6BFqICspAwA3AwAgBUHgEWogLCkDADcDACAFQdgRaiAtKQMANwMAIAUgBSkDkBQ3A9ARIAVBkBJqIChBwAEQrQUaIAVBmANqIQsgBUHQDGohDCMAQYAMayIBJAAgAUGACWoiBCAFQdAQaiICEIEBIAFByApqQgA3AwAgAUHQCmpCADcDACABQdgKakIANwMAIAFB4ApqQgA3AwAgAUHoCmpCADcDACABQfAKakIANwMAIAFB+ApqQgA3AwAgAUGYBmoiBkGousAAKQMANwMAIAFBkAZqIgpBoLrAACkDADcDACABQYgGaiIDQZi6wAApAwA3AwAgAUGgBmpCADcDACABQagGaiIHQgA3AwAgAUGwBmoiCEIANwMAIAFBuAZqIglCADcDACABQgA3A8AKIAFBkLrAACkDADcDgAYgAUGgC2pCADcDACABQcgLakIANwMAIAFB0AtqQgA3AwAgAUHYC2pCADcDACABQeALakIANwMAIAFB6AtqQgA3AwAgAUHwC2pCADcDACABQfgLakIANwMAIAFBuAtqIAkpAwA3AwAgAUGwC2ogCCkDADcDACABQagLaiAHKQMANwMAIAFBmAtqIAYpAwA3AwAgAUGQC2ogCikDADcDACABQYgLaiADKQMANwMAIAFCADcDwAsgASABKQOABjcDgAsgAUGABmoiAyACQcABaiIHEIEBIAEgAUHACmogAxCPAiABQcAEaiIIIAQgARDzASABQYAFaiABQcAJaiIJIAFBQGsQ8wEgAUHABWogAUGACmoiDSABQYABahDzASADIAgQogIgASkDkAYhXyABKQOIBiFgAkAgASkDgAZQBEAgAUGQA2ogBkGwARCtBRogASBfNwOIAyABIGA3A4ADIAMgAiABQYADaiIDEI8CIAQgBxCgAyAJIAJBgAJqEKADIA0gAkHAAmoQoAMgASADQcABEK0FIgFBwAdqIAFBgAlqIAEQjwIgASkDgAYhXyABKQOIBiFgIAFBEGogCkHwAhCtBRogASBgNwMIIAEgXzcDACALIAwgARCgAiABQYAMaiQADAELIAEgXzcDiAYgASBgNwOABkG4tsAAQSsgAUGABmpB5LbAAEHgt8AAEP0DAAsgGSALEPkBQbnRwgAtAAAaQYADQQgQiwUiAUUNByABIAUpA5gGNwMAIAEgBSkDuAY3AyAgASAFKQPYBjcDQCABQRhqIAVBsAZqKQMANwMAIAFBEGogMikDADcDACABQQhqICUpAwA3AwAgAUEoaiAaKQMANwMAIAFBMGogGykDADcDACABQThqIAVB0AZqKQMANwMAIAFByABqIBwpAwA3AwAgAUHQAGogHSkDADcDACABQdgAaiAFQfAGaikDADcDACABQfgAaiAFQZAHaikDADcDACABQfAAaiAgKQMANwMAIAFB6ABqIB4pAwA3AwAgASAFKQP4BjcDYCABQZgBaiAFQbAHaikDADcDACABQZABaiAhKQMANwMAIAFBiAFqICIpAwA3AwAgASAFKQOYBzcDgAEgAUG4AWogBUHQB2opAwA3AwAgAUGwAWogJCkDADcDACABQagBaiAjKQMANwMAIAEgBSkDuAc3A6ABIAFB2AFqIAVB8AdqKQMANwMAIAFB0AFqID0pAwA3AwAgAUHIAWogPikDADcDACABIAUpA9gHNwPAASABQfgBaiAFQZAIaikDADcDACABQfABaiA1KQMANwMAIAFB6AFqIDYpAwA3AwAgASAFKQP4BzcD4AEgAUGYAmogBUGwCGopAwA3AwAgAUGQAmogNCkDADcDACABQYgCaiAzKQMANwMAIAEgBSkDmAg3A4ACIAFBuAJqIAVB0AhqKQMANwMAIAFBsAJqIDgpAwA3AwAgAUGoAmogNykDADcDACABIAUpA7gINwOgAiABQdgCaiAFQfAIaikDADcDACABQdACaiA5KQMANwMAIAFByAJqIDopAwA3AwAgASAFKQPYCDcDwAIgAUH4AmogBUGQCWopAwA3AwAgAUHwAmogOykDADcDACABQegCaiA8KQMANwMAIAEgBSkD+Ag3A+ACIABBDDYCCCAAIAE2AgQgAEEMNgIADAQLIAVBADYCmAYgBUEQaiAFQQxqIAVBmAZqQeCtwQAQ0QQACyAFQQA2ApgGIAVBFGogBUEMaiAFQZgGakHwrcEAENEEAAsgBSADNgKgBiAFIAE2ApwGIAUgAjYCmAZBhKbBAEErIAVBmAZqQdCtwQBBoK7BABD9AwALIAUgBSkDqAY3A5gWIAUgBSkDoAY3A5AWQeTZwQBBKyAFQZAWakGQ2sEAQYjbwQAQ/QMACyAFQdAXaiQADwtBCEHAABCDBQALQQhBwAEQgwUAC0EIQYADEIMFAAv+PQIGfxZ+IwBBsAtrIgMkAAJAAkACQAJAAkACQAJAIAFB2JnBAEEgEK4FRQRAIAFBIGpB2JnBAEEgEK4FRQ0BCyACQdiZwQBBIBCuBUUEQCACQSBqQdiZwQBBIBCuBUUNAgsCQCABIAJBIBCuBUUEQCABQSBqIgUgAkEgakEgEK4FRQ0BIABCADcDACAAQThqQgA3AwAgAEEwakIANwMAIABBKGpCADcDACAAQSBqQgA3AwAgAEEYakIANwMAIABBEGpCADcDACAAQQhqQgA3AwAMCAsgASkDICIUIQ0gAikDICIVIQwCfgJAIBQgFVINACABKQMoIgsgAikDKCIMUgRAIAshDQwBCyABKQMwIgogAikDMCIMUgRAIAohDQwBCyAKIRAgASkDOCINIQ4gCyANIAIpAzgiDFENARoLIAwgDVgNBCABKQMoIQsgASkDMCEKIAIpAzAhECABKQM4IQ0gAikDOCEOIAIpAygLIQkgECAKfSITIA0gDlatIg99IQwgCSALfSIRIA8gE1YgCiAQVnKtIhB9IQogCSALVCAQIBFWciEFIBUgFH0hESAOIA19IQ0MBQsgA0HgB2oQzAIgAykD+AchGSADKQPwByEaIAMpA+gHIRsgAykD4AchFiADKAL0CSIEBEAgAygC+AkgBEECdBCUBQsCQCADKALECSIERQ0AIAQgBEEMbEETakF4cSIIakEJaiIERQ0AIAMoAsAJIAhrIAQQlAULIANB+ApqQgA3AwAgA0HwCmpCADcDACADQgA3A+gKIANC85aAgDA3A4ALIANBgAdqIAEpAxAiECABKQMYIhFCABD8AyADQeAGaiABKQMIIg0gEUIAEPwDIANBsAZqIAEpAwAiEyARQgAQ/AMgA0HQBmogDSAQQgAQ/AMgA0GgBmogEyAQQgAQ/AMgA0GQBmogEyANQgAQ/AMgA0GwB2ogESARQgAQ/AMgA0HwBmogECAQQgAQ/AMgA0HABmogDSANQgAQ/AMgA0GABmogEyATQgAQ/AMgA0GgB2ogAykDsAciFEKx6pSR3aOCnFh+IglCr/j//29CABD8AyADQZAHaiAJQn9CABD8AyADQcgGaikDACEPIAMgA0H4BmopAwAgAykD8AYiCSADQYgHaikDACILIAMpA+AGfCIOQgGGIAMpA4AHIgpCP4iEfCIMIAlUrXwgDCADQbgHaikDACIJIApCAYZ8IhUgCVStfCISIAxUrXwiCiADQegGaikDACALIA5WrXwiCSADKQOwBnwiFyADKQPQBnwiHUIBhiAOQj+IhHwiDiAKVK0iCyADKQPABnwiGCADQbgGaikDACAJIBdW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KQMANwMAIAtBCGogDkEIaikDADcDACAEQTBqIQQgB0EBayIHDQALCyADIAU2AtwBIAMgBjYC2AEgAyAFNgLUASAIIA1IDQQgCCANa0EBaiERAkAgDSAIa0EBRgRAQQghDgwBC0EAIQcgEUEwbCIEQQBIIBFBqtWqFUtyDQNBudHCAC0AABpBCCEHIARBCBCLBSIORQ0DIA4hBCAIIA1HBEAgCEEBaiEHA0AgBEIANwMAIARBKGpCADcDACAEQSBqQgA3AwAgBEEYakIANwMAIARBEGpCADcDACAEQQhqQgA3AwAgBEEwaiEEIBAgB0EBayIHRw0ACwsgBEIANwMAIARBKGpCADcDACAEQSBqQgA3AwAgBEEYakIANwMAIARBEGpCADcDACAEQQhqQgA3AwALIAlBMGwhBANAIARFDQIgCUEBayEJIARBMGsiBCAMaiIHQeCYwABBMBCuBUUNAAsgCUEASA0BIANBuAJqIgQgB0EoaikDADcDACADQbACaiIJIAdBIGopAwA3AwAgA0GoAmoiCyAHQRhqKQMANwMAIANBoAJqIgogB0EQaikDADcDACADQZgCaiIMIAdBCGopAwA3AwAgAyAHKQMANwOQAiADQZACakHgmMAAQTAQrgVFDQMgA0GQA2pCADcDACADQYgDakIANwMAIANBgANqQgA3AwAgA0H4AmpCADcDACADQgA3A/ACIANCATcDmAMgA0HIA2ogBCkDADcDACADQcADaiAJKQMANwMAIANBuANqIAspAwA3AwAgA0GwA2ogCikDADcDACADQagDaiAMKQMANwMAIAMgAykDkAI3A6ADIANB+ANqQbiZwAApAwA3AwAgA0HwA2pBsJnAACkDADcDACADQegDakGomcAAKQMANwMAIANB4ANqQaCZwAApAwA3AwAgA0HYA2pBmJnAACkDADcDACADQZCZwAApAwA3A9ADIANBqARqQeiZwAApAwA3AwAgA0GgBGpB4JnAACkDADcDACADQZgEakHYmcAAKQMANwMAIANBkARqIgdB0JnAACkDADcDACADQYgEakHImcAAKQMANwMAIANBwJnAACkDADcDgAQgA0HoBGpCADcDACADQeAEakIANwMAIANB2ARqQgA3AwAgA0HQBGoiBEIANwMAIANByARqQgA3AwAgA0IANwPABCADQaADaiAD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1aqBgICAwIDGAHwhGgsgAyAaNwOoBCADIB43A6AEIAMgJDcDmAQgAyAfNwOQBCADICA3A4gEIAMgIzcDgAQgCiARSQRAQQghCSADQYgEaikDACEaIANBkARqKQMAIRsgA0GYBGopAwAhHiADQaAEaikDACEdIANBqARqKQMAIRwgDiAKQTBsIg9qIgUgAykDgAQ3AwAgBUEoaiAcNwMAIAVBIGogHTcDACAFQRhqIB43AwAgBUEQaiAbNwMAIAVBCGogGjcDACADQZACaiACIANBgARqEMsCQQghCyAIIA1HBEBBACEEIA9BAEggCkGq1aoVS3INA0G50cIALQAAGkEIIQQgD0EIEIsFIgtFDQMgCyEEAkAgByANRg0AIApBAWsiBUEHcSANIAhrQQFqQXhNBEAgBUF4cSEGA0AgBEIANwMAIARBKGpCADcDACAEQSBqQgA3AwAgBEEYakIANwMAIARBEGpCADcDACAEQQhqQgA3AwAgBEEwakIANwMAIARBOGpCADcDACAEQUBrQgA3AwAgBEHIAGpCADcDACAEQdAAakIANwMAIARB2ABqQgA3AwAgBEHgAGpCADcDACAEQegAakIANwMAIARB8ABqQgA3AwAgBEH4AGpCADcDACAEQYABakIANwMAIARBiAFqQgA3AwAgBEG4AWpCADcDACAEQbABakIANwMAIARBqAFqQgA3AwAgBEGgAWpCADcDACAEQZgBakIANwMAIARBkAFqQgA3AwAgBEHAAWpCADcDACAEQcgBakIANwMAIARB0AFqQgA3AwAgBEHYAWpCADcDACAEQeABakIANwMAIARB6AFqQgA3AwAgBEHwAWpCADcDACAEQfgBakIANwMAIARBgAJqQgA3AwAgBEGIAmpCADcDACAEQZACakIANwMAIARBmAJqQgA3AwAgBEHIAmpCADcDACAEQcACakIANwMAIARBuAJqQgA3AwAgBEGwAmpCADcDACAEQagCakIANwMAIARBoAJqQgA3AwAgBEH4AmpCADcDACAEQfACakIANwMAIARB6AJqQgA3AwAgBEHgAmpCADcDACAEQdgCakIANwMAIARB0AJqQgA3AwAgBEGAA2ohBCAGQQhrIgYNAAsLRQ0AIAggF2pBB3EhBgNAIARCADcDACAEQShqQgA3AwAgBEEgakIANwMAIARBGGpCADcDACAEQRBqQgA3AwAgBEEIakIANwMAIARBMGohBCAGQQFrIgYNAAsLIARCADcDACAEQShqQgA3AwAgBEEgakIANwMAIARBGGpCADcDACAEQRBqQgA3AwAgBEEIakIANwMACyADIAo2AvgCIAMgCzYC9AIgAyAKNgLwAiADKAKUAiEWAkACQAJAIAMoApgCIgZFBEBBACEFDAELQQAhBCAGQTBsIgVBAEggBkGq1aoVS3INBkG50cIALQAAGkEIIQQgBUEIEIsFIglFDQZBACEHIAYhBANAIAUgB0cEQCAHIAlqIgwgByAWaiIQKQMANwMAIAxBKGogEEEoaikDADcDACAMQSBqIBBBIGopAwA3AwAgDEEYaiAQQRhqKQMANwMAIAxBEGogEEEQaikDADcDACAMQQhqIBBBCGopAwA3AwAgB0EwaiEHIARBAWsiBA0BCwsgBg0BCyALIA9qIAkgBRCtBRogAyAVIAYgCGpqIgQ2AvgCDAELIANB8AJqIAogBhDSAyADKAL0AiILIAMoAvgCIgRBMGxqIAkgBRCtBRogAyAEIAZqIgQ2AvgCIAkgBRCUBQsgAygC8AIhBSADQQA6ANgDIAMgCzYC0AMgAyALIARBMGxqNgLUAyADQaADaiADQdADahDAAiADKAKoAyIIQQJPBEAgCEEBdiEHIAMoAqQDIgQgCEEwbGpBMGshBgNAIAQpAwAhGiAEIAYpAwA3AwAgA0HoBGoiCCAEQShqIgkpAwA3AwAgA0HgBGoiCiAEQSBqIgwpAwA3AwAgA0HYBGoiECAEQRhqIg8pAwA3AwAgA0HQBGoiGCAEQRBqIhMpAwA3AwAgA0HIBGoiGSAEQQhqIhQpAwA3AwAgCSAGQShqIgkpAwA3AwAgDCAGQSBqIgwpAwA3AwAgDyAGQRhqIg8pAwA3AwAgEyAGQRBqIhMpAwA3AwAgFCAGQQhqIhQpAwA3AwAgAyAaNwPABCAJIAgpAwA3AwAgDCAKKQMANwMAIA8gECkDADcDACATIBgpAwA3AwAgFCAZKQMANwMAIAYgAykDwAQ3AwAgBkEwayEGIARBMGohBCAHQQFrIgcNAAsLIANByAJqIANBqANqKAIANgIAIAMgAykCoAM3A8ACIAUEQCALIAVBMGwQlAULIAMoApACIgUEQCAWIAVBMGwQlAULIANB2ANqIANB3AFqIgUoAgA2AgAgAyADKQLUATcD0AMgA0HABGoiBCADQcACahCtAiADQdQBaiADQdADaiAEEO8BIAUoAgAiBUEwbCEEIAMoAtgBIQYgBSEIA0ACQCAERQRAQX8hCAwBCyAIQQFrIQggBEEwayIEIAZqQeCYwABBMBCuBUUNAQsLIAggDUgNBAwBCwsgCCANayARQbyewAAQmAQACyAEIA8QgwUACyAEIAUQgwUACyADQQA6AIgEIAMgDjYCgAQgAyAOIBFBMGwiBWo2AoQEIANBtARqIANBgARqEMACIAMoArwEIgJBAk8EQCACQQF2IQcgAygCuAQiBCACQTBsakEwayEGA0AgBCkDACEaIAQgBikDADcDACADQegEaiICIARBKGoiCCkDADcDACADQeAEaiINIARBIGoiCSkDADcDACADQdgEaiILIARBGGoiCikDADcDACADQdAEaiIRIARBEGoiDCkDADcDACADQcgEaiIQIARBCGoiDykDADcDACAIIAZBKGoiCCkDADcDACAJIAZBIGoiCSkDADcDACAKIAZBGGoiCikDADcDACAMIAZBEGoiDCkDADcDACAPIAZBCGoiDykDADcDACADIBo3A8AEIAggAikDADcDACAJIA0pAwA3AwAgCiALKQMANwMAIAwgESkDADcDACAPIBApAwA3AwAgBiADKQPABDcDACAGQTBrIQYgBEEwaiEEIAdBAWsiBw0ACwsgDiAFEJQFIABBFGogA0HcAWooAgA2AgAgACADKQLUATcCDCAAIAMpArQENwIAIABBCGogA0G8BGooAgA2AgAgASgCACIARQ0AIBIgAEEwbBCUBQsgA0HwBGokAAuLPAILfyJ+IwBBoAprIgMkACADQdgIakIANwMAIANB0AhqQgA3AwAgA0HICGpCADcDACADQcAIakIANwMAIANBuAhqQgA3AwAgA0HoCGpCADcDACADQfAIakIANwMAIANB+AhqQgA3AwAgA0GACWpCADcDACADQgA3A7AIIANCADcD4AggA0IBNwOICQJAAkACQCACIANBsAhqIgVBMBCuBQRAIAIgA0HgCGpBMBCuBUUNASABKQMoIRogASkDICESIAEpAxghEyABKQMQIRcgASkDCCEQIAEpAwAhGCADQfgJaiIIQgA3AwAgA0GACmoiC0IANwMAIANBiApq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EVZyrSIQfSIXNwPQCSADIA5C19mumuT26Y3LAH0iESATQr+llJzP8NK75ABUIA8gEFRyrSITfSIQNwPICSADIBIgDkLX2a6a5PbpjcsAVCARIBNUcq19QprN/8ujvcSAGn0iGDcDwAkLIAMpA+gJIRogAykD4AkhEiADKQPYCSETIAIQ+gIgCEIANwMAIAtCADcDACAMQgA3AwAgDUIANwMAIANCADcD8AkgAyACKQMoQgGDNwOYCiADQfAJaiADQbAIakEwEK4FRQ0ACwsCQCACIANBsAhqQTAQrgVFDQAgAyAaNwO4CSADIBI3A7AJIAMgEzcDqAkgAyAXNwOgCSADIBA3A5gJIAMgGDcDkAkgAhD6AiACIANBsAhqQTAQrgVFDQAgAykDiAkhHCADKQOACSEmIAMpA/gIIR0gAykD8AghHiADKQPoCCEfIAMpA+AIISADQCADQbACaiADKQOwCSIOIAMpA7gJIg9CABD8AyADQcACaiADKQOoCSIRIA9CABD8AyADQdACaiADKQOgCSIUIA9CABD8AyADQeACaiADKQOYCSIVIA9CABD8AyADQfACaiADKQOQCSIWIA9CABD8AyADQZADaiARIA5CABD8AyADQaADaiAUIA5CABD8AyADQbADaiAVIA5CABD8AyADQcADaiAWIA5CABD8AyADQeADaiAUIBFCABD8AyADQfADaiAVIBFCABD8AyADQYAEaiAWIBFCABD8AyADQaAEaiAVIBRCABD8AyADQbAEaiAWIBRCABD8AyADQdAEaiAWIBVCABD8AyADQYADaiAPIA9CABD8AyADQdADaiAOIA5CABD8AyADQZAEaiARIBFCABD8AyADQcAEaiAUIBRCABD8AyADQeAEaiAVIBVCABD8AyADQfAEaiAWIBZCABD8AyADQcgDaikDACEVIANB+ANqKQMAIRYgAykDgAQhGSADQYgEaikDACEbIAMpA6AEISEgA0GoBGopAwAhIiADKQOwBCEqIANByARqKQMAIScgAyADQZgEaikDACADQdgDaikDACADQYgDaikDACIOIAMpA7ACIg9CAYZ8IisgDlStIhEgA0G4AmopAwAiFCADKQPAAnwiDkIBhiAPQj+IhHwiDyARVK18IA8gAykD0AN8IiwgD1StfCIjIANByAJqKQMAIA4gFFStfCIUIAMp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iuv//9UeUg0BIAMpA+gJQqrV/v///7//uX9YDQELIAMgAykD6AkiD0LVqoGAgIDAgMYAfDcD6AkgAyADKQPgCSIRQv//z4rr///VHn0iFCAPQqvV/v///7//uX9UrSIPfTcD4AkgAyADKQPYCSIVQqTsw7WP1LSY5wB9IhYgEUL//8+K6///1R5UIA8gFFZyrSIPfTcD2AkgAyADKQPQCSIRQr+llJzP8NK75AB9IhQgFUKk7MO1j9S0mOcAVCAPIBZWcq0iD303A9AJIAMgAykDyAkiFULX2a6a5PbpjcsAfSIWIBFCv6WUnM/w0rvkAFQgDyAUVnKtIg99NwPICSADIA4gFULX2a6a5PbpjcsAVCAPIBZWcq19QprN/8ujvcSAGn03A8AJCyADQbgJaiADQegJaikDADcDACADQbAJaiADQeAJaikDADcDACADQagJaiADQdgJaikDADcDACADQaAJaiADQdAJaikDADcDACADQZgJaiADQcgJaikDADcDACADIAMpA8AJNwOQCSADIBwgAikDKIM3A5gKIAMgJiACKQMggzcDkAogAyAdIAIpAxiDNwOICiADIB4gAikDEIM3A4AKIAMgHyACKQMIgzcD+AkgAyAgIAIpAwCDNwPwCQJAIANB8AlqIANB4AhqQTAQrgUNAEIAIRZBKCEBQgAhFEIAIRFCACEPQgAhDkIAIRUDQCADQfAAaiADQZAJaiABaikDACIZIBpCABD8AyADQYABaiAZIBJCABD8AyADQZABaiAZIBNCABD8AyADQaABaiAZIBdCABD8AyADQbABaiAZIBBCABD8AyADQcABaiAZIBhCABD8AyADQeAAaiADKQNwIhsgFXwiGUIAQv3/8//P///5iX8Q/AMgA0HQAGogA0HoAGopAwAiFUKr1f7///+//7l/QgAQ/AMgA0FAayAVQv//z4rr///VHkIAEPwDIANBMGogFUKk7MO1j9S0mOcAQgAQ/AMgA0EgaiAVQr+llJzP8NK75ABCABD8AyADQRBqIBVC19mumuT26Y3LAEIAEPwDIAMgFUKazf/Lo73EgBpCABD8AyADQQhqKQMAIAMpA8ABIiEgFnwiFiADQbgBaikDACADKQOwASIVIBR8IhQgFVStfCAUIANBqAFqKQMAIAMpA6ABIhUgEXwiESAVVK18IBEgA0GYAWopAwAgAykDkAEiFSAPfCIPIBVUrXwgDyADQYgBaikDACADKQOAASIVIA58Ig4gFVStfCAOIANB+ABqKQMAIBkgG1StfHwiFSAOVK18fCIOIA9UrXx8Ig8gEVStfHwiESAUVK18fCIbIAMpAwB8IhQgG1StfCAUIBQgA0EYaikDACARIBEgAykDEHwiEVatfCARIBEgA0EoaikDACAPIA8gAykDIHwiD1atfCAPIA8gA0E4aikDACAOIA4gAykDMHwiDlatfCAOIA4gA0HIAGopAwAgAykDQCIiIBV8IhUgIlStfCAVIBUgA0HYAGopAwAgGSADKQNQIhl8IBlUrXx8IhVWrXx8Ig5WrXx8Ig9WrXx8IhFWrXx8IhRWrXwgFiAbVq0gA0HIAWopAwAgFiAhVK18fHwhFiABQQhrIgFBeEcNAAsCQCAWQprN/8ujvcSAGlYNAAJAIBZCms3/y6O9xIAaUgRAIBYhGCAUIRAgESEXIA8hEyAOIRIMAQsgFELX2a6a5PbpjcsAVg0BQprN/8ujvcSAGiEYIBRC19mumuT26Y3LAFIEQCAUIRAgESEXIA8hEyAOIRIMAQsgEUK/pZScz/DSu+QAVg0BQtfZrprk9umNywAhECARQr+llJzP8NK75ABSBEAgESEXIA8hEyAOIRIMAQsgD0Kk7MO1j9S0mOcAVg0BQr+llJzP8NK75AAhFyAPQqTsw7WP1LSY5wBSBEAgDyETIA4hEgwBCyAOQv//z4rr///VHlYNAUKk7MO1j9S0mOcAIRMgDkL//8+K6///1R5SBEAgDiESDAELQv//z4rr///VHiESIBVCqtX+////v/+5f1YNAQsgFSEaDAELIA5C///Piuv//9UefSIQIBVCq9X+////v/+5f1StIhN9IRIgD0Kk7MO1j9S0mOcAfSIXIA5C///Piuv//9UeVCAQIBNUcq0iDn0hEyARQr+llJzP8NK75AB9IhAgD0Kk7MO1j9S0mOcAVCAOIBdWcq0iDn0hFyAUQtfZrprk9umNywB9Ig8gEUK/pZScz/DSu+QAVCAOIBBWcq0iDn0hECAWIBRC19mumuT26Y3LAFQgDiAPVnKtfUKazf/Lo73EgBp9IRggFULVqoGAgIDAgMYAfCEaCyACEPoCIAIgA0GwCGpBMBCuBQ0ACwsgACAaNwMoIAAgEjcDICAAIBM3AxggACAXNwMQIAAgEDcDCCAAIBg3AwAMAgsgAEEoakHIucAAKQMANwMAIABBIGpBwLnAACkDADcDACAAQRhqQbi5wAApAwA3AwAgAEEQakGwucAAKQMANwMAIABBCGpBqLnAACkDADcDACAAQaC5wAApAwA3AwAMAQsgACABKQMANwMAIABBKGogAUEoaikDADcDACAAQSBqIAFBIGopAwA3AwAgAEEYaiABQRhqKQMANwMAIABBEGogAUEQaikDADcDACAAQQhqIAFBCGopAwA3AwALIANBoApqJAAPCyABQQJrQQZBkL3AABCYBAALuz0CBn8ZfiMAQdALayIDJAAgA0HgCmpCADcDACADQdgKakIANwMAIANB0ApqQgA3AwAgA0HwCmpCADcDACADQfgKakIANwMAIANCADcDyAogA0IANwPoCiADQgE3A4ALAkACQCACIANByApqIgVBIBCuBQRAIAIgA0HoCmpBIBCuBUUNASACKQMQIQ8gAikDCCEKIAIpAwAhDSABKQMYIRAgASkDECEJIAEpAwghCyABKQMAIRIgAikDGCERIANBmAtqIgdCADcDACADQZALaiIIQgA3AwAgA0IANwOICyADIBFCAYM3A6ALIANBiAtqIAVBIBCuBUUEQANAIANB6AlqIAkgEEIAEPwDIANByAlqIAsgEEIAEPwDIANBmAlqIBIgEEIAEPwDIANBuAlqIAsgCUIAEPwDIANBiAlqIBIgCUIAEPwDIANB+AhqIBIgC0IAEPwDIANBuApqIBAgEEIAEPwDIANB2AlqIAkgCUIAEPwDIANBqAlqIAsgC0IAEPwDIANB6AhqIBIgEkIAEPwDIANBqApqIAMpA7gKIhRC/////76y/fBCfiIJQoGAgIC/sv3wwwBCABD8AyADQZgKaiAJQpHh5c2HifqZKEIAEPwDIANBiApqIAlC3bCFjOi2kai4f0IAEPwDIANB+AlqIAlCqcDGia7Ok7IwQgAQ/AMgA0GwCWopAwAhECADIANB4AlqKQMAIAMpA9gJIgwgA0HwCWopAwAiDiADKQPICXwiCUIBhiADKQPoCSISQj+IhHwiCyAMVK18IAsgA0HACmopAwAiDCASQgGGfCISIAxUrXwiFSALVK18IhYgA0HQCWopAwAgCSAOVK18Ig4gAykDmAl8IgsgAykDuAl8IgxC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iIR8IgogDVStfCAKIANBoAdqKQMAIg0gE0IBhnwiEyANVK18IhcgClStfCIYIANBsAZqKQMAIA8gEVStfCIRIAMpA/gFfCIKIAMpA5gGfCINQgGGIA9CP4iEfCIZIBhUrSIYIAMpA4gGfCIPIANBgAZqKQMAIAogEVStfCIaIAMpA+gFfCIRIANBoAZqKQMAIAogDVatfHwiCkIBhiANQj+IhHwiDTcDqAsgAyANIA9UrSAWIA8gGFStfHwiDSAKIBFUrSADQfAFaikDACARIBpUrXx8IhEgAykD2AV8Ig9CAYYgCkI/iIR8Igo3A7ALIAMgAykDyAUiFiADQeAFaikDACAPIBFUrXwiEUIBhiAPQj+IhHwiDyAKIA1UrXwiCjcDuAsgCiAPVK0gA0HQBWopAwAgDyAWVK18fCARQj+IfCEPIANBgAdqKQMAIQ0gAyADQZAHaikDACAVIAMpA4gHIgp8IApUrXwiESADKQP4BnwiCiATfCIVNwPACyADQfAGaikDACEWIAMgCiAVVq0gDSAKIBFUrXx8Ig0gAykD6AZ8IgogF3wiETcDyAsgA0HgBmopAwAhFSADIAogEVatIBYgCiANVK18fCINIAMpA9gGfCIKIBl8IhE3A4gLQQAhAQJAIAogEVatIBUgCiANVK18fCIKUARAQQAhBAwBCyADIAogAykDqAt8Ig03A6gLIAogDVYiBEUNACADIAStIgogAykDsAt8Ig03A7ALIAogDVYhBCAKIA1YDQAgAyAErSIKIAMpA7gLfCINNwO4CyAKIA1WIQQgCiANWA0AIAStIgogD3wiDyAKVCEECyADQbgFaiADKQPACyINQv////++sv3wQn4iCkKBgICAv7L98MMAQgAQ/AMgA0GoBWogCkKR4eXNh4n6mShCABD8AyADQZgFaiAKQt2whYzotpGouH9CABD8AyADQYgFaiAKQqnAxomuzpOyMEIAEPwDIAMgDSADKQO4BSIKfCINNwPACyADQbAFaikDACERIAMgA0HABWopAwAgCiANVq18Ig0gAykDqAV8IgogAykDyAt8IhU3A8gLIANBoAVqKQMAIRYgAyAKIBVWrSARIAogDVStfHwiDSADKQOYBXwiCiADKQOIC3wiETcDiAsgA0GQBWopAwAhFSADIAogEVatIBYgCiANVK18fCINIAMpA4gF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D0IBhiAKQj+IhHwiCjcDsAsgAyADKQPIBSIWIANB4AVqKQMAIA8gEVStfCIRQgGGIA9CP4iEfCIPIAogDVStfCIKNwO4CyAKIA9UrSADQdAFaikDACAPIBZUrXx8IBFCP4h8IQ8gA0GAB2opAwAhDSADIANBkAdqKQMAIBUgAykDiAciCnwgClStfCIRIAMpA/gGfCIKIBN8IhU3A8ALIANB8AZqKQMAIRYgAyAKIBVWrSANIAogEVStfHwiDSADKQPoBnwiCiAXfCIRNwPICyADQeAGaikDACEVIAMgCiARVq0gFiAKIA1UrXx8Ig0gAykD2AZ8IgogGXwiETcDiAtBACEBAkAgCiARVq0gFSAKIA1UrXx8IgpQBEBBACEEDAELIAMgCiADKQOoC3wiDTcDqAsgCiANViIERQ0AIAMgBK0iCiADKQOwC3wiDTcDsAsgCiANViEEIAogDVgNACADIAStIgogAykDuAt8Ig03A7gLIAogDVYhBCAKIA1YDQAgBK0iCiAPfCIPIApUIQQLIANBuAVqIAMpA8ALIg1CiceZpK7wgemHf34iCkLH+vPD7YKjkDxCABD8AyADQagFaiAKQo2Vx8OW0trAl39CABD8AyADQZgFaiAKQt2whYzotpGouH9CABD8AyADQYgFaiAKQqnAxomuzpOyMEIAEPwDIAMgDSADKQO4BSIKfCINNwPACyADQbAFaikDACERIAMgA0HABWopAwAgCiANVq18Ig0gAykDqAV8IgogAykDyAt8IhU3A8gLIANBoAVqKQMAIRYgAyAKIBVWrSARIAogDVStfHwiDSADKQOYBXwiCiADKQOIC3wiETcDiAsgA0GQBWopAwAhFSADIAogEVatIBYgCiANVK18fCINIAMpA4gFfCIKIAMpA6gLfCIRNwOoCwJAIAogEVatIBUgCiANVK18fCIKUA0AIAMgCiADKQOwC3wiDTcDsAsgCiANViEBIAogDVgNACADIAGtIgogAykDuAt8Ig03A7gLIAogDVYhASAKIA1YDQAgAa0iCiAPfCIPIApUIQELIANB+ARqIAMpA8gLIg1CiceZpK7wgemHf34iCkLH+vPD7YKjkDxCABD8AyADQegEaiAKQo2Vx8OW0trAl39CABD8AyADQdgEaiAKQt2whYzotpGouH9CABD8AyADQcgEaiAKQqnA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lcfDltLawJd/QgAQ/AMgA0HIAWogDELdsIWM6LaRqLh/QgAQ/AMgA0G4AWogDEKpwMaJrs6TsjBCABD8AyADQfgAaiARIBBCABD8AyADQShqIBEgCUIAEPwDIANBGGogESALQgAQ/AMgA0EIaiARIBJCABD8AyADQegAaiADQYACaikDACAXIBtWrXwiISADKQOoAXwiCyADQaADaikDACAZIB1UrXwiHSADKQOIA3wiDCADKQO4A3wiECAaICBWrSADQdADaikDACAZIBpWrXx8fCISIAMpA5gCfCIZIA4gGFStIANBsAJqKQMAIBggHlStfHx8IhggAykDyAJ8IhogEyAXVq0gA0HgAmopAwAgDiATVq18fHwiHnwiDiADKQPYAXwiEyADQfABaikDACADKQPoASIJIBt8IAlUrXx8IhcgAykDeHwiG0KJx5mkrvCB6Yd/fiIJQsf688PtgqOQPEIAEPwDIANB2ABqIAlCjZXHw5bS2sCXf0IAEPwDIANByABqIAlC3bCFjOi2kai4f0IAEPwDIANBOGogCUKpwMaJrs6TsjBCABD8AwJAIANBQGspAwAgA0HAAWopAwAgA0HAAmopAwAgECASVq0gA0HAA2opAwAgDCAQVq18fCADQZADaikDACAMIB1UrXx8Ih0gAykDiAJ8IgkgGCAZVK0gA0GgAmopAwAgEiAZVq18fHwiDCADKQO4AnwiECAMVK18IBAgECAaIB5WrSADQdACaikDACAYIBpWrXx8fCIQVq18IAkgDFatIANBkAJqKQMAIAkgHVStfHx8IhIgAykDiAF8IgkgA0GgAWopAwAgECADKQOYAXwiDCAQVK18IAwgCyAOVq0gA0GwAWopAwAgCyAhVK18fHwiCyAMVK18fCIMIAMpA7gBfCIQIAxUrXwgECADQdABaikDACALIAsgAykDyAF8IgtWrXwgCyATIBdWrSADQeABaikDACAOIBNWrXx8fCIOIAtUrXx8IgsgEFStfCAJIAxWrSADQZABaikDACAJIBJUrXx8fCITIAMpAwh8IgkgA0EgaikDACALIAsgAykDGHwiC1atfCALIAsgA0EwaikDACADQYABaikDACAXIBtWrXwiECADKQMofCIMIBBUrXwgDCAMIA58IgxWrXx8IgtWrXx8IhIgAykDOHwiDiASVK18IA4gDiAD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ICFWrSARIAogIFStfHx8Igp8Igt8IhBCAYYgDUI/iIR8Ig03A/AIIAIgDSAZVK0iESAYIB0gCyAQVq18IhogCiALVq0gFiAKIBNUrXx8fCIKfCILQgGGIBBCP4iEfCINIAIpA9AEfCIQNwPoCCACIA0gEFatIAJB2ARqKQMAIA0gEVStfHwiDSAKIAtWrSACQagEaikDACAKIBpUrXx8IhAgAikDwAR8IgpCAYYgC0I/iIR8Igs3A+AIIAJB6ARqKQMAIREgAiALIA1UrSILIAJByARqKQMAIAogEFStfCINQgGGIApCP4iEfCIKIAIpA+AEfCIQNwPYCCACIAogEFatIBEgCiALVK18fCANQj+IfDcD0AggAiACKQPwAjcDqAkgAiAeNwOgCSACIB83A5gJIAIgIjcDkAkgAiAbNwOICSACICU3A4AJIBwiGkIBiCEcQQAhBkEGIQRBACEHAkADQAJAIAJBkAJqIAJBgAlqIAZqIgVBKGoiASkDACILQv3/8//P///5iX9+IgpCq9X+////v/+5f0IAEPwDIAEgCyACKQOQAiINfCILNwMAIAJBmAJqKQMAIRAgBCIBQQFNBH8gAiAGakGgCWoFIAFBAmsiBEEFSw0BIAJBgAlqIARBA3RqCyEDIAFBAWshBCACQYACaiAKQv//z4rr///VHkIAEPwDIAMgECALIA1UrXwiDSACKQOAAnwiCyADKQMAfCIQNwMAIAJB8AFqIApCpOzDtY/UtJjnAEIAEPwDIAVBGGogAkHQCGogBmoiA0HIAGogAUECSxsiCSALIBBWrSACQYgCaikDACALIA1UrXx8Ig0gAikD8AF8IgsgCSkDAHwiEDcDACACQeABaiAKQr+llJzP8NK75ABCABD8AyAFQRBqIANBQGsgAUEDSxsiCSALIBBWrSACQfgBaikDACALIA1UrXx8Ig0gAikD4AF8IgsgCSkDAHwiEDcDACACQdABaiAKQtfZrprk9umNywBCABD8AyACQdgBaikDACALIBBWrSACQegBaikDACALIA1UrXx8Ig0gAikD0AF8IgsgDVStfCENAkACQCABQQRNBEAgA0E4aiIFIAsgBSkDAHwiEDcDACANIAsgEFatfCERDAELIAVBCGoiCSALIAkpAwB8IhA3AwAgDSALIBBWrXwhESAEQQRLDQELIAJB0AhqIAFBA3RqIQULIAJBwAFqIApCms3/y6O9xIAaQgAQ/AMgBSARIAIpA8ABfCIKIAUpAwB8Igs3AwBBACEBAkAgCiALVq0gAkHIAWopAwAgCiARVK18fCIKUA0AIANBKGoiASAKIAEpAwB8Igs3AwAgCiALViIBrSIKUCAGQVhGcg0AIANBIGoiASAKIAEpAwB8Igs3AwAgCiALViIBrSIKUCAEQQJJcg0AIANBGGoiASAKIAEpAwB8Igs3AwAgCiALViIBrSIKUCAEQQNJcg0AIANBEGoiASAKIAEpAwB8Igs3AwAgCiALViIBrSIKUCAEQQRJcg0AIANBCGoiASAKIAEpAwB8Igs3AwAgCiALViIBrSIKUCAEQQVJcg0AIAMgCiADKQMAfCILNwMAIAogC1YiAa0hCgsgASAHciEHIAZBCGsiBkFQRw0BDAILCwwDCwJAAkAgCkIAUiAHckEBcSACKQPQCCIKQprN/8ujvcSAGlZyDQAgCkKazf/Lo73EgBpSDQEgAikD2AgiC0LX2a6a5PbpjcsAVg0AIAtC19mumuT26Y3LAFINASACKQPgCCILQr+llJzP8NK75ABWDQAgC0K/pZScz/DSu+QAUg0BIAIpA+gIIgtCpOzDtY/UtJjnAFYNACALQqTsw7WP1LSY5wBSDQEgAikD8AgiC0L//8+K6///1R5WDQAgC0L//8+K6///1R5SDQEgAikD+AhCqtX+////v/+5f1gNAQsgAiACKQP4CCILQtWqgYCAgMCAxgB8NwP4CCACIAIpA/AIIg1C///Piuv//9UefSIQIAtCq9X+////v/+5f1StIgt9NwPwCCACIAIpA+gIIhFCpOzDtY/UtJjnAH0iEyANQv//z4rr///VHlQgCyAQVnKtIgt9NwPoCCACIAIpA+AIIg1Cv6WUnM/w0rvkAH0iECARQqTsw7WP1LSY5wBUIAsgE1ZyrSILfTcD4AggAiACKQPYCCIRQtfZrprk9umNywB9IhMgDUK/pZScz/DSu+QAVCALIBBWcq0iC303A9gIIAIgCiARQtfZrprk9umNywBUIAsgE1ZyrX1Cms3/y6O9xIAafTcD0AgLIAJByAhqIAJB+AhqKQMANwMAIAJBwAhqIAJB8AhqKQMANwMAIAJBuAhqIAJB6AhqKQMANwMAIAJBsAhqIAJB4AhqKQMANwMAIAJBqAhqIAJB2AhqKQMANwMAIAIgAikD0Ag3A6AIAkAgGkICg1ANAEIAIRNBKCEBQgAhEEIAIQ1CACELQgAhCkIAIREDQCACQeAAaiACQaAIaiABaikDACIWIBVCABD8AyACQfAAaiAWIAxCABD8AyACQYABaiAWIA9CABD8AyACQZABaiAWIBJCABD8AyACQaABaiAWIA5CABD8AyACQbABaiAWIBRCABD8AyACQdAAaiACKQNgIhcgEXwiFkL9//P/z///+Yl/fiIRQqvV/v///7//uX9CABD8AyACQUBrIBFC///Piuv//9UeQgAQ/AMgAkEwaiARQqTsw7WP1LSY5wBCABD8AyACQSBqIBFCv6WUnM/w0rvkAEIAEPwDIAJBEGogEULX2a6a5PbpjcsAQgAQ/AMgAiARQprN/8ujvcSAGkIAEPwDIAJBCGopAwAgAikDsAEiGCATfCITIAJBqAFqKQMAIAIpA6ABIhEgEHwiECARVK18IBAgAkGYAWopAwAgAikDkAEiESANfCINIBFUrXwgDSACQYgBaikDACACKQOAASIRIAt8IgsgEVStfCALIAJB+ABqKQMAIAIpA3AiESAKfCIKIBFUrXwgCiACQegAaikDACAWIBdUrXx8IhEgClStfHwiCiALVK18fCILIA1UrXx8Ig0gEFStfHwiFyACKQMAfCIdIBdUrXwgHSAdIAJBGGopAwAgDSANIAIpAxB8IhBWrXwgECAQIAJBKGopAwAgCyALIAIpAyB8Ig1WrXwgDSANIAJBOGopAwAgCiAKIAIpAzB8IgtWrXwgCyALIAJByABqKQMAIBEgAikDQCIRfCIKIBFUrXwgCiAKIAJB2ABqKQMAIBYgAikDUCIRfCARVK18fCIRVq18fCIKVq18fCILVq18fCINVq18fCIQVq18IBMgF1atIAJBuAFqKQMAIBMgGFStfHx8IRMgAUEIayIBQXhHDQALAkAgE0Kazf/Lo73EgBpWDQACQCATQprN/8ujvcSAGlIEQCATIRQgECEOIA0hEiALIQ8gCiEMDAELIBBC19mumuT26Y3LAFYNAUKazf/Lo73EgBohFCAQQtfZrprk9umNywBSBEAgECEOIA0hEiALIQ8gCiEMDAELIA1Cv6WUnM/w0rvkAFYNAULX2a6a5PbpjcsAIQ4gDUK/pZScz/DSu+QAUgRAIA0hEiALIQ8gCiEMDAELIAtCpOzDtY/UtJjnAFYNAUK/pZScz/DSu+QAIRIgC0Kk7MO1j9S0mOcAUgRAIAshDyAKIQwMAQsgCkL//8+K6///1R5WDQFCpOzDtY/UtJjnACEPIApC///Piuv//9UeUgRAIAohDAwBC0L//8+K6///1R4hDCARQqrV/v///7//uX9WDQELIBEhFQwBCyAKQv//z4rr///VHn0iDiARQqvV/v///7//uX9UrSIPfSEMIAtCpOzDtY/UtJjnAH0iEiAKQv//z4rr///VHlQgDiAPVHKtIgp9IQ8gDUK/pZScz/DSu+QAfSIOIAtCpOzDtY/UtJjnAFQgCiASVnKtIgp9IRIgEELX2a6a5PbpjcsAfSILIA1Cv6WUnM/w0rvkAFQgCiAOVnKtIgp9IQ4gEyAQQtfZrprk9umNywBUIAogC1ZyrX1Cms3/y6O9xIAafSEUIBFC1aqBgICAwIDGAHwhFQsgGkIEWg0ACwsgACAVNwMoIAAgDDcDICAAIA83AxggACASNwMQIAAgDjcDCCAAIBQ3AwAgAkGwCWokAA8LIAFBAmtBBkHco8IAEJgEAAvvOwITfwl+IwBB4AZrIgMkAAJAAkACQAJAAkACQAJAAkACQCABQaiZwQBBMBCuBUUEQCABQTBqQaiZwQBBMBCuBSEFIAJBqJnBAEEwEK4FDQEgAkEwakGomcEAQTAQrgUhBCAFRQ0CIAQNBAwFCyACQaiZwQBBMBCuBQ0DIAJBMGpBqJnBAEEwEK4FRQ0EDAMLIAUNAgwBCyAEDQBBudHCAC0AABoCQEEMQQQQiwUiCwRAQbnRwgAtAAAaQTBBCBCLBSIERQ0BIARBKGpB0IXAACkDADcDACAEQSBqQciFwAApAwA3AwAgBEEYakHAhcAAKQMANwMAIARBEGpBuIXAACkDADcDACAEQQhqQbCFwAApAwA3AwAgBEGohcAAKQMANwMAIANBADoAoAYgAyAEQTBqNgKcBiADIAQ2ApgGIANB6AVqIANBmAZqEMACIAMoAvAFIgFBAk8EQCABQQF2IQUgAygC7AUiAiABQTBsakEwayEBA0AgAikDACEWIAIgASkDADcDACADQdgAaiIMIAJBKGoiBikDADcDACADQdAAaiINIAJBIGoiCCkDADcDACADQcgAaiIPIAJBGGoiCikDADcDACADQUBrIhAgAkEQaiIHKQMANwMAIANBOGoiDiACQQhqIgkpAwA3AwAgBiABQShqIgYpAwA3AwAgCCABQSBqIggpAwA3AwAgCiABQRhqIgopAwA3AwAgByABQRBqIgcpAwA3AwAgCSABQQhqIgkpAwA3AwAgAyAWNwMwIAYgDCkDADcDACAIIA0pAwA3AwAgCiAPKQMANwMAIAcgECkDADcDACAJIA4pAwA3AwAgASADKQMwNwMAIAFBMGshASACQTBqIQIgBUEBayIFDQALCyALIAMpAugFNwIAIAtBCGogA0HwBWooAgA2AgAgBEEwEJQFIANBATYCOCADIAs2AjQgA0EBNgIwDAULDAULDAULQbnRwgAtAAAaAkBBDEEEEIsFIgsEQEG50cIALQAAGkHgAEEIEIsFIgRFDQEgBCACEMIDIARB2ABqQdCFwAApAwA3AwAgBEHQAGpByIXAACkDADcDACAEQcgAakHAhcAAKQMANwMAIARBQGtBuIXAACkDADcDACAEQThqQbCFwAApAwA3AwAgBEGohcAAKQMANwMwIANBADoAoAYgAyAEQeAAajYCnAYgAyAENgKYBiADQegFaiADQZgGahDAAiADKALwBSIBQQJPBEAgAUEBdiEFIAMoAuwFIgIgAUEwbGpBMGshAQNAIAIpAwAhFiACIAEpAwA3AwAgA0HYAGoiDCACQShqIgYpAwA3AwAgA0HQAGoiDSACQSBqIggpAwA3AwAgA0HIAGoiDyACQRhqIgopAwA3AwAgA0FAayIQIAJBEGoiBykDADcDACADQThqIg4gAkEIaiIJKQMANwMAIAYgAUEoaiIGKQMANwMAIAggAUEgaiIIKQMANwMAIAogAUEYaiIKKQMANwMAIAcgAUEQaiIHKQMANwMAIAkgAUEIaiIJKQMANwMAIAMgFjcDMCAGIAwpAwA3AwAgCCANKQMANwMAIAogDykDADcDACAHIBApAwA3AwAgCSAOKQMANwMAIAEgAykDMDcDACABQTBrIQEgAkEwaiECIAVBAWsiBQ0ACwsgCyADKQLoBTcCACALQQhqIANB8AVqKAIANgIAIARB4AAQlAUgA0EBNgI4IAMgCzYCNCADQQE2AjAMBAsMBAsMBQsgAUEwaiEFAkACQAJAAkACfgJAAkAgASACQTAQrgVFBEAgBSACQTBqQTAQrgVFDQELAkACQCACQaiZwQBBMBCuBQ0AIAJBMGoiBEGomcEAQTAQrgUNACADQYgBaiAEQShqKQMANwMAIANBgAFqIARBIGopAwA3AwAgA0H4AGogBEEYaikDADcDACADQfAAaiAEQRBqKQMANwMAIANB6ABqIARBCGopAwA3AwAgAyAEKQMANwNgDAELAn4gAkEwakGYs8AAQTAQrgUEQEL//8+K6///1R4gAikDUCIafSIYIAIpA1giG0Kr1f7///+//7l/Vq0iGX0hFkKk7MO1j9S0mOcAIAIpA0giF30iHCAYIBlUIBpC///Piuv//9UeVnKtIhh9IRpCv6WUnM/w0rvkACACKQNAIhl9Ih0gGCAcViAXQqTsw7WP1LSY5wBWcq0iF30hGELX2a6a5PbpjcsAIAIpAzgiHH0iHiAXIB1WIBlCv6WUnM/w0rvkAFZyrSIXfSEZQqvV/v///7//uX8gG30hG0Kazf/Lo73EgBogAikDMCAXIB5WIBxC19mumuT26Y3LAFZyrXx9DAELIAIpA1ghGyACKQNQIRYgAikDSCEaIAIpA0AhGCACKQM4IRkgAikDMAshFyADIBs3A4gBIAMgFjcDgAEgAyAaNwN4IAMgGDcDcCADIBk3A2ggAyAXNwNgCyADQdgAaiACQShqKQMANwMAIANB0ABqIAJBIGopAwA3AwAgA0HIAGogAkEYaikDADcDACADQUBrIAJBEGopAwA3AwAgA0E4aiACQQhqKQMANwMAIAMgAikDADcDMCABIANBMGpBMBCuBUUEQCAFIANB4ABqQTAQrgVFDQQLIANBoARqIAJBKGoiDSkDADcDACADQZgEaiACQSBqIggpAwA3AwAgA0GQBGogAkEYaiIPKQMANwMAIANBiARqIAJBEGoiCikDADcDACADQYAEaiACQQhqIhApAwA3AwAgAyACKQMANwP4AyADQZAGaiACQdgAaiIEKQMANwMAIANBiAZqIAJB0ABqIgspAwA3AwAgA0GABmogAkHIAGoiDCkDADcDACADQfgFaiACQUBrIgYpAwA3AwAgA0HwBWogAkE4aiIHKQMANwMAIAMgAikDMDcD6AUgA0HABmoiDiAFQShqKQMANwMAIANBuAZqIgkgBUEgaikDADcDACADQbAGaiISIAVBGGopAwA3AwAgA0GoBmoiEyAFQRBqKQMANwMAIANBoAZqIhQgBUEIaikDADcDACADIAUpAwA3A5gGIANB2ABqIgUgBCkDADcDACADQdAAaiIEIAspAwA3AwAgA0HIAGoiCyAMKQMANwMAIANBQGsiDCAGKQMANwMAIANBOGoiBiAHKQMANwMAIAMgAikDMDcDMCADQdgEaiIVIANBmAZqIgcgA0EwaiIREKcCIA4gAUEoaikDADcDACAJIAFBIGopAwA3AwAgEiABQRhqKQMANwMAIBMgAUEQaikDADcDACAUIAFBCGopAwA3AwAgAyABKQMANwOYBiAFIA0pAwA3AwAgBCAIKQMANwMAIAsgDykDADcDACAMIAopAwA3AwAgBiAQKQMANwMAIAMgAikDADcDMCADQYgFaiIBIAcgERCnAiADQagEaiAVIAEQYCAFIANB0ARqKQMANwMAIAQgA0HIBGopAwA3AwAgCyADQcAEaikDADcDACAMIANBuARqKQMANwMAIAYgA0GwBGopAwA3AwAgAyADKQOoBDcDMCAHIBEgA0H4A2oQ1AEgA0G4BWoiASADQegFaiAHEKcCQbnRwgAtAAAaQRhBBBCLBSILRQ0FQbnRwgAtAAAaQeAAQQgQiwUiBEUNCyABQZizwABBMBCuBUUNAUL//8+K6///1R4gAykD2AUiGn0iGCADKQPgBSIbQqvV/v///7//uX9WrSIZfSEWQqTsw7WP1LSY5wAgAykD0AUiF30iHCAYIBlUIBpC///Piuv//9UeVnKtIhh9IRpCv6WUnM/w0rvkACADKQPIBSIZfSIdIBggHFYgF0Kk7MO1j9S0mOcAVnKtIhd9IRhC19mumuT26Y3LACADKQPABSIcfSIeIBcgHVYgGUK/pZScz/DSu+QAVnKtIhd9IRlCq9X+////v/+5fyAbfSEbQprN/8ujvcSAGiADKQO4BSAXIB5WIBxC19mumuT26Y3LAFZyrXx9DAILIANCodWmgICAwI5uNwPABiADQoeA8MvehIDChn83A7gGIANC6LvQ78D4iLzPADcDsAYgA0LRwLPPhr6cvp5/NwOoBiADQpnXtYOmi4Dv/QA3A6AGIANChcGL5PeOvvANNwOYBiADQdgAaiICIAFBKGoiBCkDADcDACADQdAAaiILIAFBIGoiDCkDADcDACADQcgAaiIGIAFBGGoiDSkDADcDACADQUBrIgggAUEQaiIPKQMANwMAIANBOGoiCiABQQhqIhApAwA3AwAgAyABKQMANwMwIANB6AVqIgcgA0GYBmoiCSADQTBqIg4Q1AEgAiAEKQMANwMAIAsgDCkDADcDACAGIA0pAwA3AwAgCCAPKQMANwMAIAogECkDADcDACADIAEpAwA3AzAgA0GIBWoiCCAHIA4Q1AEgDhD4ASADQcAGaiIEIANB+ABqKQMANwMAIANBuAZqIgsgA0HwAGopAwA3AwAgA0GwBmoiDCADQegAaikDADcDACADQagGaiIGIANB4ABqKQMANwMAIANBoAZqIg0gAikDADcDACADIAMpA1A3A5gGIANB2ARqIgIgCCAJEPsCIANCz6qZgICAwIkyNwOQBiADQoWAkLaNg4CeuX83A4gGIANC0fb2htvBl7DXADcDgAYgA0LLt/7onqTZkot/NwP4BSADQoPYiIuQr6P57AA3A/AFIANCjMWH3Nvz6vURNwPoBSAEIAVBKGopAwA3AwAgCyAFQSBqKQMANwMAIAwgBUEYaikDADcDACAGIAVBEGopAwA3AwAgDSAFQQhqKQMANwMAIAMgBSkDADcDmAYgCCAHIAkQ1AEgAyACIAgQYCADKAK0AyICBEAgAygCuAMgAkECdBCUBQsCQCADKAI0IgJFDQAgAiACQQxsQRNqQXhxIgRqQQlqIgJFDQAgAygCMCAEayACEJQFCyADQbAFaiAFQShqKQMANwMAIANBqAVqIAVBIGopAwA3AwAgA0GgBWogBUEYaikDADcDACADQZgFaiAFQRBqKQMANwMAIANBkAVqIAVBCGopAwA3AwAgAyAFKQMANwOIBSADQcAGaiADQShqKQMANwMAIANBuAZqIANBIGopAwA3AwAgA0GwBmogA0EYaikDADcDACADQagGaiADQRBqKQMANwMAIANBoAZqIANBCGopAwA3AwAgAyADKQMANwOYBiADQdgAaiABQShqKQMANwMAIANB0ABqIAFBIGopAwA3AwAgA0HIAGogAUEYaikDADcDACADQUBrIAFBEGopAwA3AwAgA0E4aiABQQhqKQMANwMAIAMgASkDADcDMCADQegFaiIBIANBmAZqIANBMGoQ1AEgA0HIA2oiAiADQYgFaiABEKcCQbnRwgAtAAAaQRhBBBCLBSILRQ0DQbnRwgAt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AiAFQQFrIgUNAAsLIARB4AAQlAVBudHCAC0AABpBMEEIEIsFIgRFDQcgBEEoakHQhcAAKQMANwMAIARBIGpByIXAACkDADcDACAEQRhqQcCFwAApAwA3AwAgBEEQakG4hcAAKQMANwMAIARBCGpBsIXAACkDADcDACAEQaiFwAApAwA3AwAgA0EAOgCgBiADIARBMGo2ApwGIAMgBDYCmAYgA0HoBWogA0GYBmoQwAIgAygC8AUiAUECTwRAIAFBAXYhBSADKALsBSICIAFBMGxqQTBrIQEDQCACKQMAIRYgAiABKQMANwMAIANB2ABqIgwgAkEoaiIGKQMANwMAIANB0ABqIg0gAkEgaiIIKQMANwMAIANByABqIg8gAkEYaiIKKQMANwMAIANBQGsiECACQRBqIgcpAwA3AwAgA0E4aiIOIAJBCGoiCSkDADcDACAGIAFBKGoiBikDADcDACAIIAFBIGoiCCkDADcDACAKIAFBGGoiCikDADcDACAHIAFBEGoiBykDADcDACAJIAFBCGoiCSkDADcDACADIBY3AzAgBiAMKQMANwMAIAggDSkDADcDACAKIA8pAwA3AwAgByAQKQMANwMAIAkgDikDADcDACABIAMpAzA3AwAgAUEwayEBIAJBMGohAiAFQQFrIgUNAAsLIAtBDGoiASADKQLoBTcCACABQQhqIANB8AVqKAIANgIAIARBMBCUBSALQQhqIANB3AZqKAIANgIAIAsgAykC1AY3AgAgA0ECNgI4IAMgCzYCNCADQQI2AjAMBQtBudHCAC0AABpBDEEEEIsFIgtFDQVBudHCAC0AABpB4ABBCBCLBSIERQ0CIAQgARDCAyAEQdgAakHQhcAAKQMANwMAIARB0ABqQciFwAApAwA3AwAgBEHIAGpBwIXAACkDADcDACAEQUBrQbiFwAApAwA3AwAgBEE4akGwhcAAKQMANwMAIARBqIXAACkDADcDMCADQQA6AKAGIAMgBEHgAGo2ApwGIAMgBDYCmAYgA0HoBWogA0GYBmoQwAIgAygC8AUiAUECTwRAIAFBAXYhBSADKALsBSICIAFBMGxqQTBrIQEDQCACKQMAIRYgAiABKQMANwMAIANB2ABqIgwgAkEoaiIGKQMANwMAIANB0ABqIg0gAkEgaiIIKQMANwMAIANByABqIg8gAkEYaiIKKQMANwMAIANBQGsiECACQRBqIgcpAwA3AwAgA0E4aiIOIAJBCGoiCSkDADcDACAGIAFBKGoiBikDADcDACAIIAFBIGoiCCkDADcDACAKIAFBGGoiCikDADcDACAHIAFBEGoiBykDADcDACAJIAFBCGoiCSkDADcDACADIBY3AzAgBiAMKQMANwMAIAggDSkDADcDACAKIA8pAwA3AwAgByAQKQMANwMAIAkgDikDADcDACABIAMpAzA3AwAgAUEwayEBIAJBMGohAiAFQQFrIgUNAAsLIAsgAykC6AU3AgAgC0EIaiADQfAFaigCADYCACAEQeAAEJQFIANBATYCOCADIAs2AjQgA0EBNgIwDAQLQQRBGBCoBQALQQRBGBCoBQALDAQLQbnRwgAtAAAaQQxBBBCLBSILRQ0BQbnRwgAtAAAaQeAAQQgQiwUiBEUNAyAEIAEQwgMgBEHYAGpB0IXAACkDADcDACAEQdAAakHIhcAAKQMANwMAIARByABqQcCFwAApAwA3AwAgBEFAa0G4hcAAKQMANwMAIARBOGpBsIXAACkDADcDACAEQaiFwAApAwA3AzAgA0EAOgCgBiADIARB4ABqNgKcBiADIAQ2ApgGIANB6AVqIANBmAZqEMACIAMoAvAFIgFBAk8EQCABQQF2IQUgAygC7AUiAiABQTBsakEwayEBA0AgAikDACEWIAIgASkDADcDACADQdgAaiIMIAJBKGoiBikDADcDACADQdAAaiINIAJBIGoiCCkDADcDACADQcgAaiIPIAJBGGoiCikDADcDACADQUBrIhAgAkEQaiIHKQMANwMAIANBOGoiDiACQQhqIgkpAwA3AwAgBiABQShqIgYpAwA3AwAgCCABQSBqIggpAwA3AwAgCiABQRhqIgopAwA3AwAgByABQRBqIgcpAwA3AwAgCSABQQhqIgkpAwA3AwAgAyAWNwMwIAYgDCkDADcDACAIIA0pAwA3AwAgCiAPKQMANwMAIAcgECkDADcDACAJIA4pAwA3AwAgASADKQMwNwMAIAFBMGshASACQTBqIQIgBUEBayIFDQALCyALIAMpAugFNwIAIAtBCGogA0HwBWooAgA2AgAgBEHgABCUBSADQQE2AjggAyALNgI0IANBATYCMAsgACADQTBqEIgCIANB4AZqJAAPC0EEQQwQqAUAC0EIQTAQqAUAC0EIQeAAEKgFAAuPMwIGfxN+IwBB0AlrIgMkAAJAAkACQAJAAkACQAJAIAFB2JnBAEEgEK4FRQRAIAFBIGpB2JnBAEEgEK4FRQ0BCyACQdiZwQBBIBCuBUUEQCACQSBqQdiZwQBBIBCuBUUNAgsCQCABIAJBIBCuBUUEQCABQSBqIgggAkEgakEgEK4FRQ0BIABCADcDACAAQThqQgA3AwAgAEEwakIANwMAIABBKGpCADcDACAAQSBqQgA3AwAgAEEYakIANwMAIABBEGpCADcDACAAQQhqQgA3AwAMCAsgASkDICIRIQ8gAikDICITIQoCfgJAIBEgE1INACABKQMoIgsgAikDKCIKUgRAIAshDwwBCyABKQMwIgkgAikDMCIKUgRAIAkhDwwBCyALIQwgASkDOCIPIQ0gCSAPIAIpAzgiClENARoLIAogD1gNBCABKQMoIQsgAikDKCEMIAEpAzAhCSABKQM4IQ8gAikDOCENIAIpAzALIhAgCX0iDiANIA9UrSIWfSEKIAwgC30iFSAOIBZUIAkgEFZyrSIQfSEJIBAgFVYgCyAMVnIhBCATIBF9IREgDSAPfSEPDAULIANBqAZqEMICIAMpA8AGIRYgAykDuAYhFSADKQOwBiEYIAMpA6gGIRkgAygCvAgiBARAIAMoAsAIIARBAnQQlAULAkAgAygCjAgiBEUNACAEIARBDGxBE2pBeHEiBWpBCWoiBEUNACADKAKICCAFayAEEJQFCyADQgM3A8gJIANCgICAgFA3A8AJIANCfzcDuAkgA0L8////LzcDsAkgA0HYBWogASkDECIQIAEpAxgiEUIAEPwDIANBuAVqIAEpAwgiDyARQgAQ/AMgA0GIBWogASkDACITIBFCABD8AyADQagFaiAPIBBCABD8AyADQfgEaiATIBBCABD8AyADQegEaiATIA9CABD8AyADQfgFaiARIBFCABD8AyADQcgFaiAQIBBCABD8AyADQZgFaiAPIA9CABD8AyADQdgEaiATIBNCABD8AyADQegFaiADKQP4BSISQn2DIhRCgYCAgHBCABD8AyADQfAEaikDACADQYAFaikDACADQZAFaikDACADQcAFaikDACADQeAFaikDACIMIAMpA7gFfCIJIAxUrXwiCiADKQOIBXwiDCAKVK18IgsgAykD+AR8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aiAIELABIANBiAZqIANB0AhqIAUQcgwBCyADIA83A8gJIAMgCjcDwAkgAyAJNwO4CSADIBEgBK19NwOwCSABKQMAIhMhESACKQMAIgohCyADAn4CQAJ+AkAgCiATUg0AIAEpAwgiDyACKQMIIgtSBEAgDyERDAELIAEpAxAiECACKQMQIgtSBEAgECERDAELIA8hDCABKQMYIhEhDSAQIBEgAikDGCILUQ0BGgsgCyARWA0BIAEpAwghDyACKQMIIQwgASkDECEQIAEpAxghESACKQMYIQ0gAikDEAsiCSAQfSIOIA0gEVStIhZ9IQsgDCAPfSIVIAkgEFQgDiAWVHKtIg59IQkgDCAPVCAOIBVWciEEIAogE30hCiANIBF9DAELIAEpAxAiECACKQMQIg9UIBAgD30iCSABKQMYIhEgAikDGCIOVK0iC1RyrSIMIAEpAwgiDyACKQMIIhZ9Ig19IhUgCSALfSILQv////8PVq0iGH0hCSAMIA1SIBUgGFRyIQRC/////w8gC30hCyAPIBZUIAwgDVZyrSAKIBN9fEL/////D30hCiAOIBFCf4V8CzcDwAYgAyALNwO4BiADIAk3A7AGIAMgCiAErX03A6gGIANBiAZqIANBsAlqIANBqAZqEHILIANBuANqIAMpA5gGIhYgAykDoAYiFUIAEPwDIANBqANqIAMpA5AGIhggFUIAEPwDIANBmANqIAMpA4gGIhkgFUIAEPwDIANB6ANqIBggFkIAEPwDIANB2ANqIBkgFkIAEPwDIANBiARqIBkgGEIAEPwDIANBiANqIBUgFUIAEPwDIANByANqIBYgFkIAEPwDIANB+ANqIBggGEIAEPwDIANBmARqIBkgGUIAEPwDIANB+AJqIAMpA4gDIhJCfYMiFEKBgICAcEIAEPwDIANBkARqKQMAIANB4ANqKQMAIANBoANqKQMAIANBsANqKQMAIANBwANqKQMAIgwgAykDqAN8IgkgDFStfCIKIAMpA5gDfCIMIApUrXwiCyADKQPYA3wiCiALVK18IAogA0HwA2opAwAgDCAMIAMpA+gDfCIMVq18fCILIApUrXwiCiADKQOIBHwiDSAKVK18IgpCP4ggA0GgBGopAwAgAykDmAQiFyAKQgGGIA1CP4iEfCIOIBdUrXwgDiAOIANBgARqKQMAIANB0ANqKQMA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QeABaikDACAKIAtWrXwiCyADKQPIAXwiEnwiESADKQOIAXwiCiADQbABaikDACAMIA9WrXx8IhR8IgwgAykDWHwiCUKBgICAcEIAEPwDIANBuAJqIA4gAq19IhAgFUIAEPwDIANBqAJqIBAgFkIAEPwDIANBmAJqIBAgGEIAEPwDIANBiAJqIBAgGUIAEPwDIANBKGogCUIghiIWIAwgE1StIA9CIIh8IhUgA0HQAWopAwAgCyASVq18IhggAykDuAF8IhAgAykD6AF8IgsgDSARVq18IhMgAykDeHwiDSAKIBRWrSADQZABaikDACAKIBFUrXx8fCIZfCIRIAMpAzh8IgogA0HgAGopAwAgCSAMVK18fCISfCIMIAMpA7gCfCIPQoGAgIBwQgAQ/AMCQAJAIANBMGopAwAgA0GwAmopAwAgA0HAAmopAwAgDCAPVq18IhQgAykDqAJ8Ig4gFFStfCAOIA4gCiASVq0gA0FAaykDACAKIBFUrXx8IhIgAykDGHwiCiARIBVUrSIVIAMpA5gBfCIRIAsgE1atIANB8AFqKQMAIAsgEFStfHwiFCADQcABaikDACAQIBhUrXx8IhAgAykDaHwiCyANIBlWrSADQYABaikDACANIBNUrXx8fCIYfCIZfCITIAwgFlStIAlCIIh8fCIJfCIOVq18IhYgAykDmAJ8IgwgCSATVK0iFyADKQNIfCINIBEgGVatIANBoAFqKQMAIBEgFVStfHwiFSALIBhWrSADQfAAaikDACALIBBUrXx8IhggECAUVK18Ihl8IhAgAykDCHwiCyAKIBNWrSADQSBqKQMAIAogElStfHx8IhN8IhJ8IgogD0IghiIJIA58IhEgCVStIA9CIIh8fCIJIApUrSIOIAMpAyh8Ig8gDlStfCAPIA0gElatIANB0ABqKQMAIA0gF1StfHwiDSALIBNWrSADQRBqKQMAIAsgEFStfHwiDiAQIBVUrSAYIBlWrXx8IhV8IgsgAykDiAJ8IhMgCiAMVK0gA0GgAmopAwAgDCAWVK18fHwiDHwiECAPVK18IgogDCATVK0gA0GQAmopAwAgCyATVq18fCIMIAsgDVStIA4gFVatfHwiC3wiD0KBgICAcFYgCiAPVq1CACALIAxUrX1Scg0AAkAgD0KBgICAcFEEQCAJQv////8PVg0CQgAhEyAQQgBSDQJC/////w8hCiAJQv////8PWg0BQoGAgIBwIQ8gCSEKDAMLIBAhEyAJIQoMAgsgEUJ/UQ0AQoGAgIBwIQ8MAQsgCUL/////D30iDCARQn9SrSILfSEKIBAgCUL/////D1QgCyAMVnKtIgl9IRMgDyAJIBBWrX1C/////w98IQ8gEUIBfCERCyADIBE3A8AGIAMgCjcDuAYgAyATNwOwBiADIA83A6gGIABBIGogA0GoBmogAUEgahCNAyAAQRhqIANByAlqKQMANwMAIABBEGogA0HACWopAwA3AwAgAEEIaiADQbgJaikDADcDACAAIAMpA7AJNwMACyADQdAJaiQAC7M0AgZ/G34jAEGQCmsiAyQAIANBoAlqQgA3AwAgA0GYCWpCADcDACADQZAJakIANwMAIANBsAlqQgA3AwAgA0G4CWpCADcDACADQgA3A4gJIANCADcDqAkgA0IBNwPACQJAAkAgAiADQYgJaiIFQSAQrgUEQCACIANBqAlqQSAQrgVFDQEgAikDECEaIAIpAwghCyACKQMAIQwgASkDGCEQIAEpAxAhCSABKQMIIQogASkDACERIAIpAxghEiADQdgJaiIHQgA3AwAgA0HQCWoiCEIANwMAIANCADcDyAkgAyASQgGDNwPgCSADQcgJaiAFQSAQrgVFBEADQCADQbgIaiAJIBBCABD8AyADQZgIaiAKIBBCABD8AyADQegHaiARIBBCABD8AyADQYgIaiAKIAlCABD8AyADQdgHaiARIAlCABD8AyADQcgHaiARIApCABD8AyADQfgIaiAQIBBCABD8AyADQagIaiAJIAlCABD8AyADQfgHaiAKIApCABD8AyADQbgHaiARIBFCABD8AyADQegIaiADKQP4CCIQQpuUr8Pytajehn9+IglCbUIAEPwDIANB2AhqIAlCf0IAEPwDIANByAhqIAlC////////////AEIAEPwDIANBgAhqKQMAIREgAyADQbAIaikDACADKQOoCCINIANBwAhqKQMAIg4gAykDmAh8IglCAYYgAykDuAgiD0I/iIR8IgogDVStfCAKIANBgAlqKQMAIg0gD0IBhnwiDyANVK18IhYgClStfCIUIANBoAhqKQMAIAkgDlStfCIOIAMpA+gHfCIKIAMpA4gIfCINQgGGIAlCP4iEfCIbIBRUrSIUIAMpA/gHfCIJIANB8AdqKQMAIAogDlStfCITIAMpA9gHfCIOIANBkAhqKQMAIAogDVatfHwiCkIBhiANQj+IhHwiDTcD6AkgAyAJIA1WrSARIAkgFFStfHwiDSAKIA5UrSADQeAHaikDACAOIBNUrXx8Ig4gAykDyAd8IglCAYYgCkI/iIR8Igo3A/AJIAMgAykDuAciESADQdAHaikDACAJIA5UrXwiDkIBhiAJQj+IhHwiCSAKIA1UrXwiCjcD+AkgCSAKVq0gA0HAB2opAwAgCSARVK18fCAOQj+IfCERIANB4AhqKQMAIQkgAyADQfAIaikDACAQIAMpA+gIIgp8IApUrXwiDSADKQPYCCIOfCIKIA98IhA3A4AKIAMgDiAKIBBWrSAJIAogDVStfHwiDXwiCiAWfCIONwOICiADQdAIaikDACEQIAMgCiAOVq0gCSAKIA1UrXx8IgogAykDyAh8IgkgG3wiDTcDyAlBACEBAkAgCSANVq0gECAJIApUrXx8IglQBEBBACEEDAELIAMgCSADKQPoCXwiCjcD6AkgCSAKViIERQ0AIAMgBK0iCSADKQPwCXwiCjcD8AkgCSAKViEEIAkgClgNACADIAStIgkgAykD+Al8Igo3A/gJIAkgClYhBCAJIApYDQAgBK0iCSARfCIRIAlUIQQLIANBqAdqIAMpA4AKIgpCm5Svw/K1qN6Gf34iCUJtQgAQ/AMgA0GYB2ogCUJ/QgAQ/AMgA0GIB2ogCUL///////////8AQgAQ/AMgAyAKIAMpA6gHIg18Igo3A4AKIANBoAdqKQMAIQkgAyADQbAHaikDACAKIA1UrXwiDSADKQOYByIOfCIKIAMpA4gKfCIQNwOICiADIA4gCiAQVq0gCSAKIA1UrXx8Ig18IgogAykDyAl8Ig43A8gJIANBkAdqKQMAIRAgAyAKIA5WrSAJIAogDVStfHwiCiADKQOIB3wiCSADKQPoCXwiDTcD6AkCQCAJIA1WrSAQIAkgClStfHwiCVANACADIAkgAykD8Al8Igo3A/AJIAkgClYhASAJIApYDQAgAyABrSIJIAMpA/gJfCIKNwP4CSAJIApWIQEgCSAKWA0AIAGtIgkgEXwiESAJVCEBCyADQfgGaiADKQOICiIKQpuUr8Pytajehn9+IglCbUIAEPwDIANB6AZqIAlCf0IAEPwDIANB2AZqIAlC////////////AEIAEPwDIAMgCiADKQP4BiINfCIKNwOICiADQfAGaikDACEJIAMgA0GAB2opAwAgCiANVK18Ig0gAykD6AYiDnwiCiADKQPICXwiEDcDyAkgAyAOIAogEFatIAkgCiANVK18fCINfCIKIAMpA+gJfCIONwPoCSADQeAGaikDACEQIAMgCiAOVq0gCSAKIA1UrXx8IgogAykD2AZ8IgkgAykD8Al8Ig03A/AJQQAhBSAJIA1WrSAQIAkgClStfHwiCVBFBEAgAyAJIAMpA/gJfCIKNwP4CSAJIApWIgWtIgkgEXwiCiARIAUbIREgBSAJIApWcSEFCyAaIQ0gA0HIBmogAykDyAkiCkKblK/D8rWo3oZ/fiIJQm1CABD8AyADQbgGaiAJQn9CABD8AyADQagGaiAJQv///////////wBCABD8AyADIAogAykDyAYiDnwiCjcDyAkgA0HABmopAwAhCSADIANB0AZqKQMAIAogDlStfCIOIAMpA7gGIhB8IgogAykD6Al8Ig83A+gJIAMgECAKIA9WrSAJIAogDlStfHwiDnwiCiADKQPwCXwiEDcD8AkgA0GwBmopAwAhDyADIAogEFatIAkgCiAOVK18fCIKIAMpA6gGfCIJIAMpA/gJfCIONwP4CSAJIA5WrSAPIAkgClStfHwiCSARfCIKIBEgCUIAUiIGGyERAkACQCABIARyIAVyIAkgClYiAa0gCSAGG0IAUnIgASAGcSARQgBTcnJFBEAgAykD6AkhECARQv///////////wBSIAMpA/gJIgpCf1JyIAMpA/AJIglCf1JyDQJCfyEaQv///////////wAhEUJ/IRtCfyEJQn8hCiAQQm1UDQIMAQsgAykD+AkhGiADKQPwCSEbIAMpA+gJIRALIBtCAXwiCiAQQm1UrSIOfSEJIBpCAXwiDyAbQn9SIAogDlRyrSIOfSEKIBEgGkJ/UiAOIA9Wcq19Qv///////////wB9IREgEEITfCEQCyACIAtCP4YgDUIBiIQiGjcDECACIA1CP4YgEkIBiIQiEjcDGCACIAxCP4YgC0IBiIQiCzcDCCACIAxCAYgiDDcDACAHQgA3AwAgCEIANwMAIANCADcDyAkgAyASQgGDNwPgCSADQcgJaiADQYgJakEgEK4F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4ANqKQMAIQ0gAyADQfADaikDACALIA5WrXwiCyADKQPYAyIMfCIOIAMpA+gJfCIPNwPoCSADIAwgDiAPVq0gDSALIA5WrXx8Igt8Ig4gAykD8Al8Igw3A/AJIANB0ANqKQMAIQ8gAyAMIA5UrSANIAsgDlatfHwiDiADKQPIA3wiDSADKQP4CXwiCzcD+AkgCyANVK0gDyANIA5UrXx8Ig0gEnwiDiASIA1CAFIiBhshEgJAAkAgASAEciAFciANIA5WIgGtIA0gBhtCAFJyIAEgBnEgEkIAU3JyRQRAIAMpA+gJIQsgEkL///////////8AUiADKQP4CSIMQn9SciADKQPwCSIPQn9Scg0CQn8hDUL///////////8AIRJCfyEOQn8hD0J/IQwgC0JtVA0CDAELIAMpA/gJIQ0gAykD8AkhDiADKQPoCSELCyAOQgF8IgwgC0JtVK0iE30hDyANQgF8IhcgDkJ/UiAMIBNUcq0iDn0hDCASIA1Cf1IgDiAXVnKtfUL///////////8AfSESIAtCE3whCwsgB0IANwMAIANB0AlqQgA3AwAgA0IANwPICSADIBogIYM3A+AJAkAgA0HICWogA0GoCWpBIBCuBQ0AIANBuANqIAsgEEIAEPwDIANB+AJqIAsgCUIAEPwDIANB6AJqIAsgCkIAEPwDIANB2AJqIAsgEUIAEPwDIANBqANqIAMpA7gDIhNCm5Svw/K1qN6Gf34iDUJtQgAQ/AMgA0GYA2ogDUJ/QgAQ/AMgA0GIA2ogDUL///////////8AQgAQ/AMgA0HIAmogDyAQQgAQ/AMgA0GIAmogDyAJQgAQ/AMgA0H4AWogDyAKQgAQ/AMgA0HoAWogDyARQgAQ/AMgA0G4AmogAykDmAMiDSADQcADaikDACIYIAMpA/gCfCIZfCIOIANBsANqKQMAIBMgAykDqAMiF3wgF1StfHwiEyADKQPIAnwiF0KblK/D8rWo3oZ/fiIVQm1CABD8AyADQagCaiAVQn9CABD8AyADQZgCaiAVQv///////////wBCABD8AyADQdgBaiAMIBBCABD8AyADQZgBaiAMIAlCABD8AyADQYgBaiAMIApCABD8AyADQfgAaiAMIBFCABD8AyADQcgBaiADQdACaikDACATIBdWrXwiHSADKQOIAnwiFSANIANBgANqKQMAIBggGVatfCIeIAMpA+gCfCIYfCIZIA4gE1atIANBoANqKQMAIh8gDSAOVq18fHwiIHwiDSADKQOoAiIifCIOIANBwAJqKQMAIAMpA7gCIhMgF3wgE1StfHwiEyADKQPYAXwiF0KblK/D8rWo3oZ/fiIcQm1CABD8AyADQbgBaiAcQn9CABD8AyADQagBaiAcQv///////////wBCABD8AyADQegAaiASIBBCABD8AyADQShqIBIgCUIAEPwDIANBGGogEiAKQgAQ/AMgA0EIaiASIBFCABD8AyADQdgAaiADQeABaikDACATIBdWrXwiIyADKQOYAXwiCSAiIANB8AJqKQMAIBggHlStfCIeIAMpA9gCfCIKIAMpA4gDfCIRIBkgIFatIB8gGCAZVq18fHwiECADKQP4AXwiGCANIBVUrSADQZACaikDACAVIB1UrXx8fCIVfCIZIA4gE1atIANBsAJqKQMAIh0gDSAOVq18fHwiH3wiDSADKQO4ASIgfCIOIANB0AFqKQMAIAMpA8gBIhMgF3wgE1StfHwiEyADKQNofCIXQpuUr8Pytajehn9+IhxCbUIAEPwDIANByABqIBxCf0IAEPwDIANBOGogHEL///////////8AQgAQ/AMCQCADQUBrKQMAIANBsAFqKQMAIANBoAJqKQMAIBAgEVStIANBkANqKQMAIAogEVatfHwiHCADQeACaikDACAKIB5UrXx8IgogAykD6AF8IhEgFSAYVK0gA0GAAmopAwAgECAYVq18fHwiECADKQOYAnwiGCAQVK18IBggGSAfVq0gHSAVIBlWrXx8fCIVIBhUrXwiGCAQIBFUrSADQfABaikDACAKIBFWrXx8IhkgCiAcVK18Ihx8IgogAykDeHwiESADQZABaikDACAVIAMpA4gBfCIQIBVUrXwgECAJIA1WrSADQaABaikDACAJICNUrXx8fCIJIBBUrXx8IhAgAykDqAF8IhUgEFStfCAVIANBwAFqKQMAIh0gCSAJICB8IglWrXwgCSAOIBNWrSAdIA0gDlatfHx8Ig4gCVStfHwiCSAVVK18IhUgECARVK0gA0GAAWopAwAgCiARVq18fCIdIAogGFStIBkgHFatfHwiGHwiCiADKQMIfCIRIANBIGopAwAgCSAJIAMpAxh8IglWrXwgCSAJIANBMGopAwAgA0HwAGopAwAgEyAXVq18IhAgAykDKHwiDSAQVK18IA0gDSAOfCINVq18fCIJVq18fCITIAMpAzh8Ig4gE1StfCAOIA4gA0HQAGopAwAiECAJIAkgAykDSCIZfCIJVq18IAkgECANIA0gGXwiDVatfCANIANB4ABqKQMAIAMpA1giECAXfCAQVK18fCIQIA1UrXx8Ig0gCVStfHwiDlatfCIJIBEgE1atIANBEGopAwAgCiARVq18fCITIAogFVStIBggHVStfHwiCnwiEUIAUyAJIBFWrUIAIAogE1StfVJyDQAgEUL///////////8AUgRAIA0hCSAOIQoMAgsgDkJ/UgRAIA0hCSAOIQpC////////////ACERDAILQn8hCiANQn9SBEAgDSEJQv///////////wAhEQwCC0J/IQkgEEJtWg0AQv///////////wAhEQwBCyANQgF8IgogEEJtVK0iE30hCSAOQgF8IhcgDUJ/UiAKIBNUcq0iDX0hCiARIA5Cf1IgDSAXVnKtfUL///////////8AfSERIBBCE3whEAsgAiAWQgGIIg03AwAgAiAbQj+GIBRCAYiEIg43AxAgAiAUQj+GIBpCAYiEIho3AxggAiAWQj+GIBtCAYiEIhs3AwggAiADQYgJakEgEK4FDQALCyAAIBA3AxggACAJNwMQIAAgCjcDCCAAIBE3AwAMAgsgAEEYakHoucAAKQMANwMAIABBEGpB4LnAACkDADcDACAAQQhqQdi5wAApAwA3AwAgAEHQucAAKQMANwMADAELIAAgASkDADcDACAAQRhqIAFBGGopAwA3AwAgAEEQaiABQRBqKQMANwMAIABBCGogAUEIaikDADcDAAsgA0GQCmokAAueTAIZfgt/IwBB4ARrIh4kACAeIABBwAEQrQUiGyABEBcgG0HAAWoiICAAQcABaiIhQcABEK0FGiAgIAFBwAFqEBcgISAAEMEDIABB4AFqIiIgAEEgaiIjEMEDIABBgAJqIiQgAEFAayIfEMEDIABBoAJqIiUgAEHgAGoQwQMgAEHAAmoiICAAQYABaiIdEMEDIABB4AJqIh4gAEGgAWoQwQMgASkDOCEOIAEpAzAhECABKQMoIQYgASkDICECAkAgASkD2AEgASkDGHwgASkD0AEiAyABKQMQfCIFIANUrSAFIAEp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rSIQfTcD4AwgAyADKQPYDCIRQr+llJzP8NK75AB9IhIgE0Kk7MO1j9S0mOcAVCAQIBRWcq0iEH03A9gMIAMgAykD0AwiE0LX2a6a5PbpjcsAfSIUIBFCv6WUnM/w0rvkAFQgECASVnKtIhB9NwPQDCADIA8gE0LX2a6a5PbpjcsAVCAQIBRWcq19QprN/8ujvcSAGn03A8gMCyADQcAMaiADQfAMaikDADcDACADQbgMaiADQegMaikDADcDACADQbAMaiADQeAMaikDADcDACADQagMaiADQdgMaikDADcDACADQaAMaiADQdAMaikDADcDACADIAMpA8gMNwOYDCADQaANaiIBIANBiAdqIgIpAwA3AwAgA0GYDWoiBSADQYAHaiIIKQMANwMAIANBkA1qIgQgA0H4BmoiCSkDADcDACADQYgNaiIHIANB8AZqIgYpAwA3AwAgA0GADWoiCiADQegGaiINKQMANwMAIAMgAykD4AY3A/gMIANB6AtqIg4gA0GYDGogA0H4DGoiCxDUASABIAIpAwA3AwAgBSAIKQMANwMAIAQgCSkDADcDACAHIAYpAwA3AwAgCiANKQMANwMAIAMgAykD4AY3A/gMIANByAxqIgEgA0HYCmogCxDUASALIA4gARD7AiABIAsgA0GIC2oQ+wIgA0G4C2ogAUEwEK4FIAMoAsQKIgEEQCADKALICiABQQJ0EJQFCwJAIAMoAsQHIgFFDQAgASABQQxsQRNqQXhxIgVqQQlqIgFFDQAgAygCwAcgBWsgARCUBQsNAQsgAEEIaiADQeAGakHgABCtBRogAEEANgIADAELIANB+AxqIgEgA0HgBmoQwQEgA0EANgLQDCADQoCAgIAQNwLIDCADQQM6AOAHIANBIDYC0AcgA0EANgLcByADQfiawQA2AtgHIANBADYCyAcgA0EANgLAByADIANByAxqIgI2AtQHIAEgA0HAB2oiARCFAw0BIANB4ApqIANB0AxqKAIANgIAIAMgAykCyAw3A9gKIAEgDBDBASADQQA2AsALIANCgICAgBA3ArgLIANBAzoA6AwgA0EgNgLYDCADQQA2AuQMIANB+JrBADYC4AwgA0EANgLQDCADQQA2AsgMIAMgA0G4C2o2AtwMIAEgAhCFAw0BIANBkAtqIANBwAtqKAIANgIAIAMgAykCuAs3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IAUgCWoiCikDADcDACAIQRhqIApBGGopAwA3AwAgCEEQaiAKQRBqKQMANwMAIAhBCGogCkEIaikDADcDACAFQSBqIQUgBEEBayIEDQALCyADIAY2AogDIAMgBzYChAMgAyAGNgKAAyADQdAAaiADQYADaiADQUBrEEcgA0GAAWogA0HYAGooAgA2AgAgAyADKQJQNwN4IAMoAlwiBARAIAMoAmAgBEEFdBCUBQtBCCEHAkACQCADKAI8IgZFDQAgBkEFdCEIIAZB////H0sEQEEAIQQMAgsgAygCOCEJQQAhBUG50cIALQAAGkEIIQQgCEEIEIsFIgdFDQEgBkEFdCELIAYhBANAIAUgC0YNASAFIAdqIgggBSAJaiIKKQMANwMAIAhBGGogCkEYaikDADcDACAIQRBqIApBEGopAwA3AwAgCEEIaiAKQQhqKQMANwMAIAVBIGohBSAEQQFrIgQNAAsLIAMgBjYCiAMgAyAHNgKEAyADIAY2AoADIANB0ABqIANBgANqIANBQGsQRyADQZABaiADQdgAaigCADYCACADIAMpAlA3A4gBIAMoAlwiBARAIAMoAmAgBEEFdBCUBQsgAygCPCIGQQV0IQUgAygCOCEHAkACQAJAA0AgBUUNDCAGQQFrIQYgBUEgayIFIAdqIgRBwJfAAEEgEK4FRQ0ACyAGQQBIDQsgA0HYAWogBEEYaiIFKQMANwMAIANB0AFqIARBEGoiBikDADcDACADQcgBaiAEQQhqIgcpAwA3AwAgAyAEKQMANwPAASADQcABakH4ssAAQSAQrgVFDQEgA0GwAmpCADcDACADQagCakIANwMAIANCADcDoAJCASEVIANCATcDuAIgA0HYAmogBSkDADcDACADQdACaiAGKQMANwMAIANByAJqIAcpAwA3AwAgAyAEKQMANwPAAiADQfgCakGoscAAKQMANwMAIANB8AJqQaCxwAApAwA3AwAgA0HoAmpBmLHAACkDADcDACADQZCxwAApAwA3A+ACIANBkANqIQUgA0GAA2ohBgJAIANBwAJqIANBoAJqQSAQrgVFBEBCoaG6gKD0ASEaDAELIANB4ABqIQRCoaG6gKD0ASEaIAMpA9gCIRMgAykDwAIhJSADKQPIAiEXIAMpA9ACISJCr/j//28hFEJ/IR9CfyEgQn8hIQNAIANB4AJq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CzcDACAHIAw3AwAgCCANNwMAIAFBIGshASACQSBqIQIgBUEBayIFDQALCyAJIAMpAtAENwIAIAlBCGogA0HYBGooAgA2AgAgBEEgEJQFIANBATYCuAMgAyAJNgK0AyADQQE2ArADIAAgA0GwA2oQxwIMBQsMBQsMBQtBudHCAC0AABoCQEEMQQQQiwUiCQRAQbnRwgAtAAAaQcAAQQgQiwUiBEUNAQJ+IAJB+LLAAEEgEK4FBEBCACACKQMIIgp9IgsgAikDECIMQv////8PVq0iDX0hDkKBgICAcCACKQMAIApCAFIgCyANVHKtfH0hDyACKQMYQn+FIQtC/////w8gDH0MAQsgAikDGCELIAIpAwghDiACKQMAIQ8gAikDEAshCiAEIAs3AxggBCAKNwMQIAQgDjcDCCAEIA83AwAgBEHohMAAKQMANwMgIARBKGpB8ITAACkDADcDACAEQTBqQfiEwAApAwA3AwAgBEE4akGAhcAAKQMANwMAIANBADoAUCADIARBQGs2AkwgAyAENgJIIANB0ARqIANByABqEOYCIAMoAtgEIgFBAk8EQCABQQF2IQUgAygC1AQiAiABQQV0akEgayEBA0AgAikDACEKIAIgASkDADcDACACQRhqIgYpAwAhCyAGIAFBGGoiBikDADcDACACQRBqIgcpAwAhDCAHIAFBEGoiBykDADcDACACQQhqIggpAwAhDSAIIAFBCGoiCCkDADcDACABIAo3AwAgBiALNwMAIAcgDDcDACAIIA03AwAgAUEgayEBIAJBIGohAiAFQQFrIgUNAAsLIAkgAykC0AQ3AgAgCUEIaiADQdgEaigCADYCACAEQcAAEJQFIANBATYCuAMgAyAJNgK0AyADQQE2ArADIAAgA0GwA2oQxwIMBAsMBAsMBQsgAUEgaiEEIAEpAzghFCABKQMwIQwgASkDKCEQIAEpAyAhFyABKQMYIRUgASkDECETIAEpAwghESABKQMAIQ0CQAJAAkACQAJAIAMCfgJAAkAgASACQSAQrgVFBEAgBCACQSBqQSAQrgVFDQELAkACQCACQdiZwQBBIBCuBQ0AIAJBIGoiBUHYmcEAQSAQrgUNACADQYABaiAFQRhqKQMANwMAIANB+ABqIAVBEGopAwA3AwAgA0HwAGogBUEIaikDADcDACADIAUpAwA3A2gMAQsgA0HoBGogAkE4aikDADcDACADQeAEaiACQTBqKQMANwMAIANB2ARqIAJBKGopAwA3AwAgAyACKQMgNwPQBAJ+IANB0ARqQfiywABBIBCuBQRAQgAgAykD2AQiCn0iCyADKQPgBCISQv////8PVq0iD30hDkKBgICAcCADKQPQBCAKQgBSIAsgD1RyrXx9IQ8gAykD6ARCf4UhC0L/////DyASfQwBCyADKQPoBCELIAMpA9gEIQ4gAykD0AQhDyADKQPgBAshCiADIAs3A4ABIAMgCjcDeCADIA43A3AgAyAPNwNoCyADQeAAaiACQRhqKQMANwMAIANB2ABqIAJBEGopAwA3AwAgA0HQAGogAkEIaikDADcDACADIAIpAwA3A0ggASADQcgAakEgEK4FRQRAIAQgA0HoAGpBIBCuBUUNBAsgA0HoA2ogAkEYaikDADcDACADQeADaiACQRBqKQMANwMAIANB2ANqIAJBCGopAwA3AwAgAyACKQMANwPQAyACKQMoIQ4gAikDMCEPIAIpAzghEiACKQMgIhghCwJAIBggFyIKUg0AIBAiCiAOIgtSDQAgDCIKIA8iC1INACAUIgogEiILUQ0CCyAKIAtWDQEgDyAMfSILIBIgFFStIhZUIAwgD1ZyrSIKIA4gEH0iDH0iGSALIBZ9IgtC/////w9WrSIafSEWIAogDFIgGSAaVHIhAkL/////DyALfSELIA4gEFQgCiAMVnKtIBcgGH18Qv////8PfSEQIBQgEkJ/hXwMAgsgA0IDNwPoBCADQoCAgIBQNwPgBCADQn83A9gEIANC/P///y83A9AEIAMgFTcDYCADIBM3A1ggAyARNwNQIAMgDTcDSCADQbADaiICIANB0ARqIgEgA0HIAGoiCRCwASADIBU3A2AgAyATNwNYIAMgETcDUCADIA03A0ggASACIAkQsAEgCRDCAgJAAkAgAykD0AQiFiADKQNIfCIKIAMpA9gEIg4gAykDUHwiCyAOVCALIAMpA+AEIg8gAykDWHwiDiAPVCAOIAMpA+gEIhIgAykDYHwiDyASVK18IhIgDlRyrXwiGCALVHKtfCIOIApUIAogFlRyDQBCgYCAgHAhCwJAIA4iCkKBgICAcFINACAYQgBSDQFC/////w8hCyASIgpC/////w9SDQAgD0J/UQ0BQgAhCkKBgICAcCEODAILIAogC1oNACAYIQogEiELDAELIBJC/////w99IgogD0J/Uq0iFn0hCyAYIBJC/////w9UIAogFlRyrSISfSEKIA5C/v///w9C/////w8gEiAYVht8IQ4gD0IBfCEPCyADIA83A0AgAyALNwM4IAMgCjcDMCADIA43AyggA0ICNwPIAyADQoCAgIBgNwPAAyADQn83A7gDIANC/f///x83A7ADIAMgFDcD6AQgAyAMNwPgBCADIBA3A9gEIAMgFzcD0AQgA0HwAmoiASADQbADaiADQdAEahCwASADQQhqIANBKGogARByIAMoAtwCIgEEQCADKALgAiABQQJ0EJQFCwJAIAMoAqwCIgFFDQAgASABQQxsQRNqQXhxIgJqQQlqIgFFDQAgAygCqAIgAmsgARCUBQsgA0HoBGogA0EgaikDADcDACADQeAEaiADQRhqKQMANwMAIANB2ARqIANBEGopAwA3AwAgAyADKQMINwPQBCADIBU3A2AgAyATNwNYIAMgETcDUCADIA03A0ggA0GwA2ogA0HQBGogA0HIAGoQsAEgAykDsAMiCyEOAn4CQCALIBciClINACAQIgogAykDuAMiDlINACAMIgogAykDwAMiDlINACAKIREgECAUIgoiDyADKQPIAyIOUQ0BGgsgAykDyAMhDyAKIA5YDQQgAykDwAMhESADKQO4AwshDSAMIBF9IgogDyAUVq0iEn0hDiAQIA19IhMgCiASVCAMIBFUcq0iDH0hCiAMIBNWIA0gEFZyIQIgFyALfSELIBQgD30hDwwGCyAMIA99IgogEiAUVq0iFn0hCyAQIA59IhkgDCAPVCAKIBZUcq0iCn0hFiAOIBBWIAogGVZyIQIgFyAYfSEQIBQgEn0LNwPoBCADIAs3A+AEIAMgFjcD2AQgAyAQIAKtfTcD0AQgAykD6AMhECADKQPgAyEMIAMpA9gDIRQgAykD0AMiFyELIAMCfgJAAkAgFyANIgpSDQAgESIKIBQiC1INACATIgogDCILUg0AIBUiCiAQIgtRDQELIAogC1YNACAMIBN9IgsgECAVVK0iFlQgDCATVHKtIgogFCARfSITfSIZIAsgFn0iC0L/////D1atIhZ9IQwgCiATUiAWIBlWciECQv////8PIAt9IQsgESAUViAKIBNWcq0gDSAXfXxC/////w99IQ0gFSAQQn+FfAwBCyATIAx9IgogECAVVq0iFn0hCyARIBR9IhkgCiAWVCAMIBNWcq0iCn0hDCARIBRUIAogGVZyIQIgDSAXfSENIBUgEH0LNwNgIAMgCzcDWCADIAw3A1AgAyANIAKtfTcDSCADQfADaiADQdAEaiICIANByABqIgEQciADQeAAaiADQYgEaikDADcDACADQdgAaiADQYAEaikDADcDACADQdAAaiADQfgDaikDADcDACADIAMpA/ADNwNIIAIgASADQdADahCwASADKQPQBCIKIQ0CfgJAIAogGCIMUg0AIA4iDCADKQPYBCINUg0AIA8iDCADKQPgBCINUg0AIAwhFSASIgwhESAOIAMpA+gEIg0gDFENARoLIAMpA+gEIREgDCANWA0DIAMpA+AEIRUgAykD2AQLIRMgDyAVfSILIBEgElatIgx9IQ0gDiATfSIQIAsgDFQgDyAVVHKtIgt9IQ8gDiATVCALIBBWciECIBggCn0hCiASIBF9IQ4MAwtBudHCAC0AABpBDEEEEIsFIglFDQZBudHCAC0AABpBwABBCBCLBSIERQ0IIAMgFTcDYCADIBM3A1ggAyARNwNQIAMgDTcDSAJAIANByABqQfiywABBIBCuBUUEQCARIQ4MAQtCACARfSIKIBNC/////w9WrSILfSEOQoGAgIBwIBFCAFIgCiALVHKtIA18fSENQv////8PIBN9IRMgFUJ/hSEVCyAEIBU3AxggBCATNwMQIAQgDjcDCCAEIA03AwAgBEE4akGAhcAAKQMANwMAIARBMGpB+ITAACkDADcDACAEQShqQfCEwAApAwA3AwAgBEHohMAAKQMANwMgIANBADoAUCADIARBQGs2AkwgAyAENgJIIANB0ARqIANByABqEOYCIAMoAtgEIgFBAk8EQCABQQF2IQUgAygC1AQiAiABQQV0akEgayEBA0AgAikDACEKIAIgASkDADcDACACQRhqIgYpAwAhCyAGIAFBGGoiBikDADcDACACQRBqIgcpAwAhDCAHIAFBEGoiBykDADcDACACQQhqIggpAwAhDSAIIAFBCGoiCCkDADcDACABIAo3AwAgBiALNwMAIAcgDDcDACAIIA03AwAgAUEgayEBIAJBIGohAiAFQQFrIgUNAAsLIAkgAykC0AQ3AgAgCUEIaiADQdgEaigCADYCACAEQcAAEJQFIANBATYCuAMgAyAJNgK0AyADQQE2ArADIAAgA0GwA2oQxwIMBQsgAykDwAMiCiAMVCAKIAx9IgogDyAUVK0iDlRyrSIMIAMpA7gDIhIgEH0iDX0iEyAKIA59Ig5C/////w9WrSIRfSEKIAwgDVIgESATVnIhAkL/////DyAOfSEOIBAgElYgDCANVnKtIBcgC318Qv////8PfSELIBQgD0J/hXwhDwwCCyADKQPgBCILIA9UIAsgD30iDSARIBJUrSIQVHKtIgsgAykD2AQiFCAOfSIMfSITIA0gEH0iDUL/////D1atIhB9IQ8gCyAMUiAQIBNWciECQv////8PIA19IQ0gDiAUViALIAxWcq0gGCAKfXxC/////w99IQogEiARQn+FfCEODAALIAMgDjcDqAQgAyANNwOgBCADIA83A5gEIAMgCiACrX0iCjcDkARBudHCAC0AABoCQEEYQQQQiwUiCQRAQbnRwgAtAAAaQcAAQQgQiwUiBEUNBwJAIANBkARqQfiywABBIBCuBUUEQCAPIQsMAQtCACAPfSIMIA1C/////w9WrSIQfSELQoGAgIBwIA9CAFIgDCAQVHKtIAp8fSEKQv////8PIA19IQ0gDkJ/hSEOCyADQeAAaiADQYgEaikDADcDACADQdgAaiADQYAEaikDADcDACADQdAAaiADQfgDaikDADcDACADIAMpA/ADNwNIAn4gA0HIAGpB+LLAAEEgEK4FBEBCACADKQNQIgx9IhAgAykDWCIUQv////8PVq0iEn0hD0KBgICAcCADKQNIIAxCAFIgECASVHKtfH0hEUL/////DyAUfSEQIAMpA2BCf4UMAQsgAykDWCEQIAMpA1AhDyADKQNIIREgAykDYAshDCAEIBE3AyAgBEE4aiAMNwMAIARBMGogEDcDACAEQShqIA83AwAgBCAONwMYIAQgDTcDECAEIAs3AwggBCAKNwMAIANBADoAUCADIARBQGs2AkwgAyAENgJIIANBxAVqIANByABqEOYCIAMoAswFIgFBAk8EQCABQQF2IQUgAygCyAUiAiABQQV0akEgayEBA0AgAikDACEKIAIgASkDADcDACACQRhqIgYpAwAhCyAGIAFBGGoiBikDADcDACACQRBqIgcpAwAhDCAHIAFBEGoiBykDADcDACACQQhqIggpAwAhDSAIIAFBCGoiCCkDADcDACABIAo3AwAgBiALNwMAIAcgDDcDACAIIA03AwAgAUEgayEBIAJBIGohAiAFQQFrIgUNAAsLIARBwAAQlAVBudHCAC0AABpBIEEIEIsFIgRFDQEgBEEYakGAhcAAKQMANwMAIARBEGpB+ITAACkDADcDACAEQQhqQfCEwAApAwA3AwAgBEHohMAAKQMANwMAIANBADoAUCADIARBIGo2AkwgAyAENgJIIANB0ARqIANByABqEOYCIAMoAtgEIgFBAk8EQCABQQF2IQUgAygC1AQiAiABQQV0akEgayEBA0AgAikDACEKIAIgASkDADcDACACQRhqIgYpAwAhCyAGIAFBGGoiBikDADcDACACQRBqIgcpAwAhDCAHIAFBEGoiBykDADcDACACQQhqIggpAwAhDSAIIAFBCGoiCCkDADcDACABIAo3AwAgBiALNwMAIAcgDDcDACAIIA03AwAgAUEgayEBIAJBIGohAiAFQQFrIgUNAAsLIAlBDGoiASADKQLQBDcCACABQQhqIANB2ARqKAIANgIAIARBIBCUBSAJQQhqIANBzAVqKAIANgIAIAkgAykCxAU3AgAgA0ECNgJQIAMgCTYCTCADQQI2AkggACADQcgAahDHAgwEC0EEQRgQqAUACwwECyADIA83A6gDIAMgDjcDoAMgAyAKNwOYAyADIAsgAq19Igs3A5ADQbnRwgAtAAAaAkBBGEEEEIsFIgkEQEG50cIALQAAGkHAAEEIEIsFIgRFDQYCQCADQZADakH4ssAAQSAQrgVFBEAgCiENDAELQgAgCn0iDCAOQv////8PVq0iEH0hDUKBgICAcCAKQgBSIAwgEFRyrSALfH0hC0L/////DyAOfSEOIA9Cf4UhDwsgA0HgAGogA0EgaikDADcDACADQdgAaiADQRhqKQMANwMAIANB0ABqIANBEGopAwA3AwAgAyADKQMINwNIAn4gA0HIAGpB+LLAAEEgEK4FBEBCACADKQNQIgx9IhAgAykDWCIUQv////8PVq0iEn0hCkKBgICAcCADKQNIIAxCAFIgECASVHKtfH0hEUL/////DyAUfSEQIAMpA2BCf4UMAQsgAykDWCEQIAMpA1AhCiADKQNIIREgAykDYAshDCAEIBE3AyAgBEE4aiAMNwMAIARBMGogEDcDACAEQShqIAo3AwAgBCAPNwMYIAQgDjcDECAEIA03AwggBCALNwMAIANBADoAUCADIARBQGs2AkwgAyAENgJIIANB9ARqIANByABqEOYCIAMoAvwEIgFBAk8EQCABQQF2IQUgAygC+AQiAiABQQV0akEgayEBA0AgAikDACEKIAIgASkDADcDACACQRhqIgYpAwAhCyAGIAFBGGoiBikDADcDACACQRBqIgcpAwAhDCAHIAFBEGoiBykDADcDACACQQhqIggpAwAhDSAIIAFBCGoiCCkDADcDACABIAo3AwAgBiALNwMAIAcgDDcDACAIIA03AwAgAUEgayEBIAJBIGohAiAFQQFrIgUNAAsLIARBwAAQlAVBudHCAC0AABpBIEEIEIsFIgRFDQEgBEEYakGAhcAAKQMANwMAIARBEGpB+ITAACkDADcDACAEQQhqQfCEwAApAwA3AwAgBEHohMAAKQMANwMAIANBADoAUCADIARBIGo2AkwgAyAENgJIIANB0ARqIANByABqEOYCIAMoAtgEIgFBAk8EQCABQQF2IQUgAygC1AQiAiABQQV0akEgayEBA0AgAikDACEKIAIgASkDADcDACACQRhqIgYpAwAhCyAGIAFBGGoiBikDADcDACACQRBqIgcpAwAhDCAHIAFBEGoiBykDADcDACACQQhqIggpAwAhDSAIIAFBCGoiCCkDADcDACABIAo3AwAgBiALNwMAIAcgDDcDACAIIA03AwAgAUEgayEBIAJBIGohAiAFQQFrIgUNAAsLIAlBDGoiASADKQLQBDcCACABQQhqIANB2ARqKAIANgIAIARBIBCUBSAJQQhqIANB/ARqKAIANgIAIAkgAykC9AQ3AgAgA0ECNgJQIAMgCTYCTCADQQI2AkggACADQcgAahDHAgwDC0EEQRgQqAUACwwDC0G50cIALQAAGkEMQQQQiwUiCUUNAUG50cIALQAAGkHAAEEIEIsFIgRFDQMCfiABQfiywABBIBCuBQRAQgAgASkDCCIKfSILIAEpAxAiDEL/////D1atIg19IQ5CgYCAgHAgASkDACAKQgBSIAsgDVRyrXx9IQ8gASkDGEJ/hSELQv////8PIAx9DAELIAEpAxghCyABKQMIIQ4gASkDACEPIAEpAxALIQogBCALNwMYIAQg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BTYCCCADIAk2AgQgAyAFNgIAAkACQCACKAIIIgVFDQBBACEBIAVBMGwiCUEASCAFQarVqhVLcg0BIAIoAgQhCEG50cIALQAAGkEIIQEgCUEIEIsFIgdFDQFBACEGIAUhAQNAIAYgCUYNASAGIAdqIgIgBiAIaiIEKQMANwMAIAJBKGogBEEoaikDADcDACACQSBqIARBIGopAwA3AwAgAkEYaiAEQRhqKQMANwMAIAJBEGogBEEQaikDADcDACACQQhqIARBCGopAwA3AwAgBkEwaiEGIAFBAWsiAQ0ACwsgAyAFNgIYIAMgBzYCFCADIAU2AhBBudHCAC0AABpBMEEIEIsFIgIEQCACQShqQfiawAApAwA3AwAgAkEgakHwmsAAKQMANwMAIAJBGGpB6JrAACkDADcDACACQRBqQeCawAApAwA3AwAgAkEIakHYmsAAKQMANwMAIAJB0JrAACkDADcDACADQQA6AJgDIAMgAkEwajYClAMgAyACNgKQAyADQeACaiADQZADahDAAiADKALoAiIEQQJPBEAgBEEBdiEGIAMoAuQCIgEgBEEwbGpBMGshBANAIAEpAwAhEiABIAQpAwA3AwAgA0HoA2oiCSABQShqIggpAwA3AwAgA0HgA2oiCyABQSBqIgopAwA3AwAgA0HYA2oiDyABQRhqIgwpAwA3AwAgA0HQA2oiECABQRBqIg0pAwA3AwAgA0HIA2oiESABQQhqIg4pAwA3AwAgCCAEQShqIggpAwA3AwAgCiAEQSBqIgopAwA3AwAgDCAEQRhqIgwpAwA3AwAgDSAEQRBqIg0pAwA3AwAgDiAEQQhqIg4pAwA3AwAgAyASNwPAAyAIIAkpAwA3AwAgCiALKQMANwMAIAwgDykDADcDACANIBApAwA3AwAgDiARKQMANwMAIAQgAykDwAM3AwAgBEEwayEEIAFBMGohASAGQQFrIgYNAAsLIANBKGogA0HoAmooAgA2AgAgAyADKQLgAjcDICACQTAQlAUgA0EwahDuAiADQUBrEO4CQbnRwgAtAAAaQTBBCBCLBSICBEAgAkEoakH4msAAKQMANwMAIAJBIGpB8JrAACkDADcDACACQRhqQeiawAApAwA3AwAgAkEQakHgmsAAKQMANwMAIAJBCGpB2JrAACkDADcDACACQdCawAApAwA3AwAgA0EAOgCYAyADIAJBMGo2ApQDIAMgAjYCkAMgA0HgAmogA0GQA2oQwAIgAygC6AIiBEECTwRAIARBAXYhBiADKALkAiIBIARBMGxqQTBrIQQDQCABKQMAIRIgASAEKQMANwMAIANB6ANqIgkgAUEoaiIIKQMANwMAIANB4ANqIgsgAUEgaiIKKQMANwMAIANB2ANqIg8gAUEYaiIMKQMANwMAIANB0ANqIhAgAUEQaiINKQMANwMAIANByANqIhEgAUEIaiIOKQMANwMAIAggBEEoaiIIKQMANwMAIAogBEEgaiIKKQMANwMAIAwgBEEYaiIMKQMANwMAIA0gBEEQaiINKQMANwMAIA4gBEEIaiIOKQMANwMAIAMgEjcDwAMgCCAJKQMANwMAIAogCykDADcDACAMIA8pAwA3AwAgDSAQKQMANwMAIA4gESkDADcDACAEIAMpA8ADNwMAIARBMGshBCABQTBqIQEgBkEBayIGDQALCyADQdgAaiILIANB6AJqKAIANgIAIAMgAykC4AI3A1AgAkEwEJQFAkADQCAFQTBsIQECQAJAAkACQANAIAFFDQEgAUEwayIBIAdqQeCYwABBMBCuBUUNAAsgAygCCCICDQFBCCEJDAILIAMoAggiBEEwbCEBIAMoAgQhBQJAAkADQCABRQ0BIARBAWshBCABQTBrIgEgBWoiAkHgmMAAQTAQrgVFDQALIARBAEgNACADQdgBaiIBIAJBKGopAwA3AwAgA0HQAWoiBCACQSBqKQMANwMAIANByAFqIgUgAkEYaikDADcDACADQcABaiIGIAJBEGopAwA3AwAgA0G4AWoiCSACQQhqKQMANwMAIAMgAikDADcDsAEgA0GwAWpB4JjAAEEwEK4FRQ0BQgAhEiADQaACakIANwMAIANBmAJqQgA3AwAgA0GQAmpCADcDACADQYgCakIANwMAIANCADcDgAIgA0IBNwOoAiADQdgCaiABKQMANwMAIANB0AJqIAQpAwA3AwAgA0HIAmogBSkDADcDACADQcACaiAGKQMANwMAIANBuAJqIAkpAwA3AwAgAyADKQOwATcDsAIgA0GIA2pBuJnAACkDADcDACADQYADakGwmcAAKQMANwMAIANB+AJqQaiZwAApAwA3AwAgA0HwAmpBoJnAACkDADcDACADQegCakGYmcAAKQMANwMA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QQF2IQcgAygCtAQiASACQQV0akEgayECA0AgASkDACENIAEgAikDADcDACABQRhqIgUpAwAhDCAFIAJBGGoiCSkDADcDACABQRBqIgUpAwAhCyAFIAJBEGoiCCkDADcDACABQQhqIgUpAwAhCiAFIAJBCGoiBSkDADcDACACIA03AwAgCSAMNwMAIAggCzcDACAFIAo3AwAgAkEgayECIAFBIGohASAHQQFrIgcNAAsLIAYgAykCsAQ3AgAgBkEIaiADQbgEaigCADYCACAEQSAQlAUgA0EBNgK4AyADIAY2ArQDIANBATYCsAMgACADQbADahDFAgwFCwwFCwwFC0G50cIALQAAGgJAQQxBBBCLBSIGBEBBudHCAC0AABpBwABBCBCLBSIERQ0BAn4gAkH4ssAAQSAQrgUEQCACKQMQQn+FIg0gAikDGCIMQm1WrSIKfSEOIAIpAwhCf4UiCyAKIA1WrSIKfSESQm0gDH0hD0J/QgAgCiALVhsgAikDAH1C////////////AHwMAQsgAikDGCEPIAIpAxAhDiACKQMIIRIgAikDAAshCyAEIA83AxggBCAONwMQIAQgEjcDCCAEIAs3AwAgBEHYhcAAKQMANwMgIARBKGpB4IXAACkDADcDACAEQTBqQeiFwAApAwA3AwAgBEE4akHwhcAAKQMANwMAIANBADoAUCADIARBQGs2AkwgAyAENgJIIANBsARqIANByABqEOYCIAMoArgEIgJBAk8EQCACQQF2IQcgAygCtAQiASACQQV0akEgayECA0AgASkDACENIAEgAikDADcDACABQRhqIgUpAwAhDCAFIAJBGGoiCSkDADcDACABQRBqIgUpAwAhCyAFIAJBEGoiCCkDADcDACABQQhqIgUpAwAhCiAFIAJBCGoiBSkDADcDACACIA03AwAgCSAMNwMAIAggCzcDACAFIAo3AwAgAkEgayECIAFBIGohASAHQQFrIgcNAAsLIAYgAykCsAQ3AgAgBkEIaiADQbgEaigCADYCACAEQcAAEJQFIANBATYCuAMgAyAGNgK0AyADQQE2ArADIAAgA0GwA2oQxQIMBAsMBAsMBQsgAUEgaiEFIAEpAzghFCABKQMwIRUgASkDKCEQIAEpAyAhGSABKQMYIRcgASkDECEWIAEpAwghEyABKQMAIRECQAJAAkACQAJAIAMCfgJAAkACQAJAAkAgASACQSAQrgUNACAFIAJBIGpBIBCuBQ0AIANBwARqQgA3AwAgA0G4BGpCADcDACADQgA3A7AEIANC8gA3A8gEIAMgFzcDYCADIBY3A1ggAyATNwNQIAMgETcDSCADQbADaiICIANBsARqIgQgA0HIAGoiARCcASADIBc3A2AgAyAWNwNYIAMgEzcDUCADIBE3A0ggBCACIAEQnAEgARDBAiADKQOwBCILIAMpA0h8Ig8gAykDuAQiCiADKQNQfCIYIApUIBggGCADKQPABCIKIAMpA1h8IgwgClQgDCADKQPIBCIKIAMpA2B8Ig4gClStfCINIAxUcq18IhhWcq18IQwgDCAPVCALIA9Wcg0DQv///////////wAhDyAMIgpC////////////AFINAkJ/IQ9C////////////ACEKIBhCf1ENAQwJCyADQcgAaiIEIAIQnwMgASAEQSAQrgVFBEAgBSADQegAakEgEK4FRQ0GCyADQegDaiACQRhqKQMANwMAIANB4ANqIAJBEGopAwA3AwAgA0HYA2ogAkEIaikDADcDACADIAIpAwA3A9ADIAIpAyghDiACKQMwIQ0gAikDOCEMIAIpAyAiGCELAkAgGCAZIgpSDQAgECIKIA4iC1INACAVIgogDSILUg0AIBQiCiAMIgtRDQQLIAogC1YNAyANIBV9IgsgDCAUVK0iClQgDSAVVHKtIhogDiAQfSISQn+FfCIPIAogC0J/hXwiFSAMIBR9IhRCbVatIgtUrSIKfSEbIAogD1YhASAVIAt9IQsgDiAQVCASIBpUcq0gGSAYfXxC////////////AHwhEEJtIBR9DAQLIA1Cf1IEQCANIQsMCQtCbSEPIA4iCkJtUQ0BCyAKIA9aDQAgDCEKDAYLIA1CAXwiDyAOQm1UrSIKfSELIBhCAXwiEiANQn9SIAogD1ZyrSIKfSEPIAwgGEJ/UiAKIBJWcq19Qv///////////wB9IQogDkITfCEODAYLIBUgDX0iEiAMIBRWrSIKfSELIBAgDn0iDyANIBVWIAogElZyrSIKfSEbIA4gEFYgCiAPVnIhASAZIBh9IRAgFCAMfQs3A8gEIAMgCzcDwAQgAyAbNwO4BCADIBAgAa19NwOwBCADKQPoAyEVIAMpA+ADIRAgAykD2AMhFCADKQPQAyIaIQsgAwJ+AkACQCAaIBEiClINACATIgogFCILUg0AIBYiCiAQIgtSDQAgFyIKIBUiC1ENAQsgCiALVg0AIBAgFn0iCyAVIBdUrSIKVCAQIBZUcq0iEiAUIBN9Ig9Cf4V8IhYgCiALQn+FfCIZIBUgF30iFUJtVq0iEFStIgt9IQogCyAWViEBIBkgEH0hCyAPIBJUIBMgFFZyrSARIBp9fEL///////////8AfCERQm0gFX0MAQsgFiAQfSIPIBUgF1atIgp9IQsgEyAUfSIZIBAgFlYgCiAPVnKtIhB9IQogEyAUVCAQIBlWciEBIBEgGn0hESAXIBV9CzcDYCADIAs3A1ggAyAKNwNQIAMgESABrX03A0ggA0HwA2ogA0GwBGoiASADQcgAaiICEG0gA0HgAGogA0GIBGopAwA3AwAgA0HYAGogA0GABGopAwA3AwAgA0HQAGogA0H4A2opAwA3AwAgAyADKQPwAzcDSCABIAIgA0HQA2oQnAEgAykDsAQiDyERAn4CQCAPIBgiClINACAOIgogAykDuAQiEVINACANIgogAykDwAQiEVINACAKIRcgDiAMIgoiEyADKQPIBCIRUQ0BGgsgAykDyAQhEyAKIBFYDQIgAykDwAQhFyADKQO4BAshFiANIBd9IhQgDCATVK0iCn0hESAOIBZ9IgsgDSAXVCAKIBRWcq0iCn0hEiAOIBZUIAogC1ZyIQEgGCAPfSELIAwgE30hDgwCC0G50cIALQAAGkEMQQQQiwUiBkUNBkG50cIALQAAGkHAAEEIEIsFIgRFDQggAyAXNwNgIAMgFjcDWCADIBM3A1AgAyARNwNIIAQgA0HIAGpB+LLAAEEgEK4FBH4gFkJ/hSIMIBdCbVatIgp9IRYgE0J/hSILIAogDFatIgp9IRNCf0IAIAogC1YbIBF9Qv///////////wB8IRFCbSAXfQUgFws3AxggBCAWNwMQIAQgEzcDCCAEIBE3AwAgBEE4akHwhcAAKQMANwMAIARBMGpB6IXAACkDADcDACAEQShqQeCFwAApAwA3AwAgBEHYhcAAKQMANwMgIANBADoAUCADIARBQGs2AkwgAyAENgJIIANBsARqIANByABqEOYCIAMoArgEIgJBAk8EQCACQQF2IQcgAygCtAQiASACQQV0akEgayECA0AgASkDACENIAEgAikDADcDACABQRhqIgUpAwAhDCAFIAJBGGoiCSkDADcDACABQRBqIgUpAwAhCyAFIAJBEGoiCCkDADcDACABQQhqIgUpAwAhCiAFIAJBCGoiBSkDADcDACACIA03AwAgCSAMNwMAIAggCzcDACAFIAo3AwAgAkEgayECIAFBIGohASAHQQFrIgcNAAsLIAYgAykCsAQ3AgAgBkEIaiADQbgEaigCADYCACAEQcAAEJQFIANBATYCuAMgAyAGNgK0AyADQQE2ArADIAAgA0GwA2oQxQIMBQsgAykDwAQiCiANVCAKIA19IgsgDCATVq0iClRyrSIZIAMpA7gEIhUgDn0iEEJ/hXwiFCALQn+FIAp8Ig0gEyAMfSIMQm1WrSILVK0iCn0hEiAKIBRWIQEgDSALfSERIBAgGVQgDiAVVnKtIBggD318Qv///////////wB8IQtCbSAMfSEODAALIAMgDjcDqAQgAyARNwOgBCADIBI3A5gEIAMgCyABrX0iCzcDkARBudHCAC0AABoCQEEYQQQQiwUiBgRAQbnRwgAtAAAaQcAAQQgQiwUiBEUNCCADQZAEakH4ssAAQSAQrgUEQCARQn+FIg0gDkJtVq0iCn0hESASQn+FIgwgCiANVq0iCn0hEkJtIA59IQ5Cf0IAIAogDFYbIAt9Qv///////////wB8IQsLIANB4ABqIANBiARqKQMANwMAIANB2ABqIANBgARqKQMANwMAIANB0ABqIANB+ANqKQMANwMAIAMgAykD8AM3A0gCfiADQcgAakH4ssAAQSAQrgUEQCADKQNYQn+FIhQgAykDYCINQm1WrSIKfSEPIAMpA1BCf4UiDCAKIBRWrSIKfSETQn9CACAKIAxWGyADKQNIfUL///////////8AfCEQQm0gDX0MAQsgAykDWCEPIAMpA1AhEyADKQNIIRAgAykDYAshCiAEIBA3AyAgBEE4aiAKNwMAIARBMGogDzcDACAEQShqIBM3AwAgBCAONwMYIAQgETcDECAEIBI3AwggBCALNwMAIANBADoAUCADIARBQGs2AkwgAyAENgJIIANBxAVqIANByABqEOYCIAMoAswFIgJBAk8EQCACQQF2IQcgAygCyAUiASACQQV0akEgayECA0AgASkDACENIAEgAikDADcDACABQRhqIgUpAwAhDCAFIAJBGGoiCSkDADcDACABQRBqIgUpAwAhCyAFIAJBEGoiCCkDADcDACABQQhqIgUpAwAhCiAFIAJBCGoiBSkDADcDACACIA03AwAgCSAMNwMAIAggCzcDACAFIAo3AwAgAkEgayECIAFBIGohASAHQQFrIgcNAAsLIARBwAAQlAVBudHCAC0AABpBIEEIEIsFIgRFDQEgBEEYakHwhcAAKQMANwMAIARBEGpB6IXAACkDADcDACAEQQhqQeCFwAApAwA3AwAgBEHYhcAAKQMANwMAIANBADoAUCADIARBIGo2AkwgAyAENgJIIANBsARqIANByABqEOYCIAMoArgEIgJBAk8EQCACQQF2IQcgAygCtAQiASACQQV0akEgayECA0AgASkDACENIAEgAikDADcDACABQRhqIgUpAwAhDCAFIAJBGGoiCSkDADcDACABQRBqIgUpAwAhCyAFIAJBEGoiCCkDADcDACABQQhqIgUpAwAhCiAFIAJBCGoiBSkDADcDACACIA03AwAgCSAMNwMAIAggCzcDACAFIAo3AwAgAkEgayECIAFBIGohASAHQQFrIgcNAAsLIAZBDGoiASADKQKwBDcCACABQQhqIANBuARqKAIANgIAIARBIBCUBSAGQQhqIANBzAVqKAIANgIAIAYgAykCxAU3AgAgA0ECNgJQIAMgBjYCTCADQQI2AkggACADQcgAahDFAgwFC0EEQRgQqAUACwwFCyAYIQ8gDSELCyADIA43A0AgAyALNwM4IAMgDzcDMCADIAo3AyggA0HAA2pCADcDACADQbgDakIANwMAIANCADcDsAMgA0LMADcDyAMgAyAUNwPIBCADIBU3A8AEIAMgEDcDuAQgAyAZNwOwBCADQfACaiIBIANBsANqIANBsARqEJwBIANBCGogA0EoaiABEG0gAygC3AIiAQRAIAMoAuACIAFBAnQQlAULAkAgAygCrAIiAUUNACABIAFBDGxBE2pBeHEiAmpBCWoiAUUNACADKAKoAiACayABEJQFCyADQcgEaiADQSBqKQMANwMAIANBwARqIANBGGopAwA3AwAgA0G4BGogA0EQaikDADcDACADIAMpAwg3A7AEIAMgFzcDYCADIBY3A1ggAyATNwNQIAMgETcDSCADQbADaiADQbAEaiADQcgAahCcASADKQOwAyIYIRICfwJAIBUCfgJAIBggGSILUg0AIBAiCyADKQO4AyISUg0AIBUiCyADKQPAAyISUg0AIBAhESALIBQiCyIOIAMpA8gDIhJRDQEaCyADKQPIAyEOIAsgElgNASADKQO4AyERIAMpA8ADCyITfSILIA4gFFatIgp9IRIgECARfSIMIAogC1YgEyAVVnKtIgp9IQsgGSAYfSEPIBQgDn0hDiAQIBFUIAogDFZyDAELIAMpA8ADIgogFVQgCiAVfSILIA4gFFStIgpUcq0iESADKQO4AyIXIBB9IhZCf4V8IhMgC0J/hSAKfCIVIA4gFH0iDUJtVq0iDFStIgp9IQsgFSAMfSESIBAgF1YgESAWVnKtIBkgGH18Qv///////////wB8IQ9CbSANfSEOIAogE1YLIQEgAyAONwOoAyADIBI3A6ADIAMgCzcDmAMgAyAPIAGtfSIPNwOQA0G50cIALQAAGgJAQRhBBBCLBSIGBEBBudHCAC0AABpBwABBCBCLBSIERQ0GIANBkANqQfiywABBIBCuBQRAIBJCf4UiDSAOQm1WrSIKfSESIAtCf4UiDCAKIA1WrSIKfSELQn9CACAKIAxWGyAPfUL///////////8AfCEPQm0gDn0hDgsgA0HgAGogA0EgaikDADcDACADQdgAaiADQRhqKQMANwMAIANB0ABqIANBEGopAwA3AwAgAyADKQMINwNIAn4gA0HIAGpB+LLAAEEgEK4FBEAgAykDWEJ/hSIUIAMpA2AiDUJtVq0iCn0hESADKQNQQn+FIgwgCiAUVq0iCn0hE0J/QgAgCiAMVhsgAykDSH1C////////////AHwhEEJtIA19DAELIAMpA1ghESADKQNQIRMgAykDSCEQIAMpA2ALIQogBCAQNwMgIARBOGogCjcDACAEQTBqIBE3AwAgBEEoaiATNwMAIAQgDjcDGCAEIBI3AxAgBCALNwMIIAQgDzcDACADQQA6AFAgAyAEQUBrNgJMIAMgBDYCSCADQfQEaiADQcgAahDmAiADKAL8BCICQQJPBEAgAkEBdiEHIAMoAvgEIgEgAkEFdGpBIGshAgNAIAEpAwAhDSABIAIpAwA3AwAgAUEYaiIFKQMAIQwgBSACQRhqIgkpAwA3AwAgAUEQaiIFKQMAIQsgBSACQRBqIggpAwA3AwAgAUEIaiIFKQMAIQogBSACQQhqIgUpAwA3AwAgAiANNwMAIAkgDDcDACAIIAs3AwAgBSAKNwMAIAJBIGshAiABQSBqIQEgB0EBayIHDQALCyAEQcAAEJQFQbnRwgAtAAAaQSBBCBCLBSIERQ0BIARBGGpB8IXAACkDADcDACAEQRBqQeiFwAApAwA3AwAgBEEIakHghcAAKQMANwMAIARB2IXAACkDADcDACADQQA6AFAgAyAEQSBqNgJMIAMgBDYCSCADQbAEaiADQcgAahDmAiADKAK4BCICQQJPBEAgAkEBdiEHIAMoArQEIgEgAkEFdGpBIGshAgNAIAEpAwAhDSABIAIpAwA3AwAgAUEYaiIFKQMAIQwgBSACQRhqIgkpAwA3AwAgAUEQaiIFKQMAIQsgBSACQRBqIggpAwA3AwAgAUEIaiIFKQMAIQogBSACQQhqIgUpAwA3AwAgAiANNwMAIAkgDDcDACAIIAs3AwAgBSAKNwMAIAJBIGshAiABQSBqIQEgB0EBayIHDQALCyAGQQxqIgEgAykCsAQ3AgAgAUEIaiADQbgEaigCADYCACAEQSAQlAUgBkEIaiADQfwEaigCADYCACAGIAMpAvQENwIAIANBAjYCUCADIAY2AkwgA0ECNgJIIAAgA0HIAGoQxQIMAwtBBEEYEKgFAAsMAwtBudHCAC0AABpBDEEEEIsFIgZFDQFBudHCAC0AABpBwABBCBCLBSIERQ0DAn4gAUH4ssAAQSAQrgUEQCABKQMQQn+FIg0gASkDGCIMQm1WrSIKfSEOIAEpAwhCf4UiCyAKIA1WrSIKfSESQm0gDH0hD0J/QgAgCiALVhsgASkDAH1C////////////AHwMAQsgASkDGCEPIAEpAxAhDiABKQMIIRIgASkDAAshCyAEIA83AxggBCAONwMQIAQgEjcDCCAEIAs3AwAgBEHYhcAAKQMANwMgIARBKGpB4IXAACkDADcDACAEQTBqQeiFwAApAwA3AwAgBEE4akHwhcAAKQMANwMAIANBADoAUCADIARBQGs2AkwgAyAENgJIIANBsARqIANByABqEOYCIAMoArgEIgJBAk8EQCACQQF2IQcgAygCtAQiASACQQV0akEgayECA0AgASkDACENIAEgAikDADcDACABQRhqIgUpAwAhDCAFIAJBGGoiCSkDADcDACABQRBq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QrHqlJHdo4KcWH4iG0Kv+P//b0IAEPwDIANBOGogG0J/QgAQ/AMCQCADQUBrKQMAIhsgA0GgAWopAwAiICAYIBQgIiAKIBJWrSATIAogC1StfHwiEyADQbACaikDACALICRUrXx8IgsgAykDyAF8IgogDiAWVq0gA0HgAWopAwAgDiASVK18fHwiEnwiDiASVK18IA4gDiAXICVWrSAUIBYgF1atfHx8Ig5WrXwiFCAKIBJWrSADQdABaikDACAKIAtUrXx8IhYgCyATVK18IhN8IgsgAykDaHwiCiADQYABaikDACAOIAMpA3h8IhIgDlStfCASIAkgDVatIANBkAFqKQMAIAkgIVStfHx8IgkgElStfHwiEnwiDiASVK18IA4gICAJIAkgGHwiCVatfCAJIBogHlStICAgDSAeVq18fHwiDSAJVK18fCIJIA5UrXwiFyAKIBJWrSADQfAAaikDACAKIAtUrXx8IhggCyAUVK0gEyAWVK18fCIWfCILIAMpAwh8Ig4gA0EgaikDACAJIAkgAykDGHwiCVatfCAJIAkgA0EwaikDACADQeAAaikDACAaIB9WrXwiEiADKQMofCIKIBJUrXwgCiAKIA18IgpWrXx8IglWrXx8IhMgAykDOCINfCIUIBNUrXwgFCAbIAkgCSANfCIJVq18IAkgGyAKIAogDXwiClatfCAKIANB0ABqKQMAIAMpA0giDSAffCANVK18fCISIApUrXx8IgogCVStfHwiDSAUVK18IgkgDiATVq0gA0EQaikDACALIA5WrXx8IhMgCyAXVK0gFiAYVK18fCILfCIOIAlUrUIAIAsgE1StfVINACAOQn9SBEAgCiELIA0hCQwCCyANQn9SBEAgCiELIA0hCUJ/IQ4MAgtCfyEJIApCf1IEQCAKIQtCfyEODAILQn8hCyASQq/4//9vWg0AQn8hDgwBCyAKQgF8IgkgEkKv+P//b1StIhN9IQsgDUIBfCIUIApCf1IgCSATVHKtIgp9IQkgDiANQn9SIAogFFZyrX1CAXwhDiASQtGHgIAQfCESCyACIBVCAYgiDTcDACACIB1CP4YgGUIBiIQiEzcDECACIBlCP4YgHEIBiIQiHDcDGCACIBVCP4YgHUIBiIQiHTcDCCACIANByAdqQSAQrgUNAAsLIAAgEjcDGCAAIAs3AxAgACAJ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ABoCQEEMQQQQiwUiBgRAQbnRwgAtAAAaQcAAQQgQiwUiBEUNAQJ+IAJB+LLAAEEgEK4FBEAgAikDEEJ/hSIMIAIpAxgiDUKv+P//b1atIgp9IQ4gAikDCEJ/hSILIAogDFatIgp9IRBCr/j//28gDX0hDCACKQMAQn+FIAogC1atfQwBCyACKQMYIQwgAikDECEOIAIpAwghECACKQMACyELIAQgDDcDGCAEIA43AxAgBCAQNwMIIAQgCzcDACAEQYiFwAApAwA3AyAgBEEoakGQhcAAKQMANwMAIARBMGpBmIXAACkDADcDACAEQThqQaCFwAApAwA3AwAgA0EAOgBQIAMgBEFAazYCTCADIAQ2AkggA0GwBGogA0HIAGoQ5gIgAygCuAQiAkECTwRAIAJBAXYhByADKAK0BCIBIAJBBXRqQSBrIQIDQCABKQMAIQwgASACKQMANwMAIAFBGGoiBSkDACENIAUgAkEYaiIJKQMANwMAIAFBEGoiBSkDACELIAUgAkEQaiIIKQMANwMAIAFBCGoiBSkDACEKIAUgAkEIaiIFKQMANwMAIAIgDDcDACAJIA03AwAgCCALNwMAIAUgCjcDACACQSBrIQIgAUEgaiEBIAdBAWsiBw0ACwsgBiADKQKwBDcCACAGQQhqIANBuARqKAIANgIAIARBwAAQlAUgA0EBNgK4AyADIAY2ArQDIANBATYCsAMgACADQbADahDJAgwECwwECwwFCyABQSBqIQUgASkDOCESIAEpAzAhFCABKQMoIQ8gASkDICEYIAEpAxghFSABKQMQIRYgASkDCCERIAEpAwAhEwJAAkACQAJAAkAgAwJ+AkACQAJAAkAgASACQSAQrgUNACAFIAJBIGpBIBCuBQ0AIANBwARqQgA3AwAgA0G4BGpCADcDACADQgA3A7AEIANC85aAgDA3A8gEIAMgFTcDYCADIBY3A1ggAyARNwNQIAMgEzcDSCADQbADaiICIANBsARqIgQgA0HIAGoiARCgASADIBU3A2AgAyAWNwNYIAMgETcDUCADIBM3A0ggBCACIAEQoAEgARDMAiADKQOwBCIMIAMpA0h8IhcgAykDuAQiCiADKQNQfCINIApUIA0gDSADKQPABCIKIAMpA1h8IgsgClQgCyALIAMpA8gEIgogAykDYHwiECAKVK18IgtWcq18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AwAgCEEQaiAKQRBqKQMANwMAIAhBCGogCkEIaikDADcDACAFQSBqIQUgBEEBayIEDQALCyADIAY2AogDIAMgBzYChAMgAyAGNgKAAyADQdAAaiADQYADaiADQUBrEEggA0GQAWogA0HYAGooAgA2AgAgAyADKQJQNwOIASADKAJcIgQEQCADKAJgIARBBXQQlAULIAMoAjwiBkEFdCEFIAMoAjghBwJAAkACQANAIAVFDQwgBkEBayEGIAVBIGsiBSAHaiIEQcCXwABBIBCuBUUNAAsgBkEASA0LIANB2AFqIARBGGoiBSkDADcDACADQdABaiAEQRBqIgYpAwA3AwAgA0HIAWogBEEIaiIHKQMANwMAIAMgBCkDADcDwAEgA0HAAWpB+LLAAEEgEK4FRQ0BIANBsAJqQgA3AwAgA0GoAmpCADcDACADQgA3A6ACIANCATcDuAIgA0HYAmogBSkDADcDACADQdACaiAGKQMANwMAIANByAJqIAcpAwA3AwAgAyAEKQMANwPAAiADQfgCakHosMAAKQMANwMAIANB8AJqQeCwwAApAwA3AwAgA0HoAmpB2LDAACkDADcDACADQdCwwAApAwA3A+ACIANBkANqIQUgA0GAA2ohBgJAIANBwAJqIANBoAJqQSAQrgVFBEBCpAshGgwBCyADQeAAaiEEQqQLIRogAykD2AIhEiADKQPAAiElIAMpA8gCIRQgAykD0AIhIkJtIRNC////////////ACEeQn8hH0J/ISEDQCADQeACaiADQaACakEgEK4FRQRAIANB0ABqIQYgBCEFDAILIBKnQQFxRQRAA0AgIkI/hiASQgGIhCESAkAgGkIBg1AEQCAWIRkgFSEgIBohIwwBCyAcIBZCAFIgFkIBfSIWIBVCAFIgFUIBfSIZIBpCE30iIyAaVK18IiAgGVRyrXwiGSAWVHKtfEL///////////8AfCEcCyAlQj+GIBRCP4YgIkIBiIQhIiAlQgGIISUgHEI/hiAZQgGIhCEWIBlCP4YgIEIBiIQhFSAgQj+GICNCAYiEIRogHEIBiCEcIBRCAYiEIRQgEkIBg1ANAAsgAyAiNwPQAiADIBI3A9gCIAMgFDcDyAIgAyAlNwPAAgsgE6dBAXFFBEADQCAhQj+GIBNCAYiEIRMCQCAbQgGDUARAIBghGSAXISAgGyEjDAELIB0gGEIAUiAYQgF9IhggF0IAUiAXQgF9IhkgG0ITfSIjIBtUrXwiICAZVHKtfCIZIBhUcq18Qv///////////wB8IR0LIB5CP4YgH0I/hiAhQgGIhCEhIB5CAYghHiAdQj+GIBlCAYiEIRggGUI/hiAgQgGIhCEXICBCP4YgI0IBiIQhGyAdQgGIIR0gH0IBiIQhHyATQgGDUA0ACyADICE3A/ACIAMgEzcD+AIgAyAfNwPoAiADIB43A+ACCyAeIRkCQAJAAkACQAJAIB4gJSIgUg0AIB8hGSAUISAgFCAfUg0AICEhGSAiISAgISAiUg0AIBMhGSASISAgEiATUQ0BCyAZICBUDQAgAyATIBJ9Ihk3A/gCIAMgISAifSIjIBIgE1atIhN9IiA3A/ACIAMgHyAUfSIkICEgIlQgEyAjVnKtIhN9IiM3A+gCIAMgHiAlfSATICRWIBQgH1ZyrX0iHjcD4AIgHCEfAkACQCAdIhMgHFINACAWIR8gGCITIBZSDQAgFSEfIBciEyAVUg0AIBohHyAaIBsiE1ENAQsgEyAfVA0CCyAdIBx9IBggFn0iEyAXIBV9Ih8gGiAbVq0iIVQgFSAXVnKtIiRUIBYgGFZyrX0hHSAbIBp9IRsgHyAhfSEXIBMgJH0hGAwCCyADIBIgE30iGTcD2AIgAyAiICF9IiMgEiATVK0iEn0iIDcD0AIgAyAUIB99IiQgISAiViASICNWcq0iEn0iIzcDyAIgAyAlIB59IBQgH1QgEiAkVnKtfSIlNwPAAgJAAkACQAJAIBwiEiAdIhRSDQAgFiISIBgiFFINACAVIhIgFyIUUg0AIBsiFCAaIhJRDQELIBIgFFQNAQsgHCAdfSAWIBhUIBYgGH0iFCAVIBdUIBUgF30iEiAaIBtUrSIVVHKtIhZUcq19IRwgGiAbfSEaIBIgFX0hFSAUIBZ9IRYMAQsgHCAdfSAYQn+FIhQgF0J/hSISIBtCbVatIhxUrSIiVK19IBYgFCAifSIWfCIUIBZUIBQgFSASIBx9IhV8IhIgFVQgEkJtIBt9IhUgGnwiGiAVVK18IhUgElRyrXwiFiAUVHKtfEL///////////8AfCEcCyAgISIgIyEUIBkhEgwCCyAdIBx9IBZCf4UiEyAVQn+FIh8gGkJtVq0iHVStIiFUrX0gGCATICF9Ihh8IhMgGFQgEyAXIB8gHX0iF3wiHyAXVCAfQm0gGn0iFyAbfCIbIBdUrXwiFyAfVHKtfCIYIBNUcq18Qv///////////wB8IR0LICAhISAjIR8gGSETCyADQcACaiADQaACakEgEK4FDQALCyADIBs3A2ggAyAXNwNgIAMgFTcDkAMgAyAaNwOYAyADQbgBaiAFQQhqKQMANwMAIAMgHDcDgAMgAyAdNwNQIAMgGDcDWCADIBY3A4gDIAMgBSkDADcDsAEgBikDACEUIAMgBikDCDcDqAEgAyAUNwOgASADQZQBaiADQfgAaiADQaABahD/AiADKAKQASIGQQV0IQUgAygCjAEhBwJAA0AgBUUNASAGQQFrIQYgBUEgayIFIAdqIgRBwJfAAEEgEK4FRQ0ACyAGQQBIDQAgA0GYAmogBEEYaiIFKQMANwMAIANBkAJqIARBEGoiBikDADcDACADQYgCaiAEQQhqIggpAwA3AwAgAyAEKQMANwOAAiADQYACakH4ssAAQSAQrgVFDQFCACEbIANBsAJqQgA3AwAgA0GoAmpCADcDACADQgA3A6ACIANCATcDuAIgA0HYAmogBSkDADcDACADQdACaiAGKQMANwMAIANByAJqIAgpAwA3AwAgAyAEKQMANwPAAiADQfgCakHosMAAKQMANwMAIANB8AJqQeCwwAApAwA3AwAgA0HoAmpB2LDAACkDADcDACADQdCwwAApAwA3A+ACIANBkANqIQUgA0GAA2ohBiADQcACaiADQaACakEgEK4FRQRAQqQLIRpCACEVQgAhF0IAIRZCACEYQgAhHEIAIR0MBAsgA0HgAGohBEKkCyEaIAMpA9gCIRIgAykDwAIhJSADKQPIAiEUIAMpA9ACISJCbSETQv///////////wAhH0J/IR5CfyEhQgAhHUIAIRxCACEYQgAhFkIAIRdCACEVA0AgA0HgAmogA0GgAmpBIBCuBUUEQCADQdAAaiEGIAQhBQwFCyASp0EBcUUEQANAICJCP4YgEkIBiIQhEgJAIBpCAYNQBEAgFiEZIBUhICAaISMMAQsgHCAWQgBSIBZCAX0iFiAVQgBSIBVCAX0iGSAaQhN9IiMgGlStfCIgIBlUcq18IhkgFlRyrXxC////////////AHwhHAsgJUI/hiAUQj+GICJCAYiEISIgJUIBiCElIBxCP4YgGUIBiIQhFiAZQj+GICBCAYiEIRUgIEI/hiAjQgGIhCEaIBxCAYghHCAUQgGIhCEUIBJCAYNQDQALIAMgIjcD0AIgAyASNwPYAiADIBQ3A8gCIAMgJTcDwAILIBOnQQFxRQRAA0AgIUI/hiATQgGIhCETAkAgG0IBg1AEQCAYIRkgFyEgIBshIwwBCyAdIBhCAFIgGEIBfSIYIBdCAFIgF0IBfSIZIBtCE30iIyAbVK18IiAgGVRyrXwiGSAYVHKtfEL///////////8AfCEdCyAfQj+GIB5CP4YgIUIBiIQhISAfQgGIIR8gHUI/hiAZQgGIhCEYIBlCP4YgIEIBiIQhFyAgQj+GICNCAYiEIRsgHUIBiCEdIB5CAYiEIR4gE0IBg1ANAAsgAyAhNwPwAiADIBM3A/gCIAMgHjcD6AIgAyAfNwPgAgsgHyEZAkACQAJAAkACQCAfICUiIFINACAeIRkgFCEgIBQgHlINACAhIRkgIiEgICEgIlINACATIRkgEiEgIBIgE1ENAQsgGSAgVA0AIAMgEyASfSIZNwP4AiADICEgIn0iIyASIBNWrSITfSIgNwPwAiADIB4gFH0iJCAhICJUIBMgI1ZyrSITfSIjNwPoAiADIB8gJX0gEyAkViAUIB5Wcq19Ih83A+ACIBwhHgJAAkAgHSITIBxSDQAgFiEeIBgiEyAWUg0AIBUhHiAXIhMgFVINACAaIR4gGiAbIhNRDQELIBMgHlQNAgsgHSAcfSAYIBZ9IhMgFyAVfSIeIBogG1atIiFUIBUgF1ZyrSIkVCAWIBhWcq19IR0gGyAafSEbIB4gIX0hFyATICR9IRgMAgsgAyASIBN9Ihk3A9gCIAMgIiAhfSIjIBIgE1StIhJ9IiA3A9ACIAMgFCAefSIkICEgIlYgEiAjVnKtIhJ9IiM3A8gCIAMgJSAffSAUIB5UIBIgJFZyrX0iJTcDwAICQAJAAkACQCAcIhIgHSIUUg0AIBYiEiAYIhRSDQAgFSISIBciFFINACAbIhQgGiISUQ0BCyASIBRUDQELIBwgHX0gFiAYVCAWIBh9IhQgFSAXVCAVIBd9IhIgGiAbVK0iFVRyrSIWVHKtfSEcIBogG30hGiASIBV9IRUgFCAWfSEWDAELIBwgHX0gGEJ/hSIUIBdCf4UiEiAbQm1WrSIcVK0iIlStfSAWIBQgIn0iFnwiFCAWVCAUIBUgEiAcfSIVfCISIBVUIBJCbSAbfSIVIBp8IhogFVStfCIVIBJUcq18IhYgFFRyrXxC////////////AHwhHAsgICEiICMhFCAZIRIMAgsgHSAcfSAWQn+FIhMgFUJ/hSIeIBpCbVatIh1UrSIhVK19IBggEyAhfSIYfCITIBhUIBMgFyAeIB19Ihd8Ih4gF1QgHkJtIBp9IhcgG3wiGyAXVK18IhcgHlRyrXwiGCATVHKtfEL///////////8AfCEdCyAgISEgIyEeIBkhEwsgA0HAAmogA0GgAmpBIBCuBQ0ACwwDCwwLCyADQgI3A1BBsLHAAEErIANB0ABqQdyxwABByLXAABD9AwALIANCAjcDUEGwscAAQSsgA0HQAGpB3LHAAEHYtcAAEP0DAAsgAyAbNwNoIAMgFzcDYCADIBU3A5ADIAMgGjcDmAMgA0H4AWogBUEIaikDADcDACADIBw3A4ADIAMgHTcDUCADIBg3A1ggAyAWNwOIAyADIAUpAwA3A/ABIAYpAwAhFCADIAYpAwg3A+gBIAMgFDcD4AEgAEEMaiADQYgBaiADQeABahD/AiAAQQhqIANBnAFqKAIANgIAIAAgAykClAE3AgAgAygCiAEiAARAIAcgAEEFdBCUBQsgAygCeCIABEAgAygCfCAAQQV0EJQFCyADKAJAIgAEQCADKAJEIABBBXQQlAULIAMoAigiAARAIAMoAiwgAEEFdBCUBQsgAygCNCIABEAgAygCOCAAQQV0EJQFCyACKAIAIgAEQCAQIABBBXQQlAULIAIoAgwiAARAIA4gAEEFdBCUBQsgASgCACIABEAgDyAAQQV0EJQFCyABKAIMIgAEQCAMIABBBXQQlAULIANBoANqJAAPCwwICwwHCwwGCwwFCyAEIAsQgwUACyAEIAcQgwUACyAEIAkQgwUACyAEIAYQgwUAC0GcncAAQSsgA0HQAGpByJ3AAEHYncAAEP0DAAsgBCAIEIMFAAuRNAIUfxd+IwBBgAZrIgMkACACKAIIIghBBXQhBCACKAIEIg1BIGshBiAIIQoCQAJAAkACQANAIARFDQEgCkEBayEKIAQgBmogBEEgayEEQcCXwABBIBCuBUUNAAsgCkEBaiEMIApBf3MhFiABKAIIIgVBBXQhBCABKAIEIRQgBSEGA0AgBARAIAZBAWshBiAEQSBrIgQgFGpBwJfAAEEgEK4FRQ0BDAMLC0F/IQYgBQ0BQQghB0EBIRIMAgsgA0EANgKgBSADQQE2ApQFIANBlJ7AADYCkAUgA0IENwKYBSADQZAFakGcnsAAEM0EAAsgBUEFdCELIAVB////H0sEQAwCC0EAIQRBudHCAC0AABpBCCEOIAtBCBCLBSIHRQ0BIAVBBXQhCSAFIQsDQCAEIAlGDQEgBCAHaiIPIAQgFGoiECkDADcDACAPQRhqIBBBGGopAwA3AwAgD0EQaiAQQRBqKQMANwMAIA9BCGogEEEIaikDADcDACAEQSBqIQQgC0EBayILDQALCyADIAU2ApQEIAMgBzYCkAQgAyAFNgKMBAJAAkAgBiAKTgRAIAYgCmtBAWohEwJAIAogBmtBAUYEQEEIIQsMAQsgE0EFdCEEIBNB////H0sEQEEAIQkMBAtBudHCAC0AABpBCCEJIARBCBCLBSILRQ0DIAshBCAGIApHBEAgBkEBaiEJA0AgBEIANwMAIARBGGpCADcDACAEQRBqQgA3AwAgBEEIakIANwMAIARBIGohBCAMIAlBAWsiCUcNAAsLIARCADcDACAEQRhqQgA3AwAgBEEQakIANwMAIARBCGpCADcDAAsgCEEFdCEEAkACQAJAAkACQANAIARFDQEgCEEBayEIIARBIGsiBCANaiIMQcCXwABBIBCuBUUNAAsgCEEASA0AIANBsARqIAxBGGoiCSkDADcDACADQagEaiAMQRBqIggpAwA3AwAgA0GgBGogDEEIaiIEKQMANwMAIAMgDCkDADcDmAQgA0GYBGpBwJfAAEEgEK4FRQ0EIANB4ARqQgA3AwAgA0HYBGpCADcDACADQgA3A9AEIANCATcD6AQgA0GIBWogCSkDADcDACADQYAFaiAIKQMANwMAIANB+ARqIAQpAwA3AwAgAyAMKQMANwPwBCADQagFakH4l8AAKQMANwMAIANBoAVqQfCXwAApAwA3AwAgA0GYBWpB6JfAACkDADcDACADQeCXwAApAwA3A5AFAkAgA0HwBGogA0HQBGpBIBCuBUUEQEKJ9auctYu/lnMhIUL7g5SinaLG87V/ISJC9v+F0vDfx9XHACEgQp/q4NWc7qfsBiEkDAELQvb/hdLw38fVxwAhIEL7g5SinaLG87V/ISJCifWrnLWLv5ZzISFCn+rg1Zzup+wGISQgAykDiAUhGyADKQPwBCElIAMpA/gEIRkgAykDgAUhJkLH+vPD7YKjkDwhF0KpwMaJrs6TsjAhKULdsIWM6LaRqLh/IRhCjZXHw5bS2sCXfyEnA0AgA0GQBWogA0HQBGpBIBCuBUUEQCAeISQgHyEgICMhIiAcISEMAgsgG6dBAXFFBEADQCAmQj+GIBtCAYiEIRsCQCAhQgGDUARAICAhHSAiIRoMAQsgJCAgQqPP+vOXye7XxwB9Ih0gIFQgHSAdICJC8+q4vOmtpb/oAH0iGiAiVCAaIBogISAhQsf688PtgqOQPHwiIVatfCIaVnKtfCIdVnKtfEKpwMaJrs6TsjB8ISQLICVCP4YgGUI/hiAmQgGIhCEmICVCAYghJSAkQj+GIB1CAYiEISAgHUI/hiAaQgGIhCEiIBpCP4YgIUIBiIQhISAkQgGIISQgGUIBiIQhGSAbQgGDUA0ACyADICY3A4AFIAMgGzcDiAUgAyAZNwP4BCADICU3A/AECyAXp0EBcUUEQANAICdCP4YgF0IBiIQhFwJAIBxCAYNQBEAgHCEaICMhHCAfIR0MAQsgHiAfIB9Co8/685fJ7tfHAH0iH1YgHyAjQvPquLzpraW/6AB9Ih0gI1QgHSAcQsf688PtgqOQPHwiGiAcVK18IhwgHVRyrXwiHSAfVHKtfEKpwMaJrs6TsjB8IR4LIClCP4YgGEI/hiAnQgGIhCEnIClCAYghKSAeQj+GIB1CAYiEIR8gHUI/hiAcQgGIhCEjIBxCP4YgGkIBiIQhHCAeQgGIIR4gGEIBiIQhGCAXQgGDUA0ACyADICc3A6AFIAMgFzcDqAUgAyAYNwOYBSADICk3A5AFCwJAAkACQAJAICUiGiApIh1SDQAgGCEdIBkhGiAYIBlSDQAgJiIaICciHVINACAXIR0gFyAbIhpRDQELIBogHVYNACADIBcgG30iKDcDqAUgAyAnICZ9IhogFyAbVK0iF30iHTcDoAUgAyAYIBl9IiogFyAaViAmICdWcq0iF30iGjcDmAUgAyApICV9IBggGVQgFyAqVnKtfSIpNwOQBQJAAkAgHiIXICQiGFINACAgIhggHyIXUg0AICIiGCAjIhdSDQAgISIYIBwiF1ENAQsgFyAYVA0CCyAeICR9IB8gIH0iLCAjICJ9Ii0gHCAhVK0iK1QgIiAjVnKtIipUIB8gIFRyrX0hHiAcICF9IRwgHSEnIBohGCAoIRcgLSArfSEjICwgKn0hHwwCCyADIBsgF30iKDcDiAUgAyAmICd9IhogFyAbVq0iG30iHTcDgAUgAyAZIBh9IiogJiAnVCAaIBtUcq0iG30iGjcD+AQgAyAlICl9IBggGVYgGyAqVnKtfSIlNwPwBAJAAkACQCAeIhkgJCIbUg0AICAiGyAfIhlSDQAgIiIbICMiGVINACAhIhsgHCIZUQ0BCyAZIBtWDQELICQgHn0gHyAgViAgIB99IisgIiAjVCAiICN9IiogHCAhVq0iIlRyrSIgVHKtfSEkICEgHH0hISAdISYgGiEZICghGyArICB9ISAgKiAifSEiDAILICQgHn1C3bCFjOi2kai4fyAffSIkQo2Vx8OW0trAl38gI30iJiAcQsf688PtgqOQPFatIhtUICNCjZXHw5bS2sCXf1ZyrSIZVCAfQt2whYzotpGouH9Wcq19ICQgGX0iGSAgfCIgIBlUICAgICAmIBt9IhkgInwiGyAZVCAbQsf688PtgqOQPCAcfSIZICF8IiEgGVStfCIiIBtUcq18IiBWcq18QqnAxomuzpOyMHwhJCAdISYgGiEZICghGwwBCyAeQt2whYzotpGouH8gIH0iHkKNlcfDltLawJd/ICJ9IicgIULH+vPD7YKjkDxWrSIYVCAiQo2Vx8OW0trAl39Wcq0iF1QgIELdsIWM6LaRqLh/VnKtICR8fSAeIBd9IhcgH3wiHyAXVCAfIB8gJyAYfSIXICN8IhggF1QgGELH+vPD7YKjkDwgIX0iFyAcfCIcIBdUrXwiIyAYVHKtfCIfVnKtfEKpwMaJrs6TsjB8IR4gHSEnIBohGCAoIRcLIANB8ARqIANB0ARqQSAQrgUNAAsLQQAgCmshEANAAkACQCAFIAZLBEAgA0HIA2ogByAGQQV0aiIFKQMYIiogIUIAEPwDIANByAJqIAUpAxAiKSAhQgAQ/AMgA0HIAWogBSkDCCIoICFCABD8AyADQcgAaiAFKQMAIh4gIUIAEPwDIANBuANqIAMpA8gDIhpCiceZpK7wgemHf34iF0LH+vPD7YKjkDxCABD8AyADQagDaiAXQo2Vx8OW0trAl39CABD8AyADQZgDaiAXQt2whYzotpGouH9CABD8AyADQYgDaiAXQqnAxomuzpOyMEIAEPwDIANB2ANqICogIkIAEPwDIANB2AJqICkgIkIAEPwDIANB2AFqICggIkIAEPwDIANB2ABqIB4gIkIAEPwDIANBuAJqIAMpA6gDIhsgA0HQA2opAwAiGSADKQPIAnwiGHwiHCADQcADaikDACAaIAMpA7gDIhd8IBdUrXx8Ih0gAykD2AN8IhdCiceZpK7wgemHf34iGkLH+vPD7YKjkDxCABD8AyADQagCaiAaQo2Vx8OW0trAl39CABD8AyADQZgCaiAaQt2whYzotpGouH9CABD8AyADQYgCaiAaQqnAxomuzpOyMEIAEPwDIANB6ANqICogIEIAEPwDIANB6AJqICkgIEIAEPwDIANB6AFqICggIEIAEPwDIANB6ABqIB4gIEIAEPwDIANBuAFqIANB4ANqKQMAIBcgHVStfCIaIAMpA9gCfCIlIANB0AJqKQMAIBggGVStfCIZIAMpA8gBfCImIAMpA5gDfCInIBwgHVatIANBsANqKQMAIBsgHFatfHx8Ihh8Ih8gAykDqAJ8IiMgA0HAAmopAwAgFyADKQO4AiIXfCAXVK18fCIcIAMpA+gDfCIXQonHmaSu8IHph39+IhtCx/rzw+2Co5A8QgAQ/AMgA0GoAWogG0KNlcfDltLawJd/QgAQ/AMgA0GYAWogG0LdsIWM6LaRqLh/QgAQ/AMgA0GIAWogG0KpwMaJrs6TsjBCABD8AyADQfgDaiAqICRCABD8AyADQfgCaiApICRCABD8AyADQfgBaiAoICRCABD8AyADQfgAaiAeICRCABD8AyADQThqIANB8ANqKQMAIBcgHFStfCIbIAMpA+gCfCIqIANB0AFqKQMAIBkgJlatfCIZIAMpA0h8IikgAykDiAN8Ih0gGCAnVK0gA0GgA2opAwAgJiAnVq18fHwiKCADKQPYAXwiHiAfICVUrSADQeACaikDACAaICVWrXx8fCIlIAMpA5gCfCImIBwgI1StIANBsAJqKQMAIB8gI1atfHx8Ihh8IicgAykDqAF8IhwgA0HAAWopAwAgFyADKQO4ASIXfCAXVK18fCIfIAMpA/gDfCIjQonHmaSu8IHph39+IhdCx/rzw+2Co5A8QgAQ/AMgA0EoaiAXQo2Vx8OW0trAl39CABD8AyADQRhqIBdC3bCFjOi2kai4f0IAEPwDIANBCGogF0KpwMaJrs6TsjBCABD8AyADQRBqKQMAIANBkAFqKQMAIANBkAJqKQMAIB0gKFatIANBkANqKQMAIB0gKVStfHwgA0HQAGopAwAgGSApVq18fCIXIAMpA1h8Ih0gHiAlVq0gA0HgAWopAwAgHiAoVK18fHwiGiADKQOIAnwiGSAaVK18IBkgGCAmVK0gA0GgAmopAwAgJSAmVq18fHwiGCAZVK18IBogHVStIANB4ABqKQMAIBcgHVatfHx8IhcgAykDaHwiGiADQfABaikDACAYIBggAykD6AF8IhhWrXwgGCAYICcgKlStIANB8AJqKQMAIBsgKlatfHx8IhhWrXx8IhsgAykDiAF8IhkgG1StfCAZIBkgA0GgAWopAwAgGCAYIAMpA5gBfCIYVq18IBggGCAcIB9WrSADQbABaikDACAcICdUrXx8fCIYVq18fCIZVq18IBogG1atIANB8ABqKQMAIBcgGlatfHx8IhsgAykDeHwiHCADQYACaikDACAZIAMpA/gBfCIaIBlUrXwgGiADQYADaikDACADQYAEaikDACAfICNWrXwiFyADKQP4AnwiGSAXVK18IBggGXwiGCAZVK18fCIXIBpUrXx8Ih0gAykDCHwiGiAdVK18IBogA0EgaikDACAXIAMpAxh8IhkgF1StfCAZIANBMGopAwAgGCAYIAMpAyh8IhhWrXwgGCADQUBrKQMAIAMpAzgiFyAjfCAXVK18fCIeIBhUrXx8IhggGVStfHwiGSAaVK18IBwgHVatIANBgAFqKQMAIBsgHFatfHx8IhxCqcDGia7Ok7IwVg0BAkACQCAcQqnAxomuzpOyMFEEQCAZQt2whYzotpGouH9WDQQgGULdsIWM6LaRqLh/UgRAIBghFyAZISUMAwsgGEKNlcfDltLawJd/Vg0EQt2whYzotpGouH8hJSAYQo2Vx8OW0trAl39RDQEgGCEXDAILIBghFyAZISUMBAtCjZXHw5bS2sCXfyEXIB5Cx/rzw+2Co5A8Wg0CC0KpwMaJrs6TsjAhHAwCCyAGIAVBrJ7AABCYBAALIBhC8+q4vOmtpb/oAHwiHSAeQsf688PtgqOQPFStIhp9IRcgGUKjz/rzl8nu18cAfCIbIBhCjZXHw5bS2sCXf1QgGiAdVnKtIhh9ISUgHCAZQt2whYzotpGouH9UIBggG1ZyrX1CqcDGia7Ok7IwfSEcIB5Cx/rzw+2Co5A8fSEeCyADIB43A6gFIAMgFzcDoAUgAyAlNwOYBSADIBw3A5AFIBMgBiAQaiIRSwRAQQghDiADQZgFaikDACEZIANBoAVqKQMAIRggA0GoBWopAwAhFyALIBFBBXQiFWoiBSADKQOQBTcDACAFQRhqIBc3AwAgBUEQaiAYNwMAIAVBCGogGTcDACADQcQEaiACIANBkAVqEIADQQghCCAGIApHBEAgEUH///8fSwRAQQAhBAwGC0G50cIALQAAGkEIIQQgFUEIEIsFIghFDQUgCCEEAkAgBkEBayAKRg0AIBFBAWsiCUEHcSAKIAZrQQFqQXhNBEAgCUF4cSEHA0AgBEIANwMAIARBGGpCADcDACAEQRBqQgA3AwAgBEEIakIANwMAIARBIGpCADcDACAEQShqQgA3AwAgBEEwakIANwMAIARBOGpCADcDACAEQUBrQgA3AwAgBEHIAGpCADcDACAEQdAAakIANwMAIARB2ABqQgA3AwAgBEHgAGpCADcDACAEQegAakIANwMAIARB8ABqQgA3AwAgBEH4AGpCADcDACAEQZgBakIANwMAIARBkAFqQgA3AwAgBEGIAWpCADcDACAEQYABakIANwMAIARBuAFqQgA3AwAgBEGwAWpCADcDACAEQagBakIANwMAIARBoAFqQgA3AwAgBEHAAWpCADcDACAEQcgBakIANwMAIARB0AFqQgA3AwAgBEHYAWpCADcDACAEQeABakIANwMAIARB6AFqQgA3AwAgBEHwAWpCADcDACAEQfgBakIANwMAIARBgAJqIQQgB0EIayIHDQALC0UNACAGIBZqQQdxIQcDQCAEQgA3AwAgBEEYakIANwMAIARBEGpCADcDACAEQQhqQgA3AwAgBEEgaiEEIAdBAWsiBw0ACwsgBEIANwMAIARBGGpCADcDACAEQRBqQgA3AwAgBEEIakIANwMACyADIBE2AqAEIAMgCDYCnAQgAyARNgKYBCADKALIBCESAkACQAJAIAMoAswEIgVFBEBBACEHDAELIAVBBXQhByAFQf///x9LBEBBACEEDAcLQbnRwgAtAAAaQQghBCAHQQgQiwUiDkUNBiAFQQV0IQxBACEEIAUhCQNA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HCADKQPIASIofCInIANB4AFqKQMAIBsgAykD2AEiG3wgG1StfHwiGyADKQPoAnwiJkKx6pSR3aOCnFh+IixCr/j//29CABD8AyADQegAaiAsQn9CABD8AyADQfgCaiAXICVCABD8AyADQZgCaiAYICVCABD8AyADQbgBaiAZICVCABD8AyADQdgAaiAaICVCABD8AyADQRhqIANB8AJqKQMAIBsgJlatfCIsIAMpA4gCfCIXICggHyADQZABaikDACAhIClUrXwiLSADKQMofCIYfCIZICIgK1atIB4gISAiVq18fHwiGiADKQOYAXwiHyAcIB1UrSADQYACaikDACAdICpUrXx8fCIdfCIhIBsgJ1StIANB0AFqKQMAIhsgHCAnVq18fHwiLnwiHCADKQNoIiJ8IicgA0GAAWopAwAgJiADKQN4IiZ8ICZUrXx8IiYgAykD+AJ8IipCseqUkd2jgpxYfiIpQq/4//9vQgAQ/AMgA0EIaiApQn9CABD8AwJAAkAgA0EQaikDACIpIANB8ABqKQMAIisgIiAbICggGSAaVq0gHiAYIBlWrXx8Ih4gA0EwaikDACAYIC1UrXx8IhggAykDOHwiGSAdIB9UrSADQaABaikDACAaIB9WrXx8fCIafCIfIBpUrXwgHyAfICEgLlatIBsgHSAhVq18fHwiH1atfCIbIBkgGlatIANBQGspAwAgGCAZVq18fCIdIBggHlStfCIefCIYIAMpA0h8IhkgA0GwAWopAwAgHyADKQOoAXwiGiAfVK18IBogFyAcVq0gA0GQAmopAwAgFyAsVK18fHwiFyAaVK18fCIafCIfIBpUrXwgHyArIBcgFyAifCIXVq18IBcgJiAnVK0gKyAcICdWrXx8fCIhIBdUrXx8IhcgH1StfCIiIBkgGlatIANB0ABqKQMAIBggGVatfHwiKCAYIBtUrSAdIB5WrXx8Ih18Ih8gAykDWHwiHCADQcABaikDACAXIBcgAykDuAF8IhdWrXwgFyAXIANBoAJqKQMAIANBgANqKQMAICYgKlatfCIZIAMpA5gCfCIYIBlUrXwgGCAYICF8IhhWrXx8IhdWrXx8Ih4gAykDCCIZfCIbIB5UrXwgGyApIBcgFyAZfCIXVq18IBcgKSAYIBggGXwiGFatfCAYIANBIGopAwAgAykDGCIZICp8IBlU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RgRAQQghDQwBCyAOQQV0IQQgDkH///8fSwRAQQAhBwwEC0G50cIALQAAGkEIIQcgBEEIEIsFIg1FDQMgDSEEIAUgCkcEQCAFQQFqIQcDQCAEQgA3AwAgBEEYakIANwMAIARBEGpCADcDACAEQQhqQgA3AwAgBEEgaiEEIBAgB0EBayIHRw0ACwsgBEIANwMAIARBGGpCADcDACAEQRBqQgA3AwAgBEEIakIANwMACyAJQQV0IQQCQAJAAkACQAJAA0AgBEUNASAJQQFrIQkgBEEgayIEIA9qIgdBwJfAAEEgEK4FRQ0ACyAJQQBIDQAgA0HwA2ogB0EYaiIEKQMANwMAIANB6ANqIAdBEGoiCSkDADcDACADQeADaiAHQQhqIgspAwA3AwAgAyAHKQMANwPYAyADQdgDakHAl8AAQSAQrgVFDQQgA0GgBGpCADcDACADQZgEakIANwMAIANCADcDkAQgA0IBNwOoBCADQcgEaiAEKQMANwMAIANBwARqIAkpAwA3AwAgA0G4BGogCykDADcDACADIAcpAwA3A7AEIANB6ARqQbiYwAApAwA3AwAgA0HgBGpBsJjAACkDADcDACADQdgEakGomMAAKQMANwMAIANBoJjAACkDADcD0AQCQCADQbAEaiADQZAEakEgEK4FRQRAQqQLISMMAQtCpAshIyADKQPIBCEYIAMpA7AEISggAykDuAQhGSADKQPABCEiQm0hF0L///////////8AISlCfyEaQn8hJANAIANB0ARqIANBkARqQSAQrgVFBEAgHSEmIB4hISAgISUgGyEjDAILIBinQQFxRQRAA0AgIkI/hiAYQgGIhCEYAkAgI0IBg1AEQCAhIRwgJSEfDAELICYgIUIAUiAhQgF9IiEgJUIAUiAlQgF9IhwgIyAjQhN9IiNWrXwiHyAcVHKtfCIcICFUcq18Qv///////////wB8ISYLIChCP4YgGUI/hiAiQgGIhCEiIChCAYghKCAmQj+GIBxCAYiEISEgHEI/hiAfQgGIhCElIB9CP4YgI0IBiIQhIyAmQgGIISYgGUIBiIQhGSAYQgGDUA0ACyADICI3A8AEIAMgGDcDyAQgAyAZNwO4BCADICg3A7AECyAXp0EBcUUEQANAICRCP4YgF0IBiIQhFwJAIBtCAYNQBEAgGyEfICAhGyAeIRwMAQsg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A7gBfCIdIBwgIFStIANBsAJqKQMAICAgJ1StfHx8IiB8IiIgGyAfVK0gA0GAAmopAwAiJyAcIB9WrXx8fCIpfCIcIAMpA4gBIip8Ih8gA0GgAWopAwAgAykDmAEiGyAefCAbVK18fCIbIAMpA7gDfCIeQpuUr8Pytajehn9+IiRCbUIAEPwDIANBGGogJEJ/QgAQ/AMgA0EIaiAkQv///////////wBCABD8AyADQRBqKQMAIANBgAFqKQMAIANB8AFqKQMAIBkgGlatIANB4AJqKQMAIBggGVatfHwiJCADQUBrKQMAIBggKFStfHwiGCADKQNIfCIZIB0gIFatIANBwAFqKQMAIBogHVatfHx8IhogAykD6AF8Ih0gGlStfCAdICIgKVatICcgICAiVq18fHwiICAdVK18Ih0gGSAaVq0gA0HQAGopAwAgGCAZVq18fCIiIBggJFStfCIkfCIYIAMpA1h8IhkgA0HQAWopAwAgICADKQPIAXwiGiAgVK18IBogFyAcVq0gA0HAAmopAwAgFyAsVK18fHwiFyAaVK18fCIaIAMpA3h8IiAgGlStfCAgIANBkAFqKQMAIicgFyAXICp8IhdWrXwgFyAbIB9UrSAnIBwgH1atfHx8Ih8gF1StfHwiFyAgVK18IiAgGSAaVq0gA0HgAGopAwAgGCAZVq18fCInIBggHVStICIgJFatfHwiHXwiGCADKQNofCIcIANB4AFqKQMAIBcgFyADKQPYAXwiF1atfCAXIBcgA0HQAmopAwAgA0HAA2opAwAgGyAeVq18IhogAykDyAJ8IhkgGlStfCAZIBkgH3wiGVatfHwiF1atfHwiHyADKQMIfCIaIB9UrXwgGiAaIANBIGopAwAiGyAXIBcgAykDGCIifCIXVq18IBcgGyAZIBkgInwiGVatfCAZIANBMGopAwAgAykDKCIbIB58IBtUrXx8IhsgGVStfHwiGSAXVK18fCIaVq18IhcgHCAfVq0gA0HwAGopAwAgGCAcVq18fCIcIBggIFStIB0gJ1StfHwiGHwiHUIAUyAXIB1WrUIAIBggHFStfVJyDQECQAJAIB1C////////////AFEEQCAaQn9SBEAgGSEXIBohGAwDC0J/IRggGUJ/UQ0BIBkhFwwCCyAZIRcgGiEYDAQLQn8hFyAbQm1aDQILQv///////////wAhHQwCCyAFIAZBrJ7AABCYBAALIBlCAXwiGCAbQm1UrSIcfSEXIBpCAXwiHyAZQn9SIBggHFRyrSIZfSEYIB0gGkJ/UiAZIB9Wcq19Qv///////////wB9IR0gG0ITfCEbCyADIBs3A+gEIAMgFzcD4AQgAyAYNwPYBCADIB03A9AEIA4gBSATaiIMSwRAQQghCyADQdgEaikDACEXIANB4ARqKQMAIRggA0HoBGopAwAhGSANIAxBBXQiD2oiBiADKQPQBDcDACAGQRhqIBk3AwAgBkEQaiAYNwMAIAZBCGogFzcDACADQYQEaiACIANB0ARqEP8CQQghBiAFIApHBEAgDEH///8fSwRAQQAhBAwGC0G50cIALQAAGkEIIQQgD0EIEIsFIgZFDQUgBiEEAkAgBUEBayAKRg0AIAxBAWsiB0EHcSAKIAVrQQFqQXhNBEAgB0F4cSEIA0AgBEIANwMAIARBGGpCADcDACAEQRBqQgA3AwAgBEEIakIANwMAIARBIGpCADcDACAEQShqQgA3AwAgBEEwakIANwMAIARBOGpCADcDACAEQUBrQgA3AwAgBEHIAGpCADcDACAEQdAAakIANwMAIARB2ABqQgA3AwAgBEHgAGpCADcDACAEQegAakIANwMAIARB8ABqQgA3AwAgBEH4AGpCADcDACAEQZgBakIANwMAIARBkAFqQgA3AwAgBEGIAWpCADcDACAEQYABakIANwMAIARBuAFqQgA3AwAgBEGwAWpCADcDACAEQagBakIANwMAIARBoAFqQgA3AwAgBEHAAWpCADcDACAEQcgBakIANwMAIARB0AFqQgA3AwAgBEHYAWpCADcDACAEQeABakIANwMAIARB6AFqQgA3AwAgBEHwAWpCADcDACAEQfgBakIANwMAIARBgAJqIQQgCEEIayIIDQALC0UNACAFIBVqQQdxIQgDQCAEQgA3AwAgBEEYakIANwMAIARBEGpCADcDACAEQQhqQgA3AwAgBEEgaiEEIAhBAWsiCA0ACwsgBEIANwMAIARBGGpCADcDACAEQRBqQgA3AwAgBEEIakIANwMACyADIAw2AuADIAMgBjYC3AMgAyAMNgLYAyADKAKIBCEUAkACQAJAIAMoAowEIglFBEBBACEIDAELIAlBBXQhCCAJQf///x9LBEBBACEEDAcL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HVatfHx8Ih0gAykD6AJ8IhUgGSAbVq0gA0GAA2opAwAgFCAZVq18fHwiGnwiFCADKQPoAXwiGSADQYACaikDACADKQP4ASIPIBZ8IA9UrXx8IhsgAykDiAF8IhZCAEKJx5mkrvCB6Yd/EPwDIANB6ABqIANBgAFqKQMAIg9Cx/rzw+2Co5A8QgAQ/AMgA0HYAGogD0KNlcfDltLawJd/QgAQ/AMgA0HIAGogD0LdsIWM6LaRqLh/QgAQ/AMgA0E4aiAPQqnAxomuzpOyMEIAEPwDAkAgA0FAaykDACADQdABaikDACADQeACaikDACASIBNWrSADQfADaikDACARIBJWrXx8IANBwANqKQMAIBEgGFStfHwiGCADKQOoAnwiDyAcIB1WrSADQcACaikDACATIBxWrXx8fCIRIAMpA9gCfCISIBFUrXwgEiASIBUgGlatIANB8AJqKQMAIBUgHVStfHx8IhJWrXwgDyARVq0gA0GwAmopAwAgDyAYVK18fHwiEyADKQOYAXwiDyADQbABaikDACASIAMpA6gBfCIRIBJUrXwgESAQIBRWrSADQcABaikDACAQIBdUrXx8fCIQIBFUrXx8IhEgAykDyAF8IhIgEVStfCASIANB4AFqKQMAIBAgECADKQPYAXwiEFatfCAQIBkgG1atIANB8AFqKQMAIBQgGVatfHx8IhQgEFStfHwiECASVK18IA8gEVatIANBoAFqKQMAIA8gE1StfHx8IhkgAykDCHwiESADQSBqKQMAIBAgAykDGHwiDyAQVK18IA8gDyADQTBqKQMAIANBkAFqKQMAIBYgG1StfCISIAMpAyh8IhAgElStfCAQIBAgFHwiEFatfHwiD1atfHwiEiADKQM4fCITIBJUrXwgEyADQdAAaikDACAPIA8gAykDSHwiD1atfCAPIA8gA0HgAGopAwAgECAQIAMpA1h8IhBWrXwgECADQfAAaikDACADKQNoIhQgFnwgFFStfHwiFyAQVK18fCIPVq18fCIQIBNUrXwgESASVq0gA0EQaikDACARIBlUrXx8fCIYQqnAxomuzpOyMFYNACAYQqnAxomuzpOyMFINAiAQQt2whYzotpGouH9WDQAgEELdsIWM6LaRqLh/UgRAQqnAxomuzpOyMCEYDAMLIA9CjZXHw5bS2sCXf1YNAELdsIWM6LaR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rXx8IgwgAykD6AR8IgsgFXwiDTcD0ApBACEBAkAgCyANVq0gDiALIAxUrXx8IgtQBEBBACECDAELIAMgCyADKQP4CnwiDDcD+AogCyAMViICRQ0AIAMgAq0iCyADKQOIB3wiDDcDiAcgCyAMViECIAsgDFgNACADIAKtIgsgAykDmAd8Igw3A5gHIAsgDFYhAiALIAxYDQAgAq0iCyAPfCIPIAtUIQILIANB2ARqIAMpA5AKIgxCiceZpK7wgemHf34iC0LH+vPD7YKjkDxCABD8AyADQcgEaiALQo2Vx8OW0trAl39CABD8AyADQbgEaiALQt2whYzotpGouH9CABD8AyADQagEaiALQqnAxomuzpOyMEIAEPwDIAMgDCADKQPYBCILfCIMNwOQCiADQdAEaikDACENIAMgA0HgBGopAwAgCyAMVq18IgwgAykDyAR8IgsgAykDsAp8Ig43A7AKIANBwARqKQMAIRAgAyALIA5WrSANIAsgDFStfHwiDCADKQO4BHwiCyADKQPQCnwiDTcD0AogA0GwBGopAwAhDiADIAsgDVatIBAgCyAMVK18fCIMIAMpA6gEfCILIAMpA/gKfCINNwP4CgJAIAsgDVatIA4gCyAMVK18fCILUA0AIAMgCyADKQOIB3wiDDcDiAcgCyAMViEBIAsgDFgNACADIAGtIgsgAykDmAd8Igw3A5gHIAsgDFYhASALIAxYDQAgAa0iCyAPfCIPIAtUIQELIANBmARqIAMpA7AKIgxCiceZpK7wgemHf34iC0LH+vPD7YKjkDxCABD8AyADQYgEaiALQo2Vx8OW0trAl39CABD8AyADQfgDaiALQt2whYzotpGouH9CABD8AyADQegDaiALQqnAxomuzpOyMEIAEPwDIAMgDCADKQOYBCILfCIMNwOwCiADQZAEaikDACENIAMgA0GgBGopAwAgCyAMVq18IgwgAykDiAR8IgsgAykD0Ap8Ig43A9AKIANBgARqKQMAIRAgAyALIA5WrSANIAsgDFStfHwiDCADKQP4A3wiCyADKQP4CnwiDTcD+AogA0HwA2opAwAhDiADIAsgDVatIBAgCyAMVK18fCIMIAMpA+gDfCILIAMpA4gHfCINNwOIByALIA1WrSAOIAsgDFStfHwiC1BFBEAgAyALIAMpA5gHfCIMNwOYByALIAxW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mAMgAygCmAciAQRAIAMoApwHIAEQlAULIAMoAogHIgEEQCADKAKMByABEJQFCyAAQQE2AgAMAQsgACADKQPIBjcDCCAAQQA2AgAgAEFAayADQYAHaikDADcDACAAQThqIANB+AZqKQMANwMAIABBMGogA0HwBmopAwA3AwAgAEEoaiADQegGaikDADcDACAAQSBqIANB4AZqKQMANwMAIABBGGogA0HYBmopAwA3AwAgAEEQaiADQdAGaikDADcDAAwACyADQYALaiQADwtBkJvBAEE3IANB+ApqQcibwQBBpJzBABD9AwAL3S0CFH8XfiMAQcAEayIDJAAgAigCCCIIQQV0IQQgAigCBCINQSBrIQYgCCEKAkACQAJAAkADQCAERQ0BIApBAWshCiAEIAZqIARBIGshBEHAl8AAQSAQrgVFDQALIApBAWohDCAKQX9zIRYgASgCCCIFQQV0IQQgASgCBCEUIAUhBgNAIAQEQCAGQQFrIQYgBEEgayIEIBRqQcCXwABBIBCuBUUNAQwDCwtBfyEGIAUNAUEIIQdBASESDAILIANBADYC4AMgA0EBNgLUAyADQZSewAA2AtADIANCBDcC2AMgA0HQA2pBnJ7AABDNBAALIAVBBXQhCyAFQf///x9LBEAMAgtBACEEQbnRwgAtAAAaQQghDiALQQgQiwUiB0UNASAFQQV0IQkgBSELA0AgBCAJRg0BIAQgB2oiDyAEIBRqIhApAwA3AwAgD0EYaiAQQRhqKQMANwMAIA9BEGogEEEQaikDADcDACAPQQhqIBBBCGopAwA3AwAgBEEgaiEEIAtBAWsiCw0ACwsgAyAFNgLUAiADIAc2AtACIAMgBTYCzAICQAJAIAYgCk4EQCAGIAprQQFqIRMCQCAKIAZrQQFGBEBBCCELDAELIBNBBXQhBCATQf///x9LBEBBACEJDAQLQbnRwgAtAAAaQQghCSAEQQgQiwUiC0UNAyALIQQgBiAKRwRAIAZBAWohCQNAIARCADcDACAEQRhqQgA3AwAgBEEQakIANwMAIARBCGpCADcDACAEQSBqIQQgDCAJQQFrIglHDQALCyAEQgA3AwAgBEEYakIANwMAIARBEGpCADcDACAEQQhqQgA3AwALIAhBBXQhBAJAAkACQAJAAkADQCAERQ0BIAhBAWshCCAEQSBrIgQgDWoiDEHAl8AAQSAQrgVFDQALIAhBAEgNACADQfACaiAMQRhqIgkpAwA3AwAgA0HoAmogDEEQaiIIKQMANwMAIANB4AJqIAxBCGoiBCkDADcDACADIAwpAwA3A9gCIANB2AJqQcCXwABBIBCuBUUNBCADQaADakIANwMAIANBmANqQgA3AwAgA0IANwOQAyADQgE3A6gDIANByANqIAkpAwA3AwAgA0HAA2ogCCkDADcDACADQbgDaiAEKQMANwMAIAMgDCkDADcDsAMgA0HoA2pB2JjAACkDADcDACADQeADakHQmMAAKQMANwMAIANB2ANqQciYwAApAwA3AwAgA0HAmMAAKQMANwPQAwJAIANBsANqIANBkANqQSAQrgVFBEBCAyEmQv////+/fyEgQn4hIUL9////zwAhKAwBC0J+ISFC/////79/ISBCAyEmQv3////PACEoIAMpA8gDIRsgAykDsAMhKiADKQO4AyEYIAMpA8ADISJCfyEXQoGAgIBwISdC/////w8hIwNAIANB0ANqIANBkANqQSAQrgVFBEAgJSEoIB4hISAaISAgHyEmDAILIBunQQFxRQRAA0AgIkI/hiAbQgGIhCEbAn4gJqdBAXFFBEAgKEI/hiAhQj+GIRwgIEI/hiAmQgGIhCEmIChCAYghKCAhQgGIhCEhIBwgIEIBiIQMAQsgKEL/////D30iKSAhICBCgICAgBB8IiRQICBC/////w98ICBUcq18IiAgIVStfCIhQgGIIh1CgICAgICAgICAf4QiHCAcIB0gISApVBsgKCApVhshKCAhQj+GICBCAYiEISEgJEI/hiAmQgF9QgGIhCEmICBCP4YgJEIBiIQLISAgKkI/hiAYQj+GICJCAYiEISIgKkIBiCEqIBhCAYiEIRggG0IBg1ANAAsgAyAiNwPAAyADIBs3A8gDIAMgGDcDuAMgAyAqNwOwAwsgF6dBAXFFBEADQCAjQj+GIBdCAYiEIRcCQCAfQgGDUEUEQCAlQv////8PfSIpIB4gGkKAgICAEHwiJFAgGkL/////D3wgGlRyrXwiGiAeVK18Ih5CAYgiHUKAgICAgICAgIB/hCIcIBwgHSAeIClUGyAlIClWGyElIB5CP4YgGkIBiIQhHiAkQj+GIB9CAX1CAYiEIR8gGkI/hiAkQgGIhCEaDAELICVCP4YgGkI/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VK0gA0GwAWopAwAgHSAfVq18fCIfIBsgJFStIANBMGopAwAgJCAnVK18fCIjIBwgJ1atfCIdfCIqIAMpAzh8IicgGiAtVK0gA0GQAWopAwAgJSAtVq18fHwiHHwiF3wiJCAYICxCIIYiGHwiGyAYVK0gLEIgiHx8IhkgJFStIhggAykDCHwiGiAYVK18IBogFyApVK0gA0HgAGopAwAgIiApVq18fCIlIBwgJ1StIANBQGspAwAgJyAqVK18fCIiIB8gKlatIB0gI1StfHwiI3wiHyADKQNIfCIXICQgK1StIANBoAFqKQMAIB4gK1atfHx8Ihh8IhwgGlStfCIdIBcgGFatIANB0ABqKQMAIBcgH1StfHwiFyAfICVUrSAiICNWrXx8Ihh8IhpCgYCAgHBWIBogHVStQgAgFyAYVq19UnINAQJAAkAgGkKBgICAcFEEQCAcQgBSIBlC/////w9Wcg0EQgAhGCAZQv////8PWg0BIBkhFwwCCyAZIRcgHCEYDAQLQv////8PIRcgG0J/UQ0CC0KBgICAcCEaDAILIAYgBUGsnsAAEJgEAAsgGUL/////D30iHSAbQn9SrSIYfSEXIBwgGUL/////D1QgGCAdVnKtIhl9IRggGiAZIBxWrX1C/////w98IRogG0IBfCEbCyADIBs3A+gDIAMgFzcD4AMgAyAYNwPYAyADIBo3A9ADIBMgBiAQaiIRSwRAQQghDiADQdgDaikDACEZIANB4ANqKQMAIRcgA0HoA2opAwAhGCALIBFBBXQiFWoiBSADKQPQAzcDACAFQRhqIBg3AwAgBUEQaiAXNwMAIAVBCGogGTcDACADQYQDaiACIANB0ANqEP0CQQghCCAGIApHBEAgEUH///8fSwRAQQAhBAwGC0G50cIALQAAGkEIIQQgFUEIEIsFIghFDQUgCCEEAkAgBkEBayAKRg0AIBFBAWsiCUEHcSAKIAZrQQFqQXhNBEAgCUF4cSEHA0AgBEIANwMAIARBGGpCADcDACAEQRBqQgA3AwAgBEEIakIANwMAIARBIGpCADcDACAEQShqQgA3AwAgBEEwakIANwMAIARBOGpCADcDACAEQUBrQgA3AwAgBEHIAGpCADcDACAEQdAAakIANwMAIARB2ABqQgA3AwAgBEHgAGpCADcDACAEQegAakIANwMAIARB8ABq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ADcDACAEQRBqQYiGwAApAwA3AwAgBEEIakGAhsAAKQMANwMAIARB+IXAACkDADcDACADQQA6ADAgAyAEQSBqNgIsIAMgBDYCKCADQbAEaiADQShqEOYCIAMoArgEIgFBAk8EQCABQQF2IQUgAygCtAQiAiABQQV0akEgayEBA0AgAikDACEQIAIgASkDADcDACACQRhqIgYpAwAhEiAGIAFBGGoiBikDADcDACACQRBqIgcpAwAhESAHIAFBEGoiBykDADcDACACQQhqIggpAwAhEyAIIAFBCGoiCCkDADcDACABIBA3AwAgBiASNwMAIAcgETcDACAIIBM3AwAgAUEgayEBIAJBIGohAiAFQQFrIgUNAAsLIAkgAykCsAQ3AgAgCUEIaiADQbgEaigCADYCACAEQSAQlAUgA0EBNgKYBCADIAk2ApQEIANBATYCkAQgACADQZAEahDGAgwFCwwFCwwFC0G50cIALQAAGgJAQQxBBBCLBSIJBEBBudHCAC0AABpBwABBCBCLBSIERQ0BAn4gAkH4ssAAQSAQrgUEQEKNlcfDltLawJd/IAIpAxAiEH0iEiACKQMYIhFCx/rzw+2Co5A8Vq0iE30hFULdsIWM6LaRqLh/IAIpAwgiFH0iFiASIBNUIBBCjZXHw5bS2sCXf1ZyrSIQfSETQsf688PtgqOQPCARfSERQqnAxomuzpOyMCACKQMAIBAgFlYgFELdsIWM6LaRqLh/VnKtfH0MAQsgAikDGCERIAIpAxAhFSACKQMIIRMgAikDAAshEiAEIBE3AxggBCAVNwMQIAQgEzcDCCAEIBI3AwAgBEH4hcAAKQMANwMgIARBKGpBgIbAACkDADcDACAEQTBqQYiGwAApAwA3AwAgBEE4akGQhsAAKQMANwMAIANBADoAMCADIARBQGs2AiwgAyAENgIoIANBsARqIANBKGoQ5gIgAygCuAQiAUECTwRAIAFBAXYhBSADKAK0BCICIAFBBXRqQSBrIQEDQCACKQMAIRAgAiABKQMANwMAIAJBGGoiBikDACESIAYgAUEYaiIGKQMANwMAIAJBEGoiBykDACERIAcgAUEQaiIHKQMANwMAIAJBCGoiCCkDACETIAggAUEIaiIIKQMANwMAIAEgEDcDACAGIBI3AwAgByARNwMAIAggEzcDACABQSBrIQEgAkEgaiECIAVBAWsiBQ0ACwsgCSADKQKwBDcCACAJQQhqIANBuARqKAIANgIAIARBwAAQlAUgA0EBNgKYBCADIAk2ApQEIANBATYCkAQgACADQZAEahDGAgwECwwECwwFCyABQSBqIQUCQAJAAkACQAJ+AkACQAJAAkAgASACQSAQrgUNACAFIAJBIGpBIBCuBQ0AIANC19G0hZXV8ov6ADcDyAQgA0K5w9SKrq+wtR83A8AEIANChKWvy+bJ+qUzNwO4BCADQo673vDM6NmPKjcDsAQgA0FAayICIAFBGGoiBCkDADcDACADQThqIgkgAUEQaiIGKQMANwMAIANBMGoiByABQQhqIggpAwA3AwAgAyABKQMANwMoIANBkARqIgsgA0GwBGoiDCADQShqIgoQmAEgAiAEKQMANwMAIAkgBikDADcDACAHIAgpAwA3AwAgAyABKQMANwMoIAwgCyAKEJgBIAoQpAJCqcDGia7Ok7IwIRQgAykDuAQiEiADKQMwfCIQIBJUIBAgAykDwAQiESADKQM4fCISIBFUIBIgEiADKQPIBCIRIAMpA0B8IhMgEVStfCISVnKtfCIRIBBUcq0gAykDsAQgAykDKHx8IhUhEAJAIBVCqcDGia7Ok7IwUg0AQt2whYzotpGouH8hFCARIhBC3bCFjOi2kai4f1INAEKNlcfDltLawJd/IRQgEiIQQo2Vx8OW0trAl39SDQBCx/rzw+2Co5A8IRQgEyIQQsf688PtgqOQPFENAgsgECAUWg0BIBEhFCASIRAMAgsgA0EoaiIEIAIQlgMgASAEQSAQrgVFBEAgBSADQcgAakEgEK4FRQ0FCyADQYgDaiACQRhqIgYpAwA3AwAgA0GAA2ogAkEQaiIHKQMANwMAIANB+AJqIAJBCGoiCCkDADcDACADIAIpAwA3A/ACIANBqARqIAJBOGoiBCkDADcDACADQaAEaiACQTBqIgkpAwA3AwAgA0GYBGogAkEoaiIKKQMANwMAIAMgAikDIDcDkAQgA0HIBGoiDCAFQRhqKQMANwMAIANBwARqIg0gBUEQaikDADcDACADQbgEaiIOIAVBCGopAwA3AwAgAyAFKQMANwOwBCADQUBrIgUgBCkDADcDACADQThqIgQgCSkDADcDACADQTBqIgkgCikDADcDACADIAIpAyA3AyggA0GwA2oiDyADQbAEaiIKIANBKGoiCxCCAyAMIAFBGGopAwA3AwAgDSABQRBqKQMANwMAIA4gAUEIaikDADcDACADIAEpAwA3A7AEIAUgBikDADcDACAEIAcpAwA3AwAgCSAIKQMANwMAIAMgAikDADcDKCADQdADaiIBIAogCxCCAyADQZADaiAPIAEQaCAFIANBqANqKQMANwMAIAQgA0GgA2opAwA3AwAgCSADQZgDaikDADcDACADIAMpA5ADNwMoIAogCyADQfACahCYASADQfADaiIBIANBkARqIAoQggNBudHCAC0AABpBGEEEEIsFIglFDQZBudHCAC0AABpBwABBCBCLBSIERQ0MIAFB+LLAAEEgEK4FRQ0CQo2Vx8OW0trAl38gAykDgAQiEH0iEiADKQOIBCIRQsf688PtgqOQPFatIhN9IRVC3bCFjOi2kai4fyADKQP4AyIUfSIWIBIgE1QgEEKNlcfDltLawJd/VnKtIhB9IRNCx/rzw+2Co5A8IBF9IRFCqcDGia7Ok7IwIAMpA/ADIBAgFlYgFELdsIWM6LaRqLh/VnKtfH0MAwsgEkLz6ri86a2lv+gAfCIUIBNCx/rzw+2Co5A8VK0iFn0hECARQqPP+vOXye7XxwB8IhcgEkKNlcfDltLawJd/VCAUIBZUcq0iEn0hFCAVIBFC3bCFjOi2kai4f1QgEiAXVnKtfUKpwMaJrs6TsjB9IRUgE0LH+vPD7YKjkDx9IRMLIAMgEzcDyAMgAyAQNwPAAyADIBQ3A7gDIAMgFTcDsAMgA0K6tvjYuOOh3aZ/NwOoBCADQvusuNyeyvX4FDcDoAQgA0LYmMqH79vR7kw3A5gEIANC3vy+oLPwu4ocNwOQBCADQcgEaiAFQRhqKQMANwMAIANBwARqIAVBEGopAwA3AwAgA0G4BGogBUEIaikDADcDACADIAUpAwA3A7AEIANB0ANqIgIgA0GQBGogA0GwBGoQmAEgA0EIaiADQbADaiACEGggAygCvAIiAgRAIAMoAsACIAJBAnQQlAULAkAgAygCjAIiAkUNACACIAJBDGxBE2pBeHEiBGpBCWoiAkUNACADKAKIAiAEayACEJQFCyADQegDaiAFQRhqKQMANwMAIANB4ANqIAVBEGopAwA3AwAgA0HYA2ogBUEIaikDADcDACADIAUpAwA3A9ADIANByARqIANBIGopAwA3AwAgA0HABGogA0EYaikDADcDACADQbgEaiADQRBqKQMANwMAIAMgAykDCDcDsAQgA0FAayABQRhqKQMANwMAIANBOGogAUEQaikDADcDACADQTBqIAFBCGopAwA3AwAgAyABKQMANwMoIANBkARqIgEgA0GwBGogA0EoahCYASADQdACaiICIANB0ANqIAEQggNBudHCAC0AABpBGEEEEIsFIglFDQNBudHCAC0AABpBwABBCBCLBSIERQ0KAn4gAkH4ssAAQSAQrgUEQEKNlcfDltLawJd/IAMpA+ACIhB9IhIgAykD6AIiEULH+vPD7YKjkDxWrSITfSEVQt2whYzotpGouH8gAykD2AIiFH0iFiASIBNUIBBCjZXHw5bS2sCXf1ZyrSIQfSETQsf688PtgqOQPCARfSERQqnAxomuzpOyMCADKQPQAiAQIBZWIBRC3bCFjOi2kai4f1ZyrXx9DAELIAMpA+gCIREgAykD4AIhFSADKQPYAiETIAMpA9ACCyESIANBQGsgA0EgaikDADcDACADQThqIANBGGopAwA3AwAgA0EwaiADQRBqKQMANwMAIAMgAykDCDcDKCAEAn4gA0EoakH4ssAAQSAQrgUEQEKNlcfDltLawJd/IAMpAzgiEH0iFiADKQNAIhdCx/rzw+2Co5A8Vq0iGH0hFELdsIWM6LaRqLh/IAMpAzAiGX0iGiAWIBhUIBBCjZXHw5bS2sCXf1ZyrSIWfSEQQsf688PtgqOQPCAXfSEXQqnAxomuzpOyMCADKQMoIBYgGlYgGULdsIWM6LaRqLh/VnKtfH0MAQsgAykDQCEXIAMpAzghFCADKQMwIRAgAykDKAs3AyAgBEE4aiAXNwMAIARBMGogFDcDACAEQShqIBA3AwAgBCARNwMYIAQgFTcDECAEIBM3AwggBCASNwMAIANBADoAMCADIARBQGs2AiwgAyAENgIoIANB9ARqIANBKGoQ5gIgAygC/AQiAUECTwRAIAFBAXYhBSADKAL4BCICIAFBBXRqQSBrIQEDQCACKQMAIRAgAiABKQMANwMAIAJBGGoiBikDACESIAYgAUEYaiIGKQMANwMAIAJBEGoiBykDACERIAcgAUEQaiIHKQMANwMAIAJBCGoiCCkDACETIAggAUEIaiIIKQMANwMAIAEgEDcD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AhCXAyABIARBIBCuBUUEQCAFIANByABqQSAQrgVFDQULIANBiANqIAJBGGoiBikDADcDACADQYADaiACQRBqIgcpAwA3AwAgA0H4AmogAkEIaiIIKQMANwMAIAMgAikDADcD8AIgA0GoBGogAkE4aiIEKQMANwMAIANBoARqIAJBMGoiCSkDADcDACADQZgEaiACQShqIgopAwA3AwAgAyACKQMgNwOQBCADQcgEaiIMIAVBGGopAwA3AwAgA0HABGoiDSAFQRBqKQMANwMAIANBuARqIg4gBUEIaikDADcDACADIAUpAwA3A7AEIANBQGsiBSAEKQMANwMAIANBOGoiBCAJKQMANwMAIANBMGoiCSAKKQMANwMAIAMgAikDIDcDKCADQbADaiIPIANBsARqIgogA0EoaiILEIMDIAwgAUEYaikDADcDACANIAFBEGopAwA3AwAgDiABQQhqKQMANwMAIAMgASkDADcDsAQgBSAGKQMANwMAIAQgBykDADcDACAJIAgpAwA3AwAgAyACKQMANwMoIANB0ANqIgEgCiALEIMDIANBkANqIA8gARBpIAUgA0GoA2opAwA3AwAgBCADQaADaikDADcDACAJIANBmANqKQMANwMAIAMgAykDkAM3AyggCiALIANB8AJqEJcBIANB8ANqIgEgA0GQBGogChCDA0G50cIALQAAGkEYQQQQiwUiCUUNBkG50cIALQAAGkHAAEEIEIsFIgRFDQwgAUH4ssAAQSAQrgVFDQJCkeHlzYeJ+pkoIAMpA4AEIhB9IhIgAykDiAQiEUKBgICAv7L98MMAVq0iE30hFULdsIWM6LaRqLh/IAMpA/gDIhR9IhYgEiATVCAQQpHh5c2HifqZKFZyrSIQfSETQoGAgIC/sv3wwwAgEX0hEUKpwMaJrs6TsjAgAykD8AMgECAWViAUQt2whYzotpGouH9Wcq18fQwDCyASQpHh5c2HifqZKH0iFCATQoGAgIC/sv3wwwBUrSIWfSEQIBFCo8/685fJ7tfHAHwiFyASQpHh5c2HifqZKFQgFCAWVHKtIhJ9IRQgFSARQt2whYzotpGouH9UIBIgF1ZyrX1CqcDGia7Ok7IwfSEVIBNCgYCAgL+y/fDDAH0hEwsgAyATNwPIAyADIBA3A8ADIAMgFDcDuAMgAyAVNwOwAyADQvb///+Jh5qW2QA3A6gEIANC07SG9rOlu/ztADcDoAQgA0LcmMqH79vR7kw3A5gEIANC3vy+oLPwu4ocNwOQBCADQcgEaiAFQRhqKQMANwMAIANBwARqIAVBEGopAwA3AwAgA0G4BGogBUEIaikDADcDACADIAUpAwA3A7AEIANB0ANqIgIgA0GQBGogA0GwBGoQlwEgA0EIaiADQbADaiACEGkgAygCvAIiAgRAIAMoAsACIAJBAnQQlAULAkAgAygCjAIiAkUNACACIAJBDGxBE2pBeHEiBGpBCWoiAkUNACADKAKIAiAEayACEJQFCyADQegDaiAFQRhqKQMANwMAIANB4ANqIAVBEGopAwA3AwAgA0HYA2ogBUEIaikDADcDACADIAUpAwA3A9ADIANByARqIANBIGopAwA3AwAgA0HABGogA0EYaikDADcDACADQbgEaiADQRBqKQMANwMAIAMgAykDCDcDsAQgA0FAayABQRhqKQMANwMAIANBOGogAUEQaikDADcDACADQTBqIAFBCGopAwA3AwAgAyABKQMANwMoIANBkARqIgEgA0GwBGogA0EoahCXASADQdACaiICIANB0ANqIAEQgwNBudHCAC0AABpBGEEEEIsFIglFDQNBudHCAC0AABpBwABBCBCLBSIERQ0KAn4gAkH4ssAAQSAQrgUEQEKR4eXNh4n6mSggAykD4AIiEH0iEiADKQPoAiIRQoGAgIC/sv3wwwBWrSITfSEVQt2whYzotpGouH8gAykD2AIiFH0iFiASIBNUIBBCkeHlzYeJ+pkoVnKtIhB9IRNCgYCAgL+y/fDDACARfSERQqnAxomuzpOyMCADKQPQAiAQIBZWIBRC3bCFjOi2kai4f1ZyrXx9DAELIAMpA+gCIREgAykD4AIhFSADKQPYAiETIAMpA9ACCyESIANBQGsgA0EgaikDADcDACADQThqIANBGGopAwA3AwAgA0EwaiADQRBqKQMANwMAIAMgAykDCDcDKCAEAn4gA0EoakH4ssAAQSAQrgUEQEKR4eXNh4n6mSggAykDOCIQfSIWIAMpA0AiF0KBgICAv7L98MMAVq0iGH0hFELdsIWM6LaRqLh/IAMpAzAiGX0iGiAWIBhUIBBCkeHlzYeJ+pkoVnKtIhZ9IRBCgYCAgL+y/fDDACAXfSEXQqnAxomuzpOyMCADKQMoIBYgGlYgGULdsIWM6LaRqLh/VnKtfH0MAQsgAykDQCEXIAMpAzghFCADKQMwIRAgAykDKAs3AyAgBEE4aiAXNwMAIARBMGogFDcDACAEQShqIBA3AwAgBCARNwMYIAQgFTcDECAEIBM3AwggBCASNwMAIANBADoAMCADIARBQGs2AiwgAyAENgIoIANB9ARqIANBKGoQ5gIgAygC/AQiAUECTwRAIAFBAXYhBSADKAL4BCICIAFBBXRqQSBrIQEDQCACKQMAIRAgAiABKQMANwMAIAJBGGoiBikDACESIAYgAUEYaiIGKQMANwMAIAJBEGoiBykDACERIAcgAUEQaiIHKQMANwMAIAJBCGoiCCkDACETIAggAUEIaiIIKQMANwMAIAEgEDcDACAGIBI3AwAgByARNwMAIAggEzcDACABQSBrIQEgAkEgaiECIAVBAWsiBQ0ACwsgBEHAABCUBUG50cIALQAAGkEgQQgQiwUiBEUNCSAEQRhqQbCGwAApAwA3AwAgBEEQakGohsAAKQMANwMAIARBCGpBoIbAACkDADcDACAEQZiGwAApAwA3AwAgA0EAOgAwIAMgBEEgajYCLCADIAQ2AiggA0GwBGogA0EoahDmAiADKAK4BCIBQQJPBEAgAUEBdiEFIAMoArQEIgIgAUEFdGpBIGshAQNAIAIpAwAhECACIAEpAwA3AwAgAkEYaiIGKQMAIRIgBiABQRhqIgYpAwA3AwAgAkEQaiIHKQMAIREgByABQRBqIgcpAwA3AwAgAkEIaiIIKQMAIRMgCCABQQhqIggpAwA3AwAgASAQNwMAIAYgEjcDACAHIBE3AwAgCCATNwMAIAFBIGshASACQSBqIQIgBUEBayIFDQALCyAJQQxqIgEgAykCsAQ3AgAgAUEIaiADQbgEaigCADYCACAEQSAQlAUgCUEIaiADQfwEaigCADYCACAJIAMpAvQENwIAIANBAjYCMCADIAk2AiwgA0ECNgIoIAAgA0EoahDIAgwHCyADKQOIBCERIAMpA4AEIRUgAykD+AMhEyADKQPwAwshEiADQUBrIANBqANqKQMANwMAIANBOGogA0GgA2opAwA3AwAgA0EwaiADQZgDaikDADcDACADIAMpA5ADNwMoIAQCfiADQShqQfiywABBIBCuBQRAQpHh5c2HifqZKCADKQM4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IARBKGpBoIbAACkDADcDACAEQTBqQaiGwAApAwA3AwAgBEE4akGwhsAAKQMANwMAIANBADoAMCADIARBQGs2AiwgAyAENgIoIANBsARqIANBKGoQ5gIgAygCuAQiAUECTwRAIAFBAXYhBSADKAK0BCICIAFBBXRqQSBrIQEDQCACKQMAIRAgAiABKQMANwMAIAJBGGoiBikDACESIAYgAUEYaiIGKQMANwMAIAJBEGoiBykDACERIAcgAUEQaiIHKQMANwMAIAJBCGoiCCkDACETIAggAUEIaiIIKQMANwMAIAEgEDcDACAGIBI3AwAgByARNwMAIAggEzcDACABQSBrIQEgAkEgaiECIAVBAWsiBQ0ACwsgCSADKQKwBDcCACAJQQhqIANBuARqKAIANgIAIARBwAAQlAUgA0EBNgKYBCADIAk2ApQEIANBATYCkAQgACADQZAEahDIAgsgA0HwBmokAA8LQQRBDBCoBQALQQhBIBCoBQALQQhBwAAQqAUAC9Y8Ahl+DH8jAEGgBWsiHiQAIB4gAEHAARCtBSIbIAEQIiAbQcABaiIcIABBwAFqIiBBwAEQrQUaIBwgAUHAAWoQIiAgIAAQwQMgAEHgAWoiISAAQSBqIiUQwQMgAEGAAmoiIiAAQUBrIh8QwQMgAEGgAmoiIyAAQeAAahDBAyAAQcACaiIkIABBgAFqIh0QwQMgAEHgAmoiHiAAQaABahDBAyABKQM4IQwgASkDMCEKIAEpAyghBSABKQMgIQYCQCABKQPYASABKQMYfCABKQPQASICIAEpAxB8IgQgAlStIAQgASkDyAEiAiABKQMIfCIDIAJUrSADIAEpA8ABIgIgASkDAHwiFyACVK18IgIgA1StfHwiDSAEVK18fCIIQqnAxomuzpOyMFQEQCACIRMMAQsCQCAIQqnAxomuzpOyMFINACANQt2whYzotpGouH9UBEBCqcDGia7Ok7IwIQggAiETDAILIA1C3bCFjOi2kai4f1INAEKNlcfDltLawJd/IRMgAkKNlcfDltLawJd/VARAQqnAxomuzpOyMCEIQt2whYzotpGouH8hDSACIRMMAgsgAkKNlcfDltLawJd/UiAXQsb688PtgqOQPFZyDQBCqcDGia7Ok7IwIQhC3bCFjOi2kai4fyENDAELIAhCos/685fJ7tfHAEKjz/rz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18cAIAIgBVobIgMgBnwiAjcDsAEgHCAEIAIgA1qtfUKpwMaJrs6TsjB9NwO4AQsgG0GgBWokAAv9LgIPfxt+IwBBoAhrIgIkAAJAAkAgASgCCCIGQQJPBEACQCAGQQFrIgdBMGwiCkEASCAHQarVqhVLcg0AQbnRwgAtAAAaQQghAyAKQQgQiwUiCUUNACAJIQMCQCAHQQFGDQAgBkECayIFQQdxIQQgBkEDa0EHTwRAIAVBeHEhBQNAIANCADcDACADQShqQgA3AwAgA0EgakIANwMAIANBGGpCADcDACADQRBqQgA3AwAgA0EIakIANwMAIANBMGpCADcDACADQThqQgA3AwAgA0FAa0IANwMAIANByABqQgA3AwAgA0HQAGpCADcDACADQdgAakIANwMAIANB4ABqQgA3AwAgA0HoAGpCADcDACADQfAAakIANwMAIANB+ABqQgA3AwAgA0GAAWpCADcDACADQYgBakIANwMAIANBuAFqQgA3AwAgA0GwAWpCADcDACADQagBakIANwMAIANBoAFqQgA3AwAgA0GYAWpCADcDACADQZABakIANwMAIANBwAFqQgA3AwAgA0HIAWpCADcDACADQdABakIANwMAIANB2AFqQgA3AwAgA0HgAWpCADcDACADQegBakIANwMAIANB8AFqQgA3AwAgA0H4AWpCADcDACADQYACakIANwMAIANBiAJqQgA3AwAgA0GQAmpCADcDACADQZgCakIANwMAIANByAJqQgA3AwAgA0HAAmpCADcDACADQbgCakIANwMAIANBsAJqQgA3AwAgA0GoAmpCADcDACADQaACakIANwMAIANB+AJqQgA3AwAgA0HwAmpCADcDACADQegCakIANwMAIANB4AJqQgA3AwAgA0HYAmpCADcDACADQdACakIANwMAIANBgANqIQMgBUEIayIFDQALCyAERQ0AA0AgA0IANwMAIANBKGpCADcDACADQSBqQgA3AwAgA0EYakIANwMAIANBEGpCADcDACADQQhqQgA3AwAgA0EwaiEDIARBAWsiBA0ACwsgA0IANwMAIANBKGpCADcDACADQSBqQgA3AwAgA0EYakIANwMAIANBEGpCADcDACADQQhqQgA3AwAgASgCBCIDIAZBMGxqIQhBACEBQQEhBUEAIQQDQAJAIAFBAXEEQCADIAhHDQEMBQsgCCADa0EwbiAFTQ0EIAQgBWohBCADIAVBMGxqIQMLIAJByAdqIAStIhJCxq7Q4cHmx+90QgAQ/AMgAkG4B2ogAikDyAdCfoMiGEIAQv3/8//P///5iX8Q/AMgAkGoB2ogAkHAB2opAwAiEUKr1f7///+//7l/QgAQ/AMgAkGYB2ogEUL//8+K6///1R5CABD8AyACQYgHaiARQqTsw7WP1LSY5wBCABD8AyACQfgGaiARQr+llJzP8NK75ABCABD8AyACQegGaiARQtfZrprk9umNywBCABD8AyACQdgGaiARQprN/8ujvcSAGkIAEPwDIAJByAZqIBJC8YnEzuDUubsKQgAQ/AMgAkG4BmogAikDyAYiEyACKQOYByIWIAJB0AdqKQMAfCIUIAJBsAdqKQMAIAIpA6gHIhEgGHwgEVStfHwiFXwiGEIAQv3/8//P///5iX8Q/AMgAkGoBmogAkHABmopAwAiEUKr1f7///+//7l/QgAQ/AMgAkGYBmogEUL//8+K6///1R5CABD8AyACQYgGaiARQqTsw7WP1LSY5wBCABD8AyACQfgFaiARQr+llJzP8NK75ABCABD8AyACQegFaiARQtfZrprk9umNywBCABD8AyACQdgFaiARQprN/8ujvcSAGkIAEPwDIAJByAVqIBJC1e3W5MTt0fKNf0IAEPwDIAJBuAVqIAIpA8gFIhcgAikDmAYiGiACQdAGaikDACATIBhWrXwiEyACKQOIByIZIBQgFVatIAJBoAdqKQMAIBQgFlStfHx8IhZ8IhV8IhQgAkGwBmopAwAgAikDqAYiESAYfCARVK18fCIbfCIYQgBC/f/z/8////mJfxD8AyACQagFaiACQcAFaikDACIRQqvV/v///7//uX9CABD8AyACQZgFaiARQv//z4rr///VHkIAEPwDIAJBiAVqIBFCpOzDtY/UtJjnAEIAEPwDIAJB+ARqIBFCv6WUnM/w0rvkAEIAEPwDIAJB6ARqIBFC19mumuT26Y3LAEIAEPwDIAJB2ARqIBFCms3/y6O9xIAaQgAQ/AMgAkHIBGogEkLAh/acmZXi9ecAQgAQ/AMgAkG4BGogAikDyAQiHCACKQOYBSIdIAJB0AVqKQMAIBcgGFatfCIXIBMgFVatIhUgAikD+AYiHiACQZAHaikDACAWIBlUrXx8Ihl8IhMgAikDiAZ8IhYgFCAbVq0gAkGgBmopAwAgFCAaVK18fHwiGnwiG3wiFCACQbAFaikDACACKQOoBSIRIBh8IBFUrXx8Ih98IhhCAEL9//P/z///+Yl/EPwDIAJBqARqIAJBwARqKQMAIhFCq9X+////v/+5f0IAEPwDIAJBmARqIBFC///Piuv//9UeQgAQ/AMgAkGIBGogEUKk7MO1j9S0mOcAQgAQ/AMgAkH4A2ogEUK/pZScz/DSu+QAQgAQ/AMgAkHoA2ogEULX2a6a5PbpjcsAQgAQ/AMgAkHYA2ogEUKazf/Lo73EgBpCABD8AyACQcgDaiASQq2q5qjb0M+8mn9CABD8AyACQbgDaiACKQPIAyIgIAIpA5gEIiEgAkHQBGopAwAgGCAcVK18IhwgFyAbVq0iGyATIBVUrSIiIAIpA+gGIiMgAkGAB2opAwAgGSAeVK18fCIZfCIVIAIpA/gFfCIXIBYgGlatIAJBkAZqKQMAIBMgFlatfHx8Ih58IhMgAikDiAV8IhYgFCAfVq0gAkGgBWopAwAgFCAdVK18fHwiHXwiGnwiFCACQbAEaikDACACKQOoBCIRIBh8IBFUrXx8Ih98IhhCAEL9//P/z///+Yl/EPwDIAJBqANqIAJBwANqKQMAIhFCq9X+////v/+5f0IAEPwDIAJBmANqIBFC///Piuv//9UeQgAQ/AMgAkGIA2ogEUKk7MO1j9S0mOcAQgAQ/AMgAkH4AmogEUK/pZScz/DSu+QAQgAQ/AMgAkHoAmogEULX2a6a5PbpjcsAQgAQ/AMgAkHYAmogEUKazf/Lo73EgBpCABD8AyACQcgCaiASQqrHq5bZ/KPMEUIAEPwDIAJBuAJqIAIpA8gCIiQgAikDmAMiJSACQdADaikDACAYICBUrXwiICAaIBxUrSIcIBMgG1StIhsgFSAiVK0iIiACKQPYBiImIAJB8AZqKQMAIBkgI1StfHwiGXwiESACKQPoBXwiGiAXIB5WrSACQYAGaikDACAVIBdWrXx8fCIefCIVIAIpA/gEfCIXIBYgHVatIAJBkAVqKQMAIBMgFlatfHx8Ih18IhMgAikDiAR8IhYgFCAfVq0gAkGgBGopAwAgFCAhVK18fHwiH3wiIXwiFCACQbADaikDACACKQOoAyISIBh8IBJUrXx8IiN8IhhCAEL9//P/z///+Yl/EPwDIAJBqAJqIAJBwAJqKQMAIhJCq9X+////v/+5f0IAEPwDIAJBmAJqIBJC///Piuv//9UeQgAQ/AMgAkGIAmogEkKk7MO1j9S0mOcAQgAQ/AMgAkH4AWogEkK/pZScz/DSu+QAQgAQ/AMgAkHoAWogEkLX2a6a5PbpjcsAQgAQ/AMgAkHYAWogEkKazf/Lo73EgBpCABD8AwJAIAJB4AFqKQMAIAIpA9gBIicgAkHgAmopAwAgAikD2AIiKCACQeADaikDACACKQPYAyIpIAJB4ARqKQMAIAIpA9gEIiogAkHgBWopAwAgAikD2AUiKyARICJUrSACQeAGaikDACAZICZUrXx8fCISICtUrXwgEiASIBogHlatIAJB8AVqKQMAIBEgGlatfHx8IhJWrXwgFSAbVK0iESASfCISIBFUrXx8IhEgKlStfCARIBEgAkHwBGopAwAgEiASIAIpA+gEfCISVq18IBIgEiAXIB1WrSACQYAFaikDACAVIBdWrXx8fCISVq18fCIRVq18IBEgEyAcVK0iESASfCISIBFUrSIVfCIRIBVUrXx8IhUgKVStfCAVIAJB8ANqKQMAIBEgESACKQPoA3wiEVatfCARIBEgAkGABGopAwAgEiASIAIpA/gDfCISVq18IBIgEiAWIB9WrSACQZAEaikDACATIBZWrXx8fCISVq18fCIRVq18fCITIBVUrXwgEyARICAgIVatIhEgEnwiEiARVK0iE3wiESATVK0iFnwiEyAWVK18fCIWIChUrXwgFiACQfACaikDACATIBMgAikD6AJ8IhNWrXwgEyACQYADaikDACARIBEgAikD+AJ8IhFWrXwgESARIAJBkANqKQMAIBIgEiACKQOIA3wiElatfCASIBIgFCAjVq0gAkGgA2opAwAgFCAlVK18fHwiElatfHwiEVatfHwiFCATVK18fCITIBZUrXwgEyAUIBEgEiACQdACaikDACAYICRUrXwiEnwiEyASVK0iEXwiEiARVK0iFHwiESAUVK0iFnwiFCAWVK18fCIWICdUrXwgFiACQfABaikDACAUIBQgAikD6AF8IhRWrXwgFCACQYACaikDACARIBEgAikD+AF8IhFWrXwgESACQZACaikDACASIBIgAikDiAJ8IhJWrXwgEiACQaACaikDACACKQOYAiIVIBN8IhMgFVStfCATIBMgAkGwAmopAwAgGCACKQOoAiIYfCAYVK18fCITVq18fCIVIBJUrXx8IhogEVStfHwiGSAUVK18fCIXIBZUrXwiFEKazf/Lo73EgBpSDQACQCAXQtfZrprk9umNywBWDQBCms3/y6O9xIAaIRQgF0LX2a6a5PbpjcsAUg0BIBlCv6WUnM/w0rvkAFYNACAZQr+llJzP8NK75ABSBEBC19mumuT26Y3LACEXDAILIBpCpOzDtY/UtJjnAFYNACAaQqTsw7WP1LSY5wBSBEBC19mumuT26Y3LACEXQr+llJzP8NK75AAhGQwCCyAVQv//z4rr///VHlYNACAVQv//z4rr///VHlIEQELX2a6a5PbpjcsAIRdCv6WUnM/w0rvkACEZQqTsw7WP1LSY5wAhGgwCCyATQqvV/v///7//uX9aDQBC19mumuT26Y3LACEXQr+llJzP8NK75AAhGUKk7MO1j9S0mOcAIRpC///Piuv//9UeIRUMAQtCf0IAIBdC19mumuT26Y3LAH0iEiAZQr+llJzP8NK75ABUIBlCv6WUnM/w0rvkAH0iESAaQqTsw7WP1LSY5wBUIBpCpOzDtY/UtJjnAH0iGCAVQv//z4rr///VHlQgFUL//8+K6///1R59IhYgE0Kr1f7///+//7l/VK0iFVRyrSIXVHKtIhlUcq0iG1QbIRQgFiAVfSEVIBggF30hGiARIBl9IRkgEiAbfSEXIBNC1aqBgICAwIDGAHwhEwsgA0EwaiEGIAIgEzcDmAggAiAVNwOQCCACIBo3A4gIIAIgGTcDgAggAiAXNwP4ByACIBQ3A/AHIAMpAwAhGyADKQMIIRwgAykDECEdIAMpAxghHiADKQMgIR8gAykDKCEgQgAhGkEoIQNCACEVQgAhE0IAIRRCACESQgAhGQNAIAJB+ABqIAJB8AdqIANqKQMAIhEgIEIAEPwDIAJBiAFqIBEgH0IAEPwDIAJBmAFqIBEgHkIAEPwDIAJBqAFqIBEgHUIAEPwDIAJBuAFqIBEgHEIAEPwDIAJByAFqIBEgG0IAEPwDIAJB6ABqIAIpA3giFyAZfCIYQgBC/f/z/8////mJfxD8AyACQdgAaiACQfAAaikDACIRQqvV/v///7//uX9CABD8AyACQcgAaiARQv//z4rr///VHkIAEPwDIAJBOGogEUKk7MO1j9S0mOcAQgAQ/AMgAkEoaiARQr+llJzP8NK75ABCABD8AyACQRhqIBFC19mumuT26Y3LAEIAEPwDIAJBCGogEUKazf/Lo73EgBpCABD8AyACQRBqKQMAIBogAikDyAEiGnwiESACQcABaikDACAVIAIpA7gBIhV8IhYgFVStfCAWIAJBsAFqKQMAIAIpA6gBIhUgE3wiEyAVVK18IBMgAkGgAWopAwAgAikDmAEiFSAUfCIUIBVUrXwgFCACQZABaikDACACKQOIASIVIBJ8IhIgFVStfCASIAJBgAFqKQMAIBcgGFatfHwiFyASVK18fCISIBRUrXx8IhQgE1StfHwiEyAWVK18fCIWIAIpAwh8IhUgFlStfCAVIBUgAkEgaikDACATIBMgAikDGHwiE1atfCATIBMgAkEwaikDACAUIBQgAikDKHwiFFatfCAUIBQgAkFAaykDACASIBIgAikDOHwiElatfCASIBIgAkHQAGopAwAgAikDSCIZIBd8IhcgGVStfCAXIAJB4ABqKQMAIBggAikDWCIYfCAYVK18fCIZIBdUrXx8IhJWrXx8IhRWrXx8IhNWrXx8IhVWrXwgESAWVq0gAkHQAWopAwAgESAaVK18fHwhGiADQQhrIgNBeEcNAAsCQAJAIBpCms3/y6O9xIAaVg0AIBpCms3/y6O9xIAaUgRAIBIhESAUIRggEyEWIBUhFwwCCyAVQtfZrprk9umNywBWDQACQCAVQtfZrprk9umNywBSBEAgEiERIBQhGCATIRYgFSEXDAELIBNCv6WUnM/w0rvkAFYNAULX2a6a5PbpjcsAIRcgE0K/pZScz/DSu+QAUgRAIBIhESAUIRggEyEWDAELIBRCpOzDtY/UtJjnAFYNAUK/pZScz/DSu+QAIRYgFEKk7MO1j9S0mOcAUgRAIBIhESAUIRgMAQsgEkL//8+K6///1R5WDQFCpOzDtY/UtJjnACEYIBJC///Piuv//9UeUgRAIBIhEQwBC0L//8+K6///1R4hESAZQqrV/v///7//uX9WDQELQprN/8ujvcSAGiEaDAELIBJC///Piuv//9UefSIYIBlCq9X+////v/+5f1StIhZ9IREgFEKk7MO1j9S0mOcAfSIXIBJC///Piuv//9UeVCAWIBhWcq0iEn0hGCATQr+llJzP8NK75AB9IhsgFEKk7MO1j9S0mOcAVCASIBdWcq0iEn0hFiAVQtfZrprk9umNywB9IhQgE0K/pZScz/DSu+QAVCASIBtWcq0iEn0hFyAaIBVC19mumuT26Y3LAFQgEiAUVnKtfUKazf/Lo73EgBp9IRogGULVqoGAgIDAgMYAfCEZCyAHIARBAWsiAUsEQCAJIAFBMGxqIgEgGTcDKCABIBE3AyAgASAYNwMYIAEgFjcDECABIBc3AwggASAaNwMAQQAhBUEBIQEgBEEBaiEEIAYhAwwBCwsgASAHQeyewAAQmAQACyADIAoQgwUACyAAEO4CDAELIAJBADoA7AcgAiAJNgLkByACIAkgB0EwbGo2AugHIAJB2AdqIAJB5AdqEMACIAIoAuAHIgFBAk8EQCABQQF2IQUgAigC3AciAyABQTBsakEwayEEA0AgAykDACESIAMgBCkDADcDACACQZgIaiIBIANBKGoiBikDADcDACACQZAIaiIHIANBIGoiCCkDADcDACACQYgIaiIOIANBGGoiCykDADcDACACQYAIaiIPIANBEGoiDCkDADcDACACQfgHaiIQIANBCGoiDSkDADcDACAGIARBKGoiBikDADcDACAIIARBIGoiCCkDADcDACALIARBGGoiCykDADcDACAMIARBEGoiDCkDADcDACANIARBCGoiDSkDADcDACACIBI3A/AHIAYgASkDADcDACAIIAcpAwA3AwAgCyAOKQMANwMAIAwgDykDADcDACANIBApAwA3AwAgBCACKQPwBzcDACAEQTBrIQQgA0EwaiEDIAVBAWsiBQ0ACwsgACACKQLYBzcCACAAQQhqIAJB4AdqKAIANgIAIAkgChCUBQsgAkGgCGokAAuZEwMLfwF8AX4jAEHgAGsiAiQAAkACQAJAAkAgASgCCCIERQRAQbnRwgAtAAAaQQFBARCLBSIBRQ0BIABBATYCCCAAIAE2AgQgAEEBNgIAIAFBADoAAAwECwJAAkACf0EBIQVBACAErUIFhiAEQQJ0IgcgASgCBCIIakEEaygCAGetfbpEcaN5CU+TCkCjmyINRAAAAAAAAPC/ZEUNABpBACANRAAAAAAAAPBBY0UNABpBACANqyIDRQ0AGkEAIQEgA0EASA0BQbnRwgAtAAAaQQEhASADQQEQiwUiBUUNASADCyEB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KQOoClANASADQYwJaiADQbwKaikCADcCACADQZQJaiADQcQKaikCADcCACADQZwJaiADQcwKaikCADcCACADQaQJaiADQdQKaikCADcCACADQawJaiADQdwKaigCADYCACADIAMpArQKNwKECSADIAMoArAKNgKACSADQdgJakIANwMAIANB0AlqQgA3AwAgA0HICWpCADcDACADQcAJakIANwMAIANCADcDuAkgA0KAAjcDsAkgBSADQbAJahBcIAMpA6gKUA0DIAJBME8EQCADKQPYCiEgIAMpA9AKISEgAykDyAohIiADKQPACiEjIAMpA7gKISQgAykDsAohJSABQQFrIQggA0GwCmohBiADQbgJaiIFQSBqIQQgBUEYaiECIAVBEGohAQNAIANBwARqIAMpA4AJIhsgJUIAEPwDIANBsARqIAMpA8AEIg5C/f/z/8////mJf34iDEKr1f7///+//7l/QgAQ/AMgA0GgBWogAykDiAkiJiAlQgAQ/AMgA0GgBGogDEL//8+K6///1R5CABD8AyADQYAGaiADKQOQCSInICVCABD8AyADQbADaiAMQqTsw7WP1LSY5wBCABD8AyADQeAGaiADKQOYCSIoICVCABD8AyADQcACaiAMQr+llJzP8NK75ABCABD8AyADQcAHaiADKQOgCSIpICVCABD8AyADQdABaiAMQtfZrprk9umNywBCABD8AyADQaAIaiADKQOoCSIfICVCABD8AyADQeAAaiAMQprN/8ujvcSAGkIAEPwDIANB0ARqIBsgJEIAEPwDIANBkARqIAMpA6AEIg8gAykDoAUiDSADQcgEaikDAHwiE3wiEiADQbgEaikDACAOIAMpA7AEIgx8IAxUrXx8Ig4gAykD0AR8IgxC/f/z/8////mJf34iEEKr1f7///+//7l/QgAQ/AMgA0GwBWogJiAkQgAQ/AMgA0GABGogEEL//8+K6///1R5CABD8AyADQZAGaiAnICRCABD8AyADQfADaiAQQqTsw7WP1LSY5wBCABD8AyADQfAGaiAoICRCABD8AyADQeADaiAQQr+llJzP8NK75ABCABD8AyADQdAHaiApICRCABD8AyADQdADaiAQQtfZrprk9umNywBCABD8AyADQbAIaiAfICRCABD8AyADQcADaiAQQprN/8ujvcSAGkIAEPwDIANB4ARqIBsgI0IAEPwDIANBoANqIANBqAVqKQMAIA0gE1atfCITIAMpA4AGfCIUIAMpA7ADfCIVIA4gElStIANBqARqKQMAIA8gElatfHx8IhAgAykDsAV8Ig8gA0HYBGopAwAgDCAOVK18fCISIAMpA4AEfCIOIANBmARqKQMAIAwgAykDkAQiDHwgDFStfHwiDSADKQPgBHwiDEL9//P/z///+Yl/fiIRQqvV/v///7//uX9CABD8AyADQcAFaiAmICNCABD8AyADQZADaiARQv//z4rr///VHkIAEPwDIANBoAZqICcgI0IAEPwDIANBgANqIBFCpOzDtY/UtJjnAEIAEPwDIANBgAdqICggI0IAEPwDIANB8AJqIBFCv6WUnM/w0rvkAEIAEPwDIANB4AdqICkgI0IAEPwDIANB4AJqIBFC19mumuT26Y3LAEIAEPwDIANBwAhqIB8gI0IAEPwDIANB0AJqIBFCms3/y6O9xIAaQgAQ/AMgA0HwBGogGyAiQgAQ/AMgA0GwAmogA0GIBmopAwAgEyAUVq18IhMgAykD4AZ8IhcgAykDwAJ8IhggECAVVK0gA0G4A2opAwAgFCAVVq18fHwiGSADKQOQBnwiFCAPIBJWrSADQbgFaikDACAPIBBUrXx8fCIVIAMpA/ADfCIPIA0gDlStIANBiARqKQMAIA4gElStfHx8IhEgAykDwAV8IhAgA0HoBGopAwAgDCANVK18fCISIAMpA5ADfCIOIANBqANqKQMAIAwgAykDoAMiDHwgDFStfHwiDSADKQPwBHwiDEL9//P/z///+Yl/fiIWQqvV/v///7//uX9CABD8AyADQdAFaiAmICJCABD8AyADQaACaiAWQv//z4rr///VHkIAEPwDIANBsAZqICcgIkIAEPwDIANBkAJqIBZCpOzDtY/UtJjnAEIAEPwDIANBkAdqICggIkIAEPwDIANBgAJqIBZCv6WUnM/w0rvkAEIAEPwDIANB8AdqICkgIkIAEPwDIANB8AFqIBZC19mumuT26Y3LAEIAEPwDIANB0AhqIB8gIkIAEPwDIANB4AFqIBZCms3/y6O9xIAaQgAQ/AMgA0GABWogGyAhQgAQ/AMgA0HAAWogA0HoBmopAwAgEyAXVq18IhMgAykDwAd8IhwgAykD0AF8Ih0gGCAZVq0gA0HIAmopAwAgFyAYVq18fHwiHiADKQPwBnwiFyAUIBVWrSADQZgGaikDACAUIBlUrXx8fCIYIAMpA+ADfCIUIA8gEVatIANB+ANqKQMAIA8gFVStfHx8IhUgAykDoAZ8Ig8gECASVq0gA0HIBWopAwAgECARVK18fHwiFiADKQOAA3wiECANIA5UrSADQZgDaikDACAOIBJUrXx8fCISIAMpA9AFfCIOIANB+ARqKQMAIAwgDVStfHwiGSADKQOgAnwiESADQbgCaikDACAMIAMpA7ACIgx8IAxUrXx8Ig0gAykDgAV8IgxC/f/z/8////mJf34iGkKr1f7///+//7l/QgAQ/AMgA0HgBWogJiAhQgAQ/AMgA0GwAWogGkL//8+K6///1R5CABD8AyADQcAGaiAnICFCABD8AyADQaABaiAaQqTsw7WP1LSY5wBCABD8AyADQaAHaiAoICFCABD8AyADQZABaiAaQr+llJzP8NK75ABCABD8AyADQYAIaiApICFCABD8AyADQYABaiAaQtfZrprk9umNywBCABD8AyADQeAIaiAfICFCABD8AyADQfAAaiAaQprN/8ujvcSAGkIAEPwDIANBkAVqIBsgIEIAEPwDIANB0ABqIANByAdqKQMAIBMgHFatfCITIAMpA6AIfCIqIAMpA2B8IisgHSAeVq0gA0HYAWopAwAgHCAdVq18fHwiLCADKQPQB3wiHCAXIBhWrSADQfgGaikDACAXIB5UrXx8fCIdIAMpA9ADfCIXIBQgFVatIANB6ANqKQMAIBQgGFStfHx8IhggAykDgAd8IhQgDyAWVq0gA0GoBmopAwAgDyAVVK18fHwiFSADKQPwAnwiDyAQIBJWrSADQYgDaikDACAQIBZUrXx8fCIbIAMpA7AGfCIQIA4gGVatIANB2AVqKQMAIA4gElStfHx8IhIgAykDkAJ8Ig4gDSARVK0gA0GoAmopAwAgESAZVK18fHwiGSADKQPgBXwiESADQYgFaikDACAMIA1UrXx8Ih4gAykDsAF8IhYgA0HIAWopAwAgDCADKQPAASIMfCAMVK18fCIaIAMpA5AFfCIMQv3/8//P///5iX9+Ig1Cq9X+////v/+5f0IAEPwDIANB8AVqICYgIEIAEPwDIANBQGsgDUL//8+K6///1R5CABD8AyADQdAGaiAnICBCABD8AyADQTBqIA1CpOzDtY/UtJjnAEIAEPwDIANBsAdqICggIEIAEPwDIANBIGogDUK/pZScz/DSu+QAQgAQ/AMgA0GQCGogKSAgQgAQ/AMgA0EQaiANQtfZrprk9umNywBCABD8AyADQfAIaiAfICBCABD8AyADIA1Cms3/y6O9xIAaQgAQ/AMgAyADKQOwCCINICsgLFatIANB6ABqKQMAICogK1atfHwgA0GoCGopAwAgEyAqVq18fHwiKiAcIB1WrSADQdgHaikDACAcICxUrXx8fCIrIAMpA8ADfCIcIBcgGFatIANB2ANqKQMAIBcgHVStfHx8Ih0gAykD4Ad8IhcgFCAVVq0gA0GIB2opAwAgFCAYVK18fHwiGCADKQPgAnwiFCAPIBtWrSADQfgCaikDACAPIBVUrXx8fCIVIAMpA5AHfCIPIBAgElatIANBuAZqKQMAIBAgG1StfHx8IiwgAykDgAJ8IhAgDiAZVq0gA0GYAmopAwAgDiASVK18fHwiEiADKQPABnwiDiARIB5WrSADQegFaikDACARIBlUrXx8fCIZIAMpA6ABfCIRIBYgGlatIANBuAFqKQMAIBYgHlStfHx8Ih4gAykD8AV8IhYgA0GYBWopAwAgDCAaVK18fCIbIAMpA0B8IhogA0HYAGopAwAgDCADKQNQIgx8IAxUrXx8Ih83A4AJIAMgAykDwAgiEyAcIB1WrSADQcgDaikDACAcICtUrXx8ICogK1atIANBuAhqKQMAIA0gKlatfHx8fCIcIBcgGFatIANB6AdqKQMAIBcgHVStfHx8Ih0gAykD0AJ8IhcgFCAVVq0gA0HoAmopAwAgFCAYVK18fHwiGCADKQPwB3wiFCAPICxWrSADQZgHaikDACAPIBVUrXx8fCIVIAMpA/ABfCIPIBAgElatIANBiAJqKQMAIBAgLFStfHx8IhAgAykDoAd8Ig0gDiAZVq0gA0HIBmopAwAgDiASVK18fHwiEiADKQOQAXwiDiARIB5WrSADQagBaikDACARIBlUrXx8fCIZIAMpA9AGfCIRIBYgG1atIANB+AVqKQMAIBYgHlStfHx8Ih4gAykDMHwiFiAaIB9WrSADQcgAaikDACAaIBtUrXx8fCIaNwOICSADIAMpA9AIIgwgFyAYVq0gA0HYAmopAwAgFyAdVK18fCAcIB1WrSADQcgIaikDACATIBxWrXx8fHwiFyAUIBVWrSADQfgHaikDACAUIBhUrXx8fCIYIAMpA+ABfCIUIA8gEFatIANB+AFqKQMAIA8gFVStfHx8IhUgAykDgAh8Ig8gDSASVq0gA0GoB2opAwAgDSAQVK18fHwiECADKQOAAXwiDSAOIBlWrSADQZgBaikDACAOIBJUrXx8fCISIAMpA7AHfCIOIBEgHlatIANB2AZqKQMAIBEgGVStfHx8IhkgAykDIHwiESAWIBpWrSADQThqKQMAIBYgHlStfHx8IhY3A5AJIAMgAykD4AgiEyAUIBVWrSADQegBaikDACAUIBhUrXx8IBcgGFatIANB2AhqKQMAIAwgF1atfHx8fCIUIA8gEFatIANBiAhqKQMAIA8gFVStfHx8IhUgAykDcHwiDyANIBJWrSADQYgBaikDACANIBBUrXx8fCIQIAMpA5AIfCINIA4gGVatIANBuAdqKQMAIA4gElStfHx8IhIgAykDEHwiDiARIBZWrSADQShqKQMAIBEgGVStfHx8IhE3A5gJIAMgAykD8AgiDCAPIBBWrSADQfgAaikDACAPIBVUrXx8IBQgFVatIANB6AhqKQMAIBMgFFatfHx8fCIPIA0gElatIANBmAhqKQMAIA0gEFStfHx8Ig0gAykDAHwiEyAOIBFWrSADQRhqKQMAIA4gElStfHx8Ig43A6AJIAMgDiATVK0gA0EIaikDACANIBNWrXx8IA0gD1StIANB+AhqKQMAIAwgD1atfHx8Ig83A6gJAkAgD0Kazf/Lo73EgBpUDQACQCAPQprN/8ujvcSAGlINACAOQtfZrprk9umNywBUDQEgDkLX2a6a5PbpjcsAUg0AIBFCv6WUnM/w0rvkAFQNASARQr+llJzP8NK75ABSDQAgFkKk7MO1j9S0mOcAVA0BIBZCpOzDtY/UtJjnAFINACAaQv//z4rr///VHlQNASAaQv//z4rr///VHlINACAfQqvV/v///7//uX9UDQELIAMgH0LVqoGAgIDAgMYAfDcDgAkgAyAaIB9Cq9X+////v/+5f1StIg19IhNC///Piuv//9UefSIMNwOICSADIBYgDCATVK0gDSAaVq1RrSINfSITQqTsw7WP1LSY5wB9Igw3A5AJIAMgESAMIBNUrSANIBZWrVGtIg19IhNCv6WUnM/w0rvkAH0iDDcDmAkgAyAOIAwgE1StIA0gEVatUa0iDX0iE0LX2a6a5PbpjcsAfSIMNwOgCSADIA8gDCATVK0gDSAOVq1RrX1Cms3/y6O9xIAafTcDqAkLIAggCmoxAAAhDCAEQgA3AwAgAkIANwMAIAFCADcDACAFQQhqQgA3AwAgBUIANwMAIAMgDDcDsAkgA0GoCmogA0GwCWoiCRBcIAMpA6gKUA0GIANB2AlqIAZBKGopAwA3AwAgA0HQCWogBkEgaikDADcDACADQcgJaiAGQRhqKQMANwMAIANBwAlqIAZBEGopAwA3AwAgBSAGQQhqKQMANwMAIAMgBikDADcDsAkgA0GACWogCRCEAyAKQQFrIgoNAAsLIAAgAykDgAk3AwAgAEEoaiADQagJaikDADcDACAAQSBqIANBoAlqKQMANwMAIABBGGogA0GYCWopAwA3AwAgAEEQaiADQZAJaikDADcDACAAQQhqIANBiAlqKQMANwMAIANB4ApqJAAPCyAEIAQtAAAgAygCsAotAABxOgAAIAghBCAGIQUMAQsLQYCJwQAQmAUAC0HYisEAEJgFAAtByIrBABCYBQALqCcCFX4MfyMAQaAEayIXJAAgAUEFdEHIvcAAaiEhQesAIAEgAUHrAE8bQQV0ISJBoGUhGQNAAkACQCAZICJqBEBCkYCAgICAgIAIIQwgGSAhaiIbQeAaaikDACAAIBlqIhhB4BpqIh0pAwB8IBhB6BpqIh4pAwAiAiAbQegaaikDAHwiCiACVCAKIBhB8BpqIh8pAwAiAiAbQfAaaikDAHwiBSACVCAFIAUgGEH4GmoiICkDACIDIBtB+BpqKQMAfCICIANUrXwiBFZyrXwiAyAKVHKtfCIJIQsCQAJAIAlCkYCAgICAgIAIUQRAQgEhDCACQgFRDQEgAiELIAMgBIRCAFINAQsgCyAMWg0AIAMhCyAEIQogAiEMDAELIAJCAX0hDCAEIAJQrSICfSEKIAMgAiAEVq0iAn0hC0Lu/////////3dC7/////////93IAIgA1YbIAl8IQkLIB4gCzcDACAdIAk3AwAgHyAKNwMAICAgDDcDACAXQbADaiAMIApCABD8AyAXQaADaiAMIAtCABD8AyAXQZADaiAMIAlCABD8AyAXQeADaiAKIAtCABD8AyAXQdADaiAKIAlCABD8AyAXQYAEaiALIAlCABD8AyAXQYADaiAMIAxCABD8AyAXQcADaiAKIApCABD8AyAXQfADaiALIAtCABD8AyAXQZAEaiAJIAlCABD8AyAXQfACakIAIBcpA4ADIgh9QpGAgICAgICACEIAEPwDIBdBiARqKQMAIBdB2ANqKQMAIBdBmANqKQMAIBdBqANqKQMAIBdBuANqKQMAIgIgFykDoAN8IhAgAlStfCICIBcpA5ADfCIEIAJUrXwiAiAXKQPQA3wiAyACVK18IAMgF0HoA2opAwAgBCAXKQPgA3wiDSAEVK18fCIOIANUrXwiAiAXKQOABHwiByACVK18IgNCP4ggF0GYBGopAwAgFykDkAQiAiADQgGGIAdCP4iEfCIFIAJUrXwgBSAFIBdB+ANqKQMAIBdByANqKQMAIBcpA8ADIgIgEEIBhiAXKQOwAyIDQj+IhHwiBCACVK18IAQgF0GIA2opAwAiAiADQgGGfCIJIAJUrXwiBiAEVK18IgIgDUIBhiAQQj+IhHwiAyACVK0iAiAXKQPwA3wiBCACVK18IAQgDkIBhiANQj+IhHwiDyAEVK18IgIgB0IBhiAOQj+IhHwiByACVK18IgVWrXx8IQRBACEcIBdB+AJqKQMAIAYgCEIAUq0iAiAJfCIIIAJUrSICfCIGIAJUrSICIBcpA/ACfCIJIAJUrXwgAyAJfCIDIAlUrXwiAlBFDQFBACEaDAILIAFB6wBBjNnAABCYBAALIAIgD3wiDyACVCIaRQ0AIBqtIgIgB3wiByACVCEaIAIgB1gNACAarSICIAV8IgUgAlQhGiACIAVYDQAgGq0iAiAEfCIEIAJUIRoLIBdB4AJqQgAgCH1CkYCAgICAgIAIQgAQ/AMCQCAXQegCaikDACAIQgBSrSICIAZ8IgggAlStIgIgA3wiBiACVK0iAiAXKQPgAnwiCSACVK18IAkgCSAPfCIDVq18IgJQDQAgAiAHfCIHIAJUIRwgAiAHWA0AIBytIgIgBXwiBSACVCEcIAIgBVgNACAcrSICIAR8IgQgAlQhHAsgF0HQAmpCACAIfUKRgICAgICAgAhCABD8A0EAIRggF0HYAmopAwAgCEIAUq0iAiAGfCIIIAJUrSICIAN8IgkgAlStIgIgFykD0AJ8IgMgAlStfCADIAd8IgYgA1StfCICUEUEQCACIAV8IgUgAlQiGK0iAyAEfCICIAQgGBshBCAYIAIgA1RxIRgLIBdBwAJqQgAgCH1CkYCAgICAgIAIQgAQ/AMgF0HIAmopAwAgCEIAUq0iAiAJfCIDIAJUrSICIAZ8IgcgAlStIgIgFykDwAJ8IgYgAlStfCAFIAZ8IgIgBlStfCIGIAR8IgUgBCAGQgBSIhsbIQkCQAJAIBogHHIgGHIgBSAGVCIYrSAGIBsbQgBSciAYIBtxIAlCkYCAgICAgIAIVnJyDQAgCUKRgICAgICAgAhSBEAgAyEEIAchBSACIQcMAgtCkYCAgICAgIAIIQkgAiAHhFBFDQBCACEHQgAhBEIAIQUgA1ANAQsgA0IBfSEEIAcgA1CtIgN9IQUgAiADIAdWrSIDfSEHIAkgAiADVK19QpGAgICAgICACH0hCQsgF0GwAmogDCAEQgAQ/AMgF0HwAWogDCAFQgAQ/AMgF0GwAWogDCAHQgAQ/AMgF0HwAGogDCAJQgAQ/AMgF0GgAmpCACAXKQOwAiICfUKRgICAgICAgAhCABD8AyAXQZACaiAKIARCABD8AyAXQdABaiAKIAVCABD8AyAXQZABaiAKIAdCABD8AyAXQeAAaiAKIAlCABD8AyAXQeABakIAIAJCAFKtIgogF0G4AmopAwAiAyAXKQPwAXwiAnwiDiAXKQOQAnwiCH1CkYCAgICAgIAIQgAQ/AMgF0GAAmogCyAEQgAQ/AMgF0HAAWogCyAFQgAQ/AMgF0GAAWogCyAHQgAQ/AMgF0HQAGogCyAJQgAQ/AMgF0GgAWpCACAIQgBSrSIMIAogDlatIgYgF0H4AWopAwAgAiADVK18IgogFykDsAF8IgN8Ig8gFykD0AF8IhEgF0GYAmopAwAgCCAOVK18fCICfCIIIBcpA4ACfCIQfUKRgICAgICAgAhCABD8AyAXQRBqIB0pAwAiCyAEQgAQ/AMgF0EgaiALIAVCABD8AyAXQTBqIAsgB0IAEPwDIBdBQGsgCyAJQgAQ/AMgF0IAIBdBiAJqKQMAIAggEFatfCIFIBcpA8ABfCILIBdBuAFqKQMAIAMgClStfCIEIBcpA3B8IhIgFykDoAJ8IgcgBiAPVq18Ig0gFykDkAF8Ig4gAiARVK0gF0HYAWopAwAgDyARVq18fHwiCSAIIAxUrXwiA3wiCCAQQgBSrXwiDCAXKQMQfCIPfUKRgICAgICAgAhCABD8AwJ+AkAgF0EIaikDACAXQShqKQMAIBdBGGopAwAgDCAPVq18IgIgFykDIHwiBiACVK18IAYgCCALVK0gF0HIAWopAwAgBSALVq18fCILIBcpA4ABfCIRIAMgCVStIgogFykD4AF8IhAgByANVq0gF0GoAmopAwAgByASVK18fCAXQfgAaikDACAEIBJWrXx8IgUgFykDYHwiByAJIA5UrSAXQZgBaikDACANIA5WrXx8fCIEfCIDfCIJIAggDFatfCICfCINIAZUrXwiDCAXKQMwfCIOIAIgCVStIgYgFykDoAF8IgggAyAQVK0gF0HoAWopAwAgCiAQVq18fCAEIAdUrSAXQegAaikDACAFIAdWrXx8fCIKIBcpA1B8IgcgCSARVK0gF0GIAWopAwAgCyARVq18fHwiBXwiBHwiCSANIA0gD0IAUq18Ig1WrXwiAyAJVK0iAiAXKQMAfCILIAJUrXwgCyAEIAhUrSAXQagBaikDACAGIAhWrXx8IAUgB1StIBdB2ABqKQMAIAcgClStfHx8IgUgFykDQHwiCiAJIA5UrSAXQThqKQMAIAwgDlatfHx8IgR8IgIgC1StfCAEIApUrSAXQcgAaikDACAFIApWrXx8fCILQpGAgICAgICACFYNACALQpGAgICAgICACFIEQCACIQogAyEJIA0MAgsgAyANhCAChFBFDQBCACEKQpGAgICAgICACCELQgAhCUIADAELIAMgDVCtIgR9IQkgAiADIARUrSIDfSEKIAsgAiADVK19QpGAgICAgICACH0hCyANQgF9CyECIB4gCjcDACAdIAs3AwAgHyAJNwMAICAgAjcDACABQQFqIQEgGUEgaiIZQYBmRw0AC0KRgICAgICAgAghDyAAKQMIIhMgAEEoaikDACISfCIDIBNUIAMgACkDECINIABBMGopAwAiEXwiAiANVCACIAApAxgiCCAAQThqKQMAIhB8IgQgCFStfCIGIAJUcq18IgogA1RyrSAAKQMgIg4gACkDACIHfHwiCyEDAkACQCALQpGAgICAgICACFEEQEIBIQ8gBEIBUQ0BIAQhAyAGIAqEQgBSDQELIAMgD1oNACAKIQMgBiECIAQhBQwBCyAEQgF9IQUgBiAEUK0iA30hAiAKIAMgBlatIgR9IQNC7v////////93Qu//////////dyAEIApWGyALfCELCyAAAn5CkYCAgICAgIAIIQwgAyAAQcgAaikDACIUfCIKIANUIAogAiACIABB0ABqKQMAIhV8IgNWIAMgBSAAQdgAaikDACIWfCICIAVUrXwiBCADVHKtfCIDIApUcq0gACkDQCIPIAt8fCILIQoCQAJAIAtCkYCAgICAgIAIUQRAQgEhDCACQgFRIANCAFJyDQEgAiEKIARCAFINAQsgCiAMWg0AIAMhCiAEIQwgAiEJDAELIAJCAX0hCSAEIAJQrSICfSEMIAMgAiAEVq0iAn0hCkLu/////////3dC7/////////93IAIgA1YbIAt8IQsLQpGAgICAgICACCEEIBMgE3wiAyATVCADIA0gDXwiAiANVCACIAggCHwiBSAIVK18IgggAlRyrXwiBiADVHKtIAdCAYaEIgchAgJAAkAgB0KRgICAgICAgAhRBEAgBUIBUQ0BIAUhAkIBIQQgBiAIhEIAUg0BCyACIARaDQAgBiECIAghBCAFIQMMAQsgBUIBfSEDIAggBVCtIgJ9IQQgBiACIAhWrSIFfSECQu7/////////d0Lv/////////3cgBSAGVhsgB3whBwtCkYCAgICAgIAIIQUgAiAKfCINIApUIA0gDSAEIAx8IgQgDFQgBCADIAl8IgIgCVStfCIIIARUcq18IgZWcq0gByALfHwiByEEAkACQCAHQpGAgICAgICACFEEQCAGIAiEQgBSDQFCASEFIAIiBEIBUQ0BCyAEIAVaDQAgBiEFIAghBCACIQMMAQsgAkIBfSEDIAggAlCtIgJ9IQQgBiACIAhWrSICfSEFQu7/////////d0Lv/////////3cgAiAGVhsgB3whBwsgACADNwMYIAAgBDcDECAAIAU3AwggACAHNwMAQpGAgICAgICACCEFIBIgEnwiBCASVCAEIAQgESARfCIDIBFUIAMgECAQfCICIBBUrXwiBiADVHKtfCIDVnKtIA5CAYaEIgchBAJAAkAgB0KRgICAgICAgAhRBEAgAkIBUQ0BIAIhBEIBIQUgAyAGhEIAUg0BCyAEIAVaDQAgAyEEIAYhBSACIQgMAQsgAkIBfSEIIAYgAlCtIgJ9IQUgAyACIAZWrSICfSEEQu7/////////d0Lv/////////3cgAiADVhsgB3whBwsg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KQMAIAggD1StfHx8Igh8IgYgBVStfCADIAhWrSAVQQhqKQMAIAMgBFStfHx8IgpCkYCAgICAgIAIVg0AIApCkYCAgICAgIAIUQRAIAEgAoQgBoRQRQ0BQgAhCUKRgICAgICAgAghCkIAIQ9CACEODAILIAYhCSACIQ8gASEODAELIAFCAX0hDiACIAFQrSIBfSEPIAYgASACVq0iAX0hCSAKIAEgBlatfUKRgICAgICAgAh9IQoLQpGAgICAgICACCEIIAApAwgiByAAKQMoIhB8IgIgB1QgAiAAKQMQIgsgACkDMCIRfCIFIAtUIAUgBSAAKQMYIg0gACkDOCISfCIBIA1UrXwiBlZyrXwiAyACVHKtIAApAyAiFCAAKQMAIhN8fCIMIQUCQAJAIAxCkYCAgICAgIAIUQRAQgEhCCABQgFRDQEgASEFIAMgBoRCAFINAQsgBSAIWg0AIAMhBSAGIQggASECDAELIAFCAX0hAiAGIAFQrSIBfSEIIAMgASAGVq0iAX0hBULu/////////3dC7/////////93IAEgA1YbIAx8IQwLQpGAgICAgICACCEDIAUgCXwiBiAFVCAGIAggD3wiBSAIVCAFIAIgDnwiASACVK18IgIgBVRyrXwiBCAGVHKtIAogDHx8IgwhBgJAAkAgDEKRgICAgICAgAhRBEBCASEDIAFCAVEgBEIAUnINASABIQYgAkIAUg0BCyADIAZYDQAgBCEGIAIhBSABIQgMAQsgAUIBfSEIIAIgAVCtIgF9IQUgBCABIAJWrSIBfSEGQu7/////////d0Lv/////////3cgASAEVhsgDHwhDAtCkYCAgICAgIAIIQEgByAHfCIDIAdUIAMgCyALfCIEIAtUIAQgDSANfCICIA1UrXwiCyAEVHKtfCINIANUcq0gE0IBhoQiByEEAkACQCAHQpGAgICAgICACFEEQEIBIQEgAkIBUQ0BIAIhBCALIA2EQgBSDQELIAEgBFgNACANIQQgCyEBIAIhAwwBCyACQgF9IQMgCyACUK0iAn0hASANIAIgC1atIgJ9IQRC7v////////93Qu//////////dyACIA1WGyAHfCEHC0KRgICAgICAgAghAiAEIAZ8IhMgBlQgEyATIAEgBXwiASAFVCABIAMgCHwiBCAIVK18IgsgAVRyrXwiDVZyrSAHIAx8fCIHIQECQAJAIAdCkYCAgICAgIAIUQRAIAsgDYRCAFINAUIBIQIgBCIBQgFRDQELIAEgAloNACANIQIgCyEBIAQhAwwBCyAEQgF9IQMgCyAEUK0iAn0hASANIAIgC1atIgR9IQJC7v////////93Qu//////////dyAEIA1WGyAHfCEHCyAAIAM3AxggACABNwMQIAAgAjcDCCAAIAc3AwBCkYCAgICAgIAIIQEgECAQfCICIBBUIAIgESARfCIHIBFUIAcgByASIBJ8IgMgElStfCIEVnKtfCINIAJUcq0gFEIBhoQiByECAkACQCAHQpGAgICAgICACFEEQEIBIQEgA0IBUQ0BIAMhAiAEIA2EQgBSDQELIAEgAlgNACANIQIgBCEBIAMhCwwBCyADQgF9IQsgBCADUK0iAn0hASANIAIgBFatIgN9IQJC7v////////93Qu//////////dyADIA1WGyAHfCEHCyAAAn4CQAJAAkAgDCIEIAciA1INACACIQMgAiAGIgRSDQAgASEDIAEgBSIEUg0AQgAhDSAIIgQgCyIDUQ0BCyAMIAd9IQ0gAyAEWg0BCyAFIAF9IgMgCCALVK0iBH0hByAGIAJ9IhAgAyAEVCABIAVWcq0iA30hASADIBBWIAIgBlZyIRYgCCALfQwBCyABIAVUIAggC1atIgMgASAFfSIBVnKtIgQgAiAGfSIQfSIHIAEgA1IgAyABfSIDIAsgCH0iC0IBVq0iEVRyrSISfSEBIAQgEFIgByASVHIhFiADIBF9IQcgDSACIAZUIAQgEFZyrXxCkYCAgICAgIAIfCENQgEgC30LNwM4IAAgBzcDMCAAIAE3AyggACANIBatfTcDIEKRgICAgICAgAghDSAJIAl8IgEgCVQgASAPIA98IgQgD1QgBCAEIA4gDnwiAiAOVK18IgNWcq18IgQgAVRyrSAKQgGGhCIHIQECQAJAIAdCkYCAgICAgIAIUQRAQgEhDSACQgFRIARCAFJyDQEgAiEBIANCAFINAQsgASANWg0AIAQhASADIQ0gAiELDAELIAJCAX0hCyADIAJQrSIBfSENIAQgASADVq0iAn0hAULu/////////3dC7/////////93IAIgBFYbIAd8IQcLQpGAgICAgICACCEDIAEgCXwiCSABVCAJIAkgDSAPfCIEIA1UIAQgBCALIA58IgEgC1StfCICVnKtfCIEVnKtIAcgCnx8IgohCQJAAkAgCkKRgICAgICAgAhRBEAgAiAEhEIAUg0BQgEhAyABIglCAVENAQsgAyAJWA0AIAQhCSACIQ8gASEHDAELIAFCAX0hByACIAFQrSIBfSEPIAQgASACVq0iAX0hCULu/////////3dC7/////////93IAEgBFYbIAp8IQoLAn4CQAJAAkAgDCIBIAoiAlINACAGIgEgCSICUg0AIA8iAiAFIgFSDQBCACEOIAgiASAHIgJRDQELIAwgCn0hDiABIAJYDQELIAUgD30iASAHIAhWrSICfSEKIAYgCX0iAyABIAJUIAUgD1RyrSIBfSEMIAYgCVQgASADVnIhFiAIIAd9DAELIAUgD1YgByAIVK0iASAPIAV9IgJWcq0iBSAJIAZ9IgN9IgQgASACUiABIAJ9IgEgByAIfSICQgFWrSIIVHKtIgd9IQwgAyAFUiAEIAdUciEWIAEgCH0hCiAOIAMgBVQgBiAJVnKtfEKRgICAgICAgAh8IQ5CASACfQshBiAOIBatfSEJIBhBIGoiGA0ACyAAIAo3A1AgACAGNwNYIAAgDDcDSCAAIAk3A0AgAEHfABBSIABB4gAQUiAAQeUAEFIgAEHoABBSIBVBoARqJAALmCUCBn8ZfiMAQeAGayIDJAAgA0GYBmpCADcDACADQZAGakIANwMAIANBiAZqQgA3AwAgA0GoBmpCADcDACADQbAGakIANwMAIANCADcDgAYgA0IANwOgBiADQgE3A7gGAkACQAJAAkAgAiADQYAGaiIFQSAQrgUEQCACIANBoAZqQSAQrgVFDQMgAikDECEQIAIpAwghDCACKQMAIQ0gASkDGCERIAEpAxAhCiABKQMIIQsgASkDACEOIAIpAxghGSADQdAGaiIHQgA3AwAgA0HIBmoiCEIANwMAIANCADcDwAYgAyAZQgGDNwPYBiADQcAGaiAFQSAQrgUNAgNAIAwhFiADQdAFaiAKIBFCABD8AyADQbAFaiALIBFCABD8AyADQYAFaiAOIBFCABD8AyADQaAFaiALIApCABD8AyADQfAEaiAOIApCABD8AyADQeAEaiAOIAtCABD8AyADQfAFaiARIBFCABD8AyADQcAFaiAKIApCABD8AyADQZAFaiALIAtCABD8AyADQdAEaiAOIA5CABD8AyADQeAFaiADKQPwBSIJQoGAgIBwQgAQ/AMgA0HoBGopAwAgA0H4BGopAwAgA0GIBWopAwAgA0G4BWopAwAgA0HYBWopAwAiCyADKQOwBXwiCiALVK18IgwgAykDgAV8IgsgDFStfCIVIAMpA/AEfCIMIBVUrXwgDCAMIANBqAVqKQMAIAsgCyADKQOgBXwiC1atfHwiDFatfCIOIAMpA+AEfCIVIA5UrXwiDkI/iCADQdgEaikDACADKQPQBCIPIA5CAYYgFUI/iIR8Ig4gD1StfCAOIANBmAVqKQMAIANByAVqKQMAIAMpA8AFIhEgCkIBhiADKQPQBSITQj+IhHwiDyARVK18IA8gA0H4BWopAwAiESATQgGGfCITIBFUrXwiESAPVK18Ig8gC0IBhiAKQj+IhHwiHSAPVK0iDyADKQOQBXwiCiAPVK18IAogDEIBhiALQj+IhHwiCyAKVK18IgogFUIBhiAMQj+IhHwiDCAKVK18Ig8gDlStfHwhDkEAIQECQCADQegFaikDACAJQiCGIhUgE3wiCiAVVK0gCUIgiHwiCSARfCIVIAlUrSIRIAMpA+AFfCIJIBFUrXwgCSAdfCIRIAlUrXwiCVAEQEEAIQQMAQsgCSALfCILIAlUIgRFDQAgBK0iCSAMfCIMIAlUIQQgCSAMWA0AIAStIgkgD3wiDyAJVCEEIAkgD1gNACAErSIJIA58Ig4gCVQhBAsgA0HABGogCkKBgICAcEIAEPwDAkAgA0HIBGopAwAgFSAKQiCGIhV8IgkgFVStIApCIIh8IgogEXwiFSAKVK0iESADKQPABHwiCiARVK18IAogC3wiCyAKVK18IgpQDQAgCiAMfCIMIApUIQEgCiAMWA0AIAGtIgogD3wiDyAKVCEBIAogD1gNACABrSIKIA58Ig4gClQhAQsgA0GwBGogCUKBgICAcEIAEPwDQQAhBSADQbgEaikDACALIAlCIIYiCyAVfCIKIAtUrSAJQiCIfCILfCIJIAtUrSIVIAMpA7AEfCILIBVUrXwgCyAMfCIMIAtUrXwiC1BFBEAgCyAPfCIPIAtUIgWtIgsgDnwiFSAOIAUbIQ4gBSALIBVWcSEFCyADQaAEaiAKQoGAgIBwQgAQ/AMgA0GoBGopAwAgCkIghiILIAl8IhEgC1StIApCIIh8IgogDHwiFSAKVK0iCyADKQOgBHwiCiALVK18IAogD3wiCSAKVK18IgogDnwiCyAOIApCAFIiBhshDgJAAkAgASAEciAFciAKIAtWIgGtIAogBhtCAFJyIAEgBnEgDkKBgICAcFZycg0AIA5CgYCAgHBSBEAgFSEKIAkhCwwCC0KBgICAcCEOIAlCAFIgFUL/////D1ZyDQBCACELIBVC/////w9SBEAgFSEKDAILQv////8PIRUgEUJ/UQ0AQv////8PIQoMAQsgFUL/////D30iCyARQn9SrSIMfSEKIAkgFUL/////D1QgCyAMVHKtIgx9IQsgDiAJIAxUrX1C/////w98IQ4gEUIBfCERCyAHQgA3AwAgCEIANwMAIANCADcDwAYgAyAQQj+GIBlCAYiEIhlCAYM3A9gGIA1CP4YgFkIBiIQhDCAWQj+GIBBCAYiEIRAgDUIBiCENIANBwAZqIANBgAZqQSAQrgVFDQALDAELIABBGGpB+LjAACkDADcDACAAQRBqQfC4wAApAwA3AwAgAEEIakHouMAAKQMANwMAIABB4LjAACkDADcDAAwDCyACIBA3AxAgAiAZNwMYIAIgDDcDCCACIA03AwALAkAgAiADQYAGakEgEK4FRQ0AIAIgDUIBiCIJNwMAIAIgDEI/hiAQQgGIhCIWNwMQIAIgEEI/hiAZQgGIhCIdNwMYIAIgDUI/hiAMQgGIhCIVNwMIIAIgA0GABmpBIBCuBUUNACADKQO4BiEhIANB0AZqIQcgDiEMIAshECAKIQ0gESEPA0AgCSEZIANB8ANqIA0gD0IAEPwDIANB0ANqIBAgD0IAEPwDIANBoANqIAwgD0IAEPwDIANBwANqIBAgDUIAEPwDIANBkANqIAwgDUIAEPwDIANBgANqIAwgEEIAEPwDIANBkARqIA8gD0IAEPwDIANB4ANqIA0gDUIAEPwDIANBsANqIBAgEEIAEPwDIANB8AJqIAwgDEIAEPwDIANBgARqIAMpA5AEIhNCgYCAgHBCABD8AyADQYgDaikDACADQZgDaikDACADQagDaikDACADQdgDaikDACADQfgDaikDACIJIAMpA9ADfCINIAlUrXwiDCADKQOgA3wiCSAMVK18IhAgAykDkAN8IgwgEFStfCAMIAwgA0HIA2opAwAgCSAJIAMpA8ADfCIJ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IgZFDQEgBkIANwOQBCAGQv3/i4CAgMCE9gA3AyggBkKCgLCgvIGA+ms3AyAgBkK6sZ2e9YqmpN8ANwMYIAZCxa7JgreKluf3ADcDECAGQu3Y25L60saD3AA3AwggBkKTyYPUv9iX+xU3AwAgBkG4BGpCADcDACAGQbAEakIANwMAIAZBqARqQgA3AwAgBkGgBGpCADcDACAGQZgEakIANwMAIAZBMGpBAEHgAxCvBRogBUEAOgD4ByAFIAZBwARqNgL0ByAFIAY2AvAHIAVBqARqIAVB8AdqEMACIAUoArAEIgFBAk8EQCABQQF2IQggBSgCrAQiBCABQTBsakEwayEBA0AgBCkDACEnIAQgASkDADcDACAFQegEaiIJIARBKGoiDCkDADcDACAFQeAEaiIKIARBIGoiBykDADcDACAFQdgEaiIQIARBGGoiDSkDADcDACAFQdAEaiIRIARBEGoiEikDADcDACAFQcgEaiILIARBCGoiEykDADcDACAMIAFBKGoiDCkDADcDACAHIAFBIGoiBykDADcDACANIAFBGGoiDSkDADcDACASIAFBEGoiEikDADcDACATIAFBCGoiEykDADcDACAFICc3A8AEIAwgCSkDADcDACAHIAopAwA3AwAgDSAQKQMANwMAIBIgESkDADcDACATIAspAwA3AwAgASAFKQPABDcDACABQTBrIQEgBEEwaiEEIAhBAWsiCA0ACwsgBUGwA2ogBUGwBGooAgA2AgAgBSAFKQKoBDcDqAMgBkHABBCUBSAFQQA2ArwDIAVCgICAgIABNwK0AyAFKAKIAyESAkAgBSgCjAMiEEEHTQRAIBBFBEBBfiERDAYLIBItAABB/wFGDQEgEEEBRg0EIBItAAFB/wFGDQEgEEECRg0EIBItAAJB/wFGDQEgEEEDRg0EIBItAANB/wFGDQEgEEEERg0EIBItAARB/wFGDQEgEEEFRg0EIBItAAVB/wFGDQEgEEEGRg0EIBItAAZB/wFGDQEMBAsgBSASIBAQtAMgBSgCAEEBRg0AIBBBAmshEQwFCyACRQ0CIAJBwAFsIQggAyEEA0AgBUHABGogBBD0ASAFKAK8AyIBIAUoArQDRgRAIAVBtANqEN0DCyAEQcABaiEEIAUoArgDIAFBwAFsaiAFQcAEakHAARCtBRogBSABQQFqNgK8AyAI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QQgQiwUiBARAIARBGGpByJrAACkDADcDACAEQRBqQcCawAApAwA3AwAgBEEIakG4msAAKQMANwMAIARBsJrAACkDADcDACADQQA6AIgCIAMgBEEgajYChAIgAyAENgKAAiADQeABaiADQYACahDmAiADKALoASICQQJPBEAgAkEBdiEFIAMoAuQBIgEgAkEFdGpBIGshAgNAIAEpAwAhDCABIAIpAwA3AwAgAUEYaiIGKQMAIREgBiACQRhqIgYpAwA3AwAgAUEQaiIHKQMAIQ4gByACQRBqIgcpAwA3AwAgAUEIaiIKKQMAIQ8gCiACQQhqIgopAwA3AwAgAiAMNwMAIAYgETcDACAHIA43AwAgCiAPNwMAIAJBIGshAiABQSBqIQEgBUEBayIFDQALCyADQShqIANB6AFqKAIANgIAIAMgAykC4AE3AyAgBEEgEJQFIANBMGoQqAMgA0FAaxCoA0G50cIALQAAGkEgQQgQiwUiBARAIARBGGpByJrAACkDADcDACAEQRBqQcCawAApAwA3AwAgBEEIakG4msAAKQMANwMAIARBsJrAACkDADcDACADQQA6AIgCIAMgBEEgajYChAIgAyAENgKAAiADQeABaiADQYACahDmAiADKALoASICQQJPBEAgAkEBdiEFIAMoAuQBIgEgAkEFdGpBIGshAgNAIAEpAwAhDCABIAIpAwA3AwAgAUEYaiIGKQMAIREgBiACQRhqIgYpAwA3AwAgAUEQaiIHKQMAIQ4gByACQRBqIgcpAwA3AwAgAUEIaiIKKQMAIQ8gCiACQQhqIgopAwA3AwAgAiAMNwMAIAYgETcDACAHIA43AwAgCiAPNwMAIAJBIGshAiABQSBqIQEgBUEBayIFDQALCyADQdgAaiIKIANB6AFqKAIANgIAIAMgAykC4AE3A1AgBEEgEJQFA0AgCEEFdCEBAkACQAJAA0AgAUUNASABQSBrIgEgCWpBwJfAAEEgEK4FRQ0ACyADKAIIIgINAUEIIQQMAgsgAygCCCICQQV0IQEgAygCBCEFAkACQANAIAFFDQEgAkEBayECIAFBIGsiASAFaiIEQcCXwABBIBCuBUUNAAsgAkEASA0AIANBuAFqIARBGGoiASkDADcDACADQbABaiAEQRBqIgIpAwA3AwAgA0GoAWogBEEIaiIIKQMANwMAIAMg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ARD+AiAAQQxqIANBQGsgARD+AiAAQRhqIAMgARD+AiADKAJQIgAEQCADKAJUIABBBXQQlAULIAMoAkAiAARAIAMoAkQgAEEFdBCUBQsgAygCMCIABEAgAygCNCAAQQV0EJQFCyADKAIgIgAEQCADKAIkIABBBXQQlAULIAMoAhAiAARAIAkgAEEFdBCUBQsgAygCACIABEAgBSAAQQV0EJQFCyADQeACaiQADwtBnJ3AAEErIANBgAJqQcidwABB2J3AABD9AwALIANCAjcDgAJBnJ3AAEErIANBgAJqQcyewABB/J7AABD9AwALIAJBBXQhCCACQf///x9LBEBBACEBDAULIAMoAgQhB0G50cIALQAAGkEIIQEgCEEIEIsFIgRFDQRBACEBIAIhBQNAIAEgCEYNASABIARqIgkgASAHaiIGKQMANwMAIAlBGGogBkEYaikDADcDACAJQRBqIAZBEGopAwA3AwAgCUEIaiAGQQhqKQMANwMAIAFBIGohASAFQQFrIgUNAAsLIAMgAjYC6AEgAyAENgLkASADIAI2AuABIANBgAJqIANB4AFqIANBEGoQRyADKAKIAiECIAMoAoQCIQggAygCgAIhCyADKAKMAiIBBEAgAygCkAIgAUEFdBCUBQsCQCACRQRAQQghBQwBCyACQQV0IQkgAkH///8fSwRAQQAhAQwIC0G50cIALQAAGkEIIQEgCUEIEIsFIgVFDQdBACEBIAIhBANAIAEgCUYNASABIAVqIgYgASAIaiIHKQMANwMAIAZBGGogB0EYaikDADcDACAGQRBqIAdBEGopAwA3AwAgBkEIaiAHQQhqKQMANwMAIAFBIGohASAEQQFrIgQNAAsLIAMgAjYC6AEgAyAFNgLkASADIAI2AuABIANBwAFqIgEgA0HgAWogA0EQahB3IANBgAJqIgQgARDyAiADQdwAaiADIAQQlQICQCACRQRAQQghBSADQRhqIgEoAgAhBCABIANB5ABqKAIANgIAIANBCGogBDYCACADKQMQIQwgAyADKQJcNwMQIAMgDDcDACADQagBaiADQShqKAIANgIAIAMgAykDIDcDoAEMAQsgBSACQQV0IgkQlAUgA0EYaiIBKAIAIQQgASADQeQAaigCADYCACADQQhqIAQ2AgAgAykDECEMIAMgAykCXDcDECADIAw3AwAgA0GoAWogA0EoaigCADYCACADIAMpAyA3A6ABIAJB////H0sEQEEAIQEMCAtBudHCAC0AABpBCCEBIAlBCBCLBSIFRQ0HQQAhASACIQQDQCABIAlGDQEgASAFaiIGIAEgCGoiBykDADcDACAGQRhqIAdBGGopAwA3AwAgBkEQaiAHQRBqKQMANwMAIAZBCGogB0EIaikDADcDACABQSBqIQEgBEEBayIEDQALCyADIAI2AugBIAMgBTYC5AEgAyACNgLgASADQcABaiIBIANB4AFqIANBMGoQdyADQYACaiIEIAEQ8gIgA0HoAGogA0GgAWogBBCVAgJAIAJFBEBBCCEFIANBOGoiASgCACEEIAEgA0HwAGooAgA2AgAgA0EoaiAENgIAIAMpAzAhDCADIAMpAmg3AzAgAyAMNwMgIANBqAFqIANByABqKAIANgIAIAMgAykCQDcDoAEMAQsgBSACQQV0IgkQlAUgA0E4aiIBKAIAIQQgASADQfAAaigCADYCACADQShqIAQ2AgAgAykDMCEMIAMgAykCaDcDMCADIAw3AyAgA0GoAWogA0HIAGooAgA2AgAgAyADKQJANwOgASACQf///x9LBEBBACEBDAgLQbnRwgAtAAAaQQghASAJQQgQiwUiBUUNB0EAIQEgAiEEA0AgASAJRg0BIAEgBWoiBiABIAhqIgcpAwA3AwAgBkEYaiAHQRhqKQMANwMAIAZBEGogB0EQaikDADcDACAGQQhqIAdBCGopAwA3AwAgAUEgaiEBIARBAWsiBA0ACwsgAyACNgLoASADIAU2AuQBIAMgAjYC4AEgA0HAAWoiASADQeABaiADQdAAahB3IANBgAJqIgQgARDyAiADQfQAaiADQaABaiAEEJUCIAIEQCAFIAJBBXQQlAULIAooAgAhASAKIANB/ABqKAIANgIAIANByABqIAE2AgAgAykDUCEMIAMgAykCdDcDUCADIAw3A0AgCwRAIAggC0EFdBCUBQsgAygCGCEIIAMoAhQhCQwACwALQQhBIBCoBQALQQhBIBCoBQALIAEgCBCDBQALIAUgBBCDBQALIAUgBBCDBQALIAEgCRCDBQALhiYCCX8XfiMAQeACayIDJABBCCEJQQghBgJAAkACQCABKAIIIghFDQAgCEEFdCEEIAhB////H0sEQAwCCyABKAIEIQpBACEBQbnRwgAtAAAaQQghBSAEQQgQiwUiBkUNASAIQQV0IQsgCCEEA0AgASALRg0BIAEgBmoiBSABIApqIgcpAwA3AwAgBUEYaiAHQRhqKQMANwMAIAVBEGogB0EQaikDADcDACAFQQhqIAdBCGopAwA3AwAgAUEgaiEBIARBAWsiBA0ACwsgAyAINgIIIAMgBjYCBCADIAg2AgACQAJAIAIoAggiCEUNACAIQQV0IQQgCEH///8fSwRAQQAhBQwCCyACKAIEIQZBACEBQbnRwgAtAAAaQQghBSAEQQgQiwUiCUUNASAIQQV0IQcgCCEEA0AgASAHRg0BIAEgCWoiAiABIAZqIgUpAwA3AwAgAkEYaiAFQRhqKQMANwMAIAJBEGogBUEQaikDADcDACACQQhqIAVBCGopAwA3AwAgAUEgaiEBIARBAWsiBA0ACwsgAyAINgIYIAMgCTYCFCADIAg2AhBBudHCAC0AABoCQEEgQQgQiwUiBARAIARBGGpBqJrAACkDADcDACAEQRBqQaCawAApAwA3AwAgBEEIakGYmsAAKQMANwMAIARBkJrAACkDADcDACADQQA6AIgCIAMgBEEgajYChAIgAyAENgKAAiADQeABaiADQYACahDmAiADKALoASICQQJPBEAgAkEBdiEFIAMoAuQBIgEgAkEFdGpBIGshAgNAIAEpAwAhDCABIAIpAwA3AwAgAUEYaiIGKQMAIRAgBiACQRhqIgYpAwA3AwAgAUEQaiIHKQMAIQ0gByACQRBqIgcpAwA3AwAgAUEIaiIKKQMAIQ4gCiACQQhqIgopAwA3AwAgAiAMNwMAIAYgEDcDACAHIA03AwAgCiAONwMAIAJBIGshAiABQSBqIQEgBUEBayIFDQALCyADQShqIANB6AFqKAIANgIAIAMgAykC4AE3AyAgBEEgEJQFIANBMGoQqAMgA0FAaxCoA0G50cIALQAAGkEgQQgQiwUiBARAIARBGGpBqJrAACkDADcDACAEQRBqQaCawAApAwA3AwAgBEEIakGYmsAAKQMANwMAIARBkJrAACkDADcDACADQQA6AIgCIAMgBEEgajYChAIgAyAENgKAAiADQeABaiADQYACahDmAiADKALoASICQQJPBEAgAkEBdiEFIAMoAuQBIgEgAkEFdGpBIGshAgNAIAEpAwAhDCABIAIpAwA3AwAgAUEYaiIGKQMAIRAgBiACQRhqIgYpAwA3AwAgAUEQaiIHKQMAIQ0gByACQRBqIgcpAwA3AwAgAUEIaiIKKQMAIQ4gCiACQQhqIgopAwA3AwAgAiAMNwMAIAYgEDcDACAHIA03AwAgCiAONwMAIAJBIGshAiABQSBqIQEgBUEBayIFDQALCyADQdgAaiIKIANB6AFqKAIANgIAIAMgAykC4AE3A1AgBEEgEJQFA0AgCEEFdCEBAkACQAJAA0AgAUUNASABQSBrIgEgCWpBwJfAAEEgEK4FRQ0ACyADKAIIIgINAUEIIQQMAgsgAygCCCICQQV0IQEgAygCBCEFAkACQANAIAFFDQEgAkEBayECIAFBIGsiASAFaiIEQcCXwABBIBCuBUUNAAsgAkEASA0AIANBuAFqIARBGGoiASkDADcDACADQbABaiAEQRBqIgIpAwA3AwAgA0GoAWogBEEIaiIIKQMANwMAIAMgBCkDADcDoAEgA0GgAWpBwJfAAEEgEK4FRQ0BIANB0AFqQgA3AwAgA0HIAWpCADcDACADQgA3A8ABIANCATcD2AEgA0H4AWogASkDADcDACADQfABaiACKQMANwMAIANB6AFqIAgpAwA3AwAgAyAEKQMANwPgASADQZgCakHYmMAAKQMANwMAIANBkAJqQdCYwAApAwA3AwAgA0GIAmpByJjAACkDADcDACADQcCYwAApAwA3A4ACAkAgA0HgAWogA0HAAWpBIBCuBUUEQEL9////zwAhF0J+IRFCAyEVQv////+/fyEPDAELQv3////PACEXQn4hEUL/////v38hD0IDIRUgAykD+AEhDSADKQPgASEeIAMpA+gBIQwgAykD8AEhG0J/IQ5CgYCAgHAhH0IAIRBC/////w8hHANAIANBgAJqIANBwAFqQSAQrgVFBEAgEiEPIBghFSAUIREgGSEXDAILIA2nQQFxRQRAA0AgG0I/hiANQgGIhCENAn4gFadBAXFFBEAgF0I/hiARQj+GIRYgD0I/hiAVQgGIhCEVIBdCAYghFyARQgGIhCERIBYgD0IBiIQMAQsgF0L/////D30iEyARIA9CgICAgBB8IhZQIA9C/////w98IA9Ucq18Ig8gEVStfCIRQgGIIhpCgICAgICAgICAf4QiHSAdIBogESATVBsgEyAXVBshFyARQj+GIA9CAYiEIREgFkI/hiAVQgF9QgGIhCEVIA9CP4YgFkIBiIQLIQ8gHkI/hiAMQj+GIBtCAYiEIRsgHkIBiCEeIAxCAYiEIQwgDUIBg1ANAAsgAyAbNwPwASADIA03A/gBIAMgDDcD6AEgAyAeNwPgAQsgDqdBAXFFBEADQCAcQj+GIA5CAYiEIQ4CQCAYQgGDUEUEQCAZQv////8PfSITIBQgEkKAgICAEHwiFlAgEkL/////D3wgElRyrXwiEiAUVK18IhRCAYgiGkKAgICAgICAgIB/hCIdIB0gGiATIBRWGyATIBlUGyEZIBRCP4YgEkIBiIQhFCAWQj+GIBhCAX1CAYiEIRggEkI/hiAWQgGIhCESDAELIBlCP4YgEkI/hiAYQgGIhCEYIBlCAYghGSAUQj+GIBJCAYiEIRIgFEIBiIQhFAsgH0I/hiAQQj+GIBxCAYiEIRwgH0IBiCEfIBBCAYiEIRAgDkIBg1ANAAsgAyAcNwOQAiADIA43A5gCIAMgEDcDiAIgAyAfNwOAAgsCQAJAAkACQCAeIhYgHyITUg0AIBAhEyAMIRYgDCAQUg0AIBsiFiAcIhNSDQAgDiETIA0hFiANIA5RDQELIBMgFlQNACADIA4gDX0iEzcDmAIgAyAcIBt9IhogDSAOVq0iDn0iFjcDkAIgAyAQIAx9Ih0gDiAaViAbIBxWcq0iDn0iGjcDiAIgAyAfIB59IA4gHVYgDCAQVnKtfSIfNwOAAgJAAkAgFyIQIBkiDlINACARIRAgFCIOIBFSDQAgDyEQIBIiDiAPUg0AIBUiECAYIg5RDQELIA4gEFQNAgsgGSAXfSAUIBF9Ih0gEiAPfSIgIBUgGFatIiFUIA8gElZyrSIiVCARIBRWcq19IRkgGCAVfSEYIBYhHCAaIRAgEyEOICAgIX0hEiAdICJ9IRQMAgsgAyANIA59IhM3A/gBIAMgGyAcfSIaIA0gDlStIg19IhY3A/ABIAMgDCAQfSIdIBsgHFQgDSAaVnKtIg19Iho3A+gBIAMgHiAffSAMIBBUIA0gHVZyrX0iHjcD4AECQAJAAkAgFyINIBkiDFINACARIg0gFCIMUg0AIA8hDSASIgwgD1INACAVIg0gGCIMUQ0BCyAMIA1WDQELIBcgGX0gESAUVCARIBR9IhEgDyASVCAPIBJ9Ig8gFSAYVK0iHVRyrSIgVHKtfSEXIBUgGH0hFSAWIRsgGiEMIBMhDSARICB9IREgDyAdfSEPDAILIBcgGX0gFEIAUkIAIBR9IgwgEkL/////D1atIg1Ucq19IAwgDX0iDSARfCIMIA1UIAwgD0L/////DyASfSIPfCINIA9UIA0gGEJ/hSIPIBV8IhUgD1StfCIPIA1Ucq18IhEgDFRyrXxC/////w99IRcgFiEbIBohDCATIQ0MAQsgGSARQgBSQgAgEX0iECAPQv////8PVq0iDlRyrSAXfH0gECAOfSIOIBR8IhAgDlQgECASQv////8PIA99IhJ8Ig4gElQgDiAVQn+FIhIgGHwiGCASVK18IhIgDlRyrXwiFCAQVHKtfEL/////D30hGSAWIRwgGiEQIBMhDgsgA0HgAWogA0HAAWpBIBCuBQ0ACwsgAyAVNwOYASADIA83A5ABIAMgETcDiAEgAyAXNwOAASAAIANBIGogA0GAAWoiARD9AiAAQQxqIANBQGsgARD9AiAAQRhqIAMgARD9AiADKAJQIgAEQCADKAJUIABBBXQQlAULIAMoAkAiAARAIAMoAkQgAEEFdBCUBQsgAygCMCIABEAgAygCNCAAQQV0EJQFCyADKAIgIgAEQCADKAIkIABBBXQQlAULIAMoAhAiAARAIAkgAEEFdBCUBQsgAygCACIABEAgBSAAQQV0EJQFCyADQeACaiQADwtBnJ3AAEErIANBgAJqQcidwABB2J3AABD9AwALIANCAjcDgAJBnJ3AAEErIANBgAJqQcyewABB/J7AABD9AwALIAJBBXQhCCACQf///x9LBEBBACEBDAULIAMoAgQhB0G50cIALQAAGkEIIQEgCEEIEIsFIgRFDQRBACEBIAIhBQNAIAEgCEYNASABIARqIgkgASAHaiIGKQMANwMAIAlBGGogBkEYaikDADcDACAJQRBqIAZBEGopAwA3AwAgCUEIaiAGQQhqKQMANwMAIAFBIGohASAFQQFrIgUNAAsLIAMgAjYC6AEgAyAENgLkASADIAI2AuABIANBgAJqIANB4AFqIANBEGoQSyADKAKIAiECIAMoAoQCIQggAygCgAIhCyADKAKMAiIBBEAgAygCkAIgAUEFdBCUBQsCQCACRQRAQQghBQwBCyACQQV0IQkgAkH///8fSwRAQQAhAQwIC0G50cIALQAAGkEIIQEgCUEIEIsFIgVFDQdBACEBIAIhBANAIAEgCUYNASABIAVqIgYgASAIaiIHKQMANwMAIAZBGGogB0EYaikDADcDACAGQRBqIAdBEGopAwA3AwAgBkEIaiAHQQhqKQMANwMAIAFBIGohASAEQQFrIgQNAAsLIAMgAjYC6AEgAyAFNgLkASADIAI2AuABIANBwAFqIgEgA0HgAWogA0EQahCAASADQYACaiIEIAEQ8QIgA0HcAGogAyAEEJwCAkAgAkUEQEEIIQUgA0EYaiIBKAIAIQQgASADQeQAaigCADYCACADQQhqIAQ2AgAgAykDECEMIAMgAykCXDcDECADIAw3AwAgA0GoAWogA0EoaigCADYCACADIAMpAyA3A6ABDAELIAUgAkEFdCIJEJQFIANBGGoiASgCACEEIAEgA0HkAGooAgA2AgAgA0EIaiAENgIAIAMpAxAhDCADIAMpAlw3AxAgAyAMNwMAIANBqAFqIANBKGooAgA2AgAgAyADKQMgNwOgASACQf///x9LBEBBACEBDAgLQbnRwgAtAAAaQQghASAJQQgQiwUiBUUNB0EAIQEgAiEEA0AgASAJRg0BIAEgBWoiBiABIAhqIgcpAwA3AwAgBkEYaiAHQRhqKQMANwMAIAZBEGogB0EQaikDADcDACAGQQhqIAdBCGopAwA3AwAgAUEgaiEBIARBAWsiBA0ACwsgAyACNgLoASADIAU2AuQBIAMgAjYC4AEgA0HAAWoiASADQeABaiADQTBqEIABIANBgAJqIgQgARDxAiADQegAaiADQaABaiAEEJwCAkAgAkUEQEEIIQUgA0E4aiIBKAIAIQQgASADQfAAaigCADYCACADQShqIAQ2AgAgAykDMCEMIAMgAykCaDcDMCADIAw3AyAgA0GoAWogA0HIAGooAgA2AgAgAyADKQJANwOgAQwBCyAFIAJBBXQiCRCUBSADQThqIgEoAgAhBCABIANB8ABqKAIANgIAIANBKGogBDYCACADKQMwIQwgAyADKQJoNwMwIAMgDDcDICADQagBaiADQcgAaigCADYCACADIAMpAkA3A6ABIAJB////H0sEQEEAIQEMCAtBudHCAC0AABpBCCEBIAlBCBCLBSIFRQ0HQQAhASACIQQDQCABIAlGDQEgASAFaiIGIAEgCGoiBykDADcDACAGQRhqIAdBGGopAwA3AwAgBkEQaiAHQRBqKQMANwMAIAZBCGogB0EIaikDADcDACABQSBqIQEgBEEBayIEDQALCyADIAI2AugBIAMgBTYC5AEgAyACNgLgASADQcABaiIBIANB4AFqIANB0ABqEIABIANBgAJqIgQgARDxAiADQfQAaiADQaABaiAEEJwCIAIEQCAFIAJBBXQQlAULIAooAgAhASAKIANB/ABqKAIANgIAIANByABqIAE2AgAgAykDUCEMIAMgAykCdDcDUCADIAw3A0AgCwRAIAggC0EFdBCUBQsgAygCGCEIIAMoAhQhCQwACwALQQhBIBCoBQALQQhBIBCoBQALIAEgCBCDBQALIAUgBBCDBQALIAUgBBCDBQALIAEgCRCDBQALnyoCB38RfiMAQZAFayICJAAgAkHgBGoiBCABEDUgAkHQAmoiBSABQTBqIgcQNSACQfABaiIDIAQgBRD7AgJAAkACQAJAAkACQAJAAkAgA0H4qMIAQTAQrgUEQCACQfADakIANwMAIAJB6ANqQgA3AwAgAkHgA2pCADcDACACQdgDakIANwMAIAJCADcD0AMgAkIBNwP4A0EoIQYgAkGoBGogAkGYAmopAwA3AwAgAkGgBGogAkGQAmopAwA3AwAgAkGYBGogAkGIAmopAwA3AwAgAkGQBGogAkGAAmopAwA3AwAgAkGIBGogAkH4AWopAwA3AwAgAiACKQPwATcDgAQgAkHYBGpBkKrCACkDADcDACACQdAEakGIqsIAKQMANwMAIAJByARqQYCqwgApAwA3AwAgAkHABGpB+KnCACkDADcDACACQbgEakHwqcIAKQMANwMAIAJB6KnCACkDADcDsAQgAkGIBWpB6KvCACkDADcDACACQYAFakHgq8IAKQMANwMAIAJB+ARqQdirwgApAwA3AwAgAkHwBGoiBEHQq8IAKQMANwMAIAJB6ARqQcirwgApAwA3AwAgAkHAq8IAKQMANwPgBCACQfgCakIANwMAIAJB8AJqQgA3AwAgAkHoAmpCADcDACACQeACaiIFQgA3AwAgAkHYAmpCADcDACACQgA3A9ACAkAgAkGABGogAkHQA2pBMBCuBUUEQEKtquao29DPvJp/IQlCqserltn8o8wRIREMAQsgAkGwBGogAkHQA2pBMBCuBUUEQCAFIQQM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ASAKaiIHKQMANwMAIAVBGGogB0EYaikDADcDACAFQRBqIAdBEGopAwA3AwAgBUEIaiAHQQhqKQMANwMAIAFBIGohASAEQQFrIgQNAAsLIAMgCDYCCCADIAY2AgQgAyAINgIAAkACQCACKAIIIghFDQAgCEEFdCEEIAhB////H0sEQEEAIQUMAgsgAigCBCEGQQAhAUG50cIALQAAGkEIIQUgBEEIEIsFIglFDQEgCEEFdCEHIAghBANAIAEgB0YNASABIAlqIgIgASAGaiIFKQMANwMAIAJBGGogBUEYaikDADcDACACQRBqIAVBEGopAwA3AwAgAkEIaiAFQQhqKQMANwMAIAFBIGohASAEQQFrIgQNAAsLIAMgCDYCGCADIAk2AhQgAyAINgIQQbnRwgAtAAAaAkBBIEEIEIsFIgQEQCAEQRhqQbibwAApAwA3AwAgBEEQakGwm8AAKQMANwMAIARBCGpBqJvAACkDADcDACAEQaCbwAApAwA3AwAgA0EAOgCIAiADIARBIGo2AoQCIAMgBDYCgAIgA0HgAWogA0GAAmoQ5gIgAygC6AEiAkECTwRAIAJBAXYhBSADKALkASIBIAJBBXRqQSBrIQIDQCABKQMAIQwgASACKQMANwMAIAFBGGoiBikDACEQIAYgAkEYaiIGKQMANwMAIAFBEGoiBykDACENIAcgAkEQaiIHKQMANwMAIAFBCGoiCikDACEOIAogAkEIaiIKKQMANwMAIAIgDDcDACAGIBA3AwAgByANNwMAIAogDjcDACACQSBrIQIgAUEgaiEBIAVBAWsiBQ0ACwsgA0EoaiADQegBaigCADYCACADIAMpAuABNwMgIARBIBCUBSADQTBqEKgDIANBQGsQqANBudHCAC0AABpBIEEIEIsFIgQEQCAEQRhqQbibwAApAwA3AwAgBEEQakGwm8AAKQMANwMAIARBCGpBqJvAACkDADcDACAEQaCbwAApAwA3AwAgA0EAOgCIAiADIARBIGo2AoQCIAMgBDYCgAIgA0HgAWogA0GAAmoQ5gIgAygC6AEiAkECTwRAIAJBAXYhBSADKALkASIBIAJBBXRqQSBrIQIDQCABKQMAIQwgASACKQMANwMAIAFBGGoiBikDACEQIAYgAkEYaiIGKQMANwMAIAFBEGoiBykDACENIAcgAkEQaiIHKQMA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IAMoAogCIQIgAygChAIhCCADKAKAAiELIAMoAowCIgEEQCADKAKQAiABQQV0EJQFCwJAIAJFBEBBCCEFDAELIAJBBXQhCSACQf///x9LBEBBACEBDAgLQbnRwgAtAAAaQQghASAJQQgQiwUiBUUNB0EAIQEgAiEEA0AgASAJRg0BIAEgBWoiBiABIAhqIgcpAwA3AwAgBkEYaiAHQRhqKQMANwMAIAZBEGogB0EQaikDADcDACAGQQhqIAdBCGopAwA3AwAgAUEgaiEBIARBAWsiBA0ACwsgAyACNgLoASADIAU2AuQBIAMgAjYC4AEgA0HAAWoiASADQeABaiADQRBqEHYgA0GAAmoiBCABEPQCIANB3ABqIAMgBBCdAgJAIAJFBEBBCCEFIANBGGoiASgCACEEIAEgA0HkAGooAgA2AgAgA0EIaiAENgIAIAMpAxAhDCADIAMpAlw3AxAgAyAMNwMAIANBqAFqIANBKGooAgA2AgAgAyADKQMgNwOgAQwBCyAFIAJBBXQiCRCUBSADQRhqIgEoAgAhBCABIANB5ABqKAIANgIAIANBCGogBDYCACADKQMQIQwgAyADKQJcNwMQIAMgDDcDACADQagBaiADQShqKAIANgIAIAMgAykDIDcDoAEgAkH///8fSwRAQQAhAQwIC0G50cIALQAAGkEIIQEgCUEIEIsFIgVFDQdBACEBIAIhBANAIAEgCUYNASABIAVqIgYgASAIaiIHKQMANwMAIAZBGGogB0EYaikDADcDACAGQRBqIAdBEGopAwA3AwAgBkEIaiAHQQhqKQMANwMAIAFBIGohASAEQQFrIgQNAAsLIAMgAjYC6AEgAyAFNgLkASADIAI2AuABIANBwAFqIgEgA0HgAWogA0EwahB2IANBgAJqIgQgARD0AiADQegAaiADQaABaiAEEJ0CAkAgAkUEQEEIIQUgA0E4aiIBKAIAIQQgASADQfAAaigCADYCACADQShqIAQ2AgAgAykDMCEMIAMgAykCaDcDMCADIAw3AyAgA0GoAWogA0HIAGooAgA2AgAgAyADKQJANwOgAQwBCyAFIAJBBXQiCRCUBSADQThqIgEoAgAhBCABIANB8ABqKAIANgIAIANBKGogBDYCACADKQMwIQwgAyADKQJoNwMwIAMgDDcDICADQagBaiADQcgAaigCADYCACADIAMpAkA3A6ABIAJB////H0sEQEEAIQEMCAtBudHCAC0AABpBCCEBIAlBCBCLBSIFRQ0HQQAhASACIQQDQCABIAlGDQEgASAFaiIGIAEgCGoiBykDADcDACAGQRhqIAdBGGopAwA3AwAgBkEQaiAHQRBqKQMANwMAIAZBCGogB0EIaikDADcDACABQSBqIQEgBEEBayIEDQALCyADIAI2AugBIAMgBTYC5AEgAyACNgLgASADQcABaiIBIANB4AFqIANB0ABqEHYgA0GAAmoiBCABEPQCIANB9ABqIANBoAFqIAQQnQIgAgRAIAUgAkEFdBCUBQsgCigCACEBIAogA0H8AGooAgA2AgAgA0HIAGogATYCACADKQNQIQwgAyADKQJ0NwNQIAMgDDcDQCALBEAgCCALQQV0EJQFCyADKAIYIQggAygCFCEJDAALAAtBCEEgEKgFAAtBCEEgEKgFAAsgASAIEIMFAAsgBSAEEIMFAAsgBSAEEIMFAAsgASAJEIMFAAuXJwIJfxd+IwBB4AJrIgMkAEEIIQlBCCEGAkACQAJAIAEoAggiCEUNACAIQQV0IQQgCEH///8fSwRADAILIAEoAgQhCkEAIQFBudHCAC0AABpBCCEFIARBCBCLBSIGRQ0BIAhBBXQhCyAIIQQDQCABIAtGDQEgASAGaiIFIAEgCmoiBykDADcDACAFQRhqIAdBGGopAwA3AwAgBUEQaiAHQRBqKQMANwMAIAVBCGogB0EIaikDADcDACABQSBqIQEgBEEBayIEDQALCyADIAg2AgggAyAGNgIEIAMgCDYCAAJAAkAgAigCCCIIRQ0AIAhBBXQhBCAIQf///x9LBEBBACEFDAILIAIoAgQhBkEAIQFBudHCAC0AABpBCCEFIARBCBCLBSIJRQ0BIAhBBXQhByAIIQQDQCABIAdGDQEgASAJaiICIAEgBmoiBSkDADcDACACQRhqIAVBGGopAwA3AwAgAkEQaiAFQRBqKQMANwMAIAJBCGogBUEIaikDADcDACABQSBqIQEgBEEBayIEDQALCyADIAg2AhggAyAJNgIUIAMgCDYCEEG50cIALQAAGgJAQSBBCBCLBSIEBEAgBEEYakHYm8AAKQMANwMAIARBEGpB0JvAACkDADcDACAEQQhqQcibwAApAwA3AwAgBEHAm8AAKQMANwMAIANBADoAiAIgAyAEQSBqNgKEAiADIAQ2AoACIANB4AFqIANBgAJqEOYCIAMoAugBIgJBAk8EQCACQQF2IQUgAygC5AEiASACQQV0akEgayECA0AgASkDACEMIAEgAikDADcDACABQRhqIgYpAwAhECAGIAJBGGoiBikDADcDACABQRBqIgcpAwAhDSAHIAJBEGoiBykDADcDACABQQhqIgopAwAhDiAKIAJBCGoiCikDADcDACACIAw3AwAgBiAQNwMAIAcgDTcDACAKIA43AwAgAkEgayECIAFBIGohASAFQQFrIgUNAAsLIANBKGogA0HoAWooAgA2AgAgAyADKQLgATcDICAEQSAQlAUgA0EwahCoAyADQUBrEKgDQbnRwgAtAAAaQSBBCBCLBSIEBEAgBEEYakHYm8AAKQMANwMAIARBEGpB0JvAACkDADcDACAEQQhqQcibwAApAwA3AwAgBEHAm8AAKQMANwMAIANBADoAiAIgAyAEQSBqNgKEAiADIAQ2AoACIANB4AFqIANBgAJqEOYCIAMoAugBIgJBAk8EQCACQQF2IQUgAygC5AEiASACQQV0akEgayECA0AgASkDACEMIAEgAikDADcDACABQRhqIgYpAwAhECAGIAJBGGoiBikDADcDACABQRBqIgcpAwAhDSAHIAJBEGoiBykDADcDACABQQhqIgopAwAhDiAKIAJBCGoiCikDADcDACACIAw3AwAgBiAQNwMAIAcgDTcDACAKIA43AwAgAkEgayECIAFBIGohASAFQQFrIgUNAAsLIANB2ABqIgogA0HoAWooAgA2AgAgAyADKQLgATcDUCAEQSAQlAUDQCAIQQV0IQECQAJAAkADQCABRQ0BIAFBIGsiASAJakHAl8AAQSAQrgVFDQALIAMoAggiAg0BQQghBAwCCyADKAIIIgJBBXQhASADKAIEIQUCQAJAA0AgAUUNASACQQFrIQIgAUEgayIBIAVqIgRBwJfAAEEgEK4FRQ0ACyACQQBIDQAgA0G4AWogBEEYaiIBKQMANwMAIANBsAFqIARBEGoiAikDADcDACADQagBaiAEQQhqIggpAwA3AwAgAyAEKQMANwOgASADQaABakHAl8AAQSAQrgVFDQEgA0HQAWpCADcDACADQcgBakIANwMAIANCADcDwAEgA0IBNwPYASADQfgB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IRsgHCEQIBIhDgsgA0HgAWogA0HAAWpBIBCuBQ0ACwsgAyAUNwOYASADIBU3A5ABIAMgDzcDiAEgAyAXNwOAASAAIANBIGogA0GAAWoiARCBAyAAQQxqIANBQGsgARCBAyAAQRhqIAMgARCBAyADKAJQIgAEQCADKAJUIABBBXQQlAULIAMoAkAiAARAIAMoAkQgAEEFdBCUBQsgAygCMCIABEAgAygCNCAAQQV0EJQFCyADKAIgIgAEQCADKAIkIABBBXQQlAULIAMoAhAiAARAIAkgAEEFdBCUBQsgAygCACIABEAgBSAAQQV0EJQFCyADQeACaiQADwtBnJ3AAEErIANBgAJqQcidwABB2J3AABD9AwALIANCAjcDgAJBnJ3AAEErIANBgAJqQcyewABB/J7AABD9AwALIAJBBXQhCCACQf///x9LBEBBACEBDAULIAMoAgQhB0G50cIALQAAGkEIIQEgCEEIEIsFIgRFDQRBACEBIAIhBQNAIAEgCEYNASABIARqIgkgASAHaiIGKQMANwMAIAlBGGogBkEYaikDADcDACAJQRBqIAZBEGopAwA3AwAgCUEIaiAGQQhqKQMANwMAIAFBIGohASAFQQFrIgUNAAsLIAMgAjYC6AEgAyAENgLkASADIAI2AuABIANBgAJqIANB4AFqIANBEGoQRiADKAKIAiECIAMoAoQCIQggAygCgAIhCyADKAKMAiIBBEAgAygCkAIgAUEFdBCUBQsCQCACRQRAQQghBQwBCyACQQV0IQkgAkH///8fSwRAQQAhAQwIC0G50cIALQAAGkEIIQEgCUEIEIsFIgVFDQdBACEBIAIhBANAIAEgCUYNASABIAVqIgYgASAIaiIHKQMANwMAIAZBGGogB0EYaikDADcDACAGQRBqIAdBEGopAwA3AwAgBkEIaiAHQQhqKQMANwMAIAFBIGohASAEQQFrIgQNAAsLIAMgAjYC6AEgAyAFNgLkASADIAI2AuABIANBwAFqIgEgA0HgAWogA0EQahB1IANBgAJqIgQgARD1AiADQdwAaiADIAQQngICQCACRQRAQQghBSADQRhqIgEoAgAhBCABIANB5ABqKAIANgIAIANBCGogBDYCACADKQMQIQwgAyADKQJcNwMQIAMgDDcDACADQagBaiADQShqKAIANgIAIAMgAykDIDcDoAEMAQsgBSACQQV0IgkQlAUgA0EYaiIBKAIAIQQgASADQeQAaigCADYCACADQQhqIAQ2AgAgAykDECEMIAMgAykCXDcDECADIAw3AwAgA0GoAWogA0EoaigCADYCACADIAMpAyA3A6ABIAJB////H0sEQEEAIQEMCAtBudHCAC0AABpBCCEBIAlBCBCLBSIFRQ0HQQAhASACIQQDQCABIAlGDQEgASAFaiIGIAEgCGoiBykDADcDACAGQRhqIAdBGGopAwA3AwAgBkEQaiAHQRBqKQMANwMAIAZBCGogB0EIaikDADcDACABQSBqIQEgBEEBayIEDQALCyADIAI2AugBIAMgBTYC5AEgAyACNgLgASADQcABaiIBIANB4AFqIANBMGoQdSADQYACaiIEIAEQ9QIgA0HoAGogA0GgAWogBBCeAgJAIAJFBEBBCCEFIANBOGoiASgCACEEIAEgA0HwAGooAgA2AgAgA0EoaiAENgIAIAMpAzAhDCADIAMpAmg3AzAgAyAMNwMgIANBqAFqIANByABqKAIANgIAIAMgAykCQDcDoAEMAQsgBSACQQV0IgkQlAUgA0E4aiIBKAIAIQQgASADQfAAaigCADYCACADQShqIAQ2AgAgAykDMCEMIAMgAykCaDcDMCADIAw3AyAgA0GoAWogA0HIAGooAgA2AgAgAyADKQJANwOgASACQf///x9LBEBBACEBDAgLQbnRwgAtAAAaQQghASAJQQgQiwUiBUUNB0EAIQEgAiEEA0AgASAJRg0BIAEgBWoiBiABIAhqIgcpAwA3AwAgBkEYaiAHQRhqKQMANwMAIAZBEGogB0EQaikDADcDACAGQQhqIAdBCGopAwA3AwAgAUEgaiEBIARBAWsiBA0ACwsgAyACNgLoASADIAU2AuQBIAMgAjYC4AEgA0HAAWoiASADQeABaiADQdAAahB1IANBgAJqIgQgARD1AiADQfQAaiADQaABaiAEEJ4CIAIEQCAFIAJBBXQQlAULIAooAgAhASAKIANB/ABqKAIANgIAIANByABqIAE2AgAgAykDUCEMIAMgAykCdDcDUCADIAw3A0AgCwRAIAggC0EFdBCUBQsgAygCGCEIIAMoAhQhCQwACwALQQhBIBCoBQALQQhBIBCoBQALIAEgCBCDBQALIAUgBBCDBQALIAUgBBCDBQAL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DQAgCEEFdCEEIAhB////H0sEQEEAIQUMAgsgAigCBCEGQQAhAUG50cIALQAAGkEIIQUgBEEIEIsFIglFDQEgCEEFdCEHIAghBANAIAEgB0YNASABIAlqIgIgASAGaiIFKQMANwMAIAJBGGogBUEYaikDADcDACACQRBqIAVBEGopAwA3AwAgAkEIaiAFQQhqKQMANwMAIAFBIGohASAEQQFrIgQNAAsLIAMgCDYCGCADIAk2AhQgAyAINgIQQbnRwgAtAAAaAkBBIEEIEIsFIgQEQCAEQRhqQZibwAApAwA3AwAgBEEQakGQm8AAKQMANwMAIARBCGpBiJvAACkDADcDACAEQYCbwAApAwA3AwAgA0EAOgCIAiADIARBIGo2AoQCIAMgBDYCgAIgA0HgAWogA0GAAmoQ5gIgAygC6AEiAkECTwRAIAJBAXYhBSADKALkASIBIAJBBXRqQSBrIQIDQCABKQMAIQwgASACKQMANwMAIAFBGGoiBikDACEPIAYgAkEYaiIGKQMANwMAIAFBEGoiBykDACENIAcgAkEQaiIHKQMANwMAIAFBCGoiCikDACEOIAogAkEIaiIKKQMANwMAIAIgDDcDACAGIA83AwAgByANNwMAIAogDjcDACACQSBrIQIgAUEgaiEBIAVBAWsiBQ0ACwsgA0EoaiADQegBaigCADYCACADIAMpAuABNwMgIARBIBCUBSADQTBqEKgDIANBQGsQqANBudHCAC0AABpBIEEIEIsFIgQEQCAEQRhqQZibwAApAwA3AwAgBEEQakGQm8AAKQMANwMAIARBCGpBiJvAACkDADcDACAEQYCbwAApAwA3AwAgA0EAOgCIAiADIARBIGo2AoQCIAMgBDYCgAIgA0HgAWogA0GAAmoQ5gIgAygC6AEiAkECTwRAIAJBAXYhBSADKALkASIBIAJBBXRqQSBrIQIDQCABKQMAIQwgASACKQMANwMAIAFBGGoiBikDACEPIAYgAkEYaiIGKQMANwMAIAFBEGoiBykDACENIAcgAkEQaiIHKQMANwMAIAFBCGoiCikDACEOIAogAkEIaiIKKQMANwMAIAIgDDcDACAGIA83AwAgByANNwMAIAogDjcDACACQSBrIQIgAUEgaiEBIAVBAWsiBQ0ACwsgA0HYAGoiCiADQegBaigCADYCACADIAMpAuAB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CRCUBSADQRhqIgEoAgAhBCABIANB5ABqKAIANgIAIANBCGogBDYCACADKQMQIQwgAyADKQJcNwMQIAMgDDcDACADQagBaiADQShqKAIANgIAIAMgAykDIDcDoAEgAkH///8fSwRAQQAhAQwIC0G50cIALQAAGkEIIQEgCUEIEIsFIgVFDQdBACEBIAIhBANAIAEgCUYNASABIAVqIgYgASAIaiIHKQMANwMAIAZBGGogB0EYaikDADcDACAGQRBqIAdBEGopAwA3AwAgBkEIaiAHQQhqKQMANwMAIAFBIGohASAEQQFrIgQNAAsLIAMgAjYC6AEgAyAFNgLkASADIAI2AuABIANBwAFqIgEgA0HgAWogA0EwahB0IANBgAJqIgQgARDzAiADQegAaiADQaABaiAEEJECAkAgAkUEQEEIIQUgA0E4aiIBKAIAIQQgASADQfAAaigCADYCACADQShqIAQ2AgAgAykDMCEMIAMgAykCaDcDMCADIAw3AyAgA0GoAWogA0HIAGooAgA2AgAgAyADKQJANwOgAQwBCyAFIAJBBXQiCRCUBSADQThqIgEoAgAhBCABIANB8ABqKAIANgIAIANBKGogBDYCACADKQMwIQwgAyADKQJoNwMwIAMgDDcDICADQagBaiADQcgAaigCADYCACADIAMpAkA3A6ABIAJB////H0sEQEEAIQEMCAtBudHCAC0AABpBCCEBIAlBCBCLBSIFRQ0HQQAhASACIQQDQCABIAlGDQEgASAFaiIGIAEgCGoiBykDADcDACAGQRhqIAdBGGopAwA3AwAgBkEQaiAHQRBqKQMANwMAIAZBCGogB0EIaikDADcDACABQSBqIQEgBEEBayIEDQALCyADIAI2AugBIAMgBTYC5AEgAyACNgLgASADQcABaiIBIANB4AFqIANB0ABqEHQgA0GAAmoiBCABEPMCIANB9ABqIANBoAFqIAQQkQIgAgRAIAUgAkEFdBCUBQsgCigCACEBIAogA0H8AGooAgA2AgAgA0HIAGogATYCACADKQNQIQwgAyADKQJ0NwNQIAMgDDcDQCALBEAgCCALQQV0EJQFCyADKAIYIQggAygCFCEJDAALAAtBCEEgEKgFAAtBCEEgEKgFAAsgASAIEIMFAAsgBSAEEIMFAAsgBSAEEIMFAAsgASAJEIMFAAvTIQIz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NwMAIAlBmAVqIhggCUE4aikDADcDACALQQhqIhogCUEIaikDADcDACALQRBqIhsgCUEQaikDADcDACALQRhqIhwgCUEYaikDADcDACALQSBqIh0gCUEgaikDADcDACALQShqIh4gCUEoaikDADcDACAJIAkpAzA3A5AFIAlB4AZqIiAgCUGQBWoiIUHgABCtBRogDCADICVqIgpBKGoiKikDADcDACAOIApBIGoiKykDADcDACAWIApBGGoiLCkDADcDACAXIApBEGoiLSkDADcDACAYIApBCGoiLikDADcDACALIApBMGoiLykDADcDACAaIApBOGoiMCkDADcDACAbIApBQGsiMSkDADcDACAcIApByABqIjIpAwA3AwAgHSAKQdAAaiIzKQMANwMAIB4gCkHYAGoiNCkDADcDACAJIAopAwA3A5AFIAlB8AlqIiIgIUHgABCtBRogISAiENYCIAlBgAJqIjUgICAhEGwgDCAJQbgBaikDADcDACAOIAlBsAFqKQMANwMAIBYgCUGoAWopAwA3AwAgFyAJQaABaikDADcDACAYIAlBmAFqKQMANwMAIAsgCSkDYDcDACAaIAlB6ABqKQMANwMAIBsgCUHwAGopAwA3AwAgHCAJQfgAaikDADcDACAdIAlBgAFqKQMANwMAIB4gCUGIAWopAwA3AwAgCSAJKQOQATcDkAUgCUHgBmogCUGQBWpB4AAQrQUaIAwgCkGIAWoiNikDADcDACAOIApBgAFqIjcpAwA3AwAgFiAKQfgAaiI4KQMANwMAIBcgCkHwAGoiOSkDADcDACAYIApB6ABqIjopAwA3AwAgCyAKQZABaiI7KQMANwMAIBogCkGYAWoiHykDADcDACAbIApBoAFqIiMpAwA3AwAgHCAKQagBaiIkKQMANwMAIB0gCkGwAWoiFCkDADcDACAeIApBuAFqIg0pAwA3AwAgCSAKQeAAaiIRKQMANwOQBSAJQfAJaiAJQZAFakHgABCtBRogISAiENYCIAlB4AJqIhkgICAhEGwgCUGIB2ogCUHoAWopAwA3AwAgCUGAB2ogCUHgAWopAwA3AwAgCUH4BmogCUHYAWopAwA3AwAgCUHwBmogCUHQAWopAwA3AwAgCUHoBmogCUHIAWopAwA3AwAgCSAJKQPAATcD4AYgDCAqKQMANwMAIA4gKykD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GyANIBhUrXx8fCIIVq18fCINIAQpA9AEfCIPIA1UrXwgDyAEQegEaikDACIYIAggCCAafCIIVq18IAggCCAGIAdWrSAYIAUgBlatfHx8IghWrXx8IgUgD1StfCIPIAwgDVatIARB2ANqKQMAIgYgCiAMVq18fCINIAogFFStIBIgE1atfHwiEnwiCiAEKQPAA3wiDCAGIAUgBSAWfCIFVq18IAUgBSAVIBkgByAJVq18IgcgF3wiBiAHVK18IAYgBiAIfCIGVq18fCIFVq18fCIHIAQpA/ADfCIIIAdUrXwgCCAIIARBiARqKQMAIhQgBSAFIAQpA4AEIhN8IgVWrXwgBSAFIBQgBiAGIBN8IgZWrXwgBiAGIARBmARqKQMAIAkgBCkDkAQiCXwgCVStfHwiBlatfHwiBVatfHwiCFatfCIJIAcgDFStIARByANqKQMAIAogDFatfHwiDCAKIA9UrSANIBJWrXx8Igp8IgdCAFMgByAJVK1CACAKIAxUrX1Scg0AAkAgB0L///////////8AUQRAQn8hCiAIQn9RDQFC////////////ACEHCyAIIQogBSEJDAILIAVCf1IEQEL///////////8AIQcgBSEJDAILIAZCbVoNAEL///////////8AIQdCfyEJDAELIAVCAXwiCiAGQm1UrSIMfSEJIAhCAXwiDSAFQn9SIAogDFRyrSIFfSEKIAcgCEJ/UiAFIA1Wcq19Qv///////////wB9IQcgBkITfCEGCyAEIAY3A9gGIAQgCTcD0AYgBCAKNwPIBiAEIAc3A8AGIARBoAZqIARBwAZqIAMQnAEgBEGAA2ogASkDGCIFIAtCABD8AyAEQZACaiABKQMQIgYgC0IAEPwDIARBoAFqIAEpAwgiByALQgAQ/AMgBEEwaiABKQMAIgkgC0IAEPwDIARB8AJqIAQpA4ADIgtCm5Svw/K1qN6Gf34iCEJtQgAQ/AMgBEHgAmogCEJ/QgAQ/AMgBEHQAmogCEL///////////8AQgAQ/AMgBEGQA2ogBSAOQgAQ/AMgBEGgAmogBiAOQgAQ/AMgBEGwAWogByAOQgAQ/AMgBEFAayAJIA5CABD8AyAEQYACaiAEKQPgAiIIIARBiANqKQMAIg0gBCkDkAJ8Ig98IgogBEH4AmopAwAgCyAEKQPwAiIOfCAOVK18fCILIAQpA5ADfCIOQpuUr8Pytajehn9+IgxCbUIAEPwDIARB8AFqIAxCf0IAEPwDIARB4AFqIAxC////////////AEIAEPwDIARBoANqIAUgEEIAEPwDIARBsAJqIAYgEEIAEPwDIARBwAFqIAcgEEIAEPwDIARB0ABqIAkgEEIAEPwDIARBkAFqIARBmANqKQMAIAsgDlatfCISIAQpA6ACfCIQIAggBEGYAmopAwAgDSAPVq18IhQgBCkDoAF8Igx8Ig0gCiALVq0gBEHoAmopAwAiEyAIIApWrXx8fCIVfCIIIAQpA/ABIhZ8IgogBEGIAmopAwAgBCkDgAIiCyAOfCALVK18fCILIAQpA6ADfCIOQpuUr8Pytajehn9+Ig9CbUIAEPwDIARBgAFqIA9Cf0IAEPwDIARB8ABqIA9C////////////AEIAEPwDIARBsANqIAUgEUIAEPwDIARBwAJqIAYgEUIAEPwDIARB0AFqIAcgEUIAEPwDIARB4ABqIAkgEUIAEPwDIARBIGogBEGoA2opAwAgCyAOVq18Ig8gBCkDsAJ8IgUgFiAEQagBaikDACAMIBRUrXwiFCAEKQMwfCIGIAQpA9ACfCIHIA0gFVatIBMgDCANVq18fHwiCSAEKQOwAXwiESAIIBBUrSAEQagCaikDACAQIBJUrXx8fCIQfCIMIAogC1atIARB+AFqKQMAIhIgCCAKVq18fHwiE3wiCCAEKQOAASIVfCIKIARBmAFqKQMAIAQpA5ABIgsgDnwgC1StfHwiCyAEKQOwA3wiDkKblK/D8rWo3oZ/fiINQm1CABD8AyAEQRBqIA1Cf0IAEPwDIAQgDUL///////////8AQgAQ/AMCQAJAIARBCGopAwAgBEH4AGopAwAgBEHoAWopAwAgByAJVq0gBEHYAmopAwAgBiAHVq18fCINIARBOGopAwAgBiAUVK18fCIGIAQpA0B8IgcgECARVK0gBEG4AWopAwAgCSARVq18fHwiCSAEKQPgAXwiESAJVK18IBEgDCATVq0gEiAMIBBUrXx8fCIQIBFUrXwiESAHIAlWrSAEQcgAaikDACAGIAdWrXx8IgwgBiANVK18Ig18IgYgBCkDUHwiByAEQcgBaikDACAQIAQpA8ABfCIJIBBUrXwgCSAFIAhWrSAEQbgCaikDACAFIA9UrXx8fCIFIAlUrXx8IgkgBCkDcHwiECAJVK18IBAgBEGIAWopAwAiDyAFIAUgFXwiBVatfCAFIAogC1atIA8gCCAKVq18fHwiCiAFVK18fCIFIBBUrXwiECAHIAlWrSAEQdgAaikDACAGIAdWrXx8Ig8gBiARVK0gDCANVq18fCIRfCIGIAQpA2B8IgggBEHYAWopAwAgBSAFIAQpA9ABfCIFVq18IAUgBSAEQcgCaikDACAEQbgDaikDACALIA5WrXwiCSAEKQPAAnwiByAJVK18IAcgByAKfCIHVq18fCIFVq18fCIKIAQpAwB8IgkgClStfCAJIAkgBEEYaikDACILIAUgBSAEKQMQIgx8IgVWrXwgBSALIAcgByAMfCIHVq18IAcgBEEoaikDACAEKQMgIgsgDnwgC1StfHwiCyAHVK18fCIHIAVUrXx8IglWrXwiBSAIIApWrSAEQegAaikDACAGIAhWrXx8IgggBiAQVK0gDyARVq18fCIGfCIKQgBTIAUgClatQgAgBiAIVK19UnINAAJAIApC////////////AFEEQEJ/IQYgCUJ/UQ0BQv///////////wAhCgsgCSEGIAchBQwCCyAHQn9SBEBC////////////ACEKIAchBQwCCyALQm1aDQBC////////////ACEKQn8hBQwBCyAHQgF8IgYgC0JtVK0iCH0hBSAJQgF8Ig4gB0J/UiAGIAhUcq0iB30hBiAKIAlCf1IgByAOVnKtfUL///////////8AfSEKIAtCE3whCwsgBCkDoAYiDiAKfCIHIAQpA6gGIgkgBnwiBiAJVCAGIAQpA7AGIgkgBXwiBSAJVCAFIAQpA7gGIgkgC3wiCiAJVK18IgkgBVRyrXwiCyAGVHKtfCEIAkACQAJAIAcgDlQgByAIVnINAEL///////////8AIQYgCCIFQv///////////wBRBEBCfyEGQv///////////wAhBSALQn9SDQIgCUJ/UgRAIAkhBwwEC0JtIQYgCiIFQm1RDQELIAUgBloNACAIIQUMAQsgCUIBfCIFIApCbVStIgZ9IQcgC0IBfCIOIAlCf1IgBSAGVHKtIgV9IQYgCCALQn9SIAUgDlZyrX1C////////////AH0hBSAKQhN8IQoMAQsgCyEGIAkhBwsgBSACKQMAfCIIIAYgBiACKQMIfCIGViAGIAcgByACKQMQfCIHViAHIAcgCiACKQMYfCILIApUrXwiB1ZyrXwiCiAGVHKtfCEJAkACQAJAIAUgCFYgCCAJVnINAEL///////////8AIQUgCSIGQv///////////wBRBEBCfyEFQv///////////wAhBiAKQn9SDQIgB0J/UgRAIAchCAwEC0JtIQUgCyIGQm1RDQELIAUgBlgNACAJIQYMAQsgB0IBfCIFIAtCbVStIgZ9IQggCkIBfCIOIAdCf1IgBSAGVHKtIgZ9IQUgCSAKQn9SIAYgDlZyrX1C////////////AH0hBiALQhN8IQsMAQsgCiEFIAchCAsgACALNwMYIAAgCDcDECAAIAU3AwggACAGNwMAIARB4AZqJAAL7SUCBH8RfiMAQZAEayIDJAACQCACQZizwABBMBCuBQRAIANBwAJqQgA3AwAgA0G4AmpCADcDACADQbACakIANwMAIANBqAJqQgA3AwAgA0IANwOgAiADQgE3A8gCQSghBiADQfgCaiACQShqKQMANwMAIANB8AJqIAJBIGopAwA3AwAgA0HoAmogAkEYaikDADcDACADQeACaiACQRBqKQMANwMAIANB2AJqIAJBCGopAwA3AwAgAyACKQMANwPQAiADQagDakHIsMAAKQMANwMAIANBoANqQcCwwAApAwA3AwAgA0GYA2pBuLDAACkDADcDACADQZADakGwsMAAKQMANwMAIANBiANqQaiwwAApAwA3AwAgA0GgsMAAKQMANwOAAyADQdgDakHws8AAKQMANwMAIANB0ANqQeizwAApAwA3AwAgA0HIA2pB4LPAACkDADcDACADQcADaiIFQdizwAApAwA3AwAgA0G4A2pB0LPAACkDADcDACADQcizwAApAwA3A7ADIANBiARqQgA3AwAgA0GABGpCADcDACADQfgDakIANwMAIANB8ANqIgJCADcDACADQegDakIANwMAIANCADcD4AMgA0HQAmogA0GgAmpBMBCuBUUEQEKqx6uW2fyjzBEhD0Ktquao29DPvJp/IQcMAgsgA0GAA2ogA0GgAmpBMBCuBUUEQCACIQUMAgtCq9X+////v/+5fyENA0AgAy0A+AJBAXFFBEADQCADQdACahD6AiADKQPYAyIIQgGDUEUEQCADKQPQAyEKIAMgCELVqoGA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aiADQaACaiIEQTAQrgVFDQIgA0GAA2ogBEEwEK4FDQALIAIhBSAJIQcgEiEPDAELIANCAjcD4ANBsLHAAEErIANB4ANqQdyxwABB6LLAABD9AwALIANBmAJqIAVBGGopAwAiCzcDACADQZACaiAFQRBqKQMAIgg3AwAgA0HoAWogBUEIaikDADcDACADQfABaiAINwMAIANB+AFqIAs3AwAgAyAHNwPYASADIA83A9ABIAMgBSkDADcD4AEgASkDACETIAEpAwghFCABKQMQIREgASkDGCEQIAEpAyAhDSABKQMoIQpCACEHQgAhDkIAIQxCACEJQgAhEkIAIQ8DQCADQfAAaiADQdABaiAGaikDACIIIApCABD8AyADQYABaiAIIA1CABD8AyADQZABaiAIIBBCABD8AyADQaABaiAIIBFCABD8AyADQbABaiAIIBRCABD8AyADQcABaiAIIBNCABD8AyADQeAAaiADKQNwIgsgB3wiF0IAQv3/8//P///5iX8Q/AMgA0HQAGogA0HoAGopAwAiB0Kr1f7///+//7l/QgAQ/AMgA0FAayAHQv//z4rr///VHkIAEPwDIANBMGogB0Kk7MO1j9S0mOcAQgAQ/AMgA0EgaiAHQr+llJzP8NK75ABCABD8AyADQRBqIAdC19mumuT26Y3LAEIAEPwDIAMgB0Kazf/Lo73EgBpCABD8AyADQQhqKQMAIAMpA8ABIgggD3wiFiADQbgBaikDACADKQOwASIHIBJ8IhIgB1StfCASIANBqAFqKQMAIAMpA6ABIgcgCXwiDyAHVK18IA8gA0GYAWopAwAgAykDkAEiByAMfCIMIAdUrXwgDCADQYgBaikDACADKQOAASIHIA58IgkgB1StfCAJIANB+ABqKQMAIAsgF1atfHwiByAJVK18fCIOIAxUrXx8IgkgD1StfHwiCyASVK18fCIVIAMpAwB8IhIgFVStfCASIBIgA0EYaikDACALIAMpAxB8Ig8gC1StfCAPIANBKGopAwAgCSADKQMgfCIMIAlUrXwgDCAMIANBOGopAwAgDiADKQMwfCIJIA5UrXwgCSADQcgAaikDACAHIAMpA0AiB3wiCyAHVK18IAsgA0HYAGopAwAgAykDUCIHIBd8IAdUrXx8IgcgC1StfHwiDiAJVK18fCIMVq18fCIJIA9UrXx8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IQYgByEFDAELIAdC8+q4vOmtpb/oAHwiDCAIQsf688PtgqOQPFStIgZ9IQUgCUKjz/rzl8nu18cAfCIKIAdCjZXHw5bS2sCXf1QgBiAMVnKtIgd9IQYgCyAJQt2whYzotpGouH9UIAcgClZyrX1CqcDGia7Ok7IwfSELIAhCx/rzw+2Co5A8fSEICyAAIAg3AxggACAFNwMQIAAgBjcDCCAAIAs3AwAgBEHgB2okAAvfIwIIfxF+IwBBgAdrIgIkAAJAAkACQAJAIAEoAggiBkECTwRAIAZBAWsiB0EFdCEJIAdB////H0sEQAwFC0G50cIALQAAGkEIIQMgCUEIEIsFIghFDQQgCCEDAkAgB0EBRg0AIAZBAmsiBUEHcSEEIAZBA2tBB08EQCAFQXhxIQUDQCADQgA3AwAgA0EYakIANwMAIANBEGpCADcDACADQQhqQgA3AwAgA0EgakIANwMAIANBKGpCADcDACADQTBqQgA3AwAgA0E4akIANwMAIANBQGtCADcDACADQcgAakIANwMAIANB0ABqQgA3AwAgA0HYAGpCADcDACADQeAAakIANwMAIANB6ABqQgA3AwAgA0HwAGpCADcDACADQfgAakIANwMAIANBmAFqQgA3AwAgA0GQAWpCADcDACADQYgBakIANwMAIANBgAFqQgA3AwAgA0G4AWpCADcDACADQbABakIANwMAIANBqAFqQgA3AwAgA0GgAWpCADcDACADQcABakIANwMAIANByAFqQgA3AwAgA0HQAWpCADcDACADQdgBakIANwMAIANB4AFqQgA3AwAgA0HoAWpCADcDACADQfABakIANwMAIANB+AFqQgA3AwAgA0GAAmohAyAFQQhrIgUNAAsLIARFDQADQCADQgA3AwAgA0EYakIANwMAIANBEGpCADcDACADQQhqQgA3AwAgA0EgaiEDIARBAWsiBA0ACwsgA0IANwMAIANBGGpCADcDACADQRBqQgA3AwAgA0EIakIANwMAIAEoAgQiAyAGQQV0aiEGQQAhAUEBIQVBACEEA0ACQCABQQFxBEAgAyAGRw0BDAULIAYgA2tBBXYgBU0NBCAEIAVqIQQgAyAFQQV0aiEDCyACQbgGaiAErSIKQon1q5y1i7+Wc0IAEPwDIAJB+AVqIAIpA7gGIg1CiceZpK7wgemHf34iC0LH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1AZqEOYCIAIoAtAGIgFBAk8EQCABQQF2IQUgAigCzAYiAyABQQV0akEgayEEA0AgAykDACEKIAMgBCkDADcDACADQRhqIgEpAwAhCyABIARBGGoiASkDADcDACADQRBqIgcpAwAhDCAHIARBEGoiBykDADcDACADQQhqIgYpAwAhDSAGIARBCGoiBikDADcDACAEIAo3AwAgASALNwMAIAcgDDcDACAGIA03AwAgBEEgayEEIANBIGohAyAFQQFrIgUNAAsLIAAgAikCyAY3AgAgAEEIaiACQdAGaigCADYCACAIIAkQlAULIAJBgAdqJAAPCyADIAkQgwUAC9MjAgh/EX4jAEGAB2siAiQAAkACQAJAAkAgASgCCCIGQQJPBEAgBkEBayIHQQV0IQkgB0H///8fSwRADAULQbnRwgAtAAAaQQghAyAJQQgQiwUiCEUNBCAIIQMCQCAHQQFGDQAgBkECayIFQQdxIQQgBkEDa0EHTwRAIAVBeHEhBQNAIANCADcDACADQRhqQgA3AwAgA0EQakIANwMAIANBCGpCADcDACADQSBqQgA3AwAgA0EoakIANwMAIANBMGpCADcDACADQThqQgA3AwAgA0FAa0IANwMAIANByABqQgA3AwAgA0HQAGpCADcDACADQdgAakIANwMAIANB4ABqQgA3AwAgA0HoAGpCADcDACADQfAAakIANwMAIANB+ABqQgA3AwAgA0GYAWpCADcDACADQZABakIANwMAIANBiAFqQgA3AwAgA0GAAWpCADcDACADQbgBakIANwMAIANBsAFqQgA3AwAgA0GoAWpCADcDACADQaABakIANwMAIANBwAFqQgA3AwAgA0HIAWpCADcDACADQdABakIANwMAIANB2AFqQgA3AwAgA0HgAWpCADcDACADQegBakIANwMAIANB8AFqQgA3AwAgA0H4AWpCADcDACADQYACaiEDIAVBCGsiBQ0ACwsgBEUNAANAIANCADcDACADQRhqQgA3AwAgA0EQakIANwMAIANBCGpCADcDACADQSBqIQMgBEEBayIEDQALCyADQgA3AwAgA0EYakIANwMAIANBEGpCADcDACADQQhqQgA3AwAgASgCBCIDIAZBBXRqIQZBACEBQQEhBUEAIQQDQAJAIAFBAXEEQCADIAZHDQEMBQsgBiADa0EFdiAF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VK0gAkGgAmopAwAgECARVq18fHwiDCACKQO4AnwiDSAMVK18IA0gDSAUIBdWrSACQdACaikDACAPIBRWrXx8fCINVq18IAogDFatIAJBkAJqKQMAIAogFlStfHx8Ig8gAikDiAF8IgogAkGgAWopAwAgDSACKQOYAXwiDCANVK18IAwgCyAOVq0gAkGwAWopAwAgCyAaVK18fHwiCyAMVK18fCIMIAIpA7gBfCINIAxUrXwgDSACQdABaikDACALIAsgAikDyAF8IgtWrXwgCyASIBNWrSACQeABaikDACAOIBJWrXx8fCIOIAtUrXx8IgsgDVStfCAKIAxWrSACQZABaikDACAKIA9UrXx8fCIQIAIpAwh8IgogAkEgaikDACALIAsgAikDGHwiC1atfCALIAsgAkEwaikDACACQYABaikDACATIBVWrXwiDSACKQMofCIMIA1UrXwgDCAMIA58IgxWrXx8IgtWrXx8Ig4gAikDOHwiDSAOVK18IA0gDSACQdAAaikDACALIAsgAikDSHwiC1atfCALIAsgAkHgAGopAwAgDCAMIAIpA1h8IgxWrXwgDCACQfAAaikDACACKQNoIg8gFXwgD1StfHwiDyAMVK18fCILVq18fCINVq18IAogDlatIAJBEGopAwAgCiAQVK18fHwiDkKpwMaJrs6TsjBWDQACQCAOQqnAxomuzpOyMFEEQCANQt2whYzotpGouH9WDQIgDULdsIWM6LaRqLh/UQ0BQqnAxomuzpOyMCEOCyANIQogCyEMDAILIAtCkeHlzYeJ+pkoVg0AQt2whYzotpGouH8hCiALQpHh5c2HifqZKFIEQEKpwMaJrs6TsjAhDiALIQwMAgtCkeHlzYeJ+pkoIQwgD0KBgICAv7L98MMAWg0AQqnAxomuzpOyMCEODAELIAtCkeHlzYeJ+pkofSIKIA9CgYCAgL+y/fDDAFStIhB9IQwgDUKjz/rzl8nu18cAfCIRIAtCkeHlzYeJ+pkoVCAKIBBUcq0iC30hCiAOIA1C3bCFjOi2kai4f1QgCyARVnKtfUKpwMaJrs6TsjB9IQ4gD0KBgICAv7L98MMAfSEPCyAEQQFrIgEgB08NAiAEQQFqIQQgA0EgaiEDIAggAUEFdGoiASAPNwMYIAEgDDcDECABIAo3AwggASAONwMAQQAhBUEBIQEM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QZADaiAEIAhCABD8AyADQaADaiAEIAZCABD8AyADQbADaiAEIA1CABD8AyADQYACaiADKQOQAiIRIANByAJqKQMAIhAgAykD0AJ8IhJ8IgUgA0GoAmopAwAgByADKQOgAiIEfCAEVK18fCIHIAMpA4ADfCIOQgBCiceZpK7wgemHfxD8AyADQfABaiADQYgCaikDACIEQsf688PtgqOQPEIAEPwDIANB4AFqIARCjZXHw5bS2sCXf0IAEPwDIANB0AFqIARC3bCFjOi2kai4f0IAEPwDIANBwAFqIARCqcDGia7Ok7IwQgAQ/AMgA0HAA2ogAkEoaikDACIEIAlCABD8AyADQdADaiAEIAhCABD8AyADQeADaiAEIAZCABD8AyADQfADaiAEIA1CABD8AyADQaABaiADQYgDaikDACAHIA5WrXwiFCADKQOQA3wiEyADQdgCaikDACAQIBJWrXwiFSADKQPgAnwiECADKQOwAXwiEiAFIAdWrSADQZgCaikDACAFIBFUrXx8fCIWfCIFIAMpA+ABfCIHIANB+AFqKQMAIAMpA/ABIgQgDnwgBFStfHwiDiADKQPAA3wiEUIAQonHmaSu8IHph38Q/AMgA0GQAWogA0GoAWopAwAiBELH+vPD7YKjkDxCABD8AyADQYABaiAEQo2Vx8OW0trAl39CABD8AyADQfAAaiAEQt2whYzotpGouH9CABD8AyADQeAAaiAEQqnAxomuzpOyMEIAEPwDIANBgARqIAIpAyAiBCAJQgAQ/AMgA0GQBGogBCAIQgAQ/AMgA0GgBGogBCAGQgAQ/AMgA0GwBGogBCANQgAQ/AMgA0FAayADQcgDaikDACAOIBFWrXwiFyADKQPQA3wiCSADQegCaikDACAQIBVUrXwiFSADKQPwAnwiCCADKQNQfCIGIBIgFlatIANBuAFqKQMAIBAgElatfHx8Ig0gAykDoAN8IhAgBSATVK0gA0GYA2opAwAgEyAUVK18fHwiEyADKQPQAXwiEiAHIA5WrSADQegBaikDACAFIAdWrXx8fCIUfCIFIAMpA4ABfCIHIANBmAFqKQMAIAMpA5ABIgQgEXwgBFStfHwiDiADKQOABHwiEUIAQonHmaSu8IHph38Q/AMgA0EwaiADQcgAaikDACIEQsf688PtgqOQPEIAEPwDIANBIGogBEKN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KQOQAnwiDiAJIAtUrSADQagCaikDACALIBJUrXx8fCILIAMpA8ACfCIPIAogDVatIANB2AJqKQMAIAkgClatfHx8IhJ8IgkgAykD0AF8IgogA0HoAWopAwAgAykD4AEiBiARfCAGVK18fCINIAMpA3B8IhFC/////76y/fBCfiIGQoGAgIC/sv3wwwBCABD8AyADQdAAaiAGQpHh5c2HifqZKEIAEPwDIANBQGsgBkLdsIWM6LaRqLh/QgAQ/AMgA0EwaiAGQqnAxomuzpOyMEIAEPwDAkAgA0E4aikDACADQbgBaikDACADQbgCaikDACAHIAhUrSADQbgDaikDACAFIAhWrXx8IANBiANqKQMAIAUgDFStfHwiDCADKQOAAnwiBiALIA5UrSADQZgCaikDACAHIA5WrXx8fCIFIAMpA7ACfCIIIAVUrXwgCCAIIA8gElatIANByAJqKQMAIAsgD1atfHx8IghWrXwgBSAGVK0gA0GIAmopAwAgBiAMVK18fHwiByADKQOAAXwiBiADQZgBaikDACAIIAMpA5ABfCIFIAhUrXwgBSAEIAlWrSADQagBaikDACAEIBBUrXx8fCIEIAVUrXx8IgUgAykDsAF8IgggBVStfCAIIANByAFqKQMAIAQgBCADKQPAAXwiBFatfCAEIAogDVatIANB2AFqKQMAIAkgClatfHx8IgkgBFStfHwiBCAIVK18IAUgBlStIANBiAFqKQMAIAYgB1StfHx8IgogAykDAHwiBiADQRhqKQMAIAQgBCADKQMQfCIEVq18IAQgBCADQShqKQMAIANB+ABqKQMAIA0gEVatfCIIIAMpAyB8IgUgCFStfCAFIAUgCXwiBVatfHwiBFatfHwiCCADKQMwfCIHIAhUrXwgByADQcgAaikDACAEIAQgAykDQHwiBFatfCAEIAQgA0HYAGopAwAgBSAFIAMpA1B8IgVWrXwgBSADQegAaikDACADKQNgIgkgEXwgCVStfHwiECAFVK18fCIEVq18fCIFIAdUrXwgBiAIVq0gA0EIaikDACAGIApUrXx8fCIMQqnAxomuzpOyMFYNACAMQqnAxomuzpOyMFINAiAFQt2whYzotpGouH9WDQAgBULdsIWM6LaRqLh/UgRAQqnAxomuzpOyMCEMDAMLIARCkeHlzYeJ+pkoVg0AQt2whYzo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ADcDACApIAspAwA3AwAgKiAOKQMANwMAICsgEykDADcDACAsIBEpAwA3AwAgCSAJKQNgNwPQBCALIApB4ABqIjQpAwA3AwAgEiAKQegAaiI1KQMANwMAIA0gCkHwAGoiNikDADcDACAMIApB+ABqIjcpAwA3AwAgHiAKQcgAaiI4KQMANwMAIB8gCkHQAGoiOSkDADcDACAgIApB2ABqIjopAwA3AwAgISALKQMANwMAICIgDikDADcDACAjIBMpAwA3AwAgJCARKQMANwMAIAkgCkFAayI7KQMANwPgBiAXIBgQ5AIgCUHwAWogFSAXEC0gKCAJQZgBaikDADcDACAnIAlBkAFqKQMANwMAIBQgCUGIAWopAwA3AwAgCSAJKQOAATcD0AQgCyAtKQMANwMAIBIgLikDADcDACANIC8pAwA3AwAgDCAwKQMANwMAIB4gMSkDADcDACAfIDIpAwA3AwAgICAzKQMANwMAICEgCykDADcDACAiIA4pAwA3AwAgIyATKQMANwMAICQgESkDADcDACAJIAopAwA3A+AGIAlBsAJqIBUgGBBlIAkgPzcD6AQgCSA8NwPgBCAJID43A9gEIAkgPTcD0AQgCyA0KQMANwMAIBIgNSkDADcDACANIDYpAwA3AwAgDCA3KQMANwMAIB4gOCkDADcDACAfIDkpAwA3AwAgICA6KQMANwMAICEgCykDADcDACAiIA4pAwA3AwAgIyATKQMANwMAICQgESkDADcDACAJIDspAwA3A+AGIAlB8AJqIBUgGBBlIAIgFkYNCCAQIAkpA/ABNwMAICwgCUHoAWopAwA3AwAgKyAJQeABaikDADcDACAqIAlB2AFqKQMANwMAICkgCUHQAWopAwA3AwAgKCAJQcgBaikDADcDACAnIAlBwAFqKQMANwMAIBQgCUG4AWopAwA3AwAgEEEIaiAJQfgBaikDADcDACAQQRBqIAlBgAJqKQMANwMAIBBBGGogCUGIAmopAwA3AwAgEEEgaiAJQZACaikDADcDACAQQShqIAlBmAJqKQMANwMAIBBBMGogCUGgAmopAwA3AwAgEEE4aiAJQagCaikDADcDACAJIAkpA7ABNwPQBCAGIBZGDQkgCCAWRg0CIAlB4AhqIg0gASAZaiIKQUBrIhIgEBDzASAJQaAJaiIMIAogFRDzASAJQeAF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ByAIVK18IgQgCSAMVq0gA0EIaikDACAFIAlWrXx8IgkgBSANVK0gCyAQVK18fCIFfCIIIARUrUIAIAUgCVStfVINACAIQn9SDQIgB0J/UgRAQn8hCAwDC0J/IQUgBkJ/UgRAQn8hCCAGIQQMBAsgCkKv+P//b1oNAEJ/IQhCfyEEDAMLIAZCAXwiBSAKQq/4//9vVK0iCX0hBCAHQgF8IgwgBkJ/UiAFIAlUcq0iBn0hBSAIIAdCf1IgBiAMVnKtfUIBfCEIIApC0YeAgBB8IQoMAgsgA0ICNwPAA0GwscAAQSsgA0HAA2pB3LHAAEHossAAEP0DAAsgByEFIAYhBAsgACAKNwMYIAAgBDcDECAAIAU3AwggACAINwMAIANB4ANqJAALtCMCAn8dfiMAQZAEayIDJAAgASkDACEbIAEpAwghCiABKQMQIQ0gASkDGCEQIAEpAyAhESABKQMoIQxBKCEEA0AgA0GgAmogAiAEaikDACIFIAxCABD8AyADQbACaiAFIBFCABD8AyADQcACaiAFIBBCABD8AyADQdACaiAFIA1CABD8AyADQeACaiAFIApCABD8AyADQfACaiAFIBtCABD8AyADQZACaiADKQOgAiITIBZ8IhVC/f/z/8////mJf34iBUKr1f7///+//7l/QgAQ/AMgA0GAAmogBUL//8+K6///1R5CABD8AyADQfABaiAFQqTsw7WP1LSY5wBCABD8AyADQeABaiAFQr+llJzP8NK75ABCABD8AyADQdABaiAFQtfZrprk9umNywBCABD8AyADQcABaiAFQprN/8ujvcSAGkIAEPwDIANByAFqKQMAIAMpA/ACIhggEnwiBSADQegCaikDACADKQPgAiILIAh8IgggC1StfCAIIAggA0HYAmopAwAgAykD0AIiCyAGfCIGIAtUrXwgBiAGIANByAJqKQMAIAkgAykDwAIiCXwiCyAJVK18IAsgA0G4AmopAwAgAykDsAIiCSAHfCIHIAlUrXwgByADQagCaikDACATIBVWrXx8IgkgB1StfHwiByALVK18fCIGVq18fCIIVq18fCILIAMpA8ABfCITIAtUrXwgEyADQdgBaikDACAIIAggAykD0AF8IghWrXwgCCADQegBaikDACAGIAYgAykD4AF8IgZWrXwgBiADQfgBaikDACAHIAcgAykD8AF8IgdWrXwgByAHIANBiAJqKQMAIAMpA4ACIhkgCXwiCSAZVK18IAkgA0GYAmopAwAgFSADKQOQAiIVfCAVVK18fCIWIAlUrXx8IgdWrXx8IgkgBlStfHwiBiAIVK18fCIIIBNUrXwgBSALVq0gA0H4AmopAwAgBSAYVK18fHwhEiAEQQhrIgRBeEcNAAsCQAJAIBJCms3/y6O9xIAaVg0AAkACQAJAAkAgEkKazf/Lo73EgBpSDQAgCELX2a6a5PbpjcsAVg0EIAhC19mumuT26Y3LAFIEQEKazf/Lo73EgBohEgwBCyAGQr+llJzP8NK75ABWDQRC19mumuT26Y3LACETIAZCv6WUnM/w0rvkAFIEQEKazf/Lo73EgBohEgwCCyAJQqTsw7WP1LSY5wBWDQRCv6WUnM/w0rvkACEYIAlCpOzDtY/UtJjnAFIEQEKazf/Lo73EgBohEgwDCyAHQv//z4rr///VHlYNBEKk7MO1j9S0mOcAIRkgB0L//8+K6///1R5RDQNCms3/y6O9xIAaIRIgByEVDAULIAghEwsgBiEYCyAJIRkgByEVDAILQv//z4rr///VHiEVIBZCqtX+////v/+5f1YNAEKazf/Lo73EgBohEgwBCyAHQv//z4rr///VHn0iBSAWQqvV/v///7//uX9UrSILfSEVIAlCpOzDtY/UtJjnAH0iEyAHQv//z4rr///VHlQgBSALVHKtIgV9IRkgBkK/pZScz/DSu+QAfSIHIAlCpOzDtY/UtJjnAFQgBSATVnKtIgV9IRggCELX2a6a5PbpjcsAfSILIAZCv6WUnM/w0rvkAFQgBSAHVnKtIgV9IRMgEiAIQtfZrprk9umNywBUIAUgC1ZyrX1Cms3/y6O9xIAafSESIBZC1aqBgICAwIDGAHwhFgsgAUE4aikDACEcIAFBQGspAwAhHSABQcgAaikDACEeIAFB0ABqKQMAIR9B2AAhBCABQdgAaikDACEgIAEpAzAhIUIAIQdCACEJQgAhBkIAIQgDQCADQeAAaiACIARqKQMAIgUgIEIAEPwDIANB8ABqIAUgH0IAEPwDIANBgAFqIAUgHkIAEPwDIANBkAFqIAUgHUIAEPwDIANBoAFqIAUgHEIAEPwDIANBsAFqIAUgIUIAEPwDIANB0ABqIAMpA2AiFCAXfCILQv3/8//P///5iX9+IgVCq9X+////v/+5f0IAEPwDIANBQGsgBUL//8+K6///1R5CABD8AyADQTBqIAVCpOzDtY/UtJjnAEIAEPwDIANBIGogBUK/pZScz/DSu+QAQgAQ/AMgA0EQaiAFQtfZrprk9umNywBCABD8AyADIAVCms3/y6O9xIAaQgAQ/AMgA0EIaikDACADKQOwASIaIA98IgUgA0GoAWopAwAgAykDoAEiDiAIfCIIIA5UrXwgCCAIIANBmAFqKQMAIAMpA5ABIg4gBnwiBiAOVK18IAYgBiADQYgBaikDACADKQOAASIOIAl8IgkgDlStfCAJIANB+ABqKQMAIAMpA3AiDiAHfCIHIA5UrXwgByADQegAaikDACALIBRUrXx8Ig8gB1StfHwiByAJVK18fCIGVq18fCIIVq18fCIUIAMpAwB8Ig4gFFStfCAOIANBGGopAwAgCCAIIAMpAxB8IghWrXwgCCADQShqKQMAIAYgBiADKQMgfCIGVq18IAYgA0E4aikDACAHIAcgAykDMHwiB1atfCAHIAcgA0HIAGopAwAgDyADKQNAIg98IgkgD1StfCAJIANB2ABqKQMAIAsgAykDUCILfCALVK18fCIXIAlUrXx8IgdWrXx8IgkgBlStfHwiBiAIVK18fCIIIA5UrXwgBSAUVq0gA0G4AWopAwAgBSAaVK18fHwhDyAEQQhrIgRBKEcNAAsCQAJAIA9Cms3/y6O9xIAaVg0AAkACQAJAAkAgD0Kazf/Lo73EgBpSDQAgCELX2a6a5PbpjcsAVg0EIAhC19mumuT26Y3LAFIEQEKazf/Lo73EgBohDwwBCyAGQr+llJzP8NK75ABWDQRC19mumuT26Y3LACEUIAZCv6WUnM/w0rvkAFIEQEKazf/Lo73EgBohDwwCCyAJQqTsw7WP1LSY5wBWDQRCv6WUnM/w0rvkACEOIAlCpOzDtY/UtJjnAFIEQEKazf/Lo73EgBohDwwDCyAHQv//z4rr///VHlYNBEKk7MO1j9S0mOcAIRogB0L//8+K6///1R5RDQNCms3/y6O9xIAaIQ8gByELDAULIAghFAsgBiEOCyAJIRogByELDAILQv//z4rr///VHiELIBdCqtX+////v/+5f1YNAEKazf/Lo73EgBohDwwBCyAHQv//z4rr///VHn0iBSAXQqvV/v///7//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IAkhBwwBCyARQn9CACAIQn+FIgYgDEJ/hSIFIAtCbVatIhFUrSIUVBsgDn18IBAgBiAUfSIQfCIGIBBUIAYgDyAFIBF9Ig98IgUgD1QgBUJtIAt9Ig8gCnwiCiAPVK18Ig8gBVRyrXwiECAGVHKtfEL///////////8AfCERIA0hFCASIQYgCSEFCyADQeADaiADQcADakEgEK4FDQALCyADQbADaiABKQMYIgQgC0IAEPwDIANB8AJqIAEpAxAiBiALQgAQ/AMgA0HgAmogASkDCCIHIAtCABD8AyADQdACaiABKQMAIgUgC0IAEPwDIANBoANqIAMpA7ADIg1Cm5Svw/K1qN6Gf34iCkJtQgAQ/AMgA0GQA2ogCkJ/QgAQ/AMgA0GAA2ogCkL///////////8AQgAQ/AMgA0HAAmogBCAMQgAQ/AMgA0GAAmogBiAMQgAQ/AMgA0HwAWogByAMQgAQ/AMgA0HgAWogBSAMQgAQ/AMgA0GwAmogAykDkAMiCiADQbgDaikDACIPIAMpA/ACfCIQfCIJIANBqANqKQMAIA0gAykDoAMiC3wgC1StfHwiDSADKQPAAnwiC0KblK/D8rWo3oZ/fiIMQm1CABD8AyADQaACaiAMQn9CABD8AyADQZACaiAMQv///////////wBCABD8AyADQdABaiAEIAhCABD8AyADQZABaiAGIAhCABD8AyADQYABaiAHIAhCABD8AyADQfAAaiAFIAhCABD8AyADQcABaiADQcgCaikDACALIA1UrXwiESADKQOAAnwiCCAKIANB+AJqKQMAIA8gEFatfCITIAMpA+ACfCIMfCIPIAkgDVatIANBmANqKQMAIhQgCSAKVK18fHwiEnwiCiADKQOgAiIWfCIJIANBuAJqKQMAIAMpA7ACIg0gC3wgDVStfHwiDSADKQPQAXwiC0KblK/D8rWo3oZ/fiIQQm1CABD8AyADQbABaiAQQn9CABD8AyADQaABaiAQQv///////////wBCABD8AyADQeAAaiAEIA5CABD8AyADQSBqIAYgDkIAEPwDIANBEGogByAOQgAQ/AMgAyAFIA5CABD8AyADQdAAaiADQdgBaikDACALIA1UrXwiDiADKQOQAXwiBCAWIANB6AJqKQMAIAwgE1StfCITIAMpA9ACfCIGIAMpA4ADfCIHIA8gElatIBQgDCAPVq18fHwiBSADKQPwAXwiDCAIIApWrSADQYgCaikDACAIIBFUrXx8fCIIfCIPIAkgDVatIANBqAJqKQMAIhEgCSAKVK18fHwiFHwiCiADKQOwASISfCIJIANByAFqKQMAIAMpA8ABIg0gC3wgDVStfHwiDSADKQNgfCILQpuUr8Pytajehn9+IhBCbUIAEPwDIANBQGsgEEJ/QgAQ/AMgA0EwaiAQQv///////////wBCABD8AwJAIANBOGopAwAgA0GoAWopAwAgA0GYAmopAwAgBSAHVK0gA0GIA2opAwAgBiAHVq18fCIQIANB2AJqKQMAIAYgE1StfHwiBiADKQPgAXwiByAIIAxUrSADQfgBaikDACAFIAxWrXx8fCIFIAMpA5ACfCIMIAVUrXwgDCAPIBRWrSARIAggD1atfHx8IgggDFStfCIMIAUgB1StIANB6AFqKQMAIAYgB1atfHwiDyAGIBBUrXwiEHwiBiADKQNwfCIHIANBiAFqKQMAIAggAykDgAF8IgUgCFStfCAFIAQgClatIANBmAFqKQMAIAQgDlStfHx8IgQgBVStfHwiBSADKQOgAXwiCCAFVK18IAggA0G4AWopAwAiDiAEIAQgEnwiBFatfCAEIAkgDVatIA4gCSAKVK18fHwiCiAEVK18fCIEIAhUrXwiCCAFIAdUrSADQfgAaikDACAGIAdWrXx8Ig4gBiAMVK0gDyAQVq18fCIMfCIHIAMpAwB8IgUgA0EYaikDACAEIAQgAykDEHwiBFatfCAEIAQgA0EoaikDACADQegAaikDACALIA1UrXwiCSADKQMgfCIGIAlUrXwgBiAGIAp8IgZWrXx8IgRWrXx8IgogAykDMHwiCSAKVK18IAkgA0HIAGopAwAiDSAEIAQgAykDQCIPfCIEVq18IAQgBCANIAYgBiAPfCIGVq18IAYgA0HYAGopAwAgAykDUCINIAt8IA1UrXx8IhEgBlStfHwiBFatfHwiBiAJVK18IgkgBSAKVq0gA0EIaikDACAFIAdUrXx8IgUgByAIVK0gDCAOVK18fCIHfCIOQgBTIAkgDlatQgAgBSAHVq19UnINACAOQv///////////wBSDQJCfyELIAZCf1IEQEL///////////8AIQ4MAwsgBEJ/UgRAQv///////////wAhDiAEIQoMBAsgEUJtWg0AQv///////////wAhDkJ/IQoMAwsgBEIBfCIHIBFCbVStIgV9IQogBkIBfCIJIARCf1IgBSAHVnKtIgR9IQsgDiAGQn9SIAQgCVZyrX1C////////////AH0hDiARQhN8IREMAgsgA0ICNwOABEGwscAAQSsgA0GABGpB3LHAAEHossAAEP0DAAsgBiELIAQhCgsgACARNwMYIAAgCjcDECAAIAs3AwggACAONwMAIANBoARqJAALqRwCCH8SfiMAQcAFayICJAACQAJAAkACQCABKAIIIgZBAk8EQCAGQQFrIgdBBXQhCSAHQf///x9LBEAMBQtBudHCAC0AABpBCCEDIAlBCBCLBSIIRQ0EIAghAwJAIAdBAUYNACAGQQJrIgVBB3EhBCAGQQNrQQdPBEAgBUF4cSEFA0AgA0IANwMAIANBGGpCADcDACADQRBqQgA3AwAgA0EIakIANwMAIANBIGpCADcDACADQShqQgA3AwAgA0EwakIANwMAIANBOGpCADcDACADQUBrQgA3AwAgA0HIAGpCADcDACADQdAAakIANwMAIANB2ABqQgA3AwAgA0HgAGpCADcDACADQegAakIANwMAIANB8ABqQgA3AwAgA0H4AGpCADcDACADQZgBakIANwMAIANBkAFqQgA3AwAgA0GIAWpCADcDACADQYABakIANwMAIANBuAFqQgA3AwAgA0GwAWpCADcDACADQagBakIANwMAIANBoAFqQgA3AwAgA0HAAWpCADcDACADQcgBakIANwMAIANB0AFqQgA3AwAgA0HYAWpCADcDACADQeABakIANwMAIANB6AFqQgA3AwAgA0HwAWpCADcDACADQfgBakIANwMAIANBgAJqIQMgBUEIayIFDQALCyAERQ0AA0AgA0IANwMAIANBGGpCADcDACADQRBqQgA3AwAgA0EIakIANwMAIANBIGohAyAEQQFrIgQNAAsLIANCADcDACADQRhqQgA3AwAgA0EQakIANwMAIANBCGpCADcDACABKAIEIgMgBkEFdGohBkEAIQFBASEFQQAhBANAAkAgAUEBcQRAIAMgBkcNAQwFCyAGIANrQQV2IAVNDQQgBCAFaiEEIAMgBUEFdGohAwsgAkH4BGogBK0iDELMAH4iCkJtQgAQ/AMgAkHoBGogCkJ/QgAQ/AMgAkH4A2ogCkL///////////8AQgAQ/AMgAkHYBGogAkGABWopAwAgAikD+AQiCiAMQqQLfnwgClStfCILIAIpA+gEIg98IgpCm5Svw/K1qN6Gf34iDEJtQgAQ/AMgAkHIBGogDEJ/QgAQ/AMgAkGIBGogDEL///////////8AQgAQ/AMgAkG4BGogAikDyAQiDCAPIAJB8ARqKQMAIg0gCiALVK18Ig58IhB8IgsgAkHgBGopAwAgCiACKQPYBCIKfCAKVK18fCIKQpuUr8Pytajehn9+Ig9CbUIAEPwDIAJBqARqIA9Cf0IAEPwDIAJBmARqIA9C////////////AEIAEPwDIAJB6ANqIAIpA6gEIg8gDCANIA4gEFatfCIQIAIpA/gDfCINfCIOIAogC1StIAJB0ARqKQMAIhIgCyAMVK18fHwiEXwiDCACQcAEaikDACAKIAIpA7gEIgp8IApUrXx8IgpCm5Svw/K1qN6Gf34iC0JtQgAQ/AMgAkHYA2ogC0J/QgAQ/AMgAkHIA2ogC0L///////////8AQgAQ/AMCQCACQdADaikDACACQaAEaikDACACQZAEaikDACACQYAEaikDACANIBBUrXwiECACKQOIBHwiCyAQVK18IAsgCyAOIBFWrSASIA0gDlatfHx8IgtWrXwiDiACKQOYBHwiDSAOVK18IA0gAkGwBGopAwAiDiALIAsgD3wiC1atfCALIAogDFStIA4gDCAPVK18fHwiDiALVK18fCIMIA1UrXwiCyACKQPIA3wiDyALVK18IA8gAkHgA2opAwAiDSAMIAwgAikD2AMiC3wiDFatfCAMIA0gCyALIA58IgtWrXwgCyACQfADaikDACAKIAIpA+gDIgp8IApUrXx8IgogC1StfHwiCyAMVK18fCINIA9UrXwiDkL///////////8AUg0AQv///////////wAhDiANQn9SDQBCfyENIAtCf1INAEJ/IQsgCkJtVARADAELIApCE3whCkIAIQtCACENQgAhDgsgAkG4A2ogAykDGCIMIApCABD8AyACQfgCaiADKQMQIg8gCkIAEPwDIAJB6AJqIAMpAwgiECAKQgAQ/AMgAkHYAmogAykDACISIApCABD8AyACQagDaiACKQO4AyIRQpuUr8Pytajehn9+IgpCbUIAEPwDIAJBmANqIApCf0IAEPwDIAJBiANqIApC////////////AEIAEPwDIAJByAJqIAwgC0IAEPwDIAJBiAJqIA8gC0IAEPwDIAJB+AFqIBAgC0IAEPwDIAJB6AFqIBIgC0IAEPwDIAJBuAJqIAIpA5gDIgogAkHAA2opAwAiEyACKQP4AnwiFHwiCyACQbADaikDACARIAIpA6gDIhV8IBVUrXx8IhEgAikDyAJ8IhVCm5Svw/K1qN6Gf34iFkJtQgAQ/AMgAkGoAmogFkJ/QgAQ/AMgAkGYAmogFkL///////////8AQgAQ/AMgAkHYAWogDCANQgAQ/AMgAkGYAWogDyANQgAQ/AMgAkGIAWogECANQgAQ/AMgAkH4AGogEiANQgAQ/AMgAkHIAWogAkHQAmopAwAgESAVVq18IhcgAikDiAJ8Ig0gCiACQYADaikDACATIBRWrXwiGCACKQPoAnwiFnwiEyALIBFWrSACQaADaikDACIZIAogC1atfHx8Ihp8IgogAikDqAIiG3wiCyACQcACaikDACACKQO4AiIRIBV8IBFUrXx8IhEgAikD2AF8IhVCm5Svw/K1qN6Gf34iFEJtQgAQ/AMgAkG4AWogFEJ/QgAQ/AMgAkGoAWogFEL///////////8AQgAQ/AMgAkHoAGogDCAOQgAQ/AMgAkEoaiAPIA5CABD8AyACQRhqIBAgDkIAEPwDIAJBCGogEiAOQgAQ/AMgAkHYAGogAkHgAWopAwAgESAVVq18IhQgAikDmAF8IgwgGyACQfACaikDACAWIBhUrXwiGCACKQPYAnwiDyACKQOIA3wiDiATIBpWrSAZIBMgFlStfHx8IhAgAikD+AF8IhIgCiANVK0gAkGQAmopAwAgDSAXVK18fHwiDXwiFiALIBFWrSACQbACaikDACIXIAogC1atfHx8Ihl8IgogAikDuAEiGnwiCyACQdABaikDACACKQPIASIRIBV8IBFUrXx8IhEgAikDaHwiFUKblK/D8rWo3oZ/fiITQm1CABD8AyACQcgAaiATQn9CABD8AyACQThqIBNC////////////AEIAEPwDAkACQCACQUBrKQMAIAJBsAFqKQMAIAJBoAJqKQMAIA4gEFatIAJBkANqKQMAIA4gD1StfHwiEyACQeACaikDACAPIBhUrXx8Ig8gAikD6AF8Ig4gDSASVK0gAkGAAmopAwAgECASVq18fHwiECACKQOYAnwiEiAQVK18IBIgFiAZVq0gFyANIBZWrXx8fCINIBJUrXwiEiAOIBBWrSACQfABaikDACAOIA9UrXx8IhYgDyATVK18IhN8Ig8gAikDeHwiDiACQZABaikDACANIA0gAikDiAF8Ig1WrXwgDSAKIAxUrSACQaABaikDACAMIBRUrXx8fCIMIA1UrXx8Ig0gAikDqAF8IhAgDVStfCAQIAJBwAFqKQMAIhQgDCAMIBp8IgxWrXwgDCALIBFWrSAUIAogC1atfHx8IhQgDFStfHwiCiAQVK18IhcgDSAOVK0gAkGAAWopAwAgDiAPVK18fCIYIA8gElStIBMgFlStfHwiEnwiCyACKQMIfCINIAJBIGopAwAgCiAKIAIpAxh8IgpWrXwgCiAKIAJBMGopAwAgAkHwAGopAwAgESAVVq18Ig8gAikDKHwiDCAPVK18IAwgDCAUfCIMVq18fCIKVq18fCIQIAIpAzh8Ig8gEFStfCAPIA8gAkHQAGopAwAiDiAKIAogAikDSCIRfCIKVq18IAogDiAMIAwgEXwiDFatfCAMIAJB4ABqKQMAIAIpA1giDiAVfCAOVK18fCIOIAxUrXx8IgwgClStfHwiD1atfCIKIAsgF1StIBIgGFStfCANIBBWrSACQRBqKQMAIAsgDVatfHx8fCINQgBZIAogDVhxRQ0AAkAgDUL///////////8AUQRAIA9Cf1ENAUL///////////8AIQ0LIA8hCyAMIQoMAgtCfyELIAxCf1IEQEL///////////8AIQ0gDCEKDAILIA5CbVoNAEL///////////8AIQ1CfyEKDAELIAxCAXwiCyAOQm1UrSIQfSEKIA9CAXwiEiAMQn9SIAsgEFRyrSIMfSELIA0gD0J/UiAMIBJWcq19Qv///////////wB9IQ0gDkITfCEOCyAEQQFrIgEgB08NAiAEQQFqIQQgA0EgaiEDIAggAUEFdGoiASAONwMYIAEgCjcDECABIAs3AwggASANNwMAQQAhBUEBIQEMAAsACyAAEKgDDAILIAEgB0HsnsAAEJgEAAsgAkEAOgCcBSACIAg2ApQFIAIgCCAHQQV0ajYCmAUgAkGIBWogAkGUBWoQ5gIgAigCkAUiAUECTwRAIAFBAXYhBSACKAKMBSIDIAFBBXRqQSBrIQQDQCADKQMAIQogAyAEKQMANwMAIANBGGoiASkDACEMIAEgBEEYaiIBKQMANwMAIANBEGoiBykDACELIAcgBEEQaiIHKQMANwMAIANBCGoiBikDACEPIAYgBEEIaiIGKQMANwMAIAQgCjcDACABIAw3AwAgByALNwMAIAYgDzcDACAEQSBrIQQgA0EgaiEDIAVBAWsiBQ0ACwsgACACKQKIBTcCACAAQQhqIAJBkAVqKAIANgIAIAggCRCUBQsgAkHABWokAA8LIAMgCRCDBQAL4RoCCH8UfiMAQdAEayICJAACQAJAAkAgASgCCCIGQQJPBEAgBkEBayIHQQV0IQkgB0H///8fSwRADAQLQbnRwgAtAAAaQQghAyAJQQgQiwUiCEUNAyAIIQMCQCAHQQFGDQAgBkECayIFQQdxIQQgBkEDa0EHTwRAIAVBeHEhBQNAIANCADcDACADQRhqQgA3AwAgA0EQakIANwMAIANBCGpCADcDACADQSBqQgA3AwAgA0EoakIANwMAIANBMGpCADcDACADQThqQgA3AwAgA0FAa0IANwMAIANByABqQgA3AwAgA0HQAGpCADcDACADQdgAakIANwMAIANB4ABqQgA3AwAgA0HoAGpCADcDACADQfAAakIANwMAIANB+ABqQgA3AwAgA0GYAWpCADcDACADQZABakIANwMAIANBiAFqQgA3AwAgA0GAAWpCADcDACADQbgBakIANwMAIANBsAFqQgA3AwAgA0GoAWpCADcDACADQaABakIANwMAIANBwAFqQgA3AwAgA0HIAWpCADcDACADQdABakIANwMAIANB2AFqQgA3AwAgA0HgAWpCADcDACADQegBakIANwMAIANB8AFqQgA3AwAgA0H4AWpCADcDACADQYACaiEDIAVBCGsiBQ0ACwsgBEUNAANAIANCADcDACADQRhqQgA3AwAgA0EQakIANwMAIANBCGpCADcDACADQSBqIQMgBEEBayIEDQALCyADQgA3AwAgA0EYakIANwMAIANBEGpCADcDACADQQhqQgA3AwAgASgCBCIDIAZBBXRqIQZBACEBQQEhBUEAIQQDQAJAIAFBAXEEQCADIAZHDQEMBAsgBiADa0EFdiAFTQ0DIAQgBWohBCADIAVBBXRqIQMLIAJBiARqIAStIgpC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mAQ3AgAgAEEIaiACQaAEaigCADYCACAIIAkQlAULIAJB0ARqJAAPCyADIAkQgwUAC/MhAhF/KX4jAEGAAmsiAyQAIANBBGogARDsAUG50cIALQAAGgJAAkACQAJAAkACQAJAAkACQAJAQcAEQQgQiwUiBARAAkACQAJAIAMoAgwiBQ4CAAECC0EAQQBB8OLBABCYBAALQQFBAUGA48EAEJgEAAsCfiADKAIIIgJBMGpBmN3BAEEwEK4FBEBC///Piuv//9UeIAJB0ABqKQMAIjB9Ih4gAkHYAGopAwAiMUKr1f7///+//7l/Vq0iH30hMkKk7MO1j9S0mOcAIAJByABqKQMAIhh9IiAgHiAfVCAwQv//z4rr///VHlZyrSIefSEwQr+llJzP8NK75AAgAkFAaykDACIffSIhIB4gIFYgGEKk7MO1j9S0mOcAVnKtIhh9IR5C19mumuT26Y3LACACQThqKQMAIiB9IhMgGCAhViAfQr+llJzP8NK75ABWcq0iGH0hH0Kr1f7///+//7l/IDF9ITFCms3/y6O9xIAaIAIpAzAgEyAYVCAgQtfZrprk9umNywBWcq18fQwBCyACQdgAaikDACExIAJB0ABqKQMAITIgAkHIAGopAwAhMCACQUBrKQMAIR4gAkE4aikDACEfIAIpAzALIRggBUECTQ0BIANBOGogAkGIAWopAwA3AwAgA0EwaiACQYABaikDADcDACADQShqIAJB+ABqKQMANwMAIANBIGogAkHwAGopAwA3AwAgA0EYaiACQegAaikDADcDACADIAIpA2A3AxAgBUEDRg0CAn4gAkGQAWpBmN3BAEEwEK4FBEBC///Piuv//9UeIAJBsAFqKQMAIiF9IhMgAkG4AWopAwAiM0Kr1f7///+//7l/Vq0iIn0hIEKk7MO1j9S0mOcAIAJBqAFqKQMAIhl9IiMgEyAiVCAhQv//z4rr///VHlZyrSITfSEhQr+llJzP8NK75AAgAkGgAWopAwAiIn0iJCATICNWIBlCpOzDtY/UtJjnAFZyrSIZfSETQtfZrprk9umNywAgAkGYAWopAwAiI30iFCAZICRWICJCv6WUnM/w0rvkAFZyrSIZfSEiQqvV/v///7//uX8gM30hM0Kazf/Lo73EgBogAikDkAEgFCAZVCAjQtfZrprk9umNywBWcq18fQwBCyACQbgBaikDACEzIAJBsAFqKQMAISAgAkGoAWopAwAhISACQaABaikDACETIAJBmAFqKQMAISIgAikDkAELIRkgBUEETQ0DIANB6ABqIAJB6AFqKQMANwMAIANB4ABqIAJB4AFqKQMANwMAIANB2ABqIAJB2AFqKQMANwMAIANB0ABqIAJB0AFqKQMANwMAIANByABqIAJByAFqKQMANwMAIAMgAikDwAE3A0AgBUEFRg0EAn4gAkHwAWpBmN3BAEEwEK4FBEBC///Piuv//9UeIAJBkAJqKQMAIiR9IhQgAkGYAmopAwAiNEKr1f7///+//7l/Vq0iJX0hI0Kk7MO1j9S0mOcAIAJBiAJqKQMAIhp9IiYgFCAlVCAkQv//z4rr///VHlZyrSIUfSEkQr+llJzP8NK75AAgAkGAAmopAwAiJX0iJyAUICZWIBpCpOzDtY/UtJjnAFZyrSIafSEUQtfZrprk9umNywAgAkH4AWopAwAiJn0iFSAaICdWICVCv6WUnM/w0rvkAFZyrSIafSElQqvV/v///7//uX8gNH0hNEKazf/Lo73EgBogAikD8AEgFSAaVCAmQtfZrprk9umNywBWcq18fQwBCyACQZgCaikDACE0IAJBkAJqKQMAISMgAkGIAmopAwAhJCACQYACaikDACEUIAJB+AFqKQMAISUgAikD8AELIRogBUEGTQ0FIANBmAFqIAJByAJqKQMANwMAIANBkAFqIAJBwAJqKQMANwMAIANBiAFqIAJBuAJqKQMANwMAIANBgAFqIAJBsAJqKQMANwMAIANB+ABqIAJBqAJqKQMANwMAIAMgAikDoAI3A3AgBUEHRg0GAn4gAkHQAmpBmN3BAEEwEK4FBEBC///Piuv//9UeIAJB8AJqKQMAIid9IhUgAkH4AmopAwAiNUKr1f7///+//7l/Vq0iKH0hJkKk7MO1j9S0mOcAIAJB6AJqKQMAIht9IikgFSAoVCAnQv//z4rr///VHlZyrSIVfSEnQr+llJzP8NK75AAgAkHgAmopAwAiKH0iKiAVIClWIBtCpOzDtY/UtJjnAFZyrSIbfSEVQtfZrprk9umNywAgAkHYAmopAwAiKX0iFiAbICpWIChCv6WUnM/w0rvkAFZyrSIbfSEoQqvV/v///7//uX8gNX0hNUKazf/Lo73EgBogAikD0AIgFiAbVCApQtfZrprk9umNywBWcq18fQwBCyACQfgCaikDACE1IAJB8AJqKQMAISYgAkHoAmopAwAhJyACQeACaikDACEVIAJB2AJqKQMAISggAikD0AILIRsgBUEITQ0HIANByAFqIAJBqANqKQMANwMAIANBwAFqIAJBoANqKQMANwMAIANBuAFqIAJBmANqKQMANwMAIANBsAFqIAJBkANqKQMANwMAIANBqAFqIAJBiANqKQMANwMAIAMgAikDgAM3A6ABIAVBCUYNCAJ+IAJBsANqQZjdwQBBMBCuBQRAQv//z4rr///VHiACQdADaikDACIqfSIWIAJB2ANqKQMAIjZCq9X+////v/+5f1atIit9ISlCpOzDtY/UtJjnACACQcgDaikDACIcfSIsIBYgK1QgKkL//8+K6///1R5Wcq0iFn0hKkK/pZScz/DSu+QAIAJBwANqKQMAIit9Ii0gFiAsViAcQqTsw7WP1LSY5wBWcq0iHH0hFkLX2a6a5PbpjcsAIAJBuANqKQMAIix9IhcgHCAtViArQr+llJzP8NK75ABWcq0iHH0hK0Kr1f7///+//7l/IDZ9ITZCms3/y6O9xIAaIAIpA7ADIBcgHFQgLELX2a6a5PbpjcsAVnKtfH0MAQsgAkHYA2opAwAhNiACQdADaikDACEpIAJByANqKQMAISogAkHAA2opAwAhFiACQbgDaikDACErIAIpA7ADCyEcIAVBCk0NCSADQfgBaiACQYgEaikDADcDACADQfABaiACQYAEaikDADcDACADQegBaiACQfgDaikDADcDACADQeABaiACQfADaikDADcDACADQdgBaiACQegDaikDADcDACADIAIpA+ADNwPQASAFQQtGDQoCfiACQZAEakGY3cEAQTAQrgUEQEL//8+K6///1R4gAkGwBGopAwAiLX0iFyACQbgEaikDACI3QqvV/v///7//uX9WrSIufSEsQqTsw7WP1LSY5wAgAkGoBGopAwAiHX0iLyAXIC5UIC1C///Piuv//9UeVnKtIhd9IS1Cv6WUnM/w0rvkACACQaAEaikDACIufSI4IBcgL1YgHUKk7MO1j9S0mOcAVnKtIh19IRdC19mumuT26Y3LACACQZgEaikDACIvfSI5IB0gOFYgLkK/pZScz/DSu+QAVnKtIh19IS5Cq9X+////v/+5fyA3fSE3QprN/8ujvcSAGiACKQOQBCAdIDlWIC9C19mumuT26Y3LAFZyrXx9DAELIAJBuARqKQMAITcgAkGwBGopAwAhLCACQagEaikDACEtIAJBoARqKQMAIRcgAkGYBGopAwAhLiACKQOQBAshHSACQQhqKQMAIS8gAkEQaikDACE4IAJBGGopAwAhOSACQSBqKQMAITogAikDACE7IARBKGogAkEoaikDADcDACAEQSBqIDo3AwAgBEEYaiA5NwMAIARBEGogODcDACAEQQhqIC83AwAgBCA7NwMAIARB2ABqIDE3AwAgBEHQAGogMjcDACAEQcgAaiAwNwMAIARBQGsgHjcDACAEQThqIB83AwAgBCAYNwMwIAQgAykDEDcDYCAEQegAaiADQRhqKQMANwMAIARB8ABqIANBIGopAwA3AwAgBEH4AGogA0EoaikDADcDACAEQYABaiADQTBqKQMANwMAIARBiAFqIANBOGopAwA3AwAgBEG4AWogMzcDACAEQbABaiAgNwMAIARBqAFqICE3AwAgBEGgAWogEzcDACAEQZgBaiAiNwMAIAQgGTcDkAEgBEHoAWogA0HoAGopAwA3AwAgBEHgAWogA0HgAGopAwA3AwAgBEHYAWogA0HYAGopAwA3AwAgBEHQAWogA0HQAGopAwA3AwAgBEHIAWogA0HIAGopAwA3AwAgBCADKQNANwPAASAEQZgCaiA0NwMAIARBkAJqICM3AwAgBEGIAmogJDcDACAEQYACaiAUNwMAIARB+AFqICU3AwAgBCAaNwPwASAEQcgCaiADQZgBaikDADcDACAEQcACaiADQZABaikDADcDACAEQbgCaiADQYgBaikDADcDACAEQbACaiADQYABaikDADcDACAEQagCaiADQfgAaiISKQMANwMAIAQgAykDcDcDoAIgBEH4AmogNTcDACAEQfACaiAmNwMAIARB6AJqICc3AwAgBEHgAmogFTcDACAEQdgCaiAoNwMAIAQgGzcD0AIgBEGoA2ogA0HIAWopAwA3AwAgBEGgA2ogA0HAAWopAwA3AwAgBEGYA2ogA0G4AWopAwA3AwAgBEGQA2ogA0GwAWopAwA3AwAgBEGIA2ogA0GoAWopAwA3AwAgBCADKQOgATcDgAMgBEHYA2ogNjcDACAEQdADaiApNwMAIARB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ACAKIQUgByEIDAELIAdC/////w99IgUgCUJ/Uq0iC30hCCAKIAdC/////w9UIAUgC1RyrSIHfSEFIAZC/v///w9C/////w8gByAKVht8IQYgCUIBfCEJCwJAAkAgBiACKQMAfCILIAUgBSACKQMIfCIFViAFIAggAikDEHwiByAIVCAHIAcgCSACKQMYfCIIIAlUrXwiB1ZyrXwiCiAFVHKtfCIJIAtUIAYgC1ZyDQBCgYCAgHAhBgJAIAkiBUKBgICAcFINACAKQgBSDQFC/////w8hBiAHIgVC/////w9SDQAgCEJ/UQ0BQgAhBUKBgICAcCEJDAILIAUgBloNACAKIQUgByEGDAELIAdC/////w99IgUgCEJ/Uq0iC30hBiAKIAdC/////w9UIAUgC1RyrSIHfSEFIAlC/v///w9C/////w8gByAKVht8IQkgCEIBfCEICyAAIAg3AxggACAGNwMQIAAgBTcDCCAAIAk3AwAgBEHgBGokAAvpGAIBfxZ+IwBBoANrIgMkACACQfiywABBIBCuBQRAIANB0AJqQgA3AwAgA0HIAmpCADcDACADQgA3A8ACIANCATcD2AIgA0H4AmogAkEYaikDADcDACADQfACaiACQRBqKQMANwMAIANB6AJqIAJBCGopAwA3AwAgAyACKQMANwPgAiADQZgDakGYsMAAKQMANwMAIANBkANqQZCwwAApAwA3AwAgA0GIA2pBiLDAACkDADcDACADQYCwwAApAwA3A4ADAkAgA0HgAmogA0HAAmpBIBCuBUUEQEIDIRBC/////79/IQVCfiEMQv3////PACEODAELQv3////PACEOQn4hDEL/////v38hBUIDIRAgAykD+AIhBCADKQPgAiERIAMpA+gCIQggAykD8AIhFEJ/IQdCgYCAgHAhF0L/////DyESA0AgA0GAA2ogA0HAAmpBIBCuBUUEQCATIQ4gCyEMIAkhBSAPIRAMAgsgBKdBAXFFBEADQCAUQj+GIARCAYiEIQQCfiAQp0EBcUUEQCAOQj+GIAxCP4YhCiAFQj+GIBBCAYiEIRAgDkIBiCEOIAxCAYiEIQwgCiAFQgGIhAwBCyAOQv////8PfSIWIAwgBUKAgICAEHwiFVAgBUL/////D3wgBVRyrXwiBSAMVK18IgxCAYgiDUKAgICAgICAgIB/hCIK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IhEgAykDcHwiDSADQZgBaikDACAFIBRUrXx8Igh8IhAgAykDQHwiFUKBgICAcEIAEPwDAkACQCADQThqKQMAIANBKGopAwAgA0HIAGopAwAgECAVVq18IgYgAykDIHwiEyAGVK18IBMgCCANVK0gA0H4AGopAwAgDSARVK18fCIUIAMpA2B8IgkgCiARVq0iDSADKQPQAXwiESALIAxWrSADQagCaikDACALIA5UrXx8IgogA0H4AWopAwAgByAOVq18fCIOIAMpA6ABfCILIAQgD1StIANBuAFqKQMAIAwgD1atfHx8Igd8IgR8Ig8gECASVK0gBUIgiHx8Igh8IgYgE1StfCITIAMpAxB8IgUgCCAPVK0iEiADKQOAAXwiDCAEIBFUrSADQdgBaikDACANIBFWrXx8IhEgByALVK0gA0GoAWopAwAgCyAOVK18fCINIAogDlatfCIKfCIQIAMpA1B8Ig4gCSAPVq0gA0HoAGopAwAgCSAUVK18fHwiB3wiBHwiCyAGIBVCIIYiBnwiCSAGVK0gFUIgiHx8IgYgC1StIgggAykDMHwiDyAIVK18IA8gBCAMVK0gA0GIAWopAwAgDCASVK18fCIUIAcgDlStIANB2ABqKQMAIA4gEFStfHwiEiAQIBFUrSAKIA1UrXx8Ig18IhEgAykDAHwiByAFIAtWrSADQRhqKQMAIAUgE1StfHx8IgR8IgggD1StfCIKIAQgB1StIANBCGopAwAgByARVK18fCIHIBEgFFStIA0gElStfHwiBHwiBUKBgICAcFYgBSAKVK1CACAEIAdUrX1Scg0AIAVCgYCAgHBSBEAgCCEEIAYhEQwCCyAGQv////8PVg0AQgAhBCAIQgBSDQBC/////w8hESAGQv////8PVARAQoGAgIBwIQUgBiERDAILIAlCf1ENAEKBgICAcCEFDAELIAZC/////w99IgcgCUJ/Uq0iBH0hESAIIAZC/////w9UIAQgB1ZyrSIGfSEEIAUgBiAIVq19Qv////8PfCEFIAlCAXwhCQsgACAJNwMYIAAgETcDECAAIAQ3AwggACAFNwMAIANBoANqJAAPCyADQgI3A4ADQbCxwABBKyADQYADakHcscAAQeiywAAQ/QMAC70cAgZ/FH4jAEGQBWsiBCQAAkAgASgCDEUNACABKQMYIgsgA60iCoVC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ABCYBQALrRkCD38SfiMAQYAEayIDJAAgASgCBCIJQSBrIQcgCSABKAIIIgZBBXQiAWohCwJAAkACQANAIAFFDQEgASAHaiABQSBrIQFBwJfAAEEgEK4FRQ0ACyACKAIIIgRBBXQhASACKAIEIgxBIGshAgNAIAFFDQEgASACaiABQSBrIQFBwJfAAEEgEK4FRQ0AC0EIIQcgBCAGaiIGQQFrIggEQCAIQQV0IQEgCEH///8fSwRAQQAhAgwEC0G50cIALQAAGkEIIQIgAUEIEIsFIgdFDQMgByEBAkAgCEEBRg0AIAZBAmsiBUEHcSECIAZBA2tBB08EQCAFQXhxIQUDQCABQgA3AwAgAUEYakIANwMAIAFBEGpCADcDACABQQhqQgA3AwAgAUEgakIANwMAIAFBKGpCADcDACABQTBqQgA3AwAgAUE4akIANwMAIAFBQGtCADcDACABQcgAakIANwMAIAFB0ABqQgA3AwAgAUHYAGpCADcDACABQeAAakIANwMAIAFB6ABqQgA3AwAgAUHwAGpCADcDACABQfgAakIANwMAIAFBmAFqQgA3AwAgAUGQAWpCADcDACABQYgBakIANwMAIAFBgAFqQgA3AwAgAUG4AWpCADcDACABQbABakIANwMAIAFBqAFqQgA3AwAgAUGgAWpCADcDACABQcABakIANwMAIAFByAFqQgA3AwAgAUHQAWpCADcDACABQdgBakIANwMAIAFB4AFqQgA3AwAgAUHoAWpCADcDACABQfABakIANwMAIAFB+AFqQgA3AwAgAUGAAmohASAFQQhrIgUNAAsLIAJFDQADQCABQgA3AwAgAUEYakIANwMAIAFBEGpCADcDACABQQhqQgA3AwAgAUEgaiEBIAJBAWsiAg0ACwsgAUIANwMAIAFBGGpCADcDACABQRBqQgA3AwAgAUEIakIANwMACyAEQQV0IQ1BACEGIAchBANAIAYiAiAIIAIgCEsbIQ4gAkEBaiEGIAkiAUEgaiEJQQAhBQNAAkACQCACIA5HBEAgA0GYA2ogASkDGCITIAUgDGoiCkEYaikDACISQgAQ/AMgA0G4AmogASkDECIVIBJCABD8AyADQdgBaiABKQMIIhQgEkIAEPwDIANB+ABqIAEpAwAiFyASQgAQ/AMgA0GIA2ogAykDmAMiGUKblK/D8rWo3oZ/fiISQm1CABD8AyADQfgCaiASQn9CABD8AyADQegCaiASQv///////////wBCABD8AyADQagDaiAKQRBqKQMAIhIgE0IAEPwDIANByAJqIBIgFUIAEPwDIANB6AFqIBIgFEIAEPwDIANBiAFqIBIgF0IAEPwDIANBqAJqIAMpA/gCIhYgA0GgA2opAwAiGyADKQO4AnwiGnwiGCADQZADaikDACAZIAMpA4gDIhJ8IBJUrXx8IhkgAykDqAN8Ih1Cm5Svw/K1qN6Gf34iEkJtQgAQ/AMgA0GYAmogEkJ/QgAQ/AMgA0GIAmogEkL///////////8AQgAQ/AMgA0G4A2ogCkEIaikDACISIBNCABD8AyADQdgCaiASIBVCABD8AyADQfgBaiASIBRCABD8AyADQZgBaiASIBdCABD8AyADQcgBaiADQbADaikDACAZIB1WrXwiHiADKQPIAnwiHCAWIANBwAJqKQMAIBogG1StfCIfIAMpA9gBfCIbfCIaIBggGVatIANBgANqKQMAIiAgFiAYVq18fHwiIXwiFiADKQOYAiIifCIYIANBsAJqKQMAIAMpA6gCIhIgHXwgElStfHwiGSADKQO4A3wiHUKblK/D8rWo3oZ/fiISQm1CABD8AyADQbgBaiASQn9CABD8AyADQagBaiASQv///////////wBCABD8AyADQThqIAopAwAiEiATQgAQ/AMgA0HIAGogEiAVQgAQ/AMgA0HYAGogEiAUQgAQ/AMgA0HoAGogEiAXQgAQ/AMgA0EoaiADQcADaikDACAZIB1WrXwiIyADKQPYAnwiEyAiIANB4AFqKQMAIBsgH1StfCIfIAMpA3h8IhIgAykD6AJ8IhUgGiAhVq0gICAaIBtUrXx8fCIUIAMpA+gBfCIXIBYgHFStIANB0AJqKQMAIBwgHlStfHx8Ihx8IhsgGCAZVq0gA0GgAmopAwAiHiAWIBhWrXx8fCIgfCIWIAMpA7gBIiF8IhggA0HQAWopAwAgAykDyAEiGSAdfCAZVK18fCIZIAMpAzh8Ih1Cm5Svw/K1qN6Gf34iGkJtQgAQ/AMgA0EYaiAaQn9CABD8AyADQQhqIBpC////////////AEIAEPwDAkACQCADQRBqKQMAIANBsAFqKQMAIANBkAJqKQMAIBQgFVStIANB8AJqKQMAIBIgFVatfHwiGiADQYABaikDACASIB9UrXx8IhIgAykDiAF8IhUgFyAcVq0gA0HwAWopAwAgFCAXVq18fHwiFCADKQOIAnwiFyAUVK18IBcgFyAbICBWrSAeIBsgHFStfHx8IhdWrXwiHCAUIBVUrSADQZABaikDACASIBVWrXx8IhsgEiAaVK18Ihp8IhIgAykDmAF8IhUgA0GAAmopAwAgFyADKQP4AXwiFCAXVK18IBQgEyAWVq0gA0HgAmopAwAgEyAjVK18fHwiEyAUVK18fCIUIAMpA6gBfCIXIBRUrXwgFyADQcABaikDACIeIBMgEyAhfCITVq18IBMgGCAZVq0gHiAWIBhWrXx8fCIWIBNUrXx8IhMgF1StfCIeIBQgFVStIANBoAFqKQMAIBIgFVatfHwiHyASIBxUrSAaIBtUrXx8Ihx8IhIgAykDaHwiFSADQeAAaikDACATIBMgAykDWHwiE1atfCATIBMgA0HQAGopAwAgA0FAaykDACAZIB1WrXwiFyADKQNIfCIUIBdUrXwgFCAUIBZ8IhRWrXx8IhNWrXx8IhYgAykDCHwiGCAWVK18IBggA0EgaikDACIXIBMgEyADKQMYIhl8IhNWrXwgEyATIBcgFCAUIBl8IhRWrXwgFCADQTBqKQMAIAMpAygiFyAdfCAXVK18fCIXIBRUrXx8IhNWrXx8IhQgGFStfCIYIBUgFlatIANB8ABqKQMAIBIgFVatfHwiFSASIB5UrSAcIB9UrXx8IhJ8IhZCAFMgFiAYVK1CACASIBVUrX1Scg0AAkAgFkL///////////8AUQRAIBRCf1ENAUL///////////8AIRYLIBQhEiATIRUMAgtCfyESIBNCf1IEQEL///////////8AIRYgEyEVDAILIBdCbVoNAEL///////////8AIRZCfyEVDAELIBNCAXwiEiAXQm1UrSIYfSEVIBRCAXwiGSATQn9SIBIgGFRyrSITfSESIBYgFEJ/UiATIBlWcq19Qv///////////wB9IRYgF0ITfCEXCyAWIAQgBWoiCikDAHwiEyASIApBCGoiDykDAHwiFCASVCAUIBUgFSAKQRBqIhApAwB8IhVWIBUgFSAXIApBGGoiESkDAHwiEiAXVK18IhVWcq18IhggFFRyrXwhFAJAIBMgFlQgEyAUVnINAEL///////////8AIRYgFCITQv///////////wBRBEAgGEJ/Ug0DQn8hEyAVQn9SBEAgFSEXDAULQm0hFiASIRMgEkJtUQ0BCyATIBZaDQAgFCEWDAILIBVCAXwiEyASQm1UrSIWfSEXIBhCAXwiGSAVQn9SIBMgFlRyrSIVfSETIBQgGEJ/UiAVIBlWcq19Qv///////////wB9IRYgEkITfCESDAILIAIgCEHoncAAEJgEAAsgGCETIBUhFwsgCiAWNwMAIA8gEzcDACAQIBc3AwAgESASNwMAIAJBAWohAiANIAVBIGoiBUcNAAsgBEEgaiEEIAkgC0cNAAsgA0EAOgDcAyADIAc2AtQDIAMgByAIQQV0ajYC2AMgA0HIA2ogA0HUA2oQ5gIgAygC0AMiAkECTwRAIAJBAXYhBSADKALMAyIBIAJBBXRqQSBrIQIDQCABKQMAIRMgASACKQMANwMAIAFBGGoiCSkDACESIAkgAkEYaiIJKQMANwMAIAFBEGoiBCkDACEVIAQgAkEQaiIEKQMANwMAIAFBCGoiBikDACEUIAYgAkEIaiIGKQMANwMAIAIgEzcDACAJIBI3AwAgBCAVNwMAIAYgFDcDACACQSBrIQIgAUEgaiEBIAVBAWsiBQ0ACwsgACADKQLIAzcCACAAQQhqIANB0ANqKAIANgIAIAhFDQEgByAIQQV0EJQFDAELIAAQqAMLIANBgARqJAAPCyACIAEQgwUAC/kbAg9/EH4jAEHABGsiAyQAIAEoAgQiCUEgayEHIAkgASgCCCIGQQV0IgFqIQsCQAJAAkADQCABRQ0BIAEgB2ogAUEgayEBQcCXwABBIBCuBUUNAAsgAigCCCIEQQV0IQEgAigCBCIMQSBrIQIDQCABRQ0BIAEgAmogAUEgayEBQcCXwABBIBCuBUUNAAtBCCEHIAQgBmoiBkEBayIIBEAgCEEFdCEBIAhB////H0sEQEEAIQIMBAtBudHCAC0AABpBCCECIAFBCBCLBSIHRQ0DIAchAQJAIAhBAUYNACAGQQJrIgVBB3EhAiAGQQNrQQdPBEAgBUF4cSEFA0AgAUIANwMAIAFBGGpCADcDACABQRBqQgA3AwAgAUEIakIANwMAIAFBIGpCADcDACABQShqQgA3AwAgAUEwakIANwMAIAFBOGpCADcDACABQUBrQgA3AwAgAUHIAGpCADcDACABQdAAakIANwMAIAFB2ABqQgA3AwAgAUHgAGpCADcDACABQegAakIANwMAIAFB8ABqQgA3AwAgAUH4AGpCADcDACABQZgBakIANwMAIAFBkAFqQgA3AwAgAUGIAWpCADcDACABQYABakIANwMAIAFBuAFqQgA3AwAgAUGwAWpCADcDACABQagBakIANwMAIAFBoAFqQgA3AwAgAUHAAWpCADcDACABQcgBakIANwMAIAFB0AFqQgA3AwAgAUHYAWpCADcDACABQeABakIANwMAIAFB6AFqQgA3AwAgAUHwAWpCADcDACABQfgBakIANwMAIAFBgAJqIQEgBUEIayIFDQALCyACRQ0AA0AgAUIANwMAIAFBGGpCADcDACABQRBqQgA3AwAgAUEIakIANwMAIAFBIGohASACQQFrIgINAAsLIAFCADcDACABQRhqQgA3AwAgAUEQakIANwMAIAFBCGpCADcDAAsgBEEFdCENQQAhBiAHIQQDQCAGIgIgCCACIAhLGyEOIAJBAWohBiAJIgFBIGohCUEAIQUCQANAIAIgDkcEQCADQdgDaiABKQMYIhQgBSAMaiIKQRhqKQMAIhJCABD8AyADQegCaiABKQMQIhMgEkIAEPwDIANB+AFqIAEpAwgiFSASQgAQ/AMgA0GIAWogASkDACIXIBJCABD8AyADQcgDaiADKQPYAyIYQv////++sv3wQn4iEkKBgICAv7L98MMAQgAQ/AMgA0G4A2ogEkKR4eXNh4n6mShCABD8AyADQagDaiASQt2whYzotpGouH9CABD8AyADQZgDaiASQqnAxomuzpOyMEIAEPwDIANB6ANqIApBEGopAwAiEiAUQgAQ/AMgA0H4AmogEiATQgAQ/AMgA0GIAmogEiAVQgAQ/AMgA0GYAWogEiAXQgAQ/AMgA0HYAmogAykDuAMiGiADQeADaikDACIbIAMpA+gCfCIcfCIWIANB0ANqKQMAIBggAykDyAMiEnwgElStfHwiGCADKQPoA3wiGUL/////vrL98EJ+IhJCgYCAgL+y/fDDAEIAEPwDIANByAJqIBJCkeHlzYeJ+pkoQgAQ/AMgA0G4AmogEkLdsIWM6LaRqLh/QgAQ/AMgA0GoAmogEkKpwMaJrs6TsjBCABD8AyADQfgDaiAKQQhqKQMAIhIgFEIAEPwDIANBiANqIBIgE0IAEPwDIANBmAJqIBIgFUIAEPwDIANBqAFqIBIgF0IAEPwDIANB6AFqIANB8ANqKQMAIBggGVatfCIfIAMpA/gCfCIdIANB8AJqKQMAIBsgHFatfCIeIAMpA/gBfCIbIAMpA6gDfCIcIBYgGFatIANBwANqKQMAIBYgGlStfHx8IiB8IhYgAykDyAJ8IhggA0HgAmopAwAgAykD2AIiEiAZfCASVK18fCIZIAMpA/gDfCIaQv////++sv3wQn4iEkKBgICAv7L98MMAQgAQ/AMgA0HYAWogEkKR4eXNh4n6mShCABD8AyADQcgBaiASQt2whYzotpGouH9CABD8AyADQbgBaiASQqnAxomuzpOyMEIAEPwDIANByABqIAopAwAiEiAUQgAQ/AMgA0HYAGogEiATQgAQ/AMgA0HoAGogEiAVQgAQ/AMgA0H4AGogEiAXQgAQ/AMgA0E4aiADQYAEaikDACAZIBpWrXwiISADKQOIA3wiEiADQYACaikDACAbIB5UrXwiHiADKQOIAXwiEyADKQOYA3wiFSAcICBWrSADQbADaikDACAbIBxWrXx8fCIXIAMpA4gCfCIbIBYgHVStIANBgANqKQMAIB0gH1StfHx8Ih0gAykDuAJ8IhwgGCAZVq0gA0HQAmopAwAgFiAYVq18fHwiH3wiFiADKQPYAXwiGCADQfABaikDACADKQPoASIUIBp8IBRUrXx8IhkgAykDSHwiGkL/////vrL98EJ+IhRCgYCAgL+y/fDDAEIAEPwDIANBKGogFEKR4eXNh4n6mShCABD8AyADQRhqIBRC3bCFjOi2kai4f0IAEPwDIANBCGogFEKpwMaJrs6TsjBCABD8AwJAAkAgA0EQaikDACADQcABaikDACADQbACaikDACAVIBdWrSADQaADaikDACATIBVWrXx8IANBkAFqKQMAIBMgHlStfHwiHiADKQOYAXwiFCAbIB1WrSADQZACaikDACAXIBtWrXx8fCITIAMpA6gCfCIVIBNUrXwgFSAVIBwgH1atIANBwAJqKQMAIBwgHVStfHx8IhVWrXwgEyAUVK0gA0GgAWopAwAgFCAeVK18fHwiFyADKQOoAXwiFCADQaACaikDACAVIAMpA5gCfCITIBVUrXwgEyASIBZWrSADQZADaikDACASICFUrXx8fCIS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QgA3AwAgAUHgAGpCADcDACABQegAakIANwMAIAFB8ABqQgA3AwAgAUH4AGpCADcDACABQZgBakIANwMAIAFBkAFqQgA3AwAgAUGIAWpCADcDACABQYABakIANwMAIAFBuAFqQgA3AwAgAUGwAWpCADcDACABQagBakIANwMAIAFBoAFqQgA3AwAgAUHAAWpCADcDACABQcgBakIANwMAIAFB0AFqQgA3AwAgAUHYAWpCADcDACABQeABakIANwMAIAFB6AFqQgA3AwAgAUHwAWpCADcDACABQfgBakIANwMAIAFBgAJqIQEgBUEIayIFDQALCyACRQ0AA0AgAUIANwMAIAFBGGpCADcDACABQRBqQgA3AwAgAUEIakIANwMAIAFBIGohASACQQFrIgINAAsLIAFCADcDACABQRhqQgA3AwAgAUEQakIANwMAIAFBCGpCADcDAAsgBEEFdCENQQAhBiAHIQQDQCAGIgIgCCACIAhLGyEOIAJBAWohBiAJIgFBIGohCUEAIQUCQANAIAIgDkcEQCADQdgDaiABKQMYIhQgBSAMaiIKQRhqKQMAIhJCABD8AyADQegCaiABKQMQIhMgEkIAEPwDIANB+AFqIAEpAwgiFSASQgAQ/AMgA0GIAWogASkDACIXIBJCABD8AyADQcgDaiADKQPYAyIYQonHmaSu8IHph39+IhJCx/rzw+2Co5A8QgAQ/AMgA0G4A2ogEkKNlcfDltLawJd/QgAQ/AMgA0GoA2ogEkLdsIWM6LaRqLh/QgAQ/AMgA0GYA2ogEkKpwMaJrs6TsjBCABD8AyADQegDaiAKQRBqKQMAIhIgFEIAEPwDIANB+AJqIBIgE0IAEPwDIANBiAJqIBIgFUIAEPwDIANBmAFqIBIgF0IAEPwDIANB2AJqIAMpA7gDIhogA0HgA2opAwAiGyADKQPoAnwiHHwiFiADQdADaikDACAYIAMpA8gDIhJ8IBJUrXx8IhggAykD6AN8IhlCiceZpK7wgemHf34iEkLH+vPD7YKjkDxCABD8AyADQcgCaiASQo2Vx8OW0trAl39CABD8AyADQbgCaiASQt2whYzotpGouH9CABD8AyADQagCaiASQqnAxomuzpOyMEIAEPwDIANB+ANqIApBCGopAwAiEiAUQgAQ/AMgA0GIA2ogEiATQgAQ/AMgA0GYAmog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IAEoAggiBkECTwRAIAZBAWsiB0EFdCEJIAdB////H0sEQAwFC0G50cIALQAAGkEIIQMgCUEIEIsFIghFDQQgCCEDAkAgB0EBRg0AIAZBAmsiBUEHcSEEIAZBA2tBB08EQCAFQXhxIQUDQCADQgA3AwAgA0EYakIANwMAIANBEGpCADcDACADQQhqQgA3AwAgA0EgakIANwMAIANBKGpCADcDACADQTBqQgA3AwAgA0E4akIANwMAIANBQGtCADcDACADQcgAakIANwMAIANB0ABqQgA3AwAgA0HYAGpCADcDACADQeAAakIANwMAIANB6ABqQgA3AwAgA0HwAGpCADcDACADQfgAakIANwMAIANBmAFqQgA3AwAgA0GQAWpCADcDACADQYgBakIANwMAIANBgAFqQgA3AwAgA0G4AWpCADcDACADQbABakIANwMAIANBqAFqQgA3AwAgA0GgAWpCADcDACADQcABakIANwMAIANByAFqQgA3AwAgA0HQAWpCADcDACADQdgBakIANwMAIANB4AFqQgA3AwAgA0HoAWpCADcDACADQfABakIANwMAIANB+AFqQgA3AwAgA0GAAmohAyAFQQhrIgUNAAsLIARFDQADQCADQgA3AwAgA0EYakIANwMAIANBEGpCADcDACADQQhqQgA3AwAgA0EgaiEDIARBAWsiBA0ACwsgA0IANwMAIANBGGpCADcDACADQRBqQgA3AwAgA0EIakIANwMAIAEoAgQiAyAGQQV0aiEGQQAhAUEBIQVBACEEA0ACQCABQQFxBEAgAyAGRw0BDAULIAYgA2tBBXYgBU0NBCAEIAVqIQQgAyAFQQV0aiEDCyACQfgCaiAErSINQgN+IgpCgYCAgHBCABD8AyACQagDaiANQv////+/f0IAEPwDIAJB6AJqIAIpA6gDIgwgDUKAgICAMH58Ig5CgYCAgHBCABD8AyACQZgDaiANQn5CABD8AyACQcgCaiAOQiCGIgsgAkGwA2opAwAgDCAOVq18IApCIIh8fCIMIAIpA5gDfCIKQoGAgIBwQgAQ/AMgAkGIA2ogDUL9////zwBCABD8AyACQdgCaiAKQiCGIg8gAkGgA2opAwAgCiAMVK18IhAgCyAMVq0gDkIgiHwiCyACKQP4AnwiEXwiEnwiDiACKQOIA3wiDUKBgICAcEIAEPwD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p8KHuH83A7gFIAJC5fHh0cWMhqqnfzcDsAUgAkKqmdmK5dzjo65/NwOoBSACQvK19tfrgqDtIzcDoAUgAkGgBGogAkGABWogAkGgBWoiAxCYASACQYgEaiACQcgEaikDADcDACACQZAEaiACQdAEaikDADcDACACQZgEaiACQdgEaikDADcDACACIAIpA8AENwOABCADIAFBQGsiASABEMoCIAAgAkGABGogAxDFAyACQaAGaiQADwsgAiAENgKoBSACIAM2AqQFIAIgBTYCoAVBhKbBAEErIAJBoAVqQdCtwQBBoK7BABD9AwALrBcCAX8mfiMAQYAGayIDJAAgA0HABWogAikDACIEIAEpAwAiBUIAEPwDIANBgAVqIAIpAwgiByAFQgAQ/AMgA0HABGogAikDECIIIAVCABD8AyADQYAEaiACKQMYIgkgBUIAEPwDIANBwANqIAIpAyAiBSABKQMgIgZCABD8AyADQcACaiACQShqKQMAIg0gBkIAEPwDIANBwAFqIAJBMGopAwAiDiAGQgAQ/AMgA0FAayACQThqKQMAIg8gBkIAEPwDIANBsANqIAMpA8ADIgsgAykDwAV8IgpCiceZpK7wgemHf34iBkLH+vPD7YKjkDxCABD8AyADQaADaiAGQo2Vx8OW0trAl39CABD8AyADQZADaiAGQt2whYzotpGouH9CABD8AyADQYADaiAGQqnAxomuzpOyMEIAEPwDIANB0AVqIAQgASkDCCIGQgAQ/AMgA0GQBWogByAGQgAQ/AMgA0HQBGogCCAGQgAQ/AMgA0GQBGogCSAGQgAQ/AMgA0HQA2ogBSABQShqKQMAIgZCABD8AyADQdACaiANIAZCABD8AyADQdABaiAOIAZCABD8AyADQdAAaiAPIAZCABD8AyADQbACaiADKQPQAyIQIAMpA9AFIhEgAykDoAMiFCADKQPAAiISIAMpA4AFIhMgA0HIBWopAwB8IhV8IgwgA0HIA2opAwAgCiALVK18fCIWfCILIANBuANqKQMAIAMpA7ADIgYgCnwgBlStfHwiF3wiGHwiCkKJx5mkrvCB6Yd/fiIGQsf688PtgqOQPEIAEPwDIANBoAJqIAZCjZXHw5bS2sCXf0IAEPwDIANBkAJqIAZC3bCFjOi2kai4f0IAEPwDIANBgAJqIAZCqcDGia7Ok7Iw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AyAHWg0AIAYhByAEIQMMAQsgBELz6ri86a2lv+gAfCIJIAVCx/rzw+2Co5A8VK0iB30hAyAGQqPP+vOXye7XxwB8IgsgBEKNlcfDltLawJd/VCAHIAlWcq0iBH0hByAKIAZC3bCFjOi2kai4f1QgBCALVnKtfUKpwMaJrs6TsjB9IQogBULH+vPD7YKjkDx9IQULIAAgAikDwAQ3AwAgACAKNwMgIABBOGogBTcDACAAQTBqIAM3AwAgAEEoaiAHNwMAIABBGGogAkHYBGopAwA3AwAgAEEQaiACQdAEaikDADcDACAAQQhqIAJByARqKQMANwMAIAJBoAVqJAALlRsCDH8WfiMAQeAFayICJAAgAkGIBWogAUEIaikDADcDACACQZAFaiABQRBqKQMANwMAIAJBmAVqIAFBGGopAwA3AwAgAkGgBWogAUEgaikDADcDACACQagFaiABQShqKQMANwMAIAJBuAVqIAFBOGopAwA3AwAgAkHABWogAUFAaykDADcDACACQcgFaiABQcgAaikDADcDACACQdAFaiABQdAAaikDADcDACACQdgFaiABQdgAaikDADcDACACIAEpAwA3A4AFIAIgASkDMDcDsAUgAkGgBGoiBiACQYAFahC6BCACKAKkBCEEIAIoAqAEIQUCQAJAAkAgAigCqAQiA0ECRgRAIAQoAgQhByAEKAIAIQggBiAEQQhqQdgAEK0FGiAFBEAgBCAFQTBsEJQFCyACQeABaiIGIAJBqARqKQMANwMAIAJB6AFqIgkgAkGwBGopAwA3AwAgAkHwAWoiCiACQbgEaikDADcDACACQfgBaiILIAJBwARqKQMANwMAIAJBiAJqIgwgAkHQBGopAwA3AwAgAkGQAmoiDSACQdgEaikDADcDACACQZgCaiIEIAJB4ARqKQMANwMAIAJBoAJqIgUgAkHoBGopAwA3AwAgAkGoAmoiAyACQfAEaikDADcDACACIAc2AtQBIAIgCDYC0AEgAiACKQOgBDcD2AEgAiACKQPIBDcDgAJCms3/y6O9xIAaIRggAikD2AEiGyAMKQMAIiF8IhQgG1QgFCAGKQMAIhwgDSkDACIifCIRIBxUIBEgCSkDACIdIAQpAwAiFnwiECAdVCAQIAopAwAiHiAFKQMAIh98Ig8gHlQgDyALKQMAIiAgAykDACIafCIO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NwMAIAUgESkDADcDACAJIBIpAwA3AwAgAiAKKQMANwMAIAYgBCkDyAI3AwAgBkEwayEGIAFBMGohASADQQFrIgMNAAsLIAAgBCkC6AE3AgAgAEEIaiAEQfABaigCADYCACALBEAgDSALQTBsEJQFCyAEQYADaiQADwtBoK/BABCYBQALyxoCD38QfiMAQaACayIDJAAgASgCBCIIQTBrIQQgCCABKAIIIgVBMGwiAWohEAJAAkADQCABRQ0BIAEgBGogAUEwayEBQeCYwABBMBCuBUUNAAsgAigCBCIJQTBrIQQgCSACKAIIIgJBMGwiAWohCwNAIAFFDQEgASAEaiABQTBrIQFB4JjAAEEwEK4FRQ0AC0EIIQYCQCACIAVqIgJBAWsiBwRAQQAhBCAHQTBsIgFBAEggB0Gq1aoVS3INAUG50cIALQAAGkEIIQQgAUEIEIsFIgZFDQEgBiEBAkAgB0EBRg0AIAJBAmsiBUEHcSEEIAJBA2tBB08EQCAFQXhxIQIDQCABQgA3AwAgAUEoakIANwMAIAFBIGpCADcDACABQRhqQgA3AwAgAUEQakIANwMAIAFBCGpCADcDACABQTBqQgA3AwAgAUE4akIANwMAIAFBQGtCADcDACABQcgAakIANwMAIAFB0ABqQgA3AwAgAUHYAGpCADcDACABQeAAakIANwMAIAFB6ABqQgA3AwAgAUHwAGpCADcDACABQfgAakIANwMAIAFBgAFqQgA3AwAgAUGIAWpCADcDACABQbgBakIANwMAIAFBsAFqQgA3AwAgAUGoAWpCADcDACABQaABakIANwMAIAFBmAFqQgA3AwAgAUGQAWpCADcDACABQcABakIANwMAIAFByAFqQgA3AwAgAUHQAWpCADcDACABQdgBakIANwMAIAFB4AFqQgA3AwAgAUHoAWpCADcDACABQfABakIANwMAIAFB+AFqQgA3AwAgAUGAAmpCADcDACABQYgCakIANwMAIAFBkAJqQgA3AwAgAUGYAmpCADcDACABQcgCakIANwMAIAFBwAJqQgA3AwAgAUG4AmpCADcDACABQbACakIANwMAIAFBqAJqQgA3AwAgAUGgAmpCADcDACABQfgCakIANwMAIAFB8AJqQgA3AwAgAUHoAmpCADcDACABQeACakIANwMAIAFB2AJqQgA3AwAgAUHQAmpCADcDACABQYADaiEBIAJBCGsiAg0ACwsgBEUNAANAIAFCADcDACABQShqQgA3AwAgAUEgakIANwMAIAFBGGpCADcDACABQRBqQgA3AwAgAUEIakIANwMAIAFBMGohASAEQQFrIgQNAAsLIAFCADcDACABQShqQgA3AwAgAUEgakIANwMAIAFBGGpCADcDACABQRBqQgA3AwAgAUEIakIANwMACwNAIA8iDUEBaiEPIAgiBUEwaiEIIAcgDSAHIA1LGyAMaiERQQAhAiAJIQQDQCACIA1qIQoCQAJAAkACQAJAAkACQCACIBFHBEAgAkEBaiECIARBMGohDiAFKQMAIRsgBSkDCCEcIAUpAxAhHSAFKQMYIR4gBSkDICEfIAUpAyghIEIAIRhBKCEBQgAhFUIAIRJCACEXQgAhE0IAIRYDQCADQfgAaiABIARqKQMAIhQgIEIAEPwDIANBiAFqIBQgH0IAEPwDIANBmAFqIBQgHkIAEPwDIANBqAFqIBQgHUIAEPwDIANBuAFqIBQgHEIAEPwDIANByAFqIBQgG0IAEPwDIANB6ABqIAMpA3giGSAWfCIaQgBC/f/z/8////mJfxD8AyADQdgAaiADQfAAaikDACIUQqvV/v///7//uX9CABD8AyADQcgAaiAUQv//z4rr///VHkIAEPwDIANBOGogFEKk7MO1j9S0mOcAQgAQ/AMgA0EoaiAUQr+llJzP8NK75ABCABD8AyADQRhqIBRC19mumuT26Y3LAEIAEPwDIANBCGogFEKazf/Lo73EgBpCABD8AyADQRBqKQMAIAMpA8gBIiEgGHwiFCADQcABaikDACADKQO4ASIWIBV8IhUgFlStfCAVIBUgA0GwAWopAwAgAykDqAEiFiASfCISIBZUrXwgEiASIANBoAFqKQMAIAMpA5gBIhYgF3wiFyAWVK18IBcgA0GQAWopAwAgAykDiAEiFiATfCITIBZUrXwgEyADQYABaikDACAZIBpWrXx8IhYgE1StfHwiEyAXVK18fCISVq18fCIVVq18fCIZIAMpAwh8IhggGVStfCAYIANBIGopAwAgFSAVIAMpAxh8IhVWrXwgFSADQTBqKQMAIBIgEiADKQMofCISVq18IBIgA0FAaykDACATIBMgAykDOHwiE1atfCATIBMgA0HQAGopAwAgFiADKQNIIhZ8IhcgFlStfCAXIANB4ABqKQMAIBogAykDWCIafCAaVK18fCIWIBdUrXx8IhNWrXx8IhcgElStfHwiEiAVVK18fCIVIBhUrXwgFCAZVq0gA0HQAWopAwAgFCAhVK18fHwhGCABQQhrIgFBeEcNAAsgBiAKQTBsaiEBIBhCms3/y6O9xIAaVg0GIBhCms3/y6O9xIAaUQ0BDAILIAogB0HoncAAEJgEAAsgFULX2a6a5PbpjcsAVg0EIBVC19mumuT26Y3LAFIEQEKazf/Lo73EgBohGAwBCyASQr+llJzP8NK75ABWDQRC19mumuT26Y3LACEbIBJCv6WUnM/w0rvkAFIEQEKazf/Lo73EgBohGAwCCyAXQqTsw7WP1LSY5wBWDQRCv6WUnM/w0rvkACEZIBdCpOzDtY/UtJjnAFIEQEKazf/Lo73EgBohGAwDCyATQv//z4rr///VHlYNBEKk7MO1j9S0mOcAIRogE0L//8+K6///1R5RDQNCms3/y6O9xIAaIRggEyEUDAULIBUhGwsgEiEZCyAXIRogEyEUDAILQv//z4rr///VHiEUIBZCqtX+////v/+5f1YNAEKazf/Lo73EgBohGAwBCyATQv//z4rr///VHn0iGiAWQqvV/v///7//uX9UrSIZfSEUIBdCpOzDtY/UtJjnAH0iGyATQv//z4rr///VHlQgGSAaVnKtIhN9IRogEkK/pZScz/DSu+QAfSIcIBdCpOzDtY/UtJjnAFQgEyAbVnKtIhN9IRkgFULX2a6a5PbpjcsAfSIXIBJCv6WUnM/w0rvkAFQgEyAcVnKtIhJ9IRsgGCAVQtfZrprk9umNywBUIBIgF1ZyrX1Cms3/y6O9xIAafSEYIBZC1aqBgICAwIDGAHwhFgtCms3/y6O9xIAaIRMgASkDACAYfCAbIAEpAwh8IhIgG1QgEiAZIBkgASkDEHwiGVYgGSAZIBogGiABKQMYfCIaViAaIBQgFCABKQMgfCIUViAUIBYgASkDKHwiGCAWVK18IhUgFFRyrXwiFyAaVHKtfCIZVnKtfCIWIBJUcq18IhshEgJAAkACQCAbQprN/8ujvcSAGlINAELX2a6a5PbpjcsAIRMgFiISQtfZrprk9umNywBSDQBCv6WUnM/w0rvkACETIBkiEkK/pZScz/DSu+QAUg0AQqTsw7WP1LSY5wAhEyAXIhJCpOzDtY/UtJjnAFINAEL//8+K6///1R4hEyAVIhJC///Piuv//9UeUg0AQqvV/v///7//uX8hEyAYIhJCq9X+////v/+5f1ENAQsgEiATWg0AIBYhEiAZIRQgFyETIBUhGgwBCyAVQv//z4rr///VHn0iEiAYQqvV/v///7//uX9UrSITfSEaIBdCpOzDtY/UtJjnAH0iFCAVQv//z4rr///VHlQgEiATVHKtIhJ9IRMgGUK/pZScz/DSu+QAfSIVIBdCpOzDtY/UtJjnAFQgEiAUVnKtIhJ9IRQgFkLX2a6a5PbpjcsAfSIXIBlCv6WUnM/w0rvkAFQgEiAVVnKtIhV9IRIgGyAWQtfZrprk9umNywBUIBUgF1ZyrX1Cms3/y6O9xIAafSEbIBhC1aqBgICAwIDGAHwhGAsgASAYNwMoIAEgGjcDICABIBM3AxggASAUNwMQIAEgEjcDCCABIBs3AwAgDiIEIAtHDQALIAxBAWshDCAIIBBHDQALIANBADoA7AEgAyAGNgLkASADIAYgB0EwbGo2AugBIANB2AFqIANB5AFqEMACIAMoAuABIgRBAk8EQCAEQQF2IQIgAygC3AEiASAEQTBsakEwayEEA0AgASkDACESIAEgBCkDADcDACADQZgCaiIFIAFBKGoiCCkDADcDACADQZACaiINIAFBIGoiCSkDADcDACADQYgCaiIPIAFBGGoiDikDADcDACADQYACaiIMIAFBEGoiCikDADcDACADQfgBaiIQIAFBCGoiCykDADcDACAIIARBKGoiCCkDADcDACAJIARBIGoiCSkDADcDACAOIARBGGoiDikDADcDACAKIARBEGoiCikDADcDACALIARBCGoiCykDADcDACADIBI3A/ABIAggBSkDADcDACAJIA0pAwA3AwAgDiAPKQMANwMAIAogDCkDADcDACALIBApAwA3AwAgBCADKQPwATcDACAEQTBrIQQgAUEwaiEBIAJBAWsiAg0ACwsgACADKQLYATcCACAAQQhqIANB4AFqKAIANgIAIAdFDQIgBiAHQTBsEJQFDAILIAQgARCDBQALIAAQ7gILIANBoAJqJAAL5xgCF38BfiMAQZABayICJAACQAJAAkACQAJAAkACQCABKAIIIglFBEBBudHCAC0AABpBAUEBEIsFIgFFDQEg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IBZCAFINAUL/////DyETIBQiEkL/////D1INACAVQn9RDQFCACESQoGAgIBwIRcMAgsgEiATWg0AIBYhEiAUIRMMAQsgFEL/////D30iGCAVQn9SrSISfSETIBYgFEL/////D1QgEiAYVnKtIhR9IRIgF0L+////D0L/////DyAUIBZWG3whFyAVQgF8IRULIAsgFzcDACAQIBI3AwAgESATNwMAIAQgFTcDACACQQFqIQIgDiAIQSBqIghHDQALIAZBIGohBiAKIAxHDQALIANBADoA3AIgAyAHNgLUAiADIAcgCUEFdGo2AtgCIANByAJqIANB1AJqEOYCIAMoAtACIgJBAk8EQCACQQF2IQggAygCzAIiASACQQV0akEgayEEA0AgASkDACEWIAEgBCkDADcDACABQRhqIgIpAwAhFSACIARBGGoiBSkDADcDACABQRBqIgIpAwAhFCACIARBEGoiBikDADcDACABQQhqIgIpAwAhEiACIARBCGoiAikDADcDACAEIBY3AwAgBSAVNwMAIAYgFDcDACACIBI3AwAgBEEgayEEIAFBIGohASAIQQFrIggNAAsLIAAgAykCyAI3AgAgAEEIaiADQdACaigCADYCACAJRQ0BIAcgCUEFdBCUBQwBCyAAEKgDCyADQYADaiQADwsgBCABEIMFAAunDQIkfwl+QgIhLCMAQcAHayIDJAAgA0HIBGoiBSABQQhqKQMAIi03AwAgA0HQBGoiBiABQRBqKQMAIic3AwAgA0HgBGoiByABKQMgIig3AwAgA0HoBGoiCSABQShqKQMAIik3AwAgA0HwBGoiCiABQTBqKQMAIio3AwAgA0H4BGoiCyABQThqKQMAIis3AwAgA0HYBGoiBCABQRhqKQMAIiY3AwAgA0GIA2oiDiAtNwMAIANBkANqIg8gJzcDACADQZgDaiIQICY3AwAgA0GgA2oiCCAoNwMAIANBqANqIhEgKTcDACADQbADaiISICo3AwAgA0G4A2oiEyArNwMAIAMgASkDACImNwPABCADICY3A4ADIAUgAUHIAGopAwAiLTcDACAGIAFB0ABqKQMAIic3AwAgBCABQdgAaikDACIoNwMAIAcgAUHgAGopAwAiKTcDACAJIAFB6ABqKQMAIio3AwAgCiABQfAAaikDACIrNwMAIAsgAUH4AGopAwAiJjcDACADQfgDaiIUICY3AwAgA0HwA2oiFSArNwMAIANB6ANqIhYgKjcDACADQeADaiIXICk3AwAgA0HYA2oiGCAoNwMAIANB0ANqIhkgJzcDACADQcgDaiIaIC03AwAgAyABKQNAIiY3A8AEIAMgJjcDwAMgA0HYAWoiGyABQZgBaikDACIuNwMAIANB0AFqIhwgAUGQAWopAwAiLTcDACADQcgBaiIdIAFBiAFqKQMAIic3AwAgA0HgAWoiHiABQaABaikDACIoNwMAIANB6AFqIh8gAUGoAWopAwAiKTcDACADQfABaiIgIAFBsAFqKQMAIio3AwAgA0H4AWoiISABQbgBaikDACIrNwMAIAMgASkDgAEiJjcDwAEgCyArNwMAIAogKjcDACAJICk3AwAgByAoNwMAIAQgLjcDACAGIC03AwAgBSAnNwMAIAMgJjcDwAQgA0G4BGoiIiALKQMANwMAIANBsARqIiMgCikDADcDACADQagEaiIkIAkpAwA3AwAgA0GgBGoiCSAHKQMANwMAIANBmARqIgogBCkDADcDACADQZAEaiILIAYpAwA3AwAgA0GIBGoiBCAFKQMANwMAIAMgAykDwAQ3A4AEIAMgA0GAA2pBwAEQrQUhAgNAIAJBgANqIiUiASACIAIQjwIgAiABQcABEK0FGiAsQgKDICxCAYghLFANAAsgAkHgBmoiDCACKQMgIiY3AwAgCCAmNwMAIAJByAZqIg0gAkEIaikDACInNwMAIAJB0AZqIgUgAkEQaikDACIoNwMAIAJB6AZqIgYgAkEoaikDACIpNwMAIAJB8AZqIgcgAkEwaikDACIqNwMAIAJB+AZqIgggAkE4aikDACIrNwMAIAJB2AZqIgEgAkEYaikDACImNwMAIA4gJzcDACAPICg3AwAgECAmNwMAIBEgKTcDACASICo3AwAgEyArNwMAIAIgAikDACImNwPABiACICY3A4ADIA0gAkHIAGopAwA3AwAgBSACQdAAaikDADcDACABIAJB2ABqKQMANwMAIAwgAkHgAGopAwA3AwAgBiACQegAaikDADcDACAHIAJB8ABqKQMANwMAIAggAkH4AGopAwA3AwAgAiACKQNANwPABiAUIAgpAwA3AwAgFSAHKQMANwMAIBYgBikDADcDACAXIAwpAwA3AwAgGCABKQMANwMAIBkgBSkDADcDACAaIA0pAwA3AwAgAiACKQPABjcDwAMgGyACQZgBaikDACIuNwMAIBwgAkGQAWopAwAiLTcDACAdIAJBiAFqKQMAIic3AwAgAiACKQOAASIoNwPAASAeIAJBoAFqKQMAIik3AwAgHyACQagBaikDACIqNwMAICAgAkGwAWopAwAiKzcDACAhIAJBuAFqKQMAIiY3AwAgCCAmNwMAIAcgKzcDACAGICo3AwAgDCApNwMAIAEgLjcDACAFIC03AwAgDSAnNwMAIAIgKDcDwAYgIiAIKQMANwMAICMgBykDADcDACAkIAYpAwA3AwAgCSAMKQMANwMAIAogASkDADcDACALIAUpAwA3AwAgBCANKQMANwMAIAIgAikDwAY3A4AEIAJBwAFqICVBwAEQrQUaICxCAVIEQANAIAJBgANqIgQgAkHAAWoiASABEI8CIAEgBEHAARCtBRogLEICg1BFBEAgBCACIAEQjwIgAiAEQcABEK0FGgsgLEIEVCAsQgGIISxFDQALCyAAIAJBwAEQrQUaIANBwAdqJAAL6hgCHH4CfyMAQdACayIeJAAgASkDACEXIAEpAwghESABKQMQIRIgASkDGCETIAEpAyAhDiABKQMoIRRB2AAhHwNAIB5B4ABqIAEgH2opAwAiAyAUQgAQ/AMgHkHwAGogAyAOQgAQ/AMgHkGAAWogAyATQgAQ/AMgHkGQAWogAyASQgAQ/AMgHkGgAWogAyARQgAQ/AMgHkGwAWogAyAXQgAQ/AMgHkHQAGogHikDYCIHIA98IhBC/f/z/8////mJf34iA0Kr1f7///+//7l/QgAQ/AMgHkFAayADQv//z4rr///VHkIAEPwDIB5BMGogA0Kk7MO1j9S0mOcAQgAQ/AMgHkEgaiADQr+llJzP8NK75ABCABD8AyAeQRBqIANC19mumuT26Y3LAEIAEPwDIB4gA0Kazf/Lo73EgBpCABD8AyAeQQhqKQMAIB4pA7ABIgwgCXwiCiAeQagBaikDACAeKQOgASIDIAZ8IgggA1StfCAIIB5BmAFqKQMAIAIgHikDkAEiAnwiBiACVK18IAYgHkGIAWopAwAgBCAeKQOAASIEfCIDIARUrXwgAyAeQfgAaikDACAeKQNwIgQgBXwiAiAEVK18IAIgHkHoAGopAwAgByAQVq18fCIEIAJUrXx8IgUgA1StfHwiAyAGVK18fCICIAhUrXx8IgsgHikDAHwiCCALVK18IAggHkEYaikDACACIB4pAxB8IgcgAlStfCAHIB5BKGopAwAgAyAeKQMgfCIGIANUrXwgBiAeQThqKQMAIAUgHikDMHwiAyAFVK18IAMgHkHIAGopAwAgBCAeKQNAIgR8IgIgBFStfCACIB5B2ABqKQMAIB4pA1AiBCAQfCAEVK18fCIPIAJUrXx8IgUgA1StfHwiBCAGVK18fCICIAdUrXx8IgYgCFStfCAKIAtWrSAeQbgBaikDACAKIAxUrXx8fCEJIB9BCGsiH0EoRw0ACwJAAkAgCUKazf/Lo73EgBpWDQACQAJAAkACQCAJQprN/8ujvcSAGlINACAGQtfZrprk9umNywBWDQQgBkLX2a6a5PbpjcsAUgRAQprN/8ujvcSAGiEJDAELIAJCv6WUnM/w0rvkAFYNBELX2a6a5PbpjcsAIRggAkK/pZScz/DSu+QAUgRAQprN/8ujvcSAGiEJDAILIARCpOzDtY/UtJjnAFYNBEK/pZScz/DSu+QAIQsgBEKk7MO1j9S0mOcAUgRAQprN/8ujvcSAGiEJDAMLIAVC///Piuv//9UeVg0EQqTsw7WP1LSY5wAhGSAFQv//z4rr///VHlENA0Kazf/Lo73EgBohCSAFIQwMBQsgBiEYCyACIQsLIAQhGSAFIQwMAgtC///Piuv//9UeIQwgD0Kq1f7///+//7l/Vg0AQprN/8ujvcSAGiEJDAELIAVC///Piuv//9UefSIIIA9Cq9X+////v/+5f1StIgN9IQwgBEKk7MO1j9S0mOcAfSIHIAVC///Piuv//9UeVCADIAhWcq0iA30hGSACQr+llJzP8NK75AB9IgUgBEKk7MO1j9S0mOcAVCADIAdWcq0iBH0hCyAGQtfZrprk9umNywB9IgMgAkK/pZScz/DSu+QAVCAEIAVWcq0iBH0hGCAJIAZC19mumuT26Y3LAFQgAyAEVHKtfUKazf/Lo73EgBp9IQkgD0LVqoGAgIDAgMYAfCEPC0Kazf/Lo73EgBohDSARIAFBOGopAwAiGnwiCiARVCAKIBIgAUFAaykDACIbfCIFIBJUIAUgEyABQcgAaikDACIcfCIDIBNUIAMgDiABQdAAaikDACIVfCICIA5UIAIgFCABQdgAaikDACIWfCIEIBRUrXwiCCACVHKtfCIHIANUcq18IgYgBVRyrXwiBSAKVHKtIAEpAzAiHSAXfHwiAyECAkACQAJAIANCms3/y6O9xIAaUg0AQtfZrprk9umNywAhDSAFIgJC19mumuT26Y3LAFINAEK/pZScz/DSu+QAIQ0gBiICQr+llJzP8NK75ABSDQBCpOzDtY/UtJjnACENIAciAkKk7MO1j9S0mOcAUg0AQv//z4rr///VHiENIAgiAkL//8+K6///1R5SDQBCq9X+////v/+5fyENIAQiAkKr1f7///+//7l/UQ0BCyACIA1aDQAgBSECIAYhDSAHIRAgCCEKDAELIAhC///Piuv//9UefSIQIARCq9X+////v/+5f1StIgJ9IQogB0Kk7MO1j9S0mOcAfSINIAhC///Piuv//9UeVCACIBBWcq0iAn0hECAGQr+llJzP8NK75AB9IgggB0Kk7MO1j9S0mOcAVCACIA1Wcq0iAn0hDSAFQtfZrprk9umNywB9IgcgBkK/pZScz/DSu+QAVCACIAhWcq0iBn0hAiADIAVC19mumuT26Y3LAFQgBiAHVnKtfUKazf/Lo73EgBp9IQMgBELVqoGAgIDAgMYAfCEECyAeIAQ3A5gCIB4gCjcDkAIgHiAQNwOIAiAeIA03A4ACIB4gAjcD+AEgHiADNwPwASAeAn4CQAJAIBciBCAdIgNSDQAgESIEIBoiA1INACASIgQgGyIDUg0AIBMiBCAcIgNSDQAgDiIEIBUiA1INACAUIgQgFiIDUQ0BCyADIARUDQBCpOzDtY/UtJjnACAcIBN9IgYgFSAOfSIDIBQgFlatIgRUIA4gFVZyrSIFfSIIfSICIAMgBH0iBEL//8+K6///1R5WQv//z4rr///VHiAEfSIOIBYgFH0iFUKr1f7///+//7l/Vq0iFlRyrSIEfSEDQr+llJzP8NK75AAgGyASfSIHIAUgBlYgEyAcVnKtIgZ9IhB9IgUgAiAEVCAIQqTsw7WP1LSY5wBWcq0iAn0hBELX2a6a5PbpjcsAIBogEX0iCiAGIAdWIBIgG1ZyrSIIfSIHfSIGIAIgBVYgEEK/pZScz/DSu+QAVnKtIgJ9IQUgAiAGViAHQtfZrprk9umNywBWciEfIA4gFn0hByAIIApWIBEgGlZyrSAXIB19fEKazf/Lo73EgBp8IQZCq9X+////v/+5fyAVfQwBCyAOIBV9IgMgFCAWVK0iBH0hByATIBx9IgIgDiAVVCADIARUcq0iBH0hAyASIBt9IgUgEyAcVCACIARUcq0iAn0hBCARIBp9IgYgEiAbVCACIAVWcq0iAn0hBSARIBpUIAIgBlZyIR8gFyAdfSEGIBQgFn0LNwPIAiAeIAc3A8ACIB4gAzcDuAIgHiAENwOwAiAeIAU3A6gCIB4gBiAfrX03A6ACQprN/8ujvcSAGiEFIB5BwAFqIB5B8AFqIB5BoAJqENoBIAlCAYYgGCAYfCIKIBhUIAogCyALfCIDIAtUIAMgGSAZfCICIBlUIAIgDCAMfCIEIAxUIAQgDyAPfCIJIA9UrXwiCCAEVHKtfCIHIAJUcq18IgYgA1RyrXwiBCAKVHKthCIDIQICQAJAAkAgA0Kazf/Lo73EgBpSDQBC19mumuT26Y3LACEFIAQiAkLX2a6a5PbpjcsAUg0AQr+llJzP8NK75AAhBSAGIgJCv6WUnM/w0rvkAFINAEKk7MO1j9S0mOcAIQUgByICQqTsw7WP1LSY5wBSDQBC///Piuv//9UeIQUgCCICQv//z4rr///VHlINAEKr1f7///+//7l/IQUgCSICQqvV/v///7//uX9RDQELIAIgBVoNACAEIQIgBiELIAchBSAIIQwMAQsgCEL//8+K6///1R59IgUgCUKr1f7///+//7l/VK0iAn0hDCAHQqTsw7WP1LSY5wB9IgsgCEL//8+K6///1R5UIAIgBVZyrSICfSEFIAZCv6WUnM/w0rvkAH0iCCAHQqTsw7WP1LSY5wBUIAIgC1ZyrSICfSELIARC19mumuT26Y3LAH0iByAGQr+llJzP8NK75ABUIAIgCFZyrSIGfSECIAMgBELX2a6a5PbpjcsAVCAGIAdWcq19QprN/8ujvcSAGn0hAyAJQtWqgYCAgMCAxgB8IQkLIAAgHikDwAE3AwAgACADNwMwIABB2ABqIAk3AwAgAEHQAGogDDcDACAAQcgAaiAFNwMAIABBQGsgCzcDACAAQThqIAI3AwAgAEEoaiAeQegBaikDADcDACAAQSBqIB5B4AFqKQMANwMAIABBGGogHkHYAWopAwA3AwAgAEEQaiAeQdABaikDADcDACAAQQhqIB5ByAFqKQMANwMAIB5B0AJqJAALqhkCDn8KfiMAQcABayICJAAgAkE4aiABQThqKQMANwMAIAJBMGogAUEwaikDADcDACACQShqIAFBKGopAwA3AwAgAkEgaiIDIAFBIGopAwA3AwAgAkEYaiABQRhqKQMANwMAIAJBEGogAUEQaikDADcDACACQQhqIAFBCGopAwA3AwAgAiABKQMANwMAIAJBuAFqIgRB0P3AACkDADcDACACQbABaiIFQcj9wAApAwA3AwAgAkGoAWoiBkHA/cAAKQMANwMAIAJBuP3AACkDADcDoAEgAkGgAWpBoJbBAEEgEK4FBEAgAkL6gae5lNb1rCI3A7gBIAJCsaSgyPDI6PDRADcDsAEgAkLP/qqVh+2fhI1/NwOoASACQqrft5eRkdLh6AA3A6ABCyACQZgBaiAEKQMANwMAIAJBkAFqIAUpAwA3AwAgAkGIAWogBikDADcDACACIAIpA6ABNwOAAQJAQZj9wAAgAkGAAWpBIBCuBQRAIAJBuAFqIgQgAUEYaikDADcDACACQbABaiIFIAFBEGopAwA3AwAgAkGoAWoiBiABQQhqKQMANwMAIAIgASkDADcDoAEgAkGgAWogAxCuAyACQdgAaiAEKQMANwMAIAJB0ABqIAUpAwA3AwAgAkHIAGogBikDADcDACACIAIpA6ABNwNAIAJB+ABqIgEgA0EYaiIHKQMANwMAIAJB8ABqIgggA0EQaiIJKQMANwMAIAJB6ABqIgogA0EIaiILKQMANwMAIAIgAykDADcDYCAEIAJBGGoiDCkDADcDACAFIAJBEGoiDSkDADcDACAGIAJBCGoiDikDADcDACACIAIpAwA3A6ABIAJB4ABqQZCJwQBBIBCuBQRAIAJCx/rzw+2Co5A8IAIpA2AiEH03A2AgAkJ/QgAgEELH+vPD7YKjkDxWGyIQIAIpA2giEX0iEkLz6ri86a2lv+gAfSITNwNoIAJCf0IAIBIgE1atIBAgECARVK19fEJ/URsiECACKQNwIhF9IhJCo8/685fJ7tfHAH0iEzcDcCACQn9CACASIBNWrSAQIBAgEVStfXxCf1EbIAIpA3h9QqnAxomuzpOyMHw3A3gLIAJBoAFqIAJB4ABqIg8QrgMgASAEKQMANwMAIAggBSkDADcDACAKIAYpAwA3AwAgAkGIAWoiASAOKQMANwMAIAJBkAFqIgQgDSkDADcDACACQZgBaiIFIAwpAwA3AwAgAiACKQOgATcDYCACIAIpAwA3A4ABIAJBgAFqIAMQngEgAkFAayAPEJ4BIAcgBSkDADcDACAJIAQpAwA3AwAgCyABKQMANwMAIAMgAikDgAE3AwAgAiACKQMgIhBCAYYiETcDICACIAIpAygiE0IBhiAQQj+IhCISNwMoIAIgAikDMCIUQgGGIBNCP4iEIhA3AzAgAiACKQM4QgGGIBRCP4iEIhM3AzgCQCATQqnAxomuzpOyMFQNAAJAIBNCqcDGia7Ok7IwUg0AIBBC3bCFjOi2kai4f1QNASAQQt2whYzotpGouH9SDQAgEkKNlcfDltLawJd/VA0BIBFCxvrzw+2Co5A8Vg0AIBJCjZXHw5bS2sCXf1ENAQsgAiARQsf688PtgqOQPH03AyAgAkLy6ri86a2lv+gAQvPquLzpraW/6AAgEULH+vPD7YKjkDxUGyIRIBJ8IhI3AyggAiAQIBEgElitIhF9IhJCo8/685fJ7tfHAHwiFDcDMCACIBMgEiAUVq0gECARVK1RrX1CqcDGia7Ok7IwfTcDOAsgAkEYaiACQZgBaikDACIXNwMAIAJBEGogAkGQAWopAwAiGDcDACACQQhqIAJBiAFqKQMAIhY3AwAgAiACKQOAASIZNwMAIAIpAwAhEgJAIAJBkInBAEEgEK4FRQRAIAIpAxghECACKQMQIRUgAikDCCETDAELQn9CAEJ/QgBCf0IAIBJCx/rzw+2Co5A8VhsiECAQIAIpAwgiEVStfSAQIBF9IhBC8+q4vOmtpb/oAH0iEyAQVK18Qn9RGyIQIBAgAikDECIRVK19IBAgEX0iEEKjz/rzl8nu18cAfSIVIBBUrXxCf1EbIAIpAxh9QqnAxomuzpOyMHwhEELH+vPD7YKjkDwgEn0hEgsCQCAQIAIpA1ggEiACKQNAfCIUIBJUrSIRIAIpA0h8IhAgEVStIBAgE3wiESAQVK18IhIgAikDUHwiECASVK0gECAVfCISIBBUrXx8fCITQqnAxomuzpOyMFQEQCARIRAMAQsCQCATQqnAxomuzpOyMFINACASQt2whYzotpGouH9UBEBCqcDGia7Ok7IwIRMgESEQDAILIBJC3bCFjOi2kai4f1INAEKNlcfDltLawJd/IRAgEUKNlcfDltLawJd/VARAQqnAxomuzpOyMCETQt2whYzotpGouH8hEiARIRAMAgsgEUKNlcfDltLawJd/UiAUQsb688PtgqOQPFZyDQBCqcDGia7Ok7IwIRNC3bCFjOi2kai4fyESDAELIBNCos/685fJ7tfHAEKjz/rzl8nu18cAIBFC8uq4vOmtpb/oAELz6ri86a2lv+gAIBRCx/rzw+2Co5A8VBt8IhAgEVobIhEgEnwiEiARWq19QqnAxomuzpOyMH0hEyAUQsf688PtgqOQPH0hFAsgAiAUIBl8IhE3AwAgAiAWIBEgFFStIhZ8IhQgEHwiEDcDCCACIBIgGHwiFSAUIBZUrSAQIBRUrXx8IhQ3AxAgAiATIBd8IBIgFVatIBQgFVStfHwiEjcDGCASQqnAxomuzpOyMFQNAQJAIBJCqcDGia7Ok7IwUg0AIBRC3bCFjOi2kai4f1QNAiAUQt2whYzotpGouH9SDQAgEEKNlcfDltLawJd/VA0CIBFCxvrzw+2Co5A8Vg0AIBBCjZXHw5bS2sCXf1ENAgsgAiARQsf688PtgqOQPH03AwAgAiAQQvLquLzpraW/6ABC8+q4vOmtpb/oACARQsf688PtgqOQPFQbfCIRNwMIIAJCos/685fJ7tfHAEKjz/rzl8nu18cAIBAgEVgbIhAgFHwiETcDECACIBIgECARWK19QqnAxomuzpOyMH03AxgMAQsgAkG4AWogAUEYaikDADcDACACQbABaiABQRBqKQMANwMAIAJBqAFqIAFBCGopAwA3AwAgAiABKQMANwOgASACQaABaiADEK4DIAIgAikDACIQIAIpAyB8IhE3AwAgAiAQIBFWrSIUIAIpAyh8IhIgAikDCHwiEDcDCCACIAIpAxAiFSACKQMwfCITIBIgFFStIBAgElStfHwiEjcDECACIAIpAxggAikDOHwgEyAVVK0gEiATVK18fCITNwMYAkAgE0KpwMaJrs6TsjBUDQACQCATQqnAxomuzpOyMFINACASQt2whYzotpGouH9UDQEgEkLdsIWM6LaRqLh/Ug0AIBBCjZXHw5bS2sCXf1QNASARQsb688PtgqOQPFYNACAQQo2Vx8OW0trAl39RDQELIAIgEULH+vPD7YKjkDx9NwMAIAIgEELy6ri86a2lv+gAQvPquLzpraW/6AAgEULH+vPD7YKjkDxUG3wiETcDCCACQqLP+vOXye7XxwBCo8/685fJ7tfHACAQIBFYGyIQIBJ8IhE3AxAgAiATIBAgEVitfUKpwMaJrs6TsjB9NwMYCyACIAJBoAFqEJ4BIAIgAikDICIQQgGGIhE3AyAgAiACKQMoIhNCAYYgEEI/iIQiEjcDKCACIAIpAzAiFEIBhiATQj+IhCIQNwMwIAIgAikDOEIBhiAUQj+IhCITNwM4AkAgE0KpwMaJrs6TsjBUDQACQCATQqnAxomuzpOyMFINACAQQt2whYzotpGouH9UDQEgEELdsIWM6LaRqLh/Ug0AIBJCjZXHw5bS2sCXf1QNASARQsb688PtgqOQPFYNACASQo2Vx8OW0trAl39RDQELIAIgEULH+vPD7YKjkDx9NwMgIAJC8uq4vOmtpb/oAELz6ri86a2lv+gAIBFCx/rzw+2Co5A8VBsiESASfCISNwMoIAIgECARIBJYrSIRfSISQqPP+vOXye7XxwB8IhQ3AzAgAiATIBIgFFatIBAgEVStUa19QqnAxomuzpOyMH03AzgLIAMgARCeAQsgACACKQMANwMAIABBOGogAkE4aikDADcDACAAQTBqIAJBMGopAwA3AwAgAEEoaiACQShqKQMANwMAIABBIGogAkEgaikDADcDACAAQRhqIAJBGGopAwA3AwAgAEEQaiACQRBqKQMANwMAIABBCGogAkEIaikDADcDACACQcABaiQAC/cWAgp/G34jAEHQAWsiAyQAIANBBGogARCSAkG50cIALQAAGgJAAkACQAJAAkACQAJAAkACQAJAQYADQQgQiwUiBARAAkACQAJAIAMoAgwiBQ4CAAECC0EAQQBB8OLBABCYBAALQQFBAUGA48EAEJgEAAsCfiADKAIIIgJBIGpB+NzBAEEgEK4FBEBCjZXHw5bS2sCXfyACQTBqKQMAIhJ9IgwgAkE4aikDACITQsf688PtgqOQPFatIhl9IRpC3bCFjOi2kai4fyACQShqKQMAIhR9Ig0gDCAZVCASQo2Vx8OW0trAl39Wcq0iDH0hEkLH+vPD7YKjkDwgE30hE0KpwMaJrs6TsjAgAikDICAMIA1WIBRC3bCFjOi2kai4f1ZyrXx9DAELIAJBOGopAwAhEyACQTBqKQMAIRogAkEoaikDACESIAIpAyALIQwgBUECTQ0BIANBKGogAkHYAGopAwA3AwAgA0EgaiACQdAAaikDADcDACADQRhqIAJByABqKQMANwMAIAMgAikDQDcDECAFQQNGDQICfiACQeAAakH43MEAQSAQrgUEQEKNlcfDltLawJd/IAJB8ABqKQMAIhR9Ig0gAkH4AGopAwAiG0LH+vPD7YKjkDxWrSIcfSEZQt2whYzotpGouH8gAkHoAGopAwAiFX0iDiANIBxUIBRCjZXHw5bS2sCXf1ZyrSINfSEUQsf688PtgqOQPCAbfSEbQqnAxomuzpOyMCACKQNgIA0gDlYgFULdsIWM6LaRqLh/VnKtfH0MAQsgAkH4AGopAwAhGyACQfAAaikDACEZIAJB6ABqKQMAIRQgAikDYAshDSAFQQRNDQMgA0HIAGogAkGYAWopAwA3AwAgA0FAayACQZABaikDADcDACADQThqIAJBiAFqKQMANwMAIAMgAikDgAE3AzAgBUEFRg0EAn4gAkGgAWpB+NzBAEEgEK4FBEBCjZXHw5bS2sCXfyACQbABaikDACIVfSIOIAJBuAFqKQMAIh1Cx/rzw+2Co5A8Vq0iHn0hHELdsIWM6LaRqLh/IAJBqAFqKQMAIhZ9Ig8gDiAeVCAVQo2Vx8OW0trAl39Wcq0iDn0hFULH+vPD7YKjkDwgHX0hHUKpwMaJrs6TsjAgAikDoAEgDiAPViAWQt2whYzotpGouH9Wcq18fQwBCyACQbgBaikDACEdIAJBsAFqKQMAIRwgAkGoAWopAwAhFSACKQOgAQshDiAFQQZNDQUgA0HoAGogAkHYAWopAwA3AwAgA0HgAGogAkHQAWopAwA3AwAgA0HYAGogAkHIAWopAwA3AwAgAyACKQPAATcDUCAFQQdGDQYCfiACQeABakH43MEAQSAQrgUEQEKNlcfDltLawJd/IAJB8AFqKQMAIhZ9Ig8gAkH4AWopAwAiH0LH+vPD7YKjkDxWrSIgfSEeQt2whYzotpGouH8gAkHoAWopAwAiF30iECAPICBUIBZCjZXHw5bS2sCXf1ZyrSIPfSEWQsf688PtgqOQPCAffSEfQqnAxomuzpOyMCACKQPgASAPIBBWIBdC3bCFjOi2kai4f1ZyrXx9DAELIAJB+AFqKQMAIR8gAkHwAWopAwAhHiACQegBaikDACEWIAIpA+ABCyEPIAVBCE0NByADQYgBaiACQZgCaikDADcDACADQYABaiACQZACaikDADcDACADQfgAaiACQYgCaikDADcDACADIAIpA4ACNwNwIAVBCUYNCAJ+IAJBoAJqQfjcwQBBIBCuBQRAQo2Vx8OW0trAl38gAkGwAmopAwAiF30iECACQbgCaikDACIhQsf688PtgqOQPFatIiJ9ISBC3bCFjOi2kai4fyACQagCaikDACIYfSIRIBAgIlQgF0KNlcfDltLawJd/VnKtIhB9IRdCx/rzw+2Co5A8ICF9ISFCqcDGia7Ok7IwIAIpA6ACIBAgEVYgGELdsIWM6LaRqLh/VnKtfH0MAQsgAkG4AmopAwAhISACQbACaikDACEgIAJBqAJqKQMAIRcgAikDoAILIRAgBUEKTQ0JIANBqAFqIAJB2AJqKQMANwMAIANBoAFqIAJB0AJqKQMANwMAIANBmAFqIAJByAJqKQMANwMAIAMgAikDwAI3A5ABIAVBC0YNCgJ+IAJB4AJqQfjcwQBBIBCuBQRAQo2Vx8OW0trAl38gAkHwAmopAwAiGH0iESACQfgCaikDACIjQsf688PtgqOQPFatIiR9ISJC3bCFjOi2kai4fyACQegCaikDACIlfSImIBEgJFQgGEKNlcfDltLawJd/VnKtIhF9IRhCx/rzw+2Co5A8ICN9ISNCqcDGia7Ok7IwIAIpA+ACIBEgJlYgJULdsIWM6LaRqLh/VnKtfH0MAQsgAkH4AmopAwAhIyACQfACaikDACEiIAJB6AJqKQMAIRggAikD4AILIREgAkEIaikDACEkIAJBEGopAwAhJSACKQMAISYgBEEYaiACQRhqKQMANwMAIARBEGogJTcDACAEQQhqICQ3AwAgBCAmNwMAIARBOGogEzcDACAEQTBqIBo3AwAgBEEoaiASNwMAIAQgDDcDICAEIAMpAxA3A0AgBEHIAGogA0EYaikDADcDACAEQdAAaiADQSBqKQMANwMAIARB2ABqIANBKGopAwA3AwAgBEH4AGogGzcDACAEQfAAaiAZNwMAIARB6ABqIBQ3AwAgBCANNwNgIAQgDjcDoAEgBEGoAWogFTcDACAEQbABaiAcNwMAIARBuAFqIB03AwAgBEGYAWogA0HIAGopAwA3AwAgBEGQAWogA0FAaykDADcDACAEQYgBaiADQThqKQMANwMAIAQgAykDMDcDgAEgBCADKQNQ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LQAFIQQgAyABLQAFOgAFIAMtAAYhBiADIAEtAAY6AAYgAy0AByEKIAMgAS0ABzoAByADLQAEIQwgAyABLQAEOgAEIAEgBDoABSABIAY6AAYgASAKOgAHIAEgDDoABCADLQAJIQQgAyABLQAJOgAJIAMtAAohBiADIAEtAAo6AAogAy0ACyEKIAMgAS0ACzoACyADLQAIIQwgAyABLQAIOgAIIAEgBDoACSABIAY6AAogASAKOgALIAEgDDoACAwBCwsgCyAKQRl2IgE6AAAgCSACQQhrIAhxaiABOgAADAELIAtB/wE6AAAgCSACQQhrIAhxakH/AToAACABQQhqIANBCGooAAA2AAAgASADKQAANwAACyACQQFqIQEgAiAIRw0ACwsgACAHIA5rNgIICyANQSBqJAALsgsCEH8CfkICIRIjAEGACWsiAiQAIAJB6AZqIAFBCGopAwA3AwAgAkHwBmogAUEQaikDADcDACACQfgGaiABQRhqKQMANwMAIAJBgAdqIAFBIGopAwA3AwAgAkGIB2ogAUEoaikDADcDACACQZgHaiABQThqKQMANwMAIAJBoAdqIAFBQGspAwA3AwAgAkGoB2ogAUHIAGopAwA3AwAgAkGwB2ogAUHQAGopAwA3AwAgAkG4B2ogAUHYAGopAwA3AwAgAiABKQMANwPgBiACIAEpAzA3A5AHIAJBwARqIgUgAkHgBmoiA0HgABCtBRogAkHIAmoiBCABQYgBaikDADcDACACQcACaiIGIAFBgAFqKQMANwMAIAJBuAJqIgcgAUH4AGopAwA3AwAgAkGwAmoiCCABQfAAaikDADcDACACQagCaiIJIAFB6ABqKQMANwMAIAJB2AJqIgogAUGYAWopAwA3AwAgAkHgAmoiCyABQaABaikDADcDACACQegCaiIMIAFBqAFqKQMANwMAIAJB8AJqIg0gAUGwAWopAwA3AwAgAkH4AmoiDiABQbgBaikDADcDACACIAEpA2A3A6ACIAIgAUGQAWopAwA3A9ACIAMgAkGgAmoiD0HgABCtBRogAkGgBWogA0HgABCtBSAEIAFB6AFqKQMANwMAIAYgAUHgAWopAwA3AwAgByABQdgBaikDADcDACAIIAFB0AFqKQMANwMAIAkgAUHIAWopAwA3AwAgCiABQfgBaikDADcDACALIAFBgAJqKQMANwMAIAwgAUGIAmopAwA3AwAgDSABQZACaikDADcDACAOIAFBmAJqKQMANwMAIAIgASkDwAE3A6ACIAIgAUHwAWopAwA3A9ACIAMgD0HgABCtBRogAkGABmogA0HgABCtBSEPIAIgBUGgAhCtBSEBA0AgAUHABGoiBSIDIAEgARD4AiABIANBoAIQrQUaIBJCAoMgEkIBiCESUA0ACyABQagIaiABQQhqKQMANwMAIAFBsAhqIAFBEGopAwA3AwAgAUG4CGogAUEYaikDADcDACABQcAIaiABQSBqKQMANwMAIAFByAhqIAFBKGopAwA3AwAgAUHYCGogAUE4aikDADcDACABQeAIaiABQUBrKQMANwMAIAFB6AhqIAFByABqKQMANwMAIAFB8AhqIAFB0ABqKQMANwMAIAFB+AhqIAFB2ABqKQMANwMAIAEgASkDADcDoAggASABKQMwNwPQCCAFIAFBoAhqIgNB4AAQrQUaIAQgAUGIAWopAwA3AwAgBiABQYABaikDADcDACAHIAFB+ABqKQMANwMAIAggAUHwAGopAwA3AwAgCSABQegAaikDADcDACAKIAFBmAFqKQMANwMAIAsgAUGgAWopAwA3AwAgDCABQagBaikDADcDACANIAFBsAFqKQMANwMAIA4gAUG4AWopAwA3AwAgASABKQNgNwOgAiABIAFBkAFqKQMANwPQAiADIAFBoAJqIhBB4AAQrQUaIANB4AAQrQUaIAQgAUHoAWopAwA3AwAgBiABQeABaikDADcDACAHIAFB2AFqKQMANwMAIAggAUHQAWopAwA3AwAgCSABQcgBaikDADcDACAKIAFB+AFqKQMANwMAIAsgAUGAAmopAwA3AwAgDCABQYgCaikDADcDACANIAFBkAJqKQMANwMAIA4gAUGYAmopAwA3AwAgASABKQPAATcDoAIgASABQfABaikDADcD0AIgAyAQQeAAEK0FGiAPIANB4AAQrQUaIBAgBUGgAhCtBRogEkIBUgRAA0AgAUHABGoiAyABQaACaiIEIAQQ+AIgBCADQaACEK0FGiASQgKDUEUEQCADIAEgBBD4AiABIANBoAIQrQUaCyASQgRUIBJCAYghEkUNAAsLIAAgAUGgAhCtBRogAkGACWokAAutFAIBfxZ+IwBBgANrIgMkACABKQMAIQ4gASkD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KQMAIAcgC1StfHx8IgsgAikDsAF8IgcgAyAOVK0gAkHIAWopAwAgCSAOVq18fHwiBHwiDiACQegAaikDACADIAIpA2AiA3wgA1StfHwiAzcDACAAIA0gEFatIAJBCGopAwAgBSANVq18fCIFIAIpA+ACfCINIAggClStIAJB+AJqKQMAIAogEFStfHx8IgogAikDgAJ8IgkgCyAMVK0gAkGYAmopAwAgCCAMVq18fHwiCCACKQOgAXwiDCAEIAdUrSACQbgBaikDACAHIAtUrXx8fCILIAIpA0B8IgcgAyAOVK0gAkHYAGopAwAgBiAOVq18fHwiAzcDCCAAIAogDVStIAJB6AJqKQMAIAUgDVatfHwiBSACKQPwAXwiBCAIIAlUrSACQYgCaikDACAJIApUrXx8fCIJIAIpA5ABfCIGIAsgDFStIAJBqAFqKQMAIAggDFatfHx8IgggAikDMHwiDCADIAdUrSACQcgAaikDACAHIAtUrXx8fCIDNwMQIAAgBCAJVq0gAkH4AWopAwAgBCAFVK18fCIFIAIpA4ABfCIEIAYgCFatIAJBmAFqKQMAIAYgCVStfHx8IgkgAikDIHwiBiADIAxUrSACQThqKQMAIAggDFatfHx8IgM3AxggACAEIAlWrSACQYgBaikDACAEIAVUrXx8IgUgAikDEHwiBCADIAZUrSACQShqKQMAIAYgCVStfHx8IgM3AyAgACADIARUrSACQRhqKQMAIAQgBVStfHw3AyggAkHABGokAAv8EAIBfxB+IwBBwARrIgMkACADQcACaiABKQMYIgUgAikDGCIEQgAQ/AMgA0HQAmogASkDECIGIARCABD8AyADQeACaiABKQMIIgcgBEIAEPwDIANB8AJqIAEpAwAiCCAEQgAQ/AMgA0GwAmogAykDwAIiCkIAQonHmaSu8IHph38Q/AMgA0GgAmogA0G4AmopAwAiBELH+vPD7YKjkDxCABD8AyADQZACaiAEQo2Vx8OW0trAl39CABD8AyADQbABaiAEQt2whYzotpGouH9CABD8AyADQdAAaiAEQqnAxomuzpOyMEIAEPwDIANBgANqIAIpAxAiBCAFQgAQ/AMgA0GwA2ogBCAGQgAQ/AMgA0HgA2ogBCAHQgAQ/AMgA0GQBGogBCAIQgAQ/AMgA0GAAmogAykDkAIiDCADQcgC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BCAIaiIFIAQgC2oiCSkDADcDACAFQRhqIAlBGGopAwA3AwAgBUEQaiAJQRBqKQMANwMAIAVBCGogCUEIaikDADcDACAEQSBqIQQgAkEBayICDQALCyADIAY2AiAgAyAINgIcIAMgBjYCGCABKAIQIQkCQCABKAIUIgFFBEBBCCEIDAELIAFBBXQhBiABQf///x9LBEBBACECDAYLQQAhBEG50cIALQAAGkEIIQIgBkEIEIsFIghFDQUgAUEFdCELIAEhBgNAIAQgC0YNASAEIAhqIgIgBCAJaiIFKQMANwMAIAJBGGogBUEYaikDADcDACACQRBqIAVBEGopAwA3AwAgAkEIaiAFQQhqKQMANwMAIARBIGohBCAGQQFrIgYNAAsLIAMgATYCMCADIAg2AiwgAyABNgIoAkAgCkEDSQ0AIANBxABqIgIgB0EYaiADQShqEHcgA0E4aiADQQhqIAIQlQIgA0EQaiIIIANBQGsiBSgCADYCACADIAMpAjg3AwggB0EkaiIEIAcgCkEMbCICakYNACACQSRrIQJBAyEGA0ACQCAGQQFxRQRAIANBxABqIgcgBCADQShqEHcgA0E4aiADQQhqIAcQlQIgCCAFKAIANgIAIAMgAykCODcDCAwBCyADQcQAaiIHIAQgA0EoaiIKEHcgA0E4aiADQRhqIAcQlQIgA0EgaiAFKAIANgIAIAMgAykCODcDGCAHIAogChB3IAMoAigiBwRAIAMoAiwgB0EFdBCUBQsgA0EwaiADQcwAaigCADYCACADIAMpAkQ3AygLIARBDGohBCAGQQFqIQYgAkEMayICDQALC0G50cIALQAAGgJAQRhBBBCLBSICBEAgAiADKQMINwIAIAIgAykDGDcCDCAAQQI2AgggACACNgIEIABBAjYCAEEIIQggAkEIaiADQRBqKAIANgIAIAJBFGogA0EgaigCADYCAAJAIAFFDQAgAUEFdCEGIAFB////H0sEQEEAIQIMAwtBACEEQbnRwgAtAAAaQQghAiAGQQgQiwUiCEUNAiABQQV0IQcgASEGA0AgBCAHRg0BIAQgCGoiAiAEIAlqIgUpAwA3AwAgAkEYaiAFQRhqKQMANwMAIAJBEGogBUEQaikDADcDACACQQhqIAVBCGopAwA3AwAgBEEgaiEEIAZBAWsiBg0ACwsgACABNgIUIAAg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oAJqIARChYHundXn4KSMf0IAEPwDIANB4AJqIAdChYHundXn4KSMf0IAEPwDIANBoANqIAZChYHundXn4KSMf0IAEPwDIANB4ANqIAhChYHundXn4KSMf0IAEPwDIANBgAFqIANBmAJqKQMAIAogC1atfCIRIAMpA9ACfCIPIANByAJqKQMAIA0gDlatfCIQIAMpA4ADfCINIAMpA5ABfCIOIAkgClatIANB6AFqKQMAIAkgDFStfHx8IhJ8IgkgAykDwAF8IgogA0HYAWopAwAgAykD0AEiBSALfCAFVK18fCILIAMpA6ACfCIMQv////++sv3wQn4iBUKBgICAv7L98MMAQgAQ/AMgA0HwAGogBUKR4eXNh4n6mShCABD8AyADQeAAaiAFQt2whYzotpGouH9CABD8AyADQdAAaiAFQqnAxomuzpOyMEIAEPwDIANBsAJqIARCpYm5+peWtIsCQgAQ/AMgA0HwAmogB0Klibn6l5a0iwJCABD8AyADQbADaiAGQqWJufqXlrSLAkIAEPwDIANB8ANqIAhCpYm5+peWtIsCQgAQ/AMgA0EwaiADQagCaikDACALIAxWrXwiEyADKQPgAnwiByADQYgDaikDACANIBBUrXwiECADKQPAA3wiBiADKQNAfCIIIA4gElatIANBmAFqKQMAIA0gDlatfHx8IgUgAykDkAN8Ig0gCSAPVK0gA0HYAmopAwAgDyARVK18fHwiDyADKQOwAXwiDiAKIAtWrSADQcgBaikDACAJIApWrXx8fCIRfCIJIAMpA3B8IgogA0GIAWopAwAgAykDgAEiBCAMfCAEVK18fCILIAMpA7ACfCIMQv////++sv3wQn4iBEKBgICAv7L98MMAQgAQ/AMgA0EgaiAEQpHh5c2HifqZKEIAEPwDIANBEGogBELdsIWM6LaRqLh/QgAQ/AMgAyAEQqnAxomuzpOyMEIAEPwDAkACQCADQQhqKQMAIANB6ANqKQMAIANB2ANqKQMAIANByANqKQMAIAYgEFStfCIQIAMpA9ADfCIEIBBUrXwgBCAEIAUgCFStIANByABqKQMAIAYgCFatfHx8IgRWrXwgBCAEIA0gD1atIANBmANqKQMAIAUgDVatfHx8IgRWrXwiCCADKQPgA3wiBiAIVK18IAYgBiADQagBaikDACAEIAQgAykDoAF8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AwA3AwAgG0HAHWogIykDADcDACAbQcgdaiAcKQMANwMAIBsgGykDsBE3A9AcIBsgGykDkBI3A5AdIBtBiB5qICcpAwA3AwAgG0GAHmogJikDADcDACAbQfgdaiAlKQMANwMAIBtB8B1qIAIpAwA3AwAgG0HoHWogLCkDADcDACAbQeAdaiAkKQMANwMAIBtB2B1qICEpAwA3AwAgGyAbKQPwEjcD0B0gG0HQAWoiIyAbQZAPakHAARCtBRogG0GQA2ogP0HAARCtBRojAEGQImsiASQAIAFBwBlqIhlBqPDAAEHMABCoAQJAAkACQCABKQPAGVAEQCABQdgWaiICIAFB4BlqIhopAwA3AwAgAUHQFmoiHiABQdgZaiIdKQMANwMAIAFByBZqIh8gAUHQGWoiHCkDADcDACABIAEpA8gZNwPAFiAZQfTwwABBzQAQqAEgASkDwBlQBEAgAUGwH2oiICABKQPIGTcDACABQcgfaiIiIBopAwA3AwAgAUHAH2oiISAdKQMANwMAIAFBuB9qIiQgHCkDADcDACABQZgfaiIsIB8pAwA3AwAgAUGgH2oiHyAeKQMANwMAIAFBqB9qIh4gAikDADcDACABIAEpA8AWNwOQH0EAIQIgGUEAQYABEK8FGiABQfgaaiAiKQMANwMAIAFB8BpqICEpAwA3AwAgAUHoGmogJCkDADcDACABQeAaaiAgKQMANwMAIAFB2BpqIB4pAwA3AwAgAUHQGmogHykDADcDACABQcgaaiAsKQMANwMAIAEgASkDkB83A8AaIAEgGUHAARCtBSIZQcABakEAQcABEK8FGiAZQYADaiAjQYADEK0FGiAZQYgMakGw58AAKQMANwMAIBlBkAxqQbjnwAApAwA3AwAgGUGYDGpBwOfAACkDADcDACAZQaAMakHI58AAKQMANwMAIBlBqAxqQdDnwAApAwA3AwAgGUGwDGpB2OfAACkDADcDACAZQbgMakHg58AAKQMANwMAIBlBqOfAACkDADcDgAwgGUHADGpBAEGAARCvBRogGUHAB2pBAEHAARCvBRogGUGABmogGUGADGpBwAEQrQUaIBlB+BlqQdCFwQApAwA3AwAgGUHwGWpByIXBACkDADcDACAZQegZakHAhcEAKQMANwMAIBpBuIXBACkDADcDACAdQbCFwQApAwA3AwAgHEGohcEAKQMANwMAIBlByBlqQaCFwQApAwA3AwAgGUGYhcEAKQMANwPAGSAZQYAaakEAQYABEK8FGiAZQdAgakEAQcABEK8FGiAZQZAfaiAZQcAZaiIBQcABEK0FGiABQejnwABBgAMQrQUaIBlBADoAyBxBgBghAQNAAkAgAQRAIBkgAUEBayIBNgLAHCAZQcAZaiABQQN2Qfj///8BcWopAwBCASABQT9xrYaDQgBSIhogAnJFDQIgGUGQH2oQISAaRQ0BIBlBgANqEDkMAQsgGUHAFmoiASAZQZAfakGAAxCtBRogGUGAG2pBAEHAARCvBSECIBlBwBlqIhogGUGADGpBwAEQrQUaAkAgASAaEI4EBEAgGUGAGGogAhCOBA0BCyAZQcAZaiIBIBlBgAMQrQUaIBlBgANqIAEQTiABIBlBgAMQrQUaIBlBgAZqIAEQTkEAIQIgGUH4GWpB0IXBACkDADcDACAZQfAZakHIhcEAKQMANwMAIBlB6BlqQcCFwQApAwA3AwAgGUHgGWpBuIXBACkDADcDACAZQdgZakGwhcEAKQMANwMAIBlB0BlqQaiFwQApAwA3AwAgGUHIGWpBoIXBACkDADcDACAZQZiFwQApAwA3A8AZIBlBgBpqQQBBgAEQrwUaIBlB0CBqQQBBwAEQrwUaIBlBkB9qIAFBwAEQrQUaIAFB6OfAAEGAAxCtBRogGUEAOgDIHEGAGCEBA0ACQCABBEAgGSABQQFrIgE2AsAcIBlBwBlqIAFBA3ZB+P///wFxaikDAEIBIAFBP3GthoNCAFIiGiACckUNAiAZQZAfahAhIBpFDQEgGUGAA2oQOQwBCyAZQcAWaiIBIBlBkB9qQYADEK0FGiAZQYAbakEAQcABEK8FIQIgGUHAGWoiGiAZQYAMakHAARCtBRogASAaEI4EBEAgGUGAGGogAhCOBA0DCyAZQcAZaiIBIBlBgAMQrQUaIBlBgANqIAEQTiABIBlBgAMQrQUaIBlBgAZqIAEQTgwCC0EBIQIgAUEBakGCGEkNAAsMBQtBACECIBlB+BlqQdCFwQApAwA3AwAgGUHwGWpByIXBACkDADcDACAZQegZakHAhcEAKQMANwMAIBlB4BlqQbiFwQApAwA3AwAgGUHYGWpBsIXBACkDADcDACAZQdAZakGohcEAKQMANwMAIBlByBlqQaCFwQApAwA3AwAgGUGYhcEAKQMANwPAGSAZQYAaakEAQYABEK8FGiAZQdAgakEAQcABEK8FGiAZQZAfaiAZQcAZaiIBQcABEK0FGiABQejqwABBwAUQrQUaIBlBADoAiB9BgCwhAQNAAkAgAQRAIBkgAUEBayIBNgKAHyAZQcAZaiABQQN2Qfj///8BcWopAwBCASABQT9xrYaDQgBSIhogAnJFDQIgGUGQH2oQISAaRQ0BIBlBgANqEDkMAQsgGUGAA2oiAiAZQZAfaiJAQYADEK0FGiAZQYAJaiIBIAJBgAMQrQUaIBlBwBlqISwjAEHgEmsiAiQAAkACQAJAAkACQAJAIAEQngQEQCABQcABahCeBA0BCyACIAFBwAFqIkEQJCACQcABaiACQcABEK0FGiACQeAPaiABECQgAkGIAmoiGikDACEDIBogAkHIAWoiGikDADcDACACQZACaiIdKQMAIQQgHSACQdABaiIdKQMANwMAIAJBmAJqIhwpAwAhBiAcIAJB2AFqIhwpAwA3AwAgAkGgAmoiIykDACEFICMgAkHgAWoiIykDADcDACACQagCaiIeKQMAIQcgHiACQegBaiIeKQMANwMAIAJBsAJqIh8pAwAhDiAfIAJB8AFqIh8pAwA3AwAgAkG4AmoiICkDACERICAgAkH4AWoiICkDADcDACACQbgDaiARNwMAIAJBsANqIA43AwAgAkGoA2ogBzcDACACQaADaiAFNwMAIAJBmANqIAY3AwAgAkGQA2ogBDcDACACQYgDaiADNwMAIAIpA4ACIQMgAiACKQPAATcDgAIgAiADNwOAAyAgIAJB+AJqKQMAIgk3AwAgHyACQfACaikDACIFNwMAIB4gAkHoAmopAwAiBjcDACAjIAJB4AJqIiMpAwAiBzcDACAcIAJB2AJqKQMAIg83AwAgHSACQdACaikDACIONwMAIBogAkHIAmopAwAiAzcDACACIAIpA8ACIhE3A8ABIA5CAYYgA0I/iIQhBCADQgGGIBFCP4iEIQMgEUIBhiEIAkAgD0IBhiAOQj+IhCISQqnAxomuzpOyMFQEQCAEIREMAQsCQCASQqnAxomuzpOyMFINACAEQt2whYzotpGouH9UBEBCqcDGia7Ok7IwIRIgBCERDAILIARC3bCFjOi2kai4f1INAELdsIWM6LaRqLh/IREg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ACACIBopAwA3A6APIAIgHCkDADcDwA8gAkGYEGogKikDADcDACACQZAQaiAuKQMANwMAIAJBiBBqICspAwA3AwAgAiACKQPgCTcDgBAgNyAzKQMANwMAIDYgMCkDADcDACA1IC8pAwA3AwAgAiACKQPACTcD4A8gAkHgDmogAkGgD2ogAkHgD2oQeiAtICopAwA3AwAgKSAuKQMANwMAICggKykDADcDACAlIDMpAwA3AwAgJiAwKQMANwMAICcgLykDADcDACACIAIpA+AJNwOAAyACIAIpA8AJNwOgAyACQYAPaiIaIAJBoA5qIAJBgANqEHogHiACQZgPaikDADcDACAfIAJBkA9qKQMANwMAICAgAkGID2opAwA3AwAgHCAaKQMANwMAICIgAkH4DmopAwA3AwAgISACQfAOaikDADcDACAkIAJB6A5qKQMANwMAIAIgAikD4A43A8AKIB4pAwAhCSAfKQMAIQ8gICkDACENIBwpAwAhDCAiKQMAIQcgISkDACEOICQpAwAhESACKQPACiELIB4gHUE4aikDADcDACAfIB1BMGopAwA3AwAgICAdQShqKQMANwMAIBwgHUEgaikDADcDACAiIB1BGGoiGikDADcDACAhIB1BEGoiIikDADcDACAkIB1BCGoiISkDADcDACACIB0pAwA3A8AKIDggGikDADcDACA5ICIpAwA3AwAgOiAhKQMANwMAIAIgHSkDADcDoA4gOyAgKQMANwMAIDwgHykDADcDACA9IB4pAwA3AwAgAiAcKQMANwPADiAcQZCJwQBBIBCuBQRAIAJCx/rzw+2Co5A8IAIpA+AKIgN9NwPgCiACQn9CACADQsf688PtgqOQPFYbIgMgAikD6AoiBH0iBkLz6ri86a2lv+gAfSIFNwPoCiACQn9CACAFIAZUrSADIAMgBFStfXxCf1EbIgMgAikD8AoiBH0iBkKjz/rzl8nu18cAfSIFNwPwCiACQn9CACAFIAZUrSADIAMgBFStfXxCf1EbIAIpA/gKfUKpwMaJrs6TsjB8NwP4CgsgAkG4D2ogHUEYaikDADcDACACQbAPaiAdQRBqKQMANwMAIAJBqA9qIB1BCGopAwA3AwAgAkHID2ogHEEIaikDADcDACACQdAPaiAcQRBqKQMANwMAIAJB2A9qIBxBGGopAwA3AwAgAiAdKQMANwOgDyACIBwpAwA3A8APIAJBmBBqIAJBuApqIhopAwA3AwAgAkGQEGogAkGwCmoiHSkDADcDACACQYgQaiACQagKaiIcKQMANwMAIAIgAikDoAo3A4AQIAJB6A9qIAJByAZqIh4pAwA3AwAgAkHwD2ogAkHQBmoiHykDADcDACACQfgPaiACQdgGaiIgKQMANwMAIAIgAikDwAY3A+APIAJB4A5qIAJBoA9qIAJB4A9qEHogAkGYA2ogGikDADcDACACQZADaiAdKQMANwMAIAJBiANqIBwpAwA3AwAgAkGoA2ogHikDADcDACACQbADaiAfKQMANwMAIAJBuANqICApAwA3AwAgAiACKQOgCjcDgAMgAiACKQPABjcDoAMgAkGAD2oiGiACQaAOaiACQYADahB6IAJB+ApqIh0gAkGYD2opAwA3AwAgAkHwCmoiHCACQZAPaikDADcDACACQegKaiIeIAJBiA9qKQMANwMAIAJB4ApqIh8gGikDADcDACACQdgKaiIaIAJB+A5qKQMANwMAIAJB0ApqIiAgAkHwDmopAwA3AwAgAkHICmoiIiACQegOaikDADcDACACIAIpA+AONwPACiAdKQMAIRMgHCkDACEEIB4pAwAhBiAfKQMAIQUCQCAaKQMAIAd8ICApAwAiAyAOfCIHIANUrSAHICIpAwAiAyARfCIOIANUrSAOIA4gAikDwAoiAyALfCIQIANUrXwiA1atfHwiEiAHVK18fCIRQqnAxomuzpOyMFQEQCADIQ4MAQsCQCARQqnAxomuzpOyMFINACASQt2whYzotpGouH9UBEBCqcDGia7Ok7IwIREgAyEODAILIBJC3bCFjOi2kai4f1INAEKNlcfDltLawJd/IQ4gA0KNlcfDltLawJd/VARAQqnAxomuzpOyMCERQt2whYzotpGouH8hEiADIQ4MAgsgA0KNlcfDltLawJd/UiAQQsb688PtgqOQPFZyDQBCqcDGia7Ok7IwIRFC3bCFjOi2kai4fyESDAELIBFCos/685fJ7tfHAEKjz/rzl8nu18cAIANC8uq4vOmtpb/oAELz6ri86a2lv+gAIBBCx/rzw+2Co5A8VBt8Ig4gA1obIgMgEnwiEiADWq19QqnAxomuzpOyMH0hESAQQsf688PtgqOQPH0hEAsCQCAJIBN8IAQgD3wiAyAEVK0gAyAGIAYgDXwiB1atIAcgByAFIAx8IgogBVStfCIEVq18fCIIIANUrXx8IgZCqcDGia7Ok7IwVARAIAQhAwwBCwJAIAZCqcDGia7Ok7IwUg0AIAhC3bCFjOi2kai4f1QEQEKpwMaJrs6TsjAhBiAEIQMMAgsgCELdsIWM6LaRqLh/Ug0AQo2Vx8OW0trAl38hAyAEQo2Vx8OW0trAl39UBEBCqcDGia7Ok7IwIQZC3bCFjOi2kai4fyEIIAQhAwwCCyAEQo2Vx8OW0trAl39SIApCxvrzw+2Co5A8VnINAEKpwMaJrs6TsjAhBkLdsIWM6LaRqLh/IQgMAQsgBkKiz/rzl8nu18cAQqPP+vOXye7XxwAgBELy6ri86a2lv+gAQvPquLzpraW/6AAgCkLH+vPD7YKjkDxUG3wiAyAEWhsiBCAIfCIIIARarX1CqcDGia7Ok7IwfSEGIApCx/rzw+2Co5A8fSEKCyASQgGGIA5CP4iEIQUgDkIBhiAQQj+IhCEMIBBCAYYhFAJAIBFCAYYgEkI/iIQiB0KpwMaJrs6TsjBUBEAgBSEEDAELAkAgB0KpwMaJrs6TsjBSDQAgBULdsIWM6LaRqLh/VARAIAUhBEKpwMaJrs6TsjAhBwwCCyAFQt2whYzotpGouH9SDQBC3bCFjOi2kai4fyEEIAxCjZXHw5bS2sCXf1QEQEKpwMaJrs6TsjAhBwwCCyAMQo2Vx8OW0trAl39SIBRCxvrzw+2Co5A8VnINAEKNlcfDltLawJd/IQxCqcDGia7Ok7IwIQcMAQsgByAFQvLquLzpraW/6ABC8+q4vOmtpb/oACAUQsf688PtgqOQPFQbIgQgDHwiDCAEWq0iB30iCUKjz/rzl8nu18cAfCIEIAlUrSAFIAdUrVGtfUKpwMaJrs6TsjB9IQcgFELH+vPD7YKjkDx9IRQLIAhCAYYgA0I/iIQhDSADQgGGIApCP4iEIQkgCkIBhiELAkAgBkIBhiAIQj+IhCIFQqnAxomuzpOyMFQEQCANIQ8MAQsCQCAFQqnAxomuzpOyMFINACANQt2whYzotpGouH9UBEAgDSEPQqnAxomuzpOyMCEFDAILIA1C3bCFjOi2kai4f1INAELdsIWM6LaRqLh/IQ8gCUKNlcfDltLawJd/VARAQqnAxomuzpOyMCEFDAILIAlCjZXHw5bS2sCXf1IgC0LG+vPD7YKjkDxWcg0AQo2Vx8OW0trAl38hCUKpwMaJrs6TsjAhBQwBCyAFIA1C8uq4vOmtpb/oAELz6ri86a2lv+gAIAtCx/rzw+2Co5A8VBsiBSAJfCIJIAVarSIFfSITQqPP+vOXye7XxwB8Ig8gE1StIAUgDVatUa19QqnAxomuzpOyMH0hBSALQsf688PtgqOQPH0hCwsgBEIBhiAMQj+IhCENIAxCAYYgFEI/iIQhDCAUQgGGIRQCQCAHQgGGIARCP4iEIgdCqcDGia7Ok7IwVARAIA0hBAwBCwJAIAdCqcDGia7Ok7IwUg0AIA1C3bCFjOi2kai4f1QEQCANIQRCqcDGia7Ok7IwIQcMAgsgDULdsIWM6LaRqLh/Ug0AQt2whYzotpGouH8hBCAMQo2Vx8OW0trAl39UBEBCqcDGia7Ok7IwIQcMAgsgDEKNlcfDltLawJd/UiAUQsb688PtgqOQPFZyDQBCjZXHw5bS2sCXfyEMQqnAxomuzpOyMCEHDAELIAcgDULy6ri86a2lv+gAQvPquLzpraW/6AAgFELH+vPD7YKjkDxUGyIEIAx8IgwgBFqtIgd9IhNCo8/685fJ7tfHAHwiBCATVK0gByANVq1RrX1CqcDGia7Ok7IwfSEHIBRCx/rzw+2Co5A8fSEUCyAPQgGGIAlCP4iEIQ0gCUIBhiALQj+IhCEJIAtCAYYhCwJAIAVCAYYgD0I/iIQiBUKpwMaJrs6TsjBUBEAgDSEPDAELAkAgBUKpwMaJrs6TsjBSDQAgDULdsIWM6LaRqLh/VARAIA0hD0KpwMaJrs6TsjAhBQwCCyANQt2whYzotpGouH9SDQBC3bCFjOi2kai4fyEPIAlCjZXHw5bS2sCXf1QEQEKpwMaJrs6TsjAhBQwCCyAJQo2Vx8OW0trAl39SIAtCxvrzw+2Co5A8VnINAEKNlcfDltLawJd/IQlCqcDGia7Ok7IwIQUMAQsgBSANQvLquLzpraW/6ABC8+q4vOmtpb/oACALQsf688PtgqOQPFQbIgUgCXwiCSAFWq0iBX0iE0Kjz/rzl8nu18cAfCIPIBNUrSAFIA1WrVGtfUKpwMaJrs6TsjB9IQUgC0LH+vPD7YKjkDx9IQsLIARCAYYgDEI/iIQhEyAMQgGGIBRCP4iEIRYgFEIBhiEVAkAgB0IBhiAEQj+IhCIEQqnAxomuzpOyMFQEQCATIQ0MAQsCQCAEQqnAxomuzpOyMFINACATQt2whYzotpGouH9UBEAgEyENQqnAxomuzpOyMCEEDAILIBNC3bCFjOi2kai4f1INAELdsIWM6LaRqLh/IQ0gFkKNlcfDltLawJd/VARAQqnAxomuzpOyMCEEDAILIBZCjZXHw5bS2sCXf1IgFULG+vPD7YKjkDxWcg0AQo2Vx8OW0trAl38hFkKpwMaJrs6TsjAhBAwBCyAEIBNC8uq4vOmtpb/oAELz6ri86a2lv+gAIBVCx/rzw+2Co5A8VBsiBCAWfCIWIARarSIEfSIHQqPP+vOXye7XxwB8Ig0gB1StIAQgE1atUa19QqnAxomuzpOyMH0hBCAVQsf688PtgqOQPH0hFQsgD0IBhiAJQj+IhCEHIAlCAYYgC0I/iIQhDCALQgGGIRQCQCAFQgGGIA9CP4iEIgVCqcDGia7Ok7IwVARAIAchDwwBCwJAIAVCqcDGia7Ok7IwUg0AIAdC3bCFjOi2kai4f1QEQCAHIQ9CqcDGia7Ok7IwIQUMAgsgB0LdsIWM6LaRqLh/Ug0AQt2whYzotpGouH8hDyAMQo2Vx8OW0trAl39UBEBCqcDGia7Ok7IwIQUMAgsgDEKNlcfDltLawJd/UiAUQsb688PtgqOQPFZyDQBCjZXHw5bS2sCXfyEMQqnAxomuzpOyMCEFDAELIAUgB0Ly6ri86a2lv+gAQvPquLzpraW/6AAgFELH+vPD7YKjkDxUGyIFIAx8IgwgBVqtIgV9IglCo8/685fJ7tfHAHwiDyAJVK0gBSAHVq1RrX1CqcDGia7Ok7IwfSEFIBRCx/rzw+2Co5A8fSEUCyACIAY3A5gDIAIgCDcDkAMgAiADNwOIAyACIAo3A4ADIAYhEyAIIQsgAyEJIAohByACQYADakGQicEAQSAQrgUEQEJ/QgBCf0IAQn9CACAHQsf688PtgqOQPFYbIgcgAyAHVq19IAcgA30iB0Lz6ri86a2lv+gAfSIJIAdUrXxCf1EbIgcgByAIVK19IAcgCH0iB0Kjz/rzl8nu18cAfSILIAdUrXxCf1EbIAZ9QqnAxomuzpOyMHwhE0LH+vPD7YKjkDwgCn0hBwsCQAJAIAQgE3wgCyANfCIEIAtUrSAEIAkgCSAWfCITVq0gEyATIAcgFXwiCyAHVK18Ig1WrXx8IhMgBFStfHwiCUKpwMaJrs6TsjBUDQACQCAJQqnAxomuzpOyMFINACATQt2whYzotpGouH9UBEBCqcDGia7Ok7IwIQkMAgsgE0LdsIWM6LaRqLh/Ug0AQo2Vx8OW0trAl38hB0LdsIWM6LaRqLh/IQQgDUKNlcfDltLawJd/VARAQqnAxomuzpOyMCEJIA0hBwwDCyANQo2Vx8OW0trAl39SIAtCxvrzw+2Co5A8VnINAEKpwMaJrs6TsjAhCQwCCyAJIBMgDULy6ri86a2lv+gAQvPquLzpraW/6AAgC0LH+vPD7YKjkDxUG3wiByANWq0iCX0iDUKjz/rzl8nu18cAfCIEIA1UrSAJIBNWrVGtfUKpwMaJrs6TsjB9IQkgC0LH+vPD7YKjkDx9IQsMAQsgEyEEIA0hBwsCQAJAIAkgEXwgBCAEIBJ8IhNWrSATIBMgByAHIA58IgRWrSAEIAQgCyAQfCIJIAtUrXwiB1atfHwiDVatfHwiC0KpwMaJrs6TsjBUDQACQCALQqnAxomuzpOyMFINACANQt2whYzotpGouH9UBEBCqcDGia7Ok7IwIQsMAgsgDULdsIWM6LaRqLh/Ug0AQo2Vx8OW0trAl38hBELdsIWM6LaRqLh/IRUgB0KNlcfDltLawJd/VARAQqnAxomuzpOyMCELIAchBAwDCyAHQo2Vx8OW0trAl39SIAlCxvrzw+2Co5A8VnINAEKpwMaJrs6TsjAhCwwCCyALIA0gB0Ly6ri86a2lv+gAQvPquLzpraW/6AAgCULH+vPD7YKjkDxUG3wiBCAHWq0iB30iC0Kjz/rzl8nu18cAfCIVIAtUrSAHIA1WrVGtfUKpwMaJrs6TsjB9IQsgCULH+vPD7YKjkDx9IQkMAQsgDSEVIAchBAsCQCAFIAZ8IAggD3wiBiAPVK0gBiADIAx8IgMgDFStIAMgCiAUfCIIIBRUrXwiBSADVK18fCIHIAZUrXx8IgpCqcDGia7Ok7IwVARAIAUhAyAHIQYMAQsCQCAKQqnAxomuzpOyMFINACAHQt2whYzotpGouH9UBEAgBSEDIAchBkKpwMaJrs6TsjAhCgwCCyAHQt2whYzotpGouH9SDQBCjZXHw5bS2sCXfyEDQt2whYzotpGouH8hBiAFQo2Vx8OW0trAl39UBEAgBSEDQqnAxomuzpOyMCEKDAILIAVCjZXHw5bS2sCXf1IgCELG+vPD7YKjkDxWcg0AQqnAxomuzpOyMCEKDAELIAogByAFQvLquLzpraW/6ABC8+q4vOmtpb/oACAIQsf688PtgqOQPFQbfCIDIAVarSIFfSIPQqPP+vOXye7XxwB8IgYgD1StIAUgB1atUa19QqnAxomuzpOyMH0hCiAIQsf688PtgqOQPH0hCAsCQCAKIBF8IAYgEnwiByAGVK0gByAHIAMgAyAOfCIFVq0gBSAFIAggEHwiBiAIVK18IgNWrXx8IgVWrXx8IghCqcDGia7Ok7IwVARAIAMhDCAFIQcMAQsCQCAIQqnAxomuzpOyMFINACAFQt2whYzotpGouH9UBEAgAyEMIAUhB0KpwMaJrs6TsjAhCAwCCyAFQt2whYzotpGouH9SDQBCjZXHw5bS2sCXfyEMQt2whYzotpGouH8hByADQo2Vx8OW0trAl39UBEAgAyEMQqnAxomuzpOyMCEIDAILIANCjZXHw5bS2sCXf1IgBkLG+vPD7YKjkDxWcg0AQqnAxomuzpOyMCEIDAELIAggBSADQvLquLzpraW/6ABC8+q4vOmtpb/oACAGQsf688PtgqOQPFQbfCIMIANarSIDfSIOQqPP+vOXye7XxwB8IgcgDlStIAMgBVatUa19QqnAxomuzpOyMH0hCCAGQsf688PtgqOQPH0hBgsgAkH4CmoiHSACQfgBaikDADcDACACQfAKaiIcIAJB8AFqKQMANwMAIAJB6ApqIh4gAkHoAWopAwA3AwAgAkHgCmoiGiACQeABaikDADcDACACQdgKaiIfIAJB2AFqIiApAwA3AwAgAkHQCmoiIiACQdABaiIhKQMANwMAIAJByApqIiQgAkHIAWoiJSkDADcDACACIAIpA8ABNwPACiACQbgOaiAgKQMANwMAIAJBsA5qICEpAwA3AwAgAkGoDmogJSkDADcDACACIAIpA8ABNwOgDiACQcgOaiAeKQMANwMAIAJB0A5qIBwpAwA3AwAgAkHYDmogHSkDADcDACACIBopAwA3A8AOIBpBkInBAEEgEK4FBEAgAkLH+vPD7YKjkDwgAikD4AoiA303A+AKIAJCf0IAIANCx/rzw+2Co5A8VhsiAyACKQPoCiIFfSIOQvPquLzpraW/6AB9IhE3A+gKIAJCf0IAIA4gEVatIAMgAyAFVK19fEJ/URsiAyACKQPwCiIFfSIOQqPP+vOXye7XxwB9IhE3A/AKIAJCf0IAIA4gEVatIAMgAyAFVK19fEJ/URsgAikD+Ap9QqnAxomuzpOyMHw3A/gKCyACQbgPaiAgKQMANwMAIAJBsA9qICEpAwA3AwAgAkGoD2ogJSkDADcDACACQcgPaiAaQQhqKQMANwMAIAJB0A9qIBpBEGopAwA3AwAgAkHYD2ogGkEYaikDADcDACACIAIpA8ABNwOgDyACIBopAwA3A8APIAJBmBBqIAJBuAlqIiApAwA3AwAgAkGQEGogAkGwCWoiISkDADcDACACQYgQaiACQagJaiIlKQMANwMAIAIgAikDoAk3A4AQIAJB6A9qIAJBiAlqIiYpAwA3AwAgAkHwD2ogAkGQCWoiJykDADcDACACQfgPaiACQZgJaiIoKQMANwMAIAIgAikDgAk3A+APIAJB4A5qIAJBoA9qIAJB4A9qEHogAkGYA2ogICkDADcDACACQZADaiAhKQMANwMAIAJBiANqICUpAwA3AwAgAkGoA2ogJikDADcDACACQbADaiAnKQMANwMAIAJBuANqICgpAwA3AwAgAiACKQOgCTcDgAMgAiACKQOACTcDoAMgAkGAD2oiICACQaAOaiACQYADahB6IB0gAkGYD2opAwA3AwAgHCACQZAPaikDADcDACAeIAJBiA9qKQMANwMAIBogICkDADcDACAfIAJB+A5qKQMANwMAICIgAkHwDmopAwA3AwAgJCACQegOaikDADcDACACIAIpA+AONwPACiAdKQMAIQ0gHCkDACEFIB4pAwAhDiAaKQMAIRECQCAfKQMAIAt8ICIpAwAiAyAVfCIPIANUrSAPIA8gBCAkKQMAIgt8IgMgC1StIAMgAyAJIAIpA8AKIgR8IhIgBFStfCIEVq18fCIDVq18fCIKQqnAxomuzpOyMFQEQCAEIQsMAQsCQCAKQqnAxomuzpOyMFINACADQt2whYzotpGouH9UBEBCqcDGia7Ok7IwIQogBCELDAILIANC3bCFjOi2kai4f1INAEKNlcfDltLawJd/IQsgBEKNlcfDltLawJd/VARAQqnAxomuzpOyMCEKQt2whYzotpGouH8hAyAEIQsMAgsgBEKNlcfD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BEAgAkLH+vPD7YKjkDwgAikD4AwiA303A+AMIAJCf0IAIANCx/rzw+2Co5A8VhsiAyACKQPoDCIEfSIGQvPquLzpraW/6AB9IgU3A+gMIAJCf0IAIAUgBlStIAMgAyAEVK19fEJ/URsiAyACKQPwDCIEfSIGQqPP+vOXye7XxwB9IgU3A/AMIAJCf0IAIAUgBlStIAMgAyAEVK19fEJ/URsgAikD+Ax9QqnAxomuzpOyMHw3A/gMCyApIB8pAwA3AwAgKCAeKQMANwMAICAgHCkDADcDACACQcgPaiAaQQhqKQMANwMAIAJB0A9qIBpBEGopAwA3AwAgAkHYD2ogGkEYaikDADcDACACIAIpA8ANNwOgDyACIBopAwA3A8APIAJBmBBqIAJBoAlqIhpBGGoiICkDADcDACACQZAQaiAaQRBqIigpAwA3AwAgAkGIEGogGkEIaiIpKQMANwMAIAIgGikDADcDgBAgAkHoD2ogAkGICWoiMikDADcDACACQfAPaiACQZAJaiI1KQMANwMAIAJB+A9qIAJBmAlqIjYpAwA3AwAgAiACKQOACTcD4A8gAkHgDmogAkGgD2ogAkHgD2oQeiACQagDaiAyKQMANwMAIAJBsANqIDUpAwA3AwAgAkG4A2ogNikDADcDACACQZgDaiAgKQMANwMAIAJBkANqICgpAwA3AwAgAkGIA2ogKSkDADcDACACIAIpA4AJNwOgAyACIBopAwA3A4ADIAJBgA9qIiAgAkGgDmogAkGAA2oQeiAlIAJBmA9qKQMANwMAICYgAkGQD2opAwA3AwAgJyACQYgPaikDADcDACACQeAMaiAgKQMANwMAIC0gAkH4DmopAwA3AwAgKiACQfAOaikDADcDACAuIAJB6A5qKQMANwMAIAIgAikD4A43A8AMIAJBuA1qIiUgIikDADcDACACQbANaiIiICEpAwA3AwAgAkGoDWoiISAkKQMANwMAIAJBoA1qIhogAkHgDWopAwA3AwAgAkGYDWogHykDADcDACACQZANaiAeKQMANwMAIAJBiA1qIBwpAwA3AwAgAiACKQPADTcDgA0gKyAfKQMANwMAIC8gHikDADcDACAwIBwpAwA3AwAgAiACKQPADTcDoA4gMyAhKQMANwMAIDEgIikDADcDACA0ICUpAwA3AwAgAiAaKQMANwPADiAaQZCJwQBBIBCuBQRAIAJCx/rzw+2Co5A8IAIpA6ANIgN9NwOgDSACQn9CACADQsf688PtgqOQPFYbIgMgAikDqA0iBH0iBkLz6ri86a2lv+gAfSIFNwOoDSACQn9CACAFIAZUrSADIAMgBFStfXxCf1EbIgMgAikDsA0iBH0iBkKjz/rzl8nu18cAfSIFNwOwDSACQn9CACAFIAZUrSADIAMgBFStfXxCf1EbIAIpA7gNfUKpwMaJrs6TsjB8NwO4DQsgAkG4D2oiIiACQdgNaiIcKQMANwMAIAJBsA9qIiEgAkHQDWoiHikDADcDACACQagPaiIkIAJByA1qIh8pAwA3AwAgAkHID2oiJSAaQQhqKQMANwMAIAJB0A9qIiYgGkEQaikDADcDACACQdgPaiInIBpBGGopAwA3AwAgAiACKQPADTcDoA8gAiAaKQMANwPADyACQZgQaiIoICNBGGoiKSkDADcDACACQZAQaiItICNBEGoiKikDADcDACACQYgQaiIuICNBCGoiKykDADcDACACICMpAwA3A4AQIAJB6A9qIi8gAkHICWoiMCkDADcDACACQfAPaiIzIAJB0AlqIjEpAwA3AwAgAkH4D2oiNCACQdgJaiIyKQMANwMAIAIgAikDwAk3A+APIAJB4A5qIAJBoA9qIAJB4A9qEHogAkGoA2oiNSAwKQMANwMAIAJBsANqIjAgMSkDADcDACACQbgDaiIxIDIpAwA3AwAgAkGYA2oiMiApKQMANwMAIAJBkANqIikgKikDADcDACACQYgDaiIqICspAwA3AwAgAiACKQPACTcDoAMgAiAjKQMANwOAAyAgIAJBoA5qIAJBgANqEHogAkG4DWoiIyACQZgPaiIrKQMANwMAIAJBsA1qIjYgAkGQD2oiNykDADcDACACQagNaiI4IAJBiA9qIjkpAwA3AwAgGiAgKQMANwMAIAJBmA1qIiAgAkH4DmoiOikDADcDACACQZANaiI7IAJB8A5qIjwpAwA3AwAgAkGIDWoiPSACQegOaiI+KQMANwMAIAIgAikD4A43A4ANIAJBuA5qIBwpAwA3AwAgAkGwDmogHikDADcDACACQagOaiAfKQMANwMAIAIgAikDwA03A6AOIAJByA5qIAJBiA5qKQMANwMAIAJB0A5qIAJBkA5qKQMANwMAIAJB2A5qIAJBmA5qKQMANwMAIAIgAikDgA43A8AOIB1BkInBAEEgEK4FBEAgAkLH+vPD7YKjkDwgAikD4A0iA303A+ANIAJCf0IAIANCx/rzw+2Co5A8VhsiAyACKQPoDSIEfSIGQvPquLzpraW/6AB9IgU3A+gNIAJCf0IAIAUgBlStIAMgAyAEVK19fEJ/URsiAyACKQPwDSIEfSIGQqPP+vOXye7XxwB9IgU3A/ANIAJCf0IAIAUgBlStIAMgAyAEVK19fEJ/URsgAikD+A19QqnAxomuzpOyMHw3A/gNCyAiIBwpAwA3AwAgISAeKQMANwMAICQgHykDADcDACAlIB1BCGopAwA3AwAgJiAdQRBqKQMANwMAICcgHUEYaikDADcDACACIAIpA8ANNwOgDyACIB0pAwA3A8APICggAkGgCmoiGkEYaiIiKQMANwMAIC0gGkEQaiIhKQMANwMAIC4gGkEIaiIkKQMANwMAIAIgGikDADcDgBAgLyACQYgKaiIlKQMANwMAIDMgAkGQCmoiJikDADcDACA0IAJBmApqIicpAwA3AwAgAiACKQOACjcD4A8gAkHgDmogAkGgD2ogAkHgD2oiHRB6IDUgJSkDADcDACAwICYpAwA3AwAgMSAnKQMANwMAIDIgIikDADcDACApICEpAwA3AwAgKiAkKQMANwMAIAIgAikDgAo3A6ADIAIgGikDADcDgAMgAkGAD2oiGiACQaAOaiACQYADahB6IAJB+A1qIiIgKykDADcDACACQfANaiIhIDcpAwA3AwAgAkHoDWoiJCA5KQMANwMAIAJB4A1qIiUgGikDADcDACAcIDopAwA3AwAgHiA8KQMANwMAIB8gPikDADcDACACIAIpA+AONwPADSACQbgLaiACQfgMaikDADcDACACQbALaiACQfAMaikDADcDACACQagLaiACQegMaikDADcDACACQaALaiACQeAMaikDADcDACACQZgLaiACQdgMaikDADcDACACQZALaiACQdAMaikDADcDACACQYgLaiACQcgMaikDADcDACACIAIpA8AMNwOACyACQfgLaiAjKQMANwMAIAJB8AtqIDYpAwA3AwAgAkHoC2ogOCkDADcDACACQeALaiACQaANaikDADcDACACQdgLaiAgKQMANwMAIAJB0AtqIDspAwA3AwAgAkHIC2ogPSkD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A+ACfCIGIAkgDlStIANBuAJqKQMAIA4gEFStfHx8Ig58Ig0gCiALVK0gA0GIAWopAwAiECAJIAtWrXx8fCISfCIJIAMpA2AiE3wiCyADQfgAaikDACADKQNwIgogD3wgClStfHwiCiADKQOgAnwiD0KblK/D8rWo3oZ/fiIMQm1CABD8AyADQRBqIAxCf0IAEPwDIAMgDEL///////////8AQgAQ/AMCQAJAIANBCGopAwAgA0HYAGopAwAgA0HIAGopAwAgByAIVK0gA0E4aikDACAEIAhWrXx8IgwgA0H4AWopAwAgBCARVK18fCIEIAMpA5ADfCIIIAYgDlatIANB6AJqKQMAIAYgB1StfHx8IgcgAykDQHwiBiAHVK18IAYgBiANIBJWrSAQIA0gDlStfHx8IgZWrXwiDiAHIAhUrSADQZgDaikDACAEIAhWrXx8Ig0gBCAMVK18Igx8IgQgAykDoAN8IgggA0H4AmopAwAgBiADKQPwAnwiByAGVK18IAcgBSAJVq0gA0HIAmopAwAgBSAVVK18fHwiBSAHVK18fCIHIAMpA1B8IgYgB1StfCAGIANB6ABqKQMAIhAgBSAFIBN8IgVWrXwgBSAKIAtUrSAQIAkgC1atfHx8IgkgBVStfHwiBSAGVK18IhAgByAIVK0gA0GoA2opAwAgBCAIVq18fCIRIAQgDlStIAwgDVStfHwiDnwiBCADKQOwA3wiByADQYgDaikDACAFIAUgAykDgAN8IgVWrXwgBSAFIANB2AJqKQMAIANBqAJqKQMAIAogD1atfCIGIAMpA9ACfCIIIAZUrXwgCCAIIAl8IghWrXx8IgVWrXx8IgYgAykDAHwiCyAGVK18IAsgA0EYaikDACIJIAUgBSADKQMQIgp8IgVWrXwgBSAFIAkgCCAIIAp8IghWrXwgCCADQShqKQMAIAMpAyAiCSAPfCAJVK18fCIJIAhUrXx8IgVWrXx8IgggC1StfCILIAYgB1StIANBuANqKQMAIAQgB1atfHwiByAEIBBUrSAOIBFUrXx8IgR8IgZCAFMgBiALVK1CACAEIAdUrX1Scg0AAkAgBkL///////////8AUQRAQn8hByAIQn9SBEAgBSEEIAghB0L///////////8AIQYMBAsgBUJ/UQ0BIAUhBEL///////////8AIQYMAwsgBSEEIAghBwwCC0J/IQQgCUJtWg0AQv///////////wAhBgwBCyAFQgF8IgcgCUJtVK0iC30hBCAIQgF8IgogBUJ/UiAHIAtUcq0iBX0hByAGIAhCf1IgBSAKVnKtfUL///////////8AfSEGIAlCE3whCQsgACAJNwMYIAAgBDcDECAAIAc3AwggACAGNwMAIANBwANqJAALtg4CAX8SfiMAQcADayICJAAgAkHAAWogASkDGCIEIAApAxgiA0IAEPwDIAJB0AFqIAEpAxAiByADQgAQ/AMgAkHgAWogASkDCCIGIANCABD8AyACQfABaiABKQMAIgUgA0IAEPwDIAJBsAFqIAIpA8ABIglCm5Svw/K1qN6Gf34iA0JtQgAQ/AMgAkGgAWogA0J/QgAQ/AMgAkEwaiADQv///////////wBCABD8AyACQYACaiAAKQMQIgMgBEIAEPwDIAJBsAJqIAMgB0IAEPwDIAJB4AJqIAMgBkIAEPwDIAJBkANqIAMgBUIAEPwDIAJBkAFqIAIpA6ABIgggAkHIAWopAwAiDCACKQPQAXwiC3wiCiACQbgBaikDACAJIAIpA7ABIgN8IANUrXx8IgkgAikDgAJ8Ig5Cm5Svw/K1qN6Gf34iA0JtQgAQ/AMgAkGAAWogA0J/QgAQ/AMgAkFAayADQv///////////wBCABD8AyACQZACaiAAKQMIIgMgBEIAEPwDIAJBwAJqIAMgB0IAEPwDIAJB8AJqIAMgBkIAEPwDIAJBoANqIAMgBUIAEPwDIAJB8ABqIAJBiAJqKQMAIAkgDlatfCIPIAIpA7ACfCINIAggAkHYAWopAwAgCyAMVK18IhAgAikD4AF8Igx8IgsgCSAKVK0gAkGoAWopAwAiESAIIApWrXx8fCISfCIIIAIpA4ABIhN8IgogAkGYAWopAwAgAikDkAEiAyAOfCADVK18fCIJIAIpA5ACfCIOQpuUr8Pytajehn9+IgNCbUIAEPwDIAJB4ABqIANCf0IAEPwDIAJB0ABqIANC////////////AEIAEPwDIAJBoAJqIAApAwAiAyAEQgAQ/AMgAkHQAmogAyAHQgAQ/AMgAkGAA2ogAyAGQgAQ/AMgAkGwA2ogAyAFQgAQ/AMgAkEgaiACQZgCaikDACAJIA5WrXwiFCACKQPAAnwiBCATIAJB6AFqKQMAIAwgEFStfCIQIAIpA/ABfCIDIAIpAzB8IgcgCyASVq0gESALIAxUrXx8fCIGIAIpA+ACfCIFIAggDVStIAJBuAJqKQMAIA0gD1StfHx8Ig18IgwgCSAKVK0gAkGIAWopAwAiDyAIIApWrXx8fCIRfCIIIAIpA2AiEnwiCiACQfgAaikDACACKQNwIgkgDnwgCVStfHwiCSACKQOgAnwiDkKblK/D8rWo3oZ/fiILQm1CABD8AyACQRBqIAtCf0IAEPwDIAIgC0L///////////8AQgAQ/AMCQAJAIAJBCGopAwAgAkHYAGopAwAgAkHIAGopAwAgBiAHVK0gAkE4aikDACADIAdWrXx8IgsgAkH4AWopAwAgAyAQVK18fCIDIAIpA5ADfCIHIAUgDVatIAJB6AJqKQMAIAUgBlStfHx8IgYgAikDQHwiBSAGVK18IAUgBSAMIBFWrSAPIAwgDVStfHx8IgVWrXwiDSAGIAdUrSACQZgDaikDACADIAdWrXx8IgwgAyALVK18Igt8IgMgAikDoAN8IgcgAkH4AmopAwAgBSACKQPwAnwiBiAFVK18IAYgBCAIVq0gAkHIAmopAwAgBCAUVK18fHwiBCAGVK18fCIGIAIpA1B8IgUgBlStfCAFIAJB6ABqKQMAIg8gBCAEIBJ8IgRWrXwgBCAJIApUrSAPIAggClatfHx8IgggBFStfHwiBCAFVK18Ig8gBiAHVK0gAkGoA2opAwAgAyAHVq18fCIQIAMgDVStIAsgDFStfHwiDXwiAyACKQOwA3wiBiACQYgDaikDACAEIAQgAikDgAN8IgRWrXwgBCAEIAJB2AJqKQMAIAJBqAJqKQMAIAkgDlatfCIFIAIpA9ACfCIHIAVUrXwgByAHIAh8IgdWrXx8IgRWrXx8IgUgAikDAHwiCiAFVK18IAogAkEYaikDACIIIAQgBCACKQMQIgl8IgRWrXwgBCAEIAggByAHIAl8IgdWrXwgByACQShqKQMAIAIpAyAiCCAOfCAIVK18fCIIIAdUrXx8IgRWrXx8IgcgClStfCIKIAUgBlStIAJBuANqKQMAIAMgBlatfHwiBiADIA9UrSANIBBUrXx8IgN8IgVCAFMgBSAKVK1CACADIAZUrX1Scg0AAkAgBUL///////////8AUQRAQn8hBiAHQn9SBEAgBCEDIAchBkL///////////8AIQUMBAsgBEJ/UQ0BIAQhA0L///////////8AIQUMAwsgBCEDIAchBgwCC0J/IQMgCEJtWg0AQv///////////wAhBQwBCyAEQgF8IgYgCEJtVK0iCn0hAyAHQgF8IgkgBEJ/UiAGIApUcq0iBH0hBiAFIAdCf1IgBCAJVnKtfUL///////////8AfSEFIAhCE3whCAsgACAINwMYIAAgAzcDECAAIAY3AwggACAFNwMAIAJBwANqJAALzA8CAX8SfiMAQYAEayICJAAgAkGAAmogASkDACIHIAApAwAiDUIAEPwDIAJB8AFqIAIpA4ACIgRCiceZpK7wgemHf34iA0LH+vPD7YKjkDxCABD8AyACQcACaiAAKQMIIhIgB0IAEPwDIAJB4AFqIANCjZXHw5bS2sCXf0IAEPwDIAJB0AJqIAApAxAiEyAHQgAQ/AMgAkGQAWogA0LdsIWM6LaRqLh/QgAQ/AMgAkHgAmogACkDGCIUIAdCABD8AyACQUBrIANCqcDGia7Ok7IwQgAQ/AMgAkGQAmogASkDCCIIIA1CABD8AyACQdABaiACKQPgASIFIAIpA8ACIgYgAkGIAmopAwB8Igd8IgsgAkH4AWopAwAgBCACKQPwASIDfCADVK18fCIEIAIpA5ACfCIDQonHmaSu8IHph39+IglCx/rzw+2Co5A8QgAQ/AMgAkHwAmogCCASQgAQ/AMgAkHAAWogCUKNlcfDltLawJd/QgAQ/AMgAkGgA2ogCCATQgAQ/AMgAkGwAWogCULdsIWM6LaRqLh/QgAQ/AMgAkHQA2ogCCAUQgAQ/AMgAkGgAWogCUKpwMaJrs6TsjBCABD8AyACQaACaiABKQMQIg4gDUIAEPwDIAJBgAFqIAJByAJqKQMAIAYgB1atfCIHIAIpA9ACfCIMIAIpA5ABfCIIIAQgC1StIAJB6AFqKQMAIAUgC1atfHx8IgkgAikD8AJ8IgUgAkGYAmopAwAgAyAEVK18fCILIAIpA8ABfCIEIAJB2AFqKQMAIAMgAikD0AEiA3wgA1StfHwiBiACKQOgAnwiA0KJx5mkrvCB6Yd/fiIKQsf688PtgqOQPEIAEPwDIAJBgANqIA4gEkIAEPwDIAJB8ABqIApCjZXHw5bS2sCXf0IAEPwDIAJBsANqIA4gE0IAEPwDIAJB4ABqIApC3bCFjOi2kai4f0IAEPwDIAJB4ANqIA4gFEIAEPwDIAJB0ABqIApCqcDGia7Ok7IwQgAQ/AMgAkGwAmogASkDGCIPIA1CABD8AyACQTBqIAJB2AJqKQMAIAcgDFatfCIHIAIpA+ACfCIQIAIpA0B8IhEgCCAJVq0gAkGYAWopAwAgCCAMVK18fHwiDSACKQOgA3wiDCAFIAtWrSACQfgCaikDACAFIAlUrXx8fCIIIAIpA7ABfCIFIAQgBlatIAJByAFqKQMAIAQgC1StfHx8Ig4gAikDgAN8IgkgAkGoAmopAwAgAyAGVK18fCILIAIpA3B8IgQgAkGIAWopAwAgAyACKQOAASIDfCADVK18fCIKIAIpA7ACfCIDQonHmaSu8IHph39+IgZCx/rzw+2Co5A8QgAQ/AMgAkGQA2ogDyASQgAQ/AMgAkEgaiAGQo2Vx8OW0trAl39CABD8AyACQcADaiAPIBNCABD8AyACQRBqIAZC3bCFjOi2kai4f0IAEPwDIAJB8ANqIA8gFEIAEPwDIAIgBkKpwMaJrs6TsjBCABD8AyAAIAIpA9ADIgYgDSARVK0gAkHIAGopAwAgECARVq18fCACQegCaikDACAHIBBWrXx8fCIQIAggDFStIAJBqANqKQMAIAwgDVStfHx8IhEgAikDoAF8IgwgBSAOVq0gAkG4AWopAwAgBSAIVK18fHwiCCACKQOwA3wiBSAJIAtWrSACQYgDaikDACAJIA5UrXx8fCINIAIpA2B8IgkgBCAKVq0gAkH4AGopAwAgBCALVK18fHwiCyACKQOQA3wiBCACQbgCaikDACADIApUrXx8Ig4gAikDIHwiCiACQThqKQMAIAMgAikDMCIDfCADVK18fCIPNwMAIAAgAikD4AMiByAIIAxUrSACQagBaikDACAMIBFUrXx8IBAgEVatIAJB2ANqKQMAIAYgEFatfHx8fCIMIAUgDVatIAJBuANqKQMAIAUgCFStfHx8IgggAikDUHwiBSAJIAtWrSACQegAaikDACAJIA1UrXx8fCIJIAIpA8ADfCIGIAQgDlatIAJBmANqKQMAIAQgC1StfHx8IgsgAikDEHwiBCAKIA9WrSACQShqKQMAIAogDlStfHx8Igo3AwggACACKQPwAyIDIAUgCVatIAJB2ABqKQMAIAUgCFStfHwgCCAMVK0gAkHoA2opAwAgByAMVq18fHx8IgUgBiALVq0gAkHIA2opAwAgBiAJVK18fHwiBiACKQMAfCIHIAQgClatIAJBGGopAwAgBCALVK18fHwiBDcDECAAIAQgB1StIAJBCGopAwAgBiAHVq18fCAFIAZWrSACQfgDaikDACADIAVWrXx8fCIFNwMYAkAgBUKpwMaJrs6TsjBUDQACQCAFQqnAxomuzpOyMFINACAEQt2whYzotpGouH9UDQEgBELdsIWM6LaRqLh/Ug0AIApCjZXHw5bS2sCXf1QNASAKQo2Vx8OW0trAl39SDQAgD0LH+vPD7YKjkDxUDQELIAAgD0LH+vPD7YKjkDx9NwMAIAAgCiAPQsf688PtgqOQPFStIgZ9IgdC8+q4vOmtpb/oAHwiAzcDCCAAIAQgAyAHVK0gBiAKVq1RrSIGfSIHQqPP+vOXye7XxwB8IgM3AxAgACAFIAMgB1StIAQgBlStUa19QqnAxomuzpOyMH03AxgLIAJBgARqJAALgQ4BEX8jAEEgayIMJAACQAJAAkAgAkUNACACQQJ0IgUgAWpBBGsoAgAEQCACIQgMAQsgAUEEayEHIAIhBgNAIAVFDQEgBkEBayEGIAUgB2ogBUEEayEFKAIARQ0ACyAGQQFqIgggAksNAQsgBEECdCIFIANqQQRrKAIADQEgA0EEayECIAQhBgNAIAVFBEBBACEEDAMLIAZBAWshBiACIAVqIAVBBGshBSgCAEUNAAsgBCAGQQFqIgJPBEAgAiEEDAILIAIgBEHA88EAEJkEAAsgCCACQbDzwQAQmQQACwJAAkACQAJAAkACQAJAAkBBfyAEIAhHIAQgCEsiChsiBw0AIAhBAnQhBSABQQRrIQIgA0EEayEJIARBAnQhBgNAIAUEQCAGRQ0DIAIgBWohByAGIAlqIQsgBUEEayEFIAZBBGshBkF/IAsoAgAiCyAHKAIAIgdHIAcgC0kbIgdFDQEMAgsLQX9BACAGGyEHCwJAAkAgB0H/AXEOAgECAAsCQCAERQRAQQQhBUEAIQkMAQsgBEECdCEJIARB/////wFLBEBBACEGDAgLQbnRwgAtAAAaQQQhBiAJQQQQiwUiBUUNBwsgBSADIAkQrQUhAiAEIAggBCAISRsiA0ECdCELIANFDQMgA0EBcSENIANBAUYEQEEAIQdBACEKDAMLIANBfnEhEEEAIQcgASEGIAIhBUEAIQoDQCAFIAUoAgAiESAGKAIAIhJrIhMgB2s2AgAgBUEEaiIOIA4oAgAiDiAGQQRqKAIAIg9rIhQgESASSSAHIBNLciIHazYCACAOIA9JIAcgFEtyIQcgBkEIaiEGIAVBCGohBSAQIApBAmoiCkcNAAsMAgsgAEEBOgAAIABBpPPBACkCADcCBCAAQQxqQazzwQAoAgA2AgAMAwsCQAJAIAhFBEBBBCEJQQAhAgwBCyAIQQJ0IQIgCEH/////AUsEQEEAIQUMAgtBudHCAC0AABpBBCEFIAJBBBCLBSIJRQ0BCyAJIAEgAhCtBSEBIAggBCAKGyILQQJ0IQ0CQCALRQ0AIAtBAXECQCALQQFGBEBBACEHQQAhCgwBCyALQX5xIRFBACEHIAMhBiABIQVBACEKA0AgBSAFKAIAIhIgBigCACITayIOIAdrNgIAIAVBBGoiDyAPKAIAIg8gBkEEaigCACIUayIVIBIgE0kgByAOS3IiB2s2AgAgDyAUSSAHIBVLciEHIAZBCGohBiAFQQhqIQUgESAKQQJqIgpHDQALCwR/IAEgCkECdCIGaiIFIAUoAgAiBSADIAZqKAIAIgZrIgogB2s2AgAgBSAGSSAHIApLcgUgBwtBAXFFDQAgASANaiEFIAhBAnQgC0ECdGshBgNAIAZFDQggBSAFKAIAIgdBAWs2AgAgBkEEayEGIAVBBGohBSAHRQ0ACwsgAyANaiEGIARBAnQgDWshBQJAA0AgBUUNASAFQQRrIQUgBigCACAGQQRqIQZFDQALDAcLAkACQCAIRQRAQQAhBUEAIQgMAQsgCEECdCIFIAFqQQRrKAIABEAgCCEFDAELIAgiBgJ/A0BBACAFRQ0BGiAGQQFrIQYgBUEEayIFIAFqKAIARQ0ACyAGQQFqCyIGIAYgCEsbIQUgBiAIQQJ2Tw0AIAZFBEAgASACEJQFQQAhBUEEIQlBACEIDAELIAUhCCABIAJBBCAFQQJ0IgEQhAUiCUUNAQsgACAFNgIMIAAgCTYCCCAAIAg2AgQgAEECOgAADAQLQQQgARCDBQALIAUgAhCDBQALIA0EfyACIApBAnQiBmoiBSAFKAIAIgUgASAGaigCACIGayIKIAdrNgIAIAUgBkkgByAKS3IFIAcLQQFxRQ0AIAIgC2ohBSAEQQJ0IANBAnRrIQYDQCAGRQ0FIAUgBSgCACIDQQFrNgIAIAZBBGshBiAFQQRqIQUgA0UNAAsLIAEgC2ohBiAIQQJ0IAtrIQUCQANAIAVFDQEgBUEEayEFIAYoAgAgBkEEaiEGRQ0ACwwECwJAIARFBEBBACEFIAIhBkEAIQQMAQsgBEECdCIFIAJqQQRrKAIABEAgBCEFIAIhBgwBCyAEIgYCfwNAQQAgBUUNARogBkEBayEGIAVBBGsiBSACaigCAEUNAAsgBkEBagsiBiAEIAZJGyEFIARBAnYgBk0EQCACIQYMAQsgBkUEQEEEIQYgAiAJEJQFQQAhBUEAIQQMAQsgBSEEIAIgCUEEIAVBAnQiARCEBSIGRQ0CCyAAIAU2AgwgACAGNgIIIAAgBDYCBCAAQQA6AAALIAxBIGokAA8LQQQgARCDBQALIAYgCRCDBQALIAxBADYCGCAMQQE2AgwgDEGkocIANgIIIAxCBDcCECAMQQhqQayhwgAQzQQAC40NAgF/FH4jAEGAA2siAyQAIANBgAFqIAEpAxgiBCACKQMYIgVCABD8AyADQZABaiABKQMQIgkgBUIAEPwDIANBoAFqIAEpAwgiByAFQgAQ/AMgA0GwAWogASkDACIIIAVCABD8AyADQfAAaiADKQOAASIGQrHqlJHdo4KcWH4iBUKv+P//b0IAEPwDIANB4ABqIAVCf0IAEPwDIANBwAFqIAIpAxAiBSAEQgAQ/AMgA0HwAWogBSAJQgAQ/AMgA0GgAmogBSAHQgAQ/AMgA0HQAmogBSAIQgAQ/AMgA0HQAGogAykDYCIFIANBiAFqKQMAIg0gAykDkAF8Ig58IgogA0H4AGopAwAgBiADKQNwIgt8IAtUrXx8IgsgAykDwAF8IgxCseqUkd2jgpxYfiIGQq/4//9vQgAQ/AMgA0FAayAGQn9CABD8AyADQdABaiACKQMIIgYgBEIAEPwDIANBgAJqIAYgCUIAEPwDIANBsAJqIAYgB0IAEPwDIANB4AJqIAYgCEIAEPwDIANBMGogA0HIAWopAwAgCyAMVq18IhEgAykD8AF8Ig8gBSADQZgBaikDACANIA5WrXwiEyADKQOgAXwiDXwiDiAKIAtWrSADQegAaikDACILIAUgClatfHx8IhR8IgogAykDQCIVfCIQIANB2ABqKQMAIAMpA1AiBiAMfCAGVK18fCIMIAMpA9ABfCISQrHqlJHdo4KcWH4iBkKv+P//b0IAEPwDIANBIGogBkJ/QgAQ/AMgA0HgAWogAikDACIGIARCABD8AyADQZACaiAGIAlCABD8AyADQcACaiAGIAdCABD8AyADQfACaiAGIAhCABD8AyADQRBqIANB2AFqKQMAIAwgElatfCIWIAMpA4ACfCIEIBUgBSADQagBaikDACANIBNUrXwiFyADKQOwAXwiCXwiBSAOIBRWrSALIA0gDlatfHx8IgcgAykDoAJ8IgggCiAPVK0gA0H4AWopAwAgDyARVK18fHwiBnwiDyAMIBBUrSADQcgAaikDACIMIAogEFatfHx8IhR8IgogAykDICINfCIOIANBOGopAwAgAykDMCIQIBJ8IBBUrXx8IhAgAykD4AF8IhJCseqUkd2jgpxYfiIRQq/4//9vQgAQ/AMgAyARQn9CABD8AwJAAkAgA0EIaikDACIRIANBKGopAwAiEyANIAwgFSAFIAdWrSALIAUgCVStfHwiCyADQbgBaikDACAJIBdUrXx8IgUgAykD0AJ8IgkgBiAIVK0gA0GoAmopAwAgByAIVq18fHwiB3wiCCAHVK18IAggCCAPIBRWrSAMIAYgD1atfHx8IghWrXwiBiAHIAlUrSADQdgCaikDACAFIAlWrXx8IgwgBSALVK18Igt8IgUgAykD4AJ8IgkgA0G4AmopAwAgCCADKQOwAnwiByAIVK18IAcgBCAKVq0gA0GIAmopAwAgBCAWVK18fHwiBCAHVK18fCIHfCIIIAdUrXwgCCATIAQgBCANfCIEVq18IAQgDiAQVq0gEyAKIA5WrXx8fCIKIARUrXx8IgQgCFStfCIPIAcgCVStIANB6AJqKQMAIAUgCVatfHwiDSAFIAZUrSALIAxUrXx8Igt8IgUgAykD8AJ8IgcgA0HIAmopAwAgBCAEIAMpA8ACfCIEVq18IAQgBCADQZgCaikDACADQegBaikDACAQIBJWrXwiCCADKQOQAnwiCSAIVK18IAkgCSAKfCIJVq18fCIEVq18fCIIIAMpAwAiBnwiCiAIVK18IAogESAEIAQgBnwiBFatfCAEIAQgESAJIAYgCXwiCVatfCAJIANBGGopAwAgAykDECIGIBJ8IAZUrXx8IgYgCVStfHwiBFat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QCADIQRCfyEHDAILQn8hBCAFQq/4//9vWg0AQn8hBwwBCyADQgF8IgYgBUKv+P//b1StIgl9IQQgCEIBfCIKIANCf1IgBiAJVHKtIgN9IQYgByAIQn9SIAMgClZyrX1CAXwhByAFQtGHgIAQfCEFCyAAIAU3AxggACAENwMQIAAgBjcDCCAAIAc3AwAgAkGAA2okAAvfDgIBfw5+IwBBoANrIgIkACACQYACaiABKQMIIgMgASkDACIGQgAQ/AMgAkGQAmogASkDECIHIAZCABD8AyACQaACaiABKQMYIgQgBkIAEPwDIAJBwAJqIAcgA0IAEPwDIAJB0AJqIAQgA0IAEPwDIAJB8AJqIAQgB0IAEPwDIAJBsAJqIAYgBkIAEPwDIAJB4AJqIAMgA0IAEPwDIAJBgANqIAcgB0IAEPwDIAJBkANqIAQgBEIAEPwDIAJB8AFqIAIpA7ACIgRCiceZpK7wgemHf34iA0LH+vPD7YKjkDxCABD8AyACQeABaiADQo2Vx8OW0trAl39CABD8AyACQdABaiADQt2whYzotpGouH9CABD8AyACQcABaiADQqnAxomuzpOyMEIAEPwDIAJBsAFqIAJBuAJqKQMAIgogAikDgAIiCEIBhnwiBiACKQPgAXwiByACQfgBaikDACACKQPwASIDIARCfYN8IANUrXx8IgRCiceZpK7wgemHf34iA0LH+vPD7YKjkDxCABD8AyACQaABaiADQo2Vx8OW0trAl39CABD8AyACQdAAaiADQt2whYzotpGouH9CABD8AyACIANCqcDGia7Ok7IwQgAQ/AMgAkGQAWogAikDoAEiDSACKQPgAiIJIAJBiAJqKQMAIgsgAikDkAJ8IgVCAYYgCEI/iIR8IgggBiAKVK18IgogAikD0AF8IgwgBCAHVK0gAkHoAWopAwAgBiAHVq18fHwiDnwiBiACQbgBaikDACACKQOwASIDIAR8IANUrXx8IgdCiceZpK7wgemHf34iA0LH+vPD7YKjkDxCABD8AyACQYABaiADQo2Vx8OW0trAl39CABD8AyACQfAAaiADQt2whYzotpGouH9CABD8AyACQeAAaiADQqnAxomuzpOyMEIAEPwDIAJBQGsgAikDgAEiECAIIApWrSACQegCaikDACAIIAlUrXx8Ig8gAkGYAmopAwAgBSALVK18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AwAgA0HIAGpBwLnAACkDADcDACADQUBrQbi5wAApAwA3AwAgA0E4akGwucAAKQMANwMAIANBMGpBqLnAACkDADcDACADQaC5wAApAwA3AygLIANBwAFqIgEgA0EoaiICEMEBIANBADYCmAEgA0KAgICAEDcCkAEgA0EDOgBIIANBIDYCOCADQQA2AkQgA0HwpcAANgJAIANBADYCMCADQQA2AiggAyADQZABajYCPCABIAIQhQMNAyADKAKQASEGIAIgAygClAEiCCADKAKYARDNAyADKAIwIgFFBEAgAygCKEUEQCACENsDCyADKAIsQQA2AgAgA0EBNgIwQQEhAQsgAygCLCICIAIoAgBBAWoiBDYCAAJAIAQNACACQQRqIQQgAUECdEEEayEFA0AgBQRAIAQgBCgCAEEBaiIBNgIAIAVBBGshBSAEQQRqIQQgAUUNAQwCCwsgAygCMCIBIAMoAihGBEAgA0EoahDbAwsgAygCLCABQQJ0akEBNgIAIAMgAUEBajYCMAsgA0EgaiADQTBqKAIANgIAIAMgAykCKDcDGCAGBEAgCCAGEJQFCyADQShqIANBDGogA0EYahCyAgJAIAMoAjBFBEBBudHCAC0AABpBASEBQQFBARCLBSIGRQ0GIAZBADoAACADQQE2AsABDAELIANBwAFqIANBKGoQ4AIgAygCxAEhBiADKALIASIBQQJJDQAgASAGaiABQQF2IgJrIQhBACEEIAJBAUcEQCABQQFrIQUgAkH+////B3EhCgNAIAUgBmoiBy0AACEJIAcgBCAGaiIHLQAAOgAAIAcgCToAACAIIAIgBEF+c2pqIgktAAAhCyAJIAdBAWoiBy0AADoAACAHIAs6AAAgBUECayEFIAogBEECaiIERw0ACwsgAUECcUUNACAEIAZqIgUtAAAhByAFIAggAiAEQX9zamoiAi0AADoAACACIAc6AAALIAAgBiABEKYBIAMoAsABIgAEQCAGIAAQlAULIAMoAigiAEUNACADKAIsIABBAnQQlAULIANB8AFqJAAPCyAGIAQQgwUACyAEIAIQgwUAC0GIpsAAQTcgA0HgAGpBwKbAAEGcp8AAEP0DAAtBAUEBEKgFAAsgAyADLQApOgCQAUG8q8AAQSsgA0GQAWpBzK3AAEHorcAAEP0DAAuYGQIJfxJ+IwBBsAFrIgMk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r/j//29UrSISfSEOIA1CAXwiEyAMQn9SIBEgElRyrSIMfSERIA8gDUJ/UiAMIBNWcq19QgF8IQ8gEELRh4CAEHwhEAwCCyAGQQA6AAFBAQwCCyANIREgDCEOCyAGIBA3AyAgBiAONwMYIAYgETcDECAGIA83AwhBAAs6AAAgAUHAAWokACADLQAoDQYgACADKQMwNwMAIABBGGogA0HIAGopAwA3AwAgAEEQaiADQUBrKQMANwMAIABBCGogA0E4aikDADcDACADKAKQASIARQ0BIAUgABCUBQwBC0EAIQQgAkEASA0CQbnRwgAtAAAaQQEhBCACQQEQiwUiBUUNAiADQQxqIAUgASACEK0FIgECf0EBIAJBAUYNABogASACaiACQQF2IgZrIQhBACEEIAZBAUcEQCACQQFrIQUgBkH+////A3EhCgNAIAEgBWoiBy0AACEJIAcgASAEaiIHLQAAOgAAIAcgCToAACAIIAYgBEF+c2pqIgktAAAhCyAJIAdBAWoiBy0AADoAACAHIAs6AAAgBUECayEFIAogBEECaiIERw0ACwsgAiACQQJxRQ0AGiABIARqIgUtAAAhByAFIAggBiAEQX9zamoiBC0AADoAACAEIAc6AAAgAgtBCBCMAyABIAIQlAUCQEGAucAAQZC4wABBIBCuBQRAIANBOGpCfzcDACADQTBqQn83AwAgA0J/NwMoIANC3vD//183A0AMAQsgA0FAa0GYucAAKQMANwMAIANBOGpBkLnAACkDADcDACADQTBqQYi5wAApAwA3AwAgA0GAucAAKQMANwMoCyADQZABaiICIANBKGoiARCLAiADQQA2AnggA0KAgICAEDcCcCADQQM6AEggA0EgNgI4IANBADYCRCADQfClwAA2AkAgA0EANgIwIANBADYCKCADIANB8ABqNgI8IAIgARCTAw0DIAMoAnAhAiABIAMoAnQiCCADKAJ4EM0DIAMoAjAiBkUEQCADKAIoRQRAIAEQ2wMLIAMoAixBADYCACADQQE2AjBBASEGCyADKAIsIgEgASgCAEEBaiIENgIAAkAgBA0AIAFBBGohBCAGQQJ0QQRrIQUDQCAFBEAgBCAEKAIAQQFqIgE2AgAgBUEEayEFIARBBGohBCABRQ0BDAILCyADKAIwIgEgAygCKEYEQCADQShqENsDCyADKAIsIAFBAnRqQQE2AgAgAyABQQFqNgIwCyADQSBqIANBMGooAgA2AgAgAyADKQIoNwMYIAIEQCAIIAIQlAULIANBKGogA0EMaiADQRhqELICAkAgAygCMEUEQEG50cIALQAAGkEBIQJBAUEBEIsFIgFFDQYgAUEAOgAAIANBATYCkAEMAQsgA0GQAWogA0EoahDgAiADKAKUASEBIAMoApgBIgJBAkkNACABIAJqIAJBAXYiBmshCEEAIQQgBkEBRwRAIAJBAWshBSAGQf7///8HcSEKA0AgASAFaiIHLQAAIQkgByABIARqIgctAAA6AAAgByAJOgAAIAggBiAEQX5zamoiCS0AACELIAkgB0EBaiIHLQAAOgAAIAcgCzoAACAFQQJrIQUgCiAEQQJqIgRHDQALCyACQQJxRQ0AIAEgBGoiBS0AACEHIAUgCCAGIARBf3NqaiIELQAAOgAAIAQgBzoAAAsgACABIAIQpwEgAygCkAEiAARAIAEgABCUBQsgAygCKCIARQ0AIAMoAiwgAEECdBCUBQsgA0GwAWokAA8LIAYgBBCDBQALIAQgAhCDBQALQYimwABBNyADQdAAakHApsAAQZynwAAQ/QMAC0EBQQEQqAUACyADIAMtACk6AHBBvKvAAEErIANB8ABqQcytwABB6K3AABD9AwALhg8CB38GfiMAQZABayIDJAACQAJAAkACQAJAAkACQAJAAkAgAg4CAAECCyAAQgE3AwAMBwsgAS0AAEEwRg0BCyADQSBqQgA3AwAgA0EYakIANwMAIANBEGpCADcDACADQgA3AwggA0GIAWpCADcDACADQYABakIANwMAIANCADcDeCADQgo3A3AgA0HIAGogA0HwAGoQjAEgAykDSFBFBEAgA0FAayADQegAaikDADcDACADQThqIANB4ABqKQMANwMAIANBMGogA0HYAGopAwA3AwAgAyADKQNQNwMoAn8gASwAACIFQQBIBEAgAS0AAUE/cSEGIAVBH3EhBCAFQWBJBEAgBEEGdCAGciEFIAFBAmoMAgsgAS0AAkE/cSAGQQZ0ciEGIAVBcEkEQCAGIARBDHRyIQUgAUEDagwCCyAEQRJ0QYCA8ABxIAEtAANBP3EgBkEGdHJyIgVBgIDEAEYNBSABQQRqDAELIAVB/wFxIQUgAUEBagshBCAFQTprQXdJDQUg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AyADQeABaiARIAVCABD8AyADQfABaiAQIAVCABD8AyADQYACaiAPIAVCABD8AyADQZACaiAOIAVCABD8AyADQdAAaiADKQPAASIaIA0gAykDYCINfCIbfCIMQv3/8//P///5iX9+IgVCq9X+////v/+5f0IAEPwDIANBQGsgBUL//8+K6///1R5CABD8AyADQTBqIAVCpOzDtY/UtJjnAEIAEPwDIANBIGogBUK/pZScz/DSu+QAQgAQ/AMgA0EQaiAFQtfZrprk9umNywBCABD8AyADIAVCms3/y6O9xIAaQgAQ/AMgA0G4AWopAwAgAykDsAEiCiALfCIFIApUrXwgBSADQagBaikDACAJIAMpA6ABIgl8IgogCVStfCAKIANBmAFqKQMAIAMpA5ABIgkgCHwiCCAJVK18IAggA0GIAWopAwAgAykDgAEiCSAHfCIHIAlUrXwgByADQfgAaikDACADKQNwIgkgBnwiBiAJVK18IAYgA0HoAGopAwAgDSAbVq18fCIJIAZUrXx8IgsgB1StfHwiByAIVK18fCIIIApUrXx8IgYgBVStfCINIANBmAJqKQMAIAMpA5ACIgUgBnwiBiAFVK18IAYgBiADQYgCaikDACAIIAMpA4ACIgh8IgUgCFStfCAFIAUgA0H4AWopAwAgAykD8AEiCCAHfCIHIAhUrXwgByAHIANB6AFqKQMAIAMpA+ABIgogC3wiCCAKVK18IAggCCADQdgBaikDACAJIAMpA9ABIgl8IgogCVStfCAKIANByAFqKQMAIAwgGlStfHwiCSAKVK18fCIIVq18fCIHVq18fCIFVq18fCIGVq18fCIKIAogDVStfCADQQhqKQMAIAYgAykDAHwiCiAGVK18IAogA0EYaikDACAFIAUgAykDEHwiBVatfCAFIANBKGopAwAgByAHIAMpAyB8IgdWrXwgByAHIANBOGopAwAgCCADKQMwfCIGIAhUrXwgBiAGIANByABqKQMAIAkgAykDQCIJfCIIIAlUrXwgCCADQdgAaikDACAMIAMpA1AiDHwgDFStfHwiDSAIVK18fCIGVq18fCIHVq18fCIIIAVUrXx8IgkgClStfHwhCyACQQhqIgJBMEcNAAsCQCALQprN/8ujvcSAGlQEQCAGIQUgByEMIAghCiAJIQ4MAQsCQCALQprN/8ujvcSA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KQMAIgRSBEAgCCEDDAELIAchDCAGIQkgCCEKIAJB2ABqKQMAIgMhFSAFIAMgAUHYAGopAwAiBFENARoLIAMgBFoNASACQThqKQMAIQUgAkFAaykDACEHIAFBQGspAwAhDCACQcgAaikDACEGIAFByABqKQMAIQkgAkHQAGopAwAhCCABQdAAaikDACEKIAFB2ABqKQMAIRUgAikDWCEDIAFBOGopAwALIQ0gCiAIfSITIAMgFVatIhZ9IQQgCSAGfSIXIBMgFlQgCCAKVnKtIgp9IQggDCAHfSITIAogF1YgBiAJVnKtIgl9IQYgDSAFfSIKIAkgE1YgByAMVnKtIgx9IQcgCiAMVCAFIA1WciECIBQgEn0hBSAVIAN9DAELQqTsw7WP1LSY5wAgAkHIAGopAwAiAyABQcgAaikDACIFfSIGIAJB0ABqKQMAIgggAUHQAGopAwAiB1QgCCAHfSIIIAIpA1giByABQdgAaikDACINVK0iDFRyrSIJfSIKfSIEIAggDH0iCEL//8+K6///1R5WQv//z4rr///VHiAIfSIMIAcgDX0iDUKr1f7///+//7l/Vq0iFVRyrSIHfSEIQr+llJzP8NK75AAgAkFAaykDACITIAFBQGspAwAiFn0iFyADIAVUIAYgCVRyrSIDfSIFfSIJIAQgB1QgCkKk7MO1j9S0mOcAVnKtIgd9IQZC19mumuT26Y3LACACQThqKQMAIgogAUE4aikDACIEfSIZIBMgFlQgAyAXVnKtIgN9IhN9IhYgByAJViAFQr+llJzP8NK75ABWcq0iBX0hByAFIBZWIBNC19mumuT26Y3LAFZyIQIgBCAKViADIBlWcq0gFCASfXxCms3/y6O9xIAafCEFIAwgFX0hBEKr1f7///+//7l/IA19CyEDIAAgEDcDKCAAIBg3AyAgACARNwMYIAAgDjcDECAAIAs3AwggAEHYAGogAzcDACAAQdAAaiAENwMAIABByABqIAg3AwAgAEFAayAGNwMAIABBOGogBzcDACAAIAUgAq19NwMwIAAgDyAarX03AwALjB4CCX8PfiMAQbABayIDJAAgA0HgAGpCADcDACADQdgAakIANwMAIANCADcDUCADQgE3A2ggA0E4akIANwMAIANBQGtCADcDACADQgA3AzAgA0KRgICAgICAgAg3AyhB/wEhBSAD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IAxCKIhCgP4DgyAMQjiIhISEQqQLQgAQ/AMgAUHQAWogASkD4AEiDkKblK/D8rWo3oZ/fiIMQm1CABD8AyABQcABaiAMQn9CABD8AyABQYABaiAMQv///////////wBCABD8AyABQbABaiABKQPAASIMIAFB6AFqKQMAIg8gASkD8AF8IhB8IhEgAUHYAWopAwAgASkD0AEiDSAOQnyDfCANVK18fCIOQpuUr8Pytajehn9+Ig1CbUIAEPwDIAFBoAFqIA1Cf0IAEPwDIAFBkAFqIA1C////////////AEIAEPwDIAFB4ABqIAEpA6ABIg0gDCABQfgBaikDACAPIBBWrXwiEiABKQNwfCIPfCIQIA4gEVStIAFByAFqKQMAIhQgDCARVq18fHwiFXwiDCABQbgBaikDACABKQOwASIRIA58IBFUrXx8IhFCm5Svw/K1qN6Gf34iDkJtQgAQ/AMgAUHQAGogDkJ/QgAQ/AMgAUFAayAOQv///////////wBCABD8AyABQSBqIAEpA1AiDiANIAFB+ABqKQMAIA8gElStfCIWIAEpAzB8IhIgASkDgAF8IhMgECAVVq0gFCAPIBBWrXx8fCIPfCIQIAwgEVatIAFBqAFqKQMAIhQgDCANVK18fHwiFXwiDCABQegAaikDACARIAEpA2AiDXwgDVStfHwiEUKblK/D8rWo3oZ/fiINQm1CABD8AyABQRBqIA1Cf0IAEPwDIAEgDUL///////////8AQgAQ/AMCQAJAIAFBCGopAwAgAUHIAGopAwAgAUGYAWopAwAgASkDkAEiFyABQThqKQMAIBIgFlStfHwiDSAXVK18IA0gDSAPIBNUrSABQYgBaikDACASIBNWrXx8fCISVq18IBIgEiAQIBVWrSAUIA8gEFatfHx8Ig1WrXwiECABKQNAfCIPIBBUrXwgDyABQdgAaikDACISIA0gDSAOfCIQVq18IBAgECAMIBFWrSASIAwgDlStfHx8IhBWrXx8IgwgD1StfCIOIAEpAwB8Ig0gDlStfCANIA0gAUEYaikDACISIAwgDCABKQMQIg58Ig9WrXwgDyAPIBIgDiAOIBB8IgxWrXwgDCABQShqKQMAIBEgASkDICIOfCAOVK18fCIQIAxUrXx8IgxWrXx8Ig5WrXwiD0IAUw0AAkAgD0L///////////8AWgRAQn8hDSAOQn9RDQFC////////////ACEPCyAOIQ0gDCERDAILIAxCf1IEQEL///////////8AIQ8gDCERDAILIBBCbVoNAEL///////////8AIQ9CfyERDAELIAxCAXwiDSAQQm1UrSISfSERIA5CAXwiEyAMQn9SIA0gElRyrSIMfSENIA8gDkJ/UiAMIBNWcq19Qv///////////wB9IQ8gEEITfCEQCyAGIBA3AyAgBiARNwMYIAYgDTcDECAGIA83AwhBAAwBCyAGQQA6AAFBAQs6AAAgAUGAAmokACADLQAoDQYgACADKQMwNwMAIABBGGogA0HIAGopAwA3AwAgAEEQaiADQUBrKQMANwMAIABBCGogA0E4aikDADcDACADKAKQASIARQ0BIAUgABCUBQwBC0EAIQQgAkEASA0CQbnRwgAtAAAaQQEhBCACQQEQiwUiBUUNAiADQQxqIAUgASACEK0FIgECf0EBIAJBAUYNABogASACaiACQQF2IgZrIQhBACEEIAZBAUcEQCACQQFrIQUgBkH+////A3EhCgNAIAEgBWoiBy0AACEJIAcgASAEaiIHLQAAOgAAIAcgCToAACAIIAYgBEF+c2pqIgktAAAhCyAJIAdBAWoiBy0AADoAACAHIAs6AAAgBUECayEFIAogBEECaiIERw0ACwsgAiACQQJxRQ0AGiABIARqIgUtAAAhByAFIAggBiAEQX9zamoiBC0AADoAACAEIAc6AAAgAgtBCBCMAyABIAIQlAUCQEHQucAAQZC4wABBIBCuBQRAIANBOGpCfzcDACADQn83AzAgA0L///////////8ANwMoIANCRzcDQAwBCyADQUBrQei5wAApAwA3AwAgA0E4akHgucAAKQMANwMAIANBMGpB2LnAACkDADcDACADQdC5wAApAwA3AygLIANBkAFqIgEgA0EoaiICEOsBIANBADYCeCADQoCAgIAQNwJwIANBAzoASCADQSA2AjggA0EANgJEIANB8KXAADYCQCADQQA2AjAgA0EANgIoIAMgA0HwAGo2AjwgASACEJMDDQMgAygCcCEGIAIgAygCdCIIIAMoAngQzQMgAygCMCIBRQRAIAMoAihFBEAgAhDbAwsgAygCLEEANgIAIANBATYCMEEBIQELIAMoAiwiAiACKAIAQQFqIgQ2AgAC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CyADQUBrQci6wAApAwA3AwAgA0E4akHAusAAKQMANwMAIANBMGpBuLrAACkDADcDACADQbC6wAApAwA3AygLIANBkAFqIgEgA0EoaiICENwBIANBADYCeCADQoCAgIAQNwJwIANBAzoASCADQSA2AjggA0EANgJEIANB8KXAADYCQCADQQA2AjAgA0EANgIoIAMgA0HwAGo2AjwgASACEJMDDQMgAygCcCEGIAIgAygCdCIIIAMoAngQzQMgAygCMCIBRQRAIAMoAihFBEAgAhDbAwsgAygCLEEANgIAIANBATYCMEEBIQELIAMoAiwiAiACKAIAQQFqIgQ2AgACQCAEDQAgAkEEaiEEIAFBAnRBBGshBQNAIAUEQCAEIAQoAgBBAWoiATYCACAFQQRrIQUgBEEEaiEEIAFFDQEMAgsLIAMoAjAiASADKAIoRgRAIANBKGoQ2wMLIAMoAiwgAUECdGpBATYCACADIAFBAWo2AjALIANBIGogA0EwaigCADYCACADIAMpAig3AxggBgRAIAggBhCUBQsgA0EoaiADQQxqIANBGGoQsgICQCADKAIwRQRAQbnRwgAtAAAaQQEhAUEBQQEQiwUiBkUNBiAGQQA6AAAgA0EBNgKQAQwBCyADQZABaiADQShqEOACIAMoApQBIQYgAygCmAEiAUECSQ0AIAEgBmogAUEBdiICayEIQQAhBCACQQFHBEAgAUEBayEFIAJB/v///wdxIQoDQCAFIAZqIgctAAAhCSAHIAQgBmoiBy0AADoAACAHIAk6AAAgCCACIARBfnNqaiIJLQAAIQsgCSAHQQFqIgctAAA6AAAgByALOgAAIAVBAmshBSAKIARBAmoiBEcNAAsLIAFBAnFFDQAgBCAGaiIFLQAAIQcgBSAIIAIgBEF/c2pqIgItAAA6AAAgAiAHOgAACyAAIAYgARCzASADKAKQASIABEAgBiAAEJQFCyADKAIoIgBFDQAgAygCLCAAQQJ0EJQFCyADQbABaiQADwsgBiAEEIMFAAsgBCACEIMFAAtBiKbAAEE3IANB0ABqQcCmwABBnKfAABD9AwALQQFBARCoBQALIAMgAy0AKToAcEG8q8AAQSsgA0HwAGpBzK3AAEHorcAAEP0DAAuwGgIJfw9+IwBBsAFrIgMkACADQeAAakIANwMAIANB2ABqQgA3AwAg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IA5UrXwgDyANIA98Ig5WrXx8Ig0gEFStfEIAUiANQoGAgIBwVnINAAJAIA1CgYCAgHBRBEAgDEL/////D1YNAkIAIQ8gDkIAUg0CQv////8PIRAgDEL/////D1oNAUKBgICAcCENIAwhEAwDCyAOIQ8gDCEQDAILIBJCf1ENAEKBgICAcCENDAELIAxC/////w99Ig8gEkJ/Uq0iEX0hECAOIAxC/////w9UIA8gEVRyrSIMfSEPIA0gDCAOVq19Qv////8PfCENIBJCAXwhEgsgBiASNwMgIAYgEDcDGCAGIA83AxAgBiANNwMIQQAMAQsgBkEAOgABQQELOgAAIAFBwAJqJAAgAy0AKA0GIAAgAykDMDcDACAAQRhqIANByABqKQMANwMAIABBEGogA0FAaykDADcDACAAQQhqIANBOGopAwA3AwAgAygCkAEiAEUNASAFIAAQlAUMAQtBACEEIAJBAEgNAkG50cIALQAAGkEBIQQgAkEBEIsFIgVFDQIgA0EMaiAFIAEgAhCtBSIBAn9BASACQQFGDQAaIAEgAmogAkEBdiIGayEIQQAhBCAGQQFHBEAgAkEBayEFIAZB/v///wNxIQoDQCABIAVqIgctAAAhCSAHIAEgBGoiBy0AADoAACAHIAk6AAAgCCAGIARBfnNqaiIJLQAAIQsgCSAHQQFqIgctAAA6AAAgByALOgAAIAVBAmshBSAKIARBAmoiBEcNAAsLIAIgAkECcUUNABogASAEaiIFLQAAIQcgBSAIIAYgBEF/c2pqIgQtAAA6AAAgBCAHOgAAIAILQQgQjAMgASACEJQFAkBB4LjAAEGQuMAAQSAQrgUEQCADQn43A0AgA0L/////HzcDOCADQgA3AzAgA0KCgICAYDcDKAwBCyADQUBrQfi4wAApAwA3AwAgA0E4akHwuMAAKQMANwMAIANBMGpB6LjAACkDADcDACADQeC4wAApAwA3AygLIANBkAFqIgEgA0EoaiICEMQCIANBADYCeCADQoCAgIAQNwJwIANBAzoASCADQSA2AjggA0EANgJEIANB8KXAADYCQCADQQA2AjAgA0EANgIoIAMgA0HwAGo2AjwgASACEJMDDQMgAygCcCEGIAIgAygCdCIIIAMoAngQzQMgAygCMCIBRQRAIAMoAihFBEAgAhDbAwsgAygCLEEANgIAIANBATYCMEEBIQELIAMoAiwiAiACKAIAQQFqIgQ2AgACQCAEDQAgAkEEaiEEIAFBAnRBBGshBQNAIAUEQCAEIAQoAgBBAWoiATYCACAFQQRrIQUgBEEEaiEEIAFFDQEMAgsLIAMoAjAiASADKAIoRgRAIANBKGoQ2wMLIAMoAiwgAUECdGpBATYCACADIAFBAWo2AjALIANBIGogA0EwaigCADYCACADIAMpAig3AxggBgRAIAggBhCUBQsgA0EoaiADQQxqIANBGGoQsgICQCADKAIwRQRAQbnRwgAtAAAaQQEhAUEBQQEQiwUiBkUNBiAGQQA6AAAgA0EBNgKQAQwBCyADQZABaiADQShqEOACIAMoApQBIQYgAygCmAEiAUECSQ0AIAEgBmogAUEBdiICayEIQQAhBCACQQFHBEAgAUEBayEFIAJB/v///wdxIQoDQCAFIAZqIgctAAAhCSAHIAQgBmoiBy0AADoAACAHIAk6AAAgCCACIARBfnNqaiIJLQAAIQsgCSAHQQFqIgctAAA6AAAgByALOgAAIAVBAmshBSAKIARBAmoiBEcNAAsLIAFBAnFFDQAgBCAGaiIFLQAAIQcgBSAIIAIgBEF/c2pqIgItAAA6AAAgAiAHOgAACyAAIAYgARC0ASADKAKQASIABEAgBiAAEJQFCyADKAIoIgBFDQAgAygCLCAAQQJ0EJQFCyADQbABaiQADwsgBiAEEIMFAAsgBCACEIMFAAtBiKbAAEE3IANB0ABqQcCmwABBnKfAABD9AwALQQFBARCoBQALIAMgAy0AKToAcEG8q8AAQSsgA0HwAGpBzK3AAEHorcAAEP0DAAuXCwIBfw9+IwBB4AJrIgIkACACQcACaiABQcAAEPYCIAJBQGsgAikD2AIiCEIDQgAQ/AMgAkGAAWogAikD0AIiBkIDQgAQ/AMgAkHAAWogAikDyAIiBEIDQgAQ/AMgAkGAAmogAikDwAIiBUIDQgAQ/AMgAkEQaiACKQNAIglCgYCAgHBCABD8AyACQdAAaiAIQv////+/f0IAEPwDIAJBkAFqIAZC/////79/QgAQ/AMgAkHQAWogBEL/////v39CABD8AyACQZACaiAFQv////+/f0IAEPwDIAJBIGogCUIghiIKIAJByABqKQMAIgsgAikDgAF8Igx8IgcgAikDUHwiA0KBgICAcEIAEPwDIAJB4ABqIAhCfkIAEPwDIAJBoAFqIAZCfkIAEPwDIAJB4AFqIARCfkIAEPwDIAJBoAJqIAVCfkIAEPwDIAJBMGogA0IghiINIAcgClStIAlCIIh8Ig8gAkGIAWopAwAgCyAMVq18IgwgAikDwAF8Ig58IgogAikDkAF8IgsgAkHYAGopAwAgAyAHVK18fCIQfCIHIAIpA2B8IglCgYCAgHBCABD8AyACQfAAaiAIQv3////PAEIAEPwDIAJBsAFqIAZC/f///88AQgAQ/AMgAkHwAWogBEL9////zwBCABD8AyACQbACaiAFQv3////PAEIAEPwDIAIgCUIghiIRIAcgDVStIANCIIh8Ig0gAkHIAWopAwAgDCAOVq18Ig4gAikDgAJ8IgYgAikDEHwiBCAKIA9UrXwiBSACKQPQAXwiAyALIBBWrSACQZgBaikDACAKIAtWrXx8fCIPfCIKIAIpA6ABfCILIAJB6ABqKQMAIAcgCVatfHwiEHwiByACKQNwfCIIQoGAgIBwQgAQ/AMCQAJAIAJBuAJqKQMAIAJBqAJqKQMAIAJBKGopAwAgCiANVK0iDSACKQMgfCIMIA1UrXwgDCACQYgCaikDACAGIA5UrXwiDiACKQOQAnwiDSAEIAVWrSACQRhqKQMAIAQgBlStfHx8IgYgAyAPVq0gAkHYAWopAwAgAyAFVK18fHwiBHwiAyAMVK18IgwgBCAGVK0gBiANVK0gAkGYAmopAwAgDSAOVK18fHx8IgYgAikDoAJ8IgQgBlStfCAEIAJB6AFqKQMAIAsgEFatIAJBqAFqKQMAIAogC1atfHwiCiACKQPgAXwiBSAKVK18IAUgAyAFfCIDVq18fCIFIARUrXwiCiAGIAxUrXwiBiACQThqKQMAIAMgByARVK0gCUIgiHx8IgkgA1StIgMgAikDMHwiBCADVK18IAQgBXwiCyAEVK18fCIEIAIpA7ACfCIFIARUrXwgBSAFIAJB+AFqKQMAIAJBuAFqKQMAIAJB+ABqKQMAIAcgCFatfCIHIAIpA7ABfCIDIAdUrXwgAyAJfCIJIANUrXwiByACKQPwAXwiAyAHVK18IAMgAyALfCIHVq18fCIDVq18IgUgBiAKVK0gBCAGVK18fCIGIAVUrSAGIAJBCGopAwAgByAIQiCGIgQgCXwiCSAEVK0gCEIgiHx8IgggB1StIgQgAikDAHwiBSAEVK18IAUgAyAFfCIEVq18fCIDIAZUrXxCAFIgA0KBgICAcFZyDQACQCADQoGAgIBwUQRAIAhC/////w9WDQJCACEFIARCAFINAkL/////DyEGIAhC/////w9aDQEgCCEGQoGAgIBwIQMMAwsgCCEGIAQhBQwCCyAJQn9RDQBCgYCAgHAhAwwBCyAIQv////8PfSIFIAlCf1KtIgd9IQYgBCAIQv////8PVCAFIAdUcq0iCH0hBSADIAQgCFStfUL/////D3whAyAJQgF8IQkLIAAgCTcDGCAAIAY3AxAgACAFNwMIIAAgAzcDACACQeACaiQAC9cLAhl/B34gA0EBayERAkAgAwRAIANBAmshBQJAAkAgA0EBRwRAIAEoAggiDiADayISQQFqIgdFDQEgB0ECdCEEIAdB/////wFLBEBBACAEEIMFAAsgAiARQQJ0aigCACETIAIgBUECdGo1AgAhICAEQQQQjAUiDA0CQQQgBBCDBQALIAVBAUHQmcIAEJgEAAsgASgCACEGQQQhDCAOIQkMAgsgDkECdCADQQJ0ayEPIANBAXEiFCADQf////8DcSIWayEXQQAgA0F+cWshGEIAIBOtIh9CIIYiIX0hIiAOIQkgByENAkADQAJ/AkACQCAJIgQEQCAEQQFGDQEgASgCBCILIARBAWsiCUECdGoiGSgCACEFIARBAnQgC2pBCGs1AgAhHiAIIBNJDQIgBa0gCK18IR1BfwwDC0HgmcIAEJgFAAtBf0EBQfCZwgAQmAQACyAFrSAIrUIghoQiHSAdIB+AIiMgH359IR0gI6cLIQoCQCAdQv////8PVg0AICIgHUIghnwgHnwhHgNAIB4gIXwiHiAKrSAgfloNASAKQQFrIQogHSAffCIdQoCAgIAQVA0ACwsgDUEBayINIARLDQEgDUECdCEVAkAgBCANRg0AIAqtIR4CfyAWQQFGBEBC/////w8hHUEADAELIAsgD2ohBkL/////DyEdQQAhBSACIQQDQCAGIB0gBjUCAHwgBDUCACAefn1C/////x99Ih0+AgAgBkEEaiIQIBA1AgAgHUIgiHwgBEEEajUCACAefn1C/////x99Ih0+AgAgHUIgiCEdIAZBCGohBiAEQQhqIQQgFyAFQQJrIgVHDQALQQAgBWsLIQYgCyAVaiEQIAggFAR+IBAgBkECdCIEaiIFIB0gBTUCAHwgAiAEajUCACAefn1C/////x99Ih0+AgAgHUIgiAUgHQunQX9zTw0AAn8gEUUEQEEAIQVBAAwBCyALIA9qIQZBACEIIAIhBEEAIQUDQCAGIAUgBigCACIaIAQoAgBqIgVqIhs2AgAgBkEEaiILIAsoAgAiHCAEQQRqKAIAaiILIAUgGkkgBSAbS3JqIgU2AgAgCyAcSSAFIAtJciEFIAZBCGohBiAEQQhqIQQgGCAIQQJrIghHDQALQQAgCGsLIQYgCkEBayEKIBRFDQAgECAGQQJ0IgRqIgYgBigCACACIARqKAIAaiAFajYCAAsgDCAVaiAKNgIAIAEgCTYCCCAPQQRrIQ8gGSgCACEIIA0NAAsgASgCACEGDAILIA0gBEGAmsIAEJcEAAsgEUEAQcCZwgAQmAQACyAGIAlGBEAgARDbAwsgCUECdCICIAEoAgRqIAg2AgAgASAJQQFqIgU2AggCQAJAAkACQAJAIAUEQCACIAEoAgQiAmooAgBFDQEMAgsgASgCACICQQRJDQQgAkECdCEGIAEoAgQhBAwCCyAJQQJqIQQgCUECdCEGAkADQCAGQXxGBEBBACEEDAILIARBAWshBCACIAZqIAZBBGshBigCAEUNAAsgBCAFSw0BCyABIAQ2AgggBCEFCyAFIAEoAgAiAkECdk8NAiACQQJ0IQYgASgCBCEEIAVFDQAgBCAGQQQgBUECdCICEIQFIgoNAUEEIAIQgwUAC0EEIQogBCAGEJQFQQAhBQsgASAFNgIAIAEgCjYCBAtBACEFAkACQAJAIAdFDQAgDCASQQJ0aigCAARAIAchBSAMIQYMAgsgDkECdCADQQJ0ayEGIBJBAmohBANAIAZBfEYNASAEQQFrIQQgBiAMaiAGQQRrIQYoAgBFDQALIAcgBCAEIAdLGyEFCyAHQQJ2IAVNBEAgDCEGDAELIAdBAnQhAiAFRQRAQQQhBiAMIAIQlAVBACEFQQAhBwwBCyAFIQcgDCACQQQgBUECdCICEIQFIgZFDQELIAAgBTYCCCAAIAY2AgQgACAHNgIAIAAgASkCADcCDCAAQRRqIAFBCGooAgA2AgAPC0EEIAIQgwUAC94LAQ5/IwBBMGsiBCQAQQghDkEIIQ8CQAJAAkAgASgCCCIKRQ0AIApBBXQhCCAKQf///x9LBEAMAgsgASgCBCEJQbnRwgAtAAAaQQghBSAIQQgQiwUiD0UNASAKQQV0IQwgCiEGA0AgByAMRg0BIAcgD2oiBSAHIAlqIggpAwA3AwAgBUEYaiAIQRhqKQMANwMAIAVBEGogCEEQaikDADcDACAFQQhqIAhBCGopAwA3AwAgB0EgaiEHIAZBAWsiBg0ACwsgBCAKNgIIIAQgDzYCBCAEIAo2AgACQAJAIAEoAhQiB0UNACAHQQV0IQUgB0H///8fSwRAQQAhBgwCCyABKAIQIQxBACEIQbnRwgAtAAAaQQghBiAFQQgQiwUiDkUNASAHQQV0IQ0gByEGA0AgCCANRg0BIAggDmoiBSAIIAxqIgkpAwA3AwAgBUEYaiAJQRhqKQMANwMAIAVBEGogCUEQaikDADcDACAFQQhqIAlBCGopAwA3AwAgCEEgaiEIIAZBAWsiBg0ACwsgBCAHNgIUIAQgDjYCECAEIAc2AgxBCCEMQQghDQJAAkAgASgCICIIRQ0AIAhBBXQhCSAIQf///x9LBEBBACEGDAILIAEoAhwhEEEAIQVBudHCAC0AABpBCCEGIAlBCBCLBSINRQ0BIAhBBXQhESAIIQkDQCAFIBFGDQEgBSANaiIGIAUgEGoiCykDADcDACAGQRhqIAtBGGopAwA3AwAgBkEQaiALQRBqKQMANwMAIAZBCGogC0EIaikDADcDACAFQSBqIQUgCUEBayIJDQALCyAEIAg2AiAgBCANNgIcIAQgCDYCGAJAAkAgASgCLCIFRQ0AIAVBBXQhCyAFQf///x9LBEBBACEJDAILIAEoAighEEEAIQZBudHCAC0AABpBCCEJIAtBCBCLBSIMRQ0BIAVBBXQhESAFIQEDQCAGIBFGDQEgBiAMaiIJIAYgEGoiCykDADcDACAJQRhqIAtBGGopAwA3AwAgCUEQaiALQRBqKQMANwMAIAlBCGogC0EIaikDADcDACAGQSBqIQYgAUEBayIBDQALCyAEIAU2AiwgBCAMNgIoIAQgBTYCJAJAQQJBACADGyACaiICQQFqIgEgCk8EQCABIApLBEAgCkEFdCEGA0AgBCgCACAKRgRAIAQQ2QMgBCgCBCEPCyAGIA9qIgFCADcDACABQRhqQgA3AwAgAUEQakIANwMAIAFBCGpCADcDACAEIApBAWoiATYCCCAGQSBqIQYgAiAKRyABIQoNAAsLIAcgAkECaiIBSw0GIAEgB0sEQCAHQQV0IQYDQCAEKAIMIAdGBEAgBEEMahDZAyAEKAIQIQ4LIAYgDmoiA0IANwMAIANBGGpCADcDACADQRBqQgA3AwAgA0EIakIANwMAIAQgB0EBaiIHNgIUIAZBIGohBiABIAdHDQALCyABIAhJDQYgASAISwRAIAhBBXQhBwNAIAQoAhggCEYEQCAEQRhqENkDIAQoAhwhDQsgByANaiIDQgA3AwAgA0EYakIANwMAIANBEGpCADcDACADQQhqQgA3AwAgBCAIQQFqIgg2AiAgB0EgaiEHIAEgCEcNAAsLIAUgAkEFaiICSw0BIAIgBUsEQCAFQQV0IQcDQCAEKAIkIAVGBEAgBEEkahDZAyAEKAIoIQwLIAcgDGoiAUIANwMAIAFBGGpCADcDACABQRBqQgA3AwAgAUEIakIANwMAIAQgBUEBaiIFNgIsIAdBIGohByACIAVHDQALCyAAIAQpAgA3AgAgACAEKQIMNwIMIAAgBCkCGDcCGCAAIAQpAiQ3AiQgAEEIaiAEQQhqKAIANgIAIABBFGogBEEUaigCADYCACAAQSBqIARBIGooAgA2AgAgAEEsaiAEQSxqKAIANgIAIARBMGokAA8LDAULDAQLIAkgCxCDBQALIAYgCRCDBQALIAYgBRCDBQALIAUgCBCDBQALQfitwABBHkGYrsAAELkEAAulCwIBfxB+IwBB8AJrIgMkACADQcgCaiABIAIQ2wIgAAJ/IAMtAMgCRQRAIANByABqIAMpA+gCIg5CgYiA8Leuf0IAEPwDIANBiAFqIAMpA+ACIg9CgYiA8Leuf0IAEPwDIANByAFqIAMpA9gCIhBCgYiA8Leuf0IAEPwDIANBiAJqIAMpA9ACIgxCgYiA8Leuf0IAEPwDIANBGGpCACADKQNIIgR9QpGAgICAgICACEIAEPwDIANB2ABqIA5C//+/mBNCABD8AyADQZgBaiAPQv//v5gTQgAQ/AMgA0HYAWogEEL//7+YE0IAEPwDIANBmAJqIAxC//+/mBNCABD8AyADQShqQgAgBEIAUq0iCSADQdAAaikDACIGIAMpA4gBfCIEfCIKIAMpA1h8Igt9QpGAgICAgICACEIAEPwDIANB6ABqIA5CgIC+e0IAEPwDIANBqAFqIA9CgIC+e0IAEPwDIANB6AFqIBBCgIC+e0IAEPwDIANBqAJqIAxCgIC+e0IAEPwDIANBOGpCACALQgBSrSIIIAkgClatIgcgA0GQAWopAwAgBCAGVK18IgUgAykDyAF8IgZ8IhEgAykDmAF8Ig0gA0HgAGopAwAgCiALVq18fCIEfCISIAMpA2h8IhN9QpGAgICAgICACEIAEPwDIANB+ABqIA5CkJCC8LWV9f8HQgAQ/AMgA0G4AWogD0KQkILwtZX1/wdCABD8AyADQfgBaiAQQpCQgvC1lfX/B0IAEPwDIANBuAJqIAxCkJCC8LWV9f8HQgAQ/AMgA0EIakIAIANB8ABqKQMAIBIgE1atfCIJIAMpA6gBfCILIANB0AFqKQMAIAUgBlatfCIGIAMpA4gCfCIKIAMpAxh8IgUgByARVq18Ig4gAykD2AF8IgwgBCANVK0gA0GgAWopAwAgDSARVK18fHwiDSAIIBJWrXwiBHwiByATQgBSrXwiDyADKQN4fCIQfUKRgICAgICAgAhCABD8AwJAAkAgA0HAAmopAwAgA0FAaykDACAHIAtUrSADQbABaikDACAJIAtWrXx8IgsgAykD6AF8IhEgBCANVK0iCCADKQMofCISIAUgDlatIANBIGopAwAgBSAKVK18fCIFIANBkAJqKQMAIAYgClatfHwiEyADKQOYAnwiCiAMIA1WrSADQeABaikDACAMIA5UrXx8fCIJfCIGfCIMIAcgD1atfCIHIAxUrSIEIAMpAzh8Ig0gBFStfCANIAMpA6gCIAUgE1athCIFIAkgClStIANBoAJqKQMAIAogE1StfHx8IgogBiASVK0gA0EwaikDACAIIBJWrXx8fCIIIAwgEVStIANB8AFqKQMAIAsgEVatfHx8IgR8IgkgDVStfCIGIAQgCFStIAggClStIANBsAJqKQMAIAUgClatfHx8fCILIAMpA7gCfCIIIAtUrXwgCCADQYACaikDACADQcABaikDACADQYABaikDACAPIBBWrXwiBCADKQO4AXwiBSAEVK18IAUgB3wiByAFVK18IgQgAykD+AF8IgUgBFStfCAFIAl8IgQgBVStfHwiBSAIVK18IAYgC1atfCADQRBqKQMAIAQgBCAHIBBCAFKtfCIGIAdUrXwiBFatIgkgAykD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AkHQAmogAUEQaikDADcDACACQdgCaiABQRhqKQMANwMAIAJB4AJqIAFBIGopAwA3AwAgAkHoAmogAUEoaikDADcDACACQfACaiABQTBqKQMANwMAIAJB+AJqIAFBOGopAwA3AwAgAiABKQMINwPIAiABKAIEIQ4gASgCACEHIAUEQCABIAVBBXQQlAULIAJBuANqIAJBwAFqEOoDIAIoArwDIQEgAigCuAMhBSACKALAAyIDQQJHDQEgAkGIA2oiCCABQRBqKQMANwMAIAJBkANqIgkgAUEYaikDADcDACACQZgDaiABQSBqKQMANwMAIAJBoANqIgogAUEoaikDADcDACACQagDaiILIAFBMGopAwA3AwAgAkGwA2oiBCABQThqKQMANwMAIAIgASkDCDcDgAMgASgCBCEGIAEoAgAhAyAFBEAgASAFQQV0EJQFCyAAIAIpA5gDNwOgASAAIAY2AoQBIAAgAzYCgAEgACAMNgIEIAAgDTYCACAAQYgBaiACKQOAAzcDACAAQZgBaiAJKQMANwMAIABBkAFqIAgpAwA3AwAgAEGoAWogCikDADcDACAAQbABaiALKQMANwMAIABBuAFqIAQpAwA3AwAgACAONgJEIAAgBzYCQCAAQRhqIAJBoAJqKQMANwMAIABBEGogAkGYAmopAwA3AwAgACACKQOQAjcDCCAAQThqIAJBwAJqKQMANwMAIABBMGogAkG4AmopAwA3AwAgAEEoaiACQbACaikDADcDACAAIAIpA6gCNwMgIABByABqIAIpA8gCNwMAIABB0ABqIAJB0AJqKQMANwMAIABB2ABqIAJB2AJqKQMANwMAIABB+ABqIAJB+AJqKQMANwMAIABB8ABqIAJB8AJqKQMANwMAIABB6ABqIAJB6AJqKQMANwMAIAAgAikD4AI3A2AgAkGABWokAA8LIAIgATYCwAMgAiAENgK8AyACIAY2ArgDQYSmwQBBKyACQbgDakHQrsEAQcCuwQAQ/QMACyACIAM2AsADIAIgATYCvAMgAiAFNgK4A0GEpsEAQSsgAkG4A2pB0K3BAEGgrsEAEP0DAAvOCwIKfwF+IwBB4ABrIgMkAAJAAkACQAJAIAIoAggiBgRAIAEoAggiBEUEQCAAQQhqQayZwgAoAgAiATYCACAAQaSZwgApAgAiDTcCACAAIA03AgwgAEEUaiABNgIADAQLIAIoAgQhCQJAAkACQCAGQQFHBEACQEF/IAQgBkcgBCAGSRsiCA0AIARBAnQhByAJQQRrIQsgBkECdCEFIAEoAgRBBGshDANAIAcEQCAFRQ0GIAcgDGohCCAFIAtqIQogB0EEayEHIAVBBGshBUF/IAooAgAiCiAIKAIAIghHIAggCkkbIghFDQEMAgsLQX9BACAFGyEICyAIQf8BcQ4CAgMBCyAJKAAAQQFHBEAgBEECdCECIARB/////wFLBEBBACEBDAkLIAEoAgQhBUG50cIALQAAGkEEIQEgAkEEEIsFIgZFDQggBiAFIAIQrQUhASADIAQ2AlwgAyABNgJYIAMgBDYCVCADQTBqIgUgA0HUAGogCSgCABCrAiADQQhqIgQgA0E4aiIBKAIANgIAIAMgAykCMDcDACADKAI8IQIgAUGsmcIAKAIANgIAIANBpJnCACkCADcDMCACBEAgBRDbAyADKAI0IAI2AgAgA0EBNgI4CyAAIAMpAzA3AgwgAEEUaiABKAIANgIAIABBCGogBCgCADYCACAAIAMpAwA3AgAMBwsgBEECdCECIARB/////wFLBEBBACEBDAgLIAEoAgQhBUG50cIALQAAGkEEIQEgAkEEEIsFIgZFDQcgBiAFIAIQrQUhASAAIAQ2AgggACABNgIEIAAgBDYCACAAQaSZwgApAgA3AgwgAEEUakGsmcIAKAIANgIADAYLIARBAnQhAiAEQf////8BSwRAQQAhAQwHCyABKAIEIQVBudHCAC0AABpBBCEBIAJBBBCLBSIGRQ0GIAYgBSACEK0FIQEgACAENgIUIAAgATYCECAAIAQ2AgwgAEGkmcIAKQIANwIAIABBCGpBrJnCACgCADYCAAwFC0G50cIALQAAGkEEQQQQiwUiAUUNAiAAQQE2AgggACABNgIEIABBATYCACABQQE2AgAgAEGkmcIAKQIANwIMIABBFGpBrJnCACgCADYCAAwECyAGQQJ0IAlqQQRrKAIAIgVnIgdFBEAgBEECdCECIARB/////wFLBEBBACEBDAYLIAEoAgQhBUG50cIALQAAGkEEIQEgAkEEEIsFIgdFDQUgByAFIAIQrQUhASADIAQ2AjggAyABNgI0IAMgBDYCMCAAIANBMGogCSAGELYBDAQLIAMgATYCNCADQYCAgIB4NgIwIANByABqIgYgA0EwaiIBIAVFIgQgB0EfcSIFEKMBIAMgAjYCNCADQYCAgIB4NgIwIANB1ABqIAEgBCAFEKMBIAEgBiADKAJYIgEgAygCXBC2ASADQRhqIANBOGooAgA2AgAgA0EoaiADQcQAaigCADYCACADIAMpAjA3AxAgAyADKQI8NwMgIAMoAlQiAgRAIAEgAkECdBCUBQsCQCADKAIkIgEgA0EgaiADKAIgIgJBgICAgHhGGygCCEUEQCACQYCAgIB4RgRAIAEoAgQhBgJAIAEoAggiAkUEQEEEIQRBACEFDAELIAJBAnQhBSACQf////8BSwRAQQAhAQwHC0G50cIALQAAGkEEIQEgBUEEEIsFIgRFDQYLIAQgBiAFEK0FIQEgAyACNgI4IAMgATYCNCADIAI2AjAMAgsgAyADKAIoNgI4IAMgATYCNCADIAI2AjAMAQsgA0EwaiADQSBqIAQgBRD3AQsgACADKQMQNwIAIAAgAykCMDcCDCAAQQhqIANBGGooAgA2AgAgAEEUaiADQThqKAIANgIADAMLIANBADYCQCADQQE2AjQgA0GUmMIANgIwIANCBDcCOCADQTBqQbCZwgAQzQQAC0EEQQQQqAUACyABIAUQgwUACyADQeAAaiQADwsgASACEIMFAAu7DQERfyMAQYAMayIBJAAgAUHgBmoiAkH4/8AAQaACEK0FGiACQaCTwQBBMBCuBQRAIAFChoT89+PkrIUENwOIByABQumA04fqo6OKbzcDgAcgAUL69sqZmOa81Gw3A/gGIAFC6bqml5rJjvQHNwPwBiABQv3/n+qu/v/bMjcD6AYgAUKu1fL/////+sMANwPgBgsgAUGQB2pBoJPBAEEwEK4FBEAgAUKazf/Lo73EgBo3A7gHIAFC19mumuT26Y3LADcDsAcgAUK/pZScz/DSu+QANwOoByABQqTsw7WP1LSY5wA3A6AHIAFC///Piuv//9UeNwOYByABQqvV/v///7//uX83A5AHCyABQcAHakGgk8EAQTAQrgUEQCABQprN/8ujvcSAGjcD6AcgAULX2a6a5PbpjcsANwPgByABQr+llJzP8NK75AA3A9gHIAFCpOzDtY/UtJjnADcD0AcgAUL//8+K6///1R43A8gHIAFCq9X+////v/+5fzcDwAcLIAFB8AdqQaCTwQBB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B3wiByAEVK18IAcgAkGYAWopAwAgAikDkAEiBCAGfCIGIARUrXwgBiACQYgBaikDACACKQOAASIEIAN8IgMgBFStfCADIAJB+ABqKQMAIAogC1StfHwiBCADVK18fCIDIAZUrXx8IgYgB1StfHwiByAIVK18fCILIAIpAwB8IgggC1StfCAIIAggAkEYaikDACAHIAcgAikDEHwiB1atfCAHIAcgAkEoaikDACAGIAYgAikDIHwiBlatfCAGIAYgAkE4aikDACADIAMgAikDMHwiA1atfCADIAMgAkHIAGopAwAgAikDQCIMIAR8IgQgDFStfCAEIAJB2ABqKQMAIAogAikDUCIKfCAKVK18fCIMIARUrXx8IgNWrXx8IgZWrXx8IgdWrXx8IghWrXwiCiAFIAtWrSACQcgBaikDACAFIBNUrXx8IgUgCXwiCXwiBCAKVK0gBSAJVq18IQkgAUEIayIBQXhHDQALAkACQCAJQgBSIARCms3/y6O9xIAaVnINAAJAIARCms3/y6O9xIAaUQRAIAhC19mumuT26Y3LAFYNAiAIQtfZrprk9umNywBSBEAgAyEFIAYhCSAHIQogCCELQprN/8ujvcSAGiEEDAQLIAdCv6WUnM/w0rvkAFYNAkLX2a6a5PbpjcsAIQsgB0K/pZScz/DSu+QAUgRAIAMhBSAGIQkgByEKQprN/8ujvcSAGiEEDAQLIAZCpOzDtY/UtJjnAFYNAkK/pZScz/DSu+QAIQogBkKk7MO1j9S0mOcAUgRAIAMhBSAGIQlCms3/y6O9xIAaIQQMBAsgA0L//8+K6///1R5WDQJCpOzDtY/UtJjnACEJIANC///Piuv//9UeUQ0BIAMhBUKazf/Lo73EgBohBAwDCyADIQUgBiEJIAchCiAIIQsMAgtC///Piuv//9UeIQUgDEKr1f7///+//7l/Wg0AQprN/8ujvcSAGiEEDAELIANC///Piuv//9UefSIJIAxCq9X+////v/+5f1StIgp9IQUgBkKk7MO1j9S0mOcAfSILIANC///Piuv//9UeVCAJIApUcq0iA30hCSAHQr+llJzP8NK75AB9Ig0gBkKk7MO1j9S0mOcAVCADIAtWcq0iA30hCiAIQtfZrprk9umNywB9IgYgB0K/pZScz/DSu+QAVCADIA1Wcq0iA30hCyAEIAhC19mu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GiAEBEAgAyAEQaACbBCUBQsgAiAFNgIEIAIgATYCACACQQhqIAJBoAJqQZgCEK0FGiACQegGaiILIAIQ0gEgAEEoaiACQZAHaiIMKQMANwMAIABBIGogAkGIB2oiDSkDADcDACAAQRhqIAJBgAdqIg4pAwA3AwAgAEEQaiACQfgGaiIPKQMANwMAIABBCGogAkHwBmoiECkDADcDACAAIAIpA+gGNwMAIAAgAikDmAc3AzAgAEE4aiACQaAHaiIRKQMANwMAIABBQGsgAkGoB2oiEikDADcDACAAQcgAaiACQbAHaiITKQMANwMAIABB0ABqIAJBuAdqIhQpAwA3AwAgAEHYAGogAkHAB2oiFSkDADcDACAAQYgBaiACQfAHaiIWKQMANwMAIABBgAFqIAJB6AdqIhcpAwA3AwAgAEH4AGogAkHgB2oiGCkDADcDACAAQfAAaiACQdgHaiIZKQMANwMAIABB6ABqIAJB0AdqIhopAwA3AwAgACACKQPIBzcDYCAAQbgBaiACQaAIaiIbKQMANwMAIABBsAFqIAJBmAhqIhwpAwA3AwAgAEGoAWogAkGQCGoiHSkDADcDACAAQaABaiACQYgIaiIeKQMANwMAIABBmAFqIAJBgAhqIh8pAwA3AwAgACACKQP4BzcDkAEgAEHoAWogAkHQCGoiICkDADcDACAAQeABaiACQcgIaiIGKQMANwMAIABB2AFqIAJBwAhqIgcpAwA3AwAgAEHQAWogAkG4CGoiCCkDADcDACAAQcgBaiACQbAIaiIJKQMANwMAIAAgAikDqAg3A8ABIABBmAJqIAJBgAlqIgopAwA3AwAgAEGQAmogAkH4CGoiAykDADcDACAAQYgCaiACQfAIaiIEKQMANwMAIABBgAJqIAJB6AhqIgUpAwA3AwAgAEH4AWogAkHgCGoiASkDADcDACAAIAIpA9gINwPwASALIAJBuARqENIBIABByAJqIAwpAwA3AwAgAEHAAmogDSkDADcDACAAQbgCaiAOKQMANwMAIABBsAJqIA8pAwA3AwAgAEGoAmogECkDADcDACAAIAIpA+gGNwOgAiAAIAIpA5gHNwPQAiAAQdgCaiARKQMANwMAIABB4AJqIBIpAwA3AwAgAEHoAmogEykDADcDACAAQfACaiAUKQMANwMAIABB+AJqIBUpAwA3AwAgAEGoA2ogFikDADcDACAAQaADaiAXKQMANwMAIABBmANqIBgpAwA3AwAgAEGQA2ogGSkDADcDACAAQYgDaiAaKQMANwMAIAAgAikDyAc3A4ADIABB2ANqIBspAwA3AwAgAEHQA2ogHCkDADcDACAAQcgDaiAdKQMANwMAIABBwANqIB4pAwA3AwAgAEG4A2ogHykDADcDACAAIAIpA/gHNwOwAyAAQYgEaiAgKQMANwMAIABBgARqIAYpAwA3AwAgAEH4A2ogBykDADcDACAAQfADaiAIKQMANwMAIABB6ANqIAkpAwA3AwAgACACKQOoCDcD4AMgAEG4BGogCikDADcDACAAQbAEaiADKQMANwMAIABBqARqIAQpAwA3AwAgAEGgBGogBSkDADcDACAAQZgEaiABKQMANwMAIAAgAikD2Ag3A5AEIAJBsAtqJAAPCyACIAE2AvAGIAIgAzYC7AYgAiAENgLoBkGEpsEAQSsgAkHoBmpBgK/BAEHwrsEAEP0DAAu7CwIBfxF+IwBBgAJrIgIkACACQfABakIANwMAIAJB6AFqQgA3AwAgAkHgAWpCADcDACACQdgBakIANwMAIAJCADcD0AEgAkIBNwP4ASABKQMAIQ0gASkDCCEOIAEpAxAhDyABKQMYIRAgASkDICERIAEpAyghEkEoIQEDQCACQfAAaiACQdABaiABaikDACIFIBJCABD8AyACQYABaiAFIBFCABD8AyACQZABaiAFIBBCABD8AyACQaABaiAFIA9CABD8AyACQbABaiAFIA5CABD8AyACQcABaiAFIA1CABD8AyACQeAAaiACKQNwIgsgDHwiCkIAQv3/8//P///5iX8Q/AMgAkHQAGogAkHoAGopAwAiBUKr1f7///+//7l/QgAQ/AMgAkFAayAFQv//z4rr///VHkIAEPwDIAJBMGogBUKk7MO1j9S0mOcAQgAQ/AMgAkEgaiAFQr+llJzP8NK75ABCABD8AyACQRBqIAVC19mumuT26Y3LAEIAEPwDIAIgBUKazf/Lo73EgBpCABD8AyACQQhqKQMAIAIpA8ABIhMgBHwiBSACQbgBaikDACACKQOwASIEIAh8IgggBFStfCAIIAJBqAFqKQMAIAIpA6ABIgQgB3wiByAEVK18IAcgAkGYAWopAwAgAikDkAEiBCAGfCIGIARUrXwgBiACQYgBaikDACACKQOAASIEIAN8IgMgBFStfCADIAJB+ABqKQMAIAogC1StfHwiBCADVK18fCIDIAZUrXx8IgYgB1StfHwiByAIVK18fCILIAIpAwB8IgggC1StfCAIIAggAkEYaikDACAHIAcgAikDEHwiB1atfCAHIAcgAkEoaikDACAGIAYgAikDIHwiBlatfCAGIAYgAkE4aikDACADIAMgAikDMHwiA1atfCADIAMgAkHIAGopAwAgAikDQCIMIAR8IgQgDFStfCAEIAJB2ABqKQMAIAogAikDUCIKfCAKVK18fCIMIARUrXx8IgNWrXx8IgZWrXx8IgdWrXx8IghWrXwiCiAFIAtWrSACQcgBaikDACAFIBNUrXx8IgUgCXwiCXwiBCAKVK0gBSAJVq18IQkgAUEIayIBQXhHDQALAkACQCAJQgBSIARCms3/y6O9xIAaVnINAAJAIARCms3/y6O9xIAaUQRAIAhC19mumuT26Y3LAFYNAiAIQtfZrprk9umNywBSBEAgAyEFIAYhCSAHIQogCCELQprN/8ujvcSAGiEEDAQLIAdCv6WUnM/w0rvkAFYNAkLX2a6a5PbpjcsAIQsgB0K/pZScz/DSu+QAUgRAIAMhBSAGIQkgByEKQprN/8ujvcSAGiEEDAQLIAZCpOzDtY/UtJjnAFYNAkK/pZScz/DSu+QAIQogBkKk7MO1j9S0mOcAUgRAIAMhBSAGIQlCms3/y6O9xIAaIQQMBAsgA0L//8+K6///1R5WDQJCpOzDtY/UtJjnACEJIANC///Piuv//9UeUQ0BIAMhBUKazf/Lo73EgBohBAwDCyADIQUgBiEJIAchCiAIIQsMAgtC///Piuv//9UeIQUgDEKr1f7///+//7l/Wg0AQprN/8ujvcSAGiEEDAELIANC///Piuv//9UefSIJIAxCq9X+////v/+5f1StIgp9IQUgBkKk7MO1j9S0mOcAfSILIANC///Piuv//9UeVCAJIApUcq0iA30hCSAHQr+llJzP8NK75AB9Ig0gBkKk7MO1j9S0mOcAVCADIAtWcq0iA30hCiAIQtfZrprk9umNywB9IgYgB0K/pZScz/DSu+QAVCADIA1Wcq0iA30hCyAEIAhC19mumuT26Y3LAFQgAyAGVnKtfUKazf/Lo73EgBp9IQQgDELVqoGAgIDA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AxA3ABAgAiADKQMYNwAYIAIgAykDIDcAICACIAMpAyg3ACggAEE8aiACQTBBCBCMAyACQTAQlAUgAyABQaACahCNAUG50cIALQAAGkEwQQEQiwUiAkUNACACIAMpAwA3AAAgAiADKQMINwAIIAIgAykDEDcAECACIAMpAxg3ABggAiADKQMgNwAgIAIgAykDKDcAKCAAQcgAaiACQTBBCBCMAyACQTAQlAUgAyABQdACahCNAUG50cIALQAAGkEwQQEQiwUiAkUNACACIAMpAwA3AAAgAiADKQMINwAIIAIgAykDEDcAECACIAMpAxg3ABggAiADKQMgNwAgIAIgAykDKDcAKCAAQdQAaiACQTBBCBCMAyACQTAQlAUgAyABQYADahCNAUG50cIALQAAGkEwQQEQiwUiAkUNACACIAMpAwA3AAAgAiADKQMINwAIIAIgAykDEDcAECACIAMpAxg3ABggAiADKQMgNwAgIAIgAykDKDcAKCAAQeAAaiACQTBBCBCMAyACQTAQlAUgAyABQbADahCNAUG50cIALQAAGkEwQQEQiwUiAkUNACACIAMpAwA3AAAgAiADKQMINwAIIAIgAykDEDcAECACIAMpAxg3ABggAiADKQMgNwAgIAIgAykDKDcAKCAAQewAaiACQTBBCBCMAyACQTAQlAUgAyABQeADahCNAUG50cIALQAAGkEwQQEQiwUiAkUNACACIAMpAwA3AAAgAiADKQMINwAIIAIgAykDEDcAECACIAMpAxg3ABggAiADKQMgNwAgIAIgAykDKDcAKCAAQfgAaiACQTBBCBCMAyACQTAQlAUgAyABQZAEahCNAUG50cIALQAAGkEwQQEQiwUiAUUNACABIAMpAwA3AAAgASADKQMINwAIIAEgAykDEDcAECABIAMpAxg3ABggASADKQMgNwAgIAEgAykDKDcAKCAAQYQBaiABQTBBCBCMAyABQTAQlAUgA0EwaiQADwsLQQFBMBCDBQAL0wkBG38jAEEwayIEJAAgAigCCCEGIAEoAgghByAEQRhqEO4CAkACQAJAIAYgB2pBAWsiBUUEQEEEIQgMAQsgBUEMbCIKQQBIIAVBqtWq1QBLcg0BQbnRwgAtAAAaQQQhAyAKQQQQiwUiCEUNAQsgBEEANgIsIAQgCDYCKCAEIAU2AiQgBEEkaiIIIAUg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DCAFIAdWrXx8fCINfCIFIANBmAFqKQMAIAMpA5ABIgcgCHwgB1StfHwiB0KblK/D8rWo3oZ/fiIIQm1CABD8AyADQeAAaiAIQn9CABD8AyADQdAAaiAIQv///////////wBCABD8AyADQSBqIAMpA2AiCCAEIANB6AFqKQMAIAYgClStfCIOIAMpA/ABfCIKIAMpAzB8IgsgCSANVq0gDCAGIAlWrXx8fCIGfCIJIAUgB1atIANBiAFqKQMAIgwgBCAFVq18fHwiDXwiBSADQfgAaikDACAHIAMpA3AiB3wgB1StfHwiB0KblK/D8rWo3oZ/fiIEQm1CABD8AyADQRBqIARCf0IAEPwDIAMgBEL///////////8AQgAQ/AMCQAJAIANBCGopAwAgA0HYAGopAwAgA0HIAGopAwAgAykDQCIPIANB+AFqKQMAIAogDlStfHwiBCAPVK18IAQgBCAGIAtUrSADQThqKQMAIAogC1atfHx8IgRWrXwgBCAEIAkgDVatIAwgBiAJVq18fHwiBFatfCIJIAMpA1B8IgYgCVStfCAGIANB6ABqKQMAIgkgBCAEIAh8IgRWrXwgBCAFIAdWrSAJIAUgCFStfHx8IgkgBFStfHwiBSAGVK18IgQgAykDAHwiCCAEVK18IAggCCADQRhqKQMAIgYgBSAFIAMpAxAiBHwiBVatfCAFIAUgBiAEIAQgCXwiBFatfCAEIANBKGopAwAgByADKQMgIgd8IAdUrXx8IgkgBFStfHwiBVatfHwiCFatfCIGQgBTDQACQCAGQv///////////wBaBEBCfyEEIAhCf1IEQCAFIQcgCCEEQv///////////wAhBgwECyAFQn9RDQEgBSEHQv///////////wAhBgwDCyAFIQcgCCEEDAILQn8hByAJQm1aDQBC////////////ACEGDAELIAVCAXwiBCAJQm1UrSIKfSEHIAhCAXwiCyAFQn9SIAQgClRyrSIFfSEEIAYgCEJ/UiAFIAtWcq19Qv///////////wB9IQYgCUITfCEJCyAAIAk3AxggACAHNwMQIAAgBDcDCCAAIAY3AwAgA0GgAmokAAuJIgISfwR+IwBB0AVrIgQkAAJAIAACfgJAAkACQAJAAkACQAJAAkACQCABKAIEIgUEQCABIAUgBSABKAIIIgggBSAISRsiBms2AgQgASABKAIAIgMgBkEFdGo2AgAgCEUNAiAEQagFaiIHIANBGGopAwA3AwAgBEGgBWoiCSADQRBqKQMANwMAIARBmAVqIgogA0EIaikDADcDACAEIAMpAwA3A5AFIAZBAUYNAyAEQaADaiILIANBOGopAwA3AwAgBEGYA2oiDCADQTBqKQMANwMAIARBkANqIg4gA0EoaikDADcDACAEIAMpAyA3A4gDIARBwAFqIgggBEGQBWoiASAEQYgDaiIFEEogBCgCwAENBCAEQTxqIARBgAJqKQMAIhU3AgAgBEE0aiAEQfgBaikDACIWNwIAIARBLGogBEHwAWopAwAiFzcCACAEQSRqIARB6AFqKQMAIhg3AgAgBEHYBGogBEHQAWopAwA3AwAgBEHgBGogBEHYAWopAwA3AwAgBEHoBGogBEHgAWopAwA3AwAgBEHwBGogGDcDACAEQfgEaiAXNwMAIARBgAVqIBY3AwAgBEGIBWogFTcDACAEIAQpA8gBNwPQBCAGQQJNDQUgBkEDRg0GIARByAVqIANB+ABqKQMANwMAIARBwAVqIANB8ABqKQMANwMAIARBuAVqIANB6ABqKQMANwMAIAogA0HIAGopAwA3AwAgCSADQdAAaikDADcDACAHIANB2ABqKQMANwMAIAQgAykDYDcDsAUgBCADKQNANwOQBSAGQQRNDQcgBkEFRg0IIARBwANqIANBuAFqKQMANwMAIARBuANqIANBsAFqKQMANwMAIARBsANqIANBqAFqKQMANwMAIA4gA0GIAWopAwA3AwAgDCADQZABaikDADcDACALIANBmAFqKQMANwMAIAQgAykDoAE3A6gDIAQgAykDgAE3A4gDIwBBwAhrIgMkACADQThqIAFBOGopAwA3AwAgA0EwaiABQTBqKQMANwMAIANBKGogAUEoaikDADcDACADQSBqIAFBIGopAwA3AwAgA0EYaiABQRhqKQMANwMAIANBEGogAUEQaikDADcDACADQQhqIAFBCGopAwA3AwAgA0HIAGogBUEIaikDADcDACADQdAAaiAFQRBqKQMANwMAIANB2ABqIAVBGGopAwA3AwAgA0HgAGogBUEgaikDADcDACADQegAaiAFQShqKQMANwMAIANB8ABqIAVBMGopAwA3AwAgA0H4AGogBUE4aikDADcDACADIAEpAwA3AwAgAyAFKQMANwNAIANB6AFqQgA3AwAgA0HgAWpCADcDACADQdgBakIANwMAIANB0AFqQgA3AwAgA0HIAWpCADcDACADQcABakIANwMAIANBuAFqQgA3AwAgA0IANwOwASADQUBrIQECQAJAAkACQAJAAkACQCADIANBsAFqIgUQ2AQEQCABIAUQ2AQNAQsgA0HoAWpCADcDACADQeABakIANwMAIANB2AFqQgA3AwAgA0HQAWpCADcDACADQcgBakIANwMAIANBwAFqQgA3AwAgA0G4AWpCADcDACADQgA3A7ABIAMgA0GwAWoiBRDYBARAIAEgBRDYBA0BCyADQbABahCkAiADQfADaiADQcgBaikDADcDACADQegDaiADQcABaikDADcDACADQeADaiADQbgBaikDADcDACADQYAEaiADQfgBaikDADcDACADQYgEaiADQYACaikDADcDACADQZAEaiADQYgCaikDADcDACADQaAEaiADQZgCaikDADcDACADQagEaiADQaACaikDADcDACADQbAEaiADQagCaikDADcDACADIAMpA7ABNwPYAyADIAMpA/ABNwP4AyADIAMpA5ACNwOYBCADQbgEaiIPIAEQeyADQYAHaiIFIANBCGoiBikDADcDACADQYgHaiINIANBEGoiBykDADcDACADQZAHaiIQIANBGGoiCSkDADcDACADQZgHaiIRIAMpAyA3AwAgA0GgB2oiEiADQShqIgopAwA3AwAgA0GoB2oiEyADQTBqIgspAwA3AwAgA0GwB2oiFCADQThqIgwpAwA3AwAgAyADKQMANwP4BiADQYAGaiAFKQMANwMAIANBiAZqIA0pAwA3AwAgA0GQBmogECkDADcDACADQZgGaiARKQMANwMAIANBoAZqIBIpAwA3AwAgA0GoBmogEykDADcDACADQbAGaiAUKQMANwMAIAMgAykD+AY3A/gFIANBuAZqIgUgA0H4BWoQeyADQdAHaiAJKQMANwMAIANByAdqIAcpAwA3AwAgA0HAB2ogBikDADcDACADQeAHaiAKKQMANwMAIANB6AdqIAspAwA3AwAgA0HwB2ogDCkDADcDACADIAMpAwA3A7gHIAMgAykDIDcD2AcgA0G4BWoiDSAFIANBuAdqEC0gA0GACGogBikDADcDACADQYgIaiAHKQMANwMAIANBkAhqIAkpAwA3AwAgA0GgCGogCikDADcDACADQagIaiALKQMANwMAIANBsAhqIAwpAwA3AwAgAyADKQMANwP4ByADIAMpAyA3A5gIIAUgA0HYA2ogA0H4B2oQZSADQfgEaiIGIA0gBRDKAiAFIAYgA0H4A2oQygIgDyAFENgEIAMoAsQDIgUEQCADKALIAyAFQQJ0EJQFCwJAIAMoApQDIgVFDQAgBSAFQQxsQRNqQXhxIgdqQQlqIgVFDQAgAygCkAMgB2sgBRCUBQsNACADQegBaiADQThqKQMANwMAIANB4AFqIANBMGopAwA3AwAgA0HYAWogA0EoaikDADcDACADQdABaiADQSBqKQMANwMAIANByAFqIANBGGopAwA3AwAgA0HAAWogA0EQaikDADcDACADQbgBaiADQQhqKQMANwMAIAMgAykDADcDsAEgA0H4B2ogA0GwAWoQ6gMgAygC/AchBSADKAL4ByEGIAMoAoAIIgdBAkcNASADQYAIaiAFQRBqKQMANwMAIANBiAhqIAVBGGopAwA3AwAgA0GQCGogBUEgaikDADcDACADQZgIaiAFQShqKQMANwMAIANBoAhqIAVBMGopAwA3AwAgA0GoCGogBUE4aikDADcDACADIAUpAwg3A/gHIAUoAgQhByAFKAIAIQkgBgRAIAUgBkEFdBCUBQsgA0HIB2ogA0GACGopAwA3AwAgA0HQB2ogA0GICGopAwA3AwAgA0HgB2ogA0GYCGopAwA3AwAgA0HoB2ogA0GgCGopAwA3AwAgA0HwB2ogA0GoCGopAwA3AwAgAyAHNgK8ByADIAk2ArgHIAMgAykD+Ac3A8AHIAMgAykDkAg3A9gHIANB6AFqIAFBOGopAwA3AwAgA0HgAWogAUEwaikDADcDACADQdgBaiABQShqKQMANwMAIANB0AFqIAFBIGopAwA3AwAgA0HIAWogAUEYaikDADcDACADQcABaiABQRBqKQMANwMAIANBuAFqIAFBCGopAwA3AwAgAyABKQMANwOwASADQfgHaiADQbABahDqAyADKAL8ByEBIAMoAvgHIQUgAygCgAgiBkECRw0CIANBgAdqIAFBEGopAwA3AwAgA0GIB2ogAUEYaikDADcDACADQZAHaiABQSBqKQMANwMAIANBmAdqIAFBKGopAwA3AwAgA0GgB2ogAUEwaikDADcDACADQagHaiABQThqKQMANwMAIAMgASkDCDcD+AYgASgCBCEGIAEoAgAhByAFBEAgASAFQQV0EJQFCyADQYgIaiADQYAHaiIFKQMANwMAIANBkAhqIANBiAdqKQMANwMAIANBoAhqIANBmAdqKQMANwMAIANBqAhqIANBoAdqKQMANwMAIANBsAhqIANBqAdqKQMANwMAIAMgBjYC/AcgAyAHNgL4ByADIAMpA/gGNwOACCADIAMpA5AHNwOYCCADQbgFaiIGIANBuAdqEN0BIANBADYCgAcgA0KAgICAEDcC+AYgA0EDOgDQASADQSA2AsABIANBADYCzAEgA0H4msEANgLIASADQQA2ArgBIANBADYCsAEgAyADQfgGaiIBNgLEASAGIANBsAFqIgYQkwMNBSADQYgBaiAFKAIANgIAIAMgAykC+AY3A4ABIANB+AVqIgcgA0HYB2oQ3QEgA0EANgKAByADQoCAgIAQNwL4BiADQQM6ANABIANBIDYCwAEgA0EANgLMASADQfiawQA2AsgBIANBADYCuAEgA0EANgKwASADIAE2AsQBIAcgBhCTAw0FIANBmAFqIAUoAgA2AgAgAyADKQL4BjcDkAEgA0G4BmoiByADQfgHahDdASADQQA2AoAHIANCgICAgBA3AvgGIANBAzoA0AEgA0EgNgLAASADQQA2AswBIANB+JrBADYCyAEgA0EANgK4ASADQQA2ArABIAMgATYCxAEgByAGEJMDDQUgA0GoAWogBSgCADYCACADIAMpAvgGNwOgASABIANBmAhqEN0BIANBADYCgAQgA0KAgICAEDcC+AMgA0EDOgDQASADQSA2AsABIANBADYCzAEgA0H4msEANgLIASADQQA2ArgBIANBADYCsAEgAyADQfgDajYCxAEgASAGEJMDDQUgA0HgA2ogA0GABGooAgA2AgAgAyADKQL4AzcD2AMgA0EFNgK8BCADQaCdwQA2ArgEIANCBDcCxAQgAyADQdgDaq1CgICAgIAIhDcDkAUgAyADQaABaq1CgICAgIAIhDcDiAUgAyADQZABaq1CgICAgIAIhDcDgAUgAyADQYABaq1CgICAgIAIhDcD+AQgAyADQfgEajYCwAQgCEEEaiADQbgEahCYAyADKALYAyIBBEAgAygC3AMgARCUBQsgAygCoAEiAQRAIAMoAqQBIAEQlAULIAMoApABIgEEQCADKAKUASABEJQFCyADKAKAASIBBEAgAygChAEgARCUBQsgCEEBNgIADAMLIAhBCGogA0GAARCtBRogCEEANgIADAILIAMgBzYCgAggAyAFNgL8ByADIAY2AvgHDAILIAMgBjYCgAggAyABNgL8ByADIAU2AvgHDAELIANBwAhqJAAMAgtBhKbBAEErIANB+AdqQdCtwQBBoK7BABD9AwALQZCbwQBBNyADQb8IakHIm8EAQaScwQAQ/QMACyAEKALAAUUNASAOIARBzAFqKAIANgIADAkLIABCAjcDAAwKCyAEQcABaiIBIARBBHIgBEHIAWpBgAEQrQVBgAEQrQUaIARByAJqIARB2ARqKQMANwMAIARB0AJqIARB4ARqKQMANwMAIARB2AJqIARB6ARqKQMANwMAIARB4AJqIARB8ARqKQMANwMAIARB6AJqIARB+ARqKQMANwMAIARB8AJqIARBgAVqKQMANwMAIARB+AJqIARBiAVqKQMANwMAIAQgBCkD0AQ3A8ACIARBiANqIgJBBHIgAUHAARCtBRogASACQcQBEK0FGiAEIARBxAFqQcABEK0FGkIBDAgLQQBBAEHMjMAAEJgEAAtBAUEBQdyMwAAQmAQACyAEQZADaiAEQcwBaigCADYCAAwEC0ECQQJB7IzAABCYBAALQQNBA0H8jMAAEJgEAAtBBEEEQYyNwAAQmAQAC0EFQQVBnI3AABCYBAALIAQgBCkCxAE3A4gDIAIoAgAiAUGAgICAeEYgAUVyRQRAIAIoAgQgARCUBQsgAiAEKQOIAzcCACACQQhqIARBkANqKAIANgIAQgALNwMAIABBCGogBEHAARCtBRoLIARB0AVqJAALwwkCC38EfiMAQfAAayIEJAAgAwRAIARBEGoiA0HgoMAAKAIANgIAIARB2KDAACkCADcDCCACBEAgBEEIahDbAyAEKAIMIAI2AgAgBEEBNgIQCyAEQegAaiADKAIANgIAIAQgBCkDCDcDYCAAKAIIIgMgACgCAEYEQCAAENwDCyAAKAIEIANBDGxqIgUgBCkDYDcCACAFQQhqIARB6ABqKAIANgIAIAAgA0EBajYCCAsgAgRAIAEgAkEwbGohC0HgoMAAKAIAIQpB2KDAACkC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BEECRw0BIAEoAgQhByABKAIAIQkgAkGQA2ogAUEIakHYABCtBRogAwRAIAEgA0EwbBCUBQsgAkGYBWogAkHAAWoQugQgAigCnAUhASACKAKYBSEDIAIoAqAFIgRBAkcNASABKAIEIQogASgCACEFIAJB6ANqIAFBCGpB2AAQrQUaIAMEQCABIANBMGwQlAULIAJBmAVqIAJBoAJqELoEIAIoApwFIQEgAigCmAUhAyACKAKgBSIEQQJHDQEgASgCBCEGIAEoAgAhBCACQcAEaiABQQhqQdgAEK0FGiADBEAgASADQTBsEJQFCyAAIAIpA+gENwPwASAAQcgBaiACKQPABDcDACAAQegBaiACQeAEaikDADcDACAAQeABaiACQdgEaikDADcDACAAQdgBaiACQdAEaikDADcDACAAQdABaiACQcgEaikDADcDACAAQfgBaiACQfAEaikDADcDACAAQYACaiACQfgEaikDADcDACAAQYgCaiACQYAFaikDADcDACAAQZACaiACQYgFaikDADcDACAAQZgCaiACQZAFaikDADcDACAAIAY2AsQBIAAgBDYCwAEgACAJNgIAIAAgBzYCBCAAIAIpA5ADNwMIIABBEGogAkGYA2opAwA3AwAgAEEYaiACQaADaikDADcDACAAQSBqIAJBqANqKQMANwMAIABBKGogAkGwA2opAwA3AwAgAEHYAGogAkHgA2opAwA3AwAgAEHQAGogAkHYA2opAwA3AwAgAEHIAGogAkHQA2opAwA3AwAgAEFAayACQcgDaikDADcDACAAQThqIAJBwANqKQMANwMAIAAgAikDuAM3AzAgACAKNgJkIAAgBTYCYCAAQYgBaiACQYgEaikDADcDACAAQYABaiACQYAEaikDADcDACAAQfgAaiACQfgDaikDADcDACAAQfAAaiACQfADaikDADcDACAAQegAaiACKQPoAzcDACAAQbgBaiACQbgEaikDADcDACAAQbABaiACQbAEaikDADcDACAAQagBaiACQagEaikDADcDACAAQaABaiACQaAEaikDADcDACAAQZgBaiACQZgEaikDADcDACAAIAIpA5AENwOQASACQcAHaiQADwsgAiABNgKgBSACIAU2ApwFIAIgBjYCmAVBhKbBAEErIAJBmAVqQbCuwQBBwK7BABD9AwALIAIgBDYCoAUgAiABNgKcBSACIAM2ApgFQYSmwQBBKyACQZgFakGwrcEAQaCuwQAQ/QMAC4gJAhF/AX4jAEHwAWsiAiQAIAJBoAFqIAEgASgCDBDQAgJAAkACQAJAAkAgAikDoAEiE0ICUgRAIAJBmAFqIgMgAkHgAWopAwA3AwAgAkGQAWoiBCACQdgBaikDADcDACACQYgBaiIFIAJB0AFqKQMANwMAIAJBgAFqIgYgAkHIAWopAwA3AwAgAkH4AGoiByACQcABaikDADcDACACQfAAaiIIIAJBuAFqKQMANwMAIAJB6ABqIgkgAkGwAWopAwA3AwAgAiACKQOoATcDYCATQgBSDQELIABBADYCCCAAQoCAgICAATcCAAwBCyACQdgAaiADKQMANwMAIAJB0ABqIAQpAwA3AwAgAkHIAGogBSkDADcDACACQUBrIAYpAwA3AwAgAkE4aiAHKQMANwMAIAJBMGogCCkDADcDACACQShqIAkpAwA3AwAgAiACKQNgNwMgAkAgASgCDCgCAEGAgICAeEcNACABKAIERQ0AIAEoAghFDQILQbnRwgAtAAAaQYACQQgQiwUiA0UNAyADIAIpAyA3AwAgA0E4aiACQdgAaiIHKQMANwMAIANBMGogAkHQAGoiCCkDADcDACADQShqIAJByABqIgkpAwA3AwAgA0EgaiACQUBrIgwpAwA3AwAgA0EYaiACQThqIg0pAwA3AwAgA0EQaiACQTBqIg4pAwA3AwAgA0EIaiACQShqKQMANwMAIAJBATYCDCACIAM2AgggAkEENgIEIAJBGGogAUEIaikCADcDACACIAEpAgA3AxAgAkGgAWogAkEQaiACKAIcENACAkAgAikDoAEiE0ICUQ0AIAJBqAFqIQFBwAAhBkEBIQUDQCACQZgBaiIEIAFBOGopAwA3AwAgAkGQAWoiCiABQTBqKQMANwMAIAJBiAFqIgsgAUEoaikDADcDACACQYABaiIPIAFBIGopAwA3AwAgAkH4AGoiECABQRhqKQMANwMAIAJB8ABqIhEgAUEQaikDADcDACACQegAaiISIAFBCGopAwA3AwAgAiABKQMANwNgIBNQDQEgByAEKQMANwMAIAggCikDADcDACAJIAspAwA3AwAgDCAPKQMANwMAIA0gECkDADcDACAOIBEpAwA3AwAgAkEoaiILIBIpAwA3AwAgAiACKQNgNwMgIAIoAhwhCiACKAIEIAVGBEACQCAKKAIAQYCAgIB4Rw0AIAIoAhRFDQAgAigCGEUNBgsgAkEEaiAFQQEQ0QMgAigCCCEDCyADIAZqIgQgAikDIDcDACAEQThqIAcpAwA3AwAgBEEwaiAIKQMANwMAIARBKGogCSkDADcDACAEQSBqIAwpAwA3AwAgBEEYaiANKQMANwMAIARBEGogDikDADcDACAEQQhqIAspAwA3AwAgAiAFQQFqIgU2AgwgAkGgAWogAkEQaiAKENACIAZBQGshBiACKQOgASITQgJSDQALCyAAQQhqIAJBDGooAgA2AgAgACACKQIENwIACyACQfABaiQADwtByKjBABDUBAALQciowQAQ1AQAC0EIQYACEIMFAAuwCgIBfxB+IwBB0AFrIgMkACABKQMAIQ4gASkDCCEPIAEpAxAhECABKQMYIREgASkDICESIAEpAyghE0EoIQEDQCADQfAAaiABIAJqKQMAIgUgE0IAEPwDIANBgAFqIAUgEkIAEPwDIANBkAFqIAUgEUIAEPwDIANBoAFqIAUgEEIAEPwDIANBsAFqIAUgD0IAEPwDIANBwAFqIAUgDkIAEPwDIANB4ABqIAMpA3AiCSANfCIKQgBC/f/z/8////mJfxD8AyADQdAAaiADQegAaikDACIFQqvV/v///7//uX9CABD8AyADQUBrIAVC///Piuv//9UeQgAQ/AMgA0EwaiAFQqTsw7WP1LSY5wBCABD8AyADQSBqIAVCv6WUnM/w0rvkAEIAEPwDIANBEGogBULX2a6a5PbpjcsAQgAQ/AMgAyAFQprN/8ujvcSAGkIAEPwDIANBCGopAwAgDCADKQPAASIMfCIFIANBuAFqKQMAIAcgAykDsAEiB3wiCyAHVK18IAsgA0GoAWopAwAgAykDoAEiByAIfCIIIAdUrXwgCCADQZgBaikDACADKQOQASIHIAZ8IgYgB1StfCAGIANBiAFqKQMAIAMpA4ABIgcgBHwiBCAHVK18IAQgA0H4AGopAwAgCSAKVq18fCIJIARUrXx8IgQgBlStfHwiBiAIVK18fCIIIAtUrXx8IgsgAykDAHwiByALVK18IAcgByADQRhqKQMAIAggCCADKQMQfCIIVq18IAggCCADQShqKQMAIAYgBiADKQMg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IAMoAgwbIQILIAAgAykCBDcCACAAIAI6AAwgAEEIaiADQQxqKAIANgIADAULIABBCGpBjO/BACkCADcCACAAQYTvwQApAgA3AgAgAigCACIARQ0DIAIoAgQgAEECdBCUBQwDCyADQThqIAFBCGooAgA2AgAgAyABKQIANwMwIANBIGogA0EwaiACEKgCIAIoAgAiAQRAIAIoAgQgAUECdBCUBQtBASECAkAgB0EBRgRAIANBADYCKCADKAIgQQRJDQEgA0EgahCTBAwBCyAHQQEgAygCKBshAgsgACADKQIgNwIAIAAgAjoADCAAQQhqIANBKGooAgA2AgAMAwsgA0E4aiACQQhqKAIANgIAIAMgAikCADcDMCADQSBqIANBMGogARCoAiABKAIAIgIEQCABKAIEIAJBAnQQlAULAkAgB0EBcQRAIANBADYCKEEBIQIgAygCIEEESQ0BIANBIGoQkwQMAQtBAiAHa0EBIAMoAigbIQILIAAgAykCIDcCACAAIAI6AAwgAEEIaiADQShqKAIANgIADAILIAJBDWohBAJAAkACQCAFQQFrDgIAAQILIABBAToADCAAIAIpAgA3AgAgACAELwAAOwANIABBCGogAkEIaigCADYCACAAQQ9qIARBAmotAAA6AAAMAgsgAEEAOgAMIAAgAikCADcCACAAIAQvAAA7AA0gAEEIaiACQQhqKAIANgIAIABBD2ogBEECai0AADoAAAwBCyAAQQI6AAwgACACKQIANwIAIAAgBC8AADsADSAAQQhqIAJBCGooAgA2AgAgAEEPaiAEQQJqLQAAOgAACyABKAIAIgBFDQAgASgCBCAAQQJ0EJQFCyADQUBrJAALnAoCAX8QfiMAQcABayIDJAAgASkDACEOIAEpAwghDyABKQMQIRAgASkDGCERIAEpAyAhEiABKQMoIRNBKCEBA0AgA0HgAGogASACaikDACIFIBNCABD8AyADQfAAaiAFIBJCABD8AyADQYABaiAFIBFCABD8AyADQZABaiAFIBBCABD8AyADQaABaiAFIA9CABD8AyADQbABaiAFIA5CABD8AyADQdAAaiADKQNgIgkgDXwiCkL9//P/z///+Yl/fiIFQqvV/v///7//uX9CABD8AyADQUBrIAVC///Piuv//9UeQgAQ/AMgA0EwaiAFQqTsw7WP1LSY5wBCABD8AyADQSBqIAVCv6WUnM/w0rvkAEIAEPwDIANBEGogBULX2a6a5PbpjcsAQgAQ/AMgAyAFQprN/8ujvcSAGkIAEPwDIANBCGopAwAgDCADKQOwASIMfCIFIANBqAFqKQMAIAcgAykDoAEiB3wiCyAHVK18IAsgA0GYAWopAwAgAykDkAEiByAIfCIIIAdUrXwgCCADQYgBaikDACADKQOAASIHIAZ8IgYgB1StfCAGIANB+ABqKQMAIAMpA3AiByAEfCIEIAdUrXwgBCADQegAaikDACAJIApWrXx8IgkgBFStfHwiBCAGVK18fCIGIAhUrXx8IgggC1StfHwiCyADKQMAfCIHIAtUrXwgByAHIANBGGopAwAgCCAIIAMpAxB8IghWrXwgCCAIIANBKGopAwAgBiAGIAMpAyB8IgZWrXwgBiAGIANBOGopAwAgBCAEIAMpAzB8IgRWrXwgBCAEIANByABqKQMAIAMpA0AiDSAJfCIJIA1UrXwgCSADQdgAaikDACAKIAMpA1AiCnwgClStfHwiDSAJVK18fCIEVq18fCIGVq18fCIIVq18fCIHVq18IAUgC1atIANBuAFqKQMAIAUgDFStfHx8IQwgAUEIayIBQXhHDQALAkACQCAMQprN/8ujvcSAGlYNACAMQprN/8ujvcSAGlIEQCAEIQUgBiEKIAghCyAHIQkMAgsgB0LX2a6a5PbpjcsAVg0AAkAgB0LX2a6a5PbpjcsAUgRAIAQhBSAGIQogCCELIAchCQwBCyAIQr+llJzP8NK75ABWDQFC19mumuT26Y3LACEJIAhCv6WUnM/w0rvkAFIEQCAEIQUgBiEKIAghCwwBCyAGQqTsw7WP1LSY5wBWDQFCv6WUnM/w0rvkACELIAZCpOzDtY/UtJjnAFIEQCAEIQUgBiEKDAELIARC///Piuv//9UeVg0BQqTsw7WP1LSY5wAhCiAEQv//z4rr///VHlIEQCAEIQUMAQtC///Piuv//9UeIQUgDUKq1f7///+//7l/Vg0BC0Kazf/Lo73EgBohDAwBCyAEQv//z4rr///VHn0iCiANQqvV/v///7//uX9UrSILfSEFIAZCpOzDtY/UtJjnAH0iCSAEQv//z4rr///VHlQgCiALVHKtIgR9IQogCEK/pZScz/DSu+QAfSIOIAZCpOzDtY/UtJjnAFQgBCAJVnKtIgR9IQsgB0LX2a6a5PbpjcsAfSIGIAhCv6WUnM/w0rvkAFQgBCAOVnKtIgR9IQkgDCAHQtfZrprk9umNywBUIAQgBlZyrX1Cms3/y6O9xIAafSEMIA1C1aqBgICAwIDGAHwhDQsgACANNwMoIAAgBTcDICAAIAo3AxggACALNwMQIAAgCTcDCCAAIAw3AwAgA0HAAWokAAvbCQIIfgJ/IwBBwAFrIgokACAKIAEpAwAgAUEIaikDABCOAyAKQSBqIgsgASkDECABQRhqKQMAEI4DIApBQGsgASkDICABQShqKQMAEI4DIApB4ABqIAEpAzAgAUE4aikDABCOAyAKQbgBakG4l8AAKQMANwMAIApBsAFqQbCXwAApAwA3AwAgCkGoAWpBqJfAACkDADcDACAKQaCXwAApAwA3A6ABIApBgAFqIApBoAFqIAsQugFCkYCAgICAgIAIIQIgCikDCCIFIAopA4gBfCIEIAVUIAQgCikDECIDIAopA5ABfCIFIANUIAUgCikDGCIGIAopA5gBfCIDIAZUrXwiBiAFVHKtfCIHIARUcq0gCikDgAEgCikDAHx8IgghBAJAAkAgCEKRgICAgICAgAhRBEBCASECIANCAVENASADIQQgBiAHhEIAUg0BCyACIARYDQAgByECIAYhBCADIQUMAQsgA0IBfSEFIAYgA1CtIgJ9IQQgByACIAZWrSIDfSECIAhC7v////////93Qu//////////dyADIAdWG3whCAtCkYCAgICAgIAIIQkgAiACIAApAyh8IgJWIAIgBCAEIAApAzB8IgRWIAQgBSAAKQM4fCIDIAVUrXwiBiAEVHKtfCIHIAJUcq0gACkDICAIfHwiCCECAkACQCAIQpGAgICAgICACFEEQEIBIQkgA0IBUQ0BIAMhAiAGIAeEQgBSDQELIAIgCVoNACAHIQIgBiEEIAMhBQwBCyADQgF9IQUgBiADUK0iAn0hBCAHIAIgBlatIgN9IQIgCELu/////////3dC7/////////93IAMgB1YbfCEICyAAIAU3AzggACAENwMwIAAgAjcDKCAAIAg3AyAgCkG4AWpBuJfAACkDADcDACAKQbABakGwl8AAKQMANwMAIApBqAFqQaiXwAApAwA3AwAgCkGgl8AAKQMANwOgASAKQYABaiAKQaABaiAKQeAAahC6AUKRgICAgICAgAghAiAKKQNIIgUgCikDiAF8IgQgBVQgBCAKKQNQIgMgCikDkAF8IgUgA1QgBSAKKQNYIgYgCikDmAF8IgMgBlStfCIGIAVUcq18IgcgBFRyrSAKKQOAASAKKQNAfHwiCCEEAkACQCAIQpGAgICAgICACFEEQEIBIQIgA0IBUQ0BIAMhBCAGIAeEQgBSDQELIAIgBFgNACAHIQIgBiEEIAMhBQwBCyADQgF9IQUgBiADUK0iAn0hBCAHIAIgBlatIgN9IQIgCELu/////////3dC7/////////93IAMgB1YbfCEICyAAQSBqQpGAgICAgICACCEJIAIgAiAAKQNIfCICViACIAQgBCAAKQNQfCIEViAEIAUgACkDWHwiAyAFVK18IgYgBFRyrXwiByACVHKtIAApA0AgCHx8IgghAgJAAkAgCEKRgICAgICAgAhRBEBCASEJIANCAVENASADIQIgBiAHhEIAUg0BCyACIAlaDQAgByECIAYhBCADIQUMAQsgA0IBfSEFIAYgA1CtIgJ9IQQgByACIAZWrSIDfSECIAhC7v////////93Qu//////////dyADIAdWG3whCAsgACAFNwNYIAAgBDcDUCAAIAI3A0ggACAINwNAEFMgCkHAAWokAAuOCgIBfwp+IwBBgAJrIgIkACACQfABaiABKQMYIgRC/////76y/fBCfiIDQoGAgIC/sv3wwwBCABD8AyACQeABaiADQpHh5c2HifqZKEIAEPwDIAJB0AFqIANC3bCFjOi2kai4f0IAEPwDIAJBwAFqIANCqcDGia7Ok7IwQgAQ/AMgAkGwAWogAikD4AEiBiABKQMQfCIHIAJB+AFqKQMAIAQgAikD8AEiA3wgA1StfHwiBEL/////vrL98EJ+IgNCgYCAgL+y/fDDAEIAEPwDIAJBoAFqIANCkeHlzYeJ+pkoQgAQ/AMgAkHQAGogA0LdsIWM6LaRqLh/QgAQ/AMgAiADQqnAxomuzpOyMEIAEPwDIAJBkAFqIAIpA6ABIgkgAikD0AEiCCABKQMIfCIFIAQgB1StIAJB6AFqKQMAIAYgB1atfHx8Igp8IgcgAkG4AWopAwAgAikDsAEiAyAEfCADVK18fCIEQv////++sv3wQn4iA0KBgICAv7L98MMAQgAQ/AMgAkGAAWogA0KR4eXNh4n6mShCABD8AyACQfAAaiADQt2whYzotpGouH9CABD8AyACQeAAaiADQqnAxomuzpOyMEIAEPwDIAJBQGsgAikDgAEiCyACKQPAASIMIAEpAwB8IgYgBSAKVq0gAkHYAWopAwAgBSAIVK18fHwiBSACKQNQfCIIIAQgB1StIAJBqAFqKQMAIAcgCVStfHx8Igl8IgcgAkGYAWopAwAgAikDkAEiAyAEfCADVK18fCIEQv////++sv3wQn4iA0KBgICAv7L98MMAQgAQ/AMgAkEwaiADQpHh5c2HifqZKEIAEPwDIAJBIGogA0LdsIWM6LaRqLh/QgAQ/AMgAkEQaiADQqnAxomuzpOyMEIAEPwDAkAgAkEYaikDACACQegAaikDACACQQhqKQMAIAUgBlStIAJByAFqKQMAIAYgDFStfHwiBiACKQMAfCIDIAZUrXwgAyADIAggCVatIAJB2ABqKQMAIAUgCFatfHx8IgNWrXwiBiACKQNgfCIFIAZUrXwgBSACQfgAaikDACADIAMgAikDcHwiA1atfCADIAQgB1StIAJBiAFqKQMAIAcgC1StfHx8IgYgA1StfHwiAyAFVK18IgUgAikDEHwiByAFVK18IAcgAkEoaikDACADIAMgAikDIHwiA1atfCADIAMgAkE4aikDACAGIAIpAzAiBnwiBSAGVK18IAUgBSACQcgAaikDACAEIAIpA0AiBHwgBFStfHwiBVatfHwiA1atfHwiBCAHVK18IgZCqcDGia7Ok7IwVARAIAMhBwwBCwJAIARC3bCFjOi2kai4f1YNACAEQt2whYzotpGouH9SBEAgAyEHQqnAxomuzpOyMCEGDAILIANCkeHlzYeJ+pkoVg0AAkAgA0KR4eXNh4n6mShSBEAgAyEHDAELQpHh5c2HifqZKCEHIAVCgYCAgL+y/fDDAFoNAQtC3bCFjOi2kai4fyEEQqnAxomuzpOyMCEGDAELIANCkeHlzYeJ+pkofSIIIAVCgYCAgL+y/fDDAFStIgl9IQcgBEKjz/rzl8nu18cAfCIKIANCkeHlzYeJ+pkoVCAIIAlUcq0iA30hBCAGIAMgClatfUKpwMaJrs6TsjB9IQYgBUKBgICAv7L98MMAfSEFCyAAIAU3AxggACAHNwMQIAAgBDcDCCAAIAY3AwAgAkGAAmokAAuUCgIBfwp+IwBBgAJrIgIkACACQfABaiABKQMYIgRCiceZpK7wgemHf34iA0LH+vPD7YKjkDxCABD8AyACQeABaiADQo2Vx8OW0trAl39CABD8AyACQdABaiADQt2whYzotpGouH9CABD8AyACQcABaiADQqnAxomuzpOyMEIAEPwDIAJBsAFqIAIpA+ABIgYgASkDEHwiByACQfgBaikDACAEIAIpA/ABIgN8IANUrXx8IgRCiceZpK7wgemHf34iA0LH+vPD7YKjkDxCABD8AyACQaABaiADQo2Vx8OW0trAl39CABD8AyACQdAAaiADQt2whYzotpGouH9CABD8AyACIANCqcDGia7Ok7IwQgAQ/AMgAkGQAWogAikDoAEiCSACKQPQASIIIAEpAwh8IgUgBCAHVK0gAkHoAWopAwAgBiAHVq18fHwiCnwiByACQbgBaikDACACKQOwASIDIAR8IANUrXx8IgRCiceZpK7wgemHf34iA0LH+vPD7YKjkDxCABD8AyACQYABaiADQo2Vx8OW0trAl39CABD8AyACQfAAaiADQt2whYzotpGouH9CABD8AyACQeAAaiADQqnAxomuzpOyMEIAEPwDIAJBQGsgAikDgAEiCyACKQPAASIMIAEpAwB8IgYgBSAKVq0gAkHYAWopAwAgBSAIVK18fHwiBSACKQNQfCIIIAQgB1StIAJBqAFqKQMAIAcgCVStfHx8Igl8IgcgAkGYAWopAwAgAikDkAEiAyAEfCADVK18fCIEQonHmaSu8IHph39+IgNCx/rzw+2Co5A8QgAQ/AMgAkEwaiADQo2Vx8OW0trAl39CABD8AyACQSBqIANC3bCFjOi2kai4f0IAEPwDIAJBEGogA0KpwMaJrs6TsjBCABD8AwJAIAJBGGopAwAgAkHoAGopAwAgAkEIaikDACAFIAZUrSACQcgBaikDACAGIAxUrXx8IgYgAikDAHwiAyAGVK18IAMgAyAIIAlWrSACQdgAaikDACAFIAhWrXx8fCIDVq18IgYgAikDYHwiBSAGVK18IAUgAkH4AGopAwAgAyADIAIpA3B8IgNWrXwgAyAEIAdUrSACQYgBaikDACAHIAtUrXx8fCIGIANUrXx8IgMgBVStfCIFIAIpAxB8IgcgBVStfCAHIAJBKGopAwAgAyADIAIpAyB8IgNWrXwgAyADIAJBOGopAwAgBiACKQMwIgZ8IgUgBlStfCAFIAUgAkHIAGopAwAgBCACKQNAIgR8IARUrXx8IgVWrXx8IgNWrXx8IgQgB1StfCIGQqnAxomuzpOyMFQEQCADIQcMAQsCQCAEQt2whYzotpGouH9WDQAgBELdsIWM6LaRqLh/UgRAIAMhB0KpwMaJrs6TsjAhBgwCCyADQo2Vx8OW0trAl39WDQACQCADQo2Vx8OW0trAl39SBEAgAyEHDAELQo2Vx8OW0trAl38hByAFQsf688PtgqOQPFoNAQtC3bCFjOi2kai4fyEEQqnAxomuzpOyMCEGDAELIANC8+q4vOmtpb/oAHwiCCAFQsf688PtgqOQPFStIgl9IQcgBEKjz/rzl8nu18cAfCIKIANCjZXHw5bS2sCXf1QgCCAJVHKtIgN9IQQgBiADIApWrX1CqcDGia7Ok7IwfSEGIAVCx/rzw+2Co5A8fSEFCyAAIAU3AxggACAHNwMQIAAgBDcDCCAAIAY3AwAgAkGAAmokAAvSCAIJfwF+IwBBgANrIgMkACACpyEEAkACQAJAAkACQCACQgFYBEAgBEEBaw0EDAELIANBCGoiBSABQQhqKQMANwMAIANBEGoiBiABQRBqKQMANwMAIANBGGoiByABQRhqKQMANwMAIANBIGoiCyABKQMgNwMAIANBKGoiCCABQShqKQMANwMAIANBMGoiCSABQTBqKQMANwMAIANBOGoiCiABQThqKQMANwMAIAMgASkDADcDACAEQQFxRQ0BDAILIAAgASkDADcDACAAQSBqIAEpAyA3AwAgAEEIaiABQQhqKQMANwMAIABBEGogAUEQaikDADcDACAAQRhqIAFBGGopAwA3AwAgAEEoaiABQShqKQMANwMAIABBMGogAUEwaikDADcDACAAQThqIAFBOGopAwA3AwAMAwsDQCADQYABaiADEHsgCiADQbgBaikDADcDACAJIANBsAFqKQMANwMAIAggA0GoAWopAwA3AwAgCyADQaABaikDADcDACAHIANBmAFqKQMANwMAIAYgA0GQAWopAwA3AwAgBSADQYgBaikDADcDACADIAMpA4ABNwMAIAJCAoMgAkIBiCECUA0ACwsgA0HgAGogAykDIDcDACADQcgAaiAFKQMANwMAIANB0ABqIAYpAwA3AwAgA0HYAGogBykDADcDACADQegAaiAIKQMANwMAIANB8ABqIAkpAwA3AwAgA0H4AGogCikDADcDACADIAMpAwA3A0AgAkIBUgRAA0AgA0GAAWoiCiADQUBrIgsQeyADQfgAaiADQbgBaiIBKQMANwMAIANB8ABqIANBsAFqIgQpAwA3AwAgA0HoAGogA0GoAWoiBSkDADcDACADQeAAaiADQaABaiIGKQMANwMAIANB2ABqIANBmAFqIgcpAwA3AwAgA0HQAGogA0GQAWoiCCkDADcDACADQcgAaiADQYgBaiIJKQMANwMAIAMgAykDgAE3A0AgAkICg1BFBEAgCiADIAsQLSADQThqIAEpAwA3AwAgA0EwaiAEKQMANwMAIANBKGogBSkDADcDACADQSBqIAYpAwA3AwAgA0EYaiAHKQMANwMAIANBEGogCCkDADcDACADQQhqIAkpAwA3AwAgAyADKQOAATcDAAsgAkIEVCACQgGIIQJFDQALCyAAIAMpAwA3AwAgAEE4aiADQThqKQMANwMAIABBMGogA0EwaikDADcDACAAQShqIANBKGopAwA3AwAgAEEgaiADQSBqKQMANwMAIABBGGogA0EYaikDADcDACAAQRBqIANBEGopAwA3AwAgAEEIaiADQQhqKQMANwMADAELIABCADcDICAAQRhqQcCjwAApAwA3AwAgAEEQakG4o8AAKQMANwMAIABBCGpBsKPAACkDADcDACAAQaijwAApAwA3AwAgAEEoakIANwMAIABBMGpCADcDACAAQThqQgA3AwALIANBgANqJAAL6QgCDH8EfiMAQeADayICJAAgAkEoaiAAQShqIgQpAwA3AwAgAkEgaiAAQSBqIgUpAwA3AwAgAkEYaiAAQRhqIgYpAwA3AwAgAkEQaiAAQRBqIgcpAwA3AwAgAkEIaiAAQQhqIggpAwA3AwAgAkE4aiAAQThqKQMANwMAIAJBQGsgAEFAaykDADcDACACQcgAaiAAQcgAaikDADcDACACQdAAaiAAQdAAaikDADcDACACQdgAaiAAQdgAaikDADcDACACIAApAwA3AwAgAiAAKQMwNwMwIABBMGoiA0G4hsEAQTAQrgUEQCAAQqvV/v///7//uX8gACkDMCIOfTcDMCAAQn9CACAOQqvV/v///7//uX9WGyIOIAApAzgiD30iEEL//8+K6///1R58IhE3AzggAEJ/QgAgECARVq0gDiAOIA9UrX18Qn9RGyIOIAApA0AiD30iEEKk7MO1j9S0mOcAfCIRNwNAIABCf0IAIBAgEVatIA4gDiAPVK19fEJ/URsiDiAAKQNIIg99IhBCv6WUnM/w0rvkAHwiETcDSCAAQn9CACAQIBFWrSAOIA4gD1StfXxCf1EbIg4gACkDUCIPfSIQQtfZrprk9umNywB8IhE3A1AgAEJ/QgAgECARVq0gDiAOIA9UrX18Qn9RGyAAKQNYfUKazf/Lo73EgBp8NwNYCyACQegBaiAEKQMANwMAIAJB4AFqIAUpAwA3AwAgAkHYAWogBikDADcDACACQdABaiAHKQMANwMAIAJByAFqIAgpAwA3AwAgAkH4AWogA0EIaikDADcDACACQYACaiADQRBqKQMANwMAIAJBiAJqIANBGGopAwA3AwAgAkGQAmogA0EgaikDADcDACACQZgCaiADQShqKQMANwMAIAIgACkDADcDwAEgAiADKQMANwPwASACQfgCaiABQdgAaiIDKQMANwMAIAJB8AJqIAFB0ABqIgQpAwA3AwAgAkHoAmogAUHIAGoiBSkDADcDACACQeACaiABQUBrIgYpAwA3AwAgAkHYAmogAUE4aiIHKQMANwMAIAJBqAJqIAFBCGoiCCkDADcDACACQbACaiABQRBqIgkpAwA3AwAgAkG4AmogAUEYaiIKKQMANwMAIAJBwAJqIAFBIGoiCykDADcDACACQcgCaiABQShqIgwpAwA3AwAgAiABKQMwNwPQAiACIAEpAwA3A6ACIAJB4ABqIg0gAkHAAWogAkGgAmoQqQEgAkGoA2ogAykDADcDACACQaADaiAEKQMANwMAIAJBmANqIAUpAwA3AwAgAkGQA2ogBikDADcDACACQYgDaiAHKQMANwMAIAJBuANqIAgpAwA3AwAgAkHAA2ogCSkDADcDACACQcgDaiAKKQMANwMAIAJB0ANqIAspAwA3AwAgAkHYA2ogDCkDADcDACACIAEpAzA3A4ADIAIgASkDADcDsAMgAkGQAWogAiACQYADahCpASAAIA1B4AAQrQUaIAJB4ANqJAAL7QgCDH8EfiMAQfAAayIFJAAgBUEoaiABEKwCIAUoAjAhDCAFKAIsIRAgBSgCKCENIAVBCGogBUE8aigCADYCACAFIAUpAjQ3AwAgBUEQaiAFEJICAkACQAJAIAIoAgAiCkGAgICAeEYNACACKAIEIQggAigCCCECIAUoAhQhCSAFIAUoAhgiATYCJCAFIAI2AiAgASACRw0BIAVBADYCMCAFQoCAgICAATcCKCABBEBBACECA0ACfiACIAhqLQAARQRAQgAhEUIAIRJCACETQgAMAQsgByAJaiIGKQMAIREgBkEYaikDACETIAZBEGopAwAhEiAGQQhqKQMACyEUIAUoAiggAkYEQCAFQShqENkDCyAFKAIsIAdqIgYgETcDACAGQRhqIBM3AwAgBkEQaiASNwMAIAZBCGogFDcDACAFIAJBAWoiAjYCMCAHQSBqIQcgASACRw0ACwsgBUHIAGoiASAFQTBqKAIANgIAIAUgBSkCKDcDQCAFKAIQIgIEQCAJIAJBBXQQlAULIAVBGGogASgCADYCACAFIAUpA0A3AxAgCkUNACAIIAoQlAULIAUoAhAhCSAFKAIYIQEgBSgCFCEIIAVBADoAMCAFIAg2AiggBSAIIAFBBXRqNgIsIAVBQGsgBUEoahDmAiAFKAJEIQogBSgCSCIGQQJPBEAgBkEBdiEHIAZBBXQgCmpBIGshAiAKIQEDQCABKQMAIREgASACKQMANwMAIAFBGGoiCykDACEUIAsgAkEYaiILKQMANwMAIAFBEGoiDikDACESIA4gAkEQaiIOKQMANwMAIAFBCGoiDykDACETIA8gAkEIaiIPKQMANwMAIAIgETcDACALIBQ3AwAgDiASNwMAIA8gEzcDACACQSBrIQIgAUEgaiEBIAdBAWsiBw0ACwsgBSgCQCELIAkEQCAIIAlBBXQQlAULIAMEQCADKAIIIgEgAygCAEYEQCADENwDCyADKAIEIAFBDGxqIgIgDDYCCCACIBA2AgQgAiANNgIAIAMgAUEBajYCCAsgBARAAkAgBkUEQEEIIQgMAQsgBkEFdCEBIAZB////H0sEQEEAIQcMBAtBACECQbnRwgAtAAAaQQghByABQQgQiwUiCEUNAyAGQQV0IQwgBiEBA0AgAiAMRg0BIAIgCGoiByACIApqIgkpAwA3AwAgB0EYaiAJQRhqKQMANwMAIAdBEGogCUEQaikDADcDACAHQQhqIAlBCGopAwA3AwAgAkEgaiECIAFBAWsiAQ0ACwsgBCgCCCIBIAQoAgBGBEAgBBDcAwsgBCgCBCABQQxsaiICIAY2AgggAiAINgIEIAIgBjYCACAEIAFBAWo2AggLIAAgBjYCCCAAIAo2AgQgACALNgIAIAUoAgAiAARAIAUoAgQgAEEFdBCUBQsgAyANRXJFBEAgECANQQV0EJQFCyAFQfAAaiQADwsgBUEANgIoIAVBIGogBUEkaiAFQShqQcDiwQAQ0QQACyAHIAEQgwUAC8QJAgl/Bn4jAEHAAWsiAyQAIANB4ABqIgpBADoAACADQdgAaiIGQgA3AwAgA0HQAGpCADcDACADQcgAakIANwMAIANCADcDQCACQR8gAiACQR9PGyIFayEJIAIEQCABIAlqIQcgA0FAayEIA0AgBUEIIAUgBUEITxsiC2shBQJAIARBBE8EQCADIActAAA6AGAMAQsgCCAHIAsQrQUaCyAHIAtqIQcgCEEIaiEIIARBAWohBCAFDQALCyADQv//////////PzcDaEEAIQUgA0EAOgBwIAohBAJAAkADQAJ/AkACfyAGRSAGIApGckUEQCAEIQggBkEBagwBC0EAIQggBEUNASAEIQZBAAshByAFQQlGBEBBACEEQQkhBUEEDAILIANB6ABqIAVqIQQgAyAGNgKcASAFQQFqIQVBCAwBC0EAIQdBACEEQQQLIANBmAFqIgZqIAQ2AgACQCADKAKcASIERQRAIAMgAykDWDcDkAEgAyADKQNQNwOIASADIAMpA0g3A4ABIAMgAykDQDcDeCAGIANB+ABqEIwBIAMpA5gBUA0BIANBDGogA0GsAWopAgA3AgAgA0EUaiADQbQBaikCADcCACADQRxqIANBvAFqKAIANgIAIAMgAykCpAE3AgQgAyADKAKgATYCACADQdgAakIANwMAIANB0ABqQgA3AwAgA0IANwNIIANCgAI3A0AgBiADQUBrEIwBIAMpA5gBUA0DIANBOGogA0G4AWopAwA3AwAgA0EwaiADQbABaikDADcDACADQShqIANBqAFqKQMANwMAIAMgAykDoAE3AyAgAkEgTwRAIAFBAWshAiADQcgAaiIEQRBqIQEDQCADIANBIGoQngEgAiAJajEAACEMIAFCADcDACAEQQhqQgA3AwAgBEIANwMAIAMgDDcDQCADQZgBaiADQUBrEIwBIAMpA5gBUA0GIAMgAykDACIMIAMpA6ABfCIQNwMAIAMgDCAQVq0iDSADKQOoAXwiESADKQMIfCIPNwMIIAMgAykDECIMIAMpA7ABfCIOIA0gEVatIA8gEVStfHwiDTcDECADIAMpAxggAykDuAF8IAwgDlatIA0gDlStfHwiDjcDGAJAIA5CqcDGia7Ok7IwVA0AAkAgDkKpwMaJrs6TsjBSDQAgDULdsIWM6LaRqLh/VA0BIA1C3bCFjOi2kai4f1INACAPQo2Vx8OW0trAl39UDQEgEELG+vPD7YKjkDxWDQAgD0KNlcfDltLawJd/UQ0BCyADIBBCx/rzw+2Co5A8fTcDACADIA9C8uq4vOmtpb/oAELz6ri86a2lv+gAIBBCx/rzw+2Co5A8VBt8Igw3AwggAyANQqLP+vOXye7XxwBCo8/685fJ7tfHACAMIA9aGyINfCIMNwMQIAMgDiAMIA1arX1CqcDGia7Ok7IwfTcDGAsgCUEBayIJDQALCyAAIAMpAwA3AwAgAEEYaiADQRhqKQMANwMAIABBEGogA0EQaikDADcDACAAQQhqIANBCGopAwA3AwAgA0HAAWokAA8LIAQgBC0AACADKAKgAS0AAHE6AAAgCCEEIAchBgwBCwtBgInBABCYBQALQdiKwQAQmAUAC0HIisEAEJgFAAvyHQERfyMAQbAIayIFJAACQCAAAn4CQAJAAkACQAJAAkACQAJAAkAgASgCBCIDBEAgASADIAMgASgCCCIHIAMgB0kbIgRrNgIEIAEgASgCACIDIARBMGxqNgIAIAdFDQIgBUH4B2oiByADQShqKQMANwMAIAVB8AdqIgYgA0EgaikDADcDACAFQegHaiIIIANBGGopAwA3AwAgBUHgB2oiCSADQRBqKQMANwMAIAVB2AdqIgogA0EIaikDADcDACAFIAMpAwA3A9AHIARBAUYNAyAFQfAEaiILIANB2ABqKQMANwMAIAVB6ARqIgwgA0HQAGopAwA3AwAgBUHgBGoiDSADQcgAaikDADcDACAFQdgEaiIOIANBQGspAwA3AwAgBUHQBGoiEiADQThqKQMANwMAIAUgAykDMDcDyAQgBUGgAmoiASAFQdAHaiIPIAVByARqIhAQOiAFKAKgAg0EIAVB8AZqIAVBBHIgBUGoAmpB4AAQrQVB4AAQrQUaIARBAk0NBSAEQQNGDQYgBUGoCGogA0G4AWopAwA3AwAgBUGgCGogA0GwAWopAwA3AwAgBUGYCGogA0GoAWopAwA3AwAgBUGQCGogA0GgAWopAwA3AwAgBUGICGogA0GYAWopAwA3AwAgCiADQegAaikDADcDACAJIANB8ABqKQMANwMAIAggA0H4AGopAwA3AwAgBiADQYABaikDADcDACAHIANBiAFqKQMANwMAIAUgAykDkAE3A4AIIAUgAykDYDcD0AcgBEEETQ0HIARBBUYNCCAFQaAFaiADQZgCaikDADcDACAFQZgFaiADQZACaikDADcDACAFQZAFaiADQYgCaikDADcDACAFQYgFaiADQYACaikDADcDACAFQYAFaiADQfgBaikDADcDACASIANByAFqKQMANwMAIA4gA0HQAWopAwA3AwAgDSADQdgBaikDADcDACAMIANB4AFqKQMANwMAIAsgA0HoAWopAwA3AwAgBSADKQPwATcD+AQgBSADKQPAATcDyAQjAEGgDGsiAyQAIAMgD0HgABCtBSIDQeAAaiAQQeAAEK0FIQcgA0HwAWoiBEEAQeAAEK8FGgJAAkACQAJAAkACQAJAIAMgBBDZBARAIAcgBBDZBA0BCyADQfABaiIEQQBB4AAQrwUaIAMgBBDZBARAIAcgBBDZBA0BCyADQfABahD4ASADQbAFaiADQbgCaikDADcDACADQagFaiADQbACaikDADcDACADQaAFaiADQagCaikDADcDACADQZgFaiADQaACaikDADcDACADQZAFaiADQZgCaikDADcDACADQcAFaiADQfgCaikDADcDACADQcgFaiADQYADaikDADcDACADQdAFaiADQYgDaikDADcDACADQdgFaiADQZADaikDADcDACADQeAFaiADQZgDaikDADcDACADIAMpA5ACNwOIBSADIAMpA/ACNwO4BSADQZAGaiADQcgDaikDADcDACADQYgGaiADQcADaikDADcDACADQYAGaiADQbgDaikDADcDACADQfgFaiADQbADaikDADcDACADQfAFaiADQagDaikDADcDACADIAMpA6ADNwPoBSADQZgGaiITIAcQggEgA0GACmogA0EIaiIGKQMANwMAIANBiApqIANBEGoiCCkDADcDACADQZAKaiADQRhqIgkpAwA3AwAgA0GYCmogA0EgaiIKKQMANwMAIANBoApqIANBKGoiCykDADcDACADQbAKaiADQThqIgwpAwA3AwAgA0G4CmogA0FAayINKQMANwMAIANBwApqIANByABqIg4pAwA3AwAgA0HICmogA0HQAGoiDykDADcDACADQdAKaiADQdgAaiIQKQMANwMAIAMgAykDADcD+AkgAyADKQMwNwOoCiADQbgIaiIRIANB+AlqQeAAEK0FGiADQZgJaiIEIBEQggEgA0GAC2ogCykDADcDACADQfgKaiAKKQMANwMAIANB8ApqIAkpAwA3AwAgA0HoCmogCCkDADcDACADQeAKaiAGKQMANwMAIANBkAtqIAwpAwA3AwAgA0GYC2ogDSkDADcDACADQaALaiAOKQMANwMAIANBqAtqIA8pAwA3AwAgA0GwC2ogECkDADcDACADIAMpAwA3A9gKIAMgAykDMDcDiAsgA0HYB2oiESAEIANB2ApqEGwgA0HAC2ogBikDADcDACADQcgLaiAIKQMANwMAIANB0AtqIAkpAwA3AwAgA0HYC2ogCikDADcDACADQeALaiALKQMANwMAIANB8AtqIAwpAwA3AwAgA0H4C2ogDSkDADcDACADQYAMaiAOKQMANwMAIANBiAxqIA8pAwA3AwAgA0GQDGogECkDADcDACADIAMpAwA3A7gLIAMgAykDMDcD6AsgBCADQYgFaiADQbgLahCKASADQfgGaiIGIBEgBBDwASAEIAYgA0G4BWoQ8AEgEyAEENkEIAMoAvQEIgQEQCADKAL4BCAEQQJ0EJQFCwJAIAMoAvQBIgRFDQAgBCAEQQxsQRNqQXhxIghqQQlqIgRFDQAgAygC8AEgCGsgBBCUBQsNACADQfABaiIEIANB4AAQrQUaIANBuAtqIgggBBC6BCADKAK8CyEEIAMoArgLIQYgAygCwAsiCUECRw0BIAQoAgQhCSAEKAIAIQogCCAEQQhqQdgAEK0FGiAGBEAgBCAGQTBsEJQFCyADQegKaiADQcALaikDADcDACADQfAKaiADQcgLaikDADcDACADQfgKaiADQdALaikDADcDACADQYALaiADQdgLaikDADcDACADQZALaiADQegLaikDADcDACADQZgLaiADQfALaikDADcDACADQaALaiADQfgLaikDADcDACADQagLaiADQYAMaikDADcDACADQbALaiADQYgMaikDADcDACADIAk2AtwKIAMgCjYC2AogAyADKQO4CzcD4AogAyADKQPgCzcDiAsgA0HwAWoiBCAHQeAAEK0FGiADQbgLaiAEELoEIAMoArwLIQQgAygCuAshByADKALACyIGQQJHDQIgBCgCBCEIIAQoAgAhCSADQfgJaiAEQQhqQdgAEK0FGiAHBEAgBCAHQTBsEJQFCyADQcgLaiADQYAKaiIGKQMANwMAIANB0AtqIANBiApqKQMANwMAIANB2AtqIANBkApqKQMANwMAIANB4AtqIANBmApqKQMANwMAIANB8AtqIANBqApqKQMANwMAIANB+AtqIANBsApqKQMANwMAIANBgAxqIANBuApqKQMANwMAIANBiAxqIANBwApqKQMANwMAIANBkAxqIANByApqKQMANwMAIAMgCDYCvAsgAyAJNgK4CyADIAMpA/gJNwPACyADIAMpA6AKNwPoCyADQbgIaiIEIANB2ApqEMEBIANBADYCgAogA0KAgICAEDcC+AkgA0EDOgCQAiADQSA2AoACIANBADYCjAIgA0H4msEANgKIAiADQQA2AvgBIANBADYC8AEgAyADQfgJaiIHNgKEAiAEIANB8AFqIgQQhQMNBSADQcgBaiAGKAIANgIAIAMgAykC+Ak3A8ABIANBmAlqIgggA0GIC2oQwQEgA0EANgKACiADQoCAgIAQNwL4CSADQQM6AJACIANBIDYCgAIgA0EANgKMAiADQfiawQA2AogCIANBADYC+AEgA0EANgLwASADIAc2AoQCIAggBBCFAw0FIANB2AFqIAYoAgA2AgAgAyADKQL4CTcD0AEgByADQbgLahDBASADQQA2AuAHIANCgICAgBA3AtgHIANBAzoAkAIgA0EgNgKAAiADQQA2AowCIANB+JrBADYCiAIgA0EANgL4ASADQQA2AvABIAMgA0HYB2oiBjYChAIgByAEEIUDDQUgA0HoAWogA0HgB2ooAgA2AgAgAyADKQLYBzcD4AEgBCADQegLahDBASADQQA2AsAFIANCgICAgBA3ArgFIANBAzoA+AcgA0EgNgLoByADQQA2AvQHIANB+JrBADYC8AcgA0EANgLgByADQQA2AtgHIAMgA0G4BWo2AuwHIAQgBhCFAw0FIANBkAVqIANBwAVqKAIANgIAIAMgAykCuAU3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ACAAIAFBAWo2AgggAkHwAGokAAuxCAIBfwp+IwBBkAJrIgIkACACQbABaiABKQMYIgVCm5Svw/K1qN6Gf34iBEJtQgAQ/AMgAkGgAWogBEJ/QgAQ/AMgAkGQAWogBEL///////////8AQgAQ/AMgAkGAAWogAikDoAEiBCABKQMQfCIHIAJBuAFqKQMAIAUgAikDsAEiA3wgA1StfHwiBUKblK/D8rWo3oZ/fiIDQm1CABD8AyACQfAAaiADQn9CABD8AyACIANC////////////AEIAEPwDIAJB4ABqIAIpA3AiAyAEIAEpAwh8IgYgBSAHVK0gAkGoAWopAwAiCiAEIAdWrXx8fCILfCIHIAJBiAFqKQMAIAUgAikDgAEiBXwgBVStfHwiBUKblK/D8rWo3oZ/fiIIQm1CABD8AyACQdAAaiAIQn9CABD8AyACQRBqIAhC////////////AEIAEPwDIAJBQGsgAikDUCIIIAMgAikDkAEiDCABKQMAfCIJIAYgC1atIAogBCAGVq18fHwiBHwiBiAFIAdUrSACQfgAaikDACIKIAMgB1atfHx8Igt8IgcgAkHoAGopAwAgBSACKQNgIgV8IAVUrXx8IgVCm5Svw/K1qN6Gf34iA0JtQgAQ/AMgAkEwaiADQn9CABD8AyACQSBqIANC////////////AEIAEPwDAkACQCACQShqKQMAIAJBGGopAwAgAkEIaikDACAEIAlUrSACQZgBaikDACAJIAxUrXx8IgkgAikDAHwiAyAJVK18IAMgBiALVq0gCiAEIAZWrXx8fCIEIANUrXwiBiACKQMQfCIDIAZUrXwgAyACQdgAaikDACIGIAQgBCAIfCIEVq18IAQgBSAHVK0gBiAHIAhUrXx8fCIGIARUrXx8IgQgA1StfCIDIAIpAyB8IgcgA1StfCAHIAJBOGopAwAiCCAEIAQgAikDMCIDfCIEVq18IAQgBCAIIAMgAyAGfCIDVq18IAMgAkHIAGopAwAgBSACKQNAIgV8IAVUrXx8IgggA1StfHwiBFatfHwiBSAHVK18IgZCAFMNAAJAIAZC////////////AFoEQEJ/IQMgBUJ/UgRAIAQhByAFIQNC////////////ACEGDAQLIARCf1ENASAEIQdC////////////ACEGDAMLIAQhByAFIQMMAgtCfyEHIAhCbVoNAEL///////////8AIQYMAQsgBEIBfCIDIAhCbVStIgl9IQcgBUIBfCIKIARCf1IgAyAJVHKtIgR9IQMgBiAFQn9SIAQgClZyrX1C////////////AH0hBiAIQhN8IQgLIAIgCDcD2AEgAiAHNwPQASACIAM3A8gBIAIgBjcDwAEgAiACQeABaiIBNgKMAiACQQA2AvQBIAJBADYC4AEgAiACQcABajYCiAIgACABEOMCIAJBkAJqJAALowgBE34gACkDKCIIIRAgACkDICIGIQ4gACkDGCIFIQ0gACkDECIEIQwgACkDCCIDIQkgAAJ+IAApAwAiAiAAKQNYIg8gCFQNABoCQCAIIA9UDQAgAiAAKQNQIgEgBlQNARogASAGVg0AIAIgACkDSCIBIAVUDQEaIAEgBVYNACACIAApA0AiASAEVA0BGiABIARWDQAgAiAAKQM4IgEgA1QNARogASADVg0AIAIgACkDMCACWA0BGgsgCCAGIAUgBCADIAJC1KqBgICAwIDGAFatfCIBIANUrSABQv//z4rr///VHnwiCSABVK18fCIBIARUrSABQqTsw7WP1LSY5wB8IgwgAVStfHwiASAFVK0gAUK/pZScz/DSu+QAfCINIAFUrXx8IgEgBlStIAEgAULX2a6a5PbpjcsAfCIOVq18fEKazf/Lo73EgBp8IRAgAkLVqoGAgIDAgMYAfQsiCiAAKQMwIgd9NwMAIAAgAiAHfCIBNwMwIAAgCSAAKQM4Igt9IhEgByAKVq0iCn03AwggACALIAEgB1StIhIgA3wiB3wiAjcDOCAAIAwgACkDQCIDfSITIAkgC1StIAogEVatfEIBUa0iCn03AxAgACADIAR8IgsgByASVK0gAiAHVK18fCIENwNAIAAgACkDSCIJIAV8IgcgAyALVq0gBCALVK18fCIFNwNIIAAgDSAJfSILIAMgDFatIAogE1atfEIBUa0iCn03AxggACAAKQNQIgMgBnwiDCAHIAlUrSAFIAdUrXx8IgY3A1AgACAOIAN9IgcgCSANVq0gCiALVq18QgFRrSINfTcDICAAIAggD3wgAyAMVq0gBiAMVK18fCIINwNYIAAgECAPfSADIA5WrSAHIA1UrXxCAVGtfTcDKAJAIAhCms3/y6O9xIAaVA0AAkAgCEKazf/Lo73EgBpSDQAgBkLX2a6a5PbpjcsAVA0BIAZC19mumuT26Y3LAFINACAFQr+llJzP8NK75ABUDQEgBUK/pZScz/DSu+QAUg0AIARCpOzDtY/UtJjnAFQNASAEQqTsw7WP1LSY5wBSDQAgAkL//8+K6///1R5UDQEgAkL//8+K6///1R5SDQAgAUKr1f7///+//7l/VA0BCyAAIAFC1aqBgICAwIDGAHw3AzAgACACQoCAsPWUgICqYUKBgLD1lICAqmEgAUKr1f7///+//7l/VBt8IgM3AzggACAEIAIgA1itIgJ9IgNCpOzDtY/UtJjnAH0iATcDQCAAIAUgASADVK0gAiAEVq1RrSICfSIEQr+llJzP8NK75AB9IgM3A0ggACAGIAMgBFStIAIgBVatUa0iAn0iBULX2a6a5PbpjcsAfSIENwNQIAAgCCAEIAVUrSACIAZWrVGtfUKazf/Lo73EgBp9NwNYCwv8BwIBfwp+IwBBwAFrIgIkACACQbABaiABKQMYIgVCm5Svw/K1qN6Gf34iBEJtQgAQ/AMgAkGgAWogBEJ/QgAQ/AMgAkGQAWogBEL///////////8AQgAQ/AMgAkGAAWogAikDoAEiBCABKQMQfCIHIAJBuAFqKQMAIAUgAikDsAEiA3wgA1StfHwiBUKblK/D8rWo3oZ/fiIDQm1CABD8AyACQfAAaiADQn9CABD8AyACIANC////////////AEIAEPwDIAJB4ABqIAIpA3AiAyAEIAEpAwh8IgYgBSAHVK0gAkGoAWopAwAiCiAEIAdWrXx8fCILfCIHIAJBiAFqKQMAIAUgAikDgAEiBXwgBVStfHwiBUKblK/D8rWo3oZ/fiIIQm1CABD8AyACQdAAaiAIQn9CABD8AyACQRBqIAhC////////////AEIAEPwDIAJBQGsgAikDUCIIIAMgAikDkAEiDCABKQMAfCIJIAYgC1atIAogBCAGVq18fHwiBHwiBiAFIAdUrSACQfgAaikDACIKIAMgB1atfHx8Igt8IgcgAkHoAGopAwAgBSACKQNgIgV8IAVUrXx8IgVCm5Svw/K1qN6Gf34iA0JtQgAQ/AMgAkEwaiADQn9CABD8AyACQSBqIANC////////////AEIAEPwDAkACQCACQShqKQMAIAJBGGopAwAgAkEIaikDACAEIAlUrSACQZgBaikDACAJIAxUrXx8IgkgAikDAHwiAyAJVK18IAMgBiALVq0gCiAEIAZWrXx8fCIEIANUrXwiBiACKQMQfCIDIAZUrXwgAyACQdgAaikDACIGIAQgBCAIfCIEVq18IAQgBSAHVK0gBiAHIAhUrXx8fCIGIARUrXx8IgQgA1StfCIDIAIpAyB8IgcgA1StfCAHIAJBOGopAwAiCCAEIAQgAikDMCIDfCIEVq18IAQgBCAIIAMgAyAGfCIDVq18IAMgAkHIAGopAwAgBSACKQNAIgV8IAVUrXx8IgggA1StfHwiBFatfHwiBSAHVK18IgZCAFMNAAJAIAZC////////////AFoEQEJ/IQMgBUJ/UgRAIAQhByAFIQNC////////////ACEGDAQLIARCf1ENASAEIQdC////////////ACEGDAMLIAQhByAFIQMMAgtCfyEHIAhCbVoNAEL///////////8AIQYMAQsgBEIBfCIDIAhCbVStIgl9IQcgBUIBfCIKIARCf1IgAyAJVHKtIgR9IQMgBiAFQn9SIAQgClZyrX1C////////////AH0hBiAIQhN8IQgLIAAgCDcDGCAAIAc3AxAgACADNwMIIAAgBjcDACACQcABaiQAC7cIAQl/QQwhCCMAQRBrIgUkAAJAIAEoAggiAkEMTQRAAkAgAkUEQEEIIQYMAQsgAkEwbCIJQQBIIAJBqtWqFUtyDQIgASgCBCEKQbnRwgAtAAAaQQghAyAJQQgQiwUiBkUNAiACIQEDQCAHIAlGDQEgBiAHaiIDIAcgCmoiBCkDADcDACADQShqIARBKGopAwA3AwAgA0EgaiAEQSBqKQMANwMAIANBGGogBEEYaikDADcDACADQRBqIARBEGopAwA3AwAgA0EIaiAEQQhqKQMANwMAIAdBMGohByABQQFrIgENAAsLIAUgAjYCDCAFIAY2AgggBSACNgIEIAJBDEkEQCAFQQRqIAJBDCACayIEENIDIAUoAgggBSgCDCIGQTBsaiEBIARBAk8EQCACQX9zQQxqIgJBB3EhAyAEQQJrQQdPBEAgAkF4cSEHA0AgAUIANwMAIAFBKGpCADcDACABQSBqQgA3AwAgAUEYakIANwMAIAFBEGpCADcDACABQQhqQgA3AwAgAUEwakIANwMAIAFBOGpCADcDACABQUBrQgA3AwAgAUHIAGpCADcDACABQdAAakIANwMAIAFB2ABqQgA3AwAgAUHgAGpCADcDACABQegAakIANwMAIAFB8ABqQgA3AwAgAUH4AGpCADcDACABQYABakIANwMAIAFBiAFqQgA3AwAgAUG4AWpCADcDACABQbABakIANwMAIAFBqAFqQgA3AwAgAUGgAWpCADcDACABQZgBakIANwMAIAFBkAFqQgA3AwAgAUHAAWpCADcDACABQcgBakIANwMAIAFB0AFqQgA3AwAgAUHYAWpCADcDACABQeABakIANwMAIAFB6AFqQgA3AwAgAUHwAWpCADcDACABQfgBakIANwMAIAFBgAJqQgA3AwAgAUGIAmpCADcDACABQZACakIANwMAIAFBmAJqQgA3AwAgAUHIAmpCADcDACABQcACakIANwMAIAFBuAJqQgA3AwAgAUGwAmpCADcDACABQagCakIANwMAIAFBoAJqQgA3AwAgAUH4AmpCADcDACABQfACakIANwMAIAFB6AJqQgA3AwAgAUHgAmpCADcDACABQdgCakIANwMAIAFB0AJqQgA3AwAgAUGAA2ohASAHQQhrIgcNAAsLIAMEQANAIAFCADcDACABQShqQgA3AwAgAUEgakIANwMAIAFBGGpCADcDACABQRBqQgA3AwAgAUEIakIANwMAIAFBMGohASADQQFrIgMNAAsLIAQgBmpBAWshBgsgAUIANwMAIAFBKGpCADcDACABQSBqQgA3AwAgAUEYakIANwMAIAFBEGpCADcDACABQQhqQgA3AwAgBkEBaiEICyAAIAUpAgQ3AgAgAEEIaiAINgIAIAVBEGokAA8LQbycwABBN0GMncAAELkEAAsgAyAJEIMFAAv0BwEPfyMAQcACayICJAAgAkE4akIANwMAIAJBMGpCADcDACACQShqQgA3AwAgAkEgakIANwMAIAJBGGpCADcDACACQRBqQgA3AwAgAkEIakIANwMAIAJCADcDAAJAAkAgASACENgEBEAgAUFAayIDIAIQ2AQNAQsgAkHgAGoiAyABKQMgNwMAIAJB2ABqIgQgAUEYaikDADcDACACQdAAaiIFIAFBEGopAwA3AwAgAkHIAGoiBiABQQhqKQMANwMAIAJB6ABqIgcgAUEoaikDADcDACACQfAAaiIIIAFBMGopAwA3AwAgAkH4AGoiCSABQThqKQMANwMAIAJBiAFqIAFByABqKQMANwMAIAJBkAFqIAFB0ABqKQMANwMAIAJBmAFqIAFB2ABqKQMANwMAIAIgASkDADcDQCACIAEpA0A3A4ABIAJBuAFqIAFB+ABqKQMANwMAIAJBsAFqIAFB8ABqKQMANwMAIAJBqAFqIAFB6ABqKQMANwMAIAIgASkDYDcDoAEgAEFAayACQYABahCgAyAAQThqIAkpAwA3AwAgAEEwaiAIKQMANwMAIABBKGogBykDADcDACAAQSBqIAMpAwA3AwAgAEEYaiAEKQMANwMAIABBEGogBSkDADcDACAAQQhqIAYpAwA3AwAgACACKQNANwMADAELIAJB4AFqIgQgASkDIDcDACACQdgBaiIFIAFBGGopAwA3AwAgAkHQAWoiBiABQRBqKQMANwMAIAJByAFqIgcgAUEIaikDADcDACACQegBaiIIIAFBKGopAwA3AwAgAkHwAWoiCSABQTBqKQMANwMAIAJB+AFqIgogAUE4aikDADcDACACQYgCaiILIANBCGopAwA3AwAgAkGQAmoiDCADQRBqKQMANwMAIAJBmAJqIg0gA0EYaikDADcDACACIAEpAwA3A8ABIAIgAykDADcDgAIgAkG4AmoiAyABQfgAaikDADcDACACQbACaiIOIAFB8ABqKQMANwMAIAJBqAJqIg8gAUHoAGopAwA3AwAgAkGgAmoiECABKQNgNwMAIABBOGogCikDADcDACAAQTBqIAkpAwA3AwAgAEEoaiAIKQMANwMAIABBIGogBCkDADcDACAAQRhqIAUpAwA3AwAgAEEQaiAGKQMANwMAIABBCGogBykDADcDACAAIAIpA8ABNwMAIABB+ABqIAMpAwA3AwAgAEHwAGogDikDADcDACAAQegAaiAPKQMANwMAIABB4ABqIBApAwA3AwAgAEHYAGogDSkDADcDACAAQdAAaiAMKQMANwMAIABByABqIAspAwA3AwAgACACKQOAAjcDQAsgAkHAAmokAAvJBwEFfyMAQdAAayICJAAgAkEMaiABENwCAkACQCACKAIMQYCAgIB4RgRAIABBADYCCCAAQoCAgIDAADcCAAJAIAEoAgAiAEUNACABKAIMIgQgASgCBCIDa0EMbiEFIAMgBEcEQANAIAMoAgAiBARAIANBBGooAgAgBEECdBCUBQsgA0EMaiEDIAVBAWsiBQ0ACwsgASgCCCIDRQ0AIAAgA0EMbBCUBQsgASgCECIARQ0BIAEoAhwiBCABKAIUIgNrQQxuIQUgAyAERwRAA0AgAygCACIEBEAgA0EEaigCACAEQQJ0EJQFCyADQQxqIQMgBUEBayIFDQALCyABKAIYIgFFDQEgACABQQxsEJQFDAELIAEoAgAEQCABKAIMIAEoAgRrQQxuIQULQQQgASgCEAR/IAEoAhwgASgCFGtBDG4FIAMLIAVqIgNBAWogA0EDSRsiA0EMbCIFQQBIIANBqtWq1QBLcg0BQbnRwgAtAAAaQQQhBiAFQQQQiwUiBEUNASAEIAIpAgw3AgAgBEEIaiACQRRqKAIANgIAIAJBATYCCCACIAQ2AgQgAiADNgIAIAJBOGogAUEgaikCADcDACACQTBqIAFBGGopAgA3AwAgAkEoaiABQRBqKQIANwMAIAJBIGogAUEIaikCADcDACACIAEpAgA3AxggAkHEAGogAkEYahDcAiACKAJEQYCAgIB4RwRAQQwhBUEBIQMDQCACKAIAIANGBEBBACEGQQAhBCACIAMgAigCGAR/IAIoAiQgAigCHGtBDG4FIAQLIAIoAigEfyACKAI0IAIoAixrQQxuBSAGC2pBAWoQ0AMgAigCBCEECyAEIAVqIgEgAikCRDcCACABQQhqIAJBzABqKAIANgIAIAIgA0EBaiIDNgIIIAVBDGohBSACQcQAaiACQRhqENwCIAIoAkRBgICAgHhHDQALCwJAIAIoAhgiAUUNACACKAIkIgQgAigCHCIDa0EMbiEFIAMgBEcEQANAIAMoAgAiBARAIANBBGooAgAgBEECdBCUBQsgA0EMaiEDIAVBAWsiBQ0ACwsgAigCICIDRQ0AIAEgA0EMbBCUBQsCQCACKAIoIgFFDQAgAigCNCIEIAIoAiwiA2tBDG4hBSADIARHBEADQCADKAIAIgQEQCADQQRqKAIAIARBAnQQlAULIANBDGohAyAFQQFrIgUNAAsLIAIoAjAiA0UNACABIANBDGwQlAULIAAgAikCADcCACAAQQhqIAJBCGooAgA2AgALIAJB0ABqJAAPCyAGIAUQgwUAC4oMAg5/C34jAEGwAWsiAyQAIAEoAggiBSACKAIIIgQgBCAFSRshByACIAEgBCAFSyIGGyIIKAIAIQ8gCCgCBCEIIAEgAiAGGyIBKAIAIQsgASgCBCEKAkAgBSAEIAYbIgFFDQAgAUEwbCEJIAdBAWohDCADQQxqIQUgA0H0AGohBCAIIQEgCiECA0ACQCAEIAIpAgA3AgAgBEEoaiACQShqKQIANwIAIARBIGogAkEgaikCADcCACAEQRhqIAJBGGopAgA3AgAgBEEQaiACQRBqKQIANwIAIARBCGogAkEIaikCADcCACADQRBqIANB+ABqKQIANwMAIANBGGogA0GAAWopAgA3AwAgA0EgaiADQYgBaikCADcDACADQShqIANBkAFqKQIANwMAIANBMGogA0GYAWopAgA3AwAgA0E4aiADQaABaigCADYCACADIAMpAnA3AwggA0HIAGogBUEIaikCADcDACADQdAAaiAFQRBqKQIANwMAIANB2ABqIAVBGGopAgA3AwAgA0HgAGogBUEgaikCADcDACADQegAaiAFQShqKQIANwMAIAMgBSkCADcDQCAMQQFrIgxFDQBCms3/y6O9xIAaIRMgA0FAayIGKQMIIhIgASkDCHwiESASVCARIAYpAxAiEiABKQMQfCIWIBJUIBYgFiAGKQMYIhIgASkDGHwiFCASVCAUIBQgBikDICIVIAEpAyB8IhIgFVQgEiASIAYpAygiFSABKQMofCIXIBVUrXwiElZyrXwiFFZyrXwiFlZyrXwiFSARVHKtIAEpAwAgBikDAHx8IhghEQJAAkACQCAYQprN/8ujvcSAGlINAELX2a6a5PbpjcsAIRMgFSIRQtfZrprk9umNywBSDQBCv6WUnM/w0rvkACETIBYiEUK/pZScz/DSu+QAUg0AQqTsw7WP1LSY5wAhEyAUIhFCpOzDtY/UtJjnAFINAEL//8+K6///1R4hEyASIhFC///Piuv//9UeUg0AQqvV/v///7//uX8hEyAXIhFCq9X+////v/+5f1ENAQsgESATWg0AIBUhESAWIRMgFCEZIBIhGgwBCyASQv//z4rr///VHn0iESAXQqvV/v///7//uX9UrSITfSEaIBRCpOzDtY/UtJjnAH0iGyASQv//z4rr///VHlQgESATVHKtIhF9IRkgFkK/pZScz/DSu+QAfSISIBRCpOzDtY/UtJjnAFQgESAbVnKtIhF9IRMgFULX2a6a5PbpjcsAfSIUIBZCv6WUnM/w0rvkAFQgESASVnKtIhJ9IREgGCAVQtfZrprk9umNywBUIBIgFFZyrX1Cms3/y6O9xIAafSEYIBdC1aqBgICAwIDGAHwhFwsgASAXNwMoIAEgGjcDICABIBk3AxggASATNwMQIAEgETcDCCABIBg3AwAgAkEwaiECIAFBMGohASAJQTBrIgkNAQwCCwsgByAHQYyfwAAQmAQACyALBEAgCiALQTBsEJQFCyADQQA6ABAgAyAINgIIIAMgCCAHQTBsajYCDCADQaQBaiADQQhqEMACIAMoAqwBIgFBAk8EQCABQQF2IQogAygCqAEiAiABQTBsakEwayEBA0AgAikDACERIAIgASkDADcDACADQZgBaiIFIAJBKGoiBCkDADcDACADQZABaiIGIAJBIGoiBykDADcDACADQYgBaiILIAJBGGoiCSkDADcDACADQYABaiIMIAJBEGoiDSkDADcDACADQfgAaiIQIAJBCGoiDikDADcDACAEIAFBKGoiBCkDADcDACAHIAFBIGoiBykDADcDACAJIAFBGGoiCSkDADcDACANIAFBEGoiDSkDADcDACAOIAFBCGoiDikDADcDACADIBE3A3AgBCAFKQMANwMAIAcgBikDADcDACAJIAspAwA3AwAgDSAMKQMANwMAIA4gECkDADcDACABIAMpA3A3AwAgAUEwayEBIAJBMGohAiAKQQFrIgoNAAsLIAAgAykCpAE3AgAgAEEIaiADQawBaigCADYCACAPBEAgCCAPQTBsEJQFCyADQbABaiQAC4oKARB+QprN/8ujvcSAGiELIAEpAwgiAyACKQMIfCIIIANUIAggASkDECIDIAIpAxB8IgogA1QgCiABKQMYIgMgAikDGHwiBCADVCAEIAEpAyAiAyACKQMgfCIFIANUIAUgASkDKCIDIAIpAyh8IgwgA1StfCIGIAVUcq18IgcgBFRyrXwiBCAKVHKtfCIFIAhUcq0gAikDACABKQMAfHwiDiEDAkACQAJAIA5Cms3/y6O9xIAaUg0AQtfZrprk9umNywAhCyAFIgNC19mumuT26Y3LAFINAEK/pZScz/DSu+QAIQsgBCIDQr+llJzP8NK75ABSDQBCpOzDtY/UtJjnACELIAciA0Kk7MO1j9S0mOcAUg0AQv//z4rr///VHiELIAYiA0L//8+K6///1R5SDQBCq9X+////v/+5fyELIAwiA0Kr1f7///+//7l/UQ0BCyADIAtaDQAgBSEQIAQhESAHIRIgBiELDAELIAZC///Piuv//9UefSIIIAxCq9X+////v/+5f1StIgN9IQsgB0Kk7MO1j9S0mOcAfSIKIAZC///Piuv//9UeVCADIAhWcq0iA30hEiAEQr+llJzP8NK75AB9IgYgB0Kk7MO1j9S0mOcAVCADIApWcq0iA30hESAFQtfZrprk9umNywB9IgcgBEK/pZScz/DSu+QAVCADIAZWcq0iA30hECAOIAVC19mumuT26Y3LAFQgAyAHVnKtfUKazf/Lo73EgBp9IQ4gDELVqoGAgIDAgMYAfCEMC0Kazf/Lo73EgBohCSABQThqKQMAIgMgAkE4aikDAHwiCCADVCAIIAFBQGspAwAiAyACQUBrKQMAfCIKIANUIAogAUHIAGopAwAiAyACQcgAaikDAHwiBCADVCAEIAFB0ABqKQMAIgMgAkHQAGopAwB8IgUgA1QgBSABQdgAaikDACIDIAJB2ABqKQMAfCINIANUrXwiBiAFVHKtfCIHIARUcq18IgQgClRyrXwiBSAIVHKtIAIpAzAgASkDMHx8Ig8hAwJAAkACQCAPQprN/8ujvcSAGlINAELX2a6a5PbpjcsAIQkgBSIDQtfZrprk9umNywBSDQBCv6WUnM/w0rvkACEJIAQiA0K/pZScz/DSu+QAUg0AQqTsw7WP1LSY5wAhCSAHIgNCpOzDtY/UtJjnAFINAEL//8+K6///1R4hCSAGIgNC///Piuv//9UeUg0AQqvV/v///7//uX8hCSANIgNCq9X+////v/+5f1ENAQsgAyAJWg0AIAUhAyAEIQkgByEIIAYhCgwBCyAGQv//z4rr///VHn0iCCANQqvV/v///7//uX9UrSIDfSEKIAdCpOzDtY/UtJjnAH0iCSAGQv//z4rr///VHlQgAyAIVnKtIgN9IQggBEK/pZScz/DSu+QAfSIGIAdCpOzDtY/UtJjnAFQgAyAJVnKtIgN9IQkgBULX2a6a5PbpjcsAfSIHIARCv6WUnM/w0rvkAFQgAyAGVnKtIgR9IQMgDyAFQtfZrprk9umNywBUIAQgB1ZyrX1Cms3/y6O9xIAafSEPIA1C1aqBgICAwIDGAHwhDQsgACAPNwMwIAAgDDcDKCAAIAs3AyAgACASNwMYIAAgETcDECAAIBA3AwggACAONwMAIABB2ABqIA03AwAgAEHQAGogCjcDACAAQcgAaiAINwMAIABBQGsgCTcDACAAQThqIAM3AwAL4wcBCH8jAEEgayIDJAACQCACLQAMIgRBAUYEQCAAIAEpAgA3AgAgAEEIaiABQQhqKQIANwIADAELAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAEtAAwiB0EBaw4CDAEACyAERQ0BDAILIARFDQELAkBBfyABKAIIIgQgAigCCCIFRyAEIAVJGyIGDQAgBEECdCEEIAVBAnQhBSABKAIEQQRrIQggAigCBEEEayEKA0AgBARAIAVFDQUgBCAIaiEGIAUgCmohCSAEQQRrIQQgBUEEayEFQX8gCSgCACIJIAYoAgAiBkcgBiAJSRsiBkUNAQwCCwtBf0EAIAUbIQYLIAZB/wFxDgIGAgELIANBGGogAUEIaigCADYCACADIAEpAgA3AxAgA0EEaiADQRBqIAIQ9gEgACADKQIENwIAIABBCGogA0EMaigCACIBNgIAIAAgB0EBIAEbOgAMDAsLQQIhBCAHQQFrDgIBAgMLIANBGGogAUEIaigCADYCACADIAEpAgA3AxAgA0EEaiIEIANBEGogAhCoAkEBIQECQCAHQQFGBEAgA0EANgIMIAMoAgRBBEkNASAEEJMEDAELIAdBASADKAIMGyEBCyAAIAMpAgQ3AgAgACABOgAMIABBCGogA0EMaigCADYCAAwJCyADQRhqIAFBCGooAgA2AgAgAyABKQIANwMQIANBBGoiASACIANBEGoQxwFBACEEIANBADYCDCABEK4EIAMoAgwiBUUNAyAFQQJ0IgEgAygCCCICakEEaygCAARAIAUhBAwECyACQQRrIQQgBSECAkADQCABRQRAQQAhAQwCCyACQQFrIQIgASAEaiABQQRrIQEoAgBFDQALIAJBAWoiASAFIgRLDQQLIAMgATYCDCABIQQMAwtBACEECyADQRhqIAFBCGooAgA2AgAgAyABKQIANwMQIANBBGogAiADQRBqEMcBIARBASADKAIMGyEBDAILIABBCGpBjO/BACkCADcCACAAQYTvwQApAgA3AgAMAwtBASEBIAQgAygCBEECdk8NACADQQRqEJMECyAAIAMpAgQ3AgAgACABOgAMIABBCGogA0EMaigCADYCAAwDCyACKAIEIQgCQCACKAIIIgJFBEBBBCEHDAELIAJBAnQhBSACQf////8BSwRADAMLQbnRwgAtAAAaQQQhBiAFQQQQiwUiB0UNAgsgByAIIAUQrQUhBSAAQQIgBGs6AAwgACACNgIIIAAgBTYCBCAAIAI2AgALIAEoAgAiAEUNASABKAIEIABBAnQQlAUMAQsgBiAFEIMFAAsgA0EgaiQAC9UHAgx/AX4jAEGgAmsiAyQAIAKnIQQCQAJAAkACQAJAIAJCAVgEQCAEQQFrDQQMAQsgA0HoAWoiBSABQShqKQMANwMAIANB4AFqIgYgAUEgaikDADcDACADQdgBaiIHIAFBGGopAwA3AwAgA0HQAWoiCCABQRBqKQMANwMAIANByAFqIgkgAUEIaikDADcDACADQfgBaiIKIAFBOGopAwA3AwAgA0GAAmoiCyABQUBrKQMANwMAIANBiAJqIgwgAUHIAGopAwA3AwAgA0GQAmoiDSABQdAAaikDADcDACADQZgCaiIOIAFB2ABqKQMANwMAIAMgASkDADcDwAEgAyABKQMwNwPwASADIANBwAFqQeAAEK0FIQEgBEEBcUUNAQwCCyADQegBaiABQShqKQMANwMAIANB4AFqIAFBIGopAwA3AwAgA0HYAWogAUEYaikDADcDACADQdABaiABQRBqKQMANwMAIANByAFqIAFBCGopAwA3AwAgA0H4AWogAUE4aikDADcDACADQYACaiABQUBrKQMANwMAIANBiAJqIAFByABqKQMANwMAIANBkAJqIAFB0ABqKQMANwMAIANBmAJqIAFB2ABqKQMANwMAIAMgASkDADcDwAEgAyABKQMwNwPwASAAIANBwAFqQeAAEK0FGgwDCwNAIAFBwAFqIgQgARCCASABIARB4AAQrQUaIAJCAoMgAkIBiCECUA0ACwsgBSABQShqKQMANwMAIAYgAUEgaikDADcDACAHIAFBGGopAwA3AwAgCCABQRBqKQMANwMAIAkgAUEIaikDADcDACAKIAFBOGopAwA3AwAgCyABQUBrKQMANwMAIAwgAUHIAGopAwA3AwAgDSABQdAAaikDADcDACAOIAFB2ABqKQMANwMAIAEgASkDADcDwAEgASABKQMwNwPwASABQeAAaiABQcABakHgABCt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AwA3AwAgAkG4AmogAUEYaikDADcDACACQbACaiABQRBqKQMANwMAIAJBqAJqIAFBCGopAwA3AwAgAkHYAmogAUE4aikDADcDACACQeACaiABQUBrKQMANwMAIAJB6AJqIAFByABqKQMANwMAIAJB8AJqIAFB0ABqKQMANwMAIAJB+AJqIAFB2ABqKQMANwMAIAIgASkDADcDoAIgAiABKQMwNwPQAiACQagDaiADQShqKQMANwMAIAJBoANqIANBIGopAwA3AwAgAkGYA2ogA0EYaikDADcDACACQZADaiADQRBqKQMANwMAIAJBiANqIANBCGopAwA3AwAgAkHYA2ogAUG4AWopAwA3AwAgAkHQA2ogAUGwAWopAwA3AwAgAkHIA2ogAUGoAWopAwA3AwAgAkHAA2ogAUGgAWopAwA3AwAgAkG4A2ogAUGYAWopAwA3AwAgAiADKQMANwOAAyACIAEpA5ABNwOwAyAAIAJBoAJqQeAAEK0FQeAAaiACQYADakHgABCtBRoLIAJB4ANqJAALwwcCCX8CfiMAQUBqIgMkAAJAIAItAAwiB0EBRgRAIAAgASkCADcCACAAQQhqIAFBCGopAgA3AgAgAigCACIARQ0BIAIoAgQgAEECdBCUBQwBCwJAAkACQAJAAkACQCABLQAMIghBAWsOAgACAQsgACACKQIANwIAIABBCGogAkEIaikCADcCAAwECyAHRQ0BDAILIAdFDQELIANBGGogAUEIaiIHKAIANgIAIAMgASkCACIMNwMQIANBKGogAkEIaiIGKAIANgIAIAMgAikCACINNwMgAn8gDKciBCANpyIFSQRAIANBOGogBigCADYCACADIAIpAgA3AzAgA0EEaiADQTBqIANBEGoiARD2ASABDAELIANBOGogBygCADYCACADIAEpAgA3AzAgA0EEaiADQTBqIANBIGoiARD2ASAFIQQgAQshAiAEBEAgAigCBCAEQQJ0EJQFC0EBIQICQCAIQQFGBEAgA0EANgIMIAMoAgQiAUEESQ0BIAMoAgggAUECdBCUBSADQoCAgIDAADcCBAwBCyAIQQEgAygCDBshAgsgACADKQIENwIAIAAgAjoADCAAQQhqIANBDGooAgA2AgAMAgsCQAJAQX8gASgCCCIEIAIoAggiBUcgBCAFSRsiBg0AIARBAnQhBCAF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ACAAQRBqIAYpAwA3AwAgAEEIaiADKQMANwMAIAAgASkD8AE3AwAgAEIANwMgIABBAToAkAMgAEEoakIANwMAIABBMGpCADcDACAAQThqQgA3AwAgAEFAa0IANwMAIABByABqQgA3AwAgAELz/7OAgIDAk6p/NwN4IABCioDQ4a+GgObTADcDcCAAQv+Aqtimr/rHxwA3A2ggAELXyei17tff6bF/NwNgIABCr9bi+7vn3OSOfzcDWCAAQv68j+yTqpHrCTcDUCAAIAEpAwg3A4ABIABBiAFqIAFBEGopAwA3AwAgAEGQAWogAUEYaikDADcDACAAQZgBaiABQSBqKQMANwMAIABBoAFqIAFBKGopAwA3AwAgAEGoAWogAUEwaikDADcDACAAQdgBaiABQeAAaikDADcDACAAQdABaiABQdgAaikDADcDACAAQcgBaiABQdAAaikDADcDACAAQcABaiABQcgAaikDADcDACAAQbgBaiABQUBrKQMANwMAIAAgASkDODcDsAEgAEGIAmogAUGQAWopAwA3AwAgAEGAAmogAUGIAWopAwA3AwAgAEH4AWogAUGAAWopAwA3AwAgAEHwAWogAUH4AGopAwA3AwAgAEHoAWogAUHwAGopAwA3AwAgACABKQNoNwPgASAAQbgCaiABQcABaikDADcDACAAQbACaiABQbgBaikDADcDACAAQagCaiABQbABaikDADcDACAAQaACaiABQagBaikDADcDACAAQZgCaiABQaABaikDADcDACAAIAEpA5gBNwOQAiAAQYwDaiAFKAIANgIAIAAgASkDyAE3AoQDIABBATYCgAMgAEHAADYC/AIgAEGR5cAANgL4AiAAQgE3A/ACIAFBkAJqJAAPCyABIAEtAPQBOgDYAUG4tsAAQSsgAUHYAWpBrNvAAEHU5cAAEP0DAAtB6IbBAEHGACABQfABakGwh8EAQZCIwQAQ/QMAC5kJARN/IwBB0AdrIgIkACACQcgEaiIFIAFBgAMQrQUaIAJCgICAgCA3A8gHIAJBvARqIQgjAEGQA2siByQAAkACQCAFKAKEAyIEIAUoAoADIglHBEAgBCAJayIGQcABbCIBQQBIIAZBqtWqBUtyDQFBudHCAC0AABpBCCEDIAFBCBCLBSIKRQ0BIAdBCGoiASAFQYADEK0FGiAHIAQ2AowDIAcgCTYCiAMgCiAJQcABbCABaiAGQcABbBCtBRoMAgtBCCEKDAELIAMgARCDBQALIAggBjYCCCAIIAo2AgQgCCAGNgIAIAdBkANqJAAgAigCvAQhBCACKALABCEDIAIoAsQEIgFBAkYEQCADKAIEIQUgAygCACEBIAJBwAFqIANBCGpB+AIQrQUaIAQEQCADIARBwAFsEJQFCyACIAU2AgQgAiABNgIAIAJBCGogAkHAAWpBuAEQrQUaIAJByARqIgsgAhC7ASAAQRhqIAJB4ARqIgwpAwA3AwAgAEEQaiACQdgEaiINKQMANwMAIABBCGogAkHQBGoiDikDADcDACAAIAIpA8gENwMAIAAgAikD6AQ3AyAgAEEoaiACQfAEaiIPKQMANwMAIABBMGogAkH4BGoiECkDADcDACAAQThqIAJBgAVqIhEpAwA3AwAgACACKQOIBTcDQCAAQcgAaiACQZAFaiISKQMANwMAIABB0ABqIAJBmAVqIhMpAwA3AwAgAEHYAGogAkGgBWoiFCkDADcDACAAQfgAaiACQcAFaiIGKQMANwMAIABB8ABqIAJBuAVqIgcpAwA3AwAgAEHoAGogAkGwBWoiCCkDADcDACAAIAIpA6gFNwNgIABBmAFqIAJB4AVqIgkpAwA3AwAgAEGQAWogAkHYBWoiCikDADcDACAAQYgBaiACQdAFaiIDKQMANwMAIAAgAikDyAU3A4ABIABBuAFqIAJBgAZqIgQpAwA3AwAgAEGwAWogAkH4BWoiBSkDADcDACAAQagBaiACQfAFaiIBKQMANwMAIAAgAikD6AU3A6ABIAsgAkH4AmoQuwEgAEHYAWogDCkDADcDACAAQdABaiANKQMANwMAIABByAFqIA4pAwA3AwAgACACKQPIBDcDwAEgACACKQPoBDcD4AEgAEHoAWogDykDADcDACAAQfABaiAQKQMANwMAIABB+AFqIBEpAwA3AwAgACACKQOIBTcDgAIgAEGIAmogEikDADcDACAAQZACaiATKQMANwMAIABBmAJqIBQpAwA3AwAgAEG4AmogBikDADcDACAAQbACaiAHKQMANwMAIABBqAJqIAgpAwA3AwAgACACKQOoBTcDoAIgAEHYAmogCSkDADcDACAAQdACaiAKKQMANwMAIABByAJqIAMpAwA3AwAgACACKQPIBTcD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KQMANwMAIAVB0ARqIAVBEGopAwA3AwAgBUHYBGogBUEYaikDADcDACAFQegEaiAFQShqKQMANwMAIAVB8ARqIAVBMGopAwA3AwAgBUH4BGogBUE4aikDADcDACAFIAUpAwA3A8AEIAUgBSkDIDcD4AQgBiAFIAEQLSAFQYABaiILIAYgCBDzASAFQcABaiICIAggCBDKAiAFQYACaiIJIAogARDzASAGIAIgCRDFAyAHIAUgBhDKAiAFQcACaiICIAcQoAMgBiACIAIQLSAHIAYgARDzASAFQYADaiIJIAcgChDzASAGIAEgCRDzASAHIAIgBhAtIAVBgARqIAcgCBDzASAFQcgDaiAFQYgDaikDADcDACAFQdADaiAFQZADaikDADcDACAFQdgDaiAFQZgDaikDADcDACAFQeADaiAFQaADaikDADcDACAFQegDaiAFQagDaikDADcDACAFQfADaiAFQbADaikDADcDACAFQfgDaiAFQbgDaikDADcDACAFQYgFaiAFQcgCaikDADcDACAFQZAFaiAFQdACaikDADcDACAFQZgFaiAFQdgCaikDADcDACAFIAUpA4ADNwPAAyAFIAUpA8ACNwOABSAFQbgFaiAFQfgCaikDADcDACAFQbAFaiAFQfACaikDADcDACAFQagFaiAFQegCaikDADcDACAFIAUpA+ACNwOgBSAGIAIgARAtIAcgBiAIEPMBIABBgAFqIAVBwARqIAsgAyAEEBUgAEGMAWogBUGABWogByADIAQQFSAAIAVBwANqQYABEK0FGiAFQcAGaiQAC48HAQp/IwBB0ANrIggkAEG50cIALQAAGgJAAkACQEEYQQQQiwUiDQRAAkAgASgCCCILRQRAQQghD0EIIQ4MAQsgC0EwbCIKQQBIIAtBqtWqFUtyDQIgASgCBCEQQbnRwgAtAAAaQQghCSAKQQgQiwUiD0UNAkEAIQkgCyEBA0AgCSAKRwRAIAkgD2oiDCAJIBBqIg4pAwA3AwAgDEEoaiAOQShqKQMANwMAIAxBIGogDkEgaikDADcDACAMQRhqIA5BGGopAwA3AwAgDEEQaiAOQRBqKQMANwMAIAxBCGogDkEIaikDADcDACAJQTBqIQkgAUEBayIBDQELC0EAIQlBudHCAC0AABogCkEIEIsFIg5FDQMgC0EwbCERIAshAQNAIAkgEUYNASAJIA5qIgogCSAQaiIMKQMANwMAIApBKGogDEEoaikDADcDACAKQSBqIAxBIGopAwA3AwAgCkEYaiAMQRhqKQMANwMAIApBEGogDEEQaikDADcDACAKQQhqIAxBCGopAwA3AwAgCUEwaiEJIAFBAWsiAQ0ACwsgDSALNgIMIA0gCzYCCCANIA82AgQgDSALNgIAIA1BFGogCzYCACANQRBqIA42AgAgCEECNgIQIAggDTYCDCAIQQI2AghBACEBIAhBADYCHCAIQoCAgICAATcCFAJAIAMEQCAIQbADaiELA0AgASAFRg0GIAEgB0YNAiAIQfABaiIJIAIgBCAGEIoDIAhBIGogCUHAARCtBRogCEHoAWoiDSALQQhqKAIANgIAIAggCykCADcD4AEgCCgCECIJIAgoAghGBEAgCEEIahDcAwsgCCgCDCAJQQxsaiIKIAgpA+ABNwIAIApBCGogDSgCADYCACAIIAlBAWo2AhAgCCgCHCIJIAgoAhRGBEAgCEEUahDdAwsgCCgCGCAJQcABbGogCEEgakHAARCtBRogCCAJQQFqNgIcIAJBwAFqIQIgBkEwaiEGIARBMGohBCADIAFBAWoiAUcNAAsLIAhByANqIAhBEGooAgA2AgAgCCAIKQIINwPAAyAIQYCAgIB4NgLwASAAIAhBwANqIAhB8AFqQQBBABC/ASAAQRRqIAhBHGooAgA2AgAgACAIKQIUNwIMIAhB0ANqJAAPCyAHIAdB8OTBABCYBAALQQRBGBCoBQALIAkgChCDBQALQQggChCDBQALIAUgBUHg5MEAEJgEAAusWwIUfyl+IwBBkAJrIgMkACADQcgAaiEGIwBBwAxrIgIkAAJAAkACQAJAAkACQCABEMsDQf8BcUEBaw4CAAECCyAGQQhqQQBB4AAQrwUaIAZCATcDAAwECyACQZAKakIANwMAIAJBiApqQgA3AwAgAkGACmpCADcDACACQfgJakIANwMAIAJCADcD8AkgAkIBNwOYCgJAQaC5wABBsLjAAEEwEK4FBEAgAkKu1fL/////+sMANwO4DCACQv3/n+qu/v/bMjcDsAwgAkLpuqaXmsmO9Ac3A6gMIAJC+vbKmZjmvNRsNwOgDCACQumA04fqo6OKbzcDmAwgAkKGhPz34+SshQQ3A5AMDAELIAJBuAxqQci5wAApAwA3AwAgAkGwDGpBwLnAACkDADcDACACQagMakG4ucAAKQMANwMAIAJBoAxqQbC5wAApAwA3AwAgAkGYDGpBqLnAACkDADcDACACQaC5wAApAwA3A5AMCyACQaAKaiACQZAMaiIFEMEBIAJBmAxqIgRCADcDACACQaAMaiIHQgA3AwAgAkGoDGoiCEIANwMAIAJBsAxqIglCADcDACACQgA3A5AMIAIgAikDyApCAYM3A7gMIAUgAkHwCWpBMBCuBQ0BQQAhBQwCCyAGQgA3AwAMAgtBACEFA0AgAkGgCmoQ+gIgBEIANwMAIAdCADcDACAIQgA3AwAgCUIANwMAIAJCADcDkAwgAiACKQPICkIBgzcDuAwgBUEBaiEFIAJBkAxqIAJB8AlqQTAQrgUNAAsLQs+qmYCAgMCJMiEaIAJCz6qZgICAwIkyNwOIDEKFgJC2jYOAnrl/IRwgAkKFgJC2jYOAnrl/NwOADELR9vaG28GXsNcAIRsgAkLR9vaG28GXsNcANwP4C0LLt/7onqTZkot/IRkgAkLLt/7onqTZkot/NwPwC0KD2IiLkK+j+ewAIRcgAkKD2IiLkK+j+ewANwPoC0KMxYfc2/Pq9REhGCACQozFh9zb8+r1ETcD4AsgAkHgC2oQywNB/wFxBEADQEKazf/Lo73EgBohFiAYIBcgF0Lt2NuS+tLGg9wAfCImViAmICYgGSAZQsWuyYK3ipbn9wB8IhdWIBcgGyAbQrqxnZ71iqak3wB8IhlWIBkgHCAcQv7/z9/D/v+FFH0iG1YgGyAaIBpC/f+LgICAwIT2AHwiGlatfCIjIBtUcq18Ih4gGVRyrXwiJSAXVHKtfCImVnKtfEKTyYPUv9iX+xV8IhghHAJAAkACQCAYQprN/8ujvcSAGlINAELX2a6a5PbpjcsAIRYgJiIcQtfZrprk9umNywBSDQBCv6WUnM/w0rvkACEWICUiHEK/pZScz/DSu+QAUg0AQqTsw7WP1LSY5wAhFiAeIhxCpOzDtY/UtJjnAFINAEL//8+K6///1R4hFiAjIhxC///Piuv//9UeUg0AQqvV/v///7//uX8hFiAaIhxCq9X+////v/+5f1ENAQsgFiAcWA0AICYhFyAlIRkgHiEbICMhHAwBCyAjQv//z4rr///VHn0iFiAaQqvV/v///7//uX9UrSIXfSEcIB5CpOzDtY/UtJjnAH0iGSAjQv//z4rr///VHlQgFiAXVHKtIhZ9IRsgJUK/pZScz/DSu+QAfSIXIB5CpOzDtY/UtJjnAFQgFiAZVnKtIhZ9IRkgJkLX2a6a5PbpjcsAfSIjICVCv6WUnM/w0rvkAFQgFiAXVnKtIhZ9IRcgGCAmQtfZrprk9umNywBUIBYgI1ZyrX1Cms3/y6O9xIAafSEYIBpC1aqBgICAwIDGAHwhGgsgAiAaNwOIDCACIBw3A4AMIAIgGzcD+AsgAiAZNwPwCyACIBc3A+gLIAIgGDcD4AsgAkHgC2oQywNB/wFxDQALCyACQbgMaiIOIAJByApqIgQpAwA3AwAgAkGwDGoiDyACQcAKaiIHKQMANwMAIAJBqAxqIhAgAkG4CmoiCCkDADcDACACQaAMaiISIAJBsApqIgkpAwA3AwAgAkGYDGoiEyACQagKaiIKKQMANwMAIAIgAikDoAo3A5AMIAJB0ApqIAJB4AtqIgsgAkGQDGoiDBAyIAIgBCkDAEIBfCIWNwO4DCACIAcpAwAiFyAWUK18IhY3A7AMIAIgCCkDACIZIBYgF1StfCIWNwOoDCACIAkpAwAiFyAWIBlUrXwiFjcDoAwgAiAKKQMAIhkgFiAXVK18IhY3A5gMIAIgAikDoAogFiAZVK18NwOQDCALIAxBARChAiACQYALaiABIAsQMiAOIAQpAwA3AwAgDyAHKQMANwMAIBAgCCkDADcDACASIAkpAwA3AwAgEyAKKQMANwMAIAIgAikDoAo3A5AMIAJBsAtqIgQgASAMEDIgAikDgAshLiACKQOICyEsIAIpA5ALISkgAikDmAshJSACKQOgCyEjIAIpA6gLIS8gBEGgucAAQTAQrgUEQCACKQPQCiEkIAIpA9gKIR0gAikD4AohHyACKQPoCiEhIAIpA/AKIR4gAikD+AohKCACKQPYCyE5IAIpA9ALISYgAikDyAshKiACKQPACyEwIAIpA7gLITEgAikDsAshM0GgucAAQbC4wABBMBCuBSEUA0AgAkGIDGogAkHYC2opAwA3AwAgAkGADGogAkHQC2opAwA3AwAgAkH4C2ogAkHIC2opAwA3AwAgAkHwC2ogAkHAC2opAwA3AwAgAkHoC2ogAkG4C2opAwA3AwAgAiACKQOwCzcD4AsCQCAUBEAgAkKu1fL/////+sMANwO4DCACQv3/n+qu/v/bMjcDsAwgAkLpuqaXmsmO9Ac3A6gMIAJC+vbKmZjmvNRsNwOgDCACQumA04fqo6OKbzcDmAwgAkKGhPz34+SshQQ3A5AMDAELIA5ByLnAACkDADcDACAPQcC5wAApAwA3AwAgEEG4ucAAKQMANwMAIBJBsLnAACkDADcDACATQai5wAApAwA3AwAgAkGgucAAKQMANwOQDAsCQCACQeALaiACQZAMakEwEK4FRQRAQQAhCAwBC0EAIQggAikDiAwhNSACKQOADCEYIAIpA/gLISAgAikD8AshIiACKQPoCyEnIAIpA+ALIS0DQEIAIRxBKCEBQgAhG0IAIRlCACEXQgAhFkIAIRoDQCACQZAJaiACQeALaiABaikDACIrIDVCABD8AyACQaAJaiArIBhCABD8AyACQbAJaiArICBCABD8AyACQcAJaiArICJCABD8AyACQdAJaiArICdCABD8AyACQeAJaiArIC1CABD8AyACQYAJaiACKQOQCSIyIBp8IitCAEL9//P/z///+Yl/EPwDIAJB8AhqIAJBiAlqKQMAIhpCq9X+////v/+5f0IAEPwDIAJB4AhqIBpC///Piuv//9UeQgAQ/AMgAkHQCGogGkKk7MO1j9S0mOcAQgAQ/AMgAkHACGogGkK/pZScz/DSu+QAQgAQ/AMgAkGwCGogGkLX2a6a5PbpjcsAQgAQ/AMgAkGgCGogGkKazf/Lo73EgBpCABD8AyACQagIaikDACACKQPgCSI3IBx8IhwgAkHYCWopAwAgAikD0AkiGiAbfCIbIBpUrXwgGyACQcgJaikDACACKQPACSIaIBl8IhkgGlStfCAZIAJBuAlqKQMAIAIpA7AJIhogF3wiFyAaVK18IBcgAkGoCWopAwAgAikDoAkiGiAWfCIWIBpUrXwgFiACQZgJaikDACArIDJUrXx8IhogFlStfHwiFiAXVK18fCIXIBlUrXx8IhkgG1StfHwiMiACKQOgCHwiNiAyVK18IDYgNiACQbgIaikDACAZIBkgAikDsAh8IhtWrXwgGyAbIAJByAhqKQMAIBcgFyACKQPACHwiGVatfCAZIBkgAkHYCGopAwAgFiAWIAIpA9AIfCIXVq18IBcgFyACQegIaikDACAaIAIpA+AIIhp8IhYgGlStfCAW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QagBaikDADcDACADIAMpA1A3A+ABIAMgAykDgAE3A7ABIANBKGogASkDADcDACADQSBqIAIpAwA3AwAgA0EYaiAEKQMANwMAIANBEGogCCkDADcDACADQQhqIAopAwA3AwAgAyADKQPgATcDACAFIBApAwA3AwAgByAPKQMANwMAIAkgDikDADcDACALIA0pAwA3AwAgA0HQAGogDCkDADcDACADIAMpA7ABNwNIIANBMGogAxCbAyADQTxqIAYQmwMCQAJAIAMoAjgiASADKAJEIgJGBEAgAygCNEEEayECIAMoAkBBBGshBiABQQJ0IQEDQCABRQ0CIAEgAmohBSABIAZqIAFBBGshASgCACIEIAUoAgAiBUYNAAsgBCAFTQ0EDAILIAEgAkkNAQwDCyABRQ0CCyADKAI8IgEEQCADKAJAIAFBAnQQlAULIAMoAjAiAQRAIAMoAjQgAUECdBCUBQsgACADKQMANwMAIABBKGogA0EoaikDADcDACAAQSBqIANBIGopAwA3AwAgAEEYaiADQRhqKQMANwMAIABBEGogA0EQaikDADcDACAAQQhqIANBCGopAwA3AwAMAgtBhpnBAEEQQZiZwQAQqgQACyADKAI8IgEEQCADKAJAIAFBAnQQlAULIAMoAjAiAQRAIAMoAjQgAUECdBCUBQsgACADKQNINwMAIABBKGogA0HwAGopAwA3AwAgAEEgaiADQegAaikDADcDACAAQRhqIANB4ABqKQMANwMAIABBEGogA0HYAGopAwA3AwAgAEEIaiADQdAAaikDADcDAAsgA0GQAmokAAuyBgEHfwJAIAAoAgAiCSAAKAIIIgNyBEACQCADRQ0AIAEgAmohCAJAIAAoAgwiBkUEQCABIQQMAQsgASEEA0AgBCIDIAhGDQICfyADQQFqIAMsAAAiB0EATg0AGiADQQJqIAdBYEkNABogA0EDaiAHQXBJDQAaIAdB/wFxQRJ0QYCA8ABxIAMtAANBP3EgAy0AAkE/cUEGdCADLQABQT9xQQx0cnJyQYCAxABGDQMgA0EEagsiBCAFIANraiEFIAZBAWsiBg0ACwsgBCAIRg0AIAQsAAAiA0EATiADQWBJciADQXBJckUEQCADQf8BcUESdEGAgPAAcSAELQADQT9xIAQtAAJBP3FBBnQgBC0AAUE/cUEMdHJyckGAgMQARg0BCwJAAkAgBUUNACACIAVNBEBBACEDIAIgBUYNAQwCC0EAIQMgASAFaiwAAEFASA0BCyABIQMLIAUgAiADGyECIAMgASADGyEBCyAJRQ0BIAAoAgQhBwJAIAJBEE8EQCABIAIQ+gEhAwwBCyACRQRAQQAhAwwBCyACQQNxIQYCQCACQQRJBEBBACEDQQAhBQwBCyACQQxxIQhBACEDQQAhBQNAIAMgASAFaiIELAAAQb9/SmogBEEBaiwAAEG/f0pqIARBAmosAABBv39KaiAEQQNqLAAAQb9/SmohAyAIIAVBBGoiBUcNAAsLIAZFDQAgASAFaiEEA0AgAyAELAAAQb9/SmohAyAEQQFqIQQgBkEBayIGDQALCwJAIAMgB0kEQCAHIANrIQRBACEDAkACQAJAIAAtACBBAWsOAgABAgsgBCEDQQAhBAwBCyAEQQF2IQMgBEEBakEBdiEECyADQQFqIQMgACgCECEGIAAoAhghBSAAKAIUIQADQCADQQFrIgNFDQIgACAGIAUoAhARAgBFDQALQQEPCwwCC0EBIQMgACABIAIgBSgCDBEDAAR/IAMFQQAhAwJ/A0AgBCADIARGDQEaIANBAWohAyAAIAYgBSgCEBECAEUNAAsgA0EBawsgBEkLDwsgACgCFCABIAIgACgCGCgCDBEDAA8LIAAoAhQgASACIAAoAhgoAgwRAwALoAcCD38BfiMAQeADayICJAAgAhD4AUG50cIALQAAGkHAAUEIEIsFIgMEQCADIAIpA1A3AwAgAyACKQMgNwMwIANBKGogAkH4AGopAwA3AwAgA0EgaiACQfAAaikDADcDACADQRhqIAJB6ABqKQMANwMAIANBEGogAkHgAGopAwA3AwAgA0EIaiACQdgAaikDADcDACADQThqIAJBKGopAwA3AwAgA0FAayACQTBqKQMANwMAIANByABqIAJBOGopAwA3AwAgA0HQAGogAkFAaykDADcDACADQdgAaiACQcgAaikDADcDACADQYgBakIANwMAIANBgAFqQgA3AwAgA0H4AGpCADcDACADQfAAakIANwMAIANB6ABqQgA3AwAgA0IANwNgIANBsJHAACkDADcDkAEgA0GYAWpBuJHAACkDADcDACADQaABakHAkcAAKQMANwMAIANBqAFqQciRwAApAwA3AwAgA0GwAWpB0JHAACkDADcDACADQbgBakHYkcAAKQMANwMAIAJBADoArAMgAiADQcABajYCqAMgAiADNgKkAyACQZgDaiACQaQDahDAAiACKAKgAyIEQQJPBEAgBEEBdiELIAIoApwDIgUgBEEwbGpBMGshBANAIAUpAwAhESAFIAQpAwA3AwAgAkHYA2oiDCAFQShqIgYpAwA3AwAgAkHQA2oiDSAFQSBqIgcpAwA3AwAgAkHIA2oiDiAFQRhqIggpAwA3AwAgAkHAA2oiDyAFQRBqIgkpAwA3AwAgAkG4A2oiECAFQQhqIgopAwA3AwAgBiAEQShqIgYpAwA3AwAgByAEQSBqIgcpAwA3AwAgCCAEQRhqIggpAwA3AwAgCSAEQRBqIgkpAwA3AwAgCiAEQQhqIgopAwA3AwAgAiARNwOwAyAGIAwpAwA3AwAgByANKQMANwMAIAggDikDADcDACAJIA8pAwA3AwAgCiAQKQMANwMAIAQgAikDsAM3AwAgBEEwayEEIAVBMGohBSALQQFrIgsNAAsLIABBDGoiBSACKQKYAzcCACAFQQhqIAJBoANqKAIANgIAIANBwAEQlAUgAEEIaiABQQhqKAIANgIAIAAgASkCADcCACACKAKEAyIABEAgAigCiAMgAEECdBCUBQsCQCACKAIEIgBFDQAgACAAQQxsQRNqQXhxIgFqQQlqIgBFDQAgAigCACABayAAEJQFCyACQeADaiQADwtBCEHAARCoBQAL2gYBD38jAEEwayIDJAACQAJAAkACQAJAIAEoAggiDUECTwRAIANBDGogARCHA0EBIQUgAygCFCIKQQFrIgJBACACIApNGyICQQF2IAJBAXFqIg5FDQMgAygCECEPA0AgBSAKTw0CAkAgDyAFQQxsaiIGKAIIIgRFBEBBCCELDAELQQAhAiAEQTBsIgxBAEggBEGq1aoVS3INBCAGKAIEIRBBudHCAC0AABpBCCECIAxBCBCLBSILRQ0EQQAhByAEIQIDQCAHIAxGDQEgByALaiIIIAcgEGoiCSkDADcDACAIQShqIAlBKGopAwA3AwAgCEEgaiAJQSBqKQMANwMAIAhBGGogCUEYaikDADcDACAIQRBqIAlBEGopAwA3AwAgCEEIaiAJQQhqKQMANwMAIAdBMGohByACQQFrIgINAAsLIAMgBDYCLCADIAs2AiggAyAENgIkIANBGGogA0EkahCtAiAGKAIAIgIEQCAGKAIEIAJBMGwQlAULIAVBAmohBSAGIAMpAhg3AgAgBkEIaiADQSBqKAIANgIAIA5BAWsiDg0ACwwDCyAAIAEpAgA3AgAgAEEQaiABQRBqKQIANwIAIABBCGogAUEIaikCADcCAAwDCyAFIApBmJXAABCYBAALIAIgDBCDBQALIAAgAykCDDcCACAAQQhqIANBFGooAgA2AgAgASgCECEKQQghCAJAIAEoAhQiBEUNAEEAIQIgBEEwbCIJQQBIIARBqtWqFUtyDQJBudHCAC0AABpBCCECIAlBCBCLBSIIRQ0CQQAhByAEIQIDQCAHIAlGDQEgByAIaiIFIAcgCmoiBikDADcDACAFQShqIAZBKGopAwA3AwAgBUEgaiAGQSBqKQMANwMAIAVBGGogBkEYaikDADcDACAFQRBqIAZBEGopAwA3AwAgBUEIaiAGQQhqKQMANwMAIAdBMGohByACQQFrIgINAAsLIAAgBDYCFCAAIAg2AhAgACAENgIMIAEoAgQiACECA0AgAigCACIEBEAgAkEEaigCACAEQTBsEJQFCyACQQxqIQIgDUEBayINDQALIAEoAgAiAgRAIAAgAkEMbBCUBQsgASgCDCIARQ0AIAogAEEwbBCUBQsgA0EwaiQADwsgAiAJEIMFAAu3BQEJfyMAQYAJayIEJAAgBCABEHwgBEHoB2ogBEEoaikDADcDACAEQeAHaiAEQSBqKQMANwMAIARB2AdqIARBGGopAwA3AwAgBEHQB2ogBEEQaikDADcDACAEQcgHaiAEQQhqKQMANwMAIARB+AdqIARBOGopAwA3AwAgBEGACGogBEFAaykDADcDACAEQYgIaiAEQcgAaikDADcDACAEQZAIaiAEQdAAaikDADcDACAEQZgIaiAEQdgAaikDADcDACAEIAQpAwA3A8AHIAQgBCkDMDcD8AcgBEGgBWoiBSAEIAEQbCAEQeAAaiILIAUgAUHgAGoiBxCsASAEQcAEaiIGIAQgBBBsIAUgASABEPABIARBwAFqIgogBiAFEKwBIAYgByAHEPABIAUgASAKEKwBIARB4ANqIgggBiAFEJEEIARBoAJqIgkgCCAEEKwBIARBqAhqIARBqAJqKQMANwMAIARBsAhqIARBsAJqKQMANwMAIARBuAhqIARBuAJqKQMANwMAIARBwAhqIARBwAJqKQMANwMAIARByAhqIARByAJqKQMANwMAIARB2AhqIARB2AJqKQMANwMAIARB4AhqIARB4AJqKQMANwMAIARB6AhqIARB6AJqKQMANwMAIARB8AhqIARB8AJqKQMANwMAIARB+AhqIARB+AJqKQMANwMAIAQgBCkDoAI3A6AIIAQgBCkD0AI3A9AIIAUgCSABEGwgBEGAA2oiDCAFIAcQrAEgBiAJIAkQbCAFIAEgChDwASAIIAYgBRCsASAFIAEgCBCsASAGIAkgBRBsIARB4AZqIAYgBxCsASAEQYAGaiIBIAhB4AAQrQUaIABBwAFqIARBwAdqIAsgAiADEBsgAEHMAWogBEGgCGogDCACIAMQGyAAIAFBwAEQrQUaIARBgAlqJAALgQYCDX4BfyMAQYABayIPJAAgD0HwAGogASkDGCIDQrHqlJHdo4KcWH4iAkKv+P//b0IAEPwDIA9B4ABqIAJCf0IAEPwDIA9B0ABqIA8pA2AiAiABKQMQfCIEIA9B+ABqKQMAIAMgDykDcCIFfCAFVK18fCIFQrHqlJHdo4KcWH4iA0Kv+P//b0IAEPwDIA9BQGsgA0J/QgAQ/AMgD0EwaiAPKQNAIgMgAiABKQMIfCIGIAQgBVatIA9B6ABqKQMAIgcgAiAEVq18fHwiCXwiCCAPQdgAaikDACAPKQNQIgQgBXwgBFStfHwiBUKx6pSR3aOCnFh+IgRCr/j//29CABD8AyAPQSBqIARCf0IAEPwDIA9BEGogDykDICIEIAMgAiABKQMAfCILIAYgCVatIAcgAiAGVq18fHwiBnwiCSAFIAhUrSAPQcgAaikDACIMIAMgCFatfHx8Ig58IgggD0E4aikDACAFIA8pAzAiBXwgBVStfHwiBUKx6pSR3aOCnFh+IgpCr/j//29CABD8AyAPIApCf0IAEPwDAkAgD0EIaikDACIKIA9BKGopAwAiDSAEIAwgAyAGIAtUrSAHIAIgC1atfHwiB3wiAiAHVK18IAIgAiAJIA5WrSAMIAYgCVatfHx8IgJWrXwiBnwiAyAGVK18IAMgAyANIAIgAiAEfCICVq18IAIgBSAIVK0gDSAEIAhWrXx8fCIEIAJUrXx8IgNWrXwiByAPKQMAIgJ8IgYgB1StfCAGIAogAyACIAN8IgNWrXwgAyAKIAIgAiAEfCICVq18IAIgD0EYaikDACAPKQMQIgQgBXwgBFStfHwiBCACVK18fCIFIANUrXx8IgIgBlStfCIDQn9SDQAgAkJ/UgRAQn8hAwwBC0J/IQIgBUJ/UgRAQn8hAwwBC0J/IQUgBEKv+P//b1QEQEJ/IQMMAQsgBELRh4CAEHwhBEIAIQVCACECQgAhAwsgACAENwMYIAAgBTcDECAAIAI3AwggACADNwMAIA9BgAFqJAALowUBCX8jAEGABmsiBCQAIAQgARB5IARBmAVqIARBGGopAwA3AwAgBEGQBWogBEEQaikDADcDACAEQYgFaiAEQQhqKQMANwMAIARBqAVqIARBKGopAwA3AwAgBEGwBWogBEEwaikDADcDACAEQbgFaiAEQThqKQMANwMAIAQgBCkDADcDgAUgBCAEKQMgNwOgBSAEQcADaiIFIAQgARAtIARBQGsiCyAFIAFBQGsiBxDzASAEQYADaiIGIAQgBBAtIAUgASABEMoCIARBgAFqIgogBiAFEPMBIAYgByAHEMoCIAUgASAKEPMBIARBwAJqIgkgBiAFEMUDIARBwAFqIgggCSAEEPMBIARByAVqIARByAFqKQMANwMAIARB0AVqIARB0AFqKQMANwMAIARB2AVqIARB2AFqKQMANwMAIARB6AVqIARB6AFqKQMANwMAIARB8AVqIARB8AFqKQMANwMAIARB+AVqIARB+AFqKQMANwMAIAQgBCkDwAE3A8AFIAQgBCkD4AE3A+AFIAUgCCABEC0gBEGAAmoiDCAFIAcQ8wEgBiAIIAgQLSAFIAEgChDKAiAJIAYgBRDzASAFIAEgCRDzASAGIAggBRAtIARBwARqIAYgBxDzASAEQYgEaiAEQcgCaikDADcDACAEQZAEaiAEQdACaikDADcDACAEQZgEaiAEQdgCaikDADcDACAEQaAEaiAEQeACaikDADcDACAEQagEaiAEQegCaikDADcDACAEQbAEaiAEQfACaikDADcDACAEQbgEaiAEQfgCaikDADcDACAEIAQpA8ACNwOABCAAQYABaiAEQYAFaiALIAIgAxAVIABBjAFqIARBwAVqIAwgAiADEBUgACAEQYAEakGAARCtBRogBEGABmokAAvUBgEKfyMAQdACayIKJABBudHCAC0AABoCQAJAAkBBGEEEEIsFIg4EQAJAIAEoAggiDEUEQEEIIRFBCCEPDAELIAxBBXQhDSAMQf///x9LBEAMBQsgASgCBCETQQAhAUG50cIALQAAGkEIIQsgDUEIEIsFIhFFDQQgDEEFdCESIAwhCwNAIAEgEkcEQCABIBFqIg8gASATaiIQKQMANwMAIA9BGGogEEEYaikDADcDACAPQRBqIBBBEGopAwA3AwAgD0EIaiAQQQhqKQMANwMAIAFBIGohASALQQFrIgsNAQsLQQAhAUG50cIALQAAGiANQQgQiwUiD0UNAiAMQQV0IRIgDCELA0AgASASRg0BIAEgD2oiDSABIBNqIhApAwA3AwAgDUEYaiAQQRhqKQMANwMAIA1BEGogEEEQaikDADcDACANQQhqIBBBCGopAwA3AwAgAUEgaiEBIAtBAWsiCw0ACwsgDiAMNgIMIA4gDDYCCCAOIBE2AgQgDiAMNgIAIA5BFGogDDYCACAOQRBqIA82AgAgCkECNgIQIAogDjYCDCAKQQI2AghBACEBIApBADYCHCAKQoCAgICAATcCFAJAIAMEQCAKQbACaiEMA0AgASAFRg0FIAEgB0YNAiAKQbABaiILIAIgBCAGEO8CIApBIGogC0GAARCtBRogCkGoAWoiDiAMQQhqKAIANgIAIAogDCkCADcDoAEgCigCECILIAooAghGBEAgCkEIahDcAwsgCigCDCALQQxsaiINIAopA6ABNwIAIA1BCGogDigCADYCACAKIAtBAWo2AhAgCigCHCILIAooAhRGBEAgCkEUahDXAwsgCigCGCALQQd0aiAKQSBqQYABEK0FGiAKIAtBAWo2AhwgAkGAAWohAiAGQSBqIQYgBEEgaiEEIAMgAUEBaiIBRw0ACwsgCkHIAmogCkEQaigCADYCACAKIAopAgg3A8ACIApBgICAgHg2ArABIAAgCkHAAmogCkGwAWogCCAJEOABIABBFGogCkEcaigCADYCACAAIAopAhQ3AgwgCkHQAmokAA8LIAcgB0GU98AAEJgEAAtBBEEYEKgFAAtBCCANEIMFAAsgBSAFQYT3wAAQmAQACyALIA0QgwUAC9QGAQp/IwBB0AJrIggkAEG50cIALQAAGgJAAkACQEEYQQQQiwUiDARAAkAgASgCCCIKRQRAQQghD0EIIQ0MAQsgCkEFdCELIApB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NgIAIBEEQCAQIBFBBXQQlAULIAxBQGskAAvBBgEJf0EMIQgjAEEQayIEJAACQCABKAIIIgJBDE0EQAJAIAJFBEBBCCEFDAELIAJBBXQiByEDIAJB////H0sNAiABKAIEIQpBACEBQbnRwgAtAAAaQQghBiADQQgQiwUiBUUNAiACIQMDQCABIAdGDQEgASAFaiIJIAEgCmoiBikDADcDACAJQRhqIAZBGGopAwA3AwAgCUEQaiAGQRBqKQMANwMAIAlBCGogBkEIaikDADcDACABQSBqIQEgA0EBayIDDQALCyAEIAI2AgwgBCAFNgIIIAQgAjYCBCACQQxJBEAgBEEEaiACQQwgAmsiBxDPAyAEKAIIIAQoAgwiBUEFdGohASAHQQJPBEAgAkF/c0EMaiICQQdxIQMgB0ECa0EHTwRAIAJBeHEhBgNAIAFCADcDACABQRhqQgA3AwAgAUEQakIANwMAIAFBCGpCADcDACABQSBqQgA3AwAgAUEoakIANwMAIAFBMGpCADcDACABQThqQgA3AwAgAUFAa0IANwMAIAFByABqQgA3AwAgAUHQAGpCADcDACABQdgAakIANwMAIAFB4ABqQgA3AwAgAUHoAGpCADcDACABQfAAakIANwMAIAFB+ABqQgA3AwAgAUGYAWpCADcDACABQZABakIANwMAIAFBiAFqQgA3AwAgAUGAAWpCADcDACABQbgBakIANwMAIAFBsAFqQgA3AwAgAUGoAWpCADcDACABQaABakIANwMAIAFBwAFqQgA3AwAgAUHIAWpCADcDACABQdABakIANwMAIAFB2AFqQgA3AwAgAUHgAWpCADcDACABQegBakIANwMAIAFB8AFqQgA3AwAgAUH4AWpCADcDACABQYACaiEBIAZBCGsiBg0ACwsgAwRAA0AgAUIANwMAIAFBGGpCADcDACABQRBqQgA3AwAgAUEIakIANwMAIAFBIGohASADQQFrIgMNAAsLIAUgB2pBAWshBQsgAUIANwMAIAFBGGpCADcDACABQRBqQgA3AwAgAUEIakIANwMAIAVBAWohCAsgACAEKQIENwIAIABBCGogCDYCACAEQRBqJAAPC0G8nMAAQTdBjJ3AABC5BAALIAYgAxCDBQAL/AYBC38jAEEwayICJAAgAiABNgIkAkACQAJAAkACQAJAAkACQAJA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CwsgACAGNgIUIAAgCDYCECAAIAY2AgwgASgCBCIAIQIDQCACKAIAIgMEQCACQQRqKAIAIANBBXQQlAULIAJBDGohAiANQQFrIg0NAAsgASgCACIDBEAgACADQQxsEJQFCyABKAIMIgBFDQAgCSAAQQV0EJQFCyAEQTBqJAAPCyAFIAMQgwUAC7ICAQF/IwBBMGsiAiQAIAJBKGpCADcDACACQSBqQgA3AwAgAkEYakIANwMAIAJBEGpCADcDACACQQhqQgA3AwAgAkIANwMAIAJBKGogASkDKEIBhjcDACACQSBqIAEpAyBCAYYgASkDKEI/iIQ3AwAgAkEYaiABKQMYQgGGIAEpAyBCP4iENwMAIAJBEGogASkDEEIBhiABKQMYQj+IhDcDACACQQhqIAEpAwhCAYYgASkDEEI/iIQ3AwAgAiABKQMAQgGGIAEpAwhCP4iENwMAIAAgAikDADcDACAAQShqIAJBKGopAwA3AwAgAEEgaiACQSBqKQMANwMAIABBGGogAkEYaikDADcDACAAQRBqIAJBEGopAwA3AwAgAEEIaiACQQhqKQMANwMAIAJBMGokAA8LlwYCB34LfyMAQUBqIgskACABKAIIIgogAigCCCIMIAogDEsbIQ4gAiABIAogDEkiDRsiDygCACEQIA8oAgQhDyABIAIgDRsiASgCACERIAEoAgQhEgJAIAogDCANGyIBRQ0AIAFBBXQhDSAOQQFqIQxBACEBA0AgDEEBayIMBEACQAJAIAEgEmoiCikDACIGIAEgD2oiAikDAHwiBCAKQQhqKQMAIgMgAkEIaiITKQMAfCIFIANUIAUgCkEQaikDACIHIAJBEGoiFCkDAHwiAyAHVCADIAMgCkEYaikDACIHIAJBGGoiCikDAHwiCCAHVK18IgNWcq18IgcgBVRyrXwiBSAEVCAEIAZUcg0AQoGAgIBwIQYgBSEEAkAgBUKBgICAcFINACAHQgBSDQFC/////w8hBiADIQQgA0L/////D1INACAIQn9RDQFCACEEQoGAgIBwIQUMAgsgBCAGWg0AIAchBCADIQYMAQsgA0L/////D30iBCAIQn9SrSIJfSEGIAcgA0L/////D1QgBCAJVHKtIgN9IQQgBUL+////D0L/////DyADIAdWG3whBSAIQgF8IQgLIAIgBTcDACATIAQ3AwAg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AwAgAUEQaiAEQRBqKQMANwMAIAFBCGogBEEIaikDADcDACAGQTBqIQYgBUEBayIFDQALCyADQShqIgEgCTYCACADIAI2AiwgAyACNgIkIABBEGogA0EQaikCADcCACAAQQhqIANBCGopAgA3AgAgACADKQIANwIAIAAgAykCGDcCGCAAQSBqIANBIGopAgA3AgAgAEEoaiABKQIANwIAIANB4ABqJAAPCyAFIAsQgwUACyAFIAcQgwUAC+UFAQh/IwBBgAlrIgMkACADQZgGaiIFQai6wAApAwA3AwAgA0GQBmoiB0GgusAAKQMANwMAIANBiAZqIghBmLrAACkDADcDACADQaAGakIANwMAIANBqAZqIglCADcDACADQbAGaiIEQgA3AwAgA0G4BmoiBkIANwMAIANByAdqQgA3AwAgA0HQB2pCADcDACADQdgHakIANwMAIANB4AdqQgA3AwAgA0HoB2pCADcDACADQfAHakIANwMAIANB+AdqQgA3AwAgA0IANwPAByADQZC6wAApAwA3A4AGIANBoAhqQgA3AwAgA0H4CGpCADcDACADQfAIakIANwMAIANB6AhqQgA3AwAgA0HgCGpCADcDACADQdgIakIANwMAIANB0AhqQgA3AwAgA0HICGpCADcDACADQbgIaiAGKQMANwMAIANBsAhqIAQpAwA3AwAgA0GoCGogCSkDADcDACADQZgIaiAFKQMANwMAIANBkAhqIAcpAwA3AwAgA0GICGogCCkDADcDACADQgA3A8AIIAMgAykDgAY3A4AIIAMgASACEI8CIANBwAFqIgogAUHAAWoiBSACQcABaiIJEI8CIANBwARqIgYgASAFEMoCIANBgAVqIgcgAUFAayABQYACahDKAiADQcAFaiIIIAFBgAFqIAFBwAJqEMoCIANBgAZqIgQgAiAJEMoCIANBwAZqIgEgAkFAayACQYACahDKAiADQYAHaiIFIAJBgAFqIAJBwAJqEMoCIANBgANqIgIgBiAEEI8CIAQgCiADQcAHahCPAiAAIAMgBBDKAiAAQUBrIANBQGsgARDKAiAAQYABaiADQYABaiAFEMoCIAQgA0HAARCtBRogBiACIAQQ8wEgByADQcADaiABEPMBIAggA0GABGogBRDzASAEIApBwAEQrQUaIABBwAFqIAYgBBDzASAAQYAC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NwPQASAAQoSlr8vmyfqlMzcDyAEgAEKOu97wzOjZjyo3A8ABIAFBrAFqQQ02AgAgAUGoAWpB3ePAADYCACABQoeAgIDAATcCoAEgAUHW48AANgKcASABQQY2ApgBEJ8EIgJFDQEgAiACKQMAIgdCAXw3AwAgAikDCCEIIANBwKbBACkDADcDACABQcgBaiICIAg3AwAgAUHAAWoiBiAHNwMAIAFBuKbBACkDADcDsAEgBCABQZgBahCvASAAQfgBaiACKQMANwMAIABB8AFqIAYpAwA3AwAgAEHoAWogAykDADcDACAAIAEpA7ABNwPgASAAQgA3AwAgAEEAOgCgAiAAQQhqQgA3AwAgAEEQakIANwMAIABBGGpCADcDACAAQtfRtIWV1fKL+gA3AzggAEK5w9SKrq+wtR83AzAgAEKEpa/L5sn6pTM3AyggAEKOu97wzOjZjyo3AyAgACABKQMINwNAIABByABqIAFBEGopAwA3AwAgAEHQAGogAUEYaikDADcDACAAQdgAaiABQSBqKQMANwMAIAAgASkDKDcDYCAAQegAaiABQTBqKQMANwMAIABB8ABqIAFBOGopAwA3AwAgAEH4AGogAUFAaykDADcDACAAQZgBaiABQeAAaikDADcDACAAQZABaiABQdgAaikDADcDACAAQYgBaiABQdAAaikDADcDACAAIAEpA0g3A4ABIABBuAFqIAFBgAFqKQMANwMAIABBsAFqIAFB+ABqKQMANwMAIABBqAFqIAFB8ABqKQMANwMAIAAgASkDaDcDoAEgAEGcAmogBSgCADYCACAAIAEpA4gBNwKUAiAAQQE2ApACIABBwgA2AowCIABB6uPAADYCiAIgAEIJNwOAAiABQdABaiQADwsgASABLQC0AToAmAFBuLbAAEErIAFBmAFqQazbwABBrOTAABD9AwALQeiGwQBBxgAgAUGwAWpBsIfBAEGQiMEAEP0DAAvrBQEJfyMAQSBrIgMkAAJAIAItAAwiCEEBRgRAIAAgASkCADcCACAAQQhqIAFBCGopAgA3AgAMAQsCQAJAAkACQAJAAkACQCABLQAMIgdBAWsOAgQBAAsgCEUNAQwCCyAIRQ0BCyADQRhqIAFBCGooAgA2AgAgAyABKQIANwMQIANBBGogA0EQaiACEPYBIAAgAykCBDcCACAAQQhqIANB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ACkAADcAACABQYapwAApAAA3AAAMAQsCQAJAAkACQCAEIAhNBEAgQiABNgIMIAFBBUsEQCBCQQE2AhQgQkHcncEANgIQIEJCATcCHCBCIEJBDGqtQoCAgIAQhDcDKCBCIEJBKGo2AhggQiBCQRBqEJgDIEItAAQhASBCKAIAIghBgICAgHhHDQILIAFB/wFxDgIDBAILQbnRwgAtAAAaQThBARCLBSIBRQ0IIABBODYCDCAAIAE2AgggAEKBgICAgAc3AgAgAUEwakH+qMAAKQAANwAAIAFBKGpB9qjAACkAADcAACABQSBqQe6owAApAAA3AAAgAUEYakHmqMAAKQAANwAAIAFBEGpB3qjAACkAADcAACABQQhqQdaowAApAAA3AAAgAUHOqMAAKQAANwAADAQLIAAgQigABTYACSAAQQxqIEJBCGooAAA2AAAgACABOgAIIAAgCDYCBCAAQQE2AgAMAwsgAEEEaiECQbnRwgAtAAAaAkBBEUEBEIsFIgEEQCACQRE2AgggAiABNgIEIAJBETYCACABQRBqQc2owAAtAAA6AAAgAUEIakHFqMAAKQAANwAAIAFBvajAACkAADcAAAwBC0EBQREQgwUACyAAQQE2AgAMAgsgACE6IAIhCCAEIQsgBiFEQQAhASMAQbAIayIHJAACQAJAAkACQCADIkNFBEBBCCFIDAELIENBBXQhACBDQf///x9LDQFBudHCAC0AABpBCCEBIABBCBCLBSJIRQ0BIEghACBDIQEDQCAHQdgFaiAIEKwDIABBGGogB0HwBWopAwA3AwAgAEEQaiAHQegFaikDADcDACAAQQhqIAdB4AVqKQMANwMAIAAgBykD2AU3AwAgAEEgaiEAIAhBDGohCCABQQFrIgENAAsLIAdBgICAgHg2ArgDIAdBBjYC4AUgByBDNgLcBSAHIEg2AtgFIAcgB0G4A2o2AuQFIAdBCGogB0HYBWoQ7QICQAJAAkACQAJAIAcoArgDIgBBgICAgHhHBEAgBygCwAMhASAHKAK8AyECIAcoAggiAwRAIAcoAgwgA0HAAWwQlAULIDogATYCDCA6IAI2AgggOiAANgIEIDpBATYCAAwBCyAHKAIQITIgBygCDCE8IAcoAgghNAJAAkACQAJAAkACQAJAAkACQAJAIERBBkYEQEG50cIALQAAGkHAAUEI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QAJAAkACQCADQQxGBEAgACAINgIUIAMgCEcNAQJAAkACQAJAAkACQAJAIANBAmsOCwEAAAACAAAAAAADAAsgAEEANgKoBiAAQQE2ApwGIABByKvBADYCmAYgAEIENwKgBiAAQZgGakHArcEAEM0EAAtBudHCAC0AABpBwABBCBCLBSIDDQIMCQtBudHCAC0AABpBwAFBCBCLBSIDDQIMCQtBudHCAC0AABpBgANBCBCLBSIDDQIMCQsgAyACKQMAIn43AwAgAyACKQMgIn83AyAgAEE4aiB/NwMAIANBGGogAkEYaikDACJ/NwMAIANBEGogAkEQaikDACKAATcDACADQQhqIAJBCGopAwAigQE3AwAgA0EoaiACQShqKQMAIoIBNwMAIANBMGogAkEwaikDACKDATcDACADQThqIAJBOGopAwAihgE3AwAgAEEoaiCAATcDACAAQTBqIH83AwAgAEFAayCCATcDACAAQcgAaiCDATcDACAAQdAAaiCGATcDACAAIIEBNwMgIANBwAAQlAVBudHCAC0AABogACB+NwMYQcAAQQgQiwUiAkUNBiACIAEpAwAifjcDACACIAEpAyAifzcDICAAQfgAaiB/NwMAIAJBGGogAUEYaikDACJ/NwMAIAJBEGogAUEQaikDACKAATcDACACQQhqIAFBCGopAwAigQE3AwAgAkEoaiABQShqKQMAIoIBNwMAIAJBMGogAUEwaikDACKDATcDACACQThqIAFBOGopAwAihgE3AwAgAEHoAGoggAE3AwAgAEHwAGogfzcDACAAQYABaiCCATcDACAAQYgBaiCDATcDACAAQZABaiCGATcDACAAIIEBNwNgIAJBwAAQlAUgACB+NwNYIABBmAFqIgIgAEEYaiAAQdgAahAtIABBmAZqIAIQ6gMgACgCnAYhAiAAKAKYBiEDIAAoAqAGIghBAkcNBCAAQaAJaiACQRBqKQMANwMAIABBqAlqIAJBGGopAwA3AwAgAEGwCWogAkEgaikDADcDACAAQbgJaiACQShqKQMANwMAIABBwAlqIAJBMGopAwA3AwAgAEHICWogAkE4aikDADcDACAAIAIpAwg3A5gJIAIoAgQhCCACKAIAIQkgAwRAIAIgA0EFdBCUBQtBudHCAC0AABpBwABBCBCLBSICRQ0GIAIgCDYCBCACIAk2AgAgAiAAKQOYCTcDCCACIAApA7AJNwMgIARBAjYCCCAEIAI2AgQgBEECNgIAIAJBEGogAEGgCWopAwA3AwAgAkEYaiAAQagJaikDADcDACACQShqIABBuAlqKQMANwMAIAJBMGogAEHACWopAwA3AwAgAkE4aiAAQcgJaikDADcDAAwFCyADIAIpAwA3AwAgAyACKQMgNwMgIAMgAikDQDcDQCADQRhqIAJBGGopAwA3AwAgA0EQaiACQRBqKQMANwMAIANBCGoiCCACQQhqKQMANwMAIANBKGogAkEoaikDADcDACADQTBqIAJBMGopAwA3AwAgA0E4aiACQThqKQMANwMAIANByABqIAJByABqKQMANwMAIANB0ABqIAJB0ABqKQMANwMAIANB2ABqIAJB2ABqKQMANwMAIANB+ABqIAJB+ABqKQMANwMAIANB8ABqIAJB8ABqKQMANwMAIANB6ABqIAJB6ABqKQMANwMAIAMgAikDYDcDYCADIAIpA4ABNwOAASADQYgBaiACQYgBaikDADcDACADQZABaiACQZABaikDADcDACADQZgBaiACQZgBaikDADcDACADIAIpA6ABNwOgASADQagBaiACQagBaikDADcDACADQbABaiACQbABaikDADcDACADQbgBaiACQbgBaikDADcDACADKQMAIX4gAEGYBmoiESAIQbgBEK0FGiADQcABEJQFIABB+AlqIABBuAZqIiQpAwA3AwAgAEGACmogAEHABmoiEikDADcDACAAQYgKaiAAQcgGaiIhKQMANwMAIABBmBdqIhoiAiAAQdgGaiIiKQMANwMAIABBoBdqIgMgAEHgBmoiFykDADcDACAAQagXaiIIIABB6AZqIhgpAwA3AwAgAEGwF2oiCSAAKQPwBjcDACAAQbgXaiIMIABB+AZqIiApAwA3AwAgAEHAF2oiDSAAQYAHaiIdKQMANwMAIABByBdqIhQgAEGIB2oiHykDADcDACAAIAApA7AGNwPwCSAAIAApA9AGNwOQFyAAQegUaiIPIABBqAdqIiMpAwA3AwAgAEHgFGoiFSAAQaAHaiInKQMANwMAIABB2BRqIhAgAEGYB2oiKikDADcDACAAQfAUaiIOIAApA7AHNwMAIABB+BRqIhwgAEG4B2oiJikDADcDACAAQYAVaiI9IABBwAdqIh4pAwA3AwAgAEGIFWoiGyAAQcgHaiIrKQMANwMAIABB4AlqIABBoAZqIiwpAwA3AwAgAEHoCWogAEGoBmoiJSkDADcDACAAIAApA5AHNwPQFCAAIAApA5gGNwPYCSAAQcgKaiAUKQMANwMAIABBwApqIA0pAwA3AwAgAEG4CmogDCkDADcDACAAQbAKaiAJKQMANwMAIABBqApqIAgpAwA3AwAgAEGgCmogAykDADcDACAAQZgKaiACKQMANwMAIABBiAtqIBspAwA3AwAgAEGAC2ogPSkDADcDACAAQfgKaiAcKQMANwMAIABB8ApqIA4pAwA3AwAgAEHoCmogDykDADcDACAAQeAKaiAVKQMANwMAIABB2ApqIBApAwA3AwAgACB+NwPQCSAAIAApA5AXNwOQCiAAIAApA9AUNwPQCkG50cIALQAAGkHAAUEIEIsFIgJFDQYgAiABKQMANwMAIAIgASkDIDcDICACIAEpA0A3A0AgAkEYaiABQRhqKQMANwMAIAJBEGogAUEQaikDADcDACACQQhqIiggAUEIaikDADcDACACQShqIAFBKGopAwA3AwAgAkEwaiABQTBqKQMANwMAIAJBOGogAUE4aikDADcDACACQcgAaiABQcgAaikDADcDACACQdAAaiABQdAAaikDADcDACACQdgAaiABQdgAaikDADcDACACQfgAaiABQfgAaikDADcDACACQfAAaiABQfAAaikDADcDACACQegAaiABQegAaikDADcDACACIAEpA2A3A2AgAiABKQOAATcDgAEgAkGIAWogAUGIAWopAwA3AwAgAkGQAWogAUGQAWopAwA3AwAgAkGYAWogAUGYAWopAwA3AwAgAiABKQOgATcDoAEgAkGoAWogAUGoAWopAwA3AwAgAkGwAWogAUGwAWopAwA3AwAgAkG4AWogAUG4AWopAwA3AwAgAikDACF+IBEgKEG4ARCtBRogAkHAARCUBSAAQbgLaiAkKQMANwMAIABBwAtqIBIpAwA3AwAgAEHIC2ogISkDADcDACAaICIpAwA3AwAgAyAXKQMANwMAIAggGCkDADcDACAJIAApA/AGNwMAIAwgICkDADcDACANIB0pAwA3AwAgFCAfKQMANwMAIAAgACkDsAY3A7ALIAAgACkD0AY3A5AXIA8gIykDADcDACAVICcpAwA3AwAgECAqKQMANwMAIA4gACkDsAc3AwAgHCAmKQMANwMAID0gHikDADcDACAbICspAwA3AwAgAEGgC2ogLCkDADcDACAAQagLaiAlKQMANwMAIAAgACkDkAc3A9AUIAAgACkDmAY3A5gLIABBiAxqIBQpAwA3AwAgAEGADGogDSkDADcDACAAQfgLaiAMKQMANwMAIABB8AtqIAkpAwA3AwAgAEHoC2ogCCkDADcDACAAQeALaiADKQMANwMAIABB2AtqIBopAwA3AwAgAEHIDGogGykDADcDACAAQcAMaiA9KQMANwMAIABBuAxqIBwpAwA3AwAgAEGwDGogDikDADcDACAAQagMaiAPKQMANwMAIABBoAxqIBUpAwA3AwAgAEGYDGogECkDADcDACAAIH43A5ALIAAgACkDkBc3A9ALIAAgACkD0BQ3A5AMIABB2AFqIgIgAEHQCWogAEGQC2oQjwIgESACELsBQbnRwgAtAAAaQcABQQgQiwUiAkUNBiACIAApA5gGNwMAIAIgACkDuAY3AyAgAiAAKQPYBjcDQCACQRhqIABBsAZqKQMANwMAIAJBEGogJSkDADcDACACQQhqICwpAwA3AwAgAkEoaiASKQMANwMAIAJBMGogISkDADcDACACQThqIABB0AZqKQMANwMAIAJByABqIBcpAwA3AwAgAkHQAGogGCkDADcDACACQdgAaiAAQfAGaikDADcDACACQfgAaiAAQZAHaikDADcDACACQfAAaiAfKQMANwMAIAJB6ABqIB0pAwA3AwAgAiAAKQP4BjcDYCACQZgBaiAAQbAHaikDADcDACACQZABaiAjKQMANwMAIAJBiAFqICcpAwA3AwAgAiAAKQOYBzcDgAEgAkG4AWogAEHQB2opAwA3AwAgAkGwAWogKykDADcDACACQagBaiAeKQMANwMAIAIgACkDuAc3A6ABIARBBjYCCCAEIAI2AgQgBEEGNgIADAQLIAMgAikDADcDACADIAIpAyA3AyAgAyACKQNANwNAIANBGGogAkEYaikDADcDACADQRBqIAJBEGopAwA3AwAgA0EIaiIIIAJBCGopAwA3AwAgA0EoaiACQShqKQMANwMAIANBMGogAkEwaikDADcDACADQThqIAJBOGopAwA3AwAgA0HIAGogAkHIAGopAwA3AwAgA0HQAGog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AwAgAEGYFWoibyADKQMANwMAIAAgACkD0BY3A5AVIABBiBZqInAgEikDADcDACAAQYAWaiJxICEpAwA3AwAgAEH4FWoiciAaKQMANwMAIABB8BVqInMgFykDADcDACAAQegVaiJ0ID0pAwA3AwAgAEHgFWoidSAbKQMANwMAIABB2BVqInYgESkDADcDACAAIAApA5AXNwPQFSAAIH43A9AMIABByA1qIFIpAwA3AwAgAEHADWogUSkDADcDACAAQbgNaiBQKQMANwMAIABBsA1qIEcpAwA3AwAgAEGoDWogSikDADcDACAAQaANaiBPKQMANwMAIABBmA1qIAIpAwA3AwAgACAAKQPQDzcDkA0gAEGIDmogWykDADcDACAAQYAOaiBaKQMANwMAIABB+A1qIFgpAwA3AwAgAEHwDWogVykDADcDACAAQegNaiBTKQMANwMAIABB4A1qIFQpAwA3AwAgAEHYDWogVSkDADcDACAAIAApA5AQNwPQDSAAQZAOaiAAQdAUaiJPQcABEK0FGkG50cIALQAAGkGAA0EIEIsFIgJFDQYgAiABKQMANwMAIAIgASkDIDcDICACIAEpA0A3A0AgAkEYaiABQRhqKQMANwMAIAJBEGogAUEQaikDADcDACACQQhqIkogAUEIaikDADcDACACQShqIAFBKGopAwA3AwAgAkEwaiABQTBqKQMANwMAIAJBOGogAUE4aikDADcDACACQcgAaiABQcgAaikDADcDACACQdAAaiABQdAAaikDADcDACACQdgAaiABQdgAaikDADcDACACQfgAaiABQfgAaikDADcDACACQfAAaiABQfAAaikDADcDACACQegAaiABQegAaikDADcDACACIAEpA2A3A2AgAiABKQOAATcDgAEgAkGIAWogAUGIAWopAwA3AwAgAkGQAWogAUGQAWopAwA3AwAgAkGYAWogAUGYAWopAwA3AwAgAiABKQOgATcDoAEgAkGoAWogAUGoAWopAwA3AwAgAkGwAWogAUGwAWopAwA3AwAgAkG4AWogAUG4AWopAwA3AwAgAkHYAWogAUHYAWopAwA3AwAgAkHQAWogAUHQAWopAwA3AwAgAkHIAWogAUHIAWopAwA3AwAgAiABKQPAATcDwAEgAkH4AWogAUH4AWopAwA3AwAgAkHwAWogAUHwAWopAwA3AwAgAkHoAWogAUHoAWopAwA3AwAgAiABKQPgATcD4AEgAkGYAmogAUGYAmopAwA3AwAgAkGQAmogAUGQAmopAwA3AwAgAkGIAmogAUGIAmopAwA3AwAgAiABKQOAAjcDgAIgAkG4AmogAUG4AmopAwA3AwAgAkGwAmogAUGwAmopAwA3AwAgAkGoAmogAUGoAmopAwA3AwAgAiABKQOgAjcDoAIgAkHYAmogAUHYAmopAwA3AwAgAkHQAmogAUHQAmopAwA3AwAgAkHIAmogAUHIAmopAwA3AwAgAiABKQPAAjcDwAIgAkH4AmogAUH4AmopAwA3AwAgAkHwAmogAUHwAmopAwA3AwAgAkHoAmogAUHoAmopAwA3AwAgAiABKQPgAjcD4AIgAikDACF+ICMgSkH4AhCtBRogAkGAAxCUBSAAQfgQaiBMKQMANwMAIABBgBFqICcpAwA3AwAgAEGIEWogHikDADcDACAAQdgTaiICIEUpAwA3AwAgAEHgE2oiTCArKQMANwMAIABB6BNqIkUgLCkDADcDACAAQfATaiJKIAApA/AGNwMAIABB+BNqIkcgSSkDADcDACAAQYAUaiJQICUpAwA3AwAgAEGIFGoiSSAkKQMANwMAIAAgACkDsAY3A/AQIAAgACkD0AY3A9ATIABBqBRqIlEgIikDADcDACAAQaAUaiJSICApAwA3AwAgAEGYFGoiUyBWKQMANwMAIABBsBRqIlQgACkDsAc3AwAgAEG4FGoiVSBZKQMANwMAIABBwBRqIlYgKikDADcDACAAQcgUaiJXICYpAwA3AwAgAEHgEGogKCkDADcDACAAQegQaiApKQMANwMAIAAgACkDkAc3A5AUIAAgACkDmAY3A9gQIAMgXCkDADcDACAIIC4pAwA3AwAgCSAvKQMANwMAIAwgLSkDADcDACANIDApAwA3AwAgFCBdKQMANwMAIA8gACkD8Ac3AwAgACAAKQOQCDcD0BYgFSAAKQOwCDcDACAQIF4pAwA3AwAgDiAxKQMANwMAIBwgMykDADcDACA9ID4pAwA3AwAgGyA/KQMANwMAIBEgXykDADcDACAAIAApA9AINwOQFyASIEApAwA3AwAgISBBKQMANwMAIBogYCkDADcDACAXIAApA/AINwMAIBggRikDADcDACAdIEspAwA3AwAgHyBhKQMANwMAIAAgACkD0Ac3A5AWIGIgDCkDADcDACBjIA0pAwA3AwAgZCAUKQMANwMAIGUgDykDADcDACBmIBgpAwA3AwAgZyAdKQMANwMAIGggHykDADcDACAAIAApA5AWNwPQFCBpIBwpAwA3AwAgaiAOKQMANwMAIGsgECkDADcDACBsIBUpAwA3AwAgbSAJKQMANwMAIG4gCCkDADcDACBvIAMpAwA3AwAgACAAKQPQFjcDkBUgcCASKQMANwMAIHEgISkDADcDACByIBopAwA3AwAgcyAXKQMANwMAIHQgPSkDADcDACB1IBspAwA3AwAgdiARKQMANwMAIAAgACkDkBc3A9AVIAAgfjcD0BAgAEHIEWogSSkDADcDACAAQcARaiBQKQMANwMAIABBuBFqIEcpAwA3AwAgAEGwEWogSikDADcDACAAQagRaiBFKQMANwMAIABBoBFqIEwpAwA3AwAgAEGYEWogAikDADcDACAAIAApA9ATNwOQESAAQYgSaiBXKQMANwMAIABBgBJqIFYpAwA3AwAgAEH4EWogVSkDADcDACAAQfARaiBUKQMANwMAIABB6BFqIFEpAwA3AwAgAEHgEWogUikDADcDACAAQdgRaiBTKQMANwMAIAAgACkDkBQ3A9ARIABBkBJqIE9BwAEQrQUaIABBmANqIgIgAEHQDGogAEHQEGoQoAIgIyACEPkBQbnRwgAtAAAaQYADQQgQiwUiAkUNBiACIAApA5gGNwMAIAIgACkDuAY3AyAgAiAAKQPYBjcDQCACQRhqIABBsAZqKQMANwMAIAJBEGogKSkDADcDACACQQhqICgpAwA3AwAgAkEoaiAnKQMANwMAIAJBMGogHikDADcDACACQThqIABB0AZqKQMANwMAIAJByABqICspAwA3AwAgAkHQAGogLCkDADcDACACQdgAaiAAQfAGaikDADcDACACQfgAaiAAQZAHaikDADcDACACQfAAaiAkKQMANwMAIAJB6ABqICUpAwA3AwAgAiAAKQP4BjcDYCACQZgBaiAAQbAHaikDADcDACACQZABaiAiKQMANwMAIAJBiAFqICApAwA3AwAgAiAAKQOYBzcDgAEgAkG4AWogAEHQB2opAwA3AwAgAkGwAWogJikDADcDACACQagBaiAqKQMANwMAIAIgACkDuAc3A6ABIAJB2AFqIABB8AdqKQMANwMAIAJB0AFqIEYpAwA3AwAgAkHIAWogSykDADcDACACIAApA9gHNwPAASACQfgBaiAAQZAIaikDADcDACACQfABaiAtKQMANwMAIAJB6AFqIDApAwA3AwAgAiAAKQP4BzcD4AEgAkGYAmogAEGwCGopAwA3AwAgAkGQAmogLykDADcDACACQYgCaiAuKQMANwMAIAIgACkDmAg3A4ACIAJBuAJqIABB0AhqKQMANwMAIAJBsAJqIDMpAwA3AwAgAkGoAmogMSkDADcDACACIAApA7gINwOgAiACQdgCaiAAQfAIaikDADcDACACQdACaiA+KQMANwMAIAJByAJqID8pAwA3AwAgAiAAKQPYCDcDwAIgAkH4AmogAEGQCWopAwA3AwAgAkHwAmogQCkDADcDACACQegCaiBBKQMANwMAIAIgACkD+Ag3A+ACIARBDDYCCCAEIAI2AgQgBEEMNgIADAMLIABBADYCmAYgAEEQaiAAQQxqIABBmAZqQZCtwQAQ0QQACyAAQQA2ApgGIABBFGogAEEMaiAAQZgGakGgrcEAENEEAAsgACAINgKgBiAAIAI2ApwGIAAgAzYCmAZBhKbBAEErIABBmAZqQdCtwQBBoK7BABD9AwALIABB0BdqJAAMAwtBCEHAABCDBQALQQhBwAEQgwUAC0EIQYADEIMFAAsgCigCoAoiAARAIE4gAEEFdBCUBQsgCkGoCmogCkGoBWooAgA2AgAgCiAKKQKgBTcDoAogCigC2AgiAEUNACABIABBBXQQlAULIAooAqQKIQMCQCAKKAKoCiIBRQRAQQQhAAwBC0G50cIALQAAGiABQQxsIgJBBBCLBSIARQ0DIAMhAiAAIQkgASEEA0AgCkGgBWogAhCaAyAJQQhqIApBqAVqKAIANgIAIAkgCikCoAU3AgAgCUEMaiEJIAJBIGohAiAEQQFrIgQNAAsLIApBoAVqEKQCIAotAMAHIQwgCigCtAciAgRAIAooArgHIAJBAnQQlAULAkAgCigChAciAkUNACACIAJBDGxBE2pBeHEiBGpBCWoiAkUNACAKKAKAByAEayACEJQFCyABQQxHBEAgACECIAEhBAwGCyAAKAIMIQEgACgCCCECIAAoAgQhBCAAKAIAIQkgCkGgBWoiCCAAQRBqQYABEK0FGiAAQZABEJQFIAlBgICAgHhGDQUgCiABNgLkCCAKIAI2AuAIIAogBDYC3AggCiAJNgLYCCAKQegIaiAIQYABEK0FGiAIIAwgCkHYCGoiDBCbASAKQcgHaiINIAhBkAEQrQUaIAwgCkGwBmpBkAEQrQUaQbnRwgAtAAAaQYADQQgQiwUiAEUNBiAIIA0QrAMgAEEYaiAKQbgFaiIBKQMANwMAIABBEGogCkGwBWoiAikDADcDACAAQQhqIApBqAVqIgkpAwA3AwAgACAKKQOgBTcDACAIIApB1AdqEKwDIABBOGogASkDADcDACAAQTBqIAIpAwA3AwAgAEEoaiAJKQMANwMAIAAgCikDoAU3AyAgCCAKQeAHahCsAyAAQdgAaiABKQMANwMAIABB0ABqIAIpAwA3AwAgAEHIAGogCSkDADcDACAAIAopA6AFNwNAIAggCkHsB2oQrAMgAEH4AGogASkDADcDACAAQfAAaiACKQMANwMAIABB6ABqIAkpAwA3AwAgACAKKQOgBTcDYCAIIApB+AdqEKwDIABBmAFqIAEpAwA3AwAgAEGQAWogAikDADcDACAAQYgBaiAJKQMANwMAIAAgCikDoAU3A4ABIAggCkGECGoQrAMgAEG4AWogASkDADcDACAAQbABaiACKQMANwMAIABBqAFqIAkpAwA3AwAgACAKKQOgBTcDoAEgCCAKQZAIahCsAyAAQdgBaiABKQMANwMAIABB0AFqIAIpAwA3AwAgAEHIAWogCSkDADcDACAAIAopA6AFNwPAASAIIApBnAhqEKwDIABB+AFqIAEpAwA3AwAgAEHwAWogAikDADcDACAAQegBaiAJKQMANwMAIAAgCikDoAU3A+ABIAggCkGoCGoQrAMgAEGYAmogASkDADcDACAAQZACaiACKQMANwMAIABBiAJqIAkpAwA3AwAgACAKKQOgBTcDgAIgCCAKQbQIahCsAyAAQbgCaiABKQMANwMAIABBsAJqIAIpAwA3AwAgAEGoAmogCSkDADcDACAAIAopA6AFNwOgAiAIIApBwAhqEKwDIABB2AJqIAEpAwA3AwAgAEHQAmogAikDADcDACAAQcgCaiAJKQMANwMAIAAgCikDoAU3A8ACIAggCkHMCGoQrAMgAEH4AmogASkDADcDACAAQfACaiACKQMANwMAIABB6AJqIAkpAwA3AwAgACAKKQOgBTcD4AJBudHCAC0AABpBgANBCBCLBSIERQ0GIAggDBCsAyAEQRhqIAEpAwA3AwAgBEEQaiACKQMANwMAIARBCGogCSkDADcDACAEIAopA6AFNwMAIAggCkHkCGoQrAMgBEE4aiABKQMANwMAIARBMGogAikDADcDACAEQShqIAkpAwA3AwAgBCAKKQOgBTcDICAIIApB8AhqEKwDIARB2ABqIAEpAwA3AwAgBEHQAGogAikDADcDACAEQcgAaiAJKQMANwMAIAQgCikDoAU3A0AgCCAKQfwIahCsAyAEQfgAaiABKQMANwMAIARB8ABqIAIpAwA3AwAgBEHoAGogCSkDADcDACAEIAopA6AFNwNgIAggCkGICWoQrAMgBEGYAWogASkDADcDACAEQZABaiACKQMANwMAIARBiAFqIAkpAwA3AwAgBCAKKQOgBTcDgAEgCCAKQZQJahCsAyAEQbgBaiABKQMANwMAIARBsAFqIAIpAwA3AwAgBEGoAWogCSkDADcDACAEIAopA6AFNwOgASAIIApBoAlqEKwDIARB2AFqIAEpAwA3AwAgBEHQAWogAikDADcDACAEQcgBaiAJKQMANwMAIAQgCikDoAU3A8ABIAggCkGsCWoQrAMgBEH4AWogASkDADcDACAEQfABaiACKQMANwMAIARB6AFqIAkpAwA3AwAgBCAKKQOgBTcD4AEgCCAKQbgJahCsAyAEQZgCaiABKQMANwMAIARBkAJqIAIpAwA3AwAgBEGIAmogCSkDADcDACAEIAopA6AFNwOAAiAIIApBxAlqEKwDIARBuAJqIAEpAwA3AwAgBEGwAmogAikDADcDACAEQagCaiAJKQMANwMAIAQgCikDoAU3A6ACIAggCkHQCWoQrAMgBEHYAmogASkDADcDACAEQdACaiACKQMANwMAIARByAJqIAkpAwA3AwAgBCAKKQOgBTcDwAIgCCAKQdwJahCsAyAEQfgCaiABKQMANwMAIARB8AJqIAIpAwA3AwAgBEHoAmogCSkDADcDACAEIAopA6AFNwPgAiAMEKUDIA0QpQMgCBCkAiAKLQDAByECIAooArQHIgEEQCAKKAK4ByABQQJ0EJQFCwJAIAooAoQHIgFFDQAgASABQQxsQRNqQXhxIghqQQlqIgFFDQAgCigCgAcgCGsgARCU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ACACQQhqICFBCGopAwA3AwAgAkEQaiAhQRBqKQMANwMAIAJBGGogIUEYaikDADcDAEEBIQkgCkEBNgKoBQsgJy0AAQRAIAooAqAFIAlGBEAgCkGgBWoQ2QMgCigCpAUhAgsgAiAJQQV0aiIAICFBIGoiASkDADcDACAAQRhqIAFBGGopAwA3AwAgAEEQaiABQRBqKQMANwMAIABBCGogAUEIaikDADcDACAKIAlBAWoiCTYCqAULICctAAIEQCAKKAKgBSAJRgRAIApBoAVqENkDIAooAqQFIQILIAIgCUEFdGoiACAhQUBrIgEpAwA3AwAgAEEYaiABQRhqKQMANwMAIABBEGogAUEQaikDADcDACAAQQhqIAFBCGopAwA3AwAgCiAJQQFqIgk2AqgFCyAnLQADBEAgCigCoAUgCUYEQCAKQaAFahDZAyAKKAKkBSECCyACIAlBBXRqIgAgIUHgAGoiASkDADcDACAAQRhqIAFBGGopAwA3AwAgAEEQaiABQRBqKQMANwMAIABBCGogAUEIaikDADcDACAKIAlBAWoiCTYCqAULICctAAQEQCAKKAKgBSAJRgRAIApBoAVqENkDIAooAqQFIQILIAIgCUEFdGoiACAhQYABaiIBKQMANwMAIABBGGogAUEYaikDADcDACAAQRBqIAFBEGopAwA3AwAgAEEIaiABQQhqKQMANwMAIAogCUEBaiIJNgKoBQsgJy0ABQRAIAooAqAFIAlGBEAgCkGgBWoQ2QMgCigCpAUhAgsgAiAJQQV0aiIAICFBoAFqIgEpAwA3AwAgAEEYaiABQRhqKQMANwMAIABBEGogAUEQaikDADcDACAAQQhqIAFBCGopAwA3AwAgCiAJQQFqIgk2AqgFCyAnLQAGBEAgCigCoAUgCUYEQCAKQaAFahDZAyAKKAKkBSECCyACIAlBBXRqIgAgIUHAAWoiASkDADcDACAAQRhqIAFBGGopAwA3AwAgAEEQaiABQRBqKQMANwMAIABBCGogAUEIaikDADcDACAKIAlBAWoiCTYCqAULICctAAcEQCAKKAKgBSAJRgRAIApBoAVqENkDIAooAqQFIQILIAIgCUEFdGoiACAhQeABaiIBKQMANwMAIABBGGogAUEYaikDADcDACAAQRBqIAFBEGopAwA3AwAgAEEIaiABQQhqKQMANwMA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ASAJaiICIAkgDmoiDCkDADcDACACQRhqIAxBGGopAwA3AwAgAkEQaiAMQRBqKQMANwMAIAJBCGogDEEIaikDADcDACAJQSBqIQkgAEEBayIADQELC0EAIQlBudHCAC0AABogBEEIEIsFIhxFDQ4gCEEFdCEMIAghAANAIAkgDEYNASAJIBxqIgIgCSAOaiIEKQMANwMAIAJBGGogBEEYaikDADcDACACQRBqIARBEGopAwA3AwAgAkEIaiAEQQhqKQMANwMAIAlBIGohCSAAQQFrIgANAAsLAkAgCigCkAMiAkUNACACQQV0IQAgAkH///8fSwRAQQAhBAwxCyAKKAKMAyENQQAhCUG50cIALQAAGkEIIQQgAEEIEIsFIhJFDTAgAkEFdCEUIAIhAANAIAkgFEYNASAJIBJqIgQgCSANaiIMKQMANwMAIARBGGogDEEYaikDADcDACAEQRBqIAxBEGopAwA3AwAgBEEIaiAMQQhqKQMANwMAIAlBIGohCSAAQQFrIgANAAsLIAMgAjYCGCADIAg2AgwgAyAINgIIIAMgATYCBCADIAg2AgAgA0EgaiACNgIAIANBHGogEjYCACADQRRqIAg2AgAgA0EQaiAcNgIAIApBAzYCjAogCiADNgKICiAKQQM2AoQKQQAhCSAKQQA2ApgKIApCgICAgIABNwKQCiAKQawGaiEDIApBoAZqIQwgFiEEIAUhACAGIQEDQCAJIBlGDQMgCSATRg0EIApBoAVqIgIgBCABIAAQjAIgCkHYCGogAkGAARCtBRogCkGoCmoiDSAMQQhqKAIANgIAIApBuApqIhQgA0EIaigCADYCACAKIAwpAgA3A6AKIAogAykCADcDsAogCigCjAoiAiAKKAKECkYEQCAKQYQKahDcAwsgCigCiAogAkEMbGoiFSAKKQOgCjcCACAVQQhqIA0oAgA2AgAgCiACQQFqIg02AowKIAooAoQKIA1GBEAgCkGECmoQ3AMLIAooAogKIA1BDGxqIg0gCikDsAo3AgAgDUEIaiAUKAIANgIAIAogAkECajYCjAogCigCmAoiAiAKKAKQCkYEQCAKQZAKahDXAwsgCigClAogAkEHdGogCkHYCGpBgAEQrQUaIAogAkEBajYCmAogBEGAAWohBCAAQSBqIQAgAUEgaiEBIDkgCUEBaiIJRw0ACyAKQdAEaiAKQYwKaigCADYCACAKIAopAoQKNwPIBCAKQYCAgIB4NgLIByAKQaAFaiAKQcgEaiAKQcgHaiAKQbgCaiAKQcQCahDgASAKQbQFaiAKQZgKaigCACIANgIAIApBuANqIApBqAVqKAIANgIAIApByANqIAA2AgAgCiAKKQKQCiKEATcCrAUgCiAKKQKgBTcDsAMgCiCEATcDwAMgCkHAA2ohCSAKQbADaiECDAQLIApBoAVqIApBmANqIBYgOSAGIBkgBSATIApBuAJqIApBxAJqEI0CIApB2ANqIApBqAVqKAIANgIAIApB6ANqIApBtAVqKAIANgIAIAogCikCoAU3A9ADIAogCikCrAU3A+ADIApB4ANqIQkgCkHQA2ohAgwDC0HA9cAAQQ9B+PvAABC5BAALIBkgGUH098AAEJgEAAsgEyATQYT4wAAQmAQACyAIBEAgDiAIQQV0EJQFCyAKQaADaiIjIAJBCGooAgA2AgAgCiACKQIANwOYAyAJKAIIIRsgCSgCBCEDIAkoAgAhCQJAIBFBA2siFUEASA0AIApB0AdqISwgCkHUBGohHSAKQaAGaiEYIApBrAZqISsgCkHUB2ohIgNAIAkhDSAKIBU2AvADAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCARIBVLBEAgFSAaaiIALQAAIgEOAgEDAgsgFSARQcT6wAAQmAQACyAVRQRAIApBoAVqIApBmANqIAMgGyAGIBkgBSATIApBuAJqIApBxAJqEI0CIApBsARqIgEgCkGoBWooAgA2AgAgCiAKKQKgBTcDqAQgCigCrAUhCSAKKAKwBSEAIAooArQFIRsgCigCmAMiAgRAIAooApwDIAJBBXQQlAULIApBoANqIAEoAgA2AgAgCiAKKQOoBDcDmAMgDUUEQCAAIQMMHAsgAyANQQd0EJQFIAAhAwwbCyAVQQFrIhQgEU8NAyAKIBQgGmotAAAiDjoA9wMgDkUEQEG50cIALQAAGkEwQQQQiwUiAkUNJSAKKAKcAyEMAn8gCigCoAMiAEUEQEEIIQ5BCCESQQghCEEIIRVBAAwBCyAAQQV0IQQgAEH///8fSwRAQQAhCQwoC0G50cIALQAAGkEIIQkgBEEIEIsFIhJFDSdBACEJIAAhAQNAIAQgCUcEQCAJIBJqIgggCSAMaiIVKQMANwMAIAhBGGogFUEYaikDADcDACAIQRBqIBVBEGopAwA3AwAgCEEIaiAVQQhqKQMANwMAIAlBIGohCSABQQFrIgENAQsLQbnRwgAtAAAaIARBCBCLBSIORQ0lQQAhCSAAIQEDQCAEIAlHBEAgCSAOaiIIIAkgDGoiFSkDADcDACAIQRhqIBVBGGopAwA3AwAgCEEQaiAVQRBqKQMANwMAIAhBCGogFUEIaikDADcDACAJQSBqIQkgAUEBayIBDQELCyAARQRAQQghCEEIIRUgAAwBC0G50cIALQAAGiAEQQgQiwUiCEUNJUEAIQkgACEBA0AgBCAJRwRAIAggCWoiFSAJIAxqIhApAwA3AwAgFUEYaiAQQRhqKQMANwMAIBVBEGogEEEQaikDADcDACAVQQhqIBBBCGopAwA3AwAgCUEgaiEJIAFBAWsiAQ0BCwtBudHCAC0AABogBEEIEIsFIhVFDSVBACEJIAAhAQNAIAQgCUcEQCAJIBVqIhAgCSAMaiIcKQMANwMAIBBBGGogHEEYaikDADcDACAQQRBqIBxBEGopAwA3AwAgEEEIaiAcQQhqKQMANwMAIAlBIGohCSABQQFrIgENAQsLIAALIQEgAiAANgIkIAIgADYCGCACIAE2AgwgAiAANgIIIAIgEjYCBCACIAA2AgAgAkEsaiAANgIAIAJBKGogFTYCACACQSBqIAA2AgAgAkEcaiAINgIAIAJBFGogATYCACACQRBqIA42AgAgCkEENgKACiAKIAI2AvwJIApBBDYC+AkgCkEANgKMCiAKQoCAgICAATcChAogGwRAQQAhDgJAA0ACQAJAIA4gGUcEQCAOIBNGDQQgCkGgBWoiACADIA5BB3RqIAYgDkEFdCIBaiABIAVqEO8CIApByAdqIABBgAEQrQUaIAooAqQGIRUgCigCoAYhECAKKAKoBiICDQFBCCEcDAILIBkgGUHU98AAEJgEAAsgAkEFdCEBIAJB////H0sEQEEAIQkMLAtBudHCAC0AABpBCCEJIAFBCBCLBSIcRQ0rQQAhCSACIQADQCABIAlGDQEgCSAcaiIEIAkgFWoiCCkDADcDACAEQRhqIAhBGGopAwA3AwAgBEEQaiAIQRBqKQMANwMAIARBCGogCEEIaikDADcDACAJQSBqIQkgAEEBayIADQALCyAKKAKACiIAIAooAvgJRgRAIApB+AlqENwDCyAKKAL8CSAAQQxsaiIBIAI2AgggASAcNgIEIAEgAjYCACAKIABBAWoiATYCgAogCigC+AkgAUYEQCAKQfgJahDcAwsgCigC/AkgAUEMbGoiASACNgIIIAEgFTYCBCABIBA2AgAgCiAAQQJqNgKACiAKKAKMCiIAIAooAoQKRgRAIApBhApqENcDCyAKKAKICiAAQQd0aiAKQcgHakGAARCtBRogCiAAQQFqNgKMCiAOQQFqIg4gG0cNAAtBACECIApBADYCmAogCkKAgICAgAE3ApAKIAUhBCAGIQBBACEJDBYLIBMgE0Hk98AAEJgEAAsgCkEANgKYCiAKQoCAgICAATcCkAoMFQsCQCAOQf8BRyAOQQFHcUUEQCAKQaAFahCkAiAKLQDAByAKKAK0ByIABEAgCigCuAcgAEECdBCUBQsCQCAKKAKEByIARQ0AIAAgAEEMbEETakF4cSICakEJaiIARQ0AIAooAoAHIAJrIAAQlAULRQ0BCyAKQaAFaiAKQZgDaiADIBsgBiAZIAUgEyAKQbgCaiAKQcQCahCNAiAKQaAEaiIBIApBqAVqKAIANgIAIAogCikCoAU3A5gEIAooAqwFIQkgCigCsAUgCigCtAUhGyAKKAKYAyICBEAgCigCnAMgAkEFdBCUBQsgIyABKAIANgIAIAogCikDmAQ3A5gDIA0hECADIQwhAyAVIRQgDQ0WDBkLIBtBB3QhAAJAIBtFBEBBCCECDAELQbnRwgAtAAAaIABBCBCLBSICRQ1FCyAKQQA2AtAHIAogAjYCzAcgCiAbNgLIByAKIDk2ArQFIAogFjYCsAUgCkEANgKoBSAKIAAgA2o2AqQFIAogAzYCoAUgCiAKQaQDajYCuAUgCiAKQfcDajYCrAUgCiACNgLgCCAKQQA2AtwIIAogLDYC2AgjAEGAA2siACQAIApB2AhqIgIoAgQhDCACKAIAIR4CQAJAAkAgCkGgBWoiASgCACIIIAEoAgQiCUcEQCABKAIUIR8gASgCDCElIAEoAggiBEEHdCIkIAEoAhBqISAgAigCCCAMQQd0aiEqIAkgCGtBB3YhFyAAQUBrIQIgAEHgAmohFSAAQaACaiEQIABB4AFqIRwgAEGgAWohEkEAIQggASgCGCImQQRqISgDQCACAn8gJS0AAEEBRgRAIAQgH08NBSAAQZgCaiAIICBqIgFBGGopAwA3AwAgAEGQAmogAUEQaikDADcDACAAQYgCaiABQQhqKQMANwMAIBAgAUEgaikDADcDACAQQQhqIAFBKGopAwA3AwAgEEEQaiABQTBqKQMANwMAIBBBGGogAUE4aikDADcDACAAQcgCaiABQcgAaikDADcDACAAQdACaiABQdAAaikDADcDACAAQdgCaiABQdgAaikDADcDACAAIAEpAwA3A4ACIAAgAUFAaykDADcDwAIgFUEYaiABQfgAaikDADcDACAVQRBqIAFB8ABqKQMANwMAIBVBCGogAUHoAGopAwA3AwAgFSABQeAAaikDADcDACAAQYACaiEJIABBwAJqDAELICZBCGooAgAiASAETQ0DIABBiAFqICgoAgAgJGogCGoiAUEIaikDADcDACAAQZABaiABQRBqKQMANwMAIABBmAFqIAFBGGopAwA3AwAgEiABQSBqKQMANwMAIBJBCGogAUEoaikDADcDACASQRBqIAFBMGopAwA3AwAgEkEYaiABQThqKQMANwMAIABB2AFqIAFB2ABqKQMANwMAIABB0AFqIAFB0ABqKQMANwMAIABByAFqIAFByABqKQMANwMAIAAgASkDADcDgAEgACABQUBrKQMANwPAASAcQRhqIAFB+ABqKQMANwMAIBxBEGogAUHwAGopAwA3AwAgHEEIaiABQegAaikDADcDACAcIAFB4ABqKQMANwMAIABBgAFqIQkgAEHAAWoLIgEpAwA3AwAgAEE4aiAJQThqKQMANwMAIABBMGogCUEwaikDADcDACAAQShqIAlBKGopAwA3AwAgAEEgaiAJQSBqKQMANwMAIABBGGogCUEYaikDADcDACAAQRBqIAlBEGopAwA3AwAgAEEIaiAJQQhqKQMANwMAIAJBCGogAUEIaikDADcDACACQRBqIAFBEGopAwA3AwAgAkEYaiABQRhqKQMANwMAIAJBIGogAUEgaikDADcDACACQShqIAFBKGopAwA3AwAgAkEwaiABQTBqKQMANwMAIAJBOGogAUE4aikDADcDACAAIAkpAwA3AwAgCCAqaiAAQYABEK0FGiAIQYABaiEIIARBAWohBCAMQQFqIQwgF0EBayIXDQALCyAeIAw2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KmoiAUEYaikDADcDACAAQZACaiABQRBqKQMANwMAIABBiAJqIAFBCGopAwA3AwAgECABQSBqKQMANwMAIBBBCGogAUEoaikDADcDACAQQRBqIAFBMGopAwA3AwAgEEEYaiABQThqKQMANwMAIABByAJqIAFByABqKQMANwMAIABB0AJqIAFB0ABqKQMANwMAIABB2AJqIAFB2ABqKQMANwMAIAAgASkDADcDgAIgACABQUBrKQMANwPAAiAUQRhqIAFB+ABqKQMANwMAIBRBEGogAUHwAGopAwA3AwAgFEEIaiABQegAaikDADcDACAUIAFB4ABqKQMANwMAIABBgAJqIQkgAEHAAmoMAQsgKEEIaigCACIBIARNDQQgAEGIAWogKSgCACAgaiAIaiIBQQhqKQMANwMAIABBkAFqIAFBEGopAwA3AwAgAEGYAWogAUEYaikDADcDACAcIAFBIGopAwA3AwAgHEEIaiABQShqKQMANwMAIBxBEGogAUEwaikDADcDACAcQRhqIAFBOGopAwA3AwAgAEHYAWogAUHYAGopAwA3AwAgAEHQAWogAUHQAGopAwA3AwAgAEHIAWogAUHIAGopAwA3AwAgACABKQMANwOAASAAIAFBQGspAwA3A8ABIA5BGGogAUH4AGopAwA3AwAgDkEQaiABQfAAaikDADcDACAOQQhqIAFB6ABqKQMANwMAIA4gAUHgAGopAwA3AwAgAEGAAWohCSAAQcABagsiASkDADcDACAAQThqIAlBOGopAwA3AwAgAEEwaiAJQTBqKQMANwMAIABBKGogCUEoaikDADcDACAAQSBqIAlBIGopAwA3AwAgAEEYaiAJQRhqKQMANwMAIABBEGogCUEQaikDADcDACAAQQhqIAlBCGopAwA3AwAgAkEIaiABQQhqKQMANwMAIAJBEGogAUEQaikDADcDACACQRhqIAFBGGopAwA3AwAgAkEgaiABQSBqKQMANwMAIAJBKGogAUEoaikDADcDACACQTBqIAFBMGopAwA3AwAgAkE4aiABQThqKQMANwMAIAAgCSkDADcDACAIICZqIABBgAEQrQUaIAhBgAFqIQggBEEBaiEEIAxBAWohDCAXQQFrIhcNAAsLIB4gDDYCACAAQYADaiQADAMLIAEgH0HwjcAAEJgEAAsgBCABQZCOwAAQmAQA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x7HBAEE/EI8BIAEtAAANBSAaIAgpAwAifjcDACAXIA0pAwAifzcDACAYIAApAwAigAE3AwAgFSB/NwIAIBAggAE3AgAgDiB+NwIAIAEgASkDCDcCrBcgJUECNgIAICVBCDYCKCAlIAEpAtgWNwIEICVBDGogHikCADcCACAlQRRqICspAgA3AgAgJUEcaiAsKQIANwIAICVBJGogAUH4FmooAgA2AgAgJUEsaiABKQKoFzcCACAlQTRqIAIpAgA3AgAgJUE8aiAUKQIANwIAICVBxABqIAwpAgA3AgAgJUHMAGogAUHIF2ooAgA2AgBBudHCAC0AABpB0ABBCBCLBSIkRQ1MIAFBhrLBAEHAABCPASABLQAADQYgAiAIKQMAIn43AwAgDCANKQMAIn83AwAgFCAAKQMAIoABNwMAIB0gfzcCACAfIIABNwIAICMgfjcCACABIAEpAwg3AtwWIAFBxrLBAEHAABCPASABLQAADQcgGiAIKQMAIn43AwAgFyANKQMAIn83AwAgGCAAKQMAIoABNwMAIBUgfzcCACAQIIABNwIAIA4gfjcCACABIAEpAwg3AqwXICRBAzYCACAkQQk2AiggJCABKQLYFjcCBCAkQQxqIB4pAgA3AgAgJEEUaiAgKQIANwIAICRBHGogIikCADcCACAkQSRqIAFB+BZqKAIANgIAICRBLGogASkCqBc3AgAgJEE0aiACKQIANwIAICRBPGogFCkCADcCACAkQcQAaiAMKQIANwIAICRBzABqIAFByBdqKAIANgIAQbnRwgAtAAAaQdAAQQgQiwUiIkUNTCABQYazwQBBwAAQjwEgAS0AAA0IIAIgCCkDACJ+NwMAIAwgDSkDACJ/NwMAIBQgACkDACKAATcDACAdIH83AgAgHyCAATcCACAjIH43AgAgASABKQMINwLcFiABQcazwQBBPxCPASABLQAADQkgGiAIKQMAIn43AwAgFyANKQMAIn83AwAgGCAAKQMAIoABNwMAIBUgfzcCACAQIIABNwIAIA4gfjcCACABIAEpAwg3AqwXICJBBDYCACAiQQo2AiggIiABKQLYFjcCBCAiQQxqIAFB4BZqKQIANwIAICJBFGogAUHoFmopAgA3AgAgIkEcaiABQfAWaikCADcCACAiQSRqIAFB+BZqKAIANgIAICJBLGogASkCqBc3AgAgIkE0aiACKQIANwIAICJBPGogFCkCADcCACAiQcQAaiAMKQIANwIAICJBzABqIAFByBdqKAIANgIAQbnRwgAtAAAaQdAAQQgQiwUiIEUNTCABQYW0wQBBwAAQjwEgAS0AAA0KIAIgCCkDACJ+NwMAIAwgDSkDACJ/NwMAIBQgACkDACKAATcDACAdIH83AgAgHyCAATcCACAjIH43AgAgASABKQMINwLcFiABQcW0wQBBwAAQjwEgAS0AAA0LIBogCCkDACJ+NwMAIBcgDSkDACJ/NwMAIBggACkDACKAATcDACAVIH83AgAgECCAATcCACAOIH43AgAgASABKQMINwKsFyAgQQU2AgAgIEELNgIoICAgASkC2BY3AgQgIEEMaiABQeAWaikCADcCACAgQRRqIAFB6BZqKQIANwIAICBBHGogAUHwFmopAgA3AgAgIEEkaiABQfgWaigCADYCACAgQSxqIAEpAqgXNwIAICBBNGogAikCADcCACAgQTxqIBQpAgA3AgAgIEHEAGogDCkCADcCACAgQcwAaiABQcgXaigCADYCAEG50cIALQAAGkEoQQgQiwUiLUUNTSABQYW1wQBBwAAQjwEgAS0AAA0MIB4gCCkDACJ+NwMAICwgDSkDACJ/NwMAICsgACkDACKAATcDACAVIH83AgAgECCAATcCACAOIH43AgAgASABKQMINwKsFyAtQQY2AgAgLSABKQKoFzcCBCAtQQxqIAIpAgA3AgAgLUEUaiAUKQIANwIAIC1BHGogDCkCADcCACAtQSRqIAFByBdqKAIANgIAQbnRwgAtAAAaQdAAQQgQiwUiKkUNTCABQcW1wQBBwAAQjwEgAS0AAA0NIAIgCCkDACJ+NwMAIAwgDSkDACJ/NwMAIBQgACkDACKAATcDACAdIH83AgAgHyCAATcCACAjIH43AgAgASABKQMINwLcFiABQYW2wQBBwAAQjwEgAS0AAA0OIBogCCkDACJ+NwMAIBcgDSkDACJ/NwMAIBggACkDACKAATcDACAVIH83AgAgECCAATcCACAOIH43AgAgASABKQMINwKsFyAqQQE2AgAgKkEHNgIoICogASkC2BY3AgQgKkEMaiABQeAWaikCADcCACAqQRRqIAFB6BZqKQIANwIAICpBHGogAUHwFmopAgA3AgAgKkEkaiABQfgWaigCADYCACAqQSxqIAEpAqgXNwIAICpBNGogAikCADcCACAqQTxqIBQpAgA3AgAgKkHEAGogDCkCADcCACAqQcwAaiABQcgXaigCADYCAEG50cIALQAAGkHQAEEIEIsFIiZFDUwgAUHFtsEAQcAAEI8BIAEtAAANDyACIAgpAwAifjcDACAMIA0pAwAifzcDACAUIAApAwAigAE3AwAgHSB/NwIAIB8ggAE3AgAgIyB+NwIAIAEgASkDCDcC3BYgAUGFt8EAQT8QjwEgAS0AAA0QIBogCCkDACJ+NwMAIBcgDSkDACJ/NwMAIBggACkDACKAATcDACAVIH83AgAgECCAATcCACAOIH43AgAgASABKQMINwKsFyAmQQI2AgAgJkEINgIoICYgASkC2BY3AgQgJkEMaiABQeAWaikCADcCACAmQRRqIAFB6BZqKQIANwIAICZBHGogAUHwFmopAgA3AgAgJkEkaiABQfgWaigCADYCACAmQSxqIAEpAqgXNwIAICZBNGogAikCADcCACAmQTxqIBQpAgA3AgAgJkHEAGogDCkCADcCACAmQcwAaiABQcgXaigCADYCAEG50cIALQAAGkHQAEEIEIsFIihFDUwgAUHEt8EAQT8QjwEgAS0AAA0RIAIgCCkDACJ+NwMAIAwgDSkDACJ/NwMAIBQgACkDACKAATcDACAdIH83AgAgHyCAATcCACAjIH43AgAgASABKQMINwLcFiABQYO4wQBBPxCPASABLQAADRIgGiAIKQMAIn43AwAgFyANKQMAIn83AwAgGCAAKQMAIoABNwMAIBUgfzcCACAQIIABNwIAIA4gfjcCACABIAEpAwg3AqwXIChBAzYCACAoQQk2AiggKCABKQLYFjcCBCAoQQxqIAFB4BZqKQIANwIAIChBFGogAUHoFmopAgA3AgAgKEEcaiABQfAWaikCADcCACAoQSRqIAFB+BZqKAIANgIAIChBLGogASkCqBc3AgAgKEE0aiACKQIANwIAIChBPGogFCkCADcCACAoQcQAaiAMKQIANwIAIChBzABqIAFByBdqKAIANgIAQbnRwgAtAAAaQdAAQQgQiwUiKUUNTCABQcK4wQBBwAAQjwEgAS0AAA0TIAIgCCkDACJ+NwMAIAwgDSkDACJ/NwMAIBQgACkDACKAATcDACAdIH83AgAgHyCAATcCACAjIH43AgAgASABKQMINwLcFiABQYK5wQBBPxCPASABLQAADRQgGiAIKQMAIn43AwAgFyANKQMAIn83AwAgGCAAKQMAIoABNwMAIBUgfzcCACAQIIABNwIAIA4gfjcCACABIAEpAwg3AqwXIClBBDYCACApQQo2AiggKSABKQLYFjcCBCApQQxqIAFB4BZqKQIANwIAIClBFGogAUHoFmopAgA3AgAgKUEcaiABQfAWaikCADcCACApQSRqIAFB+BZqKAIANgIAIClBLGogASkCqBc3AgAgKUE0aiACKQIANwIAIClBPGogFCkCADcCACApQcQAaiAMKQIANwIAIClBzABqIAFByBdqKAIANgIAQbnRwgAtAAAaQdAAQQgQiwUiLkUNTCABQcG5wQBBwAAQjwEgAS0AAA0VIAIgCCkDACJ+NwMAIAwgDSkDACJ/NwMAIBQgACkDACKAATcDACAdIH83AgAgHyCAATcCACAjIH43AgAgASABKQMINwLcFiABQYG6wQBBwAAQjwEgAS0AAA0WIBogCCkDACJ+NwMAIBcgDSkDACJ/NwMAIBggACkDACKAATcDACAVIH83AgAgECCAATcCACAOIH43AgAgASABKQMINwKsFyAuQQU2AgAgLkELNgIoIC4gASkC2BY3AgQgLkEMaiABQeAWaikCADcCACAuQRRqIAFB6BZqKQIANwIAIC5BHGogAUHwFmopAgA3AgAgLkEkaiABQfgWaigCADYCACAuQSxqIAEpAqgXNwIAIC5BNGogAikCADcCACAuQTxqIBQpAgA3AgAgLkHEAGogDCkCADcCACAuQcwAaiABQcgXaigCADYCACAcQYwBakECNgIAIBxBiAFqIC42AgAgHEGAAWpCgoCAgCA3AgAgHEH8AGogKTYCACAcQfQAakKCgICAIDcCACAcQfAAaiAoNgIAIBxB6ABqQoKAgIAgNwIAIBxB5ABqICY2AgAgHEHcAGpCgoCAgCA3AgAgHEHYAGogKjYCACAcQdAAakKBgICAIDcCACAcQcwAaiAtNgIAIBxBxABqQoKAgIAQNwIAIBxBQGsgIDYCACAcQThqQoKAgIAgNwIAIBxBNGogIjYCACAcQSxqQoKAgIAgNwIAIBxBKGogJDYCACAcQSBqQoKAgIAgNwIAIBxBHGogJTYCACAcQRRqQoKAgIAgNwIAIBxBEGogEjYCACAcQoKAgIAgNwIIIBwgETYCBCAcQQI2AgBBudHCAC0AABpBkAFBBBCLBSIRRQ1LQbnRwgAtAAAaQShBCBCLBSISRQ1NIAFBhLDBAEEBEI8BIAEtAAANFyAeIAgpAwAifjcDACAsIA0pAwAifzcDACArIAApAwAigAE3AwAgFSB/NwIAIBAggAE3AgAgDiB+NwIAIAEgASkDCDcCrBcgEkEANgIAIBIgASkCqBc3AgQgEkEMaiACKQIANwIAIBJBFGogFCkCADcCACASQRxqIAwpAgA3AgAgEkEkaiABQcgXaigCADYCAEG50cIALQAAGkEoQQgQiwUiJUUNTSABQcG6wQBBwAAQjwEgAS0AAA0YIB4gCCkDACJ+NwMAICwgDSkDACJ/NwMAICsgACkDACKAATcDACAVIH83AgAgECCAATcCACAOIH43AgAgASABKQMINwKsFyAlQQE2AgAgJSABKQKoFzcCBCAlQQxqIAIpAgA3AgAgJUEUaiAUKQIANwIAICVBHGogDCkCADcCACAlQSRqIAFByBdqKAIANgIAQbnRwgAtAAAaQShBCBCLBSIkRQ1NIAFBgbvBAEHAABCPASABLQAADRkgHiAIKQMAIn43AwAgLCANKQMAIn83AwAgKyAAKQMAIoABNwMAIBUgfzcCACAQIIABNwIAIA4gfjcCACABIAEpAwg3AqwXICRBAjYCACAkIAEpAqgXNwIEICRBDGogAikCADcCACAkQRRqIBQpAgA3AgAgJEEcaiAMKQIANwIAICRBJGogAUHIF2ooAgA2AgBBudHCAC0AABpBKEEIEIsFIiJFDU0gAUGFtcEAQcAAEI8BIAEtAAANGiAeIAFBEGopAwAifjcDACAsIAFBIGopAwAifzcDACArIAFBGGopAwAigAE3AwAgFSB/NwIAIBAggAE3AgAgDiB+NwIAIAEgASkDCDcCrBcgIkEDNgIAICIgASkCqBc3AgQgIkEMaiABQbAXaikCADcCACAiQRRqIAFBuBdqKQIANwIAICJBHGogAUHAF2opAgA3AgAgIkEkaiABQcgXaigCADYCAEG50cIALQAAGkEoQQgQiwUiIEUNTSABQcG7wQBBMBCPASABLQAADRsgHiABQRBqKQMAIn43AwAgLCABQSBqKQMAIn83AwAgKyABQRhqKQMAIoABNwMAIBUgfzcCACAQIIABNwIAIA4gfjcCACABIAEpAwg3AqwXICBBBDYCACAgIAEpAqgXNwIEICBBDGogAUGwF2opAgA3AgAgIEEUaiABQbgXaikCADcCACAgQRxqIAFBwBdqKQIANwIAICBBJGogAUHIF2ooAgA2AgBBudHCAC0AABpBKEEIEIsFIipFDU0gAUHxu8EAQTAQjwEgAS0AAA0cIB4gAUEQaikDACJ+NwMAICwgAUEgaikDACJ/NwMAICsgAUEYaikDACKAATcDACAVIH83AgAgECCAATcCACAOIH43AgAgASABKQMINwKsFyAqQQU2AgAgKiABKQKoFzcCBCAqQQxqIAFBsBdqKQIANwIAICpBFGogAUG4F2opAgA3AgAgKkEcaiABQcAXaikCADcCACAqQSRqIAFByBdqKAIANgIAQbnRwgAtAAAaQShBCBCLBSImRQ1NIAFBhLDBAEEBEI8BIAEtAAANHSAeIAFBEGopAwAifjcDACAsIAFBIGopAwAifzcDACArIAFBGGopAwAigAE3AwAgFSB/NwIAIBAggAE3AgAgDiB+NwIAIAEgASkDCDcCrBcgJkEGNgIAICYgASkCqBc3AgQgJkEMaiABQbAXaikCADcCACAmQRRqIAFBuBdqKQIANwIAICZBHGogAUHAF2opAgA3AgAgJkEkaiABQcgXaigCADYCAEG50cIALQAAGkEoQQgQiwUiKEUNTSABQcG6wQBBwAAQjwEgAS0AAA0eIB4gAUEQaikDACJ+NwMAICwgAUEgaikDACJ/NwMAICsgAUEYaikDACKAATcDACAVIH83AgAgECCAATcCACAOIH43AgAgASABKQMINwKsFyAoQQc2AgAgKCABKQKoFzcCBCAoQQxqIAFBsBdqKQIANwIAIChBFGogAUG4F2opAgA3AgAgKEEcaiABQcAXaikCADcCACAoQSRqIAFByBdqKAIANgIAQbnRwgAtAAAaQShBCBCLBSIpRQ1NIAFBgbvBAEHAABCPASABLQAADR8gHiABQRBqKQMAIn43AwAgLCABQSBqKQMAIn83AwAgKyABQRhqKQMAIoABNwMAIBUgfzcCACAQIIABNwIAIA4gfjcCACABIAEpAwg3AqwXIClBCDYCACApIAEpAqgXNwIEIClBDGogAUGwF2opAgA3AgAg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NgIoIB4gASkC2BY3AgQgHkEMaiABQeAWaikCADcCACAeQRRqIAFB6BZqKQIANwIAIB5BHGogAUHwFmopAgA3AgAgHkEkaiABQfgWaigCADYCACAeQSxqIAEpAqgXNwIAIB5BNGogAikCADcCACAeQTxqIBQpAgA3AgAgHkHEAGogDCkCADcCACAeQcwAaiABQcgXaigCADYCAEG50cIALQAAGkHQAEEIEIsFIitFDUwgAUHcwcEAQT8QjwEgAS0AAA0yIAIgCCkDACJ+NwMAIAwgDSkDACJ/NwMAIBQgACkDACKAATcDACAdIH83AgAgHyCAATcCACAjIH43AgAgASABKQMINwLcFiABQZvCwQBBwAAQjwEgAS0AAA0zIBogCCkDACJ+NwMAIBcgDSkDACJ/NwMAIBggACkDACKAATcDACAVIH83AgAgECCAATcCACAOIH43AgAgASABKQMINwKsFyArQQI2AgAgK0EINgIoICsgASkC2BY3AgQgK0EMaiABQeAWaikCADcCACArQRRqIAFB6BZqKQIANwIAICtBHGogAUHwFmopAgA3AgAgK0EkaiABQfgWaigCADYCACArQSxqIAEpAqgXNwIAICtBNGogAikCADcCACArQTxqIBQpAgA3AgAgK0HEAGogDCkCADcCACArQcwAaiABQcgXaigCADYCAEG50cIALQAAGkHQAEEIEIsFIixFDUwgAUHbwsEAQcAAEI8BIAEtAAANNCACIAgpAwAifjcDACAMIA0pAwAifzcDACAUIAApAwAigAE3AwAgHSB/NwIAIB8ggAE3AgAgIyB+NwIAIAEgASkDCDcC3BYgAUGGssEAQcAAEI8BIAEtAAANNSAaIAgpAwAifjcDACAXIA0pAwAifzcDACAYIAApAwAigAE3AwAgFSB/NwIAIBAggAE3AgAgDiB+NwIAIAEgASkDCDcCrBcgLEEDNgIAICxBCTYCKCAsIAEpAtgWNwIEICxBDGogAUHgFmopAgA3AgAgLEEUaiABQegWaikCADcCACAsQRxqIAFB8BZqKQIANwIAICxBJGogAUH4FmooAgA2AgAgLEEsaiABKQKoFzcCACAsQTRqIAIpAgA3AgAgLEE8aiAUKQIANwIAICxBxABqIAwpAgA3AgAgLEHMAGogAUHIF2ooAgA2AgBBudHCAC0AABpB0ABBCBCLBSIoRQ1MIAFBm8PBAEHAABCPASABLQAADTYgAiAIKQMAIn43AwAgDCANKQMAIn83AwAgFCAAKQMAIoABNwMAIB0gfzcCACAfIIABNwIAICMgfjcCACABIAEpAwg3AtwWIAFB28PBAEHAABCPASABLQAADTcgGiAIKQMAIn43AwAgFyANKQMAIn83AwAgGCAAKQMAIoABNwMAIBUgfzcCACAQIIABNwIAIA4gfjcCACABIAEpAwg3AqwXIChBBDYCACAoQQo2AiggKCABKQLYFjcCBCAoQQxqIAFB4BZqKQIANwIAIChBFGogAUHoFmopAgA3AgAgKEEcaiABQfAWaikCADcCACAoQSRqIAFB+BZqKAIANgIAIChBLGogASkCqBc3AgAgKEE0aiACKQIANwIAIChBPGogFCkCADcCACAoQcQAaiAMKQIANwIAIChBzABqIAFByBdqKAIANgIAQbnRwgAtAAAaQdAAQQgQiwUiKUUNTCABQZvEwQBBwAAQjwEgAS0AAA04IAIgCCkDACJ+NwMAIAwgDSkDACJ/NwMAIBQgACkDACKAATcDACAdIH83AgAgHyCAATcCACAjIH43AgAgASABKQMINwLcFiABQdvEwQBBwAAQjwEgAS0AAA05IBogCCkDACJ+NwMAIBcgDSkDACJ/NwMAIBggACkDACKAATcDACAVIH83AgAgECCAATcCACAOIH43AgAgASABKQMINwKsFyApQQU2AgAgKUELNgIoICkgASkC2BY3AgQgKUEMaiABQeAWaikCADcCACApQRRqIAFB6BZqKQIANwIAIClBHGogAUHwFmopAgA3AgAgKUEkaiABQfgWaigCADYCACApQSxqIAEpAqgXNwIAIClBNGogAikCADcCACApQTxqIBQpAgA3AgAgKUHEAGogDCkCADcCACApQcwAaiABQcgXaigCADYCACASQYwBakECNgIAIBJBiAFqICk2AgAgEkGAAWpCgoCAgCA3AgAgEkH8AGogKDYCACASQfQAakKCgICAIDcCACASQfAAaiAsNgIAIBJB6ABqQoKAgIAgNwIAIBJB5ABqICs2AgAgEkHcAGpCgoCAgCA3AgAgEkHYAGogHjYCACASQdAAakKBgICAIDcCACASQcwAaiAuNgIAIBJBxABqQoKAgIAQNwIAIBJBQGsgJjYCACASQThqQoKAgIAgNwIAIBJBNGogKjYCACASQSxqQoKAgIAgNwIAIBJBKGogIDYCACASQSBqQoKAgIAgNwIAIBJBHGogIjYCACASQRRqQoKAgIAgNwIAIBJBEGogJDYCACASQoKAgIAgNwIIIBIgJTYCBCASQQI2AgAgAUEsakEMNgIAIAFBKGogEjYCACABQSRqQQw2AgAgAUEUakEMNgIAIAAgETYCACABQRxqQoyAgIAwNwIAIAEgHDYCCCABQoGAgIDAATcCACABQoyAgIAgNwIMQcjVwgACfkHA1cIAKQMAUEUEQEHQ1cIAKQMAIX5ByNXCACkDAAwBC0ICIX5B0NXCAEICNwMAQcDVwgBCATcDAEIBCyJ/QgF8NwMAIAFBoBhqIhVBwKbBACkDADcDACABQbAYaiIQIH43AwAgAUGoGGoiHCB/NwMAIAFBuKbBACkDADcDmBgjAEEgayIIJABBAkEDIAFBmBhqIgwoAgwbIgAgDCgCCEsEQCAMIAAgDEEQahCGAQsgCEEIaiIRIAFBCGopAgA3AwAgCCABKQIAIn43AwAgCEEUaiAMIH6nIAhBBHIiDRCUAgJAIAgoAhQiFEGAgICAeEYNACAIKAIYIQAgCCgCHCIOBEAgACECA0AgAigCACISBEAgAkEEaigCACASQShsEJQFCyACQQxqIQIgDkEBayIODQALCyAURQ0AIAAgFEEMbBCUBQsgESABQRhqKQIANwMAIAggASkCECJ+NwMAIAhBFGogDCB+pyANEJQCAkAgCCgCFCIUQYCAgIB4Rg0AIAgoAhghACAIKAIcIg4EQCAAIQIDQCACKAIAIhEEQCACQQRqKAIAIBFBKGwQlAULIAJBDGohAiAOQQFrIg4NAAsLIBRFDQAgACAUQQxsEJQFCyAIQQhqIAFBKGopAgA3AwAgCCABKQIgIn43AwAgCEEUaiAMIH6nIA0QlAICQCAIKAIUIgxBgICAgHhGDQAgCCgCGCEAIAgoAhwiDgRAIAAhAgNAIAIoAgAiDQRAIAJBBGooAgAgDUEobBCUBQsgAkEMaiECIA5BAWsiDg0ACwsgDEUNACAAIAxBDGwQlAULIAhBIGokACAvQRhqIBApAwA3AwAgL0EQaiAcKQMANwMAIC9BCGogFSkDADcDACAvIAEpA5gYNwMADEoLIAEgAS0AAToAAEGEpsEAQSsgAUGcxcEAQYjZwQAQ/QMACyABQdgXaiIiIAgpAwAifjcDACABQegXaiIgIBQpAwAifzcDACABQeAXaiIqIBApAwAigAE3AwAgAUHEF2oiFyB/NwIAIAFBvBdqIhgggAE3AgAgAUG0F2oiHSB+NwIAIAEgASkDCDcCrBcgDUEANgIAIA1BBjYCKCANIAEpAtgWNwIEIA1BDGogAUHgFmoiJCIQIiYpAgA3AgAgDUEUaiABQegWaiIRKQIANwIAIA1BHGogAUHwFmoiIykCADcCACANQSRqIAFB+BZqKAIANgIAIA1BLGogASkCqBc3AgAgDUE0aiACKQIANwIAIA1BPGogFSkCADcCACANQcQAaiAMKQIANwIAIA1BzABqIAFByBdqKAIANgIAQbnRwgAtAAAaQdAAQQgQiwUiFEUNSiABQc3MwQBB4AAQjwEgAS0AAA04IAFBsBdqIgIgAUEQaiIIKQMAIn43AwAgAUHAF2oiDCABQSBqIh8iFSkDACJ/NwMAIAFBuBdqIhIiDiABQRhqIhoiHCkDACKAATcDACABQfQWaiIoIH83AgAgAUHsFmoiKSCAATcCACABQeQWaiIuIH43AgAgASABKQMINwLcFiABQc3MwQBB4AAQjwEgAS0AAA05ICIgCCkDACJ+NwMAICAgFSkDACJ/NwMAICogGikDACKAATcDACAXIH83AgAgGCCAATcCACAdIH43AgAgASABKQMINwKsFyAUQQE2AgAgFEEHNgIoIBQgASkC2BY3AgQgFEEMaiAmKQIANwIAIBRBFGogESkCADcCACAUQRxqICMpAgA3AgAgFEEkaiABQfgWaigCADYCACAUQSxqIAEpAqgXNwIAIBRBNGogAikCADcCACAUQTxqIBIpAgA3AgAgFEHEAGogDCkCADcCACAUQcwAaiABQcgXaigCADYCAEG50cIALQAAGkEoQQgQiwUiHkUNSyABQa3NwQBB0AAQjwEgAS0AAA06ICYgCCkDACJ+NwMAICMgHykDACJ/NwMAIBEgGikDACKAATcDACAXIH83AgAgGCCAATcCACAdIH43AgAgASABKQMINwKsFyAeQQI2AgAgHiABKQKoFzcCBCAeQQxqIAIpAgA3AgAgHkEUaiASKQIANwIAIB5BHGogDCkCADcCACAeQSRqIAFByBdqKAIANgIAQbnRwgAtAAAaQShBCBCLBSIrRQ1LIAFB/c3BAEHfABCPASABLQAADTsgJiAIKQMAIn43AwAgIyAVKQMAIn83AwAgESAcKQMAIoABNwMAIBcgfzcCACAYIIABNwIAIB0gfjcCACABIAEpAwg3AqwXICtBCTYCACArIAEpAqgXNwIEICtBDGogAikCADcCACArQRRqIA4pAgA3AgAgK0EcaiAMKQIANwIAICtBJGogAUHIF2ooAgA2AgBBudHCAC0AABpB0ABBCBCLBSIVRQ1KIAFB3M7BAEHgABCPASABLQAADTwgAiAIKQMAIn43AwAgDCAfKQMAIn83AwAgEiAaKQMAIoABNwMAICggfzcCACApIIABNwIAIC4gfjcCACABIAEpAwg3AtwWIAFBvM/BAEHgABCPASABLQAADT0gIiAIKQMAIn43AwAgICAfKQMAIn83AwAgKiAaKQMAIoABNwMAIBcgfzcCACAYIIABNwIAIB0gfjcCACABIAEpAwg3AqwXIBVBBDYCACAVQQo2AiggFSABKQLYFjcCBCAVQQxqIBApAgA3AgAgFUEUaiARKQIANwIAIBVBHGogIykCADcCACAVQSRqIAFB+BZqKAIANgIAIBVBLGogASkCqBc3AgAgFUE0aiACKQIANwIAIBVBPGogEikCADcCACAVQcQAaiAMKQIANwIAIBVBzABqIAFByBdqKAIANgIAQbnRwgAtAAAaQdAAQQgQiwUiEEUNSiABQZzQwQBB3wAQjwEgAS0AAA0+IAIgCCkDACJ+NwMAIAwgHykDACJ/NwMAIBIgGikDACKAATcDACAoIH83AgAgKSCAATcCACAuIH43AgAgASABKQMINwLcFiABQZzQwQBB3wAQjwEgAS0AAA0/ICIgCCkDACJ+NwMAICAgHykDACJ/NwMAICogGikDACKAATcDACAXIH83AgAgGCCAATcCACAdIH43AgAgASABKQMINwKsFyAQQQU2AgAgEEELNgIoIBAgASkC2BY3AgQgEEEMaiAkKQIANwIAIBBBFGogESkCADcCACAQQRxqICMpAgA3AgAgEEEkaiABQfgWaigCADYCACAQQSxqIAEpAqgXNwIAIBBBNGogAikCADcCACAQQTxqIBIpAgA3AgAgEEHEAGogDCkCADcCACAQQcwAaiABQcgXaigCADYCAEG50cIALQAAGkEoQQgQiwUiLEUNSyABQfvQwQBB4AAQjwEgAS0AAA1AICYgCCkDACJ+NwMAICMgHykDACJ/NwMAIBEgHCkDACKAATcDACAXIH83AgAgGCCAATcCACAdIH43AgAgASABKQMINwKsFyAsQQY2AgAgLCABKQKoFzcCBCAsQQxqIAIpAgA3AgAgLEEUaiAOKQIANwIAICxBHGogDCkCADcCACAsQSRqIAFByBdqKAIANgIAQbnRwgAtAAAaQdAAQQgQiwUiDkUNSiABQdvRwQBB3gAQjwEgAS0AAA1BIAIgCCkDACJ+NwMAIAwgHykDACJ/NwMAIBIgGikDACKAATcDACAoIH83AgAgKSCAATcCACAuIH43AgAgASABKQMINwLcFiABQbnSwQBB3wAQjwEgAS0AAA1CICIgCCkDACJ+NwMAICAgHykDACJ/NwMAICogGikDACKAATcDACAXIH83AgAgGCCAATcCACAdIH43AgAgASABKQMINwKsFyAOQQE2AgAgDkEHNgIoIA4gASkC2BY3AgQgDkEMaiABQeAWaikCADcCACAOQRRqIAFB6BZqKQIANwIAIA5BHGogAUHwFmopAgA3AgAgDkEkaiABQfgWaigCADYCACAOQSxqIAEpAqgXNwIAIA5BNGogAikCADcCACAOQTxqIBIpAgA3AgAgDkHEAGogDCkCADcCACAOQcwAaiABQcgXaigCADYCAEG50cIALQAAGkHQAEEIEIsFIhxFDUogAUGY08EAQeAAEI8BIAEtAAANQyACIAgpAwAifjcDACAMIB8pAwAifzcDACASIBopAwAigAE3AwAgKCB/NwIAICkggAE3AgAgLiB+NwIAIAEgASkDCDcC3BYgAUGY08EAQeAAEI8BIAEtAAANRCAiIAgpAwAifjcDACAgIB8pAwAifzcDACAqIBopAwAigAE3AwAgFyB/NwIAIBgggAE3AgAgHSB+NwIAIAEgASkDCDcCrBcgHEECNgIAIBxBCDYCKCAcIAEpAtgWNwIEIBxBDGogAUHgFmopAgA3AgAgHEEUaiABQegWaikCADcCACAcQRxqIAFB8BZqKQIANwIAIBxBJGogAUH4FmooAgA2AgAgHEEsaiABKQKoFzcCACAcQTRqIAIpAgA3AgAgHEE8aiASKQIANwIAIBxBxABqIAwpAgA3AgAgHEHMAGog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QSsgAUGcxcEAQZjYwQAQ/QMACyABIAEtAAE6AABBhKbBAEErIAFBnMXBAEGI2MEAEP0DAAsgASABLQABOgAAQYSmwQBBKyABQZzFwQBB+NfBABD9AwALIAEgAS0AAToAAEGEpsEAQSsgAUGcxcEAQejXwQAQ/QMACyABIAEtAAE6AABBhKbBAEErIAFBnMXBAEHY18EAEP0DAAsgASABLQABOgAAQYSmwQBBKyABQZzFwQBByNfBABD9AwALIAEgAS0AAToAAEGEpsEAQSsgAUGcxcEAQbjXwQAQ/QMACyABIAEtAAE6AABBhKbBAEErIAFBnMXBAEGo18EAEP0DAAsgASABLQABOgAAQYSmwQBBKyABQZzFwQBBmNfBABD9AwALIAEgAS0AAToAAEGEpsEAQSsgAUGcxcEAQYjXwQAQ/QMACyABIAEtAAE6AABBhKbBAEErIAFBnMXBAEH41sEAEP0DAAsgAUHAGGokAAwDC0EEQZABEKgFAAtBCEHQABCoBQALQQhBKBCoBQALAkACQAJAAkACQAJAAkACQCAzDgIBAgALQcD1wABBD0G0+sAAELkEAAsgCkHIBGoiACADIBsgFiA5IAYgGSAFIBMQaiAKKALQBCIBIAooAsgERgRAIAAQ3AMLIAooAswEIQAgAQRAIABBDGogACABQQxsEKwFGgsgACAKKQOYAzcCACAAQQhqIApBoANqKAIANgIAIApB0ARqIAFBAWoiADYCACAKQdAHaiAANgIAIAogCikCyAQ3A8gHIApBgICAgHg2AtgIIApBmANqIApByAdqIApB2AhqIApBuAJqIApBxAJqEOABIApB8ARqIApBoAVqIApBiANqQQEQcyAKKAL8AkGAgICAeEcNAUGk+sAAEJgFAAsgCkGUBWogCkGgBWogCkGIA2pBARBzQbnRwgAtAAAaQSRBBBCLBSIARQ0MIAAgCikDmAM3AgAgACAKKQPgAjcCDCAAIAopApQFNwIYIABBCGogCkGgA2oiASgCADYCACAAQRRqIApB6AJqKAIANgIAIABBIGogCkGcBWooAgA2AgAgCkEDNgLQByAKIAA2AswHIApBAzYCyAcgCiCEATcC3AggCiAENgLYCCAKQZgDaiIAIApByAdqIApB2AhqIgIgCkG4AmogCkHEAmoQ4AEgNkGAgICAeEYNAiAKQeAI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KQMANwMAIAFB4AFqIAlBMGopAwA3AwAgAUHoAWogCUE4aikDADcDACABIAkpAwg3A7gBIAkoAgQhFyAJKAIAIRggAARAIAkgAEEFdBCUBQsgAUEwaiABQcgBaiInKQMANwMAIAFBKGogAUHAAWoiHikDADcDACABQQhqIAgpAwA3AwAgAUEQaiABQeABaiIIKQMANwMAIAFBGGogAUHoAWoiKykDADcDACABIAEpA7gBNwMgIAEgASkD0AE3AwAgAUGAAWogDUFAayIAQQhqKQMANwMAIAFBiAFqIABBEGopAwA3AwAgAUGQAWogAEEYaikDADcDACABIAApAwA3A3ggAUGwAWogDUH4AGopAwA3AwAgAUGoAWogDUHwAGopAwA3AwAgAUGgAWogDUHoAGopAwA3AwAgASANKQNgNwOYASABQbgBaiABQfgAahDqAyABKAK8ASEJIAEoArgBIQAgASgCwAEiLEECRw0BIB4gCUEQaikDADcDACAnIAlBGGopAwA3AwAgAUHQAWogCUEgaikDADcDACABQdgBaiInIAlBKGopAwA3AwAgCCAJQTBqKQMANwMAICsgCUE4aikDADcDACABIAkpAwg3A7gBIAkoAgQhCCAJKAIAIR4gAARAIAkgAEEFdBCUBQsgAyAINgJEIAMgHjYCQCADIAEpA7gBNwNIIAMgASkD0AE3A2AgA0HQAGogAUHAAWopAwA3AwAgA0HYAGogAUHIAWopAwA3AwAgA0HoAGogJykDADcDACADQfAAaiABQeABaikDADcDACADQfgAaiABQegBaikDADcDACADIBc2AgQgAyAYNgIAIAMgASkDIDcDCCADQRBqIAFBKGopAwA3AwAgA0EYaiABQTBqKQMANwMAIAMgASkDADcDICADQShqIAFBCGopAwA3AwAgA0EwaiABQRBqKQMANwMAIANBOGogAUEYaikDADcDACABQfABaiQADAMLIAEgCDYCwAEMAQsgASAsNgLAAQsgASAJNgK8ASABIAA2ArgBQYSmwQBBKyABQbgBakHQrcEAQaCuwQAQ/QMACyAHQZAFaiAVKQMANwMAIAdBiAVqIB8pAwA3AwAgB0GABWogDykDADcDACASIB0pAwA3AwAgB0HwBGogDCkDADcDACAHQegEaiALKQMANwMAIAdB4ARqICMpAwA3AwAg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QdgBaikDADcDACAHQegCaiABQdABaikDADcDACAHQeACaiABQcgBaikDADcDACAHQZADaiABQfgBaikDADcDACAHQZgDaiABQYACaikDADcDACAHQaADaiABQYgCaikDADcDACAHQagDaiABQZACaikDADcDACAHQbADaiABQZgCaikDADcDACAHIAEpA8ABNwPYAiAHIAEpA/ABNwOIAyAHQfAFaiABQQhqKQMANwMAIAdB+AVqIAFBEGopAwA3AwAgB0GABmogAUEYaikDADcDACAHQYgGaiABQSBqKQMANwMAIAdBkAZqIAFBKGopAwA3AwAgB0GgBmogAUE4aikDADcDACAHQagGaiABQUBrKQMANwMAIAdBsAZqIAFByABqKQMANwMAIAdBuAZqIAFB0ABqKQMANwMAIAdBwAZqIAFB2ABqKQMANwMAIAcgASkDADcD6AUgByABKQMwNwOYBiAHQfAGaiABQYgBaikDADcDACAHQegGaiABQYABaikDADcDACAHQeAGaiABQfgAaikDADcDACAHQdgGaiABQfAAaikDADcDACAHQdAGaiABQegAaikDADcDACAHQaAHaiABQbgBaikDADcDACAHQZgHaiABQbABaikDADcDACAHQZAHaiABQagBaikDADcDACAHQYgHaiABQaABaikDADcDACAHQYAHaiABQZgBaikDADcDACAHIAEpA2A3A8gGIAcgASkDkAE3A/gGIAdBuANqIgMgB0HoBWpB4AAQrQUaIAdBmARqIAdByAZqQeAAEK0FGiAHQegIaiAHQdgCakHgABCtBRogB0GoB2oiBCADQcABEK0FGiAHQQhqIARBoAIQrQUaIAIEQCABIAJBoAJsEJQFCyAAQaACEJQFCyBLQQFNDQIgPCBLSw0DAkAgPUEGRwRAIAdBgICAgHg2AqgCDAELIAdB0AdqIAdB8AFqKQMANwMAIAdByAdqIAdB6AFqKQMANwMAIAdBwAdqIAdB4AFqKQMANwMAIAdBuAdqIAdB2AFqKQMANwMAIAdBsAdqIgEgB0HQAWopAwA3AwAgB0HgB2ogB0GAAmopAwA3AwAgB0HoB2ogB0GIAmopAwA3AwAgB0HwB2ogB0GQAmopAwA3AwAgB0H4B2ogB0GYAmopAwA3AwAgB0GACGogB0GgAmopAwA3AwAgByAHKQPI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C2ogCygClAYiACALKAKYBhAeIAsoApAGIgEEQCAAIAFBMGwQlAULAkAgTigCACJMQYCAgIB4Rg0AIAtBkAZqIE4Q7AEgC0GgC2ogCygClAYiACALKAKYBhAeIAsoApAGIgEEQCAAIAFBMGwQlAULIAtBkAZqIQQgCygClAsiRiECIAsoApgLIQMgCygCpAshASALKAKoCyEIIwBBsCNrIgAkACAAIAM2AhAgAEEMNgIMAkACQAJAAkACQAJAIANBDEYEQCAAIAg2AhQgAyAIRw0BAkACQAJAAkACQAJAAkAgA0ECaw4LAQAAAAIAAAAAAAMACyAAQQA2AqgJIABBATYCnAkgAEHIq8EANgKYCSAAQgQ3AqAJIABBmAlqQcCtwQAQzQQAC0G50cIALQAAGkHgAEEIEIsFIgMNAgwJC0G50cIALQAAGkGgAkEIEIsFIgMNAgwJC0G50cIALQAAGkHABEEIEIsFIgMNAgwYCyADIAIpAwA3AwAgAyACKQMwNwMwIANBKGogAkEoaikDADcDACADQSBqIAJBIGopAwA3AwAgA0EYaiACQRhqKQMANwMAIANBEGogAkEQaikDADcDACADQQhqIgggAkEIaikDADcDACADQThqIAJBOGopAwA3AwAgA0FAayACQUBrKQMANwMAIANByABqIAJByABqKQMANwMAIANB0ABqIAJB0ABqKQMANwMAIANB2ABqIAJB2ABqKQMANwMAIAMpAwAhfiAAQSBqIAhB2AAQrQUaIANB4AAQlAVBudHCAC0AABogACB+NwMYQeAAQQgQiwUiAkUNBiACIAEpAwA3AwAgAiABKQMwNwMwIAJBKGogAUEoaikDADcDACACQSBqIAFBIGopAwA3AwAgAkEYaiABQRhqKQMANwMAIAJBEGogAUEQaikDADcDACACQQhqIgMgAUEIaikDADcDACACQThqIAFBOGopAwA3AwAgAkFAayABQUBrKQMANwMAIAJByABqIAFByABqKQMANwMAIAJB0ABqIAFB0ABqKQMANwMAIAJB2ABqIAFB2ABqKQMANwMAIAIpAwAhfiAAQYABaiADQdgAEK0FGiACQeAAEJQFIAAgfjcDeCAAQdgBaiICIABBGGogAEH4AGoQbCAAQZgJaiACELoEIAAoApwJIQIgACgCmAkhAyAAKAKgCSIIQQJHDQQgAigCBCEIIAIoAgAhCSAAQdgNaiACQQhqQdgAEK0FGiADBEAgAiADQTBsEJQFC0G50cIALQAAGkHgAEEIEIsFIgJFDQYgAiAINgIEIAIgCTYCACACIAApA9gNNwMIIAIgACkDgA43AzAgAkEQaiAAQeANaikDADcDACACQRhqIABB6A1qKQMANwMAIAJBIGogAEHwDWopAwA3AwAgAkEoaiAAQfgNaikDADcDACACQThqIABBiA5qKQMANwMAIAJBQGsgAEGQDmopAwA3AwAgAkHIAGogAEGYDmopAwA3AwAgAkHQAGogAEGgDmopAwA3AwAgAkHYAGogAEGoDmopAwA3AwAgBEECNgIIIAQgAjYCBCAEQQI2AgAMBQsgAyACKQMANwMAIAMgAikDMDcDMCADQShqIAJBKGopAwA3AwAgA0EgaiACQSBqKQMANwMAIANBGGogAkEYaikDADcDACADQRBqIAJBEGopAwA3AwAgA0EIaiIJIAJBCGopAwA3AwAgA0E4aiACQThqKQMANwMAIANBQGsgAkFAaykDADcDACADQcgAaiACQcgAaikDADcDACADQdAAaiACQdAAaikDADcDACADQdgAaiACQdgAaikDADcDACADQYgBaiACQYgBaikDADcDACADQYABaiACQYABaikDADcDACADQfgAaiACQfgAaikDADcDACADQfAAaiACQfAAaikDADcDACADQegAaiACQegAaikDADcDACADIAIpA2A3A2AgAyACKQOQATcDkAEgA0GYAWogAkGYAWopAwA3AwAgA0GgAWogAkGgAWopAwA3AwAgA0GoAWogAkGoAWopAwA3AwAgA0GwAWogAkGwAWopAwA3AwAgA0G4AWogAkG4AWopAwA3AwAgA0HoAWogAkHoAWopAwA3AwAgA0HgAWogAkHgAWopAwA3AwAgA0HYAWogAkHYAWopAwA3AwAgA0HQAWogAkHQAWopAwA3AwAgA0HIAWogAkHIAWopAwA3AwAgAyACKQPAATcDwAEgA0GYAmogAkGYAmopAwA3AwAgA0GQAmogAkGQAmopAwA3AwAgA0GIAmogAkGIAmopAwA3AwAgA0GAAmogAkGAAmopAwA3AwAgA0H4AWogAkH4AWopAwA3AwAgAyACKQPwATcD8AEgAykDACF+IABBmAlqIgggCUGYAhCt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IABBsBFqIEVB4AAQrQUaIABBkBJqIEdB4AAQrQUaIABBuAJqIgIgAEGwDmogAEHQEGoQ+AIgCCACENIBQbnRwgAtAAAaQaACQQgQiwUiAkUNBiACIAApA5gJNwMAIAIgACkDyAk3AzAgAkEoaiAAQcAJaikDADcDACACQSBqIB0pAwA3AwAgAkEYaiAfKQMANwMAIAJBEGogIykDADcDACACQQhqICcpAwA3AwAgAkE4aiADKQMANwMAIAJBQGsgCSkDADcDACACQcgAaiAMKQMANwMAIAJB0ABqIA0pAwA3AwAgAkHYAGogAEHwCWopAwA3AwAgAkGIAWogAEGgCmopAwA3AwAgAkGAAWogECkDADcDACACQfgAaiAVKQMANwMAIAJB8ABqIA8pAwA3AwAgAkHoAGogFikDADcDACACIAApA/gJNwNgIAJBuAFqIABB0ApqKQMANwMAIAJBsAFqIA4pAwA3AwAgAkGoAWogNykDADcDACACQaABaiAKKQMANwMAIAJBmAFqIBMpAwA3AwAgAiAAKQOoCjcDkAEgAkHoAWogAEGAC2opAwA3AwAgAkHgAWogEikDADcDACACQdgBaiARKQMANwMAIAJB0AFqIBspAwA3AwAgAkHIAWogGSkDADcDACACIAApA9gKNwPAASACQZgCaiAAQbALaikDADcDACACQZACaiAhKQMANwMAIAJBiAJqIBopAwA3AwAgAkGAAmogFykDADcDACACQfgBaiAYKQMANwMAIAIgACkDiAs3A/ABIARBBjYCCCAEIAI2AgQgBEEGNgIADAQLIAMgAikDADcDACADIAIpAzA3AzAgA0EoaiACQShqKQMANwMAIANBIGogAkEgaikDADcDACADQRhqIAJBGGopAwA3AwAgA0EQaiACQRBqKQMANwMAIANBCGoiCSACQQhqKQMANwMAIANBOGogAkE4aikDADcDACADQUBrIAJBQGspAwA3AwAgA0HIAGogAkHIAGopAwA3AwAgA0HQAGogAkHQAGopAwA3AwAgA0HYAGogAkHYAGopAwA3AwAgA0GIAWogAkGIAWopAwA3AwAgA0GAAWogAkGAAWopAwA3AwAgA0H4AGogAkH4AGopAwA3AwAgA0HwAGogAkHwAGopAwA3AwAgA0HoAGogAkHoAGopAwA3AwAgAyACKQNgNwNgIAMgAikDkAE3A5ABIANBmAFqIAJBmAFqKQMANwMAIANBoAFqIAJBoAFqKQMANwMAIANBqAFqIAJBqAFqKQMANwMAIANBsAFqIAJBsAFqKQMANwMAIANBuAFqIAJBuAFqKQMANwMAIANB6AFqIAJB6AFqKQMANwMAIANB4AFqIAJB4AFqKQMANwMAIANB2AFqIAJB2AFqKQMANwMAIANB0AFqIAJB0AFqKQMANwMAIANByAFqIAJByAFqKQMANwMAIAMgAikDwAE3A8ABIANBmAJqIAJBmAJqKQMANwMAIANBkAJqIAJBkAJqKQMANwMAIANBiAJqIAJBiAJqKQMANwMAIANBgAJqIAJBgAJqKQMANwMAIANB+AFqIAJB+AFqKQMANwMAIAMgAikD8AE3A/ABIANByAJqIAJByAJqKQMANwMAIANBwAJqIAJBwAJqKQMANwMAIANBuAJqIAJBuAJqKQMANwMAIANBsAJqIAJBsAJqKQMANwMAIANBqAJqIAJBqAJqKQMANwMAIAMgAikDoAI3A6ACIANB+AJqIAJB+AJqKQMANwMAIANB8AJqIAJB8AJqKQMANwMAIANB6AJqIAJB6AJqKQMANwMAIANB4AJqIAJB4AJqKQMANwMAIANB2AJqIAJB2AJqKQMANwMAIAMgAikD0AI3A9ACIANBqANqIAJBqANqKQMANwMAIANBoANqIAJBoANqKQMANwMAIANBmANqIAJBmANqKQMANwMAIANBkANqIAJBkANqKQMANwMAIANBiANqIAJBiANqKQMANwMAIAMgAikDgAM3A4ADIANB2ANqIAJB2ANqKQMANwMAIANB0ANqIAJB0ANqKQMANwMAIANByANqIAJByANqKQMANwMAIANBwANqIAJBwANqKQMANwMAIANBuANqIAJBuANqKQMANwMAIAMgAikDsAM3A7ADIANBiARqIAJBiARqKQMANwMAIANBgARqIAJBgARqKQMANwMAIANB+ANqIAJB+ANqKQMANwMAIANB8ANqIAJB8ANqKQMANwMAIANB6ANqIAJB6ANqKQMANwMAIAMgAikD4AM3A+ADIANBuARqIAJBuARqKQMANwMAIANBsARqIAJBsARqKQMANwMAIANBqARqIAJBqARqKQMANwMAIANBoARqIAJBoARqKQMANwMAIANBmARqIAJBmARqKQMANwMAIAMgAikDkAQ3A5AEIAMpAwAhfiAAQZgJaiIIIAlBuAQQrQUaIANBwAQQlAUgAEGoE2ogAEHICWoiRSkDADcDACAAQbATaiAAQdAJaiIJKQMANwMAIABBuBNqIABB2AlqIgwpAwA3AwAgAEHAE2ogAEHgCWoiDSkDADcDACAAQcgTaiAAQegJaiIWKQMANwMAIABBuBdqIABB+AlqIkcpAwA3AwAgAEHAF2ogAEGACmoiDykDADcDACAAQcgXaiAAQYgKaiIVKQMANwMAIABB0BdqIABBkApqIhApAwA3AwAgAEHYF2ogAEGYCmoiDikDADcDACAAIAApA8AJNwOgEyAAIAApA/AJNwOwFyAAQYgYaiAAQcgKaiI3KQMANwMAIABBgBhqIABBwApqIgopAwA3AwAgAEH4F2ogAEG4CmoiEykDADcDACAAQfAXaiAAQbAKaiIZKQMANwMAIABB6BdqIABBqApqIkkpAwA3AwAgAEGYGGogAEHYCmoiUSkDADcDACAAQaAYaiAAQeAKaiIbKQMANwMAIABBqBhqIABB6ApqIhEpAwA3AwAgAEGwGGogAEHwCmoiEikDADcDACAAQbgYaiAAQfgKaiIhKQMANwMAIAAgACkDoAo3A+AXIAAgACkD0Ao3A5AYIABB6BhqIABBqAtqIhopAwA3AwAgAEHgGGogAEGgC2oiFykDADcDACAAQdgYaiAAQZgLaiIYKQMANwMAIABB0BhqIABBkAtqIh0pAwA3AwAgAEHIGGogAEGIC2oiUikDADcDACAAQZgTaiAAQbgJaiIfKQMANwMAIABBkBNqIABBsAlqIiMpAwA3AwAgAEGIE2ogAEGoCWoiJykDADcDACAAQYATaiAAQaAJaiIeKQMANwMAIAAgACkDgAs3A8AYIAAgACkDmAk3A/gSIABB6CFqIlMgAEGIDGoiJSkDADcDACAAQeAhaiJUIABBgAxqIiQpAwA3AwAgAEHYIWoiVSAAQfgLaiIiKQMANwMAIABB0CFqIlYgAEHwC2oiICkDADcDACAAQcghaiJXIABB6AtqIlgpAwA3AwAgACAAKQPgCzcDwCEgAEH4IWoiWSAAQZgMaiJaKQMANwMAIABBgCJqIlsgAEGgDGoiKikDADcDACAAQYgiaiJcIABBqAxqIiYpAwA3AwAgAEGQImoiXSAAQbAMaiIoKQMANwMAIABBmCJqIl4gAEG4DGoiKSkDADcDACAAIAApA5AMNwPwISAAQcgiaiJfIABB6AxqIi4pAwA3AwAgAEHAImoiYCAAQeAMaiI5KQMANwMAIABBuCJqImEgAEHYDGoiLykDADcDACAAQbAiaiJiIABB0AxqIi0pAwA3AwAgAEGoImoiYyAAQcgMaiJkKQMANwMAIAAgACkDwAw3A6AiIABB+CJqImUgAEGYDWoiMCkDADcDACAAQfAiaiJmIABBkA1qIjEpAwA3AwAgAEHoImoiZyAAQYgNaiIyKQMANwMAIABB4CJqImggAEGADWoiNCkDADcDACAAQdgiaiJpIABB+AxqImopAwA3AwAgACAAKQPwDDcD0CIgAEGoI2oiayAAQcgNaiI1KQMANwMAIABBoCNqImwgAEHADWoiNikDADcDACAAQZgjaiJtIABBuA1qIjMpAwA3AwAgAEGQI2oibiAAQbANaiI4KQMANwMAIABBiCNqIm8gAEGoDWoicCkDADcDACAAIAApA6ANNwOAIyAAQbghaiJxIABB2AtqIjspAwA3AwAgAEGwIWoiciAAQdALaiI+KQMANwMAIABBqCFqInMgAEHIC2oiQCkDADcDACAAQaAhaiJ0IABBwAtqIkEpAwA3AwAgAEGYIWoidSAAQbgLaiJ2KQMANwMAIAAgACkDsAs3A5AhIABB8B5qIgMgAEGQIWoid0HgABCtBRogAEHQH2ogAEHwIWoieEHgABCtBSAAQbAgaiAAQdAiaiJ6QeAAEK0FIXsgACB+NwPwEiAAQdATaiAAQbAXakHgABCtBRogAEGwFGogAEGQGGpB4AAQrQUaIABBkBVqIANBoAIQrQUaQbnRwgAtAAAaQcAEQQgQiwUiAkUNFSACIAEpAwA3AwAgAiABKQMwNwMwIAJBKGogAUEoaikDADcDACACQSBqIAFBIGopAwA3AwAgAkEYaiABQRhqKQMANwMAIAJBEGogAUEQaikDADcDACACQQhqInwgAUEIaikDADcDACACQThqIAFBOGopAwA3AwAgAkFAayABQUBrKQMANwMAIAJByABqIAFByABqKQMANwMAIAJB0ABqIAFB0ABqKQMANwMAIAJB2ABqIAFB2ABqKQMANwMAIAJBiAFqIAFBiAFqKQMANwMAIAJBgAFqIAFBgAFqKQMANwMAIAJB+ABqIAFB+ABqKQMANwMAIAJB8ABqIAFB8ABqKQMANwMAIAJB6ABqIAFB6ABqKQMANwMAIAIgASkDYDcDYCACIAEpA5ABNwOQASACQZgBaiABQZgBaikDADcDACACQaABaiABQaABaikDADcDACACQagBaiABQagBaikDADcDACACQbABaiABQbABaikDADcDACACQbgBaiABQbgBaikDADcDACACQegBaiABQegBaikDADcDACACQeABaiABQeABaikDADcDACACQdgBaiABQdgBaikDADcDACACQdABaiABQdABaikDADcDACACQcgBaiABQcgBaikDADcDACACIAEpA8ABNwPAASACQZgCaiABQZgCaikDADcDACACQZACaiABQZACaikDADcDACACQYgCaiABQYgCaikDADcDACACQYACaiABQYACaikDADcDACACQfgBaiABQfgBaikDADcDACACIAEpA/ABNwPwASACQcgCaiABQcgCaikDADcDACACQcACaiABQcACaikDADcDACACQbgCaiABQbgCaikDADcDACACQbACaiABQbACaikDADcDACACQagCaiABQagCaikDADcDACACIAEpA6ACNwOgAiACQfgCaiABQfgCaikDADcDACACQfACaiABQfACaikDADcDACACQegCaiABQegCaikDADcDACACQeACaiABQeACaikDADcDACACQdgCaiABQdgCaikDADcDACACIAEpA9ACNwPQAiACQagDaiABQagDaikDADcDACACQaADaiABQaADaikDADcDACACQZgDaiABQZgDaikDADcDACACQZADaiABQZADaikDADcDACACQYgDaiABQYgDaikDADcDACACIAEpA4ADNwOAAyACQdgDaiABQdgDaikDADcDACACQdADaiABQdADaikDADcDACACQcgDaiABQcgDaikDADcDACACQcADaiABQcADaikDADcDACACQbgDaiABQbgDaikDADcDACACIAEpA7ADNwOwAyACQYgEaiABQYgEaikDADcDACACQYAEaiABQYAEaikDADcDACACQfgDaiABQfgDaikDADcDACACQfADaiABQfADaikDADcDACACQegDaiABQegDaikDADcDACACIAEpA+ADNwPgAyACQbgEaiABQbgEaikDADcDACACQbAEaiABQbAEaikDADcDACACQagEaiABQagEaikDADcDACACQaAEaiABQaAEaikDADcDACACQZgEaiABQZgEaikDADcDACACIAEpA5AENwOQBCACKQMAIX4gCCB8QbgEEK0FGiACQcAEEJQFIABBqBlqIEUpAwA3AwAgAEGwGWogCSkDADcDACAAQbgZaiAMKQMANwMAIABBwBlqIA0pAwA3AwAgAEHIGWogFikDADcDACAAQbgdaiBHKQMANwMAIABBwB1qIA8pAwA3AwAgAEHIHWogFSkDADcDACAAQdAdaiAQKQMANwMAIABB2B1qIA4pAwA3AwAgACAAKQPACTcDoBkgACAAKQPwCTcDsB0gAEGIHmogNykDADcDACAAQYAeaiAKKQMANwMAIABB+B1qIBMpAwA3AwAgAEHwHWogGSkDADcDACAAQegdaiBJKQMANwMAIABBmB5qIFEpAwA3AwAgAEGgHmogGykDADcDACAAQageaiARKQMANwMAIABBsB5qIBIpAwA3AwAgAEG4HmogISkDADcDACAAIAApA6AKNwPgHSAAIAApA9AKNwOQHiAAQegeaiAaKQMANwMAIABB4B5qIBcpAwA3AwAgAEHYHmogGCkDADcDACAAQdAeaiAdKQMANwMAIABByB5qIFIpAwA3AwAgAEGYGWogHykDADcDACAAQZAZaiAjKQMANwMAIABBiBlqICcpAwA3AwAgAEGAGWogHikDADcDACAAIAApA4ALNwPAHiAAIAApA5gJNwP4GCBTICUpAwA3AwAgVCAkKQMANwMAIFUgIikDADcDACBWICApAwA3AwAgVyBYKQMANwMAIAAgACkD4As3A8AhIFkgWikDADcDACBbICopAwA3AwAgXCAmKQMANwMAIF0gKCkDADcDACBeICkpAwA3AwAgACAAKQOQDDcD8CEgXyAuKQMANwMAIGAgOSkDADcDACBhIC8pAwA3AwAgYiAtKQMANwMAIGMgZCkDADcDACAAIAApA8AMNwOgIiBlIDApAwA3AwAgZiAxKQMANwMAIGcgMikDADcDACBoIDQpAwA3AwAgaSBqKQMANwMAIAAgACkD8Aw3A9AiIGsgNSkDADcDACBsIDYpAwA3AwAgbSAzKQMANwMAIG4gOCkDADcDACBvIHApAwA3AwAgACAAKQOgDTcDgCMgcSA7KQMANwMAIHIgPikDADcDACBzIEApAwA3AwAgdCBBKQMANwMAIHUgdikDADcDACAAIAApA7ALNwOQISADIHdB4AAQrQUaIHhB4AAQrQUaIHsgekHgABCtBRogACB+NwPwGCAAQdAZaiAAQbAdakHgABCtBRogAEGwGmogAEGQHmpB4AAQrQUaIABBkBtqIANBoAIQrQUaIABB2ARqIgIgAEHwEmogAEHwGGoQ2QIgCCACEMABQbnRwgAtAAAaQcAEQQgQiwUiAkUNFSACIAApA5gJNwMAIAIgACkDyAk3AzAgAkEoaiAAQcAJaikDADcDACACQSBqIB8pAwA3AwAgAkEYaiAjKQMANwMAIAJBEGogJykDADcDACACQQhqIB4pAwA3AwAgAkE4aiAJKQMANwMAIAJBQGsgDCkDADcDACACQcgAaiANKQMANwMAIAJB0ABqIBYpAwA3AwAgAkHYAGogAEHwCWopAwA3AwAgAkGIAWogAEGgCmopAwA3AwAgAkGAAWogDikDADcDACACQfgAaiAQKQMANwMAIAJB8ABqIBUpAwA3AwAgAkHoAGogDykDADcDACACIAApA/gJNwNgIAJBuAFqIABB0ApqKQMANwMAIAJBsAFqIDcpAwA3AwAgAkGoAWogCikDADcDACACQaABaiATKQMANwMAIAJBmAFqIBkpAwA3AwAgAiAAKQOoCjcDkAEgAkHoAWogAEGAC2opAwA3AwAgAkHgAWogISkDADcDACACQdgBaiASKQMANwMAIAJB0AFqIBEpAwA3AwAgAkHIAWogGykDADcDACACIAApA9gKNwPAASACQZgCaiAAQbALaikDADcDACACQZACaiAaKQMANwMAIAJBiAJqIBcpAwA3AwAgAkGAAmogGCkDADcDACACQfgBaiAdKQMANwMAIAIgACkDiAs3A/ABIAJByAJqIABB4AtqKQMANwMAIAJBwAJqIDspAwA3AwAgAkG4AmogPikDADcDACACQbACaiBAKQMANwMAIAJBqAJqIEEpAwA3AwAgAiAAKQO4CzcDoAIgAkH4AmogAEGQDGopAwA3AwAgAkHwAmogJSkDADcDACACQegCaiAkKQMANwMAIAJB4AJqICIpAwA3AwAgAkHYAmogICkDADcDACACIAApA+gLNwPQAiACQagDaiAAQcAMaikDADcDACACQaADaiApKQMANwMAIAJBmANqICgpAwA3AwAgAkGQA2ogJikDADcDACACQYgDaiAqKQMANwMAIAIgACkDmAw3A4ADIAJB2ANqIABB8AxqKQMANwMAIAJB0ANqIC4pAwA3AwAgAkHIA2ogOSkDADcDACACQcADaiAvKQMANwMAIAJBuANqIC0pAwA3AwAgAiAAKQPIDDcDsAMgAkGIBGogAEGgDWopAwA3AwAgAkGABGogMCkDADcDACACQfgDaiAxKQMANwMAIAJB8ANqIDIpAwA3AwAgAkHoA2ogNCkDADcDACACIAApA/gMNwPgAyACQbgEaiAAQdANaikDADcDACACQbAEaiA1KQMANwMAIAJBqARqIDYpAwA3AwAgAkGgBGogMykDADcDACACQZgEaiA4KQMANwMAIAIgACkDqA03A5AEIARBDDYCCCAEIAI2AgQgBEEMNgIADAMLIABBADYCmAkgAEEQaiAAQQxqIABBmAlqQZCtwQAQ0QQACyAAQQA2ApgJIABBFGogAEEMaiAAQZgJakGgrcEAENEEAAsgACAINgKgCSAAIAI2ApwJIAAgAzYCmAlBhKbBAEErIABBmAlqQbCtwQBBoK7BABD9AwALIABBsCNqJAAMAgtBCEHgABCDBQALQQhBoAIQgwUACyALKAKQCyIABEAgRiAAQTBsEJQFCyALQZgLaiALQZgGaigCADYCACALIAspApAGNwOQCyALKAKgCyIARQ0AIAEgAEEwbBCUBQsgCygClAshAwJAIAsoApgLIgFFBEBBBCEADAELQbnRwgAtAAAaIAFBDGwiAkEEEIsFIgBFDQMgAyECIAAhCSABIQQDQCALQZAGaiACEJsDIAlBCGogC0GYBmooAgA2AgAgCSALKQKQBjcCACAJQQxqIQkgAkEwaiECIARBAWsiBA0ACwsgC0GQBmoQ+AEgCy0AoAkhDCALKAKUCSICBEAgCygCmAkgAkECdBCUBQsCQCALKAKUBiICRQ0AIAIgAkEMbEETakF4cSIEakEJaiICRQ0AIAsoApAGIARrIAIQlAULIAFBDEcEQCAAIQIgASEEDAYLIAAoAgwhASAAKAIIIQIgACgCBCEEIAAoAgAhCSALQZAGaiIIIABBEGpBgAEQrQUaIABBkAEQlAUgCUGAgICAeEYNBSALIAE2AqwLIAsgAjYCqAsgCyAENgKkCyALIAk2AqALIAtBsAtqIAhBgAEQrQUaIAggDCALQaALaiIWEJsBIAtBwAlqIg8gCEGQARCtBRogFiALQaAHakGQARCtBRpBudHCAC0AABpBwARBCBCLBSIARQ0NIAggDxCrAyAAQShqIAtBuAZqIgEpAwA3AwAgAEEgaiALQbAGaiICKQMANwMAIABBGGogC0GoBmoiCSkDADcDACAAQRBqIAtBoAZqIgwpAwA3AwAgAEEIaiALQZgGaiINKQMANwMAIAAgCykDkAY3AwAgCCALQcwJahCrAyAAQdgAaiABKQMANwMAIABB0ABqIAIpAwA3AwAgAEHIAGogCSkDADcDACAAQUBrIAwpAwA3AwAgAEE4aiANKQMANwMAIAAgCykDkAY3AzAgCCALQdgJahCrAyAAQYgBaiABKQMANwMAIABBgAFqIAIpAwA3AwAgAEH4AGogCSkDADcDACAAQfAAaiAMKQMANwMAIABB6ABqIA0pAwA3AwAgACALKQOQBjcDYCAIIAtB5AlqEKsDIABBuAFqIAEpAwA3AwAgAEGwAWogAikDADcDACAAQagBaiAJKQMANwMAIABBoAFqIAwpAwA3AwAgAEGYAWogDSkDADcDACAAIAspA5AGNwOQASAIIAtB8AlqEKsDIABB6AFqIAEpAwA3AwAgAEHgAWogAikDADcDACAAQdgBaiAJKQMANwMAIABB0AFqIAwpAwA3AwAgAEHIAWogDSkDADcDACAAIAspA5AGNwPAASAIIAtB/AlqEKsDIABBmAJqIAEpAwA3AwAgAEGQAmogAikDADcDACAAQYgCaiAJKQMANwMAIABBgAJqIAwpAwA3AwAgAEH4AWogDSkDADcDACAAIAspA5AGNwPwASAIIAtBiApqEKsDIABByAJqIAEpAwA3AwAgAEHAAmogAikDADcDACAAQbgCaiAJKQMANwMAIABBsAJqIAwpAwA3AwAgAEGoAmogDSkDADcDACAAIAspA5AGNwOgAiAIIAtBlApqEKsDIABB+AJqIAEpAwA3AwAgAEHwAmogAikDADcDACAAQegCaiAJKQMANwMAIABB4AJqIAwpAwA3AwAgAEHYAmogDSkDADcDACAAIAspA5AGNwPQAiAIIAtBoApqEKsDIABBqANqIAEpAwA3AwAgAEGgA2ogAikDADcDACAAQZgDaiAJKQMANwMAIABBkANqIAwpAwA3AwAgAEGIA2ogDSkDADcDACAAIAspA5AGNwOAAyAIIAtBrApqEKsDIABB2ANqIAEpAwA3AwAgAEHQA2ogAikDADcDACAAQcgDaiAJKQMANwMAIABBwANqIAwpAwA3AwAgAEG4A2ogDSkDADcDACAAIAspA5AGNwOwAyAIIAtBuApqEKsDIABBiARqIAEpAwA3AwAgAEGABGogAikDADcDACAAQfgDaiAJKQMANwMAIABB8ANqIAwpAwA3AwAgAEHoA2ogDSkDADcDACAAIAspA5AGNwPgAyAIIAtBxApqEKsDIABBuARqIAEpAwA3AwAgAEGwBGogAikDADcDACAAQagEaiAJKQMANwMAIABBoARqIAwpAwA3AwAgAEGYBGogDSkDADcDACAAIAspA5AGNwOQBEG50cIALQAAGkHABEEIEIsFIgRFDQ0gCCAWEKsDIARBKGogASkDADcDACAEQSBqIAIpAwA3AwAgBEEYaiAJKQMANwMAIARBEGogDCkDADcDACAEQQhqIA0pAwA3AwAgBCALKQOQBjcDACAIIAtBrAtqEKsDIARB2ABqIAEpAwA3AwAgBEHQAGogAikDADcDACAEQcgAaiAJKQMANwMAIARBQGsgDCkDADcDACAEQThqIA0pAwA3AwAgBCALKQOQBjcDMCAIIAtBuAtqEKsDIARBiAFqIAEpAwA3AwAgBEGAAWogAikDADcDACAEQfgAaiAJKQMANwMAIARB8ABqIAwpAwA3AwAgBEHoAGogDSkDADcDACAEIAspA5AGNwNgIAggC0HEC2oQqwMgBEG4AWogASkDADcDACAEQbABaiACKQMANwMAIARBqAFqIAkpAwA3AwAgBEGgAWogDCkDADcDACAEQZgBaiANKQMANwMAIAQgCykDkAY3A5ABIAggC0HQC2oQqwMgBEHoAWogASkDADcDACAEQeABaiACKQMANwMAIARB2AFqIAkpAwA3AwAgBEHQAWogDCkDADcDACAEQcgBaiANKQMANwMAIAQgCykDkAY3A8ABIAggC0HcC2oQqwMgBEGYAmogASkDADcDACAEQZACaiACKQMANwMAIARBiAJqIAkpAwA3AwAgBEGAAmogDCkDADcDACAEQfgBaiANKQMANwMAIAQgCykDkAY3A/ABIAggC0HoC2oQqwMgBEHIAmogASkDADcDACAEQcACaiACKQMANwMAIARBuAJqIAkpAwA3AwAgBEGwAmogDCkDADcDACAEQagCaiANKQMANwMAIAQgCykDkAY3A6ACIAggC0H0C2oQqwMgBEH4AmogASkDADcDACAEQfACaiACKQMANwMAIARB6AJqIAkpAwA3AwAgBEHgAmogDCkDADcDACAEQdgCaiANKQMANwMAIAQgCykDkAY3A9ACIAggC0GADGoQqwMgBEGoA2ogASkDADcDACAEQaADaiACKQMANwMAIARBmANqIAkpAwA3AwAgBEGQA2ogDCkDADcDACAEQYgDaiANKQMANwMAIAQgCykDkAY3A4ADIAggC0GMDGoQqwMgBEHYA2ogASkDADcDACAEQdADaiACKQMANwMAIARByANqIAkpAwA3AwAgBEHAA2ogDCkDADcDACAEQbgDaiANKQMANwMAIAQgCykDkAY3A7ADIAggC0GYDGoQqwMgBEGIBGogASkDADcDACAEQYAEaiACKQMANwMAIARB+ANqIAkpAwA3AwAgBEHwA2ogDCkDADcDACAEQegDaiANKQMANwMAIAQgCykDkAY3A+ADIAggC0GkDGoQqwMgBEG4BGogASkDADcDACAEQbAEaiACKQMANwMAIARBqARqIAkpAwA3AwAgBEGgBGogDCkDADcDACAEQZgEaiANKQMANwMAIAQgCykDkAY3A5AEIBYQpQMgDxClAyAIEPgBIAstAKAJIQIgCygClAkiAQRAIAsoApgJIAFBAnQQlAULAkAgCygClAYiAUUNACABIAFBDGxBE2pBeHEiCGpBCWoiAUUNACALKAKQBiAIayABEJQFCwJ/AkACQAJAIAIOAgECAAtBwPXAAEEPQfT2wAAQuQQACyALQQw2AugMIAsgADYC5AwgC0EMNgLgDEEAIQggACEMQQwMAQtBudHCAC0AABpBwARBCBCLBSIBRQ0OIAFBAEGQBBCvBUGQBGoiAkEoakIANwMAIAJBIGpCADcDACACQRhqQgA3AwAgAkEQakIANwMAIAJBCGpCADcDACACQgA3AwAgAUL9/4uAgIDAhPYANwMoIAFCgoCwoLyBgPprNwMgIAFCurGdnvWKpqTfADcDGCABQsWuyYK3ipbn9wA3AxAgAULt2NuS+tLGg9wA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IAggACkDADcDACANIAwpAwA3AwAgDyAWKQMANwMAIBAgFSkDADcDACA3IA4pAwA3AwAgAiALKQOQBjcDACACQTBrIQIgCUEwaiEJIARBAWsiBA0ACwsgC0HYA2ogC0HICWooAgA2AgAgCyALKQLACTcD0AMCQCABRQRAIAsgATYCoAsgC0EMNgLACQwBCyADIAFBMGwQlAUgCyABNgKgCyALQQw2AsAJIAFBDEcNAEEAIQkgC0EANgKYBiALQoCAgICAATcCkAYCQCA+LQAARQRAQQghAgwBCyALQZAGahDYAyALKAKUBiICICopAwA3AwAgAkEIaiAqQQhqKQMANwMAIAJBEGogKkEQaikDADcDACACQRhqICpBGGopAwA3AwAgAkEgaiAqQSBqKQMANwMAIAJBKGogKkEoaikDADcDAEEBIQkgC0EBNgKYBgsgPi0AAQRAIAsoApAGIAlGBEAgC0GQBmoQ2AMgCygClAYhAgsgAiAJQTBsaiIAICpBMGoiASkDADcDACAAQShqIAFBKGopAwA3AwAgAEEgaiABQSBqKQMANwMAIABBGGogAUEYaikDADcDACAAQRBqIAFBEGopAwA3AwAgAEEIaiABQQhqKQMANwMAIAsgCUEBaiIJNgKYBgsgPi0AAgRAIAsoApAGIAlGBEAgC0GQBmoQ2AMgCygClAYhAgsgAiAJQTBsaiIAICpB4ABqIgEpAwA3AwAgAEEoaiABQShqKQMANwMAIABBIGogAUEgaikDADcDACAAQRhqIAFBGGopAwA3AwAgAEEQaiABQRBqKQMANwMAIABBCGogAUEIaikDADcDACALIAlBAWoiCTYCmAYLID4tAAMEQCALKAKQBiAJRgRAIAtBkAZqENgDIAsoApQGIQILIAIgCUEwbGoiACAqQZABaiIBKQMANwMAIABBKGogAUEoaikDADcDACAAQSBqIAFBIGopAwA3AwAgAEEYaiABQRhqKQMANwMAIABBEGogAUEQaikDADcDACAAQQhqIAFBCGopAwA3AwAgCyAJQQFqIgk2ApgGCyA+LQAEBEAgCygCkAYgCUYEQCALQZAGahDYAyALKAKUBiECCyACIAlBMGxqIgAgKkHAAWoiASkDADcDACAAQShqIAFBKGopAwA3AwAgAEEgaiABQSBqKQMANwMAIABBGGogAUEYaikDADcDACAAQRBqIAFBEGopAwA3AwAgAEEIaiABQQhqKQMANwMAIAsgCUEBaiIJNgKYBgsgPi0ABQRAIAsoApAGIAlGBEAgC0GQBmoQ2AMgCygClAYhAgsgAiAJQTBsaiIAICpB8AFqIgEpAwA3AwAgAEEoaiABQShqKQMANwMAIABBIGogAUEgaikDADcDACAAQRhqIAFBGGopAwA3AwAgAEEQaiABQRBqKQMANwMAIABBCGogAUEIaikDADcDACALIAlBAWoiCTYCmAYLID4tAAYEQCALKAKQBiAJRgRAIAtBkAZqENgDIAsoApQGIQILIAIgCUEwbGoiACAqQaACaiIBKQMANwMAIABBKGogAUEoaikDADcDACAAQSBqIAFBIGopAwA3AwAgAEEYaiABQRhqKQMANwMAIABBEGogAUEQaikDADcDACAAQQhqIAFBCGopAwA3AwAgCyAJQQFqIgk2ApgGCyA+LQAHBEAgCygCkAYgCUYEQCALQZAGahDYAyALKAKUBiECCyACIAlBMGxqIgAgKkHQAmoiASkDADcDACAAQShqIAFBKGopAwA3AwAgAEEgaiABQSBqKQMANwMAIABBGGogAUEYaikDADcDACAAQRBqIAFBEGopAwA3AwAgAEEIaiABQQhqKQMANwMAIAsgCUEBaiIJNgKYBgsgPi0ACARAIAsoApAGIAlGBEAgC0GQBmoQ2AMgCygClAYhAgsgAiAJQTBsaiIAICpBgANqIgEpAwA3AwAgAEEoaiABQShqKQMANwMAIABBIGogAUEgaikDADcDACAAQRhqIAFBGGopAwA3AwAgAEEQaiABQRBqKQMANwMAIABBCGogAUEIaikDADcDACALIAlBAWoiCTYCmAYLID4tAAkEQCALKAKQBiAJRgRAIAtBkAZqENgDIAsoApQGIQILIAIgCUEwbGoiACAqQbADaiIBKQMANwMAIABBKGogAUEoaikDADcDACAAQSBqIAFBIGopAwA3AwAgAEEYaiABQRhqKQMANwMAIABBEGogAUEQaikDADcDACAAQQhqIAFBCGopAwA3AwAgCyAJQQFqIgk2ApgGCyA+LQAKBEAgCygCkAYgCUYEQCALQZAGahDYAyALKAKUBiECCyACIAlBMGxqIgAgKkHgA2oiASkDADcDACAAQShqIAFBKGopAwA3AwAgAEEgaiABQSBqKQMANwMAIABBGGogAUEYaikDADcDACAAQRBqIAFBEGopAwA3AwAgAEEIaiABQQhqKQMANwMAIAsgCUEBaiIJNgKYBgsgPi0ACwRAIAsoApAGIAlGBH8gC0GQBmoQ2AMgCygClAYFIAILIAlBMGxqIgAgKkGQBGoiASkDADcDACAAQShqIAFBKGopAwA3AwAgAEEgaiABQSBqKQMANwMAIABBGGogAUEYaikDADcDACAAQRBqIAFBEGopAwA3AwAgAEEIaiABQQhqKQMANwMAIAsgCUEBajYCmAYLIAtB6ANqIAtBmAZqKAIANgIAIAsgCykCkAY3A+ADIAtBkAZqEPgBIAstAKAJIUUgCygClAkiAARAIAsoApgJIABBAnQQlAULAkAgCygClAYiAEUNACAAIABBDGxBE2pBeHEiAWpBCWoiAEUNACALKAKQBiABayAAEJQFCwJAAkACQAJAAkACfwJAAkACQCBFDgIBAgALQcD1wABBD0GI/MAAELkEAAtBCCEBQQghDgJAIAsoAsgDIjdFDQBBACEJIDdBMGwiA0EASCA3QarVqhVLcg0SIAsoAsQDIQxBudHCAC0AABpBCCEJIANBCBCLBSIORQ0SQQAhBCA3IQADQCADIARGDQEgBCAOaiICIAQgDGoiCCkDADcDACACQShqIAhBKGopAwA3AwAgAkEgaiAIQSBqKQMANwMAIAJBGGogCEEYaikDADcDACACQRBqIAhBEGopAwA3AwAgAkEIaiAIQQhqKQMANwMAIARBMGohBCAAQQFrIgANAAsLIAtBkAZqIQogC0GoA2ohCSALQbQDaiEWQQAhBCMAQfAAayIIJAAgCBDoAiALQcADaiIAKAIEIRkCQAJAAkACQAJAIAAoAggiAEUEQEEIIRUMAQtBACECIABBMGwiDUEASCAAQarVqhVLcg0BQbnRwgAtAAAaQQghAiANQQgQiwUiFUUNASAAIQIDQCAEIA1GDQEgBCAVaiIDIAQgGWoiDCkDADcDACADQShqIAxBKGopAwA3AwAgA0EgaiAMQSBqKQMANwMAIANBGGogDEEYaikDADcDACADQRBqIAxBEGopAwA3AwAgA0EIaiAMQQhqKQMANwMAIARBMGohBCACQQFrIgINAAsLIAggADYCSCAIIBU2AkQgCCAANgJAIwBBgAFrIgIkACACQdAAaiAIEOwBIAJBCGogAigCVCIDIAIoAlgQHiACKAJQIgQEQCADIARBMGwQlAULIAJB0ABqIAhBQGsiDBDsASACQRRqIAIoAlQiAyACKAJYEB4gAigCUCIEBEAgAyAEQTBsEJQFCyACQSBqIAIoAgwiFSACKAIQIAIoAhgiECACKAIcECYgAkEsaiACKAIkIhMgAigCKBAfIAJBADoATCACIAIoAjAiDTYCRCACIA0gAigCNEEwbGo2AkggAkE4aiACQcQAahDAAiACKAJAIgRBAk8EQCAEQQF2IQ8gAigCPCIDIARBMGxqQTBrIQQDQCADKQMAIYQBIAMgBCkDADcDACACQfgAaiIbIANBKGoiESkDADcDACACQfAAaiISIANBIGoiISkDADcDACACQegAaiIaIANBGGoiFykDADcDACACQeAAaiIYIANBEGoiHSkDADcDACACQdgAaiIfIANBCGoiIykDADcDACARIARBKGoiESkDADcDACAhIARBIGoiISkDADcDACAXIARBGGoiFykDADcDACAdIARBEGoiHSkDADcDACAjIARBCGoiIykDADcDACACIIQBNwNQIBEgGykDADcDACAhIBIpAwA3AwAgFyAaKQMANwMAIB0gGCkDADcDACAjIB8pAwA3AwAgBCACKQNQNwMAIARBMGshBCADQTBqIQMgD0EBayIPDQALCyAIQQxqIgMgAikCODcCACADQQhqIAJBQGsoAgA2AgAgAigCLCIDBEAgDSADQTBsEJQFCyACKAIgIgMEQCATIANBMGwQlAULIAIoAhQiAwRAIBAgA0EwbBCUBQsgAigCCCIDBEAgFSADQTBsEJQFCyAMKAIAIgMEQCAMKAIEIANBMGwQlAULIAgoAgAiAwRAIAgoAgQgA0EwbBCUBQsgAkGAAWokAEG50cIALQAAGkEYQQQQiwUiDEUNLkEIIRVBCCENAkAgCCgCFCIDRQ0AQQAhAiADQTBsIhNBAEggA0Gq1aoVS3INAiAIKAIQIRtBudHCAC0AABpBCCECIBNBCBCLBSINRQ0CQQAhBCADIQIDQCAEIBNGDQEgBCANaiIPIAQgG2oiECkDADcDACAPQShqIBBBKGopAwA3AwAgD0EgaiAQQSBqKQMANwMAIA9BGGogEEEYaikDADcDACAPQRBqIBBBEGopAwA3AwAg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IANBCBCLBSJGRQ0RQQAhBCAVIQADQCADIARHBEAgBCBGaiIBIAQgCGoiAikDADcDACABQShqIAJBKGopAwA3AwAgAUEgaiACQSBqKQMANwMAIAFBGGogAkEYaikDADcDACABQRBqIAJBEGopAwA3AwAgAUEIaiACQQhqKQMANwMAIARBMGohBCAAQQFrIgANAQsLIAtBgICAgHg2AuwDQQAhBEG50cIALQAAGiADQQgQiwUiDkUNAyAVQTBsIQMgFSEAA0AgAyAERg0BIAQgDmoiASAEIEZqIgIpAwA3AwAgAUEoaiACQShqKQMANwMAIAFBIGogAkEgaikDADcDACABQRhqIAJBGGopAwA3AwAgAUEQaiACQRBqKQMANwMAIAFBCGogAkEIaikDADcDACAEQTBqIQQgAEEBayIADQALCyALIBU2ApgGIAsgDjYClAYgCyAVNgKQBiALQaALaiALQZAGahBwIAtBgARqIAtBqAtqKAIAIgg2AgAgCyALKQKgCzcD+ANBgICAgHghNyALKAL8AyEBIBULIUkCQCAIRQRAQQghCgwBC0EAIQkgCEEwbCIDQQBIIAhBqtWqFUtyDRBBudHCAC0AABpBCCEJIANBCBCLBSIKRQ0QQQAhBCAIIQADQCADIARGDQEgBCAKaiICIAEgBGoiCSkDADcDACACQShqIAlBKGopAwA3AwAgAkEgaiAJQSBqKQMANwMAIAJBGGogCUEYaikDADcDACACQRBqIAlBEGopAwA3AwAgAkEIaiAJQQhqKQMANwMAIARBMGohBCAAQQFrIgANAAsLIAsgCDYCkAQgCyAKNgKMBCALIAg2AogEIAtBADYCnAQgC0KAgICAgAE3ApQEIAsoAogDIRECQCALKAKMAyIbQQdNBEAgG0UEQEF+IQkMBgsgES0AAEH/AUYNASAbQQFGDQQgES0AAUH/AUYNASAbQQJGDQQgES0AAkH/AUYNASAbQQNGDQQgES0AA0H/AUYNASAbQQRGDQQgES0ABEH/AUYNASAbQQVGDQQgES0ABUH/AUYNASAbQQZGDQQgES0ABkH/AUYNAQwECyALIBEgGxC0AyALKAIAQQFGDQAgG0ECayEJDAULID9BwAFsIQQgFCEJA0AgC0GQBmogCRD0ASALKAKcBCIAIAsoApQERgRAIAtBlARqEN0DCyAJQcABaiEJIAsoApgEIABBwAFsaiALQZAGakHAARCtBRogCyAAQQFqNgKcBCAEQcABayIEDQALDAILIAkgDBCDBQALQQggAxCDBQALIBtBAmshCSAbQQFLDQELIAkgG0GU+sAAEJgEAAsCQAJAAkACQAJAAkACQAJAIAkgEWotAAAOAgEAAgtBudHCAC0AABpBJEEEEIsFIgJFDQtBCCENQQghDkEIIRkCQCAIRQ0AQQAhCSAIQTBsIgFBAEggCEGq1aoVS3INA0G50cIALQAAGkEIIQkgAUEIEIsFIg5FDQNBACEEIAghAANAIAEgBEcEQCAEIA5qIgMgBCAKaiIJKQMANwMAIANBKGogCUEoaikDADcDACADQSBqIAlBIGopAwA3AwAgA0EYaiAJQRhqKQMANwMAIANBEGogCUEQaikDADcDACADQQhqIAlBCGopAwA3AwAgBEEwaiEEIABBAWsiAA0BCwtBACEEQbnRwgAtAAAaIAFBCBCLBSIZRQ0EIAhBMGwhCSAIIQADQCAEIAlGDQEgBCAZaiIBIAQgCmoiAykDADcDACABQShqIANBKGopAwA3AwAgAUEgaiADQSBqKQMANwMAIAFBGGogA0EYaikDADcDACABQRBqIANBEGopAwA3AwAgAUEIaiADQQhqKQMANwMAIARBMGohBCAAQQFrIgANAAsLAkAgCygCgAQiAUUNAEEAIQkgAUEwbCIDQQBIIAFBqtWqFUtyDRIgCygC/AMhFkG50cIALQAAGkEIIQkgA0EIEIsFIg1FDRJBACEEIAEhAANAIAMgBEYNASAEIA1qIgkgBCAWaiIMKQMANwMAIAlBKGogDEEoaikDADcDACAJQSBqIAxBIGopAwA3AwAgCUEYaiAMQRhqKQMANwMAIAlBEGogDEEQaikDADcDACAJQQhqIAxBCGopAwA3AwAgBEEwaiEEIABBAWsiAA0ACwsgAiABNgIYIAIgCDYCDCACIAg2AgggAiAONgIEIAIgCDYCACACQSBqIAE2AgAgAkEcaiANNgIAIAJBFGogCDYCACACQRBqIBk2AgAgC0EDNgKMCyALIAI2AogLIAtBAzYChAtBACEJIAtBADYCmAsgC0KAgICAgAE3ApALIAtB3AdqIQMgC0HQB2ohDCAUIQQgBSEAIAYhAQNAIAkgLEYNBSAJICtGDQYgC0GQBmoiAiAEIAEgABCKAiALQaALaiACQcABEK0FGiALQegMaiINIAxBCGooAgA2AgAgC0H4DGoiFiADQQhqKAIANgIAIAsgDCkCADcD4AwgCyADKQIANwPwDCALKAKMCyICIAsoAoQLRgRAIAtBhAtqENwDCyALKAKICyACQQxsaiIPIAspA+AMNwIAIA9BCGogDSgCADYCACALIAJBAWoiDTYCjAsgCygChAsgDUYEQCALQYQLahDcAwsgCygCiAsgDUEMbGoiDSALKQPwDDcCACANQQhqIBYoAgA2AgAgCyACQQJqNgKMCyALKAKYCyICIAsoApALRgRAIAtBkAtqEN0DCyALKAKUCyACQcABbGogC0GgC2pBwAEQrQUaIAsgAkEBajYCmAsgBEHAAWohBCAAQTBqIQAgAUEwaiEBID8gCUEBaiIJRw0ACyALQcAFaiALQYwLaigCADYCACALIAspAoQLNwO4BSALQYCAgIB4NgLACSALQZAGaiALQbgFaiALQcAJaiALQagDaiALQbQDahC/ASALQaQGaiALQZgLaigCACIANgIAIAtBqARqIAtBmAZqKAIANgIAIAtBuARqIAA2AgAgCyALKQKQCyKFATcCnAYgCyALKQKQBjcDoAQgCyCFATcDsAQgC0GwBGohCSALQaAEaiECDAYLIAtBkAZqIAtBiARqIBQgPyAGICwgBSArIAtBqANqIAtBtANqEIMCIAtByARqIAtBmAZqKAIANgIAIAtB2ARqIAtBpAZqKAIANgIAIAsgCykCkAY3A8AEIAsgCykCnAY3A9AEIAtB0ARqIQkgC0HABGohAgwFC0HA9cAAQQ9B+PvAABC5BAALIAkgARCDBQALQQggARCDBQALICwgLEH098AAEJgEAAsgKyArQYT4wAAQmAQACyAIBEAgCiAIQTBsEJQFCyALQZAEaiIXIAJBCGooAgA2AgAgCyACKQIANwOIBCAJKAIIISUgCSgCBCEDIAkoAgAhCQJAIBtBA2siDEEASA0AIAtByAlqIScgC0HEBWohISALQdAHaiESIAtB3AdqISMgC0HMCWohHgNAIAkhFiALIAw2AuAEAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgDCAbSQRAIAwgEWoiAC0AACIBDgIBAwILIAwgG0HE+sAAEJgEAAsgDEUEQCALQZAGaiALQYgEaiADICUgBiAsIAUgKyALQagDaiALQbQDahCDAiALQaAFaiIBIAtBmAZqKAIANgIAIAsgCykCkAY3A5gFIAsoApwGIQkgCygCoAYhACALKAKkBiElIAsoAogEIgIEQCALKAKMBCACQTBsEJQFCyALQZAEaiABKAIANgIAIAsgCykDmAU3A4gEIBZFBEAgACEDDB4LIAMgFkHAAWwQlAUgACEDDB0LIAxBAWsiDyAbTw0DIAsgDyARai0AACIOOgDnBCAORQRAQbnRwgAtAAAaQTBBBBCLBSICRQ0jIAsoAowEIQ0CfyALKAKQBCIARQRAQQghCkEIIRlBCCEOQQghDEEADAELIABBMGwhCEEAIQkgAEGq1aoVSyIQDSUgCEEASCIODSVBudHCAC0AABpBCCEJIAhBCBCLBSIZRQ0lQQAhBCAAIQEDQCAEIAhHBEAgBCAZaiIJIAQgDWoiDCkDADcDACAJQShqIAxBKGopAwA3AwAgCUEgaiAMQSBqKQMANwMAIAlBGGogDEEYaikDADcDACAJQRBqIAxBEGopAwA3AwAgCUEIaiAMQQhqKQMANwMAIARBMGohBCABQQFrIgENAQsLQbnRwgAtAAAaIAhBCBCLBSIKRQ0iQQAhBCAAIQEDQCAEIAhHBEAgBCAKaiIJIAQgDWoiDCkDADcDACAJQShqIAxBKGopAwA3AwAgCUEgaiAMQSBqKQMANwMAIAlBGGogDEEYaikDADcDACAJQRBqIAxBEGopAwA3AwAgCUEIaiAMQQhqKQMANwMAIARBMGohBCABQQFrIgENAQsLIABFBEBBCCEOQQghDCAADAELQQAhCSAOIBByDSVBudHCAC0AABpBCCEJIAhBCBCLBSIORQ0lQQAhBCAAIQEDQCAEIAhHBEAgBCAOaiIJIAQgDWoiDCkDADcDACAJQShqIAxBKGopAwA3AwAgCUEgaiAMQSBqKQMANwMAIAlBGGogDEEYaikDADcDACAJQRBqIAxBEGopAwA3AwAgCUEIaiAMQQhqKQMANwMAIARBMGohBCABQQFrIgENAQsLQbnRwgAtAAAaIAhBCBCLBSIMRQ0iQQAhBCAAIQEDQCAEIAhHBEAgBCAMaiIJIAQgDWoiECkDADcDACAJQShqIBBBKGopAwA3AwAgCUEgaiAQQSBqKQMANwMAIAlBGGogEEEYaikDADcDACAJQRBqIBBBEGopAwA3AwAgCUEIaiAQQQhqKQMANwMAIARBMGohBCABQQFrIgENAQsLIAALIQEgAiAANgIkIAIgADYCGCACIAE2AgwgAiAANgIIIAIgGTYCBCACIAA2AgAgAkEsaiAANgIAIAJBKGogDDYCACACQSBqIAA2AgAgAkEcaiAONgIAIAJBFGogATYCACACQRBqIAo2AgAgC0EENgK8CSALIAI2ArgJIAtBBDYCtAkgC0EANgKMCyALQoCAgICAATcChAsgJQRAQQAhCgJAA0ACQAJAIAogLEcEQCAKICtGDQQgC0GQBmoiACADIApBwAFsaiAGIApBMGwiAWogASAFahCKAyALQcAJaiAAQcABEK0FGiALKALUByEMIAsoAtAHIRAgCygC2AciAQ0BQQghGQwCCyAsICxB1PfAABCYBAALQQAhCSABQTBsIghBAEggAUGq1aoVS3INKEG50cIALQAAGkEIIQkgCEEIEIsFIhlFDShBACEEIAEhAANAIAQgCEYNASAEIBlqIgIgBCAMaiIJKQMANwMAIAJBKGogCUEoaikDADcDACACQSBqIAlBIGopAwA3AwAgAkEYaiAJQRhqKQMANwMAIAJBEGogCUEQaikDADcDACACQQhqIAlBCGopAwA3AwAgBEEwaiEEIABBAWsiAA0ACwsgCygCvAkiACALKAK0CUYEQCALQbQJahDcAwsgCygCuAkgAEEMbGoiAiABNgIIIAIgGTYCBCACIAE2AgAgCyAAQQFqIgI2ArwJIAsoArQJIAJGBEAgC0G0CWoQ3AMLIAsoArgJIAJBDGxqIgIgATYCCCACIAw2AgQgAiAQNgIAIAsgAEECajYCvAkgCygCjAsiACALKAKEC0YEQCALQYQLahDdAwsgCygCiAsgAEHAAWxqIAtBwAlqQcABEK0FGiALIABBAWo2AowLIApBAWoiCiAlRw0AC0EAIQIgC0EANgKYCyALQoCAgICAATcCkAsgBSEEIAYhAEEAIQkMGAsgKyArQeT3wAAQmAQACyALQQA2ApgLIAtCgICAgIABNwKQCwwXCwJAIA5B/wFHIA5BAUdxRQRAIAtBkAZqEPgBIAstAKAJIAsoApQJIgAEQCALKAKYCSAAQQJ0EJQFCwJAIAsoApQGIgBFDQAgACAAQQxsQRNqQXhxIgJqQQlqIgBFDQAgCygCkAYgAmsgABCUBQtFDQELIAtBkAZqIAtBiARqIAMgJSAGICwgBSArIAtBqANqIAtBtANqEIMCIAtBkAVqIgEgC0GYBmooAgA2AgAgCyALKQKQBjcDiAUgCygCnAYhCSALKAKgBiALKAKkBiElIAsoAogEIgIEQCALKAKMBCACQTBsEJQFCyAXIAEoAgA2AgAgCyALKQOIBTcDiAQgAyENIQMgDCEPIBYiEA0YDBsLICVBwAFsIQECQCAlRQRAQQghAgwBCyAlQarVqgVLBEBBACEADBYLQbnRwgAtAAAaQQghACABQQgQiwUiAkUNFQsgC0EANgLICSALIAI2AsQJIAsgJTYCwAkgCyA/NgKkBiALIBQ2AqAGIAtBADYCmAYgCyABIANqNgKUBiALIAM2ApAGIAsgC0GUBGo2AqgGIAsgC0HnBGo2ApwGIAsgAjYCqAsgC0EANgKkCyALICc2AqALIwBBwARrIgEkACALQaALaiIEKAIEIQ0gBCgCACEKAkACQAJAIAtBkAZqIgIoAgAiCCACKAIEIglHBEAgAigCFCEQIAIoAgwhGiACKAIIIgBBwAFsIhggAigCEGohHSAEKAIIIA1BwAFsaiEfIAkgCGtBwAFuIRkgAUHgAGohJCABQZAEaiEEIAFBsANqIQggAUHQAmohCSABQfABaiEMQQAhEyACKAIYIiJBBGohIANAAn8gGi0AAEEBRgRAIAAgEE8NBSABQagDaiATIB1qIgJBKGopAwA3AwAgAUGgA2ogAkEgaikDADcDACABQZgDaiACQRhqKQMANwMAIAFBkANqIAJBEGopAwA3AwAgAUGIA2ogAkEIaikDADcDACAIIAJBMGopAwA3AwAgCEEIaiACQThqKQMANwMAIAhBEGogAkFAaykDADcDACAIQRhqIAJByABqKQMANwMAIAhBIGogAkHQAGopAwA3AwAgCEEoaiACQdgAaikDADcDACABIAIpAwA3A4ADIAFBiARqIAJBiAFqKQMANwMAIAFBgARqIAJBgAFqKQMANwMAIAFB+ANqIAJB+ABqKQMANwMAIAFB8ANqIAJB8ABqKQMANwMAIAFB6ANqIAJB6ABqKQMANwMAIARBKGogAkG4AWopAwA3AwAgBEEgaiACQbABaikDADcDACAEQRhqIAJBqAFqKQMANwMAIARBEGogAkGgAWopAwA3AwAgBEEIaiACQZgBaikDADcDACAEIAJBkAFqKQMANwMAIAEgAkHgAGopAwA3A+ADIAFBgANqIQIgAUHgA2oMAQsgIkEIaigCACICIABNDQMgAUHIAWogICgCACAYaiATaiICQQhqKQMANwMAIAFB0AFqIAJBEGopAwA3AwAgAUHYAWogAkEYaikDADcDACABQeABaiACQSBqKQMANwMAIAFB6AFqIAJBKGopAwA3AwAgDCACQTBqKQMANwMAIAxBCGogAkE4aikDADcDACAMQRBqIAJBQGspAwA3AwAgDEEYaiACQcgAaikDADcDACAMQSBqIAJB0ABqKQMANwMAIAxBKGogAkHYAGopAwA3AwAgASACKQMANwPAASABQcgCaiACQYgBaikDADcDACABQcACaiACQYABaikDADcDACABQbgCaiACQfgAaikDADcDACABQbACaiACQfAAaikDADcDACABQagCaiACQegAaikDADcDACAJQShqIAJBuAFqKQMANwMAIAlBIGogAkGwAWopAwA3AwAgCUEYaiACQagBaikDADcDACAJQRBqIAJBoAFqKQMANwMAIAlBCGogAkGYAWopAwA3AwAgCSACQZABaikDADcDACABIAJB4ABqKQMANwOgAiABQcABaiECIAFBoAJqCyEmIAEgAkHgABCtBSECICQgJkHgABCtBRogEyAfaiACQcABEK0FGiATQcABaiETIABBAWohACANQQFqIQ0gGUEBayIZDQALCyAKIA02AgAgAUHABGokAAwCCyAAIAJB4I3AABCYBAALIAAgEEHQjcAAEJgEAAsgCygCwAkhECALKALECSENIAsoAsgJIR0gC0H4A2ohEyAOQQFHBEAgC0HsA2ohEyALKALsA0GAgICAeEYNBQtBudHCAC0AABpBMEEEEIsFIgJFDSIgCygCjAQhGgJAIAsoApAEIgBFBEBBCCEJQQghCkEIIQhBCCEMDAELQQAhCSAAQTBsIg5BAEggAEGq1aoVS3INJUG50cIALQAAGkEIIQkgDkEIEIsFIgpFDSVBACEEIAAhAQNAIAQgDkcEQCAEIApqIgggBCAaaiIJKQMANwMAIAhBKGogCUEoaikDADcDACAIQSBqIAlBIGopAwA3AwAgCEEYaiAJQRhqKQMANwMAIAhBEGogCUEQaikDADcDACAIQQhqIAlBCGopAwA3AwAgBEEwaiEEIAFBAWsiAQ0BCwtBudHCAC0AABogDkEIEIsFIghFDSZBACEEIAAhAQNAIAQgDkcEQCAEIAhqIgkgBCAaaiIMKQMANwMAIAlBKGogDEEoaikDADcDACAJQSBqIAxBIGopAwA3AwAgCUEYaiAMQRhqKQMANwMAIAlBEGogDEEQaikDADcDACAJQQhqIAxBCGopAwA3AwAgBEEwaiEEIAFBAWsiAQ0BCwtBudHCAC0AABogDkEIEIsFIglFDSZBACEEIAAhAQNAIAQgDkcEQCAEIAlqIgwgBCAaaiIZKQMANwMAIAxBKGogGUEoaikDADcDACAMQSBqIBlBIGopAwA3AwAgDEEYaiAZQRhqKQMANwMAIAxBEGogGUEQaikDADcDACAMQQhqIBlBCGopAwA3AwAgBEEwaiEEIAFBAWsiAQ0BCwtBudHCAC0AABogDkEIEIsFIgxFDSZBACEEIAAhAQNAIAQgDkYNASAEIAxqIhkgBCAaaiIYKQMANwMAIBlBKGogGEEoaikDADcDACAZQSBqIBhBIGopAwA3AwAgGUEYaiAYQRhqKQMANwMAIBlBEGogGEEQaikDADcDACAZQQhqIBhBCGopAwA3AwAgBEEwaiEEIAFBAWsiAQ0ACwsgAiAANgIkIAIgADYCGCACIAA2AgwgAiAANgIIIAIgCjYCBCACIAA2AgAgAkEsaiAANgIAIAJBKGogDDYCACACQSBqIAA2AgAgAkEcaiAJNgIAIAJBFGogADYCACACQRBqIAg2AgAgC0EENgKwCSALIAI2AqwJIAtBBDYCqAkgC0EANgK8CSALQoCAgICAATcCtAkgJUUNEkEAIQoCQANAAkACQCAKICxHBEAgCiArRg0EIAtBkAZqIgAgAyAKQcABbGogBiAKQTBsIgFqIAEgBWoQigMgC0HACWogAEHAARCtBRogCygC1AchDCALKALQByEOIAsoAtgHIgENAUEIIRkMAgsgLCAsQYT5wAAQmAQAC0EAIQkgAUEwbCIIQQBIIAFBqtWqFUtyDSZBudHCAC0AABpBCCEJIAhBCBCLBSIZRQ0mQQAhBCABIQADQCAEIAhGDQEgBCAZaiICIAQgDGoiCSkDADcDACACQShqIAlBKGopAwA3AwAgAkEgaiAJQSBqKQMANwMAIAJBGGogCUEYaikDADcDACACQRBqIAlBEGopAwA3AwAgAkEIaiAJQQhqKQMANwMAIARBMGohBCAAQQFrIgANAAsLIAsoArAJIgAgCygCqAlGBEAgC0GoCWoQ3AMLIAsoAqwJIABBDGxqIgIgATYCCCACIBk2AgQgAiABNgIAIAsgAEEBaiICNgKwCSALKAKoCSACRgRAIAtBqAlqENwDCyALKAKsCSACQQxsaiICIAE2AgggAiAMNgIEIAIgDjYCACALIABBAmo2ArAJIAsoArwJIgAgCygCtAlGBEAgC0G0CWoQ3QMLIAsoArgJIABBwAFsaiALQcAJakHAARCtBRogCyAAQQFqNgK8CSAKQQFqIgogJUcNAAtBACECIAtBADYCjAsgC0KAgICAgAE3AoQLIAUhACAGIQFBACEJDBILICsgK0GU+cAAEJgEAAsgAUH/AUcNAQsgJUHAAWwhAAJAICVFBEBBCCEJDAELICVBqtWqBUsEQEEAIQQMQgtBudHCAC0AABpBCCEEIABBCBCLBSIJRQ1BCyALQQA2AsgJIAsgCTYCxAkgCyAlNgLACSALID82AqwGIAsgFDYCqAYgCyARNgKcBiALQQA2ApgGIAsgACADajYClAYgCyADNgKQBiALIAtBlARqNgKwBiALIAtB4ARqNgKkBiALIBs2AqAGIAsgCTYCqAsgC0EANgKkCyALICc2AqALIwBBwARrIgEkACALQaALaiIEKAIEIRMgBCgCACEZAkACQAJAAkAgC0GQBmoiAigCACIIIAIoAgQiCUcEQCACKAIcIRAgAigCFCEaIAIoAhAhDiACKAIMIRggAigCCCIAQcABbCIdIAIoAhhqIR8gBCgCCCATQcABbGohJCAJIAhrQcABbiEKIAFB4ABqISIgAUGQBGohBCABQbADaiEIIAFB0AJqIQkgAUHwAWohDUEAIQ8gAigCICIgQQRqISYDQCAaKAIAIgIgDk8NAgJ/IAIgGGotAABBAUYEQCAAIBBPDQYgAUGoA2ogDyAfaiICQShqKQMANwMAIAFBoANqIAJBIGopAwA3AwAgAUGYA2ogAkEYaikDADcDACABQZADaiACQRBqKQMANwMAIAFBiANqIAJBCGopAwA3AwAgCCACQTBqKQMANwMAIAhBCGogAkE4aikDADcDACAIQRBqIAJBQGspAwA3AwAgCEEYaiACQcgAaikDADcDACAIQSBqIAJB0ABqKQMANwMAIAhBKGogAkHYAGopAwA3AwAgASACKQMANwOAAyABQYgEaiACQYgBaikDADcDACABQYAEaiACQYABaikDADcDACABQfgDaiACQfgAaikDADcDACABQfADaiACQfAAaikDADcDACABQegDaiACQegAaikDADcDACAEQShqIAJBuAFqKQMANwMAIARBIGogAkGwAWopAwA3AwAgBEEYaiACQagBaikDADcDACAEQRBqIAJBoAFqKQMANwMAIARBCGogAkGYAWopAwA3AwAgBCACQZABaikDADcDACABIAJB4ABqKQMANwPgAyABQYADaiECIAFB4ANqDAELICBBCGooAgAiAiAATQ0EIAFByAFqICYoAgAgHWogD2oiAkEIaikDADcDACABQdABaiACQRBqKQMANwMAIAFB2AFqIAJBGGopAwA3AwAgAUHgAWogAkEgaikDADcDACABQegBaiACQShqKQMANwMAIA0gAkEwaikDADcDACANQQhqIAJBOGopAwA3AwAgDUEQaiACQUBrKQMANwMAIA1BGGogAkHIAGopAwA3AwAgDUEgaiACQdAAaikDADcDACANQShqIAJB2ABqKQMANwMAIAEgAikDADcDwAEgAUHIAmogAkGIAWopAwA3AwAgAUHAAmogAkGAAWopAwA3AwAgAUG4AmogAkH4AGopAwA3AwAgAUGwAmogAkHwAGopAwA3AwAgAUGoAmogAkHoAGopAwA3AwAgCUEoaiACQbgBaikDADcDACAJQSBqIAJBsAFqKQMANwMAIAlBGGogAkGoAWopAwA3AwAgCUEQaiACQaABaikDADcDACAJQQhqIAJBmAFqKQMANwMAIAkgAkGQAWopAwA3AwAgASACQeAAaikDADcDoAIgAUHAAWohAiABQaACagshKCABIAJB4AAQrQUhAiAiIChB4AAQrQUaIA8gJGogAkHAARCtBRogD0HAAWohDyAAQQFqIQAgE0EBaiETIApBAWsiCg0ACwsgGSATNgIAIAFBwARqJAAMAwsgAiAOQfCNwAAQmAQACyAAIAJBkI7AABCYBAALIAAgEEGAjsAAEJgEAAsgCygC4AQiCSAb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CSAEIBhqIhMpAwA3AwAgCUEoaiATQShqKQMANwMAIAlBIGogE0EgaikDADcDACAJQRhqIBNBGGopAwA3AwAgCUEQaiATQRBqKQMANwMAIAlBCGogE0EIaikDADcDACAEQTBqIQQgAUEBayIBDQALCwJAIA8oAggiAUUNAEEAIQkgAUEwbCITQQBIIAFBqtWqFUtyDQMgDygCBCEdQbnRwgAtAAAaQQghCSATQQgQiwUiCkUNA0EAIQQgASEAA0AgBCATRg0BIAQgCmoiCSAEIB1qIg8pAwA3AwAgCUEoaiAPQShqKQMANwMAIAlBIGogD0EgaikDADcDACAJQRhqIA9BGGopAwA3AwAgCUEQaiAPQRBqKQMANwMAIAlBCGogD0EIaikDADcDACAEQTBqIQQgAEEBayIADQALCyAIIAE2AhggCCACNgIMIAggAjYCCCAIIA42AgQgCCACNgIAIAhBIGogATYCACAIQRxqIAo2AgAgCEEUaiACNgIAIAhBEGogGTYCACALQQM2AowLIAsgCDYCiAsgC0EDNgKECyALQQA2ApgLIAtCgICAgIABNwKQCyAlBEBBACEJIAMhBCANIQAgBSEBIAYhDgNAIAkgGkYNBSAJICxGDQYgCSArRg0HIAtBkAZqIgIgBCAAIA4gARD7ASALQaALaiACQcABEK0FGiALQegMaiIIIBJBCGooAgA2AgAgC0H4DGoiDyAjQQhqKAIANgIAIAsgEikCADcD4AwgCyAjKQIANwPwDCALKAKMCyICIAsoAoQLRgRAIAtBhAtqENwDCyALKAKICyACQQxsaiIKIAspA+AMNwIAIApBCGogCCgCADYCACALIAJBAWoiCDYCjAsgCygChAsgCEYEQCALQYQLahDcAwsgCygCiAsgCEEMbGoiCCALKQPwDDcCACAIQQhqIA8oAgA2AgAgCyACQQJqNgKMCyALKAKYCyICIAsoApALRgRAIAtBkAtqEN0DCyALKAKUCyACQcABbGogC0GgC2pBwAEQrQUaIAsgAkEBajYCmAsgBEHAAWohBCAAQcABaiEAIAFBMGohASAOQTBqIQ4gJSAJQQFqIglHDQALCyALQcAFaiALQYwLaigCADYCACALIAspAoQLNwO4BSALQYCAgIB4NgKQBiALQcAJaiALQbgFaiALQZAGaiALQagDaiALQbQD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CykD+AQ3A4gEIBYEQCADIBZBwAFsEJQFCyEDIBBFDQcMBAsMDwsgACABEIMFAAsDQCAJIAsoAowLIgFPDQMgCSAsRg0EIAkgK0cEQCALQZAGaiIBIAsoAogLIAJqIAAgBBCKAyALQaALaiABQcABEK0FGiALQegMaiIIIBJBCGooAgA2AgAgCyASKQIANwPgDCALKAK8CSIBIAsoArQJRgRAIAtBtAlqENwDCyALKAK4CSABQQxsaiIMIAspA+AMNwIAIAxBCGogCCgCADYCACALIAFBAWo2ArwJIAsoApgLIgEgCygCkAtGBEAgC0GQC2oQ3QMLIAsoApQLIAFBwAFsaiALQaALakHAARCtBRogCyABQQFqNgKYCyACQcABaiECIARBMGohBCAAQTBqIQAgJSAJQQFqIglHDQEMAgsLICsgK0HE98AAEJgEAAsgC0H4DGogC0G8CWooAgA2AgAgCyALKQK0CTcD8AwgC0GAgICAeDYCkAYgC0G4BWogC0HwDGogC0GQBmogC0GoA2ogC0G0A2oQvwEgIUEIaiALQZgLaigCADYCACAhIAspApALNwIAIAsoAoQLIgAEQCALKAKICyAAQcABbBCUBQsgC0HwBGoiASALQcAFaigCADYCACALIAspArgFNwPoBCALKALEBSEJIAsoAsgFIAsoAswFISUgCygCiAQiAgRAIA0gAkEwbBCUBQsgFyABKAIANgIAIAsgCykD6AQ3A4gEIAMhDSEDIBYiEEUNAwsgDSAQQcABbBCUBQwCCyAJIAFBpPfAABCYBAALICwgLEG098AAEJgEAAsgD0EBayEMIA9BAEoNAAsLQYCAgIB4IQQgTEGAgICAeEYEQEG50cIALQAAGkEMIQRBDEEBEIsFIgBFDQMgAEIANwABIABBAToAACAAQQhqQQA2AAAgAK1CgICAgMABhCGFAQsgC0GQBmohQSMAQeABayIBJAACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgRQ4CAQIAC0GY2cEAQQ9BqNnBABC5BAALQbnRwgAtAAAaQZABQQQQiwUiJEUNTkG50cIALQAAGkHwAEEIEIsFIiJFDU8gAUGoAWoiDUGEsMEAQQEQwgEgAS0AqAENASABQZ4BaiIWIAFB2AFqIhMpAwAifjcBACABQZYBaiIPIAFB0AFqIgApAwAifzcBACABQcgAaiIQIAFBuAFqIgIpAwAigAE3AQAgAUHQAGoiDiABQcABaiIIKQMAIoEBNwEAIAFB2ABqIgogAUHIAWoiDCkDACKCATcBACABQeAAaiIbIH83AQAgAUHoAGoiESB+NwEAIAEgASkDsAEigwE3AUAgACB+NwMAIAwgfzcDACAIIIIBNwMAIAIggQE3AwAgAUGwAWoiGSCAATcDACABIIMBNwOoASABQTBqIAApAwA3AgAgAUEoaiAMKQMANwIAIAFBIGogCCkDADcCACABQRhqIAIpAwA3AgAgAUEQaiAZKQMANwIAIAEgASkDqAE3AgggDUGFsMEAQQIQwgEgAS0AqAFFDQIgASABLQCpAToAqAFBhKbBAEErIA1BnMXBAEGszMEAEP0DAAtBudHCAC0AABpBkAFBBBCLBSIWRQ1NQbnRwgAtAAAaQfAAQQgQiwUiGUUNTiABQagBaiINQYSwwQBBARDCASABLQCoAQ0CIAFBngFqIg8gAUHYAWoiGykDACJ+NwEAIAFBlgFqIhAgAUHQAWoiACkDACJ/NwEAIAFByABqIg4gAUG4AWoiAikDACKAATcBACABQdAAaiIKIAFBwAFqIggpAwAigQE3AQAgAUHYAGoiEyABQcgBaiIMKQMAIoIBNwEAIAFB4ABqIhIgfzcBACABQegAaiIhIH43AQAgASABKQOwASKDATcBQCAAIH43AwAgDCB/NwMAIAggggE3AwAgAiCBATcDACABQbABaiIRIIABNwMAIAEggwE3A6gBIAFBMGogACkDADcCACABQShqIAwpAwA3AgAgAUEgaiAIKQMANwIAIAFBGGogAikDADcCACABQRBqIBEpAwA3AgAgASABKQOoATcCCCANQczMwQBBARDCASABLQCoAUUNAyABIAEtAKkBOgCoAUGEpsEAQSsgDUGcxcEAQfjYwQAQ/QMACyABIAEtAKkBOgCoAUGEpsEAQSsgAUGoAWpBnMXBAEG8zMEAEP0DAAsgFiATKQMAIn43AQAgDyAAKQMAIn83AQAgECACKQMAIoABNwEAIA4gCCkDACKBATcBACAKIAwpAwAiggE3AQAgGyB/NwEAIBEgfjcBACABIAEpA7ABIoMBNwFAIAFBmAFqIgoiDSB+NwMAIAFBkAFqIhYgfzcDACABQYgBaiIPIIIBNwMAIAFBgAFqIhAggQE3AwAgAUH4AGoiDiCAATcDACABIIMBNwNwIAFB1AFqIh0gDSkDADcCACABQcwBaiIfIBYpAwA3AgAgAUHEAWoiIyAPKQMANwIAIAFBvAFqIicgECkDADcCACABQbQBaiIeIA4pAwA3AgAgASABKQNwNwKsASAiQQA2AgAgIkEGNgI4ICIgASkCBDcCBCAiQQxqIAFBDGopAgA3AgAgIkEUaiABQRRqKQIANwIAICJBHGogAUEcaikCADcCACAiQSRqIAFBJGopAgA3AgAgIkEsaiABQSxqKQIANwIAICJBNGogAUE0aigCADYCACAiQTxqIAEpAqgBNwIAICJBxABqIBkpAgA3AgAgIkHMAGogAikCADcCACAiQdQAaiAIKQIANwIAICJB3ABqIAwpAgA3AgAgIkHkAGogACkCADcCACAiQewAaiATKAIANgIAQbnRwgAtAAAaQfAAQQgQiwUiIEUNTCABQagBaiIZQYewwQBBwAAQwgEgAS0AqAENAiABQZ4BaiIbIAFB2AFqIg0pAwAifjcBACABQZYBaiIRIAFB0AFqIgApAwAifzcBACABQcgAaiISIAFBuAFqIggpAwAigAE3AQAgAUHQAGoiISABQcABaiICKQMAIoEBNwEAIAFB2ABqIhogAUHIAWoiDCkDACKCATcBACABQeAAaiIXIH83AQAgAUHoAGoiGCB+NwEAIAEgASkDsAEigwE3AUAgACB+NwMAIAwgfzcDACACIIIBNwMAIAgggQE3AwAgAUGwAWoiEyCAATcDACABIIMBNwOoASABQTBqIiYgACkDADcCACABQShqIiggDCkDADcCACABQSBqIikgAikDADcCACABQRhqIi4gCCkDADcCACABQRBqIjkgEykDADcCACABIAEpA6gBNwIIIBlBx7DBAEHAABDCASABLQCoAQ0DIBsgDSkDACJ+NwEAIBEgACkDACJ/NwEAIBIgCCkDACKAATcBACAhIAIpAwAigQE3AQAgGiAMKQMAIoIBNwEAIBcgfzcBACAYIH43AQAgASABKQOwASKDATcBQCAKIH43AwAgFiB/NwMAIA8gggE3AwAgECCBATcDACAOIIABNwMAIAEggwE3A3AgHSAKKQMANwIAIB8gFikDADcCACAjIA8pAwA3AgAgJyAQKQMANwIAIB4gDikDADcCACABIAEpA3A3AqwBICBBATYCACAgQQc2AjggICABKQIENwIEICBBDGogAUEMaikCADcCACAgQRRqIAFBFGopAgA3AgAgIEEcaiABQRxqKQIANwIAICBBJGogAUEkaikCADcCACAgQSxqIAFBLGopAgA3AgAgIEE0aiABQTRqKAIANgIAICBBPGogASkCqAE3AgAgIEHEAGogEykCADcCACAgQcwAaiAIKQIANwIAICBB1ABqIAIpAgA3AgAgIEHcAGogDCkCADcCACAgQeQAaiAAKQIANwIAICBB7ABqIA0oAgA2AgBBudHCAC0AABpB8ABBCBCLBSIvRQ1MIBlBh7HBAEHAABDCASABLQCoAQ0EIBsgDSkDACJ+NwEAIBEgACkDACJ/NwEAIBIgCCkDACKAATcBACAhIAIpAwAigQE3AQAgGiAMKQMAIoIBNwEAIBcgfzcBACAYIH43AQAgASABKQOwASKDATcBQCAAIH43AwAgDCB/NwMAIAIgggE3AwAgCCCBATcDACATIIABNwMAIAEggwE3A6gBICYgACkDADcCACAoIAwpAwA3AgAgKSACKQMANwIAIC4gCCkDADcCACA5IBMpAwA3AgAgASABKQOoATcCCCAZQcexwQBBPxDCASABLQCoAQ0FIBsgDSkDACJ+NwEAIBEgACkDACJ/NwEAIBIgCCkDACKAATcBACAhIAIpAwAigQE3AQAgGiAMKQMAIoIBNwEAIBcgfzcBACAYIH43AQAgASABKQOwASKDATcBQCAKIH43AwAgFiB/NwMAIA8gggE3AwAgECCBATcDACAOIIABNwMAIAEggwE3A3AgHSAKKQMANwIAIB8gFikDADcCACAjIA8pAwA3AgAgJyAQKQMANwIAIB4gDikDADcCACABIAEpA3A3AqwBIC9BAjYCACAvQQg2AjggLyABKQIENwIEIC9BDGogAUEMaikCADcCACAvQRRqIAFBFGopAgA3AgAgL0EcaiABQRxqKQIANwIAIC9BJGogAUEkaikCADcCACAvQSxqIAFBLGopAgA3AgAgL0E0aiABQTRqKAIANgIAIC9BPGogASkCqAE3AgAgL0HEAGogEykCADcCACAvQcwAaiAIKQIANwIAIC9B1ABqIAIpAgA3AgAgL0HcAGogDCkCADcCACAvQeQAaiAAKQIANwIAIC9B7ABqIA0oAgA2AgBBudHCAC0AABpB8ABBCBCLBSItRQ1MIBlBhrLBAEHAABDCASABLQCoAQ0GIBsgDSkDACJ+NwEAIBEgACkDACJ/NwEAIBIgCCkDACKAATcBACAhIAIpAwAigQE3AQAgGiAMKQMAIoIBNwEAIBcgfzcBACAYIH43AQAgASABKQOwASKDATcBQCAAIH43AwAgDCB/NwMAIAIgggE3AwAgCCCBATcDACATIIABNwMAIAEggwE3A6gBICYgACkDADcCACAoIAwpAwA3AgAgKSACKQMANwIAIC4gCCkDADcCACA5IBMpAwA3AgAgASABKQOoATcCCCAZQcaywQBBwAAQwgEgAS0AqAENByAbIA0pAwAifjcBACARIAApAwAifzcBACASIAgpAwAigAE3AQAgISACKQMAIoEBNwEAIBogDCkDACKCATcBACAXIH83AQAgGCB+NwEAIAEgASkDsAEigwE3AUAgCiB+NwMAIBYgfzcDACAPIIIBNwMAIBAggQE3AwAgDiCAATcDACABIIMBNwNwIB0gCikDADcCACAfIBYpAwA3AgAgIyAPKQMANwIAICcgECkDADcCACAeIA4pAwA3AgAgASABKQNwNwKsASAtQQM2AgAgLUEJNgI4IC0gASkCBDcCBCAtQQxqIAFBDGopAgA3AgAgLUEUaiABQRRqKQIANwIAIC1BHGogAUEcaikCADcCACAtQSRqIAFBJGopAgA3AgAgLUEsaiABQSxqKQIANwIAIC1BNGogAUE0aigCADYCACAtQTxqIAEpAqgBNwIAIC1BxABqIBMpAgA3AgAgLUHMAGogCCkCADcCACAtQdQAaiACKQIANwIAIC1B3ABqIAwpAgA3AgAgLUHkAGogACkCADcCACAtQewAaiANKAIANgIAQbnRwgAtAAAaQfAAQQgQiwUiMEUNTCAZQYazwQBBwAAQwgEgAS0AqAENCCAbIA0pAwAifjcBACARIAApAwAifzcBACASIAgpAwAigAE3AQAgISACKQMAIoEBNwEAIBogDCkDACKCATcBACAXIH83AQAgGCB+NwEAIAEgASkDsAEigwE3AUAgACB+NwMAIAwgfzcDACACIIIBNwMAIAgggQE3AwAgEyCAATcDACABIIMBNwOoASAmIAApAwA3AgAgKCAMKQMANwIAICkgAikDADcCACAuIAgpAwA3AgAgOSATKQMANwIAIAEgASkDqAE3AgggGUHGs8EAQT8QwgEgAS0AqAENCSAbIA0pAwAifjcBACARIAApAwAifzcBACASIAgpAwAigAE3AQAgISACKQMAIoEBNwEAIBogDCkDACKCATcBACAXIH83AQAgGCB+NwEAIAEgASkDsAEigwE3AUAgCiB+NwMAIBYgfzcDACAPIIIBNwMAIBAggQE3AwAgDiCAATcDACABIIMBNwNwIB0gCikDADcCACAfIBYpAwA3AgAgIyAPKQMANwIAICcgECkDADcCACAeIA4pAwA3AgAgASABKQNwNwKsASAwQQQ2AgAgMEEKNgI4IDAgASkCBDcCBCAwQQxqIAFBDGopAgA3AgAgMEEUaiABQRRqKQIANwIAIDBBHGogAUEcaikCADcCACAwQSRqIAFBJGopAgA3AgAgMEEsaiABQSxqKQIANwIAIDBBNGogAUE0aigCADYCACAwQTxqIAEpAqgBNwIAIDBBxABqIBMpAgA3AgAgMEHMAGogCCkCADcCACAwQdQAaiACKQIANwIAIDBB3ABqIAwpAgA3AgAgMEHkAGogACkCADcCACAwQewAaiANKAIANgIAQbnRwgAtAAAaQfAAQQgQiwUiMUUNTCAZQYW0wQBBwAAQwgEgAS0AqAENCiAbIA0pAwAifjcBACARIAApAwAifzcBACASIAgpAwAigAE3AQAgISACKQMAIoEBNwEAIBogDCkDACKCATcBACAXIH83AQAgGCB+NwEAIAEgASkDsAEigwE3AUAgACB+NwMAIAwgfzcDACACIIIBNwMAIAgggQE3AwAgEyCAATcDACABIIMBNwOoASAmIAApAwA3AgAgKCAMKQMANwIAICkgAikDADcCACAuIAgpAwA3AgAgOSATKQMANwIAIAEgASkDqAE3AgggGUHFtMEAQcAAEMIBIAEtAKgBDQsgGyANKQMAIn43AQAgESAAKQMAIn83AQAgEiAIKQMAIoABNwEAICEgAikDACKBATcBACAaIAwpAwAiggE3AQAgFyB/NwEAIBggfjcBACABIAEpA7ABIoMBNwFAIAogfjcDACAWIH83AwAgDyCCATcDACAQIIEBNwMAIA4ggAE3AwAgASCDATcDcCAdIAopAwA3AgAgHyAWKQMANwIAICMgDykDADcCACAnIBApAwA3AgAgHiAOKQMANwIAIAEgASkDcDcCrAEgMUEFNgIAIDFBCzYCOCAxIAEpAgQ3AgQgMUEMaiABQQxqKQIANwIAIDFBFGogAUEUaikCADcCACAxQRxqIAFBHGopAgA3AgAgMUEkaiABQSRqKQIANwIAIDFBLGogAUEsaikCADcCACAxQTRqIAFBNGooAgA2AgAgMUE8aiABKQKoATcCACAxQcQAaiATKQIANwIAIDFBzABqIAgpAgA3AgAgMUHUAGogAikCADcCACAxQdwAaiAMKQIANwIAIDFB5ABqIAApAgA3AgAgMUHsAGogDSgCADYCAEG50cIALQAAGkE4QQgQiwUiOEUNTSAZQYW1wQBBwAAQwgEgAS0AqAENDCAbIA0pAwAifjcBACARIAApAwAifzcBACASIAgpAwAigAE3AQAgISACKQMAIoEBNwEAIBogDCkDACKCATcBACAXIH83AQAgGCB+NwEAIAEgASkDsAEigwE3AUAgCiB+NwMAIBYgfzcDACAPIIIBNwMAIBAggQE3AwAgDiCAATcDACABIIMBNwNwIB0gCikDADcCACAfIBYpAwA3AgAgIyAPKQMANwIAICcgECkDADcCACAeIA4pAwA3AgAgASABKQNwNwKsASA4QQY2AgAgOCABKQKoATcCBCA4QQxqIBMpAgA3AgAgOEEUaiAIKQIANwIAIDhBHGogAikCADcCACA4QSRqIAwpAgA3AgAgOEEsaiAAKQIANwIAIDhBNGogDSgCADYCAEG50cIALQAAGkHwAEEIEIsFIjJFDUwgGUHFtcEAQcAAEMIBIAEtAKgBDQ0gGyANKQMAIn43AQAgESAAKQMAIn83AQAgEiAIKQMAIoABNwEAICEgAikDACKBATcBACAaIAwpAwAiggE3AQAgFyB/NwEAIBggfjcBACABIAEpA7ABIoMBNwFAIAAgfjcDACAMIH83AwAgAiCCATcDACAIIIEBNwMAIBMggAE3AwAgASCDATcDqAEgJiAAKQMANwIAICggDCkDADcCACApIAIpAwA3AgAgLiAIKQMANwIAIDkgEykDADcCACABIAEpA6gBNwIIIBlBhbbBAEHAABDCASABLQCoAQ0OIBsgDSkDACJ+NwEAIBEgACkDACJ/NwEAIBIgCCkDACKAATcBACAhIAIpAwAigQE3AQAgGiAMKQMAIoIBNwEAIBcgfzcBACAYIH43AQAgASABKQOwASKDATcBQCAKIH43AwAgFiB/NwMAIA8gggE3AwAgECCBATcDACAOIIABNwMAIAEggwE3A3AgHSAKKQMANwIAIB8gFikDADcCACAjIA8pAwA3AgAgJyAQKQMANwIAIB4gDikDADcCACABIAEpA3A3AqwBIDJBATYCACAyQQc2AjggMiABKQIENwIEIDJBDGogAUEMaikCADcCACAyQRRqIAFBFGopAgA3AgAgMkEcaiABQRxqKQIANwIAIDJBJGogAUEkaikCADcCACAyQSxqIAFBLGopAgA3AgAgMkE0aiABQTRqKAIANgIAIDJBPGogASkCqAE3AgAgMkHEAGogEykCADcCACAyQcwAaiAIKQIANwIAIDJB1ABqIAIpAgA3AgAgMkHcAGogDCkCADcCACAyQeQAaiAAKQIANwIAIDJB7ABqIA0oAgA2AgBBudHCAC0AABpB8ABBCBCLBSI0RQ1MIBlBxbbBAEHAABDCASABLQCoAQ0PIBsgDSkDACJ+NwEAIBEgACkDACJ/NwEAIBIgCCkDACKAATcBACAhIAIpAwAigQE3AQAgGiAMKQMAIoIBNwEAIBcgfzcBACAYIH43AQAgASABKQOwASKDATcBQCAAIH43AwAgDCB/NwMAIAIgggE3AwAgCCCBATcDACATIIABNwMAIAEggwE3A6gBICYgACkDADcCACAoIAwpAwA3AgAgKSACKQMANwIAIC4gCCkDADcCACA5IBMpAwA3AgAgASABKQOoATcCCCAZQYW3wQBBPxDCASABLQCoAQ0QIBsgDSkDACJ+NwEAIBEgACkDACJ/NwEAIBIgCCkDACKAATcBACAhIAIpAwAigQE3AQAgGiAMKQMAIoIBNwEAIBcgfzcBACAYIH43AQAgASABKQOwASKDATcBQCAKIH43AwAgFiB/NwMAIA8gggE3AwAgECCBATcDACAOIIABNwMAIAEggwE3A3AgHSAKKQMANwIAIB8gFikDADcCACAjIA8pAwA3AgAgJyAQKQMANwIAIB4gDikDADcCACABIAEpA3A3AqwBIDRBAjYCACA0QQg2AjggNCABKQIENwIEIDRBDGogAUEMaikCADcCACA0QRRqIAFBFGopAgA3AgAgNEEcaiABQRxqKQIANwIAIDRBJGogAUEkaikCADcCACA0QSxqIAFBLGopAgA3AgAgNEE0aiABQTRqKAIANgIAIDRBPGogASkCqAE3AgAgNEHEAGogEykCADcCACA0QcwAaiAIKQIANwIAIDRB1ABqIAIpAgA3AgAgNEHcAGogDCkCADcCACA0QeQAaiAAKQIANwIAIDRB7ABqIA0oAgA2AgBBudHCAC0AABpB8ABBCBCLBSI1RQ1MIBlBxLfBAEE/EMIBIAEtAKgBDREgGyANKQMAIn43AQAgESAAKQMAIn83AQAgEiAIKQMAIoABNwEAICEgAikDACKBATcBACAaIAwpAwAiggE3AQAgFyB/NwEAIBggfjcBACABIAEpA7ABIoMBNwFAIAAgfjcDACAMIH83AwAgAiCCATcDACAIIIEBNwMAIBMggAE3AwAgASCDATcDqAEgJiAAKQMANwIAICggDCkDADcCACApIAIpAwA3AgAgLiAIKQMANwIAIDkgEykDADcCACABIAEpA6gBNwIIIBlBg7jBAEE/EMIBIAEtAKgBDRIgGyANKQMAIn43AQAgESAAKQMAIn83AQAgEiAIKQMAIoABNwEAICEgAikDACKBATcBACAaIAwpAwAiggE3AQAgFyB/NwEAIBggfjcBACABIAEpA7ABIoMBNwFAIAogfjcDACAWIH83AwAgDyCCATcDACAQIIEBNwMAIA4ggAE3AwAgASCDATcDcCAdIAopAwA3AgAgHyAWKQMANwIAICMgDykDADcCACAnIBApAwA3AgAgHiAOKQMANwIAIAEgASkDcDcCrAEgNUEDNgIAIDVBCTYCOCA1IAEpAgQ3AgQgNUEMaiABQQxqKQIANwIAIDVBFGogAUEUaikCADcCACA1QRxqIAFBHGopAgA3AgAgNUEkaiABQSRqKQIANwIAIDVBLGogAUEsaikCADcCACA1QTRqIAFBNGooAgA2AgAgNUE8aiABKQKoATcCACA1QcQAaiATKQIANwIAIDVBzABqIAgpAgA3AgAgNUHUAGogAikCADcCACA1QdwAaiAMKQIANwIAIDVB5ABqIAApAgA3AgAgNUHsAGogDSgCADYCAEG50cIALQAAGkHwAEEIEIsFIjZFDUwgGUHCuMEAQcAAEMIBIAEtAKgBDRMgGyANKQMAIn43AQAgESAAKQMAIn83AQAgEiAIKQMAIoABNwEAICEgAikDACKBATcBACAaIAwpAwAiggE3AQAgFyB/NwEAIBggfjcBACABIAEpA7ABIoMBNwFAIAAgfjcDACAMIH83AwAgAiCCATcDACAIIIEBNwMAIBMggAE3AwAgASCDATcDqAEgJiAAKQMANwIAICggDCkDADcCACApIAIpAwA3AgAgLiAIKQMANwIAIDkgEykDADcCACABIAEpA6gBNwIIIBlBgrnBAEE/EMIBIAEtAKgBDRQgGyANKQMAIn43AQAgESAAKQMAIn83AQAgEiAIKQMAIoABNwEAICEgAikDACKBATcBACAaIAwpAwAiggE3AQAgFyB/NwEAIBggfjcBACABIAEpA7ABIoMBNwFAIAogfjcDACAWIH83AwAgDyCCATcDACAQIIEBNwMAIA4ggAE3AwAgASCDATcDcCAdIAopAwA3AgAgHyAWKQMANwIAICMgDykDADcCACAnIBApAwA3AgAgHiAOKQMANwIAIAEgASkDcDcCrAEgNkEENgIAIDZBCjYCOCA2IAEpAgQ3AgQgNkEMaiABQQxqKQIANwIAIDZBFGogAUEUaikCADcCACA2QRxqIAFBHGopAgA3AgAgNkEkaiABQSRqKQIANwIAIDZBLGogAUEsaikCADcCACA2QTRqIAFBNGooAgA2AgAgNkE8aiABKQKoATcCACA2QcQAaiATKQIANwIAIDZBzABqIAgpAgA3AgAgNkHUAGogAikCADcCACA2QdwAaiAMKQIANwIAIDZB5ABqIAApAgA3AgAgNkHsAGogDSgCADYCAEG50cIALQAAGkHwAEEIEIsFIjNFDUwgGUHBucEAQcAAEMIBIAEtAKgBDRUgGyANKQMAIn43AQAgESAAKQMAIn83AQAgEiAIKQMAIoABNwEAICEgAikDACKBATcBACAaIAwpAwAiggE3AQAgFyB/NwEAIBggfjcBACABIAEpA7ABIoMBNwFAIAAgfjcDACAMIH83AwAgAiCCATcDACAIIIEBNwMAIBMggAE3AwAgASCDATcDqAEgJiAAKQMANwIAICggDCkDADcCACApIAIpAwA3AgAgLiAIKQMANwIAIDkgEykDADcCACABIAEpA6gBNwIIIBlBgbrBAEHAABDCASABLQCoAQ0WIBsgDSkDACJ+NwEAIBEgACkDACJ/NwEAIBIgCCkDACKAATcBACAhIAIpAwAigQE3AQAgGiAMKQMAIoIBNwEAIBcgfzcBACAYIH43AQAgASABKQOwASKDATcBQCAKIH43AwAgFiB/NwMAIA8gggE3AwAgECCBATcDACAOIIABNwMAIAEggwE3A3AgHSAKKQMANwIAIB8gFikDADcCACAjIA8pAwA3AgAgJyAQKQMANwIAIB4gDikDADcCACABIAEpA3A3AqwBIDNBBTYCACAzQQs2AjggMyABKQIENwIEIDNBDGogAUEMaikCADcCACAzQRRqIAFBFGopAgA3AgAgM0EcaiABQRxqKQIANwIAIDNBJGogAUEkaikCADcCACAzQSxqIAFBLGopAgA3AgAgM0E0aiABQTRqKAIANgIAIDNBPGogASkCqAE3AgAgM0HEAGogEykCADcCACAzQcwAaiAIKQIANwIAIDNB1ABqIAIpAgA3AgAgM0HcAGogDCkCADcCACAzQeQAaiAAKQIANwIAIDNB7ABqIA0oAgA2AgAgJEGMAWpBAjYCACAkQYgBaiAzNgIAICRBgAFqQoKAgIAgNwIAICRB/ABqIDY2AgAgJEH0AGpCgoCAgCA3AgAgJEHwAGogNTYCACAkQegAakKCgICAIDcCACAkQeQAaiA0NgIAICRB3ABqQoKAgIAgNwIAICRB2ABqIDI2AgAgJEHQAGpCgYCAgCA3AgAgJEHMAGogODYCACAkQcQAakKCgICAEDcCACAkQUBrIDE2AgAgJEE4akKCgICAIDcCACAkQTRqIDA2AgAgJEEsakKCgICAIDcCACAkQShqIC02AgAgJEEgakKCgICAIDcCACAkQRxqIC82AgAgJEEUakKCgICAIDcCACAkQRBqICA2AgAgJEKCgICAIDcCCCAkICI2AgQgJEECNgIAQbnRwgAtAAAaQZABQQQQiwUiIkUNS0G50cIALQAAGkE4QQgQiwUiIEUNTSAZQYSwwQBBARDCASABLQCoAQ0XIBsgDSkDACJ+NwEAIBEgACkDACJ/NwEAIBIgCCkDACKAATcBACAhIAIpAwAigQE3AQAgGiAMKQMAIoIBNwEAIBcgfzcBACAYIH43AQAgASABKQOwASKDATcBQCAKIH43AwAgFiB/NwMAIA8gggE3AwAgECCBATcDACAOIIABNwMAIAEggwE3A3AgHSAKKQMANwIAIB8gFikDADcCACAjIA8pAwA3AgAgJyAQKQMANwIAIB4gDikDADcCACABIAEpA3A3AqwBICBBADYCACAgIAEpAqgBNwIEICBBDGogEykCADcCACAgQRRqIAgpAgA3AgAgIEEcaiACKQIANwIAICBBJGogDCkCADcCACAgQSxqIAApAgA3AgAgIEE0aiANKAIANgIAQbnRwgAtAAAaQThBCBCLBSIvRQ1NIBlBwbrBAEHAABDCASABLQCoAQ0YIBsgDSkDACJ+NwEAIBEgACkDACJ/NwEAIBIgCCkDACKAATcBACAhIAIpAwAigQE3AQAgGiAMKQMAIoIBNwEAIBcgfzcBACAYIH43AQAgASABKQOwASKDATcBQCAKIH43AwAgFiB/NwMAIA8gggE3AwAgECCBATcDACAOIIABNwMAIAEggwE3A3AgHSAKKQMANwIAIB8gFikDADcCACAjIA8pAwA3AgAgJyAQKQMANwIAIB4gDikDADcCACABIAEpA3A3AqwBIC9BATYCACAvIAEpAqgBNwIEIC9BDGogEykCADcCACAvQRRqIAgpAgA3AgAgL0EcaiACKQIANwIAIC9BJGogDCkCADcCACAvQSxqIAApAgA3AgAgL0E0aiANKAIANgIAQbnRwgAtAAAaQThBCBCLBSItRQ1NIBlBgbvBAEHAABDCASABLQCoAQ0ZIBsgDSkDACJ+NwEAIBEgACkDACJ/NwEAIBIgCCkDACKAATcBACAhIAIpAwAigQE3AQAgGiAMKQMAIoIBNwEAIBcgfzcBACAYIH43AQAgASABKQOwASKDATcBQCAKIH43AwAgFiB/NwMAIA8gggE3AwAgECCBATcDACAOIIABNwMAIAEggwE3A3AgHSAKKQMANwIAIB8gFikDADcCACAjIA8pAwA3AgAgJyAQKQMANwIAIB4gDikDADcCACABIAEpA3A3AqwBIC1BAjYCACAtIAEpAqgBNwIEIC1BDGogEykCADcCACAtQRRqIAgpAgA3AgAgLUEcaiACKQIANwIAIC1BJGogDCkCADcCACAtQSxqIAApAgA3AgAgLUE0aiANKAIANgIAQbnRwgAtAAAaQThBCBCLBSIwRQ1NIBlBhbXBAEHAABDCASABLQCoAQ0aIBsgDSkDACJ+NwEAIBEgACkDACJ/NwEAIBIgCCkDACKAATcBACAhIAIpAwAigQE3AQAgGiAMKQMAIoIBNwEAIBcgfzcBACAYIH43AQAgASABKQOwASKDATcBQCAKIH43AwAgFiB/NwMAIA8gggE3AwAgECCBATcDACAOIIABNwMAIAEggwE3A3AgHSAKKQMANwIAIB8gFikDADcCACAjIA8pAwA3AgAgJyAQKQMANwIAIB4gDikDADcCACABIAEpA3A3AqwBIDBBAzYCACAwIAEpAqgBNwIEIDBBDGogAUGwAWopAgA3AgAgMEEUaiAIKQIANwIAIDBBHGogAikCADcCACAwQSRqIAwpAgA3AgAgMEEsaiAAKQIANwIAIDBBNGogDSgCADYCAEG50cIALQAAGkE4QQgQiwUiMUUNTSAZQcG7wQBBMBDCASABLQCoAQ0bIBsgDSkDACJ+NwEAIBEgACkDACJ/NwEAIBIgCCkDACKAATcBACAhIAIpAwAigQE3AQAgGiAMKQMAIoIBNwEAIBcgfzcBACAYIH43AQAgASABKQOwASKDATcBQCAKIH43AwAgFiB/NwMAIA8gggE3AwAgECCBATcDACAOIIABNwMAIAEggwE3A3AgHSAKKQMANwIAIB8gFikDADcCACAjIA8pAwA3AgAgJyAQKQMANwIAIB4gDikDADcCACABIAEpA3A3AqwBIDFBBDYCACAxIAEpAqgBNwIEIDFBDGogAUGwAWopAgA3AgAgMUEUaiAIKQIANwIAIDFBHGogAikCADcCACAxQSRqIAwpAgA3AgAgMUEsaiAAKQIANwIAIDFBNGogDSgCADYCAEG50cIALQAAGkE4QQgQiwUiMkUNTSAZQfG7wQBBMBDCASABLQCoAQ0cIBsgDSkDACJ+NwEAIBEgACkDACJ/NwEAIBIgCCkDACKAATcBACAhIAIpAwAigQE3AQAgGiAMKQMAIoIBNwEAIBcgfzcBACAYIH43AQAgASABKQOwASKDATcBQCAKIH43AwAgFiB/NwMAIA8gggE3AwAgECCBATcDACAOIIABNwMAIAEggwE3A3AgHSAKKQMANwIAIB8gFikDADcCACAjIA8pAwA3AgAgJyAQKQMANwIAIB4gDikDADcCACABIAEpA3A3AqwBIDJBBTYCACAyIAEpAqgBNwIEIDJBDGogAUGwAWopAgA3AgAgMkEUaiAIKQIANwIAIDJBHGogAikCADcCACAyQSRqIAwpAgA3AgAgMkEsaiAAKQIANwIAIDJBNGogDSgCADYCAEG50cIALQAAGkE4QQgQiwUiNEUNTSAZQYSwwQBBARDCASABLQCoAQ0dIBsgDSkDACJ+NwEAIBEgACkDACJ/NwEAIBIgCCkDACKAATcBACAhIAIpAwAigQE3AQAgGiAMKQMAIoIBNwEAIBcgfzcBACAYIH43AQAgASABKQOwASKDATcBQCAKIH43AwAgFiB/NwMAIA8gggE3AwAgECCBATcDACAOIIABNwMAIAEggwE3A3AgHSAKKQMANwIAIB8gFikDADcCACAjIA8pAwA3AgAgJyAQKQMANwIAIB4gDikDADcCACABIAEpA3A3AqwBIDRBBjYCACA0IAEpAqgBNwIEIDRBDGogAUGwAWopAgA3AgAgNEEUaiAIKQIANwIAIDRBHGogAikCADcCACA0QSRqIAwpAgA3AgAgNEEsaiAAKQIANwIAIDRBNGogDSgCADYCAEG50cIALQAAGkE4QQgQiwUiNUUNTSAZQcG6wQBBwAAQwgEgAS0AqAENHiAbIA0pAwAifjcBACARIAApAwAifzcBACASIAgpAwAigAE3AQAgISACKQMAIoEBNwEAIBogDCkDACKCATcBACAXIH83AQAgGCB+NwEAIAEgASkDsAEigwE3AUAgCiB+NwMAIBYgfzcDACAPIIIBNwMAIBAggQE3AwAgDiCAATcDACABIIMBNwNwIB0gCikDADcCACAfIBYpAwA3AgAgIyAPKQMANwIAICcgECkDADcCACAeIA4pAwA3AgAgASABKQNwNwKsASA1QQc2AgAgNSABKQKoATcCBCA1QQxqIAFBsAFqKQIANwIAIDVBFGogCCkCADcCACA1QRxqIAIpAgA3AgAgNUEkaiAMKQIANwIAIDVBLGogACkCADcCACA1QTRqIA0oAgA2AgBBudHCAC0AABpBOEEIEIsFIjZFDU0gGUGBu8EAQcAAEMIBIAEtAKgBDR8gGyANKQMAIn43AQAgESAAKQMAIn83AQAgEiAIKQMAIoABNwEAICEgAikDACKBATcBACAaIAwpAwAiggE3AQAgFyB/NwEAIBggfjcBACABIAEpA7ABIoMBNwFAIAogfjcDACAWIH83AwAgDyCCATcDACAQIIEBNwMAIA4ggAE3AwAgASCDATcDcCAdIAopAwA3AgAgHyAWKQMANwIAICMgDykDADcCACAnIBApAwA3AgAgHiAOKQMANwIAIAEgASkDcDcCrAEgNkEINgIAIDYgASkCqAE3AgQgNkEMaiABQbABaikCADcCACA2QRRqIAgpAgA3AgAgNkEcaiACKQIANwIAIDZBJGogDCkCADcCACA2QSxqIAApAgA3AgAgNkE0aiANKAIANgIAQbnRwgAtAAAaQThBCBCLBSIzRQ1NIBlBhbXBAEHAABDCASABLQCoAQ0gIBsgDSkDACJ+NwEAIBEgACkDACJ/NwEAIBIgCCkDACKAATcBACAhIAIpAwAigQE3AQAgGiAMKQMAIoIBNwEAIBcgfzcBACAYIH43AQAgASABKQOwASKDATcBQCAKIH43AwAgFiB/NwMAIA8gggE3AwAgECCBATcDACAOIIABNwMAIAEggwE3A3AgHSAKKQMANwIAIB8gFikDADcCACAjIA8pAwA3AgAgJyAQKQMANwIAIB4gDikDADcCACABIAEpA3A3AqwBIDNBCTYCACAzIAEpAqgBNwIEIDNBDGogAUGwAWopAgA3AgAgM0EUaiAIKQIANwIAIDNBHGogAikCADcCACAzQSRqIAwpAgA3AgAgM0EsaiAAKQIANwIAIDNBNGogDSgCADYCAEG50cIALQAAGkE4QQgQiwUiOEUNTSAZQcG7wQBBMBDCASABLQCoAQ0hIBsgDSkDACJ+NwEAIBEgACkDACJ/NwEAIBIgCCkDACKAATcBACAhIAIpAwAigQE3AQAgGiAMKQMAIoIBNwEAIBcgfzcBACAYIH43AQAgASABKQOwASKDATcBQCAKIH43AwAgFiB/NwMAIA8gggE3AwAgECCBATcDACAOIIABNwMAIAEggwE3A3AgHSAKKQMANwIAIB8gFikDADcCACAjIA8pAwA3AgAgJyAQKQMANwIAIB4gDikDADcCACABIAEpA3A3AqwBIDhBCjYCACA4IAEpAqgBNwIEIDhBDGogAUGwAWopAgA3AgAgOEEUaiAIKQIANwIAIDhBHGogAikCADcCACA4QSRqIAwpAgA3AgAgOEEsaiAAKQIANwIAIDhBNGogDSgCADYCAEG50cIALQAAGkE4QQgQiwUiO0UNTSAZQfG7wQBBMBDCASABLQCoAQ0iIBsgDSkDACJ+NwEAIBEgACkDACJ/NwEAIBIgCCkDACKAATcBACAhIAIpAwAigQE3AQAgGiAMKQMAIoIBNwEAIBcgfzcBACAYIH43AQAgASABKQOwASKDATcBQCAKIH43AwAgFiB/NwMAIA8gggE3AwAgECCBATcDACAOIIABNwMAIAEggwE3A3AgHSAKKQMANwIAIB8gFikDADcCACAjIA8pAwA3AgAgJyAQKQMANwIAIB4gDikDADcCACABIAEpA3A3AqwBIDtBCzYCACA7IAEpAqgBNwIEIDtBDGogAUGwAWopAgA3AgAgO0EUaiAIKQIANwIAIDtBHGogAikCADcCACA7QSRqIAwpAgA3AgAgO0EsaiAAKQIANwIAIDtBNGogDSgCADYCACAiQYwBakEBNgIAICJBiAFqIDs2AgAgIkGAAWpCgYCAgBA3AgAgIkH8AGogODYCACAiQfQAakKBgICAEDcCACAiQfAAaiAzNgIAICJB6ABqQoGAgIAQNwIAICJB5ABqIDY2AgAgIkHcAGpCgYCAgBA3AgAgIkHYAGogNTYCACAiQdAAakKBgICAEDcCACAiQcwAaiA0NgIAICJBxABqQoGAgIAQNwIAICJBQGsgMjYCACAiQThqQoGAgIAQNwIAICJBNGogMTYCACAiQSxqQoGAgIAQNwIAICJBKGogMDYCACAiQSBqQoGAgIAQNwIAICJBHGogLTYCACAiQRRqQoGAgIAQNwIAICJBEGogLzYCACAiQoGAgIAQNwIIICIgIDYCBCAiQQE2AgBBudHCAC0AABpBkAFBBBCLBSIgRQ1LQbnRwgAtAAAaQfAAQQgQiwUiL0UNTCAZQYSwwQBBARDCASABLQCoAQ0jIBsgDSkDACJ+NwEAIBEgACkDACJ/NwEAIBIgCCkDACKAATcBACAhIAIpAwAigQE3AQAgGiAMKQMAIoIBNwEAIBcgfzcBACAYIH43AQAgASABKQOwASKDATcBQCAAIH43AwAgDCB/NwMAIAIgggE3AwAgCCCBATcDACATIIABNwMAIAEggwE3A6gBICYgACkDADcCACAoIAwpAwA3AgAgKSACKQMANwIAIC4gCCkDADcCACA5IBMpAwA3AgAgASABKQOoATcCCCAZQYWwwQBBAhDCASABLQCoAQ0kIBsgDSkDACJ+NwEAIBEgACkDACJ/NwEAIBIgCCkDACKAATcBACAhIAIpAwAigQE3AQAgGiAMKQMAIoIBNwEAIBcgfzcBACAYIH43AQAgASABKQOwASKDATcBQCAKIH43AwAgFiB/NwMAIA8gggE3AwAgECCBATcDACAOIIABNwMAIAEggwE3A3AgHSAKKQMANwIAIB8gFikDADcCACAjIA8pAwA3AgAgJyAQKQMANwIAIB4gDikDADcCACABIAEpA3A3AqwBIC9BADYCACAvQQY2AjggLyABKQIENwIEIC9BDGogAUEMaikCADcCACAvQRRqIAFBFGopAgA3AgAgL0EcaiABQRxqKQIANwIAIC9BJGogAUEkaikCADcCACAvQSxqIAFBLGopAgA3AgAgL0E0aiABQTRqKAIANgIAIC9BPGogASkCqAE3AgAgL0HEAGogEykCADcCACAvQcwAaiAIKQIANwIAIC9B1ABqIAIpAgA3AgAgL0HcAGogDCkCADcCACAvQeQAaiAAKQIANwIAIC9B7ABqIA0oAgA2AgBBudHCAC0AABpB8ABBCBCLBSItRQ1MIBlBobzBAEHAABDCASABLQCoAQ0lIBsgDSkDACJ+NwEAIBEgACkDACJ/NwEAIBIgCCkDACKAATcBACAhIAIpAwAigQE3AQAgGiAMKQMAIoIBNwEAIBcgfzcBACAYIH43AQAgASABKQOwASKDATcBQCAAIH43AwAgDCB/NwMAIAIgggE3AwAgCCCBATcDACATIIABNwMAIAEggwE3A6gBICYgACkDADcCACAoIAwpAwA3AgAgKSACKQMANwIAIC4gCCkDADcCACA5IBMpAwA3AgAgASABKQOoATcCCCAZQeG8wQBBwAAQwgEgAS0AqAENJiAbIA0pAwAifjcBACARIAApAwAifzcBACASIAgpAwAigAE3AQAgISACKQMAIoEBNwEAIBogDCkDACKCATcBACAXIH83AQAgGCB+NwEAIAEgASkDsAEigwE3AUAgCiB+NwMAIBYgfzcDACAPIIIBNwMAIBAggQE3AwAgDiCAATcDACABIIMBNwNwIB0gCikDADcCACAfIBYpAwA3AgAgIyAPKQMANwIAICcgECkDADcCACAeIA4pAwA3AgAgASABKQNwNwKsASAtQQE2AgAgLUEHNgI4IC0gASkCBDcCBCAtQQxqIAFBDGopAgA3AgAgLUEUaiABQRRqKQIANwIAIC1BHGogAUEcaikCADcCACAtQSRqIAFBJGopAgA3AgAgLUEsaiABQSxqKQIANwIAIC1BNGogAUE0aigCADYCACAtQTxqIAEpAqgBNwIAIC1BxABqIBMpAgA3AgAgLUHMAGogCCkCADcCACAtQdQAaiACKQIANwIAIC1B3ABqIAwpAgA3AgAgLUHkAGogACkCADcCACAtQewAaiANKAIANgIAQbnRwgAtAAAaQfAAQQgQiwUiMEUNTCAZQaG9wQBBPxDCASABLQCoAQ0nIBsgDSkDACJ+NwEAIBEgACkDACJ/NwEAIBIgCCkDACKAATcBACAhIAIpAwAigQE3AQAgGiAMKQMAIoIBNwEAIBcgfzcBACAYIH43AQAgASABKQOwASKDATcBQCAAIH43AwAgDCB/NwMAIAIgggE3AwAgCCCBATcDACATIIABNwMAIAEggwE3A6gBICYgACkDADcCACAoIAwpAwA3AgAgKSACKQMANwIAIC4gCCkDADcCACA5IBMpAwA3AgAgASABKQOoATcCCCAZQeC9wQBBwAAQwgEgAS0AqAENKCAbIA0pAwAifjcBACARIAApAwAifzcBACASIAgpAwAigAE3AQAgISACKQMAIoEBNwEAIBogDCkDACKCATcBACAXIH83AQAgGCB+NwEAIAEgASkDsAEigwE3AUAgCiB+NwMAIBYgfzcDACAPIIIBNwMAIBAggQE3AwAgDiCAATcDACABIIMBNwNwIB0gCikDADcCACAfIBYpAwA3AgAgIyAPKQMANwIAICcgECkDADcCACAeIA4pAwA3AgAgASABKQNwNwKsASAwQQI2AgAgMEEINgI4IDAgASkCBDcCBCAwQQxqIAFBDGopAgA3AgAgMEEUaiABQRRqKQIANwIAIDBBHGogAUEcaikCADcCACAwQSRqIAFBJGopAgA3AgAgMEEsaiABQSxqKQIANwIAIDBBNGogAUE0aigCADYCACAwQTxqIAEpAqgBNwIAIDBBxABqIBMpAgA3AgAgMEHMAGogCCkCADcCACAwQdQAaiACKQIANwIAIDBB3ABqIAwpAgA3AgAgMEHkAGogACkCADcCACAwQewAaiANKAIANgIAQbnRwgAtAAAaQfAAQQgQiwUiMUUNTCAZQYO4wQBBPxDCASABLQCoAQ0pIBsgDSkDACJ+NwEAIBEgACkDACJ/NwEAIBIgCCkDACKAATcBACAhIAIpAwAigQE3AQAgGiAMKQMAIoIBNwEAIBcgfzcBACAYIH43AQAgASABKQOwASKDATcBQCAAIH43AwAgDCB/NwMAIAIgggE3AwAgCCCBATcDACATIIABNwMAIAEggwE3A6gBICYgACkDADcCACAoIAwpAwA3AgAgKSACKQMANwIAIC4gCCkDADcCACA5IBMpAwA3AgAgASABKQOoATcCCCAZQaC+wQBBwAAQwgEgAS0AqAENKiAbIA0pAwAifjcBACARIAApAwAifzcBACASIAgpAwAigAE3AQAgISACKQMAIoEBNwEAIBogDCkDACKCATcBACAXIH83AQAgGCB+NwEAIAEgASkDsAEigwE3AUAgCiB+NwMAIBYgfzcDACAPIIIBNwMAIBAggQE3AwAgDiCAATcDACABIIMBNwNwIB0gCikDADcCACAfIBYpAwA3AgAgIyAPKQMANwIAICcgECkDADcCACAeIA4pAwA3AgAgASABKQNwNwKsASAxQQM2AgAgMUEJNgI4IDEgASkCBDcCBCAxQQxqIAFBDGopAgA3AgAgMUEUaiABQRRqKQIANwIAIDFBHGogAUEcaikCADcCACAxQSRqIAFBJGopAgA3AgAgMUEsaiABQSxqKQIANwIAIDFBNGogAUE0aigCADYCACAxQTxqIAEpAqgBNwIAIDFBxABqIBMpAgA3AgAgMUHMAGogCCkCADcCACAxQdQAaiACKQIANwIAIDFB3ABqIAwpAgA3AgAgMUHkAGogACkCADcCACAxQewAaiANKAIANgIAQbnRwgAtAAAaQfAAQQgQiwUiMkUNTCAZQeC+wQBBwAAQwgEgAS0AqAENKyAbIA0pAwAifjcBACARIAApAwAifzcBACASIAgpAwAigAE3AQAgISACKQMAIoEBNwEAIBogDCkDACKCATcBACAXIH83AQAgGCB+NwEAIAEgASkDsAEigwE3AUAgACB+NwMAIAwgfzcDACACIIIBNwMAIAgggQE3AwAgEyCAATcDACABIIMBNwOoASAmIAApAwA3AgAgKCAMKQMANwIAICkgAikDADcCACAuIAgpAwA3AgAgOSATKQMANwIAIAEgASkDqAE3AgggGUGgv8EAQT8QwgEgAS0AqAENLCAbIA0pAwAifjcBACARIAApAwAifzcBACASIAgpAwAigAE3AQAgISACKQMAIoEBNwEAIBogDCkDACKCATcBACAXIH83AQAgGCB+NwEAIAEgASkDsAEigwE3AUAgCiB+NwMAIBYgfzcDACAPIIIBNwMAIBAggQE3AwAgDiCAATcDACABIIMBNwNwIB0gCikDADcCACAfIBYpAwA3AgAgIyAPKQMANwIAICcgECkDADcCACAeIA4pAwA3AgAgASABKQNwNwKsASAyQQQ2AgAgMkEKNgI4IDIgASkCBDcCBCAyQQxqIAFBDGopAgA3AgAgMkEUaiABQRRqKQIANwIAIDJBHGogAUEcaikCADcCACAyQSRqIAFBJGopAgA3AgAgMkEsaiABQSxqKQIANwIAIDJBNGogAUE0aigCADYCACAyQTxqIAEpAqgBNwIAIDJBxABqIBMpAgA3AgAgMkHMAGogCCkCADcCACAyQdQAaiACKQIANwIAIDJB3ABqIAwpAgA3AgAgMkHkAGogACkCADcCACAyQewAaiANKAIANgIAQbnRwgAtAAAaQfAAQQgQiwUiNEUNTCAZQd+/wQBBPxDCASABLQCoAQ0tIBsgDSkDACJ+NwEAIBEgACkDACJ/NwEAIBIgCCkDACKAATcBACAhIAIpAwAigQE3AQAgGiAMKQMAIoIBNwEAIBcgfzcBACAYIH43AQAgASABKQOwASKDATcBQCAAIH43AwAgDCB/NwMAIAIgggE3AwAgCCCBATcDACATIIABNwMAIAEggwE3A6gBICYgACkDADcCACAoIAwpAwA3AgAgKSACKQMANwIAIC4gCCkDADcCACA5IBMpAwA3AgAgASABKQOoATcCCCAZQZ7AwQBBwAAQwgEgAS0AqAENLiAbIA0pAwAifjcBACARIAApAwAifzcBACASIAgpAwAigAE3AQAgISACKQMAIoEBNwEAIBogDCkDACKCATcBACAXIH83AQAgGCB+NwEAIAEgASkDsAEigwE3AUAgCiB+NwMAIBYgfzcDACAPIIIBNwMAIBAggQE3AwAgDiCAATcDACABIIMBNwNwIB0gCikDADcCACAfIBYpAwA3AgAgIyAPKQMANwIAICcgECkDADcCACAeIA4pAwA3AgAgASABKQNwNwKsASA0QQU2AgAgNEELNgI4IDQgASkCBDcCBCA0QQxqIAFBDGopAgA3AgAgNEEUaiABQRRqKQIANwIAIDRBHGogAUEcaikCADcCACA0QSRqIAFBJGopAgA3AgAgNEEsaiABQSxqKQIANwIAIDRBNGogAUE0aigCADYCACA0QTxqIAEpAqgBNwIAIDRBxABqIBMpAgA3AgAgNEHMAGogCCkCADcCACA0QdQAaiACKQIANwIAIDRB3ABqIAwpAgA3AgAgNEHkAGogACkCADcCACA0QewAaiANKAIANgIAQbnRwgAtAAAaQThBCBCLBSJARQ1NIBlBhbXBAEHAABDCASABLQCoAQ0vIBsgDSkDACJ+NwEAIBEgACkDACJ/NwEAIBIgCCkDACKAATcBACAhIAIpAwAigQE3AQAgGiAMKQMAIoIBNwEAIBcgfzcBACAYIH43AQAgASABKQOwASKDATcBQCAKIH43AwAgFiB/NwMAIA8gggE3AwAgECCBATcDACAOIIABNwMAIAEggwE3A3AgHSAKKQMANwIAIB8gFikDADcCACAjIA8pAwA3AgAgJyAQKQMANwIAIB4gDikDADcCACABIAEpA3A3AqwBIEBBBjYCACBAIAEpAqgBNwIEIEBBDGogAUGwAWopAgA3AgAgQEEUaiAIKQIANwIAIEBBHGogAikCADcCACBAQSRqIAwpAgA3AgAgQEEsaiAAKQIANwIAIEBBNGogDSgCADYCAEG50cIALQAAGkHwAEEIEIsFIjVFDUwgGUHewMEAQT4QwgEgAS0AqAENMCAbIA0pAwAifjcBACARIAApAwAifzcBACASIAgpAwAigAE3AQAgISACKQMAIoEBNwEAIBogDCkDACKCATcBACAXIH83AQAgGCB+NwEAIAEgASkDsAEigwE3AUAgACB+NwMAIAwgfzcDACACIIIBNwMAIAgggQE3AwAgEyCAATcDACABIIMBNwOoASAmIAApAwA3AgAgKCAMKQMANwIAICkgAikDADcCACAuIAgpAwA3AgAgOSATKQMANwIAIAEgASkDqAE3AgggGUGcwcEAQcAAEMIBIAEtAKgBDTEgGyANKQMAIn43AQAgESAAKQMAIn83AQAgEiAIKQMAIoABNwEAICEgAikDACKBATcBACAaIAwpAwAiggE3AQAgFyB/NwEAIBggfjcBACABIAEpA7ABIoMBNwFAIAogfjcDACAWIH83AwAgDyCCATcDACAQIIEBNwMAIA4ggAE3AwAgASCDATcDcCAdIAopAwA3AgAgHyAWKQMANwIAICMgDykDADcCACAnIBApAwA3AgAgHiAOKQMANwIAIAEgASkDcDcCrAEgNUEBNgIAIDVBBzYCOCA1IAEpAgQ3AgQgNUEMaiABQQxqKQIANwIAIDVBFGogAUEUaikCADcCACA1QRxqIAFBHGopAgA3AgAgNUEkaiABQSRqKQIANwIAIDVBLGogAUEsaikCADcCACA1QTRqIAFBNGooAgA2AgAgNUE8aiABKQKoATcCACA1QcQAaiATKQIANwIAIDVBzABqIAgpAgA3AgAgNUHUAGogAikCADcCACA1QdwAaiAMKQIANwIAIDVB5ABqIAApAgA3AgAgNUHsAGogDSgCADYCAEG50cIALQAAGkHwAEEIEIsFIjZFDUwgGUHcwcEAQT8QwgEgAS0AqAENMiAbIA0pAwAifjcBACARIAApAwAifzcBACASIAgpAwAigAE3AQAgISACKQMAIoEBNwEAIBogDCkDACKCATcBACAXIH83AQAgGCB+NwEAIAEgASkDsAEigwE3AUAgACB+NwMAIAwgfzcDACACIIIBNwMAIAgggQE3AwAgEyCAATcDACABIIMBNwOoASAmIAApAwA3AgAgKCAMKQMANwIAICkgAikDADcCACAuIAgpAwA3AgAgOSATKQMANwIAIAEgASkDqAE3AgggGUGbwsEAQcAAEMIBIAEtAKgBDTMgGyANKQMAIn43AQAgESAAKQMAIn83AQAgEiAIKQMAIoABNwEAICEgAikDACKBATcBACAaIAwpAwAiggE3AQAgFyB/NwEAIBggfjcBACABIAEpA7ABIoMBNwFAIAogfjcDACAWIH83AwAgDyCCATcDACAQIIEBNwMAIA4ggAE3AwAgASCDATcDcCAdIAopAwA3AgAgHyAWKQMANwIAICMgDykDADcCACAnIBApAwA3AgAgHiAOKQMANwIAIAEgASkDcDcCrAEgNkECNgIAIDZBCDYCOCA2IAEpAgQ3AgQgNkEMaiABQQxqKQIANwIAIDZBFGogAUEUaikCADcCACA2QRxqIAFBHGopAgA3AgAgNkEkaiABQSRqKQIANwIAIDZBLGogAUEsaikCADcCACA2QTRqIAFBNGooAgA2AgAgNkE8aiABKQKoATcCACA2QcQAaiATKQIANwIAIDZBzABqIAgpAgA3AgAgNkHUAGogAikCADcCACA2QdwAaiAMKQIANwIAIDZB5ABqIAApAgA3AgAgNkHsAGogDSgCADYCAEG50cIALQAAGkHwAEEIEIsFIjNFDUwgGUHbwsEAQcAAEMIBIAEtAKgBDTQgGyANKQMAIn43AQAgESAAKQMAIn83AQAgEiAIKQMAIoABNwEAICEgAikDACKBATcBACAaIAwpAwAiggE3AQAgFyB/NwEAIBggfjcBACABIAEpA7ABIoMBNwFAIAAgfjcDACAMIH83AwAgAiCCATcDACAIIIEBNwMAIBMggAE3AwAgASCDATcDqAEgJiAAKQMANwIAICggDCkDADcCACApIAIpAwA3AgAgLiAIKQMANwIAIDkgEykDADcCACABIAEpA6gBNwIIIBlBhrLBAEHAABDCASABLQCoAQ01IBsgDSkDACJ+NwEAIBEgACkDACJ/NwEAIBIgCCkDACKAATcBACAhIAIpAwAigQE3AQAgGiAMKQMAIoIBNwEAIBcgfzcBACAYIH43AQAgASABKQOwASKDATcBQCAKIH43AwAgFiB/NwMAIA8gggE3AwAgECCBATcDACAOIIABNwMAIAEggwE3A3AgHSAKKQMANwIAIB8gFikDADcCACAjIA8pAwA3AgAgJyAQKQMANwIAIB4gDikDADcCACABIAEpA3A3AqwBIDNBAzYCACAzQQk2AjggMyABKQIENwIEIDNBDGogAUEMaikCADcCACAzQRRqIAFBFGopAgA3AgAgM0EcaiABQRxqKQIANwIAIDNBJGogAUEkaikCADcCACAzQSxqIAFBLGopAgA3AgAgM0E0aiABQTRqKAIANgIAIDNBPGogASkCqAE3AgAgM0HEAGogEykCADcCACAzQcwAaiAIKQIANwIAIDNB1ABqIAIpAgA3AgAgM0HcAGogDCkCADcCACAzQeQAaiAAKQIANwIAIDNB7ABqIA0oAgA2AgBBudHCAC0AABpB8ABBCBCLBSI4RQ1MIBlBm8PBAEHAABDCASABLQCoAQ02IBsgDSkDACJ+NwEAIBEgACkDACJ/NwEAIBIgCCkDACKAATcBACAhIAIpAwAigQE3AQAgGiAMKQMAIoIBNwEAIBcgfzcBACAYIH43AQAgASABKQOwASKDATcBQCAAIH43AwAgDCB/NwMAIAIgggE3AwAgCCCBATcDACATIIABNwMAIAEggwE3A6gBICYgACkDADcCACAoIAwpAwA3AgAgKSACKQMANwIAIC4gCCkDADcCACA5IBMpAwA3AgAgASABKQOoATcCCCAZQdvDwQBBwAAQwgEgAS0AqAENNyAbIA0pAwAifjcBACARIAApAwAifzcBACASIAgpAwAigAE3AQAgISACKQMAIoEBNwEAIBogDCkDACKCATcBACAXIH83AQAgGCB+NwEAIAEgASkDsAEigwE3AUAgCiB+NwMAIBYgfzcDACAPIIIBNwMAIBAggQE3AwAgDiCAATcDACABIIMBNwNwIB0gCikDADcCACAfIBYpAwA3AgAgIyAPKQMANwIAICcgECkDADcCACAeIA4pAwA3AgAgASABKQNwNwKsASA4QQQ2AgAgOEEKNgI4IDggASkCBDcCBCA4QQxqIAFBDGopAgA3AgAgOEEUaiABQRRqKQIANwIAIDhBHGogAUEcaikCADcCACA4QSRqIAFBJGopAgA3AgAgOEEsaiABQSxqKQIANwIAIDhBNGogAUE0aigCADYCACA4QTxqIAEpAqgBNwIAIDhBxABqIBMpAgA3AgAgOEHMAGogCCkCADcCACA4QdQAaiACKQIANwIAIDhB3ABqIAwpAgA3AgAgOEHkAGogACkCADcCACA4QewAaiANKAIANgIAQbnRwgAtAAAaQfAAQQgQiwUiO0UNTCAZQZvEwQBBwAAQwgEgAS0AqAENOCAbIA0pAwAifjcBACARIAApAwAifzcBACASIAgpAwAigAE3AQAgISACKQMAIoEBNwEAIBogDCkDACKCATcBACAXIH83AQAgGCB+NwEAIAEgASkDsAEigwE3AUAgACB+NwMAIAwgfzcDACACIIIBNwMAIAgggQE3AwAgEyCAATcDACABIIMBNwOoASAmIAApAwA3AgAgKCAMKQMANwIAICkgAikDADcCACAuIAgpAwA3AgAgOSATKQMANwIAIAEgASkDqAE3AgggGUHbxMEAQcAAEMIBIAEtAKgBDTkg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ACAbQcQAaiARKQIANwIAIBtBzABqIAIpAgA3AgAgG0HUAGogCCkCADcCACAbQdwAaiAMKQIANwIAIBtB5ABqIAApAgA3AgAgG0HsAGogDSgCADYCAEG50cIALQAAGkE4QQgQiwUiL0UNSyAdQa3NwQBB0AAQwgEgAS0AqAENOiAeIA0pAwAifjcBACAkIAApAwAifzcBACAiIAIpAwAigAE3AQAgICAIKQMAIoEBNwEAIB8gDCkDACKCATcBACAjIH83AQAgJyB+NwEAIAEgASkDsAEigwE3AUAgEyB+NwMAIA8gfzcDACAQIIIBNwMAIA4ggQE3AwAgCiCAATcDACABIIMBNwNwICYgEykDADcCACAoIA8pAwA3AgAgKSAQKQMANwIAIC4gDikDADcCACA5IAopAwA3AgAgASABKQNwNwKsASAvQQI2AgAgLyABKQKoATcCBCAvQQxqIBEpAgA3AgAgL0EUaiACKQIANwIAIC9BHGogCCkCADcCACAvQSRqIAwpAgA3AgAgL0EsaiAAKQIANwIAIC9BNGogDSgCADYCAEG50cIALQAAGkE4QQgQiwUiLUUNSyAdQf3NwQBB3wAQwgEgAS0AqAENOyAeIA0pAwAifjcBACAkIAApAwAifzcBACAiIAIpAwAigAE3AQAgICAIKQMAIoEBNwEAIB8gDCkDACKCATcBACAjIH83AQAgJyB+NwEAIAEgASkDsAEigwE3AUAgEyB+NwMAIA8gfzcDACAQIIIBNwMAIA4ggQE3AwAgCiCAATcDACABIIMBNwNwICYgEykDADcCACAoIA8pAwA3AgAgKSAQKQMANwIAIC4gDikDADcCACA5IAopAwA3AgAgASABKQNwNwKsASAtQQk2AgAgLSABKQKoATcCBCAtQQxqIBEpAgA3AgAgLUEUaiACKQIANwIAIC1BHGogCCkCADcCACAtQSRqIAwpAgA3AgAgLUEsaiAAKQIANwIAIC1BNGogDSgCADYCAEG50cIALQAAGkHwAEEIEIsFIhJFDUogHUHczsEAQeAAEMIBIAEtAKgBDTwgHiANKQMAIn43AQAgJCAAKQMAIn83AQAgIiACKQMAIoABNwEAICAgCCkDACKBATcBACAfIAwpAwAiggE3AQAgIyB/NwEAICcgfjcBACABIAEpA7ABIoMBNwFAIAAgfjcDACAMIH83AwAgCCCCATcDACACIIEBNwMAIBEggAE3AwAgASCDATcDqAEgNCAAKQMANwIAIDUgDCkDADcCACA2IAgpAwA3AgAgMyACKQMANwIAIDggESkDADcCACABIAEpA6gBNwIIIB1BvM/BAEHgABDCASABLQCoAQ09IB4gDSkDACJ+NwEAICQgACkDACJ/NwEAICIgAikDACKAATcBACAgIAgpAwAigQE3AQAgHyAMKQMAIoIBNwEAICMgfzcBACAnIH43AQAgASABKQOwASKDATcBQCATIH43AwAgDyB/NwMAIBAgggE3AwAgDiCBATcDACAKIIABNwMAIAEggwE3A3AgJiATKQMANwIAICggDykDADcCACApIBApAwA3AgAgLiAOKQMANwIAIDkgCikDADcCACABIAEpA3A3AqwBIBJBBDYCACASQQo2AjggEiABKQIENwIEIBJBDGogAUEMaikCADcCACASQRRqIAFBFGopAgA3AgAgEkEcaiABQRxqKQIANwIAIBJBJGogAUEkaikCADcCACASQSxqIAFBLGopAgA3AgAgEkE0aiABQTRqKAIANgIAIBJBPGogASkCqAE3AgAgEkHEAGogESkCADcCACASQcwAaiACKQIANwIAIBJB1ABqIAgpAgA3AgAgEkHcAGogDCkCADcCACASQeQAaiAAKQIANwIAIBJB7ABqIA0oAgA2AgBBudHCAC0AABpB8ABBCBCLBSIhRQ1KIB1BnNDBAEHfABDCASABLQCoAQ0+IB4gDSkDACJ+NwEAICQgACkDACJ/NwEAICIgAikDACKAATcBACAgIAgpAwAigQE3AQAgHyAMKQMAIoIBNwEAICMgfzcBACAnIH43AQAgASABKQOwASKDATcBQCAAIH43AwAgDCB/NwMAIAggggE3AwAgAiCBATcDACARIIABNwMAIAEggwE3A6gBIDQgACkDADcCACA1IAwpAwA3AgAgNiAIKQMANwIAIDMgAikDADcCACA4IBEpAwA3AgAgASABKQOoATcCCCAdQZzQwQBB3wAQwgEgAS0AqAENPyAeIA0pAwAifjcBACAkIAApAwAifzcBACAiIAIpAwAigAE3AQAgICAIKQMAIoEBNwEAIB8gDCkDACKCATcBACAjIH83AQAgJyB+NwEAIAEgASkDsAEigwE3AUAgEyB+NwMAIA8gfzcDACAQIIIBNwMAIA4ggQE3AwAgCiCAATcDACABIIMBNwNwICYgEykDADcCACAoIA8pAwA3AgAgKSAQKQMANwIAIC4gDikDADcCACA5IAopAwA3AgAgASABKQNwNwKsASAhQQU2AgAgIUELNgI4ICEgASkCBDcCBCAhQQxqIAFBDGopAgA3AgAgIUEUaiABQRRqKQIANwIAICFBHGogAUEcaikCADcCACAhQSRqIAFBJGopAgA3AgAgIUEsaiABQSxqKQIANwIAICFBNGogAUE0aigCADYCACAhQTxqIAEpAqgBNwIAICFBxABqIBEpAgA3AgAgIUHMAGogAikCADcCACAhQdQAaiAIKQIANwIAICFB3ABqIAwpAgA3AgAgIUHkAGogACkCADcCACAhQewAaiANKAIANgIAQbnRwgAtAAAaQThBCBCLBSIwRQ1LIB1B+9DBAEHgABDCASABLQCoAQ1AIB4gDSkDACJ+NwEAICQgACkDACJ/NwEAICIgAikDACKAATcBACAgIAgpAwAigQE3AQAgHyAMKQMAIoIBNwEAICMgfzcBACAnIH43AQAgASABKQOwASKDATcBQCATIH43AwAgDyB/NwMAIBAgggE3AwAgDiCBATcDACAKIIABNwMAIAEggwE3A3AgJiATKQMANwIAICggDykDADcCACApIBApAwA3AgAgLiAOKQMANwIAIDkgCikDADcCACABIAEpA3A3AqwBIDBBBjYCACAwIAEpAqgBNwIEIDBBDGogESkCADcCACAwQRRqIAIpAgA3AgAgMEEcaiAIKQIANwIAIDBBJGogDCkCADcCACAwQSxqIAApAgA3AgAgMEE0aiANKAIANgIAQbnRwgAtAAAaQfAAQQgQiwUiGkUNSiAdQdvRwQBB3gAQwgEgAS0AqAENQSAeIA0pAwAifjcBACAkIAApAwAifzcBACAiIAIpAwAigAE3AQAgICAIKQMAIoEBNwEAIB8gDCkDACKCATcBACAjIH83AQAgJyB+NwEAIAEgASkDsAEigwE3AUAgACB+NwMAIAwgfzcDACAIIIIBNwMAIAIggQE3AwAgESCAATcDACABIIMBNwOoASA0IAApAwA3AgAgNSAMKQMANwIAIDYgCCkDADcCACAzIAIpAwA3AgAgOCARKQMANwIAIAEgASkDqAE3AgggHUG50sEAQd8AEMIBIAEtAKgBDUIgHiANKQMAIn43AQAgJCAAKQMAIn83AQAgIiACKQMAIoABNwEAICAgCCkDACKBATcBACAfIAwpAwAiggE3AQAgIyB/NwEAICcgfjcBACABIAEpA7ABIoMBNwFAIBMgfjcDACAPIH83AwAgECCCATcDACAOIIEBNwMAIAoggAE3AwAgASCDATcDcCAmIBMpAwA3AgAgKCAPKQMANwIAICkgECkDADcCACAuIA4pAwA3AgAgOSAKKQMANwIAIAEgASkDcDcCrAEgGkEBNgIAIBpBBzYCOCAaIAEpAgQ3AgQgGkEMaiABQQxqKQIANwIAIBpBFGogAUEUaikCADcCACAaQRxqIAFBHGopAgA3AgAgGkEkaiABQSRqKQIANwIAIBpBLGogAUEsaikCADcCACAaQTRqIAFBNGooAgA2AgAgGkE8aiABKQKoATcCACAaQcQAaiARKQIANwIAIBpBzABqIAIpAgA3AgAgGkHUAGogCCkCADcCACAaQdwAaiAMKQIANwIAIBpB5ABqIAApAgA3AgAgGkHsAGogDSgCADYCAEG50cIALQAAGkHwAEEIEIsFIhdFDUogHUGY08EAQeAAEMIBIAEtAKgBDUMgHiANKQMAIn43AQAgJCAAKQMAIn83AQAgIiACKQMAIoABNwEAICAgCCkDACKBATcBACAfIAwpAwAiggE3AQAgIyB/NwEAICcgfjcBACABIAEpA7ABIoMBNwFAIAAgfjcDACAMIH83AwAgCCCCATcDACACIIEBNwMAIBEggAE3AwAgASCDATcDqAEgNCAAKQMANwIAIDUgDCkDADcCACA2IAgpAwA3AgAgMyACKQMANwIAIDggESkDADcCACABIAEpA6gBNwIIIB1BmNPBAEHgABDCASABLQCoAQ1EIB4gDSkDACJ+NwEAICQgACkDACJ/NwEAICIgAikDACKAATcBACAgIAgpAwAigQE3AQAgHyAMKQMAIoIBNwEAICMgfzcBACAnIH43AQAgASABKQOwASKDATcBQCATIH43AwAgDyB/NwMAIBAgggE3AwAgDiCBATcDACAKIIABNwMAIAEggwE3A3AgJiATKQMANwIAICggDykDADcCACApIBApAwA3AgAgLiAOKQMANwIAIDkgCikDADcCACABIAEpA3A3AqwBIBdBAjYCACAXQQg2AjggFyABKQIENwIEIBdBDGogAUEMaikCADcCACAXQRRqIAFBFGopAgA3AgAgF0EcaiABQRxqKQIANwIAIBdBJGogAUEkaikCADcCACAXQSxqIAFBLGopAgA3AgAgF0E0aiABQTRqKAIANgIAIBdBPGogASkCqAE3AgAgF0HEAGogESkCADcCACAXQcwAaiACKQIANwIAIBdB1ABqIAgpAgA3AgAgF0HcAGogDCkCADcCACAXQeQAaiAAKQIANwIAIBdB7ABqIA0oAgA2AgBBudHCAC0AABpBOEEIEIsFIjFFDUsgHUH408EAQd8AEMIBIAEtAKgBDUUgHiANKQMAIn43AQAgJCAAKQMAIn83AQAgIiACKQMAIoABNwEAICAgCCkDACKBATcBACAfIAwpAwAiggE3AQAgIyB/NwEAICcgfjcBACABIAEpA7ABIoMBNwFAIBMgfjcDACAPIH83AwAgECCCATcDACAOIIEBNwMAIAoggAE3AwAgASCDATcDcCAmIBMpAwA3AgAgKCAPKQMANwIAICkgECkDADcCACAuIA4pAwA3AgAgOSAKKQMANwIAIAEgASkDcDcCrAEgMUEDNgIAIDEgASkCqAE3AgQgMUEMaiARKQIANwIAIDFBFGogAikCADcCACAxQRxqIAgpAgA3AgAgMUEkaiAMKQIANwIAIDFBLGogACkCADcCACAxQTRqIA0oAgA2AgBBudHCAC0AABpBOEEIEIsFIjJFDUsgHUHX1MEAQdAAEMIBIAEtAKgBDUYgHiANKQMAIn43AQAgJCAAKQMAIn83AQAgIiACKQMAIoABNwEAICAgCCkDACKBATcBACAfIAwpAwAiggE3AQAgIyB/NwEAICcgfjcBACABIAEpA7ABIoMBNwFAIBMgfjcDACAPIH83AwAgECCCATcDACAOIIEBNwMAIAoggAE3AwAgASCDATcDcCAmIBMpAwA3AgAgKCAPKQMANwIAICkgECkDADcCACAuIA4pAwA3AgAgOSAKKQMANwIAIAEgASkDcDcCrAEgMkEKNgIAIDIgASkCqAE3AgQgMkEMaiABQbABaikCADcCACAyQRRqIAIpAgA3AgAgMkEcaiAIKQIANwIAIDJBJGogDCkCADcCACAyQSxqIAApAgA3AgAgMkE0aiANKAIANgIAQbnRwgAtAAAaQfAAQQgQiwUiGEUNSiAdQafVwQBB4AAQwgEgAS0AqAENRyAeIA0pAwAifjcBACAkIAApAwAifzcBACAiIAIpAwAigAE3AQAgICAIKQMAIoEBNwEAIB8gDCkDACKCATcBACAjIH83AQAgJyB+NwEAIAEgASkDsAEigwE3AUAgACB+NwMAIAwgfzcDACAIIIIBNwMAIAIggQE3AwAgESCAATcDACABIIMBNwOoASA0IAApAwA3AgAgNSAMKQMANwIAIDYgCCkDADcCACAzIAIpAwA3AgAgOCARKQMANwIAIAEgASkDqAE3AgggHUGH1sEAQd8AEMIBIAEtAKgBRQRAIB4gDSkDACJ+NwEAICQgACkDACJ/NwEAICIgAikDACKAATcBACAgIAgpAwAigQE3AQAgHyAMKQMAIoIBNwEAICMgfzcBACAnIH43AQAgASABKQOwASKDATcBQCATIH43AwAgDyB/NwMAIBAgggE3AwAgDiCBATcDACAKIIABNwMAIAEggwE3A3AgJiATKQMANwIAICggDykDADcCACApIBApAwA3AgAgLiAOKQMANwIAIDkgCikDADcCACABIAEpA3A3AqwBIBhBBTYCACAYQQs2AjggGCABKQIENwIEIBhBDGogAUEMaikCADcCACAYQRRqIAFBFGopAgA3AgAgGEEcaiABQRxqKQIANwIAIBhBJGogAUEkaikCADcCACAYQSxqIAFBLGopAgA3AgAgGEE0aiABQTRqKAIANgIAIBhBPGogASkCqAE3AgAgGEHEAGogESkCADcCACAYQcwAaiACKQIANwIAIBhB1ABqIAgpAgA3AgAgGEHcAGogDCkCADcCACAYQeQAaiAAKQIANwIAIBhB7ABqIA0oAgA2AgAgFkGMAWpBAjYCACAWQYgBaiAYNgIAIBZBgAFqQoGAgIAgNwIAIBZB/ABqIDI2AgAgFkH0AGpCgYCAgBA3AgAgFkHwAGogMTYCACAWQegAakKCgICAEDcCACAWQeQAaiAXNgIAIBZB3ABqQoKAgIAgNwIAIBZB2ABqIBo2AgAgFkHQAGpCgYCAgCA3AgAgFkHMAGogMDYCACAWQcQAakKCgICAEDcCACAWQUBrICE2AgAgFkE4akKCgICAIDcCACAWQTRqIBI2AgAgFkEsakKBgICAIDcCACAWQShqIC02AgAgFkEgakKBgICA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BANAIIUBQiCIQoCA/P8PgyB/QiCGhCCFAUIQhiKFAUIwiIQhfyAAQQNqMQAAIABBAWoxAAAghQEgADEAAEIIhoSEQhCGIABBAmoxAABCCIaEhCGFASAAQQRqIQAgBEEEayIEDQALCyAIRQ0AA0Agf0IIhiCFAUI4iIQhfyAAMQAAIIUBQgiGhCGFASAAQQFqIQAgCEEBayIIDQALCyAOIH83AwAgFSCDATcDACAPIIIBNwMAIAcghQE3A9gHIAcggQE3A8gHIAcggAE3A7gHIAcghAE3A6gHIAcgfjcDsAcgBygCyAYiAARAIAIgABCUBQsgB0G4A2ogB0GoB2oiCBDbASMAQfACayICJAAgAkHgAGogBUEIaikDADcDACACQegAaiAFQRBqKQMANwMAIAJB8ABqIAVBGGopAwA3AwAgAkH4AGogBUEgaikDADcDACACQYABaiAFQShqKQMANwMAIAJBkAFqIAVBOGopAwA3AwAgAkGYAWogBUFAaykDADcDACACQaABaiAFQcgAaikDADcDACACQagBaiAFQdAAaikDADcDACACQbABaiAFQdgAaikDADcDACACIAUpAwA3A1ggAiAFKQMwNwOIASACQZgCaiINIAJB2ABqELoEIAIoApwCIQAgAigCmAIhBAJAAkACQCACKAKgAiI8QQJGBEAgACgCBCE8IAAoAgAhCiANIABBCGpB2AAQrQUaIAQEQCAAIARBMGwQlAULIAJB0ABqIAJBuAJqKQMANwMAIAJByABqIAJBsAJqKQMANwMAIAJBQGsgAkGoAmopAwA3AwAgAkE4aiACQaACaikDADcDACACQQhqIAJByAJqKQMANwMAIAJBEGogAkHQAmopAwA3AwAgAkEYaiACQdgCaikDADcDACACQSBqIAJB4AJqKQMANwMAIAJBKGogAkHoAmopAwA3AwAgAiACKQOYAjcDMCACIAIpA8ACNwMAIAJBwAFqIAVB4ABqIgBBCGopAwA3AwAgAkHIAWogAEEQaikDADcDACACQdABaiAAQRhqKQMANwMAIAJB2AFqIABBIGopAwA3AwAgAkHgAWogAEEoaikDADcDACACQfABaiAFQZgBaikDADcDACACQfgBaiAFQaABaikDADcDACACQYACaiAFQagBaikDADcDACACQYgCaiAFQbABaikDADcDACAC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AGsiCyQAIAMEQCADQQxsIQMgAUEgaiEMIAtBIGohDSALQcgAaiEOIAtB2ABqIQ8DQCALQUBrIAIQ0wIgCyALKQNAIA4pAwAQjgMgDSALKQNQIA8pAwAQjgNCkYCAgICAgIAIIQYgCykDCCIEIAEpAyh8IgUgBFQgBSALKQMQIgQgASkDMHwiCCAEVCAIIAspAxgiByABKQM4fCIEIAdUrXwiByAIVHKtfCIJIAVUcq0gASkDICALKQMAfHwiCiEFAkACQCAKQpGAgICAgICACFEEQEIBIQYgBEIBUQ0BIAQhBSAHIAmEQgBSDQELIAUgBloNACAJIQYgByEFIAQhCAwBCyAEQgF9IQggByAEUK0iBn0hBSAJIAYgB1atIgR9IQYgCkLu/////////3dC7/////////93IAQgCVYbfCEKCyABIAg3AzggASAFNwMwIAEgBjcDKCABIAo3AyBCkYCAgICAgIAIIQYgCykDKCIEIAEpA0h8IgUgBFQgBSALKQMwIgQgASkDUHwiCCAEVCAIIAspAzgiByABKQNYfCIEIAdUrXwiByAIVHKtfCIJIAVUcq0gASkDQCALKQMgfHwiCiEFAkACQCAKQpGAgICAgICACFEEQEIBIQYgBEIBUQ0BIAQhBSAHIAmEQgBSDQELIAUgBloNACAJIQYgByEFIAQhCAwBCyAEQgF9IQggByAEUK0iBn0hBSAJIAYgB1atIgR9IQYgCkLu/////////3dC7/////////93IAQgCVYbfCEKCyACQQxqIQIgASAINwNYIAEgBTcDUCABIAY3A0ggASAKNwNAIAwQUyADQQxrIgMNAAsLIAAgASkDIDcDACAAQRhqIAFBOGopAwA3AwAgAEEQaiABQTBqKQMANwMAIABBCGogAUEoaikDADcDACALQeAAaiQAC4kRAgt/A34jAEFAaiIGJAACQAJAAkACfwJAAkAgAigCCCIDRQ0AIAIoAgQiCCgCACEEAkACQAJAIANBAWsOAgEAAgsgCCgCBA0BCyAERQ0BIAEoAgghAyABKAIEIQUCQAJAIARBgIAETwRAIANFDQIgA0ECdCEHIAStIQ4gA0H/////A2oiCUH/////A3EiAw0BIAUgB2oMBgsgA0UNASAFQQRrIQkgA0ECdCEDA0AgB0EQdCADIAlqKAIAIgdBEHZyIARwQRB0IAdB//8DcXIgBHAhByADQQRrIgMNAAsMBgsgA0EBakH+////B3EhBCAFIAdqQQhrIQMDQCADNQIAIANBBGo1AgAgD0IghoQgDoJCIIaEIA6CIQ8gA0EIayEDIARBAmsiBA0ACwwDCyAGQTBqQeCgwAAoAgA2AgAgBkHYoMAAKQIANwMoDAULIAZBEGogAUEIaigCADYCACAGIAEpAgA3AwggBkEgaiACQQhqKAIANgIAIAYgAikCADcDGCAGQShqIQIgBkEIaiEEIwBB8ABrIgEkAAJAAkAgBkEYaiIDKAIIIgcEQCAEKAIIIgtFBEAgAkEIakGsmcIAKAIAIgU2AgAgAkGkmcIAKQIAIg43AgAgAiAONwIMIAJBFGogBTYCACADKAIAIgIEQCADKAIEIAJBAnQQlAULIAQoAgAiAkUNAyAEKAIEIAJBAnQQlAUMAwsCQAJAAkACQAJAAkAgB0EBRgRAIAMoAgQiBSgAAEEBRg0BIAFB6ABqIARBCGooAgA2AgAgASAEKQIANwNgIAFBOGogAUHgAGogBSgCABCrAiABQRBqIgcgAUFAaygCADYCACABIAEpAjg3AwggASgCRCEEIANBADYCCAJAIARFDQAgAygCAAR/IAUFIAMQ2wMgAygCBAtBADYCACADQQE2AgggAygCBCIFIAQgBSgCACIFaiIENgIAIAQgBU8NACADKAIIIgQgAygCAEYEQCADENsDCyADKAIEIARBAnRqQQE2AgAgAyAEQQFqNgIICyACIAEpAwg3AgAgAiADKQIANwIMIAJBFGogA0EIaigCADYCACACQQhqIAcoAgA2AgAMCQsCQEF/IAcgC0cgByALSxsiCg0AIAtBAnQhBSAHQQJ0IQggBCgCBEEEayEMIAMoAgQhCQNAIAUEQCAIRQ0IIAUgDGohCiAFQQRrIQVBfyAIQQRrIgggCWooAgAiDSAKKAIAIgpHIAogDUkbIgpFDQEMAgsLQX9BACAIGyEKCyAKQf8BcQ4CAgQBCyACIAQpAgA3AgAgAkGkmcIAKQIANwIMIAJBFGpBrJnCACgCADYCACACQQhqIARBCGooAgA2AgAgAygCACICRQ0HIAUgAkECdBCUBQwHCyACIAQpAgA3AgwgAkEUaiAEQQhqKAIANgIADAELIARBADYCCCAEKAIARQRAIAQQ2wMLIAQoAgRBATYCACACQQhqQQE2AgAgBEEIakEBNgIAIAIgBCkCADcCACACQQxqIQILIAJBCGpBrJnCACgCADYCACACQaSZwgApAgA3AgAgAygCACICRQ0EIAMoAgQgAkECdBCUBQwECyADKAIEIQkLIAdBAnQgCWpBBGsoAgAiCGciCkUEQCABQUBrIARBCGooAgA2AgAgASAEKQIANwM4IAIgAUE4aiAJIAcQtgEgAygCACICRQ0DIAkgAkECdBCUBQwDCyAEKAIEIQUCQAJAIAQoAgAiBEGAgICAeEcNACAFKAIIDQAgAUEANgJcIAFCgICAgMAANwJUDAELIAEgCzYCQCABIAU2AjwgASAENgI4IAFB1ABqIAFBOGogCEUgCkEfcRCjAQsCfwJAIAMoAgAiA0GAgICAeEcNACAJKAIIDQBBBCEDQQAhBUEADAELIAEgBzYCQCABIAk2AjwgASADNgI4IAFB4ABqIAFBOGogCEUgCkEfcRCjASABKAJoIQUgASgCZCEDIAEoAmALIQQgAUE4aiABQdQAaiADIAUQtgEgAUEgaiABQUBrKAIANgIAIAFBMGogAUHMAGooAgA2AgAgASABKQI4NwMYIAEgASkCRDcDKCAEBEAgAyAEQQJ0EJQFCwJAIAEoAiwiAyABQShqIAEoAigiBEGAgICAeEYbKAIIRQRAIARBgICAgHhGBEAgAygCBCEHAkAgAygCCCIERQRAQQQhCEEAIQMMAQsgBEECdCEDIARB/////wFLBEBBACEFDAYLQbnRwgAtAAAaQQQhBSADQQQQiwUiCEUNBQsgCCAHIAMQrQUhAyABIAQ2AkAgASADNgI8IAEgBDYCOAwCCyABIAEoAjA2AkAgASADNgI8IAEgBDYCOAwBCyABQThqIAFBKGogCEUgCkEfcRD3AQsgAiABKQMYNwIAIAIgASkCODcCDCACQQhqIAFBIGooAgA2AgAgAkEUaiABQUBrKAIANgIADAILIAFBADYCSCABQQE2AjwgAUGUmMIANgI4IAFCBDcCQCABQThqQZSZwgAQzQQACyAFIAMQgwUACyABQfAAaiQAIABBCGogBkE8aigCADYCACAAIAYpAjQ3AgAgBigCKCIARQ0FIAYoAiwgAEECdBCUBQwFCyAGQQA2AjggBkEBNgIsIAZBgKHAADYCKCAGQgQ3AjAgBkEoakHwocAAEM0EAAsgD0IghiEQIANBCGoLIQMgCUEBcQR+IA8FIBAgA0EEazUCAIQgDoILpyEHCyAGQTBqQeCgwAAoAgA2AgAgBkHYoMAAKQIANwMoIAdFDQAgBkEoahDbAyAGKAIsIAc2AgAgBkEBNgIwCyAAIAYpAyg3AgAgAEEIaiAGQTBqKAIANgIAIAIoAgAiAARAIAggAEECdBCUBQsgASgCACIARQ0AIAUgAEECdBCUBQsgBkFAayQAC7scAgp/HH4jAEHAB2siAyQAIwBBoAVrIgIkACACQZAFakIDQsau0OHB5sfvdEIAEPwDIAJBsARqIAIpA5AFIhFC/f/z/8////mJf34iDEKr1f7///+//7l/QgAQ/AMgAkGgBGogDEL//8+K6///1R5CABD8AyACQZAEaiAMQqTsw7WP1LSY5wBCABD8AyACQYAEaiAMQr+llJzP8NK75ABCABD8AyACQfADaiAMQtfZrprk9umNywBCABD8AyACQeADaiAMQprN/8ujvcSAGkIAEPwDIAJBgAVqQgNC8YnEzuDUubsKQgAQ/AMgAkHQA2ogAikDgAUiDiACKQOgBCIQIAJBmAVqKQMAfCIPIAJBuARqKQMAIAIpA7AEIgwgEUJ+g3wgDFStfHwiDXwiEUL9//P/z///+Yl/fiIMQqvV/v///7//uX9CABD8AyACQcADaiAMQv//z4rr///VHkIAEPwDIAJBsANqIAxCpOzDtY/UtJjnAEIAEPwDIAJBoANqIAxCv6WUnM/w0rvkAEIAEPwDIAJBkANqIAxC19mumuT26Y3LAEIAEPwDIAJBgANqIAxCms3/y6O9xIAaQgAQ/AMgAkHwBGpCA0LV7dbkxO3R8o1/QgAQ/AMgAkHwAmogAikD8AQiEiACKQPAAyITIAJBiAVqKQMAIA4gEVatfCIOIAIpA5AEIhQgDSAPVK0gAkGoBGopAwAgDyAQVK18fHwiEHwiDXwiDyACQdgDaikDACACKQPQAyIMIBF8IAxUrXx8IhV8IhFC/f/z/8////mJf34iDEKr1f7///+//7l/QgAQ/AMgAkHgAmogDEL//8+K6///1R5CABD8AyACQdACaiAMQqTsw7WP1LSY5wBCABD8AyACQcACaiAMQr+llJzP8NK75ABCABD8AyACQbACaiAMQtfZrprk9umNywBCABD8AyACQaACaiAMQprN/8ujvcSAGkIAEPwDIAJB4ARqQgNCwIf2nJmV4vXnAEIAEPwDIAJBkAJqIAIpA+AEIhYgAikD4AIiFyACQfgEaikDACARIBJUrXwiEiANIA5UrSINIAIpA4AEIhggAkGYBGopAwAgECAUVK18fCIUfCIOIAIpA7ADfCIQIA8gFVatIAJByANqKQMAIA8gE1StfHx8IhN8IhV8Ig8gAkH4AmopAwAgAikD8AIiDCARfCAMVK18fCIZfCIRQv3/8//P///5iX9+IgxCq9X+////v/+5f0IAEPwDIAJBgAJqIAxC///Piuv//9UeQgAQ/AMgAkHwAWogDEKk7MO1j9S0mOcAQgAQ/AMgAkHgAWogDEK/pZScz/DSu+QAQgAQ/AMgAkHQAWogDELX2a6a5PbpjcsAQgAQ/AMgAkHAAWogDEKazf/Lo73EgBpCABD8AyACQdAEakIDQq2q5qjb0M+8mn9CABD8AyACQbABaiACKQPQBCIaIAIpA4ACIhsgAkHoBGopAwAgESAWVK18IhYgEiAVVq0iFSANIA5WrSIcIAIpA/ADIh0gAkGIBGopAwAgFCAYVK18fCIUfCINIAIpA6ADfCISIBAgE1atIAJBuANqKQMAIA4gEFatfHx8Ihh8Ig4gAikD0AJ8IhAgDyAZVq0gAkHoAmopAwAgDyAXVK18fHwiF3wiE3wiDyACQZgCaikDACACKQOQAiIMIBF8IAxUrXx8Ihl8IhFC/f/z/8////mJf34iDEKr1f7///+//7l/QgAQ/AMgAkGgAWogDEL//8+K6///1R5CABD8AyACQZABaiAMQqTsw7WP1LSY5wBCABD8AyACQYABaiAMQr+llJzP8NK75ABCABD8AyACQfAAaiAMQtfZrprk9umNywBCABD8AyACQeAAaiAMQprN/8ujvcSAGkIAEPwDIAJBwARqQgNCqserltn8o8wRQgAQ/AMgAkHQAGogAikDwAQiHiACKQOgASIfIAJB2ARqKQMAIBEgGlStfCIaIBMgFlStIhYgDiAVVK0iFSANIBxUrSIcIAIpA+ADIiAgAkH4A2opAwAgFCAdVK18fCIdfCITIAIpA5ADfCIUIBIgGFatIAJBqANqKQMAIA0gElatfHx8Ihh8Ig0gAikDwAJ8IhIgECAXVq0gAkHYAmopAwAgDiAQVq18fHwiF3wiDiACKQPwAXwiECAPIBlWrSACQYgCaikDACAPIBtUrXx8fCIZfCIbfCIPIAJBuAFqKQMAIAIpA7ABIgwgEXwgDFStfHwiIXwiEUL9//P/z///+Yl/fiIMQqvV/v///7//uX9CABD8AyACQUBrIAxC///Piuv//9UeQgAQ/AMgAkEwaiAMQqTsw7WP1LSY5wBCABD8AyACQSBqIAxCv6WUnM/w0rvkAEIAEPwDIAJBEGogDELX2a6a5PbpjcsAQgAQ/AMgAiAMQprN/8ujvcSAGkIAEPwDAkAgAkEIaikDACACKQMAIiIgAkHoAGopAwAgAikDYCIjIAJByAFqKQMAIAIpA8ABIiQgAkGoAmopAwAgAikDoAIiJSACQYgDaikDACACKQOAAyImIBMgHFStIAJB6ANqKQMAIB0gIFStfHx8IgwgJlStfCAMIAwgFCAYVq0gAkGYA2opAwAgEyAUVq18fHwiE1atfCATIA0gFVStIhR8IgwgFFStfHwiEyAlVK18IBMgEyACQbgCaikDACAMIAwgAikDsAJ8IhRWrXwgFCAUIBIgF1atIAJByAJqKQMAIA0gElatfHx8IgxWrXx8Ig1WrXwgDSAOIBZUrSISIAx8IgwgElStIhJ8Ig0gElStfHwiEiAkVK18IBIgAkHYAWopAwAgDSANIAIpA9ABfCITVq18IBMgEyACQegBaikDACAMIAwgAikD4AF8Ig1WrXwgDSANIBAgGVatIAJB+AFqKQMAIA4gEFatfHx8IgxWrXx8Ig5WrXx8IhAgElStfCAQIA4gGiAbVq0iDSAMfCIMIA1UrSINfCIOIA1UrSINfCIQIA1UrXx8Ig0gI1StfCANIAJB+ABqKQMAIBAgECACKQNwfCISVq18IBIgAkGIAWopAwAgDiAOIAIpA4ABfCIQVq18IBAgECACQZgBaikDACAMIAwgAikDkAF8Ig5WrXwgDiAOIA8gIVatIAJBqAFqKQMAIA8gH1StfHx8IgxWrXx8Ig9WrXx8Ig4gElStfHwiECANVK18IBAgDiAPIAwgAkHIBGopAwAgESAeVK18Ig18IhQgDVStIg18IgwgDVStIg18Ig8gDVStIg18Ig4gDVStfHwiDSAiVK18IA0gAkEYaikDACAOIA4gAikDEHwiElatfCASIAJBKGopAwAgDyAPIAIpAyB8Ig5WrXwgDiAOIAJBOGopAwAgDCAMIAIpAzB8IhNWrXwgEyATIAJByABqKQMAIBQgAikDQCIPfCIMIA9UrXwgDCACQdgAaikDACARIAIpA1AiD3wgD1StfHwiECAMVK18fCIPVq18fCIMVq18fCIRIBJUrXx8Ig4gDVStfCINQprN/8ujvcSAGlINAAJAAkAgDkLX2a6a5PbpjcsAVg0AQprN/8ujvcSAGiENIA5C19mumuT26Y3LAFINAiARQr+llJzP8NK75ABWDQAgEUK/pZScz/DSu+QAUgRAQtfZrprk9umNywAhDgwDCyAMQqTsw7WP1LSY5wBWDQAgDEKk7MO1j9S0mOcAUg0BIA9C///Piuv//9UeVg0AIA9C///Piuv//9UeUgRAQqTsw7WP1LSY5wAhDAwCCyAQQqvV/v///7//uX9aDQBC///Piuv//9UeIQ9CpOzDtY/UtJjnACEMDAELQn9CACAOQtfZrprk9umNywB9Ig4gEUK/pZScz/DSu+QAVCARQr+llJzP8NK75AB9IhEgDEKk7MO1j9S0mOcAVCAMQqTsw7WP1LSY5wB9IgwgD0L//8+K6///1R5UIA9C///Piuv//9UefSIPIBBCq9X+////v/+5f1StIhJUcq0iE1RyrSIUVHKtIhVUGyENIA8gEn0hDyAMIBN9IQwgESAUfSERIA4gFX0hDiAQQtWqgYCAgMCAxgB8IRAMAQtCv6WUnM/w0rvkACERQtfZrprk9umNywAhDgsgA0IANwMwIAMgEDcDKCADIA83AyAgAyAMNwMYIAMgETcDECADIA43AwggAyANNwMAIANBOGpCADcDACADQUBrQgA3AwAgA0HIAGpCADcDACADQdAAakIANwMAIANB2ABqQgA3AwAgAkGgBWokACADQaAFaiIGIAFCAxDyASADQeAGaiICIAFB4ABqIgdCAxDyASADQaACaiIEEIUBIANBgAZqIgUgAiAEEGwgA0HABGoiCiAGIAUQ8AEgAiABQcABaiIIQgMQ8gEgBhCFASAEIAZCAhDyASAFIAIgBBBsIANBwAFqIgkgCiAFEPABIAQgAyABEGwgAiAEIAcQbCAFIAIgCBBsIAQQhQEgAiAFIAQQbCADQeAAaiILIAkgAhCsASAEIAsQWCADKQOwAiEMIAMpA6gCIQ8CQCADKQOgAlAEQCADQdABaiADQbgCakHQABCtBRogAyAMNwPIASADIA83A8ABIAYgAUICEPIBIAIgByAIEGwgBBCFASAFIAIgBBBsIAIgBiAFEKwBIAQgAiAJEGwgAiABENcCIAogAiAHEGwgBSAIQgIQ8gEgAhCFASAGIAUgAhBsIAIgCiAGEPABIANBgANqIAIgCRBsIAIgARDXAiAFIAIgCBBsIAIgB0ICEPIBIAYgBSACEPABIANB4ANqIAYgCRBsIABBCGogBEGgAhCtBRoMAQsgACAMNwMQIAAgDzcDCEIBIScLIAAgJzcDACADQcAHaiQAC5lmAgx/HH4jAEHAAWsiAyQAIANBOGohBCMAQeATayICJAACQAJAAkACQAJAAkAgARDGA0H/AXFBAWsOAgABAgsgBEIANwMIIARCATcDACAEQUBrQgA3AwAgBEE4akIANwMAIARBMGpCADcDACAEQShqQgA3AwAgBEEgakIANwMAIARBGGpCADcDACAEQRBqQgA3AwAMBAsgAkHwEWpCADcDACACQegRakIANwMAIAJCADcD4BEgAkIBNwP4EQJAQbC6wABBkLjAAEEgEK4FIg0EQCACQoaAgID6rvCll383A7gTIAJC58bi0q223JtxNwOwEyACQq6koMjwyOjw0QA3A6gTIAJC+oGnuZTW9awiNwOgEwwBCyACQbgTakHIusAAKQMANwMAIAJBsBNqQcC6wAApAwA3AwAgAkGoE2pBuLrAACkDADcDACACQbC6wAApAwA3A6ATCyACQYASaiACQaATaiIFENwBIAIpA4ASIRsgAikDiBIhFiACKQOQEiETIAIpA5gSIRkgAkGwE2oiBkIANwMAIAJBqBNqIghCADcDACACQgA3A6ATIAIgGUIBgzcDuBMgBSACQeARakEgEK4FDQFBACEFDAILIARCADcDAAwCC0EAIQUgFiERA0AgBkIANwMAIAhCADcDACACQgA3A6ATIAIgE0I/hiAZQgGIhCIZQgGDNwO4EyAbQj+GIBFCP4YgE0IBiIQhEyAbQgGIIRsgBUEBaiEFIBFCAYiEIhYhESACQaATaiACQeARakEgEK4FDQALCyACIBk3A5gSIAIgEzcDkBIgAiAWNwOIEiACIBs3A4ASQvb///+Jh5qW2QAhECACQvb///+Jh5qW2QA3A5gTQtO0hvazpbv87QAhDiACQtO0hvazpbv87QA3A5ATQtyYyofv29HuTCEPIAJC3JjKh+/b0e5MNwOIE0Le/L6gs/C7ihwhESACQt78vqCz8LuKHDcDgBMgAkGAE2oQxgNB/wFxBEADQEKpwMaJrs6TsjAhHSARIA8gD0KujOXD9+2ot+YAfCIYViAYIBggDiAOQqmag/vZ0p3+NnwiD1YgDyAQIBBChYCAgLv88rTTAH0iEFatfCIaIA9Ucq18IhhWcq18Qq++n9CZ+J2FDnwiESEOAkACQAJAIBFCqcDGia7Ok7IwUg0AQt2whYzotpGouH8hHSAYIg5C3bCFjOi2kai4f1INAEKR4eXNh4n6mSghHSAaIg5CkeHlzYeJ+pkoUg0AQoGAgIC/sv3wwwAhHSAQIg5CgYCAgL+y/fDDAFENAQsgDiAdWg0AIBghDyAaIQ4MAQsgGkKR4eXNh4n6mSh9Ig8gEEKBgICAv7L98MMAVK0iHX0hDiAYQqPP+vOXye7XxwB8IhIgGkKR4eXNh4n6mShUIA8gHVRyrSIafSEPIBEgGELdsIWM6LaRqLh/VCASIBpUcq19QqnAxomuzpOyMH0hESAQQoGAgIC/sv3wwwB9IRALIAIgEDcDmBMgAiAONwOQEyACIA83A4gTIAIgETcDgBMgAkGAE2oQxgNB/wFxDQALCyACQbgTaiIIIAJBmBJqIgkpAwA3AwAgAkGwE2oiCiACQZASaiIHKQMANwMAIAJBqBNqIgwgAkGIEmoiCykDADcDACACIAIpA4ASNwOgEyACQaASaiACQYATaiACQaATaiIGEDMgAiATIBlCAXwiD1CtfCIOQj+GIA9CAYiENwO4EyACIBYgDiATVK18Ig9CP4YgDkIBiIQ3A7ATIAIgGyAPIBZUrXwiDkIBiDcDoBMgAiAOQj+GIA9CAYiENwOoEyACQcASaiABIAYQMyAIIAkpAwA3AwAgCiAHKQMANwMAIAwgCykDADcDACACIAIpA4ASNwOgEyACQeASaiIJIAEgBhAzIAIpA8ASIR8gAikDyBIhGyACKQPQEiEaIAIpA9gSISIgCUGwusAAQSAQrgUEQCACKQP4EiElIAIpA/ASIR0gAikD6BIhISACKQPgEiEgIAIpA6ASIRYgAikDqBIhGCACKQOwEiETIAIpA7gSIRkDQCACQZgTaiACQfgSaikDADcDACACQZATaiACQfASaikDADcDACACQYgTaiACQegSaikDADcDACACIAIpA+ASNwOAEwJAIA0EQCACQoaAgID6rvCll383A7gTIAJC58bi0q223JtxNwOwEyACQq6koMjwyOjw0QA3A6gTIAJC+oGnuZTW9awiNwOgEwwBCyAIQci6wAApAwA3AwAgCkHAusAAKQMANwMAIAxBuLrAACkDADcDACACQbC6wAApAwA3A6ATCwJAIAJBgBNqIAJBoBNqQSAQrgVFBEBBACEGDAELQQAhBiACKQOYEyERIAIpA5ATIQ4gAikDiBMhDyACKQOAEyEQA0AgAkHQEWogESARQgAQ/AMgAkGAEWogDiARQgAQ/AMgAkGgEGogDyARQgAQ/AMgAkGwD2ogECARQgAQ/AMgAkHAEWogAikD0BEiEkL/////vrL98EJ+IhFCgYCAgL+y/fDDAEIAEPwDIAJBsBFqIBFCkeHlzYeJ+pkoQgAQ/AMgAkGgEWogEULdsIWM6LaRqLh/QgAQ/AMgAkGQEWogEUKpwMaJrs6TsjBCABD8AyACQbAQaiAOIA5CABD8AyACQdAPaiAPIA5CABD8AyACQeAOaiAQIA5CABD8AyACQfAQaiACKQOwESIcIAJB2BFqKQMAIhUgAikDgBEiDnwiF3wiESACQcgRaikDACACKQPAESIUIBJCfYN8IBRUrXx8IhIgDnwiFEL/////vrL98EJ+Ig5CgYCAgL+y/fDDAEIAEPwDIAJB4BBqIA5CkeHlzYeJ+pkoQgAQ/AMgAkHQEGogDkLdsIWM6LaRqLh/QgAQ/AMgAkHAEGogDkKpwMaJrs6TsjBCABD8AyACQcAPaiAPIA9CABD8AyACQdAOaiAQIA9CABD8AyACQZAQaiACQYgRaikDACIOIBIgFFatfCIjIAIpA7AQfCIPIA4gFSAXVq18Ih4gAikDoBAiDnwiFSACKQOgEXwiFyARIBJWrSACQbgRaikDACARIBxUrXx8fCImfCIRIAIpA+AQfCISIAJB+BBqKQMAIBQgAikD8BAiHHwgHFStfHwiFCAOfCIcQv////++sv3wQn4iDkKBgICAv7L98MMAQgAQ/AMgAkGAEGogDkKR4eXNh4n6mShCABD8AyACQfAPaiAOQt2whYzotpGouH9CABD8AyACQeAPaiAOQqnAxomuzpOyMEIAEPwDIAJBwA5qIBAgEEIAEPwDIAJBoA9qIAJBqBBqKQMAIg4gFCAcVq18IikgAikD0A8iJ3wiECAnIA4gFSAeVK18IiggAikDsA8iDnwiHiACKQOQEXwiJCAXICZWrSACQagRaikDACAVIBdWrXx8fCIVfCIXIA8gEVatIAJBuBBqKQMAIA8gI1StfHx8Ig8gAikD0BB8IiMgEiAUVq0gAkHoEGopAwAgESASVq18fHwiJnwiESACKQOAEHwiEiACQZgQaikDACACKQOQECIUIBx8IBRUrXx8IhQgDnwiHEL/////vrL98EJ+Ig5CgYCAgL+y/fDDAEIAEPwDIAJBkA9qIA5CkeHlzYeJ+pkoQgAQ/AMgAkGAD2ogDkLdsIWM6LaRqLh/QgAQ/AMgAkHwDmogDkKpwMaJrs6TsjBCABD8AwJAAkAgAkH4DmopAwAgAkHoD2opAwAgAkHIEGopAwAgFSAkVK0gAkGYEWopAwAgHiAkVq18fCACQbgPaikDACIkIB4gKFStfHwiHiACKQPgDiInfCIOIA8gF1StIAJB2A9qKQMAIiggFSAXVq18fHwiFSACKQPAEHwiFyAVVK18IBcgIyAmVq0gAkHYEGopAwAgDyAjVq18fHwiDyAXVK18IA4gFVatIAJB6A5qKQMAIiMgDiAeVK18fHwiHiACKQPQDiImfCIOIAJByA9qKQMAIA8gDyACKQPAD3wiFVatfCAVIBUgECARVq0gKCAQIClUrXx8fCIPVq18fCIQIAIpA+APfCIVIBBUrXwgFSACQfgPaikDACAPIA8gAikD8A98IhdWrXwgFyASIBRWrSACQYgQaikDACARIBJWrXx8fCISIBdUrXx8Ig8gFVStfCAOIBBWrSACQdgOaikDACIQIA4gHlStfHx8Ih4gAikDwA58Ig4gECAPIA8gJnwiEVatfCARIBEgIyAkIBQgHFatfCIQICd8Ig8gEFStfCAPIA8gEnwiEFatfHwiD1atfHwiFSACKQPwDnwiFyAVVK18IBcgFyACQYgPaikDACAPIA8gAikDgA98IhJWrXwgEiASIAJBmA9qKQMAIBAgECACKQOQD3wiD1atfCAPIA8gAkGoD2opAwAgAikDoA8iESAcfCARVK18fCIRVq18fCISVq18fCIUVq18IA4gFVatIAJByA5qKQMAIA4gHlStfHx8IhBCqcDGia7Ok7IwVg0AAkAgEEKpwMaJrs6TsjBRBEAgFELdsIWM6LaRqLh/Vg0CAkAgFELdsIWM6LaRqLh/UgRAIBQhDwwBCyASQpHh5c2HifqZKFYNA0LdsIWM6LaRqLh/IQ8gEkKR4eXNh4n6mShRDQILQqnAxomuzpOyMCEQIBIhDgwDCyAUIQ8gEiEODAILQpHh5c2HifqZKCEOIBFCgYCAgL+y/fDDAFoNAEKpwMaJrs6TsjAhEAwBCyASQpHh5c2HifqZKH0iDyARQoGAgIC/sv3wwwBUrSIVfSEOIBRCo8/685fJ7tfHAHwiFyASQpHh5c2HifqZKFQgDyAVVHKtIhJ9IQ8gECAUQt2whYzotpGouH9UIBIgF1ZyrX1CqcDGia7Ok7IwfSEQIBFCgYCAgL+y/fDDAH0hEQsgAiARNwOYEyACIA43A5ATIAIgDzcDiBMgAiAQNwOAEyAGQQFqIQYgAkGAE2ogAkGgE2pBIBCuBQ0ACwsCQCAFIAZrQQJrIglFBEAgFiERIBghECATIQ4gGSEPDAELIBkhDyATIQ4gGCEQIBYhEQNAIAJB4A1qIA4gD0IAEPwDIAJBwA1qIBAgD0IAEPwDIAJBkA1qIBEgD0IAEPwDIAJBsA1qIBAgDkIAEPwDIAJBgA1qIBEgDkIAEPwDIAJB8AxqIBEgEEIAEPwDIAJBsA5qIA8gD0IAEPwDIAJB0A1qIA4gDkIAEPwDIAJBoA1qIBAgEEIAEPwDIAJB4AxqIBEgEUIAEPwDIAJBoA5qIAIpA7AOIhNC/////76y/fBCfiIOQoGAgIC/sv3wwwBCABD8AyACQZAOaiAOQpHh5c2HifqZKEIAEPwDIAJBgA5qIA5C3bCFjOi2kai4f0IAEPwDIAJB8A1qIA5CqcDGia7Ok7IwQgAQ/AMgAkGoDWopAwAhFiACIAJB2A1qKQMAIAIpA9ANIhEgAkHoDWopAwAiECACKQPADXwiDkIBhiACKQPgDSIYQj+IhHwiDyARVK18IA8gAkG4DmopAwAiESAYQgGGfCIYIBFUrXwiGSAPVK18IhIgAkHIDWopAwAgDiAQVK18IhAgAikDkA18Ig8gAikDsA18IhFCAYYgDkI/iIR8IhQgElStIhIgAikDoA18Ig4gAkGYDWopAwAgDyAQVK18IhUgAikDgA18IhAgAkG4DWopAwAgDyARVq18fCIPQgGGIBFCP4iEfCIRNwPAEyACIA4gEVatIBYgDiASVK18fCIRIA8gEFStIAJBiA1qKQMAIBAgFVStfHwiECACKQPwDHwiDkIBhiAPQj+IhHwiDzcDyBMgAiACKQPgDCIWIAJB+AxqKQMAIA4gEFStfCIQQgGGIA5CP4iEfCIOIA8gEVStfCIPNwPQEyAOIA9WrSACQegMaikDACAOIBZUrXx8IBBCP4h8IREgAkGYDmopAwAhDyACIAJBqA5qKQMAIBMgAikDoA4iDnwgDlStfCIQIAIpA5AOfCIOIBh8IhM3A9gTIAJBiA5qKQMAIRYgAiAOIBNWrSAPIA4gEFStfHwiDyACKQOADnwiDiAZfCIQNwOAEyACQfgNaikDACETIAIgDiAQVq0gFiAOIA9UrXx8Ig8gAikD8A18Ig4gFHwiEDcDoBNBACEFAkAgDiAQVq0gEyAOIA9UrXx8Ig5QBEBBACEBDAELIAIgDiACKQPAE3wiDzcDwBMgDiAPViIBRQ0AIAIgAa0iDiACKQPIE3wiDzcDyBMgDiAPViEBIA4gD1gNACACIAGtIg4gAikD0BN8Ig83A9ATIA4gD1YhASAOIA9YDQAgAa0iDiARfCIRIA5UIQELIAJB0AxqIAIpA9gTIg9C/////76y/fBCfiIOQoGAgIC/sv3wwwBCABD8AyACQcAMaiAOQpHh5c2HifqZKEIAEPwDIAJBsAxqIA5C3bCFjOi2kai4f0IAEPwDIAJBoAxqIA5CqcDGia7Ok7IwQgAQ/AMgAiAPIAIpA9AMIg58Ig83A9gTIAJByAxqKQMAIRAgAiACQdgMaikDACAOIA9WrXwiDyACKQPADHwiDiACKQOAE3wiEzcDgBMgAkG4DGopAwAhFiACIA4gE1atIBAgDiAPVK18fCIPIAIpA7AMfCIOIAIpA6ATfCIQNwOgEyACQagMaikDACETIAIgDiAQVq0gFiAOIA9UrXx8Ig8gAikDoAx8Ig4gAikDwBN8IhA3A8ATAkAgDiAQVq0gEyAOIA9UrXx8Ig5QDQAgAiAOIAIpA8gTfCIPNwPIEyAOIA9WIQUgDiAPWA0AIAIgBa0iDiACKQPQE3wiDzcD0BMgDiAPViEFIA4gD1gNACAFrSIOIBF8IhEgDlQhBQsgAkGQDGogAikDgBMiD0L/////vrL98EJ+Ig5CgYCAgL+y/fDDAEIAEPwDIAJBgAxqIA5CkeHlzYeJ+pkoQgAQ/AMgAkHwC2ogDkLdsIWM6LaRqLh/QgAQ/AMgAkHgC2ogDkKpwMaJrs6TsjBCABD8AyACIA8gAikDkAwiDnwiDzcDgBMgAkGIDGopAwAhECACIAJBmAxqKQMAIA4gD1atfCIPIAIpA4AMfCIOIAIpA6ATfCITNwOgEyACQfgLaikDACEWIAIgDiATVq0gECAOIA9UrXx8Ig8gAikD8At8Ig4gAikDwBN8IhA3A8ATIAJB6AtqKQMAIRMgAiAOIBBWrSAWIA4gD1StfHwiDyACKQPgC3wiDiACKQPIE3wiEDcDyBNBACEHIA4gEFatIBMgDiAPVK18fCIOUEUEQCACIA4gAikD0BN8Ig83A9ATIA4gD1YiB60iDiARfCIPIBEgBxshESAHIA4gD1ZxIQcLIAJB0AtqIAIpA6ATIg9C/////76y/fBCfiIOQoGAgIC/sv3wwwBCABD8AyACQcALaiAOQpHh5c2HifqZKEIAEPwDIAJBsAtqIA5C3bCFjOi2kai4f0IAEPwDIAJBoAtqIA5CqcDGia7Ok7IwQgAQ/AMgAiAPIAIpA9ALIg58Ig83A6ATIAJByAtqKQMAIRAgAiACQdgLaikDACAOIA9WrXwiDyACKQPAC3wiDiACKQPAE3wiEzcDwBMgAkG4C2opAwAhFiACIA4gE1atIBAgDiAPVK18fCIPIAIpA7ALfCIOIAIpA8gTfCIQNwPIEyACQagLaikDACETIAIgDiAQVq0gFiAOIA9UrXx8Ig8gAikDoAt8Ig4gAikD0BN8IhA3A9ATIA4gEFatIBMgDiAPVK18fCIOIBF8Ig8gESAOQgBSIgsbIRECfgJAAkACQCABIAVyIAdyIA4gD1YiAa0gDiALG0IAUnIgASALcXJFBEAgAikD0BMhECARQqnAxomuzpOyMFYEQCARIRMgECEPDAMLIBFCqcDGia7Ok7IwUQ0BIAIpA8gTIQ4MAwsgAikD0BMhDyARIRMMAQtCqcDGia7Ok7IwIRMgEELdsIWM6LaRqLh/VgRAIBAhDwwBCyACKQPIEyEOIBBC3bCFjOi2kai4f1INAULdsIWM6LaRqLh/IQ8gDkKR4eXNh4n6mShWDQAgDkKR4eXNh4n6mShSDQEgAikDwBNCgICAgL+y/fDDAFgNAQsgAikDyBMiEUKR4eXNh4n6mSh9IhAgAikDwBMiFkKBgICAv7L98MMAVK0iGH0hDiAPQqPP+vOXye7XxwB8IhkgEUKR4eXNh4n6mShUIBAgGFRyrSIRfSEQIBMgD0LdsIWM6LaRqLh/VCARIBlWcq19QqnAxomuzpOyMH0hESAWQoGAgIC/sv3wwwB9DAELIAIpA8ATCyEPIAlBAWsiCQ0ACwsgAkGQC2ogDyAPQgAQ/AMgAkHACmogDyAOQgAQ/AMgAkHgCWogDyAQQgAQ/AMgAkHwCGogDyARQgAQ/AMgAkGAC2ogAikDkAsiGEL/////vrL98EJ+IhNCgYCAgL+y/fDDAEIAEPwDIAJB8ApqIBNCkeHlzYeJ+pkoQgAQ/AMgAkHgCmogE0LdsIWM6LaRqLh/QgAQ/AMgAkHQCmogE0KpwMaJrs6TsjBCABD8AyACQfAJaiAOIA5CABD8AyACQZAJaiAOIBBCABD8AyACQaAIaiAOIBFCABD8AyACQbAKaiACKQPwCiIXIAJBmAtqKQMAIhQgAikDwAoiE3wiFXwiFiACQYgLaikDACAYIAIpA4ALIhl8IBlUrXx8IhggE3wiGUL/////vrL98EJ+IhNCgYCAgL+y/fDDAEIAEPwDIAJBoApqIBNCkeHlzYeJ+pkoQgAQ/AMgAkGQCmogE0LdsIWM6LaRqLh/QgAQ/AMgAkGACmogE0KpwMaJrs6TsjBCABD8AyACQYAJaiAQIBBCABD8AyACQZAIaiAQIBFCABD8AyACQdAJaiACQcgKaikDACITIBggGVatfCIjIAIpA/AJfCISIBMgFCAVVq18Ih4gAikD4AkiE3wiFCACKQPgCnwiFSAWIBhWrSACQfgKaikDACAWIBdUrXx8fCImfCIWIAIpA6AKfCIYIAJBuApqKQMAIBkgAikDsAoiF3wgF1StfHwiGSATfCIXQv////++sv3wQn4iE0KBgICAv7L98MMAQgAQ/AMgAkHACWogE0KR4eXNh4n6mShCABD8AyACQbAJaiATQt2whYzotpGouH9CABD8AyACQaAJaiATQqnAxomuzpOyMEIAEPwDIAJBgAhqIBEgEUIAEPwDIAJB4AhqIAJB6AlqKQMAIhMgFyAZVK18IikgAikDkAkiJ3wiHCAnIBMgFCAeVK18IiggAikD8AgiE3wiHiACKQPQCnwiJCAVICZWrSACQegKaikDACAUIBVWrXx8fCIUfCIVIBIgFlatIAJB+AlqKQMAIBIgI1StfHx8IhIgAikDkAp8IiMgGCAZVq0gAkGoCmopAwAgFiAYVq18fHwiJnwiFiACKQPACXwiGCACQdgJaikDACACKQPQCSIZIBd8IBlUrXx8IhkgE3wiF0L/////vrL98EJ+IhNCgYCAgL+y/fDDAEIAEPwDIAJB0AhqIBNCkeHlzYeJ+pkoQgAQ/AMgAkHACGogE0LdsIWM6LaRqLh/QgAQ/AMgAkGwCGogE0KpwMaJrs6TsjBCABD8AwJAAkACQCACQbgIaikDACACQagJaikDACACQYgKaikDACAUICRUrSACQdgKaikDACAeICRWrXx8IAJB+AhqKQMAIiQgHiAoVK18fCIeIAIpA6AIIid8IhMgEiAVVK0gAkGYCWopAwAiKCAUIBVWrXx8fCIUIAIpA4AKfCIVIBRUrXwgFSAjICZWrSACQZgKaikDACASICNWrXx8fCISIBVUrXwgEyAUVq0gAkGoCGopAwAiIyATIB5UrXx8fCIeIAIpA5AIIiZ8IhMgAkGICWopAwAgEiASIAIpA4AJfCIUVq18IBQgFCAWIBxUrSAoIBwgKVStfHx8IhJWrXx8IhQgAikDoAl8IhUgFFStfCAVIAJBuAlqKQMAIBIgEiACKQOwCXwiHFatfCAcIBwgGCAZVq0gAkHICWopAwAgFiAYVq18fHwiElatfHwiFiAVVK18IBMgFFatIAJBmAhqKQMAIhQgEyAeVK18fHwiHCACKQOACHwiEyAUIBYgFiAmfCIYVq18IBggGCAjICQgFyAZVK18IhkgJ3wiFiAZVK18IBYgEiAWfCIZVq18fCIWVq18fCIYIAIpA7AIfCIVIBhUrXwgFSAVIAJByAhqKQMAIBYgFiACKQPACHwiElatfCASIBIgAkHYCGopAwAgGSAZIAIpA9AIfCIWVq18IBYgAkHoCGopAwAgAikD4AgiGSAXfCAZVK18fCIZIBZUrXx8IhJWrXx8IhRWrXwgEyAYVq0gAkGICGopAwAgEyAcVK18fHwiFkKpwMaJrs6TsjBWDQAgFkKpwMaJrs6TsjBSDQEgFELdsIWM6LaRqLh/Vg0AIBRC3bCFjOi2kai4f1IEQEKpwMaJrs6TsjAhFgwCCyASQpHh5c2HifqZKFYNAELdsIWM6LaRqLh/IRggEkKR4eXNh4n6mShSBEBCqcDGia7Ok7IwIRYgEiETDAMLQpHh5c2HifqZKCETIBlCgYCAgL+y/fDDAFoNAEKpwMaJrs6TsjAhFgwCCyASQpHh5c2HifqZKH0iGCAZQoGAgIC/sv3wwwBUrSIVfSETIBRCo8/685fJ7tfHAHwiFyASQpHh5c2HifqZKFQgFSAYVnKtIhJ9IRggFiAUQt2whYzotpGouH9UIBIgF1ZyrX1CqcDGia7Ok7IwfSEWIBlCgYCAgL+y/fDDAH0hGQwBCyAUIRggEiETCyACQfAHaiAiIA9CABD8AyACQfAGaiAaIA9CABD8AyACQfAFaiAbIA9CABD8AyACQfAEaiAfIA9CABD8AyACQeAHaiACKQPwByISQv////++sv3wQn4iD0KBgICAv7L98MMAQgAQ/AMgAkHQB2ogD0KR4eXNh4n6mShCABD8AyACQcAHaiAPQt2whYzotpGouH9CABD8AyACQbAHaiAPQqnAxomuzpOyMEIAEPwDIAJBoAdqICIgDkIAEPwDIAJBoAZqIBogDkIAEPwDIAJBoAVqIBsgDkIAEPwDIAJBoARqIB8gDkIAEPwDIAJB4AZqIAIpA9AHIhwgAkH4B2opAwAiFSACKQPwBnwiF3wiDyACQegHaikDACASIAIpA+AHIg58IA5UrXx8IhIgAikDoAd8IhRC/////76y/fBCfiIOQoGAgIC/sv3wwwBCABD8AyACQdAGaiAOQpHh5c2HifqZKEIAEPwDIAJBwAZqIA5C3bCFjOi2kai4f0IAEPwDIAJBsAZqIA5CqcDGia7Ok7IwQgAQ/AMgAkGQB2ogIiAQQgAQ/AMgAkGQBmogGiAQQgAQ/AMgAkGQBWogGyAQQgAQ/AMgAkGQBGogHyAQQgAQ/AMgAkHgBWogAkGoB2opAwAgEiAUVq18Ih4gAikDoAZ8IhAgAkH4BmopAwAgFSAXVq18IiQgAikD8AV8IhUgAikDwAd8IhcgDyASVq0gAkHYB2opAwAgDyAcVK18fHwiI3wiDyACKQPQBnwiEiACQegGaikDACACKQPgBiIOIBR8IA5UrXx8IhQgAikDkAd8IhxC/////76y/fBCfiIOQoGAgIC/sv3wwwBCABD8AyACQdAFaiAOQpHh5c2HifqZKEIAEPwDIAJBwAVqIA5C3bCFjOi2kai4f0IAEPwDIAJBsAVqIA5CqcDGia7Ok7IwQgAQ/AMgAkGAB2ogIiARQgAQ/AMgAkGABmogGiARQgAQ/AMgAkGABWogGyARQgAQ/AMgAkGABGogHyARQgAQ/AMgAkHgBGogAkGYB2opAwAgFCAcVq18IiYgAikDkAZ8IhEgAkH4BWopAwAgFSAkVK18IiQgAikD8AR8IhogAikDsAd8IhsgFyAjVq0gAkHIB2opAwAgFSAXVq18fHwiHyACKQOgBXwiIiAPIBBUrSACQagGaikDACAQIB5UrXx8fCIQIAIpA8AGfCIVIBIgFFatIAJB2AZqKQMAIA8gElatfHx8Ih58Ig8gAikD0AV8IhIgAkHoBWopAwAgAikD4AUiDiAcfCAOVK18fCIUIAIpA4AHfCIXQv////++sv3wQn4iDkKBgICAv7L98MMAQgAQ/AMgAkHQBGogDkKR4eXNh4n6mShCABD8AyACQcAEaiAOQt2whYzotpGouH9CABD8AyACQbAEaiAOQqnAxomuzpOyMEIAEPwDAkACQCACQbgEaikDACACQbgFaikDACACQbgGaikDACAbIB9WrSACQbgHaikDACAaIBtWrXx8IAJB+ARqKQMAIBogJFStfHwiHCACKQOgBHwiDiAQICJUrSACQagFaikDACAfICJWrXx8fCIaIAIpA7AGfCIbIBpUrXwgGyAVIB5WrSACQcgGaikDACAQIBVWrXx8fCIQIBtUrXwgDiAaVq0gAkGoBGopAwAgDiAcVK18fHwiHyACKQOQBHwiDiACQZgFaikDACAQIBAgAikDkAV8IhpWrXwgGiAPIBFUrSACQZgGaikDACARICZUrXx8fCIRIBpUrXx8IhAgAikDsAV8IhogEFStfCAaIAJByAVqKQMAIBEgESACKQPABXwiG1atfCAbIBsgEiAUVq0gAkHYBWopAwAgDyASVq18fHwiG1atfHwiDyAaVK18IA4gEFatIAJBmARqKQMAIA4gH1StfHx8Ih8gAikDgAR8IhEgAkGIBWopAwAgDyACKQOABXwiDiAPVK18IA4gDiACQYgGaikDACACQYgHaikDACAUIBdWrXwiECACKQOABnwiDyAQVK18IA8gDyAbfCIQVq18fCIPVq18fCIaIAIpA7AEfCIbIBpUrXwgGyAC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BCAiNwNAIAQgEDcDOCAEIBE3AzAgBCAfNwMoIARCATcDACAEQSBqIAJB2BJqKQMANwMAIARBGGogAkHQEmopAwA3AwAgBEEQaiACQcgSaikDADcDAAsgAkHgE2okAAJAAkAgAykDOFBFBEAgA0G4AWoiASADQdgAaikDADcDACADQbABaiADQdAAaiICKQMAIg43AwAgA0GoAWogA0HIAGoiBSkDACIPNwMAIANBiAFqIgYgA0HoAGopAwA3AwAgA0GQAWoiCCADQfAAaikDADcDACADQZgBaiIKIANB+ABqKQMANwMAIAMgAykDQCIRNwOgASADIAMpA2A3A4ABIANBEGogDjcDACADQQhqIA83AwAgA0EYaiABKQMANwMAIAMgETcDACACIAopAwA3AwAgBSAIKQMANwMAIANBQGsgBikDADcDACADIAMpA4ABNwM4IANBIGogAxCdAyADQSxqIAQQnQMCQAJAIAMoAigiASADKAI0IgJGBEAgAygCJEEEayECIAMoAjBBBGshBCABQQJ0IQEDQCABRQ0CIAEgAmohBSABIARqIAFBBGshASgCACIGIAUoAgAiBUYNAAsgBSAGTw0EDAILIAEgAkkNAQwDCyABRQ0CCyADKAIsIgEEQCADKAIwIAFBAnQQlAULIAMoAiAiAQRAIAMoAiQgAUECdBCUBQsgACADKQMANwMAIABBGGogA0EYaikDADcDACAAQRBqIANBEGopAwA3AwAgAEEIaiADQQhqKQMANwMADAILQYaZwQBBEEGYmcEAEKoEAAsgAygCLCIBBEAgAygCMCABQQJ0EJQFCyADKAIgIgEEQCADKAIkIAFBAnQQlAULIAAgAykDODcDACAAQRhqIANB0ABqKQMANwMAIABBEGogA0HIAGopAwA3AwAgAEEIaiADQUBrKQMANwMACyADQcABaiQAC61ZAgx/IX4jAEHAAWsiAyQAIANBOGohBCMAQaARayICJAACQAJAAkACQAJAAkAgARDDA0H/AXFBAWsOAgABAgsgBEIANwMIIARCATcDACAEQUBrQgA3AwAgBEE4akIANwMAIARBMGpCADcDACAEQShqQgA3AwAgBEEgakIANwMAIARBGGpCADcDACAEQRBqQgA3AwAMBAsgAkGwD2pCADcDACACQagPakIANwMAIAJCADcDoA8gAkIB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IAJBmA1qKQMAIAIpA5ANIg4gKXwgDlStfHwiDlatfHwiE1atfHwiFCAVVK18IhUgGiAbVK0gAkHIDGopAwAgGyAdVK18fCIPIBkgHVatIBIgF1StfHwiEHwiEkIAUyASIBVUrUIAIA8gEFatfVJyDQACQCASQv///////////wBRBEAgFEJ/UQ0BQv///////////wAhEgsgFCEPIBMhEAwCC0J/IQ8gE0J/UgRAQv///////////wAhEiATIRAMAgsgDkJtWg0AQv///////////wAhEkJ/IRAMAQsgE0IBfCIXIA5CbVStIg99IRAgFEIBfCIVIBNCf1IgDyAXVnKtIhN9IQ8gEiAUQn9SIBMgFVZyrX1C////////////AH0hEiAOQhN8IQ4LIAIgDjcD2BAgAiAQNwPQECACIA83A8gQIAIgEjcDwBAgB0EBaiEHIAJBwBBqIAJB4BBqQSAQrgUNAAsLAkAgCCAHa0ECayIJRQRAIBwhDiAWIQ8gESEQIBghEgwBCyAYIRIgESEQIBYhDyAcIQ4DQCACQfALaiAQIBJCABD8AyACQdALaiAPIBJCABD8AyACQaALaiAOIBJCABD8AyACQcALaiAPIBBCABD8AyACQZALaiAOIBBCABD8AyACQYALaiAOIA9CABD8AyACQbAMaiASIBJCABD8AyACQeALaiAQIBBCABD8AyACQbALaiAPIA9CABD8AyACQfAKaiAOIA5CABD8AyACQaAMaiACKQOwDCIcQpuUr8Pytajehn9+Ig5CbUIAEPwDIAJBkAxqIA5Cf0IAEPwDIAJBgAxqIA5C////////////AEIAEPwDIAJBuAtqKQMAIRIgAiACQegLaikDACACKQPgCyIOIAJB+AtqKQMAIhAgAikD0At8IhNCAYYgAikD8AsiEUI/iIR8Ig8gDlStfCAPIAJBuAxqKQMAIg4gEUIBhnwiGCAOVK18IhYgD1StfCIRIAJB2AtqKQMAIBAgE1atfCIOIAIpA6ALfCIUIAIpA8ALfCIXQgGGIBNCP4iEfCIPIBFUrSIQIAIpA7ALfCIVIAJBqAtqKQMAIA4gFFatfCIRIAIpA5ALfCITIAJByAtqKQMAIBQgF1atfHwiFEIBhiAXQj+IhHwiDjcDgBEgAiAOIBVUrSASIBAgFVatfHwiEiATIBRWrSACQZgL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QdgJaikDACIcIAIpA5AJIhh8IhZ8IhkgAkHICWopAwAgEyACKQPACSIRfCARVK18fCIUIBh8IhdCm5Svw/K1qN6Gf34iEUJtQgAQ/AMgAkHwCGogEUJ/QgAQ/AMgAkHgCGogEUL///////////8AQgAQ/AMgAkHwB2ogDyAPQgAQ/AMgAkGQB2ogDyAOQgAQ/AMgAkGwCGogAkGYCWopAwAiESAUIBdWrXwiFSACKQPQCHwiKSAaIBEgFiAcVK18IhMgAikDwAgiFnwiInwiHyAUIBlUrSACQbgJaikDACIUIBkgGlStfHx8Ihx8IiYgAikD8AgiGHwiHSACQYgJaikDACACKQOACSIRIBd8IBFUrXx8IhcgFnwiIEKblK/D8rWo3oZ/fiIRQm1CABD8AyACQaAIaiARQn9CABD8AyACQZAIaiARQv///////////wBCABD8AyACQYAHaiAOIA5CABD8AyACQdAHaiACQcgIaikDACIWIBcgIFatfCIZIAIpA4AIIhF8IiwgGCARIBYgEyAiVq18IhMgAikD4AciFnwiGyACKQOgCXwiGiAcIB9UrSAUIB8gIlStfHx8IiJ8IhQgJiApVK0gAkHYCGopAwAgFSApVq18fHwiH3wiFSAXIB1UrSACQfgIaikDACIcIB0gJlStfHx8Ihh8Ii0gAikDoAgiF3wiKyACQbgIaikDACACKQOwCCIRICB8IBFUrXx8IikgFnwiJkKblK/D8rWo3oZ/fiIRQm1CABD8AyACQcAHaiARQn9CABD8AyACQbAHaiARQv///////////wBCABD8AwJAAkACQCACQbgHaikDACACQZgIaikDACACQegIaikDACAaICJWrSACQagJaikDACAaIBtUrXx8IhYgAkHoB2opAwAiICATIBtWrXx8Ih0gAikDoAciGnwiGyAUIB9WrSACQYgIaikDACIRIBQgIlStfHx8IhQgAikD4Ah8IhMgFFStfCATIBUgGFatIBwgFSAfVK18fHwiHyATVK18IhUgFCAbVK0gAkGoB2opAwAiFCAbIB1UrXx8IhMgFiAdVq18Ihx8IiIgAikDkAciGHwiHSACQfgHaikDACAfIB8gAikD8Ad8IhtWrXwgGyAbICwgLVatIBEgGSAsVq18fHwiFlatfHwiGyACKQOQCHwiGSAbVK18IBkgAkGoCGopAwAiESAWIBYgF3wiF1atfCAXIBcgKSArVK0gESArIC1UrXx8fCIWVq18fCIfIBlUrXwiGSAbIB1UrSACQZgHaikDACIRIB0gIlStfHwiFyAVICJWrSATIBxWrXx8Ihx8Ih0gAikDgAd8IhsgESAfIBggH3wiE1atfCATIBMgFCAgICYgKVStfCIRIBp8IhggEVStfCAYIBYgGHwiFFatfHwiGFatfHwiGiACKQOwB3wiFSAaVK18IBUgFSACQcgHaikDACIWIBggGCACKQPAByIRfCITVq18IBMgEyAWIBQgESAUfCIYVq18IBggGCACQdgHaikDACAmIAIpA9AHIhF8IBFUrXx8IhhWrXx8IhNWrXx8IhRWrXwiFSAaIBtUrSACQYgHaikDACAbIB1UrXx8IhYgGSAdVq0gFyAcVq18fCIRfCIcQgBTIBUgHFatQgAgESAWVK19UnINACAcQv///////////wBSDQEgFEJ/UgRAQv///////////wAhHAwCC0J/IRYgE0J/UgRAQv///////////wAhHCATIREMAwsgGEJtWg0AQv///////////wAhHEJ/IREMAgsgE0IBfCIXIBhCbVStIhZ9IREgFEIBfCIVIBNCf1IgFiAXVnKtIhN9IRYgHCAUQn9SIBMgFVZyrX1C////////////AH0hHCAYQhN8IRgMAQsgFCEWIBMhEQsgAkHwBmogJyASQgAQ/AMgAkGABmogHiASQgAQ/AMgAkGQBWogISASQgAQ/AMgAkGgBGogJSASQgAQ/AMgAkHgBmogAikD8AYiFEKblK/D8rWo3oZ/fiISQm1CABD8AyACQdAGaiASQn9CABD8AyACQcAGaiASQv///////////wBCABD8AyACQbAGaiAnIBBCABD8AyACQcAFaiAeIBBCABD8AyACQdAEaiAhIBBCABD8AyACQeADaiAlIBBCABD8AyACQfAFaiACKQPQBiIgIAJB+AZqKQMAIhMgAikDgAZ8IhJ8IhogAkHoBmopAwAgFCACKQPgBiIQfCAQVK18fCIUIAIpA7AGfCIZQpuUr8Pytajehn9+IhBCbUIAEPwDIAJB4AVqIBBCf0IAEPwDIAJB0AVqIBBC////////////AEIAEPwDIAJBoAZqICcgD0IAEPwDIAJBsAVqIB4gD0IAEPwDIAJBwARqICEgD0IAEPwDIAJB0ANqICUgD0IAEPwDIAJBgAVqIAJBuAZqKQMAIBQgGVatfCIXIAIpA8AFfCIpICAgAkGIBmopAwAgEiATVK18IhUgAikDkAV8Ih98Ih0gFCAaVK0gAkHYBmopAwAiFCAaICBUrXx8fCIPfCIbIAIpA+AFIhJ8IhogAkH4BWopAwAgAikD8AUiECAZfCAQVK18fCIZIAIpA6AGfCIgQpuUr8Pytajehn9+IhBCbUIAEPwDIAJB8ARqIBBCf0IAEPwDIAJB4ARqIBBC////////////AEIAEPwDIAJBkAZqICcgDkIAEPwDIAJBoAVqIB4gDkIAEPwDIAJBsARqICEgDkIAEPwDIAJBwANqICUgDkIAEPwDIAJBkARqIAJBqAZqKQMAIBkgIFatfCITIAIpA7AFfCImIBIgAkGYBWopAwAgFSAfVq18Ih4gAikDoAR8IiIgAikDwAZ8IhUgDyAdVK0gFCAdIB9UrXx8fCIfIAIpA9AEfCIhIBsgKVStIAJByAVqKQMAIBcgKVatfHx8Ih18IhQgGSAaVK0gAkHoBWopAwAiDyAaIBtUrXx8fCISfCIaIAIpA/AEIhB8IhkgAkGIBWopAwAgAikDgAUiDiAgfCAOVK18fCIbIAIpA5AGfCIgQpuUr8Pytajehn9+Ig5CbUIAEPwDIAJBgARqIA5Cf0IAEPwDIAJB8ANqIA5C////////////AEIAEPwDAkACQCACQfgDaikDACACQegEaikDACACQdgFaikDACAVIB9WrSACQcgGaikDACAVICJUrXx8Ig4gAkGoBGopAwAgHiAiVq18fCIXIAIpA+ADfCIVIB0gIVStIAJB2ARqKQMAIB8gIVatfHx8IiEgAikD0AV8Ih4gIVStfCAeIBIgFFStIA8gFCAdVK18fHwiFCAeVK18Ih4gFSAhVq0gAkHoA2opAwAgFSAXVK18fCIPIA4gF1atfCISfCIXIAIpA9ADfCIVIAJByARqKQMAIBQgFCACKQPABHwiDlatfCAOIBogJlStIAJBuAVqKQMAIBMgJlatfHx8IhQgDlStfHwiISACKQPgBHwiEyAhVK18IBMgAkH4BGopAwAiDiAUIBAgFHwiEFatfCAQIBAgGSAbVq0gDiAZIBpUrXx8fCIQVq18fCIOIBNUrXwiFCAVICFWrSACQdgDaikDACAVIBdUrXx8IhMgFyAeVK0gDyASVq18fCISfCIaIAIpA8ADfCIZIAJBuARqKQMAIA4gDiACKQOwBHwiHlatfCAeIB4gAkGoBWopAwAgAkGYBmopAwAgGyAgVq18Ig4gAikDoAV8Ig8gDlStfCAPIA8gEHwiF1atfHwiD1atfHwiFSACKQPwA3wiISAVVK18ICEgAkGIBGopAwAiECAPIA8gAikDgAQiDnwiHlatfCAeIB4gECAXIA4gF3wiD1atfCAPIAJBmARqKQMAICAgAikDkAQiDnwgDlStfHwiJyAPVK18fCIOVq18fCIQICFUrXwiHiAVIBlUrSACQcgDaikDACAZIBpUrXx8Ig8gFCAaVq0gEiATVK18fCISfCIlQgBTIB4gJVatQgAgDyASVq19UnINAAJAICVC////////////AFEEQCAQQn9RDQFC////////////ACElCyAQISEgDiEeDAILQn8hISAOQn9SBEBC////////////ACElIA4hHgwCCyAnQm1aDQBC////////////ACElQn8hHgwBCyAOQgF8IhMgJ0JtVK0iD30hHiAQQgF8IhIgDkJ/UiAPIBNWcq0iDn0hISAlIBBCf1IgDiASVnKtfUL///////////8AfSElICdCE3whJwsgAkGwA2ogKiAYQgAQ/AMgAkHwAmogJCAYQgAQ/AMgAkHgAmogIyAYQgAQ/AMgAkHQAmogKCAYQgAQ/AMgAkGgA2ogAikDsAMiD0KblK/D8rWo3oZ/fiIOQm1CABD8AyACQZADaiAOQn9CABD8AyACQYADaiAOQv///////////wBCABD8AyACQcACaiAqIBFCABD8AyACQYACaiAkIBFCABD8AyACQfABaiAjIBFCABD8AyACQeABaiAoIBFCABD8AyACQbACaiACKQOQAyIZIAJBuANqKQMAIhIgAikD8AJ8IhB8IhcgAkGoA2opAwAgDyACKQOgAyIOfCAOVK18fCIPIAIpA8ACfCIVQpuUr8Pytajehn9+Ig5CbUIAEPwDIAJBoAJqIA5Cf0IAEPwDIAJBkAJqIA5C////////////AEIAEPwDIAJB0AFqICogFkIAEPwDIAJBkAFqICQgFkIAEPwDIAJBgAFqICMgFkIAEPwDIAJB8ABqICggFkIAEPwDIAJBwAFqIAJByAJqKQMAIA8gFVatfCIUIAIpA4ACfCImIBkgAkH4AmopAwAgECASVK18IhMgAikD4AJ8Ih98Ih0gDyAXVK0gAkGYA2opAwAiDyAXIBlUrXx8fCISfCIbIAIpA6ACIhB8IhogAkG4AmopAwAgAikDsAIiDiAVfCAOVK18fCIZIAIpA9ABfCIgQpuUr8Pytajehn9+Ig5CbUIAEPwDIAJBsAFqIA5Cf0IAEPwDIAJBoAFqIA5C////////////AEIAEPwDIAJB4ABqICogHEIAEPwDIAJBIGogJCAcQgAQ/AMgAkEQaiAjIBxCABD8AyACICggHEIAEPwDIAJB0ABqIAJB2AFqKQMAIBkgIFatfCIkIAIpA5ABfCIiIBAgAkHoAmopAwAgEyAfVq18IhMgAikD0AJ8IhcgAikDgAN8IhUgEiAdVK0gDyAdIB9UrXx8fCIfIAIpA/ABfCIjIBsgJlStIAJBiAJqKQMAIBQgJlatfHx8Ih18IhQgGSAaVK0gAkGoAmopAwAiDyAaIBtUrXx8fCISfCIaIAIpA7ABIhB8IhkgAkHIAWopAwAgAikDwAEiDiAgfCAOVK18fCIbIAIpA2B8IiBCm5Svw/K1qN6Gf34iDkJtQgAQ/AMgAkFAayAOQn9CABD8AyACQTBqIA5C////////////AEIAEPwDAkACQCACQThqKQMAIAJBqAFqKQMAIAJBmAJqKQMAIBUgH1atIAJBiANqKQMAIBUgF1StfHwiDiACQdgCaikDACATIBdWrXx8IhcgAikD4AF8IhUgHSAjVK0gAkH4AWopAwAgHyAjVq18fHwiIyACKQOQAnwiEyAjVK18IBMgEiAUVK0gDyAUIB1UrXx8fCIUIBNUrXwiEyAVICNWrSACQegBaikDACAVIBdUrXx8Ig8gDiAXVq18IhJ8IhcgAikDcHwiFSACQYgBaikDACAUIBQgAikDgAF8Ig5WrXwgDiAaICJUrSACQZgBaikDACAiICRUrXx8fCIUIA5UrXx8IiMgAikDoAF8IiQgI1StfCAkIAJBuAFqKQMAIg4gFCAQIBR8IhBWrXwgECAQIBkgG1atIA4gGSAaVK18fHwiEFatfHwiDiAkVK18IhQgFSAjVq0gAkH4AGopAwAgFSAXVK18fCIkIBMgF1atIA8gElatfHwiEnwiGiACKQMAfCIZIAJBGGopAwAgDiAOIAIpAxB8IhNWrXwgEyATIAJBKGopAwAgAkHoAGopAwAgGyAgVq18Ig4gAikDIHwiDyAOVK18IA8gDyAQfCIXVq18fCIPVq18fCIVIAIpAzB8IiMgFVStfCAjIAJByABqKQMAIhAgDyAPIAIpA0AiDnwiE1atfCATIBMgECAXIA4gF3wiD1atfCAPIAJB2ABqKQMAICAgAikDUCIOfCAOVK18fCIqIA9UrXx8Ig5WrXx8IhAgI1StfCITIBUgGVStIAJBCGopAwAgGSAaVK18fCIPIBQgGlatIBIgJFStfHwiEnwiKEIAUyATIChWrUIAIA8gElatfVJyDQACQCAoQv///////////wBRBEAgEEJ/UQ0BQv///////////wAhKAsgECEjIA4hJAwCC0J/ISMgDkJ/UgRAQv///////////wAhKCAOISQMAgsgKkJtWg0AQv///////////wAhKEJ/ISQMAQsgDkIBfCITICpCbVStIg99ISQgEEIBfCISIA5Cf1IgDyATVnKtIg59ISMgKCAQQn9SIA4gElZyrX1C////////////AH0hKCAqQhN8ISoLIAdBAWohCCACICo3A7gQIAIgJDcDsBAgAiAjNwOoECACICg3A6AQIAJBoBBqQdC5wABBIBCuBQ0ACwsgAiAeNwOQECACICc3A5gQIAIgITcDiBAgAiAlNwOAECACQYAQakGQuMAAQSAQrgUEQCAeQn+FIhAgJ0JtVq0iDn0hHiAhQn+FIhEgDiAQVq0iDn0hIUJ/QgAgDiARVhsgJX1C////////////AHwhJUJtICd9IScLIAQgAikDgBA3AwggBCAnNwNAIAQgHjcDOCAEICE3AzAgBCAlNwMoIARCATcDACAEQSBqIAJBmBBqKQMANwMAIARBGGogAkGQEGopAwA3AwAgBEEQaiACQYgQaikDADcDAAsgAkGgEWokAAJAAkAgAykDOFBFBEAgA0G4AWoiBiADQdgAaikDADcDACADQbABaiADQdAAaiIKKQMAIhA3AwAgA0GoAWogA0HIAGoiBykDACIRNwMAIANBiAFqIgkgA0HoAGopAwA3AwAgA0GQAWoiBSADQfAAaikDADcDACADQZgBaiIBIANB+ABqKQMANwMAIAMgAykDQCIONwOgASADIAMpA2A3A4ABIANBEGogEDcDACADQQhqIBE3AwAgA0EYaiAGKQMANwMAIAMgDjcDACAKIAEpAwA3AwAgByAFKQMANwMAIANBQGsgCSkDADcDACADIAMpA4ABNwM4IANBIGogAxCZAyADQSxqIAQQmQMCQAJAIAMoAigiBSADKAI0IgFGBEAgAygCJEEEayEGIAMoAjBBBGshCiAFQQJ0IQEDQCABRQ0CIAEgBmohByABIApqIAFBBGshASgCACIJIAcoAgAiBUYNAAsgBSAJTw0EDAILIAEgBUsNAQwDCyABRQ0CCyADKAIsIgEEQCADKAIwIAFBAnQQlAULIAMoAiAiAQRAIAMoAiQgAUECdBCUBQsgACADKQMANwMAIABBGGogA0EYaikDADcDACAAQRBqIANBEGopAwA3AwAgAEEIaiADQQhqKQMANwMADAILQYaZwQBBEEGYmcEAEKoEAAsgAygCLCIBBEAgAygCMCABQQJ0EJQFCyADKAIgIgEEQCADKAIkIAFBAnQQlAULIAAgAykDODcDACAAQRhqIANB0ABqKQMANwMAIABBEGogA0HIAGopAwA3AwAgAEEIaiADQUBrKQMANwMACyADQcABaiQAC9lFAgx/IH4jAEHAAWsiAyQAIANBOGohBCMAQYAMayICJAACQAJAAkACQAJAAkAgARDIA0H/AXFBAWsOAgABAgsgBEIANwMIIARCATcDACAEQUBrQgA3AwAgBEE4akIANwMAIARBMGpCADcDACAEQShqQgA3AwAgBEEgakIANwMAIARBGGpCADcDACAEQRBqQgA3AwAMBAsgAkGwCmpCADcDACACQagKakIANwMAIAJCADcDoAogAkIBNwO4CgJAQeC4wABBkLjAAEEgEK4FIg0EQCACQn43A/gLIAJC/////x83A/ALIAJCADcD6AsgAkKCgICAYDcD4AsMAQsgAkH4C2pB+LjAACkDADcDACACQfALakHwuMAAKQMANwMAIAJB6AtqQei4wAApAwA3AwAgAkHguMAAKQMANwPgCwsgAkHACmogAkHgC2oiBRDEAiACKQPACiEXIAIpA8gKIR0gAikD0AohFiACKQPYCiEeIAJB8AtqIgZCADcDACACQegLaiIHQgA3AwAgAkIANwPgCyACIB5CAYM3A/gLIAUgAkGgCmpBIBCuBQ0BQQAhBQwCCyAEQgA3AwAMAgtB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////DyERIBVCf1ENAQtCgYCAgHAhEwwBCyAOQv////8PfSIXIBVCf1KtIg99IREgECAOQv////8PVCAPIBdWcq0iDn0hFyATIA4gEFatfUL/////D3whEyAVQgF8IRULIAhBAWsiCA0ACwsgAkHQBmogFSIQIBBCABD8AyACQbAGaiAQIBEiD0IAEPwDIAJBgAZqIBAgFyISQgAQ/AMgAkHABWogECATIhZCABD8AyACQcAGaiACKQPQBiIOQoGAgIBwQgAQ/AMgAkGQBmogDyAPQgAQ/AMgAkHgBWogDyASQgAQ/AMgAkGgBWogDyATQgAQ/AMgAkGgBmogDkIghiIUIAJB2AZqKQMAIhggAikDsAYiEXwiGXwiFSARfCIRQoGAgIBwQgAQ/AMgAkHQBWogEiASQgAQ/AMgAkGQBWogEiATQgAQ/AMgAkHwBWogEUIghiIaIBQgFVatIA5CIIh8IhsgAkG4BmopAwAiFyAYIBlWrXwiGCACKQOABiIZfCIffCIOIAIpA5AGfCIUIBcgESAVVK18fCIgfCIVIBl8IhdCgYCAgHBCABD8AyACQYAFaiATIBNCABD8AyACQbAFaiAXQiCGIiQgFSAaVK0gEUIgiHwiJyACQYgGaikDACIRIBggH1atfCIfIAIpA8AFIih8IhMgAikDwAZ8IhggDiAbVK18IhkgAikD4AUiG3wiGiAUICBWrSACQZgGaikDACAOIBRWrXx8fCIgfCIOIBt8IhQgESAVIBdWrXx8Iil8IhUgKHwiEUKBgICAcEIAEPwDAkACQCACQbgFaikDACACQagFaikDACIoIAJByAVqKQMAIisgESAVVK18IiogAikDoAUiLHwiGyAqVK18IBsgGyAUIClWrSACQegFaikDACIpIA4gFFatfHwiKiACKQPQBXwiFCAOICdUrSInIAIpA6AGfCIOICwgGCAZVq0gAkHIBmopAwAgEyAYVq18fCItICsgEyAfVK18fCITfCIYIBogIFatICkgGSAaVq18fHwiH3wiIHwiGSAVICRUrSAXQiCIfHwiFXwiJFatfCIbIAIpA5AFIil8IhcgFSAZVK0iKyACKQPwBXwiGiAOICBWrSACQagGaikDACAOICdUrXx8IiAgGCAfVq0gKCATIBhWrXx8Ih8gEyAtVK18Iid8IhMgKXwiGCAUIBlWrSAC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ECApQq/4//9vVK0iEX0hHiAPQgF8IhIgDkJ/UiAQIBFUcq0iDn0hJCAoIA9Cf1IgDiASVnKtfUIBfCEoIClC0YeAgBB8ISkMAQsgDyEkIA4hHgsgBkEBaiEFIAIgKTcD+A0gAiAeNwPwDSACICQ3A+gNIAIgKDcD4A0gAkHgDWpBgLnAAEEgEK4FDQALCyACIBo3A9ANIAIgJzcD2A0gAiAfNwPIDSACICI3A8ANIAJBwA1qQZC4wABBIBCuBQRAIBpCf4UiDiAnQq/4//9vVq0iD30hGiAfQn+FIhMgDiAPVK0iDn0hH0Kv+P//byAnfSEnICJCf4UgDiATVq19ISILIAQgAikDwA03AwggBCAnNwNAIAQgGjcDOCAEIB83AzAgBCAiNwMoIARCATcDACAEQSBqIAJB2A1qKQMANwMAIARBGGogAkHQDWopAwA3AwAgBEEQaiACQcgNaikDADcDAAsgAkHgDmokAAJAAkAgAykDOFBFBEAgA0G4AWoiASADQdgAaikDADcDACADQbABaiADQdAAaiICKQMAIg43AwAgA0GoAWogA0HIAGoiBSkDACIPNwMAIANBiAFqIgYgA0HoAGopAwA3AwAgA0GQAWoiCCADQfAAaikDADcDACADQZgBaiIKIANB+ABqKQMANwMAIAMgAykDQCITNwOgASADIAMpA2A3A4ABIANBEGogDjcDACADQQhqIA83AwAgA0EYaiABKQMANwMAIAMgEzcDACACIAopAwA3AwAgBSAIKQMANwMAIANBQGsgBikDADcDACADIAMpA4ABNwM4IANBIGogAxCeAyADQSxqIAQQngMCQAJAIAMoAigiASADKAI0IgJGBEAgAygCJEEEayECIAMoAjBBBGshBCABQQJ0IQEDQCABRQ0CIAEgAmohBSABIARqIAFBBGshASgCACIGIAUoAgAiBUYNAAsgBSAGTw0EDAILIAEgAkkNAQwDCyABRQ0CCyADKAIsIgEEQCADKAIwIAFBAnQQlAULIAMoAiAiAQRAIAMoAiQgAUECdBCUBQsgACADKQMANwMAIABBGGogA0EYaikDADcDACAAQRBqIANBEGopAwA3AwAgAEEIaiADQQhqKQMANwMADAILQYaZwQBBEEGYmcEAEKoEAAsgAygCLCIBBEAgAygCMCABQQJ0EJQFCyADKAIgIgEE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IBN8IhdCiceZpK7wgemHf34iE0LH+vPD7YKjkDxCABD8AyACQdAIaiATQo2Vx8OW0trAl39CABD8AyACQcAIaiATQt2whYzotpGouH9CABD8AyACQbAIaiATQqnAxomuzpOyMEIAEPwDAkACQAJAIAJBuAhqKQMAIAJBqAlqKQMAIAJBiApqKQMAIBQgJFStIAJB2ApqKQMAIB4gJFatfHwgAkH4CGopAwAiJCAeIChUrXx8Ih4gAikDoAgiJ3wiEyASIBVUrSACQZgJaikDACIoIBQgFVatfHx8IhQgAikDgAp8IhUgFFStfCAVICMgJlatIAJBmApqKQMAIBIgI1atfHx8IhIgFVStfCATIBRWrSACQagIaikDACIjIBMgHlStfHx8Ih4gAikDkAgiJnwiEyACQYgJaikDACASIBIgAikDgAl8IhRWrXwgFCAUIBYgHFStICggHCApVK18fHwiElatfHwiFCACKQOgCXwiFSAUVK18IBUgAkG4CWopAwAgEiASIAIpA7AJfCIcVq18IBwgHCAYIBlWrSACQcgJaikDACAWIBhWrXx8fCISVq18fCIWIBVUrXwgEyAUVq0gAkGYCGopAwAiFCATIB5UrXx8fCIcIAIpA4AIfCITIBQgFiAWICZ8IhhWrXwgGCAYICMgJCAXIBlUrXwiGSAnfCIWIBlUrXwgFiASIBZ8IhlWrXx8IhZWrXx8IhggAikDsAh8IhUgGFStfCAVIBUgAkHICGopAwAgFiAWIAIpA8AIfCISVq18IBIgEiACQdgIaikDACAZIBkgAikD0Ah8IhZWrXwgFiACQegIaikDACACKQPgCCIZIBd8IBlUrXx8IhkgFlStfHwiElatfHwiFFatfCATIBhWrSACQYgIaikDACATIBxUrXx8fCIWQqnAxomuzpOyMFYNACAWQqnAxomuzpOyMFINASAUQt2whYzotpGouH9WDQAgFELdsIWM6LaRqLh/UgRAQqnAxomuzpOyMCEWDAILIBJCjZXHw5bS2sCXf1YNAELdsIWM6LaRqLh/IRggEkKNlcfDltLawJd/UgRAQqnAxomuzpOyMCEWIBIhEwwDC0KNlcfDltLawJd/IRMgGULH+vPD7YKjkDxaDQBCqcDGia7Ok7IwIRYMAgsgEkLz6ri86a2lv+gAfCIYIBlCx/rzw+2Co5A8VK0i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AGopAwA3AwAgA0GwAWogA0HQAGoiAikDACIONwMAIANBqAFqIANByABqIgUpAwAiDzcDACADQYgBaiIGIANB6ABqKQMANwMAIANBkAFqIgggA0HwAGopAwA3AwAgA0GYAWoiCiADQfgAaikDADcDACADIAMpA0AiETcDoAEgAyADKQNgNwOAASADQRBqIA43AwAgA0EIaiAPNwMAIANBGGogASkDADcDACADIBE3AwAgAiAKKQMANwMAIAUgCCkDADcDACADQUBrIAYpAwA3AwAgAyADKQOAATcDOCADQSBqIAMQmgMgA0EsaiAEEJoDAkACQCADKAIoIgEgAygCNCICRgRAIAMoAiRBBGshAiADKAIwQQRrIQQgAUECdCEBA0AgAUUNAiABIAJqIQUgASAEaiABQQRrIQEoAgAiBiAFKAIAIgVGDQALIAUgBk8NBAwCCyABIAJJDQEMAwsgAUUNAgsgAygCLCIBBEAgAygCMCABQQJ0EJQFCyADKAIgIgEEQCADKAIkIAFBAnQQlAULIAAgAykDADcDACAAQRhqIANBGGopAwA3AwAgAEEQaiADQRBqKQMANwMAIABBCGogA0EIaikDADcDAAwCC0GGmcEAQRBBmJnBABCqBAALIAMoAiwiAQRAIAMoAjAgAUECdBCUBQsgAygCICIBBEAgAygCJCABQQJ0EJQFCyAAIAMpAzg3AwAgAEEYaiADQdAAaikDADcDACAAQRBqIANByABqKQMANwMAIABBCGogA0FAaykDADcDAAsgA0HAAWokAAv7AQECfyMAQSBrIgIkACACQRhqQgA3AwAgAkEQakIANwMAIAJBCGpCADcDACACQgA3AwAgAkEYaiABKQMYQgGGNwMAQQMhAwJAAkAgAkEQaiABKQMQQgGGIAFBGGopAwBCP4iENwMAQQIiA0EDSw0AIAJBCGogASkDCEIBhiABQRBqKQMAQj+IhDcDAEEBIQMMAQsgA0EEQfykwAAQmAQACyACIAEpAwBCAYYgAUEIaikDAEI/iIQ3AwAgACACKQMANwMAIABBGGogAkEYaikDADcDACAAQRBqIAJBEGopAwA3AwAgAEEIaiACQQhqKQMANwMAIAJBIGokAA8LngUBEH8jAEHQAGsiAyQAIANByABqIgsgAkEYaiIMKQMANwMAIANBQGsiDSACQRBqIg4pAwA3AwBBCCEJIANBOGoiDyACQQhqIhApAwA3AwAgAyACKQMANwMwIAMgASADQTBqEP0CQQghCAJAAkAgASgCFCIERQ0AIARBBXQhByAEQf///x9LBEAMAgsgASgCECERQbnRwgAtAAAaQQghBSAHQQgQiwUiCEUNASAEQQV0IRIgBCEFA0AgBiASRg0BIAYgCGoiByAGIBFqIgopAwA3AwAgB0EYaiAKQRhqKQMANwMAIAdBEGogCkEQaikDADcDACAHQQhqIApBCGopAwA3AwAgBkEgaiEGIAVBAWsiBQ0ACwsgAyAENgIUIAMgCDYCECADIAQ2AgwgCyAMKQMANwMAIA0gDikDADcDACAPIBApAwA3AwAgAyACKQMANwMwIANBGGogAUEYaiADQTBqEP0CAkACQCABKAIsIgJFDQAgAkEFdCEEIAJB////H0sEQEEAIQUMAgsgASgCKCEIQQAhBkG50cIALQAAGkEIIQUgBEEIEIsFIglFDQEgAkEFdCEHIAIhBQNAIAYgB0YNASAGIAlqIgEgBiAIaiIEKQMANwMAIAFBGGogBEEYaikDADcDACABQRBqIARBEGopAwA3AwAgAUEIaiAEQQhqKQMANwMAIAZBIGohBiAFQQFrIgUNAAsLIANBKGoiASAJNgIAIAMgAjYCLCADIAI2AiQgAEEQaiADQRBqKQIANwIAIABBCGogA0EIaikCADcCACAAIAMpAgA3AgAgACADKQIYNwIYIABBIGogA0EgaikCADcCACAAQShqIAEpAgA3AgAgA0HQAGokAA8LIAUgBBCDBQALIAUgBxCDBQALngUBEH8jAEHQAGsiAyQAIANByABqIgsgAkEYaiIMKQMANwMAIANBQGsiDSACQRBqIg4pAwA3AwBBCCEJIANBOGoiDyACQQhqIhApAwA3AwAgAyACKQMANwMwIAMgASADQTBqEP4CQQghCAJAAkAgASgCFCIERQ0AIARBBXQhByAEQf///x9LBEAMAgsgASgCECERQbnRwgAtAAAaQQghBSAHQQgQiwUiCEUNASAEQQV0IRIgBCEFA0AgBiASRg0BIAYgCGoiByAGIBFqIgopAwA3AwAgB0EYaiAKQRhqKQMANwMAIAdBEGogCkEQaikDADcDACAHQQhqIApBCGopAwA3AwAgBkEgaiEGIAVBAWsiBQ0ACwsgAyAENgIUIAMgCDYCECADIAQ2AgwgCyAMKQMANwMAIA0gDikDADcDACAPIBApAwA3AwAgAyACKQMANwMwIANBGGogAUEYaiADQTBqEP4CAkACQCABKAIsIgJFDQAgAkEFdCEEIAJB////H0sEQEEAIQUMAgsgASgCKCEIQQAhBkG50cIALQAAGkEIIQUgBEEIEIsFIglFDQEgAkEFdCEHIAIhBQNAIAYgB0YNASAGIAlqIgEgBiAIaiIEKQMANwMAIAFBGGogBEEYaikDADcDACABQRBqIARBEGopAwA3AwAgAUEIaiAEQQhqKQMANwMAIAZBIGohBiAFQQFrIgUNAAsLIANBKGoiASAJNgIAIAMgAjYCLCADIAI2AiQgAEEQaiADQRBqKQIANwIAIABBCGogA0EIaikCADcCACAAIAMpAgA3AgAgACADKQIYNwIYIABBIGogA0EgaikCADcCACAAQShqIAEpAgA3AgAgA0HQAGokAA8LIAUgBBCDBQALIAUgBxCDBQALngUBEH8jAEHQAGsiAyQAIANByABqIgsgAkEYaiIMKQMANwMAIANBQGsiDSACQRBqIg4pAwA3AwBBCCEJIANBOGoiDyACQQhqIhApAwA3AwAgAyACKQMANwMwIAMgASADQTBqEIADQQghCAJAAkAgASgCFCIERQ0AIARBBXQhByAEQf///x9LBEAMAgsgASgCECERQbnRwgAtAAAaQQghBSAHQQgQiwUiCEUNASAEQQV0IRIgBCEFA0AgBiASRg0BIAYgCGoiByAGIBFqIgopAwA3AwAgB0EYaiAKQRhqKQMANwMAIAdBEGogCkEQaikDADcDACAHQQhqIApBCGopAwA3AwAgBkEgaiEGIAVBAWsiBQ0ACwsgAyAENgIUIAMgCDYCECADIAQ2AgwgCyAMKQMANwMAIA0gDikDADcDACAPIBApAwA3AwAgAyACKQMANwMwIANBGGogAUEYaiADQTBqEIADAkACQCABKAIsIgJFDQAgAkEFdCEEIAJB////H0sEQEEAIQUMAgsgASgCKCEIQQAhBkG50cIALQAAGkEIIQUgBEEIEIsFIglFDQEgAkEFdCEHIAIhBQNAIAYgB0YNASAGIAlqIgEgBiAIaiIEKQMANwMAIAFBGGogBEEYaikDADcDACABQRBqIARBEGopAwA3AwAgAUEIaiAEQQhqKQMANwMAIAZBIGohBiAFQQFrIgUNAAsLIANBKGoiASAJNgIAIAMgAjYCLCADIAI2AiQgAEEQaiADQRBqKQIANwIAIABBCGogA0EIaikCADcCACAAIAMpAgA3AgAgACADKQIYNwIYIABBIGogA0EgaikCADcCACAAQShqIAEpAgA3AgAgA0HQAGokAA8LIAUgBBCDBQALIAUgBxCDBQALngUBEH8jAEHQAGsiAyQAIANByABqIgsgAkEYaiIMKQMANwMAIANBQGsiDSACQRBqIg4pAwA3AwBBCCEJIANBOGoiDyACQQhqIhApAwA3AwAgAyACKQMANwMwIAMgASADQTBqEIEDQQghCAJAAkAgASgCFCIERQ0AIARBBXQhByAEQf///x9LBEAMAgsgASgCECERQbnRwgAtAAAaQQghBSAHQQgQiwUiCEUNASAEQQV0IRIgBCEFA0AgBiASRg0BIAYgCGoiByAGIBFqIgopAwA3AwAgB0EYaiAKQRhqKQMANwMAIAdBEGogCkEQaikDADcDACAHQQhqIApBCGopAwA3AwAgBkEgaiEGIAVBAWsiBQ0ACwsgAyAENgIUIAMgCDYCECADIAQ2AgwgCyAMKQMANwMAIA0gDikDADcDACAPIBApAwA3AwAgAyACKQMANwMwIANBGGogAUEYaiADQTBqEIEDAkACQCABKAIsIgJFDQAgAkEFdCEEIAJB////H0sEQEEAIQUMAgsgASgCKCEIQQAhBkG50cIALQAAGkEIIQUgBEEIEIsFIglFDQEgAkEFdCEHIAIhBQNAIAYgB0YNASAGIAlqIgEgBiAIaiIEKQMANwMAIAFBGGogBEEYaikDADcDACABQRBqIARBEGopAwA3AwAgAUEIaiAEQQhqKQMANwMAIAZBIGohBiAFQQFrIgUNAAsLIANBKGoiASAJNgIAIAMgAjYCLCADIAI2AiQgAEEQaiADQRBqKQIANwIAIABBCGogA0EIaikCADcCACAAIAMpAgA3AgAgACADKQIYNwIYIABBIGogA0EgaikCADcCACAAQShqIAEpAgA3AgAgA0HQAGokAA8LIAUgBBCDBQALIAUgBxCDBQALngUBEH8jAEHQAGsiAyQAIANByABqIgsgAkEYaiIMKQMANwMAIANBQGsiDSACQRBqIg4pAwA3AwBBCCEJIANBOGoiDyACQQhqIhApAwA3AwAgAyACKQMANwMwIAMgASADQTBqEP8CQQghCAJAAkAgASgCFCIERQ0AIARBBXQhByAEQf///x9LBEAMAgsgASgCECERQbnRwgAtAAAaQQghBSAHQQgQiwUiCEUNASAEQQV0IRIgBCEFA0AgBiASRg0BIAYgCGoiByAGIBFqIgopAwA3AwAgB0EYaiAKQRhqKQMANwMAIAdBEGogCkEQaikDADcDACAHQQhqIApBCGopAwA3AwAgBkEgaiEGIAVBAWsiBQ0ACwsgAyAENgIUIAMgCDYCECADIAQ2AgwgCyAMKQMANwMAIA0gDikDADcDACAPIBApAwA3AwAgAyACKQMANwMwIANBGGogAUEYaiADQTBqEP8CAkACQCABKAIsIgJFDQAgAkEFdCEEIAJB////H0sEQEEAIQUMAgsgASgCKCEIQQAhBkG50cIALQAAGkEIIQUgBEEIEIsFIglFDQEgAkEFdCEHIAIhBQNAIAYgB0YNASAGIAlqIgEgBiAIaiIEKQMANwMAIAFBGGogBEEYaikDADcDACABQRBqIARBEGopAwA3AwAgAUEIaiAEQQhqKQMANwMAIAZBIGohBiAFQQFrIgUNAAsLIANBKGoiASAJNgIAIAMgAjYCLCADIAI2AiQgAEEQaiADQRBqKQIANwIAIABBCGogA0EIaikCADcCACAAIAMpAgA3AgAgACADKQIYNwIYIABBIGogA0EgaikCADcCACAAQShqIAEpAgA3AgAgA0HQAGokAA8LIAUgBBCDBQALIAUgBxCDBQALuwUCC38BfiMAQSBrIgMkACABKAIMIgggASgCBCIEa0EEayEJIAEoAhAhBQJAA0ACQAJAIAQgCEYEQCAAQQA2AgggAEKAgICAwAA3AgAMAQsgASAEQQRqIgciAjYCBCADQRRqIAQoAgAQqQMgAykCGCENIAMoAhQiBkGAgICAeEcNASAHIQQgDachBgJAIAUoAgBFDQAgBSgCBCICQYQBSQ0AIAIQAAsgBSAGNgIEIAVBATYCACAAQQA2AgggAEKAgICAwAA3AgAgBCAIRg0AIAlBAnYhAgNAIAQoAgAiAEGEAU8EQCAAEAALIARBBGohBCACQQFrIgINAAsLIAEoAggiAEUNAiABKAIAIABBAnQQlAUMAgsgCUEEayEJIAIhBCAGQYGAgIB4Rg0AC0G50cIALQAAGkEwQQQQiwUiBwRAIAcgDTcCBCAHIAY2AgAgA0EBNgIQIAMgBzYCDCADQQQ2AgggCEEEayEGIAEoAgghCyABKAIAIQlBASEKA0AgBiACayEEA0ACQAJAIAIgCEYNACADQRRqIAIoAgAQqQMgAykCGCENIAMoAhQiDEGAgICAeEcNASACQQRqIQIgDachBgJAIAUoAgBFDQAgBSgCBCIBQYQBSQ0AIAEQAAsgBSAGNgIEIAVBATYCACACIAhGDQAgBEECdiEEA0AgAigCACIBQYQBTwRAIAEQAAsgAkEEaiECIARBAWsiBA0ACwsgCwRAIAkgC0ECdBCUBQsgACADKQIINwIAIABBCGogA0EQaigCADYCAAwECyACQQRqIQIgBEEEayEEIAxBgYCAgHhGDQALIAMoAgggCkYEQCADQQhqIApBARDQAyADKAIMIQcLIAcgCkEMbGoiASANNwIEIAEgDDYCACADIApBAWoiCjYCEAwACwALQQRBMBCDBQALIANBIGokAAuTBQELfyMAQUBqIgIkACABKAIEIQMgASgCACEHAkACQAJAIAEtAAhFBEADQCADIAdGDQMgASADQTBrIgM2AgQgA0HotcAAQTAQrgVFDQAMAgsACyADIAdGDQEgASADQTBrIgM2AgQLIAFBAToACCACQRhqIgQgA0EIaikDADcDACACQSBqIgUgA0EQaikDADcDACACQShqIgYgA0EYaikDADcDACACQTBqIgggA0EgaikDADcDACACQThqIgkgA0EoaikDADcDACACIAMpAwA3AxBBudHCAC0AABpBwAFBCBCLBSIBBEAgASACKQMQNwMAIAFBKGogCSkDADcDACABQSBqIAgpAwA3AwAgAUEYaiAGKQMANwMAIAFBEGogBSkDADcDACABQQhqIAQpAwA3AwAgAkEBNgIMIAIgATYCCCACQQQ2AgQgAyAHRwRAQQIhBUEwIQYDQCACQThqIgggA0EwayIDQShqKQMANwMAIAJBMGoiCSADQSBqKQMANwMAIAJBKGoiCiADQRhqKQMANwMAIAJBIGoiCyADQRBqKQMANwMAIAJBGGoiDCADQQhqKQMANwMAIAIgAykDADcDECAFQQFrIgQgAigCBEYEQCACQQRqIARBARDSAyACKAIIIQELIAEgBmoiBCACKQMQNwMAIARBKGogCCkDADcDACAEQSBqIAkpAwA3AwAgBEEYaiAKKQMANwMAIARBEGogCykDADcDACAEQQhqIAwpAwA3AwAgBkEwaiEGIAIgBTYCDCAFQQFqIQUgAyAHRw0ACwsgACACKQIENwIAIABBCGogAkEMaigCADYCAAwCC0EIQcABEIMFAAsgAEEANgIIIABCgICAgIABNwIACyACQUBrJAAL2wUCA38CfiMAQaABayIBJAAgAUEIakGw3sAAQcIAEM4BIAFBKGpB8t7AAEHCABDOASABQcgAakG038AAQQEQzgEgAUHoAGpBtd/AAEHAABDOASABQZQBakH138AAQcAAQRAQkAICQCABKAKUAUGAgICAeEcEQCABQZABaiIDIAFBnAFqKAIANgIAIAEgASkClAE3A4gBIABB0AFqQgA3AwAgAEHIAWpCADcDACAAQgA3A8ABIABC5AE3A9gBEJ8EIgJFDQEgAiACKQMAIgRCAXw3AwAgAikDCCEFIABB6AFqQcCmwQApAwA3AwAgAEG4psEAKQMANwPgASAAQQQ6AKACIAAgBTcD+AEgACAENwPwASAAIAEpAwg3AwAgAEEIaiABQRBqKQMANwMAIABBEGogAUEYaikDADcDACAAQRhqIAFBIGopAwA3AwAgACABKQMoNwMgIABBKGogAUEwaikDADcDACAAQTBqIAFBOGopAwA3AwAgAEE4aiABQUBrKQMANwMAIABB+ABqQgA3AwAgAEHwAGpCADcDACAAQegAakIANwMAIABB4ABqQgA3AwAgAEHYAGpCADcDACAAQdAAakIANwMAIABByABqQgA3AwAgAEIANwNAIABBmAFqIAFB4ABqKQMANwMAIABBkAFqIAFB2ABqKQMANwMAIABBiAFqIAFB0ABqKQMANwMAIAAgASkDSDcDgAEgAEG4AWogAUGAAWopAwA3AwAgAEGwAWogAUH4AGopAwA3AwAgAEGoAWogAUHwAGopAwA3AwAgACABKQNoNwOgASAAQZwCaiADKAIANgIAIAAgASkDiAE3ApQCIABBCDYCkAIgAEIBNwOIAiAAQgA3A4ACIAFBoAFqJAAPCyABIAEtAJgBOgCIAUG4tsAAQSsgAUGIAWpBrNvAAEG44MAAEP0DAAtB6IbBAEHGACABQZQBakGwh8EAQZCIwQAQ/QMAC9MFAgN/An4jAEGgAWsiASQAIAFBCGpB4NvAABC1ASABQShqQaDcwAAQtQEgAUHIAGpB4NzAABC1ASABQegAakGg3cAAELUBIAFBlAFqQeDdwABBwABBEBCQAgJAIAEoApQBQYCAgIB4RwRAIAFBkAFqIgMgAUGcAWooAgA2AgAgASABKQKUATcDiAEgAEIGNwPYASAAQoCAgICgfzcD0AEgAEJ/NwPIASAAQvn////fADcDwAEQnwQiAkUNASACIAIpAwAiBEIBfDcDACACKQMIIQUgAEHoAWpBwKbBACkDADcDACAAQbimwQApAwA3A+ABIABBAzoAoAIgACAFNwP4ASAAIAQ3A/ABIAAgASkDCDcDACAAQQhqIAFBEGopAwA3AwAgAEEQaiABQRhqKQMANwMAIABBGGogAUEgaikDADcDACAAIAEpAyg3AyAgAEEoaiABQTBqKQMANwMAIABBMGogAUE4aikDADcDACAAQThqIAFBQGspAwA3AwAgAEH4AGpCADcDACAAQfAAakIANwMAIABB6ABqQgA3AwAgAEHgAGpCADcDACAAQdgAakIANwMAIABB0ABqQgA3AwAgAEHIAGpCADcDACAAQgA3A0AgAEGYAWogAUHgAGopAwA3AwAgAEGQAWogAUHYAGopAwA3AwAgAEGIAWogAUHQAGopAwA3AwAgACABKQNINwOAASAAQbgBaiABQYABaikDADcDACAAQbABaiABQfgAaikDADcDACAAQagBaiABQfAAaikDADcDACAAIAEpA2g3A6ABIABBnAJqIAMoAgA2AgAgACABKQOIATcClAIgAEEBNgKQAiAAQgE3A4gCIABCADcDgAIgAUGgAWokAA8LIAEgAS0AmAE6AIgBQbi2wABBKyABQYgBakGs28AAQaDewAAQ/QMAC0HohsEAQcYAIAFBlAFqQbCHwQBBkIjBABD9AwAL8wUCA38CfiMAQaABayIBJAAgAUEIakHI4MAAQQEQlQEgAUEoakHJ4MAAQcIAEJUBIAFByABqQYvhwABBAxCVASABQegAakGO4cAAQTMQlQEgAUGUAWpBweHAAEHAAEEQEJACAkAgASgClAFBgICAgHhHBEAgAUGQAWoiAyABQZwBaigCADYCACABIAEpApQBNwOIASAAQub///+Z38OGGzcD2AEgAEK/oqqZupSa3Wo3A9ABIABCiY30xu3uuuzHADcDyAEgAELD99aH0oqC6BU3A8ABEJ8EIgJFDQEgAiACKQMAIgRCAXw3AwAgAikDCCEFIABB6AFqQcCmwQApAwA3AwAgAEG4psEAKQMANwPgASAAQQU6AKACIAAgBTcD+AEgACAENwPwASAAIAEpAwg3AwAgAEEIaiABQRBqKQMANwMAIABBEGogAUEYaikDADcDACAAQRhqIAFBIGopAwA3AwAgACABKQMoNwMgIABBKGogAUEwaikDADcDACAAQTBqIAFBOGopAwA3AwAgAEE4aiABQUBrKQMANwMAIABB+ABqQgA3AwAgAEHwAGpCADcDACAAQegAakIANwMAIABB4ABqQgA3AwAgAEHYAGpCADcDACAAQdAAakIANwMAIABByABqQgA3AwAgAEIANwNAIABBmAFqIAFB4ABqKQMANwMAIABBkAFqIAFB2ABqKQMANwMAIABBiAFqIAFB0ABqKQMANwMAIAAgASkDSDcDgAEgAEG4AWogAUGAAWopAwA3AwAgAEGwAWogAUH4AGopAwA3AwAgAEGoAWogAUHwAGopAwA3AwAgACABKQNoNwOgASAAQZwCaiADKAIANgIAIAAgASkDiAE3ApQCIABBATYCkAIgAEIBNwOIAiAAQgA3A4ACIAFBoAFqJAAPCyABIAEtAJgBOgCIAUG4tsAAQSsgAUGIAWpBrNvAAEGE4sAAEP0DAAtB6IbBAEHGACABQZQBakGwh8EAQZCIwQAQ/QMAC94EAgh+AX8jAEHQAGsiCiQAIApBMGogASkDGCIDQv////8PQgAQ/AMgCkFAayADQoGAgIBwQgAQ/AMgCiADIAEpAxAiAnwiBCAKKQMwfCIDQoGAgIBwQgAQ/AMgCkEQaiADQiCGIgYgAyAEVK0gCkE4aikDACACIARWrXx8IgUgASkDCHwiB3wiBEKBgICAcEIAEPwDIApBIGogBEIghiIIIAQgBlStIANCIIh8IgYgCikDQCIJIAEpAwB8IgIgBSAHVq18IgV8Igd8IgNCgYCAgHBCABD8AwJAIApBKGopAwAgCkEYaikDACAKQQhqKQMAIAIgBVatIApByABqKQMAIAIgCVStfHwiBSAKKQMAfCICIAVUrXwgAiAGIAdWrXwiBiACVK18IgUgCikDEHwiAiAFVK18IAIgAiADIAhUrSAEQiCIfCIEIAZ8IgYgBFStfCICVq18IgUgCikDIHwiBCAFVK18IAQgAiADQiCGIgIgBnwiBSACVK0gA0IgiHwiAnwiAyACVK18IgIgBFStfCIHQoGAgIBwVARAIAMhBCACIQYMAQsCQCADQv////8PVg0AQgAhBiACQgBSDQBC/////w8hBCADQv////8PVARAIAMhBEKBgICAcCEHDAILIAVCf1ENAEKBgICAcCEHDAELIANC/////w99IgYgBUJ/Uq0iCH0hBCACIANC/////w9UIAYgCFRyrSIDfSEGIAcgAiADVK19Qv////8PfCEHIAVCAXwhBQsgACAFNwMYIAAgBDcDECAAIAY3AwggACAHNwMAIApB0ABqJAALlAUCCH8EfiMAQeACayICJAAgAhDBAkG50cIALQAAGkGAAUEIEIsFIgMEQCADIAIpAyA3AwAgAyACKQMANwMgIANCADcDQCADQcgAakIANwMAIANB0ABqQgA3AwAgA0HYAGpCADcDACADQRhqIAJBOGopAwA3AwAgA0EQaiACQTBqKQMANwMAIANBCGogAkEoaikDADcDACADQShqIAJBCGopAwA3AwAgA0EwaiACQRBqKQMANwMAIANBOGogAkEYaikDADcDACADQfgAakH4kcAAKQMANwMAIANB8ABqQfCRwAApAwA3AwAgA0HoAGpB6JHAACkDADcDACADQeCRwAApAwA3A2AgAkEAOgC8AiACIANBgAFqNgK4AiACIAM2ArQCIAJBqAJqIAJBtAJqEOYCIAIoArACIgRBAk8EQCAEQQF2IQkgAigCrAIiBSAEQQV0akEgayEEA0AgBSkDACEKIAUgBCkDADcDACAFQRhqIgYpAwAhCyAGIARBGGoiBikDADcDACAFQRBqIgcpAwAhDCAHIARBEGoiBykDADcDACAFQQhqIggpAwAhDSAIIARBCGoiCCkDADcDACAEIAo3AwAgBiALNwMAIAcgDDcDACAIIA03AwAgBEEgayEEIAVBIGohBSAJQQFrIgkNAAsLIABBDGoiBSACKQKoAjcCACAFQQhqIAJBsAJqKAIANgIAIANBgAEQlAUgAEEIaiABQQhqKAIANgIAIAAgASkCADcCACACKAKUAiIABEAgAigCmAIgAEECdBCUBQsCQCACKALkASIARQ0AIAAgAEEMbEETakF4cSIBakEJaiIARQ0AIAIoAuABIAFrIAAQlAULIAJB4AJqJAAPC0EIQYABEKgFAAuUBQIIfwR+IwBB4AJrIgIkACACEKQCQbnRwgAtAAAaQYABQQgQiwUiAwRAIAMgAikDIDcDACADIAIpAwA3AyAgA0IANwNAIANByABqQgA3AwAgA0HQAGpCADcDACADQdgAakIANwMAIANBGGogAkE4aikDADcDACADQRBqIAJBMGopAwA3AwAgA0EIaiACQShqKQMANwMAIANBKGogAkEIaikDADcDACADQTBqIAJBEGopAwA3AwAgA0E4aiACQRhqKQMANwMAIANB+ABqQZiSwAApAwA3AwAgA0HwAGpBkJLAACkDADcDACADQegAakGIksAAKQMANwMAIANBgJLAACkDADcDYCACQQA6ALwCIAIgA0GAAWo2ArgCIAIgAzYCtAIgAkGoAmogAkG0AmoQ5gIgAigCsAIiBEECTwRAIARBAXYhCSACKAKsAiIFIARBBXRqQSBrIQQDQCAFKQMAIQogBSAEKQMANwMAIAVBGGoiBikDACELIAYgBEEYaiIGKQMANwMAIAVBEGoiBykDACEMIAcgBEEQaiIHKQMANwMAIAVBCGoiCCkDACENIAggBEEIaiIIKQMANwMAIAQgCjcDACAGIAs3AwAgByAMNwMAIAggDTcDACAEQSBrIQQgBUEgaiEFIAlBAWsiCQ0ACwsgAEEMaiIFIAIpAqgCNwIAIAVBCGogAkGwAmooAgA2AgAgA0GAARCUBSAAQQhqIAFBCGooAgA2AgAgACABKQIANwIAIAIoApQCIgAEQCACKAKYAiAAQQJ0EJQFCwJAIAIoAuQBIgBFDQAgACAAQQxsQRNqQXhxIgFqQQlqIgBFDQAgAigC4AEgAWsgABCUBQsgAkHgAmokAA8LQQhBgAEQqAUAC5QFAgh/BH4jAEHgAmsiAiQAIAIQwgJBudHCAC0AABpBgAFBCBCLBSIDBEAgAyACKQMgNwMAIAMgAikDADcDICADQgA3A0AgA0HIAGpCADcDACADQdAAakIANwMAIANB2ABqQgA3AwAgA0EYaiACQThqKQMANwMAIANBEGogAkEwaikDADcDACADQQhqIAJBKGopAwA3AwAgA0EoaiACQQhqKQMANwMAIANBMGogAkEQaikDADcDACADQThqIAJBGGopAwA3AwAgA0H4AGpBiJHAACkDADcDACADQfAAakGAkcAAKQMANwMAIANB6ABqQfiQwAApAwA3AwAgA0HwkMAAKQMANwNgIAJBADoAvAIgAiADQYABajYCuAIgAiADNgK0AiACQagCaiACQbQCahDmAiACKAKwAiIEQQJPBEAgBEEBdiEJIAIoAqwCIgUgBEEFdGpBIGshBANAIAUpAwAhCiAFIAQpAwA3AwAgBUEYaiIGKQMAIQsgBiAEQRhqIgYpAwA3AwAgBUEQaiIHKQMAIQwgByAEQRBqIgcpAwA3AwAgBUEIaiIIKQMAIQ0gCCAEQQhqIggpAwA3AwAgBCAKNwMAIAYgCzcDACAHIAw3AwAgCCANNwMAIARBIGshBCAFQSBqIQUgCUEBayIJDQALCyAAQQxqIgUgAikCqAI3AgAgBUEIaiACQbACaigCADYCACADQYABEJQFIABBCGogAUEIaigCADYCACAAIAEpAgA3AgAgAigClAIiAARAIAIoApgCIABBAnQQlAULAkAgAigC5AEiAEUNACAAIABBDGxBE2pBeHEiAWpBCWoiAEUNACACKALgASABayAAEJQFCyACQeACaiQADwtBCEGAARCoBQALlAUCCH8EfiMAQeACayICJAAgAhDDAkG50cIALQAAGkGAAUEIEIsFIgMEQCADIAIpAyA3AwAgAyACKQMANwMgIANCADcDQCADQcgAakIANwMAIANB0ABqQgA3AwAgA0HYAGpCADcDACADQRhqIAJBOGopAwA3AwAgA0EQaiACQTBqKQMANwMAIANBCGogAkEoaikDADcDACADQShqIAJBCGopAwA3AwAgA0EwaiACQRBqKQMANwMAIANBOGogAkEYaikDADcDACADQfgAakG4ksAAKQMANwMAIANB8ABqQbCSwAApAwA3AwAgA0HoAGpBqJLAACkDADcDACADQaCSwAApAwA3A2AgAkEAOgC8AiACIANBgAFqNgK4AiACIAM2ArQCIAJBqAJqIAJBtAJqEOYCIAIoArACIgRBAk8EQCAEQQF2IQkgAigCrAIiBSAEQQV0akEgayEEA0AgBSkDACEKIAUgBCkDADcDACAFQRhqIgYpAwAhCyAGIARBGGoiBikDADcDACAFQRBqIgcpAwAhDCAHIARBEGoiBykDADcDACAFQQhqIggpAwAhDSAIIARBCGoiCCkDADcDACAEIAo3AwAgBiALNwMAIAcgDDcDACAIIA03AwAgBEEgayEEIAVBIGohBSAJQQFrIgkNAAsLIABBDGoiBSACKQKoAjcCACAFQQhqIAJBsAJqKAIANgIAIANBgAEQlAUgAEEIaiABQQhqKAIANgIAIAAgASkCADcCACACKAKUAiIABEAgAigCmAIgAEECdBCUBQsCQCACKALkASIARQ0AIAAgAEEMbEETakF4cSIBakEJaiIARQ0AIAIoAuABIAFrIAAQlAULIAJB4AJqJAAPC0EIQYABEKgFAAuUBQIIfwR+IwBB4AJrIgIkACACEMwCQbnRwgAtAAAaQYABQQgQiwUiAwRAIAMgAikDIDcDACADIAIpAwA3AyAgA0IANwNAIANByABqQgA3AwAgA0HQAGpCADcDACADQdgAakIANwMAIANBGGogAkE4aikDADcDACADQRBqIAJBMGopAwA3AwAgA0EIaiACQShqKQMANwMAIANBKGogAkEIaikDADcDACADQTBqIAJBEGopAwA3AwAgA0E4aiACQRhqKQMANwMAIANB+ABqQaiRwAApAwA3AwAgA0HwAGpBoJHAACkDADcDACADQegAakGYkcAAKQMANwMAIANBkJHAACkDADcDYCACQQA6ALwCIAIgA0GAAWo2ArgCIAIgAzYCtAIgAkGoAmogAkG0AmoQ5gIgAigCsAIiBEECTwRAIARBAXYhCSACKAKsAiIFIARBBXRqQSBrIQQDQCAFKQMAIQogBSAEKQMANwMAIAVBGGoiBikDACELIAYgBEEYaiIGKQMANwMAIAVBEGoiBykDACEMIAcgBEEQaiIHKQMANwMAIAVBCGoiCCkDACENIAggBEEIaiIIKQMANwMAIAQgCjcDACAGIAs3AwAgByAMNwMAIAggDTcDACAEQSBrIQQgBUEgaiEFIAlBAWsiCQ0ACwsgAEEMaiIFIAIpAqgCNwIAIAVBCGogAkGwAmooAgA2AgAgA0GAARCUBSAAQQhqIAFBCGooAgA2AgAgACABKQIANwIAIAIoApQCIgAEQCACKAKYAiAAQQJ0EJQFCwJAIAIoAuQBIgBFDQAgACAAQQxsQRNqQXhxIgFqQQlqIgBFDQAgAigC4AEgAWsgABCUBQsgAkHgAmokAA8LQQhBgAEQqAUAC7MGAQx+QqnAxomuzpOyMCEGIAEpAwgiAyACKQMIfCIJIANUIAkgASkDECIDIAIpAxB8IgQgA1QgBCABKQMYIgMgAikDGHwiCiADVK18IgUgBFRyrXwiBCAJVHKtIAIpAwAgASkDAHx8IgshAwJAAkACQCALQqnAxomuzpOyMFINAELdsIWM6LaRqLh/IQYgBCEDIARC3bCFjOi2kai4f1INAEKNlcfDltLawJd/IQYgBSIDQo2Vx8OW0trAl39SDQBCx/rzw+2Co5A8IQYgCiIDQsf688PtgqOQPFENAQsgAyAGWg0AIAQhBiAFIQkMAQsgBULz6ri86a2lv+gAfCIGIApCx/rzw+2Co5A8VK0iA30hCSAEQqPP+vOXye7XxwB8IgggBUKNlcfDltLawJd/VCADIAZWcq0iA30hBiALIARC3bCFjOi2kai4f1QgAyAIVnKtfUKpwMaJrs6TsjB9IQsgCkLH+vPD7YKjkDx9IQoLQqnAxomuzpOyMCEHIAFBKGopAwAiAyACQShqKQMAfCIMIANUIAwgAUEwaikDACIDIAJBMGopAwB8IgQgA1QgBCABQThqKQMAIgMgAkE4aikDAHwiCCADVK18IgUgBFRyrXwiBCAMVHKtIAIpAyAgASkDIHx8Ig0hAwJAAkACQCANQqnAxomuzpOyMFINAELdsIWM6LaRqLh/IQcgBCEDIARC3bCFjOi2kai4f1INAEKNlcfDltLawJd/IQcgBSIDQo2Vx8OW0trAl39SDQBCx/rzw+2Co5A8IQcgCCIDQsf688PtgqOQPFENAQsgAyAHWg0AIAQhByAFIQMMAQsgBULz6ri86a2lv+gAfCIOIAhCx/rzw+2Co5A8VK0iB30hAyAEQqPP+vOXye7XxwB8IgwgBUKNlcfDltLawJd/VCAHIA5Wcq0iBX0hByANIARC3bCFjOi2kai4f1QgBSAMVnKtfUKpwMaJrs6TsjB9IQ0gCELH+vPD7YKjkDx9IQgLIAAgDTcDICAAIAo3AxggACAJNwMQIAAgBjcDCCAAIAs3AwAgAEE4aiAINwMAIABBMGogAzcDACAAQShqIAc3AwALjxACDn8RfiMAQdAAayIEJAAgBCACNgIEIAEoAggiBkEwbCEFIAEoAgQhAkEIIQECQCAGBEAgBkGq1aoVSw0BQbnRwgAtAAAaQQghDSAFQQgQiwUiAUUNAQsgBEEANgJAIAQgATYCPCAEIAY2AjggBCACIAVqNgJIIAQgAjYCRCAEIARBBGo2AkwgBCABNgIQIARBADYCDCAEIARBQGs2AggjAEHQAWsiAyQAIARBCGoiBSgCBCEHIAUoAgAgBEHEAGoiCiICKAIAIgggAigCBCIBRwRAIAUoAgghBiACKAIIIQUgASAIa0EwbiECA0AgCCALQTBsaiIBKQMAIR0gASkDCCEeIAEpAxAhHyABKQMYISAgASkDICEhIAEpAyghGCAFKAIAIQFBKCEMQgAhFEIAIRVCACEWQgAhE0IAIRJCACEZA0AgA0HwAGogASAMaikDACIRIBhCABD8AyADQYABaiARICFCABD8AyADQZABaiARICBCABD8AyADQaABaiARIB9CABD8AyADQbABaiARIB5CABD8AyADQcABaiARIB1CABD8AyADQeAAaiADKQNwIhcgGXwiGUIAQv3/8//P///5iX8Q/AMgA0HQAGogA0HoAGopAwAiEUKr1f7///+//7l/QgAQ/AMgA0FAayARQv//z4rr///VHkIAEPwDIANBMGogEUKk7MO1j9S0mOcAQgAQ/AMgA0EgaiARQr+llJzP8NK75ABCABD8AyADQRBqIBFC19mumuT26Y3LAEIAEPwDIAMgEUKazf/Lo73EgBpCABD8AyADQQhqKQMAIBQgAykDwAEiGnwiGyADQbgBaikDACAVIAMpA7ABIhF8IhQgEVStfCAUIANBqAFqKQMAIAMpA6ABIhEgFnwiFSARVK18IBUgA0GYAWopAwAgAykDkAEiESATfCITIBFUrXwgEyADQYgBaikDACADKQOAASIRIBJ8IhIgEVStfCASIANB+ABqKQMAIBcgGVatfHwiESASVK18fCIWIBNUrXx8IhMgFVStfHwiEiAUVK18fCIcIAMpAwB8IhQgHFStfCAUIBQgA0EYaikDACASIBIgAykDEHwiFVatfCAVIBUgA0EoaikDACATIBMgAykDIHwiF1atfCAXIBcgA0E4aikDACAWIBYgAykDMHwiE1atfCATIBMgA0HIAGopAwAgESADKQNAIhF8IhIgEVStfCASIANB2ABqKQMAIBkgAykDUCIRfCARVK18fCIZIBJUrXx8IhJWrXx8IhNWrXx8IhZWrXx8IhVWrXwgGyAcVq0gA0HIAWopAwAgGiAbVq18fHwhFCAMQQhrIgxBeEcNAAsCQAJAIBRCms3/y6O9xIAaVg0AIBRCms3/y6O9xIAaUgRAIBIhESATIRogFiEXIBUhGAwCCyAVQtfZrprk9umNywBWDQACQCAVQtfZrprk9umNywBSBEAgEiERIBMhGiAWIRcgFSEYDAELIBZCv6WUnM/w0rvkAFYNAULX2a6a5PbpjcsAIRggFkK/pZScz/DSu+QAUgRAIBIhESATIRogFiEXDAELIBNCpOzDtY/UtJjnAFYNAUK/pZScz/DSu+QAIRcgE0Kk7MO1j9S0mOcAUgRAIBIhESATIRoMAQsgEkL//8+K6///1R5WDQFCpOzDtY/UtJjnACEaIBJC///Piuv//9UeUgRAIBIhEQwBC0L//8+K6///1R4hESAZQqrV/v///7//uX9WDQELQprN/8ujvcSAGiEUDAELIBJC///Piuv//9UefSIYIBlCq9X+////v/+5f1StIhp9IREgE0Kk7MO1j9S0mOcAfSIXIBJC///Piuv//9UeVCAYIBpUcq0iEn0hGiAWQr+llJzP8NK75AB9IhggE0Kk7MO1j9S0mOcAVCASIBdWcq0iEn0hFyAVQtfZrprk9umNywB9IhMgFkK/pZScz/DSu+QAVCASIBhWcq0iEn0hGCAUIBVC19mumuT26Y3LAFQgEiATVnKtfUKazf/Lo73EgBp9IRQgGULVqoGAgIDAgMYAfCEZCyAGIAdBMGxqIgEgGTcDKCABIBE3AyAgASAaNwMYIAEgFzcDECABIBg3AwggASAUNwMAIAdBAWohByALQQFqIgsgAkcNAAsLIAc2AgAgA0HQAWokACAEKAI4IQ8gBCgCPCEOIAQoAkAhASAEQQA6AEwgBCAOIAFBMGxqNgJIIAQgDjYCRCAEQThqIAoQwAIgBCgCQCIBQQJPBEAgAUEBdiENIAQoAjwiAiABQTBsakEwayEBA0AgAikDACERIAIgASkDADcDACAEQTBqIhAgAkEoaiIIKQMANwMAIARBKGoiAyACQSBqIgkpAwA3AwAgBEEgaiIHIAJBGGoiCikDADcDACAEQRhqIgsgAkEQaiIGKQMANwMAIARBEGoiDCACQQhqIgUpAwA3AwAgCCABQShqIggpAwA3AwAgCSABQSBqIgkpAwA3AwAgCiABQRhqIgopAwA3AwAgBiABQRBqIgYpAwA3AwAgBSABQQhqIgUpAwA3AwAgBCARNwMIIAggECkDADcDACAJIAMpAwA3AwAgCiAHKQMANwMAIAYgCykDADcDACAFIAwpAwA3AwAgASAEKQMINwMAIAFBMGshASACQTBqIQIgDUEBayINDQALCyAAIAQpAjg3AgAgAEEIaiAEQUBrKAIANgIAIA8EQCAOIA9BMGwQlAULIARB0ABqJAAPCyANIAUQgwUAC68FAgN/An4jAEGAAWsiASQAIAFBCGpB6NnAAEEBEMUBIAFBKGpB6dnAAEHAABDFASABQcgAakGp2sAAQcAAEMUBIAFB9ABqQenawABBwABBEBCQAgJAIAEoAnRBgICAgHhHBEAgAUHwAGoiAyABQfwAaigCADYCACABIAEpAnQ3A2ggAEHQAWpCADcDACAAQcgBakIANwMAIABCADcDwAEgAELzloCAMDcD2AEQnwQiAkUNASACIAIpAwAiBEIBfDcDACACKQMIIQUgAEHoAWpBwKbBACkDADcDACAAQbimwQApAwA3A+ABIABBAjoAoAIgACAFNwP4ASAAIAQ3A/ABIABCADcDACAAQQhqQgA3AwAgAEEQakIANwMAIABBGGpCADcDACAAIAEpAwg3AyAgAEEoaiABQRBqKQMANwMAIABBMGogAUEYaikDADcDACAAQThqIAFBIGopAwA3AwAgAEH4AGpCADcDACAAQfAAakIANwMAIABB6ABqQgA3AwAgAEHgAGpCADcDACAAQdgAakIANwMAIABB0ABqQgA3AwAgAEHIAGpCADcDACAAQgA3A0AgACABKQMoNwOAASAAQYgBaiABQTBqKQMANwMAIABBkAFqIAFBOGopAwA3AwAgAEGYAWogAUFAaykDADcDACAAIAEpA0g3A6ABIABBqAFqIAFB0ABqKQMANwMAIABBsAFqIAFB2ABqKQMANwMAIABBuAFqIAFB4ABqKQMANwMAIABBATYCkAIgAEIBNwOIAiAAQgA3A4ACIABBnAJqIAMoAgA2AgAgACABKQNoNwKUAiABQYABaiQADwsgASABLQB4OgBoQbi2wABBKyABQegAakGs28AAQdDbwAAQ/QMAC0HohsEAQcYAIAFB9ABqQbCHwQBBkIjBABD9AwAL7AQCCH8BfiMAQRBrIgckACABQSxq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A+AHIAMgBVYhECADIAVYDQAgASAQrSIDIAEpA9gHfCIFNwPYByADIAVWIRAgAyAFWA0AIAEgEK0iAyABKQPQB3wiBTcD0AcgAyAFViEQCyABKQPoByEFCyABKQPgBCEMIAEpA9gEIQ4gASkD0AQhCyABKQPIBCEKIAFBiAJqIARCgYCAgHBCABD8AyABIAcgByAGIAYgBEIghnwiA1atIARCIIh8fCIGVq0iByABKQOIAnwiBCAFfCIFNwPoByAEIAVWrSABQZACaikDACAEIAdUrXx8IgRQRQRAIAEgBCABKQPgB3wiBTcD4AcCfyAEIAVWIhIgBCAFWA0AGiABIBKtIgQgASkD2Ad8IgU3A9gHIAQgBVYiEiAEIAVYDQAaIAEgEq0iBCABKQPQB3wiBTcD0AcgBCAFVgshEiABKQPoByEFCyABQfgBaiADQoGAgIBwQgAQ/AMgASkD2AchCAJ/QQAgAUGAAmopAwAgBiADQiCGfCIEIAZUrSADQiCIfCIDIAV8IgYgA1StIgUgASkD+AF8IgMgBVStfCADIAEpA+AHfCIHIANUrXwiA1ANABpBACADIAMgCHwiCFgNABogASADIAhWrSIDIAEpA9AHfCIFNwPQByADIAVWCyEVIAEgBiAEQiCGfCIFNwPoByABIAcgBSAGVK0gBEIgiHx8IgY3A+AHIAFB6AFqIARCgYCAgHBCABD8AyABIAggBiAHVK0iCSABKQPoAXwiBHwiBzcD2AcgASkD0AchAyAEIAdWrSABQfABaikDACAEIAlUrXx8IgRQRQRAIAEgAyAEfCIDNwPQByADIARUIhStIQQLAkACQCAQIBJyIBVyIBRyIARCAFJyIANCgYCAgHBWcg0AIANCgYCAgHBSDQEgB0IAUiAGQv////8PVnINACAFQn9SIAZC/////w9Scg0BCyABIAVCAXw3A+gHIAEgBkL/////D30iBCAFQn9SrSIFfTcD4AcgASAHIAZC/////w9UIAQgBVRyrSIEfTcD2AcgASADIAQgB1atfUL/////D3w3A9AHCyABQfgAaiABKQPYAyIEIAEpA+ADIgNCABD8AyABQegAaiABKQPQAyIGIANCABD8AyABQdgAaiABKQPIAyIFIANCABD8AyABQagBaiAGIARCABD8AyABQZgBaiAFIARCABD8AyABQcgBaiAFIAZCABD8AyABQcgAaiADIANCABD8AyABQYgBaiAEIARCABD8AyABQbgBaiAGIAZCABD8AyABQdgBaiAFIAVCABD8AyABIAFBkAFqKQMAIAEpA4gBIgYgAUGAAWopAwAiBSABKQNofCIEQgGGIAEpA3giB0I/iIR8IgMgBlStfCADIAFB0ABqKQMAIgggB0IBhnwiBiAIVK18IgggA1StfCIHIAFB8ABqKQMAIAQgBVStfCIJIAEpA1h8IgMgASkDqAF8IgVCAYYgBEI/iIR8Ig8gB1StIg0gASkDuAF8IgQgAUHgAGopAwAgAyAJVK18IgkgASkDmAF8IgcgAUGwAWopAwAgAyAFVq18fCIDQgGGIAVCP4iEfCIFNwOICCABIAQgBVatIAFBwAFqKQMAIAQgDVStfHwiDSADIAdUrSABQaABaikDACAHIAlUrXx8IgcgASkDyAF8IgRCAYYgA0I/iIR8IgM3A4AIIAEgASkD2AEiCSABQdABaikDACAEIAdUrXwiB0IBhiAEQj+IhHwiBCADIA1UrXwiAzcD+AcgASADIARUrSABQeABaikDACAEIAlUrXx8IAdCP4h8NwPwByABQThqIAEpA0giA0J9gyIEQoGAgIBwQgAQ/ANBACESQQAhECABQUBrKQMAIAYgBEIghnwiBCAGVK0gA0IgiHwiAyAIfCIGIANUrSIHIAEpAzh8IgMgB1StfCADIAMgD3wiB1atfCIDUEUEQCABIAMgASkDiAh8IgU3A4gIAkAgAyAFViIQRQ0AIAEgEK0iAyABKQOACHwiBTcDgAggAyAFViEQIAMgBVgNACABIBCtIgMgASkD+Ad8IgU3A/gHIAMgBVYhECADIAVYDQAgASAQrSIDIAEpA/AHfCIFNwPwByADIAVWIRALIAEpA4gIIQULIAFBKGogBEKBgICAcEIAEPwDIAEgByAHIAYgBiAEQiCGfCIDVq0gBEIgiHx8IgZWrSIHIAEpAyh8IgQgBXwiBTcDiAggBCAFVq0gAUEwaikDACAEIAdUrXx8IgRQRQRAIAEgBCABKQOACHwiBTcDgAgCfyAEIAVWIhIgBCAFWA0AGiABIBKtIgQgASkD+Ad8IgU3A/gHIAQgBVYiEiAEIAVYDQAaIAEgEq0iBCABKQPwB3wiBTcD8AcgBCAFVgshEiABKQOICCEFCyABQRhqIANCgYCAgHBCABD8A0EAIRQgASkD+AchCAJ/QQAgAUEgaikDACAGIANCIIZ8IgQgBlStIANCIIh8IgMgBXwiBiADVK0iBSABKQMYfCIDIAVUrXwgAyABKQOACHwiByADVK18IgNQDQAaQQAgAyADIAh8IghYDQAaIAEgAyAIVq0iAyABKQPwB3wiBTcD8AcgAyAFVgshFSABIAYgBEIghnwiBTcDiAggASAHIAUgBlStIARCIIh8fCIGNwOACCABQQhqIARCgYCAgHBCABD8AyABIAggBiAHVK0iCSABKQMIfCIEfCIHNwP4ByABKQPwByEDIAQgB1atIAFBEGopAwAgBCAJVK18fCIEUEUEQCABIAMgBHwiAzcD8AcgAyAEVCIUrSEECwJAAkAgECASciAVciAUciAEQgBSciADQoGAgIBwVnINACADQoGAgIBwUg0BIAdCAFIgBkL/////D1ZyDQAgBUJ/UiAGQv7///8PWHINAQsgASAFQgF8NwOICCABIAZC/////w99IgQgBUJ/Uq0iBX03A4AIIAEgByAGQv////8PVCAEIAVUcq0iBH03A/gHIAFC/v///w9C/////w8gBCAHVhsgA3w3A/AHCyABQcgHaiIQIBFBGGoiEikDADcDACABQcAHaiIUIBFBEGoiFSkDADcDACABQbgHaiIYIBFBCGoiGSkDADcDACABIBEpAwA3A7AHIAFB8AZqIAFB8AdqIAFBsAdqIhoQsAEgECASKQMANwMAIBQgFSkDADcDACAYIBkpAwA3AwAgASARKQMANwOwByABQZAHaiABQdAGaiAaELABAkACQCABKQPwBiIJIAEpA5AHfCIEIAEpA/gGIgYgASkDmAd8IgMgBlQgAyABKQOAByIGIAEpA6AHfCIHIAZUIAcgByABKQOIByIGIAEpA6gHfCIFIAZUrXwiBlZyrXwiCCADVHKtfCIDIARUIAQgCVRyDQBCgYCAgHAhBwJAIAMiBEKBgICAcFINACAIQgBSDQFC/////w8hByAGIgRC/////w9SDQAgBUJ/UQ0BQgAhBEKBgICAcCEDDAILIAQgB1oNACAIIQQgBiEHDAELIAZC/////w99IgQgBUJ/Uq0iCX0hByAIIAZC/////w9UIAQgCVRyrSIGfSEEIANC/v///w9C/////w8gBiAIVht8IQMgBUIBfCEFCwJAAkAgAyAKfCIKIAQgBCALfCILViALIAcgDnwiBCAHVCAEIAQgBSAMfCIIIAVUrXwiBlZyrXwiByALVHKtfCIFIApUIAMgClZyDQBCgYCAgHAhAwJAIAUiBEKBgICAcFINACAHQgBSDQFC/////w8hAyAGIgRC/////w9SDQAgCEJ/UQ0BQgAhBEKBgICAcCEFDAILIAMgBFgNACAHIQQgBiEDDAELIAZC/////w99IgQgCEJ/Uq0iCn0hAyAHIAZC/////w9UIAQgClRyrSIGfSEEIAVC/v///w9C/////w8gBiAHVht8IQUgCEIBfCEICyABIAg3A8gHIAEgAzcDwAcgASAENwO4ByABIAU3A7AHIAFB0AdqIAFBsAdqQSAQrgUgASgCvAYiEARAIAEoAsAGIBBBAnQQlAULAkAgASgCjAYiEEUNACAQIBBBDGxBE2pBeHEiFGpBCWoiEEUNACABKAKIBiAUayAQEJQFC0UNACABQZAHaiISIAFByANqEMQCIAFBADYCuAcgAUKAgICAEDcCsAcgAUEDOgDIBCABQSA2ArgEIAFBADYCxAQgAUH4msEANgLABCABQQA2ArAEIAFBADYCqAQgASABQbAHaiIQNgK8BCASIAFBqARqIhIQkwMNAiABQZAEaiABQbgHaigCADYCACABIAEpArAHNwOIBCAQIBYQxAIgAUEANgKYCCABQoCAgIAQNwKQCCABQQM6AMgEIAFBIDYCuAQgAUEANgLEBCABQfiawQA2AsAEIAFBADYCsAQgAUEANgKoBCABIAFBkAhqNgK8BCAQIBIQkwMNAiABQaAEaiABQZgIaigCADYCACABIAEpApAINwOYBCABQQM2AvQGIAFB2JzBADYC8AYgAUICNwL8BiABIAFBmARqrUKAgICAgAiENwPYBiABIAFBiARqrUKAgICAgAiENwPQBiABIAFB0AZqNgL4BiATQQRqIAFB8AZqEJgDIAEoApgEIhAEQCABKAKcBCAQEJQFCyABKAKIBCIQBEAgASgCjAQgEBCUBQsgE0EBNgIADAELIBMgASkDyAM3AwggE0EANgIAIBNBQGsgAUGABGopAwA3AwAgE0E4aiABQfgDaikDADcDACATQTBqIAFB8ANqKQMANwMAIBNBKGogAUHoA2opAwA3AwAgE0EgaiABQeADaikDADcDACATQRhqIAFB2ANqKQMANwMAIBNBEGogAUHQA2opAwA3AwALIAFBoAhqJAAMAQtBkJvBAEE3IAFBnwhqQcibwQBBpJzBABD9AwALIBEoAogBIBcgE0EEciIBQcQAEK0FGkUNASACKAIAIhBBgICAgHhGIBBFckUEQCACKAIEIBAQlAULIAIgASkCADcCACACQQhqIAFBCGooAgA2AgBCAAwCCyAAQgI3AwAMAgsgEUE4aiARQfwAaikCADcDACARQTBqIBFB9ABqKQIANwMAIBFBKGogEUHsAGopAgA3AwAgEUEgaiARQeQAaikCADcDACARQRhqIBFB3ABqKQIANwMAIBFBEGogEUHUAGopAgA3AwAgEUEIaiARQcwAaikCADcDACARIBEpAkQ3AwBCAQs3AwAgACARKQMANwMIIABBEGogEUEIaikDADcDACAAQRhqIBFBEGopAwA3AwAgAEEgaiARQRhqKQMANwMAIABBKGogEUEgaikDADcDACAAQTBqIBFBKGopAwA3AwAgAEE4aiARQTBqKQMANwMAIABBQGsgEUE4aikDADcDAAsgEUHQAWokAA8LQQBBAEGsjMAAEJgEAAtBAUEBQbyMwAAQmAQAC7E5Ag9+DH8jAEHQAWsiEyQAAkACQAJAIAACfgJAIAEoAgQiEgRAIAEgEiASIAEoAggiFCASIBRJGyISazYCBCABIAEoAgAiASASQQV0ajYCACAURQ0EIBNBGGoiFCABQRhqKQMANwMAIBNBEGoiFyABQRBqKQMANwMAIBNBCGoiGCABQQhqKQMANwMAIBMgASkDADcDACASQQFGDQUgE0HYAGogAUE4aikDADcDACATQdAAaiABQTBqKQMANwMAIBNByABqIAFBKGopAwA3AwAgEyABKQMgNwNAIBNBiAFqIRYjAEGAC2siASQAIAFB4AZqIBQpAwA3AwAgAUHYBmogFykDADcDACABQdAGaiAYKQMANwMAIAFB8AZqIBNBQGsiGSISQQhqKQMANwMAIAFB+AZqIBJBEGopAwA3AwAgAUGAB2ogEkEYaikDADcDACABIBMpAwA3A8gGIAEgEikDADcD6AYgAUHoBmohGAJAAkACQAJAIAFByAZqQdiZwQBBIBCuBUUEQCAYQdiZwQBBIBCuBUUNAQsgAUGoB2oQwwIgAUHoCWogAUHA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AyAHfCIEIAcgFRshByAVIAMgBFZxIRULIAFB2ANqIAEpA9AKIgRC/////76y/fBCfiIDQoGAgIC/sv3wwwBCABD8AyABQcgDaiADQpHh5c2HifqZKEIAEPwDIAFBuANqIANC3bCFjOi2kai4f0IAEPwDIAFBqANqIANCqcDGia7Ok7IwQgAQ/AMgASAEIAEpA9gDIgN8IgQ3A9AKIAFB0ANqKQMAIQUgASABQeADaikDACADIARWrXwiBCABKQPIA3wiAyABKQP4CnwiBjcD+AogAUHAA2opAwAhCCABIAMgBlatIAUgAyAEVK18fCIEIAEpA7gDfCIDIAEpA4gHfCIFNwOIByABQbADaikDACEGIAEgAyAFVq0gCCADIARUrXx8IgQgASkDqAN8IgMgASkDmAd8IgU3A5gHIAMgBVatIAYgAyAEVK18fCIDIAd8IgQgByADQgBSIhcbIQcCQAJAIBIgFHIgFXIgAyAEViISrSADIBcbQgBSciASIBdxIAdCqcDGia7Ok7IwVnJyDQAgB0KpwMaJrs6TsjBSDQEgASkDmAciA0LdsIWM6LaRqLh/Vg0AIANC3bCFjOi2kai4f1INASABKQOIByIDQpHh5c2HifqZKFYNACADQpHh5c2HifqZKFINASABKQP4CkKAgICAv7L98MMAWA0BCyABIAEpA/gKIgNCgYCAgL+y/fDDAH03A/gKIAEgASkDiAciBEKR4eXNh4n6mSh9IgUgA0KBgICAv7L98MMAVK0iA303A4gHIAEgASkDmAciBkKjz/rzl8nu18cAfCIIIARCkeHlzYeJ+pkoVCADIAVWcq0iA303A5gHIAcgBkLdsIWM6LaRqLh/VCADIAhWcq19QqnAxomuzpOyMH0hBwsgASAHNwPwCSABIAEpA5gHNwP4CSABIAEpA4gHNwOACiABIAEpA/gKNwOICiABQbgCaiABKQPYBiIDIAEpA+AGIgRCABD8AyABQagCaiABKQPQBiIFIARCABD8AyABQZgCaiABKQPIBiIGIARCABD8AyABQegCaiAFIANCABD8AyABQdgCaiAGIANCABD8AyABQYgDaiAGIAVCABD8AyABQYgCaiAEIARCABD8AyABQcgCaiADIANCABD8AyABQfgCaiAFIAVCABD8AyABQZgDaiAGIAZCABD8AyABQfgBaiABKQOIAiIIQv////++sv3wQn4iA0KBgICAv7L98MMAQgAQ/AMgAUHoAWogA0KR4eXNh4n6mShCABD8AyABQdgBaiADQt2whYzotpGouH9CABD8AyABQcgBaiADQqnAxomuzpOyMEIAEPwDIAFBgANqKQMAIQcgASABQdACaikDACABKQPIAiIFIAFBwAJqKQMAIgYgASkDqAJ8IgNCAYYgASkDuAIiCUI/iIR8IgQgBVStfCAEIAFBkAJqKQMAIgUgCUIBhnwiCSAFVK18IgsgBFStfCIKIAFBsAJqKQMAIAMgBlStfCIGIAEpA5gCfCIEIAEpA+gCfCIFQgGGIANCP4iEfCINIApUrSIKIAEpA/gCfCIDIAFBoAJqKQMAIAQgBlStfCIOIAEpA9gCfCIGIAFB8AJqKQMAIAQgBVatfHwiBEIBhiAFQj+IhHwiBTcD8AogASADIAVWrSAHIAMgClStfHwiBSAEIAZUrSABQeACaikDACAGIA5UrXx8IgYgASkDiAN8IgNCAYYgBEI/iIR8IgQ3A/gKIAEgASkDmAMiByABQZADaikDACADIAZUrXwiBkIBhiADQj+IhHwiAyAEIAVUrXwiBDcDiAcgAyAEVq0gAUGgA2opAwAgAyAHVK18fCAGQj+IfCEHIAFB8AFqKQMAIQQgASABQYACaikDACABKQP4ASIDIAhCfYN8IANUrXwiBSABKQPoAXwiAyAJfCIGNwOYByABQeABaikDACEIIAEgAyAGVq0gBCADIAVUrXx8IgQgASkD2AF8IgMgC3wiBTcDkAogAUHQAWopAwAhBiABIAMgBVatIAggAyAEVK18fCIEIAEpA8gBfCIDIA18IgU3A9AKQQAhFAJAIAMgBVatIAYgAyAEVK18fCIDUARAQQAhEgwBCyABIAMgASkD8Ap8IgQ3A/AKIAMgBFYiEkUNACABIBKtIgMgASkD+Ap8IgQ3A/gKIAMgBFYhEiADIARYDQAgASASrSIDIAEpA4gHfCIENwOIByADIARWIRIgAyAEWA0AIBKtIgMgB3wiByADVCESCyABQbgBaiABKQOYByIEQv////++sv3wQn4iA0KBgICAv7L98MMAQgAQ/AMgAUGoAWogA0KR4eXNh4n6mShCABD8AyABQZgBaiADQt2whYzotpGouH9CABD8AyABQYgBaiADQqnAxomuzpOy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IhIEQCABKAKcByASEJQFCyABKAKIByISBEAgASgCjAcgEhCUBQsgFkEBNgIADAELIBYgASkDyAY3AwggFkEANgIAIBZBQGsgAUGAB2opAwA3AwAgFkE4aiABQfgGaikDADcDACAWQTBqIAFB8AZqKQMANwMAIBZBKGogAUHoBmopAwA3AwAgFkEgaiABQeAGaikDADcDACAWQRhqIAFB2AZqKQMANwMAIBZBEGogAUHQBmopAwA3AwALIAFBgAtqJAAMAQtBkJvBAEE3IAFB+ApqQcibwQBBpJzBABD9AwALIBMoAogBIBkgFkEEciIBQcQAEK0FGkUNASACKAIAIhJBgICAgHhGIBJFckUEQCACKAIEIBIQlAULIAIgASkCADcCACACQQhqIAFBCGooAgA2AgBCAAwCCyAAQgI3AwAMAgsgE0E4aiATQfwAaikCADcDACATQTBqIBNB9ABqKQIANwMAIBNBKGogE0HsAGopAgA3AwAgE0EgaiATQeQAaikCADcDACATQRhqIBNB3ABqKQIANwMAIBNBEGogE0HUAGopAgA3AwAgE0EIaiATQcwAaikCADcDACATIBMpAkQ3AwBCAQs3AwAgACATKQMANwMIIABBEGogE0EIaikDADcDACAAQRhqIBNBEGopAwA3AwAgAEEgaiATQRhqKQMANwMAIABBKGogE0EgaikDADcDACAAQTBqIBNBKGopAwA3AwAgAEE4aiATQTBqKQMANwMAIABBQGsgE0E4aikDADcDAAsgE0HQAWokAA8LQQBBAEGsjMAAEJgEAAtBAUEBQbyMwAAQmAQAC+0EAQN/IwBB0AFrIgMkAAJAAkACQCAAAn4CQCABKAIEIgQEQCABIAQgBCABKAIIIgUgBCAFSRsiBGs2AgQgASABKAIAIgEgBEEFdGo2AgAgBUUNBCADQRhqIAFBGGopAwA3AwAgA0EQaiABQRBqKQMANwMAIANBCGogAUEIaikDADcDACADIAEpAwA3AwAgBEEBRg0FIANB2ABqIAFBOGopAwA3AwAgA0HQAGogAUEwaikDADcDACADQcgAaiABQShqKQMANwMAIAMgASkDIDcDQCADQYgBaiIBIAMgA0FAayIEEEogAygCiAEgBCABQQRyIgFBxAAQrQUaRQ0BIAIoAgAiBEGAgICAeEYgBEVyRQRAIAIoAgQgBBCUBQsgAiABKQIANwIAIAJBCGogAUEIaigCADYCAEIADAILIABCAjcDAAwCCyADQThqIANB/ABqKQIANwMAIANBMGogA0H0AGopAgA3AwAgA0EoaiADQewAaikCADcDACADQSBqIANB5ABqKQIANwMAIANBGGogA0HcAGopAgA3AwAgA0EQaiADQdQAaikCADcDACADQQhqIANBzABqKQIANwMAIAMgAykCRDcDAEIBCzcDACAAIAMpAwA3AwggAEEQaiADQQhqKQMANwMAIABBGGogA0EQaikDADcDACAAQSBqIANBGGopAwA3AwAgAEEoaiADQSBqKQMANwMAIABBMGogA0EoaikDADcDACAAQThqIANBMGopAwA3AwAgAEFAayADQThqKQMANwMACyADQdABaiQADwtBAEEAQayMwAAQmAQAC0EBQQFBvIzAABCYBAAL0y8CD34MfyMAQdABayITJAACQAJAAkAgAAJ+AkAgASgCBCISBEAgASASIBIgASgCCCIUIBIgFEkbIhJrNgIEIAEgASgCACIBIBJBBXRqNgIAIBRFDQQgE0EYaiIUIAFBGGopAwA3AwAgE0EQaiIXIAFBEGopAwA3AwAgE0EIaiIYIAFBCGopAwA3AwAgEyABKQMANwMAIBJBAUYNBSATQdgAaiABQThqKQMANwMAIBNB0ABqIAFBMGopAwA3AwAgE0HIAGogAUEoaikDADcDACATIAEpAyA3A0AgE0GIAWohFiMAQYAJayIBJAAgAUHgBGogFCkDADcDACABQdgEaiAXKQMANwMAIAFB0ARqIBgpAwA3AwAgAUHwBGogE0FAayIZIhJBCGopAwA3AwAgAUH4BGogEkEQaikDADcDACABQYAFaiASQRhqKQMANwMAIAEgEykDADcDyAQgASASKQMANwPoBCABQegEaiEYAkACQAJAAkAgAUHIBGpB2JnBAEEgEK4FRQRAIBhB2JnBAEEgEK4FRQ0BCyABQagFahDMAiABQegHaiABQcAFaikDADcDACABQeAHaiABQbgFaikDADcDACABQdgHaiABQbAFaikDADcDACABIAEpA6gFNwPQByABQdgDaiABKQP4BCIEIAEpA4AFIgNCABD8AyABQcgDaiABKQPwBCIGIANCABD8AyABQbgDaiABKQPoBCIFIANCABD8AyABQYgE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IhJFDQAgEiASQQxsQRNqQXhxIhVqQQlqIhJFDQAgASgCiAcgFWsgEhCUBQtFDQAgAUGwCGoiFCABQcgEahCLAiABQQA2AtgIIAFCgICAgBA3AtAIIAFBAzoAyAUgAUEgNgK4BSABQQA2AsQFIAFB+JrBADYCwAUgAUEANgKwBSABQQA2AqgFIAEgAUHQCGoiEjYCvAUgFCABQagFaiIUEJMDDQIgAUGQBWogAUHYCGooAgA2AgAgASABKQLQCDcDiAUgEiAYEIsCIAFBADYC2AcgAUKAgICAEDcC0AcgAUEDOgDIBSABQSA2ArgFIAFBADYCxAUgAUH4msEANgLABSABQQA2ArAFIAFBADYCqAUgASABQdAHajYCvAUgEiAUEJMDDQIgAUGgBWogAUHYB2ooAgA2AgAgASABKQLQBzcDmAUgAUEDNgKUCCABQdicwQA2ApAIIAFCAjcCnAggASABQZgFaq1CgICAgIAIhDcD+AcgASABQYgFaq1CgICAgIAIhDcD8AcgASABQfAHajYCmAggFkEEaiABQZAIahCYAyABKAKYBSISBEAgASgCnAUgEhCUBQsgASgCiAUiEgRAIAEoAowFIBIQlAULIBZBATYCAAwBCyAWIAEpA8gENwMIIBZBADYCACAWQUBrIAFBgAVqKQMANwMAIBZBOGogAUH4BGopAwA3AwAgFkEwaiABQfAEaikDADcDACAWQShqIAFB6ARqKQMANwMAIBZBIGogAUHgBGopAwA3AwAgFkEYaiABQdgEaikDADcDACAWQRBqIAFB0ARqKQMANwMACyABQYAJaiQADAELQZCbwQBBNyABQfgIakHIm8EAQaScwQAQ/QMACyATKAKIASAZIBZBBHIiAUHEABCtBRpFDQEgAigCACISQYCAgIB4RiASRXJFBEAgAigCBCASEJQFCyACIAEpAgA3AgAgAkEIaiABQQhqKAIANgIAQgAMAgsgAEICNwMADAILIBNBOGogE0H8AGopAgA3AwAgE0EwaiATQfQAaikCADcDACATQShqIBNB7ABqKQIANwMAIBNBIGogE0HkAGopAgA3AwAgE0EYaiATQdwAaikCADcDACATQRBqIBNB1ABqKQIANwMAIBNBCGogE0HMAGopAgA3AwAgEyATKQJENwMAQgELNwMAIAAgEykDADcDCCAAQRBqIBNB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IgMgASkDyAN8IgQgASkD+Al8IgU3A/gJAkAgBCAFVq0gByADIARWrXx8IgRQDQAgASAEIAEpA4gGfCIDNwOIBiADIARUIRQgAyAEWg0AIAEgFK0iBCABKQOYBnwiAzcDmAYgAyAEVCEUIAMgBFoNACAUrSIEIAZ8IgYgBFQhFAsgAUG4A2ogASkDsAkiA0KblK/D8rWo3oZ/fiIEQm1CABD8AyABQagDaiAEQn9CABD8AyABQZgDaiAEQv///////////wBCABD8AyABIAMgASkDuAMiBXwiAzcDsAkgAUGwA2opAwAhBCABIAFBwANqKQMAIAMgBVStfCIFIAEpA6gDIgh8IgMgASkD0Al8Igc3A9AJIAEgCCADIAdWrSAEIAMgBVStfHwiBXwiAyABKQP4CXwiCDcD+AkgAUGgA2opAwAhByABIAMgCFatIAQgAyAFVK18fCIDIAEpA5gDfCIEIAEpA4gGfCIFNwOIBiAEIAVWrSAHIAMgBFatfHwiBFBFBEAgASAEIAEpA5gGfCIDNwOYBiADIARUIhWtIgQgBnwiAyAGIBUbIQYgFSADIARUcSEVCyABQYgDaiABKQPQCSIDQpuUr8Pytajehn9+IgRCbUIAEPwDIAFB+AJqIARCf0IAEPwDIAFB6AJqIARC////////////AEIAEPwDIAEgAyABKQOIAyIFfCIDNwPQCSABQYADaikDACEEIAEgAUGQA2opAwAgAyAFVK18IgUgASkD+AIiCHwiAyABKQP4CXwiBzcD+AkgASAIIAMgB1atIAQgAyAFVK18fCIFfCIDIAEpA4gGfCIINwOIBiABQfACaikDACEHIAEgAyAIVq0gBCADIAVUrXx8IgMgASkD6AJ8IgQgASkDmAZ8IgU3A5gGIAQgBVatIAcgAyAEVq18fCIEIAZ8IgMgBiAEQgBSIhcbIQYCQAJAIBIgFHIgFXIgAyAEVCISrSAEIBcbQgBSciASIBdxckUEQCABKQOYBiEJIAEpA4gGIQcgASkD+AkhAyAGQgBTBEAgBiEEDAILQv///////////wAhBCAGQv///////////wBSIAlCf1JyIAdCf1JyDQJCfyEJQn8hByADQm1UDQIMAQsgASkDmAYhCSABKQOIBiEHIAEpA/gJIQMgBiEECyABIANCE3w3A/gJIAEgB0IBfCIGIANCbVStIgN9NwOIBiABIAlCAXwiBSAHQn9SIAMgBlZyrSIGfTcDmAYgBCAJQn9SIAUgBlRyrX1C////////////AH0hBgsgASAGNwPwCCABIAEpA5gGNwP4CCABIAEpA4gGNwOACSABIAEpA/gJNwOICSABQfgBaiABKQPYBSIEIAEpA+AFIgZCABD8AyABQegBaiABKQPQBSIDIAZCABD8AyABQdgBaiABKQPIBSIFIAZCABD8AyABQagCaiADIARCABD8AyABQZgCaiAFIARCABD8AyABQcgCaiAFIANCABD8AyABQcgBaiAGIAZCABD8AyABQYgCaiAEIARCABD8AyABQbgCaiADIANCABD8AyABQdgCaiAFIAVCABD8AyABQbgBaiABKQPIASIIQpuUr8Pytajehn9+IgRCbUIAEPwDIAFBqAFqIARCf0IAEPwDIAFBmAFqIARC////////////AEIAEPwDIAFBwAJqKQMAIQcgASABQZACaikDACABKQOIAiIDIAFBgAJqKQMAIgUgASkD6AF8IgRCAYYgASkD+AEiCUI/iIR8IgYgA1StfCAGIAFB0AFqKQMAIgMgCUIBhnwiCSADVK18IgsgBlStfCIKIAFB8AFqKQMAIAQgBVStfCIFIAEpA9gBfCIGIAEpA6gCfCIDQgGGIARCP4iEfCINIApUrSIKIAEpA7gCfCIEIAFB4AFqKQMAIAUgBlatfCIOIAEpA5gCfCIFIAFBsAJqKQMAIAMgBlStfHwiBkIBhiADQj+IhHwiAzcD8AkgASADIARUrSAHIAQgClStfHwiAyAFIAZWrSABQaACaikDACAFIA5UrXx8IgUgASkDyAJ8IgRCAYYgBkI/iIR8IgY3A/gJIAEgASkD2AIiByABQdACaikDACAEIAVUrXwiBUIBhiAEQj+IhHwiBCADIAZWrXwiBjcDiAYgBCAGVq0gAUHgAmopAwAgBCAHVK18fCAFQj+IfCEGIAFBsAFqKQMAIQQgASABQcABaikDACABKQO4ASIDIAhCfYN8IANUrXwiBSABKQOoASIIfCIDIAl8Igc3A5gGIAEgCCADIAdWrSAEIAMgBVStfHwiBXwiAyALfCIINwOQCSABQaABaikDACEHIAEgAyAIVq0gBCADIAVUrXx8IgMgASkDmAF8IgQgDXwiBTcD0AlBACEUAkAgBCAFVq0gByADIARWrXx8IgRQBEBBACESDAELIAEgBCABKQPwCXwiAzcD8AkgAyAEVCISRQ0AIAEgEq0iBCABKQP4CXwiAzcD+AkgAyAEVCESIAMgBFoNACABIBKtIgQgASkDiAZ8IgM3A4gGIAMgBFQhEiADIARaDQAgEq0iBCAGfCIGIARUIRILIAFBiAFqIAEpA5gGIgNCm5Svw/K1qN6Gf34iBEJtQgAQ/AMgAUH4AGogBEJ/QgAQ/AMgAUHoAGogBEL///////////8AQgAQ/AMgASADIAEpA4gBIgV8IgM3A5gGIAFBgAFqKQMAIQQgASABQZABaikDACADIAVUrXwiBSABKQN4Igh8IgMgASkDkAl8Igc3A5AJIAEgCCADIAdWrSAEIAMgBVStfHwiBXwiAyABKQPQCXwiCDcD0AkgAUHwAGopAwAhByABIAMgCFatIAQgAyAFVK18fCIDIAEpA2h8IgQgASkD8Al8IgU3A/AJAkAgBCAFVq0gByADIARWrXx8IgRQDQAgASAEIAEpA/gJfCIDNwP4CSADIARUIRQgAyAEWg0AIAEgFK0iBCABKQOIBnwiAzcDiAYgAyAEVCEUIAMgBFoNACAUrSIEIAZ8IgYgBFQhFAsgAUHYAGogASkDkAkiA0KblK/D8rWo3oZ/fiIEQm1CABD8AyABQcgAaiAEQn9CABD8AyABQThqIARC////////////AEIAEPwDIAEgAyABKQNYIgV8IgM3A5AJIAFB0ABqKQMAIQQgASABQeAAaikDACADIAVUrXwiBSABKQNIIgh8IgMgASkD0Al8Igc3A9AJIAEgCCADIAdWrSAEIAMgBVStfHwiBXwiAyABKQPwCXwiCDcD8AkgAUFAaykDACEHIAEgAyAIVq0gBCADIAVUrXx8IgMgASkDOHwiBCABKQP4CXwiBTcD+AlBACEVIAQgBVatIAcgAyAEVq18fCIEUEUEQCABIAQgASkDiAZ8IgM3A4gGIAMgBFQiFa0iBCAGfCIDIAYgFRshBiAVIAMgBFRxIRULIAFBKGogASkD0AkiA0KblK/D8rWo3oZ/fiIEQm1CABD8AyABQRhqIARCf0IAEPwDIAFBCGogBEL///////////8AQgAQ/AMgASADIAEpAygiBXwiAzcD0AkgAUEgaikDACEEIAEgAUEwaikDACADIAVUrXwiBSABKQMYIgh8IgMgASkD8Al8Igc3A/AJIAEgCCADIAdWrSAEIAMgBVStfHwiBXwiAyABKQP4CXwiCDcD+AkgAUEQaikDACEHIAEgAyAIVq0gBCADIAVUrXx8IgMgASkDCHwiBCABKQOIBnwiBTcDiAYgBCAFVq0gByADIARWrXx8IgQgBnwiAyAGIARCAFIiFxshBgJAAkAgEiAUciAVciADIARUIhKtIAQgFxtCAFJyIBIgF3FyBEAgASkDiAYhCSABKQP4CSEHIAEpA/AJIQMgBiEEDAELIAEpA4gGIQkgASkD+AkhByABKQPwCSEDIAZCAFMEQCAGIQQMAQtC////////////ACEEIAZC////////////AFIgCUJ/UnIgB0J/UnINAUJ/IQlCfyEHIANCbVQNAQsgASADQhN8NwPwCSABIAdCAXwiBiADQm1UrSIDfTcD+AkgASAJQgF8IgUgB0J/UiADIAZWcq0iBn03A4gGIAQgCUJ/UiAFIAZUcq19Qv///////////wB9IQYLIAEgBjcDsAkgASABKQOIBjcDuAkgASABKQP4CTcDwAkgASABKQPwCTcDyAkgAUHoCWoiEiABQeAFaiIUKQMANwMAIAFB4AlqIhUgAUHYBWoiFykDADcDACABQdgJaiIdIAFB0AVqIhgpAwA3AwAgASABKQPIBTcD0AkgAUGQCWogAUGwCWoiGSABQdAJaiIaEJwBIBIgFCkDADcDACAVIBcpAwA3AwAgHSAYKQMANwMAIAEgASkDyAU3A9AJIBkgAUHQCGogGhCcASABKQOQCSIHIAEpA7AJfCIEIAEpA5gJIgYgASkDuAl8IgMgBlQgAyABKQOgCSIGIAEpA8AJfCIIIAZUIAggCCABKQOoCSIFIAEpA8gJfCIGIAVUrXwiBVZyrXwiCSADVHKtfCEIAkACQAJAIAQgB1QgBCAIVnINAEL///////////8AIQcgCCIDQv///////////wBRBEBCfyEHQv///////////wAhAyAJQn9SDQIgBUJ/UgRAIAUhBAwEC0JtIQcgBiIDQm1RDQELIAMgB1oNACAIIQMMAQsgBUIBfCIDIAZCbVStIgd9IQQgCUIBfCILIAVCf1IgAyAHVHKtIgN9IQcgCCAJQn9SIAMgC1ZyrX1C////////////AH0hAyAGQhN8IQYMAQsgCSEHIAUhBAsgAyAMfCIIIAcgD3wiBSAHVCAFIAQgBCAQfCIHViAHIAYgEXwiCSAGVK18IgYgB1RyrXwiByAFVHKtfCEFAkACQAJAIAUgCFQgAyAIVnINAEL///////////8AIQMgBSIEQv///////////wBRBEBCfyEDQv///////////wAhBCAHQn9SDQIgBkJ/UgRAIAYhCAwEC0JtIQMgCSIEQm1RDQELIAMgBFgNACAFIQQMAQsgBkIBfCIEIAlCbVStIgN9IQggB0IBfCIMIAZCf1IgAyAEVnKtIgR9IQMgBSAHQn9SIAQgDFZyrX1C////////////AH0hBCAJQhN8IQkMAQsgByEDIAYhCAsgASAJNwPoCSABIAg3A+AJIAEgAzcD2AkgASAENwPQCSABQfAIaiABQdAJakEgEK4FIAEoArwIIhIEQCABKALACCASQQJ0EJQFCwJAIAEoAowIIhJFDQAgEiASQQxsQRNqQXhxIhVqQQlqIhJFDQAgASgCiAggFWsgEhCUBQtFDQAgAUGwCWoiFCABQcgFahDrASABQQA2AtgJIAFCgICAgBA3AtAJIAFBAzoAyAYgAUEgNgK4BiABQQA2AsQGIAFB+JrBADYCwAYgAUEANgKwBiABQQA2AqgGIAEgAUHQCWoiEjYCvAYgFCABQagGaiIUEJMDDQIgAUGQBmogAUHYCWooAgA2AgAgASABKQLQCTcDiAYgEiAbEOsBIAFBADYC2AggAUKAgICAEDcC0AggAUEDOgDIBiABQSA2ArgGIAFBADYCxAYgAUH4msEANgLABiABQQA2ArAGIAFBADYCqAYgASABQdAIajYCvAYgEiAUEJMDDQIgAUGgBmogAUHYCGooAgA2AgAgASABKQLQCDcDmAYgAUEDNgKUCSABQdicwQA2ApAJIAFCAjcCnAkgASABQZgGaq1CgICAgIAIhDcD+AggASABQYgGaq1CgICAgIAIhDcD8AggASABQfAIajYCmAkgFkEEaiABQZAJahCYAyABKAKYBiISBEAgASgCnAYgEhCUBQsgASgCiAYiEgRAIAEoAowGIBIQlAULIBZBATYCAAwBCyAWIAEpA8gFNwMIIBZBADYCACAWQUBrIAFBgAZqKQMANwMAIBZBOGogAUH4BWopAwA3AwAgFkEwaiABQfAFaikDADcDACAWQShqIAFB6AVqKQMANwMAIBZBIGogAUHgBWopAwA3AwAgFkEYaiABQdgFaikDADcDACAWQRBqIAFB0AVqKQMANwMACyABQYAKaiQADAELQZCbwQBBNyABQfgJakHIm8EAQaScwQAQ/QMACyATKAKIASAcIBZBBHIiAUHEABCtBRpFDQEgAigCACISQYCAgIB4RiASRXJFBEAgAigCBCASEJQFCyACIAEpAgA3AgAgAkEIaiABQQhqKAIANgIAQgAMAgsgAEICNwMADAILIBNBOGogE0H8AGopAgA3AwAgE0EwaiATQfQAaikCADcDACATQShqIBNB7ABqKQIANwMAIBNBIGogE0HkAGopAgA3AwAgE0EYaiATQdwAaikCADcDACATQRBqIBNB1ABqKQIANwMAIBNBCGogE0HMAGopAgA3AwAgEyATKQJENwMAQgELNwMAIAAgEykDADcDCCAAQRBqIBNBCGopAwA3AwAgAEEYaiATQRBqKQMANwMAIABBIGogE0EYaikDADcDACAAQShqIBNBIGopAwA3AwAgAEEwaiATQShqKQMANwMAIABBOGogE0EwaikDADcDACAAQUBrIBNBOGopAwA3AwALIBNB0AFqJAAPC0EAQQBBrIzAABCYBAALQQFBAUG8jMAAEJgEAAutBAILfwR+IwBBEGsiBiQAAkACQAJAIAEoAghFBEBBudHCAC0AABpBASECQQFBARCLBSIDRQ0CIANBADoAACAGQQE2AgQgA0EBaiEHDAELIAZBBGogARDgAiAGKAIIIgMgBigCDCICaiEHIAJBAkkNACAHIAJBAXYiBWshCkEAIQEgBUEBRwRAIAJBAWshCCAFQf7///8HcSELA0AgAyAIaiIELQAAIQkgBCABIANqIgQtAAA6AAAgBCAJOgAAIAogBSABQX5zamoiCS0AACEMIAkgBEEBaiIELQAAOgAAIAQgDDoAACAIQQJrIQggCyABQQJqIgFHDQALCyACQQJxBEAgASADaiIILQAAIQQgCCAKIAUgAUF/c2pqIgEtAAA6AAAgASAEOgAACyACQSFPDQILIAIgAkEQayIBQQAgASACTRsiBUcEQCADIAVqIQEDQCAPQgiGIA5COIiEIQ8gATEAACAOQgiGhCEOIAFBAWoiASAHRw0ACwsgAkEgayIBQQAgASACTRsiASAFRwRAQSAgAiACQSBPG0EQIAIgAkEQTxtrIQcgASADaiEBA0AgEEIIhiANQjiIhCEQIAExAAAgDUIIhoQhDSABQQFqIQEgB0EBayIHDQALCyAAIA03AxAgACAONwMAIABBGGogEDcDACAAIA83AwggBigCBCIABEAgAyAAEJQFCyAGQRBqJAAPC0EBQQEQqAUAC0GorsAAQS1B2K7AABC5BAALxgQBC38jAEEQayIHJAACQAJAAkACQAJAIAAoAghFBEBBudHCAC0AABpBASECQQFBARCLBSIDRQ0BIANBMDoAACABQQFBAUEAIANBARCmAiEADAQLIAdBBGogABBQIAcoAgghAyAHKAIMIgVFDQEgAyEAIAVBA3EiAgRAA0AgACAALQAAIgRBMHIgBEHXAGogBEEKSRs6AAAgAEEBaiEAIAJBAWsiAg0ACwsgAyAFaiEEIAVBBE8EQANAIAAgAC0AACICQTByIAJB1wBqIAJBCkkbOgAAIABBAWoiAiACLQAAIgJBMHIgAkHXAGogAkEKSRs6AAAgAEECaiICIAItAAAiAkEwciACQdcAaiACQQpJGzoAACAAQQNqIgIgAi0AACICQTByIAJB1wBqIAJBCkkbOgAAIABBBGoiACAERw0ACwsgBygCBCECIAVBAUYNAiAEIAVBAXYiBGshCkEAIQAgBEEBRwRAIAVBAWshCCAEQf7///8HcSELA0AgAyAIaiIGLQAAIQkgBiAAIANqIgYtAAA6AAAgBiAJOgAAIAogBCAAQX5zamoiCS0AACEMIAkgBkEBaiIGLQAAOgAAIAYgDDoAACAIQQJrIQggCyAAQQJqIgBHDQALCyAFQQJxRQ0CIAAgA2oiCC0AACEGIAggCiAEIABBf3NqaiIALQAAOgAAIAAgBjoAAAwCC0EBQQEQqAUACyAHKAIEIQILIAFBAUEBQQAgAyAFEKYCIQAgAkUNAQsgAyACEJQFCyAHQRBqJAAgAAvuBAEKfyMAQTBrIgMkACADQQM6ACwgA0EgNgIcIANBADYCKCADIAE2AiQgAyAANgIgIANBADYCFCADQQA2AgwCfwJAAkACQCACKAIQIgpFBEAgAigCDCIARQ0BIAIoAgghASAAQQN0IQUgAEEBa0H/////AXFBAWohByACKAIAIQADQCAAQQRqKAIAIgQEQCADKAIgIAAoAgAgBCADKAIkKAIMEQMADQQLIAEoAgAgA0EMaiABKAIEEQIADQMgAUEIaiEBIABBCGohACAFQQhrIgUNAAsMAQsgAigCFCIARQ0AIABBBXQhCyAAQQFrQf///z9xQQFqIQcgAigCCCEIIAIoAgAhAANAIABBBGooAgAiAQRAIAMoAiAgACgCACABIAMoAiQoAgwRAwANAwsgAyAFIApqIgFBEGooAgA2AhwgAyABQRxqLQAAOgAsIAMgAUEYaigCADYCKCABQQxqKAIAIQRBACEJQQAhBgJAAkACQCABQQhqKAIAQQFrDgIAAgELIARBA3QgCGoiDCgCBA0BIAwoAgAhBAtBASEGCyADIAQ2AhAgAyAGNgIMIAFBBGooAgAhBAJAAkACQCABKAIAQQFrDgIAAgELIARBA3QgCGoiBigCBA0BIAYoAgAhBAtBASEJCyADIAQ2AhggAyAJNgIUIAggAUEUaigCAEEDdGoiASgCACADQQxqIAEoAgQRAgANAiAAQQhqIQAgCyAFQSBqIgVHDQALCyAHIAIoAgRPDQEgAygCICACKAIAIAdBA3RqIgAoAgAgACgCBCADKAIkKAIMEQMARQ0BC0EBDAELQQALIANBMGokAAu3BQIEfwl+IwBBoAFrIgIkACACQZQBaiABELoEIAIoApgBIQEgAigClAEhAyACKAKcASIEQQJGBEAgASgCBCEEIAEoAgAhBSACQThqIAFBCGpB2AAQrQUaIAMEQCABIANBMGwQlAULIAJBMGogAkGIAWopAwA3AwAgAkEoaiACQYABaikDADcDACACQSBqIAJB+ABqKQMANwMAIAJBGGogAkHwAGopAwA3AwAgAkEQaiACQegAaikDADcDACACIAIpA2A3AwgCfiACQQhqQZizwABBMBCuBQRAQv//z4rr///VHiACKQMoIgl9IgcgAikDMCIKQqvV/v///7//uX9WrSIIfSEMQqTsw7WP1LSY5wAgAikDICIGfSILIAcgCFQgCUL//8+K6///1R5Wcq0iB30hCUK/pZScz/DSu+QAIAIpAxgiCH0iDSAHIAtWIAZCpOzDtY/UtJjnAFZyrSIGfSEHQtfZrprk9umNywAgAikDECILfSIOIAYgDVYgCEK/pZScz/DSu+QAVnKtIgZ9IQhCq9X+////v/+5fyAKfSEKQprN/8ujvcSAGiACKQMIIAYgDlYgC0LX2a6a5PbpjcsAVnKtfH0MAQsgAikDMCEKIAIpAyghDCACKQMgIQkgAikDGCEHIAIpAxAhCCACKQMICyEGIAAgBDYCBCAAIAU2AgAgACACKQM4NwMIIAAgCjcDWCAAIAw3A1AgACAJNwNIIAAgBzcDQCAAIAg3AzggACAGNwMwIABBEGogAkFAaykDADcDACAAQRhqIAJByABqKQMANwMAIABBIGogAkHQAGopAwA3AwAgAEEoaiACQdgAaikDADcDACACQaABaiQADwsgAiAENgKcASACIAE2ApgBIAIgAzYClAFBhKbBAEErIAJBlAFqQbCtwQBBoK7BABD9AwAL5wUBD34CfiABQfiowgBBMBCuBQRAQv//z4rr///VHiABKQMgIgp9IgQgASkDKCILQqvV/v///7//uX9WrSIFfSEOQqTsw7WP1LSY5wAgASkDGCIDfSIGIAQgBVQgCkL//8+K6///1R5Wcq0iBH0hCkK/pZScz/DSu+QAIAEpAxAiBX0iByAEIAZWIANCpOzDtY/UtJjnAFZyrSIDfSEEQtfZrprk9umNywAgASkDCCIGfSICIAMgB1YgBUK/pZScz/DSu+QAVnKtIgN9IQVCq9X+////v/+5fyALfSELQprN/8ujvcSAGiABKQMAIAIgA1QgBkLX2a6a5PbpjcsAVnKtfH0MAQsgASkDKCELIAEpAyAhDiABKQMYIQogASkDECEEIAEpAwghBSABKQMACyEDIAACfiABQTBqQfiowgBBMBCuBQRAQv//z4rr///VHiABQdAAaikDACIHfSICIAFB2ABqKQMAIgxCq9X+////v/+5f1atIgh9IQZCpOzDtY/UtJjnACABQcgAaikDACIJfSINIAIgCFQgB0L//8+K6///1R5Wcq0iAn0hB0K/pZScz/DSu+QAIAFBQGspAwAiCH0iDyACIA1WIAlCpOzDtY/UtJjnAFZyrSIJfSECQtfZrprk9umNywAgAUE4aikDACINfSIQIAkgD1YgCEK/pZScz/DSu+QAVnKtIgl9IQhCq9X+////v/+5fyAMfSEMQprN/8ujvcSAGiABKQMwIAkgEFYgDULX2a6a5PbpjcsAVnKtfH0MAQsgAUHYAGopAwAhDCABQdAAaikDACEGIAFByABqKQMAIQcgAUFAaykDACECIAFBOGopAwAhCCABKQMwCzcDMCAAIAs3AyggACAONwMgIAAgCjcDGCAAIAQ3AxAgACAFNwMIIAAgAzcDACAAQdgAaiAMNwMAIABB0ABqIAY3AwAgAEHIAGogBzcDACAAQUBrIAI3AwAgAEE4aiAINwMAC8sEAQt/IAEgACgCACAAKAIIIgVrSwRAIAAgBSABENADIAAoAgghBQsgACgCBCAFQQxsaiEDAkACQCABQQJJDQAgASAFakEBayEFIAIoAggiBkUEQCABQQFrIgZBA3EhBCABQQJrQQNPBEAgBkF8cSEBA0AgA0IANwIIIANCgICAgIABNwIAIANBKGpCCDcCACADQSBqQgA3AgAgA0EYakKAgICAgAE3AgAgA0EQakIINwIAIANBMGohAyABQQRrIgENAAsLIARFDQIDQCADQQA2AgggA0KAgICAgAE3AgAgA0EMaiEDIARBAWsiBA0ACwwCCwJAIAZBMGwiCkEASCAGQarVqhVLcg0AIAIoAgQhDUG50cIALQAAGkEIIQQgCkEIEIsFIgtFDQBBAiEMA0BBACEHIAYhBANAIAcgCkcEQCAHIAtqIgggByANaiIJKQMANwMAIAhBKGogCUEoaikDADcDACAIQSBqIAlBIGopAwA3AwAgCEEYaiAJQRhqKQMANwMAIAhBEGogCUEQaikDADcDACAIQQhqIAlBCGopAwA3AwAgB0EwaiEHIARBAWsiBA0BCwsgAyAGNgIIIAMgCzYCBCADIAY2AgAgA0EMaiEDIAEgDEYNAkG50cIALQAAGiAMQQFqIQxBCCEEIApBCBCLBSILDQALCyAEIAoQgwUACyABDQAgACAFNgIIIAIoAgAiAARAIAIoAgQgAEEwbBCUBQsPCyADIAIpAgA3AgAgA0EIaiACQQhqKAIANgIAIAAgBUEBajYCCAuoBAEIfyMAQcANayIDJAAgA0GoCWpByLnAACkDADcDACADQaAJakHAucAAKQMANwMAIANBmAlqQbi5wAApAwA3AwAgA0GQCWpBsLnAACkDADcDACADQYgJakGoucAAKQMANwMAIANBuAlqQgA3AwAgA0HACWpCADcDACADQcgJakIANwMAIANB0AlqQgA3AwAgA0HYCWpCADcDACADQgA3A7AJIANBoLnAACkDADcDgAkgA0GgC2oiCkEAQeAAEK8F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nKTAABCYBAALIARBBkkNACAEQQZByKPAABCYBAALIANBCGogBEEDdGogCTcDACAAIAMpAwg3AwAgAEEIaiADQRBqKQMANwMAIABBEGogA0EYaikDADcDACAAQRhqIANBIGopAwA3AwAgAEEgaiADQShqKQMANwMAIABBKGogA0EwaikDADcDACADQdAAaiQAC9ADAgV/An4jAEHQAGsiASQAIAFBMGpCADcDACABQShqQgA3AwAgAUEgakIANwMAIAFBGGpCADcDACABQRBqQgA3AwAgAUIANwMIQQUhAgJAA0ACQCADIgRFBEBCUCEHIANB5KnCAGotAAAiA0Ewa0H/AXFBCkkNAUKpfyEHIANB4QBrQf8BcUEGSQ0BQkkhByADQcEAa0H/AXFBBkkNASABQQA2AkggAUEBNgI8IAFB0KXCADYCOCABQgQ3AkAgAUE4akHYpcIAEM0EAAsgBEEBQaSlwgAQmAQACyAHIAOtQv8Bg3wgBUE/ca2GIAaEIQYCQCACRSAFQQRqIgVBwABHckUEQCACQQZPDQEgAUEIaiACQQN0aiAGNwMAQgAhBkEAIQUgAkEBayECCyAEQQFrIQMgBEUNAgwBCwsgAkEGQeilwgAQmAQACyACQQZPBEAgAkEGQZSlwgAQmAQACyABQQhqIAJBA3RqIAY3AwAgACABKQMINwMAIABBCGogAUEQaikDADcDACAAQRBqIAFBGGopAwA3AwAgAEEYaiABQSBqKQMANwMAIABBIGogAUEoaikDADcDACAAQShqIAFBMGopAwA3AwAgAUHQAGokAAubBAIQfwJ+IwBBIGsiAiQAAkACQCABKAIQIgwgASgCDCIKayIHQQAgASgCACINGyIEIAEoAiQiCyABKAIgIghrIg5BACABKAIUIg8baiIDIARJDQAgAyABKAIsIhAgASgCKCIJayIRQQAgCRtqIgQgA0kNAAJAIARFBEBBASEFDAELIARBAEgNAkG50cIALQAAGkEBIQYgBEEBEIsFIgVFDQILIAEpAhghEwJ/QQAgDUUNABogAiABKQIENwMIIAIgCjYCECACIAw2AhRBACAKIAxGDQAaIAUgAkEIaiAKaiAHEK0FGiAHCyEDIAlFIAkgEEZyRQRAIAMgBWohByARQQN2IQZBACEBA0AgASAHaiABIAlqKQMAIhJCOIYgEkKA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CnwiBFatfCAEIAFBKGopAwAgASkDICIGIA58IAZUrXx8IgkgBFStfHwiBFatfHwiB1atfCIIIAUgC1atIAFB6ABqKQMAIAMgBVatfHwiBSADIAxUrSANIA9UrXx8IgN8IgZCAFMgBiAIVK1CACADIAVUrX1Scg0AAkAgBkL///////////8AUQRAIAdCf1IEQCAEIQMgByEFQv///////////wAhBgwEC0J/IQUgBEJ/UQ0BIAQhA0L///////////8AIQYMAwsgBCEDIAchBQwCC0J/IQMgCUJtWg0AQv///////////wAhBgwBCyAEQgF8IgUgCUJtVK0iC30hAyAHQgF8IgggBEJ/UiAFIAtUcq0iBH0hBSAGIAdCf1IgBCAIVnKtfUL///////////8AfSEGIAlCE3whCQsgFyAfaiIWIAY3AwAgFkEYaiAJNwMAIBZBEGogAzcDACAWQQhqIAU3AwAgF0EgaiEXIBpBAWsiGg0ACwsgAjYCACABQcADaiQAIBUoAiwhFiAVKAIwIRcgFSgCNCEBIBVBADoATCAVIBcgAUEFdGo2AkggFSAXNgJEIB0gGxDmAiAVKAJAIgJBAk8EQCACQQF2IRggFSgCPCIBIAJBBXRqQSBrIQIDQCABKQMAIQQgASACKQMANwMAIAFBGGoiGSkDACEDIBkgAkEYaiIZKQMANwMAIAFBEGoiGikDACEHIBogAkEQaiIaKQMANwMAIAFBCGoiGykDACEFIBsgAkEIaiIbKQMANwMAIAIgBDcDACAZIAM3AwAgGiAHNwMAIBsgBTcDACACQSBrIQIgAUEgaiEBIBhBAWsiGA0ACwsgACAVKQI4NwIAIABBCGogFUFAaygCADYCACAWBEAgFyAWQQV0EJQFCyAVQdAAaiQADwtBCCACEIMFAAv4FAIQfgt/IwBB0ABrIhMkACATIAI2AgQgASgCCCIVQQV0IQIgASgCBCEUQQghAQJAIBUEQEG50cIALQAAGiACQQgQiwUiAUUNAQsgE0EANgI0IBMgATYCMCATIBU2AiwgEyACIBRqNgI8IBMgFDYCOCATIBNBBGo2AkAgEyABNgJMIBNBADYCSCATIBNBNGo2AkQjAEGABGsiASQAIBNBxABqIhkiFSgCBCECIBUoAgAgE0E4aiIbIhQoAgAiFyAUKAIEIhZHBEAgFCgC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ACECA0AgAygCACADQQhrKAIAIANBEGsoAgAgA0EYaygCACACampqaiECIANBIGohAyAIIAZBBGoiBkcNAAsLIAUEQCAGQQN0IAdqQQRqIQMDQCADKAIAIAJqIQIgA0EIaiEDIAVBAWsiBQ0ACwsgASgCDARAIAJBAEgNASAHKAIERSACQRBJcQ0BIAJBAXQhAgsgAg0BC0EBIQNBACECDAELQQAhBSACQQBIDQFBudHCAC0AABpBASEFIAJBARCLBSIDRQ0BCyAEQQA2AgggBCADNgIEIAQgAjYCACAEQcCwwgAgARDVAkUNAUGgscIAQdYAIARBD2pB+LHCAEGgssIAEP0DAAsgBSACEIMFAAsgACAEKQIANwIAIABBCGogBEEIaigCADYCACAEQRBqJAAL+wIBCn8jAEEQayIFJAAgBUEEaiABEOkBIAUoAgghCQJAAkAgBSgCDCICRQRAIABBCGpB4KDAACgCADYCACAAQdigwAApAgA3AgAMAQtBACEBIAJBAEgNAUG50cIALQAAGkEBIQEgAkEBEIsFIgNFDQEgACADIAkgAhCtBSIGAn9BASACQQFGDQAaIAIgBmogAkEBdiIHayEKQQAhASAHQQFHBEAgAkEBayEDIAdB/v///wNxIQADQCADIAZqIggtAAAhBCAIIAEgBmoiCy0AADoAACALIAQ6AAAgCiAHIAFBfnNqaiIELQAAIQggBCALQQFqIgQtAAA6AAAgBCAIOgAAIANBAmshAyAAIAFBAmoiAUcNAAsLIAIgAkECcUUNABogASAGaiIELQAAIQMgBCAKIAcgAUF/c2pqIgEtAAA6AAAgASADOgAAIAILQQgQjAMgBiACEJQFCyAFKAIEIgAEQCAJIAAQlAULIAVBEGokAA8LIAEgAhCDBQAL+wIBCn8jAEEQayIFJAAgBUEEaiABENYBIAUoAgghCQJAAkAgBSgCDCICRQRAIABBCGpB4KDAACgCADYCACAAQdigwAApAgA3AgAMAQtBACEBIAJBAEgNAUG50cIALQAAGkEBIQEgAkEBEIsFIgNFDQEgACADIAkgAhCtBSIGAn9BASACQQFGDQAaIAIgBmogAkEBdiIHayEKQQAhASAHQQFHBEAgAkEBayEDIAdB/v///wNxIQADQCADIAZqIggtAAAhBCAIIAEgBmoiCy0AADoAACAL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CVYgBEK/pZScz/DSu+QAVnKtIgJ9IQRCq9X+////v/+5fyAGfSEGQprN/8ujvcSAGiABKQMAIAIgClYgB0LX2a6a5PbpjcsAVnKtfH0MAQsgASkDKCEGIAEpAyAhCCABKQMYIQUgASkDECEDIAEpAwghBCABKQMACyECIAAgBjcDKCAAIAg3AyAgACAFNwMYIAAgAzcDECAAIAQ3AwggACACNwMAC6ACAgJ/A34jAEHgAGsiASQAAkBB0LnAAEGQuMAAQSAQrgUEQCABQdAAakJ/NwMAIAFCfzcDSCABQv///////////wA3A0AgAUJHNwNYDAELIAFB2ABqQei5wAApAwA3AwAgAUHQAGpB4LnAACkDADcDACABQcgAakHYucAAKQMANwMAIAFB0LnAACkDADcDQAsgAUEgaiABQUBrIgIQ6wEgASABKQMgIgNCAYg3AwAgASABKQMwIgRCP4YgASkDOEIBiIQ3AxggASABKQMoIgVCP4YgBEIBiIQ3AxAgASADQj+GIAVCAYiENwMIIAIgACABEDggAkGQuMAAQSAQrgUEfyABQUBrQdC5wABBIBCuBUVBAXQFQQELIAFB4ABqJAAL/woBB38jAEEwayIKJAAgCiACNgIUIAogATYCECAKIAI2AgwgCiAENgIgIAogAzYCHCAKIAQ2AhhBACECIApBJGohDCAKQRhqIQsgBkEARyEGIAdBAEchDSAIQQBHIQ4gCUEARyEQIwBBMGsiByQAIApBDGoiAygCACEEIAMoAgQhASADKAIIIQMgB0EANgIAIAcgASADQQJ0ajYCJCAHIAQ2AiAgByABNgIcIAcgATYCGCAHIAc2AiggB0EMaiAHQRhqEL8CAkACQCAHKAIABEAgBygCECEEIAcoAgQhAyAHKAIUIggEQCAEIQEDQCABKAIAIgUEQCABQQRqKAIAIAVBAnQQlAULIAFBDGohASAIQQFrIggNAAsLIAcoAgwiAUUNASAEIAFBDGwQlAUMAQsgBygCECEDIAcoAgwiD0GAgICAeEYNACAHKAIUIQggCygCACEEIAsoAgQhASALKAIIIQkgB0EANgIAIAcgASAJQQJ0ajYCJCAHIAQ2AiAgByABNgIcIAcgATYCGCAHIAc2AiggB0EMaiAHQRhqEL8CAkACQCAHKAIABEAgBygCECEFIAcoAgQhBCAHKAIUIgkEQCAFIQEDQCABKAIAIgYEQCABQQRqKAIAIAZBAnQQlAULIAFBDGohASAJQQFrIgkNAAsLIAcoAgwiAUUNASAFIAFBDGwQlAUMAQsgBygCECEEIAcoAgwiC0GAgICAeEYNACAHQRhqIAMgCCAEIAcoAhQiCSAFIAYgDSAOIBAQEyAHKAIYRQRAIAcoAhwhECAHKAIgIgUhDSAHKAIkIgEEQCABQQxsIQ4gBSIGIQEDQCAHQSBqIAFBCGooAgA2AgAgByABKQIANwMYIAYgB0EYahDmAzYCACANQQRqIQ0gBkEEaiEGIAFBDGohASAOQQxrIg4NAAsLIAwgBTYCBCAMIBBBA2w2AgAgDCANIAVrQQJ2NgIIIAkEQCAEIQEDQCABKAIAIgUEQCABQQRqKAIAIAVBAnQQlAULIAFBDGohASAJQQFrIgkNAAsLIAsEQCAEIAtBDGwQlAULIAgEQCADIQEDQCABKAIAIgQEQCABQQRqKAIAIARBAnQQlAULIAFBDGohASAIQQFrIggNAAsLIA9FDQQgAyAPQQxsEJQFDAQLIAdBCGogB0EcaiIBQQhqKAIANgIAIAcgASkCADcDACAHQQxqIAcQnQQgBygCECIBIAcoAhQQASEFIAcoAgwiBgRAIAEgBhCUBQsgBygCACIBBEAgBygCBCABEJQFCyAMQYCAgIB4NgIAIAwgBTYCBCAJBEAgBCEBA0AgASgCACIFBEAgAUEEaigCACAFQQJ0EJQFCyABQQxqIQEgCUEBayIJDQALCyALRQ0BIAQgC0EMbBCUBQwBCyAMQYCAgIB4NgIAIAwgBDYCBAsgCARAIAMhAQNAIAEoAgAiBARAIAFBBGooAgAgBEECdBCUBQsgAUEMaiEBIAhBAWsiCA0ACwsgD0UNASADIA9BDGwQlAUMAQsgDEGAgICAeDYCACAMIAM2AgQgCygCBCEDIAsoAggiCARAIAMhAQNAIAEoAgAiBEGEAU8EQCAEEAALIAFBBGohASAIQQFrIggNAAsLIAsoAgAiAUUNACADIAFBAnQQlAULIAdBMGokAAJAIAACfyAKKAIkIgNBgICAgHhGBEAgCigCKCEDQQAhBEEBDAELIAooAighAQJAIAooAiwiBCADTwRAIAEhAgwBCyADQQJ0IQMgBEUEQEEEIQIgASADEJQFDAELIAEgA0EEIARBAnQiARCEBSICRQ0CC0EAIQNBAAs2AgwgACADNgIIIAAgBDYCBCAAIAI2AgAgCkEwaiQADwtBBCABEIMFAAvkAQEBfyMAQZABayIDJAAgA0HIAGogAhApIAMpA0hQBEAgA0FAayADQYgBaikDADcDACADQThqIANBgAFqKQMANwMAIANBMGogA0H4AGopAwA3AwAgA0EoaiADQfAAaikDADcDACADQSBqIANB6ABqKQMANwMAIANBGGogA0HgAGopAwA3AwAgA0EQaiADQdgAaikDADcDACADIAMpA1A3AwggACABIANBCGoQLSADQZABaiQADwsgAyADKQNYNwMQIAMgAykDUDcDCEH4pcIAQSsgA0EIakHopsIAQYiowgAQ/QMAC7UCAgJ/A34jAEHgAGsiASQAAkBBsLrAAEGQuMAAQSAQrgUEQCABQoaAgID6rvCll383A1ggAULnxuLSrbbcm3E3A1AgAUKupKDI8Mjo8NEANwNIIAFC+oGnuZTW9awiNwNADAELIAFB2ABqQci6wAApAwA3AwAgAUHQAGpBwLrAACkDADcDACABQcgAakG4usAAKQMANwMAIAFBsLrAACkDADcDQAsgAUEgaiABQUBrIgIQ3AEgASABKQMgIgNCAYg3AwAgASABKQMwIgRCP4YgASkDOEIBiIQ3AxggASABKQMoIgVCP4YgBEIBiIQ3AxAgASADQj+GIAVCAYiENwMIIAIgACABEDMgAkGQuMAAQSAQrgUEfyABQUBrQbC6wABBIBCuBUVBAXQFQQELIAFB4ABqJAALtgICAn8DfiMAQeAAayIBJAACQEGQusAAQZC4wABBIBCuBQRAIAFCqt+3l5GR0uHoADcDWCABQs/+qpWH7Z+EjX83A1AgAUKxpKDI8Mjo8NEANwNIIAFC+oGnuZTW9awiNwNADAELIAFB2ABqQai6wAApAwA3AwAgAUHQAGpBoLrAACkDADcDACABQcgAakGYusAAKQMANwMAIAFBkLrAACkDADcDQAsgAUEgaiABQUBrIgIQ3QEgASABKQMgIgNCAYg3AwAgASABKQMwIgRCP4YgASkDOEIBiIQ3AxggASABKQMoIgVCP4YgBEIBiIQ3AxAgASADQj+GIAVCAYiENwMIIAIgACABEDQgAkGQuMAAQSAQrgUEfyABQUBrQZC6wABBIBCu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wgAQzQMgAkEgaiABEK0DIAIoAuACIgEEQCACKALkAiABQQJ0EJQFCyAlIQEgAkHQAmoiI0IANwMAIAJByAJqIiZCADcDACACQgA3A8ACIAJCvgE3A9gCIAJBCGoiJykDACEbIAJBEGoiKykDACEcIAIpAwAhHSACQfgCaiIsIAJBGGoiLSkDACIfNwMAIAJB8AJqIi4gHDcDACACQegCaiIvIBs3AwAgAiAdNwPgAiACQeABaiACQcACaiIwIAJB4AJqIjEQnAEgAkHoAGogJEEIaiIyKQMANwMAIAJB8ABqICRBEGoiMykDADcDACACQfgAaiAkQRhqIjQpAwA3AwAgAiAkKQMANwNgIAJB2AJqIC0pAwA3AwAgIyArKQMANwMAICYgJykDADcDACACIAIpAwA3A8ACICwgNCkDADcDACAuIDMpAwA3AwAgLyAyKQMANwMAIAIgJCkDADcD4AIgAkGgAmogMCAxEJwBIAIpA+ABIgkgAikDoAJ8IgcgAikD6AEiBCACKQOoAnwiAyAEVCADIAIpA/ABIgQgAikDsAJ8IgggBFQgCCAIIAIpA/gBIgQgAikDuAJ8IgYgBFStfCIEVnKtfCIFIANUcq18IQMCQAJAAkAgByAJVCADIAdUcg0AQv///////////wAhCSADIgdC////////////AFEEQEJ/IQlC////////////ACEHIAVCf1INAiAEQn9SBEAgBCEIDAQLQm0hCSAGIQcgBkJtUQ0BCyAHIAlaDQAgAyEHDAELIARCAXwiByAGQm1UrSIJfSEIIAVCAXwiCiAEQn9SIAcgCVRyrSIEfSEJIAMgBUJ/UiAEIApWcq19Qv///////////wB9IQcgBkITfCEGDAELIAUhCSAEIQgLIAJBiAFqIAJBKGoiIykDADcDACACQZABaiACQTBqIiYpAwA3AwAgAkGYAWogAkE4aiInKQMANwMAIAJB0AJqQgA3AwAgAkHIAmpCADcDACACIAIpAyA3A4ABIAJCADcDwAIgAkK+ATcD2AIgAkH4AmoiKyAnKQMANwMAIAJB8AJqIicgJikDADcDACACQegCaiImICMpAwA3AwAgAiACKQMgNwPgAiACQaACaiIjIAJBwAJqIiwgAkHgAmoiLRCcASArICRBGGopAwA3AwAgJyAkQRBqKQMANwMAICYgJEEI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KkECNgIIICogATYCBCAqQQI2AgAgIigCOCIBBEAgIigCPCABQQJ0EJQFCyAiKAIIIgEEQCAiKAIMIAFBAnQQlAULICJBwAFqJAAMAwsgIiAiKAJsNgI4QfCjwQBBKyAiQThqQZykwQBBrKTBABD9AwALICIgIigCbDYCOEHwo8EAQSsgIkE4akGcpMEAQbykwQAQ/QMAC0EEQQgQqAUACwJAIAACfyApKAIEIgFBgICAgHhGBEBBACEBICkoAgghJUEAIQJBAQwBCyApKAIIISUCQCApKAIMIgIgAU8EQCAlIQEMAQsgAUECdCEiIAJFBEBBBCEBICUgIhCUBQwBCyAlICJBBCACQQJ0IiUQhAUiAUUNAgtBACElQQALNgIMIAAgJTYCCCAAIAI2AgQgACABNgIAIClBEGokAA8LQQQgJRCDBQAL+D4CDn8ffiMAQRBrIggkACAIQQRqIQojAEHAAWsiBSQAIAVB6ABqIgkgARCpAwJAAkAgBSgCaEGAgICAeEcEQCAFQRBqIAVB8ABqIgEoAgA2AgAgBSAFKQJoNwMIIAVBGGoiBCAFQQhqEK0DIAkgAhCpAyAFKAJoQYCAgIB4RwRAIAVBQGsgASgCADYCACAFIAUpAmg3AzggBUHIAGoiAiAFQThqEK0DIwBBoANrIgMkACADQYADaiIBQeTlwABBwgAQzQMgAyABEK0DIAMoAoADIgEEQCADKAKEAyABQQJ0EJQFCyADQYADaiIBQabmwABBwgAQzQMgA0EgaiABEK0DIAMoAoADIgEEQCADKAKEAyABQQJ0EJQFCyAJIQEgA0HwAmoiBkIANwMAIANB6AJqIgdCADcDACADQgA3A+ACIANCvgE3A/gCIANBCGopAwAhJyADQRBqKQMAISggAykDACEsIANBmANqIgsgA0EYaikDACIqNwMAIANBkANqIgwgKDcDACADQYgDaiINICc3AwAgAyAsNwOAAyADQYACaiADQeACaiIOIANBgANqIg8QnAEgBkIANwMAIAdCADcDACADQegAaiAEQQhqIgYpAwA3AwAgA0HwAGogBEEQaiIHKQMANwMAIANB+ABqIARBGGoiECkDADcDACADQgA3A+ACIANCyAM3A/gCIAMgBCkDADcDYCALIBApAwA3AwAgDCAHKQMANwMAIA0gBikDADcDACADIAQpAwA3A4ADIANBwAJqIA4gDxCcASADKQPAAiIRIRMgAykDgAIiFiEXAn8CQAJ+AkAgESAWUg0AIAMpA8gCIhIgAykDiAIiF1IEQCASIRMMAQsgAykD0AIiHSADKQOQAiIXUgRAIB0hEwwBCyAdIR8gAykD2AIiEyEYIBIgEyADKQOYAiIXUQ0BGgsgEyAXWg0BIAMpA8gCIRIgAykD0AIhHSADKQOQAiEfIAMpA9gCIRMgAykDmAIhGCADKQOIAgshGSAfIB19IhQgEyAYVq0iF30hFSAZIBJ9IhogFCAXVCAdIB9Wcq0iG30hFyAWIBF9IRQgGCATfSETIBogG1QgEiAZVnIMAQsgAykD0AIiEiADKQOQAiIVVCASIBV9IhIgAykD2AIiFSADKQOYAiITVK0iFFRyrSIYIAMpA8gCIhkgAykDiAIiGn0iG0J/hXwiHCASQn+FIBR8IhIgFSATfSITQm1WrSIVVK0iHX0hFyASIBV9IRUgGSAaVCAYIBtWcq0gFiARfXxC////////////AHwhFEJtIBN9IRMgHCAdVAshBCADQYgBaiADQShqKQMAIiM3AwAgA0GQAWogA0EwaikDACIkNwMAIANBmAFqIANBOGopAwAiJjcDACADIAMpAyAiKzcDgAEgFCAErX0iFiESIAMCfgJAAkAgFiArIhFSDQAgFyISICMiEVINACAVIhIgJCIRUg0AIBMiEiAmIhFRDQELIBEgElQNACAkIBV9IhEgEyAmVq0iElQgFSAkVnKtIhQgIyAXfSIYQn+FfCIZIBIgEUJ/hXwiESAmIBN9IhJCbVatIhNUrSIafSEVIBkgGlQhBCARIBN9IREgFyAjViAUIBhWcq0gFiArfXxC////////////AHwhF0JtIBJ9DAELIBUgJH0iEiATICZUrSIUfSERIBcgI30iGCAVICRUIBIgFFRyrSISfSEVIBcgI1QgEiAYVnIhBCAWICt9IRcgEyAmfQs3A7gBIAMgETcDsAEgAyAVNwOoASADIBcgBK19NwOgASADQZADakIANwMAIANBiANqQgA3AwAgA0IANwOAAyADQsgDNwOYAyADQqV8QsgDIANBgANqIgZBkLjAAEEgEK4FIgQbNwP4AiADQn9CACAEGyIRNwPwAiADIBE3A+gCIANC////////////AEIAIAQbNwPgAiAGIANB4AJqIANB4ABqEJwBIAMpA4ADIhEhFAJ+AkACfgJAIBEgLCIVUg0AIAMpA4gDIhQgJyIVUg0AIAMpA5ADIhQgKCIVUg0AIBUhEiAnIAMpA5gDIhQgKiIVIhNRDQEaCyADKQOYAyETIBQgFVgNASADKQOQAyESIAMpA4gDCyEWIBIgKH0iFCATICpUrSIXfSEVIBYgJ30iGCAUIBdUIBIgKFRyrSISfSEUIBYgJ1QgEiAYVnIhBCARICx9IREgEyAqfQwBCyAoIAMpA5ADIhJUICggEn0iEiATICpWrSIWVHKtIhcgJyADKQOIAyIYfSIZQn+FfCIVIBJCf4UgFnwiEiAqIBN9IhZCbVatIhNUrSIafSEUIBUgGlQhBCASIBN9IRUgGCAnViAXIBlWcq0gESAsfXxC////////////AHwhEUJtIBZ9CyESIANB8AJqQgA3AwAgA0HoAmpCADcDACADQgA3A+ACIANCvgE3A/gCIANBmANqIANBOGopAwA3AwAgA0GQA2ogA0EwaikDADcDACADQYgDaiADQShqKQMANwMAIAMgAykDIDcDgAMgA0HAAmogA0HgAmogA0GAA2oQnAEgESAErX0iGCADKQPAAnwiESAUIBQgAykDyAJ8IhdWIBcgFyAVIBUgAykD0AJ8IhRWIBQgFCASIAMpA9gCfCITIBJUrXwiFlZyrXwiF1ZyrXwhFQJAAkACQCARIBhUIBEgFVZyDQBC////////////ACEUIBUiEUL///////////8AUQRAQn8hFEL///////////8AIREgF0J/Ug0CIBZCf1IEQCAWIRIMBAtCbSEUIBMiEUJtUQ0BCyARIBRaDQAgFSERDAELIBZCAXwiESATQm1UrSIUfSESIBdCAXwiGCAWQn9SIBEgFFRyrSIRfSEUIBUgF0J/UiARIBhWcq19Qv///////////wB9IREgE0ITfCETDAELIBchFCAWIRILIAMgEzcDmAIgAyASNwOQAiADIBQ3A4gCIAMgETcDgAICQAJAIANBgAJqQZC4wABBIBCuBQRAQgAhHCADQdACakIANwMAIANByAJqQgA3AwAgA0IANwPAAiADQgE3A9gCIANB+AJqIANBmAJqKQMANwMAIANB8AJqIANBkAJqKQMANwMAIANB6AJqIANBiAJqKQMANwMAIAMgAykDgAI3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2AJ8IhMgKlStfCIRVnKtfCIWIBJUcq18IRICQCAVICxUIBIgFVRyDQBC////////////ACEXIBIiFUL///////////8AUQRAQn8hF0L///////////8AIRUgFkJ/Ug0DIBFCf1IEQCARIRQMBQtCbSEXIBMhFSATQm1RDQELIBUgF1oNACASIRUMAgsgEUIBfCIVIBNCbVStIhd9IRQgFkIBfCIYIBFCf1IgFSAXVHKtIhF9IRcgEiAWQn9SIBEgGFZyrX1C////////////AH0hFSATQhN8IRMMAgsgA0ICNwOAA0G4tsAAQSsgA0GAA2pB5LbAAEGY58AAEP0DAAsgFiEXIBEhFAsgA0GYA2ogA0HYAGopAwA3AwAgA0GQA2ogA0HQAGopAwA3AwAgA0GIA2ogA0HIAGopAwA3AwAgAyADKQNANwOAAyADQeACaiADQYABaiADQYADahCcASADKQPgAiISIR0CfwJAIBQCfgJAIBIgFSIWUg0AIBciFiADKQPoAiIdUg0AIBQiFiADKQPwAiIdUg0AIBMhFiAXIR8gFCATIhEgAykD+AIiHVENARoLIAMpA/gCIREgFiAdWA0BIAMpA+gCIR8gAykD8AILIhZ9IhggESATVq0iGX0hHSAXIB99IhogFCAWVCAYIBlUcq0iFn0hFCAVIBJ9IRUgEyARfSERIBcgH1QgFiAaVnIMAQsgAykD8AIiFiAUVCAWIBR9IhYgESATVK0iFFRyrSIYIAMpA+gCIhkgF30iGkJ/hXwiGyAWQn+FIBR8IhYgESATfSIRQm1WrSITVK0iHH0hFCAWIBN9IR0gFyAZViAYIBpWcq0gFSASfXxC////////////AHwhFUJtIBF9IREgGyAcVAshBCAVIAStfSISIRUgAwJ+AkACfgJAIBIgKyIXUg0AIBQiFSAjIhdSDQAgHSIVICQiF1INACAXIRYgJiIXIR8gIyAXIBEiFVENARoLIBUgF1gNASAdIRYgESEfIBQLIREgFiAkfSIVIB8gJlStIhN9IRcgESAjfSIUIBYgJFQgEyAVVnKtIhZ9IRUgFCAWVCARICNUciEEIBIgK30hEyAfICZ9DAELICQgHX0iFiARICZWrSIVVCAdICRWcq0iEyAjIBR9IhhCf4V8IhcgFSAWQn+FfCIWICYgEX0iEUJtVq0iGVStIhp9IRUgFyAaVCEEIBYgGX0hFyAUICNWIBMgGFZyrSASICt9fEL///////////8AfCETQm0gEX0LNwO4ASADIBc3A7ABIAMgFTcDqAEgAyATIAStfTcDoAEgA0HwAmpCADcDACADQegCakIANwMAIANBqAJqIAJBCGoiBCkDADcDACADQbACaiACQRBqIgYpAwA3AwAgA0G4AmogAkEYaiIHKQMANwMAIANCADcD4AIgA0KYATcD+AIgAyACKQMANwOgAiADQZgDaiAHKQMANwMAIANBkANqIgcgBikDADcDACADQYgDaiIGIAQpAwA3AwAgAyACKQMANwOAAyADQcACaiADQeACaiICIANBgANqIgQQnAEgB0IANwMAIAZCADcDACADQgA3A4ADIANCmAE3A5gDIAIgBCADQaACahCcASAEIAIgA0HAAWoQnAEgAykDgAMiFiETIAMpA8ACIhUhFAJ/AkACfgJAIBUgFlINACADKQOIAyIRIAMpA8gCIhRSBEAgESETDAELIAMpA5ADIhIgAykD0AIiFFIEQCASIRMMAQsgESEdIAMpA5gDIhMhHyASIBMgAykD2AIiFFENARoLIBMgFFoNASADKQOIAyERIAMpA8gCIR0gAykDkAMhEiADKQOYAyETIAMpA9gCIR8gAykD0AILIhcgEn0iGCATIB9WrSIZfSEUIB0gEX0iGiAYIBlUIBIgF1ZyrSIYfSESIBUgFn0hFyAfIBN9IRMgGCAaViARIB1WcgwBCyADKQOQAyIRIAMpA9ACIhJUIBEgEn0iESADKQOYAyISIAMpA9gCIhNUrSIUVHKtIhcgAykDiAMiGCADKQPIAiIZfSIaQn+FfCIbIBFCf4UgFHwiESASIBN9IhNCbVatIhRUrSIcfSESIBEgFH0hFCAYIBlUIBcgGlZyrSAVIBZ9fEL///////////8AfCEXQm0gE30hEyAbIBxUCyECIAMgEzcDmAIgAyAUNwOQAiADIBI3A4gCIAMgFyACrX03A4ACAkAgA0GAAmpBkLjAAEEgEK4FBEBCACEcIANB0AJqQgA3AwAgA0HIAmpCADcDACADQgA3A8ACIANCATcD2AIgA0H4AmogA0GYAmopAwA3AwAgA0HwAmogA0GQAmopAwA3AwAgA0HoAmogA0GIAmopAwA3AwAgAyADKQOAAjcD4AIgA0GY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IgBBAEcgBy0ADUUNABpBASAADQAaIAIoAgAiAC0AHEEEcUUEQCAAKAIUQd+1wgBBAiAAKAIYKAIMEQMADAELIAAoAhRB3rXCAEEBIAAoAhgoAgwRAwALIAdBEGokAAubAQEBfwJAAkAgAQRAIAJBAEgNAQJ/IAMoAgQEQAJAIAMoAggiBEUEQAwBCyADKAIAIAQgASACEIQFDAILCyABIAJFDQAaQbnRwgAtAAAaIAIgARCLBQsiAwRAIAAgAjYCCCAAIAM2AgQgAEEANgIADwsgACACNgIIIAAgATYCBAwCCyAAQQA2AgQMAQsgAEEANgIECyAAQQE2AgALswEBAX9BudHCAC0AABpBwABBCBCLBSICRQRAQQhBwAAQgwUACyAAQQI2AgggACACNgIEIABBAjYCACACIAEpAwA3AwAgAkE4aiABQThqKQMANwMAIAJBMGogAUEwaikDADcDACACQShqIAFBKGopAwA3AwAgAkEgaiABQSBqKQMANwMAIAJBGGogAUEYaikDADcDACACQRBqIAFBEGopAwA3AwAgAkEIaiABQQhqKQMANwMAC6ABAQF/IwBBEGsiBiQAAkAgAQRAIAZBBGogASADIAQgBSACKAIQEQcAAkAgBigCBCICIAYoAgwiAU0EQCAGKAIIIQUMAQsgAkECdCECIAYoAgghAyABRQRAQQQhBSADIAIQlAUMAQsgAyACQQQgAUECdCICEIQFIgVFDQILIAAgATYCBCAAIAU2AgAgBkEQaiQADwsQpAUAC0EEIAIQgwUAC6gBAQR/AkAgASgCAEGAgICAeEYEQCABKAIEIgEoAgQhBQJAIAEoAggiAUUEQEEEIQMMAQsgAUECdCECIAFB/////wFLBEAMAwtBudHCAC0AABpBBCEEIAJBBBCLBSIDRQ0CCyADIAUgAhCtBSECIAAgATYCCCAAIAI2AgQgACABNgIADwsgACABKQIANwIAIABBCGogAUEIaigCADYCAA8LIAQgAhCDBQALowEBAX8jAEFAaiICJAAgACgCACEAIAJCADcDOCACQThqIAAQECACIAIoAjwiADYCNCACIAIoAjg2AjAgAiAANgIsIAIgAkEsaq1CgICAgOAMhDcDICACQQI2AgwgAkG868EANgIIIAJCATcCFCACIAJBIGo2AhAgASgCFCABKAIYIAJBCGoQ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QSAQtAEgAkEgaiQACyQBAX8jAEEgayICJAAgAiABEI8DIAAgAkEgEK4BIAJBIGokAAskAQF/IwBBIGsiAiQAIAIgARCPAyAAIAJBIBCyASACQSBqJAALJAEBfyMAQSBrIgIkACACIAEQjwMgACACQSAQpgEgAkEgaiQACyQBAX8jAEEgayICJAAgAiABEI8DIAAgAkEgEKcBIAJBIGokAAskAQF/IwBBIGsiAiQAIAIgARCPAyAAIAJBIBCzASACQSBqJAALKAAgASAAKAIALQAAQQJ0IgBB7KXBAGooAgAgAEHUpcEAaigCABCGBQseACAARQRAEKQFAAsgACACIAMgBCAFIAEoAhARCgALJQAgASAALQAAQQJ0IgBBpK/AAGooAgAgAEGUr8AAaigCABCGBQslACABIAAtAABBAnQiAEHIr8AAaigCACAAQbSvwABqKAIAEIYFCxsAIAAgASACEDsgAEEYaiABQRhqIAJBGGoQOwsbACAAIAEgAhAoIABBGGogAUEYaiACQRhqECgLGwAgACABIAIQRCAAQRhqIAFBGGogAkEYahBECxsAIAAgASACEEIgAEEYaiABQRhqIAJBGGoQQgsbACAAIAEgAhBBIABBGGogAUEYaiACQRhqEEELGwAgACABIAIQPSAAQRhqIAFBGGogAkEYahA9CyUAIAEgAC0AAEECdCIAQcjZwQBqKAIAIABBuNnBAGooAgAQhgULJQAgASAALQAAQQJ0IgBB8OrBAGooAgAgAEHg6sEAaigCABCGBQscACAARQRAEKQFAAsgACACIAMgBCABKAIQEQUACxwAIABFBEAQpAUACyAAIAIgAyAEIAEoAhARGAALHAAgAEUEQBCkBQALIAAgAiADIAQgASgCEBEaAAscACAARQRAEKQFAAsgACACIAMgBCABKAIQERwACxwAIABFBEAQpAUACyAAIAIgAyAEIAEoAhARDAALJgEBfyAAKAIAIgFBgICAgHhyQYCAgIB4RwRAIAAoAgQgARCUBQsLCgBBCCAAEKgFAAsbAQF/IAAoAgAiAQRAIAAoAgQgAUECdBCUBQsLIwAgAUH9p8EAQfinwQAgACgCAC0AACIAG0EMQQUgABsQhgULGwEBfyAAKAIAIgEEQCAAKAIEIAFBBnQQlAULCxwBAX8gACgCACIBBEAgACgCBCABQeAA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IQEgA0EASgRAIAVB/wFxQYGChAhsIQMDQCAEIAM2AgAgBEEEaiIEIAFJDQALCyACQQNxIQILIAIEQCABIAJqIQIDQCABIAU6AAAgAUEBaiIBIAJJDQALCyAACwuHwgI/AEGAgMAAC5ECQ3VydmUgSUQgIG5vdCBzdXBwb3J0ZWQAAAAQAAkAAAAJABAADgAAAHNyYy9wYWlyaW5nL2ZpbmFsX2V4cF93aXRuZXNzL21vZC5ycygAEAAkAAAATgAAAAUAAAAAAAAABAAAAAAAAAABAAAAAAAAAAQAAAAAAAAAYXR0ZW1wdCB0byBkaXZpZGUgYnkgemVybwAAAHgAEAAZAAAAL3Vzci9sb2NhbC9jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvbnVtLWJpZ2ludC0wLjQuNi9zcmMvYmlndWludC9kaXZpc2lvbi5ycwCcABAAZwAAAHAAAAAJAEG4gsAAC4ABKaAx4XJOZDBdWIGBtkVQuI3KcWiRaoGXR/182BaMIDwpoDHhck5kMF1YgYG2RVC4kXC5eUjoMygBAADwk/XhQ/////////9//////////////////////+3/////////AQAAAP////8AAAAAAAAAAP////8AAAAA//////////8AQeiDwAALmQGa5n856hEBGtesS0O2pxtLvxKF84RLd2Qk9rD2oNIwZ///U7H+/6seq6r//////rmq48qS5Y+YES2VGbWFPnmawIOdk6mI62fVtpVMbEfljfEE0Qmm5nYKRhc0HDQf3/T///////////////////////////////8v/P///v////7///8AAAAA//////////8AAAAA/////wEAQaCFwAALONEDAAABAAAAk+SA+sNe9hVt7FailxoHXEVXUnBTWM53uljHU1eYSF8CAAzECwD06/3/AgAAAAl2AEHwhcAAC60IJgAAAAAAAAAv3weawXcKDixGeXhvo25mPQvH9SjreAqdDY/FjUNd0y/fB5rBdwoOLkZ5eG+jbmYpzWCflXb8Nvv//08cNJasVHJ5RnJvbUJpZ0ludEVycm9yb3JpZ2luYWwAAAAAAAAEAAAABAAAAAkAAABEaXZpc2lvbkJ5WmVyb1Jvb3RPZlVuaXR5RXJyb3IAAAAAAAAEAAAABAAAAAoAAABJbnZaZXJvRXJyb3JzcmMvZWNpcC9jb3JlLnJzoAMQABAAAAA9AAAAOAAAAGNhbGxlZCBgUmVzdWx0Ojp1bndyYXAoKWAgb24gYW4gYEVycmAgdmFsdWUACwAAABAAAAAEAAAADAAAAKADEAAQAAAAZAAAACoAAACgAxAAEAAAAIAAAAAdAAAAeHNbMF0gaXMgbm90IGluZmluaXR5AAAAHAQQABUAAACgAxAAEAAAAPMAAAAFAAAAoAMQABAAAADZAAAAEAAAAKADEAAQAAAA4AAAACEAAACgAxAAEAAAAOEAAAAhAAAAoAMQABAAAAAVAQAACgAAAKADEAAQAAAAXQEAABYAAACgAxAAEAAAAGQBAAA1AAAAoAMQABAAAABlAQAANQAAAAAAAAAQAAAACAAAAA0AAACgAxAAEAAAAHcBAABEAAAAoAMQABAAAAB0AQAAQwAAAKADEAAQAAAAcQEAAEQAAACgAxAAEAAAAG4BAABDAAAARGVuWzFdIGlzIG5vdCB6ZXJvOiAMBRAAFAAAAKADEAAQAAAAXAEAAAUAAABEIGhhcyAgY29lZmZzOiAAOAUQAAYAAAA+BRAACQAAAKADEAAQAAAAOgEAAAUAAABjYXBhY2l0eSBvdmVyZmxvdwAAAGgFEAARAAAAL3J1c3RjLzNmNWZkOGRkNDExNTNiYzVmZGNhOTQyN2U5ZTA1YmUyYzc2N2JhMjMvbGlicmFyeS9hbGxvYy9zcmMvdmVjL3NwZWNfZnJvbV9pdGVyX25lc3RlZC5ycwAAhAUQAF4AAAA7AAAAEgAAAAAAAAAEAAAAAAAAAHNyYy9lY2lwL2NvcmUucnMABhAAEAAAAEcAAAAvAAAAc3JjL2lvLnJzAAAAIAYQAAkAAAATAAAAIwAAACAGEAAJAAAAEwAAADUAAAAgBhAACQAAACEAAAAjAAAAIAYQAAkAAAAhAAAANQAAACAGEAAJAAAAIwAAABIAAAAgBhAACQAAACMAAAAkAAAAIAYQAAkAAAAkAAAAEgAAACAGEAAJAAAAJAAAACQAAABzcmMvcGFpcmluZy9tdWx0aV9wYWlyaW5nX2NoZWNrLnJzAACsBhAAIgAAAHcBAAAhAAAArAYQACIAAAB5AQAAJgAAAKwGEAAiAAAAogEAABgAAACsBhAAIgAAAKMBAAAZAAAArAYQACIAAAClAQAAHgBBwI7AAAuAASmgMeFyTmQwXViBgbZFULiNynFokWqBl0f9fNgWjCA8KaAx4XJOZDBdWIGBtkVQuJFwuXlI6DMoAQAA8JP14UP/////////f//////////////////////t/////////wEAAAD/////AAAAAAAAAAD/////AAAAAP//////////AEHwj8AAC5kBmuZ/OeoRARrXrEtDtqcbS78ShfOES3dkJPaw9qDSMGf//1Ox/v+rHquq//////65quPKkuWPmBEtlRm1hT55msCDnZOpiOtn1baVTGxH5Y3xBNEJpuZ2CkYXNBw0H9/0////////////////////////////////L/z///7////+////AAAAAP//////////AAAAAP////8BAEGokcAACzjRAwAAAQAAAJPkgPrDXvYVbexWopcaB1xFV1JwU1jOd7pYx1NXmEhfAgAMxAsA9Ov9/wIAAAAJdgBB+JHAAAvGBSYAAAAAAAAAL98HmsF3Cg4sRnl4b6NuZj0Lx/Uo63gKnQ2PxY1DXdMv3weawXcKDi5GeXhvo25mKc1gn5V2/Db7//9PHDSWrAAAAAAEAAAABAAAAA4AAAAAAAAABAAAAAQAAAAPAAAAAAAAAAQAAAAEAAAADgAAAAAAAAAEAAAABAAAABAAAAAAAAAABAAAAAQAAAARAAAAAAAAAAQAAAAEAAAAEgAAAAAAAAAEAAAABAAAABMAAAAAAAAABAAAAAQAAAAOAAAAAAAAAAQAAAAEAAAAFAAAAAAAAAAEAAAABAAAAAoAAAAAAAAABAAAAAQAAAAVAAAAAAAAAAQAAAAEAAAADgAAAAAAAAAEAAAABAAAABYAAAAAAAAABAAAAAQAAAAXAAAAAAAAAAQAAAAEAAAAGAAAAAAAAAAEAAAABAAAABkAAAAAAAAABAAAAAQAAAAaAAAAAAAAAAQAAAAEAAAADgAAAERpdmlzaW9uQnlaZXJvUm9vdE9mVW5pdHlFcnJvckludlplcm9FcnJvcnNyYy9lY2lwL2ZmLnJzigoQAA4AAAAnAAAAKgAAAIoKEAAOAAAAUgAAACAAAACKChAADgAAAFIAAAAwAAAAY2FsbGVkIGBSZXN1bHQ6OnVud3JhcCgpYCBvbiBhbiBgRXJyYCB2YWx1ZQAAAAAAEAAAAAgAAAAbAAAAigoQAA4AAABTAAAANgAAAGFzc2VydGlvbiBmYWlsZWQ6IHNlbGYuY29lZmZzLmxlbigpID09IDGKChAADgAAAGAAAAAJAAAAigoQAA4AAACXAAAAHwAAAIoKEAAOAAAAkwAAAB8AAACKChAADgAAAKwAAAAnAAAAAAAAAPD9//////8H/////////////////////+H///////////////+DBAD//////////wAAAADg////AAAAAABEAEHgl8AAC4ABKaAx4XJOZDBdWIGBtkVQuI3KcWiRaoGXR/182BaMIDwpoDHhck5kMF1YgYG2RVC4kXC5eUjoMygBAADwk/XhQ/////////9//////////////////////+3/////////AQAAAP////8AAAAAAAAAAP////8AAAAA//////////8AQZCZwAALmQGa5n856hEBGtesS0O2pxtLvxKF84RLd2Qk9rD2oNIwZ///U7H+/6seq6r//////rmq48qS5Y+YES2VGbWFPnmawIOdk6mI62fVtpVMbEfljfEE0Qmm5nYKRhc0HDQf3/T///////////////////////////////8v/P///v////7///8AAAAA//////////8AAAAA/////wEAQciawAALONEDAAABAAAAk+SA+sNe9hVt7FailxoHXEVXUnBTWM53uljHU1eYSF8CAAzECwD06/3/AgAAAAl2AEGYm8AAC68CJgAAAAAAAAAv3weawXcKDixGeXhvo25mPQvH9SjreAqdDY/FjUNd0y/fB5rBdwoOLkZ5eG+jbmYpzWCflXb8Nvv//08cNJasVHJ5RnJvbUludEVycm9yAAAAAAAEAAAABAAAABwAAABEaXZpc2lvbkJ5WmVyb1Jvb3RPZlVuaXR5RXJyb3IAAAAAAAAEAAAABAAAAAoAAABJbnZaZXJvRXJyb3Jhc3NlcnRpb24gZmFpbGVkOiBzZWxmLmNvZWZmaWNpZW50cy5sZW4oKSA8PSBleHRfZGVncmVlc3JjL2FsZ2VicmEvcG9seW5vbWlhbC5yc3MOEAAZAAAACwAAAAkAAABjYWxsZWQgYFJlc3VsdDo6dW53cmFwKClgIG9uIGFuIGBFcnJgIHZhbHVlAEHQncAAC4EDAQAAAB0AAABzDhAAGQAAAFMAAAA1AAAAcw4QABkAAABoAAAAHgAAAERpdmlzaW9uIGJ5IHplcm8gcG9seW5vbWlhbAD4DhAAGwAAAHMOEAAZAAAAcQAAAA0AAABzDhAAGQAAAH8AAAA2AAAAcw4QABkAAACAAAAAHAAAAAAAAAAQAAAACAAAAB4AAABzDhAAGQAAAHoAAABGAAAAcw4QABkAAAChAAAAFwAAAHMOEAAZAAAAwwAAADcAAABzDhAAGQAAAAEBAAATAAAAUG9seW5vbWlhbGNvZWZmaWNpZW50cwAAAAAAAAQAAAAEAAAAHwAAAAAAAAAEAAAABAAAACAAAAAAAAAABAAAAAQAAAAhAAAAAAAAAAQAAAAEAAAAIgAAAAAAAAAEAAAABAAAACMAAAAAAAAABAAAAAQAAAAkAAAAVW5zaWduZWRJbnRlZ2VybGltYnMAAAAABAAAAAQAAAAoAAAAAAAAAAQAAAAEAAAAKQAAADB4MDB4AAAAAQBB3KDAAAvjBQQAAAAAAAAAYXR0ZW1wdCB0byBkaXZpZGUgYnkgemVybwAAAGQQEAAZAAAAL3Vzci9sb2NhbC9jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvbnVtLWJpZ2ludC0wLjQuNi9zcmMvYmlndWludC9kaXZpc2lvbi5ycwCIEBAAZwAAAHAAAAAJAAAAL3Vzci9sb2NhbC9jYXJnby9naXQvY2hlY2tvdXRzL2xhbWJkYXdvcmtzLWY3MmE1NmZlNzJjYjBlM2IvM2JiMWZhMS9tYXRoL3NyYy91bnNpZ25lZF9pbnRlZ2VyL2VsZW1lbnQucnMAERAAaAAAADsBAAAYAAAAABEQAGgAAABAAQAADQAAAAAREABoAAAAPgEAACIAAAAAERAAaAAAAD4BAAA9AAAAL98HmsF3Cg4sRnl4b6NuZj0Lx/Uo63gKnQ2PxY1DXdMAERAAaAAAAPMBAAAJAAAAABEQAGgAAADkAQAAGwAAAE1hbGZvcm1lZCBoZXggZXhwcmVzc2lvbi4AAADoERAAGQAAAAAREABoAAAA6AEAABYAAAAAERAAaAAAAOwBAAARAAAAABEQAGgAAAC6AQAAJQAAAAAREABoAAAAuwEAACUAAAAAERAAaAAAAL0BAAAdAAAAABEQAGgAAAAkAgAAHAAAAAAREABoAAAAKQIAAA0AAAAAERAAaAAAAC0CAAAYAAAAABEQAGgAAABAAgAAIAAAAAAREABoAAAAQAIAABEAAAAAERAAaAAAAEUCAAANAAAAAAAAAJPkgPrDXvYVbexWopcaB1xFV1JwU1jOd7pYx1NXmEhfAgAMxAsA9Ov9/wIAAAAJdioAAAAMAAAABAAAACsAAAAsAAAALQAAAGEgRGlzcGxheSBpbXBsZW1lbnRhdGlvbiByZXR1cm5lZCBhbiBlcnJvciB1bmV4cGVjdGVkbHkAQcimwAALrQwBAAAALgAAAC9ydXN0Yy8zZjVmZDhkZDQxMTUzYmM1ZmRjYTk0MjdlOWUwNWJlMmM3NjdiYTIzL2xpYnJhcnkvYWxsb2Mvc3JjL3N0cmluZy5ycwBQExAASwAAAAMKAAAOAAAARXJyb3JJbnZhbGlkSGV4U3RyaW5nSW52YWxpZERlY1N0cmluZ0hleFN0cmluZ0lzVG9vQmlnRW1wdHlTdHJpbmdGcm9tQkVCeXRlc0Vycm9yRnJvbUxFQnl0ZXNFcnJvckludmFsaWRWYWx1ZVBvaW50Tm90SW5TdWJncm91cFZhbHVlTm90Q29tcHJlc3NlZFVuc3VwcG9ydGVkIGN1cnZlRml4ZWQgRzIgY291bnQgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gcGFpcnMgY291bnRQdWJsaWMgcGFpciB2YWx1ZXMgbGVuZ3RoIG11c3QgYmUgMCBvciA2QSBtaW5pbXVtIG51bWJlciBvZiAyIHBhaXJzIGlzIHJlcXVpcmVkUGFpcnMgdmFsdWVzIGxlbmd0aCBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgNnNyYy9jYWxsZGF0YS9tcGNfY2FsbGRhdGEucnMAFRAAHAAAAFQAAAATAAAAABUQABwAAACBAAAAHgAAAAAVEAAcAAAAiAAAAAwAAABub3QgaW1wbGVtZW50ZWQAABUQABwAAACDAAAADgAAAEJOMjU0QkxTMTJfMzgxTVBDSEVDS19fUF9GAAB6FRAACAAAAIIVEAABAAAAgxUQAAIAAACFFRAAAQAAAAAAAAAAFRAAHAAAALwAAAAJAAAAY2FsbGVkIGBSZXN1bHQ6OnVud3JhcCgpYCBvbiBhbiBgRXJyYCB2YWx1ZQAAAAAAAQAAAAEAAAAvAAAAABUQABwAAACxAAAAPAAAAAAVEAAcAAAApQAAAA4AAAAAFRAAHAAAAK4AAAAyAAAAABUQABwAAADWAAAADgAAAGFzc2VydGlvbiBmYWlsZWQ6IG5fcGFpcnMgPj0gMgAAABUQABwAAAD7AAAABQAAAGFzc2VydGlvbiBmYWlsZWQ6IG5fZml4ZWRfZzIgPD0gbl9wYWlycwAAFRAAHAAAAPwAAAAFAAAAABUQABwAAAAQAQAAHQAAAFBhaXJpbmcgY2hlY2sgaXMgbm90ID09IDEAAAAAAAAAAQAAAAEAAAAwAAAAc3JjL2lvLnJzAAAA3BYQAAkAAABJAAAAMAAAAGFzc2VydGlvbiBmYWlsZWQ6IHYubGVuKCkgPD0gbgAA3BYQAAkAAABqAAAACQAAAGFzc2VydGlvbiBmYWlsZWQ6IGJ5dGVzLmxlbigpIDw9IE4gKiBTSVpFIC8gOAAAANwWEAAJAAAAswAAAAUAAABpbnZhbGlkIGhleCBzdHJpbmc6IGgXEAAUAAAA3BYQAAkAAADEAAAAPgAAABAAAAAQAAAAEQAAAAsAAACxExAAwRMQANETEADiExAAEAAAABAAAAAMAAAAEgAAABIAAADtExAA/RMQAA0UEAAZFBAAKxQQAAAAAAApoDHhck5kMF1YgYG2RVC4jcpxaJFqgZdH/XzYFowgPAEAAAD/////AAAAAAAAAAD/////AAAAAP//////////muZ/OeoRARrXrEtDtqcbS78ShfOES3dkJPaw9qDSMGf//1Ox/v+rHquq//////65/////////3//////////////////////7f////////8poDHhck5kMF1YgYG2RVC4kXC5eUjoMygBAADwk/XhQ////////////////////////////////y/8///+////Y2FsbGVkIGBSZXN1bHQ6OnVud3JhcCgpYCBvbiBhbiBgRXJyYCB2YWx1ZQAAAAAAEAAAAAgAAAAxAAAAL3Vzci9sb2NhbC9jYXJnby9naXQvY2hlY2tvdXRzL2xhbWJkYXdvcmtzLWY3MmE1NmZlNzJjYjBlM2IvM2JiMWZhMS9tYXRoL3NyYy9maWVsZC9maWVsZHMvbW9udGdvbWVyeV9iYWNrZWRfcHJpbWVfZmllbGRzLnJzAOwYEAB7AAAA+wAAACQAQcizwAALnQKq48qS5Y+YES2VGbWFPnmawIOdk6mI62fVtpVMbEfljfEE0Qmm5nYKRhc0HDQf3/REaXZpc2lvbkJ5WmVyb1Jvb3RPZlVuaXR5RXJyb3IAAAAAAAAEAAAABAAAAAoAAABJbnZaZXJvRXJyb3JGaWVsZEVsZW1lbnR2YWx1ZQAAAAAAAAAEAAAABAAAADIAAAAAAAAABAAAAAQAAAAzAAAAAAAAAAQAAAAEAAAANAAAAAAAAAAEAAAABAAAADUAAAAAAAAABAAAAAQAAAA2AAAAAAAAAAQAAAAEAAAANwAAAHNyYy9hbGdlYnJhL3JhdGlvbmFsX2Z1bmN0aW9uLnJzqBoQACAAAAAaAAAAVwAAAKgaEAAgAAAAGQAAAFkAQbi2wAAL2AFjYWxsZWQgYFJlc3VsdDo6dW53cmFwKClgIG9uIGFuIGBFcnJgIHZhbHVlAAAAAAAQAAAACAAAADkAAAAvdXNyL2xvY2FsL2NhcmdvL2dpdC9jaGVja291dHMvbGFtYmRhd29ya3MtZjcyYTU2ZmU3MmNiMGUzYi8zYmIxZmExL21hdGgvc3JjL2ZpZWxkL2V4dGVuc2lvbnMvcXVhZHJhdGljLnJzAAB0GxAAagAAAHoAAAAxAAAA/////////3//////////////////////7f////////8AQeC4wAALGf7///8AAAAA//////////8AAAAA/////wEAQZi5wAALONEDAAABAAAAk+SA+sNe9hVt7FailxoHXEVXUnBTWM53uljHU1eYSF8CAAzECwD06/3/AgAAAAl2AEHoucAAC6krJgAAAAAAAADw/f//////B//////////////////////h/////////y/fB5rBdwoOLEZ5eG+jbmY9C8f1KOt4Cp0Nj8WNQ13TL98HmsF3Cg4uRnl4b6NuZinNYJ+Vdvw2+///Txw0lqyq48qS5Y+YES2VGbWFPnmawIOdk6mI62fVtpVMbEfljfEE0Qmm5nYKRhc0HDQf3/QvdXNyL2xvY2FsL2NhcmdvL2dpdC9jaGVja291dHMvbGFtYmRhd29ya3MtZjcyYTU2ZmU3MmNiMGUzYi8zYmIxZmExL2NyeXB0by9zcmMvaGFzaC9wb3NlaWRvbi9zdGFya25ldC9wYXJhbWV0ZXJzLnJz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c4U6rfwgoSwQatBAApLKt0HJiUoWzQvWpXIK3x6/X0WZRxa4oi91c3IvbG9jYWwvY2FyZ28vZ2l0L2NoZWNrb3V0cy9sYW1iZGF3b3Jrcy1mNzJhNTZmZTcyY2IwZTNiLzNiYjFmYTEvY3J5cHRvL3NyYy9oYXNoL3Bvc2VpZG9uL21vZC5ycwAoLBAAYwAAAC4AAAAjAAAAKCwQAGMAAAA2AAAAFQAAAERpdmlzaW9uQnlaZXJvUm9vdE9mVW5pdHlFcnJvcgAAAAAAAAQAAAAEAAAACgAAAEludlplcm9FcnJvcjc3OUJFNjY3RUY5RENCQkFDNTVBMDYyOTVDRTg3MEIwNzAyOUJGQ0RCMkRDRTI4RDk1OUYyODE1QjE2RjgxNzk4NDgzQURBNzcyNkEzQzQ2NTVEQTRGQkZDMEUxMTA4QThGRDE3QjQ0OEE2ODU1NDE5OUM0N0QwOEZGQjEwRDRCOEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZFQkFBRURDRTZBRjQ4QTAzQkJGRDI1RThDRDAzNjQxNDEAAAAAAAAAAQAAAAEAAAA7AAAAc3JjL2RlZmluaXRpb25zLnJzAAC8LRAAEgAAAKYAAAAOAAAAZmZmZmZmZmYwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYzVhYzYzNWQ4YWEzYTkzZTdiM2ViYmQ1NTc2OTg4NmJjNjUxZDA2YjBjYzUzYjBmNjNiY2UzYzNlMjdkMjYwNGI2QjE3RDFGMkUxMkM0MjQ3RjhCQ0U2RTU2M0E0NDBGMjc3MDM3RDgxMkRFQjMzQTBGNEExMzk0NUQ4OThDMjk2NEZFMzQyRTJGRTFBN0Y5QjhFRTdFQjRBN0MwRjlFMTYyQ0JDRTMzNTc2QjMxNUVDRUNCQjY0MDY4MzdCRjUxRkZGRkZGRkZGMDAwMDAwMDBGRkZGRkZGRkZGRkZGRkZGQkNFNkZBQURBNzE3OUU4NEYzQjlDQUMyRkM2MzI1NTG8LRAAEgAAAMYAAAAOAAAAMHg1ZDRlYWNkM2E1YjliZWU2MzE5N2UxMGQ2MTdiM2RkNjZiYjhiNjVkMGNhNTJhZjdhYzcxZTE4ZWY4YmMxNzJkMHgxZDExYjI5YmNmZDBiM2UwNTUwZGRiMDYxMDU3ODBkNWY1NDgzMTk3NmI5ZmJjMzI5MDA0ZWJjMWYzNjRiMmE0OTIwQUUxOUExQjhBMDg2QjRFMDFFREQyQzc3NDhEMTRDOTIzRDRERjY2N0FEQ0UwQjlBOUUzOUU5NjlBMkMwREYxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE0REVGOURFQTJGNzlDRDY1ODEyNjMxQTVDRjVEM0VEAAAAvC0QABIAAADkAAAADgAAADAweDMwNjQ0ZTcyZTEzMWEwMjliODUwNDViNjgxODE1ODVkMjgzM2U4NDg3OWI5NzA5MTQzZTFmNTkzZWZmZmZmZjAweDEweDJDRjEzNUU3NTA2QTQ1RDYzMkQyNzBENDVGMTE4MTI5NDgzM0ZDNDhEODIzRjI3MkMzMDY0NEU3MkUxMzFBMDI5Qjg1MDQ1QjY4MTgxNTg1RDk3ODE2QTkxNjg3MUNBOEQzQzIwOEMxNkQ4N0NGRDQ3AAAAvC0QABIAAAAAAQAADgAAADJCMTQ5RDQwQ0VCOEFBQUU4MUJFMTg5OTFCRTA2QUMzQjVCNEM1RTU1OURCRUZBMzMyNjdFNkRDMjRBMTM4RTUwMDk3MTNCMDNBRjBGRUQ0Q0QyQ0FGQURFRUQ4RkRGNEE3NEZBMDg0RTUyRDE4NTJFNEEyQkQwNjg1QzMxNUQyMTIzMDY0NEU3MkUxMzFBMDI5Qjg1MDQ1QjY4MTgxNTg1RDI4MzNFODQ4NzlCOTcwOTE0M0UxRjU5M0YwMDAwMDAxUgAA7gAAAVIAAAAAAO4AAAAAAAEAAAD//wD/AAAA/wAAAAEAAP8A/wAAAAEA/wAAAAD/AAABAP8AAAEAAAAAAP8AAAEBAAD/AAAA/wD/AAAAAQD/AAG8LRAAEgAAABwBAAAOAAAANDczRURBNzUzMjk5RDdENDgzMzM5RDgwODA5QTFEODA1NTNCREE0MDJGRkZFNUJGRUZGRkZGRkZGMDAwMDAwMDECAAD+AAABAgAAAAAA/gAAAAAAAQBBoeXAAAsBAQBBweXAAAuHAgEAAAAAAAAAAAEAAAEAAQEAAAC8LRAAEgAAADsBAAAOAAAAMHg3RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkVDMHg1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ACoAAADPSxAAHAAAAOQAAAA8AAAAAAAAABEAAAAAAAAIAEHYmMEAC00BAAAAAAAAADB4NEQ1MzRENUY0NzMxMHg0RDUzNEQ1RjQ3MzE1RjU1MzEzMjM4dGhlcmUgaXMgbm8gcm9vdAAAz0sQABwAAACmAQAAJwBB+JnBAAvPAS91c3IvbG9jYWwvY2FyZ28vZ2l0L2NoZWNrb3V0cy9sYW1iZGF3b3Jrcy1mNzJhNTZmZTcyY2IwZTNiLzNiYjFmYTEvbWF0aC9zcmMvdW5zaWduZWRfaW50ZWdlci9tb250Z29tZXJ5LnJzAPhMEABrAAAAqwAAAB4AAAAoKQAAQQAAAAwAAAAEAAAAQgAAAEMAAAAtAAAAYSBEaXNwbGF5IGltcGxlbWVudGF0aW9uIHJldHVybmVkIGFuIGVycm9yIHVuZXhwZWN0ZWRseQBB0JvBAAvrCgEAAABEAAAAL3J1c3RjLzNmNWZkOGRkNDExNTNiYzVmZGNhOTQyN2U5ZTA1YmUyYzc2N2JhMjMvbGlicmFyeS9hbGxvYy9zcmMvc3RyaW5nLnJzANhNEABLAAAAAwoAAA4AAABFcnJvclBvaW50ICgsICkgaXMgbm90IG9uIHRoZSBjdXJ2ZQA5ThAABwAAAEBOEAACAAAAQk4QABUAAAAAAAAABAAAAAAAAABQb2ludCAoKCksICgpKSBpcyBub3Qgb24gdGhlIGN1cnZlAAB8ThAACAAAAEBOEAACAAAAhE4QAAQAAABAThAAAgAAAIhOEAAWAAAASW52YWxpZCBjdXJ2ZSBJRDogAADIThAAEgAAAG5vIGVudHJ5IGZvdW5kIGZvciBrZXlzcmMvZGVmaW5pdGlvbnMucnP6ThAAEgAAAH8AAAA7AAAAMHgzMDY0NEU3MkUxMzFBMDI5Qjg1MDQ1QjY4MTgxNTg1RDk3ODE2QTkxNjg3MUNBOEQzQzIwOEMxNkQ4N0NGRDQ3MHgxQTAxMTFFQTM5N0ZFNjlBNEIxQkE3QjY0MzRCQUNENzY0Nzc0Qjg0RjM4NTEyQkY2NzMwRDJBMEY2QjBGNjI0MUVBQkZGRkVCMTUzRkZGRkI5RkVGRkZGRkZGRkFBQUIweEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZFRkZGRkZDMkYweEZGRkZGRkZGMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYweDdGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRUQweDMwNjQ0RTcyRTEzMUEwMjlCODUwNDVCNjgxODE1ODVEMjgzM0U4NDg3OUI5NzA5MTQzRTFGNTkzRjAwMDAwMDFGYWlsZWQgdG8gY29udmVydCBKc1ZhbHVlIHRvIHN0cmluZ3NyYy93YXNtX2JpbmRpbmdzLnJzAOtQEAAUAAAAUgAAAAwAAABGYWlsZWQgdG8gY29udmVydCBzdHJpbmcgdG8gQmlnVWludHh5RmFpbGVkIHRvIHBhcnNlIEcxUG9pbnRCaWdVaW50eSBpcyBub3QgYW4gYXJyYXl4IGlzIG5vdCBhbiBhcnJheUZhaWxlZCB0byBwYXJzZSBHMlBvaW50QmlnVWludHB1YmxpY19pbnB1dHMgaXMgbm90IGFuIGFycmF5aWMgaXMgbm90IGFuIGFycmF5Qk4yNTRCTFMxMl8zODFTRUNQMjU2SzFTRUNQMjU2UjFYMjU1MTlHUlVNUEtJTmNhbGxlZCBgUmVzdWx0Ojp1bndyYXAoKWAgb24gYW4gYEVycmAgdmFsdWUARQAAAAQAAAAEAAAARgAAAOtQEAAUAAAArwAAADsAAADrUBAAFAAAAKwAAAA7AAAA61AQABQAAADHAAAAQQAAAOtQEAAUAAAAxAAAAEEAAABhYmNwdWJsaWNJbnB1dHNpbWFnZUlkam91cm5hbGFscGhhYmV0YWdhbW1hZGVsdGFpY2N1cnZlX2lkX2pzIGlzIG5vdCBhIG51bWJlcnByb29mX2pzIGlzIG5vdCBhbiBvYmplY3QAAAUAAAAJAAAACQAAAAkAAAAGAAAACAAAAMJREADHURAA0FEQANlREADiURAA6FEQAGNhbGxlZCBgUmVzdWx0Ojp1bndyYXAoKWAgb24gYW4gYEVycmAgdmFsdWUA//////////8wUxAAQcimwQALqTYvcnVzdGMvM2Y1ZmQ4ZGQ0MTE1M2JjNWZkY2E5NDI3ZTllMDViZTJjNzY3YmEyMy9saWJyYXJ5L2NvcmUvc3JjL3NsaWNlL2l0ZXIucnMAAAAAAAAEAAAABAAAAEcAAAAAAAAABAAAAAQAAAAVAAAAAAAAAAQAAAAEAAAAEgAAAAAAAAAEAAAABAAAAA4AAAAAAAAABAAAAAQAAABIAAAAAAAAAAQAAAAEAAAAEwAAAEVtcHR5SW52YWxpZERpZ2l0SW52YWxpZEhleFN0cmluZ0ludmFsaWREZWNTdHJpbmdIZXhTdHJpbmdJc1Rvb0JpZ0VtcHR5U3RyaW5nAAAASFMQAE4AAADcBQAAFQAAAGFzc2VydGlvbiBmYWlsZWQ6IHpfcG9seXIuY29lZmZpY2llbnRzLmxlbigpIDw9IGV4dF9kZWdyZWVzcmMvYWxnZWJyYS9leHRmX211bC5ycwAAAJJUEAAXAAAAFQAAAAUAAACSVBAAFwAAADQAAAAFAAAAklQQABcAAAA5AAAADgAAAJJUEAAXAAAAOQAAAB4AAACSVBAAFwAAADoAAAAOAAAAklQQABcAAAA6AAAAHgAAAJJUEAAXAAAAOwAAAA4AAACSVBAAFwAAADsAAAAeAAAAklQQABcAAABBAAAADgAAAJJUEAAXAAAAQQAAAB4AAACSVBAAFwAAAEIAAAAOAAAAklQQABcAAABCAAAAHgAAAJJUEAAXAAAARAAAAA4AAACSVBAAFwAAAEQAAAAeAAAAklQQABcAAABGAAAADgAAAJJUEAAXAAAARgAAAB8AAABVbnN1cHBvcnRlZCBleHRlbnNpb24gZGVncmVlrFUQABwAAACSVBAAFwAAAE4AAAAOAAAAklQQABcAAABWAAAABQAAAJJUEAAXAAAAWwAAAA4AAACSVBAAFwAAAFsAAAAeAAAAklQQABcAAABdAAAAHgAAAJJUEAAXAAAAXwAAAB4AAACSVBAAFwAAAGMAAAAOAAAAklQQABcAAABjAAAAHgAAAJJUEAAXAAAAZQAAAB4AAACSVBAAFwAAAGcAAAAeAAAAklQQABcAAABtAAAAHgAAAJJUEAAXAAAAcAAAAA4AAACSVBAAFwAAAH8AAAAFAAAAklQQABcAAACAAAAABQAAAEkAAAAMAAAABAAAAEoAAACSVBAAFwAAAJQAAAAOAAAASwAAAAwAAAAEAAAATAAAAJJUEAAXAAAAowAAAAUAAACSVBAAFwAAAKQAAAAFAAAAklQQABcAAAC4AAAADgAAAJJUEAAXAAAAxAAAAAgAAACSVBAAFwAAAO0AAAAzAAAATQAAAAwAAAAEAAAATgAAAJJUEAAXAAAA9wAAADcAAABPAAAADAAAAAQAAABQAAAAUQAAAAwAAAAEAAAAUgAAAJJUEAAXAAAABQEAADMAAABTAAAADAAAAAQAAABUAAAAc3JjL2Zyb2Jlbml1cy5yc5BXEAAQAAAADwAAADkAAABhc3NlcnRpb24gZmFpbGVkOiB4LmNvZWZmaWNpZW50cy5sZW4oKSA8PSBleHRfZGVncmVlkFcQABAAAAAQAAAABQAAAJBXEAAQAAAAFQAAACwAAAAxMTIxZDhjOGRhZWYzZWVlMWU4MWIyNTIyZWM1ZWIyOGRlZDY4OTVlMWNkZmRlNmE0M2Y1ZGFhOTcxZjNmYTY1OTU1MjE3ZTQwMGRjOTM1MWU3NzRlMzRlMmFjMDZlYWQ0MDAwZDE0ZDFlMjQyYjI5YzU2N2U5YzM4NWNlNDgwYTcxYTI0MmI3MTkwNjJmNjczN2I4NDgxZDIyYzY5MzRjZTg0NGQ3MmYyNTBmZDI4ZDEwMmMwZDE0N2IyZjRkNTIxYTczNTk4MDkwOTRiZDVjOGUxYjljMjJkODEyNDZmZmMyZTc5NGUxNzY0M2FjMTk4NDg0YjhkOTA5NGFhODI1MzYyMTQzNmQ0OGZjYjUwY2M2MGRkNGVmMWU2OWEwYzFmMGRkMjk0OWZhNmRmN2I0NGNiYjI1OWVmN2NiNThkNWVkMTg4NTdhNThmM2I1YmIzMDM4YTQzMTFhODY5MTlkOWM3YzZjMTVmODhhNGY0ZjA4MzEzNjRjZjM1Zjc4Zjc3MTJjODRiYmFkMjdjMzY3MTU2MmI3YWRlZmQ0NDAzOGFiM2MwYmJhZDk2ZmMwMDhlN2Q2OTk4YzgyZjdmYzA0OGJjMzNiMWM3MGU0ZmQxMWI2ZDFlYWI2ZmNkMThiOTlhZDRhZmQwOTZhODY5N2UwYzljMzZkOGNhMzMzOWE3YjUxYjAwNzI5NGE1NWFjY2NlMTNmZTA4YmVhNzMzMDVmZjZiZGFjNzdjNTM3MWM1NDZkNDI4NzgwYTZlM2RjZmE4MjE1ZDQyZTdhYzdiZDE3Y2VmZTg4ZGQ4ZTY5NjViM2FkYWU5MmM5NzRmNTAxZmU4MTE0OTNkNzI1NDNhMzk3NzMwNjQ0ZTcyZTEzMWEwMjliODUwNDViNjgxODE1ODVkOTc4MTZhOTE2ODcxY2E4ZDNjMjA4YzE2ZDg3Y2ZkNDYyNDY5OTZmM2I0ZmFlN2U2YTYzMjdjZmUxMjE1MGI4ZTc0Nzk5Mjc3OGVlZWM3ZTVjYTVjZjA1ZjgwZjM2MmFjMTJkN2MwYzNlZDQyYmU0MTlkMmIyMmNhMjJjZWNhNzAyZWViODhjMzZhOGIyNjRkZGU3NWY0Zjc5OGQ2YTNmMjE2YzllNTUwNjFlYmFlMjA0YmE0Y2M4YmQ3NWEwNzk0MzJhZTJhMWQwYjdjOWRjZTE2NjVkNTFjNjQwZmNiYTJjMzhkY2UyN2UzYjJjYWUzM2NlNzM4YTE4NGM4OWQ5NGEwZTc4NDA2YjQ4Zjk4YTdiNGY0NDYzZTNhN2RiYTA3YzAzY2JjYWM0MTA0OWEwNzA0YjVhN2VjNzk2ZjJiMjE4MDdkYzk4ZmEyNWJkMjgyZDM3ZjYzMjYyM2IwZTNmMjBlMTI5ZTQ3YzkzNjNhYTdiNTY5ODE3ZTA5NjZjYmE1ODIwOTZmYTdhMTY0MDgwZmFlZDFmMGQyNDI3NWEyYzE0NWVkYmU3ZmQ4YWVlOWYzYTgwYjAzYjBiMWM5MjM2ODVkMmVhMWJkZWM3NjNjMTNiNDcxMWNkMmI4MTI2M2RmOTJjNWI5NmUzOTE0NTU5ODk3YzZhZDQxMWZiMjViNzVhZmI3ZjhiMWMxYTU2NTg2ZmY5M2UwODBmOGJjMTJhY2YyY2E3NmZkMDY3NWEyN2ZiMjQ2Yzc3MjlmN2RiMDgwY2I5OTY3OGUyYWMwMjRjNmI4ZWU2ZTBjMmM0YjE1NjNkYmRlM2JkNmQzNWJhNDUyM2NmN2RhNGU1MjVlMmJhNmEzMTUxNTAwMDU0NjY3ZjgxNDBjNmEzZjJkOWYzMDY0NGU3MmUxMzFhMDI5NWU2ZGQ5ZTdlMGFjY2NiMGMyOGYwNjlmYmI5NjZlM2RlNGJkNDRlNTYwN2NmZDQ5MzA2NDRlNzJlMTMxYTAyOTVlNmRkOWU3ZTBhY2NjYjBjMjhmMDY5ZmJiOTY2ZTNkZTRiZDQ0ZTU2MDdjZmQ0ODU5ZTI2YmNlYTBkNDhiYWNkNGYyNjNmMWFjZGI1YzRmNTc2MzQ3MzE3N2ZmZmZmZTU5ZTI2YmNlYTBkNDhiYWNkNGYyNjNmMWFjZGI1YzRmNTc2MzQ3MzE3N2ZmZmZmZjEzZDBjMzY5NjE1ZjdiYjBiMmJkZmE4ZmVmODVmYTA3MTIyYmRlOGQ2N2RmYzhmYWJkMzU4MWFkODQwZGRkNzYxOGEwZjQyMTlmNGZkZmY2ZmMyYmY1MzFlYjMzMWEwNTNhMzU3NDRjYWMyODVhZjU2ODVkM2Y5MGVhY2Y3YTY2YzNhNWU5YzQ2MmE2NTQ3NzljM2UwNTBjOWNhMmE0Mjg5MDhhODEyNjRlMmI1YTViZjIyZjY3NjU0ODgzYWU2MmNlMDJhYTVmOWJmOGNkNjViZGQyMDU1YzI1NWNmOWQ5ZTA4YzFkOTM0NTU4MmNjOTJmZDk3M2M3NGJkNzdmNDE3ZGVkNDE5ZWQ3YmU0Zjk3ZmFjMTQ5YmZhZWZiYWMxMWIxNTU0OThkZTIyN2I4NTBhZWEzZjIzNzkwNDA1ZDYxYmZlN2IyMTRjMDI5NDI0MmZiODFhOGRjY2Q4YTliNDQ0MWQ2NGYzNDE1MGE3OTc1M2ZiMGNkMzFjYzk5Y2MwNjk3YjljNTIzZTAzOTBlZDE1ZGEwZWM5N2E5YjgzNDY1MTMyOTdiOWVmYWYwZjBmMWEyMjhmMGQ1NjYyZmJkN2EwZTA1MmYyYjFjNDQzYjUxODZkNmFjNGM3MjNiODVkM2Y3OGEzMTgyZDJkYjBjNDEzOTAxYzMyYjBjNmZlMWI3NmEzN2ZiYTg1ZjNjZDVkYzc5ODI0YTM3OTI1OTczNTZjODkyYzM5YzBkMDZiMjIwNTAwOTMzOTQ1MjY3ZmFiZjhiNjBiZTc3ZDczMDZjYmVlZTMzNTc2MTM5ZDdmMDNhNWUzOTdkNDM5ZWM3Njk0YWEyYmY0YzBjMTAxMWM5MzhiMDk3ZmQyMjQ3OTA1OTI0YjI2OTFmYjVlNTY4NTU1OGMwNDAwOTIwMTkyN2VlYjBhNjk1NDZmMWZkMTRmMWRlNDFiM2QxNzY2ZmE5ZjMwZTZkZWMyNjA5NGYwZmRmMzFiZjk4ZmYyNjMxMzgwY2FiMmJhYWE1ODZkZTI0MjllZmQ2OWIwNzNhZTIzZThjNjU2NWI3YjcyZTFiMGU3OGMyN2YwMzhmMTRlNzdjZmQ5NWEwODNmNGMyNjEyOGE0MTFiNjM0ZjA5YjhmYjE0YjkwMGU5NTA3ZTkzMjc2MDBlY2M3ZDhjZjZlYmFiOTRkMGNiM2IyNTk0YzY0MjNkNWU5OTllMTkxMGExMmZlYjBmNmVmMGNkMjFkMDRhNDRhOWUwODczN2Y5NmU1NWZlM2VkOWQ3MzBjMjM5ZjE0NjVkMzUxOTUyZjBjMDU4ODk4MmIyOGI0YThhZWE5NTM2NDA1OWUyNzIxMjJmNWU4MjU3ZjQzYmJiMzYwODcxNmRiMzY2YTU5YjFkZDBiOWZiMWIyMjgyYTQ4NjMzZDNlMmRkYWVhMjAwMjgwMjExZjI1MDQxMzg0MjgyNDk5MjhjMzZlMWZlZTdmZGJlNjAzMzdkODRiYmNiYTM0YTUzYTQxZjFlZTUwNDQ5Y2RjNzgwY2ZiZmFhNWNjMzY0OQAAAAAAAQAAAAEAAABVAAAAkFcQABAAAACmAAAAdQAAAJBXEAAQAAAApQAAAHQAAACQVxAAEAAAAKIAAAB1AAAAkFcQABAAAAChAAAAdAAAAJBXEAAQAAAAngAAAHQAAACQVxAAEAAAAJ0AAAB0AAAAkFcQABAAAACaAAAAdAAAAJBXEAAQAAAAmQAAAHMAAACQVxAAEAAAAJYAAAB0AAAAkFcQABAAAACVAAAAcgAAAJBXEAAQAAAAkgAAAHQAAACQVxAAEAAAAI8AAAB1AAAAkFcQABAAAACOAAAAcwAAAJBXEAAQAAAAiwAAAHQAAACQVxAAEAAAAIoAAAB0AAAAkFcQABAAAACHAAAAdAAAAJBXEAAQAAAAhgAAAHMAAACQVxAAEAAAAIMAAAB0AAAAkFcQABAAAACCAAAAcwAAAJBXEAAQAAAAfwAAAHQAAACQVxAAEAAAAH4AAAB0AAAAkFcQABAAAAB7AAAANgAAAJBXEAAQAAAAegAAADUAAACQVxAAEAAAAHUAAABlAAAAkFcQABAAAAByAAAAZQAAAJBXEAAQAAAAbwAAAHQAAACQVxAAEAAAAGwAAAB0AAAAkFcQABAAAABpAAAAdAAAAJBXEAAQAAAAZgAAADUAAACQVxAAEAAAAGMAAABkAAAAkFcQABAAAABgAAAAZAAAAJBXEAAQAAAAXQAAAHQAAACQVxAAEAAAAFoAAAB0AAAAkFcQABAAAABXAAAAdAAAAJBXEAAQAAAAVAAAADUAAACQVxAAEAAAAE8AAAB1AAAAkFcQABAAAABOAAAAdAAAAJBXEAAQAAAASwAAAHQAAACQVxAAEAAAAEoAAAB0AAAAkFcQABAAAABHAAAAcwAAAJBXEAAQAAAARgAAAHMAAACQVxAAEAAAAEMAAABzAAAAkFcQABAAAABCAAAAdAAAAJBXEAAQAAAAPwAAAHQAAACQVxAAEAAAAD4AAAB0AAAAkFcQABAAAAA7AAAAdAAAAJBXEAAQAAAAOAAAAHUAAACQVxAAEAAAADcAAAB0AAAAkFcQABAAAAA0AAAAdAAAAJBXEAAQAAAAMwAAAHQAAACQVxAAEAAAADAAAAB0AAAAkFcQABAAAAAvAAAAdAAAAJBXEAAQAAAALAAAAHMAAACQVxAAEAAAACsAAAB0AAAAkFcQABAAAAAoAAAAdAAAAJBXEAAQAAAAJwAAAHQAAACQVxAAEAAAACQAAAA2AAAAkFcQABAAAAAjAAAANQAAADIxODA4OTU5M2NiZjYyNjM1Mzk0N2Q1YjFmZDBjNmQ2NmJiMzRiYzc1ODVmNWFiZGY4ZjE3YjUwZTEyYzQ3ZDY1Y2U1MTRhN2MxNjdiMDI3YjYwMGZlYmRiMjQ0NzE0YzU1ZjE5NjcyZmRmNzZjZTUxYmE2OWM2MDc2YTBmNzdlYWRkYjNhOTNiZTZmODk2ODhkZTE3ZDgxMzYyMGEwMDAyMmUwMWZmZmZmZmZlZmZmZmQ1ZTFjMDg2ZmZlODAxNmQwNjNjNmRhZDdhMmZmZmM5MDcyYmI1Nzg1YTY4NmJjZWZlZWRjMmUwMTI0ODM4YmRjY2YzMjVlZTVkODBiZTk5MDIxMDlmN2RiYzc5ODEyMWEwMTExZWEzOTdmZTY5OWVjMDI0MDg2NjNkNGRlODVhYTBkODU3ZDg5NzU5YWQ0ODk3ZDI5NjUwZmI4NWY5YjQwOTQyN2ViNGY0OWZmZmQ4YmZkMDAwMDAwMDBhYWFkMWEwMTExZWEzOTdmZTY5OThjZThkOTU2ODQ1ZTEwMzNlZmEzYmY3NjFmNjYyMmU5YWJjOTgwMjkyOGJmYzkxMjYyN2M0ZmQ3ZWQzZmZmZmI1ZGZiMDAwMDAwMDFhYWFmYjY1OWZiMjAyNzRiZmIxYmU4ZmY0ZDY5MTYzYzA4YmU3MzAyYzQ4MTgxNzFmZGQxN2Q1YmU5YjFkMzgwYWNkOGM3NDdjZGM0YWZmMGU2NTM2MzFmNWQzMDAwZjAyMmMxYTAxMTFlYTM5N2ZlNjlhNGIxYmE3YjY0MzRiYWNkNzY0Nzc0Yjg0ZjM4NTEyYmY2NzMwZDJhMGY2YjBmNjI0MWVhYmZmZmViMTUzZmZmZmI5ZmVmZmZmZmZmZmFhYWFmYzNlMmIzNmM0ZTAzMjg4ZTllOTAyMjMxZjlmYjg1NGExNDc4N2I2YzdiMzZmZWMwYzhlYzk3MWY2M2M1ZjI4MmQ1YWMxNGQ2YzdlYzIyY2Y3OGExMjZkZGM0YWYzMWY4N2M1NjZkODljMDY1MTFkM2QyMDQ0NjNmM2Y3MGE5NDI4ZjBmNmQ4ZjY2ZGZkODE5MWQ5MmUzZWM3OGJlNTA1YWI1ODI5YWQ4ZmQ4NDU5ZWYxNDI0ZGJiODk1ZTYxYTAxMTFlYTM5N2ZlNjk5ZWMwMjQwODY2M2Q0ZGU4NWFhMGQ4NTdkODk3NTlhZDQ4OTdkMjk2NTBmYjg1ZjliNDA5NDI3ZWI0ZjQ5ZmZmZDhiZmQwMDAwMDAwMGFhYWM2YWYwZTA0MzdmZjQwMGI2ODMxZTM2ZDZiZDE3ZmZlNDgzOTVkYWJjMmQzNDM1ZTc3Zjc2ZTE3MDA5MjQxYzVlZTY3OTkyZjcyZWMwNWY0YzgxMDg0ZmJlZGUzY2MwOTVmMTk2NzJmZGY3NmNlNTFiYTY5YzYwNzZhMGY3N2VhZGRiM2E5M2JlNmY4OTY4OGRlMTdkODEzNjIwYTAwMDIyZTAxZmZmZmZmZmVmZmZlMTQ0ZTQyMTEzODQ1ODZjMTZiZDNhZDRhZmE5OWNjOTE3MGRmMzU2MGU3Nzk4MmQwZGI0NWYzNTM2ODE0ZjBiZDU4NzFjMTkwOGJkNDc4Y2QxZWU2MDUxNjdmZjgyOTk1ZTliNzIzODM3MGIyNmU4OGM4YmIyZGZiMWU3ZWM0YjdkNDcxZjNjZGI2ZGYyZTI0ZjViMTQwNWQ5NzhlYjU2OTIzNzgzMjI2NjU0ZjE5YTgzY2QwYTJjZmZmMGE4N2YAAJBXEAAQAAAA1gAAAJQAAACQVxAAEAAAANUAAACUAAAAkFcQABAAAADSAAAAhQAAAJBXEAAQAAAAzwAAAJMAAACQVxAAEAAAAMwAAACUAAAAkFcQABAAAADLAAAAlAAAAJBXEAAQAAAAyAAAAJMAAACQVxAAEAAAAMcAAACSAAAAkFcQABAAAADEAAAAlAAAAJBXEAAQAAAAwQAAAJQAAACQVxAAEAAAAMAAAACTAAAAkFcQABAAAAC9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YTljOTU5OThkYzU0MDE0NjcxYTAxMzVhN2MwM2NiY2FjNDEwNDlhMDcwNGI1YTdlYzc5NmYyYjIxODA3ZGM5OGZhMjViZDI4MmQzN2Y2MzI2MjNiMGUzMzA2NDRlNzJlMTMxYTAyOTVlNmRkOWU3ZTBhY2NjYjBjMjhmMDY5ZmJiOTY2ZTNkZTRiZDQ0ZTU2MDdjZmQ0ODMwNjQ0ZTcyZTEzMWEwMjliODUwNDViNjgxODE1ODVkOTc4MTZhOTE2ODcxY2E4ZDNjMjA4YzE2ZDg3Y2ZkNDYAACBxEAAgAAAAiQEAAA4AAAAgcRAAIAAAAIsBAAAOAAAAIHEQACAAAACMAQAADgAAAAAAAAABAAAAAQAAAFkAAAAgcRAAIAAAAIEBAAAGAAAAIHEQACAAAAB9AQAABgAAACBxEAAgAAAAeAEAAAoAAAAgcRAAIAAAAHQBAAAKAAAAIHEQACAAAABuAQAACgAAACBxEAAgAAAAagEAAAoAAAAgcRAAIAAAAJ8BAAAFAAAAIHEQACAAAAC+AQAACAAAACBxEAAgAAAA4gEAAA4AAAAgcRAAIAAAAMcBAAAMAAAAIHEQACAAAADPAQAAGgAAACBxEAAgAAAA1AEAAA0AAAAgcRAAIAAAAMMBAAAJAAAAEAAAABAAAAARAAAACwAAAEhvEABYbxAAaG8QAHlvEABjbG9zdXJlIGludm9rZWQgcmVjdXJzaXZlbHkgb3IgYWZ0ZXIgYmVpbmcgZHJvcHBlZEpzVmFsdWUoKQCydRAACAAAALp1EAABAAAAbWlkID4gbGVuAAAAzHUQAAkAAAAvdXNyL2xvY2FsL2NhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9udW0tYmlnaW50LTAuNC42L3NyYy9iaWd1aW50L2FkZGl0aW9uLnJzAOB1EABnAAAAOwAAABoAAADgdRAAZwAAAGoAAAAiAAAAL3Vzci9sb2NhbC9jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvbnVtLWJpZ2ludC0wLjQuNi9zcmMvYmlndWludC9zdWJ0cmFjdGlvbi5ycwAAaHYQAGoAAACHAAAAJQAAAFRoZSByYWRpeCBtdXN0IGJlIHdpdGhpbiAyLi4uMzYA5HYQAB8AAAAvdXNyL2xvY2FsL2NhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9udW0tYmlnaW50LTAuNC42L3NyYy9iaWd1aW50L2NvbnZlcnQucnMAAAx3EABmAAAA3gAAAAkAAAAAAAAABAAAAAAAAAABAAAAbWlkID4gbGVuAAAAlHcQAAkAAAAvdXNyL2xvY2FsL2NhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9udW0tYmlnaW50LTAuNC42L3NyYy9iaWd1aW50L2FkZGl0aW9uLnJzAKh3EABnAAAAOwAAABoAAAAvdXNyL2xvY2FsL2NhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9udW0tYmlnaW50LTAuNC42L3NyYy9iaWd1aW50L211bHRpcGxpY2F0aW9uLnJzAAAAIHgQAG0AAAAsAAAAHAAAAGNhcnJ5IG92ZXJmbG93IGR1cmluZyBtdWx0aXBsaWNhdGlvbiEAAACgeBAAJQAAAAAAAAAgeBAAbQAAADkAAAAFAAAAIHgQAG0AAABIAAAAGwAAACB4EABtAAAAUAAAABsAAAAgeBAAbQAAAC0BAAAmAAAAIHgQAG0AAAAxAQAAJgAAACB4EABtAAAAMgEAACYAAAAgeBAAbQAAAJMBAAAnAAAAIHgQAG0AAACSAQAAJgAAACB4EABtAAAA5wAAABoAAAAgeBAAbQAAAPQAAAAWAAAAIHgQAG0AAAD1AAAAFgAAACB4EABtAAAApAAAABYAAAAgeBAAbQAAAGgAAAAfAAAAAAAAAAQAAAAAAAAAIHgQAG0AAAC5AQAADwAAACB4EABtAAAAvAEAAA8AAABtaWQgPiBsZW4AAADQeRAACQAAAGF0dGVtcHQgdG8gZGl2aWRlIGJ5IHplcm8AAADkeRAAGQAAAC91c3IvbG9jYWwvY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL251bS1iaWdpbnQtMC40LjYvc3JjL2JpZ3VpbnQvZGl2aXNpb24ucnMACHoQAGcAAABXAAAACQAA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Z2ludC0wLjQuNi9zcmMvYmlndWludC9kaXZpc2lvbi5ycwAcjBAAZwAAAFcAAAAJAAAAHIwQAGcAAACjAAAACQAAAAAAAAAEAAAAAAAAAByMEABnAAAA0gAAAAkAAAAcjBAAZwAAABUBAAAOAAAAHIwQAGcAAAAWAQAADgAAAByMEABnAAAAIAEAACEAAAAcjBAAZwAAACEBAAAYAAAAHIwQAGcAAABCAQAAPAAAAFRyaWVkIHRvIHNocmluayB0byBhIGxhcmdlciBjYXBhY2l0eRCNEAAkAAAAL3J1c3RjLzNmNWZkOGRkNDExNTNiYzVmZGNhOTQyN2U5ZTA1YmUyYzc2N2JhMjMvbGlicmFyeS9hbGxvYy9zcmMvcmF3X3ZlYy5yczyNEABMAAAAAwIAAAkAAAAvcnVzdGMvM2Y1ZmQ4ZGQ0MTE1M2JjNWZkY2E5NDI3ZTllMDViZTJjNzY3YmEyMy9saWJyYXJ5L2FsbG9jL3NyYy92ZWMvbW9kLnJzmI0QAEwAAACVCAAAJAAAAC9ydXN0Yy8zZjVmZDhkZDQxMTUzYmM1ZmRjYTk0MjdlOWUwNWJlMmM3NjdiYTIzL2xpYnJhcnkvY29yZS9zcmMvc2xpY2UvaXRlci5ycwAA9I0QAE4AAADcBQAAFQAAAC91c3IvbG9jYWwvY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL251bS1iaWdpbnQtMC40LjYvc3JjL2JpZ3VpbnQvc2hpZnQucnNUjhAAZAAAACgAAAAZAAAAVI4QAGQAAABKAAAAIwAAAAAAAAAEAAAABAAAAGcAAABuZWdhdGl2ZSB2YWx1ZXMgYXJlIG5vbi16ZXJvL3Vzci9sb2NhbC9jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvbnVtLWJpZ2ludC0wLjQuNi9zcmMvYmlnaW50L3NoaWZ0LnJzAASPEABjAAAAZgAAACgAAABtaWQgPiBsZW4AAAB4jxAACQAAAC91c3IvbG9jYWwvY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL251bS1iaWdpbnQtMC40LjYvc3JjL2JpZ3VpbnQvYWRkaXRpb24ucnMAjI8QAGcAAAA7AAAAGgAAAC91c3IvbG9jYWwvY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL251bS1iaWdpbnQtMC40LjYvc3JjL2JpZ3VpbnQvc3VidHJhY3Rpb24ucnNDYW5ub3Qgc3VidHJhY3QgYiBmcm9tIGEgYmVjYXVzZSBiIGlzIGxhcmdlciB0aGFuIGEuAABukBAANAAAAASQEABqAAAARQAAAAUAAAAEkBAAagAAAGUAAAAFAAAAL3Vzci9sb2NhbC9jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvbnVtLWludGVnZXItMC4xLjQ2L3NyYy9yb290cy5ycwAAzJAQAF4AAACDAQAAAQAAAAAAAACT5ID6w172FW3sVqKXGgdcRVdScFNYzne6WMdTV5hIXwIADMQLAPTr/f8CAAAACXYvdXNyL2xvY2FsL2NhcmdvL2dpdC9jaGVja291dHMvbGFtYmRhd29ya3MtZjcyYTU2ZmU3MmNiMGUzYi8zYmIxZmExL21hdGgvc3JjL3Vuc2lnbmVkX2ludGVnZXIvbW9udGdvbWVyeS5ycwBwkRAAawAAAKsAAAAeAAAAL3Vzci9sb2NhbC9jYXJnby9naXQvY2hlY2tvdXRzL2xhbWJkYXdvcmtzLWY3MmE1NmZlNzJjYjBlM2IvM2JiMWZhMS9tYXRoL3NyYy91bnNpZ25lZF9pbnRlZ2VyL2VsZW1lbnQucnPskRAAaAAAADsBAAAYAAAA7JEQAGgAAABAAQAADQAAAOyREABoAAAAPgEAACIAAADskRAAaAAAAD4BAAA9AAAA7JEQAGgAAADzAQAACQAAAOyREABoAAAA5AEAABsAAABNYWxmb3JtZWQgaGV4IGV4cHJlc3Npb24uAAAAtJIQABkAAADskRAAaAAAAOgBAAAWAAAA7JEQAGgAAADsAQAAEQAAAGNhbGxlZCBgUmVzdWx0Ojp1bndyYXAoKWAgb24gYW4gYEVycmAgdmFsdWUAAAAAACmgMeFyTmQwXViBgbZFULiNynFokWqBl0f9fNgWjCA8AEHspsIAC4gCEAAAAAgAAABoAAAAL3Vzci9sb2NhbC9jYXJnby9naXQvY2hlY2tvdXRzL2xhbWJkYXdvcmtzLWY3MmE1NmZlNzJjYjBlM2IvM2JiMWZhMS9tYXRoL3NyYy9lbGxpcHRpY19jdXJ2ZS9zaG9ydF93ZWllcnN0cmFzcy9jdXJ2ZXMvYm5fMjU0L2ZpZWxkX2V4dGVuc2lvbi5ycwAAeJMQAI4AAABNAAAAMQAAAC/fB5rBdwoOLEZ5eG+jbmY9C8f1KOt4Cp0Nj8WNQ13TRGl2aXNpb25CeVplcm9Sb290T2ZVbml0eUVycm9yAAAAAAAABAAAAAQAAABpAAAASW52WmVyb0Vycm9yAEGoqcIAC50GY2FsbGVkIGBSZXN1bHQ6OnVud3JhcCgpYCBvbiBhbiBgRXJyYCB2YWx1ZQAAAAAAEAAAAAgAAABqAAAAMQAAAJrmfznqEQEa16xLQ7anG0u/EoXzhEt3ZCT2sPag0jBn//9Tsf7/qx6rqv/////+uS91c3IvbG9jYWwvY2FyZ28vZ2l0L2NoZWNrb3V0cy9sYW1iZGF3b3Jrcy1mNzJhNTZmZTcyY2IwZTNiLzNiYjFmYTEvbWF0aC9zcmMvZWxsaXB0aWNfY3VydmUvc2hvcnRfd2VpZXJzdHJhc3MvY3VydmVzL2JsczEyXzM4MS9maWVsZF9leHRlbnNpb24ucnMAAAAYlRAAkQAAAEsAAAAxAAAAAAAAAKrjypLlj5gRLZUZtYU+eZrAg52TqYjrZ9W2lUxsR+WN8QTRCabmdgpGFzQcNB/f9ERpdmlzaW9uQnlaZXJvUm9vdE9mVW5pdHlFcnJvcgAAAAAAAAQAAAAEAAAAaQAAAEludlplcm9FcnJvcmwAAAAMAAAABAAAAG0AAABuAAAAbwAAAC9ydXN0L2RlcHMvZGxtYWxsb2MtMC4yLjYvc3JjL2RsbWFsbG9jLnJzYXNzZXJ0aW9uIGZhaWxlZDogcHNpemUgPj0gc2l6ZSArIG1pbl9vdmVyaGVhZABElhAAKQAAAKgEAAAJAAAAYXNzZXJ0aW9uIGZhaWxlZDogcHNpemUgPD0gc2l6ZSArIG1heF9vdmVyaGVhZAAARJYQACkAAACuBAAADQAAAEFjY2Vzc0Vycm9ybWVtb3J5IGFsbG9jYXRpb24gb2YgIGJ5dGVzIGZhaWxlZAAAAPeWEAAVAAAADJcQAA0AAABsaWJyYXJ5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'; \ No newline at end of file diff --git a/tools/npm/garaga_ts/src/wasm/pkg/package.json b/tools/npm/garaga_ts/src/wasm/pkg/package.json index 88de73ad..1a687f8a 100644 --- a/tools/npm/garaga_ts/src/wasm/pkg/package.json +++ b/tools/npm/garaga_ts/src/wasm/pkg/package.json @@ -1,7 +1,7 @@ { "name": "garaga_rs", "type": "module", - "version": "0.1.0", + "version": "0.15.3", "files": [ "garaga_rs_bg.wasm", "garaga_rs.js", diff --git a/tools/npm/garaga_ts/tests/starknet/groth16Calldata.test.ts b/tools/npm/garaga_ts/tests/starknet/groth16Calldata.test.ts new file mode 100644 index 00000000..bc7b187d --- /dev/null +++ b/tools/npm/garaga_ts/tests/starknet/groth16Calldata.test.ts @@ -0,0 +1,45 @@ +import { Groth16Proof, parseGroth16ProofFromJson, parseGroth16VerifyingKeyFromJson } from "../../src/node/starknet/groth16ContractGenerator/parsingUtils"; +import * as garaga from "../../src/node/index"; + + +const PATH = '../../../hydra/garaga/starknet/groth16_contract_generator/examples'; + +describe('Groth16 Getting calldata', () => { + +const proofAndVkWithPublicInputs = [ + [`${PATH}/proof_bn254.json`, `${PATH}/vk_bn254.json`, null], + [`${PATH}/proof_bls.json`, `${PATH}/vk_bls.json`, null], + + [`${PATH}/gnark_proof_bn254.json`, `${PATH}/gnark_vk_bn254.json`, `${PATH}/gnark_public_bn254.json`], + [`${PATH}/snarkjs_proof_bn254.json`, `${PATH}/snarkjs_vk_bn254.json`, `${PATH}/snarkjs_public_bn254.json`], + + [`${PATH}/proof_risc0.json`, `${PATH}/vk_risc0.json`, null], + +] + + test.each(proofAndVkWithPublicInputs)("should get groth16 calldata from proof %s, vk %s and pub inputs %s", async (proofPath, vkPath, pubInputsPath) => { + + await garaga.init(); + + const vk = parseGroth16VerifyingKeyFromJson(vkPath as string); + + let proof: Groth16Proof; + if(pubInputsPath == null){ + proof = parseGroth16ProofFromJson(proofPath as string); + } else{ + proof = parseGroth16ProofFromJson(proofPath as string, pubInputsPath); + } + + const curveId: garaga.CurveId = proof.a.curveId; + + console.log("proof", proof); + + console.log("vk", vk); + console.log("curveId", curveId); + const groth16Calldata = garaga.getGroth16CallData(proof, vk, curveId); + + console.log("groth16Calldata", groth16Calldata); + + }); + +}); diff --git a/tools/npm/garaga_ts/tests/starknet/groth16VkProofParsing.test.ts b/tools/npm/garaga_ts/tests/starknet/groth16VkProofParsing.test.ts index 97683020..a3fb6ab6 100644 --- a/tools/npm/garaga_ts/tests/starknet/groth16VkProofParsing.test.ts +++ b/tools/npm/garaga_ts/tests/starknet/groth16VkProofParsing.test.ts @@ -21,8 +21,7 @@ describe('Groth16 Parsing Tests', () => { const proofPaths = [ `${PATH}/proof_bn254.json`, - `${PATH}/proof_bls.json`, - `${PATH}/proof_risc0.json` + `${PATH}/proof_bls.json` ]; test.each(proofPaths)('should parse proof from %s', (proofPath) => { diff --git a/tools/npm/garaga_ts/tsconfig.json b/tools/npm/garaga_ts/tsconfig.json index f395319e..25d4a463 100644 --- a/tools/npm/garaga_ts/tsconfig.json +++ b/tools/npm/garaga_ts/tsconfig.json @@ -24,6 +24,7 @@ "noPropertyAccessFromIndexSignature": true, "types": ["jest", "node"], "skipLibCheck": true, // Skipping type checks for external libraries + "esModuleInterop": true }, "include": ["src/**/*.ts", "tests/**/*.ts"] } diff --git a/tools/npm/integration-test-suite/packages/nodejs-ts-cjs-tsc/output.txt b/tools/npm/integration-test-suite/packages/nodejs-ts-cjs-tsc/output.txt index d4bb220a..dc6b1135 100644 --- a/tools/npm/integration-test-suite/packages/nodejs-ts-cjs-tsc/output.txt +++ b/tools/npm/integration-test-suite/packages/nodejs-ts-cjs-tsc/output.txt @@ -31,54 +31,24 @@ Output of msm_calldata_builder: [ "0n", "0n", "0n", - "2n", - "26217156025717979489861508966n", - "38732762661950955458369152605n", - "1690057079767624198n", - "0n", - "55776084338326874385161289385n", - "68135223798443788527711860040n", - "1743499133401485332n", + "4n", + "61292904915618517473537549718n", + "76424063491230657696617758542n", + "164100390290992692n", "0n", - "3n", - "75759116906411131289250842036n", - "1443316740970346987535705368n", - "708088064087366360n", + "59893860432479921089240889541n", + "23823463833468957056970670087n", + "2601996562330437957n", "0n", - "35793051770242617481071736722n", - "55598968341652892474344064376n", - "2778910202715604305n", - "0n", - "1n", - "0n", - "0n", - "0n", - "3n", - "19631865022986903110643570472n", - "75611758646426461743237732951n", - "853236432195926662n", "0n", - "11812074862058673201969127714n", - "39063420668175062792989597255n", - "1051876075291068046n", "0n", - "20990372166390382667110319757n", - "42018508523564723974054925340n", - "1475001652048253687n", "0n", - "6n", - "68821025690704718680664625436n", - "4329950222911040962607116106n", - "2124264192262099080n", "0n", - "42731142985949030089657953320n", - "52712334859712198499272653638n", - "1362734074540871585n", "0n", - "3n", "0n", "0n", "0n", + "5n", "75759116906411131289250842036n", "1443316740970346987535705368n", "708088064087366360n", @@ -91,7 +61,6 @@ Output of msm_calldata_builder: [ "0n", "0n", "0n", - "2n", "0n", "0n", "0n", @@ -100,8 +69,18 @@ Output of msm_calldata_builder: [ "0n", "0n", "0n", - "3n", - "1n", + "5n", + "1957209727941774081186492064n", + "73995994033502900377050207347n", + "2920028494258500243n", + "0n", + "14815917097266045351973271802n", + "43866335999743751425469215536n", + "1742440389359060858n", + "0n", + "67144078842460382505309213980n", + "3404562101888240111113484041n", + "869725021625300198n", "0n", "0n", "0n", @@ -111,14 +90,28 @@ Output of msm_calldata_builder: [ "0n", "0n", "0n", + "8n", + "68821025690704718680664625436n", + "4329950222911040962607116106n", + "2124264192262099080n", "0n", + "42731142985949030089657953320n", + "52712334859712198499272653638n", + "1362734074540871585n", "0n", "3n", "0n", "0n", "0n", + "75759116906411131289250842036n", + "1443316740970346987535705368n", + "708088064087366360n", "0n", + "35793051770242617481071736722n", + "55598968341652892474344064376n", + "2778910202715604305n", "0n", + "1n", "0n", "0n", "0n", @@ -126,107 +119,2309 @@ Output of msm_calldata_builder: [ "0n", "0n", "0n", - "6n", - "1n", "0n", "0n", "0n", "0n", + "72870418954466684377992322181n", + "41156025981776115551124813861n", + "1617542705451342307n", "0n", + "1n", + "632316186269555507073122696n", + "46594343671461732011923330988n", + "1612721764065542798n", "0n", + "1n", + "1n", "0n", "0n", "0n", + "2n", "0n", "0n", "0n", + "1n", + "10n", "0n", + "0n" +] +Output of get_groth16_calldata: [ + "2276n", + "561151868347580495583090954n", + "76095163897123765080010407949n", + "3078964875882710626n", "0n", + "68760071548346057889257256130n", + "33987009017980255890281589641n", + "10169520226989098n", "0n", + "27526525353537266686222475850n", + "14475456397330869216192753448n", + "2537199318039088506n", "0n", + "21536768652854740401912377472n", + "61033740543581523820282161323n", + "2466548432040548587n", "0n", + "49356715888972701601325049347n", + "69887821523610458575318250963n", + "1742488265497548861n", "0n", + "68106177540828336088045306219n", + "961134836681944563222599448n", + "1065964868903753173n", "0n", + "1800806384039658546158952406n", + "44097612892395787951554989634n", + "2954998394940821894n", "0n", + "57407696252580182379957914390n", + "68043785987214905719851221030n", + "1575697798130653691n", "0n", + "1n", + "64622861075918021861446670503650833524n", + "40000715384012656934033607729992139113n", + "65343516826393976703500119419n", + "64215924997604874724268545467n", + "988361220710881918n", + "30419768492628197858619568261n", + "27248300164153194572764431995n", + "2977039154666701832n", + "65685384868591218376868464427n", + "70847639348750339988496276918n", + "477777041053646529n", + "29991939756641252358878134746n", + "39295947558852310211017126572n", + "2815628384676858047n", + "41723516601424502403187247204n", + "17017221925427596342628818049n", + "440483370607139100n", + "10413180469465695361837522183n", + "19423959337400646488247227266n", + "1196856567711091031n", + "14918739433528640782272739139n", + "2386255189434407583576372032n", + "2110030772171629820n", + "66403863065153192042460667734n", + "26490228722781507311620127895n", + "1376925612093868452n", + "16095686441528704658448370761n", + "51022389018232154188872438326n", + "1610491282614910455n", + "37997039872158612927722452114n", + "76461913933066610895201145075n", + "951074374291802403n", + "71303405408633411813876113602n", + "65378028046199379258519780162n", + "2796976393851271662n", + "66043194162972766020432949924n", + "72668519642029141849369643840n", + "1767421250104456939n", + "34724757470958269778491338738n", + "67907574914053181941994051296n", + "1074861315591297211n", + "57811416502141401297494384261n", + "66717953782642686044297384228n", + "619071555217927229n", + "11747815192199388258706152779n", + "39655522309044272057593243434n", + "2667518659266923661n", + "74545987263802105943401974456n", + "25100780504941704736052597181n", + "1614091262172996678n", + "61496830641585942728225636367n", + "47520662928915336127912320093n", + "1483128622047069223n", + "60688370891239308805053347678n", + "6154252422157238786881911133n", + "1595810747040934713n", + "4083087877564984515505707949n", + "8098795933662806280871012387n", + "392529588828430050n", + "14388273410011291023320103380n", + "59643003630595652724715495246n", + "2978244255961784640n", + "73005708620970672578538518429n", + "64274822400727474231693975117n", + "824761225328685267n", + "58979395441344004425345087397n", + "50034285490796369376342018474n", + "1071577406066675668n", + "37552244383550540565443579029n", + "66651519402295869947385119697n", + "1816081760201573675n", + "48020280081371249748563352979n", + "19387797072717949389382225132n", + "1075380445499260082n", + "0n", + "0n", + "0n", + "0n", + "0n", + "0n", + "35717919122505863182793101258n", + "38321232967395819819318928199n", + "33653293845735846n", + "0n", + "0n", + "0n", + "0n", + "0n", + "0n", + "60126610212574038899502857656n", + "7521540037295293717633716927n", + "2853604986499631260n", + "35n", + "21051189327279847889561754607n", + "15679397574132606210591767826n", + "2165541175263187167n", + "11461504713279098434997837844n", + "29843864593792422920685859506n", + "1460931496621397613n", + "31444402670555100638844582863n", + "41564870089383627374040254466n", + "3317275169749288672n", + "72559701040108110454251376272n", + "22887416934578586124987839996n", + "233686850646424299n", + "51667851121405518271474152545n", + "8297160697759020633045233343n", + "2193876459774314419n", + "50048470992987075597478354517n", + "7622325433377464914372402739n", + "2354852892440837544n", + "51371930649223862037533589505n", + "79037515700470610379424985426n", + "3103776711054728122n", + "62017664743365054011497714498n", + "18400895627048394641412939651n", + "1348549913115407530n", + "68135824164391051249850625519n", + "66467776056179325801077769907n", + "21934170737946721n", + "43733194692565917370190335652n", + "20871497235942649279957719973n", + "668366294714005293n", + "69461224576101086641240237729n", + "66163212446743341874016516713n", + "2187872754580648643n", + "17220145241406859216639481755n", + "16637691490800642336304328427n", + "699908274655976347n", + "63497807423928467541336180608n", + "5826616601935275548523889948n", + "1995878641893268059n", + "45351336804917798268705814434n", + "32809386436253774870015191481n", + "2479634507910679085n", + "29902151727900563245652302915n", + "70978449320724687288838934154n", + "2324927884830925807n", + "70956000718854853515484101425n", + "18794223695576985859644098754n", + "851712710373510834n", + "10098225054790962506843798879n", + "23663666343921865703011477995n", + "2539135702270490911n", + "13745949463631524266514217644n", + "70097334773007528061348260208n", + "1449740726324507950n", + "77747255839650031066990598333n", + "33186206179829484467075523327n", + "3072781249488320507n", + "73980383885811324159893986758n", + "1765445723258696625718806089n", + "2271055079390534326n", + "65413433113844994807777190576n", + "48033870016967321544035758027n", + "486427727733872709n", + "26974899297726311987406093631n", + "5590641036960446176988521755n", + "827510576486023036n", + "29009837304935242599458620885n", + "20410410399336048506493809410n", + "1954580703151327584n", + "64135814011222089868428198367n", + "56261294792918650387740643327n", + "1226348411176360117n", + "71834179960057214052393522783n", + "46252419010406289556729694820n", + "1393685374555389118n", + "71368042768790547323904986882n", + "66161706759499128280107017373n", + "2031846388120562115n", + "21220965229609488481377288540n", + "63634474338013450603335409627n", + "821621475859559449n", + "18432973800914453913616171088n", + "8237366564750917100218776918n", + "3448970319177548904n", + "51266071561401723888120442902n", + "33637427514172279767467204013n", + "3304964589143840434n", + "38819453582756888614388081676n", + "38995523514738195349996597496n", + "2323381859757397191n", + "60884424754479179074928199128n", + "3834764671648885586861880739n", + "864611594127789300n", + "9851774469429652901432809299n", + "37101389540039872112071709899n", + "2559626381308197564n", + "406646090122284731360238690n", + "44652954714826373590985929530n", + "683398595921263332n", + "20271182213679030346920227775n", + "37600328594433178897257972399n", + "432396126057182521n", + "4187404064813213379278146332n", + "44537571235199588707429377798n", + "3148695479824963911n", + "25801656964836714839982503508n", + "51572074862943493111482365520n", + "1230107506438930488n", + "51625253538057090130489675612n", + "11815326077763625426679125713n", + "521507079758837629n", + "9648925458348520397354094791n", + "31712274845777377436963587786n", + "1997027570431487029n", + "67411860089204789431616372347n", + "66528411456550554620624110152n", + "186478859944874837n", + "61267275259145597446660035124n", + "8554664316600082912178209665n", + "2375445434845419873n", + "1589782365755830876261985911n", + "14834270454057237025174127570n", + "963005115183332390n", + "23249702285165109375700438720n", + "20760791667651963569657008881n", + "2149068190029611973n", + "74674158355316816901821060837n", + "13278131002009659818927519878n", + "992778641153509292n", + "8743794935416188942200722720n", + "51445266496970909016857135378n", + "438732749332832318n", + "64511635865187456937539832569n", + "68455428209776466334096458368n", + "1196547129512189429n", + "16652864649326843859619189651n", + "47031229552259361752165531n", + "1977848333533964373n", + "32230433718106499209616712783n", + "50152042404552913889735459326n", + "2647553318887157906n", + "15558003702184603194095500825n", + "75789384763919593972512743955n", + "3199452366147221980n", + "23639206276595496029173201731n", + "49198122874004051169498469698n", + "3017499313473475023n", + "14633623354742611699704494011n", + "13838793228838994907197164815n", + "1865567661799564691n", + "63554437295278917743885851002n", + "43774994641723817700539915508n", + "2096263880799998644n", + "39241367224191359271532780985n", + "11996031360599781980224407856n", + "669587303349757211n", + "70309465524306380398946854940n", + "69691793870844727391235380992n", + "1097884931999290463n", + "4880550284873697839328338960n", + "8683184578595981266384193421n", + "1704353262400573542n", + "43209925421984317108056960491n", + "71838424302727061831479195619n", + "1719485935656079288n", + "20281500369447070817728689103n", + "7827101470501627130702651299n", + "1802787150264131673n", + "46990609747636025825158033861n", + "44506561326339289883265865893n", + "168363193009253293n", + "72644600526598920979602995563n", + "23734595505295435652505772841n", + "3066825941193215846n", + "35922864395887621958431954121n", + "36164080296393340386782836739n", + "2806406594668460083n", + "9559608083309233656821926408n", + "21435397197883361901646100159n", + "1173438743001539534n", + "45502332725513884072895701183n", + "21110593816020485943815437920n", + "2156839344197406156n", + "14935455230205682855615996549n", + "3176509029633635649806564693n", + "2744065159326778800n", + "50144289937074876149408247339n", + "73476828119785067069284584679n", + "1137921320963525519n", + "7764782370318985672713086089n", + "35186333034809438599544173388n", + "2599319187054853443n", + "71090896326220687050059751719n", + "7138127862158940765217036726n", + "2525413991973636711n", + "74465662641034900763924596241n", + "64800563131735459820423413678n", + "467645211882593334n", + "35429207184442884958891366618n", + "32026071525343635101462583825n", + "732661589473603894n", + "53979236240639306101606255299n", + "42289323195165961060464784974n", + "2572678142594168339n", + "34781401150182625703506517963n", + "27502296245160796607775189158n", + "204754437845996963n", + "60295830689532650505249825677n", + "25033548320502415354132760311n", + "26918649856759092n", + "53883044729840223319972205798n", + "71229970233113264180243241621n", + "1096143763692361182n", + "23670625124894730163037915585n", + "66188859433247255337619139871n", + "2789875774976133848n", + "76287870172839315742103539908n", + "76696206429019592649532825371n", + "1140810575629679716n", + "65695197715200264171919419792n", + "64578697338608806055715988010n", + "1315508308085028070n", + "78097114957711978300958275236n", + "73435222529435448525954708815n", + "1357585460514972583n", + "7357385422266450818170168488n", + "41750638133784298446701227299n", + "2309087687582896396n", + "59893979186320257893680148671n", + "70073254756682993544223051173n", + "3379633857316028827n", + "63037751789054738563399308545n", + "22112638657428976200628648553n", + "1119955028522904661n", + "17789959924300679578888409433n", + "32036177498553475203925266628n", + "3282049411090141820n", + "28853440708133119682221591754n", + "53037088663773523321481680370n", + "33889236786700338n", + "47866115906431522995214087729n", + "65896044771509521496549322945n", + "1356170216477027582n", + "72025359186703704066599325205n", + "14290937382512145681745832413n", + "235291859370816977n", + "16739080450814900672563464076n", + "27155915888194232201712953259n", + "2201285100786606817n", + "79046757705903490925593572396n", + "41590525534061554138727710174n", + "1563993153777110442n", + "58644351226953768961970699175n", + "71513413355714071072616721058n", + "771468756865502494n", + "56315873417343912546874324750n", + "66995041844358703653717763298n", + "1564628505321775490n", + "68742094005504029111318961475n", + "43257881480227388188853022203n", + "2827885137176633354n", + "60013377537965180515452389042n", + "22615548017942376680894051034n", + "2778940717048846996n", + "30216926479141873412912870389n", + "67097866317972012436735650659n", + "1001082522948099952n", + "31879429787569811794175043050n", + "57916743777618192263856200515n", + "1477201521425100888n", + "63117110331861368443138300600n", + "24455052765578778318741183737n", + "3145320365602131181n", + "27504400622945393457424964663n", + "18149654277116955082138788671n", + "709865641588578406n", + "51203413602847718278618462447n", + "32871208476003646471375256821n", + "1972541565241208115n", + "79118404692942875097520377767n", + "48815069625306356145460113214n", + "2800168047740476387n", + "27090046108651136752525050251n", + "17050737426763583806790779471n", + "1273566324033923836n", + "49543917066569282928794484300n", + "10290628042158833070532221066n", + "3469066870558011680n", + "42005113796531220880503084548n", + "60064195130891515794312310901n", + "3245851193684195107n", + "37533982385009798315342336648n", + "10267823027838019609009260399n", + "2025345482262498605n", + "34864622598934340124988581388n", + "48347073555555495737374318810n", + "2673244105079290838n", + "75957016907360510463610401727n", + "23977086141109407077488719105n", + "732491745580907274n", + "64604276948999648627686221332n", + "3868070793275280858296301394n", + "1873653426250118454n", + "15570553586934053483564418077n", + "13639547122371116255200424101n", + "3229806347752382046n", + "69627176750917937037127756524n", + "77527130421629244161614984692n", + "2205592855904802747n", + "42359401661274759693285654733n", + "15319487818905735149374624862n", + "3299209455827802664n", + "913752139298990313523799637n", + "70257873178701883303322833580n", + "3363278906733915791n", + "3719386124896722977369262005n", + "53915264239484240561994801723n", + "1014563467864375643n", + "56643381820560944379080271087n", + "5451127454093963182673395845n", + "1647155594727927302n", + "74031948470913728924354306654n", + "67046184840603355661228918718n", + "730434808359892479n", + "58832815659134274668136294794n", + "44220894708044864609266466973n", + "428689828657455715n", + "26619728344740812354339350673n", + "55972705855091654840275771393n", + "597472825198654088n", + "1452568843776109298902292527n", + "48082065429135088437634332196n", + "1047157723497573338n", + "28285154322504134404521941699n", + "56070279326493931276099147353n", + "1647252454052220783n", + "65027676769817342180184568252n", + "12685362344487350979600199772n", + "1402500493179000567n", + "12668630001282077875777731433n", + "55553251572483079593258301341n", + "2382205981458202111n", + "50473524893888759380289559496n", + "52220217290909756763540198313n", + "2029638412495399688n", + "7502774623130712545083224028n", + "73425515727643581896824036686n", + "2771702310825972693n", + "4639820922586718498241340517n", + "46582679696898380484679332702n", + "2620580077787400940n", + "51782105270520932573551959292n", + "74517889523497564960562458357n", + "79055126752843995n", + "10925640711936519280913334701n", + "11947058347966705959371810733n", + "43716694970268491n", + "35453676805113974113471109604n", + "12015889727201641553493717139n", + "3275286259969106630n", + "70932279409438704808566723573n", + "47041530965489511382629531879n", + "1256401409005218192n", + "46895749660336733332848035754n", + "40261009687444665011442182710n", + "1306436215925446460n", + "3904962902077066763622365736n", + "36103992387013546339910627073n", + "1329335481346702678n", + "57853677844329075763360620729n", + "61001619991056325367390311148n", + "1235032555631976826n", + "58692146235938833274542664790n", + "14589363842493324627243766856n", + "578262325105051129n", + "37980379958779218087580100271n", + "57690546822788520479506631792n", + "3164185857728705638n", + "45598806448478931852264970697n", + "29033375842093843451718686864n", + "2812217528418815016n", + "9663261157782365056384592697n", + "44620211458433011608252253672n", + "2505651240889113840n", + "48502340833312690180905327065n", + "9352266604910376416980234379n", + "3341395763378874957n", + "35507650777754495555508745994n", + "64550352482963692428938364344n", + "1749731610964724298n", + "72801722493214401326730125326n", + "55956888553336351398608259633n", + "896001678647446033n", + "30516385505393014949750902877n", + "47315718952109319710441627150n", + "1388483706936013349n", + "32381991427814516368016795653n", + "59696292811917044385937202833n", + "618914335291991958n", + "40375787626773409929606022175n", + "64734613933900308276892757597n", + "2556069305521992095n", + "58654528682801174800851099376n", + "11593522535604870003716248394n", + "2125230714317219300n", + "8061995955571015171488513388n", + "47983447012081651413970228934n", + "855542739847145422n", + "59096469339608638609245068515n", + "7673808125695463322887566290n", + "1385253448294382073n", + "25340909062918393540888464015n", + "9795256553635962173776771050n", + "3012016973098277348n", + "33467611330524938973631050712n", + "7543431037219165063475505539n", + "448151223182465539n", + "22750106248651778926545160954n", + "25740569688692303261800730858n", + "1075240126364963450n", + "56338203997489686691769068850n", + "62119360873725897456686490753n", + "1222146081347045140n", + "27338323756657113133884361560n", + "21141429927442113006964516579n", + "462132336382397961n", + "4987343640321990641559943818n", + "58829032105334349895296634715n", + "3177465831253470688n", + "69096263705896112247403554129n", + "29492604434954899550510960365n", + "304239915265350366n", + "66375851691134826136210085333n", + "44757375154942980538763091305n", + "1112855489475878924n", + "70069037784938962740775503666n", + "12717652252841341839220495543n", + "2918096944668928835n", + "18321962109897171704378960368n", + "61813672462196073792006627549n", + "2734946711892636188n", + "64219561440442257822526755189n", + "8503031322535266331858567242n", + "3223902208326320319n", + "63116174136664698830215774786n", + "2759322304337380924973025029n", + "810068357014304774n", + "15698684552711747426349376896n", + "65762055793295617462571353752n", + "518270689795187122n", + "58150828468103287645001826637n", + "77452960139151639571846482697n", + "519559051146038460n", + "72625801975239649642036163890n", + "39078044248618521225250269350n", + "2190524057325078928n", + "27770888055874136986828633484n", + "41773083279140557423975570256n", + "2854828164966176931n", + "627836434493841003902237785n", + "77928664588771202997039373627n", + "330865869276931200n", + "52935592469577214913105764520n", + "20197659873511917804524429378n", + "2125370194946441846n", + "3460074836406938711660958301n", + "52820564261229479633548811299n", + "2919129481241566745n", + "6675772908450017734753351305n", + "65258735248680451317985314824n", + "2950671717077079181n", + "6822322071311459654365919975n", + "48497518547901827883287152419n", + "3243229764836791767n", + "72937532385990220357716354648n", + "19074513737405788027838151006n", + "1297437039234841476n", + "75502921753638151385835217223n", + "15306268504859852745422227938n", + "3143438951510181753n", + "3947335170074803838440311819n", + "62699530989773040321915910090n", + "3215975868729087991n", + "45236352461588188769215285451n", + "41706782526887442329166221445n", + "3168773580470738009n", + "75285535419605148224367004655n", + "20481966054007305592119557920n", + "1679995277184070400n", + "45190873120635261257451746066n", + "47696678647110719375889237738n", + "2068610507691385147n", + "9915927934978371252308896949n", + "31159305954355174048281405375n", + "1704598723840881213n", + "67338469563962359211325034773n", + "41738724864530875640824663606n", + "2293929193371443079n", + "34807312716413150046069343319n", + "70801066094208025212394559646n", + "2518515824100660756n", + "76811947889156401932764711781n", + "43817729339652461426643528955n", + "2039489180470709457n", + "38477432026452102589204844897n", + "27527167249603525516926315406n", + "1191468099071291308n", + "38041851156661687253492123536n", + "54288163040365572080441140556n", + "911480122138689106n", + "4974069079367885339264267782n", + "28880616750574662115261710630n", + "2834730446537796035n", + "55466841778289154595312506036n", + "47524577058256910308968549882n", + "351449977223840700n", + "62311990134227217524354071274n", + "75586193885025429015569590193n", + "545412183548073756n", + "79201290258654825630711427638n", + "77524373992410852423354047680n", + "552010389188782621n", + "13584773290145166716045719634n", + "57089761411485171751249424952n", + "1694608384682621747n", + "29538886750825184946212760314n", + "63894150012954354476012028271n", + "381542434687157486n", + "18078760560177937565267140464n", + "74003801426748288272147648907n", + "42337564080893923n", + "76689566315090503029029632865n", + "77474971819185712518886624915n", + "372114354534855369n", + "3011898200892081576513307862n", + "13966070005688554503624007786n", + "470413759528293312n", + "39357561183949775040925825237n", + "70682164693568724918268906963n", + "1376182782398783885n", + "41538213381429219620578361408n", + "42254768852299863792709628627n", + "3431309948863311296n", + "29234390314689913487082552719n", + "17916853178952663417328241903n", + "669291203853282419n", + "33249562629014821971547667642n", + "26222791431277453980835687680n", + "98534970627714358n", + "25021648199838864664290068537n", + "20665859250814395210947344246n", + "662389299694120248n", + "72307113898419621240789872204n", + "46323053668872253004980165076n", + "1041999687571616075n", + "8985042666921921648283132643n", + "74513886773734802806022422301n", + "2603455779145809119n", + "15411135359682619522278947280n", + "27784420314858949438220006926n", + "450671277926568052n", + "2831173742809690598851605179n", + "28386483802658122108161613621n", + "1424370976519373932n", + "31198231619878444700423211860n", + "42295311569311653123964908500n", + "2935759999014605210n", + "32001363507887263736668102660n", + "46912833713119636774180995741n", + "2092237369418424823n", + "78656477190391127646333527543n", + "41056006364555863740114989146n", + "2171263570612200061n", + "21422129487009930658303224502n", + "46206308103083011878154386775n", + "1874554378158482533n", + "36641496950703925635911572554n", + "48432166499307362117455688176n", + "362387825758837904n", + "27092632894596570716463916204n", + "20108561967338242154648349930n", + "1880193076762165445n", + "9593372273263129574197363679n", + "48018078028931030587694756618n", + "542974594247287387n", + "14814551631877080383283532261n", + "33496168748765220079451008919n", + "2250598863496646490n", + "44869586855816636221572912809n", + "41783360501362407212785286614n", + "2362538758680925884n", + "47048981182078605465642165702n", + "60518795030556750835816928982n", + "505511636936241905n", + "58024262056741504028876642662n", + "50138980925793649225004896980n", + "2579777888438614723n", + "6523114729709277602770738046n", + "28358393151053570058817793343n", + "3081381986289034984n", + "15900191280315068679181663660n", + "48577168032374944428952731072n", + "830974214184407623n", + "10274561196236136318135959057n", + "26148664358554534185218032007n", + "201377610767670386n", + "11368406426935765376362633788n", + "4122436782704069458424072833n", + "2934079973878820714n", + "66892750247258968804173976659n", + "76380379537218876441475920731n", + "3380019238411335234n", + "50717224916942478279258173891n", + "44470393688322556765105136550n", + "1813355330674964836n", + "8515532742277261388949469229n", + "33221912074775270762895168327n", + "2646766706385940242n", + "11140136119772415355412357379n", + "44150773111766484868566388647n", + "3191354614138223649n", + "30708778779429297397760149496n", + "67837687252340085721524474101n", + "3301367800510383551n", + "10954599956402707572521260184n", + "21030000566064580489911242942n", + "1828905939385555740n", + "26254579696623038244113820321n", + "76089322519690535032690356215n", + "868757520992376209n", + "77540171332511416804096348278n", + "10474304059709005130776549459n", + "1665346113039180866n", + "77071906535707552468440337167n", + "76416817616469856915552001970n", + "2619908781683664602n", + "40713576015254467501617369989n", + "69174809057973808586596761660n", + "364462143474967775n", + "3388865641890523266901884229n", + "46510386965164679950611269041n", + "2868959718371388528n", + "38291153048032659818161082470n", + "57992998428591158266306092260n", + "2140250223970187383n", + "74674643030181299821451279762n", + "61603307939095484817637012597n", + "1805808601029218696n", + "37221838450591689221386319329n", + "68301391492878568825616976727n", + "2237000809794684762n", + "11407285364976644693945059208n", + "25348058182926100240298110509n", + "3114508241594272017n", + "75356748694855659604450932050n", + "73487079967561788811810515931n", + "1490776583857675442n", + "54218989991798315687885361450n", + "20703329376060767478344708910n", + "2199487792587152210n", + "75111061944546058209924381826n", + "59244444067541601191271416829n", + "1581429188013860604n", + "52660822561915117683975147831n", + "47783082248718407900747485302n", + "1369252091872015433n", + "36417458042350421490821725117n", + "31829247002542379610343848353n", + "455784377300586483n", + "16833465703461845689857266397n", + "71194569481351283884295739145n", + "3189866189053900612n", + "65858387085894768841721032786n", + "42191857983305827191840357582n", + "666015291493419098n", + "27916318777227697186981470587n", + "32438460617546390776125662122n", + "3438854808891043135n", + "41197663088738641800559183911n", + "55140791537758229983041465056n", + "1162917064515090408n", + "59276808448795540978821008029n", + "55346073844723874343240998585n", + "2138546228419844587n", + "29861692804477614266603259375n", + "46434932953097909216915612814n", + "2786750119186865986n", + "2914382294411148824195592597n", + "47257202751523172671381039762n", + "108099711483611500n", + "42513194204119630092428609239n", + "7009779828784113435151735800n", + "1568976973765903017n", + "74506942497632859791810397801n", + "75159716442684547730197176733n", + "214522106108977303n", + "307807623661151452830127704n", + "69355418870826927485148435899n", + "1716229337114513433n", + "57800790680731912804700220994n", + "33865695886637783077735975519n", + "1521543041885052952n", + "61900084065708307372472439490n", + "9670136848396954396035168772n", + "705486756697563485n", + "65695693080875904861430309269n", + "42258749277647240519914054375n", + "1610937183743514752n", + "45949364456230722028956610312n", + "71318597512050155765983898976n", + "1419180020927833749n", + "16722582418318977044812304850n", + "64520646005354913944304541442n", + "1349757657977694032n", + "23453477023590312415905476662n", + "20988708348761074914346191082n", + "2734679321361253617n", + "3531335181910221180679210683n", + "77069908679139173478778593856n", + "3209489805214655859n", + "15423046625290420432194363954n", + "66544315732344216335597482829n", + "3417056483929987132n", + "23412416307661786237706973063n", + "52684903097691240819445939916n", + "3087013127443362602n", + "59516131369415164617233433764n", + "22552284363447521404574779744n", + "440598570727652332n", + "10078101871820643773664346515n", + "53180025648864462561753056892n", + "1238481677425258091n", + "66978851386839209947975732205n", + "76469976691658858609518100317n", + "2669015410315668427n", + "10462115063986428235746660388n", + "20612418707380044137824607138n", + "913149152876393845n", + "12896643578852573199148249630n", + "65916513826164228515537693476n", + "1689818392090951394n", + "48812924094784749209418690439n", + "21075229147504768099245857693n", + "2023634641390620097n", + "46841988916092209879920999223n", + "16626325630569367486087793088n", + "2520424161966279659n", + "66590657955425334169984583445n", + "43137455439307899619378709852n", + "119691013666955759n", + "59528138117541221723219264069n", + "6039238025418276887251147184n", + "1423016249189720303n", + "74476981597135756778074726485n", + "57871369440317946035711890073n", + "1799738956519083373n", + "61169922085945703273845146359n", + "58536191609701145724674103544n", + "678581665969651580n", + "29756753901276156089801861773n", + "37715386191992628222582900313n", + "1839293100231634062n", + "8545730587160341404066690935n", + "73310320371102040457790413928n", + "2943087579162219865n", + "3592679410576312851945554995n", + "63768122222562308688415150519n", + "2852416365710961566n", + "65734466853903663026216615808n", + "75611388663630224651662180524n", + "3082245111526479768n", + "42542028447397082553823280434n", + "15266201170439359558184400250n", + "2959319188559780389n", + "62084872176674708014188872797n", + "49471685826369556510350964812n", + "3044342635568692521n", + "52766810402300947123818998320n", + "57464266928926410524441305379n", + "2678492530248725715n", + "63759940946573266111589745544n", + "1239422070074535035165804970n", + "3011362073292317527n", + "5312425357216197805891517417n", + "8604490350019536611169668726n", + "1278264119461231226n", + "23413740732153092734953046582n", + "2351234330786062681522357509n", + "3063446156461791539n", + "31192263866697541487222909336n", + "53213425910476786883061415945n", + "3388535254355309510n", + "76222049202953784940228041093n", + "8232814450668299001215927167n", + "1010418058221874517n", + "30375045069912390061370886372n", + "76858962311200653420966476141n", + "2531834595530804919n", + "72838406196796824316965387556n", + "16107338032535514271932130242n", + "826038058455425888n", + "74047817357615679402104886971n", + "66250974048331219261305648117n", + "515372630941459652n", + "49140383045734318581810247391n", + "38552127106329617678305826510n", + "1791730195926210707n", + "20447547859709794457924179129n", + "52480964595913357482998508931n", + "419726983098458687n", + "20434453705733747059793719688n", + "22732218969594988459804019164n", + "721740589738128975n", + "63178390467425871623450374916n", + "58781628951232066578669558088n", + "1366096141210552719n", + "30310055907701667442250131224n", + "77693499391068805405178198648n", + "2419127900721456602n", + "72238281634987295743046110639n", + "2759706666093555363424148875n", + "2871042634310332424n", + "58186331935313172107712023092n", + "73009408672165436946758189888n", + "1138172672402058824n", + "45794206921224716587506811973n", + "50074044364882080121299615241n", + "201200847748951804n", + "41753381957343686084038148154n", + "16651255916405576823960096368n", + "744771251876887027n", + "6397253273640502791149864078n", + "67730045189242272443620838555n", + "2723512022810421168n", + "20403399159094844095476748628n", + "46114852246774129546878110205n", + "2163837250026966482n", + "63507059223060953171650485733n", + "27872394523028449929373211791n", + "1266384674015277092n", + "31341532803878701385180273244n", + "56274201404580685976997533743n", + "431470279371342601n", + "27146401285505116697408502780n", + "10909809704395711896795601995n", + "823727347575104764n", + "78157451508256479551851793287n", + "7934224114897115965586132150n", + "2561622534344592225n", + "52031374290403822978799313483n", + "75680335637831520600351100052n", + "2240257882085839580n", + "35818819658139744996071875447n", + "62532608351434239965548606901n", + "2997209098633992908n", + "35801460645260708494826382933n", + "6962199370752725968726753829n", + "471191881884558376n", + "51494347593311565178389849721n", + "27959136057874496572927068138n", + "2054885609386822401n", + "1903400454085938493722464234n", + "58252527737465224754126905441n", + "871049256780466220n", + "62266126172301828292957015888n", + "29942402306346798464030870789n", + "2439682690873113741n", + "58828716449315637847726991566n", + "33586884830050665361484057496n", + "1850240284198082738n", + "57256720773892932068692318575n", + "43906884659388043006991040937n", + "2567264210368699586n", + "37303325532466691611774319975n", + "1023775330119159065320215646n", + "2970467943548704391n", + "6719369853840095911284134964n", + "52698184868933442534169228704n", + "1590449702912303791n", + "9163234315649800019839577781n", + "5096786077915756093838027866n", + "2604014912333559946n", + "22626562141910724736547894073n", + "1221514787490597839172086118n", + "2021859363658276538n", + "29343228808229785648243946635n", + "17107161597392558070179986947n", + "2142074198041769333n", + "8295437982000203433981112803n", + "32281278698888589789154221048n", + "2261976931796110908n", + "19003064635652370381400548000n", + "5388386401569756312458644562n", + "3154333183807592746n", + "57635002029571841636737463711n", + "56991897992879623406006006725n", + "2842694143682003853n", + "73379904593405458046663259580n", + "839437272553377608023038726n", + "3093165198442302924n", + "33419448607193509624332386145n", + "16740311080067952025303937955n", + "666860562806181637n", + "8797571923563716660075774195n", + "75022438860744435659585766685n", + "1558560135470851650n", + "19713896344694960627284542368n", + "78388507052884523368130573724n", + "411547793569600371n", + "52610184319591489722152436723n", + "58886726417514761894083084350n", + "779286101129650524n", + "30697463792187334469128124748n", + "76836636996796091386778801556n", + "868461342532092659n", + "69910862714025895807766899173n", + "51405542117679167872600082463n", + "349470313771420560n", + "71284241241602654693194940143n", + "7305568034139166589777830792n", + "2498747200591008033n", + "67960797371315801691053786599n", + "25825479627169106615506743060n", + "454178144016317938n", + "35798135180239958015829265626n", + "23385623537498663178814541991n", + "1668508428339305051n", + "15450665342638866022354076708n", + "1590106122468359708599592949n", + "209939085635224246n", + "45146454297276439294547281947n", + "71363197518122470395685282523n", + "209021609080779353n", + "37805135405124328919729060254n", + "46916624974206570529290830921n", + "848835529094356500n", + "52127928532313726409293511873n", + "74341195298303002847160668677n", + "2836594795507658600n", + "21372610848069974970714546381n", + "47095482837411596424060733004n", + "2644188767312235257n", + "42696308717032907609441318200n", + "71478263091865254540527492446n", + "580612364877252066n", + "24227503011457277739411398472n", + "46210588161299166961443583909n", + "2104513243231016467n", + "38286987706753654842254500763n", + "52819390378718994903041839288n", + "2559971158277261662n", + "10804049422689166087510960068n", + "78494177681671393465658693075n", + "14482037543685577n", + "45316386224024264714051962520n", + "8077236619578691823690243326n", + "3134255926280338435n", + "58234835865881258067775424985n", + "32582539715376623121568222400n", + "895535831771370236n", + "70554522419104669983576590653n", + "40229753450332894247180991320n", + "3235640053820685715n", + "20050852574591066448348962700n", + "63154847355271958325521981335n", + "467978477141038832n", + "23115494614834363321936638302n", + "54275477858894789534235120579n", + "1729059077109549892n", + "2643222253937861530223901503n", + "4343013099917093534712467976n", + "2093250350291324334n", + "26606380640809280595919467519n", + "24158225122809122341718478436n", + "384623299034698779n", + "74889164947469453919523854509n", + "57684567535195905731154589750n", + "1155881533367487150n", + "40449699793338258794390721810n", + "45563605053974069206983967932n", + "1493349482130193926n", + "53198779688378832727006250273n", + "23250105681044235044335219173n", + "1649629209531042678n", + "31842301972458791163037611310n", + "54103172956148923849538705604n", + "1853082006782289707n", + "73283134292642541157328722326n", + "60011977393637178105550407258n", + "2931499730502310317n", + "30363774768400601902892824896n", + "69784527858977659878014965306n", + "2699700013359551525n", + "30143876784681103984444940141n", + "20508010382725323248422071352n", + "1472036335205806581n", + "72685268086241841913630448820n", + "13484287640917155024759235656n", + "421919482836501604n", + "58336665028159633068676496150n", + "37899530871095451514688032059n", + "830925861824953119n", + "25034909887778048695729760495n", + "6186382813048747659882138994n", + "928295656744287075n", + "23742999482526473077193706109n", + "38681524762823880972818454723n", + "1037267958137901699n", + "75848820697595803231237834330n", + "4098133930661194465828731453n", + "2484592940588499869n", + "45229057029317220478111498771n", + "55686910073377115986537207556n", + "2974592459022975650n", + "9058824958434584730691471305n", + "3489502058924586487278999515n", + "1985538445731248079n", + "14034347138268021040571737620n", + "22094509985004128313979725457n", + "1321434542301391881n", + "17216019289274156022312124782n", + "65908201923726532456265422977n", + "387610774042169114n", + "29699496552150641100894659868n", + "43552700176683532671663646633n", + "305525895851406027n", + "62068283835877161864738460092n", + "66163022436031594737849199513n", + "1671489056967612477n", + "5806077789744302022830084009n", + "22126371298319875265318066168n", + "2973075530852635513n", + "43508686549770752780288409207n", + "39960107195405145189624452517n", + "3021227579398645734n", + "75958919635020929694389722957n", + "14913897636015670404185010029n", + "2882183092458315590n", + "24239404766805006701421172975n", + "69450551382041986033230454197n", + "629979785699424851n", + "47715312965767193925496266564n", + "51328287208106789864582031889n", + "1994694450268216917n", + "12878968128402785600925987432n", + "8892728961399753099629106451n", + "2189564568474803348n", + "17841277261874434955985363634n", + "23255802008382153152915838079n", + "1299631183736247307n", + "70369295004394220674262548695n", + "41703500013750845131767430551n", + "2515279718642012557n", + "29363803518729226252949864837n", + "11941978972714945652777612780n", + "1864444849178365249n", + "19838910496936353855554382505n", + "63526654617675483693289584781n", + "1386561621225388054n", + "37964054821976413036136417123n", + "14531042297004730862055294756n", + "1592174811323575228n", + "17025415710900400219439375060n", + "362574756192905655380951625n", + "186982663000383695n", + "75302946272320992428390907104n", + "76356571252613340602107695667n", + "1005406788214614232n", + "58429545482092547095478867066n", + "8783598735519438107774246954n", + "3449009450489856852n", + "52421244757199560525245430831n", + "36745113142356116864221402917n", + "2011028989323540641n", + "52389389340233786555192956059n", + "48540948198567585375080843793n", + "2511738896308209966n", + "62948973448903767233283645427n", + "78581731009485419534613750974n", + "2631249803991736511n", + "15700178914629731044995270252n", + "21825209006850516132399941848n", + "469426094359884098n", + "45109950384963150442992909517n", + "34709270486045260410251674804n", + "3227700636384978310n", + "59508455528169337110518969046n", + "7626842288771897454076798332n", + "2837142952242233831n", + "78154898100541067453790359715n", + "28712940925290532622010374032n", + "2005548120880216529n", + "19676819626842762742496321363n", + "21494888704510312646126358022n", + "1917432403713999314n", + "35348767509581898437000853095n", + "54404372638473474714277538548n", + "1418295384476104455n", + "2087534038039694873601959364n", + "55492416744530703076122435501n", + "3415979290873032604n", + "77874081666239317555289078970n", + "64693269821438151662321973074n", + "468500022203866114n", + "52183552801284363909457374676n", + "26386627404911694711966206173n", + "849932193222808822n", + "60880246718709527470179169635n", + "73275749658065911543659109078n", + "2835936826164075331n", + "47034978948350796174151388655n", + "71774550150782116132727222082n", + "2957236831646338670n", + "63121833886036603562738575495n", + "23473953357667857038757232396n", + "709268300106945760n", + "67565011137450891785645904255n", + "24476510070022540670394808047n", + "2197500443692989620n", + "59529365216756814354926446285n", + "62380286296544401614193824725n", + "1797665767653557658n", + "65352576236492901270647039868n", + "54007112892683927216806385747n", + "1796075374294915397n", + "17840563634584466359434584144n", + "46203718678613515530978507404n", + "702053810505193011n", + "6133701316708198581434709723n", + "61802938904865726983656435299n", + "3001276128418418514n", + "11649452974115692944272358953n", + "18473964874994391830987882986n", + "2086271034138195481n", + "27934361651981769617523547350n", + "75412934231387879572695859186n", + "461672875728163553n", + "2659961698397651286244898268n", + "38244585026297070186059616261n", + "3371488902807027695n", + "16205200667874612181106188684n", + "6520317333544879950114099734n", + "2490923463723046056n", + "66034343348095027053141749239n", + "13522171761978136875076440765n", + "211626548808403729n", + "52060409492746050106971031742n", + "3493375676170587510122635686n", + "3394236868158496257n", + "47140116537527183288446191137n", + "26402419994251877186703235784n", + "2932509761218506683n", + "41718577718458247425998327137n", + "72444125720253366875907105723n", + "2370720516004120360n", + "63763546849180341189837833587n", + "56383249669741657007269755446n", + "2772609748811855948n", + "30673155381064993958540435457n", + "58923421149810821122915571284n", + "2826147464537959677n", + "2437524155719427333248486827n", + "13523745438577697843652059309n", + "2255306498837633258n", + "66617913651732723895666550762n", + "800383901932656375981050324n", + "2369057816442019000n", + "53894023794388536556779913700n", + "43633381247568199322500578225n", + "1622058361920748072n", + "31610597297695602711187104065n", + "75047413064993937787913175675n", + "2532518357458277794n", + "66943196821272189971919216455n", + "63057632269388325855862697967n", + "252919094746701796n", + "36093617934864267028615495215n", + "2458297172936844284200172721n", + "2861973034148611365n", + "35639326827089764975324431609n", + "42790455257345625520833632516n", + "2416491183110698117n", + "25453911219236829571892475695n", + "7792114184406477060828720050n", + "3256395018257219594n", + "44446878573785568457717214835n", + "31316823799089969829944488381n", + "3348254446631709920n", + "12075675278480009463346998871n", + "33336621394122897171138216323n", + "1761645290764169692n", + "38936491179522097211601163974n", + "40756936871275705147530952481n", + "2239620312855528769n", + "66166234417862875439766591001n", + "45961753617942718644070346235n", + "2545432639028408432n", + "27071931775260190706961952445n", + "16791652622063002274074642172n", + "1351810600008793720n", + "8734604468994364132650578395n", + "2915643774972349972943503710n", + "546123555763251031n", + "40883390215425903758829895197n", + "46075188532687982090196339471n", + "2037883374560027081n", + "1788529744899075811496881871n", + "22977601030754581206369105722n", + "2052641684479223112n", + "52403270166627919005596848880n", + "2330881363722503207702297453n", + "1950506519094245230n", + "26974012086112717010353138814n", + "69257122863702421096680142186n", + "731421312124744837n", + "31069884618093040515903738825n", + "64922032296511662760139295040n", + "2654253976131730717n", + "12166944124292618925625599356n", + "59407826445782768214824917874n", + "354147487414166550n", + "74336686733791433900827528675n", + "12704634481538804742936579229n", + "2082676564717138885n", + "72973759452587341786347077786n", + "29703734208301290276522637915n", + "2067816925523661903n", + "44140001258313735278199859280n", + "30358437273466120880384362938n", + "1032491038795740151n", + "48874617960058547069896032126n", + "32474862569324577439684934828n", + "2565332460413202117n", + "14465473659591664491585197311n", + "66349092618103844360620055485n", + "128575157546484074n", + "39003318153463851085520847181n", + "60595906928974680331945114920n", + "1233558283323773507n", + "28235541661696367758739481925n", + "54650564078640656755786408246n", + "948581610993436350n", + "52390925978355652282567775690n", + "69489317101356242161174540193n", + "1016620721333718105n", + "44682484847387584156652994185n", + "67002113562754354663567942796n", + "3169008886697917753n", + "21521800351163651826619425243n", + "28468229293760112362900924103n", + "3106044815056798782n", + "64289384627045471347034899444n", + "21395240471424659888107925342n", + "2389990634110040944n", + "5558440120008932694528968857n", + "25330928363440776593367343384n", + "746774273176043945n", + "2429305360237456636691563497n", + "39266567744784892575187587950n", + "792366915322109031n", + "190n", + "35201303926872119491363187343n", + "39200624059490958386431285751n", + "3393416942116110882n", + "5130722441260449785966906581n", + "6826282242711274667534619009n", + "175953595034053256n", + "36372914432107169633188190941n", + "31397365234316487899998842613n", + "711450504412561877n", + "77866480438920185748710050402n", + "4279212619824505622954675427n", + "962968101156720773n", + "24103551124269486202668849588n", + "11130972830601876441216307489n", + "893184258459491666n", + "69193811904361439959403735151n", + "52915912371712773799709217240n", + "570950775917859441n", + "54939789609796528700771617261n", + "12117783379072753356539237890n", + "1581116903901042554n", + "67496634076216081302688237803n", + "74495604156744339618591196101n", + "1413689362789722669n", + "60558410658396886623236813267n", + "54362306295838616844452379566n", + "3462692888110285930n", + "46601160641045708943575973674n", + "22657785267725651515395477264n", + "2540893510433578066n", + "25559907633591000839417753670n", + "66803247823467176006890040116n", + "1529769973554702363n", + "29841437217494788924228547359n", + "67184772344651716905410593588n", + "625675747496154271n", + "9827217054012018057431763206n", + "38580342860660073142578461484n", + "2817140696687660754n", + "46575625265145337175276247924n", + "32697034067774707146118540784n", + "3011446090876831528n", + "5271093022632786731229442228n", + "38726129390922048171827945072n", + "2217156708995046954n", + "42132917698594053659930418890n", + "77441215761462050733024375776n", + "2083758735650294380n", + "47743460986910581363781592550n", + "26859554267304965757813109594n", + "1656567376163667236n", + "35137117329378081211140823769n", + "60243236091112111901829479638n", + "3261955821062549129n", + "28358382509730554378855056972n", + "40056354765208955650509540184n", + "1883533328076610090n", + "31057640297193833879323674119n", + "13135810213042426656799782642n", + "1928373195980068191n", + "55761253093237817269509190310n", + "19165388911431711870765002488n", + "288177310041200621n", + "60799226684566905995062983914n", + "40207229733400293427021512033n", + "2650929947635557184n", + "29437177189026772048925638628n", + "77388528120917898327828524243n", + "305484959527306661n", + "47592972397876357669926112859n", + "3020005646539910166404520443n", + "3190863453458987605n", + "17015557973558762173505089855n", + "35191700003804211634668582728n", + "952612596261116166n", + "9375307689574390622949035417n", + "61354613352930601545872812648n", + "1683589775067171759n", + "60154108389233938793255784652n", + "48945403330058450293756368701n", + "1035482065698051995n", + "48447569243456888850015313383n", + "25814830290612690309150204011n", + "856977948611605169n", + "65272198023492246600324491107n", + "14554952163726621232808728414n", + "2062053292298286079n", + "69617298230609865098827681983n", + "10181270342950070947163024950n", + "2961873224281948835n", + "77865860634437363471851159117n", + "11518525950588256999085719888n", + "3140827286086615141n", + "67289814898748712687694720373n", + "55616979587066071621882452495n", + "671968441799647134n", + "36899669369105707004814227130n", + "47379737112610230221573994583n", + "920085910141384899n", + "13850743853602512280079293782n", + "5089371297253900377827048238n", + "2239346801304676689n", + "6013033712518981164461122848n", + "12696665847690995063491620655n", + "1045922789232343802n", + "73838480486926851002690242545n", + "11024247968089931574635022600n", + "1785739026827732795n", + "46709240116694401777143699303n", + "3928761352718085447710812207n", + "3167078457930209753n", + "1628411620074438399432304042n", + "79120825313446094504376504599n", + "3000986895148633142n", + "20311424959750264924872132883n", + "28982515945674909867411478286n", + "1562815756922582376n", + "41328654693727794541719230433n", + "37688731718109922922839904143n", + "2128686949308632744n", + "63918547392351342205099776489n", + "56244920370208046820481852610n", + "1738952791297540639n", + "42553727777815335999139478351n", + "74401676818038899194857584614n", + "1441223588421962343n", + "48501905549772929765056479493n", + "57196253776231730782817559363n", + "1329042466488131886n", + "42612242102090838639101211294n", + "23712228007378248006135499295n", + "1188081057948978113n", + "60808299854255156374059516939n", + "5037142183493324878785795698n", + "3377641427531405476n", + "2100033507624807185775577956n", + "66092391582904092111713233090n", + "1541686466154961556n", + "55667904776978470999771081004n", + "65782259532792810398109981385n", + "2678194758103578285n", + "46351605403518624328018612587n", + "71570189145139757572693098409n", + "137752718254727530n", + "32566894273154733946610261646n", + "2130040660771399584103495178n", + "3433460175532554864n", + "42283192781782572047009130491n", + "53195283663157854359737683955n", + "226578068878069549n", + "58787323154575198218922082559n", + "76514940467877062817538157919n", + "2170151004821396792n", + "16611896531741382600748135578n", + "23973320596472426785110273924n", + "2072924430898945448n", + "56522487831947510718774832933n", + "19703474499176160781849022337n", + "2945330921265220334n", + "56783422841518399023642676836n", + "38769563279432525044323505302n", + "1792299509242652359n", + "76167823672371949003240477400n", + "15033772560369672213689002724n", + "1369661826848479714n", + "57575850008227013534366623613n", + "9429773178147366060969953113n", + "2356450487368726474n", + "66039836579922335205774780899n", + "29305203315228583960894597733n", + "2916190411237443294n", + "62858319877555741683898610262n", + "77386927307827392438266837784n", + "2511329216246811555n", + "70441747233284664135679667980n", + "38636454217815285446563785723n", + "445854414890438948n", + "24981662323868189876596301087n", + "72752733583697398221323060636n", + "1809802552603525385n", + "66843472464618460413168506534n", + "22562062348613238493423411427n", + "2543043338711138267n", + "27822522723722914003779779054n", + "70553533529989712899011629037n", + "2009965107178178528n", + "41145654027642654382154045441n", + "33316040825580853635158289461n", + "1252347873187657129n", + "14195611144746543080825466319n", + "3407770987743222093411188154n", + "3403453824283325760n", + "77199977102298348629704937208n", + "31731941704004336833312531577n", + "3114592409653948417n", + "7082891359680238712484596898n", + "36813294676505780861528211839n", + "2296586694800766015n", + "70341804842672009622871958383n", + "64787100294434991758166332089n", + "684630955513640653n", + "23627073378371702512100491818n", + "67179406416584740783220132116n", + "1357682412528821803n", + "2679265488258494083925014071n", + "37109873815404656380557618026n", + "1127066617660372163n", + "32980549985182280899200208848n", + "49972857657669072050800815359n", + "2224829721975430416n", + "72929313298373333698671436085n", + "53706180782508338412265116928n", + "2345264634375706259n", + "25600116071059235957929539774n", + "21469247810821625206615495609n", + "1284644432869212953n", + "52581652408757810789394635434n", + "29131664108202548843582785870n", + "904339045760670348n", + "4798855127186408145093474279n", + "25593999412234523225948102223n", + "654037355967384889n", + "3657213402389600636244772383n", + "24133147736054748340766777127n", + "1396486180283262520n", + "78699320366651548922305948488n", + "69230814784074744434577385445n", + "3098132099441744380n", + "19644784263306430222376184614n", + "39352365321909965982286711008n", + "1097135362500605198n", + "22504884281040026520566615667n", + "51884310716816502189020510501n", + "2836879063584194940n", + "31564868821682863565046249637n", + "69399383443221313434464347907n", + "337835635995040157n", + "77484391777362423277126784135n", + "11986692619447741790084961217n", + "2619589882560292156n", + "55547759500726924350706149721n", + "17502197066849036485159796720n", + "3288955261957797426n", + "77195073787908022779049329769n", + "51238689806904152799533816559n", + "2902656369373522432n", + "66836221713819023953318512262n", + "30501774163107141437775800261n", + "2677692465649787464n", + "76245923481521701260558672164n", + "75457145835842899954569824276n", + "2950949770498563032n", + "25075661441972511124816716310n", + "51986286084014553654599003767n", + "3209171396020260216n", + "13218845202818396335134174792n", + "25547194437477958442682760572n", + "882225404441623442n", + "69914875188950207440235097203n", + "70199578745164541446110091916n", + "1357784045169413028n", + "43320786783175440339572518455n", + "35286989115778570412048883295n", + "3245655897355025440n", + "11580221946358483026643910212n", + "43414377877991154114375552714n", + "1146796406253097440n", + "17419013178925902351125669980n", + "19443734017483244776169430363n", + "46141882095098048n", + "8509181823114447743684103155n", + "21773389669210291571358684709n", + "293567078455314752n", + "71890768140184100110325465253n", + "32947359154902603245033356248n", + "2095767513471253062n", + "66612057726180846539892110591n", + "58228796938658089225696147738n", + "2195968911090520286n", + "1109993388422429661761631241n", + "22346582292377463495482260406n", + "2001066859090391140n", + "35881299508492663696062741525n", + "3717272605662631325590315531n", + "2150876750673299177n", + "32330394168112692961657727641n", + "58472199194667412587301482601n", + "683145818063708680n", + "780866688393577616874972293n", + "2484017925737855158498827859n", + "1946164710667286644n", + "24949672542982775874442945268n", + "78926592473575507217479867337n", + "539802847395835576n", + "56117008756050384582147823528n", + "43210853541622432183725156653n", + "2150663169634545096n", + "61579369092219089182966568720n", + "47582006983687603144738928893n", + "3124871084038651121n", + "20472604303699532705442132839n", + "55026790452919266777016889796n", + "2128553976965398209n", + "65042066402159517855186655704n", + "25834286024900757312561871223n", + "3153460278111732024n", + "2030649483792876655509387794n", + "31251460673520289934513163341n", + "2314202421394708798n", + "38898507655714044335469213287n", + "17766913045336064637455159601n", + "5772612758153592n", + "53351718994883410862516374446n", + "29801786398373019602386521929n", + "332518094768871387n", + "20014752107409814777501788862n", + "30545630513989571559621232703n", + "2905341310728908891n", + "41776391657198710555140374062n", + "72771134939139300460786768127n", + "72835700930130544n", + "62519373408589123636846113266n", + "30609899521982774212363668403n", + "3102951214589405748n", + "70025140397226837422549416680n", + "40592093639220464458845352747n", + "2347241753120297608n", + "45468192631571138571591665077n", + "26558823675732211497626649030n", + "1629416479528531955n", + "25801876090378717694003287495n", + "72714857660939158368507064084n", + "1764408786552028634n", + "47018572464410011443515455943n", + "52662920195362571012049090020n", + "454834057907282043n", + "57331496668953277296232816838n", + "33057818018021391843587257854n", + "3030763542145120274n", + "48443191019437422815507694667n", + "36934156921693139330074491119n", + "243401061232079827n", + "67385403122763135721667904114n", + "17785169761217765132246283784n", + "924708906342822055n", + "24368340584512161086502262522n", + "30550074161540509118618024477n", + "1647445399378987715n", + "22621857170588920686193026082n", + "70812007388389655871877402244n", + "1694083210670991305n", + "41347708096645830091114899476n", + "16037061913312522369505887616n", + "2497665959504793000n", + "67139303310464850804293957278n", + "29407657655389872029903395295n", + "1231700583895634138n", + "37186266588661031020364276823n", + "64331463645686241180031890307n", + "858007349645516242n", + "17453975067968526676927428902n", + "38794176949661087662172044849n", + "1932865250829663127n", + "70732789694653075375453637240n", + "48517950398808253845315914303n", + "1533683325669917693n", + "7590544657622663597186569999n", + "16972876382471665202433633383n", + "1600415365643134371n", + "78975951800277999885019988149n", + "27654411992063671107921755807n", + "3369953252850191561n", + "46043479816389332953445183683n", + "62532324852159742926567583231n", + "2731831590624761579n", + "26498461135763945608035183326n", + "48445518704959114181801065120n", + "2394765299580634398n", + "56028805977151038638420781436n", + "58141016313899417321335845605n", + "3462767125728514499n", + "75681482851168385218717491708n", + "4473698216036325355609931639n", + "3310202237706351301n", + "4504293916651623254906206743n", + "68116538030159503197015998251n", + "2889579290083727600n", + "12434420748880011857929530692n", + "33628508197938600895312561499n", + "3159831169743527270n", + "67109016324114818146303701946n", + "55351850463436105459577302775n", + "385986569608202030n", + "36242789260155546497441666197n", + "31732511889478314960659605156n", + "2920600915566823827n", + "48509474254963854734887661334n", + "8079251563824083202330240595n", + "2665801320330421918n", + "39660864646747352477904319746n", + "59651821222898457546636978442n", + "1531034568313238345n", + "62788969625927152028379816160n", + "24744138610672787038055730138n", + "1310233222719201614n", + "23792614446481923487153090977n", + "79101023625960187009131465639n", + "227407773153051293n", + "57267184243278003604986979966n", + "42305211890537745328413201800n", + "671233697941573096n", + "39762406528144274936805413969n", + "343364987272833939858341150n", + "1959484601961092056n", + "54544135238917175005216161289n", + "13912546675010052160684729099n", + "3014313683216149380n", + "18136356730134376051249726819n", + "11425153178165482142021848242n", + "1645167436823042465n", + "69571690242030224297860713080n", + "20000296908210530511281947906n", + "2951984515066408617n", + "68935557612334200108120846094n", + "9599874776655508661703447912n", + "207537289235118400n", + "38005039110469828198737233452n", + "57117939793780663528591877230n", + "657310159275772585n", + "48190942309941762977700829286n", + "35380709350708768203415160193n", + "3486923002519738515n", + "53309628735245870295401785697n", + "6898290035436010984009341789n", + "2238682903059000966n", + "26252436214956385472199538349n", + "5398316484357388778003944642n", + "2017016520050129083n", + "18728180890682502663677205457n", + "75985790035999193686176922173n", + "871191822818490491n", + "26090995461462189401947080714n", + "8010181523913519495898879640n", + "2760750294481345789n", + "12571913368726887078094710986n", + "67038533933130467009640942091n", + "1356907102326461067n", + "2409336986166143567183486273n", + "26333849491012167896177513936n", + "2081931138702581350n", + "22178579495456933698065784747n", + "10494019184295301135848443719n", + "1556823910319985542n", + "58667315150272390380921815777n", + "44158865836751938500365655728n", + "2897305038233402061n", + "74095183896289472526655350256n", + "46602083399223413699892771385n", + "2939040058840712678n", + "56134945160702746550200312909n", + "55594024588721990973305872113n", + "241727020334505816n", + "19092625518251024820060605981n", + "52805176561283013852649589318n", + "2630183511003809185n", + "40142471166039256274323308618n", + "69028082091732345035280035260n", + "731537512902501193n", + "54452821361994624741653790280n", + "5480588108130430397591687207n", + "1966495710156437100n", + "54225506703398647510402637329n", + "71078272160741272276482248236n", + "625726620356390685n", + "10873694895066196894600492408n", + "42543865621829980680582869471n", + "659085478864973940n", + "24570812645438042915544691872n", + "38864422867994097111701162358n", + "108264660254998622n", + "15090579651764708135114880383n", + "6847932611991509071357257069n", + "3002519760345855057n", + "67172930987791999954069226303n", + "57897525199993249176161053378n", + "2915445250377403217n", + "48211115939559742352322228669n", + "3041971302836179255332835905n", + "2031433350373049244n", + "6702059784866514136668283850n", + "60090798174975851190351671198n", + "1539442667927689602n", + "10555206956770682453196311300n", + "60174320015124794428742548117n", + "3219514787369094630n", + "33581130649629556907511838149n", + "68936014066717219797472330229n", + "2202566843302550128n", + "63246205799832702388628292822n", + "50766419118828752565980214424n", + "702948315686353336n", + "10588037026087823902566620931n", + "31944872868634567722701653259n", + "35592220254698076n", + "18543232582912428355348562511n", + "50848342948013759405790941928n", + "2042054766705480118n", + "75785091112505749098959662874n", + "33468770634430484055281758384n", + "2515019705715000373n", + "8378376338147643928768798662n", + "12530533155876786053202214269n", + "2727583334873636791n", + "77899012542093403472222785656n", + "11198541105926985132377308478n", + "174561331384082375n", + "21495637682655463985272268626n", + "66647744985496666360930881126n", + "405121961932952414n", + "8785728082360554623230657907n", + "16306316690895485216543647677n", + "2693176818970082429n", + "67847687393284529502747235461n", + "75868253612879612148702490532n", + "635425144875131615n", + "40160884413239877062079330770n", + "63164369256178816648228971849n", + "216810198294116243n", + "36435168126906960353056024299n", + "3149419224920838431230970634n", + "1871893333982790509n", + "64560732618471515378295795553n", + "45792311383220222353974633032n", + "3484115525993152817n", + "22542187253833075358391555832n", + "32913490894672208577258857076n", + "813295300489516673n", + "72008937925863542512102402771n", + "63373906192857921439647992395n", + "3099919762468324319n", + "2392718323049577722069945988n", + "6726604907914697504274405051n", + "1908730698260696759n", + "45303405148555861234318904018n", + "13840437113932916703521888532n", + "737973910436366111n", + "11242380504387923425774560196n", + "65118374650171371803597834265n", + "939001365486112822n", + "67975566324245959520301671802n", + "4473437818272725879708178573n", + "3208261445017504752n", + "30014808206157543806080228554n", + "66463240171753092120432610074n", + "2435993957101269390n", + "25504128195718610529905683318n", + "45705415444312786927978463556n", + "1045631128695025263n", + "19343065393931212261663604105n", + "48433465108497519532696527919n", + "1643955524026831567n", + "61967979823357631114053339146n", + "11931295683566487093852093716n", + "100280846773001002n", + "60176707673382247806625891599n", + "14685765931054596220352916055n", + "1414975013856289364n", + "19159675325188029964508933203n", + "71168335347143199690179041027n", + "3459000704647014558n", + "53017258852314779784871212634n", + "71597413066169374377964038634n", + "863719515279735604n", + "49267123322147562533247340370n", + "34809549368288410549249367594n", + "1802256555976892720n", + "32488293328284077378113325483n", + "63994087293938357079448722422n", + "3430579745765945694n", + "68044606980231349008143649733n", + "78178074980646262021475964266n", + "3303695234936873546n", + "36250845172027127549601304699n", + "7940006871355541625212459589n", + "1358280933229140597n", + "15621186773945475826007876994n", + "49200990726906764032939211762n", + "3297411787341585376n", + "44178322514207300517286794896n", + "1309109795551718989306628832n", + "1786635848544738041n", + "34458406924637261553644235535n", + "78049086711268561469882753998n", + "1099497319188604429n", + "3475313089381131723054722060n", + "6689323677917312565405995513n", + "2155662382779821326n", + "71165004495601531443113264340n", + "74552476918126801039538032619n", + "163118249154587626n", + "22716028135425394548575618606n", + "77862367616336570154310133149n", + "2252905518646090223n", + "285n", "0n", + "1n", + "80n", + "1n", "0n", - "2n", "0n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "1n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", "0n", "0n", + "1n", + "1n", + "1n", + "1n", + "1n", "0n", - "3n", "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "1n", + "1n", "0n", + "1n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "1n", "0n", + "1n", + "1n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "1n", + "1n", + "1n", + "1n", "0n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", "0n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", + "1n", + "1n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "80n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "1n", "0n", - "3n", + "1n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", "0n", + "1n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", "0n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", + "1n", "0n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", "0n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", "0n", + "1n", "0n", "0n", - "6n", + "1n", "1n", "0n", "0n", "0n", "0n", "0n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", "0n", + "1n", "0n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", "0n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "14965340338269765916748077654n", + "57444243079201776417400567235n", + "1222043622063448251n", + "0n", + "45539325815258009214048517949n", + "74029159877207687841315755286n", + "1315758075496492476n", + "0n", + "64882742742693735388703795217n", + "4844949128497544036649211020n", + "3182147294707861679n", + "0n", + "4496634234616189055928626901n", + "67033373151134842408497997482n", + "3384857135886447649n", + "0n", + "56260549620186665298313904338n", + "17935165051002398782181590032n", + "2907893131822920343n", + "0n", + "65216326003597682399222737495n", + "3298048581226412665864466074n", + "532058165305353173n", + "0n", + "4n", + "17534649174740286439617184587n", + "61624521448773719666652547400n", + "1583544831807099050n", + "0n", + "23580985120896688091134062209n", + "57090176069460711056973300755n", + "1132549516279179782n", + "0n", + "69267242672670352112011089825n", + "17669721875886136828099769177n", + "2507931255464886054n", + "0n", + "55290945981010563287452434069n", + "57369263824033760062566721198n", + "619421959802267457n", + "0n", + "5n", + "61220558198970810332002781419n", + "38489653625751659528596235346n", + "474544792344147439n", + "0n", + "73851216425788783229570215676n", + "57544280229734741213839304340n", + "824332013690674407n", + "0n", + "70640236490363038070108610250n", + "72048683011618337952639947412n", + "3283882621335138308n", + "0n", + "45766176129023615739100671483n", + "78938635897312369942467299842n", + "1543825017605003289n", "0n", + "1n", "0n", "0n", "0n", + "5n", + "31155655935624063764508754430n", + "35049753162015102915755571760n", + "55875346095182683n", "0n", + "75318843718093868842741179425n", + "31133663375247545639771122083n", + "66887240769048153n", "0n", + "53548803199970406176497915706n", + "48759655290725258023700284n", + "2897435443006199088n", "0n", + "55389289662485897334815256801n", + "47639017193033623227742014280n", + "3206472460595717423n", "0n", + "15201082213786740520291596162n", + "39703663558483688931576154384n", + "2690165326117272564n", "0n", + "8n", + "25205349568383755808920443585n", + "36240798362990640992244755704n", + "1423634377032442318n", "0n", + "63097324248837674501622746356n", + "14176515660675548454430012350n", + "2472996041072023223n", "0n", + "68044534632045954263224623568n", + "22833316355344197340616352411n", + "2877651330399473595n", "0n", - "5516503785001221521227164944n", - "40413566861187335218189028200n", - "320792509372162342n", - "0n", + "7738755395123571185438266773n", + "59806951206536854707030464457n", + "1619021578356186643n", "0n", - "1n", - "1n", + "73851216425788783229570215679n", + "57544280229734741213839304340n", + "824332013690674407n", "0n", + "70640236490363038070108610250n", + "72048683011618337952639947412n", + "3283882621335138308n", "0n", + "45766176129023615739100671483n", + "78938635897312369942467299842n", + "1543825017605003289n", "0n", - "2n", + "1n", "0n", "0n", "0n", - "1n", - "10n", + "41430774384038274715812872239n", + "55959887789790995799093598095n", + "1435809624122226624n", "0n", "0n" ] diff --git a/tools/npm/integration-test-suite/packages/nodejs-ts-cjs-tsc/src/examples.ts b/tools/npm/integration-test-suite/packages/nodejs-ts-cjs-tsc/src/examples.ts new file mode 100644 index 00000000..22bca972 --- /dev/null +++ b/tools/npm/integration-test-suite/packages/nodejs-ts-cjs-tsc/src/examples.ts @@ -0,0 +1,125 @@ +import * as garaga from 'garaga'; + +export const proofBn254: { + a: { + x: bigint; + y: bigint; + curveId: number; + }; + b: { + x: [bigint, bigint]; + y: [bigint, bigint]; + curveId: number; + }; + c: { + x: bigint; + y: bigint; + curveId: number; + }; + publicInputs: bigint[]; + } = { + a: { + x: 19326975765597999023026309242851464618295625967876195641207265702903971944714n, + y: 63835113064883221423828958902442994957834669122245713027012799265225733314n, + curveId: garaga.CurveId.BN254 + }, + b: { + x: [ + 15926258242285065430281020483827261910589109953358642697562602626998569607754n, + 15482775443177023962384497625528997151098293635727021527127534892096530509952n + ], + y: [ + 10937776115245591292644949547008094885240742374542777857501160790374675834371n, + 6691169928456984700056024515478772626466687376966760922939239504103847739755n + ], + curveId: garaga.CurveId.BN254 + }, + c: { + x: 18548825552947889373136407684636046437705490810597995577018381312170231914454n, + y: 9890815383090898074006770716054740281870916546141552254207684185588486179606n, + curveId: garaga.CurveId.BN254 + }, + publicInputs: [ + BigInt('0x1e17db88c1d2e83e49f692cce4bb8169309de90afb2b141156243106aa34b474') + ] + } + + +export const vkBn254: { + alpha: { + x: bigint; + y: bigint; + curveId: number; + }; + beta: { + x: [bigint, bigint]; + y: [bigint, bigint]; + curveId: number; + }; + gamma: { + x: [bigint, bigint]; + y: [bigint, bigint]; + curveId: number; + }; + delta: { + x: [bigint, bigint]; + y: [bigint, bigint]; + curveId: number; + }; + ic: { + x: bigint; + y: bigint; + curveId: number; + }[]; + } = { + alpha: { + x: 6763126530687886999315782887200758703366235230289874831627658839515656330867n, + y: 12297948670392550312636836114470404429657568989657927437959695771502446445179n, + curveId: garaga.CurveId.BN254 + }, + beta: { + x: [ + 15362786867599176251482538547160991918100063526460909721657878971551583339657n, + 3804423004921008809819632629079723167970572551072432396497601916259815496626n + ], + y: [ + 21885719103633717693283841528133243510750001708857084897139570082577218850374n, + 2076817281717432063622727433912740683541778328445173073030513609350245776784n + ], + curveId: garaga.CurveId.BN254 + }, + gamma: { + x: [ + 1505558511994093266228972967760414664043255115544025409518939393775943607863n, + 21131173266568468249589649137903719095480044620502529067534622738225157042304n + ], + y: [ + 4008759115482693545406793535591568078300615151288108694080317738431649117177n, + 18835856718271757625037377080288624550370480296914695806777038708085497610013n + ], + curveId: garaga.CurveId.BN254 + }, + delta: { + x: [ + 1497911744463986566314308077983046202449361313910668647770797503379177516252n, + 10829154948357654897792444316512827659620136273388886760324770466776134105520n + ], + y: [ + 10850392992008761830625471778404650447428083833210258292805429019728339148884n, + 12593805385728178657844996215584371401133999503150901444097670307277076679963n + ], + curveId: garaga.CurveId.BN254 + }, + ic: [ + { + x: 8279781786940010385190155571855963988492685408361021424114669994156938727612n, + y: 14410809027374663415870055712464930833085570569392210261413081131467855918386n, + curveId: garaga.CurveId.BN254 + }, + { + x: 10075286447651977124250383403562829564641026794366918560412684031493085120161n, + y: 13393494704849149158598989372790154670517815409968589728896053397011959461594n, + curveId: garaga.CurveId.BN254 + } + ] + } diff --git a/tools/npm/integration-test-suite/packages/nodejs-ts-cjs-tsc/src/index.ts b/tools/npm/integration-test-suite/packages/nodejs-ts-cjs-tsc/src/index.ts index ef166ff5..247b2885 100644 --- a/tools/npm/integration-test-suite/packages/nodejs-ts-cjs-tsc/src/index.ts +++ b/tools/npm/integration-test-suite/packages/nodejs-ts-cjs-tsc/src/index.ts @@ -1,4 +1,7 @@ import * as garaga from 'garaga'; +import { proofBn254, vkBn254 } from './examples'; + + async function main(): Promise { await garaga.init(); @@ -6,6 +9,17 @@ async function main(): Promise { const json = JSON.stringify(result, (key, value) => typeof value === 'bigint' ? value + 'n' : value, 2); const message = 'Output of msm_calldata_builder: ' + json; console.log(message); + + + const groth16Calldata = garaga.getGroth16CallData(proofBn254, vkBn254,garaga.CurveId.BN254); + + const jsonCalldata = JSON.stringify(groth16Calldata, (key, value) => typeof value === 'bigint' ? value + 'n' : value, 2); + + const messageCalldata = 'Output of get_groth16_calldata: ' + jsonCalldata; + + console.log(messageCalldata); + + } main() diff --git a/tools/npm/integration-test-suite/packages/nodejs-ts-esm-tsc/output.txt b/tools/npm/integration-test-suite/packages/nodejs-ts-esm-tsc/output.txt index d4bb220a..dc6b1135 100644 --- a/tools/npm/integration-test-suite/packages/nodejs-ts-esm-tsc/output.txt +++ b/tools/npm/integration-test-suite/packages/nodejs-ts-esm-tsc/output.txt @@ -31,54 +31,24 @@ Output of msm_calldata_builder: [ "0n", "0n", "0n", - "2n", - "26217156025717979489861508966n", - "38732762661950955458369152605n", - "1690057079767624198n", - "0n", - "55776084338326874385161289385n", - "68135223798443788527711860040n", - "1743499133401485332n", + "4n", + "61292904915618517473537549718n", + "76424063491230657696617758542n", + "164100390290992692n", "0n", - "3n", - "75759116906411131289250842036n", - "1443316740970346987535705368n", - "708088064087366360n", + "59893860432479921089240889541n", + "23823463833468957056970670087n", + "2601996562330437957n", "0n", - "35793051770242617481071736722n", - "55598968341652892474344064376n", - "2778910202715604305n", - "0n", - "1n", - "0n", - "0n", - "0n", - "3n", - "19631865022986903110643570472n", - "75611758646426461743237732951n", - "853236432195926662n", "0n", - "11812074862058673201969127714n", - "39063420668175062792989597255n", - "1051876075291068046n", "0n", - "20990372166390382667110319757n", - "42018508523564723974054925340n", - "1475001652048253687n", "0n", - "6n", - "68821025690704718680664625436n", - "4329950222911040962607116106n", - "2124264192262099080n", "0n", - "42731142985949030089657953320n", - "52712334859712198499272653638n", - "1362734074540871585n", "0n", - "3n", "0n", "0n", "0n", + "5n", "75759116906411131289250842036n", "1443316740970346987535705368n", "708088064087366360n", @@ -91,7 +61,6 @@ Output of msm_calldata_builder: [ "0n", "0n", "0n", - "2n", "0n", "0n", "0n", @@ -100,8 +69,18 @@ Output of msm_calldata_builder: [ "0n", "0n", "0n", - "3n", - "1n", + "5n", + "1957209727941774081186492064n", + "73995994033502900377050207347n", + "2920028494258500243n", + "0n", + "14815917097266045351973271802n", + "43866335999743751425469215536n", + "1742440389359060858n", + "0n", + "67144078842460382505309213980n", + "3404562101888240111113484041n", + "869725021625300198n", "0n", "0n", "0n", @@ -111,14 +90,28 @@ Output of msm_calldata_builder: [ "0n", "0n", "0n", + "8n", + "68821025690704718680664625436n", + "4329950222911040962607116106n", + "2124264192262099080n", "0n", + "42731142985949030089657953320n", + "52712334859712198499272653638n", + "1362734074540871585n", "0n", "3n", "0n", "0n", "0n", + "75759116906411131289250842036n", + "1443316740970346987535705368n", + "708088064087366360n", "0n", + "35793051770242617481071736722n", + "55598968341652892474344064376n", + "2778910202715604305n", "0n", + "1n", "0n", "0n", "0n", @@ -126,107 +119,2309 @@ Output of msm_calldata_builder: [ "0n", "0n", "0n", - "6n", - "1n", "0n", "0n", "0n", "0n", + "72870418954466684377992322181n", + "41156025981776115551124813861n", + "1617542705451342307n", "0n", + "1n", + "632316186269555507073122696n", + "46594343671461732011923330988n", + "1612721764065542798n", "0n", + "1n", + "1n", "0n", "0n", "0n", + "2n", "0n", "0n", "0n", + "1n", + "10n", "0n", + "0n" +] +Output of get_groth16_calldata: [ + "2276n", + "561151868347580495583090954n", + "76095163897123765080010407949n", + "3078964875882710626n", "0n", + "68760071548346057889257256130n", + "33987009017980255890281589641n", + "10169520226989098n", "0n", + "27526525353537266686222475850n", + "14475456397330869216192753448n", + "2537199318039088506n", "0n", + "21536768652854740401912377472n", + "61033740543581523820282161323n", + "2466548432040548587n", "0n", + "49356715888972701601325049347n", + "69887821523610458575318250963n", + "1742488265497548861n", "0n", + "68106177540828336088045306219n", + "961134836681944563222599448n", + "1065964868903753173n", "0n", + "1800806384039658546158952406n", + "44097612892395787951554989634n", + "2954998394940821894n", "0n", + "57407696252580182379957914390n", + "68043785987214905719851221030n", + "1575697798130653691n", "0n", + "1n", + "64622861075918021861446670503650833524n", + "40000715384012656934033607729992139113n", + "65343516826393976703500119419n", + "64215924997604874724268545467n", + "988361220710881918n", + "30419768492628197858619568261n", + "27248300164153194572764431995n", + "2977039154666701832n", + "65685384868591218376868464427n", + "70847639348750339988496276918n", + "477777041053646529n", + "29991939756641252358878134746n", + "39295947558852310211017126572n", + "2815628384676858047n", + "41723516601424502403187247204n", + "17017221925427596342628818049n", + "440483370607139100n", + "10413180469465695361837522183n", + "19423959337400646488247227266n", + "1196856567711091031n", + "14918739433528640782272739139n", + "2386255189434407583576372032n", + "2110030772171629820n", + "66403863065153192042460667734n", + "26490228722781507311620127895n", + "1376925612093868452n", + "16095686441528704658448370761n", + "51022389018232154188872438326n", + "1610491282614910455n", + "37997039872158612927722452114n", + "76461913933066610895201145075n", + "951074374291802403n", + "71303405408633411813876113602n", + "65378028046199379258519780162n", + "2796976393851271662n", + "66043194162972766020432949924n", + "72668519642029141849369643840n", + "1767421250104456939n", + "34724757470958269778491338738n", + "67907574914053181941994051296n", + "1074861315591297211n", + "57811416502141401297494384261n", + "66717953782642686044297384228n", + "619071555217927229n", + "11747815192199388258706152779n", + "39655522309044272057593243434n", + "2667518659266923661n", + "74545987263802105943401974456n", + "25100780504941704736052597181n", + "1614091262172996678n", + "61496830641585942728225636367n", + "47520662928915336127912320093n", + "1483128622047069223n", + "60688370891239308805053347678n", + "6154252422157238786881911133n", + "1595810747040934713n", + "4083087877564984515505707949n", + "8098795933662806280871012387n", + "392529588828430050n", + "14388273410011291023320103380n", + "59643003630595652724715495246n", + "2978244255961784640n", + "73005708620970672578538518429n", + "64274822400727474231693975117n", + "824761225328685267n", + "58979395441344004425345087397n", + "50034285490796369376342018474n", + "1071577406066675668n", + "37552244383550540565443579029n", + "66651519402295869947385119697n", + "1816081760201573675n", + "48020280081371249748563352979n", + "19387797072717949389382225132n", + "1075380445499260082n", + "0n", + "0n", + "0n", + "0n", + "0n", + "0n", + "35717919122505863182793101258n", + "38321232967395819819318928199n", + "33653293845735846n", + "0n", + "0n", + "0n", + "0n", + "0n", + "0n", + "60126610212574038899502857656n", + "7521540037295293717633716927n", + "2853604986499631260n", + "35n", + "21051189327279847889561754607n", + "15679397574132606210591767826n", + "2165541175263187167n", + "11461504713279098434997837844n", + "29843864593792422920685859506n", + "1460931496621397613n", + "31444402670555100638844582863n", + "41564870089383627374040254466n", + "3317275169749288672n", + "72559701040108110454251376272n", + "22887416934578586124987839996n", + "233686850646424299n", + "51667851121405518271474152545n", + "8297160697759020633045233343n", + "2193876459774314419n", + "50048470992987075597478354517n", + "7622325433377464914372402739n", + "2354852892440837544n", + "51371930649223862037533589505n", + "79037515700470610379424985426n", + "3103776711054728122n", + "62017664743365054011497714498n", + "18400895627048394641412939651n", + "1348549913115407530n", + "68135824164391051249850625519n", + "66467776056179325801077769907n", + "21934170737946721n", + "43733194692565917370190335652n", + "20871497235942649279957719973n", + "668366294714005293n", + "69461224576101086641240237729n", + "66163212446743341874016516713n", + "2187872754580648643n", + "17220145241406859216639481755n", + "16637691490800642336304328427n", + "699908274655976347n", + "63497807423928467541336180608n", + "5826616601935275548523889948n", + "1995878641893268059n", + "45351336804917798268705814434n", + "32809386436253774870015191481n", + "2479634507910679085n", + "29902151727900563245652302915n", + "70978449320724687288838934154n", + "2324927884830925807n", + "70956000718854853515484101425n", + "18794223695576985859644098754n", + "851712710373510834n", + "10098225054790962506843798879n", + "23663666343921865703011477995n", + "2539135702270490911n", + "13745949463631524266514217644n", + "70097334773007528061348260208n", + "1449740726324507950n", + "77747255839650031066990598333n", + "33186206179829484467075523327n", + "3072781249488320507n", + "73980383885811324159893986758n", + "1765445723258696625718806089n", + "2271055079390534326n", + "65413433113844994807777190576n", + "48033870016967321544035758027n", + "486427727733872709n", + "26974899297726311987406093631n", + "5590641036960446176988521755n", + "827510576486023036n", + "29009837304935242599458620885n", + "20410410399336048506493809410n", + "1954580703151327584n", + "64135814011222089868428198367n", + "56261294792918650387740643327n", + "1226348411176360117n", + "71834179960057214052393522783n", + "46252419010406289556729694820n", + "1393685374555389118n", + "71368042768790547323904986882n", + "66161706759499128280107017373n", + "2031846388120562115n", + "21220965229609488481377288540n", + "63634474338013450603335409627n", + "821621475859559449n", + "18432973800914453913616171088n", + "8237366564750917100218776918n", + "3448970319177548904n", + "51266071561401723888120442902n", + "33637427514172279767467204013n", + "3304964589143840434n", + "38819453582756888614388081676n", + "38995523514738195349996597496n", + "2323381859757397191n", + "60884424754479179074928199128n", + "3834764671648885586861880739n", + "864611594127789300n", + "9851774469429652901432809299n", + "37101389540039872112071709899n", + "2559626381308197564n", + "406646090122284731360238690n", + "44652954714826373590985929530n", + "683398595921263332n", + "20271182213679030346920227775n", + "37600328594433178897257972399n", + "432396126057182521n", + "4187404064813213379278146332n", + "44537571235199588707429377798n", + "3148695479824963911n", + "25801656964836714839982503508n", + "51572074862943493111482365520n", + "1230107506438930488n", + "51625253538057090130489675612n", + "11815326077763625426679125713n", + "521507079758837629n", + "9648925458348520397354094791n", + "31712274845777377436963587786n", + "1997027570431487029n", + "67411860089204789431616372347n", + "66528411456550554620624110152n", + "186478859944874837n", + "61267275259145597446660035124n", + "8554664316600082912178209665n", + "2375445434845419873n", + "1589782365755830876261985911n", + "14834270454057237025174127570n", + "963005115183332390n", + "23249702285165109375700438720n", + "20760791667651963569657008881n", + "2149068190029611973n", + "74674158355316816901821060837n", + "13278131002009659818927519878n", + "992778641153509292n", + "8743794935416188942200722720n", + "51445266496970909016857135378n", + "438732749332832318n", + "64511635865187456937539832569n", + "68455428209776466334096458368n", + "1196547129512189429n", + "16652864649326843859619189651n", + "47031229552259361752165531n", + "1977848333533964373n", + "32230433718106499209616712783n", + "50152042404552913889735459326n", + "2647553318887157906n", + "15558003702184603194095500825n", + "75789384763919593972512743955n", + "3199452366147221980n", + "23639206276595496029173201731n", + "49198122874004051169498469698n", + "3017499313473475023n", + "14633623354742611699704494011n", + "13838793228838994907197164815n", + "1865567661799564691n", + "63554437295278917743885851002n", + "43774994641723817700539915508n", + "2096263880799998644n", + "39241367224191359271532780985n", + "11996031360599781980224407856n", + "669587303349757211n", + "70309465524306380398946854940n", + "69691793870844727391235380992n", + "1097884931999290463n", + "4880550284873697839328338960n", + "8683184578595981266384193421n", + "1704353262400573542n", + "43209925421984317108056960491n", + "71838424302727061831479195619n", + "1719485935656079288n", + "20281500369447070817728689103n", + "7827101470501627130702651299n", + "1802787150264131673n", + "46990609747636025825158033861n", + "44506561326339289883265865893n", + "168363193009253293n", + "72644600526598920979602995563n", + "23734595505295435652505772841n", + "3066825941193215846n", + "35922864395887621958431954121n", + "36164080296393340386782836739n", + "2806406594668460083n", + "9559608083309233656821926408n", + "21435397197883361901646100159n", + "1173438743001539534n", + "45502332725513884072895701183n", + "21110593816020485943815437920n", + "2156839344197406156n", + "14935455230205682855615996549n", + "3176509029633635649806564693n", + "2744065159326778800n", + "50144289937074876149408247339n", + "73476828119785067069284584679n", + "1137921320963525519n", + "7764782370318985672713086089n", + "35186333034809438599544173388n", + "2599319187054853443n", + "71090896326220687050059751719n", + "7138127862158940765217036726n", + "2525413991973636711n", + "74465662641034900763924596241n", + "64800563131735459820423413678n", + "467645211882593334n", + "35429207184442884958891366618n", + "32026071525343635101462583825n", + "732661589473603894n", + "53979236240639306101606255299n", + "42289323195165961060464784974n", + "2572678142594168339n", + "34781401150182625703506517963n", + "27502296245160796607775189158n", + "204754437845996963n", + "60295830689532650505249825677n", + "25033548320502415354132760311n", + "26918649856759092n", + "53883044729840223319972205798n", + "71229970233113264180243241621n", + "1096143763692361182n", + "23670625124894730163037915585n", + "66188859433247255337619139871n", + "2789875774976133848n", + "76287870172839315742103539908n", + "76696206429019592649532825371n", + "1140810575629679716n", + "65695197715200264171919419792n", + "64578697338608806055715988010n", + "1315508308085028070n", + "78097114957711978300958275236n", + "73435222529435448525954708815n", + "1357585460514972583n", + "7357385422266450818170168488n", + "41750638133784298446701227299n", + "2309087687582896396n", + "59893979186320257893680148671n", + "70073254756682993544223051173n", + "3379633857316028827n", + "63037751789054738563399308545n", + "22112638657428976200628648553n", + "1119955028522904661n", + "17789959924300679578888409433n", + "32036177498553475203925266628n", + "3282049411090141820n", + "28853440708133119682221591754n", + "53037088663773523321481680370n", + "33889236786700338n", + "47866115906431522995214087729n", + "65896044771509521496549322945n", + "1356170216477027582n", + "72025359186703704066599325205n", + "14290937382512145681745832413n", + "235291859370816977n", + "16739080450814900672563464076n", + "27155915888194232201712953259n", + "2201285100786606817n", + "79046757705903490925593572396n", + "41590525534061554138727710174n", + "1563993153777110442n", + "58644351226953768961970699175n", + "71513413355714071072616721058n", + "771468756865502494n", + "56315873417343912546874324750n", + "66995041844358703653717763298n", + "1564628505321775490n", + "68742094005504029111318961475n", + "43257881480227388188853022203n", + "2827885137176633354n", + "60013377537965180515452389042n", + "22615548017942376680894051034n", + "2778940717048846996n", + "30216926479141873412912870389n", + "67097866317972012436735650659n", + "1001082522948099952n", + "31879429787569811794175043050n", + "57916743777618192263856200515n", + "1477201521425100888n", + "63117110331861368443138300600n", + "24455052765578778318741183737n", + "3145320365602131181n", + "27504400622945393457424964663n", + "18149654277116955082138788671n", + "709865641588578406n", + "51203413602847718278618462447n", + "32871208476003646471375256821n", + "1972541565241208115n", + "79118404692942875097520377767n", + "48815069625306356145460113214n", + "2800168047740476387n", + "27090046108651136752525050251n", + "17050737426763583806790779471n", + "1273566324033923836n", + "49543917066569282928794484300n", + "10290628042158833070532221066n", + "3469066870558011680n", + "42005113796531220880503084548n", + "60064195130891515794312310901n", + "3245851193684195107n", + "37533982385009798315342336648n", + "10267823027838019609009260399n", + "2025345482262498605n", + "34864622598934340124988581388n", + "48347073555555495737374318810n", + "2673244105079290838n", + "75957016907360510463610401727n", + "23977086141109407077488719105n", + "732491745580907274n", + "64604276948999648627686221332n", + "3868070793275280858296301394n", + "1873653426250118454n", + "15570553586934053483564418077n", + "13639547122371116255200424101n", + "3229806347752382046n", + "69627176750917937037127756524n", + "77527130421629244161614984692n", + "2205592855904802747n", + "42359401661274759693285654733n", + "15319487818905735149374624862n", + "3299209455827802664n", + "913752139298990313523799637n", + "70257873178701883303322833580n", + "3363278906733915791n", + "3719386124896722977369262005n", + "53915264239484240561994801723n", + "1014563467864375643n", + "56643381820560944379080271087n", + "5451127454093963182673395845n", + "1647155594727927302n", + "74031948470913728924354306654n", + "67046184840603355661228918718n", + "730434808359892479n", + "58832815659134274668136294794n", + "44220894708044864609266466973n", + "428689828657455715n", + "26619728344740812354339350673n", + "55972705855091654840275771393n", + "597472825198654088n", + "1452568843776109298902292527n", + "48082065429135088437634332196n", + "1047157723497573338n", + "28285154322504134404521941699n", + "56070279326493931276099147353n", + "1647252454052220783n", + "65027676769817342180184568252n", + "12685362344487350979600199772n", + "1402500493179000567n", + "12668630001282077875777731433n", + "55553251572483079593258301341n", + "2382205981458202111n", + "50473524893888759380289559496n", + "52220217290909756763540198313n", + "2029638412495399688n", + "7502774623130712545083224028n", + "73425515727643581896824036686n", + "2771702310825972693n", + "4639820922586718498241340517n", + "46582679696898380484679332702n", + "2620580077787400940n", + "51782105270520932573551959292n", + "74517889523497564960562458357n", + "79055126752843995n", + "10925640711936519280913334701n", + "11947058347966705959371810733n", + "43716694970268491n", + "35453676805113974113471109604n", + "12015889727201641553493717139n", + "3275286259969106630n", + "70932279409438704808566723573n", + "47041530965489511382629531879n", + "1256401409005218192n", + "46895749660336733332848035754n", + "40261009687444665011442182710n", + "1306436215925446460n", + "3904962902077066763622365736n", + "36103992387013546339910627073n", + "1329335481346702678n", + "57853677844329075763360620729n", + "61001619991056325367390311148n", + "1235032555631976826n", + "58692146235938833274542664790n", + "14589363842493324627243766856n", + "578262325105051129n", + "37980379958779218087580100271n", + "57690546822788520479506631792n", + "3164185857728705638n", + "45598806448478931852264970697n", + "29033375842093843451718686864n", + "2812217528418815016n", + "9663261157782365056384592697n", + "44620211458433011608252253672n", + "2505651240889113840n", + "48502340833312690180905327065n", + "9352266604910376416980234379n", + "3341395763378874957n", + "35507650777754495555508745994n", + "64550352482963692428938364344n", + "1749731610964724298n", + "72801722493214401326730125326n", + "55956888553336351398608259633n", + "896001678647446033n", + "30516385505393014949750902877n", + "47315718952109319710441627150n", + "1388483706936013349n", + "32381991427814516368016795653n", + "59696292811917044385937202833n", + "618914335291991958n", + "40375787626773409929606022175n", + "64734613933900308276892757597n", + "2556069305521992095n", + "58654528682801174800851099376n", + "11593522535604870003716248394n", + "2125230714317219300n", + "8061995955571015171488513388n", + "47983447012081651413970228934n", + "855542739847145422n", + "59096469339608638609245068515n", + "7673808125695463322887566290n", + "1385253448294382073n", + "25340909062918393540888464015n", + "9795256553635962173776771050n", + "3012016973098277348n", + "33467611330524938973631050712n", + "7543431037219165063475505539n", + "448151223182465539n", + "22750106248651778926545160954n", + "25740569688692303261800730858n", + "1075240126364963450n", + "56338203997489686691769068850n", + "62119360873725897456686490753n", + "1222146081347045140n", + "27338323756657113133884361560n", + "21141429927442113006964516579n", + "462132336382397961n", + "4987343640321990641559943818n", + "58829032105334349895296634715n", + "3177465831253470688n", + "69096263705896112247403554129n", + "29492604434954899550510960365n", + "304239915265350366n", + "66375851691134826136210085333n", + "44757375154942980538763091305n", + "1112855489475878924n", + "70069037784938962740775503666n", + "12717652252841341839220495543n", + "2918096944668928835n", + "18321962109897171704378960368n", + "61813672462196073792006627549n", + "2734946711892636188n", + "64219561440442257822526755189n", + "8503031322535266331858567242n", + "3223902208326320319n", + "63116174136664698830215774786n", + "2759322304337380924973025029n", + "810068357014304774n", + "15698684552711747426349376896n", + "65762055793295617462571353752n", + "518270689795187122n", + "58150828468103287645001826637n", + "77452960139151639571846482697n", + "519559051146038460n", + "72625801975239649642036163890n", + "39078044248618521225250269350n", + "2190524057325078928n", + "27770888055874136986828633484n", + "41773083279140557423975570256n", + "2854828164966176931n", + "627836434493841003902237785n", + "77928664588771202997039373627n", + "330865869276931200n", + "52935592469577214913105764520n", + "20197659873511917804524429378n", + "2125370194946441846n", + "3460074836406938711660958301n", + "52820564261229479633548811299n", + "2919129481241566745n", + "6675772908450017734753351305n", + "65258735248680451317985314824n", + "2950671717077079181n", + "6822322071311459654365919975n", + "48497518547901827883287152419n", + "3243229764836791767n", + "72937532385990220357716354648n", + "19074513737405788027838151006n", + "1297437039234841476n", + "75502921753638151385835217223n", + "15306268504859852745422227938n", + "3143438951510181753n", + "3947335170074803838440311819n", + "62699530989773040321915910090n", + "3215975868729087991n", + "45236352461588188769215285451n", + "41706782526887442329166221445n", + "3168773580470738009n", + "75285535419605148224367004655n", + "20481966054007305592119557920n", + "1679995277184070400n", + "45190873120635261257451746066n", + "47696678647110719375889237738n", + "2068610507691385147n", + "9915927934978371252308896949n", + "31159305954355174048281405375n", + "1704598723840881213n", + "67338469563962359211325034773n", + "41738724864530875640824663606n", + "2293929193371443079n", + "34807312716413150046069343319n", + "70801066094208025212394559646n", + "2518515824100660756n", + "76811947889156401932764711781n", + "43817729339652461426643528955n", + "2039489180470709457n", + "38477432026452102589204844897n", + "27527167249603525516926315406n", + "1191468099071291308n", + "38041851156661687253492123536n", + "54288163040365572080441140556n", + "911480122138689106n", + "4974069079367885339264267782n", + "28880616750574662115261710630n", + "2834730446537796035n", + "55466841778289154595312506036n", + "47524577058256910308968549882n", + "351449977223840700n", + "62311990134227217524354071274n", + "75586193885025429015569590193n", + "545412183548073756n", + "79201290258654825630711427638n", + "77524373992410852423354047680n", + "552010389188782621n", + "13584773290145166716045719634n", + "57089761411485171751249424952n", + "1694608384682621747n", + "29538886750825184946212760314n", + "63894150012954354476012028271n", + "381542434687157486n", + "18078760560177937565267140464n", + "74003801426748288272147648907n", + "42337564080893923n", + "76689566315090503029029632865n", + "77474971819185712518886624915n", + "372114354534855369n", + "3011898200892081576513307862n", + "13966070005688554503624007786n", + "470413759528293312n", + "39357561183949775040925825237n", + "70682164693568724918268906963n", + "1376182782398783885n", + "41538213381429219620578361408n", + "42254768852299863792709628627n", + "3431309948863311296n", + "29234390314689913487082552719n", + "17916853178952663417328241903n", + "669291203853282419n", + "33249562629014821971547667642n", + "26222791431277453980835687680n", + "98534970627714358n", + "25021648199838864664290068537n", + "20665859250814395210947344246n", + "662389299694120248n", + "72307113898419621240789872204n", + "46323053668872253004980165076n", + "1041999687571616075n", + "8985042666921921648283132643n", + "74513886773734802806022422301n", + "2603455779145809119n", + "15411135359682619522278947280n", + "27784420314858949438220006926n", + "450671277926568052n", + "2831173742809690598851605179n", + "28386483802658122108161613621n", + "1424370976519373932n", + "31198231619878444700423211860n", + "42295311569311653123964908500n", + "2935759999014605210n", + "32001363507887263736668102660n", + "46912833713119636774180995741n", + "2092237369418424823n", + "78656477190391127646333527543n", + "41056006364555863740114989146n", + "2171263570612200061n", + "21422129487009930658303224502n", + "46206308103083011878154386775n", + "1874554378158482533n", + "36641496950703925635911572554n", + "48432166499307362117455688176n", + "362387825758837904n", + "27092632894596570716463916204n", + "20108561967338242154648349930n", + "1880193076762165445n", + "9593372273263129574197363679n", + "48018078028931030587694756618n", + "542974594247287387n", + "14814551631877080383283532261n", + "33496168748765220079451008919n", + "2250598863496646490n", + "44869586855816636221572912809n", + "41783360501362407212785286614n", + "2362538758680925884n", + "47048981182078605465642165702n", + "60518795030556750835816928982n", + "505511636936241905n", + "58024262056741504028876642662n", + "50138980925793649225004896980n", + "2579777888438614723n", + "6523114729709277602770738046n", + "28358393151053570058817793343n", + "3081381986289034984n", + "15900191280315068679181663660n", + "48577168032374944428952731072n", + "830974214184407623n", + "10274561196236136318135959057n", + "26148664358554534185218032007n", + "201377610767670386n", + "11368406426935765376362633788n", + "4122436782704069458424072833n", + "2934079973878820714n", + "66892750247258968804173976659n", + "76380379537218876441475920731n", + "3380019238411335234n", + "50717224916942478279258173891n", + "44470393688322556765105136550n", + "1813355330674964836n", + "8515532742277261388949469229n", + "33221912074775270762895168327n", + "2646766706385940242n", + "11140136119772415355412357379n", + "44150773111766484868566388647n", + "3191354614138223649n", + "30708778779429297397760149496n", + "67837687252340085721524474101n", + "3301367800510383551n", + "10954599956402707572521260184n", + "21030000566064580489911242942n", + "1828905939385555740n", + "26254579696623038244113820321n", + "76089322519690535032690356215n", + "868757520992376209n", + "77540171332511416804096348278n", + "10474304059709005130776549459n", + "1665346113039180866n", + "77071906535707552468440337167n", + "76416817616469856915552001970n", + "2619908781683664602n", + "40713576015254467501617369989n", + "69174809057973808586596761660n", + "364462143474967775n", + "3388865641890523266901884229n", + "46510386965164679950611269041n", + "2868959718371388528n", + "38291153048032659818161082470n", + "57992998428591158266306092260n", + "2140250223970187383n", + "74674643030181299821451279762n", + "61603307939095484817637012597n", + "1805808601029218696n", + "37221838450591689221386319329n", + "68301391492878568825616976727n", + "2237000809794684762n", + "11407285364976644693945059208n", + "25348058182926100240298110509n", + "3114508241594272017n", + "75356748694855659604450932050n", + "73487079967561788811810515931n", + "1490776583857675442n", + "54218989991798315687885361450n", + "20703329376060767478344708910n", + "2199487792587152210n", + "75111061944546058209924381826n", + "59244444067541601191271416829n", + "1581429188013860604n", + "52660822561915117683975147831n", + "47783082248718407900747485302n", + "1369252091872015433n", + "36417458042350421490821725117n", + "31829247002542379610343848353n", + "455784377300586483n", + "16833465703461845689857266397n", + "71194569481351283884295739145n", + "3189866189053900612n", + "65858387085894768841721032786n", + "42191857983305827191840357582n", + "666015291493419098n", + "27916318777227697186981470587n", + "32438460617546390776125662122n", + "3438854808891043135n", + "41197663088738641800559183911n", + "55140791537758229983041465056n", + "1162917064515090408n", + "59276808448795540978821008029n", + "55346073844723874343240998585n", + "2138546228419844587n", + "29861692804477614266603259375n", + "46434932953097909216915612814n", + "2786750119186865986n", + "2914382294411148824195592597n", + "47257202751523172671381039762n", + "108099711483611500n", + "42513194204119630092428609239n", + "7009779828784113435151735800n", + "1568976973765903017n", + "74506942497632859791810397801n", + "75159716442684547730197176733n", + "214522106108977303n", + "307807623661151452830127704n", + "69355418870826927485148435899n", + "1716229337114513433n", + "57800790680731912804700220994n", + "33865695886637783077735975519n", + "1521543041885052952n", + "61900084065708307372472439490n", + "9670136848396954396035168772n", + "705486756697563485n", + "65695693080875904861430309269n", + "42258749277647240519914054375n", + "1610937183743514752n", + "45949364456230722028956610312n", + "71318597512050155765983898976n", + "1419180020927833749n", + "16722582418318977044812304850n", + "64520646005354913944304541442n", + "1349757657977694032n", + "23453477023590312415905476662n", + "20988708348761074914346191082n", + "2734679321361253617n", + "3531335181910221180679210683n", + "77069908679139173478778593856n", + "3209489805214655859n", + "15423046625290420432194363954n", + "66544315732344216335597482829n", + "3417056483929987132n", + "23412416307661786237706973063n", + "52684903097691240819445939916n", + "3087013127443362602n", + "59516131369415164617233433764n", + "22552284363447521404574779744n", + "440598570727652332n", + "10078101871820643773664346515n", + "53180025648864462561753056892n", + "1238481677425258091n", + "66978851386839209947975732205n", + "76469976691658858609518100317n", + "2669015410315668427n", + "10462115063986428235746660388n", + "20612418707380044137824607138n", + "913149152876393845n", + "12896643578852573199148249630n", + "65916513826164228515537693476n", + "1689818392090951394n", + "48812924094784749209418690439n", + "21075229147504768099245857693n", + "2023634641390620097n", + "46841988916092209879920999223n", + "16626325630569367486087793088n", + "2520424161966279659n", + "66590657955425334169984583445n", + "43137455439307899619378709852n", + "119691013666955759n", + "59528138117541221723219264069n", + "6039238025418276887251147184n", + "1423016249189720303n", + "74476981597135756778074726485n", + "57871369440317946035711890073n", + "1799738956519083373n", + "61169922085945703273845146359n", + "58536191609701145724674103544n", + "678581665969651580n", + "29756753901276156089801861773n", + "37715386191992628222582900313n", + "1839293100231634062n", + "8545730587160341404066690935n", + "73310320371102040457790413928n", + "2943087579162219865n", + "3592679410576312851945554995n", + "63768122222562308688415150519n", + "2852416365710961566n", + "65734466853903663026216615808n", + "75611388663630224651662180524n", + "3082245111526479768n", + "42542028447397082553823280434n", + "15266201170439359558184400250n", + "2959319188559780389n", + "62084872176674708014188872797n", + "49471685826369556510350964812n", + "3044342635568692521n", + "52766810402300947123818998320n", + "57464266928926410524441305379n", + "2678492530248725715n", + "63759940946573266111589745544n", + "1239422070074535035165804970n", + "3011362073292317527n", + "5312425357216197805891517417n", + "8604490350019536611169668726n", + "1278264119461231226n", + "23413740732153092734953046582n", + "2351234330786062681522357509n", + "3063446156461791539n", + "31192263866697541487222909336n", + "53213425910476786883061415945n", + "3388535254355309510n", + "76222049202953784940228041093n", + "8232814450668299001215927167n", + "1010418058221874517n", + "30375045069912390061370886372n", + "76858962311200653420966476141n", + "2531834595530804919n", + "72838406196796824316965387556n", + "16107338032535514271932130242n", + "826038058455425888n", + "74047817357615679402104886971n", + "66250974048331219261305648117n", + "515372630941459652n", + "49140383045734318581810247391n", + "38552127106329617678305826510n", + "1791730195926210707n", + "20447547859709794457924179129n", + "52480964595913357482998508931n", + "419726983098458687n", + "20434453705733747059793719688n", + "22732218969594988459804019164n", + "721740589738128975n", + "63178390467425871623450374916n", + "58781628951232066578669558088n", + "1366096141210552719n", + "30310055907701667442250131224n", + "77693499391068805405178198648n", + "2419127900721456602n", + "72238281634987295743046110639n", + "2759706666093555363424148875n", + "2871042634310332424n", + "58186331935313172107712023092n", + "73009408672165436946758189888n", + "1138172672402058824n", + "45794206921224716587506811973n", + "50074044364882080121299615241n", + "201200847748951804n", + "41753381957343686084038148154n", + "16651255916405576823960096368n", + "744771251876887027n", + "6397253273640502791149864078n", + "67730045189242272443620838555n", + "2723512022810421168n", + "20403399159094844095476748628n", + "46114852246774129546878110205n", + "2163837250026966482n", + "63507059223060953171650485733n", + "27872394523028449929373211791n", + "1266384674015277092n", + "31341532803878701385180273244n", + "56274201404580685976997533743n", + "431470279371342601n", + "27146401285505116697408502780n", + "10909809704395711896795601995n", + "823727347575104764n", + "78157451508256479551851793287n", + "7934224114897115965586132150n", + "2561622534344592225n", + "52031374290403822978799313483n", + "75680335637831520600351100052n", + "2240257882085839580n", + "35818819658139744996071875447n", + "62532608351434239965548606901n", + "2997209098633992908n", + "35801460645260708494826382933n", + "6962199370752725968726753829n", + "471191881884558376n", + "51494347593311565178389849721n", + "27959136057874496572927068138n", + "2054885609386822401n", + "1903400454085938493722464234n", + "58252527737465224754126905441n", + "871049256780466220n", + "62266126172301828292957015888n", + "29942402306346798464030870789n", + "2439682690873113741n", + "58828716449315637847726991566n", + "33586884830050665361484057496n", + "1850240284198082738n", + "57256720773892932068692318575n", + "43906884659388043006991040937n", + "2567264210368699586n", + "37303325532466691611774319975n", + "1023775330119159065320215646n", + "2970467943548704391n", + "6719369853840095911284134964n", + "52698184868933442534169228704n", + "1590449702912303791n", + "9163234315649800019839577781n", + "5096786077915756093838027866n", + "2604014912333559946n", + "22626562141910724736547894073n", + "1221514787490597839172086118n", + "2021859363658276538n", + "29343228808229785648243946635n", + "17107161597392558070179986947n", + "2142074198041769333n", + "8295437982000203433981112803n", + "32281278698888589789154221048n", + "2261976931796110908n", + "19003064635652370381400548000n", + "5388386401569756312458644562n", + "3154333183807592746n", + "57635002029571841636737463711n", + "56991897992879623406006006725n", + "2842694143682003853n", + "73379904593405458046663259580n", + "839437272553377608023038726n", + "3093165198442302924n", + "33419448607193509624332386145n", + "16740311080067952025303937955n", + "666860562806181637n", + "8797571923563716660075774195n", + "75022438860744435659585766685n", + "1558560135470851650n", + "19713896344694960627284542368n", + "78388507052884523368130573724n", + "411547793569600371n", + "52610184319591489722152436723n", + "58886726417514761894083084350n", + "779286101129650524n", + "30697463792187334469128124748n", + "76836636996796091386778801556n", + "868461342532092659n", + "69910862714025895807766899173n", + "51405542117679167872600082463n", + "349470313771420560n", + "71284241241602654693194940143n", + "7305568034139166589777830792n", + "2498747200591008033n", + "67960797371315801691053786599n", + "25825479627169106615506743060n", + "454178144016317938n", + "35798135180239958015829265626n", + "23385623537498663178814541991n", + "1668508428339305051n", + "15450665342638866022354076708n", + "1590106122468359708599592949n", + "209939085635224246n", + "45146454297276439294547281947n", + "71363197518122470395685282523n", + "209021609080779353n", + "37805135405124328919729060254n", + "46916624974206570529290830921n", + "848835529094356500n", + "52127928532313726409293511873n", + "74341195298303002847160668677n", + "2836594795507658600n", + "21372610848069974970714546381n", + "47095482837411596424060733004n", + "2644188767312235257n", + "42696308717032907609441318200n", + "71478263091865254540527492446n", + "580612364877252066n", + "24227503011457277739411398472n", + "46210588161299166961443583909n", + "2104513243231016467n", + "38286987706753654842254500763n", + "52819390378718994903041839288n", + "2559971158277261662n", + "10804049422689166087510960068n", + "78494177681671393465658693075n", + "14482037543685577n", + "45316386224024264714051962520n", + "8077236619578691823690243326n", + "3134255926280338435n", + "58234835865881258067775424985n", + "32582539715376623121568222400n", + "895535831771370236n", + "70554522419104669983576590653n", + "40229753450332894247180991320n", + "3235640053820685715n", + "20050852574591066448348962700n", + "63154847355271958325521981335n", + "467978477141038832n", + "23115494614834363321936638302n", + "54275477858894789534235120579n", + "1729059077109549892n", + "2643222253937861530223901503n", + "4343013099917093534712467976n", + "2093250350291324334n", + "26606380640809280595919467519n", + "24158225122809122341718478436n", + "384623299034698779n", + "74889164947469453919523854509n", + "57684567535195905731154589750n", + "1155881533367487150n", + "40449699793338258794390721810n", + "45563605053974069206983967932n", + "1493349482130193926n", + "53198779688378832727006250273n", + "23250105681044235044335219173n", + "1649629209531042678n", + "31842301972458791163037611310n", + "54103172956148923849538705604n", + "1853082006782289707n", + "73283134292642541157328722326n", + "60011977393637178105550407258n", + "2931499730502310317n", + "30363774768400601902892824896n", + "69784527858977659878014965306n", + "2699700013359551525n", + "30143876784681103984444940141n", + "20508010382725323248422071352n", + "1472036335205806581n", + "72685268086241841913630448820n", + "13484287640917155024759235656n", + "421919482836501604n", + "58336665028159633068676496150n", + "37899530871095451514688032059n", + "830925861824953119n", + "25034909887778048695729760495n", + "6186382813048747659882138994n", + "928295656744287075n", + "23742999482526473077193706109n", + "38681524762823880972818454723n", + "1037267958137901699n", + "75848820697595803231237834330n", + "4098133930661194465828731453n", + "2484592940588499869n", + "45229057029317220478111498771n", + "55686910073377115986537207556n", + "2974592459022975650n", + "9058824958434584730691471305n", + "3489502058924586487278999515n", + "1985538445731248079n", + "14034347138268021040571737620n", + "22094509985004128313979725457n", + "1321434542301391881n", + "17216019289274156022312124782n", + "65908201923726532456265422977n", + "387610774042169114n", + "29699496552150641100894659868n", + "43552700176683532671663646633n", + "305525895851406027n", + "62068283835877161864738460092n", + "66163022436031594737849199513n", + "1671489056967612477n", + "5806077789744302022830084009n", + "22126371298319875265318066168n", + "2973075530852635513n", + "43508686549770752780288409207n", + "39960107195405145189624452517n", + "3021227579398645734n", + "75958919635020929694389722957n", + "14913897636015670404185010029n", + "2882183092458315590n", + "24239404766805006701421172975n", + "69450551382041986033230454197n", + "629979785699424851n", + "47715312965767193925496266564n", + "51328287208106789864582031889n", + "1994694450268216917n", + "12878968128402785600925987432n", + "8892728961399753099629106451n", + "2189564568474803348n", + "17841277261874434955985363634n", + "23255802008382153152915838079n", + "1299631183736247307n", + "70369295004394220674262548695n", + "41703500013750845131767430551n", + "2515279718642012557n", + "29363803518729226252949864837n", + "11941978972714945652777612780n", + "1864444849178365249n", + "19838910496936353855554382505n", + "63526654617675483693289584781n", + "1386561621225388054n", + "37964054821976413036136417123n", + "14531042297004730862055294756n", + "1592174811323575228n", + "17025415710900400219439375060n", + "362574756192905655380951625n", + "186982663000383695n", + "75302946272320992428390907104n", + "76356571252613340602107695667n", + "1005406788214614232n", + "58429545482092547095478867066n", + "8783598735519438107774246954n", + "3449009450489856852n", + "52421244757199560525245430831n", + "36745113142356116864221402917n", + "2011028989323540641n", + "52389389340233786555192956059n", + "48540948198567585375080843793n", + "2511738896308209966n", + "62948973448903767233283645427n", + "78581731009485419534613750974n", + "2631249803991736511n", + "15700178914629731044995270252n", + "21825209006850516132399941848n", + "469426094359884098n", + "45109950384963150442992909517n", + "34709270486045260410251674804n", + "3227700636384978310n", + "59508455528169337110518969046n", + "7626842288771897454076798332n", + "2837142952242233831n", + "78154898100541067453790359715n", + "28712940925290532622010374032n", + "2005548120880216529n", + "19676819626842762742496321363n", + "21494888704510312646126358022n", + "1917432403713999314n", + "35348767509581898437000853095n", + "54404372638473474714277538548n", + "1418295384476104455n", + "2087534038039694873601959364n", + "55492416744530703076122435501n", + "3415979290873032604n", + "77874081666239317555289078970n", + "64693269821438151662321973074n", + "468500022203866114n", + "52183552801284363909457374676n", + "26386627404911694711966206173n", + "849932193222808822n", + "60880246718709527470179169635n", + "73275749658065911543659109078n", + "2835936826164075331n", + "47034978948350796174151388655n", + "71774550150782116132727222082n", + "2957236831646338670n", + "63121833886036603562738575495n", + "23473953357667857038757232396n", + "709268300106945760n", + "67565011137450891785645904255n", + "24476510070022540670394808047n", + "2197500443692989620n", + "59529365216756814354926446285n", + "62380286296544401614193824725n", + "1797665767653557658n", + "65352576236492901270647039868n", + "54007112892683927216806385747n", + "1796075374294915397n", + "17840563634584466359434584144n", + "46203718678613515530978507404n", + "702053810505193011n", + "6133701316708198581434709723n", + "61802938904865726983656435299n", + "3001276128418418514n", + "11649452974115692944272358953n", + "18473964874994391830987882986n", + "2086271034138195481n", + "27934361651981769617523547350n", + "75412934231387879572695859186n", + "461672875728163553n", + "2659961698397651286244898268n", + "38244585026297070186059616261n", + "3371488902807027695n", + "16205200667874612181106188684n", + "6520317333544879950114099734n", + "2490923463723046056n", + "66034343348095027053141749239n", + "13522171761978136875076440765n", + "211626548808403729n", + "52060409492746050106971031742n", + "3493375676170587510122635686n", + "3394236868158496257n", + "47140116537527183288446191137n", + "26402419994251877186703235784n", + "2932509761218506683n", + "41718577718458247425998327137n", + "72444125720253366875907105723n", + "2370720516004120360n", + "63763546849180341189837833587n", + "56383249669741657007269755446n", + "2772609748811855948n", + "30673155381064993958540435457n", + "58923421149810821122915571284n", + "2826147464537959677n", + "2437524155719427333248486827n", + "13523745438577697843652059309n", + "2255306498837633258n", + "66617913651732723895666550762n", + "800383901932656375981050324n", + "2369057816442019000n", + "53894023794388536556779913700n", + "43633381247568199322500578225n", + "1622058361920748072n", + "31610597297695602711187104065n", + "75047413064993937787913175675n", + "2532518357458277794n", + "66943196821272189971919216455n", + "63057632269388325855862697967n", + "252919094746701796n", + "36093617934864267028615495215n", + "2458297172936844284200172721n", + "2861973034148611365n", + "35639326827089764975324431609n", + "42790455257345625520833632516n", + "2416491183110698117n", + "25453911219236829571892475695n", + "7792114184406477060828720050n", + "3256395018257219594n", + "44446878573785568457717214835n", + "31316823799089969829944488381n", + "3348254446631709920n", + "12075675278480009463346998871n", + "33336621394122897171138216323n", + "1761645290764169692n", + "38936491179522097211601163974n", + "40756936871275705147530952481n", + "2239620312855528769n", + "66166234417862875439766591001n", + "45961753617942718644070346235n", + "2545432639028408432n", + "27071931775260190706961952445n", + "16791652622063002274074642172n", + "1351810600008793720n", + "8734604468994364132650578395n", + "2915643774972349972943503710n", + "546123555763251031n", + "40883390215425903758829895197n", + "46075188532687982090196339471n", + "2037883374560027081n", + "1788529744899075811496881871n", + "22977601030754581206369105722n", + "2052641684479223112n", + "52403270166627919005596848880n", + "2330881363722503207702297453n", + "1950506519094245230n", + "26974012086112717010353138814n", + "69257122863702421096680142186n", + "731421312124744837n", + "31069884618093040515903738825n", + "64922032296511662760139295040n", + "2654253976131730717n", + "12166944124292618925625599356n", + "59407826445782768214824917874n", + "354147487414166550n", + "74336686733791433900827528675n", + "12704634481538804742936579229n", + "2082676564717138885n", + "72973759452587341786347077786n", + "29703734208301290276522637915n", + "2067816925523661903n", + "44140001258313735278199859280n", + "30358437273466120880384362938n", + "1032491038795740151n", + "48874617960058547069896032126n", + "32474862569324577439684934828n", + "2565332460413202117n", + "14465473659591664491585197311n", + "66349092618103844360620055485n", + "128575157546484074n", + "39003318153463851085520847181n", + "60595906928974680331945114920n", + "1233558283323773507n", + "28235541661696367758739481925n", + "54650564078640656755786408246n", + "948581610993436350n", + "52390925978355652282567775690n", + "69489317101356242161174540193n", + "1016620721333718105n", + "44682484847387584156652994185n", + "67002113562754354663567942796n", + "3169008886697917753n", + "21521800351163651826619425243n", + "28468229293760112362900924103n", + "3106044815056798782n", + "64289384627045471347034899444n", + "21395240471424659888107925342n", + "2389990634110040944n", + "5558440120008932694528968857n", + "25330928363440776593367343384n", + "746774273176043945n", + "2429305360237456636691563497n", + "39266567744784892575187587950n", + "792366915322109031n", + "190n", + "35201303926872119491363187343n", + "39200624059490958386431285751n", + "3393416942116110882n", + "5130722441260449785966906581n", + "6826282242711274667534619009n", + "175953595034053256n", + "36372914432107169633188190941n", + "31397365234316487899998842613n", + "711450504412561877n", + "77866480438920185748710050402n", + "4279212619824505622954675427n", + "962968101156720773n", + "24103551124269486202668849588n", + "11130972830601876441216307489n", + "893184258459491666n", + "69193811904361439959403735151n", + "52915912371712773799709217240n", + "570950775917859441n", + "54939789609796528700771617261n", + "12117783379072753356539237890n", + "1581116903901042554n", + "67496634076216081302688237803n", + "74495604156744339618591196101n", + "1413689362789722669n", + "60558410658396886623236813267n", + "54362306295838616844452379566n", + "3462692888110285930n", + "46601160641045708943575973674n", + "22657785267725651515395477264n", + "2540893510433578066n", + "25559907633591000839417753670n", + "66803247823467176006890040116n", + "1529769973554702363n", + "29841437217494788924228547359n", + "67184772344651716905410593588n", + "625675747496154271n", + "9827217054012018057431763206n", + "38580342860660073142578461484n", + "2817140696687660754n", + "46575625265145337175276247924n", + "32697034067774707146118540784n", + "3011446090876831528n", + "5271093022632786731229442228n", + "38726129390922048171827945072n", + "2217156708995046954n", + "42132917698594053659930418890n", + "77441215761462050733024375776n", + "2083758735650294380n", + "47743460986910581363781592550n", + "26859554267304965757813109594n", + "1656567376163667236n", + "35137117329378081211140823769n", + "60243236091112111901829479638n", + "3261955821062549129n", + "28358382509730554378855056972n", + "40056354765208955650509540184n", + "1883533328076610090n", + "31057640297193833879323674119n", + "13135810213042426656799782642n", + "1928373195980068191n", + "55761253093237817269509190310n", + "19165388911431711870765002488n", + "288177310041200621n", + "60799226684566905995062983914n", + "40207229733400293427021512033n", + "2650929947635557184n", + "29437177189026772048925638628n", + "77388528120917898327828524243n", + "305484959527306661n", + "47592972397876357669926112859n", + "3020005646539910166404520443n", + "3190863453458987605n", + "17015557973558762173505089855n", + "35191700003804211634668582728n", + "952612596261116166n", + "9375307689574390622949035417n", + "61354613352930601545872812648n", + "1683589775067171759n", + "60154108389233938793255784652n", + "48945403330058450293756368701n", + "1035482065698051995n", + "48447569243456888850015313383n", + "25814830290612690309150204011n", + "856977948611605169n", + "65272198023492246600324491107n", + "14554952163726621232808728414n", + "2062053292298286079n", + "69617298230609865098827681983n", + "10181270342950070947163024950n", + "2961873224281948835n", + "77865860634437363471851159117n", + "11518525950588256999085719888n", + "3140827286086615141n", + "67289814898748712687694720373n", + "55616979587066071621882452495n", + "671968441799647134n", + "36899669369105707004814227130n", + "47379737112610230221573994583n", + "920085910141384899n", + "13850743853602512280079293782n", + "5089371297253900377827048238n", + "2239346801304676689n", + "6013033712518981164461122848n", + "12696665847690995063491620655n", + "1045922789232343802n", + "73838480486926851002690242545n", + "11024247968089931574635022600n", + "1785739026827732795n", + "46709240116694401777143699303n", + "3928761352718085447710812207n", + "3167078457930209753n", + "1628411620074438399432304042n", + "79120825313446094504376504599n", + "3000986895148633142n", + "20311424959750264924872132883n", + "28982515945674909867411478286n", + "1562815756922582376n", + "41328654693727794541719230433n", + "37688731718109922922839904143n", + "2128686949308632744n", + "63918547392351342205099776489n", + "56244920370208046820481852610n", + "1738952791297540639n", + "42553727777815335999139478351n", + "74401676818038899194857584614n", + "1441223588421962343n", + "48501905549772929765056479493n", + "57196253776231730782817559363n", + "1329042466488131886n", + "42612242102090838639101211294n", + "23712228007378248006135499295n", + "1188081057948978113n", + "60808299854255156374059516939n", + "5037142183493324878785795698n", + "3377641427531405476n", + "2100033507624807185775577956n", + "66092391582904092111713233090n", + "1541686466154961556n", + "55667904776978470999771081004n", + "65782259532792810398109981385n", + "2678194758103578285n", + "46351605403518624328018612587n", + "71570189145139757572693098409n", + "137752718254727530n", + "32566894273154733946610261646n", + "2130040660771399584103495178n", + "3433460175532554864n", + "42283192781782572047009130491n", + "53195283663157854359737683955n", + "226578068878069549n", + "58787323154575198218922082559n", + "76514940467877062817538157919n", + "2170151004821396792n", + "16611896531741382600748135578n", + "23973320596472426785110273924n", + "2072924430898945448n", + "56522487831947510718774832933n", + "19703474499176160781849022337n", + "2945330921265220334n", + "56783422841518399023642676836n", + "38769563279432525044323505302n", + "1792299509242652359n", + "76167823672371949003240477400n", + "15033772560369672213689002724n", + "1369661826848479714n", + "57575850008227013534366623613n", + "9429773178147366060969953113n", + "2356450487368726474n", + "66039836579922335205774780899n", + "29305203315228583960894597733n", + "2916190411237443294n", + "62858319877555741683898610262n", + "77386927307827392438266837784n", + "2511329216246811555n", + "70441747233284664135679667980n", + "38636454217815285446563785723n", + "445854414890438948n", + "24981662323868189876596301087n", + "72752733583697398221323060636n", + "1809802552603525385n", + "66843472464618460413168506534n", + "22562062348613238493423411427n", + "2543043338711138267n", + "27822522723722914003779779054n", + "70553533529989712899011629037n", + "2009965107178178528n", + "41145654027642654382154045441n", + "33316040825580853635158289461n", + "1252347873187657129n", + "14195611144746543080825466319n", + "3407770987743222093411188154n", + "3403453824283325760n", + "77199977102298348629704937208n", + "31731941704004336833312531577n", + "3114592409653948417n", + "7082891359680238712484596898n", + "36813294676505780861528211839n", + "2296586694800766015n", + "70341804842672009622871958383n", + "64787100294434991758166332089n", + "684630955513640653n", + "23627073378371702512100491818n", + "67179406416584740783220132116n", + "1357682412528821803n", + "2679265488258494083925014071n", + "37109873815404656380557618026n", + "1127066617660372163n", + "32980549985182280899200208848n", + "49972857657669072050800815359n", + "2224829721975430416n", + "72929313298373333698671436085n", + "53706180782508338412265116928n", + "2345264634375706259n", + "25600116071059235957929539774n", + "21469247810821625206615495609n", + "1284644432869212953n", + "52581652408757810789394635434n", + "29131664108202548843582785870n", + "904339045760670348n", + "4798855127186408145093474279n", + "25593999412234523225948102223n", + "654037355967384889n", + "3657213402389600636244772383n", + "24133147736054748340766777127n", + "1396486180283262520n", + "78699320366651548922305948488n", + "69230814784074744434577385445n", + "3098132099441744380n", + "19644784263306430222376184614n", + "39352365321909965982286711008n", + "1097135362500605198n", + "22504884281040026520566615667n", + "51884310716816502189020510501n", + "2836879063584194940n", + "31564868821682863565046249637n", + "69399383443221313434464347907n", + "337835635995040157n", + "77484391777362423277126784135n", + "11986692619447741790084961217n", + "2619589882560292156n", + "55547759500726924350706149721n", + "17502197066849036485159796720n", + "3288955261957797426n", + "77195073787908022779049329769n", + "51238689806904152799533816559n", + "2902656369373522432n", + "66836221713819023953318512262n", + "30501774163107141437775800261n", + "2677692465649787464n", + "76245923481521701260558672164n", + "75457145835842899954569824276n", + "2950949770498563032n", + "25075661441972511124816716310n", + "51986286084014553654599003767n", + "3209171396020260216n", + "13218845202818396335134174792n", + "25547194437477958442682760572n", + "882225404441623442n", + "69914875188950207440235097203n", + "70199578745164541446110091916n", + "1357784045169413028n", + "43320786783175440339572518455n", + "35286989115778570412048883295n", + "3245655897355025440n", + "11580221946358483026643910212n", + "43414377877991154114375552714n", + "1146796406253097440n", + "17419013178925902351125669980n", + "19443734017483244776169430363n", + "46141882095098048n", + "8509181823114447743684103155n", + "21773389669210291571358684709n", + "293567078455314752n", + "71890768140184100110325465253n", + "32947359154902603245033356248n", + "2095767513471253062n", + "66612057726180846539892110591n", + "58228796938658089225696147738n", + "2195968911090520286n", + "1109993388422429661761631241n", + "22346582292377463495482260406n", + "2001066859090391140n", + "35881299508492663696062741525n", + "3717272605662631325590315531n", + "2150876750673299177n", + "32330394168112692961657727641n", + "58472199194667412587301482601n", + "683145818063708680n", + "780866688393577616874972293n", + "2484017925737855158498827859n", + "1946164710667286644n", + "24949672542982775874442945268n", + "78926592473575507217479867337n", + "539802847395835576n", + "56117008756050384582147823528n", + "43210853541622432183725156653n", + "2150663169634545096n", + "61579369092219089182966568720n", + "47582006983687603144738928893n", + "3124871084038651121n", + "20472604303699532705442132839n", + "55026790452919266777016889796n", + "2128553976965398209n", + "65042066402159517855186655704n", + "25834286024900757312561871223n", + "3153460278111732024n", + "2030649483792876655509387794n", + "31251460673520289934513163341n", + "2314202421394708798n", + "38898507655714044335469213287n", + "17766913045336064637455159601n", + "5772612758153592n", + "53351718994883410862516374446n", + "29801786398373019602386521929n", + "332518094768871387n", + "20014752107409814777501788862n", + "30545630513989571559621232703n", + "2905341310728908891n", + "41776391657198710555140374062n", + "72771134939139300460786768127n", + "72835700930130544n", + "62519373408589123636846113266n", + "30609899521982774212363668403n", + "3102951214589405748n", + "70025140397226837422549416680n", + "40592093639220464458845352747n", + "2347241753120297608n", + "45468192631571138571591665077n", + "26558823675732211497626649030n", + "1629416479528531955n", + "25801876090378717694003287495n", + "72714857660939158368507064084n", + "1764408786552028634n", + "47018572464410011443515455943n", + "52662920195362571012049090020n", + "454834057907282043n", + "57331496668953277296232816838n", + "33057818018021391843587257854n", + "3030763542145120274n", + "48443191019437422815507694667n", + "36934156921693139330074491119n", + "243401061232079827n", + "67385403122763135721667904114n", + "17785169761217765132246283784n", + "924708906342822055n", + "24368340584512161086502262522n", + "30550074161540509118618024477n", + "1647445399378987715n", + "22621857170588920686193026082n", + "70812007388389655871877402244n", + "1694083210670991305n", + "41347708096645830091114899476n", + "16037061913312522369505887616n", + "2497665959504793000n", + "67139303310464850804293957278n", + "29407657655389872029903395295n", + "1231700583895634138n", + "37186266588661031020364276823n", + "64331463645686241180031890307n", + "858007349645516242n", + "17453975067968526676927428902n", + "38794176949661087662172044849n", + "1932865250829663127n", + "70732789694653075375453637240n", + "48517950398808253845315914303n", + "1533683325669917693n", + "7590544657622663597186569999n", + "16972876382471665202433633383n", + "1600415365643134371n", + "78975951800277999885019988149n", + "27654411992063671107921755807n", + "3369953252850191561n", + "46043479816389332953445183683n", + "62532324852159742926567583231n", + "2731831590624761579n", + "26498461135763945608035183326n", + "48445518704959114181801065120n", + "2394765299580634398n", + "56028805977151038638420781436n", + "58141016313899417321335845605n", + "3462767125728514499n", + "75681482851168385218717491708n", + "4473698216036325355609931639n", + "3310202237706351301n", + "4504293916651623254906206743n", + "68116538030159503197015998251n", + "2889579290083727600n", + "12434420748880011857929530692n", + "33628508197938600895312561499n", + "3159831169743527270n", + "67109016324114818146303701946n", + "55351850463436105459577302775n", + "385986569608202030n", + "36242789260155546497441666197n", + "31732511889478314960659605156n", + "2920600915566823827n", + "48509474254963854734887661334n", + "8079251563824083202330240595n", + "2665801320330421918n", + "39660864646747352477904319746n", + "59651821222898457546636978442n", + "1531034568313238345n", + "62788969625927152028379816160n", + "24744138610672787038055730138n", + "1310233222719201614n", + "23792614446481923487153090977n", + "79101023625960187009131465639n", + "227407773153051293n", + "57267184243278003604986979966n", + "42305211890537745328413201800n", + "671233697941573096n", + "39762406528144274936805413969n", + "343364987272833939858341150n", + "1959484601961092056n", + "54544135238917175005216161289n", + "13912546675010052160684729099n", + "3014313683216149380n", + "18136356730134376051249726819n", + "11425153178165482142021848242n", + "1645167436823042465n", + "69571690242030224297860713080n", + "20000296908210530511281947906n", + "2951984515066408617n", + "68935557612334200108120846094n", + "9599874776655508661703447912n", + "207537289235118400n", + "38005039110469828198737233452n", + "57117939793780663528591877230n", + "657310159275772585n", + "48190942309941762977700829286n", + "35380709350708768203415160193n", + "3486923002519738515n", + "53309628735245870295401785697n", + "6898290035436010984009341789n", + "2238682903059000966n", + "26252436214956385472199538349n", + "5398316484357388778003944642n", + "2017016520050129083n", + "18728180890682502663677205457n", + "75985790035999193686176922173n", + "871191822818490491n", + "26090995461462189401947080714n", + "8010181523913519495898879640n", + "2760750294481345789n", + "12571913368726887078094710986n", + "67038533933130467009640942091n", + "1356907102326461067n", + "2409336986166143567183486273n", + "26333849491012167896177513936n", + "2081931138702581350n", + "22178579495456933698065784747n", + "10494019184295301135848443719n", + "1556823910319985542n", + "58667315150272390380921815777n", + "44158865836751938500365655728n", + "2897305038233402061n", + "74095183896289472526655350256n", + "46602083399223413699892771385n", + "2939040058840712678n", + "56134945160702746550200312909n", + "55594024588721990973305872113n", + "241727020334505816n", + "19092625518251024820060605981n", + "52805176561283013852649589318n", + "2630183511003809185n", + "40142471166039256274323308618n", + "69028082091732345035280035260n", + "731537512902501193n", + "54452821361994624741653790280n", + "5480588108130430397591687207n", + "1966495710156437100n", + "54225506703398647510402637329n", + "71078272160741272276482248236n", + "625726620356390685n", + "10873694895066196894600492408n", + "42543865621829980680582869471n", + "659085478864973940n", + "24570812645438042915544691872n", + "38864422867994097111701162358n", + "108264660254998622n", + "15090579651764708135114880383n", + "6847932611991509071357257069n", + "3002519760345855057n", + "67172930987791999954069226303n", + "57897525199993249176161053378n", + "2915445250377403217n", + "48211115939559742352322228669n", + "3041971302836179255332835905n", + "2031433350373049244n", + "6702059784866514136668283850n", + "60090798174975851190351671198n", + "1539442667927689602n", + "10555206956770682453196311300n", + "60174320015124794428742548117n", + "3219514787369094630n", + "33581130649629556907511838149n", + "68936014066717219797472330229n", + "2202566843302550128n", + "63246205799832702388628292822n", + "50766419118828752565980214424n", + "702948315686353336n", + "10588037026087823902566620931n", + "31944872868634567722701653259n", + "35592220254698076n", + "18543232582912428355348562511n", + "50848342948013759405790941928n", + "2042054766705480118n", + "75785091112505749098959662874n", + "33468770634430484055281758384n", + "2515019705715000373n", + "8378376338147643928768798662n", + "12530533155876786053202214269n", + "2727583334873636791n", + "77899012542093403472222785656n", + "11198541105926985132377308478n", + "174561331384082375n", + "21495637682655463985272268626n", + "66647744985496666360930881126n", + "405121961932952414n", + "8785728082360554623230657907n", + "16306316690895485216543647677n", + "2693176818970082429n", + "67847687393284529502747235461n", + "75868253612879612148702490532n", + "635425144875131615n", + "40160884413239877062079330770n", + "63164369256178816648228971849n", + "216810198294116243n", + "36435168126906960353056024299n", + "3149419224920838431230970634n", + "1871893333982790509n", + "64560732618471515378295795553n", + "45792311383220222353974633032n", + "3484115525993152817n", + "22542187253833075358391555832n", + "32913490894672208577258857076n", + "813295300489516673n", + "72008937925863542512102402771n", + "63373906192857921439647992395n", + "3099919762468324319n", + "2392718323049577722069945988n", + "6726604907914697504274405051n", + "1908730698260696759n", + "45303405148555861234318904018n", + "13840437113932916703521888532n", + "737973910436366111n", + "11242380504387923425774560196n", + "65118374650171371803597834265n", + "939001365486112822n", + "67975566324245959520301671802n", + "4473437818272725879708178573n", + "3208261445017504752n", + "30014808206157543806080228554n", + "66463240171753092120432610074n", + "2435993957101269390n", + "25504128195718610529905683318n", + "45705415444312786927978463556n", + "1045631128695025263n", + "19343065393931212261663604105n", + "48433465108497519532696527919n", + "1643955524026831567n", + "61967979823357631114053339146n", + "11931295683566487093852093716n", + "100280846773001002n", + "60176707673382247806625891599n", + "14685765931054596220352916055n", + "1414975013856289364n", + "19159675325188029964508933203n", + "71168335347143199690179041027n", + "3459000704647014558n", + "53017258852314779784871212634n", + "71597413066169374377964038634n", + "863719515279735604n", + "49267123322147562533247340370n", + "34809549368288410549249367594n", + "1802256555976892720n", + "32488293328284077378113325483n", + "63994087293938357079448722422n", + "3430579745765945694n", + "68044606980231349008143649733n", + "78178074980646262021475964266n", + "3303695234936873546n", + "36250845172027127549601304699n", + "7940006871355541625212459589n", + "1358280933229140597n", + "15621186773945475826007876994n", + "49200990726906764032939211762n", + "3297411787341585376n", + "44178322514207300517286794896n", + "1309109795551718989306628832n", + "1786635848544738041n", + "34458406924637261553644235535n", + "78049086711268561469882753998n", + "1099497319188604429n", + "3475313089381131723054722060n", + "6689323677917312565405995513n", + "2155662382779821326n", + "71165004495601531443113264340n", + "74552476918126801039538032619n", + "163118249154587626n", + "22716028135425394548575618606n", + "77862367616336570154310133149n", + "2252905518646090223n", + "285n", "0n", + "1n", + "80n", + "1n", "0n", - "2n", "0n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "1n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", "0n", "0n", + "1n", + "1n", + "1n", + "1n", + "1n", "0n", - "3n", "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "1n", + "1n", "0n", + "1n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "1n", "0n", + "1n", + "1n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "1n", + "1n", + "1n", + "1n", "0n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", "0n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", + "1n", + "1n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "80n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "1n", "0n", - "3n", + "1n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", "0n", + "1n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", "0n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", + "1n", "0n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", "0n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", "0n", + "1n", "0n", "0n", - "6n", + "1n", "1n", "0n", "0n", "0n", "0n", "0n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", "0n", + "1n", "0n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", "0n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "14965340338269765916748077654n", + "57444243079201776417400567235n", + "1222043622063448251n", + "0n", + "45539325815258009214048517949n", + "74029159877207687841315755286n", + "1315758075496492476n", + "0n", + "64882742742693735388703795217n", + "4844949128497544036649211020n", + "3182147294707861679n", + "0n", + "4496634234616189055928626901n", + "67033373151134842408497997482n", + "3384857135886447649n", + "0n", + "56260549620186665298313904338n", + "17935165051002398782181590032n", + "2907893131822920343n", + "0n", + "65216326003597682399222737495n", + "3298048581226412665864466074n", + "532058165305353173n", + "0n", + "4n", + "17534649174740286439617184587n", + "61624521448773719666652547400n", + "1583544831807099050n", + "0n", + "23580985120896688091134062209n", + "57090176069460711056973300755n", + "1132549516279179782n", + "0n", + "69267242672670352112011089825n", + "17669721875886136828099769177n", + "2507931255464886054n", + "0n", + "55290945981010563287452434069n", + "57369263824033760062566721198n", + "619421959802267457n", + "0n", + "5n", + "61220558198970810332002781419n", + "38489653625751659528596235346n", + "474544792344147439n", + "0n", + "73851216425788783229570215676n", + "57544280229734741213839304340n", + "824332013690674407n", + "0n", + "70640236490363038070108610250n", + "72048683011618337952639947412n", + "3283882621335138308n", + "0n", + "45766176129023615739100671483n", + "78938635897312369942467299842n", + "1543825017605003289n", "0n", + "1n", "0n", "0n", "0n", + "5n", + "31155655935624063764508754430n", + "35049753162015102915755571760n", + "55875346095182683n", "0n", + "75318843718093868842741179425n", + "31133663375247545639771122083n", + "66887240769048153n", "0n", + "53548803199970406176497915706n", + "48759655290725258023700284n", + "2897435443006199088n", "0n", + "55389289662485897334815256801n", + "47639017193033623227742014280n", + "3206472460595717423n", "0n", + "15201082213786740520291596162n", + "39703663558483688931576154384n", + "2690165326117272564n", "0n", + "8n", + "25205349568383755808920443585n", + "36240798362990640992244755704n", + "1423634377032442318n", "0n", + "63097324248837674501622746356n", + "14176515660675548454430012350n", + "2472996041072023223n", "0n", + "68044534632045954263224623568n", + "22833316355344197340616352411n", + "2877651330399473595n", "0n", - "5516503785001221521227164944n", - "40413566861187335218189028200n", - "320792509372162342n", - "0n", + "7738755395123571185438266773n", + "59806951206536854707030464457n", + "1619021578356186643n", "0n", - "1n", - "1n", + "73851216425788783229570215679n", + "57544280229734741213839304340n", + "824332013690674407n", "0n", + "70640236490363038070108610250n", + "72048683011618337952639947412n", + "3283882621335138308n", "0n", + "45766176129023615739100671483n", + "78938635897312369942467299842n", + "1543825017605003289n", "0n", - "2n", + "1n", "0n", "0n", "0n", - "1n", - "10n", + "41430774384038274715812872239n", + "55959887789790995799093598095n", + "1435809624122226624n", "0n", "0n" ] diff --git a/tools/npm/integration-test-suite/packages/nodejs-ts-esm-tsc/src/examples.ts b/tools/npm/integration-test-suite/packages/nodejs-ts-esm-tsc/src/examples.ts new file mode 100644 index 00000000..22bca972 --- /dev/null +++ b/tools/npm/integration-test-suite/packages/nodejs-ts-esm-tsc/src/examples.ts @@ -0,0 +1,125 @@ +import * as garaga from 'garaga'; + +export const proofBn254: { + a: { + x: bigint; + y: bigint; + curveId: number; + }; + b: { + x: [bigint, bigint]; + y: [bigint, bigint]; + curveId: number; + }; + c: { + x: bigint; + y: bigint; + curveId: number; + }; + publicInputs: bigint[]; + } = { + a: { + x: 19326975765597999023026309242851464618295625967876195641207265702903971944714n, + y: 63835113064883221423828958902442994957834669122245713027012799265225733314n, + curveId: garaga.CurveId.BN254 + }, + b: { + x: [ + 15926258242285065430281020483827261910589109953358642697562602626998569607754n, + 15482775443177023962384497625528997151098293635727021527127534892096530509952n + ], + y: [ + 10937776115245591292644949547008094885240742374542777857501160790374675834371n, + 6691169928456984700056024515478772626466687376966760922939239504103847739755n + ], + curveId: garaga.CurveId.BN254 + }, + c: { + x: 18548825552947889373136407684636046437705490810597995577018381312170231914454n, + y: 9890815383090898074006770716054740281870916546141552254207684185588486179606n, + curveId: garaga.CurveId.BN254 + }, + publicInputs: [ + BigInt('0x1e17db88c1d2e83e49f692cce4bb8169309de90afb2b141156243106aa34b474') + ] + } + + +export const vkBn254: { + alpha: { + x: bigint; + y: bigint; + curveId: number; + }; + beta: { + x: [bigint, bigint]; + y: [bigint, bigint]; + curveId: number; + }; + gamma: { + x: [bigint, bigint]; + y: [bigint, bigint]; + curveId: number; + }; + delta: { + x: [bigint, bigint]; + y: [bigint, bigint]; + curveId: number; + }; + ic: { + x: bigint; + y: bigint; + curveId: number; + }[]; + } = { + alpha: { + x: 6763126530687886999315782887200758703366235230289874831627658839515656330867n, + y: 12297948670392550312636836114470404429657568989657927437959695771502446445179n, + curveId: garaga.CurveId.BN254 + }, + beta: { + x: [ + 15362786867599176251482538547160991918100063526460909721657878971551583339657n, + 3804423004921008809819632629079723167970572551072432396497601916259815496626n + ], + y: [ + 21885719103633717693283841528133243510750001708857084897139570082577218850374n, + 2076817281717432063622727433912740683541778328445173073030513609350245776784n + ], + curveId: garaga.CurveId.BN254 + }, + gamma: { + x: [ + 1505558511994093266228972967760414664043255115544025409518939393775943607863n, + 21131173266568468249589649137903719095480044620502529067534622738225157042304n + ], + y: [ + 4008759115482693545406793535591568078300615151288108694080317738431649117177n, + 18835856718271757625037377080288624550370480296914695806777038708085497610013n + ], + curveId: garaga.CurveId.BN254 + }, + delta: { + x: [ + 1497911744463986566314308077983046202449361313910668647770797503379177516252n, + 10829154948357654897792444316512827659620136273388886760324770466776134105520n + ], + y: [ + 10850392992008761830625471778404650447428083833210258292805429019728339148884n, + 12593805385728178657844996215584371401133999503150901444097670307277076679963n + ], + curveId: garaga.CurveId.BN254 + }, + ic: [ + { + x: 8279781786940010385190155571855963988492685408361021424114669994156938727612n, + y: 14410809027374663415870055712464930833085570569392210261413081131467855918386n, + curveId: garaga.CurveId.BN254 + }, + { + x: 10075286447651977124250383403562829564641026794366918560412684031493085120161n, + y: 13393494704849149158598989372790154670517815409968589728896053397011959461594n, + curveId: garaga.CurveId.BN254 + } + ] + } diff --git a/tools/npm/integration-test-suite/packages/nodejs-ts-esm-tsc/src/index.ts b/tools/npm/integration-test-suite/packages/nodejs-ts-esm-tsc/src/index.ts index ef166ff5..c358758e 100644 --- a/tools/npm/integration-test-suite/packages/nodejs-ts-esm-tsc/src/index.ts +++ b/tools/npm/integration-test-suite/packages/nodejs-ts-esm-tsc/src/index.ts @@ -1,4 +1,5 @@ import * as garaga from 'garaga'; +import { proofBn254, vkBn254 } from './examples.js'; async function main(): Promise { await garaga.init(); @@ -6,6 +7,14 @@ async function main(): Promise { const json = JSON.stringify(result, (key, value) => typeof value === 'bigint' ? value + 'n' : value, 2); const message = 'Output of msm_calldata_builder: ' + json; console.log(message); + + const groth16Calldata = garaga.getGroth16CallData(proofBn254, vkBn254,garaga.CurveId.BN254); + + const jsonCalldata = JSON.stringify(groth16Calldata, (key, value) => typeof value === 'bigint' ? value + 'n' : value, 2); + + const messageCalldata = 'Output of get_groth16_calldata: ' + jsonCalldata; + + console.log(messageCalldata); } main() diff --git a/tools/npm/integration-test-suite/packages/web-js-esm-react/output.txt b/tools/npm/integration-test-suite/packages/web-js-esm-react/output.txt index d4bb220a..dc6b1135 100644 --- a/tools/npm/integration-test-suite/packages/web-js-esm-react/output.txt +++ b/tools/npm/integration-test-suite/packages/web-js-esm-react/output.txt @@ -31,54 +31,24 @@ Output of msm_calldata_builder: [ "0n", "0n", "0n", - "2n", - "26217156025717979489861508966n", - "38732762661950955458369152605n", - "1690057079767624198n", - "0n", - "55776084338326874385161289385n", - "68135223798443788527711860040n", - "1743499133401485332n", + "4n", + "61292904915618517473537549718n", + "76424063491230657696617758542n", + "164100390290992692n", "0n", - "3n", - "75759116906411131289250842036n", - "1443316740970346987535705368n", - "708088064087366360n", + "59893860432479921089240889541n", + "23823463833468957056970670087n", + "2601996562330437957n", "0n", - "35793051770242617481071736722n", - "55598968341652892474344064376n", - "2778910202715604305n", - "0n", - "1n", - "0n", - "0n", - "0n", - "3n", - "19631865022986903110643570472n", - "75611758646426461743237732951n", - "853236432195926662n", "0n", - "11812074862058673201969127714n", - "39063420668175062792989597255n", - "1051876075291068046n", "0n", - "20990372166390382667110319757n", - "42018508523564723974054925340n", - "1475001652048253687n", "0n", - "6n", - "68821025690704718680664625436n", - "4329950222911040962607116106n", - "2124264192262099080n", "0n", - "42731142985949030089657953320n", - "52712334859712198499272653638n", - "1362734074540871585n", "0n", - "3n", "0n", "0n", "0n", + "5n", "75759116906411131289250842036n", "1443316740970346987535705368n", "708088064087366360n", @@ -91,7 +61,6 @@ Output of msm_calldata_builder: [ "0n", "0n", "0n", - "2n", "0n", "0n", "0n", @@ -100,8 +69,18 @@ Output of msm_calldata_builder: [ "0n", "0n", "0n", - "3n", - "1n", + "5n", + "1957209727941774081186492064n", + "73995994033502900377050207347n", + "2920028494258500243n", + "0n", + "14815917097266045351973271802n", + "43866335999743751425469215536n", + "1742440389359060858n", + "0n", + "67144078842460382505309213980n", + "3404562101888240111113484041n", + "869725021625300198n", "0n", "0n", "0n", @@ -111,14 +90,28 @@ Output of msm_calldata_builder: [ "0n", "0n", "0n", + "8n", + "68821025690704718680664625436n", + "4329950222911040962607116106n", + "2124264192262099080n", "0n", + "42731142985949030089657953320n", + "52712334859712198499272653638n", + "1362734074540871585n", "0n", "3n", "0n", "0n", "0n", + "75759116906411131289250842036n", + "1443316740970346987535705368n", + "708088064087366360n", "0n", + "35793051770242617481071736722n", + "55598968341652892474344064376n", + "2778910202715604305n", "0n", + "1n", "0n", "0n", "0n", @@ -126,107 +119,2309 @@ Output of msm_calldata_builder: [ "0n", "0n", "0n", - "6n", - "1n", "0n", "0n", "0n", "0n", + "72870418954466684377992322181n", + "41156025981776115551124813861n", + "1617542705451342307n", "0n", + "1n", + "632316186269555507073122696n", + "46594343671461732011923330988n", + "1612721764065542798n", "0n", + "1n", + "1n", "0n", "0n", "0n", + "2n", "0n", "0n", "0n", + "1n", + "10n", "0n", + "0n" +] +Output of get_groth16_calldata: [ + "2276n", + "561151868347580495583090954n", + "76095163897123765080010407949n", + "3078964875882710626n", "0n", + "68760071548346057889257256130n", + "33987009017980255890281589641n", + "10169520226989098n", "0n", + "27526525353537266686222475850n", + "14475456397330869216192753448n", + "2537199318039088506n", "0n", + "21536768652854740401912377472n", + "61033740543581523820282161323n", + "2466548432040548587n", "0n", + "49356715888972701601325049347n", + "69887821523610458575318250963n", + "1742488265497548861n", "0n", + "68106177540828336088045306219n", + "961134836681944563222599448n", + "1065964868903753173n", "0n", + "1800806384039658546158952406n", + "44097612892395787951554989634n", + "2954998394940821894n", "0n", + "57407696252580182379957914390n", + "68043785987214905719851221030n", + "1575697798130653691n", "0n", + "1n", + "64622861075918021861446670503650833524n", + "40000715384012656934033607729992139113n", + "65343516826393976703500119419n", + "64215924997604874724268545467n", + "988361220710881918n", + "30419768492628197858619568261n", + "27248300164153194572764431995n", + "2977039154666701832n", + "65685384868591218376868464427n", + "70847639348750339988496276918n", + "477777041053646529n", + "29991939756641252358878134746n", + "39295947558852310211017126572n", + "2815628384676858047n", + "41723516601424502403187247204n", + "17017221925427596342628818049n", + "440483370607139100n", + "10413180469465695361837522183n", + "19423959337400646488247227266n", + "1196856567711091031n", + "14918739433528640782272739139n", + "2386255189434407583576372032n", + "2110030772171629820n", + "66403863065153192042460667734n", + "26490228722781507311620127895n", + "1376925612093868452n", + "16095686441528704658448370761n", + "51022389018232154188872438326n", + "1610491282614910455n", + "37997039872158612927722452114n", + "76461913933066610895201145075n", + "951074374291802403n", + "71303405408633411813876113602n", + "65378028046199379258519780162n", + "2796976393851271662n", + "66043194162972766020432949924n", + "72668519642029141849369643840n", + "1767421250104456939n", + "34724757470958269778491338738n", + "67907574914053181941994051296n", + "1074861315591297211n", + "57811416502141401297494384261n", + "66717953782642686044297384228n", + "619071555217927229n", + "11747815192199388258706152779n", + "39655522309044272057593243434n", + "2667518659266923661n", + "74545987263802105943401974456n", + "25100780504941704736052597181n", + "1614091262172996678n", + "61496830641585942728225636367n", + "47520662928915336127912320093n", + "1483128622047069223n", + "60688370891239308805053347678n", + "6154252422157238786881911133n", + "1595810747040934713n", + "4083087877564984515505707949n", + "8098795933662806280871012387n", + "392529588828430050n", + "14388273410011291023320103380n", + "59643003630595652724715495246n", + "2978244255961784640n", + "73005708620970672578538518429n", + "64274822400727474231693975117n", + "824761225328685267n", + "58979395441344004425345087397n", + "50034285490796369376342018474n", + "1071577406066675668n", + "37552244383550540565443579029n", + "66651519402295869947385119697n", + "1816081760201573675n", + "48020280081371249748563352979n", + "19387797072717949389382225132n", + "1075380445499260082n", + "0n", + "0n", + "0n", + "0n", + "0n", + "0n", + "35717919122505863182793101258n", + "38321232967395819819318928199n", + "33653293845735846n", + "0n", + "0n", + "0n", + "0n", + "0n", + "0n", + "60126610212574038899502857656n", + "7521540037295293717633716927n", + "2853604986499631260n", + "35n", + "21051189327279847889561754607n", + "15679397574132606210591767826n", + "2165541175263187167n", + "11461504713279098434997837844n", + "29843864593792422920685859506n", + "1460931496621397613n", + "31444402670555100638844582863n", + "41564870089383627374040254466n", + "3317275169749288672n", + "72559701040108110454251376272n", + "22887416934578586124987839996n", + "233686850646424299n", + "51667851121405518271474152545n", + "8297160697759020633045233343n", + "2193876459774314419n", + "50048470992987075597478354517n", + "7622325433377464914372402739n", + "2354852892440837544n", + "51371930649223862037533589505n", + "79037515700470610379424985426n", + "3103776711054728122n", + "62017664743365054011497714498n", + "18400895627048394641412939651n", + "1348549913115407530n", + "68135824164391051249850625519n", + "66467776056179325801077769907n", + "21934170737946721n", + "43733194692565917370190335652n", + "20871497235942649279957719973n", + "668366294714005293n", + "69461224576101086641240237729n", + "66163212446743341874016516713n", + "2187872754580648643n", + "17220145241406859216639481755n", + "16637691490800642336304328427n", + "699908274655976347n", + "63497807423928467541336180608n", + "5826616601935275548523889948n", + "1995878641893268059n", + "45351336804917798268705814434n", + "32809386436253774870015191481n", + "2479634507910679085n", + "29902151727900563245652302915n", + "70978449320724687288838934154n", + "2324927884830925807n", + "70956000718854853515484101425n", + "18794223695576985859644098754n", + "851712710373510834n", + "10098225054790962506843798879n", + "23663666343921865703011477995n", + "2539135702270490911n", + "13745949463631524266514217644n", + "70097334773007528061348260208n", + "1449740726324507950n", + "77747255839650031066990598333n", + "33186206179829484467075523327n", + "3072781249488320507n", + "73980383885811324159893986758n", + "1765445723258696625718806089n", + "2271055079390534326n", + "65413433113844994807777190576n", + "48033870016967321544035758027n", + "486427727733872709n", + "26974899297726311987406093631n", + "5590641036960446176988521755n", + "827510576486023036n", + "29009837304935242599458620885n", + "20410410399336048506493809410n", + "1954580703151327584n", + "64135814011222089868428198367n", + "56261294792918650387740643327n", + "1226348411176360117n", + "71834179960057214052393522783n", + "46252419010406289556729694820n", + "1393685374555389118n", + "71368042768790547323904986882n", + "66161706759499128280107017373n", + "2031846388120562115n", + "21220965229609488481377288540n", + "63634474338013450603335409627n", + "821621475859559449n", + "18432973800914453913616171088n", + "8237366564750917100218776918n", + "3448970319177548904n", + "51266071561401723888120442902n", + "33637427514172279767467204013n", + "3304964589143840434n", + "38819453582756888614388081676n", + "38995523514738195349996597496n", + "2323381859757397191n", + "60884424754479179074928199128n", + "3834764671648885586861880739n", + "864611594127789300n", + "9851774469429652901432809299n", + "37101389540039872112071709899n", + "2559626381308197564n", + "406646090122284731360238690n", + "44652954714826373590985929530n", + "683398595921263332n", + "20271182213679030346920227775n", + "37600328594433178897257972399n", + "432396126057182521n", + "4187404064813213379278146332n", + "44537571235199588707429377798n", + "3148695479824963911n", + "25801656964836714839982503508n", + "51572074862943493111482365520n", + "1230107506438930488n", + "51625253538057090130489675612n", + "11815326077763625426679125713n", + "521507079758837629n", + "9648925458348520397354094791n", + "31712274845777377436963587786n", + "1997027570431487029n", + "67411860089204789431616372347n", + "66528411456550554620624110152n", + "186478859944874837n", + "61267275259145597446660035124n", + "8554664316600082912178209665n", + "2375445434845419873n", + "1589782365755830876261985911n", + "14834270454057237025174127570n", + "963005115183332390n", + "23249702285165109375700438720n", + "20760791667651963569657008881n", + "2149068190029611973n", + "74674158355316816901821060837n", + "13278131002009659818927519878n", + "992778641153509292n", + "8743794935416188942200722720n", + "51445266496970909016857135378n", + "438732749332832318n", + "64511635865187456937539832569n", + "68455428209776466334096458368n", + "1196547129512189429n", + "16652864649326843859619189651n", + "47031229552259361752165531n", + "1977848333533964373n", + "32230433718106499209616712783n", + "50152042404552913889735459326n", + "2647553318887157906n", + "15558003702184603194095500825n", + "75789384763919593972512743955n", + "3199452366147221980n", + "23639206276595496029173201731n", + "49198122874004051169498469698n", + "3017499313473475023n", + "14633623354742611699704494011n", + "13838793228838994907197164815n", + "1865567661799564691n", + "63554437295278917743885851002n", + "43774994641723817700539915508n", + "2096263880799998644n", + "39241367224191359271532780985n", + "11996031360599781980224407856n", + "669587303349757211n", + "70309465524306380398946854940n", + "69691793870844727391235380992n", + "1097884931999290463n", + "4880550284873697839328338960n", + "8683184578595981266384193421n", + "1704353262400573542n", + "43209925421984317108056960491n", + "71838424302727061831479195619n", + "1719485935656079288n", + "20281500369447070817728689103n", + "7827101470501627130702651299n", + "1802787150264131673n", + "46990609747636025825158033861n", + "44506561326339289883265865893n", + "168363193009253293n", + "72644600526598920979602995563n", + "23734595505295435652505772841n", + "3066825941193215846n", + "35922864395887621958431954121n", + "36164080296393340386782836739n", + "2806406594668460083n", + "9559608083309233656821926408n", + "21435397197883361901646100159n", + "1173438743001539534n", + "45502332725513884072895701183n", + "21110593816020485943815437920n", + "2156839344197406156n", + "14935455230205682855615996549n", + "3176509029633635649806564693n", + "2744065159326778800n", + "50144289937074876149408247339n", + "73476828119785067069284584679n", + "1137921320963525519n", + "7764782370318985672713086089n", + "35186333034809438599544173388n", + "2599319187054853443n", + "71090896326220687050059751719n", + "7138127862158940765217036726n", + "2525413991973636711n", + "74465662641034900763924596241n", + "64800563131735459820423413678n", + "467645211882593334n", + "35429207184442884958891366618n", + "32026071525343635101462583825n", + "732661589473603894n", + "53979236240639306101606255299n", + "42289323195165961060464784974n", + "2572678142594168339n", + "34781401150182625703506517963n", + "27502296245160796607775189158n", + "204754437845996963n", + "60295830689532650505249825677n", + "25033548320502415354132760311n", + "26918649856759092n", + "53883044729840223319972205798n", + "71229970233113264180243241621n", + "1096143763692361182n", + "23670625124894730163037915585n", + "66188859433247255337619139871n", + "2789875774976133848n", + "76287870172839315742103539908n", + "76696206429019592649532825371n", + "1140810575629679716n", + "65695197715200264171919419792n", + "64578697338608806055715988010n", + "1315508308085028070n", + "78097114957711978300958275236n", + "73435222529435448525954708815n", + "1357585460514972583n", + "7357385422266450818170168488n", + "41750638133784298446701227299n", + "2309087687582896396n", + "59893979186320257893680148671n", + "70073254756682993544223051173n", + "3379633857316028827n", + "63037751789054738563399308545n", + "22112638657428976200628648553n", + "1119955028522904661n", + "17789959924300679578888409433n", + "32036177498553475203925266628n", + "3282049411090141820n", + "28853440708133119682221591754n", + "53037088663773523321481680370n", + "33889236786700338n", + "47866115906431522995214087729n", + "65896044771509521496549322945n", + "1356170216477027582n", + "72025359186703704066599325205n", + "14290937382512145681745832413n", + "235291859370816977n", + "16739080450814900672563464076n", + "27155915888194232201712953259n", + "2201285100786606817n", + "79046757705903490925593572396n", + "41590525534061554138727710174n", + "1563993153777110442n", + "58644351226953768961970699175n", + "71513413355714071072616721058n", + "771468756865502494n", + "56315873417343912546874324750n", + "66995041844358703653717763298n", + "1564628505321775490n", + "68742094005504029111318961475n", + "43257881480227388188853022203n", + "2827885137176633354n", + "60013377537965180515452389042n", + "22615548017942376680894051034n", + "2778940717048846996n", + "30216926479141873412912870389n", + "67097866317972012436735650659n", + "1001082522948099952n", + "31879429787569811794175043050n", + "57916743777618192263856200515n", + "1477201521425100888n", + "63117110331861368443138300600n", + "24455052765578778318741183737n", + "3145320365602131181n", + "27504400622945393457424964663n", + "18149654277116955082138788671n", + "709865641588578406n", + "51203413602847718278618462447n", + "32871208476003646471375256821n", + "1972541565241208115n", + "79118404692942875097520377767n", + "48815069625306356145460113214n", + "2800168047740476387n", + "27090046108651136752525050251n", + "17050737426763583806790779471n", + "1273566324033923836n", + "49543917066569282928794484300n", + "10290628042158833070532221066n", + "3469066870558011680n", + "42005113796531220880503084548n", + "60064195130891515794312310901n", + "3245851193684195107n", + "37533982385009798315342336648n", + "10267823027838019609009260399n", + "2025345482262498605n", + "34864622598934340124988581388n", + "48347073555555495737374318810n", + "2673244105079290838n", + "75957016907360510463610401727n", + "23977086141109407077488719105n", + "732491745580907274n", + "64604276948999648627686221332n", + "3868070793275280858296301394n", + "1873653426250118454n", + "15570553586934053483564418077n", + "13639547122371116255200424101n", + "3229806347752382046n", + "69627176750917937037127756524n", + "77527130421629244161614984692n", + "2205592855904802747n", + "42359401661274759693285654733n", + "15319487818905735149374624862n", + "3299209455827802664n", + "913752139298990313523799637n", + "70257873178701883303322833580n", + "3363278906733915791n", + "3719386124896722977369262005n", + "53915264239484240561994801723n", + "1014563467864375643n", + "56643381820560944379080271087n", + "5451127454093963182673395845n", + "1647155594727927302n", + "74031948470913728924354306654n", + "67046184840603355661228918718n", + "730434808359892479n", + "58832815659134274668136294794n", + "44220894708044864609266466973n", + "428689828657455715n", + "26619728344740812354339350673n", + "55972705855091654840275771393n", + "597472825198654088n", + "1452568843776109298902292527n", + "48082065429135088437634332196n", + "1047157723497573338n", + "28285154322504134404521941699n", + "56070279326493931276099147353n", + "1647252454052220783n", + "65027676769817342180184568252n", + "12685362344487350979600199772n", + "1402500493179000567n", + "12668630001282077875777731433n", + "55553251572483079593258301341n", + "2382205981458202111n", + "50473524893888759380289559496n", + "52220217290909756763540198313n", + "2029638412495399688n", + "7502774623130712545083224028n", + "73425515727643581896824036686n", + "2771702310825972693n", + "4639820922586718498241340517n", + "46582679696898380484679332702n", + "2620580077787400940n", + "51782105270520932573551959292n", + "74517889523497564960562458357n", + "79055126752843995n", + "10925640711936519280913334701n", + "11947058347966705959371810733n", + "43716694970268491n", + "35453676805113974113471109604n", + "12015889727201641553493717139n", + "3275286259969106630n", + "70932279409438704808566723573n", + "47041530965489511382629531879n", + "1256401409005218192n", + "46895749660336733332848035754n", + "40261009687444665011442182710n", + "1306436215925446460n", + "3904962902077066763622365736n", + "36103992387013546339910627073n", + "1329335481346702678n", + "57853677844329075763360620729n", + "61001619991056325367390311148n", + "1235032555631976826n", + "58692146235938833274542664790n", + "14589363842493324627243766856n", + "578262325105051129n", + "37980379958779218087580100271n", + "57690546822788520479506631792n", + "3164185857728705638n", + "45598806448478931852264970697n", + "29033375842093843451718686864n", + "2812217528418815016n", + "9663261157782365056384592697n", + "44620211458433011608252253672n", + "2505651240889113840n", + "48502340833312690180905327065n", + "9352266604910376416980234379n", + "3341395763378874957n", + "35507650777754495555508745994n", + "64550352482963692428938364344n", + "1749731610964724298n", + "72801722493214401326730125326n", + "55956888553336351398608259633n", + "896001678647446033n", + "30516385505393014949750902877n", + "47315718952109319710441627150n", + "1388483706936013349n", + "32381991427814516368016795653n", + "59696292811917044385937202833n", + "618914335291991958n", + "40375787626773409929606022175n", + "64734613933900308276892757597n", + "2556069305521992095n", + "58654528682801174800851099376n", + "11593522535604870003716248394n", + "2125230714317219300n", + "8061995955571015171488513388n", + "47983447012081651413970228934n", + "855542739847145422n", + "59096469339608638609245068515n", + "7673808125695463322887566290n", + "1385253448294382073n", + "25340909062918393540888464015n", + "9795256553635962173776771050n", + "3012016973098277348n", + "33467611330524938973631050712n", + "7543431037219165063475505539n", + "448151223182465539n", + "22750106248651778926545160954n", + "25740569688692303261800730858n", + "1075240126364963450n", + "56338203997489686691769068850n", + "62119360873725897456686490753n", + "1222146081347045140n", + "27338323756657113133884361560n", + "21141429927442113006964516579n", + "462132336382397961n", + "4987343640321990641559943818n", + "58829032105334349895296634715n", + "3177465831253470688n", + "69096263705896112247403554129n", + "29492604434954899550510960365n", + "304239915265350366n", + "66375851691134826136210085333n", + "44757375154942980538763091305n", + "1112855489475878924n", + "70069037784938962740775503666n", + "12717652252841341839220495543n", + "2918096944668928835n", + "18321962109897171704378960368n", + "61813672462196073792006627549n", + "2734946711892636188n", + "64219561440442257822526755189n", + "8503031322535266331858567242n", + "3223902208326320319n", + "63116174136664698830215774786n", + "2759322304337380924973025029n", + "810068357014304774n", + "15698684552711747426349376896n", + "65762055793295617462571353752n", + "518270689795187122n", + "58150828468103287645001826637n", + "77452960139151639571846482697n", + "519559051146038460n", + "72625801975239649642036163890n", + "39078044248618521225250269350n", + "2190524057325078928n", + "27770888055874136986828633484n", + "41773083279140557423975570256n", + "2854828164966176931n", + "627836434493841003902237785n", + "77928664588771202997039373627n", + "330865869276931200n", + "52935592469577214913105764520n", + "20197659873511917804524429378n", + "2125370194946441846n", + "3460074836406938711660958301n", + "52820564261229479633548811299n", + "2919129481241566745n", + "6675772908450017734753351305n", + "65258735248680451317985314824n", + "2950671717077079181n", + "6822322071311459654365919975n", + "48497518547901827883287152419n", + "3243229764836791767n", + "72937532385990220357716354648n", + "19074513737405788027838151006n", + "1297437039234841476n", + "75502921753638151385835217223n", + "15306268504859852745422227938n", + "3143438951510181753n", + "3947335170074803838440311819n", + "62699530989773040321915910090n", + "3215975868729087991n", + "45236352461588188769215285451n", + "41706782526887442329166221445n", + "3168773580470738009n", + "75285535419605148224367004655n", + "20481966054007305592119557920n", + "1679995277184070400n", + "45190873120635261257451746066n", + "47696678647110719375889237738n", + "2068610507691385147n", + "9915927934978371252308896949n", + "31159305954355174048281405375n", + "1704598723840881213n", + "67338469563962359211325034773n", + "41738724864530875640824663606n", + "2293929193371443079n", + "34807312716413150046069343319n", + "70801066094208025212394559646n", + "2518515824100660756n", + "76811947889156401932764711781n", + "43817729339652461426643528955n", + "2039489180470709457n", + "38477432026452102589204844897n", + "27527167249603525516926315406n", + "1191468099071291308n", + "38041851156661687253492123536n", + "54288163040365572080441140556n", + "911480122138689106n", + "4974069079367885339264267782n", + "28880616750574662115261710630n", + "2834730446537796035n", + "55466841778289154595312506036n", + "47524577058256910308968549882n", + "351449977223840700n", + "62311990134227217524354071274n", + "75586193885025429015569590193n", + "545412183548073756n", + "79201290258654825630711427638n", + "77524373992410852423354047680n", + "552010389188782621n", + "13584773290145166716045719634n", + "57089761411485171751249424952n", + "1694608384682621747n", + "29538886750825184946212760314n", + "63894150012954354476012028271n", + "381542434687157486n", + "18078760560177937565267140464n", + "74003801426748288272147648907n", + "42337564080893923n", + "76689566315090503029029632865n", + "77474971819185712518886624915n", + "372114354534855369n", + "3011898200892081576513307862n", + "13966070005688554503624007786n", + "470413759528293312n", + "39357561183949775040925825237n", + "70682164693568724918268906963n", + "1376182782398783885n", + "41538213381429219620578361408n", + "42254768852299863792709628627n", + "3431309948863311296n", + "29234390314689913487082552719n", + "17916853178952663417328241903n", + "669291203853282419n", + "33249562629014821971547667642n", + "26222791431277453980835687680n", + "98534970627714358n", + "25021648199838864664290068537n", + "20665859250814395210947344246n", + "662389299694120248n", + "72307113898419621240789872204n", + "46323053668872253004980165076n", + "1041999687571616075n", + "8985042666921921648283132643n", + "74513886773734802806022422301n", + "2603455779145809119n", + "15411135359682619522278947280n", + "27784420314858949438220006926n", + "450671277926568052n", + "2831173742809690598851605179n", + "28386483802658122108161613621n", + "1424370976519373932n", + "31198231619878444700423211860n", + "42295311569311653123964908500n", + "2935759999014605210n", + "32001363507887263736668102660n", + "46912833713119636774180995741n", + "2092237369418424823n", + "78656477190391127646333527543n", + "41056006364555863740114989146n", + "2171263570612200061n", + "21422129487009930658303224502n", + "46206308103083011878154386775n", + "1874554378158482533n", + "36641496950703925635911572554n", + "48432166499307362117455688176n", + "362387825758837904n", + "27092632894596570716463916204n", + "20108561967338242154648349930n", + "1880193076762165445n", + "9593372273263129574197363679n", + "48018078028931030587694756618n", + "542974594247287387n", + "14814551631877080383283532261n", + "33496168748765220079451008919n", + "2250598863496646490n", + "44869586855816636221572912809n", + "41783360501362407212785286614n", + "2362538758680925884n", + "47048981182078605465642165702n", + "60518795030556750835816928982n", + "505511636936241905n", + "58024262056741504028876642662n", + "50138980925793649225004896980n", + "2579777888438614723n", + "6523114729709277602770738046n", + "28358393151053570058817793343n", + "3081381986289034984n", + "15900191280315068679181663660n", + "48577168032374944428952731072n", + "830974214184407623n", + "10274561196236136318135959057n", + "26148664358554534185218032007n", + "201377610767670386n", + "11368406426935765376362633788n", + "4122436782704069458424072833n", + "2934079973878820714n", + "66892750247258968804173976659n", + "76380379537218876441475920731n", + "3380019238411335234n", + "50717224916942478279258173891n", + "44470393688322556765105136550n", + "1813355330674964836n", + "8515532742277261388949469229n", + "33221912074775270762895168327n", + "2646766706385940242n", + "11140136119772415355412357379n", + "44150773111766484868566388647n", + "3191354614138223649n", + "30708778779429297397760149496n", + "67837687252340085721524474101n", + "3301367800510383551n", + "10954599956402707572521260184n", + "21030000566064580489911242942n", + "1828905939385555740n", + "26254579696623038244113820321n", + "76089322519690535032690356215n", + "868757520992376209n", + "77540171332511416804096348278n", + "10474304059709005130776549459n", + "1665346113039180866n", + "77071906535707552468440337167n", + "76416817616469856915552001970n", + "2619908781683664602n", + "40713576015254467501617369989n", + "69174809057973808586596761660n", + "364462143474967775n", + "3388865641890523266901884229n", + "46510386965164679950611269041n", + "2868959718371388528n", + "38291153048032659818161082470n", + "57992998428591158266306092260n", + "2140250223970187383n", + "74674643030181299821451279762n", + "61603307939095484817637012597n", + "1805808601029218696n", + "37221838450591689221386319329n", + "68301391492878568825616976727n", + "2237000809794684762n", + "11407285364976644693945059208n", + "25348058182926100240298110509n", + "3114508241594272017n", + "75356748694855659604450932050n", + "73487079967561788811810515931n", + "1490776583857675442n", + "54218989991798315687885361450n", + "20703329376060767478344708910n", + "2199487792587152210n", + "75111061944546058209924381826n", + "59244444067541601191271416829n", + "1581429188013860604n", + "52660822561915117683975147831n", + "47783082248718407900747485302n", + "1369252091872015433n", + "36417458042350421490821725117n", + "31829247002542379610343848353n", + "455784377300586483n", + "16833465703461845689857266397n", + "71194569481351283884295739145n", + "3189866189053900612n", + "65858387085894768841721032786n", + "42191857983305827191840357582n", + "666015291493419098n", + "27916318777227697186981470587n", + "32438460617546390776125662122n", + "3438854808891043135n", + "41197663088738641800559183911n", + "55140791537758229983041465056n", + "1162917064515090408n", + "59276808448795540978821008029n", + "55346073844723874343240998585n", + "2138546228419844587n", + "29861692804477614266603259375n", + "46434932953097909216915612814n", + "2786750119186865986n", + "2914382294411148824195592597n", + "47257202751523172671381039762n", + "108099711483611500n", + "42513194204119630092428609239n", + "7009779828784113435151735800n", + "1568976973765903017n", + "74506942497632859791810397801n", + "75159716442684547730197176733n", + "214522106108977303n", + "307807623661151452830127704n", + "69355418870826927485148435899n", + "1716229337114513433n", + "57800790680731912804700220994n", + "33865695886637783077735975519n", + "1521543041885052952n", + "61900084065708307372472439490n", + "9670136848396954396035168772n", + "705486756697563485n", + "65695693080875904861430309269n", + "42258749277647240519914054375n", + "1610937183743514752n", + "45949364456230722028956610312n", + "71318597512050155765983898976n", + "1419180020927833749n", + "16722582418318977044812304850n", + "64520646005354913944304541442n", + "1349757657977694032n", + "23453477023590312415905476662n", + "20988708348761074914346191082n", + "2734679321361253617n", + "3531335181910221180679210683n", + "77069908679139173478778593856n", + "3209489805214655859n", + "15423046625290420432194363954n", + "66544315732344216335597482829n", + "3417056483929987132n", + "23412416307661786237706973063n", + "52684903097691240819445939916n", + "3087013127443362602n", + "59516131369415164617233433764n", + "22552284363447521404574779744n", + "440598570727652332n", + "10078101871820643773664346515n", + "53180025648864462561753056892n", + "1238481677425258091n", + "66978851386839209947975732205n", + "76469976691658858609518100317n", + "2669015410315668427n", + "10462115063986428235746660388n", + "20612418707380044137824607138n", + "913149152876393845n", + "12896643578852573199148249630n", + "65916513826164228515537693476n", + "1689818392090951394n", + "48812924094784749209418690439n", + "21075229147504768099245857693n", + "2023634641390620097n", + "46841988916092209879920999223n", + "16626325630569367486087793088n", + "2520424161966279659n", + "66590657955425334169984583445n", + "43137455439307899619378709852n", + "119691013666955759n", + "59528138117541221723219264069n", + "6039238025418276887251147184n", + "1423016249189720303n", + "74476981597135756778074726485n", + "57871369440317946035711890073n", + "1799738956519083373n", + "61169922085945703273845146359n", + "58536191609701145724674103544n", + "678581665969651580n", + "29756753901276156089801861773n", + "37715386191992628222582900313n", + "1839293100231634062n", + "8545730587160341404066690935n", + "73310320371102040457790413928n", + "2943087579162219865n", + "3592679410576312851945554995n", + "63768122222562308688415150519n", + "2852416365710961566n", + "65734466853903663026216615808n", + "75611388663630224651662180524n", + "3082245111526479768n", + "42542028447397082553823280434n", + "15266201170439359558184400250n", + "2959319188559780389n", + "62084872176674708014188872797n", + "49471685826369556510350964812n", + "3044342635568692521n", + "52766810402300947123818998320n", + "57464266928926410524441305379n", + "2678492530248725715n", + "63759940946573266111589745544n", + "1239422070074535035165804970n", + "3011362073292317527n", + "5312425357216197805891517417n", + "8604490350019536611169668726n", + "1278264119461231226n", + "23413740732153092734953046582n", + "2351234330786062681522357509n", + "3063446156461791539n", + "31192263866697541487222909336n", + "53213425910476786883061415945n", + "3388535254355309510n", + "76222049202953784940228041093n", + "8232814450668299001215927167n", + "1010418058221874517n", + "30375045069912390061370886372n", + "76858962311200653420966476141n", + "2531834595530804919n", + "72838406196796824316965387556n", + "16107338032535514271932130242n", + "826038058455425888n", + "74047817357615679402104886971n", + "66250974048331219261305648117n", + "515372630941459652n", + "49140383045734318581810247391n", + "38552127106329617678305826510n", + "1791730195926210707n", + "20447547859709794457924179129n", + "52480964595913357482998508931n", + "419726983098458687n", + "20434453705733747059793719688n", + "22732218969594988459804019164n", + "721740589738128975n", + "63178390467425871623450374916n", + "58781628951232066578669558088n", + "1366096141210552719n", + "30310055907701667442250131224n", + "77693499391068805405178198648n", + "2419127900721456602n", + "72238281634987295743046110639n", + "2759706666093555363424148875n", + "2871042634310332424n", + "58186331935313172107712023092n", + "73009408672165436946758189888n", + "1138172672402058824n", + "45794206921224716587506811973n", + "50074044364882080121299615241n", + "201200847748951804n", + "41753381957343686084038148154n", + "16651255916405576823960096368n", + "744771251876887027n", + "6397253273640502791149864078n", + "67730045189242272443620838555n", + "2723512022810421168n", + "20403399159094844095476748628n", + "46114852246774129546878110205n", + "2163837250026966482n", + "63507059223060953171650485733n", + "27872394523028449929373211791n", + "1266384674015277092n", + "31341532803878701385180273244n", + "56274201404580685976997533743n", + "431470279371342601n", + "27146401285505116697408502780n", + "10909809704395711896795601995n", + "823727347575104764n", + "78157451508256479551851793287n", + "7934224114897115965586132150n", + "2561622534344592225n", + "52031374290403822978799313483n", + "75680335637831520600351100052n", + "2240257882085839580n", + "35818819658139744996071875447n", + "62532608351434239965548606901n", + "2997209098633992908n", + "35801460645260708494826382933n", + "6962199370752725968726753829n", + "471191881884558376n", + "51494347593311565178389849721n", + "27959136057874496572927068138n", + "2054885609386822401n", + "1903400454085938493722464234n", + "58252527737465224754126905441n", + "871049256780466220n", + "62266126172301828292957015888n", + "29942402306346798464030870789n", + "2439682690873113741n", + "58828716449315637847726991566n", + "33586884830050665361484057496n", + "1850240284198082738n", + "57256720773892932068692318575n", + "43906884659388043006991040937n", + "2567264210368699586n", + "37303325532466691611774319975n", + "1023775330119159065320215646n", + "2970467943548704391n", + "6719369853840095911284134964n", + "52698184868933442534169228704n", + "1590449702912303791n", + "9163234315649800019839577781n", + "5096786077915756093838027866n", + "2604014912333559946n", + "22626562141910724736547894073n", + "1221514787490597839172086118n", + "2021859363658276538n", + "29343228808229785648243946635n", + "17107161597392558070179986947n", + "2142074198041769333n", + "8295437982000203433981112803n", + "32281278698888589789154221048n", + "2261976931796110908n", + "19003064635652370381400548000n", + "5388386401569756312458644562n", + "3154333183807592746n", + "57635002029571841636737463711n", + "56991897992879623406006006725n", + "2842694143682003853n", + "73379904593405458046663259580n", + "839437272553377608023038726n", + "3093165198442302924n", + "33419448607193509624332386145n", + "16740311080067952025303937955n", + "666860562806181637n", + "8797571923563716660075774195n", + "75022438860744435659585766685n", + "1558560135470851650n", + "19713896344694960627284542368n", + "78388507052884523368130573724n", + "411547793569600371n", + "52610184319591489722152436723n", + "58886726417514761894083084350n", + "779286101129650524n", + "30697463792187334469128124748n", + "76836636996796091386778801556n", + "868461342532092659n", + "69910862714025895807766899173n", + "51405542117679167872600082463n", + "349470313771420560n", + "71284241241602654693194940143n", + "7305568034139166589777830792n", + "2498747200591008033n", + "67960797371315801691053786599n", + "25825479627169106615506743060n", + "454178144016317938n", + "35798135180239958015829265626n", + "23385623537498663178814541991n", + "1668508428339305051n", + "15450665342638866022354076708n", + "1590106122468359708599592949n", + "209939085635224246n", + "45146454297276439294547281947n", + "71363197518122470395685282523n", + "209021609080779353n", + "37805135405124328919729060254n", + "46916624974206570529290830921n", + "848835529094356500n", + "52127928532313726409293511873n", + "74341195298303002847160668677n", + "2836594795507658600n", + "21372610848069974970714546381n", + "47095482837411596424060733004n", + "2644188767312235257n", + "42696308717032907609441318200n", + "71478263091865254540527492446n", + "580612364877252066n", + "24227503011457277739411398472n", + "46210588161299166961443583909n", + "2104513243231016467n", + "38286987706753654842254500763n", + "52819390378718994903041839288n", + "2559971158277261662n", + "10804049422689166087510960068n", + "78494177681671393465658693075n", + "14482037543685577n", + "45316386224024264714051962520n", + "8077236619578691823690243326n", + "3134255926280338435n", + "58234835865881258067775424985n", + "32582539715376623121568222400n", + "895535831771370236n", + "70554522419104669983576590653n", + "40229753450332894247180991320n", + "3235640053820685715n", + "20050852574591066448348962700n", + "63154847355271958325521981335n", + "467978477141038832n", + "23115494614834363321936638302n", + "54275477858894789534235120579n", + "1729059077109549892n", + "2643222253937861530223901503n", + "4343013099917093534712467976n", + "2093250350291324334n", + "26606380640809280595919467519n", + "24158225122809122341718478436n", + "384623299034698779n", + "74889164947469453919523854509n", + "57684567535195905731154589750n", + "1155881533367487150n", + "40449699793338258794390721810n", + "45563605053974069206983967932n", + "1493349482130193926n", + "53198779688378832727006250273n", + "23250105681044235044335219173n", + "1649629209531042678n", + "31842301972458791163037611310n", + "54103172956148923849538705604n", + "1853082006782289707n", + "73283134292642541157328722326n", + "60011977393637178105550407258n", + "2931499730502310317n", + "30363774768400601902892824896n", + "69784527858977659878014965306n", + "2699700013359551525n", + "30143876784681103984444940141n", + "20508010382725323248422071352n", + "1472036335205806581n", + "72685268086241841913630448820n", + "13484287640917155024759235656n", + "421919482836501604n", + "58336665028159633068676496150n", + "37899530871095451514688032059n", + "830925861824953119n", + "25034909887778048695729760495n", + "6186382813048747659882138994n", + "928295656744287075n", + "23742999482526473077193706109n", + "38681524762823880972818454723n", + "1037267958137901699n", + "75848820697595803231237834330n", + "4098133930661194465828731453n", + "2484592940588499869n", + "45229057029317220478111498771n", + "55686910073377115986537207556n", + "2974592459022975650n", + "9058824958434584730691471305n", + "3489502058924586487278999515n", + "1985538445731248079n", + "14034347138268021040571737620n", + "22094509985004128313979725457n", + "1321434542301391881n", + "17216019289274156022312124782n", + "65908201923726532456265422977n", + "387610774042169114n", + "29699496552150641100894659868n", + "43552700176683532671663646633n", + "305525895851406027n", + "62068283835877161864738460092n", + "66163022436031594737849199513n", + "1671489056967612477n", + "5806077789744302022830084009n", + "22126371298319875265318066168n", + "2973075530852635513n", + "43508686549770752780288409207n", + "39960107195405145189624452517n", + "3021227579398645734n", + "75958919635020929694389722957n", + "14913897636015670404185010029n", + "2882183092458315590n", + "24239404766805006701421172975n", + "69450551382041986033230454197n", + "629979785699424851n", + "47715312965767193925496266564n", + "51328287208106789864582031889n", + "1994694450268216917n", + "12878968128402785600925987432n", + "8892728961399753099629106451n", + "2189564568474803348n", + "17841277261874434955985363634n", + "23255802008382153152915838079n", + "1299631183736247307n", + "70369295004394220674262548695n", + "41703500013750845131767430551n", + "2515279718642012557n", + "29363803518729226252949864837n", + "11941978972714945652777612780n", + "1864444849178365249n", + "19838910496936353855554382505n", + "63526654617675483693289584781n", + "1386561621225388054n", + "37964054821976413036136417123n", + "14531042297004730862055294756n", + "1592174811323575228n", + "17025415710900400219439375060n", + "362574756192905655380951625n", + "186982663000383695n", + "75302946272320992428390907104n", + "76356571252613340602107695667n", + "1005406788214614232n", + "58429545482092547095478867066n", + "8783598735519438107774246954n", + "3449009450489856852n", + "52421244757199560525245430831n", + "36745113142356116864221402917n", + "2011028989323540641n", + "52389389340233786555192956059n", + "48540948198567585375080843793n", + "2511738896308209966n", + "62948973448903767233283645427n", + "78581731009485419534613750974n", + "2631249803991736511n", + "15700178914629731044995270252n", + "21825209006850516132399941848n", + "469426094359884098n", + "45109950384963150442992909517n", + "34709270486045260410251674804n", + "3227700636384978310n", + "59508455528169337110518969046n", + "7626842288771897454076798332n", + "2837142952242233831n", + "78154898100541067453790359715n", + "28712940925290532622010374032n", + "2005548120880216529n", + "19676819626842762742496321363n", + "21494888704510312646126358022n", + "1917432403713999314n", + "35348767509581898437000853095n", + "54404372638473474714277538548n", + "1418295384476104455n", + "2087534038039694873601959364n", + "55492416744530703076122435501n", + "3415979290873032604n", + "77874081666239317555289078970n", + "64693269821438151662321973074n", + "468500022203866114n", + "52183552801284363909457374676n", + "26386627404911694711966206173n", + "849932193222808822n", + "60880246718709527470179169635n", + "73275749658065911543659109078n", + "2835936826164075331n", + "47034978948350796174151388655n", + "71774550150782116132727222082n", + "2957236831646338670n", + "63121833886036603562738575495n", + "23473953357667857038757232396n", + "709268300106945760n", + "67565011137450891785645904255n", + "24476510070022540670394808047n", + "2197500443692989620n", + "59529365216756814354926446285n", + "62380286296544401614193824725n", + "1797665767653557658n", + "65352576236492901270647039868n", + "54007112892683927216806385747n", + "1796075374294915397n", + "17840563634584466359434584144n", + "46203718678613515530978507404n", + "702053810505193011n", + "6133701316708198581434709723n", + "61802938904865726983656435299n", + "3001276128418418514n", + "11649452974115692944272358953n", + "18473964874994391830987882986n", + "2086271034138195481n", + "27934361651981769617523547350n", + "75412934231387879572695859186n", + "461672875728163553n", + "2659961698397651286244898268n", + "38244585026297070186059616261n", + "3371488902807027695n", + "16205200667874612181106188684n", + "6520317333544879950114099734n", + "2490923463723046056n", + "66034343348095027053141749239n", + "13522171761978136875076440765n", + "211626548808403729n", + "52060409492746050106971031742n", + "3493375676170587510122635686n", + "3394236868158496257n", + "47140116537527183288446191137n", + "26402419994251877186703235784n", + "2932509761218506683n", + "41718577718458247425998327137n", + "72444125720253366875907105723n", + "2370720516004120360n", + "63763546849180341189837833587n", + "56383249669741657007269755446n", + "2772609748811855948n", + "30673155381064993958540435457n", + "58923421149810821122915571284n", + "2826147464537959677n", + "2437524155719427333248486827n", + "13523745438577697843652059309n", + "2255306498837633258n", + "66617913651732723895666550762n", + "800383901932656375981050324n", + "2369057816442019000n", + "53894023794388536556779913700n", + "43633381247568199322500578225n", + "1622058361920748072n", + "31610597297695602711187104065n", + "75047413064993937787913175675n", + "2532518357458277794n", + "66943196821272189971919216455n", + "63057632269388325855862697967n", + "252919094746701796n", + "36093617934864267028615495215n", + "2458297172936844284200172721n", + "2861973034148611365n", + "35639326827089764975324431609n", + "42790455257345625520833632516n", + "2416491183110698117n", + "25453911219236829571892475695n", + "7792114184406477060828720050n", + "3256395018257219594n", + "44446878573785568457717214835n", + "31316823799089969829944488381n", + "3348254446631709920n", + "12075675278480009463346998871n", + "33336621394122897171138216323n", + "1761645290764169692n", + "38936491179522097211601163974n", + "40756936871275705147530952481n", + "2239620312855528769n", + "66166234417862875439766591001n", + "45961753617942718644070346235n", + "2545432639028408432n", + "27071931775260190706961952445n", + "16791652622063002274074642172n", + "1351810600008793720n", + "8734604468994364132650578395n", + "2915643774972349972943503710n", + "546123555763251031n", + "40883390215425903758829895197n", + "46075188532687982090196339471n", + "2037883374560027081n", + "1788529744899075811496881871n", + "22977601030754581206369105722n", + "2052641684479223112n", + "52403270166627919005596848880n", + "2330881363722503207702297453n", + "1950506519094245230n", + "26974012086112717010353138814n", + "69257122863702421096680142186n", + "731421312124744837n", + "31069884618093040515903738825n", + "64922032296511662760139295040n", + "2654253976131730717n", + "12166944124292618925625599356n", + "59407826445782768214824917874n", + "354147487414166550n", + "74336686733791433900827528675n", + "12704634481538804742936579229n", + "2082676564717138885n", + "72973759452587341786347077786n", + "29703734208301290276522637915n", + "2067816925523661903n", + "44140001258313735278199859280n", + "30358437273466120880384362938n", + "1032491038795740151n", + "48874617960058547069896032126n", + "32474862569324577439684934828n", + "2565332460413202117n", + "14465473659591664491585197311n", + "66349092618103844360620055485n", + "128575157546484074n", + "39003318153463851085520847181n", + "60595906928974680331945114920n", + "1233558283323773507n", + "28235541661696367758739481925n", + "54650564078640656755786408246n", + "948581610993436350n", + "52390925978355652282567775690n", + "69489317101356242161174540193n", + "1016620721333718105n", + "44682484847387584156652994185n", + "67002113562754354663567942796n", + "3169008886697917753n", + "21521800351163651826619425243n", + "28468229293760112362900924103n", + "3106044815056798782n", + "64289384627045471347034899444n", + "21395240471424659888107925342n", + "2389990634110040944n", + "5558440120008932694528968857n", + "25330928363440776593367343384n", + "746774273176043945n", + "2429305360237456636691563497n", + "39266567744784892575187587950n", + "792366915322109031n", + "190n", + "35201303926872119491363187343n", + "39200624059490958386431285751n", + "3393416942116110882n", + "5130722441260449785966906581n", + "6826282242711274667534619009n", + "175953595034053256n", + "36372914432107169633188190941n", + "31397365234316487899998842613n", + "711450504412561877n", + "77866480438920185748710050402n", + "4279212619824505622954675427n", + "962968101156720773n", + "24103551124269486202668849588n", + "11130972830601876441216307489n", + "893184258459491666n", + "69193811904361439959403735151n", + "52915912371712773799709217240n", + "570950775917859441n", + "54939789609796528700771617261n", + "12117783379072753356539237890n", + "1581116903901042554n", + "67496634076216081302688237803n", + "74495604156744339618591196101n", + "1413689362789722669n", + "60558410658396886623236813267n", + "54362306295838616844452379566n", + "3462692888110285930n", + "46601160641045708943575973674n", + "22657785267725651515395477264n", + "2540893510433578066n", + "25559907633591000839417753670n", + "66803247823467176006890040116n", + "1529769973554702363n", + "29841437217494788924228547359n", + "67184772344651716905410593588n", + "625675747496154271n", + "9827217054012018057431763206n", + "38580342860660073142578461484n", + "2817140696687660754n", + "46575625265145337175276247924n", + "32697034067774707146118540784n", + "3011446090876831528n", + "5271093022632786731229442228n", + "38726129390922048171827945072n", + "2217156708995046954n", + "42132917698594053659930418890n", + "77441215761462050733024375776n", + "2083758735650294380n", + "47743460986910581363781592550n", + "26859554267304965757813109594n", + "1656567376163667236n", + "35137117329378081211140823769n", + "60243236091112111901829479638n", + "3261955821062549129n", + "28358382509730554378855056972n", + "40056354765208955650509540184n", + "1883533328076610090n", + "31057640297193833879323674119n", + "13135810213042426656799782642n", + "1928373195980068191n", + "55761253093237817269509190310n", + "19165388911431711870765002488n", + "288177310041200621n", + "60799226684566905995062983914n", + "40207229733400293427021512033n", + "2650929947635557184n", + "29437177189026772048925638628n", + "77388528120917898327828524243n", + "305484959527306661n", + "47592972397876357669926112859n", + "3020005646539910166404520443n", + "3190863453458987605n", + "17015557973558762173505089855n", + "35191700003804211634668582728n", + "952612596261116166n", + "9375307689574390622949035417n", + "61354613352930601545872812648n", + "1683589775067171759n", + "60154108389233938793255784652n", + "48945403330058450293756368701n", + "1035482065698051995n", + "48447569243456888850015313383n", + "25814830290612690309150204011n", + "856977948611605169n", + "65272198023492246600324491107n", + "14554952163726621232808728414n", + "2062053292298286079n", + "69617298230609865098827681983n", + "10181270342950070947163024950n", + "2961873224281948835n", + "77865860634437363471851159117n", + "11518525950588256999085719888n", + "3140827286086615141n", + "67289814898748712687694720373n", + "55616979587066071621882452495n", + "671968441799647134n", + "36899669369105707004814227130n", + "47379737112610230221573994583n", + "920085910141384899n", + "13850743853602512280079293782n", + "5089371297253900377827048238n", + "2239346801304676689n", + "6013033712518981164461122848n", + "12696665847690995063491620655n", + "1045922789232343802n", + "73838480486926851002690242545n", + "11024247968089931574635022600n", + "1785739026827732795n", + "46709240116694401777143699303n", + "3928761352718085447710812207n", + "3167078457930209753n", + "1628411620074438399432304042n", + "79120825313446094504376504599n", + "3000986895148633142n", + "20311424959750264924872132883n", + "28982515945674909867411478286n", + "1562815756922582376n", + "41328654693727794541719230433n", + "37688731718109922922839904143n", + "2128686949308632744n", + "63918547392351342205099776489n", + "56244920370208046820481852610n", + "1738952791297540639n", + "42553727777815335999139478351n", + "74401676818038899194857584614n", + "1441223588421962343n", + "48501905549772929765056479493n", + "57196253776231730782817559363n", + "1329042466488131886n", + "42612242102090838639101211294n", + "23712228007378248006135499295n", + "1188081057948978113n", + "60808299854255156374059516939n", + "5037142183493324878785795698n", + "3377641427531405476n", + "2100033507624807185775577956n", + "66092391582904092111713233090n", + "1541686466154961556n", + "55667904776978470999771081004n", + "65782259532792810398109981385n", + "2678194758103578285n", + "46351605403518624328018612587n", + "71570189145139757572693098409n", + "137752718254727530n", + "32566894273154733946610261646n", + "2130040660771399584103495178n", + "3433460175532554864n", + "42283192781782572047009130491n", + "53195283663157854359737683955n", + "226578068878069549n", + "58787323154575198218922082559n", + "76514940467877062817538157919n", + "2170151004821396792n", + "16611896531741382600748135578n", + "23973320596472426785110273924n", + "2072924430898945448n", + "56522487831947510718774832933n", + "19703474499176160781849022337n", + "2945330921265220334n", + "56783422841518399023642676836n", + "38769563279432525044323505302n", + "1792299509242652359n", + "76167823672371949003240477400n", + "15033772560369672213689002724n", + "1369661826848479714n", + "57575850008227013534366623613n", + "9429773178147366060969953113n", + "2356450487368726474n", + "66039836579922335205774780899n", + "29305203315228583960894597733n", + "2916190411237443294n", + "62858319877555741683898610262n", + "77386927307827392438266837784n", + "2511329216246811555n", + "70441747233284664135679667980n", + "38636454217815285446563785723n", + "445854414890438948n", + "24981662323868189876596301087n", + "72752733583697398221323060636n", + "1809802552603525385n", + "66843472464618460413168506534n", + "22562062348613238493423411427n", + "2543043338711138267n", + "27822522723722914003779779054n", + "70553533529989712899011629037n", + "2009965107178178528n", + "41145654027642654382154045441n", + "33316040825580853635158289461n", + "1252347873187657129n", + "14195611144746543080825466319n", + "3407770987743222093411188154n", + "3403453824283325760n", + "77199977102298348629704937208n", + "31731941704004336833312531577n", + "3114592409653948417n", + "7082891359680238712484596898n", + "36813294676505780861528211839n", + "2296586694800766015n", + "70341804842672009622871958383n", + "64787100294434991758166332089n", + "684630955513640653n", + "23627073378371702512100491818n", + "67179406416584740783220132116n", + "1357682412528821803n", + "2679265488258494083925014071n", + "37109873815404656380557618026n", + "1127066617660372163n", + "32980549985182280899200208848n", + "49972857657669072050800815359n", + "2224829721975430416n", + "72929313298373333698671436085n", + "53706180782508338412265116928n", + "2345264634375706259n", + "25600116071059235957929539774n", + "21469247810821625206615495609n", + "1284644432869212953n", + "52581652408757810789394635434n", + "29131664108202548843582785870n", + "904339045760670348n", + "4798855127186408145093474279n", + "25593999412234523225948102223n", + "654037355967384889n", + "3657213402389600636244772383n", + "24133147736054748340766777127n", + "1396486180283262520n", + "78699320366651548922305948488n", + "69230814784074744434577385445n", + "3098132099441744380n", + "19644784263306430222376184614n", + "39352365321909965982286711008n", + "1097135362500605198n", + "22504884281040026520566615667n", + "51884310716816502189020510501n", + "2836879063584194940n", + "31564868821682863565046249637n", + "69399383443221313434464347907n", + "337835635995040157n", + "77484391777362423277126784135n", + "11986692619447741790084961217n", + "2619589882560292156n", + "55547759500726924350706149721n", + "17502197066849036485159796720n", + "3288955261957797426n", + "77195073787908022779049329769n", + "51238689806904152799533816559n", + "2902656369373522432n", + "66836221713819023953318512262n", + "30501774163107141437775800261n", + "2677692465649787464n", + "76245923481521701260558672164n", + "75457145835842899954569824276n", + "2950949770498563032n", + "25075661441972511124816716310n", + "51986286084014553654599003767n", + "3209171396020260216n", + "13218845202818396335134174792n", + "25547194437477958442682760572n", + "882225404441623442n", + "69914875188950207440235097203n", + "70199578745164541446110091916n", + "1357784045169413028n", + "43320786783175440339572518455n", + "35286989115778570412048883295n", + "3245655897355025440n", + "11580221946358483026643910212n", + "43414377877991154114375552714n", + "1146796406253097440n", + "17419013178925902351125669980n", + "19443734017483244776169430363n", + "46141882095098048n", + "8509181823114447743684103155n", + "21773389669210291571358684709n", + "293567078455314752n", + "71890768140184100110325465253n", + "32947359154902603245033356248n", + "2095767513471253062n", + "66612057726180846539892110591n", + "58228796938658089225696147738n", + "2195968911090520286n", + "1109993388422429661761631241n", + "22346582292377463495482260406n", + "2001066859090391140n", + "35881299508492663696062741525n", + "3717272605662631325590315531n", + "2150876750673299177n", + "32330394168112692961657727641n", + "58472199194667412587301482601n", + "683145818063708680n", + "780866688393577616874972293n", + "2484017925737855158498827859n", + "1946164710667286644n", + "24949672542982775874442945268n", + "78926592473575507217479867337n", + "539802847395835576n", + "56117008756050384582147823528n", + "43210853541622432183725156653n", + "2150663169634545096n", + "61579369092219089182966568720n", + "47582006983687603144738928893n", + "3124871084038651121n", + "20472604303699532705442132839n", + "55026790452919266777016889796n", + "2128553976965398209n", + "65042066402159517855186655704n", + "25834286024900757312561871223n", + "3153460278111732024n", + "2030649483792876655509387794n", + "31251460673520289934513163341n", + "2314202421394708798n", + "38898507655714044335469213287n", + "17766913045336064637455159601n", + "5772612758153592n", + "53351718994883410862516374446n", + "29801786398373019602386521929n", + "332518094768871387n", + "20014752107409814777501788862n", + "30545630513989571559621232703n", + "2905341310728908891n", + "41776391657198710555140374062n", + "72771134939139300460786768127n", + "72835700930130544n", + "62519373408589123636846113266n", + "30609899521982774212363668403n", + "3102951214589405748n", + "70025140397226837422549416680n", + "40592093639220464458845352747n", + "2347241753120297608n", + "45468192631571138571591665077n", + "26558823675732211497626649030n", + "1629416479528531955n", + "25801876090378717694003287495n", + "72714857660939158368507064084n", + "1764408786552028634n", + "47018572464410011443515455943n", + "52662920195362571012049090020n", + "454834057907282043n", + "57331496668953277296232816838n", + "33057818018021391843587257854n", + "3030763542145120274n", + "48443191019437422815507694667n", + "36934156921693139330074491119n", + "243401061232079827n", + "67385403122763135721667904114n", + "17785169761217765132246283784n", + "924708906342822055n", + "24368340584512161086502262522n", + "30550074161540509118618024477n", + "1647445399378987715n", + "22621857170588920686193026082n", + "70812007388389655871877402244n", + "1694083210670991305n", + "41347708096645830091114899476n", + "16037061913312522369505887616n", + "2497665959504793000n", + "67139303310464850804293957278n", + "29407657655389872029903395295n", + "1231700583895634138n", + "37186266588661031020364276823n", + "64331463645686241180031890307n", + "858007349645516242n", + "17453975067968526676927428902n", + "38794176949661087662172044849n", + "1932865250829663127n", + "70732789694653075375453637240n", + "48517950398808253845315914303n", + "1533683325669917693n", + "7590544657622663597186569999n", + "16972876382471665202433633383n", + "1600415365643134371n", + "78975951800277999885019988149n", + "27654411992063671107921755807n", + "3369953252850191561n", + "46043479816389332953445183683n", + "62532324852159742926567583231n", + "2731831590624761579n", + "26498461135763945608035183326n", + "48445518704959114181801065120n", + "2394765299580634398n", + "56028805977151038638420781436n", + "58141016313899417321335845605n", + "3462767125728514499n", + "75681482851168385218717491708n", + "4473698216036325355609931639n", + "3310202237706351301n", + "4504293916651623254906206743n", + "68116538030159503197015998251n", + "2889579290083727600n", + "12434420748880011857929530692n", + "33628508197938600895312561499n", + "3159831169743527270n", + "67109016324114818146303701946n", + "55351850463436105459577302775n", + "385986569608202030n", + "36242789260155546497441666197n", + "31732511889478314960659605156n", + "2920600915566823827n", + "48509474254963854734887661334n", + "8079251563824083202330240595n", + "2665801320330421918n", + "39660864646747352477904319746n", + "59651821222898457546636978442n", + "1531034568313238345n", + "62788969625927152028379816160n", + "24744138610672787038055730138n", + "1310233222719201614n", + "23792614446481923487153090977n", + "79101023625960187009131465639n", + "227407773153051293n", + "57267184243278003604986979966n", + "42305211890537745328413201800n", + "671233697941573096n", + "39762406528144274936805413969n", + "343364987272833939858341150n", + "1959484601961092056n", + "54544135238917175005216161289n", + "13912546675010052160684729099n", + "3014313683216149380n", + "18136356730134376051249726819n", + "11425153178165482142021848242n", + "1645167436823042465n", + "69571690242030224297860713080n", + "20000296908210530511281947906n", + "2951984515066408617n", + "68935557612334200108120846094n", + "9599874776655508661703447912n", + "207537289235118400n", + "38005039110469828198737233452n", + "57117939793780663528591877230n", + "657310159275772585n", + "48190942309941762977700829286n", + "35380709350708768203415160193n", + "3486923002519738515n", + "53309628735245870295401785697n", + "6898290035436010984009341789n", + "2238682903059000966n", + "26252436214956385472199538349n", + "5398316484357388778003944642n", + "2017016520050129083n", + "18728180890682502663677205457n", + "75985790035999193686176922173n", + "871191822818490491n", + "26090995461462189401947080714n", + "8010181523913519495898879640n", + "2760750294481345789n", + "12571913368726887078094710986n", + "67038533933130467009640942091n", + "1356907102326461067n", + "2409336986166143567183486273n", + "26333849491012167896177513936n", + "2081931138702581350n", + "22178579495456933698065784747n", + "10494019184295301135848443719n", + "1556823910319985542n", + "58667315150272390380921815777n", + "44158865836751938500365655728n", + "2897305038233402061n", + "74095183896289472526655350256n", + "46602083399223413699892771385n", + "2939040058840712678n", + "56134945160702746550200312909n", + "55594024588721990973305872113n", + "241727020334505816n", + "19092625518251024820060605981n", + "52805176561283013852649589318n", + "2630183511003809185n", + "40142471166039256274323308618n", + "69028082091732345035280035260n", + "731537512902501193n", + "54452821361994624741653790280n", + "5480588108130430397591687207n", + "1966495710156437100n", + "54225506703398647510402637329n", + "71078272160741272276482248236n", + "625726620356390685n", + "10873694895066196894600492408n", + "42543865621829980680582869471n", + "659085478864973940n", + "24570812645438042915544691872n", + "38864422867994097111701162358n", + "108264660254998622n", + "15090579651764708135114880383n", + "6847932611991509071357257069n", + "3002519760345855057n", + "67172930987791999954069226303n", + "57897525199993249176161053378n", + "2915445250377403217n", + "48211115939559742352322228669n", + "3041971302836179255332835905n", + "2031433350373049244n", + "6702059784866514136668283850n", + "60090798174975851190351671198n", + "1539442667927689602n", + "10555206956770682453196311300n", + "60174320015124794428742548117n", + "3219514787369094630n", + "33581130649629556907511838149n", + "68936014066717219797472330229n", + "2202566843302550128n", + "63246205799832702388628292822n", + "50766419118828752565980214424n", + "702948315686353336n", + "10588037026087823902566620931n", + "31944872868634567722701653259n", + "35592220254698076n", + "18543232582912428355348562511n", + "50848342948013759405790941928n", + "2042054766705480118n", + "75785091112505749098959662874n", + "33468770634430484055281758384n", + "2515019705715000373n", + "8378376338147643928768798662n", + "12530533155876786053202214269n", + "2727583334873636791n", + "77899012542093403472222785656n", + "11198541105926985132377308478n", + "174561331384082375n", + "21495637682655463985272268626n", + "66647744985496666360930881126n", + "405121961932952414n", + "8785728082360554623230657907n", + "16306316690895485216543647677n", + "2693176818970082429n", + "67847687393284529502747235461n", + "75868253612879612148702490532n", + "635425144875131615n", + "40160884413239877062079330770n", + "63164369256178816648228971849n", + "216810198294116243n", + "36435168126906960353056024299n", + "3149419224920838431230970634n", + "1871893333982790509n", + "64560732618471515378295795553n", + "45792311383220222353974633032n", + "3484115525993152817n", + "22542187253833075358391555832n", + "32913490894672208577258857076n", + "813295300489516673n", + "72008937925863542512102402771n", + "63373906192857921439647992395n", + "3099919762468324319n", + "2392718323049577722069945988n", + "6726604907914697504274405051n", + "1908730698260696759n", + "45303405148555861234318904018n", + "13840437113932916703521888532n", + "737973910436366111n", + "11242380504387923425774560196n", + "65118374650171371803597834265n", + "939001365486112822n", + "67975566324245959520301671802n", + "4473437818272725879708178573n", + "3208261445017504752n", + "30014808206157543806080228554n", + "66463240171753092120432610074n", + "2435993957101269390n", + "25504128195718610529905683318n", + "45705415444312786927978463556n", + "1045631128695025263n", + "19343065393931212261663604105n", + "48433465108497519532696527919n", + "1643955524026831567n", + "61967979823357631114053339146n", + "11931295683566487093852093716n", + "100280846773001002n", + "60176707673382247806625891599n", + "14685765931054596220352916055n", + "1414975013856289364n", + "19159675325188029964508933203n", + "71168335347143199690179041027n", + "3459000704647014558n", + "53017258852314779784871212634n", + "71597413066169374377964038634n", + "863719515279735604n", + "49267123322147562533247340370n", + "34809549368288410549249367594n", + "1802256555976892720n", + "32488293328284077378113325483n", + "63994087293938357079448722422n", + "3430579745765945694n", + "68044606980231349008143649733n", + "78178074980646262021475964266n", + "3303695234936873546n", + "36250845172027127549601304699n", + "7940006871355541625212459589n", + "1358280933229140597n", + "15621186773945475826007876994n", + "49200990726906764032939211762n", + "3297411787341585376n", + "44178322514207300517286794896n", + "1309109795551718989306628832n", + "1786635848544738041n", + "34458406924637261553644235535n", + "78049086711268561469882753998n", + "1099497319188604429n", + "3475313089381131723054722060n", + "6689323677917312565405995513n", + "2155662382779821326n", + "71165004495601531443113264340n", + "74552476918126801039538032619n", + "163118249154587626n", + "22716028135425394548575618606n", + "77862367616336570154310133149n", + "2252905518646090223n", + "285n", "0n", + "1n", + "80n", + "1n", "0n", - "2n", "0n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "1n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", "0n", "0n", + "1n", + "1n", + "1n", + "1n", + "1n", "0n", - "3n", "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "1n", + "1n", "0n", + "1n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "1n", "0n", + "1n", + "1n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "1n", + "1n", + "1n", + "1n", "0n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", "0n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", + "1n", + "1n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "80n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "1n", "0n", - "3n", + "1n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", "0n", + "1n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", "0n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", + "1n", "0n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", "0n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", "0n", + "1n", "0n", "0n", - "6n", + "1n", "1n", "0n", "0n", "0n", "0n", "0n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", "0n", + "1n", "0n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", "0n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "14965340338269765916748077654n", + "57444243079201776417400567235n", + "1222043622063448251n", + "0n", + "45539325815258009214048517949n", + "74029159877207687841315755286n", + "1315758075496492476n", + "0n", + "64882742742693735388703795217n", + "4844949128497544036649211020n", + "3182147294707861679n", + "0n", + "4496634234616189055928626901n", + "67033373151134842408497997482n", + "3384857135886447649n", + "0n", + "56260549620186665298313904338n", + "17935165051002398782181590032n", + "2907893131822920343n", + "0n", + "65216326003597682399222737495n", + "3298048581226412665864466074n", + "532058165305353173n", + "0n", + "4n", + "17534649174740286439617184587n", + "61624521448773719666652547400n", + "1583544831807099050n", + "0n", + "23580985120896688091134062209n", + "57090176069460711056973300755n", + "1132549516279179782n", + "0n", + "69267242672670352112011089825n", + "17669721875886136828099769177n", + "2507931255464886054n", + "0n", + "55290945981010563287452434069n", + "57369263824033760062566721198n", + "619421959802267457n", + "0n", + "5n", + "61220558198970810332002781419n", + "38489653625751659528596235346n", + "474544792344147439n", + "0n", + "73851216425788783229570215676n", + "57544280229734741213839304340n", + "824332013690674407n", + "0n", + "70640236490363038070108610250n", + "72048683011618337952639947412n", + "3283882621335138308n", + "0n", + "45766176129023615739100671483n", + "78938635897312369942467299842n", + "1543825017605003289n", "0n", + "1n", "0n", "0n", "0n", + "5n", + "31155655935624063764508754430n", + "35049753162015102915755571760n", + "55875346095182683n", "0n", + "75318843718093868842741179425n", + "31133663375247545639771122083n", + "66887240769048153n", "0n", + "53548803199970406176497915706n", + "48759655290725258023700284n", + "2897435443006199088n", "0n", + "55389289662485897334815256801n", + "47639017193033623227742014280n", + "3206472460595717423n", "0n", + "15201082213786740520291596162n", + "39703663558483688931576154384n", + "2690165326117272564n", "0n", + "8n", + "25205349568383755808920443585n", + "36240798362990640992244755704n", + "1423634377032442318n", "0n", + "63097324248837674501622746356n", + "14176515660675548454430012350n", + "2472996041072023223n", "0n", + "68044534632045954263224623568n", + "22833316355344197340616352411n", + "2877651330399473595n", "0n", - "5516503785001221521227164944n", - "40413566861187335218189028200n", - "320792509372162342n", - "0n", + "7738755395123571185438266773n", + "59806951206536854707030464457n", + "1619021578356186643n", "0n", - "1n", - "1n", + "73851216425788783229570215679n", + "57544280229734741213839304340n", + "824332013690674407n", "0n", + "70640236490363038070108610250n", + "72048683011618337952639947412n", + "3283882621335138308n", "0n", + "45766176129023615739100671483n", + "78938635897312369942467299842n", + "1543825017605003289n", "0n", - "2n", + "1n", "0n", "0n", "0n", - "1n", - "10n", + "41430774384038274715812872239n", + "55959887789790995799093598095n", + "1435809624122226624n", "0n", "0n" ] diff --git a/tools/npm/integration-test-suite/packages/web-js-esm-react/src/app/examples.js b/tools/npm/integration-test-suite/packages/web-js-esm-react/src/app/examples.js new file mode 100644 index 00000000..5a90a05e --- /dev/null +++ b/tools/npm/integration-test-suite/packages/web-js-esm-react/src/app/examples.js @@ -0,0 +1,82 @@ +import * as garaga from 'garaga'; + +export const proofBn254 = { + a: { + x: 19326975765597999023026309242851464618295625967876195641207265702903971944714n, + y: 63835113064883221423828958902442994957834669122245713027012799265225733314n, + curveId: garaga.CurveId.BN254 + }, + b: { + x: [ + 15926258242285065430281020483827261910589109953358642697562602626998569607754n, + 15482775443177023962384497625528997151098293635727021527127534892096530509952n + ], + y: [ + 10937776115245591292644949547008094885240742374542777857501160790374675834371n, + 6691169928456984700056024515478772626466687376966760922939239504103847739755n + ], + curveId: garaga.CurveId.BN254 + }, + c: { + x: 18548825552947889373136407684636046437705490810597995577018381312170231914454n, + y: 9890815383090898074006770716054740281870916546141552254207684185588486179606n, + curveId: garaga.CurveId.BN254 + }, + publicInputs: [ + BigInt('0x1e17db88c1d2e83e49f692cce4bb8169309de90afb2b141156243106aa34b474') + ] + } + + +export const vkBn254 = { + alpha: { + x: 6763126530687886999315782887200758703366235230289874831627658839515656330867n, + y: 12297948670392550312636836114470404429657568989657927437959695771502446445179n, + curveId: garaga.CurveId.BN254 + }, + beta: { + x: [ + 15362786867599176251482538547160991918100063526460909721657878971551583339657n, + 3804423004921008809819632629079723167970572551072432396497601916259815496626n + ], + y: [ + 21885719103633717693283841528133243510750001708857084897139570082577218850374n, + 2076817281717432063622727433912740683541778328445173073030513609350245776784n + ], + curveId: garaga.CurveId.BN254 + }, + gamma: { + x: [ + 1505558511994093266228972967760414664043255115544025409518939393775943607863n, + 21131173266568468249589649137903719095480044620502529067534622738225157042304n + ], + y: [ + 4008759115482693545406793535591568078300615151288108694080317738431649117177n, + 18835856718271757625037377080288624550370480296914695806777038708085497610013n + ], + curveId: garaga.CurveId.BN254 + }, + delta: { + x: [ + 1497911744463986566314308077983046202449361313910668647770797503379177516252n, + 10829154948357654897792444316512827659620136273388886760324770466776134105520n + ], + y: [ + 10850392992008761830625471778404650447428083833210258292805429019728339148884n, + 12593805385728178657844996215584371401133999503150901444097670307277076679963n + ], + curveId: garaga.CurveId.BN254 + }, + ic: [ + { + x: 8279781786940010385190155571855963988492685408361021424114669994156938727612n, + y: 14410809027374663415870055712464930833085570569392210261413081131467855918386n, + curveId: garaga.CurveId.BN254 + }, + { + x: 10075286447651977124250383403562829564641026794366918560412684031493085120161n, + y: 13393494704849149158598989372790154670517815409968589728896053397011959461594n, + curveId: garaga.CurveId.BN254 + } + ] + } diff --git a/tools/npm/integration-test-suite/packages/web-js-esm-react/src/app/page.js b/tools/npm/integration-test-suite/packages/web-js-esm-react/src/app/page.js index e2824f21..df5b3fc6 100644 --- a/tools/npm/integration-test-suite/packages/web-js-esm-react/src/app/page.js +++ b/tools/npm/integration-test-suite/packages/web-js-esm-react/src/app/page.js @@ -2,6 +2,7 @@ import { useState, useEffect } from 'react'; import * as garaga from 'garaga'; +import { proofBn254, vkBn254 } from './examples'; export default function Home() { const [loading, setLoading] = useState(true); @@ -14,7 +15,16 @@ export default function Home() { const result = garaga.msmCalldataBuilder([[1n, 2n]], [10n], garaga.CurveId.BN254); const json = JSON.stringify(result, (key, value) => typeof value === 'bigint' ? value + 'n' : value, 2); const message = 'Output of msm_calldata_builder: ' + json; - setData(message); + let tmpData = message; + + const groth16Calldata = garaga.getGroth16CallData(proofBn254, vkBn254,garaga.CurveId.BN254); + + const jsonCalldata = JSON.stringify(groth16Calldata, (key, value) => typeof value === 'bigint' ? value + 'n' : value, 2); + + const messageCalldata = 'Output of get_groth16_calldata: ' + jsonCalldata; + + setData(tmpData + "\n" + messageCalldata); + } catch (e) { setError(String(e)); } finally { diff --git a/tools/npm/integration-test-suite/packages/web-js-esm-webpack/output.txt b/tools/npm/integration-test-suite/packages/web-js-esm-webpack/output.txt index d4bb220a..dc6b1135 100644 --- a/tools/npm/integration-test-suite/packages/web-js-esm-webpack/output.txt +++ b/tools/npm/integration-test-suite/packages/web-js-esm-webpack/output.txt @@ -31,54 +31,24 @@ Output of msm_calldata_builder: [ "0n", "0n", "0n", - "2n", - "26217156025717979489861508966n", - "38732762661950955458369152605n", - "1690057079767624198n", - "0n", - "55776084338326874385161289385n", - "68135223798443788527711860040n", - "1743499133401485332n", + "4n", + "61292904915618517473537549718n", + "76424063491230657696617758542n", + "164100390290992692n", "0n", - "3n", - "75759116906411131289250842036n", - "1443316740970346987535705368n", - "708088064087366360n", + "59893860432479921089240889541n", + "23823463833468957056970670087n", + "2601996562330437957n", "0n", - "35793051770242617481071736722n", - "55598968341652892474344064376n", - "2778910202715604305n", - "0n", - "1n", - "0n", - "0n", - "0n", - "3n", - "19631865022986903110643570472n", - "75611758646426461743237732951n", - "853236432195926662n", "0n", - "11812074862058673201969127714n", - "39063420668175062792989597255n", - "1051876075291068046n", "0n", - "20990372166390382667110319757n", - "42018508523564723974054925340n", - "1475001652048253687n", "0n", - "6n", - "68821025690704718680664625436n", - "4329950222911040962607116106n", - "2124264192262099080n", "0n", - "42731142985949030089657953320n", - "52712334859712198499272653638n", - "1362734074540871585n", "0n", - "3n", "0n", "0n", "0n", + "5n", "75759116906411131289250842036n", "1443316740970346987535705368n", "708088064087366360n", @@ -91,7 +61,6 @@ Output of msm_calldata_builder: [ "0n", "0n", "0n", - "2n", "0n", "0n", "0n", @@ -100,8 +69,18 @@ Output of msm_calldata_builder: [ "0n", "0n", "0n", - "3n", - "1n", + "5n", + "1957209727941774081186492064n", + "73995994033502900377050207347n", + "2920028494258500243n", + "0n", + "14815917097266045351973271802n", + "43866335999743751425469215536n", + "1742440389359060858n", + "0n", + "67144078842460382505309213980n", + "3404562101888240111113484041n", + "869725021625300198n", "0n", "0n", "0n", @@ -111,14 +90,28 @@ Output of msm_calldata_builder: [ "0n", "0n", "0n", + "8n", + "68821025690704718680664625436n", + "4329950222911040962607116106n", + "2124264192262099080n", "0n", + "42731142985949030089657953320n", + "52712334859712198499272653638n", + "1362734074540871585n", "0n", "3n", "0n", "0n", "0n", + "75759116906411131289250842036n", + "1443316740970346987535705368n", + "708088064087366360n", "0n", + "35793051770242617481071736722n", + "55598968341652892474344064376n", + "2778910202715604305n", "0n", + "1n", "0n", "0n", "0n", @@ -126,107 +119,2309 @@ Output of msm_calldata_builder: [ "0n", "0n", "0n", - "6n", - "1n", "0n", "0n", "0n", "0n", + "72870418954466684377992322181n", + "41156025981776115551124813861n", + "1617542705451342307n", "0n", + "1n", + "632316186269555507073122696n", + "46594343671461732011923330988n", + "1612721764065542798n", "0n", + "1n", + "1n", "0n", "0n", "0n", + "2n", "0n", "0n", "0n", + "1n", + "10n", "0n", + "0n" +] +Output of get_groth16_calldata: [ + "2276n", + "561151868347580495583090954n", + "76095163897123765080010407949n", + "3078964875882710626n", "0n", + "68760071548346057889257256130n", + "33987009017980255890281589641n", + "10169520226989098n", "0n", + "27526525353537266686222475850n", + "14475456397330869216192753448n", + "2537199318039088506n", "0n", + "21536768652854740401912377472n", + "61033740543581523820282161323n", + "2466548432040548587n", "0n", + "49356715888972701601325049347n", + "69887821523610458575318250963n", + "1742488265497548861n", "0n", + "68106177540828336088045306219n", + "961134836681944563222599448n", + "1065964868903753173n", "0n", + "1800806384039658546158952406n", + "44097612892395787951554989634n", + "2954998394940821894n", "0n", + "57407696252580182379957914390n", + "68043785987214905719851221030n", + "1575697798130653691n", "0n", + "1n", + "64622861075918021861446670503650833524n", + "40000715384012656934033607729992139113n", + "65343516826393976703500119419n", + "64215924997604874724268545467n", + "988361220710881918n", + "30419768492628197858619568261n", + "27248300164153194572764431995n", + "2977039154666701832n", + "65685384868591218376868464427n", + "70847639348750339988496276918n", + "477777041053646529n", + "29991939756641252358878134746n", + "39295947558852310211017126572n", + "2815628384676858047n", + "41723516601424502403187247204n", + "17017221925427596342628818049n", + "440483370607139100n", + "10413180469465695361837522183n", + "19423959337400646488247227266n", + "1196856567711091031n", + "14918739433528640782272739139n", + "2386255189434407583576372032n", + "2110030772171629820n", + "66403863065153192042460667734n", + "26490228722781507311620127895n", + "1376925612093868452n", + "16095686441528704658448370761n", + "51022389018232154188872438326n", + "1610491282614910455n", + "37997039872158612927722452114n", + "76461913933066610895201145075n", + "951074374291802403n", + "71303405408633411813876113602n", + "65378028046199379258519780162n", + "2796976393851271662n", + "66043194162972766020432949924n", + "72668519642029141849369643840n", + "1767421250104456939n", + "34724757470958269778491338738n", + "67907574914053181941994051296n", + "1074861315591297211n", + "57811416502141401297494384261n", + "66717953782642686044297384228n", + "619071555217927229n", + "11747815192199388258706152779n", + "39655522309044272057593243434n", + "2667518659266923661n", + "74545987263802105943401974456n", + "25100780504941704736052597181n", + "1614091262172996678n", + "61496830641585942728225636367n", + "47520662928915336127912320093n", + "1483128622047069223n", + "60688370891239308805053347678n", + "6154252422157238786881911133n", + "1595810747040934713n", + "4083087877564984515505707949n", + "8098795933662806280871012387n", + "392529588828430050n", + "14388273410011291023320103380n", + "59643003630595652724715495246n", + "2978244255961784640n", + "73005708620970672578538518429n", + "64274822400727474231693975117n", + "824761225328685267n", + "58979395441344004425345087397n", + "50034285490796369376342018474n", + "1071577406066675668n", + "37552244383550540565443579029n", + "66651519402295869947385119697n", + "1816081760201573675n", + "48020280081371249748563352979n", + "19387797072717949389382225132n", + "1075380445499260082n", + "0n", + "0n", + "0n", + "0n", + "0n", + "0n", + "35717919122505863182793101258n", + "38321232967395819819318928199n", + "33653293845735846n", + "0n", + "0n", + "0n", + "0n", + "0n", + "0n", + "60126610212574038899502857656n", + "7521540037295293717633716927n", + "2853604986499631260n", + "35n", + "21051189327279847889561754607n", + "15679397574132606210591767826n", + "2165541175263187167n", + "11461504713279098434997837844n", + "29843864593792422920685859506n", + "1460931496621397613n", + "31444402670555100638844582863n", + "41564870089383627374040254466n", + "3317275169749288672n", + "72559701040108110454251376272n", + "22887416934578586124987839996n", + "233686850646424299n", + "51667851121405518271474152545n", + "8297160697759020633045233343n", + "2193876459774314419n", + "50048470992987075597478354517n", + "7622325433377464914372402739n", + "2354852892440837544n", + "51371930649223862037533589505n", + "79037515700470610379424985426n", + "3103776711054728122n", + "62017664743365054011497714498n", + "18400895627048394641412939651n", + "1348549913115407530n", + "68135824164391051249850625519n", + "66467776056179325801077769907n", + "21934170737946721n", + "43733194692565917370190335652n", + "20871497235942649279957719973n", + "668366294714005293n", + "69461224576101086641240237729n", + "66163212446743341874016516713n", + "2187872754580648643n", + "17220145241406859216639481755n", + "16637691490800642336304328427n", + "699908274655976347n", + "63497807423928467541336180608n", + "5826616601935275548523889948n", + "1995878641893268059n", + "45351336804917798268705814434n", + "32809386436253774870015191481n", + "2479634507910679085n", + "29902151727900563245652302915n", + "70978449320724687288838934154n", + "2324927884830925807n", + "70956000718854853515484101425n", + "18794223695576985859644098754n", + "851712710373510834n", + "10098225054790962506843798879n", + "23663666343921865703011477995n", + "2539135702270490911n", + "13745949463631524266514217644n", + "70097334773007528061348260208n", + "1449740726324507950n", + "77747255839650031066990598333n", + "33186206179829484467075523327n", + "3072781249488320507n", + "73980383885811324159893986758n", + "1765445723258696625718806089n", + "2271055079390534326n", + "65413433113844994807777190576n", + "48033870016967321544035758027n", + "486427727733872709n", + "26974899297726311987406093631n", + "5590641036960446176988521755n", + "827510576486023036n", + "29009837304935242599458620885n", + "20410410399336048506493809410n", + "1954580703151327584n", + "64135814011222089868428198367n", + "56261294792918650387740643327n", + "1226348411176360117n", + "71834179960057214052393522783n", + "46252419010406289556729694820n", + "1393685374555389118n", + "71368042768790547323904986882n", + "66161706759499128280107017373n", + "2031846388120562115n", + "21220965229609488481377288540n", + "63634474338013450603335409627n", + "821621475859559449n", + "18432973800914453913616171088n", + "8237366564750917100218776918n", + "3448970319177548904n", + "51266071561401723888120442902n", + "33637427514172279767467204013n", + "3304964589143840434n", + "38819453582756888614388081676n", + "38995523514738195349996597496n", + "2323381859757397191n", + "60884424754479179074928199128n", + "3834764671648885586861880739n", + "864611594127789300n", + "9851774469429652901432809299n", + "37101389540039872112071709899n", + "2559626381308197564n", + "406646090122284731360238690n", + "44652954714826373590985929530n", + "683398595921263332n", + "20271182213679030346920227775n", + "37600328594433178897257972399n", + "432396126057182521n", + "4187404064813213379278146332n", + "44537571235199588707429377798n", + "3148695479824963911n", + "25801656964836714839982503508n", + "51572074862943493111482365520n", + "1230107506438930488n", + "51625253538057090130489675612n", + "11815326077763625426679125713n", + "521507079758837629n", + "9648925458348520397354094791n", + "31712274845777377436963587786n", + "1997027570431487029n", + "67411860089204789431616372347n", + "66528411456550554620624110152n", + "186478859944874837n", + "61267275259145597446660035124n", + "8554664316600082912178209665n", + "2375445434845419873n", + "1589782365755830876261985911n", + "14834270454057237025174127570n", + "963005115183332390n", + "23249702285165109375700438720n", + "20760791667651963569657008881n", + "2149068190029611973n", + "74674158355316816901821060837n", + "13278131002009659818927519878n", + "992778641153509292n", + "8743794935416188942200722720n", + "51445266496970909016857135378n", + "438732749332832318n", + "64511635865187456937539832569n", + "68455428209776466334096458368n", + "1196547129512189429n", + "16652864649326843859619189651n", + "47031229552259361752165531n", + "1977848333533964373n", + "32230433718106499209616712783n", + "50152042404552913889735459326n", + "2647553318887157906n", + "15558003702184603194095500825n", + "75789384763919593972512743955n", + "3199452366147221980n", + "23639206276595496029173201731n", + "49198122874004051169498469698n", + "3017499313473475023n", + "14633623354742611699704494011n", + "13838793228838994907197164815n", + "1865567661799564691n", + "63554437295278917743885851002n", + "43774994641723817700539915508n", + "2096263880799998644n", + "39241367224191359271532780985n", + "11996031360599781980224407856n", + "669587303349757211n", + "70309465524306380398946854940n", + "69691793870844727391235380992n", + "1097884931999290463n", + "4880550284873697839328338960n", + "8683184578595981266384193421n", + "1704353262400573542n", + "43209925421984317108056960491n", + "71838424302727061831479195619n", + "1719485935656079288n", + "20281500369447070817728689103n", + "7827101470501627130702651299n", + "1802787150264131673n", + "46990609747636025825158033861n", + "44506561326339289883265865893n", + "168363193009253293n", + "72644600526598920979602995563n", + "23734595505295435652505772841n", + "3066825941193215846n", + "35922864395887621958431954121n", + "36164080296393340386782836739n", + "2806406594668460083n", + "9559608083309233656821926408n", + "21435397197883361901646100159n", + "1173438743001539534n", + "45502332725513884072895701183n", + "21110593816020485943815437920n", + "2156839344197406156n", + "14935455230205682855615996549n", + "3176509029633635649806564693n", + "2744065159326778800n", + "50144289937074876149408247339n", + "73476828119785067069284584679n", + "1137921320963525519n", + "7764782370318985672713086089n", + "35186333034809438599544173388n", + "2599319187054853443n", + "71090896326220687050059751719n", + "7138127862158940765217036726n", + "2525413991973636711n", + "74465662641034900763924596241n", + "64800563131735459820423413678n", + "467645211882593334n", + "35429207184442884958891366618n", + "32026071525343635101462583825n", + "732661589473603894n", + "53979236240639306101606255299n", + "42289323195165961060464784974n", + "2572678142594168339n", + "34781401150182625703506517963n", + "27502296245160796607775189158n", + "204754437845996963n", + "60295830689532650505249825677n", + "25033548320502415354132760311n", + "26918649856759092n", + "53883044729840223319972205798n", + "71229970233113264180243241621n", + "1096143763692361182n", + "23670625124894730163037915585n", + "66188859433247255337619139871n", + "2789875774976133848n", + "76287870172839315742103539908n", + "76696206429019592649532825371n", + "1140810575629679716n", + "65695197715200264171919419792n", + "64578697338608806055715988010n", + "1315508308085028070n", + "78097114957711978300958275236n", + "73435222529435448525954708815n", + "1357585460514972583n", + "7357385422266450818170168488n", + "41750638133784298446701227299n", + "2309087687582896396n", + "59893979186320257893680148671n", + "70073254756682993544223051173n", + "3379633857316028827n", + "63037751789054738563399308545n", + "22112638657428976200628648553n", + "1119955028522904661n", + "17789959924300679578888409433n", + "32036177498553475203925266628n", + "3282049411090141820n", + "28853440708133119682221591754n", + "53037088663773523321481680370n", + "33889236786700338n", + "47866115906431522995214087729n", + "65896044771509521496549322945n", + "1356170216477027582n", + "72025359186703704066599325205n", + "14290937382512145681745832413n", + "235291859370816977n", + "16739080450814900672563464076n", + "27155915888194232201712953259n", + "2201285100786606817n", + "79046757705903490925593572396n", + "41590525534061554138727710174n", + "1563993153777110442n", + "58644351226953768961970699175n", + "71513413355714071072616721058n", + "771468756865502494n", + "56315873417343912546874324750n", + "66995041844358703653717763298n", + "1564628505321775490n", + "68742094005504029111318961475n", + "43257881480227388188853022203n", + "2827885137176633354n", + "60013377537965180515452389042n", + "22615548017942376680894051034n", + "2778940717048846996n", + "30216926479141873412912870389n", + "67097866317972012436735650659n", + "1001082522948099952n", + "31879429787569811794175043050n", + "57916743777618192263856200515n", + "1477201521425100888n", + "63117110331861368443138300600n", + "24455052765578778318741183737n", + "3145320365602131181n", + "27504400622945393457424964663n", + "18149654277116955082138788671n", + "709865641588578406n", + "51203413602847718278618462447n", + "32871208476003646471375256821n", + "1972541565241208115n", + "79118404692942875097520377767n", + "48815069625306356145460113214n", + "2800168047740476387n", + "27090046108651136752525050251n", + "17050737426763583806790779471n", + "1273566324033923836n", + "49543917066569282928794484300n", + "10290628042158833070532221066n", + "3469066870558011680n", + "42005113796531220880503084548n", + "60064195130891515794312310901n", + "3245851193684195107n", + "37533982385009798315342336648n", + "10267823027838019609009260399n", + "2025345482262498605n", + "34864622598934340124988581388n", + "48347073555555495737374318810n", + "2673244105079290838n", + "75957016907360510463610401727n", + "23977086141109407077488719105n", + "732491745580907274n", + "64604276948999648627686221332n", + "3868070793275280858296301394n", + "1873653426250118454n", + "15570553586934053483564418077n", + "13639547122371116255200424101n", + "3229806347752382046n", + "69627176750917937037127756524n", + "77527130421629244161614984692n", + "2205592855904802747n", + "42359401661274759693285654733n", + "15319487818905735149374624862n", + "3299209455827802664n", + "913752139298990313523799637n", + "70257873178701883303322833580n", + "3363278906733915791n", + "3719386124896722977369262005n", + "53915264239484240561994801723n", + "1014563467864375643n", + "56643381820560944379080271087n", + "5451127454093963182673395845n", + "1647155594727927302n", + "74031948470913728924354306654n", + "67046184840603355661228918718n", + "730434808359892479n", + "58832815659134274668136294794n", + "44220894708044864609266466973n", + "428689828657455715n", + "26619728344740812354339350673n", + "55972705855091654840275771393n", + "597472825198654088n", + "1452568843776109298902292527n", + "48082065429135088437634332196n", + "1047157723497573338n", + "28285154322504134404521941699n", + "56070279326493931276099147353n", + "1647252454052220783n", + "65027676769817342180184568252n", + "12685362344487350979600199772n", + "1402500493179000567n", + "12668630001282077875777731433n", + "55553251572483079593258301341n", + "2382205981458202111n", + "50473524893888759380289559496n", + "52220217290909756763540198313n", + "2029638412495399688n", + "7502774623130712545083224028n", + "73425515727643581896824036686n", + "2771702310825972693n", + "4639820922586718498241340517n", + "46582679696898380484679332702n", + "2620580077787400940n", + "51782105270520932573551959292n", + "74517889523497564960562458357n", + "79055126752843995n", + "10925640711936519280913334701n", + "11947058347966705959371810733n", + "43716694970268491n", + "35453676805113974113471109604n", + "12015889727201641553493717139n", + "3275286259969106630n", + "70932279409438704808566723573n", + "47041530965489511382629531879n", + "1256401409005218192n", + "46895749660336733332848035754n", + "40261009687444665011442182710n", + "1306436215925446460n", + "3904962902077066763622365736n", + "36103992387013546339910627073n", + "1329335481346702678n", + "57853677844329075763360620729n", + "61001619991056325367390311148n", + "1235032555631976826n", + "58692146235938833274542664790n", + "14589363842493324627243766856n", + "578262325105051129n", + "37980379958779218087580100271n", + "57690546822788520479506631792n", + "3164185857728705638n", + "45598806448478931852264970697n", + "29033375842093843451718686864n", + "2812217528418815016n", + "9663261157782365056384592697n", + "44620211458433011608252253672n", + "2505651240889113840n", + "48502340833312690180905327065n", + "9352266604910376416980234379n", + "3341395763378874957n", + "35507650777754495555508745994n", + "64550352482963692428938364344n", + "1749731610964724298n", + "72801722493214401326730125326n", + "55956888553336351398608259633n", + "896001678647446033n", + "30516385505393014949750902877n", + "47315718952109319710441627150n", + "1388483706936013349n", + "32381991427814516368016795653n", + "59696292811917044385937202833n", + "618914335291991958n", + "40375787626773409929606022175n", + "64734613933900308276892757597n", + "2556069305521992095n", + "58654528682801174800851099376n", + "11593522535604870003716248394n", + "2125230714317219300n", + "8061995955571015171488513388n", + "47983447012081651413970228934n", + "855542739847145422n", + "59096469339608638609245068515n", + "7673808125695463322887566290n", + "1385253448294382073n", + "25340909062918393540888464015n", + "9795256553635962173776771050n", + "3012016973098277348n", + "33467611330524938973631050712n", + "7543431037219165063475505539n", + "448151223182465539n", + "22750106248651778926545160954n", + "25740569688692303261800730858n", + "1075240126364963450n", + "56338203997489686691769068850n", + "62119360873725897456686490753n", + "1222146081347045140n", + "27338323756657113133884361560n", + "21141429927442113006964516579n", + "462132336382397961n", + "4987343640321990641559943818n", + "58829032105334349895296634715n", + "3177465831253470688n", + "69096263705896112247403554129n", + "29492604434954899550510960365n", + "304239915265350366n", + "66375851691134826136210085333n", + "44757375154942980538763091305n", + "1112855489475878924n", + "70069037784938962740775503666n", + "12717652252841341839220495543n", + "2918096944668928835n", + "18321962109897171704378960368n", + "61813672462196073792006627549n", + "2734946711892636188n", + "64219561440442257822526755189n", + "8503031322535266331858567242n", + "3223902208326320319n", + "63116174136664698830215774786n", + "2759322304337380924973025029n", + "810068357014304774n", + "15698684552711747426349376896n", + "65762055793295617462571353752n", + "518270689795187122n", + "58150828468103287645001826637n", + "77452960139151639571846482697n", + "519559051146038460n", + "72625801975239649642036163890n", + "39078044248618521225250269350n", + "2190524057325078928n", + "27770888055874136986828633484n", + "41773083279140557423975570256n", + "2854828164966176931n", + "627836434493841003902237785n", + "77928664588771202997039373627n", + "330865869276931200n", + "52935592469577214913105764520n", + "20197659873511917804524429378n", + "2125370194946441846n", + "3460074836406938711660958301n", + "52820564261229479633548811299n", + "2919129481241566745n", + "6675772908450017734753351305n", + "65258735248680451317985314824n", + "2950671717077079181n", + "6822322071311459654365919975n", + "48497518547901827883287152419n", + "3243229764836791767n", + "72937532385990220357716354648n", + "19074513737405788027838151006n", + "1297437039234841476n", + "75502921753638151385835217223n", + "15306268504859852745422227938n", + "3143438951510181753n", + "3947335170074803838440311819n", + "62699530989773040321915910090n", + "3215975868729087991n", + "45236352461588188769215285451n", + "41706782526887442329166221445n", + "3168773580470738009n", + "75285535419605148224367004655n", + "20481966054007305592119557920n", + "1679995277184070400n", + "45190873120635261257451746066n", + "47696678647110719375889237738n", + "2068610507691385147n", + "9915927934978371252308896949n", + "31159305954355174048281405375n", + "1704598723840881213n", + "67338469563962359211325034773n", + "41738724864530875640824663606n", + "2293929193371443079n", + "34807312716413150046069343319n", + "70801066094208025212394559646n", + "2518515824100660756n", + "76811947889156401932764711781n", + "43817729339652461426643528955n", + "2039489180470709457n", + "38477432026452102589204844897n", + "27527167249603525516926315406n", + "1191468099071291308n", + "38041851156661687253492123536n", + "54288163040365572080441140556n", + "911480122138689106n", + "4974069079367885339264267782n", + "28880616750574662115261710630n", + "2834730446537796035n", + "55466841778289154595312506036n", + "47524577058256910308968549882n", + "351449977223840700n", + "62311990134227217524354071274n", + "75586193885025429015569590193n", + "545412183548073756n", + "79201290258654825630711427638n", + "77524373992410852423354047680n", + "552010389188782621n", + "13584773290145166716045719634n", + "57089761411485171751249424952n", + "1694608384682621747n", + "29538886750825184946212760314n", + "63894150012954354476012028271n", + "381542434687157486n", + "18078760560177937565267140464n", + "74003801426748288272147648907n", + "42337564080893923n", + "76689566315090503029029632865n", + "77474971819185712518886624915n", + "372114354534855369n", + "3011898200892081576513307862n", + "13966070005688554503624007786n", + "470413759528293312n", + "39357561183949775040925825237n", + "70682164693568724918268906963n", + "1376182782398783885n", + "41538213381429219620578361408n", + "42254768852299863792709628627n", + "3431309948863311296n", + "29234390314689913487082552719n", + "17916853178952663417328241903n", + "669291203853282419n", + "33249562629014821971547667642n", + "26222791431277453980835687680n", + "98534970627714358n", + "25021648199838864664290068537n", + "20665859250814395210947344246n", + "662389299694120248n", + "72307113898419621240789872204n", + "46323053668872253004980165076n", + "1041999687571616075n", + "8985042666921921648283132643n", + "74513886773734802806022422301n", + "2603455779145809119n", + "15411135359682619522278947280n", + "27784420314858949438220006926n", + "450671277926568052n", + "2831173742809690598851605179n", + "28386483802658122108161613621n", + "1424370976519373932n", + "31198231619878444700423211860n", + "42295311569311653123964908500n", + "2935759999014605210n", + "32001363507887263736668102660n", + "46912833713119636774180995741n", + "2092237369418424823n", + "78656477190391127646333527543n", + "41056006364555863740114989146n", + "2171263570612200061n", + "21422129487009930658303224502n", + "46206308103083011878154386775n", + "1874554378158482533n", + "36641496950703925635911572554n", + "48432166499307362117455688176n", + "362387825758837904n", + "27092632894596570716463916204n", + "20108561967338242154648349930n", + "1880193076762165445n", + "9593372273263129574197363679n", + "48018078028931030587694756618n", + "542974594247287387n", + "14814551631877080383283532261n", + "33496168748765220079451008919n", + "2250598863496646490n", + "44869586855816636221572912809n", + "41783360501362407212785286614n", + "2362538758680925884n", + "47048981182078605465642165702n", + "60518795030556750835816928982n", + "505511636936241905n", + "58024262056741504028876642662n", + "50138980925793649225004896980n", + "2579777888438614723n", + "6523114729709277602770738046n", + "28358393151053570058817793343n", + "3081381986289034984n", + "15900191280315068679181663660n", + "48577168032374944428952731072n", + "830974214184407623n", + "10274561196236136318135959057n", + "26148664358554534185218032007n", + "201377610767670386n", + "11368406426935765376362633788n", + "4122436782704069458424072833n", + "2934079973878820714n", + "66892750247258968804173976659n", + "76380379537218876441475920731n", + "3380019238411335234n", + "50717224916942478279258173891n", + "44470393688322556765105136550n", + "1813355330674964836n", + "8515532742277261388949469229n", + "33221912074775270762895168327n", + "2646766706385940242n", + "11140136119772415355412357379n", + "44150773111766484868566388647n", + "3191354614138223649n", + "30708778779429297397760149496n", + "67837687252340085721524474101n", + "3301367800510383551n", + "10954599956402707572521260184n", + "21030000566064580489911242942n", + "1828905939385555740n", + "26254579696623038244113820321n", + "76089322519690535032690356215n", + "868757520992376209n", + "77540171332511416804096348278n", + "10474304059709005130776549459n", + "1665346113039180866n", + "77071906535707552468440337167n", + "76416817616469856915552001970n", + "2619908781683664602n", + "40713576015254467501617369989n", + "69174809057973808586596761660n", + "364462143474967775n", + "3388865641890523266901884229n", + "46510386965164679950611269041n", + "2868959718371388528n", + "38291153048032659818161082470n", + "57992998428591158266306092260n", + "2140250223970187383n", + "74674643030181299821451279762n", + "61603307939095484817637012597n", + "1805808601029218696n", + "37221838450591689221386319329n", + "68301391492878568825616976727n", + "2237000809794684762n", + "11407285364976644693945059208n", + "25348058182926100240298110509n", + "3114508241594272017n", + "75356748694855659604450932050n", + "73487079967561788811810515931n", + "1490776583857675442n", + "54218989991798315687885361450n", + "20703329376060767478344708910n", + "2199487792587152210n", + "75111061944546058209924381826n", + "59244444067541601191271416829n", + "1581429188013860604n", + "52660822561915117683975147831n", + "47783082248718407900747485302n", + "1369252091872015433n", + "36417458042350421490821725117n", + "31829247002542379610343848353n", + "455784377300586483n", + "16833465703461845689857266397n", + "71194569481351283884295739145n", + "3189866189053900612n", + "65858387085894768841721032786n", + "42191857983305827191840357582n", + "666015291493419098n", + "27916318777227697186981470587n", + "32438460617546390776125662122n", + "3438854808891043135n", + "41197663088738641800559183911n", + "55140791537758229983041465056n", + "1162917064515090408n", + "59276808448795540978821008029n", + "55346073844723874343240998585n", + "2138546228419844587n", + "29861692804477614266603259375n", + "46434932953097909216915612814n", + "2786750119186865986n", + "2914382294411148824195592597n", + "47257202751523172671381039762n", + "108099711483611500n", + "42513194204119630092428609239n", + "7009779828784113435151735800n", + "1568976973765903017n", + "74506942497632859791810397801n", + "75159716442684547730197176733n", + "214522106108977303n", + "307807623661151452830127704n", + "69355418870826927485148435899n", + "1716229337114513433n", + "57800790680731912804700220994n", + "33865695886637783077735975519n", + "1521543041885052952n", + "61900084065708307372472439490n", + "9670136848396954396035168772n", + "705486756697563485n", + "65695693080875904861430309269n", + "42258749277647240519914054375n", + "1610937183743514752n", + "45949364456230722028956610312n", + "71318597512050155765983898976n", + "1419180020927833749n", + "16722582418318977044812304850n", + "64520646005354913944304541442n", + "1349757657977694032n", + "23453477023590312415905476662n", + "20988708348761074914346191082n", + "2734679321361253617n", + "3531335181910221180679210683n", + "77069908679139173478778593856n", + "3209489805214655859n", + "15423046625290420432194363954n", + "66544315732344216335597482829n", + "3417056483929987132n", + "23412416307661786237706973063n", + "52684903097691240819445939916n", + "3087013127443362602n", + "59516131369415164617233433764n", + "22552284363447521404574779744n", + "440598570727652332n", + "10078101871820643773664346515n", + "53180025648864462561753056892n", + "1238481677425258091n", + "66978851386839209947975732205n", + "76469976691658858609518100317n", + "2669015410315668427n", + "10462115063986428235746660388n", + "20612418707380044137824607138n", + "913149152876393845n", + "12896643578852573199148249630n", + "65916513826164228515537693476n", + "1689818392090951394n", + "48812924094784749209418690439n", + "21075229147504768099245857693n", + "2023634641390620097n", + "46841988916092209879920999223n", + "16626325630569367486087793088n", + "2520424161966279659n", + "66590657955425334169984583445n", + "43137455439307899619378709852n", + "119691013666955759n", + "59528138117541221723219264069n", + "6039238025418276887251147184n", + "1423016249189720303n", + "74476981597135756778074726485n", + "57871369440317946035711890073n", + "1799738956519083373n", + "61169922085945703273845146359n", + "58536191609701145724674103544n", + "678581665969651580n", + "29756753901276156089801861773n", + "37715386191992628222582900313n", + "1839293100231634062n", + "8545730587160341404066690935n", + "73310320371102040457790413928n", + "2943087579162219865n", + "3592679410576312851945554995n", + "63768122222562308688415150519n", + "2852416365710961566n", + "65734466853903663026216615808n", + "75611388663630224651662180524n", + "3082245111526479768n", + "42542028447397082553823280434n", + "15266201170439359558184400250n", + "2959319188559780389n", + "62084872176674708014188872797n", + "49471685826369556510350964812n", + "3044342635568692521n", + "52766810402300947123818998320n", + "57464266928926410524441305379n", + "2678492530248725715n", + "63759940946573266111589745544n", + "1239422070074535035165804970n", + "3011362073292317527n", + "5312425357216197805891517417n", + "8604490350019536611169668726n", + "1278264119461231226n", + "23413740732153092734953046582n", + "2351234330786062681522357509n", + "3063446156461791539n", + "31192263866697541487222909336n", + "53213425910476786883061415945n", + "3388535254355309510n", + "76222049202953784940228041093n", + "8232814450668299001215927167n", + "1010418058221874517n", + "30375045069912390061370886372n", + "76858962311200653420966476141n", + "2531834595530804919n", + "72838406196796824316965387556n", + "16107338032535514271932130242n", + "826038058455425888n", + "74047817357615679402104886971n", + "66250974048331219261305648117n", + "515372630941459652n", + "49140383045734318581810247391n", + "38552127106329617678305826510n", + "1791730195926210707n", + "20447547859709794457924179129n", + "52480964595913357482998508931n", + "419726983098458687n", + "20434453705733747059793719688n", + "22732218969594988459804019164n", + "721740589738128975n", + "63178390467425871623450374916n", + "58781628951232066578669558088n", + "1366096141210552719n", + "30310055907701667442250131224n", + "77693499391068805405178198648n", + "2419127900721456602n", + "72238281634987295743046110639n", + "2759706666093555363424148875n", + "2871042634310332424n", + "58186331935313172107712023092n", + "73009408672165436946758189888n", + "1138172672402058824n", + "45794206921224716587506811973n", + "50074044364882080121299615241n", + "201200847748951804n", + "41753381957343686084038148154n", + "16651255916405576823960096368n", + "744771251876887027n", + "6397253273640502791149864078n", + "67730045189242272443620838555n", + "2723512022810421168n", + "20403399159094844095476748628n", + "46114852246774129546878110205n", + "2163837250026966482n", + "63507059223060953171650485733n", + "27872394523028449929373211791n", + "1266384674015277092n", + "31341532803878701385180273244n", + "56274201404580685976997533743n", + "431470279371342601n", + "27146401285505116697408502780n", + "10909809704395711896795601995n", + "823727347575104764n", + "78157451508256479551851793287n", + "7934224114897115965586132150n", + "2561622534344592225n", + "52031374290403822978799313483n", + "75680335637831520600351100052n", + "2240257882085839580n", + "35818819658139744996071875447n", + "62532608351434239965548606901n", + "2997209098633992908n", + "35801460645260708494826382933n", + "6962199370752725968726753829n", + "471191881884558376n", + "51494347593311565178389849721n", + "27959136057874496572927068138n", + "2054885609386822401n", + "1903400454085938493722464234n", + "58252527737465224754126905441n", + "871049256780466220n", + "62266126172301828292957015888n", + "29942402306346798464030870789n", + "2439682690873113741n", + "58828716449315637847726991566n", + "33586884830050665361484057496n", + "1850240284198082738n", + "57256720773892932068692318575n", + "43906884659388043006991040937n", + "2567264210368699586n", + "37303325532466691611774319975n", + "1023775330119159065320215646n", + "2970467943548704391n", + "6719369853840095911284134964n", + "52698184868933442534169228704n", + "1590449702912303791n", + "9163234315649800019839577781n", + "5096786077915756093838027866n", + "2604014912333559946n", + "22626562141910724736547894073n", + "1221514787490597839172086118n", + "2021859363658276538n", + "29343228808229785648243946635n", + "17107161597392558070179986947n", + "2142074198041769333n", + "8295437982000203433981112803n", + "32281278698888589789154221048n", + "2261976931796110908n", + "19003064635652370381400548000n", + "5388386401569756312458644562n", + "3154333183807592746n", + "57635002029571841636737463711n", + "56991897992879623406006006725n", + "2842694143682003853n", + "73379904593405458046663259580n", + "839437272553377608023038726n", + "3093165198442302924n", + "33419448607193509624332386145n", + "16740311080067952025303937955n", + "666860562806181637n", + "8797571923563716660075774195n", + "75022438860744435659585766685n", + "1558560135470851650n", + "19713896344694960627284542368n", + "78388507052884523368130573724n", + "411547793569600371n", + "52610184319591489722152436723n", + "58886726417514761894083084350n", + "779286101129650524n", + "30697463792187334469128124748n", + "76836636996796091386778801556n", + "868461342532092659n", + "69910862714025895807766899173n", + "51405542117679167872600082463n", + "349470313771420560n", + "71284241241602654693194940143n", + "7305568034139166589777830792n", + "2498747200591008033n", + "67960797371315801691053786599n", + "25825479627169106615506743060n", + "454178144016317938n", + "35798135180239958015829265626n", + "23385623537498663178814541991n", + "1668508428339305051n", + "15450665342638866022354076708n", + "1590106122468359708599592949n", + "209939085635224246n", + "45146454297276439294547281947n", + "71363197518122470395685282523n", + "209021609080779353n", + "37805135405124328919729060254n", + "46916624974206570529290830921n", + "848835529094356500n", + "52127928532313726409293511873n", + "74341195298303002847160668677n", + "2836594795507658600n", + "21372610848069974970714546381n", + "47095482837411596424060733004n", + "2644188767312235257n", + "42696308717032907609441318200n", + "71478263091865254540527492446n", + "580612364877252066n", + "24227503011457277739411398472n", + "46210588161299166961443583909n", + "2104513243231016467n", + "38286987706753654842254500763n", + "52819390378718994903041839288n", + "2559971158277261662n", + "10804049422689166087510960068n", + "78494177681671393465658693075n", + "14482037543685577n", + "45316386224024264714051962520n", + "8077236619578691823690243326n", + "3134255926280338435n", + "58234835865881258067775424985n", + "32582539715376623121568222400n", + "895535831771370236n", + "70554522419104669983576590653n", + "40229753450332894247180991320n", + "3235640053820685715n", + "20050852574591066448348962700n", + "63154847355271958325521981335n", + "467978477141038832n", + "23115494614834363321936638302n", + "54275477858894789534235120579n", + "1729059077109549892n", + "2643222253937861530223901503n", + "4343013099917093534712467976n", + "2093250350291324334n", + "26606380640809280595919467519n", + "24158225122809122341718478436n", + "384623299034698779n", + "74889164947469453919523854509n", + "57684567535195905731154589750n", + "1155881533367487150n", + "40449699793338258794390721810n", + "45563605053974069206983967932n", + "1493349482130193926n", + "53198779688378832727006250273n", + "23250105681044235044335219173n", + "1649629209531042678n", + "31842301972458791163037611310n", + "54103172956148923849538705604n", + "1853082006782289707n", + "73283134292642541157328722326n", + "60011977393637178105550407258n", + "2931499730502310317n", + "30363774768400601902892824896n", + "69784527858977659878014965306n", + "2699700013359551525n", + "30143876784681103984444940141n", + "20508010382725323248422071352n", + "1472036335205806581n", + "72685268086241841913630448820n", + "13484287640917155024759235656n", + "421919482836501604n", + "58336665028159633068676496150n", + "37899530871095451514688032059n", + "830925861824953119n", + "25034909887778048695729760495n", + "6186382813048747659882138994n", + "928295656744287075n", + "23742999482526473077193706109n", + "38681524762823880972818454723n", + "1037267958137901699n", + "75848820697595803231237834330n", + "4098133930661194465828731453n", + "2484592940588499869n", + "45229057029317220478111498771n", + "55686910073377115986537207556n", + "2974592459022975650n", + "9058824958434584730691471305n", + "3489502058924586487278999515n", + "1985538445731248079n", + "14034347138268021040571737620n", + "22094509985004128313979725457n", + "1321434542301391881n", + "17216019289274156022312124782n", + "65908201923726532456265422977n", + "387610774042169114n", + "29699496552150641100894659868n", + "43552700176683532671663646633n", + "305525895851406027n", + "62068283835877161864738460092n", + "66163022436031594737849199513n", + "1671489056967612477n", + "5806077789744302022830084009n", + "22126371298319875265318066168n", + "2973075530852635513n", + "43508686549770752780288409207n", + "39960107195405145189624452517n", + "3021227579398645734n", + "75958919635020929694389722957n", + "14913897636015670404185010029n", + "2882183092458315590n", + "24239404766805006701421172975n", + "69450551382041986033230454197n", + "629979785699424851n", + "47715312965767193925496266564n", + "51328287208106789864582031889n", + "1994694450268216917n", + "12878968128402785600925987432n", + "8892728961399753099629106451n", + "2189564568474803348n", + "17841277261874434955985363634n", + "23255802008382153152915838079n", + "1299631183736247307n", + "70369295004394220674262548695n", + "41703500013750845131767430551n", + "2515279718642012557n", + "29363803518729226252949864837n", + "11941978972714945652777612780n", + "1864444849178365249n", + "19838910496936353855554382505n", + "63526654617675483693289584781n", + "1386561621225388054n", + "37964054821976413036136417123n", + "14531042297004730862055294756n", + "1592174811323575228n", + "17025415710900400219439375060n", + "362574756192905655380951625n", + "186982663000383695n", + "75302946272320992428390907104n", + "76356571252613340602107695667n", + "1005406788214614232n", + "58429545482092547095478867066n", + "8783598735519438107774246954n", + "3449009450489856852n", + "52421244757199560525245430831n", + "36745113142356116864221402917n", + "2011028989323540641n", + "52389389340233786555192956059n", + "48540948198567585375080843793n", + "2511738896308209966n", + "62948973448903767233283645427n", + "78581731009485419534613750974n", + "2631249803991736511n", + "15700178914629731044995270252n", + "21825209006850516132399941848n", + "469426094359884098n", + "45109950384963150442992909517n", + "34709270486045260410251674804n", + "3227700636384978310n", + "59508455528169337110518969046n", + "7626842288771897454076798332n", + "2837142952242233831n", + "78154898100541067453790359715n", + "28712940925290532622010374032n", + "2005548120880216529n", + "19676819626842762742496321363n", + "21494888704510312646126358022n", + "1917432403713999314n", + "35348767509581898437000853095n", + "54404372638473474714277538548n", + "1418295384476104455n", + "2087534038039694873601959364n", + "55492416744530703076122435501n", + "3415979290873032604n", + "77874081666239317555289078970n", + "64693269821438151662321973074n", + "468500022203866114n", + "52183552801284363909457374676n", + "26386627404911694711966206173n", + "849932193222808822n", + "60880246718709527470179169635n", + "73275749658065911543659109078n", + "2835936826164075331n", + "47034978948350796174151388655n", + "71774550150782116132727222082n", + "2957236831646338670n", + "63121833886036603562738575495n", + "23473953357667857038757232396n", + "709268300106945760n", + "67565011137450891785645904255n", + "24476510070022540670394808047n", + "2197500443692989620n", + "59529365216756814354926446285n", + "62380286296544401614193824725n", + "1797665767653557658n", + "65352576236492901270647039868n", + "54007112892683927216806385747n", + "1796075374294915397n", + "17840563634584466359434584144n", + "46203718678613515530978507404n", + "702053810505193011n", + "6133701316708198581434709723n", + "61802938904865726983656435299n", + "3001276128418418514n", + "11649452974115692944272358953n", + "18473964874994391830987882986n", + "2086271034138195481n", + "27934361651981769617523547350n", + "75412934231387879572695859186n", + "461672875728163553n", + "2659961698397651286244898268n", + "38244585026297070186059616261n", + "3371488902807027695n", + "16205200667874612181106188684n", + "6520317333544879950114099734n", + "2490923463723046056n", + "66034343348095027053141749239n", + "13522171761978136875076440765n", + "211626548808403729n", + "52060409492746050106971031742n", + "3493375676170587510122635686n", + "3394236868158496257n", + "47140116537527183288446191137n", + "26402419994251877186703235784n", + "2932509761218506683n", + "41718577718458247425998327137n", + "72444125720253366875907105723n", + "2370720516004120360n", + "63763546849180341189837833587n", + "56383249669741657007269755446n", + "2772609748811855948n", + "30673155381064993958540435457n", + "58923421149810821122915571284n", + "2826147464537959677n", + "2437524155719427333248486827n", + "13523745438577697843652059309n", + "2255306498837633258n", + "66617913651732723895666550762n", + "800383901932656375981050324n", + "2369057816442019000n", + "53894023794388536556779913700n", + "43633381247568199322500578225n", + "1622058361920748072n", + "31610597297695602711187104065n", + "75047413064993937787913175675n", + "2532518357458277794n", + "66943196821272189971919216455n", + "63057632269388325855862697967n", + "252919094746701796n", + "36093617934864267028615495215n", + "2458297172936844284200172721n", + "2861973034148611365n", + "35639326827089764975324431609n", + "42790455257345625520833632516n", + "2416491183110698117n", + "25453911219236829571892475695n", + "7792114184406477060828720050n", + "3256395018257219594n", + "44446878573785568457717214835n", + "31316823799089969829944488381n", + "3348254446631709920n", + "12075675278480009463346998871n", + "33336621394122897171138216323n", + "1761645290764169692n", + "38936491179522097211601163974n", + "40756936871275705147530952481n", + "2239620312855528769n", + "66166234417862875439766591001n", + "45961753617942718644070346235n", + "2545432639028408432n", + "27071931775260190706961952445n", + "16791652622063002274074642172n", + "1351810600008793720n", + "8734604468994364132650578395n", + "2915643774972349972943503710n", + "546123555763251031n", + "40883390215425903758829895197n", + "46075188532687982090196339471n", + "2037883374560027081n", + "1788529744899075811496881871n", + "22977601030754581206369105722n", + "2052641684479223112n", + "52403270166627919005596848880n", + "2330881363722503207702297453n", + "1950506519094245230n", + "26974012086112717010353138814n", + "69257122863702421096680142186n", + "731421312124744837n", + "31069884618093040515903738825n", + "64922032296511662760139295040n", + "2654253976131730717n", + "12166944124292618925625599356n", + "59407826445782768214824917874n", + "354147487414166550n", + "74336686733791433900827528675n", + "12704634481538804742936579229n", + "2082676564717138885n", + "72973759452587341786347077786n", + "29703734208301290276522637915n", + "2067816925523661903n", + "44140001258313735278199859280n", + "30358437273466120880384362938n", + "1032491038795740151n", + "48874617960058547069896032126n", + "32474862569324577439684934828n", + "2565332460413202117n", + "14465473659591664491585197311n", + "66349092618103844360620055485n", + "128575157546484074n", + "39003318153463851085520847181n", + "60595906928974680331945114920n", + "1233558283323773507n", + "28235541661696367758739481925n", + "54650564078640656755786408246n", + "948581610993436350n", + "52390925978355652282567775690n", + "69489317101356242161174540193n", + "1016620721333718105n", + "44682484847387584156652994185n", + "67002113562754354663567942796n", + "3169008886697917753n", + "21521800351163651826619425243n", + "28468229293760112362900924103n", + "3106044815056798782n", + "64289384627045471347034899444n", + "21395240471424659888107925342n", + "2389990634110040944n", + "5558440120008932694528968857n", + "25330928363440776593367343384n", + "746774273176043945n", + "2429305360237456636691563497n", + "39266567744784892575187587950n", + "792366915322109031n", + "190n", + "35201303926872119491363187343n", + "39200624059490958386431285751n", + "3393416942116110882n", + "5130722441260449785966906581n", + "6826282242711274667534619009n", + "175953595034053256n", + "36372914432107169633188190941n", + "31397365234316487899998842613n", + "711450504412561877n", + "77866480438920185748710050402n", + "4279212619824505622954675427n", + "962968101156720773n", + "24103551124269486202668849588n", + "11130972830601876441216307489n", + "893184258459491666n", + "69193811904361439959403735151n", + "52915912371712773799709217240n", + "570950775917859441n", + "54939789609796528700771617261n", + "12117783379072753356539237890n", + "1581116903901042554n", + "67496634076216081302688237803n", + "74495604156744339618591196101n", + "1413689362789722669n", + "60558410658396886623236813267n", + "54362306295838616844452379566n", + "3462692888110285930n", + "46601160641045708943575973674n", + "22657785267725651515395477264n", + "2540893510433578066n", + "25559907633591000839417753670n", + "66803247823467176006890040116n", + "1529769973554702363n", + "29841437217494788924228547359n", + "67184772344651716905410593588n", + "625675747496154271n", + "9827217054012018057431763206n", + "38580342860660073142578461484n", + "2817140696687660754n", + "46575625265145337175276247924n", + "32697034067774707146118540784n", + "3011446090876831528n", + "5271093022632786731229442228n", + "38726129390922048171827945072n", + "2217156708995046954n", + "42132917698594053659930418890n", + "77441215761462050733024375776n", + "2083758735650294380n", + "47743460986910581363781592550n", + "26859554267304965757813109594n", + "1656567376163667236n", + "35137117329378081211140823769n", + "60243236091112111901829479638n", + "3261955821062549129n", + "28358382509730554378855056972n", + "40056354765208955650509540184n", + "1883533328076610090n", + "31057640297193833879323674119n", + "13135810213042426656799782642n", + "1928373195980068191n", + "55761253093237817269509190310n", + "19165388911431711870765002488n", + "288177310041200621n", + "60799226684566905995062983914n", + "40207229733400293427021512033n", + "2650929947635557184n", + "29437177189026772048925638628n", + "77388528120917898327828524243n", + "305484959527306661n", + "47592972397876357669926112859n", + "3020005646539910166404520443n", + "3190863453458987605n", + "17015557973558762173505089855n", + "35191700003804211634668582728n", + "952612596261116166n", + "9375307689574390622949035417n", + "61354613352930601545872812648n", + "1683589775067171759n", + "60154108389233938793255784652n", + "48945403330058450293756368701n", + "1035482065698051995n", + "48447569243456888850015313383n", + "25814830290612690309150204011n", + "856977948611605169n", + "65272198023492246600324491107n", + "14554952163726621232808728414n", + "2062053292298286079n", + "69617298230609865098827681983n", + "10181270342950070947163024950n", + "2961873224281948835n", + "77865860634437363471851159117n", + "11518525950588256999085719888n", + "3140827286086615141n", + "67289814898748712687694720373n", + "55616979587066071621882452495n", + "671968441799647134n", + "36899669369105707004814227130n", + "47379737112610230221573994583n", + "920085910141384899n", + "13850743853602512280079293782n", + "5089371297253900377827048238n", + "2239346801304676689n", + "6013033712518981164461122848n", + "12696665847690995063491620655n", + "1045922789232343802n", + "73838480486926851002690242545n", + "11024247968089931574635022600n", + "1785739026827732795n", + "46709240116694401777143699303n", + "3928761352718085447710812207n", + "3167078457930209753n", + "1628411620074438399432304042n", + "79120825313446094504376504599n", + "3000986895148633142n", + "20311424959750264924872132883n", + "28982515945674909867411478286n", + "1562815756922582376n", + "41328654693727794541719230433n", + "37688731718109922922839904143n", + "2128686949308632744n", + "63918547392351342205099776489n", + "56244920370208046820481852610n", + "1738952791297540639n", + "42553727777815335999139478351n", + "74401676818038899194857584614n", + "1441223588421962343n", + "48501905549772929765056479493n", + "57196253776231730782817559363n", + "1329042466488131886n", + "42612242102090838639101211294n", + "23712228007378248006135499295n", + "1188081057948978113n", + "60808299854255156374059516939n", + "5037142183493324878785795698n", + "3377641427531405476n", + "2100033507624807185775577956n", + "66092391582904092111713233090n", + "1541686466154961556n", + "55667904776978470999771081004n", + "65782259532792810398109981385n", + "2678194758103578285n", + "46351605403518624328018612587n", + "71570189145139757572693098409n", + "137752718254727530n", + "32566894273154733946610261646n", + "2130040660771399584103495178n", + "3433460175532554864n", + "42283192781782572047009130491n", + "53195283663157854359737683955n", + "226578068878069549n", + "58787323154575198218922082559n", + "76514940467877062817538157919n", + "2170151004821396792n", + "16611896531741382600748135578n", + "23973320596472426785110273924n", + "2072924430898945448n", + "56522487831947510718774832933n", + "19703474499176160781849022337n", + "2945330921265220334n", + "56783422841518399023642676836n", + "38769563279432525044323505302n", + "1792299509242652359n", + "76167823672371949003240477400n", + "15033772560369672213689002724n", + "1369661826848479714n", + "57575850008227013534366623613n", + "9429773178147366060969953113n", + "2356450487368726474n", + "66039836579922335205774780899n", + "29305203315228583960894597733n", + "2916190411237443294n", + "62858319877555741683898610262n", + "77386927307827392438266837784n", + "2511329216246811555n", + "70441747233284664135679667980n", + "38636454217815285446563785723n", + "445854414890438948n", + "24981662323868189876596301087n", + "72752733583697398221323060636n", + "1809802552603525385n", + "66843472464618460413168506534n", + "22562062348613238493423411427n", + "2543043338711138267n", + "27822522723722914003779779054n", + "70553533529989712899011629037n", + "2009965107178178528n", + "41145654027642654382154045441n", + "33316040825580853635158289461n", + "1252347873187657129n", + "14195611144746543080825466319n", + "3407770987743222093411188154n", + "3403453824283325760n", + "77199977102298348629704937208n", + "31731941704004336833312531577n", + "3114592409653948417n", + "7082891359680238712484596898n", + "36813294676505780861528211839n", + "2296586694800766015n", + "70341804842672009622871958383n", + "64787100294434991758166332089n", + "684630955513640653n", + "23627073378371702512100491818n", + "67179406416584740783220132116n", + "1357682412528821803n", + "2679265488258494083925014071n", + "37109873815404656380557618026n", + "1127066617660372163n", + "32980549985182280899200208848n", + "49972857657669072050800815359n", + "2224829721975430416n", + "72929313298373333698671436085n", + "53706180782508338412265116928n", + "2345264634375706259n", + "25600116071059235957929539774n", + "21469247810821625206615495609n", + "1284644432869212953n", + "52581652408757810789394635434n", + "29131664108202548843582785870n", + "904339045760670348n", + "4798855127186408145093474279n", + "25593999412234523225948102223n", + "654037355967384889n", + "3657213402389600636244772383n", + "24133147736054748340766777127n", + "1396486180283262520n", + "78699320366651548922305948488n", + "69230814784074744434577385445n", + "3098132099441744380n", + "19644784263306430222376184614n", + "39352365321909965982286711008n", + "1097135362500605198n", + "22504884281040026520566615667n", + "51884310716816502189020510501n", + "2836879063584194940n", + "31564868821682863565046249637n", + "69399383443221313434464347907n", + "337835635995040157n", + "77484391777362423277126784135n", + "11986692619447741790084961217n", + "2619589882560292156n", + "55547759500726924350706149721n", + "17502197066849036485159796720n", + "3288955261957797426n", + "77195073787908022779049329769n", + "51238689806904152799533816559n", + "2902656369373522432n", + "66836221713819023953318512262n", + "30501774163107141437775800261n", + "2677692465649787464n", + "76245923481521701260558672164n", + "75457145835842899954569824276n", + "2950949770498563032n", + "25075661441972511124816716310n", + "51986286084014553654599003767n", + "3209171396020260216n", + "13218845202818396335134174792n", + "25547194437477958442682760572n", + "882225404441623442n", + "69914875188950207440235097203n", + "70199578745164541446110091916n", + "1357784045169413028n", + "43320786783175440339572518455n", + "35286989115778570412048883295n", + "3245655897355025440n", + "11580221946358483026643910212n", + "43414377877991154114375552714n", + "1146796406253097440n", + "17419013178925902351125669980n", + "19443734017483244776169430363n", + "46141882095098048n", + "8509181823114447743684103155n", + "21773389669210291571358684709n", + "293567078455314752n", + "71890768140184100110325465253n", + "32947359154902603245033356248n", + "2095767513471253062n", + "66612057726180846539892110591n", + "58228796938658089225696147738n", + "2195968911090520286n", + "1109993388422429661761631241n", + "22346582292377463495482260406n", + "2001066859090391140n", + "35881299508492663696062741525n", + "3717272605662631325590315531n", + "2150876750673299177n", + "32330394168112692961657727641n", + "58472199194667412587301482601n", + "683145818063708680n", + "780866688393577616874972293n", + "2484017925737855158498827859n", + "1946164710667286644n", + "24949672542982775874442945268n", + "78926592473575507217479867337n", + "539802847395835576n", + "56117008756050384582147823528n", + "43210853541622432183725156653n", + "2150663169634545096n", + "61579369092219089182966568720n", + "47582006983687603144738928893n", + "3124871084038651121n", + "20472604303699532705442132839n", + "55026790452919266777016889796n", + "2128553976965398209n", + "65042066402159517855186655704n", + "25834286024900757312561871223n", + "3153460278111732024n", + "2030649483792876655509387794n", + "31251460673520289934513163341n", + "2314202421394708798n", + "38898507655714044335469213287n", + "17766913045336064637455159601n", + "5772612758153592n", + "53351718994883410862516374446n", + "29801786398373019602386521929n", + "332518094768871387n", + "20014752107409814777501788862n", + "30545630513989571559621232703n", + "2905341310728908891n", + "41776391657198710555140374062n", + "72771134939139300460786768127n", + "72835700930130544n", + "62519373408589123636846113266n", + "30609899521982774212363668403n", + "3102951214589405748n", + "70025140397226837422549416680n", + "40592093639220464458845352747n", + "2347241753120297608n", + "45468192631571138571591665077n", + "26558823675732211497626649030n", + "1629416479528531955n", + "25801876090378717694003287495n", + "72714857660939158368507064084n", + "1764408786552028634n", + "47018572464410011443515455943n", + "52662920195362571012049090020n", + "454834057907282043n", + "57331496668953277296232816838n", + "33057818018021391843587257854n", + "3030763542145120274n", + "48443191019437422815507694667n", + "36934156921693139330074491119n", + "243401061232079827n", + "67385403122763135721667904114n", + "17785169761217765132246283784n", + "924708906342822055n", + "24368340584512161086502262522n", + "30550074161540509118618024477n", + "1647445399378987715n", + "22621857170588920686193026082n", + "70812007388389655871877402244n", + "1694083210670991305n", + "41347708096645830091114899476n", + "16037061913312522369505887616n", + "2497665959504793000n", + "67139303310464850804293957278n", + "29407657655389872029903395295n", + "1231700583895634138n", + "37186266588661031020364276823n", + "64331463645686241180031890307n", + "858007349645516242n", + "17453975067968526676927428902n", + "38794176949661087662172044849n", + "1932865250829663127n", + "70732789694653075375453637240n", + "48517950398808253845315914303n", + "1533683325669917693n", + "7590544657622663597186569999n", + "16972876382471665202433633383n", + "1600415365643134371n", + "78975951800277999885019988149n", + "27654411992063671107921755807n", + "3369953252850191561n", + "46043479816389332953445183683n", + "62532324852159742926567583231n", + "2731831590624761579n", + "26498461135763945608035183326n", + "48445518704959114181801065120n", + "2394765299580634398n", + "56028805977151038638420781436n", + "58141016313899417321335845605n", + "3462767125728514499n", + "75681482851168385218717491708n", + "4473698216036325355609931639n", + "3310202237706351301n", + "4504293916651623254906206743n", + "68116538030159503197015998251n", + "2889579290083727600n", + "12434420748880011857929530692n", + "33628508197938600895312561499n", + "3159831169743527270n", + "67109016324114818146303701946n", + "55351850463436105459577302775n", + "385986569608202030n", + "36242789260155546497441666197n", + "31732511889478314960659605156n", + "2920600915566823827n", + "48509474254963854734887661334n", + "8079251563824083202330240595n", + "2665801320330421918n", + "39660864646747352477904319746n", + "59651821222898457546636978442n", + "1531034568313238345n", + "62788969625927152028379816160n", + "24744138610672787038055730138n", + "1310233222719201614n", + "23792614446481923487153090977n", + "79101023625960187009131465639n", + "227407773153051293n", + "57267184243278003604986979966n", + "42305211890537745328413201800n", + "671233697941573096n", + "39762406528144274936805413969n", + "343364987272833939858341150n", + "1959484601961092056n", + "54544135238917175005216161289n", + "13912546675010052160684729099n", + "3014313683216149380n", + "18136356730134376051249726819n", + "11425153178165482142021848242n", + "1645167436823042465n", + "69571690242030224297860713080n", + "20000296908210530511281947906n", + "2951984515066408617n", + "68935557612334200108120846094n", + "9599874776655508661703447912n", + "207537289235118400n", + "38005039110469828198737233452n", + "57117939793780663528591877230n", + "657310159275772585n", + "48190942309941762977700829286n", + "35380709350708768203415160193n", + "3486923002519738515n", + "53309628735245870295401785697n", + "6898290035436010984009341789n", + "2238682903059000966n", + "26252436214956385472199538349n", + "5398316484357388778003944642n", + "2017016520050129083n", + "18728180890682502663677205457n", + "75985790035999193686176922173n", + "871191822818490491n", + "26090995461462189401947080714n", + "8010181523913519495898879640n", + "2760750294481345789n", + "12571913368726887078094710986n", + "67038533933130467009640942091n", + "1356907102326461067n", + "2409336986166143567183486273n", + "26333849491012167896177513936n", + "2081931138702581350n", + "22178579495456933698065784747n", + "10494019184295301135848443719n", + "1556823910319985542n", + "58667315150272390380921815777n", + "44158865836751938500365655728n", + "2897305038233402061n", + "74095183896289472526655350256n", + "46602083399223413699892771385n", + "2939040058840712678n", + "56134945160702746550200312909n", + "55594024588721990973305872113n", + "241727020334505816n", + "19092625518251024820060605981n", + "52805176561283013852649589318n", + "2630183511003809185n", + "40142471166039256274323308618n", + "69028082091732345035280035260n", + "731537512902501193n", + "54452821361994624741653790280n", + "5480588108130430397591687207n", + "1966495710156437100n", + "54225506703398647510402637329n", + "71078272160741272276482248236n", + "625726620356390685n", + "10873694895066196894600492408n", + "42543865621829980680582869471n", + "659085478864973940n", + "24570812645438042915544691872n", + "38864422867994097111701162358n", + "108264660254998622n", + "15090579651764708135114880383n", + "6847932611991509071357257069n", + "3002519760345855057n", + "67172930987791999954069226303n", + "57897525199993249176161053378n", + "2915445250377403217n", + "48211115939559742352322228669n", + "3041971302836179255332835905n", + "2031433350373049244n", + "6702059784866514136668283850n", + "60090798174975851190351671198n", + "1539442667927689602n", + "10555206956770682453196311300n", + "60174320015124794428742548117n", + "3219514787369094630n", + "33581130649629556907511838149n", + "68936014066717219797472330229n", + "2202566843302550128n", + "63246205799832702388628292822n", + "50766419118828752565980214424n", + "702948315686353336n", + "10588037026087823902566620931n", + "31944872868634567722701653259n", + "35592220254698076n", + "18543232582912428355348562511n", + "50848342948013759405790941928n", + "2042054766705480118n", + "75785091112505749098959662874n", + "33468770634430484055281758384n", + "2515019705715000373n", + "8378376338147643928768798662n", + "12530533155876786053202214269n", + "2727583334873636791n", + "77899012542093403472222785656n", + "11198541105926985132377308478n", + "174561331384082375n", + "21495637682655463985272268626n", + "66647744985496666360930881126n", + "405121961932952414n", + "8785728082360554623230657907n", + "16306316690895485216543647677n", + "2693176818970082429n", + "67847687393284529502747235461n", + "75868253612879612148702490532n", + "635425144875131615n", + "40160884413239877062079330770n", + "63164369256178816648228971849n", + "216810198294116243n", + "36435168126906960353056024299n", + "3149419224920838431230970634n", + "1871893333982790509n", + "64560732618471515378295795553n", + "45792311383220222353974633032n", + "3484115525993152817n", + "22542187253833075358391555832n", + "32913490894672208577258857076n", + "813295300489516673n", + "72008937925863542512102402771n", + "63373906192857921439647992395n", + "3099919762468324319n", + "2392718323049577722069945988n", + "6726604907914697504274405051n", + "1908730698260696759n", + "45303405148555861234318904018n", + "13840437113932916703521888532n", + "737973910436366111n", + "11242380504387923425774560196n", + "65118374650171371803597834265n", + "939001365486112822n", + "67975566324245959520301671802n", + "4473437818272725879708178573n", + "3208261445017504752n", + "30014808206157543806080228554n", + "66463240171753092120432610074n", + "2435993957101269390n", + "25504128195718610529905683318n", + "45705415444312786927978463556n", + "1045631128695025263n", + "19343065393931212261663604105n", + "48433465108497519532696527919n", + "1643955524026831567n", + "61967979823357631114053339146n", + "11931295683566487093852093716n", + "100280846773001002n", + "60176707673382247806625891599n", + "14685765931054596220352916055n", + "1414975013856289364n", + "19159675325188029964508933203n", + "71168335347143199690179041027n", + "3459000704647014558n", + "53017258852314779784871212634n", + "71597413066169374377964038634n", + "863719515279735604n", + "49267123322147562533247340370n", + "34809549368288410549249367594n", + "1802256555976892720n", + "32488293328284077378113325483n", + "63994087293938357079448722422n", + "3430579745765945694n", + "68044606980231349008143649733n", + "78178074980646262021475964266n", + "3303695234936873546n", + "36250845172027127549601304699n", + "7940006871355541625212459589n", + "1358280933229140597n", + "15621186773945475826007876994n", + "49200990726906764032939211762n", + "3297411787341585376n", + "44178322514207300517286794896n", + "1309109795551718989306628832n", + "1786635848544738041n", + "34458406924637261553644235535n", + "78049086711268561469882753998n", + "1099497319188604429n", + "3475313089381131723054722060n", + "6689323677917312565405995513n", + "2155662382779821326n", + "71165004495601531443113264340n", + "74552476918126801039538032619n", + "163118249154587626n", + "22716028135425394548575618606n", + "77862367616336570154310133149n", + "2252905518646090223n", + "285n", "0n", + "1n", + "80n", + "1n", "0n", - "2n", "0n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "1n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", "0n", "0n", + "1n", + "1n", + "1n", + "1n", + "1n", "0n", - "3n", "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "1n", + "1n", "0n", + "1n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "1n", "0n", + "1n", + "1n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "1n", + "1n", + "1n", + "1n", "0n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", "0n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", + "1n", + "1n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "80n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "1n", "0n", - "3n", + "1n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", "0n", + "1n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", "0n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", + "1n", "0n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", "0n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", "0n", + "1n", "0n", "0n", - "6n", + "1n", "1n", "0n", "0n", "0n", "0n", "0n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", "0n", + "1n", "0n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "1n", "0n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", "0n", + "1n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "3618502788666131213697322783095070105623107215331596699973092056135872020480n", + "14965340338269765916748077654n", + "57444243079201776417400567235n", + "1222043622063448251n", + "0n", + "45539325815258009214048517949n", + "74029159877207687841315755286n", + "1315758075496492476n", + "0n", + "64882742742693735388703795217n", + "4844949128497544036649211020n", + "3182147294707861679n", + "0n", + "4496634234616189055928626901n", + "67033373151134842408497997482n", + "3384857135886447649n", + "0n", + "56260549620186665298313904338n", + "17935165051002398782181590032n", + "2907893131822920343n", + "0n", + "65216326003597682399222737495n", + "3298048581226412665864466074n", + "532058165305353173n", + "0n", + "4n", + "17534649174740286439617184587n", + "61624521448773719666652547400n", + "1583544831807099050n", + "0n", + "23580985120896688091134062209n", + "57090176069460711056973300755n", + "1132549516279179782n", + "0n", + "69267242672670352112011089825n", + "17669721875886136828099769177n", + "2507931255464886054n", + "0n", + "55290945981010563287452434069n", + "57369263824033760062566721198n", + "619421959802267457n", + "0n", + "5n", + "61220558198970810332002781419n", + "38489653625751659528596235346n", + "474544792344147439n", + "0n", + "73851216425788783229570215676n", + "57544280229734741213839304340n", + "824332013690674407n", + "0n", + "70640236490363038070108610250n", + "72048683011618337952639947412n", + "3283882621335138308n", + "0n", + "45766176129023615739100671483n", + "78938635897312369942467299842n", + "1543825017605003289n", "0n", + "1n", "0n", "0n", "0n", + "5n", + "31155655935624063764508754430n", + "35049753162015102915755571760n", + "55875346095182683n", "0n", + "75318843718093868842741179425n", + "31133663375247545639771122083n", + "66887240769048153n", "0n", + "53548803199970406176497915706n", + "48759655290725258023700284n", + "2897435443006199088n", "0n", + "55389289662485897334815256801n", + "47639017193033623227742014280n", + "3206472460595717423n", "0n", + "15201082213786740520291596162n", + "39703663558483688931576154384n", + "2690165326117272564n", "0n", + "8n", + "25205349568383755808920443585n", + "36240798362990640992244755704n", + "1423634377032442318n", "0n", + "63097324248837674501622746356n", + "14176515660675548454430012350n", + "2472996041072023223n", "0n", + "68044534632045954263224623568n", + "22833316355344197340616352411n", + "2877651330399473595n", "0n", - "5516503785001221521227164944n", - "40413566861187335218189028200n", - "320792509372162342n", - "0n", + "7738755395123571185438266773n", + "59806951206536854707030464457n", + "1619021578356186643n", "0n", - "1n", - "1n", + "73851216425788783229570215679n", + "57544280229734741213839304340n", + "824332013690674407n", "0n", + "70640236490363038070108610250n", + "72048683011618337952639947412n", + "3283882621335138308n", "0n", + "45766176129023615739100671483n", + "78938635897312369942467299842n", + "1543825017605003289n", "0n", - "2n", + "1n", "0n", "0n", "0n", - "1n", - "10n", + "41430774384038274715812872239n", + "55959887789790995799093598095n", + "1435809624122226624n", "0n", "0n" ] diff --git a/tools/npm/integration-test-suite/packages/web-js-esm-webpack/src/examples.js b/tools/npm/integration-test-suite/packages/web-js-esm-webpack/src/examples.js new file mode 100644 index 00000000..5a90a05e --- /dev/null +++ b/tools/npm/integration-test-suite/packages/web-js-esm-webpack/src/examples.js @@ -0,0 +1,82 @@ +import * as garaga from 'garaga'; + +export const proofBn254 = { + a: { + x: 19326975765597999023026309242851464618295625967876195641207265702903971944714n, + y: 63835113064883221423828958902442994957834669122245713027012799265225733314n, + curveId: garaga.CurveId.BN254 + }, + b: { + x: [ + 15926258242285065430281020483827261910589109953358642697562602626998569607754n, + 15482775443177023962384497625528997151098293635727021527127534892096530509952n + ], + y: [ + 10937776115245591292644949547008094885240742374542777857501160790374675834371n, + 6691169928456984700056024515478772626466687376966760922939239504103847739755n + ], + curveId: garaga.CurveId.BN254 + }, + c: { + x: 18548825552947889373136407684636046437705490810597995577018381312170231914454n, + y: 9890815383090898074006770716054740281870916546141552254207684185588486179606n, + curveId: garaga.CurveId.BN254 + }, + publicInputs: [ + BigInt('0x1e17db88c1d2e83e49f692cce4bb8169309de90afb2b141156243106aa34b474') + ] + } + + +export const vkBn254 = { + alpha: { + x: 6763126530687886999315782887200758703366235230289874831627658839515656330867n, + y: 12297948670392550312636836114470404429657568989657927437959695771502446445179n, + curveId: garaga.CurveId.BN254 + }, + beta: { + x: [ + 15362786867599176251482538547160991918100063526460909721657878971551583339657n, + 3804423004921008809819632629079723167970572551072432396497601916259815496626n + ], + y: [ + 21885719103633717693283841528133243510750001708857084897139570082577218850374n, + 2076817281717432063622727433912740683541778328445173073030513609350245776784n + ], + curveId: garaga.CurveId.BN254 + }, + gamma: { + x: [ + 1505558511994093266228972967760414664043255115544025409518939393775943607863n, + 21131173266568468249589649137903719095480044620502529067534622738225157042304n + ], + y: [ + 4008759115482693545406793535591568078300615151288108694080317738431649117177n, + 18835856718271757625037377080288624550370480296914695806777038708085497610013n + ], + curveId: garaga.CurveId.BN254 + }, + delta: { + x: [ + 1497911744463986566314308077983046202449361313910668647770797503379177516252n, + 10829154948357654897792444316512827659620136273388886760324770466776134105520n + ], + y: [ + 10850392992008761830625471778404650447428083833210258292805429019728339148884n, + 12593805385728178657844996215584371401133999503150901444097670307277076679963n + ], + curveId: garaga.CurveId.BN254 + }, + ic: [ + { + x: 8279781786940010385190155571855963988492685408361021424114669994156938727612n, + y: 14410809027374663415870055712464930833085570569392210261413081131467855918386n, + curveId: garaga.CurveId.BN254 + }, + { + x: 10075286447651977124250383403562829564641026794366918560412684031493085120161n, + y: 13393494704849149158598989372790154670517815409968589728896053397011959461594n, + curveId: garaga.CurveId.BN254 + } + ] + } diff --git a/tools/npm/integration-test-suite/packages/web-js-esm-webpack/src/index.js b/tools/npm/integration-test-suite/packages/web-js-esm-webpack/src/index.js index f233cb40..41800e97 100644 --- a/tools/npm/integration-test-suite/packages/web-js-esm-webpack/src/index.js +++ b/tools/npm/integration-test-suite/packages/web-js-esm-webpack/src/index.js @@ -1,4 +1,5 @@ import * as garaga from 'garaga'; +import { proofBn254, vkBn254 } from './examples'; async function main() { await garaga.init(); @@ -7,6 +8,16 @@ async function main() { const message = 'Output of msm_calldata_builder: ' + json; const element = document.createElement('pre'); element.textContent = message; + + const groth16Calldata = garaga.getGroth16CallData(proofBn254, vkBn254,garaga.CurveId.BN254); + + const jsonCalldata = JSON.stringify(groth16Calldata, (key, value) => typeof value === 'bigint' ? value + 'n' : value, 2); + + const messageCalldata = 'Output of get_groth16_calldata: ' + jsonCalldata; + + element.textContent += "\n" + messageCalldata; + + document.body.appendChild(element); }